diff --git a/assets/css/compiled/main.css b/assets/css/compiled/main.css index 4d658f428..40c6f7c26 100644 --- a/assets/css/compiled/main.css +++ b/assets/css/compiled/main.css @@ -1233,19 +1233,19 @@ select { margin-bottom:0.75em } -.prose :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { +.prose :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top:1.25em } -.prose :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { +.prose :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom:1.25em } -.prose :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { +.prose :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top:1.25em } -.prose :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { +.prose :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom:1.25em } diff --git a/assets/icons/codeberg.svg b/assets/icons/codeberg.svg new file mode 100644 index 000000000..e2516ec1a --- /dev/null +++ b/assets/icons/codeberg.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/lib/chart/chart.min.js b/assets/lib/chart/chart.min.js index 1fe0ae41e..fa48583e6 100644 --- a/assets/lib/chart/chart.min.js +++ b/assets/lib/chart/chart.min.js @@ -1,14 +1,14 @@ /*! - * Chart.js v4.4.2 + * Chart.js v4.4.3 * https://www.chartjs.org * (c) 2024 Chart.js Contributors * Released under the MIT License */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){"use strict";var t=Object.freeze({__proto__:null,get Colors(){return Go},get Decimation(){return Qo},get Filler(){return ma},get Legend(){return ya},get SubTitle(){return ka},get Title(){return Ma},get Tooltip(){return Ba}});function e(){}const i=(()=>{let t=0;return()=>t++})();function s(t){return null==t}function n(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function o(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function a(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function r(t,e){return a(t)?t:e}function l(t,e){return void 0===t?e:t}const h=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,c=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function d(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)}function u(t,e,i,s){let a,r,l;if(n(t))if(r=t.length,s)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;at,x:t=>t.x,y:t=>t.y};function v(t){const e=t.split("."),i=[];let s="";for(const t of e)s+=t,s.endsWith("\\")?s=s.slice(0,-1)+".":(i.push(s),s="");return i}function M(t,e){const i=y[e]||(y[e]=function(t){const e=v(t);return t=>{for(const i of e){if(""===i)break;t=t&&t[i]}return t}}(e));return i(t)}function w(t){return t.charAt(0).toUpperCase()+t.slice(1)}const k=t=>void 0!==t,S=t=>"function"==typeof t,P=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function D(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const C=Math.PI,O=2*C,A=O+C,T=Number.POSITIVE_INFINITY,L=C/180,E=C/2,R=C/4,I=2*C/3,z=Math.log10,F=Math.sign;function V(t,e,i){return Math.abs(t-e)t-e)).pop(),e}function N(t){return!isNaN(parseFloat(t))&&isFinite(t)}function H(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function j(t,e,i){let s,n,o;for(s=0,n=t.length;sl&&h=Math.min(e,i)-s&&t<=Math.max(e,i)+s}function et(t,e,i){i=i||(i=>t[i]1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const it=(t,e,i,s)=>et(t,i,s?s=>{const n=t[s][e];return nt[s][e]et(t,i,(s=>t[s][e]>=i));function nt(t,e,i){let s=0,n=t.length;for(;ss&&t[n-1]>i;)n--;return s>0||n{const i="_onData"+w(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"==typeof t[i]&&t[i](...e)})),n}})})))}function rt(t,e){const i=t._chartjs;if(!i)return;const s=i.listeners,n=s.indexOf(e);-1!==n&&s.splice(n,1),s.length>0||(ot.forEach((e=>{delete t[e]})),delete t._chartjs)}function lt(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const ht="undefined"==typeof window?function(t){return t()}:window.requestAnimationFrame;function ct(t,e){let i=[],s=!1;return function(...n){i=n,s||(s=!0,ht.call(window,(()=>{s=!1,t.apply(e,i)})))}}function dt(t,e){let i;return function(...s){return e?(clearTimeout(i),i=setTimeout(t,e,s)):t.apply(this,s),e}}const ut=t=>"start"===t?"left":"end"===t?"right":"center",ft=(t,e,i)=>"start"===t?e:"end"===t?i:(e+i)/2,gt=(t,e,i,s)=>t===(s?"left":"right")?i:"center"===t?(e+i)/2:e;function pt(t,e,i){const s=e.length;let n=0,o=s;if(t._sorted){const{iScale:a,_parsed:r}=t,l=a.axis,{min:h,max:c,minDefined:d,maxDefined:u}=a.getUserBounds();d&&(n=J(Math.min(it(r,l,h).lo,i?s:it(e,l,a.getPixelForValue(h)).lo),0,s-1)),o=u?J(Math.max(it(r,a.axis,c,!0).hi+1,i?0:it(e,l,a.getPixelForValue(c),!0).hi+1),n,s)-n:s-n}return{start:n,count:o}}function mt(t){const{xScale:e,yScale:i,_scaleRanges:s}=t,n={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!s)return t._scaleRanges=n,!0;const o=s.xmin!==e.min||s.xmax!==e.max||s.ymin!==i.min||s.ymax!==i.max;return Object.assign(s,n),o}class bt{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,i,s){const n=e.listeners[s],o=e.duration;n.forEach((s=>s({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)})))}_refresh(){this._request||(this._running=!0,this._request=ht.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((i,s)=>{if(!i.running||!i.items.length)return;const n=i.items;let o,a=n.length-1,r=!1;for(;a>=0;--a)o=n[a],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),r=!0):(n[a]=n[n.length-1],n.pop());r&&(s.draw(),this._notify(s,i,t,"progress")),n.length||(i.running=!1,this._notify(s,i,t,"complete"),i.initial=!1),e+=n.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var xt=new bt; +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){"use strict";var t=Object.freeze({__proto__:null,get Colors(){return Go},get Decimation(){return Qo},get Filler(){return ma},get Legend(){return ya},get SubTitle(){return ka},get Title(){return Ma},get Tooltip(){return Ba}});function e(){}const i=(()=>{let t=0;return()=>t++})();function s(t){return null==t}function n(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function o(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function a(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function r(t,e){return a(t)?t:e}function l(t,e){return void 0===t?e:t}const h=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,c=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function d(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)}function u(t,e,i,s){let a,r,l;if(n(t))if(r=t.length,s)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;at,x:t=>t.x,y:t=>t.y};function v(t){const e=t.split("."),i=[];let s="";for(const t of e)s+=t,s.endsWith("\\")?s=s.slice(0,-1)+".":(i.push(s),s="");return i}function M(t,e){const i=y[e]||(y[e]=function(t){const e=v(t);return t=>{for(const i of e){if(""===i)break;t=t&&t[i]}return t}}(e));return i(t)}function w(t){return t.charAt(0).toUpperCase()+t.slice(1)}const k=t=>void 0!==t,S=t=>"function"==typeof t,P=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function D(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const C=Math.PI,O=2*C,A=O+C,T=Number.POSITIVE_INFINITY,L=C/180,E=C/2,R=C/4,I=2*C/3,z=Math.log10,F=Math.sign;function V(t,e,i){return Math.abs(t-e)t-e)).pop(),e}function N(t){return!isNaN(parseFloat(t))&&isFinite(t)}function H(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function j(t,e,i){let s,n,o;for(s=0,n=t.length;sl&&h=Math.min(e,i)-s&&t<=Math.max(e,i)+s}function et(t,e,i){i=i||(i=>t[i]1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const it=(t,e,i,s)=>et(t,i,s?s=>{const n=t[s][e];return nt[s][e]et(t,i,(s=>t[s][e]>=i));function nt(t,e,i){let s=0,n=t.length;for(;ss&&t[n-1]>i;)n--;return s>0||n{const i="_onData"+w(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"==typeof t[i]&&t[i](...e)})),n}})})))}function rt(t,e){const i=t._chartjs;if(!i)return;const s=i.listeners,n=s.indexOf(e);-1!==n&&s.splice(n,1),s.length>0||(ot.forEach((e=>{delete t[e]})),delete t._chartjs)}function lt(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const ht="undefined"==typeof window?function(t){return t()}:window.requestAnimationFrame;function ct(t,e){let i=[],s=!1;return function(...n){i=n,s||(s=!0,ht.call(window,(()=>{s=!1,t.apply(e,i)})))}}function dt(t,e){let i;return function(...s){return e?(clearTimeout(i),i=setTimeout(t,e,s)):t.apply(this,s),e}}const ut=t=>"start"===t?"left":"end"===t?"right":"center",ft=(t,e,i)=>"start"===t?e:"end"===t?i:(e+i)/2,gt=(t,e,i,s)=>t===(s?"left":"right")?i:"center"===t?(e+i)/2:e;function pt(t,e,i){const s=e.length;let n=0,o=s;if(t._sorted){const{iScale:a,_parsed:r}=t,l=a.axis,{min:h,max:c,minDefined:d,maxDefined:u}=a.getUserBounds();d&&(n=J(Math.min(it(r,l,h).lo,i?s:it(e,l,a.getPixelForValue(h)).lo),0,s-1)),o=u?J(Math.max(it(r,a.axis,c,!0).hi+1,i?0:it(e,l,a.getPixelForValue(c),!0).hi+1),n,s)-n:s-n}return{start:n,count:o}}function mt(t){const{xScale:e,yScale:i,_scaleRanges:s}=t,n={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!s)return t._scaleRanges=n,!0;const o=s.xmin!==e.min||s.xmax!==e.max||s.ymin!==i.min||s.ymax!==i.max;return Object.assign(s,n),o}class xt{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,i,s){const n=e.listeners[s],o=e.duration;n.forEach((s=>s({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)})))}_refresh(){this._request||(this._running=!0,this._request=ht.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((i,s)=>{if(!i.running||!i.items.length)return;const n=i.items;let o,a=n.length-1,r=!1;for(;a>=0;--a)o=n[a],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),r=!0):(n[a]=n[n.length-1],n.pop());r&&(s.draw(),this._notify(s,i,t,"progress")),n.length||(i.running=!1,this._notify(s,i,t,"complete"),i.initial=!1),e+=n.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var bt=new xt; /*! * @kurkle/color v0.3.2 * https://github.com/kurkle/color#readme * (c) 2023 Jukka Kurkela * Released under the MIT License - */function _t(t){return t+.5|0}const yt=(t,e,i)=>Math.max(Math.min(t,i),e);function vt(t){return yt(_t(2.55*t),0,255)}function Mt(t){return yt(_t(255*t),0,255)}function wt(t){return yt(_t(t/2.55)/100,0,1)}function kt(t){return yt(_t(100*t),0,100)}const St={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pt=[..."0123456789ABCDEF"],Dt=t=>Pt[15&t],Ct=t=>Pt[(240&t)>>4]+Pt[15&t],Ot=t=>(240&t)>>4==(15&t);function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const Tt=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Et(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function It(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e>16&255,o>>8&255,255&o]}return t}(),Ht.transparent=[0,0,0,0]);const e=Ht[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $t=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const Yt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Ut=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),s=Ft(s),t.r=s[0],t.g=s[1],t.b=s[2]}}function qt(t,e){return t?Object.assign(e||{},t):t}function Kt(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Mt(t[3]))):(e=qt(t,{r:0,g:0,b:0,a:1})).a=Mt(e.a),e}function Gt(t){return"r"===t.charAt(0)?function(t){const e=$t.exec(t);let i,s,n,o=255;if(e){if(e[7]!==i){const t=+e[7];o=e[8]?vt(t):yt(255*t,0,255)}return i=+e[1],s=+e[3],n=+e[5],i=255&(e[2]?vt(i):yt(i,0,255)),s=255&(e[4]?vt(s):yt(s,0,255)),n=255&(e[6]?vt(n):yt(n,0,255)),{r:i,g:s,b:n,a:o}}}(t):Bt(t)}class Zt{constructor(t){if(t instanceof Zt)return t;const e=typeof t;let i;var s,n,o;"object"===e?i=Kt(t):"string"===e&&(o=(s=t).length,"#"===s[0]&&(4===o||5===o?n={r:255&17*St[s[1]],g:255&17*St[s[2]],b:255&17*St[s[3]],a:5===o?17*St[s[4]]:255}:7!==o&&9!==o||(n={r:St[s[1]]<<4|St[s[2]],g:St[s[3]]<<4|St[s[4]],b:St[s[5]]<<4|St[s[6]],a:9===o?St[s[7]]<<4|St[s[8]]:255})),i=n||jt(t)||Gt(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=qt(this._rgb);return t&&(t.a=wt(t.a)),t}set rgb(t){this._rgb=Kt(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${wt(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):void 0;var t}hexString(){return this._valid?At(this._rgb):void 0}hslString(){return this._valid?function(t){if(!t)return;const e=It(t),i=e[0],s=kt(e[1]),n=kt(e[2]);return t.a<255?`hsla(${i}, ${s}%, ${n}%, ${wt(t.a)})`:`hsl(${i}, ${s}%, ${n}%)`}(this._rgb):void 0}mix(t,e){if(t){const i=this.rgb,s=t.rgb;let n;const o=e===n?.5:e,a=2*o-1,r=i.a-s.a,l=((a*r==-1?a:(a+r)/(1+a*r))+1)/2;n=1-l,i.r=255&l*i.r+n*s.r+.5,i.g=255&l*i.g+n*s.g+.5,i.b=255&l*i.b+n*s.b+.5,i.a=o*i.a+(1-o)*s.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=function(t,e,i){const s=Ut(wt(t.r)),n=Ut(wt(t.g)),o=Ut(wt(t.b));return{r:Mt(Yt(s+i*(Ut(wt(e.r))-s))),g:Mt(Yt(n+i*(Ut(wt(e.g))-n))),b:Mt(Yt(o+i*(Ut(wt(e.b))-o))),a:t.a+i*(e.a-t.a)}}(this._rgb,t._rgb,e)),this}clone(){return new Zt(this.rgb)}alpha(t){return this._rgb.a=Mt(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=_t(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return Xt(this._rgb,2,t),this}darken(t){return Xt(this._rgb,2,-t),this}saturate(t){return Xt(this._rgb,1,t),this}desaturate(t){return Xt(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=It(t);i[0]=Vt(i[0]+e),i=Ft(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function Jt(t){if(t&&"object"==typeof t){const e=t.toString();return"[object CanvasPattern]"===e||"[object CanvasGradient]"===e}return!1}function Qt(t){return Jt(t)?t:new Zt(t)}function te(t){return Jt(t)?t:new Zt(t).saturate(.5).darken(.1).hexString()}const ee=["x","y","borderWidth","radius","tension"],ie=["color","borderColor","backgroundColor"];const se=new Map;function ne(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let s=se.get(i);return s||(s=new Intl.NumberFormat(t,e),se.set(i,s)),s}(e,i).format(t)}const oe={values:t=>n(t)?t:""+t,numeric(t,e,i){if(0===t)return"0";const s=this.chart.options.locale;let n,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e<1e-4||e>1e15)&&(n="scientific"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const a=z(Math.abs(o)),r=isNaN(a)?1:Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),ne(t,s,l)},logarithmic(t,e,i){if(0===t)return"0";const s=i[e].significand||t/Math.pow(10,Math.floor(z(t)));return[1,2,3,5,10,15].includes(s)||e>.8*i.length?oe.numeric.call(this,t,e,i):""}};var ae={formatters:oe};const re=Object.create(null),le=Object.create(null);function he(t,e){if(!e)return t;const i=e.split(".");for(let e=0,s=i.length;et.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>te(e.backgroundColor),this.hoverBorderColor=(t,e)=>te(e.borderColor),this.hoverColor=(t,e)=>te(e.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(e)}set(t,e){return ce(this,t,e)}get(t){return he(this,t)}describe(t,e){return ce(le,t,e)}override(t,e){return ce(re,t,e)}route(t,e,i,s){const n=he(this,t),a=he(this,i),r="_"+e;Object.defineProperties(n,{[r]:{value:n[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[r],e=a[s];return o(t)?Object.assign({},e,t):l(t,e)},set(t){this[r]=t}}})}apply(t){t.forEach((t=>t(this)))}}var ue=new de({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>"onProgress"!==t&&"onComplete"!==t&&"fn"!==t}),t.set("animations",{colors:{type:"color",properties:ie},numbers:{type:"number",properties:ee}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>0|t}}}})},function(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ae.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&"callback"!==t&&"parser"!==t,_indexable:t=>"borderDash"!==t&&"tickBorderDash"!==t&&"dash"!==t}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:t=>"backdropPadding"!==t&&"callback"!==t,_indexable:t=>"backdropPadding"!==t})}]);function fe(){return"undefined"!=typeof window&&"undefined"!=typeof document}function ge(t){let e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e}function pe(t,e,i){let s;return"string"==typeof t?(s=parseInt(t,10),-1!==t.indexOf("%")&&(s=s/100*e.parentNode[i])):s=t,s}const me=t=>t.ownerDocument.defaultView.getComputedStyle(t,null);function be(t,e){return me(t).getPropertyValue(e)}const xe=["top","right","bottom","left"];function _e(t,e,i){const s={};i=i?"-"+i:"";for(let n=0;n<4;n++){const o=xe[n];s[o]=parseFloat(t[e+"-"+o+i])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}const ye=(t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot);function ve(t,e){if("native"in t)return t;const{canvas:i,currentDevicePixelRatio:s}=e,n=me(i),o="border-box"===n.boxSizing,a=_e(n,"padding"),r=_e(n,"border","width"),{x:l,y:h,box:c}=function(t,e){const i=t.touches,s=i&&i.length?i[0]:t,{offsetX:n,offsetY:o}=s;let a,r,l=!1;if(ye(n,o,t.target))a=n,r=o;else{const t=e.getBoundingClientRect();a=s.clientX-t.left,r=s.clientY-t.top,l=!0}return{x:a,y:r,box:l}}(t,i),d=a.left+(c&&r.left),u=a.top+(c&&r.top);let{width:f,height:g}=e;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)/f*i.width/s),y:Math.round((h-u)/g*i.height/s)}}const Me=t=>Math.round(10*t)/10;function we(t,e,i,s){const n=me(t),o=_e(n,"margin"),a=pe(n.maxWidth,t,"clientWidth")||T,r=pe(n.maxHeight,t,"clientHeight")||T,l=function(t,e,i){let s,n;if(void 0===e||void 0===i){const o=ge(t);if(o){const t=o.getBoundingClientRect(),a=me(o),r=_e(a,"border","width"),l=_e(a,"padding");e=t.width-l.width-r.width,i=t.height-l.height-r.height,s=pe(a.maxWidth,o,"clientWidth"),n=pe(a.maxHeight,o,"clientHeight")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:s||T,maxHeight:n||T}}(t,e,i);let{width:h,height:c}=l;if("content-box"===n.boxSizing){const t=_e(n,"border","width"),e=_e(n,"padding");h-=e.width+t.width,c-=e.height+t.height}h=Math.max(0,h-o.width),c=Math.max(0,s?h/s:c-o.height),h=Me(Math.min(h,a,l.maxWidth)),c=Me(Math.min(c,r,l.maxHeight)),h&&!c&&(c=Me(h/2));return(void 0!==e||void 0!==i)&&s&&l.height&&c>l.height&&(c=l.height,h=Me(Math.floor(c*s))),{width:h,height:c}}function ke(t,e,i){const s=e||1,n=Math.floor(t.height*s),o=Math.floor(t.width*s);t.height=Math.floor(t.height),t.width=Math.floor(t.width);const a=t.canvas;return a.style&&(i||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==s||a.height!==n||a.width!==o)&&(t.currentDevicePixelRatio=s,a.height=n,a.width=o,t.ctx.setTransform(s,0,0,s,0,0),!0)}const Se=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};fe()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch(t){}return t}();function Pe(t,e){const i=be(t,e),s=i&&i.match(/^(\d+)(\.\d+)?px$/);return s?+s[1]:void 0}function De(t){return!t||s(t.size)||s(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function Ce(t,e,i,s,n){let o=e[n];return o||(o=e[n]=t.measureText(n).width,i.push(n)),o>s&&(s=o),s}function Oe(t,e,i,s){let o=(s=s||{}).data=s.data||{},a=s.garbageCollect=s.garbageCollect||[];s.font!==e&&(o=s.data={},a=s.garbageCollect=[],s.font=e),t.save(),t.font=e;let r=0;const l=i.length;let h,c,d,u,f;for(h=0;hi.length){for(h=0;h0&&t.stroke()}}function Re(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.xe.top-i&&t.y0&&""!==r.strokeColor;let c,d;for(t.save(),t.font=a.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]),s(e.rotation)||t.rotate(e.rotation),e.color&&(t.fillStyle=e.color),e.textAlign&&(t.textAlign=e.textAlign),e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,r),c=0;ct[0])){const o=i||t;void 0===s&&(s=ti("_fallback",t));const a={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:o,_fallback:s,_getTarget:n,override:i=>je([i,...t],e,o,s)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete e._keys,delete t[0][i],!0),get:(i,s)=>qe(i,s,(()=>function(t,e,i,s){let n;for(const o of e)if(n=ti(Ue(o,t),i),void 0!==n)return Xe(t,n)?Je(i,s,t,n):n}(s,e,t,i))),getOwnPropertyDescriptor:(t,e)=>Reflect.getOwnPropertyDescriptor(t._scopes[0],e),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(t,e)=>ei(t).includes(e),ownKeys:t=>ei(t),set(t,e,i){const s=t._storage||(t._storage=n());return t[e]=s[e]=i,delete t._keys,!0}})}function $e(t,e,i,s){const a={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:Ye(t,s),setContext:e=>$e(t,e,i,s),override:n=>$e(t.override(n),e,i,s)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete t[i],!0),get:(t,e,i)=>qe(t,e,(()=>function(t,e,i){const{_proxy:s,_context:a,_subProxy:r,_descriptors:l}=t;let h=s[e];S(h)&&l.isScriptable(e)&&(h=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_stack:r}=i;if(r.has(t))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+t);r.add(t);let l=e(o,a||s);r.delete(t),Xe(t,l)&&(l=Je(n._scopes,n,t,l));return l}(e,h,t,i));n(h)&&h.length&&(h=function(t,e,i,s){const{_proxy:n,_context:a,_subProxy:r,_descriptors:l}=i;if(void 0!==a.index&&s(t))return e[a.index%e.length];if(o(e[0])){const i=e,s=n._scopes.filter((t=>t!==i));e=[];for(const o of i){const i=Je(s,n,t,o);e.push($e(i,a,r&&r[t],l))}}return e}(e,h,t,l.isIndexable));Xe(e,h)&&(h=$e(h,a,r&&r[e],l));return h}(t,e,i))),getOwnPropertyDescriptor:(e,i)=>e._descriptors.allKeys?Reflect.has(t,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,i),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(e,i)=>Reflect.has(t,i),ownKeys:()=>Reflect.ownKeys(t),set:(e,i,s)=>(t[i]=s,delete e[i],!0)})}function Ye(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:s=e.indexable,_allKeys:n=e.allKeys}=t;return{allKeys:n,scriptable:i,indexable:s,isScriptable:S(i)?i:()=>i,isIndexable:S(s)?s:()=>s}}const Ue=(t,e)=>t?t+w(e):e,Xe=(t,e)=>o(e)&&"adapters"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function qe(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e))return t[e];const s=i();return t[e]=s,s}function Ke(t,e,i){return S(t)?t(e,i):t}const Ge=(t,e)=>!0===t?e:"string"==typeof t?M(e,t):void 0;function Ze(t,e,i,s,n){for(const o of e){const e=Ge(i,o);if(e){t.add(e);const o=Ke(e._fallback,i,n);if(void 0!==o&&o!==i&&o!==s)return o}else if(!1===e&&void 0!==s&&i!==s)return null}return!1}function Je(t,e,i,s){const a=e._rootScopes,r=Ke(e._fallback,i,s),l=[...t,...a],h=new Set;h.add(s);let c=Qe(h,l,i,r||i,s);return null!==c&&((void 0===r||r===i||(c=Qe(h,l,r,c,s),null!==c))&&je(Array.from(h),[""],a,r,(()=>function(t,e,i){const s=t._getTarget();e in s||(s[e]={});const a=s[e];if(n(a)&&o(i))return i;return a||{}}(e,i,s))))}function Qe(t,e,i,s,n){for(;i;)i=Ze(t,e,i,s,n);return i}function ti(t,e){for(const i of e){if(!i)continue;const e=i[t];if(void 0!==e)return e}}function ei(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const i of t)for(const t of Object.keys(i).filter((t=>!t.startsWith("_"))))e.add(t);return Array.from(e)}(t._scopes)),e}function ii(t,e,i,s){const{iScale:n}=t,{key:o="r"}=this._parsing,a=new Array(s);let r,l,h,c;for(r=0,l=s;re"x"===t?"y":"x";function ai(t,e,i,s){const n=t.skip?e:t,o=e,a=i.skip?e:i,r=q(o,n),l=q(a,o);let h=r/(r+l),c=l/(r+l);h=isNaN(h)?0:h,c=isNaN(c)?0:c;const d=s*h,u=s*c;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function ri(t,e="x"){const i=oi(e),s=t.length,n=Array(s).fill(0),o=Array(s);let a,r,l,h=ni(t,0);for(a=0;a!t.skip))),"monotone"===e.cubicInterpolationMode)ri(t,n);else{let i=s?t[t.length-1]:t[0];for(o=0,a=t.length;o0===t||1===t,di=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*O/i),ui=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*O/i)+1,fi={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*E),easeOutSine:t=>Math.sin(t*E),easeInOutSine:t=>-.5*(Math.cos(C*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>ci(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>ci(t)?t:di(t,.075,.3),easeOutElastic:t=>ci(t)?t:ui(t,.075,.3),easeInOutElastic(t){const e=.1125;return ci(t)?t:t<.5?.5*di(2*t,e,.45):.5+.5*ui(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-fi.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375},easeInOutBounce:t=>t<.5?.5*fi.easeInBounce(2*t):.5*fi.easeOutBounce(2*t-1)+.5};function gi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function pi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:"middle"===s?i<.5?t.y:e.y:"after"===s?i<1?t.y:e.y:i>0?e.y:t.y}}function mi(t,e,i,s){const n={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=gi(t,n,i),r=gi(n,o,i),l=gi(o,e,i),h=gi(a,r,i),c=gi(r,l,i);return gi(h,c,i)}const bi=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,xi=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function _i(t,e){const i=(""+t).match(bi);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t}const yi=t=>+t||0;function vi(t,e){const i={},s=o(e),n=s?Object.keys(e):e,a=o(t)?s?i=>l(t[i],t[e[i]]):e=>t[e]:()=>t;for(const t of n)i[t]=yi(a(t));return i}function Mi(t){return vi(t,{top:"y",right:"x",bottom:"y",left:"x"})}function wi(t){return vi(t,["topLeft","topRight","bottomLeft","bottomRight"])}function ki(t){const e=Mi(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function Si(t,e){t=t||{},e=e||ue.font;let i=l(t.size,e.size);"string"==typeof i&&(i=parseInt(i,10));let s=l(t.style,e.style);s&&!(""+s).match(xi)&&(console.warn('Invalid font style specified: "'+s+'"'),s=void 0);const n={family:l(t.family,e.family),lineHeight:_i(l(t.lineHeight,e.lineHeight),i),size:i,style:s,weight:l(t.weight,e.weight),string:""};return n.string=De(n),n}function Pi(t,e,i,s){let o,a,r,l=!0;for(o=0,a=t.length;oi&&0===t?0:t+e;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function Ci(t,e){return Object.assign(Object.create(t),e)}function Oi(t,e,i){return t?function(t,e){return{x:i=>t+t+e-i,setWidth(t){e=t},textAlign:t=>"center"===t?t:"right"===t?"left":"right",xPlus:(t,e)=>t-e,leftForLtr:(t,e)=>t-e}}(e,i):{x:t=>t,setWidth(t){},textAlign:t=>t,xPlus:(t,e)=>t+e,leftForLtr:(t,e)=>t}}function Ai(t,e){let i,s;"ltr"!==e&&"rtl"!==e||(i=t.canvas.style,s=[i.getPropertyValue("direction"),i.getPropertyPriority("direction")],i.setProperty("direction",e,"important"),t.prevTextDirection=s)}function Ti(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Li(t){return"angle"===t?{between:Z,compare:K,normalize:G}:{between:tt,compare:(t,e)=>t-e,normalize:t=>t}}function Ei({start:t,end:e,count:i,loop:s,style:n}){return{start:t%i,end:e%i,loop:s&&(e-t+1)%i==0,style:n}}function Ri(t,e,i){if(!i)return[t];const{property:s,start:n,end:o}=i,a=e.length,{compare:r,between:l,normalize:h}=Li(s),{start:c,end:d,loop:u,style:f}=function(t,e,i){const{property:s,start:n,end:o}=i,{between:a,normalize:r}=Li(s),l=e.length;let h,c,{start:d,end:u,loop:f}=t;if(f){for(d+=l,u+=l,h=0,c=l;hx||l(n,b,p)&&0!==r(n,b),v=()=>!x||0===r(o,p)||l(o,b,p);for(let t=c,i=c;t<=d;++t)m=e[t%a],m.skip||(p=h(m[s]),p!==b&&(x=l(p,n,o),null===_&&y()&&(_=0===r(p,n)?t:i),null!==_&&v()&&(g.push(Ei({start:_,end:t,loop:u,count:a,style:f})),_=null),i=t,b=p));return null!==_&&g.push(Ei({start:_,end:d,loop:u,count:a,style:f})),g}function Ii(t,e){const i=[],s=t.segments;for(let n=0;nn&&t[o%e].skip;)o--;return o%=e,{start:n,end:o}}(i,n,o,s);if(!0===s)return Fi(t,[{start:a,end:r,loop:o}],i,e);return Fi(t,function(t,e,i,s){const n=t.length,o=[];let a,r=e,l=t[e];for(a=e+1;a<=i;++a){const i=t[a%n];i.skip||i.stop?l.skip||(s=!1,o.push({start:e%n,end:(a-1)%n,loop:s}),e=r=i.stop?a:null):(r=a,l.skip&&(e=a)),l=i}return null!==r&&o.push({start:e%n,end:r%n,loop:s}),o}(i,a,r{t[a](e[i],n)&&(o.push({element:t,datasetIndex:s,index:l}),r=r||t.inRange(e.x,e.y,n))})),s&&!r?[]:o}var Xi={evaluateInteractionItems:Hi,modes:{index(t,e,i,s){const n=ve(e,t),o=i.axis||"x",a=i.includeInvisible||!1,r=i.intersect?ji(t,n,o,s,a):Yi(t,n,o,!1,s,a),l=[];return r.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=r[0].index,i=t.data[e];i&&!i.skip&&l.push({element:i,datasetIndex:t.index,index:e})})),l):[]},dataset(t,e,i,s){const n=ve(e,t),o=i.axis||"xy",a=i.includeInvisible||!1;let r=i.intersect?ji(t,n,o,s,a):Yi(t,n,o,!1,s,a);if(r.length>0){const e=r[0].datasetIndex,i=t.getDatasetMeta(e).data;r=[];for(let t=0;tji(t,ve(e,t),i.axis||"xy",s,i.includeInvisible||!1),nearest(t,e,i,s){const n=ve(e,t),o=i.axis||"xy",a=i.includeInvisible||!1;return Yi(t,n,o,i.intersect,s,a)},x:(t,e,i,s)=>Ui(t,ve(e,t),"x",i.intersect,s),y:(t,e,i,s)=>Ui(t,ve(e,t),"y",i.intersect,s)}};const qi=["left","top","right","bottom"];function Ki(t,e){return t.filter((t=>t.pos===e))}function Gi(t,e){return t.filter((t=>-1===qi.indexOf(t.pos)&&t.box.axis===e))}function Zi(t,e){return t.sort(((t,i)=>{const s=e?i:t,n=e?t:i;return s.weight===n.weight?s.index-n.index:s.weight-n.weight}))}function Ji(t,e){const i=function(t){const e={};for(const i of t){const{stack:t,pos:s,stackWeight:n}=i;if(!t||!qi.includes(s))continue;const o=e[t]||(e[t]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=n}return e}(t),{vBoxMaxWidth:s,hBoxMaxHeight:n}=e;let o,a,r;for(o=0,a=t.length;o{s[t]=Math.max(e[t],i[t])})),s}return s(t?["left","right"]:["top","bottom"])}function ss(t,e,i,s){const n=[];let o,a,r,l,h,c;for(o=0,a=t.length,h=0;ot.box.fullSize)),!0),s=Zi(Ki(e,"left"),!0),n=Zi(Ki(e,"right")),o=Zi(Ki(e,"top"),!0),a=Zi(Ki(e,"bottom")),r=Gi(e,"x"),l=Gi(e,"y");return{fullSize:i,leftAndTop:s.concat(o),rightAndBottom:n.concat(l).concat(a).concat(r),chartArea:Ki(e,"chartArea"),vertical:s.concat(n).concat(l),horizontal:o.concat(a).concat(r)}}(t.boxes),l=r.vertical,h=r.horizontal;u(t.boxes,(t=>{"function"==typeof t.beforeLayout&&t.beforeLayout()}));const c=l.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,d=Object.freeze({outerWidth:e,outerHeight:i,padding:n,availableWidth:o,availableHeight:a,vBoxMaxWidth:o/2/c,hBoxMaxHeight:a/2}),f=Object.assign({},n);ts(f,ki(s));const g=Object.assign({maxPadding:f,w:o,h:a,x:n.left,y:n.top},n),p=Ji(l.concat(h),d);ss(r.fullSize,g,d,p),ss(l,g,d,p),ss(h,g,d,p)&&ss(l,g,d,p),function(t){const e=t.maxPadding;function i(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=i("top"),t.x+=i("left"),i("right"),i("bottom")}(g),os(r.leftAndTop,g,d,p),g.x+=g.w,g.y+=g.h,os(r.rightAndBottom,g,d,p),t.chartArea={left:g.left,top:g.top,right:g.left+g.w,bottom:g.top+g.h,height:g.h,width:g.w},u(r.chartArea,(e=>{const i=e.box;Object.assign(i,t.chartArea),i.update(g.w,g.h,{left:0,top:0,right:0,bottom:0})}))}};class rs{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,s?Math.floor(e/s):i)}}isAttached(t){return!0}updateConfig(t){}}class ls extends rs{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const hs="$chartjs",cs={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},ds=t=>null===t||""===t;const us=!!Se&&{passive:!0};function fs(t,e,i){t&&t.canvas&&t.canvas.removeEventListener(e,i,us)}function gs(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function ps(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||gs(i.addedNodes,s),e=e&&!gs(i.removedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}function ms(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||gs(i.removedNodes,s),e=e&&!gs(i.addedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}const bs=new Map;let xs=0;function _s(){const t=window.devicePixelRatio;t!==xs&&(xs=t,bs.forEach(((e,i)=>{i.currentDevicePixelRatio!==t&&e()})))}function ys(t,e,i){const s=t.canvas,n=s&&ge(s);if(!n)return;const o=ct(((t,e)=>{const s=n.clientWidth;i(t,e),s{const e=t[0],i=e.contentRect.width,s=e.contentRect.height;0===i&&0===s||o(i,s)}));return a.observe(n),function(t,e){bs.size||window.addEventListener("resize",_s),bs.set(t,e)}(t,o),a}function vs(t,e,i){i&&i.disconnect(),"resize"===e&&function(t){bs.delete(t),bs.size||window.removeEventListener("resize",_s)}(t)}function Ms(t,e,i){const s=t.canvas,n=ct((e=>{null!==t.ctx&&i(function(t,e){const i=cs[t.type]||t.type,{x:s,y:n}=ve(t,e);return{type:i,chart:e,native:t,x:void 0!==s?s:null,y:void 0!==n?n:null}}(e,t))}),t);return function(t,e,i){t&&t.addEventListener(e,i,us)}(s,e,n),n}class ws extends rs{acquireContext(t,e){const i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t,e){const i=t.style,s=t.getAttribute("height"),n=t.getAttribute("width");if(t[hs]={initial:{height:s,width:n,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",i.boxSizing=i.boxSizing||"border-box",ds(n)){const e=Pe(t,"width");void 0!==e&&(t.width=e)}if(ds(s))if(""===t.style.height)t.height=t.width/(e||2);else{const e=Pe(t,"height");void 0!==e&&(t.height=e)}}(t,e),i):null}releaseContext(t){const e=t.canvas;if(!e[hs])return!1;const i=e[hs].initial;["height","width"].forEach((t=>{const n=i[t];s(n)?e.removeAttribute(t):e.setAttribute(t,n)}));const n=i.style||{};return Object.keys(n).forEach((t=>{e.style[t]=n[t]})),e.width=e.width,delete e[hs],!0}addEventListener(t,e,i){this.removeEventListener(t,e);const s=t.$proxies||(t.$proxies={}),n={attach:ps,detach:ms,resize:ys}[e]||Ms;s[e]=n(t,e,i)}removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),s=i[e];if(!s)return;({attach:vs,detach:vs,resize:vs}[e]||fs)(t,e,s),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return we(t,e,i,s)}isAttached(t){const e=ge(t);return!(!e||!e.isConnected)}}function ks(t){return!fe()||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas?ls:ws}var Ss=Object.freeze({__proto__:null,BasePlatform:rs,BasicPlatform:ls,DomPlatform:ws,_detectPlatform:ks});const Ps="transparent",Ds={boolean:(t,e,i)=>i>.5?e:t,color(t,e,i){const s=Qt(t||Ps),n=s.valid&&Qt(e||Ps);return n&&n.valid?n.mix(s,i).hexString():e},number:(t,e,i)=>t+(e-t)*i};class Cs{constructor(t,e,i,s){const n=e[i];s=Pi([t.to,s,n,t.from]);const o=Pi([t.from,n,s]);this._active=!0,this._fn=t.fn||Ds[t.type||typeof o],this._easing=fi[t.easing]||fi.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);const s=this._target[this._prop],n=i-this._start,o=this._duration-n;this._start=i,this._duration=Math.floor(Math.max(o,t.duration)),this._total+=n,this._loop=!!t.loop,this._to=Pi([t.to,e,s,t.from]),this._from=Pi([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,i=this._duration,s=this._prop,n=this._from,o=this._loop,a=this._to;let r;if(this._active=n!==a&&(o||e1?2-r:r,r=this._easing(Math.min(1,Math.max(0,r))),this._target[s]=this._fn(n,a,r))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,i)=>{t.push({res:e,rej:i})}))}_notify(t){const e=t?"res":"rej",i=this._promises||[];for(let t=0;t{const a=t[s];if(!o(a))return;const r={};for(const t of e)r[t]=a[t];(n(a.properties)&&a.properties||[s]).forEach((t=>{t!==s&&i.has(t)||i.set(t,r)}))}))}_animateOptions(t,e){const i=e.options,s=function(t,e){if(!e)return;let i=t.options;if(!i)return void(t.options=e);i.$shared&&(t.options=i=Object.assign({},i,{$shared:!1,$animations:{}}));return i}(t,i);if(!s)return[];const n=this._createAnimations(s,i);return i.$shared&&function(t,e){const i=[],s=Object.keys(e);for(let e=0;e{t.options=i}),(()=>{})),n}_createAnimations(t,e){const i=this._properties,s=[],n=t.$animations||(t.$animations={}),o=Object.keys(e),a=Date.now();let r;for(r=o.length-1;r>=0;--r){const l=o[r];if("$"===l.charAt(0))continue;if("options"===l){s.push(...this._animateOptions(t,e));continue}const h=e[l];let c=n[l];const d=i.get(l);if(c){if(d&&c.active()){c.update(d,h,a);continue}c.cancel()}d&&d.duration?(n[l]=c=new Cs(d,t,l,h),s.push(c)):t[l]=h}return s}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const i=this._createAnimations(t,e);return i.length?(xt.add(this._chart,i),!0):void 0}}function As(t,e){const i=t&&t.options||{},s=i.reverse,n=void 0===i.min?e:0,o=void 0===i.max?e:0;return{start:s?o:n,end:s?n:o}}function Ts(t,e){const i=[],s=t._getSortedDatasetMetas(e);let n,o;for(n=0,o=s.length;n0||!i&&e<0)return n.index}return null}function zs(t,e){const{chart:i,_cachedMeta:s}=t,n=i._stacks||(i._stacks={}),{iScale:o,vScale:a,index:r}=s,l=o.axis,h=a.axis,c=function(t,e,i){return`${t.id}.${e.id}.${i.stack||i.type}`}(o,a,s),d=e.length;let u;for(let t=0;ti[t].axis===e)).shift()}function Vs(t,e){const i=t.controller.index,s=t.vScale&&t.vScale.axis;if(s){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[s]||void 0===e[s][i])return;delete e[s][i],void 0!==e[s]._visualValues&&void 0!==e[s]._visualValues[i]&&delete e[s]._visualValues[i]}}}const Bs=t=>"reset"===t||"none"===t,Ws=(t,e)=>e?t:Object.assign({},t);class Ns{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=Es(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&Vs(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(t,e,i,s)=>"x"===t?e:"r"===t?s:i,n=e.xAxisID=l(i.xAxisID,Fs(t,"x")),o=e.yAxisID=l(i.yAxisID,Fs(t,"y")),a=e.rAxisID=l(i.rAxisID,Fs(t,"r")),r=e.indexAxis,h=e.iAxisID=s(r,n,o,a),c=e.vAxisID=s(r,o,n,a);e.xScale=this.getScaleForId(n),e.yScale=this.getScaleForId(o),e.rScale=this.getScaleForId(a),e.iScale=this.getScaleForId(h),e.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&rt(this._data,this),t._stacked&&Vs(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if(o(e))this._data=function(t){const e=Object.keys(t),i=new Array(e.length);let s,n,o;for(s=0,n=e.length;s0&&i._parsed[t-1];if(!1===this._parsing)i._parsed=s,i._sorted=!0,d=s;else{d=n(s[t])?this.parseArrayData(i,s,t,e):o(s[t])?this.parseObjectData(i,s,t,e):this.parsePrimitiveData(i,s,t,e);const a=()=>null===c[l]||f&&c[l]t&&!e.hidden&&e._stacked&&{keys:Ts(i,!0),values:null})(e,i,this.chart),h={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:c,max:d}=function(t){const{min:e,max:i,minDefined:s,maxDefined:n}=t.getUserBounds();return{min:s?e:Number.NEGATIVE_INFINITY,max:n?i:Number.POSITIVE_INFINITY}}(r);let u,f;function g(){f=s[u];const e=f[r.axis];return!a(f[t.axis])||c>e||d=0;--u)if(!g()){this.updateRangeFromParsed(h,t,f,l);break}return h}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let s,n,o;for(s=0,n=e.length;s=0&&tthis.getContext(i,s,e)),c);return f.$shared&&(f.$shared=r,n[o]=Object.freeze(Ws(f,r))),f}_resolveAnimations(t,e,i){const s=this.chart,n=this._cachedDataOpts,o=`animation-${e}`,a=n[o];if(a)return a;let r;if(!1!==s.options.animation){const s=this.chart.config,n=s.datasetAnimationScopeKeys(this._type,e),o=s.getOptionScopes(this.getDataset(),n);r=s.createResolver(o,this.getContext(t,i,e))}const l=new Os(s,r&&r.animations);return r&&r._cacheable&&(n[o]=Object.freeze(l)),l}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||Bs(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const i=this.resolveDataElementOptions(t,e),s=this._sharedOptions,n=this.getSharedOptions(i),o=this.includeOptions(e,n)||n!==s;return this.updateSharedOptions(n,e,i),{sharedOptions:n,includeOptions:o}}updateElement(t,e,i,s){Bs(s)?Object.assign(t,i):this._resolveAnimations(e,s).update(t,i)}updateSharedOptions(t,e,i){t&&!Bs(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,s){t.active=s;const n=this.getStyle(e,s);this._resolveAnimations(e,i,s).update(t,{options:!s&&this.getSharedOptions(n)||n})}removeHoverStyle(t,e,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,i=this._cachedMeta.data;for(const[t,e,i]of this._syncList)this[t](e,i);this._syncList=[];const s=i.length,n=e.length,o=Math.min(n,s);o&&this.parse(0,o),n>s?this._insertElements(s,n-s,t):n{for(t.length+=e,a=t.length-1;a>=o;a--)t[a]=t[a-e]};for(r(n),a=t;a{s[t]=i[t]&&i[t].active()?i[t]._to:this[t]})),s}}function js(t,e){const i=t.options.ticks,n=function(t){const e=t.options.offset,i=t._tickSize(),s=t._length/i+(e?0:1),n=t._maxLength/i;return Math.floor(Math.min(s,n))}(t),o=Math.min(i.maxTicksLimit||n,n),a=i.major.enabled?function(t){const e=[];let i,s;for(i=0,s=t.length;io)return function(t,e,i,s){let n,o=0,a=i[0];for(s=Math.ceil(s),n=0;nn)return e}return Math.max(n,1)}(a,e,o);if(r>0){let t,i;const n=r>1?Math.round((h-l)/(r-1)):null;for($s(e,c,d,s(n)?0:l-n,l),t=0,i=r-1;t"top"===e||"left"===e?t[e]+i:t[e]-i,Us=(t,e)=>Math.min(e||t,t);function Xs(t,e){const i=[],s=t.length/e,n=t.length;let o=0;for(;oa+r)))return h}function Ks(t){return t.drawTicks?t.tickLength:0}function Gs(t,e){if(!t.display)return 0;const i=Si(t.font,e),s=ki(t.padding);return(n(t.text)?t.text.length:1)*i.lineHeight+s.height}function Zs(t,e,i){let s=ut(t);return(i&&"right"!==e||!i&&"right"===e)&&(s=(t=>"left"===t?"right":"right"===t?"left":t)(s)),s}class Js extends Hs{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,e){return t}getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:i,_suggestedMax:s}=this;return t=r(t,Number.POSITIVE_INFINITY),e=r(e,Number.NEGATIVE_INFINITY),i=r(i,Number.POSITIVE_INFINITY),s=r(s,Number.NEGATIVE_INFINITY),{min:r(t,i),max:r(e,s),minDefined:a(t),maxDefined:a(e)}}getMinMax(t){let e,{min:i,max:s,minDefined:n,maxDefined:o}=this.getUserBounds();if(n&&o)return{min:i,max:s};const a=this.getMatchingVisibleMetas();for(let r=0,l=a.length;rs?s:i,s=n&&i>s?i:s,{min:r(i,r(s,i)),max:r(s,r(i,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){d(this.options.beforeUpdate,[this])}update(t,e,i){const{beginAtZero:s,grace:n,ticks:o}=this.options,a=o.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=Di(this,n,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const r=a=n||i<=1||!this.isHorizontal())return void(this.labelRotation=s);const h=this._getLabelSizes(),c=h.widest.width,d=h.highest.height,u=J(this.chart.width-c,0,this.maxWidth);o=t.offset?this.maxWidth/i:u/(i-1),c+6>o&&(o=u/(i-(t.offset?.5:1)),a=this.maxHeight-Ks(t.grid)-e.padding-Gs(t.title,this.chart.options.font),r=Math.sqrt(c*c+d*d),l=Y(Math.min(Math.asin(J((h.highest.height+6)/o,-1,1)),Math.asin(J(a/r,-1,1))-Math.asin(J(d/r,-1,1)))),l=Math.max(s,Math.min(n,l))),this.labelRotation=l}afterCalculateLabelRotation(){d(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){d(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:n}}=this,o=this._isVisible(),a=this.isHorizontal();if(o){const o=Gs(s,e.options.font);if(a?(t.width=this.maxWidth,t.height=Ks(n)+o):(t.height=this.maxHeight,t.width=Ks(n)+o),i.display&&this.ticks.length){const{first:e,last:s,widest:n,highest:o}=this._getLabelSizes(),r=2*i.padding,l=$(this.labelRotation),h=Math.cos(l),c=Math.sin(l);if(a){const e=i.mirror?0:c*n.width+h*o.height;t.height=Math.min(this.maxHeight,t.height+e+r)}else{const e=i.mirror?0:h*n.width+c*o.height;t.width=Math.min(this.maxWidth,t.width+e+r)}this._calculatePadding(e,s,c,h)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,s){const{ticks:{align:n,padding:o},position:a}=this.options,r=0!==this.labelRotation,l="top"!==a&&"x"===this.axis;if(this.isHorizontal()){const a=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let c=0,d=0;r?l?(c=s*t.width,d=i*e.height):(c=i*t.height,d=s*e.width):"start"===n?d=e.width:"end"===n?c=t.width:"inner"!==n&&(c=t.width/2,d=e.width/2),this.paddingLeft=Math.max((c-a+o)*this.width/(this.width-a),0),this.paddingRight=Math.max((d-h+o)*this.width/(this.width-h),0)}else{let i=e.height/2,s=t.height/2;"start"===n?(i=0,s=t.height):"end"===n&&(i=e.height,s=0),this.paddingTop=i+o,this.paddingBottom=s+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){d(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||"bottom"===e||"x"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,i=t.length;e{const i=t.gc,s=i.length/2;let n;if(s>e){for(n=0;n({width:r[t]||0,height:l[t]||0});return{first:P(0),last:P(e-1),widest:P(k),highest:P(S),widths:r,heights:l}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return Q(this._alignToPixels?Ae(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&ta*s?a/i:r/s:r*s0}_computeGridLineItems(t){const e=this.axis,i=this.chart,s=this.options,{grid:n,position:a,border:r}=s,h=n.offset,c=this.isHorizontal(),d=this.ticks.length+(h?1:0),u=Ks(n),f=[],g=r.setContext(this.getContext()),p=g.display?g.width:0,m=p/2,b=function(t){return Ae(i,t,p)};let x,_,y,v,M,w,k,S,P,D,C,O;if("top"===a)x=b(this.bottom),w=this.bottom-u,S=x-m,D=b(t.top)+m,O=t.bottom;else if("bottom"===a)x=b(this.top),D=t.top,O=b(t.bottom)-m,w=x+m,S=this.top+u;else if("left"===a)x=b(this.right),M=this.right-u,k=x-m,P=b(t.left)+m,C=t.right;else if("right"===a)x=b(this.left),P=t.left,C=b(t.right)-m,M=x+m,k=this.left+u;else if("x"===e){if("center"===a)x=b((t.top+t.bottom)/2+.5);else if(o(a)){const t=Object.keys(a)[0],e=a[t];x=b(this.chart.scales[t].getPixelForValue(e))}D=t.top,O=t.bottom,w=x+m,S=w+u}else if("y"===e){if("center"===a)x=b((t.left+t.right)/2);else if(o(a)){const t=Object.keys(a)[0],e=a[t];x=b(this.chart.scales[t].getPixelForValue(e))}M=x-m,k=M-u,P=t.left,C=t.right}const A=l(s.ticks.maxTicksLimit,d),T=Math.max(1,Math.ceil(d/A));for(_=0;_0&&(o-=s/2)}d={left:o,top:n,width:s+e.width,height:i+e.height,color:t.backdropColor}}b.push({label:v,font:P,textOffset:O,options:{rotation:m,color:i,strokeColor:o,strokeWidth:h,textAlign:f,textBaseline:A,translation:[M,w],backdrop:d}})}return b}_getXAxisLabelAlignment(){const{position:t,ticks:e}=this.options;if(-$(this.labelRotation))return"top"===t?"left":"right";let i="center";return"start"===e.align?i="left":"end"===e.align?i="right":"inner"===e.align&&(i="inner"),i}_getYAxisLabelAlignment(t){const{position:e,ticks:{crossAlign:i,mirror:s,padding:n}}=this.options,o=t+n,a=this._getLabelSizes().widest.width;let r,l;return"left"===e?s?(l=this.right+n,"near"===i?r="left":"center"===i?(r="center",l+=a/2):(r="right",l+=a)):(l=this.right-o,"near"===i?r="right":"center"===i?(r="center",l-=a/2):(r="left",l=this.left)):"right"===e?s?(l=this.left+n,"near"===i?r="right":"center"===i?(r="center",l-=a/2):(r="left",l-=a)):(l=this.left+o,"near"===i?r="left":"center"===i?(r="center",l+=a/2):(r="right",l=this.right)):r="right",{textAlign:r,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,e=this.options.position;return"left"===e||"right"===e?{top:0,left:this.left,bottom:t.height,right:this.right}:"top"===e||"bottom"===e?{top:this.top,left:0,bottom:this.bottom,right:t.width}:void 0}drawBackground(){const{ctx:t,options:{backgroundColor:e},left:i,top:s,width:n,height:o}=this;e&&(t.save(),t.fillStyle=e,t.fillRect(i,s,n,o),t.restore())}getLineWidthForValue(t){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const i=this.ticks.findIndex((e=>e.value===t));if(i>=0){return e.setContext(this.getContext(i)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let n,o;const a=(t,e,s)=>{s.width&&s.color&&(i.save(),i.lineWidth=s.width,i.strokeStyle=s.color,i.setLineDash(s.borderDash||[]),i.lineDashOffset=s.borderDashOffset,i.beginPath(),i.moveTo(t.x,t.y),i.lineTo(e.x,e.y),i.stroke(),i.restore())};if(e.display)for(n=0,o=s.length;n{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let n,o;for(n=0,o=e.length;n{const s=i.split("."),n=s.pop(),o=[t].concat(s).join("."),a=e[i].split("."),r=a.pop(),l=a.join(".");ue.route(o,n,l,r)}))}(e,t.defaultRoutes);t.descriptors&&ue.describe(e,t.descriptors)}(t,o,i),this.override&&ue.override(t.id,t.overrides)),o}get(t){return this.items[t]}unregister(t){const e=this.items,i=t.id,s=this.scope;i in e&&delete e[i],s&&i in ue[s]&&(delete ue[s][i],this.override&&delete re[i])}}class tn{constructor(){this.controllers=new Qs(Ns,"datasets",!0),this.elements=new Qs(Hs,"elements"),this.plugins=new Qs(Object,"plugins"),this.scales=new Qs(Js,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,i){[...e].forEach((e=>{const s=i||this._getRegistryForType(e);i||s.isForType(e)||s===this.plugins&&e.id?this._exec(t,s,e):u(e,(e=>{const s=i||this._getRegistryForType(e);this._exec(t,s,e)}))}))}_exec(t,e,i){const s=w(t);d(i["before"+s],[],i),e[t](i),d(i["after"+s],[],i)}_getRegistryForType(t){for(let e=0;et.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(s(e,i),t,"stop"),this._notify(s(i,e),t,"start")}}function nn(t,e){return e||!1!==t?!0===t?{}:t:null}function on(t,{plugin:e,local:i},s,n){const o=t.pluginScopeKeys(e),a=t.getOptionScopes(s,o);return i&&e.defaults&&a.push(e.defaults),t.createResolver(a,n,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function an(t,e){const i=ue.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||i.indexAxis||"x"}function rn(t){if("x"===t||"y"===t||"r"===t)return t}function ln(t,...e){if(rn(t))return t;for(const s of e){const e=s.axis||("top"===(i=s.position)||"bottom"===i?"x":"left"===i||"right"===i?"y":void 0)||t.length>1&&rn(t[0].toLowerCase());if(e)return e}var i;throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function hn(t,e,i){if(i[e+"AxisID"]===t)return{axis:e}}function cn(t,e){const i=re[t.type]||{scales:{}},s=e.scales||{},n=an(t.type,e),a=Object.create(null);return Object.keys(s).forEach((e=>{const r=s[e];if(!o(r))return console.error(`Invalid scale configuration for scale: ${e}`);if(r._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${e}`);const l=ln(e,r,function(t,e){if(e.data&&e.data.datasets){const i=e.data.datasets.filter((e=>e.xAxisID===t||e.yAxisID===t));if(i.length)return hn(t,"x",i[0])||hn(t,"y",i[0])}return{}}(e,t),ue.scales[r.type]),h=function(t,e){return t===e?"_index_":"_value_"}(l,n),c=i.scales||{};a[e]=x(Object.create(null),[{axis:l},r,c[l],c[h]])})),t.data.datasets.forEach((i=>{const n=i.type||t.type,o=i.indexAxis||an(n,e),r=(re[n]||{}).scales||{};Object.keys(r).forEach((t=>{const e=function(t,e){let i=t;return"_index_"===t?i=e:"_value_"===t&&(i="x"===e?"y":"x"),i}(t,o),n=i[e+"AxisID"]||e;a[n]=a[n]||Object.create(null),x(a[n],[{axis:e},s[n],r[t]])}))})),Object.keys(a).forEach((t=>{const e=a[t];x(e,[ue.scales[e.type],ue.scale])})),a}function dn(t){const e=t.options||(t.options={});e.plugins=l(e.plugins,{}),e.scales=cn(t,e)}function un(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const fn=new Map,gn=new Set;function pn(t,e){let i=fn.get(t);return i||(i=e(),fn.set(t,i),gn.add(i)),i}const mn=(t,e,i)=>{const s=M(e,i);void 0!==s&&t.add(s)};class bn{constructor(t){this._config=function(t){return(t=t||{}).data=un(t.data),dn(t),t}(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=un(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),dn(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return pn(t,(()=>[[`datasets.${t}`,""]]))}datasetAnimationScopeKeys(t,e){return pn(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]]))}datasetElementScopeKeys(t,e){return pn(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]]))}pluginScopeKeys(t){const e=t.id;return pn(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const i=this._scopeCache;let s=i.get(t);return s&&!e||(s=new Map,i.set(t,s)),s}getOptionScopes(t,e,i){const{options:s,type:n}=this,o=this._cachedScopes(t,i),a=o.get(e);if(a)return a;const r=new Set;e.forEach((e=>{t&&(r.add(t),e.forEach((e=>mn(r,t,e)))),e.forEach((t=>mn(r,s,t))),e.forEach((t=>mn(r,re[n]||{},t))),e.forEach((t=>mn(r,ue,t))),e.forEach((t=>mn(r,le,t)))}));const l=Array.from(r);return 0===l.length&&l.push(Object.create(null)),gn.has(e)&&o.set(e,l),l}chartOptionScopes(){const{options:t,type:e}=this;return[t,re[e]||{},ue.datasets[e]||{},{type:e},ue,le]}resolveNamedOptions(t,e,i,s=[""]){const o={$shared:!0},{resolver:a,subPrefixes:r}=xn(this._resolverCache,t,s);let l=a;if(function(t,e){const{isScriptable:i,isIndexable:s}=Ye(t);for(const o of e){const e=i(o),a=s(o),r=(a||e)&&t[o];if(e&&(S(r)||_n(r))||a&&n(r))return!0}return!1}(a,e)){o.$shared=!1;l=$e(a,i=S(i)?i():i,this.createResolver(t,i,r))}for(const t of e)o[t]=l[t];return o}createResolver(t,e,i=[""],s){const{resolver:n}=xn(this._resolverCache,t,i);return o(e)?$e(n,e,void 0,s):n}}function xn(t,e,i){let s=t.get(e);s||(s=new Map,t.set(e,s));const n=i.join();let o=s.get(n);if(!o){o={resolver:je(e,i),subPrefixes:i.filter((t=>!t.toLowerCase().includes("hover")))},s.set(n,o)}return o}const _n=t=>o(t)&&Object.getOwnPropertyNames(t).some((e=>S(t[e])));const yn=["top","bottom","left","right","chartArea"];function vn(t,e){return"top"===t||"bottom"===t||-1===yn.indexOf(t)&&"x"===e}function Mn(t,e){return function(i,s){return i[t]===s[t]?i[e]-s[e]:i[t]-s[t]}}function wn(t){const e=t.chart,i=e.options.animation;e.notifyPlugins("afterRender"),d(i&&i.onComplete,[t],e)}function kn(t){const e=t.chart,i=e.options.animation;d(i&&i.onProgress,[t],e)}function Sn(t){return fe()&&"string"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Pn={},Dn=t=>{const e=Sn(t);return Object.values(Pn).filter((t=>t.canvas===e)).pop()};function Cn(t,e,i){const s=Object.keys(t);for(const n of s){const s=+n;if(s>=e){const o=t[n];delete t[n],(i>0||s>e)&&(t[s+i]=o)}}}function On(t,e,i){return t.options.clip?t[i]:e[i]}class An{static defaults=ue;static instances=Pn;static overrides=re;static registry=en;static version="4.4.2";static getChart=Dn;static register(...t){en.add(...t),Tn()}static unregister(...t){en.remove(...t),Tn()}constructor(t,e){const s=this.config=new bn(e),n=Sn(t),o=Dn(n);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const a=s.createResolver(s.chartOptionScopes(),this.getContext());this.platform=new(s.platform||ks(n)),this.platform.updateConfig(s);const r=this.platform.acquireContext(n,a.aspectRatio),l=r&&r.canvas,h=l&&l.height,c=l&&l.width;this.id=i(),this.ctx=r,this.canvas=l,this.width=c,this.height=h,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new sn,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=dt((t=>this.update(t)),a.resizeDelay||0),this._dataChanges=[],Pn[this.id]=this,r&&l?(xt.listen(this,"complete",wn),xt.listen(this,"progress",kn),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:n,_aspectRatio:o}=this;return s(t)?e&&o?o:n?i/n:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return en}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():ke(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Te(this.canvas,this.ctx),this}stop(){return xt.stop(this),this}resize(t,e){xt.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,s=this.canvas,n=i.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(s,t,e,n),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),r=this.width?"resize":"attach";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,ke(this,a,!0)&&(this.notifyPlugins("resize",{size:o}),d(i.onResize,[this,o],this),this.attached&&this._doResize(r)&&this.render())}ensureScalesHaveIDs(){u(this.options.scales||{},((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce(((t,e)=>(t[e]=!1,t)),{});let n=[];e&&(n=n.concat(Object.keys(e).map((t=>{const i=e[t],s=ln(t,i),n="r"===s,o="x"===s;return{options:i,dposition:n?"chartArea":o?"bottom":"left",dtype:n?"radialLinear":o?"category":"linear"}})))),u(n,(e=>{const n=e.options,o=n.id,a=ln(o,n),r=l(n.type,e.dtype);void 0!==n.position&&vn(n.position,a)===vn(e.dposition)||(n.position=e.dposition),s[o]=!0;let h=null;if(o in i&&i[o].type===r)h=i[o];else{h=new(en.getScale(r))({id:o,type:r,ctx:this.ctx,chart:this}),i[h.id]=h}h.init(n,t)})),u(s,((t,e)=>{t||delete i[e]})),u(i,(t=>{as.configure(this,t,t.options),as.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort(((t,e)=>t.index-e.index)),i>e){for(let t=e;te.length&&delete this._stacks,t.forEach(((t,i)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(i)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0}))return;const n=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let o=0;for(let t=0,e=this.data.datasets.length;t{t.reset()})),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Mn("z","_idx"));const{_active:a,_lastEvent:r}=this;r?this._eventHandler(r,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){u(this.scales,(t=>{as.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);P(e,i)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:n}of e){Cn(t,s,"_removeElements"===i?-n:n)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+","+t.splice(1).join(",")))),s=i(0);for(let t=1;tt.split(","))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;as.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],u(this.boxes,(t=>{i&&"chartArea"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,i=t._clip,s=!i.disabled,n=function(t,e){const{xScale:i,yScale:s}=t;return i&&s?{left:On(i,e,"left"),right:On(i,e,"right"),top:On(s,e,"top"),bottom:On(s,e,"bottom")}:e}(t,this.chartArea),o={meta:t,index:t.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",o)&&(s&&Ie(e,{left:!1===i.left?0:n.left-i.left,right:!1===i.right?this.width:n.right+i.right,top:!1===i.top?0:n.top-i.top,bottom:!1===i.bottom?this.height:n.bottom+i.bottom}),t.controller.draw(),s&&ze(e),o.cancelable=!1,this.notifyPlugins("afterDatasetDraw",o))}isPointInArea(t){return Re(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,s){const n=Xi.modes[e];return"function"==typeof n?n(this,t,i,s):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let s=i.filter((t=>t&&t._dataset===e)).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=Ci(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return"boolean"==typeof i.hidden?!i.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const s=i?"show":"hide",n=this.getDatasetMeta(t),o=n.controller._resolveAnimations(void 0,s);k(e)?(n.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),o.update(n,{visible:i}),this.update((e=>e.datasetIndex===t?s:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),xt.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,i,s),t[i]=s},s=(t,e,i)=>{t.offsetX=e,t.offsetY=i,this._eventHandler(t)};u(this.options.events,(t=>i(t,s)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(i,s)=>{t[i]&&(e.removeEventListener(this,i,s),delete t[i])},n=(t,e)=>{this.canvas&&this.resize(t,e)};let o;const a=()=>{s("attach",a),this.attached=!0,this.resize(),i("resize",n),i("detach",o)};o=()=>{this.attached=!1,s("resize",n),this._stop(),this._resize(0,0),i("attach",a)},e.isAttached(this.canvas)?a():o()}unbindEvents(){u(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},u(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const s=i?"set":"remove";let n,o,a,r;for("dataset"===e&&(n=this.getDatasetMeta(t[0].datasetIndex),n.controller["_"+s+"DatasetHoverStyle"]()),a=0,r=t.length;a{const i=this.getDatasetMeta(t);if(!i)throw new Error("No dataset found at index "+t);return{datasetIndex:t,element:i.data[e],index:e}}));!f(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin.id===t)).length}_updateHoverStyles(t,e,i){const s=this.options.hover,n=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),o=n(e,t),a=i?t:n(t,e);o.length&&this.updateHoverStyle(o,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},s=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins("beforeEvent",i,s))return;const n=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(n||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:s=[],options:n}=this,o=e,a=this._getActiveElements(t,s,i,o),r=D(t),l=function(t,e,i,s){return i&&"mouseout"!==t.type?s?e:t:null}(t,this._lastEvent,i,r);i&&(this._lastEvent=null,d(n.onHover,[t,a,this],this),r&&d(n.onClick,[t,a,this],this));const h=!f(a,s);return(h||e)&&(this._active=a,this._updateHoverStyles(a,s,e)),this._lastEvent=l,h}_getActiveElements(t,e,i,s){if("mouseout"===t.type)return[];if(!i)return e;const n=this.options.hover;return this.getElementsAtEventForMode(t,n.mode,n,s)}}function Tn(){return u(An.instances,(t=>t._plugins.invalidate()))}function Ln(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class En{static override(t){Object.assign(En.prototype,t)}options;constructor(t){this.options=t||{}}init(){}formats(){return Ln()}parse(){return Ln()}format(){return Ln()}add(){return Ln()}diff(){return Ln()}startOf(){return Ln()}endOf(){return Ln()}}var Rn={_date:En};function In(t){const e=t.iScale,i=function(t,e){if(!t._cache.$bar){const i=t.getMatchingVisibleMetas(e);let s=[];for(let e=0,n=i.length;et-e)))}return t._cache.$bar}(e,t.type);let s,n,o,a,r=e._length;const l=()=>{32767!==o&&-32768!==o&&(k(a)&&(r=Math.min(r,Math.abs(o-a)||r)),a=o)};for(s=0,n=i.length;sMath.abs(r)&&(l=r,h=a),e[i.axis]=h,e._custom={barStart:l,barEnd:h,start:n,end:o,min:a,max:r}}(t,e,i,s):e[i.axis]=i.parse(t,s),e}function Fn(t,e,i,s){const n=t.iScale,o=t.vScale,a=n.getLabels(),r=n===o,l=[];let h,c,d,u;for(h=i,c=i+s;ht.x,i="left",s="right"):(e=t.base"spacing"!==t,_indexable:t=>"spacing"!==t&&!t.startsWith("borderDash")&&!t.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:i,color:s}}=t.legend.options;return e.labels.map(((e,n)=>{const o=t.getDatasetMeta(0).controller.getStyle(n);return{text:e,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,fontColor:s,lineWidth:o.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(n),index:n}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}}}};constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const i=this.getDataset().data,s=this._cachedMeta;if(!1===this._parsing)s._parsed=i;else{let n,a,r=t=>+i[t];if(o(i[t])){const{key:t="value"}=this._parsing;r=e=>+M(i[e],t)}for(n=t,a=t+e;nZ(t,r,l,!0)?1:Math.max(e,e*i,s,s*i),g=(t,e,s)=>Z(t,r,l,!0)?-1:Math.min(e,e*i,s,s*i),p=f(0,h,d),m=f(E,c,u),b=g(C,h,d),x=g(C+E,c,u);s=(p-b)/2,n=(m-x)/2,o=-(p+b)/2,a=-(m+x)/2}return{ratioX:s,ratioY:n,offsetX:o,offsetY:a}}(u,d,r),b=(i.width-o)/f,x=(i.height-o)/g,_=Math.max(Math.min(b,x)/2,0),y=c(this.options.radius,_),v=(y-Math.max(y*r,0))/this._getVisibleDatasetWeightTotal();this.offsetX=p*y,this.offsetY=m*y,s.total=this.calculateTotal(),this.outerRadius=y-v*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-v*l,0),this.updateElements(n,0,n.length,t)}_circumference(t,e){const i=this.options,s=this._cachedMeta,n=this._getCircumference();return e&&i.animation.animateRotate||!this.chart.getDataVisibility(t)||null===s._parsed[t]||s.data[t].hidden?0:this.calculateCircumference(s._parsed[t]*n/O)}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.chartArea,r=o.options.animation,l=(a.left+a.right)/2,h=(a.top+a.bottom)/2,c=n&&r.animateScale,d=c?0:this.innerRadius,u=c?0:this.outerRadius,{sharedOptions:f,includeOptions:g}=this._getSharedOptions(e,s);let p,m=this._getRotation();for(p=0;p0&&!isNaN(t)?O*(Math.abs(t)/e):0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=ne(e._parsed[t],i.options.locale);return{label:s[t]||"",value:n}}getMaxBorderWidth(t){let e=0;const i=this.chart;let s,n,o,a,r;if(!t)for(s=0,n=i.data.datasets.length;s{const o=t.getDatasetMeta(0).controller.getStyle(n);return{text:e,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,fontColor:s,lineWidth:o.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(n),index:n}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=ne(e._parsed[t].r,i.options.locale);return{label:s[t]||"",value:n}}parseObjectData(t,e,i,s){return ii.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){const t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach(((t,i)=>{const s=this.getParsed(i).r;!isNaN(s)&&this.chart.getDataVisibility(i)&&(se.max&&(e.max=s))})),e}_updateRadius(){const t=this.chart,e=t.chartArea,i=t.options,s=Math.min(e.right-e.left,e.bottom-e.top),n=Math.max(s/2,0),o=(n-Math.max(i.cutoutPercentage?n/100*i.cutoutPercentage:1,0))/t.getVisibleDatasetCount();this.outerRadius=n-o*this.index,this.innerRadius=this.outerRadius-o}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.options.animation,r=this._cachedMeta.rScale,l=r.xCenter,h=r.yCenter,c=r.getIndexAngle(0)-.5*C;let d,u=c;const f=360/this.countVisibleElements();for(d=0;d{!isNaN(this.getParsed(i).r)&&this.chart.getDataVisibility(i)&&e++})),e}_computeAngle(t,e,i){return this.chart.getDataVisibility(t)?$(this.resolveDataElementOptions(t,e).angle||i):0}}var Yn=Object.freeze({__proto__:null,BarController:class extends Ns{static id="bar";static defaults={datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}};static overrides={scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}};parsePrimitiveData(t,e,i,s){return Fn(t,e,i,s)}parseArrayData(t,e,i,s){return Fn(t,e,i,s)}parseObjectData(t,e,i,s){const{iScale:n,vScale:o}=t,{xAxisKey:a="x",yAxisKey:r="y"}=this._parsing,l="x"===n.axis?a:r,h="x"===o.axis?a:r,c=[];let d,u,f,g;for(d=i,u=i+s;dt.controller.options.grouped)),o=i.options.stacked,a=[],r=t=>{const i=t.controller.getParsed(e),n=i&&i[t.vScale.axis];if(s(n)||isNaN(n))return!0};for(const i of n)if((void 0===e||!r(i))&&((!1===o||-1===a.indexOf(i.stack)||void 0===o&&void 0===i.stack)&&a.push(i.stack),i.index===t))break;return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,i){const s=this._getStacks(t,i),n=void 0!==e?s.indexOf(e):-1;return-1===n?s.length-1:n}_getRuler(){const t=this.options,e=this._cachedMeta,i=e.iScale,s=[];let n,o;for(n=0,o=e.data.length;n=i?1:-1)}(u,e,r)*a,f===r&&(b-=u/2);const t=e.getPixelForDecimal(0),s=e.getPixelForDecimal(1),o=Math.min(t,s),h=Math.max(t,s);b=Math.max(Math.min(b,h),o),d=b+u,i&&!c&&(l._stacks[e.axis]._visualValues[n]=e.getValueForPixel(d)-e.getValueForPixel(b))}if(b===e.getPixelForValue(r)){const t=F(u)*e.getLineWidthForValue(r)/2;b+=t,u-=t}return{size:u,base:b,head:d,center:d+u/2}}_calculateBarIndexPixels(t,e){const i=e.scale,n=this.options,o=n.skipNull,a=l(n.maxBarThickness,1/0);let r,h;if(e.grouped){const i=o?this._getStackCount(t):e.stackCount,l="flex"===n.barThickness?function(t,e,i,s){const n=e.pixels,o=n[t];let a=t>0?n[t-1]:null,r=t=0;--i)e=Math.max(e,t[i].size(this.resolveDataElementOptions(i))/2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart.data.labels||[],{xScale:s,yScale:n}=e,o=this.getParsed(t),a=s.getLabelForValue(o.x),r=n.getLabelForValue(o.y),l=o._custom;return{label:i[t]||"",value:"("+a+", "+r+(l?", "+l:"")+")"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,i,s){const n="reset"===s,{iScale:o,vScale:a}=this._cachedMeta,{sharedOptions:r,includeOptions:l}=this._getSharedOptions(e,s),h=o.axis,c=a.axis;for(let d=e;d0&&this.getParsed(e-1);for(let i=0;i<_;++i){const g=t[i],_=b?g:{};if(i=x){_.skip=!0;continue}const v=this.getParsed(i),M=s(v[f]),w=_[u]=a.getPixelForValue(v[u],i),k=_[f]=o||M?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,v,l):v[f],i);_.skip=isNaN(w)||isNaN(k)||M,_.stop=i>0&&Math.abs(v[u]-y[u])>m,p&&(_.parsed=v,_.raw=h.data[i]),d&&(_.options=c||this.resolveDataElementOptions(i,g.active?"active":n)),b||this.updateElement(g,i,_,n),y=v}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,s=t.data||[];if(!s.length)return i;const n=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,n,o)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}},PieController:class extends jn{static id="pie";static defaults={cutout:0,rotation:0,circumference:360,radius:"100%"}},PolarAreaController:$n,RadarController:class extends Ns{static id="radar";static defaults={datasetElementType:"line",dataElementType:"point",indexAxis:"r",showLine:!0,elements:{line:{fill:"start"}}};static overrides={aspectRatio:1,scales:{r:{type:"radialLinear"}}};getLabelAndValue(t){const e=this._cachedMeta.vScale,i=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(i[e.axis])}}parseObjectData(t,e,i,s){return ii.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta,i=e.dataset,s=e.data||[],n=e.iScale.getLabels();if(i.points=s,"resize"!==t){const e=this.resolveDatasetElementOptions(t);this.options.showLine||(e.borderWidth=0);const o={_loop:!0,_fullLoop:n.length===s.length,options:e};this.updateElement(i,void 0,o,t)}this.updateElements(s,0,s.length,t)}updateElements(t,e,i,s){const n=this._cachedMeta.rScale,o="reset"===s;for(let a=e;a0&&this.getParsed(e-1);for(let c=e;c0&&Math.abs(i[f]-_[f])>b,m&&(p.parsed=i,p.raw=h.data[c]),u&&(p.options=d||this.resolveDataElementOptions(c,e.active?"active":n)),x||this.updateElement(e,c,p,n),_=i}this.updateSharedOptions(d,n,c)}getMaxOverflow(){const t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let t=0;for(let i=e.length-1;i>=0;--i)t=Math.max(t,e[i].size(this.resolveDataElementOptions(i))/2);return t>0&&t}const i=t.dataset,s=i.options&&i.options.borderWidth||0;if(!e.length)return s;const n=e[0].size(this.resolveDataElementOptions(0)),o=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(s,n,o)/2}}});function Un(t,e,i,s){const n=vi(t.options.borderRadius,["outerStart","outerEnd","innerStart","innerEnd"]);const o=(i-e)/2,a=Math.min(o,s*e/2),r=t=>{const e=(i-Math.min(o,t))*s/2;return J(t,0,Math.min(o,e))};return{outerStart:r(n.outerStart),outerEnd:r(n.outerEnd),innerStart:J(n.innerStart,0,a),innerEnd:J(n.innerEnd,0,a)}}function Xn(t,e,i,s){return{x:i+t*Math.cos(e),y:s+t*Math.sin(e)}}function qn(t,e,i,s,n,o){const{x:a,y:r,startAngle:l,pixelMargin:h,innerRadius:c}=e,d=Math.max(e.outerRadius+s+i-h,0),u=c>0?c+s+i+h:0;let f=0;const g=n-l;if(s){const t=((c>0?c-s:0)+(d>0?d-s:0))/2;f=(g-(0!==t?g*t/(t+s):g))/2}const p=(g-Math.max(.001,g*d-i/C)/d)/2,m=l+p+f,b=n-p-f,{outerStart:x,outerEnd:_,innerStart:y,innerEnd:v}=Un(e,u,d,b-m),M=d-x,w=d-_,k=m+x/M,S=b-_/w,P=u+y,D=u+v,O=m+y/P,A=b-v/D;if(t.beginPath(),o){const e=(k+S)/2;if(t.arc(a,r,d,k,e),t.arc(a,r,d,e,S),_>0){const e=Xn(w,S,a,r);t.arc(e.x,e.y,_,S,b+E)}const i=Xn(D,b,a,r);if(t.lineTo(i.x,i.y),v>0){const e=Xn(D,A,a,r);t.arc(e.x,e.y,v,b+E,A+Math.PI)}const s=(b-v/u+(m+y/u))/2;if(t.arc(a,r,u,b-v/u,s,!0),t.arc(a,r,u,s,m+y/u,!0),y>0){const e=Xn(P,O,a,r);t.arc(e.x,e.y,y,O+Math.PI,m-E)}const n=Xn(M,m,a,r);if(t.lineTo(n.x,n.y),x>0){const e=Xn(M,k,a,r);t.arc(e.x,e.y,x,m-E,k)}}else{t.moveTo(a,r);const e=Math.cos(k)*d+a,i=Math.sin(k)*d+r;t.lineTo(e,i);const s=Math.cos(S)*d+a,n=Math.sin(S)*d+r;t.lineTo(s,n)}t.closePath()}function Kn(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r,options:l}=e,{borderWidth:h,borderJoinStyle:c,borderDash:d,borderDashOffset:u}=l,f="inner"===l.borderAlign;if(!h)return;t.setLineDash(d||[]),t.lineDashOffset=u,f?(t.lineWidth=2*h,t.lineJoin=c||"round"):(t.lineWidth=h,t.lineJoin=c||"bevel");let g=e.endAngle;if(o){qn(t,e,i,s,g,n);for(let e=0;en?(h=n/l,t.arc(o,a,l,i+h,s-h,!0)):t.arc(o,a,n,i+E,s-E),t.closePath(),t.clip()}(t,e,g),o||(qn(t,e,i,s,g,n),t.stroke())}function Gn(t,e,i=e){t.lineCap=l(i.borderCapStyle,e.borderCapStyle),t.setLineDash(l(i.borderDash,e.borderDash)),t.lineDashOffset=l(i.borderDashOffset,e.borderDashOffset),t.lineJoin=l(i.borderJoinStyle,e.borderJoinStyle),t.lineWidth=l(i.borderWidth,e.borderWidth),t.strokeStyle=l(i.borderColor,e.borderColor)}function Zn(t,e,i){t.lineTo(i.x,i.y)}function Jn(t,e,i={}){const s=t.length,{start:n=0,end:o=s-1}=i,{start:a,end:r}=e,l=Math.max(n,a),h=Math.min(o,r),c=nr&&o>r;return{count:s,start:l,loop:e.loop,ilen:h(a+(h?r-t:t))%o,_=()=>{f!==g&&(t.lineTo(m,g),t.lineTo(m,f),t.lineTo(m,p))};for(l&&(d=n[x(0)],t.moveTo(d.x,d.y)),c=0;c<=r;++c){if(d=n[x(c)],d.skip)continue;const e=d.x,i=d.y,s=0|e;s===u?(ig&&(g=i),m=(b*m+e)/++b):(_(),t.lineTo(e,i),u=s,b=0,f=g=i),p=i}_()}function eo(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!(t._decimated||t._loop||e.tension||"monotone"===e.cubicInterpolationMode||e.stepped||i)?to:Qn}const io="function"==typeof Path2D;function so(t,e,i,s){io&&!e.options.segment?function(t,e,i,s){let n=e._path;n||(n=e._path=new Path2D,e.path(n,i,s)&&n.closePath()),Gn(t,e.options),t.stroke(n)}(t,e,i,s):function(t,e,i,s){const{segments:n,options:o}=e,a=eo(e);for(const r of n)Gn(t,o,r.style),t.beginPath(),a(t,e,r,{start:i,end:i+s-1})&&t.closePath(),t.stroke()}(t,e,i,s)}class no extends Hs{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:t=>"borderDash"!==t&&"fill"!==t};constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||"monotone"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;hi(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=zi(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,s=t[e],n=this.points,o=Ii(this,{property:e,start:s,end:s});if(!o.length)return;const a=[],r=function(t){return t.stepped?pi:t.tension||"monotone"===t.cubicInterpolationMode?mi:gi}(i);let l,h;for(l=0,h=o.length;l"borderDash"!==t};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(t){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.getProps(["x","y"],i),{angle:n,distance:o}=X(s,{x:t,y:e}),{startAngle:a,endAngle:r,innerRadius:h,outerRadius:c,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),u=(this.options.spacing+this.options.borderWidth)/2,f=l(d,r-a)>=O||Z(n,a,r),g=tt(o,h+u,c+u);return f&&g}getCenterPoint(t){const{x:e,y:i,startAngle:s,endAngle:n,innerRadius:o,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],t),{offset:r,spacing:l}=this.options,h=(s+n)/2,c=(o+a+l+r)/2;return{x:e+Math.cos(h)*c,y:i+Math.sin(h)*c}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){const{options:e,circumference:i}=this,s=(e.offset||0)/4,n=(e.spacing||0)/2,o=e.circular;if(this.pixelMargin="inner"===e.borderAlign?.33:0,this.fullCircles=i>O?Math.floor(i/O):0,0===i||this.innerRadius<0||this.outerRadius<0)return;t.save();const a=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(a)*s,Math.sin(a)*s);const r=s*(1-Math.sin(Math.min(C,i||0)));t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor,function(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r}=e;let l=e.endAngle;if(o){qn(t,e,i,s,l,n);for(let e=0;e("string"==typeof e?(i=t.push(e)-1,s.unshift({index:i,label:e})):isNaN(e)&&(i=null),i))(t,e,i,s);return n!==t.lastIndexOf(e)?i:n}function po(t){const e=this.getLabels();return t>=0&&ts=e?s:t,a=t=>n=i?n:t;if(t){const t=F(s),e=F(n);t<0&&e<0?a(0):t>0&&e>0&&o(0)}if(s===n){let e=0===n?1:Math.abs(.05*n);a(n+e),t||o(s-e)}this.min=s,this.max=n}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:i,stepSize:s}=t;return s?(e=Math.ceil(this.max/s)-Math.floor(this.min/s)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const n=function(t,e){const i=[],{bounds:n,step:o,min:a,max:r,precision:l,count:h,maxTicks:c,maxDigits:d,includeBounds:u}=t,f=o||1,g=c-1,{min:p,max:m}=e,b=!s(a),x=!s(r),_=!s(h),y=(m-p)/(d+1);let v,M,w,k,S=B((m-p)/g/f)*f;if(S<1e-14&&!b&&!x)return[{value:p},{value:m}];k=Math.ceil(m/S)-Math.floor(p/S),k>g&&(S=B(k*S/g/f)*f),s(l)||(v=Math.pow(10,l),S=Math.ceil(S*v)/v),"ticks"===n?(M=Math.floor(p/S)*S,w=Math.ceil(m/S)*S):(M=p,w=m),b&&x&&o&&H((r-a)/o,S/1e3)?(k=Math.round(Math.min((r-a)/S,c)),S=(r-a)/k,M=a,w=r):_?(M=b?a:M,w=x?r:w,k=h-1,S=(w-M)/k):(k=(w-M)/S,k=V(k,Math.round(k),S/1e3)?Math.round(k):Math.ceil(k));const P=Math.max(U(S),U(M));v=Math.pow(10,s(l)?P:l),M=Math.round(M*v)/v,w=Math.round(w*v)/v;let D=0;for(b&&(u&&M!==a?(i.push({value:a}),Mr)break;i.push({value:t})}return x&&u&&w!==r?i.length&&V(i[i.length-1].value,r,mo(r,y,t))?i[i.length-1].value=r:i.push({value:r}):x&&w!==r||i.push({value:w}),i}({maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===t.bounds&&j(n,this,"value"),t.reverse?(n.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),n}configure(){const t=this.ticks;let e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const s=(i-e)/Math.max(t.length-1,1)/2;e-=s,i+=s}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return ne(t,this.chart.options.locale,this.options.ticks.format)}}class xo extends bo{static id="linear";static defaults={ticks:{callback:ae.formatters.numeric}};determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=a(t)?t:0,this.max=a(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,i=$(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,n=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,n.lineHeight/s))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}const _o=t=>Math.floor(z(t)),yo=(t,e)=>Math.pow(10,_o(t)+e);function vo(t){return 1===t/Math.pow(10,_o(t))}function Mo(t,e,i){const s=Math.pow(10,i),n=Math.floor(t/s);return Math.ceil(e/s)-n}function wo(t,{min:e,max:i}){e=r(t.min,e);const s=[],n=_o(e);let o=function(t,e){let i=_o(e-t);for(;Mo(t,e,i)>10;)i++;for(;Mo(t,e,i)<10;)i--;return Math.min(i,_o(t))}(e,i),a=o<0?Math.pow(10,Math.abs(o)):1;const l=Math.pow(10,o),h=n>o?Math.pow(10,n):0,c=Math.round((e-h)*a)/a,d=Math.floor((e-h)/l/10)*l*10;let u=Math.floor((c-d)/Math.pow(10,o)),f=r(t.min,Math.round((h+d+u*Math.pow(10,o))*a)/a);for(;f=10?u=u<15?15:20:u++,u>=20&&(o++,u=2,a=o>=0?1:a),f=Math.round((h+d+u*Math.pow(10,o))*a)/a;const g=r(t.max,f);return s.push({value:g,major:vo(g),significand:u}),s}class ko extends Js{static id="logarithmic";static defaults={ticks:{callback:ae.formatters.logarithmic,major:{enabled:!0}}};constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const i=bo.prototype.parse.apply(this,[t,e]);if(0!==i)return a(i)&&i>0?i:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=a(t)?Math.max(0,t):null,this.max=a(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!a(this._userMin)&&(this.min=t===yo(this.min,0)?yo(this.min,-1):yo(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let i=this.min,s=this.max;const n=e=>i=t?i:e,o=t=>s=e?s:t;i===s&&(i<=0?(n(1),o(10)):(n(yo(i,-1)),o(yo(s,1)))),i<=0&&n(yo(s,-1)),s<=0&&o(yo(i,1)),this.min=i,this.max=s}buildTicks(){const t=this.options,e=wo({min:this._userMin,max:this._userMax},this);return"ticks"===t.bounds&&j(e,this,"value"),t.reverse?(e.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),e}getLabelForValue(t){return void 0===t?"0":ne(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=z(t),this._valueRange=z(this.max)-z(t)}getPixelForValue(t){return void 0!==t&&0!==t||(t=this.min),null===t||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(z(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}function So(t){const e=t.ticks;if(e.display&&t.display){const t=ki(e.backdropPadding);return l(e.font&&e.font.size,ue.font.size)+t.height}return 0}function Po(t,e,i,s,n){return t===s||t===n?{start:e-i/2,end:e+i/2}:tn?{start:e-i,end:e}:{start:e,end:e+i}}function Do(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},i=Object.assign({},e),s=[],o=[],a=t._pointLabels.length,r=t.options.pointLabels,l=r.centerPointLabels?C/a:0;for(let u=0;ue.r&&(r=(s.end-e.r)/o,t.r=Math.max(t.r,e.r+r)),n.starte.b&&(l=(n.end-e.b)/a,t.b=Math.max(t.b,e.b+l))}function Oo(t,e,i){const s=t.drawingArea,{extra:n,additionalAngle:o,padding:a,size:r}=i,l=t.getPointPosition(e,s+n+a,o),h=Math.round(Y(G(l.angle+E))),c=function(t,e,i){90===i||270===i?t-=e/2:(i>270||i<90)&&(t-=e);return t}(l.y,r.h,h),d=function(t){if(0===t||180===t)return"center";if(t<180)return"left";return"right"}(h),u=function(t,e,i){"right"===i?t-=e:"center"===i&&(t-=e/2);return t}(l.x,r.w,d);return{visible:!0,x:l.x,y:c,textAlign:d,left:u,top:c,right:u+r.w,bottom:c+r.h}}function Ao(t,e){if(!e)return!0;const{left:i,top:s,right:n,bottom:o}=t;return!(Re({x:i,y:s},e)||Re({x:i,y:o},e)||Re({x:n,y:s},e)||Re({x:n,y:o},e))}function To(t,e,i){const{left:n,top:o,right:a,bottom:r}=i,{backdropColor:l}=e;if(!s(l)){const i=wi(e.borderRadius),s=ki(e.backdropPadding);t.fillStyle=l;const h=n-s.left,c=o-s.top,d=a-n+s.width,u=r-o+s.height;Object.values(i).some((t=>0!==t))?(t.beginPath(),He(t,{x:h,y:c,w:d,h:u,radius:i}),t.fill()):t.fillRect(h,c,d,u)}}function Lo(t,e,i,s){const{ctx:n}=t;if(i)n.arc(t.xCenter,t.yCenter,e,0,O);else{let i=t.getPointPosition(0,e);n.moveTo(i.x,i.y);for(let o=1;ot,padding:5,centerPointLabels:!1}};static defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};static descriptors={angleLines:{_fallback:"grid"}};constructor(t){super(t),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const t=this._padding=ki(So(this.options)/2),e=this.width=this.maxWidth-t.width,i=this.height=this.maxHeight-t.height;this.xCenter=Math.floor(this.left+e/2+t.left),this.yCenter=Math.floor(this.top+i/2+t.top),this.drawingArea=Math.floor(Math.min(e,i)/2)}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!1);this.min=a(t)&&!isNaN(t)?t:0,this.max=a(e)&&!isNaN(e)?e:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/So(this.options))}generateTickLabels(t){bo.prototype.generateTickLabels.call(this,t),this._pointLabels=this.getLabels().map(((t,e)=>{const i=d(this.options.pointLabels.callback,[t,e],this);return i||0===i?i:""})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?Do(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,s){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,s))}getIndexAngle(t){return G(t*(O/(this._pointLabels.length||1))+$(this.options.startAngle||0))}getDistanceFromCenterForValue(t){if(s(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(s(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t=0;n--){const e=t._pointLabelItems[n];if(!e.visible)continue;const o=s.setContext(t.getPointLabelContext(n));To(i,o,e);const a=Si(o.font),{x:r,y:l,textAlign:h}=e;Ne(i,t._pointLabels[n],r,l+a.lineHeight/2,a,{color:o.color,textAlign:h,textBaseline:"middle"})}}(this,o),s.display&&this.ticks.forEach(((t,e)=>{if(0!==e||0===e&&this.min<0){r=this.getDistanceFromCenterForValue(t.value);const i=this.getContext(e),a=s.setContext(i),l=n.setContext(i);!function(t,e,i,s,n){const o=t.ctx,a=e.circular,{color:r,lineWidth:l}=e;!a&&!s||!r||!l||i<0||(o.save(),o.strokeStyle=r,o.lineWidth=l,o.setLineDash(n.dash),o.lineDashOffset=n.dashOffset,o.beginPath(),Lo(t,i,a,s),o.closePath(),o.stroke(),o.restore())}(this,a,r,o,l)}})),i.display){for(t.save(),a=o-1;a>=0;a--){const s=i.setContext(this.getPointLabelContext(a)),{color:n,lineWidth:o}=s;o&&n&&(t.lineWidth=o,t.strokeStyle=n,t.setLineDash(s.borderDash),t.lineDashOffset=s.borderDashOffset,r=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),l=this.getPointPosition(a,r),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(l.x,l.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;const s=this.getIndexAngle(0);let n,o;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach(((s,a)=>{if(0===a&&this.min>=0&&!e.reverse)return;const r=i.setContext(this.getContext(a)),l=Si(r.font);if(n=this.getDistanceFromCenterForValue(this.ticks[a].value),r.showLabelBackdrop){t.font=l.string,o=t.measureText(s.label).width,t.fillStyle=r.backdropColor;const e=ki(r.backdropPadding);t.fillRect(-o/2-e.left,-n-l.size/2-e.top,o+e.width,l.size+e.height)}Ne(t,s.label,0,-n,l,{color:r.color,strokeColor:r.textStrokeColor,strokeWidth:r.textStrokeWidth})})),t.restore()}drawTitle(){}}const Ro={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Io=Object.keys(Ro);function zo(t,e){return t-e}function Fo(t,e){if(s(e))return null;const i=t._adapter,{parser:n,round:o,isoWeekday:r}=t._parseOpts;let l=e;return"function"==typeof n&&(l=n(l)),a(l)||(l="string"==typeof n?i.parse(l,n):i.parse(l)),null===l?null:(o&&(l="week"!==o||!N(r)&&!0!==r?i.startOf(l,o):i.startOf(l,"isoWeek",r)),+l)}function Vo(t,e,i,s){const n=Io.length;for(let o=Io.indexOf(t);o=e?i[s]:i[n]]=!0}}else t[e]=!0}function Wo(t,e,i){const s=[],n={},o=e.length;let a,r;for(a=0;a=0&&(e[l].major=!0);return e}(t,s,n,i):s}class No extends Js{static id="time";static defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}};constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,e={}){const i=t.time||(t.time={}),s=this._adapter=new Rn._date(t.adapters.date);s.init(e),x(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=e.normalized}parse(t,e){return void 0===t?null:Fo(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,e=this._adapter,i=t.time.unit||"day";let{min:s,max:n,minDefined:o,maxDefined:r}=this.getUserBounds();function l(t){o||isNaN(t.min)||(s=Math.min(s,t.min)),r||isNaN(t.max)||(n=Math.max(n,t.max))}o&&r||(l(this._getLabelBounds()),"ticks"===t.bounds&&"labels"===t.ticks.source||l(this.getMinMax(!1))),s=a(s)&&!isNaN(s)?s:+e.startOf(Date.now(),i),n=a(n)&&!isNaN(n)?n:+e.endOf(Date.now(),i)+1,this.min=Math.min(s,n-1),this.max=Math.max(s+1,n)}_getLabelBounds(){const t=this.getLabelTimestamps();let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(e=t[0],i=t[t.length-1]),{min:e,max:i}}buildTicks(){const t=this.options,e=t.time,i=t.ticks,s="labels"===i.source?this.getLabelTimestamps():this._generate();"ticks"===t.bounds&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const n=this.min,o=nt(s,n,this.max);return this._unit=e.unit||(i.autoSkip?Vo(e.minUnit,this.min,this.max,this._getLabelCapacity(n)):function(t,e,i,s,n){for(let o=Io.length-1;o>=Io.indexOf(i);o--){const i=Io[o];if(Ro[i].common&&t._adapter.diff(n,s,i)>=e-1)return i}return Io[i?Io.indexOf(i):0]}(this,o.length,e.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&"year"!==this._unit?function(t){for(let e=Io.indexOf(t)+1,i=Io.length;e+t.value)))}initOffsets(t=[]){let e,i,s=0,n=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),s=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)/2,i=this.getDecimalForValue(t[t.length-1]),n=1===t.length?i:(i-this.getDecimalForValue(t[t.length-2]))/2);const o=t.length<3?.5:.25;s=J(s,0,o),n=J(n,0,o),this._offsets={start:s,end:n,factor:1/(s+1+n)}}_generate(){const t=this._adapter,e=this.min,i=this.max,s=this.options,n=s.time,o=n.unit||Vo(n.minUnit,e,i,this._getLabelCapacity(e)),a=l(s.ticks.stepSize,1),r="week"===o&&n.isoWeekday,h=N(r)||!0===r,c={};let d,u,f=e;if(h&&(f=+t.startOf(f,"isoWeek",r)),f=+t.startOf(f,h?"day":o),t.diff(i,e,o)>1e5*a)throw new Error(e+" and "+i+" are too far apart with stepSize of "+a+" "+o);const g="data"===s.ticks.source&&this.getDataTimestamps();for(d=f,u=0;d+t))}getLabelForValue(t){const e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}format(t,e){const i=this.options.time.displayFormats,s=this._unit,n=e||i[s];return this._adapter.format(t,n)}_tickFormatFunction(t,e,i,s){const n=this.options,o=n.ticks.callback;if(o)return d(o,[t,e,i],this);const a=n.time.displayFormats,r=this._unit,l=this._majorUnit,h=r&&a[r],c=l&&a[l],u=i[e],f=l&&c&&u&&u.major;return this._adapter.format(t,s||(f?c:h))}generateTickLabels(t){let e,i,s;for(e=0,i=t.length;e0?a:1}getDataTimestamps(){let t,e,i=this._cache.data||[];if(i.length)return i;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(t=0,e=s.length;t=t[r].pos&&e<=t[l].pos&&({lo:r,hi:l}=it(t,"pos",e)),({pos:s,time:o}=t[r]),({pos:n,time:a}=t[l])):(e>=t[r].time&&e<=t[l].time&&({lo:r,hi:l}=it(t,"time",e)),({time:s,pos:o}=t[r]),({time:n,pos:a}=t[l]));const h=n-s;return h?o+(a-o)*(e-s)/h:o}var jo=Object.freeze({__proto__:null,CategoryScale:class extends Js{static id="category";static defaults={ticks:{callback:po}};constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();for(const{index:i,label:s}of e)t[i]===s&&t.splice(i,1);this._addedLabels=[]}super.init(t)}parse(t,e){if(s(t))return null;const i=this.getLabels();return((t,e)=>null===t?null:J(Math.round(t),0,e))(e=isFinite(e)&&i[e]===t?e:go(i,t,l(e,t),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);"ticks"===this.options.bounds&&(t||(i=0),e||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const t=this.min,e=this.max,i=this.options.offset,s=[];let n=this.getLabels();n=0===t&&e===n.length-1?n:n.slice(t,e+1),this._valueRange=Math.max(n.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let i=t;i<=e;i++)s.push({value:i});return s}getLabelForValue(t){return po.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return"number"!=typeof t&&(t=this.parse(t)),null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}},LinearScale:xo,LogarithmicScale:ko,RadialLinearScale:Eo,TimeScale:No,TimeSeriesScale:class extends No{static id="timeseries";static defaults=No.defaults;constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=Ho(e,this.min),this._tableRange=Ho(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:i}=this,s=[],n=[];let o,a,r,l,h;for(o=0,a=t.length;o=e&&l<=i&&s.push(l);if(s.length<2)return[{time:e,pos:0},{time:i,pos:1}];for(o=0,a=s.length;ot-e))}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const e=this.getDataTimestamps(),i=this.getLabelTimestamps();return t=e.length&&i.length?this.normalize(e.concat(i)):e.length?e:i,t=this._cache.all=t,t}getDecimalForValue(t){return(Ho(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)/e.factor-e.end;return Ho(this._table,i*this._tableRange+this._minPos,!0)}}});const $o=["rgb(54, 162, 235)","rgb(255, 99, 132)","rgb(255, 159, 64)","rgb(255, 205, 86)","rgb(75, 192, 192)","rgb(153, 102, 255)","rgb(201, 203, 207)"],Yo=$o.map((t=>t.replace("rgb(","rgba(").replace(")",", 0.5)")));function Uo(t){return $o[t%$o.length]}function Xo(t){return Yo[t%Yo.length]}function qo(t){let e=0;return(i,s)=>{const n=t.getDatasetMeta(s).controller;n instanceof jn?e=function(t,e){return t.backgroundColor=t.data.map((()=>Uo(e++))),e}(i,e):n instanceof $n?e=function(t,e){return t.backgroundColor=t.data.map((()=>Xo(e++))),e}(i,e):n&&(e=function(t,e){return t.borderColor=Uo(e),t.backgroundColor=Xo(e),++e}(i,e))}}function Ko(t){let e;for(e in t)if(t[e].borderColor||t[e].backgroundColor)return!0;return!1}var Go={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(t,e,i){if(!i.enabled)return;const{data:{datasets:s},options:n}=t.config,{elements:o}=n;if(!i.forceOverride&&(Ko(s)||(a=n)&&(a.borderColor||a.backgroundColor)||o&&Ko(o)))return;var a;const r=qo(t);s.forEach(r)}};function Zo(t){if(t._decimated){const e=t._data;delete t._decimated,delete t._data,Object.defineProperty(t,"data",{configurable:!0,enumerable:!0,writable:!0,value:e})}}function Jo(t){t.data.datasets.forEach((t=>{Zo(t)}))}var Qo={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(t,e,i)=>{if(!i.enabled)return void Jo(t);const n=t.width;t.data.datasets.forEach(((e,o)=>{const{_data:a,indexAxis:r}=e,l=t.getDatasetMeta(o),h=a||e.data;if("y"===Pi([r,t.options.indexAxis]))return;if(!l.controller.supportsDecimation)return;const c=t.scales[l.xAxisID];if("linear"!==c.type&&"time"!==c.type)return;if(t.options.parsing)return;let{start:d,count:u}=function(t,e){const i=e.length;let s,n=0;const{iScale:o}=t,{min:a,max:r,minDefined:l,maxDefined:h}=o.getUserBounds();return l&&(n=J(it(e,o.axis,a).lo,0,i-1)),s=h?J(it(e,o.axis,r).hi+1,n,i)-n:i-n,{start:n,count:s}}(l,h);if(u<=(i.threshold||4*n))return void Zo(e);let f;switch(s(a)&&(e._data=h,delete e.data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(t){this._data=t}})),i.algorithm){case"lttb":f=function(t,e,i,s,n){const o=n.samples||s;if(o>=i)return t.slice(e,e+i);const a=[],r=(i-2)/(o-2);let l=0;const h=e+i-1;let c,d,u,f,g,p=e;for(a[l++]=t[p],c=0;cu&&(u=f,d=t[s],g=s);a[l++]=d,p=g}return a[l++]=t[h],a}(h,d,u,n,i);break;case"min-max":f=function(t,e,i,n){let o,a,r,l,h,c,d,u,f,g,p=0,m=0;const b=[],x=e+i-1,_=t[e].x,y=t[x].x-_;for(o=e;og&&(g=l,d=o),p=(m*p+a.x)/++m;else{const i=o-1;if(!s(c)&&!s(d)){const e=Math.min(c,d),s=Math.max(c,d);e!==u&&e!==i&&b.push({...t[e],x:p}),s!==u&&s!==i&&b.push({...t[s],x:p})}o>0&&i!==u&&b.push(t[i]),b.push(a),h=e,m=0,f=g=l,c=d=u=o}}return b}(h,d,u,n);break;default:throw new Error(`Unsupported decimation algorithm '${i.algorithm}'`)}e._decimated=f}))},destroy(t){Jo(t)}};function ta(t,e,i,s){if(s)return;let n=e[t],o=i[t];return"angle"===t&&(n=G(n),o=G(o)),{property:t,start:n,end:o}}function ea(t,e,i){for(;e>t;e--){const t=i[e];if(!isNaN(t.x)&&!isNaN(t.y))break}return e}function ia(t,e,i,s){return t&&e?s(t[i],e[i]):t?t[i]:e?e[i]:0}function sa(t,e){let i=[],s=!1;return n(t)?(s=!0,i=t):i=function(t,e){const{x:i=null,y:s=null}=t||{},n=e.points,o=[];return e.segments.forEach((({start:t,end:e})=>{e=ea(t,e,n);const a=n[t],r=n[e];null!==s?(o.push({x:a.x,y:s}),o.push({x:r.x,y:s})):null!==i&&(o.push({x:i,y:a.y}),o.push({x:i,y:r.y}))})),o}(t,e),i.length?new no({points:i,options:{tension:0},_loop:s,_fullLoop:s}):null}function na(t){return t&&!1!==t.fill}function oa(t,e,i){let s=t[e].fill;const n=[e];let o;if(!i)return s;for(;!1!==s&&-1===n.indexOf(s);){if(!a(s))return s;if(o=t[s],!o)return!1;if(o.visible)return s;n.push(s),s=o.fill}return!1}function aa(t,e,i){const s=function(t){const e=t.options,i=e.fill;let s=l(i&&i.target,i);void 0===s&&(s=!!e.backgroundColor);if(!1===s||null===s)return!1;if(!0===s)return"origin";return s}(t);if(o(s))return!isNaN(s.value)&&s;let n=parseFloat(s);return a(n)&&Math.floor(n)===n?function(t,e,i,s){"-"!==t&&"+"!==t||(i=e+i);if(i===e||i<0||i>=s)return!1;return i}(s[0],e,n,i):["origin","start","end","stack","shape"].indexOf(s)>=0&&s}function ra(t,e,i){const s=[];for(let n=0;n=0;--e){const i=n[e].$filler;i&&(i.line.updateControlPoints(o,i.axis),s&&i.fill&&da(t.ctx,i,o))}},beforeDatasetsDraw(t,e,i){if("beforeDatasetsDraw"!==i.drawTime)return;const s=t.getSortedVisibleDatasetMetas();for(let e=s.length-1;e>=0;--e){const i=s[e].$filler;na(i)&&da(t.ctx,i,t.chartArea)}},beforeDatasetDraw(t,e,i){const s=e.meta.$filler;na(s)&&"beforeDatasetDraw"===i.drawTime&&da(t.ctx,s,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const ba=(t,e)=>{let{boxHeight:i=e,boxWidth:s=e}=t;return t.usePointStyle&&(i=Math.min(i,e),s=t.pointStyleWidth||Math.min(s,e)),{boxWidth:s,boxHeight:i,itemHeight:Math.max(e,i)}};class xa extends Hs{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=d(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,i)=>t.sort(e,i,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const i=t.labels,s=Si(i.font),n=s.size,o=this._computeTitleHeight(),{boxWidth:a,itemHeight:r}=ba(i,n);let l,h;e.font=s.string,this.isHorizontal()?(l=this.maxWidth,h=this._fitRows(o,n,a,r)+10):(h=this.maxHeight,l=this._fitCols(o,s,a,r)+10),this.width=Math.min(l,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,s){const{ctx:n,maxWidth:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.lineWidths=[0],h=s+a;let c=t;n.textAlign="left",n.textBaseline="middle";let d=-1,u=-h;return this.legendItems.forEach(((t,f)=>{const g=i+e/2+n.measureText(t.text).width;(0===f||l[l.length-1]+g+2*a>o)&&(c+=h,l[l.length-(f>0?0:1)]=0,u+=h,d++),r[f]={left:0,top:u,row:d,width:g,height:s},l[l.length-1]+=g+a})),c}_fitCols(t,e,i,s){const{ctx:n,maxHeight:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.columnSizes=[],h=o-t;let c=a,d=0,u=0,f=0,g=0;return this.legendItems.forEach(((t,o)=>{const{itemWidth:p,itemHeight:m}=function(t,e,i,s,n){const o=function(t,e,i,s){let n=t.text;n&&"string"!=typeof n&&(n=n.reduce(((t,e)=>t.length>e.length?t:e)));return e+i.size/2+s.measureText(n).width}(s,t,e,i),a=function(t,e,i){let s=t;"string"!=typeof e.text&&(s=_a(e,i));return s}(n,s,e.lineHeight);return{itemWidth:o,itemHeight:a}}(i,e,n,t,s);o>0&&u+m+2*a>h&&(c+=d+a,l.push({width:d,height:u}),f+=d+a,g++,d=u=0),r[o]={left:f,top:u,col:g,width:p,height:m},d=Math.max(d,p),u+=m+a})),c+=d,l.push({width:d,height:u}),c}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:n}}=this,o=Oi(n,this.left,this.width);if(this.isHorizontal()){let n=0,a=ft(i,this.left+s,this.right-this.lineWidths[n]);for(const r of e)n!==r.row&&(n=r.row,a=ft(i,this.left+s,this.right-this.lineWidths[n])),r.top+=this.top+t+s,r.left=o.leftForLtr(o.x(a),r.width),a+=r.width+s}else{let n=0,a=ft(i,this.top+t+s,this.bottom-this.columnSizes[n].height);for(const r of e)r.col!==n&&(n=r.col,a=ft(i,this.top+t+s,this.bottom-this.columnSizes[n].height)),r.top=a,r.left+=this.left+s,r.left=o.leftForLtr(o.x(r.left),r.width),a+=r.height+s}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const t=this.ctx;Ie(t,this),this._draw(),ze(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:n,labels:o}=t,a=ue.color,r=Oi(t.rtl,this.left,this.width),h=Si(o.font),{padding:c}=o,d=h.size,u=d/2;let f;this.drawTitle(),s.textAlign=r.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=h.string;const{boxWidth:g,boxHeight:p,itemHeight:m}=ba(o,d),b=this.isHorizontal(),x=this._computeTitleHeight();f=b?{x:ft(n,this.left+c,this.right-i[0]),y:this.top+c+x,line:0}:{x:this.left+c,y:ft(n,this.top+x+c,this.bottom-e[0].height),line:0},Ai(this.ctx,t.textDirection);const _=m+c;this.legendItems.forEach(((y,v)=>{s.strokeStyle=y.fontColor,s.fillStyle=y.fontColor;const M=s.measureText(y.text).width,w=r.textAlign(y.textAlign||(y.textAlign=o.textAlign)),k=g+u+M;let S=f.x,P=f.y;r.setWidth(this.width),b?v>0&&S+k+c>this.right&&(P=f.y+=_,f.line++,S=f.x=ft(n,this.left+c,this.right-i[f.line])):v>0&&P+_>this.bottom&&(S=f.x=S+e[f.line].width+c,f.line++,P=f.y=ft(n,this.top+x+c,this.bottom-e[f.line].height));if(function(t,e,i){if(isNaN(g)||g<=0||isNaN(p)||p<0)return;s.save();const n=l(i.lineWidth,1);if(s.fillStyle=l(i.fillStyle,a),s.lineCap=l(i.lineCap,"butt"),s.lineDashOffset=l(i.lineDashOffset,0),s.lineJoin=l(i.lineJoin,"miter"),s.lineWidth=n,s.strokeStyle=l(i.strokeStyle,a),s.setLineDash(l(i.lineDash,[])),o.usePointStyle){const a={radius:p*Math.SQRT2/2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:n},l=r.xPlus(t,g/2);Ee(s,a,l,e+u,o.pointStyleWidth&&g)}else{const o=e+Math.max((d-p)/2,0),a=r.leftForLtr(t,g),l=wi(i.borderRadius);s.beginPath(),Object.values(l).some((t=>0!==t))?He(s,{x:a,y:o,w:g,h:p,radius:l}):s.rect(a,o,g,p),s.fill(),0!==n&&s.stroke()}s.restore()}(r.x(S),P,y),S=gt(w,S+g+u,b?S+k:this.right,t.rtl),function(t,e,i){Ne(s,i.text,t,e+m/2,h,{strikethrough:i.hidden,textAlign:r.textAlign(i.textAlign)})}(r.x(S),P,y),b)f.x+=k+c;else if("string"!=typeof y.text){const t=h.lineHeight;f.y+=_a(y,t)+c}else f.y+=_})),Ti(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,i=Si(e.font),s=ki(e.padding);if(!e.display)return;const n=Oi(t.rtl,this.left,this.width),o=this.ctx,a=e.position,r=i.size/2,l=s.top+r;let h,c=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),h=this.top+l,c=ft(t.align,c,this.right-d);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);h=l+ft(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const u=ft(a,c,c+d);o.textAlign=n.textAlign(ut(a)),o.textBaseline="middle",o.strokeStyle=e.color,o.fillStyle=e.color,o.font=i.string,Ne(o,e.text,u,h,i)}_computeTitleHeight(){const t=this.options.title,e=Si(t.font),i=ki(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,n;if(tt(t,this.left,this.right)&&tt(e,this.top,this.bottom))for(n=this.legendHitBoxes,i=0;it.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:i,pointStyle:s,textAlign:n,color:o,useBorderRadius:a,borderRadius:r}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const l=t.controller.getStyle(i?0:void 0),h=ki(l.borderWidth);return{text:e[t.index].label,fillStyle:l.backgroundColor,fontColor:o,hidden:!t.visible,lineCap:l.borderCapStyle,lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:(h.width+h.height)/4,strokeStyle:l.borderColor,pointStyle:s||l.pointStyle,rotation:l.rotation,textAlign:n||l.textAlign,borderRadius:a&&(r||l.borderRadius),datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};class va extends Hs{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const i=this.options;if(this.left=0,this.top=0,!i.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=t,this.height=this.bottom=e;const s=n(i.text)?i.text.length:1;this._padding=ki(i.padding);const o=s*Si(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return"top"===t||"bottom"===t}_drawArgs(t){const{top:e,left:i,bottom:s,right:n,options:o}=this,a=o.align;let r,l,h,c=0;return this.isHorizontal()?(l=ft(a,i,n),h=e+t,r=n-i):("left"===o.position?(l=i+t,h=ft(a,s,e),c=-.5*C):(l=n-t,h=ft(a,e,s),c=.5*C),r=s-e),{titleX:l,titleY:h,maxWidth:r,rotation:c}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const i=Si(e.font),s=i.lineHeight/2+this._padding.top,{titleX:n,titleY:o,maxWidth:a,rotation:r}=this._drawArgs(s);Ne(t,e.text,0,0,i,{color:e.color,maxWidth:a,rotation:r,textAlign:ut(e.align),textBaseline:"middle",translation:[n,o]})}}var Ma={id:"title",_element:va,start(t,e,i){!function(t,e){const i=new va({ctx:t.ctx,options:e,chart:t});as.configure(t,i,e),as.addBox(t,i),t.titleBlock=i}(t,i)},stop(t){const e=t.titleBlock;as.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,i){const s=t.titleBlock;as.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const wa=new WeakMap;var ka={id:"subtitle",start(t,e,i){const s=new va({ctx:t.ctx,options:i,chart:t});as.configure(t,s,i),as.addBox(t,s),wa.set(t,s)},stop(t){as.removeBox(t,wa.get(t)),wa.delete(t)},beforeUpdate(t,e,i){const s=wa.get(t);as.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Sa={average(t){if(!t.length)return!1;let e,i,s=new Set,n=0,o=0;for(e=0,i=t.length;et+e))/s.size,y:n/o}},nearest(t,e){if(!t.length)return!1;let i,s,n,o=e.x,a=e.y,r=Number.POSITIVE_INFINITY;for(i=0,s=t.length;i-1?t.split("\n"):t}function Ca(t,e){const{element:i,datasetIndex:s,index:n}=e,o=t.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:t,label:a,parsed:o.getParsed(n),raw:t.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:i}}function Oa(t,e){const i=t.chart.ctx,{body:s,footer:n,title:o}=t,{boxWidth:a,boxHeight:r}=e,l=Si(e.bodyFont),h=Si(e.titleFont),c=Si(e.footerFont),d=o.length,f=n.length,g=s.length,p=ki(e.padding);let m=p.height,b=0,x=s.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(x+=t.beforeBody.length+t.afterBody.length,d&&(m+=d*h.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),x){m+=g*(e.displayColors?Math.max(r,l.lineHeight):l.lineHeight)+(x-g)*l.lineHeight+(x-1)*e.bodySpacing}f&&(m+=e.footerMarginTop+f*c.lineHeight+(f-1)*e.footerSpacing);let _=0;const y=function(t){b=Math.max(b,i.measureText(t).width+_)};return i.save(),i.font=h.string,u(t.title,y),i.font=l.string,u(t.beforeBody.concat(t.afterBody),y),_=e.displayColors?a+2+e.boxPadding:0,u(s,(t=>{u(t.before,y),u(t.lines,y),u(t.after,y)})),_=0,i.font=c.string,u(t.footer,y),i.restore(),b+=p.width,{width:b,height:m}}function Aa(t,e,i,s){const{x:n,width:o}=i,{width:a,chartArea:{left:r,right:l}}=t;let h="center";return"center"===s?h=n<=(r+l)/2?"left":"right":n<=o/2?h="left":n>=a-o/2&&(h="right"),function(t,e,i,s){const{x:n,width:o}=s,a=i.caretSize+i.caretPadding;return"left"===t&&n+o+a>e.width||"right"===t&&n-o-a<0||void 0}(h,t,e,i)&&(h="center"),h}function Ta(t,e,i){const s=i.yAlign||e.yAlign||function(t,e){const{y:i,height:s}=e;return it.height-s/2?"bottom":"center"}(t,i);return{xAlign:i.xAlign||e.xAlign||Aa(t,e,i,s),yAlign:s}}function La(t,e,i,s){const{caretSize:n,caretPadding:o,cornerRadius:a}=t,{xAlign:r,yAlign:l}=i,h=n+o,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=wi(a);let g=function(t,e){let{x:i,width:s}=t;return"right"===e?i-=s:"center"===e&&(i-=s/2),i}(e,r);const p=function(t,e,i){let{y:s,height:n}=t;return"top"===e?s+=i:s-="bottom"===e?n+i:n/2,s}(e,l,h);return"center"===l?"left"===r?g+=h:"right"===r&&(g-=h):"left"===r?g-=Math.max(c,u)+n:"right"===r&&(g+=Math.max(d,f)+n),{x:J(g,0,s.width-e.width),y:J(p,0,s.height-e.height)}}function Ea(t,e,i){const s=ki(i.padding);return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-s.right:t.x+s.left}function Ra(t){return Pa([],Da(t))}function Ia(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}const za={beforeTitle:e,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,s=i?i.length:0;if(this&&this.options&&"dataset"===this.options.mode)return e.dataset.label||"";if(e.label)return e.label;if(s>0&&e.dataIndex{const e={before:[],lines:[],after:[]},n=Ia(i,t);Pa(e.before,Da(Fa(n,"beforeLabel",this,t))),Pa(e.lines,Fa(n,"label",this,t)),Pa(e.after,Da(Fa(n,"afterLabel",this,t))),s.push(e)})),s}getAfterBody(t,e){return Ra(Fa(e.callbacks,"afterBody",this,t))}getFooter(t,e){const{callbacks:i}=e,s=Fa(i,"beforeFooter",this,t),n=Fa(i,"footer",this,t),o=Fa(i,"afterFooter",this,t);let a=[];return a=Pa(a,Da(s)),a=Pa(a,Da(n)),a=Pa(a,Da(o)),a}_createItems(t){const e=this._active,i=this.chart.data,s=[],n=[],o=[];let a,r,l=[];for(a=0,r=e.length;at.filter(e,s,n,i)))),t.itemSort&&(l=l.sort(((e,s)=>t.itemSort(e,s,i)))),u(l,(e=>{const i=Ia(t.callbacks,e);s.push(Fa(i,"labelColor",this,e)),n.push(Fa(i,"labelPointStyle",this,e)),o.push(Fa(i,"labelTextColor",this,e))})),this.labelColors=s,this.labelPointStyles=n,this.labelTextColors=o,this.dataPoints=l,l}update(t,e){const i=this.options.setContext(this.getContext()),s=this._active;let n,o=[];if(s.length){const t=Sa[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const e=this._size=Oa(this,i),a=Object.assign({},t,e),r=Ta(this.chart,i,a),l=La(i,a,r,this.chart);this.xAlign=r.xAlign,this.yAlign=r.yAlign,n={opacity:1,x:l.x,y:l.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(n={opacity:0});this._tooltipItems=o,this.$context=void 0,n&&this._resolveAnimations().update(this,n),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,s){const n=this.getCaretPosition(t,i,s);e.lineTo(n.x1,n.y1),e.lineTo(n.x2,n.y2),e.lineTo(n.x3,n.y3)}getCaretPosition(t,e,i){const{xAlign:s,yAlign:n}=this,{caretSize:o,cornerRadius:a}=i,{topLeft:r,topRight:l,bottomLeft:h,bottomRight:c}=wi(a),{x:d,y:u}=t,{width:f,height:g}=e;let p,m,b,x,_,y;return"center"===n?(_=u+g/2,"left"===s?(p=d,m=p-o,x=_+o,y=_-o):(p=d+f,m=p+o,x=_-o,y=_+o),b=p):(m="left"===s?d+Math.max(r,h)+o:"right"===s?d+f-Math.max(l,c)-o:this.caretX,"top"===n?(x=u,_=x-o,p=m-o,b=m+o):(x=u+g,_=x+o,p=m+o,b=m-o),y=x),{x1:p,x2:m,x3:b,y1:x,y2:_,y3:y}}drawTitle(t,e,i){const s=this.title,n=s.length;let o,a,r;if(n){const l=Oi(i.rtl,this.x,this.width);for(t.x=Ea(this,i.titleAlign,i),e.textAlign=l.textAlign(i.titleAlign),e.textBaseline="middle",o=Si(i.titleFont),a=i.titleSpacing,e.fillStyle=i.titleColor,e.font=o.string,r=0;r0!==t))?(t.beginPath(),t.fillStyle=n.multiKeyBackground,He(t,{x:e,y:g,w:h,h:l,radius:r}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),He(t,{x:i,y:g+1,w:h-2,h:l-2,radius:r}),t.fill()):(t.fillStyle=n.multiKeyBackground,t.fillRect(e,g,h,l),t.strokeRect(e,g,h,l),t.fillStyle=a.backgroundColor,t.fillRect(i,g+1,h-2,l-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){const{body:s}=this,{bodySpacing:n,bodyAlign:o,displayColors:a,boxHeight:r,boxWidth:l,boxPadding:h}=i,c=Si(i.bodyFont);let d=c.lineHeight,f=0;const g=Oi(i.rtl,this.x,this.width),p=function(i){e.fillText(i,g.x(t.x+f),t.y+d/2),t.y+=d+n},m=g.textAlign(o);let b,x,_,y,v,M,w;for(e.textAlign=o,e.textBaseline="middle",e.font=c.string,t.x=Ea(this,m,i),e.fillStyle=i.bodyColor,u(this.beforeBody,p),f=a&&"right"!==m?"center"===o?l/2+h:l+2+h:0,y=0,M=s.length;y0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,i=this.$animations,s=i&&i.x,n=i&&i.y;if(s||n){const i=Sa[t.position].call(this,this._active,this._eventPosition);if(!i)return;const o=this._size=Oa(this,t),a=Object.assign({},i,this._size),r=Ta(e,t,a),l=La(t,a,r,e);s._to===l.x&&n._to===l.y||(this.xAlign=r.xAlign,this.yAlign=r.yAlign,this.width=o.width,this.height=o.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,l))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(e);const s={width:this.width,height:this.height},n={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const o=ki(e.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(n,t,s,e),Ai(t,e.textDirection),n.y+=o.top,this.drawTitle(n,t,e),this.drawBody(n,t,e),this.drawFooter(n,t,e),Ti(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const i=this._active,s=t.map((({datasetIndex:t,index:e})=>{const i=this.chart.getDatasetMeta(t);if(!i)throw new Error("Cannot find a dataset at index "+t);return{datasetIndex:t,element:i.data[e],index:e}})),n=!f(i,s),o=this._positionChanged(s,e);(n||o)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,n=this._active||[],o=this._getActiveElements(t,n,e,i),a=this._positionChanged(o,t),r=e||!f(o,n)||a;return r&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),r}_getActiveElements(t,e,i,s){const n=this.options;if("mouseout"===t.type)return[];if(!s)return e.filter((t=>this.chart.data.datasets[t.datasetIndex]&&void 0!==this.chart.getDatasetMeta(t.datasetIndex).controller.getParsed(t.index)));const o=this.chart.getElementsAtEventForMode(t,n.mode,n,i);return n.reverse&&o.reverse(),o}_positionChanged(t,e){const{caretX:i,caretY:s,options:n}=this,o=Sa[n.position].call(this,t,e);return!1!==o&&(i!==o.x||s!==o.y)}}var Ba={id:"tooltip",_element:Va,positioners:Sa,afterInit(t,e,i){i&&(t.tooltip=new Va({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const i={tooltip:e};if(!1===t.notifyPlugins("beforeTooltipDraw",{...i,cancelable:!0}))return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",i)}},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:za},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>"filter"!==t&&"itemSort"!==t&&"external"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};return An.register(Yn,jo,fo,t),An.helpers={...Wi},An._adapters=Rn,An.Animation=Cs,An.Animations=Os,An.animator=xt,An.controllers=en.controllers.items,An.DatasetController=Ns,An.Element=Hs,An.elements=fo,An.Interaction=Xi,An.layouts=as,An.platforms=Ss,An.Scale=Js,An.Ticks=ae,Object.assign(An,Yn,jo,fo,t,Ss),An.Chart=An,"undefined"!=typeof window&&(window.Chart=An),An})); + */function _t(t){return t+.5|0}const yt=(t,e,i)=>Math.max(Math.min(t,i),e);function vt(t){return yt(_t(2.55*t),0,255)}function Mt(t){return yt(_t(255*t),0,255)}function wt(t){return yt(_t(t/2.55)/100,0,1)}function kt(t){return yt(_t(100*t),0,100)}const St={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pt=[..."0123456789ABCDEF"],Dt=t=>Pt[15&t],Ct=t=>Pt[(240&t)>>4]+Pt[15&t],Ot=t=>(240&t)>>4==(15&t);function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const Tt=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Et(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function It(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e>16&255,o>>8&255,255&o]}return t}(),Ht.transparent=[0,0,0,0]);const e=Ht[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $t=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const Yt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Ut=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),s=Ft(s),t.r=s[0],t.g=s[1],t.b=s[2]}}function qt(t,e){return t?Object.assign(e||{},t):t}function Kt(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Mt(t[3]))):(e=qt(t,{r:0,g:0,b:0,a:1})).a=Mt(e.a),e}function Gt(t){return"r"===t.charAt(0)?function(t){const e=$t.exec(t);let i,s,n,o=255;if(e){if(e[7]!==i){const t=+e[7];o=e[8]?vt(t):yt(255*t,0,255)}return i=+e[1],s=+e[3],n=+e[5],i=255&(e[2]?vt(i):yt(i,0,255)),s=255&(e[4]?vt(s):yt(s,0,255)),n=255&(e[6]?vt(n):yt(n,0,255)),{r:i,g:s,b:n,a:o}}}(t):Bt(t)}class Zt{constructor(t){if(t instanceof Zt)return t;const e=typeof t;let i;var s,n,o;"object"===e?i=Kt(t):"string"===e&&(o=(s=t).length,"#"===s[0]&&(4===o||5===o?n={r:255&17*St[s[1]],g:255&17*St[s[2]],b:255&17*St[s[3]],a:5===o?17*St[s[4]]:255}:7!==o&&9!==o||(n={r:St[s[1]]<<4|St[s[2]],g:St[s[3]]<<4|St[s[4]],b:St[s[5]]<<4|St[s[6]],a:9===o?St[s[7]]<<4|St[s[8]]:255})),i=n||jt(t)||Gt(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=qt(this._rgb);return t&&(t.a=wt(t.a)),t}set rgb(t){this._rgb=Kt(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${wt(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):void 0;var t}hexString(){return this._valid?At(this._rgb):void 0}hslString(){return this._valid?function(t){if(!t)return;const e=It(t),i=e[0],s=kt(e[1]),n=kt(e[2]);return t.a<255?`hsla(${i}, ${s}%, ${n}%, ${wt(t.a)})`:`hsl(${i}, ${s}%, ${n}%)`}(this._rgb):void 0}mix(t,e){if(t){const i=this.rgb,s=t.rgb;let n;const o=e===n?.5:e,a=2*o-1,r=i.a-s.a,l=((a*r==-1?a:(a+r)/(1+a*r))+1)/2;n=1-l,i.r=255&l*i.r+n*s.r+.5,i.g=255&l*i.g+n*s.g+.5,i.b=255&l*i.b+n*s.b+.5,i.a=o*i.a+(1-o)*s.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=function(t,e,i){const s=Ut(wt(t.r)),n=Ut(wt(t.g)),o=Ut(wt(t.b));return{r:Mt(Yt(s+i*(Ut(wt(e.r))-s))),g:Mt(Yt(n+i*(Ut(wt(e.g))-n))),b:Mt(Yt(o+i*(Ut(wt(e.b))-o))),a:t.a+i*(e.a-t.a)}}(this._rgb,t._rgb,e)),this}clone(){return new Zt(this.rgb)}alpha(t){return this._rgb.a=Mt(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=_t(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return Xt(this._rgb,2,t),this}darken(t){return Xt(this._rgb,2,-t),this}saturate(t){return Xt(this._rgb,1,t),this}desaturate(t){return Xt(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=It(t);i[0]=Vt(i[0]+e),i=Ft(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function Jt(t){if(t&&"object"==typeof t){const e=t.toString();return"[object CanvasPattern]"===e||"[object CanvasGradient]"===e}return!1}function Qt(t){return Jt(t)?t:new Zt(t)}function te(t){return Jt(t)?t:new Zt(t).saturate(.5).darken(.1).hexString()}const ee=["x","y","borderWidth","radius","tension"],ie=["color","borderColor","backgroundColor"];const se=new Map;function ne(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let s=se.get(i);return s||(s=new Intl.NumberFormat(t,e),se.set(i,s)),s}(e,i).format(t)}const oe={values:t=>n(t)?t:""+t,numeric(t,e,i){if(0===t)return"0";const s=this.chart.options.locale;let n,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e<1e-4||e>1e15)&&(n="scientific"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const a=z(Math.abs(o)),r=isNaN(a)?1:Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),ne(t,s,l)},logarithmic(t,e,i){if(0===t)return"0";const s=i[e].significand||t/Math.pow(10,Math.floor(z(t)));return[1,2,3,5,10,15].includes(s)||e>.8*i.length?oe.numeric.call(this,t,e,i):""}};var ae={formatters:oe};const re=Object.create(null),le=Object.create(null);function he(t,e){if(!e)return t;const i=e.split(".");for(let e=0,s=i.length;et.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>te(e.backgroundColor),this.hoverBorderColor=(t,e)=>te(e.borderColor),this.hoverColor=(t,e)=>te(e.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(e)}set(t,e){return ce(this,t,e)}get(t){return he(this,t)}describe(t,e){return ce(le,t,e)}override(t,e){return ce(re,t,e)}route(t,e,i,s){const n=he(this,t),a=he(this,i),r="_"+e;Object.defineProperties(n,{[r]:{value:n[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[r],e=a[s];return o(t)?Object.assign({},e,t):l(t,e)},set(t){this[r]=t}}})}apply(t){t.forEach((t=>t(this)))}}var ue=new de({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>"onProgress"!==t&&"onComplete"!==t&&"fn"!==t}),t.set("animations",{colors:{type:"color",properties:ie},numbers:{type:"number",properties:ee}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>0|t}}}})},function(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ae.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&"callback"!==t&&"parser"!==t,_indexable:t=>"borderDash"!==t&&"tickBorderDash"!==t&&"dash"!==t}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:t=>"backdropPadding"!==t&&"callback"!==t,_indexable:t=>"backdropPadding"!==t})}]);function fe(){return"undefined"!=typeof window&&"undefined"!=typeof document}function ge(t){let e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e}function pe(t,e,i){let s;return"string"==typeof t?(s=parseInt(t,10),-1!==t.indexOf("%")&&(s=s/100*e.parentNode[i])):s=t,s}const me=t=>t.ownerDocument.defaultView.getComputedStyle(t,null);function xe(t,e){return me(t).getPropertyValue(e)}const be=["top","right","bottom","left"];function _e(t,e,i){const s={};i=i?"-"+i:"";for(let n=0;n<4;n++){const o=be[n];s[o]=parseFloat(t[e+"-"+o+i])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}const ye=(t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot);function ve(t,e){if("native"in t)return t;const{canvas:i,currentDevicePixelRatio:s}=e,n=me(i),o="border-box"===n.boxSizing,a=_e(n,"padding"),r=_e(n,"border","width"),{x:l,y:h,box:c}=function(t,e){const i=t.touches,s=i&&i.length?i[0]:t,{offsetX:n,offsetY:o}=s;let a,r,l=!1;if(ye(n,o,t.target))a=n,r=o;else{const t=e.getBoundingClientRect();a=s.clientX-t.left,r=s.clientY-t.top,l=!0}return{x:a,y:r,box:l}}(t,i),d=a.left+(c&&r.left),u=a.top+(c&&r.top);let{width:f,height:g}=e;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)/f*i.width/s),y:Math.round((h-u)/g*i.height/s)}}const Me=t=>Math.round(10*t)/10;function we(t,e,i,s){const n=me(t),o=_e(n,"margin"),a=pe(n.maxWidth,t,"clientWidth")||T,r=pe(n.maxHeight,t,"clientHeight")||T,l=function(t,e,i){let s,n;if(void 0===e||void 0===i){const o=t&&ge(t);if(o){const t=o.getBoundingClientRect(),a=me(o),r=_e(a,"border","width"),l=_e(a,"padding");e=t.width-l.width-r.width,i=t.height-l.height-r.height,s=pe(a.maxWidth,o,"clientWidth"),n=pe(a.maxHeight,o,"clientHeight")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:s||T,maxHeight:n||T}}(t,e,i);let{width:h,height:c}=l;if("content-box"===n.boxSizing){const t=_e(n,"border","width"),e=_e(n,"padding");h-=e.width+t.width,c-=e.height+t.height}h=Math.max(0,h-o.width),c=Math.max(0,s?h/s:c-o.height),h=Me(Math.min(h,a,l.maxWidth)),c=Me(Math.min(c,r,l.maxHeight)),h&&!c&&(c=Me(h/2));return(void 0!==e||void 0!==i)&&s&&l.height&&c>l.height&&(c=l.height,h=Me(Math.floor(c*s))),{width:h,height:c}}function ke(t,e,i){const s=e||1,n=Math.floor(t.height*s),o=Math.floor(t.width*s);t.height=Math.floor(t.height),t.width=Math.floor(t.width);const a=t.canvas;return a.style&&(i||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==s||a.height!==n||a.width!==o)&&(t.currentDevicePixelRatio=s,a.height=n,a.width=o,t.ctx.setTransform(s,0,0,s,0,0),!0)}const Se=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};fe()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch(t){}return t}();function Pe(t,e){const i=xe(t,e),s=i&&i.match(/^(\d+)(\.\d+)?px$/);return s?+s[1]:void 0}function De(t){return!t||s(t.size)||s(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function Ce(t,e,i,s,n){let o=e[n];return o||(o=e[n]=t.measureText(n).width,i.push(n)),o>s&&(s=o),s}function Oe(t,e,i,s){let o=(s=s||{}).data=s.data||{},a=s.garbageCollect=s.garbageCollect||[];s.font!==e&&(o=s.data={},a=s.garbageCollect=[],s.font=e),t.save(),t.font=e;let r=0;const l=i.length;let h,c,d,u,f;for(h=0;hi.length){for(h=0;h0&&t.stroke()}}function Re(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.xe.top-i&&t.y0&&""!==r.strokeColor;let c,d;for(t.save(),t.font=a.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]),s(e.rotation)||t.rotate(e.rotation),e.color&&(t.fillStyle=e.color),e.textAlign&&(t.textAlign=e.textAlign),e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,r),c=0;ct[0])){const o=i||t;void 0===s&&(s=ti("_fallback",t));const a={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:o,_fallback:s,_getTarget:n,override:i=>je([i,...t],e,o,s)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete e._keys,delete t[0][i],!0),get:(i,s)=>qe(i,s,(()=>function(t,e,i,s){let n;for(const o of e)if(n=ti(Ue(o,t),i),void 0!==n)return Xe(t,n)?Je(i,s,t,n):n}(s,e,t,i))),getOwnPropertyDescriptor:(t,e)=>Reflect.getOwnPropertyDescriptor(t._scopes[0],e),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(t,e)=>ei(t).includes(e),ownKeys:t=>ei(t),set(t,e,i){const s=t._storage||(t._storage=n());return t[e]=s[e]=i,delete t._keys,!0}})}function $e(t,e,i,s){const a={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:Ye(t,s),setContext:e=>$e(t,e,i,s),override:n=>$e(t.override(n),e,i,s)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete t[i],!0),get:(t,e,i)=>qe(t,e,(()=>function(t,e,i){const{_proxy:s,_context:a,_subProxy:r,_descriptors:l}=t;let h=s[e];S(h)&&l.isScriptable(e)&&(h=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_stack:r}=i;if(r.has(t))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+t);r.add(t);let l=e(o,a||s);r.delete(t),Xe(t,l)&&(l=Je(n._scopes,n,t,l));return l}(e,h,t,i));n(h)&&h.length&&(h=function(t,e,i,s){const{_proxy:n,_context:a,_subProxy:r,_descriptors:l}=i;if(void 0!==a.index&&s(t))return e[a.index%e.length];if(o(e[0])){const i=e,s=n._scopes.filter((t=>t!==i));e=[];for(const o of i){const i=Je(s,n,t,o);e.push($e(i,a,r&&r[t],l))}}return e}(e,h,t,l.isIndexable));Xe(e,h)&&(h=$e(h,a,r&&r[e],l));return h}(t,e,i))),getOwnPropertyDescriptor:(e,i)=>e._descriptors.allKeys?Reflect.has(t,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,i),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(e,i)=>Reflect.has(t,i),ownKeys:()=>Reflect.ownKeys(t),set:(e,i,s)=>(t[i]=s,delete e[i],!0)})}function Ye(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:s=e.indexable,_allKeys:n=e.allKeys}=t;return{allKeys:n,scriptable:i,indexable:s,isScriptable:S(i)?i:()=>i,isIndexable:S(s)?s:()=>s}}const Ue=(t,e)=>t?t+w(e):e,Xe=(t,e)=>o(e)&&"adapters"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function qe(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e)||"constructor"===e)return t[e];const s=i();return t[e]=s,s}function Ke(t,e,i){return S(t)?t(e,i):t}const Ge=(t,e)=>!0===t?e:"string"==typeof t?M(e,t):void 0;function Ze(t,e,i,s,n){for(const o of e){const e=Ge(i,o);if(e){t.add(e);const o=Ke(e._fallback,i,n);if(void 0!==o&&o!==i&&o!==s)return o}else if(!1===e&&void 0!==s&&i!==s)return null}return!1}function Je(t,e,i,s){const a=e._rootScopes,r=Ke(e._fallback,i,s),l=[...t,...a],h=new Set;h.add(s);let c=Qe(h,l,i,r||i,s);return null!==c&&((void 0===r||r===i||(c=Qe(h,l,r,c,s),null!==c))&&je(Array.from(h),[""],a,r,(()=>function(t,e,i){const s=t._getTarget();e in s||(s[e]={});const a=s[e];if(n(a)&&o(i))return i;return a||{}}(e,i,s))))}function Qe(t,e,i,s,n){for(;i;)i=Ze(t,e,i,s,n);return i}function ti(t,e){for(const i of e){if(!i)continue;const e=i[t];if(void 0!==e)return e}}function ei(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const i of t)for(const t of Object.keys(i).filter((t=>!t.startsWith("_"))))e.add(t);return Array.from(e)}(t._scopes)),e}function ii(t,e,i,s){const{iScale:n}=t,{key:o="r"}=this._parsing,a=new Array(s);let r,l,h,c;for(r=0,l=s;re"x"===t?"y":"x";function ai(t,e,i,s){const n=t.skip?e:t,o=e,a=i.skip?e:i,r=q(o,n),l=q(a,o);let h=r/(r+l),c=l/(r+l);h=isNaN(h)?0:h,c=isNaN(c)?0:c;const d=s*h,u=s*c;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function ri(t,e="x"){const i=oi(e),s=t.length,n=Array(s).fill(0),o=Array(s);let a,r,l,h=ni(t,0);for(a=0;a!t.skip))),"monotone"===e.cubicInterpolationMode)ri(t,n);else{let i=s?t[t.length-1]:t[0];for(o=0,a=t.length;o0===t||1===t,di=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*O/i),ui=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*O/i)+1,fi={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*E),easeOutSine:t=>Math.sin(t*E),easeInOutSine:t=>-.5*(Math.cos(C*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>ci(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>ci(t)?t:di(t,.075,.3),easeOutElastic:t=>ci(t)?t:ui(t,.075,.3),easeInOutElastic(t){const e=.1125;return ci(t)?t:t<.5?.5*di(2*t,e,.45):.5+.5*ui(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-fi.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375},easeInOutBounce:t=>t<.5?.5*fi.easeInBounce(2*t):.5*fi.easeOutBounce(2*t-1)+.5};function gi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function pi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:"middle"===s?i<.5?t.y:e.y:"after"===s?i<1?t.y:e.y:i>0?e.y:t.y}}function mi(t,e,i,s){const n={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=gi(t,n,i),r=gi(n,o,i),l=gi(o,e,i),h=gi(a,r,i),c=gi(r,l,i);return gi(h,c,i)}const xi=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,bi=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function _i(t,e){const i=(""+t).match(xi);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t}const yi=t=>+t||0;function vi(t,e){const i={},s=o(e),n=s?Object.keys(e):e,a=o(t)?s?i=>l(t[i],t[e[i]]):e=>t[e]:()=>t;for(const t of n)i[t]=yi(a(t));return i}function Mi(t){return vi(t,{top:"y",right:"x",bottom:"y",left:"x"})}function wi(t){return vi(t,["topLeft","topRight","bottomLeft","bottomRight"])}function ki(t){const e=Mi(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function Si(t,e){t=t||{},e=e||ue.font;let i=l(t.size,e.size);"string"==typeof i&&(i=parseInt(i,10));let s=l(t.style,e.style);s&&!(""+s).match(bi)&&(console.warn('Invalid font style specified: "'+s+'"'),s=void 0);const n={family:l(t.family,e.family),lineHeight:_i(l(t.lineHeight,e.lineHeight),i),size:i,style:s,weight:l(t.weight,e.weight),string:""};return n.string=De(n),n}function Pi(t,e,i,s){let o,a,r,l=!0;for(o=0,a=t.length;oi&&0===t?0:t+e;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function Ci(t,e){return Object.assign(Object.create(t),e)}function Oi(t,e,i){return t?function(t,e){return{x:i=>t+t+e-i,setWidth(t){e=t},textAlign:t=>"center"===t?t:"right"===t?"left":"right",xPlus:(t,e)=>t-e,leftForLtr:(t,e)=>t-e}}(e,i):{x:t=>t,setWidth(t){},textAlign:t=>t,xPlus:(t,e)=>t+e,leftForLtr:(t,e)=>t}}function Ai(t,e){let i,s;"ltr"!==e&&"rtl"!==e||(i=t.canvas.style,s=[i.getPropertyValue("direction"),i.getPropertyPriority("direction")],i.setProperty("direction",e,"important"),t.prevTextDirection=s)}function Ti(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Li(t){return"angle"===t?{between:Z,compare:K,normalize:G}:{between:tt,compare:(t,e)=>t-e,normalize:t=>t}}function Ei({start:t,end:e,count:i,loop:s,style:n}){return{start:t%i,end:e%i,loop:s&&(e-t+1)%i==0,style:n}}function Ri(t,e,i){if(!i)return[t];const{property:s,start:n,end:o}=i,a=e.length,{compare:r,between:l,normalize:h}=Li(s),{start:c,end:d,loop:u,style:f}=function(t,e,i){const{property:s,start:n,end:o}=i,{between:a,normalize:r}=Li(s),l=e.length;let h,c,{start:d,end:u,loop:f}=t;if(f){for(d+=l,u+=l,h=0,c=l;hb||l(n,x,p)&&0!==r(n,x),v=()=>!b||0===r(o,p)||l(o,x,p);for(let t=c,i=c;t<=d;++t)m=e[t%a],m.skip||(p=h(m[s]),p!==x&&(b=l(p,n,o),null===_&&y()&&(_=0===r(p,n)?t:i),null!==_&&v()&&(g.push(Ei({start:_,end:t,loop:u,count:a,style:f})),_=null),i=t,x=p));return null!==_&&g.push(Ei({start:_,end:d,loop:u,count:a,style:f})),g}function Ii(t,e){const i=[],s=t.segments;for(let n=0;nn&&t[o%e].skip;)o--;return o%=e,{start:n,end:o}}(i,n,o,s);if(!0===s)return Fi(t,[{start:a,end:r,loop:o}],i,e);return Fi(t,function(t,e,i,s){const n=t.length,o=[];let a,r=e,l=t[e];for(a=e+1;a<=i;++a){const i=t[a%n];i.skip||i.stop?l.skip||(s=!1,o.push({start:e%n,end:(a-1)%n,loop:s}),e=r=i.stop?a:null):(r=a,l.skip&&(e=a)),l=i}return null!==r&&o.push({start:e%n,end:r%n,loop:s}),o}(i,a,r{t[a](e[i],n)&&(o.push({element:t,datasetIndex:s,index:l}),r=r||t.inRange(e.x,e.y,n))})),s&&!r?[]:o}var Xi={evaluateInteractionItems:Hi,modes:{index(t,e,i,s){const n=ve(e,t),o=i.axis||"x",a=i.includeInvisible||!1,r=i.intersect?ji(t,n,o,s,a):Yi(t,n,o,!1,s,a),l=[];return r.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=r[0].index,i=t.data[e];i&&!i.skip&&l.push({element:i,datasetIndex:t.index,index:e})})),l):[]},dataset(t,e,i,s){const n=ve(e,t),o=i.axis||"xy",a=i.includeInvisible||!1;let r=i.intersect?ji(t,n,o,s,a):Yi(t,n,o,!1,s,a);if(r.length>0){const e=r[0].datasetIndex,i=t.getDatasetMeta(e).data;r=[];for(let t=0;tji(t,ve(e,t),i.axis||"xy",s,i.includeInvisible||!1),nearest(t,e,i,s){const n=ve(e,t),o=i.axis||"xy",a=i.includeInvisible||!1;return Yi(t,n,o,i.intersect,s,a)},x:(t,e,i,s)=>Ui(t,ve(e,t),"x",i.intersect,s),y:(t,e,i,s)=>Ui(t,ve(e,t),"y",i.intersect,s)}};const qi=["left","top","right","bottom"];function Ki(t,e){return t.filter((t=>t.pos===e))}function Gi(t,e){return t.filter((t=>-1===qi.indexOf(t.pos)&&t.box.axis===e))}function Zi(t,e){return t.sort(((t,i)=>{const s=e?i:t,n=e?t:i;return s.weight===n.weight?s.index-n.index:s.weight-n.weight}))}function Ji(t,e){const i=function(t){const e={};for(const i of t){const{stack:t,pos:s,stackWeight:n}=i;if(!t||!qi.includes(s))continue;const o=e[t]||(e[t]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=n}return e}(t),{vBoxMaxWidth:s,hBoxMaxHeight:n}=e;let o,a,r;for(o=0,a=t.length;o{s[t]=Math.max(e[t],i[t])})),s}return s(t?["left","right"]:["top","bottom"])}function ss(t,e,i,s){const n=[];let o,a,r,l,h,c;for(o=0,a=t.length,h=0;ot.box.fullSize)),!0),s=Zi(Ki(e,"left"),!0),n=Zi(Ki(e,"right")),o=Zi(Ki(e,"top"),!0),a=Zi(Ki(e,"bottom")),r=Gi(e,"x"),l=Gi(e,"y");return{fullSize:i,leftAndTop:s.concat(o),rightAndBottom:n.concat(l).concat(a).concat(r),chartArea:Ki(e,"chartArea"),vertical:s.concat(n).concat(l),horizontal:o.concat(a).concat(r)}}(t.boxes),l=r.vertical,h=r.horizontal;u(t.boxes,(t=>{"function"==typeof t.beforeLayout&&t.beforeLayout()}));const c=l.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,d=Object.freeze({outerWidth:e,outerHeight:i,padding:n,availableWidth:o,availableHeight:a,vBoxMaxWidth:o/2/c,hBoxMaxHeight:a/2}),f=Object.assign({},n);ts(f,ki(s));const g=Object.assign({maxPadding:f,w:o,h:a,x:n.left,y:n.top},n),p=Ji(l.concat(h),d);ss(r.fullSize,g,d,p),ss(l,g,d,p),ss(h,g,d,p)&&ss(l,g,d,p),function(t){const e=t.maxPadding;function i(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=i("top"),t.x+=i("left"),i("right"),i("bottom")}(g),os(r.leftAndTop,g,d,p),g.x+=g.w,g.y+=g.h,os(r.rightAndBottom,g,d,p),t.chartArea={left:g.left,top:g.top,right:g.left+g.w,bottom:g.top+g.h,height:g.h,width:g.w},u(r.chartArea,(e=>{const i=e.box;Object.assign(i,t.chartArea),i.update(g.w,g.h,{left:0,top:0,right:0,bottom:0})}))}};class rs{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,s?Math.floor(e/s):i)}}isAttached(t){return!0}updateConfig(t){}}class ls extends rs{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const hs="$chartjs",cs={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},ds=t=>null===t||""===t;const us=!!Se&&{passive:!0};function fs(t,e,i){t&&t.canvas&&t.canvas.removeEventListener(e,i,us)}function gs(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function ps(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||gs(i.addedNodes,s),e=e&&!gs(i.removedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}function ms(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||gs(i.removedNodes,s),e=e&&!gs(i.addedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}const xs=new Map;let bs=0;function _s(){const t=window.devicePixelRatio;t!==bs&&(bs=t,xs.forEach(((e,i)=>{i.currentDevicePixelRatio!==t&&e()})))}function ys(t,e,i){const s=t.canvas,n=s&&ge(s);if(!n)return;const o=ct(((t,e)=>{const s=n.clientWidth;i(t,e),s{const e=t[0],i=e.contentRect.width,s=e.contentRect.height;0===i&&0===s||o(i,s)}));return a.observe(n),function(t,e){xs.size||window.addEventListener("resize",_s),xs.set(t,e)}(t,o),a}function vs(t,e,i){i&&i.disconnect(),"resize"===e&&function(t){xs.delete(t),xs.size||window.removeEventListener("resize",_s)}(t)}function Ms(t,e,i){const s=t.canvas,n=ct((e=>{null!==t.ctx&&i(function(t,e){const i=cs[t.type]||t.type,{x:s,y:n}=ve(t,e);return{type:i,chart:e,native:t,x:void 0!==s?s:null,y:void 0!==n?n:null}}(e,t))}),t);return function(t,e,i){t&&t.addEventListener(e,i,us)}(s,e,n),n}class ws extends rs{acquireContext(t,e){const i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t,e){const i=t.style,s=t.getAttribute("height"),n=t.getAttribute("width");if(t[hs]={initial:{height:s,width:n,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",i.boxSizing=i.boxSizing||"border-box",ds(n)){const e=Pe(t,"width");void 0!==e&&(t.width=e)}if(ds(s))if(""===t.style.height)t.height=t.width/(e||2);else{const e=Pe(t,"height");void 0!==e&&(t.height=e)}}(t,e),i):null}releaseContext(t){const e=t.canvas;if(!e[hs])return!1;const i=e[hs].initial;["height","width"].forEach((t=>{const n=i[t];s(n)?e.removeAttribute(t):e.setAttribute(t,n)}));const n=i.style||{};return Object.keys(n).forEach((t=>{e.style[t]=n[t]})),e.width=e.width,delete e[hs],!0}addEventListener(t,e,i){this.removeEventListener(t,e);const s=t.$proxies||(t.$proxies={}),n={attach:ps,detach:ms,resize:ys}[e]||Ms;s[e]=n(t,e,i)}removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),s=i[e];if(!s)return;({attach:vs,detach:vs,resize:vs}[e]||fs)(t,e,s),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return we(t,e,i,s)}isAttached(t){const e=t&&ge(t);return!(!e||!e.isConnected)}}function ks(t){return!fe()||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas?ls:ws}var Ss=Object.freeze({__proto__:null,BasePlatform:rs,BasicPlatform:ls,DomPlatform:ws,_detectPlatform:ks});const Ps="transparent",Ds={boolean:(t,e,i)=>i>.5?e:t,color(t,e,i){const s=Qt(t||Ps),n=s.valid&&Qt(e||Ps);return n&&n.valid?n.mix(s,i).hexString():e},number:(t,e,i)=>t+(e-t)*i};class Cs{constructor(t,e,i,s){const n=e[i];s=Pi([t.to,s,n,t.from]);const o=Pi([t.from,n,s]);this._active=!0,this._fn=t.fn||Ds[t.type||typeof o],this._easing=fi[t.easing]||fi.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);const s=this._target[this._prop],n=i-this._start,o=this._duration-n;this._start=i,this._duration=Math.floor(Math.max(o,t.duration)),this._total+=n,this._loop=!!t.loop,this._to=Pi([t.to,e,s,t.from]),this._from=Pi([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,i=this._duration,s=this._prop,n=this._from,o=this._loop,a=this._to;let r;if(this._active=n!==a&&(o||e1?2-r:r,r=this._easing(Math.min(1,Math.max(0,r))),this._target[s]=this._fn(n,a,r))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,i)=>{t.push({res:e,rej:i})}))}_notify(t){const e=t?"res":"rej",i=this._promises||[];for(let t=0;t{const a=t[s];if(!o(a))return;const r={};for(const t of e)r[t]=a[t];(n(a.properties)&&a.properties||[s]).forEach((t=>{t!==s&&i.has(t)||i.set(t,r)}))}))}_animateOptions(t,e){const i=e.options,s=function(t,e){if(!e)return;let i=t.options;if(!i)return void(t.options=e);i.$shared&&(t.options=i=Object.assign({},i,{$shared:!1,$animations:{}}));return i}(t,i);if(!s)return[];const n=this._createAnimations(s,i);return i.$shared&&function(t,e){const i=[],s=Object.keys(e);for(let e=0;e{t.options=i}),(()=>{})),n}_createAnimations(t,e){const i=this._properties,s=[],n=t.$animations||(t.$animations={}),o=Object.keys(e),a=Date.now();let r;for(r=o.length-1;r>=0;--r){const l=o[r];if("$"===l.charAt(0))continue;if("options"===l){s.push(...this._animateOptions(t,e));continue}const h=e[l];let c=n[l];const d=i.get(l);if(c){if(d&&c.active()){c.update(d,h,a);continue}c.cancel()}d&&d.duration?(n[l]=c=new Cs(d,t,l,h),s.push(c)):t[l]=h}return s}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const i=this._createAnimations(t,e);return i.length?(bt.add(this._chart,i),!0):void 0}}function As(t,e){const i=t&&t.options||{},s=i.reverse,n=void 0===i.min?e:0,o=void 0===i.max?e:0;return{start:s?o:n,end:s?n:o}}function Ts(t,e){const i=[],s=t._getSortedDatasetMetas(e);let n,o;for(n=0,o=s.length;n0||!i&&e<0)return n.index}return null}function zs(t,e){const{chart:i,_cachedMeta:s}=t,n=i._stacks||(i._stacks={}),{iScale:o,vScale:a,index:r}=s,l=o.axis,h=a.axis,c=function(t,e,i){return`${t.id}.${e.id}.${i.stack||i.type}`}(o,a,s),d=e.length;let u;for(let t=0;ti[t].axis===e)).shift()}function Vs(t,e){const i=t.controller.index,s=t.vScale&&t.vScale.axis;if(s){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[s]||void 0===e[s][i])return;delete e[s][i],void 0!==e[s]._visualValues&&void 0!==e[s]._visualValues[i]&&delete e[s]._visualValues[i]}}}const Bs=t=>"reset"===t||"none"===t,Ws=(t,e)=>e?t:Object.assign({},t);class Ns{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=Es(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&Vs(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(t,e,i,s)=>"x"===t?e:"r"===t?s:i,n=e.xAxisID=l(i.xAxisID,Fs(t,"x")),o=e.yAxisID=l(i.yAxisID,Fs(t,"y")),a=e.rAxisID=l(i.rAxisID,Fs(t,"r")),r=e.indexAxis,h=e.iAxisID=s(r,n,o,a),c=e.vAxisID=s(r,o,n,a);e.xScale=this.getScaleForId(n),e.yScale=this.getScaleForId(o),e.rScale=this.getScaleForId(a),e.iScale=this.getScaleForId(h),e.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&rt(this._data,this),t._stacked&&Vs(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if(o(e)){const t=this._cachedMeta;this._data=function(t,e){const{iScale:i,vScale:s}=e,n="x"===i.axis?"x":"y",o="x"===s.axis?"x":"y",a=Object.keys(t),r=new Array(a.length);let l,h,c;for(l=0,h=a.length;l0&&i._parsed[t-1];if(!1===this._parsing)i._parsed=s,i._sorted=!0,d=s;else{d=n(s[t])?this.parseArrayData(i,s,t,e):o(s[t])?this.parseObjectData(i,s,t,e):this.parsePrimitiveData(i,s,t,e);const a=()=>null===c[l]||f&&c[l]t&&!e.hidden&&e._stacked&&{keys:Ts(i,!0),values:null})(e,i,this.chart),h={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:c,max:d}=function(t){const{min:e,max:i,minDefined:s,maxDefined:n}=t.getUserBounds();return{min:s?e:Number.NEGATIVE_INFINITY,max:n?i:Number.POSITIVE_INFINITY}}(r);let u,f;function g(){f=s[u];const e=f[r.axis];return!a(f[t.axis])||c>e||d=0;--u)if(!g()){this.updateRangeFromParsed(h,t,f,l);break}return h}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let s,n,o;for(s=0,n=e.length;s=0&&tthis.getContext(i,s,e)),c);return f.$shared&&(f.$shared=r,n[o]=Object.freeze(Ws(f,r))),f}_resolveAnimations(t,e,i){const s=this.chart,n=this._cachedDataOpts,o=`animation-${e}`,a=n[o];if(a)return a;let r;if(!1!==s.options.animation){const s=this.chart.config,n=s.datasetAnimationScopeKeys(this._type,e),o=s.getOptionScopes(this.getDataset(),n);r=s.createResolver(o,this.getContext(t,i,e))}const l=new Os(s,r&&r.animations);return r&&r._cacheable&&(n[o]=Object.freeze(l)),l}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||Bs(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const i=this.resolveDataElementOptions(t,e),s=this._sharedOptions,n=this.getSharedOptions(i),o=this.includeOptions(e,n)||n!==s;return this.updateSharedOptions(n,e,i),{sharedOptions:n,includeOptions:o}}updateElement(t,e,i,s){Bs(s)?Object.assign(t,i):this._resolveAnimations(e,s).update(t,i)}updateSharedOptions(t,e,i){t&&!Bs(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,s){t.active=s;const n=this.getStyle(e,s);this._resolveAnimations(e,i,s).update(t,{options:!s&&this.getSharedOptions(n)||n})}removeHoverStyle(t,e,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,i=this._cachedMeta.data;for(const[t,e,i]of this._syncList)this[t](e,i);this._syncList=[];const s=i.length,n=e.length,o=Math.min(n,s);o&&this.parse(0,o),n>s?this._insertElements(s,n-s,t):n{for(t.length+=e,a=t.length-1;a>=o;a--)t[a]=t[a-e]};for(r(n),a=t;a{s[t]=i[t]&&i[t].active()?i[t]._to:this[t]})),s}}function js(t,e){const i=t.options.ticks,n=function(t){const e=t.options.offset,i=t._tickSize(),s=t._length/i+(e?0:1),n=t._maxLength/i;return Math.floor(Math.min(s,n))}(t),o=Math.min(i.maxTicksLimit||n,n),a=i.major.enabled?function(t){const e=[];let i,s;for(i=0,s=t.length;io)return function(t,e,i,s){let n,o=0,a=i[0];for(s=Math.ceil(s),n=0;nn)return e}return Math.max(n,1)}(a,e,o);if(r>0){let t,i;const n=r>1?Math.round((h-l)/(r-1)):null;for($s(e,c,d,s(n)?0:l-n,l),t=0,i=r-1;t"top"===e||"left"===e?t[e]+i:t[e]-i,Us=(t,e)=>Math.min(e||t,t);function Xs(t,e){const i=[],s=t.length/e,n=t.length;let o=0;for(;oa+r)))return h}function Ks(t){return t.drawTicks?t.tickLength:0}function Gs(t,e){if(!t.display)return 0;const i=Si(t.font,e),s=ki(t.padding);return(n(t.text)?t.text.length:1)*i.lineHeight+s.height}function Zs(t,e,i){let s=ut(t);return(i&&"right"!==e||!i&&"right"===e)&&(s=(t=>"left"===t?"right":"right"===t?"left":t)(s)),s}class Js extends Hs{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,e){return t}getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:i,_suggestedMax:s}=this;return t=r(t,Number.POSITIVE_INFINITY),e=r(e,Number.NEGATIVE_INFINITY),i=r(i,Number.POSITIVE_INFINITY),s=r(s,Number.NEGATIVE_INFINITY),{min:r(t,i),max:r(e,s),minDefined:a(t),maxDefined:a(e)}}getMinMax(t){let e,{min:i,max:s,minDefined:n,maxDefined:o}=this.getUserBounds();if(n&&o)return{min:i,max:s};const a=this.getMatchingVisibleMetas();for(let r=0,l=a.length;rs?s:i,s=n&&i>s?i:s,{min:r(i,r(s,i)),max:r(s,r(i,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){d(this.options.beforeUpdate,[this])}update(t,e,i){const{beginAtZero:s,grace:n,ticks:o}=this.options,a=o.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=Di(this,n,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const r=a=n||i<=1||!this.isHorizontal())return void(this.labelRotation=s);const h=this._getLabelSizes(),c=h.widest.width,d=h.highest.height,u=J(this.chart.width-c,0,this.maxWidth);o=t.offset?this.maxWidth/i:u/(i-1),c+6>o&&(o=u/(i-(t.offset?.5:1)),a=this.maxHeight-Ks(t.grid)-e.padding-Gs(t.title,this.chart.options.font),r=Math.sqrt(c*c+d*d),l=Y(Math.min(Math.asin(J((h.highest.height+6)/o,-1,1)),Math.asin(J(a/r,-1,1))-Math.asin(J(d/r,-1,1)))),l=Math.max(s,Math.min(n,l))),this.labelRotation=l}afterCalculateLabelRotation(){d(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){d(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:n}}=this,o=this._isVisible(),a=this.isHorizontal();if(o){const o=Gs(s,e.options.font);if(a?(t.width=this.maxWidth,t.height=Ks(n)+o):(t.height=this.maxHeight,t.width=Ks(n)+o),i.display&&this.ticks.length){const{first:e,last:s,widest:n,highest:o}=this._getLabelSizes(),r=2*i.padding,l=$(this.labelRotation),h=Math.cos(l),c=Math.sin(l);if(a){const e=i.mirror?0:c*n.width+h*o.height;t.height=Math.min(this.maxHeight,t.height+e+r)}else{const e=i.mirror?0:h*n.width+c*o.height;t.width=Math.min(this.maxWidth,t.width+e+r)}this._calculatePadding(e,s,c,h)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,s){const{ticks:{align:n,padding:o},position:a}=this.options,r=0!==this.labelRotation,l="top"!==a&&"x"===this.axis;if(this.isHorizontal()){const a=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let c=0,d=0;r?l?(c=s*t.width,d=i*e.height):(c=i*t.height,d=s*e.width):"start"===n?d=e.width:"end"===n?c=t.width:"inner"!==n&&(c=t.width/2,d=e.width/2),this.paddingLeft=Math.max((c-a+o)*this.width/(this.width-a),0),this.paddingRight=Math.max((d-h+o)*this.width/(this.width-h),0)}else{let i=e.height/2,s=t.height/2;"start"===n?(i=0,s=t.height):"end"===n&&(i=e.height,s=0),this.paddingTop=i+o,this.paddingBottom=s+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){d(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||"bottom"===e||"x"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,i=t.length;e{const i=t.gc,s=i.length/2;let n;if(s>e){for(n=0;n({width:r[t]||0,height:l[t]||0});return{first:P(0),last:P(e-1),widest:P(k),highest:P(S),widths:r,heights:l}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return Q(this._alignToPixels?Ae(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&ta*s?a/i:r/s:r*s0}_computeGridLineItems(t){const e=this.axis,i=this.chart,s=this.options,{grid:n,position:a,border:r}=s,h=n.offset,c=this.isHorizontal(),d=this.ticks.length+(h?1:0),u=Ks(n),f=[],g=r.setContext(this.getContext()),p=g.display?g.width:0,m=p/2,x=function(t){return Ae(i,t,p)};let b,_,y,v,M,w,k,S,P,D,C,O;if("top"===a)b=x(this.bottom),w=this.bottom-u,S=b-m,D=x(t.top)+m,O=t.bottom;else if("bottom"===a)b=x(this.top),D=t.top,O=x(t.bottom)-m,w=b+m,S=this.top+u;else if("left"===a)b=x(this.right),M=this.right-u,k=b-m,P=x(t.left)+m,C=t.right;else if("right"===a)b=x(this.left),P=t.left,C=x(t.right)-m,M=b+m,k=this.left+u;else if("x"===e){if("center"===a)b=x((t.top+t.bottom)/2+.5);else if(o(a)){const t=Object.keys(a)[0],e=a[t];b=x(this.chart.scales[t].getPixelForValue(e))}D=t.top,O=t.bottom,w=b+m,S=w+u}else if("y"===e){if("center"===a)b=x((t.left+t.right)/2);else if(o(a)){const t=Object.keys(a)[0],e=a[t];b=x(this.chart.scales[t].getPixelForValue(e))}M=b-m,k=M-u,P=t.left,C=t.right}const A=l(s.ticks.maxTicksLimit,d),T=Math.max(1,Math.ceil(d/A));for(_=0;_0&&(o-=s/2)}d={left:o,top:n,width:s+e.width,height:i+e.height,color:t.backdropColor}}x.push({label:v,font:P,textOffset:O,options:{rotation:m,color:i,strokeColor:o,strokeWidth:h,textAlign:f,textBaseline:A,translation:[M,w],backdrop:d}})}return x}_getXAxisLabelAlignment(){const{position:t,ticks:e}=this.options;if(-$(this.labelRotation))return"top"===t?"left":"right";let i="center";return"start"===e.align?i="left":"end"===e.align?i="right":"inner"===e.align&&(i="inner"),i}_getYAxisLabelAlignment(t){const{position:e,ticks:{crossAlign:i,mirror:s,padding:n}}=this.options,o=t+n,a=this._getLabelSizes().widest.width;let r,l;return"left"===e?s?(l=this.right+n,"near"===i?r="left":"center"===i?(r="center",l+=a/2):(r="right",l+=a)):(l=this.right-o,"near"===i?r="right":"center"===i?(r="center",l-=a/2):(r="left",l=this.left)):"right"===e?s?(l=this.left+n,"near"===i?r="right":"center"===i?(r="center",l-=a/2):(r="left",l-=a)):(l=this.left+o,"near"===i?r="left":"center"===i?(r="center",l+=a/2):(r="right",l=this.right)):r="right",{textAlign:r,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,e=this.options.position;return"left"===e||"right"===e?{top:0,left:this.left,bottom:t.height,right:this.right}:"top"===e||"bottom"===e?{top:this.top,left:0,bottom:this.bottom,right:t.width}:void 0}drawBackground(){const{ctx:t,options:{backgroundColor:e},left:i,top:s,width:n,height:o}=this;e&&(t.save(),t.fillStyle=e,t.fillRect(i,s,n,o),t.restore())}getLineWidthForValue(t){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const i=this.ticks.findIndex((e=>e.value===t));if(i>=0){return e.setContext(this.getContext(i)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let n,o;const a=(t,e,s)=>{s.width&&s.color&&(i.save(),i.lineWidth=s.width,i.strokeStyle=s.color,i.setLineDash(s.borderDash||[]),i.lineDashOffset=s.borderDashOffset,i.beginPath(),i.moveTo(t.x,t.y),i.lineTo(e.x,e.y),i.stroke(),i.restore())};if(e.display)for(n=0,o=s.length;n{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let n,o;for(n=0,o=e.length;n{const s=i.split("."),n=s.pop(),o=[t].concat(s).join("."),a=e[i].split("."),r=a.pop(),l=a.join(".");ue.route(o,n,l,r)}))}(e,t.defaultRoutes);t.descriptors&&ue.describe(e,t.descriptors)}(t,o,i),this.override&&ue.override(t.id,t.overrides)),o}get(t){return this.items[t]}unregister(t){const e=this.items,i=t.id,s=this.scope;i in e&&delete e[i],s&&i in ue[s]&&(delete ue[s][i],this.override&&delete re[i])}}class tn{constructor(){this.controllers=new Qs(Ns,"datasets",!0),this.elements=new Qs(Hs,"elements"),this.plugins=new Qs(Object,"plugins"),this.scales=new Qs(Js,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,i){[...e].forEach((e=>{const s=i||this._getRegistryForType(e);i||s.isForType(e)||s===this.plugins&&e.id?this._exec(t,s,e):u(e,(e=>{const s=i||this._getRegistryForType(e);this._exec(t,s,e)}))}))}_exec(t,e,i){const s=w(t);d(i["before"+s],[],i),e[t](i),d(i["after"+s],[],i)}_getRegistryForType(t){for(let e=0;et.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(s(e,i),t,"stop"),this._notify(s(i,e),t,"start")}}function nn(t,e){return e||!1!==t?!0===t?{}:t:null}function on(t,{plugin:e,local:i},s,n){const o=t.pluginScopeKeys(e),a=t.getOptionScopes(s,o);return i&&e.defaults&&a.push(e.defaults),t.createResolver(a,n,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function an(t,e){const i=ue.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||i.indexAxis||"x"}function rn(t){if("x"===t||"y"===t||"r"===t)return t}function ln(t,...e){if(rn(t))return t;for(const s of e){const e=s.axis||("top"===(i=s.position)||"bottom"===i?"x":"left"===i||"right"===i?"y":void 0)||t.length>1&&rn(t[0].toLowerCase());if(e)return e}var i;throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function hn(t,e,i){if(i[e+"AxisID"]===t)return{axis:e}}function cn(t,e){const i=re[t.type]||{scales:{}},s=e.scales||{},n=an(t.type,e),a=Object.create(null);return Object.keys(s).forEach((e=>{const r=s[e];if(!o(r))return console.error(`Invalid scale configuration for scale: ${e}`);if(r._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${e}`);const l=ln(e,r,function(t,e){if(e.data&&e.data.datasets){const i=e.data.datasets.filter((e=>e.xAxisID===t||e.yAxisID===t));if(i.length)return hn(t,"x",i[0])||hn(t,"y",i[0])}return{}}(e,t),ue.scales[r.type]),h=function(t,e){return t===e?"_index_":"_value_"}(l,n),c=i.scales||{};a[e]=b(Object.create(null),[{axis:l},r,c[l],c[h]])})),t.data.datasets.forEach((i=>{const n=i.type||t.type,o=i.indexAxis||an(n,e),r=(re[n]||{}).scales||{};Object.keys(r).forEach((t=>{const e=function(t,e){let i=t;return"_index_"===t?i=e:"_value_"===t&&(i="x"===e?"y":"x"),i}(t,o),n=i[e+"AxisID"]||e;a[n]=a[n]||Object.create(null),b(a[n],[{axis:e},s[n],r[t]])}))})),Object.keys(a).forEach((t=>{const e=a[t];b(e,[ue.scales[e.type],ue.scale])})),a}function dn(t){const e=t.options||(t.options={});e.plugins=l(e.plugins,{}),e.scales=cn(t,e)}function un(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const fn=new Map,gn=new Set;function pn(t,e){let i=fn.get(t);return i||(i=e(),fn.set(t,i),gn.add(i)),i}const mn=(t,e,i)=>{const s=M(e,i);void 0!==s&&t.add(s)};class xn{constructor(t){this._config=function(t){return(t=t||{}).data=un(t.data),dn(t),t}(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=un(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),dn(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return pn(t,(()=>[[`datasets.${t}`,""]]))}datasetAnimationScopeKeys(t,e){return pn(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]]))}datasetElementScopeKeys(t,e){return pn(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]]))}pluginScopeKeys(t){const e=t.id;return pn(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const i=this._scopeCache;let s=i.get(t);return s&&!e||(s=new Map,i.set(t,s)),s}getOptionScopes(t,e,i){const{options:s,type:n}=this,o=this._cachedScopes(t,i),a=o.get(e);if(a)return a;const r=new Set;e.forEach((e=>{t&&(r.add(t),e.forEach((e=>mn(r,t,e)))),e.forEach((t=>mn(r,s,t))),e.forEach((t=>mn(r,re[n]||{},t))),e.forEach((t=>mn(r,ue,t))),e.forEach((t=>mn(r,le,t)))}));const l=Array.from(r);return 0===l.length&&l.push(Object.create(null)),gn.has(e)&&o.set(e,l),l}chartOptionScopes(){const{options:t,type:e}=this;return[t,re[e]||{},ue.datasets[e]||{},{type:e},ue,le]}resolveNamedOptions(t,e,i,s=[""]){const o={$shared:!0},{resolver:a,subPrefixes:r}=bn(this._resolverCache,t,s);let l=a;if(function(t,e){const{isScriptable:i,isIndexable:s}=Ye(t);for(const o of e){const e=i(o),a=s(o),r=(a||e)&&t[o];if(e&&(S(r)||_n(r))||a&&n(r))return!0}return!1}(a,e)){o.$shared=!1;l=$e(a,i=S(i)?i():i,this.createResolver(t,i,r))}for(const t of e)o[t]=l[t];return o}createResolver(t,e,i=[""],s){const{resolver:n}=bn(this._resolverCache,t,i);return o(e)?$e(n,e,void 0,s):n}}function bn(t,e,i){let s=t.get(e);s||(s=new Map,t.set(e,s));const n=i.join();let o=s.get(n);if(!o){o={resolver:je(e,i),subPrefixes:i.filter((t=>!t.toLowerCase().includes("hover")))},s.set(n,o)}return o}const _n=t=>o(t)&&Object.getOwnPropertyNames(t).some((e=>S(t[e])));const yn=["top","bottom","left","right","chartArea"];function vn(t,e){return"top"===t||"bottom"===t||-1===yn.indexOf(t)&&"x"===e}function Mn(t,e){return function(i,s){return i[t]===s[t]?i[e]-s[e]:i[t]-s[t]}}function wn(t){const e=t.chart,i=e.options.animation;e.notifyPlugins("afterRender"),d(i&&i.onComplete,[t],e)}function kn(t){const e=t.chart,i=e.options.animation;d(i&&i.onProgress,[t],e)}function Sn(t){return fe()&&"string"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Pn={},Dn=t=>{const e=Sn(t);return Object.values(Pn).filter((t=>t.canvas===e)).pop()};function Cn(t,e,i){const s=Object.keys(t);for(const n of s){const s=+n;if(s>=e){const o=t[n];delete t[n],(i>0||s>e)&&(t[s+i]=o)}}}function On(t,e,i){return t.options.clip?t[i]:e[i]}class An{static defaults=ue;static instances=Pn;static overrides=re;static registry=en;static version="4.4.3";static getChart=Dn;static register(...t){en.add(...t),Tn()}static unregister(...t){en.remove(...t),Tn()}constructor(t,e){const s=this.config=new xn(e),n=Sn(t),o=Dn(n);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const a=s.createResolver(s.chartOptionScopes(),this.getContext());this.platform=new(s.platform||ks(n)),this.platform.updateConfig(s);const r=this.platform.acquireContext(n,a.aspectRatio),l=r&&r.canvas,h=l&&l.height,c=l&&l.width;this.id=i(),this.ctx=r,this.canvas=l,this.width=c,this.height=h,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new sn,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=dt((t=>this.update(t)),a.resizeDelay||0),this._dataChanges=[],Pn[this.id]=this,r&&l?(bt.listen(this,"complete",wn),bt.listen(this,"progress",kn),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:n,_aspectRatio:o}=this;return s(t)?e&&o?o:n?i/n:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return en}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():ke(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Te(this.canvas,this.ctx),this}stop(){return bt.stop(this),this}resize(t,e){bt.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,s=this.canvas,n=i.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(s,t,e,n),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),r=this.width?"resize":"attach";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,ke(this,a,!0)&&(this.notifyPlugins("resize",{size:o}),d(i.onResize,[this,o],this),this.attached&&this._doResize(r)&&this.render())}ensureScalesHaveIDs(){u(this.options.scales||{},((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce(((t,e)=>(t[e]=!1,t)),{});let n=[];e&&(n=n.concat(Object.keys(e).map((t=>{const i=e[t],s=ln(t,i),n="r"===s,o="x"===s;return{options:i,dposition:n?"chartArea":o?"bottom":"left",dtype:n?"radialLinear":o?"category":"linear"}})))),u(n,(e=>{const n=e.options,o=n.id,a=ln(o,n),r=l(n.type,e.dtype);void 0!==n.position&&vn(n.position,a)===vn(e.dposition)||(n.position=e.dposition),s[o]=!0;let h=null;if(o in i&&i[o].type===r)h=i[o];else{h=new(en.getScale(r))({id:o,type:r,ctx:this.ctx,chart:this}),i[h.id]=h}h.init(n,t)})),u(s,((t,e)=>{t||delete i[e]})),u(i,(t=>{as.configure(this,t,t.options),as.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort(((t,e)=>t.index-e.index)),i>e){for(let t=e;te.length&&delete this._stacks,t.forEach(((t,i)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(i)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0}))return;const n=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let o=0;for(let t=0,e=this.data.datasets.length;t{t.reset()})),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Mn("z","_idx"));const{_active:a,_lastEvent:r}=this;r?this._eventHandler(r,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){u(this.scales,(t=>{as.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);P(e,i)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:n}of e){Cn(t,s,"_removeElements"===i?-n:n)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+","+t.splice(1).join(",")))),s=i(0);for(let t=1;tt.split(","))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;as.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],u(this.boxes,(t=>{i&&"chartArea"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,i=t._clip,s=!i.disabled,n=function(t,e){const{xScale:i,yScale:s}=t;return i&&s?{left:On(i,e,"left"),right:On(i,e,"right"),top:On(s,e,"top"),bottom:On(s,e,"bottom")}:e}(t,this.chartArea),o={meta:t,index:t.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",o)&&(s&&Ie(e,{left:!1===i.left?0:n.left-i.left,right:!1===i.right?this.width:n.right+i.right,top:!1===i.top?0:n.top-i.top,bottom:!1===i.bottom?this.height:n.bottom+i.bottom}),t.controller.draw(),s&&ze(e),o.cancelable=!1,this.notifyPlugins("afterDatasetDraw",o))}isPointInArea(t){return Re(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,s){const n=Xi.modes[e];return"function"==typeof n?n(this,t,i,s):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let s=i.filter((t=>t&&t._dataset===e)).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=Ci(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return"boolean"==typeof i.hidden?!i.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const s=i?"show":"hide",n=this.getDatasetMeta(t),o=n.controller._resolveAnimations(void 0,s);k(e)?(n.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),o.update(n,{visible:i}),this.update((e=>e.datasetIndex===t?s:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),bt.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,i,s),t[i]=s},s=(t,e,i)=>{t.offsetX=e,t.offsetY=i,this._eventHandler(t)};u(this.options.events,(t=>i(t,s)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(i,s)=>{t[i]&&(e.removeEventListener(this,i,s),delete t[i])},n=(t,e)=>{this.canvas&&this.resize(t,e)};let o;const a=()=>{s("attach",a),this.attached=!0,this.resize(),i("resize",n),i("detach",o)};o=()=>{this.attached=!1,s("resize",n),this._stop(),this._resize(0,0),i("attach",a)},e.isAttached(this.canvas)?a():o()}unbindEvents(){u(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},u(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const s=i?"set":"remove";let n,o,a,r;for("dataset"===e&&(n=this.getDatasetMeta(t[0].datasetIndex),n.controller["_"+s+"DatasetHoverStyle"]()),a=0,r=t.length;a{const i=this.getDatasetMeta(t);if(!i)throw new Error("No dataset found at index "+t);return{datasetIndex:t,element:i.data[e],index:e}}));!f(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin.id===t)).length}_updateHoverStyles(t,e,i){const s=this.options.hover,n=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),o=n(e,t),a=i?t:n(t,e);o.length&&this.updateHoverStyle(o,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},s=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins("beforeEvent",i,s))return;const n=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(n||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:s=[],options:n}=this,o=e,a=this._getActiveElements(t,s,i,o),r=D(t),l=function(t,e,i,s){return i&&"mouseout"!==t.type?s?e:t:null}(t,this._lastEvent,i,r);i&&(this._lastEvent=null,d(n.onHover,[t,a,this],this),r&&d(n.onClick,[t,a,this],this));const h=!f(a,s);return(h||e)&&(this._active=a,this._updateHoverStyles(a,s,e)),this._lastEvent=l,h}_getActiveElements(t,e,i,s){if("mouseout"===t.type)return[];if(!i)return e;const n=this.options.hover;return this.getElementsAtEventForMode(t,n.mode,n,s)}}function Tn(){return u(An.instances,(t=>t._plugins.invalidate()))}function Ln(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class En{static override(t){Object.assign(En.prototype,t)}options;constructor(t){this.options=t||{}}init(){}formats(){return Ln()}parse(){return Ln()}format(){return Ln()}add(){return Ln()}diff(){return Ln()}startOf(){return Ln()}endOf(){return Ln()}}var Rn={_date:En};function In(t){const e=t.iScale,i=function(t,e){if(!t._cache.$bar){const i=t.getMatchingVisibleMetas(e);let s=[];for(let e=0,n=i.length;et-e)))}return t._cache.$bar}(e,t.type);let s,n,o,a,r=e._length;const l=()=>{32767!==o&&-32768!==o&&(k(a)&&(r=Math.min(r,Math.abs(o-a)||r)),a=o)};for(s=0,n=i.length;sMath.abs(r)&&(l=r,h=a),e[i.axis]=h,e._custom={barStart:l,barEnd:h,start:n,end:o,min:a,max:r}}(t,e,i,s):e[i.axis]=i.parse(t,s),e}function Fn(t,e,i,s){const n=t.iScale,o=t.vScale,a=n.getLabels(),r=n===o,l=[];let h,c,d,u;for(h=i,c=i+s;ht.x,i="left",s="right"):(e=t.base"spacing"!==t,_indexable:t=>"spacing"!==t&&!t.startsWith("borderDash")&&!t.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:i,color:s}}=t.legend.options;return e.labels.map(((e,n)=>{const o=t.getDatasetMeta(0).controller.getStyle(n);return{text:e,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,fontColor:s,lineWidth:o.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(n),index:n}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}}}};constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const i=this.getDataset().data,s=this._cachedMeta;if(!1===this._parsing)s._parsed=i;else{let n,a,r=t=>+i[t];if(o(i[t])){const{key:t="value"}=this._parsing;r=e=>+M(i[e],t)}for(n=t,a=t+e;nZ(t,r,l,!0)?1:Math.max(e,e*i,s,s*i),g=(t,e,s)=>Z(t,r,l,!0)?-1:Math.min(e,e*i,s,s*i),p=f(0,h,d),m=f(E,c,u),x=g(C,h,d),b=g(C+E,c,u);s=(p-x)/2,n=(m-b)/2,o=-(p+x)/2,a=-(m+b)/2}return{ratioX:s,ratioY:n,offsetX:o,offsetY:a}}(u,d,r),x=(i.width-o)/f,b=(i.height-o)/g,_=Math.max(Math.min(x,b)/2,0),y=c(this.options.radius,_),v=(y-Math.max(y*r,0))/this._getVisibleDatasetWeightTotal();this.offsetX=p*y,this.offsetY=m*y,s.total=this.calculateTotal(),this.outerRadius=y-v*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-v*l,0),this.updateElements(n,0,n.length,t)}_circumference(t,e){const i=this.options,s=this._cachedMeta,n=this._getCircumference();return e&&i.animation.animateRotate||!this.chart.getDataVisibility(t)||null===s._parsed[t]||s.data[t].hidden?0:this.calculateCircumference(s._parsed[t]*n/O)}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.chartArea,r=o.options.animation,l=(a.left+a.right)/2,h=(a.top+a.bottom)/2,c=n&&r.animateScale,d=c?0:this.innerRadius,u=c?0:this.outerRadius,{sharedOptions:f,includeOptions:g}=this._getSharedOptions(e,s);let p,m=this._getRotation();for(p=0;p0&&!isNaN(t)?O*(Math.abs(t)/e):0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=ne(e._parsed[t],i.options.locale);return{label:s[t]||"",value:n}}getMaxBorderWidth(t){let e=0;const i=this.chart;let s,n,o,a,r;if(!t)for(s=0,n=i.data.datasets.length;s{const o=t.getDatasetMeta(0).controller.getStyle(n);return{text:e,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,fontColor:s,lineWidth:o.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(n),index:n}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=ne(e._parsed[t].r,i.options.locale);return{label:s[t]||"",value:n}}parseObjectData(t,e,i,s){return ii.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){const t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach(((t,i)=>{const s=this.getParsed(i).r;!isNaN(s)&&this.chart.getDataVisibility(i)&&(se.max&&(e.max=s))})),e}_updateRadius(){const t=this.chart,e=t.chartArea,i=t.options,s=Math.min(e.right-e.left,e.bottom-e.top),n=Math.max(s/2,0),o=(n-Math.max(i.cutoutPercentage?n/100*i.cutoutPercentage:1,0))/t.getVisibleDatasetCount();this.outerRadius=n-o*this.index,this.innerRadius=this.outerRadius-o}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.options.animation,r=this._cachedMeta.rScale,l=r.xCenter,h=r.yCenter,c=r.getIndexAngle(0)-.5*C;let d,u=c;const f=360/this.countVisibleElements();for(d=0;d{!isNaN(this.getParsed(i).r)&&this.chart.getDataVisibility(i)&&e++})),e}_computeAngle(t,e,i){return this.chart.getDataVisibility(t)?$(this.resolveDataElementOptions(t,e).angle||i):0}}var Yn=Object.freeze({__proto__:null,BarController:class extends Ns{static id="bar";static defaults={datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}};static overrides={scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}};parsePrimitiveData(t,e,i,s){return Fn(t,e,i,s)}parseArrayData(t,e,i,s){return Fn(t,e,i,s)}parseObjectData(t,e,i,s){const{iScale:n,vScale:o}=t,{xAxisKey:a="x",yAxisKey:r="y"}=this._parsing,l="x"===n.axis?a:r,h="x"===o.axis?a:r,c=[];let d,u,f,g;for(d=i,u=i+s;dt.controller.options.grouped)),o=i.options.stacked,a=[],r=t=>{const i=t.controller.getParsed(e),n=i&&i[t.vScale.axis];if(s(n)||isNaN(n))return!0};for(const i of n)if((void 0===e||!r(i))&&((!1===o||-1===a.indexOf(i.stack)||void 0===o&&void 0===i.stack)&&a.push(i.stack),i.index===t))break;return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,i){const s=this._getStacks(t,i),n=void 0!==e?s.indexOf(e):-1;return-1===n?s.length-1:n}_getRuler(){const t=this.options,e=this._cachedMeta,i=e.iScale,s=[];let n,o;for(n=0,o=e.data.length;n=i?1:-1)}(u,e,r)*a,f===r&&(x-=u/2);const t=e.getPixelForDecimal(0),s=e.getPixelForDecimal(1),o=Math.min(t,s),h=Math.max(t,s);x=Math.max(Math.min(x,h),o),d=x+u,i&&!c&&(l._stacks[e.axis]._visualValues[n]=e.getValueForPixel(d)-e.getValueForPixel(x))}if(x===e.getPixelForValue(r)){const t=F(u)*e.getLineWidthForValue(r)/2;x+=t,u-=t}return{size:u,base:x,head:d,center:d+u/2}}_calculateBarIndexPixels(t,e){const i=e.scale,n=this.options,o=n.skipNull,a=l(n.maxBarThickness,1/0);let r,h;if(e.grouped){const i=o?this._getStackCount(t):e.stackCount,l="flex"===n.barThickness?function(t,e,i,s){const n=e.pixels,o=n[t];let a=t>0?n[t-1]:null,r=t=0;--i)e=Math.max(e,t[i].size(this.resolveDataElementOptions(i))/2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart.data.labels||[],{xScale:s,yScale:n}=e,o=this.getParsed(t),a=s.getLabelForValue(o.x),r=n.getLabelForValue(o.y),l=o._custom;return{label:i[t]||"",value:"("+a+", "+r+(l?", "+l:"")+")"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,i,s){const n="reset"===s,{iScale:o,vScale:a}=this._cachedMeta,{sharedOptions:r,includeOptions:l}=this._getSharedOptions(e,s),h=o.axis,c=a.axis;for(let d=e;d0&&this.getParsed(e-1);for(let i=0;i<_;++i){const g=t[i],_=x?g:{};if(i=b){_.skip=!0;continue}const v=this.getParsed(i),M=s(v[f]),w=_[u]=a.getPixelForValue(v[u],i),k=_[f]=o||M?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,v,l):v[f],i);_.skip=isNaN(w)||isNaN(k)||M,_.stop=i>0&&Math.abs(v[u]-y[u])>m,p&&(_.parsed=v,_.raw=h.data[i]),d&&(_.options=c||this.resolveDataElementOptions(i,g.active?"active":n)),x||this.updateElement(g,i,_,n),y=v}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,s=t.data||[];if(!s.length)return i;const n=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,n,o)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}},PieController:class extends jn{static id="pie";static defaults={cutout:0,rotation:0,circumference:360,radius:"100%"}},PolarAreaController:$n,RadarController:class extends Ns{static id="radar";static defaults={datasetElementType:"line",dataElementType:"point",indexAxis:"r",showLine:!0,elements:{line:{fill:"start"}}};static overrides={aspectRatio:1,scales:{r:{type:"radialLinear"}}};getLabelAndValue(t){const e=this._cachedMeta.vScale,i=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(i[e.axis])}}parseObjectData(t,e,i,s){return ii.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta,i=e.dataset,s=e.data||[],n=e.iScale.getLabels();if(i.points=s,"resize"!==t){const e=this.resolveDatasetElementOptions(t);this.options.showLine||(e.borderWidth=0);const o={_loop:!0,_fullLoop:n.length===s.length,options:e};this.updateElement(i,void 0,o,t)}this.updateElements(s,0,s.length,t)}updateElements(t,e,i,s){const n=this._cachedMeta.rScale,o="reset"===s;for(let a=e;a0&&this.getParsed(e-1);for(let c=e;c0&&Math.abs(i[f]-_[f])>x,m&&(p.parsed=i,p.raw=h.data[c]),u&&(p.options=d||this.resolveDataElementOptions(c,e.active?"active":n)),b||this.updateElement(e,c,p,n),_=i}this.updateSharedOptions(d,n,c)}getMaxOverflow(){const t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let t=0;for(let i=e.length-1;i>=0;--i)t=Math.max(t,e[i].size(this.resolveDataElementOptions(i))/2);return t>0&&t}const i=t.dataset,s=i.options&&i.options.borderWidth||0;if(!e.length)return s;const n=e[0].size(this.resolveDataElementOptions(0)),o=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(s,n,o)/2}}});function Un(t,e,i,s){const n=vi(t.options.borderRadius,["outerStart","outerEnd","innerStart","innerEnd"]);const o=(i-e)/2,a=Math.min(o,s*e/2),r=t=>{const e=(i-Math.min(o,t))*s/2;return J(t,0,Math.min(o,e))};return{outerStart:r(n.outerStart),outerEnd:r(n.outerEnd),innerStart:J(n.innerStart,0,a),innerEnd:J(n.innerEnd,0,a)}}function Xn(t,e,i,s){return{x:i+t*Math.cos(e),y:s+t*Math.sin(e)}}function qn(t,e,i,s,n,o){const{x:a,y:r,startAngle:l,pixelMargin:h,innerRadius:c}=e,d=Math.max(e.outerRadius+s+i-h,0),u=c>0?c+s+i+h:0;let f=0;const g=n-l;if(s){const t=((c>0?c-s:0)+(d>0?d-s:0))/2;f=(g-(0!==t?g*t/(t+s):g))/2}const p=(g-Math.max(.001,g*d-i/C)/d)/2,m=l+p+f,x=n-p-f,{outerStart:b,outerEnd:_,innerStart:y,innerEnd:v}=Un(e,u,d,x-m),M=d-b,w=d-_,k=m+b/M,S=x-_/w,P=u+y,D=u+v,O=m+y/P,A=x-v/D;if(t.beginPath(),o){const e=(k+S)/2;if(t.arc(a,r,d,k,e),t.arc(a,r,d,e,S),_>0){const e=Xn(w,S,a,r);t.arc(e.x,e.y,_,S,x+E)}const i=Xn(D,x,a,r);if(t.lineTo(i.x,i.y),v>0){const e=Xn(D,A,a,r);t.arc(e.x,e.y,v,x+E,A+Math.PI)}const s=(x-v/u+(m+y/u))/2;if(t.arc(a,r,u,x-v/u,s,!0),t.arc(a,r,u,s,m+y/u,!0),y>0){const e=Xn(P,O,a,r);t.arc(e.x,e.y,y,O+Math.PI,m-E)}const n=Xn(M,m,a,r);if(t.lineTo(n.x,n.y),b>0){const e=Xn(M,k,a,r);t.arc(e.x,e.y,b,m-E,k)}}else{t.moveTo(a,r);const e=Math.cos(k)*d+a,i=Math.sin(k)*d+r;t.lineTo(e,i);const s=Math.cos(S)*d+a,n=Math.sin(S)*d+r;t.lineTo(s,n)}t.closePath()}function Kn(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r,options:l}=e,{borderWidth:h,borderJoinStyle:c,borderDash:d,borderDashOffset:u}=l,f="inner"===l.borderAlign;if(!h)return;t.setLineDash(d||[]),t.lineDashOffset=u,f?(t.lineWidth=2*h,t.lineJoin=c||"round"):(t.lineWidth=h,t.lineJoin=c||"bevel");let g=e.endAngle;if(o){qn(t,e,i,s,g,n);for(let e=0;en?(h=n/l,t.arc(o,a,l,i+h,s-h,!0)):t.arc(o,a,n,i+E,s-E),t.closePath(),t.clip()}(t,e,g),o||(qn(t,e,i,s,g,n),t.stroke())}function Gn(t,e,i=e){t.lineCap=l(i.borderCapStyle,e.borderCapStyle),t.setLineDash(l(i.borderDash,e.borderDash)),t.lineDashOffset=l(i.borderDashOffset,e.borderDashOffset),t.lineJoin=l(i.borderJoinStyle,e.borderJoinStyle),t.lineWidth=l(i.borderWidth,e.borderWidth),t.strokeStyle=l(i.borderColor,e.borderColor)}function Zn(t,e,i){t.lineTo(i.x,i.y)}function Jn(t,e,i={}){const s=t.length,{start:n=0,end:o=s-1}=i,{start:a,end:r}=e,l=Math.max(n,a),h=Math.min(o,r),c=nr&&o>r;return{count:s,start:l,loop:e.loop,ilen:h(a+(h?r-t:t))%o,_=()=>{f!==g&&(t.lineTo(m,g),t.lineTo(m,f),t.lineTo(m,p))};for(l&&(d=n[b(0)],t.moveTo(d.x,d.y)),c=0;c<=r;++c){if(d=n[b(c)],d.skip)continue;const e=d.x,i=d.y,s=0|e;s===u?(ig&&(g=i),m=(x*m+e)/++x):(_(),t.lineTo(e,i),u=s,x=0,f=g=i),p=i}_()}function eo(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!(t._decimated||t._loop||e.tension||"monotone"===e.cubicInterpolationMode||e.stepped||i)?to:Qn}const io="function"==typeof Path2D;function so(t,e,i,s){io&&!e.options.segment?function(t,e,i,s){let n=e._path;n||(n=e._path=new Path2D,e.path(n,i,s)&&n.closePath()),Gn(t,e.options),t.stroke(n)}(t,e,i,s):function(t,e,i,s){const{segments:n,options:o}=e,a=eo(e);for(const r of n)Gn(t,o,r.style),t.beginPath(),a(t,e,r,{start:i,end:i+s-1})&&t.closePath(),t.stroke()}(t,e,i,s)}class no extends Hs{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:t=>"borderDash"!==t&&"fill"!==t};constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||"monotone"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;hi(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=zi(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,s=t[e],n=this.points,o=Ii(this,{property:e,start:s,end:s});if(!o.length)return;const a=[],r=function(t){return t.stepped?pi:t.tension||"monotone"===t.cubicInterpolationMode?mi:gi}(i);let l,h;for(l=0,h=o.length;l"borderDash"!==t};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(t){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.getProps(["x","y"],i),{angle:n,distance:o}=X(s,{x:t,y:e}),{startAngle:a,endAngle:r,innerRadius:h,outerRadius:c,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),u=(this.options.spacing+this.options.borderWidth)/2,f=l(d,r-a)>=O||Z(n,a,r),g=tt(o,h+u,c+u);return f&&g}getCenterPoint(t){const{x:e,y:i,startAngle:s,endAngle:n,innerRadius:o,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],t),{offset:r,spacing:l}=this.options,h=(s+n)/2,c=(o+a+l+r)/2;return{x:e+Math.cos(h)*c,y:i+Math.sin(h)*c}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){const{options:e,circumference:i}=this,s=(e.offset||0)/4,n=(e.spacing||0)/2,o=e.circular;if(this.pixelMargin="inner"===e.borderAlign?.33:0,this.fullCircles=i>O?Math.floor(i/O):0,0===i||this.innerRadius<0||this.outerRadius<0)return;t.save();const a=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(a)*s,Math.sin(a)*s);const r=s*(1-Math.sin(Math.min(C,i||0)));t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor,function(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r}=e;let l=e.endAngle;if(o){qn(t,e,i,s,l,n);for(let e=0;e("string"==typeof e?(i=t.push(e)-1,s.unshift({index:i,label:e})):isNaN(e)&&(i=null),i))(t,e,i,s);return n!==t.lastIndexOf(e)?i:n}function po(t){const e=this.getLabels();return t>=0&&ts=e?s:t,a=t=>n=i?n:t;if(t){const t=F(s),e=F(n);t<0&&e<0?a(0):t>0&&e>0&&o(0)}if(s===n){let e=0===n?1:Math.abs(.05*n);a(n+e),t||o(s-e)}this.min=s,this.max=n}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:i,stepSize:s}=t;return s?(e=Math.ceil(this.max/s)-Math.floor(this.min/s)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const n=function(t,e){const i=[],{bounds:n,step:o,min:a,max:r,precision:l,count:h,maxTicks:c,maxDigits:d,includeBounds:u}=t,f=o||1,g=c-1,{min:p,max:m}=e,x=!s(a),b=!s(r),_=!s(h),y=(m-p)/(d+1);let v,M,w,k,S=B((m-p)/g/f)*f;if(S<1e-14&&!x&&!b)return[{value:p},{value:m}];k=Math.ceil(m/S)-Math.floor(p/S),k>g&&(S=B(k*S/g/f)*f),s(l)||(v=Math.pow(10,l),S=Math.ceil(S*v)/v),"ticks"===n?(M=Math.floor(p/S)*S,w=Math.ceil(m/S)*S):(M=p,w=m),x&&b&&o&&H((r-a)/o,S/1e3)?(k=Math.round(Math.min((r-a)/S,c)),S=(r-a)/k,M=a,w=r):_?(M=x?a:M,w=b?r:w,k=h-1,S=(w-M)/k):(k=(w-M)/S,k=V(k,Math.round(k),S/1e3)?Math.round(k):Math.ceil(k));const P=Math.max(U(S),U(M));v=Math.pow(10,s(l)?P:l),M=Math.round(M*v)/v,w=Math.round(w*v)/v;let D=0;for(x&&(u&&M!==a?(i.push({value:a}),Mr)break;i.push({value:t})}return b&&u&&w!==r?i.length&&V(i[i.length-1].value,r,mo(r,y,t))?i[i.length-1].value=r:i.push({value:r}):b&&w!==r||i.push({value:w}),i}({maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===t.bounds&&j(n,this,"value"),t.reverse?(n.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),n}configure(){const t=this.ticks;let e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const s=(i-e)/Math.max(t.length-1,1)/2;e-=s,i+=s}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return ne(t,this.chart.options.locale,this.options.ticks.format)}}class bo extends xo{static id="linear";static defaults={ticks:{callback:ae.formatters.numeric}};determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=a(t)?t:0,this.max=a(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,i=$(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,n=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,n.lineHeight/s))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}const _o=t=>Math.floor(z(t)),yo=(t,e)=>Math.pow(10,_o(t)+e);function vo(t){return 1===t/Math.pow(10,_o(t))}function Mo(t,e,i){const s=Math.pow(10,i),n=Math.floor(t/s);return Math.ceil(e/s)-n}function wo(t,{min:e,max:i}){e=r(t.min,e);const s=[],n=_o(e);let o=function(t,e){let i=_o(e-t);for(;Mo(t,e,i)>10;)i++;for(;Mo(t,e,i)<10;)i--;return Math.min(i,_o(t))}(e,i),a=o<0?Math.pow(10,Math.abs(o)):1;const l=Math.pow(10,o),h=n>o?Math.pow(10,n):0,c=Math.round((e-h)*a)/a,d=Math.floor((e-h)/l/10)*l*10;let u=Math.floor((c-d)/Math.pow(10,o)),f=r(t.min,Math.round((h+d+u*Math.pow(10,o))*a)/a);for(;f=10?u=u<15?15:20:u++,u>=20&&(o++,u=2,a=o>=0?1:a),f=Math.round((h+d+u*Math.pow(10,o))*a)/a;const g=r(t.max,f);return s.push({value:g,major:vo(g),significand:u}),s}class ko extends Js{static id="logarithmic";static defaults={ticks:{callback:ae.formatters.logarithmic,major:{enabled:!0}}};constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const i=xo.prototype.parse.apply(this,[t,e]);if(0!==i)return a(i)&&i>0?i:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=a(t)?Math.max(0,t):null,this.max=a(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!a(this._userMin)&&(this.min=t===yo(this.min,0)?yo(this.min,-1):yo(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let i=this.min,s=this.max;const n=e=>i=t?i:e,o=t=>s=e?s:t;i===s&&(i<=0?(n(1),o(10)):(n(yo(i,-1)),o(yo(s,1)))),i<=0&&n(yo(s,-1)),s<=0&&o(yo(i,1)),this.min=i,this.max=s}buildTicks(){const t=this.options,e=wo({min:this._userMin,max:this._userMax},this);return"ticks"===t.bounds&&j(e,this,"value"),t.reverse?(e.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),e}getLabelForValue(t){return void 0===t?"0":ne(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=z(t),this._valueRange=z(this.max)-z(t)}getPixelForValue(t){return void 0!==t&&0!==t||(t=this.min),null===t||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(z(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}function So(t){const e=t.ticks;if(e.display&&t.display){const t=ki(e.backdropPadding);return l(e.font&&e.font.size,ue.font.size)+t.height}return 0}function Po(t,e,i,s,n){return t===s||t===n?{start:e-i/2,end:e+i/2}:tn?{start:e-i,end:e}:{start:e,end:e+i}}function Do(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},i=Object.assign({},e),s=[],o=[],a=t._pointLabels.length,r=t.options.pointLabels,l=r.centerPointLabels?C/a:0;for(let u=0;ue.r&&(r=(s.end-e.r)/o,t.r=Math.max(t.r,e.r+r)),n.starte.b&&(l=(n.end-e.b)/a,t.b=Math.max(t.b,e.b+l))}function Oo(t,e,i){const s=t.drawingArea,{extra:n,additionalAngle:o,padding:a,size:r}=i,l=t.getPointPosition(e,s+n+a,o),h=Math.round(Y(G(l.angle+E))),c=function(t,e,i){90===i||270===i?t-=e/2:(i>270||i<90)&&(t-=e);return t}(l.y,r.h,h),d=function(t){if(0===t||180===t)return"center";if(t<180)return"left";return"right"}(h),u=function(t,e,i){"right"===i?t-=e:"center"===i&&(t-=e/2);return t}(l.x,r.w,d);return{visible:!0,x:l.x,y:c,textAlign:d,left:u,top:c,right:u+r.w,bottom:c+r.h}}function Ao(t,e){if(!e)return!0;const{left:i,top:s,right:n,bottom:o}=t;return!(Re({x:i,y:s},e)||Re({x:i,y:o},e)||Re({x:n,y:s},e)||Re({x:n,y:o},e))}function To(t,e,i){const{left:n,top:o,right:a,bottom:r}=i,{backdropColor:l}=e;if(!s(l)){const i=wi(e.borderRadius),s=ki(e.backdropPadding);t.fillStyle=l;const h=n-s.left,c=o-s.top,d=a-n+s.width,u=r-o+s.height;Object.values(i).some((t=>0!==t))?(t.beginPath(),He(t,{x:h,y:c,w:d,h:u,radius:i}),t.fill()):t.fillRect(h,c,d,u)}}function Lo(t,e,i,s){const{ctx:n}=t;if(i)n.arc(t.xCenter,t.yCenter,e,0,O);else{let i=t.getPointPosition(0,e);n.moveTo(i.x,i.y);for(let o=1;ot,padding:5,centerPointLabels:!1}};static defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};static descriptors={angleLines:{_fallback:"grid"}};constructor(t){super(t),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const t=this._padding=ki(So(this.options)/2),e=this.width=this.maxWidth-t.width,i=this.height=this.maxHeight-t.height;this.xCenter=Math.floor(this.left+e/2+t.left),this.yCenter=Math.floor(this.top+i/2+t.top),this.drawingArea=Math.floor(Math.min(e,i)/2)}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!1);this.min=a(t)&&!isNaN(t)?t:0,this.max=a(e)&&!isNaN(e)?e:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/So(this.options))}generateTickLabels(t){xo.prototype.generateTickLabels.call(this,t),this._pointLabels=this.getLabels().map(((t,e)=>{const i=d(this.options.pointLabels.callback,[t,e],this);return i||0===i?i:""})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?Do(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,s){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,s))}getIndexAngle(t){return G(t*(O/(this._pointLabels.length||1))+$(this.options.startAngle||0))}getDistanceFromCenterForValue(t){if(s(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(s(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t=0;n--){const e=t._pointLabelItems[n];if(!e.visible)continue;const o=s.setContext(t.getPointLabelContext(n));To(i,o,e);const a=Si(o.font),{x:r,y:l,textAlign:h}=e;Ne(i,t._pointLabels[n],r,l+a.lineHeight/2,a,{color:o.color,textAlign:h,textBaseline:"middle"})}}(this,o),s.display&&this.ticks.forEach(((t,e)=>{if(0!==e||0===e&&this.min<0){r=this.getDistanceFromCenterForValue(t.value);const i=this.getContext(e),a=s.setContext(i),l=n.setContext(i);!function(t,e,i,s,n){const o=t.ctx,a=e.circular,{color:r,lineWidth:l}=e;!a&&!s||!r||!l||i<0||(o.save(),o.strokeStyle=r,o.lineWidth=l,o.setLineDash(n.dash),o.lineDashOffset=n.dashOffset,o.beginPath(),Lo(t,i,a,s),o.closePath(),o.stroke(),o.restore())}(this,a,r,o,l)}})),i.display){for(t.save(),a=o-1;a>=0;a--){const s=i.setContext(this.getPointLabelContext(a)),{color:n,lineWidth:o}=s;o&&n&&(t.lineWidth=o,t.strokeStyle=n,t.setLineDash(s.borderDash),t.lineDashOffset=s.borderDashOffset,r=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),l=this.getPointPosition(a,r),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(l.x,l.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;const s=this.getIndexAngle(0);let n,o;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach(((s,a)=>{if(0===a&&this.min>=0&&!e.reverse)return;const r=i.setContext(this.getContext(a)),l=Si(r.font);if(n=this.getDistanceFromCenterForValue(this.ticks[a].value),r.showLabelBackdrop){t.font=l.string,o=t.measureText(s.label).width,t.fillStyle=r.backdropColor;const e=ki(r.backdropPadding);t.fillRect(-o/2-e.left,-n-l.size/2-e.top,o+e.width,l.size+e.height)}Ne(t,s.label,0,-n,l,{color:r.color,strokeColor:r.textStrokeColor,strokeWidth:r.textStrokeWidth})})),t.restore()}drawTitle(){}}const Ro={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Io=Object.keys(Ro);function zo(t,e){return t-e}function Fo(t,e){if(s(e))return null;const i=t._adapter,{parser:n,round:o,isoWeekday:r}=t._parseOpts;let l=e;return"function"==typeof n&&(l=n(l)),a(l)||(l="string"==typeof n?i.parse(l,n):i.parse(l)),null===l?null:(o&&(l="week"!==o||!N(r)&&!0!==r?i.startOf(l,o):i.startOf(l,"isoWeek",r)),+l)}function Vo(t,e,i,s){const n=Io.length;for(let o=Io.indexOf(t);o=e?i[s]:i[n]]=!0}}else t[e]=!0}function Wo(t,e,i){const s=[],n={},o=e.length;let a,r;for(a=0;a=0&&(e[l].major=!0);return e}(t,s,n,i):s}class No extends Js{static id="time";static defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}};constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,e={}){const i=t.time||(t.time={}),s=this._adapter=new Rn._date(t.adapters.date);s.init(e),b(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=e.normalized}parse(t,e){return void 0===t?null:Fo(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,e=this._adapter,i=t.time.unit||"day";let{min:s,max:n,minDefined:o,maxDefined:r}=this.getUserBounds();function l(t){o||isNaN(t.min)||(s=Math.min(s,t.min)),r||isNaN(t.max)||(n=Math.max(n,t.max))}o&&r||(l(this._getLabelBounds()),"ticks"===t.bounds&&"labels"===t.ticks.source||l(this.getMinMax(!1))),s=a(s)&&!isNaN(s)?s:+e.startOf(Date.now(),i),n=a(n)&&!isNaN(n)?n:+e.endOf(Date.now(),i)+1,this.min=Math.min(s,n-1),this.max=Math.max(s+1,n)}_getLabelBounds(){const t=this.getLabelTimestamps();let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(e=t[0],i=t[t.length-1]),{min:e,max:i}}buildTicks(){const t=this.options,e=t.time,i=t.ticks,s="labels"===i.source?this.getLabelTimestamps():this._generate();"ticks"===t.bounds&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const n=this.min,o=nt(s,n,this.max);return this._unit=e.unit||(i.autoSkip?Vo(e.minUnit,this.min,this.max,this._getLabelCapacity(n)):function(t,e,i,s,n){for(let o=Io.length-1;o>=Io.indexOf(i);o--){const i=Io[o];if(Ro[i].common&&t._adapter.diff(n,s,i)>=e-1)return i}return Io[i?Io.indexOf(i):0]}(this,o.length,e.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&"year"!==this._unit?function(t){for(let e=Io.indexOf(t)+1,i=Io.length;e+t.value)))}initOffsets(t=[]){let e,i,s=0,n=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),s=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)/2,i=this.getDecimalForValue(t[t.length-1]),n=1===t.length?i:(i-this.getDecimalForValue(t[t.length-2]))/2);const o=t.length<3?.5:.25;s=J(s,0,o),n=J(n,0,o),this._offsets={start:s,end:n,factor:1/(s+1+n)}}_generate(){const t=this._adapter,e=this.min,i=this.max,s=this.options,n=s.time,o=n.unit||Vo(n.minUnit,e,i,this._getLabelCapacity(e)),a=l(s.ticks.stepSize,1),r="week"===o&&n.isoWeekday,h=N(r)||!0===r,c={};let d,u,f=e;if(h&&(f=+t.startOf(f,"isoWeek",r)),f=+t.startOf(f,h?"day":o),t.diff(i,e,o)>1e5*a)throw new Error(e+" and "+i+" are too far apart with stepSize of "+a+" "+o);const g="data"===s.ticks.source&&this.getDataTimestamps();for(d=f,u=0;d+t))}getLabelForValue(t){const e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}format(t,e){const i=this.options.time.displayFormats,s=this._unit,n=e||i[s];return this._adapter.format(t,n)}_tickFormatFunction(t,e,i,s){const n=this.options,o=n.ticks.callback;if(o)return d(o,[t,e,i],this);const a=n.time.displayFormats,r=this._unit,l=this._majorUnit,h=r&&a[r],c=l&&a[l],u=i[e],f=l&&c&&u&&u.major;return this._adapter.format(t,s||(f?c:h))}generateTickLabels(t){let e,i,s;for(e=0,i=t.length;e0?a:1}getDataTimestamps(){let t,e,i=this._cache.data||[];if(i.length)return i;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(t=0,e=s.length;t=t[r].pos&&e<=t[l].pos&&({lo:r,hi:l}=it(t,"pos",e)),({pos:s,time:o}=t[r]),({pos:n,time:a}=t[l])):(e>=t[r].time&&e<=t[l].time&&({lo:r,hi:l}=it(t,"time",e)),({time:s,pos:o}=t[r]),({time:n,pos:a}=t[l]));const h=n-s;return h?o+(a-o)*(e-s)/h:o}var jo=Object.freeze({__proto__:null,CategoryScale:class extends Js{static id="category";static defaults={ticks:{callback:po}};constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();for(const{index:i,label:s}of e)t[i]===s&&t.splice(i,1);this._addedLabels=[]}super.init(t)}parse(t,e){if(s(t))return null;const i=this.getLabels();return((t,e)=>null===t?null:J(Math.round(t),0,e))(e=isFinite(e)&&i[e]===t?e:go(i,t,l(e,t),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);"ticks"===this.options.bounds&&(t||(i=0),e||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const t=this.min,e=this.max,i=this.options.offset,s=[];let n=this.getLabels();n=0===t&&e===n.length-1?n:n.slice(t,e+1),this._valueRange=Math.max(n.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let i=t;i<=e;i++)s.push({value:i});return s}getLabelForValue(t){return po.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return"number"!=typeof t&&(t=this.parse(t)),null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}},LinearScale:bo,LogarithmicScale:ko,RadialLinearScale:Eo,TimeScale:No,TimeSeriesScale:class extends No{static id="timeseries";static defaults=No.defaults;constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=Ho(e,this.min),this._tableRange=Ho(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:i}=this,s=[],n=[];let o,a,r,l,h;for(o=0,a=t.length;o=e&&l<=i&&s.push(l);if(s.length<2)return[{time:e,pos:0},{time:i,pos:1}];for(o=0,a=s.length;ot-e))}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const e=this.getDataTimestamps(),i=this.getLabelTimestamps();return t=e.length&&i.length?this.normalize(e.concat(i)):e.length?e:i,t=this._cache.all=t,t}getDecimalForValue(t){return(Ho(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)/e.factor-e.end;return Ho(this._table,i*this._tableRange+this._minPos,!0)}}});const $o=["rgb(54, 162, 235)","rgb(255, 99, 132)","rgb(255, 159, 64)","rgb(255, 205, 86)","rgb(75, 192, 192)","rgb(153, 102, 255)","rgb(201, 203, 207)"],Yo=$o.map((t=>t.replace("rgb(","rgba(").replace(")",", 0.5)")));function Uo(t){return $o[t%$o.length]}function Xo(t){return Yo[t%Yo.length]}function qo(t){let e=0;return(i,s)=>{const n=t.getDatasetMeta(s).controller;n instanceof jn?e=function(t,e){return t.backgroundColor=t.data.map((()=>Uo(e++))),e}(i,e):n instanceof $n?e=function(t,e){return t.backgroundColor=t.data.map((()=>Xo(e++))),e}(i,e):n&&(e=function(t,e){return t.borderColor=Uo(e),t.backgroundColor=Xo(e),++e}(i,e))}}function Ko(t){let e;for(e in t)if(t[e].borderColor||t[e].backgroundColor)return!0;return!1}var Go={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(t,e,i){if(!i.enabled)return;const{data:{datasets:s},options:n}=t.config,{elements:o}=n;if(!i.forceOverride&&(Ko(s)||(a=n)&&(a.borderColor||a.backgroundColor)||o&&Ko(o)))return;var a;const r=qo(t);s.forEach(r)}};function Zo(t){if(t._decimated){const e=t._data;delete t._decimated,delete t._data,Object.defineProperty(t,"data",{configurable:!0,enumerable:!0,writable:!0,value:e})}}function Jo(t){t.data.datasets.forEach((t=>{Zo(t)}))}var Qo={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(t,e,i)=>{if(!i.enabled)return void Jo(t);const n=t.width;t.data.datasets.forEach(((e,o)=>{const{_data:a,indexAxis:r}=e,l=t.getDatasetMeta(o),h=a||e.data;if("y"===Pi([r,t.options.indexAxis]))return;if(!l.controller.supportsDecimation)return;const c=t.scales[l.xAxisID];if("linear"!==c.type&&"time"!==c.type)return;if(t.options.parsing)return;let{start:d,count:u}=function(t,e){const i=e.length;let s,n=0;const{iScale:o}=t,{min:a,max:r,minDefined:l,maxDefined:h}=o.getUserBounds();return l&&(n=J(it(e,o.axis,a).lo,0,i-1)),s=h?J(it(e,o.axis,r).hi+1,n,i)-n:i-n,{start:n,count:s}}(l,h);if(u<=(i.threshold||4*n))return void Zo(e);let f;switch(s(a)&&(e._data=h,delete e.data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(t){this._data=t}})),i.algorithm){case"lttb":f=function(t,e,i,s,n){const o=n.samples||s;if(o>=i)return t.slice(e,e+i);const a=[],r=(i-2)/(o-2);let l=0;const h=e+i-1;let c,d,u,f,g,p=e;for(a[l++]=t[p],c=0;cu&&(u=f,d=t[s],g=s);a[l++]=d,p=g}return a[l++]=t[h],a}(h,d,u,n,i);break;case"min-max":f=function(t,e,i,n){let o,a,r,l,h,c,d,u,f,g,p=0,m=0;const x=[],b=e+i-1,_=t[e].x,y=t[b].x-_;for(o=e;og&&(g=l,d=o),p=(m*p+a.x)/++m;else{const i=o-1;if(!s(c)&&!s(d)){const e=Math.min(c,d),s=Math.max(c,d);e!==u&&e!==i&&x.push({...t[e],x:p}),s!==u&&s!==i&&x.push({...t[s],x:p})}o>0&&i!==u&&x.push(t[i]),x.push(a),h=e,m=0,f=g=l,c=d=u=o}}return x}(h,d,u,n);break;default:throw new Error(`Unsupported decimation algorithm '${i.algorithm}'`)}e._decimated=f}))},destroy(t){Jo(t)}};function ta(t,e,i,s){if(s)return;let n=e[t],o=i[t];return"angle"===t&&(n=G(n),o=G(o)),{property:t,start:n,end:o}}function ea(t,e,i){for(;e>t;e--){const t=i[e];if(!isNaN(t.x)&&!isNaN(t.y))break}return e}function ia(t,e,i,s){return t&&e?s(t[i],e[i]):t?t[i]:e?e[i]:0}function sa(t,e){let i=[],s=!1;return n(t)?(s=!0,i=t):i=function(t,e){const{x:i=null,y:s=null}=t||{},n=e.points,o=[];return e.segments.forEach((({start:t,end:e})=>{e=ea(t,e,n);const a=n[t],r=n[e];null!==s?(o.push({x:a.x,y:s}),o.push({x:r.x,y:s})):null!==i&&(o.push({x:i,y:a.y}),o.push({x:i,y:r.y}))})),o}(t,e),i.length?new no({points:i,options:{tension:0},_loop:s,_fullLoop:s}):null}function na(t){return t&&!1!==t.fill}function oa(t,e,i){let s=t[e].fill;const n=[e];let o;if(!i)return s;for(;!1!==s&&-1===n.indexOf(s);){if(!a(s))return s;if(o=t[s],!o)return!1;if(o.visible)return s;n.push(s),s=o.fill}return!1}function aa(t,e,i){const s=function(t){const e=t.options,i=e.fill;let s=l(i&&i.target,i);void 0===s&&(s=!!e.backgroundColor);if(!1===s||null===s)return!1;if(!0===s)return"origin";return s}(t);if(o(s))return!isNaN(s.value)&&s;let n=parseFloat(s);return a(n)&&Math.floor(n)===n?function(t,e,i,s){"-"!==t&&"+"!==t||(i=e+i);if(i===e||i<0||i>=s)return!1;return i}(s[0],e,n,i):["origin","start","end","stack","shape"].indexOf(s)>=0&&s}function ra(t,e,i){const s=[];for(let n=0;n=0;--e){const i=n[e].$filler;i&&(i.line.updateControlPoints(o,i.axis),s&&i.fill&&da(t.ctx,i,o))}},beforeDatasetsDraw(t,e,i){if("beforeDatasetsDraw"!==i.drawTime)return;const s=t.getSortedVisibleDatasetMetas();for(let e=s.length-1;e>=0;--e){const i=s[e].$filler;na(i)&&da(t.ctx,i,t.chartArea)}},beforeDatasetDraw(t,e,i){const s=e.meta.$filler;na(s)&&"beforeDatasetDraw"===i.drawTime&&da(t.ctx,s,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const xa=(t,e)=>{let{boxHeight:i=e,boxWidth:s=e}=t;return t.usePointStyle&&(i=Math.min(i,e),s=t.pointStyleWidth||Math.min(s,e)),{boxWidth:s,boxHeight:i,itemHeight:Math.max(e,i)}};class ba extends Hs{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=d(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,i)=>t.sort(e,i,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const i=t.labels,s=Si(i.font),n=s.size,o=this._computeTitleHeight(),{boxWidth:a,itemHeight:r}=xa(i,n);let l,h;e.font=s.string,this.isHorizontal()?(l=this.maxWidth,h=this._fitRows(o,n,a,r)+10):(h=this.maxHeight,l=this._fitCols(o,s,a,r)+10),this.width=Math.min(l,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,s){const{ctx:n,maxWidth:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.lineWidths=[0],h=s+a;let c=t;n.textAlign="left",n.textBaseline="middle";let d=-1,u=-h;return this.legendItems.forEach(((t,f)=>{const g=i+e/2+n.measureText(t.text).width;(0===f||l[l.length-1]+g+2*a>o)&&(c+=h,l[l.length-(f>0?0:1)]=0,u+=h,d++),r[f]={left:0,top:u,row:d,width:g,height:s},l[l.length-1]+=g+a})),c}_fitCols(t,e,i,s){const{ctx:n,maxHeight:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.columnSizes=[],h=o-t;let c=a,d=0,u=0,f=0,g=0;return this.legendItems.forEach(((t,o)=>{const{itemWidth:p,itemHeight:m}=function(t,e,i,s,n){const o=function(t,e,i,s){let n=t.text;n&&"string"!=typeof n&&(n=n.reduce(((t,e)=>t.length>e.length?t:e)));return e+i.size/2+s.measureText(n).width}(s,t,e,i),a=function(t,e,i){let s=t;"string"!=typeof e.text&&(s=_a(e,i));return s}(n,s,e.lineHeight);return{itemWidth:o,itemHeight:a}}(i,e,n,t,s);o>0&&u+m+2*a>h&&(c+=d+a,l.push({width:d,height:u}),f+=d+a,g++,d=u=0),r[o]={left:f,top:u,col:g,width:p,height:m},d=Math.max(d,p),u+=m+a})),c+=d,l.push({width:d,height:u}),c}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:n}}=this,o=Oi(n,this.left,this.width);if(this.isHorizontal()){let n=0,a=ft(i,this.left+s,this.right-this.lineWidths[n]);for(const r of e)n!==r.row&&(n=r.row,a=ft(i,this.left+s,this.right-this.lineWidths[n])),r.top+=this.top+t+s,r.left=o.leftForLtr(o.x(a),r.width),a+=r.width+s}else{let n=0,a=ft(i,this.top+t+s,this.bottom-this.columnSizes[n].height);for(const r of e)r.col!==n&&(n=r.col,a=ft(i,this.top+t+s,this.bottom-this.columnSizes[n].height)),r.top=a,r.left+=this.left+s,r.left=o.leftForLtr(o.x(r.left),r.width),a+=r.height+s}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const t=this.ctx;Ie(t,this),this._draw(),ze(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:n,labels:o}=t,a=ue.color,r=Oi(t.rtl,this.left,this.width),h=Si(o.font),{padding:c}=o,d=h.size,u=d/2;let f;this.drawTitle(),s.textAlign=r.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=h.string;const{boxWidth:g,boxHeight:p,itemHeight:m}=xa(o,d),x=this.isHorizontal(),b=this._computeTitleHeight();f=x?{x:ft(n,this.left+c,this.right-i[0]),y:this.top+c+b,line:0}:{x:this.left+c,y:ft(n,this.top+b+c,this.bottom-e[0].height),line:0},Ai(this.ctx,t.textDirection);const _=m+c;this.legendItems.forEach(((y,v)=>{s.strokeStyle=y.fontColor,s.fillStyle=y.fontColor;const M=s.measureText(y.text).width,w=r.textAlign(y.textAlign||(y.textAlign=o.textAlign)),k=g+u+M;let S=f.x,P=f.y;r.setWidth(this.width),x?v>0&&S+k+c>this.right&&(P=f.y+=_,f.line++,S=f.x=ft(n,this.left+c,this.right-i[f.line])):v>0&&P+_>this.bottom&&(S=f.x=S+e[f.line].width+c,f.line++,P=f.y=ft(n,this.top+b+c,this.bottom-e[f.line].height));if(function(t,e,i){if(isNaN(g)||g<=0||isNaN(p)||p<0)return;s.save();const n=l(i.lineWidth,1);if(s.fillStyle=l(i.fillStyle,a),s.lineCap=l(i.lineCap,"butt"),s.lineDashOffset=l(i.lineDashOffset,0),s.lineJoin=l(i.lineJoin,"miter"),s.lineWidth=n,s.strokeStyle=l(i.strokeStyle,a),s.setLineDash(l(i.lineDash,[])),o.usePointStyle){const a={radius:p*Math.SQRT2/2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:n},l=r.xPlus(t,g/2);Ee(s,a,l,e+u,o.pointStyleWidth&&g)}else{const o=e+Math.max((d-p)/2,0),a=r.leftForLtr(t,g),l=wi(i.borderRadius);s.beginPath(),Object.values(l).some((t=>0!==t))?He(s,{x:a,y:o,w:g,h:p,radius:l}):s.rect(a,o,g,p),s.fill(),0!==n&&s.stroke()}s.restore()}(r.x(S),P,y),S=gt(w,S+g+u,x?S+k:this.right,t.rtl),function(t,e,i){Ne(s,i.text,t,e+m/2,h,{strikethrough:i.hidden,textAlign:r.textAlign(i.textAlign)})}(r.x(S),P,y),x)f.x+=k+c;else if("string"!=typeof y.text){const t=h.lineHeight;f.y+=_a(y,t)+c}else f.y+=_})),Ti(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,i=Si(e.font),s=ki(e.padding);if(!e.display)return;const n=Oi(t.rtl,this.left,this.width),o=this.ctx,a=e.position,r=i.size/2,l=s.top+r;let h,c=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),h=this.top+l,c=ft(t.align,c,this.right-d);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);h=l+ft(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const u=ft(a,c,c+d);o.textAlign=n.textAlign(ut(a)),o.textBaseline="middle",o.strokeStyle=e.color,o.fillStyle=e.color,o.font=i.string,Ne(o,e.text,u,h,i)}_computeTitleHeight(){const t=this.options.title,e=Si(t.font),i=ki(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,n;if(tt(t,this.left,this.right)&&tt(e,this.top,this.bottom))for(n=this.legendHitBoxes,i=0;it.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:i,pointStyle:s,textAlign:n,color:o,useBorderRadius:a,borderRadius:r}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const l=t.controller.getStyle(i?0:void 0),h=ki(l.borderWidth);return{text:e[t.index].label,fillStyle:l.backgroundColor,fontColor:o,hidden:!t.visible,lineCap:l.borderCapStyle,lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:(h.width+h.height)/4,strokeStyle:l.borderColor,pointStyle:s||l.pointStyle,rotation:l.rotation,textAlign:n||l.textAlign,borderRadius:a&&(r||l.borderRadius),datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};class va extends Hs{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const i=this.options;if(this.left=0,this.top=0,!i.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=t,this.height=this.bottom=e;const s=n(i.text)?i.text.length:1;this._padding=ki(i.padding);const o=s*Si(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return"top"===t||"bottom"===t}_drawArgs(t){const{top:e,left:i,bottom:s,right:n,options:o}=this,a=o.align;let r,l,h,c=0;return this.isHorizontal()?(l=ft(a,i,n),h=e+t,r=n-i):("left"===o.position?(l=i+t,h=ft(a,s,e),c=-.5*C):(l=n-t,h=ft(a,e,s),c=.5*C),r=s-e),{titleX:l,titleY:h,maxWidth:r,rotation:c}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const i=Si(e.font),s=i.lineHeight/2+this._padding.top,{titleX:n,titleY:o,maxWidth:a,rotation:r}=this._drawArgs(s);Ne(t,e.text,0,0,i,{color:e.color,maxWidth:a,rotation:r,textAlign:ut(e.align),textBaseline:"middle",translation:[n,o]})}}var Ma={id:"title",_element:va,start(t,e,i){!function(t,e){const i=new va({ctx:t.ctx,options:e,chart:t});as.configure(t,i,e),as.addBox(t,i),t.titleBlock=i}(t,i)},stop(t){const e=t.titleBlock;as.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,i){const s=t.titleBlock;as.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const wa=new WeakMap;var ka={id:"subtitle",start(t,e,i){const s=new va({ctx:t.ctx,options:i,chart:t});as.configure(t,s,i),as.addBox(t,s),wa.set(t,s)},stop(t){as.removeBox(t,wa.get(t)),wa.delete(t)},beforeUpdate(t,e,i){const s=wa.get(t);as.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Sa={average(t){if(!t.length)return!1;let e,i,s=new Set,n=0,o=0;for(e=0,i=t.length;et+e))/s.size,y:n/o}},nearest(t,e){if(!t.length)return!1;let i,s,n,o=e.x,a=e.y,r=Number.POSITIVE_INFINITY;for(i=0,s=t.length;i-1?t.split("\n"):t}function Ca(t,e){const{element:i,datasetIndex:s,index:n}=e,o=t.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:t,label:a,parsed:o.getParsed(n),raw:t.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:i}}function Oa(t,e){const i=t.chart.ctx,{body:s,footer:n,title:o}=t,{boxWidth:a,boxHeight:r}=e,l=Si(e.bodyFont),h=Si(e.titleFont),c=Si(e.footerFont),d=o.length,f=n.length,g=s.length,p=ki(e.padding);let m=p.height,x=0,b=s.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(b+=t.beforeBody.length+t.afterBody.length,d&&(m+=d*h.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),b){m+=g*(e.displayColors?Math.max(r,l.lineHeight):l.lineHeight)+(b-g)*l.lineHeight+(b-1)*e.bodySpacing}f&&(m+=e.footerMarginTop+f*c.lineHeight+(f-1)*e.footerSpacing);let _=0;const y=function(t){x=Math.max(x,i.measureText(t).width+_)};return i.save(),i.font=h.string,u(t.title,y),i.font=l.string,u(t.beforeBody.concat(t.afterBody),y),_=e.displayColors?a+2+e.boxPadding:0,u(s,(t=>{u(t.before,y),u(t.lines,y),u(t.after,y)})),_=0,i.font=c.string,u(t.footer,y),i.restore(),x+=p.width,{width:x,height:m}}function Aa(t,e,i,s){const{x:n,width:o}=i,{width:a,chartArea:{left:r,right:l}}=t;let h="center";return"center"===s?h=n<=(r+l)/2?"left":"right":n<=o/2?h="left":n>=a-o/2&&(h="right"),function(t,e,i,s){const{x:n,width:o}=s,a=i.caretSize+i.caretPadding;return"left"===t&&n+o+a>e.width||"right"===t&&n-o-a<0||void 0}(h,t,e,i)&&(h="center"),h}function Ta(t,e,i){const s=i.yAlign||e.yAlign||function(t,e){const{y:i,height:s}=e;return it.height-s/2?"bottom":"center"}(t,i);return{xAlign:i.xAlign||e.xAlign||Aa(t,e,i,s),yAlign:s}}function La(t,e,i,s){const{caretSize:n,caretPadding:o,cornerRadius:a}=t,{xAlign:r,yAlign:l}=i,h=n+o,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=wi(a);let g=function(t,e){let{x:i,width:s}=t;return"right"===e?i-=s:"center"===e&&(i-=s/2),i}(e,r);const p=function(t,e,i){let{y:s,height:n}=t;return"top"===e?s+=i:s-="bottom"===e?n+i:n/2,s}(e,l,h);return"center"===l?"left"===r?g+=h:"right"===r&&(g-=h):"left"===r?g-=Math.max(c,u)+n:"right"===r&&(g+=Math.max(d,f)+n),{x:J(g,0,s.width-e.width),y:J(p,0,s.height-e.height)}}function Ea(t,e,i){const s=ki(i.padding);return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-s.right:t.x+s.left}function Ra(t){return Pa([],Da(t))}function Ia(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}const za={beforeTitle:e,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,s=i?i.length:0;if(this&&this.options&&"dataset"===this.options.mode)return e.dataset.label||"";if(e.label)return e.label;if(s>0&&e.dataIndex{const e={before:[],lines:[],after:[]},n=Ia(i,t);Pa(e.before,Da(Fa(n,"beforeLabel",this,t))),Pa(e.lines,Fa(n,"label",this,t)),Pa(e.after,Da(Fa(n,"afterLabel",this,t))),s.push(e)})),s}getAfterBody(t,e){return Ra(Fa(e.callbacks,"afterBody",this,t))}getFooter(t,e){const{callbacks:i}=e,s=Fa(i,"beforeFooter",this,t),n=Fa(i,"footer",this,t),o=Fa(i,"afterFooter",this,t);let a=[];return a=Pa(a,Da(s)),a=Pa(a,Da(n)),a=Pa(a,Da(o)),a}_createItems(t){const e=this._active,i=this.chart.data,s=[],n=[],o=[];let a,r,l=[];for(a=0,r=e.length;at.filter(e,s,n,i)))),t.itemSort&&(l=l.sort(((e,s)=>t.itemSort(e,s,i)))),u(l,(e=>{const i=Ia(t.callbacks,e);s.push(Fa(i,"labelColor",this,e)),n.push(Fa(i,"labelPointStyle",this,e)),o.push(Fa(i,"labelTextColor",this,e))})),this.labelColors=s,this.labelPointStyles=n,this.labelTextColors=o,this.dataPoints=l,l}update(t,e){const i=this.options.setContext(this.getContext()),s=this._active;let n,o=[];if(s.length){const t=Sa[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const e=this._size=Oa(this,i),a=Object.assign({},t,e),r=Ta(this.chart,i,a),l=La(i,a,r,this.chart);this.xAlign=r.xAlign,this.yAlign=r.yAlign,n={opacity:1,x:l.x,y:l.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(n={opacity:0});this._tooltipItems=o,this.$context=void 0,n&&this._resolveAnimations().update(this,n),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,s){const n=this.getCaretPosition(t,i,s);e.lineTo(n.x1,n.y1),e.lineTo(n.x2,n.y2),e.lineTo(n.x3,n.y3)}getCaretPosition(t,e,i){const{xAlign:s,yAlign:n}=this,{caretSize:o,cornerRadius:a}=i,{topLeft:r,topRight:l,bottomLeft:h,bottomRight:c}=wi(a),{x:d,y:u}=t,{width:f,height:g}=e;let p,m,x,b,_,y;return"center"===n?(_=u+g/2,"left"===s?(p=d,m=p-o,b=_+o,y=_-o):(p=d+f,m=p+o,b=_-o,y=_+o),x=p):(m="left"===s?d+Math.max(r,h)+o:"right"===s?d+f-Math.max(l,c)-o:this.caretX,"top"===n?(b=u,_=b-o,p=m-o,x=m+o):(b=u+g,_=b+o,p=m+o,x=m-o),y=b),{x1:p,x2:m,x3:x,y1:b,y2:_,y3:y}}drawTitle(t,e,i){const s=this.title,n=s.length;let o,a,r;if(n){const l=Oi(i.rtl,this.x,this.width);for(t.x=Ea(this,i.titleAlign,i),e.textAlign=l.textAlign(i.titleAlign),e.textBaseline="middle",o=Si(i.titleFont),a=i.titleSpacing,e.fillStyle=i.titleColor,e.font=o.string,r=0;r0!==t))?(t.beginPath(),t.fillStyle=n.multiKeyBackground,He(t,{x:e,y:g,w:h,h:l,radius:r}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),He(t,{x:i,y:g+1,w:h-2,h:l-2,radius:r}),t.fill()):(t.fillStyle=n.multiKeyBackground,t.fillRect(e,g,h,l),t.strokeRect(e,g,h,l),t.fillStyle=a.backgroundColor,t.fillRect(i,g+1,h-2,l-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){const{body:s}=this,{bodySpacing:n,bodyAlign:o,displayColors:a,boxHeight:r,boxWidth:l,boxPadding:h}=i,c=Si(i.bodyFont);let d=c.lineHeight,f=0;const g=Oi(i.rtl,this.x,this.width),p=function(i){e.fillText(i,g.x(t.x+f),t.y+d/2),t.y+=d+n},m=g.textAlign(o);let x,b,_,y,v,M,w;for(e.textAlign=o,e.textBaseline="middle",e.font=c.string,t.x=Ea(this,m,i),e.fillStyle=i.bodyColor,u(this.beforeBody,p),f=a&&"right"!==m?"center"===o?l/2+h:l+2+h:0,y=0,M=s.length;y0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,i=this.$animations,s=i&&i.x,n=i&&i.y;if(s||n){const i=Sa[t.position].call(this,this._active,this._eventPosition);if(!i)return;const o=this._size=Oa(this,t),a=Object.assign({},i,this._size),r=Ta(e,t,a),l=La(t,a,r,e);s._to===l.x&&n._to===l.y||(this.xAlign=r.xAlign,this.yAlign=r.yAlign,this.width=o.width,this.height=o.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,l))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(e);const s={width:this.width,height:this.height},n={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const o=ki(e.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(n,t,s,e),Ai(t,e.textDirection),n.y+=o.top,this.drawTitle(n,t,e),this.drawBody(n,t,e),this.drawFooter(n,t,e),Ti(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const i=this._active,s=t.map((({datasetIndex:t,index:e})=>{const i=this.chart.getDatasetMeta(t);if(!i)throw new Error("Cannot find a dataset at index "+t);return{datasetIndex:t,element:i.data[e],index:e}})),n=!f(i,s),o=this._positionChanged(s,e);(n||o)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,n=this._active||[],o=this._getActiveElements(t,n,e,i),a=this._positionChanged(o,t),r=e||!f(o,n)||a;return r&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),r}_getActiveElements(t,e,i,s){const n=this.options;if("mouseout"===t.type)return[];if(!s)return e.filter((t=>this.chart.data.datasets[t.datasetIndex]&&void 0!==this.chart.getDatasetMeta(t.datasetIndex).controller.getParsed(t.index)));const o=this.chart.getElementsAtEventForMode(t,n.mode,n,i);return n.reverse&&o.reverse(),o}_positionChanged(t,e){const{caretX:i,caretY:s,options:n}=this,o=Sa[n.position].call(this,t,e);return!1!==o&&(i!==o.x||s!==o.y)}}var Ba={id:"tooltip",_element:Va,positioners:Sa,afterInit(t,e,i){i&&(t.tooltip=new Va({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const i={tooltip:e};if(!1===t.notifyPlugins("beforeTooltipDraw",{...i,cancelable:!0}))return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",i)}},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:za},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>"filter"!==t&&"itemSort"!==t&&"external"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};return An.register(Yn,jo,fo,t),An.helpers={...Wi},An._adapters=Rn,An.Animation=Cs,An.Animations=Os,An.animator=bt,An.controllers=en.controllers.items,An.DatasetController=Ns,An.Element=Hs,An.elements=fo,An.Interaction=Xi,An.layouts=as,An.platforms=Ss,An.Scale=Js,An.Ticks=ae,Object.assign(An,Yn,jo,fo,t,Ss),An.Chart=An,"undefined"!=typeof window&&(window.Chart=An),An})); //# sourceMappingURL=chart.umd.js.map diff --git a/assets/lib/mermaid/arc-c0f908ab.js b/assets/lib/mermaid/arc-c0f908ab.js new file mode 100644 index 000000000..024777dba --- /dev/null +++ b/assets/lib/mermaid/arc-c0f908ab.js @@ -0,0 +1,148 @@ +import { w as withPath, c as constant } from "./path-39bad7e2.js"; +import { aw as pi, ax as cos, ay as sin, az as halfPi, aA as epsilon, V as tau, aB as sqrt, aC as min, aD as abs, aE as atan2, aF as asin, aG as acos, aH as max } from "./mermaid-dcacb631.js"; +function arcInnerRadius(d) { + return d.innerRadius; +} +function arcOuterRadius(d) { + return d.outerRadius; +} +function arcStartAngle(d) { + return d.startAngle; +} +function arcEndAngle(d) { + return d.endAngle; +} +function arcPadAngle(d) { + return d && d.padAngle; +} +function intersect(x0, y0, x1, y1, x2, y2, x3, y3) { + var x10 = x1 - x0, y10 = y1 - y0, x32 = x3 - x2, y32 = y3 - y2, t = y32 * x10 - x32 * y10; + if (t * t < epsilon) + return; + t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t; + return [x0 + t * x10, y0 + t * y10]; +} +function cornerTangents(x0, y0, x1, y1, r1, rc, cw) { + var x01 = x0 - x1, y01 = y0 - y1, lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x11 = x0 + ox, y11 = y0 + oy, x10 = x1 + ox, y10 = y1 + oy, x00 = (x11 + x10) / 2, y00 = (y11 + y10) / 2, dx = x10 - x11, dy = y10 - y11, d2 = dx * dx + dy * dy, r = r1 - rc, D = x11 * y10 - x10 * y11, d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x00, dy0 = cy0 - y00, dx1 = cx1 - x00, dy1 = cy1 - y00; + if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) + cx0 = cx1, cy0 = cy1; + return { + cx: cx0, + cy: cy0, + x01: -ox, + y01: -oy, + x11: cx0 * (r1 / r - 1), + y11: cy0 * (r1 / r - 1) + }; +} +function d3arc() { + var innerRadius = arcInnerRadius, outerRadius = arcOuterRadius, cornerRadius = constant(0), padRadius = null, startAngle = arcStartAngle, endAngle = arcEndAngle, padAngle = arcPadAngle, context = null, path = withPath(arc); + function arc() { + var buffer, r, r0 = +innerRadius.apply(this, arguments), r1 = +outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) - halfPi, a1 = endAngle.apply(this, arguments) - halfPi, da = abs(a1 - a0), cw = a1 > a0; + if (!context) + context = buffer = path(); + if (r1 < r0) + r = r1, r1 = r0, r0 = r; + if (!(r1 > epsilon)) + context.moveTo(0, 0); + else if (da > tau - epsilon) { + context.moveTo(r1 * cos(a0), r1 * sin(a0)); + context.arc(0, 0, r1, a0, a1, !cw); + if (r0 > epsilon) { + context.moveTo(r0 * cos(a1), r0 * sin(a1)); + context.arc(0, 0, r0, a1, a0, cw); + } + } else { + var a01 = a0, a11 = a1, a00 = a0, a10 = a1, da0 = da, da1 = da, ap = padAngle.apply(this, arguments) / 2, rp = ap > epsilon && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), rc0 = rc, rc1 = rc, t0, t1; + if (rp > epsilon) { + var p0 = asin(rp / r0 * sin(ap)), p1 = asin(rp / r1 * sin(ap)); + if ((da0 -= p0 * 2) > epsilon) + p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0; + else + da0 = 0, a00 = a10 = (a0 + a1) / 2; + if ((da1 -= p1 * 2) > epsilon) + p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1; + else + da1 = 0, a01 = a11 = (a0 + a1) / 2; + } + var x01 = r1 * cos(a01), y01 = r1 * sin(a01), x10 = r0 * cos(a10), y10 = r0 * sin(a10); + if (rc > epsilon) { + var x11 = r1 * cos(a11), y11 = r1 * sin(a11), x00 = r0 * cos(a00), y00 = r0 * sin(a00), oc; + if (da < pi) { + if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) { + var ax = x01 - oc[0], ay = y01 - oc[1], bx = x11 - oc[0], by = y11 - oc[1], kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]); + rc0 = min(rc, (r0 - lc) / (kc - 1)); + rc1 = min(rc, (r1 - lc) / (kc + 1)); + } else { + rc0 = rc1 = 0; + } + } + } + if (!(da1 > epsilon)) + context.moveTo(x01, y01); + else if (rc1 > epsilon) { + t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw); + t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw); + context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01); + if (rc1 < rc) + context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); + else { + context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); + context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw); + context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); + } + } else + context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw); + if (!(r0 > epsilon) || !(da0 > epsilon)) + context.lineTo(x10, y10); + else if (rc0 > epsilon) { + t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw); + t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw); + context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01); + if (rc0 < rc) + context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); + else { + context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); + context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw); + context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); + } + } else + context.arc(0, 0, r0, a10, a00, cw); + } + context.closePath(); + if (buffer) + return context = null, buffer + "" || null; + } + arc.centroid = function() { + var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2; + return [cos(a) * r, sin(a) * r]; + }; + arc.innerRadius = function(_) { + return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant(+_), arc) : innerRadius; + }; + arc.outerRadius = function(_) { + return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant(+_), arc) : outerRadius; + }; + arc.cornerRadius = function(_) { + return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant(+_), arc) : cornerRadius; + }; + arc.padRadius = function(_) { + return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant(+_), arc) : padRadius; + }; + arc.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), arc) : startAngle; + }; + arc.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), arc) : endAngle; + }; + arc.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), arc) : padAngle; + }; + arc.context = function(_) { + return arguments.length ? (context = _ == null ? null : _, arc) : context; + }; + return arc; +} +export { + d3arc as d +}; diff --git a/assets/lib/mermaid/arc-d1f6357e.js b/assets/lib/mermaid/arc-d1f6357e.js new file mode 100644 index 000000000..5589dbf4a --- /dev/null +++ b/assets/lib/mermaid/arc-d1f6357e.js @@ -0,0 +1,86 @@ +import { w as ln, c as H } from "./path-428ebac9.js"; +import { aw as an, ax as V, ay as D, az as rn, aA as y, V as on, aB as K, aC as _, aD as un, aE as t, aF as sn, aG as tn, aH as fn } from "./mermaid-9f2aa176.js"; +function cn(l) { + return l.innerRadius; +} +function yn(l) { + return l.outerRadius; +} +function gn(l) { + return l.startAngle; +} +function mn(l) { + return l.endAngle; +} +function pn(l) { + return l && l.padAngle; +} +function dn(l, h, z, E, v, A, I, a) { + var B = z - l, i = E - h, n = I - v, m = a - A, r = m * B - n * i; + if (!(r * r < y)) + return r = (n * (h - A) - m * (l - v)) / r, [l + r * B, h + r * i]; +} +function W(l, h, z, E, v, A, I) { + var a = l - z, B = h - E, i = (I ? A : -A) / K(a * a + B * B), n = i * B, m = -i * a, r = l + n, s = h + m, f = z + n, c = E + m, O = (r + f) / 2, o = (s + c) / 2, p = f - r, g = c - s, R = p * p + g * g, T = v - A, w = r * c - f * s, C = (g < 0 ? -1 : 1) * K(fn(0, T * T * R - w * w)), F = (w * g - p * C) / R, G = (-w * p - g * C) / R, P = (w * g + p * C) / R, d = (-w * p + g * C) / R, x = F - O, e = G - o, u = P - O, S = d - o; + return x * x + e * e > u * u + S * S && (F = P, G = d), { + cx: F, + cy: G, + x01: -n, + y01: -m, + x11: F * (v / T - 1), + y11: G * (v / T - 1) + }; +} +function vn() { + var l = cn, h = yn, z = H(0), E = null, v = gn, A = mn, I = pn, a = null, B = ln(i); + function i() { + var n, m, r = +l.apply(this, arguments), s = +h.apply(this, arguments), f = v.apply(this, arguments) - rn, c = A.apply(this, arguments) - rn, O = un(c - f), o = c > f; + if (a || (a = n = B()), s < r && (m = s, s = r, r = m), !(s > y)) + a.moveTo(0, 0); + else if (O > on - y) + a.moveTo(s * V(f), s * D(f)), a.arc(0, 0, s, f, c, !o), r > y && (a.moveTo(r * V(c), r * D(c)), a.arc(0, 0, r, c, f, o)); + else { + var p = f, g = c, R = f, T = c, w = O, C = O, F = I.apply(this, arguments) / 2, G = F > y && (E ? +E.apply(this, arguments) : K(r * r + s * s)), P = _(un(s - r) / 2, +z.apply(this, arguments)), d = P, x = P, e, u; + if (G > y) { + var S = sn(G / r * D(F)), L = sn(G / s * D(F)); + (w -= S * 2) > y ? (S *= o ? 1 : -1, R += S, T -= S) : (w = 0, R = T = (f + c) / 2), (C -= L * 2) > y ? (L *= o ? 1 : -1, p += L, g -= L) : (C = 0, p = g = (f + c) / 2); + } + var j = s * V(p), J = s * D(p), M = r * V(T), N = r * D(T); + if (P > y) { + var Q = s * V(g), U = s * D(g), X = r * V(R), Y = r * D(R), q; + if (O < an) + if (q = dn(j, J, X, Y, Q, U, M, N)) { + var Z = j - q[0], $ = J - q[1], k = Q - q[0], b = U - q[1], nn = 1 / D(tn((Z * k + $ * b) / (K(Z * Z + $ * $) * K(k * k + b * b))) / 2), en = K(q[0] * q[0] + q[1] * q[1]); + d = _(P, (r - en) / (nn - 1)), x = _(P, (s - en) / (nn + 1)); + } else + d = x = 0; + } + C > y ? x > y ? (e = W(X, Y, j, J, s, x, o), u = W(Q, U, M, N, s, x, o), a.moveTo(e.cx + e.x01, e.cy + e.y01), x < P ? a.arc(e.cx, e.cy, x, t(e.y01, e.x01), t(u.y01, u.x01), !o) : (a.arc(e.cx, e.cy, x, t(e.y01, e.x01), t(e.y11, e.x11), !o), a.arc(0, 0, s, t(e.cy + e.y11, e.cx + e.x11), t(u.cy + u.y11, u.cx + u.x11), !o), a.arc(u.cx, u.cy, x, t(u.y11, u.x11), t(u.y01, u.x01), !o))) : (a.moveTo(j, J), a.arc(0, 0, s, p, g, !o)) : a.moveTo(j, J), !(r > y) || !(w > y) ? a.lineTo(M, N) : d > y ? (e = W(M, N, Q, U, r, -d, o), u = W(j, J, X, Y, r, -d, o), a.lineTo(e.cx + e.x01, e.cy + e.y01), d < P ? a.arc(e.cx, e.cy, d, t(e.y01, e.x01), t(u.y01, u.x01), !o) : (a.arc(e.cx, e.cy, d, t(e.y01, e.x01), t(e.y11, e.x11), !o), a.arc(0, 0, r, t(e.cy + e.y11, e.cx + e.x11), t(u.cy + u.y11, u.cx + u.x11), o), a.arc(u.cx, u.cy, d, t(u.y11, u.x11), t(u.y01, u.x01), !o))) : a.arc(0, 0, r, T, R, o); + } + if (a.closePath(), n) + return a = null, n + "" || null; + } + return i.centroid = function() { + var n = (+l.apply(this, arguments) + +h.apply(this, arguments)) / 2, m = (+v.apply(this, arguments) + +A.apply(this, arguments)) / 2 - an / 2; + return [V(m) * n, D(m) * n]; + }, i.innerRadius = function(n) { + return arguments.length ? (l = typeof n == "function" ? n : H(+n), i) : l; + }, i.outerRadius = function(n) { + return arguments.length ? (h = typeof n == "function" ? n : H(+n), i) : h; + }, i.cornerRadius = function(n) { + return arguments.length ? (z = typeof n == "function" ? n : H(+n), i) : z; + }, i.padRadius = function(n) { + return arguments.length ? (E = n == null ? null : typeof n == "function" ? n : H(+n), i) : E; + }, i.startAngle = function(n) { + return arguments.length ? (v = typeof n == "function" ? n : H(+n), i) : v; + }, i.endAngle = function(n) { + return arguments.length ? (A = typeof n == "function" ? n : H(+n), i) : A; + }, i.padAngle = function(n) { + return arguments.length ? (I = typeof n == "function" ? n : H(+n), i) : I; + }, i.context = function(n) { + return arguments.length ? (a = n ?? null, i) : a; + }, i; +} +export { + vn as d +}; diff --git a/assets/lib/mermaid/blockDiagram-5dc23a45.js b/assets/lib/mermaid/blockDiagram-5dc23a45.js new file mode 100644 index 000000000..9b75fb3f3 --- /dev/null +++ b/assets/lib/mermaid/blockDiagram-5dc23a45.js @@ -0,0 +1,1230 @@ +import { c as ge, _ as se, l as L, E as ye, f as _e, B as we, o as De, j as H, k as Ne } from "./mermaid-9f2aa176.js"; +import { c as Ie } from "./clone-afc2f047.js"; +import { c as Oe } from "./channel-ebbc4130.js"; +import { h as Te, f as ze, j as Ce, e as de, p as Ae, a as Re } from "./edges-16357fde.js"; +import { G as ve } from "./graph-0ee63739.js"; +import { o as Be } from "./ordinal-5695958c.js"; +import { d as ke } from "./Tableau10-558cc280.js"; +import "./createText-03b82060.js"; +import "./line-24d93f1b.js"; +import "./array-2ff2c7a6.js"; +import "./path-428ebac9.js"; +import "./init-f9637058.js"; +var ee = function() { + var e = function(D, l, s, r) { + for (s = s || {}, r = D.length; r--; s[D[r]] = l) + ; + return s; + }, c = [1, 7], u = [1, 13], a = [1, 14], i = [1, 15], g = [1, 19], o = [1, 16], p = [1, 17], f = [1, 18], m = [8, 30], S = [8, 21, 28, 29, 30, 31, 32, 40, 44, 47], y = [1, 23], z = [1, 24], I = [8, 15, 16, 21, 28, 29, 30, 31, 32, 40, 44, 47], w = [8, 15, 16, 21, 27, 28, 29, 30, 31, 32, 40, 44, 47], C = [1, 49], E = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, spaceLines: 3, SPACELINE: 4, NL: 5, separator: 6, SPACE: 7, EOF: 8, start: 9, BLOCK_DIAGRAM_KEY: 10, document: 11, stop: 12, statement: 13, link: 14, LINK: 15, START_LINK: 16, LINK_LABEL: 17, STR: 18, nodeStatement: 19, columnsStatement: 20, SPACE_BLOCK: 21, blockStatement: 22, classDefStatement: 23, cssClassStatement: 24, styleStatement: 25, node: 26, SIZE: 27, COLUMNS: 28, "id-block": 29, end: 30, block: 31, NODE_ID: 32, nodeShapeNLabel: 33, dirList: 34, DIR: 35, NODE_DSTART: 36, NODE_DEND: 37, BLOCK_ARROW_START: 38, BLOCK_ARROW_END: 39, classDef: 40, CLASSDEF_ID: 41, CLASSDEF_STYLEOPTS: 42, DEFAULT: 43, class: 44, CLASSENTITY_IDS: 45, STYLECLASS: 46, style: 47, STYLE_ENTITY_IDS: 48, STYLE_DEFINITION_DATA: 49, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 4: "SPACELINE", 5: "NL", 7: "SPACE", 8: "EOF", 10: "BLOCK_DIAGRAM_KEY", 15: "LINK", 16: "START_LINK", 17: "LINK_LABEL", 18: "STR", 21: "SPACE_BLOCK", 27: "SIZE", 28: "COLUMNS", 29: "id-block", 30: "end", 31: "block", 32: "NODE_ID", 35: "DIR", 36: "NODE_DSTART", 37: "NODE_DEND", 38: "BLOCK_ARROW_START", 39: "BLOCK_ARROW_END", 40: "classDef", 41: "CLASSDEF_ID", 42: "CLASSDEF_STYLEOPTS", 43: "DEFAULT", 44: "class", 45: "CLASSENTITY_IDS", 46: "STYLECLASS", 47: "style", 48: "STYLE_ENTITY_IDS", 49: "STYLE_DEFINITION_DATA" }, + productions_: [0, [3, 1], [3, 2], [3, 2], [6, 1], [6, 1], [6, 1], [9, 3], [12, 1], [12, 1], [12, 2], [12, 2], [11, 1], [11, 2], [14, 1], [14, 4], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [19, 3], [19, 2], [19, 1], [20, 1], [22, 4], [22, 3], [26, 1], [26, 2], [34, 1], [34, 2], [33, 3], [33, 4], [23, 3], [23, 3], [24, 3], [25, 3]], + performAction: function(l, s, r, h, d, t, x) { + var n = t.length - 1; + switch (d) { + case 4: + h.getLogger().debug("Rule: separator (NL) "); + break; + case 5: + h.getLogger().debug("Rule: separator (Space) "); + break; + case 6: + h.getLogger().debug("Rule: separator (EOF) "); + break; + case 7: + h.getLogger().debug("Rule: hierarchy: ", t[n - 1]), h.setHierarchy(t[n - 1]); + break; + case 8: + h.getLogger().debug("Stop NL "); + break; + case 9: + h.getLogger().debug("Stop EOF "); + break; + case 10: + h.getLogger().debug("Stop NL2 "); + break; + case 11: + h.getLogger().debug("Stop EOF2 "); + break; + case 12: + h.getLogger().debug("Rule: statement: ", t[n]), typeof t[n].length == "number" ? this.$ = t[n] : this.$ = [t[n]]; + break; + case 13: + h.getLogger().debug("Rule: statement #2: ", t[n - 1]), this.$ = [t[n - 1]].concat(t[n]); + break; + case 14: + h.getLogger().debug("Rule: link: ", t[n], l), this.$ = { edgeTypeStr: t[n], label: "" }; + break; + case 15: + h.getLogger().debug("Rule: LABEL link: ", t[n - 3], t[n - 1], t[n]), this.$ = { edgeTypeStr: t[n], label: t[n - 1] }; + break; + case 18: + const B = parseInt(t[n]), Y = h.generateId(); + this.$ = { id: Y, type: "space", label: "", width: B, children: [] }; + break; + case 23: + h.getLogger().debug("Rule: (nodeStatement link node) ", t[n - 2], t[n - 1], t[n], " typestr: ", t[n - 1].edgeTypeStr); + const F = h.edgeStrToEdgeData(t[n - 1].edgeTypeStr); + this.$ = [ + { id: t[n - 2].id, label: t[n - 2].label, type: t[n - 2].type, directions: t[n - 2].directions }, + { id: t[n - 2].id + "-" + t[n].id, start: t[n - 2].id, end: t[n].id, label: t[n - 1].label, type: "edge", directions: t[n].directions, arrowTypeEnd: F, arrowTypeStart: "arrow_open" }, + { id: t[n].id, label: t[n].label, type: h.typeStr2Type(t[n].typeStr), directions: t[n].directions } + ]; + break; + case 24: + h.getLogger().debug("Rule: nodeStatement (abc88 node size) ", t[n - 1], t[n]), this.$ = { id: t[n - 1].id, label: t[n - 1].label, type: h.typeStr2Type(t[n - 1].typeStr), directions: t[n - 1].directions, widthInColumns: parseInt(t[n], 10) }; + break; + case 25: + h.getLogger().debug("Rule: nodeStatement (node) ", t[n]), this.$ = { id: t[n].id, label: t[n].label, type: h.typeStr2Type(t[n].typeStr), directions: t[n].directions, widthInColumns: 1 }; + break; + case 26: + h.getLogger().debug("APA123", this ? this : "na"), h.getLogger().debug("COLUMNS: ", t[n]), this.$ = { type: "column-setting", columns: t[n] === "auto" ? -1 : parseInt(t[n]) }; + break; + case 27: + h.getLogger().debug("Rule: id-block statement : ", t[n - 2], t[n - 1]), h.generateId(), this.$ = { ...t[n - 2], type: "composite", children: t[n - 1] }; + break; + case 28: + h.getLogger().debug("Rule: blockStatement : ", t[n - 2], t[n - 1], t[n]); + const R = h.generateId(); + this.$ = { id: R, type: "composite", label: "", children: t[n - 1] }; + break; + case 29: + h.getLogger().debug("Rule: node (NODE_ID separator): ", t[n]), this.$ = { id: t[n] }; + break; + case 30: + h.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ", t[n - 1], t[n]), this.$ = { id: t[n - 1], label: t[n].label, typeStr: t[n].typeStr, directions: t[n].directions }; + break; + case 31: + h.getLogger().debug("Rule: dirList: ", t[n]), this.$ = [t[n]]; + break; + case 32: + h.getLogger().debug("Rule: dirList: ", t[n - 1], t[n]), this.$ = [t[n - 1]].concat(t[n]); + break; + case 33: + h.getLogger().debug("Rule: nodeShapeNLabel: ", t[n - 2], t[n - 1], t[n]), this.$ = { typeStr: t[n - 2] + t[n], label: t[n - 1] }; + break; + case 34: + h.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ", t[n - 3], t[n - 2], " #3:", t[n - 1], t[n]), this.$ = { typeStr: t[n - 3] + t[n], label: t[n - 2], directions: t[n - 1] }; + break; + case 35: + case 36: + this.$ = { type: "classDef", id: t[n - 1].trim(), css: t[n].trim() }; + break; + case 37: + this.$ = { type: "applyClass", id: t[n - 1].trim(), styleClass: t[n].trim() }; + break; + case 38: + this.$ = { type: "applyStyles", id: t[n - 1].trim(), stylesStr: t[n].trim() }; + break; + } + }, + table: [{ 9: 1, 10: [1, 2] }, { 1: [3] }, { 11: 3, 13: 4, 19: 5, 20: 6, 21: c, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: u, 29: a, 31: i, 32: g, 40: o, 44: p, 47: f }, { 8: [1, 20] }, e(m, [2, 12], { 13: 4, 19: 5, 20: 6, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 11: 21, 21: c, 28: u, 29: a, 31: i, 32: g, 40: o, 44: p, 47: f }), e(S, [2, 16], { 14: 22, 15: y, 16: z }), e(S, [2, 17]), e(S, [2, 18]), e(S, [2, 19]), e(S, [2, 20]), e(S, [2, 21]), e(S, [2, 22]), e(I, [2, 25], { 27: [1, 25] }), e(S, [2, 26]), { 19: 26, 26: 12, 32: g }, { 11: 27, 13: 4, 19: 5, 20: 6, 21: c, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: u, 29: a, 31: i, 32: g, 40: o, 44: p, 47: f }, { 41: [1, 28], 43: [1, 29] }, { 45: [1, 30] }, { 48: [1, 31] }, e(w, [2, 29], { 33: 32, 36: [1, 33], 38: [1, 34] }), { 1: [2, 7] }, e(m, [2, 13]), { 26: 35, 32: g }, { 32: [2, 14] }, { 17: [1, 36] }, e(I, [2, 24]), { 11: 37, 13: 4, 14: 22, 15: y, 16: z, 19: 5, 20: 6, 21: c, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: u, 29: a, 31: i, 32: g, 40: o, 44: p, 47: f }, { 30: [1, 38] }, { 42: [1, 39] }, { 42: [1, 40] }, { 46: [1, 41] }, { 49: [1, 42] }, e(w, [2, 30]), { 18: [1, 43] }, { 18: [1, 44] }, e(I, [2, 23]), { 18: [1, 45] }, { 30: [1, 46] }, e(S, [2, 28]), e(S, [2, 35]), e(S, [2, 36]), e(S, [2, 37]), e(S, [2, 38]), { 37: [1, 47] }, { 34: 48, 35: C }, { 15: [1, 50] }, e(S, [2, 27]), e(w, [2, 33]), { 39: [1, 51] }, { 34: 52, 35: C, 39: [2, 31] }, { 32: [2, 15] }, e(w, [2, 34]), { 39: [2, 32] }], + defaultActions: { 20: [2, 7], 23: [2, 14], 50: [2, 15], 52: [2, 32] }, + parseError: function(l, s) { + if (s.recoverable) + this.trace(l); + else { + var r = new Error(l); + throw r.hash = s, r; + } + }, + parse: function(l) { + var s = this, r = [0], h = [], d = [null], t = [], x = this.table, n = "", B = 0, Y = 0, F = 2, R = 1, me = t.slice.call(arguments, 1), _ = Object.create(this.lexer), K = { yy: {} }; + for (var Z in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, Z) && (K.yy[Z] = this.yy[Z]); + _.setInput(l, K.yy), K.yy.lexer = _, K.yy.parser = this, typeof _.yylloc > "u" && (_.yylloc = {}); + var J = _.yylloc; + t.push(J); + var be = _.options && _.options.ranges; + typeof K.yy.parseError == "function" ? this.parseError = K.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function Ee() { + var P; + return P = h.pop() || _.lex() || R, typeof P != "number" && (P instanceof Array && (h = P, P = h.pop()), P = s.symbols_[P] || P), P; + } + for (var O, M, A, Q, W = {}, X, k, ae, G; ; ) { + if (M = r[r.length - 1], this.defaultActions[M] ? A = this.defaultActions[M] : ((O === null || typeof O > "u") && (O = Ee()), A = x[M] && x[M][O]), typeof A > "u" || !A.length || !A[0]) { + var $ = ""; + G = []; + for (X in x[M]) + this.terminals_[X] && X > F && G.push("'" + this.terminals_[X] + "'"); + _.showPosition ? $ = "Parse error on line " + (B + 1) + `: +` + _.showPosition() + ` +Expecting ` + G.join(", ") + ", got '" + (this.terminals_[O] || O) + "'" : $ = "Parse error on line " + (B + 1) + ": Unexpected " + (O == R ? "end of input" : "'" + (this.terminals_[O] || O) + "'"), this.parseError($, { + text: _.match, + token: this.terminals_[O] || O, + line: _.yylineno, + loc: J, + expected: G + }); + } + if (A[0] instanceof Array && A.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + M + ", token: " + O); + switch (A[0]) { + case 1: + r.push(O), d.push(_.yytext), t.push(_.yylloc), r.push(A[1]), O = null, Y = _.yyleng, n = _.yytext, B = _.yylineno, J = _.yylloc; + break; + case 2: + if (k = this.productions_[A[1]][1], W.$ = d[d.length - k], W._$ = { + first_line: t[t.length - (k || 1)].first_line, + last_line: t[t.length - 1].last_line, + first_column: t[t.length - (k || 1)].first_column, + last_column: t[t.length - 1].last_column + }, be && (W._$.range = [ + t[t.length - (k || 1)].range[0], + t[t.length - 1].range[1] + ]), Q = this.performAction.apply(W, [ + n, + Y, + B, + K.yy, + A[1], + d, + t + ].concat(me)), typeof Q < "u") + return Q; + k && (r = r.slice(0, -1 * k * 2), d = d.slice(0, -1 * k), t = t.slice(0, -1 * k)), r.push(this.productions_[A[1]][0]), d.push(W.$), t.push(W._$), ae = x[r[r.length - 2]][r[r.length - 1]], r.push(ae); + break; + case 3: + return !0; + } + } + return !0; + } + }, v = function() { + var D = { + EOF: 1, + parseError: function(s, r) { + if (this.yy.parser) + this.yy.parser.parseError(s, r); + else + throw new Error(s); + }, + // resets the lexer, sets new input + setInput: function(l, s) { + return this.yy = s || this.yy || {}, this._input = l, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var l = this._input[0]; + this.yytext += l, this.yyleng++, this.offset++, this.match += l, this.matched += l; + var s = l.match(/(?:\r\n?|\n).*/g); + return s ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), l; + }, + // unshifts one char (or a string) into the input + unput: function(l) { + var s = l.length, r = l.split(/(?:\r\n?|\n)/g); + this._input = l + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - s), this.offset -= s; + var h = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), r.length - 1 && (this.yylineno -= r.length - 1); + var d = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: r ? (r.length === h.length ? this.yylloc.first_column : 0) + h[h.length - r.length].length - r[0].length : this.yylloc.first_column - s + }, this.options.ranges && (this.yylloc.range = [d[0], d[0] + this.yyleng - s]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(l) { + this.unput(this.match.slice(l)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var l = this.matched.substr(0, this.matched.length - this.match.length); + return (l.length > 20 ? "..." : "") + l.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var l = this.match; + return l.length < 20 && (l += this._input.substr(0, 20 - l.length)), (l.substr(0, 20) + (l.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var l = this.pastInput(), s = new Array(l.length + 1).join("-"); + return l + this.upcomingInput() + ` +` + s + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(l, s) { + var r, h, d; + if (this.options.backtrack_lexer && (d = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (d.yylloc.range = this.yylloc.range.slice(0))), h = l[0].match(/(?:\r\n?|\n).*/g), h && (this.yylineno += h.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: h ? h[h.length - 1].length - h[h.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + l[0].length + }, this.yytext += l[0], this.match += l[0], this.matches = l, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(l[0].length), this.matched += l[0], r = this.performAction.call(this, this.yy, this, s, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), r) + return r; + if (this._backtrack) { + for (var t in d) + this[t] = d[t]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var l, s, r, h; + this._more || (this.yytext = "", this.match = ""); + for (var d = this._currentRules(), t = 0; t < d.length; t++) + if (r = this._input.match(this.rules[d[t]]), r && (!s || r[0].length > s[0].length)) { + if (s = r, h = t, this.options.backtrack_lexer) { + if (l = this.test_match(r, d[t]), l !== !1) + return l; + if (this._backtrack) { + s = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return s ? (l = this.test_match(s, d[h]), l !== !1 ? l : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var s = this.next(); + return s || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(s) { + this.conditionStack.push(s); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var s = this.conditionStack.length - 1; + return s > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(s) { + return s = this.conditionStack.length - 1 - Math.abs(s || 0), s >= 0 ? this.conditionStack[s] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(s) { + this.begin(s); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: {}, + performAction: function(s, r, h, d) { + switch (h) { + case 0: + return 10; + case 1: + return s.getLogger().debug("Found space-block"), 31; + case 2: + return s.getLogger().debug("Found nl-block"), 31; + case 3: + return s.getLogger().debug("Found space-block"), 29; + case 4: + s.getLogger().debug(".", r.yytext); + break; + case 5: + s.getLogger().debug("_", r.yytext); + break; + case 6: + return 5; + case 7: + return r.yytext = -1, 28; + case 8: + return r.yytext = r.yytext.replace(/columns\s+/, ""), s.getLogger().debug("COLUMNS (LEX)", r.yytext), 28; + case 9: + this.pushState("md_string"); + break; + case 10: + return "MD_STR"; + case 11: + this.popState(); + break; + case 12: + this.pushState("string"); + break; + case 13: + s.getLogger().debug("LEX: POPPING STR:", r.yytext), this.popState(); + break; + case 14: + return s.getLogger().debug("LEX: STR end:", r.yytext), "STR"; + case 15: + return r.yytext = r.yytext.replace(/space\:/, ""), s.getLogger().debug("SPACE NUM (LEX)", r.yytext), 21; + case 16: + return r.yytext = "1", s.getLogger().debug("COLUMNS (LEX)", r.yytext), 21; + case 17: + return 43; + case 18: + return "LINKSTYLE"; + case 19: + return "INTERPOLATE"; + case 20: + return this.pushState("CLASSDEF"), 40; + case 21: + return this.popState(), this.pushState("CLASSDEFID"), "DEFAULT_CLASSDEF_ID"; + case 22: + return this.popState(), this.pushState("CLASSDEFID"), 41; + case 23: + return this.popState(), 42; + case 24: + return this.pushState("CLASS"), 44; + case 25: + return this.popState(), this.pushState("CLASS_STYLE"), 45; + case 26: + return this.popState(), 46; + case 27: + return this.pushState("STYLE_STMNT"), 47; + case 28: + return this.popState(), this.pushState("STYLE_DEFINITION"), 48; + case 29: + return this.popState(), 49; + case 30: + return this.pushState("acc_title"), "acc_title"; + case 31: + return this.popState(), "acc_title_value"; + case 32: + return this.pushState("acc_descr"), "acc_descr"; + case 33: + return this.popState(), "acc_descr_value"; + case 34: + this.pushState("acc_descr_multiline"); + break; + case 35: + this.popState(); + break; + case 36: + return "acc_descr_multiline_value"; + case 37: + return 30; + case 38: + return this.popState(), s.getLogger().debug("Lex: (("), "NODE_DEND"; + case 39: + return this.popState(), s.getLogger().debug("Lex: (("), "NODE_DEND"; + case 40: + return this.popState(), s.getLogger().debug("Lex: ))"), "NODE_DEND"; + case 41: + return this.popState(), s.getLogger().debug("Lex: (("), "NODE_DEND"; + case 42: + return this.popState(), s.getLogger().debug("Lex: (("), "NODE_DEND"; + case 43: + return this.popState(), s.getLogger().debug("Lex: (-"), "NODE_DEND"; + case 44: + return this.popState(), s.getLogger().debug("Lex: -)"), "NODE_DEND"; + case 45: + return this.popState(), s.getLogger().debug("Lex: (("), "NODE_DEND"; + case 46: + return this.popState(), s.getLogger().debug("Lex: ]]"), "NODE_DEND"; + case 47: + return this.popState(), s.getLogger().debug("Lex: ("), "NODE_DEND"; + case 48: + return this.popState(), s.getLogger().debug("Lex: ])"), "NODE_DEND"; + case 49: + return this.popState(), s.getLogger().debug("Lex: /]"), "NODE_DEND"; + case 50: + return this.popState(), s.getLogger().debug("Lex: /]"), "NODE_DEND"; + case 51: + return this.popState(), s.getLogger().debug("Lex: )]"), "NODE_DEND"; + case 52: + return this.popState(), s.getLogger().debug("Lex: )"), "NODE_DEND"; + case 53: + return this.popState(), s.getLogger().debug("Lex: ]>"), "NODE_DEND"; + case 54: + return this.popState(), s.getLogger().debug("Lex: ]"), "NODE_DEND"; + case 55: + return s.getLogger().debug("Lexa: -)"), this.pushState("NODE"), 36; + case 56: + return s.getLogger().debug("Lexa: (-"), this.pushState("NODE"), 36; + case 57: + return s.getLogger().debug("Lexa: ))"), this.pushState("NODE"), 36; + case 58: + return s.getLogger().debug("Lexa: )"), this.pushState("NODE"), 36; + case 59: + return s.getLogger().debug("Lex: ((("), this.pushState("NODE"), 36; + case 60: + return s.getLogger().debug("Lexa: )"), this.pushState("NODE"), 36; + case 61: + return s.getLogger().debug("Lexa: )"), this.pushState("NODE"), 36; + case 62: + return s.getLogger().debug("Lexa: )"), this.pushState("NODE"), 36; + case 63: + return s.getLogger().debug("Lexc: >"), this.pushState("NODE"), 36; + case 64: + return s.getLogger().debug("Lexa: (["), this.pushState("NODE"), 36; + case 65: + return s.getLogger().debug("Lexa: )"), this.pushState("NODE"), 36; + case 66: + return this.pushState("NODE"), 36; + case 67: + return this.pushState("NODE"), 36; + case 68: + return this.pushState("NODE"), 36; + case 69: + return this.pushState("NODE"), 36; + case 70: + return this.pushState("NODE"), 36; + case 71: + return this.pushState("NODE"), 36; + case 72: + return this.pushState("NODE"), 36; + case 73: + return s.getLogger().debug("Lexa: ["), this.pushState("NODE"), 36; + case 74: + return this.pushState("BLOCK_ARROW"), s.getLogger().debug("LEX ARR START"), 38; + case 75: + return s.getLogger().debug("Lex: NODE_ID", r.yytext), 32; + case 76: + return s.getLogger().debug("Lex: EOF", r.yytext), 8; + case 77: + this.pushState("md_string"); + break; + case 78: + this.pushState("md_string"); + break; + case 79: + return "NODE_DESCR"; + case 80: + this.popState(); + break; + case 81: + s.getLogger().debug("Lex: Starting string"), this.pushState("string"); + break; + case 82: + s.getLogger().debug("LEX ARR: Starting string"), this.pushState("string"); + break; + case 83: + return s.getLogger().debug("LEX: NODE_DESCR:", r.yytext), "NODE_DESCR"; + case 84: + s.getLogger().debug("LEX POPPING"), this.popState(); + break; + case 85: + s.getLogger().debug("Lex: =>BAE"), this.pushState("ARROW_DIR"); + break; + case 86: + return r.yytext = r.yytext.replace(/^,\s*/, ""), s.getLogger().debug("Lex (right): dir:", r.yytext), "DIR"; + case 87: + return r.yytext = r.yytext.replace(/^,\s*/, ""), s.getLogger().debug("Lex (left):", r.yytext), "DIR"; + case 88: + return r.yytext = r.yytext.replace(/^,\s*/, ""), s.getLogger().debug("Lex (x):", r.yytext), "DIR"; + case 89: + return r.yytext = r.yytext.replace(/^,\s*/, ""), s.getLogger().debug("Lex (y):", r.yytext), "DIR"; + case 90: + return r.yytext = r.yytext.replace(/^,\s*/, ""), s.getLogger().debug("Lex (up):", r.yytext), "DIR"; + case 91: + return r.yytext = r.yytext.replace(/^,\s*/, ""), s.getLogger().debug("Lex (down):", r.yytext), "DIR"; + case 92: + return r.yytext = "]>", s.getLogger().debug("Lex (ARROW_DIR end):", r.yytext), this.popState(), this.popState(), "BLOCK_ARROW_END"; + case 93: + return s.getLogger().debug("Lex: LINK", "#" + r.yytext + "#"), 15; + case 94: + return s.getLogger().debug("Lex: LINK", r.yytext), 15; + case 95: + return s.getLogger().debug("Lex: LINK", r.yytext), 15; + case 96: + return s.getLogger().debug("Lex: LINK", r.yytext), 15; + case 97: + return s.getLogger().debug("Lex: START_LINK", r.yytext), this.pushState("LLABEL"), 16; + case 98: + return s.getLogger().debug("Lex: START_LINK", r.yytext), this.pushState("LLABEL"), 16; + case 99: + return s.getLogger().debug("Lex: START_LINK", r.yytext), this.pushState("LLABEL"), 16; + case 100: + this.pushState("md_string"); + break; + case 101: + return s.getLogger().debug("Lex: Starting string"), this.pushState("string"), "LINK_LABEL"; + case 102: + return this.popState(), s.getLogger().debug("Lex: LINK", "#" + r.yytext + "#"), 15; + case 103: + return this.popState(), s.getLogger().debug("Lex: LINK", r.yytext), 15; + case 104: + return this.popState(), s.getLogger().debug("Lex: LINK", r.yytext), 15; + case 105: + return s.getLogger().debug("Lex: COLON", r.yytext), r.yytext = r.yytext.slice(1), 27; + } + }, + rules: [/^(?:block-beta\b)/, /^(?:block\s+)/, /^(?:block\n+)/, /^(?:block:)/, /^(?:[\s]+)/, /^(?:[\n]+)/, /^(?:((\u000D\u000A)|(\u000A)))/, /^(?:columns\s+auto\b)/, /^(?:columns\s+[\d]+)/, /^(?:["][`])/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:space[:]\d+)/, /^(?:space\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\s+)/, /^(?:DEFAULT\s+)/, /^(?:\w+\s+)/, /^(?:[^\n]*)/, /^(?:class\s+)/, /^(?:(\w+)+((,\s*\w+)*))/, /^(?:[^\n]*)/, /^(?:style\s+)/, /^(?:(\w+)+((,\s*\w+)*))/, /^(?:[^\n]*)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:end\b\s*)/, /^(?:\(\(\()/, /^(?:\)\)\))/, /^(?:[\)]\))/, /^(?:\}\})/, /^(?:\})/, /^(?:\(-)/, /^(?:-\))/, /^(?:\(\()/, /^(?:\]\])/, /^(?:\()/, /^(?:\]\))/, /^(?:\\\])/, /^(?:\/\])/, /^(?:\)\])/, /^(?:[\)])/, /^(?:\]>)/, /^(?:[\]])/, /^(?:-\))/, /^(?:\(-)/, /^(?:\)\))/, /^(?:\))/, /^(?:\(\(\()/, /^(?:\(\()/, /^(?:\{\{)/, /^(?:\{)/, /^(?:>)/, /^(?:\(\[)/, /^(?:\()/, /^(?:\[\[)/, /^(?:\[\|)/, /^(?:\[\()/, /^(?:\)\)\))/, /^(?:\[\\)/, /^(?:\[\/)/, /^(?:\[\\)/, /^(?:\[)/, /^(?:<\[)/, /^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/, /^(?:$)/, /^(?:["][`])/, /^(?:["][`])/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["])/, /^(?:["])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:\]>\s*\()/, /^(?:,?\s*right\s*)/, /^(?:,?\s*left\s*)/, /^(?:,?\s*x\s*)/, /^(?:,?\s*y\s*)/, /^(?:,?\s*up\s*)/, /^(?:,?\s*down\s*)/, /^(?:\)\s*)/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?:\s*~~[\~]+\s*)/, /^(?:\s*[xo<]?--\s*)/, /^(?:\s*[xo<]?==\s*)/, /^(?:\s*[xo<]?-\.\s*)/, /^(?:["][`])/, /^(?:["])/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?::\d+)/], + conditions: { STYLE_DEFINITION: { rules: [29], inclusive: !1 }, STYLE_STMNT: { rules: [28], inclusive: !1 }, CLASSDEFID: { rules: [23], inclusive: !1 }, CLASSDEF: { rules: [21, 22], inclusive: !1 }, CLASS_STYLE: { rules: [26], inclusive: !1 }, CLASS: { rules: [25], inclusive: !1 }, LLABEL: { rules: [100, 101, 102, 103, 104], inclusive: !1 }, ARROW_DIR: { rules: [86, 87, 88, 89, 90, 91, 92], inclusive: !1 }, BLOCK_ARROW: { rules: [77, 82, 85], inclusive: !1 }, NODE: { rules: [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 78, 81], inclusive: !1 }, md_string: { rules: [10, 11, 79, 80], inclusive: !1 }, space: { rules: [], inclusive: !1 }, string: { rules: [13, 14, 83, 84], inclusive: !1 }, acc_descr_multiline: { rules: [35, 36], inclusive: !1 }, acc_descr: { rules: [33], inclusive: !1 }, acc_title: { rules: [31], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 15, 16, 17, 18, 19, 20, 24, 27, 30, 32, 34, 37, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 93, 94, 95, 96, 97, 98, 99, 105], inclusive: !0 } } + }; + return D; + }(); + E.lexer = v; + function N() { + this.yy = {}; + } + return N.prototype = E, E.Parser = N, new N(); +}(); +ee.parser = ee; +const Pe = ee; +let T = {}, ie = [], V = {}; +const oe = "color", ce = "fill", Fe = "bgFill", pe = ",", Ke = ge(); +let j = {}; +const Me = (e) => _e.sanitizeText(e, Ke), Ye = function(e, c = "") { + j[e] === void 0 && (j[e] = { id: e, styles: [], textStyles: [] }); + const u = j[e]; + c != null && c.split(pe).forEach((a) => { + const i = a.replace(/([^;]*);/, "$1").trim(); + if (a.match(oe)) { + const o = i.replace(ce, Fe).replace(oe, ce); + u.textStyles.push(o); + } + u.styles.push(i); + }); +}, We = function(e, c = "") { + const u = T[e]; + c != null && (u.styles = c.split(pe)); +}, Ve = function(e, c) { + e.split(",").forEach(function(u) { + let a = T[u]; + if (a === void 0) { + const i = u.trim(); + T[i] = { id: i, type: "na", children: [] }, a = T[i]; + } + a.classes || (a.classes = []), a.classes.push(c); + }); +}, fe = (e, c) => { + const u = e.flat(), a = []; + for (const i of u) { + if (i.label && (i.label = Me(i.label)), i.type === "classDef") { + Ye(i.id, i.css); + continue; + } + if (i.type === "applyClass") { + Ve(i.id, (i == null ? void 0 : i.styleClass) || ""); + continue; + } + if (i.type === "applyStyles") { + i != null && i.stylesStr && We(i.id, i == null ? void 0 : i.stylesStr); + continue; + } + if (i.type === "column-setting") + c.columns = i.columns || -1; + else if (i.type === "edge") + V[i.id] ? V[i.id]++ : V[i.id] = 1, i.id = V[i.id] + "-" + i.id, ie.push(i); + else { + i.label || (i.type === "composite" ? i.label = "" : i.label = i.id); + const g = !T[i.id]; + if (g ? T[i.id] = i : (i.type !== "na" && (T[i.id].type = i.type), i.label !== i.id && (T[i.id].label = i.label)), i.children && fe(i.children, i), i.type === "space") { + const o = i.width || 1; + for (let p = 0; p < o; p++) { + const f = Ie(i); + f.id = f.id + "-" + p, T[f.id] = f, a.push(f); + } + } else + g && a.push(i); + } + } + c.children = a; +}; +let re = [], U = { id: "root", type: "composite", children: [], columns: -1 }; +const je = () => { + L.debug("Clear called"), ye(), U = { id: "root", type: "composite", children: [], columns: -1 }, T = { root: U }, re = [], j = {}, ie = [], V = {}; +}; +function Ue(e) { + switch (L.debug("typeStr2Type", e), e) { + case "[]": + return "square"; + case "()": + return L.debug("we have a round"), "round"; + case "(())": + return "circle"; + case ">]": + return "rect_left_inv_arrow"; + case "{}": + return "diamond"; + case "{{}}": + return "hexagon"; + case "([])": + return "stadium"; + case "[[]]": + return "subroutine"; + case "[()]": + return "cylinder"; + case "((()))": + return "doublecircle"; + case "[//]": + return "lean_right"; + case "[\\\\]": + return "lean_left"; + case "[/\\]": + return "trapezoid"; + case "[\\/]": + return "inv_trapezoid"; + case "<[]>": + return "block_arrow"; + default: + return "na"; + } +} +function Xe(e) { + switch (L.debug("typeStr2Type", e), e) { + case "==": + return "thick"; + default: + return "normal"; + } +} +function Ge(e) { + switch (e.trim()) { + case "--x": + return "arrow_cross"; + case "--o": + return "arrow_circle"; + default: + return "arrow_point"; + } +} +let le = 0; +const He = () => (le++, "id-" + Math.random().toString(36).substr(2, 12) + "-" + le), qe = (e) => { + U.children = e, fe(e, U), re = U.children; +}, Ze = (e) => { + const c = T[e]; + return c ? c.columns ? c.columns : c.children ? c.children.length : -1 : -1; +}, Je = () => [...Object.values(T)], Qe = () => re || [], $e = () => ie, et = (e) => T[e], tt = (e) => { + T[e.id] = e; +}, st = () => console, it = function() { + return j; +}, rt = { + getConfig: () => se().block, + typeStr2Type: Ue, + edgeTypeStr2Type: Xe, + edgeStrToEdgeData: Ge, + getLogger: st, + getBlocksFlat: Je, + getBlocks: Qe, + getEdges: $e, + setHierarchy: qe, + getBlock: et, + setBlock: tt, + getColumns: Ze, + getClasses: it, + clear: je, + generateId: He +}, nt = rt, q = (e, c) => { + const u = Oe, a = u(e, "r"), i = u(e, "g"), g = u(e, "b"); + return we(a, i, g, c); +}, at = (e) => `.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor || e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span,p { + color: ${e.titleColor}; + } + + + + .label text,span,p { + fill: ${e.nodeTextColor || e.textColor}; + color: ${e.nodeTextColor || e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${q(e.edgeLabelBackground, 0.5)}; + // background-color: + } + + .node .cluster { + // fill: ${q(e.mainBkg, 0.5)}; + fill: ${q(e.clusterBkg, 0.5)}; + stroke: ${q(e.clusterBorder, 0.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span,p { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } +`, ot = at; +function Se(e, c, u = !1) { + var z, I, w; + const a = e; + let i = "default"; + (((z = a == null ? void 0 : a.classes) == null ? void 0 : z.length) || 0) > 0 && (i = ((a == null ? void 0 : a.classes) || []).join(" ")), i = i + " flowchart-label"; + let g = 0, o = "", p; + switch (a.type) { + case "round": + g = 5, o = "rect"; + break; + case "composite": + g = 0, o = "composite", p = 0; + break; + case "square": + o = "rect"; + break; + case "diamond": + o = "question"; + break; + case "hexagon": + o = "hexagon"; + break; + case "block_arrow": + o = "block_arrow"; + break; + case "odd": + o = "rect_left_inv_arrow"; + break; + case "lean_right": + o = "lean_right"; + break; + case "lean_left": + o = "lean_left"; + break; + case "trapezoid": + o = "trapezoid"; + break; + case "inv_trapezoid": + o = "inv_trapezoid"; + break; + case "rect_left_inv_arrow": + o = "rect_left_inv_arrow"; + break; + case "circle": + o = "circle"; + break; + case "ellipse": + o = "ellipse"; + break; + case "stadium": + o = "stadium"; + break; + case "subroutine": + o = "subroutine"; + break; + case "cylinder": + o = "cylinder"; + break; + case "group": + o = "rect"; + break; + case "doublecircle": + o = "doublecircle"; + break; + default: + o = "rect"; + } + const f = De((a == null ? void 0 : a.styles) || []), m = a.label, S = a.size || { width: 0, height: 0, x: 0, y: 0 }; + return { + labelStyle: f.labelStyle, + shape: o, + labelText: m, + rx: g, + ry: g, + class: i, + style: f.style, + id: a.id, + directions: a.directions, + width: S.width, + height: S.height, + x: S.x, + y: S.y, + positioned: u, + intersect: void 0, + type: a.type, + padding: p ?? (((w = (I = se()) == null ? void 0 : I.block) == null ? void 0 : w.padding) || 0) + }; +} +async function ct(e, c, u) { + const a = Se(c, u, !1); + if (a.type === "group") + return; + const i = await de(e, a), g = i.node().getBBox(), o = u.getBlock(a.id); + o.size = { width: g.width, height: g.height, x: 0, y: 0, node: i }, u.setBlock(o), i.remove(); +} +async function lt(e, c, u) { + const a = Se(c, u, !0); + u.getBlock(a.id).type !== "space" && (await de(e, a), c.intersect = a == null ? void 0 : a.intersect, Ae(a)); +} +async function ne(e, c, u, a) { + for (const i of c) + await a(e, i, u), i.children && await ne(e, i.children, u, a); +} +async function ht(e, c, u) { + await ne(e, c, u, ct); +} +async function ut(e, c, u) { + await ne(e, c, u, lt); +} +async function gt(e, c, u, a, i) { + const g = new ve({ + multigraph: !0, + compound: !0 + }); + g.setGraph({ + rankdir: "TB", + nodesep: 10, + ranksep: 10, + marginx: 8, + marginy: 8 + }); + for (const o of u) + o.size && g.setNode(o.id, { + width: o.size.width, + height: o.size.height, + intersect: o.intersect + }); + for (const o of c) + if (o.start && o.end) { + const p = a.getBlock(o.start), f = a.getBlock(o.end); + if (p != null && p.size && (f != null && f.size)) { + const m = p.size, S = f.size, y = [ + { x: m.x, y: m.y }, + { x: m.x + (S.x - m.x) / 2, y: m.y + (S.y - m.y) / 2 }, + { x: S.x, y: S.y } + ]; + await Te( + e, + { v: o.start, w: o.end, name: o.id }, + { + ...o, + arrowTypeEnd: o.arrowTypeEnd, + arrowTypeStart: o.arrowTypeStart, + points: y, + classes: "edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1" + }, + void 0, + "block", + g, + i + ), o.label && (await ze(e, { + ...o, + label: o.label, + labelStyle: "stroke: #333; stroke-width: 1.5px;fill:none;", + arrowTypeEnd: o.arrowTypeEnd, + arrowTypeStart: o.arrowTypeStart, + points: y, + classes: "edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1" + }), await Ce( + { ...o, x: y[1].x, y: y[1].y }, + { + originalPath: y + } + )); + } + } +} +var he, ue; +const b = ((ue = (he = ge()) == null ? void 0 : he.block) == null ? void 0 : ue.padding) || 8; +function dt(e, c) { + if (e === 0 || !Number.isInteger(e)) + throw new Error("Columns must be an integer !== 0."); + if (c < 0 || !Number.isInteger(c)) + throw new Error("Position must be a non-negative integer." + c); + if (e < 0) + return { px: c, py: 0 }; + if (e === 1) + return { px: 0, py: c }; + const u = c % e, a = Math.floor(c / e); + return { px: u, py: a }; +} +const pt = (e) => { + let c = 0, u = 0; + for (const a of e.children) { + const { width: i, height: g, x: o, y: p } = a.size || { width: 0, height: 0, x: 0, y: 0 }; + L.debug( + "getMaxChildSize abc95 child:", + a.id, + "width:", + i, + "height:", + g, + "x:", + o, + "y:", + p, + a.type + ), a.type !== "space" && (i > c && (c = i / (e.widthInColumns || 1)), g > u && (u = g)); + } + return { width: c, height: u }; +}; +function te(e, c, u = 0, a = 0) { + var o, p, f, m, S, y, z, I, w, C, E; + L.debug( + "setBlockSizes abc95 (start)", + e.id, + (o = e == null ? void 0 : e.size) == null ? void 0 : o.x, + "block width =", + e == null ? void 0 : e.size, + "sieblingWidth", + u + ), (p = e == null ? void 0 : e.size) != null && p.width || (e.size = { + width: u, + height: a, + x: 0, + y: 0 + }); + let i = 0, g = 0; + if (((f = e.children) == null ? void 0 : f.length) > 0) { + for (const d of e.children) + te(d, c); + const v = pt(e); + i = v.width, g = v.height, L.debug("setBlockSizes abc95 maxWidth of", e.id, ":s children is ", i, g); + for (const d of e.children) + d.size && (L.debug( + `abc95 Setting size of children of ${e.id} id=${d.id} ${i} ${g} ${d.size}` + ), d.size.width = i * (d.widthInColumns || 1) + b * ((d.widthInColumns || 1) - 1), d.size.height = g, d.size.x = 0, d.size.y = 0, L.debug( + `abc95 updating size of ${e.id} children child:${d.id} maxWidth:${i} maxHeight:${g}` + )); + for (const d of e.children) + te(d, c, i, g); + const N = e.columns || -1; + let D = 0; + for (const d of e.children) + D += d.widthInColumns || 1; + let l = e.children.length; + N > 0 && N < D && (l = N), e.widthInColumns; + const s = Math.ceil(D / l); + let r = l * (i + b) + b, h = s * (g + b) + b; + if (r < u) { + L.debug( + `Detected to small siebling: abc95 ${e.id} sieblingWidth ${u} sieblingHeight ${a} width ${r}` + ), r = u, h = a; + const d = (u - l * b - b) / l, t = (a - s * b - b) / s; + L.debug("Size indata abc88", e.id, "childWidth", d, "maxWidth", i), L.debug("Size indata abc88", e.id, "childHeight", t, "maxHeight", g), L.debug("Size indata abc88 xSize", l, "padding", b); + for (const x of e.children) + x.size && (x.size.width = d, x.size.height = t, x.size.x = 0, x.size.y = 0); + } + if (L.debug( + `abc95 (finale calc) ${e.id} xSize ${l} ySize ${s} columns ${N}${e.children.length} width=${Math.max(r, ((m = e.size) == null ? void 0 : m.width) || 0)}` + ), r < (((S = e == null ? void 0 : e.size) == null ? void 0 : S.width) || 0)) { + r = ((y = e == null ? void 0 : e.size) == null ? void 0 : y.width) || 0; + const d = N > 0 ? Math.min(e.children.length, N) : e.children.length; + if (d > 0) { + const t = (r - d * b - b) / d; + L.debug("abc95 (growing to fit) width", e.id, r, (z = e.size) == null ? void 0 : z.width, t); + for (const x of e.children) + x.size && (x.size.width = t); + } + } + e.size = { + width: r, + height: h, + x: 0, + y: 0 + }; + } + L.debug( + "setBlockSizes abc94 (done)", + e.id, + (I = e == null ? void 0 : e.size) == null ? void 0 : I.x, + (w = e == null ? void 0 : e.size) == null ? void 0 : w.width, + (C = e == null ? void 0 : e.size) == null ? void 0 : C.y, + (E = e == null ? void 0 : e.size) == null ? void 0 : E.height + ); +} +function Le(e, c) { + var a, i, g, o, p, f, m, S, y, z, I, w, C, E, v, N, D; + L.debug( + `abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${(a = e == null ? void 0 : e.size) == null ? void 0 : a.x} y: ${(i = e == null ? void 0 : e.size) == null ? void 0 : i.y} width: ${(g = e == null ? void 0 : e.size) == null ? void 0 : g.width}` + ); + const u = e.columns || -1; + if (L.debug("layoutBlocks columns abc95", e.id, "=>", u, e), e.children && // find max width of children + e.children.length > 0) { + const l = ((p = (o = e == null ? void 0 : e.children[0]) == null ? void 0 : o.size) == null ? void 0 : p.width) || 0, s = e.children.length * l + (e.children.length - 1) * b; + L.debug("widthOfChildren 88", s, "posX"); + let r = 0; + L.debug("abc91 block?.size?.x", e.id, (f = e == null ? void 0 : e.size) == null ? void 0 : f.x); + let h = (m = e == null ? void 0 : e.size) != null && m.x ? ((S = e == null ? void 0 : e.size) == null ? void 0 : S.x) + (-((y = e == null ? void 0 : e.size) == null ? void 0 : y.width) / 2 || 0) : -b, d = 0; + for (const t of e.children) { + const x = e; + if (!t.size) + continue; + const { width: n, height: B } = t.size, { px: Y, py: F } = dt(u, r); + if (F != d && (d = F, h = (z = e == null ? void 0 : e.size) != null && z.x ? ((I = e == null ? void 0 : e.size) == null ? void 0 : I.x) + (-((w = e == null ? void 0 : e.size) == null ? void 0 : w.width) / 2 || 0) : -b, L.debug("New row in layout for block", e.id, " and child ", t.id, d)), L.debug( + `abc89 layout blocks (child) id: ${t.id} Pos: ${r} (px, py) ${Y},${F} (${(C = x == null ? void 0 : x.size) == null ? void 0 : C.x},${(E = x == null ? void 0 : x.size) == null ? void 0 : E.y}) parent: ${x.id} width: ${n}${b}` + ), x.size) { + const R = n / 2; + t.size.x = h + b + R, L.debug( + `abc91 layout blocks (calc) px, pyid:${t.id} startingPos=X${h} new startingPosX${t.size.x} ${R} padding=${b} width=${n} halfWidth=${R} => x:${t.size.x} y:${t.size.y} ${t.widthInColumns} (width * (child?.w || 1)) / 2 ${n * ((t == null ? void 0 : t.widthInColumns) || 1) / 2}` + ), h = t.size.x + R, t.size.y = x.size.y - x.size.height / 2 + F * (B + b) + B / 2 + b, L.debug( + `abc88 layout blocks (calc) px, pyid:${t.id}startingPosX${h}${b}${R}=>x:${t.size.x}y:${t.size.y}${t.widthInColumns}(width * (child?.w || 1)) / 2${n * ((t == null ? void 0 : t.widthInColumns) || 1) / 2}` + ); + } + t.children && Le(t), r += (t == null ? void 0 : t.widthInColumns) || 1, L.debug("abc88 columnsPos", t, r); + } + } + L.debug( + `layout blocks (<==layoutBlocks) ${e.id} x: ${(v = e == null ? void 0 : e.size) == null ? void 0 : v.x} y: ${(N = e == null ? void 0 : e.size) == null ? void 0 : N.y} width: ${(D = e == null ? void 0 : e.size) == null ? void 0 : D.width}` + ); +} +function xe(e, { minX: c, minY: u, maxX: a, maxY: i } = { minX: 0, minY: 0, maxX: 0, maxY: 0 }) { + if (e.size && e.id !== "root") { + const { x: g, y: o, width: p, height: f } = e.size; + g - p / 2 < c && (c = g - p / 2), o - f / 2 < u && (u = o - f / 2), g + p / 2 > a && (a = g + p / 2), o + f / 2 > i && (i = o + f / 2); + } + if (e.children) + for (const g of e.children) + ({ minX: c, minY: u, maxX: a, maxY: i } = xe(g, { minX: c, minY: u, maxX: a, maxY: i })); + return { minX: c, minY: u, maxX: a, maxY: i }; +} +function ft(e) { + const c = e.getBlock("root"); + if (!c) + return; + te(c, e, 0, 0), Le(c), L.debug("getBlocks", JSON.stringify(c, null, 2)); + const { minX: u, minY: a, maxX: i, maxY: g } = xe(c), o = g - a, p = i - u; + return { x: u, y: a, width: p, height: o }; +} +const St = function(e, c) { + return c.db.getClasses(); +}, Lt = async function(e, c, u, a) { + const { securityLevel: i, block: g } = se(), o = a.db; + let p; + i === "sandbox" && (p = H("#i" + c)); + const f = i === "sandbox" ? H(p.nodes()[0].contentDocument.body) : H("body"), m = i === "sandbox" ? f.select(`[id="${c}"]`) : H(`[id="${c}"]`); + Re(m, ["point", "circle", "cross"], a.type, c); + const y = o.getBlocks(), z = o.getBlocksFlat(), I = o.getEdges(), w = m.insert("g").attr("class", "block"); + await ht(w, y, o); + const C = ft(o); + if (await ut(w, y, o), await gt(w, I, z, o, c), C) { + const E = C, v = Math.max(1, Math.round(0.125 * (E.width / E.height))), N = E.height + v + 10, D = E.width + 10, { useMaxWidth: l } = g; + Ne(m, N, D, !!l), L.debug("Here Bounds", C, E), m.attr( + "viewBox", + `${E.x - 5} ${E.y - 5} ${E.width + 10} ${E.height + 10}` + ); + } + Be(ke); +}, xt = { + draw: Lt, + getClasses: St +}, Ct = { + parser: Pe, + db: nt, + renderer: xt, + styles: ot +}; +export { + Ct as diagram +}; diff --git a/assets/lib/mermaid/blockDiagram-9f4a6865.js b/assets/lib/mermaid/blockDiagram-9f4a6865.js new file mode 100644 index 000000000..beb40834f --- /dev/null +++ b/assets/lib/mermaid/blockDiagram-9f4a6865.js @@ -0,0 +1,1822 @@ +var _a, _b; +import { c as getConfig, F as getConfig$1, l as log, v as clear$1, e as common, k as getStylesFromArray, i as configureSvgSize } from "./mermaid-6dc72991.js"; +import clone from "lodash-es/clone.js"; +import * as khroma from "khroma"; +import { h as insertEdge, f as insertEdgeLabel, j as positionEdgeLabel, e as insertNode, p as positionNode, a as insertMarkers } from "./edges-066a5561.js"; +import * as graphlib from "dagre-d3-es/src/graphlib/index.js"; +import { select, scaleOrdinal, schemeTableau10 } from "d3"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +import "./createText-ca0c5216.js"; +import "mdast-util-from-markdown"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 7], $V1 = [1, 13], $V2 = [1, 14], $V3 = [1, 15], $V4 = [1, 19], $V5 = [1, 16], $V6 = [1, 17], $V7 = [1, 18], $V8 = [8, 30], $V9 = [8, 21, 28, 29, 30, 31, 32, 40, 44, 47], $Va = [1, 23], $Vb = [1, 24], $Vc = [8, 15, 16, 21, 28, 29, 30, 31, 32, 40, 44, 47], $Vd = [8, 15, 16, 21, 27, 28, 29, 30, 31, 32, 40, 44, 47], $Ve = [1, 49]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "spaceLines": 3, "SPACELINE": 4, "NL": 5, "separator": 6, "SPACE": 7, "EOF": 8, "start": 9, "BLOCK_DIAGRAM_KEY": 10, "document": 11, "stop": 12, "statement": 13, "link": 14, "LINK": 15, "START_LINK": 16, "LINK_LABEL": 17, "STR": 18, "nodeStatement": 19, "columnsStatement": 20, "SPACE_BLOCK": 21, "blockStatement": 22, "classDefStatement": 23, "cssClassStatement": 24, "styleStatement": 25, "node": 26, "SIZE": 27, "COLUMNS": 28, "id-block": 29, "end": 30, "block": 31, "NODE_ID": 32, "nodeShapeNLabel": 33, "dirList": 34, "DIR": 35, "NODE_DSTART": 36, "NODE_DEND": 37, "BLOCK_ARROW_START": 38, "BLOCK_ARROW_END": 39, "classDef": 40, "CLASSDEF_ID": 41, "CLASSDEF_STYLEOPTS": 42, "DEFAULT": 43, "class": 44, "CLASSENTITY_IDS": 45, "STYLECLASS": 46, "style": 47, "STYLE_ENTITY_IDS": 48, "STYLE_DEFINITION_DATA": 49, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "SPACELINE", 5: "NL", 7: "SPACE", 8: "EOF", 10: "BLOCK_DIAGRAM_KEY", 15: "LINK", 16: "START_LINK", 17: "LINK_LABEL", 18: "STR", 21: "SPACE_BLOCK", 27: "SIZE", 28: "COLUMNS", 29: "id-block", 30: "end", 31: "block", 32: "NODE_ID", 35: "DIR", 36: "NODE_DSTART", 37: "NODE_DEND", 38: "BLOCK_ARROW_START", 39: "BLOCK_ARROW_END", 40: "classDef", 41: "CLASSDEF_ID", 42: "CLASSDEF_STYLEOPTS", 43: "DEFAULT", 44: "class", 45: "CLASSENTITY_IDS", 46: "STYLECLASS", 47: "style", 48: "STYLE_ENTITY_IDS", 49: "STYLE_DEFINITION_DATA" }, + productions_: [0, [3, 1], [3, 2], [3, 2], [6, 1], [6, 1], [6, 1], [9, 3], [12, 1], [12, 1], [12, 2], [12, 2], [11, 1], [11, 2], [14, 1], [14, 4], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [19, 3], [19, 2], [19, 1], [20, 1], [22, 4], [22, 3], [26, 1], [26, 2], [34, 1], [34, 2], [33, 3], [33, 4], [23, 3], [23, 3], [24, 3], [25, 3]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 4: + yy.getLogger().debug("Rule: separator (NL) "); + break; + case 5: + yy.getLogger().debug("Rule: separator (Space) "); + break; + case 6: + yy.getLogger().debug("Rule: separator (EOF) "); + break; + case 7: + yy.getLogger().debug("Rule: hierarchy: ", $$[$0 - 1]); + yy.setHierarchy($$[$0 - 1]); + break; + case 8: + yy.getLogger().debug("Stop NL "); + break; + case 9: + yy.getLogger().debug("Stop EOF "); + break; + case 10: + yy.getLogger().debug("Stop NL2 "); + break; + case 11: + yy.getLogger().debug("Stop EOF2 "); + break; + case 12: + yy.getLogger().debug("Rule: statement: ", $$[$0]); + typeof $$[$0].length === "number" ? this.$ = $$[$0] : this.$ = [$$[$0]]; + break; + case 13: + yy.getLogger().debug("Rule: statement #2: ", $$[$0 - 1]); + this.$ = [$$[$0 - 1]].concat($$[$0]); + break; + case 14: + yy.getLogger().debug("Rule: link: ", $$[$0], yytext); + this.$ = { edgeTypeStr: $$[$0], label: "" }; + break; + case 15: + yy.getLogger().debug("Rule: LABEL link: ", $$[$0 - 3], $$[$0 - 1], $$[$0]); + this.$ = { edgeTypeStr: $$[$0], label: $$[$0 - 1] }; + break; + case 18: + const num = parseInt($$[$0]); + const spaceId = yy.generateId(); + this.$ = { id: spaceId, type: "space", label: "", width: num, children: [] }; + break; + case 23: + yy.getLogger().debug("Rule: (nodeStatement link node) ", $$[$0 - 2], $$[$0 - 1], $$[$0], " typestr: ", $$[$0 - 1].edgeTypeStr); + const edgeData = yy.edgeStrToEdgeData($$[$0 - 1].edgeTypeStr); + this.$ = [ + { id: $$[$0 - 2].id, label: $$[$0 - 2].label, type: $$[$0 - 2].type, directions: $$[$0 - 2].directions }, + { id: $$[$0 - 2].id + "-" + $$[$0].id, start: $$[$0 - 2].id, end: $$[$0].id, label: $$[$0 - 1].label, type: "edge", directions: $$[$0].directions, arrowTypeEnd: edgeData, arrowTypeStart: "arrow_open" }, + { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions } + ]; + break; + case 24: + yy.getLogger().debug("Rule: nodeStatement (abc88 node size) ", $$[$0 - 1], $$[$0]); + this.$ = { id: $$[$0 - 1].id, label: $$[$0 - 1].label, type: yy.typeStr2Type($$[$0 - 1].typeStr), directions: $$[$0 - 1].directions, widthInColumns: parseInt($$[$0], 10) }; + break; + case 25: + yy.getLogger().debug("Rule: nodeStatement (node) ", $$[$0]); + this.$ = { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions, widthInColumns: 1 }; + break; + case 26: + yy.getLogger().debug("APA123", this ? this : "na"); + yy.getLogger().debug("COLUMNS: ", $$[$0]); + this.$ = { type: "column-setting", columns: $$[$0] === "auto" ? -1 : parseInt($$[$0]) }; + break; + case 27: + yy.getLogger().debug("Rule: id-block statement : ", $$[$0 - 2], $$[$0 - 1]); + yy.generateId(); + this.$ = { ...$$[$0 - 2], type: "composite", children: $$[$0 - 1] }; + break; + case 28: + yy.getLogger().debug("Rule: blockStatement : ", $$[$0 - 2], $$[$0 - 1], $$[$0]); + const id = yy.generateId(); + this.$ = { id, type: "composite", label: "", children: $$[$0 - 1] }; + break; + case 29: + yy.getLogger().debug("Rule: node (NODE_ID separator): ", $$[$0]); + this.$ = { id: $$[$0] }; + break; + case 30: + yy.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ", $$[$0 - 1], $$[$0]); + this.$ = { id: $$[$0 - 1], label: $$[$0].label, typeStr: $$[$0].typeStr, directions: $$[$0].directions }; + break; + case 31: + yy.getLogger().debug("Rule: dirList: ", $$[$0]); + this.$ = [$$[$0]]; + break; + case 32: + yy.getLogger().debug("Rule: dirList: ", $$[$0 - 1], $$[$0]); + this.$ = [$$[$0 - 1]].concat($$[$0]); + break; + case 33: + yy.getLogger().debug("Rule: nodeShapeNLabel: ", $$[$0 - 2], $$[$0 - 1], $$[$0]); + this.$ = { typeStr: $$[$0 - 2] + $$[$0], label: $$[$0 - 1] }; + break; + case 34: + yy.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ", $$[$0 - 3], $$[$0 - 2], " #3:", $$[$0 - 1], $$[$0]); + this.$ = { typeStr: $$[$0 - 3] + $$[$0], label: $$[$0 - 2], directions: $$[$0 - 1] }; + break; + case 35: + case 36: + this.$ = { type: "classDef", id: $$[$0 - 1].trim(), css: $$[$0].trim() }; + break; + case 37: + this.$ = { type: "applyClass", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() }; + break; + case 38: + this.$ = { type: "applyStyles", id: $$[$0 - 1].trim(), stylesStr: $$[$0].trim() }; + break; + } + }, + table: [{ 9: 1, 10: [1, 2] }, { 1: [3] }, { 11: 3, 13: 4, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 8: [1, 20] }, o($V8, [2, 12], { 13: 4, 19: 5, 20: 6, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 11: 21, 21: $V0, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }), o($V9, [2, 16], { 14: 22, 15: $Va, 16: $Vb }), o($V9, [2, 17]), o($V9, [2, 18]), o($V9, [2, 19]), o($V9, [2, 20]), o($V9, [2, 21]), o($V9, [2, 22]), o($Vc, [2, 25], { 27: [1, 25] }), o($V9, [2, 26]), { 19: 26, 26: 12, 32: $V4 }, { 11: 27, 13: 4, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 41: [1, 28], 43: [1, 29] }, { 45: [1, 30] }, { 48: [1, 31] }, o($Vd, [2, 29], { 33: 32, 36: [1, 33], 38: [1, 34] }), { 1: [2, 7] }, o($V8, [2, 13]), { 26: 35, 32: $V4 }, { 32: [2, 14] }, { 17: [1, 36] }, o($Vc, [2, 24]), { 11: 37, 13: 4, 14: 22, 15: $Va, 16: $Vb, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 30: [1, 38] }, { 42: [1, 39] }, { 42: [1, 40] }, { 46: [1, 41] }, { 49: [1, 42] }, o($Vd, [2, 30]), { 18: [1, 43] }, { 18: [1, 44] }, o($Vc, [2, 23]), { 18: [1, 45] }, { 30: [1, 46] }, o($V9, [2, 28]), o($V9, [2, 35]), o($V9, [2, 36]), o($V9, [2, 37]), o($V9, [2, 38]), { 37: [1, 47] }, { 34: 48, 35: $Ve }, { 15: [1, 50] }, o($V9, [2, 27]), o($Vd, [2, 33]), { 39: [1, 51] }, { 34: 52, 35: $Ve, 39: [2, 31] }, { 32: [2, 15] }, o($Vd, [2, 34]), { 39: [2, 32] }], + defaultActions: { 20: [2, 7], 23: [2, 14], 50: [2, 15], 52: [2, 32] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: {}, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + return 10; + case 1: + yy.getLogger().debug("Found space-block"); + return 31; + case 2: + yy.getLogger().debug("Found nl-block"); + return 31; + case 3: + yy.getLogger().debug("Found space-block"); + return 29; + case 4: + yy.getLogger().debug(".", yy_.yytext); + break; + case 5: + yy.getLogger().debug("_", yy_.yytext); + break; + case 6: + return 5; + case 7: + yy_.yytext = -1; + return 28; + case 8: + yy_.yytext = yy_.yytext.replace(/columns\s+/, ""); + yy.getLogger().debug("COLUMNS (LEX)", yy_.yytext); + return 28; + case 9: + this.pushState("md_string"); + break; + case 10: + return "MD_STR"; + case 11: + this.popState(); + break; + case 12: + this.pushState("string"); + break; + case 13: + yy.getLogger().debug("LEX: POPPING STR:", yy_.yytext); + this.popState(); + break; + case 14: + yy.getLogger().debug("LEX: STR end:", yy_.yytext); + return "STR"; + case 15: + yy_.yytext = yy_.yytext.replace(/space\:/, ""); + yy.getLogger().debug("SPACE NUM (LEX)", yy_.yytext); + return 21; + case 16: + yy_.yytext = "1"; + yy.getLogger().debug("COLUMNS (LEX)", yy_.yytext); + return 21; + case 17: + return 43; + case 18: + return "LINKSTYLE"; + case 19: + return "INTERPOLATE"; + case 20: + this.pushState("CLASSDEF"); + return 40; + case 21: + this.popState(); + this.pushState("CLASSDEFID"); + return "DEFAULT_CLASSDEF_ID"; + case 22: + this.popState(); + this.pushState("CLASSDEFID"); + return 41; + case 23: + this.popState(); + return 42; + case 24: + this.pushState("CLASS"); + return 44; + case 25: + this.popState(); + this.pushState("CLASS_STYLE"); + return 45; + case 26: + this.popState(); + return 46; + case 27: + this.pushState("STYLE_STMNT"); + return 47; + case 28: + this.popState(); + this.pushState("STYLE_DEFINITION"); + return 48; + case 29: + this.popState(); + return 49; + case 30: + this.pushState("acc_title"); + return "acc_title"; + case 31: + this.popState(); + return "acc_title_value"; + case 32: + this.pushState("acc_descr"); + return "acc_descr"; + case 33: + this.popState(); + return "acc_descr_value"; + case 34: + this.pushState("acc_descr_multiline"); + break; + case 35: + this.popState(); + break; + case 36: + return "acc_descr_multiline_value"; + case 37: + return 30; + case 38: + this.popState(); + yy.getLogger().debug("Lex: (("); + return "NODE_DEND"; + case 39: + this.popState(); + yy.getLogger().debug("Lex: (("); + return "NODE_DEND"; + case 40: + this.popState(); + yy.getLogger().debug("Lex: ))"); + return "NODE_DEND"; + case 41: + this.popState(); + yy.getLogger().debug("Lex: (("); + return "NODE_DEND"; + case 42: + this.popState(); + yy.getLogger().debug("Lex: (("); + return "NODE_DEND"; + case 43: + this.popState(); + yy.getLogger().debug("Lex: (-"); + return "NODE_DEND"; + case 44: + this.popState(); + yy.getLogger().debug("Lex: -)"); + return "NODE_DEND"; + case 45: + this.popState(); + yy.getLogger().debug("Lex: (("); + return "NODE_DEND"; + case 46: + this.popState(); + yy.getLogger().debug("Lex: ]]"); + return "NODE_DEND"; + case 47: + this.popState(); + yy.getLogger().debug("Lex: ("); + return "NODE_DEND"; + case 48: + this.popState(); + yy.getLogger().debug("Lex: ])"); + return "NODE_DEND"; + case 49: + this.popState(); + yy.getLogger().debug("Lex: /]"); + return "NODE_DEND"; + case 50: + this.popState(); + yy.getLogger().debug("Lex: /]"); + return "NODE_DEND"; + case 51: + this.popState(); + yy.getLogger().debug("Lex: )]"); + return "NODE_DEND"; + case 52: + this.popState(); + yy.getLogger().debug("Lex: )"); + return "NODE_DEND"; + case 53: + this.popState(); + yy.getLogger().debug("Lex: ]>"); + return "NODE_DEND"; + case 54: + this.popState(); + yy.getLogger().debug("Lex: ]"); + return "NODE_DEND"; + case 55: + yy.getLogger().debug("Lexa: -)"); + this.pushState("NODE"); + return 36; + case 56: + yy.getLogger().debug("Lexa: (-"); + this.pushState("NODE"); + return 36; + case 57: + yy.getLogger().debug("Lexa: ))"); + this.pushState("NODE"); + return 36; + case 58: + yy.getLogger().debug("Lexa: )"); + this.pushState("NODE"); + return 36; + case 59: + yy.getLogger().debug("Lex: ((("); + this.pushState("NODE"); + return 36; + case 60: + yy.getLogger().debug("Lexa: )"); + this.pushState("NODE"); + return 36; + case 61: + yy.getLogger().debug("Lexa: )"); + this.pushState("NODE"); + return 36; + case 62: + yy.getLogger().debug("Lexa: )"); + this.pushState("NODE"); + return 36; + case 63: + yy.getLogger().debug("Lexc: >"); + this.pushState("NODE"); + return 36; + case 64: + yy.getLogger().debug("Lexa: (["); + this.pushState("NODE"); + return 36; + case 65: + yy.getLogger().debug("Lexa: )"); + this.pushState("NODE"); + return 36; + case 66: + this.pushState("NODE"); + return 36; + case 67: + this.pushState("NODE"); + return 36; + case 68: + this.pushState("NODE"); + return 36; + case 69: + this.pushState("NODE"); + return 36; + case 70: + this.pushState("NODE"); + return 36; + case 71: + this.pushState("NODE"); + return 36; + case 72: + this.pushState("NODE"); + return 36; + case 73: + yy.getLogger().debug("Lexa: ["); + this.pushState("NODE"); + return 36; + case 74: + this.pushState("BLOCK_ARROW"); + yy.getLogger().debug("LEX ARR START"); + return 38; + case 75: + yy.getLogger().debug("Lex: NODE_ID", yy_.yytext); + return 32; + case 76: + yy.getLogger().debug("Lex: EOF", yy_.yytext); + return 8; + case 77: + this.pushState("md_string"); + break; + case 78: + this.pushState("md_string"); + break; + case 79: + return "NODE_DESCR"; + case 80: + this.popState(); + break; + case 81: + yy.getLogger().debug("Lex: Starting string"); + this.pushState("string"); + break; + case 82: + yy.getLogger().debug("LEX ARR: Starting string"); + this.pushState("string"); + break; + case 83: + yy.getLogger().debug("LEX: NODE_DESCR:", yy_.yytext); + return "NODE_DESCR"; + case 84: + yy.getLogger().debug("LEX POPPING"); + this.popState(); + break; + case 85: + yy.getLogger().debug("Lex: =>BAE"); + this.pushState("ARROW_DIR"); + break; + case 86: + yy_.yytext = yy_.yytext.replace(/^,\s*/, ""); + yy.getLogger().debug("Lex (right): dir:", yy_.yytext); + return "DIR"; + case 87: + yy_.yytext = yy_.yytext.replace(/^,\s*/, ""); + yy.getLogger().debug("Lex (left):", yy_.yytext); + return "DIR"; + case 88: + yy_.yytext = yy_.yytext.replace(/^,\s*/, ""); + yy.getLogger().debug("Lex (x):", yy_.yytext); + return "DIR"; + case 89: + yy_.yytext = yy_.yytext.replace(/^,\s*/, ""); + yy.getLogger().debug("Lex (y):", yy_.yytext); + return "DIR"; + case 90: + yy_.yytext = yy_.yytext.replace(/^,\s*/, ""); + yy.getLogger().debug("Lex (up):", yy_.yytext); + return "DIR"; + case 91: + yy_.yytext = yy_.yytext.replace(/^,\s*/, ""); + yy.getLogger().debug("Lex (down):", yy_.yytext); + return "DIR"; + case 92: + yy_.yytext = "]>"; + yy.getLogger().debug("Lex (ARROW_DIR end):", yy_.yytext); + this.popState(); + this.popState(); + return "BLOCK_ARROW_END"; + case 93: + yy.getLogger().debug("Lex: LINK", "#" + yy_.yytext + "#"); + return 15; + case 94: + yy.getLogger().debug("Lex: LINK", yy_.yytext); + return 15; + case 95: + yy.getLogger().debug("Lex: LINK", yy_.yytext); + return 15; + case 96: + yy.getLogger().debug("Lex: LINK", yy_.yytext); + return 15; + case 97: + yy.getLogger().debug("Lex: START_LINK", yy_.yytext); + this.pushState("LLABEL"); + return 16; + case 98: + yy.getLogger().debug("Lex: START_LINK", yy_.yytext); + this.pushState("LLABEL"); + return 16; + case 99: + yy.getLogger().debug("Lex: START_LINK", yy_.yytext); + this.pushState("LLABEL"); + return 16; + case 100: + this.pushState("md_string"); + break; + case 101: + yy.getLogger().debug("Lex: Starting string"); + this.pushState("string"); + return "LINK_LABEL"; + case 102: + this.popState(); + yy.getLogger().debug("Lex: LINK", "#" + yy_.yytext + "#"); + return 15; + case 103: + this.popState(); + yy.getLogger().debug("Lex: LINK", yy_.yytext); + return 15; + case 104: + this.popState(); + yy.getLogger().debug("Lex: LINK", yy_.yytext); + return 15; + case 105: + yy.getLogger().debug("Lex: COLON", yy_.yytext); + yy_.yytext = yy_.yytext.slice(1); + return 27; + } + }, + rules: [/^(?:block-beta\b)/, /^(?:block\s+)/, /^(?:block\n+)/, /^(?:block:)/, /^(?:[\s]+)/, /^(?:[\n]+)/, /^(?:((\u000D\u000A)|(\u000A)))/, /^(?:columns\s+auto\b)/, /^(?:columns\s+[\d]+)/, /^(?:["][`])/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:space[:]\d+)/, /^(?:space\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\s+)/, /^(?:DEFAULT\s+)/, /^(?:\w+\s+)/, /^(?:[^\n]*)/, /^(?:class\s+)/, /^(?:(\w+)+((,\s*\w+)*))/, /^(?:[^\n]*)/, /^(?:style\s+)/, /^(?:(\w+)+((,\s*\w+)*))/, /^(?:[^\n]*)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:end\b\s*)/, /^(?:\(\(\()/, /^(?:\)\)\))/, /^(?:[\)]\))/, /^(?:\}\})/, /^(?:\})/, /^(?:\(-)/, /^(?:-\))/, /^(?:\(\()/, /^(?:\]\])/, /^(?:\()/, /^(?:\]\))/, /^(?:\\\])/, /^(?:\/\])/, /^(?:\)\])/, /^(?:[\)])/, /^(?:\]>)/, /^(?:[\]])/, /^(?:-\))/, /^(?:\(-)/, /^(?:\)\))/, /^(?:\))/, /^(?:\(\(\()/, /^(?:\(\()/, /^(?:\{\{)/, /^(?:\{)/, /^(?:>)/, /^(?:\(\[)/, /^(?:\()/, /^(?:\[\[)/, /^(?:\[\|)/, /^(?:\[\()/, /^(?:\)\)\))/, /^(?:\[\\)/, /^(?:\[\/)/, /^(?:\[\\)/, /^(?:\[)/, /^(?:<\[)/, /^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/, /^(?:$)/, /^(?:["][`])/, /^(?:["][`])/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["])/, /^(?:["])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:\]>\s*\()/, /^(?:,?\s*right\s*)/, /^(?:,?\s*left\s*)/, /^(?:,?\s*x\s*)/, /^(?:,?\s*y\s*)/, /^(?:,?\s*up\s*)/, /^(?:,?\s*down\s*)/, /^(?:\)\s*)/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?:\s*~~[\~]+\s*)/, /^(?:\s*[xo<]?--\s*)/, /^(?:\s*[xo<]?==\s*)/, /^(?:\s*[xo<]?-\.\s*)/, /^(?:["][`])/, /^(?:["])/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?::\d+)/], + conditions: { "STYLE_DEFINITION": { "rules": [29], "inclusive": false }, "STYLE_STMNT": { "rules": [28], "inclusive": false }, "CLASSDEFID": { "rules": [23], "inclusive": false }, "CLASSDEF": { "rules": [21, 22], "inclusive": false }, "CLASS_STYLE": { "rules": [26], "inclusive": false }, "CLASS": { "rules": [25], "inclusive": false }, "LLABEL": { "rules": [100, 101, 102, 103, 104], "inclusive": false }, "ARROW_DIR": { "rules": [86, 87, 88, 89, 90, 91, 92], "inclusive": false }, "BLOCK_ARROW": { "rules": [77, 82, 85], "inclusive": false }, "NODE": { "rules": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 78, 81], "inclusive": false }, "md_string": { "rules": [10, 11, 79, 80], "inclusive": false }, "space": { "rules": [], "inclusive": false }, "string": { "rules": [13, 14, 83, 84], "inclusive": false }, "acc_descr_multiline": { "rules": [35, 36], "inclusive": false }, "acc_descr": { "rules": [33], "inclusive": false }, "acc_title": { "rules": [31], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 15, 16, 17, 18, 19, 20, 24, 27, 30, 32, 34, 37, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 93, 94, 95, 96, 97, 98, 99, 105], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let blockDatabase = {}; +let edgeList = []; +let edgeCount = {}; +const COLOR_KEYWORD = "color"; +const FILL_KEYWORD = "fill"; +const BG_FILL = "bgFill"; +const STYLECLASS_SEP = ","; +const config = getConfig(); +let classes = {}; +const sanitizeText = (txt) => common.sanitizeText(txt, config); +const addStyleClass = function(id, styleAttributes = "") { + if (classes[id] === void 0) { + classes[id] = { id, styles: [], textStyles: [] }; + } + const foundClass = classes[id]; + if (styleAttributes !== void 0 && styleAttributes !== null) { + styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => { + const fixedAttrib = attrib.replace(/([^;]*);/, "$1").trim(); + if (attrib.match(COLOR_KEYWORD)) { + const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL); + const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD); + foundClass.textStyles.push(newStyle2); + } + foundClass.styles.push(fixedAttrib); + }); + } +}; +const addStyle2Node = function(id, styles = "") { + const foundBlock = blockDatabase[id]; + if (styles !== void 0 && styles !== null) { + foundBlock.styles = styles.split(STYLECLASS_SEP); + } +}; +const setCssClass = function(itemIds, cssClassName) { + itemIds.split(",").forEach(function(id) { + let foundBlock = blockDatabase[id]; + if (foundBlock === void 0) { + const trimmedId = id.trim(); + blockDatabase[trimmedId] = { id: trimmedId, type: "na", children: [] }; + foundBlock = blockDatabase[trimmedId]; + } + if (!foundBlock.classes) { + foundBlock.classes = []; + } + foundBlock.classes.push(cssClassName); + }); +}; +const populateBlockDatabase = (_blockList, parent) => { + const blockList = _blockList.flat(); + const children = []; + for (const block of blockList) { + if (block.label) { + block.label = sanitizeText(block.label); + } + if (block.type === "classDef") { + addStyleClass(block.id, block.css); + continue; + } + if (block.type === "applyClass") { + setCssClass(block.id, (block == null ? void 0 : block.styleClass) || ""); + continue; + } + if (block.type === "applyStyles") { + if (block == null ? void 0 : block.stylesStr) { + addStyle2Node(block.id, block == null ? void 0 : block.stylesStr); + } + continue; + } + if (block.type === "column-setting") { + parent.columns = block.columns || -1; + } else if (block.type === "edge") { + if (edgeCount[block.id]) { + edgeCount[block.id]++; + } else { + edgeCount[block.id] = 1; + } + block.id = edgeCount[block.id] + "-" + block.id; + edgeList.push(block); + } else { + if (!block.label) { + if (block.type === "composite") { + block.label = ""; + } else { + block.label = block.id; + } + } + const newBlock = !blockDatabase[block.id]; + if (newBlock) { + blockDatabase[block.id] = block; + } else { + if (block.type !== "na") { + blockDatabase[block.id].type = block.type; + } + if (block.label !== block.id) { + blockDatabase[block.id].label = block.label; + } + } + if (block.children) { + populateBlockDatabase(block.children, block); + } + if (block.type === "space") { + const w = block.width || 1; + for (let j = 0; j < w; j++) { + const newBlock2 = clone(block); + newBlock2.id = newBlock2.id + "-" + j; + blockDatabase[newBlock2.id] = newBlock2; + children.push(newBlock2); + } + } else if (newBlock) { + children.push(block); + } + } + } + parent.children = children; +}; +let blocks = []; +let rootBlock = { id: "root", type: "composite", children: [], columns: -1 }; +const clear = () => { + log.debug("Clear called"); + clear$1(); + rootBlock = { id: "root", type: "composite", children: [], columns: -1 }; + blockDatabase = { root: rootBlock }; + blocks = []; + classes = {}; + edgeList = []; + edgeCount = {}; +}; +function typeStr2Type(typeStr) { + log.debug("typeStr2Type", typeStr); + switch (typeStr) { + case "[]": + return "square"; + case "()": + log.debug("we have a round"); + return "round"; + case "(())": + return "circle"; + case ">]": + return "rect_left_inv_arrow"; + case "{}": + return "diamond"; + case "{{}}": + return "hexagon"; + case "([])": + return "stadium"; + case "[[]]": + return "subroutine"; + case "[()]": + return "cylinder"; + case "((()))": + return "doublecircle"; + case "[//]": + return "lean_right"; + case "[\\\\]": + return "lean_left"; + case "[/\\]": + return "trapezoid"; + case "[\\/]": + return "inv_trapezoid"; + case "<[]>": + return "block_arrow"; + default: + return "na"; + } +} +function edgeTypeStr2Type(typeStr) { + log.debug("typeStr2Type", typeStr); + switch (typeStr) { + case "==": + return "thick"; + default: + return "normal"; + } +} +function edgeStrToEdgeData(typeStr) { + switch (typeStr.trim()) { + case "--x": + return "arrow_cross"; + case "--o": + return "arrow_circle"; + default: + return "arrow_point"; + } +} +let cnt = 0; +const generateId = () => { + cnt++; + return "id-" + Math.random().toString(36).substr(2, 12) + "-" + cnt; +}; +const setHierarchy = (block) => { + rootBlock.children = block; + populateBlockDatabase(block, rootBlock); + blocks = rootBlock.children; +}; +const getColumns = (blockId) => { + const block = blockDatabase[blockId]; + if (!block) { + return -1; + } + if (block.columns) { + return block.columns; + } + if (!block.children) { + return -1; + } + return block.children.length; +}; +const getBlocksFlat = () => { + return [...Object.values(blockDatabase)]; +}; +const getBlocks = () => { + return blocks || []; +}; +const getEdges = () => { + return edgeList; +}; +const getBlock = (id) => { + return blockDatabase[id]; +}; +const setBlock = (block) => { + blockDatabase[block.id] = block; +}; +const getLogger = () => console; +const getClasses$1 = function() { + return classes; +}; +const db = { + getConfig: () => getConfig$1().block, + typeStr2Type, + edgeTypeStr2Type, + edgeStrToEdgeData, + getLogger, + getBlocksFlat, + getBlocks, + getEdges, + setHierarchy, + getBlock, + setBlock, + getColumns, + getClasses: getClasses$1, + clear, + generateId +}; +const db$1 = db; +const fade = (color, opacity) => { + const channel = khroma.channel; + const r = channel(color, "r"); + const g = channel(color, "g"); + const b = channel(color, "b"); + return khroma.rgba(r, g, b, opacity); +}; +const getStyles = (options) => `.label { + font-family: ${options.fontFamily}; + color: ${options.nodeTextColor || options.textColor}; + } + .cluster-label text { + fill: ${options.titleColor}; + } + .cluster-label span,p { + color: ${options.titleColor}; + } + + + + .label text,span,p { + fill: ${options.nodeTextColor || options.textColor}; + color: ${options.nodeTextColor || options.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${options.arrowheadColor}; + } + + .edgePath .path { + stroke: ${options.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${options.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${options.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${options.edgeLabelBackground}; + fill: ${options.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${fade(options.edgeLabelBackground, 0.5)}; + // background-color: + } + + .node .cluster { + // fill: ${fade(options.mainBkg, 0.5)}; + fill: ${fade(options.clusterBkg, 0.5)}; + stroke: ${fade(options.clusterBorder, 0.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${options.titleColor}; + } + + .cluster span,p { + color: ${options.titleColor}; + } + /* .cluster div { + color: ${options.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${options.fontFamily}; + font-size: 12px; + background: ${options.tertiaryColor}; + border: 1px solid ${options.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.textColor}; + } +`; +const flowStyles = getStyles; +function getNodeFromBlock(block, db2, positioned = false) { + var _a2, _b2, _c; + const vertex = block; + let classStr = "default"; + if ((((_a2 = vertex == null ? void 0 : vertex.classes) == null ? void 0 : _a2.length) || 0) > 0) { + classStr = ((vertex == null ? void 0 : vertex.classes) || []).join(" "); + } + classStr = classStr + " flowchart-label"; + let radius = 0; + let shape = ""; + let padding2; + switch (vertex.type) { + case "round": + radius = 5; + shape = "rect"; + break; + case "composite": + radius = 0; + shape = "composite"; + padding2 = 0; + break; + case "square": + shape = "rect"; + break; + case "diamond": + shape = "question"; + break; + case "hexagon": + shape = "hexagon"; + break; + case "block_arrow": + shape = "block_arrow"; + break; + case "odd": + shape = "rect_left_inv_arrow"; + break; + case "lean_right": + shape = "lean_right"; + break; + case "lean_left": + shape = "lean_left"; + break; + case "trapezoid": + shape = "trapezoid"; + break; + case "inv_trapezoid": + shape = "inv_trapezoid"; + break; + case "rect_left_inv_arrow": + shape = "rect_left_inv_arrow"; + break; + case "circle": + shape = "circle"; + break; + case "ellipse": + shape = "ellipse"; + break; + case "stadium": + shape = "stadium"; + break; + case "subroutine": + shape = "subroutine"; + break; + case "cylinder": + shape = "cylinder"; + break; + case "group": + shape = "rect"; + break; + case "doublecircle": + shape = "doublecircle"; + break; + default: + shape = "rect"; + } + const styles = getStylesFromArray((vertex == null ? void 0 : vertex.styles) || []); + const vertexText = vertex.label; + const bounds = vertex.size || { width: 0, height: 0, x: 0, y: 0 }; + const node = { + labelStyle: styles.labelStyle, + shape, + labelText: vertexText, + rx: radius, + ry: radius, + class: classStr, + style: styles.style, + id: vertex.id, + directions: vertex.directions, + width: bounds.width, + height: bounds.height, + x: bounds.x, + y: bounds.y, + positioned, + intersect: void 0, + type: vertex.type, + padding: padding2 ?? (((_c = (_b2 = getConfig$1()) == null ? void 0 : _b2.block) == null ? void 0 : _c.padding) || 0) + }; + return node; +} +async function calculateBlockSize(elem, block, db2) { + const node = getNodeFromBlock(block, db2, false); + if (node.type === "group") { + return; + } + const nodeEl = await insertNode(elem, node); + const boundingBox = nodeEl.node().getBBox(); + const obj = db2.getBlock(node.id); + obj.size = { width: boundingBox.width, height: boundingBox.height, x: 0, y: 0, node: nodeEl }; + db2.setBlock(obj); + nodeEl.remove(); +} +async function insertBlockPositioned(elem, block, db2) { + const node = getNodeFromBlock(block, db2, true); + const obj = db2.getBlock(node.id); + if (obj.type !== "space") { + await insertNode(elem, node); + block.intersect = node == null ? void 0 : node.intersect; + positionNode(node); + } +} +async function performOperations(elem, blocks2, db2, operation) { + for (const block of blocks2) { + await operation(elem, block, db2); + if (block.children) { + await performOperations(elem, block.children, db2, operation); + } + } +} +async function calculateBlockSizes(elem, blocks2, db2) { + await performOperations(elem, blocks2, db2, calculateBlockSize); +} +async function insertBlocks(elem, blocks2, db2) { + await performOperations(elem, blocks2, db2, insertBlockPositioned); +} +async function insertEdges(elem, edges, blocks2, db2, id) { + const g = new graphlib.Graph({ + multigraph: true, + compound: true + }); + g.setGraph({ + rankdir: "TB", + nodesep: 10, + ranksep: 10, + marginx: 8, + marginy: 8 + }); + for (const block of blocks2) { + if (block.size) { + g.setNode(block.id, { + width: block.size.width, + height: block.size.height, + intersect: block.intersect + }); + } + } + for (const edge of edges) { + if (edge.start && edge.end) { + const startBlock = db2.getBlock(edge.start); + const endBlock = db2.getBlock(edge.end); + if ((startBlock == null ? void 0 : startBlock.size) && (endBlock == null ? void 0 : endBlock.size)) { + const start = startBlock.size; + const end = endBlock.size; + const points = [ + { x: start.x, y: start.y }, + { x: start.x + (end.x - start.x) / 2, y: start.y + (end.y - start.y) / 2 }, + { x: end.x, y: end.y } + ]; + await insertEdge( + elem, + { v: edge.start, w: edge.end, name: edge.id }, + { + ...edge, + arrowTypeEnd: edge.arrowTypeEnd, + arrowTypeStart: edge.arrowTypeStart, + points, + classes: "edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1" + }, + void 0, + "block", + g, + id + ); + if (edge.label) { + await insertEdgeLabel(elem, { + ...edge, + label: edge.label, + labelStyle: "stroke: #333; stroke-width: 1.5px;fill:none;", + arrowTypeEnd: edge.arrowTypeEnd, + arrowTypeStart: edge.arrowTypeStart, + points, + classes: "edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1" + }); + await positionEdgeLabel( + { ...edge, x: points[1].x, y: points[1].y }, + { + originalPath: points + } + ); + } + } + } + } +} +const padding = ((_b = (_a = getConfig()) == null ? void 0 : _a.block) == null ? void 0 : _b.padding) || 8; +function calculateBlockPosition(columns, position) { + if (columns === 0 || !Number.isInteger(columns)) { + throw new Error("Columns must be an integer !== 0."); + } + if (position < 0 || !Number.isInteger(position)) { + throw new Error("Position must be a non-negative integer." + position); + } + if (columns < 0) { + return { px: position, py: 0 }; + } + if (columns === 1) { + return { px: 0, py: position }; + } + const px = position % columns; + const py = Math.floor(position / columns); + return { px, py }; +} +const getMaxChildSize = (block) => { + let maxWidth = 0; + let maxHeight = 0; + for (const child of block.children) { + const { width, height, x, y } = child.size || { width: 0, height: 0, x: 0, y: 0 }; + log.debug( + "getMaxChildSize abc95 child:", + child.id, + "width:", + width, + "height:", + height, + "x:", + x, + "y:", + y, + child.type + ); + if (child.type === "space") { + continue; + } + if (width > maxWidth) { + maxWidth = width / (block.widthInColumns || 1); + } + if (height > maxHeight) { + maxHeight = height; + } + } + return { width: maxWidth, height: maxHeight }; +}; +function setBlockSizes(block, db2, siblingWidth = 0, siblingHeight = 0) { + var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k; + log.debug( + "setBlockSizes abc95 (start)", + block.id, + (_a2 = block == null ? void 0 : block.size) == null ? void 0 : _a2.x, + "block width =", + block == null ? void 0 : block.size, + "sieblingWidth", + siblingWidth + ); + if (!((_b2 = block == null ? void 0 : block.size) == null ? void 0 : _b2.width)) { + block.size = { + width: siblingWidth, + height: siblingHeight, + x: 0, + y: 0 + }; + } + let maxWidth = 0; + let maxHeight = 0; + if (((_c = block.children) == null ? void 0 : _c.length) > 0) { + for (const child of block.children) { + setBlockSizes(child, db2); + } + const childSize = getMaxChildSize(block); + maxWidth = childSize.width; + maxHeight = childSize.height; + log.debug("setBlockSizes abc95 maxWidth of", block.id, ":s children is ", maxWidth, maxHeight); + for (const child of block.children) { + if (child.size) { + log.debug( + `abc95 Setting size of children of ${block.id} id=${child.id} ${maxWidth} ${maxHeight} ${child.size}` + ); + child.size.width = maxWidth * (child.widthInColumns || 1) + padding * ((child.widthInColumns || 1) - 1); + child.size.height = maxHeight; + child.size.x = 0; + child.size.y = 0; + log.debug( + `abc95 updating size of ${block.id} children child:${child.id} maxWidth:${maxWidth} maxHeight:${maxHeight}` + ); + } + } + for (const child of block.children) { + setBlockSizes(child, db2, maxWidth, maxHeight); + } + const columns = block.columns || -1; + let numItems = 0; + for (const child of block.children) { + numItems += child.widthInColumns || 1; + } + let xSize = block.children.length; + if (columns > 0 && columns < numItems) { + xSize = columns; + } + block.widthInColumns || 1; + const ySize = Math.ceil(numItems / xSize); + let width = xSize * (maxWidth + padding) + padding; + let height = ySize * (maxHeight + padding) + padding; + if (width < siblingWidth) { + log.debug( + `Detected to small siebling: abc95 ${block.id} sieblingWidth ${siblingWidth} sieblingHeight ${siblingHeight} width ${width}` + ); + width = siblingWidth; + height = siblingHeight; + const childWidth = (siblingWidth - xSize * padding - padding) / xSize; + const childHeight = (siblingHeight - ySize * padding - padding) / ySize; + log.debug("Size indata abc88", block.id, "childWidth", childWidth, "maxWidth", maxWidth); + log.debug("Size indata abc88", block.id, "childHeight", childHeight, "maxHeight", maxHeight); + log.debug("Size indata abc88 xSize", xSize, "padding", padding); + for (const child of block.children) { + if (child.size) { + child.size.width = childWidth; + child.size.height = childHeight; + child.size.x = 0; + child.size.y = 0; + } + } + } + log.debug( + `abc95 (finale calc) ${block.id} xSize ${xSize} ySize ${ySize} columns ${columns}${block.children.length} width=${Math.max(width, ((_d = block.size) == null ? void 0 : _d.width) || 0)}` + ); + if (width < (((_e = block == null ? void 0 : block.size) == null ? void 0 : _e.width) || 0)) { + width = ((_f = block == null ? void 0 : block.size) == null ? void 0 : _f.width) || 0; + const num = columns > 0 ? Math.min(block.children.length, columns) : block.children.length; + if (num > 0) { + const childWidth = (width - num * padding - padding) / num; + log.debug("abc95 (growing to fit) width", block.id, width, (_g = block.size) == null ? void 0 : _g.width, childWidth); + for (const child of block.children) { + if (child.size) { + child.size.width = childWidth; + } + } + } + } + block.size = { + width, + height, + x: 0, + y: 0 + }; + } + log.debug( + "setBlockSizes abc94 (done)", + block.id, + (_h = block == null ? void 0 : block.size) == null ? void 0 : _h.x, + (_i = block == null ? void 0 : block.size) == null ? void 0 : _i.width, + (_j = block == null ? void 0 : block.size) == null ? void 0 : _j.y, + (_k = block == null ? void 0 : block.size) == null ? void 0 : _k.height + ); +} +function layoutBlocks(block, db2) { + var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q; + log.debug( + `abc85 layout blocks (=>layoutBlocks) ${block.id} x: ${(_a2 = block == null ? void 0 : block.size) == null ? void 0 : _a2.x} y: ${(_b2 = block == null ? void 0 : block.size) == null ? void 0 : _b2.y} width: ${(_c = block == null ? void 0 : block.size) == null ? void 0 : _c.width}` + ); + const columns = block.columns || -1; + log.debug("layoutBlocks columns abc95", block.id, "=>", columns, block); + if (block.children && // find max width of children + block.children.length > 0) { + const width = ((_e = (_d = block == null ? void 0 : block.children[0]) == null ? void 0 : _d.size) == null ? void 0 : _e.width) || 0; + const widthOfChildren = block.children.length * width + (block.children.length - 1) * padding; + log.debug("widthOfChildren 88", widthOfChildren, "posX"); + let columnPos = 0; + log.debug("abc91 block?.size?.x", block.id, (_f = block == null ? void 0 : block.size) == null ? void 0 : _f.x); + let startingPosX = ((_g = block == null ? void 0 : block.size) == null ? void 0 : _g.x) ? ((_h = block == null ? void 0 : block.size) == null ? void 0 : _h.x) + (-((_i = block == null ? void 0 : block.size) == null ? void 0 : _i.width) / 2 || 0) : -padding; + let rowPos = 0; + for (const child of block.children) { + const parent = block; + if (!child.size) { + continue; + } + const { width: width2, height } = child.size; + const { px, py } = calculateBlockPosition(columns, columnPos); + if (py != rowPos) { + rowPos = py; + startingPosX = ((_j = block == null ? void 0 : block.size) == null ? void 0 : _j.x) ? ((_k = block == null ? void 0 : block.size) == null ? void 0 : _k.x) + (-((_l = block == null ? void 0 : block.size) == null ? void 0 : _l.width) / 2 || 0) : -padding; + log.debug("New row in layout for block", block.id, " and child ", child.id, rowPos); + } + log.debug( + `abc89 layout blocks (child) id: ${child.id} Pos: ${columnPos} (px, py) ${px},${py} (${(_m = parent == null ? void 0 : parent.size) == null ? void 0 : _m.x},${(_n = parent == null ? void 0 : parent.size) == null ? void 0 : _n.y}) parent: ${parent.id} width: ${width2}${padding}` + ); + if (parent.size) { + const halfWidth = width2 / 2; + child.size.x = startingPosX + padding + halfWidth; + log.debug( + `abc91 layout blocks (calc) px, pyid:${child.id} startingPos=X${startingPosX} new startingPosX${child.size.x} ${halfWidth} padding=${padding} width=${width2} halfWidth=${halfWidth} => x:${child.size.x} y:${child.size.y} ${child.widthInColumns} (width * (child?.w || 1)) / 2 ${width2 * ((child == null ? void 0 : child.widthInColumns) || 1) / 2}` + ); + startingPosX = child.size.x + halfWidth; + child.size.y = parent.size.y - parent.size.height / 2 + py * (height + padding) + height / 2 + padding; + log.debug( + `abc88 layout blocks (calc) px, pyid:${child.id}startingPosX${startingPosX}${padding}${halfWidth}=>x:${child.size.x}y:${child.size.y}${child.widthInColumns}(width * (child?.w || 1)) / 2${width2 * ((child == null ? void 0 : child.widthInColumns) || 1) / 2}` + ); + } + if (child.children) { + layoutBlocks(child); + } + columnPos += (child == null ? void 0 : child.widthInColumns) || 1; + log.debug("abc88 columnsPos", child, columnPos); + } + } + log.debug( + `layout blocks (<==layoutBlocks) ${block.id} x: ${(_o = block == null ? void 0 : block.size) == null ? void 0 : _o.x} y: ${(_p = block == null ? void 0 : block.size) == null ? void 0 : _p.y} width: ${(_q = block == null ? void 0 : block.size) == null ? void 0 : _q.width}` + ); +} +function findBounds(block, { minX, minY, maxX, maxY } = { minX: 0, minY: 0, maxX: 0, maxY: 0 }) { + if (block.size && block.id !== "root") { + const { x, y, width, height } = block.size; + if (x - width / 2 < minX) { + minX = x - width / 2; + } + if (y - height / 2 < minY) { + minY = y - height / 2; + } + if (x + width / 2 > maxX) { + maxX = x + width / 2; + } + if (y + height / 2 > maxY) { + maxY = y + height / 2; + } + } + if (block.children) { + for (const child of block.children) { + ({ minX, minY, maxX, maxY } = findBounds(child, { minX, minY, maxX, maxY })); + } + } + return { minX, minY, maxX, maxY }; +} +function layout(db2) { + const root = db2.getBlock("root"); + if (!root) { + return; + } + setBlockSizes(root, db2, 0, 0); + layoutBlocks(root); + log.debug("getBlocks", JSON.stringify(root, null, 2)); + const { minX, minY, maxX, maxY } = findBounds(root); + const height = maxY - minY; + const width = maxX - minX; + return { x: minX, y: minY, width, height }; +} +const getClasses = function(text, diagObj) { + return diagObj.db.getClasses(); +}; +const draw = async function(text, id, _version, diagObj) { + const { securityLevel, block: conf } = getConfig$1(); + const db2 = diagObj.db; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const svg = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : select(`[id="${id}"]`); + const markers = ["point", "circle", "cross"]; + insertMarkers(svg, markers, diagObj.type, id); + const bl = db2.getBlocks(); + const blArr = db2.getBlocksFlat(); + const edges = db2.getEdges(); + const nodes = svg.insert("g").attr("class", "block"); + await calculateBlockSizes(nodes, bl, db2); + const bounds = layout(db2); + await insertBlocks(nodes, bl, db2); + await insertEdges(nodes, edges, blArr, db2, id); + if (bounds) { + const bounds2 = bounds; + const magicFactor = Math.max(1, Math.round(0.125 * (bounds2.width / bounds2.height))); + const height = bounds2.height + magicFactor + 10; + const width = bounds2.width + 10; + const { useMaxWidth } = conf; + configureSvgSize(svg, height, width, !!useMaxWidth); + log.debug("Here Bounds", bounds, bounds2); + svg.attr( + "viewBox", + `${bounds2.x - 5} ${bounds2.y - 5} ${bounds2.width + 10} ${bounds2.height + 10}` + ); + } + scaleOrdinal(schemeTableau10); +}; +const renderer = { + draw, + getClasses +}; +const diagram = { + parser: parser$1, + db: db$1, + renderer, + styles: flowStyles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/blockDiagram-efe38566.js b/assets/lib/mermaid/blockDiagram-efe38566.js new file mode 100644 index 000000000..17118fa81 --- /dev/null +++ b/assets/lib/mermaid/blockDiagram-efe38566.js @@ -0,0 +1,1818 @@ +var _a, _b; +import { c as getConfig, _ as getConfig$1, l as log, E as clear$1, f as common, B as rgba, o as getStylesFromArray, j as d3select, k as configureSvgSize } from "./mermaid-dcacb631.js"; +import { c as clone } from "./clone-9ea6bfeb.js"; +import { c as channel } from "./channel-f9001828.js"; +import { h as insertEdge, f as insertEdgeLabel, j as positionEdgeLabel, e as insertNode, p as positionNode, a as insertMarkers } from "./edges-ce5cfb7c.js"; +import { G as Graph } from "./graph-fe24fab6.js"; +import { o as ordinal } from "./ordinal-475e0c0c.js"; +import { d as d3schemeTableau10 } from "./Tableau10-31042135.js"; +import "./createText-b70fe78a.js"; +import "./line-87f517ef.js"; +import "./array-b7dcf730.js"; +import "./path-39bad7e2.js"; +import "./init-cc95ec8e.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 7], $V1 = [1, 13], $V2 = [1, 14], $V3 = [1, 15], $V4 = [1, 19], $V5 = [1, 16], $V6 = [1, 17], $V7 = [1, 18], $V8 = [8, 30], $V9 = [8, 21, 28, 29, 30, 31, 32, 40, 44, 47], $Va = [1, 23], $Vb = [1, 24], $Vc = [8, 15, 16, 21, 28, 29, 30, 31, 32, 40, 44, 47], $Vd = [8, 15, 16, 21, 27, 28, 29, 30, 31, 32, 40, 44, 47], $Ve = [1, 49]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "spaceLines": 3, "SPACELINE": 4, "NL": 5, "separator": 6, "SPACE": 7, "EOF": 8, "start": 9, "BLOCK_DIAGRAM_KEY": 10, "document": 11, "stop": 12, "statement": 13, "link": 14, "LINK": 15, "START_LINK": 16, "LINK_LABEL": 17, "STR": 18, "nodeStatement": 19, "columnsStatement": 20, "SPACE_BLOCK": 21, "blockStatement": 22, "classDefStatement": 23, "cssClassStatement": 24, "styleStatement": 25, "node": 26, "SIZE": 27, "COLUMNS": 28, "id-block": 29, "end": 30, "block": 31, "NODE_ID": 32, "nodeShapeNLabel": 33, "dirList": 34, "DIR": 35, "NODE_DSTART": 36, "NODE_DEND": 37, "BLOCK_ARROW_START": 38, "BLOCK_ARROW_END": 39, "classDef": 40, "CLASSDEF_ID": 41, "CLASSDEF_STYLEOPTS": 42, "DEFAULT": 43, "class": 44, "CLASSENTITY_IDS": 45, "STYLECLASS": 46, "style": 47, "STYLE_ENTITY_IDS": 48, "STYLE_DEFINITION_DATA": 49, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "SPACELINE", 5: "NL", 7: "SPACE", 8: "EOF", 10: "BLOCK_DIAGRAM_KEY", 15: "LINK", 16: "START_LINK", 17: "LINK_LABEL", 18: "STR", 21: "SPACE_BLOCK", 27: "SIZE", 28: "COLUMNS", 29: "id-block", 30: "end", 31: "block", 32: "NODE_ID", 35: "DIR", 36: "NODE_DSTART", 37: "NODE_DEND", 38: "BLOCK_ARROW_START", 39: "BLOCK_ARROW_END", 40: "classDef", 41: "CLASSDEF_ID", 42: "CLASSDEF_STYLEOPTS", 43: "DEFAULT", 44: "class", 45: "CLASSENTITY_IDS", 46: "STYLECLASS", 47: "style", 48: "STYLE_ENTITY_IDS", 49: "STYLE_DEFINITION_DATA" }, + productions_: [0, [3, 1], [3, 2], [3, 2], [6, 1], [6, 1], [6, 1], [9, 3], [12, 1], [12, 1], [12, 2], [12, 2], [11, 1], [11, 2], [14, 1], [14, 4], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [19, 3], [19, 2], [19, 1], [20, 1], [22, 4], [22, 3], [26, 1], [26, 2], [34, 1], [34, 2], [33, 3], [33, 4], [23, 3], [23, 3], [24, 3], [25, 3]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 4: + yy.getLogger().debug("Rule: separator (NL) "); + break; + case 5: + yy.getLogger().debug("Rule: separator (Space) "); + break; + case 6: + yy.getLogger().debug("Rule: separator (EOF) "); + break; + case 7: + yy.getLogger().debug("Rule: hierarchy: ", $$[$0 - 1]); + yy.setHierarchy($$[$0 - 1]); + break; + case 8: + yy.getLogger().debug("Stop NL "); + break; + case 9: + yy.getLogger().debug("Stop EOF "); + break; + case 10: + yy.getLogger().debug("Stop NL2 "); + break; + case 11: + yy.getLogger().debug("Stop EOF2 "); + break; + case 12: + yy.getLogger().debug("Rule: statement: ", $$[$0]); + typeof $$[$0].length === "number" ? this.$ = $$[$0] : this.$ = [$$[$0]]; + break; + case 13: + yy.getLogger().debug("Rule: statement #2: ", $$[$0 - 1]); + this.$ = [$$[$0 - 1]].concat($$[$0]); + break; + case 14: + yy.getLogger().debug("Rule: link: ", $$[$0], yytext); + this.$ = { edgeTypeStr: $$[$0], label: "" }; + break; + case 15: + yy.getLogger().debug("Rule: LABEL link: ", $$[$0 - 3], $$[$0 - 1], $$[$0]); + this.$ = { edgeTypeStr: $$[$0], label: $$[$0 - 1] }; + break; + case 18: + const num = parseInt($$[$0]); + const spaceId = yy.generateId(); + this.$ = { id: spaceId, type: "space", label: "", width: num, children: [] }; + break; + case 23: + yy.getLogger().debug("Rule: (nodeStatement link node) ", $$[$0 - 2], $$[$0 - 1], $$[$0], " typestr: ", $$[$0 - 1].edgeTypeStr); + const edgeData = yy.edgeStrToEdgeData($$[$0 - 1].edgeTypeStr); + this.$ = [ + { id: $$[$0 - 2].id, label: $$[$0 - 2].label, type: $$[$0 - 2].type, directions: $$[$0 - 2].directions }, + { id: $$[$0 - 2].id + "-" + $$[$0].id, start: $$[$0 - 2].id, end: $$[$0].id, label: $$[$0 - 1].label, type: "edge", directions: $$[$0].directions, arrowTypeEnd: edgeData, arrowTypeStart: "arrow_open" }, + { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions } + ]; + break; + case 24: + yy.getLogger().debug("Rule: nodeStatement (abc88 node size) ", $$[$0 - 1], $$[$0]); + this.$ = { id: $$[$0 - 1].id, label: $$[$0 - 1].label, type: yy.typeStr2Type($$[$0 - 1].typeStr), directions: $$[$0 - 1].directions, widthInColumns: parseInt($$[$0], 10) }; + break; + case 25: + yy.getLogger().debug("Rule: nodeStatement (node) ", $$[$0]); + this.$ = { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions, widthInColumns: 1 }; + break; + case 26: + yy.getLogger().debug("APA123", this ? this : "na"); + yy.getLogger().debug("COLUMNS: ", $$[$0]); + this.$ = { type: "column-setting", columns: $$[$0] === "auto" ? -1 : parseInt($$[$0]) }; + break; + case 27: + yy.getLogger().debug("Rule: id-block statement : ", $$[$0 - 2], $$[$0 - 1]); + yy.generateId(); + this.$ = { ...$$[$0 - 2], type: "composite", children: $$[$0 - 1] }; + break; + case 28: + yy.getLogger().debug("Rule: blockStatement : ", $$[$0 - 2], $$[$0 - 1], $$[$0]); + const id = yy.generateId(); + this.$ = { id, type: "composite", label: "", children: $$[$0 - 1] }; + break; + case 29: + yy.getLogger().debug("Rule: node (NODE_ID separator): ", $$[$0]); + this.$ = { id: $$[$0] }; + break; + case 30: + yy.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ", $$[$0 - 1], $$[$0]); + this.$ = { id: $$[$0 - 1], label: $$[$0].label, typeStr: $$[$0].typeStr, directions: $$[$0].directions }; + break; + case 31: + yy.getLogger().debug("Rule: dirList: ", $$[$0]); + this.$ = [$$[$0]]; + break; + case 32: + yy.getLogger().debug("Rule: dirList: ", $$[$0 - 1], $$[$0]); + this.$ = [$$[$0 - 1]].concat($$[$0]); + break; + case 33: + yy.getLogger().debug("Rule: nodeShapeNLabel: ", $$[$0 - 2], $$[$0 - 1], $$[$0]); + this.$ = { typeStr: $$[$0 - 2] + $$[$0], label: $$[$0 - 1] }; + break; + case 34: + yy.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ", $$[$0 - 3], $$[$0 - 2], " #3:", $$[$0 - 1], $$[$0]); + this.$ = { typeStr: $$[$0 - 3] + $$[$0], label: $$[$0 - 2], directions: $$[$0 - 1] }; + break; + case 35: + case 36: + this.$ = { type: "classDef", id: $$[$0 - 1].trim(), css: $$[$0].trim() }; + break; + case 37: + this.$ = { type: "applyClass", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() }; + break; + case 38: + this.$ = { type: "applyStyles", id: $$[$0 - 1].trim(), stylesStr: $$[$0].trim() }; + break; + } + }, + table: [{ 9: 1, 10: [1, 2] }, { 1: [3] }, { 11: 3, 13: 4, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 8: [1, 20] }, o($V8, [2, 12], { 13: 4, 19: 5, 20: 6, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 11: 21, 21: $V0, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }), o($V9, [2, 16], { 14: 22, 15: $Va, 16: $Vb }), o($V9, [2, 17]), o($V9, [2, 18]), o($V9, [2, 19]), o($V9, [2, 20]), o($V9, [2, 21]), o($V9, [2, 22]), o($Vc, [2, 25], { 27: [1, 25] }), o($V9, [2, 26]), { 19: 26, 26: 12, 32: $V4 }, { 11: 27, 13: 4, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 41: [1, 28], 43: [1, 29] }, { 45: [1, 30] }, { 48: [1, 31] }, o($Vd, [2, 29], { 33: 32, 36: [1, 33], 38: [1, 34] }), { 1: [2, 7] }, o($V8, [2, 13]), { 26: 35, 32: $V4 }, { 32: [2, 14] }, { 17: [1, 36] }, o($Vc, [2, 24]), { 11: 37, 13: 4, 14: 22, 15: $Va, 16: $Vb, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 30: [1, 38] }, { 42: [1, 39] }, { 42: [1, 40] }, { 46: [1, 41] }, { 49: [1, 42] }, o($Vd, [2, 30]), { 18: [1, 43] }, { 18: [1, 44] }, o($Vc, [2, 23]), { 18: [1, 45] }, { 30: [1, 46] }, o($V9, [2, 28]), o($V9, [2, 35]), o($V9, [2, 36]), o($V9, [2, 37]), o($V9, [2, 38]), { 37: [1, 47] }, { 34: 48, 35: $Ve }, { 15: [1, 50] }, o($V9, [2, 27]), o($Vd, [2, 33]), { 39: [1, 51] }, { 34: 52, 35: $Ve, 39: [2, 31] }, { 32: [2, 15] }, o($Vd, [2, 34]), { 39: [2, 32] }], + defaultActions: { 20: [2, 7], 23: [2, 14], 50: [2, 15], 52: [2, 32] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: {}, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + return 10; + case 1: + yy.getLogger().debug("Found space-block"); + return 31; + case 2: + yy.getLogger().debug("Found nl-block"); + return 31; + case 3: + yy.getLogger().debug("Found space-block"); + return 29; + case 4: + yy.getLogger().debug(".", yy_.yytext); + break; + case 5: + yy.getLogger().debug("_", yy_.yytext); + break; + case 6: + return 5; + case 7: + yy_.yytext = -1; + return 28; + case 8: + yy_.yytext = yy_.yytext.replace(/columns\s+/, ""); + yy.getLogger().debug("COLUMNS (LEX)", yy_.yytext); + return 28; + case 9: + this.pushState("md_string"); + break; + case 10: + return "MD_STR"; + case 11: + this.popState(); + break; + case 12: + this.pushState("string"); + break; + case 13: + yy.getLogger().debug("LEX: POPPING STR:", yy_.yytext); + this.popState(); + break; + case 14: + yy.getLogger().debug("LEX: STR end:", yy_.yytext); + return "STR"; + case 15: + yy_.yytext = yy_.yytext.replace(/space\:/, ""); + yy.getLogger().debug("SPACE NUM (LEX)", yy_.yytext); + return 21; + case 16: + yy_.yytext = "1"; + yy.getLogger().debug("COLUMNS (LEX)", yy_.yytext); + return 21; + case 17: + return 43; + case 18: + return "LINKSTYLE"; + case 19: + return "INTERPOLATE"; + case 20: + this.pushState("CLASSDEF"); + return 40; + case 21: + this.popState(); + this.pushState("CLASSDEFID"); + return "DEFAULT_CLASSDEF_ID"; + case 22: + this.popState(); + this.pushState("CLASSDEFID"); + return 41; + case 23: + this.popState(); + return 42; + case 24: + this.pushState("CLASS"); + return 44; + case 25: + this.popState(); + this.pushState("CLASS_STYLE"); + return 45; + case 26: + this.popState(); + return 46; + case 27: + this.pushState("STYLE_STMNT"); + return 47; + case 28: + this.popState(); + this.pushState("STYLE_DEFINITION"); + return 48; + case 29: + this.popState(); + return 49; + case 30: + this.pushState("acc_title"); + return "acc_title"; + case 31: + this.popState(); + return "acc_title_value"; + case 32: + this.pushState("acc_descr"); + return "acc_descr"; + case 33: + this.popState(); + return "acc_descr_value"; + case 34: + this.pushState("acc_descr_multiline"); + break; + case 35: + this.popState(); + break; + case 36: + return "acc_descr_multiline_value"; + case 37: + return 30; + case 38: + this.popState(); + yy.getLogger().debug("Lex: (("); + return "NODE_DEND"; + case 39: + this.popState(); + yy.getLogger().debug("Lex: (("); + return "NODE_DEND"; + case 40: + this.popState(); + yy.getLogger().debug("Lex: ))"); + return "NODE_DEND"; + case 41: + this.popState(); + yy.getLogger().debug("Lex: (("); + return "NODE_DEND"; + case 42: + this.popState(); + yy.getLogger().debug("Lex: (("); + return "NODE_DEND"; + case 43: + this.popState(); + yy.getLogger().debug("Lex: (-"); + return "NODE_DEND"; + case 44: + this.popState(); + yy.getLogger().debug("Lex: -)"); + return "NODE_DEND"; + case 45: + this.popState(); + yy.getLogger().debug("Lex: (("); + return "NODE_DEND"; + case 46: + this.popState(); + yy.getLogger().debug("Lex: ]]"); + return "NODE_DEND"; + case 47: + this.popState(); + yy.getLogger().debug("Lex: ("); + return "NODE_DEND"; + case 48: + this.popState(); + yy.getLogger().debug("Lex: ])"); + return "NODE_DEND"; + case 49: + this.popState(); + yy.getLogger().debug("Lex: /]"); + return "NODE_DEND"; + case 50: + this.popState(); + yy.getLogger().debug("Lex: /]"); + return "NODE_DEND"; + case 51: + this.popState(); + yy.getLogger().debug("Lex: )]"); + return "NODE_DEND"; + case 52: + this.popState(); + yy.getLogger().debug("Lex: )"); + return "NODE_DEND"; + case 53: + this.popState(); + yy.getLogger().debug("Lex: ]>"); + return "NODE_DEND"; + case 54: + this.popState(); + yy.getLogger().debug("Lex: ]"); + return "NODE_DEND"; + case 55: + yy.getLogger().debug("Lexa: -)"); + this.pushState("NODE"); + return 36; + case 56: + yy.getLogger().debug("Lexa: (-"); + this.pushState("NODE"); + return 36; + case 57: + yy.getLogger().debug("Lexa: ))"); + this.pushState("NODE"); + return 36; + case 58: + yy.getLogger().debug("Lexa: )"); + this.pushState("NODE"); + return 36; + case 59: + yy.getLogger().debug("Lex: ((("); + this.pushState("NODE"); + return 36; + case 60: + yy.getLogger().debug("Lexa: )"); + this.pushState("NODE"); + return 36; + case 61: + yy.getLogger().debug("Lexa: )"); + this.pushState("NODE"); + return 36; + case 62: + yy.getLogger().debug("Lexa: )"); + this.pushState("NODE"); + return 36; + case 63: + yy.getLogger().debug("Lexc: >"); + this.pushState("NODE"); + return 36; + case 64: + yy.getLogger().debug("Lexa: (["); + this.pushState("NODE"); + return 36; + case 65: + yy.getLogger().debug("Lexa: )"); + this.pushState("NODE"); + return 36; + case 66: + this.pushState("NODE"); + return 36; + case 67: + this.pushState("NODE"); + return 36; + case 68: + this.pushState("NODE"); + return 36; + case 69: + this.pushState("NODE"); + return 36; + case 70: + this.pushState("NODE"); + return 36; + case 71: + this.pushState("NODE"); + return 36; + case 72: + this.pushState("NODE"); + return 36; + case 73: + yy.getLogger().debug("Lexa: ["); + this.pushState("NODE"); + return 36; + case 74: + this.pushState("BLOCK_ARROW"); + yy.getLogger().debug("LEX ARR START"); + return 38; + case 75: + yy.getLogger().debug("Lex: NODE_ID", yy_.yytext); + return 32; + case 76: + yy.getLogger().debug("Lex: EOF", yy_.yytext); + return 8; + case 77: + this.pushState("md_string"); + break; + case 78: + this.pushState("md_string"); + break; + case 79: + return "NODE_DESCR"; + case 80: + this.popState(); + break; + case 81: + yy.getLogger().debug("Lex: Starting string"); + this.pushState("string"); + break; + case 82: + yy.getLogger().debug("LEX ARR: Starting string"); + this.pushState("string"); + break; + case 83: + yy.getLogger().debug("LEX: NODE_DESCR:", yy_.yytext); + return "NODE_DESCR"; + case 84: + yy.getLogger().debug("LEX POPPING"); + this.popState(); + break; + case 85: + yy.getLogger().debug("Lex: =>BAE"); + this.pushState("ARROW_DIR"); + break; + case 86: + yy_.yytext = yy_.yytext.replace(/^,\s*/, ""); + yy.getLogger().debug("Lex (right): dir:", yy_.yytext); + return "DIR"; + case 87: + yy_.yytext = yy_.yytext.replace(/^,\s*/, ""); + yy.getLogger().debug("Lex (left):", yy_.yytext); + return "DIR"; + case 88: + yy_.yytext = yy_.yytext.replace(/^,\s*/, ""); + yy.getLogger().debug("Lex (x):", yy_.yytext); + return "DIR"; + case 89: + yy_.yytext = yy_.yytext.replace(/^,\s*/, ""); + yy.getLogger().debug("Lex (y):", yy_.yytext); + return "DIR"; + case 90: + yy_.yytext = yy_.yytext.replace(/^,\s*/, ""); + yy.getLogger().debug("Lex (up):", yy_.yytext); + return "DIR"; + case 91: + yy_.yytext = yy_.yytext.replace(/^,\s*/, ""); + yy.getLogger().debug("Lex (down):", yy_.yytext); + return "DIR"; + case 92: + yy_.yytext = "]>"; + yy.getLogger().debug("Lex (ARROW_DIR end):", yy_.yytext); + this.popState(); + this.popState(); + return "BLOCK_ARROW_END"; + case 93: + yy.getLogger().debug("Lex: LINK", "#" + yy_.yytext + "#"); + return 15; + case 94: + yy.getLogger().debug("Lex: LINK", yy_.yytext); + return 15; + case 95: + yy.getLogger().debug("Lex: LINK", yy_.yytext); + return 15; + case 96: + yy.getLogger().debug("Lex: LINK", yy_.yytext); + return 15; + case 97: + yy.getLogger().debug("Lex: START_LINK", yy_.yytext); + this.pushState("LLABEL"); + return 16; + case 98: + yy.getLogger().debug("Lex: START_LINK", yy_.yytext); + this.pushState("LLABEL"); + return 16; + case 99: + yy.getLogger().debug("Lex: START_LINK", yy_.yytext); + this.pushState("LLABEL"); + return 16; + case 100: + this.pushState("md_string"); + break; + case 101: + yy.getLogger().debug("Lex: Starting string"); + this.pushState("string"); + return "LINK_LABEL"; + case 102: + this.popState(); + yy.getLogger().debug("Lex: LINK", "#" + yy_.yytext + "#"); + return 15; + case 103: + this.popState(); + yy.getLogger().debug("Lex: LINK", yy_.yytext); + return 15; + case 104: + this.popState(); + yy.getLogger().debug("Lex: LINK", yy_.yytext); + return 15; + case 105: + yy.getLogger().debug("Lex: COLON", yy_.yytext); + yy_.yytext = yy_.yytext.slice(1); + return 27; + } + }, + rules: [/^(?:block-beta\b)/, /^(?:block\s+)/, /^(?:block\n+)/, /^(?:block:)/, /^(?:[\s]+)/, /^(?:[\n]+)/, /^(?:((\u000D\u000A)|(\u000A)))/, /^(?:columns\s+auto\b)/, /^(?:columns\s+[\d]+)/, /^(?:["][`])/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:space[:]\d+)/, /^(?:space\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\s+)/, /^(?:DEFAULT\s+)/, /^(?:\w+\s+)/, /^(?:[^\n]*)/, /^(?:class\s+)/, /^(?:(\w+)+((,\s*\w+)*))/, /^(?:[^\n]*)/, /^(?:style\s+)/, /^(?:(\w+)+((,\s*\w+)*))/, /^(?:[^\n]*)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:end\b\s*)/, /^(?:\(\(\()/, /^(?:\)\)\))/, /^(?:[\)]\))/, /^(?:\}\})/, /^(?:\})/, /^(?:\(-)/, /^(?:-\))/, /^(?:\(\()/, /^(?:\]\])/, /^(?:\()/, /^(?:\]\))/, /^(?:\\\])/, /^(?:\/\])/, /^(?:\)\])/, /^(?:[\)])/, /^(?:\]>)/, /^(?:[\]])/, /^(?:-\))/, /^(?:\(-)/, /^(?:\)\))/, /^(?:\))/, /^(?:\(\(\()/, /^(?:\(\()/, /^(?:\{\{)/, /^(?:\{)/, /^(?:>)/, /^(?:\(\[)/, /^(?:\()/, /^(?:\[\[)/, /^(?:\[\|)/, /^(?:\[\()/, /^(?:\)\)\))/, /^(?:\[\\)/, /^(?:\[\/)/, /^(?:\[\\)/, /^(?:\[)/, /^(?:<\[)/, /^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/, /^(?:$)/, /^(?:["][`])/, /^(?:["][`])/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["])/, /^(?:["])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:\]>\s*\()/, /^(?:,?\s*right\s*)/, /^(?:,?\s*left\s*)/, /^(?:,?\s*x\s*)/, /^(?:,?\s*y\s*)/, /^(?:,?\s*up\s*)/, /^(?:,?\s*down\s*)/, /^(?:\)\s*)/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?:\s*~~[\~]+\s*)/, /^(?:\s*[xo<]?--\s*)/, /^(?:\s*[xo<]?==\s*)/, /^(?:\s*[xo<]?-\.\s*)/, /^(?:["][`])/, /^(?:["])/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?::\d+)/], + conditions: { "STYLE_DEFINITION": { "rules": [29], "inclusive": false }, "STYLE_STMNT": { "rules": [28], "inclusive": false }, "CLASSDEFID": { "rules": [23], "inclusive": false }, "CLASSDEF": { "rules": [21, 22], "inclusive": false }, "CLASS_STYLE": { "rules": [26], "inclusive": false }, "CLASS": { "rules": [25], "inclusive": false }, "LLABEL": { "rules": [100, 101, 102, 103, 104], "inclusive": false }, "ARROW_DIR": { "rules": [86, 87, 88, 89, 90, 91, 92], "inclusive": false }, "BLOCK_ARROW": { "rules": [77, 82, 85], "inclusive": false }, "NODE": { "rules": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 78, 81], "inclusive": false }, "md_string": { "rules": [10, 11, 79, 80], "inclusive": false }, "space": { "rules": [], "inclusive": false }, "string": { "rules": [13, 14, 83, 84], "inclusive": false }, "acc_descr_multiline": { "rules": [35, 36], "inclusive": false }, "acc_descr": { "rules": [33], "inclusive": false }, "acc_title": { "rules": [31], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 15, 16, 17, 18, 19, 20, 24, 27, 30, 32, 34, 37, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 93, 94, 95, 96, 97, 98, 99, 105], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let blockDatabase = {}; +let edgeList = []; +let edgeCount = {}; +const COLOR_KEYWORD = "color"; +const FILL_KEYWORD = "fill"; +const BG_FILL = "bgFill"; +const STYLECLASS_SEP = ","; +const config = getConfig(); +let classes = {}; +const sanitizeText = (txt) => common.sanitizeText(txt, config); +const addStyleClass = function(id, styleAttributes = "") { + if (classes[id] === void 0) { + classes[id] = { id, styles: [], textStyles: [] }; + } + const foundClass = classes[id]; + if (styleAttributes !== void 0 && styleAttributes !== null) { + styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => { + const fixedAttrib = attrib.replace(/([^;]*);/, "$1").trim(); + if (attrib.match(COLOR_KEYWORD)) { + const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL); + const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD); + foundClass.textStyles.push(newStyle2); + } + foundClass.styles.push(fixedAttrib); + }); + } +}; +const addStyle2Node = function(id, styles = "") { + const foundBlock = blockDatabase[id]; + if (styles !== void 0 && styles !== null) { + foundBlock.styles = styles.split(STYLECLASS_SEP); + } +}; +const setCssClass = function(itemIds, cssClassName) { + itemIds.split(",").forEach(function(id) { + let foundBlock = blockDatabase[id]; + if (foundBlock === void 0) { + const trimmedId = id.trim(); + blockDatabase[trimmedId] = { id: trimmedId, type: "na", children: [] }; + foundBlock = blockDatabase[trimmedId]; + } + if (!foundBlock.classes) { + foundBlock.classes = []; + } + foundBlock.classes.push(cssClassName); + }); +}; +const populateBlockDatabase = (_blockList, parent) => { + const blockList = _blockList.flat(); + const children = []; + for (const block of blockList) { + if (block.label) { + block.label = sanitizeText(block.label); + } + if (block.type === "classDef") { + addStyleClass(block.id, block.css); + continue; + } + if (block.type === "applyClass") { + setCssClass(block.id, (block == null ? void 0 : block.styleClass) || ""); + continue; + } + if (block.type === "applyStyles") { + if (block == null ? void 0 : block.stylesStr) { + addStyle2Node(block.id, block == null ? void 0 : block.stylesStr); + } + continue; + } + if (block.type === "column-setting") { + parent.columns = block.columns || -1; + } else if (block.type === "edge") { + if (edgeCount[block.id]) { + edgeCount[block.id]++; + } else { + edgeCount[block.id] = 1; + } + block.id = edgeCount[block.id] + "-" + block.id; + edgeList.push(block); + } else { + if (!block.label) { + if (block.type === "composite") { + block.label = ""; + } else { + block.label = block.id; + } + } + const newBlock = !blockDatabase[block.id]; + if (newBlock) { + blockDatabase[block.id] = block; + } else { + if (block.type !== "na") { + blockDatabase[block.id].type = block.type; + } + if (block.label !== block.id) { + blockDatabase[block.id].label = block.label; + } + } + if (block.children) { + populateBlockDatabase(block.children, block); + } + if (block.type === "space") { + const w = block.width || 1; + for (let j = 0; j < w; j++) { + const newBlock2 = clone(block); + newBlock2.id = newBlock2.id + "-" + j; + blockDatabase[newBlock2.id] = newBlock2; + children.push(newBlock2); + } + } else if (newBlock) { + children.push(block); + } + } + } + parent.children = children; +}; +let blocks = []; +let rootBlock = { id: "root", type: "composite", children: [], columns: -1 }; +const clear = () => { + log.debug("Clear called"); + clear$1(); + rootBlock = { id: "root", type: "composite", children: [], columns: -1 }; + blockDatabase = { root: rootBlock }; + blocks = []; + classes = {}; + edgeList = []; + edgeCount = {}; +}; +function typeStr2Type(typeStr) { + log.debug("typeStr2Type", typeStr); + switch (typeStr) { + case "[]": + return "square"; + case "()": + log.debug("we have a round"); + return "round"; + case "(())": + return "circle"; + case ">]": + return "rect_left_inv_arrow"; + case "{}": + return "diamond"; + case "{{}}": + return "hexagon"; + case "([])": + return "stadium"; + case "[[]]": + return "subroutine"; + case "[()]": + return "cylinder"; + case "((()))": + return "doublecircle"; + case "[//]": + return "lean_right"; + case "[\\\\]": + return "lean_left"; + case "[/\\]": + return "trapezoid"; + case "[\\/]": + return "inv_trapezoid"; + case "<[]>": + return "block_arrow"; + default: + return "na"; + } +} +function edgeTypeStr2Type(typeStr) { + log.debug("typeStr2Type", typeStr); + switch (typeStr) { + case "==": + return "thick"; + default: + return "normal"; + } +} +function edgeStrToEdgeData(typeStr) { + switch (typeStr.trim()) { + case "--x": + return "arrow_cross"; + case "--o": + return "arrow_circle"; + default: + return "arrow_point"; + } +} +let cnt = 0; +const generateId = () => { + cnt++; + return "id-" + Math.random().toString(36).substr(2, 12) + "-" + cnt; +}; +const setHierarchy = (block) => { + rootBlock.children = block; + populateBlockDatabase(block, rootBlock); + blocks = rootBlock.children; +}; +const getColumns = (blockId) => { + const block = blockDatabase[blockId]; + if (!block) { + return -1; + } + if (block.columns) { + return block.columns; + } + if (!block.children) { + return -1; + } + return block.children.length; +}; +const getBlocksFlat = () => { + return [...Object.values(blockDatabase)]; +}; +const getBlocks = () => { + return blocks || []; +}; +const getEdges = () => { + return edgeList; +}; +const getBlock = (id) => { + return blockDatabase[id]; +}; +const setBlock = (block) => { + blockDatabase[block.id] = block; +}; +const getLogger = () => console; +const getClasses$1 = function() { + return classes; +}; +const db = { + getConfig: () => getConfig$1().block, + typeStr2Type, + edgeTypeStr2Type, + edgeStrToEdgeData, + getLogger, + getBlocksFlat, + getBlocks, + getEdges, + setHierarchy, + getBlock, + setBlock, + getColumns, + getClasses: getClasses$1, + clear, + generateId +}; +const db$1 = db; +const fade = (color, opacity) => { + const channel$1 = channel; + const r = channel$1(color, "r"); + const g = channel$1(color, "g"); + const b = channel$1(color, "b"); + return rgba(r, g, b, opacity); +}; +const getStyles = (options) => `.label { + font-family: ${options.fontFamily}; + color: ${options.nodeTextColor || options.textColor}; + } + .cluster-label text { + fill: ${options.titleColor}; + } + .cluster-label span,p { + color: ${options.titleColor}; + } + + + + .label text,span,p { + fill: ${options.nodeTextColor || options.textColor}; + color: ${options.nodeTextColor || options.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${options.arrowheadColor}; + } + + .edgePath .path { + stroke: ${options.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${options.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${options.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${options.edgeLabelBackground}; + fill: ${options.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${fade(options.edgeLabelBackground, 0.5)}; + // background-color: + } + + .node .cluster { + // fill: ${fade(options.mainBkg, 0.5)}; + fill: ${fade(options.clusterBkg, 0.5)}; + stroke: ${fade(options.clusterBorder, 0.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${options.titleColor}; + } + + .cluster span,p { + color: ${options.titleColor}; + } + /* .cluster div { + color: ${options.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${options.fontFamily}; + font-size: 12px; + background: ${options.tertiaryColor}; + border: 1px solid ${options.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.textColor}; + } +`; +const flowStyles = getStyles; +function getNodeFromBlock(block, db2, positioned = false) { + var _a2, _b2, _c; + const vertex = block; + let classStr = "default"; + if ((((_a2 = vertex == null ? void 0 : vertex.classes) == null ? void 0 : _a2.length) || 0) > 0) { + classStr = ((vertex == null ? void 0 : vertex.classes) || []).join(" "); + } + classStr = classStr + " flowchart-label"; + let radius = 0; + let shape = ""; + let padding2; + switch (vertex.type) { + case "round": + radius = 5; + shape = "rect"; + break; + case "composite": + radius = 0; + shape = "composite"; + padding2 = 0; + break; + case "square": + shape = "rect"; + break; + case "diamond": + shape = "question"; + break; + case "hexagon": + shape = "hexagon"; + break; + case "block_arrow": + shape = "block_arrow"; + break; + case "odd": + shape = "rect_left_inv_arrow"; + break; + case "lean_right": + shape = "lean_right"; + break; + case "lean_left": + shape = "lean_left"; + break; + case "trapezoid": + shape = "trapezoid"; + break; + case "inv_trapezoid": + shape = "inv_trapezoid"; + break; + case "rect_left_inv_arrow": + shape = "rect_left_inv_arrow"; + break; + case "circle": + shape = "circle"; + break; + case "ellipse": + shape = "ellipse"; + break; + case "stadium": + shape = "stadium"; + break; + case "subroutine": + shape = "subroutine"; + break; + case "cylinder": + shape = "cylinder"; + break; + case "group": + shape = "rect"; + break; + case "doublecircle": + shape = "doublecircle"; + break; + default: + shape = "rect"; + } + const styles = getStylesFromArray((vertex == null ? void 0 : vertex.styles) || []); + const vertexText = vertex.label; + const bounds = vertex.size || { width: 0, height: 0, x: 0, y: 0 }; + const node = { + labelStyle: styles.labelStyle, + shape, + labelText: vertexText, + rx: radius, + ry: radius, + class: classStr, + style: styles.style, + id: vertex.id, + directions: vertex.directions, + width: bounds.width, + height: bounds.height, + x: bounds.x, + y: bounds.y, + positioned, + intersect: void 0, + type: vertex.type, + padding: padding2 ?? (((_c = (_b2 = getConfig$1()) == null ? void 0 : _b2.block) == null ? void 0 : _c.padding) || 0) + }; + return node; +} +async function calculateBlockSize(elem, block, db2) { + const node = getNodeFromBlock(block, db2, false); + if (node.type === "group") { + return; + } + const nodeEl = await insertNode(elem, node); + const boundingBox = nodeEl.node().getBBox(); + const obj = db2.getBlock(node.id); + obj.size = { width: boundingBox.width, height: boundingBox.height, x: 0, y: 0, node: nodeEl }; + db2.setBlock(obj); + nodeEl.remove(); +} +async function insertBlockPositioned(elem, block, db2) { + const node = getNodeFromBlock(block, db2, true); + const obj = db2.getBlock(node.id); + if (obj.type !== "space") { + await insertNode(elem, node); + block.intersect = node == null ? void 0 : node.intersect; + positionNode(node); + } +} +async function performOperations(elem, blocks2, db2, operation) { + for (const block of blocks2) { + await operation(elem, block, db2); + if (block.children) { + await performOperations(elem, block.children, db2, operation); + } + } +} +async function calculateBlockSizes(elem, blocks2, db2) { + await performOperations(elem, blocks2, db2, calculateBlockSize); +} +async function insertBlocks(elem, blocks2, db2) { + await performOperations(elem, blocks2, db2, insertBlockPositioned); +} +async function insertEdges(elem, edges, blocks2, db2, id) { + const g = new Graph({ + multigraph: true, + compound: true + }); + g.setGraph({ + rankdir: "TB", + nodesep: 10, + ranksep: 10, + marginx: 8, + marginy: 8 + }); + for (const block of blocks2) { + if (block.size) { + g.setNode(block.id, { + width: block.size.width, + height: block.size.height, + intersect: block.intersect + }); + } + } + for (const edge of edges) { + if (edge.start && edge.end) { + const startBlock = db2.getBlock(edge.start); + const endBlock = db2.getBlock(edge.end); + if ((startBlock == null ? void 0 : startBlock.size) && (endBlock == null ? void 0 : endBlock.size)) { + const start = startBlock.size; + const end = endBlock.size; + const points = [ + { x: start.x, y: start.y }, + { x: start.x + (end.x - start.x) / 2, y: start.y + (end.y - start.y) / 2 }, + { x: end.x, y: end.y } + ]; + await insertEdge( + elem, + { v: edge.start, w: edge.end, name: edge.id }, + { + ...edge, + arrowTypeEnd: edge.arrowTypeEnd, + arrowTypeStart: edge.arrowTypeStart, + points, + classes: "edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1" + }, + void 0, + "block", + g, + id + ); + if (edge.label) { + await insertEdgeLabel(elem, { + ...edge, + label: edge.label, + labelStyle: "stroke: #333; stroke-width: 1.5px;fill:none;", + arrowTypeEnd: edge.arrowTypeEnd, + arrowTypeStart: edge.arrowTypeStart, + points, + classes: "edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1" + }); + await positionEdgeLabel( + { ...edge, x: points[1].x, y: points[1].y }, + { + originalPath: points + } + ); + } + } + } + } +} +const padding = ((_b = (_a = getConfig()) == null ? void 0 : _a.block) == null ? void 0 : _b.padding) || 8; +function calculateBlockPosition(columns, position) { + if (columns === 0 || !Number.isInteger(columns)) { + throw new Error("Columns must be an integer !== 0."); + } + if (position < 0 || !Number.isInteger(position)) { + throw new Error("Position must be a non-negative integer." + position); + } + if (columns < 0) { + return { px: position, py: 0 }; + } + if (columns === 1) { + return { px: 0, py: position }; + } + const px = position % columns; + const py = Math.floor(position / columns); + return { px, py }; +} +const getMaxChildSize = (block) => { + let maxWidth = 0; + let maxHeight = 0; + for (const child of block.children) { + const { width, height, x, y } = child.size || { width: 0, height: 0, x: 0, y: 0 }; + log.debug( + "getMaxChildSize abc95 child:", + child.id, + "width:", + width, + "height:", + height, + "x:", + x, + "y:", + y, + child.type + ); + if (child.type === "space") { + continue; + } + if (width > maxWidth) { + maxWidth = width / (block.widthInColumns || 1); + } + if (height > maxHeight) { + maxHeight = height; + } + } + return { width: maxWidth, height: maxHeight }; +}; +function setBlockSizes(block, db2, siblingWidth = 0, siblingHeight = 0) { + var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k; + log.debug( + "setBlockSizes abc95 (start)", + block.id, + (_a2 = block == null ? void 0 : block.size) == null ? void 0 : _a2.x, + "block width =", + block == null ? void 0 : block.size, + "sieblingWidth", + siblingWidth + ); + if (!((_b2 = block == null ? void 0 : block.size) == null ? void 0 : _b2.width)) { + block.size = { + width: siblingWidth, + height: siblingHeight, + x: 0, + y: 0 + }; + } + let maxWidth = 0; + let maxHeight = 0; + if (((_c = block.children) == null ? void 0 : _c.length) > 0) { + for (const child of block.children) { + setBlockSizes(child, db2); + } + const childSize = getMaxChildSize(block); + maxWidth = childSize.width; + maxHeight = childSize.height; + log.debug("setBlockSizes abc95 maxWidth of", block.id, ":s children is ", maxWidth, maxHeight); + for (const child of block.children) { + if (child.size) { + log.debug( + `abc95 Setting size of children of ${block.id} id=${child.id} ${maxWidth} ${maxHeight} ${child.size}` + ); + child.size.width = maxWidth * (child.widthInColumns || 1) + padding * ((child.widthInColumns || 1) - 1); + child.size.height = maxHeight; + child.size.x = 0; + child.size.y = 0; + log.debug( + `abc95 updating size of ${block.id} children child:${child.id} maxWidth:${maxWidth} maxHeight:${maxHeight}` + ); + } + } + for (const child of block.children) { + setBlockSizes(child, db2, maxWidth, maxHeight); + } + const columns = block.columns || -1; + let numItems = 0; + for (const child of block.children) { + numItems += child.widthInColumns || 1; + } + let xSize = block.children.length; + if (columns > 0 && columns < numItems) { + xSize = columns; + } + block.widthInColumns || 1; + const ySize = Math.ceil(numItems / xSize); + let width = xSize * (maxWidth + padding) + padding; + let height = ySize * (maxHeight + padding) + padding; + if (width < siblingWidth) { + log.debug( + `Detected to small siebling: abc95 ${block.id} sieblingWidth ${siblingWidth} sieblingHeight ${siblingHeight} width ${width}` + ); + width = siblingWidth; + height = siblingHeight; + const childWidth = (siblingWidth - xSize * padding - padding) / xSize; + const childHeight = (siblingHeight - ySize * padding - padding) / ySize; + log.debug("Size indata abc88", block.id, "childWidth", childWidth, "maxWidth", maxWidth); + log.debug("Size indata abc88", block.id, "childHeight", childHeight, "maxHeight", maxHeight); + log.debug("Size indata abc88 xSize", xSize, "padding", padding); + for (const child of block.children) { + if (child.size) { + child.size.width = childWidth; + child.size.height = childHeight; + child.size.x = 0; + child.size.y = 0; + } + } + } + log.debug( + `abc95 (finale calc) ${block.id} xSize ${xSize} ySize ${ySize} columns ${columns}${block.children.length} width=${Math.max(width, ((_d = block.size) == null ? void 0 : _d.width) || 0)}` + ); + if (width < (((_e = block == null ? void 0 : block.size) == null ? void 0 : _e.width) || 0)) { + width = ((_f = block == null ? void 0 : block.size) == null ? void 0 : _f.width) || 0; + const num = columns > 0 ? Math.min(block.children.length, columns) : block.children.length; + if (num > 0) { + const childWidth = (width - num * padding - padding) / num; + log.debug("abc95 (growing to fit) width", block.id, width, (_g = block.size) == null ? void 0 : _g.width, childWidth); + for (const child of block.children) { + if (child.size) { + child.size.width = childWidth; + } + } + } + } + block.size = { + width, + height, + x: 0, + y: 0 + }; + } + log.debug( + "setBlockSizes abc94 (done)", + block.id, + (_h = block == null ? void 0 : block.size) == null ? void 0 : _h.x, + (_i = block == null ? void 0 : block.size) == null ? void 0 : _i.width, + (_j = block == null ? void 0 : block.size) == null ? void 0 : _j.y, + (_k = block == null ? void 0 : block.size) == null ? void 0 : _k.height + ); +} +function layoutBlocks(block, db2) { + var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q; + log.debug( + `abc85 layout blocks (=>layoutBlocks) ${block.id} x: ${(_a2 = block == null ? void 0 : block.size) == null ? void 0 : _a2.x} y: ${(_b2 = block == null ? void 0 : block.size) == null ? void 0 : _b2.y} width: ${(_c = block == null ? void 0 : block.size) == null ? void 0 : _c.width}` + ); + const columns = block.columns || -1; + log.debug("layoutBlocks columns abc95", block.id, "=>", columns, block); + if (block.children && // find max width of children + block.children.length > 0) { + const width = ((_e = (_d = block == null ? void 0 : block.children[0]) == null ? void 0 : _d.size) == null ? void 0 : _e.width) || 0; + const widthOfChildren = block.children.length * width + (block.children.length - 1) * padding; + log.debug("widthOfChildren 88", widthOfChildren, "posX"); + let columnPos = 0; + log.debug("abc91 block?.size?.x", block.id, (_f = block == null ? void 0 : block.size) == null ? void 0 : _f.x); + let startingPosX = ((_g = block == null ? void 0 : block.size) == null ? void 0 : _g.x) ? ((_h = block == null ? void 0 : block.size) == null ? void 0 : _h.x) + (-((_i = block == null ? void 0 : block.size) == null ? void 0 : _i.width) / 2 || 0) : -padding; + let rowPos = 0; + for (const child of block.children) { + const parent = block; + if (!child.size) { + continue; + } + const { width: width2, height } = child.size; + const { px, py } = calculateBlockPosition(columns, columnPos); + if (py != rowPos) { + rowPos = py; + startingPosX = ((_j = block == null ? void 0 : block.size) == null ? void 0 : _j.x) ? ((_k = block == null ? void 0 : block.size) == null ? void 0 : _k.x) + (-((_l = block == null ? void 0 : block.size) == null ? void 0 : _l.width) / 2 || 0) : -padding; + log.debug("New row in layout for block", block.id, " and child ", child.id, rowPos); + } + log.debug( + `abc89 layout blocks (child) id: ${child.id} Pos: ${columnPos} (px, py) ${px},${py} (${(_m = parent == null ? void 0 : parent.size) == null ? void 0 : _m.x},${(_n = parent == null ? void 0 : parent.size) == null ? void 0 : _n.y}) parent: ${parent.id} width: ${width2}${padding}` + ); + if (parent.size) { + const halfWidth = width2 / 2; + child.size.x = startingPosX + padding + halfWidth; + log.debug( + `abc91 layout blocks (calc) px, pyid:${child.id} startingPos=X${startingPosX} new startingPosX${child.size.x} ${halfWidth} padding=${padding} width=${width2} halfWidth=${halfWidth} => x:${child.size.x} y:${child.size.y} ${child.widthInColumns} (width * (child?.w || 1)) / 2 ${width2 * ((child == null ? void 0 : child.widthInColumns) || 1) / 2}` + ); + startingPosX = child.size.x + halfWidth; + child.size.y = parent.size.y - parent.size.height / 2 + py * (height + padding) + height / 2 + padding; + log.debug( + `abc88 layout blocks (calc) px, pyid:${child.id}startingPosX${startingPosX}${padding}${halfWidth}=>x:${child.size.x}y:${child.size.y}${child.widthInColumns}(width * (child?.w || 1)) / 2${width2 * ((child == null ? void 0 : child.widthInColumns) || 1) / 2}` + ); + } + if (child.children) { + layoutBlocks(child); + } + columnPos += (child == null ? void 0 : child.widthInColumns) || 1; + log.debug("abc88 columnsPos", child, columnPos); + } + } + log.debug( + `layout blocks (<==layoutBlocks) ${block.id} x: ${(_o = block == null ? void 0 : block.size) == null ? void 0 : _o.x} y: ${(_p = block == null ? void 0 : block.size) == null ? void 0 : _p.y} width: ${(_q = block == null ? void 0 : block.size) == null ? void 0 : _q.width}` + ); +} +function findBounds(block, { minX, minY, maxX, maxY } = { minX: 0, minY: 0, maxX: 0, maxY: 0 }) { + if (block.size && block.id !== "root") { + const { x, y, width, height } = block.size; + if (x - width / 2 < minX) { + minX = x - width / 2; + } + if (y - height / 2 < minY) { + minY = y - height / 2; + } + if (x + width / 2 > maxX) { + maxX = x + width / 2; + } + if (y + height / 2 > maxY) { + maxY = y + height / 2; + } + } + if (block.children) { + for (const child of block.children) { + ({ minX, minY, maxX, maxY } = findBounds(child, { minX, minY, maxX, maxY })); + } + } + return { minX, minY, maxX, maxY }; +} +function layout(db2) { + const root = db2.getBlock("root"); + if (!root) { + return; + } + setBlockSizes(root, db2, 0, 0); + layoutBlocks(root); + log.debug("getBlocks", JSON.stringify(root, null, 2)); + const { minX, minY, maxX, maxY } = findBounds(root); + const height = maxY - minY; + const width = maxX - minX; + return { x: minX, y: minY, width, height }; +} +const getClasses = function(text, diagObj) { + return diagObj.db.getClasses(); +}; +const draw = async function(text, id, _version, diagObj) { + const { securityLevel, block: conf } = getConfig$1(); + const db2 = diagObj.db; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const svg = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : d3select(`[id="${id}"]`); + const markers = ["point", "circle", "cross"]; + insertMarkers(svg, markers, diagObj.type, id); + const bl = db2.getBlocks(); + const blArr = db2.getBlocksFlat(); + const edges = db2.getEdges(); + const nodes = svg.insert("g").attr("class", "block"); + await calculateBlockSizes(nodes, bl, db2); + const bounds = layout(db2); + await insertBlocks(nodes, bl, db2); + await insertEdges(nodes, edges, blArr, db2, id); + if (bounds) { + const bounds2 = bounds; + const magicFactor = Math.max(1, Math.round(0.125 * (bounds2.width / bounds2.height))); + const height = bounds2.height + magicFactor + 10; + const width = bounds2.width + 10; + const { useMaxWidth } = conf; + configureSvgSize(svg, height, width, !!useMaxWidth); + log.debug("Here Bounds", bounds, bounds2); + svg.attr( + "viewBox", + `${bounds2.x - 5} ${bounds2.y - 5} ${bounds2.width + 10} ${bounds2.height + 10}` + ); + } + ordinal(d3schemeTableau10); +}; +const renderer = { + draw, + getClasses +}; +const diagram = { + parser: parser$1, + db: db$1, + renderer, + styles: flowStyles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/c4Diagram-1e775db3.js b/assets/lib/mermaid/c4Diagram-1e775db3.js new file mode 100644 index 000000000..8d262cc29 --- /dev/null +++ b/assets/lib/mermaid/c4Diagram-1e775db3.js @@ -0,0 +1,1579 @@ +import { s as we, g as Oe, a as Te, b as Re, c as Dt, d as ue, e as De, f as Kt, h as Se, i as wt, j as Nt, l as le, k as Pe, w as Me, m as oe } from "./mermaid-9f2aa176.js"; +import { d as Le, g as Ne } from "./svgDrawCommon-ecc5f780.js"; +var Yt = function() { + var e = function(bt, _, x, m) { + for (x = x || {}, m = bt.length; m--; x[bt[m]] = _) + ; + return x; + }, t = [1, 24], r = [1, 25], o = [1, 26], l = [1, 27], n = [1, 28], a = [1, 63], s = [1, 64], i = [1, 65], u = [1, 66], d = [1, 67], f = [1, 68], p = [1, 69], E = [1, 29], O = [1, 30], R = [1, 31], S = [1, 32], L = [1, 33], Y = [1, 34], Q = [1, 35], H = [1, 36], q = [1, 37], G = [1, 38], K = [1, 39], J = [1, 40], Z = [1, 41], $ = [1, 42], tt = [1, 43], et = [1, 44], nt = [1, 45], it = [1, 46], st = [1, 47], at = [1, 48], rt = [1, 50], lt = [1, 51], ot = [1, 52], ct = [1, 53], ht = [1, 54], ut = [1, 55], dt = [1, 56], ft = [1, 57], pt = [1, 58], yt = [1, 59], gt = [1, 60], Ct = [14, 42], Vt = [14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], Ot = [12, 14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], k = [1, 82], A = [1, 83], C = [1, 84], v = [1, 85], w = [12, 14, 42], ie = [12, 14, 33, 42], Pt = [12, 14, 33, 42, 76, 77, 79, 80], mt = [12, 33], zt = [34, 36, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], Xt = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, mermaidDoc: 4, direction: 5, direction_tb: 6, direction_bt: 7, direction_rl: 8, direction_lr: 9, graphConfig: 10, C4_CONTEXT: 11, NEWLINE: 12, statements: 13, EOF: 14, C4_CONTAINER: 15, C4_COMPONENT: 16, C4_DYNAMIC: 17, C4_DEPLOYMENT: 18, otherStatements: 19, diagramStatements: 20, otherStatement: 21, title: 22, accDescription: 23, acc_title: 24, acc_title_value: 25, acc_descr: 26, acc_descr_value: 27, acc_descr_multiline_value: 28, boundaryStatement: 29, boundaryStartStatement: 30, boundaryStopStatement: 31, boundaryStart: 32, LBRACE: 33, ENTERPRISE_BOUNDARY: 34, attributes: 35, SYSTEM_BOUNDARY: 36, BOUNDARY: 37, CONTAINER_BOUNDARY: 38, NODE: 39, NODE_L: 40, NODE_R: 41, RBRACE: 42, diagramStatement: 43, PERSON: 44, PERSON_EXT: 45, SYSTEM: 46, SYSTEM_DB: 47, SYSTEM_QUEUE: 48, SYSTEM_EXT: 49, SYSTEM_EXT_DB: 50, SYSTEM_EXT_QUEUE: 51, CONTAINER: 52, CONTAINER_DB: 53, CONTAINER_QUEUE: 54, CONTAINER_EXT: 55, CONTAINER_EXT_DB: 56, CONTAINER_EXT_QUEUE: 57, COMPONENT: 58, COMPONENT_DB: 59, COMPONENT_QUEUE: 60, COMPONENT_EXT: 61, COMPONENT_EXT_DB: 62, COMPONENT_EXT_QUEUE: 63, REL: 64, BIREL: 65, REL_U: 66, REL_D: 67, REL_L: 68, REL_R: 69, REL_B: 70, REL_INDEX: 71, UPDATE_EL_STYLE: 72, UPDATE_REL_STYLE: 73, UPDATE_LAYOUT_CONFIG: 74, attribute: 75, STR: 76, STR_KEY: 77, STR_VALUE: 78, ATTRIBUTE: 79, ATTRIBUTE_EMPTY: 80, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 6: "direction_tb", 7: "direction_bt", 8: "direction_rl", 9: "direction_lr", 11: "C4_CONTEXT", 12: "NEWLINE", 14: "EOF", 15: "C4_CONTAINER", 16: "C4_COMPONENT", 17: "C4_DYNAMIC", 18: "C4_DEPLOYMENT", 22: "title", 23: "accDescription", 24: "acc_title", 25: "acc_title_value", 26: "acc_descr", 27: "acc_descr_value", 28: "acc_descr_multiline_value", 33: "LBRACE", 34: "ENTERPRISE_BOUNDARY", 36: "SYSTEM_BOUNDARY", 37: "BOUNDARY", 38: "CONTAINER_BOUNDARY", 39: "NODE", 40: "NODE_L", 41: "NODE_R", 42: "RBRACE", 44: "PERSON", 45: "PERSON_EXT", 46: "SYSTEM", 47: "SYSTEM_DB", 48: "SYSTEM_QUEUE", 49: "SYSTEM_EXT", 50: "SYSTEM_EXT_DB", 51: "SYSTEM_EXT_QUEUE", 52: "CONTAINER", 53: "CONTAINER_DB", 54: "CONTAINER_QUEUE", 55: "CONTAINER_EXT", 56: "CONTAINER_EXT_DB", 57: "CONTAINER_EXT_QUEUE", 58: "COMPONENT", 59: "COMPONENT_DB", 60: "COMPONENT_QUEUE", 61: "COMPONENT_EXT", 62: "COMPONENT_EXT_DB", 63: "COMPONENT_EXT_QUEUE", 64: "REL", 65: "BIREL", 66: "REL_U", 67: "REL_D", 68: "REL_L", 69: "REL_R", 70: "REL_B", 71: "REL_INDEX", 72: "UPDATE_EL_STYLE", 73: "UPDATE_REL_STYLE", 74: "UPDATE_LAYOUT_CONFIG", 76: "STR", 77: "STR_KEY", 78: "STR_VALUE", 79: "ATTRIBUTE", 80: "ATTRIBUTE_EMPTY" }, + productions_: [0, [3, 1], [3, 1], [5, 1], [5, 1], [5, 1], [5, 1], [4, 1], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [13, 1], [13, 1], [13, 2], [19, 1], [19, 2], [19, 3], [21, 1], [21, 1], [21, 2], [21, 2], [21, 1], [29, 3], [30, 3], [30, 3], [30, 4], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [31, 1], [20, 1], [20, 2], [20, 3], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 1], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [35, 1], [35, 2], [75, 1], [75, 2], [75, 1], [75, 1]], + performAction: function(_, x, m, g, T, h, Tt) { + var y = h.length - 1; + switch (T) { + case 3: + g.setDirection("TB"); + break; + case 4: + g.setDirection("BT"); + break; + case 5: + g.setDirection("RL"); + break; + case 6: + g.setDirection("LR"); + break; + case 8: + case 9: + case 10: + case 11: + case 12: + g.setC4Type(h[y - 3]); + break; + case 19: + g.setTitle(h[y].substring(6)), this.$ = h[y].substring(6); + break; + case 20: + g.setAccDescription(h[y].substring(15)), this.$ = h[y].substring(15); + break; + case 21: + this.$ = h[y].trim(), g.setTitle(this.$); + break; + case 22: + case 23: + this.$ = h[y].trim(), g.setAccDescription(this.$); + break; + case 28: + case 29: + h[y].splice(2, 0, "ENTERPRISE"), g.addPersonOrSystemBoundary(...h[y]), this.$ = h[y]; + break; + case 30: + g.addPersonOrSystemBoundary(...h[y]), this.$ = h[y]; + break; + case 31: + h[y].splice(2, 0, "CONTAINER"), g.addContainerBoundary(...h[y]), this.$ = h[y]; + break; + case 32: + g.addDeploymentNode("node", ...h[y]), this.$ = h[y]; + break; + case 33: + g.addDeploymentNode("nodeL", ...h[y]), this.$ = h[y]; + break; + case 34: + g.addDeploymentNode("nodeR", ...h[y]), this.$ = h[y]; + break; + case 35: + g.popBoundaryParseStack(); + break; + case 39: + g.addPersonOrSystem("person", ...h[y]), this.$ = h[y]; + break; + case 40: + g.addPersonOrSystem("external_person", ...h[y]), this.$ = h[y]; + break; + case 41: + g.addPersonOrSystem("system", ...h[y]), this.$ = h[y]; + break; + case 42: + g.addPersonOrSystem("system_db", ...h[y]), this.$ = h[y]; + break; + case 43: + g.addPersonOrSystem("system_queue", ...h[y]), this.$ = h[y]; + break; + case 44: + g.addPersonOrSystem("external_system", ...h[y]), this.$ = h[y]; + break; + case 45: + g.addPersonOrSystem("external_system_db", ...h[y]), this.$ = h[y]; + break; + case 46: + g.addPersonOrSystem("external_system_queue", ...h[y]), this.$ = h[y]; + break; + case 47: + g.addContainer("container", ...h[y]), this.$ = h[y]; + break; + case 48: + g.addContainer("container_db", ...h[y]), this.$ = h[y]; + break; + case 49: + g.addContainer("container_queue", ...h[y]), this.$ = h[y]; + break; + case 50: + g.addContainer("external_container", ...h[y]), this.$ = h[y]; + break; + case 51: + g.addContainer("external_container_db", ...h[y]), this.$ = h[y]; + break; + case 52: + g.addContainer("external_container_queue", ...h[y]), this.$ = h[y]; + break; + case 53: + g.addComponent("component", ...h[y]), this.$ = h[y]; + break; + case 54: + g.addComponent("component_db", ...h[y]), this.$ = h[y]; + break; + case 55: + g.addComponent("component_queue", ...h[y]), this.$ = h[y]; + break; + case 56: + g.addComponent("external_component", ...h[y]), this.$ = h[y]; + break; + case 57: + g.addComponent("external_component_db", ...h[y]), this.$ = h[y]; + break; + case 58: + g.addComponent("external_component_queue", ...h[y]), this.$ = h[y]; + break; + case 60: + g.addRel("rel", ...h[y]), this.$ = h[y]; + break; + case 61: + g.addRel("birel", ...h[y]), this.$ = h[y]; + break; + case 62: + g.addRel("rel_u", ...h[y]), this.$ = h[y]; + break; + case 63: + g.addRel("rel_d", ...h[y]), this.$ = h[y]; + break; + case 64: + g.addRel("rel_l", ...h[y]), this.$ = h[y]; + break; + case 65: + g.addRel("rel_r", ...h[y]), this.$ = h[y]; + break; + case 66: + g.addRel("rel_b", ...h[y]), this.$ = h[y]; + break; + case 67: + h[y].splice(0, 1), g.addRel("rel", ...h[y]), this.$ = h[y]; + break; + case 68: + g.updateElStyle("update_el_style", ...h[y]), this.$ = h[y]; + break; + case 69: + g.updateRelStyle("update_rel_style", ...h[y]), this.$ = h[y]; + break; + case 70: + g.updateLayoutConfig("update_layout_config", ...h[y]), this.$ = h[y]; + break; + case 71: + this.$ = [h[y]]; + break; + case 72: + h[y].unshift(h[y - 1]), this.$ = h[y]; + break; + case 73: + case 75: + this.$ = h[y].trim(); + break; + case 74: + let Et = {}; + Et[h[y - 1].trim()] = h[y].trim(), this.$ = Et; + break; + case 76: + this.$ = ""; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 7: [1, 6], 8: [1, 7], 9: [1, 8], 10: 4, 11: [1, 9], 15: [1, 10], 16: [1, 11], 17: [1, 12], 18: [1, 13] }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 7] }, { 1: [2, 3] }, { 1: [2, 4] }, { 1: [2, 5] }, { 1: [2, 6] }, { 12: [1, 14] }, { 12: [1, 15] }, { 12: [1, 16] }, { 12: [1, 17] }, { 12: [1, 18] }, { 13: 19, 19: 20, 20: 21, 21: 22, 22: t, 23: r, 24: o, 26: l, 28: n, 29: 49, 30: 61, 32: 62, 34: a, 36: s, 37: i, 38: u, 39: d, 40: f, 41: p, 43: 23, 44: E, 45: O, 46: R, 47: S, 48: L, 49: Y, 50: Q, 51: H, 52: q, 53: G, 54: K, 55: J, 56: Z, 57: $, 58: tt, 59: et, 60: nt, 61: it, 62: st, 63: at, 64: rt, 65: lt, 66: ot, 67: ct, 68: ht, 69: ut, 70: dt, 71: ft, 72: pt, 73: yt, 74: gt }, { 13: 70, 19: 20, 20: 21, 21: 22, 22: t, 23: r, 24: o, 26: l, 28: n, 29: 49, 30: 61, 32: 62, 34: a, 36: s, 37: i, 38: u, 39: d, 40: f, 41: p, 43: 23, 44: E, 45: O, 46: R, 47: S, 48: L, 49: Y, 50: Q, 51: H, 52: q, 53: G, 54: K, 55: J, 56: Z, 57: $, 58: tt, 59: et, 60: nt, 61: it, 62: st, 63: at, 64: rt, 65: lt, 66: ot, 67: ct, 68: ht, 69: ut, 70: dt, 71: ft, 72: pt, 73: yt, 74: gt }, { 13: 71, 19: 20, 20: 21, 21: 22, 22: t, 23: r, 24: o, 26: l, 28: n, 29: 49, 30: 61, 32: 62, 34: a, 36: s, 37: i, 38: u, 39: d, 40: f, 41: p, 43: 23, 44: E, 45: O, 46: R, 47: S, 48: L, 49: Y, 50: Q, 51: H, 52: q, 53: G, 54: K, 55: J, 56: Z, 57: $, 58: tt, 59: et, 60: nt, 61: it, 62: st, 63: at, 64: rt, 65: lt, 66: ot, 67: ct, 68: ht, 69: ut, 70: dt, 71: ft, 72: pt, 73: yt, 74: gt }, { 13: 72, 19: 20, 20: 21, 21: 22, 22: t, 23: r, 24: o, 26: l, 28: n, 29: 49, 30: 61, 32: 62, 34: a, 36: s, 37: i, 38: u, 39: d, 40: f, 41: p, 43: 23, 44: E, 45: O, 46: R, 47: S, 48: L, 49: Y, 50: Q, 51: H, 52: q, 53: G, 54: K, 55: J, 56: Z, 57: $, 58: tt, 59: et, 60: nt, 61: it, 62: st, 63: at, 64: rt, 65: lt, 66: ot, 67: ct, 68: ht, 69: ut, 70: dt, 71: ft, 72: pt, 73: yt, 74: gt }, { 13: 73, 19: 20, 20: 21, 21: 22, 22: t, 23: r, 24: o, 26: l, 28: n, 29: 49, 30: 61, 32: 62, 34: a, 36: s, 37: i, 38: u, 39: d, 40: f, 41: p, 43: 23, 44: E, 45: O, 46: R, 47: S, 48: L, 49: Y, 50: Q, 51: H, 52: q, 53: G, 54: K, 55: J, 56: Z, 57: $, 58: tt, 59: et, 60: nt, 61: it, 62: st, 63: at, 64: rt, 65: lt, 66: ot, 67: ct, 68: ht, 69: ut, 70: dt, 71: ft, 72: pt, 73: yt, 74: gt }, { 14: [1, 74] }, e(Ct, [2, 13], { 43: 23, 29: 49, 30: 61, 32: 62, 20: 75, 34: a, 36: s, 37: i, 38: u, 39: d, 40: f, 41: p, 44: E, 45: O, 46: R, 47: S, 48: L, 49: Y, 50: Q, 51: H, 52: q, 53: G, 54: K, 55: J, 56: Z, 57: $, 58: tt, 59: et, 60: nt, 61: it, 62: st, 63: at, 64: rt, 65: lt, 66: ot, 67: ct, 68: ht, 69: ut, 70: dt, 71: ft, 72: pt, 73: yt, 74: gt }), e(Ct, [2, 14]), e(Vt, [2, 16], { 12: [1, 76] }), e(Ct, [2, 36], { 12: [1, 77] }), e(Ot, [2, 19]), e(Ot, [2, 20]), { 25: [1, 78] }, { 27: [1, 79] }, e(Ot, [2, 23]), { 35: 80, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 86, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 87, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 88, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 89, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 90, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 91, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 92, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 93, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 94, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 95, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 96, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 97, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 98, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 99, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 100, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 101, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 102, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 103, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 104, 75: 81, 76: k, 77: A, 79: C, 80: v }, e(w, [2, 59]), { 35: 105, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 106, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 107, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 108, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 109, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 110, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 111, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 112, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 113, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 114, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 115, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 20: 116, 29: 49, 30: 61, 32: 62, 34: a, 36: s, 37: i, 38: u, 39: d, 40: f, 41: p, 43: 23, 44: E, 45: O, 46: R, 47: S, 48: L, 49: Y, 50: Q, 51: H, 52: q, 53: G, 54: K, 55: J, 56: Z, 57: $, 58: tt, 59: et, 60: nt, 61: it, 62: st, 63: at, 64: rt, 65: lt, 66: ot, 67: ct, 68: ht, 69: ut, 70: dt, 71: ft, 72: pt, 73: yt, 74: gt }, { 12: [1, 118], 33: [1, 117] }, { 35: 119, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 120, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 121, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 122, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 123, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 124, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 35: 125, 75: 81, 76: k, 77: A, 79: C, 80: v }, { 14: [1, 126] }, { 14: [1, 127] }, { 14: [1, 128] }, { 14: [1, 129] }, { 1: [2, 8] }, e(Ct, [2, 15]), e(Vt, [2, 17], { 21: 22, 19: 130, 22: t, 23: r, 24: o, 26: l, 28: n }), e(Ct, [2, 37], { 19: 20, 20: 21, 21: 22, 43: 23, 29: 49, 30: 61, 32: 62, 13: 131, 22: t, 23: r, 24: o, 26: l, 28: n, 34: a, 36: s, 37: i, 38: u, 39: d, 40: f, 41: p, 44: E, 45: O, 46: R, 47: S, 48: L, 49: Y, 50: Q, 51: H, 52: q, 53: G, 54: K, 55: J, 56: Z, 57: $, 58: tt, 59: et, 60: nt, 61: it, 62: st, 63: at, 64: rt, 65: lt, 66: ot, 67: ct, 68: ht, 69: ut, 70: dt, 71: ft, 72: pt, 73: yt, 74: gt }), e(Ot, [2, 21]), e(Ot, [2, 22]), e(w, [2, 39]), e(ie, [2, 71], { 75: 81, 35: 132, 76: k, 77: A, 79: C, 80: v }), e(Pt, [2, 73]), { 78: [1, 133] }, e(Pt, [2, 75]), e(Pt, [2, 76]), e(w, [2, 40]), e(w, [2, 41]), e(w, [2, 42]), e(w, [2, 43]), e(w, [2, 44]), e(w, [2, 45]), e(w, [2, 46]), e(w, [2, 47]), e(w, [2, 48]), e(w, [2, 49]), e(w, [2, 50]), e(w, [2, 51]), e(w, [2, 52]), e(w, [2, 53]), e(w, [2, 54]), e(w, [2, 55]), e(w, [2, 56]), e(w, [2, 57]), e(w, [2, 58]), e(w, [2, 60]), e(w, [2, 61]), e(w, [2, 62]), e(w, [2, 63]), e(w, [2, 64]), e(w, [2, 65]), e(w, [2, 66]), e(w, [2, 67]), e(w, [2, 68]), e(w, [2, 69]), e(w, [2, 70]), { 31: 134, 42: [1, 135] }, { 12: [1, 136] }, { 33: [1, 137] }, e(mt, [2, 28]), e(mt, [2, 29]), e(mt, [2, 30]), e(mt, [2, 31]), e(mt, [2, 32]), e(mt, [2, 33]), e(mt, [2, 34]), { 1: [2, 9] }, { 1: [2, 10] }, { 1: [2, 11] }, { 1: [2, 12] }, e(Vt, [2, 18]), e(Ct, [2, 38]), e(ie, [2, 72]), e(Pt, [2, 74]), e(w, [2, 24]), e(w, [2, 35]), e(zt, [2, 25]), e(zt, [2, 26], { 12: [1, 138] }), e(zt, [2, 27])], + defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 7], 5: [2, 3], 6: [2, 4], 7: [2, 5], 8: [2, 6], 74: [2, 8], 126: [2, 9], 127: [2, 10], 128: [2, 11], 129: [2, 12] }, + parseError: function(_, x) { + if (x.recoverable) + this.trace(_); + else { + var m = new Error(_); + throw m.hash = x, m; + } + }, + parse: function(_) { + var x = this, m = [0], g = [], T = [null], h = [], Tt = this.table, y = "", Et = 0, se = 0, ke = 2, ae = 1, Ae = h.slice.call(arguments, 1), D = Object.create(this.lexer), kt = { yy: {} }; + for (var Qt in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, Qt) && (kt.yy[Qt] = this.yy[Qt]); + D.setInput(_, kt.yy), kt.yy.lexer = D, kt.yy.parser = this, typeof D.yylloc > "u" && (D.yylloc = {}); + var Ht = D.yylloc; + h.push(Ht); + var Ce = D.options && D.options.ranges; + typeof kt.yy.parseError == "function" ? this.parseError = kt.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function ve() { + var X; + return X = g.pop() || D.lex() || ae, typeof X != "number" && (X instanceof Array && (g = X, X = g.pop()), X = x.symbols_[X] || X), X; + } + for (var M, At, N, qt, vt = {}, Mt, z, re, Lt; ; ) { + if (At = m[m.length - 1], this.defaultActions[At] ? N = this.defaultActions[At] : ((M === null || typeof M > "u") && (M = ve()), N = Tt[At] && Tt[At][M]), typeof N > "u" || !N.length || !N[0]) { + var Gt = ""; + Lt = []; + for (Mt in Tt[At]) + this.terminals_[Mt] && Mt > ke && Lt.push("'" + this.terminals_[Mt] + "'"); + D.showPosition ? Gt = "Parse error on line " + (Et + 1) + `: +` + D.showPosition() + ` +Expecting ` + Lt.join(", ") + ", got '" + (this.terminals_[M] || M) + "'" : Gt = "Parse error on line " + (Et + 1) + ": Unexpected " + (M == ae ? "end of input" : "'" + (this.terminals_[M] || M) + "'"), this.parseError(Gt, { + text: D.match, + token: this.terminals_[M] || M, + line: D.yylineno, + loc: Ht, + expected: Lt + }); + } + if (N[0] instanceof Array && N.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + At + ", token: " + M); + switch (N[0]) { + case 1: + m.push(M), T.push(D.yytext), h.push(D.yylloc), m.push(N[1]), M = null, se = D.yyleng, y = D.yytext, Et = D.yylineno, Ht = D.yylloc; + break; + case 2: + if (z = this.productions_[N[1]][1], vt.$ = T[T.length - z], vt._$ = { + first_line: h[h.length - (z || 1)].first_line, + last_line: h[h.length - 1].last_line, + first_column: h[h.length - (z || 1)].first_column, + last_column: h[h.length - 1].last_column + }, Ce && (vt._$.range = [ + h[h.length - (z || 1)].range[0], + h[h.length - 1].range[1] + ]), qt = this.performAction.apply(vt, [ + y, + se, + Et, + kt.yy, + N[1], + T, + h + ].concat(Ae)), typeof qt < "u") + return qt; + z && (m = m.slice(0, -1 * z * 2), T = T.slice(0, -1 * z), h = h.slice(0, -1 * z)), m.push(this.productions_[N[1]][0]), T.push(vt.$), h.push(vt._$), re = Tt[m[m.length - 2]][m[m.length - 1]], m.push(re); + break; + case 3: + return !0; + } + } + return !0; + } + }, Ee = function() { + var bt = { + EOF: 1, + parseError: function(x, m) { + if (this.yy.parser) + this.yy.parser.parseError(x, m); + else + throw new Error(x); + }, + // resets the lexer, sets new input + setInput: function(_, x) { + return this.yy = x || this.yy || {}, this._input = _, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var _ = this._input[0]; + this.yytext += _, this.yyleng++, this.offset++, this.match += _, this.matched += _; + var x = _.match(/(?:\r\n?|\n).*/g); + return x ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), _; + }, + // unshifts one char (or a string) into the input + unput: function(_) { + var x = _.length, m = _.split(/(?:\r\n?|\n)/g); + this._input = _ + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - x), this.offset -= x; + var g = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), m.length - 1 && (this.yylineno -= m.length - 1); + var T = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: m ? (m.length === g.length ? this.yylloc.first_column : 0) + g[g.length - m.length].length - m[0].length : this.yylloc.first_column - x + }, this.options.ranges && (this.yylloc.range = [T[0], T[0] + this.yyleng - x]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(_) { + this.unput(this.match.slice(_)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var _ = this.matched.substr(0, this.matched.length - this.match.length); + return (_.length > 20 ? "..." : "") + _.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var _ = this.match; + return _.length < 20 && (_ += this._input.substr(0, 20 - _.length)), (_.substr(0, 20) + (_.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var _ = this.pastInput(), x = new Array(_.length + 1).join("-"); + return _ + this.upcomingInput() + ` +` + x + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(_, x) { + var m, g, T; + if (this.options.backtrack_lexer && (T = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (T.yylloc.range = this.yylloc.range.slice(0))), g = _[0].match(/(?:\r\n?|\n).*/g), g && (this.yylineno += g.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: g ? g[g.length - 1].length - g[g.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + _[0].length + }, this.yytext += _[0], this.match += _[0], this.matches = _, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(_[0].length), this.matched += _[0], m = this.performAction.call(this, this.yy, this, x, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), m) + return m; + if (this._backtrack) { + for (var h in T) + this[h] = T[h]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var _, x, m, g; + this._more || (this.yytext = "", this.match = ""); + for (var T = this._currentRules(), h = 0; h < T.length; h++) + if (m = this._input.match(this.rules[T[h]]), m && (!x || m[0].length > x[0].length)) { + if (x = m, g = h, this.options.backtrack_lexer) { + if (_ = this.test_match(m, T[h]), _ !== !1) + return _; + if (this._backtrack) { + x = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return x ? (_ = this.test_match(x, T[g]), _ !== !1 ? _ : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var x = this.next(); + return x || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(x) { + this.conditionStack.push(x); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var x = this.conditionStack.length - 1; + return x > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(x) { + return x = this.conditionStack.length - 1 - Math.abs(x || 0), x >= 0 ? this.conditionStack[x] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(x) { + this.begin(x); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: {}, + performAction: function(x, m, g, T) { + switch (g) { + case 0: + return 6; + case 1: + return 7; + case 2: + return 8; + case 3: + return 9; + case 4: + return 22; + case 5: + return 23; + case 6: + return this.begin("acc_title"), 24; + case 7: + return this.popState(), "acc_title_value"; + case 8: + return this.begin("acc_descr"), 26; + case 9: + return this.popState(), "acc_descr_value"; + case 10: + this.begin("acc_descr_multiline"); + break; + case 11: + this.popState(); + break; + case 12: + return "acc_descr_multiline_value"; + case 13: + break; + case 14: + c; + break; + case 15: + return 12; + case 16: + break; + case 17: + return 11; + case 18: + return 15; + case 19: + return 16; + case 20: + return 17; + case 21: + return 18; + case 22: + return this.begin("person_ext"), 45; + case 23: + return this.begin("person"), 44; + case 24: + return this.begin("system_ext_queue"), 51; + case 25: + return this.begin("system_ext_db"), 50; + case 26: + return this.begin("system_ext"), 49; + case 27: + return this.begin("system_queue"), 48; + case 28: + return this.begin("system_db"), 47; + case 29: + return this.begin("system"), 46; + case 30: + return this.begin("boundary"), 37; + case 31: + return this.begin("enterprise_boundary"), 34; + case 32: + return this.begin("system_boundary"), 36; + case 33: + return this.begin("container_ext_queue"), 57; + case 34: + return this.begin("container_ext_db"), 56; + case 35: + return this.begin("container_ext"), 55; + case 36: + return this.begin("container_queue"), 54; + case 37: + return this.begin("container_db"), 53; + case 38: + return this.begin("container"), 52; + case 39: + return this.begin("container_boundary"), 38; + case 40: + return this.begin("component_ext_queue"), 63; + case 41: + return this.begin("component_ext_db"), 62; + case 42: + return this.begin("component_ext"), 61; + case 43: + return this.begin("component_queue"), 60; + case 44: + return this.begin("component_db"), 59; + case 45: + return this.begin("component"), 58; + case 46: + return this.begin("node"), 39; + case 47: + return this.begin("node"), 39; + case 48: + return this.begin("node_l"), 40; + case 49: + return this.begin("node_r"), 41; + case 50: + return this.begin("rel"), 64; + case 51: + return this.begin("birel"), 65; + case 52: + return this.begin("rel_u"), 66; + case 53: + return this.begin("rel_u"), 66; + case 54: + return this.begin("rel_d"), 67; + case 55: + return this.begin("rel_d"), 67; + case 56: + return this.begin("rel_l"), 68; + case 57: + return this.begin("rel_l"), 68; + case 58: + return this.begin("rel_r"), 69; + case 59: + return this.begin("rel_r"), 69; + case 60: + return this.begin("rel_b"), 70; + case 61: + return this.begin("rel_index"), 71; + case 62: + return this.begin("update_el_style"), 72; + case 63: + return this.begin("update_rel_style"), 73; + case 64: + return this.begin("update_layout_config"), 74; + case 65: + return "EOF_IN_STRUCT"; + case 66: + return this.begin("attribute"), "ATTRIBUTE_EMPTY"; + case 67: + this.begin("attribute"); + break; + case 68: + this.popState(), this.popState(); + break; + case 69: + return 80; + case 70: + break; + case 71: + return 80; + case 72: + this.begin("string"); + break; + case 73: + this.popState(); + break; + case 74: + return "STR"; + case 75: + this.begin("string_kv"); + break; + case 76: + return this.begin("string_kv_key"), "STR_KEY"; + case 77: + this.popState(), this.begin("string_kv_value"); + break; + case 78: + return "STR_VALUE"; + case 79: + this.popState(), this.popState(); + break; + case 80: + return "STR"; + case 81: + return "LBRACE"; + case 82: + return "RBRACE"; + case 83: + return "SPACE"; + case 84: + return "EOL"; + case 85: + return 14; + } + }, + rules: [/^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:title\s[^#\n;]+)/, /^(?:accDescription\s[^#\n;]+)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:C4Context\b)/, /^(?:C4Container\b)/, /^(?:C4Component\b)/, /^(?:C4Dynamic\b)/, /^(?:C4Deployment\b)/, /^(?:Person_Ext\b)/, /^(?:Person\b)/, /^(?:SystemQueue_Ext\b)/, /^(?:SystemDb_Ext\b)/, /^(?:System_Ext\b)/, /^(?:SystemQueue\b)/, /^(?:SystemDb\b)/, /^(?:System\b)/, /^(?:Boundary\b)/, /^(?:Enterprise_Boundary\b)/, /^(?:System_Boundary\b)/, /^(?:ContainerQueue_Ext\b)/, /^(?:ContainerDb_Ext\b)/, /^(?:Container_Ext\b)/, /^(?:ContainerQueue\b)/, /^(?:ContainerDb\b)/, /^(?:Container\b)/, /^(?:Container_Boundary\b)/, /^(?:ComponentQueue_Ext\b)/, /^(?:ComponentDb_Ext\b)/, /^(?:Component_Ext\b)/, /^(?:ComponentQueue\b)/, /^(?:ComponentDb\b)/, /^(?:Component\b)/, /^(?:Deployment_Node\b)/, /^(?:Node\b)/, /^(?:Node_L\b)/, /^(?:Node_R\b)/, /^(?:Rel\b)/, /^(?:BiRel\b)/, /^(?:Rel_Up\b)/, /^(?:Rel_U\b)/, /^(?:Rel_Down\b)/, /^(?:Rel_D\b)/, /^(?:Rel_Left\b)/, /^(?:Rel_L\b)/, /^(?:Rel_Right\b)/, /^(?:Rel_R\b)/, /^(?:Rel_Back\b)/, /^(?:RelIndex\b)/, /^(?:UpdateElementStyle\b)/, /^(?:UpdateRelStyle\b)/, /^(?:UpdateLayoutConfig\b)/, /^(?:$)/, /^(?:[(][ ]*[,])/, /^(?:[(])/, /^(?:[)])/, /^(?:,,)/, /^(?:,)/, /^(?:[ ]*["]["])/, /^(?:[ ]*["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:[ ]*[\$])/, /^(?:[^=]*)/, /^(?:[=][ ]*["])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:[^,]+)/, /^(?:\{)/, /^(?:\})/, /^(?:[\s]+)/, /^(?:[\n\r]+)/, /^(?:$)/], + conditions: { acc_descr_multiline: { rules: [11, 12], inclusive: !1 }, acc_descr: { rules: [9], inclusive: !1 }, acc_title: { rules: [7], inclusive: !1 }, string_kv_value: { rules: [78, 79], inclusive: !1 }, string_kv_key: { rules: [77], inclusive: !1 }, string_kv: { rules: [76], inclusive: !1 }, string: { rules: [73, 74], inclusive: !1 }, attribute: { rules: [68, 69, 70, 71, 72, 75, 80], inclusive: !1 }, update_layout_config: { rules: [65, 66, 67, 68], inclusive: !1 }, update_rel_style: { rules: [65, 66, 67, 68], inclusive: !1 }, update_el_style: { rules: [65, 66, 67, 68], inclusive: !1 }, rel_b: { rules: [65, 66, 67, 68], inclusive: !1 }, rel_r: { rules: [65, 66, 67, 68], inclusive: !1 }, rel_l: { rules: [65, 66, 67, 68], inclusive: !1 }, rel_d: { rules: [65, 66, 67, 68], inclusive: !1 }, rel_u: { rules: [65, 66, 67, 68], inclusive: !1 }, rel_bi: { rules: [], inclusive: !1 }, rel: { rules: [65, 66, 67, 68], inclusive: !1 }, node_r: { rules: [65, 66, 67, 68], inclusive: !1 }, node_l: { rules: [65, 66, 67, 68], inclusive: !1 }, node: { rules: [65, 66, 67, 68], inclusive: !1 }, index: { rules: [], inclusive: !1 }, rel_index: { rules: [65, 66, 67, 68], inclusive: !1 }, component_ext_queue: { rules: [], inclusive: !1 }, component_ext_db: { rules: [65, 66, 67, 68], inclusive: !1 }, component_ext: { rules: [65, 66, 67, 68], inclusive: !1 }, component_queue: { rules: [65, 66, 67, 68], inclusive: !1 }, component_db: { rules: [65, 66, 67, 68], inclusive: !1 }, component: { rules: [65, 66, 67, 68], inclusive: !1 }, container_boundary: { rules: [65, 66, 67, 68], inclusive: !1 }, container_ext_queue: { rules: [65, 66, 67, 68], inclusive: !1 }, container_ext_db: { rules: [65, 66, 67, 68], inclusive: !1 }, container_ext: { rules: [65, 66, 67, 68], inclusive: !1 }, container_queue: { rules: [65, 66, 67, 68], inclusive: !1 }, container_db: { rules: [65, 66, 67, 68], inclusive: !1 }, container: { rules: [65, 66, 67, 68], inclusive: !1 }, birel: { rules: [65, 66, 67, 68], inclusive: !1 }, system_boundary: { rules: [65, 66, 67, 68], inclusive: !1 }, enterprise_boundary: { rules: [65, 66, 67, 68], inclusive: !1 }, boundary: { rules: [65, 66, 67, 68], inclusive: !1 }, system_ext_queue: { rules: [65, 66, 67, 68], inclusive: !1 }, system_ext_db: { rules: [65, 66, 67, 68], inclusive: !1 }, system_ext: { rules: [65, 66, 67, 68], inclusive: !1 }, system_queue: { rules: [65, 66, 67, 68], inclusive: !1 }, system_db: { rules: [65, 66, 67, 68], inclusive: !1 }, system: { rules: [65, 66, 67, 68], inclusive: !1 }, person_ext: { rules: [65, 66, 67, 68], inclusive: !1 }, person: { rules: [65, 66, 67, 68], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 81, 82, 83, 84, 85], inclusive: !0 } } + }; + return bt; + }(); + Xt.lexer = Ee; + function Wt() { + this.yy = {}; + } + return Wt.prototype = Xt, Xt.Parser = Wt, new Wt(); +}(); +Yt.parser = Yt; +const Be = Yt; +let U = [], _t = [""], P = "global", j = "", V = [ + { + alias: "global", + label: { text: "global" }, + type: { text: "global" }, + tags: null, + link: null, + parentBoundary: "" + } +], St = [], te = "", ee = !1, It = 4, jt = 2; +var de; +const Ye = function() { + return de; +}, Ie = function(e) { + de = ue(e, Dt()); +}, je = function(e, t, r, o, l, n, a, s, i) { + if (e == null || t === void 0 || t === null || r === void 0 || r === null || o === void 0 || o === null) + return; + let u = {}; + const d = St.find((f) => f.from === t && f.to === r); + if (d ? u = d : St.push(u), u.type = e, u.from = t, u.to = r, u.label = { text: o }, l == null) + u.techn = { text: "" }; + else if (typeof l == "object") { + let [f, p] = Object.entries(l)[0]; + u[f] = { text: p }; + } else + u.techn = { text: l }; + if (n == null) + u.descr = { text: "" }; + else if (typeof n == "object") { + let [f, p] = Object.entries(n)[0]; + u[f] = { text: p }; + } else + u.descr = { text: n }; + if (typeof a == "object") { + let [f, p] = Object.entries(a)[0]; + u[f] = p; + } else + u.sprite = a; + if (typeof s == "object") { + let [f, p] = Object.entries(s)[0]; + u[f] = p; + } else + u.tags = s; + if (typeof i == "object") { + let [f, p] = Object.entries(i)[0]; + u[f] = p; + } else + u.link = i; + u.wrap = xt(); +}, Ue = function(e, t, r, o, l, n, a) { + if (t === null || r === null) + return; + let s = {}; + const i = U.find((u) => u.alias === t); + if (i && t === i.alias ? s = i : (s.alias = t, U.push(s)), r == null ? s.label = { text: "" } : s.label = { text: r }, o == null) + s.descr = { text: "" }; + else if (typeof o == "object") { + let [u, d] = Object.entries(o)[0]; + s[u] = { text: d }; + } else + s.descr = { text: o }; + if (typeof l == "object") { + let [u, d] = Object.entries(l)[0]; + s[u] = d; + } else + s.sprite = l; + if (typeof n == "object") { + let [u, d] = Object.entries(n)[0]; + s[u] = d; + } else + s.tags = n; + if (typeof a == "object") { + let [u, d] = Object.entries(a)[0]; + s[u] = d; + } else + s.link = a; + s.typeC4Shape = { text: e }, s.parentBoundary = P, s.wrap = xt(); +}, Fe = function(e, t, r, o, l, n, a, s) { + if (t === null || r === null) + return; + let i = {}; + const u = U.find((d) => d.alias === t); + if (u && t === u.alias ? i = u : (i.alias = t, U.push(i)), r == null ? i.label = { text: "" } : i.label = { text: r }, o == null) + i.techn = { text: "" }; + else if (typeof o == "object") { + let [d, f] = Object.entries(o)[0]; + i[d] = { text: f }; + } else + i.techn = { text: o }; + if (l == null) + i.descr = { text: "" }; + else if (typeof l == "object") { + let [d, f] = Object.entries(l)[0]; + i[d] = { text: f }; + } else + i.descr = { text: l }; + if (typeof n == "object") { + let [d, f] = Object.entries(n)[0]; + i[d] = f; + } else + i.sprite = n; + if (typeof a == "object") { + let [d, f] = Object.entries(a)[0]; + i[d] = f; + } else + i.tags = a; + if (typeof s == "object") { + let [d, f] = Object.entries(s)[0]; + i[d] = f; + } else + i.link = s; + i.wrap = xt(), i.typeC4Shape = { text: e }, i.parentBoundary = P; +}, Ve = function(e, t, r, o, l, n, a, s) { + if (t === null || r === null) + return; + let i = {}; + const u = U.find((d) => d.alias === t); + if (u && t === u.alias ? i = u : (i.alias = t, U.push(i)), r == null ? i.label = { text: "" } : i.label = { text: r }, o == null) + i.techn = { text: "" }; + else if (typeof o == "object") { + let [d, f] = Object.entries(o)[0]; + i[d] = { text: f }; + } else + i.techn = { text: o }; + if (l == null) + i.descr = { text: "" }; + else if (typeof l == "object") { + let [d, f] = Object.entries(l)[0]; + i[d] = { text: f }; + } else + i.descr = { text: l }; + if (typeof n == "object") { + let [d, f] = Object.entries(n)[0]; + i[d] = f; + } else + i.sprite = n; + if (typeof a == "object") { + let [d, f] = Object.entries(a)[0]; + i[d] = f; + } else + i.tags = a; + if (typeof s == "object") { + let [d, f] = Object.entries(s)[0]; + i[d] = f; + } else + i.link = s; + i.wrap = xt(), i.typeC4Shape = { text: e }, i.parentBoundary = P; +}, ze = function(e, t, r, o, l) { + if (e === null || t === null) + return; + let n = {}; + const a = V.find((s) => s.alias === e); + if (a && e === a.alias ? n = a : (n.alias = e, V.push(n)), t == null ? n.label = { text: "" } : n.label = { text: t }, r == null) + n.type = { text: "system" }; + else if (typeof r == "object") { + let [s, i] = Object.entries(r)[0]; + n[s] = { text: i }; + } else + n.type = { text: r }; + if (typeof o == "object") { + let [s, i] = Object.entries(o)[0]; + n[s] = i; + } else + n.tags = o; + if (typeof l == "object") { + let [s, i] = Object.entries(l)[0]; + n[s] = i; + } else + n.link = l; + n.parentBoundary = P, n.wrap = xt(), j = P, P = e, _t.push(j); +}, Xe = function(e, t, r, o, l) { + if (e === null || t === null) + return; + let n = {}; + const a = V.find((s) => s.alias === e); + if (a && e === a.alias ? n = a : (n.alias = e, V.push(n)), t == null ? n.label = { text: "" } : n.label = { text: t }, r == null) + n.type = { text: "container" }; + else if (typeof r == "object") { + let [s, i] = Object.entries(r)[0]; + n[s] = { text: i }; + } else + n.type = { text: r }; + if (typeof o == "object") { + let [s, i] = Object.entries(o)[0]; + n[s] = i; + } else + n.tags = o; + if (typeof l == "object") { + let [s, i] = Object.entries(l)[0]; + n[s] = i; + } else + n.link = l; + n.parentBoundary = P, n.wrap = xt(), j = P, P = e, _t.push(j); +}, We = function(e, t, r, o, l, n, a, s) { + if (t === null || r === null) + return; + let i = {}; + const u = V.find((d) => d.alias === t); + if (u && t === u.alias ? i = u : (i.alias = t, V.push(i)), r == null ? i.label = { text: "" } : i.label = { text: r }, o == null) + i.type = { text: "node" }; + else if (typeof o == "object") { + let [d, f] = Object.entries(o)[0]; + i[d] = { text: f }; + } else + i.type = { text: o }; + if (l == null) + i.descr = { text: "" }; + else if (typeof l == "object") { + let [d, f] = Object.entries(l)[0]; + i[d] = { text: f }; + } else + i.descr = { text: l }; + if (typeof a == "object") { + let [d, f] = Object.entries(a)[0]; + i[d] = f; + } else + i.tags = a; + if (typeof s == "object") { + let [d, f] = Object.entries(s)[0]; + i[d] = f; + } else + i.link = s; + i.nodeType = e, i.parentBoundary = P, i.wrap = xt(), j = P, P = t, _t.push(j); +}, Qe = function() { + P = j, _t.pop(), j = _t.pop(), _t.push(j); +}, He = function(e, t, r, o, l, n, a, s, i, u, d) { + let f = U.find((p) => p.alias === t); + if (!(f === void 0 && (f = V.find((p) => p.alias === t), f === void 0))) { + if (r != null) + if (typeof r == "object") { + let [p, E] = Object.entries(r)[0]; + f[p] = E; + } else + f.bgColor = r; + if (o != null) + if (typeof o == "object") { + let [p, E] = Object.entries(o)[0]; + f[p] = E; + } else + f.fontColor = o; + if (l != null) + if (typeof l == "object") { + let [p, E] = Object.entries(l)[0]; + f[p] = E; + } else + f.borderColor = l; + if (n != null) + if (typeof n == "object") { + let [p, E] = Object.entries(n)[0]; + f[p] = E; + } else + f.shadowing = n; + if (a != null) + if (typeof a == "object") { + let [p, E] = Object.entries(a)[0]; + f[p] = E; + } else + f.shape = a; + if (s != null) + if (typeof s == "object") { + let [p, E] = Object.entries(s)[0]; + f[p] = E; + } else + f.sprite = s; + if (i != null) + if (typeof i == "object") { + let [p, E] = Object.entries(i)[0]; + f[p] = E; + } else + f.techn = i; + if (u != null) + if (typeof u == "object") { + let [p, E] = Object.entries(u)[0]; + f[p] = E; + } else + f.legendText = u; + if (d != null) + if (typeof d == "object") { + let [p, E] = Object.entries(d)[0]; + f[p] = E; + } else + f.legendSprite = d; + } +}, qe = function(e, t, r, o, l, n, a) { + const s = St.find((i) => i.from === t && i.to === r); + if (s !== void 0) { + if (o != null) + if (typeof o == "object") { + let [i, u] = Object.entries(o)[0]; + s[i] = u; + } else + s.textColor = o; + if (l != null) + if (typeof l == "object") { + let [i, u] = Object.entries(l)[0]; + s[i] = u; + } else + s.lineColor = l; + if (n != null) + if (typeof n == "object") { + let [i, u] = Object.entries(n)[0]; + s[i] = parseInt(u); + } else + s.offsetX = parseInt(n); + if (a != null) + if (typeof a == "object") { + let [i, u] = Object.entries(a)[0]; + s[i] = parseInt(u); + } else + s.offsetY = parseInt(a); + } +}, Ge = function(e, t, r) { + let o = It, l = jt; + if (typeof t == "object") { + const n = Object.values(t)[0]; + o = parseInt(n); + } else + o = parseInt(t); + if (typeof r == "object") { + const n = Object.values(r)[0]; + l = parseInt(n); + } else + l = parseInt(r); + o >= 1 && (It = o), l >= 1 && (jt = l); +}, Ke = function() { + return It; +}, Je = function() { + return jt; +}, Ze = function() { + return P; +}, $e = function() { + return j; +}, fe = function(e) { + return e == null ? U : U.filter((t) => t.parentBoundary === e); +}, t0 = function(e) { + return U.find((t) => t.alias === e); +}, e0 = function(e) { + return Object.keys(fe(e)); +}, pe = function(e) { + return e == null ? V : V.filter((t) => t.parentBoundary === e); +}, n0 = pe, i0 = function() { + return St; +}, s0 = function() { + return te; +}, a0 = function(e) { + ee = e; +}, xt = function() { + return ee; +}, r0 = function() { + U = [], V = [ + { + alias: "global", + label: { text: "global" }, + type: { text: "global" }, + tags: null, + link: null, + parentBoundary: "" + } + ], j = "", P = "global", _t = [""], St = [], _t = [""], te = "", ee = !1, It = 4, jt = 2; +}, l0 = { + SOLID: 0, + DOTTED: 1, + NOTE: 2, + SOLID_CROSS: 3, + DOTTED_CROSS: 4, + SOLID_OPEN: 5, + DOTTED_OPEN: 6, + LOOP_START: 10, + LOOP_END: 11, + ALT_START: 12, + ALT_ELSE: 13, + ALT_END: 14, + OPT_START: 15, + OPT_END: 16, + ACTIVE_START: 17, + ACTIVE_END: 18, + PAR_START: 19, + PAR_AND: 20, + PAR_END: 21, + RECT_START: 22, + RECT_END: 23, + SOLID_POINT: 24, + DOTTED_POINT: 25 +}, o0 = { + FILLED: 0, + OPEN: 1 +}, c0 = { + LEFTOF: 0, + RIGHTOF: 1, + OVER: 2 +}, h0 = function(e) { + te = ue(e, Dt()); +}, Jt = { + addPersonOrSystem: Ue, + addPersonOrSystemBoundary: ze, + addContainer: Fe, + addContainerBoundary: Xe, + addComponent: Ve, + addDeploymentNode: We, + popBoundaryParseStack: Qe, + addRel: je, + updateElStyle: He, + updateRelStyle: qe, + updateLayoutConfig: Ge, + autoWrap: xt, + setWrap: a0, + getC4ShapeArray: fe, + getC4Shape: t0, + getC4ShapeKeys: e0, + getBoundaries: pe, + getBoundarys: n0, + getCurrentBoundaryParse: Ze, + getParentBoundaryParse: $e, + getRels: i0, + getTitle: s0, + getC4Type: Ye, + getC4ShapeInRow: Ke, + getC4BoundaryInRow: Je, + setAccTitle: we, + getAccTitle: Oe, + getAccDescription: Te, + setAccDescription: Re, + getConfig: () => Dt().c4, + clear: r0, + LINETYPE: l0, + ARROWTYPE: o0, + PLACEMENT: c0, + setTitle: h0, + setC4Type: Ie + // apply, +}, ne = function(e, t) { + return Le(e, t); +}, ye = function(e, t, r, o, l, n) { + const a = e.append("image"); + a.attr("width", t), a.attr("height", r), a.attr("x", o), a.attr("y", l); + let s = n.startsWith("data:image/png;base64") ? n : De.sanitizeUrl(n); + a.attr("xlink:href", s); +}, u0 = (e, t, r) => { + const o = e.append("g"); + let l = 0; + for (let n of t) { + let a = n.textColor ? n.textColor : "#444444", s = n.lineColor ? n.lineColor : "#444444", i = n.offsetX ? parseInt(n.offsetX) : 0, u = n.offsetY ? parseInt(n.offsetY) : 0, d = ""; + if (l === 0) { + let p = o.append("line"); + p.attr("x1", n.startPoint.x), p.attr("y1", n.startPoint.y), p.attr("x2", n.endPoint.x), p.attr("y2", n.endPoint.y), p.attr("stroke-width", "1"), p.attr("stroke", s), p.style("fill", "none"), n.type !== "rel_b" && p.attr("marker-end", "url(" + d + "#arrowhead)"), (n.type === "birel" || n.type === "rel_b") && p.attr("marker-start", "url(" + d + "#arrowend)"), l = -1; + } else { + let p = o.append("path"); + p.attr("fill", "none").attr("stroke-width", "1").attr("stroke", s).attr( + "d", + "Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx", n.startPoint.x).replaceAll("starty", n.startPoint.y).replaceAll( + "controlx", + n.startPoint.x + (n.endPoint.x - n.startPoint.x) / 2 - (n.endPoint.x - n.startPoint.x) / 4 + ).replaceAll("controly", n.startPoint.y + (n.endPoint.y - n.startPoint.y) / 2).replaceAll("stopx", n.endPoint.x).replaceAll("stopy", n.endPoint.y) + ), n.type !== "rel_b" && p.attr("marker-end", "url(" + d + "#arrowhead)"), (n.type === "birel" || n.type === "rel_b") && p.attr("marker-start", "url(" + d + "#arrowend)"); + } + let f = r.messageFont(); + W(r)( + n.label.text, + o, + Math.min(n.startPoint.x, n.endPoint.x) + Math.abs(n.endPoint.x - n.startPoint.x) / 2 + i, + Math.min(n.startPoint.y, n.endPoint.y) + Math.abs(n.endPoint.y - n.startPoint.y) / 2 + u, + n.label.width, + n.label.height, + { fill: a }, + f + ), n.techn && n.techn.text !== "" && (f = r.messageFont(), W(r)( + "[" + n.techn.text + "]", + o, + Math.min(n.startPoint.x, n.endPoint.x) + Math.abs(n.endPoint.x - n.startPoint.x) / 2 + i, + Math.min(n.startPoint.y, n.endPoint.y) + Math.abs(n.endPoint.y - n.startPoint.y) / 2 + r.messageFontSize + 5 + u, + Math.max(n.label.width, n.techn.width), + n.techn.height, + { fill: a, "font-style": "italic" }, + f + )); + } +}, d0 = function(e, t, r) { + const o = e.append("g"); + let l = t.bgColor ? t.bgColor : "none", n = t.borderColor ? t.borderColor : "#444444", a = t.fontColor ? t.fontColor : "black", s = { "stroke-width": 1, "stroke-dasharray": "7.0,7.0" }; + t.nodeType && (s = { "stroke-width": 1 }); + let i = { + x: t.x, + y: t.y, + fill: l, + stroke: n, + width: t.width, + height: t.height, + rx: 2.5, + ry: 2.5, + attrs: s + }; + ne(o, i); + let u = r.boundaryFont(); + u.fontWeight = "bold", u.fontSize = u.fontSize + 2, u.fontColor = a, W(r)( + t.label.text, + o, + t.x, + t.y + t.label.Y, + t.width, + t.height, + { fill: "#444444" }, + u + ), t.type && t.type.text !== "" && (u = r.boundaryFont(), u.fontColor = a, W(r)( + t.type.text, + o, + t.x, + t.y + t.type.Y, + t.width, + t.height, + { fill: "#444444" }, + u + )), t.descr && t.descr.text !== "" && (u = r.boundaryFont(), u.fontSize = u.fontSize - 2, u.fontColor = a, W(r)( + t.descr.text, + o, + t.x, + t.y + t.descr.Y, + t.width, + t.height, + { fill: "#444444" }, + u + )); +}, f0 = function(e, t, r) { + var f; + let o = t.bgColor ? t.bgColor : r[t.typeC4Shape.text + "_bg_color"], l = t.borderColor ? t.borderColor : r[t.typeC4Shape.text + "_border_color"], n = t.fontColor ? t.fontColor : "#FFFFFF", a = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII="; + switch (t.typeC4Shape.text) { + case "person": + a = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII="; + break; + case "external_person": + a = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII="; + break; + } + const s = e.append("g"); + s.attr("class", "person-man"); + const i = Ne(); + switch (t.typeC4Shape.text) { + case "person": + case "external_person": + case "system": + case "external_system": + case "container": + case "external_container": + case "component": + case "external_component": + i.x = t.x, i.y = t.y, i.fill = o, i.width = t.width, i.height = t.height, i.stroke = l, i.rx = 2.5, i.ry = 2.5, i.attrs = { "stroke-width": 0.5 }, ne(s, i); + break; + case "system_db": + case "external_system_db": + case "container_db": + case "external_container_db": + case "component_db": + case "external_component_db": + s.append("path").attr("fill", o).attr("stroke-width", "0.5").attr("stroke", l).attr( + "d", + "Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx", t.x).replaceAll("starty", t.y).replaceAll("half", t.width / 2).replaceAll("height", t.height) + ), s.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", l).attr( + "d", + "Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx", t.x).replaceAll("starty", t.y).replaceAll("half", t.width / 2) + ); + break; + case "system_queue": + case "external_system_queue": + case "container_queue": + case "external_container_queue": + case "component_queue": + case "external_component_queue": + s.append("path").attr("fill", o).attr("stroke-width", "0.5").attr("stroke", l).attr( + "d", + "Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx", t.x).replaceAll("starty", t.y).replaceAll("width", t.width).replaceAll("half", t.height / 2) + ), s.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", l).attr( + "d", + "Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx", t.x + t.width).replaceAll("starty", t.y).replaceAll("half", t.height / 2) + ); + break; + } + let u = k0(r, t.typeC4Shape.text); + switch (s.append("text").attr("fill", n).attr("font-family", u.fontFamily).attr("font-size", u.fontSize - 2).attr("font-style", "italic").attr("lengthAdjust", "spacing").attr("textLength", t.typeC4Shape.width).attr("x", t.x + t.width / 2 - t.typeC4Shape.width / 2).attr("y", t.y + t.typeC4Shape.Y).text("<<" + t.typeC4Shape.text + ">>"), t.typeC4Shape.text) { + case "person": + case "external_person": + ye( + s, + 48, + 48, + t.x + t.width / 2 - 24, + t.y + t.image.Y, + a + ); + break; + } + let d = r[t.typeC4Shape.text + "Font"](); + return d.fontWeight = "bold", d.fontSize = d.fontSize + 2, d.fontColor = n, W(r)( + t.label.text, + s, + t.x, + t.y + t.label.Y, + t.width, + t.height, + { fill: n }, + d + ), d = r[t.typeC4Shape.text + "Font"](), d.fontColor = n, t.techn && ((f = t.techn) == null ? void 0 : f.text) !== "" ? W(r)( + t.techn.text, + s, + t.x, + t.y + t.techn.Y, + t.width, + t.height, + { fill: n, "font-style": "italic" }, + d + ) : t.type && t.type.text !== "" && W(r)( + t.type.text, + s, + t.x, + t.y + t.type.Y, + t.width, + t.height, + { fill: n, "font-style": "italic" }, + d + ), t.descr && t.descr.text !== "" && (d = r.personFont(), d.fontColor = n, W(r)( + t.descr.text, + s, + t.x, + t.y + t.descr.Y, + t.width, + t.height, + { fill: n }, + d + )), t.height; +}, p0 = function(e) { + e.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr( + "d", + "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z" + ); +}, y0 = function(e) { + e.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( + "d", + "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z" + ); +}, g0 = function(e) { + e.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( + "d", + "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z" + ); +}, b0 = function(e) { + e.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z"); +}, _0 = function(e) { + e.append("defs").append("marker").attr("id", "arrowend").attr("refX", 1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 10 0 L 0 5 L 10 10 z"); +}, x0 = function(e) { + e.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); +}, m0 = function(e) { + e.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6); +}, E0 = function(e) { + const r = e.append("defs").append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 16).attr("refY", 4); + r.append("path").attr("fill", "black").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 9,2 V 6 L16,4 Z"), r.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 0,1 L 6,7 M 6,1 L 0,7"); +}, k0 = (e, t) => ({ + fontFamily: e[t + "FontFamily"], + fontSize: e[t + "FontSize"], + fontWeight: e[t + "FontWeight"] +}), W = function() { + function e(l, n, a, s, i, u, d) { + const f = n.append("text").attr("x", a + i / 2).attr("y", s + u / 2 + 5).style("text-anchor", "middle").text(l); + o(f, d); + } + function t(l, n, a, s, i, u, d, f) { + const { fontSize: p, fontFamily: E, fontWeight: O } = f, R = l.split(Kt.lineBreakRegex); + for (let S = 0; S < R.length; S++) { + const L = S * p - p * (R.length - 1) / 2, Y = n.append("text").attr("x", a + i / 2).attr("y", s).style("text-anchor", "middle").attr("dominant-baseline", "middle").style("font-size", p).style("font-weight", O).style("font-family", E); + Y.append("tspan").attr("dy", L).text(R[S]).attr("alignment-baseline", "mathematical"), o(Y, d); + } + } + function r(l, n, a, s, i, u, d, f) { + const p = n.append("switch"), O = p.append("foreignObject").attr("x", a).attr("y", s).attr("width", i).attr("height", u).append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + O.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(l), t(l, p, a, s, i, u, d, f), o(O, d); + } + function o(l, n) { + for (const a in n) + n.hasOwnProperty(a) && l.attr(a, n[a]); + } + return function(l) { + return l.textPlacement === "fo" ? r : l.textPlacement === "old" ? e : t; + }; +}(), F = { + drawRect: ne, + drawBoundary: d0, + drawC4Shape: f0, + drawRels: u0, + drawImage: ye, + insertArrowHead: b0, + insertArrowEnd: _0, + insertArrowFilledHead: x0, + insertDynamicNumber: m0, + insertArrowCrossHead: E0, + insertDatabaseIcon: p0, + insertComputerIcon: y0, + insertClockIcon: g0 +}; +let Ut = 0, Ft = 0, ge = 4, Zt = 2; +Yt.yy = Jt; +let b = {}; +class be { + constructor(t) { + this.name = "", this.data = {}, this.data.startx = void 0, this.data.stopx = void 0, this.data.starty = void 0, this.data.stopy = void 0, this.data.widthLimit = void 0, this.nextData = {}, this.nextData.startx = void 0, this.nextData.stopx = void 0, this.nextData.starty = void 0, this.nextData.stopy = void 0, this.nextData.cnt = 0, $t(t.db.getConfig()); + } + setData(t, r, o, l) { + this.nextData.startx = this.data.startx = t, this.nextData.stopx = this.data.stopx = r, this.nextData.starty = this.data.starty = o, this.nextData.stopy = this.data.stopy = l; + } + updateVal(t, r, o, l) { + t[r] === void 0 ? t[r] = o : t[r] = l(o, t[r]); + } + insert(t) { + this.nextData.cnt = this.nextData.cnt + 1; + let r = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + t.margin : this.nextData.stopx + t.margin * 2, o = r + t.width, l = this.nextData.starty + t.margin * 2, n = l + t.height; + (r >= this.data.widthLimit || o >= this.data.widthLimit || this.nextData.cnt > ge) && (r = this.nextData.startx + t.margin + b.nextLinePaddingX, l = this.nextData.stopy + t.margin * 2, this.nextData.stopx = o = r + t.width, this.nextData.starty = this.nextData.stopy, this.nextData.stopy = n = l + t.height, this.nextData.cnt = 1), t.x = r, t.y = l, this.updateVal(this.data, "startx", r, Math.min), this.updateVal(this.data, "starty", l, Math.min), this.updateVal(this.data, "stopx", o, Math.max), this.updateVal(this.data, "stopy", n, Math.max), this.updateVal(this.nextData, "startx", r, Math.min), this.updateVal(this.nextData, "starty", l, Math.min), this.updateVal(this.nextData, "stopx", o, Math.max), this.updateVal(this.nextData, "stopy", n, Math.max); + } + init(t) { + this.name = "", this.data = { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0, + widthLimit: void 0 + }, this.nextData = { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0, + cnt: 0 + }, $t(t.db.getConfig()); + } + bumpLastMargin(t) { + this.data.stopx += t, this.data.stopy += t; + } +} +const $t = function(e) { + Se(b, e), e.fontFamily && (b.personFontFamily = b.systemFontFamily = b.messageFontFamily = e.fontFamily), e.fontSize && (b.personFontSize = b.systemFontSize = b.messageFontSize = e.fontSize), e.fontWeight && (b.personFontWeight = b.systemFontWeight = b.messageFontWeight = e.fontWeight); +}, Rt = (e, t) => ({ + fontFamily: e[t + "FontFamily"], + fontSize: e[t + "FontSize"], + fontWeight: e[t + "FontWeight"] +}), Bt = (e) => ({ + fontFamily: e.boundaryFontFamily, + fontSize: e.boundaryFontSize, + fontWeight: e.boundaryFontWeight +}), A0 = (e) => ({ + fontFamily: e.messageFontFamily, + fontSize: e.messageFontSize, + fontWeight: e.messageFontWeight +}); +function I(e, t, r, o, l) { + if (!t[e].width) + if (r) + t[e].text = Me(t[e].text, l, o), t[e].textLines = t[e].text.split(Kt.lineBreakRegex).length, t[e].width = l, t[e].height = oe(t[e].text, o); + else { + let n = t[e].text.split(Kt.lineBreakRegex); + t[e].textLines = n.length; + let a = 0; + t[e].height = 0, t[e].width = 0; + for (const s of n) + t[e].width = Math.max( + wt(s, o), + t[e].width + ), a = oe(s, o), t[e].height = t[e].height + a; + } +} +const _e = function(e, t, r) { + t.x = r.data.startx, t.y = r.data.starty, t.width = r.data.stopx - r.data.startx, t.height = r.data.stopy - r.data.starty, t.label.y = b.c4ShapeMargin - 35; + let o = t.wrap && b.wrap, l = Bt(b); + l.fontSize = l.fontSize + 2, l.fontWeight = "bold"; + let n = wt(t.label.text, l); + I("label", t, o, l, n), F.drawBoundary(e, t, b); +}, xe = function(e, t, r, o) { + let l = 0; + for (const n of o) { + l = 0; + const a = r[n]; + let s = Rt(b, a.typeC4Shape.text); + switch (s.fontSize = s.fontSize - 2, a.typeC4Shape.width = wt( + "«" + a.typeC4Shape.text + "»", + s + ), a.typeC4Shape.height = s.fontSize + 2, a.typeC4Shape.Y = b.c4ShapePadding, l = a.typeC4Shape.Y + a.typeC4Shape.height - 4, a.image = { width: 0, height: 0, Y: 0 }, a.typeC4Shape.text) { + case "person": + case "external_person": + a.image.width = 48, a.image.height = 48, a.image.Y = l, l = a.image.Y + a.image.height; + break; + } + a.sprite && (a.image.width = 48, a.image.height = 48, a.image.Y = l, l = a.image.Y + a.image.height); + let i = a.wrap && b.wrap, u = b.width - b.c4ShapePadding * 2, d = Rt(b, a.typeC4Shape.text); + if (d.fontSize = d.fontSize + 2, d.fontWeight = "bold", I("label", a, i, d, u), a.label.Y = l + 8, l = a.label.Y + a.label.height, a.type && a.type.text !== "") { + a.type.text = "[" + a.type.text + "]"; + let E = Rt(b, a.typeC4Shape.text); + I("type", a, i, E, u), a.type.Y = l + 5, l = a.type.Y + a.type.height; + } else if (a.techn && a.techn.text !== "") { + a.techn.text = "[" + a.techn.text + "]"; + let E = Rt(b, a.techn.text); + I("techn", a, i, E, u), a.techn.Y = l + 5, l = a.techn.Y + a.techn.height; + } + let f = l, p = a.label.width; + if (a.descr && a.descr.text !== "") { + let E = Rt(b, a.typeC4Shape.text); + I("descr", a, i, E, u), a.descr.Y = l + 20, l = a.descr.Y + a.descr.height, p = Math.max(a.label.width, a.descr.width), f = l - a.descr.textLines * 5; + } + p = p + b.c4ShapePadding, a.width = Math.max(a.width || b.width, p, b.width), a.height = Math.max(a.height || b.height, f, b.height), a.margin = a.margin || b.c4ShapeMargin, e.insert(a), F.drawC4Shape(t, a, b); + } + e.bumpLastMargin(b.c4ShapeMargin); +}; +class B { + constructor(t, r) { + this.x = t, this.y = r; + } +} +let ce = function(e, t) { + let r = e.x, o = e.y, l = t.x, n = t.y, a = r + e.width / 2, s = o + e.height / 2, i = Math.abs(r - l), u = Math.abs(o - n), d = u / i, f = e.height / e.width, p = null; + return o == n && r < l ? p = new B(r + e.width, s) : o == n && r > l ? p = new B(r, s) : r == l && o < n ? p = new B(a, o + e.height) : r == l && o > n && (p = new B(a, o)), r > l && o < n ? f >= d ? p = new B(r, s + d * e.width / 2) : p = new B( + a - i / u * e.height / 2, + o + e.height + ) : r < l && o < n ? f >= d ? p = new B(r + e.width, s + d * e.width / 2) : p = new B( + a + i / u * e.height / 2, + o + e.height + ) : r < l && o > n ? f >= d ? p = new B(r + e.width, s - d * e.width / 2) : p = new B(a + e.height / 2 * i / u, o) : r > l && o > n && (f >= d ? p = new B(r, s - e.width / 2 * d) : p = new B(a - e.height / 2 * i / u, o)), p; +}, C0 = function(e, t) { + let r = { x: 0, y: 0 }; + r.x = t.x + t.width / 2, r.y = t.y + t.height / 2; + let o = ce(e, r); + r.x = e.x + e.width / 2, r.y = e.y + e.height / 2; + let l = ce(t, r); + return { startPoint: o, endPoint: l }; +}; +const v0 = function(e, t, r, o) { + let l = 0; + for (let n of t) { + l = l + 1; + let a = n.wrap && b.wrap, s = A0(b); + o.db.getC4Type() === "C4Dynamic" && (n.label.text = l + ": " + n.label.text); + let u = wt(n.label.text, s); + I("label", n, a, s, u), n.techn && n.techn.text !== "" && (u = wt(n.techn.text, s), I("techn", n, a, s, u)), n.descr && n.descr.text !== "" && (u = wt(n.descr.text, s), I("descr", n, a, s, u)); + let d = r(n.from), f = r(n.to), p = C0(d, f); + n.startPoint = p.startPoint, n.endPoint = p.endPoint; + } + F.drawRels(e, t, b); +}; +function me(e, t, r, o, l) { + let n = new be(l); + n.data.widthLimit = r.data.widthLimit / Math.min(Zt, o.length); + for (let [a, s] of o.entries()) { + let i = 0; + s.image = { width: 0, height: 0, Y: 0 }, s.sprite && (s.image.width = 48, s.image.height = 48, s.image.Y = i, i = s.image.Y + s.image.height); + let u = s.wrap && b.wrap, d = Bt(b); + if (d.fontSize = d.fontSize + 2, d.fontWeight = "bold", I( + "label", + s, + u, + d, + n.data.widthLimit + ), s.label.Y = i + 8, i = s.label.Y + s.label.height, s.type && s.type.text !== "") { + s.type.text = "[" + s.type.text + "]"; + let O = Bt(b); + I( + "type", + s, + u, + O, + n.data.widthLimit + ), s.type.Y = i + 5, i = s.type.Y + s.type.height; + } + if (s.descr && s.descr.text !== "") { + let O = Bt(b); + O.fontSize = O.fontSize - 2, I( + "descr", + s, + u, + O, + n.data.widthLimit + ), s.descr.Y = i + 20, i = s.descr.Y + s.descr.height; + } + if (a == 0 || a % Zt === 0) { + let O = r.data.startx + b.diagramMarginX, R = r.data.stopy + b.diagramMarginY + i; + n.setData(O, O, R, R); + } else { + let O = n.data.stopx !== n.data.startx ? n.data.stopx + b.diagramMarginX : n.data.startx, R = n.data.starty; + n.setData(O, O, R, R); + } + n.name = s.alias; + let f = l.db.getC4ShapeArray(s.alias), p = l.db.getC4ShapeKeys(s.alias); + p.length > 0 && xe( + n, + e, + f, + p + ), t = s.alias; + let E = l.db.getBoundarys(t); + E.length > 0 && me( + e, + t, + n, + E, + l + ), s.alias !== "global" && _e(e, s, n), r.data.stopy = Math.max( + n.data.stopy + b.c4ShapeMargin, + r.data.stopy + ), r.data.stopx = Math.max( + n.data.stopx + b.c4ShapeMargin, + r.data.stopx + ), Ut = Math.max(Ut, r.data.stopx), Ft = Math.max(Ft, r.data.stopy); + } +} +const w0 = function(e, t, r, o) { + b = Dt().c4; + const l = Dt().securityLevel; + let n; + l === "sandbox" && (n = Nt("#i" + t)); + const a = l === "sandbox" ? Nt(n.nodes()[0].contentDocument.body) : Nt("body"); + let s = o.db; + o.db.setWrap(b.wrap), ge = s.getC4ShapeInRow(), Zt = s.getC4BoundaryInRow(), le.debug(`C:${JSON.stringify(b, null, 2)}`); + const i = l === "sandbox" ? a.select(`[id="${t}"]`) : Nt(`[id="${t}"]`); + F.insertComputerIcon(i), F.insertDatabaseIcon(i), F.insertClockIcon(i); + let u = new be(o); + u.setData( + b.diagramMarginX, + b.diagramMarginX, + b.diagramMarginY, + b.diagramMarginY + ), u.data.widthLimit = screen.availWidth, Ut = b.diagramMarginX, Ft = b.diagramMarginY; + const d = o.db.getTitle(); + let f = o.db.getBoundarys(""); + me(i, "", u, f, o), F.insertArrowHead(i), F.insertArrowEnd(i), F.insertArrowCrossHead(i), F.insertArrowFilledHead(i), v0(i, o.db.getRels(), o.db.getC4Shape, o), u.data.stopx = Ut, u.data.stopy = Ft; + const p = u.data; + let O = p.stopy - p.starty + 2 * b.diagramMarginY; + const S = p.stopx - p.startx + 2 * b.diagramMarginX; + d && i.append("text").text(d).attr("x", (p.stopx - p.startx) / 2 - 4 * b.diagramMarginX).attr("y", p.starty + b.diagramMarginY), Pe(i, O, S, b.useMaxWidth); + const L = d ? 60 : 0; + i.attr( + "viewBox", + p.startx - b.diagramMarginX + " -" + (b.diagramMarginY + L) + " " + S + " " + (O + L) + ), le.debug("models:", p); +}, he = { + drawPersonOrSystemArray: xe, + drawBoundary: _e, + setConf: $t, + draw: w0 +}, O0 = (e) => `.person { + stroke: ${e.personBorder}; + fill: ${e.personBkg}; + } +`, T0 = O0, S0 = { + parser: Be, + db: Jt, + renderer: he, + styles: T0, + init: ({ c4: e, wrap: t }) => { + he.setConf(e), Jt.setWrap(t); + } +}; +export { + S0 as diagram +}; diff --git a/assets/lib/mermaid/c4Diagram-ae766693.js b/assets/lib/mermaid/c4Diagram-ae766693.js new file mode 100644 index 000000000..5daf9f832 --- /dev/null +++ b/assets/lib/mermaid/c4Diagram-ae766693.js @@ -0,0 +1,2473 @@ +import { s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, c as getConfig, d as sanitizeText, e as common, f as assignWithDepth, h as calculateTextWidth, l as log, i as configureSvgSize, w as wrapLabel, j as calculateTextHeight } from "./mermaid-6dc72991.js"; +import { select } from "d3"; +import { d as drawRect$1, g as getNoteRect } from "./svgDrawCommon-5e1cfd1d.js"; +import { sanitizeUrl } from "@braintree/sanitize-url"; +import "ts-dedent"; +import "dayjs"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 24], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 63], $V6 = [1, 64], $V7 = [1, 65], $V8 = [1, 66], $V9 = [1, 67], $Va = [1, 68], $Vb = [1, 69], $Vc = [1, 29], $Vd = [1, 30], $Ve = [1, 31], $Vf = [1, 32], $Vg = [1, 33], $Vh = [1, 34], $Vi = [1, 35], $Vj = [1, 36], $Vk = [1, 37], $Vl = [1, 38], $Vm = [1, 39], $Vn = [1, 40], $Vo = [1, 41], $Vp = [1, 42], $Vq = [1, 43], $Vr = [1, 44], $Vs = [1, 45], $Vt = [1, 46], $Vu = [1, 47], $Vv = [1, 48], $Vw = [1, 50], $Vx = [1, 51], $Vy = [1, 52], $Vz = [1, 53], $VA = [1, 54], $VB = [1, 55], $VC = [1, 56], $VD = [1, 57], $VE = [1, 58], $VF = [1, 59], $VG = [1, 60], $VH = [14, 42], $VI = [14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], $VJ = [12, 14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], $VK = [1, 82], $VL = [1, 83], $VM = [1, 84], $VN = [1, 85], $VO = [12, 14, 42], $VP = [12, 14, 33, 42], $VQ = [12, 14, 33, 42, 76, 77, 79, 80], $VR = [12, 33], $VS = [34, 36, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "direction": 5, "direction_tb": 6, "direction_bt": 7, "direction_rl": 8, "direction_lr": 9, "graphConfig": 10, "C4_CONTEXT": 11, "NEWLINE": 12, "statements": 13, "EOF": 14, "C4_CONTAINER": 15, "C4_COMPONENT": 16, "C4_DYNAMIC": 17, "C4_DEPLOYMENT": 18, "otherStatements": 19, "diagramStatements": 20, "otherStatement": 21, "title": 22, "accDescription": 23, "acc_title": 24, "acc_title_value": 25, "acc_descr": 26, "acc_descr_value": 27, "acc_descr_multiline_value": 28, "boundaryStatement": 29, "boundaryStartStatement": 30, "boundaryStopStatement": 31, "boundaryStart": 32, "LBRACE": 33, "ENTERPRISE_BOUNDARY": 34, "attributes": 35, "SYSTEM_BOUNDARY": 36, "BOUNDARY": 37, "CONTAINER_BOUNDARY": 38, "NODE": 39, "NODE_L": 40, "NODE_R": 41, "RBRACE": 42, "diagramStatement": 43, "PERSON": 44, "PERSON_EXT": 45, "SYSTEM": 46, "SYSTEM_DB": 47, "SYSTEM_QUEUE": 48, "SYSTEM_EXT": 49, "SYSTEM_EXT_DB": 50, "SYSTEM_EXT_QUEUE": 51, "CONTAINER": 52, "CONTAINER_DB": 53, "CONTAINER_QUEUE": 54, "CONTAINER_EXT": 55, "CONTAINER_EXT_DB": 56, "CONTAINER_EXT_QUEUE": 57, "COMPONENT": 58, "COMPONENT_DB": 59, "COMPONENT_QUEUE": 60, "COMPONENT_EXT": 61, "COMPONENT_EXT_DB": 62, "COMPONENT_EXT_QUEUE": 63, "REL": 64, "BIREL": 65, "REL_U": 66, "REL_D": 67, "REL_L": 68, "REL_R": 69, "REL_B": 70, "REL_INDEX": 71, "UPDATE_EL_STYLE": 72, "UPDATE_REL_STYLE": 73, "UPDATE_LAYOUT_CONFIG": 74, "attribute": 75, "STR": 76, "STR_KEY": 77, "STR_VALUE": 78, "ATTRIBUTE": 79, "ATTRIBUTE_EMPTY": 80, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 6: "direction_tb", 7: "direction_bt", 8: "direction_rl", 9: "direction_lr", 11: "C4_CONTEXT", 12: "NEWLINE", 14: "EOF", 15: "C4_CONTAINER", 16: "C4_COMPONENT", 17: "C4_DYNAMIC", 18: "C4_DEPLOYMENT", 22: "title", 23: "accDescription", 24: "acc_title", 25: "acc_title_value", 26: "acc_descr", 27: "acc_descr_value", 28: "acc_descr_multiline_value", 33: "LBRACE", 34: "ENTERPRISE_BOUNDARY", 36: "SYSTEM_BOUNDARY", 37: "BOUNDARY", 38: "CONTAINER_BOUNDARY", 39: "NODE", 40: "NODE_L", 41: "NODE_R", 42: "RBRACE", 44: "PERSON", 45: "PERSON_EXT", 46: "SYSTEM", 47: "SYSTEM_DB", 48: "SYSTEM_QUEUE", 49: "SYSTEM_EXT", 50: "SYSTEM_EXT_DB", 51: "SYSTEM_EXT_QUEUE", 52: "CONTAINER", 53: "CONTAINER_DB", 54: "CONTAINER_QUEUE", 55: "CONTAINER_EXT", 56: "CONTAINER_EXT_DB", 57: "CONTAINER_EXT_QUEUE", 58: "COMPONENT", 59: "COMPONENT_DB", 60: "COMPONENT_QUEUE", 61: "COMPONENT_EXT", 62: "COMPONENT_EXT_DB", 63: "COMPONENT_EXT_QUEUE", 64: "REL", 65: "BIREL", 66: "REL_U", 67: "REL_D", 68: "REL_L", 69: "REL_R", 70: "REL_B", 71: "REL_INDEX", 72: "UPDATE_EL_STYLE", 73: "UPDATE_REL_STYLE", 74: "UPDATE_LAYOUT_CONFIG", 76: "STR", 77: "STR_KEY", 78: "STR_VALUE", 79: "ATTRIBUTE", 80: "ATTRIBUTE_EMPTY" }, + productions_: [0, [3, 1], [3, 1], [5, 1], [5, 1], [5, 1], [5, 1], [4, 1], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [13, 1], [13, 1], [13, 2], [19, 1], [19, 2], [19, 3], [21, 1], [21, 1], [21, 2], [21, 2], [21, 1], [29, 3], [30, 3], [30, 3], [30, 4], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [31, 1], [20, 1], [20, 2], [20, 3], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 1], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [35, 1], [35, 2], [75, 1], [75, 2], [75, 1], [75, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 3: + yy.setDirection("TB"); + break; + case 4: + yy.setDirection("BT"); + break; + case 5: + yy.setDirection("RL"); + break; + case 6: + yy.setDirection("LR"); + break; + case 8: + case 9: + case 10: + case 11: + case 12: + yy.setC4Type($$[$0 - 3]); + break; + case 19: + yy.setTitle($$[$0].substring(6)); + this.$ = $$[$0].substring(6); + break; + case 20: + yy.setAccDescription($$[$0].substring(15)); + this.$ = $$[$0].substring(15); + break; + case 21: + this.$ = $$[$0].trim(); + yy.setTitle(this.$); + break; + case 22: + case 23: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 28: + case 29: + $$[$0].splice(2, 0, "ENTERPRISE"); + yy.addPersonOrSystemBoundary(...$$[$0]); + this.$ = $$[$0]; + break; + case 30: + yy.addPersonOrSystemBoundary(...$$[$0]); + this.$ = $$[$0]; + break; + case 31: + $$[$0].splice(2, 0, "CONTAINER"); + yy.addContainerBoundary(...$$[$0]); + this.$ = $$[$0]; + break; + case 32: + yy.addDeploymentNode("node", ...$$[$0]); + this.$ = $$[$0]; + break; + case 33: + yy.addDeploymentNode("nodeL", ...$$[$0]); + this.$ = $$[$0]; + break; + case 34: + yy.addDeploymentNode("nodeR", ...$$[$0]); + this.$ = $$[$0]; + break; + case 35: + yy.popBoundaryParseStack(); + break; + case 39: + yy.addPersonOrSystem("person", ...$$[$0]); + this.$ = $$[$0]; + break; + case 40: + yy.addPersonOrSystem("external_person", ...$$[$0]); + this.$ = $$[$0]; + break; + case 41: + yy.addPersonOrSystem("system", ...$$[$0]); + this.$ = $$[$0]; + break; + case 42: + yy.addPersonOrSystem("system_db", ...$$[$0]); + this.$ = $$[$0]; + break; + case 43: + yy.addPersonOrSystem("system_queue", ...$$[$0]); + this.$ = $$[$0]; + break; + case 44: + yy.addPersonOrSystem("external_system", ...$$[$0]); + this.$ = $$[$0]; + break; + case 45: + yy.addPersonOrSystem("external_system_db", ...$$[$0]); + this.$ = $$[$0]; + break; + case 46: + yy.addPersonOrSystem("external_system_queue", ...$$[$0]); + this.$ = $$[$0]; + break; + case 47: + yy.addContainer("container", ...$$[$0]); + this.$ = $$[$0]; + break; + case 48: + yy.addContainer("container_db", ...$$[$0]); + this.$ = $$[$0]; + break; + case 49: + yy.addContainer("container_queue", ...$$[$0]); + this.$ = $$[$0]; + break; + case 50: + yy.addContainer("external_container", ...$$[$0]); + this.$ = $$[$0]; + break; + case 51: + yy.addContainer("external_container_db", ...$$[$0]); + this.$ = $$[$0]; + break; + case 52: + yy.addContainer("external_container_queue", ...$$[$0]); + this.$ = $$[$0]; + break; + case 53: + yy.addComponent("component", ...$$[$0]); + this.$ = $$[$0]; + break; + case 54: + yy.addComponent("component_db", ...$$[$0]); + this.$ = $$[$0]; + break; + case 55: + yy.addComponent("component_queue", ...$$[$0]); + this.$ = $$[$0]; + break; + case 56: + yy.addComponent("external_component", ...$$[$0]); + this.$ = $$[$0]; + break; + case 57: + yy.addComponent("external_component_db", ...$$[$0]); + this.$ = $$[$0]; + break; + case 58: + yy.addComponent("external_component_queue", ...$$[$0]); + this.$ = $$[$0]; + break; + case 60: + yy.addRel("rel", ...$$[$0]); + this.$ = $$[$0]; + break; + case 61: + yy.addRel("birel", ...$$[$0]); + this.$ = $$[$0]; + break; + case 62: + yy.addRel("rel_u", ...$$[$0]); + this.$ = $$[$0]; + break; + case 63: + yy.addRel("rel_d", ...$$[$0]); + this.$ = $$[$0]; + break; + case 64: + yy.addRel("rel_l", ...$$[$0]); + this.$ = $$[$0]; + break; + case 65: + yy.addRel("rel_r", ...$$[$0]); + this.$ = $$[$0]; + break; + case 66: + yy.addRel("rel_b", ...$$[$0]); + this.$ = $$[$0]; + break; + case 67: + $$[$0].splice(0, 1); + yy.addRel("rel", ...$$[$0]); + this.$ = $$[$0]; + break; + case 68: + yy.updateElStyle("update_el_style", ...$$[$0]); + this.$ = $$[$0]; + break; + case 69: + yy.updateRelStyle("update_rel_style", ...$$[$0]); + this.$ = $$[$0]; + break; + case 70: + yy.updateLayoutConfig("update_layout_config", ...$$[$0]); + this.$ = $$[$0]; + break; + case 71: + this.$ = [$$[$0]]; + break; + case 72: + $$[$0].unshift($$[$0 - 1]); + this.$ = $$[$0]; + break; + case 73: + case 75: + this.$ = $$[$0].trim(); + break; + case 74: + let kv = {}; + kv[$$[$0 - 1].trim()] = $$[$0].trim(); + this.$ = kv; + break; + case 76: + this.$ = ""; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 7: [1, 6], 8: [1, 7], 9: [1, 8], 10: 4, 11: [1, 9], 15: [1, 10], 16: [1, 11], 17: [1, 12], 18: [1, 13] }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 7] }, { 1: [2, 3] }, { 1: [2, 4] }, { 1: [2, 5] }, { 1: [2, 6] }, { 12: [1, 14] }, { 12: [1, 15] }, { 12: [1, 16] }, { 12: [1, 17] }, { 12: [1, 18] }, { 13: 19, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 70, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 71, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 72, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 73, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 14: [1, 74] }, o($VH, [2, 13], { 43: 23, 29: 49, 30: 61, 32: 62, 20: 75, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VH, [2, 14]), o($VI, [2, 16], { 12: [1, 76] }), o($VH, [2, 36], { 12: [1, 77] }), o($VJ, [2, 19]), o($VJ, [2, 20]), { 25: [1, 78] }, { 27: [1, 79] }, o($VJ, [2, 23]), { 35: 80, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 86, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 87, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 88, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 89, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 90, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 91, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 92, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 93, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 94, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 95, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 96, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 97, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 98, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 99, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 100, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 101, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 102, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 103, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 104, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, o($VO, [2, 59]), { 35: 105, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 106, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 107, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 108, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 109, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 110, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 111, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 112, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 113, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 114, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 115, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 20: 116, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 12: [1, 118], 33: [1, 117] }, { 35: 119, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 120, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 121, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 122, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 123, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 124, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 125, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 14: [1, 126] }, { 14: [1, 127] }, { 14: [1, 128] }, { 14: [1, 129] }, { 1: [2, 8] }, o($VH, [2, 15]), o($VI, [2, 17], { 21: 22, 19: 130, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4 }), o($VH, [2, 37], { 19: 20, 20: 21, 21: 22, 43: 23, 29: 49, 30: 61, 32: 62, 13: 131, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VJ, [2, 21]), o($VJ, [2, 22]), o($VO, [2, 39]), o($VP, [2, 71], { 75: 81, 35: 132, 76: $VK, 77: $VL, 79: $VM, 80: $VN }), o($VQ, [2, 73]), { 78: [1, 133] }, o($VQ, [2, 75]), o($VQ, [2, 76]), o($VO, [2, 40]), o($VO, [2, 41]), o($VO, [2, 42]), o($VO, [2, 43]), o($VO, [2, 44]), o($VO, [2, 45]), o($VO, [2, 46]), o($VO, [2, 47]), o($VO, [2, 48]), o($VO, [2, 49]), o($VO, [2, 50]), o($VO, [2, 51]), o($VO, [2, 52]), o($VO, [2, 53]), o($VO, [2, 54]), o($VO, [2, 55]), o($VO, [2, 56]), o($VO, [2, 57]), o($VO, [2, 58]), o($VO, [2, 60]), o($VO, [2, 61]), o($VO, [2, 62]), o($VO, [2, 63]), o($VO, [2, 64]), o($VO, [2, 65]), o($VO, [2, 66]), o($VO, [2, 67]), o($VO, [2, 68]), o($VO, [2, 69]), o($VO, [2, 70]), { 31: 134, 42: [1, 135] }, { 12: [1, 136] }, { 33: [1, 137] }, o($VR, [2, 28]), o($VR, [2, 29]), o($VR, [2, 30]), o($VR, [2, 31]), o($VR, [2, 32]), o($VR, [2, 33]), o($VR, [2, 34]), { 1: [2, 9] }, { 1: [2, 10] }, { 1: [2, 11] }, { 1: [2, 12] }, o($VI, [2, 18]), o($VH, [2, 38]), o($VP, [2, 72]), o($VQ, [2, 74]), o($VO, [2, 24]), o($VO, [2, 35]), o($VS, [2, 25]), o($VS, [2, 26], { 12: [1, 138] }), o($VS, [2, 27])], + defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 7], 5: [2, 3], 6: [2, 4], 7: [2, 5], 8: [2, 6], 74: [2, 8], 126: [2, 9], 127: [2, 10], 128: [2, 11], 129: [2, 12] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c2 = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c2 + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: {}, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + return 6; + case 1: + return 7; + case 2: + return 8; + case 3: + return 9; + case 4: + return 22; + case 5: + return 23; + case 6: + this.begin("acc_title"); + return 24; + case 7: + this.popState(); + return "acc_title_value"; + case 8: + this.begin("acc_descr"); + return 26; + case 9: + this.popState(); + return "acc_descr_value"; + case 10: + this.begin("acc_descr_multiline"); + break; + case 11: + this.popState(); + break; + case 12: + return "acc_descr_multiline_value"; + case 13: + break; + case 14: + c; + break; + case 15: + return 12; + case 16: + break; + case 17: + return 11; + case 18: + return 15; + case 19: + return 16; + case 20: + return 17; + case 21: + return 18; + case 22: + this.begin("person_ext"); + return 45; + case 23: + this.begin("person"); + return 44; + case 24: + this.begin("system_ext_queue"); + return 51; + case 25: + this.begin("system_ext_db"); + return 50; + case 26: + this.begin("system_ext"); + return 49; + case 27: + this.begin("system_queue"); + return 48; + case 28: + this.begin("system_db"); + return 47; + case 29: + this.begin("system"); + return 46; + case 30: + this.begin("boundary"); + return 37; + case 31: + this.begin("enterprise_boundary"); + return 34; + case 32: + this.begin("system_boundary"); + return 36; + case 33: + this.begin("container_ext_queue"); + return 57; + case 34: + this.begin("container_ext_db"); + return 56; + case 35: + this.begin("container_ext"); + return 55; + case 36: + this.begin("container_queue"); + return 54; + case 37: + this.begin("container_db"); + return 53; + case 38: + this.begin("container"); + return 52; + case 39: + this.begin("container_boundary"); + return 38; + case 40: + this.begin("component_ext_queue"); + return 63; + case 41: + this.begin("component_ext_db"); + return 62; + case 42: + this.begin("component_ext"); + return 61; + case 43: + this.begin("component_queue"); + return 60; + case 44: + this.begin("component_db"); + return 59; + case 45: + this.begin("component"); + return 58; + case 46: + this.begin("node"); + return 39; + case 47: + this.begin("node"); + return 39; + case 48: + this.begin("node_l"); + return 40; + case 49: + this.begin("node_r"); + return 41; + case 50: + this.begin("rel"); + return 64; + case 51: + this.begin("birel"); + return 65; + case 52: + this.begin("rel_u"); + return 66; + case 53: + this.begin("rel_u"); + return 66; + case 54: + this.begin("rel_d"); + return 67; + case 55: + this.begin("rel_d"); + return 67; + case 56: + this.begin("rel_l"); + return 68; + case 57: + this.begin("rel_l"); + return 68; + case 58: + this.begin("rel_r"); + return 69; + case 59: + this.begin("rel_r"); + return 69; + case 60: + this.begin("rel_b"); + return 70; + case 61: + this.begin("rel_index"); + return 71; + case 62: + this.begin("update_el_style"); + return 72; + case 63: + this.begin("update_rel_style"); + return 73; + case 64: + this.begin("update_layout_config"); + return 74; + case 65: + return "EOF_IN_STRUCT"; + case 66: + this.begin("attribute"); + return "ATTRIBUTE_EMPTY"; + case 67: + this.begin("attribute"); + break; + case 68: + this.popState(); + this.popState(); + break; + case 69: + return 80; + case 70: + break; + case 71: + return 80; + case 72: + this.begin("string"); + break; + case 73: + this.popState(); + break; + case 74: + return "STR"; + case 75: + this.begin("string_kv"); + break; + case 76: + this.begin("string_kv_key"); + return "STR_KEY"; + case 77: + this.popState(); + this.begin("string_kv_value"); + break; + case 78: + return "STR_VALUE"; + case 79: + this.popState(); + this.popState(); + break; + case 80: + return "STR"; + case 81: + return "LBRACE"; + case 82: + return "RBRACE"; + case 83: + return "SPACE"; + case 84: + return "EOL"; + case 85: + return 14; + } + }, + rules: [/^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:title\s[^#\n;]+)/, /^(?:accDescription\s[^#\n;]+)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:C4Context\b)/, /^(?:C4Container\b)/, /^(?:C4Component\b)/, /^(?:C4Dynamic\b)/, /^(?:C4Deployment\b)/, /^(?:Person_Ext\b)/, /^(?:Person\b)/, /^(?:SystemQueue_Ext\b)/, /^(?:SystemDb_Ext\b)/, /^(?:System_Ext\b)/, /^(?:SystemQueue\b)/, /^(?:SystemDb\b)/, /^(?:System\b)/, /^(?:Boundary\b)/, /^(?:Enterprise_Boundary\b)/, /^(?:System_Boundary\b)/, /^(?:ContainerQueue_Ext\b)/, /^(?:ContainerDb_Ext\b)/, /^(?:Container_Ext\b)/, /^(?:ContainerQueue\b)/, /^(?:ContainerDb\b)/, /^(?:Container\b)/, /^(?:Container_Boundary\b)/, /^(?:ComponentQueue_Ext\b)/, /^(?:ComponentDb_Ext\b)/, /^(?:Component_Ext\b)/, /^(?:ComponentQueue\b)/, /^(?:ComponentDb\b)/, /^(?:Component\b)/, /^(?:Deployment_Node\b)/, /^(?:Node\b)/, /^(?:Node_L\b)/, /^(?:Node_R\b)/, /^(?:Rel\b)/, /^(?:BiRel\b)/, /^(?:Rel_Up\b)/, /^(?:Rel_U\b)/, /^(?:Rel_Down\b)/, /^(?:Rel_D\b)/, /^(?:Rel_Left\b)/, /^(?:Rel_L\b)/, /^(?:Rel_Right\b)/, /^(?:Rel_R\b)/, /^(?:Rel_Back\b)/, /^(?:RelIndex\b)/, /^(?:UpdateElementStyle\b)/, /^(?:UpdateRelStyle\b)/, /^(?:UpdateLayoutConfig\b)/, /^(?:$)/, /^(?:[(][ ]*[,])/, /^(?:[(])/, /^(?:[)])/, /^(?:,,)/, /^(?:,)/, /^(?:[ ]*["]["])/, /^(?:[ ]*["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:[ ]*[\$])/, /^(?:[^=]*)/, /^(?:[=][ ]*["])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:[^,]+)/, /^(?:\{)/, /^(?:\})/, /^(?:[\s]+)/, /^(?:[\n\r]+)/, /^(?:$)/], + conditions: { "acc_descr_multiline": { "rules": [11, 12], "inclusive": false }, "acc_descr": { "rules": [9], "inclusive": false }, "acc_title": { "rules": [7], "inclusive": false }, "string_kv_value": { "rules": [78, 79], "inclusive": false }, "string_kv_key": { "rules": [77], "inclusive": false }, "string_kv": { "rules": [76], "inclusive": false }, "string": { "rules": [73, 74], "inclusive": false }, "attribute": { "rules": [68, 69, 70, 71, 72, 75, 80], "inclusive": false }, "update_layout_config": { "rules": [65, 66, 67, 68], "inclusive": false }, "update_rel_style": { "rules": [65, 66, 67, 68], "inclusive": false }, "update_el_style": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_b": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_r": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_l": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_d": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_u": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_bi": { "rules": [], "inclusive": false }, "rel": { "rules": [65, 66, 67, 68], "inclusive": false }, "node_r": { "rules": [65, 66, 67, 68], "inclusive": false }, "node_l": { "rules": [65, 66, 67, 68], "inclusive": false }, "node": { "rules": [65, 66, 67, 68], "inclusive": false }, "index": { "rules": [], "inclusive": false }, "rel_index": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_ext_queue": { "rules": [], "inclusive": false }, "component_ext_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "component": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_ext_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_ext_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "container": { "rules": [65, 66, 67, 68], "inclusive": false }, "birel": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "enterprise_boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_ext_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_ext_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "system": { "rules": [65, 66, 67, 68], "inclusive": false }, "person_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "person": { "rules": [65, 66, 67, 68], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 81, 82, 83, 84, 85], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let c4ShapeArray = []; +let boundaryParseStack = [""]; +let currentBoundaryParse = "global"; +let parentBoundaryParse = ""; +let boundaries = [ + { + alias: "global", + label: { text: "global" }, + type: { text: "global" }, + tags: null, + link: null, + parentBoundary: "" + } +]; +let rels = []; +let title = ""; +let wrapEnabled = false; +let c4ShapeInRow$1 = 4; +let c4BoundaryInRow$1 = 2; +var c4Type; +const getC4Type = function() { + return c4Type; +}; +const setC4Type = function(c4TypeParam) { + let sanitizedText = sanitizeText(c4TypeParam, getConfig()); + c4Type = sanitizedText; +}; +const addRel = function(type, from, to, label, techn, descr, sprite, tags, link) { + if (type === void 0 || type === null || from === void 0 || from === null || to === void 0 || to === null || label === void 0 || label === null) { + return; + } + let rel = {}; + const old = rels.find((rel2) => rel2.from === from && rel2.to === to); + if (old) { + rel = old; + } else { + rels.push(rel); + } + rel.type = type; + rel.from = from; + rel.to = to; + rel.label = { text: label }; + if (techn === void 0 || techn === null) { + rel.techn = { text: "" }; + } else { + if (typeof techn === "object") { + let [key, value] = Object.entries(techn)[0]; + rel[key] = { text: value }; + } else { + rel.techn = { text: techn }; + } + } + if (descr === void 0 || descr === null) { + rel.descr = { text: "" }; + } else { + if (typeof descr === "object") { + let [key, value] = Object.entries(descr)[0]; + rel[key] = { text: value }; + } else { + rel.descr = { text: descr }; + } + } + if (typeof sprite === "object") { + let [key, value] = Object.entries(sprite)[0]; + rel[key] = value; + } else { + rel.sprite = sprite; + } + if (typeof tags === "object") { + let [key, value] = Object.entries(tags)[0]; + rel[key] = value; + } else { + rel.tags = tags; + } + if (typeof link === "object") { + let [key, value] = Object.entries(link)[0]; + rel[key] = value; + } else { + rel.link = link; + } + rel.wrap = autoWrap(); +}; +const addPersonOrSystem = function(typeC4Shape, alias, label, descr, sprite, tags, link) { + if (alias === null || label === null) { + return; + } + let personOrSystem = {}; + const old = c4ShapeArray.find((personOrSystem2) => personOrSystem2.alias === alias); + if (old && alias === old.alias) { + personOrSystem = old; + } else { + personOrSystem.alias = alias; + c4ShapeArray.push(personOrSystem); + } + if (label === void 0 || label === null) { + personOrSystem.label = { text: "" }; + } else { + personOrSystem.label = { text: label }; + } + if (descr === void 0 || descr === null) { + personOrSystem.descr = { text: "" }; + } else { + if (typeof descr === "object") { + let [key, value] = Object.entries(descr)[0]; + personOrSystem[key] = { text: value }; + } else { + personOrSystem.descr = { text: descr }; + } + } + if (typeof sprite === "object") { + let [key, value] = Object.entries(sprite)[0]; + personOrSystem[key] = value; + } else { + personOrSystem.sprite = sprite; + } + if (typeof tags === "object") { + let [key, value] = Object.entries(tags)[0]; + personOrSystem[key] = value; + } else { + personOrSystem.tags = tags; + } + if (typeof link === "object") { + let [key, value] = Object.entries(link)[0]; + personOrSystem[key] = value; + } else { + personOrSystem.link = link; + } + personOrSystem.typeC4Shape = { text: typeC4Shape }; + personOrSystem.parentBoundary = currentBoundaryParse; + personOrSystem.wrap = autoWrap(); +}; +const addContainer = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) { + if (alias === null || label === null) { + return; + } + let container = {}; + const old = c4ShapeArray.find((container2) => container2.alias === alias); + if (old && alias === old.alias) { + container = old; + } else { + container.alias = alias; + c4ShapeArray.push(container); + } + if (label === void 0 || label === null) { + container.label = { text: "" }; + } else { + container.label = { text: label }; + } + if (techn === void 0 || techn === null) { + container.techn = { text: "" }; + } else { + if (typeof techn === "object") { + let [key, value] = Object.entries(techn)[0]; + container[key] = { text: value }; + } else { + container.techn = { text: techn }; + } + } + if (descr === void 0 || descr === null) { + container.descr = { text: "" }; + } else { + if (typeof descr === "object") { + let [key, value] = Object.entries(descr)[0]; + container[key] = { text: value }; + } else { + container.descr = { text: descr }; + } + } + if (typeof sprite === "object") { + let [key, value] = Object.entries(sprite)[0]; + container[key] = value; + } else { + container.sprite = sprite; + } + if (typeof tags === "object") { + let [key, value] = Object.entries(tags)[0]; + container[key] = value; + } else { + container.tags = tags; + } + if (typeof link === "object") { + let [key, value] = Object.entries(link)[0]; + container[key] = value; + } else { + container.link = link; + } + container.wrap = autoWrap(); + container.typeC4Shape = { text: typeC4Shape }; + container.parentBoundary = currentBoundaryParse; +}; +const addComponent = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) { + if (alias === null || label === null) { + return; + } + let component = {}; + const old = c4ShapeArray.find((component2) => component2.alias === alias); + if (old && alias === old.alias) { + component = old; + } else { + component.alias = alias; + c4ShapeArray.push(component); + } + if (label === void 0 || label === null) { + component.label = { text: "" }; + } else { + component.label = { text: label }; + } + if (techn === void 0 || techn === null) { + component.techn = { text: "" }; + } else { + if (typeof techn === "object") { + let [key, value] = Object.entries(techn)[0]; + component[key] = { text: value }; + } else { + component.techn = { text: techn }; + } + } + if (descr === void 0 || descr === null) { + component.descr = { text: "" }; + } else { + if (typeof descr === "object") { + let [key, value] = Object.entries(descr)[0]; + component[key] = { text: value }; + } else { + component.descr = { text: descr }; + } + } + if (typeof sprite === "object") { + let [key, value] = Object.entries(sprite)[0]; + component[key] = value; + } else { + component.sprite = sprite; + } + if (typeof tags === "object") { + let [key, value] = Object.entries(tags)[0]; + component[key] = value; + } else { + component.tags = tags; + } + if (typeof link === "object") { + let [key, value] = Object.entries(link)[0]; + component[key] = value; + } else { + component.link = link; + } + component.wrap = autoWrap(); + component.typeC4Shape = { text: typeC4Shape }; + component.parentBoundary = currentBoundaryParse; +}; +const addPersonOrSystemBoundary = function(alias, label, type, tags, link) { + if (alias === null || label === null) { + return; + } + let boundary = {}; + const old = boundaries.find((boundary2) => boundary2.alias === alias); + if (old && alias === old.alias) { + boundary = old; + } else { + boundary.alias = alias; + boundaries.push(boundary); + } + if (label === void 0 || label === null) { + boundary.label = { text: "" }; + } else { + boundary.label = { text: label }; + } + if (type === void 0 || type === null) { + boundary.type = { text: "system" }; + } else { + if (typeof type === "object") { + let [key, value] = Object.entries(type)[0]; + boundary[key] = { text: value }; + } else { + boundary.type = { text: type }; + } + } + if (typeof tags === "object") { + let [key, value] = Object.entries(tags)[0]; + boundary[key] = value; + } else { + boundary.tags = tags; + } + if (typeof link === "object") { + let [key, value] = Object.entries(link)[0]; + boundary[key] = value; + } else { + boundary.link = link; + } + boundary.parentBoundary = currentBoundaryParse; + boundary.wrap = autoWrap(); + parentBoundaryParse = currentBoundaryParse; + currentBoundaryParse = alias; + boundaryParseStack.push(parentBoundaryParse); +}; +const addContainerBoundary = function(alias, label, type, tags, link) { + if (alias === null || label === null) { + return; + } + let boundary = {}; + const old = boundaries.find((boundary2) => boundary2.alias === alias); + if (old && alias === old.alias) { + boundary = old; + } else { + boundary.alias = alias; + boundaries.push(boundary); + } + if (label === void 0 || label === null) { + boundary.label = { text: "" }; + } else { + boundary.label = { text: label }; + } + if (type === void 0 || type === null) { + boundary.type = { text: "container" }; + } else { + if (typeof type === "object") { + let [key, value] = Object.entries(type)[0]; + boundary[key] = { text: value }; + } else { + boundary.type = { text: type }; + } + } + if (typeof tags === "object") { + let [key, value] = Object.entries(tags)[0]; + boundary[key] = value; + } else { + boundary.tags = tags; + } + if (typeof link === "object") { + let [key, value] = Object.entries(link)[0]; + boundary[key] = value; + } else { + boundary.link = link; + } + boundary.parentBoundary = currentBoundaryParse; + boundary.wrap = autoWrap(); + parentBoundaryParse = currentBoundaryParse; + currentBoundaryParse = alias; + boundaryParseStack.push(parentBoundaryParse); +}; +const addDeploymentNode = function(nodeType, alias, label, type, descr, sprite, tags, link) { + if (alias === null || label === null) { + return; + } + let boundary = {}; + const old = boundaries.find((boundary2) => boundary2.alias === alias); + if (old && alias === old.alias) { + boundary = old; + } else { + boundary.alias = alias; + boundaries.push(boundary); + } + if (label === void 0 || label === null) { + boundary.label = { text: "" }; + } else { + boundary.label = { text: label }; + } + if (type === void 0 || type === null) { + boundary.type = { text: "node" }; + } else { + if (typeof type === "object") { + let [key, value] = Object.entries(type)[0]; + boundary[key] = { text: value }; + } else { + boundary.type = { text: type }; + } + } + if (descr === void 0 || descr === null) { + boundary.descr = { text: "" }; + } else { + if (typeof descr === "object") { + let [key, value] = Object.entries(descr)[0]; + boundary[key] = { text: value }; + } else { + boundary.descr = { text: descr }; + } + } + if (typeof tags === "object") { + let [key, value] = Object.entries(tags)[0]; + boundary[key] = value; + } else { + boundary.tags = tags; + } + if (typeof link === "object") { + let [key, value] = Object.entries(link)[0]; + boundary[key] = value; + } else { + boundary.link = link; + } + boundary.nodeType = nodeType; + boundary.parentBoundary = currentBoundaryParse; + boundary.wrap = autoWrap(); + parentBoundaryParse = currentBoundaryParse; + currentBoundaryParse = alias; + boundaryParseStack.push(parentBoundaryParse); +}; +const popBoundaryParseStack = function() { + currentBoundaryParse = parentBoundaryParse; + boundaryParseStack.pop(); + parentBoundaryParse = boundaryParseStack.pop(); + boundaryParseStack.push(parentBoundaryParse); +}; +const updateElStyle = function(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) { + let old = c4ShapeArray.find((element) => element.alias === elementName); + if (old === void 0) { + old = boundaries.find((element) => element.alias === elementName); + if (old === void 0) { + return; + } + } + if (bgColor !== void 0 && bgColor !== null) { + if (typeof bgColor === "object") { + let [key, value] = Object.entries(bgColor)[0]; + old[key] = value; + } else { + old.bgColor = bgColor; + } + } + if (fontColor !== void 0 && fontColor !== null) { + if (typeof fontColor === "object") { + let [key, value] = Object.entries(fontColor)[0]; + old[key] = value; + } else { + old.fontColor = fontColor; + } + } + if (borderColor !== void 0 && borderColor !== null) { + if (typeof borderColor === "object") { + let [key, value] = Object.entries(borderColor)[0]; + old[key] = value; + } else { + old.borderColor = borderColor; + } + } + if (shadowing !== void 0 && shadowing !== null) { + if (typeof shadowing === "object") { + let [key, value] = Object.entries(shadowing)[0]; + old[key] = value; + } else { + old.shadowing = shadowing; + } + } + if (shape !== void 0 && shape !== null) { + if (typeof shape === "object") { + let [key, value] = Object.entries(shape)[0]; + old[key] = value; + } else { + old.shape = shape; + } + } + if (sprite !== void 0 && sprite !== null) { + if (typeof sprite === "object") { + let [key, value] = Object.entries(sprite)[0]; + old[key] = value; + } else { + old.sprite = sprite; + } + } + if (techn !== void 0 && techn !== null) { + if (typeof techn === "object") { + let [key, value] = Object.entries(techn)[0]; + old[key] = value; + } else { + old.techn = techn; + } + } + if (legendText !== void 0 && legendText !== null) { + if (typeof legendText === "object") { + let [key, value] = Object.entries(legendText)[0]; + old[key] = value; + } else { + old.legendText = legendText; + } + } + if (legendSprite !== void 0 && legendSprite !== null) { + if (typeof legendSprite === "object") { + let [key, value] = Object.entries(legendSprite)[0]; + old[key] = value; + } else { + old.legendSprite = legendSprite; + } + } +}; +const updateRelStyle = function(typeC4Shape, from, to, textColor, lineColor, offsetX, offsetY) { + const old = rels.find((rel) => rel.from === from && rel.to === to); + if (old === void 0) { + return; + } + if (textColor !== void 0 && textColor !== null) { + if (typeof textColor === "object") { + let [key, value] = Object.entries(textColor)[0]; + old[key] = value; + } else { + old.textColor = textColor; + } + } + if (lineColor !== void 0 && lineColor !== null) { + if (typeof lineColor === "object") { + let [key, value] = Object.entries(lineColor)[0]; + old[key] = value; + } else { + old.lineColor = lineColor; + } + } + if (offsetX !== void 0 && offsetX !== null) { + if (typeof offsetX === "object") { + let [key, value] = Object.entries(offsetX)[0]; + old[key] = parseInt(value); + } else { + old.offsetX = parseInt(offsetX); + } + } + if (offsetY !== void 0 && offsetY !== null) { + if (typeof offsetY === "object") { + let [key, value] = Object.entries(offsetY)[0]; + old[key] = parseInt(value); + } else { + old.offsetY = parseInt(offsetY); + } + } +}; +const updateLayoutConfig = function(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) { + let c4ShapeInRowValue = c4ShapeInRow$1; + let c4BoundaryInRowValue = c4BoundaryInRow$1; + if (typeof c4ShapeInRowParam === "object") { + const value = Object.values(c4ShapeInRowParam)[0]; + c4ShapeInRowValue = parseInt(value); + } else { + c4ShapeInRowValue = parseInt(c4ShapeInRowParam); + } + if (typeof c4BoundaryInRowParam === "object") { + const value = Object.values(c4BoundaryInRowParam)[0]; + c4BoundaryInRowValue = parseInt(value); + } else { + c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam); + } + if (c4ShapeInRowValue >= 1) { + c4ShapeInRow$1 = c4ShapeInRowValue; + } + if (c4BoundaryInRowValue >= 1) { + c4BoundaryInRow$1 = c4BoundaryInRowValue; + } +}; +const getC4ShapeInRow = function() { + return c4ShapeInRow$1; +}; +const getC4BoundaryInRow = function() { + return c4BoundaryInRow$1; +}; +const getCurrentBoundaryParse = function() { + return currentBoundaryParse; +}; +const getParentBoundaryParse = function() { + return parentBoundaryParse; +}; +const getC4ShapeArray = function(parentBoundary) { + if (parentBoundary === void 0 || parentBoundary === null) { + return c4ShapeArray; + } else { + return c4ShapeArray.filter((personOrSystem) => { + return personOrSystem.parentBoundary === parentBoundary; + }); + } +}; +const getC4Shape = function(alias) { + return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias); +}; +const getC4ShapeKeys = function(parentBoundary) { + return Object.keys(getC4ShapeArray(parentBoundary)); +}; +const getBoundaries = function(parentBoundary) { + if (parentBoundary === void 0 || parentBoundary === null) { + return boundaries; + } else { + return boundaries.filter((boundary) => boundary.parentBoundary === parentBoundary); + } +}; +const getBoundarys = getBoundaries; +const getRels = function() { + return rels; +}; +const getTitle = function() { + return title; +}; +const setWrap = function(wrapSetting) { + wrapEnabled = wrapSetting; +}; +const autoWrap = function() { + return wrapEnabled; +}; +const clear = function() { + c4ShapeArray = []; + boundaries = [ + { + alias: "global", + label: { text: "global" }, + type: { text: "global" }, + tags: null, + link: null, + parentBoundary: "" + } + ]; + parentBoundaryParse = ""; + currentBoundaryParse = "global"; + boundaryParseStack = [""]; + rels = []; + boundaryParseStack = [""]; + title = ""; + wrapEnabled = false; + c4ShapeInRow$1 = 4; + c4BoundaryInRow$1 = 2; +}; +const LINETYPE = { + SOLID: 0, + DOTTED: 1, + NOTE: 2, + SOLID_CROSS: 3, + DOTTED_CROSS: 4, + SOLID_OPEN: 5, + DOTTED_OPEN: 6, + LOOP_START: 10, + LOOP_END: 11, + ALT_START: 12, + ALT_ELSE: 13, + ALT_END: 14, + OPT_START: 15, + OPT_END: 16, + ACTIVE_START: 17, + ACTIVE_END: 18, + PAR_START: 19, + PAR_AND: 20, + PAR_END: 21, + RECT_START: 22, + RECT_END: 23, + SOLID_POINT: 24, + DOTTED_POINT: 25 +}; +const ARROWTYPE = { + FILLED: 0, + OPEN: 1 +}; +const PLACEMENT = { + LEFTOF: 0, + RIGHTOF: 1, + OVER: 2 +}; +const setTitle = function(txt) { + let sanitizedText = sanitizeText(txt, getConfig()); + title = sanitizedText; +}; +const db = { + addPersonOrSystem, + addPersonOrSystemBoundary, + addContainer, + addContainerBoundary, + addComponent, + addDeploymentNode, + popBoundaryParseStack, + addRel, + updateElStyle, + updateRelStyle, + updateLayoutConfig, + autoWrap, + setWrap, + getC4ShapeArray, + getC4Shape, + getC4ShapeKeys, + getBoundaries, + getBoundarys, + getCurrentBoundaryParse, + getParentBoundaryParse, + getRels, + getTitle, + getC4Type, + getC4ShapeInRow, + getC4BoundaryInRow, + setAccTitle, + getAccTitle, + getAccDescription, + setAccDescription, + getConfig: () => getConfig().c4, + clear, + LINETYPE, + ARROWTYPE, + PLACEMENT, + setTitle, + setC4Type + // apply, +}; +const drawRect = function(elem, rectData) { + return drawRect$1(elem, rectData); +}; +const drawImage = function(elem, width, height, x, y, link) { + const imageElem = elem.append("image"); + imageElem.attr("width", width); + imageElem.attr("height", height); + imageElem.attr("x", x); + imageElem.attr("y", y); + let sanitizedLink = link.startsWith("data:image/png;base64") ? link : sanitizeUrl(link); + imageElem.attr("xlink:href", sanitizedLink); +}; +const drawRels$1 = (elem, rels2, conf2) => { + const relsElem = elem.append("g"); + let i = 0; + for (let rel of rels2) { + let textColor = rel.textColor ? rel.textColor : "#444444"; + let strokeColor = rel.lineColor ? rel.lineColor : "#444444"; + let offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0; + let offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0; + let url = ""; + if (i === 0) { + let line = relsElem.append("line"); + line.attr("x1", rel.startPoint.x); + line.attr("y1", rel.startPoint.y); + line.attr("x2", rel.endPoint.x); + line.attr("y2", rel.endPoint.y); + line.attr("stroke-width", "1"); + line.attr("stroke", strokeColor); + line.style("fill", "none"); + if (rel.type !== "rel_b") { + line.attr("marker-end", "url(" + url + "#arrowhead)"); + } + if (rel.type === "birel" || rel.type === "rel_b") { + line.attr("marker-start", "url(" + url + "#arrowend)"); + } + i = -1; + } else { + let line = relsElem.append("path"); + line.attr("fill", "none").attr("stroke-width", "1").attr("stroke", strokeColor).attr( + "d", + "Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx", rel.startPoint.x).replaceAll("starty", rel.startPoint.y).replaceAll( + "controlx", + rel.startPoint.x + (rel.endPoint.x - rel.startPoint.x) / 2 - (rel.endPoint.x - rel.startPoint.x) / 4 + ).replaceAll("controly", rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2).replaceAll("stopx", rel.endPoint.x).replaceAll("stopy", rel.endPoint.y) + ); + if (rel.type !== "rel_b") { + line.attr("marker-end", "url(" + url + "#arrowhead)"); + } + if (rel.type === "birel" || rel.type === "rel_b") { + line.attr("marker-start", "url(" + url + "#arrowend)"); + } + } + let messageConf = conf2.messageFont(); + _drawTextCandidateFunc(conf2)( + rel.label.text, + relsElem, + Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX, + Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + offsetY, + rel.label.width, + rel.label.height, + { fill: textColor }, + messageConf + ); + if (rel.techn && rel.techn.text !== "") { + messageConf = conf2.messageFont(); + _drawTextCandidateFunc(conf2)( + "[" + rel.techn.text + "]", + relsElem, + Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX, + Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + conf2.messageFontSize + 5 + offsetY, + Math.max(rel.label.width, rel.techn.width), + rel.techn.height, + { fill: textColor, "font-style": "italic" }, + messageConf + ); + } + } +}; +const drawBoundary$1 = function(elem, boundary, conf2) { + const boundaryElem = elem.append("g"); + let fillColor = boundary.bgColor ? boundary.bgColor : "none"; + let strokeColor = boundary.borderColor ? boundary.borderColor : "#444444"; + let fontColor = boundary.fontColor ? boundary.fontColor : "black"; + let attrsValue = { "stroke-width": 1, "stroke-dasharray": "7.0,7.0" }; + if (boundary.nodeType) { + attrsValue = { "stroke-width": 1 }; + } + let rectData = { + x: boundary.x, + y: boundary.y, + fill: fillColor, + stroke: strokeColor, + width: boundary.width, + height: boundary.height, + rx: 2.5, + ry: 2.5, + attrs: attrsValue + }; + drawRect(boundaryElem, rectData); + let boundaryConf = conf2.boundaryFont(); + boundaryConf.fontWeight = "bold"; + boundaryConf.fontSize = boundaryConf.fontSize + 2; + boundaryConf.fontColor = fontColor; + _drawTextCandidateFunc(conf2)( + boundary.label.text, + boundaryElem, + boundary.x, + boundary.y + boundary.label.Y, + boundary.width, + boundary.height, + { fill: "#444444" }, + boundaryConf + ); + if (boundary.type && boundary.type.text !== "") { + boundaryConf = conf2.boundaryFont(); + boundaryConf.fontColor = fontColor; + _drawTextCandidateFunc(conf2)( + boundary.type.text, + boundaryElem, + boundary.x, + boundary.y + boundary.type.Y, + boundary.width, + boundary.height, + { fill: "#444444" }, + boundaryConf + ); + } + if (boundary.descr && boundary.descr.text !== "") { + boundaryConf = conf2.boundaryFont(); + boundaryConf.fontSize = boundaryConf.fontSize - 2; + boundaryConf.fontColor = fontColor; + _drawTextCandidateFunc(conf2)( + boundary.descr.text, + boundaryElem, + boundary.x, + boundary.y + boundary.descr.Y, + boundary.width, + boundary.height, + { fill: "#444444" }, + boundaryConf + ); + } +}; +const drawC4Shape = function(elem, c4Shape, conf2) { + var _a; + let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf2[c4Shape.typeC4Shape.text + "_bg_color"]; + let strokeColor = c4Shape.borderColor ? c4Shape.borderColor : conf2[c4Shape.typeC4Shape.text + "_border_color"]; + let fontColor = c4Shape.fontColor ? c4Shape.fontColor : "#FFFFFF"; + let personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII="; + switch (c4Shape.typeC4Shape.text) { + case "person": + personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII="; + break; + case "external_person": + personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII="; + break; + } + const c4ShapeElem = elem.append("g"); + c4ShapeElem.attr("class", "person-man"); + const rect = getNoteRect(); + switch (c4Shape.typeC4Shape.text) { + case "person": + case "external_person": + case "system": + case "external_system": + case "container": + case "external_container": + case "component": + case "external_component": + rect.x = c4Shape.x; + rect.y = c4Shape.y; + rect.fill = fillColor; + rect.width = c4Shape.width; + rect.height = c4Shape.height; + rect.stroke = strokeColor; + rect.rx = 2.5; + rect.ry = 2.5; + rect.attrs = { "stroke-width": 0.5 }; + drawRect(c4ShapeElem, rect); + break; + case "system_db": + case "external_system_db": + case "container_db": + case "external_container_db": + case "component_db": + case "external_component_db": + c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr( + "d", + "Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2).replaceAll("height", c4Shape.height) + ); + c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr( + "d", + "Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2) + ); + break; + case "system_queue": + case "external_system_queue": + case "container_queue": + case "external_container_queue": + case "component_queue": + case "external_component_queue": + c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr( + "d", + "Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("width", c4Shape.width).replaceAll("half", c4Shape.height / 2) + ); + c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr( + "d", + "Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx", c4Shape.x + c4Shape.width).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.height / 2) + ); + break; + } + let c4ShapeFontConf = getC4ShapeFont(conf2, c4Shape.typeC4Shape.text); + c4ShapeElem.append("text").attr("fill", fontColor).attr("font-family", c4ShapeFontConf.fontFamily).attr("font-size", c4ShapeFontConf.fontSize - 2).attr("font-style", "italic").attr("lengthAdjust", "spacing").attr("textLength", c4Shape.typeC4Shape.width).attr("x", c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2).attr("y", c4Shape.y + c4Shape.typeC4Shape.Y).text("<<" + c4Shape.typeC4Shape.text + ">>"); + switch (c4Shape.typeC4Shape.text) { + case "person": + case "external_person": + drawImage( + c4ShapeElem, + 48, + 48, + c4Shape.x + c4Shape.width / 2 - 24, + c4Shape.y + c4Shape.image.Y, + personImg + ); + break; + } + let textFontConf = conf2[c4Shape.typeC4Shape.text + "Font"](); + textFontConf.fontWeight = "bold"; + textFontConf.fontSize = textFontConf.fontSize + 2; + textFontConf.fontColor = fontColor; + _drawTextCandidateFunc(conf2)( + c4Shape.label.text, + c4ShapeElem, + c4Shape.x, + c4Shape.y + c4Shape.label.Y, + c4Shape.width, + c4Shape.height, + { fill: fontColor }, + textFontConf + ); + textFontConf = conf2[c4Shape.typeC4Shape.text + "Font"](); + textFontConf.fontColor = fontColor; + if (c4Shape.techn && ((_a = c4Shape.techn) == null ? void 0 : _a.text) !== "") { + _drawTextCandidateFunc(conf2)( + c4Shape.techn.text, + c4ShapeElem, + c4Shape.x, + c4Shape.y + c4Shape.techn.Y, + c4Shape.width, + c4Shape.height, + { fill: fontColor, "font-style": "italic" }, + textFontConf + ); + } else if (c4Shape.type && c4Shape.type.text !== "") { + _drawTextCandidateFunc(conf2)( + c4Shape.type.text, + c4ShapeElem, + c4Shape.x, + c4Shape.y + c4Shape.type.Y, + c4Shape.width, + c4Shape.height, + { fill: fontColor, "font-style": "italic" }, + textFontConf + ); + } + if (c4Shape.descr && c4Shape.descr.text !== "") { + textFontConf = conf2.personFont(); + textFontConf.fontColor = fontColor; + _drawTextCandidateFunc(conf2)( + c4Shape.descr.text, + c4ShapeElem, + c4Shape.x, + c4Shape.y + c4Shape.descr.Y, + c4Shape.width, + c4Shape.height, + { fill: fontColor }, + textFontConf + ); + } + return c4Shape.height; +}; +const insertDatabaseIcon = function(elem) { + elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr( + "d", + "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z" + ); +}; +const insertComputerIcon = function(elem) { + elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( + "d", + "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z" + ); +}; +const insertClockIcon = function(elem) { + elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( + "d", + "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z" + ); +}; +const insertArrowHead = function(elem) { + elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z"); +}; +const insertArrowEnd = function(elem) { + elem.append("defs").append("marker").attr("id", "arrowend").attr("refX", 1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 10 0 L 0 5 L 10 10 z"); +}; +const insertArrowFilledHead = function(elem) { + elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); +}; +const insertDynamicNumber = function(elem) { + elem.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6); +}; +const insertArrowCrossHead = function(elem) { + const defs = elem.append("defs"); + const marker = defs.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 16).attr("refY", 4); + marker.append("path").attr("fill", "black").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 9,2 V 6 L16,4 Z"); + marker.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 0,1 L 6,7 M 6,1 L 0,7"); +}; +const getC4ShapeFont = (cnf, typeC4Shape) => { + return { + fontFamily: cnf[typeC4Shape + "FontFamily"], + fontSize: cnf[typeC4Shape + "FontSize"], + fontWeight: cnf[typeC4Shape + "FontWeight"] + }; +}; +const _drawTextCandidateFunc = function() { + function byText(content, g, x, y, width, height, textAttrs) { + const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("text-anchor", "middle").text(content); + _setTextAttrs(text, textAttrs); + } + function byTspan(content, g, x, y, width, height, textAttrs, conf2) { + const { fontSize, fontFamily, fontWeight } = conf2; + const lines = content.split(common.lineBreakRegex); + for (let i = 0; i < lines.length; i++) { + const dy = i * fontSize - fontSize * (lines.length - 1) / 2; + const text = g.append("text").attr("x", x + width / 2).attr("y", y).style("text-anchor", "middle").attr("dominant-baseline", "middle").style("font-size", fontSize).style("font-weight", fontWeight).style("font-family", fontFamily); + text.append("tspan").attr("dy", dy).text(lines[i]).attr("alignment-baseline", "mathematical"); + _setTextAttrs(text, textAttrs); + } + } + function byFo(content, g, x, y, width, height, textAttrs, conf2) { + const s = g.append("switch"); + const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height); + const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); + byTspan(content, s, x, y, width, height, textAttrs, conf2); + _setTextAttrs(text, textAttrs); + } + function _setTextAttrs(toText, fromTextAttrsDict) { + for (const key in fromTextAttrsDict) { + if (fromTextAttrsDict.hasOwnProperty(key)) { + toText.attr(key, fromTextAttrsDict[key]); + } + } + } + return function(conf2) { + return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan; + }; +}(); +const svgDraw = { + drawRect, + drawBoundary: drawBoundary$1, + drawC4Shape, + drawRels: drawRels$1, + drawImage, + insertArrowHead, + insertArrowEnd, + insertArrowFilledHead, + insertDynamicNumber, + insertArrowCrossHead, + insertDatabaseIcon, + insertComputerIcon, + insertClockIcon +}; +let globalBoundaryMaxX = 0, globalBoundaryMaxY = 0; +let c4ShapeInRow = 4; +let c4BoundaryInRow = 2; +parser.yy = db; +let conf = {}; +class Bounds { + constructor(diagObj) { + this.name = ""; + this.data = {}; + this.data.startx = void 0; + this.data.stopx = void 0; + this.data.starty = void 0; + this.data.stopy = void 0; + this.data.widthLimit = void 0; + this.nextData = {}; + this.nextData.startx = void 0; + this.nextData.stopx = void 0; + this.nextData.starty = void 0; + this.nextData.stopy = void 0; + this.nextData.cnt = 0; + setConf(diagObj.db.getConfig()); + } + setData(startx, stopx, starty, stopy) { + this.nextData.startx = this.data.startx = startx; + this.nextData.stopx = this.data.stopx = stopx; + this.nextData.starty = this.data.starty = starty; + this.nextData.stopy = this.data.stopy = stopy; + } + updateVal(obj, key, val, fun) { + if (obj[key] === void 0) { + obj[key] = val; + } else { + obj[key] = fun(val, obj[key]); + } + } + insert(c4Shape) { + this.nextData.cnt = this.nextData.cnt + 1; + let _startx = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + c4Shape.margin : this.nextData.stopx + c4Shape.margin * 2; + let _stopx = _startx + c4Shape.width; + let _starty = this.nextData.starty + c4Shape.margin * 2; + let _stopy = _starty + c4Shape.height; + if (_startx >= this.data.widthLimit || _stopx >= this.data.widthLimit || this.nextData.cnt > c4ShapeInRow) { + _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX; + _starty = this.nextData.stopy + c4Shape.margin * 2; + this.nextData.stopx = _stopx = _startx + c4Shape.width; + this.nextData.starty = this.nextData.stopy; + this.nextData.stopy = _stopy = _starty + c4Shape.height; + this.nextData.cnt = 1; + } + c4Shape.x = _startx; + c4Shape.y = _starty; + this.updateVal(this.data, "startx", _startx, Math.min); + this.updateVal(this.data, "starty", _starty, Math.min); + this.updateVal(this.data, "stopx", _stopx, Math.max); + this.updateVal(this.data, "stopy", _stopy, Math.max); + this.updateVal(this.nextData, "startx", _startx, Math.min); + this.updateVal(this.nextData, "starty", _starty, Math.min); + this.updateVal(this.nextData, "stopx", _stopx, Math.max); + this.updateVal(this.nextData, "stopy", _stopy, Math.max); + } + init(diagObj) { + this.name = ""; + this.data = { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0, + widthLimit: void 0 + }; + this.nextData = { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0, + cnt: 0 + }; + setConf(diagObj.db.getConfig()); + } + bumpLastMargin(margin) { + this.data.stopx += margin; + this.data.stopy += margin; + } +} +const setConf = function(cnf) { + assignWithDepth(conf, cnf); + if (cnf.fontFamily) { + conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily; + } + if (cnf.fontSize) { + conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize; + } + if (cnf.fontWeight) { + conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight; + } +}; +const c4ShapeFont = (cnf, typeC4Shape) => { + return { + fontFamily: cnf[typeC4Shape + "FontFamily"], + fontSize: cnf[typeC4Shape + "FontSize"], + fontWeight: cnf[typeC4Shape + "FontWeight"] + }; +}; +const boundaryFont = (cnf) => { + return { + fontFamily: cnf.boundaryFontFamily, + fontSize: cnf.boundaryFontSize, + fontWeight: cnf.boundaryFontWeight + }; +}; +const messageFont = (cnf) => { + return { + fontFamily: cnf.messageFontFamily, + fontSize: cnf.messageFontSize, + fontWeight: cnf.messageFontWeight + }; +}; +function calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) { + if (!c4Shape[textType].width) { + if (c4ShapeTextWrap) { + c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf); + c4Shape[textType].textLines = c4Shape[textType].text.split(common.lineBreakRegex).length; + c4Shape[textType].width = textLimitWidth; + c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf); + } else { + let lines = c4Shape[textType].text.split(common.lineBreakRegex); + c4Shape[textType].textLines = lines.length; + let lineHeight = 0; + c4Shape[textType].height = 0; + c4Shape[textType].width = 0; + for (const line of lines) { + c4Shape[textType].width = Math.max( + calculateTextWidth(line, textConf), + c4Shape[textType].width + ); + lineHeight = calculateTextHeight(line, textConf); + c4Shape[textType].height = c4Shape[textType].height + lineHeight; + } + } + } +} +const drawBoundary = function(diagram2, boundary, bounds) { + boundary.x = bounds.data.startx; + boundary.y = bounds.data.starty; + boundary.width = bounds.data.stopx - bounds.data.startx; + boundary.height = bounds.data.stopy - bounds.data.starty; + boundary.label.y = conf.c4ShapeMargin - 35; + let boundaryTextWrap = boundary.wrap && conf.wrap; + let boundaryLabelConf = boundaryFont(conf); + boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2; + boundaryLabelConf.fontWeight = "bold"; + let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf); + calcC4ShapeTextWH("label", boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth); + svgDraw.drawBoundary(diagram2, boundary, conf); +}; +const drawC4ShapeArray = function(currentBounds, diagram2, c4ShapeArray2, c4ShapeKeys) { + let Y = 0; + for (const c4ShapeKey of c4ShapeKeys) { + Y = 0; + const c4Shape = c4ShapeArray2[c4ShapeKey]; + let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text); + c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2; + c4Shape.typeC4Shape.width = calculateTextWidth( + "«" + c4Shape.typeC4Shape.text + "»", + c4ShapeTypeConf + ); + c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2; + c4Shape.typeC4Shape.Y = conf.c4ShapePadding; + Y = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4; + c4Shape.image = { width: 0, height: 0, Y: 0 }; + switch (c4Shape.typeC4Shape.text) { + case "person": + case "external_person": + c4Shape.image.width = 48; + c4Shape.image.height = 48; + c4Shape.image.Y = Y; + Y = c4Shape.image.Y + c4Shape.image.height; + break; + } + if (c4Shape.sprite) { + c4Shape.image.width = 48; + c4Shape.image.height = 48; + c4Shape.image.Y = Y; + Y = c4Shape.image.Y + c4Shape.image.height; + } + let c4ShapeTextWrap = c4Shape.wrap && conf.wrap; + let textLimitWidth = conf.width - conf.c4ShapePadding * 2; + let c4ShapeLabelConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text); + c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2; + c4ShapeLabelConf.fontWeight = "bold"; + calcC4ShapeTextWH("label", c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth); + c4Shape["label"].Y = Y + 8; + Y = c4Shape["label"].Y + c4Shape["label"].height; + if (c4Shape.type && c4Shape.type.text !== "") { + c4Shape.type.text = "[" + c4Shape.type.text + "]"; + let c4ShapeTypeConf2 = c4ShapeFont(conf, c4Shape.typeC4Shape.text); + calcC4ShapeTextWH("type", c4Shape, c4ShapeTextWrap, c4ShapeTypeConf2, textLimitWidth); + c4Shape["type"].Y = Y + 5; + Y = c4Shape["type"].Y + c4Shape["type"].height; + } else if (c4Shape.techn && c4Shape.techn.text !== "") { + c4Shape.techn.text = "[" + c4Shape.techn.text + "]"; + let c4ShapeTechnConf = c4ShapeFont(conf, c4Shape.techn.text); + calcC4ShapeTextWH("techn", c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth); + c4Shape["techn"].Y = Y + 5; + Y = c4Shape["techn"].Y + c4Shape["techn"].height; + } + let rectHeight = Y; + let rectWidth = c4Shape.label.width; + if (c4Shape.descr && c4Shape.descr.text !== "") { + let c4ShapeDescrConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text); + calcC4ShapeTextWH("descr", c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth); + c4Shape["descr"].Y = Y + 20; + Y = c4Shape["descr"].Y + c4Shape["descr"].height; + rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width); + rectHeight = Y - c4Shape["descr"].textLines * 5; + } + rectWidth = rectWidth + conf.c4ShapePadding; + c4Shape.width = Math.max(c4Shape.width || conf.width, rectWidth, conf.width); + c4Shape.height = Math.max(c4Shape.height || conf.height, rectHeight, conf.height); + c4Shape.margin = c4Shape.margin || conf.c4ShapeMargin; + currentBounds.insert(c4Shape); + svgDraw.drawC4Shape(diagram2, c4Shape, conf); + } + currentBounds.bumpLastMargin(conf.c4ShapeMargin); +}; +class Point { + constructor(x, y) { + this.x = x; + this.y = y; + } +} +let getIntersectPoint = function(fromNode, endPoint) { + let x1 = fromNode.x; + let y1 = fromNode.y; + let x2 = endPoint.x; + let y2 = endPoint.y; + let fromCenterX = x1 + fromNode.width / 2; + let fromCenterY = y1 + fromNode.height / 2; + let dx = Math.abs(x1 - x2); + let dy = Math.abs(y1 - y2); + let tanDYX = dy / dx; + let fromDYX = fromNode.height / fromNode.width; + let returnPoint = null; + if (y1 == y2 && x1 < x2) { + returnPoint = new Point(x1 + fromNode.width, fromCenterY); + } else if (y1 == y2 && x1 > x2) { + returnPoint = new Point(x1, fromCenterY); + } else if (x1 == x2 && y1 < y2) { + returnPoint = new Point(fromCenterX, y1 + fromNode.height); + } else if (x1 == x2 && y1 > y2) { + returnPoint = new Point(fromCenterX, y1); + } + if (x1 > x2 && y1 < y2) { + if (fromDYX >= tanDYX) { + returnPoint = new Point(x1, fromCenterY + tanDYX * fromNode.width / 2); + } else { + returnPoint = new Point( + fromCenterX - dx / dy * fromNode.height / 2, + y1 + fromNode.height + ); + } + } else if (x1 < x2 && y1 < y2) { + if (fromDYX >= tanDYX) { + returnPoint = new Point(x1 + fromNode.width, fromCenterY + tanDYX * fromNode.width / 2); + } else { + returnPoint = new Point( + fromCenterX + dx / dy * fromNode.height / 2, + y1 + fromNode.height + ); + } + } else if (x1 < x2 && y1 > y2) { + if (fromDYX >= tanDYX) { + returnPoint = new Point(x1 + fromNode.width, fromCenterY - tanDYX * fromNode.width / 2); + } else { + returnPoint = new Point(fromCenterX + fromNode.height / 2 * dx / dy, y1); + } + } else if (x1 > x2 && y1 > y2) { + if (fromDYX >= tanDYX) { + returnPoint = new Point(x1, fromCenterY - fromNode.width / 2 * tanDYX); + } else { + returnPoint = new Point(fromCenterX - fromNode.height / 2 * dx / dy, y1); + } + } + return returnPoint; +}; +let getIntersectPoints = function(fromNode, endNode) { + let endIntersectPoint = { x: 0, y: 0 }; + endIntersectPoint.x = endNode.x + endNode.width / 2; + endIntersectPoint.y = endNode.y + endNode.height / 2; + let startPoint = getIntersectPoint(fromNode, endIntersectPoint); + endIntersectPoint.x = fromNode.x + fromNode.width / 2; + endIntersectPoint.y = fromNode.y + fromNode.height / 2; + let endPoint = getIntersectPoint(endNode, endIntersectPoint); + return { startPoint, endPoint }; +}; +const drawRels = function(diagram2, rels2, getC4ShapeObj, diagObj) { + let i = 0; + for (let rel of rels2) { + i = i + 1; + let relTextWrap = rel.wrap && conf.wrap; + let relConf = messageFont(conf); + let diagramType = diagObj.db.getC4Type(); + if (diagramType === "C4Dynamic") { + rel.label.text = i + ": " + rel.label.text; + } + let textLimitWidth = calculateTextWidth(rel.label.text, relConf); + calcC4ShapeTextWH("label", rel, relTextWrap, relConf, textLimitWidth); + if (rel.techn && rel.techn.text !== "") { + textLimitWidth = calculateTextWidth(rel.techn.text, relConf); + calcC4ShapeTextWH("techn", rel, relTextWrap, relConf, textLimitWidth); + } + if (rel.descr && rel.descr.text !== "") { + textLimitWidth = calculateTextWidth(rel.descr.text, relConf); + calcC4ShapeTextWH("descr", rel, relTextWrap, relConf, textLimitWidth); + } + let fromNode = getC4ShapeObj(rel.from); + let endNode = getC4ShapeObj(rel.to); + let points = getIntersectPoints(fromNode, endNode); + rel.startPoint = points.startPoint; + rel.endPoint = points.endPoint; + } + svgDraw.drawRels(diagram2, rels2, conf); +}; +function drawInsideBoundary(diagram2, parentBoundaryAlias, parentBounds, currentBoundaries, diagObj) { + let currentBounds = new Bounds(diagObj); + currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundaries.length); + for (let [i, currentBoundary] of currentBoundaries.entries()) { + let Y = 0; + currentBoundary.image = { width: 0, height: 0, Y: 0 }; + if (currentBoundary.sprite) { + currentBoundary.image.width = 48; + currentBoundary.image.height = 48; + currentBoundary.image.Y = Y; + Y = currentBoundary.image.Y + currentBoundary.image.height; + } + let currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap; + let currentBoundaryLabelConf = boundaryFont(conf); + currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2; + currentBoundaryLabelConf.fontWeight = "bold"; + calcC4ShapeTextWH( + "label", + currentBoundary, + currentBoundaryTextWrap, + currentBoundaryLabelConf, + currentBounds.data.widthLimit + ); + currentBoundary["label"].Y = Y + 8; + Y = currentBoundary["label"].Y + currentBoundary["label"].height; + if (currentBoundary.type && currentBoundary.type.text !== "") { + currentBoundary.type.text = "[" + currentBoundary.type.text + "]"; + let currentBoundaryTypeConf = boundaryFont(conf); + calcC4ShapeTextWH( + "type", + currentBoundary, + currentBoundaryTextWrap, + currentBoundaryTypeConf, + currentBounds.data.widthLimit + ); + currentBoundary["type"].Y = Y + 5; + Y = currentBoundary["type"].Y + currentBoundary["type"].height; + } + if (currentBoundary.descr && currentBoundary.descr.text !== "") { + let currentBoundaryDescrConf = boundaryFont(conf); + currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2; + calcC4ShapeTextWH( + "descr", + currentBoundary, + currentBoundaryTextWrap, + currentBoundaryDescrConf, + currentBounds.data.widthLimit + ); + currentBoundary["descr"].Y = Y + 20; + Y = currentBoundary["descr"].Y + currentBoundary["descr"].height; + } + if (i == 0 || i % c4BoundaryInRow === 0) { + let _x = parentBounds.data.startx + conf.diagramMarginX; + let _y = parentBounds.data.stopy + conf.diagramMarginY + Y; + currentBounds.setData(_x, _x, _y, _y); + } else { + let _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf.diagramMarginX : currentBounds.data.startx; + let _y = currentBounds.data.starty; + currentBounds.setData(_x, _x, _y, _y); + } + currentBounds.name = currentBoundary.alias; + let currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias); + let currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias); + if (currentPersonOrSystemKeys.length > 0) { + drawC4ShapeArray( + currentBounds, + diagram2, + currentPersonOrSystemArray, + currentPersonOrSystemKeys + ); + } + parentBoundaryAlias = currentBoundary.alias; + let nextCurrentBoundaries = diagObj.db.getBoundarys(parentBoundaryAlias); + if (nextCurrentBoundaries.length > 0) { + drawInsideBoundary( + diagram2, + parentBoundaryAlias, + currentBounds, + nextCurrentBoundaries, + diagObj + ); + } + if (currentBoundary.alias !== "global") { + drawBoundary(diagram2, currentBoundary, currentBounds); + } + parentBounds.data.stopy = Math.max( + currentBounds.data.stopy + conf.c4ShapeMargin, + parentBounds.data.stopy + ); + parentBounds.data.stopx = Math.max( + currentBounds.data.stopx + conf.c4ShapeMargin, + parentBounds.data.stopx + ); + globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx); + globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy); + } +} +const draw = function(_text, id, _version, diagObj) { + conf = getConfig().c4; + const securityLevel = getConfig().securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + let db2 = diagObj.db; + diagObj.db.setWrap(conf.wrap); + c4ShapeInRow = db2.getC4ShapeInRow(); + c4BoundaryInRow = db2.getC4BoundaryInRow(); + log.debug(`C:${JSON.stringify(conf, null, 2)}`); + const diagram2 = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : select(`[id="${id}"]`); + svgDraw.insertComputerIcon(diagram2); + svgDraw.insertDatabaseIcon(diagram2); + svgDraw.insertClockIcon(diagram2); + let screenBounds = new Bounds(diagObj); + screenBounds.setData( + conf.diagramMarginX, + conf.diagramMarginX, + conf.diagramMarginY, + conf.diagramMarginY + ); + screenBounds.data.widthLimit = screen.availWidth; + globalBoundaryMaxX = conf.diagramMarginX; + globalBoundaryMaxY = conf.diagramMarginY; + const title2 = diagObj.db.getTitle(); + let currentBoundaries = diagObj.db.getBoundarys(""); + drawInsideBoundary(diagram2, "", screenBounds, currentBoundaries, diagObj); + svgDraw.insertArrowHead(diagram2); + svgDraw.insertArrowEnd(diagram2); + svgDraw.insertArrowCrossHead(diagram2); + svgDraw.insertArrowFilledHead(diagram2); + drawRels(diagram2, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj); + screenBounds.data.stopx = globalBoundaryMaxX; + screenBounds.data.stopy = globalBoundaryMaxY; + const box = screenBounds.data; + let boxHeight = box.stopy - box.starty; + let height = boxHeight + 2 * conf.diagramMarginY; + let boxWidth = box.stopx - box.startx; + const width = boxWidth + 2 * conf.diagramMarginX; + if (title2) { + diagram2.append("text").text(title2).attr("x", (box.stopx - box.startx) / 2 - 4 * conf.diagramMarginX).attr("y", box.starty + conf.diagramMarginY); + } + configureSvgSize(diagram2, height, width, conf.useMaxWidth); + const extraVertForTitle = title2 ? 60 : 0; + diagram2.attr( + "viewBox", + box.startx - conf.diagramMarginX + " -" + (conf.diagramMarginY + extraVertForTitle) + " " + width + " " + (height + extraVertForTitle) + ); + log.debug(`models:`, box); +}; +const renderer = { + drawPersonOrSystemArray: drawC4ShapeArray, + drawBoundary, + setConf, + draw +}; +const getStyles = (options) => `.person { + stroke: ${options.personBorder}; + fill: ${options.personBkg}; + } +`; +const styles = getStyles; +const diagram = { + parser: parser$1, + db, + renderer, + styles, + init: ({ c4, wrap }) => { + renderer.setConf(c4); + db.setWrap(wrap); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/c4Diagram-af207393.js b/assets/lib/mermaid/c4Diagram-af207393.js new file mode 100644 index 000000000..89fa63ad0 --- /dev/null +++ b/assets/lib/mermaid/c4Diagram-af207393.js @@ -0,0 +1,2463 @@ +import { s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, c as getConfig, d as sanitizeText, e as dist, f as common, h as assignWithDepth, i as calculateTextWidth, j as d3select, l as log, k as configureSvgSize, w as wrapLabel, m as calculateTextHeight } from "./mermaid-dcacb631.js"; +import { d as drawRect$1, g as getNoteRect } from "./svgDrawCommon-d6ab583c.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 24], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 63], $V6 = [1, 64], $V7 = [1, 65], $V8 = [1, 66], $V9 = [1, 67], $Va = [1, 68], $Vb = [1, 69], $Vc = [1, 29], $Vd = [1, 30], $Ve = [1, 31], $Vf = [1, 32], $Vg = [1, 33], $Vh = [1, 34], $Vi = [1, 35], $Vj = [1, 36], $Vk = [1, 37], $Vl = [1, 38], $Vm = [1, 39], $Vn = [1, 40], $Vo = [1, 41], $Vp = [1, 42], $Vq = [1, 43], $Vr = [1, 44], $Vs = [1, 45], $Vt = [1, 46], $Vu = [1, 47], $Vv = [1, 48], $Vw = [1, 50], $Vx = [1, 51], $Vy = [1, 52], $Vz = [1, 53], $VA = [1, 54], $VB = [1, 55], $VC = [1, 56], $VD = [1, 57], $VE = [1, 58], $VF = [1, 59], $VG = [1, 60], $VH = [14, 42], $VI = [14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], $VJ = [12, 14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], $VK = [1, 82], $VL = [1, 83], $VM = [1, 84], $VN = [1, 85], $VO = [12, 14, 42], $VP = [12, 14, 33, 42], $VQ = [12, 14, 33, 42, 76, 77, 79, 80], $VR = [12, 33], $VS = [34, 36, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "direction": 5, "direction_tb": 6, "direction_bt": 7, "direction_rl": 8, "direction_lr": 9, "graphConfig": 10, "C4_CONTEXT": 11, "NEWLINE": 12, "statements": 13, "EOF": 14, "C4_CONTAINER": 15, "C4_COMPONENT": 16, "C4_DYNAMIC": 17, "C4_DEPLOYMENT": 18, "otherStatements": 19, "diagramStatements": 20, "otherStatement": 21, "title": 22, "accDescription": 23, "acc_title": 24, "acc_title_value": 25, "acc_descr": 26, "acc_descr_value": 27, "acc_descr_multiline_value": 28, "boundaryStatement": 29, "boundaryStartStatement": 30, "boundaryStopStatement": 31, "boundaryStart": 32, "LBRACE": 33, "ENTERPRISE_BOUNDARY": 34, "attributes": 35, "SYSTEM_BOUNDARY": 36, "BOUNDARY": 37, "CONTAINER_BOUNDARY": 38, "NODE": 39, "NODE_L": 40, "NODE_R": 41, "RBRACE": 42, "diagramStatement": 43, "PERSON": 44, "PERSON_EXT": 45, "SYSTEM": 46, "SYSTEM_DB": 47, "SYSTEM_QUEUE": 48, "SYSTEM_EXT": 49, "SYSTEM_EXT_DB": 50, "SYSTEM_EXT_QUEUE": 51, "CONTAINER": 52, "CONTAINER_DB": 53, "CONTAINER_QUEUE": 54, "CONTAINER_EXT": 55, "CONTAINER_EXT_DB": 56, "CONTAINER_EXT_QUEUE": 57, "COMPONENT": 58, "COMPONENT_DB": 59, "COMPONENT_QUEUE": 60, "COMPONENT_EXT": 61, "COMPONENT_EXT_DB": 62, "COMPONENT_EXT_QUEUE": 63, "REL": 64, "BIREL": 65, "REL_U": 66, "REL_D": 67, "REL_L": 68, "REL_R": 69, "REL_B": 70, "REL_INDEX": 71, "UPDATE_EL_STYLE": 72, "UPDATE_REL_STYLE": 73, "UPDATE_LAYOUT_CONFIG": 74, "attribute": 75, "STR": 76, "STR_KEY": 77, "STR_VALUE": 78, "ATTRIBUTE": 79, "ATTRIBUTE_EMPTY": 80, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 6: "direction_tb", 7: "direction_bt", 8: "direction_rl", 9: "direction_lr", 11: "C4_CONTEXT", 12: "NEWLINE", 14: "EOF", 15: "C4_CONTAINER", 16: "C4_COMPONENT", 17: "C4_DYNAMIC", 18: "C4_DEPLOYMENT", 22: "title", 23: "accDescription", 24: "acc_title", 25: "acc_title_value", 26: "acc_descr", 27: "acc_descr_value", 28: "acc_descr_multiline_value", 33: "LBRACE", 34: "ENTERPRISE_BOUNDARY", 36: "SYSTEM_BOUNDARY", 37: "BOUNDARY", 38: "CONTAINER_BOUNDARY", 39: "NODE", 40: "NODE_L", 41: "NODE_R", 42: "RBRACE", 44: "PERSON", 45: "PERSON_EXT", 46: "SYSTEM", 47: "SYSTEM_DB", 48: "SYSTEM_QUEUE", 49: "SYSTEM_EXT", 50: "SYSTEM_EXT_DB", 51: "SYSTEM_EXT_QUEUE", 52: "CONTAINER", 53: "CONTAINER_DB", 54: "CONTAINER_QUEUE", 55: "CONTAINER_EXT", 56: "CONTAINER_EXT_DB", 57: "CONTAINER_EXT_QUEUE", 58: "COMPONENT", 59: "COMPONENT_DB", 60: "COMPONENT_QUEUE", 61: "COMPONENT_EXT", 62: "COMPONENT_EXT_DB", 63: "COMPONENT_EXT_QUEUE", 64: "REL", 65: "BIREL", 66: "REL_U", 67: "REL_D", 68: "REL_L", 69: "REL_R", 70: "REL_B", 71: "REL_INDEX", 72: "UPDATE_EL_STYLE", 73: "UPDATE_REL_STYLE", 74: "UPDATE_LAYOUT_CONFIG", 76: "STR", 77: "STR_KEY", 78: "STR_VALUE", 79: "ATTRIBUTE", 80: "ATTRIBUTE_EMPTY" }, + productions_: [0, [3, 1], [3, 1], [5, 1], [5, 1], [5, 1], [5, 1], [4, 1], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [13, 1], [13, 1], [13, 2], [19, 1], [19, 2], [19, 3], [21, 1], [21, 1], [21, 2], [21, 2], [21, 1], [29, 3], [30, 3], [30, 3], [30, 4], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [31, 1], [20, 1], [20, 2], [20, 3], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 1], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [35, 1], [35, 2], [75, 1], [75, 2], [75, 1], [75, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 3: + yy.setDirection("TB"); + break; + case 4: + yy.setDirection("BT"); + break; + case 5: + yy.setDirection("RL"); + break; + case 6: + yy.setDirection("LR"); + break; + case 8: + case 9: + case 10: + case 11: + case 12: + yy.setC4Type($$[$0 - 3]); + break; + case 19: + yy.setTitle($$[$0].substring(6)); + this.$ = $$[$0].substring(6); + break; + case 20: + yy.setAccDescription($$[$0].substring(15)); + this.$ = $$[$0].substring(15); + break; + case 21: + this.$ = $$[$0].trim(); + yy.setTitle(this.$); + break; + case 22: + case 23: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 28: + case 29: + $$[$0].splice(2, 0, "ENTERPRISE"); + yy.addPersonOrSystemBoundary(...$$[$0]); + this.$ = $$[$0]; + break; + case 30: + yy.addPersonOrSystemBoundary(...$$[$0]); + this.$ = $$[$0]; + break; + case 31: + $$[$0].splice(2, 0, "CONTAINER"); + yy.addContainerBoundary(...$$[$0]); + this.$ = $$[$0]; + break; + case 32: + yy.addDeploymentNode("node", ...$$[$0]); + this.$ = $$[$0]; + break; + case 33: + yy.addDeploymentNode("nodeL", ...$$[$0]); + this.$ = $$[$0]; + break; + case 34: + yy.addDeploymentNode("nodeR", ...$$[$0]); + this.$ = $$[$0]; + break; + case 35: + yy.popBoundaryParseStack(); + break; + case 39: + yy.addPersonOrSystem("person", ...$$[$0]); + this.$ = $$[$0]; + break; + case 40: + yy.addPersonOrSystem("external_person", ...$$[$0]); + this.$ = $$[$0]; + break; + case 41: + yy.addPersonOrSystem("system", ...$$[$0]); + this.$ = $$[$0]; + break; + case 42: + yy.addPersonOrSystem("system_db", ...$$[$0]); + this.$ = $$[$0]; + break; + case 43: + yy.addPersonOrSystem("system_queue", ...$$[$0]); + this.$ = $$[$0]; + break; + case 44: + yy.addPersonOrSystem("external_system", ...$$[$0]); + this.$ = $$[$0]; + break; + case 45: + yy.addPersonOrSystem("external_system_db", ...$$[$0]); + this.$ = $$[$0]; + break; + case 46: + yy.addPersonOrSystem("external_system_queue", ...$$[$0]); + this.$ = $$[$0]; + break; + case 47: + yy.addContainer("container", ...$$[$0]); + this.$ = $$[$0]; + break; + case 48: + yy.addContainer("container_db", ...$$[$0]); + this.$ = $$[$0]; + break; + case 49: + yy.addContainer("container_queue", ...$$[$0]); + this.$ = $$[$0]; + break; + case 50: + yy.addContainer("external_container", ...$$[$0]); + this.$ = $$[$0]; + break; + case 51: + yy.addContainer("external_container_db", ...$$[$0]); + this.$ = $$[$0]; + break; + case 52: + yy.addContainer("external_container_queue", ...$$[$0]); + this.$ = $$[$0]; + break; + case 53: + yy.addComponent("component", ...$$[$0]); + this.$ = $$[$0]; + break; + case 54: + yy.addComponent("component_db", ...$$[$0]); + this.$ = $$[$0]; + break; + case 55: + yy.addComponent("component_queue", ...$$[$0]); + this.$ = $$[$0]; + break; + case 56: + yy.addComponent("external_component", ...$$[$0]); + this.$ = $$[$0]; + break; + case 57: + yy.addComponent("external_component_db", ...$$[$0]); + this.$ = $$[$0]; + break; + case 58: + yy.addComponent("external_component_queue", ...$$[$0]); + this.$ = $$[$0]; + break; + case 60: + yy.addRel("rel", ...$$[$0]); + this.$ = $$[$0]; + break; + case 61: + yy.addRel("birel", ...$$[$0]); + this.$ = $$[$0]; + break; + case 62: + yy.addRel("rel_u", ...$$[$0]); + this.$ = $$[$0]; + break; + case 63: + yy.addRel("rel_d", ...$$[$0]); + this.$ = $$[$0]; + break; + case 64: + yy.addRel("rel_l", ...$$[$0]); + this.$ = $$[$0]; + break; + case 65: + yy.addRel("rel_r", ...$$[$0]); + this.$ = $$[$0]; + break; + case 66: + yy.addRel("rel_b", ...$$[$0]); + this.$ = $$[$0]; + break; + case 67: + $$[$0].splice(0, 1); + yy.addRel("rel", ...$$[$0]); + this.$ = $$[$0]; + break; + case 68: + yy.updateElStyle("update_el_style", ...$$[$0]); + this.$ = $$[$0]; + break; + case 69: + yy.updateRelStyle("update_rel_style", ...$$[$0]); + this.$ = $$[$0]; + break; + case 70: + yy.updateLayoutConfig("update_layout_config", ...$$[$0]); + this.$ = $$[$0]; + break; + case 71: + this.$ = [$$[$0]]; + break; + case 72: + $$[$0].unshift($$[$0 - 1]); + this.$ = $$[$0]; + break; + case 73: + case 75: + this.$ = $$[$0].trim(); + break; + case 74: + let kv = {}; + kv[$$[$0 - 1].trim()] = $$[$0].trim(); + this.$ = kv; + break; + case 76: + this.$ = ""; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 7: [1, 6], 8: [1, 7], 9: [1, 8], 10: 4, 11: [1, 9], 15: [1, 10], 16: [1, 11], 17: [1, 12], 18: [1, 13] }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 7] }, { 1: [2, 3] }, { 1: [2, 4] }, { 1: [2, 5] }, { 1: [2, 6] }, { 12: [1, 14] }, { 12: [1, 15] }, { 12: [1, 16] }, { 12: [1, 17] }, { 12: [1, 18] }, { 13: 19, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 70, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 71, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 72, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 73, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 14: [1, 74] }, o($VH, [2, 13], { 43: 23, 29: 49, 30: 61, 32: 62, 20: 75, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VH, [2, 14]), o($VI, [2, 16], { 12: [1, 76] }), o($VH, [2, 36], { 12: [1, 77] }), o($VJ, [2, 19]), o($VJ, [2, 20]), { 25: [1, 78] }, { 27: [1, 79] }, o($VJ, [2, 23]), { 35: 80, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 86, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 87, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 88, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 89, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 90, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 91, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 92, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 93, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 94, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 95, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 96, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 97, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 98, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 99, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 100, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 101, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 102, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 103, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 104, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, o($VO, [2, 59]), { 35: 105, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 106, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 107, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 108, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 109, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 110, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 111, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 112, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 113, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 114, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 115, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 20: 116, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 12: [1, 118], 33: [1, 117] }, { 35: 119, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 120, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 121, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 122, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 123, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 124, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 125, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 14: [1, 126] }, { 14: [1, 127] }, { 14: [1, 128] }, { 14: [1, 129] }, { 1: [2, 8] }, o($VH, [2, 15]), o($VI, [2, 17], { 21: 22, 19: 130, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4 }), o($VH, [2, 37], { 19: 20, 20: 21, 21: 22, 43: 23, 29: 49, 30: 61, 32: 62, 13: 131, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VJ, [2, 21]), o($VJ, [2, 22]), o($VO, [2, 39]), o($VP, [2, 71], { 75: 81, 35: 132, 76: $VK, 77: $VL, 79: $VM, 80: $VN }), o($VQ, [2, 73]), { 78: [1, 133] }, o($VQ, [2, 75]), o($VQ, [2, 76]), o($VO, [2, 40]), o($VO, [2, 41]), o($VO, [2, 42]), o($VO, [2, 43]), o($VO, [2, 44]), o($VO, [2, 45]), o($VO, [2, 46]), o($VO, [2, 47]), o($VO, [2, 48]), o($VO, [2, 49]), o($VO, [2, 50]), o($VO, [2, 51]), o($VO, [2, 52]), o($VO, [2, 53]), o($VO, [2, 54]), o($VO, [2, 55]), o($VO, [2, 56]), o($VO, [2, 57]), o($VO, [2, 58]), o($VO, [2, 60]), o($VO, [2, 61]), o($VO, [2, 62]), o($VO, [2, 63]), o($VO, [2, 64]), o($VO, [2, 65]), o($VO, [2, 66]), o($VO, [2, 67]), o($VO, [2, 68]), o($VO, [2, 69]), o($VO, [2, 70]), { 31: 134, 42: [1, 135] }, { 12: [1, 136] }, { 33: [1, 137] }, o($VR, [2, 28]), o($VR, [2, 29]), o($VR, [2, 30]), o($VR, [2, 31]), o($VR, [2, 32]), o($VR, [2, 33]), o($VR, [2, 34]), { 1: [2, 9] }, { 1: [2, 10] }, { 1: [2, 11] }, { 1: [2, 12] }, o($VI, [2, 18]), o($VH, [2, 38]), o($VP, [2, 72]), o($VQ, [2, 74]), o($VO, [2, 24]), o($VO, [2, 35]), o($VS, [2, 25]), o($VS, [2, 26], { 12: [1, 138] }), o($VS, [2, 27])], + defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 7], 5: [2, 3], 6: [2, 4], 7: [2, 5], 8: [2, 6], 74: [2, 8], 126: [2, 9], 127: [2, 10], 128: [2, 11], 129: [2, 12] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c2 = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c2 + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: {}, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + return 6; + case 1: + return 7; + case 2: + return 8; + case 3: + return 9; + case 4: + return 22; + case 5: + return 23; + case 6: + this.begin("acc_title"); + return 24; + case 7: + this.popState(); + return "acc_title_value"; + case 8: + this.begin("acc_descr"); + return 26; + case 9: + this.popState(); + return "acc_descr_value"; + case 10: + this.begin("acc_descr_multiline"); + break; + case 11: + this.popState(); + break; + case 12: + return "acc_descr_multiline_value"; + case 13: + break; + case 14: + c; + break; + case 15: + return 12; + case 16: + break; + case 17: + return 11; + case 18: + return 15; + case 19: + return 16; + case 20: + return 17; + case 21: + return 18; + case 22: + this.begin("person_ext"); + return 45; + case 23: + this.begin("person"); + return 44; + case 24: + this.begin("system_ext_queue"); + return 51; + case 25: + this.begin("system_ext_db"); + return 50; + case 26: + this.begin("system_ext"); + return 49; + case 27: + this.begin("system_queue"); + return 48; + case 28: + this.begin("system_db"); + return 47; + case 29: + this.begin("system"); + return 46; + case 30: + this.begin("boundary"); + return 37; + case 31: + this.begin("enterprise_boundary"); + return 34; + case 32: + this.begin("system_boundary"); + return 36; + case 33: + this.begin("container_ext_queue"); + return 57; + case 34: + this.begin("container_ext_db"); + return 56; + case 35: + this.begin("container_ext"); + return 55; + case 36: + this.begin("container_queue"); + return 54; + case 37: + this.begin("container_db"); + return 53; + case 38: + this.begin("container"); + return 52; + case 39: + this.begin("container_boundary"); + return 38; + case 40: + this.begin("component_ext_queue"); + return 63; + case 41: + this.begin("component_ext_db"); + return 62; + case 42: + this.begin("component_ext"); + return 61; + case 43: + this.begin("component_queue"); + return 60; + case 44: + this.begin("component_db"); + return 59; + case 45: + this.begin("component"); + return 58; + case 46: + this.begin("node"); + return 39; + case 47: + this.begin("node"); + return 39; + case 48: + this.begin("node_l"); + return 40; + case 49: + this.begin("node_r"); + return 41; + case 50: + this.begin("rel"); + return 64; + case 51: + this.begin("birel"); + return 65; + case 52: + this.begin("rel_u"); + return 66; + case 53: + this.begin("rel_u"); + return 66; + case 54: + this.begin("rel_d"); + return 67; + case 55: + this.begin("rel_d"); + return 67; + case 56: + this.begin("rel_l"); + return 68; + case 57: + this.begin("rel_l"); + return 68; + case 58: + this.begin("rel_r"); + return 69; + case 59: + this.begin("rel_r"); + return 69; + case 60: + this.begin("rel_b"); + return 70; + case 61: + this.begin("rel_index"); + return 71; + case 62: + this.begin("update_el_style"); + return 72; + case 63: + this.begin("update_rel_style"); + return 73; + case 64: + this.begin("update_layout_config"); + return 74; + case 65: + return "EOF_IN_STRUCT"; + case 66: + this.begin("attribute"); + return "ATTRIBUTE_EMPTY"; + case 67: + this.begin("attribute"); + break; + case 68: + this.popState(); + this.popState(); + break; + case 69: + return 80; + case 70: + break; + case 71: + return 80; + case 72: + this.begin("string"); + break; + case 73: + this.popState(); + break; + case 74: + return "STR"; + case 75: + this.begin("string_kv"); + break; + case 76: + this.begin("string_kv_key"); + return "STR_KEY"; + case 77: + this.popState(); + this.begin("string_kv_value"); + break; + case 78: + return "STR_VALUE"; + case 79: + this.popState(); + this.popState(); + break; + case 80: + return "STR"; + case 81: + return "LBRACE"; + case 82: + return "RBRACE"; + case 83: + return "SPACE"; + case 84: + return "EOL"; + case 85: + return 14; + } + }, + rules: [/^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:title\s[^#\n;]+)/, /^(?:accDescription\s[^#\n;]+)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:C4Context\b)/, /^(?:C4Container\b)/, /^(?:C4Component\b)/, /^(?:C4Dynamic\b)/, /^(?:C4Deployment\b)/, /^(?:Person_Ext\b)/, /^(?:Person\b)/, /^(?:SystemQueue_Ext\b)/, /^(?:SystemDb_Ext\b)/, /^(?:System_Ext\b)/, /^(?:SystemQueue\b)/, /^(?:SystemDb\b)/, /^(?:System\b)/, /^(?:Boundary\b)/, /^(?:Enterprise_Boundary\b)/, /^(?:System_Boundary\b)/, /^(?:ContainerQueue_Ext\b)/, /^(?:ContainerDb_Ext\b)/, /^(?:Container_Ext\b)/, /^(?:ContainerQueue\b)/, /^(?:ContainerDb\b)/, /^(?:Container\b)/, /^(?:Container_Boundary\b)/, /^(?:ComponentQueue_Ext\b)/, /^(?:ComponentDb_Ext\b)/, /^(?:Component_Ext\b)/, /^(?:ComponentQueue\b)/, /^(?:ComponentDb\b)/, /^(?:Component\b)/, /^(?:Deployment_Node\b)/, /^(?:Node\b)/, /^(?:Node_L\b)/, /^(?:Node_R\b)/, /^(?:Rel\b)/, /^(?:BiRel\b)/, /^(?:Rel_Up\b)/, /^(?:Rel_U\b)/, /^(?:Rel_Down\b)/, /^(?:Rel_D\b)/, /^(?:Rel_Left\b)/, /^(?:Rel_L\b)/, /^(?:Rel_Right\b)/, /^(?:Rel_R\b)/, /^(?:Rel_Back\b)/, /^(?:RelIndex\b)/, /^(?:UpdateElementStyle\b)/, /^(?:UpdateRelStyle\b)/, /^(?:UpdateLayoutConfig\b)/, /^(?:$)/, /^(?:[(][ ]*[,])/, /^(?:[(])/, /^(?:[)])/, /^(?:,,)/, /^(?:,)/, /^(?:[ ]*["]["])/, /^(?:[ ]*["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:[ ]*[\$])/, /^(?:[^=]*)/, /^(?:[=][ ]*["])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:[^,]+)/, /^(?:\{)/, /^(?:\})/, /^(?:[\s]+)/, /^(?:[\n\r]+)/, /^(?:$)/], + conditions: { "acc_descr_multiline": { "rules": [11, 12], "inclusive": false }, "acc_descr": { "rules": [9], "inclusive": false }, "acc_title": { "rules": [7], "inclusive": false }, "string_kv_value": { "rules": [78, 79], "inclusive": false }, "string_kv_key": { "rules": [77], "inclusive": false }, "string_kv": { "rules": [76], "inclusive": false }, "string": { "rules": [73, 74], "inclusive": false }, "attribute": { "rules": [68, 69, 70, 71, 72, 75, 80], "inclusive": false }, "update_layout_config": { "rules": [65, 66, 67, 68], "inclusive": false }, "update_rel_style": { "rules": [65, 66, 67, 68], "inclusive": false }, "update_el_style": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_b": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_r": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_l": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_d": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_u": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_bi": { "rules": [], "inclusive": false }, "rel": { "rules": [65, 66, 67, 68], "inclusive": false }, "node_r": { "rules": [65, 66, 67, 68], "inclusive": false }, "node_l": { "rules": [65, 66, 67, 68], "inclusive": false }, "node": { "rules": [65, 66, 67, 68], "inclusive": false }, "index": { "rules": [], "inclusive": false }, "rel_index": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_ext_queue": { "rules": [], "inclusive": false }, "component_ext_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "component": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_ext_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_ext_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "container": { "rules": [65, 66, 67, 68], "inclusive": false }, "birel": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "enterprise_boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_ext_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_ext_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "system": { "rules": [65, 66, 67, 68], "inclusive": false }, "person_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "person": { "rules": [65, 66, 67, 68], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 81, 82, 83, 84, 85], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let c4ShapeArray = []; +let boundaryParseStack = [""]; +let currentBoundaryParse = "global"; +let parentBoundaryParse = ""; +let boundaries = [ + { + alias: "global", + label: { text: "global" }, + type: { text: "global" }, + tags: null, + link: null, + parentBoundary: "" + } +]; +let rels = []; +let title = ""; +let wrapEnabled = false; +let c4ShapeInRow$1 = 4; +let c4BoundaryInRow$1 = 2; +var c4Type; +const getC4Type = function() { + return c4Type; +}; +const setC4Type = function(c4TypeParam) { + let sanitizedText = sanitizeText(c4TypeParam, getConfig()); + c4Type = sanitizedText; +}; +const addRel = function(type, from, to, label, techn, descr, sprite, tags, link) { + if (type === void 0 || type === null || from === void 0 || from === null || to === void 0 || to === null || label === void 0 || label === null) { + return; + } + let rel = {}; + const old = rels.find((rel2) => rel2.from === from && rel2.to === to); + if (old) { + rel = old; + } else { + rels.push(rel); + } + rel.type = type; + rel.from = from; + rel.to = to; + rel.label = { text: label }; + if (techn === void 0 || techn === null) { + rel.techn = { text: "" }; + } else { + if (typeof techn === "object") { + let [key, value] = Object.entries(techn)[0]; + rel[key] = { text: value }; + } else { + rel.techn = { text: techn }; + } + } + if (descr === void 0 || descr === null) { + rel.descr = { text: "" }; + } else { + if (typeof descr === "object") { + let [key, value] = Object.entries(descr)[0]; + rel[key] = { text: value }; + } else { + rel.descr = { text: descr }; + } + } + if (typeof sprite === "object") { + let [key, value] = Object.entries(sprite)[0]; + rel[key] = value; + } else { + rel.sprite = sprite; + } + if (typeof tags === "object") { + let [key, value] = Object.entries(tags)[0]; + rel[key] = value; + } else { + rel.tags = tags; + } + if (typeof link === "object") { + let [key, value] = Object.entries(link)[0]; + rel[key] = value; + } else { + rel.link = link; + } + rel.wrap = autoWrap(); +}; +const addPersonOrSystem = function(typeC4Shape, alias, label, descr, sprite, tags, link) { + if (alias === null || label === null) { + return; + } + let personOrSystem = {}; + const old = c4ShapeArray.find((personOrSystem2) => personOrSystem2.alias === alias); + if (old && alias === old.alias) { + personOrSystem = old; + } else { + personOrSystem.alias = alias; + c4ShapeArray.push(personOrSystem); + } + if (label === void 0 || label === null) { + personOrSystem.label = { text: "" }; + } else { + personOrSystem.label = { text: label }; + } + if (descr === void 0 || descr === null) { + personOrSystem.descr = { text: "" }; + } else { + if (typeof descr === "object") { + let [key, value] = Object.entries(descr)[0]; + personOrSystem[key] = { text: value }; + } else { + personOrSystem.descr = { text: descr }; + } + } + if (typeof sprite === "object") { + let [key, value] = Object.entries(sprite)[0]; + personOrSystem[key] = value; + } else { + personOrSystem.sprite = sprite; + } + if (typeof tags === "object") { + let [key, value] = Object.entries(tags)[0]; + personOrSystem[key] = value; + } else { + personOrSystem.tags = tags; + } + if (typeof link === "object") { + let [key, value] = Object.entries(link)[0]; + personOrSystem[key] = value; + } else { + personOrSystem.link = link; + } + personOrSystem.typeC4Shape = { text: typeC4Shape }; + personOrSystem.parentBoundary = currentBoundaryParse; + personOrSystem.wrap = autoWrap(); +}; +const addContainer = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) { + if (alias === null || label === null) { + return; + } + let container = {}; + const old = c4ShapeArray.find((container2) => container2.alias === alias); + if (old && alias === old.alias) { + container = old; + } else { + container.alias = alias; + c4ShapeArray.push(container); + } + if (label === void 0 || label === null) { + container.label = { text: "" }; + } else { + container.label = { text: label }; + } + if (techn === void 0 || techn === null) { + container.techn = { text: "" }; + } else { + if (typeof techn === "object") { + let [key, value] = Object.entries(techn)[0]; + container[key] = { text: value }; + } else { + container.techn = { text: techn }; + } + } + if (descr === void 0 || descr === null) { + container.descr = { text: "" }; + } else { + if (typeof descr === "object") { + let [key, value] = Object.entries(descr)[0]; + container[key] = { text: value }; + } else { + container.descr = { text: descr }; + } + } + if (typeof sprite === "object") { + let [key, value] = Object.entries(sprite)[0]; + container[key] = value; + } else { + container.sprite = sprite; + } + if (typeof tags === "object") { + let [key, value] = Object.entries(tags)[0]; + container[key] = value; + } else { + container.tags = tags; + } + if (typeof link === "object") { + let [key, value] = Object.entries(link)[0]; + container[key] = value; + } else { + container.link = link; + } + container.wrap = autoWrap(); + container.typeC4Shape = { text: typeC4Shape }; + container.parentBoundary = currentBoundaryParse; +}; +const addComponent = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) { + if (alias === null || label === null) { + return; + } + let component = {}; + const old = c4ShapeArray.find((component2) => component2.alias === alias); + if (old && alias === old.alias) { + component = old; + } else { + component.alias = alias; + c4ShapeArray.push(component); + } + if (label === void 0 || label === null) { + component.label = { text: "" }; + } else { + component.label = { text: label }; + } + if (techn === void 0 || techn === null) { + component.techn = { text: "" }; + } else { + if (typeof techn === "object") { + let [key, value] = Object.entries(techn)[0]; + component[key] = { text: value }; + } else { + component.techn = { text: techn }; + } + } + if (descr === void 0 || descr === null) { + component.descr = { text: "" }; + } else { + if (typeof descr === "object") { + let [key, value] = Object.entries(descr)[0]; + component[key] = { text: value }; + } else { + component.descr = { text: descr }; + } + } + if (typeof sprite === "object") { + let [key, value] = Object.entries(sprite)[0]; + component[key] = value; + } else { + component.sprite = sprite; + } + if (typeof tags === "object") { + let [key, value] = Object.entries(tags)[0]; + component[key] = value; + } else { + component.tags = tags; + } + if (typeof link === "object") { + let [key, value] = Object.entries(link)[0]; + component[key] = value; + } else { + component.link = link; + } + component.wrap = autoWrap(); + component.typeC4Shape = { text: typeC4Shape }; + component.parentBoundary = currentBoundaryParse; +}; +const addPersonOrSystemBoundary = function(alias, label, type, tags, link) { + if (alias === null || label === null) { + return; + } + let boundary = {}; + const old = boundaries.find((boundary2) => boundary2.alias === alias); + if (old && alias === old.alias) { + boundary = old; + } else { + boundary.alias = alias; + boundaries.push(boundary); + } + if (label === void 0 || label === null) { + boundary.label = { text: "" }; + } else { + boundary.label = { text: label }; + } + if (type === void 0 || type === null) { + boundary.type = { text: "system" }; + } else { + if (typeof type === "object") { + let [key, value] = Object.entries(type)[0]; + boundary[key] = { text: value }; + } else { + boundary.type = { text: type }; + } + } + if (typeof tags === "object") { + let [key, value] = Object.entries(tags)[0]; + boundary[key] = value; + } else { + boundary.tags = tags; + } + if (typeof link === "object") { + let [key, value] = Object.entries(link)[0]; + boundary[key] = value; + } else { + boundary.link = link; + } + boundary.parentBoundary = currentBoundaryParse; + boundary.wrap = autoWrap(); + parentBoundaryParse = currentBoundaryParse; + currentBoundaryParse = alias; + boundaryParseStack.push(parentBoundaryParse); +}; +const addContainerBoundary = function(alias, label, type, tags, link) { + if (alias === null || label === null) { + return; + } + let boundary = {}; + const old = boundaries.find((boundary2) => boundary2.alias === alias); + if (old && alias === old.alias) { + boundary = old; + } else { + boundary.alias = alias; + boundaries.push(boundary); + } + if (label === void 0 || label === null) { + boundary.label = { text: "" }; + } else { + boundary.label = { text: label }; + } + if (type === void 0 || type === null) { + boundary.type = { text: "container" }; + } else { + if (typeof type === "object") { + let [key, value] = Object.entries(type)[0]; + boundary[key] = { text: value }; + } else { + boundary.type = { text: type }; + } + } + if (typeof tags === "object") { + let [key, value] = Object.entries(tags)[0]; + boundary[key] = value; + } else { + boundary.tags = tags; + } + if (typeof link === "object") { + let [key, value] = Object.entries(link)[0]; + boundary[key] = value; + } else { + boundary.link = link; + } + boundary.parentBoundary = currentBoundaryParse; + boundary.wrap = autoWrap(); + parentBoundaryParse = currentBoundaryParse; + currentBoundaryParse = alias; + boundaryParseStack.push(parentBoundaryParse); +}; +const addDeploymentNode = function(nodeType, alias, label, type, descr, sprite, tags, link) { + if (alias === null || label === null) { + return; + } + let boundary = {}; + const old = boundaries.find((boundary2) => boundary2.alias === alias); + if (old && alias === old.alias) { + boundary = old; + } else { + boundary.alias = alias; + boundaries.push(boundary); + } + if (label === void 0 || label === null) { + boundary.label = { text: "" }; + } else { + boundary.label = { text: label }; + } + if (type === void 0 || type === null) { + boundary.type = { text: "node" }; + } else { + if (typeof type === "object") { + let [key, value] = Object.entries(type)[0]; + boundary[key] = { text: value }; + } else { + boundary.type = { text: type }; + } + } + if (descr === void 0 || descr === null) { + boundary.descr = { text: "" }; + } else { + if (typeof descr === "object") { + let [key, value] = Object.entries(descr)[0]; + boundary[key] = { text: value }; + } else { + boundary.descr = { text: descr }; + } + } + if (typeof tags === "object") { + let [key, value] = Object.entries(tags)[0]; + boundary[key] = value; + } else { + boundary.tags = tags; + } + if (typeof link === "object") { + let [key, value] = Object.entries(link)[0]; + boundary[key] = value; + } else { + boundary.link = link; + } + boundary.nodeType = nodeType; + boundary.parentBoundary = currentBoundaryParse; + boundary.wrap = autoWrap(); + parentBoundaryParse = currentBoundaryParse; + currentBoundaryParse = alias; + boundaryParseStack.push(parentBoundaryParse); +}; +const popBoundaryParseStack = function() { + currentBoundaryParse = parentBoundaryParse; + boundaryParseStack.pop(); + parentBoundaryParse = boundaryParseStack.pop(); + boundaryParseStack.push(parentBoundaryParse); +}; +const updateElStyle = function(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) { + let old = c4ShapeArray.find((element) => element.alias === elementName); + if (old === void 0) { + old = boundaries.find((element) => element.alias === elementName); + if (old === void 0) { + return; + } + } + if (bgColor !== void 0 && bgColor !== null) { + if (typeof bgColor === "object") { + let [key, value] = Object.entries(bgColor)[0]; + old[key] = value; + } else { + old.bgColor = bgColor; + } + } + if (fontColor !== void 0 && fontColor !== null) { + if (typeof fontColor === "object") { + let [key, value] = Object.entries(fontColor)[0]; + old[key] = value; + } else { + old.fontColor = fontColor; + } + } + if (borderColor !== void 0 && borderColor !== null) { + if (typeof borderColor === "object") { + let [key, value] = Object.entries(borderColor)[0]; + old[key] = value; + } else { + old.borderColor = borderColor; + } + } + if (shadowing !== void 0 && shadowing !== null) { + if (typeof shadowing === "object") { + let [key, value] = Object.entries(shadowing)[0]; + old[key] = value; + } else { + old.shadowing = shadowing; + } + } + if (shape !== void 0 && shape !== null) { + if (typeof shape === "object") { + let [key, value] = Object.entries(shape)[0]; + old[key] = value; + } else { + old.shape = shape; + } + } + if (sprite !== void 0 && sprite !== null) { + if (typeof sprite === "object") { + let [key, value] = Object.entries(sprite)[0]; + old[key] = value; + } else { + old.sprite = sprite; + } + } + if (techn !== void 0 && techn !== null) { + if (typeof techn === "object") { + let [key, value] = Object.entries(techn)[0]; + old[key] = value; + } else { + old.techn = techn; + } + } + if (legendText !== void 0 && legendText !== null) { + if (typeof legendText === "object") { + let [key, value] = Object.entries(legendText)[0]; + old[key] = value; + } else { + old.legendText = legendText; + } + } + if (legendSprite !== void 0 && legendSprite !== null) { + if (typeof legendSprite === "object") { + let [key, value] = Object.entries(legendSprite)[0]; + old[key] = value; + } else { + old.legendSprite = legendSprite; + } + } +}; +const updateRelStyle = function(typeC4Shape, from, to, textColor, lineColor, offsetX, offsetY) { + const old = rels.find((rel) => rel.from === from && rel.to === to); + if (old === void 0) { + return; + } + if (textColor !== void 0 && textColor !== null) { + if (typeof textColor === "object") { + let [key, value] = Object.entries(textColor)[0]; + old[key] = value; + } else { + old.textColor = textColor; + } + } + if (lineColor !== void 0 && lineColor !== null) { + if (typeof lineColor === "object") { + let [key, value] = Object.entries(lineColor)[0]; + old[key] = value; + } else { + old.lineColor = lineColor; + } + } + if (offsetX !== void 0 && offsetX !== null) { + if (typeof offsetX === "object") { + let [key, value] = Object.entries(offsetX)[0]; + old[key] = parseInt(value); + } else { + old.offsetX = parseInt(offsetX); + } + } + if (offsetY !== void 0 && offsetY !== null) { + if (typeof offsetY === "object") { + let [key, value] = Object.entries(offsetY)[0]; + old[key] = parseInt(value); + } else { + old.offsetY = parseInt(offsetY); + } + } +}; +const updateLayoutConfig = function(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) { + let c4ShapeInRowValue = c4ShapeInRow$1; + let c4BoundaryInRowValue = c4BoundaryInRow$1; + if (typeof c4ShapeInRowParam === "object") { + const value = Object.values(c4ShapeInRowParam)[0]; + c4ShapeInRowValue = parseInt(value); + } else { + c4ShapeInRowValue = parseInt(c4ShapeInRowParam); + } + if (typeof c4BoundaryInRowParam === "object") { + const value = Object.values(c4BoundaryInRowParam)[0]; + c4BoundaryInRowValue = parseInt(value); + } else { + c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam); + } + if (c4ShapeInRowValue >= 1) { + c4ShapeInRow$1 = c4ShapeInRowValue; + } + if (c4BoundaryInRowValue >= 1) { + c4BoundaryInRow$1 = c4BoundaryInRowValue; + } +}; +const getC4ShapeInRow = function() { + return c4ShapeInRow$1; +}; +const getC4BoundaryInRow = function() { + return c4BoundaryInRow$1; +}; +const getCurrentBoundaryParse = function() { + return currentBoundaryParse; +}; +const getParentBoundaryParse = function() { + return parentBoundaryParse; +}; +const getC4ShapeArray = function(parentBoundary) { + if (parentBoundary === void 0 || parentBoundary === null) { + return c4ShapeArray; + } else { + return c4ShapeArray.filter((personOrSystem) => { + return personOrSystem.parentBoundary === parentBoundary; + }); + } +}; +const getC4Shape = function(alias) { + return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias); +}; +const getC4ShapeKeys = function(parentBoundary) { + return Object.keys(getC4ShapeArray(parentBoundary)); +}; +const getBoundaries = function(parentBoundary) { + if (parentBoundary === void 0 || parentBoundary === null) { + return boundaries; + } else { + return boundaries.filter((boundary) => boundary.parentBoundary === parentBoundary); + } +}; +const getBoundarys = getBoundaries; +const getRels = function() { + return rels; +}; +const getTitle = function() { + return title; +}; +const setWrap = function(wrapSetting) { + wrapEnabled = wrapSetting; +}; +const autoWrap = function() { + return wrapEnabled; +}; +const clear = function() { + c4ShapeArray = []; + boundaries = [ + { + alias: "global", + label: { text: "global" }, + type: { text: "global" }, + tags: null, + link: null, + parentBoundary: "" + } + ]; + parentBoundaryParse = ""; + currentBoundaryParse = "global"; + boundaryParseStack = [""]; + rels = []; + boundaryParseStack = [""]; + title = ""; + wrapEnabled = false; + c4ShapeInRow$1 = 4; + c4BoundaryInRow$1 = 2; +}; +const LINETYPE = { + SOLID: 0, + DOTTED: 1, + NOTE: 2, + SOLID_CROSS: 3, + DOTTED_CROSS: 4, + SOLID_OPEN: 5, + DOTTED_OPEN: 6, + LOOP_START: 10, + LOOP_END: 11, + ALT_START: 12, + ALT_ELSE: 13, + ALT_END: 14, + OPT_START: 15, + OPT_END: 16, + ACTIVE_START: 17, + ACTIVE_END: 18, + PAR_START: 19, + PAR_AND: 20, + PAR_END: 21, + RECT_START: 22, + RECT_END: 23, + SOLID_POINT: 24, + DOTTED_POINT: 25 +}; +const ARROWTYPE = { + FILLED: 0, + OPEN: 1 +}; +const PLACEMENT = { + LEFTOF: 0, + RIGHTOF: 1, + OVER: 2 +}; +const setTitle = function(txt) { + let sanitizedText = sanitizeText(txt, getConfig()); + title = sanitizedText; +}; +const db = { + addPersonOrSystem, + addPersonOrSystemBoundary, + addContainer, + addContainerBoundary, + addComponent, + addDeploymentNode, + popBoundaryParseStack, + addRel, + updateElStyle, + updateRelStyle, + updateLayoutConfig, + autoWrap, + setWrap, + getC4ShapeArray, + getC4Shape, + getC4ShapeKeys, + getBoundaries, + getBoundarys, + getCurrentBoundaryParse, + getParentBoundaryParse, + getRels, + getTitle, + getC4Type, + getC4ShapeInRow, + getC4BoundaryInRow, + setAccTitle, + getAccTitle, + getAccDescription, + setAccDescription, + getConfig: () => getConfig().c4, + clear, + LINETYPE, + ARROWTYPE, + PLACEMENT, + setTitle, + setC4Type + // apply, +}; +const drawRect = function(elem, rectData) { + return drawRect$1(elem, rectData); +}; +const drawImage = function(elem, width, height, x, y, link) { + const imageElem = elem.append("image"); + imageElem.attr("width", width); + imageElem.attr("height", height); + imageElem.attr("x", x); + imageElem.attr("y", y); + let sanitizedLink = link.startsWith("data:image/png;base64") ? link : dist.sanitizeUrl(link); + imageElem.attr("xlink:href", sanitizedLink); +}; +const drawRels$1 = (elem, rels2, conf2) => { + const relsElem = elem.append("g"); + let i = 0; + for (let rel of rels2) { + let textColor = rel.textColor ? rel.textColor : "#444444"; + let strokeColor = rel.lineColor ? rel.lineColor : "#444444"; + let offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0; + let offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0; + let url = ""; + if (i === 0) { + let line = relsElem.append("line"); + line.attr("x1", rel.startPoint.x); + line.attr("y1", rel.startPoint.y); + line.attr("x2", rel.endPoint.x); + line.attr("y2", rel.endPoint.y); + line.attr("stroke-width", "1"); + line.attr("stroke", strokeColor); + line.style("fill", "none"); + if (rel.type !== "rel_b") { + line.attr("marker-end", "url(" + url + "#arrowhead)"); + } + if (rel.type === "birel" || rel.type === "rel_b") { + line.attr("marker-start", "url(" + url + "#arrowend)"); + } + i = -1; + } else { + let line = relsElem.append("path"); + line.attr("fill", "none").attr("stroke-width", "1").attr("stroke", strokeColor).attr( + "d", + "Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx", rel.startPoint.x).replaceAll("starty", rel.startPoint.y).replaceAll( + "controlx", + rel.startPoint.x + (rel.endPoint.x - rel.startPoint.x) / 2 - (rel.endPoint.x - rel.startPoint.x) / 4 + ).replaceAll("controly", rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2).replaceAll("stopx", rel.endPoint.x).replaceAll("stopy", rel.endPoint.y) + ); + if (rel.type !== "rel_b") { + line.attr("marker-end", "url(" + url + "#arrowhead)"); + } + if (rel.type === "birel" || rel.type === "rel_b") { + line.attr("marker-start", "url(" + url + "#arrowend)"); + } + } + let messageConf = conf2.messageFont(); + _drawTextCandidateFunc(conf2)( + rel.label.text, + relsElem, + Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX, + Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + offsetY, + rel.label.width, + rel.label.height, + { fill: textColor }, + messageConf + ); + if (rel.techn && rel.techn.text !== "") { + messageConf = conf2.messageFont(); + _drawTextCandidateFunc(conf2)( + "[" + rel.techn.text + "]", + relsElem, + Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX, + Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + conf2.messageFontSize + 5 + offsetY, + Math.max(rel.label.width, rel.techn.width), + rel.techn.height, + { fill: textColor, "font-style": "italic" }, + messageConf + ); + } + } +}; +const drawBoundary$1 = function(elem, boundary, conf2) { + const boundaryElem = elem.append("g"); + let fillColor = boundary.bgColor ? boundary.bgColor : "none"; + let strokeColor = boundary.borderColor ? boundary.borderColor : "#444444"; + let fontColor = boundary.fontColor ? boundary.fontColor : "black"; + let attrsValue = { "stroke-width": 1, "stroke-dasharray": "7.0,7.0" }; + if (boundary.nodeType) { + attrsValue = { "stroke-width": 1 }; + } + let rectData = { + x: boundary.x, + y: boundary.y, + fill: fillColor, + stroke: strokeColor, + width: boundary.width, + height: boundary.height, + rx: 2.5, + ry: 2.5, + attrs: attrsValue + }; + drawRect(boundaryElem, rectData); + let boundaryConf = conf2.boundaryFont(); + boundaryConf.fontWeight = "bold"; + boundaryConf.fontSize = boundaryConf.fontSize + 2; + boundaryConf.fontColor = fontColor; + _drawTextCandidateFunc(conf2)( + boundary.label.text, + boundaryElem, + boundary.x, + boundary.y + boundary.label.Y, + boundary.width, + boundary.height, + { fill: "#444444" }, + boundaryConf + ); + if (boundary.type && boundary.type.text !== "") { + boundaryConf = conf2.boundaryFont(); + boundaryConf.fontColor = fontColor; + _drawTextCandidateFunc(conf2)( + boundary.type.text, + boundaryElem, + boundary.x, + boundary.y + boundary.type.Y, + boundary.width, + boundary.height, + { fill: "#444444" }, + boundaryConf + ); + } + if (boundary.descr && boundary.descr.text !== "") { + boundaryConf = conf2.boundaryFont(); + boundaryConf.fontSize = boundaryConf.fontSize - 2; + boundaryConf.fontColor = fontColor; + _drawTextCandidateFunc(conf2)( + boundary.descr.text, + boundaryElem, + boundary.x, + boundary.y + boundary.descr.Y, + boundary.width, + boundary.height, + { fill: "#444444" }, + boundaryConf + ); + } +}; +const drawC4Shape = function(elem, c4Shape, conf2) { + var _a; + let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf2[c4Shape.typeC4Shape.text + "_bg_color"]; + let strokeColor = c4Shape.borderColor ? c4Shape.borderColor : conf2[c4Shape.typeC4Shape.text + "_border_color"]; + let fontColor = c4Shape.fontColor ? c4Shape.fontColor : "#FFFFFF"; + let personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII="; + switch (c4Shape.typeC4Shape.text) { + case "person": + personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII="; + break; + case "external_person": + personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII="; + break; + } + const c4ShapeElem = elem.append("g"); + c4ShapeElem.attr("class", "person-man"); + const rect = getNoteRect(); + switch (c4Shape.typeC4Shape.text) { + case "person": + case "external_person": + case "system": + case "external_system": + case "container": + case "external_container": + case "component": + case "external_component": + rect.x = c4Shape.x; + rect.y = c4Shape.y; + rect.fill = fillColor; + rect.width = c4Shape.width; + rect.height = c4Shape.height; + rect.stroke = strokeColor; + rect.rx = 2.5; + rect.ry = 2.5; + rect.attrs = { "stroke-width": 0.5 }; + drawRect(c4ShapeElem, rect); + break; + case "system_db": + case "external_system_db": + case "container_db": + case "external_container_db": + case "component_db": + case "external_component_db": + c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr( + "d", + "Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2).replaceAll("height", c4Shape.height) + ); + c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr( + "d", + "Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2) + ); + break; + case "system_queue": + case "external_system_queue": + case "container_queue": + case "external_container_queue": + case "component_queue": + case "external_component_queue": + c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr( + "d", + "Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("width", c4Shape.width).replaceAll("half", c4Shape.height / 2) + ); + c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr( + "d", + "Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx", c4Shape.x + c4Shape.width).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.height / 2) + ); + break; + } + let c4ShapeFontConf = getC4ShapeFont(conf2, c4Shape.typeC4Shape.text); + c4ShapeElem.append("text").attr("fill", fontColor).attr("font-family", c4ShapeFontConf.fontFamily).attr("font-size", c4ShapeFontConf.fontSize - 2).attr("font-style", "italic").attr("lengthAdjust", "spacing").attr("textLength", c4Shape.typeC4Shape.width).attr("x", c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2).attr("y", c4Shape.y + c4Shape.typeC4Shape.Y).text("<<" + c4Shape.typeC4Shape.text + ">>"); + switch (c4Shape.typeC4Shape.text) { + case "person": + case "external_person": + drawImage( + c4ShapeElem, + 48, + 48, + c4Shape.x + c4Shape.width / 2 - 24, + c4Shape.y + c4Shape.image.Y, + personImg + ); + break; + } + let textFontConf = conf2[c4Shape.typeC4Shape.text + "Font"](); + textFontConf.fontWeight = "bold"; + textFontConf.fontSize = textFontConf.fontSize + 2; + textFontConf.fontColor = fontColor; + _drawTextCandidateFunc(conf2)( + c4Shape.label.text, + c4ShapeElem, + c4Shape.x, + c4Shape.y + c4Shape.label.Y, + c4Shape.width, + c4Shape.height, + { fill: fontColor }, + textFontConf + ); + textFontConf = conf2[c4Shape.typeC4Shape.text + "Font"](); + textFontConf.fontColor = fontColor; + if (c4Shape.techn && ((_a = c4Shape.techn) == null ? void 0 : _a.text) !== "") { + _drawTextCandidateFunc(conf2)( + c4Shape.techn.text, + c4ShapeElem, + c4Shape.x, + c4Shape.y + c4Shape.techn.Y, + c4Shape.width, + c4Shape.height, + { fill: fontColor, "font-style": "italic" }, + textFontConf + ); + } else if (c4Shape.type && c4Shape.type.text !== "") { + _drawTextCandidateFunc(conf2)( + c4Shape.type.text, + c4ShapeElem, + c4Shape.x, + c4Shape.y + c4Shape.type.Y, + c4Shape.width, + c4Shape.height, + { fill: fontColor, "font-style": "italic" }, + textFontConf + ); + } + if (c4Shape.descr && c4Shape.descr.text !== "") { + textFontConf = conf2.personFont(); + textFontConf.fontColor = fontColor; + _drawTextCandidateFunc(conf2)( + c4Shape.descr.text, + c4ShapeElem, + c4Shape.x, + c4Shape.y + c4Shape.descr.Y, + c4Shape.width, + c4Shape.height, + { fill: fontColor }, + textFontConf + ); + } + return c4Shape.height; +}; +const insertDatabaseIcon = function(elem) { + elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr( + "d", + "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z" + ); +}; +const insertComputerIcon = function(elem) { + elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( + "d", + "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z" + ); +}; +const insertClockIcon = function(elem) { + elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( + "d", + "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z" + ); +}; +const insertArrowHead = function(elem) { + elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z"); +}; +const insertArrowEnd = function(elem) { + elem.append("defs").append("marker").attr("id", "arrowend").attr("refX", 1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 10 0 L 0 5 L 10 10 z"); +}; +const insertArrowFilledHead = function(elem) { + elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); +}; +const insertDynamicNumber = function(elem) { + elem.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6); +}; +const insertArrowCrossHead = function(elem) { + const defs = elem.append("defs"); + const marker = defs.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 16).attr("refY", 4); + marker.append("path").attr("fill", "black").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 9,2 V 6 L16,4 Z"); + marker.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 0,1 L 6,7 M 6,1 L 0,7"); +}; +const getC4ShapeFont = (cnf, typeC4Shape) => { + return { + fontFamily: cnf[typeC4Shape + "FontFamily"], + fontSize: cnf[typeC4Shape + "FontSize"], + fontWeight: cnf[typeC4Shape + "FontWeight"] + }; +}; +const _drawTextCandidateFunc = function() { + function byText(content, g, x, y, width, height, textAttrs) { + const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("text-anchor", "middle").text(content); + _setTextAttrs(text, textAttrs); + } + function byTspan(content, g, x, y, width, height, textAttrs, conf2) { + const { fontSize, fontFamily, fontWeight } = conf2; + const lines = content.split(common.lineBreakRegex); + for (let i = 0; i < lines.length; i++) { + const dy = i * fontSize - fontSize * (lines.length - 1) / 2; + const text = g.append("text").attr("x", x + width / 2).attr("y", y).style("text-anchor", "middle").attr("dominant-baseline", "middle").style("font-size", fontSize).style("font-weight", fontWeight).style("font-family", fontFamily); + text.append("tspan").attr("dy", dy).text(lines[i]).attr("alignment-baseline", "mathematical"); + _setTextAttrs(text, textAttrs); + } + } + function byFo(content, g, x, y, width, height, textAttrs, conf2) { + const s = g.append("switch"); + const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height); + const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); + byTspan(content, s, x, y, width, height, textAttrs, conf2); + _setTextAttrs(text, textAttrs); + } + function _setTextAttrs(toText, fromTextAttrsDict) { + for (const key in fromTextAttrsDict) { + if (fromTextAttrsDict.hasOwnProperty(key)) { + toText.attr(key, fromTextAttrsDict[key]); + } + } + } + return function(conf2) { + return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan; + }; +}(); +const svgDraw = { + drawRect, + drawBoundary: drawBoundary$1, + drawC4Shape, + drawRels: drawRels$1, + drawImage, + insertArrowHead, + insertArrowEnd, + insertArrowFilledHead, + insertDynamicNumber, + insertArrowCrossHead, + insertDatabaseIcon, + insertComputerIcon, + insertClockIcon +}; +let globalBoundaryMaxX = 0, globalBoundaryMaxY = 0; +let c4ShapeInRow = 4; +let c4BoundaryInRow = 2; +parser.yy = db; +let conf = {}; +class Bounds { + constructor(diagObj) { + this.name = ""; + this.data = {}; + this.data.startx = void 0; + this.data.stopx = void 0; + this.data.starty = void 0; + this.data.stopy = void 0; + this.data.widthLimit = void 0; + this.nextData = {}; + this.nextData.startx = void 0; + this.nextData.stopx = void 0; + this.nextData.starty = void 0; + this.nextData.stopy = void 0; + this.nextData.cnt = 0; + setConf(diagObj.db.getConfig()); + } + setData(startx, stopx, starty, stopy) { + this.nextData.startx = this.data.startx = startx; + this.nextData.stopx = this.data.stopx = stopx; + this.nextData.starty = this.data.starty = starty; + this.nextData.stopy = this.data.stopy = stopy; + } + updateVal(obj, key, val, fun) { + if (obj[key] === void 0) { + obj[key] = val; + } else { + obj[key] = fun(val, obj[key]); + } + } + insert(c4Shape) { + this.nextData.cnt = this.nextData.cnt + 1; + let _startx = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + c4Shape.margin : this.nextData.stopx + c4Shape.margin * 2; + let _stopx = _startx + c4Shape.width; + let _starty = this.nextData.starty + c4Shape.margin * 2; + let _stopy = _starty + c4Shape.height; + if (_startx >= this.data.widthLimit || _stopx >= this.data.widthLimit || this.nextData.cnt > c4ShapeInRow) { + _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX; + _starty = this.nextData.stopy + c4Shape.margin * 2; + this.nextData.stopx = _stopx = _startx + c4Shape.width; + this.nextData.starty = this.nextData.stopy; + this.nextData.stopy = _stopy = _starty + c4Shape.height; + this.nextData.cnt = 1; + } + c4Shape.x = _startx; + c4Shape.y = _starty; + this.updateVal(this.data, "startx", _startx, Math.min); + this.updateVal(this.data, "starty", _starty, Math.min); + this.updateVal(this.data, "stopx", _stopx, Math.max); + this.updateVal(this.data, "stopy", _stopy, Math.max); + this.updateVal(this.nextData, "startx", _startx, Math.min); + this.updateVal(this.nextData, "starty", _starty, Math.min); + this.updateVal(this.nextData, "stopx", _stopx, Math.max); + this.updateVal(this.nextData, "stopy", _stopy, Math.max); + } + init(diagObj) { + this.name = ""; + this.data = { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0, + widthLimit: void 0 + }; + this.nextData = { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0, + cnt: 0 + }; + setConf(diagObj.db.getConfig()); + } + bumpLastMargin(margin) { + this.data.stopx += margin; + this.data.stopy += margin; + } +} +const setConf = function(cnf) { + assignWithDepth(conf, cnf); + if (cnf.fontFamily) { + conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily; + } + if (cnf.fontSize) { + conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize; + } + if (cnf.fontWeight) { + conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight; + } +}; +const c4ShapeFont = (cnf, typeC4Shape) => { + return { + fontFamily: cnf[typeC4Shape + "FontFamily"], + fontSize: cnf[typeC4Shape + "FontSize"], + fontWeight: cnf[typeC4Shape + "FontWeight"] + }; +}; +const boundaryFont = (cnf) => { + return { + fontFamily: cnf.boundaryFontFamily, + fontSize: cnf.boundaryFontSize, + fontWeight: cnf.boundaryFontWeight + }; +}; +const messageFont = (cnf) => { + return { + fontFamily: cnf.messageFontFamily, + fontSize: cnf.messageFontSize, + fontWeight: cnf.messageFontWeight + }; +}; +function calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) { + if (!c4Shape[textType].width) { + if (c4ShapeTextWrap) { + c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf); + c4Shape[textType].textLines = c4Shape[textType].text.split(common.lineBreakRegex).length; + c4Shape[textType].width = textLimitWidth; + c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf); + } else { + let lines = c4Shape[textType].text.split(common.lineBreakRegex); + c4Shape[textType].textLines = lines.length; + let lineHeight = 0; + c4Shape[textType].height = 0; + c4Shape[textType].width = 0; + for (const line of lines) { + c4Shape[textType].width = Math.max( + calculateTextWidth(line, textConf), + c4Shape[textType].width + ); + lineHeight = calculateTextHeight(line, textConf); + c4Shape[textType].height = c4Shape[textType].height + lineHeight; + } + } + } +} +const drawBoundary = function(diagram2, boundary, bounds) { + boundary.x = bounds.data.startx; + boundary.y = bounds.data.starty; + boundary.width = bounds.data.stopx - bounds.data.startx; + boundary.height = bounds.data.stopy - bounds.data.starty; + boundary.label.y = conf.c4ShapeMargin - 35; + let boundaryTextWrap = boundary.wrap && conf.wrap; + let boundaryLabelConf = boundaryFont(conf); + boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2; + boundaryLabelConf.fontWeight = "bold"; + let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf); + calcC4ShapeTextWH("label", boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth); + svgDraw.drawBoundary(diagram2, boundary, conf); +}; +const drawC4ShapeArray = function(currentBounds, diagram2, c4ShapeArray2, c4ShapeKeys) { + let Y = 0; + for (const c4ShapeKey of c4ShapeKeys) { + Y = 0; + const c4Shape = c4ShapeArray2[c4ShapeKey]; + let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text); + c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2; + c4Shape.typeC4Shape.width = calculateTextWidth( + "«" + c4Shape.typeC4Shape.text + "»", + c4ShapeTypeConf + ); + c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2; + c4Shape.typeC4Shape.Y = conf.c4ShapePadding; + Y = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4; + c4Shape.image = { width: 0, height: 0, Y: 0 }; + switch (c4Shape.typeC4Shape.text) { + case "person": + case "external_person": + c4Shape.image.width = 48; + c4Shape.image.height = 48; + c4Shape.image.Y = Y; + Y = c4Shape.image.Y + c4Shape.image.height; + break; + } + if (c4Shape.sprite) { + c4Shape.image.width = 48; + c4Shape.image.height = 48; + c4Shape.image.Y = Y; + Y = c4Shape.image.Y + c4Shape.image.height; + } + let c4ShapeTextWrap = c4Shape.wrap && conf.wrap; + let textLimitWidth = conf.width - conf.c4ShapePadding * 2; + let c4ShapeLabelConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text); + c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2; + c4ShapeLabelConf.fontWeight = "bold"; + calcC4ShapeTextWH("label", c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth); + c4Shape["label"].Y = Y + 8; + Y = c4Shape["label"].Y + c4Shape["label"].height; + if (c4Shape.type && c4Shape.type.text !== "") { + c4Shape.type.text = "[" + c4Shape.type.text + "]"; + let c4ShapeTypeConf2 = c4ShapeFont(conf, c4Shape.typeC4Shape.text); + calcC4ShapeTextWH("type", c4Shape, c4ShapeTextWrap, c4ShapeTypeConf2, textLimitWidth); + c4Shape["type"].Y = Y + 5; + Y = c4Shape["type"].Y + c4Shape["type"].height; + } else if (c4Shape.techn && c4Shape.techn.text !== "") { + c4Shape.techn.text = "[" + c4Shape.techn.text + "]"; + let c4ShapeTechnConf = c4ShapeFont(conf, c4Shape.techn.text); + calcC4ShapeTextWH("techn", c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth); + c4Shape["techn"].Y = Y + 5; + Y = c4Shape["techn"].Y + c4Shape["techn"].height; + } + let rectHeight = Y; + let rectWidth = c4Shape.label.width; + if (c4Shape.descr && c4Shape.descr.text !== "") { + let c4ShapeDescrConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text); + calcC4ShapeTextWH("descr", c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth); + c4Shape["descr"].Y = Y + 20; + Y = c4Shape["descr"].Y + c4Shape["descr"].height; + rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width); + rectHeight = Y - c4Shape["descr"].textLines * 5; + } + rectWidth = rectWidth + conf.c4ShapePadding; + c4Shape.width = Math.max(c4Shape.width || conf.width, rectWidth, conf.width); + c4Shape.height = Math.max(c4Shape.height || conf.height, rectHeight, conf.height); + c4Shape.margin = c4Shape.margin || conf.c4ShapeMargin; + currentBounds.insert(c4Shape); + svgDraw.drawC4Shape(diagram2, c4Shape, conf); + } + currentBounds.bumpLastMargin(conf.c4ShapeMargin); +}; +class Point { + constructor(x, y) { + this.x = x; + this.y = y; + } +} +let getIntersectPoint = function(fromNode, endPoint) { + let x1 = fromNode.x; + let y1 = fromNode.y; + let x2 = endPoint.x; + let y2 = endPoint.y; + let fromCenterX = x1 + fromNode.width / 2; + let fromCenterY = y1 + fromNode.height / 2; + let dx = Math.abs(x1 - x2); + let dy = Math.abs(y1 - y2); + let tanDYX = dy / dx; + let fromDYX = fromNode.height / fromNode.width; + let returnPoint = null; + if (y1 == y2 && x1 < x2) { + returnPoint = new Point(x1 + fromNode.width, fromCenterY); + } else if (y1 == y2 && x1 > x2) { + returnPoint = new Point(x1, fromCenterY); + } else if (x1 == x2 && y1 < y2) { + returnPoint = new Point(fromCenterX, y1 + fromNode.height); + } else if (x1 == x2 && y1 > y2) { + returnPoint = new Point(fromCenterX, y1); + } + if (x1 > x2 && y1 < y2) { + if (fromDYX >= tanDYX) { + returnPoint = new Point(x1, fromCenterY + tanDYX * fromNode.width / 2); + } else { + returnPoint = new Point( + fromCenterX - dx / dy * fromNode.height / 2, + y1 + fromNode.height + ); + } + } else if (x1 < x2 && y1 < y2) { + if (fromDYX >= tanDYX) { + returnPoint = new Point(x1 + fromNode.width, fromCenterY + tanDYX * fromNode.width / 2); + } else { + returnPoint = new Point( + fromCenterX + dx / dy * fromNode.height / 2, + y1 + fromNode.height + ); + } + } else if (x1 < x2 && y1 > y2) { + if (fromDYX >= tanDYX) { + returnPoint = new Point(x1 + fromNode.width, fromCenterY - tanDYX * fromNode.width / 2); + } else { + returnPoint = new Point(fromCenterX + fromNode.height / 2 * dx / dy, y1); + } + } else if (x1 > x2 && y1 > y2) { + if (fromDYX >= tanDYX) { + returnPoint = new Point(x1, fromCenterY - fromNode.width / 2 * tanDYX); + } else { + returnPoint = new Point(fromCenterX - fromNode.height / 2 * dx / dy, y1); + } + } + return returnPoint; +}; +let getIntersectPoints = function(fromNode, endNode) { + let endIntersectPoint = { x: 0, y: 0 }; + endIntersectPoint.x = endNode.x + endNode.width / 2; + endIntersectPoint.y = endNode.y + endNode.height / 2; + let startPoint = getIntersectPoint(fromNode, endIntersectPoint); + endIntersectPoint.x = fromNode.x + fromNode.width / 2; + endIntersectPoint.y = fromNode.y + fromNode.height / 2; + let endPoint = getIntersectPoint(endNode, endIntersectPoint); + return { startPoint, endPoint }; +}; +const drawRels = function(diagram2, rels2, getC4ShapeObj, diagObj) { + let i = 0; + for (let rel of rels2) { + i = i + 1; + let relTextWrap = rel.wrap && conf.wrap; + let relConf = messageFont(conf); + let diagramType = diagObj.db.getC4Type(); + if (diagramType === "C4Dynamic") { + rel.label.text = i + ": " + rel.label.text; + } + let textLimitWidth = calculateTextWidth(rel.label.text, relConf); + calcC4ShapeTextWH("label", rel, relTextWrap, relConf, textLimitWidth); + if (rel.techn && rel.techn.text !== "") { + textLimitWidth = calculateTextWidth(rel.techn.text, relConf); + calcC4ShapeTextWH("techn", rel, relTextWrap, relConf, textLimitWidth); + } + if (rel.descr && rel.descr.text !== "") { + textLimitWidth = calculateTextWidth(rel.descr.text, relConf); + calcC4ShapeTextWH("descr", rel, relTextWrap, relConf, textLimitWidth); + } + let fromNode = getC4ShapeObj(rel.from); + let endNode = getC4ShapeObj(rel.to); + let points = getIntersectPoints(fromNode, endNode); + rel.startPoint = points.startPoint; + rel.endPoint = points.endPoint; + } + svgDraw.drawRels(diagram2, rels2, conf); +}; +function drawInsideBoundary(diagram2, parentBoundaryAlias, parentBounds, currentBoundaries, diagObj) { + let currentBounds = new Bounds(diagObj); + currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundaries.length); + for (let [i, currentBoundary] of currentBoundaries.entries()) { + let Y = 0; + currentBoundary.image = { width: 0, height: 0, Y: 0 }; + if (currentBoundary.sprite) { + currentBoundary.image.width = 48; + currentBoundary.image.height = 48; + currentBoundary.image.Y = Y; + Y = currentBoundary.image.Y + currentBoundary.image.height; + } + let currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap; + let currentBoundaryLabelConf = boundaryFont(conf); + currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2; + currentBoundaryLabelConf.fontWeight = "bold"; + calcC4ShapeTextWH( + "label", + currentBoundary, + currentBoundaryTextWrap, + currentBoundaryLabelConf, + currentBounds.data.widthLimit + ); + currentBoundary["label"].Y = Y + 8; + Y = currentBoundary["label"].Y + currentBoundary["label"].height; + if (currentBoundary.type && currentBoundary.type.text !== "") { + currentBoundary.type.text = "[" + currentBoundary.type.text + "]"; + let currentBoundaryTypeConf = boundaryFont(conf); + calcC4ShapeTextWH( + "type", + currentBoundary, + currentBoundaryTextWrap, + currentBoundaryTypeConf, + currentBounds.data.widthLimit + ); + currentBoundary["type"].Y = Y + 5; + Y = currentBoundary["type"].Y + currentBoundary["type"].height; + } + if (currentBoundary.descr && currentBoundary.descr.text !== "") { + let currentBoundaryDescrConf = boundaryFont(conf); + currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2; + calcC4ShapeTextWH( + "descr", + currentBoundary, + currentBoundaryTextWrap, + currentBoundaryDescrConf, + currentBounds.data.widthLimit + ); + currentBoundary["descr"].Y = Y + 20; + Y = currentBoundary["descr"].Y + currentBoundary["descr"].height; + } + if (i == 0 || i % c4BoundaryInRow === 0) { + let _x = parentBounds.data.startx + conf.diagramMarginX; + let _y = parentBounds.data.stopy + conf.diagramMarginY + Y; + currentBounds.setData(_x, _x, _y, _y); + } else { + let _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf.diagramMarginX : currentBounds.data.startx; + let _y = currentBounds.data.starty; + currentBounds.setData(_x, _x, _y, _y); + } + currentBounds.name = currentBoundary.alias; + let currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias); + let currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias); + if (currentPersonOrSystemKeys.length > 0) { + drawC4ShapeArray( + currentBounds, + diagram2, + currentPersonOrSystemArray, + currentPersonOrSystemKeys + ); + } + parentBoundaryAlias = currentBoundary.alias; + let nextCurrentBoundaries = diagObj.db.getBoundarys(parentBoundaryAlias); + if (nextCurrentBoundaries.length > 0) { + drawInsideBoundary( + diagram2, + parentBoundaryAlias, + currentBounds, + nextCurrentBoundaries, + diagObj + ); + } + if (currentBoundary.alias !== "global") { + drawBoundary(diagram2, currentBoundary, currentBounds); + } + parentBounds.data.stopy = Math.max( + currentBounds.data.stopy + conf.c4ShapeMargin, + parentBounds.data.stopy + ); + parentBounds.data.stopx = Math.max( + currentBounds.data.stopx + conf.c4ShapeMargin, + parentBounds.data.stopx + ); + globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx); + globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy); + } +} +const draw = function(_text, id, _version, diagObj) { + conf = getConfig().c4; + const securityLevel = getConfig().securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + let db2 = diagObj.db; + diagObj.db.setWrap(conf.wrap); + c4ShapeInRow = db2.getC4ShapeInRow(); + c4BoundaryInRow = db2.getC4BoundaryInRow(); + log.debug(`C:${JSON.stringify(conf, null, 2)}`); + const diagram2 = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : d3select(`[id="${id}"]`); + svgDraw.insertComputerIcon(diagram2); + svgDraw.insertDatabaseIcon(diagram2); + svgDraw.insertClockIcon(diagram2); + let screenBounds = new Bounds(diagObj); + screenBounds.setData( + conf.diagramMarginX, + conf.diagramMarginX, + conf.diagramMarginY, + conf.diagramMarginY + ); + screenBounds.data.widthLimit = screen.availWidth; + globalBoundaryMaxX = conf.diagramMarginX; + globalBoundaryMaxY = conf.diagramMarginY; + const title2 = diagObj.db.getTitle(); + let currentBoundaries = diagObj.db.getBoundarys(""); + drawInsideBoundary(diagram2, "", screenBounds, currentBoundaries, diagObj); + svgDraw.insertArrowHead(diagram2); + svgDraw.insertArrowEnd(diagram2); + svgDraw.insertArrowCrossHead(diagram2); + svgDraw.insertArrowFilledHead(diagram2); + drawRels(diagram2, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj); + screenBounds.data.stopx = globalBoundaryMaxX; + screenBounds.data.stopy = globalBoundaryMaxY; + const box = screenBounds.data; + let boxHeight = box.stopy - box.starty; + let height = boxHeight + 2 * conf.diagramMarginY; + let boxWidth = box.stopx - box.startx; + const width = boxWidth + 2 * conf.diagramMarginX; + if (title2) { + diagram2.append("text").text(title2).attr("x", (box.stopx - box.startx) / 2 - 4 * conf.diagramMarginX).attr("y", box.starty + conf.diagramMarginY); + } + configureSvgSize(diagram2, height, width, conf.useMaxWidth); + const extraVertForTitle = title2 ? 60 : 0; + diagram2.attr( + "viewBox", + box.startx - conf.diagramMarginX + " -" + (conf.diagramMarginY + extraVertForTitle) + " " + width + " " + (height + extraVertForTitle) + ); + log.debug(`models:`, box); +}; +const renderer = { + drawPersonOrSystemArray: drawC4ShapeArray, + drawBoundary, + setConf, + draw +}; +const getStyles = (options) => `.person { + stroke: ${options.personBorder}; + fill: ${options.personBkg}; + } +`; +const styles = getStyles; +const diagram = { + parser: parser$1, + db, + renderer, + styles, + init: ({ c4, wrap }) => { + renderer.setConf(c4); + db.setWrap(wrap); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/channel-ebbc4130.js b/assets/lib/mermaid/channel-ebbc4130.js new file mode 100644 index 000000000..76399404c --- /dev/null +++ b/assets/lib/mermaid/channel-ebbc4130.js @@ -0,0 +1,5 @@ +import { aI as o, aJ as r } from "./mermaid-9f2aa176.js"; +const s = (a, n) => o.lang.round(r.parse(a)[n]), e = s; +export { + e as c +}; diff --git a/assets/lib/mermaid/channel-f9001828.js b/assets/lib/mermaid/channel-f9001828.js new file mode 100644 index 000000000..3db027fe7 --- /dev/null +++ b/assets/lib/mermaid/channel-f9001828.js @@ -0,0 +1,8 @@ +import { aI as _, aJ as Color } from "./mermaid-dcacb631.js"; +const channel = (color, channel2) => { + return _.lang.round(Color.parse(color)[channel2]); +}; +const channel$1 = channel; +export { + channel$1 as c +}; diff --git a/assets/lib/mermaid/classDiagram-72b9c71d.js b/assets/lib/mermaid/classDiagram-72b9c71d.js new file mode 100644 index 000000000..31888f405 --- /dev/null +++ b/assets/lib/mermaid/classDiagram-72b9c71d.js @@ -0,0 +1,356 @@ +import { p as parser, d as db, s as styles } from "./styles-36a1a2e8.js"; +import { F as curveBasis, A as utils, l as log, G as parseGenericTypes, c as getConfig, j as d3select, k as configureSvgSize } from "./mermaid-dcacb631.js"; +import { G as Graph } from "./graph-fe24fab6.js"; +import { l as layout } from "./layout-163b9689.js"; +import { l as line } from "./line-87f517ef.js"; +import "./array-b7dcf730.js"; +import "./path-39bad7e2.js"; +let edgeCount = 0; +const drawEdge = function(elem, path, relation, conf, diagObj) { + const getRelationType = function(type) { + switch (type) { + case diagObj.db.relationType.AGGREGATION: + return "aggregation"; + case diagObj.db.relationType.EXTENSION: + return "extension"; + case diagObj.db.relationType.COMPOSITION: + return "composition"; + case diagObj.db.relationType.DEPENDENCY: + return "dependency"; + case diagObj.db.relationType.LOLLIPOP: + return "lollipop"; + } + }; + path.points = path.points.filter((p) => !Number.isNaN(p.y)); + const lineData = path.points; + const lineFunction = line().x(function(d) { + return d.x; + }).y(function(d) { + return d.y; + }).curve(curveBasis); + const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "relation"); + let url = ""; + if (conf.arrowMarkerAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); + } + if (relation.relation.lineType == 1) { + svgPath.attr("class", "relation dashed-line"); + } + if (relation.relation.lineType == 10) { + svgPath.attr("class", "relation dotted-line"); + } + if (relation.relation.type1 !== "none") { + svgPath.attr( + "marker-start", + "url(" + url + "#" + getRelationType(relation.relation.type1) + "Start)" + ); + } + if (relation.relation.type2 !== "none") { + svgPath.attr( + "marker-end", + "url(" + url + "#" + getRelationType(relation.relation.type2) + "End)" + ); + } + let x, y; + const l = path.points.length; + let labelPosition = utils.calcLabelPosition(path.points); + x = labelPosition.x; + y = labelPosition.y; + let p1_card_x, p1_card_y; + let p2_card_x, p2_card_y; + if (l % 2 !== 0 && l > 1) { + let cardinality_1_point = utils.calcCardinalityPosition( + relation.relation.type1 !== "none", + path.points, + path.points[0] + ); + let cardinality_2_point = utils.calcCardinalityPosition( + relation.relation.type2 !== "none", + path.points, + path.points[l - 1] + ); + log.debug("cardinality_1_point " + JSON.stringify(cardinality_1_point)); + log.debug("cardinality_2_point " + JSON.stringify(cardinality_2_point)); + p1_card_x = cardinality_1_point.x; + p1_card_y = cardinality_1_point.y; + p2_card_x = cardinality_2_point.x; + p2_card_y = cardinality_2_point.y; + } + if (relation.title !== void 0) { + const g = elem.append("g").attr("class", "classLabel"); + const label = g.append("text").attr("class", "label").attr("x", x).attr("y", y).attr("fill", "red").attr("text-anchor", "middle").text(relation.title); + window.label = label; + const bounds = label.node().getBBox(); + g.insert("rect", ":first-child").attr("class", "box").attr("x", bounds.x - conf.padding / 2).attr("y", bounds.y - conf.padding / 2).attr("width", bounds.width + conf.padding).attr("height", bounds.height + conf.padding); + } + log.info("Rendering relation " + JSON.stringify(relation)); + if (relation.relationTitle1 !== void 0 && relation.relationTitle1 !== "none") { + const g = elem.append("g").attr("class", "cardinality"); + g.append("text").attr("class", "type1").attr("x", p1_card_x).attr("y", p1_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle1); + } + if (relation.relationTitle2 !== void 0 && relation.relationTitle2 !== "none") { + const g = elem.append("g").attr("class", "cardinality"); + g.append("text").attr("class", "type2").attr("x", p2_card_x).attr("y", p2_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle2); + } + edgeCount++; +}; +const drawClass = function(elem, classDef, conf, diagObj) { + log.debug("Rendering class ", classDef, conf); + const id = classDef.id; + const classInfo = { + id, + label: classDef.id, + width: 0, + height: 0 + }; + const g = elem.append("g").attr("id", diagObj.db.lookUpDomId(id)).attr("class", "classGroup"); + let title; + if (classDef.link) { + title = g.append("svg:a").attr("xlink:href", classDef.link).attr("target", classDef.linkTarget).append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0); + } else { + title = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0); + } + let isFirst = true; + classDef.annotations.forEach(function(member) { + const titleText2 = title.append("tspan").text("«" + member + "»"); + if (!isFirst) { + titleText2.attr("dy", conf.textHeight); + } + isFirst = false; + }); + let classTitleString = getClassTitleString(classDef); + const classTitle = title.append("tspan").text(classTitleString).attr("class", "title"); + if (!isFirst) { + classTitle.attr("dy", conf.textHeight); + } + const titleHeight = title.node().getBBox().height; + let membersLine; + let membersBox; + let methodsLine; + if (classDef.members.length > 0) { + membersLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin / 2).attr("y2", conf.padding + titleHeight + conf.dividerMargin / 2); + const members = g.append("text").attr("x", conf.padding).attr("y", titleHeight + conf.dividerMargin + conf.textHeight).attr("fill", "white").attr("class", "classText"); + isFirst = true; + classDef.members.forEach(function(member) { + addTspan(members, member, isFirst, conf); + isFirst = false; + }); + membersBox = members.node().getBBox(); + } + if (classDef.methods.length > 0) { + methodsLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr("y2", conf.padding + titleHeight + conf.dividerMargin + membersBox.height); + const methods = g.append("text").attr("x", conf.padding).attr("y", titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr("fill", "white").attr("class", "classText"); + isFirst = true; + classDef.methods.forEach(function(method) { + addTspan(methods, method, isFirst, conf); + isFirst = false; + }); + } + const classBox = g.node().getBBox(); + var cssClassStr = " "; + if (classDef.cssClasses.length > 0) { + cssClassStr = cssClassStr + classDef.cssClasses.join(" "); + } + const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", classBox.width + 2 * conf.padding).attr("height", classBox.height + conf.padding + 0.5 * conf.dividerMargin).attr("class", cssClassStr); + const rectWidth = rect.node().getBBox().width; + title.node().childNodes.forEach(function(x) { + x.setAttribute("x", (rectWidth - x.getBBox().width) / 2); + }); + if (classDef.tooltip) { + title.insert("title").text(classDef.tooltip); + } + if (membersLine) { + membersLine.attr("x2", rectWidth); + } + if (methodsLine) { + methodsLine.attr("x2", rectWidth); + } + classInfo.width = rectWidth; + classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin; + return classInfo; +}; +const getClassTitleString = function(classDef) { + let classTitleString = classDef.id; + if (classDef.type) { + classTitleString += "<" + parseGenericTypes(classDef.type) + ">"; + } + return classTitleString; +}; +const drawNote = function(elem, note, conf, diagObj) { + log.debug("Rendering note ", note, conf); + const id = note.id; + const noteInfo = { + id, + text: note.text, + width: 0, + height: 0 + }; + const g = elem.append("g").attr("id", id).attr("class", "classGroup"); + let text = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0); + const lines = JSON.parse(`"${note.text}"`).split("\n"); + lines.forEach(function(line2) { + log.debug(`Adding line: ${line2}`); + text.append("tspan").text(line2).attr("class", "title").attr("dy", conf.textHeight); + }); + const noteBox = g.node().getBBox(); + const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", noteBox.width + 2 * conf.padding).attr( + "height", + noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin + ); + const rectWidth = rect.node().getBBox().width; + text.node().childNodes.forEach(function(x) { + x.setAttribute("x", (rectWidth - x.getBBox().width) / 2); + }); + noteInfo.width = rectWidth; + noteInfo.height = noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin; + return noteInfo; +}; +const addTspan = function(textEl, member, isFirst, conf) { + const { displayText, cssStyle } = member.getDisplayDetails(); + const tSpan = textEl.append("tspan").attr("x", conf.padding).text(displayText); + if (cssStyle !== "") { + tSpan.attr("style", member.cssStyle); + } + if (!isFirst) { + tSpan.attr("dy", conf.textHeight); + } +}; +const svgDraw = { + getClassTitleString, + drawClass, + drawEdge, + drawNote +}; +let idCache = {}; +const padding = 20; +const getGraphId = function(label) { + const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label); + if (foundEntry) { + return foundEntry[0]; + } +}; +const insertMarkers = function(elem) { + elem.append("defs").append("marker").attr("id", "extensionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z"); + elem.append("defs").append("marker").attr("id", "extensionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z"); + elem.append("defs").append("marker").attr("id", "compositionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", "compositionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", "aggregationStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", "aggregationEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", "dependencyStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); +}; +const draw = function(text, id, _version, diagObj) { + const conf = getConfig().class; + idCache = {}; + log.info("Rendering diagram " + text); + const securityLevel = getConfig().securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const diagram2 = root.select(`[id='${id}']`); + insertMarkers(diagram2); + const g = new Graph({ + multigraph: true + }); + g.setGraph({ + isMultiGraph: true + }); + g.setDefaultEdgeLabel(function() { + return {}; + }); + const classes = diagObj.db.getClasses(); + const keys = Object.keys(classes); + for (const key of keys) { + const classDef = classes[key]; + const node = svgDraw.drawClass(diagram2, classDef, conf, diagObj); + idCache[node.id] = node; + g.setNode(node.id, node); + log.info("Org height: " + node.height); + } + const relations = diagObj.db.getRelations(); + relations.forEach(function(relation) { + log.info( + // cspell:ignore tjoho + "tjoho" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation) + ); + g.setEdge( + getGraphId(relation.id1), + getGraphId(relation.id2), + { + relation + }, + relation.title || "DEFAULT" + ); + }); + const notes = diagObj.db.getNotes(); + notes.forEach(function(note) { + log.debug(`Adding note: ${JSON.stringify(note)}`); + const node = svgDraw.drawNote(diagram2, note, conf, diagObj); + idCache[node.id] = node; + g.setNode(node.id, node); + if (note.class && note.class in classes) { + g.setEdge( + note.id, + getGraphId(note.class), + { + relation: { + id1: note.id, + id2: note.class, + relation: { + type1: "none", + type2: "none", + lineType: 10 + } + } + }, + "DEFAULT" + ); + } + }); + layout(g); + g.nodes().forEach(function(v) { + if (v !== void 0 && g.node(v) !== void 0) { + log.debug("Node " + v + ": " + JSON.stringify(g.node(v))); + root.select("#" + (diagObj.db.lookUpDomId(v) || v)).attr( + "transform", + "translate(" + (g.node(v).x - g.node(v).width / 2) + "," + (g.node(v).y - g.node(v).height / 2) + " )" + ); + } + }); + g.edges().forEach(function(e) { + if (e !== void 0 && g.edge(e) !== void 0) { + log.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(g.edge(e))); + svgDraw.drawEdge(diagram2, g.edge(e), g.edge(e).relation, conf, diagObj); + } + }); + const svgBounds = diagram2.node().getBBox(); + const width = svgBounds.width + padding * 2; + const height = svgBounds.height + padding * 2; + configureSvgSize(diagram2, height, width, conf.useMaxWidth); + const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`; + log.debug(`viewBox ${vBox}`); + diagram2.attr("viewBox", vBox); +}; +const renderer = { + draw +}; +const diagram = { + parser, + db, + renderer, + styles, + init: (cnf) => { + if (!cnf.class) { + cnf.class = {}; + } + cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; + db.clear(); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/classDiagram-f52caa06.js b/assets/lib/mermaid/classDiagram-f52caa06.js new file mode 100644 index 000000000..1ac385ebb --- /dev/null +++ b/assets/lib/mermaid/classDiagram-f52caa06.js @@ -0,0 +1,220 @@ +import { p as A, d as S, s as G } from "./styles-11e81fdd.js"; +import { F as W, A as B, l as u, G as I, c as H, j as M, k as O } from "./mermaid-9f2aa176.js"; +import { G as P } from "./graph-0ee63739.js"; +import { l as X } from "./layout-fd473db2.js"; +import { l as Y } from "./line-24d93f1b.js"; +import "./array-2ff2c7a6.js"; +import "./path-428ebac9.js"; +let _ = 0; +const $ = function(i, a, t, o, p) { + const g = function(e) { + switch (e) { + case p.db.relationType.AGGREGATION: + return "aggregation"; + case p.db.relationType.EXTENSION: + return "extension"; + case p.db.relationType.COMPOSITION: + return "composition"; + case p.db.relationType.DEPENDENCY: + return "dependency"; + case p.db.relationType.LOLLIPOP: + return "lollipop"; + } + }; + a.points = a.points.filter((e) => !Number.isNaN(e.y)); + const s = a.points, c = Y().x(function(e) { + return e.x; + }).y(function(e) { + return e.y; + }).curve(W), n = i.append("path").attr("d", c(s)).attr("id", "edge" + _).attr("class", "relation"); + let r = ""; + o.arrowMarkerAbsolute && (r = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, r = r.replace(/\(/g, "\\("), r = r.replace(/\)/g, "\\)")), t.relation.lineType == 1 && n.attr("class", "relation dashed-line"), t.relation.lineType == 10 && n.attr("class", "relation dotted-line"), t.relation.type1 !== "none" && n.attr( + "marker-start", + "url(" + r + "#" + g(t.relation.type1) + "Start)" + ), t.relation.type2 !== "none" && n.attr( + "marker-end", + "url(" + r + "#" + g(t.relation.type2) + "End)" + ); + let f, h; + const x = a.points.length; + let k = B.calcLabelPosition(a.points); + f = k.x, h = k.y; + let y, m, w, b; + if (x % 2 !== 0 && x > 1) { + let e = B.calcCardinalityPosition( + t.relation.type1 !== "none", + a.points, + a.points[0] + ), d = B.calcCardinalityPosition( + t.relation.type2 !== "none", + a.points, + a.points[x - 1] + ); + u.debug("cardinality_1_point " + JSON.stringify(e)), u.debug("cardinality_2_point " + JSON.stringify(d)), y = e.x, m = e.y, w = d.x, b = d.y; + } + if (t.title !== void 0) { + const e = i.append("g").attr("class", "classLabel"), d = e.append("text").attr("class", "label").attr("x", f).attr("y", h).attr("fill", "red").attr("text-anchor", "middle").text(t.title); + window.label = d; + const l = d.node().getBBox(); + e.insert("rect", ":first-child").attr("class", "box").attr("x", l.x - o.padding / 2).attr("y", l.y - o.padding / 2).attr("width", l.width + o.padding).attr("height", l.height + o.padding); + } + u.info("Rendering relation " + JSON.stringify(t)), t.relationTitle1 !== void 0 && t.relationTitle1 !== "none" && i.append("g").attr("class", "cardinality").append("text").attr("class", "type1").attr("x", y).attr("y", m).attr("fill", "black").attr("font-size", "6").text(t.relationTitle1), t.relationTitle2 !== void 0 && t.relationTitle2 !== "none" && i.append("g").attr("class", "cardinality").append("text").attr("class", "type2").attr("x", w).attr("y", b).attr("fill", "black").attr("font-size", "6").text(t.relationTitle2), _++; +}, J = function(i, a, t, o) { + u.debug("Rendering class ", a, t); + const p = a.id, g = { + id: p, + label: a.id, + width: 0, + height: 0 + }, s = i.append("g").attr("id", o.db.lookUpDomId(p)).attr("class", "classGroup"); + let c; + a.link ? c = s.append("svg:a").attr("xlink:href", a.link).attr("target", a.linkTarget).append("text").attr("y", t.textHeight + t.padding).attr("x", 0) : c = s.append("text").attr("y", t.textHeight + t.padding).attr("x", 0); + let n = !0; + a.annotations.forEach(function(d) { + const l = c.append("tspan").text("«" + d + "»"); + n || l.attr("dy", t.textHeight), n = !1; + }); + let r = C(a); + const f = c.append("tspan").text(r).attr("class", "title"); + n || f.attr("dy", t.textHeight); + const h = c.node().getBBox().height; + let x, k, y; + if (a.members.length > 0) { + x = s.append("line").attr("x1", 0).attr("y1", t.padding + h + t.dividerMargin / 2).attr("y2", t.padding + h + t.dividerMargin / 2); + const d = s.append("text").attr("x", t.padding).attr("y", h + t.dividerMargin + t.textHeight).attr("fill", "white").attr("class", "classText"); + n = !0, a.members.forEach(function(l) { + v(d, l, n, t), n = !1; + }), k = d.node().getBBox(); + } + if (a.methods.length > 0) { + y = s.append("line").attr("x1", 0).attr("y1", t.padding + h + t.dividerMargin + k.height).attr("y2", t.padding + h + t.dividerMargin + k.height); + const d = s.append("text").attr("x", t.padding).attr("y", h + 2 * t.dividerMargin + k.height + t.textHeight).attr("fill", "white").attr("class", "classText"); + n = !0, a.methods.forEach(function(l) { + v(d, l, n, t), n = !1; + }); + } + const m = s.node().getBBox(); + var w = " "; + a.cssClasses.length > 0 && (w = w + a.cssClasses.join(" ")); + const e = s.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", m.width + 2 * t.padding).attr("height", m.height + t.padding + 0.5 * t.dividerMargin).attr("class", w).node().getBBox().width; + return c.node().childNodes.forEach(function(d) { + d.setAttribute("x", (e - d.getBBox().width) / 2); + }), a.tooltip && c.insert("title").text(a.tooltip), x && x.attr("x2", e), y && y.attr("x2", e), g.width = e, g.height = m.height + t.padding + 0.5 * t.dividerMargin, g; +}, C = function(i) { + let a = i.id; + return i.type && (a += "<" + I(i.type) + ">"), a; +}, Z = function(i, a, t, o) { + u.debug("Rendering note ", a, t); + const p = a.id, g = { + id: p, + text: a.text, + width: 0, + height: 0 + }, s = i.append("g").attr("id", p).attr("class", "classGroup"); + let c = s.append("text").attr("y", t.textHeight + t.padding).attr("x", 0); + const n = JSON.parse(`"${a.text}"`).split(` +`); + n.forEach(function(x) { + u.debug(`Adding line: ${x}`), c.append("tspan").text(x).attr("class", "title").attr("dy", t.textHeight); + }); + const r = s.node().getBBox(), h = s.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", r.width + 2 * t.padding).attr( + "height", + r.height + n.length * t.textHeight + t.padding + 0.5 * t.dividerMargin + ).node().getBBox().width; + return c.node().childNodes.forEach(function(x) { + x.setAttribute("x", (h - x.getBBox().width) / 2); + }), g.width = h, g.height = r.height + n.length * t.textHeight + t.padding + 0.5 * t.dividerMargin, g; +}, v = function(i, a, t, o) { + const { displayText: p, cssStyle: g } = a.getDisplayDetails(), s = i.append("tspan").attr("x", o.padding).text(p); + g !== "" && s.attr("style", a.cssStyle), t || s.attr("dy", o.textHeight); +}, N = { + getClassTitleString: C, + drawClass: J, + drawEdge: $, + drawNote: Z +}; +let T = {}; +const E = 20, L = function(i) { + const a = Object.entries(T).find((t) => t[1].label === i); + if (a) + return a[0]; +}, R = function(i) { + i.append("defs").append("marker").attr("id", "extensionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z"), i.append("defs").append("marker").attr("id", "extensionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z"), i.append("defs").append("marker").attr("id", "compositionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), i.append("defs").append("marker").attr("id", "compositionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), i.append("defs").append("marker").attr("id", "aggregationStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), i.append("defs").append("marker").attr("id", "aggregationEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), i.append("defs").append("marker").attr("id", "dependencyStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z"), i.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); +}, F = function(i, a, t, o) { + const p = H().class; + T = {}, u.info("Rendering diagram " + i); + const g = H().securityLevel; + let s; + g === "sandbox" && (s = M("#i" + a)); + const c = g === "sandbox" ? M(s.nodes()[0].contentDocument.body) : M("body"), n = c.select(`[id='${a}']`); + R(n); + const r = new P({ + multigraph: !0 + }); + r.setGraph({ + isMultiGraph: !0 + }), r.setDefaultEdgeLabel(function() { + return {}; + }); + const f = o.db.getClasses(), h = Object.keys(f); + for (const e of h) { + const d = f[e], l = N.drawClass(n, d, p, o); + T[l.id] = l, r.setNode(l.id, l), u.info("Org height: " + l.height); + } + o.db.getRelations().forEach(function(e) { + u.info( + // cspell:ignore tjoho + "tjoho" + L(e.id1) + L(e.id2) + JSON.stringify(e) + ), r.setEdge( + L(e.id1), + L(e.id2), + { + relation: e + }, + e.title || "DEFAULT" + ); + }), o.db.getNotes().forEach(function(e) { + u.debug(`Adding note: ${JSON.stringify(e)}`); + const d = N.drawNote(n, e, p, o); + T[d.id] = d, r.setNode(d.id, d), e.class && e.class in f && r.setEdge( + e.id, + L(e.class), + { + relation: { + id1: e.id, + id2: e.class, + relation: { + type1: "none", + type2: "none", + lineType: 10 + } + } + }, + "DEFAULT" + ); + }), X(r), r.nodes().forEach(function(e) { + e !== void 0 && r.node(e) !== void 0 && (u.debug("Node " + e + ": " + JSON.stringify(r.node(e))), c.select("#" + (o.db.lookUpDomId(e) || e)).attr( + "transform", + "translate(" + (r.node(e).x - r.node(e).width / 2) + "," + (r.node(e).y - r.node(e).height / 2) + " )" + )); + }), r.edges().forEach(function(e) { + e !== void 0 && r.edge(e) !== void 0 && (u.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(r.edge(e))), N.drawEdge(n, r.edge(e), r.edge(e).relation, p, o)); + }); + const y = n.node().getBBox(), m = y.width + E * 2, w = y.height + E * 2; + O(n, w, m, p.useMaxWidth); + const b = `${y.x - E} ${y.y - E} ${m} ${w}`; + u.debug(`viewBox ${b}`), n.attr("viewBox", b); +}, U = { + draw: F +}, tt = { + parser: A, + db: S, + renderer: U, + styles: G, + init: (i) => { + i.class || (i.class = {}), i.class.arrowMarkerAbsolute = i.arrowMarkerAbsolute, S.clear(); + } +}; +export { + tt as diagram +}; diff --git a/assets/lib/mermaid/classDiagram-fb54d2a0.js b/assets/lib/mermaid/classDiagram-fb54d2a0.js new file mode 100644 index 000000000..df43ffe93 --- /dev/null +++ b/assets/lib/mermaid/classDiagram-fb54d2a0.js @@ -0,0 +1,363 @@ +import { p as parser, d as db, s as styles } from "./styles-b83b31c9.js"; +import { line, curveBasis, select } from "d3"; +import { layout } from "dagre-d3-es/src/dagre/index.js"; +import * as graphlib from "dagre-d3-es/src/graphlib/index.js"; +import { u as utils, l as log, x as parseGenericTypes, c as getConfig, i as configureSvgSize } from "./mermaid-6dc72991.js"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +let edgeCount = 0; +const drawEdge = function(elem, path, relation, conf, diagObj) { + const getRelationType = function(type) { + switch (type) { + case diagObj.db.relationType.AGGREGATION: + return "aggregation"; + case diagObj.db.relationType.EXTENSION: + return "extension"; + case diagObj.db.relationType.COMPOSITION: + return "composition"; + case diagObj.db.relationType.DEPENDENCY: + return "dependency"; + case diagObj.db.relationType.LOLLIPOP: + return "lollipop"; + } + }; + path.points = path.points.filter((p) => !Number.isNaN(p.y)); + const lineData = path.points; + const lineFunction = line().x(function(d) { + return d.x; + }).y(function(d) { + return d.y; + }).curve(curveBasis); + const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "relation"); + let url = ""; + if (conf.arrowMarkerAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); + } + if (relation.relation.lineType == 1) { + svgPath.attr("class", "relation dashed-line"); + } + if (relation.relation.lineType == 10) { + svgPath.attr("class", "relation dotted-line"); + } + if (relation.relation.type1 !== "none") { + svgPath.attr( + "marker-start", + "url(" + url + "#" + getRelationType(relation.relation.type1) + "Start)" + ); + } + if (relation.relation.type2 !== "none") { + svgPath.attr( + "marker-end", + "url(" + url + "#" + getRelationType(relation.relation.type2) + "End)" + ); + } + let x, y; + const l = path.points.length; + let labelPosition = utils.calcLabelPosition(path.points); + x = labelPosition.x; + y = labelPosition.y; + let p1_card_x, p1_card_y; + let p2_card_x, p2_card_y; + if (l % 2 !== 0 && l > 1) { + let cardinality_1_point = utils.calcCardinalityPosition( + relation.relation.type1 !== "none", + path.points, + path.points[0] + ); + let cardinality_2_point = utils.calcCardinalityPosition( + relation.relation.type2 !== "none", + path.points, + path.points[l - 1] + ); + log.debug("cardinality_1_point " + JSON.stringify(cardinality_1_point)); + log.debug("cardinality_2_point " + JSON.stringify(cardinality_2_point)); + p1_card_x = cardinality_1_point.x; + p1_card_y = cardinality_1_point.y; + p2_card_x = cardinality_2_point.x; + p2_card_y = cardinality_2_point.y; + } + if (relation.title !== void 0) { + const g = elem.append("g").attr("class", "classLabel"); + const label = g.append("text").attr("class", "label").attr("x", x).attr("y", y).attr("fill", "red").attr("text-anchor", "middle").text(relation.title); + window.label = label; + const bounds = label.node().getBBox(); + g.insert("rect", ":first-child").attr("class", "box").attr("x", bounds.x - conf.padding / 2).attr("y", bounds.y - conf.padding / 2).attr("width", bounds.width + conf.padding).attr("height", bounds.height + conf.padding); + } + log.info("Rendering relation " + JSON.stringify(relation)); + if (relation.relationTitle1 !== void 0 && relation.relationTitle1 !== "none") { + const g = elem.append("g").attr("class", "cardinality"); + g.append("text").attr("class", "type1").attr("x", p1_card_x).attr("y", p1_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle1); + } + if (relation.relationTitle2 !== void 0 && relation.relationTitle2 !== "none") { + const g = elem.append("g").attr("class", "cardinality"); + g.append("text").attr("class", "type2").attr("x", p2_card_x).attr("y", p2_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle2); + } + edgeCount++; +}; +const drawClass = function(elem, classDef, conf, diagObj) { + log.debug("Rendering class ", classDef, conf); + const id = classDef.id; + const classInfo = { + id, + label: classDef.id, + width: 0, + height: 0 + }; + const g = elem.append("g").attr("id", diagObj.db.lookUpDomId(id)).attr("class", "classGroup"); + let title; + if (classDef.link) { + title = g.append("svg:a").attr("xlink:href", classDef.link).attr("target", classDef.linkTarget).append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0); + } else { + title = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0); + } + let isFirst = true; + classDef.annotations.forEach(function(member) { + const titleText2 = title.append("tspan").text("«" + member + "»"); + if (!isFirst) { + titleText2.attr("dy", conf.textHeight); + } + isFirst = false; + }); + let classTitleString = getClassTitleString(classDef); + const classTitle = title.append("tspan").text(classTitleString).attr("class", "title"); + if (!isFirst) { + classTitle.attr("dy", conf.textHeight); + } + const titleHeight = title.node().getBBox().height; + let membersLine; + let membersBox; + let methodsLine; + if (classDef.members.length > 0) { + membersLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin / 2).attr("y2", conf.padding + titleHeight + conf.dividerMargin / 2); + const members = g.append("text").attr("x", conf.padding).attr("y", titleHeight + conf.dividerMargin + conf.textHeight).attr("fill", "white").attr("class", "classText"); + isFirst = true; + classDef.members.forEach(function(member) { + addTspan(members, member, isFirst, conf); + isFirst = false; + }); + membersBox = members.node().getBBox(); + } + if (classDef.methods.length > 0) { + methodsLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr("y2", conf.padding + titleHeight + conf.dividerMargin + membersBox.height); + const methods = g.append("text").attr("x", conf.padding).attr("y", titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr("fill", "white").attr("class", "classText"); + isFirst = true; + classDef.methods.forEach(function(method) { + addTspan(methods, method, isFirst, conf); + isFirst = false; + }); + } + const classBox = g.node().getBBox(); + var cssClassStr = " "; + if (classDef.cssClasses.length > 0) { + cssClassStr = cssClassStr + classDef.cssClasses.join(" "); + } + const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", classBox.width + 2 * conf.padding).attr("height", classBox.height + conf.padding + 0.5 * conf.dividerMargin).attr("class", cssClassStr); + const rectWidth = rect.node().getBBox().width; + title.node().childNodes.forEach(function(x) { + x.setAttribute("x", (rectWidth - x.getBBox().width) / 2); + }); + if (classDef.tooltip) { + title.insert("title").text(classDef.tooltip); + } + if (membersLine) { + membersLine.attr("x2", rectWidth); + } + if (methodsLine) { + methodsLine.attr("x2", rectWidth); + } + classInfo.width = rectWidth; + classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin; + return classInfo; +}; +const getClassTitleString = function(classDef) { + let classTitleString = classDef.id; + if (classDef.type) { + classTitleString += "<" + parseGenericTypes(classDef.type) + ">"; + } + return classTitleString; +}; +const drawNote = function(elem, note, conf, diagObj) { + log.debug("Rendering note ", note, conf); + const id = note.id; + const noteInfo = { + id, + text: note.text, + width: 0, + height: 0 + }; + const g = elem.append("g").attr("id", id).attr("class", "classGroup"); + let text = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0); + const lines = JSON.parse(`"${note.text}"`).split("\n"); + lines.forEach(function(line2) { + log.debug(`Adding line: ${line2}`); + text.append("tspan").text(line2).attr("class", "title").attr("dy", conf.textHeight); + }); + const noteBox = g.node().getBBox(); + const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", noteBox.width + 2 * conf.padding).attr( + "height", + noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin + ); + const rectWidth = rect.node().getBBox().width; + text.node().childNodes.forEach(function(x) { + x.setAttribute("x", (rectWidth - x.getBBox().width) / 2); + }); + noteInfo.width = rectWidth; + noteInfo.height = noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin; + return noteInfo; +}; +const addTspan = function(textEl, member, isFirst, conf) { + const { displayText, cssStyle } = member.getDisplayDetails(); + const tSpan = textEl.append("tspan").attr("x", conf.padding).text(displayText); + if (cssStyle !== "") { + tSpan.attr("style", member.cssStyle); + } + if (!isFirst) { + tSpan.attr("dy", conf.textHeight); + } +}; +const svgDraw = { + getClassTitleString, + drawClass, + drawEdge, + drawNote +}; +let idCache = {}; +const padding = 20; +const getGraphId = function(label) { + const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label); + if (foundEntry) { + return foundEntry[0]; + } +}; +const insertMarkers = function(elem) { + elem.append("defs").append("marker").attr("id", "extensionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z"); + elem.append("defs").append("marker").attr("id", "extensionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z"); + elem.append("defs").append("marker").attr("id", "compositionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", "compositionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", "aggregationStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", "aggregationEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", "dependencyStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); +}; +const draw = function(text, id, _version, diagObj) { + const conf = getConfig().class; + idCache = {}; + log.info("Rendering diagram " + text); + const securityLevel = getConfig().securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const diagram2 = root.select(`[id='${id}']`); + insertMarkers(diagram2); + const g = new graphlib.Graph({ + multigraph: true + }); + g.setGraph({ + isMultiGraph: true + }); + g.setDefaultEdgeLabel(function() { + return {}; + }); + const classes = diagObj.db.getClasses(); + const keys = Object.keys(classes); + for (const key of keys) { + const classDef = classes[key]; + const node = svgDraw.drawClass(diagram2, classDef, conf, diagObj); + idCache[node.id] = node; + g.setNode(node.id, node); + log.info("Org height: " + node.height); + } + const relations = diagObj.db.getRelations(); + relations.forEach(function(relation) { + log.info( + // cspell:ignore tjoho + "tjoho" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation) + ); + g.setEdge( + getGraphId(relation.id1), + getGraphId(relation.id2), + { + relation + }, + relation.title || "DEFAULT" + ); + }); + const notes = diagObj.db.getNotes(); + notes.forEach(function(note) { + log.debug(`Adding note: ${JSON.stringify(note)}`); + const node = svgDraw.drawNote(diagram2, note, conf, diagObj); + idCache[node.id] = node; + g.setNode(node.id, node); + if (note.class && note.class in classes) { + g.setEdge( + note.id, + getGraphId(note.class), + { + relation: { + id1: note.id, + id2: note.class, + relation: { + type1: "none", + type2: "none", + lineType: 10 + } + } + }, + "DEFAULT" + ); + } + }); + layout(g); + g.nodes().forEach(function(v) { + if (v !== void 0 && g.node(v) !== void 0) { + log.debug("Node " + v + ": " + JSON.stringify(g.node(v))); + root.select("#" + (diagObj.db.lookUpDomId(v) || v)).attr( + "transform", + "translate(" + (g.node(v).x - g.node(v).width / 2) + "," + (g.node(v).y - g.node(v).height / 2) + " )" + ); + } + }); + g.edges().forEach(function(e) { + if (e !== void 0 && g.edge(e) !== void 0) { + log.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(g.edge(e))); + svgDraw.drawEdge(diagram2, g.edge(e), g.edge(e).relation, conf, diagObj); + } + }); + const svgBounds = diagram2.node().getBBox(); + const width = svgBounds.width + padding * 2; + const height = svgBounds.height + padding * 2; + configureSvgSize(diagram2, height, width, conf.useMaxWidth); + const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`; + log.debug(`viewBox ${vBox}`); + diagram2.attr("viewBox", vBox); +}; +const renderer = { + draw +}; +const diagram = { + parser, + db, + renderer, + styles, + init: (cnf) => { + if (!cnf.class) { + cnf.class = {}; + } + cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; + db.clear(); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/classDiagram-v2-640c694e.js b/assets/lib/mermaid/classDiagram-v2-640c694e.js new file mode 100644 index 000000000..3cb5c0cc2 --- /dev/null +++ b/assets/lib/mermaid/classDiagram-v2-640c694e.js @@ -0,0 +1,206 @@ +import { p as R, d as N, s as $ } from "./styles-11e81fdd.js"; +import { l as c, c as r, j as k, A as B, t as G, o as E, q as A, n as C, f as _ } from "./mermaid-9f2aa176.js"; +import { G as q } from "./graph-0ee63739.js"; +import { r as z } from "./index-bb6d8841.js"; +import "./layout-fd473db2.js"; +import "./clone-afc2f047.js"; +import "./edges-16357fde.js"; +import "./createText-03b82060.js"; +import "./line-24d93f1b.js"; +import "./array-2ff2c7a6.js"; +import "./path-428ebac9.js"; +const S = (o) => _.sanitizeText(o, r()); +let v = { + dividerMargin: 10, + padding: 5, + textHeight: 10, + curve: void 0 +}; +const P = function(o, e, p, n) { + const t = Object.keys(o); + c.info("keys:", t), c.info(o), t.forEach(function(s) { + var y, d; + const l = o[s], i = { + shape: "rect", + id: l.id, + domId: l.domId, + labelText: S(l.id), + labelStyle: "", + style: "fill: none; stroke: black", + // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release + padding: ((y = r().flowchart) == null ? void 0 : y.padding) ?? ((d = r().class) == null ? void 0 : d.padding) + }; + e.setNode(l.id, i), I(l.classes, e, p, n, l.id), c.info("setNode", i); + }); +}, I = function(o, e, p, n, t) { + const s = Object.keys(o); + c.info("keys:", s), c.info(o), s.filter((l) => o[l].parent == t).forEach(function(l) { + var u, m; + const a = o[l], i = a.cssClasses.join(" "), y = E(a.styles), d = a.label ?? a.id, f = 0, h = "class_box", b = { + labelStyle: y.labelStyle, + shape: h, + labelText: S(d), + classData: a, + rx: f, + ry: f, + class: i, + style: y.style, + id: a.id, + domId: a.domId, + tooltip: n.db.getTooltip(a.id, t) || "", + haveCallback: a.haveCallback, + link: a.link, + width: a.type === "group" ? 500 : void 0, + type: a.type, + // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release + padding: ((u = r().flowchart) == null ? void 0 : u.padding) ?? ((m = r().class) == null ? void 0 : m.padding) + }; + e.setNode(a.id, b), t && e.setParent(a.id, t), c.info("setNode", b); + }); +}, F = function(o, e, p, n) { + c.info(o), o.forEach(function(t, s) { + var m, g; + const l = t, a = "", i = { labelStyle: "", style: "" }, y = l.text, d = 0, f = "note", h = { + labelStyle: i.labelStyle, + shape: f, + labelText: S(y), + noteData: l, + rx: d, + ry: d, + class: a, + style: i.style, + id: l.id, + domId: l.id, + tooltip: "", + type: "note", + // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release + padding: ((m = r().flowchart) == null ? void 0 : m.padding) ?? ((g = r().class) == null ? void 0 : g.padding) + }; + if (e.setNode(l.id, h), c.info("setNode", h), !l.class || !(l.class in n)) + return; + const b = p + s, u = { + id: `edgeNote${b}`, + //Set relationship style and line type + classes: "relation", + pattern: "dotted", + // Set link type for rendering + arrowhead: "none", + //Set edge extra labels + startLabelRight: "", + endLabelLeft: "", + //Set relation arrow types + arrowTypeStart: "none", + arrowTypeEnd: "none", + style: "fill:none", + labelStyle: "", + curve: A(v.curve, C) + }; + e.setEdge(l.id, l.class, u, b); + }); +}, H = function(o, e) { + const p = r().flowchart; + let n = 0; + o.forEach(function(t) { + var l; + n++; + const s = { + //Set relationship style and line type + classes: "relation", + pattern: t.relation.lineType == 1 ? "dashed" : "solid", + id: `id_${t.id1}_${t.id2}_${n}`, + // Set link type for rendering + arrowhead: t.type === "arrow_open" ? "none" : "normal", + //Set edge extra labels + startLabelRight: t.relationTitle1 === "none" ? "" : t.relationTitle1, + endLabelLeft: t.relationTitle2 === "none" ? "" : t.relationTitle2, + //Set relation arrow types + arrowTypeStart: D(t.relation.type1), + arrowTypeEnd: D(t.relation.type2), + style: "fill:none", + labelStyle: "", + curve: A(p == null ? void 0 : p.curve, C) + }; + if (c.info(s, t), t.style !== void 0) { + const a = E(t.style); + s.style = a.style, s.labelStyle = a.labelStyle; + } + t.text = t.title, t.text === void 0 ? t.style !== void 0 && (s.arrowheadStyle = "fill: #333") : (s.arrowheadStyle = "fill: #333", s.labelpos = "c", ((l = r().flowchart) == null ? void 0 : l.htmlLabels) ?? r().htmlLabels ? (s.labelType = "html", s.label = '' + t.text + "") : (s.labelType = "text", s.label = t.text.replace(_.lineBreakRegex, ` +`), t.style === void 0 && (s.style = s.style || "stroke: #333; stroke-width: 1.5px;fill:none"), s.labelStyle = s.labelStyle.replace("color:", "fill:"))), e.setEdge(t.id1, t.id2, s, n); + }); +}, V = function(o) { + v = { + ...v, + ...o + }; +}, W = async function(o, e, p, n) { + c.info("Drawing class - ", e); + const t = r().flowchart ?? r().class, s = r().securityLevel; + c.info("config:", t); + const l = (t == null ? void 0 : t.nodeSpacing) ?? 50, a = (t == null ? void 0 : t.rankSpacing) ?? 50, i = new q({ + multigraph: !0, + compound: !0 + }).setGraph({ + rankdir: n.db.getDirection(), + nodesep: l, + ranksep: a, + marginx: 8, + marginy: 8 + }).setDefaultEdgeLabel(function() { + return {}; + }), y = n.db.getNamespaces(), d = n.db.getClasses(), f = n.db.getRelations(), h = n.db.getNotes(); + c.info(f), P(y, i, e, n), I(d, i, e, n), H(f, i), F(h, i, f.length + 1, d); + let b; + s === "sandbox" && (b = k("#i" + e)); + const u = s === "sandbox" ? k(b.nodes()[0].contentDocument.body) : k("body"), m = u.select(`[id="${e}"]`), g = u.select("#" + e + " g"); + if (await z( + g, + i, + ["aggregation", "extension", "composition", "dependency", "lollipop"], + "classDiagram", + e + ), B.insertTitle(m, "classTitleText", (t == null ? void 0 : t.titleTopMargin) ?? 5, n.db.getDiagramTitle()), G(i, m, t == null ? void 0 : t.diagramPadding, t == null ? void 0 : t.useMaxWidth), !(t != null && t.htmlLabels)) { + const T = s === "sandbox" ? b.nodes()[0].contentDocument : document, M = T.querySelectorAll('[id="' + e + '"] .edgeLabel .label'); + for (const w of M) { + const L = w.getBBox(), x = T.createElementNS("http://www.w3.org/2000/svg", "rect"); + x.setAttribute("rx", 0), x.setAttribute("ry", 0), x.setAttribute("width", L.width), x.setAttribute("height", L.height), w.insertBefore(x, w.firstChild); + } + } +}; +function D(o) { + let e; + switch (o) { + case 0: + e = "aggregation"; + break; + case 1: + e = "extension"; + break; + case 2: + e = "composition"; + break; + case 3: + e = "dependency"; + break; + case 4: + e = "lollipop"; + break; + default: + e = "none"; + } + return e; +} +const J = { + setConf: V, + draw: W +}, ot = { + parser: R, + db: N, + renderer: J, + styles: $, + init: (o) => { + o.class || (o.class = {}), o.class.arrowMarkerAbsolute = o.arrowMarkerAbsolute, N.clear(); + } +}; +export { + ot as diagram +}; diff --git a/assets/lib/mermaid/classDiagram-v2-a2b738ad.js b/assets/lib/mermaid/classDiagram-v2-a2b738ad.js new file mode 100644 index 000000000..10a758475 --- /dev/null +++ b/assets/lib/mermaid/classDiagram-v2-a2b738ad.js @@ -0,0 +1,298 @@ +import { p as parser, d as db, s as styles } from "./styles-b83b31c9.js"; +import { select, curveLinear } from "d3"; +import * as graphlib from "dagre-d3-es/src/graphlib/index.js"; +import { l as log, c as getConfig, u as utils, o as setupGraphViewbox, k as getStylesFromArray, n as interpolateToCurve, e as common } from "./mermaid-6dc72991.js"; +import { r as render } from "./index-01f381cb.js"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +import "dagre-d3-es/src/dagre/index.js"; +import "dagre-d3-es/src/graphlib/json.js"; +import "./edges-066a5561.js"; +import "./createText-ca0c5216.js"; +import "mdast-util-from-markdown"; +const sanitizeText = (txt) => common.sanitizeText(txt, getConfig()); +let conf = { + dividerMargin: 10, + padding: 5, + textHeight: 10, + curve: void 0 +}; +const addNamespaces = function(namespaces, g, _id, diagObj) { + const keys = Object.keys(namespaces); + log.info("keys:", keys); + log.info(namespaces); + keys.forEach(function(id) { + var _a, _b; + const vertex = namespaces[id]; + const shape = "rect"; + const node = { + shape, + id: vertex.id, + domId: vertex.domId, + labelText: sanitizeText(vertex.id), + labelStyle: "", + style: "fill: none; stroke: black", + // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release + padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding) + }; + g.setNode(vertex.id, node); + addClasses(vertex.classes, g, _id, diagObj, vertex.id); + log.info("setNode", node); + }); +}; +const addClasses = function(classes, g, _id, diagObj, parent) { + const keys = Object.keys(classes); + log.info("keys:", keys); + log.info(classes); + keys.filter((id) => classes[id].parent == parent).forEach(function(id) { + var _a, _b; + const vertex = classes[id]; + const cssClassStr = vertex.cssClasses.join(" "); + const styles2 = getStylesFromArray(vertex.styles); + const vertexText = vertex.label ?? vertex.id; + const radius = 0; + const shape = "class_box"; + const node = { + labelStyle: styles2.labelStyle, + shape, + labelText: sanitizeText(vertexText), + classData: vertex, + rx: radius, + ry: radius, + class: cssClassStr, + style: styles2.style, + id: vertex.id, + domId: vertex.domId, + tooltip: diagObj.db.getTooltip(vertex.id, parent) || "", + haveCallback: vertex.haveCallback, + link: vertex.link, + width: vertex.type === "group" ? 500 : void 0, + type: vertex.type, + // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release + padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding) + }; + g.setNode(vertex.id, node); + if (parent) { + g.setParent(vertex.id, parent); + } + log.info("setNode", node); + }); +}; +const addNotes = function(notes, g, startEdgeId, classes) { + log.info(notes); + notes.forEach(function(note, i) { + var _a, _b; + const vertex = note; + const cssNoteStr = ""; + const styles2 = { labelStyle: "", style: "" }; + const vertexText = vertex.text; + const radius = 0; + const shape = "note"; + const node = { + labelStyle: styles2.labelStyle, + shape, + labelText: sanitizeText(vertexText), + noteData: vertex, + rx: radius, + ry: radius, + class: cssNoteStr, + style: styles2.style, + id: vertex.id, + domId: vertex.id, + tooltip: "", + type: "note", + // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release + padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding) + }; + g.setNode(vertex.id, node); + log.info("setNode", node); + if (!vertex.class || !(vertex.class in classes)) { + return; + } + const edgeId = startEdgeId + i; + const edgeData = { + id: `edgeNote${edgeId}`, + //Set relationship style and line type + classes: "relation", + pattern: "dotted", + // Set link type for rendering + arrowhead: "none", + //Set edge extra labels + startLabelRight: "", + endLabelLeft: "", + //Set relation arrow types + arrowTypeStart: "none", + arrowTypeEnd: "none", + style: "fill:none", + labelStyle: "", + curve: interpolateToCurve(conf.curve, curveLinear) + }; + g.setEdge(vertex.id, vertex.class, edgeData, edgeId); + }); +}; +const addRelations = function(relations, g) { + const conf2 = getConfig().flowchart; + let cnt = 0; + relations.forEach(function(edge) { + var _a; + cnt++; + const edgeData = { + //Set relationship style and line type + classes: "relation", + pattern: edge.relation.lineType == 1 ? "dashed" : "solid", + id: `id_${edge.id1}_${edge.id2}_${cnt}`, + // Set link type for rendering + arrowhead: edge.type === "arrow_open" ? "none" : "normal", + //Set edge extra labels + startLabelRight: edge.relationTitle1 === "none" ? "" : edge.relationTitle1, + endLabelLeft: edge.relationTitle2 === "none" ? "" : edge.relationTitle2, + //Set relation arrow types + arrowTypeStart: getArrowMarker(edge.relation.type1), + arrowTypeEnd: getArrowMarker(edge.relation.type2), + style: "fill:none", + labelStyle: "", + curve: interpolateToCurve(conf2 == null ? void 0 : conf2.curve, curveLinear) + }; + log.info(edgeData, edge); + if (edge.style !== void 0) { + const styles2 = getStylesFromArray(edge.style); + edgeData.style = styles2.style; + edgeData.labelStyle = styles2.labelStyle; + } + edge.text = edge.title; + if (edge.text === void 0) { + if (edge.style !== void 0) { + edgeData.arrowheadStyle = "fill: #333"; + } + } else { + edgeData.arrowheadStyle = "fill: #333"; + edgeData.labelpos = "c"; + if (((_a = getConfig().flowchart) == null ? void 0 : _a.htmlLabels) ?? getConfig().htmlLabels) { + edgeData.labelType = "html"; + edgeData.label = '' + edge.text + ""; + } else { + edgeData.labelType = "text"; + edgeData.label = edge.text.replace(common.lineBreakRegex, "\n"); + if (edge.style === void 0) { + edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none"; + } + edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:"); + } + } + g.setEdge(edge.id1, edge.id2, edgeData, cnt); + }); +}; +const setConf = function(cnf) { + conf = { + ...conf, + ...cnf + }; +}; +const draw = async function(text, id, _version, diagObj) { + log.info("Drawing class - ", id); + const conf2 = getConfig().flowchart ?? getConfig().class; + const securityLevel = getConfig().securityLevel; + log.info("config:", conf2); + const nodeSpacing = (conf2 == null ? void 0 : conf2.nodeSpacing) ?? 50; + const rankSpacing = (conf2 == null ? void 0 : conf2.rankSpacing) ?? 50; + const g = new graphlib.Graph({ + multigraph: true, + compound: true + }).setGraph({ + rankdir: diagObj.db.getDirection(), + nodesep: nodeSpacing, + ranksep: rankSpacing, + marginx: 8, + marginy: 8 + }).setDefaultEdgeLabel(function() { + return {}; + }); + const namespaces = diagObj.db.getNamespaces(); + const classes = diagObj.db.getClasses(); + const relations = diagObj.db.getRelations(); + const notes = diagObj.db.getNotes(); + log.info(relations); + addNamespaces(namespaces, g, id, diagObj); + addClasses(classes, g, id, diagObj); + addRelations(relations, g); + addNotes(notes, g, relations.length + 1, classes); + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const svg = root.select(`[id="${id}"]`); + const element = root.select("#" + id + " g"); + await render( + element, + g, + ["aggregation", "extension", "composition", "dependency", "lollipop"], + "classDiagram", + id + ); + utils.insertTitle(svg, "classTitleText", (conf2 == null ? void 0 : conf2.titleTopMargin) ?? 5, diagObj.db.getDiagramTitle()); + setupGraphViewbox(g, svg, conf2 == null ? void 0 : conf2.diagramPadding, conf2 == null ? void 0 : conf2.useMaxWidth); + if (!(conf2 == null ? void 0 : conf2.htmlLabels)) { + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + const labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label'); + for (const label of labels) { + const dim = label.getBBox(); + const rect = doc.createElementNS("http://www.w3.org/2000/svg", "rect"); + rect.setAttribute("rx", 0); + rect.setAttribute("ry", 0); + rect.setAttribute("width", dim.width); + rect.setAttribute("height", dim.height); + label.insertBefore(rect, label.firstChild); + } + } +}; +function getArrowMarker(type) { + let marker; + switch (type) { + case 0: + marker = "aggregation"; + break; + case 1: + marker = "extension"; + break; + case 2: + marker = "composition"; + break; + case 3: + marker = "dependency"; + break; + case 4: + marker = "lollipop"; + break; + default: + marker = "none"; + } + return marker; +} +const renderer = { + setConf, + draw +}; +const diagram = { + parser, + db, + renderer, + styles, + init: (cnf) => { + if (!cnf.class) { + cnf.class = {}; + } + cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; + db.clear(); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/classDiagram-v2-fedb80f6.js b/assets/lib/mermaid/classDiagram-v2-fedb80f6.js new file mode 100644 index 000000000..d5005fa85 --- /dev/null +++ b/assets/lib/mermaid/classDiagram-v2-fedb80f6.js @@ -0,0 +1,290 @@ +import { p as parser, d as db, s as styles } from "./styles-36a1a2e8.js"; +import { l as log, c as getConfig, j as d3select, A as utils, t as setupGraphViewbox, o as getStylesFromArray, q as interpolateToCurve, n as curveLinear, f as common } from "./mermaid-dcacb631.js"; +import { G as Graph } from "./graph-fe24fab6.js"; +import { r as render } from "./index-fc479858.js"; +import "./layout-163b9689.js"; +import "./clone-9ea6bfeb.js"; +import "./edges-ce5cfb7c.js"; +import "./createText-b70fe78a.js"; +import "./line-87f517ef.js"; +import "./array-b7dcf730.js"; +import "./path-39bad7e2.js"; +const sanitizeText = (txt) => common.sanitizeText(txt, getConfig()); +let conf = { + dividerMargin: 10, + padding: 5, + textHeight: 10, + curve: void 0 +}; +const addNamespaces = function(namespaces, g, _id, diagObj) { + const keys = Object.keys(namespaces); + log.info("keys:", keys); + log.info(namespaces); + keys.forEach(function(id) { + var _a, _b; + const vertex = namespaces[id]; + const shape = "rect"; + const node = { + shape, + id: vertex.id, + domId: vertex.domId, + labelText: sanitizeText(vertex.id), + labelStyle: "", + style: "fill: none; stroke: black", + // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release + padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding) + }; + g.setNode(vertex.id, node); + addClasses(vertex.classes, g, _id, diagObj, vertex.id); + log.info("setNode", node); + }); +}; +const addClasses = function(classes, g, _id, diagObj, parent) { + const keys = Object.keys(classes); + log.info("keys:", keys); + log.info(classes); + keys.filter((id) => classes[id].parent == parent).forEach(function(id) { + var _a, _b; + const vertex = classes[id]; + const cssClassStr = vertex.cssClasses.join(" "); + const styles2 = getStylesFromArray(vertex.styles); + const vertexText = vertex.label ?? vertex.id; + const radius = 0; + const shape = "class_box"; + const node = { + labelStyle: styles2.labelStyle, + shape, + labelText: sanitizeText(vertexText), + classData: vertex, + rx: radius, + ry: radius, + class: cssClassStr, + style: styles2.style, + id: vertex.id, + domId: vertex.domId, + tooltip: diagObj.db.getTooltip(vertex.id, parent) || "", + haveCallback: vertex.haveCallback, + link: vertex.link, + width: vertex.type === "group" ? 500 : void 0, + type: vertex.type, + // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release + padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding) + }; + g.setNode(vertex.id, node); + if (parent) { + g.setParent(vertex.id, parent); + } + log.info("setNode", node); + }); +}; +const addNotes = function(notes, g, startEdgeId, classes) { + log.info(notes); + notes.forEach(function(note, i) { + var _a, _b; + const vertex = note; + const cssNoteStr = ""; + const styles2 = { labelStyle: "", style: "" }; + const vertexText = vertex.text; + const radius = 0; + const shape = "note"; + const node = { + labelStyle: styles2.labelStyle, + shape, + labelText: sanitizeText(vertexText), + noteData: vertex, + rx: radius, + ry: radius, + class: cssNoteStr, + style: styles2.style, + id: vertex.id, + domId: vertex.id, + tooltip: "", + type: "note", + // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release + padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding) + }; + g.setNode(vertex.id, node); + log.info("setNode", node); + if (!vertex.class || !(vertex.class in classes)) { + return; + } + const edgeId = startEdgeId + i; + const edgeData = { + id: `edgeNote${edgeId}`, + //Set relationship style and line type + classes: "relation", + pattern: "dotted", + // Set link type for rendering + arrowhead: "none", + //Set edge extra labels + startLabelRight: "", + endLabelLeft: "", + //Set relation arrow types + arrowTypeStart: "none", + arrowTypeEnd: "none", + style: "fill:none", + labelStyle: "", + curve: interpolateToCurve(conf.curve, curveLinear) + }; + g.setEdge(vertex.id, vertex.class, edgeData, edgeId); + }); +}; +const addRelations = function(relations, g) { + const conf2 = getConfig().flowchart; + let cnt = 0; + relations.forEach(function(edge) { + var _a; + cnt++; + const edgeData = { + //Set relationship style and line type + classes: "relation", + pattern: edge.relation.lineType == 1 ? "dashed" : "solid", + id: `id_${edge.id1}_${edge.id2}_${cnt}`, + // Set link type for rendering + arrowhead: edge.type === "arrow_open" ? "none" : "normal", + //Set edge extra labels + startLabelRight: edge.relationTitle1 === "none" ? "" : edge.relationTitle1, + endLabelLeft: edge.relationTitle2 === "none" ? "" : edge.relationTitle2, + //Set relation arrow types + arrowTypeStart: getArrowMarker(edge.relation.type1), + arrowTypeEnd: getArrowMarker(edge.relation.type2), + style: "fill:none", + labelStyle: "", + curve: interpolateToCurve(conf2 == null ? void 0 : conf2.curve, curveLinear) + }; + log.info(edgeData, edge); + if (edge.style !== void 0) { + const styles2 = getStylesFromArray(edge.style); + edgeData.style = styles2.style; + edgeData.labelStyle = styles2.labelStyle; + } + edge.text = edge.title; + if (edge.text === void 0) { + if (edge.style !== void 0) { + edgeData.arrowheadStyle = "fill: #333"; + } + } else { + edgeData.arrowheadStyle = "fill: #333"; + edgeData.labelpos = "c"; + if (((_a = getConfig().flowchart) == null ? void 0 : _a.htmlLabels) ?? getConfig().htmlLabels) { + edgeData.labelType = "html"; + edgeData.label = '' + edge.text + ""; + } else { + edgeData.labelType = "text"; + edgeData.label = edge.text.replace(common.lineBreakRegex, "\n"); + if (edge.style === void 0) { + edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none"; + } + edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:"); + } + } + g.setEdge(edge.id1, edge.id2, edgeData, cnt); + }); +}; +const setConf = function(cnf) { + conf = { + ...conf, + ...cnf + }; +}; +const draw = async function(text, id, _version, diagObj) { + log.info("Drawing class - ", id); + const conf2 = getConfig().flowchart ?? getConfig().class; + const securityLevel = getConfig().securityLevel; + log.info("config:", conf2); + const nodeSpacing = (conf2 == null ? void 0 : conf2.nodeSpacing) ?? 50; + const rankSpacing = (conf2 == null ? void 0 : conf2.rankSpacing) ?? 50; + const g = new Graph({ + multigraph: true, + compound: true + }).setGraph({ + rankdir: diagObj.db.getDirection(), + nodesep: nodeSpacing, + ranksep: rankSpacing, + marginx: 8, + marginy: 8 + }).setDefaultEdgeLabel(function() { + return {}; + }); + const namespaces = diagObj.db.getNamespaces(); + const classes = diagObj.db.getClasses(); + const relations = diagObj.db.getRelations(); + const notes = diagObj.db.getNotes(); + log.info(relations); + addNamespaces(namespaces, g, id, diagObj); + addClasses(classes, g, id, diagObj); + addRelations(relations, g); + addNotes(notes, g, relations.length + 1, classes); + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const svg = root.select(`[id="${id}"]`); + const element = root.select("#" + id + " g"); + await render( + element, + g, + ["aggregation", "extension", "composition", "dependency", "lollipop"], + "classDiagram", + id + ); + utils.insertTitle(svg, "classTitleText", (conf2 == null ? void 0 : conf2.titleTopMargin) ?? 5, diagObj.db.getDiagramTitle()); + setupGraphViewbox(g, svg, conf2 == null ? void 0 : conf2.diagramPadding, conf2 == null ? void 0 : conf2.useMaxWidth); + if (!(conf2 == null ? void 0 : conf2.htmlLabels)) { + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + const labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label'); + for (const label of labels) { + const dim = label.getBBox(); + const rect = doc.createElementNS("http://www.w3.org/2000/svg", "rect"); + rect.setAttribute("rx", 0); + rect.setAttribute("ry", 0); + rect.setAttribute("width", dim.width); + rect.setAttribute("height", dim.height); + label.insertBefore(rect, label.firstChild); + } + } +}; +function getArrowMarker(type) { + let marker; + switch (type) { + case 0: + marker = "aggregation"; + break; + case 1: + marker = "extension"; + break; + case 2: + marker = "composition"; + break; + case 3: + marker = "dependency"; + break; + case 4: + marker = "lollipop"; + break; + default: + marker = "none"; + } + return marker; +} +const renderer = { + setConf, + draw +}; +const diagram = { + parser, + db, + renderer, + styles, + init: (cnf) => { + if (!cnf.class) { + cnf.class = {}; + } + cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; + db.clear(); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/clone-9ea6bfeb.js b/assets/lib/mermaid/clone-9ea6bfeb.js new file mode 100644 index 000000000..34954ff3c --- /dev/null +++ b/assets/lib/mermaid/clone-9ea6bfeb.js @@ -0,0 +1,8 @@ +import { c as baseClone } from "./graph-fe24fab6.js"; +var CLONE_SYMBOLS_FLAG = 4; +function clone(value) { + return baseClone(value, CLONE_SYMBOLS_FLAG); +} +export { + clone as c +}; diff --git a/assets/lib/mermaid/clone-afc2f047.js b/assets/lib/mermaid/clone-afc2f047.js new file mode 100644 index 000000000..316875ce2 --- /dev/null +++ b/assets/lib/mermaid/clone-afc2f047.js @@ -0,0 +1,8 @@ +import { c as r } from "./graph-0ee63739.js"; +var e = 4; +function a(o) { + return r(o, e); +} +export { + a as c +}; diff --git a/assets/lib/mermaid/createText-03b82060.js b/assets/lib/mermaid/createText-03b82060.js new file mode 100644 index 000000000..a09c5f68b --- /dev/null +++ b/assets/lib/mermaid/createText-03b82060.js @@ -0,0 +1,2966 @@ +import { b8 as At, l as zt, b7 as It } from "./mermaid-9f2aa176.js"; +const Tt = {}; +function Bt(n, r) { + const t = r || Tt, e = typeof t.includeImageAlt == "boolean" ? t.includeImageAlt : !0, u = typeof t.includeHtml == "boolean" ? t.includeHtml : !0; + return et(n, e, u); +} +function et(n, r, t) { + if (Lt(n)) { + if ("value" in n) + return n.type === "html" && !t ? "" : n.value; + if (r && "alt" in n && n.alt) + return n.alt; + if ("children" in n) + return Vn(n.children, r, t); + } + return Array.isArray(n) ? Vn(n, r, t) : ""; +} +function Vn(n, r, t) { + const e = []; + let u = -1; + for (; ++u < n.length; ) + e[u] = et(n[u], r, t); + return e.join(""); +} +function Lt(n) { + return !!(n && typeof n == "object"); +} +function tn(n, r, t, e) { + const u = n.length; + let i = 0, l; + if (r < 0 ? r = -r > u ? 0 : u + r : r = r > u ? u : r, t = t > 0 ? t : 0, e.length < 1e4) + l = Array.from(e), l.unshift(r, t), n.splice(...l); + else + for (t && n.splice(r, t); i < e.length; ) + l = e.slice(i, i + 1e4), l.unshift(r, 0), n.splice(...l), i += 1e4, r += 1e4; +} +function Y(n, r) { + return n.length > 0 ? (tn(n, n.length, 0, r), n) : r; +} +const Wn = {}.hasOwnProperty; +function Ot(n) { + const r = {}; + let t = -1; + for (; ++t < n.length; ) + Dt(r, n[t]); + return r; +} +function Dt(n, r) { + let t; + for (t in r) { + const u = (Wn.call(n, t) ? n[t] : void 0) || (n[t] = {}), i = r[t]; + let l; + if (i) + for (l in i) { + Wn.call(u, l) || (u[l] = []); + const a = i[l]; + Pt( + // @ts-expect-error Looks like a list. + u[l], + Array.isArray(a) ? a : a ? [a] : [] + ); + } + } +} +function Pt(n, r) { + let t = -1; + const e = []; + for (; ++t < r.length; ) + (r[t].add === "after" ? n : e).push(r[t]); + tn(n, 0, 0, e); +} +const _t = /[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/, nn = cn(/[A-Za-z]/), v = cn(/[\dA-Za-z]/), Mt = cn(/[#-'*+\--9=?A-Z^-~]/); +function An(n) { + return ( + // Special whitespace codes (which have negative values), C0 and Control + // character DEL + n !== null && (n < 32 || n === 127) + ); +} +const zn = cn(/\d/), jt = cn(/[\dA-Fa-f]/), Rt = cn(/[!-/:-@[-`{-~]/); +function C(n) { + return n !== null && n < -2; +} +function Z(n) { + return n !== null && (n < 0 || n === 32); +} +function z(n) { + return n === -2 || n === -1 || n === 32; +} +const qt = cn(_t), Ht = cn(/\s/); +function cn(n) { + return r; + function r(t) { + return t !== null && n.test(String.fromCharCode(t)); + } +} +function O(n, r, t, e) { + const u = e ? e - 1 : Number.POSITIVE_INFINITY; + let i = 0; + return l; + function l(m) { + return z(m) ? (n.enter(t), a(m)) : r(m); + } + function a(m) { + return z(m) && i++ < u ? (n.consume(m), a) : (n.exit(t), r(m)); + } +} +const Nt = { + tokenize: Vt +}; +function Vt(n) { + const r = n.attempt( + this.parser.constructs.contentInitial, + e, + u + ); + let t; + return r; + function e(a) { + if (a === null) { + n.consume(a); + return; + } + return n.enter("lineEnding"), n.consume(a), n.exit("lineEnding"), O(n, r, "linePrefix"); + } + function u(a) { + return n.enter("paragraph"), i(a); + } + function i(a) { + const m = n.enter("chunkText", { + contentType: "text", + previous: t + }); + return t && (t.next = m), t = m, l(a); + } + function l(a) { + if (a === null) { + n.exit("chunkText"), n.exit("paragraph"), n.consume(a); + return; + } + return C(a) ? (n.consume(a), n.exit("chunkText"), i) : (n.consume(a), l); + } +} +const Wt = { + tokenize: Qt +}, Qn = { + tokenize: Ut +}; +function Qt(n) { + const r = this, t = []; + let e = 0, u, i, l; + return a; + function a(F) { + if (e < t.length) { + const D = t[e]; + return r.containerState = D[1], n.attempt( + D[0].continuation, + m, + c + )(F); + } + return c(F); + } + function m(F) { + if (e++, r.containerState._closeFlow) { + r.containerState._closeFlow = void 0, u && j(); + const D = r.events.length; + let _ = D, k; + for (; _--; ) + if (r.events[_][0] === "exit" && r.events[_][1].type === "chunkFlow") { + k = r.events[_][1].end; + break; + } + b(e); + let T = D; + for (; T < r.events.length; ) + r.events[T][1].end = Object.assign({}, k), T++; + return tn( + r.events, + _ + 1, + 0, + r.events.slice(D) + ), r.events.length = T, c(F); + } + return a(F); + } + function c(F) { + if (e === t.length) { + if (!u) + return x(F); + if (u.currentConstruct && u.currentConstruct.concrete) + return A(F); + r.interrupt = !!(u.currentConstruct && !u._gfmTableDynamicInterruptHack); + } + return r.containerState = {}, n.check( + Qn, + p, + f + )(F); + } + function p(F) { + return u && j(), b(e), x(F); + } + function f(F) { + return r.parser.lazy[r.now().line] = e !== t.length, l = r.now().offset, A(F); + } + function x(F) { + return r.containerState = {}, n.attempt( + Qn, + h, + A + )(F); + } + function h(F) { + return e++, t.push([r.currentConstruct, r.containerState]), x(F); + } + function A(F) { + if (F === null) { + u && j(), b(0), n.consume(F); + return; + } + return u = u || r.parser.flow(r.now()), n.enter("chunkFlow", { + contentType: "flow", + previous: i, + _tokenizer: u + }), I(F); + } + function I(F) { + if (F === null) { + M(n.exit("chunkFlow"), !0), b(0), n.consume(F); + return; + } + return C(F) ? (n.consume(F), M(n.exit("chunkFlow")), e = 0, r.interrupt = void 0, a) : (n.consume(F), I); + } + function M(F, D) { + const _ = r.sliceStream(F); + if (D && _.push(null), F.previous = i, i && (i.next = F), i = F, u.defineSkip(F.start), u.write(_), r.parser.lazy[F.start.line]) { + let k = u.events.length; + for (; k--; ) + if ( + // The token starts before the line ending… + u.events[k][1].start.offset < l && // …and either is not ended yet… + (!u.events[k][1].end || // …or ends after it. + u.events[k][1].end.offset > l) + ) + return; + const T = r.events.length; + let H = T, N, V; + for (; H--; ) + if (r.events[H][0] === "exit" && r.events[H][1].type === "chunkFlow") { + if (N) { + V = r.events[H][1].end; + break; + } + N = !0; + } + for (b(e), k = T; k < r.events.length; ) + r.events[k][1].end = Object.assign({}, V), k++; + tn( + r.events, + H + 1, + 0, + r.events.slice(T) + ), r.events.length = k; + } + } + function b(F) { + let D = t.length; + for (; D-- > F; ) { + const _ = t[D]; + r.containerState = _[1], _[0].exit.call(r, n); + } + t.length = F; + } + function j() { + u.write([null]), i = void 0, u = void 0, r.containerState._closeFlow = void 0; + } +} +function Ut(n, r, t) { + return O( + n, + n.attempt(this.parser.constructs.document, r, t), + "linePrefix", + this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + ); +} +function Un(n) { + if (n === null || Z(n) || Ht(n)) + return 1; + if (qt(n)) + return 2; +} +function Ln(n, r, t) { + const e = []; + let u = -1; + for (; ++u < n.length; ) { + const i = n[u].resolveAll; + i && !e.includes(i) && (r = i(r, t), e.push(i)); + } + return r; +} +const In = { + name: "attention", + tokenize: Zt, + resolveAll: $t +}; +function $t(n, r) { + let t = -1, e, u, i, l, a, m, c, p; + for (; ++t < n.length; ) + if (n[t][0] === "enter" && n[t][1].type === "attentionSequence" && n[t][1]._close) { + for (e = t; e--; ) + if (n[e][0] === "exit" && n[e][1].type === "attentionSequence" && n[e][1]._open && // If the markers are the same: + r.sliceSerialize(n[e][1]).charCodeAt(0) === r.sliceSerialize(n[t][1]).charCodeAt(0)) { + if ((n[e][1]._close || n[t][1]._open) && (n[t][1].end.offset - n[t][1].start.offset) % 3 && !((n[e][1].end.offset - n[e][1].start.offset + n[t][1].end.offset - n[t][1].start.offset) % 3)) + continue; + m = n[e][1].end.offset - n[e][1].start.offset > 1 && n[t][1].end.offset - n[t][1].start.offset > 1 ? 2 : 1; + const f = Object.assign({}, n[e][1].end), x = Object.assign({}, n[t][1].start); + $n(f, -m), $n(x, m), l = { + type: m > 1 ? "strongSequence" : "emphasisSequence", + start: f, + end: Object.assign({}, n[e][1].end) + }, a = { + type: m > 1 ? "strongSequence" : "emphasisSequence", + start: Object.assign({}, n[t][1].start), + end: x + }, i = { + type: m > 1 ? "strongText" : "emphasisText", + start: Object.assign({}, n[e][1].end), + end: Object.assign({}, n[t][1].start) + }, u = { + type: m > 1 ? "strong" : "emphasis", + start: Object.assign({}, l.start), + end: Object.assign({}, a.end) + }, n[e][1].end = Object.assign({}, l.start), n[t][1].start = Object.assign({}, a.end), c = [], n[e][1].end.offset - n[e][1].start.offset && (c = Y(c, [ + ["enter", n[e][1], r], + ["exit", n[e][1], r] + ])), c = Y(c, [ + ["enter", u, r], + ["enter", l, r], + ["exit", l, r], + ["enter", i, r] + ]), c = Y( + c, + Ln( + r.parser.constructs.insideSpan.null, + n.slice(e + 1, t), + r + ) + ), c = Y(c, [ + ["exit", i, r], + ["enter", a, r], + ["exit", a, r], + ["exit", u, r] + ]), n[t][1].end.offset - n[t][1].start.offset ? (p = 2, c = Y(c, [ + ["enter", n[t][1], r], + ["exit", n[t][1], r] + ])) : p = 0, tn(n, e - 1, t - e + 3, c), t = e + c.length - p - 2; + break; + } + } + for (t = -1; ++t < n.length; ) + n[t][1].type === "attentionSequence" && (n[t][1].type = "data"); + return n; +} +function Zt(n, r) { + const t = this.parser.constructs.attentionMarkers.null, e = this.previous, u = Un(e); + let i; + return l; + function l(m) { + return i = m, n.enter("attentionSequence"), a(m); + } + function a(m) { + if (m === i) + return n.consume(m), a; + const c = n.exit("attentionSequence"), p = Un(m), f = !p || p === 2 && u || t.includes(m), x = !u || u === 2 && p || t.includes(e); + return c._open = !!(i === 42 ? f : f && (u || !x)), c._close = !!(i === 42 ? x : x && (p || !f)), r(m); + } +} +function $n(n, r) { + n.column += r, n.offset += r, n._bufferIndex += r; +} +const Yt = { + name: "autolink", + tokenize: Gt +}; +function Gt(n, r, t) { + let e = 0; + return u; + function u(h) { + return n.enter("autolink"), n.enter("autolinkMarker"), n.consume(h), n.exit("autolinkMarker"), n.enter("autolinkProtocol"), i; + } + function i(h) { + return nn(h) ? (n.consume(h), l) : c(h); + } + function l(h) { + return h === 43 || h === 45 || h === 46 || v(h) ? (e = 1, a(h)) : c(h); + } + function a(h) { + return h === 58 ? (n.consume(h), e = 0, m) : (h === 43 || h === 45 || h === 46 || v(h)) && e++ < 32 ? (n.consume(h), a) : (e = 0, c(h)); + } + function m(h) { + return h === 62 ? (n.exit("autolinkProtocol"), n.enter("autolinkMarker"), n.consume(h), n.exit("autolinkMarker"), n.exit("autolink"), r) : h === null || h === 32 || h === 60 || An(h) ? t(h) : (n.consume(h), m); + } + function c(h) { + return h === 64 ? (n.consume(h), p) : Mt(h) ? (n.consume(h), c) : t(h); + } + function p(h) { + return v(h) ? f(h) : t(h); + } + function f(h) { + return h === 46 ? (n.consume(h), e = 0, p) : h === 62 ? (n.exit("autolinkProtocol").type = "autolinkEmail", n.enter("autolinkMarker"), n.consume(h), n.exit("autolinkMarker"), n.exit("autolink"), r) : x(h); + } + function x(h) { + if ((h === 45 || v(h)) && e++ < 63) { + const A = h === 45 ? x : f; + return n.consume(h), A; + } + return t(h); + } +} +const Sn = { + tokenize: Jt, + partial: !0 +}; +function Jt(n, r, t) { + return e; + function e(i) { + return z(i) ? O(n, u, "linePrefix")(i) : u(i); + } + function u(i) { + return i === null || C(i) ? r(i) : t(i); + } +} +const rt = { + name: "blockQuote", + tokenize: Kt, + continuation: { + tokenize: Xt + }, + exit: vt +}; +function Kt(n, r, t) { + const e = this; + return u; + function u(l) { + if (l === 62) { + const a = e.containerState; + return a.open || (n.enter("blockQuote", { + _container: !0 + }), a.open = !0), n.enter("blockQuotePrefix"), n.enter("blockQuoteMarker"), n.consume(l), n.exit("blockQuoteMarker"), i; + } + return t(l); + } + function i(l) { + return z(l) ? (n.enter("blockQuotePrefixWhitespace"), n.consume(l), n.exit("blockQuotePrefixWhitespace"), n.exit("blockQuotePrefix"), r) : (n.exit("blockQuotePrefix"), r(l)); + } +} +function Xt(n, r, t) { + const e = this; + return u; + function u(l) { + return z(l) ? O( + n, + i, + "linePrefix", + e.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + )(l) : i(l); + } + function i(l) { + return n.attempt(rt, r, t)(l); + } +} +function vt(n) { + n.exit("blockQuote"); +} +const it = { + name: "characterEscape", + tokenize: ne +}; +function ne(n, r, t) { + return e; + function e(i) { + return n.enter("characterEscape"), n.enter("escapeMarker"), n.consume(i), n.exit("escapeMarker"), u; + } + function u(i) { + return Rt(i) ? (n.enter("characterEscapeValue"), n.consume(i), n.exit("characterEscapeValue"), n.exit("characterEscape"), r) : t(i); + } +} +const Zn = document.createElement("i"); +function On(n) { + const r = "&" + n + ";"; + Zn.innerHTML = r; + const t = Zn.textContent; + return t.charCodeAt(t.length - 1) === 59 && n !== "semi" || t === r ? !1 : t; +} +const ut = { + name: "characterReference", + tokenize: te +}; +function te(n, r, t) { + const e = this; + let u = 0, i, l; + return a; + function a(f) { + return n.enter("characterReference"), n.enter("characterReferenceMarker"), n.consume(f), n.exit("characterReferenceMarker"), m; + } + function m(f) { + return f === 35 ? (n.enter("characterReferenceMarkerNumeric"), n.consume(f), n.exit("characterReferenceMarkerNumeric"), c) : (n.enter("characterReferenceValue"), i = 31, l = v, p(f)); + } + function c(f) { + return f === 88 || f === 120 ? (n.enter("characterReferenceMarkerHexadecimal"), n.consume(f), n.exit("characterReferenceMarkerHexadecimal"), n.enter("characterReferenceValue"), i = 6, l = jt, p) : (n.enter("characterReferenceValue"), i = 7, l = zn, p(f)); + } + function p(f) { + if (f === 59 && u) { + const x = n.exit("characterReferenceValue"); + return l === v && !On(e.sliceSerialize(x)) ? t(f) : (n.enter("characterReferenceMarker"), n.consume(f), n.exit("characterReferenceMarker"), n.exit("characterReference"), r); + } + return l(f) && u++ < i ? (n.consume(f), p) : t(f); + } +} +const Yn = { + tokenize: re, + partial: !0 +}, Gn = { + name: "codeFenced", + tokenize: ee, + concrete: !0 +}; +function ee(n, r, t) { + const e = this, u = { + tokenize: _, + partial: !0 + }; + let i = 0, l = 0, a; + return m; + function m(k) { + return c(k); + } + function c(k) { + const T = e.events[e.events.length - 1]; + return i = T && T[1].type === "linePrefix" ? T[2].sliceSerialize(T[1], !0).length : 0, a = k, n.enter("codeFenced"), n.enter("codeFencedFence"), n.enter("codeFencedFenceSequence"), p(k); + } + function p(k) { + return k === a ? (l++, n.consume(k), p) : l < 3 ? t(k) : (n.exit("codeFencedFenceSequence"), z(k) ? O(n, f, "whitespace")(k) : f(k)); + } + function f(k) { + return k === null || C(k) ? (n.exit("codeFencedFence"), e.interrupt ? r(k) : n.check(Yn, I, D)(k)) : (n.enter("codeFencedFenceInfo"), n.enter("chunkString", { + contentType: "string" + }), x(k)); + } + function x(k) { + return k === null || C(k) ? (n.exit("chunkString"), n.exit("codeFencedFenceInfo"), f(k)) : z(k) ? (n.exit("chunkString"), n.exit("codeFencedFenceInfo"), O(n, h, "whitespace")(k)) : k === 96 && k === a ? t(k) : (n.consume(k), x); + } + function h(k) { + return k === null || C(k) ? f(k) : (n.enter("codeFencedFenceMeta"), n.enter("chunkString", { + contentType: "string" + }), A(k)); + } + function A(k) { + return k === null || C(k) ? (n.exit("chunkString"), n.exit("codeFencedFenceMeta"), f(k)) : k === 96 && k === a ? t(k) : (n.consume(k), A); + } + function I(k) { + return n.attempt(u, D, M)(k); + } + function M(k) { + return n.enter("lineEnding"), n.consume(k), n.exit("lineEnding"), b; + } + function b(k) { + return i > 0 && z(k) ? O( + n, + j, + "linePrefix", + i + 1 + )(k) : j(k); + } + function j(k) { + return k === null || C(k) ? n.check(Yn, I, D)(k) : (n.enter("codeFlowValue"), F(k)); + } + function F(k) { + return k === null || C(k) ? (n.exit("codeFlowValue"), j(k)) : (n.consume(k), F); + } + function D(k) { + return n.exit("codeFenced"), r(k); + } + function _(k, T, H) { + let N = 0; + return V; + function V(w) { + return k.enter("lineEnding"), k.consume(w), k.exit("lineEnding"), y; + } + function y(w) { + return k.enter("codeFencedFence"), z(w) ? O( + k, + S, + "linePrefix", + e.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + )(w) : S(w); + } + function S(w) { + return w === a ? (k.enter("codeFencedFenceSequence"), P(w)) : H(w); + } + function P(w) { + return w === a ? (N++, k.consume(w), P) : N >= l ? (k.exit("codeFencedFenceSequence"), z(w) ? O(k, R, "whitespace")(w) : R(w)) : H(w); + } + function R(w) { + return w === null || C(w) ? (k.exit("codeFencedFence"), T(w)) : H(w); + } + } +} +function re(n, r, t) { + const e = this; + return u; + function u(l) { + return l === null ? t(l) : (n.enter("lineEnding"), n.consume(l), n.exit("lineEnding"), i); + } + function i(l) { + return e.parser.lazy[e.now().line] ? t(l) : r(l); + } +} +const Cn = { + name: "codeIndented", + tokenize: ue +}, ie = { + tokenize: le, + partial: !0 +}; +function ue(n, r, t) { + const e = this; + return u; + function u(c) { + return n.enter("codeIndented"), O(n, i, "linePrefix", 4 + 1)(c); + } + function i(c) { + const p = e.events[e.events.length - 1]; + return p && p[1].type === "linePrefix" && p[2].sliceSerialize(p[1], !0).length >= 4 ? l(c) : t(c); + } + function l(c) { + return c === null ? m(c) : C(c) ? n.attempt(ie, l, m)(c) : (n.enter("codeFlowValue"), a(c)); + } + function a(c) { + return c === null || C(c) ? (n.exit("codeFlowValue"), l(c)) : (n.consume(c), a); + } + function m(c) { + return n.exit("codeIndented"), r(c); + } +} +function le(n, r, t) { + const e = this; + return u; + function u(l) { + return e.parser.lazy[e.now().line] ? t(l) : C(l) ? (n.enter("lineEnding"), n.consume(l), n.exit("lineEnding"), u) : O(n, i, "linePrefix", 4 + 1)(l); + } + function i(l) { + const a = e.events[e.events.length - 1]; + return a && a[1].type === "linePrefix" && a[2].sliceSerialize(a[1], !0).length >= 4 ? r(l) : C(l) ? u(l) : t(l); + } +} +const ae = { + name: "codeText", + tokenize: ce, + resolve: oe, + previous: se +}; +function oe(n) { + let r = n.length - 4, t = 3, e, u; + if ((n[t][1].type === "lineEnding" || n[t][1].type === "space") && (n[r][1].type === "lineEnding" || n[r][1].type === "space")) { + for (e = t; ++e < r; ) + if (n[e][1].type === "codeTextData") { + n[t][1].type = "codeTextPadding", n[r][1].type = "codeTextPadding", t += 2, r -= 2; + break; + } + } + for (e = t - 1, r++; ++e <= r; ) + u === void 0 ? e !== r && n[e][1].type !== "lineEnding" && (u = e) : (e === r || n[e][1].type === "lineEnding") && (n[u][1].type = "codeTextData", e !== u + 2 && (n[u][1].end = n[e - 1][1].end, n.splice(u + 2, e - u - 2), r -= e - u - 2, e = u + 2), u = void 0); + return n; +} +function se(n) { + return n !== 96 || this.events[this.events.length - 1][1].type === "characterEscape"; +} +function ce(n, r, t) { + let e = 0, u, i; + return l; + function l(f) { + return n.enter("codeText"), n.enter("codeTextSequence"), a(f); + } + function a(f) { + return f === 96 ? (n.consume(f), e++, a) : (n.exit("codeTextSequence"), m(f)); + } + function m(f) { + return f === null ? t(f) : f === 32 ? (n.enter("space"), n.consume(f), n.exit("space"), m) : f === 96 ? (i = n.enter("codeTextSequence"), u = 0, p(f)) : C(f) ? (n.enter("lineEnding"), n.consume(f), n.exit("lineEnding"), m) : (n.enter("codeTextData"), c(f)); + } + function c(f) { + return f === null || f === 32 || f === 96 || C(f) ? (n.exit("codeTextData"), m(f)) : (n.consume(f), c); + } + function p(f) { + return f === 96 ? (n.consume(f), u++, p) : u === e ? (n.exit("codeTextSequence"), n.exit("codeText"), r(f)) : (i.type = "codeTextData", c(f)); + } +} +function lt(n) { + const r = {}; + let t = -1, e, u, i, l, a, m, c; + for (; ++t < n.length; ) { + for (; t in r; ) + t = r[t]; + if (e = n[t], t && e[1].type === "chunkFlow" && n[t - 1][1].type === "listItemPrefix" && (m = e[1]._tokenizer.events, i = 0, i < m.length && m[i][1].type === "lineEndingBlank" && (i += 2), i < m.length && m[i][1].type === "content")) + for (; ++i < m.length && m[i][1].type !== "content"; ) + m[i][1].type === "chunkText" && (m[i][1]._isInFirstContentOfListItem = !0, i++); + if (e[0] === "enter") + e[1].contentType && (Object.assign(r, he(n, t)), t = r[t], c = !0); + else if (e[1]._container) { + for (i = t, u = void 0; i-- && (l = n[i], l[1].type === "lineEnding" || l[1].type === "lineEndingBlank"); ) + l[0] === "enter" && (u && (n[u][1].type = "lineEndingBlank"), l[1].type = "lineEnding", u = i); + u && (e[1].end = Object.assign({}, n[u][1].start), a = n.slice(u, t), a.unshift(e), tn(n, u, t - u + 1, a)); + } + } + return !c; +} +function he(n, r) { + const t = n[r][1], e = n[r][2]; + let u = r - 1; + const i = [], l = t._tokenizer || e.parser[t.contentType](t.start), a = l.events, m = [], c = {}; + let p, f, x = -1, h = t, A = 0, I = 0; + const M = [I]; + for (; h; ) { + for (; n[++u][1] !== h; ) + ; + i.push(u), h._tokenizer || (p = e.sliceStream(h), h.next || p.push(null), f && l.defineSkip(h.start), h._isInFirstContentOfListItem && (l._gfmTasklistFirstContentOfListItem = !0), l.write(p), h._isInFirstContentOfListItem && (l._gfmTasklistFirstContentOfListItem = void 0)), f = h, h = h.next; + } + for (h = t; ++x < a.length; ) + // Find a void token that includes a break. + a[x][0] === "exit" && a[x - 1][0] === "enter" && a[x][1].type === a[x - 1][1].type && a[x][1].start.line !== a[x][1].end.line && (I = x + 1, M.push(I), h._tokenizer = void 0, h.previous = void 0, h = h.next); + for (l.events = [], h ? (h._tokenizer = void 0, h.previous = void 0) : M.pop(), x = M.length; x--; ) { + const b = a.slice(M[x], M[x + 1]), j = i.pop(); + m.unshift([j, j + b.length - 1]), tn(n, j, 2, b); + } + for (x = -1; ++x < m.length; ) + c[A + m[x][0]] = A + m[x][1], A += m[x][1] - m[x][0] - 1; + return c; +} +const pe = { + tokenize: xe, + resolve: me +}, fe = { + tokenize: ge, + partial: !0 +}; +function me(n) { + return lt(n), n; +} +function xe(n, r) { + let t; + return e; + function e(a) { + return n.enter("content"), t = n.enter("chunkContent", { + contentType: "content" + }), u(a); + } + function u(a) { + return a === null ? i(a) : C(a) ? n.check( + fe, + l, + i + )(a) : (n.consume(a), u); + } + function i(a) { + return n.exit("chunkContent"), n.exit("content"), r(a); + } + function l(a) { + return n.consume(a), n.exit("chunkContent"), t.next = n.enter("chunkContent", { + contentType: "content", + previous: t + }), t = t.next, u; + } +} +function ge(n, r, t) { + const e = this; + return u; + function u(l) { + return n.exit("chunkContent"), n.enter("lineEnding"), n.consume(l), n.exit("lineEnding"), O(n, i, "linePrefix"); + } + function i(l) { + if (l === null || C(l)) + return t(l); + const a = e.events[e.events.length - 1]; + return !e.parser.constructs.disable.null.includes("codeIndented") && a && a[1].type === "linePrefix" && a[2].sliceSerialize(a[1], !0).length >= 4 ? r(l) : n.interrupt(e.parser.constructs.flow, t, r)(l); + } +} +function at(n, r, t, e, u, i, l, a, m) { + const c = m || Number.POSITIVE_INFINITY; + let p = 0; + return f; + function f(b) { + return b === 60 ? (n.enter(e), n.enter(u), n.enter(i), n.consume(b), n.exit(i), x) : b === null || b === 32 || b === 41 || An(b) ? t(b) : (n.enter(e), n.enter(l), n.enter(a), n.enter("chunkString", { + contentType: "string" + }), I(b)); + } + function x(b) { + return b === 62 ? (n.enter(i), n.consume(b), n.exit(i), n.exit(u), n.exit(e), r) : (n.enter(a), n.enter("chunkString", { + contentType: "string" + }), h(b)); + } + function h(b) { + return b === 62 ? (n.exit("chunkString"), n.exit(a), x(b)) : b === null || b === 60 || C(b) ? t(b) : (n.consume(b), b === 92 ? A : h); + } + function A(b) { + return b === 60 || b === 62 || b === 92 ? (n.consume(b), h) : h(b); + } + function I(b) { + return !p && (b === null || b === 41 || Z(b)) ? (n.exit("chunkString"), n.exit(a), n.exit(l), n.exit(e), r(b)) : p < c && b === 40 ? (n.consume(b), p++, I) : b === 41 ? (n.consume(b), p--, I) : b === null || b === 32 || b === 40 || An(b) ? t(b) : (n.consume(b), b === 92 ? M : I); + } + function M(b) { + return b === 40 || b === 41 || b === 92 ? (n.consume(b), I) : I(b); + } +} +function ot(n, r, t, e, u, i) { + const l = this; + let a = 0, m; + return c; + function c(h) { + return n.enter(e), n.enter(u), n.consume(h), n.exit(u), n.enter(i), p; + } + function p(h) { + return a > 999 || h === null || h === 91 || h === 93 && !m || // To do: remove in the future once we’ve switched from + // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`, + // which doesn’t need this. + // Hidden footnotes hook. + /* c8 ignore next 3 */ + h === 94 && !a && "_hiddenFootnoteSupport" in l.parser.constructs ? t(h) : h === 93 ? (n.exit(i), n.enter(u), n.consume(h), n.exit(u), n.exit(e), r) : C(h) ? (n.enter("lineEnding"), n.consume(h), n.exit("lineEnding"), p) : (n.enter("chunkString", { + contentType: "string" + }), f(h)); + } + function f(h) { + return h === null || h === 91 || h === 93 || C(h) || a++ > 999 ? (n.exit("chunkString"), p(h)) : (n.consume(h), m || (m = !z(h)), h === 92 ? x : f); + } + function x(h) { + return h === 91 || h === 92 || h === 93 ? (n.consume(h), a++, f) : f(h); + } +} +function st(n, r, t, e, u, i) { + let l; + return a; + function a(x) { + return x === 34 || x === 39 || x === 40 ? (n.enter(e), n.enter(u), n.consume(x), n.exit(u), l = x === 40 ? 41 : x, m) : t(x); + } + function m(x) { + return x === l ? (n.enter(u), n.consume(x), n.exit(u), n.exit(e), r) : (n.enter(i), c(x)); + } + function c(x) { + return x === l ? (n.exit(i), m(l)) : x === null ? t(x) : C(x) ? (n.enter("lineEnding"), n.consume(x), n.exit("lineEnding"), O(n, c, "linePrefix")) : (n.enter("chunkString", { + contentType: "string" + }), p(x)); + } + function p(x) { + return x === l || x === null || C(x) ? (n.exit("chunkString"), c(x)) : (n.consume(x), x === 92 ? f : p); + } + function f(x) { + return x === l || x === 92 ? (n.consume(x), p) : p(x); + } +} +function dn(n, r) { + let t; + return e; + function e(u) { + return C(u) ? (n.enter("lineEnding"), n.consume(u), n.exit("lineEnding"), t = !0, e) : z(u) ? O( + n, + e, + t ? "linePrefix" : "lineSuffix" + )(u) : r(u); + } +} +function xn(n) { + return n.replace(/[\t\n\r ]+/g, " ").replace(/^ | $/g, "").toLowerCase().toUpperCase(); +} +const ke = { + name: "definition", + tokenize: be +}, de = { + tokenize: ye, + partial: !0 +}; +function be(n, r, t) { + const e = this; + let u; + return i; + function i(h) { + return n.enter("definition"), l(h); + } + function l(h) { + return ot.call( + e, + n, + a, + // Note: we don’t need to reset the way `markdown-rs` does. + t, + "definitionLabel", + "definitionLabelMarker", + "definitionLabelString" + )(h); + } + function a(h) { + return u = xn( + e.sliceSerialize(e.events[e.events.length - 1][1]).slice(1, -1) + ), h === 58 ? (n.enter("definitionMarker"), n.consume(h), n.exit("definitionMarker"), m) : t(h); + } + function m(h) { + return Z(h) ? dn(n, c)(h) : c(h); + } + function c(h) { + return at( + n, + p, + // Note: we don’t need to reset the way `markdown-rs` does. + t, + "definitionDestination", + "definitionDestinationLiteral", + "definitionDestinationLiteralMarker", + "definitionDestinationRaw", + "definitionDestinationString" + )(h); + } + function p(h) { + return n.attempt(de, f, f)(h); + } + function f(h) { + return z(h) ? O(n, x, "whitespace")(h) : x(h); + } + function x(h) { + return h === null || C(h) ? (n.exit("definition"), e.parser.defined.push(u), r(h)) : t(h); + } +} +function ye(n, r, t) { + return e; + function e(a) { + return Z(a) ? dn(n, u)(a) : t(a); + } + function u(a) { + return st( + n, + i, + t, + "definitionTitle", + "definitionTitleMarker", + "definitionTitleString" + )(a); + } + function i(a) { + return z(a) ? O(n, l, "whitespace")(a) : l(a); + } + function l(a) { + return a === null || C(a) ? r(a) : t(a); + } +} +const Se = { + name: "hardBreakEscape", + tokenize: Fe +}; +function Fe(n, r, t) { + return e; + function e(i) { + return n.enter("hardBreakEscape"), n.consume(i), u; + } + function u(i) { + return C(i) ? (n.exit("hardBreakEscape"), r(i)) : t(i); + } +} +const Ee = { + name: "headingAtx", + tokenize: we, + resolve: Ce +}; +function Ce(n, r) { + let t = n.length - 2, e = 3, u, i; + return n[e][1].type === "whitespace" && (e += 2), t - 2 > e && n[t][1].type === "whitespace" && (t -= 2), n[t][1].type === "atxHeadingSequence" && (e === t - 1 || t - 4 > e && n[t - 2][1].type === "whitespace") && (t -= e + 1 === t ? 2 : 4), t > e && (u = { + type: "atxHeadingText", + start: n[e][1].start, + end: n[t][1].end + }, i = { + type: "chunkText", + start: n[e][1].start, + end: n[t][1].end, + contentType: "text" + }, tn(n, e, t - e + 1, [ + ["enter", u, r], + ["enter", i, r], + ["exit", i, r], + ["exit", u, r] + ])), n; +} +function we(n, r, t) { + let e = 0; + return u; + function u(p) { + return n.enter("atxHeading"), i(p); + } + function i(p) { + return n.enter("atxHeadingSequence"), l(p); + } + function l(p) { + return p === 35 && e++ < 6 ? (n.consume(p), l) : p === null || Z(p) ? (n.exit("atxHeadingSequence"), a(p)) : t(p); + } + function a(p) { + return p === 35 ? (n.enter("atxHeadingSequence"), m(p)) : p === null || C(p) ? (n.exit("atxHeading"), r(p)) : z(p) ? O(n, a, "whitespace")(p) : (n.enter("atxHeadingText"), c(p)); + } + function m(p) { + return p === 35 ? (n.consume(p), m) : (n.exit("atxHeadingSequence"), a(p)); + } + function c(p) { + return p === null || p === 35 || Z(p) ? (n.exit("atxHeadingText"), a(p)) : (n.consume(p), c); + } +} +const Ae = [ + "address", + "article", + "aside", + "base", + "basefont", + "blockquote", + "body", + "caption", + "center", + "col", + "colgroup", + "dd", + "details", + "dialog", + "dir", + "div", + "dl", + "dt", + "fieldset", + "figcaption", + "figure", + "footer", + "form", + "frame", + "frameset", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "head", + "header", + "hr", + "html", + "iframe", + "legend", + "li", + "link", + "main", + "menu", + "menuitem", + "nav", + "noframes", + "ol", + "optgroup", + "option", + "p", + "param", + "search", + "section", + "summary", + "table", + "tbody", + "td", + "tfoot", + "th", + "thead", + "title", + "tr", + "track", + "ul" +], Jn = ["pre", "script", "style", "textarea"], ze = { + name: "htmlFlow", + tokenize: Le, + resolveTo: Be, + concrete: !0 +}, Ie = { + tokenize: De, + partial: !0 +}, Te = { + tokenize: Oe, + partial: !0 +}; +function Be(n) { + let r = n.length; + for (; r-- && !(n[r][0] === "enter" && n[r][1].type === "htmlFlow"); ) + ; + return r > 1 && n[r - 2][1].type === "linePrefix" && (n[r][1].start = n[r - 2][1].start, n[r + 1][1].start = n[r - 2][1].start, n.splice(r - 2, 2)), n; +} +function Le(n, r, t) { + const e = this; + let u, i, l, a, m; + return c; + function c(s) { + return p(s); + } + function p(s) { + return n.enter("htmlFlow"), n.enter("htmlFlowData"), n.consume(s), f; + } + function f(s) { + return s === 33 ? (n.consume(s), x) : s === 47 ? (n.consume(s), i = !0, I) : s === 63 ? (n.consume(s), u = 3, e.interrupt ? r : o) : nn(s) ? (n.consume(s), l = String.fromCharCode(s), M) : t(s); + } + function x(s) { + return s === 45 ? (n.consume(s), u = 2, h) : s === 91 ? (n.consume(s), u = 5, a = 0, A) : nn(s) ? (n.consume(s), u = 4, e.interrupt ? r : o) : t(s); + } + function h(s) { + return s === 45 ? (n.consume(s), e.interrupt ? r : o) : t(s); + } + function A(s) { + const K = "CDATA["; + return s === K.charCodeAt(a++) ? (n.consume(s), a === K.length ? e.interrupt ? r : S : A) : t(s); + } + function I(s) { + return nn(s) ? (n.consume(s), l = String.fromCharCode(s), M) : t(s); + } + function M(s) { + if (s === null || s === 47 || s === 62 || Z(s)) { + const K = s === 47, hn = l.toLowerCase(); + return !K && !i && Jn.includes(hn) ? (u = 1, e.interrupt ? r(s) : S(s)) : Ae.includes(l.toLowerCase()) ? (u = 6, K ? (n.consume(s), b) : e.interrupt ? r(s) : S(s)) : (u = 7, e.interrupt && !e.parser.lazy[e.now().line] ? t(s) : i ? j(s) : F(s)); + } + return s === 45 || v(s) ? (n.consume(s), l += String.fromCharCode(s), M) : t(s); + } + function b(s) { + return s === 62 ? (n.consume(s), e.interrupt ? r : S) : t(s); + } + function j(s) { + return z(s) ? (n.consume(s), j) : V(s); + } + function F(s) { + return s === 47 ? (n.consume(s), V) : s === 58 || s === 95 || nn(s) ? (n.consume(s), D) : z(s) ? (n.consume(s), F) : V(s); + } + function D(s) { + return s === 45 || s === 46 || s === 58 || s === 95 || v(s) ? (n.consume(s), D) : _(s); + } + function _(s) { + return s === 61 ? (n.consume(s), k) : z(s) ? (n.consume(s), _) : F(s); + } + function k(s) { + return s === null || s === 60 || s === 61 || s === 62 || s === 96 ? t(s) : s === 34 || s === 39 ? (n.consume(s), m = s, T) : z(s) ? (n.consume(s), k) : H(s); + } + function T(s) { + return s === m ? (n.consume(s), m = null, N) : s === null || C(s) ? t(s) : (n.consume(s), T); + } + function H(s) { + return s === null || s === 34 || s === 39 || s === 47 || s === 60 || s === 61 || s === 62 || s === 96 || Z(s) ? _(s) : (n.consume(s), H); + } + function N(s) { + return s === 47 || s === 62 || z(s) ? F(s) : t(s); + } + function V(s) { + return s === 62 ? (n.consume(s), y) : t(s); + } + function y(s) { + return s === null || C(s) ? S(s) : z(s) ? (n.consume(s), y) : t(s); + } + function S(s) { + return s === 45 && u === 2 ? (n.consume(s), U) : s === 60 && u === 1 ? (n.consume(s), W) : s === 62 && u === 4 ? (n.consume(s), J) : s === 63 && u === 3 ? (n.consume(s), o) : s === 93 && u === 5 ? (n.consume(s), en) : C(s) && (u === 6 || u === 7) ? (n.exit("htmlFlowData"), n.check( + Ie, + rn, + P + )(s)) : s === null || C(s) ? (n.exit("htmlFlowData"), P(s)) : (n.consume(s), S); + } + function P(s) { + return n.check( + Te, + R, + rn + )(s); + } + function R(s) { + return n.enter("lineEnding"), n.consume(s), n.exit("lineEnding"), w; + } + function w(s) { + return s === null || C(s) ? P(s) : (n.enter("htmlFlowData"), S(s)); + } + function U(s) { + return s === 45 ? (n.consume(s), o) : S(s); + } + function W(s) { + return s === 47 ? (n.consume(s), l = "", G) : S(s); + } + function G(s) { + if (s === 62) { + const K = l.toLowerCase(); + return Jn.includes(K) ? (n.consume(s), J) : S(s); + } + return nn(s) && l.length < 8 ? (n.consume(s), l += String.fromCharCode(s), G) : S(s); + } + function en(s) { + return s === 93 ? (n.consume(s), o) : S(s); + } + function o(s) { + return s === 62 ? (n.consume(s), J) : s === 45 && u === 2 ? (n.consume(s), o) : S(s); + } + function J(s) { + return s === null || C(s) ? (n.exit("htmlFlowData"), rn(s)) : (n.consume(s), J); + } + function rn(s) { + return n.exit("htmlFlow"), r(s); + } +} +function Oe(n, r, t) { + const e = this; + return u; + function u(l) { + return C(l) ? (n.enter("lineEnding"), n.consume(l), n.exit("lineEnding"), i) : t(l); + } + function i(l) { + return e.parser.lazy[e.now().line] ? t(l) : r(l); + } +} +function De(n, r, t) { + return e; + function e(u) { + return n.enter("lineEnding"), n.consume(u), n.exit("lineEnding"), n.attempt(Sn, r, t); + } +} +const Pe = { + name: "htmlText", + tokenize: _e +}; +function _e(n, r, t) { + const e = this; + let u, i, l; + return a; + function a(o) { + return n.enter("htmlText"), n.enter("htmlTextData"), n.consume(o), m; + } + function m(o) { + return o === 33 ? (n.consume(o), c) : o === 47 ? (n.consume(o), _) : o === 63 ? (n.consume(o), F) : nn(o) ? (n.consume(o), H) : t(o); + } + function c(o) { + return o === 45 ? (n.consume(o), p) : o === 91 ? (n.consume(o), i = 0, A) : nn(o) ? (n.consume(o), j) : t(o); + } + function p(o) { + return o === 45 ? (n.consume(o), h) : t(o); + } + function f(o) { + return o === null ? t(o) : o === 45 ? (n.consume(o), x) : C(o) ? (l = f, W(o)) : (n.consume(o), f); + } + function x(o) { + return o === 45 ? (n.consume(o), h) : f(o); + } + function h(o) { + return o === 62 ? U(o) : o === 45 ? x(o) : f(o); + } + function A(o) { + const J = "CDATA["; + return o === J.charCodeAt(i++) ? (n.consume(o), i === J.length ? I : A) : t(o); + } + function I(o) { + return o === null ? t(o) : o === 93 ? (n.consume(o), M) : C(o) ? (l = I, W(o)) : (n.consume(o), I); + } + function M(o) { + return o === 93 ? (n.consume(o), b) : I(o); + } + function b(o) { + return o === 62 ? U(o) : o === 93 ? (n.consume(o), b) : I(o); + } + function j(o) { + return o === null || o === 62 ? U(o) : C(o) ? (l = j, W(o)) : (n.consume(o), j); + } + function F(o) { + return o === null ? t(o) : o === 63 ? (n.consume(o), D) : C(o) ? (l = F, W(o)) : (n.consume(o), F); + } + function D(o) { + return o === 62 ? U(o) : F(o); + } + function _(o) { + return nn(o) ? (n.consume(o), k) : t(o); + } + function k(o) { + return o === 45 || v(o) ? (n.consume(o), k) : T(o); + } + function T(o) { + return C(o) ? (l = T, W(o)) : z(o) ? (n.consume(o), T) : U(o); + } + function H(o) { + return o === 45 || v(o) ? (n.consume(o), H) : o === 47 || o === 62 || Z(o) ? N(o) : t(o); + } + function N(o) { + return o === 47 ? (n.consume(o), U) : o === 58 || o === 95 || nn(o) ? (n.consume(o), V) : C(o) ? (l = N, W(o)) : z(o) ? (n.consume(o), N) : U(o); + } + function V(o) { + return o === 45 || o === 46 || o === 58 || o === 95 || v(o) ? (n.consume(o), V) : y(o); + } + function y(o) { + return o === 61 ? (n.consume(o), S) : C(o) ? (l = y, W(o)) : z(o) ? (n.consume(o), y) : N(o); + } + function S(o) { + return o === null || o === 60 || o === 61 || o === 62 || o === 96 ? t(o) : o === 34 || o === 39 ? (n.consume(o), u = o, P) : C(o) ? (l = S, W(o)) : z(o) ? (n.consume(o), S) : (n.consume(o), R); + } + function P(o) { + return o === u ? (n.consume(o), u = void 0, w) : o === null ? t(o) : C(o) ? (l = P, W(o)) : (n.consume(o), P); + } + function R(o) { + return o === null || o === 34 || o === 39 || o === 60 || o === 61 || o === 96 ? t(o) : o === 47 || o === 62 || Z(o) ? N(o) : (n.consume(o), R); + } + function w(o) { + return o === 47 || o === 62 || Z(o) ? N(o) : t(o); + } + function U(o) { + return o === 62 ? (n.consume(o), n.exit("htmlTextData"), n.exit("htmlText"), r) : t(o); + } + function W(o) { + return n.exit("htmlTextData"), n.enter("lineEnding"), n.consume(o), n.exit("lineEnding"), G; + } + function G(o) { + return z(o) ? O( + n, + en, + "linePrefix", + e.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + )(o) : en(o); + } + function en(o) { + return n.enter("htmlTextData"), l(o); + } +} +const Dn = { + name: "labelEnd", + tokenize: Ne, + resolveTo: He, + resolveAll: qe +}, Me = { + tokenize: Ve +}, je = { + tokenize: We +}, Re = { + tokenize: Qe +}; +function qe(n) { + let r = -1; + for (; ++r < n.length; ) { + const t = n[r][1]; + (t.type === "labelImage" || t.type === "labelLink" || t.type === "labelEnd") && (n.splice(r + 1, t.type === "labelImage" ? 4 : 2), t.type = "data", r++); + } + return n; +} +function He(n, r) { + let t = n.length, e = 0, u, i, l, a; + for (; t--; ) + if (u = n[t][1], i) { + if (u.type === "link" || u.type === "labelLink" && u._inactive) + break; + n[t][0] === "enter" && u.type === "labelLink" && (u._inactive = !0); + } else if (l) { + if (n[t][0] === "enter" && (u.type === "labelImage" || u.type === "labelLink") && !u._balanced && (i = t, u.type !== "labelLink")) { + e = 2; + break; + } + } else + u.type === "labelEnd" && (l = t); + const m = { + type: n[i][1].type === "labelLink" ? "link" : "image", + start: Object.assign({}, n[i][1].start), + end: Object.assign({}, n[n.length - 1][1].end) + }, c = { + type: "label", + start: Object.assign({}, n[i][1].start), + end: Object.assign({}, n[l][1].end) + }, p = { + type: "labelText", + start: Object.assign({}, n[i + e + 2][1].end), + end: Object.assign({}, n[l - 2][1].start) + }; + return a = [ + ["enter", m, r], + ["enter", c, r] + ], a = Y(a, n.slice(i + 1, i + e + 3)), a = Y(a, [["enter", p, r]]), a = Y( + a, + Ln( + r.parser.constructs.insideSpan.null, + n.slice(i + e + 4, l - 3), + r + ) + ), a = Y(a, [ + ["exit", p, r], + n[l - 2], + n[l - 1], + ["exit", c, r] + ]), a = Y(a, n.slice(l + 1)), a = Y(a, [["exit", m, r]]), tn(n, i, n.length, a), n; +} +function Ne(n, r, t) { + const e = this; + let u = e.events.length, i, l; + for (; u--; ) + if ((e.events[u][1].type === "labelImage" || e.events[u][1].type === "labelLink") && !e.events[u][1]._balanced) { + i = e.events[u][1]; + break; + } + return a; + function a(x) { + return i ? i._inactive ? f(x) : (l = e.parser.defined.includes( + xn( + e.sliceSerialize({ + start: i.end, + end: e.now() + }) + ) + ), n.enter("labelEnd"), n.enter("labelMarker"), n.consume(x), n.exit("labelMarker"), n.exit("labelEnd"), m) : t(x); + } + function m(x) { + return x === 40 ? n.attempt( + Me, + p, + l ? p : f + )(x) : x === 91 ? n.attempt( + je, + p, + l ? c : f + )(x) : l ? p(x) : f(x); + } + function c(x) { + return n.attempt( + Re, + p, + f + )(x); + } + function p(x) { + return r(x); + } + function f(x) { + return i._balanced = !0, t(x); + } +} +function Ve(n, r, t) { + return e; + function e(f) { + return n.enter("resource"), n.enter("resourceMarker"), n.consume(f), n.exit("resourceMarker"), u; + } + function u(f) { + return Z(f) ? dn(n, i)(f) : i(f); + } + function i(f) { + return f === 41 ? p(f) : at( + n, + l, + a, + "resourceDestination", + "resourceDestinationLiteral", + "resourceDestinationLiteralMarker", + "resourceDestinationRaw", + "resourceDestinationString", + 32 + )(f); + } + function l(f) { + return Z(f) ? dn(n, m)(f) : p(f); + } + function a(f) { + return t(f); + } + function m(f) { + return f === 34 || f === 39 || f === 40 ? st( + n, + c, + t, + "resourceTitle", + "resourceTitleMarker", + "resourceTitleString" + )(f) : p(f); + } + function c(f) { + return Z(f) ? dn(n, p)(f) : p(f); + } + function p(f) { + return f === 41 ? (n.enter("resourceMarker"), n.consume(f), n.exit("resourceMarker"), n.exit("resource"), r) : t(f); + } +} +function We(n, r, t) { + const e = this; + return u; + function u(a) { + return ot.call( + e, + n, + i, + l, + "reference", + "referenceMarker", + "referenceString" + )(a); + } + function i(a) { + return e.parser.defined.includes( + xn( + e.sliceSerialize(e.events[e.events.length - 1][1]).slice(1, -1) + ) + ) ? r(a) : t(a); + } + function l(a) { + return t(a); + } +} +function Qe(n, r, t) { + return e; + function e(i) { + return n.enter("reference"), n.enter("referenceMarker"), n.consume(i), n.exit("referenceMarker"), u; + } + function u(i) { + return i === 93 ? (n.enter("referenceMarker"), n.consume(i), n.exit("referenceMarker"), n.exit("reference"), r) : t(i); + } +} +const Ue = { + name: "labelStartImage", + tokenize: $e, + resolveAll: Dn.resolveAll +}; +function $e(n, r, t) { + const e = this; + return u; + function u(a) { + return n.enter("labelImage"), n.enter("labelImageMarker"), n.consume(a), n.exit("labelImageMarker"), i; + } + function i(a) { + return a === 91 ? (n.enter("labelMarker"), n.consume(a), n.exit("labelMarker"), n.exit("labelImage"), l) : t(a); + } + function l(a) { + return a === 94 && "_hiddenFootnoteSupport" in e.parser.constructs ? t(a) : r(a); + } +} +const Ze = { + name: "labelStartLink", + tokenize: Ye, + resolveAll: Dn.resolveAll +}; +function Ye(n, r, t) { + const e = this; + return u; + function u(l) { + return n.enter("labelLink"), n.enter("labelMarker"), n.consume(l), n.exit("labelMarker"), n.exit("labelLink"), i; + } + function i(l) { + return l === 94 && "_hiddenFootnoteSupport" in e.parser.constructs ? t(l) : r(l); + } +} +const wn = { + name: "lineEnding", + tokenize: Ge +}; +function Ge(n, r) { + return t; + function t(e) { + return n.enter("lineEnding"), n.consume(e), n.exit("lineEnding"), O(n, r, "linePrefix"); + } +} +const bn = { + name: "thematicBreak", + tokenize: Je +}; +function Je(n, r, t) { + let e = 0, u; + return i; + function i(c) { + return n.enter("thematicBreak"), l(c); + } + function l(c) { + return u = c, a(c); + } + function a(c) { + return c === u ? (n.enter("thematicBreakSequence"), m(c)) : e >= 3 && (c === null || C(c)) ? (n.exit("thematicBreak"), r(c)) : t(c); + } + function m(c) { + return c === u ? (n.consume(c), e++, m) : (n.exit("thematicBreakSequence"), z(c) ? O(n, a, "whitespace")(c) : a(c)); + } +} +const $ = { + name: "list", + tokenize: ve, + continuation: { + tokenize: nr + }, + exit: er +}, Ke = { + tokenize: rr, + partial: !0 +}, Xe = { + tokenize: tr, + partial: !0 +}; +function ve(n, r, t) { + const e = this, u = e.events[e.events.length - 1]; + let i = u && u[1].type === "linePrefix" ? u[2].sliceSerialize(u[1], !0).length : 0, l = 0; + return a; + function a(h) { + const A = e.containerState.type || (h === 42 || h === 43 || h === 45 ? "listUnordered" : "listOrdered"); + if (A === "listUnordered" ? !e.containerState.marker || h === e.containerState.marker : zn(h)) { + if (e.containerState.type || (e.containerState.type = A, n.enter(A, { + _container: !0 + })), A === "listUnordered") + return n.enter("listItemPrefix"), h === 42 || h === 45 ? n.check(bn, t, c)(h) : c(h); + if (!e.interrupt || h === 49) + return n.enter("listItemPrefix"), n.enter("listItemValue"), m(h); + } + return t(h); + } + function m(h) { + return zn(h) && ++l < 10 ? (n.consume(h), m) : (!e.interrupt || l < 2) && (e.containerState.marker ? h === e.containerState.marker : h === 41 || h === 46) ? (n.exit("listItemValue"), c(h)) : t(h); + } + function c(h) { + return n.enter("listItemMarker"), n.consume(h), n.exit("listItemMarker"), e.containerState.marker = e.containerState.marker || h, n.check( + Sn, + // Can’t be empty when interrupting. + e.interrupt ? t : p, + n.attempt( + Ke, + x, + f + ) + ); + } + function p(h) { + return e.containerState.initialBlankLine = !0, i++, x(h); + } + function f(h) { + return z(h) ? (n.enter("listItemPrefixWhitespace"), n.consume(h), n.exit("listItemPrefixWhitespace"), x) : t(h); + } + function x(h) { + return e.containerState.size = i + e.sliceSerialize(n.exit("listItemPrefix"), !0).length, r(h); + } +} +function nr(n, r, t) { + const e = this; + return e.containerState._closeFlow = void 0, n.check(Sn, u, i); + function u(a) { + return e.containerState.furtherBlankLines = e.containerState.furtherBlankLines || e.containerState.initialBlankLine, O( + n, + r, + "listItemIndent", + e.containerState.size + 1 + )(a); + } + function i(a) { + return e.containerState.furtherBlankLines || !z(a) ? (e.containerState.furtherBlankLines = void 0, e.containerState.initialBlankLine = void 0, l(a)) : (e.containerState.furtherBlankLines = void 0, e.containerState.initialBlankLine = void 0, n.attempt(Xe, r, l)(a)); + } + function l(a) { + return e.containerState._closeFlow = !0, e.interrupt = void 0, O( + n, + n.attempt($, r, t), + "linePrefix", + e.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + )(a); + } +} +function tr(n, r, t) { + const e = this; + return O( + n, + u, + "listItemIndent", + e.containerState.size + 1 + ); + function u(i) { + const l = e.events[e.events.length - 1]; + return l && l[1].type === "listItemIndent" && l[2].sliceSerialize(l[1], !0).length === e.containerState.size ? r(i) : t(i); + } +} +function er(n) { + n.exit(this.containerState.type); +} +function rr(n, r, t) { + const e = this; + return O( + n, + u, + "listItemPrefixWhitespace", + e.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + 1 + ); + function u(i) { + const l = e.events[e.events.length - 1]; + return !z(i) && l && l[1].type === "listItemPrefixWhitespace" ? r(i) : t(i); + } +} +const Kn = { + name: "setextUnderline", + tokenize: ur, + resolveTo: ir +}; +function ir(n, r) { + let t = n.length, e, u, i; + for (; t--; ) + if (n[t][0] === "enter") { + if (n[t][1].type === "content") { + e = t; + break; + } + n[t][1].type === "paragraph" && (u = t); + } else + n[t][1].type === "content" && n.splice(t, 1), !i && n[t][1].type === "definition" && (i = t); + const l = { + type: "setextHeading", + start: Object.assign({}, n[u][1].start), + end: Object.assign({}, n[n.length - 1][1].end) + }; + return n[u][1].type = "setextHeadingText", i ? (n.splice(u, 0, ["enter", l, r]), n.splice(i + 1, 0, ["exit", n[e][1], r]), n[e][1].end = Object.assign({}, n[i][1].end)) : n[e][1] = l, n.push(["exit", l, r]), n; +} +function ur(n, r, t) { + const e = this; + let u; + return i; + function i(c) { + let p = e.events.length, f; + for (; p--; ) + if (e.events[p][1].type !== "lineEnding" && e.events[p][1].type !== "linePrefix" && e.events[p][1].type !== "content") { + f = e.events[p][1].type === "paragraph"; + break; + } + return !e.parser.lazy[e.now().line] && (e.interrupt || f) ? (n.enter("setextHeadingLine"), u = c, l(c)) : t(c); + } + function l(c) { + return n.enter("setextHeadingLineSequence"), a(c); + } + function a(c) { + return c === u ? (n.consume(c), a) : (n.exit("setextHeadingLineSequence"), z(c) ? O(n, m, "lineSuffix")(c) : m(c)); + } + function m(c) { + return c === null || C(c) ? (n.exit("setextHeadingLine"), r(c)) : t(c); + } +} +const lr = { + tokenize: ar +}; +function ar(n) { + const r = this, t = n.attempt( + // Try to parse a blank line. + Sn, + e, + // Try to parse initial flow (essentially, only code). + n.attempt( + this.parser.constructs.flowInitial, + u, + O( + n, + n.attempt( + this.parser.constructs.flow, + u, + n.attempt(pe, u) + ), + "linePrefix" + ) + ) + ); + return t; + function e(i) { + if (i === null) { + n.consume(i); + return; + } + return n.enter("lineEndingBlank"), n.consume(i), n.exit("lineEndingBlank"), r.currentConstruct = void 0, t; + } + function u(i) { + if (i === null) { + n.consume(i); + return; + } + return n.enter("lineEnding"), n.consume(i), n.exit("lineEnding"), r.currentConstruct = void 0, t; + } +} +const or = { + resolveAll: ht() +}, sr = ct("string"), cr = ct("text"); +function ct(n) { + return { + tokenize: r, + resolveAll: ht( + n === "text" ? hr : void 0 + ) + }; + function r(t) { + const e = this, u = this.parser.constructs[n], i = t.attempt(u, l, a); + return l; + function l(p) { + return c(p) ? i(p) : a(p); + } + function a(p) { + if (p === null) { + t.consume(p); + return; + } + return t.enter("data"), t.consume(p), m; + } + function m(p) { + return c(p) ? (t.exit("data"), i(p)) : (t.consume(p), m); + } + function c(p) { + if (p === null) + return !0; + const f = u[p]; + let x = -1; + if (f) + for (; ++x < f.length; ) { + const h = f[x]; + if (!h.previous || h.previous.call(e, e.previous)) + return !0; + } + return !1; + } + } +} +function ht(n) { + return r; + function r(t, e) { + let u = -1, i; + for (; ++u <= t.length; ) + i === void 0 ? t[u] && t[u][1].type === "data" && (i = u, u++) : (!t[u] || t[u][1].type !== "data") && (u !== i + 2 && (t[i][1].end = t[u - 1][1].end, t.splice(i + 2, u - i - 2), u = i + 2), i = void 0); + return n ? n(t, e) : t; + } +} +function hr(n, r) { + let t = 0; + for (; ++t <= n.length; ) + if ((t === n.length || n[t][1].type === "lineEnding") && n[t - 1][1].type === "data") { + const e = n[t - 1][1], u = r.sliceStream(e); + let i = u.length, l = -1, a = 0, m; + for (; i--; ) { + const c = u[i]; + if (typeof c == "string") { + for (l = c.length; c.charCodeAt(l - 1) === 32; ) + a++, l--; + if (l) + break; + l = -1; + } else if (c === -2) + m = !0, a++; + else if (c !== -1) { + i++; + break; + } + } + if (a) { + const c = { + type: t === n.length || m || a < 2 ? "lineSuffix" : "hardBreakTrailing", + start: { + line: e.end.line, + column: e.end.column - a, + offset: e.end.offset - a, + _index: e.start._index + i, + _bufferIndex: i ? l : e.start._bufferIndex + l + }, + end: Object.assign({}, e.end) + }; + e.end = Object.assign({}, c.start), e.start.offset === e.end.offset ? Object.assign(e, c) : (n.splice( + t, + 0, + ["enter", c, r], + ["exit", c, r] + ), t += 2); + } + t++; + } + return n; +} +function pr(n, r, t) { + let e = Object.assign( + t ? Object.assign({}, t) : { + line: 1, + column: 1, + offset: 0 + }, + { + _index: 0, + _bufferIndex: -1 + } + ); + const u = {}, i = []; + let l = [], a = []; + const m = { + consume: j, + enter: F, + exit: D, + attempt: T(_), + check: T(k), + interrupt: T(k, { + interrupt: !0 + }) + }, c = { + previous: null, + code: null, + containerState: {}, + events: [], + parser: n, + sliceStream: h, + sliceSerialize: x, + now: A, + defineSkip: I, + write: f + }; + let p = r.tokenize.call(c, m); + return r.resolveAll && i.push(r), c; + function f(y) { + return l = Y(l, y), M(), l[l.length - 1] !== null ? [] : (H(r, 0), c.events = Ln(i, c.events, c), c.events); + } + function x(y, S) { + return mr(h(y), S); + } + function h(y) { + return fr(l, y); + } + function A() { + const { line: y, column: S, offset: P, _index: R, _bufferIndex: w } = e; + return { + line: y, + column: S, + offset: P, + _index: R, + _bufferIndex: w + }; + } + function I(y) { + u[y.line] = y.column, V(); + } + function M() { + let y; + for (; e._index < l.length; ) { + const S = l[e._index]; + if (typeof S == "string") + for (y = e._index, e._bufferIndex < 0 && (e._bufferIndex = 0); e._index === y && e._bufferIndex < S.length; ) + b(S.charCodeAt(e._bufferIndex)); + else + b(S); + } + } + function b(y) { + p = p(y); + } + function j(y) { + C(y) ? (e.line++, e.column = 1, e.offset += y === -3 ? 2 : 1, V()) : y !== -1 && (e.column++, e.offset++), e._bufferIndex < 0 ? e._index++ : (e._bufferIndex++, e._bufferIndex === l[e._index].length && (e._bufferIndex = -1, e._index++)), c.previous = y; + } + function F(y, S) { + const P = S || {}; + return P.type = y, P.start = A(), c.events.push(["enter", P, c]), a.push(P), P; + } + function D(y) { + const S = a.pop(); + return S.end = A(), c.events.push(["exit", S, c]), S; + } + function _(y, S) { + H(y, S.from); + } + function k(y, S) { + S.restore(); + } + function T(y, S) { + return P; + function P(R, w, U) { + let W, G, en, o; + return Array.isArray(R) ? rn(R) : "tokenize" in R ? ( + // @ts-expect-error Looks like a construct. + rn([R]) + ) : J(R); + function J(Q) { + return pn; + function pn(an) { + const fn = an !== null && Q[an], mn = an !== null && Q.null, Fn = [ + // To do: add more extension tests. + /* c8 ignore next 2 */ + ...Array.isArray(fn) ? fn : fn ? [fn] : [], + ...Array.isArray(mn) ? mn : mn ? [mn] : [] + ]; + return rn(Fn)(an); + } + } + function rn(Q) { + return W = Q, G = 0, Q.length === 0 ? U : s(Q[G]); + } + function s(Q) { + return pn; + function pn(an) { + return o = N(), en = Q, Q.partial || (c.currentConstruct = Q), Q.name && c.parser.constructs.disable.null.includes(Q.name) ? hn() : Q.tokenize.call( + // If we do have fields, create an object w/ `context` as its + // prototype. + // This allows a “live binding”, which is needed for `interrupt`. + S ? Object.assign(Object.create(c), S) : c, + m, + K, + hn + )(an); + } + } + function K(Q) { + return y(en, o), w; + } + function hn(Q) { + return o.restore(), ++G < W.length ? s(W[G]) : U; + } + } + } + function H(y, S) { + y.resolveAll && !i.includes(y) && i.push(y), y.resolve && tn( + c.events, + S, + c.events.length - S, + y.resolve(c.events.slice(S), c) + ), y.resolveTo && (c.events = y.resolveTo(c.events, c)); + } + function N() { + const y = A(), S = c.previous, P = c.currentConstruct, R = c.events.length, w = Array.from(a); + return { + restore: U, + from: R + }; + function U() { + e = y, c.previous = S, c.currentConstruct = P, c.events.length = R, a = w, V(); + } + } + function V() { + e.line in u && e.column < 2 && (e.column = u[e.line], e.offset += u[e.line] - 1); + } +} +function fr(n, r) { + const t = r.start._index, e = r.start._bufferIndex, u = r.end._index, i = r.end._bufferIndex; + let l; + if (t === u) + l = [n[t].slice(e, i)]; + else { + if (l = n.slice(t, u), e > -1) { + const a = l[0]; + typeof a == "string" ? l[0] = a.slice(e) : l.shift(); + } + i > 0 && l.push(n[u].slice(0, i)); + } + return l; +} +function mr(n, r) { + let t = -1; + const e = []; + let u; + for (; ++t < n.length; ) { + const i = n[t]; + let l; + if (typeof i == "string") + l = i; + else + switch (i) { + case -5: { + l = "\r"; + break; + } + case -4: { + l = ` +`; + break; + } + case -3: { + l = `\r +`; + break; + } + case -2: { + l = r ? " " : " "; + break; + } + case -1: { + if (!r && u) + continue; + l = " "; + break; + } + default: + l = String.fromCharCode(i); + } + u = i === -2, e.push(l); + } + return e.join(""); +} +const xr = { + 42: $, + 43: $, + 45: $, + 48: $, + 49: $, + 50: $, + 51: $, + 52: $, + 53: $, + 54: $, + 55: $, + 56: $, + 57: $, + 62: rt +}, gr = { + 91: ke +}, kr = { + [-2]: Cn, + [-1]: Cn, + 32: Cn +}, dr = { + 35: Ee, + 42: bn, + 45: [Kn, bn], + 60: ze, + 61: Kn, + 95: bn, + 96: Gn, + 126: Gn +}, br = { + 38: ut, + 92: it +}, yr = { + [-5]: wn, + [-4]: wn, + [-3]: wn, + 33: Ue, + 38: ut, + 42: In, + 60: [Yt, Pe], + 91: Ze, + 92: [Se, it], + 93: Dn, + 95: In, + 96: ae +}, Sr = { + null: [In, or] +}, Fr = { + null: [42, 95] +}, Er = { + null: [] +}, Cr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + attentionMarkers: Fr, + contentInitial: gr, + disable: Er, + document: xr, + flow: dr, + flowInitial: kr, + insideSpan: Sr, + string: br, + text: yr +}, Symbol.toStringTag, { value: "Module" })); +function wr(n) { + const t = ( + /** @type {FullNormalizedExtension} */ + Ot([Cr, ...(n || {}).extensions || []]) + ), e = { + defined: [], + lazy: {}, + constructs: t, + content: u(Nt), + document: u(Wt), + flow: u(lr), + string: u(sr), + text: u(cr) + }; + return e; + function u(i) { + return l; + function l(a) { + return pr(e, i, a); + } + } +} +const Xn = /[\0\t\n\r]/g; +function Ar() { + let n = 1, r = "", t = !0, e; + return u; + function u(i, l, a) { + const m = []; + let c, p, f, x, h; + for (i = r + i.toString(l), f = 0, r = "", t && (i.charCodeAt(0) === 65279 && f++, t = void 0); f < i.length; ) { + if (Xn.lastIndex = f, c = Xn.exec(i), x = c && c.index !== void 0 ? c.index : i.length, h = i.charCodeAt(x), !c) { + r = i.slice(f); + break; + } + if (h === 10 && f === x && e) + m.push(-3), e = void 0; + else + switch (e && (m.push(-5), e = void 0), f < x && (m.push(i.slice(f, x)), n += x - f), h) { + case 0: { + m.push(65533), n++; + break; + } + case 9: { + for (p = Math.ceil(n / 4) * 4, m.push(-2); n++ < p; ) + m.push(-1); + break; + } + case 10: { + m.push(-4), n = 1; + break; + } + default: + e = !0, n = 1; + } + f = x + 1; + } + return a && (e && m.push(-5), r && m.push(r), m.push(null)), m; + } +} +function zr(n) { + for (; !lt(n); ) + ; + return n; +} +function pt(n, r) { + const t = Number.parseInt(n, r); + return ( + // C0 except for HT, LF, FF, CR, space. + t < 9 || t === 11 || t > 13 && t < 32 || // Control character (DEL) of C0, and C1 controls. + t > 126 && t < 160 || // Lone high surrogates and low surrogates. + t > 55295 && t < 57344 || // Noncharacters. + t > 64975 && t < 65008 || (t & 65535) === 65535 || (t & 65535) === 65534 || // Out of range + t > 1114111 ? "�" : String.fromCharCode(t) + ); +} +const Ir = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi; +function Tr(n) { + return n.replace(Ir, Br); +} +function Br(n, r, t) { + if (r) + return r; + if (t.charCodeAt(0) === 35) { + const u = t.charCodeAt(1), i = u === 120 || u === 88; + return pt(t.slice(i ? 2 : 1), i ? 16 : 10); + } + return On(t) || n; +} +function yn(n) { + return !n || typeof n != "object" ? "" : "position" in n || "type" in n ? vn(n.position) : "start" in n || "end" in n ? vn(n) : "line" in n || "column" in n ? Tn(n) : ""; +} +function Tn(n) { + return nt(n && n.line) + ":" + nt(n && n.column); +} +function vn(n) { + return Tn(n && n.start) + "-" + Tn(n && n.end); +} +function nt(n) { + return n && typeof n == "number" ? n : 1; +} +const ft = {}.hasOwnProperty, mt = ( + /** + * @type {( + * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) & + * ((value: Value, options?: Options | null | undefined) => Root) + * )} + */ + /** + * @param {Value} value + * @param {Encoding | Options | null | undefined} [encoding] + * @param {Options | null | undefined} [options] + * @returns {Root} + */ + function(n, r, t) { + return typeof r != "string" && (t = r, r = void 0), Lr(t)( + zr( + wr(t).document().write(Ar()(n, r, !0)) + ) + ); + } +); +function Lr(n) { + const r = { + transforms: [], + canContainEols: ["emphasis", "fragment", "heading", "paragraph", "strong"], + enter: { + autolink: a(Hn), + autolinkProtocol: y, + autolinkEmail: y, + atxHeading: a(jn), + blockQuote: a(Fn), + characterEscape: y, + characterReference: y, + codeFenced: a(Mn), + codeFencedFenceInfo: m, + codeFencedFenceMeta: m, + codeIndented: a(Mn, m), + codeText: a(kt, m), + codeTextData: y, + data: y, + codeFlowValue: y, + definition: a(dt), + definitionDestinationString: m, + definitionLabelString: m, + definitionTitleString: m, + emphasis: a(bt), + hardBreakEscape: a(Rn), + hardBreakTrailing: a(Rn), + htmlFlow: a(qn, m), + htmlFlowData: y, + htmlText: a(qn, m), + htmlTextData: y, + image: a(yt), + label: m, + link: a(Hn), + listItem: a(St), + listItemValue: A, + listOrdered: a(Nn, h), + listUnordered: a(Nn), + paragraph: a(Ft), + reference: hn, + referenceString: m, + resourceDestinationString: m, + resourceTitleString: m, + setextHeading: a(jn), + strong: a(Et), + thematicBreak: a(wt) + }, + exit: { + atxHeading: p(), + atxHeadingSequence: T, + autolink: p(), + autolinkEmail: mn, + autolinkProtocol: fn, + blockQuote: p(), + characterEscapeValue: S, + characterReferenceMarkerHexadecimal: pn, + characterReferenceMarkerNumeric: pn, + characterReferenceValue: an, + codeFenced: p(j), + codeFencedFence: b, + codeFencedFenceInfo: I, + codeFencedFenceMeta: M, + codeFlowValue: S, + codeIndented: p(F), + codeText: p(W), + codeTextData: S, + data: S, + definition: p(), + definitionDestinationString: k, + definitionLabelString: D, + definitionTitleString: _, + emphasis: p(), + hardBreakEscape: p(R), + hardBreakTrailing: p(R), + htmlFlow: p(w), + htmlFlowData: S, + htmlText: p(U), + htmlTextData: S, + image: p(en), + label: J, + labelText: o, + lineEnding: P, + link: p(G), + listItem: p(), + listOrdered: p(), + listUnordered: p(), + paragraph: p(), + referenceString: Q, + resourceDestinationString: rn, + resourceTitleString: s, + resource: K, + setextHeading: p(V), + setextHeadingLineSequence: N, + setextHeadingText: H, + strong: p(), + thematicBreak: p() + } + }; + xt(r, (n || {}).mdastExtensions || []); + const t = {}; + return e; + function e(g) { + let d = { + type: "root", + children: [] + }; + const E = { + stack: [d], + tokenStack: [], + config: r, + enter: c, + exit: f, + buffer: m, + resume: x, + setData: i, + getData: l + }, B = []; + let L = -1; + for (; ++L < g.length; ) + if (g[L][1].type === "listOrdered" || g[L][1].type === "listUnordered") + if (g[L][0] === "enter") + B.push(L); + else { + const X = B.pop(); + L = u(g, X, L); + } + for (L = -1; ++L < g.length; ) { + const X = r[g[L][0]]; + ft.call(X, g[L][1].type) && X[g[L][1].type].call( + Object.assign( + { + sliceSerialize: g[L][2].sliceSerialize + }, + E + ), + g[L][1] + ); + } + if (E.tokenStack.length > 0) { + const X = E.tokenStack[E.tokenStack.length - 1]; + (X[1] || tt).call(E, void 0, X[0]); + } + for (d.position = { + start: sn( + g.length > 0 ? g[0][1].start : { + line: 1, + column: 1, + offset: 0 + } + ), + end: sn( + g.length > 0 ? g[g.length - 2][1].end : { + line: 1, + column: 1, + offset: 0 + } + ) + }, L = -1; ++L < r.transforms.length; ) + d = r.transforms[L](d) || d; + return d; + } + function u(g, d, E) { + let B = d - 1, L = -1, X = !1, on, un, gn, kn; + for (; ++B <= E; ) { + const q = g[B]; + if (q[1].type === "listUnordered" || q[1].type === "listOrdered" || q[1].type === "blockQuote" ? (q[0] === "enter" ? L++ : L--, kn = void 0) : q[1].type === "lineEndingBlank" ? q[0] === "enter" && (on && !kn && !L && !gn && (gn = B), kn = void 0) : q[1].type === "linePrefix" || q[1].type === "listItemValue" || q[1].type === "listItemMarker" || q[1].type === "listItemPrefix" || q[1].type === "listItemPrefixWhitespace" || (kn = void 0), !L && q[0] === "enter" && q[1].type === "listItemPrefix" || L === -1 && q[0] === "exit" && (q[1].type === "listUnordered" || q[1].type === "listOrdered")) { + if (on) { + let En = B; + for (un = void 0; En--; ) { + const ln = g[En]; + if (ln[1].type === "lineEnding" || ln[1].type === "lineEndingBlank") { + if (ln[0] === "exit") + continue; + un && (g[un][1].type = "lineEndingBlank", X = !0), ln[1].type = "lineEnding", un = En; + } else if (!(ln[1].type === "linePrefix" || ln[1].type === "blockQuotePrefix" || ln[1].type === "blockQuotePrefixWhitespace" || ln[1].type === "blockQuoteMarker" || ln[1].type === "listItemIndent")) + break; + } + gn && (!un || gn < un) && (on._spread = !0), on.end = Object.assign( + {}, + un ? g[un][1].start : q[1].end + ), g.splice(un || B, 0, ["exit", on, q[2]]), B++, E++; + } + q[1].type === "listItemPrefix" && (on = { + type: "listItem", + _spread: !1, + start: Object.assign({}, q[1].start), + // @ts-expect-error: we’ll add `end` in a second. + end: void 0 + }, g.splice(B, 0, ["enter", on, q[2]]), B++, E++, gn = void 0, kn = !0); + } + } + return g[d][1]._spread = X, E; + } + function i(g, d) { + t[g] = d; + } + function l(g) { + return t[g]; + } + function a(g, d) { + return E; + function E(B) { + c.call(this, g(B), B), d && d.call(this, B); + } + } + function m() { + this.stack.push({ + type: "fragment", + children: [] + }); + } + function c(g, d, E) { + return this.stack[this.stack.length - 1].children.push(g), this.stack.push(g), this.tokenStack.push([d, E]), g.position = { + start: sn(d.start) + }, g; + } + function p(g) { + return d; + function d(E) { + g && g.call(this, E), f.call(this, E); + } + } + function f(g, d) { + const E = this.stack.pop(), B = this.tokenStack.pop(); + if (B) + B[0].type !== g.type && (d ? d.call(this, g, B[0]) : (B[1] || tt).call(this, g, B[0])); + else + throw new Error( + "Cannot close `" + g.type + "` (" + yn({ + start: g.start, + end: g.end + }) + "): it’s not open" + ); + return E.position.end = sn(g.end), E; + } + function x() { + return Bt(this.stack.pop()); + } + function h() { + i("expectingFirstListItemValue", !0); + } + function A(g) { + if (l("expectingFirstListItemValue")) { + const d = this.stack[this.stack.length - 2]; + d.start = Number.parseInt(this.sliceSerialize(g), 10), i("expectingFirstListItemValue"); + } + } + function I() { + const g = this.resume(), d = this.stack[this.stack.length - 1]; + d.lang = g; + } + function M() { + const g = this.resume(), d = this.stack[this.stack.length - 1]; + d.meta = g; + } + function b() { + l("flowCodeInside") || (this.buffer(), i("flowCodeInside", !0)); + } + function j() { + const g = this.resume(), d = this.stack[this.stack.length - 1]; + d.value = g.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, ""), i("flowCodeInside"); + } + function F() { + const g = this.resume(), d = this.stack[this.stack.length - 1]; + d.value = g.replace(/(\r?\n|\r)$/g, ""); + } + function D(g) { + const d = this.resume(), E = this.stack[this.stack.length - 1]; + E.label = d, E.identifier = xn( + this.sliceSerialize(g) + ).toLowerCase(); + } + function _() { + const g = this.resume(), d = this.stack[this.stack.length - 1]; + d.title = g; + } + function k() { + const g = this.resume(), d = this.stack[this.stack.length - 1]; + d.url = g; + } + function T(g) { + const d = this.stack[this.stack.length - 1]; + if (!d.depth) { + const E = this.sliceSerialize(g).length; + d.depth = E; + } + } + function H() { + i("setextHeadingSlurpLineEnding", !0); + } + function N(g) { + const d = this.stack[this.stack.length - 1]; + d.depth = this.sliceSerialize(g).charCodeAt(0) === 61 ? 1 : 2; + } + function V() { + i("setextHeadingSlurpLineEnding"); + } + function y(g) { + const d = this.stack[this.stack.length - 1]; + let E = d.children[d.children.length - 1]; + (!E || E.type !== "text") && (E = Ct(), E.position = { + start: sn(g.start) + }, d.children.push(E)), this.stack.push(E); + } + function S(g) { + const d = this.stack.pop(); + d.value += this.sliceSerialize(g), d.position.end = sn(g.end); + } + function P(g) { + const d = this.stack[this.stack.length - 1]; + if (l("atHardBreak")) { + const E = d.children[d.children.length - 1]; + E.position.end = sn(g.end), i("atHardBreak"); + return; + } + !l("setextHeadingSlurpLineEnding") && r.canContainEols.includes(d.type) && (y.call(this, g), S.call(this, g)); + } + function R() { + i("atHardBreak", !0); + } + function w() { + const g = this.resume(), d = this.stack[this.stack.length - 1]; + d.value = g; + } + function U() { + const g = this.resume(), d = this.stack[this.stack.length - 1]; + d.value = g; + } + function W() { + const g = this.resume(), d = this.stack[this.stack.length - 1]; + d.value = g; + } + function G() { + const g = this.stack[this.stack.length - 1]; + if (l("inReference")) { + const d = l("referenceType") || "shortcut"; + g.type += "Reference", g.referenceType = d, delete g.url, delete g.title; + } else + delete g.identifier, delete g.label; + i("referenceType"); + } + function en() { + const g = this.stack[this.stack.length - 1]; + if (l("inReference")) { + const d = l("referenceType") || "shortcut"; + g.type += "Reference", g.referenceType = d, delete g.url, delete g.title; + } else + delete g.identifier, delete g.label; + i("referenceType"); + } + function o(g) { + const d = this.sliceSerialize(g), E = this.stack[this.stack.length - 2]; + E.label = Tr(d), E.identifier = xn(d).toLowerCase(); + } + function J() { + const g = this.stack[this.stack.length - 1], d = this.resume(), E = this.stack[this.stack.length - 1]; + if (i("inReference", !0), E.type === "link") { + const B = g.children; + E.children = B; + } else + E.alt = d; + } + function rn() { + const g = this.resume(), d = this.stack[this.stack.length - 1]; + d.url = g; + } + function s() { + const g = this.resume(), d = this.stack[this.stack.length - 1]; + d.title = g; + } + function K() { + i("inReference"); + } + function hn() { + i("referenceType", "collapsed"); + } + function Q(g) { + const d = this.resume(), E = this.stack[this.stack.length - 1]; + E.label = d, E.identifier = xn( + this.sliceSerialize(g) + ).toLowerCase(), i("referenceType", "full"); + } + function pn(g) { + i("characterReferenceType", g.type); + } + function an(g) { + const d = this.sliceSerialize(g), E = l("characterReferenceType"); + let B; + E ? (B = pt( + d, + E === "characterReferenceMarkerNumeric" ? 10 : 16 + ), i("characterReferenceType")) : B = On(d); + const L = this.stack.pop(); + L.value += B, L.position.end = sn(g.end); + } + function fn(g) { + S.call(this, g); + const d = this.stack[this.stack.length - 1]; + d.url = this.sliceSerialize(g); + } + function mn(g) { + S.call(this, g); + const d = this.stack[this.stack.length - 1]; + d.url = "mailto:" + this.sliceSerialize(g); + } + function Fn() { + return { + type: "blockquote", + children: [] + }; + } + function Mn() { + return { + type: "code", + lang: null, + meta: null, + value: "" + }; + } + function kt() { + return { + type: "inlineCode", + value: "" + }; + } + function dt() { + return { + type: "definition", + identifier: "", + label: null, + title: null, + url: "" + }; + } + function bt() { + return { + type: "emphasis", + children: [] + }; + } + function jn() { + return { + type: "heading", + depth: void 0, + children: [] + }; + } + function Rn() { + return { + type: "break" + }; + } + function qn() { + return { + type: "html", + value: "" + }; + } + function yt() { + return { + type: "image", + title: null, + url: "", + alt: null + }; + } + function Hn() { + return { + type: "link", + title: null, + url: "", + children: [] + }; + } + function Nn(g) { + return { + type: "list", + ordered: g.type === "listOrdered", + start: null, + spread: g._spread, + children: [] + }; + } + function St(g) { + return { + type: "listItem", + spread: g._spread, + checked: null, + children: [] + }; + } + function Ft() { + return { + type: "paragraph", + children: [] + }; + } + function Et() { + return { + type: "strong", + children: [] + }; + } + function Ct() { + return { + type: "text", + value: "" + }; + } + function wt() { + return { + type: "thematicBreak" + }; + } +} +function sn(n) { + return { + line: n.line, + column: n.column, + offset: n.offset + }; +} +function xt(n, r) { + let t = -1; + for (; ++t < r.length; ) { + const e = r[t]; + Array.isArray(e) ? xt(n, e) : Or(n, e); + } +} +function Or(n, r) { + let t; + for (t in r) + if (ft.call(r, t)) { + if (t === "canContainEols") { + const e = r[t]; + e && n[t].push(...e); + } else if (t === "transforms") { + const e = r[t]; + e && n[t].push(...e); + } else if (t === "enter" || t === "exit") { + const e = r[t]; + e && Object.assign(n[t], e); + } + } +} +function tt(n, r) { + throw n ? new Error( + "Cannot close `" + n.type + "` (" + yn({ + start: n.start, + end: n.end + }) + "): a different token (`" + r.type + "`, " + yn({ + start: r.start, + end: r.end + }) + ") is open" + ) : new Error( + "Cannot close document, a token (`" + r.type + "`, " + yn({ + start: r.start, + end: r.end + }) + ") is still open" + ); +} +function Dr(n) { + const r = n.replace(/\n{2,}/g, ` +`); + return At(r); +} +function Pr(n) { + const r = Dr(n), { children: t } = mt(r), e = [[]]; + let u = 0; + function i(l, a = "normal") { + l.type === "text" ? l.value.split(` +`).forEach((c, p) => { + p !== 0 && (u++, e.push([])), c.split(" ").forEach((f) => { + f && e[u].push({ content: f, type: a }); + }); + }) : (l.type === "strong" || l.type === "emphasis") && l.children.forEach((m) => { + i(m, l.type); + }); + } + return t.forEach((l) => { + l.type === "paragraph" && l.children.forEach((a) => { + i(a); + }); + }), e; +} +function _r(n) { + const { children: r } = mt(n); + function t(e) { + return e.type === "text" ? e.value.replace(/\n/g, "
") : e.type === "strong" ? `${e.children.map(t).join("")}` : e.type === "emphasis" ? `${e.children.map(t).join("")}` : e.type === "paragraph" ? `

${e.children.map(t).join("")}

` : `Unsupported markdown: ${e.type}`; + } + return r.map(t).join(""); +} +function Mr(n) { + return Intl.Segmenter ? [...new Intl.Segmenter().segment(n)].map((r) => r.segment) : [...n]; +} +function jr(n, r) { + const t = Mr(r.content); + return gt(n, [], t, r.type); +} +function gt(n, r, t, e) { + if (t.length === 0) + return [ + { content: r.join(""), type: e }, + { content: "", type: e } + ]; + const [u, ...i] = t, l = [...r, u]; + return n([{ content: l.join(""), type: e }]) ? gt(n, l, i, e) : (r.length === 0 && u && (r.push(u), t.shift()), [ + { content: r.join(""), type: e }, + { content: t.join(""), type: e } + ]); +} +function Rr(n, r) { + if (n.some(({ content: t }) => t.includes(` +`))) + throw new Error("splitLineToFitWidth does not support newlines in the line"); + return Bn(n, r); +} +function Bn(n, r, t = [], e = []) { + if (n.length === 0) + return e.length > 0 && t.push(e), t.length > 0 ? t : []; + let u = ""; + n[0].content === " " && (u = " ", n.shift()); + const i = n.shift() ?? { content: " ", type: "normal" }, l = [...e]; + if (u !== "" && l.push({ content: u, type: "normal" }), l.push(i), r(l)) + return Bn(n, r, t, l); + if (e.length > 0) + t.push(e), n.unshift(i); + else if (i.content) { + const [a, m] = jr(r, i); + t.push([a]), m.content && n.unshift(m); + } + return Bn(n, r, t); +} +function qr(n, r) { + r && n.attr("style", r); +} +function Hr(n, r, t, e, u = !1) { + const i = n.append("foreignObject"), l = i.append("xhtml:div"), a = r.label, m = r.isNode ? "nodeLabel" : "edgeLabel"; + l.html( + ` + " + a + "" + ), qr(l, r.labelStyle), l.style("display", "table-cell"), l.style("white-space", "nowrap"), l.style("max-width", t + "px"), l.attr("xmlns", "http://www.w3.org/1999/xhtml"), u && l.attr("class", "labelBkg"); + let c = l.node().getBoundingClientRect(); + return c.width === t && (l.style("display", "table"), l.style("white-space", "break-spaces"), l.style("width", t + "px"), c = l.node().getBoundingClientRect()), i.style("width", c.width), i.style("height", c.height), i.node(); +} +function Pn(n, r, t) { + return n.append("tspan").attr("class", "text-outer-tspan").attr("x", 0).attr("y", r * t - 0.1 + "em").attr("dy", t + "em"); +} +function Nr(n, r, t) { + const e = n.append("text"), u = Pn(e, 1, r); + _n(u, t); + const i = u.node().getComputedTextLength(); + return e.remove(), i; +} +function Qr(n, r, t) { + var l; + const e = n.append("text"), u = Pn(e, 1, r); + _n(u, [{ content: t, type: "normal" }]); + const i = (l = u.node()) == null ? void 0 : l.getBoundingClientRect(); + return i && e.remove(), i; +} +function Vr(n, r, t, e = !1) { + const i = r.append("g"), l = i.insert("rect").attr("class", "background"), a = i.append("text").attr("y", "-10.1"); + let m = 0; + for (const c of t) { + const p = (x) => Nr(i, 1.1, x) <= n, f = p(c) ? [c] : Rr(c, p); + for (const x of f) { + const h = Pn(a, m, 1.1); + _n(h, x), m++; + } + } + if (e) { + const c = a.node().getBBox(), p = 2; + return l.attr("x", -p).attr("y", -p).attr("width", c.width + 2 * p).attr("height", c.height + 2 * p), i.node(); + } else + return a.node(); +} +function _n(n, r) { + n.text(""), r.forEach((t, e) => { + const u = n.append("tspan").attr("font-style", t.type === "emphasis" ? "italic" : "normal").attr("class", "text-inner-tspan").attr("font-weight", t.type === "strong" ? "bold" : "normal"); + e === 0 ? u.text(t.content) : u.text(" " + t.content); + }); +} +const Ur = (n, r = "", { + style: t = "", + isTitle: e = !1, + classes: u = "", + useHtmlLabels: i = !0, + isNode: l = !0, + width: a = 200, + addSvgBackground: m = !1 +} = {}) => { + if (zt.info("createText", r, t, e, u, i, l, m), i) { + const c = _r(r), p = { + isNode: l, + label: It(c).replace( + /fa[blrs]?:fa-[\w-]+/g, + // cspell: disable-line + (x) => `` + ), + labelStyle: t.replace("fill:", "color:") + }; + return Hr(n, p, a, u, m); + } else { + const c = Pr(r); + return Vr(a, n, c, m); + } +}; +export { + Ur as a, + Qr as c +}; diff --git a/assets/lib/mermaid/createText-b70fe78a.js b/assets/lib/mermaid/createText-b70fe78a.js new file mode 100644 index 000000000..2b6e8ff15 --- /dev/null +++ b/assets/lib/mermaid/createText-b70fe78a.js @@ -0,0 +1,4929 @@ +import { b8 as dedent, l as log, b7 as decodeEntities } from "./mermaid-dcacb631.js"; +const emptyOptions = {}; +function toString(value, options) { + const settings = options || emptyOptions; + const includeImageAlt = typeof settings.includeImageAlt === "boolean" ? settings.includeImageAlt : true; + const includeHtml = typeof settings.includeHtml === "boolean" ? settings.includeHtml : true; + return one(value, includeImageAlt, includeHtml); +} +function one(value, includeImageAlt, includeHtml) { + if (node(value)) { + if ("value" in value) { + return value.type === "html" && !includeHtml ? "" : value.value; + } + if (includeImageAlt && "alt" in value && value.alt) { + return value.alt; + } + if ("children" in value) { + return all(value.children, includeImageAlt, includeHtml); + } + } + if (Array.isArray(value)) { + return all(value, includeImageAlt, includeHtml); + } + return ""; +} +function all(values, includeImageAlt, includeHtml) { + const result = []; + let index2 = -1; + while (++index2 < values.length) { + result[index2] = one(values[index2], includeImageAlt, includeHtml); + } + return result.join(""); +} +function node(value) { + return Boolean(value && typeof value === "object"); +} +function splice(list2, start, remove, items) { + const end = list2.length; + let chunkStart = 0; + let parameters; + if (start < 0) { + start = -start > end ? 0 : end + start; + } else { + start = start > end ? end : start; + } + remove = remove > 0 ? remove : 0; + if (items.length < 1e4) { + parameters = Array.from(items); + parameters.unshift(start, remove); + list2.splice(...parameters); + } else { + if (remove) + list2.splice(start, remove); + while (chunkStart < items.length) { + parameters = items.slice(chunkStart, chunkStart + 1e4); + parameters.unshift(start, 0); + list2.splice(...parameters); + chunkStart += 1e4; + start += 1e4; + } + } +} +function push(list2, items) { + if (list2.length > 0) { + splice(list2, list2.length, 0, items); + return list2; + } + return items; +} +const hasOwnProperty = {}.hasOwnProperty; +function combineExtensions(extensions) { + const all2 = {}; + let index2 = -1; + while (++index2 < extensions.length) { + syntaxExtension(all2, extensions[index2]); + } + return all2; +} +function syntaxExtension(all2, extension2) { + let hook; + for (hook in extension2) { + const maybe = hasOwnProperty.call(all2, hook) ? all2[hook] : void 0; + const left = maybe || (all2[hook] = {}); + const right = extension2[hook]; + let code; + if (right) { + for (code in right) { + if (!hasOwnProperty.call(left, code)) + left[code] = []; + const value = right[code]; + constructs( + // @ts-expect-error Looks like a list. + left[code], + Array.isArray(value) ? value : value ? [value] : [] + ); + } + } + } +} +function constructs(existing, list2) { + let index2 = -1; + const before = []; + while (++index2 < list2.length) { + (list2[index2].add === "after" ? existing : before).push(list2[index2]); + } + splice(existing, 0, 0, before); +} +const unicodePunctuationRegex = /[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/; +const asciiAlpha = regexCheck(/[A-Za-z]/); +const asciiAlphanumeric = regexCheck(/[\dA-Za-z]/); +const asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/); +function asciiControl(code) { + return ( + // Special whitespace codes (which have negative values), C0 and Control + // character DEL + code !== null && (code < 32 || code === 127) + ); +} +const asciiDigit = regexCheck(/\d/); +const asciiHexDigit = regexCheck(/[\dA-Fa-f]/); +const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/); +function markdownLineEnding(code) { + return code !== null && code < -2; +} +function markdownLineEndingOrSpace(code) { + return code !== null && (code < 0 || code === 32); +} +function markdownSpace(code) { + return code === -2 || code === -1 || code === 32; +} +const unicodePunctuation = regexCheck(unicodePunctuationRegex); +const unicodeWhitespace = regexCheck(/\s/); +function regexCheck(regex) { + return check; + function check(code) { + return code !== null && regex.test(String.fromCharCode(code)); + } +} +function factorySpace(effects, ok, type, max) { + const limit = max ? max - 1 : Number.POSITIVE_INFINITY; + let size = 0; + return start; + function start(code) { + if (markdownSpace(code)) { + effects.enter(type); + return prefix(code); + } + return ok(code); + } + function prefix(code) { + if (markdownSpace(code) && size++ < limit) { + effects.consume(code); + return prefix; + } + effects.exit(type); + return ok(code); + } +} +const content$1 = { + tokenize: initializeContent +}; +function initializeContent(effects) { + const contentStart = effects.attempt( + this.parser.constructs.contentInitial, + afterContentStartConstruct, + paragraphInitial + ); + let previous2; + return contentStart; + function afterContentStartConstruct(code) { + if (code === null) { + effects.consume(code); + return; + } + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + return factorySpace(effects, contentStart, "linePrefix"); + } + function paragraphInitial(code) { + effects.enter("paragraph"); + return lineStart(code); + } + function lineStart(code) { + const token = effects.enter("chunkText", { + contentType: "text", + previous: previous2 + }); + if (previous2) { + previous2.next = token; + } + previous2 = token; + return data(code); + } + function data(code) { + if (code === null) { + effects.exit("chunkText"); + effects.exit("paragraph"); + effects.consume(code); + return; + } + if (markdownLineEnding(code)) { + effects.consume(code); + effects.exit("chunkText"); + return lineStart; + } + effects.consume(code); + return data; + } +} +const document$2 = { + tokenize: initializeDocument +}; +const containerConstruct = { + tokenize: tokenizeContainer +}; +function initializeDocument(effects) { + const self = this; + const stack = []; + let continued = 0; + let childFlow; + let childToken; + let lineStartOffset; + return start; + function start(code) { + if (continued < stack.length) { + const item = stack[continued]; + self.containerState = item[1]; + return effects.attempt( + item[0].continuation, + documentContinue, + checkNewContainers + )(code); + } + return checkNewContainers(code); + } + function documentContinue(code) { + continued++; + if (self.containerState._closeFlow) { + self.containerState._closeFlow = void 0; + if (childFlow) { + closeFlow(); + } + const indexBeforeExits = self.events.length; + let indexBeforeFlow = indexBeforeExits; + let point2; + while (indexBeforeFlow--) { + if (self.events[indexBeforeFlow][0] === "exit" && self.events[indexBeforeFlow][1].type === "chunkFlow") { + point2 = self.events[indexBeforeFlow][1].end; + break; + } + } + exitContainers(continued); + let index2 = indexBeforeExits; + while (index2 < self.events.length) { + self.events[index2][1].end = Object.assign({}, point2); + index2++; + } + splice( + self.events, + indexBeforeFlow + 1, + 0, + self.events.slice(indexBeforeExits) + ); + self.events.length = index2; + return checkNewContainers(code); + } + return start(code); + } + function checkNewContainers(code) { + if (continued === stack.length) { + if (!childFlow) { + return documentContinued(code); + } + if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) { + return flowStart(code); + } + self.interrupt = Boolean( + childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack + ); + } + self.containerState = {}; + return effects.check( + containerConstruct, + thereIsANewContainer, + thereIsNoNewContainer + )(code); + } + function thereIsANewContainer(code) { + if (childFlow) + closeFlow(); + exitContainers(continued); + return documentContinued(code); + } + function thereIsNoNewContainer(code) { + self.parser.lazy[self.now().line] = continued !== stack.length; + lineStartOffset = self.now().offset; + return flowStart(code); + } + function documentContinued(code) { + self.containerState = {}; + return effects.attempt( + containerConstruct, + containerContinue, + flowStart + )(code); + } + function containerContinue(code) { + continued++; + stack.push([self.currentConstruct, self.containerState]); + return documentContinued(code); + } + function flowStart(code) { + if (code === null) { + if (childFlow) + closeFlow(); + exitContainers(0); + effects.consume(code); + return; + } + childFlow = childFlow || self.parser.flow(self.now()); + effects.enter("chunkFlow", { + contentType: "flow", + previous: childToken, + _tokenizer: childFlow + }); + return flowContinue(code); + } + function flowContinue(code) { + if (code === null) { + writeToChild(effects.exit("chunkFlow"), true); + exitContainers(0); + effects.consume(code); + return; + } + if (markdownLineEnding(code)) { + effects.consume(code); + writeToChild(effects.exit("chunkFlow")); + continued = 0; + self.interrupt = void 0; + return start; + } + effects.consume(code); + return flowContinue; + } + function writeToChild(token, eof) { + const stream = self.sliceStream(token); + if (eof) + stream.push(null); + token.previous = childToken; + if (childToken) + childToken.next = token; + childToken = token; + childFlow.defineSkip(token.start); + childFlow.write(stream); + if (self.parser.lazy[token.start.line]) { + let index2 = childFlow.events.length; + while (index2--) { + if ( + // The token starts before the line ending… + childFlow.events[index2][1].start.offset < lineStartOffset && // …and either is not ended yet… + (!childFlow.events[index2][1].end || // …or ends after it. + childFlow.events[index2][1].end.offset > lineStartOffset) + ) { + return; + } + } + const indexBeforeExits = self.events.length; + let indexBeforeFlow = indexBeforeExits; + let seen; + let point2; + while (indexBeforeFlow--) { + if (self.events[indexBeforeFlow][0] === "exit" && self.events[indexBeforeFlow][1].type === "chunkFlow") { + if (seen) { + point2 = self.events[indexBeforeFlow][1].end; + break; + } + seen = true; + } + } + exitContainers(continued); + index2 = indexBeforeExits; + while (index2 < self.events.length) { + self.events[index2][1].end = Object.assign({}, point2); + index2++; + } + splice( + self.events, + indexBeforeFlow + 1, + 0, + self.events.slice(indexBeforeExits) + ); + self.events.length = index2; + } + } + function exitContainers(size) { + let index2 = stack.length; + while (index2-- > size) { + const entry = stack[index2]; + self.containerState = entry[1]; + entry[0].exit.call(self, effects); + } + stack.length = size; + } + function closeFlow() { + childFlow.write([null]); + childToken = void 0; + childFlow = void 0; + self.containerState._closeFlow = void 0; + } +} +function tokenizeContainer(effects, ok, nok) { + return factorySpace( + effects, + effects.attempt(this.parser.constructs.document, ok, nok), + "linePrefix", + this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + ); +} +function classifyCharacter(code) { + if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) { + return 1; + } + if (unicodePunctuation(code)) { + return 2; + } +} +function resolveAll(constructs2, events, context) { + const called = []; + let index2 = -1; + while (++index2 < constructs2.length) { + const resolve = constructs2[index2].resolveAll; + if (resolve && !called.includes(resolve)) { + events = resolve(events, context); + called.push(resolve); + } + } + return events; +} +const attention = { + name: "attention", + tokenize: tokenizeAttention, + resolveAll: resolveAllAttention +}; +function resolveAllAttention(events, context) { + let index2 = -1; + let open; + let group; + let text2; + let openingSequence; + let closingSequence; + let use; + let nextEvents; + let offset; + while (++index2 < events.length) { + if (events[index2][0] === "enter" && events[index2][1].type === "attentionSequence" && events[index2][1]._close) { + open = index2; + while (open--) { + if (events[open][0] === "exit" && events[open][1].type === "attentionSequence" && events[open][1]._open && // If the markers are the same: + context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index2][1]).charCodeAt(0)) { + if ((events[open][1]._close || events[index2][1]._open) && (events[index2][1].end.offset - events[index2][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index2][1].end.offset - events[index2][1].start.offset) % 3)) { + continue; + } + use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index2][1].end.offset - events[index2][1].start.offset > 1 ? 2 : 1; + const start = Object.assign({}, events[open][1].end); + const end = Object.assign({}, events[index2][1].start); + movePoint(start, -use); + movePoint(end, use); + openingSequence = { + type: use > 1 ? "strongSequence" : "emphasisSequence", + start, + end: Object.assign({}, events[open][1].end) + }; + closingSequence = { + type: use > 1 ? "strongSequence" : "emphasisSequence", + start: Object.assign({}, events[index2][1].start), + end + }; + text2 = { + type: use > 1 ? "strongText" : "emphasisText", + start: Object.assign({}, events[open][1].end), + end: Object.assign({}, events[index2][1].start) + }; + group = { + type: use > 1 ? "strong" : "emphasis", + start: Object.assign({}, openingSequence.start), + end: Object.assign({}, closingSequence.end) + }; + events[open][1].end = Object.assign({}, openingSequence.start); + events[index2][1].start = Object.assign({}, closingSequence.end); + nextEvents = []; + if (events[open][1].end.offset - events[open][1].start.offset) { + nextEvents = push(nextEvents, [ + ["enter", events[open][1], context], + ["exit", events[open][1], context] + ]); + } + nextEvents = push(nextEvents, [ + ["enter", group, context], + ["enter", openingSequence, context], + ["exit", openingSequence, context], + ["enter", text2, context] + ]); + nextEvents = push( + nextEvents, + resolveAll( + context.parser.constructs.insideSpan.null, + events.slice(open + 1, index2), + context + ) + ); + nextEvents = push(nextEvents, [ + ["exit", text2, context], + ["enter", closingSequence, context], + ["exit", closingSequence, context], + ["exit", group, context] + ]); + if (events[index2][1].end.offset - events[index2][1].start.offset) { + offset = 2; + nextEvents = push(nextEvents, [ + ["enter", events[index2][1], context], + ["exit", events[index2][1], context] + ]); + } else { + offset = 0; + } + splice(events, open - 1, index2 - open + 3, nextEvents); + index2 = open + nextEvents.length - offset - 2; + break; + } + } + } + } + index2 = -1; + while (++index2 < events.length) { + if (events[index2][1].type === "attentionSequence") { + events[index2][1].type = "data"; + } + } + return events; +} +function tokenizeAttention(effects, ok) { + const attentionMarkers2 = this.parser.constructs.attentionMarkers.null; + const previous2 = this.previous; + const before = classifyCharacter(previous2); + let marker; + return start; + function start(code) { + marker = code; + effects.enter("attentionSequence"); + return inside(code); + } + function inside(code) { + if (code === marker) { + effects.consume(code); + return inside; + } + const token = effects.exit("attentionSequence"); + const after = classifyCharacter(code); + const open = !after || after === 2 && before || attentionMarkers2.includes(code); + const close = !before || before === 2 && after || attentionMarkers2.includes(previous2); + token._open = Boolean(marker === 42 ? open : open && (before || !close)); + token._close = Boolean(marker === 42 ? close : close && (after || !open)); + return ok(code); + } +} +function movePoint(point2, offset) { + point2.column += offset; + point2.offset += offset; + point2._bufferIndex += offset; +} +const autolink = { + name: "autolink", + tokenize: tokenizeAutolink +}; +function tokenizeAutolink(effects, ok, nok) { + let size = 0; + return start; + function start(code) { + effects.enter("autolink"); + effects.enter("autolinkMarker"); + effects.consume(code); + effects.exit("autolinkMarker"); + effects.enter("autolinkProtocol"); + return open; + } + function open(code) { + if (asciiAlpha(code)) { + effects.consume(code); + return schemeOrEmailAtext; + } + return emailAtext(code); + } + function schemeOrEmailAtext(code) { + if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) { + size = 1; + return schemeInsideOrEmailAtext(code); + } + return emailAtext(code); + } + function schemeInsideOrEmailAtext(code) { + if (code === 58) { + effects.consume(code); + size = 0; + return urlInside; + } + if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) { + effects.consume(code); + return schemeInsideOrEmailAtext; + } + size = 0; + return emailAtext(code); + } + function urlInside(code) { + if (code === 62) { + effects.exit("autolinkProtocol"); + effects.enter("autolinkMarker"); + effects.consume(code); + effects.exit("autolinkMarker"); + effects.exit("autolink"); + return ok; + } + if (code === null || code === 32 || code === 60 || asciiControl(code)) { + return nok(code); + } + effects.consume(code); + return urlInside; + } + function emailAtext(code) { + if (code === 64) { + effects.consume(code); + return emailAtSignOrDot; + } + if (asciiAtext(code)) { + effects.consume(code); + return emailAtext; + } + return nok(code); + } + function emailAtSignOrDot(code) { + return asciiAlphanumeric(code) ? emailLabel(code) : nok(code); + } + function emailLabel(code) { + if (code === 46) { + effects.consume(code); + size = 0; + return emailAtSignOrDot; + } + if (code === 62) { + effects.exit("autolinkProtocol").type = "autolinkEmail"; + effects.enter("autolinkMarker"); + effects.consume(code); + effects.exit("autolinkMarker"); + effects.exit("autolink"); + return ok; + } + return emailValue(code); + } + function emailValue(code) { + if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) { + const next = code === 45 ? emailValue : emailLabel; + effects.consume(code); + return next; + } + return nok(code); + } +} +const blankLine = { + tokenize: tokenizeBlankLine, + partial: true +}; +function tokenizeBlankLine(effects, ok, nok) { + return start; + function start(code) { + return markdownSpace(code) ? factorySpace(effects, after, "linePrefix")(code) : after(code); + } + function after(code) { + return code === null || markdownLineEnding(code) ? ok(code) : nok(code); + } +} +const blockQuote = { + name: "blockQuote", + tokenize: tokenizeBlockQuoteStart, + continuation: { + tokenize: tokenizeBlockQuoteContinuation + }, + exit +}; +function tokenizeBlockQuoteStart(effects, ok, nok) { + const self = this; + return start; + function start(code) { + if (code === 62) { + const state = self.containerState; + if (!state.open) { + effects.enter("blockQuote", { + _container: true + }); + state.open = true; + } + effects.enter("blockQuotePrefix"); + effects.enter("blockQuoteMarker"); + effects.consume(code); + effects.exit("blockQuoteMarker"); + return after; + } + return nok(code); + } + function after(code) { + if (markdownSpace(code)) { + effects.enter("blockQuotePrefixWhitespace"); + effects.consume(code); + effects.exit("blockQuotePrefixWhitespace"); + effects.exit("blockQuotePrefix"); + return ok; + } + effects.exit("blockQuotePrefix"); + return ok(code); + } +} +function tokenizeBlockQuoteContinuation(effects, ok, nok) { + const self = this; + return contStart; + function contStart(code) { + if (markdownSpace(code)) { + return factorySpace( + effects, + contBefore, + "linePrefix", + self.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + )(code); + } + return contBefore(code); + } + function contBefore(code) { + return effects.attempt(blockQuote, ok, nok)(code); + } +} +function exit(effects) { + effects.exit("blockQuote"); +} +const characterEscape = { + name: "characterEscape", + tokenize: tokenizeCharacterEscape +}; +function tokenizeCharacterEscape(effects, ok, nok) { + return start; + function start(code) { + effects.enter("characterEscape"); + effects.enter("escapeMarker"); + effects.consume(code); + effects.exit("escapeMarker"); + return inside; + } + function inside(code) { + if (asciiPunctuation(code)) { + effects.enter("characterEscapeValue"); + effects.consume(code); + effects.exit("characterEscapeValue"); + effects.exit("characterEscape"); + return ok; + } + return nok(code); + } +} +const element = document.createElement("i"); +function decodeNamedCharacterReference(value) { + const characterReference2 = "&" + value + ";"; + element.innerHTML = characterReference2; + const char = element.textContent; + if (char.charCodeAt(char.length - 1) === 59 && value !== "semi") { + return false; + } + return char === characterReference2 ? false : char; +} +const characterReference = { + name: "characterReference", + tokenize: tokenizeCharacterReference +}; +function tokenizeCharacterReference(effects, ok, nok) { + const self = this; + let size = 0; + let max; + let test; + return start; + function start(code) { + effects.enter("characterReference"); + effects.enter("characterReferenceMarker"); + effects.consume(code); + effects.exit("characterReferenceMarker"); + return open; + } + function open(code) { + if (code === 35) { + effects.enter("characterReferenceMarkerNumeric"); + effects.consume(code); + effects.exit("characterReferenceMarkerNumeric"); + return numeric; + } + effects.enter("characterReferenceValue"); + max = 31; + test = asciiAlphanumeric; + return value(code); + } + function numeric(code) { + if (code === 88 || code === 120) { + effects.enter("characterReferenceMarkerHexadecimal"); + effects.consume(code); + effects.exit("characterReferenceMarkerHexadecimal"); + effects.enter("characterReferenceValue"); + max = 6; + test = asciiHexDigit; + return value; + } + effects.enter("characterReferenceValue"); + max = 7; + test = asciiDigit; + return value(code); + } + function value(code) { + if (code === 59 && size) { + const token = effects.exit("characterReferenceValue"); + if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) { + return nok(code); + } + effects.enter("characterReferenceMarker"); + effects.consume(code); + effects.exit("characterReferenceMarker"); + effects.exit("characterReference"); + return ok; + } + if (test(code) && size++ < max) { + effects.consume(code); + return value; + } + return nok(code); + } +} +const nonLazyContinuation = { + tokenize: tokenizeNonLazyContinuation, + partial: true +}; +const codeFenced = { + name: "codeFenced", + tokenize: tokenizeCodeFenced, + concrete: true +}; +function tokenizeCodeFenced(effects, ok, nok) { + const self = this; + const closeStart = { + tokenize: tokenizeCloseStart, + partial: true + }; + let initialPrefix = 0; + let sizeOpen = 0; + let marker; + return start; + function start(code) { + return beforeSequenceOpen(code); + } + function beforeSequenceOpen(code) { + const tail = self.events[self.events.length - 1]; + initialPrefix = tail && tail[1].type === "linePrefix" ? tail[2].sliceSerialize(tail[1], true).length : 0; + marker = code; + effects.enter("codeFenced"); + effects.enter("codeFencedFence"); + effects.enter("codeFencedFenceSequence"); + return sequenceOpen(code); + } + function sequenceOpen(code) { + if (code === marker) { + sizeOpen++; + effects.consume(code); + return sequenceOpen; + } + if (sizeOpen < 3) { + return nok(code); + } + effects.exit("codeFencedFenceSequence"); + return markdownSpace(code) ? factorySpace(effects, infoBefore, "whitespace")(code) : infoBefore(code); + } + function infoBefore(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit("codeFencedFence"); + return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code); + } + effects.enter("codeFencedFenceInfo"); + effects.enter("chunkString", { + contentType: "string" + }); + return info(code); + } + function info(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit("chunkString"); + effects.exit("codeFencedFenceInfo"); + return infoBefore(code); + } + if (markdownSpace(code)) { + effects.exit("chunkString"); + effects.exit("codeFencedFenceInfo"); + return factorySpace(effects, metaBefore, "whitespace")(code); + } + if (code === 96 && code === marker) { + return nok(code); + } + effects.consume(code); + return info; + } + function metaBefore(code) { + if (code === null || markdownLineEnding(code)) { + return infoBefore(code); + } + effects.enter("codeFencedFenceMeta"); + effects.enter("chunkString", { + contentType: "string" + }); + return meta(code); + } + function meta(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit("chunkString"); + effects.exit("codeFencedFenceMeta"); + return infoBefore(code); + } + if (code === 96 && code === marker) { + return nok(code); + } + effects.consume(code); + return meta; + } + function atNonLazyBreak(code) { + return effects.attempt(closeStart, after, contentBefore)(code); + } + function contentBefore(code) { + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + return contentStart; + } + function contentStart(code) { + return initialPrefix > 0 && markdownSpace(code) ? factorySpace( + effects, + beforeContentChunk, + "linePrefix", + initialPrefix + 1 + )(code) : beforeContentChunk(code); + } + function beforeContentChunk(code) { + if (code === null || markdownLineEnding(code)) { + return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code); + } + effects.enter("codeFlowValue"); + return contentChunk(code); + } + function contentChunk(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit("codeFlowValue"); + return beforeContentChunk(code); + } + effects.consume(code); + return contentChunk; + } + function after(code) { + effects.exit("codeFenced"); + return ok(code); + } + function tokenizeCloseStart(effects2, ok2, nok2) { + let size = 0; + return startBefore; + function startBefore(code) { + effects2.enter("lineEnding"); + effects2.consume(code); + effects2.exit("lineEnding"); + return start2; + } + function start2(code) { + effects2.enter("codeFencedFence"); + return markdownSpace(code) ? factorySpace( + effects2, + beforeSequenceClose, + "linePrefix", + self.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + )(code) : beforeSequenceClose(code); + } + function beforeSequenceClose(code) { + if (code === marker) { + effects2.enter("codeFencedFenceSequence"); + return sequenceClose(code); + } + return nok2(code); + } + function sequenceClose(code) { + if (code === marker) { + size++; + effects2.consume(code); + return sequenceClose; + } + if (size >= sizeOpen) { + effects2.exit("codeFencedFenceSequence"); + return markdownSpace(code) ? factorySpace(effects2, sequenceCloseAfter, "whitespace")(code) : sequenceCloseAfter(code); + } + return nok2(code); + } + function sequenceCloseAfter(code) { + if (code === null || markdownLineEnding(code)) { + effects2.exit("codeFencedFence"); + return ok2(code); + } + return nok2(code); + } + } +} +function tokenizeNonLazyContinuation(effects, ok, nok) { + const self = this; + return start; + function start(code) { + if (code === null) { + return nok(code); + } + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + return lineStart; + } + function lineStart(code) { + return self.parser.lazy[self.now().line] ? nok(code) : ok(code); + } +} +const codeIndented = { + name: "codeIndented", + tokenize: tokenizeCodeIndented +}; +const furtherStart = { + tokenize: tokenizeFurtherStart, + partial: true +}; +function tokenizeCodeIndented(effects, ok, nok) { + const self = this; + return start; + function start(code) { + effects.enter("codeIndented"); + return factorySpace(effects, afterPrefix, "linePrefix", 4 + 1)(code); + } + function afterPrefix(code) { + const tail = self.events[self.events.length - 1]; + return tail && tail[1].type === "linePrefix" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? atBreak(code) : nok(code); + } + function atBreak(code) { + if (code === null) { + return after(code); + } + if (markdownLineEnding(code)) { + return effects.attempt(furtherStart, atBreak, after)(code); + } + effects.enter("codeFlowValue"); + return inside(code); + } + function inside(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit("codeFlowValue"); + return atBreak(code); + } + effects.consume(code); + return inside; + } + function after(code) { + effects.exit("codeIndented"); + return ok(code); + } +} +function tokenizeFurtherStart(effects, ok, nok) { + const self = this; + return furtherStart2; + function furtherStart2(code) { + if (self.parser.lazy[self.now().line]) { + return nok(code); + } + if (markdownLineEnding(code)) { + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + return furtherStart2; + } + return factorySpace(effects, afterPrefix, "linePrefix", 4 + 1)(code); + } + function afterPrefix(code) { + const tail = self.events[self.events.length - 1]; + return tail && tail[1].type === "linePrefix" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok(code) : markdownLineEnding(code) ? furtherStart2(code) : nok(code); + } +} +const codeText = { + name: "codeText", + tokenize: tokenizeCodeText, + resolve: resolveCodeText, + previous +}; +function resolveCodeText(events) { + let tailExitIndex = events.length - 4; + let headEnterIndex = 3; + let index2; + let enter; + if ((events[headEnterIndex][1].type === "lineEnding" || events[headEnterIndex][1].type === "space") && (events[tailExitIndex][1].type === "lineEnding" || events[tailExitIndex][1].type === "space")) { + index2 = headEnterIndex; + while (++index2 < tailExitIndex) { + if (events[index2][1].type === "codeTextData") { + events[headEnterIndex][1].type = "codeTextPadding"; + events[tailExitIndex][1].type = "codeTextPadding"; + headEnterIndex += 2; + tailExitIndex -= 2; + break; + } + } + } + index2 = headEnterIndex - 1; + tailExitIndex++; + while (++index2 <= tailExitIndex) { + if (enter === void 0) { + if (index2 !== tailExitIndex && events[index2][1].type !== "lineEnding") { + enter = index2; + } + } else if (index2 === tailExitIndex || events[index2][1].type === "lineEnding") { + events[enter][1].type = "codeTextData"; + if (index2 !== enter + 2) { + events[enter][1].end = events[index2 - 1][1].end; + events.splice(enter + 2, index2 - enter - 2); + tailExitIndex -= index2 - enter - 2; + index2 = enter + 2; + } + enter = void 0; + } + } + return events; +} +function previous(code) { + return code !== 96 || this.events[this.events.length - 1][1].type === "characterEscape"; +} +function tokenizeCodeText(effects, ok, nok) { + let sizeOpen = 0; + let size; + let token; + return start; + function start(code) { + effects.enter("codeText"); + effects.enter("codeTextSequence"); + return sequenceOpen(code); + } + function sequenceOpen(code) { + if (code === 96) { + effects.consume(code); + sizeOpen++; + return sequenceOpen; + } + effects.exit("codeTextSequence"); + return between(code); + } + function between(code) { + if (code === null) { + return nok(code); + } + if (code === 32) { + effects.enter("space"); + effects.consume(code); + effects.exit("space"); + return between; + } + if (code === 96) { + token = effects.enter("codeTextSequence"); + size = 0; + return sequenceClose(code); + } + if (markdownLineEnding(code)) { + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + return between; + } + effects.enter("codeTextData"); + return data(code); + } + function data(code) { + if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) { + effects.exit("codeTextData"); + return between(code); + } + effects.consume(code); + return data; + } + function sequenceClose(code) { + if (code === 96) { + effects.consume(code); + size++; + return sequenceClose; + } + if (size === sizeOpen) { + effects.exit("codeTextSequence"); + effects.exit("codeText"); + return ok(code); + } + token.type = "codeTextData"; + return data(code); + } +} +function subtokenize(events) { + const jumps = {}; + let index2 = -1; + let event; + let lineIndex; + let otherIndex; + let otherEvent; + let parameters; + let subevents; + let more; + while (++index2 < events.length) { + while (index2 in jumps) { + index2 = jumps[index2]; + } + event = events[index2]; + if (index2 && event[1].type === "chunkFlow" && events[index2 - 1][1].type === "listItemPrefix") { + subevents = event[1]._tokenizer.events; + otherIndex = 0; + if (otherIndex < subevents.length && subevents[otherIndex][1].type === "lineEndingBlank") { + otherIndex += 2; + } + if (otherIndex < subevents.length && subevents[otherIndex][1].type === "content") { + while (++otherIndex < subevents.length) { + if (subevents[otherIndex][1].type === "content") { + break; + } + if (subevents[otherIndex][1].type === "chunkText") { + subevents[otherIndex][1]._isInFirstContentOfListItem = true; + otherIndex++; + } + } + } + } + if (event[0] === "enter") { + if (event[1].contentType) { + Object.assign(jumps, subcontent(events, index2)); + index2 = jumps[index2]; + more = true; + } + } else if (event[1]._container) { + otherIndex = index2; + lineIndex = void 0; + while (otherIndex--) { + otherEvent = events[otherIndex]; + if (otherEvent[1].type === "lineEnding" || otherEvent[1].type === "lineEndingBlank") { + if (otherEvent[0] === "enter") { + if (lineIndex) { + events[lineIndex][1].type = "lineEndingBlank"; + } + otherEvent[1].type = "lineEnding"; + lineIndex = otherIndex; + } + } else { + break; + } + } + if (lineIndex) { + event[1].end = Object.assign({}, events[lineIndex][1].start); + parameters = events.slice(lineIndex, index2); + parameters.unshift(event); + splice(events, lineIndex, index2 - lineIndex + 1, parameters); + } + } + } + return !more; +} +function subcontent(events, eventIndex) { + const token = events[eventIndex][1]; + const context = events[eventIndex][2]; + let startPosition = eventIndex - 1; + const startPositions = []; + const tokenizer = token._tokenizer || context.parser[token.contentType](token.start); + const childEvents = tokenizer.events; + const jumps = []; + const gaps = {}; + let stream; + let previous2; + let index2 = -1; + let current = token; + let adjust = 0; + let start = 0; + const breaks = [start]; + while (current) { + while (events[++startPosition][1] !== current) { + } + startPositions.push(startPosition); + if (!current._tokenizer) { + stream = context.sliceStream(current); + if (!current.next) { + stream.push(null); + } + if (previous2) { + tokenizer.defineSkip(current.start); + } + if (current._isInFirstContentOfListItem) { + tokenizer._gfmTasklistFirstContentOfListItem = true; + } + tokenizer.write(stream); + if (current._isInFirstContentOfListItem) { + tokenizer._gfmTasklistFirstContentOfListItem = void 0; + } + } + previous2 = current; + current = current.next; + } + current = token; + while (++index2 < childEvents.length) { + if ( + // Find a void token that includes a break. + childEvents[index2][0] === "exit" && childEvents[index2 - 1][0] === "enter" && childEvents[index2][1].type === childEvents[index2 - 1][1].type && childEvents[index2][1].start.line !== childEvents[index2][1].end.line + ) { + start = index2 + 1; + breaks.push(start); + current._tokenizer = void 0; + current.previous = void 0; + current = current.next; + } + } + tokenizer.events = []; + if (current) { + current._tokenizer = void 0; + current.previous = void 0; + } else { + breaks.pop(); + } + index2 = breaks.length; + while (index2--) { + const slice = childEvents.slice(breaks[index2], breaks[index2 + 1]); + const start2 = startPositions.pop(); + jumps.unshift([start2, start2 + slice.length - 1]); + splice(events, start2, 2, slice); + } + index2 = -1; + while (++index2 < jumps.length) { + gaps[adjust + jumps[index2][0]] = adjust + jumps[index2][1]; + adjust += jumps[index2][1] - jumps[index2][0] - 1; + } + return gaps; +} +const content = { + tokenize: tokenizeContent, + resolve: resolveContent +}; +const continuationConstruct = { + tokenize: tokenizeContinuation, + partial: true +}; +function resolveContent(events) { + subtokenize(events); + return events; +} +function tokenizeContent(effects, ok) { + let previous2; + return chunkStart; + function chunkStart(code) { + effects.enter("content"); + previous2 = effects.enter("chunkContent", { + contentType: "content" + }); + return chunkInside(code); + } + function chunkInside(code) { + if (code === null) { + return contentEnd(code); + } + if (markdownLineEnding(code)) { + return effects.check( + continuationConstruct, + contentContinue, + contentEnd + )(code); + } + effects.consume(code); + return chunkInside; + } + function contentEnd(code) { + effects.exit("chunkContent"); + effects.exit("content"); + return ok(code); + } + function contentContinue(code) { + effects.consume(code); + effects.exit("chunkContent"); + previous2.next = effects.enter("chunkContent", { + contentType: "content", + previous: previous2 + }); + previous2 = previous2.next; + return chunkInside; + } +} +function tokenizeContinuation(effects, ok, nok) { + const self = this; + return startLookahead; + function startLookahead(code) { + effects.exit("chunkContent"); + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + return factorySpace(effects, prefixed, "linePrefix"); + } + function prefixed(code) { + if (code === null || markdownLineEnding(code)) { + return nok(code); + } + const tail = self.events[self.events.length - 1]; + if (!self.parser.constructs.disable.null.includes("codeIndented") && tail && tail[1].type === "linePrefix" && tail[2].sliceSerialize(tail[1], true).length >= 4) { + return ok(code); + } + return effects.interrupt(self.parser.constructs.flow, nok, ok)(code); + } +} +function factoryDestination(effects, ok, nok, type, literalType, literalMarkerType, rawType, stringType, max) { + const limit = max || Number.POSITIVE_INFINITY; + let balance = 0; + return start; + function start(code) { + if (code === 60) { + effects.enter(type); + effects.enter(literalType); + effects.enter(literalMarkerType); + effects.consume(code); + effects.exit(literalMarkerType); + return enclosedBefore; + } + if (code === null || code === 32 || code === 41 || asciiControl(code)) { + return nok(code); + } + effects.enter(type); + effects.enter(rawType); + effects.enter(stringType); + effects.enter("chunkString", { + contentType: "string" + }); + return raw(code); + } + function enclosedBefore(code) { + if (code === 62) { + effects.enter(literalMarkerType); + effects.consume(code); + effects.exit(literalMarkerType); + effects.exit(literalType); + effects.exit(type); + return ok; + } + effects.enter(stringType); + effects.enter("chunkString", { + contentType: "string" + }); + return enclosed(code); + } + function enclosed(code) { + if (code === 62) { + effects.exit("chunkString"); + effects.exit(stringType); + return enclosedBefore(code); + } + if (code === null || code === 60 || markdownLineEnding(code)) { + return nok(code); + } + effects.consume(code); + return code === 92 ? enclosedEscape : enclosed; + } + function enclosedEscape(code) { + if (code === 60 || code === 62 || code === 92) { + effects.consume(code); + return enclosed; + } + return enclosed(code); + } + function raw(code) { + if (!balance && (code === null || code === 41 || markdownLineEndingOrSpace(code))) { + effects.exit("chunkString"); + effects.exit(stringType); + effects.exit(rawType); + effects.exit(type); + return ok(code); + } + if (balance < limit && code === 40) { + effects.consume(code); + balance++; + return raw; + } + if (code === 41) { + effects.consume(code); + balance--; + return raw; + } + if (code === null || code === 32 || code === 40 || asciiControl(code)) { + return nok(code); + } + effects.consume(code); + return code === 92 ? rawEscape : raw; + } + function rawEscape(code) { + if (code === 40 || code === 41 || code === 92) { + effects.consume(code); + return raw; + } + return raw(code); + } +} +function factoryLabel(effects, ok, nok, type, markerType, stringType) { + const self = this; + let size = 0; + let seen; + return start; + function start(code) { + effects.enter(type); + effects.enter(markerType); + effects.consume(code); + effects.exit(markerType); + effects.enter(stringType); + return atBreak; + } + function atBreak(code) { + if (size > 999 || code === null || code === 91 || code === 93 && !seen || // To do: remove in the future once we’ve switched from + // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`, + // which doesn’t need this. + // Hidden footnotes hook. + /* c8 ignore next 3 */ + code === 94 && !size && "_hiddenFootnoteSupport" in self.parser.constructs) { + return nok(code); + } + if (code === 93) { + effects.exit(stringType); + effects.enter(markerType); + effects.consume(code); + effects.exit(markerType); + effects.exit(type); + return ok; + } + if (markdownLineEnding(code)) { + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + return atBreak; + } + effects.enter("chunkString", { + contentType: "string" + }); + return labelInside(code); + } + function labelInside(code) { + if (code === null || code === 91 || code === 93 || markdownLineEnding(code) || size++ > 999) { + effects.exit("chunkString"); + return atBreak(code); + } + effects.consume(code); + if (!seen) + seen = !markdownSpace(code); + return code === 92 ? labelEscape : labelInside; + } + function labelEscape(code) { + if (code === 91 || code === 92 || code === 93) { + effects.consume(code); + size++; + return labelInside; + } + return labelInside(code); + } +} +function factoryTitle(effects, ok, nok, type, markerType, stringType) { + let marker; + return start; + function start(code) { + if (code === 34 || code === 39 || code === 40) { + effects.enter(type); + effects.enter(markerType); + effects.consume(code); + effects.exit(markerType); + marker = code === 40 ? 41 : code; + return begin; + } + return nok(code); + } + function begin(code) { + if (code === marker) { + effects.enter(markerType); + effects.consume(code); + effects.exit(markerType); + effects.exit(type); + return ok; + } + effects.enter(stringType); + return atBreak(code); + } + function atBreak(code) { + if (code === marker) { + effects.exit(stringType); + return begin(marker); + } + if (code === null) { + return nok(code); + } + if (markdownLineEnding(code)) { + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + return factorySpace(effects, atBreak, "linePrefix"); + } + effects.enter("chunkString", { + contentType: "string" + }); + return inside(code); + } + function inside(code) { + if (code === marker || code === null || markdownLineEnding(code)) { + effects.exit("chunkString"); + return atBreak(code); + } + effects.consume(code); + return code === 92 ? escape : inside; + } + function escape(code) { + if (code === marker || code === 92) { + effects.consume(code); + return inside; + } + return inside(code); + } +} +function factoryWhitespace(effects, ok) { + let seen; + return start; + function start(code) { + if (markdownLineEnding(code)) { + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + seen = true; + return start; + } + if (markdownSpace(code)) { + return factorySpace( + effects, + start, + seen ? "linePrefix" : "lineSuffix" + )(code); + } + return ok(code); + } +} +function normalizeIdentifier(value) { + return value.replace(/[\t\n\r ]+/g, " ").replace(/^ | $/g, "").toLowerCase().toUpperCase(); +} +const definition = { + name: "definition", + tokenize: tokenizeDefinition +}; +const titleBefore = { + tokenize: tokenizeTitleBefore, + partial: true +}; +function tokenizeDefinition(effects, ok, nok) { + const self = this; + let identifier; + return start; + function start(code) { + effects.enter("definition"); + return before(code); + } + function before(code) { + return factoryLabel.call( + self, + effects, + labelAfter, + // Note: we don’t need to reset the way `markdown-rs` does. + nok, + "definitionLabel", + "definitionLabelMarker", + "definitionLabelString" + )(code); + } + function labelAfter(code) { + identifier = normalizeIdentifier( + self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1) + ); + if (code === 58) { + effects.enter("definitionMarker"); + effects.consume(code); + effects.exit("definitionMarker"); + return markerAfter; + } + return nok(code); + } + function markerAfter(code) { + return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, destinationBefore)(code) : destinationBefore(code); + } + function destinationBefore(code) { + return factoryDestination( + effects, + destinationAfter, + // Note: we don’t need to reset the way `markdown-rs` does. + nok, + "definitionDestination", + "definitionDestinationLiteral", + "definitionDestinationLiteralMarker", + "definitionDestinationRaw", + "definitionDestinationString" + )(code); + } + function destinationAfter(code) { + return effects.attempt(titleBefore, after, after)(code); + } + function after(code) { + return markdownSpace(code) ? factorySpace(effects, afterWhitespace, "whitespace")(code) : afterWhitespace(code); + } + function afterWhitespace(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit("definition"); + self.parser.defined.push(identifier); + return ok(code); + } + return nok(code); + } +} +function tokenizeTitleBefore(effects, ok, nok) { + return titleBefore2; + function titleBefore2(code) { + return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, beforeMarker)(code) : nok(code); + } + function beforeMarker(code) { + return factoryTitle( + effects, + titleAfter, + nok, + "definitionTitle", + "definitionTitleMarker", + "definitionTitleString" + )(code); + } + function titleAfter(code) { + return markdownSpace(code) ? factorySpace(effects, titleAfterOptionalWhitespace, "whitespace")(code) : titleAfterOptionalWhitespace(code); + } + function titleAfterOptionalWhitespace(code) { + return code === null || markdownLineEnding(code) ? ok(code) : nok(code); + } +} +const hardBreakEscape = { + name: "hardBreakEscape", + tokenize: tokenizeHardBreakEscape +}; +function tokenizeHardBreakEscape(effects, ok, nok) { + return start; + function start(code) { + effects.enter("hardBreakEscape"); + effects.consume(code); + return after; + } + function after(code) { + if (markdownLineEnding(code)) { + effects.exit("hardBreakEscape"); + return ok(code); + } + return nok(code); + } +} +const headingAtx = { + name: "headingAtx", + tokenize: tokenizeHeadingAtx, + resolve: resolveHeadingAtx +}; +function resolveHeadingAtx(events, context) { + let contentEnd = events.length - 2; + let contentStart = 3; + let content2; + let text2; + if (events[contentStart][1].type === "whitespace") { + contentStart += 2; + } + if (contentEnd - 2 > contentStart && events[contentEnd][1].type === "whitespace") { + contentEnd -= 2; + } + if (events[contentEnd][1].type === "atxHeadingSequence" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === "whitespace")) { + contentEnd -= contentStart + 1 === contentEnd ? 2 : 4; + } + if (contentEnd > contentStart) { + content2 = { + type: "atxHeadingText", + start: events[contentStart][1].start, + end: events[contentEnd][1].end + }; + text2 = { + type: "chunkText", + start: events[contentStart][1].start, + end: events[contentEnd][1].end, + contentType: "text" + }; + splice(events, contentStart, contentEnd - contentStart + 1, [ + ["enter", content2, context], + ["enter", text2, context], + ["exit", text2, context], + ["exit", content2, context] + ]); + } + return events; +} +function tokenizeHeadingAtx(effects, ok, nok) { + let size = 0; + return start; + function start(code) { + effects.enter("atxHeading"); + return before(code); + } + function before(code) { + effects.enter("atxHeadingSequence"); + return sequenceOpen(code); + } + function sequenceOpen(code) { + if (code === 35 && size++ < 6) { + effects.consume(code); + return sequenceOpen; + } + if (code === null || markdownLineEndingOrSpace(code)) { + effects.exit("atxHeadingSequence"); + return atBreak(code); + } + return nok(code); + } + function atBreak(code) { + if (code === 35) { + effects.enter("atxHeadingSequence"); + return sequenceFurther(code); + } + if (code === null || markdownLineEnding(code)) { + effects.exit("atxHeading"); + return ok(code); + } + if (markdownSpace(code)) { + return factorySpace(effects, atBreak, "whitespace")(code); + } + effects.enter("atxHeadingText"); + return data(code); + } + function sequenceFurther(code) { + if (code === 35) { + effects.consume(code); + return sequenceFurther; + } + effects.exit("atxHeadingSequence"); + return atBreak(code); + } + function data(code) { + if (code === null || code === 35 || markdownLineEndingOrSpace(code)) { + effects.exit("atxHeadingText"); + return atBreak(code); + } + effects.consume(code); + return data; + } +} +const htmlBlockNames = [ + "address", + "article", + "aside", + "base", + "basefont", + "blockquote", + "body", + "caption", + "center", + "col", + "colgroup", + "dd", + "details", + "dialog", + "dir", + "div", + "dl", + "dt", + "fieldset", + "figcaption", + "figure", + "footer", + "form", + "frame", + "frameset", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "head", + "header", + "hr", + "html", + "iframe", + "legend", + "li", + "link", + "main", + "menu", + "menuitem", + "nav", + "noframes", + "ol", + "optgroup", + "option", + "p", + "param", + "search", + "section", + "summary", + "table", + "tbody", + "td", + "tfoot", + "th", + "thead", + "title", + "tr", + "track", + "ul" +]; +const htmlRawNames = ["pre", "script", "style", "textarea"]; +const htmlFlow = { + name: "htmlFlow", + tokenize: tokenizeHtmlFlow, + resolveTo: resolveToHtmlFlow, + concrete: true +}; +const blankLineBefore = { + tokenize: tokenizeBlankLineBefore, + partial: true +}; +const nonLazyContinuationStart = { + tokenize: tokenizeNonLazyContinuationStart, + partial: true +}; +function resolveToHtmlFlow(events) { + let index2 = events.length; + while (index2--) { + if (events[index2][0] === "enter" && events[index2][1].type === "htmlFlow") { + break; + } + } + if (index2 > 1 && events[index2 - 2][1].type === "linePrefix") { + events[index2][1].start = events[index2 - 2][1].start; + events[index2 + 1][1].start = events[index2 - 2][1].start; + events.splice(index2 - 2, 2); + } + return events; +} +function tokenizeHtmlFlow(effects, ok, nok) { + const self = this; + let marker; + let closingTag; + let buffer; + let index2; + let markerB; + return start; + function start(code) { + return before(code); + } + function before(code) { + effects.enter("htmlFlow"); + effects.enter("htmlFlowData"); + effects.consume(code); + return open; + } + function open(code) { + if (code === 33) { + effects.consume(code); + return declarationOpen; + } + if (code === 47) { + effects.consume(code); + closingTag = true; + return tagCloseStart; + } + if (code === 63) { + effects.consume(code); + marker = 3; + return self.interrupt ? ok : continuationDeclarationInside; + } + if (asciiAlpha(code)) { + effects.consume(code); + buffer = String.fromCharCode(code); + return tagName; + } + return nok(code); + } + function declarationOpen(code) { + if (code === 45) { + effects.consume(code); + marker = 2; + return commentOpenInside; + } + if (code === 91) { + effects.consume(code); + marker = 5; + index2 = 0; + return cdataOpenInside; + } + if (asciiAlpha(code)) { + effects.consume(code); + marker = 4; + return self.interrupt ? ok : continuationDeclarationInside; + } + return nok(code); + } + function commentOpenInside(code) { + if (code === 45) { + effects.consume(code); + return self.interrupt ? ok : continuationDeclarationInside; + } + return nok(code); + } + function cdataOpenInside(code) { + const value = "CDATA["; + if (code === value.charCodeAt(index2++)) { + effects.consume(code); + if (index2 === value.length) { + return self.interrupt ? ok : continuation; + } + return cdataOpenInside; + } + return nok(code); + } + function tagCloseStart(code) { + if (asciiAlpha(code)) { + effects.consume(code); + buffer = String.fromCharCode(code); + return tagName; + } + return nok(code); + } + function tagName(code) { + if (code === null || code === 47 || code === 62 || markdownLineEndingOrSpace(code)) { + const slash = code === 47; + const name = buffer.toLowerCase(); + if (!slash && !closingTag && htmlRawNames.includes(name)) { + marker = 1; + return self.interrupt ? ok(code) : continuation(code); + } + if (htmlBlockNames.includes(buffer.toLowerCase())) { + marker = 6; + if (slash) { + effects.consume(code); + return basicSelfClosing; + } + return self.interrupt ? ok(code) : continuation(code); + } + marker = 7; + return self.interrupt && !self.parser.lazy[self.now().line] ? nok(code) : closingTag ? completeClosingTagAfter(code) : completeAttributeNameBefore(code); + } + if (code === 45 || asciiAlphanumeric(code)) { + effects.consume(code); + buffer += String.fromCharCode(code); + return tagName; + } + return nok(code); + } + function basicSelfClosing(code) { + if (code === 62) { + effects.consume(code); + return self.interrupt ? ok : continuation; + } + return nok(code); + } + function completeClosingTagAfter(code) { + if (markdownSpace(code)) { + effects.consume(code); + return completeClosingTagAfter; + } + return completeEnd(code); + } + function completeAttributeNameBefore(code) { + if (code === 47) { + effects.consume(code); + return completeEnd; + } + if (code === 58 || code === 95 || asciiAlpha(code)) { + effects.consume(code); + return completeAttributeName; + } + if (markdownSpace(code)) { + effects.consume(code); + return completeAttributeNameBefore; + } + return completeEnd(code); + } + function completeAttributeName(code) { + if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) { + effects.consume(code); + return completeAttributeName; + } + return completeAttributeNameAfter(code); + } + function completeAttributeNameAfter(code) { + if (code === 61) { + effects.consume(code); + return completeAttributeValueBefore; + } + if (markdownSpace(code)) { + effects.consume(code); + return completeAttributeNameAfter; + } + return completeAttributeNameBefore(code); + } + function completeAttributeValueBefore(code) { + if (code === null || code === 60 || code === 61 || code === 62 || code === 96) { + return nok(code); + } + if (code === 34 || code === 39) { + effects.consume(code); + markerB = code; + return completeAttributeValueQuoted; + } + if (markdownSpace(code)) { + effects.consume(code); + return completeAttributeValueBefore; + } + return completeAttributeValueUnquoted(code); + } + function completeAttributeValueQuoted(code) { + if (code === markerB) { + effects.consume(code); + markerB = null; + return completeAttributeValueQuotedAfter; + } + if (code === null || markdownLineEnding(code)) { + return nok(code); + } + effects.consume(code); + return completeAttributeValueQuoted; + } + function completeAttributeValueUnquoted(code) { + if (code === null || code === 34 || code === 39 || code === 47 || code === 60 || code === 61 || code === 62 || code === 96 || markdownLineEndingOrSpace(code)) { + return completeAttributeNameAfter(code); + } + effects.consume(code); + return completeAttributeValueUnquoted; + } + function completeAttributeValueQuotedAfter(code) { + if (code === 47 || code === 62 || markdownSpace(code)) { + return completeAttributeNameBefore(code); + } + return nok(code); + } + function completeEnd(code) { + if (code === 62) { + effects.consume(code); + return completeAfter; + } + return nok(code); + } + function completeAfter(code) { + if (code === null || markdownLineEnding(code)) { + return continuation(code); + } + if (markdownSpace(code)) { + effects.consume(code); + return completeAfter; + } + return nok(code); + } + function continuation(code) { + if (code === 45 && marker === 2) { + effects.consume(code); + return continuationCommentInside; + } + if (code === 60 && marker === 1) { + effects.consume(code); + return continuationRawTagOpen; + } + if (code === 62 && marker === 4) { + effects.consume(code); + return continuationClose; + } + if (code === 63 && marker === 3) { + effects.consume(code); + return continuationDeclarationInside; + } + if (code === 93 && marker === 5) { + effects.consume(code); + return continuationCdataInside; + } + if (markdownLineEnding(code) && (marker === 6 || marker === 7)) { + effects.exit("htmlFlowData"); + return effects.check( + blankLineBefore, + continuationAfter, + continuationStart + )(code); + } + if (code === null || markdownLineEnding(code)) { + effects.exit("htmlFlowData"); + return continuationStart(code); + } + effects.consume(code); + return continuation; + } + function continuationStart(code) { + return effects.check( + nonLazyContinuationStart, + continuationStartNonLazy, + continuationAfter + )(code); + } + function continuationStartNonLazy(code) { + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + return continuationBefore; + } + function continuationBefore(code) { + if (code === null || markdownLineEnding(code)) { + return continuationStart(code); + } + effects.enter("htmlFlowData"); + return continuation(code); + } + function continuationCommentInside(code) { + if (code === 45) { + effects.consume(code); + return continuationDeclarationInside; + } + return continuation(code); + } + function continuationRawTagOpen(code) { + if (code === 47) { + effects.consume(code); + buffer = ""; + return continuationRawEndTag; + } + return continuation(code); + } + function continuationRawEndTag(code) { + if (code === 62) { + const name = buffer.toLowerCase(); + if (htmlRawNames.includes(name)) { + effects.consume(code); + return continuationClose; + } + return continuation(code); + } + if (asciiAlpha(code) && buffer.length < 8) { + effects.consume(code); + buffer += String.fromCharCode(code); + return continuationRawEndTag; + } + return continuation(code); + } + function continuationCdataInside(code) { + if (code === 93) { + effects.consume(code); + return continuationDeclarationInside; + } + return continuation(code); + } + function continuationDeclarationInside(code) { + if (code === 62) { + effects.consume(code); + return continuationClose; + } + if (code === 45 && marker === 2) { + effects.consume(code); + return continuationDeclarationInside; + } + return continuation(code); + } + function continuationClose(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit("htmlFlowData"); + return continuationAfter(code); + } + effects.consume(code); + return continuationClose; + } + function continuationAfter(code) { + effects.exit("htmlFlow"); + return ok(code); + } +} +function tokenizeNonLazyContinuationStart(effects, ok, nok) { + const self = this; + return start; + function start(code) { + if (markdownLineEnding(code)) { + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + return after; + } + return nok(code); + } + function after(code) { + return self.parser.lazy[self.now().line] ? nok(code) : ok(code); + } +} +function tokenizeBlankLineBefore(effects, ok, nok) { + return start; + function start(code) { + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + return effects.attempt(blankLine, ok, nok); + } +} +const htmlText = { + name: "htmlText", + tokenize: tokenizeHtmlText +}; +function tokenizeHtmlText(effects, ok, nok) { + const self = this; + let marker; + let index2; + let returnState; + return start; + function start(code) { + effects.enter("htmlText"); + effects.enter("htmlTextData"); + effects.consume(code); + return open; + } + function open(code) { + if (code === 33) { + effects.consume(code); + return declarationOpen; + } + if (code === 47) { + effects.consume(code); + return tagCloseStart; + } + if (code === 63) { + effects.consume(code); + return instruction; + } + if (asciiAlpha(code)) { + effects.consume(code); + return tagOpen; + } + return nok(code); + } + function declarationOpen(code) { + if (code === 45) { + effects.consume(code); + return commentOpenInside; + } + if (code === 91) { + effects.consume(code); + index2 = 0; + return cdataOpenInside; + } + if (asciiAlpha(code)) { + effects.consume(code); + return declaration; + } + return nok(code); + } + function commentOpenInside(code) { + if (code === 45) { + effects.consume(code); + return commentEnd; + } + return nok(code); + } + function comment(code) { + if (code === null) { + return nok(code); + } + if (code === 45) { + effects.consume(code); + return commentClose; + } + if (markdownLineEnding(code)) { + returnState = comment; + return lineEndingBefore(code); + } + effects.consume(code); + return comment; + } + function commentClose(code) { + if (code === 45) { + effects.consume(code); + return commentEnd; + } + return comment(code); + } + function commentEnd(code) { + return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code); + } + function cdataOpenInside(code) { + const value = "CDATA["; + if (code === value.charCodeAt(index2++)) { + effects.consume(code); + return index2 === value.length ? cdata : cdataOpenInside; + } + return nok(code); + } + function cdata(code) { + if (code === null) { + return nok(code); + } + if (code === 93) { + effects.consume(code); + return cdataClose; + } + if (markdownLineEnding(code)) { + returnState = cdata; + return lineEndingBefore(code); + } + effects.consume(code); + return cdata; + } + function cdataClose(code) { + if (code === 93) { + effects.consume(code); + return cdataEnd; + } + return cdata(code); + } + function cdataEnd(code) { + if (code === 62) { + return end(code); + } + if (code === 93) { + effects.consume(code); + return cdataEnd; + } + return cdata(code); + } + function declaration(code) { + if (code === null || code === 62) { + return end(code); + } + if (markdownLineEnding(code)) { + returnState = declaration; + return lineEndingBefore(code); + } + effects.consume(code); + return declaration; + } + function instruction(code) { + if (code === null) { + return nok(code); + } + if (code === 63) { + effects.consume(code); + return instructionClose; + } + if (markdownLineEnding(code)) { + returnState = instruction; + return lineEndingBefore(code); + } + effects.consume(code); + return instruction; + } + function instructionClose(code) { + return code === 62 ? end(code) : instruction(code); + } + function tagCloseStart(code) { + if (asciiAlpha(code)) { + effects.consume(code); + return tagClose; + } + return nok(code); + } + function tagClose(code) { + if (code === 45 || asciiAlphanumeric(code)) { + effects.consume(code); + return tagClose; + } + return tagCloseBetween(code); + } + function tagCloseBetween(code) { + if (markdownLineEnding(code)) { + returnState = tagCloseBetween; + return lineEndingBefore(code); + } + if (markdownSpace(code)) { + effects.consume(code); + return tagCloseBetween; + } + return end(code); + } + function tagOpen(code) { + if (code === 45 || asciiAlphanumeric(code)) { + effects.consume(code); + return tagOpen; + } + if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) { + return tagOpenBetween(code); + } + return nok(code); + } + function tagOpenBetween(code) { + if (code === 47) { + effects.consume(code); + return end; + } + if (code === 58 || code === 95 || asciiAlpha(code)) { + effects.consume(code); + return tagOpenAttributeName; + } + if (markdownLineEnding(code)) { + returnState = tagOpenBetween; + return lineEndingBefore(code); + } + if (markdownSpace(code)) { + effects.consume(code); + return tagOpenBetween; + } + return end(code); + } + function tagOpenAttributeName(code) { + if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) { + effects.consume(code); + return tagOpenAttributeName; + } + return tagOpenAttributeNameAfter(code); + } + function tagOpenAttributeNameAfter(code) { + if (code === 61) { + effects.consume(code); + return tagOpenAttributeValueBefore; + } + if (markdownLineEnding(code)) { + returnState = tagOpenAttributeNameAfter; + return lineEndingBefore(code); + } + if (markdownSpace(code)) { + effects.consume(code); + return tagOpenAttributeNameAfter; + } + return tagOpenBetween(code); + } + function tagOpenAttributeValueBefore(code) { + if (code === null || code === 60 || code === 61 || code === 62 || code === 96) { + return nok(code); + } + if (code === 34 || code === 39) { + effects.consume(code); + marker = code; + return tagOpenAttributeValueQuoted; + } + if (markdownLineEnding(code)) { + returnState = tagOpenAttributeValueBefore; + return lineEndingBefore(code); + } + if (markdownSpace(code)) { + effects.consume(code); + return tagOpenAttributeValueBefore; + } + effects.consume(code); + return tagOpenAttributeValueUnquoted; + } + function tagOpenAttributeValueQuoted(code) { + if (code === marker) { + effects.consume(code); + marker = void 0; + return tagOpenAttributeValueQuotedAfter; + } + if (code === null) { + return nok(code); + } + if (markdownLineEnding(code)) { + returnState = tagOpenAttributeValueQuoted; + return lineEndingBefore(code); + } + effects.consume(code); + return tagOpenAttributeValueQuoted; + } + function tagOpenAttributeValueUnquoted(code) { + if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) { + return nok(code); + } + if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) { + return tagOpenBetween(code); + } + effects.consume(code); + return tagOpenAttributeValueUnquoted; + } + function tagOpenAttributeValueQuotedAfter(code) { + if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) { + return tagOpenBetween(code); + } + return nok(code); + } + function end(code) { + if (code === 62) { + effects.consume(code); + effects.exit("htmlTextData"); + effects.exit("htmlText"); + return ok; + } + return nok(code); + } + function lineEndingBefore(code) { + effects.exit("htmlTextData"); + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + return lineEndingAfter; + } + function lineEndingAfter(code) { + return markdownSpace(code) ? factorySpace( + effects, + lineEndingAfterPrefix, + "linePrefix", + self.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + )(code) : lineEndingAfterPrefix(code); + } + function lineEndingAfterPrefix(code) { + effects.enter("htmlTextData"); + return returnState(code); + } +} +const labelEnd = { + name: "labelEnd", + tokenize: tokenizeLabelEnd, + resolveTo: resolveToLabelEnd, + resolveAll: resolveAllLabelEnd +}; +const resourceConstruct = { + tokenize: tokenizeResource +}; +const referenceFullConstruct = { + tokenize: tokenizeReferenceFull +}; +const referenceCollapsedConstruct = { + tokenize: tokenizeReferenceCollapsed +}; +function resolveAllLabelEnd(events) { + let index2 = -1; + while (++index2 < events.length) { + const token = events[index2][1]; + if (token.type === "labelImage" || token.type === "labelLink" || token.type === "labelEnd") { + events.splice(index2 + 1, token.type === "labelImage" ? 4 : 2); + token.type = "data"; + index2++; + } + } + return events; +} +function resolveToLabelEnd(events, context) { + let index2 = events.length; + let offset = 0; + let token; + let open; + let close; + let media; + while (index2--) { + token = events[index2][1]; + if (open) { + if (token.type === "link" || token.type === "labelLink" && token._inactive) { + break; + } + if (events[index2][0] === "enter" && token.type === "labelLink") { + token._inactive = true; + } + } else if (close) { + if (events[index2][0] === "enter" && (token.type === "labelImage" || token.type === "labelLink") && !token._balanced) { + open = index2; + if (token.type !== "labelLink") { + offset = 2; + break; + } + } + } else if (token.type === "labelEnd") { + close = index2; + } + } + const group = { + type: events[open][1].type === "labelLink" ? "link" : "image", + start: Object.assign({}, events[open][1].start), + end: Object.assign({}, events[events.length - 1][1].end) + }; + const label = { + type: "label", + start: Object.assign({}, events[open][1].start), + end: Object.assign({}, events[close][1].end) + }; + const text2 = { + type: "labelText", + start: Object.assign({}, events[open + offset + 2][1].end), + end: Object.assign({}, events[close - 2][1].start) + }; + media = [ + ["enter", group, context], + ["enter", label, context] + ]; + media = push(media, events.slice(open + 1, open + offset + 3)); + media = push(media, [["enter", text2, context]]); + media = push( + media, + resolveAll( + context.parser.constructs.insideSpan.null, + events.slice(open + offset + 4, close - 3), + context + ) + ); + media = push(media, [ + ["exit", text2, context], + events[close - 2], + events[close - 1], + ["exit", label, context] + ]); + media = push(media, events.slice(close + 1)); + media = push(media, [["exit", group, context]]); + splice(events, open, events.length, media); + return events; +} +function tokenizeLabelEnd(effects, ok, nok) { + const self = this; + let index2 = self.events.length; + let labelStart; + let defined; + while (index2--) { + if ((self.events[index2][1].type === "labelImage" || self.events[index2][1].type === "labelLink") && !self.events[index2][1]._balanced) { + labelStart = self.events[index2][1]; + break; + } + } + return start; + function start(code) { + if (!labelStart) { + return nok(code); + } + if (labelStart._inactive) { + return labelEndNok(code); + } + defined = self.parser.defined.includes( + normalizeIdentifier( + self.sliceSerialize({ + start: labelStart.end, + end: self.now() + }) + ) + ); + effects.enter("labelEnd"); + effects.enter("labelMarker"); + effects.consume(code); + effects.exit("labelMarker"); + effects.exit("labelEnd"); + return after; + } + function after(code) { + if (code === 40) { + return effects.attempt( + resourceConstruct, + labelEndOk, + defined ? labelEndOk : labelEndNok + )(code); + } + if (code === 91) { + return effects.attempt( + referenceFullConstruct, + labelEndOk, + defined ? referenceNotFull : labelEndNok + )(code); + } + return defined ? labelEndOk(code) : labelEndNok(code); + } + function referenceNotFull(code) { + return effects.attempt( + referenceCollapsedConstruct, + labelEndOk, + labelEndNok + )(code); + } + function labelEndOk(code) { + return ok(code); + } + function labelEndNok(code) { + labelStart._balanced = true; + return nok(code); + } +} +function tokenizeResource(effects, ok, nok) { + return resourceStart; + function resourceStart(code) { + effects.enter("resource"); + effects.enter("resourceMarker"); + effects.consume(code); + effects.exit("resourceMarker"); + return resourceBefore; + } + function resourceBefore(code) { + return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code); + } + function resourceOpen(code) { + if (code === 41) { + return resourceEnd(code); + } + return factoryDestination( + effects, + resourceDestinationAfter, + resourceDestinationMissing, + "resourceDestination", + "resourceDestinationLiteral", + "resourceDestinationLiteralMarker", + "resourceDestinationRaw", + "resourceDestinationString", + 32 + )(code); + } + function resourceDestinationAfter(code) { + return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code); + } + function resourceDestinationMissing(code) { + return nok(code); + } + function resourceBetween(code) { + if (code === 34 || code === 39 || code === 40) { + return factoryTitle( + effects, + resourceTitleAfter, + nok, + "resourceTitle", + "resourceTitleMarker", + "resourceTitleString" + )(code); + } + return resourceEnd(code); + } + function resourceTitleAfter(code) { + return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code); + } + function resourceEnd(code) { + if (code === 41) { + effects.enter("resourceMarker"); + effects.consume(code); + effects.exit("resourceMarker"); + effects.exit("resource"); + return ok; + } + return nok(code); + } +} +function tokenizeReferenceFull(effects, ok, nok) { + const self = this; + return referenceFull; + function referenceFull(code) { + return factoryLabel.call( + self, + effects, + referenceFullAfter, + referenceFullMissing, + "reference", + "referenceMarker", + "referenceString" + )(code); + } + function referenceFullAfter(code) { + return self.parser.defined.includes( + normalizeIdentifier( + self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1) + ) + ) ? ok(code) : nok(code); + } + function referenceFullMissing(code) { + return nok(code); + } +} +function tokenizeReferenceCollapsed(effects, ok, nok) { + return referenceCollapsedStart; + function referenceCollapsedStart(code) { + effects.enter("reference"); + effects.enter("referenceMarker"); + effects.consume(code); + effects.exit("referenceMarker"); + return referenceCollapsedOpen; + } + function referenceCollapsedOpen(code) { + if (code === 93) { + effects.enter("referenceMarker"); + effects.consume(code); + effects.exit("referenceMarker"); + effects.exit("reference"); + return ok; + } + return nok(code); + } +} +const labelStartImage = { + name: "labelStartImage", + tokenize: tokenizeLabelStartImage, + resolveAll: labelEnd.resolveAll +}; +function tokenizeLabelStartImage(effects, ok, nok) { + const self = this; + return start; + function start(code) { + effects.enter("labelImage"); + effects.enter("labelImageMarker"); + effects.consume(code); + effects.exit("labelImageMarker"); + return open; + } + function open(code) { + if (code === 91) { + effects.enter("labelMarker"); + effects.consume(code); + effects.exit("labelMarker"); + effects.exit("labelImage"); + return after; + } + return nok(code); + } + function after(code) { + return code === 94 && "_hiddenFootnoteSupport" in self.parser.constructs ? nok(code) : ok(code); + } +} +const labelStartLink = { + name: "labelStartLink", + tokenize: tokenizeLabelStartLink, + resolveAll: labelEnd.resolveAll +}; +function tokenizeLabelStartLink(effects, ok, nok) { + const self = this; + return start; + function start(code) { + effects.enter("labelLink"); + effects.enter("labelMarker"); + effects.consume(code); + effects.exit("labelMarker"); + effects.exit("labelLink"); + return after; + } + function after(code) { + return code === 94 && "_hiddenFootnoteSupport" in self.parser.constructs ? nok(code) : ok(code); + } +} +const lineEnding = { + name: "lineEnding", + tokenize: tokenizeLineEnding +}; +function tokenizeLineEnding(effects, ok) { + return start; + function start(code) { + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + return factorySpace(effects, ok, "linePrefix"); + } +} +const thematicBreak = { + name: "thematicBreak", + tokenize: tokenizeThematicBreak +}; +function tokenizeThematicBreak(effects, ok, nok) { + let size = 0; + let marker; + return start; + function start(code) { + effects.enter("thematicBreak"); + return before(code); + } + function before(code) { + marker = code; + return atBreak(code); + } + function atBreak(code) { + if (code === marker) { + effects.enter("thematicBreakSequence"); + return sequence(code); + } + if (size >= 3 && (code === null || markdownLineEnding(code))) { + effects.exit("thematicBreak"); + return ok(code); + } + return nok(code); + } + function sequence(code) { + if (code === marker) { + effects.consume(code); + size++; + return sequence; + } + effects.exit("thematicBreakSequence"); + return markdownSpace(code) ? factorySpace(effects, atBreak, "whitespace")(code) : atBreak(code); + } +} +const list = { + name: "list", + tokenize: tokenizeListStart, + continuation: { + tokenize: tokenizeListContinuation + }, + exit: tokenizeListEnd +}; +const listItemPrefixWhitespaceConstruct = { + tokenize: tokenizeListItemPrefixWhitespace, + partial: true +}; +const indentConstruct = { + tokenize: tokenizeIndent, + partial: true +}; +function tokenizeListStart(effects, ok, nok) { + const self = this; + const tail = self.events[self.events.length - 1]; + let initialSize = tail && tail[1].type === "linePrefix" ? tail[2].sliceSerialize(tail[1], true).length : 0; + let size = 0; + return start; + function start(code) { + const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? "listUnordered" : "listOrdered"); + if (kind === "listUnordered" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) { + if (!self.containerState.type) { + self.containerState.type = kind; + effects.enter(kind, { + _container: true + }); + } + if (kind === "listUnordered") { + effects.enter("listItemPrefix"); + return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code); + } + if (!self.interrupt || code === 49) { + effects.enter("listItemPrefix"); + effects.enter("listItemValue"); + return inside(code); + } + } + return nok(code); + } + function inside(code) { + if (asciiDigit(code) && ++size < 10) { + effects.consume(code); + return inside; + } + if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) { + effects.exit("listItemValue"); + return atMarker(code); + } + return nok(code); + } + function atMarker(code) { + effects.enter("listItemMarker"); + effects.consume(code); + effects.exit("listItemMarker"); + self.containerState.marker = self.containerState.marker || code; + return effects.check( + blankLine, + // Can’t be empty when interrupting. + self.interrupt ? nok : onBlank, + effects.attempt( + listItemPrefixWhitespaceConstruct, + endOfPrefix, + otherPrefix + ) + ); + } + function onBlank(code) { + self.containerState.initialBlankLine = true; + initialSize++; + return endOfPrefix(code); + } + function otherPrefix(code) { + if (markdownSpace(code)) { + effects.enter("listItemPrefixWhitespace"); + effects.consume(code); + effects.exit("listItemPrefixWhitespace"); + return endOfPrefix; + } + return nok(code); + } + function endOfPrefix(code) { + self.containerState.size = initialSize + self.sliceSerialize(effects.exit("listItemPrefix"), true).length; + return ok(code); + } +} +function tokenizeListContinuation(effects, ok, nok) { + const self = this; + self.containerState._closeFlow = void 0; + return effects.check(blankLine, onBlank, notBlank); + function onBlank(code) { + self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine; + return factorySpace( + effects, + ok, + "listItemIndent", + self.containerState.size + 1 + )(code); + } + function notBlank(code) { + if (self.containerState.furtherBlankLines || !markdownSpace(code)) { + self.containerState.furtherBlankLines = void 0; + self.containerState.initialBlankLine = void 0; + return notInCurrentItem(code); + } + self.containerState.furtherBlankLines = void 0; + self.containerState.initialBlankLine = void 0; + return effects.attempt(indentConstruct, ok, notInCurrentItem)(code); + } + function notInCurrentItem(code) { + self.containerState._closeFlow = true; + self.interrupt = void 0; + return factorySpace( + effects, + effects.attempt(list, ok, nok), + "linePrefix", + self.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + )(code); + } +} +function tokenizeIndent(effects, ok, nok) { + const self = this; + return factorySpace( + effects, + afterPrefix, + "listItemIndent", + self.containerState.size + 1 + ); + function afterPrefix(code) { + const tail = self.events[self.events.length - 1]; + return tail && tail[1].type === "listItemIndent" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code); + } +} +function tokenizeListEnd(effects) { + effects.exit(this.containerState.type); +} +function tokenizeListItemPrefixWhitespace(effects, ok, nok) { + const self = this; + return factorySpace( + effects, + afterPrefix, + "listItemPrefixWhitespace", + self.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + 1 + ); + function afterPrefix(code) { + const tail = self.events[self.events.length - 1]; + return !markdownSpace(code) && tail && tail[1].type === "listItemPrefixWhitespace" ? ok(code) : nok(code); + } +} +const setextUnderline = { + name: "setextUnderline", + tokenize: tokenizeSetextUnderline, + resolveTo: resolveToSetextUnderline +}; +function resolveToSetextUnderline(events, context) { + let index2 = events.length; + let content2; + let text2; + let definition2; + while (index2--) { + if (events[index2][0] === "enter") { + if (events[index2][1].type === "content") { + content2 = index2; + break; + } + if (events[index2][1].type === "paragraph") { + text2 = index2; + } + } else { + if (events[index2][1].type === "content") { + events.splice(index2, 1); + } + if (!definition2 && events[index2][1].type === "definition") { + definition2 = index2; + } + } + } + const heading = { + type: "setextHeading", + start: Object.assign({}, events[text2][1].start), + end: Object.assign({}, events[events.length - 1][1].end) + }; + events[text2][1].type = "setextHeadingText"; + if (definition2) { + events.splice(text2, 0, ["enter", heading, context]); + events.splice(definition2 + 1, 0, ["exit", events[content2][1], context]); + events[content2][1].end = Object.assign({}, events[definition2][1].end); + } else { + events[content2][1] = heading; + } + events.push(["exit", heading, context]); + return events; +} +function tokenizeSetextUnderline(effects, ok, nok) { + const self = this; + let marker; + return start; + function start(code) { + let index2 = self.events.length; + let paragraph; + while (index2--) { + if (self.events[index2][1].type !== "lineEnding" && self.events[index2][1].type !== "linePrefix" && self.events[index2][1].type !== "content") { + paragraph = self.events[index2][1].type === "paragraph"; + break; + } + } + if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) { + effects.enter("setextHeadingLine"); + marker = code; + return before(code); + } + return nok(code); + } + function before(code) { + effects.enter("setextHeadingLineSequence"); + return inside(code); + } + function inside(code) { + if (code === marker) { + effects.consume(code); + return inside; + } + effects.exit("setextHeadingLineSequence"); + return markdownSpace(code) ? factorySpace(effects, after, "lineSuffix")(code) : after(code); + } + function after(code) { + if (code === null || markdownLineEnding(code)) { + effects.exit("setextHeadingLine"); + return ok(code); + } + return nok(code); + } +} +const flow$1 = { + tokenize: initializeFlow +}; +function initializeFlow(effects) { + const self = this; + const initial = effects.attempt( + // Try to parse a blank line. + blankLine, + atBlankEnding, + // Try to parse initial flow (essentially, only code). + effects.attempt( + this.parser.constructs.flowInitial, + afterConstruct, + factorySpace( + effects, + effects.attempt( + this.parser.constructs.flow, + afterConstruct, + effects.attempt(content, afterConstruct) + ), + "linePrefix" + ) + ) + ); + return initial; + function atBlankEnding(code) { + if (code === null) { + effects.consume(code); + return; + } + effects.enter("lineEndingBlank"); + effects.consume(code); + effects.exit("lineEndingBlank"); + self.currentConstruct = void 0; + return initial; + } + function afterConstruct(code) { + if (code === null) { + effects.consume(code); + return; + } + effects.enter("lineEnding"); + effects.consume(code); + effects.exit("lineEnding"); + self.currentConstruct = void 0; + return initial; + } +} +const resolver = { + resolveAll: createResolver() +}; +const string$1 = initializeFactory("string"); +const text$1 = initializeFactory("text"); +function initializeFactory(field) { + return { + tokenize: initializeText, + resolveAll: createResolver( + field === "text" ? resolveAllLineSuffixes : void 0 + ) + }; + function initializeText(effects) { + const self = this; + const constructs2 = this.parser.constructs[field]; + const text2 = effects.attempt(constructs2, start, notText); + return start; + function start(code) { + return atBreak(code) ? text2(code) : notText(code); + } + function notText(code) { + if (code === null) { + effects.consume(code); + return; + } + effects.enter("data"); + effects.consume(code); + return data; + } + function data(code) { + if (atBreak(code)) { + effects.exit("data"); + return text2(code); + } + effects.consume(code); + return data; + } + function atBreak(code) { + if (code === null) { + return true; + } + const list2 = constructs2[code]; + let index2 = -1; + if (list2) { + while (++index2 < list2.length) { + const item = list2[index2]; + if (!item.previous || item.previous.call(self, self.previous)) { + return true; + } + } + } + return false; + } + } +} +function createResolver(extraResolver) { + return resolveAllText; + function resolveAllText(events, context) { + let index2 = -1; + let enter; + while (++index2 <= events.length) { + if (enter === void 0) { + if (events[index2] && events[index2][1].type === "data") { + enter = index2; + index2++; + } + } else if (!events[index2] || events[index2][1].type !== "data") { + if (index2 !== enter + 2) { + events[enter][1].end = events[index2 - 1][1].end; + events.splice(enter + 2, index2 - enter - 2); + index2 = enter + 2; + } + enter = void 0; + } + } + return extraResolver ? extraResolver(events, context) : events; + } +} +function resolveAllLineSuffixes(events, context) { + let eventIndex = 0; + while (++eventIndex <= events.length) { + if ((eventIndex === events.length || events[eventIndex][1].type === "lineEnding") && events[eventIndex - 1][1].type === "data") { + const data = events[eventIndex - 1][1]; + const chunks = context.sliceStream(data); + let index2 = chunks.length; + let bufferIndex = -1; + let size = 0; + let tabs; + while (index2--) { + const chunk = chunks[index2]; + if (typeof chunk === "string") { + bufferIndex = chunk.length; + while (chunk.charCodeAt(bufferIndex - 1) === 32) { + size++; + bufferIndex--; + } + if (bufferIndex) + break; + bufferIndex = -1; + } else if (chunk === -2) { + tabs = true; + size++; + } else if (chunk === -1) + ; + else { + index2++; + break; + } + } + if (size) { + const token = { + type: eventIndex === events.length || tabs || size < 2 ? "lineSuffix" : "hardBreakTrailing", + start: { + line: data.end.line, + column: data.end.column - size, + offset: data.end.offset - size, + _index: data.start._index + index2, + _bufferIndex: index2 ? bufferIndex : data.start._bufferIndex + bufferIndex + }, + end: Object.assign({}, data.end) + }; + data.end = Object.assign({}, token.start); + if (data.start.offset === data.end.offset) { + Object.assign(data, token); + } else { + events.splice( + eventIndex, + 0, + ["enter", token, context], + ["exit", token, context] + ); + eventIndex += 2; + } + } + eventIndex++; + } + } + return events; +} +function createTokenizer(parser, initialize, from) { + let point2 = Object.assign( + from ? Object.assign({}, from) : { + line: 1, + column: 1, + offset: 0 + }, + { + _index: 0, + _bufferIndex: -1 + } + ); + const columnStart = {}; + const resolveAllConstructs = []; + let chunks = []; + let stack = []; + const effects = { + consume, + enter, + exit: exit2, + attempt: constructFactory(onsuccessfulconstruct), + check: constructFactory(onsuccessfulcheck), + interrupt: constructFactory(onsuccessfulcheck, { + interrupt: true + }) + }; + const context = { + previous: null, + code: null, + containerState: {}, + events: [], + parser, + sliceStream, + sliceSerialize, + now, + defineSkip, + write + }; + let state = initialize.tokenize.call(context, effects); + if (initialize.resolveAll) { + resolveAllConstructs.push(initialize); + } + return context; + function write(slice) { + chunks = push(chunks, slice); + main(); + if (chunks[chunks.length - 1] !== null) { + return []; + } + addResult(initialize, 0); + context.events = resolveAll(resolveAllConstructs, context.events, context); + return context.events; + } + function sliceSerialize(token, expandTabs) { + return serializeChunks(sliceStream(token), expandTabs); + } + function sliceStream(token) { + return sliceChunks(chunks, token); + } + function now() { + const { line, column, offset, _index, _bufferIndex } = point2; + return { + line, + column, + offset, + _index, + _bufferIndex + }; + } + function defineSkip(value) { + columnStart[value.line] = value.column; + accountForPotentialSkip(); + } + function main() { + let chunkIndex; + while (point2._index < chunks.length) { + const chunk = chunks[point2._index]; + if (typeof chunk === "string") { + chunkIndex = point2._index; + if (point2._bufferIndex < 0) { + point2._bufferIndex = 0; + } + while (point2._index === chunkIndex && point2._bufferIndex < chunk.length) { + go(chunk.charCodeAt(point2._bufferIndex)); + } + } else { + go(chunk); + } + } + } + function go(code) { + state = state(code); + } + function consume(code) { + if (markdownLineEnding(code)) { + point2.line++; + point2.column = 1; + point2.offset += code === -3 ? 2 : 1; + accountForPotentialSkip(); + } else if (code !== -1) { + point2.column++; + point2.offset++; + } + if (point2._bufferIndex < 0) { + point2._index++; + } else { + point2._bufferIndex++; + if (point2._bufferIndex === chunks[point2._index].length) { + point2._bufferIndex = -1; + point2._index++; + } + } + context.previous = code; + } + function enter(type, fields) { + const token = fields || {}; + token.type = type; + token.start = now(); + context.events.push(["enter", token, context]); + stack.push(token); + return token; + } + function exit2(type) { + const token = stack.pop(); + token.end = now(); + context.events.push(["exit", token, context]); + return token; + } + function onsuccessfulconstruct(construct, info) { + addResult(construct, info.from); + } + function onsuccessfulcheck(_, info) { + info.restore(); + } + function constructFactory(onreturn, fields) { + return hook; + function hook(constructs2, returnState, bogusState) { + let listOfConstructs; + let constructIndex; + let currentConstruct; + let info; + return Array.isArray(constructs2) ? handleListOfConstructs(constructs2) : "tokenize" in constructs2 ? ( + // @ts-expect-error Looks like a construct. + handleListOfConstructs([constructs2]) + ) : handleMapOfConstructs(constructs2); + function handleMapOfConstructs(map) { + return start; + function start(code) { + const def = code !== null && map[code]; + const all2 = code !== null && map.null; + const list2 = [ + // To do: add more extension tests. + /* c8 ignore next 2 */ + ...Array.isArray(def) ? def : def ? [def] : [], + ...Array.isArray(all2) ? all2 : all2 ? [all2] : [] + ]; + return handleListOfConstructs(list2)(code); + } + } + function handleListOfConstructs(list2) { + listOfConstructs = list2; + constructIndex = 0; + if (list2.length === 0) { + return bogusState; + } + return handleConstruct(list2[constructIndex]); + } + function handleConstruct(construct) { + return start; + function start(code) { + info = store(); + currentConstruct = construct; + if (!construct.partial) { + context.currentConstruct = construct; + } + if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) { + return nok(); + } + return construct.tokenize.call( + // If we do have fields, create an object w/ `context` as its + // prototype. + // This allows a “live binding”, which is needed for `interrupt`. + fields ? Object.assign(Object.create(context), fields) : context, + effects, + ok, + nok + )(code); + } + } + function ok(code) { + onreturn(currentConstruct, info); + return returnState; + } + function nok(code) { + info.restore(); + if (++constructIndex < listOfConstructs.length) { + return handleConstruct(listOfConstructs[constructIndex]); + } + return bogusState; + } + } + } + function addResult(construct, from2) { + if (construct.resolveAll && !resolveAllConstructs.includes(construct)) { + resolveAllConstructs.push(construct); + } + if (construct.resolve) { + splice( + context.events, + from2, + context.events.length - from2, + construct.resolve(context.events.slice(from2), context) + ); + } + if (construct.resolveTo) { + context.events = construct.resolveTo(context.events, context); + } + } + function store() { + const startPoint = now(); + const startPrevious = context.previous; + const startCurrentConstruct = context.currentConstruct; + const startEventsIndex = context.events.length; + const startStack = Array.from(stack); + return { + restore, + from: startEventsIndex + }; + function restore() { + point2 = startPoint; + context.previous = startPrevious; + context.currentConstruct = startCurrentConstruct; + context.events.length = startEventsIndex; + stack = startStack; + accountForPotentialSkip(); + } + } + function accountForPotentialSkip() { + if (point2.line in columnStart && point2.column < 2) { + point2.column = columnStart[point2.line]; + point2.offset += columnStart[point2.line] - 1; + } + } +} +function sliceChunks(chunks, token) { + const startIndex = token.start._index; + const startBufferIndex = token.start._bufferIndex; + const endIndex = token.end._index; + const endBufferIndex = token.end._bufferIndex; + let view; + if (startIndex === endIndex) { + view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]; + } else { + view = chunks.slice(startIndex, endIndex); + if (startBufferIndex > -1) { + const head = view[0]; + if (typeof head === "string") { + view[0] = head.slice(startBufferIndex); + } else { + view.shift(); + } + } + if (endBufferIndex > 0) { + view.push(chunks[endIndex].slice(0, endBufferIndex)); + } + } + return view; +} +function serializeChunks(chunks, expandTabs) { + let index2 = -1; + const result = []; + let atTab; + while (++index2 < chunks.length) { + const chunk = chunks[index2]; + let value; + if (typeof chunk === "string") { + value = chunk; + } else + switch (chunk) { + case -5: { + value = "\r"; + break; + } + case -4: { + value = "\n"; + break; + } + case -3: { + value = "\r\n"; + break; + } + case -2: { + value = expandTabs ? " " : " "; + break; + } + case -1: { + if (!expandTabs && atTab) + continue; + value = " "; + break; + } + default: { + value = String.fromCharCode(chunk); + } + } + atTab = chunk === -2; + result.push(value); + } + return result.join(""); +} +const document$1 = { + [42]: list, + [43]: list, + [45]: list, + [48]: list, + [49]: list, + [50]: list, + [51]: list, + [52]: list, + [53]: list, + [54]: list, + [55]: list, + [56]: list, + [57]: list, + [62]: blockQuote +}; +const contentInitial = { + [91]: definition +}; +const flowInitial = { + [-2]: codeIndented, + [-1]: codeIndented, + [32]: codeIndented +}; +const flow = { + [35]: headingAtx, + [42]: thematicBreak, + [45]: [setextUnderline, thematicBreak], + [60]: htmlFlow, + [61]: setextUnderline, + [95]: thematicBreak, + [96]: codeFenced, + [126]: codeFenced +}; +const string = { + [38]: characterReference, + [92]: characterEscape +}; +const text = { + [-5]: lineEnding, + [-4]: lineEnding, + [-3]: lineEnding, + [33]: labelStartImage, + [38]: characterReference, + [42]: attention, + [60]: [autolink, htmlText], + [91]: labelStartLink, + [92]: [hardBreakEscape, characterEscape], + [93]: labelEnd, + [95]: attention, + [96]: codeText +}; +const insideSpan = { + null: [attention, resolver] +}; +const attentionMarkers = { + null: [42, 95] +}; +const disable = { + null: [] +}; +const defaultConstructs = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + attentionMarkers, + contentInitial, + disable, + document: document$1, + flow, + flowInitial, + insideSpan, + string, + text +}, Symbol.toStringTag, { value: "Module" })); +function parse(options) { + const settings = options || {}; + const constructs2 = ( + /** @type {FullNormalizedExtension} */ + combineExtensions([defaultConstructs, ...settings.extensions || []]) + ); + const parser = { + defined: [], + lazy: {}, + constructs: constructs2, + content: create(content$1), + document: create(document$2), + flow: create(flow$1), + string: create(string$1), + text: create(text$1) + }; + return parser; + function create(initial) { + return creator; + function creator(from) { + return createTokenizer(parser, initial, from); + } + } +} +const search = /[\0\t\n\r]/g; +function preprocess() { + let column = 1; + let buffer = ""; + let start = true; + let atCarriageReturn; + return preprocessor; + function preprocessor(value, encoding, end) { + const chunks = []; + let match; + let next; + let startPosition; + let endPosition; + let code; + value = buffer + value.toString(encoding); + startPosition = 0; + buffer = ""; + if (start) { + if (value.charCodeAt(0) === 65279) { + startPosition++; + } + start = void 0; + } + while (startPosition < value.length) { + search.lastIndex = startPosition; + match = search.exec(value); + endPosition = match && match.index !== void 0 ? match.index : value.length; + code = value.charCodeAt(endPosition); + if (!match) { + buffer = value.slice(startPosition); + break; + } + if (code === 10 && startPosition === endPosition && atCarriageReturn) { + chunks.push(-3); + atCarriageReturn = void 0; + } else { + if (atCarriageReturn) { + chunks.push(-5); + atCarriageReturn = void 0; + } + if (startPosition < endPosition) { + chunks.push(value.slice(startPosition, endPosition)); + column += endPosition - startPosition; + } + switch (code) { + case 0: { + chunks.push(65533); + column++; + break; + } + case 9: { + next = Math.ceil(column / 4) * 4; + chunks.push(-2); + while (column++ < next) + chunks.push(-1); + break; + } + case 10: { + chunks.push(-4); + column = 1; + break; + } + default: { + atCarriageReturn = true; + column = 1; + } + } + } + startPosition = endPosition + 1; + } + if (end) { + if (atCarriageReturn) + chunks.push(-5); + if (buffer) + chunks.push(buffer); + chunks.push(null); + } + return chunks; + } +} +function postprocess(events) { + while (!subtokenize(events)) { + } + return events; +} +function decodeNumericCharacterReference(value, base) { + const code = Number.parseInt(value, base); + if ( + // C0 except for HT, LF, FF, CR, space. + code < 9 || code === 11 || code > 13 && code < 32 || // Control character (DEL) of C0, and C1 controls. + code > 126 && code < 160 || // Lone high surrogates and low surrogates. + code > 55295 && code < 57344 || // Noncharacters. + code > 64975 && code < 65008 || (code & 65535) === 65535 || (code & 65535) === 65534 || // Out of range + code > 1114111 + ) { + return "�"; + } + return String.fromCharCode(code); +} +const characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi; +function decodeString(value) { + return value.replace(characterEscapeOrReference, decode); +} +function decode($0, $1, $2) { + if ($1) { + return $1; + } + const head = $2.charCodeAt(0); + if (head === 35) { + const head2 = $2.charCodeAt(1); + const hex = head2 === 120 || head2 === 88; + return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10); + } + return decodeNamedCharacterReference($2) || $0; +} +function stringifyPosition(value) { + if (!value || typeof value !== "object") { + return ""; + } + if ("position" in value || "type" in value) { + return position(value.position); + } + if ("start" in value || "end" in value) { + return position(value); + } + if ("line" in value || "column" in value) { + return point$1(value); + } + return ""; +} +function point$1(point2) { + return index(point2 && point2.line) + ":" + index(point2 && point2.column); +} +function position(pos) { + return point$1(pos && pos.start) + "-" + point$1(pos && pos.end); +} +function index(value) { + return value && typeof value === "number" ? value : 1; +} +const own = {}.hasOwnProperty; +const fromMarkdown = ( + /** + * @type {( + * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) & + * ((value: Value, options?: Options | null | undefined) => Root) + * )} + */ + /** + * @param {Value} value + * @param {Encoding | Options | null | undefined} [encoding] + * @param {Options | null | undefined} [options] + * @returns {Root} + */ + function(value, encoding, options) { + if (typeof encoding !== "string") { + options = encoding; + encoding = void 0; + } + return compiler(options)( + postprocess( + parse(options).document().write(preprocess()(value, encoding, true)) + ) + ); + } +); +function compiler(options) { + const config = { + transforms: [], + canContainEols: ["emphasis", "fragment", "heading", "paragraph", "strong"], + enter: { + autolink: opener(link), + autolinkProtocol: onenterdata, + autolinkEmail: onenterdata, + atxHeading: opener(heading), + blockQuote: opener(blockQuote2), + characterEscape: onenterdata, + characterReference: onenterdata, + codeFenced: opener(codeFlow), + codeFencedFenceInfo: buffer, + codeFencedFenceMeta: buffer, + codeIndented: opener(codeFlow, buffer), + codeText: opener(codeText2, buffer), + codeTextData: onenterdata, + data: onenterdata, + codeFlowValue: onenterdata, + definition: opener(definition2), + definitionDestinationString: buffer, + definitionLabelString: buffer, + definitionTitleString: buffer, + emphasis: opener(emphasis), + hardBreakEscape: opener(hardBreak), + hardBreakTrailing: opener(hardBreak), + htmlFlow: opener(html, buffer), + htmlFlowData: onenterdata, + htmlText: opener(html, buffer), + htmlTextData: onenterdata, + image: opener(image), + label: buffer, + link: opener(link), + listItem: opener(listItem), + listItemValue: onenterlistitemvalue, + listOrdered: opener(list2, onenterlistordered), + listUnordered: opener(list2), + paragraph: opener(paragraph), + reference: onenterreference, + referenceString: buffer, + resourceDestinationString: buffer, + resourceTitleString: buffer, + setextHeading: opener(heading), + strong: opener(strong), + thematicBreak: opener(thematicBreak2) + }, + exit: { + atxHeading: closer(), + atxHeadingSequence: onexitatxheadingsequence, + autolink: closer(), + autolinkEmail: onexitautolinkemail, + autolinkProtocol: onexitautolinkprotocol, + blockQuote: closer(), + characterEscapeValue: onexitdata, + characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker, + characterReferenceMarkerNumeric: onexitcharacterreferencemarker, + characterReferenceValue: onexitcharacterreferencevalue, + codeFenced: closer(onexitcodefenced), + codeFencedFence: onexitcodefencedfence, + codeFencedFenceInfo: onexitcodefencedfenceinfo, + codeFencedFenceMeta: onexitcodefencedfencemeta, + codeFlowValue: onexitdata, + codeIndented: closer(onexitcodeindented), + codeText: closer(onexitcodetext), + codeTextData: onexitdata, + data: onexitdata, + definition: closer(), + definitionDestinationString: onexitdefinitiondestinationstring, + definitionLabelString: onexitdefinitionlabelstring, + definitionTitleString: onexitdefinitiontitlestring, + emphasis: closer(), + hardBreakEscape: closer(onexithardbreak), + hardBreakTrailing: closer(onexithardbreak), + htmlFlow: closer(onexithtmlflow), + htmlFlowData: onexitdata, + htmlText: closer(onexithtmltext), + htmlTextData: onexitdata, + image: closer(onexitimage), + label: onexitlabel, + labelText: onexitlabeltext, + lineEnding: onexitlineending, + link: closer(onexitlink), + listItem: closer(), + listOrdered: closer(), + listUnordered: closer(), + paragraph: closer(), + referenceString: onexitreferencestring, + resourceDestinationString: onexitresourcedestinationstring, + resourceTitleString: onexitresourcetitlestring, + resource: onexitresource, + setextHeading: closer(onexitsetextheading), + setextHeadingLineSequence: onexitsetextheadinglinesequence, + setextHeadingText: onexitsetextheadingtext, + strong: closer(), + thematicBreak: closer() + } + }; + configure(config, (options || {}).mdastExtensions || []); + const data = {}; + return compile; + function compile(events) { + let tree = { + type: "root", + children: [] + }; + const context = { + stack: [tree], + tokenStack: [], + config, + enter, + exit: exit2, + buffer, + resume, + setData, + getData + }; + const listStack = []; + let index2 = -1; + while (++index2 < events.length) { + if (events[index2][1].type === "listOrdered" || events[index2][1].type === "listUnordered") { + if (events[index2][0] === "enter") { + listStack.push(index2); + } else { + const tail = listStack.pop(); + index2 = prepareList(events, tail, index2); + } + } + } + index2 = -1; + while (++index2 < events.length) { + const handler = config[events[index2][0]]; + if (own.call(handler, events[index2][1].type)) { + handler[events[index2][1].type].call( + Object.assign( + { + sliceSerialize: events[index2][2].sliceSerialize + }, + context + ), + events[index2][1] + ); + } + } + if (context.tokenStack.length > 0) { + const tail = context.tokenStack[context.tokenStack.length - 1]; + const handler = tail[1] || defaultOnError; + handler.call(context, void 0, tail[0]); + } + tree.position = { + start: point( + events.length > 0 ? events[0][1].start : { + line: 1, + column: 1, + offset: 0 + } + ), + end: point( + events.length > 0 ? events[events.length - 2][1].end : { + line: 1, + column: 1, + offset: 0 + } + ) + }; + index2 = -1; + while (++index2 < config.transforms.length) { + tree = config.transforms[index2](tree) || tree; + } + return tree; + } + function prepareList(events, start, length) { + let index2 = start - 1; + let containerBalance = -1; + let listSpread = false; + let listItem2; + let lineIndex; + let firstBlankLineIndex; + let atMarker; + while (++index2 <= length) { + const event = events[index2]; + if (event[1].type === "listUnordered" || event[1].type === "listOrdered" || event[1].type === "blockQuote") { + if (event[0] === "enter") { + containerBalance++; + } else { + containerBalance--; + } + atMarker = void 0; + } else if (event[1].type === "lineEndingBlank") { + if (event[0] === "enter") { + if (listItem2 && !atMarker && !containerBalance && !firstBlankLineIndex) { + firstBlankLineIndex = index2; + } + atMarker = void 0; + } + } else if (event[1].type === "linePrefix" || event[1].type === "listItemValue" || event[1].type === "listItemMarker" || event[1].type === "listItemPrefix" || event[1].type === "listItemPrefixWhitespace") + ; + else { + atMarker = void 0; + } + if (!containerBalance && event[0] === "enter" && event[1].type === "listItemPrefix" || containerBalance === -1 && event[0] === "exit" && (event[1].type === "listUnordered" || event[1].type === "listOrdered")) { + if (listItem2) { + let tailIndex = index2; + lineIndex = void 0; + while (tailIndex--) { + const tailEvent = events[tailIndex]; + if (tailEvent[1].type === "lineEnding" || tailEvent[1].type === "lineEndingBlank") { + if (tailEvent[0] === "exit") + continue; + if (lineIndex) { + events[lineIndex][1].type = "lineEndingBlank"; + listSpread = true; + } + tailEvent[1].type = "lineEnding"; + lineIndex = tailIndex; + } else if (tailEvent[1].type === "linePrefix" || tailEvent[1].type === "blockQuotePrefix" || tailEvent[1].type === "blockQuotePrefixWhitespace" || tailEvent[1].type === "blockQuoteMarker" || tailEvent[1].type === "listItemIndent") + ; + else { + break; + } + } + if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) { + listItem2._spread = true; + } + listItem2.end = Object.assign( + {}, + lineIndex ? events[lineIndex][1].start : event[1].end + ); + events.splice(lineIndex || index2, 0, ["exit", listItem2, event[2]]); + index2++; + length++; + } + if (event[1].type === "listItemPrefix") { + listItem2 = { + type: "listItem", + _spread: false, + start: Object.assign({}, event[1].start), + // @ts-expect-error: we’ll add `end` in a second. + end: void 0 + }; + events.splice(index2, 0, ["enter", listItem2, event[2]]); + index2++; + length++; + firstBlankLineIndex = void 0; + atMarker = true; + } + } + } + events[start][1]._spread = listSpread; + return length; + } + function setData(key, value) { + data[key] = value; + } + function getData(key) { + return data[key]; + } + function opener(create, and) { + return open; + function open(token) { + enter.call(this, create(token), token); + if (and) + and.call(this, token); + } + } + function buffer() { + this.stack.push({ + type: "fragment", + children: [] + }); + } + function enter(node2, token, errorHandler) { + const parent = this.stack[this.stack.length - 1]; + parent.children.push(node2); + this.stack.push(node2); + this.tokenStack.push([token, errorHandler]); + node2.position = { + start: point(token.start) + }; + return node2; + } + function closer(and) { + return close; + function close(token) { + if (and) + and.call(this, token); + exit2.call(this, token); + } + } + function exit2(token, onExitError) { + const node2 = this.stack.pop(); + const open = this.tokenStack.pop(); + if (!open) { + throw new Error( + "Cannot close `" + token.type + "` (" + stringifyPosition({ + start: token.start, + end: token.end + }) + "): it’s not open" + ); + } else if (open[0].type !== token.type) { + if (onExitError) { + onExitError.call(this, token, open[0]); + } else { + const handler = open[1] || defaultOnError; + handler.call(this, token, open[0]); + } + } + node2.position.end = point(token.end); + return node2; + } + function resume() { + return toString(this.stack.pop()); + } + function onenterlistordered() { + setData("expectingFirstListItemValue", true); + } + function onenterlistitemvalue(token) { + if (getData("expectingFirstListItemValue")) { + const ancestor = this.stack[this.stack.length - 2]; + ancestor.start = Number.parseInt(this.sliceSerialize(token), 10); + setData("expectingFirstListItemValue"); + } + } + function onexitcodefencedfenceinfo() { + const data2 = this.resume(); + const node2 = this.stack[this.stack.length - 1]; + node2.lang = data2; + } + function onexitcodefencedfencemeta() { + const data2 = this.resume(); + const node2 = this.stack[this.stack.length - 1]; + node2.meta = data2; + } + function onexitcodefencedfence() { + if (getData("flowCodeInside")) + return; + this.buffer(); + setData("flowCodeInside", true); + } + function onexitcodefenced() { + const data2 = this.resume(); + const node2 = this.stack[this.stack.length - 1]; + node2.value = data2.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, ""); + setData("flowCodeInside"); + } + function onexitcodeindented() { + const data2 = this.resume(); + const node2 = this.stack[this.stack.length - 1]; + node2.value = data2.replace(/(\r?\n|\r)$/g, ""); + } + function onexitdefinitionlabelstring(token) { + const label = this.resume(); + const node2 = this.stack[this.stack.length - 1]; + node2.label = label; + node2.identifier = normalizeIdentifier( + this.sliceSerialize(token) + ).toLowerCase(); + } + function onexitdefinitiontitlestring() { + const data2 = this.resume(); + const node2 = this.stack[this.stack.length - 1]; + node2.title = data2; + } + function onexitdefinitiondestinationstring() { + const data2 = this.resume(); + const node2 = this.stack[this.stack.length - 1]; + node2.url = data2; + } + function onexitatxheadingsequence(token) { + const node2 = this.stack[this.stack.length - 1]; + if (!node2.depth) { + const depth = this.sliceSerialize(token).length; + node2.depth = depth; + } + } + function onexitsetextheadingtext() { + setData("setextHeadingSlurpLineEnding", true); + } + function onexitsetextheadinglinesequence(token) { + const node2 = this.stack[this.stack.length - 1]; + node2.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2; + } + function onexitsetextheading() { + setData("setextHeadingSlurpLineEnding"); + } + function onenterdata(token) { + const node2 = this.stack[this.stack.length - 1]; + let tail = node2.children[node2.children.length - 1]; + if (!tail || tail.type !== "text") { + tail = text2(); + tail.position = { + start: point(token.start) + }; + node2.children.push(tail); + } + this.stack.push(tail); + } + function onexitdata(token) { + const tail = this.stack.pop(); + tail.value += this.sliceSerialize(token); + tail.position.end = point(token.end); + } + function onexitlineending(token) { + const context = this.stack[this.stack.length - 1]; + if (getData("atHardBreak")) { + const tail = context.children[context.children.length - 1]; + tail.position.end = point(token.end); + setData("atHardBreak"); + return; + } + if (!getData("setextHeadingSlurpLineEnding") && config.canContainEols.includes(context.type)) { + onenterdata.call(this, token); + onexitdata.call(this, token); + } + } + function onexithardbreak() { + setData("atHardBreak", true); + } + function onexithtmlflow() { + const data2 = this.resume(); + const node2 = this.stack[this.stack.length - 1]; + node2.value = data2; + } + function onexithtmltext() { + const data2 = this.resume(); + const node2 = this.stack[this.stack.length - 1]; + node2.value = data2; + } + function onexitcodetext() { + const data2 = this.resume(); + const node2 = this.stack[this.stack.length - 1]; + node2.value = data2; + } + function onexitlink() { + const node2 = this.stack[this.stack.length - 1]; + if (getData("inReference")) { + const referenceType = getData("referenceType") || "shortcut"; + node2.type += "Reference"; + node2.referenceType = referenceType; + delete node2.url; + delete node2.title; + } else { + delete node2.identifier; + delete node2.label; + } + setData("referenceType"); + } + function onexitimage() { + const node2 = this.stack[this.stack.length - 1]; + if (getData("inReference")) { + const referenceType = getData("referenceType") || "shortcut"; + node2.type += "Reference"; + node2.referenceType = referenceType; + delete node2.url; + delete node2.title; + } else { + delete node2.identifier; + delete node2.label; + } + setData("referenceType"); + } + function onexitlabeltext(token) { + const string2 = this.sliceSerialize(token); + const ancestor = this.stack[this.stack.length - 2]; + ancestor.label = decodeString(string2); + ancestor.identifier = normalizeIdentifier(string2).toLowerCase(); + } + function onexitlabel() { + const fragment = this.stack[this.stack.length - 1]; + const value = this.resume(); + const node2 = this.stack[this.stack.length - 1]; + setData("inReference", true); + if (node2.type === "link") { + const children = fragment.children; + node2.children = children; + } else { + node2.alt = value; + } + } + function onexitresourcedestinationstring() { + const data2 = this.resume(); + const node2 = this.stack[this.stack.length - 1]; + node2.url = data2; + } + function onexitresourcetitlestring() { + const data2 = this.resume(); + const node2 = this.stack[this.stack.length - 1]; + node2.title = data2; + } + function onexitresource() { + setData("inReference"); + } + function onenterreference() { + setData("referenceType", "collapsed"); + } + function onexitreferencestring(token) { + const label = this.resume(); + const node2 = this.stack[this.stack.length - 1]; + node2.label = label; + node2.identifier = normalizeIdentifier( + this.sliceSerialize(token) + ).toLowerCase(); + setData("referenceType", "full"); + } + function onexitcharacterreferencemarker(token) { + setData("characterReferenceType", token.type); + } + function onexitcharacterreferencevalue(token) { + const data2 = this.sliceSerialize(token); + const type = getData("characterReferenceType"); + let value; + if (type) { + value = decodeNumericCharacterReference( + data2, + type === "characterReferenceMarkerNumeric" ? 10 : 16 + ); + setData("characterReferenceType"); + } else { + const result = decodeNamedCharacterReference(data2); + value = result; + } + const tail = this.stack.pop(); + tail.value += value; + tail.position.end = point(token.end); + } + function onexitautolinkprotocol(token) { + onexitdata.call(this, token); + const node2 = this.stack[this.stack.length - 1]; + node2.url = this.sliceSerialize(token); + } + function onexitautolinkemail(token) { + onexitdata.call(this, token); + const node2 = this.stack[this.stack.length - 1]; + node2.url = "mailto:" + this.sliceSerialize(token); + } + function blockQuote2() { + return { + type: "blockquote", + children: [] + }; + } + function codeFlow() { + return { + type: "code", + lang: null, + meta: null, + value: "" + }; + } + function codeText2() { + return { + type: "inlineCode", + value: "" + }; + } + function definition2() { + return { + type: "definition", + identifier: "", + label: null, + title: null, + url: "" + }; + } + function emphasis() { + return { + type: "emphasis", + children: [] + }; + } + function heading() { + return { + type: "heading", + depth: void 0, + children: [] + }; + } + function hardBreak() { + return { + type: "break" + }; + } + function html() { + return { + type: "html", + value: "" + }; + } + function image() { + return { + type: "image", + title: null, + url: "", + alt: null + }; + } + function link() { + return { + type: "link", + title: null, + url: "", + children: [] + }; + } + function list2(token) { + return { + type: "list", + ordered: token.type === "listOrdered", + start: null, + spread: token._spread, + children: [] + }; + } + function listItem(token) { + return { + type: "listItem", + spread: token._spread, + checked: null, + children: [] + }; + } + function paragraph() { + return { + type: "paragraph", + children: [] + }; + } + function strong() { + return { + type: "strong", + children: [] + }; + } + function text2() { + return { + type: "text", + value: "" + }; + } + function thematicBreak2() { + return { + type: "thematicBreak" + }; + } +} +function point(d) { + return { + line: d.line, + column: d.column, + offset: d.offset + }; +} +function configure(combined, extensions) { + let index2 = -1; + while (++index2 < extensions.length) { + const value = extensions[index2]; + if (Array.isArray(value)) { + configure(combined, value); + } else { + extension(combined, value); + } + } +} +function extension(combined, extension2) { + let key; + for (key in extension2) { + if (own.call(extension2, key)) { + if (key === "canContainEols") { + const right = extension2[key]; + if (right) { + combined[key].push(...right); + } + } else if (key === "transforms") { + const right = extension2[key]; + if (right) { + combined[key].push(...right); + } + } else if (key === "enter" || key === "exit") { + const right = extension2[key]; + if (right) { + Object.assign(combined[key], right); + } + } + } + } +} +function defaultOnError(left, right) { + if (left) { + throw new Error( + "Cannot close `" + left.type + "` (" + stringifyPosition({ + start: left.start, + end: left.end + }) + "): a different token (`" + right.type + "`, " + stringifyPosition({ + start: right.start, + end: right.end + }) + ") is open" + ); + } else { + throw new Error( + "Cannot close document, a token (`" + right.type + "`, " + stringifyPosition({ + start: right.start, + end: right.end + }) + ") is still open" + ); + } +} +function preprocessMarkdown(markdown) { + const withoutMultipleNewlines = markdown.replace(/\n{2,}/g, "\n"); + const withoutExtraSpaces = dedent(withoutMultipleNewlines); + return withoutExtraSpaces; +} +function markdownToLines(markdown) { + const preprocessedMarkdown = preprocessMarkdown(markdown); + const { children } = fromMarkdown(preprocessedMarkdown); + const lines = [[]]; + let currentLine = 0; + function processNode(node2, parentType = "normal") { + if (node2.type === "text") { + const textLines = node2.value.split("\n"); + textLines.forEach((textLine, index2) => { + if (index2 !== 0) { + currentLine++; + lines.push([]); + } + textLine.split(" ").forEach((word) => { + if (word) { + lines[currentLine].push({ content: word, type: parentType }); + } + }); + }); + } else if (node2.type === "strong" || node2.type === "emphasis") { + node2.children.forEach((contentNode) => { + processNode(contentNode, node2.type); + }); + } + } + children.forEach((treeNode) => { + if (treeNode.type === "paragraph") { + treeNode.children.forEach((contentNode) => { + processNode(contentNode); + }); + } + }); + return lines; +} +function markdownToHTML(markdown) { + const { children } = fromMarkdown(markdown); + function output(node2) { + if (node2.type === "text") { + return node2.value.replace(/\n/g, "
"); + } else if (node2.type === "strong") { + return `${node2.children.map(output).join("")}`; + } else if (node2.type === "emphasis") { + return `${node2.children.map(output).join("")}`; + } else if (node2.type === "paragraph") { + return `

${node2.children.map(output).join("")}

`; + } + return `Unsupported markdown: ${node2.type}`; + } + return children.map(output).join(""); +} +function splitTextToChars(text2) { + if (Intl.Segmenter) { + return [...new Intl.Segmenter().segment(text2)].map((s) => s.segment); + } + return [...text2]; +} +function splitWordToFitWidth(checkFit, word) { + const characters = splitTextToChars(word.content); + return splitWordToFitWidthRecursion(checkFit, [], characters, word.type); +} +function splitWordToFitWidthRecursion(checkFit, usedChars, remainingChars, type) { + if (remainingChars.length === 0) { + return [ + { content: usedChars.join(""), type }, + { content: "", type } + ]; + } + const [nextChar, ...rest] = remainingChars; + const newWord = [...usedChars, nextChar]; + if (checkFit([{ content: newWord.join(""), type }])) { + return splitWordToFitWidthRecursion(checkFit, newWord, rest, type); + } + if (usedChars.length === 0 && nextChar) { + usedChars.push(nextChar); + remainingChars.shift(); + } + return [ + { content: usedChars.join(""), type }, + { content: remainingChars.join(""), type } + ]; +} +function splitLineToFitWidth(line, checkFit) { + if (line.some(({ content: content2 }) => content2.includes("\n"))) { + throw new Error("splitLineToFitWidth does not support newlines in the line"); + } + return splitLineToFitWidthRecursion(line, checkFit); +} +function splitLineToFitWidthRecursion(words, checkFit, lines = [], newLine = []) { + if (words.length === 0) { + if (newLine.length > 0) { + lines.push(newLine); + } + return lines.length > 0 ? lines : []; + } + let joiner = ""; + if (words[0].content === " ") { + joiner = " "; + words.shift(); + } + const nextWord = words.shift() ?? { content: " ", type: "normal" }; + const lineWithNextWord = [...newLine]; + if (joiner !== "") { + lineWithNextWord.push({ content: joiner, type: "normal" }); + } + lineWithNextWord.push(nextWord); + if (checkFit(lineWithNextWord)) { + return splitLineToFitWidthRecursion(words, checkFit, lines, lineWithNextWord); + } + if (newLine.length > 0) { + lines.push(newLine); + words.unshift(nextWord); + } else if (nextWord.content) { + const [line, rest] = splitWordToFitWidth(checkFit, nextWord); + lines.push([line]); + if (rest.content) { + words.unshift(rest); + } + } + return splitLineToFitWidthRecursion(words, checkFit, lines); +} +function applyStyle(dom, styleFn) { + if (styleFn) { + dom.attr("style", styleFn); + } +} +function addHtmlSpan(element2, node2, width, classes, addBackground = false) { + const fo = element2.append("foreignObject"); + const div = fo.append("xhtml:div"); + const label = node2.label; + const labelClass = node2.isNode ? "nodeLabel" : "edgeLabel"; + div.html( + ` + " + label + "" + ); + applyStyle(div, node2.labelStyle); + div.style("display", "table-cell"); + div.style("white-space", "nowrap"); + div.style("max-width", width + "px"); + div.attr("xmlns", "http://www.w3.org/1999/xhtml"); + if (addBackground) { + div.attr("class", "labelBkg"); + } + let bbox = div.node().getBoundingClientRect(); + if (bbox.width === width) { + div.style("display", "table"); + div.style("white-space", "break-spaces"); + div.style("width", width + "px"); + bbox = div.node().getBoundingClientRect(); + } + fo.style("width", bbox.width); + fo.style("height", bbox.height); + return fo.node(); +} +function createTspan(textElement, lineIndex, lineHeight) { + return textElement.append("tspan").attr("class", "text-outer-tspan").attr("x", 0).attr("y", lineIndex * lineHeight - 0.1 + "em").attr("dy", lineHeight + "em"); +} +function computeWidthOfText(parentNode, lineHeight, line) { + const testElement = parentNode.append("text"); + const testSpan = createTspan(testElement, 1, lineHeight); + updateTextContentAndStyles(testSpan, line); + const textLength = testSpan.node().getComputedTextLength(); + testElement.remove(); + return textLength; +} +function computeDimensionOfText(parentNode, lineHeight, text2) { + var _a; + const testElement = parentNode.append("text"); + const testSpan = createTspan(testElement, 1, lineHeight); + updateTextContentAndStyles(testSpan, [{ content: text2, type: "normal" }]); + const textDimension = (_a = testSpan.node()) == null ? void 0 : _a.getBoundingClientRect(); + if (textDimension) { + testElement.remove(); + } + return textDimension; +} +function createFormattedText(width, g, structuredText, addBackground = false) { + const lineHeight = 1.1; + const labelGroup = g.append("g"); + const bkg = labelGroup.insert("rect").attr("class", "background"); + const textElement = labelGroup.append("text").attr("y", "-10.1"); + let lineIndex = 0; + for (const line of structuredText) { + const checkWidth = (line2) => computeWidthOfText(labelGroup, lineHeight, line2) <= width; + const linesUnderWidth = checkWidth(line) ? [line] : splitLineToFitWidth(line, checkWidth); + for (const preparedLine of linesUnderWidth) { + const tspan = createTspan(textElement, lineIndex, lineHeight); + updateTextContentAndStyles(tspan, preparedLine); + lineIndex++; + } + } + if (addBackground) { + const bbox = textElement.node().getBBox(); + const padding = 2; + bkg.attr("x", -padding).attr("y", -padding).attr("width", bbox.width + 2 * padding).attr("height", bbox.height + 2 * padding); + return labelGroup.node(); + } else { + return textElement.node(); + } +} +function updateTextContentAndStyles(tspan, wrappedLine) { + tspan.text(""); + wrappedLine.forEach((word, index2) => { + const innerTspan = tspan.append("tspan").attr("font-style", word.type === "emphasis" ? "italic" : "normal").attr("class", "text-inner-tspan").attr("font-weight", word.type === "strong" ? "bold" : "normal"); + if (index2 === 0) { + innerTspan.text(word.content); + } else { + innerTspan.text(" " + word.content); + } + }); +} +const createText = (el, text2 = "", { + style = "", + isTitle = false, + classes = "", + useHtmlLabels = true, + isNode = true, + width = 200, + addSvgBackground = false +} = {}) => { + log.info("createText", text2, style, isTitle, classes, useHtmlLabels, isNode, addSvgBackground); + if (useHtmlLabels) { + const htmlText2 = markdownToHTML(text2); + const node2 = { + isNode, + label: decodeEntities(htmlText2).replace( + /fa[blrs]?:fa-[\w-]+/g, + // cspell: disable-line + (s) => `` + ), + labelStyle: style.replace("fill:", "color:") + }; + const vertexNode = addHtmlSpan(el, node2, width, classes, addSvgBackground); + return vertexNode; + } else { + const structuredText = markdownToLines(text2); + const svgLabel = createFormattedText(width, el, structuredText, addSvgBackground); + return svgLabel; + } +}; +export { + createText as a, + computeDimensionOfText as c +}; diff --git a/assets/lib/mermaid/createText-ca0c5216.js b/assets/lib/mermaid/createText-ca0c5216.js new file mode 100644 index 000000000..f0810a252 --- /dev/null +++ b/assets/lib/mermaid/createText-ca0c5216.js @@ -0,0 +1,251 @@ +import { l as log, M as decodeEntities } from "./mermaid-6dc72991.js"; +import { fromMarkdown } from "mdast-util-from-markdown"; +import { dedent } from "ts-dedent"; +function preprocessMarkdown(markdown) { + const withoutMultipleNewlines = markdown.replace(/\n{2,}/g, "\n"); + const withoutExtraSpaces = dedent(withoutMultipleNewlines); + return withoutExtraSpaces; +} +function markdownToLines(markdown) { + const preprocessedMarkdown = preprocessMarkdown(markdown); + const { children } = fromMarkdown(preprocessedMarkdown); + const lines = [[]]; + let currentLine = 0; + function processNode(node, parentType = "normal") { + if (node.type === "text") { + const textLines = node.value.split("\n"); + textLines.forEach((textLine, index) => { + if (index !== 0) { + currentLine++; + lines.push([]); + } + textLine.split(" ").forEach((word) => { + if (word) { + lines[currentLine].push({ content: word, type: parentType }); + } + }); + }); + } else if (node.type === "strong" || node.type === "emphasis") { + node.children.forEach((contentNode) => { + processNode(contentNode, node.type); + }); + } + } + children.forEach((treeNode) => { + if (treeNode.type === "paragraph") { + treeNode.children.forEach((contentNode) => { + processNode(contentNode); + }); + } + }); + return lines; +} +function markdownToHTML(markdown) { + const { children } = fromMarkdown(markdown); + function output(node) { + if (node.type === "text") { + return node.value.replace(/\n/g, "
"); + } else if (node.type === "strong") { + return `${node.children.map(output).join("")}`; + } else if (node.type === "emphasis") { + return `${node.children.map(output).join("")}`; + } else if (node.type === "paragraph") { + return `

${node.children.map(output).join("")}

`; + } + return `Unsupported markdown: ${node.type}`; + } + return children.map(output).join(""); +} +function splitTextToChars(text) { + if (Intl.Segmenter) { + return [...new Intl.Segmenter().segment(text)].map((s) => s.segment); + } + return [...text]; +} +function splitWordToFitWidth(checkFit, word) { + const characters = splitTextToChars(word.content); + return splitWordToFitWidthRecursion(checkFit, [], characters, word.type); +} +function splitWordToFitWidthRecursion(checkFit, usedChars, remainingChars, type) { + if (remainingChars.length === 0) { + return [ + { content: usedChars.join(""), type }, + { content: "", type } + ]; + } + const [nextChar, ...rest] = remainingChars; + const newWord = [...usedChars, nextChar]; + if (checkFit([{ content: newWord.join(""), type }])) { + return splitWordToFitWidthRecursion(checkFit, newWord, rest, type); + } + if (usedChars.length === 0 && nextChar) { + usedChars.push(nextChar); + remainingChars.shift(); + } + return [ + { content: usedChars.join(""), type }, + { content: remainingChars.join(""), type } + ]; +} +function splitLineToFitWidth(line, checkFit) { + if (line.some(({ content }) => content.includes("\n"))) { + throw new Error("splitLineToFitWidth does not support newlines in the line"); + } + return splitLineToFitWidthRecursion(line, checkFit); +} +function splitLineToFitWidthRecursion(words, checkFit, lines = [], newLine = []) { + if (words.length === 0) { + if (newLine.length > 0) { + lines.push(newLine); + } + return lines.length > 0 ? lines : []; + } + let joiner = ""; + if (words[0].content === " ") { + joiner = " "; + words.shift(); + } + const nextWord = words.shift() ?? { content: " ", type: "normal" }; + const lineWithNextWord = [...newLine]; + if (joiner !== "") { + lineWithNextWord.push({ content: joiner, type: "normal" }); + } + lineWithNextWord.push(nextWord); + if (checkFit(lineWithNextWord)) { + return splitLineToFitWidthRecursion(words, checkFit, lines, lineWithNextWord); + } + if (newLine.length > 0) { + lines.push(newLine); + words.unshift(nextWord); + } else if (nextWord.content) { + const [line, rest] = splitWordToFitWidth(checkFit, nextWord); + lines.push([line]); + if (rest.content) { + words.unshift(rest); + } + } + return splitLineToFitWidthRecursion(words, checkFit, lines); +} +function applyStyle(dom, styleFn) { + if (styleFn) { + dom.attr("style", styleFn); + } +} +function addHtmlSpan(element, node, width, classes, addBackground = false) { + const fo = element.append("foreignObject"); + const div = fo.append("xhtml:div"); + const label = node.label; + const labelClass = node.isNode ? "nodeLabel" : "edgeLabel"; + div.html( + ` + " + label + "" + ); + applyStyle(div, node.labelStyle); + div.style("display", "table-cell"); + div.style("white-space", "nowrap"); + div.style("max-width", width + "px"); + div.attr("xmlns", "http://www.w3.org/1999/xhtml"); + if (addBackground) { + div.attr("class", "labelBkg"); + } + let bbox = div.node().getBoundingClientRect(); + if (bbox.width === width) { + div.style("display", "table"); + div.style("white-space", "break-spaces"); + div.style("width", width + "px"); + bbox = div.node().getBoundingClientRect(); + } + fo.style("width", bbox.width); + fo.style("height", bbox.height); + return fo.node(); +} +function createTspan(textElement, lineIndex, lineHeight) { + return textElement.append("tspan").attr("class", "text-outer-tspan").attr("x", 0).attr("y", lineIndex * lineHeight - 0.1 + "em").attr("dy", lineHeight + "em"); +} +function computeWidthOfText(parentNode, lineHeight, line) { + const testElement = parentNode.append("text"); + const testSpan = createTspan(testElement, 1, lineHeight); + updateTextContentAndStyles(testSpan, line); + const textLength = testSpan.node().getComputedTextLength(); + testElement.remove(); + return textLength; +} +function computeDimensionOfText(parentNode, lineHeight, text) { + var _a; + const testElement = parentNode.append("text"); + const testSpan = createTspan(testElement, 1, lineHeight); + updateTextContentAndStyles(testSpan, [{ content: text, type: "normal" }]); + const textDimension = (_a = testSpan.node()) == null ? void 0 : _a.getBoundingClientRect(); + if (textDimension) { + testElement.remove(); + } + return textDimension; +} +function createFormattedText(width, g, structuredText, addBackground = false) { + const lineHeight = 1.1; + const labelGroup = g.append("g"); + const bkg = labelGroup.insert("rect").attr("class", "background"); + const textElement = labelGroup.append("text").attr("y", "-10.1"); + let lineIndex = 0; + for (const line of structuredText) { + const checkWidth = (line2) => computeWidthOfText(labelGroup, lineHeight, line2) <= width; + const linesUnderWidth = checkWidth(line) ? [line] : splitLineToFitWidth(line, checkWidth); + for (const preparedLine of linesUnderWidth) { + const tspan = createTspan(textElement, lineIndex, lineHeight); + updateTextContentAndStyles(tspan, preparedLine); + lineIndex++; + } + } + if (addBackground) { + const bbox = textElement.node().getBBox(); + const padding = 2; + bkg.attr("x", -padding).attr("y", -padding).attr("width", bbox.width + 2 * padding).attr("height", bbox.height + 2 * padding); + return labelGroup.node(); + } else { + return textElement.node(); + } +} +function updateTextContentAndStyles(tspan, wrappedLine) { + tspan.text(""); + wrappedLine.forEach((word, index) => { + const innerTspan = tspan.append("tspan").attr("font-style", word.type === "emphasis" ? "italic" : "normal").attr("class", "text-inner-tspan").attr("font-weight", word.type === "strong" ? "bold" : "normal"); + if (index === 0) { + innerTspan.text(word.content); + } else { + innerTspan.text(" " + word.content); + } + }); +} +const createText = (el, text = "", { + style = "", + isTitle = false, + classes = "", + useHtmlLabels = true, + isNode = true, + width = 200, + addSvgBackground = false +} = {}) => { + log.info("createText", text, style, isTitle, classes, useHtmlLabels, isNode, addSvgBackground); + if (useHtmlLabels) { + const htmlText = markdownToHTML(text); + const node = { + isNode, + label: decodeEntities(htmlText).replace( + /fa[blrs]?:fa-[\w-]+/g, + // cspell: disable-line + (s) => `` + ), + labelStyle: style.replace("fill:", "color:") + }; + const vertexNode = addHtmlSpan(el, node, width, classes, addSvgBackground); + return vertexNode; + } else { + const structuredText = markdownToLines(text); + const svgLabel = createFormattedText(width, el, structuredText, addSvgBackground); + return svgLabel; + } +}; +export { + createText as a, + computeDimensionOfText as c +}; diff --git a/assets/lib/mermaid/edges-066a5561.js b/assets/lib/mermaid/edges-066a5561.js new file mode 100644 index 000000000..aee0212fc --- /dev/null +++ b/assets/lib/mermaid/edges-066a5561.js @@ -0,0 +1,1840 @@ +import { l as log, m as evaluate, c as getConfig, M as decodeEntities, d as sanitizeText, u as utils } from "./mermaid-6dc72991.js"; +import { select, line, curveBasis } from "d3"; +import { a as createText } from "./createText-ca0c5216.js"; +const insertMarkers = (elem, markerArray, type, id) => { + markerArray.forEach((markerName) => { + markers[markerName](elem, type, id); + }); +}; +const extension = (elem, type, id) => { + log.trace("Making markers for ", id); + elem.append("defs").append("marker").attr("id", id + "_" + type + "-extensionStart").attr("class", "marker extension " + type).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z"); + elem.append("defs").append("marker").attr("id", id + "_" + type + "-extensionEnd").attr("class", "marker extension " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z"); +}; +const composition = (elem, type, id) => { + elem.append("defs").append("marker").attr("id", id + "_" + type + "-compositionStart").attr("class", "marker composition " + type).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", id + "_" + type + "-compositionEnd").attr("class", "marker composition " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); +}; +const aggregation = (elem, type, id) => { + elem.append("defs").append("marker").attr("id", id + "_" + type + "-aggregationStart").attr("class", "marker aggregation " + type).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", id + "_" + type + "-aggregationEnd").attr("class", "marker aggregation " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); +}; +const dependency = (elem, type, id) => { + elem.append("defs").append("marker").attr("id", id + "_" + type + "-dependencyStart").attr("class", "marker dependency " + type).attr("refX", 6).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", id + "_" + type + "-dependencyEnd").attr("class", "marker dependency " + type).attr("refX", 13).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); +}; +const lollipop = (elem, type, id) => { + elem.append("defs").append("marker").attr("id", id + "_" + type + "-lollipopStart").attr("class", "marker lollipop " + type).attr("refX", 13).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6); + elem.append("defs").append("marker").attr("id", id + "_" + type + "-lollipopEnd").attr("class", "marker lollipop " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6); +}; +const point = (elem, type, id) => { + elem.append("marker").attr("id", id + "_" + type + "-pointEnd").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 6).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); + elem.append("marker").attr("id", id + "_" + type + "-pointStart").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 4.5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); +}; +const circle$1 = (elem, type, id) => { + elem.append("marker").attr("id", id + "_" + type + "-circleEnd").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); + elem.append("marker").attr("id", id + "_" + type + "-circleStart").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); +}; +const cross = (elem, type, id) => { + elem.append("marker").attr("id", id + "_" + type + "-crossEnd").attr("class", "marker cross " + type).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0"); + elem.append("marker").attr("id", id + "_" + type + "-crossStart").attr("class", "marker cross " + type).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0"); +}; +const barb = (elem, type, id) => { + elem.append("defs").append("marker").attr("id", id + "_" + type + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "strokeWidth").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z"); +}; +const markers = { + extension, + composition, + aggregation, + dependency, + lollipop, + point, + circle: circle$1, + cross, + barb +}; +const insertMarkers$1 = insertMarkers; +function applyStyle(dom, styleFn) { + if (styleFn) { + dom.attr("style", styleFn); + } +} +function addHtmlLabel(node) { + const fo = select(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject")); + const div = fo.append("xhtml:div"); + const label = node.label; + const labelClass = node.isNode ? "nodeLabel" : "edgeLabel"; + div.html( + '" + label + "" + ); + applyStyle(div, node.labelStyle); + div.style("display", "inline-block"); + div.style("white-space", "nowrap"); + div.attr("xmlns", "http://www.w3.org/1999/xhtml"); + return fo.node(); +} +const createLabel = (_vertexText, style, isTitle, isNode) => { + let vertexText = _vertexText || ""; + if (typeof vertexText === "object") { + vertexText = vertexText[0]; + } + if (evaluate(getConfig().flowchart.htmlLabels)) { + vertexText = vertexText.replace(/\\n|\n/g, "
"); + log.debug("vertexText" + vertexText); + const node = { + isNode, + label: decodeEntities(vertexText).replace( + /fa[blrs]?:fa-[\w-]+/g, + // cspell: disable-line + (s) => `` + ), + labelStyle: style.replace("fill:", "color:") + }; + let vertexNode = addHtmlLabel(node); + return vertexNode; + } else { + const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text"); + svgLabel.setAttribute("style", style.replace("color:", "fill:")); + let rows = []; + if (typeof vertexText === "string") { + rows = vertexText.split(/\\n|\n|/gi); + } else if (Array.isArray(vertexText)) { + rows = vertexText; + } else { + rows = []; + } + for (const row of rows) { + const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"); + tspan.setAttribute("dy", "1em"); + tspan.setAttribute("x", "0"); + if (isTitle) { + tspan.setAttribute("class", "title-row"); + } else { + tspan.setAttribute("class", "row"); + } + tspan.textContent = row.trim(); + svgLabel.appendChild(tspan); + } + return svgLabel; + } +}; +const createLabel$1 = createLabel; +const labelHelper = async (parent, node, _classes, isNode) => { + let classes; + const useHtmlLabels = node.useHtmlLabels || evaluate(getConfig().flowchart.htmlLabels); + if (!_classes) { + classes = "node default"; + } else { + classes = _classes; + } + const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id); + const label = shapeSvg.insert("g").attr("class", "label").attr("style", node.labelStyle); + let labelText; + if (node.labelText === void 0) { + labelText = ""; + } else { + labelText = typeof node.labelText === "string" ? node.labelText : node.labelText[0]; + } + const textNode = label.node(); + let text; + if (node.labelType === "markdown") { + text = createText(label, sanitizeText(decodeEntities(labelText), getConfig()), { + useHtmlLabels, + width: node.width || getConfig().flowchart.wrappingWidth, + classes: "markdown-node-label" + }); + } else { + text = textNode.appendChild( + createLabel$1( + sanitizeText(decodeEntities(labelText), getConfig()), + node.labelStyle, + false, + isNode + ) + ); + } + let bbox = text.getBBox(); + const halfPadding = node.padding / 2; + if (evaluate(getConfig().flowchart.htmlLabels)) { + const div = text.children[0]; + const dv = select(text); + const images = div.getElementsByTagName("img"); + if (images) { + const noImgText = labelText.replace(/]*>/g, "").trim() === ""; + await Promise.all( + [...images].map( + (img) => new Promise((res) => { + function setupImage() { + img.style.display = "flex"; + img.style.flexDirection = "column"; + if (noImgText) { + const bodyFontSize = getConfig().fontSize ? getConfig().fontSize : window.getComputedStyle(document.body).fontSize; + const enlargingFactor = 5; + const width = parseInt(bodyFontSize, 10) * enlargingFactor + "px"; + img.style.minWidth = width; + img.style.maxWidth = width; + } else { + img.style.width = "100%"; + } + res(img); + } + setTimeout(() => { + if (img.complete) { + setupImage(); + } + }); + img.addEventListener("error", setupImage); + img.addEventListener("load", setupImage); + }) + ) + ); + } + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + if (useHtmlLabels) { + label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")"); + } else { + label.attr("transform", "translate(0, " + -bbox.height / 2 + ")"); + } + if (node.centerLabel) { + label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")"); + } + label.insert("rect", ":first-child"); + return { shapeSvg, bbox, halfPadding, label }; +}; +const updateNodeBounds = (node, element) => { + const bbox = element.node().getBBox(); + node.width = bbox.width; + node.height = bbox.height; +}; +function insertPolygonShape(parent, w, h, points) { + return parent.insert("polygon", ":first-child").attr( + "points", + points.map(function(d) { + return d.x + "," + d.y; + }).join(" ") + ).attr("class", "label-container").attr("transform", "translate(" + -w / 2 + "," + h / 2 + ")"); +} +function intersectNode(node, point2) { + return node.intersect(point2); +} +function intersectEllipse(node, rx, ry, point2) { + var cx = node.x; + var cy = node.y; + var px = cx - point2.x; + var py = cy - point2.y; + var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px); + var dx = Math.abs(rx * ry * px / det); + if (point2.x < cx) { + dx = -dx; + } + var dy = Math.abs(rx * ry * py / det); + if (point2.y < cy) { + dy = -dy; + } + return { x: cx + dx, y: cy + dy }; +} +function intersectCircle(node, rx, point2) { + return intersectEllipse(node, rx, rx, point2); +} +function intersectLine(p1, p2, q1, q2) { + var a1, a2, b1, b2, c1, c2; + var r1, r2, r3, r4; + var denom, offset, num; + var x, y; + a1 = p2.y - p1.y; + b1 = p1.x - p2.x; + c1 = p2.x * p1.y - p1.x * p2.y; + r3 = a1 * q1.x + b1 * q1.y + c1; + r4 = a1 * q2.x + b1 * q2.y + c1; + if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) { + return; + } + a2 = q2.y - q1.y; + b2 = q1.x - q2.x; + c2 = q2.x * q1.y - q1.x * q2.y; + r1 = a2 * p1.x + b2 * p1.y + c2; + r2 = a2 * p2.x + b2 * p2.y + c2; + if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) { + return; + } + denom = a1 * b2 - a2 * b1; + if (denom === 0) { + return; + } + offset = Math.abs(denom / 2); + num = b1 * c2 - b2 * c1; + x = num < 0 ? (num - offset) / denom : (num + offset) / denom; + num = a2 * c1 - a1 * c2; + y = num < 0 ? (num - offset) / denom : (num + offset) / denom; + return { x, y }; +} +function sameSign(r1, r2) { + return r1 * r2 > 0; +} +function intersectPolygon(node, polyPoints, point2) { + var x1 = node.x; + var y1 = node.y; + var intersections = []; + var minX = Number.POSITIVE_INFINITY; + var minY = Number.POSITIVE_INFINITY; + if (typeof polyPoints.forEach === "function") { + polyPoints.forEach(function(entry) { + minX = Math.min(minX, entry.x); + minY = Math.min(minY, entry.y); + }); + } else { + minX = Math.min(minX, polyPoints.x); + minY = Math.min(minY, polyPoints.y); + } + var left = x1 - node.width / 2 - minX; + var top = y1 - node.height / 2 - minY; + for (var i = 0; i < polyPoints.length; i++) { + var p1 = polyPoints[i]; + var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0]; + var intersect2 = intersectLine( + node, + point2, + { x: left + p1.x, y: top + p1.y }, + { x: left + p2.x, y: top + p2.y } + ); + if (intersect2) { + intersections.push(intersect2); + } + } + if (!intersections.length) { + return node; + } + if (intersections.length > 1) { + intersections.sort(function(p, q) { + var pdx = p.x - point2.x; + var pdy = p.y - point2.y; + var distp = Math.sqrt(pdx * pdx + pdy * pdy); + var qdx = q.x - point2.x; + var qdy = q.y - point2.y; + var distq = Math.sqrt(qdx * qdx + qdy * qdy); + return distp < distq ? -1 : distp === distq ? 0 : 1; + }); + } + return intersections[0]; +} +const intersectRect = (node, point2) => { + var x = node.x; + var y = node.y; + var dx = point2.x - x; + var dy = point2.y - y; + var w = node.width / 2; + var h = node.height / 2; + var sx, sy; + if (Math.abs(dy) * w > Math.abs(dx) * h) { + if (dy < 0) { + h = -h; + } + sx = dy === 0 ? 0 : h * dx / dy; + sy = h; + } else { + if (dx < 0) { + w = -w; + } + sx = w; + sy = dx === 0 ? 0 : w * dy / dx; + } + return { x: x + sx, y: y + sy }; +}; +const intersectRect$1 = intersectRect; +const intersect = { + node: intersectNode, + circle: intersectCircle, + ellipse: intersectEllipse, + polygon: intersectPolygon, + rect: intersectRect$1 +}; +const note = async (parent, node) => { + const useHtmlLabels = node.useHtmlLabels || getConfig().flowchart.htmlLabels; + if (!useHtmlLabels) { + node.centerLabel = true; + } + const { shapeSvg, bbox, halfPadding } = await labelHelper( + parent, + node, + "node " + node.classes, + true + ); + log.info("Classes = ", node.classes); + const rect2 = shapeSvg.insert("rect", ":first-child"); + rect2.attr("rx", node.rx).attr("ry", node.ry).attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding); + updateNodeBounds(node, rect2); + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +const note$1 = note; +const expandAndDeduplicateDirections = (directions) => { + const uniqueDirections = /* @__PURE__ */ new Set(); + for (const direction of directions) { + switch (direction) { + case "x": + uniqueDirections.add("right"); + uniqueDirections.add("left"); + break; + case "y": + uniqueDirections.add("up"); + uniqueDirections.add("down"); + break; + default: + uniqueDirections.add(direction); + break; + } + } + return uniqueDirections; +}; +const getArrowPoints = (duplicatedDirections, bbox, node) => { + const directions = expandAndDeduplicateDirections(duplicatedDirections); + const f = 2; + const height = bbox.height + 2 * node.padding; + const midpoint = height / f; + const width = bbox.width + 2 * midpoint + node.padding; + const padding = node.padding / 2; + if (directions.has("right") && directions.has("left") && directions.has("up") && directions.has("down")) { + return [ + // Bottom + { x: 0, y: 0 }, + { x: midpoint, y: 0 }, + { x: width / 2, y: 2 * padding }, + { x: width - midpoint, y: 0 }, + { x: width, y: 0 }, + // Right + { x: width, y: -height / 3 }, + { x: width + 2 * padding, y: -height / 2 }, + { x: width, y: -2 * height / 3 }, + { x: width, y: -height }, + // Top + { x: width - midpoint, y: -height }, + { x: width / 2, y: -height - 2 * padding }, + { x: midpoint, y: -height }, + // Left + { x: 0, y: -height }, + { x: 0, y: -2 * height / 3 }, + { x: -2 * padding, y: -height / 2 }, + { x: 0, y: -height / 3 } + ]; + } + if (directions.has("right") && directions.has("left") && directions.has("up")) { + return [ + { x: midpoint, y: 0 }, + { x: width - midpoint, y: 0 }, + { x: width, y: -height / 2 }, + { x: width - midpoint, y: -height }, + { x: midpoint, y: -height }, + { x: 0, y: -height / 2 } + ]; + } + if (directions.has("right") && directions.has("left") && directions.has("down")) { + return [ + { x: 0, y: 0 }, + { x: midpoint, y: -height }, + { x: width - midpoint, y: -height }, + { x: width, y: 0 } + ]; + } + if (directions.has("right") && directions.has("up") && directions.has("down")) { + return [ + { x: 0, y: 0 }, + { x: width, y: -midpoint }, + { x: width, y: -height + midpoint }, + { x: 0, y: -height } + ]; + } + if (directions.has("left") && directions.has("up") && directions.has("down")) { + return [ + { x: width, y: 0 }, + { x: 0, y: -midpoint }, + { x: 0, y: -height + midpoint }, + { x: width, y: -height } + ]; + } + if (directions.has("right") && directions.has("left")) { + return [ + { x: midpoint, y: 0 }, + { x: midpoint, y: -padding }, + { x: width - midpoint, y: -padding }, + { x: width - midpoint, y: 0 }, + { x: width, y: -height / 2 }, + { x: width - midpoint, y: -height }, + { x: width - midpoint, y: -height + padding }, + { x: midpoint, y: -height + padding }, + { x: midpoint, y: -height }, + { x: 0, y: -height / 2 } + ]; + } + if (directions.has("up") && directions.has("down")) { + return [ + // Bottom center + { x: width / 2, y: 0 }, + // Left pont of bottom arrow + { x: 0, y: -padding }, + { x: midpoint, y: -padding }, + // Left top over vertical section + { x: midpoint, y: -height + padding }, + { x: 0, y: -height + padding }, + // Top of arrow + { x: width / 2, y: -height }, + { x: width, y: -height + padding }, + // Top of right vertical bar + { x: width - midpoint, y: -height + padding }, + { x: width - midpoint, y: -padding }, + { x: width, y: -padding } + ]; + } + if (directions.has("right") && directions.has("up")) { + return [ + { x: 0, y: 0 }, + { x: width, y: -midpoint }, + { x: 0, y: -height } + ]; + } + if (directions.has("right") && directions.has("down")) { + return [ + { x: 0, y: 0 }, + { x: width, y: 0 }, + { x: 0, y: -height } + ]; + } + if (directions.has("left") && directions.has("up")) { + return [ + { x: width, y: 0 }, + { x: 0, y: -midpoint }, + { x: width, y: -height } + ]; + } + if (directions.has("left") && directions.has("down")) { + return [ + { x: width, y: 0 }, + { x: 0, y: 0 }, + { x: width, y: -height } + ]; + } + if (directions.has("right")) { + return [ + { x: midpoint, y: -padding }, + { x: midpoint, y: -padding }, + { x: width - midpoint, y: -padding }, + { x: width - midpoint, y: 0 }, + { x: width, y: -height / 2 }, + { x: width - midpoint, y: -height }, + { x: width - midpoint, y: -height + padding }, + // top left corner of arrow + { x: midpoint, y: -height + padding }, + { x: midpoint, y: -height + padding } + ]; + } + if (directions.has("left")) { + return [ + { x: midpoint, y: 0 }, + { x: midpoint, y: -padding }, + // Two points, the right corners + { x: width - midpoint, y: -padding }, + { x: width - midpoint, y: -height + padding }, + { x: midpoint, y: -height + padding }, + { x: midpoint, y: -height }, + { x: 0, y: -height / 2 } + ]; + } + if (directions.has("up")) { + return [ + // Bottom center + { x: midpoint, y: -padding }, + // Left top over vertical section + { x: midpoint, y: -height + padding }, + { x: 0, y: -height + padding }, + // Top of arrow + { x: width / 2, y: -height }, + { x: width, y: -height + padding }, + // Top of right vertical bar + { x: width - midpoint, y: -height + padding }, + { x: width - midpoint, y: -padding } + ]; + } + if (directions.has("down")) { + return [ + // Bottom center + { x: width / 2, y: 0 }, + // Left pont of bottom arrow + { x: 0, y: -padding }, + { x: midpoint, y: -padding }, + // Left top over vertical section + { x: midpoint, y: -height + padding }, + { x: width - midpoint, y: -height + padding }, + { x: width - midpoint, y: -padding }, + { x: width, y: -padding } + ]; + } + return [{ x: 0, y: 0 }]; +}; +const formatClass = (str) => { + if (str) { + return " " + str; + } + return ""; +}; +const getClassesFromNode = (node, otherClasses) => { + return `${otherClasses ? otherClasses : "node default"}${formatClass(node.classes)} ${formatClass( + node.class + )}`; +}; +const question = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const s = w + h; + const points = [ + { x: s / 2, y: 0 }, + { x: s, y: -s / 2 }, + { x: s / 2, y: -s }, + { x: 0, y: -s / 2 } + ]; + log.info("Question main (Circle)"); + const questionElem = insertPolygonShape(shapeSvg, s, s, points); + questionElem.attr("style", node.style); + updateNodeBounds(node, questionElem); + node.intersect = function(point2) { + log.warn("Intersect called"); + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const choice = (parent, node) => { + const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id); + const s = 28; + const points = [ + { x: 0, y: s / 2 }, + { x: s / 2, y: 0 }, + { x: 0, y: -s / 2 }, + { x: -s / 2, y: 0 } + ]; + const choice2 = shapeSvg.insert("polygon", ":first-child").attr( + "points", + points.map(function(d) { + return d.x + "," + d.y; + }).join(" ") + ); + choice2.attr("class", "state-start").attr("r", 7).attr("width", 28).attr("height", 28); + node.width = 28; + node.height = 28; + node.intersect = function(point2) { + return intersect.circle(node, 14, point2); + }; + return shapeSvg; +}; +const hexagon = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const f = 4; + const h = bbox.height + node.padding; + const m = h / f; + const w = bbox.width + 2 * m + node.padding; + const points = [ + { x: m, y: 0 }, + { x: w - m, y: 0 }, + { x: w, y: -h / 2 }, + { x: w - m, y: -h }, + { x: m, y: -h }, + { x: 0, y: -h / 2 } + ]; + const hex = insertPolygonShape(shapeSvg, w, h, points); + hex.attr("style", node.style); + updateNodeBounds(node, hex); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const block_arrow = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true); + const f = 2; + const h = bbox.height + 2 * node.padding; + const m = h / f; + const w = bbox.width + 2 * m + node.padding; + const points = getArrowPoints(node.directions, bbox, node); + const blockArrow = insertPolygonShape(shapeSvg, w, h, points); + blockArrow.attr("style", node.style); + updateNodeBounds(node, blockArrow); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const rect_left_inv_arrow = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: -h / 2, y: 0 }, + { x: w, y: 0 }, + { x: w, y: -h }, + { x: -h / 2, y: -h }, + { x: 0, y: -h / 2 } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + el.attr("style", node.style); + node.width = w + h; + node.height = h; + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const lean_right = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper(parent, node, getClassesFromNode(node), true); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: -2 * h / 6, y: 0 }, + { x: w - h / 6, y: 0 }, + { x: w + 2 * h / 6, y: -h }, + { x: h / 6, y: -h } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + el.attr("style", node.style); + updateNodeBounds(node, el); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const lean_left = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: 2 * h / 6, y: 0 }, + { x: w + h / 6, y: 0 }, + { x: w - 2 * h / 6, y: -h }, + { x: -h / 6, y: -h } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + el.attr("style", node.style); + updateNodeBounds(node, el); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const trapezoid = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: -2 * h / 6, y: 0 }, + { x: w + 2 * h / 6, y: 0 }, + { x: w - h / 6, y: -h }, + { x: h / 6, y: -h } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + el.attr("style", node.style); + updateNodeBounds(node, el); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const inv_trapezoid = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: h / 6, y: 0 }, + { x: w - h / 6, y: 0 }, + { x: w + 2 * h / 6, y: -h }, + { x: -2 * h / 6, y: -h } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + el.attr("style", node.style); + updateNodeBounds(node, el); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const rect_right_inv_arrow = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: 0, y: 0 }, + { x: w + h / 2, y: 0 }, + { x: w, y: -h / 2 }, + { x: w + h / 2, y: -h }, + { x: 0, y: -h } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + el.attr("style", node.style); + updateNodeBounds(node, el); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const cylinder = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const rx = w / 2; + const ry = rx / (2.5 + w / 50); + const h = bbox.height + ry + node.padding; + const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 a " + rx + "," + ry + " 0,0,0 " + -w + " 0 l 0," + h + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 l 0," + -h; + const el = shapeSvg.attr("label-offset-y", ry).insert("path", ":first-child").attr("style", node.style).attr("d", shape).attr("transform", "translate(" + -w / 2 + "," + -(h / 2 + ry) + ")"); + updateNodeBounds(node, el); + node.intersect = function(point2) { + const pos = intersect.rect(node, point2); + const x = pos.x - node.x; + if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) { + let y = ry * ry * (1 - x * x / (rx * rx)); + if (y != 0) { + y = Math.sqrt(y); + } + y = ry - y; + if (point2.y - node.y > 0) { + y = -y; + } + pos.y += y; + } + return pos; + }; + return shapeSvg; +}; +const rect = async (parent, node) => { + const { shapeSvg, bbox, halfPadding } = await labelHelper( + parent, + node, + "node " + node.classes + " " + node.class, + true + ); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const totalWidth = node.positioned ? node.width : bbox.width + node.padding; + const totalHeight = node.positioned ? node.height : bbox.height + node.padding; + const x = node.positioned ? -totalWidth / 2 : -bbox.width / 2 - halfPadding; + const y = node.positioned ? -totalHeight / 2 : -bbox.height / 2 - halfPadding; + rect2.attr("class", "basic label-container").attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("x", x).attr("y", y).attr("width", totalWidth).attr("height", totalHeight); + if (node.props) { + const propKeys = new Set(Object.keys(node.props)); + if (node.props.borders) { + applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight); + propKeys.delete("borders"); + } + propKeys.forEach((propKey) => { + log.warn(`Unknown node property ${propKey}`); + }); + } + updateNodeBounds(node, rect2); + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +const composite = async (parent, node) => { + const { shapeSvg, bbox, halfPadding } = await labelHelper( + parent, + node, + "node " + node.classes, + true + ); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const totalWidth = node.positioned ? node.width : bbox.width + node.padding; + const totalHeight = node.positioned ? node.height : bbox.height + node.padding; + const x = node.positioned ? -totalWidth / 2 : -bbox.width / 2 - halfPadding; + const y = node.positioned ? -totalHeight / 2 : -bbox.height / 2 - halfPadding; + rect2.attr("class", "basic cluster composite label-container").attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("x", x).attr("y", y).attr("width", totalWidth).attr("height", totalHeight); + if (node.props) { + const propKeys = new Set(Object.keys(node.props)); + if (node.props.borders) { + applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight); + propKeys.delete("borders"); + } + propKeys.forEach((propKey) => { + log.warn(`Unknown node property ${propKey}`); + }); + } + updateNodeBounds(node, rect2); + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +const labelRect = async (parent, node) => { + const { shapeSvg } = await labelHelper(parent, node, "label", true); + log.trace("Classes = ", node.class); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const totalWidth = 0; + const totalHeight = 0; + rect2.attr("width", totalWidth).attr("height", totalHeight); + shapeSvg.attr("class", "label edgeLabel"); + if (node.props) { + const propKeys = new Set(Object.keys(node.props)); + if (node.props.borders) { + applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight); + propKeys.delete("borders"); + } + propKeys.forEach((propKey) => { + log.warn(`Unknown node property ${propKey}`); + }); + } + updateNodeBounds(node, rect2); + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +function applyNodePropertyBorders(rect2, borders, totalWidth, totalHeight) { + const strokeDashArray = []; + const addBorder = (length) => { + strokeDashArray.push(length, 0); + }; + const skipBorder = (length) => { + strokeDashArray.push(0, length); + }; + if (borders.includes("t")) { + log.debug("add top border"); + addBorder(totalWidth); + } else { + skipBorder(totalWidth); + } + if (borders.includes("r")) { + log.debug("add right border"); + addBorder(totalHeight); + } else { + skipBorder(totalHeight); + } + if (borders.includes("b")) { + log.debug("add bottom border"); + addBorder(totalWidth); + } else { + skipBorder(totalWidth); + } + if (borders.includes("l")) { + log.debug("add left border"); + addBorder(totalHeight); + } else { + skipBorder(totalHeight); + } + rect2.attr("stroke-dasharray", strokeDashArray.join(" ")); +} +const rectWithTitle = (parent, node) => { + let classes; + if (!node.classes) { + classes = "node default"; + } else { + classes = "node " + node.classes; + } + const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const innerLine = shapeSvg.insert("line"); + const label = shapeSvg.insert("g").attr("class", "label"); + const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText; + let title = ""; + if (typeof text2 === "object") { + title = text2[0]; + } else { + title = text2; + } + log.info("Label text abc79", title, text2, typeof text2 === "object"); + const text = label.node().appendChild(createLabel$1(title, node.labelStyle, true, true)); + let bbox = { width: 0, height: 0 }; + if (evaluate(getConfig().flowchart.htmlLabels)) { + const div = text.children[0]; + const dv = select(text); + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + log.info("Text 2", text2); + const textRows = text2.slice(1, text2.length); + let titleBox = text.getBBox(); + const descr = label.node().appendChild( + createLabel$1(textRows.join ? textRows.join("
") : textRows, node.labelStyle, true, true) + ); + if (evaluate(getConfig().flowchart.htmlLabels)) { + const div = descr.children[0]; + const dv = select(descr); + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + const halfPadding = node.padding / 2; + select(descr).attr( + "transform", + "translate( " + // (titleBox.width - bbox.width) / 2 + + (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + ", " + (titleBox.height + halfPadding + 5) + ")" + ); + select(text).attr( + "transform", + "translate( " + // (titleBox.width - bbox.width) / 2 + + (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + ", 0)" + ); + bbox = label.node().getBBox(); + label.attr( + "transform", + "translate(" + -bbox.width / 2 + ", " + (-bbox.height / 2 - halfPadding + 3) + ")" + ); + rect2.attr("class", "outer title-state").attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding); + innerLine.attr("class", "divider").attr("x1", -bbox.width / 2 - halfPadding).attr("x2", bbox.width / 2 + halfPadding).attr("y1", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr("y2", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding); + updateNodeBounds(node, rect2); + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +const stadium = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const h = bbox.height + node.padding; + const w = bbox.width + h / 4 + node.padding; + const rect2 = shapeSvg.insert("rect", ":first-child").attr("style", node.style).attr("rx", h / 2).attr("ry", h / 2).attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h); + updateNodeBounds(node, rect2); + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +const circle = async (parent, node) => { + const { shapeSvg, bbox, halfPadding } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const circle2 = shapeSvg.insert("circle", ":first-child"); + circle2.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding); + log.info("Circle main"); + updateNodeBounds(node, circle2); + node.intersect = function(point2) { + log.info("Circle intersect", node, bbox.width / 2 + halfPadding, point2); + return intersect.circle(node, bbox.width / 2 + halfPadding, point2); + }; + return shapeSvg; +}; +const doublecircle = async (parent, node) => { + const { shapeSvg, bbox, halfPadding } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const gap = 5; + const circleGroup = shapeSvg.insert("g", ":first-child"); + const outerCircle = circleGroup.insert("circle"); + const innerCircle = circleGroup.insert("circle"); + circleGroup.attr("class", node.class); + outerCircle.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding + gap).attr("width", bbox.width + node.padding + gap * 2).attr("height", bbox.height + node.padding + gap * 2); + innerCircle.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding); + log.info("DoubleCircle main"); + updateNodeBounds(node, outerCircle); + node.intersect = function(point2) { + log.info("DoubleCircle intersect", node, bbox.width / 2 + halfPadding + gap, point2); + return intersect.circle(node, bbox.width / 2 + halfPadding + gap, point2); + }; + return shapeSvg; +}; +const subroutine = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: 0, y: 0 }, + { x: w, y: 0 }, + { x: w, y: -h }, + { x: 0, y: -h }, + { x: 0, y: 0 }, + { x: -8, y: 0 }, + { x: w + 8, y: 0 }, + { x: w + 8, y: -h }, + { x: -8, y: -h }, + { x: -8, y: 0 } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + el.attr("style", node.style); + updateNodeBounds(node, el); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const start = (parent, node) => { + const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id); + const circle2 = shapeSvg.insert("circle", ":first-child"); + circle2.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14); + updateNodeBounds(node, circle2); + node.intersect = function(point2) { + return intersect.circle(node, 7, point2); + }; + return shapeSvg; +}; +const forkJoin = (parent, node, dir) => { + const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id); + let width = 70; + let height = 10; + if (dir === "LR") { + width = 10; + height = 70; + } + const shape = shapeSvg.append("rect").attr("x", -1 * width / 2).attr("y", -1 * height / 2).attr("width", width).attr("height", height).attr("class", "fork-join"); + updateNodeBounds(node, shape); + node.height = node.height + node.padding / 2; + node.width = node.width + node.padding / 2; + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +const end = (parent, node) => { + const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id); + const innerCircle = shapeSvg.insert("circle", ":first-child"); + const circle2 = shapeSvg.insert("circle", ":first-child"); + circle2.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14); + innerCircle.attr("class", "state-end").attr("r", 5).attr("width", 10).attr("height", 10); + updateNodeBounds(node, circle2); + node.intersect = function(point2) { + return intersect.circle(node, 7, point2); + }; + return shapeSvg; +}; +const class_box = (parent, node) => { + const halfPadding = node.padding / 2; + const rowPadding = 4; + const lineHeight = 8; + let classes; + if (!node.classes) { + classes = "node default"; + } else { + classes = "node " + node.classes; + } + const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const topLine = shapeSvg.insert("line"); + const bottomLine = shapeSvg.insert("line"); + let maxWidth = 0; + let maxHeight = rowPadding; + const labelContainer = shapeSvg.insert("g").attr("class", "label"); + let verticalPos = 0; + const hasInterface = node.classData.annotations && node.classData.annotations[0]; + const interfaceLabelText = node.classData.annotations[0] ? "«" + node.classData.annotations[0] + "»" : ""; + const interfaceLabel = labelContainer.node().appendChild(createLabel$1(interfaceLabelText, node.labelStyle, true, true)); + let interfaceBBox = interfaceLabel.getBBox(); + if (evaluate(getConfig().flowchart.htmlLabels)) { + const div = interfaceLabel.children[0]; + const dv = select(interfaceLabel); + interfaceBBox = div.getBoundingClientRect(); + dv.attr("width", interfaceBBox.width); + dv.attr("height", interfaceBBox.height); + } + if (node.classData.annotations[0]) { + maxHeight += interfaceBBox.height + rowPadding; + maxWidth += interfaceBBox.width; + } + let classTitleString = node.classData.label; + if (node.classData.type !== void 0 && node.classData.type !== "") { + if (getConfig().flowchart.htmlLabels) { + classTitleString += "<" + node.classData.type + ">"; + } else { + classTitleString += "<" + node.classData.type + ">"; + } + } + const classTitleLabel = labelContainer.node().appendChild(createLabel$1(classTitleString, node.labelStyle, true, true)); + select(classTitleLabel).attr("class", "classTitle"); + let classTitleBBox = classTitleLabel.getBBox(); + if (evaluate(getConfig().flowchart.htmlLabels)) { + const div = classTitleLabel.children[0]; + const dv = select(classTitleLabel); + classTitleBBox = div.getBoundingClientRect(); + dv.attr("width", classTitleBBox.width); + dv.attr("height", classTitleBBox.height); + } + maxHeight += classTitleBBox.height + rowPadding; + if (classTitleBBox.width > maxWidth) { + maxWidth = classTitleBBox.width; + } + const classAttributes = []; + node.classData.members.forEach((member) => { + const parsedInfo = member.getDisplayDetails(); + let parsedText = parsedInfo.displayText; + if (getConfig().flowchart.htmlLabels) { + parsedText = parsedText.replace(//g, ">"); + } + const lbl = labelContainer.node().appendChild( + createLabel$1( + parsedText, + parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle, + true, + true + ) + ); + let bbox = lbl.getBBox(); + if (evaluate(getConfig().flowchart.htmlLabels)) { + const div = lbl.children[0]; + const dv = select(lbl); + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + if (bbox.width > maxWidth) { + maxWidth = bbox.width; + } + maxHeight += bbox.height + rowPadding; + classAttributes.push(lbl); + }); + maxHeight += lineHeight; + const classMethods = []; + node.classData.methods.forEach((member) => { + const parsedInfo = member.getDisplayDetails(); + let displayText = parsedInfo.displayText; + if (getConfig().flowchart.htmlLabels) { + displayText = displayText.replace(//g, ">"); + } + const lbl = labelContainer.node().appendChild( + createLabel$1( + displayText, + parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle, + true, + true + ) + ); + let bbox = lbl.getBBox(); + if (evaluate(getConfig().flowchart.htmlLabels)) { + const div = lbl.children[0]; + const dv = select(lbl); + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + if (bbox.width > maxWidth) { + maxWidth = bbox.width; + } + maxHeight += bbox.height + rowPadding; + classMethods.push(lbl); + }); + maxHeight += lineHeight; + if (hasInterface) { + let diffX2 = (maxWidth - interfaceBBox.width) / 2; + select(interfaceLabel).attr( + "transform", + "translate( " + (-1 * maxWidth / 2 + diffX2) + ", " + -1 * maxHeight / 2 + ")" + ); + verticalPos = interfaceBBox.height + rowPadding; + } + let diffX = (maxWidth - classTitleBBox.width) / 2; + select(classTitleLabel).attr( + "transform", + "translate( " + (-1 * maxWidth / 2 + diffX) + ", " + (-1 * maxHeight / 2 + verticalPos) + ")" + ); + verticalPos += classTitleBBox.height + rowPadding; + topLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos); + verticalPos += lineHeight; + classAttributes.forEach((lbl) => { + select(lbl).attr( + "transform", + "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + ")" + ); + const memberBBox = lbl == null ? void 0 : lbl.getBBox(); + verticalPos += ((memberBBox == null ? void 0 : memberBBox.height) ?? 0) + rowPadding; + }); + verticalPos += lineHeight; + bottomLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos); + verticalPos += lineHeight; + classMethods.forEach((lbl) => { + select(lbl).attr( + "transform", + "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos) + ")" + ); + const memberBBox = lbl == null ? void 0 : lbl.getBBox(); + verticalPos += ((memberBBox == null ? void 0 : memberBBox.height) ?? 0) + rowPadding; + }); + rect2.attr("style", node.style).attr("class", "outer title-state").attr("x", -maxWidth / 2 - halfPadding).attr("y", -(maxHeight / 2) - halfPadding).attr("width", maxWidth + node.padding).attr("height", maxHeight + node.padding); + updateNodeBounds(node, rect2); + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +const shapes = { + rhombus: question, + composite, + question, + rect, + labelRect, + rectWithTitle, + choice, + circle, + doublecircle, + stadium, + hexagon, + block_arrow, + rect_left_inv_arrow, + lean_right, + lean_left, + trapezoid, + inv_trapezoid, + rect_right_inv_arrow, + cylinder, + start, + end, + note: note$1, + subroutine, + fork: forkJoin, + join: forkJoin, + class_box +}; +let nodeElems = {}; +const insertNode = async (elem, node, dir) => { + let newEl; + let el; + if (node.link) { + let target; + if (getConfig().securityLevel === "sandbox") { + target = "_top"; + } else if (node.linkTarget) { + target = node.linkTarget || "_blank"; + } + newEl = elem.insert("svg:a").attr("xlink:href", node.link).attr("target", target); + el = await shapes[node.shape](newEl, node, dir); + } else { + el = await shapes[node.shape](elem, node, dir); + newEl = el; + } + if (node.tooltip) { + el.attr("title", node.tooltip); + } + if (node.class) { + el.attr("class", "node default " + node.class); + } + newEl.attr("data-node", "true"); + newEl.attr("data-id", node.id); + nodeElems[node.id] = newEl; + if (node.haveCallback) { + nodeElems[node.id].attr("class", nodeElems[node.id].attr("class") + " clickable"); + } + return newEl; +}; +const setNodeElem = (elem, node) => { + nodeElems[node.id] = elem; +}; +const clear$1 = () => { + nodeElems = {}; +}; +const positionNode = (node) => { + const el = nodeElems[node.id]; + log.trace( + "Transforming node", + node.diff, + node, + "translate(" + (node.x - node.width / 2 - 5) + ", " + node.width / 2 + ")" + ); + const padding = 8; + const diff = node.diff || 0; + if (node.clusterNode) { + el.attr( + "transform", + "translate(" + (node.x + diff - node.width / 2) + ", " + (node.y - node.height / 2 - padding) + ")" + ); + } else { + el.attr("transform", "translate(" + node.x + ", " + node.y + ")"); + } + return diff; +}; +const getSubGraphTitleMargins = ({ + flowchart +}) => { + var _a, _b; + const subGraphTitleTopMargin = ((_a = flowchart == null ? void 0 : flowchart.subGraphTitleMargin) == null ? void 0 : _a.top) ?? 0; + const subGraphTitleBottomMargin = ((_b = flowchart == null ? void 0 : flowchart.subGraphTitleMargin) == null ? void 0 : _b.bottom) ?? 0; + const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin; + return { + subGraphTitleTopMargin, + subGraphTitleBottomMargin, + subGraphTitleTotalMargin + }; +}; +const markerOffsets = { + aggregation: 18, + extension: 18, + composition: 18, + dependency: 6, + lollipop: 13.5, + arrow_point: 5.3 +}; +function calculateDeltaAndAngle(point1, point2) { + if (point1 === void 0 || point2 === void 0) { + return { angle: 0, deltaX: 0, deltaY: 0 }; + } + point1 = pointTransformer(point1); + point2 = pointTransformer(point2); + const [x1, y1] = [point1.x, point1.y]; + const [x2, y2] = [point2.x, point2.y]; + const deltaX = x2 - x1; + const deltaY = y2 - y1; + return { angle: Math.atan(deltaY / deltaX), deltaX, deltaY }; +} +const pointTransformer = (data) => { + if (Array.isArray(data)) { + return { x: data[0], y: data[1] }; + } + return data; +}; +const getLineFunctionsWithOffset = (edge) => { + return { + x: function(d, i, data) { + let offset = 0; + if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) { + const { angle, deltaX } = calculateDeltaAndAngle(data[0], data[1]); + offset = markerOffsets[edge.arrowTypeStart] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1); + } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) { + const { angle, deltaX } = calculateDeltaAndAngle( + data[data.length - 1], + data[data.length - 2] + ); + offset = markerOffsets[edge.arrowTypeEnd] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1); + } + return pointTransformer(d).x + offset; + }, + y: function(d, i, data) { + let offset = 0; + if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) { + const { angle, deltaY } = calculateDeltaAndAngle(data[0], data[1]); + offset = markerOffsets[edge.arrowTypeStart] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1); + } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) { + const { angle, deltaY } = calculateDeltaAndAngle( + data[data.length - 1], + data[data.length - 2] + ); + offset = markerOffsets[edge.arrowTypeEnd] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1); + } + return pointTransformer(d).y + offset; + } + }; +}; +const addEdgeMarkers = (svgPath, edge, url, id, diagramType) => { + if (edge.arrowTypeStart) { + addEdgeMarker(svgPath, "start", edge.arrowTypeStart, url, id, diagramType); + } + if (edge.arrowTypeEnd) { + addEdgeMarker(svgPath, "end", edge.arrowTypeEnd, url, id, diagramType); + } +}; +const arrowTypesMap = { + arrow_cross: "cross", + arrow_point: "point", + arrow_barb: "barb", + arrow_circle: "circle", + aggregation: "aggregation", + extension: "extension", + composition: "composition", + dependency: "dependency", + lollipop: "lollipop" +}; +const addEdgeMarker = (svgPath, position, arrowType, url, id, diagramType) => { + const endMarkerType = arrowTypesMap[arrowType]; + if (!endMarkerType) { + log.warn(`Unknown arrow type: ${arrowType}`); + return; + } + const suffix = position === "start" ? "Start" : "End"; + svgPath.attr(`marker-${position}`, `url(${url}#${id}_${diagramType}-${endMarkerType}${suffix})`); +}; +let edgeLabels = {}; +let terminalLabels = {}; +const clear = () => { + edgeLabels = {}; + terminalLabels = {}; +}; +const insertEdgeLabel = (elem, edge) => { + const useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels); + const labelElement = edge.labelType === "markdown" ? createText(elem, edge.label, { + style: edge.labelStyle, + useHtmlLabels, + addSvgBackground: true + }) : createLabel$1(edge.label, edge.labelStyle); + const edgeLabel = elem.insert("g").attr("class", "edgeLabel"); + const label = edgeLabel.insert("g").attr("class", "label"); + label.node().appendChild(labelElement); + let bbox = labelElement.getBBox(); + if (useHtmlLabels) { + const div = labelElement.children[0]; + const dv = select(labelElement); + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")"); + edgeLabels[edge.id] = edgeLabel; + edge.width = bbox.width; + edge.height = bbox.height; + let fo; + if (edge.startLabelLeft) { + const startLabelElement = createLabel$1(edge.startLabelLeft, edge.labelStyle); + const startEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals"); + const inner = startEdgeLabelLeft.insert("g").attr("class", "inner"); + fo = inner.node().appendChild(startLabelElement); + const slBox = startLabelElement.getBBox(); + inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")"); + if (!terminalLabels[edge.id]) { + terminalLabels[edge.id] = {}; + } + terminalLabels[edge.id].startLeft = startEdgeLabelLeft; + setTerminalWidth(fo, edge.startLabelLeft); + } + if (edge.startLabelRight) { + const startLabelElement = createLabel$1(edge.startLabelRight, edge.labelStyle); + const startEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals"); + const inner = startEdgeLabelRight.insert("g").attr("class", "inner"); + fo = startEdgeLabelRight.node().appendChild(startLabelElement); + inner.node().appendChild(startLabelElement); + const slBox = startLabelElement.getBBox(); + inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")"); + if (!terminalLabels[edge.id]) { + terminalLabels[edge.id] = {}; + } + terminalLabels[edge.id].startRight = startEdgeLabelRight; + setTerminalWidth(fo, edge.startLabelRight); + } + if (edge.endLabelLeft) { + const endLabelElement = createLabel$1(edge.endLabelLeft, edge.labelStyle); + const endEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals"); + const inner = endEdgeLabelLeft.insert("g").attr("class", "inner"); + fo = inner.node().appendChild(endLabelElement); + const slBox = endLabelElement.getBBox(); + inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")"); + endEdgeLabelLeft.node().appendChild(endLabelElement); + if (!terminalLabels[edge.id]) { + terminalLabels[edge.id] = {}; + } + terminalLabels[edge.id].endLeft = endEdgeLabelLeft; + setTerminalWidth(fo, edge.endLabelLeft); + } + if (edge.endLabelRight) { + const endLabelElement = createLabel$1(edge.endLabelRight, edge.labelStyle); + const endEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals"); + const inner = endEdgeLabelRight.insert("g").attr("class", "inner"); + fo = inner.node().appendChild(endLabelElement); + const slBox = endLabelElement.getBBox(); + inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")"); + endEdgeLabelRight.node().appendChild(endLabelElement); + if (!terminalLabels[edge.id]) { + terminalLabels[edge.id] = {}; + } + terminalLabels[edge.id].endRight = endEdgeLabelRight; + setTerminalWidth(fo, edge.endLabelRight); + } + return labelElement; +}; +function setTerminalWidth(fo, value) { + if (getConfig().flowchart.htmlLabels && fo) { + fo.style.width = value.length * 9 + "px"; + fo.style.height = "12px"; + } +} +const positionEdgeLabel = (edge, paths) => { + log.debug("Moving label abc88 ", edge.id, edge.label, edgeLabels[edge.id], paths); + let path = paths.updatedPath ? paths.updatedPath : paths.originalPath; + const siteConfig = getConfig(); + const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig); + if (edge.label) { + const el = edgeLabels[edge.id]; + let x = edge.x; + let y = edge.y; + if (path) { + const pos = utils.calcLabelPosition(path); + log.debug( + "Moving label " + edge.label + " from (", + x, + ",", + y, + ") to (", + pos.x, + ",", + pos.y, + ") abc88" + ); + if (paths.updatedPath) { + x = pos.x; + y = pos.y; + } + } + el.attr("transform", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`); + } + if (edge.startLabelLeft) { + const el = terminalLabels[edge.id].startLeft; + let x = edge.x; + let y = edge.y; + if (path) { + const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, "start_left", path); + x = pos.x; + y = pos.y; + } + el.attr("transform", `translate(${x}, ${y})`); + } + if (edge.startLabelRight) { + const el = terminalLabels[edge.id].startRight; + let x = edge.x; + let y = edge.y; + if (path) { + const pos = utils.calcTerminalLabelPosition( + edge.arrowTypeStart ? 10 : 0, + "start_right", + path + ); + x = pos.x; + y = pos.y; + } + el.attr("transform", `translate(${x}, ${y})`); + } + if (edge.endLabelLeft) { + const el = terminalLabels[edge.id].endLeft; + let x = edge.x; + let y = edge.y; + if (path) { + const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_left", path); + x = pos.x; + y = pos.y; + } + el.attr("transform", `translate(${x}, ${y})`); + } + if (edge.endLabelRight) { + const el = terminalLabels[edge.id].endRight; + let x = edge.x; + let y = edge.y; + if (path) { + const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_right", path); + x = pos.x; + y = pos.y; + } + el.attr("transform", `translate(${x}, ${y})`); + } +}; +const outsideNode = (node, point2) => { + const x = node.x; + const y = node.y; + const dx = Math.abs(point2.x - x); + const dy = Math.abs(point2.y - y); + const w = node.width / 2; + const h = node.height / 2; + if (dx >= w || dy >= h) { + return true; + } + return false; +}; +const intersection = (node, outsidePoint, insidePoint) => { + log.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(outsidePoint)} + insidePoint : ${JSON.stringify(insidePoint)} + node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`); + const x = node.x; + const y = node.y; + const dx = Math.abs(x - insidePoint.x); + const w = node.width / 2; + let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx; + const h = node.height / 2; + const Q = Math.abs(outsidePoint.y - insidePoint.y); + const R = Math.abs(outsidePoint.x - insidePoint.x); + if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) { + let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y; + r = R * q / Q; + const res = { + x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r, + y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q + }; + if (r === 0) { + res.x = outsidePoint.x; + res.y = outsidePoint.y; + } + if (R === 0) { + res.x = outsidePoint.x; + } + if (Q === 0) { + res.y = outsidePoint.y; + } + log.debug(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res); + return res; + } else { + if (insidePoint.x < outsidePoint.x) { + r = outsidePoint.x - w - x; + } else { + r = x - w - outsidePoint.x; + } + let q = Q * r / R; + let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r; + let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q; + log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y }); + if (r === 0) { + _x = outsidePoint.x; + _y = outsidePoint.y; + } + if (R === 0) { + _x = outsidePoint.x; + } + if (Q === 0) { + _y = outsidePoint.y; + } + return { x: _x, y: _y }; + } +}; +const cutPathAtIntersect = (_points, boundaryNode) => { + log.debug("abc88 cutPathAtIntersect", _points, boundaryNode); + let points = []; + let lastPointOutside = _points[0]; + let isInside = false; + _points.forEach((point2) => { + if (!outsideNode(boundaryNode, point2) && !isInside) { + const inter = intersection(boundaryNode, lastPointOutside, point2); + let pointPresent = false; + points.forEach((p) => { + pointPresent = pointPresent || p.x === inter.x && p.y === inter.y; + }); + if (!points.some((e) => e.x === inter.x && e.y === inter.y)) { + points.push(inter); + } + isInside = true; + } else { + lastPointOutside = point2; + if (!isInside) { + points.push(point2); + } + } + }); + return points; +}; +const insertEdge = function(elem, e, edge, clusterDb, diagramType, graph, id) { + let points = edge.points; + log.debug("abc88 InsertEdge: edge=", edge, "e=", e); + let pointsHasChanged = false; + const tail = graph.node(e.v); + var head = graph.node(e.w); + if ((head == null ? void 0 : head.intersect) && (tail == null ? void 0 : tail.intersect)) { + points = points.slice(1, edge.points.length - 1); + points.unshift(tail.intersect(points[0])); + points.push(head.intersect(points[points.length - 1])); + } + if (edge.toCluster) { + log.debug("to cluster abc88", clusterDb[edge.toCluster]); + points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node); + pointsHasChanged = true; + } + if (edge.fromCluster) { + log.debug("from cluster abc88", clusterDb[edge.fromCluster]); + points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse(); + pointsHasChanged = true; + } + const lineData = points.filter((p) => !Number.isNaN(p.y)); + let curve = curveBasis; + if (edge.curve && (diagramType === "graph" || diagramType === "flowchart")) { + curve = edge.curve; + } + const { x, y } = getLineFunctionsWithOffset(edge); + const lineFunction = line().x(x).y(y).curve(curve); + let strokeClasses; + switch (edge.thickness) { + case "normal": + strokeClasses = "edge-thickness-normal"; + break; + case "thick": + strokeClasses = "edge-thickness-thick"; + break; + case "invisible": + strokeClasses = "edge-thickness-thick"; + break; + default: + strokeClasses = ""; + } + switch (edge.pattern) { + case "solid": + strokeClasses += " edge-pattern-solid"; + break; + case "dotted": + strokeClasses += " edge-pattern-dotted"; + break; + case "dashed": + strokeClasses += " edge-pattern-dashed"; + break; + } + const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", edge.id).attr("class", " " + strokeClasses + (edge.classes ? " " + edge.classes : "")).attr("style", edge.style); + let url = ""; + if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); + } + addEdgeMarkers(svgPath, edge, url, id, diagramType); + let paths = {}; + if (pointsHasChanged) { + paths.updatedPath = points; + } + paths.originalPath = edge.points; + return paths; +}; +export { + insertMarkers$1 as a, + clear$1 as b, + createLabel$1 as c, + clear as d, + insertNode as e, + insertEdgeLabel as f, + getSubGraphTitleMargins as g, + insertEdge as h, + intersectRect$1 as i, + positionEdgeLabel as j, + getLineFunctionsWithOffset as k, + labelHelper as l, + addEdgeMarkers as m, + positionNode as p, + setNodeElem as s, + updateNodeBounds as u +}; diff --git a/assets/lib/mermaid/edges-16357fde.js b/assets/lib/mermaid/edges-16357fde.js new file mode 100644 index 000000000..22185ba58 --- /dev/null +++ b/assets/lib/mermaid/edges-16357fde.js @@ -0,0 +1,1083 @@ +import { l as g, p as H, c as b, b7 as Q, j as B, d as q, A as j, F as lt } from "./mermaid-9f2aa176.js"; +import { a as st } from "./createText-03b82060.js"; +import { l as ct } from "./line-24d93f1b.js"; +const ht = (e, t, a, i) => { + t.forEach((l) => { + wt[l](e, a, i); + }); +}, ot = (e, t, a) => { + g.trace("Making markers for ", a), e.append("defs").append("marker").attr("id", a + "_" + t + "-extensionStart").attr("class", "marker extension " + t).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z"), e.append("defs").append("marker").attr("id", a + "_" + t + "-extensionEnd").attr("class", "marker extension " + t).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z"); +}, yt = (e, t, a) => { + e.append("defs").append("marker").attr("id", a + "_" + t + "-compositionStart").attr("class", "marker composition " + t).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), e.append("defs").append("marker").attr("id", a + "_" + t + "-compositionEnd").attr("class", "marker composition " + t).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); +}, ft = (e, t, a) => { + e.append("defs").append("marker").attr("id", a + "_" + t + "-aggregationStart").attr("class", "marker aggregation " + t).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), e.append("defs").append("marker").attr("id", a + "_" + t + "-aggregationEnd").attr("class", "marker aggregation " + t).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); +}, pt = (e, t, a) => { + e.append("defs").append("marker").attr("id", a + "_" + t + "-dependencyStart").attr("class", "marker dependency " + t).attr("refX", 6).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z"), e.append("defs").append("marker").attr("id", a + "_" + t + "-dependencyEnd").attr("class", "marker dependency " + t).attr("refX", 13).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); +}, dt = (e, t, a) => { + e.append("defs").append("marker").attr("id", a + "_" + t + "-lollipopStart").attr("class", "marker lollipop " + t).attr("refX", 13).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6), e.append("defs").append("marker").attr("id", a + "_" + t + "-lollipopEnd").attr("class", "marker lollipop " + t).attr("refX", 1).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6); +}, xt = (e, t, a) => { + e.append("marker").attr("id", a + "_" + t + "-pointEnd").attr("class", "marker " + t).attr("viewBox", "0 0 10 10").attr("refX", 6).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"), e.append("marker").attr("id", a + "_" + t + "-pointStart").attr("class", "marker " + t).attr("viewBox", "0 0 10 10").attr("refX", 4.5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); +}, gt = (e, t, a) => { + e.append("marker").attr("id", a + "_" + t + "-circleEnd").attr("class", "marker " + t).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"), e.append("marker").attr("id", a + "_" + t + "-circleStart").attr("class", "marker " + t).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); +}, ut = (e, t, a) => { + e.append("marker").attr("id", a + "_" + t + "-crossEnd").attr("class", "marker cross " + t).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0"), e.append("marker").attr("id", a + "_" + t + "-crossStart").attr("class", "marker cross " + t).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0"); +}, bt = (e, t, a) => { + e.append("defs").append("marker").attr("id", a + "_" + t + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "strokeWidth").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z"); +}, wt = { + extension: ot, + composition: yt, + aggregation: ft, + dependency: pt, + lollipop: dt, + point: xt, + circle: gt, + cross: ut, + barb: bt +}, hr = ht; +function mt(e, t) { + t && e.attr("style", t); +} +function kt(e) { + const t = B(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject")), a = t.append("xhtml:div"), i = e.label, l = e.isNode ? "nodeLabel" : "edgeLabel"; + return a.html( + '" + i + "" + ), mt(a, e.labelStyle), a.style("display", "inline-block"), a.style("white-space", "nowrap"), a.attr("xmlns", "http://www.w3.org/1999/xhtml"), t.node(); +} +const vt = (e, t, a, i) => { + let l = e || ""; + if (typeof l == "object" && (l = l[0]), H(b().flowchart.htmlLabels)) { + l = l.replace(/\\n|\n/g, "
"), g.debug("vertexText" + l); + const r = { + isNode: i, + label: Q(l).replace( + /fa[blrs]?:fa-[\w-]+/g, + // cspell: disable-line + (n) => `` + ), + labelStyle: t.replace("fill:", "color:") + }; + return kt(r); + } else { + const r = document.createElementNS("http://www.w3.org/2000/svg", "text"); + r.setAttribute("style", t.replace("color:", "fill:")); + let s = []; + typeof l == "string" ? s = l.split(/\\n|\n|/gi) : Array.isArray(l) ? s = l : s = []; + for (const n of s) { + const c = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + c.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), c.setAttribute("dy", "1em"), c.setAttribute("x", "0"), a ? c.setAttribute("class", "title-row") : c.setAttribute("class", "row"), c.textContent = n.trim(), r.appendChild(c); + } + return r; + } +}, R = vt, M = async (e, t, a, i) => { + let l; + const r = t.useHtmlLabels || H(b().flowchart.htmlLabels); + a ? l = a : l = "node default"; + const s = e.insert("g").attr("class", l).attr("id", t.domId || t.id), n = s.insert("g").attr("class", "label").attr("style", t.labelStyle); + let c; + t.labelText === void 0 ? c = "" : c = typeof t.labelText == "string" ? t.labelText : t.labelText[0]; + const o = n.node(); + let h; + t.labelType === "markdown" ? h = st(n, q(Q(c), b()), { + useHtmlLabels: r, + width: t.width || b().flowchart.wrappingWidth, + classes: "markdown-node-label" + }) : h = o.appendChild( + R( + q(Q(c), b()), + t.labelStyle, + !1, + i + ) + ); + let y = h.getBBox(); + const p = t.padding / 2; + if (H(b().flowchart.htmlLabels)) { + const f = h.children[0], x = B(h), k = f.getElementsByTagName("img"); + if (k) { + const d = c.replace(/]*>/g, "").trim() === ""; + await Promise.all( + [...k].map( + (u) => new Promise((S) => { + function E() { + if (u.style.display = "flex", u.style.flexDirection = "column", d) { + const C = b().fontSize ? b().fontSize : window.getComputedStyle(document.body).fontSize, W = 5, A = parseInt(C, 10) * W + "px"; + u.style.minWidth = A, u.style.maxWidth = A; + } else + u.style.width = "100%"; + S(u); + } + setTimeout(() => { + u.complete && E(); + }), u.addEventListener("error", E), u.addEventListener("load", E); + }) + ) + ); + } + y = f.getBoundingClientRect(), x.attr("width", y.width), x.attr("height", y.height); + } + return r ? n.attr("transform", "translate(" + -y.width / 2 + ", " + -y.height / 2 + ")") : n.attr("transform", "translate(0, " + -y.height / 2 + ")"), t.centerLabel && n.attr("transform", "translate(" + -y.width / 2 + ", " + -y.height / 2 + ")"), n.insert("rect", ":first-child"), { shapeSvg: s, bbox: y, halfPadding: p, label: n }; +}, m = (e, t) => { + const a = t.node().getBBox(); + e.width = a.width, e.height = a.height; +}; +function I(e, t, a, i) { + return e.insert("polygon", ":first-child").attr( + "points", + i.map(function(l) { + return l.x + "," + l.y; + }).join(" ") + ).attr("class", "label-container").attr("transform", "translate(" + -t / 2 + "," + a / 2 + ")"); +} +function Lt(e, t) { + return e.intersect(t); +} +function it(e, t, a, i) { + var l = e.x, r = e.y, s = l - i.x, n = r - i.y, c = Math.sqrt(t * t * n * n + a * a * s * s), o = Math.abs(t * a * s / c); + i.x < l && (o = -o); + var h = Math.abs(t * a * n / c); + return i.y < r && (h = -h), { x: l + o, y: r + h }; +} +function St(e, t, a) { + return it(e, t, t, a); +} +function Mt(e, t, a, i) { + var l, r, s, n, c, o, h, y, p, f, x, k, d, u, S; + if (l = t.y - e.y, s = e.x - t.x, c = t.x * e.y - e.x * t.y, p = l * a.x + s * a.y + c, f = l * i.x + s * i.y + c, !(p !== 0 && f !== 0 && J(p, f)) && (r = i.y - a.y, n = a.x - i.x, o = i.x * a.y - a.x * i.y, h = r * e.x + n * e.y + o, y = r * t.x + n * t.y + o, !(h !== 0 && y !== 0 && J(h, y)) && (x = l * n - r * s, x !== 0))) + return k = Math.abs(x / 2), d = s * o - n * c, u = d < 0 ? (d - k) / x : (d + k) / x, d = r * c - l * o, S = d < 0 ? (d - k) / x : (d + k) / x, { x: u, y: S }; +} +function J(e, t) { + return e * t > 0; +} +function Tt(e, t, a) { + var i = e.x, l = e.y, r = [], s = Number.POSITIVE_INFINITY, n = Number.POSITIVE_INFINITY; + typeof t.forEach == "function" ? t.forEach(function(x) { + s = Math.min(s, x.x), n = Math.min(n, x.y); + }) : (s = Math.min(s, t.x), n = Math.min(n, t.y)); + for (var c = i - e.width / 2 - s, o = l - e.height / 2 - n, h = 0; h < t.length; h++) { + var y = t[h], p = t[h < t.length - 1 ? h + 1 : 0], f = Mt( + e, + a, + { x: c + y.x, y: o + y.y }, + { x: c + p.x, y: o + p.y } + ); + f && r.push(f); + } + return r.length ? (r.length > 1 && r.sort(function(x, k) { + var d = x.x - a.x, u = x.y - a.y, S = Math.sqrt(d * d + u * u), E = k.x - a.x, C = k.y - a.y, W = Math.sqrt(E * E + C * C); + return S < W ? -1 : S === W ? 0 : 1; + }), r[0]) : e; +} +const Et = (e, t) => { + var a = e.x, i = e.y, l = t.x - a, r = t.y - i, s = e.width / 2, n = e.height / 2, c, o; + return Math.abs(r) * s > Math.abs(l) * n ? (r < 0 && (n = -n), c = r === 0 ? 0 : n * l / r, o = n) : (l < 0 && (s = -s), c = s, o = l === 0 ? 0 : s * r / l), { x: a + c, y: i + o }; +}, Bt = Et, w = { + node: Lt, + circle: St, + ellipse: it, + polygon: Tt, + rect: Bt +}, Ct = async (e, t) => { + t.useHtmlLabels || b().flowchart.htmlLabels || (t.centerLabel = !0); + const { shapeSvg: i, bbox: l, halfPadding: r } = await M( + e, + t, + "node " + t.classes, + !0 + ); + g.info("Classes = ", t.classes); + const s = i.insert("rect", ":first-child"); + return s.attr("rx", t.rx).attr("ry", t.ry).attr("x", -l.width / 2 - r).attr("y", -l.height / 2 - r).attr("width", l.width + t.padding).attr("height", l.height + t.padding), m(t, s), t.intersect = function(n) { + return w.rect(t, n); + }, i; +}, $t = Ct, _t = (e) => { + const t = /* @__PURE__ */ new Set(); + for (const a of e) + switch (a) { + case "x": + t.add("right"), t.add("left"); + break; + case "y": + t.add("up"), t.add("down"); + break; + default: + t.add(a); + break; + } + return t; +}, Rt = (e, t, a) => { + const i = _t(e), l = 2, r = t.height + 2 * a.padding, s = r / l, n = t.width + 2 * s + a.padding, c = a.padding / 2; + return i.has("right") && i.has("left") && i.has("up") && i.has("down") ? [ + // Bottom + { x: 0, y: 0 }, + { x: s, y: 0 }, + { x: n / 2, y: 2 * c }, + { x: n - s, y: 0 }, + { x: n, y: 0 }, + // Right + { x: n, y: -r / 3 }, + { x: n + 2 * c, y: -r / 2 }, + { x: n, y: -2 * r / 3 }, + { x: n, y: -r }, + // Top + { x: n - s, y: -r }, + { x: n / 2, y: -r - 2 * c }, + { x: s, y: -r }, + // Left + { x: 0, y: -r }, + { x: 0, y: -2 * r / 3 }, + { x: -2 * c, y: -r / 2 }, + { x: 0, y: -r / 3 } + ] : i.has("right") && i.has("left") && i.has("up") ? [ + { x: s, y: 0 }, + { x: n - s, y: 0 }, + { x: n, y: -r / 2 }, + { x: n - s, y: -r }, + { x: s, y: -r }, + { x: 0, y: -r / 2 } + ] : i.has("right") && i.has("left") && i.has("down") ? [ + { x: 0, y: 0 }, + { x: s, y: -r }, + { x: n - s, y: -r }, + { x: n, y: 0 } + ] : i.has("right") && i.has("up") && i.has("down") ? [ + { x: 0, y: 0 }, + { x: n, y: -s }, + { x: n, y: -r + s }, + { x: 0, y: -r } + ] : i.has("left") && i.has("up") && i.has("down") ? [ + { x: n, y: 0 }, + { x: 0, y: -s }, + { x: 0, y: -r + s }, + { x: n, y: -r } + ] : i.has("right") && i.has("left") ? [ + { x: s, y: 0 }, + { x: s, y: -c }, + { x: n - s, y: -c }, + { x: n - s, y: 0 }, + { x: n, y: -r / 2 }, + { x: n - s, y: -r }, + { x: n - s, y: -r + c }, + { x: s, y: -r + c }, + { x: s, y: -r }, + { x: 0, y: -r / 2 } + ] : i.has("up") && i.has("down") ? [ + // Bottom center + { x: n / 2, y: 0 }, + // Left pont of bottom arrow + { x: 0, y: -c }, + { x: s, y: -c }, + // Left top over vertical section + { x: s, y: -r + c }, + { x: 0, y: -r + c }, + // Top of arrow + { x: n / 2, y: -r }, + { x: n, y: -r + c }, + // Top of right vertical bar + { x: n - s, y: -r + c }, + { x: n - s, y: -c }, + { x: n, y: -c } + ] : i.has("right") && i.has("up") ? [ + { x: 0, y: 0 }, + { x: n, y: -s }, + { x: 0, y: -r } + ] : i.has("right") && i.has("down") ? [ + { x: 0, y: 0 }, + { x: n, y: 0 }, + { x: 0, y: -r } + ] : i.has("left") && i.has("up") ? [ + { x: n, y: 0 }, + { x: 0, y: -s }, + { x: n, y: -r } + ] : i.has("left") && i.has("down") ? [ + { x: n, y: 0 }, + { x: 0, y: 0 }, + { x: n, y: -r } + ] : i.has("right") ? [ + { x: s, y: -c }, + { x: s, y: -c }, + { x: n - s, y: -c }, + { x: n - s, y: 0 }, + { x: n, y: -r / 2 }, + { x: n - s, y: -r }, + { x: n - s, y: -r + c }, + // top left corner of arrow + { x: s, y: -r + c }, + { x: s, y: -r + c } + ] : i.has("left") ? [ + { x: s, y: 0 }, + { x: s, y: -c }, + // Two points, the right corners + { x: n - s, y: -c }, + { x: n - s, y: -r + c }, + { x: s, y: -r + c }, + { x: s, y: -r }, + { x: 0, y: -r / 2 } + ] : i.has("up") ? [ + // Bottom center + { x: s, y: -c }, + // Left top over vertical section + { x: s, y: -r + c }, + { x: 0, y: -r + c }, + // Top of arrow + { x: n / 2, y: -r }, + { x: n, y: -r + c }, + // Top of right vertical bar + { x: n - s, y: -r + c }, + { x: n - s, y: -c } + ] : i.has("down") ? [ + // Bottom center + { x: n / 2, y: 0 }, + // Left pont of bottom arrow + { x: 0, y: -c }, + { x: s, y: -c }, + // Left top over vertical section + { x: s, y: -r + c }, + { x: n - s, y: -r + c }, + { x: n - s, y: -c }, + { x: n, y: -c } + ] : [{ x: 0, y: 0 }]; +}, K = (e) => e ? " " + e : "", _ = (e, t) => `${t || "node default"}${K(e.classes)} ${K( + e.class +)}`, P = async (e, t) => { + const { shapeSvg: a, bbox: i } = await M( + e, + t, + _(t, void 0), + !0 + ), l = i.width + t.padding, r = i.height + t.padding, s = l + r, n = [ + { x: s / 2, y: 0 }, + { x: s, y: -s / 2 }, + { x: s / 2, y: -s }, + { x: 0, y: -s / 2 } + ]; + g.info("Question main (Circle)"); + const c = I(a, s, s, n); + return c.attr("style", t.style), m(t, c), t.intersect = function(o) { + return g.warn("Intersect called"), w.polygon(t, n, o); + }, a; +}, Ht = (e, t) => { + const a = e.insert("g").attr("class", "node default").attr("id", t.domId || t.id), i = 28, l = [ + { x: 0, y: i / 2 }, + { x: i / 2, y: 0 }, + { x: 0, y: -i / 2 }, + { x: -i / 2, y: 0 } + ]; + return a.insert("polygon", ":first-child").attr( + "points", + l.map(function(s) { + return s.x + "," + s.y; + }).join(" ") + ).attr("class", "state-start").attr("r", 7).attr("width", 28).attr("height", 28), t.width = 28, t.height = 28, t.intersect = function(s) { + return w.circle(t, 14, s); + }, a; +}, It = async (e, t) => { + const { shapeSvg: a, bbox: i } = await M( + e, + t, + _(t, void 0), + !0 + ), l = 4, r = i.height + t.padding, s = r / l, n = i.width + 2 * s + t.padding, c = [ + { x: s, y: 0 }, + { x: n - s, y: 0 }, + { x: n, y: -r / 2 }, + { x: n - s, y: -r }, + { x: s, y: -r }, + { x: 0, y: -r / 2 } + ], o = I(a, n, r, c); + return o.attr("style", t.style), m(t, o), t.intersect = function(h) { + return w.polygon(t, c, h); + }, a; +}, Nt = async (e, t) => { + const { shapeSvg: a, bbox: i } = await M(e, t, void 0, !0), l = 2, r = i.height + 2 * t.padding, s = r / l, n = i.width + 2 * s + t.padding, c = Rt(t.directions, i, t), o = I(a, n, r, c); + return o.attr("style", t.style), m(t, o), t.intersect = function(h) { + return w.polygon(t, c, h); + }, a; +}, Ot = async (e, t) => { + const { shapeSvg: a, bbox: i } = await M( + e, + t, + _(t, void 0), + !0 + ), l = i.width + t.padding, r = i.height + t.padding, s = [ + { x: -r / 2, y: 0 }, + { x: l, y: 0 }, + { x: l, y: -r }, + { x: -r / 2, y: -r }, + { x: 0, y: -r / 2 } + ]; + return I(a, l, r, s).attr("style", t.style), t.width = l + r, t.height = r, t.intersect = function(c) { + return w.polygon(t, s, c); + }, a; +}, Wt = async (e, t) => { + const { shapeSvg: a, bbox: i } = await M(e, t, _(t), !0), l = i.width + t.padding, r = i.height + t.padding, s = [ + { x: -2 * r / 6, y: 0 }, + { x: l - r / 6, y: 0 }, + { x: l + 2 * r / 6, y: -r }, + { x: r / 6, y: -r } + ], n = I(a, l, r, s); + return n.attr("style", t.style), m(t, n), t.intersect = function(c) { + return w.polygon(t, s, c); + }, a; +}, Xt = async (e, t) => { + const { shapeSvg: a, bbox: i } = await M( + e, + t, + _(t, void 0), + !0 + ), l = i.width + t.padding, r = i.height + t.padding, s = [ + { x: 2 * r / 6, y: 0 }, + { x: l + r / 6, y: 0 }, + { x: l - 2 * r / 6, y: -r }, + { x: -r / 6, y: -r } + ], n = I(a, l, r, s); + return n.attr("style", t.style), m(t, n), t.intersect = function(c) { + return w.polygon(t, s, c); + }, a; +}, Yt = async (e, t) => { + const { shapeSvg: a, bbox: i } = await M( + e, + t, + _(t, void 0), + !0 + ), l = i.width + t.padding, r = i.height + t.padding, s = [ + { x: -2 * r / 6, y: 0 }, + { x: l + 2 * r / 6, y: 0 }, + { x: l - r / 6, y: -r }, + { x: r / 6, y: -r } + ], n = I(a, l, r, s); + return n.attr("style", t.style), m(t, n), t.intersect = function(c) { + return w.polygon(t, s, c); + }, a; +}, At = async (e, t) => { + const { shapeSvg: a, bbox: i } = await M( + e, + t, + _(t, void 0), + !0 + ), l = i.width + t.padding, r = i.height + t.padding, s = [ + { x: r / 6, y: 0 }, + { x: l - r / 6, y: 0 }, + { x: l + 2 * r / 6, y: -r }, + { x: -2 * r / 6, y: -r } + ], n = I(a, l, r, s); + return n.attr("style", t.style), m(t, n), t.intersect = function(c) { + return w.polygon(t, s, c); + }, a; +}, Dt = async (e, t) => { + const { shapeSvg: a, bbox: i } = await M( + e, + t, + _(t, void 0), + !0 + ), l = i.width + t.padding, r = i.height + t.padding, s = [ + { x: 0, y: 0 }, + { x: l + r / 2, y: 0 }, + { x: l, y: -r / 2 }, + { x: l + r / 2, y: -r }, + { x: 0, y: -r } + ], n = I(a, l, r, s); + return n.attr("style", t.style), m(t, n), t.intersect = function(c) { + return w.polygon(t, s, c); + }, a; +}, jt = async (e, t) => { + const { shapeSvg: a, bbox: i } = await M( + e, + t, + _(t, void 0), + !0 + ), l = i.width + t.padding, r = l / 2, s = r / (2.5 + l / 50), n = i.height + s + t.padding, c = "M 0," + s + " a " + r + "," + s + " 0,0,0 " + l + " 0 a " + r + "," + s + " 0,0,0 " + -l + " 0 l 0," + n + " a " + r + "," + s + " 0,0,0 " + l + " 0 l 0," + -n, o = a.attr("label-offset-y", s).insert("path", ":first-child").attr("style", t.style).attr("d", c).attr("transform", "translate(" + -l / 2 + "," + -(n / 2 + s) + ")"); + return m(t, o), t.intersect = function(h) { + const y = w.rect(t, h), p = y.x - t.x; + if (r != 0 && (Math.abs(p) < t.width / 2 || Math.abs(p) == t.width / 2 && Math.abs(y.y - t.y) > t.height / 2 - s)) { + let f = s * s * (1 - p * p / (r * r)); + f != 0 && (f = Math.sqrt(f)), f = s - f, h.y - t.y > 0 && (f = -f), y.y += f; + } + return y; + }, a; +}, Ut = async (e, t) => { + const { shapeSvg: a, bbox: i, halfPadding: l } = await M( + e, + t, + "node " + t.classes + " " + t.class, + !0 + ), r = a.insert("rect", ":first-child"), s = t.positioned ? t.width : i.width + t.padding, n = t.positioned ? t.height : i.height + t.padding, c = t.positioned ? -s / 2 : -i.width / 2 - l, o = t.positioned ? -n / 2 : -i.height / 2 - l; + if (r.attr("class", "basic label-container").attr("style", t.style).attr("rx", t.rx).attr("ry", t.ry).attr("x", c).attr("y", o).attr("width", s).attr("height", n), t.props) { + const h = new Set(Object.keys(t.props)); + t.props.borders && (V(r, t.props.borders, s, n), h.delete("borders")), h.forEach((y) => { + g.warn(`Unknown node property ${y}`); + }); + } + return m(t, r), t.intersect = function(h) { + return w.rect(t, h); + }, a; +}, zt = async (e, t) => { + const { shapeSvg: a, bbox: i, halfPadding: l } = await M( + e, + t, + "node " + t.classes, + !0 + ), r = a.insert("rect", ":first-child"), s = t.positioned ? t.width : i.width + t.padding, n = t.positioned ? t.height : i.height + t.padding, c = t.positioned ? -s / 2 : -i.width / 2 - l, o = t.positioned ? -n / 2 : -i.height / 2 - l; + if (r.attr("class", "basic cluster composite label-container").attr("style", t.style).attr("rx", t.rx).attr("ry", t.ry).attr("x", c).attr("y", o).attr("width", s).attr("height", n), t.props) { + const h = new Set(Object.keys(t.props)); + t.props.borders && (V(r, t.props.borders, s, n), h.delete("borders")), h.forEach((y) => { + g.warn(`Unknown node property ${y}`); + }); + } + return m(t, r), t.intersect = function(h) { + return w.rect(t, h); + }, a; +}, Zt = async (e, t) => { + const { shapeSvg: a } = await M(e, t, "label", !0); + g.trace("Classes = ", t.class); + const i = a.insert("rect", ":first-child"), l = 0, r = 0; + if (i.attr("width", l).attr("height", r), a.attr("class", "label edgeLabel"), t.props) { + const s = new Set(Object.keys(t.props)); + t.props.borders && (V(i, t.props.borders, l, r), s.delete("borders")), s.forEach((n) => { + g.warn(`Unknown node property ${n}`); + }); + } + return m(t, i), t.intersect = function(s) { + return w.rect(t, s); + }, a; +}; +function V(e, t, a, i) { + const l = [], r = (n) => { + l.push(n, 0); + }, s = (n) => { + l.push(0, n); + }; + t.includes("t") ? (g.debug("add top border"), r(a)) : s(a), t.includes("r") ? (g.debug("add right border"), r(i)) : s(i), t.includes("b") ? (g.debug("add bottom border"), r(a)) : s(a), t.includes("l") ? (g.debug("add left border"), r(i)) : s(i), e.attr("stroke-dasharray", l.join(" ")); +} +const Gt = (e, t) => { + let a; + t.classes ? a = "node " + t.classes : a = "node default"; + const i = e.insert("g").attr("class", a).attr("id", t.domId || t.id), l = i.insert("rect", ":first-child"), r = i.insert("line"), s = i.insert("g").attr("class", "label"), n = t.labelText.flat ? t.labelText.flat() : t.labelText; + let c = ""; + typeof n == "object" ? c = n[0] : c = n, g.info("Label text abc79", c, n, typeof n == "object"); + const o = s.node().appendChild(R(c, t.labelStyle, !0, !0)); + let h = { width: 0, height: 0 }; + if (H(b().flowchart.htmlLabels)) { + const k = o.children[0], d = B(o); + h = k.getBoundingClientRect(), d.attr("width", h.width), d.attr("height", h.height); + } + g.info("Text 2", n); + const y = n.slice(1, n.length); + let p = o.getBBox(); + const f = s.node().appendChild( + R(y.join ? y.join("
") : y, t.labelStyle, !0, !0) + ); + if (H(b().flowchart.htmlLabels)) { + const k = f.children[0], d = B(f); + h = k.getBoundingClientRect(), d.attr("width", h.width), d.attr("height", h.height); + } + const x = t.padding / 2; + return B(f).attr( + "transform", + "translate( " + // (titleBox.width - bbox.width) / 2 + + (h.width > p.width ? 0 : (p.width - h.width) / 2) + ", " + (p.height + x + 5) + ")" + ), B(o).attr( + "transform", + "translate( " + // (titleBox.width - bbox.width) / 2 + + (h.width < p.width ? 0 : -(p.width - h.width) / 2) + ", 0)" + ), h = s.node().getBBox(), s.attr( + "transform", + "translate(" + -h.width / 2 + ", " + (-h.height / 2 - x + 3) + ")" + ), l.attr("class", "outer title-state").attr("x", -h.width / 2 - x).attr("y", -h.height / 2 - x).attr("width", h.width + t.padding).attr("height", h.height + t.padding), r.attr("class", "divider").attr("x1", -h.width / 2 - x).attr("x2", h.width / 2 + x).attr("y1", -h.height / 2 - x + p.height + x).attr("y2", -h.height / 2 - x + p.height + x), m(t, l), t.intersect = function(k) { + return w.rect(t, k); + }, i; +}, Ft = async (e, t) => { + const { shapeSvg: a, bbox: i } = await M( + e, + t, + _(t, void 0), + !0 + ), l = i.height + t.padding, r = i.width + l / 4 + t.padding, s = a.insert("rect", ":first-child").attr("style", t.style).attr("rx", l / 2).attr("ry", l / 2).attr("x", -r / 2).attr("y", -l / 2).attr("width", r).attr("height", l); + return m(t, s), t.intersect = function(n) { + return w.rect(t, n); + }, a; +}, Qt = async (e, t) => { + const { shapeSvg: a, bbox: i, halfPadding: l } = await M( + e, + t, + _(t, void 0), + !0 + ), r = a.insert("circle", ":first-child"); + return r.attr("style", t.style).attr("rx", t.rx).attr("ry", t.ry).attr("r", i.width / 2 + l).attr("width", i.width + t.padding).attr("height", i.height + t.padding), g.info("Circle main"), m(t, r), t.intersect = function(s) { + return g.info("Circle intersect", t, i.width / 2 + l, s), w.circle(t, i.width / 2 + l, s); + }, a; +}, Vt = async (e, t) => { + const { shapeSvg: a, bbox: i, halfPadding: l } = await M( + e, + t, + _(t, void 0), + !0 + ), r = 5, s = a.insert("g", ":first-child"), n = s.insert("circle"), c = s.insert("circle"); + return s.attr("class", t.class), n.attr("style", t.style).attr("rx", t.rx).attr("ry", t.ry).attr("r", i.width / 2 + l + r).attr("width", i.width + t.padding + r * 2).attr("height", i.height + t.padding + r * 2), c.attr("style", t.style).attr("rx", t.rx).attr("ry", t.ry).attr("r", i.width / 2 + l).attr("width", i.width + t.padding).attr("height", i.height + t.padding), g.info("DoubleCircle main"), m(t, n), t.intersect = function(o) { + return g.info("DoubleCircle intersect", t, i.width / 2 + l + r, o), w.circle(t, i.width / 2 + l + r, o); + }, a; +}, qt = async (e, t) => { + const { shapeSvg: a, bbox: i } = await M( + e, + t, + _(t, void 0), + !0 + ), l = i.width + t.padding, r = i.height + t.padding, s = [ + { x: 0, y: 0 }, + { x: l, y: 0 }, + { x: l, y: -r }, + { x: 0, y: -r }, + { x: 0, y: 0 }, + { x: -8, y: 0 }, + { x: l + 8, y: 0 }, + { x: l + 8, y: -r }, + { x: -8, y: -r }, + { x: -8, y: 0 } + ], n = I(a, l, r, s); + return n.attr("style", t.style), m(t, n), t.intersect = function(c) { + return w.polygon(t, s, c); + }, a; +}, Jt = (e, t) => { + const a = e.insert("g").attr("class", "node default").attr("id", t.domId || t.id), i = a.insert("circle", ":first-child"); + return i.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14), m(t, i), t.intersect = function(l) { + return w.circle(t, 7, l); + }, a; +}, tt = (e, t, a) => { + const i = e.insert("g").attr("class", "node default").attr("id", t.domId || t.id); + let l = 70, r = 10; + a === "LR" && (l = 10, r = 70); + const s = i.append("rect").attr("x", -1 * l / 2).attr("y", -1 * r / 2).attr("width", l).attr("height", r).attr("class", "fork-join"); + return m(t, s), t.height = t.height + t.padding / 2, t.width = t.width + t.padding / 2, t.intersect = function(n) { + return w.rect(t, n); + }, i; +}, Kt = (e, t) => { + const a = e.insert("g").attr("class", "node default").attr("id", t.domId || t.id), i = a.insert("circle", ":first-child"), l = a.insert("circle", ":first-child"); + return l.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14), i.attr("class", "state-end").attr("r", 5).attr("width", 10).attr("height", 10), m(t, l), t.intersect = function(r) { + return w.circle(t, 7, r); + }, a; +}, Pt = (e, t) => { + const a = t.padding / 2, i = 4, l = 8; + let r; + t.classes ? r = "node " + t.classes : r = "node default"; + const s = e.insert("g").attr("class", r).attr("id", t.domId || t.id), n = s.insert("rect", ":first-child"), c = s.insert("line"), o = s.insert("line"); + let h = 0, y = i; + const p = s.insert("g").attr("class", "label"); + let f = 0; + const x = t.classData.annotations && t.classData.annotations[0], k = t.classData.annotations[0] ? "«" + t.classData.annotations[0] + "»" : "", d = p.node().appendChild(R(k, t.labelStyle, !0, !0)); + let u = d.getBBox(); + if (H(b().flowchart.htmlLabels)) { + const v = d.children[0], L = B(d); + u = v.getBoundingClientRect(), L.attr("width", u.width), L.attr("height", u.height); + } + t.classData.annotations[0] && (y += u.height + i, h += u.width); + let S = t.classData.label; + t.classData.type !== void 0 && t.classData.type !== "" && (b().flowchart.htmlLabels ? S += "<" + t.classData.type + ">" : S += "<" + t.classData.type + ">"); + const E = p.node().appendChild(R(S, t.labelStyle, !0, !0)); + B(E).attr("class", "classTitle"); + let C = E.getBBox(); + if (H(b().flowchart.htmlLabels)) { + const v = E.children[0], L = B(E); + C = v.getBoundingClientRect(), L.attr("width", C.width), L.attr("height", C.height); + } + y += C.height + i, C.width > h && (h = C.width); + const W = []; + t.classData.members.forEach((v) => { + const L = v.getDisplayDetails(); + let X = L.displayText; + b().flowchart.htmlLabels && (X = X.replace(//g, ">")); + const N = p.node().appendChild( + R( + X, + L.cssStyle ? L.cssStyle : t.labelStyle, + !0, + !0 + ) + ); + let $ = N.getBBox(); + if (H(b().flowchart.htmlLabels)) { + const F = N.children[0], D = B(N); + $ = F.getBoundingClientRect(), D.attr("width", $.width), D.attr("height", $.height); + } + $.width > h && (h = $.width), y += $.height + i, W.push(N); + }), y += l; + const A = []; + if (t.classData.methods.forEach((v) => { + const L = v.getDisplayDetails(); + let X = L.displayText; + b().flowchart.htmlLabels && (X = X.replace(//g, ">")); + const N = p.node().appendChild( + R( + X, + L.cssStyle ? L.cssStyle : t.labelStyle, + !0, + !0 + ) + ); + let $ = N.getBBox(); + if (H(b().flowchart.htmlLabels)) { + const F = N.children[0], D = B(N); + $ = F.getBoundingClientRect(), D.attr("width", $.width), D.attr("height", $.height); + } + $.width > h && (h = $.width), y += $.height + i, A.push(N); + }), y += l, x) { + let v = (h - u.width) / 2; + B(d).attr( + "transform", + "translate( " + (-1 * h / 2 + v) + ", " + -1 * y / 2 + ")" + ), f = u.height + i; + } + let nt = (h - C.width) / 2; + return B(E).attr( + "transform", + "translate( " + (-1 * h / 2 + nt) + ", " + (-1 * y / 2 + f) + ")" + ), f += C.height + i, c.attr("class", "divider").attr("x1", -h / 2 - a).attr("x2", h / 2 + a).attr("y1", -y / 2 - a + l + f).attr("y2", -y / 2 - a + l + f), f += l, W.forEach((v) => { + B(v).attr( + "transform", + "translate( " + -h / 2 + ", " + (-1 * y / 2 + f + l / 2) + ")" + ); + const L = v == null ? void 0 : v.getBBox(); + f += ((L == null ? void 0 : L.height) ?? 0) + i; + }), f += l, o.attr("class", "divider").attr("x1", -h / 2 - a).attr("x2", h / 2 + a).attr("y1", -y / 2 - a + l + f).attr("y2", -y / 2 - a + l + f), f += l, A.forEach((v) => { + B(v).attr( + "transform", + "translate( " + -h / 2 + ", " + (-1 * y / 2 + f) + ")" + ); + const L = v == null ? void 0 : v.getBBox(); + f += ((L == null ? void 0 : L.height) ?? 0) + i; + }), n.attr("style", t.style).attr("class", "outer title-state").attr("x", -h / 2 - a).attr("y", -(y / 2) - a).attr("width", h + t.padding).attr("height", y + t.padding), m(t, n), t.intersect = function(v) { + return w.rect(t, v); + }, s; +}, rt = { + rhombus: P, + composite: zt, + question: P, + rect: Ut, + labelRect: Zt, + rectWithTitle: Gt, + choice: Ht, + circle: Qt, + doublecircle: Vt, + stadium: Ft, + hexagon: It, + block_arrow: Nt, + rect_left_inv_arrow: Ot, + lean_right: Wt, + lean_left: Xt, + trapezoid: Yt, + inv_trapezoid: At, + rect_right_inv_arrow: Dt, + cylinder: jt, + start: Jt, + end: Kt, + note: $t, + subroutine: qt, + fork: tt, + join: tt, + class_box: Pt +}; +let Y = {}; +const or = async (e, t, a) => { + let i, l; + if (t.link) { + let r; + b().securityLevel === "sandbox" ? r = "_top" : t.linkTarget && (r = t.linkTarget || "_blank"), i = e.insert("svg:a").attr("xlink:href", t.link).attr("target", r), l = await rt[t.shape](i, t, a); + } else + l = await rt[t.shape](e, t, a), i = l; + return t.tooltip && l.attr("title", t.tooltip), t.class && l.attr("class", "node default " + t.class), i.attr("data-node", "true"), i.attr("data-id", t.id), Y[t.id] = i, t.haveCallback && Y[t.id].attr("class", Y[t.id].attr("class") + " clickable"), i; +}, yr = (e, t) => { + Y[t.id] = e; +}, fr = () => { + Y = {}; +}, pr = (e) => { + const t = Y[e.id]; + g.trace( + "Transforming node", + e.diff, + e, + "translate(" + (e.x - e.width / 2 - 5) + ", " + e.width / 2 + ")" + ); + const a = 8, i = e.diff || 0; + return e.clusterNode ? t.attr( + "transform", + "translate(" + (e.x + i - e.width / 2) + ", " + (e.y - e.height / 2 - a) + ")" + ) : t.attr("transform", "translate(" + e.x + ", " + e.y + ")"), i; +}, tr = ({ + flowchart: e +}) => { + var l, r; + const t = ((l = e == null ? void 0 : e.subGraphTitleMargin) == null ? void 0 : l.top) ?? 0, a = ((r = e == null ? void 0 : e.subGraphTitleMargin) == null ? void 0 : r.bottom) ?? 0, i = t + a; + return { + subGraphTitleTopMargin: t, + subGraphTitleBottomMargin: a, + subGraphTitleTotalMargin: i + }; +}, O = { + aggregation: 18, + extension: 18, + composition: 18, + dependency: 6, + lollipop: 13.5, + arrow_point: 5.3 +}; +function U(e, t) { + if (e === void 0 || t === void 0) + return { angle: 0, deltaX: 0, deltaY: 0 }; + e = Z(e), t = Z(t); + const [a, i] = [e.x, e.y], [l, r] = [t.x, t.y], s = l - a, n = r - i; + return { angle: Math.atan(n / s), deltaX: s, deltaY: n }; +} +const Z = (e) => Array.isArray(e) ? { x: e[0], y: e[1] } : e, rr = (e) => ({ + x: function(t, a, i) { + let l = 0; + if (a === 0 && Object.hasOwn(O, e.arrowTypeStart)) { + const { angle: r, deltaX: s } = U(i[0], i[1]); + l = O[e.arrowTypeStart] * Math.cos(r) * (s >= 0 ? 1 : -1); + } else if (a === i.length - 1 && Object.hasOwn(O, e.arrowTypeEnd)) { + const { angle: r, deltaX: s } = U( + i[i.length - 1], + i[i.length - 2] + ); + l = O[e.arrowTypeEnd] * Math.cos(r) * (s >= 0 ? 1 : -1); + } + return Z(t).x + l; + }, + y: function(t, a, i) { + let l = 0; + if (a === 0 && Object.hasOwn(O, e.arrowTypeStart)) { + const { angle: r, deltaY: s } = U(i[0], i[1]); + l = O[e.arrowTypeStart] * Math.abs(Math.sin(r)) * (s >= 0 ? 1 : -1); + } else if (a === i.length - 1 && Object.hasOwn(O, e.arrowTypeEnd)) { + const { angle: r, deltaY: s } = U( + i[i.length - 1], + i[i.length - 2] + ); + l = O[e.arrowTypeEnd] * Math.abs(Math.sin(r)) * (s >= 0 ? 1 : -1); + } + return Z(t).y + l; + } +}), ar = (e, t, a, i, l) => { + t.arrowTypeStart && at(e, "start", t.arrowTypeStart, a, i, l), t.arrowTypeEnd && at(e, "end", t.arrowTypeEnd, a, i, l); +}, er = { + arrow_cross: "cross", + arrow_point: "point", + arrow_barb: "barb", + arrow_circle: "circle", + aggregation: "aggregation", + extension: "extension", + composition: "composition", + dependency: "dependency", + lollipop: "lollipop" +}, at = (e, t, a, i, l, r) => { + const s = er[a]; + if (!s) { + g.warn(`Unknown arrow type: ${a}`); + return; + } + const n = t === "start" ? "Start" : "End"; + e.attr(`marker-${t}`, `url(${i}#${l}_${r}-${s}${n})`); +}; +let G = {}, T = {}; +const dr = () => { + G = {}, T = {}; +}, xr = (e, t) => { + const a = H(b().flowchart.htmlLabels), i = t.labelType === "markdown" ? st(e, t.label, { + style: t.labelStyle, + useHtmlLabels: a, + addSvgBackground: !0 + }) : R(t.label, t.labelStyle), l = e.insert("g").attr("class", "edgeLabel"), r = l.insert("g").attr("class", "label"); + r.node().appendChild(i); + let s = i.getBBox(); + if (a) { + const c = i.children[0], o = B(i); + s = c.getBoundingClientRect(), o.attr("width", s.width), o.attr("height", s.height); + } + r.attr("transform", "translate(" + -s.width / 2 + ", " + -s.height / 2 + ")"), G[t.id] = l, t.width = s.width, t.height = s.height; + let n; + if (t.startLabelLeft) { + const c = R(t.startLabelLeft, t.labelStyle), o = e.insert("g").attr("class", "edgeTerminals"), h = o.insert("g").attr("class", "inner"); + n = h.node().appendChild(c); + const y = c.getBBox(); + h.attr("transform", "translate(" + -y.width / 2 + ", " + -y.height / 2 + ")"), T[t.id] || (T[t.id] = {}), T[t.id].startLeft = o, z(n, t.startLabelLeft); + } + if (t.startLabelRight) { + const c = R(t.startLabelRight, t.labelStyle), o = e.insert("g").attr("class", "edgeTerminals"), h = o.insert("g").attr("class", "inner"); + n = o.node().appendChild(c), h.node().appendChild(c); + const y = c.getBBox(); + h.attr("transform", "translate(" + -y.width / 2 + ", " + -y.height / 2 + ")"), T[t.id] || (T[t.id] = {}), T[t.id].startRight = o, z(n, t.startLabelRight); + } + if (t.endLabelLeft) { + const c = R(t.endLabelLeft, t.labelStyle), o = e.insert("g").attr("class", "edgeTerminals"), h = o.insert("g").attr("class", "inner"); + n = h.node().appendChild(c); + const y = c.getBBox(); + h.attr("transform", "translate(" + -y.width / 2 + ", " + -y.height / 2 + ")"), o.node().appendChild(c), T[t.id] || (T[t.id] = {}), T[t.id].endLeft = o, z(n, t.endLabelLeft); + } + if (t.endLabelRight) { + const c = R(t.endLabelRight, t.labelStyle), o = e.insert("g").attr("class", "edgeTerminals"), h = o.insert("g").attr("class", "inner"); + n = h.node().appendChild(c); + const y = c.getBBox(); + h.attr("transform", "translate(" + -y.width / 2 + ", " + -y.height / 2 + ")"), o.node().appendChild(c), T[t.id] || (T[t.id] = {}), T[t.id].endRight = o, z(n, t.endLabelRight); + } + return i; +}; +function z(e, t) { + b().flowchart.htmlLabels && e && (e.style.width = t.length * 9 + "px", e.style.height = "12px"); +} +const gr = (e, t) => { + g.debug("Moving label abc88 ", e.id, e.label, G[e.id], t); + let a = t.updatedPath ? t.updatedPath : t.originalPath; + const i = b(), { subGraphTitleTotalMargin: l } = tr(i); + if (e.label) { + const r = G[e.id]; + let s = e.x, n = e.y; + if (a) { + const c = j.calcLabelPosition(a); + g.debug( + "Moving label " + e.label + " from (", + s, + ",", + n, + ") to (", + c.x, + ",", + c.y, + ") abc88" + ), t.updatedPath && (s = c.x, n = c.y); + } + r.attr("transform", `translate(${s}, ${n + l / 2})`); + } + if (e.startLabelLeft) { + const r = T[e.id].startLeft; + let s = e.x, n = e.y; + if (a) { + const c = j.calcTerminalLabelPosition(e.arrowTypeStart ? 10 : 0, "start_left", a); + s = c.x, n = c.y; + } + r.attr("transform", `translate(${s}, ${n})`); + } + if (e.startLabelRight) { + const r = T[e.id].startRight; + let s = e.x, n = e.y; + if (a) { + const c = j.calcTerminalLabelPosition( + e.arrowTypeStart ? 10 : 0, + "start_right", + a + ); + s = c.x, n = c.y; + } + r.attr("transform", `translate(${s}, ${n})`); + } + if (e.endLabelLeft) { + const r = T[e.id].endLeft; + let s = e.x, n = e.y; + if (a) { + const c = j.calcTerminalLabelPosition(e.arrowTypeEnd ? 10 : 0, "end_left", a); + s = c.x, n = c.y; + } + r.attr("transform", `translate(${s}, ${n})`); + } + if (e.endLabelRight) { + const r = T[e.id].endRight; + let s = e.x, n = e.y; + if (a) { + const c = j.calcTerminalLabelPosition(e.arrowTypeEnd ? 10 : 0, "end_right", a); + s = c.x, n = c.y; + } + r.attr("transform", `translate(${s}, ${n})`); + } +}, sr = (e, t) => { + const a = e.x, i = e.y, l = Math.abs(t.x - a), r = Math.abs(t.y - i), s = e.width / 2, n = e.height / 2; + return l >= s || r >= n; +}, ir = (e, t, a) => { + g.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(t)} + insidePoint : ${JSON.stringify(a)} + node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`); + const i = e.x, l = e.y, r = Math.abs(i - a.x), s = e.width / 2; + let n = a.x < t.x ? s - r : s + r; + const c = e.height / 2, o = Math.abs(t.y - a.y), h = Math.abs(t.x - a.x); + if (Math.abs(l - t.y) * s > Math.abs(i - t.x) * c) { + let y = a.y < t.y ? t.y - c - l : l - c - t.y; + n = h * y / o; + const p = { + x: a.x < t.x ? a.x + n : a.x - h + n, + y: a.y < t.y ? a.y + o - y : a.y - o + y + }; + return n === 0 && (p.x = t.x, p.y = t.y), h === 0 && (p.x = t.x), o === 0 && (p.y = t.y), g.debug(`abc89 topp/bott calc, Q ${o}, q ${y}, R ${h}, r ${n}`, p), p; + } else { + a.x < t.x ? n = t.x - s - i : n = i - s - t.x; + let y = o * n / h, p = a.x < t.x ? a.x + h - n : a.x - h + n, f = a.y < t.y ? a.y + y : a.y - y; + return g.debug(`sides calc abc89, Q ${o}, q ${y}, R ${h}, r ${n}`, { _x: p, _y: f }), n === 0 && (p = t.x, f = t.y), h === 0 && (p = t.x), o === 0 && (f = t.y), { x: p, y: f }; + } +}, et = (e, t) => { + g.debug("abc88 cutPathAtIntersect", e, t); + let a = [], i = e[0], l = !1; + return e.forEach((r) => { + if (!sr(t, r) && !l) { + const s = ir(t, i, r); + let n = !1; + a.forEach((c) => { + n = n || c.x === s.x && c.y === s.y; + }), a.some((c) => c.x === s.x && c.y === s.y) || a.push(s), l = !0; + } else + i = r, l || a.push(r); + }), a; +}, ur = function(e, t, a, i, l, r, s) { + let n = a.points; + g.debug("abc88 InsertEdge: edge=", a, "e=", t); + let c = !1; + const o = r.node(t.v); + var h = r.node(t.w); + h != null && h.intersect && (o != null && o.intersect) && (n = n.slice(1, a.points.length - 1), n.unshift(o.intersect(n[0])), n.push(h.intersect(n[n.length - 1]))), a.toCluster && (g.debug("to cluster abc88", i[a.toCluster]), n = et(a.points, i[a.toCluster].node), c = !0), a.fromCluster && (g.debug("from cluster abc88", i[a.fromCluster]), n = et(n.reverse(), i[a.fromCluster].node).reverse(), c = !0); + const y = n.filter((C) => !Number.isNaN(C.y)); + let p = lt; + a.curve && (l === "graph" || l === "flowchart") && (p = a.curve); + const { x: f, y: x } = rr(a), k = ct().x(f).y(x).curve(p); + let d; + switch (a.thickness) { + case "normal": + d = "edge-thickness-normal"; + break; + case "thick": + d = "edge-thickness-thick"; + break; + case "invisible": + d = "edge-thickness-thick"; + break; + default: + d = ""; + } + switch (a.pattern) { + case "solid": + d += " edge-pattern-solid"; + break; + case "dotted": + d += " edge-pattern-dotted"; + break; + case "dashed": + d += " edge-pattern-dashed"; + break; + } + const u = e.append("path").attr("d", k(y)).attr("id", a.id).attr("class", " " + d + (a.classes ? " " + a.classes : "")).attr("style", a.style); + let S = ""; + (b().flowchart.arrowMarkerAbsolute || b().state.arrowMarkerAbsolute) && (S = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, S = S.replace(/\(/g, "\\("), S = S.replace(/\)/g, "\\)")), ar(u, a, S, s, l); + let E = {}; + return c && (E.updatedPath = n), E.originalPath = a.points, E; +}; +export { + hr as a, + fr as b, + R as c, + dr as d, + or as e, + xr as f, + tr as g, + ur as h, + Bt as i, + gr as j, + rr as k, + M as l, + ar as m, + pr as p, + yr as s, + m as u +}; diff --git a/assets/lib/mermaid/edges-ce5cfb7c.js b/assets/lib/mermaid/edges-ce5cfb7c.js new file mode 100644 index 000000000..00a4c8205 --- /dev/null +++ b/assets/lib/mermaid/edges-ce5cfb7c.js @@ -0,0 +1,1840 @@ +import { l as log, p as evaluate, c as getConfig, b7 as decodeEntities, j as d3select, d as sanitizeText, A as utils, F as curveBasis } from "./mermaid-dcacb631.js"; +import { a as createText } from "./createText-b70fe78a.js"; +import { l as line } from "./line-87f517ef.js"; +const insertMarkers = (elem, markerArray, type, id) => { + markerArray.forEach((markerName) => { + markers[markerName](elem, type, id); + }); +}; +const extension = (elem, type, id) => { + log.trace("Making markers for ", id); + elem.append("defs").append("marker").attr("id", id + "_" + type + "-extensionStart").attr("class", "marker extension " + type).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z"); + elem.append("defs").append("marker").attr("id", id + "_" + type + "-extensionEnd").attr("class", "marker extension " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z"); +}; +const composition = (elem, type, id) => { + elem.append("defs").append("marker").attr("id", id + "_" + type + "-compositionStart").attr("class", "marker composition " + type).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", id + "_" + type + "-compositionEnd").attr("class", "marker composition " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); +}; +const aggregation = (elem, type, id) => { + elem.append("defs").append("marker").attr("id", id + "_" + type + "-aggregationStart").attr("class", "marker aggregation " + type).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", id + "_" + type + "-aggregationEnd").attr("class", "marker aggregation " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); +}; +const dependency = (elem, type, id) => { + elem.append("defs").append("marker").attr("id", id + "_" + type + "-dependencyStart").attr("class", "marker dependency " + type).attr("refX", 6).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", id + "_" + type + "-dependencyEnd").attr("class", "marker dependency " + type).attr("refX", 13).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); +}; +const lollipop = (elem, type, id) => { + elem.append("defs").append("marker").attr("id", id + "_" + type + "-lollipopStart").attr("class", "marker lollipop " + type).attr("refX", 13).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6); + elem.append("defs").append("marker").attr("id", id + "_" + type + "-lollipopEnd").attr("class", "marker lollipop " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6); +}; +const point = (elem, type, id) => { + elem.append("marker").attr("id", id + "_" + type + "-pointEnd").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 6).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); + elem.append("marker").attr("id", id + "_" + type + "-pointStart").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 4.5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); +}; +const circle$1 = (elem, type, id) => { + elem.append("marker").attr("id", id + "_" + type + "-circleEnd").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); + elem.append("marker").attr("id", id + "_" + type + "-circleStart").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); +}; +const cross = (elem, type, id) => { + elem.append("marker").attr("id", id + "_" + type + "-crossEnd").attr("class", "marker cross " + type).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0"); + elem.append("marker").attr("id", id + "_" + type + "-crossStart").attr("class", "marker cross " + type).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0"); +}; +const barb = (elem, type, id) => { + elem.append("defs").append("marker").attr("id", id + "_" + type + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "strokeWidth").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z"); +}; +const markers = { + extension, + composition, + aggregation, + dependency, + lollipop, + point, + circle: circle$1, + cross, + barb +}; +const insertMarkers$1 = insertMarkers; +function applyStyle(dom, styleFn) { + if (styleFn) { + dom.attr("style", styleFn); + } +} +function addHtmlLabel(node) { + const fo = d3select(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject")); + const div = fo.append("xhtml:div"); + const label = node.label; + const labelClass = node.isNode ? "nodeLabel" : "edgeLabel"; + div.html( + '" + label + "" + ); + applyStyle(div, node.labelStyle); + div.style("display", "inline-block"); + div.style("white-space", "nowrap"); + div.attr("xmlns", "http://www.w3.org/1999/xhtml"); + return fo.node(); +} +const createLabel = (_vertexText, style, isTitle, isNode) => { + let vertexText = _vertexText || ""; + if (typeof vertexText === "object") { + vertexText = vertexText[0]; + } + if (evaluate(getConfig().flowchart.htmlLabels)) { + vertexText = vertexText.replace(/\\n|\n/g, "
"); + log.debug("vertexText" + vertexText); + const node = { + isNode, + label: decodeEntities(vertexText).replace( + /fa[blrs]?:fa-[\w-]+/g, + // cspell: disable-line + (s) => `` + ), + labelStyle: style.replace("fill:", "color:") + }; + let vertexNode = addHtmlLabel(node); + return vertexNode; + } else { + const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text"); + svgLabel.setAttribute("style", style.replace("color:", "fill:")); + let rows = []; + if (typeof vertexText === "string") { + rows = vertexText.split(/\\n|\n|/gi); + } else if (Array.isArray(vertexText)) { + rows = vertexText; + } else { + rows = []; + } + for (const row of rows) { + const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"); + tspan.setAttribute("dy", "1em"); + tspan.setAttribute("x", "0"); + if (isTitle) { + tspan.setAttribute("class", "title-row"); + } else { + tspan.setAttribute("class", "row"); + } + tspan.textContent = row.trim(); + svgLabel.appendChild(tspan); + } + return svgLabel; + } +}; +const createLabel$1 = createLabel; +const labelHelper = async (parent, node, _classes, isNode) => { + let classes; + const useHtmlLabels = node.useHtmlLabels || evaluate(getConfig().flowchart.htmlLabels); + if (!_classes) { + classes = "node default"; + } else { + classes = _classes; + } + const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id); + const label = shapeSvg.insert("g").attr("class", "label").attr("style", node.labelStyle); + let labelText; + if (node.labelText === void 0) { + labelText = ""; + } else { + labelText = typeof node.labelText === "string" ? node.labelText : node.labelText[0]; + } + const textNode = label.node(); + let text; + if (node.labelType === "markdown") { + text = createText(label, sanitizeText(decodeEntities(labelText), getConfig()), { + useHtmlLabels, + width: node.width || getConfig().flowchart.wrappingWidth, + classes: "markdown-node-label" + }); + } else { + text = textNode.appendChild( + createLabel$1( + sanitizeText(decodeEntities(labelText), getConfig()), + node.labelStyle, + false, + isNode + ) + ); + } + let bbox = text.getBBox(); + const halfPadding = node.padding / 2; + if (evaluate(getConfig().flowchart.htmlLabels)) { + const div = text.children[0]; + const dv = d3select(text); + const images = div.getElementsByTagName("img"); + if (images) { + const noImgText = labelText.replace(/]*>/g, "").trim() === ""; + await Promise.all( + [...images].map( + (img) => new Promise((res) => { + function setupImage() { + img.style.display = "flex"; + img.style.flexDirection = "column"; + if (noImgText) { + const bodyFontSize = getConfig().fontSize ? getConfig().fontSize : window.getComputedStyle(document.body).fontSize; + const enlargingFactor = 5; + const width = parseInt(bodyFontSize, 10) * enlargingFactor + "px"; + img.style.minWidth = width; + img.style.maxWidth = width; + } else { + img.style.width = "100%"; + } + res(img); + } + setTimeout(() => { + if (img.complete) { + setupImage(); + } + }); + img.addEventListener("error", setupImage); + img.addEventListener("load", setupImage); + }) + ) + ); + } + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + if (useHtmlLabels) { + label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")"); + } else { + label.attr("transform", "translate(0, " + -bbox.height / 2 + ")"); + } + if (node.centerLabel) { + label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")"); + } + label.insert("rect", ":first-child"); + return { shapeSvg, bbox, halfPadding, label }; +}; +const updateNodeBounds = (node, element) => { + const bbox = element.node().getBBox(); + node.width = bbox.width; + node.height = bbox.height; +}; +function insertPolygonShape(parent, w, h, points) { + return parent.insert("polygon", ":first-child").attr( + "points", + points.map(function(d) { + return d.x + "," + d.y; + }).join(" ") + ).attr("class", "label-container").attr("transform", "translate(" + -w / 2 + "," + h / 2 + ")"); +} +function intersectNode(node, point2) { + return node.intersect(point2); +} +function intersectEllipse(node, rx, ry, point2) { + var cx = node.x; + var cy = node.y; + var px = cx - point2.x; + var py = cy - point2.y; + var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px); + var dx = Math.abs(rx * ry * px / det); + if (point2.x < cx) { + dx = -dx; + } + var dy = Math.abs(rx * ry * py / det); + if (point2.y < cy) { + dy = -dy; + } + return { x: cx + dx, y: cy + dy }; +} +function intersectCircle(node, rx, point2) { + return intersectEllipse(node, rx, rx, point2); +} +function intersectLine(p1, p2, q1, q2) { + var a1, a2, b1, b2, c1, c2; + var r1, r2, r3, r4; + var denom, offset, num; + var x, y; + a1 = p2.y - p1.y; + b1 = p1.x - p2.x; + c1 = p2.x * p1.y - p1.x * p2.y; + r3 = a1 * q1.x + b1 * q1.y + c1; + r4 = a1 * q2.x + b1 * q2.y + c1; + if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) { + return; + } + a2 = q2.y - q1.y; + b2 = q1.x - q2.x; + c2 = q2.x * q1.y - q1.x * q2.y; + r1 = a2 * p1.x + b2 * p1.y + c2; + r2 = a2 * p2.x + b2 * p2.y + c2; + if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) { + return; + } + denom = a1 * b2 - a2 * b1; + if (denom === 0) { + return; + } + offset = Math.abs(denom / 2); + num = b1 * c2 - b2 * c1; + x = num < 0 ? (num - offset) / denom : (num + offset) / denom; + num = a2 * c1 - a1 * c2; + y = num < 0 ? (num - offset) / denom : (num + offset) / denom; + return { x, y }; +} +function sameSign(r1, r2) { + return r1 * r2 > 0; +} +function intersectPolygon(node, polyPoints, point2) { + var x1 = node.x; + var y1 = node.y; + var intersections = []; + var minX = Number.POSITIVE_INFINITY; + var minY = Number.POSITIVE_INFINITY; + if (typeof polyPoints.forEach === "function") { + polyPoints.forEach(function(entry) { + minX = Math.min(minX, entry.x); + minY = Math.min(minY, entry.y); + }); + } else { + minX = Math.min(minX, polyPoints.x); + minY = Math.min(minY, polyPoints.y); + } + var left = x1 - node.width / 2 - minX; + var top = y1 - node.height / 2 - minY; + for (var i = 0; i < polyPoints.length; i++) { + var p1 = polyPoints[i]; + var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0]; + var intersect2 = intersectLine( + node, + point2, + { x: left + p1.x, y: top + p1.y }, + { x: left + p2.x, y: top + p2.y } + ); + if (intersect2) { + intersections.push(intersect2); + } + } + if (!intersections.length) { + return node; + } + if (intersections.length > 1) { + intersections.sort(function(p, q) { + var pdx = p.x - point2.x; + var pdy = p.y - point2.y; + var distp = Math.sqrt(pdx * pdx + pdy * pdy); + var qdx = q.x - point2.x; + var qdy = q.y - point2.y; + var distq = Math.sqrt(qdx * qdx + qdy * qdy); + return distp < distq ? -1 : distp === distq ? 0 : 1; + }); + } + return intersections[0]; +} +const intersectRect = (node, point2) => { + var x = node.x; + var y = node.y; + var dx = point2.x - x; + var dy = point2.y - y; + var w = node.width / 2; + var h = node.height / 2; + var sx, sy; + if (Math.abs(dy) * w > Math.abs(dx) * h) { + if (dy < 0) { + h = -h; + } + sx = dy === 0 ? 0 : h * dx / dy; + sy = h; + } else { + if (dx < 0) { + w = -w; + } + sx = w; + sy = dx === 0 ? 0 : w * dy / dx; + } + return { x: x + sx, y: y + sy }; +}; +const intersectRect$1 = intersectRect; +const intersect = { + node: intersectNode, + circle: intersectCircle, + ellipse: intersectEllipse, + polygon: intersectPolygon, + rect: intersectRect$1 +}; +const note = async (parent, node) => { + const useHtmlLabels = node.useHtmlLabels || getConfig().flowchart.htmlLabels; + if (!useHtmlLabels) { + node.centerLabel = true; + } + const { shapeSvg, bbox, halfPadding } = await labelHelper( + parent, + node, + "node " + node.classes, + true + ); + log.info("Classes = ", node.classes); + const rect2 = shapeSvg.insert("rect", ":first-child"); + rect2.attr("rx", node.rx).attr("ry", node.ry).attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding); + updateNodeBounds(node, rect2); + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +const note$1 = note; +const expandAndDeduplicateDirections = (directions) => { + const uniqueDirections = /* @__PURE__ */ new Set(); + for (const direction of directions) { + switch (direction) { + case "x": + uniqueDirections.add("right"); + uniqueDirections.add("left"); + break; + case "y": + uniqueDirections.add("up"); + uniqueDirections.add("down"); + break; + default: + uniqueDirections.add(direction); + break; + } + } + return uniqueDirections; +}; +const getArrowPoints = (duplicatedDirections, bbox, node) => { + const directions = expandAndDeduplicateDirections(duplicatedDirections); + const f = 2; + const height = bbox.height + 2 * node.padding; + const midpoint = height / f; + const width = bbox.width + 2 * midpoint + node.padding; + const padding = node.padding / 2; + if (directions.has("right") && directions.has("left") && directions.has("up") && directions.has("down")) { + return [ + // Bottom + { x: 0, y: 0 }, + { x: midpoint, y: 0 }, + { x: width / 2, y: 2 * padding }, + { x: width - midpoint, y: 0 }, + { x: width, y: 0 }, + // Right + { x: width, y: -height / 3 }, + { x: width + 2 * padding, y: -height / 2 }, + { x: width, y: -2 * height / 3 }, + { x: width, y: -height }, + // Top + { x: width - midpoint, y: -height }, + { x: width / 2, y: -height - 2 * padding }, + { x: midpoint, y: -height }, + // Left + { x: 0, y: -height }, + { x: 0, y: -2 * height / 3 }, + { x: -2 * padding, y: -height / 2 }, + { x: 0, y: -height / 3 } + ]; + } + if (directions.has("right") && directions.has("left") && directions.has("up")) { + return [ + { x: midpoint, y: 0 }, + { x: width - midpoint, y: 0 }, + { x: width, y: -height / 2 }, + { x: width - midpoint, y: -height }, + { x: midpoint, y: -height }, + { x: 0, y: -height / 2 } + ]; + } + if (directions.has("right") && directions.has("left") && directions.has("down")) { + return [ + { x: 0, y: 0 }, + { x: midpoint, y: -height }, + { x: width - midpoint, y: -height }, + { x: width, y: 0 } + ]; + } + if (directions.has("right") && directions.has("up") && directions.has("down")) { + return [ + { x: 0, y: 0 }, + { x: width, y: -midpoint }, + { x: width, y: -height + midpoint }, + { x: 0, y: -height } + ]; + } + if (directions.has("left") && directions.has("up") && directions.has("down")) { + return [ + { x: width, y: 0 }, + { x: 0, y: -midpoint }, + { x: 0, y: -height + midpoint }, + { x: width, y: -height } + ]; + } + if (directions.has("right") && directions.has("left")) { + return [ + { x: midpoint, y: 0 }, + { x: midpoint, y: -padding }, + { x: width - midpoint, y: -padding }, + { x: width - midpoint, y: 0 }, + { x: width, y: -height / 2 }, + { x: width - midpoint, y: -height }, + { x: width - midpoint, y: -height + padding }, + { x: midpoint, y: -height + padding }, + { x: midpoint, y: -height }, + { x: 0, y: -height / 2 } + ]; + } + if (directions.has("up") && directions.has("down")) { + return [ + // Bottom center + { x: width / 2, y: 0 }, + // Left pont of bottom arrow + { x: 0, y: -padding }, + { x: midpoint, y: -padding }, + // Left top over vertical section + { x: midpoint, y: -height + padding }, + { x: 0, y: -height + padding }, + // Top of arrow + { x: width / 2, y: -height }, + { x: width, y: -height + padding }, + // Top of right vertical bar + { x: width - midpoint, y: -height + padding }, + { x: width - midpoint, y: -padding }, + { x: width, y: -padding } + ]; + } + if (directions.has("right") && directions.has("up")) { + return [ + { x: 0, y: 0 }, + { x: width, y: -midpoint }, + { x: 0, y: -height } + ]; + } + if (directions.has("right") && directions.has("down")) { + return [ + { x: 0, y: 0 }, + { x: width, y: 0 }, + { x: 0, y: -height } + ]; + } + if (directions.has("left") && directions.has("up")) { + return [ + { x: width, y: 0 }, + { x: 0, y: -midpoint }, + { x: width, y: -height } + ]; + } + if (directions.has("left") && directions.has("down")) { + return [ + { x: width, y: 0 }, + { x: 0, y: 0 }, + { x: width, y: -height } + ]; + } + if (directions.has("right")) { + return [ + { x: midpoint, y: -padding }, + { x: midpoint, y: -padding }, + { x: width - midpoint, y: -padding }, + { x: width - midpoint, y: 0 }, + { x: width, y: -height / 2 }, + { x: width - midpoint, y: -height }, + { x: width - midpoint, y: -height + padding }, + // top left corner of arrow + { x: midpoint, y: -height + padding }, + { x: midpoint, y: -height + padding } + ]; + } + if (directions.has("left")) { + return [ + { x: midpoint, y: 0 }, + { x: midpoint, y: -padding }, + // Two points, the right corners + { x: width - midpoint, y: -padding }, + { x: width - midpoint, y: -height + padding }, + { x: midpoint, y: -height + padding }, + { x: midpoint, y: -height }, + { x: 0, y: -height / 2 } + ]; + } + if (directions.has("up")) { + return [ + // Bottom center + { x: midpoint, y: -padding }, + // Left top over vertical section + { x: midpoint, y: -height + padding }, + { x: 0, y: -height + padding }, + // Top of arrow + { x: width / 2, y: -height }, + { x: width, y: -height + padding }, + // Top of right vertical bar + { x: width - midpoint, y: -height + padding }, + { x: width - midpoint, y: -padding } + ]; + } + if (directions.has("down")) { + return [ + // Bottom center + { x: width / 2, y: 0 }, + // Left pont of bottom arrow + { x: 0, y: -padding }, + { x: midpoint, y: -padding }, + // Left top over vertical section + { x: midpoint, y: -height + padding }, + { x: width - midpoint, y: -height + padding }, + { x: width - midpoint, y: -padding }, + { x: width, y: -padding } + ]; + } + return [{ x: 0, y: 0 }]; +}; +const formatClass = (str) => { + if (str) { + return " " + str; + } + return ""; +}; +const getClassesFromNode = (node, otherClasses) => { + return `${otherClasses ? otherClasses : "node default"}${formatClass(node.classes)} ${formatClass( + node.class + )}`; +}; +const question = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const s = w + h; + const points = [ + { x: s / 2, y: 0 }, + { x: s, y: -s / 2 }, + { x: s / 2, y: -s }, + { x: 0, y: -s / 2 } + ]; + log.info("Question main (Circle)"); + const questionElem = insertPolygonShape(shapeSvg, s, s, points); + questionElem.attr("style", node.style); + updateNodeBounds(node, questionElem); + node.intersect = function(point2) { + log.warn("Intersect called"); + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const choice = (parent, node) => { + const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id); + const s = 28; + const points = [ + { x: 0, y: s / 2 }, + { x: s / 2, y: 0 }, + { x: 0, y: -s / 2 }, + { x: -s / 2, y: 0 } + ]; + const choice2 = shapeSvg.insert("polygon", ":first-child").attr( + "points", + points.map(function(d) { + return d.x + "," + d.y; + }).join(" ") + ); + choice2.attr("class", "state-start").attr("r", 7).attr("width", 28).attr("height", 28); + node.width = 28; + node.height = 28; + node.intersect = function(point2) { + return intersect.circle(node, 14, point2); + }; + return shapeSvg; +}; +const hexagon = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const f = 4; + const h = bbox.height + node.padding; + const m = h / f; + const w = bbox.width + 2 * m + node.padding; + const points = [ + { x: m, y: 0 }, + { x: w - m, y: 0 }, + { x: w, y: -h / 2 }, + { x: w - m, y: -h }, + { x: m, y: -h }, + { x: 0, y: -h / 2 } + ]; + const hex = insertPolygonShape(shapeSvg, w, h, points); + hex.attr("style", node.style); + updateNodeBounds(node, hex); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const block_arrow = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true); + const f = 2; + const h = bbox.height + 2 * node.padding; + const m = h / f; + const w = bbox.width + 2 * m + node.padding; + const points = getArrowPoints(node.directions, bbox, node); + const blockArrow = insertPolygonShape(shapeSvg, w, h, points); + blockArrow.attr("style", node.style); + updateNodeBounds(node, blockArrow); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const rect_left_inv_arrow = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: -h / 2, y: 0 }, + { x: w, y: 0 }, + { x: w, y: -h }, + { x: -h / 2, y: -h }, + { x: 0, y: -h / 2 } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + el.attr("style", node.style); + node.width = w + h; + node.height = h; + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const lean_right = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper(parent, node, getClassesFromNode(node), true); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: -2 * h / 6, y: 0 }, + { x: w - h / 6, y: 0 }, + { x: w + 2 * h / 6, y: -h }, + { x: h / 6, y: -h } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + el.attr("style", node.style); + updateNodeBounds(node, el); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const lean_left = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: 2 * h / 6, y: 0 }, + { x: w + h / 6, y: 0 }, + { x: w - 2 * h / 6, y: -h }, + { x: -h / 6, y: -h } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + el.attr("style", node.style); + updateNodeBounds(node, el); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const trapezoid = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: -2 * h / 6, y: 0 }, + { x: w + 2 * h / 6, y: 0 }, + { x: w - h / 6, y: -h }, + { x: h / 6, y: -h } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + el.attr("style", node.style); + updateNodeBounds(node, el); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const inv_trapezoid = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: h / 6, y: 0 }, + { x: w - h / 6, y: 0 }, + { x: w + 2 * h / 6, y: -h }, + { x: -2 * h / 6, y: -h } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + el.attr("style", node.style); + updateNodeBounds(node, el); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const rect_right_inv_arrow = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: 0, y: 0 }, + { x: w + h / 2, y: 0 }, + { x: w, y: -h / 2 }, + { x: w + h / 2, y: -h }, + { x: 0, y: -h } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + el.attr("style", node.style); + updateNodeBounds(node, el); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const cylinder = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const rx = w / 2; + const ry = rx / (2.5 + w / 50); + const h = bbox.height + ry + node.padding; + const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 a " + rx + "," + ry + " 0,0,0 " + -w + " 0 l 0," + h + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 l 0," + -h; + const el = shapeSvg.attr("label-offset-y", ry).insert("path", ":first-child").attr("style", node.style).attr("d", shape).attr("transform", "translate(" + -w / 2 + "," + -(h / 2 + ry) + ")"); + updateNodeBounds(node, el); + node.intersect = function(point2) { + const pos = intersect.rect(node, point2); + const x = pos.x - node.x; + if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) { + let y = ry * ry * (1 - x * x / (rx * rx)); + if (y != 0) { + y = Math.sqrt(y); + } + y = ry - y; + if (point2.y - node.y > 0) { + y = -y; + } + pos.y += y; + } + return pos; + }; + return shapeSvg; +}; +const rect = async (parent, node) => { + const { shapeSvg, bbox, halfPadding } = await labelHelper( + parent, + node, + "node " + node.classes + " " + node.class, + true + ); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const totalWidth = node.positioned ? node.width : bbox.width + node.padding; + const totalHeight = node.positioned ? node.height : bbox.height + node.padding; + const x = node.positioned ? -totalWidth / 2 : -bbox.width / 2 - halfPadding; + const y = node.positioned ? -totalHeight / 2 : -bbox.height / 2 - halfPadding; + rect2.attr("class", "basic label-container").attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("x", x).attr("y", y).attr("width", totalWidth).attr("height", totalHeight); + if (node.props) { + const propKeys = new Set(Object.keys(node.props)); + if (node.props.borders) { + applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight); + propKeys.delete("borders"); + } + propKeys.forEach((propKey) => { + log.warn(`Unknown node property ${propKey}`); + }); + } + updateNodeBounds(node, rect2); + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +const composite = async (parent, node) => { + const { shapeSvg, bbox, halfPadding } = await labelHelper( + parent, + node, + "node " + node.classes, + true + ); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const totalWidth = node.positioned ? node.width : bbox.width + node.padding; + const totalHeight = node.positioned ? node.height : bbox.height + node.padding; + const x = node.positioned ? -totalWidth / 2 : -bbox.width / 2 - halfPadding; + const y = node.positioned ? -totalHeight / 2 : -bbox.height / 2 - halfPadding; + rect2.attr("class", "basic cluster composite label-container").attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("x", x).attr("y", y).attr("width", totalWidth).attr("height", totalHeight); + if (node.props) { + const propKeys = new Set(Object.keys(node.props)); + if (node.props.borders) { + applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight); + propKeys.delete("borders"); + } + propKeys.forEach((propKey) => { + log.warn(`Unknown node property ${propKey}`); + }); + } + updateNodeBounds(node, rect2); + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +const labelRect = async (parent, node) => { + const { shapeSvg } = await labelHelper(parent, node, "label", true); + log.trace("Classes = ", node.class); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const totalWidth = 0; + const totalHeight = 0; + rect2.attr("width", totalWidth).attr("height", totalHeight); + shapeSvg.attr("class", "label edgeLabel"); + if (node.props) { + const propKeys = new Set(Object.keys(node.props)); + if (node.props.borders) { + applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight); + propKeys.delete("borders"); + } + propKeys.forEach((propKey) => { + log.warn(`Unknown node property ${propKey}`); + }); + } + updateNodeBounds(node, rect2); + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +function applyNodePropertyBorders(rect2, borders, totalWidth, totalHeight) { + const strokeDashArray = []; + const addBorder = (length) => { + strokeDashArray.push(length, 0); + }; + const skipBorder = (length) => { + strokeDashArray.push(0, length); + }; + if (borders.includes("t")) { + log.debug("add top border"); + addBorder(totalWidth); + } else { + skipBorder(totalWidth); + } + if (borders.includes("r")) { + log.debug("add right border"); + addBorder(totalHeight); + } else { + skipBorder(totalHeight); + } + if (borders.includes("b")) { + log.debug("add bottom border"); + addBorder(totalWidth); + } else { + skipBorder(totalWidth); + } + if (borders.includes("l")) { + log.debug("add left border"); + addBorder(totalHeight); + } else { + skipBorder(totalHeight); + } + rect2.attr("stroke-dasharray", strokeDashArray.join(" ")); +} +const rectWithTitle = (parent, node) => { + let classes; + if (!node.classes) { + classes = "node default"; + } else { + classes = "node " + node.classes; + } + const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const innerLine = shapeSvg.insert("line"); + const label = shapeSvg.insert("g").attr("class", "label"); + const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText; + let title = ""; + if (typeof text2 === "object") { + title = text2[0]; + } else { + title = text2; + } + log.info("Label text abc79", title, text2, typeof text2 === "object"); + const text = label.node().appendChild(createLabel$1(title, node.labelStyle, true, true)); + let bbox = { width: 0, height: 0 }; + if (evaluate(getConfig().flowchart.htmlLabels)) { + const div = text.children[0]; + const dv = d3select(text); + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + log.info("Text 2", text2); + const textRows = text2.slice(1, text2.length); + let titleBox = text.getBBox(); + const descr = label.node().appendChild( + createLabel$1(textRows.join ? textRows.join("
") : textRows, node.labelStyle, true, true) + ); + if (evaluate(getConfig().flowchart.htmlLabels)) { + const div = descr.children[0]; + const dv = d3select(descr); + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + const halfPadding = node.padding / 2; + d3select(descr).attr( + "transform", + "translate( " + // (titleBox.width - bbox.width) / 2 + + (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + ", " + (titleBox.height + halfPadding + 5) + ")" + ); + d3select(text).attr( + "transform", + "translate( " + // (titleBox.width - bbox.width) / 2 + + (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + ", 0)" + ); + bbox = label.node().getBBox(); + label.attr( + "transform", + "translate(" + -bbox.width / 2 + ", " + (-bbox.height / 2 - halfPadding + 3) + ")" + ); + rect2.attr("class", "outer title-state").attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding); + innerLine.attr("class", "divider").attr("x1", -bbox.width / 2 - halfPadding).attr("x2", bbox.width / 2 + halfPadding).attr("y1", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr("y2", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding); + updateNodeBounds(node, rect2); + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +const stadium = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const h = bbox.height + node.padding; + const w = bbox.width + h / 4 + node.padding; + const rect2 = shapeSvg.insert("rect", ":first-child").attr("style", node.style).attr("rx", h / 2).attr("ry", h / 2).attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h); + updateNodeBounds(node, rect2); + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +const circle = async (parent, node) => { + const { shapeSvg, bbox, halfPadding } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const circle2 = shapeSvg.insert("circle", ":first-child"); + circle2.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding); + log.info("Circle main"); + updateNodeBounds(node, circle2); + node.intersect = function(point2) { + log.info("Circle intersect", node, bbox.width / 2 + halfPadding, point2); + return intersect.circle(node, bbox.width / 2 + halfPadding, point2); + }; + return shapeSvg; +}; +const doublecircle = async (parent, node) => { + const { shapeSvg, bbox, halfPadding } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const gap = 5; + const circleGroup = shapeSvg.insert("g", ":first-child"); + const outerCircle = circleGroup.insert("circle"); + const innerCircle = circleGroup.insert("circle"); + circleGroup.attr("class", node.class); + outerCircle.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding + gap).attr("width", bbox.width + node.padding + gap * 2).attr("height", bbox.height + node.padding + gap * 2); + innerCircle.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding); + log.info("DoubleCircle main"); + updateNodeBounds(node, outerCircle); + node.intersect = function(point2) { + log.info("DoubleCircle intersect", node, bbox.width / 2 + halfPadding + gap, point2); + return intersect.circle(node, bbox.width / 2 + halfPadding + gap, point2); + }; + return shapeSvg; +}; +const subroutine = async (parent, node) => { + const { shapeSvg, bbox } = await labelHelper( + parent, + node, + getClassesFromNode(node, void 0), + true + ); + const w = bbox.width + node.padding; + const h = bbox.height + node.padding; + const points = [ + { x: 0, y: 0 }, + { x: w, y: 0 }, + { x: w, y: -h }, + { x: 0, y: -h }, + { x: 0, y: 0 }, + { x: -8, y: 0 }, + { x: w + 8, y: 0 }, + { x: w + 8, y: -h }, + { x: -8, y: -h }, + { x: -8, y: 0 } + ]; + const el = insertPolygonShape(shapeSvg, w, h, points); + el.attr("style", node.style); + updateNodeBounds(node, el); + node.intersect = function(point2) { + return intersect.polygon(node, points, point2); + }; + return shapeSvg; +}; +const start = (parent, node) => { + const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id); + const circle2 = shapeSvg.insert("circle", ":first-child"); + circle2.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14); + updateNodeBounds(node, circle2); + node.intersect = function(point2) { + return intersect.circle(node, 7, point2); + }; + return shapeSvg; +}; +const forkJoin = (parent, node, dir) => { + const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id); + let width = 70; + let height = 10; + if (dir === "LR") { + width = 10; + height = 70; + } + const shape = shapeSvg.append("rect").attr("x", -1 * width / 2).attr("y", -1 * height / 2).attr("width", width).attr("height", height).attr("class", "fork-join"); + updateNodeBounds(node, shape); + node.height = node.height + node.padding / 2; + node.width = node.width + node.padding / 2; + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +const end = (parent, node) => { + const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id); + const innerCircle = shapeSvg.insert("circle", ":first-child"); + const circle2 = shapeSvg.insert("circle", ":first-child"); + circle2.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14); + innerCircle.attr("class", "state-end").attr("r", 5).attr("width", 10).attr("height", 10); + updateNodeBounds(node, circle2); + node.intersect = function(point2) { + return intersect.circle(node, 7, point2); + }; + return shapeSvg; +}; +const class_box = (parent, node) => { + const halfPadding = node.padding / 2; + const rowPadding = 4; + const lineHeight = 8; + let classes; + if (!node.classes) { + classes = "node default"; + } else { + classes = "node " + node.classes; + } + const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const topLine = shapeSvg.insert("line"); + const bottomLine = shapeSvg.insert("line"); + let maxWidth = 0; + let maxHeight = rowPadding; + const labelContainer = shapeSvg.insert("g").attr("class", "label"); + let verticalPos = 0; + const hasInterface = node.classData.annotations && node.classData.annotations[0]; + const interfaceLabelText = node.classData.annotations[0] ? "«" + node.classData.annotations[0] + "»" : ""; + const interfaceLabel = labelContainer.node().appendChild(createLabel$1(interfaceLabelText, node.labelStyle, true, true)); + let interfaceBBox = interfaceLabel.getBBox(); + if (evaluate(getConfig().flowchart.htmlLabels)) { + const div = interfaceLabel.children[0]; + const dv = d3select(interfaceLabel); + interfaceBBox = div.getBoundingClientRect(); + dv.attr("width", interfaceBBox.width); + dv.attr("height", interfaceBBox.height); + } + if (node.classData.annotations[0]) { + maxHeight += interfaceBBox.height + rowPadding; + maxWidth += interfaceBBox.width; + } + let classTitleString = node.classData.label; + if (node.classData.type !== void 0 && node.classData.type !== "") { + if (getConfig().flowchart.htmlLabels) { + classTitleString += "<" + node.classData.type + ">"; + } else { + classTitleString += "<" + node.classData.type + ">"; + } + } + const classTitleLabel = labelContainer.node().appendChild(createLabel$1(classTitleString, node.labelStyle, true, true)); + d3select(classTitleLabel).attr("class", "classTitle"); + let classTitleBBox = classTitleLabel.getBBox(); + if (evaluate(getConfig().flowchart.htmlLabels)) { + const div = classTitleLabel.children[0]; + const dv = d3select(classTitleLabel); + classTitleBBox = div.getBoundingClientRect(); + dv.attr("width", classTitleBBox.width); + dv.attr("height", classTitleBBox.height); + } + maxHeight += classTitleBBox.height + rowPadding; + if (classTitleBBox.width > maxWidth) { + maxWidth = classTitleBBox.width; + } + const classAttributes = []; + node.classData.members.forEach((member) => { + const parsedInfo = member.getDisplayDetails(); + let parsedText = parsedInfo.displayText; + if (getConfig().flowchart.htmlLabels) { + parsedText = parsedText.replace(//g, ">"); + } + const lbl = labelContainer.node().appendChild( + createLabel$1( + parsedText, + parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle, + true, + true + ) + ); + let bbox = lbl.getBBox(); + if (evaluate(getConfig().flowchart.htmlLabels)) { + const div = lbl.children[0]; + const dv = d3select(lbl); + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + if (bbox.width > maxWidth) { + maxWidth = bbox.width; + } + maxHeight += bbox.height + rowPadding; + classAttributes.push(lbl); + }); + maxHeight += lineHeight; + const classMethods = []; + node.classData.methods.forEach((member) => { + const parsedInfo = member.getDisplayDetails(); + let displayText = parsedInfo.displayText; + if (getConfig().flowchart.htmlLabels) { + displayText = displayText.replace(//g, ">"); + } + const lbl = labelContainer.node().appendChild( + createLabel$1( + displayText, + parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle, + true, + true + ) + ); + let bbox = lbl.getBBox(); + if (evaluate(getConfig().flowchart.htmlLabels)) { + const div = lbl.children[0]; + const dv = d3select(lbl); + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + if (bbox.width > maxWidth) { + maxWidth = bbox.width; + } + maxHeight += bbox.height + rowPadding; + classMethods.push(lbl); + }); + maxHeight += lineHeight; + if (hasInterface) { + let diffX2 = (maxWidth - interfaceBBox.width) / 2; + d3select(interfaceLabel).attr( + "transform", + "translate( " + (-1 * maxWidth / 2 + diffX2) + ", " + -1 * maxHeight / 2 + ")" + ); + verticalPos = interfaceBBox.height + rowPadding; + } + let diffX = (maxWidth - classTitleBBox.width) / 2; + d3select(classTitleLabel).attr( + "transform", + "translate( " + (-1 * maxWidth / 2 + diffX) + ", " + (-1 * maxHeight / 2 + verticalPos) + ")" + ); + verticalPos += classTitleBBox.height + rowPadding; + topLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos); + verticalPos += lineHeight; + classAttributes.forEach((lbl) => { + d3select(lbl).attr( + "transform", + "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + ")" + ); + const memberBBox = lbl == null ? void 0 : lbl.getBBox(); + verticalPos += ((memberBBox == null ? void 0 : memberBBox.height) ?? 0) + rowPadding; + }); + verticalPos += lineHeight; + bottomLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos); + verticalPos += lineHeight; + classMethods.forEach((lbl) => { + d3select(lbl).attr( + "transform", + "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos) + ")" + ); + const memberBBox = lbl == null ? void 0 : lbl.getBBox(); + verticalPos += ((memberBBox == null ? void 0 : memberBBox.height) ?? 0) + rowPadding; + }); + rect2.attr("style", node.style).attr("class", "outer title-state").attr("x", -maxWidth / 2 - halfPadding).attr("y", -(maxHeight / 2) - halfPadding).attr("width", maxWidth + node.padding).attr("height", maxHeight + node.padding); + updateNodeBounds(node, rect2); + node.intersect = function(point2) { + return intersect.rect(node, point2); + }; + return shapeSvg; +}; +const shapes = { + rhombus: question, + composite, + question, + rect, + labelRect, + rectWithTitle, + choice, + circle, + doublecircle, + stadium, + hexagon, + block_arrow, + rect_left_inv_arrow, + lean_right, + lean_left, + trapezoid, + inv_trapezoid, + rect_right_inv_arrow, + cylinder, + start, + end, + note: note$1, + subroutine, + fork: forkJoin, + join: forkJoin, + class_box +}; +let nodeElems = {}; +const insertNode = async (elem, node, dir) => { + let newEl; + let el; + if (node.link) { + let target; + if (getConfig().securityLevel === "sandbox") { + target = "_top"; + } else if (node.linkTarget) { + target = node.linkTarget || "_blank"; + } + newEl = elem.insert("svg:a").attr("xlink:href", node.link).attr("target", target); + el = await shapes[node.shape](newEl, node, dir); + } else { + el = await shapes[node.shape](elem, node, dir); + newEl = el; + } + if (node.tooltip) { + el.attr("title", node.tooltip); + } + if (node.class) { + el.attr("class", "node default " + node.class); + } + newEl.attr("data-node", "true"); + newEl.attr("data-id", node.id); + nodeElems[node.id] = newEl; + if (node.haveCallback) { + nodeElems[node.id].attr("class", nodeElems[node.id].attr("class") + " clickable"); + } + return newEl; +}; +const setNodeElem = (elem, node) => { + nodeElems[node.id] = elem; +}; +const clear$1 = () => { + nodeElems = {}; +}; +const positionNode = (node) => { + const el = nodeElems[node.id]; + log.trace( + "Transforming node", + node.diff, + node, + "translate(" + (node.x - node.width / 2 - 5) + ", " + node.width / 2 + ")" + ); + const padding = 8; + const diff = node.diff || 0; + if (node.clusterNode) { + el.attr( + "transform", + "translate(" + (node.x + diff - node.width / 2) + ", " + (node.y - node.height / 2 - padding) + ")" + ); + } else { + el.attr("transform", "translate(" + node.x + ", " + node.y + ")"); + } + return diff; +}; +const getSubGraphTitleMargins = ({ + flowchart +}) => { + var _a, _b; + const subGraphTitleTopMargin = ((_a = flowchart == null ? void 0 : flowchart.subGraphTitleMargin) == null ? void 0 : _a.top) ?? 0; + const subGraphTitleBottomMargin = ((_b = flowchart == null ? void 0 : flowchart.subGraphTitleMargin) == null ? void 0 : _b.bottom) ?? 0; + const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin; + return { + subGraphTitleTopMargin, + subGraphTitleBottomMargin, + subGraphTitleTotalMargin + }; +}; +const markerOffsets = { + aggregation: 18, + extension: 18, + composition: 18, + dependency: 6, + lollipop: 13.5, + arrow_point: 5.3 +}; +function calculateDeltaAndAngle(point1, point2) { + if (point1 === void 0 || point2 === void 0) { + return { angle: 0, deltaX: 0, deltaY: 0 }; + } + point1 = pointTransformer(point1); + point2 = pointTransformer(point2); + const [x1, y1] = [point1.x, point1.y]; + const [x2, y2] = [point2.x, point2.y]; + const deltaX = x2 - x1; + const deltaY = y2 - y1; + return { angle: Math.atan(deltaY / deltaX), deltaX, deltaY }; +} +const pointTransformer = (data) => { + if (Array.isArray(data)) { + return { x: data[0], y: data[1] }; + } + return data; +}; +const getLineFunctionsWithOffset = (edge) => { + return { + x: function(d, i, data) { + let offset = 0; + if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) { + const { angle, deltaX } = calculateDeltaAndAngle(data[0], data[1]); + offset = markerOffsets[edge.arrowTypeStart] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1); + } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) { + const { angle, deltaX } = calculateDeltaAndAngle( + data[data.length - 1], + data[data.length - 2] + ); + offset = markerOffsets[edge.arrowTypeEnd] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1); + } + return pointTransformer(d).x + offset; + }, + y: function(d, i, data) { + let offset = 0; + if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) { + const { angle, deltaY } = calculateDeltaAndAngle(data[0], data[1]); + offset = markerOffsets[edge.arrowTypeStart] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1); + } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) { + const { angle, deltaY } = calculateDeltaAndAngle( + data[data.length - 1], + data[data.length - 2] + ); + offset = markerOffsets[edge.arrowTypeEnd] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1); + } + return pointTransformer(d).y + offset; + } + }; +}; +const addEdgeMarkers = (svgPath, edge, url, id, diagramType) => { + if (edge.arrowTypeStart) { + addEdgeMarker(svgPath, "start", edge.arrowTypeStart, url, id, diagramType); + } + if (edge.arrowTypeEnd) { + addEdgeMarker(svgPath, "end", edge.arrowTypeEnd, url, id, diagramType); + } +}; +const arrowTypesMap = { + arrow_cross: "cross", + arrow_point: "point", + arrow_barb: "barb", + arrow_circle: "circle", + aggregation: "aggregation", + extension: "extension", + composition: "composition", + dependency: "dependency", + lollipop: "lollipop" +}; +const addEdgeMarker = (svgPath, position, arrowType, url, id, diagramType) => { + const endMarkerType = arrowTypesMap[arrowType]; + if (!endMarkerType) { + log.warn(`Unknown arrow type: ${arrowType}`); + return; + } + const suffix = position === "start" ? "Start" : "End"; + svgPath.attr(`marker-${position}`, `url(${url}#${id}_${diagramType}-${endMarkerType}${suffix})`); +}; +let edgeLabels = {}; +let terminalLabels = {}; +const clear = () => { + edgeLabels = {}; + terminalLabels = {}; +}; +const insertEdgeLabel = (elem, edge) => { + const useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels); + const labelElement = edge.labelType === "markdown" ? createText(elem, edge.label, { + style: edge.labelStyle, + useHtmlLabels, + addSvgBackground: true + }) : createLabel$1(edge.label, edge.labelStyle); + const edgeLabel = elem.insert("g").attr("class", "edgeLabel"); + const label = edgeLabel.insert("g").attr("class", "label"); + label.node().appendChild(labelElement); + let bbox = labelElement.getBBox(); + if (useHtmlLabels) { + const div = labelElement.children[0]; + const dv = d3select(labelElement); + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")"); + edgeLabels[edge.id] = edgeLabel; + edge.width = bbox.width; + edge.height = bbox.height; + let fo; + if (edge.startLabelLeft) { + const startLabelElement = createLabel$1(edge.startLabelLeft, edge.labelStyle); + const startEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals"); + const inner = startEdgeLabelLeft.insert("g").attr("class", "inner"); + fo = inner.node().appendChild(startLabelElement); + const slBox = startLabelElement.getBBox(); + inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")"); + if (!terminalLabels[edge.id]) { + terminalLabels[edge.id] = {}; + } + terminalLabels[edge.id].startLeft = startEdgeLabelLeft; + setTerminalWidth(fo, edge.startLabelLeft); + } + if (edge.startLabelRight) { + const startLabelElement = createLabel$1(edge.startLabelRight, edge.labelStyle); + const startEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals"); + const inner = startEdgeLabelRight.insert("g").attr("class", "inner"); + fo = startEdgeLabelRight.node().appendChild(startLabelElement); + inner.node().appendChild(startLabelElement); + const slBox = startLabelElement.getBBox(); + inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")"); + if (!terminalLabels[edge.id]) { + terminalLabels[edge.id] = {}; + } + terminalLabels[edge.id].startRight = startEdgeLabelRight; + setTerminalWidth(fo, edge.startLabelRight); + } + if (edge.endLabelLeft) { + const endLabelElement = createLabel$1(edge.endLabelLeft, edge.labelStyle); + const endEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals"); + const inner = endEdgeLabelLeft.insert("g").attr("class", "inner"); + fo = inner.node().appendChild(endLabelElement); + const slBox = endLabelElement.getBBox(); + inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")"); + endEdgeLabelLeft.node().appendChild(endLabelElement); + if (!terminalLabels[edge.id]) { + terminalLabels[edge.id] = {}; + } + terminalLabels[edge.id].endLeft = endEdgeLabelLeft; + setTerminalWidth(fo, edge.endLabelLeft); + } + if (edge.endLabelRight) { + const endLabelElement = createLabel$1(edge.endLabelRight, edge.labelStyle); + const endEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals"); + const inner = endEdgeLabelRight.insert("g").attr("class", "inner"); + fo = inner.node().appendChild(endLabelElement); + const slBox = endLabelElement.getBBox(); + inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")"); + endEdgeLabelRight.node().appendChild(endLabelElement); + if (!terminalLabels[edge.id]) { + terminalLabels[edge.id] = {}; + } + terminalLabels[edge.id].endRight = endEdgeLabelRight; + setTerminalWidth(fo, edge.endLabelRight); + } + return labelElement; +}; +function setTerminalWidth(fo, value) { + if (getConfig().flowchart.htmlLabels && fo) { + fo.style.width = value.length * 9 + "px"; + fo.style.height = "12px"; + } +} +const positionEdgeLabel = (edge, paths) => { + log.debug("Moving label abc88 ", edge.id, edge.label, edgeLabels[edge.id], paths); + let path = paths.updatedPath ? paths.updatedPath : paths.originalPath; + const siteConfig = getConfig(); + const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig); + if (edge.label) { + const el = edgeLabels[edge.id]; + let x = edge.x; + let y = edge.y; + if (path) { + const pos = utils.calcLabelPosition(path); + log.debug( + "Moving label " + edge.label + " from (", + x, + ",", + y, + ") to (", + pos.x, + ",", + pos.y, + ") abc88" + ); + if (paths.updatedPath) { + x = pos.x; + y = pos.y; + } + } + el.attr("transform", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`); + } + if (edge.startLabelLeft) { + const el = terminalLabels[edge.id].startLeft; + let x = edge.x; + let y = edge.y; + if (path) { + const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, "start_left", path); + x = pos.x; + y = pos.y; + } + el.attr("transform", `translate(${x}, ${y})`); + } + if (edge.startLabelRight) { + const el = terminalLabels[edge.id].startRight; + let x = edge.x; + let y = edge.y; + if (path) { + const pos = utils.calcTerminalLabelPosition( + edge.arrowTypeStart ? 10 : 0, + "start_right", + path + ); + x = pos.x; + y = pos.y; + } + el.attr("transform", `translate(${x}, ${y})`); + } + if (edge.endLabelLeft) { + const el = terminalLabels[edge.id].endLeft; + let x = edge.x; + let y = edge.y; + if (path) { + const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_left", path); + x = pos.x; + y = pos.y; + } + el.attr("transform", `translate(${x}, ${y})`); + } + if (edge.endLabelRight) { + const el = terminalLabels[edge.id].endRight; + let x = edge.x; + let y = edge.y; + if (path) { + const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_right", path); + x = pos.x; + y = pos.y; + } + el.attr("transform", `translate(${x}, ${y})`); + } +}; +const outsideNode = (node, point2) => { + const x = node.x; + const y = node.y; + const dx = Math.abs(point2.x - x); + const dy = Math.abs(point2.y - y); + const w = node.width / 2; + const h = node.height / 2; + if (dx >= w || dy >= h) { + return true; + } + return false; +}; +const intersection = (node, outsidePoint, insidePoint) => { + log.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(outsidePoint)} + insidePoint : ${JSON.stringify(insidePoint)} + node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`); + const x = node.x; + const y = node.y; + const dx = Math.abs(x - insidePoint.x); + const w = node.width / 2; + let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx; + const h = node.height / 2; + const Q = Math.abs(outsidePoint.y - insidePoint.y); + const R = Math.abs(outsidePoint.x - insidePoint.x); + if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) { + let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y; + r = R * q / Q; + const res = { + x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r, + y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q + }; + if (r === 0) { + res.x = outsidePoint.x; + res.y = outsidePoint.y; + } + if (R === 0) { + res.x = outsidePoint.x; + } + if (Q === 0) { + res.y = outsidePoint.y; + } + log.debug(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res); + return res; + } else { + if (insidePoint.x < outsidePoint.x) { + r = outsidePoint.x - w - x; + } else { + r = x - w - outsidePoint.x; + } + let q = Q * r / R; + let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r; + let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q; + log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y }); + if (r === 0) { + _x = outsidePoint.x; + _y = outsidePoint.y; + } + if (R === 0) { + _x = outsidePoint.x; + } + if (Q === 0) { + _y = outsidePoint.y; + } + return { x: _x, y: _y }; + } +}; +const cutPathAtIntersect = (_points, boundaryNode) => { + log.debug("abc88 cutPathAtIntersect", _points, boundaryNode); + let points = []; + let lastPointOutside = _points[0]; + let isInside = false; + _points.forEach((point2) => { + if (!outsideNode(boundaryNode, point2) && !isInside) { + const inter = intersection(boundaryNode, lastPointOutside, point2); + let pointPresent = false; + points.forEach((p) => { + pointPresent = pointPresent || p.x === inter.x && p.y === inter.y; + }); + if (!points.some((e) => e.x === inter.x && e.y === inter.y)) { + points.push(inter); + } + isInside = true; + } else { + lastPointOutside = point2; + if (!isInside) { + points.push(point2); + } + } + }); + return points; +}; +const insertEdge = function(elem, e, edge, clusterDb, diagramType, graph, id) { + let points = edge.points; + log.debug("abc88 InsertEdge: edge=", edge, "e=", e); + let pointsHasChanged = false; + const tail = graph.node(e.v); + var head = graph.node(e.w); + if ((head == null ? void 0 : head.intersect) && (tail == null ? void 0 : tail.intersect)) { + points = points.slice(1, edge.points.length - 1); + points.unshift(tail.intersect(points[0])); + points.push(head.intersect(points[points.length - 1])); + } + if (edge.toCluster) { + log.debug("to cluster abc88", clusterDb[edge.toCluster]); + points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node); + pointsHasChanged = true; + } + if (edge.fromCluster) { + log.debug("from cluster abc88", clusterDb[edge.fromCluster]); + points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse(); + pointsHasChanged = true; + } + const lineData = points.filter((p) => !Number.isNaN(p.y)); + let curve = curveBasis; + if (edge.curve && (diagramType === "graph" || diagramType === "flowchart")) { + curve = edge.curve; + } + const { x, y } = getLineFunctionsWithOffset(edge); + const lineFunction = line().x(x).y(y).curve(curve); + let strokeClasses; + switch (edge.thickness) { + case "normal": + strokeClasses = "edge-thickness-normal"; + break; + case "thick": + strokeClasses = "edge-thickness-thick"; + break; + case "invisible": + strokeClasses = "edge-thickness-thick"; + break; + default: + strokeClasses = ""; + } + switch (edge.pattern) { + case "solid": + strokeClasses += " edge-pattern-solid"; + break; + case "dotted": + strokeClasses += " edge-pattern-dotted"; + break; + case "dashed": + strokeClasses += " edge-pattern-dashed"; + break; + } + const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", edge.id).attr("class", " " + strokeClasses + (edge.classes ? " " + edge.classes : "")).attr("style", edge.style); + let url = ""; + if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); + } + addEdgeMarkers(svgPath, edge, url, id, diagramType); + let paths = {}; + if (pointsHasChanged) { + paths.updatedPath = points; + } + paths.originalPath = edge.points; + return paths; +}; +export { + insertMarkers$1 as a, + clear$1 as b, + createLabel$1 as c, + clear as d, + insertNode as e, + insertEdgeLabel as f, + getSubGraphTitleMargins as g, + insertEdge as h, + intersectRect$1 as i, + positionEdgeLabel as j, + getLineFunctionsWithOffset as k, + labelHelper as l, + addEdgeMarkers as m, + positionNode as p, + setNodeElem as s, + updateNodeBounds as u +}; diff --git a/assets/lib/mermaid/erDiagram-09d1c15f.js b/assets/lib/mermaid/erDiagram-09d1c15f.js new file mode 100644 index 000000000..bccbb5feb --- /dev/null +++ b/assets/lib/mermaid/erDiagram-09d1c15f.js @@ -0,0 +1,1176 @@ +import { c as getConfig, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, q as setDiagramTitle, t as getDiagramTitle, l as log, v as clear$1, u as utils, i as configureSvgSize, x as parseGenericTypes } from "./mermaid-6dc72991.js"; +import * as graphlib from "dagre-d3-es/src/graphlib/index.js"; +import { select, line, curveBasis } from "d3"; +import { layout } from "dagre-d3-es/src/dagre/index.js"; +import { v5 } from "uuid"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [6, 8, 10, 20, 22, 24, 26, 27, 28], $V1 = [1, 10], $V2 = [1, 11], $V3 = [1, 12], $V4 = [1, 13], $V5 = [1, 14], $V6 = [1, 15], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 24], $Vb = [1, 25], $Vc = [6, 8, 10, 13, 15, 18, 19, 20, 22, 24, 26, 27, 28, 41, 42, 43, 44, 45], $Vd = [1, 34], $Ve = [27, 28, 46, 47], $Vf = [41, 42, 43, 44, 45], $Vg = [17, 34], $Vh = [1, 54], $Vi = [1, 53], $Vj = [17, 34, 36, 38]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "ER_DIAGRAM": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "entityName": 11, "relSpec": 12, ":": 13, "role": 14, "BLOCK_START": 15, "attributes": 16, "BLOCK_STOP": 17, "SQS": 18, "SQE": 19, "title": 20, "title_value": 21, "acc_title": 22, "acc_title_value": 23, "acc_descr": 24, "acc_descr_value": 25, "acc_descr_multiline_value": 26, "ALPHANUM": 27, "ENTITY_NAME": 28, "attribute": 29, "attributeType": 30, "attributeName": 31, "attributeKeyTypeList": 32, "attributeComment": 33, "ATTRIBUTE_WORD": 34, "attributeKeyType": 35, "COMMA": 36, "ATTRIBUTE_KEY": 37, "COMMENT": 38, "cardinality": 39, "relType": 40, "ZERO_OR_ONE": 41, "ZERO_OR_MORE": 42, "ONE_OR_MORE": 43, "ONLY_ONE": 44, "MD_PARENT": 45, "NON_IDENTIFYING": 46, "IDENTIFYING": 47, "WORD": 48, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "ER_DIAGRAM", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 13: ":", 15: "BLOCK_START", 17: "BLOCK_STOP", 18: "SQS", 19: "SQE", 20: "title", 21: "title_value", 22: "acc_title", 23: "acc_title_value", 24: "acc_descr", 25: "acc_descr_value", 26: "acc_descr_multiline_value", 27: "ALPHANUM", 28: "ENTITY_NAME", 34: "ATTRIBUTE_WORD", 36: "COMMA", 37: "ATTRIBUTE_KEY", 38: "COMMENT", 41: "ZERO_OR_ONE", 42: "ZERO_OR_MORE", 43: "ONE_OR_MORE", 44: "ONLY_ONE", 45: "MD_PARENT", 46: "NON_IDENTIFYING", 47: "IDENTIFYING", 48: "WORD" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 5], [9, 4], [9, 3], [9, 1], [9, 7], [9, 6], [9, 4], [9, 2], [9, 2], [9, 2], [9, 1], [11, 1], [11, 1], [16, 1], [16, 2], [29, 2], [29, 3], [29, 3], [29, 4], [30, 1], [31, 1], [32, 1], [32, 3], [35, 1], [33, 1], [12, 3], [39, 1], [39, 1], [39, 1], [39, 1], [39, 1], [40, 1], [40, 1], [14, 1], [14, 1], [14, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 1: + break; + case 2: + this.$ = []; + break; + case 3: + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + break; + case 4: + case 5: + this.$ = $$[$0]; + break; + case 6: + case 7: + this.$ = []; + break; + case 8: + yy.addEntity($$[$0 - 4]); + yy.addEntity($$[$0 - 2]); + yy.addRelationship($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 3]); + break; + case 9: + yy.addEntity($$[$0 - 3]); + yy.addAttributes($$[$0 - 3], $$[$0 - 1]); + break; + case 10: + yy.addEntity($$[$0 - 2]); + break; + case 11: + yy.addEntity($$[$0]); + break; + case 12: + yy.addEntity($$[$0 - 6], $$[$0 - 4]); + yy.addAttributes($$[$0 - 6], $$[$0 - 1]); + break; + case 13: + yy.addEntity($$[$0 - 5], $$[$0 - 3]); + break; + case 14: + yy.addEntity($$[$0 - 3], $$[$0 - 1]); + break; + case 15: + case 16: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 17: + case 18: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 19: + case 43: + this.$ = $$[$0]; + break; + case 20: + case 41: + case 42: + this.$ = $$[$0].replace(/"/g, ""); + break; + case 21: + case 29: + this.$ = [$$[$0]]; + break; + case 22: + $$[$0].push($$[$0 - 1]); + this.$ = $$[$0]; + break; + case 23: + this.$ = { attributeType: $$[$0 - 1], attributeName: $$[$0] }; + break; + case 24: + this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeKeyTypeList: $$[$0] }; + break; + case 25: + this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeComment: $$[$0] }; + break; + case 26: + this.$ = { attributeType: $$[$0 - 3], attributeName: $$[$0 - 2], attributeKeyTypeList: $$[$0 - 1], attributeComment: $$[$0] }; + break; + case 27: + case 28: + case 31: + this.$ = $$[$0]; + break; + case 30: + $$[$0 - 2].push($$[$0]); + this.$ = $$[$0 - 2]; + break; + case 32: + this.$ = $$[$0].replace(/"/g, ""); + break; + case 33: + this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] }; + break; + case 34: + this.$ = yy.Cardinality.ZERO_OR_ONE; + break; + case 35: + this.$ = yy.Cardinality.ZERO_OR_MORE; + break; + case 36: + this.$ = yy.Cardinality.ONE_OR_MORE; + break; + case 37: + this.$ = yy.Cardinality.ONLY_ONE; + break; + case 38: + this.$ = yy.Cardinality.MD_PARENT; + break; + case 39: + this.$ = yy.Identification.NON_IDENTIFYING; + break; + case 40: + this.$ = yy.Identification.IDENTIFYING; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 9, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 16, 11: 9, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 11], { 12: 17, 39: 20, 15: [1, 18], 18: [1, 19], 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }), { 21: [1, 26] }, { 23: [1, 27] }, { 25: [1, 28] }, o($V0, [2, 18]), o($Vc, [2, 19]), o($Vc, [2, 20]), o($V0, [2, 4]), { 11: 29, 27: $V5, 28: $V6 }, { 16: 30, 17: [1, 31], 29: 32, 30: 33, 34: $Vd }, { 11: 35, 27: $V5, 28: $V6 }, { 40: 36, 46: [1, 37], 47: [1, 38] }, o($Ve, [2, 34]), o($Ve, [2, 35]), o($Ve, [2, 36]), o($Ve, [2, 37]), o($Ve, [2, 38]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), { 13: [1, 39] }, { 17: [1, 40] }, o($V0, [2, 10]), { 16: 41, 17: [2, 21], 29: 32, 30: 33, 34: $Vd }, { 31: 42, 34: [1, 43] }, { 34: [2, 27] }, { 19: [1, 44] }, { 39: 45, 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }, o($Vf, [2, 39]), o($Vf, [2, 40]), { 14: 46, 27: [1, 49], 28: [1, 48], 48: [1, 47] }, o($V0, [2, 9]), { 17: [2, 22] }, o($Vg, [2, 23], { 32: 50, 33: 51, 35: 52, 37: $Vh, 38: $Vi }), o([17, 34, 37, 38], [2, 28]), o($V0, [2, 14], { 15: [1, 55] }), o([27, 28], [2, 33]), o($V0, [2, 8]), o($V0, [2, 41]), o($V0, [2, 42]), o($V0, [2, 43]), o($Vg, [2, 24], { 33: 56, 36: [1, 57], 38: $Vi }), o($Vg, [2, 25]), o($Vj, [2, 29]), o($Vg, [2, 32]), o($Vj, [2, 31]), { 16: 58, 17: [1, 59], 29: 32, 30: 33, 34: $Vd }, o($Vg, [2, 26]), { 35: 60, 37: $Vh }, { 17: [1, 61] }, o($V0, [2, 13]), o($Vj, [2, 30]), o($V0, [2, 12])], + defaultActions: { 34: [2, 27], 41: [2, 22] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + this.begin("acc_title"); + return 22; + case 1: + this.popState(); + return "acc_title_value"; + case 2: + this.begin("acc_descr"); + return 24; + case 3: + this.popState(); + return "acc_descr_value"; + case 4: + this.begin("acc_descr_multiline"); + break; + case 5: + this.popState(); + break; + case 6: + return "acc_descr_multiline_value"; + case 7: + return 10; + case 8: + break; + case 9: + return 8; + case 10: + return 28; + case 11: + return 48; + case 12: + return 4; + case 13: + this.begin("block"); + return 15; + case 14: + return 36; + case 15: + break; + case 16: + return 37; + case 17: + return 34; + case 18: + return 34; + case 19: + return 38; + case 20: + break; + case 21: + this.popState(); + return 17; + case 22: + return yy_.yytext[0]; + case 23: + return 18; + case 24: + return 19; + case 25: + return 41; + case 26: + return 43; + case 27: + return 43; + case 28: + return 43; + case 29: + return 41; + case 30: + return 41; + case 31: + return 42; + case 32: + return 42; + case 33: + return 42; + case 34: + return 42; + case 35: + return 42; + case 36: + return 43; + case 37: + return 42; + case 38: + return 43; + case 39: + return 44; + case 40: + return 44; + case 41: + return 44; + case 42: + return 44; + case 43: + return 41; + case 44: + return 42; + case 45: + return 43; + case 46: + return 45; + case 47: + return 46; + case 48: + return 47; + case 49: + return 47; + case 50: + return 46; + case 51: + return 46; + case 52: + return 46; + case 53: + return 27; + case 54: + return yy_.yytext[0]; + case 55: + return 6; + } + }, + rules: [/^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:[\s]+)/i, /^(?:"[^"%\r\n\v\b\\]+")/i, /^(?:"[^"]*")/i, /^(?:erDiagram\b)/i, /^(?:\{)/i, /^(?:,)/i, /^(?:\s+)/i, /^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i, /^(?:"[^"]*")/i, /^(?:[\n]+)/i, /^(?:\})/i, /^(?:.)/i, /^(?:\[)/i, /^(?:\])/i, /^(?:one or zero\b)/i, /^(?:one or more\b)/i, /^(?:one or many\b)/i, /^(?:1\+)/i, /^(?:\|o\b)/i, /^(?:zero or one\b)/i, /^(?:zero or more\b)/i, /^(?:zero or many\b)/i, /^(?:0\+)/i, /^(?:\}o\b)/i, /^(?:many\(0\))/i, /^(?:many\(1\))/i, /^(?:many\b)/i, /^(?:\}\|)/i, /^(?:one\b)/i, /^(?:only one\b)/i, /^(?:1\b)/i, /^(?:\|\|)/i, /^(?:o\|)/i, /^(?:o\{)/i, /^(?:\|\{)/i, /^(?:\s*u\b)/i, /^(?:\.\.)/i, /^(?:--)/i, /^(?:to\b)/i, /^(?:optionally to\b)/i, /^(?:\.-)/i, /^(?:-\.)/i, /^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i, /^(?:.)/i, /^(?:$)/i], + conditions: { "acc_descr_multiline": { "rules": [5, 6], "inclusive": false }, "acc_descr": { "rules": [3], "inclusive": false }, "acc_title": { "rules": [1], "inclusive": false }, "block": { "rules": [14, 15, 16, 17, 18, 19, 20, 21, 22], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const erParser = parser; +let entities = {}; +let relationships = []; +const Cardinality = { + ZERO_OR_ONE: "ZERO_OR_ONE", + ZERO_OR_MORE: "ZERO_OR_MORE", + ONE_OR_MORE: "ONE_OR_MORE", + ONLY_ONE: "ONLY_ONE", + MD_PARENT: "MD_PARENT" +}; +const Identification = { + NON_IDENTIFYING: "NON_IDENTIFYING", + IDENTIFYING: "IDENTIFYING" +}; +const addEntity = function(name, alias = void 0) { + if (entities[name] === void 0) { + entities[name] = { attributes: [], alias }; + log.info("Added new entity :", name); + } else if (entities[name] && !entities[name].alias && alias) { + entities[name].alias = alias; + log.info(`Add alias '${alias}' to entity '${name}'`); + } + return entities[name]; +}; +const getEntities = () => entities; +const addAttributes = function(entityName, attribs) { + let entity = addEntity(entityName); + let i; + for (i = attribs.length - 1; i >= 0; i--) { + entity.attributes.push(attribs[i]); + log.debug("Added attribute ", attribs[i].attributeName); + } +}; +const addRelationship = function(entA, rolA, entB, rSpec) { + let rel = { + entityA: entA, + roleA: rolA, + entityB: entB, + relSpec: rSpec + }; + relationships.push(rel); + log.debug("Added new relationship :", rel); +}; +const getRelationships = () => relationships; +const clear = function() { + entities = {}; + relationships = []; + clear$1(); +}; +const erDb = { + Cardinality, + Identification, + getConfig: () => getConfig().er, + addEntity, + addAttributes, + getEntities, + addRelationship, + getRelationships, + clear, + setAccTitle, + getAccTitle, + setAccDescription, + getAccDescription, + setDiagramTitle, + getDiagramTitle +}; +const ERMarkers = { + ONLY_ONE_START: "ONLY_ONE_START", + ONLY_ONE_END: "ONLY_ONE_END", + ZERO_OR_ONE_START: "ZERO_OR_ONE_START", + ZERO_OR_ONE_END: "ZERO_OR_ONE_END", + ONE_OR_MORE_START: "ONE_OR_MORE_START", + ONE_OR_MORE_END: "ONE_OR_MORE_END", + ZERO_OR_MORE_START: "ZERO_OR_MORE_START", + ZERO_OR_MORE_END: "ZERO_OR_MORE_END", + MD_PARENT_END: "MD_PARENT_END", + MD_PARENT_START: "MD_PARENT_START" +}; +const insertMarkers = function(elem, conf2) { + let marker; + elem.append("defs").append("marker").attr("id", ERMarkers.MD_PARENT_START).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", ERMarkers.MD_PARENT_END).attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M9,0 L9,18 M15,0 L15,18"); + elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_END).attr("refX", 18).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M3,0 L3,18 M9,0 L9,18"); + marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto"); + marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 21).attr("cy", 9).attr("r", 6); + marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M9,0 L9,18"); + marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_END).attr("refX", 30).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto"); + marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 9).attr("r", 6); + marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M21,0 L21,18"); + elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"); + elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_END).attr("refX", 27).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"); + marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto"); + marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 48).attr("cy", 18).attr("r", 6); + marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M0,18 Q18,0 36,18 Q18,36 0,18"); + marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_END).attr("refX", 39).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto"); + marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 18).attr("r", 6); + marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M21,18 Q39,0 57,18 Q39,36 21,18"); + return; +}; +const erMarkers = { + ERMarkers, + insertMarkers +}; +const BAD_ID_CHARS_REGEXP = /[^\dA-Za-z](\W)*/g; +let conf = {}; +let entityNameIds = /* @__PURE__ */ new Map(); +const setConf = function(cnf) { + const keys = Object.keys(cnf); + for (const key of keys) { + conf[key] = cnf[key]; + } +}; +const drawAttributes = (groupNode, entityTextNode, attributes) => { + const heightPadding = conf.entityPadding / 3; + const widthPadding = conf.entityPadding / 3; + const attrFontSize = conf.fontSize * 0.85; + const labelBBox = entityTextNode.node().getBBox(); + const attributeNodes = []; + let hasKeyType = false; + let hasComment = false; + let maxTypeWidth = 0; + let maxNameWidth = 0; + let maxKeyWidth = 0; + let maxCommentWidth = 0; + let cumulativeHeight = labelBBox.height + heightPadding * 2; + let attrNum = 1; + attributes.forEach((item) => { + if (item.attributeKeyTypeList !== void 0 && item.attributeKeyTypeList.length > 0) { + hasKeyType = true; + } + if (item.attributeComment !== void 0) { + hasComment = true; + } + }); + attributes.forEach((item) => { + const attrPrefix = `${entityTextNode.node().id}-attr-${attrNum}`; + let nodeHeight = 0; + const attributeType = parseGenericTypes(item.attributeType); + const typeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-type`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(attributeType); + const nameNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-name`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeName); + const attributeNode = {}; + attributeNode.tn = typeNode; + attributeNode.nn = nameNode; + const typeBBox = typeNode.node().getBBox(); + const nameBBox = nameNode.node().getBBox(); + maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width); + maxNameWidth = Math.max(maxNameWidth, nameBBox.width); + nodeHeight = Math.max(typeBBox.height, nameBBox.height); + if (hasKeyType) { + const keyTypeNodeText = item.attributeKeyTypeList !== void 0 ? item.attributeKeyTypeList.join(",") : ""; + const keyTypeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-key`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(keyTypeNodeText); + attributeNode.kn = keyTypeNode; + const keyTypeBBox = keyTypeNode.node().getBBox(); + maxKeyWidth = Math.max(maxKeyWidth, keyTypeBBox.width); + nodeHeight = Math.max(nodeHeight, keyTypeBBox.height); + } + if (hasComment) { + const commentNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-comment`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeComment || ""); + attributeNode.cn = commentNode; + const commentNodeBBox = commentNode.node().getBBox(); + maxCommentWidth = Math.max(maxCommentWidth, commentNodeBBox.width); + nodeHeight = Math.max(nodeHeight, commentNodeBBox.height); + } + attributeNode.height = nodeHeight; + attributeNodes.push(attributeNode); + cumulativeHeight += nodeHeight + heightPadding * 2; + attrNum += 1; + }); + let widthPaddingFactor = 4; + if (hasKeyType) { + widthPaddingFactor += 2; + } + if (hasComment) { + widthPaddingFactor += 2; + } + const maxWidth = maxTypeWidth + maxNameWidth + maxKeyWidth + maxCommentWidth; + const bBox = { + width: Math.max( + conf.minEntityWidth, + Math.max( + labelBBox.width + conf.entityPadding * 2, + maxWidth + widthPadding * widthPaddingFactor + ) + ), + height: attributes.length > 0 ? cumulativeHeight : Math.max(conf.minEntityHeight, labelBBox.height + conf.entityPadding * 2) + }; + if (attributes.length > 0) { + const spareColumnWidth = Math.max( + 0, + (bBox.width - maxWidth - widthPadding * widthPaddingFactor) / (widthPaddingFactor / 2) + ); + entityTextNode.attr( + "transform", + "translate(" + bBox.width / 2 + "," + (heightPadding + labelBBox.height / 2) + ")" + ); + let heightOffset = labelBBox.height + heightPadding * 2; + let attribStyle = "attributeBoxOdd"; + attributeNodes.forEach((attributeNode) => { + const alignY = heightOffset + heightPadding + attributeNode.height / 2; + attributeNode.tn.attr("transform", "translate(" + widthPadding + "," + alignY + ")"); + const typeRect = groupNode.insert("rect", "#" + attributeNode.tn.node().id).classed(`er ${attribStyle}`, true).attr("x", 0).attr("y", heightOffset).attr("width", maxTypeWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2); + const nameXOffset = parseFloat(typeRect.attr("x")) + parseFloat(typeRect.attr("width")); + attributeNode.nn.attr( + "transform", + "translate(" + (nameXOffset + widthPadding) + "," + alignY + ")" + ); + const nameRect = groupNode.insert("rect", "#" + attributeNode.nn.node().id).classed(`er ${attribStyle}`, true).attr("x", nameXOffset).attr("y", heightOffset).attr("width", maxNameWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2); + let keyTypeAndCommentXOffset = parseFloat(nameRect.attr("x")) + parseFloat(nameRect.attr("width")); + if (hasKeyType) { + attributeNode.kn.attr( + "transform", + "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")" + ); + const keyTypeRect = groupNode.insert("rect", "#" + attributeNode.kn.node().id).classed(`er ${attribStyle}`, true).attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxKeyWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2); + keyTypeAndCommentXOffset = parseFloat(keyTypeRect.attr("x")) + parseFloat(keyTypeRect.attr("width")); + } + if (hasComment) { + attributeNode.cn.attr( + "transform", + "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")" + ); + groupNode.insert("rect", "#" + attributeNode.cn.node().id).classed(`er ${attribStyle}`, "true").attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxCommentWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2); + } + heightOffset += attributeNode.height + heightPadding * 2; + attribStyle = attribStyle === "attributeBoxOdd" ? "attributeBoxEven" : "attributeBoxOdd"; + }); + } else { + bBox.height = Math.max(conf.minEntityHeight, cumulativeHeight); + entityTextNode.attr("transform", "translate(" + bBox.width / 2 + "," + bBox.height / 2 + ")"); + } + return bBox; +}; +const drawEntities = function(svgNode, entities2, graph) { + const keys = Object.keys(entities2); + let firstOne; + keys.forEach(function(entityName) { + const entityId = generateId(entityName, "entity"); + entityNameIds.set(entityName, entityId); + const groupNode = svgNode.append("g").attr("id", entityId); + firstOne = firstOne === void 0 ? entityId : firstOne; + const textId = "text-" + entityId; + const textNode = groupNode.append("text").classed("er entityLabel", true).attr("id", textId).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "middle").style("font-family", getConfig().fontFamily).style("font-size", conf.fontSize + "px").text(entities2[entityName].alias ?? entityName); + const { width: entityWidth, height: entityHeight } = drawAttributes( + groupNode, + textNode, + entities2[entityName].attributes + ); + const rectNode = groupNode.insert("rect", "#" + textId).classed("er entityBox", true).attr("x", 0).attr("y", 0).attr("width", entityWidth).attr("height", entityHeight); + const rectBBox = rectNode.node().getBBox(); + graph.setNode(entityId, { + width: rectBBox.width, + height: rectBBox.height, + shape: "rect", + id: entityId + }); + }); + return firstOne; +}; +const adjustEntities = function(svgNode, graph) { + graph.nodes().forEach(function(v) { + if (v !== void 0 && graph.node(v) !== void 0) { + svgNode.select("#" + v).attr( + "transform", + "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y - graph.node(v).height / 2) + " )" + ); + } + }); +}; +const getEdgeName = function(rel) { + return (rel.entityA + rel.roleA + rel.entityB).replace(/\s/g, ""); +}; +const addRelationships = function(relationships2, g) { + relationships2.forEach(function(r) { + g.setEdge( + entityNameIds.get(r.entityA), + entityNameIds.get(r.entityB), + { relationship: r }, + getEdgeName(r) + ); + }); + return relationships2; +}; +let relCnt = 0; +const drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) { + relCnt++; + const edge = g.edge( + entityNameIds.get(rel.entityA), + entityNameIds.get(rel.entityB), + getEdgeName(rel) + ); + const lineFunction = line().x(function(d) { + return d.x; + }).y(function(d) { + return d.y; + }).curve(curveBasis); + const svgPath = svg.insert("path", "#" + insert).classed("er relationshipLine", true).attr("d", lineFunction(edge.points)).style("stroke", conf.stroke).style("fill", "none"); + if (rel.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) { + svgPath.attr("stroke-dasharray", "8,8"); + } + let url = ""; + if (conf.arrowMarkerAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); + } + switch (rel.relSpec.cardA) { + case diagObj.db.Cardinality.ZERO_OR_ONE: + svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_ONE_END + ")"); + break; + case diagObj.db.Cardinality.ZERO_OR_MORE: + svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_MORE_END + ")"); + break; + case diagObj.db.Cardinality.ONE_OR_MORE: + svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ONE_OR_MORE_END + ")"); + break; + case diagObj.db.Cardinality.ONLY_ONE: + svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ONLY_ONE_END + ")"); + break; + case diagObj.db.Cardinality.MD_PARENT: + svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.MD_PARENT_END + ")"); + break; + } + switch (rel.relSpec.cardB) { + case diagObj.db.Cardinality.ZERO_OR_ONE: + svgPath.attr( + "marker-start", + "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_ONE_START + ")" + ); + break; + case diagObj.db.Cardinality.ZERO_OR_MORE: + svgPath.attr( + "marker-start", + "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_MORE_START + ")" + ); + break; + case diagObj.db.Cardinality.ONE_OR_MORE: + svgPath.attr( + "marker-start", + "url(" + url + "#" + erMarkers.ERMarkers.ONE_OR_MORE_START + ")" + ); + break; + case diagObj.db.Cardinality.ONLY_ONE: + svgPath.attr("marker-start", "url(" + url + "#" + erMarkers.ERMarkers.ONLY_ONE_START + ")"); + break; + case diagObj.db.Cardinality.MD_PARENT: + svgPath.attr("marker-start", "url(" + url + "#" + erMarkers.ERMarkers.MD_PARENT_START + ")"); + break; + } + const len = svgPath.node().getTotalLength(); + const labelPoint = svgPath.node().getPointAtLength(len * 0.5); + const labelId = "rel" + relCnt; + const labelNode = svg.append("text").classed("er relationshipLabel", true).attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).style("text-anchor", "middle").style("dominant-baseline", "middle").style("font-family", getConfig().fontFamily).style("font-size", conf.fontSize + "px").text(rel.roleA); + const labelBBox = labelNode.node().getBBox(); + svg.insert("rect", "#" + labelId).classed("er relationshipLabelBox", true).attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height); +}; +const draw = function(text, id, _version, diagObj) { + conf = getConfig().er; + log.info("Drawing ER diagram"); + const securityLevel = getConfig().securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const svg = root.select(`[id='${id}']`); + erMarkers.insertMarkers(svg, conf); + let g; + g = new graphlib.Graph({ + multigraph: true, + directed: true, + compound: false + }).setGraph({ + rankdir: conf.layoutDirection, + marginx: 20, + marginy: 20, + nodesep: 100, + edgesep: 100, + ranksep: 100 + }).setDefaultEdgeLabel(function() { + return {}; + }); + const firstEntity = drawEntities(svg, diagObj.db.getEntities(), g); + const relationships2 = addRelationships(diagObj.db.getRelationships(), g); + layout(g); + adjustEntities(svg, g); + relationships2.forEach(function(rel) { + drawRelationshipFromLayout(svg, rel, g, firstEntity, diagObj); + }); + const padding = conf.diagramPadding; + utils.insertTitle(svg, "entityTitleText", conf.titleTopMargin, diagObj.db.getDiagramTitle()); + const svgBounds = svg.node().getBBox(); + const width = svgBounds.width + padding * 2; + const height = svgBounds.height + padding * 2; + configureSvgSize(svg, height, width, conf.useMaxWidth); + svg.attr("viewBox", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`); +}; +const MERMAID_ERDIAGRAM_UUID = "28e9f9db-3c8d-5aa5-9faf-44286ae5937c"; +function generateId(str = "", prefix = "") { + const simplifiedStr = str.replace(BAD_ID_CHARS_REGEXP, ""); + return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${v5( + str, + MERMAID_ERDIAGRAM_UUID + )}`; +} +function strWithHyphen(str = "") { + return str.length > 0 ? `${str}-` : ""; +} +const erRenderer = { + setConf, + draw +}; +const getStyles = (options) => ` + .entityBox { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; + } + + .attributeBoxOdd { + fill: ${options.attributeBackgroundColorOdd}; + stroke: ${options.nodeBorder}; + } + + .attributeBoxEven { + fill: ${options.attributeBackgroundColorEven}; + stroke: ${options.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${options.tertiaryColor}; + opacity: 0.7; + background-color: ${options.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .relationshipLine { + stroke: ${options.lineColor}; + } + + .entityTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.textColor}; + } + #MD_PARENT_START { + fill: #f5f5f5 !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; + } + #MD_PARENT_END { + fill: #f5f5f5 !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; + } + +`; +const erStyles = getStyles; +const diagram = { + parser: erParser, + db: erDb, + renderer: erRenderer, + styles: erStyles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/erDiagram-543717f2.js b/assets/lib/mermaid/erDiagram-543717f2.js new file mode 100644 index 000000000..63f801289 --- /dev/null +++ b/assets/lib/mermaid/erDiagram-543717f2.js @@ -0,0 +1,1321 @@ +import { c as getConfig, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, C as setDiagramTitle, D as getDiagramTitle, l as log, E as clear$1, j as d3select, A as utils, k as configureSvgSize, F as curveBasis, G as parseGenericTypes } from "./mermaid-dcacb631.js"; +import { G as Graph } from "./graph-fe24fab6.js"; +import { l as layout } from "./layout-163b9689.js"; +import { l as line } from "./line-87f517ef.js"; +import "./array-b7dcf730.js"; +import "./path-39bad7e2.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [6, 8, 10, 20, 22, 24, 26, 27, 28], $V1 = [1, 10], $V2 = [1, 11], $V3 = [1, 12], $V4 = [1, 13], $V5 = [1, 14], $V6 = [1, 15], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 24], $Vb = [1, 25], $Vc = [6, 8, 10, 13, 15, 18, 19, 20, 22, 24, 26, 27, 28, 41, 42, 43, 44, 45], $Vd = [1, 34], $Ve = [27, 28, 46, 47], $Vf = [41, 42, 43, 44, 45], $Vg = [17, 34], $Vh = [1, 54], $Vi = [1, 53], $Vj = [17, 34, 36, 38]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "ER_DIAGRAM": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "entityName": 11, "relSpec": 12, ":": 13, "role": 14, "BLOCK_START": 15, "attributes": 16, "BLOCK_STOP": 17, "SQS": 18, "SQE": 19, "title": 20, "title_value": 21, "acc_title": 22, "acc_title_value": 23, "acc_descr": 24, "acc_descr_value": 25, "acc_descr_multiline_value": 26, "ALPHANUM": 27, "ENTITY_NAME": 28, "attribute": 29, "attributeType": 30, "attributeName": 31, "attributeKeyTypeList": 32, "attributeComment": 33, "ATTRIBUTE_WORD": 34, "attributeKeyType": 35, "COMMA": 36, "ATTRIBUTE_KEY": 37, "COMMENT": 38, "cardinality": 39, "relType": 40, "ZERO_OR_ONE": 41, "ZERO_OR_MORE": 42, "ONE_OR_MORE": 43, "ONLY_ONE": 44, "MD_PARENT": 45, "NON_IDENTIFYING": 46, "IDENTIFYING": 47, "WORD": 48, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "ER_DIAGRAM", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 13: ":", 15: "BLOCK_START", 17: "BLOCK_STOP", 18: "SQS", 19: "SQE", 20: "title", 21: "title_value", 22: "acc_title", 23: "acc_title_value", 24: "acc_descr", 25: "acc_descr_value", 26: "acc_descr_multiline_value", 27: "ALPHANUM", 28: "ENTITY_NAME", 34: "ATTRIBUTE_WORD", 36: "COMMA", 37: "ATTRIBUTE_KEY", 38: "COMMENT", 41: "ZERO_OR_ONE", 42: "ZERO_OR_MORE", 43: "ONE_OR_MORE", 44: "ONLY_ONE", 45: "MD_PARENT", 46: "NON_IDENTIFYING", 47: "IDENTIFYING", 48: "WORD" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 5], [9, 4], [9, 3], [9, 1], [9, 7], [9, 6], [9, 4], [9, 2], [9, 2], [9, 2], [9, 1], [11, 1], [11, 1], [16, 1], [16, 2], [29, 2], [29, 3], [29, 3], [29, 4], [30, 1], [31, 1], [32, 1], [32, 3], [35, 1], [33, 1], [12, 3], [39, 1], [39, 1], [39, 1], [39, 1], [39, 1], [40, 1], [40, 1], [14, 1], [14, 1], [14, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 1: + break; + case 2: + this.$ = []; + break; + case 3: + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + break; + case 4: + case 5: + this.$ = $$[$0]; + break; + case 6: + case 7: + this.$ = []; + break; + case 8: + yy.addEntity($$[$0 - 4]); + yy.addEntity($$[$0 - 2]); + yy.addRelationship($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 3]); + break; + case 9: + yy.addEntity($$[$0 - 3]); + yy.addAttributes($$[$0 - 3], $$[$0 - 1]); + break; + case 10: + yy.addEntity($$[$0 - 2]); + break; + case 11: + yy.addEntity($$[$0]); + break; + case 12: + yy.addEntity($$[$0 - 6], $$[$0 - 4]); + yy.addAttributes($$[$0 - 6], $$[$0 - 1]); + break; + case 13: + yy.addEntity($$[$0 - 5], $$[$0 - 3]); + break; + case 14: + yy.addEntity($$[$0 - 3], $$[$0 - 1]); + break; + case 15: + case 16: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 17: + case 18: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 19: + case 43: + this.$ = $$[$0]; + break; + case 20: + case 41: + case 42: + this.$ = $$[$0].replace(/"/g, ""); + break; + case 21: + case 29: + this.$ = [$$[$0]]; + break; + case 22: + $$[$0].push($$[$0 - 1]); + this.$ = $$[$0]; + break; + case 23: + this.$ = { attributeType: $$[$0 - 1], attributeName: $$[$0] }; + break; + case 24: + this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeKeyTypeList: $$[$0] }; + break; + case 25: + this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeComment: $$[$0] }; + break; + case 26: + this.$ = { attributeType: $$[$0 - 3], attributeName: $$[$0 - 2], attributeKeyTypeList: $$[$0 - 1], attributeComment: $$[$0] }; + break; + case 27: + case 28: + case 31: + this.$ = $$[$0]; + break; + case 30: + $$[$0 - 2].push($$[$0]); + this.$ = $$[$0 - 2]; + break; + case 32: + this.$ = $$[$0].replace(/"/g, ""); + break; + case 33: + this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] }; + break; + case 34: + this.$ = yy.Cardinality.ZERO_OR_ONE; + break; + case 35: + this.$ = yy.Cardinality.ZERO_OR_MORE; + break; + case 36: + this.$ = yy.Cardinality.ONE_OR_MORE; + break; + case 37: + this.$ = yy.Cardinality.ONLY_ONE; + break; + case 38: + this.$ = yy.Cardinality.MD_PARENT; + break; + case 39: + this.$ = yy.Identification.NON_IDENTIFYING; + break; + case 40: + this.$ = yy.Identification.IDENTIFYING; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 9, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 16, 11: 9, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 11], { 12: 17, 39: 20, 15: [1, 18], 18: [1, 19], 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }), { 21: [1, 26] }, { 23: [1, 27] }, { 25: [1, 28] }, o($V0, [2, 18]), o($Vc, [2, 19]), o($Vc, [2, 20]), o($V0, [2, 4]), { 11: 29, 27: $V5, 28: $V6 }, { 16: 30, 17: [1, 31], 29: 32, 30: 33, 34: $Vd }, { 11: 35, 27: $V5, 28: $V6 }, { 40: 36, 46: [1, 37], 47: [1, 38] }, o($Ve, [2, 34]), o($Ve, [2, 35]), o($Ve, [2, 36]), o($Ve, [2, 37]), o($Ve, [2, 38]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), { 13: [1, 39] }, { 17: [1, 40] }, o($V0, [2, 10]), { 16: 41, 17: [2, 21], 29: 32, 30: 33, 34: $Vd }, { 31: 42, 34: [1, 43] }, { 34: [2, 27] }, { 19: [1, 44] }, { 39: 45, 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }, o($Vf, [2, 39]), o($Vf, [2, 40]), { 14: 46, 27: [1, 49], 28: [1, 48], 48: [1, 47] }, o($V0, [2, 9]), { 17: [2, 22] }, o($Vg, [2, 23], { 32: 50, 33: 51, 35: 52, 37: $Vh, 38: $Vi }), o([17, 34, 37, 38], [2, 28]), o($V0, [2, 14], { 15: [1, 55] }), o([27, 28], [2, 33]), o($V0, [2, 8]), o($V0, [2, 41]), o($V0, [2, 42]), o($V0, [2, 43]), o($Vg, [2, 24], { 33: 56, 36: [1, 57], 38: $Vi }), o($Vg, [2, 25]), o($Vj, [2, 29]), o($Vg, [2, 32]), o($Vj, [2, 31]), { 16: 58, 17: [1, 59], 29: 32, 30: 33, 34: $Vd }, o($Vg, [2, 26]), { 35: 60, 37: $Vh }, { 17: [1, 61] }, o($V0, [2, 13]), o($Vj, [2, 30]), o($V0, [2, 12])], + defaultActions: { 34: [2, 27], 41: [2, 22] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse2(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + this.begin("acc_title"); + return 22; + case 1: + this.popState(); + return "acc_title_value"; + case 2: + this.begin("acc_descr"); + return 24; + case 3: + this.popState(); + return "acc_descr_value"; + case 4: + this.begin("acc_descr_multiline"); + break; + case 5: + this.popState(); + break; + case 6: + return "acc_descr_multiline_value"; + case 7: + return 10; + case 8: + break; + case 9: + return 8; + case 10: + return 28; + case 11: + return 48; + case 12: + return 4; + case 13: + this.begin("block"); + return 15; + case 14: + return 36; + case 15: + break; + case 16: + return 37; + case 17: + return 34; + case 18: + return 34; + case 19: + return 38; + case 20: + break; + case 21: + this.popState(); + return 17; + case 22: + return yy_.yytext[0]; + case 23: + return 18; + case 24: + return 19; + case 25: + return 41; + case 26: + return 43; + case 27: + return 43; + case 28: + return 43; + case 29: + return 41; + case 30: + return 41; + case 31: + return 42; + case 32: + return 42; + case 33: + return 42; + case 34: + return 42; + case 35: + return 42; + case 36: + return 43; + case 37: + return 42; + case 38: + return 43; + case 39: + return 44; + case 40: + return 44; + case 41: + return 44; + case 42: + return 44; + case 43: + return 41; + case 44: + return 42; + case 45: + return 43; + case 46: + return 45; + case 47: + return 46; + case 48: + return 47; + case 49: + return 47; + case 50: + return 46; + case 51: + return 46; + case 52: + return 46; + case 53: + return 27; + case 54: + return yy_.yytext[0]; + case 55: + return 6; + } + }, + rules: [/^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:[\s]+)/i, /^(?:"[^"%\r\n\v\b\\]+")/i, /^(?:"[^"]*")/i, /^(?:erDiagram\b)/i, /^(?:\{)/i, /^(?:,)/i, /^(?:\s+)/i, /^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i, /^(?:"[^"]*")/i, /^(?:[\n]+)/i, /^(?:\})/i, /^(?:.)/i, /^(?:\[)/i, /^(?:\])/i, /^(?:one or zero\b)/i, /^(?:one or more\b)/i, /^(?:one or many\b)/i, /^(?:1\+)/i, /^(?:\|o\b)/i, /^(?:zero or one\b)/i, /^(?:zero or more\b)/i, /^(?:zero or many\b)/i, /^(?:0\+)/i, /^(?:\}o\b)/i, /^(?:many\(0\))/i, /^(?:many\(1\))/i, /^(?:many\b)/i, /^(?:\}\|)/i, /^(?:one\b)/i, /^(?:only one\b)/i, /^(?:1\b)/i, /^(?:\|\|)/i, /^(?:o\|)/i, /^(?:o\{)/i, /^(?:\|\{)/i, /^(?:\s*u\b)/i, /^(?:\.\.)/i, /^(?:--)/i, /^(?:to\b)/i, /^(?:optionally to\b)/i, /^(?:\.-)/i, /^(?:-\.)/i, /^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i, /^(?:.)/i, /^(?:$)/i], + conditions: { "acc_descr_multiline": { "rules": [5, 6], "inclusive": false }, "acc_descr": { "rules": [3], "inclusive": false }, "acc_title": { "rules": [1], "inclusive": false }, "block": { "rules": [14, 15, 16, 17, 18, 19, 20, 21, 22], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const erParser = parser; +let entities = {}; +let relationships = []; +const Cardinality = { + ZERO_OR_ONE: "ZERO_OR_ONE", + ZERO_OR_MORE: "ZERO_OR_MORE", + ONE_OR_MORE: "ONE_OR_MORE", + ONLY_ONE: "ONLY_ONE", + MD_PARENT: "MD_PARENT" +}; +const Identification = { + NON_IDENTIFYING: "NON_IDENTIFYING", + IDENTIFYING: "IDENTIFYING" +}; +const addEntity = function(name, alias = void 0) { + if (entities[name] === void 0) { + entities[name] = { attributes: [], alias }; + log.info("Added new entity :", name); + } else if (entities[name] && !entities[name].alias && alias) { + entities[name].alias = alias; + log.info(`Add alias '${alias}' to entity '${name}'`); + } + return entities[name]; +}; +const getEntities = () => entities; +const addAttributes = function(entityName, attribs) { + let entity = addEntity(entityName); + let i; + for (i = attribs.length - 1; i >= 0; i--) { + entity.attributes.push(attribs[i]); + log.debug("Added attribute ", attribs[i].attributeName); + } +}; +const addRelationship = function(entA, rolA, entB, rSpec) { + let rel = { + entityA: entA, + roleA: rolA, + entityB: entB, + relSpec: rSpec + }; + relationships.push(rel); + log.debug("Added new relationship :", rel); +}; +const getRelationships = () => relationships; +const clear = function() { + entities = {}; + relationships = []; + clear$1(); +}; +const erDb = { + Cardinality, + Identification, + getConfig: () => getConfig().er, + addEntity, + addAttributes, + getEntities, + addRelationship, + getRelationships, + clear, + setAccTitle, + getAccTitle, + setAccDescription, + getAccDescription, + setDiagramTitle, + getDiagramTitle +}; +const ERMarkers = { + ONLY_ONE_START: "ONLY_ONE_START", + ONLY_ONE_END: "ONLY_ONE_END", + ZERO_OR_ONE_START: "ZERO_OR_ONE_START", + ZERO_OR_ONE_END: "ZERO_OR_ONE_END", + ONE_OR_MORE_START: "ONE_OR_MORE_START", + ONE_OR_MORE_END: "ONE_OR_MORE_END", + ZERO_OR_MORE_START: "ZERO_OR_MORE_START", + ZERO_OR_MORE_END: "ZERO_OR_MORE_END", + MD_PARENT_END: "MD_PARENT_END", + MD_PARENT_START: "MD_PARENT_START" +}; +const insertMarkers = function(elem, conf2) { + let marker; + elem.append("defs").append("marker").attr("id", ERMarkers.MD_PARENT_START).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", ERMarkers.MD_PARENT_END).attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M9,0 L9,18 M15,0 L15,18"); + elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_END).attr("refX", 18).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M3,0 L3,18 M9,0 L9,18"); + marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto"); + marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 21).attr("cy", 9).attr("r", 6); + marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M9,0 L9,18"); + marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_END).attr("refX", 30).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto"); + marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 9).attr("r", 6); + marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M21,0 L21,18"); + elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"); + elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_END).attr("refX", 27).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"); + marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto"); + marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 48).attr("cy", 18).attr("r", 6); + marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M0,18 Q18,0 36,18 Q18,36 0,18"); + marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_END).attr("refX", 39).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto"); + marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 18).attr("r", 6); + marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M21,18 Q39,0 57,18 Q39,36 21,18"); + return; +}; +const erMarkers = { + ERMarkers, + insertMarkers +}; +const REGEX = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; +function validate(uuid) { + return typeof uuid === "string" && REGEX.test(uuid); +} +const byteToHex = []; +for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 256).toString(16).slice(1)); +} +function unsafeStringify(arr, offset = 0) { + return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]; +} +function parse(uuid) { + if (!validate(uuid)) { + throw TypeError("Invalid UUID"); + } + let v; + const arr = new Uint8Array(16); + arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; + arr[1] = v >>> 16 & 255; + arr[2] = v >>> 8 & 255; + arr[3] = v & 255; + arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; + arr[5] = v & 255; + arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; + arr[7] = v & 255; + arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; + arr[9] = v & 255; + arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 1099511627776 & 255; + arr[11] = v / 4294967296 & 255; + arr[12] = v >>> 24 & 255; + arr[13] = v >>> 16 & 255; + arr[14] = v >>> 8 & 255; + arr[15] = v & 255; + return arr; +} +function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); + const bytes = []; + for (let i = 0; i < str.length; ++i) { + bytes.push(str.charCodeAt(i)); + } + return bytes; +} +const DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; +const URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; +function v35(name, version, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + var _namespace; + if (typeof value === "string") { + value = stringToBytes(value); + } + if (typeof namespace === "string") { + namespace = parse(namespace); + } + if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) { + throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)"); + } + let bytes = new Uint8Array(16 + value.length); + bytes.set(namespace); + bytes.set(value, namespace.length); + bytes = hashfunc(bytes); + bytes[6] = bytes[6] & 15 | version; + bytes[8] = bytes[8] & 63 | 128; + if (buf) { + offset = offset || 0; + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i]; + } + return buf; + } + return unsafeStringify(bytes); + } + try { + generateUUID.name = name; + } catch (err) { + } + generateUUID.DNS = DNS; + generateUUID.URL = URL; + return generateUUID; +} +function f(s, x, y, z) { + switch (s) { + case 0: + return x & y ^ ~x & z; + case 1: + return x ^ y ^ z; + case 2: + return x & y ^ x & z ^ y & z; + case 3: + return x ^ y ^ z; + } +} +function ROTL(x, n) { + return x << n | x >>> 32 - n; +} +function sha1(bytes) { + const K = [1518500249, 1859775393, 2400959708, 3395469782]; + const H = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]; + if (typeof bytes === "string") { + const msg = unescape(encodeURIComponent(bytes)); + bytes = []; + for (let i = 0; i < msg.length; ++i) { + bytes.push(msg.charCodeAt(i)); + } + } else if (!Array.isArray(bytes)) { + bytes = Array.prototype.slice.call(bytes); + } + bytes.push(128); + const l = bytes.length / 4 + 2; + const N = Math.ceil(l / 16); + const M = new Array(N); + for (let i = 0; i < N; ++i) { + const arr = new Uint32Array(16); + for (let j = 0; j < 16; ++j) { + arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3]; + } + M[i] = arr; + } + M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32); + M[N - 1][14] = Math.floor(M[N - 1][14]); + M[N - 1][15] = (bytes.length - 1) * 8 & 4294967295; + for (let i = 0; i < N; ++i) { + const W = new Uint32Array(80); + for (let t = 0; t < 16; ++t) { + W[t] = M[i][t]; + } + for (let t = 16; t < 80; ++t) { + W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1); + } + let a = H[0]; + let b = H[1]; + let c = H[2]; + let d = H[3]; + let e = H[4]; + for (let t = 0; t < 80; ++t) { + const s = Math.floor(t / 20); + const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0; + e = d; + d = c; + c = ROTL(b, 30) >>> 0; + b = a; + a = T; + } + H[0] = H[0] + a >>> 0; + H[1] = H[1] + b >>> 0; + H[2] = H[2] + c >>> 0; + H[3] = H[3] + d >>> 0; + H[4] = H[4] + e >>> 0; + } + return [H[0] >> 24 & 255, H[0] >> 16 & 255, H[0] >> 8 & 255, H[0] & 255, H[1] >> 24 & 255, H[1] >> 16 & 255, H[1] >> 8 & 255, H[1] & 255, H[2] >> 24 & 255, H[2] >> 16 & 255, H[2] >> 8 & 255, H[2] & 255, H[3] >> 24 & 255, H[3] >> 16 & 255, H[3] >> 8 & 255, H[3] & 255, H[4] >> 24 & 255, H[4] >> 16 & 255, H[4] >> 8 & 255, H[4] & 255]; +} +const v5 = v35("v5", 80, sha1); +const uuid5 = v5; +const BAD_ID_CHARS_REGEXP = /[^\dA-Za-z](\W)*/g; +let conf = {}; +let entityNameIds = /* @__PURE__ */ new Map(); +const setConf = function(cnf) { + const keys = Object.keys(cnf); + for (const key of keys) { + conf[key] = cnf[key]; + } +}; +const drawAttributes = (groupNode, entityTextNode, attributes) => { + const heightPadding = conf.entityPadding / 3; + const widthPadding = conf.entityPadding / 3; + const attrFontSize = conf.fontSize * 0.85; + const labelBBox = entityTextNode.node().getBBox(); + const attributeNodes = []; + let hasKeyType = false; + let hasComment = false; + let maxTypeWidth = 0; + let maxNameWidth = 0; + let maxKeyWidth = 0; + let maxCommentWidth = 0; + let cumulativeHeight = labelBBox.height + heightPadding * 2; + let attrNum = 1; + attributes.forEach((item) => { + if (item.attributeKeyTypeList !== void 0 && item.attributeKeyTypeList.length > 0) { + hasKeyType = true; + } + if (item.attributeComment !== void 0) { + hasComment = true; + } + }); + attributes.forEach((item) => { + const attrPrefix = `${entityTextNode.node().id}-attr-${attrNum}`; + let nodeHeight = 0; + const attributeType = parseGenericTypes(item.attributeType); + const typeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-type`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(attributeType); + const nameNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-name`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeName); + const attributeNode = {}; + attributeNode.tn = typeNode; + attributeNode.nn = nameNode; + const typeBBox = typeNode.node().getBBox(); + const nameBBox = nameNode.node().getBBox(); + maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width); + maxNameWidth = Math.max(maxNameWidth, nameBBox.width); + nodeHeight = Math.max(typeBBox.height, nameBBox.height); + if (hasKeyType) { + const keyTypeNodeText = item.attributeKeyTypeList !== void 0 ? item.attributeKeyTypeList.join(",") : ""; + const keyTypeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-key`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(keyTypeNodeText); + attributeNode.kn = keyTypeNode; + const keyTypeBBox = keyTypeNode.node().getBBox(); + maxKeyWidth = Math.max(maxKeyWidth, keyTypeBBox.width); + nodeHeight = Math.max(nodeHeight, keyTypeBBox.height); + } + if (hasComment) { + const commentNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-comment`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeComment || ""); + attributeNode.cn = commentNode; + const commentNodeBBox = commentNode.node().getBBox(); + maxCommentWidth = Math.max(maxCommentWidth, commentNodeBBox.width); + nodeHeight = Math.max(nodeHeight, commentNodeBBox.height); + } + attributeNode.height = nodeHeight; + attributeNodes.push(attributeNode); + cumulativeHeight += nodeHeight + heightPadding * 2; + attrNum += 1; + }); + let widthPaddingFactor = 4; + if (hasKeyType) { + widthPaddingFactor += 2; + } + if (hasComment) { + widthPaddingFactor += 2; + } + const maxWidth = maxTypeWidth + maxNameWidth + maxKeyWidth + maxCommentWidth; + const bBox = { + width: Math.max( + conf.minEntityWidth, + Math.max( + labelBBox.width + conf.entityPadding * 2, + maxWidth + widthPadding * widthPaddingFactor + ) + ), + height: attributes.length > 0 ? cumulativeHeight : Math.max(conf.minEntityHeight, labelBBox.height + conf.entityPadding * 2) + }; + if (attributes.length > 0) { + const spareColumnWidth = Math.max( + 0, + (bBox.width - maxWidth - widthPadding * widthPaddingFactor) / (widthPaddingFactor / 2) + ); + entityTextNode.attr( + "transform", + "translate(" + bBox.width / 2 + "," + (heightPadding + labelBBox.height / 2) + ")" + ); + let heightOffset = labelBBox.height + heightPadding * 2; + let attribStyle = "attributeBoxOdd"; + attributeNodes.forEach((attributeNode) => { + const alignY = heightOffset + heightPadding + attributeNode.height / 2; + attributeNode.tn.attr("transform", "translate(" + widthPadding + "," + alignY + ")"); + const typeRect = groupNode.insert("rect", "#" + attributeNode.tn.node().id).classed(`er ${attribStyle}`, true).attr("x", 0).attr("y", heightOffset).attr("width", maxTypeWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2); + const nameXOffset = parseFloat(typeRect.attr("x")) + parseFloat(typeRect.attr("width")); + attributeNode.nn.attr( + "transform", + "translate(" + (nameXOffset + widthPadding) + "," + alignY + ")" + ); + const nameRect = groupNode.insert("rect", "#" + attributeNode.nn.node().id).classed(`er ${attribStyle}`, true).attr("x", nameXOffset).attr("y", heightOffset).attr("width", maxNameWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2); + let keyTypeAndCommentXOffset = parseFloat(nameRect.attr("x")) + parseFloat(nameRect.attr("width")); + if (hasKeyType) { + attributeNode.kn.attr( + "transform", + "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")" + ); + const keyTypeRect = groupNode.insert("rect", "#" + attributeNode.kn.node().id).classed(`er ${attribStyle}`, true).attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxKeyWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2); + keyTypeAndCommentXOffset = parseFloat(keyTypeRect.attr("x")) + parseFloat(keyTypeRect.attr("width")); + } + if (hasComment) { + attributeNode.cn.attr( + "transform", + "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")" + ); + groupNode.insert("rect", "#" + attributeNode.cn.node().id).classed(`er ${attribStyle}`, "true").attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxCommentWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2); + } + heightOffset += attributeNode.height + heightPadding * 2; + attribStyle = attribStyle === "attributeBoxOdd" ? "attributeBoxEven" : "attributeBoxOdd"; + }); + } else { + bBox.height = Math.max(conf.minEntityHeight, cumulativeHeight); + entityTextNode.attr("transform", "translate(" + bBox.width / 2 + "," + bBox.height / 2 + ")"); + } + return bBox; +}; +const drawEntities = function(svgNode, entities2, graph) { + const keys = Object.keys(entities2); + let firstOne; + keys.forEach(function(entityName) { + const entityId = generateId(entityName, "entity"); + entityNameIds.set(entityName, entityId); + const groupNode = svgNode.append("g").attr("id", entityId); + firstOne = firstOne === void 0 ? entityId : firstOne; + const textId = "text-" + entityId; + const textNode = groupNode.append("text").classed("er entityLabel", true).attr("id", textId).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "middle").style("font-family", getConfig().fontFamily).style("font-size", conf.fontSize + "px").text(entities2[entityName].alias ?? entityName); + const { width: entityWidth, height: entityHeight } = drawAttributes( + groupNode, + textNode, + entities2[entityName].attributes + ); + const rectNode = groupNode.insert("rect", "#" + textId).classed("er entityBox", true).attr("x", 0).attr("y", 0).attr("width", entityWidth).attr("height", entityHeight); + const rectBBox = rectNode.node().getBBox(); + graph.setNode(entityId, { + width: rectBBox.width, + height: rectBBox.height, + shape: "rect", + id: entityId + }); + }); + return firstOne; +}; +const adjustEntities = function(svgNode, graph) { + graph.nodes().forEach(function(v) { + if (v !== void 0 && graph.node(v) !== void 0) { + svgNode.select("#" + v).attr( + "transform", + "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y - graph.node(v).height / 2) + " )" + ); + } + }); +}; +const getEdgeName = function(rel) { + return (rel.entityA + rel.roleA + rel.entityB).replace(/\s/g, ""); +}; +const addRelationships = function(relationships2, g) { + relationships2.forEach(function(r) { + g.setEdge( + entityNameIds.get(r.entityA), + entityNameIds.get(r.entityB), + { relationship: r }, + getEdgeName(r) + ); + }); + return relationships2; +}; +let relCnt = 0; +const drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) { + relCnt++; + const edge = g.edge( + entityNameIds.get(rel.entityA), + entityNameIds.get(rel.entityB), + getEdgeName(rel) + ); + const lineFunction = line().x(function(d) { + return d.x; + }).y(function(d) { + return d.y; + }).curve(curveBasis); + const svgPath = svg.insert("path", "#" + insert).classed("er relationshipLine", true).attr("d", lineFunction(edge.points)).style("stroke", conf.stroke).style("fill", "none"); + if (rel.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) { + svgPath.attr("stroke-dasharray", "8,8"); + } + let url = ""; + if (conf.arrowMarkerAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); + } + switch (rel.relSpec.cardA) { + case diagObj.db.Cardinality.ZERO_OR_ONE: + svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_ONE_END + ")"); + break; + case diagObj.db.Cardinality.ZERO_OR_MORE: + svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_MORE_END + ")"); + break; + case diagObj.db.Cardinality.ONE_OR_MORE: + svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ONE_OR_MORE_END + ")"); + break; + case diagObj.db.Cardinality.ONLY_ONE: + svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ONLY_ONE_END + ")"); + break; + case diagObj.db.Cardinality.MD_PARENT: + svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.MD_PARENT_END + ")"); + break; + } + switch (rel.relSpec.cardB) { + case diagObj.db.Cardinality.ZERO_OR_ONE: + svgPath.attr( + "marker-start", + "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_ONE_START + ")" + ); + break; + case diagObj.db.Cardinality.ZERO_OR_MORE: + svgPath.attr( + "marker-start", + "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_MORE_START + ")" + ); + break; + case diagObj.db.Cardinality.ONE_OR_MORE: + svgPath.attr( + "marker-start", + "url(" + url + "#" + erMarkers.ERMarkers.ONE_OR_MORE_START + ")" + ); + break; + case diagObj.db.Cardinality.ONLY_ONE: + svgPath.attr("marker-start", "url(" + url + "#" + erMarkers.ERMarkers.ONLY_ONE_START + ")"); + break; + case diagObj.db.Cardinality.MD_PARENT: + svgPath.attr("marker-start", "url(" + url + "#" + erMarkers.ERMarkers.MD_PARENT_START + ")"); + break; + } + const len = svgPath.node().getTotalLength(); + const labelPoint = svgPath.node().getPointAtLength(len * 0.5); + const labelId = "rel" + relCnt; + const labelNode = svg.append("text").classed("er relationshipLabel", true).attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).style("text-anchor", "middle").style("dominant-baseline", "middle").style("font-family", getConfig().fontFamily).style("font-size", conf.fontSize + "px").text(rel.roleA); + const labelBBox = labelNode.node().getBBox(); + svg.insert("rect", "#" + labelId).classed("er relationshipLabelBox", true).attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height); +}; +const draw = function(text, id, _version, diagObj) { + conf = getConfig().er; + log.info("Drawing ER diagram"); + const securityLevel = getConfig().securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const svg = root.select(`[id='${id}']`); + erMarkers.insertMarkers(svg, conf); + let g; + g = new Graph({ + multigraph: true, + directed: true, + compound: false + }).setGraph({ + rankdir: conf.layoutDirection, + marginx: 20, + marginy: 20, + nodesep: 100, + edgesep: 100, + ranksep: 100 + }).setDefaultEdgeLabel(function() { + return {}; + }); + const firstEntity = drawEntities(svg, diagObj.db.getEntities(), g); + const relationships2 = addRelationships(diagObj.db.getRelationships(), g); + layout(g); + adjustEntities(svg, g); + relationships2.forEach(function(rel) { + drawRelationshipFromLayout(svg, rel, g, firstEntity, diagObj); + }); + const padding = conf.diagramPadding; + utils.insertTitle(svg, "entityTitleText", conf.titleTopMargin, diagObj.db.getDiagramTitle()); + const svgBounds = svg.node().getBBox(); + const width = svgBounds.width + padding * 2; + const height = svgBounds.height + padding * 2; + configureSvgSize(svg, height, width, conf.useMaxWidth); + svg.attr("viewBox", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`); +}; +const MERMAID_ERDIAGRAM_UUID = "28e9f9db-3c8d-5aa5-9faf-44286ae5937c"; +function generateId(str = "", prefix = "") { + const simplifiedStr = str.replace(BAD_ID_CHARS_REGEXP, ""); + return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${uuid5( + str, + MERMAID_ERDIAGRAM_UUID + )}`; +} +function strWithHyphen(str = "") { + return str.length > 0 ? `${str}-` : ""; +} +const erRenderer = { + setConf, + draw +}; +const getStyles = (options) => ` + .entityBox { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; + } + + .attributeBoxOdd { + fill: ${options.attributeBackgroundColorOdd}; + stroke: ${options.nodeBorder}; + } + + .attributeBoxEven { + fill: ${options.attributeBackgroundColorEven}; + stroke: ${options.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${options.tertiaryColor}; + opacity: 0.7; + background-color: ${options.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .relationshipLine { + stroke: ${options.lineColor}; + } + + .entityTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.textColor}; + } + #MD_PARENT_START { + fill: #f5f5f5 !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; + } + #MD_PARENT_END { + fill: #f5f5f5 !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; + } + +`; +const erStyles = getStyles; +const diagram = { + parser: erParser, + db: erDb, + renderer: erRenderer, + styles: erStyles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/erDiagram-c7ff1bec.js b/assets/lib/mermaid/erDiagram-c7ff1bec.js new file mode 100644 index 000000000..85728a79a --- /dev/null +++ b/assets/lib/mermaid/erDiagram-c7ff1bec.js @@ -0,0 +1,931 @@ +import { c as Z, s as Et, g as mt, b as gt, a as kt, C as xt, D as Rt, l as V, E as Ot, j as rt, A as bt, k as Nt, F as Tt, G as At } from "./mermaid-9f2aa176.js"; +import { G as Mt } from "./graph-0ee63739.js"; +import { l as St } from "./layout-fd473db2.js"; +import { l as wt } from "./line-24d93f1b.js"; +import "./array-2ff2c7a6.js"; +import "./path-428ebac9.js"; +var at = function() { + var t = function(S, a, n, c) { + for (n = n || {}, c = S.length; c--; n[S[c]] = a) + ; + return n; + }, e = [6, 8, 10, 20, 22, 24, 26, 27, 28], r = [1, 10], u = [1, 11], l = [1, 12], p = [1, 13], f = [1, 14], o = [1, 15], h = [1, 21], _ = [1, 22], m = [1, 23], g = [1, 24], x = [1, 25], y = [6, 8, 10, 13, 15, 18, 19, 20, 22, 24, 26, 27, 28, 41, 42, 43, 44, 45], N = [1, 34], I = [27, 28, 46, 47], F = [41, 42, 43, 44, 45], W = [17, 34], C = [1, 54], T = [1, 53], M = [17, 34, 36, 38], R = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, ER_DIAGRAM: 4, document: 5, EOF: 6, line: 7, SPACE: 8, statement: 9, NEWLINE: 10, entityName: 11, relSpec: 12, ":": 13, role: 14, BLOCK_START: 15, attributes: 16, BLOCK_STOP: 17, SQS: 18, SQE: 19, title: 20, title_value: 21, acc_title: 22, acc_title_value: 23, acc_descr: 24, acc_descr_value: 25, acc_descr_multiline_value: 26, ALPHANUM: 27, ENTITY_NAME: 28, attribute: 29, attributeType: 30, attributeName: 31, attributeKeyTypeList: 32, attributeComment: 33, ATTRIBUTE_WORD: 34, attributeKeyType: 35, COMMA: 36, ATTRIBUTE_KEY: 37, COMMENT: 38, cardinality: 39, relType: 40, ZERO_OR_ONE: 41, ZERO_OR_MORE: 42, ONE_OR_MORE: 43, ONLY_ONE: 44, MD_PARENT: 45, NON_IDENTIFYING: 46, IDENTIFYING: 47, WORD: 48, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 4: "ER_DIAGRAM", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 13: ":", 15: "BLOCK_START", 17: "BLOCK_STOP", 18: "SQS", 19: "SQE", 20: "title", 21: "title_value", 22: "acc_title", 23: "acc_title_value", 24: "acc_descr", 25: "acc_descr_value", 26: "acc_descr_multiline_value", 27: "ALPHANUM", 28: "ENTITY_NAME", 34: "ATTRIBUTE_WORD", 36: "COMMA", 37: "ATTRIBUTE_KEY", 38: "COMMENT", 41: "ZERO_OR_ONE", 42: "ZERO_OR_MORE", 43: "ONE_OR_MORE", 44: "ONLY_ONE", 45: "MD_PARENT", 46: "NON_IDENTIFYING", 47: "IDENTIFYING", 48: "WORD" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 5], [9, 4], [9, 3], [9, 1], [9, 7], [9, 6], [9, 4], [9, 2], [9, 2], [9, 2], [9, 1], [11, 1], [11, 1], [16, 1], [16, 2], [29, 2], [29, 3], [29, 3], [29, 4], [30, 1], [31, 1], [32, 1], [32, 3], [35, 1], [33, 1], [12, 3], [39, 1], [39, 1], [39, 1], [39, 1], [39, 1], [40, 1], [40, 1], [14, 1], [14, 1], [14, 1]], + performAction: function(a, n, c, d, E, i, K) { + var s = i.length - 1; + switch (E) { + case 1: + break; + case 2: + this.$ = []; + break; + case 3: + i[s - 1].push(i[s]), this.$ = i[s - 1]; + break; + case 4: + case 5: + this.$ = i[s]; + break; + case 6: + case 7: + this.$ = []; + break; + case 8: + d.addEntity(i[s - 4]), d.addEntity(i[s - 2]), d.addRelationship(i[s - 4], i[s], i[s - 2], i[s - 3]); + break; + case 9: + d.addEntity(i[s - 3]), d.addAttributes(i[s - 3], i[s - 1]); + break; + case 10: + d.addEntity(i[s - 2]); + break; + case 11: + d.addEntity(i[s]); + break; + case 12: + d.addEntity(i[s - 6], i[s - 4]), d.addAttributes(i[s - 6], i[s - 1]); + break; + case 13: + d.addEntity(i[s - 5], i[s - 3]); + break; + case 14: + d.addEntity(i[s - 3], i[s - 1]); + break; + case 15: + case 16: + this.$ = i[s].trim(), d.setAccTitle(this.$); + break; + case 17: + case 18: + this.$ = i[s].trim(), d.setAccDescription(this.$); + break; + case 19: + case 43: + this.$ = i[s]; + break; + case 20: + case 41: + case 42: + this.$ = i[s].replace(/"/g, ""); + break; + case 21: + case 29: + this.$ = [i[s]]; + break; + case 22: + i[s].push(i[s - 1]), this.$ = i[s]; + break; + case 23: + this.$ = { attributeType: i[s - 1], attributeName: i[s] }; + break; + case 24: + this.$ = { attributeType: i[s - 2], attributeName: i[s - 1], attributeKeyTypeList: i[s] }; + break; + case 25: + this.$ = { attributeType: i[s - 2], attributeName: i[s - 1], attributeComment: i[s] }; + break; + case 26: + this.$ = { attributeType: i[s - 3], attributeName: i[s - 2], attributeKeyTypeList: i[s - 1], attributeComment: i[s] }; + break; + case 27: + case 28: + case 31: + this.$ = i[s]; + break; + case 30: + i[s - 2].push(i[s]), this.$ = i[s - 2]; + break; + case 32: + this.$ = i[s].replace(/"/g, ""); + break; + case 33: + this.$ = { cardA: i[s], relType: i[s - 1], cardB: i[s - 2] }; + break; + case 34: + this.$ = d.Cardinality.ZERO_OR_ONE; + break; + case 35: + this.$ = d.Cardinality.ZERO_OR_MORE; + break; + case 36: + this.$ = d.Cardinality.ONE_OR_MORE; + break; + case 37: + this.$ = d.Cardinality.ONLY_ONE; + break; + case 38: + this.$ = d.Cardinality.MD_PARENT; + break; + case 39: + this.$ = d.Identification.NON_IDENTIFYING; + break; + case 40: + this.$ = d.Identification.IDENTIFYING; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, t(e, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 9, 20: r, 22: u, 24: l, 26: p, 27: f, 28: o }, t(e, [2, 7], { 1: [2, 1] }), t(e, [2, 3]), { 9: 16, 11: 9, 20: r, 22: u, 24: l, 26: p, 27: f, 28: o }, t(e, [2, 5]), t(e, [2, 6]), t(e, [2, 11], { 12: 17, 39: 20, 15: [1, 18], 18: [1, 19], 41: h, 42: _, 43: m, 44: g, 45: x }), { 21: [1, 26] }, { 23: [1, 27] }, { 25: [1, 28] }, t(e, [2, 18]), t(y, [2, 19]), t(y, [2, 20]), t(e, [2, 4]), { 11: 29, 27: f, 28: o }, { 16: 30, 17: [1, 31], 29: 32, 30: 33, 34: N }, { 11: 35, 27: f, 28: o }, { 40: 36, 46: [1, 37], 47: [1, 38] }, t(I, [2, 34]), t(I, [2, 35]), t(I, [2, 36]), t(I, [2, 37]), t(I, [2, 38]), t(e, [2, 15]), t(e, [2, 16]), t(e, [2, 17]), { 13: [1, 39] }, { 17: [1, 40] }, t(e, [2, 10]), { 16: 41, 17: [2, 21], 29: 32, 30: 33, 34: N }, { 31: 42, 34: [1, 43] }, { 34: [2, 27] }, { 19: [1, 44] }, { 39: 45, 41: h, 42: _, 43: m, 44: g, 45: x }, t(F, [2, 39]), t(F, [2, 40]), { 14: 46, 27: [1, 49], 28: [1, 48], 48: [1, 47] }, t(e, [2, 9]), { 17: [2, 22] }, t(W, [2, 23], { 32: 50, 33: 51, 35: 52, 37: C, 38: T }), t([17, 34, 37, 38], [2, 28]), t(e, [2, 14], { 15: [1, 55] }), t([27, 28], [2, 33]), t(e, [2, 8]), t(e, [2, 41]), t(e, [2, 42]), t(e, [2, 43]), t(W, [2, 24], { 33: 56, 36: [1, 57], 38: T }), t(W, [2, 25]), t(M, [2, 29]), t(W, [2, 32]), t(M, [2, 31]), { 16: 58, 17: [1, 59], 29: 32, 30: 33, 34: N }, t(W, [2, 26]), { 35: 60, 37: C }, { 17: [1, 61] }, t(e, [2, 13]), t(M, [2, 30]), t(e, [2, 12])], + defaultActions: { 34: [2, 27], 41: [2, 22] }, + parseError: function(a, n) { + if (n.recoverable) + this.trace(a); + else { + var c = new Error(a); + throw c.hash = n, c; + } + }, + parse: function(a) { + var n = this, c = [0], d = [], E = [null], i = [], K = this.table, s = "", Q = 0, st = 0, ft = 2, ot = 1, yt = i.slice.call(arguments, 1), b = Object.create(this.lexer), G = { yy: {} }; + for (var J in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, J) && (G.yy[J] = this.yy[J]); + b.setInput(a, G.yy), G.yy.lexer = b, G.yy.parser = this, typeof b.yylloc > "u" && (b.yylloc = {}); + var $ = b.yylloc; + i.push($); + var pt = b.options && b.options.ranges; + typeof G.yy.parseError == "function" ? this.parseError = G.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function _t() { + var Y; + return Y = d.pop() || b.lex() || ot, typeof Y != "number" && (Y instanceof Array && (d = Y, Y = d.pop()), Y = n.symbols_[Y] || Y), Y; + } + for (var w, H, D, tt, z = {}, j, P, lt, q; ; ) { + if (H = c[c.length - 1], this.defaultActions[H] ? D = this.defaultActions[H] : ((w === null || typeof w > "u") && (w = _t()), D = K[H] && K[H][w]), typeof D > "u" || !D.length || !D[0]) { + var et = ""; + q = []; + for (j in K[H]) + this.terminals_[j] && j > ft && q.push("'" + this.terminals_[j] + "'"); + b.showPosition ? et = "Parse error on line " + (Q + 1) + `: +` + b.showPosition() + ` +Expecting ` + q.join(", ") + ", got '" + (this.terminals_[w] || w) + "'" : et = "Parse error on line " + (Q + 1) + ": Unexpected " + (w == ot ? "end of input" : "'" + (this.terminals_[w] || w) + "'"), this.parseError(et, { + text: b.match, + token: this.terminals_[w] || w, + line: b.yylineno, + loc: $, + expected: q + }); + } + if (D[0] instanceof Array && D.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + H + ", token: " + w); + switch (D[0]) { + case 1: + c.push(w), E.push(b.yytext), i.push(b.yylloc), c.push(D[1]), w = null, st = b.yyleng, s = b.yytext, Q = b.yylineno, $ = b.yylloc; + break; + case 2: + if (P = this.productions_[D[1]][1], z.$ = E[E.length - P], z._$ = { + first_line: i[i.length - (P || 1)].first_line, + last_line: i[i.length - 1].last_line, + first_column: i[i.length - (P || 1)].first_column, + last_column: i[i.length - 1].last_column + }, pt && (z._$.range = [ + i[i.length - (P || 1)].range[0], + i[i.length - 1].range[1] + ]), tt = this.performAction.apply(z, [ + s, + st, + Q, + G.yy, + D[1], + E, + i + ].concat(yt)), typeof tt < "u") + return tt; + P && (c = c.slice(0, -1 * P * 2), E = E.slice(0, -1 * P), i = i.slice(0, -1 * P)), c.push(this.productions_[D[1]][0]), E.push(z.$), i.push(z._$), lt = K[c[c.length - 2]][c[c.length - 1]], c.push(lt); + break; + case 3: + return !0; + } + } + return !0; + } + }, O = function() { + var S = { + EOF: 1, + parseError: function(n, c) { + if (this.yy.parser) + this.yy.parser.parseError(n, c); + else + throw new Error(n); + }, + // resets the lexer, sets new input + setInput: function(a, n) { + return this.yy = n || this.yy || {}, this._input = a, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var a = this._input[0]; + this.yytext += a, this.yyleng++, this.offset++, this.match += a, this.matched += a; + var n = a.match(/(?:\r\n?|\n).*/g); + return n ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), a; + }, + // unshifts one char (or a string) into the input + unput: function(a) { + var n = a.length, c = a.split(/(?:\r\n?|\n)/g); + this._input = a + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - n), this.offset -= n; + var d = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), c.length - 1 && (this.yylineno -= c.length - 1); + var E = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: c ? (c.length === d.length ? this.yylloc.first_column : 0) + d[d.length - c.length].length - c[0].length : this.yylloc.first_column - n + }, this.options.ranges && (this.yylloc.range = [E[0], E[0] + this.yyleng - n]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(a) { + this.unput(this.match.slice(a)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var a = this.matched.substr(0, this.matched.length - this.match.length); + return (a.length > 20 ? "..." : "") + a.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var a = this.match; + return a.length < 20 && (a += this._input.substr(0, 20 - a.length)), (a.substr(0, 20) + (a.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var a = this.pastInput(), n = new Array(a.length + 1).join("-"); + return a + this.upcomingInput() + ` +` + n + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(a, n) { + var c, d, E; + if (this.options.backtrack_lexer && (E = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (E.yylloc.range = this.yylloc.range.slice(0))), d = a[0].match(/(?:\r\n?|\n).*/g), d && (this.yylineno += d.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: d ? d[d.length - 1].length - d[d.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + a[0].length + }, this.yytext += a[0], this.match += a[0], this.matches = a, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(a[0].length), this.matched += a[0], c = this.performAction.call(this, this.yy, this, n, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), c) + return c; + if (this._backtrack) { + for (var i in E) + this[i] = E[i]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var a, n, c, d; + this._more || (this.yytext = "", this.match = ""); + for (var E = this._currentRules(), i = 0; i < E.length; i++) + if (c = this._input.match(this.rules[E[i]]), c && (!n || c[0].length > n[0].length)) { + if (n = c, d = i, this.options.backtrack_lexer) { + if (a = this.test_match(c, E[i]), a !== !1) + return a; + if (this._backtrack) { + n = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return n ? (a = this.test_match(n, E[d]), a !== !1 ? a : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var n = this.next(); + return n || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(n) { + this.conditionStack.push(n); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var n = this.conditionStack.length - 1; + return n > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(n) { + return n = this.conditionStack.length - 1 - Math.abs(n || 0), n >= 0 ? this.conditionStack[n] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(n) { + this.begin(n); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: { "case-insensitive": !0 }, + performAction: function(n, c, d, E) { + switch (d) { + case 0: + return this.begin("acc_title"), 22; + case 1: + return this.popState(), "acc_title_value"; + case 2: + return this.begin("acc_descr"), 24; + case 3: + return this.popState(), "acc_descr_value"; + case 4: + this.begin("acc_descr_multiline"); + break; + case 5: + this.popState(); + break; + case 6: + return "acc_descr_multiline_value"; + case 7: + return 10; + case 8: + break; + case 9: + return 8; + case 10: + return 28; + case 11: + return 48; + case 12: + return 4; + case 13: + return this.begin("block"), 15; + case 14: + return 36; + case 15: + break; + case 16: + return 37; + case 17: + return 34; + case 18: + return 34; + case 19: + return 38; + case 20: + break; + case 21: + return this.popState(), 17; + case 22: + return c.yytext[0]; + case 23: + return 18; + case 24: + return 19; + case 25: + return 41; + case 26: + return 43; + case 27: + return 43; + case 28: + return 43; + case 29: + return 41; + case 30: + return 41; + case 31: + return 42; + case 32: + return 42; + case 33: + return 42; + case 34: + return 42; + case 35: + return 42; + case 36: + return 43; + case 37: + return 42; + case 38: + return 43; + case 39: + return 44; + case 40: + return 44; + case 41: + return 44; + case 42: + return 44; + case 43: + return 41; + case 44: + return 42; + case 45: + return 43; + case 46: + return 45; + case 47: + return 46; + case 48: + return 47; + case 49: + return 47; + case 50: + return 46; + case 51: + return 46; + case 52: + return 46; + case 53: + return 27; + case 54: + return c.yytext[0]; + case 55: + return 6; + } + }, + rules: [/^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:[\s]+)/i, /^(?:"[^"%\r\n\v\b\\]+")/i, /^(?:"[^"]*")/i, /^(?:erDiagram\b)/i, /^(?:\{)/i, /^(?:,)/i, /^(?:\s+)/i, /^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i, /^(?:"[^"]*")/i, /^(?:[\n]+)/i, /^(?:\})/i, /^(?:.)/i, /^(?:\[)/i, /^(?:\])/i, /^(?:one or zero\b)/i, /^(?:one or more\b)/i, /^(?:one or many\b)/i, /^(?:1\+)/i, /^(?:\|o\b)/i, /^(?:zero or one\b)/i, /^(?:zero or more\b)/i, /^(?:zero or many\b)/i, /^(?:0\+)/i, /^(?:\}o\b)/i, /^(?:many\(0\))/i, /^(?:many\(1\))/i, /^(?:many\b)/i, /^(?:\}\|)/i, /^(?:one\b)/i, /^(?:only one\b)/i, /^(?:1\b)/i, /^(?:\|\|)/i, /^(?:o\|)/i, /^(?:o\{)/i, /^(?:\|\{)/i, /^(?:\s*u\b)/i, /^(?:\.\.)/i, /^(?:--)/i, /^(?:to\b)/i, /^(?:optionally to\b)/i, /^(?:\.-)/i, /^(?:-\.)/i, /^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i, /^(?:.)/i, /^(?:$)/i], + conditions: { acc_descr_multiline: { rules: [5, 6], inclusive: !1 }, acc_descr: { rules: [3], inclusive: !1 }, acc_title: { rules: [1], inclusive: !1 }, block: { rules: [14, 15, 16, 17, 18, 19, 20, 21, 22], inclusive: !1 }, INITIAL: { rules: [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], inclusive: !0 } } + }; + return S; + }(); + R.lexer = O; + function L() { + this.yy = {}; + } + return L.prototype = R, R.Parser = L, new L(); +}(); +at.parser = at; +const It = at; +let U = {}, nt = []; +const Dt = { + ZERO_OR_ONE: "ZERO_OR_ONE", + ZERO_OR_MORE: "ZERO_OR_MORE", + ONE_OR_MORE: "ONE_OR_MORE", + ONLY_ONE: "ONLY_ONE", + MD_PARENT: "MD_PARENT" +}, Lt = { + NON_IDENTIFYING: "NON_IDENTIFYING", + IDENTIFYING: "IDENTIFYING" +}, dt = function(t, e = void 0) { + return U[t] === void 0 ? (U[t] = { attributes: [], alias: e }, V.info("Added new entity :", t)) : U[t] && !U[t].alias && e && (U[t].alias = e, V.info(`Add alias '${e}' to entity '${t}'`)), U[t]; +}, vt = () => U, Bt = function(t, e) { + let r = dt(t), u; + for (u = e.length - 1; u >= 0; u--) + r.attributes.push(e[u]), V.debug("Added attribute ", e[u].attributeName); +}, Ct = function(t, e, r, u) { + let l = { + entityA: t, + roleA: e, + entityB: r, + relSpec: u + }; + nt.push(l), V.debug("Added new relationship :", l); +}, Pt = () => nt, Yt = function() { + U = {}, nt = [], Ot(); +}, Zt = { + Cardinality: Dt, + Identification: Lt, + getConfig: () => Z().er, + addEntity: dt, + addAttributes: Bt, + getEntities: vt, + addRelationship: Ct, + getRelationships: Pt, + clear: Yt, + setAccTitle: Et, + getAccTitle: mt, + setAccDescription: gt, + getAccDescription: kt, + setDiagramTitle: xt, + getDiagramTitle: Rt +}, v = { + ONLY_ONE_START: "ONLY_ONE_START", + ONLY_ONE_END: "ONLY_ONE_END", + ZERO_OR_ONE_START: "ZERO_OR_ONE_START", + ZERO_OR_ONE_END: "ZERO_OR_ONE_END", + ONE_OR_MORE_START: "ONE_OR_MORE_START", + ONE_OR_MORE_END: "ONE_OR_MORE_END", + ZERO_OR_MORE_START: "ZERO_OR_MORE_START", + ZERO_OR_MORE_END: "ZERO_OR_MORE_END", + MD_PARENT_END: "MD_PARENT_END", + MD_PARENT_START: "MD_PARENT_START" +}, Ft = function(t, e) { + let r; + t.append("defs").append("marker").attr("id", v.MD_PARENT_START).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), t.append("defs").append("marker").attr("id", v.MD_PARENT_END).attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), t.append("defs").append("marker").attr("id", v.ONLY_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", e.stroke).attr("fill", "none").attr("d", "M9,0 L9,18 M15,0 L15,18"), t.append("defs").append("marker").attr("id", v.ONLY_ONE_END).attr("refX", 18).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", e.stroke).attr("fill", "none").attr("d", "M3,0 L3,18 M9,0 L9,18"), r = t.append("defs").append("marker").attr("id", v.ZERO_OR_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto"), r.append("circle").attr("stroke", e.stroke).attr("fill", "white").attr("cx", 21).attr("cy", 9).attr("r", 6), r.append("path").attr("stroke", e.stroke).attr("fill", "none").attr("d", "M9,0 L9,18"), r = t.append("defs").append("marker").attr("id", v.ZERO_OR_ONE_END).attr("refX", 30).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto"), r.append("circle").attr("stroke", e.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 9).attr("r", 6), r.append("path").attr("stroke", e.stroke).attr("fill", "none").attr("d", "M21,0 L21,18"), t.append("defs").append("marker").attr("id", v.ONE_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", e.stroke).attr("fill", "none").attr("d", "M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"), t.append("defs").append("marker").attr("id", v.ONE_OR_MORE_END).attr("refX", 27).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", e.stroke).attr("fill", "none").attr("d", "M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"), r = t.append("defs").append("marker").attr("id", v.ZERO_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto"), r.append("circle").attr("stroke", e.stroke).attr("fill", "white").attr("cx", 48).attr("cy", 18).attr("r", 6), r.append("path").attr("stroke", e.stroke).attr("fill", "none").attr("d", "M0,18 Q18,0 36,18 Q18,36 0,18"), r = t.append("defs").append("marker").attr("id", v.ZERO_OR_MORE_END).attr("refX", 39).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto"), r.append("circle").attr("stroke", e.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 18).attr("r", 6), r.append("path").attr("stroke", e.stroke).attr("fill", "none").attr("d", "M21,18 Q39,0 57,18 Q39,36 21,18"); +}, B = { + ERMarkers: v, + insertMarkers: Ft +}, Wt = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; +function Ut(t) { + return typeof t == "string" && Wt.test(t); +} +const A = []; +for (let t = 0; t < 256; ++t) + A.push((t + 256).toString(16).slice(1)); +function Gt(t, e = 0) { + return A[t[e + 0]] + A[t[e + 1]] + A[t[e + 2]] + A[t[e + 3]] + "-" + A[t[e + 4]] + A[t[e + 5]] + "-" + A[t[e + 6]] + A[t[e + 7]] + "-" + A[t[e + 8]] + A[t[e + 9]] + "-" + A[t[e + 10]] + A[t[e + 11]] + A[t[e + 12]] + A[t[e + 13]] + A[t[e + 14]] + A[t[e + 15]]; +} +function Ht(t) { + if (!Ut(t)) + throw TypeError("Invalid UUID"); + let e; + const r = new Uint8Array(16); + return r[0] = (e = parseInt(t.slice(0, 8), 16)) >>> 24, r[1] = e >>> 16 & 255, r[2] = e >>> 8 & 255, r[3] = e & 255, r[4] = (e = parseInt(t.slice(9, 13), 16)) >>> 8, r[5] = e & 255, r[6] = (e = parseInt(t.slice(14, 18), 16)) >>> 8, r[7] = e & 255, r[8] = (e = parseInt(t.slice(19, 23), 16)) >>> 8, r[9] = e & 255, r[10] = (e = parseInt(t.slice(24, 36), 16)) / 1099511627776 & 255, r[11] = e / 4294967296 & 255, r[12] = e >>> 24 & 255, r[13] = e >>> 16 & 255, r[14] = e >>> 8 & 255, r[15] = e & 255, r; +} +function zt(t) { + t = unescape(encodeURIComponent(t)); + const e = []; + for (let r = 0; r < t.length; ++r) + e.push(t.charCodeAt(r)); + return e; +} +const Kt = "6ba7b810-9dad-11d1-80b4-00c04fd430c8", Vt = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; +function Xt(t, e, r) { + function u(l, p, f, o) { + var h; + if (typeof l == "string" && (l = zt(l)), typeof p == "string" && (p = Ht(p)), ((h = p) === null || h === void 0 ? void 0 : h.length) !== 16) + throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)"); + let _ = new Uint8Array(16 + l.length); + if (_.set(p), _.set(l, p.length), _ = r(_), _[6] = _[6] & 15 | e, _[8] = _[8] & 63 | 128, f) { + o = o || 0; + for (let m = 0; m < 16; ++m) + f[o + m] = _[m]; + return f; + } + return Gt(_); + } + try { + u.name = t; + } catch { + } + return u.DNS = Kt, u.URL = Vt, u; +} +function Qt(t, e, r, u) { + switch (t) { + case 0: + return e & r ^ ~e & u; + case 1: + return e ^ r ^ u; + case 2: + return e & r ^ e & u ^ r & u; + case 3: + return e ^ r ^ u; + } +} +function it(t, e) { + return t << e | t >>> 32 - e; +} +function jt(t) { + const e = [1518500249, 1859775393, 2400959708, 3395469782], r = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]; + if (typeof t == "string") { + const f = unescape(encodeURIComponent(t)); + t = []; + for (let o = 0; o < f.length; ++o) + t.push(f.charCodeAt(o)); + } else + Array.isArray(t) || (t = Array.prototype.slice.call(t)); + t.push(128); + const u = t.length / 4 + 2, l = Math.ceil(u / 16), p = new Array(l); + for (let f = 0; f < l; ++f) { + const o = new Uint32Array(16); + for (let h = 0; h < 16; ++h) + o[h] = t[f * 64 + h * 4] << 24 | t[f * 64 + h * 4 + 1] << 16 | t[f * 64 + h * 4 + 2] << 8 | t[f * 64 + h * 4 + 3]; + p[f] = o; + } + p[l - 1][14] = (t.length - 1) * 8 / Math.pow(2, 32), p[l - 1][14] = Math.floor(p[l - 1][14]), p[l - 1][15] = (t.length - 1) * 8 & 4294967295; + for (let f = 0; f < l; ++f) { + const o = new Uint32Array(80); + for (let y = 0; y < 16; ++y) + o[y] = p[f][y]; + for (let y = 16; y < 80; ++y) + o[y] = it(o[y - 3] ^ o[y - 8] ^ o[y - 14] ^ o[y - 16], 1); + let h = r[0], _ = r[1], m = r[2], g = r[3], x = r[4]; + for (let y = 0; y < 80; ++y) { + const N = Math.floor(y / 20), I = it(h, 5) + Qt(N, _, m, g) + x + e[N] + o[y] >>> 0; + x = g, g = m, m = it(_, 30) >>> 0, _ = h, h = I; + } + r[0] = r[0] + h >>> 0, r[1] = r[1] + _ >>> 0, r[2] = r[2] + m >>> 0, r[3] = r[3] + g >>> 0, r[4] = r[4] + x >>> 0; + } + return [r[0] >> 24 & 255, r[0] >> 16 & 255, r[0] >> 8 & 255, r[0] & 255, r[1] >> 24 & 255, r[1] >> 16 & 255, r[1] >> 8 & 255, r[1] & 255, r[2] >> 24 & 255, r[2] >> 16 & 255, r[2] >> 8 & 255, r[2] & 255, r[3] >> 24 & 255, r[3] >> 16 & 255, r[3] >> 8 & 255, r[3] & 255, r[4] >> 24 & 255, r[4] >> 16 & 255, r[4] >> 8 & 255, r[4] & 255]; +} +const qt = Xt("v5", 80, jt), Jt = qt, $t = /[^\dA-Za-z](\W)*/g; +let k = {}, X = /* @__PURE__ */ new Map(); +const te = function(t) { + const e = Object.keys(t); + for (const r of e) + k[r] = t[r]; +}, ee = (t, e, r) => { + const u = k.entityPadding / 3, l = k.entityPadding / 3, p = k.fontSize * 0.85, f = e.node().getBBox(), o = []; + let h = !1, _ = !1, m = 0, g = 0, x = 0, y = 0, N = f.height + u * 2, I = 1; + r.forEach((T) => { + T.attributeKeyTypeList !== void 0 && T.attributeKeyTypeList.length > 0 && (h = !0), T.attributeComment !== void 0 && (_ = !0); + }), r.forEach((T) => { + const M = `${e.node().id}-attr-${I}`; + let R = 0; + const O = At(T.attributeType), L = t.append("text").classed("er entityLabel", !0).attr("id", `${M}-type`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", Z().fontFamily).style("font-size", p + "px").text(O), S = t.append("text").classed("er entityLabel", !0).attr("id", `${M}-name`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", Z().fontFamily).style("font-size", p + "px").text(T.attributeName), a = {}; + a.tn = L, a.nn = S; + const n = L.node().getBBox(), c = S.node().getBBox(); + if (m = Math.max(m, n.width), g = Math.max(g, c.width), R = Math.max(n.height, c.height), h) { + const d = T.attributeKeyTypeList !== void 0 ? T.attributeKeyTypeList.join(",") : "", E = t.append("text").classed("er entityLabel", !0).attr("id", `${M}-key`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", Z().fontFamily).style("font-size", p + "px").text(d); + a.kn = E; + const i = E.node().getBBox(); + x = Math.max(x, i.width), R = Math.max(R, i.height); + } + if (_) { + const d = t.append("text").classed("er entityLabel", !0).attr("id", `${M}-comment`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", Z().fontFamily).style("font-size", p + "px").text(T.attributeComment || ""); + a.cn = d; + const E = d.node().getBBox(); + y = Math.max(y, E.width), R = Math.max(R, E.height); + } + a.height = R, o.push(a), N += R + u * 2, I += 1; + }); + let F = 4; + h && (F += 2), _ && (F += 2); + const W = m + g + x + y, C = { + width: Math.max( + k.minEntityWidth, + Math.max( + f.width + k.entityPadding * 2, + W + l * F + ) + ), + height: r.length > 0 ? N : Math.max(k.minEntityHeight, f.height + k.entityPadding * 2) + }; + if (r.length > 0) { + const T = Math.max( + 0, + (C.width - W - l * F) / (F / 2) + ); + e.attr( + "transform", + "translate(" + C.width / 2 + "," + (u + f.height / 2) + ")" + ); + let M = f.height + u * 2, R = "attributeBoxOdd"; + o.forEach((O) => { + const L = M + u + O.height / 2; + O.tn.attr("transform", "translate(" + l + "," + L + ")"); + const S = t.insert("rect", "#" + O.tn.node().id).classed(`er ${R}`, !0).attr("x", 0).attr("y", M).attr("width", m + l * 2 + T).attr("height", O.height + u * 2), a = parseFloat(S.attr("x")) + parseFloat(S.attr("width")); + O.nn.attr( + "transform", + "translate(" + (a + l) + "," + L + ")" + ); + const n = t.insert("rect", "#" + O.nn.node().id).classed(`er ${R}`, !0).attr("x", a).attr("y", M).attr("width", g + l * 2 + T).attr("height", O.height + u * 2); + let c = parseFloat(n.attr("x")) + parseFloat(n.attr("width")); + if (h) { + O.kn.attr( + "transform", + "translate(" + (c + l) + "," + L + ")" + ); + const d = t.insert("rect", "#" + O.kn.node().id).classed(`er ${R}`, !0).attr("x", c).attr("y", M).attr("width", x + l * 2 + T).attr("height", O.height + u * 2); + c = parseFloat(d.attr("x")) + parseFloat(d.attr("width")); + } + _ && (O.cn.attr( + "transform", + "translate(" + (c + l) + "," + L + ")" + ), t.insert("rect", "#" + O.cn.node().id).classed(`er ${R}`, "true").attr("x", c).attr("y", M).attr("width", y + l * 2 + T).attr("height", O.height + u * 2)), M += O.height + u * 2, R = R === "attributeBoxOdd" ? "attributeBoxEven" : "attributeBoxOdd"; + }); + } else + C.height = Math.max(k.minEntityHeight, N), e.attr("transform", "translate(" + C.width / 2 + "," + C.height / 2 + ")"); + return C; +}, re = function(t, e, r) { + const u = Object.keys(e); + let l; + return u.forEach(function(p) { + const f = le(p, "entity"); + X.set(p, f); + const o = t.append("g").attr("id", f); + l = l === void 0 ? f : l; + const h = "text-" + f, _ = o.append("text").classed("er entityLabel", !0).attr("id", h).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "middle").style("font-family", Z().fontFamily).style("font-size", k.fontSize + "px").text(e[p].alias ?? p), { width: m, height: g } = ee( + o, + _, + e[p].attributes + ), y = o.insert("rect", "#" + h).classed("er entityBox", !0).attr("x", 0).attr("y", 0).attr("width", m).attr("height", g).node().getBBox(); + r.setNode(f, { + width: y.width, + height: y.height, + shape: "rect", + id: f + }); + }), l; +}, ie = function(t, e) { + e.nodes().forEach(function(r) { + r !== void 0 && e.node(r) !== void 0 && t.select("#" + r).attr( + "transform", + "translate(" + (e.node(r).x - e.node(r).width / 2) + "," + (e.node(r).y - e.node(r).height / 2) + " )" + ); + }); +}, ut = function(t) { + return (t.entityA + t.roleA + t.entityB).replace(/\s/g, ""); +}, ae = function(t, e) { + return t.forEach(function(r) { + e.setEdge( + X.get(r.entityA), + X.get(r.entityB), + { relationship: r }, + ut(r) + ); + }), t; +}; +let ct = 0; +const ne = function(t, e, r, u, l) { + ct++; + const p = r.edge( + X.get(e.entityA), + X.get(e.entityB), + ut(e) + ), f = wt().x(function(N) { + return N.x; + }).y(function(N) { + return N.y; + }).curve(Tt), o = t.insert("path", "#" + u).classed("er relationshipLine", !0).attr("d", f(p.points)).style("stroke", k.stroke).style("fill", "none"); + e.relSpec.relType === l.db.Identification.NON_IDENTIFYING && o.attr("stroke-dasharray", "8,8"); + let h = ""; + switch (k.arrowMarkerAbsolute && (h = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, h = h.replace(/\(/g, "\\("), h = h.replace(/\)/g, "\\)")), e.relSpec.cardA) { + case l.db.Cardinality.ZERO_OR_ONE: + o.attr("marker-end", "url(" + h + "#" + B.ERMarkers.ZERO_OR_ONE_END + ")"); + break; + case l.db.Cardinality.ZERO_OR_MORE: + o.attr("marker-end", "url(" + h + "#" + B.ERMarkers.ZERO_OR_MORE_END + ")"); + break; + case l.db.Cardinality.ONE_OR_MORE: + o.attr("marker-end", "url(" + h + "#" + B.ERMarkers.ONE_OR_MORE_END + ")"); + break; + case l.db.Cardinality.ONLY_ONE: + o.attr("marker-end", "url(" + h + "#" + B.ERMarkers.ONLY_ONE_END + ")"); + break; + case l.db.Cardinality.MD_PARENT: + o.attr("marker-end", "url(" + h + "#" + B.ERMarkers.MD_PARENT_END + ")"); + break; + } + switch (e.relSpec.cardB) { + case l.db.Cardinality.ZERO_OR_ONE: + o.attr( + "marker-start", + "url(" + h + "#" + B.ERMarkers.ZERO_OR_ONE_START + ")" + ); + break; + case l.db.Cardinality.ZERO_OR_MORE: + o.attr( + "marker-start", + "url(" + h + "#" + B.ERMarkers.ZERO_OR_MORE_START + ")" + ); + break; + case l.db.Cardinality.ONE_OR_MORE: + o.attr( + "marker-start", + "url(" + h + "#" + B.ERMarkers.ONE_OR_MORE_START + ")" + ); + break; + case l.db.Cardinality.ONLY_ONE: + o.attr("marker-start", "url(" + h + "#" + B.ERMarkers.ONLY_ONE_START + ")"); + break; + case l.db.Cardinality.MD_PARENT: + o.attr("marker-start", "url(" + h + "#" + B.ERMarkers.MD_PARENT_START + ")"); + break; + } + const _ = o.node().getTotalLength(), m = o.node().getPointAtLength(_ * 0.5), g = "rel" + ct, y = t.append("text").classed("er relationshipLabel", !0).attr("id", g).attr("x", m.x).attr("y", m.y).style("text-anchor", "middle").style("dominant-baseline", "middle").style("font-family", Z().fontFamily).style("font-size", k.fontSize + "px").text(e.roleA).node().getBBox(); + t.insert("rect", "#" + g).classed("er relationshipLabelBox", !0).attr("x", m.x - y.width / 2).attr("y", m.y - y.height / 2).attr("width", y.width).attr("height", y.height); +}, se = function(t, e, r, u) { + k = Z().er, V.info("Drawing ER diagram"); + const l = Z().securityLevel; + let p; + l === "sandbox" && (p = rt("#i" + e)); + const o = (l === "sandbox" ? rt(p.nodes()[0].contentDocument.body) : rt("body")).select(`[id='${e}']`); + B.insertMarkers(o, k); + let h; + h = new Mt({ + multigraph: !0, + directed: !0, + compound: !1 + }).setGraph({ + rankdir: k.layoutDirection, + marginx: 20, + marginy: 20, + nodesep: 100, + edgesep: 100, + ranksep: 100 + }).setDefaultEdgeLabel(function() { + return {}; + }); + const _ = re(o, u.db.getEntities(), h), m = ae(u.db.getRelationships(), h); + St(h), ie(o, h), m.forEach(function(I) { + ne(o, I, h, _, u); + }); + const g = k.diagramPadding; + bt.insertTitle(o, "entityTitleText", k.titleTopMargin, u.db.getDiagramTitle()); + const x = o.node().getBBox(), y = x.width + g * 2, N = x.height + g * 2; + Nt(o, N, y, k.useMaxWidth), o.attr("viewBox", `${x.x - g} ${x.y - g} ${y} ${N}`); +}, oe = "28e9f9db-3c8d-5aa5-9faf-44286ae5937c"; +function le(t = "", e = "") { + const r = t.replace($t, ""); + return `${ht(e)}${ht(r)}${Jt( + t, + oe + )}`; +} +function ht(t = "") { + return t.length > 0 ? `${t}-` : ""; +} +const ce = { + setConf: te, + draw: se +}, he = (t) => ` + .entityBox { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxOdd { + fill: ${t.attributeBackgroundColorOdd}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxEven { + fill: ${t.attributeBackgroundColorEven}; + stroke: ${t.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${t.tertiaryColor}; + opacity: 0.7; + background-color: ${t.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .relationshipLine { + stroke: ${t.lineColor}; + } + + .entityTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + #MD_PARENT_START { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + #MD_PARENT_END { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + +`, de = he, me = { + parser: It, + db: Zt, + renderer: ce, + styles: de +}; +export { + me as diagram +}; diff --git a/assets/lib/mermaid/flowDb-9a89ea33.js b/assets/lib/mermaid/flowDb-9a89ea33.js new file mode 100644 index 000000000..df34add39 --- /dev/null +++ b/assets/lib/mermaid/flowDb-9a89ea33.js @@ -0,0 +1,1126 @@ +import { ar as me, s as ye, g as Ve, a as Le, b as ve, C as Ie, D as Re, c as et, l as J1, A as At, E as Ne, f as we, j as w1 } from "./mermaid-9f2aa176.js"; +var dt = function() { + var e = function(f1, a, l, f) { + for (l = l || {}, f = f1.length; f--; l[f1[f]] = a) + ; + return l; + }, u = [1, 4], n = [1, 3], r = [1, 5], c = [1, 8, 9, 10, 11, 27, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], o = [2, 2], h = [1, 13], U = [1, 14], F = [1, 15], w = [1, 16], X = [1, 23], l1 = [1, 25], d1 = [1, 26], p1 = [1, 27], S = [1, 49], k = [1, 48], o1 = [1, 29], U1 = [1, 30], G1 = [1, 31], M1 = [1, 32], K1 = [1, 33], x = [1, 44], B = [1, 46], m = [1, 42], y = [1, 47], V = [1, 43], L = [1, 50], v = [1, 45], I = [1, 51], R = [1, 52], Y1 = [1, 34], j1 = [1, 35], z1 = [1, 36], X1 = [1, 37], I1 = [1, 57], b = [1, 8, 9, 10, 11, 27, 32, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], q = [1, 61], Q = [1, 60], Z = [1, 62], H1 = [8, 9, 11, 73, 75], k1 = [1, 88], b1 = [1, 93], g1 = [1, 92], D1 = [1, 89], F1 = [1, 85], T1 = [1, 91], C1 = [1, 87], S1 = [1, 94], _1 = [1, 90], x1 = [1, 95], B1 = [1, 86], W1 = [8, 9, 10, 11, 73, 75], N = [8, 9, 10, 11, 44, 73, 75], M = [8, 9, 10, 11, 29, 42, 44, 46, 48, 50, 52, 54, 56, 58, 61, 63, 65, 66, 68, 73, 75, 86, 99, 102, 103, 106, 108, 111, 112, 113], Et = [8, 9, 11, 42, 58, 73, 75, 86, 99, 102, 103, 106, 108, 111, 112, 113], R1 = [42, 58, 86, 99, 102, 103, 106, 108, 111, 112, 113], kt = [1, 121], bt = [1, 120], gt = [1, 128], Dt = [1, 142], Ft = [1, 143], Tt = [1, 144], Ct = [1, 145], St = [1, 130], _t = [1, 132], xt = [1, 136], Bt = [1, 137], mt = [1, 138], yt = [1, 139], Vt = [1, 140], Lt = [1, 141], vt = [1, 146], It = [1, 147], Rt = [1, 126], Nt = [1, 127], wt = [1, 134], Ot = [1, 129], Pt = [1, 133], Ut = [1, 131], rt = [8, 9, 10, 11, 27, 32, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], Gt = [1, 149], T = [8, 9, 11], K = [8, 9, 10, 11, 14, 42, 58, 86, 102, 103, 106, 108, 111, 112, 113], d = [1, 169], O = [1, 165], P = [1, 166], p = [1, 170], A = [1, 167], E = [1, 168], m1 = [75, 113, 116], g = [8, 9, 10, 11, 12, 14, 27, 29, 32, 42, 58, 73, 81, 82, 83, 84, 85, 86, 87, 102, 106, 108, 111, 112, 113], Mt = [10, 103], h1 = [31, 47, 49, 51, 53, 55, 60, 62, 64, 65, 67, 69, 113, 114, 115], J = [1, 235], $ = [1, 233], t1 = [1, 237], e1 = [1, 231], s1 = [1, 232], u1 = [1, 234], n1 = [1, 236], i1 = [1, 238], y1 = [1, 255], Kt = [8, 9, 11, 103], W = [8, 9, 10, 11, 58, 81, 102, 103, 106, 107, 108, 109], at = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, graphConfig: 4, document: 5, line: 6, statement: 7, SEMI: 8, NEWLINE: 9, SPACE: 10, EOF: 11, GRAPH: 12, NODIR: 13, DIR: 14, FirstStmtSeparator: 15, ending: 16, endToken: 17, spaceList: 18, spaceListNewline: 19, vertexStatement: 20, separator: 21, styleStatement: 22, linkStyleStatement: 23, classDefStatement: 24, classStatement: 25, clickStatement: 26, subgraph: 27, textNoTags: 28, SQS: 29, text: 30, SQE: 31, end: 32, direction: 33, acc_title: 34, acc_title_value: 35, acc_descr: 36, acc_descr_value: 37, acc_descr_multiline_value: 38, link: 39, node: 40, styledVertex: 41, AMP: 42, vertex: 43, STYLE_SEPARATOR: 44, idString: 45, DOUBLECIRCLESTART: 46, DOUBLECIRCLEEND: 47, PS: 48, PE: 49, "(-": 50, "-)": 51, STADIUMSTART: 52, STADIUMEND: 53, SUBROUTINESTART: 54, SUBROUTINEEND: 55, VERTEX_WITH_PROPS_START: 56, "NODE_STRING[field]": 57, COLON: 58, "NODE_STRING[value]": 59, PIPE: 60, CYLINDERSTART: 61, CYLINDEREND: 62, DIAMOND_START: 63, DIAMOND_STOP: 64, TAGEND: 65, TRAPSTART: 66, TRAPEND: 67, INVTRAPSTART: 68, INVTRAPEND: 69, linkStatement: 70, arrowText: 71, TESTSTR: 72, START_LINK: 73, edgeText: 74, LINK: 75, edgeTextToken: 76, STR: 77, MD_STR: 78, textToken: 79, keywords: 80, STYLE: 81, LINKSTYLE: 82, CLASSDEF: 83, CLASS: 84, CLICK: 85, DOWN: 86, UP: 87, textNoTagsToken: 88, stylesOpt: 89, "idString[vertex]": 90, "idString[class]": 91, CALLBACKNAME: 92, CALLBACKARGS: 93, HREF: 94, LINK_TARGET: 95, "STR[link]": 96, "STR[tooltip]": 97, alphaNum: 98, DEFAULT: 99, numList: 100, INTERPOLATE: 101, NUM: 102, COMMA: 103, style: 104, styleComponent: 105, NODE_STRING: 106, UNIT: 107, BRKT: 108, PCT: 109, idStringToken: 110, MINUS: 111, MULT: 112, UNICODE_TEXT: 113, TEXT: 114, TAGSTART: 115, EDGE_TEXT: 116, alphaNumToken: 117, direction_tb: 118, direction_bt: 119, direction_rl: 120, direction_lr: 121, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 8: "SEMI", 9: "NEWLINE", 10: "SPACE", 11: "EOF", 12: "GRAPH", 13: "NODIR", 14: "DIR", 27: "subgraph", 29: "SQS", 31: "SQE", 32: "end", 34: "acc_title", 35: "acc_title_value", 36: "acc_descr", 37: "acc_descr_value", 38: "acc_descr_multiline_value", 42: "AMP", 44: "STYLE_SEPARATOR", 46: "DOUBLECIRCLESTART", 47: "DOUBLECIRCLEEND", 48: "PS", 49: "PE", 50: "(-", 51: "-)", 52: "STADIUMSTART", 53: "STADIUMEND", 54: "SUBROUTINESTART", 55: "SUBROUTINEEND", 56: "VERTEX_WITH_PROPS_START", 57: "NODE_STRING[field]", 58: "COLON", 59: "NODE_STRING[value]", 60: "PIPE", 61: "CYLINDERSTART", 62: "CYLINDEREND", 63: "DIAMOND_START", 64: "DIAMOND_STOP", 65: "TAGEND", 66: "TRAPSTART", 67: "TRAPEND", 68: "INVTRAPSTART", 69: "INVTRAPEND", 72: "TESTSTR", 73: "START_LINK", 75: "LINK", 77: "STR", 78: "MD_STR", 81: "STYLE", 82: "LINKSTYLE", 83: "CLASSDEF", 84: "CLASS", 85: "CLICK", 86: "DOWN", 87: "UP", 90: "idString[vertex]", 91: "idString[class]", 92: "CALLBACKNAME", 93: "CALLBACKARGS", 94: "HREF", 95: "LINK_TARGET", 96: "STR[link]", 97: "STR[tooltip]", 99: "DEFAULT", 101: "INTERPOLATE", 102: "NUM", 103: "COMMA", 106: "NODE_STRING", 107: "UNIT", 108: "BRKT", 109: "PCT", 111: "MINUS", 112: "MULT", 113: "UNICODE_TEXT", 114: "TEXT", 115: "TAGSTART", 116: "EDGE_TEXT", 118: "direction_tb", 119: "direction_bt", 120: "direction_rl", 121: "direction_lr" }, + productions_: [0, [3, 2], [5, 0], [5, 2], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [4, 2], [4, 2], [4, 2], [4, 3], [16, 2], [16, 1], [17, 1], [17, 1], [17, 1], [15, 1], [15, 1], [15, 2], [19, 2], [19, 2], [19, 1], [19, 1], [18, 2], [18, 1], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 9], [7, 6], [7, 4], [7, 1], [7, 2], [7, 2], [7, 1], [21, 1], [21, 1], [21, 1], [20, 3], [20, 4], [20, 2], [20, 1], [40, 1], [40, 5], [41, 1], [41, 3], [43, 4], [43, 4], [43, 6], [43, 4], [43, 4], [43, 4], [43, 8], [43, 4], [43, 4], [43, 4], [43, 6], [43, 4], [43, 4], [43, 4], [43, 4], [43, 4], [43, 1], [39, 2], [39, 3], [39, 3], [39, 1], [39, 3], [74, 1], [74, 2], [74, 1], [74, 1], [70, 1], [71, 3], [30, 1], [30, 2], [30, 1], [30, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [28, 1], [28, 2], [28, 1], [28, 1], [24, 5], [25, 5], [26, 2], [26, 4], [26, 3], [26, 5], [26, 3], [26, 5], [26, 5], [26, 7], [26, 2], [26, 4], [26, 2], [26, 4], [26, 4], [26, 6], [22, 5], [23, 5], [23, 5], [23, 9], [23, 9], [23, 7], [23, 7], [100, 1], [100, 3], [89, 1], [89, 3], [104, 1], [104, 2], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [79, 1], [79, 1], [79, 1], [79, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [76, 1], [76, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [45, 1], [45, 2], [98, 1], [98, 2], [33, 1], [33, 1], [33, 1], [33, 1]], + performAction: function(a, l, f, i, C, t, N1) { + var s = t.length - 1; + switch (C) { + case 2: + this.$ = []; + break; + case 3: + (!Array.isArray(t[s]) || t[s].length > 0) && t[s - 1].push(t[s]), this.$ = t[s - 1]; + break; + case 4: + case 176: + this.$ = t[s]; + break; + case 11: + i.setDirection("TB"), this.$ = "TB"; + break; + case 12: + i.setDirection(t[s - 1]), this.$ = t[s - 1]; + break; + case 27: + this.$ = t[s - 1].nodes; + break; + case 28: + case 29: + case 30: + case 31: + case 32: + this.$ = []; + break; + case 33: + this.$ = i.addSubGraph(t[s - 6], t[s - 1], t[s - 4]); + break; + case 34: + this.$ = i.addSubGraph(t[s - 3], t[s - 1], t[s - 3]); + break; + case 35: + this.$ = i.addSubGraph(void 0, t[s - 1], void 0); + break; + case 37: + this.$ = t[s].trim(), i.setAccTitle(this.$); + break; + case 38: + case 39: + this.$ = t[s].trim(), i.setAccDescription(this.$); + break; + case 43: + i.addLink(t[s - 2].stmt, t[s], t[s - 1]), this.$ = { stmt: t[s], nodes: t[s].concat(t[s - 2].nodes) }; + break; + case 44: + i.addLink(t[s - 3].stmt, t[s - 1], t[s - 2]), this.$ = { stmt: t[s - 1], nodes: t[s - 1].concat(t[s - 3].nodes) }; + break; + case 45: + this.$ = { stmt: t[s - 1], nodes: t[s - 1] }; + break; + case 46: + this.$ = { stmt: t[s], nodes: t[s] }; + break; + case 47: + this.$ = [t[s]]; + break; + case 48: + this.$ = t[s - 4].concat(t[s]); + break; + case 49: + this.$ = t[s]; + break; + case 50: + this.$ = t[s - 2], i.setClass(t[s - 2], t[s]); + break; + case 51: + this.$ = t[s - 3], i.addVertex(t[s - 3], t[s - 1], "square"); + break; + case 52: + this.$ = t[s - 3], i.addVertex(t[s - 3], t[s - 1], "doublecircle"); + break; + case 53: + this.$ = t[s - 5], i.addVertex(t[s - 5], t[s - 2], "circle"); + break; + case 54: + this.$ = t[s - 3], i.addVertex(t[s - 3], t[s - 1], "ellipse"); + break; + case 55: + this.$ = t[s - 3], i.addVertex(t[s - 3], t[s - 1], "stadium"); + break; + case 56: + this.$ = t[s - 3], i.addVertex(t[s - 3], t[s - 1], "subroutine"); + break; + case 57: + this.$ = t[s - 7], i.addVertex(t[s - 7], t[s - 1], "rect", void 0, void 0, void 0, Object.fromEntries([[t[s - 5], t[s - 3]]])); + break; + case 58: + this.$ = t[s - 3], i.addVertex(t[s - 3], t[s - 1], "cylinder"); + break; + case 59: + this.$ = t[s - 3], i.addVertex(t[s - 3], t[s - 1], "round"); + break; + case 60: + this.$ = t[s - 3], i.addVertex(t[s - 3], t[s - 1], "diamond"); + break; + case 61: + this.$ = t[s - 5], i.addVertex(t[s - 5], t[s - 2], "hexagon"); + break; + case 62: + this.$ = t[s - 3], i.addVertex(t[s - 3], t[s - 1], "odd"); + break; + case 63: + this.$ = t[s - 3], i.addVertex(t[s - 3], t[s - 1], "trapezoid"); + break; + case 64: + this.$ = t[s - 3], i.addVertex(t[s - 3], t[s - 1], "inv_trapezoid"); + break; + case 65: + this.$ = t[s - 3], i.addVertex(t[s - 3], t[s - 1], "lean_right"); + break; + case 66: + this.$ = t[s - 3], i.addVertex(t[s - 3], t[s - 1], "lean_left"); + break; + case 67: + this.$ = t[s], i.addVertex(t[s]); + break; + case 68: + t[s - 1].text = t[s], this.$ = t[s - 1]; + break; + case 69: + case 70: + t[s - 2].text = t[s - 1], this.$ = t[s - 2]; + break; + case 71: + this.$ = t[s]; + break; + case 72: + var Y = i.destructLink(t[s], t[s - 2]); + this.$ = { type: Y.type, stroke: Y.stroke, length: Y.length, text: t[s - 1] }; + break; + case 73: + this.$ = { text: t[s], type: "text" }; + break; + case 74: + this.$ = { text: t[s - 1].text + "" + t[s], type: t[s - 1].type }; + break; + case 75: + this.$ = { text: t[s], type: "string" }; + break; + case 76: + this.$ = { text: t[s], type: "markdown" }; + break; + case 77: + var Y = i.destructLink(t[s]); + this.$ = { type: Y.type, stroke: Y.stroke, length: Y.length }; + break; + case 78: + this.$ = t[s - 1]; + break; + case 79: + this.$ = { text: t[s], type: "text" }; + break; + case 80: + this.$ = { text: t[s - 1].text + "" + t[s], type: t[s - 1].type }; + break; + case 81: + this.$ = { text: t[s], type: "string" }; + break; + case 82: + case 97: + this.$ = { text: t[s], type: "markdown" }; + break; + case 94: + this.$ = { text: t[s], type: "text" }; + break; + case 95: + this.$ = { text: t[s - 1].text + "" + t[s], type: t[s - 1].type }; + break; + case 96: + this.$ = { text: t[s], type: "text" }; + break; + case 98: + this.$ = t[s - 4], i.addClass(t[s - 2], t[s]); + break; + case 99: + this.$ = t[s - 4], i.setClass(t[s - 2], t[s]); + break; + case 100: + case 108: + this.$ = t[s - 1], i.setClickEvent(t[s - 1], t[s]); + break; + case 101: + case 109: + this.$ = t[s - 3], i.setClickEvent(t[s - 3], t[s - 2]), i.setTooltip(t[s - 3], t[s]); + break; + case 102: + this.$ = t[s - 2], i.setClickEvent(t[s - 2], t[s - 1], t[s]); + break; + case 103: + this.$ = t[s - 4], i.setClickEvent(t[s - 4], t[s - 3], t[s - 2]), i.setTooltip(t[s - 4], t[s]); + break; + case 104: + this.$ = t[s - 2], i.setLink(t[s - 2], t[s]); + break; + case 105: + this.$ = t[s - 4], i.setLink(t[s - 4], t[s - 2]), i.setTooltip(t[s - 4], t[s]); + break; + case 106: + this.$ = t[s - 4], i.setLink(t[s - 4], t[s - 2], t[s]); + break; + case 107: + this.$ = t[s - 6], i.setLink(t[s - 6], t[s - 4], t[s]), i.setTooltip(t[s - 6], t[s - 2]); + break; + case 110: + this.$ = t[s - 1], i.setLink(t[s - 1], t[s]); + break; + case 111: + this.$ = t[s - 3], i.setLink(t[s - 3], t[s - 2]), i.setTooltip(t[s - 3], t[s]); + break; + case 112: + this.$ = t[s - 3], i.setLink(t[s - 3], t[s - 2], t[s]); + break; + case 113: + this.$ = t[s - 5], i.setLink(t[s - 5], t[s - 4], t[s]), i.setTooltip(t[s - 5], t[s - 2]); + break; + case 114: + this.$ = t[s - 4], i.addVertex(t[s - 2], void 0, void 0, t[s]); + break; + case 115: + this.$ = t[s - 4], i.updateLink([t[s - 2]], t[s]); + break; + case 116: + this.$ = t[s - 4], i.updateLink(t[s - 2], t[s]); + break; + case 117: + this.$ = t[s - 8], i.updateLinkInterpolate([t[s - 6]], t[s - 2]), i.updateLink([t[s - 6]], t[s]); + break; + case 118: + this.$ = t[s - 8], i.updateLinkInterpolate(t[s - 6], t[s - 2]), i.updateLink(t[s - 6], t[s]); + break; + case 119: + this.$ = t[s - 6], i.updateLinkInterpolate([t[s - 4]], t[s]); + break; + case 120: + this.$ = t[s - 6], i.updateLinkInterpolate(t[s - 4], t[s]); + break; + case 121: + case 123: + this.$ = [t[s]]; + break; + case 122: + case 124: + t[s - 2].push(t[s]), this.$ = t[s - 2]; + break; + case 126: + this.$ = t[s - 1] + t[s]; + break; + case 174: + this.$ = t[s]; + break; + case 175: + this.$ = t[s - 1] + "" + t[s]; + break; + case 177: + this.$ = t[s - 1] + "" + t[s]; + break; + case 178: + this.$ = { stmt: "dir", value: "TB" }; + break; + case 179: + this.$ = { stmt: "dir", value: "BT" }; + break; + case 180: + this.$ = { stmt: "dir", value: "RL" }; + break; + case 181: + this.$ = { stmt: "dir", value: "LR" }; + break; + } + }, + table: [{ 3: 1, 4: 2, 9: u, 10: n, 12: r }, { 1: [3] }, e(c, o, { 5: 6 }), { 4: 7, 9: u, 10: n, 12: r }, { 4: 8, 9: u, 10: n, 12: r }, { 13: [1, 9], 14: [1, 10] }, { 1: [2, 1], 6: 11, 7: 12, 8: h, 9: U, 10: F, 11: w, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: X, 33: 24, 34: l1, 36: d1, 38: p1, 40: 28, 41: 38, 42: S, 43: 39, 45: 40, 58: k, 81: o1, 82: U1, 83: G1, 84: M1, 85: K1, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 110: 41, 111: v, 112: I, 113: R, 118: Y1, 119: j1, 120: z1, 121: X1 }, e(c, [2, 9]), e(c, [2, 10]), e(c, [2, 11]), { 8: [1, 54], 9: [1, 55], 10: I1, 15: 53, 18: 56 }, e(b, [2, 3]), e(b, [2, 4]), e(b, [2, 5]), e(b, [2, 6]), e(b, [2, 7]), e(b, [2, 8]), { 8: q, 9: Q, 11: Z, 21: 58, 39: 59, 70: 63, 73: [1, 64], 75: [1, 65] }, { 8: q, 9: Q, 11: Z, 21: 66 }, { 8: q, 9: Q, 11: Z, 21: 67 }, { 8: q, 9: Q, 11: Z, 21: 68 }, { 8: q, 9: Q, 11: Z, 21: 69 }, { 8: q, 9: Q, 11: Z, 21: 70 }, { 8: q, 9: Q, 10: [1, 71], 11: Z, 21: 72 }, e(b, [2, 36]), { 35: [1, 73] }, { 37: [1, 74] }, e(b, [2, 39]), e(H1, [2, 46], { 18: 75, 10: I1 }), { 10: [1, 76] }, { 10: [1, 77] }, { 10: [1, 78] }, { 10: [1, 79] }, { 14: k1, 42: b1, 58: g1, 77: [1, 83], 86: D1, 92: [1, 80], 94: [1, 81], 98: 82, 102: F1, 103: T1, 106: C1, 108: S1, 111: _1, 112: x1, 113: B1, 117: 84 }, e(b, [2, 178]), e(b, [2, 179]), e(b, [2, 180]), e(b, [2, 181]), e(W1, [2, 47]), e(W1, [2, 49], { 44: [1, 96] }), e(N, [2, 67], { 110: 109, 29: [1, 97], 42: S, 46: [1, 98], 48: [1, 99], 50: [1, 100], 52: [1, 101], 54: [1, 102], 56: [1, 103], 58: k, 61: [1, 104], 63: [1, 105], 65: [1, 106], 66: [1, 107], 68: [1, 108], 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 111: v, 112: I, 113: R }), e(M, [2, 174]), e(M, [2, 135]), e(M, [2, 136]), e(M, [2, 137]), e(M, [2, 138]), e(M, [2, 139]), e(M, [2, 140]), e(M, [2, 141]), e(M, [2, 142]), e(M, [2, 143]), e(M, [2, 144]), e(M, [2, 145]), e(c, [2, 12]), e(c, [2, 18]), e(c, [2, 19]), { 9: [1, 110] }, e(Et, [2, 26], { 18: 111, 10: I1 }), e(b, [2, 27]), { 40: 112, 41: 38, 42: S, 43: 39, 45: 40, 58: k, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 110: 41, 111: v, 112: I, 113: R }, e(b, [2, 40]), e(b, [2, 41]), e(b, [2, 42]), e(R1, [2, 71], { 71: 113, 60: [1, 115], 72: [1, 114] }), { 74: 116, 76: 117, 77: [1, 118], 78: [1, 119], 113: kt, 116: bt }, e([42, 58, 60, 72, 86, 99, 102, 103, 106, 108, 111, 112, 113], [2, 77]), e(b, [2, 28]), e(b, [2, 29]), e(b, [2, 30]), e(b, [2, 31]), e(b, [2, 32]), { 10: gt, 12: Dt, 14: Ft, 27: Tt, 28: 122, 32: Ct, 42: St, 58: _t, 73: xt, 77: [1, 124], 78: [1, 125], 80: 135, 81: Bt, 82: mt, 83: yt, 84: Vt, 85: Lt, 86: vt, 87: It, 88: 123, 102: Rt, 106: Nt, 108: wt, 111: Ot, 112: Pt, 113: Ut }, e(rt, o, { 5: 148 }), e(b, [2, 37]), e(b, [2, 38]), e(H1, [2, 45], { 42: Gt }), { 42: S, 45: 150, 58: k, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 110: 41, 111: v, 112: I, 113: R }, { 99: [1, 151], 100: 152, 102: [1, 153] }, { 42: S, 45: 154, 58: k, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 110: 41, 111: v, 112: I, 113: R }, { 42: S, 45: 155, 58: k, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 110: 41, 111: v, 112: I, 113: R }, e(T, [2, 100], { 10: [1, 156], 93: [1, 157] }), { 77: [1, 158] }, e(T, [2, 108], { 117: 160, 10: [1, 159], 14: k1, 42: b1, 58: g1, 86: D1, 102: F1, 103: T1, 106: C1, 108: S1, 111: _1, 112: x1, 113: B1 }), e(T, [2, 110], { 10: [1, 161] }), e(K, [2, 176]), e(K, [2, 163]), e(K, [2, 164]), e(K, [2, 165]), e(K, [2, 166]), e(K, [2, 167]), e(K, [2, 168]), e(K, [2, 169]), e(K, [2, 170]), e(K, [2, 171]), e(K, [2, 172]), e(K, [2, 173]), { 42: S, 45: 162, 58: k, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 110: 41, 111: v, 112: I, 113: R }, { 30: 163, 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, { 30: 171, 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, { 30: 173, 48: [1, 172], 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, { 30: 174, 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, { 30: 175, 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, { 30: 176, 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, { 106: [1, 177] }, { 30: 178, 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, { 30: 179, 63: [1, 180], 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, { 30: 181, 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, { 30: 182, 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, { 30: 183, 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, e(M, [2, 175]), e(c, [2, 20]), e(Et, [2, 25]), e(H1, [2, 43], { 18: 184, 10: I1 }), e(R1, [2, 68], { 10: [1, 185] }), { 10: [1, 186] }, { 30: 187, 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, { 75: [1, 188], 76: 189, 113: kt, 116: bt }, e(m1, [2, 73]), e(m1, [2, 75]), e(m1, [2, 76]), e(m1, [2, 161]), e(m1, [2, 162]), { 8: q, 9: Q, 10: gt, 11: Z, 12: Dt, 14: Ft, 21: 191, 27: Tt, 29: [1, 190], 32: Ct, 42: St, 58: _t, 73: xt, 80: 135, 81: Bt, 82: mt, 83: yt, 84: Vt, 85: Lt, 86: vt, 87: It, 88: 192, 102: Rt, 106: Nt, 108: wt, 111: Ot, 112: Pt, 113: Ut }, e(g, [2, 94]), e(g, [2, 96]), e(g, [2, 97]), e(g, [2, 150]), e(g, [2, 151]), e(g, [2, 152]), e(g, [2, 153]), e(g, [2, 154]), e(g, [2, 155]), e(g, [2, 156]), e(g, [2, 157]), e(g, [2, 158]), e(g, [2, 159]), e(g, [2, 160]), e(g, [2, 83]), e(g, [2, 84]), e(g, [2, 85]), e(g, [2, 86]), e(g, [2, 87]), e(g, [2, 88]), e(g, [2, 89]), e(g, [2, 90]), e(g, [2, 91]), e(g, [2, 92]), e(g, [2, 93]), { 6: 11, 7: 12, 8: h, 9: U, 10: F, 11: w, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: X, 32: [1, 193], 33: 24, 34: l1, 36: d1, 38: p1, 40: 28, 41: 38, 42: S, 43: 39, 45: 40, 58: k, 81: o1, 82: U1, 83: G1, 84: M1, 85: K1, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 110: 41, 111: v, 112: I, 113: R, 118: Y1, 119: j1, 120: z1, 121: X1 }, { 10: I1, 18: 194 }, { 10: [1, 195], 42: S, 58: k, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 110: 109, 111: v, 112: I, 113: R }, { 10: [1, 196] }, { 10: [1, 197], 103: [1, 198] }, e(Mt, [2, 121]), { 10: [1, 199], 42: S, 58: k, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 110: 109, 111: v, 112: I, 113: R }, { 10: [1, 200], 42: S, 58: k, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 110: 109, 111: v, 112: I, 113: R }, { 77: [1, 201] }, e(T, [2, 102], { 10: [1, 202] }), e(T, [2, 104], { 10: [1, 203] }), { 77: [1, 204] }, e(K, [2, 177]), { 77: [1, 205], 95: [1, 206] }, e(W1, [2, 50], { 110: 109, 42: S, 58: k, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 111: v, 112: I, 113: R }), { 31: [1, 207], 65: d, 79: 208, 113: p, 114: A, 115: E }, e(h1, [2, 79]), e(h1, [2, 81]), e(h1, [2, 82]), e(h1, [2, 146]), e(h1, [2, 147]), e(h1, [2, 148]), e(h1, [2, 149]), { 47: [1, 209], 65: d, 79: 208, 113: p, 114: A, 115: E }, { 30: 210, 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, { 49: [1, 211], 65: d, 79: 208, 113: p, 114: A, 115: E }, { 51: [1, 212], 65: d, 79: 208, 113: p, 114: A, 115: E }, { 53: [1, 213], 65: d, 79: 208, 113: p, 114: A, 115: E }, { 55: [1, 214], 65: d, 79: 208, 113: p, 114: A, 115: E }, { 58: [1, 215] }, { 62: [1, 216], 65: d, 79: 208, 113: p, 114: A, 115: E }, { 64: [1, 217], 65: d, 79: 208, 113: p, 114: A, 115: E }, { 30: 218, 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, { 31: [1, 219], 65: d, 79: 208, 113: p, 114: A, 115: E }, { 65: d, 67: [1, 220], 69: [1, 221], 79: 208, 113: p, 114: A, 115: E }, { 65: d, 67: [1, 223], 69: [1, 222], 79: 208, 113: p, 114: A, 115: E }, e(H1, [2, 44], { 42: Gt }), e(R1, [2, 70]), e(R1, [2, 69]), { 60: [1, 224], 65: d, 79: 208, 113: p, 114: A, 115: E }, e(R1, [2, 72]), e(m1, [2, 74]), { 30: 225, 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, e(rt, o, { 5: 226 }), e(g, [2, 95]), e(b, [2, 35]), { 41: 227, 42: S, 43: 39, 45: 40, 58: k, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 110: 41, 111: v, 112: I, 113: R }, { 10: J, 58: $, 81: t1, 89: 228, 102: e1, 104: 229, 105: 230, 106: s1, 107: u1, 108: n1, 109: i1 }, { 10: J, 58: $, 81: t1, 89: 239, 101: [1, 240], 102: e1, 104: 229, 105: 230, 106: s1, 107: u1, 108: n1, 109: i1 }, { 10: J, 58: $, 81: t1, 89: 241, 101: [1, 242], 102: e1, 104: 229, 105: 230, 106: s1, 107: u1, 108: n1, 109: i1 }, { 102: [1, 243] }, { 10: J, 58: $, 81: t1, 89: 244, 102: e1, 104: 229, 105: 230, 106: s1, 107: u1, 108: n1, 109: i1 }, { 42: S, 45: 245, 58: k, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 110: 41, 111: v, 112: I, 113: R }, e(T, [2, 101]), { 77: [1, 246] }, { 77: [1, 247], 95: [1, 248] }, e(T, [2, 109]), e(T, [2, 111], { 10: [1, 249] }), e(T, [2, 112]), e(N, [2, 51]), e(h1, [2, 80]), e(N, [2, 52]), { 49: [1, 250], 65: d, 79: 208, 113: p, 114: A, 115: E }, e(N, [2, 59]), e(N, [2, 54]), e(N, [2, 55]), e(N, [2, 56]), { 106: [1, 251] }, e(N, [2, 58]), e(N, [2, 60]), { 64: [1, 252], 65: d, 79: 208, 113: p, 114: A, 115: E }, e(N, [2, 62]), e(N, [2, 63]), e(N, [2, 65]), e(N, [2, 64]), e(N, [2, 66]), e([10, 42, 58, 86, 99, 102, 103, 106, 108, 111, 112, 113], [2, 78]), { 31: [1, 253], 65: d, 79: 208, 113: p, 114: A, 115: E }, { 6: 11, 7: 12, 8: h, 9: U, 10: F, 11: w, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: X, 32: [1, 254], 33: 24, 34: l1, 36: d1, 38: p1, 40: 28, 41: 38, 42: S, 43: 39, 45: 40, 58: k, 81: o1, 82: U1, 83: G1, 84: M1, 85: K1, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 110: 41, 111: v, 112: I, 113: R, 118: Y1, 119: j1, 120: z1, 121: X1 }, e(W1, [2, 48]), e(T, [2, 114], { 103: y1 }), e(Kt, [2, 123], { 105: 256, 10: J, 58: $, 81: t1, 102: e1, 106: s1, 107: u1, 108: n1, 109: i1 }), e(W, [2, 125]), e(W, [2, 127]), e(W, [2, 128]), e(W, [2, 129]), e(W, [2, 130]), e(W, [2, 131]), e(W, [2, 132]), e(W, [2, 133]), e(W, [2, 134]), e(T, [2, 115], { 103: y1 }), { 10: [1, 257] }, e(T, [2, 116], { 103: y1 }), { 10: [1, 258] }, e(Mt, [2, 122]), e(T, [2, 98], { 103: y1 }), e(T, [2, 99], { 110: 109, 42: S, 58: k, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 111: v, 112: I, 113: R }), e(T, [2, 103]), e(T, [2, 105], { 10: [1, 259] }), e(T, [2, 106]), { 95: [1, 260] }, { 49: [1, 261] }, { 60: [1, 262] }, { 64: [1, 263] }, { 8: q, 9: Q, 11: Z, 21: 264 }, e(b, [2, 34]), { 10: J, 58: $, 81: t1, 102: e1, 104: 265, 105: 230, 106: s1, 107: u1, 108: n1, 109: i1 }, e(W, [2, 126]), { 14: k1, 42: b1, 58: g1, 86: D1, 98: 266, 102: F1, 103: T1, 106: C1, 108: S1, 111: _1, 112: x1, 113: B1, 117: 84 }, { 14: k1, 42: b1, 58: g1, 86: D1, 98: 267, 102: F1, 103: T1, 106: C1, 108: S1, 111: _1, 112: x1, 113: B1, 117: 84 }, { 95: [1, 268] }, e(T, [2, 113]), e(N, [2, 53]), { 30: 269, 65: d, 77: O, 78: P, 79: 164, 113: p, 114: A, 115: E }, e(N, [2, 61]), e(rt, o, { 5: 270 }), e(Kt, [2, 124], { 105: 256, 10: J, 58: $, 81: t1, 102: e1, 106: s1, 107: u1, 108: n1, 109: i1 }), e(T, [2, 119], { 117: 160, 10: [1, 271], 14: k1, 42: b1, 58: g1, 86: D1, 102: F1, 103: T1, 106: C1, 108: S1, 111: _1, 112: x1, 113: B1 }), e(T, [2, 120], { 117: 160, 10: [1, 272], 14: k1, 42: b1, 58: g1, 86: D1, 102: F1, 103: T1, 106: C1, 108: S1, 111: _1, 112: x1, 113: B1 }), e(T, [2, 107]), { 31: [1, 273], 65: d, 79: 208, 113: p, 114: A, 115: E }, { 6: 11, 7: 12, 8: h, 9: U, 10: F, 11: w, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: X, 32: [1, 274], 33: 24, 34: l1, 36: d1, 38: p1, 40: 28, 41: 38, 42: S, 43: 39, 45: 40, 58: k, 81: o1, 82: U1, 83: G1, 84: M1, 85: K1, 86: x, 99: B, 102: m, 103: y, 106: V, 108: L, 110: 41, 111: v, 112: I, 113: R, 118: Y1, 119: j1, 120: z1, 121: X1 }, { 10: J, 58: $, 81: t1, 89: 275, 102: e1, 104: 229, 105: 230, 106: s1, 107: u1, 108: n1, 109: i1 }, { 10: J, 58: $, 81: t1, 89: 276, 102: e1, 104: 229, 105: 230, 106: s1, 107: u1, 108: n1, 109: i1 }, e(N, [2, 57]), e(b, [2, 33]), e(T, [2, 117], { 103: y1 }), e(T, [2, 118], { 103: y1 })], + defaultActions: {}, + parseError: function(a, l) { + if (l.recoverable) + this.trace(a); + else { + var f = new Error(a); + throw f.hash = l, f; + } + }, + parse: function(a) { + var l = this, f = [0], i = [], C = [null], t = [], N1 = this.table, s = "", Y = 0, Yt = 0, Se = 2, jt = 1, _e = t.slice.call(arguments, 1), _ = Object.create(this.lexer), A1 = { yy: {} }; + for (var lt in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, lt) && (A1.yy[lt] = this.yy[lt]); + _.setInput(a, A1.yy), A1.yy.lexer = _, A1.yy.parser = this, typeof _.yylloc > "u" && (_.yylloc = {}); + var ot = _.yylloc; + t.push(ot); + var xe = _.options && _.options.ranges; + typeof A1.yy.parseError == "function" ? this.parseError = A1.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function Be() { + var a1; + return a1 = i.pop() || _.lex() || jt, typeof a1 != "number" && (a1 instanceof Array && (i = a1, a1 = i.pop()), a1 = l.symbols_[a1] || a1), a1; + } + for (var G, E1, j, ht, V1 = {}, q1, r1, zt, Q1; ; ) { + if (E1 = f[f.length - 1], this.defaultActions[E1] ? j = this.defaultActions[E1] : ((G === null || typeof G > "u") && (G = Be()), j = N1[E1] && N1[E1][G]), typeof j > "u" || !j.length || !j[0]) { + var ft = ""; + Q1 = []; + for (q1 in N1[E1]) + this.terminals_[q1] && q1 > Se && Q1.push("'" + this.terminals_[q1] + "'"); + _.showPosition ? ft = "Parse error on line " + (Y + 1) + `: +` + _.showPosition() + ` +Expecting ` + Q1.join(", ") + ", got '" + (this.terminals_[G] || G) + "'" : ft = "Parse error on line " + (Y + 1) + ": Unexpected " + (G == jt ? "end of input" : "'" + (this.terminals_[G] || G) + "'"), this.parseError(ft, { + text: _.match, + token: this.terminals_[G] || G, + line: _.yylineno, + loc: ot, + expected: Q1 + }); + } + if (j[0] instanceof Array && j.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + E1 + ", token: " + G); + switch (j[0]) { + case 1: + f.push(G), C.push(_.yytext), t.push(_.yylloc), f.push(j[1]), G = null, Yt = _.yyleng, s = _.yytext, Y = _.yylineno, ot = _.yylloc; + break; + case 2: + if (r1 = this.productions_[j[1]][1], V1.$ = C[C.length - r1], V1._$ = { + first_line: t[t.length - (r1 || 1)].first_line, + last_line: t[t.length - 1].last_line, + first_column: t[t.length - (r1 || 1)].first_column, + last_column: t[t.length - 1].last_column + }, xe && (V1._$.range = [ + t[t.length - (r1 || 1)].range[0], + t[t.length - 1].range[1] + ]), ht = this.performAction.apply(V1, [ + s, + Yt, + Y, + A1.yy, + j[1], + C, + t + ].concat(_e)), typeof ht < "u") + return ht; + r1 && (f = f.slice(0, -1 * r1 * 2), C = C.slice(0, -1 * r1), t = t.slice(0, -1 * r1)), f.push(this.productions_[j[1]][0]), C.push(V1.$), t.push(V1._$), zt = N1[f[f.length - 2]][f[f.length - 1]], f.push(zt); + break; + case 3: + return !0; + } + } + return !0; + } + }, Ce = function() { + var f1 = { + EOF: 1, + parseError: function(l, f) { + if (this.yy.parser) + this.yy.parser.parseError(l, f); + else + throw new Error(l); + }, + // resets the lexer, sets new input + setInput: function(a, l) { + return this.yy = l || this.yy || {}, this._input = a, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var a = this._input[0]; + this.yytext += a, this.yyleng++, this.offset++, this.match += a, this.matched += a; + var l = a.match(/(?:\r\n?|\n).*/g); + return l ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), a; + }, + // unshifts one char (or a string) into the input + unput: function(a) { + var l = a.length, f = a.split(/(?:\r\n?|\n)/g); + this._input = a + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - l), this.offset -= l; + var i = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), f.length - 1 && (this.yylineno -= f.length - 1); + var C = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: f ? (f.length === i.length ? this.yylloc.first_column : 0) + i[i.length - f.length].length - f[0].length : this.yylloc.first_column - l + }, this.options.ranges && (this.yylloc.range = [C[0], C[0] + this.yyleng - l]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(a) { + this.unput(this.match.slice(a)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var a = this.matched.substr(0, this.matched.length - this.match.length); + return (a.length > 20 ? "..." : "") + a.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var a = this.match; + return a.length < 20 && (a += this._input.substr(0, 20 - a.length)), (a.substr(0, 20) + (a.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var a = this.pastInput(), l = new Array(a.length + 1).join("-"); + return a + this.upcomingInput() + ` +` + l + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(a, l) { + var f, i, C; + if (this.options.backtrack_lexer && (C = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (C.yylloc.range = this.yylloc.range.slice(0))), i = a[0].match(/(?:\r\n?|\n).*/g), i && (this.yylineno += i.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: i ? i[i.length - 1].length - i[i.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + a[0].length + }, this.yytext += a[0], this.match += a[0], this.matches = a, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(a[0].length), this.matched += a[0], f = this.performAction.call(this, this.yy, this, l, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), f) + return f; + if (this._backtrack) { + for (var t in C) + this[t] = C[t]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var a, l, f, i; + this._more || (this.yytext = "", this.match = ""); + for (var C = this._currentRules(), t = 0; t < C.length; t++) + if (f = this._input.match(this.rules[C[t]]), f && (!l || f[0].length > l[0].length)) { + if (l = f, i = t, this.options.backtrack_lexer) { + if (a = this.test_match(f, C[t]), a !== !1) + return a; + if (this._backtrack) { + l = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return l ? (a = this.test_match(l, C[i]), a !== !1 ? a : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var l = this.next(); + return l || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(l) { + this.conditionStack.push(l); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var l = this.conditionStack.length - 1; + return l > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(l) { + return l = this.conditionStack.length - 1 - Math.abs(l || 0), l >= 0 ? this.conditionStack[l] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(l) { + this.begin(l); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: {}, + performAction: function(l, f, i, C) { + switch (i) { + case 0: + return this.begin("acc_title"), 34; + case 1: + return this.popState(), "acc_title_value"; + case 2: + return this.begin("acc_descr"), 36; + case 3: + return this.popState(), "acc_descr_value"; + case 4: + this.begin("acc_descr_multiline"); + break; + case 5: + this.popState(); + break; + case 6: + return "acc_descr_multiline_value"; + case 7: + this.begin("callbackname"); + break; + case 8: + this.popState(); + break; + case 9: + this.popState(), this.begin("callbackargs"); + break; + case 10: + return 92; + case 11: + this.popState(); + break; + case 12: + return 93; + case 13: + return "MD_STR"; + case 14: + this.popState(); + break; + case 15: + this.begin("md_string"); + break; + case 16: + return "STR"; + case 17: + this.popState(); + break; + case 18: + this.pushState("string"); + break; + case 19: + return 81; + case 20: + return 99; + case 21: + return 82; + case 22: + return 101; + case 23: + return 83; + case 24: + return 84; + case 25: + return 94; + case 26: + this.begin("click"); + break; + case 27: + this.popState(); + break; + case 28: + return 85; + case 29: + return l.lex.firstGraph() && this.begin("dir"), 12; + case 30: + return l.lex.firstGraph() && this.begin("dir"), 12; + case 31: + return l.lex.firstGraph() && this.begin("dir"), 12; + case 32: + return 27; + case 33: + return 32; + case 34: + return 95; + case 35: + return 95; + case 36: + return 95; + case 37: + return 95; + case 38: + return this.popState(), 13; + case 39: + return this.popState(), 14; + case 40: + return this.popState(), 14; + case 41: + return this.popState(), 14; + case 42: + return this.popState(), 14; + case 43: + return this.popState(), 14; + case 44: + return this.popState(), 14; + case 45: + return this.popState(), 14; + case 46: + return this.popState(), 14; + case 47: + return this.popState(), 14; + case 48: + return this.popState(), 14; + case 49: + return 118; + case 50: + return 119; + case 51: + return 120; + case 52: + return 121; + case 53: + return 102; + case 54: + return 108; + case 55: + return 44; + case 56: + return 58; + case 57: + return 42; + case 58: + return 8; + case 59: + return 103; + case 60: + return 112; + case 61: + return this.popState(), 75; + case 62: + return this.pushState("edgeText"), 73; + case 63: + return 116; + case 64: + return this.popState(), 75; + case 65: + return this.pushState("thickEdgeText"), 73; + case 66: + return 116; + case 67: + return this.popState(), 75; + case 68: + return this.pushState("dottedEdgeText"), 73; + case 69: + return 116; + case 70: + return 75; + case 71: + return this.popState(), 51; + case 72: + return "TEXT"; + case 73: + return this.pushState("ellipseText"), 50; + case 74: + return this.popState(), 53; + case 75: + return this.pushState("text"), 52; + case 76: + return this.popState(), 55; + case 77: + return this.pushState("text"), 54; + case 78: + return 56; + case 79: + return this.pushState("text"), 65; + case 80: + return this.popState(), 62; + case 81: + return this.pushState("text"), 61; + case 82: + return this.popState(), 47; + case 83: + return this.pushState("text"), 46; + case 84: + return this.popState(), 67; + case 85: + return this.popState(), 69; + case 86: + return 114; + case 87: + return this.pushState("trapText"), 66; + case 88: + return this.pushState("trapText"), 68; + case 89: + return 115; + case 90: + return 65; + case 91: + return 87; + case 92: + return "SEP"; + case 93: + return 86; + case 94: + return 112; + case 95: + return 108; + case 96: + return 42; + case 97: + return 106; + case 98: + return 111; + case 99: + return 113; + case 100: + return this.popState(), 60; + case 101: + return this.pushState("text"), 60; + case 102: + return this.popState(), 49; + case 103: + return this.pushState("text"), 48; + case 104: + return this.popState(), 31; + case 105: + return this.pushState("text"), 29; + case 106: + return this.popState(), 64; + case 107: + return this.pushState("text"), 63; + case 108: + return "TEXT"; + case 109: + return "QUOTE"; + case 110: + return 9; + case 111: + return 10; + case 112: + return 11; + } + }, + rules: [/^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["][`])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:["])/, /^(?:style\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\b)/, /^(?:class\b)/, /^(?:href[\s])/, /^(?:click[\s]+)/, /^(?:[\s\n])/, /^(?:[^\s\n]*)/, /^(?:flowchart-elk\b)/, /^(?:graph\b)/, /^(?:flowchart\b)/, /^(?:subgraph\b)/, /^(?:end\b\s*)/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:(\r?\n)*\s*\n)/, /^(?:\s*LR\b)/, /^(?:\s*RL\b)/, /^(?:\s*TB\b)/, /^(?:\s*BT\b)/, /^(?:\s*TD\b)/, /^(?:\s*BR\b)/, /^(?:\s*<)/, /^(?:\s*>)/, /^(?:\s*\^)/, /^(?:\s*v\b)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::::)/, /^(?::)/, /^(?:&)/, /^(?:;)/, /^(?:,)/, /^(?:\*)/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?--\s*)/, /^(?:[^-]|-(?!-)+)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?==\s*)/, /^(?:[^=]|=(?!))/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?:\s*[xo<]?-\.\s*)/, /^(?:[^\.]|\.(?!))/, /^(?:\s*~~[\~]+\s*)/, /^(?:[-/\)][\)])/, /^(?:[^\(\)\[\]\{\}]|!\)+)/, /^(?:\(-)/, /^(?:\]\))/, /^(?:\(\[)/, /^(?:\]\])/, /^(?:\[\[)/, /^(?:\[\|)/, /^(?:>)/, /^(?:\)\])/, /^(?:\[\()/, /^(?:\)\)\))/, /^(?:\(\(\()/, /^(?:[\\(?=\])][\]])/, /^(?:\/(?=\])\])/, /^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/, /^(?:\[\/)/, /^(?:\[\\)/, /^(?:<)/, /^(?:>)/, /^(?:\^)/, /^(?:\\\|)/, /^(?:v\b)/, /^(?:\*)/, /^(?:#)/, /^(?:&)/, /^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/, /^(?:-)/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\|)/, /^(?:\|)/, /^(?:\))/, /^(?:\()/, /^(?:\])/, /^(?:\[)/, /^(?:(\}))/, /^(?:\{)/, /^(?:[^\[\]\(\)\{\}\|\"]+)/, /^(?:")/, /^(?:(\r?\n)+)/, /^(?:\s)/, /^(?:$)/], + conditions: { callbackargs: { rules: [11, 12, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, callbackname: { rules: [8, 9, 10, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, href: { rules: [15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, click: { rules: [15, 18, 27, 28, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, dottedEdgeText: { rules: [15, 18, 67, 69, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, thickEdgeText: { rules: [15, 18, 64, 66, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, edgeText: { rules: [15, 18, 61, 63, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, trapText: { rules: [15, 18, 70, 73, 75, 77, 81, 83, 84, 85, 86, 87, 88, 101, 103, 105, 107], inclusive: !1 }, ellipseText: { rules: [15, 18, 70, 71, 72, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, text: { rules: [15, 18, 70, 73, 74, 75, 76, 77, 80, 81, 82, 83, 87, 88, 100, 101, 102, 103, 104, 105, 106, 107, 108], inclusive: !1 }, vertex: { rules: [15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, dir: { rules: [15, 18, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, acc_descr_multiline: { rules: [5, 6, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, acc_descr: { rules: [3, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, acc_title: { rules: [1, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, md_string: { rules: [13, 14, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, string: { rules: [15, 16, 17, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], inclusive: !1 }, INITIAL: { rules: [0, 2, 4, 7, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 67, 68, 70, 73, 75, 77, 78, 79, 81, 83, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 105, 107, 109, 110, 111, 112], inclusive: !0 } } + }; + return f1; + }(); + at.lexer = Ce; + function ct() { + this.yy = {}; + } + return ct.prototype = at, at.Parser = ct, new ct(); +}(); +dt.parser = dt; +const Xe = dt, Oe = "flowchart-"; +let Xt = 0, v1 = et(), D = {}, H = [], L1 = {}, c1 = [], $1 = {}, tt = {}, Z1 = 0, pt = !0, z, st, ut = []; +const nt = (e) => we.sanitizeText(e, v1), P1 = function(e) { + const u = Object.keys(D); + for (const n of u) + if (D[n].id === e) + return D[n].domId; + return e; +}, Ht = function(e, u, n, r, c, o, h = {}) { + let U, F = e; + F !== void 0 && F.trim().length !== 0 && (D[F] === void 0 && (D[F] = { + id: F, + labelType: "text", + domId: Oe + F + "-" + Xt, + styles: [], + classes: [] + }), Xt++, u !== void 0 ? (v1 = et(), U = nt(u.text.trim()), D[F].labelType = u.type, U[0] === '"' && U[U.length - 1] === '"' && (U = U.substring(1, U.length - 1)), D[F].text = U) : D[F].text === void 0 && (D[F].text = e), n !== void 0 && (D[F].type = n), r != null && r.forEach(function(w) { + D[F].styles.push(w); + }), c != null && c.forEach(function(w) { + D[F].classes.push(w); + }), o !== void 0 && (D[F].dir = o), D[F].props === void 0 ? D[F].props = h : h !== void 0 && Object.assign(D[F].props, h)); +}, Wt = function(e, u, n) { + const o = { start: e, end: u, type: void 0, text: "", labelType: "text" }; + J1.info("abc78 Got edge...", o); + const h = n.text; + if (h !== void 0 && (o.text = nt(h.text.trim()), o.text[0] === '"' && o.text[o.text.length - 1] === '"' && (o.text = o.text.substring(1, o.text.length - 1)), o.labelType = h.type), n !== void 0 && (o.type = n.type, o.stroke = n.stroke, o.length = n.length), (o == null ? void 0 : o.length) > 10 && (o.length = 10), H.length < (v1.maxEdges ?? 500)) + J1.info("abc78 pushing edge..."), H.push(o); + else + throw new Error( + `Edge limit exceeded. ${H.length} edges found, but the limit is ${v1.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.` + ); +}, qt = function(e, u, n) { + J1.info("addLink (abc78)", e, u, n); + let r, c; + for (r = 0; r < e.length; r++) + for (c = 0; c < u.length; c++) + Wt(e[r], u[c], n); +}, Qt = function(e, u) { + e.forEach(function(n) { + n === "default" ? H.defaultInterpolate = u : H[n].interpolate = u; + }); +}, Zt = function(e, u) { + e.forEach(function(n) { + if (n >= H.length) + throw new Error( + `The index ${n} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${H.length - 1}. (Help: Ensure that the index is within the range of existing edges.)` + ); + n === "default" ? H.defaultStyle = u : (At.isSubstringInArray("fill", u) === -1 && u.push("fill:none"), H[n].style = u); + }); +}, Jt = function(e, u) { + e.split(",").forEach(function(n) { + L1[n] === void 0 && (L1[n] = { id: n, styles: [], textStyles: [] }), u != null && u.forEach(function(r) { + if (r.match("color")) { + const c = r.replace("fill", "bgFill").replace("color", "fill"); + L1[n].textStyles.push(c); + } + L1[n].styles.push(r); + }); + }); +}, $t = function(e) { + z = e, z.match(/.*/) && (z = "LR"), z.match(/.*v/) && (z = "TB"), z === "TD" && (z = "TB"); +}, it = function(e, u) { + e.split(",").forEach(function(n) { + let r = n; + D[r] !== void 0 && D[r].classes.push(u), $1[r] !== void 0 && $1[r].classes.push(u); + }); +}, Pe = function(e, u) { + e.split(",").forEach(function(n) { + u !== void 0 && (tt[st === "gen-1" ? P1(n) : n] = nt(u)); + }); +}, Ue = function(e, u, n) { + let r = P1(e); + if (et().securityLevel !== "loose" || u === void 0) + return; + let c = []; + if (typeof n == "string") { + c = n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/); + for (let o = 0; o < c.length; o++) { + let h = c[o].trim(); + h.charAt(0) === '"' && h.charAt(h.length - 1) === '"' && (h = h.substr(1, h.length - 2)), c[o] = h; + } + } + c.length === 0 && c.push(e), D[e] !== void 0 && (D[e].haveCallback = !0, ut.push(function() { + const o = document.querySelector(`[id="${r}"]`); + o !== null && o.addEventListener( + "click", + function() { + At.runFunc(u, ...c); + }, + !1 + ); + })); +}, te = function(e, u, n) { + e.split(",").forEach(function(r) { + D[r] !== void 0 && (D[r].link = At.formatUrl(u, v1), D[r].linkTarget = n); + }), it(e, "clickable"); +}, ee = function(e) { + if (tt.hasOwnProperty(e)) + return tt[e]; +}, se = function(e, u, n) { + e.split(",").forEach(function(r) { + Ue(r, u, n); + }), it(e, "clickable"); +}, ue = function(e) { + ut.forEach(function(u) { + u(e); + }); +}, ne = function() { + return z.trim(); +}, ie = function() { + return D; +}, re = function() { + return H; +}, ae = function() { + return L1; +}, ce = function(e) { + let u = w1(".mermaidTooltip"); + (u._groups || u)[0][0] === null && (u = w1("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0)), w1(e).select("svg").selectAll("g.node").on("mouseover", function() { + const c = w1(this); + if (c.attr("title") === null) + return; + const h = this.getBoundingClientRect(); + u.transition().duration(200).style("opacity", ".9"), u.text(c.attr("title")).style("left", window.scrollX + h.left + (h.right - h.left) / 2 + "px").style("top", window.scrollY + h.bottom + "px"), u.html(u.html().replace(/<br\/>/g, "
")), c.classed("hover", !0); + }).on("mouseout", function() { + u.transition().duration(500).style("opacity", 0), w1(this).classed("hover", !1); + }); +}; +ut.push(ce); +const le = function(e = "gen-1") { + D = {}, L1 = {}, H = [], ut = [ce], c1 = [], $1 = {}, Z1 = 0, tt = {}, pt = !0, st = e, v1 = et(), Ne(); +}, oe = (e) => { + st = e || "gen-2"; +}, he = function() { + return "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"; +}, fe = function(e, u, n) { + let r = e.text.trim(), c = n.text; + e === n && n.text.match(/\s/) && (r = void 0); + function o(X) { + const l1 = { boolean: {}, number: {}, string: {} }, d1 = []; + let p1; + return { nodeList: X.filter(function(k) { + const o1 = typeof k; + return k.stmt && k.stmt === "dir" ? (p1 = k.value, !1) : k.trim() === "" ? !1 : o1 in l1 ? l1[o1].hasOwnProperty(k) ? !1 : l1[o1][k] = !0 : d1.includes(k) ? !1 : d1.push(k); + }), dir: p1 }; + } + let h = []; + const { nodeList: U, dir: F } = o(h.concat.apply(h, u)); + if (h = U, st === "gen-1") + for (let X = 0; X < h.length; X++) + h[X] = P1(h[X]); + r = r || "subGraph" + Z1, c = c || "", c = nt(c), Z1 = Z1 + 1; + const w = { + id: r, + nodes: h, + title: c.trim(), + classes: [], + dir: F, + labelType: n.type + }; + return J1.info("Adding", w.id, w.nodes, w.dir), w.nodes = Fe(w, c1).nodes, c1.push(w), $1[r] = w, r; +}, Ge = function(e) { + for (const [u, n] of c1.entries()) + if (n.id === e) + return u; + return -1; +}; +let O1 = -1; +const de = [], pe = function(e, u) { + const n = c1[u].nodes; + if (O1 = O1 + 1, O1 > 2e3) + return; + if (de[O1] = u, c1[u].id === e) + return { + result: !0, + count: 0 + }; + let r = 0, c = 1; + for (; r < n.length; ) { + const o = Ge(n[r]); + if (o >= 0) { + const h = pe(e, o); + if (h.result) + return { + result: !0, + count: c + h.count + }; + c = c + h.count; + } + r = r + 1; + } + return { + result: !1, + count: c + }; +}, Ae = function(e) { + return de[e]; +}, Ee = function() { + O1 = -1, c1.length > 0 && pe("none", c1.length - 1); +}, ke = function() { + return c1; +}, be = () => pt ? (pt = !1, !0) : !1, Me = (e) => { + let u = e.trim(), n = "arrow_open"; + switch (u[0]) { + case "<": + n = "arrow_point", u = u.slice(1); + break; + case "x": + n = "arrow_cross", u = u.slice(1); + break; + case "o": + n = "arrow_circle", u = u.slice(1); + break; + } + let r = "normal"; + return u.includes("=") && (r = "thick"), u.includes(".") && (r = "dotted"), { type: n, stroke: r }; +}, Ke = (e, u) => { + const n = u.length; + let r = 0; + for (let c = 0; c < n; ++c) + u[c] === e && ++r; + return r; +}, Ye = (e) => { + const u = e.trim(); + let n = u.slice(0, -1), r = "arrow_open"; + switch (u.slice(-1)) { + case "x": + r = "arrow_cross", u[0] === "x" && (r = "double_" + r, n = n.slice(1)); + break; + case ">": + r = "arrow_point", u[0] === "<" && (r = "double_" + r, n = n.slice(1)); + break; + case "o": + r = "arrow_circle", u[0] === "o" && (r = "double_" + r, n = n.slice(1)); + break; + } + let c = "normal", o = n.length - 1; + n[0] === "=" && (c = "thick"), n[0] === "~" && (c = "invisible"); + let h = Ke(".", n); + return h && (c = "dotted", o = h), { type: r, stroke: c, length: o }; +}, ge = (e, u) => { + const n = Ye(e); + let r; + if (u) { + if (r = Me(u), r.stroke !== n.stroke) + return { type: "INVALID", stroke: "INVALID" }; + if (r.type === "arrow_open") + r.type = n.type; + else { + if (r.type !== n.type) + return { type: "INVALID", stroke: "INVALID" }; + r.type = "double_" + r.type; + } + return r.type === "double_arrow" && (r.type = "double_arrow_point"), r.length = n.length, r; + } + return n; +}, De = (e, u) => { + let n = !1; + return e.forEach((r) => { + r.nodes.indexOf(u) >= 0 && (n = !0); + }), n; +}, Fe = (e, u) => { + const n = []; + return e.nodes.forEach((r, c) => { + De(u, r) || n.push(e.nodes[c]); + }), { nodes: n }; +}, Te = { + firstGraph: be +}, je = { + defaultConfig: () => me.flowchart, + setAccTitle: ye, + getAccTitle: Ve, + getAccDescription: Le, + setAccDescription: ve, + addVertex: Ht, + lookUpDomId: P1, + addLink: qt, + updateLinkInterpolate: Qt, + updateLink: Zt, + addClass: Jt, + setDirection: $t, + setClass: it, + setTooltip: Pe, + getTooltip: ee, + setClickEvent: se, + setLink: te, + bindFunctions: ue, + getDirection: ne, + getVertices: ie, + getEdges: re, + getClasses: ae, + clear: le, + setGen: oe, + defaultStyle: he, + addSubGraph: fe, + getDepthFirstPos: Ae, + indexNodes: Ee, + getSubGraphs: ke, + destructLink: ge, + lex: Te, + exists: De, + makeUniq: Fe, + setDiagramTitle: Ie, + getDiagramTitle: Re +}, He = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + addClass: Jt, + addLink: qt, + addSingleLink: Wt, + addSubGraph: fe, + addVertex: Ht, + bindFunctions: ue, + clear: le, + default: je, + defaultStyle: he, + destructLink: ge, + firstGraph: be, + getClasses: ae, + getDepthFirstPos: Ae, + getDirection: ne, + getEdges: re, + getSubGraphs: ke, + getTooltip: ee, + getVertices: ie, + indexNodes: Ee, + lex: Te, + lookUpDomId: P1, + setClass: it, + setClickEvent: se, + setDirection: $t, + setGen: oe, + setLink: te, + updateLink: Zt, + updateLinkInterpolate: Qt +}, Symbol.toStringTag, { value: "Module" })); +export { + He as d, + je as f, + Xe as p +}; diff --git a/assets/lib/mermaid/flowDb-ba9bd7fa.js b/assets/lib/mermaid/flowDb-ba9bd7fa.js new file mode 100644 index 000000000..aa60d9eef --- /dev/null +++ b/assets/lib/mermaid/flowDb-ba9bd7fa.js @@ -0,0 +1,1713 @@ +import { ar as defaultConfig, s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, C as setDiagramTitle, D as getDiagramTitle, c as getConfig, l as log, A as utils, E as clear$1, f as common, j as d3select } from "./mermaid-dcacb631.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 4], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 8, 9, 10, 11, 27, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], $V4 = [2, 2], $V5 = [1, 13], $V6 = [1, 14], $V7 = [1, 15], $V8 = [1, 16], $V9 = [1, 23], $Va = [1, 25], $Vb = [1, 26], $Vc = [1, 27], $Vd = [1, 49], $Ve = [1, 48], $Vf = [1, 29], $Vg = [1, 30], $Vh = [1, 31], $Vi = [1, 32], $Vj = [1, 33], $Vk = [1, 44], $Vl = [1, 46], $Vm = [1, 42], $Vn = [1, 47], $Vo = [1, 43], $Vp = [1, 50], $Vq = [1, 45], $Vr = [1, 51], $Vs = [1, 52], $Vt = [1, 34], $Vu = [1, 35], $Vv = [1, 36], $Vw = [1, 37], $Vx = [1, 57], $Vy = [1, 8, 9, 10, 11, 27, 32, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], $Vz = [1, 61], $VA = [1, 60], $VB = [1, 62], $VC = [8, 9, 11, 73, 75], $VD = [1, 88], $VE = [1, 93], $VF = [1, 92], $VG = [1, 89], $VH = [1, 85], $VI = [1, 91], $VJ = [1, 87], $VK = [1, 94], $VL = [1, 90], $VM = [1, 95], $VN = [1, 86], $VO = [8, 9, 10, 11, 73, 75], $VP = [8, 9, 10, 11, 44, 73, 75], $VQ = [8, 9, 10, 11, 29, 42, 44, 46, 48, 50, 52, 54, 56, 58, 61, 63, 65, 66, 68, 73, 75, 86, 99, 102, 103, 106, 108, 111, 112, 113], $VR = [8, 9, 11, 42, 58, 73, 75, 86, 99, 102, 103, 106, 108, 111, 112, 113], $VS = [42, 58, 86, 99, 102, 103, 106, 108, 111, 112, 113], $VT = [1, 121], $VU = [1, 120], $VV = [1, 128], $VW = [1, 142], $VX = [1, 143], $VY = [1, 144], $VZ = [1, 145], $V_ = [1, 130], $V$ = [1, 132], $V01 = [1, 136], $V11 = [1, 137], $V21 = [1, 138], $V31 = [1, 139], $V41 = [1, 140], $V51 = [1, 141], $V61 = [1, 146], $V71 = [1, 147], $V81 = [1, 126], $V91 = [1, 127], $Va1 = [1, 134], $Vb1 = [1, 129], $Vc1 = [1, 133], $Vd1 = [1, 131], $Ve1 = [8, 9, 10, 11, 27, 32, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], $Vf1 = [1, 149], $Vg1 = [8, 9, 11], $Vh1 = [8, 9, 10, 11, 14, 42, 58, 86, 102, 103, 106, 108, 111, 112, 113], $Vi1 = [1, 169], $Vj1 = [1, 165], $Vk1 = [1, 166], $Vl1 = [1, 170], $Vm1 = [1, 167], $Vn1 = [1, 168], $Vo1 = [75, 113, 116], $Vp1 = [8, 9, 10, 11, 12, 14, 27, 29, 32, 42, 58, 73, 81, 82, 83, 84, 85, 86, 87, 102, 106, 108, 111, 112, 113], $Vq1 = [10, 103], $Vr1 = [31, 47, 49, 51, 53, 55, 60, 62, 64, 65, 67, 69, 113, 114, 115], $Vs1 = [1, 235], $Vt1 = [1, 233], $Vu1 = [1, 237], $Vv1 = [1, 231], $Vw1 = [1, 232], $Vx1 = [1, 234], $Vy1 = [1, 236], $Vz1 = [1, 238], $VA1 = [1, 255], $VB1 = [8, 9, 11, 103], $VC1 = [8, 9, 10, 11, 58, 81, 102, 103, 106, 107, 108, 109]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "graphConfig": 4, "document": 5, "line": 6, "statement": 7, "SEMI": 8, "NEWLINE": 9, "SPACE": 10, "EOF": 11, "GRAPH": 12, "NODIR": 13, "DIR": 14, "FirstStmtSeparator": 15, "ending": 16, "endToken": 17, "spaceList": 18, "spaceListNewline": 19, "vertexStatement": 20, "separator": 21, "styleStatement": 22, "linkStyleStatement": 23, "classDefStatement": 24, "classStatement": 25, "clickStatement": 26, "subgraph": 27, "textNoTags": 28, "SQS": 29, "text": 30, "SQE": 31, "end": 32, "direction": 33, "acc_title": 34, "acc_title_value": 35, "acc_descr": 36, "acc_descr_value": 37, "acc_descr_multiline_value": 38, "link": 39, "node": 40, "styledVertex": 41, "AMP": 42, "vertex": 43, "STYLE_SEPARATOR": 44, "idString": 45, "DOUBLECIRCLESTART": 46, "DOUBLECIRCLEEND": 47, "PS": 48, "PE": 49, "(-": 50, "-)": 51, "STADIUMSTART": 52, "STADIUMEND": 53, "SUBROUTINESTART": 54, "SUBROUTINEEND": 55, "VERTEX_WITH_PROPS_START": 56, "NODE_STRING[field]": 57, "COLON": 58, "NODE_STRING[value]": 59, "PIPE": 60, "CYLINDERSTART": 61, "CYLINDEREND": 62, "DIAMOND_START": 63, "DIAMOND_STOP": 64, "TAGEND": 65, "TRAPSTART": 66, "TRAPEND": 67, "INVTRAPSTART": 68, "INVTRAPEND": 69, "linkStatement": 70, "arrowText": 71, "TESTSTR": 72, "START_LINK": 73, "edgeText": 74, "LINK": 75, "edgeTextToken": 76, "STR": 77, "MD_STR": 78, "textToken": 79, "keywords": 80, "STYLE": 81, "LINKSTYLE": 82, "CLASSDEF": 83, "CLASS": 84, "CLICK": 85, "DOWN": 86, "UP": 87, "textNoTagsToken": 88, "stylesOpt": 89, "idString[vertex]": 90, "idString[class]": 91, "CALLBACKNAME": 92, "CALLBACKARGS": 93, "HREF": 94, "LINK_TARGET": 95, "STR[link]": 96, "STR[tooltip]": 97, "alphaNum": 98, "DEFAULT": 99, "numList": 100, "INTERPOLATE": 101, "NUM": 102, "COMMA": 103, "style": 104, "styleComponent": 105, "NODE_STRING": 106, "UNIT": 107, "BRKT": 108, "PCT": 109, "idStringToken": 110, "MINUS": 111, "MULT": 112, "UNICODE_TEXT": 113, "TEXT": 114, "TAGSTART": 115, "EDGE_TEXT": 116, "alphaNumToken": 117, "direction_tb": 118, "direction_bt": 119, "direction_rl": 120, "direction_lr": 121, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 8: "SEMI", 9: "NEWLINE", 10: "SPACE", 11: "EOF", 12: "GRAPH", 13: "NODIR", 14: "DIR", 27: "subgraph", 29: "SQS", 31: "SQE", 32: "end", 34: "acc_title", 35: "acc_title_value", 36: "acc_descr", 37: "acc_descr_value", 38: "acc_descr_multiline_value", 42: "AMP", 44: "STYLE_SEPARATOR", 46: "DOUBLECIRCLESTART", 47: "DOUBLECIRCLEEND", 48: "PS", 49: "PE", 50: "(-", 51: "-)", 52: "STADIUMSTART", 53: "STADIUMEND", 54: "SUBROUTINESTART", 55: "SUBROUTINEEND", 56: "VERTEX_WITH_PROPS_START", 57: "NODE_STRING[field]", 58: "COLON", 59: "NODE_STRING[value]", 60: "PIPE", 61: "CYLINDERSTART", 62: "CYLINDEREND", 63: "DIAMOND_START", 64: "DIAMOND_STOP", 65: "TAGEND", 66: "TRAPSTART", 67: "TRAPEND", 68: "INVTRAPSTART", 69: "INVTRAPEND", 72: "TESTSTR", 73: "START_LINK", 75: "LINK", 77: "STR", 78: "MD_STR", 81: "STYLE", 82: "LINKSTYLE", 83: "CLASSDEF", 84: "CLASS", 85: "CLICK", 86: "DOWN", 87: "UP", 90: "idString[vertex]", 91: "idString[class]", 92: "CALLBACKNAME", 93: "CALLBACKARGS", 94: "HREF", 95: "LINK_TARGET", 96: "STR[link]", 97: "STR[tooltip]", 99: "DEFAULT", 101: "INTERPOLATE", 102: "NUM", 103: "COMMA", 106: "NODE_STRING", 107: "UNIT", 108: "BRKT", 109: "PCT", 111: "MINUS", 112: "MULT", 113: "UNICODE_TEXT", 114: "TEXT", 115: "TAGSTART", 116: "EDGE_TEXT", 118: "direction_tb", 119: "direction_bt", 120: "direction_rl", 121: "direction_lr" }, + productions_: [0, [3, 2], [5, 0], [5, 2], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [4, 2], [4, 2], [4, 2], [4, 3], [16, 2], [16, 1], [17, 1], [17, 1], [17, 1], [15, 1], [15, 1], [15, 2], [19, 2], [19, 2], [19, 1], [19, 1], [18, 2], [18, 1], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 9], [7, 6], [7, 4], [7, 1], [7, 2], [7, 2], [7, 1], [21, 1], [21, 1], [21, 1], [20, 3], [20, 4], [20, 2], [20, 1], [40, 1], [40, 5], [41, 1], [41, 3], [43, 4], [43, 4], [43, 6], [43, 4], [43, 4], [43, 4], [43, 8], [43, 4], [43, 4], [43, 4], [43, 6], [43, 4], [43, 4], [43, 4], [43, 4], [43, 4], [43, 1], [39, 2], [39, 3], [39, 3], [39, 1], [39, 3], [74, 1], [74, 2], [74, 1], [74, 1], [70, 1], [71, 3], [30, 1], [30, 2], [30, 1], [30, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [28, 1], [28, 2], [28, 1], [28, 1], [24, 5], [25, 5], [26, 2], [26, 4], [26, 3], [26, 5], [26, 3], [26, 5], [26, 5], [26, 7], [26, 2], [26, 4], [26, 2], [26, 4], [26, 4], [26, 6], [22, 5], [23, 5], [23, 5], [23, 9], [23, 9], [23, 7], [23, 7], [100, 1], [100, 3], [89, 1], [89, 3], [104, 1], [104, 2], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [79, 1], [79, 1], [79, 1], [79, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [76, 1], [76, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [45, 1], [45, 2], [98, 1], [98, 2], [33, 1], [33, 1], [33, 1], [33, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 2: + this.$ = []; + break; + case 3: + if (!Array.isArray($$[$0]) || $$[$0].length > 0) { + $$[$0 - 1].push($$[$0]); + } + this.$ = $$[$0 - 1]; + break; + case 4: + case 176: + this.$ = $$[$0]; + break; + case 11: + yy.setDirection("TB"); + this.$ = "TB"; + break; + case 12: + yy.setDirection($$[$0 - 1]); + this.$ = $$[$0 - 1]; + break; + case 27: + this.$ = $$[$0 - 1].nodes; + break; + case 28: + case 29: + case 30: + case 31: + case 32: + this.$ = []; + break; + case 33: + this.$ = yy.addSubGraph($$[$0 - 6], $$[$0 - 1], $$[$0 - 4]); + break; + case 34: + this.$ = yy.addSubGraph($$[$0 - 3], $$[$0 - 1], $$[$0 - 3]); + break; + case 35: + this.$ = yy.addSubGraph(void 0, $$[$0 - 1], void 0); + break; + case 37: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 38: + case 39: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 43: + yy.addLink($$[$0 - 2].stmt, $$[$0], $$[$0 - 1]); + this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0 - 2].nodes) }; + break; + case 44: + yy.addLink($$[$0 - 3].stmt, $$[$0 - 1], $$[$0 - 2]); + this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1].concat($$[$0 - 3].nodes) }; + break; + case 45: + this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1] }; + break; + case 46: + this.$ = { stmt: $$[$0], nodes: $$[$0] }; + break; + case 47: + this.$ = [$$[$0]]; + break; + case 48: + this.$ = $$[$0 - 4].concat($$[$0]); + break; + case 49: + this.$ = $$[$0]; + break; + case 50: + this.$ = $$[$0 - 2]; + yy.setClass($$[$0 - 2], $$[$0]); + break; + case 51: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "square"); + break; + case 52: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "doublecircle"); + break; + case 53: + this.$ = $$[$0 - 5]; + yy.addVertex($$[$0 - 5], $$[$0 - 2], "circle"); + break; + case 54: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "ellipse"); + break; + case 55: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "stadium"); + break; + case 56: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "subroutine"); + break; + case 57: + this.$ = $$[$0 - 7]; + yy.addVertex($$[$0 - 7], $$[$0 - 1], "rect", void 0, void 0, void 0, Object.fromEntries([[$$[$0 - 5], $$[$0 - 3]]])); + break; + case 58: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "cylinder"); + break; + case 59: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "round"); + break; + case 60: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "diamond"); + break; + case 61: + this.$ = $$[$0 - 5]; + yy.addVertex($$[$0 - 5], $$[$0 - 2], "hexagon"); + break; + case 62: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "odd"); + break; + case 63: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "trapezoid"); + break; + case 64: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "inv_trapezoid"); + break; + case 65: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_right"); + break; + case 66: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_left"); + break; + case 67: + this.$ = $$[$0]; + yy.addVertex($$[$0]); + break; + case 68: + $$[$0 - 1].text = $$[$0]; + this.$ = $$[$0 - 1]; + break; + case 69: + case 70: + $$[$0 - 2].text = $$[$0 - 1]; + this.$ = $$[$0 - 2]; + break; + case 71: + this.$ = $$[$0]; + break; + case 72: + var inf = yy.destructLink($$[$0], $$[$0 - 2]); + this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length, "text": $$[$0 - 1] }; + break; + case 73: + this.$ = { text: $$[$0], type: "text" }; + break; + case 74: + this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type }; + break; + case 75: + this.$ = { text: $$[$0], type: "string" }; + break; + case 76: + this.$ = { text: $$[$0], type: "markdown" }; + break; + case 77: + var inf = yy.destructLink($$[$0]); + this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length }; + break; + case 78: + this.$ = $$[$0 - 1]; + break; + case 79: + this.$ = { text: $$[$0], type: "text" }; + break; + case 80: + this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type }; + break; + case 81: + this.$ = { text: $$[$0], type: "string" }; + break; + case 82: + case 97: + this.$ = { text: $$[$0], type: "markdown" }; + break; + case 94: + this.$ = { text: $$[$0], type: "text" }; + break; + case 95: + this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type }; + break; + case 96: + this.$ = { text: $$[$0], type: "text" }; + break; + case 98: + this.$ = $$[$0 - 4]; + yy.addClass($$[$0 - 2], $$[$0]); + break; + case 99: + this.$ = $$[$0 - 4]; + yy.setClass($$[$0 - 2], $$[$0]); + break; + case 100: + case 108: + this.$ = $$[$0 - 1]; + yy.setClickEvent($$[$0 - 1], $$[$0]); + break; + case 101: + case 109: + this.$ = $$[$0 - 3]; + yy.setClickEvent($$[$0 - 3], $$[$0 - 2]); + yy.setTooltip($$[$0 - 3], $$[$0]); + break; + case 102: + this.$ = $$[$0 - 2]; + yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]); + break; + case 103: + this.$ = $$[$0 - 4]; + yy.setClickEvent($$[$0 - 4], $$[$0 - 3], $$[$0 - 2]); + yy.setTooltip($$[$0 - 4], $$[$0]); + break; + case 104: + this.$ = $$[$0 - 2]; + yy.setLink($$[$0 - 2], $$[$0]); + break; + case 105: + this.$ = $$[$0 - 4]; + yy.setLink($$[$0 - 4], $$[$0 - 2]); + yy.setTooltip($$[$0 - 4], $$[$0]); + break; + case 106: + this.$ = $$[$0 - 4]; + yy.setLink($$[$0 - 4], $$[$0 - 2], $$[$0]); + break; + case 107: + this.$ = $$[$0 - 6]; + yy.setLink($$[$0 - 6], $$[$0 - 4], $$[$0]); + yy.setTooltip($$[$0 - 6], $$[$0 - 2]); + break; + case 110: + this.$ = $$[$0 - 1]; + yy.setLink($$[$0 - 1], $$[$0]); + break; + case 111: + this.$ = $$[$0 - 3]; + yy.setLink($$[$0 - 3], $$[$0 - 2]); + yy.setTooltip($$[$0 - 3], $$[$0]); + break; + case 112: + this.$ = $$[$0 - 3]; + yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]); + break; + case 113: + this.$ = $$[$0 - 5]; + yy.setLink($$[$0 - 5], $$[$0 - 4], $$[$0]); + yy.setTooltip($$[$0 - 5], $$[$0 - 2]); + break; + case 114: + this.$ = $$[$0 - 4]; + yy.addVertex($$[$0 - 2], void 0, void 0, $$[$0]); + break; + case 115: + this.$ = $$[$0 - 4]; + yy.updateLink([$$[$0 - 2]], $$[$0]); + break; + case 116: + this.$ = $$[$0 - 4]; + yy.updateLink($$[$0 - 2], $$[$0]); + break; + case 117: + this.$ = $$[$0 - 8]; + yy.updateLinkInterpolate([$$[$0 - 6]], $$[$0 - 2]); + yy.updateLink([$$[$0 - 6]], $$[$0]); + break; + case 118: + this.$ = $$[$0 - 8]; + yy.updateLinkInterpolate($$[$0 - 6], $$[$0 - 2]); + yy.updateLink($$[$0 - 6], $$[$0]); + break; + case 119: + this.$ = $$[$0 - 6]; + yy.updateLinkInterpolate([$$[$0 - 4]], $$[$0]); + break; + case 120: + this.$ = $$[$0 - 6]; + yy.updateLinkInterpolate($$[$0 - 4], $$[$0]); + break; + case 121: + case 123: + this.$ = [$$[$0]]; + break; + case 122: + case 124: + $$[$0 - 2].push($$[$0]); + this.$ = $$[$0 - 2]; + break; + case 126: + this.$ = $$[$0 - 1] + $$[$0]; + break; + case 174: + this.$ = $$[$0]; + break; + case 175: + this.$ = $$[$0 - 1] + "" + $$[$0]; + break; + case 177: + this.$ = $$[$0 - 1] + "" + $$[$0]; + break; + case 178: + this.$ = { stmt: "dir", value: "TB" }; + break; + case 179: + this.$ = { stmt: "dir", value: "BT" }; + break; + case 180: + this.$ = { stmt: "dir", value: "RL" }; + break; + case 181: + this.$ = { stmt: "dir", value: "LR" }; + break; + } + }, + table: [{ 3: 1, 4: 2, 9: $V0, 10: $V1, 12: $V2 }, { 1: [3] }, o($V3, $V4, { 5: 6 }), { 4: 7, 9: $V0, 10: $V1, 12: $V2 }, { 4: 8, 9: $V0, 10: $V1, 12: $V2 }, { 13: [1, 9], 14: [1, 10] }, { 1: [2, 1], 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, o($V3, [2, 9]), o($V3, [2, 10]), o($V3, [2, 11]), { 8: [1, 54], 9: [1, 55], 10: $Vx, 15: 53, 18: 56 }, o($Vy, [2, 3]), o($Vy, [2, 4]), o($Vy, [2, 5]), o($Vy, [2, 6]), o($Vy, [2, 7]), o($Vy, [2, 8]), { 8: $Vz, 9: $VA, 11: $VB, 21: 58, 39: 59, 70: 63, 73: [1, 64], 75: [1, 65] }, { 8: $Vz, 9: $VA, 11: $VB, 21: 66 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 67 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 68 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 69 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 70 }, { 8: $Vz, 9: $VA, 10: [1, 71], 11: $VB, 21: 72 }, o($Vy, [2, 36]), { 35: [1, 73] }, { 37: [1, 74] }, o($Vy, [2, 39]), o($VC, [2, 46], { 18: 75, 10: $Vx }), { 10: [1, 76] }, { 10: [1, 77] }, { 10: [1, 78] }, { 10: [1, 79] }, { 14: $VD, 42: $VE, 58: $VF, 77: [1, 83], 86: $VG, 92: [1, 80], 94: [1, 81], 98: 82, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, o($Vy, [2, 178]), o($Vy, [2, 179]), o($Vy, [2, 180]), o($Vy, [2, 181]), o($VO, [2, 47]), o($VO, [2, 49], { 44: [1, 96] }), o($VP, [2, 67], { 110: 109, 29: [1, 97], 42: $Vd, 46: [1, 98], 48: [1, 99], 50: [1, 100], 52: [1, 101], 54: [1, 102], 56: [1, 103], 58: $Ve, 61: [1, 104], 63: [1, 105], 65: [1, 106], 66: [1, 107], 68: [1, 108], 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), o($VQ, [2, 174]), o($VQ, [2, 135]), o($VQ, [2, 136]), o($VQ, [2, 137]), o($VQ, [2, 138]), o($VQ, [2, 139]), o($VQ, [2, 140]), o($VQ, [2, 141]), o($VQ, [2, 142]), o($VQ, [2, 143]), o($VQ, [2, 144]), o($VQ, [2, 145]), o($V3, [2, 12]), o($V3, [2, 18]), o($V3, [2, 19]), { 9: [1, 110] }, o($VR, [2, 26], { 18: 111, 10: $Vx }), o($Vy, [2, 27]), { 40: 112, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o($Vy, [2, 40]), o($Vy, [2, 41]), o($Vy, [2, 42]), o($VS, [2, 71], { 71: 113, 60: [1, 115], 72: [1, 114] }), { 74: 116, 76: 117, 77: [1, 118], 78: [1, 119], 113: $VT, 116: $VU }, o([42, 58, 60, 72, 86, 99, 102, 103, 106, 108, 111, 112, 113], [2, 77]), o($Vy, [2, 28]), o($Vy, [2, 29]), o($Vy, [2, 30]), o($Vy, [2, 31]), o($Vy, [2, 32]), { 10: $VV, 12: $VW, 14: $VX, 27: $VY, 28: 122, 32: $VZ, 42: $V_, 58: $V$, 73: $V01, 77: [1, 124], 78: [1, 125], 80: 135, 81: $V11, 82: $V21, 83: $V31, 84: $V41, 85: $V51, 86: $V61, 87: $V71, 88: 123, 102: $V81, 106: $V91, 108: $Va1, 111: $Vb1, 112: $Vc1, 113: $Vd1 }, o($Ve1, $V4, { 5: 148 }), o($Vy, [2, 37]), o($Vy, [2, 38]), o($VC, [2, 45], { 42: $Vf1 }), { 42: $Vd, 45: 150, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 99: [1, 151], 100: 152, 102: [1, 153] }, { 42: $Vd, 45: 154, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 42: $Vd, 45: 155, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o($Vg1, [2, 100], { 10: [1, 156], 93: [1, 157] }), { 77: [1, 158] }, o($Vg1, [2, 108], { 117: 160, 10: [1, 159], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o($Vg1, [2, 110], { 10: [1, 161] }), o($Vh1, [2, 176]), o($Vh1, [2, 163]), o($Vh1, [2, 164]), o($Vh1, [2, 165]), o($Vh1, [2, 166]), o($Vh1, [2, 167]), o($Vh1, [2, 168]), o($Vh1, [2, 169]), o($Vh1, [2, 170]), o($Vh1, [2, 171]), o($Vh1, [2, 172]), o($Vh1, [2, 173]), { 42: $Vd, 45: 162, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 30: 163, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 171, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 173, 48: [1, 172], 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 174, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 175, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 176, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 106: [1, 177] }, { 30: 178, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 179, 63: [1, 180], 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 181, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 182, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 183, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VQ, [2, 175]), o($V3, [2, 20]), o($VR, [2, 25]), o($VC, [2, 43], { 18: 184, 10: $Vx }), o($VS, [2, 68], { 10: [1, 185] }), { 10: [1, 186] }, { 30: 187, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 75: [1, 188], 76: 189, 113: $VT, 116: $VU }, o($Vo1, [2, 73]), o($Vo1, [2, 75]), o($Vo1, [2, 76]), o($Vo1, [2, 161]), o($Vo1, [2, 162]), { 8: $Vz, 9: $VA, 10: $VV, 11: $VB, 12: $VW, 14: $VX, 21: 191, 27: $VY, 29: [1, 190], 32: $VZ, 42: $V_, 58: $V$, 73: $V01, 80: 135, 81: $V11, 82: $V21, 83: $V31, 84: $V41, 85: $V51, 86: $V61, 87: $V71, 88: 192, 102: $V81, 106: $V91, 108: $Va1, 111: $Vb1, 112: $Vc1, 113: $Vd1 }, o($Vp1, [2, 94]), o($Vp1, [2, 96]), o($Vp1, [2, 97]), o($Vp1, [2, 150]), o($Vp1, [2, 151]), o($Vp1, [2, 152]), o($Vp1, [2, 153]), o($Vp1, [2, 154]), o($Vp1, [2, 155]), o($Vp1, [2, 156]), o($Vp1, [2, 157]), o($Vp1, [2, 158]), o($Vp1, [2, 159]), o($Vp1, [2, 160]), o($Vp1, [2, 83]), o($Vp1, [2, 84]), o($Vp1, [2, 85]), o($Vp1, [2, 86]), o($Vp1, [2, 87]), o($Vp1, [2, 88]), o($Vp1, [2, 89]), o($Vp1, [2, 90]), o($Vp1, [2, 91]), o($Vp1, [2, 92]), o($Vp1, [2, 93]), { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 193], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, { 10: $Vx, 18: 194 }, { 10: [1, 195], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: [1, 196] }, { 10: [1, 197], 103: [1, 198] }, o($Vq1, [2, 121]), { 10: [1, 199], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: [1, 200], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 77: [1, 201] }, o($Vg1, [2, 102], { 10: [1, 202] }), o($Vg1, [2, 104], { 10: [1, 203] }), { 77: [1, 204] }, o($Vh1, [2, 177]), { 77: [1, 205], 95: [1, 206] }, o($VO, [2, 50], { 110: 109, 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), { 31: [1, 207], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($Vr1, [2, 79]), o($Vr1, [2, 81]), o($Vr1, [2, 82]), o($Vr1, [2, 146]), o($Vr1, [2, 147]), o($Vr1, [2, 148]), o($Vr1, [2, 149]), { 47: [1, 209], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 210, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 49: [1, 211], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 51: [1, 212], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 53: [1, 213], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 55: [1, 214], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 58: [1, 215] }, { 62: [1, 216], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 64: [1, 217], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 218, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 31: [1, 219], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 65: $Vi1, 67: [1, 220], 69: [1, 221], 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 65: $Vi1, 67: [1, 223], 69: [1, 222], 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VC, [2, 44], { 42: $Vf1 }), o($VS, [2, 70]), o($VS, [2, 69]), { 60: [1, 224], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VS, [2, 72]), o($Vo1, [2, 74]), { 30: 225, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($Ve1, $V4, { 5: 226 }), o($Vp1, [2, 95]), o($Vy, [2, 35]), { 41: 227, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 228, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 239, 101: [1, 240], 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 241, 101: [1, 242], 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 102: [1, 243] }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 244, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 42: $Vd, 45: 245, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o($Vg1, [2, 101]), { 77: [1, 246] }, { 77: [1, 247], 95: [1, 248] }, o($Vg1, [2, 109]), o($Vg1, [2, 111], { 10: [1, 249] }), o($Vg1, [2, 112]), o($VP, [2, 51]), o($Vr1, [2, 80]), o($VP, [2, 52]), { 49: [1, 250], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VP, [2, 59]), o($VP, [2, 54]), o($VP, [2, 55]), o($VP, [2, 56]), { 106: [1, 251] }, o($VP, [2, 58]), o($VP, [2, 60]), { 64: [1, 252], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VP, [2, 62]), o($VP, [2, 63]), o($VP, [2, 65]), o($VP, [2, 64]), o($VP, [2, 66]), o([10, 42, 58, 86, 99, 102, 103, 106, 108, 111, 112, 113], [2, 78]), { 31: [1, 253], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 254], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, o($VO, [2, 48]), o($Vg1, [2, 114], { 103: $VA1 }), o($VB1, [2, 123], { 105: 256, 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }), o($VC1, [2, 125]), o($VC1, [2, 127]), o($VC1, [2, 128]), o($VC1, [2, 129]), o($VC1, [2, 130]), o($VC1, [2, 131]), o($VC1, [2, 132]), o($VC1, [2, 133]), o($VC1, [2, 134]), o($Vg1, [2, 115], { 103: $VA1 }), { 10: [1, 257] }, o($Vg1, [2, 116], { 103: $VA1 }), { 10: [1, 258] }, o($Vq1, [2, 122]), o($Vg1, [2, 98], { 103: $VA1 }), o($Vg1, [2, 99], { 110: 109, 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), o($Vg1, [2, 103]), o($Vg1, [2, 105], { 10: [1, 259] }), o($Vg1, [2, 106]), { 95: [1, 260] }, { 49: [1, 261] }, { 60: [1, 262] }, { 64: [1, 263] }, { 8: $Vz, 9: $VA, 11: $VB, 21: 264 }, o($Vy, [2, 34]), { 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 104: 265, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, o($VC1, [2, 126]), { 14: $VD, 42: $VE, 58: $VF, 86: $VG, 98: 266, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, { 14: $VD, 42: $VE, 58: $VF, 86: $VG, 98: 267, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, { 95: [1, 268] }, o($Vg1, [2, 113]), o($VP, [2, 53]), { 30: 269, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VP, [2, 61]), o($Ve1, $V4, { 5: 270 }), o($VB1, [2, 124], { 105: 256, 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }), o($Vg1, [2, 119], { 117: 160, 10: [1, 271], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o($Vg1, [2, 120], { 117: 160, 10: [1, 272], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o($Vg1, [2, 107]), { 31: [1, 273], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 274], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 275, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 276, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, o($VP, [2, 57]), o($Vy, [2, 33]), o($Vg1, [2, 117], { 103: $VA1 }), o($Vg1, [2, 118], { 103: $VA1 })], + defaultActions: {}, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex2() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex2(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex2() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: {}, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + this.begin("acc_title"); + return 34; + case 1: + this.popState(); + return "acc_title_value"; + case 2: + this.begin("acc_descr"); + return 36; + case 3: + this.popState(); + return "acc_descr_value"; + case 4: + this.begin("acc_descr_multiline"); + break; + case 5: + this.popState(); + break; + case 6: + return "acc_descr_multiline_value"; + case 7: + this.begin("callbackname"); + break; + case 8: + this.popState(); + break; + case 9: + this.popState(); + this.begin("callbackargs"); + break; + case 10: + return 92; + case 11: + this.popState(); + break; + case 12: + return 93; + case 13: + return "MD_STR"; + case 14: + this.popState(); + break; + case 15: + this.begin("md_string"); + break; + case 16: + return "STR"; + case 17: + this.popState(); + break; + case 18: + this.pushState("string"); + break; + case 19: + return 81; + case 20: + return 99; + case 21: + return 82; + case 22: + return 101; + case 23: + return 83; + case 24: + return 84; + case 25: + return 94; + case 26: + this.begin("click"); + break; + case 27: + this.popState(); + break; + case 28: + return 85; + case 29: + if (yy.lex.firstGraph()) { + this.begin("dir"); + } + return 12; + case 30: + if (yy.lex.firstGraph()) { + this.begin("dir"); + } + return 12; + case 31: + if (yy.lex.firstGraph()) { + this.begin("dir"); + } + return 12; + case 32: + return 27; + case 33: + return 32; + case 34: + return 95; + case 35: + return 95; + case 36: + return 95; + case 37: + return 95; + case 38: + this.popState(); + return 13; + case 39: + this.popState(); + return 14; + case 40: + this.popState(); + return 14; + case 41: + this.popState(); + return 14; + case 42: + this.popState(); + return 14; + case 43: + this.popState(); + return 14; + case 44: + this.popState(); + return 14; + case 45: + this.popState(); + return 14; + case 46: + this.popState(); + return 14; + case 47: + this.popState(); + return 14; + case 48: + this.popState(); + return 14; + case 49: + return 118; + case 50: + return 119; + case 51: + return 120; + case 52: + return 121; + case 53: + return 102; + case 54: + return 108; + case 55: + return 44; + case 56: + return 58; + case 57: + return 42; + case 58: + return 8; + case 59: + return 103; + case 60: + return 112; + case 61: + this.popState(); + return 75; + case 62: + this.pushState("edgeText"); + return 73; + case 63: + return 116; + case 64: + this.popState(); + return 75; + case 65: + this.pushState("thickEdgeText"); + return 73; + case 66: + return 116; + case 67: + this.popState(); + return 75; + case 68: + this.pushState("dottedEdgeText"); + return 73; + case 69: + return 116; + case 70: + return 75; + case 71: + this.popState(); + return 51; + case 72: + return "TEXT"; + case 73: + this.pushState("ellipseText"); + return 50; + case 74: + this.popState(); + return 53; + case 75: + this.pushState("text"); + return 52; + case 76: + this.popState(); + return 55; + case 77: + this.pushState("text"); + return 54; + case 78: + return 56; + case 79: + this.pushState("text"); + return 65; + case 80: + this.popState(); + return 62; + case 81: + this.pushState("text"); + return 61; + case 82: + this.popState(); + return 47; + case 83: + this.pushState("text"); + return 46; + case 84: + this.popState(); + return 67; + case 85: + this.popState(); + return 69; + case 86: + return 114; + case 87: + this.pushState("trapText"); + return 66; + case 88: + this.pushState("trapText"); + return 68; + case 89: + return 115; + case 90: + return 65; + case 91: + return 87; + case 92: + return "SEP"; + case 93: + return 86; + case 94: + return 112; + case 95: + return 108; + case 96: + return 42; + case 97: + return 106; + case 98: + return 111; + case 99: + return 113; + case 100: + this.popState(); + return 60; + case 101: + this.pushState("text"); + return 60; + case 102: + this.popState(); + return 49; + case 103: + this.pushState("text"); + return 48; + case 104: + this.popState(); + return 31; + case 105: + this.pushState("text"); + return 29; + case 106: + this.popState(); + return 64; + case 107: + this.pushState("text"); + return 63; + case 108: + return "TEXT"; + case 109: + return "QUOTE"; + case 110: + return 9; + case 111: + return 10; + case 112: + return 11; + } + }, + rules: [/^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["][`])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:["])/, /^(?:style\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\b)/, /^(?:class\b)/, /^(?:href[\s])/, /^(?:click[\s]+)/, /^(?:[\s\n])/, /^(?:[^\s\n]*)/, /^(?:flowchart-elk\b)/, /^(?:graph\b)/, /^(?:flowchart\b)/, /^(?:subgraph\b)/, /^(?:end\b\s*)/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:(\r?\n)*\s*\n)/, /^(?:\s*LR\b)/, /^(?:\s*RL\b)/, /^(?:\s*TB\b)/, /^(?:\s*BT\b)/, /^(?:\s*TD\b)/, /^(?:\s*BR\b)/, /^(?:\s*<)/, /^(?:\s*>)/, /^(?:\s*\^)/, /^(?:\s*v\b)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::::)/, /^(?::)/, /^(?:&)/, /^(?:;)/, /^(?:,)/, /^(?:\*)/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?--\s*)/, /^(?:[^-]|-(?!-)+)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?==\s*)/, /^(?:[^=]|=(?!))/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?:\s*[xo<]?-\.\s*)/, /^(?:[^\.]|\.(?!))/, /^(?:\s*~~[\~]+\s*)/, /^(?:[-/\)][\)])/, /^(?:[^\(\)\[\]\{\}]|!\)+)/, /^(?:\(-)/, /^(?:\]\))/, /^(?:\(\[)/, /^(?:\]\])/, /^(?:\[\[)/, /^(?:\[\|)/, /^(?:>)/, /^(?:\)\])/, /^(?:\[\()/, /^(?:\)\)\))/, /^(?:\(\(\()/, /^(?:[\\(?=\])][\]])/, /^(?:\/(?=\])\])/, /^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/, /^(?:\[\/)/, /^(?:\[\\)/, /^(?:<)/, /^(?:>)/, /^(?:\^)/, /^(?:\\\|)/, /^(?:v\b)/, /^(?:\*)/, /^(?:#)/, /^(?:&)/, /^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/, /^(?:-)/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\|)/, /^(?:\|)/, /^(?:\))/, /^(?:\()/, /^(?:\])/, /^(?:\[)/, /^(?:(\}))/, /^(?:\{)/, /^(?:[^\[\]\(\)\{\}\|\"]+)/, /^(?:")/, /^(?:(\r?\n)+)/, /^(?:\s)/, /^(?:$)/], + conditions: { "callbackargs": { "rules": [11, 12, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "callbackname": { "rules": [8, 9, 10, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "href": { "rules": [15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "click": { "rules": [15, 18, 27, 28, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "dottedEdgeText": { "rules": [15, 18, 67, 69, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "thickEdgeText": { "rules": [15, 18, 64, 66, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "edgeText": { "rules": [15, 18, 61, 63, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "trapText": { "rules": [15, 18, 70, 73, 75, 77, 81, 83, 84, 85, 86, 87, 88, 101, 103, 105, 107], "inclusive": false }, "ellipseText": { "rules": [15, 18, 70, 71, 72, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "text": { "rules": [15, 18, 70, 73, 74, 75, 76, 77, 80, 81, 82, 83, 87, 88, 100, 101, 102, 103, 104, 105, 106, 107, 108], "inclusive": false }, "vertex": { "rules": [15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "dir": { "rules": [15, 18, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "acc_descr_multiline": { "rules": [5, 6, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "acc_descr": { "rules": [3, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "acc_title": { "rules": [1, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "md_string": { "rules": [13, 14, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "string": { "rules": [15, 16, 17, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 67, 68, 70, 73, 75, 77, 78, 79, 81, 83, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 105, 107, 109, 110, 111, 112], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +const MERMAID_DOM_ID_PREFIX = "flowchart-"; +let vertexCounter = 0; +let config = getConfig(); +let vertices = {}; +let edges = []; +let classes = {}; +let subGraphs = []; +let subGraphLookup = {}; +let tooltips = {}; +let subCount = 0; +let firstGraphFlag = true; +let direction; +let version; +let funs = []; +const sanitizeText = (txt) => common.sanitizeText(txt, config); +const lookUpDomId = function(id) { + const vertexKeys = Object.keys(vertices); + for (const vertexKey of vertexKeys) { + if (vertices[vertexKey].id === id) { + return vertices[vertexKey].domId; + } + } + return id; +}; +const addVertex = function(_id, textObj, type, style, classes2, dir, props = {}) { + let txt; + let id = _id; + if (id === void 0) { + return; + } + if (id.trim().length === 0) { + return; + } + if (vertices[id] === void 0) { + vertices[id] = { + id, + labelType: "text", + domId: MERMAID_DOM_ID_PREFIX + id + "-" + vertexCounter, + styles: [], + classes: [] + }; + } + vertexCounter++; + if (textObj !== void 0) { + config = getConfig(); + txt = sanitizeText(textObj.text.trim()); + vertices[id].labelType = textObj.type; + if (txt[0] === '"' && txt[txt.length - 1] === '"') { + txt = txt.substring(1, txt.length - 1); + } + vertices[id].text = txt; + } else { + if (vertices[id].text === void 0) { + vertices[id].text = _id; + } + } + if (type !== void 0) { + vertices[id].type = type; + } + if (style !== void 0 && style !== null) { + style.forEach(function(s) { + vertices[id].styles.push(s); + }); + } + if (classes2 !== void 0 && classes2 !== null) { + classes2.forEach(function(s) { + vertices[id].classes.push(s); + }); + } + if (dir !== void 0) { + vertices[id].dir = dir; + } + if (vertices[id].props === void 0) { + vertices[id].props = props; + } else if (props !== void 0) { + Object.assign(vertices[id].props, props); + } +}; +const addSingleLink = function(_start, _end, type) { + let start = _start; + let end = _end; + const edge = { start, end, type: void 0, text: "", labelType: "text" }; + log.info("abc78 Got edge...", edge); + const linkTextObj = type.text; + if (linkTextObj !== void 0) { + edge.text = sanitizeText(linkTextObj.text.trim()); + if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') { + edge.text = edge.text.substring(1, edge.text.length - 1); + } + edge.labelType = linkTextObj.type; + } + if (type !== void 0) { + edge.type = type.type; + edge.stroke = type.stroke; + edge.length = type.length; + } + if ((edge == null ? void 0 : edge.length) > 10) { + edge.length = 10; + } + if (edges.length < (config.maxEdges ?? 500)) { + log.info("abc78 pushing edge..."); + edges.push(edge); + } else { + throw new Error( + `Edge limit exceeded. ${edges.length} edges found, but the limit is ${config.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.` + ); + } +}; +const addLink = function(_start, _end, type) { + log.info("addLink (abc78)", _start, _end, type); + let i, j; + for (i = 0; i < _start.length; i++) { + for (j = 0; j < _end.length; j++) { + addSingleLink(_start[i], _end[j], type); + } + } +}; +const updateLinkInterpolate = function(positions, interp) { + positions.forEach(function(pos) { + if (pos === "default") { + edges.defaultInterpolate = interp; + } else { + edges[pos].interpolate = interp; + } + }); +}; +const updateLink = function(positions, style) { + positions.forEach(function(pos) { + if (pos >= edges.length) { + throw new Error( + `The index ${pos} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${edges.length - 1}. (Help: Ensure that the index is within the range of existing edges.)` + ); + } + if (pos === "default") { + edges.defaultStyle = style; + } else { + if (utils.isSubstringInArray("fill", style) === -1) { + style.push("fill:none"); + } + edges[pos].style = style; + } + }); +}; +const addClass = function(ids, style) { + ids.split(",").forEach(function(id) { + if (classes[id] === void 0) { + classes[id] = { id, styles: [], textStyles: [] }; + } + if (style !== void 0 && style !== null) { + style.forEach(function(s) { + if (s.match("color")) { + const newStyle = s.replace("fill", "bgFill").replace("color", "fill"); + classes[id].textStyles.push(newStyle); + } + classes[id].styles.push(s); + }); + } + }); +}; +const setDirection = function(dir) { + direction = dir; + if (direction.match(/.*/)) { + direction = "LR"; + } + if (direction.match(/.*v/)) { + direction = "TB"; + } + if (direction === "TD") { + direction = "TB"; + } +}; +const setClass = function(ids, className) { + ids.split(",").forEach(function(_id) { + let id = _id; + if (vertices[id] !== void 0) { + vertices[id].classes.push(className); + } + if (subGraphLookup[id] !== void 0) { + subGraphLookup[id].classes.push(className); + } + }); +}; +const setTooltip = function(ids, tooltip) { + ids.split(",").forEach(function(id) { + if (tooltip !== void 0) { + tooltips[version === "gen-1" ? lookUpDomId(id) : id] = sanitizeText(tooltip); + } + }); +}; +const setClickFun = function(id, functionName, functionArgs) { + let domId = lookUpDomId(id); + if (getConfig().securityLevel !== "loose") { + return; + } + if (functionName === void 0) { + return; + } + let argList = []; + if (typeof functionArgs === "string") { + argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/); + for (let i = 0; i < argList.length; i++) { + let item = argList[i].trim(); + if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') { + item = item.substr(1, item.length - 2); + } + argList[i] = item; + } + } + if (argList.length === 0) { + argList.push(id); + } + if (vertices[id] !== void 0) { + vertices[id].haveCallback = true; + funs.push(function() { + const elem = document.querySelector(`[id="${domId}"]`); + if (elem !== null) { + elem.addEventListener( + "click", + function() { + utils.runFunc(functionName, ...argList); + }, + false + ); + } + }); + } +}; +const setLink = function(ids, linkStr, target) { + ids.split(",").forEach(function(id) { + if (vertices[id] !== void 0) { + vertices[id].link = utils.formatUrl(linkStr, config); + vertices[id].linkTarget = target; + } + }); + setClass(ids, "clickable"); +}; +const getTooltip = function(id) { + if (tooltips.hasOwnProperty(id)) { + return tooltips[id]; + } + return void 0; +}; +const setClickEvent = function(ids, functionName, functionArgs) { + ids.split(",").forEach(function(id) { + setClickFun(id, functionName, functionArgs); + }); + setClass(ids, "clickable"); +}; +const bindFunctions = function(element) { + funs.forEach(function(fun) { + fun(element); + }); +}; +const getDirection = function() { + return direction.trim(); +}; +const getVertices = function() { + return vertices; +}; +const getEdges = function() { + return edges; +}; +const getClasses = function() { + return classes; +}; +const setupToolTips = function(element) { + let tooltipElem = d3select(".mermaidTooltip"); + if ((tooltipElem._groups || tooltipElem)[0][0] === null) { + tooltipElem = d3select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0); + } + const svg = d3select(element).select("svg"); + const nodes = svg.selectAll("g.node"); + nodes.on("mouseover", function() { + const el = d3select(this); + const title = el.attr("title"); + if (title === null) { + return; + } + const rect = this.getBoundingClientRect(); + tooltipElem.transition().duration(200).style("opacity", ".9"); + tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect.left + (rect.right - rect.left) / 2 + "px").style("top", window.scrollY + rect.bottom + "px"); + tooltipElem.html(tooltipElem.html().replace(/<br\/>/g, "
")); + el.classed("hover", true); + }).on("mouseout", function() { + tooltipElem.transition().duration(500).style("opacity", 0); + const el = d3select(this); + el.classed("hover", false); + }); +}; +funs.push(setupToolTips); +const clear = function(ver = "gen-1") { + vertices = {}; + classes = {}; + edges = []; + funs = [setupToolTips]; + subGraphs = []; + subGraphLookup = {}; + subCount = 0; + tooltips = {}; + firstGraphFlag = true; + version = ver; + config = getConfig(); + clear$1(); +}; +const setGen = (ver) => { + version = ver || "gen-2"; +}; +const defaultStyle = function() { + return "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"; +}; +const addSubGraph = function(_id, list, _title) { + let id = _id.text.trim(); + let title = _title.text; + if (_id === _title && _title.text.match(/\s/)) { + id = void 0; + } + function uniq(a) { + const prims = { boolean: {}, number: {}, string: {} }; + const objs = []; + let dir2; + const nodeList2 = a.filter(function(item) { + const type = typeof item; + if (item.stmt && item.stmt === "dir") { + dir2 = item.value; + return false; + } + if (item.trim() === "") { + return false; + } + if (type in prims) { + return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true; + } else { + return objs.includes(item) ? false : objs.push(item); + } + }); + return { nodeList: nodeList2, dir: dir2 }; + } + let nodeList = []; + const { nodeList: nl, dir } = uniq(nodeList.concat.apply(nodeList, list)); + nodeList = nl; + if (version === "gen-1") { + for (let i = 0; i < nodeList.length; i++) { + nodeList[i] = lookUpDomId(nodeList[i]); + } + } + id = id || "subGraph" + subCount; + title = title || ""; + title = sanitizeText(title); + subCount = subCount + 1; + const subGraph = { + id, + nodes: nodeList, + title: title.trim(), + classes: [], + dir, + labelType: _title.type + }; + log.info("Adding", subGraph.id, subGraph.nodes, subGraph.dir); + subGraph.nodes = makeUniq(subGraph, subGraphs).nodes; + subGraphs.push(subGraph); + subGraphLookup[id] = subGraph; + return id; +}; +const getPosForId = function(id) { + for (const [i, subGraph] of subGraphs.entries()) { + if (subGraph.id === id) { + return i; + } + } + return -1; +}; +let secCount = -1; +const posCrossRef = []; +const indexNodes2 = function(id, pos) { + const nodes = subGraphs[pos].nodes; + secCount = secCount + 1; + if (secCount > 2e3) { + return; + } + posCrossRef[secCount] = pos; + if (subGraphs[pos].id === id) { + return { + result: true, + count: 0 + }; + } + let count = 0; + let posCount = 1; + while (count < nodes.length) { + const childPos = getPosForId(nodes[count]); + if (childPos >= 0) { + const res = indexNodes2(id, childPos); + if (res.result) { + return { + result: true, + count: posCount + res.count + }; + } else { + posCount = posCount + res.count; + } + } + count = count + 1; + } + return { + result: false, + count: posCount + }; +}; +const getDepthFirstPos = function(pos) { + return posCrossRef[pos]; +}; +const indexNodes = function() { + secCount = -1; + if (subGraphs.length > 0) { + indexNodes2("none", subGraphs.length - 1); + } +}; +const getSubGraphs = function() { + return subGraphs; +}; +const firstGraph = () => { + if (firstGraphFlag) { + firstGraphFlag = false; + return true; + } + return false; +}; +const destructStartLink = (_str) => { + let str = _str.trim(); + let type = "arrow_open"; + switch (str[0]) { + case "<": + type = "arrow_point"; + str = str.slice(1); + break; + case "x": + type = "arrow_cross"; + str = str.slice(1); + break; + case "o": + type = "arrow_circle"; + str = str.slice(1); + break; + } + let stroke = "normal"; + if (str.includes("=")) { + stroke = "thick"; + } + if (str.includes(".")) { + stroke = "dotted"; + } + return { type, stroke }; +}; +const countChar = (char, str) => { + const length = str.length; + let count = 0; + for (let i = 0; i < length; ++i) { + if (str[i] === char) { + ++count; + } + } + return count; +}; +const destructEndLink = (_str) => { + const str = _str.trim(); + let line = str.slice(0, -1); + let type = "arrow_open"; + switch (str.slice(-1)) { + case "x": + type = "arrow_cross"; + if (str[0] === "x") { + type = "double_" + type; + line = line.slice(1); + } + break; + case ">": + type = "arrow_point"; + if (str[0] === "<") { + type = "double_" + type; + line = line.slice(1); + } + break; + case "o": + type = "arrow_circle"; + if (str[0] === "o") { + type = "double_" + type; + line = line.slice(1); + } + break; + } + let stroke = "normal"; + let length = line.length - 1; + if (line[0] === "=") { + stroke = "thick"; + } + if (line[0] === "~") { + stroke = "invisible"; + } + let dots = countChar(".", line); + if (dots) { + stroke = "dotted"; + length = dots; + } + return { type, stroke, length }; +}; +const destructLink = (_str, _startStr) => { + const info = destructEndLink(_str); + let startInfo; + if (_startStr) { + startInfo = destructStartLink(_startStr); + if (startInfo.stroke !== info.stroke) { + return { type: "INVALID", stroke: "INVALID" }; + } + if (startInfo.type === "arrow_open") { + startInfo.type = info.type; + } else { + if (startInfo.type !== info.type) { + return { type: "INVALID", stroke: "INVALID" }; + } + startInfo.type = "double_" + startInfo.type; + } + if (startInfo.type === "double_arrow") { + startInfo.type = "double_arrow_point"; + } + startInfo.length = info.length; + return startInfo; + } + return info; +}; +const exists = (allSgs, _id) => { + let res = false; + allSgs.forEach((sg) => { + const pos = sg.nodes.indexOf(_id); + if (pos >= 0) { + res = true; + } + }); + return res; +}; +const makeUniq = (sg, allSubgraphs) => { + const res = []; + sg.nodes.forEach((_id, pos) => { + if (!exists(allSubgraphs, _id)) { + res.push(sg.nodes[pos]); + } + }); + return { nodes: res }; +}; +const lex = { + firstGraph +}; +const flowDb = { + defaultConfig: () => defaultConfig.flowchart, + setAccTitle, + getAccTitle, + getAccDescription, + setAccDescription, + addVertex, + lookUpDomId, + addLink, + updateLinkInterpolate, + updateLink, + addClass, + setDirection, + setClass, + setTooltip, + getTooltip, + setClickEvent, + setLink, + bindFunctions, + getDirection, + getVertices, + getEdges, + getClasses, + clear, + setGen, + defaultStyle, + addSubGraph, + getDepthFirstPos, + indexNodes, + getSubGraphs, + destructLink, + lex, + exists, + makeUniq, + setDiagramTitle, + getDiagramTitle +}; +const db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + addClass, + addLink, + addSingleLink, + addSubGraph, + addVertex, + bindFunctions, + clear, + default: flowDb, + defaultStyle, + destructLink, + firstGraph, + getClasses, + getDepthFirstPos, + getDirection, + getEdges, + getSubGraphs, + getTooltip, + getVertices, + indexNodes, + lex, + lookUpDomId, + setClass, + setClickEvent, + setDirection, + setGen, + setLink, + updateLink, + updateLinkInterpolate +}, Symbol.toStringTag, { value: "Module" })); +export { + db as d, + flowDb as f, + parser$1 as p +}; diff --git a/assets/lib/mermaid/flowDb-c1833063.js b/assets/lib/mermaid/flowDb-c1833063.js new file mode 100644 index 000000000..0c960f214 --- /dev/null +++ b/assets/lib/mermaid/flowDb-c1833063.js @@ -0,0 +1,1714 @@ +import { select } from "d3"; +import { K as defaultConfig, s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, q as setDiagramTitle, t as getDiagramTitle, c as getConfig, l as log, u as utils, v as clear$1, e as common } from "./mermaid-6dc72991.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 4], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 8, 9, 10, 11, 27, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], $V4 = [2, 2], $V5 = [1, 13], $V6 = [1, 14], $V7 = [1, 15], $V8 = [1, 16], $V9 = [1, 23], $Va = [1, 25], $Vb = [1, 26], $Vc = [1, 27], $Vd = [1, 49], $Ve = [1, 48], $Vf = [1, 29], $Vg = [1, 30], $Vh = [1, 31], $Vi = [1, 32], $Vj = [1, 33], $Vk = [1, 44], $Vl = [1, 46], $Vm = [1, 42], $Vn = [1, 47], $Vo = [1, 43], $Vp = [1, 50], $Vq = [1, 45], $Vr = [1, 51], $Vs = [1, 52], $Vt = [1, 34], $Vu = [1, 35], $Vv = [1, 36], $Vw = [1, 37], $Vx = [1, 57], $Vy = [1, 8, 9, 10, 11, 27, 32, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], $Vz = [1, 61], $VA = [1, 60], $VB = [1, 62], $VC = [8, 9, 11, 73, 75], $VD = [1, 88], $VE = [1, 93], $VF = [1, 92], $VG = [1, 89], $VH = [1, 85], $VI = [1, 91], $VJ = [1, 87], $VK = [1, 94], $VL = [1, 90], $VM = [1, 95], $VN = [1, 86], $VO = [8, 9, 10, 11, 73, 75], $VP = [8, 9, 10, 11, 44, 73, 75], $VQ = [8, 9, 10, 11, 29, 42, 44, 46, 48, 50, 52, 54, 56, 58, 61, 63, 65, 66, 68, 73, 75, 86, 99, 102, 103, 106, 108, 111, 112, 113], $VR = [8, 9, 11, 42, 58, 73, 75, 86, 99, 102, 103, 106, 108, 111, 112, 113], $VS = [42, 58, 86, 99, 102, 103, 106, 108, 111, 112, 113], $VT = [1, 121], $VU = [1, 120], $VV = [1, 128], $VW = [1, 142], $VX = [1, 143], $VY = [1, 144], $VZ = [1, 145], $V_ = [1, 130], $V$ = [1, 132], $V01 = [1, 136], $V11 = [1, 137], $V21 = [1, 138], $V31 = [1, 139], $V41 = [1, 140], $V51 = [1, 141], $V61 = [1, 146], $V71 = [1, 147], $V81 = [1, 126], $V91 = [1, 127], $Va1 = [1, 134], $Vb1 = [1, 129], $Vc1 = [1, 133], $Vd1 = [1, 131], $Ve1 = [8, 9, 10, 11, 27, 32, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], $Vf1 = [1, 149], $Vg1 = [8, 9, 11], $Vh1 = [8, 9, 10, 11, 14, 42, 58, 86, 102, 103, 106, 108, 111, 112, 113], $Vi1 = [1, 169], $Vj1 = [1, 165], $Vk1 = [1, 166], $Vl1 = [1, 170], $Vm1 = [1, 167], $Vn1 = [1, 168], $Vo1 = [75, 113, 116], $Vp1 = [8, 9, 10, 11, 12, 14, 27, 29, 32, 42, 58, 73, 81, 82, 83, 84, 85, 86, 87, 102, 106, 108, 111, 112, 113], $Vq1 = [10, 103], $Vr1 = [31, 47, 49, 51, 53, 55, 60, 62, 64, 65, 67, 69, 113, 114, 115], $Vs1 = [1, 235], $Vt1 = [1, 233], $Vu1 = [1, 237], $Vv1 = [1, 231], $Vw1 = [1, 232], $Vx1 = [1, 234], $Vy1 = [1, 236], $Vz1 = [1, 238], $VA1 = [1, 255], $VB1 = [8, 9, 11, 103], $VC1 = [8, 9, 10, 11, 58, 81, 102, 103, 106, 107, 108, 109]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "graphConfig": 4, "document": 5, "line": 6, "statement": 7, "SEMI": 8, "NEWLINE": 9, "SPACE": 10, "EOF": 11, "GRAPH": 12, "NODIR": 13, "DIR": 14, "FirstStmtSeparator": 15, "ending": 16, "endToken": 17, "spaceList": 18, "spaceListNewline": 19, "vertexStatement": 20, "separator": 21, "styleStatement": 22, "linkStyleStatement": 23, "classDefStatement": 24, "classStatement": 25, "clickStatement": 26, "subgraph": 27, "textNoTags": 28, "SQS": 29, "text": 30, "SQE": 31, "end": 32, "direction": 33, "acc_title": 34, "acc_title_value": 35, "acc_descr": 36, "acc_descr_value": 37, "acc_descr_multiline_value": 38, "link": 39, "node": 40, "styledVertex": 41, "AMP": 42, "vertex": 43, "STYLE_SEPARATOR": 44, "idString": 45, "DOUBLECIRCLESTART": 46, "DOUBLECIRCLEEND": 47, "PS": 48, "PE": 49, "(-": 50, "-)": 51, "STADIUMSTART": 52, "STADIUMEND": 53, "SUBROUTINESTART": 54, "SUBROUTINEEND": 55, "VERTEX_WITH_PROPS_START": 56, "NODE_STRING[field]": 57, "COLON": 58, "NODE_STRING[value]": 59, "PIPE": 60, "CYLINDERSTART": 61, "CYLINDEREND": 62, "DIAMOND_START": 63, "DIAMOND_STOP": 64, "TAGEND": 65, "TRAPSTART": 66, "TRAPEND": 67, "INVTRAPSTART": 68, "INVTRAPEND": 69, "linkStatement": 70, "arrowText": 71, "TESTSTR": 72, "START_LINK": 73, "edgeText": 74, "LINK": 75, "edgeTextToken": 76, "STR": 77, "MD_STR": 78, "textToken": 79, "keywords": 80, "STYLE": 81, "LINKSTYLE": 82, "CLASSDEF": 83, "CLASS": 84, "CLICK": 85, "DOWN": 86, "UP": 87, "textNoTagsToken": 88, "stylesOpt": 89, "idString[vertex]": 90, "idString[class]": 91, "CALLBACKNAME": 92, "CALLBACKARGS": 93, "HREF": 94, "LINK_TARGET": 95, "STR[link]": 96, "STR[tooltip]": 97, "alphaNum": 98, "DEFAULT": 99, "numList": 100, "INTERPOLATE": 101, "NUM": 102, "COMMA": 103, "style": 104, "styleComponent": 105, "NODE_STRING": 106, "UNIT": 107, "BRKT": 108, "PCT": 109, "idStringToken": 110, "MINUS": 111, "MULT": 112, "UNICODE_TEXT": 113, "TEXT": 114, "TAGSTART": 115, "EDGE_TEXT": 116, "alphaNumToken": 117, "direction_tb": 118, "direction_bt": 119, "direction_rl": 120, "direction_lr": 121, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 8: "SEMI", 9: "NEWLINE", 10: "SPACE", 11: "EOF", 12: "GRAPH", 13: "NODIR", 14: "DIR", 27: "subgraph", 29: "SQS", 31: "SQE", 32: "end", 34: "acc_title", 35: "acc_title_value", 36: "acc_descr", 37: "acc_descr_value", 38: "acc_descr_multiline_value", 42: "AMP", 44: "STYLE_SEPARATOR", 46: "DOUBLECIRCLESTART", 47: "DOUBLECIRCLEEND", 48: "PS", 49: "PE", 50: "(-", 51: "-)", 52: "STADIUMSTART", 53: "STADIUMEND", 54: "SUBROUTINESTART", 55: "SUBROUTINEEND", 56: "VERTEX_WITH_PROPS_START", 57: "NODE_STRING[field]", 58: "COLON", 59: "NODE_STRING[value]", 60: "PIPE", 61: "CYLINDERSTART", 62: "CYLINDEREND", 63: "DIAMOND_START", 64: "DIAMOND_STOP", 65: "TAGEND", 66: "TRAPSTART", 67: "TRAPEND", 68: "INVTRAPSTART", 69: "INVTRAPEND", 72: "TESTSTR", 73: "START_LINK", 75: "LINK", 77: "STR", 78: "MD_STR", 81: "STYLE", 82: "LINKSTYLE", 83: "CLASSDEF", 84: "CLASS", 85: "CLICK", 86: "DOWN", 87: "UP", 90: "idString[vertex]", 91: "idString[class]", 92: "CALLBACKNAME", 93: "CALLBACKARGS", 94: "HREF", 95: "LINK_TARGET", 96: "STR[link]", 97: "STR[tooltip]", 99: "DEFAULT", 101: "INTERPOLATE", 102: "NUM", 103: "COMMA", 106: "NODE_STRING", 107: "UNIT", 108: "BRKT", 109: "PCT", 111: "MINUS", 112: "MULT", 113: "UNICODE_TEXT", 114: "TEXT", 115: "TAGSTART", 116: "EDGE_TEXT", 118: "direction_tb", 119: "direction_bt", 120: "direction_rl", 121: "direction_lr" }, + productions_: [0, [3, 2], [5, 0], [5, 2], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [4, 2], [4, 2], [4, 2], [4, 3], [16, 2], [16, 1], [17, 1], [17, 1], [17, 1], [15, 1], [15, 1], [15, 2], [19, 2], [19, 2], [19, 1], [19, 1], [18, 2], [18, 1], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 9], [7, 6], [7, 4], [7, 1], [7, 2], [7, 2], [7, 1], [21, 1], [21, 1], [21, 1], [20, 3], [20, 4], [20, 2], [20, 1], [40, 1], [40, 5], [41, 1], [41, 3], [43, 4], [43, 4], [43, 6], [43, 4], [43, 4], [43, 4], [43, 8], [43, 4], [43, 4], [43, 4], [43, 6], [43, 4], [43, 4], [43, 4], [43, 4], [43, 4], [43, 1], [39, 2], [39, 3], [39, 3], [39, 1], [39, 3], [74, 1], [74, 2], [74, 1], [74, 1], [70, 1], [71, 3], [30, 1], [30, 2], [30, 1], [30, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [28, 1], [28, 2], [28, 1], [28, 1], [24, 5], [25, 5], [26, 2], [26, 4], [26, 3], [26, 5], [26, 3], [26, 5], [26, 5], [26, 7], [26, 2], [26, 4], [26, 2], [26, 4], [26, 4], [26, 6], [22, 5], [23, 5], [23, 5], [23, 9], [23, 9], [23, 7], [23, 7], [100, 1], [100, 3], [89, 1], [89, 3], [104, 1], [104, 2], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [79, 1], [79, 1], [79, 1], [79, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [76, 1], [76, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [45, 1], [45, 2], [98, 1], [98, 2], [33, 1], [33, 1], [33, 1], [33, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 2: + this.$ = []; + break; + case 3: + if (!Array.isArray($$[$0]) || $$[$0].length > 0) { + $$[$0 - 1].push($$[$0]); + } + this.$ = $$[$0 - 1]; + break; + case 4: + case 176: + this.$ = $$[$0]; + break; + case 11: + yy.setDirection("TB"); + this.$ = "TB"; + break; + case 12: + yy.setDirection($$[$0 - 1]); + this.$ = $$[$0 - 1]; + break; + case 27: + this.$ = $$[$0 - 1].nodes; + break; + case 28: + case 29: + case 30: + case 31: + case 32: + this.$ = []; + break; + case 33: + this.$ = yy.addSubGraph($$[$0 - 6], $$[$0 - 1], $$[$0 - 4]); + break; + case 34: + this.$ = yy.addSubGraph($$[$0 - 3], $$[$0 - 1], $$[$0 - 3]); + break; + case 35: + this.$ = yy.addSubGraph(void 0, $$[$0 - 1], void 0); + break; + case 37: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 38: + case 39: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 43: + yy.addLink($$[$0 - 2].stmt, $$[$0], $$[$0 - 1]); + this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0 - 2].nodes) }; + break; + case 44: + yy.addLink($$[$0 - 3].stmt, $$[$0 - 1], $$[$0 - 2]); + this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1].concat($$[$0 - 3].nodes) }; + break; + case 45: + this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1] }; + break; + case 46: + this.$ = { stmt: $$[$0], nodes: $$[$0] }; + break; + case 47: + this.$ = [$$[$0]]; + break; + case 48: + this.$ = $$[$0 - 4].concat($$[$0]); + break; + case 49: + this.$ = $$[$0]; + break; + case 50: + this.$ = $$[$0 - 2]; + yy.setClass($$[$0 - 2], $$[$0]); + break; + case 51: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "square"); + break; + case 52: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "doublecircle"); + break; + case 53: + this.$ = $$[$0 - 5]; + yy.addVertex($$[$0 - 5], $$[$0 - 2], "circle"); + break; + case 54: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "ellipse"); + break; + case 55: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "stadium"); + break; + case 56: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "subroutine"); + break; + case 57: + this.$ = $$[$0 - 7]; + yy.addVertex($$[$0 - 7], $$[$0 - 1], "rect", void 0, void 0, void 0, Object.fromEntries([[$$[$0 - 5], $$[$0 - 3]]])); + break; + case 58: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "cylinder"); + break; + case 59: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "round"); + break; + case 60: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "diamond"); + break; + case 61: + this.$ = $$[$0 - 5]; + yy.addVertex($$[$0 - 5], $$[$0 - 2], "hexagon"); + break; + case 62: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "odd"); + break; + case 63: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "trapezoid"); + break; + case 64: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "inv_trapezoid"); + break; + case 65: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_right"); + break; + case 66: + this.$ = $$[$0 - 3]; + yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_left"); + break; + case 67: + this.$ = $$[$0]; + yy.addVertex($$[$0]); + break; + case 68: + $$[$0 - 1].text = $$[$0]; + this.$ = $$[$0 - 1]; + break; + case 69: + case 70: + $$[$0 - 2].text = $$[$0 - 1]; + this.$ = $$[$0 - 2]; + break; + case 71: + this.$ = $$[$0]; + break; + case 72: + var inf = yy.destructLink($$[$0], $$[$0 - 2]); + this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length, "text": $$[$0 - 1] }; + break; + case 73: + this.$ = { text: $$[$0], type: "text" }; + break; + case 74: + this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type }; + break; + case 75: + this.$ = { text: $$[$0], type: "string" }; + break; + case 76: + this.$ = { text: $$[$0], type: "markdown" }; + break; + case 77: + var inf = yy.destructLink($$[$0]); + this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length }; + break; + case 78: + this.$ = $$[$0 - 1]; + break; + case 79: + this.$ = { text: $$[$0], type: "text" }; + break; + case 80: + this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type }; + break; + case 81: + this.$ = { text: $$[$0], type: "string" }; + break; + case 82: + case 97: + this.$ = { text: $$[$0], type: "markdown" }; + break; + case 94: + this.$ = { text: $$[$0], type: "text" }; + break; + case 95: + this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type }; + break; + case 96: + this.$ = { text: $$[$0], type: "text" }; + break; + case 98: + this.$ = $$[$0 - 4]; + yy.addClass($$[$0 - 2], $$[$0]); + break; + case 99: + this.$ = $$[$0 - 4]; + yy.setClass($$[$0 - 2], $$[$0]); + break; + case 100: + case 108: + this.$ = $$[$0 - 1]; + yy.setClickEvent($$[$0 - 1], $$[$0]); + break; + case 101: + case 109: + this.$ = $$[$0 - 3]; + yy.setClickEvent($$[$0 - 3], $$[$0 - 2]); + yy.setTooltip($$[$0 - 3], $$[$0]); + break; + case 102: + this.$ = $$[$0 - 2]; + yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]); + break; + case 103: + this.$ = $$[$0 - 4]; + yy.setClickEvent($$[$0 - 4], $$[$0 - 3], $$[$0 - 2]); + yy.setTooltip($$[$0 - 4], $$[$0]); + break; + case 104: + this.$ = $$[$0 - 2]; + yy.setLink($$[$0 - 2], $$[$0]); + break; + case 105: + this.$ = $$[$0 - 4]; + yy.setLink($$[$0 - 4], $$[$0 - 2]); + yy.setTooltip($$[$0 - 4], $$[$0]); + break; + case 106: + this.$ = $$[$0 - 4]; + yy.setLink($$[$0 - 4], $$[$0 - 2], $$[$0]); + break; + case 107: + this.$ = $$[$0 - 6]; + yy.setLink($$[$0 - 6], $$[$0 - 4], $$[$0]); + yy.setTooltip($$[$0 - 6], $$[$0 - 2]); + break; + case 110: + this.$ = $$[$0 - 1]; + yy.setLink($$[$0 - 1], $$[$0]); + break; + case 111: + this.$ = $$[$0 - 3]; + yy.setLink($$[$0 - 3], $$[$0 - 2]); + yy.setTooltip($$[$0 - 3], $$[$0]); + break; + case 112: + this.$ = $$[$0 - 3]; + yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]); + break; + case 113: + this.$ = $$[$0 - 5]; + yy.setLink($$[$0 - 5], $$[$0 - 4], $$[$0]); + yy.setTooltip($$[$0 - 5], $$[$0 - 2]); + break; + case 114: + this.$ = $$[$0 - 4]; + yy.addVertex($$[$0 - 2], void 0, void 0, $$[$0]); + break; + case 115: + this.$ = $$[$0 - 4]; + yy.updateLink([$$[$0 - 2]], $$[$0]); + break; + case 116: + this.$ = $$[$0 - 4]; + yy.updateLink($$[$0 - 2], $$[$0]); + break; + case 117: + this.$ = $$[$0 - 8]; + yy.updateLinkInterpolate([$$[$0 - 6]], $$[$0 - 2]); + yy.updateLink([$$[$0 - 6]], $$[$0]); + break; + case 118: + this.$ = $$[$0 - 8]; + yy.updateLinkInterpolate($$[$0 - 6], $$[$0 - 2]); + yy.updateLink($$[$0 - 6], $$[$0]); + break; + case 119: + this.$ = $$[$0 - 6]; + yy.updateLinkInterpolate([$$[$0 - 4]], $$[$0]); + break; + case 120: + this.$ = $$[$0 - 6]; + yy.updateLinkInterpolate($$[$0 - 4], $$[$0]); + break; + case 121: + case 123: + this.$ = [$$[$0]]; + break; + case 122: + case 124: + $$[$0 - 2].push($$[$0]); + this.$ = $$[$0 - 2]; + break; + case 126: + this.$ = $$[$0 - 1] + $$[$0]; + break; + case 174: + this.$ = $$[$0]; + break; + case 175: + this.$ = $$[$0 - 1] + "" + $$[$0]; + break; + case 177: + this.$ = $$[$0 - 1] + "" + $$[$0]; + break; + case 178: + this.$ = { stmt: "dir", value: "TB" }; + break; + case 179: + this.$ = { stmt: "dir", value: "BT" }; + break; + case 180: + this.$ = { stmt: "dir", value: "RL" }; + break; + case 181: + this.$ = { stmt: "dir", value: "LR" }; + break; + } + }, + table: [{ 3: 1, 4: 2, 9: $V0, 10: $V1, 12: $V2 }, { 1: [3] }, o($V3, $V4, { 5: 6 }), { 4: 7, 9: $V0, 10: $V1, 12: $V2 }, { 4: 8, 9: $V0, 10: $V1, 12: $V2 }, { 13: [1, 9], 14: [1, 10] }, { 1: [2, 1], 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, o($V3, [2, 9]), o($V3, [2, 10]), o($V3, [2, 11]), { 8: [1, 54], 9: [1, 55], 10: $Vx, 15: 53, 18: 56 }, o($Vy, [2, 3]), o($Vy, [2, 4]), o($Vy, [2, 5]), o($Vy, [2, 6]), o($Vy, [2, 7]), o($Vy, [2, 8]), { 8: $Vz, 9: $VA, 11: $VB, 21: 58, 39: 59, 70: 63, 73: [1, 64], 75: [1, 65] }, { 8: $Vz, 9: $VA, 11: $VB, 21: 66 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 67 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 68 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 69 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 70 }, { 8: $Vz, 9: $VA, 10: [1, 71], 11: $VB, 21: 72 }, o($Vy, [2, 36]), { 35: [1, 73] }, { 37: [1, 74] }, o($Vy, [2, 39]), o($VC, [2, 46], { 18: 75, 10: $Vx }), { 10: [1, 76] }, { 10: [1, 77] }, { 10: [1, 78] }, { 10: [1, 79] }, { 14: $VD, 42: $VE, 58: $VF, 77: [1, 83], 86: $VG, 92: [1, 80], 94: [1, 81], 98: 82, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, o($Vy, [2, 178]), o($Vy, [2, 179]), o($Vy, [2, 180]), o($Vy, [2, 181]), o($VO, [2, 47]), o($VO, [2, 49], { 44: [1, 96] }), o($VP, [2, 67], { 110: 109, 29: [1, 97], 42: $Vd, 46: [1, 98], 48: [1, 99], 50: [1, 100], 52: [1, 101], 54: [1, 102], 56: [1, 103], 58: $Ve, 61: [1, 104], 63: [1, 105], 65: [1, 106], 66: [1, 107], 68: [1, 108], 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), o($VQ, [2, 174]), o($VQ, [2, 135]), o($VQ, [2, 136]), o($VQ, [2, 137]), o($VQ, [2, 138]), o($VQ, [2, 139]), o($VQ, [2, 140]), o($VQ, [2, 141]), o($VQ, [2, 142]), o($VQ, [2, 143]), o($VQ, [2, 144]), o($VQ, [2, 145]), o($V3, [2, 12]), o($V3, [2, 18]), o($V3, [2, 19]), { 9: [1, 110] }, o($VR, [2, 26], { 18: 111, 10: $Vx }), o($Vy, [2, 27]), { 40: 112, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o($Vy, [2, 40]), o($Vy, [2, 41]), o($Vy, [2, 42]), o($VS, [2, 71], { 71: 113, 60: [1, 115], 72: [1, 114] }), { 74: 116, 76: 117, 77: [1, 118], 78: [1, 119], 113: $VT, 116: $VU }, o([42, 58, 60, 72, 86, 99, 102, 103, 106, 108, 111, 112, 113], [2, 77]), o($Vy, [2, 28]), o($Vy, [2, 29]), o($Vy, [2, 30]), o($Vy, [2, 31]), o($Vy, [2, 32]), { 10: $VV, 12: $VW, 14: $VX, 27: $VY, 28: 122, 32: $VZ, 42: $V_, 58: $V$, 73: $V01, 77: [1, 124], 78: [1, 125], 80: 135, 81: $V11, 82: $V21, 83: $V31, 84: $V41, 85: $V51, 86: $V61, 87: $V71, 88: 123, 102: $V81, 106: $V91, 108: $Va1, 111: $Vb1, 112: $Vc1, 113: $Vd1 }, o($Ve1, $V4, { 5: 148 }), o($Vy, [2, 37]), o($Vy, [2, 38]), o($VC, [2, 45], { 42: $Vf1 }), { 42: $Vd, 45: 150, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 99: [1, 151], 100: 152, 102: [1, 153] }, { 42: $Vd, 45: 154, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 42: $Vd, 45: 155, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o($Vg1, [2, 100], { 10: [1, 156], 93: [1, 157] }), { 77: [1, 158] }, o($Vg1, [2, 108], { 117: 160, 10: [1, 159], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o($Vg1, [2, 110], { 10: [1, 161] }), o($Vh1, [2, 176]), o($Vh1, [2, 163]), o($Vh1, [2, 164]), o($Vh1, [2, 165]), o($Vh1, [2, 166]), o($Vh1, [2, 167]), o($Vh1, [2, 168]), o($Vh1, [2, 169]), o($Vh1, [2, 170]), o($Vh1, [2, 171]), o($Vh1, [2, 172]), o($Vh1, [2, 173]), { 42: $Vd, 45: 162, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 30: 163, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 171, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 173, 48: [1, 172], 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 174, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 175, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 176, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 106: [1, 177] }, { 30: 178, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 179, 63: [1, 180], 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 181, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 182, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 183, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VQ, [2, 175]), o($V3, [2, 20]), o($VR, [2, 25]), o($VC, [2, 43], { 18: 184, 10: $Vx }), o($VS, [2, 68], { 10: [1, 185] }), { 10: [1, 186] }, { 30: 187, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 75: [1, 188], 76: 189, 113: $VT, 116: $VU }, o($Vo1, [2, 73]), o($Vo1, [2, 75]), o($Vo1, [2, 76]), o($Vo1, [2, 161]), o($Vo1, [2, 162]), { 8: $Vz, 9: $VA, 10: $VV, 11: $VB, 12: $VW, 14: $VX, 21: 191, 27: $VY, 29: [1, 190], 32: $VZ, 42: $V_, 58: $V$, 73: $V01, 80: 135, 81: $V11, 82: $V21, 83: $V31, 84: $V41, 85: $V51, 86: $V61, 87: $V71, 88: 192, 102: $V81, 106: $V91, 108: $Va1, 111: $Vb1, 112: $Vc1, 113: $Vd1 }, o($Vp1, [2, 94]), o($Vp1, [2, 96]), o($Vp1, [2, 97]), o($Vp1, [2, 150]), o($Vp1, [2, 151]), o($Vp1, [2, 152]), o($Vp1, [2, 153]), o($Vp1, [2, 154]), o($Vp1, [2, 155]), o($Vp1, [2, 156]), o($Vp1, [2, 157]), o($Vp1, [2, 158]), o($Vp1, [2, 159]), o($Vp1, [2, 160]), o($Vp1, [2, 83]), o($Vp1, [2, 84]), o($Vp1, [2, 85]), o($Vp1, [2, 86]), o($Vp1, [2, 87]), o($Vp1, [2, 88]), o($Vp1, [2, 89]), o($Vp1, [2, 90]), o($Vp1, [2, 91]), o($Vp1, [2, 92]), o($Vp1, [2, 93]), { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 193], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, { 10: $Vx, 18: 194 }, { 10: [1, 195], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: [1, 196] }, { 10: [1, 197], 103: [1, 198] }, o($Vq1, [2, 121]), { 10: [1, 199], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: [1, 200], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 77: [1, 201] }, o($Vg1, [2, 102], { 10: [1, 202] }), o($Vg1, [2, 104], { 10: [1, 203] }), { 77: [1, 204] }, o($Vh1, [2, 177]), { 77: [1, 205], 95: [1, 206] }, o($VO, [2, 50], { 110: 109, 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), { 31: [1, 207], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($Vr1, [2, 79]), o($Vr1, [2, 81]), o($Vr1, [2, 82]), o($Vr1, [2, 146]), o($Vr1, [2, 147]), o($Vr1, [2, 148]), o($Vr1, [2, 149]), { 47: [1, 209], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 210, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 49: [1, 211], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 51: [1, 212], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 53: [1, 213], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 55: [1, 214], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 58: [1, 215] }, { 62: [1, 216], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 64: [1, 217], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 218, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 31: [1, 219], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 65: $Vi1, 67: [1, 220], 69: [1, 221], 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 65: $Vi1, 67: [1, 223], 69: [1, 222], 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VC, [2, 44], { 42: $Vf1 }), o($VS, [2, 70]), o($VS, [2, 69]), { 60: [1, 224], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VS, [2, 72]), o($Vo1, [2, 74]), { 30: 225, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($Ve1, $V4, { 5: 226 }), o($Vp1, [2, 95]), o($Vy, [2, 35]), { 41: 227, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 228, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 239, 101: [1, 240], 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 241, 101: [1, 242], 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 102: [1, 243] }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 244, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 42: $Vd, 45: 245, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o($Vg1, [2, 101]), { 77: [1, 246] }, { 77: [1, 247], 95: [1, 248] }, o($Vg1, [2, 109]), o($Vg1, [2, 111], { 10: [1, 249] }), o($Vg1, [2, 112]), o($VP, [2, 51]), o($Vr1, [2, 80]), o($VP, [2, 52]), { 49: [1, 250], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VP, [2, 59]), o($VP, [2, 54]), o($VP, [2, 55]), o($VP, [2, 56]), { 106: [1, 251] }, o($VP, [2, 58]), o($VP, [2, 60]), { 64: [1, 252], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VP, [2, 62]), o($VP, [2, 63]), o($VP, [2, 65]), o($VP, [2, 64]), o($VP, [2, 66]), o([10, 42, 58, 86, 99, 102, 103, 106, 108, 111, 112, 113], [2, 78]), { 31: [1, 253], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 254], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, o($VO, [2, 48]), o($Vg1, [2, 114], { 103: $VA1 }), o($VB1, [2, 123], { 105: 256, 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }), o($VC1, [2, 125]), o($VC1, [2, 127]), o($VC1, [2, 128]), o($VC1, [2, 129]), o($VC1, [2, 130]), o($VC1, [2, 131]), o($VC1, [2, 132]), o($VC1, [2, 133]), o($VC1, [2, 134]), o($Vg1, [2, 115], { 103: $VA1 }), { 10: [1, 257] }, o($Vg1, [2, 116], { 103: $VA1 }), { 10: [1, 258] }, o($Vq1, [2, 122]), o($Vg1, [2, 98], { 103: $VA1 }), o($Vg1, [2, 99], { 110: 109, 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), o($Vg1, [2, 103]), o($Vg1, [2, 105], { 10: [1, 259] }), o($Vg1, [2, 106]), { 95: [1, 260] }, { 49: [1, 261] }, { 60: [1, 262] }, { 64: [1, 263] }, { 8: $Vz, 9: $VA, 11: $VB, 21: 264 }, o($Vy, [2, 34]), { 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 104: 265, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, o($VC1, [2, 126]), { 14: $VD, 42: $VE, 58: $VF, 86: $VG, 98: 266, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, { 14: $VD, 42: $VE, 58: $VF, 86: $VG, 98: 267, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, { 95: [1, 268] }, o($Vg1, [2, 113]), o($VP, [2, 53]), { 30: 269, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VP, [2, 61]), o($Ve1, $V4, { 5: 270 }), o($VB1, [2, 124], { 105: 256, 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }), o($Vg1, [2, 119], { 117: 160, 10: [1, 271], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o($Vg1, [2, 120], { 117: 160, 10: [1, 272], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o($Vg1, [2, 107]), { 31: [1, 273], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 274], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 275, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 276, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, o($VP, [2, 57]), o($Vy, [2, 33]), o($Vg1, [2, 117], { 103: $VA1 }), o($Vg1, [2, 118], { 103: $VA1 })], + defaultActions: {}, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex2() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex2(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex2() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: {}, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + this.begin("acc_title"); + return 34; + case 1: + this.popState(); + return "acc_title_value"; + case 2: + this.begin("acc_descr"); + return 36; + case 3: + this.popState(); + return "acc_descr_value"; + case 4: + this.begin("acc_descr_multiline"); + break; + case 5: + this.popState(); + break; + case 6: + return "acc_descr_multiline_value"; + case 7: + this.begin("callbackname"); + break; + case 8: + this.popState(); + break; + case 9: + this.popState(); + this.begin("callbackargs"); + break; + case 10: + return 92; + case 11: + this.popState(); + break; + case 12: + return 93; + case 13: + return "MD_STR"; + case 14: + this.popState(); + break; + case 15: + this.begin("md_string"); + break; + case 16: + return "STR"; + case 17: + this.popState(); + break; + case 18: + this.pushState("string"); + break; + case 19: + return 81; + case 20: + return 99; + case 21: + return 82; + case 22: + return 101; + case 23: + return 83; + case 24: + return 84; + case 25: + return 94; + case 26: + this.begin("click"); + break; + case 27: + this.popState(); + break; + case 28: + return 85; + case 29: + if (yy.lex.firstGraph()) { + this.begin("dir"); + } + return 12; + case 30: + if (yy.lex.firstGraph()) { + this.begin("dir"); + } + return 12; + case 31: + if (yy.lex.firstGraph()) { + this.begin("dir"); + } + return 12; + case 32: + return 27; + case 33: + return 32; + case 34: + return 95; + case 35: + return 95; + case 36: + return 95; + case 37: + return 95; + case 38: + this.popState(); + return 13; + case 39: + this.popState(); + return 14; + case 40: + this.popState(); + return 14; + case 41: + this.popState(); + return 14; + case 42: + this.popState(); + return 14; + case 43: + this.popState(); + return 14; + case 44: + this.popState(); + return 14; + case 45: + this.popState(); + return 14; + case 46: + this.popState(); + return 14; + case 47: + this.popState(); + return 14; + case 48: + this.popState(); + return 14; + case 49: + return 118; + case 50: + return 119; + case 51: + return 120; + case 52: + return 121; + case 53: + return 102; + case 54: + return 108; + case 55: + return 44; + case 56: + return 58; + case 57: + return 42; + case 58: + return 8; + case 59: + return 103; + case 60: + return 112; + case 61: + this.popState(); + return 75; + case 62: + this.pushState("edgeText"); + return 73; + case 63: + return 116; + case 64: + this.popState(); + return 75; + case 65: + this.pushState("thickEdgeText"); + return 73; + case 66: + return 116; + case 67: + this.popState(); + return 75; + case 68: + this.pushState("dottedEdgeText"); + return 73; + case 69: + return 116; + case 70: + return 75; + case 71: + this.popState(); + return 51; + case 72: + return "TEXT"; + case 73: + this.pushState("ellipseText"); + return 50; + case 74: + this.popState(); + return 53; + case 75: + this.pushState("text"); + return 52; + case 76: + this.popState(); + return 55; + case 77: + this.pushState("text"); + return 54; + case 78: + return 56; + case 79: + this.pushState("text"); + return 65; + case 80: + this.popState(); + return 62; + case 81: + this.pushState("text"); + return 61; + case 82: + this.popState(); + return 47; + case 83: + this.pushState("text"); + return 46; + case 84: + this.popState(); + return 67; + case 85: + this.popState(); + return 69; + case 86: + return 114; + case 87: + this.pushState("trapText"); + return 66; + case 88: + this.pushState("trapText"); + return 68; + case 89: + return 115; + case 90: + return 65; + case 91: + return 87; + case 92: + return "SEP"; + case 93: + return 86; + case 94: + return 112; + case 95: + return 108; + case 96: + return 42; + case 97: + return 106; + case 98: + return 111; + case 99: + return 113; + case 100: + this.popState(); + return 60; + case 101: + this.pushState("text"); + return 60; + case 102: + this.popState(); + return 49; + case 103: + this.pushState("text"); + return 48; + case 104: + this.popState(); + return 31; + case 105: + this.pushState("text"); + return 29; + case 106: + this.popState(); + return 64; + case 107: + this.pushState("text"); + return 63; + case 108: + return "TEXT"; + case 109: + return "QUOTE"; + case 110: + return 9; + case 111: + return 10; + case 112: + return 11; + } + }, + rules: [/^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["][`])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:["])/, /^(?:style\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\b)/, /^(?:class\b)/, /^(?:href[\s])/, /^(?:click[\s]+)/, /^(?:[\s\n])/, /^(?:[^\s\n]*)/, /^(?:flowchart-elk\b)/, /^(?:graph\b)/, /^(?:flowchart\b)/, /^(?:subgraph\b)/, /^(?:end\b\s*)/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:(\r?\n)*\s*\n)/, /^(?:\s*LR\b)/, /^(?:\s*RL\b)/, /^(?:\s*TB\b)/, /^(?:\s*BT\b)/, /^(?:\s*TD\b)/, /^(?:\s*BR\b)/, /^(?:\s*<)/, /^(?:\s*>)/, /^(?:\s*\^)/, /^(?:\s*v\b)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::::)/, /^(?::)/, /^(?:&)/, /^(?:;)/, /^(?:,)/, /^(?:\*)/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?--\s*)/, /^(?:[^-]|-(?!-)+)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?==\s*)/, /^(?:[^=]|=(?!))/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?:\s*[xo<]?-\.\s*)/, /^(?:[^\.]|\.(?!))/, /^(?:\s*~~[\~]+\s*)/, /^(?:[-/\)][\)])/, /^(?:[^\(\)\[\]\{\}]|!\)+)/, /^(?:\(-)/, /^(?:\]\))/, /^(?:\(\[)/, /^(?:\]\])/, /^(?:\[\[)/, /^(?:\[\|)/, /^(?:>)/, /^(?:\)\])/, /^(?:\[\()/, /^(?:\)\)\))/, /^(?:\(\(\()/, /^(?:[\\(?=\])][\]])/, /^(?:\/(?=\])\])/, /^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/, /^(?:\[\/)/, /^(?:\[\\)/, /^(?:<)/, /^(?:>)/, /^(?:\^)/, /^(?:\\\|)/, /^(?:v\b)/, /^(?:\*)/, /^(?:#)/, /^(?:&)/, /^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/, /^(?:-)/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\|)/, /^(?:\|)/, /^(?:\))/, /^(?:\()/, /^(?:\])/, /^(?:\[)/, /^(?:(\}))/, /^(?:\{)/, /^(?:[^\[\]\(\)\{\}\|\"]+)/, /^(?:")/, /^(?:(\r?\n)+)/, /^(?:\s)/, /^(?:$)/], + conditions: { "callbackargs": { "rules": [11, 12, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "callbackname": { "rules": [8, 9, 10, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "href": { "rules": [15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "click": { "rules": [15, 18, 27, 28, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "dottedEdgeText": { "rules": [15, 18, 67, 69, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "thickEdgeText": { "rules": [15, 18, 64, 66, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "edgeText": { "rules": [15, 18, 61, 63, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "trapText": { "rules": [15, 18, 70, 73, 75, 77, 81, 83, 84, 85, 86, 87, 88, 101, 103, 105, 107], "inclusive": false }, "ellipseText": { "rules": [15, 18, 70, 71, 72, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "text": { "rules": [15, 18, 70, 73, 74, 75, 76, 77, 80, 81, 82, 83, 87, 88, 100, 101, 102, 103, 104, 105, 106, 107, 108], "inclusive": false }, "vertex": { "rules": [15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "dir": { "rules": [15, 18, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "acc_descr_multiline": { "rules": [5, 6, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "acc_descr": { "rules": [3, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "acc_title": { "rules": [1, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "md_string": { "rules": [13, 14, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "string": { "rules": [15, 16, 17, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 67, 68, 70, 73, 75, 77, 78, 79, 81, 83, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 105, 107, 109, 110, 111, 112], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +const MERMAID_DOM_ID_PREFIX = "flowchart-"; +let vertexCounter = 0; +let config = getConfig(); +let vertices = {}; +let edges = []; +let classes = {}; +let subGraphs = []; +let subGraphLookup = {}; +let tooltips = {}; +let subCount = 0; +let firstGraphFlag = true; +let direction; +let version; +let funs = []; +const sanitizeText = (txt) => common.sanitizeText(txt, config); +const lookUpDomId = function(id) { + const vertexKeys = Object.keys(vertices); + for (const vertexKey of vertexKeys) { + if (vertices[vertexKey].id === id) { + return vertices[vertexKey].domId; + } + } + return id; +}; +const addVertex = function(_id, textObj, type, style, classes2, dir, props = {}) { + let txt; + let id = _id; + if (id === void 0) { + return; + } + if (id.trim().length === 0) { + return; + } + if (vertices[id] === void 0) { + vertices[id] = { + id, + labelType: "text", + domId: MERMAID_DOM_ID_PREFIX + id + "-" + vertexCounter, + styles: [], + classes: [] + }; + } + vertexCounter++; + if (textObj !== void 0) { + config = getConfig(); + txt = sanitizeText(textObj.text.trim()); + vertices[id].labelType = textObj.type; + if (txt[0] === '"' && txt[txt.length - 1] === '"') { + txt = txt.substring(1, txt.length - 1); + } + vertices[id].text = txt; + } else { + if (vertices[id].text === void 0) { + vertices[id].text = _id; + } + } + if (type !== void 0) { + vertices[id].type = type; + } + if (style !== void 0 && style !== null) { + style.forEach(function(s) { + vertices[id].styles.push(s); + }); + } + if (classes2 !== void 0 && classes2 !== null) { + classes2.forEach(function(s) { + vertices[id].classes.push(s); + }); + } + if (dir !== void 0) { + vertices[id].dir = dir; + } + if (vertices[id].props === void 0) { + vertices[id].props = props; + } else if (props !== void 0) { + Object.assign(vertices[id].props, props); + } +}; +const addSingleLink = function(_start, _end, type) { + let start = _start; + let end = _end; + const edge = { start, end, type: void 0, text: "", labelType: "text" }; + log.info("abc78 Got edge...", edge); + const linkTextObj = type.text; + if (linkTextObj !== void 0) { + edge.text = sanitizeText(linkTextObj.text.trim()); + if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') { + edge.text = edge.text.substring(1, edge.text.length - 1); + } + edge.labelType = linkTextObj.type; + } + if (type !== void 0) { + edge.type = type.type; + edge.stroke = type.stroke; + edge.length = type.length; + } + if ((edge == null ? void 0 : edge.length) > 10) { + edge.length = 10; + } + if (edges.length < (config.maxEdges ?? 500)) { + log.info("abc78 pushing edge..."); + edges.push(edge); + } else { + throw new Error( + `Edge limit exceeded. ${edges.length} edges found, but the limit is ${config.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.` + ); + } +}; +const addLink = function(_start, _end, type) { + log.info("addLink (abc78)", _start, _end, type); + let i, j; + for (i = 0; i < _start.length; i++) { + for (j = 0; j < _end.length; j++) { + addSingleLink(_start[i], _end[j], type); + } + } +}; +const updateLinkInterpolate = function(positions, interp) { + positions.forEach(function(pos) { + if (pos === "default") { + edges.defaultInterpolate = interp; + } else { + edges[pos].interpolate = interp; + } + }); +}; +const updateLink = function(positions, style) { + positions.forEach(function(pos) { + if (pos >= edges.length) { + throw new Error( + `The index ${pos} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${edges.length - 1}. (Help: Ensure that the index is within the range of existing edges.)` + ); + } + if (pos === "default") { + edges.defaultStyle = style; + } else { + if (utils.isSubstringInArray("fill", style) === -1) { + style.push("fill:none"); + } + edges[pos].style = style; + } + }); +}; +const addClass = function(ids, style) { + ids.split(",").forEach(function(id) { + if (classes[id] === void 0) { + classes[id] = { id, styles: [], textStyles: [] }; + } + if (style !== void 0 && style !== null) { + style.forEach(function(s) { + if (s.match("color")) { + const newStyle = s.replace("fill", "bgFill").replace("color", "fill"); + classes[id].textStyles.push(newStyle); + } + classes[id].styles.push(s); + }); + } + }); +}; +const setDirection = function(dir) { + direction = dir; + if (direction.match(/.*/)) { + direction = "LR"; + } + if (direction.match(/.*v/)) { + direction = "TB"; + } + if (direction === "TD") { + direction = "TB"; + } +}; +const setClass = function(ids, className) { + ids.split(",").forEach(function(_id) { + let id = _id; + if (vertices[id] !== void 0) { + vertices[id].classes.push(className); + } + if (subGraphLookup[id] !== void 0) { + subGraphLookup[id].classes.push(className); + } + }); +}; +const setTooltip = function(ids, tooltip) { + ids.split(",").forEach(function(id) { + if (tooltip !== void 0) { + tooltips[version === "gen-1" ? lookUpDomId(id) : id] = sanitizeText(tooltip); + } + }); +}; +const setClickFun = function(id, functionName, functionArgs) { + let domId = lookUpDomId(id); + if (getConfig().securityLevel !== "loose") { + return; + } + if (functionName === void 0) { + return; + } + let argList = []; + if (typeof functionArgs === "string") { + argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/); + for (let i = 0; i < argList.length; i++) { + let item = argList[i].trim(); + if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') { + item = item.substr(1, item.length - 2); + } + argList[i] = item; + } + } + if (argList.length === 0) { + argList.push(id); + } + if (vertices[id] !== void 0) { + vertices[id].haveCallback = true; + funs.push(function() { + const elem = document.querySelector(`[id="${domId}"]`); + if (elem !== null) { + elem.addEventListener( + "click", + function() { + utils.runFunc(functionName, ...argList); + }, + false + ); + } + }); + } +}; +const setLink = function(ids, linkStr, target) { + ids.split(",").forEach(function(id) { + if (vertices[id] !== void 0) { + vertices[id].link = utils.formatUrl(linkStr, config); + vertices[id].linkTarget = target; + } + }); + setClass(ids, "clickable"); +}; +const getTooltip = function(id) { + if (tooltips.hasOwnProperty(id)) { + return tooltips[id]; + } + return void 0; +}; +const setClickEvent = function(ids, functionName, functionArgs) { + ids.split(",").forEach(function(id) { + setClickFun(id, functionName, functionArgs); + }); + setClass(ids, "clickable"); +}; +const bindFunctions = function(element) { + funs.forEach(function(fun) { + fun(element); + }); +}; +const getDirection = function() { + return direction.trim(); +}; +const getVertices = function() { + return vertices; +}; +const getEdges = function() { + return edges; +}; +const getClasses = function() { + return classes; +}; +const setupToolTips = function(element) { + let tooltipElem = select(".mermaidTooltip"); + if ((tooltipElem._groups || tooltipElem)[0][0] === null) { + tooltipElem = select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0); + } + const svg = select(element).select("svg"); + const nodes = svg.selectAll("g.node"); + nodes.on("mouseover", function() { + const el = select(this); + const title = el.attr("title"); + if (title === null) { + return; + } + const rect = this.getBoundingClientRect(); + tooltipElem.transition().duration(200).style("opacity", ".9"); + tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect.left + (rect.right - rect.left) / 2 + "px").style("top", window.scrollY + rect.bottom + "px"); + tooltipElem.html(tooltipElem.html().replace(/<br\/>/g, "
")); + el.classed("hover", true); + }).on("mouseout", function() { + tooltipElem.transition().duration(500).style("opacity", 0); + const el = select(this); + el.classed("hover", false); + }); +}; +funs.push(setupToolTips); +const clear = function(ver = "gen-1") { + vertices = {}; + classes = {}; + edges = []; + funs = [setupToolTips]; + subGraphs = []; + subGraphLookup = {}; + subCount = 0; + tooltips = {}; + firstGraphFlag = true; + version = ver; + config = getConfig(); + clear$1(); +}; +const setGen = (ver) => { + version = ver || "gen-2"; +}; +const defaultStyle = function() { + return "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"; +}; +const addSubGraph = function(_id, list, _title) { + let id = _id.text.trim(); + let title = _title.text; + if (_id === _title && _title.text.match(/\s/)) { + id = void 0; + } + function uniq(a) { + const prims = { boolean: {}, number: {}, string: {} }; + const objs = []; + let dir2; + const nodeList2 = a.filter(function(item) { + const type = typeof item; + if (item.stmt && item.stmt === "dir") { + dir2 = item.value; + return false; + } + if (item.trim() === "") { + return false; + } + if (type in prims) { + return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true; + } else { + return objs.includes(item) ? false : objs.push(item); + } + }); + return { nodeList: nodeList2, dir: dir2 }; + } + let nodeList = []; + const { nodeList: nl, dir } = uniq(nodeList.concat.apply(nodeList, list)); + nodeList = nl; + if (version === "gen-1") { + for (let i = 0; i < nodeList.length; i++) { + nodeList[i] = lookUpDomId(nodeList[i]); + } + } + id = id || "subGraph" + subCount; + title = title || ""; + title = sanitizeText(title); + subCount = subCount + 1; + const subGraph = { + id, + nodes: nodeList, + title: title.trim(), + classes: [], + dir, + labelType: _title.type + }; + log.info("Adding", subGraph.id, subGraph.nodes, subGraph.dir); + subGraph.nodes = makeUniq(subGraph, subGraphs).nodes; + subGraphs.push(subGraph); + subGraphLookup[id] = subGraph; + return id; +}; +const getPosForId = function(id) { + for (const [i, subGraph] of subGraphs.entries()) { + if (subGraph.id === id) { + return i; + } + } + return -1; +}; +let secCount = -1; +const posCrossRef = []; +const indexNodes2 = function(id, pos) { + const nodes = subGraphs[pos].nodes; + secCount = secCount + 1; + if (secCount > 2e3) { + return; + } + posCrossRef[secCount] = pos; + if (subGraphs[pos].id === id) { + return { + result: true, + count: 0 + }; + } + let count = 0; + let posCount = 1; + while (count < nodes.length) { + const childPos = getPosForId(nodes[count]); + if (childPos >= 0) { + const res = indexNodes2(id, childPos); + if (res.result) { + return { + result: true, + count: posCount + res.count + }; + } else { + posCount = posCount + res.count; + } + } + count = count + 1; + } + return { + result: false, + count: posCount + }; +}; +const getDepthFirstPos = function(pos) { + return posCrossRef[pos]; +}; +const indexNodes = function() { + secCount = -1; + if (subGraphs.length > 0) { + indexNodes2("none", subGraphs.length - 1); + } +}; +const getSubGraphs = function() { + return subGraphs; +}; +const firstGraph = () => { + if (firstGraphFlag) { + firstGraphFlag = false; + return true; + } + return false; +}; +const destructStartLink = (_str) => { + let str = _str.trim(); + let type = "arrow_open"; + switch (str[0]) { + case "<": + type = "arrow_point"; + str = str.slice(1); + break; + case "x": + type = "arrow_cross"; + str = str.slice(1); + break; + case "o": + type = "arrow_circle"; + str = str.slice(1); + break; + } + let stroke = "normal"; + if (str.includes("=")) { + stroke = "thick"; + } + if (str.includes(".")) { + stroke = "dotted"; + } + return { type, stroke }; +}; +const countChar = (char, str) => { + const length = str.length; + let count = 0; + for (let i = 0; i < length; ++i) { + if (str[i] === char) { + ++count; + } + } + return count; +}; +const destructEndLink = (_str) => { + const str = _str.trim(); + let line = str.slice(0, -1); + let type = "arrow_open"; + switch (str.slice(-1)) { + case "x": + type = "arrow_cross"; + if (str[0] === "x") { + type = "double_" + type; + line = line.slice(1); + } + break; + case ">": + type = "arrow_point"; + if (str[0] === "<") { + type = "double_" + type; + line = line.slice(1); + } + break; + case "o": + type = "arrow_circle"; + if (str[0] === "o") { + type = "double_" + type; + line = line.slice(1); + } + break; + } + let stroke = "normal"; + let length = line.length - 1; + if (line[0] === "=") { + stroke = "thick"; + } + if (line[0] === "~") { + stroke = "invisible"; + } + let dots = countChar(".", line); + if (dots) { + stroke = "dotted"; + length = dots; + } + return { type, stroke, length }; +}; +const destructLink = (_str, _startStr) => { + const info = destructEndLink(_str); + let startInfo; + if (_startStr) { + startInfo = destructStartLink(_startStr); + if (startInfo.stroke !== info.stroke) { + return { type: "INVALID", stroke: "INVALID" }; + } + if (startInfo.type === "arrow_open") { + startInfo.type = info.type; + } else { + if (startInfo.type !== info.type) { + return { type: "INVALID", stroke: "INVALID" }; + } + startInfo.type = "double_" + startInfo.type; + } + if (startInfo.type === "double_arrow") { + startInfo.type = "double_arrow_point"; + } + startInfo.length = info.length; + return startInfo; + } + return info; +}; +const exists = (allSgs, _id) => { + let res = false; + allSgs.forEach((sg) => { + const pos = sg.nodes.indexOf(_id); + if (pos >= 0) { + res = true; + } + }); + return res; +}; +const makeUniq = (sg, allSubgraphs) => { + const res = []; + sg.nodes.forEach((_id, pos) => { + if (!exists(allSubgraphs, _id)) { + res.push(sg.nodes[pos]); + } + }); + return { nodes: res }; +}; +const lex = { + firstGraph +}; +const flowDb = { + defaultConfig: () => defaultConfig.flowchart, + setAccTitle, + getAccTitle, + getAccDescription, + setAccDescription, + addVertex, + lookUpDomId, + addLink, + updateLinkInterpolate, + updateLink, + addClass, + setDirection, + setClass, + setTooltip, + getTooltip, + setClickEvent, + setLink, + bindFunctions, + getDirection, + getVertices, + getEdges, + getClasses, + clear, + setGen, + defaultStyle, + addSubGraph, + getDepthFirstPos, + indexNodes, + getSubGraphs, + destructLink, + lex, + exists, + makeUniq, + setDiagramTitle, + getDiagramTitle +}; +const db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + addClass, + addLink, + addSingleLink, + addSubGraph, + addVertex, + bindFunctions, + clear, + default: flowDb, + defaultStyle, + destructLink, + firstGraph, + getClasses, + getDepthFirstPos, + getDirection, + getEdges, + getSubGraphs, + getTooltip, + getVertices, + indexNodes, + lex, + lookUpDomId, + setClass, + setClickEvent, + setDirection, + setGen, + setLink, + updateLink, + updateLinkInterpolate +}, Symbol.toStringTag, { value: "Module" })); +export { + db as d, + flowDb as f, + parser$1 as p +}; diff --git a/assets/lib/mermaid/flowDiagram-aadb13b0.js b/assets/lib/mermaid/flowDiagram-aadb13b0.js new file mode 100644 index 000000000..d0ee3eb5c --- /dev/null +++ b/assets/lib/mermaid/flowDiagram-aadb13b0.js @@ -0,0 +1,797 @@ +import { p as Lt, f as V } from "./flowDb-9a89ea33.js"; +import { h as S, f as tt, G as _t } from "./graph-0ee63739.js"; +import { j as x, n as U, o as Y, p as et, c as G, r as rt, f as at, l as R, q as z, t as Et } from "./mermaid-9f2aa176.js"; +import { u as Tt, r as Nt, p as At, l as Ct, d as M } from "./layout-fd473db2.js"; +import { a as N, b as nt, i as st, c as E, e as it, d as ot, s as It, f as Bt, g as Mt } from "./styles-e75131e4.js"; +import { l as Dt } from "./line-24d93f1b.js"; +import "./index-bb6d8841.js"; +import "./clone-afc2f047.js"; +import "./edges-16357fde.js"; +import "./createText-03b82060.js"; +import "./channel-ebbc4130.js"; +import "./array-2ff2c7a6.js"; +import "./path-428ebac9.js"; +function Rt(r) { + if (!r.ok) + throw new Error(r.status + " " + r.statusText); + return r.text(); +} +function Gt(r, e) { + return fetch(r, e).then(Rt); +} +function Pt(r) { + return (e, t) => Gt(e, t).then((n) => new DOMParser().parseFromString(n, r)); +} +var Ut = Pt("image/svg+xml"), H = { + normal: $t, + vee: Vt, + undirected: zt +}; +function Wt(r) { + H = r; +} +function $t(r, e, t, n) { + var a = r.append("marker").attr("id", e).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"), s = a.append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").style("stroke-width", 1).style("stroke-dasharray", "1,0"); + N(s, t[n + "Style"]), t[n + "Class"] && s.attr("class", t[n + "Class"]); +} +function Vt(r, e, t, n) { + var a = r.append("marker").attr("id", e).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"), s = a.append("path").attr("d", "M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width", 1).style("stroke-dasharray", "1,0"); + N(s, t[n + "Style"]), t[n + "Class"] && s.attr("class", t[n + "Class"]); +} +function zt(r, e, t, n) { + var a = r.append("marker").attr("id", e).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"), s = a.append("path").attr("d", "M 0 5 L 10 5").style("stroke-width", 1).style("stroke-dasharray", "1,0"); + N(s, t[n + "Style"]), t[n + "Class"] && s.attr("class", t[n + "Class"]); +} +function Yt(r, e) { + var t = r; + return t.node().appendChild(e.label), N(t, e.labelStyle), t; +} +function Ht(r, e) { + for (var t = r.append("text"), n = Xt(e.label).split(` +`), a = 0; a < n.length; a++) + t.append("tspan").attr("xml:space", "preserve").attr("dy", "1em").attr("x", "1").text(n[a]); + return N(t, e.labelStyle), t; +} +function Xt(r) { + for (var e = "", t = !1, n, a = 0; a < r.length; ++a) + if (n = r[a], t) { + switch (n) { + case "n": + e += ` +`; + break; + default: + e += n; + } + t = !1; + } else + n === "\\" ? t = !0 : e += n; + return e; +} +function J(r, e, t) { + var n = e.label, a = r.append("g"); + e.labelType === "svg" ? Yt(a, e) : typeof n != "string" || e.labelType === "html" ? nt(a, e) : Ht(a, e); + var s = a.node().getBBox(), i; + switch (t) { + case "top": + i = -e.height / 2; + break; + case "bottom": + i = e.height / 2 - s.height; + break; + default: + i = -s.height / 2; + } + return a.attr("transform", "translate(" + -s.width / 2 + "," + i + ")"), a; +} +var X = function(r, e) { + var t = e.nodes().filter(function(s) { + return st(e, s); + }), n = r.selectAll("g.cluster").data(t, function(s) { + return s; + }); + E(n.exit(), e).style("opacity", 0).remove(); + var a = n.enter().append("g").attr("class", "cluster").attr("id", function(s) { + var i = e.node(s); + return i.id; + }).style("opacity", 0).each(function(s) { + var i = e.node(s), o = x(this); + x(this).append("rect"); + var c = o.append("g").attr("class", "label"); + J(c, i, i.clusterLabelPos); + }); + return n = n.merge(a), n = E(n, e).style("opacity", 1), n.selectAll("rect").each(function(s) { + var i = e.node(s), o = x(this); + N(o, i.style); + }), n; +}; +function Ft(r) { + X = r; +} +let F = function(r, e) { + var t = r.selectAll("g.edgeLabel").data(e.edges(), function(a) { + return it(a); + }).classed("update", !0); + t.exit().remove(), t.enter().append("g").classed("edgeLabel", !0).style("opacity", 0), t = r.selectAll("g.edgeLabel"), t.each(function(a) { + var s = x(this); + s.select(".label").remove(); + var i = e.edge(a), o = J(s, e.edge(a), 0).classed("label", !0), c = o.node().getBBox(); + i.labelId && o.attr("id", i.labelId), S(i, "width") || (i.width = c.width), S(i, "height") || (i.height = c.height); + }); + var n; + return t.exit ? n = t.exit() : n = t.selectAll(null), E(n, e).style("opacity", 0).remove(), t; +}; +function qt(r) { + F = r; +} +function O(r, e) { + return r.intersect(e); +} +var q = function(r, e, t) { + var n = r.selectAll("g.edgePath").data(e.edges(), function(i) { + return it(i); + }).classed("update", !0), a = Ot(n, e); + jt(n, e); + var s = n.merge !== void 0 ? n.merge(a) : n; + return E(s, e).style("opacity", 1), s.each(function(i) { + var o = x(this), c = e.edge(i); + c.elem = this, c.id && o.attr("id", c.id), ot( + o, + c.class, + (o.classed("update") ? "update " : "") + "edgePath" + ); + }), s.selectAll("path.path").each(function(i) { + var o = e.edge(i); + o.arrowheadId = Tt("arrowhead"); + var c = x(this).attr("marker-end", function() { + return "url(" + Kt(location.href, o.arrowheadId) + ")"; + }).style("fill", "none"); + E(c, e).attr("d", function(d) { + return Jt(e, d); + }), N(c, o.style); + }), s.selectAll("defs *").remove(), s.selectAll("defs").each(function(i) { + var o = e.edge(i), c = t[o.arrowhead]; + c(x(this), o.arrowheadId, o, "arrowhead"); + }), s; +}; +function Qt(r) { + q = r; +} +function Kt(r, e) { + var t = r.split("#")[0]; + return t + "#" + e; +} +function Jt(r, e) { + var t = r.edge(e), n = r.node(e.v), a = r.node(e.w), s = t.points.slice(1, t.points.length - 1); + return s.unshift(O(n, s[0])), s.push(O(a, s[s.length - 1])), lt(t, s); +} +function lt(r, e) { + var t = (Dt || Ut.line)().x(function(n) { + return n.x; + }).y(function(n) { + return n.y; + }); + return (t.curve || t.interpolate)(r.curve), t(e); +} +function Zt(r) { + var e = r.getBBox(), t = r.ownerSVGElement.getScreenCTM().inverse().multiply(r.getScreenCTM()).translate(e.width / 2, e.height / 2); + return { x: t.e, y: t.f }; +} +function Ot(r, e) { + var t = r.enter().append("g").attr("class", "edgePath").style("opacity", 0); + return t.append("path").attr("class", "path").attr("d", function(n) { + var a = e.edge(n), s = e.node(n.v).elem, i = Nt(a.points.length).map(function() { + return Zt(s); + }); + return lt(a, i); + }), t.append("defs"), t; +} +function jt(r, e) { + var t = r.exit(); + E(t, e).style("opacity", 0).remove(); +} +var Q = function(r, e, t) { + var n = e.nodes().filter(function(i) { + return !st(e, i); + }), a = r.selectAll("g.node").data(n, function(i) { + return i; + }).classed("update", !0); + a.exit().remove(), a.enter().append("g").attr("class", "node").style("opacity", 0), a = r.selectAll("g.node"), a.each(function(i) { + var o = e.node(i), c = x(this); + ot( + c, + o.class, + (c.classed("update") ? "update " : "") + "node" + ), c.select("g.label").remove(); + var d = c.append("g").attr("class", "label"), l = J(d, o), g = t[o.shape], h = At(l.node().getBBox(), "width", "height"); + o.elem = this, o.id && c.attr("id", o.id), o.labelId && d.attr("id", o.labelId), S(o, "width") && (h.width = o.width), S(o, "height") && (h.height = o.height), h.width += o.paddingLeft + o.paddingRight, h.height += o.paddingTop + o.paddingBottom, d.attr( + "transform", + "translate(" + (o.paddingLeft - o.paddingRight) / 2 + "," + (o.paddingTop - o.paddingBottom) / 2 + ")" + ); + var u = x(this); + u.select(".label-container").remove(); + var p = g(u, h, o).classed("label-container", !0); + N(p, o.style); + var v = p.node().getBBox(); + o.width = v.width, o.height = v.height; + }); + var s; + return a.exit ? s = a.exit() : s = a.selectAll(null), E(s, e).style("opacity", 0).remove(), a; +}; +function te(r) { + Q = r; +} +function ee(r, e) { + var t = r.filter(function() { + return !x(this).classed("update"); + }); + function n(a) { + var s = e.node(a); + return "translate(" + s.x + "," + s.y + ")"; + } + t.attr("transform", n), E(r, e).style("opacity", 1).attr("transform", n), E(t.selectAll("rect"), e).attr("width", function(a) { + return e.node(a).width; + }).attr("height", function(a) { + return e.node(a).height; + }).attr("x", function(a) { + var s = e.node(a); + return -s.width / 2; + }).attr("y", function(a) { + var s = e.node(a); + return -s.height / 2; + }); +} +function re(r, e) { + var t = r.filter(function() { + return !x(this).classed("update"); + }); + function n(a) { + var s = e.edge(a); + return S(s, "x") ? "translate(" + s.x + "," + s.y + ")" : ""; + } + t.attr("transform", n), E(r, e).style("opacity", 1).attr("transform", n); +} +function ae(r, e) { + var t = r.filter(function() { + return !x(this).classed("update"); + }); + function n(a) { + var s = e.node(a); + return "translate(" + s.x + "," + s.y + ")"; + } + t.attr("transform", n), E(r, e).style("opacity", 1).attr("transform", n); +} +function ct(r, e, t, n) { + var a = r.x, s = r.y, i = a - n.x, o = s - n.y, c = Math.sqrt(e * e * o * o + t * t * i * i), d = Math.abs(e * t * i / c); + n.x < a && (d = -d); + var l = Math.abs(e * t * o / c); + return n.y < s && (l = -l), { x: a + d, y: s + l }; +} +function ne(r, e, t) { + return ct(r, e, e, t); +} +function se(r, e, t, n) { + var a, s, i, o, c, d, l, g, h, u, p, v, f, y, k; + if (a = e.y - r.y, i = r.x - e.x, c = e.x * r.y - r.x * e.y, h = a * t.x + i * t.y + c, u = a * n.x + i * n.y + c, !(h !== 0 && u !== 0 && j(h, u)) && (s = n.y - t.y, o = t.x - n.x, d = n.x * t.y - t.x * n.y, l = s * r.x + o * r.y + d, g = s * e.x + o * e.y + d, !(l !== 0 && g !== 0 && j(l, g)) && (p = a * o - s * i, p !== 0))) + return v = Math.abs(p / 2), f = i * d - o * c, y = f < 0 ? (f - v) / p : (f + v) / p, f = s * c - a * d, k = f < 0 ? (f - v) / p : (f + v) / p, { x: y, y: k }; +} +function j(r, e) { + return r * e > 0; +} +function T(r, e, t) { + var n = r.x, a = r.y, s = [], i = Number.POSITIVE_INFINITY, o = Number.POSITIVE_INFINITY; + e.forEach(function(p) { + i = Math.min(i, p.x), o = Math.min(o, p.y); + }); + for (var c = n - r.width / 2 - i, d = a - r.height / 2 - o, l = 0; l < e.length; l++) { + var g = e[l], h = e[l < e.length - 1 ? l + 1 : 0], u = se( + r, + t, + { x: c + g.x, y: d + g.y }, + { x: c + h.x, y: d + h.y } + ); + u && s.push(u); + } + return s.length ? (s.length > 1 && s.sort(function(p, v) { + var f = p.x - t.x, y = p.y - t.y, k = Math.sqrt(f * f + y * y), I = v.x - t.x, _ = v.y - t.y, W = Math.sqrt(I * I + _ * _); + return k < W ? -1 : k === W ? 0 : 1; + }), s[0]) : (console.log("NO INTERSECTION FOUND, RETURN NODE CENTER", r), r); +} +function Z(r, e) { + var t = r.x, n = r.y, a = e.x - t, s = e.y - n, i = r.width / 2, o = r.height / 2, c, d; + return Math.abs(s) * i > Math.abs(a) * o ? (s < 0 && (o = -o), c = s === 0 ? 0 : o * a / s, d = o) : (a < 0 && (i = -i), c = i, d = a === 0 ? 0 : i * s / a), { x: t + c, y: n + d }; +} +var K = { + rect: oe, + ellipse: le, + circle: ce, + diamond: de +}; +function ie(r) { + K = r; +} +function oe(r, e, t) { + var n = r.insert("rect", ":first-child").attr("rx", t.rx).attr("ry", t.ry).attr("x", -e.width / 2).attr("y", -e.height / 2).attr("width", e.width).attr("height", e.height); + return t.intersect = function(a) { + return Z(t, a); + }, n; +} +function le(r, e, t) { + var n = e.width / 2, a = e.height / 2, s = r.insert("ellipse", ":first-child").attr("x", -e.width / 2).attr("y", -e.height / 2).attr("rx", n).attr("ry", a); + return t.intersect = function(i) { + return ct(t, n, a, i); + }, s; +} +function ce(r, e, t) { + var n = Math.max(e.width, e.height) / 2, a = r.insert("circle", ":first-child").attr("x", -e.width / 2).attr("y", -e.height / 2).attr("r", n); + return t.intersect = function(s) { + return ne(t, n, s); + }, a; +} +function de(r, e, t) { + var n = e.width * Math.SQRT2 / 2, a = e.height * Math.SQRT2 / 2, s = [ + { x: 0, y: -a }, + { x: -n, y: 0 }, + { x: 0, y: a }, + { x: n, y: 0 } + ], i = r.insert("polygon", ":first-child").attr( + "points", + s.map(function(o) { + return o.x + "," + o.y; + }).join(" ") + ); + return t.intersect = function(o) { + return T(t, s, o); + }, i; +} +function he() { + var r = function(e, t) { + pe(t); + var n = D(e, "output"), a = D(n, "clusters"), s = D(n, "edgePaths"), i = F(D(n, "edgeLabels"), t), o = Q(D(n, "nodes"), t, K); + Ct(t), ae(o, t), re(i, t), q(s, t, H); + var c = X(a, t); + ee(c, t), ge(t); + }; + return r.createNodes = function(e) { + return arguments.length ? (te(e), r) : Q; + }, r.createClusters = function(e) { + return arguments.length ? (Ft(e), r) : X; + }, r.createEdgeLabels = function(e) { + return arguments.length ? (qt(e), r) : F; + }, r.createEdgePaths = function(e) { + return arguments.length ? (Qt(e), r) : q; + }, r.shapes = function(e) { + return arguments.length ? (ie(e), r) : K; + }, r.arrows = function(e) { + return arguments.length ? (Wt(e), r) : H; + }, r; +} +var ue = { + paddingLeft: 10, + paddingRight: 10, + paddingTop: 10, + paddingBottom: 10, + rx: 0, + ry: 0, + shape: "rect" +}, fe = { + arrowhead: "normal", + curve: U +}; +function pe(r) { + r.nodes().forEach(function(e) { + var t = r.node(e); + !S(t, "label") && !r.children(e).length && (t.label = e), S(t, "paddingX") && M(t, { + paddingLeft: t.paddingX, + paddingRight: t.paddingX + }), S(t, "paddingY") && M(t, { + paddingTop: t.paddingY, + paddingBottom: t.paddingY + }), S(t, "padding") && M(t, { + paddingLeft: t.padding, + paddingRight: t.padding, + paddingTop: t.padding, + paddingBottom: t.padding + }), M(t, ue), tt(["paddingLeft", "paddingRight", "paddingTop", "paddingBottom"], function(n) { + t[n] = Number(t[n]); + }), S(t, "width") && (t._prevWidth = t.width), S(t, "height") && (t._prevHeight = t.height); + }), r.edges().forEach(function(e) { + var t = r.edge(e); + S(t, "label") || (t.label = ""), M(t, fe); + }); +} +function ge(r) { + tt(r.nodes(), function(e) { + var t = r.node(e); + S(t, "_prevWidth") ? t.width = t._prevWidth : delete t.width, S(t, "_prevHeight") ? t.height = t._prevHeight : delete t.height, delete t._prevWidth, delete t._prevHeight; + }); +} +function D(r, e) { + var t = r.select("g." + e); + return t.empty() && (t = r.append("g").attr("class", e)), t; +} +function dt(r, e, t) { + const n = e.width, a = e.height, s = (n + a) * 0.9, i = [ + { x: s / 2, y: 0 }, + { x: s, y: -s / 2 }, + { x: s / 2, y: -s }, + { x: 0, y: -s / 2 } + ], o = A(r, s, s, i); + return t.intersect = function(c) { + return T(t, i, c); + }, o; +} +function ht(r, e, t) { + const a = e.height, s = a / 4, i = e.width + 2 * s, o = [ + { x: s, y: 0 }, + { x: i - s, y: 0 }, + { x: i, y: -a / 2 }, + { x: i - s, y: -a }, + { x: s, y: -a }, + { x: 0, y: -a / 2 } + ], c = A(r, i, a, o); + return t.intersect = function(d) { + return T(t, o, d); + }, c; +} +function ut(r, e, t) { + const n = e.width, a = e.height, s = [ + { x: -a / 2, y: 0 }, + { x: n, y: 0 }, + { x: n, y: -a }, + { x: -a / 2, y: -a }, + { x: 0, y: -a / 2 } + ], i = A(r, n, a, s); + return t.intersect = function(o) { + return T(t, s, o); + }, i; +} +function ft(r, e, t) { + const n = e.width, a = e.height, s = [ + { x: -2 * a / 6, y: 0 }, + { x: n - a / 6, y: 0 }, + { x: n + 2 * a / 6, y: -a }, + { x: a / 6, y: -a } + ], i = A(r, n, a, s); + return t.intersect = function(o) { + return T(t, s, o); + }, i; +} +function pt(r, e, t) { + const n = e.width, a = e.height, s = [ + { x: 2 * a / 6, y: 0 }, + { x: n + a / 6, y: 0 }, + { x: n - 2 * a / 6, y: -a }, + { x: -a / 6, y: -a } + ], i = A(r, n, a, s); + return t.intersect = function(o) { + return T(t, s, o); + }, i; +} +function gt(r, e, t) { + const n = e.width, a = e.height, s = [ + { x: -2 * a / 6, y: 0 }, + { x: n + 2 * a / 6, y: 0 }, + { x: n - a / 6, y: -a }, + { x: a / 6, y: -a } + ], i = A(r, n, a, s); + return t.intersect = function(o) { + return T(t, s, o); + }, i; +} +function yt(r, e, t) { + const n = e.width, a = e.height, s = [ + { x: a / 6, y: 0 }, + { x: n - a / 6, y: 0 }, + { x: n + 2 * a / 6, y: -a }, + { x: -2 * a / 6, y: -a } + ], i = A(r, n, a, s); + return t.intersect = function(o) { + return T(t, s, o); + }, i; +} +function vt(r, e, t) { + const n = e.width, a = e.height, s = [ + { x: 0, y: 0 }, + { x: n + a / 2, y: 0 }, + { x: n, y: -a / 2 }, + { x: n + a / 2, y: -a }, + { x: 0, y: -a } + ], i = A(r, n, a, s); + return t.intersect = function(o) { + return T(t, s, o); + }, i; +} +function wt(r, e, t) { + const n = e.height, a = e.width + n / 4, s = r.insert("rect", ":first-child").attr("rx", n / 2).attr("ry", n / 2).attr("x", -a / 2).attr("y", -n / 2).attr("width", a).attr("height", n); + return t.intersect = function(i) { + return Z(t, i); + }, s; +} +function mt(r, e, t) { + const n = e.width, a = e.height, s = [ + { x: 0, y: 0 }, + { x: n, y: 0 }, + { x: n, y: -a }, + { x: 0, y: -a }, + { x: 0, y: 0 }, + { x: -8, y: 0 }, + { x: n + 8, y: 0 }, + { x: n + 8, y: -a }, + { x: -8, y: -a }, + { x: -8, y: 0 } + ], i = A(r, n, a, s); + return t.intersect = function(o) { + return T(t, s, o); + }, i; +} +function xt(r, e, t) { + const n = e.width, a = n / 2, s = a / (2.5 + n / 50), i = e.height + s, o = "M 0," + s + " a " + a + "," + s + " 0,0,0 " + n + " 0 a " + a + "," + s + " 0,0,0 " + -n + " 0 l 0," + i + " a " + a + "," + s + " 0,0,0 " + n + " 0 l 0," + -i, c = r.attr("label-offset-y", s).insert("path", ":first-child").attr("d", o).attr("transform", "translate(" + -n / 2 + "," + -(i / 2 + s) + ")"); + return t.intersect = function(d) { + const l = Z(t, d), g = l.x - t.x; + if (a != 0 && (Math.abs(g) < t.width / 2 || Math.abs(g) == t.width / 2 && Math.abs(l.y - t.y) > t.height / 2 - s)) { + let h = s * s * (1 - g * g / (a * a)); + h != 0 && (h = Math.sqrt(h)), h = s - h, d.y - t.y > 0 && (h = -h), l.y += h; + } + return l; + }, c; +} +function ye(r) { + r.shapes().question = dt, r.shapes().hexagon = ht, r.shapes().stadium = wt, r.shapes().subroutine = mt, r.shapes().cylinder = xt, r.shapes().rect_left_inv_arrow = ut, r.shapes().lean_right = ft, r.shapes().lean_left = pt, r.shapes().trapezoid = gt, r.shapes().inv_trapezoid = yt, r.shapes().rect_right_inv_arrow = vt; +} +function ve(r) { + r({ question: dt }), r({ hexagon: ht }), r({ stadium: wt }), r({ subroutine: mt }), r({ cylinder: xt }), r({ rect_left_inv_arrow: ut }), r({ lean_right: ft }), r({ lean_left: pt }), r({ trapezoid: gt }), r({ inv_trapezoid: yt }), r({ rect_right_inv_arrow: vt }); +} +function A(r, e, t, n) { + return r.insert("polygon", ":first-child").attr( + "points", + n.map(function(a) { + return a.x + "," + a.y; + }).join(" ") + ).attr("transform", "translate(" + -e / 2 + "," + t / 2 + ")"); +} +const we = { + addToRender: ye, + addToRenderV2: ve +}, bt = {}, me = function(r) { + const e = Object.keys(r); + for (const t of e) + bt[t] = r[t]; +}, kt = async function(r, e, t, n, a, s) { + const i = n ? n.select(`[id="${t}"]`) : x(`[id="${t}"]`), o = a || document, c = Object.keys(r); + for (const d of c) { + const l = r[d]; + let g = "default"; + l.classes.length > 0 && (g = l.classes.join(" ")); + const h = Y(l.styles); + let u = l.text !== void 0 ? l.text : l.id, p; + if (et(G().flowchart.htmlLabels)) { + const y = { + label: await rt( + u.replace( + /fa[blrs]?:fa-[\w-]+/g, + // cspell:disable-line + (k) => `` + ), + G() + ) + }; + p = nt(i, y).node(), p.parentNode.removeChild(p); + } else { + const y = o.createElementNS("http://www.w3.org/2000/svg", "text"); + y.setAttribute("style", h.labelStyle.replace("color:", "fill:")); + const k = u.split(at.lineBreakRegex); + for (const I of k) { + const _ = o.createElementNS("http://www.w3.org/2000/svg", "tspan"); + _.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), _.setAttribute("dy", "1em"), _.setAttribute("x", "1"), _.textContent = I, y.appendChild(_); + } + p = y; + } + let v = 0, f = ""; + switch (l.type) { + case "round": + v = 5, f = "rect"; + break; + case "square": + f = "rect"; + break; + case "diamond": + f = "question"; + break; + case "hexagon": + f = "hexagon"; + break; + case "odd": + f = "rect_left_inv_arrow"; + break; + case "lean_right": + f = "lean_right"; + break; + case "lean_left": + f = "lean_left"; + break; + case "trapezoid": + f = "trapezoid"; + break; + case "inv_trapezoid": + f = "inv_trapezoid"; + break; + case "odd_right": + f = "rect_left_inv_arrow"; + break; + case "circle": + f = "circle"; + break; + case "ellipse": + f = "ellipse"; + break; + case "stadium": + f = "stadium"; + break; + case "subroutine": + f = "subroutine"; + break; + case "cylinder": + f = "cylinder"; + break; + case "group": + f = "rect"; + break; + default: + f = "rect"; + } + R.warn("Adding node", l.id, l.domId), e.setNode(s.db.lookUpDomId(l.id), { + labelType: "svg", + labelStyle: h.labelStyle, + shape: f, + label: p, + rx: v, + ry: v, + class: g, + style: h.style, + id: s.db.lookUpDomId(l.id) + }); + } +}, St = async function(r, e, t) { + let n = 0, a, s; + if (r.defaultStyle !== void 0) { + const i = Y(r.defaultStyle); + a = i.style, s = i.labelStyle; + } + for (const i of r) { + n++; + const o = "L-" + i.start + "-" + i.end, c = "LS-" + i.start, d = "LE-" + i.end, l = {}; + i.type === "arrow_open" ? l.arrowhead = "none" : l.arrowhead = "normal"; + let g = "", h = ""; + if (i.style !== void 0) { + const u = Y(i.style); + g = u.style, h = u.labelStyle; + } else + switch (i.stroke) { + case "normal": + g = "fill:none", a !== void 0 && (g = a), s !== void 0 && (h = s); + break; + case "dotted": + g = "fill:none;stroke-width:2px;stroke-dasharray:3;"; + break; + case "thick": + g = " stroke-width: 3.5px;fill:none"; + break; + } + l.style = g, l.labelStyle = h, i.interpolate !== void 0 ? l.curve = z(i.interpolate, U) : r.defaultInterpolate !== void 0 ? l.curve = z(r.defaultInterpolate, U) : l.curve = z(bt.curve, U), i.text === void 0 ? i.style !== void 0 && (l.arrowheadStyle = "fill: #333") : (l.arrowheadStyle = "fill: #333", l.labelpos = "c", et(G().flowchart.htmlLabels) ? (l.labelType = "html", l.label = `${await rt( + i.text.replace( + /fa[blrs]?:fa-[\w-]+/g, + // cspell:disable-line + (u) => `` + ), + G() + )}`) : (l.labelType = "text", l.label = i.text.replace(at.lineBreakRegex, ` +`), i.style === void 0 && (l.style = l.style || "stroke: #333; stroke-width: 1.5px;fill:none"), l.labelStyle = l.labelStyle.replace("color:", "fill:"))), l.id = o, l.class = c + " " + d, l.minlen = i.length || 1, e.setEdge(t.db.lookUpDomId(i.start), t.db.lookUpDomId(i.end), l, n); + } +}, xe = function(r, e) { + return R.info("Extracting classes"), e.db.getClasses(); +}, be = async function(r, e, t, n) { + R.info("Drawing flowchart"); + const { securityLevel: a, flowchart: s } = G(); + let i; + a === "sandbox" && (i = x("#i" + e)); + const o = a === "sandbox" ? x(i.nodes()[0].contentDocument.body) : x("body"), c = a === "sandbox" ? i.nodes()[0].contentDocument : document; + let d = n.db.getDirection(); + d === void 0 && (d = "TD"); + const l = s.nodeSpacing || 50, g = s.rankSpacing || 50, h = new _t({ + multigraph: !0, + compound: !0 + }).setGraph({ + rankdir: d, + nodesep: l, + ranksep: g, + marginx: 8, + marginy: 8 + }).setDefaultEdgeLabel(function() { + return {}; + }); + let u; + const p = n.db.getSubGraphs(); + for (let w = p.length - 1; w >= 0; w--) + u = p[w], n.db.addVertex(u.id, u.title, "group", void 0, u.classes); + const v = n.db.getVertices(); + R.warn("Get vertices", v); + const f = n.db.getEdges(); + let y = 0; + for (y = p.length - 1; y >= 0; y--) { + u = p[y], It("cluster").append("text"); + for (let w = 0; w < u.nodes.length; w++) + R.warn( + "Setting subgraph", + u.nodes[w], + n.db.lookUpDomId(u.nodes[w]), + n.db.lookUpDomId(u.id) + ), h.setParent(n.db.lookUpDomId(u.nodes[w]), n.db.lookUpDomId(u.id)); + } + await kt(v, h, e, o, c, n), await St(f, h, n); + const k = new he(); + we.addToRender(k), k.arrows().none = function(b, L, m, B) { + const C = b.append("marker").attr("id", L).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto").append("path").attr("d", "M 0 0 L 0 0 L 0 0 z"); + N(C, m[B + "Style"]); + }, k.arrows().normal = function(b, L) { + b.append("marker").attr("id", L).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowheadPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); + }; + const I = o.select(`[id="${e}"]`), _ = o.select("#" + e + " g"); + for (k(_, h), _.selectAll("g.node").attr("title", function() { + return n.db.getTooltip(this.id); + }), n.db.indexNodes("subGraph" + y), y = 0; y < p.length; y++) + if (u = p[y], u.title !== "undefined") { + const w = c.querySelectorAll( + "#" + e + ' [id="' + n.db.lookUpDomId(u.id) + '"] rect' + ), b = c.querySelectorAll( + "#" + e + ' [id="' + n.db.lookUpDomId(u.id) + '"]' + ), L = w[0].x.baseVal.value, m = w[0].y.baseVal.value, B = w[0].width.baseVal.value, C = x(b[0]).select(".label"); + C.attr("transform", `translate(${L + B / 2}, ${m + 14})`), C.attr("id", e + "Text"); + for (let $ = 0; $ < u.classes.length; $++) + b[0].classList.add(u.classes[$]); + } + if (!s.htmlLabels) { + const w = c.querySelectorAll('[id="' + e + '"] .edgeLabel .label'); + for (const b of w) { + const L = b.getBBox(), m = c.createElementNS("http://www.w3.org/2000/svg", "rect"); + m.setAttribute("rx", 0), m.setAttribute("ry", 0), m.setAttribute("width", L.width), m.setAttribute("height", L.height), b.insertBefore(m, b.firstChild); + } + } + Et(h, I, s.diagramPadding, s.useMaxWidth), Object.keys(v).forEach(function(w) { + const b = v[w]; + if (b.link) { + const L = o.select("#" + e + ' [id="' + n.db.lookUpDomId(w) + '"]'); + if (L) { + const m = c.createElementNS("http://www.w3.org/2000/svg", "a"); + m.setAttributeNS("http://www.w3.org/2000/svg", "class", b.classes.join(" ")), m.setAttributeNS("http://www.w3.org/2000/svg", "href", b.link), m.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener"), a === "sandbox" ? m.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top") : b.linkTarget && m.setAttributeNS("http://www.w3.org/2000/svg", "target", b.linkTarget); + const B = L.insert(function() { + return m; + }, ":first-child"), P = L.select(".label-container"); + P && B.append(function() { + return P.node(); + }); + const C = L.select(".label"); + C && B.append(function() { + return C.node(); + }); + } + } + }); +}, ke = { + setConf: me, + addVertices: kt, + addEdges: St, + getClasses: xe, + draw: be +}, Ge = { + parser: Lt, + db: V, + renderer: Bt, + styles: Mt, + init: (r) => { + r.flowchart || (r.flowchart = {}), r.flowchart.arrowMarkerAbsolute = r.arrowMarkerAbsolute, ke.setConf(r.flowchart), V.clear(), V.setGen("gen-1"); + } +}; +export { + Ge as diagram +}; diff --git a/assets/lib/mermaid/flowDiagram-b222e15a.js b/assets/lib/mermaid/flowDiagram-b222e15a.js new file mode 100644 index 000000000..99fb08179 --- /dev/null +++ b/assets/lib/mermaid/flowDiagram-b222e15a.js @@ -0,0 +1,614 @@ +import { p as parser, f as flowDb } from "./flowDb-c1833063.js"; +import * as graphlib from "dagre-d3-es/src/graphlib/index.js"; +import { select, curveLinear, selectAll } from "d3"; +import { k as getStylesFromArray, m as evaluate, c as getConfig, r as renderKatex, e as common, l as log, n as interpolateToCurve, o as setupGraphViewbox } from "./mermaid-6dc72991.js"; +import { render } from "dagre-d3-es"; +import { applyStyle } from "dagre-d3-es/src/dagre-js/util.js"; +import { addHtmlLabel } from "dagre-d3-es/src/dagre-js/label/add-html-label.js"; +import { intersectPolygon } from "dagre-d3-es/src/dagre-js/intersect/intersect-polygon.js"; +import { intersectRect } from "dagre-d3-es/src/dagre-js/intersect/intersect-rect.js"; +import { f as flowRendererV2, a as flowStyles } from "./styles-483fbfea.js"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +import "./index-01f381cb.js"; +import "dagre-d3-es/src/dagre/index.js"; +import "dagre-d3-es/src/graphlib/json.js"; +import "./edges-066a5561.js"; +import "./createText-ca0c5216.js"; +import "mdast-util-from-markdown"; +function question(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const s = (w + h) * 0.9; + const points = [ + { x: s / 2, y: 0 }, + { x: s, y: -s / 2 }, + { x: s / 2, y: -s }, + { x: 0, y: -s / 2 } + ]; + const shapeSvg = insertPolygonShape(parent, s, s, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function hexagon(parent, bbox, node) { + const f = 4; + const h = bbox.height; + const m = h / f; + const w = bbox.width + 2 * m; + const points = [ + { x: m, y: 0 }, + { x: w - m, y: 0 }, + { x: w, y: -h / 2 }, + { x: w - m, y: -h }, + { x: m, y: -h }, + { x: 0, y: -h / 2 } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function rect_left_inv_arrow(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const points = [ + { x: -h / 2, y: 0 }, + { x: w, y: 0 }, + { x: w, y: -h }, + { x: -h / 2, y: -h }, + { x: 0, y: -h / 2 } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function lean_right(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const points = [ + { x: -2 * h / 6, y: 0 }, + { x: w - h / 6, y: 0 }, + { x: w + 2 * h / 6, y: -h }, + { x: h / 6, y: -h } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function lean_left(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const points = [ + { x: 2 * h / 6, y: 0 }, + { x: w + h / 6, y: 0 }, + { x: w - 2 * h / 6, y: -h }, + { x: -h / 6, y: -h } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function trapezoid(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const points = [ + { x: -2 * h / 6, y: 0 }, + { x: w + 2 * h / 6, y: 0 }, + { x: w - h / 6, y: -h }, + { x: h / 6, y: -h } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function inv_trapezoid(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const points = [ + { x: h / 6, y: 0 }, + { x: w - h / 6, y: 0 }, + { x: w + 2 * h / 6, y: -h }, + { x: -2 * h / 6, y: -h } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function rect_right_inv_arrow(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const points = [ + { x: 0, y: 0 }, + { x: w + h / 2, y: 0 }, + { x: w, y: -h / 2 }, + { x: w + h / 2, y: -h }, + { x: 0, y: -h } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function stadium(parent, bbox, node) { + const h = bbox.height; + const w = bbox.width + h / 4; + const shapeSvg = parent.insert("rect", ":first-child").attr("rx", h / 2).attr("ry", h / 2).attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h); + node.intersect = function(point) { + return intersectRect(node, point); + }; + return shapeSvg; +} +function subroutine(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const points = [ + { x: 0, y: 0 }, + { x: w, y: 0 }, + { x: w, y: -h }, + { x: 0, y: -h }, + { x: 0, y: 0 }, + { x: -8, y: 0 }, + { x: w + 8, y: 0 }, + { x: w + 8, y: -h }, + { x: -8, y: -h }, + { x: -8, y: 0 } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function cylinder(parent, bbox, node) { + const w = bbox.width; + const rx = w / 2; + const ry = rx / (2.5 + w / 50); + const h = bbox.height + ry; + const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 a " + rx + "," + ry + " 0,0,0 " + -w + " 0 l 0," + h + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 l 0," + -h; + const shapeSvg = parent.attr("label-offset-y", ry).insert("path", ":first-child").attr("d", shape).attr("transform", "translate(" + -w / 2 + "," + -(h / 2 + ry) + ")"); + node.intersect = function(point) { + const pos = intersectRect(node, point); + const x = pos.x - node.x; + if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) { + let y = ry * ry * (1 - x * x / (rx * rx)); + if (y != 0) { + y = Math.sqrt(y); + } + y = ry - y; + if (point.y - node.y > 0) { + y = -y; + } + pos.y += y; + } + return pos; + }; + return shapeSvg; +} +function addToRender(render2) { + render2.shapes().question = question; + render2.shapes().hexagon = hexagon; + render2.shapes().stadium = stadium; + render2.shapes().subroutine = subroutine; + render2.shapes().cylinder = cylinder; + render2.shapes().rect_left_inv_arrow = rect_left_inv_arrow; + render2.shapes().lean_right = lean_right; + render2.shapes().lean_left = lean_left; + render2.shapes().trapezoid = trapezoid; + render2.shapes().inv_trapezoid = inv_trapezoid; + render2.shapes().rect_right_inv_arrow = rect_right_inv_arrow; +} +function addToRenderV2(addShape) { + addShape({ question }); + addShape({ hexagon }); + addShape({ stadium }); + addShape({ subroutine }); + addShape({ cylinder }); + addShape({ rect_left_inv_arrow }); + addShape({ lean_right }); + addShape({ lean_left }); + addShape({ trapezoid }); + addShape({ inv_trapezoid }); + addShape({ rect_right_inv_arrow }); +} +function insertPolygonShape(parent, w, h, points) { + return parent.insert("polygon", ":first-child").attr( + "points", + points.map(function(d) { + return d.x + "," + d.y; + }).join(" ") + ).attr("transform", "translate(" + -w / 2 + "," + h / 2 + ")"); +} +const flowChartShapes = { + addToRender, + addToRenderV2 +}; +const conf = {}; +const setConf = function(cnf) { + const keys = Object.keys(cnf); + for (const key of keys) { + conf[key] = cnf[key]; + } +}; +const addVertices = async function(vert, g, svgId, root, _doc, diagObj) { + const svg = !root ? select(`[id="${svgId}"]`) : root.select(`[id="${svgId}"]`); + const doc = !_doc ? document : _doc; + const keys = Object.keys(vert); + for (const id of keys) { + const vertex = vert[id]; + let classStr = "default"; + if (vertex.classes.length > 0) { + classStr = vertex.classes.join(" "); + } + const styles = getStylesFromArray(vertex.styles); + let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id; + let vertexNode; + if (evaluate(getConfig().flowchart.htmlLabels)) { + const node = { + label: await renderKatex( + vertexText.replace( + /fa[blrs]?:fa-[\w-]+/g, + // cspell:disable-line + (s) => `` + ), + getConfig() + ) + }; + vertexNode = addHtmlLabel(svg, node).node(); + vertexNode.parentNode.removeChild(vertexNode); + } else { + const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text"); + svgLabel.setAttribute("style", styles.labelStyle.replace("color:", "fill:")); + const rows = vertexText.split(common.lineBreakRegex); + for (const row of rows) { + const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan"); + tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"); + tspan.setAttribute("dy", "1em"); + tspan.setAttribute("x", "1"); + tspan.textContent = row; + svgLabel.appendChild(tspan); + } + vertexNode = svgLabel; + } + let radius = 0; + let _shape = ""; + switch (vertex.type) { + case "round": + radius = 5; + _shape = "rect"; + break; + case "square": + _shape = "rect"; + break; + case "diamond": + _shape = "question"; + break; + case "hexagon": + _shape = "hexagon"; + break; + case "odd": + _shape = "rect_left_inv_arrow"; + break; + case "lean_right": + _shape = "lean_right"; + break; + case "lean_left": + _shape = "lean_left"; + break; + case "trapezoid": + _shape = "trapezoid"; + break; + case "inv_trapezoid": + _shape = "inv_trapezoid"; + break; + case "odd_right": + _shape = "rect_left_inv_arrow"; + break; + case "circle": + _shape = "circle"; + break; + case "ellipse": + _shape = "ellipse"; + break; + case "stadium": + _shape = "stadium"; + break; + case "subroutine": + _shape = "subroutine"; + break; + case "cylinder": + _shape = "cylinder"; + break; + case "group": + _shape = "rect"; + break; + default: + _shape = "rect"; + } + log.warn("Adding node", vertex.id, vertex.domId); + g.setNode(diagObj.db.lookUpDomId(vertex.id), { + labelType: "svg", + labelStyle: styles.labelStyle, + shape: _shape, + label: vertexNode, + rx: radius, + ry: radius, + class: classStr, + style: styles.style, + id: diagObj.db.lookUpDomId(vertex.id) + }); + } +}; +const addEdges = async function(edges, g, diagObj) { + let cnt = 0; + let defaultStyle; + let defaultLabelStyle; + if (edges.defaultStyle !== void 0) { + const defaultStyles = getStylesFromArray(edges.defaultStyle); + defaultStyle = defaultStyles.style; + defaultLabelStyle = defaultStyles.labelStyle; + } + for (const edge of edges) { + cnt++; + const linkId = "L-" + edge.start + "-" + edge.end; + const linkNameStart = "LS-" + edge.start; + const linkNameEnd = "LE-" + edge.end; + const edgeData = {}; + if (edge.type === "arrow_open") { + edgeData.arrowhead = "none"; + } else { + edgeData.arrowhead = "normal"; + } + let style = ""; + let labelStyle = ""; + if (edge.style !== void 0) { + const styles = getStylesFromArray(edge.style); + style = styles.style; + labelStyle = styles.labelStyle; + } else { + switch (edge.stroke) { + case "normal": + style = "fill:none"; + if (defaultStyle !== void 0) { + style = defaultStyle; + } + if (defaultLabelStyle !== void 0) { + labelStyle = defaultLabelStyle; + } + break; + case "dotted": + style = "fill:none;stroke-width:2px;stroke-dasharray:3;"; + break; + case "thick": + style = " stroke-width: 3.5px;fill:none"; + break; + } + } + edgeData.style = style; + edgeData.labelStyle = labelStyle; + if (edge.interpolate !== void 0) { + edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear); + } else if (edges.defaultInterpolate !== void 0) { + edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear); + } else { + edgeData.curve = interpolateToCurve(conf.curve, curveLinear); + } + if (edge.text === void 0) { + if (edge.style !== void 0) { + edgeData.arrowheadStyle = "fill: #333"; + } + } else { + edgeData.arrowheadStyle = "fill: #333"; + edgeData.labelpos = "c"; + if (evaluate(getConfig().flowchart.htmlLabels)) { + edgeData.labelType = "html"; + edgeData.label = `${await renderKatex( + edge.text.replace( + /fa[blrs]?:fa-[\w-]+/g, + // cspell:disable-line + (s) => `` + ), + getConfig() + )}`; + } else { + edgeData.labelType = "text"; + edgeData.label = edge.text.replace(common.lineBreakRegex, "\n"); + if (edge.style === void 0) { + edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none"; + } + edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:"); + } + } + edgeData.id = linkId; + edgeData.class = linkNameStart + " " + linkNameEnd; + edgeData.minlen = edge.length || 1; + g.setEdge(diagObj.db.lookUpDomId(edge.start), diagObj.db.lookUpDomId(edge.end), edgeData, cnt); + } +}; +const getClasses = function(text, diagObj) { + log.info("Extracting classes"); + return diagObj.db.getClasses(); +}; +const draw = async function(text, id, _version, diagObj) { + log.info("Drawing flowchart"); + const { securityLevel, flowchart: conf2 } = getConfig(); + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + let dir = diagObj.db.getDirection(); + if (dir === void 0) { + dir = "TD"; + } + const nodeSpacing = conf2.nodeSpacing || 50; + const rankSpacing = conf2.rankSpacing || 50; + const g = new graphlib.Graph({ + multigraph: true, + compound: true + }).setGraph({ + rankdir: dir, + nodesep: nodeSpacing, + ranksep: rankSpacing, + marginx: 8, + marginy: 8 + }).setDefaultEdgeLabel(function() { + return {}; + }); + let subG; + const subGraphs = diagObj.db.getSubGraphs(); + for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) { + subG = subGraphs[i2]; + diagObj.db.addVertex(subG.id, subG.title, "group", void 0, subG.classes); + } + const vert = diagObj.db.getVertices(); + log.warn("Get vertices", vert); + const edges = diagObj.db.getEdges(); + let i = 0; + for (i = subGraphs.length - 1; i >= 0; i--) { + subG = subGraphs[i]; + selectAll("cluster").append("text"); + for (let j = 0; j < subG.nodes.length; j++) { + log.warn( + "Setting subgraph", + subG.nodes[j], + diagObj.db.lookUpDomId(subG.nodes[j]), + diagObj.db.lookUpDomId(subG.id) + ); + g.setParent(diagObj.db.lookUpDomId(subG.nodes[j]), diagObj.db.lookUpDomId(subG.id)); + } + } + await addVertices(vert, g, id, root, doc, diagObj); + await addEdges(edges, g, diagObj); + const render$1 = new render(); + flowChartShapes.addToRender(render$1); + render$1.arrows().none = function normal(parent, id2, edge, type) { + const marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"); + const path = marker.append("path").attr("d", "M 0 0 L 0 0 L 0 0 z"); + applyStyle(path, edge[type + "Style"]); + }; + render$1.arrows().normal = function normal(parent, id2) { + const marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"); + marker.append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowheadPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); + }; + const svg = root.select(`[id="${id}"]`); + const element = root.select("#" + id + " g"); + render$1(element, g); + element.selectAll("g.node").attr("title", function() { + return diagObj.db.getTooltip(this.id); + }); + diagObj.db.indexNodes("subGraph" + i); + for (i = 0; i < subGraphs.length; i++) { + subG = subGraphs[i]; + if (subG.title !== "undefined") { + const clusterRects = doc.querySelectorAll( + "#" + id + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"] rect' + ); + const clusterEl = doc.querySelectorAll( + "#" + id + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"]' + ); + const xPos = clusterRects[0].x.baseVal.value; + const yPos = clusterRects[0].y.baseVal.value; + const _width = clusterRects[0].width.baseVal.value; + const cluster = select(clusterEl[0]); + const te = cluster.select(".label"); + te.attr("transform", `translate(${xPos + _width / 2}, ${yPos + 14})`); + te.attr("id", id + "Text"); + for (let j = 0; j < subG.classes.length; j++) { + clusterEl[0].classList.add(subG.classes[j]); + } + } + } + if (!conf2.htmlLabels) { + const labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label'); + for (const label of labels) { + const dim = label.getBBox(); + const rect = doc.createElementNS("http://www.w3.org/2000/svg", "rect"); + rect.setAttribute("rx", 0); + rect.setAttribute("ry", 0); + rect.setAttribute("width", dim.width); + rect.setAttribute("height", dim.height); + label.insertBefore(rect, label.firstChild); + } + } + setupGraphViewbox(g, svg, conf2.diagramPadding, conf2.useMaxWidth); + const keys = Object.keys(vert); + keys.forEach(function(key) { + const vertex = vert[key]; + if (vertex.link) { + const node = root.select("#" + id + ' [id="' + diagObj.db.lookUpDomId(key) + '"]'); + if (node) { + const link = doc.createElementNS("http://www.w3.org/2000/svg", "a"); + link.setAttributeNS("http://www.w3.org/2000/svg", "class", vertex.classes.join(" ")); + link.setAttributeNS("http://www.w3.org/2000/svg", "href", vertex.link); + link.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener"); + if (securityLevel === "sandbox") { + link.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top"); + } else if (vertex.linkTarget) { + link.setAttributeNS("http://www.w3.org/2000/svg", "target", vertex.linkTarget); + } + const linkNode = node.insert(function() { + return link; + }, ":first-child"); + const shape = node.select(".label-container"); + if (shape) { + linkNode.append(function() { + return shape.node(); + }); + } + const label = node.select(".label"); + if (label) { + linkNode.append(function() { + return label.node(); + }); + } + } + } + }); +}; +const flowRenderer = { + setConf, + addVertices, + addEdges, + getClasses, + draw +}; +const diagram = { + parser, + db: flowDb, + renderer: flowRendererV2, + styles: flowStyles, + init: (cnf) => { + if (!cnf.flowchart) { + cnf.flowchart = {}; + } + cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; + flowRenderer.setConf(cnf.flowchart); + flowDb.clear(); + flowDb.setGen("gen-1"); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/flowDiagram-b5e7ba30.js b/assets/lib/mermaid/flowDiagram-b5e7ba30.js new file mode 100644 index 000000000..ae4c78ac1 --- /dev/null +++ b/assets/lib/mermaid/flowDiagram-b5e7ba30.js @@ -0,0 +1,1278 @@ +import { p as parser$1, f as flowDb } from "./flowDb-ba9bd7fa.js"; +import { h as has, f as forEach, G as Graph } from "./graph-fe24fab6.js"; +import { j as d3select, n as curveLinear, o as getStylesFromArray, p as evaluate, c as getConfig, r as renderKatex, f as common, l as log, q as interpolateToCurve, t as setupGraphViewbox } from "./mermaid-dcacb631.js"; +import { u as uniqueId, r as range, p as pick, l as layout, d as defaults } from "./layout-163b9689.js"; +import { a as applyStyle, b as addHtmlLabel, i as isSubgraph, c as applyTransition, e as edgeToId, d as applyClass, s as selectAll, f as flowRendererV2, g as flowStyles } from "./styles-727cdd61.js"; +import { l as line } from "./line-87f517ef.js"; +import "./index-fc479858.js"; +import "./clone-9ea6bfeb.js"; +import "./edges-ce5cfb7c.js"; +import "./createText-b70fe78a.js"; +import "./channel-f9001828.js"; +import "./array-b7dcf730.js"; +import "./path-39bad7e2.js"; +function responseText(response) { + if (!response.ok) + throw new Error(response.status + " " + response.statusText); + return response.text(); +} +function text(input, init) { + return fetch(input, init).then(responseText); +} +function parser(type) { + return (input, init) => text(input, init).then((text2) => new DOMParser().parseFromString(text2, type)); +} +var svg = parser("image/svg+xml"); +var arrows = { + normal, + vee, + undirected +}; +function setArrows(value) { + arrows = value; +} +function normal(parent, id, edge, type) { + var marker = parent.append("marker").attr("id", id).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"); + var path = marker.append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").style("stroke-width", 1).style("stroke-dasharray", "1,0"); + applyStyle(path, edge[type + "Style"]); + if (edge[type + "Class"]) { + path.attr("class", edge[type + "Class"]); + } +} +function vee(parent, id, edge, type) { + var marker = parent.append("marker").attr("id", id).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"); + var path = marker.append("path").attr("d", "M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width", 1).style("stroke-dasharray", "1,0"); + applyStyle(path, edge[type + "Style"]); + if (edge[type + "Class"]) { + path.attr("class", edge[type + "Class"]); + } +} +function undirected(parent, id, edge, type) { + var marker = parent.append("marker").attr("id", id).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"); + var path = marker.append("path").attr("d", "M 0 5 L 10 5").style("stroke-width", 1).style("stroke-dasharray", "1,0"); + applyStyle(path, edge[type + "Style"]); + if (edge[type + "Class"]) { + path.attr("class", edge[type + "Class"]); + } +} +function addSVGLabel(root, node) { + var domNode = root; + domNode.node().appendChild(node.label); + applyStyle(domNode, node.labelStyle); + return domNode; +} +function addTextLabel(root, node) { + var domNode = root.append("text"); + var lines = processEscapeSequences(node.label).split("\n"); + for (var i = 0; i < lines.length; i++) { + domNode.append("tspan").attr("xml:space", "preserve").attr("dy", "1em").attr("x", "1").text(lines[i]); + } + applyStyle(domNode, node.labelStyle); + return domNode; +} +function processEscapeSequences(text2) { + var newText = ""; + var escaped = false; + var ch; + for (var i = 0; i < text2.length; ++i) { + ch = text2[i]; + if (escaped) { + switch (ch) { + case "n": + newText += "\n"; + break; + default: + newText += ch; + } + escaped = false; + } else if (ch === "\\") { + escaped = true; + } else { + newText += ch; + } + } + return newText; +} +function addLabel(root, node, location2) { + var label = node.label; + var labelSvg = root.append("g"); + if (node.labelType === "svg") { + addSVGLabel(labelSvg, node); + } else if (typeof label !== "string" || node.labelType === "html") { + addHtmlLabel(labelSvg, node); + } else { + addTextLabel(labelSvg, node); + } + var labelBBox = labelSvg.node().getBBox(); + var y; + switch (location2) { + case "top": + y = -node.height / 2; + break; + case "bottom": + y = node.height / 2 - labelBBox.height; + break; + default: + y = -labelBBox.height / 2; + } + labelSvg.attr("transform", "translate(" + -labelBBox.width / 2 + "," + y + ")"); + return labelSvg; +} +var createClusters = function(selection, g) { + var clusters = g.nodes().filter(function(v) { + return isSubgraph(g, v); + }); + var svgClusters = selection.selectAll("g.cluster").data(clusters, function(v) { + return v; + }); + applyTransition(svgClusters.exit(), g).style("opacity", 0).remove(); + var enterSelection = svgClusters.enter().append("g").attr("class", "cluster").attr("id", function(v) { + var node = g.node(v); + return node.id; + }).style("opacity", 0).each(function(v) { + var node = g.node(v); + var thisGroup = d3select(this); + d3select(this).append("rect"); + var labelGroup = thisGroup.append("g").attr("class", "label"); + addLabel(labelGroup, node, node.clusterLabelPos); + }); + svgClusters = svgClusters.merge(enterSelection); + svgClusters = applyTransition(svgClusters, g).style("opacity", 1); + svgClusters.selectAll("rect").each(function(c) { + var node = g.node(c); + var domCluster = d3select(this); + applyStyle(domCluster, node.style); + }); + return svgClusters; +}; +function setCreateClusters(value) { + createClusters = value; +} +let createEdgeLabels = function(selection, g) { + var svgEdgeLabels = selection.selectAll("g.edgeLabel").data(g.edges(), function(e) { + return edgeToId(e); + }).classed("update", true); + svgEdgeLabels.exit().remove(); + svgEdgeLabels.enter().append("g").classed("edgeLabel", true).style("opacity", 0); + svgEdgeLabels = selection.selectAll("g.edgeLabel"); + svgEdgeLabels.each(function(e) { + var root = d3select(this); + root.select(".label").remove(); + var edge = g.edge(e); + var label = addLabel(root, g.edge(e), 0).classed("label", true); + var bbox = label.node().getBBox(); + if (edge.labelId) { + label.attr("id", edge.labelId); + } + if (!has(edge, "width")) { + edge.width = bbox.width; + } + if (!has(edge, "height")) { + edge.height = bbox.height; + } + }); + var exitSelection; + if (svgEdgeLabels.exit) { + exitSelection = svgEdgeLabels.exit(); + } else { + exitSelection = svgEdgeLabels.selectAll(null); + } + applyTransition(exitSelection, g).style("opacity", 0).remove(); + return svgEdgeLabels; +}; +function setCreateEdgeLabels(value) { + createEdgeLabels = value; +} +function intersectNode(node, point) { + return node.intersect(point); +} +var createEdgePaths = function(selection, g, arrows2) { + var previousPaths = selection.selectAll("g.edgePath").data(g.edges(), function(e) { + return edgeToId(e); + }).classed("update", true); + var newPaths = enter(previousPaths, g); + exit(previousPaths, g); + var svgPaths = previousPaths.merge !== void 0 ? previousPaths.merge(newPaths) : previousPaths; + applyTransition(svgPaths, g).style("opacity", 1); + svgPaths.each(function(e) { + var domEdge = d3select(this); + var edge = g.edge(e); + edge.elem = this; + if (edge.id) { + domEdge.attr("id", edge.id); + } + applyClass( + domEdge, + edge["class"], + (domEdge.classed("update") ? "update " : "") + "edgePath" + ); + }); + svgPaths.selectAll("path.path").each(function(e) { + var edge = g.edge(e); + edge.arrowheadId = uniqueId("arrowhead"); + var domEdge = d3select(this).attr("marker-end", function() { + return "url(" + makeFragmentRef(location.href, edge.arrowheadId) + ")"; + }).style("fill", "none"); + applyTransition(domEdge, g).attr("d", function(e2) { + return calcPoints(g, e2); + }); + applyStyle(domEdge, edge.style); + }); + svgPaths.selectAll("defs *").remove(); + svgPaths.selectAll("defs").each(function(e) { + var edge = g.edge(e); + var arrowhead = arrows2[edge.arrowhead]; + arrowhead(d3select(this), edge.arrowheadId, edge, "arrowhead"); + }); + return svgPaths; +}; +function setCreateEdgePaths(value) { + createEdgePaths = value; +} +function makeFragmentRef(url, fragmentId) { + var baseUrl = url.split("#")[0]; + return baseUrl + "#" + fragmentId; +} +function calcPoints(g, e) { + var edge = g.edge(e); + var tail = g.node(e.v); + var head = g.node(e.w); + var points = edge.points.slice(1, edge.points.length - 1); + points.unshift(intersectNode(tail, points[0])); + points.push(intersectNode(head, points[points.length - 1])); + return createLine(edge, points); +} +function createLine(edge, points) { + var line$1 = (line || svg.line)().x(function(d) { + return d.x; + }).y(function(d) { + return d.y; + }); + (line$1.curve || line$1.interpolate)(edge.curve); + return line$1(points); +} +function getCoords(elem) { + var bbox = elem.getBBox(); + var matrix = elem.ownerSVGElement.getScreenCTM().inverse().multiply(elem.getScreenCTM()).translate(bbox.width / 2, bbox.height / 2); + return { x: matrix.e, y: matrix.f }; +} +function enter(svgPaths, g) { + var svgPathsEnter = svgPaths.enter().append("g").attr("class", "edgePath").style("opacity", 0); + svgPathsEnter.append("path").attr("class", "path").attr("d", function(e) { + var edge = g.edge(e); + var sourceElem = g.node(e.v).elem; + var points = range(edge.points.length).map(function() { + return getCoords(sourceElem); + }); + return createLine(edge, points); + }); + svgPathsEnter.append("defs"); + return svgPathsEnter; +} +function exit(svgPaths, g) { + var svgPathExit = svgPaths.exit(); + applyTransition(svgPathExit, g).style("opacity", 0).remove(); +} +var createNodes = function(selection, g, shapes2) { + var simpleNodes = g.nodes().filter(function(v) { + return !isSubgraph(g, v); + }); + var svgNodes = selection.selectAll("g.node").data(simpleNodes, function(v) { + return v; + }).classed("update", true); + svgNodes.exit().remove(); + svgNodes.enter().append("g").attr("class", "node").style("opacity", 0); + svgNodes = selection.selectAll("g.node"); + svgNodes.each(function(v) { + var node = g.node(v); + var thisGroup = d3select(this); + applyClass( + thisGroup, + node["class"], + (thisGroup.classed("update") ? "update " : "") + "node" + ); + thisGroup.select("g.label").remove(); + var labelGroup = thisGroup.append("g").attr("class", "label"); + var labelDom = addLabel(labelGroup, node); + var shape = shapes2[node.shape]; + var bbox = pick(labelDom.node().getBBox(), "width", "height"); + node.elem = this; + if (node.id) { + thisGroup.attr("id", node.id); + } + if (node.labelId) { + labelGroup.attr("id", node.labelId); + } + if (has(node, "width")) { + bbox.width = node.width; + } + if (has(node, "height")) { + bbox.height = node.height; + } + bbox.width += node.paddingLeft + node.paddingRight; + bbox.height += node.paddingTop + node.paddingBottom; + labelGroup.attr( + "transform", + "translate(" + (node.paddingLeft - node.paddingRight) / 2 + "," + (node.paddingTop - node.paddingBottom) / 2 + ")" + ); + var root = d3select(this); + root.select(".label-container").remove(); + var shapeSvg = shape(root, bbox, node).classed("label-container", true); + applyStyle(shapeSvg, node.style); + var shapeBBox = shapeSvg.node().getBBox(); + node.width = shapeBBox.width; + node.height = shapeBBox.height; + }); + var exitSelection; + if (svgNodes.exit) { + exitSelection = svgNodes.exit(); + } else { + exitSelection = svgNodes.selectAll(null); + } + applyTransition(exitSelection, g).style("opacity", 0).remove(); + return svgNodes; +}; +function setCreateNodes(value) { + createNodes = value; +} +function positionClusters(selection, g) { + var created = selection.filter(function() { + return !d3select(this).classed("update"); + }); + function translate(v) { + var node = g.node(v); + return "translate(" + node.x + "," + node.y + ")"; + } + created.attr("transform", translate); + applyTransition(selection, g).style("opacity", 1).attr("transform", translate); + applyTransition(created.selectAll("rect"), g).attr("width", function(v) { + return g.node(v).width; + }).attr("height", function(v) { + return g.node(v).height; + }).attr("x", function(v) { + var node = g.node(v); + return -node.width / 2; + }).attr("y", function(v) { + var node = g.node(v); + return -node.height / 2; + }); +} +function positionEdgeLabels(selection, g) { + var created = selection.filter(function() { + return !d3select(this).classed("update"); + }); + function translate(e) { + var edge = g.edge(e); + return has(edge, "x") ? "translate(" + edge.x + "," + edge.y + ")" : ""; + } + created.attr("transform", translate); + applyTransition(selection, g).style("opacity", 1).attr("transform", translate); +} +function positionNodes(selection, g) { + var created = selection.filter(function() { + return !d3select(this).classed("update"); + }); + function translate(v) { + var node = g.node(v); + return "translate(" + node.x + "," + node.y + ")"; + } + created.attr("transform", translate); + applyTransition(selection, g).style("opacity", 1).attr("transform", translate); +} +function intersectEllipse(node, rx, ry, point) { + var cx = node.x; + var cy = node.y; + var px = cx - point.x; + var py = cy - point.y; + var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px); + var dx = Math.abs(rx * ry * px / det); + if (point.x < cx) { + dx = -dx; + } + var dy = Math.abs(rx * ry * py / det); + if (point.y < cy) { + dy = -dy; + } + return { x: cx + dx, y: cy + dy }; +} +function intersectCircle(node, rx, point) { + return intersectEllipse(node, rx, rx, point); +} +function intersectLine(p1, p2, q1, q2) { + var a1, a2, b1, b2, c1, c2; + var r1, r2, r3, r4; + var denom, offset, num; + var x, y; + a1 = p2.y - p1.y; + b1 = p1.x - p2.x; + c1 = p2.x * p1.y - p1.x * p2.y; + r3 = a1 * q1.x + b1 * q1.y + c1; + r4 = a1 * q2.x + b1 * q2.y + c1; + if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) { + return; + } + a2 = q2.y - q1.y; + b2 = q1.x - q2.x; + c2 = q2.x * q1.y - q1.x * q2.y; + r1 = a2 * p1.x + b2 * p1.y + c2; + r2 = a2 * p2.x + b2 * p2.y + c2; + if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) { + return; + } + denom = a1 * b2 - a2 * b1; + if (denom === 0) { + return; + } + offset = Math.abs(denom / 2); + num = b1 * c2 - b2 * c1; + x = num < 0 ? (num - offset) / denom : (num + offset) / denom; + num = a2 * c1 - a1 * c2; + y = num < 0 ? (num - offset) / denom : (num + offset) / denom; + return { x, y }; +} +function sameSign(r1, r2) { + return r1 * r2 > 0; +} +function intersectPolygon(node, polyPoints, point) { + var x1 = node.x; + var y1 = node.y; + var intersections = []; + var minX = Number.POSITIVE_INFINITY; + var minY = Number.POSITIVE_INFINITY; + polyPoints.forEach(function(entry) { + minX = Math.min(minX, entry.x); + minY = Math.min(minY, entry.y); + }); + var left = x1 - node.width / 2 - minX; + var top = y1 - node.height / 2 - minY; + for (var i = 0; i < polyPoints.length; i++) { + var p1 = polyPoints[i]; + var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0]; + var intersect = intersectLine( + node, + point, + { x: left + p1.x, y: top + p1.y }, + { x: left + p2.x, y: top + p2.y } + ); + if (intersect) { + intersections.push(intersect); + } + } + if (!intersections.length) { + console.log("NO INTERSECTION FOUND, RETURN NODE CENTER", node); + return node; + } + if (intersections.length > 1) { + intersections.sort(function(p, q) { + var pdx = p.x - point.x; + var pdy = p.y - point.y; + var distp = Math.sqrt(pdx * pdx + pdy * pdy); + var qdx = q.x - point.x; + var qdy = q.y - point.y; + var distq = Math.sqrt(qdx * qdx + qdy * qdy); + return distp < distq ? -1 : distp === distq ? 0 : 1; + }); + } + return intersections[0]; +} +function intersectRect(node, point) { + var x = node.x; + var y = node.y; + var dx = point.x - x; + var dy = point.y - y; + var w = node.width / 2; + var h = node.height / 2; + var sx, sy; + if (Math.abs(dy) * w > Math.abs(dx) * h) { + if (dy < 0) { + h = -h; + } + sx = dy === 0 ? 0 : h * dx / dy; + sy = h; + } else { + if (dx < 0) { + w = -w; + } + sx = w; + sy = dx === 0 ? 0 : w * dy / dx; + } + return { x: x + sx, y: y + sy }; +} +var shapes = { + rect, + ellipse, + circle, + diamond +}; +function setShapes(value) { + shapes = value; +} +function rect(parent, bbox, node) { + var shapeSvg = parent.insert("rect", ":first-child").attr("rx", node.rx).attr("ry", node.ry).attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("width", bbox.width).attr("height", bbox.height); + node.intersect = function(point) { + return intersectRect(node, point); + }; + return shapeSvg; +} +function ellipse(parent, bbox, node) { + var rx = bbox.width / 2; + var ry = bbox.height / 2; + var shapeSvg = parent.insert("ellipse", ":first-child").attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("rx", rx).attr("ry", ry); + node.intersect = function(point) { + return intersectEllipse(node, rx, ry, point); + }; + return shapeSvg; +} +function circle(parent, bbox, node) { + var r = Math.max(bbox.width, bbox.height) / 2; + var shapeSvg = parent.insert("circle", ":first-child").attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("r", r); + node.intersect = function(point) { + return intersectCircle(node, r, point); + }; + return shapeSvg; +} +function diamond(parent, bbox, node) { + var w = bbox.width * Math.SQRT2 / 2; + var h = bbox.height * Math.SQRT2 / 2; + var points = [ + { x: 0, y: -h }, + { x: -w, y: 0 }, + { x: 0, y: h }, + { x: w, y: 0 } + ]; + var shapeSvg = parent.insert("polygon", ":first-child").attr( + "points", + points.map(function(p) { + return p.x + "," + p.y; + }).join(" ") + ); + node.intersect = function(p) { + return intersectPolygon(node, points, p); + }; + return shapeSvg; +} +function render() { + var fn = function(svg2, g) { + preProcessGraph(g); + var outputGroup = createOrSelectGroup(svg2, "output"); + var clustersGroup = createOrSelectGroup(outputGroup, "clusters"); + var edgePathsGroup = createOrSelectGroup(outputGroup, "edgePaths"); + var edgeLabels = createEdgeLabels(createOrSelectGroup(outputGroup, "edgeLabels"), g); + var nodes = createNodes(createOrSelectGroup(outputGroup, "nodes"), g, shapes); + layout(g); + positionNodes(nodes, g); + positionEdgeLabels(edgeLabels, g); + createEdgePaths(edgePathsGroup, g, arrows); + var clusters = createClusters(clustersGroup, g); + positionClusters(clusters, g); + postProcessGraph(g); + }; + fn.createNodes = function(value) { + if (!arguments.length) + return createNodes; + setCreateNodes(value); + return fn; + }; + fn.createClusters = function(value) { + if (!arguments.length) + return createClusters; + setCreateClusters(value); + return fn; + }; + fn.createEdgeLabels = function(value) { + if (!arguments.length) + return createEdgeLabels; + setCreateEdgeLabels(value); + return fn; + }; + fn.createEdgePaths = function(value) { + if (!arguments.length) + return createEdgePaths; + setCreateEdgePaths(value); + return fn; + }; + fn.shapes = function(value) { + if (!arguments.length) + return shapes; + setShapes(value); + return fn; + }; + fn.arrows = function(value) { + if (!arguments.length) + return arrows; + setArrows(value); + return fn; + }; + return fn; +} +var NODE_DEFAULT_ATTRS = { + paddingLeft: 10, + paddingRight: 10, + paddingTop: 10, + paddingBottom: 10, + rx: 0, + ry: 0, + shape: "rect" +}; +var EDGE_DEFAULT_ATTRS = { + arrowhead: "normal", + curve: curveLinear +}; +function preProcessGraph(g) { + g.nodes().forEach(function(v) { + var node = g.node(v); + if (!has(node, "label") && !g.children(v).length) { + node.label = v; + } + if (has(node, "paddingX")) { + defaults(node, { + paddingLeft: node.paddingX, + paddingRight: node.paddingX + }); + } + if (has(node, "paddingY")) { + defaults(node, { + paddingTop: node.paddingY, + paddingBottom: node.paddingY + }); + } + if (has(node, "padding")) { + defaults(node, { + paddingLeft: node.padding, + paddingRight: node.padding, + paddingTop: node.padding, + paddingBottom: node.padding + }); + } + defaults(node, NODE_DEFAULT_ATTRS); + forEach(["paddingLeft", "paddingRight", "paddingTop", "paddingBottom"], function(k) { + node[k] = Number(node[k]); + }); + if (has(node, "width")) { + node._prevWidth = node.width; + } + if (has(node, "height")) { + node._prevHeight = node.height; + } + }); + g.edges().forEach(function(e) { + var edge = g.edge(e); + if (!has(edge, "label")) { + edge.label = ""; + } + defaults(edge, EDGE_DEFAULT_ATTRS); + }); +} +function postProcessGraph(g) { + forEach(g.nodes(), function(v) { + var node = g.node(v); + if (has(node, "_prevWidth")) { + node.width = node._prevWidth; + } else { + delete node.width; + } + if (has(node, "_prevHeight")) { + node.height = node._prevHeight; + } else { + delete node.height; + } + delete node._prevWidth; + delete node._prevHeight; + }); +} +function createOrSelectGroup(root, name) { + var selection = root.select("g." + name); + if (selection.empty()) { + selection = root.append("g").attr("class", name); + } + return selection; +} +function question(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const s = (w + h) * 0.9; + const points = [ + { x: s / 2, y: 0 }, + { x: s, y: -s / 2 }, + { x: s / 2, y: -s }, + { x: 0, y: -s / 2 } + ]; + const shapeSvg = insertPolygonShape(parent, s, s, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function hexagon(parent, bbox, node) { + const f = 4; + const h = bbox.height; + const m = h / f; + const w = bbox.width + 2 * m; + const points = [ + { x: m, y: 0 }, + { x: w - m, y: 0 }, + { x: w, y: -h / 2 }, + { x: w - m, y: -h }, + { x: m, y: -h }, + { x: 0, y: -h / 2 } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function rect_left_inv_arrow(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const points = [ + { x: -h / 2, y: 0 }, + { x: w, y: 0 }, + { x: w, y: -h }, + { x: -h / 2, y: -h }, + { x: 0, y: -h / 2 } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function lean_right(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const points = [ + { x: -2 * h / 6, y: 0 }, + { x: w - h / 6, y: 0 }, + { x: w + 2 * h / 6, y: -h }, + { x: h / 6, y: -h } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function lean_left(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const points = [ + { x: 2 * h / 6, y: 0 }, + { x: w + h / 6, y: 0 }, + { x: w - 2 * h / 6, y: -h }, + { x: -h / 6, y: -h } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function trapezoid(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const points = [ + { x: -2 * h / 6, y: 0 }, + { x: w + 2 * h / 6, y: 0 }, + { x: w - h / 6, y: -h }, + { x: h / 6, y: -h } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function inv_trapezoid(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const points = [ + { x: h / 6, y: 0 }, + { x: w - h / 6, y: 0 }, + { x: w + 2 * h / 6, y: -h }, + { x: -2 * h / 6, y: -h } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function rect_right_inv_arrow(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const points = [ + { x: 0, y: 0 }, + { x: w + h / 2, y: 0 }, + { x: w, y: -h / 2 }, + { x: w + h / 2, y: -h }, + { x: 0, y: -h } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function stadium(parent, bbox, node) { + const h = bbox.height; + const w = bbox.width + h / 4; + const shapeSvg = parent.insert("rect", ":first-child").attr("rx", h / 2).attr("ry", h / 2).attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h); + node.intersect = function(point) { + return intersectRect(node, point); + }; + return shapeSvg; +} +function subroutine(parent, bbox, node) { + const w = bbox.width; + const h = bbox.height; + const points = [ + { x: 0, y: 0 }, + { x: w, y: 0 }, + { x: w, y: -h }, + { x: 0, y: -h }, + { x: 0, y: 0 }, + { x: -8, y: 0 }, + { x: w + 8, y: 0 }, + { x: w + 8, y: -h }, + { x: -8, y: -h }, + { x: -8, y: 0 } + ]; + const shapeSvg = insertPolygonShape(parent, w, h, points); + node.intersect = function(point) { + return intersectPolygon(node, points, point); + }; + return shapeSvg; +} +function cylinder(parent, bbox, node) { + const w = bbox.width; + const rx = w / 2; + const ry = rx / (2.5 + w / 50); + const h = bbox.height + ry; + const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 a " + rx + "," + ry + " 0,0,0 " + -w + " 0 l 0," + h + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 l 0," + -h; + const shapeSvg = parent.attr("label-offset-y", ry).insert("path", ":first-child").attr("d", shape).attr("transform", "translate(" + -w / 2 + "," + -(h / 2 + ry) + ")"); + node.intersect = function(point) { + const pos = intersectRect(node, point); + const x = pos.x - node.x; + if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) { + let y = ry * ry * (1 - x * x / (rx * rx)); + if (y != 0) { + y = Math.sqrt(y); + } + y = ry - y; + if (point.y - node.y > 0) { + y = -y; + } + pos.y += y; + } + return pos; + }; + return shapeSvg; +} +function addToRender(render2) { + render2.shapes().question = question; + render2.shapes().hexagon = hexagon; + render2.shapes().stadium = stadium; + render2.shapes().subroutine = subroutine; + render2.shapes().cylinder = cylinder; + render2.shapes().rect_left_inv_arrow = rect_left_inv_arrow; + render2.shapes().lean_right = lean_right; + render2.shapes().lean_left = lean_left; + render2.shapes().trapezoid = trapezoid; + render2.shapes().inv_trapezoid = inv_trapezoid; + render2.shapes().rect_right_inv_arrow = rect_right_inv_arrow; +} +function addToRenderV2(addShape) { + addShape({ question }); + addShape({ hexagon }); + addShape({ stadium }); + addShape({ subroutine }); + addShape({ cylinder }); + addShape({ rect_left_inv_arrow }); + addShape({ lean_right }); + addShape({ lean_left }); + addShape({ trapezoid }); + addShape({ inv_trapezoid }); + addShape({ rect_right_inv_arrow }); +} +function insertPolygonShape(parent, w, h, points) { + return parent.insert("polygon", ":first-child").attr( + "points", + points.map(function(d) { + return d.x + "," + d.y; + }).join(" ") + ).attr("transform", "translate(" + -w / 2 + "," + h / 2 + ")"); +} +const flowChartShapes = { + addToRender, + addToRenderV2 +}; +const conf = {}; +const setConf = function(cnf) { + const keys = Object.keys(cnf); + for (const key of keys) { + conf[key] = cnf[key]; + } +}; +const addVertices = async function(vert, g, svgId, root, _doc, diagObj) { + const svg2 = !root ? d3select(`[id="${svgId}"]`) : root.select(`[id="${svgId}"]`); + const doc = !_doc ? document : _doc; + const keys = Object.keys(vert); + for (const id of keys) { + const vertex = vert[id]; + let classStr = "default"; + if (vertex.classes.length > 0) { + classStr = vertex.classes.join(" "); + } + const styles = getStylesFromArray(vertex.styles); + let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id; + let vertexNode; + if (evaluate(getConfig().flowchart.htmlLabels)) { + const node = { + label: await renderKatex( + vertexText.replace( + /fa[blrs]?:fa-[\w-]+/g, + // cspell:disable-line + (s) => `` + ), + getConfig() + ) + }; + vertexNode = addHtmlLabel(svg2, node).node(); + vertexNode.parentNode.removeChild(vertexNode); + } else { + const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text"); + svgLabel.setAttribute("style", styles.labelStyle.replace("color:", "fill:")); + const rows = vertexText.split(common.lineBreakRegex); + for (const row of rows) { + const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan"); + tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"); + tspan.setAttribute("dy", "1em"); + tspan.setAttribute("x", "1"); + tspan.textContent = row; + svgLabel.appendChild(tspan); + } + vertexNode = svgLabel; + } + let radius = 0; + let _shape = ""; + switch (vertex.type) { + case "round": + radius = 5; + _shape = "rect"; + break; + case "square": + _shape = "rect"; + break; + case "diamond": + _shape = "question"; + break; + case "hexagon": + _shape = "hexagon"; + break; + case "odd": + _shape = "rect_left_inv_arrow"; + break; + case "lean_right": + _shape = "lean_right"; + break; + case "lean_left": + _shape = "lean_left"; + break; + case "trapezoid": + _shape = "trapezoid"; + break; + case "inv_trapezoid": + _shape = "inv_trapezoid"; + break; + case "odd_right": + _shape = "rect_left_inv_arrow"; + break; + case "circle": + _shape = "circle"; + break; + case "ellipse": + _shape = "ellipse"; + break; + case "stadium": + _shape = "stadium"; + break; + case "subroutine": + _shape = "subroutine"; + break; + case "cylinder": + _shape = "cylinder"; + break; + case "group": + _shape = "rect"; + break; + default: + _shape = "rect"; + } + log.warn("Adding node", vertex.id, vertex.domId); + g.setNode(diagObj.db.lookUpDomId(vertex.id), { + labelType: "svg", + labelStyle: styles.labelStyle, + shape: _shape, + label: vertexNode, + rx: radius, + ry: radius, + class: classStr, + style: styles.style, + id: diagObj.db.lookUpDomId(vertex.id) + }); + } +}; +const addEdges = async function(edges, g, diagObj) { + let cnt = 0; + let defaultStyle; + let defaultLabelStyle; + if (edges.defaultStyle !== void 0) { + const defaultStyles = getStylesFromArray(edges.defaultStyle); + defaultStyle = defaultStyles.style; + defaultLabelStyle = defaultStyles.labelStyle; + } + for (const edge of edges) { + cnt++; + const linkId = "L-" + edge.start + "-" + edge.end; + const linkNameStart = "LS-" + edge.start; + const linkNameEnd = "LE-" + edge.end; + const edgeData = {}; + if (edge.type === "arrow_open") { + edgeData.arrowhead = "none"; + } else { + edgeData.arrowhead = "normal"; + } + let style = ""; + let labelStyle = ""; + if (edge.style !== void 0) { + const styles = getStylesFromArray(edge.style); + style = styles.style; + labelStyle = styles.labelStyle; + } else { + switch (edge.stroke) { + case "normal": + style = "fill:none"; + if (defaultStyle !== void 0) { + style = defaultStyle; + } + if (defaultLabelStyle !== void 0) { + labelStyle = defaultLabelStyle; + } + break; + case "dotted": + style = "fill:none;stroke-width:2px;stroke-dasharray:3;"; + break; + case "thick": + style = " stroke-width: 3.5px;fill:none"; + break; + } + } + edgeData.style = style; + edgeData.labelStyle = labelStyle; + if (edge.interpolate !== void 0) { + edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear); + } else if (edges.defaultInterpolate !== void 0) { + edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear); + } else { + edgeData.curve = interpolateToCurve(conf.curve, curveLinear); + } + if (edge.text === void 0) { + if (edge.style !== void 0) { + edgeData.arrowheadStyle = "fill: #333"; + } + } else { + edgeData.arrowheadStyle = "fill: #333"; + edgeData.labelpos = "c"; + if (evaluate(getConfig().flowchart.htmlLabels)) { + edgeData.labelType = "html"; + edgeData.label = `${await renderKatex( + edge.text.replace( + /fa[blrs]?:fa-[\w-]+/g, + // cspell:disable-line + (s) => `` + ), + getConfig() + )}`; + } else { + edgeData.labelType = "text"; + edgeData.label = edge.text.replace(common.lineBreakRegex, "\n"); + if (edge.style === void 0) { + edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none"; + } + edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:"); + } + } + edgeData.id = linkId; + edgeData.class = linkNameStart + " " + linkNameEnd; + edgeData.minlen = edge.length || 1; + g.setEdge(diagObj.db.lookUpDomId(edge.start), diagObj.db.lookUpDomId(edge.end), edgeData, cnt); + } +}; +const getClasses = function(text2, diagObj) { + log.info("Extracting classes"); + return diagObj.db.getClasses(); +}; +const draw = async function(text2, id, _version, diagObj) { + log.info("Drawing flowchart"); + const { securityLevel, flowchart: conf2 } = getConfig(); + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + let dir = diagObj.db.getDirection(); + if (dir === void 0) { + dir = "TD"; + } + const nodeSpacing = conf2.nodeSpacing || 50; + const rankSpacing = conf2.rankSpacing || 50; + const g = new Graph({ + multigraph: true, + compound: true + }).setGraph({ + rankdir: dir, + nodesep: nodeSpacing, + ranksep: rankSpacing, + marginx: 8, + marginy: 8 + }).setDefaultEdgeLabel(function() { + return {}; + }); + let subG; + const subGraphs = diagObj.db.getSubGraphs(); + for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) { + subG = subGraphs[i2]; + diagObj.db.addVertex(subG.id, subG.title, "group", void 0, subG.classes); + } + const vert = diagObj.db.getVertices(); + log.warn("Get vertices", vert); + const edges = diagObj.db.getEdges(); + let i = 0; + for (i = subGraphs.length - 1; i >= 0; i--) { + subG = subGraphs[i]; + selectAll("cluster").append("text"); + for (let j = 0; j < subG.nodes.length; j++) { + log.warn( + "Setting subgraph", + subG.nodes[j], + diagObj.db.lookUpDomId(subG.nodes[j]), + diagObj.db.lookUpDomId(subG.id) + ); + g.setParent(diagObj.db.lookUpDomId(subG.nodes[j]), diagObj.db.lookUpDomId(subG.id)); + } + } + await addVertices(vert, g, id, root, doc, diagObj); + await addEdges(edges, g, diagObj); + const render$1 = new render(); + flowChartShapes.addToRender(render$1); + render$1.arrows().none = function normal2(parent, id2, edge, type) { + const marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"); + const path = marker.append("path").attr("d", "M 0 0 L 0 0 L 0 0 z"); + applyStyle(path, edge[type + "Style"]); + }; + render$1.arrows().normal = function normal2(parent, id2) { + const marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"); + marker.append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowheadPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); + }; + const svg2 = root.select(`[id="${id}"]`); + const element = root.select("#" + id + " g"); + render$1(element, g); + element.selectAll("g.node").attr("title", function() { + return diagObj.db.getTooltip(this.id); + }); + diagObj.db.indexNodes("subGraph" + i); + for (i = 0; i < subGraphs.length; i++) { + subG = subGraphs[i]; + if (subG.title !== "undefined") { + const clusterRects = doc.querySelectorAll( + "#" + id + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"] rect' + ); + const clusterEl = doc.querySelectorAll( + "#" + id + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"]' + ); + const xPos = clusterRects[0].x.baseVal.value; + const yPos = clusterRects[0].y.baseVal.value; + const _width = clusterRects[0].width.baseVal.value; + const cluster = d3select(clusterEl[0]); + const te = cluster.select(".label"); + te.attr("transform", `translate(${xPos + _width / 2}, ${yPos + 14})`); + te.attr("id", id + "Text"); + for (let j = 0; j < subG.classes.length; j++) { + clusterEl[0].classList.add(subG.classes[j]); + } + } + } + if (!conf2.htmlLabels) { + const labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label'); + for (const label of labels) { + const dim = label.getBBox(); + const rect2 = doc.createElementNS("http://www.w3.org/2000/svg", "rect"); + rect2.setAttribute("rx", 0); + rect2.setAttribute("ry", 0); + rect2.setAttribute("width", dim.width); + rect2.setAttribute("height", dim.height); + label.insertBefore(rect2, label.firstChild); + } + } + setupGraphViewbox(g, svg2, conf2.diagramPadding, conf2.useMaxWidth); + const keys = Object.keys(vert); + keys.forEach(function(key) { + const vertex = vert[key]; + if (vertex.link) { + const node = root.select("#" + id + ' [id="' + diagObj.db.lookUpDomId(key) + '"]'); + if (node) { + const link = doc.createElementNS("http://www.w3.org/2000/svg", "a"); + link.setAttributeNS("http://www.w3.org/2000/svg", "class", vertex.classes.join(" ")); + link.setAttributeNS("http://www.w3.org/2000/svg", "href", vertex.link); + link.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener"); + if (securityLevel === "sandbox") { + link.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top"); + } else if (vertex.linkTarget) { + link.setAttributeNS("http://www.w3.org/2000/svg", "target", vertex.linkTarget); + } + const linkNode = node.insert(function() { + return link; + }, ":first-child"); + const shape = node.select(".label-container"); + if (shape) { + linkNode.append(function() { + return shape.node(); + }); + } + const label = node.select(".label"); + if (label) { + linkNode.append(function() { + return label.node(); + }); + } + } + } + }); +}; +const flowRenderer = { + setConf, + addVertices, + addEdges, + getClasses, + draw +}; +const diagram = { + parser: parser$1, + db: flowDb, + renderer: flowRendererV2, + styles: flowStyles, + init: (cnf) => { + if (!cnf.flowchart) { + cnf.flowchart = {}; + } + cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; + flowRenderer.setConf(cnf.flowchart); + flowDb.clear(); + flowDb.setGen("gen-1"); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/flowDiagram-v2-13329dc7.js b/assets/lib/mermaid/flowDiagram-v2-13329dc7.js new file mode 100644 index 000000000..d94fcdf2e --- /dev/null +++ b/assets/lib/mermaid/flowDiagram-v2-13329dc7.js @@ -0,0 +1,40 @@ +import { p as parser, f as flowDb } from "./flowDb-c1833063.js"; +import { f as flowRendererV2, a as flowStyles } from "./styles-483fbfea.js"; +import { p as setConfig } from "./mermaid-6dc72991.js"; +import "d3"; +import "dagre-d3-es/src/graphlib/index.js"; +import "./index-01f381cb.js"; +import "dagre-d3-es/src/dagre/index.js"; +import "dagre-d3-es/src/graphlib/json.js"; +import "./edges-066a5561.js"; +import "./createText-ca0c5216.js"; +import "mdast-util-from-markdown"; +import "ts-dedent"; +import "dagre-d3-es/src/dagre-js/label/add-html-label.js"; +import "khroma"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +const diagram = { + parser, + db: flowDb, + renderer: flowRendererV2, + styles: flowStyles, + init: (cnf) => { + if (!cnf.flowchart) { + cnf.flowchart = {}; + } + cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; + setConfig({ flowchart: { arrowMarkerAbsolute: cnf.arrowMarkerAbsolute } }); + flowRendererV2.setConf(cnf.flowchart); + flowDb.clear(); + flowDb.setGen("gen-2"); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/flowDiagram-v2-54711e03.js b/assets/lib/mermaid/flowDiagram-v2-54711e03.js new file mode 100644 index 000000000..4d7e6df06 --- /dev/null +++ b/assets/lib/mermaid/flowDiagram-v2-54711e03.js @@ -0,0 +1,32 @@ +import { p as parser, f as flowDb } from "./flowDb-ba9bd7fa.js"; +import { f as flowRendererV2, g as flowStyles } from "./styles-727cdd61.js"; +import { u as setConfig } from "./mermaid-dcacb631.js"; +import "./graph-fe24fab6.js"; +import "./index-fc479858.js"; +import "./layout-163b9689.js"; +import "./clone-9ea6bfeb.js"; +import "./edges-ce5cfb7c.js"; +import "./createText-b70fe78a.js"; +import "./line-87f517ef.js"; +import "./array-b7dcf730.js"; +import "./path-39bad7e2.js"; +import "./channel-f9001828.js"; +const diagram = { + parser, + db: flowDb, + renderer: flowRendererV2, + styles: flowStyles, + init: (cnf) => { + if (!cnf.flowchart) { + cnf.flowchart = {}; + } + cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; + setConfig({ flowchart: { arrowMarkerAbsolute: cnf.arrowMarkerAbsolute } }); + flowRendererV2.setConf(cnf.flowchart); + flowDb.clear(); + flowDb.setGen("gen-2"); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/flowDiagram-v2-f2119625.js b/assets/lib/mermaid/flowDiagram-v2-f2119625.js new file mode 100644 index 000000000..0f914e5c9 --- /dev/null +++ b/assets/lib/mermaid/flowDiagram-v2-f2119625.js @@ -0,0 +1,25 @@ +import { p as e, f as o } from "./flowDb-9a89ea33.js"; +import { f as t, g as a } from "./styles-e75131e4.js"; +import { u as i } from "./mermaid-9f2aa176.js"; +import "./graph-0ee63739.js"; +import "./index-bb6d8841.js"; +import "./layout-fd473db2.js"; +import "./clone-afc2f047.js"; +import "./edges-16357fde.js"; +import "./createText-03b82060.js"; +import "./line-24d93f1b.js"; +import "./array-2ff2c7a6.js"; +import "./path-428ebac9.js"; +import "./channel-ebbc4130.js"; +const M = { + parser: e, + db: o, + renderer: t, + styles: a, + init: (r) => { + r.flowchart || (r.flowchart = {}), r.flowchart.arrowMarkerAbsolute = r.arrowMarkerAbsolute, i({ flowchart: { arrowMarkerAbsolute: r.arrowMarkerAbsolute } }), t.setConf(r.flowchart), o.clear(), o.setGen("gen-2"); + } +}; +export { + M as diagram +}; diff --git a/assets/lib/mermaid/flowchart-elk-definition-2d49707c.js b/assets/lib/mermaid/flowchart-elk-definition-2d49707c.js new file mode 100644 index 000000000..a4e6a066f --- /dev/null +++ b/assets/lib/mermaid/flowchart-elk-definition-2d49707c.js @@ -0,0 +1,93397 @@ +import { d as db, p as parser } from "./flowDb-ba9bd7fa.js"; +import { P as commonjsGlobal, Q as getDefaultExportFromCjs, l as log, j as d3select, _ as getConfig, t as setupGraphViewbox, o as getStylesFromArray, q as interpolateToCurve, n as curveLinear, f as common } from "./mermaid-dcacb631.js"; +import { a as insertMarkers, e as insertNode, l as labelHelper, f as insertEdgeLabel, k as getLineFunctionsWithOffset, m as addEdgeMarkers } from "./edges-ce5cfb7c.js"; +import { l as line } from "./line-87f517ef.js"; +import "./createText-b70fe78a.js"; +import "./array-b7dcf730.js"; +import "./path-39bad7e2.js"; +const findCommonAncestor = (id1, id2, treeData) => { + const { parentById } = treeData; + const visited = /* @__PURE__ */ new Set(); + let currentId = id1; + while (currentId) { + visited.add(currentId); + if (currentId === id2) { + return currentId; + } + currentId = parentById[currentId]; + } + currentId = id2; + while (currentId) { + if (visited.has(currentId)) { + return currentId; + } + currentId = parentById[currentId]; + } + return "root"; +}; +function commonjsRequire(path) { + throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); +} +var elk_bundled = { exports: {} }; +(function(module, exports) { + (function(f) { + { + module.exports = f(); + } + })(function() { + return function() { + function r(e, n, t) { + function o(i2, f) { + if (!n[i2]) { + if (!e[i2]) { + var c = "function" == typeof commonjsRequire && commonjsRequire; + if (!f && c) + return c(i2, true); + if (u) + return u(i2, true); + var a = new Error("Cannot find module '" + i2 + "'"); + throw a.code = "MODULE_NOT_FOUND", a; + } + var p = n[i2] = { exports: {} }; + e[i2][0].call(p.exports, function(r2) { + var n2 = e[i2][1][r2]; + return o(n2 || r2); + }, p, p.exports, r, e, n, t); + } + return n[i2].exports; + } + for (var u = "function" == typeof commonjsRequire && commonjsRequire, i = 0; i < t.length; i++) + o(t[i]); + return o; + } + return r; + }()({ 1: [function(require2, module2, exports2) { + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var _createClass = function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + return function(Constructor, protoProps, staticProps) { + if (protoProps) + defineProperties(Constructor.prototype, protoProps); + if (staticProps) + defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var ELK2 = function() { + function ELK3() { + var _this = this; + var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, defaultLayoutOptions = _ref$defaultLayoutOpt === void 0 ? {} : _ref$defaultLayoutOpt, _ref$algorithms = _ref.algorithms, algorithms = _ref$algorithms === void 0 ? ["layered", "stress", "mrtree", "radial", "force", "disco", "sporeOverlap", "sporeCompaction", "rectpacking"] : _ref$algorithms, workerFactory = _ref.workerFactory, workerUrl = _ref.workerUrl; + _classCallCheck(this, ELK3); + this.defaultLayoutOptions = defaultLayoutOptions; + this.initialized = false; + if (typeof workerUrl === "undefined" && typeof workerFactory === "undefined") { + throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); + } + var factory = workerFactory; + if (typeof workerUrl !== "undefined" && typeof workerFactory === "undefined") { + factory = function factory2(url) { + return new Worker(url); + }; + } + var worker = factory(workerUrl); + if (typeof worker.postMessage !== "function") { + throw new TypeError("Created worker does not provide the required 'postMessage' function."); + } + this.worker = new PromisedWorker(worker); + this.worker.postMessage({ + cmd: "register", + algorithms + }).then(function(r) { + return _this.initialized = true; + }).catch(console.err); + } + _createClass(ELK3, [{ + key: "layout", + value: function layout(graph) { + var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref2$layoutOptions = _ref2.layoutOptions, layoutOptions = _ref2$layoutOptions === void 0 ? this.defaultLayoutOptions : _ref2$layoutOptions, _ref2$logging = _ref2.logging, logging = _ref2$logging === void 0 ? false : _ref2$logging, _ref2$measureExecutio = _ref2.measureExecutionTime, measureExecutionTime = _ref2$measureExecutio === void 0 ? false : _ref2$measureExecutio; + if (!graph) { + return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); + } + return this.worker.postMessage({ + cmd: "layout", + graph, + layoutOptions, + options: { + logging, + measureExecutionTime + } + }); + } + }, { + key: "knownLayoutAlgorithms", + value: function knownLayoutAlgorithms() { + return this.worker.postMessage({ cmd: "algorithms" }); + } + }, { + key: "knownLayoutOptions", + value: function knownLayoutOptions() { + return this.worker.postMessage({ cmd: "options" }); + } + }, { + key: "knownLayoutCategories", + value: function knownLayoutCategories() { + return this.worker.postMessage({ cmd: "categories" }); + } + }, { + key: "terminateWorker", + value: function terminateWorker() { + this.worker.terminate(); + } + }]); + return ELK3; + }(); + exports2.default = ELK2; + var PromisedWorker = function() { + function PromisedWorker2(worker) { + var _this2 = this; + _classCallCheck(this, PromisedWorker2); + if (worker === void 0) { + throw new Error("Missing mandatory parameter 'worker'."); + } + this.resolvers = {}; + this.worker = worker; + this.worker.onmessage = function(answer) { + setTimeout(function() { + _this2.receive(_this2, answer); + }, 0); + }; + } + _createClass(PromisedWorker2, [{ + key: "postMessage", + value: function postMessage(msg) { + var id = this.id || 0; + this.id = id + 1; + msg.id = id; + var self2 = this; + return new Promise(function(resolve, reject) { + self2.resolvers[id] = function(err, res) { + if (err) { + self2.convertGwtStyleError(err); + reject(err); + } else { + resolve(res); + } + }; + self2.worker.postMessage(msg); + }); + } + }, { + key: "receive", + value: function receive(self2, answer) { + var json = answer.data; + var resolver = self2.resolvers[json.id]; + if (resolver) { + delete self2.resolvers[json.id]; + if (json.error) { + resolver(json.error); + } else { + resolver(null, json.data); + } + } + } + }, { + key: "terminate", + value: function terminate() { + if (this.worker.terminate) { + this.worker.terminate(); + } + } + }, { + key: "convertGwtStyleError", + value: function convertGwtStyleError(err) { + if (!err) { + return; + } + var javaException = err["__java$exception"]; + if (javaException) { + if (javaException.cause && javaException.cause.backingJsObject) { + err.cause = javaException.cause.backingJsObject; + this.convertGwtStyleError(err.cause); + } + delete err["__java$exception"]; + } + } + }]); + return PromisedWorker2; + }(); + }, {}], 2: [function(require2, module2, exports2) { + (function(global) { + (function() { + var $wnd; + if (typeof window !== "undefined") + $wnd = window; + else if (typeof global !== "undefined") + $wnd = global; + else if (typeof self !== "undefined") + $wnd = self; + var o; + function nb() { + } + function xb() { + } + function Fd() { + } + function hh() { + } + function lq() { + } + function Nq() { + } + function ir() { + } + function Ws() { + } + function Zw() { + } + function jx() { + } + function rx() { + } + function sx() { + } + function My() { + } + function bA() { + } + function mA() { + } + function tA() { + } + function aB() { + } + function dB() { + } + function jB() { + } + function dC() { + } + function keb() { + } + function geb() { + } + function oeb() { + } + function iob() { + } + function Job() { + } + function Rob() { + } + function apb() { + } + function ipb() { + } + function nrb() { + } + function wrb() { + } + function Brb() { + } + function Prb() { + } + function ltb() { + } + function svb() { + } + function xvb() { + } + function zvb() { + } + function $xb() { + } + function Gzb() { + } + function NAb() { + } + function VAb() { + } + function rBb() { + } + function RBb() { + } + function TBb() { + } + function XBb() { + } + function ZBb() { + } + function _Bb() { + } + function bCb() { + } + function dCb() { + } + function fCb() { + } + function jCb() { + } + function rCb() { + } + function uCb() { + } + function wCb() { + } + function yCb() { + } + function ACb() { + } + function ECb() { + } + function FEb() { + } + function IEb() { + } + function KEb() { + } + function MEb() { + } + function gFb() { + } + function FFb() { + } + function JFb() { + } + function xGb() { + } + function AGb() { + } + function YGb() { + } + function oHb() { + } + function tHb() { + } + function xHb() { + } + function pIb() { + } + function BJb() { + } + function kLb() { + } + function mLb() { + } + function oLb() { + } + function qLb() { + } + function FLb() { + } + function JLb() { + } + function KMb() { + } + function MMb() { + } + function OMb() { + } + function YMb() { + } + function MNb() { + } + function ONb() { + } + function aOb() { + } + function eOb() { + } + function xOb() { + } + function BOb() { + } + function DOb() { + } + function FOb() { + } + function IOb() { + } + function MOb() { + } + function POb() { + } + function UOb() { + } + function ZOb() { + } + function cPb() { + } + function gPb() { + } + function nPb() { + } + function qPb() { + } + function tPb() { + } + function wPb() { + } + function CPb() { + } + function qQb() { + } + function GQb() { + } + function bRb() { + } + function gRb() { + } + function kRb() { + } + function pRb() { + } + function wRb() { + } + function xSb() { + } + function TSb() { + } + function VSb() { + } + function XSb() { + } + function ZSb() { + } + function _Sb() { + } + function tTb() { + } + function DTb() { + } + function FTb() { + } + function FXb() { + } + function hXb() { + } + function hWb() { + } + function mWb() { + } + function CVb() { + } + function XXb() { + } + function $Xb() { + } + function bYb() { + } + function lYb() { + } + function FYb() { + } + function XYb() { + } + function aZb() { + } + function SZb() { + } + function ZZb() { + } + function Z_b() { + } + function j_b() { + } + function j$b() { + } + function b$b() { + } + function f$b() { + } + function n$b() { + } + function K_b() { + } + function V_b() { + } + function b0b() { + } + function l0b() { + } + function X1b() { + } + function _1b() { + } + function x3b() { + } + function r4b() { + } + function w4b() { + } + function A4b() { + } + function E4b() { + } + function I4b() { + } + function M4b() { + } + function o5b() { + } + function q5b() { + } + function w5b() { + } + function A5b() { + } + function E5b() { + } + function h6b() { + } + function j6b() { + } + function l6b() { + } + function q6b() { + } + function v6b() { + } + function y6b() { + } + function G6b() { + } + function K6b() { + } + function N6b() { + } + function P6b() { + } + function R6b() { + } + function b7b() { + } + function f7b() { + } + function j7b() { + } + function n7b() { + } + function C7b() { + } + function H7b() { + } + function J7b() { + } + function L7b() { + } + function N7b() { + } + function P7b() { + } + function a8b() { + } + function c8b() { + } + function e8b() { + } + function g8b() { + } + function i8b() { + } + function m8b() { + } + function Z8b() { + } + function f9b() { + } + function i9b() { + } + function o9b() { + } + function C9b() { + } + function F9b() { + } + function K9b() { + } + function Q9b() { + } + function aac() { + } + function bac() { + } + function eac() { + } + function mac() { + } + function pac() { + } + function rac() { + } + function tac() { + } + function xac() { + } + function Aac() { + } + function Dac() { + } + function Iac() { + } + function Oac() { + } + function Uac() { + } + function Ucc() { + } + function scc() { + } + function ycc() { + } + function Acc() { + } + function Ccc() { + } + function Ncc() { + } + function Wcc() { + } + function ydc() { + } + function Adc() { + } + function Gdc() { + } + function Ldc() { + } + function Zdc() { + } + function fec() { + } + function Dec() { + } + function Gec() { + } + function Kec() { + } + function efc() { + } + function jfc() { + } + function nfc() { + } + function Bfc() { + } + function Ifc() { + } + function Lfc() { + } + function Rfc() { + } + function Ufc() { + } + function Zfc() { + } + function cgc() { + } + function egc() { + } + function ggc() { + } + function igc() { + } + function kgc() { + } + function Dgc() { + } + function Hgc() { + } + function Lgc() { + } + function Ngc() { + } + function Pgc() { + } + function Vgc() { + } + function Ygc() { + } + function chc() { + } + function ehc() { + } + function ghc() { + } + function ihc() { + } + function mhc() { + } + function rhc() { + } + function uhc() { + } + function whc() { + } + function yhc() { + } + function Ahc() { + } + function Chc() { + } + function Ghc() { + } + function Nhc() { + } + function Phc() { + } + function Rhc() { + } + function Thc() { + } + function $hc() { + } + function aic() { + } + function cic() { + } + function eic() { + } + function jic() { + } + function nic() { + } + function pic() { + } + function ric() { + } + function vic() { + } + function yic() { + } + function Dic() { + } + function Ric() { + } + function Zic() { + } + function bjc() { + } + function djc() { + } + function jjc() { + } + function njc() { + } + function rjc() { + } + function tjc() { + } + function zjc() { + } + function Djc() { + } + function Fjc() { + } + function Ljc() { + } + function Pjc() { + } + function Rjc() { + } + function fkc() { + } + function Kkc() { + } + function Mkc() { + } + function Okc() { + } + function Qkc() { + } + function Skc() { + } + function Ukc() { + } + function Wkc() { + } + function clc() { + } + function elc() { + } + function klc() { + } + function mlc() { + } + function olc() { + } + function qlc() { + } + function wlc() { + } + function ylc() { + } + function Alc() { + } + function Jlc() { + } + function Joc() { + } + function poc() { + } + function roc() { + } + function toc() { + } + function voc() { + } + function Boc() { + } + function Foc() { + } + function Hoc() { + } + function Loc() { + } + function Noc() { + } + function Poc() { + } + function qnc() { + } + function unc() { + } + function upc() { + } + function kpc() { + } + function mpc() { + } + function opc() { + } + function qpc() { + } + function ypc() { + } + function Cpc() { + } + function Mpc() { + } + function Qpc() { + } + function dqc() { + } + function jqc() { + } + function Aqc() { + } + function Eqc() { + } + function Gqc() { + } + function Sqc() { + } + function arc() { + } + function lrc() { + } + function zrc() { + } + function Hrc() { + } + function bsc() { + } + function dsc() { + } + function fsc() { + } + function ksc() { + } + function msc() { + } + function Asc() { + } + function Csc() { + } + function Esc() { + } + function Ksc() { + } + function Nsc() { + } + function Ssc() { + } + function CCc() { + } + function tGc() { + } + function aHc() { + } + function gHc() { + } + function nIc() { + } + function PJc() { + } + function XKc() { + } + function fLc() { + } + function hLc() { + } + function lLc() { + } + function eNc() { + } + function IOc() { + } + function MOc() { + } + function WOc() { + } + function YOc() { + } + function $Oc() { + } + function cPc() { + } + function iPc() { + } + function mPc() { + } + function oPc() { + } + function qPc() { + } + function sPc() { + } + function wPc() { + } + function APc() { + } + function FPc() { + } + function HPc() { + } + function NPc() { + } + function PPc() { + } + function TPc() { + } + function VPc() { + } + function ZPc() { + } + function _Pc() { + } + function bQc() { + } + function dQc() { + } + function SQc() { + } + function hRc() { + } + function HRc() { + } + function HSc() { + } + function pSc() { + } + function xSc() { + } + function zSc() { + } + function BSc() { + } + function DSc() { + } + function FSc() { + } + function CTc() { + } + function ITc() { + } + function KTc() { + } + function MTc() { + } + function XTc() { + } + function ZTc() { + } + function jVc() { + } + function lVc() { + } + function zVc() { + } + function IVc() { + } + function KVc() { + } + function KWc() { + } + function uWc() { + } + function xWc() { + } + function AWc() { + } + function QWc() { + } + function UWc() { + } + function qXc() { + } + function KXc() { + } + function OXc() { + } + function SXc() { + } + function $Xc() { + } + function mYc() { + } + function rYc() { + } + function zYc() { + } + function DYc() { + } + function FYc() { + } + function HYc() { + } + function JYc() { + } + function cZc() { + } + function gZc() { + } + function iZc() { + } + function pZc() { + } + function tZc() { + } + function vZc() { + } + function AZc() { + } + function GZc() { + } + function l_c() { + } + function l1c() { + } + function b1c() { + } + function d1c() { + } + function h1c() { + } + function n1c() { + } + function r1c() { + } + function v1c() { + } + function x1c() { + } + function D1c() { + } + function H1c() { + } + function L1c() { + } + function R1c() { + } + function V1c() { + } + function Z1c() { + } + function Z0c() { + } + function a0c() { + } + function c0c() { + } + function e0c() { + } + function k0c() { + } + function o0c() { + } + function b2c() { + } + function l2c() { + } + function p2c() { + } + function Y2c() { + } + function _2c() { + } + function A3c() { + } + function F3c() { + } + function I3c() { + } + function K3c() { + } + function M3c() { + } + function Q3c() { + } + function U3c() { + } + function c5c() { + } + function D5c() { + } + function G5c() { + } + function J5c() { + } + function N5c() { + } + function V5c() { + } + function p6c() { + } + function s6c() { + } + function H6c() { + } + function K6c() { + } + function _7c() { + } + function h8c() { + } + function j8c() { + } + function o8c() { + } + function r8c() { + } + function u8c() { + } + function R8c() { + } + function X8c() { + } + function o9c() { + } + function s9c() { + } + function x9c() { + } + function Qad() { + } + function rcd() { + } + function Xcd() { + } + function vdd() { + } + function Tdd() { + } + function _dd() { + } + function qed() { + } + function sed() { + } + function ved() { + } + function Hed() { + } + function Zed() { + } + function bfd() { + } + function ifd() { + } + function Gfd() { + } + function Ifd() { + } + function Igd() { + } + function agd() { + } + function dgd() { + } + function pgd() { + } + function Hgd() { + } + function Kgd() { + } + function Mgd() { + } + function Ogd() { + } + function Qgd() { + } + function Sgd() { + } + function Ugd() { + } + function Wgd() { + } + function Ygd() { + } + function $gd() { + } + function ahd() { + } + function chd() { + } + function ehd() { + } + function ghd() { + } + function ihd() { + } + function khd() { + } + function mhd() { + } + function ohd() { + } + function qhd() { + } + function shd() { + } + function Shd() { + } + function lkd() { + } + function znd() { + } + function Jpd() { + } + function jrd() { + } + function Mrd() { + } + function Qrd() { + } + function Urd() { + } + function Yrd() { + } + function Yud() { + } + function eud() { + } + function asd() { + } + function Lsd() { + } + function btd() { + } + function dtd() { + } + function jtd() { + } + function otd() { + } + function ztd() { + } + function Xxd() { + } + function $yd() { + } + function rzd() { + } + function Rzd() { + } + function KAd() { + } + function hCd() { + } + function _Cd() { + } + function _Sd() { + } + function OSd() { + } + function BDd() { + } + function BId() { + } + function JId() { + } + function YHd() { + } + function fLd() { + } + function cPd() { + } + function hQd() { + } + function AQd() { + } + function kUd() { + } + function VUd() { + } + function pVd() { + } + function W$d() { + } + function Z$d() { + } + function a_d() { + } + function i_d() { + } + function v_d() { + } + function y_d() { + } + function f1d() { + } + function L5d() { + } + function v6d() { + } + function b8d() { + } + function e8d() { + } + function h8d() { + } + function k8d() { + } + function n8d() { + } + function q8d() { + } + function t8d() { + } + function w8d() { + } + function z8d() { + } + function X9d() { + } + function _9d() { + } + function Mae() { + } + function cbe() { + } + function ebe() { + } + function hbe() { + } + function kbe() { + } + function nbe() { + } + function qbe() { + } + function tbe() { + } + function wbe() { + } + function zbe() { + } + function Cbe() { + } + function Fbe() { + } + function Ibe() { + } + function Lbe() { + } + function Obe() { + } + function Rbe() { + } + function Ube() { + } + function Xbe() { + } + function $be() { + } + function bce() { + } + function ece() { + } + function hce() { + } + function kce() { + } + function nce() { + } + function qce() { + } + function tce() { + } + function wce() { + } + function zce() { + } + function Cce() { + } + function Fce() { + } + function Ice() { + } + function Lce() { + } + function Oce() { + } + function Rce() { + } + function Uce() { + } + function Xce() { + } + function $ce() { + } + function bde() { + } + function ede() { + } + function hde() { + } + function kde() { + } + function nde() { + } + function qde() { + } + function tde() { + } + function wde() { + } + function Hie() { + } + function rke() { + } + function rne() { + } + function Ene() { + } + function Gne() { + } + function Jne() { + } + function Mne() { + } + function Pne() { + } + function Sne() { + } + function Vne() { + } + function Yne() { + } + function _ne() { + } + function yme() { + } + function coe() { + } + function foe() { + } + function ioe() { + } + function loe() { + } + function ooe() { + } + function roe() { + } + function uoe() { + } + function xoe() { + } + function Aoe() { + } + function Doe() { + } + function Goe() { + } + function Joe() { + } + function Moe() { + } + function Poe() { + } + function Soe() { + } + function Voe() { + } + function Yoe() { + } + function _oe() { + } + function cpe() { + } + function fpe() { + } + function ipe() { + } + function lpe() { + } + function ope() { + } + function rpe() { + } + function upe() { + } + function xpe() { + } + function Ape() { + } + function Dpe() { + } + function Gpe() { + } + function Jpe() { + } + function Mpe() { + } + function Ppe() { + } + function Spe() { + } + function Vpe() { + } + function Ype() { + } + function _pe() { + } + function cqe() { + } + function fqe() { + } + function iqe() { + } + function lqe() { + } + function oqe() { + } + function rqe() { + } + function uqe() { + } + function Tqe() { + } + function sue() { + } + function Cue() { + } + function zl() { + wb(); + } + function z7b() { + s7b(); + } + function ZHb() { + YHb(); + } + function fSb() { + eSb(); + } + function vSb() { + tSb(); + } + function PUb() { + OUb(); + } + function AVb() { + yVb(); + } + function RVb() { + QVb(); + } + function fWb() { + dWb(); + } + function N5b() { + H5b(); + } + function $9b() { + U9b(); + } + function Lcc() { + Hcc(); + } + function pdc() { + Zcc(); + } + function pec() { + iec(); + } + function pGc() { + nGc(); + } + function jGc() { + gGc(); + } + function YGc() { + SGc(); + } + function cGc() { + _Fc(); + } + function NFc() { + KFc(); + } + function xgc() { + sgc(); + } + function xHc() { + tHc(); + } + function pHc() { + lHc(); + } + function IHc() { + CHc(); + } + function XHc() { + RHc(); + } + function boc() { + Mnc(); + } + function yqc() { + mqc(); + } + function Pzc() { + Ozc(); + } + function ACc() { + yCc(); + } + function aKc() { + YJc(); + } + function FLc() { + DLc(); + } + function DNc() { + ANc(); + } + function TNc() { + JNc(); + } + function iQc() { + gQc(); + } + function WRc() { + TRc(); + } + function C$c() { + B$c(); + } + function J0c() { + B0c(); + } + function x0c() { + r0c(); + } + function j_c() { + h_c(); + } + function N_c() { + H_c(); + } + function V_c() { + R_c(); + } + function E4c() { + D4c(); + } + function a5c() { + $4c(); + } + function v7c() { + u7c(); + } + function Z7c() { + X7c(); + } + function pcd() { + ncd(); + } + function Lcd() { + Kcd(); + } + function Vcd() { + Tcd(); + } + function fUd() { + TTd(); + } + function Bfd() { + Afd(); + } + function jkd() { + hkd(); + } + function vmd() { + umd(); + } + function xnd() { + vnd(); + } + function Hpd() { + Fpd(); + } + function HYd() { + lYd(); + } + function yAd() { + qAd(); + } + function gke() { + rue(); + } + function Yxb(a) { + uFb(a); + } + function Yb(a) { + this.a = a; + } + function cc(a) { + this.a = a; + } + function df(a) { + this.a = a; + } + function kf(a) { + this.a = a; + } + function kj(a) { + this.a = a; + } + function qj(a) { + this.a = a; + } + function Lj(a) { + this.a = a; + } + function jh(a) { + this.a = a; + } + function th(a) { + this.a = a; + } + function Bh(a) { + this.a = a; + } + function Xh(a) { + this.a = a; + } + function Xn(a) { + this.a = a; + } + function Di(a) { + this.a = a; + } + function Ki(a) { + this.a = a; + } + function Ik(a) { + this.a = a; + } + function Qk(a) { + this.a = a; + } + function mp(a) { + this.a = a; + } + function Lp(a) { + this.a = a; + } + function iq(a) { + this.a = a; + } + function Eq(a) { + this.a = a; + } + function Vq(a) { + this.a = a; + } + function Or(a) { + this.a = a; + } + function $r(a) { + this.b = a; + } + function Aj(a) { + this.c = a; + } + function vu(a) { + this.a = a; + } + function vw(a) { + this.a = a; + } + function gw(a) { + this.a = a; + } + function lw(a) { + this.a = a; + } + function Iw(a) { + this.a = a; + } + function Nw(a) { + this.a = a; + } + function Sw(a) { + this.a = a; + } + function ex(a) { + this.a = a; + } + function fx(a) { + this.a = a; + } + function lx(a) { + this.a = a; + } + function my(a) { + this.a = a; + } + function qy(a) { + this.a = a; + } + function Oy(a) { + this.a = a; + } + function NB(a) { + this.a = a; + } + function XB(a) { + this.a = a; + } + function hC(a) { + this.a = a; + } + function vC(a) { + this.a = a; + } + function MB() { + this.a = []; + } + function HEb(a, b) { + a.a = b; + } + function E2b(a, b) { + a.a = b; + } + function F2b(a, b) { + a.b = b; + } + function PRb(a, b) { + a.b = b; + } + function RRb(a, b) { + a.b = b; + } + function QJb(a, b) { + a.j = b; + } + function hQb(a, b) { + a.g = b; + } + function iQb(a, b) { + a.i = b; + } + function _Tb(a, b) { + a.c = b; + } + function G2b(a, b) { + a.c = b; + } + function H2b(a, b) { + a.d = b; + } + function aUb(a, b) { + a.d = b; + } + function h3b(a, b) { + a.k = b; + } + function O3b(a, b) { + a.c = b; + } + function Tmc(a, b) { + a.c = b; + } + function Smc(a, b) { + a.a = b; + } + function DJc(a, b) { + a.a = b; + } + function EJc(a, b) { + a.f = b; + } + function NSc(a, b) { + a.a = b; + } + function OSc(a, b) { + a.b = b; + } + function PSc(a, b) { + a.d = b; + } + function QSc(a, b) { + a.i = b; + } + function RSc(a, b) { + a.o = b; + } + function SSc(a, b) { + a.r = b; + } + function yUc(a, b) { + a.a = b; + } + function zUc(a, b) { + a.b = b; + } + function q3c(a, b) { + a.e = b; + } + function r3c(a, b) { + a.f = b; + } + function s3c(a, b) { + a.g = b; + } + function Y9c(a, b) { + a.e = b; + } + function Z9c(a, b) { + a.f = b; + } + function kad(a, b) { + a.f = b; + } + function Ntd(a, b) { + a.a = b; + } + function Otd(a, b) { + a.b = b; + } + function BWd(a, b) { + a.n = b; + } + function $ee(a, b) { + a.a = b; + } + function _ee(a, b) { + a.c = b; + } + function ife(a, b) { + a.c = b; + } + function Efe(a, b) { + a.c = b; + } + function hfe(a, b) { + a.a = b; + } + function Dfe(a, b) { + a.a = b; + } + function jfe(a, b) { + a.d = b; + } + function Ffe(a, b) { + a.d = b; + } + function kfe(a, b) { + a.e = b; + } + function Gfe(a, b) { + a.e = b; + } + function lfe(a, b) { + a.g = b; + } + function Hfe(a, b) { + a.f = b; + } + function Ife(a, b) { + a.j = b; + } + function wme(a, b) { + a.a = b; + } + function Fme(a, b) { + a.a = b; + } + function xme(a, b) { + a.b = b; + } + function gmc(a) { + a.b = a.a; + } + function Lg(a) { + a.c = a.d.d; + } + function fgb(a) { + this.a = a; + } + function zgb(a) { + this.a = a; + } + function Xgb(a) { + this.a = a; + } + function Xkb(a) { + this.a = a; + } + function mkb(a) { + this.a = a; + } + function reb(a) { + this.a = a; + } + function Seb(a) { + this.a = a; + } + function bfb(a) { + this.a = a; + } + function Tfb(a) { + this.a = a; + } + function blb(a) { + this.a = a; + } + function glb(a) { + this.a = a; + } + function llb(a) { + this.a = a; + } + function Ulb(a) { + this.a = a; + } + function _lb(a) { + this.a = a; + } + function Plb(a) { + this.b = a; + } + function Ppb(a) { + this.b = a; + } + function xpb(a) { + this.b = a; + } + function mpb(a) { + this.a = a; + } + function Yqb(a) { + this.a = a; + } + function uqb(a) { + this.c = a; + } + function Anb(a) { + this.c = a; + } + function zwb(a) { + this.c = a; + } + function Dkb(a) { + this.d = a; + } + function brb(a) { + this.a = a; + } + function Frb(a) { + this.a = a; + } + function hsb(a) { + this.a = a; + } + function ctb(a) { + this.a = a; + } + function cxb(a) { + this.a = a; + } + function axb(a) { + this.a = a; + } + function exb(a) { + this.a = a; + } + function gxb(a) { + this.a = a; + } + function wub(a) { + this.a = a; + } + function zAb(a) { + this.a = a; + } + function JAb(a) { + this.a = a; + } + function LAb(a) { + this.a = a; + } + function PAb(a) { + this.a = a; + } + function VBb(a) { + this.a = a; + } + function lCb(a) { + this.a = a; + } + function nCb(a) { + this.a = a; + } + function pCb(a) { + this.a = a; + } + function CCb(a) { + this.a = a; + } + function GCb(a) { + this.a = a; + } + function bDb(a) { + this.a = a; + } + function dDb(a) { + this.a = a; + } + function fDb(a) { + this.a = a; + } + function uDb(a) { + this.a = a; + } + function $Db(a) { + this.a = a; + } + function aEb(a) { + this.a = a; + } + function eEb(a) { + this.a = a; + } + function OEb(a) { + this.a = a; + } + function SEb(a) { + this.a = a; + } + function SFb(a) { + this.a = a; + } + function HFb(a) { + this.a = a; + } + function NFb(a) { + this.a = a; + } + function WGb(a) { + this.a = a; + } + function HJb(a) { + this.a = a; + } + function PJb(a) { + this.a = a; + } + function kNb(a) { + this.a = a; + } + function tOb(a) { + this.a = a; + } + function APb(a) { + this.a = a; + } + function IQb(a) { + this.a = a; + } + function bTb(a) { + this.a = a; + } + function dTb(a) { + this.a = a; + } + function wTb(a) { + this.a = a; + } + function GWb(a) { + this.a = a; + } + function UWb(a) { + this.a = a; + } + function WWb(a) { + this.a = a; + } + function fXb(a) { + this.a = a; + } + function jXb(a) { + this.a = a; + } + function M0b(a) { + this.a = a; + } + function r1b(a) { + this.a = a; + } + function D1b(a) { + this.e = a; + } + function T3b(a) { + this.a = a; + } + function W3b(a) { + this.a = a; + } + function _3b(a) { + this.a = a; + } + function c4b(a) { + this.a = a; + } + function s5b(a) { + this.a = a; + } + function u5b(a) { + this.a = a; + } + function y5b(a) { + this.a = a; + } + function C5b(a) { + this.a = a; + } + function Q5b(a) { + this.a = a; + } + function S5b(a) { + this.a = a; + } + function U5b(a) { + this.a = a; + } + function W5b(a) { + this.a = a; + } + function l7b(a) { + this.a = a; + } + function p7b(a) { + this.a = a; + } + function k8b(a) { + this.a = a; + } + function L8b(a) { + this.a = a; + } + function Rac(a) { + this.a = a; + } + function Xac(a) { + this.a = a; + } + function $ac(a) { + this.a = a; + } + function bbc(a) { + this.a = a; + } + function Cdc(a) { + this.a = a; + } + function Edc(a) { + this.a = a; + } + function Ehc(a) { + this.a = a; + } + function khc(a) { + this.a = a; + } + function Ihc(a) { + this.a = a; + } + function qfc(a) { + this.a = a; + } + function tfc(a) { + this.a = a; + } + function Wfc(a) { + this.a = a; + } + function Fic(a) { + this.a = a; + } + function Vic(a) { + this.a = a; + } + function fjc(a) { + this.a = a; + } + function pjc(a) { + this.a = a; + } + function ckc(a) { + this.a = a; + } + function hkc(a) { + this.a = a; + } + function Ykc(a) { + this.a = a; + } + function $kc(a) { + this.a = a; + } + function alc(a) { + this.a = a; + } + function glc(a) { + this.a = a; + } + function ilc(a) { + this.a = a; + } + function slc(a) { + this.a = a; + } + function Clc(a) { + this.a = a; + } + function xoc(a) { + this.a = a; + } + function zoc(a) { + this.a = a; + } + function spc(a) { + this.a = a; + } + function Vqc(a) { + this.a = a; + } + function Xqc(a) { + this.a = a; + } + function Gsc(a) { + this.a = a; + } + function Isc(a) { + this.a = a; + } + function JGc(a) { + this.a = a; + } + function NGc(a) { + this.a = a; + } + function MHc(a) { + this.a = a; + } + function JIc(a) { + this.a = a; + } + function fJc(a) { + this.a = a; + } + function BJc(a) { + this.a = a; + } + function dJc(a) { + this.c = a; + } + function Trc(a) { + this.b = a; + } + function eKc(a) { + this.a = a; + } + function IKc(a) { + this.a = a; + } + function KKc(a) { + this.a = a; + } + function MKc(a) { + this.a = a; + } + function yLc(a) { + this.a = a; + } + function HMc(a) { + this.a = a; + } + function LMc(a) { + this.a = a; + } + function PMc(a) { + this.a = a; + } + function TMc(a) { + this.a = a; + } + function XMc(a) { + this.a = a; + } + function ZMc(a) { + this.a = a; + } + function aNc(a) { + this.a = a; + } + function jNc(a) { + this.a = a; + } + function aPc(a) { + this.a = a; + } + function gPc(a) { + this.a = a; + } + function kPc(a) { + this.a = a; + } + function yPc(a) { + this.a = a; + } + function CPc(a) { + this.a = a; + } + function JPc(a) { + this.a = a; + } + function RPc(a) { + this.a = a; + } + function XPc(a) { + this.a = a; + } + function mRc(a) { + this.a = a; + } + function xTc(a) { + this.a = a; + } + function CWc(a) { + this.a = a; + } + function EWc(a) { + this.a = a; + } + function IWc(a) { + this.a = a; + } + function OWc(a) { + this.a = a; + } + function dXc(a) { + this.a = a; + } + function gXc(a) { + this.a = a; + } + function EXc(a) { + this.a = a; + } + function WXc(a) { + this.a = a; + } + function YXc(a) { + this.a = a; + } + function aYc(a) { + this.a = a; + } + function cYc(a) { + this.a = a; + } + function eYc(a) { + this.a = a; + } + function iYc(a) { + this.a = a; + } + function i0c(a) { + this.a = a; + } + function g0c(a) { + this.a = a; + } + function P1c(a) { + this.a = a; + } + function Sad(a) { + this.a = a; + } + function Uad(a) { + this.a = a; + } + function Wad(a) { + this.a = a; + } + function Yad(a) { + this.a = a; + } + function cbd(a) { + this.a = a; + } + function ydd(a) { + this.a = a; + } + function Kdd(a) { + this.a = a; + } + function Mdd(a) { + this.a = a; + } + function _ed(a) { + this.a = a; + } + function dfd(a) { + this.a = a; + } + function Kfd(a) { + this.a = a; + } + function prd(a) { + this.a = a; + } + function $rd(a) { + this.a = a; + } + function csd(a) { + this.a = a; + } + function Usd(a) { + this.a = a; + } + function Vtd(a) { + this.a = a; + } + function wud(a) { + this.a = a; + } + function Rud(a) { + this.f = a; + } + function LEd(a) { + this.a = a; + } + function UEd(a) { + this.a = a; + } + function VEd(a) { + this.a = a; + } + function WEd(a) { + this.a = a; + } + function XEd(a) { + this.a = a; + } + function YEd(a) { + this.a = a; + } + function ZEd(a) { + this.a = a; + } + function $Ed(a) { + this.a = a; + } + function _Ed(a) { + this.a = a; + } + function aFd(a) { + this.a = a; + } + function gFd(a) { + this.a = a; + } + function iFd(a) { + this.a = a; + } + function jFd(a) { + this.a = a; + } + function kFd(a) { + this.a = a; + } + function lFd(a) { + this.a = a; + } + function nFd(a) { + this.a = a; + } + function qFd(a) { + this.a = a; + } + function wFd(a) { + this.a = a; + } + function xFd(a) { + this.a = a; + } + function zFd(a) { + this.a = a; + } + function AFd(a) { + this.a = a; + } + function BFd(a) { + this.a = a; + } + function CFd(a) { + this.a = a; + } + function DFd(a) { + this.a = a; + } + function MFd(a) { + this.a = a; + } + function OFd(a) { + this.a = a; + } + function QFd(a) { + this.a = a; + } + function SFd(a) { + this.a = a; + } + function uGd(a) { + this.a = a; + } + function QGd(a) { + this.a = a; + } + function jGd(a) { + this.b = a; + } + function YOd(a) { + this.a = a; + } + function ePd(a) { + this.a = a; + } + function kPd(a) { + this.a = a; + } + function qPd(a) { + this.a = a; + } + function IPd(a) { + this.a = a; + } + function w$d(a) { + this.a = a; + } + function e_d(a) { + this.a = a; + } + function Q_d(a) { + this.b = a; + } + function c1d(a) { + this.a = a; + } + function c2d(a) { + this.a = a; + } + function l5d(a) { + this.a = a; + } + function I9d(a) { + this.a = a; + } + function L6d(a) { + this.c = a; + } + function t7d(a) { + this.e = a; + } + function pae(a) { + this.a = a; + } + function xae(a) { + this.a = a; + } + function Zde(a) { + this.a = a; + } + function Sde(a) { + this.d = a; + } + function mee(a) { + this.a = a; + } + function uje(a) { + this.a = a; + } + function Bte(a) { + this.a = a; + } + function Wse(a) { + this.e = a; + } + function Xsd() { + this.a = 0; + } + function Tsb() { + akb(this); + } + function bnb() { + Pmb(this); + } + function cHb() { + bHb(this); + } + function I2b() { + } + function s2d() { + this.c = d2d; + } + function Prc(a, b) { + a.b += b; + } + function Uje(a, b) { + b.Wb(a); + } + function UC(a) { + return a.a; + } + function nC(a) { + return a.a; + } + function BC(a) { + return a.a; + } + function TB(a) { + return a.a; + } + function _B(a) { + return a.a; + } + function Adb(a) { + return a.e; + } + function gC() { + return null; + } + function MC() { + return null; + } + function leb() { + MId(); + OId(); + } + function qMb(a) { + a.b.Of(a.e); + } + function A$b(a) { + a.b = new Ri(); + } + function A8b(a, b) { + a.b = b - a.b; + } + function x8b(a, b) { + a.a = b - a.a; + } + function ZEb(a, b) { + a.push(b); + } + function bFb(a, b) { + a.sort(b); + } + function Q5c(a, b) { + b.jd(a.a); + } + function Voc(a, b) { + Q3b(b, a); + } + function tp(a, b, c) { + a.Yd(c, b); + } + function Ss(a, b) { + a.e = b; + b.b = a; + } + function im(a) { + _l(); + this.a = a; + } + function xq(a) { + _l(); + this.a = a; + } + function Gq(a) { + _l(); + this.a = a; + } + function Xq(a) { + tm(); + this.a = a; + } + function gA(a) { + fA(); + eA.le(a); + } + function vA() { + vA = geb; + new Tsb(); + } + function xz() { + mz.call(this); + } + function Ceb() { + mz.call(this); + } + function ueb() { + xz.call(this); + } + function yeb() { + xz.call(this); + } + function Hfb() { + xz.call(this); + } + function _fb() { + xz.call(this); + } + function cgb() { + xz.call(this); + } + function Ngb() { + xz.call(this); + } + function jib() { + xz.call(this); + } + function Jrb() { + xz.call(this); + } + function Srb() { + xz.call(this); + } + function Dvb() { + xz.call(this); + } + function Ied() { + xz.call(this); + } + function R1d() { + this.a = this; + } + function k1d() { + this.Bb |= 256; + } + function vWb() { + this.b = new Et(); + } + function aFb(a, b) { + a.length = b; + } + function dyb(a, b) { + Rmb(a.a, b); + } + function jNb(a, b) { + LKb(a.c, b); + } + function qRc(a, b) { + Ysb(a.b, b); + } + function VOd(a, b) { + UNd(a.a, b); + } + function WOd(a, b) { + VNd(a.a, b); + } + function eZd(a, b) { + qvd(a.e, b); + } + function Cke(a) { + bge(a.c, a.b); + } + function uj(a, b) { + a.kc().Nb(b); + } + function Ufb(a) { + this.a = Zfb(a); + } + function _sb() { + this.a = new Tsb(); + } + function $Ab() { + this.a = new Tsb(); + } + function xAb() { + this.a = new dzb(); + } + function gyb() { + this.a = new bnb(); + } + function BIb() { + this.a = new bnb(); + } + function GIb() { + this.a = new bnb(); + } + function wIb() { + this.a = new pIb(); + } + function gJb() { + this.a = new DIb(); + } + function TTb() { + this.a = new DTb(); + } + function jGb() { + this.a = new fGb(); + } + function qGb() { + this.a = new kGb(); + } + function q_b() { + this.a = new bnb(); + } + function E_b() { + this.a = new bnb(); + } + function EZb() { + this.a = new bnb(); + } + function J$b() { + this.a = new bnb(); + } + function YNb() { + this.d = new bnb(); + } + function lXb() { + this.a = new RWb(); + } + function y_b() { + this.a = new _sb(); + } + function k5b() { + this.a = new Tsb(); + } + function E0b() { + this.b = new Tsb(); + } + function jHc() { + this.b = new bnb(); + } + function ZNc() { + this.e = new bnb(); + } + function ahc() { + this.a = new boc(); + } + function UQc() { + this.d = new bnb(); + } + function uRc() { + tRc.call(this); + } + function BRc() { + tRc.call(this); + } + function VOc() { + bnb.call(this); + } + function web() { + ueb.call(this); + } + function Fyb() { + gyb.call(this); + } + function fKb() { + RJb.call(this); + } + function N$b() { + J$b.call(this); + } + function P2b() { + I2b.call(this); + } + function T2b() { + P2b.call(this); + } + function z3b() { + I2b.call(this); + } + function C3b() { + z3b.call(this); + } + function cUc() { + aUc.call(this); + } + function hUc() { + aUc.call(this); + } + function mUc() { + aUc.call(this); + } + function Hdd() { + Ddd.call(this); + } + function ACd() { + $yd.call(this); + } + function PCd() { + $yd.call(this); + } + function Ejd() { + Yub.call(this); + } + function LQd() { + wQd.call(this); + } + function lRd() { + wQd.call(this); + } + function MSd() { + Tsb.call(this); + } + function VSd() { + Tsb.call(this); + } + function eTd() { + Tsb.call(this); + } + function mXd() { + HWd.call(this); + } + function i1d() { + _sb.call(this); + } + function A1d() { + k1d.call(this); + } + function q4d() { + dWd.call(this); + } + function O5d() { + Tsb.call(this); + } + function R5d() { + dWd.call(this); + } + function lae() { + Tsb.call(this); + } + function Cae() { + Tsb.call(this); + } + function ome() { + kUd.call(this); + } + function Hme() { + ome.call(this); + } + function Nme() { + kUd.call(this); + } + function Gre() { + Tqe.call(this); + } + function aUc() { + this.a = new _sb(); + } + function nZc() { + this.a = new Tsb(); + } + function DZc() { + this.a = new bnb(); + } + function Ddd() { + this.a = new Tsb(); + } + function Oqd() { + this.a = new Yub(); + } + function Oed() { + this.j = new bnb(); + } + function obd() { + this.a = new nbd(); + } + function wQd() { + this.a = new AQd(); + } + function R5c() { + this.a = new V5c(); + } + function wb() { + wb = geb; + vb = new xb(); + } + function Wk() { + Wk = geb; + Vk = new Xk(); + } + function kl() { + kl = geb; + jl = new ll(); + } + function ll() { + Qk.call(this, ""); + } + function Xk() { + Qk.call(this, ""); + } + function Dd(a) { + yd.call(this, a); + } + function Hd(a) { + yd.call(this, a); + } + function xh(a) { + th.call(this, a); + } + function $h(a) { + Wc.call(this, a); + } + function Qi(a) { + Wc.call(this, a); + } + function wi(a) { + $h.call(this, a); + } + function Sp(a) { + $h.call(this, a); + } + function Js(a) { + $h.call(this, a); + } + function Jp(a) { + Xo.call(this, a); + } + function Qp(a) { + Xo.call(this, a); + } + function dq(a) { + ho.call(this, a); + } + function Fv(a) { + uv.call(this, a); + } + function aw(a) { + Tr.call(this, a); + } + function cw(a) { + Tr.call(this, a); + } + function _w(a) { + Tr.call(this, a); + } + function Mx(a) { + Gn.call(this, a); + } + function Nx(a) { + Mx.call(this, a); + } + function yz(a) { + nz.call(this, a); + } + function aC(a) { + yz.call(this, a); + } + function uC() { + vC.call(this, {}); + } + function cC() { + cC = geb; + bC = new dC(); + } + function zs() { + zs = geb; + ys = new As(); + } + function Az() { + Az = geb; + zz = new nb(); + } + function $z() { + $z = geb; + Zz = new bA(); + } + function $A() { + $A = geb; + ZA = new aB(); + } + function Ovb(a) { + Kvb(); + this.a = a; + } + function FKc(a) { + jKc(); + this.a = a; + } + function zud(a) { + nud(); + this.f = a; + } + function Bud(a) { + nud(); + this.f = a; + } + function Cde(a) { + KMd(); + this.a = a; + } + function Lyb(a) { + a.b = null; + a.c = 0; + } + function kz(a, b) { + a.e = b; + hz(a, b); + } + function NYb(a, b) { + a.a = b; + PYb(a); + } + function cLb(a, b, c) { + a.a[b.g] = c; + } + function zsd(a, b, c) { + Hsd(c, a, b); + } + function shc(a, b) { + Xmc(b.i, a.n); + } + function HCc(a, b) { + ICc(a).Cd(b); + } + function yw(a, b) { + a.a.ec().Mc(b); + } + function ns(a, b) { + return a.g - b.g; + } + function AUb(a, b) { + return a * a / b; + } + function Heb(a) { + return uFb(a), a; + } + function Kfb(a) { + return uFb(a), a; + } + function Mfb(a) { + return uFb(a), a; + } + function JC(a) { + return new hC(a); + } + function LC(a) { + return new OC(a); + } + function shb(a) { + return uFb(a), a; + } + function Chb(a) { + return uFb(a), a; + } + function teb(a) { + yz.call(this, a); + } + function veb(a) { + yz.call(this, a); + } + function zeb(a) { + yz.call(this, a); + } + function Aeb(a) { + nz.call(this, a); + } + function Ifb(a) { + yz.call(this, a); + } + function agb(a) { + yz.call(this, a); + } + function dgb(a) { + yz.call(this, a); + } + function Mgb(a) { + yz.call(this, a); + } + function Ogb(a) { + yz.call(this, a); + } + function kib(a) { + yz.call(this, a); + } + function Jed(a) { + yz.call(this, a); + } + function Ked(a) { + yz.call(this, a); + } + function CDd(a) { + yz.call(this, a); + } + function Mle(a) { + yz.call(this, a); + } + function Lqe(a) { + yz.call(this, a); + } + function mob(a) { + uFb(a); + this.a = a; + } + function yYb(a) { + sYb(a); + return a; + } + function Nnb(a) { + Snb(a, a.length); + } + function nmb(a) { + return a.b == a.c; + } + function Vyb(a) { + return !!a && a.b; + } + function gLb(a) { + return !!a && a.k; + } + function hLb(a) { + return !!a && a.j; + } + function F_b(a, b, c) { + a.c.Ef(b, c); + } + function Ts(a, b) { + a.be(b); + b.ae(a); + } + function Fy(a) { + _l(); + this.a = Qb(a); + } + function Gb() { + this.a = WD(Qb(pve)); + } + function jc() { + throw Adb(new jib()); + } + function jn() { + throw Adb(new jib()); + } + function Hh() { + throw Adb(new jib()); + } + function Xi() { + throw Adb(new jib()); + } + function Xj() { + throw Adb(new jib()); + } + function Yj() { + throw Adb(new jib()); + } + function Qz() { + Qz = geb; + !!(fA(), eA); + } + function Qhb() { + reb.call(this, ""); + } + function Rhb() { + reb.call(this, ""); + } + function bib() { + reb.call(this, ""); + } + function cib() { + reb.call(this, ""); + } + function eib(a) { + veb.call(this, a); + } + function xeb(a) { + veb.call(this, a); + } + function Vgb(a) { + agb.call(this, a); + } + function Lqb(a) { + xpb.call(this, a); + } + function Sqb(a) { + Lqb.call(this, a); + } + function irb(a) { + Upb.call(this, a); + } + function pc(a) { + qc.call(this, a, 0); + } + function Ri() { + Si.call(this, 12, 3); + } + function WC(a, b) { + return xfb(a, b); + } + function cFb(a, b) { + return dD(a, b); + } + function Reb(a, b) { + return a.a - b.a; + } + function afb(a, b) { + return a.a - b.a; + } + function Wgb(a, b) { + return a.a - b.a; + } + function pC(b, a) { + return a in b.a; + } + function Vvb(a) { + return a.a ? a.b : 0; + } + function cwb(a) { + return a.a ? a.b : 0; + } + function Fxb(a, b, c) { + b.Cd(a.a[c]); + } + function Kxb(a, b, c) { + b.Pe(a.a[c]); + } + function uKb(a, b) { + a.b = new sjd(b); + } + function QGb(a, b) { + a.b = b; + return a; + } + function RGb(a, b) { + a.c = b; + return a; + } + function SGb(a, b) { + a.f = b; + return a; + } + function TGb(a, b) { + a.g = b; + return a; + } + function yJb(a, b) { + a.a = b; + return a; + } + function zJb(a, b) { + a.f = b; + return a; + } + function AJb(a, b) { + a.k = b; + return a; + } + function WNb(a, b) { + a.a = b; + return a; + } + function XNb(a, b) { + a.e = b; + return a; + } + function BYb(a, b) { + a.e = b; + return a; + } + function CYb(a, b) { + a.f = b; + return a; + } + function BRb(a, b) { + a.b = true; + a.d = b; + } + function WNc(a, b) { + return a.b - b.b; + } + function KSc(a, b) { + return a.g - b.g; + } + function pmc(a, b) { + return a ? 0 : b - 1; + } + function qKc(a, b) { + return a ? 0 : b - 1; + } + function pKc(a, b) { + return a ? b - 1 : 0; + } + function uVc(a, b) { + return a.s - b.s; + } + function Xed(a, b) { + return b.rg(a); + } + function Xfd(a, b) { + a.b = b; + return a; + } + function Wfd(a, b) { + a.a = b; + return a; + } + function Yfd(a, b) { + a.c = b; + return a; + } + function Zfd(a, b) { + a.d = b; + return a; + } + function $fd(a, b) { + a.e = b; + return a; + } + function _fd(a, b) { + a.f = b; + return a; + } + function mgd(a, b) { + a.a = b; + return a; + } + function ngd(a, b) { + a.b = b; + return a; + } + function ogd(a, b) { + a.c = b; + return a; + } + function Khd(a, b) { + a.c = b; + return a; + } + function Jhd(a, b) { + a.b = b; + return a; + } + function Lhd(a, b) { + a.d = b; + return a; + } + function Mhd(a, b) { + a.e = b; + return a; + } + function Nhd(a, b) { + a.f = b; + return a; + } + function Ohd(a, b) { + a.g = b; + return a; + } + function Phd(a, b) { + a.a = b; + return a; + } + function Qhd(a, b) { + a.i = b; + return a; + } + function Rhd(a, b) { + a.j = b; + return a; + } + function coc(a, b) { + Mnc(); + P3b(b, a); + } + function bbd(a, b, c) { + _ad(a.a, b, c); + } + function Fjd(a) { + Zub.call(this, a); + } + function TRb(a) { + SRb.call(this, a); + } + function pLc(a) { + CIc.call(this, a); + } + function ILc(a) { + CIc.call(this, a); + } + function gLd(a) { + ZHd.call(this, a); + } + function DPd(a) { + xPd.call(this, a); + } + function FPd(a) { + xPd.call(this, a); + } + function x2b() { + y2b.call(this, ""); + } + function pjd() { + this.a = 0; + this.b = 0; + } + function ATc() { + this.b = 0; + this.a = 0; + } + function lXd(a, b) { + a.b = 0; + bWd(a, b); + } + function Kqd(a, b) { + a.k = b; + return a; + } + function Lqd(a, b) { + a.j = b; + return a; + } + function vfe(a, b) { + a.c = b; + a.b = true; + } + function Etb() { + Etb = geb; + Dtb = Gtb(); + } + function bvd() { + bvd = geb; + avd = OAd(); + } + function dvd() { + dvd = geb; + cvd = aCd(); + } + function MId() { + MId = geb; + LId = ygd(); + } + function jTd() { + jTd = geb; + iTd = Qae(); + } + function Ole() { + Ole = geb; + Nle = vne(); + } + function Qle() { + Qle = geb; + Ple = Cne(); + } + function mfb(a) { + return a.e && a.e(); + } + function FD(a) { + return a.l | a.m << 22; + } + function Oc(a, b) { + return a.c._b(b); + } + function En(a, b) { + return Wv(a.b, b); + } + function Vd(a) { + return !a ? null : a.d; + } + function Vv(a) { + return !a ? null : a.g; + } + function $v(a) { + return !a ? null : a.i; + } + function nfb(a) { + lfb(a); + return a.o; + } + function Khb(a, b) { + a.a += b; + return a; + } + function Lhb(a, b) { + a.a += b; + return a; + } + function Ohb(a, b) { + a.a += b; + return a; + } + function Uhb(a, b) { + a.a += b; + return a; + } + function _wb(a, b) { + while (a.Bd(b)) + ; + } + function atb(a) { + this.a = new Usb(a); + } + function $tb() { + throw Adb(new jib()); + } + function qpb() { + throw Adb(new jib()); + } + function rpb() { + throw Adb(new jib()); + } + function spb() { + throw Adb(new jib()); + } + function vpb() { + throw Adb(new jib()); + } + function Opb() { + throw Adb(new jib()); + } + function yAb(a) { + this.a = new ezb(a); + } + function H2c() { + this.a = new Wed(s0); + } + function TVc() { + this.b = new Wed(H$); + } + function l6c() { + this.a = new Wed(V0); + } + function $ad() { + this.b = new Wed(I1); + } + function nbd() { + this.b = new Wed(I1); + } + function T2c(a) { + this.a = 0; + this.b = a; + } + function Bib(a) { + tib(); + vib(this, a); + } + function QDb(a) { + LCb(a); + return a.a; + } + function dvb(a) { + return a.b != a.d.c; + } + function AMc(a, b) { + return a.d[b.p]; + } + function ued(a, b) { + return ned(a, b); + } + function $Eb(a, b, c) { + a.splice(b, c); + } + function ixb(a, b) { + while (a.Re(b)) + ; + } + function NKb(a) { + a.c ? MKb(a) : OKb(a); + } + function mQd() { + throw Adb(new jib()); + } + function nQd() { + throw Adb(new jib()); + } + function oQd() { + throw Adb(new jib()); + } + function pQd() { + throw Adb(new jib()); + } + function qQd() { + throw Adb(new jib()); + } + function rQd() { + throw Adb(new jib()); + } + function sQd() { + throw Adb(new jib()); + } + function tQd() { + throw Adb(new jib()); + } + function uQd() { + throw Adb(new jib()); + } + function vQd() { + throw Adb(new jib()); + } + function zue() { + throw Adb(new Dvb()); + } + function Aue() { + throw Adb(new Dvb()); + } + function oue(a) { + this.a = new Dte(a); + } + function Dte(a) { + Cte(this, a, sse()); + } + function cve(a) { + return !a || bve(a); + } + function Cqe(a) { + return xqe[a] != -1; + } + function Yz() { + Nz != 0 && (Nz = 0); + Pz = -1; + } + function beb() { + _db == null && (_db = []); + } + function eg(a, b) { + zf.call(this, a, b); + } + function gg(a, b) { + eg.call(this, a, b); + } + function Nj(a, b) { + this.a = a; + this.b = b; + } + function hk(a, b) { + this.a = a; + this.b = b; + } + function nk(a, b) { + this.a = a; + this.b = b; + } + function pk(a, b) { + this.a = a; + this.b = b; + } + function xk(a, b) { + this.a = a; + this.b = b; + } + function zk(a, b) { + this.a = a; + this.b = b; + } + function Kk(a, b) { + this.a = a; + this.b = b; + } + function ne(a, b) { + this.e = a; + this.d = b; + } + function Hf(a, b) { + this.b = a; + this.c = b; + } + function cp(a, b) { + this.b = a; + this.a = b; + } + function Cp(a, b) { + this.b = a; + this.a = b; + } + function qr(a, b) { + this.b = a; + this.a = b; + } + function Rr(a, b) { + this.b = a; + this.a = b; + } + function vr(a, b) { + this.a = a; + this.b = b; + } + function su(a, b) { + this.a = a; + this.b = b; + } + function Hu(a, b) { + this.a = a; + this.f = b; + } + function gp(a, b) { + this.g = a; + this.i = b; + } + function qs(a, b) { + this.f = a; + this.g = b; + } + function Gv(a, b) { + this.b = a; + this.c = b; + } + function Wc(a) { + Lb(a.dc()); + this.c = a; + } + function Ex(a, b) { + this.a = a; + this.b = b; + } + function ey(a, b) { + this.a = a; + this.b = b; + } + function pv(a) { + this.a = RD(Qb(a), 15); + } + function uv(a) { + this.a = RD(Qb(a), 15); + } + function nw(a) { + this.a = RD(Qb(a), 85); + } + function rf(a) { + this.b = RD(Qb(a), 85); + } + function Tr(a) { + this.b = RD(Qb(a), 51); + } + function uB() { + this.q = new $wnd.Date(); + } + function CC(a, b) { + this.a = a; + this.b = b; + } + function Bt(a, b) { + return Ujb(a.b, b); + } + function tpb(a, b) { + return a.b.Hc(b); + } + function upb(a, b) { + return a.b.Ic(b); + } + function wpb(a, b) { + return a.b.Qc(b); + } + function Pqb(a, b) { + return a.b.Hc(b); + } + function pqb(a, b) { + return a.c.uc(b); + } + function rqb(a, b) { + return pb(a.c, b); + } + function Zsb(a, b) { + return a.a._b(b); + } + function Xp(a, b) { + return a > b && b < hwe; + } + function bkb(a) { + return a.f.c + a.i.c; + } + function IC(a) { + return WB(), a ? VB : UB; + } + function Usb(a) { + ckb.call(this, a, 0); + } + function dzb() { + ezb.call(this, null); + } + function Osb(a) { + this.c = a; + Lsb(this); + } + function Yub() { + Lub(this); + Xub(this); + } + function gib() { + gib = geb; + fib = new oeb(); + } + function Qob() { + Qob = geb; + Pob = new Rob(); + } + function Tvb() { + Tvb = geb; + Svb = new Xvb(); + } + function bwb() { + bwb = geb; + awb = new dwb(); + } + function SAb() { + SAb = geb; + RAb = new VAb(); + } + function rDb() { + NCb.call(this, null); + } + function xDb() { + xDb = geb; + wDb = new KEb(); + } + function FDb(a, b) { + LCb(a); + a.a.Nb(b); + } + function sAb(a, b) { + return a.a.Xc(b); + } + function tAb(a, b) { + return a.a.Yc(b); + } + function uAb(a, b) { + return a.a.$c(b); + } + function vAb(a, b) { + return a.a._c(b); + } + function JBb(a, b) { + return a.Gc(b), a; + } + function KBb(a, b) { + return ye(a, b), a; + } + function m_d(a, b) { + pLd(xYd(a.a), b); + } + function r_d(a, b) { + pLd(xYd(a.a), b); + } + function EBb(a, b) { + a.Gc(b); + return a; + } + function hGb(a, b) { + a.a.f = b; + return a; + } + function nGb(a, b) { + a.a.d = b; + return a; + } + function oGb(a, b) { + a.a.g = b; + return a; + } + function pGb(a, b) { + a.a.j = b; + return a; + } + function sIb(a, b) { + a.a.a = b; + return a; + } + function tIb(a, b) { + a.a.d = b; + return a; + } + function uIb(a, b) { + a.a.e = b; + return a; + } + function vIb(a, b) { + a.a.g = b; + return a; + } + function fJb(a, b) { + a.a.f = b; + return a; + } + function KJb(a) { + a.b = false; + return a; + } + function wGb() { + wGb = geb; + vGb = new xGb(); + } + function VRb() { + VRb = geb; + URb = new WRb(); + } + function zXb() { + zXb = geb; + yXb = new FXb(); + } + function kYb() { + kYb = geb; + jYb = new lYb(); + } + function pYb() { + pYb = geb; + oYb = new QYb(); + } + function NZb() { + NZb = geb; + MZb = new SZb(); + } + function g0b() { + g0b = geb; + f0b = new l0b(); + } + function i1b() { + i1b = geb; + h1b = new X1b(); + } + function s7b() { + s7b = geb; + r7b = new C7b(); + } + function H5b() { + H5b = geb; + G5b = new pjd(); + } + function Hcc() { + Hcc = geb; + Gcc = new Ncc(); + } + function Wjc() { + Wjc = geb; + Vjc = new Jlc(); + } + function mqc() { + mqc = geb; + lqc = new Aqc(); + } + function GCc() { + GCc = geb; + FCc = new Yrd(); + } + function sbd() { + sbd = geb; + rbd = new ubd(); + } + function Cbd() { + Cbd = geb; + Bbd = new Dbd(); + } + function _cd() { + _cd = geb; + $cd = new cdd(); + } + function GGc() { + yGc(); + this.c = new Ri(); + } + function ubd() { + qs.call(this, DBe, 0); + } + function Mfd(a, b, c) { + $jb(a.d, b.f, c); + } + function bNb(a, b, c, d) { + aNb(a, d, b, c); + } + function V6b(a, b, c, d) { + $6b(d, a, b, c); + } + function vcc(a, b, c, d) { + wcc(d, a, b, c); + } + function Dgd(a, b) { + dub(a.c.c, b.b, b); + } + function Cgd(a, b) { + dub(a.c.b, b.c, b); + } + function BYc(a) { + return a.e.b + a.f.b; + } + function AYc(a) { + return a.e.a + a.f.a; + } + function N1d(a) { + return a.b ? a.b : a.a; + } + function yTc(a) { + return (a.c + a.a) / 2; + } + function b2d(a, b) { + return GA(a.a, b); + } + function rfd(a, b) { + a.a = b.g; + return a; + } + function hTd() { + hTd = geb; + gTd = new Cae(); + } + function cTd() { + cTd = geb; + bTd = new eTd(); + } + function lud() { + lud = geb; + kud = new Yud(); + } + function $Sd() { + $Sd = geb; + ZSd = new _Sd(); + } + function TSd() { + TSd = geb; + SSd = new VSd(); + } + function YSd() { + YSd = geb; + XSd = new O5d(); + } + function PRd() { + PRd = geb; + ORd = new Tsb(); + } + function N2d() { + N2d = geb; + M2d = new Uhe(); + } + function j3d() { + j3d = geb; + i3d = new Yhe(); + } + function Gie() { + Gie = geb; + Fie = new Hie(); + } + function nke() { + nke = geb; + mke = new rke(); + } + function uue() { + uue = geb; + tue = new Cue(); + } + function Tae() { + Tae = geb; + Rae = new bnb(); + } + function _v(a) { + return RD(a, 44).ld(); + } + function Akb(a) { + return a.b < a.d.gc(); + } + function meb(b, a) { + return a.split(b); + } + function Idb(a, b) { + return Ddb(a, b) > 0; + } + function Ldb(a, b) { + return Ddb(a, b) < 0; + } + function Urb(a, b) { + return Bsb(a.a, b); + } + function Beb(a, b) { + oz.call(this, a, b); + } + function Qx(a) { + Px(); + ho.call(this, a); + } + function Lnb(a, b) { + Pnb(a, a.length, b); + } + function Mnb(a, b) { + Rnb(a, a.length, b); + } + function Ktb(a, b) { + return a.a.get(b); + } + function bub(a, b) { + return Ujb(a.e, b); + } + function Zxb(a) { + return uFb(a), false; + } + function zw(a) { + this.a = RD(Qb(a), 229); + } + function $wb(a) { + Swb.call(this, a, 21); + } + function dAb(a, b) { + qs.call(this, a, b); + } + function yBb(a, b) { + qs.call(this, a, b); + } + function ssb(a, b) { + this.b = a; + this.a = b; + } + function xlb(a, b) { + this.d = a; + this.e = b; + } + function jEb(a, b) { + this.a = a; + this.b = b; + } + function pEb(a, b) { + this.a = a; + this.b = b; + } + function vEb(a, b) { + this.a = a; + this.b = b; + } + function BEb(a, b) { + this.a = a; + this.b = b; + } + function TFb(a, b) { + this.a = a; + this.b = b; + } + function QEb(a, b) { + this.b = a; + this.a = b; + } + function sHb(a, b) { + this.b = a; + this.a = b; + } + function EHb(a, b) { + qs.call(this, a, b); + } + function MHb(a, b) { + qs.call(this, a, b); + } + function jIb(a, b) { + qs.call(this, a, b); + } + function $Jb(a, b) { + qs.call(this, a, b); + } + function FKb(a, b) { + qs.call(this, a, b); + } + function wLb(a, b) { + qs.call(this, a, b); + } + function nOb(a, b) { + qs.call(this, a, b); + } + function kPb(a, b) { + this.b = a; + this.a = b; + } + function JPb(a, b) { + qs.call(this, a, b); + } + function fRb(a, b) { + this.b = a; + this.a = b; + } + function JRb(a, b) { + qs.call(this, a, b); + } + function OTb(a, b) { + this.b = a; + this.a = b; + } + function UUb(a, b) { + qs.call(this, a, b); + } + function BWb(a, b) { + qs.call(this, a, b); + } + function tXb(a, b) { + qs.call(this, a, b); + } + function XEb(a, b, c) { + a.splice(b, 0, c); + } + function pr(a, b, c) { + a.Mb(c) && b.Cd(c); + } + function lEb(a, b, c) { + b.Pe(a.a.Ye(c)); + } + function rEb(a, b, c) { + b.Dd(a.a.Ze(c)); + } + function xEb(a, b, c) { + b.Cd(a.a.Kb(c)); + } + function eYb(a, b) { + return Csb(a.c, b); + } + function cGb(a, b) { + return Csb(a.e, b); + } + function qZb(a, b) { + qs.call(this, a, b); + } + function V$b(a, b) { + qs.call(this, a, b); + } + function s3b(a, b) { + qs.call(this, a, b); + } + function Q8b(a, b) { + qs.call(this, a, b); + } + function icc(a, b) { + qs.call(this, a, b); + } + function xec(a, b) { + qs.call(this, a, b); + } + function gic(a, b) { + this.a = a; + this.b = b; + } + function Xic(a, b) { + this.a = a; + this.b = b; + } + function h4b(a, b) { + this.a = a; + this.b = b; + } + function vjc(a, b) { + this.a = a; + this.b = b; + } + function xjc(a, b) { + this.a = a; + this.b = b; + } + function Hjc(a, b) { + this.a = a; + this.b = b; + } + function hjc(a, b) { + this.b = a; + this.a = b; + } + function Jjc(a, b) { + this.b = a; + this.a = b; + } + function _Yb(a, b) { + this.b = a; + this.a = b; + } + function eZb(a, b) { + this.c = a; + this.d = b; + } + function Q1b(a, b) { + this.e = a; + this.d = b; + } + function Tjc(a, b) { + this.a = a; + this.b = b; + } + function ulc(a, b) { + this.a = a; + this.b = b; + } + function Elc(a, b) { + this.a = a; + this.b = b; + } + function fqc(a, b) { + this.b = a; + this.a = b; + } + function smc(a, b) { + this.b = b; + this.c = a; + } + function fnc(a, b) { + qs.call(this, a, b); + } + function Cnc(a, b) { + qs.call(this, a, b); + } + function koc(a, b) { + qs.call(this, a, b); + } + function ktc(a, b) { + qs.call(this, a, b); + } + function ctc(a, b) { + qs.call(this, a, b); + } + function utc(a, b) { + qs.call(this, a, b); + } + function Ftc(a, b) { + qs.call(this, a, b); + } + function Rtc(a, b) { + qs.call(this, a, b); + } + function _tc(a, b) { + qs.call(this, a, b); + } + function iuc(a, b) { + qs.call(this, a, b); + } + function vuc(a, b) { + qs.call(this, a, b); + } + function Duc(a, b) { + qs.call(this, a, b); + } + function Puc(a, b) { + qs.call(this, a, b); + } + function _uc(a, b) { + qs.call(this, a, b); + } + function pvc(a, b) { + qs.call(this, a, b); + } + function yvc(a, b) { + qs.call(this, a, b); + } + function Hvc(a, b) { + qs.call(this, a, b); + } + function Pvc(a, b) { + qs.call(this, a, b); + } + function dxc(a, b) { + qs.call(this, a, b); + } + function bDc(a, b) { + qs.call(this, a, b); + } + function nDc(a, b) { + qs.call(this, a, b); + } + function yDc(a, b) { + qs.call(this, a, b); + } + function LDc(a, b) { + qs.call(this, a, b); + } + function bEc(a, b) { + qs.call(this, a, b); + } + function lEc(a, b) { + qs.call(this, a, b); + } + function tEc(a, b) { + qs.call(this, a, b); + } + function CEc(a, b) { + qs.call(this, a, b); + } + function LEc(a, b) { + qs.call(this, a, b); + } + function UEc(a, b) { + qs.call(this, a, b); + } + function mFc(a, b) { + qs.call(this, a, b); + } + function vFc(a, b) { + qs.call(this, a, b); + } + function EFc(a, b) { + qs.call(this, a, b); + } + function SKc(a, b) { + qs.call(this, a, b); + } + function cNc(a, b) { + this.b = a; + this.a = b; + } + function tNc(a, b) { + qs.call(this, a, b); + } + function QOc(a, b) { + this.a = a; + this.b = b; + } + function ePc(a, b) { + this.a = a; + this.b = b; + } + function LPc(a, b) { + this.a = a; + this.b = b; + } + function xQc(a, b) { + qs.call(this, a, b); + } + function FQc(a, b) { + qs.call(this, a, b); + } + function MQc(a, b) { + this.a = a; + this.b = b; + } + function FMc(a, b) { + dMc(); + return b != a; + } + function Uvb(a) { + sFb(a.a); + return a.b; + } + function qYb(a) { + rYb(a, a.c); + return a; + } + function Itb() { + Etb(); + return new Dtb(); + } + function _ec() { + Rec(); + this.a = new e6b(); + } + function lSc() { + dSc(); + this.a = new _sb(); + } + function aRc() { + WQc(); + this.b = new _sb(); + } + function xRc(a, b) { + this.b = a; + this.d = b; + } + function nVc(a, b) { + this.a = a; + this.b = b; + } + function pVc(a, b) { + this.a = a; + this.b = b; + } + function GWc(a, b) { + this.a = a; + this.b = b; + } + function IXc(a, b) { + this.b = a; + this.a = b; + } + function gTc(a, b) { + qs.call(this, a, b); + } + function eVc(a, b) { + qs.call(this, a, b); + } + function $Vc(a, b) { + qs.call(this, a, b); + } + function XYc(a, b) { + qs.call(this, a, b); + } + function MZc(a, b) { + qs.call(this, a, b); + } + function t_c(a, b) { + qs.call(this, a, b); + } + function B_c(a, b) { + qs.call(this, a, b); + } + function z2c(a, b) { + qs.call(this, a, b); + } + function h3c(a, b) { + qs.call(this, a, b); + } + function $3c(a, b) { + qs.call(this, a, b); + } + function i4c(a, b) { + qs.call(this, a, b); + } + function l5c(a, b) { + qs.call(this, a, b); + } + function v5c(a, b) { + qs.call(this, a, b); + } + function g6c(a, b) { + qs.call(this, a, b); + } + function A6c(a, b) { + qs.call(this, a, b); + } + function a7c(a, b) { + qs.call(this, a, b); + } + function B8c(a, b) { + qs.call(this, a, b); + } + function d9c(a, b) { + qs.call(this, a, b); + } + function D9c(a, b) { + qs.call(this, a, b); + } + function tad(a, b) { + qs.call(this, a, b); + } + function hbd(a, b) { + qs.call(this, a, b); + } + function Nbd(a, b) { + qs.call(this, a, b); + } + function Ybd(a, b) { + qs.call(this, a, b); + } + function ndd(a, b) { + qs.call(this, a, b); + } + function z1c(a, b) { + this.b = a; + this.a = b; + } + function B1c(a, b) { + this.b = a; + this.a = b; + } + function d2c(a, b) { + this.b = a; + this.a = b; + } + function f2c(a, b) { + this.b = a; + this.a = b; + } + function m9c(a, b) { + this.a = a; + this.b = b; + } + function xed(a, b) { + this.a = a; + this.b = b; + } + function ffd(a, b) { + this.a = a; + this.b = b; + } + function rjd(a, b) { + this.a = a; + this.b = b; + } + function Sjd(a, b) { + qs.call(this, a, b); + } + function Zhd(a, b) { + qs.call(this, a, b); + } + function lid(a, b) { + qs.call(this, a, b); + } + function vkd(a, b) { + qs.call(this, a, b); + } + function Gmd(a, b) { + qs.call(this, a, b); + } + function Pmd(a, b) { + qs.call(this, a, b); + } + function Zmd(a, b) { + qs.call(this, a, b); + } + function jnd(a, b) { + qs.call(this, a, b); + } + function Gnd(a, b) { + qs.call(this, a, b); + } + function Rnd(a, b) { + qs.call(this, a, b); + } + function eod(a, b) { + qs.call(this, a, b); + } + function qod(a, b) { + qs.call(this, a, b); + } + function Eod(a, b) { + qs.call(this, a, b); + } + function Qod(a, b) { + qs.call(this, a, b); + } + function upd(a, b) { + qs.call(this, a, b); + } + function Rpd(a, b) { + qs.call(this, a, b); + } + function eqd(a, b) { + qs.call(this, a, b); + } + function nqd(a, b) { + qs.call(this, a, b); + } + function vqd(a, b) { + qs.call(this, a, b); + } + function Hrd(a, b) { + qs.call(this, a, b); + } + function esd(a, b) { + this.a = a; + this.b = b; + } + function gsd(a, b) { + this.a = a; + this.b = b; + } + function isd(a, b) { + this.a = a; + this.b = b; + } + function Osd(a, b) { + this.a = a; + this.b = b; + } + function Qsd(a, b) { + this.a = a; + this.b = b; + } + function Ssd(a, b) { + this.a = a; + this.b = b; + } + function Ptd(a, b) { + this.a = a; + this.b = b; + } + function JEd(a, b) { + this.a = a; + this.b = b; + } + function KEd(a, b) { + this.a = a; + this.b = b; + } + function MEd(a, b) { + this.a = a; + this.b = b; + } + function NEd(a, b) { + this.a = a; + this.b = b; + } + function QEd(a, b) { + this.a = a; + this.b = b; + } + function REd(a, b) { + this.a = a; + this.b = b; + } + function SEd(a, b) { + this.b = a; + this.a = b; + } + function TEd(a, b) { + this.b = a; + this.a = b; + } + function bFd(a, b) { + this.b = a; + this.a = b; + } + function dFd(a, b) { + this.b = a; + this.a = b; + } + function fFd(a, b) { + this.a = a; + this.b = b; + } + function hFd(a, b) { + this.a = a; + this.b = b; + } + function utd(a, b) { + qs.call(this, a, b); + } + function sFd(a, b) { + this.a = a; + this.b = b; + } + function uFd(a, b) { + this.a = a; + this.b = b; + } + function bGd(a, b) { + qs.call(this, a, b); + } + function uId(a, b) { + this.f = a; + this.c = b; + } + function Ofd(a, b) { + return Csb(a.g, b); + } + function Tqc(a, b) { + return Csb(b.b, a); + } + function HPd(a, b) { + return QNd(a.a, b); + } + function Idd(a, b) { + return -a.b.af(b); + } + function IId(a, b) { + !!a && Zjb(CId, a, b); + } + function yWd(a, b) { + a.i = null; + zWd(a, b); + } + function kEd(a, b, c) { + pDd(b, KDd(a, c)); + } + function lEd(a, b, c) { + pDd(b, KDd(a, c)); + } + function mFd(a, b) { + vEd(a.a, RD(b, 58)); + } + function _Mc(a, b) { + GMc(a.a, RD(b, 12)); + } + function KTd(a, b) { + this.a = a; + this.b = b; + } + function NTd(a, b) { + this.a = a; + this.b = b; + } + function B5d(a, b) { + this.a = a; + this.b = b; + } + function Z6d(a, b) { + this.a = a; + this.b = b; + } + function Ble(a, b) { + this.a = a; + this.b = b; + } + function afe(a, b) { + this.d = a; + this.b = b; + } + function wfe(a, b) { + this.e = a; + this.a = b; + } + function Eke(a, b) { + this.b = a; + this.c = b; + } + function zNd(a, b) { + this.i = a; + this.g = b; + } + function kZd(a, b) { + this.d = a; + this.e = b; + } + function ave(a, b) { + eve(new dMd(a), b); + } + function Dke(a) { + return pge(a.c, a.b); + } + function Wd(a) { + return !a ? null : a.md(); + } + function dE(a) { + return a == null ? null : a; + } + function bE(a) { + return typeof a === jve; + } + function $D(a) { + return typeof a === hve; + } + function _D(a) { + return typeof a === ive; + } + function Gdb(a, b) { + return Ddb(a, b) == 0; + } + function Jdb(a, b) { + return Ddb(a, b) >= 0; + } + function Pdb(a, b) { + return Ddb(a, b) != 0; + } + function ar(a, b) { + return zr(a.Kc(), b); + } + function Qm(a, b) { + return a.Rd().Xb(b); + } + function kg(a) { + ig(a); + return a.d.gc(); + } + function fE(a) { + CFb(a == null); + return a; + } + function Mhb(a, b) { + a.a += "" + b; + return a; + } + function Nhb(a, b) { + a.a += "" + b; + return a; + } + function Whb(a, b) { + a.a += "" + b; + return a; + } + function Yhb(a, b) { + a.a += "" + b; + return a; + } + function Zhb(a, b) { + a.a += "" + b; + return a; + } + function Vhb(a, b) { + return a.a += "" + b, a; + } + function Pfb(a) { + return "" + (uFb(a), a); + } + function Vsb(a) { + akb(this); + Ld(this, a); + } + function YFc() { + RFc(); + UFc.call(this); + } + function pxb(a, b) { + kxb.call(this, a, b); + } + function txb(a, b) { + kxb.call(this, a, b); + } + function xxb(a, b) { + kxb.call(this, a, b); + } + function Oub(a, b) { + Pub(a, b, a.c.b, a.c); + } + function Nub(a, b) { + Pub(a, b, a.a, a.a.a); + } + function Iob(a) { + tFb(a, 0); + return null; + } + function Xvb() { + this.b = 0; + this.a = false; + } + function dwb() { + this.b = 0; + this.a = false; + } + function Et() { + this.b = new Usb(Sv(12)); + } + function pMb() { + pMb = geb; + oMb = ss(nMb()); + } + function ncc() { + ncc = geb; + mcc = ss(lcc()); + } + function aZc() { + aZc = geb; + _Yc = ss($Yc()); + } + function WA() { + WA = geb; + vA(); + VA = new Tsb(); + } + function hjd(a) { + a.a = 0; + a.b = 0; + return a; + } + function qfd(a, b) { + a.a = b.g + 1; + return a; + } + function yNd(a, b) { + aMd.call(this, a, b); + } + function lGd(a, b) { + kGd.call(this, a, b); + } + function N$d(a, b) { + zNd.call(this, a, b); + } + function Whe(a, b) { + Q2d.call(this, a, b); + } + function She(a, b) { + Phe.call(this, a, b); + } + function RRd(a, b) { + PRd(); + Zjb(ORd, a, b); + } + function sB(a, b) { + a.q.setTime(Xdb(b)); + } + function Xz(a) { + $wnd.clearTimeout(a); + } + function cr(a) { + return Qb(a), new Dl(a); + } + function mb(a, b) { + return dE(a) === dE(b); + } + function Mw(a, b) { + return a.a.a.a.cc(b); + } + function qeb(a, b) { + return zhb(a.a, 0, b); + } + function SSb(a) { + return MSb(RD(a, 74)); + } + function Nfb(a) { + return eE((uFb(a), a)); + } + function Ofb(a) { + return eE((uFb(a), a)); + } + function gD(a) { + return hD(a.l, a.m, a.h); + } + function egb(a, b) { + return hgb(a.a, b.a); + } + function ygb(a, b) { + return Agb(a.a, b.a); + } + function Sfb(a, b) { + return Qfb(a.a, b.a); + } + function qhb(a, b) { + return a.indexOf(b); + } + function nOc(a, b) { + return a.j[b.p] == 2; + } + function cz(a, b) { + return a == b ? 0 : a ? 1 : -1; + } + function AB(a) { + return a < 10 ? "0" + a : "" + a; + } + function Kdb(a) { + return typeof a === ive; + } + function oZb(a) { + return a == jZb || a == mZb; + } + function pZb(a) { + return a == jZb || a == kZb; + } + function ELb(a, b) { + return hgb(a.g, b.g); + } + function Q4b(a) { + return Wmb(a.b.b, a, 0); + } + function Q2b() { + J2b.call(this, 0, 0, 0, 0); + } + function Iub() { + ctb.call(this, new gub()); + } + function Znb(a, b) { + Wnb(a, 0, a.length, b); + } + function Eyb(a, b) { + Rmb(a.a, b); + return b; + } + function Fkc(a, b) { + lkc(); + return b.a += a; + } + function Hkc(a, b) { + lkc(); + return b.a += a; + } + function Gkc(a, b) { + lkc(); + return b.c += a; + } + function ied(a, b) { + Rmb(a.c, b); + return a; + } + function Ped(a, b) { + ofd(a.a, b); + return a; + } + function ttb(a) { + this.a = Itb(); + this.b = a; + } + function Ntb(a) { + this.a = Itb(); + this.b = a; + } + function sjd(a) { + this.a = a.a; + this.b = a.b; + } + function Dl(a) { + this.a = a; + zl.call(this); + } + function Gl(a) { + this.a = a; + zl.call(this); + } + function Tid() { + Uid.call(this, 0, 0, 0, 0); + } + function vfd(a) { + return ofd(new ufd(), a); + } + function Ksd(a) { + return iyd(RD(a, 123)); + } + function Mvd(a) { + return a.vh() && a.wh(); + } + function Dod(a) { + return a != zod && a != Aod; + } + function Dmd(a) { + return a == ymd || a == zmd; + } + function Emd(a) { + return a == Bmd || a == xmd; + } + function xDc(a) { + return a == tDc || a == sDc; + } + function yrc(a, b) { + return hgb(a.g, b.g); + } + function Yfe(a, b) { + return new Phe(b, a); + } + function Zfe(a, b) { + return new Phe(b, a); + } + function lr(a) { + return Dr(a.b.Kc(), a.a); + } + function IXd(a, b) { + yXd(a, b); + zXd(a, a.D); + } + function Uxd(a, b, c) { + Vxd(a, b); + Wxd(a, c); + } + function zyd(a, b, c) { + Cyd(a, b); + Ayd(a, c); + } + function Byd(a, b, c) { + Dyd(a, b); + Eyd(a, c); + } + function Gzd(a, b, c) { + Hzd(a, b); + Izd(a, c); + } + function Nzd(a, b, c) { + Ozd(a, b); + Pzd(a, c); + } + function eh(a, b, c) { + bh.call(this, a, b, c); + } + function zId(a) { + uId.call(this, a, true); + } + function nAb() { + dAb.call(this, "Tail", 3); + } + function iAb() { + dAb.call(this, "Head", 1); + } + function ejb(a) { + Pib(); + fjb.call(this, a); + } + function A3b(a) { + J2b.call(this, a, a, a, a); + } + function Pmb(a) { + a.c = $C(jJ, rve, 1, 0, 5, 1); + } + function yRb(a) { + a.b && CRb(a); + return a.a; + } + function zRb(a) { + a.b && CRb(a); + return a.c; + } + function mBb(a, b) { + if (dBb) { + return; + } + a.b = b; + } + function YCb(a, b) { + return a[a.length] = b; + } + function _Cb(a, b) { + return a[a.length] = b; + } + function l5b(a, b) { + return NGd(b, MCd(a)); + } + function m5b(a, b) { + return NGd(b, MCd(a)); + } + function DDd(a, b) { + return lp(Co(a.d), b); + } + function EDd(a, b) { + return lp(Co(a.g), b); + } + function FDd(a, b) { + return lp(Co(a.j), b); + } + function mGd(a, b) { + kGd.call(this, a.b, b); + } + function s0d(a, b) { + WGd(tYd(a.a), v0d(b)); + } + function B4d(a, b) { + WGd(o4d(a.a), E4d(b)); + } + function Asd(a, b, c) { + Byd(c, c.i + a, c.j + b); + } + function eFc(a, b, c) { + bD(a.c[b.g], b.g, c); + } + function zVd(a, b, c) { + RD(a.c, 71).Gi(b, c); + } + function LMd(a, b, c) { + bD(a, b, c); + return c; + } + function DJb(a) { + Umb(a.Sf(), new HJb(a)); + } + function Gvb(a) { + return a != null ? tb(a) : 0; + } + function aOd(a) { + return a == null ? 0 : tb(a); + } + function iue(a) { + Vse(); + Wse.call(this, a); + } + function Ug(a) { + this.a = a; + Og.call(this, a); + } + function Zy() { + Zy = geb; + $wnd.Math.log(2); + } + function s7d() { + s7d = geb; + r7d = ($Sd(), ZSd); + } + function FRc() { + FRc = geb; + ERc = new Zrb(u3); + } + function Hde() { + Hde = geb; + new Ide(); + new bnb(); + } + function Ide() { + new Tsb(); + new Tsb(); + new Tsb(); + } + function yue() { + throw Adb(new kib(bMe)); + } + function Nue() { + throw Adb(new kib(bMe)); + } + function Bue() { + throw Adb(new kib(cMe)); + } + function Que() { + throw Adb(new kib(cMe)); + } + function Gp(a) { + this.a = a; + rf.call(this, a); + } + function Np(a) { + this.a = a; + rf.call(this, a); + } + function Sq(a, b) { + tm(); + this.a = a; + this.b = b; + } + function Jh(a, b) { + Qb(b); + Ih(a).Jc(new jx()); + } + function _mb(a, b) { + Ynb(a.c, a.c.length, b); + } + function xnb(a) { + return a.a < a.c.c.length; + } + function Msb(a) { + return a.a < a.c.a.length; + } + function Wvb(a, b) { + return a.a ? a.b : b.We(); + } + function hgb(a, b) { + return a < b ? -1 : a > b ? 1 : 0; + } + function Kgb(a, b) { + return Ddb(a, b) > 0 ? a : b; + } + function hD(a, b, c) { + return { l: a, m: b, h: c }; + } + function Mvb(a, b) { + a.a != null && _Mc(b, a.a); + } + function Lhc(a) { + Y0b(a, null); + Z0b(a, null); + } + function xkc(a, b, c) { + return Zjb(a.g, c, b); + } + function bFc(a, b, c) { + return _Ec(b, c, a.c); + } + function jOc(a, b, c) { + return Zjb(a.k, c, b); + } + function pOc(a, b, c) { + qOc(a, b, c); + return c; + } + function FOc(a, b) { + dOc(); + return b.n.b += a; + } + function lUb(a) { + VTb.call(this); + this.b = a; + } + function y2b(a) { + v2b.call(this); + this.a = a; + } + function kAb() { + dAb.call(this, "Range", 2); + } + function $Fb(a) { + this.b = a; + this.a = new bnb(); + } + function WQb(a) { + this.b = new gRb(); + this.a = a; + } + function Lub(a) { + a.a = new svb(); + a.c = new svb(); + } + function nrc(a) { + a.a = new Tsb(); + a.d = new Tsb(); + } + function $Sc(a) { + _Sc(a, null); + aTc(a, null); + } + function a2d(a, b) { + return xA(a.a, b, null); + } + function Cdd(a, b) { + return Zjb(a.a, b.a, b); + } + function ajd(a) { + return new rjd(a.a, a.b); + } + function Pid(a) { + return new rjd(a.c, a.d); + } + function Qid(a) { + return new rjd(a.c, a.d); + } + function Ake(a, b) { + return Tfe(a.c, a.b, b); + } + function ZD(a, b) { + return a != null && QD(a, b); + } + function br(a, b) { + return Jr(a.Kc(), b) != -1; + } + function Hr(a) { + return a.Ob() ? a.Pb() : null; + } + function _p(a) { + this.b = (yob(), new uqb(a)); + } + function zke(a) { + this.a = a; + Tsb.call(this); + } + function Uhe() { + Q2d.call(this, null, null); + } + function Yhe() { + p3d.call(this, null, null); + } + function As() { + qs.call(this, "INSTANCE", 0); + } + function dXb() { + _Wb(); + this.a = new Wed(UP); + } + function Hhb(a) { + return Ihb(a, 0, a.length); + } + function Rv(a, b) { + return new ew(a.Kc(), b); + } + function $sb(a, b) { + return a.a.Bc(b) != null; + } + function hZd(a, b) { + sLd(a); + a.Gc(RD(b, 15)); + } + function ONd(a, b, c) { + a.c.bd(b, RD(c, 136)); + } + function eOd(a, b, c) { + a.c.Ui(b, RD(c, 136)); + } + function eub(a, b) { + if (a.c) { + rub(b); + qub(b); + } + } + function oB(a, b) { + a.q.setHours(b); + mB(a, b); + } + function vTb(a, b) { + Zid(b, a.a.a.a, a.a.a.b); + } + function tKb(a, b, c, d) { + bD(a.a[b.g], c.g, d); + } + function oKb(a, b, c) { + return a.a[b.g][c.g]; + } + function AIc(a, b) { + return a.e[b.c.p][b.p]; + } + function TIc(a, b) { + return a.c[b.c.p][b.p]; + } + function pJc(a, b) { + return a.a[b.c.p][b.p]; + } + function mOc(a, b) { + return a.j[b.p] = AOc(b); + } + function wAb(a, b) { + return a.a.Bc(b) != null; + } + function wXc(a, b) { + return Kfb(UD(b.a)) <= a; + } + function xXc(a, b) { + return Kfb(UD(b.a)) >= a; + } + function vhd(a, b) { + return jhb(a.f, b.Pg()); + } + function cjd(a, b) { + return a.a * b.a + a.b * b.b; + } + function Wsd(a, b) { + return a.a < Qeb(b) ? -1 : 1; + } + function gGd(a, b) { + return jhb(a.b, b.Pg()); + } + function xIc(a, b, c) { + return c ? b != 0 : b != a - 1; + } + function Mwb(a, b, c) { + a.a = b ^ 1502; + a.b = c ^ Mxe; + } + function ljd(a, b, c) { + a.a = b; + a.b = c; + return a; + } + function ijd(a, b) { + a.a *= b; + a.b *= b; + return a; + } + function Rmb(a, b) { + ZEb(a.c, b); + return true; + } + function MHd(a, b, c) { + bD(a.g, b, c); + return c; + } + function XZd(a, b, c) { + PZd.call(this, a, b, c); + } + function _Zd(a, b, c) { + XZd.call(this, a, b, c); + } + function aie(a, b, c) { + Kfe.call(this, a, b, c); + } + function eie(a, b, c) { + Kfe.call(this, a, b, c); + } + function gie(a, b, c) { + aie.call(this, a, b, c); + } + function iie(a, b, c) { + XZd.call(this, a, b, c); + } + function lie(a, b, c) { + _Zd.call(this, a, b, c); + } + function vie(a, b, c) { + PZd.call(this, a, b, c); + } + function zie(a, b, c) { + PZd.call(this, a, b, c); + } + function Cie(a, b, c) { + vie.call(this, a, b, c); + } + function ez(a) { + a.j = $C(mJ, Nve, 319, 0, 0, 1); + } + function wmb() { + this.a = $C(jJ, rve, 1, 8, 5, 1); + } + function dWd() { + this.Bb |= 256; + this.Bb |= 512; + } + function dMd(a) { + this.i = a; + this.f = this.i.j; + } + function Rue(a) { + this.c = a; + this.a = this.c.a; + } + function zf(a, b) { + this.a = a; + rf.call(this, b); + } + function Eb(a, b) { + return Db(a, new bib(), b).a; + } + function Lb(a) { + if (!a) { + throw Adb(new _fb()); + } + } + function Ub(a) { + if (!a) { + throw Adb(new cgb()); + } + } + function Txb() { + Txb = geb; + Txb(); + Sxb = new $xb(); + } + function fke() { + fke = geb; + Gie(); + eke = new gke(); + } + function Kvb() { + Kvb = geb; + Jvb = new Ovb(null); + } + function OGd(a) { + Ivb(a, IIe); + pzd(a, GGd(a)); + } + function mNd(a) { + a.a = RD(Ywd(a.b.a, 4), 129); + } + function uNd(a) { + a.a = RD(Ywd(a.b.a, 4), 129); + } + function Mg(a) { + a.b.Qb(); + --a.d.f.d; + jg(a.d); + } + function Zj(a) { + this.a = a; + Aj.call(this, a.d); + } + function ij(a, b) { + this.a = a; + pc.call(this, b); + } + function sj(a, b) { + this.a = a; + pc.call(this, b); + } + function Rj(a, b) { + this.a = a; + pc.call(this, b); + } + function Il(a, b) { + this.a = b; + pc.call(this, a); + } + function ap(a, b) { + this.a = b; + Xo.call(this, a); + } + function Ap(a, b) { + this.a = a; + Xo.call(this, b); + } + function Yr(a, b) { + this.a = b; + Tr.call(this, a); + } + function ew(a, b) { + this.a = b; + Tr.call(this, a); + } + function Mr(a, b) { + Qb(b); + return new Yr(a, b); + } + function ru(a, b) { + return new Ou(a.a, a.b, b); + } + function rhb(a, b, c) { + return a.indexOf(b, c); + } + function thb(a, b) { + return a.lastIndexOf(b); + } + function Ghb(a) { + return a == null ? vve : jeb(a); + } + function Ez(a) { + return a == null ? null : a.name; + } + function qD(a) { + return a.l + a.m * gxe + a.h * hxe; + } + function Gr(a) { + return dvb(a.a) ? Fr(a) : null; + } + function Shb(a) { + reb.call(this, (uFb(a), a)); + } + function dib(a) { + reb.call(this, (uFb(a), a)); + } + function dl(a) { + Qk.call(this, RD(Qb(a), 34)); + } + function tl(a) { + Qk.call(this, RD(Qb(a), 34)); + } + function Jub(a) { + ctb.call(this, new hub(a)); + } + function Upb(a) { + xpb.call(this, a); + this.a = a; + } + function hqb(a) { + Ppb.call(this, a); + this.a = a; + } + function jrb(a) { + Lqb.call(this, a); + this.a = a; + } + function mz() { + ez(this); + gz(this); + this.je(); + } + function Dzb(a) { + this.a = a; + Plb.call(this, a); + } + function Lvb(a) { + sFb(a.a != null); + return a.a; + } + function gGb(a, b) { + Rmb(b.a, a.a); + return a.a; + } + function mGb(a, b) { + Rmb(b.b, a.a); + return a.a; + } + function eJb(a, b) { + Rmb(b.a, a.a); + return a.a; + } + function aib(a, b, c) { + peb(a, b, b, c); + return a; + } + function EIb(a, b) { + ++a.b; + return Rmb(a.a, b); + } + function FIb(a, b) { + ++a.b; + return Ymb(a.a, b); + } + function NNb(a, b) { + return Qfb(a.c.d, b.c.d); + } + function ZNb(a, b) { + return Qfb(a.c.c, b.c.c); + } + function E9b(a, b) { + return Qfb(a.n.a, b.n.a); + } + function B$b(a, b) { + return RD(Qc(a.b, b), 15); + } + function Jac(a, b) { + return a.n.b = (uFb(b), b); + } + function Kac(a, b) { + return a.n.b = (uFb(b), b); + } + function Csb(a, b) { + return !!b && a.b[b.g] == b; + } + function k4b(a) { + return xnb(a.a) || xnb(a.b); + } + function kFb(a) { + return a.$H || (a.$H = ++iFb); + } + function Nvb(a) { + return a.a != null ? a.a : null; + } + function uXc(a, b) { + return Qfb(a.e.b, b.e.b); + } + function CXc(a, b) { + return Qfb(a.e.a, b.e.a); + } + function ZEc(a, b, c) { + return $Ec(a, b, c, a.b); + } + function aFc(a, b, c) { + return $Ec(a, b, c, a.c); + } + function Ikc(a) { + lkc(); + return !!a && !a.dc(); + } + function Yjc() { + Wjc(); + this.b = new ckc(this); + } + function tNb() { + tNb = geb; + sNb = new kGd(Xye, 0); + } + function Geb() { + Geb = geb; + Eeb = false; + Feb = true; + } + function E8b(a) { + var b; + b = a.a; + a.a = a.b; + a.b = b; + } + function Q2d(a, b) { + N2d(); + this.a = a; + this.b = b; + } + function p3d(a, b) { + j3d(); + this.b = a; + this.c = b; + } + function Fud(a, b) { + nud(); + this.f = b; + this.d = a; + } + function qc(a, b) { + Sb(b, a); + this.d = a; + this.c = b; + } + function IXb(a, b) { + JXb.call(this, a, b, null); + } + function Kg(a, b, c, d) { + yg.call(this, a, b, c, d); + } + function mMd(a) { + this.d = a; + dMd.call(this, a); + } + function yMd(a) { + this.c = a; + dMd.call(this, a); + } + function BMd(a) { + this.c = a; + mMd.call(this, a); + } + function Zse(a) { + return new Kte(3, a); + } + function ev(a) { + dk(a, iwe); + return new cnb(a); + } + function jA(a) { + fA(); + return parseInt(a) || -1; + } + function Fs(a) { + zs(); + return ws((Is(), Hs), a); + } + function phb(a, b, c) { + return rhb(a, Fhb(b), c); + } + function um(a, b) { + return new fq(a, a.gc(), b); + } + function zj(a, b) { + return hn(a.c).Md().Xb(b); + } + function hu(a, b, c) { + var d; + d = a.fd(b); + d.Rb(c); + } + function tfd(a, b, c) { + RD(Med(a, b), 21).Fc(c); + } + function XOd(a, b, c) { + VNd(a.a, c); + UNd(a.a, b); + } + function aAd(a) { + ZD(a, 158) && RD(a, 158).pi(); + } + function tub(a) { + uub.call(this, a, null, null); + } + function Yvb(a) { + Tvb(); + this.b = a; + this.a = true; + } + function ewb(a) { + bwb(); + this.b = a; + this.a = true; + } + function Qub(a) { + sFb(a.b != 0); + return a.a.a.c; + } + function Rub(a) { + sFb(a.b != 0); + return a.c.b.c; + } + function Phb(a, b) { + peb(a, b, b + 1, ""); + return a; + } + function nQb(a, b) { + return !!a.q && Ujb(a.q, b); + } + function vzb(a) { + return a.b = RD(Bkb(a.a), 44); + } + function os(a) { + return a.f != null ? a.f : "" + a.g; + } + function ps(a) { + return a.f != null ? a.f : "" + a.g; + } + function yUb(a, b) { + return a > 0 ? b / (a * a) : b * 100; + } + function FUb(a, b) { + return a > 0 ? b * b / a : b * b * 100; + } + function $5b(a, b) { + return RD(cub(a.a, b), 34); + } + function doc(a, b) { + Mnc(); + return Rc(a, b.e, b); + } + function NCc(a, b, c) { + GCc(); + return c.Mg(a, b); + } + function L0c(a) { + B0c(); + return a.e.a + a.f.a / 2; + } + function N0c(a, b, c) { + B0c(); + return c.e.a - a * b; + } + function V0c(a) { + B0c(); + return a.e.b + a.f.b / 2; + } + function X0c(a, b, c) { + B0c(); + return c.e.b - a * b; + } + function _tb(a) { + a.d = new tub(a); + a.e = new Tsb(); + } + function x3c() { + this.a = new Tp(); + this.b = new Tp(); + } + function hmc(a) { + this.c = a; + this.a = 1; + this.b = 1; + } + function C$b(a) { + z$b(); + A$b(this); + this.Ff(a); + } + function Efd(a, b, c) { + Afd(); + a.pf(b) && c.Cd(a); + } + function Red(a, b, c) { + return Rmb(b, Ted(a, c)); + } + function Zid(a, b, c) { + a.a += b; + a.b += c; + return a; + } + function jjd(a, b, c) { + a.a *= b; + a.b *= c; + return a; + } + function mjd(a, b) { + a.a = b.a; + a.b = b.b; + return a; + } + function fjd(a) { + a.a = -a.a; + a.b = -a.b; + return a; + } + function njd(a, b, c) { + a.a -= b; + a.b -= c; + return a; + } + function Gjd(a) { + Yub.call(this); + zjd(this, a); + } + function Dbd() { + qs.call(this, "GROW_TREE", 0); + } + function WRb() { + qs.call(this, "POLYOMINO", 0); + } + function SVd(a, b, c) { + DVd.call(this, a, b, c, 2); + } + function r0d(a, b, c) { + VGd(tYd(a.a), b, v0d(c)); + } + function e3d(a, b) { + N2d(); + Q2d.call(this, a, b); + } + function D3d(a, b) { + j3d(); + p3d.call(this, a, b); + } + function F3d(a, b) { + j3d(); + D3d.call(this, a, b); + } + function H3d(a, b) { + j3d(); + p3d.call(this, a, b); + } + function PNd(a, b) { + return a.c.Fc(RD(b, 136)); + } + function A4d(a, b, c) { + VGd(o4d(a.a), b, E4d(c)); + } + function Ard(a) { + this.c = a; + Dyd(a, 0); + Eyd(a, 0); + } + function Z8d(a, b) { + s7d(); + N8d.call(this, a, b); + } + function _8d(a, b) { + s7d(); + Z8d.call(this, a, b); + } + function b9d(a, b) { + s7d(); + Z8d.call(this, a, b); + } + function n9d(a, b) { + s7d(); + N8d.call(this, a, b); + } + function d9d(a, b) { + s7d(); + b9d.call(this, a, b); + } + function p9d(a, b) { + s7d(); + n9d.call(this, a, b); + } + function v9d(a, b) { + s7d(); + N8d.call(this, a, b); + } + function lge(a, b, c) { + return b.zl(a.e, a.c, c); + } + function nge(a, b, c) { + return b.Al(a.e, a.c, c); + } + function Wee(a, b, c) { + return tfe(Pee(a, b), c); + } + function Age(a, b) { + return Vvd(a.e, RD(b, 54)); + } + function _me(a) { + return a == null ? null : Bqe(a); + } + function dne(a) { + return a == null ? null : Iqe(a); + } + function gne(a) { + return a == null ? null : jeb(a); + } + function hne(a) { + return a == null ? null : jeb(a); + } + function TD(a) { + CFb(a == null || $D(a)); + return a; + } + function UD(a) { + CFb(a == null || _D(a)); + return a; + } + function WD(a) { + CFb(a == null || bE(a)); + return a; + } + function lfb(a) { + if (a.o != null) { + return; + } + Bfb(a); + } + function lFb(a) { + if (!a) { + throw Adb(new _fb()); + } + } + function pFb(a) { + if (!a) { + throw Adb(new yeb()); + } + } + function sFb(a) { + if (!a) { + throw Adb(new Dvb()); + } + } + function yFb(a) { + if (!a) { + throw Adb(new cgb()); + } + } + function zmb(a) { + if (!a) { + throw Adb(new Jrb()); + } + } + function jQd() { + jQd = geb; + iQd = new LQd(); + new lRd(); + } + function u2c() { + u2c = geb; + t2c = new jGd("root"); + } + function d6d() { + HWd.call(this); + this.Bb |= txe; + } + function Pg(a, b) { + this.d = a; + Lg(this); + this.b = b; + } + function WCb(a, b) { + NCb.call(this, a); + this.a = b; + } + function oDb(a, b) { + NCb.call(this, a); + this.a = b; + } + function bh(a, b, c) { + lg.call(this, a, b, c, null); + } + function fh(a, b, c) { + lg.call(this, a, b, c, null); + } + function Mf(a, b) { + this.c = a; + ne.call(this, a, b); + } + function Uf(a, b) { + this.a = a; + Mf.call(this, a, b); + } + function wB(a) { + this.q = new $wnd.Date(Xdb(a)); + } + function OPb(a) { + if (a > 8) { + return 0; + } + return a + 1; + } + function iBb(a, b) { + if (dBb) { + return; + } + Rmb(a.a, b); + } + function P5b(a, b) { + H5b(); + return n2b(b.d.i, a); + } + function qdc(a, b) { + Zcc(); + return new xdc(b, a); + } + function HAb(a, b, c) { + return a.Ne(b, c) <= 0 ? c : b; + } + function IAb(a, b, c) { + return a.Ne(b, c) <= 0 ? b : c; + } + function rgd(a, b) { + return RD(cub(a.b, b), 143); + } + function tgd(a, b) { + return RD(cub(a.c, b), 233); + } + function amc(a) { + return RD(Vmb(a.a, a.b), 294); + } + function Mid(a) { + return new rjd(a.c, a.d + a.a); + } + function Jeb(a) { + return (uFb(a), a) ? 1231 : 1237; + } + function EPc(a) { + return dOc(), xDc(RD(a, 203)); + } + function RMb() { + RMb = geb; + QMb = xsb((Qpd(), Ppd)); + } + function YQb(a, b) { + b.a ? ZQb(a, b) : wAb(a.a, b.b); + } + function aJd(a, b, c) { + ++a.j; + a.tj(); + $Gd(a, b, c); + } + function $Id(a, b, c) { + ++a.j; + a.qj(b, a.Zi(b, c)); + } + function B2d(a, b, c) { + var d; + d = a.fd(b); + d.Rb(c); + } + function Bzd(a, b, c) { + c = xvd(a, b, 6, c); + return c; + } + function izd(a, b, c) { + c = xvd(a, b, 3, c); + return c; + } + function KCd(a, b, c) { + c = xvd(a, b, 9, c); + return c; + } + function SKb(a, b) { + Ivb(b, Pye); + a.f = b; + return a; + } + function bOd(a, b) { + return (b & lve) % a.d.length; + } + function Bke(a, b, c) { + return age(a.c, a.b, b, c); + } + function ZLd(a, b) { + this.c = a; + ZHd.call(this, b); + } + function w0d(a, b) { + this.a = a; + Q_d.call(this, b); + } + function F4d(a, b) { + this.a = a; + Q_d.call(this, b); + } + function kGd(a, b) { + jGd.call(this, a); + this.a = b; + } + function U6d(a, b) { + L6d.call(this, a); + this.a = b; + } + function S9d(a, b) { + L6d.call(this, a); + this.a = b; + } + function jQb(a) { + gQb.call(this, 0, 0); + this.f = a; + } + function _hb(a, b, c) { + a.a += Ihb(b, 0, c); + return a; + } + function _A(a) { + !a.a && (a.a = new jB()); + return a.a; + } + function qlb(a, b) { + var c; + c = a.e; + a.e = b; + return c; + } + function Clb(a, b) { + var c; + c = b; + return !!a.Fe(c); + } + function Keb(a, b) { + Geb(); + return a == b ? 0 : a ? 1 : -1; + } + function Ikb(a, b) { + a.a.bd(a.b, b); + ++a.b; + a.c = -1; + } + function hg(a) { + a.b ? hg(a.b) : a.f.c.zc(a.e, a.d); + } + function aub(a) { + akb(a.e); + a.d.b = a.d; + a.d.a = a.d; + } + function VDb(a, b, c) { + xDb(); + HEb(a, b.Ve(a.a, c)); + } + function Xrb(a, b, c) { + return Wrb(a, RD(b, 22), c); + } + function WEb(a, b) { + return cFb(new Array(b), a); + } + function Fgb(a) { + return Ydb(Udb(a, 32)) ^ Ydb(a); + } + function XD(a) { + return String.fromCharCode(a); + } + function Dz(a) { + return a == null ? null : a.message; + } + function Rz(a, b, c) { + return a.apply(b, c); + } + function Btb(a, b) { + var c; + c = a[Jxe]; + c.call(a, b); + } + function Ctb(a, b) { + var c; + c = a[Jxe]; + c.call(a, b); + } + function O5b(a, b) { + H5b(); + return !n2b(b.d.i, a); + } + function R2b(a, b, c, d) { + J2b.call(this, a, b, c, d); + } + function TJb() { + RJb.call(this); + this.a = new pjd(); + } + function v2b() { + this.n = new pjd(); + this.o = new pjd(); + } + function kGb() { + this.b = new pjd(); + this.c = new bnb(); + } + function cUb() { + this.a = new bnb(); + this.b = new bnb(); + } + function kWb() { + this.a = new DTb(); + this.b = new vWb(); + } + function e6b() { + this.b = new gub(); + this.a = new gub(); + } + function jIc() { + this.b = new _sb(); + this.a = new _sb(); + } + function vYc() { + this.b = new Tsb(); + this.a = new Tsb(); + } + function fWc() { + this.b = new TVc(); + this.a = new IVc(); + } + function Yhc() { + this.a = new yqc(); + this.b = new Sqc(); + } + function lNc() { + this.a = new bnb(); + this.d = new bnb(); + } + function RJb() { + this.n = new z3b(); + this.i = new Tid(); + } + function hq(a) { + this.a = (dk(a, iwe), new cnb(a)); + } + function oq(a) { + this.a = (dk(a, iwe), new cnb(a)); + } + function tLd(a) { + return a < 100 ? null : new gLd(a); + } + function Lac(a, b) { + return a.n.a = (uFb(b), b) + 10; + } + function Mac(a, b) { + return a.n.a = (uFb(b), b) + 10; + } + function DYd(a, b) { + return b == a || PHd(sYd(b), a); + } + function nae(a, b) { + return Zjb(a.a, b, "") == null; + } + function Hee(a, b) { + var c; + c = b.qi(a.a); + return c; + } + function $id(a, b) { + a.a += b.a; + a.b += b.b; + return a; + } + function ojd(a, b) { + a.a -= b.a; + a.b -= b.b; + return a; + } + function sfd(a) { + aFb(a.j.c, 0); + a.a = -1; + return a; + } + function rCd(a, b, c) { + c = xvd(a, b, 11, c); + return c; + } + function SDd(a, b, c) { + c != null && Kzd(b, uEd(a, c)); + } + function TDd(a, b, c) { + c != null && Lzd(b, uEd(a, c)); + } + function G5d(a, b, c, d) { + C5d.call(this, a, b, c, d); + } + function oie(a, b, c, d) { + C5d.call(this, a, b, c, d); + } + function sie(a, b, c, d) { + oie.call(this, a, b, c, d); + } + function Nie(a, b, c, d) { + Iie.call(this, a, b, c, d); + } + function Pie(a, b, c, d) { + Iie.call(this, a, b, c, d); + } + function Vie(a, b, c, d) { + Iie.call(this, a, b, c, d); + } + function Tie(a, b, c, d) { + Pie.call(this, a, b, c, d); + } + function $ie(a, b, c, d) { + Pie.call(this, a, b, c, d); + } + function Yie(a, b, c, d) { + Vie.call(this, a, b, c, d); + } + function bje(a, b, c, d) { + $ie.call(this, a, b, c, d); + } + function Dje(a, b, c, d) { + wje.call(this, a, b, c, d); + } + function aMd(a, b) { + veb.call(this, HJe + a + NIe + b); + } + function Hje(a, b) { + return a.jk().wi().ri(a, b); + } + function Ije(a, b) { + return a.jk().wi().ti(a, b); + } + function Lfb(a, b) { + return uFb(a), dE(a) === dE(b); + } + function lhb(a, b) { + return uFb(a), dE(a) === dE(b); + } + function mEb(a, b) { + return a.b.Bd(new pEb(a, b)); + } + function sEb(a, b) { + return a.b.Bd(new vEb(a, b)); + } + function yEb(a, b) { + return a.b.Bd(new BEb(a, b)); + } + function Bk(a, b) { + return a.e = RD(a.d.Kb(b), 159); + } + function uhb(a, b, c) { + return a.lastIndexOf(b, c); + } + function wWb(a, b, c) { + return Qfb(a[b.a], a[c.a]); + } + function TWb(a, b) { + return pQb(b, (yCc(), gAc), a); + } + function Lpc(a, b) { + return hgb(b.a.d.p, a.a.d.p); + } + function Kpc(a, b) { + return hgb(a.a.d.p, b.a.d.p); + } + function zTc(a, b) { + return Qfb(a.c - a.s, b.c - b.s); + } + function qWc(a, b) { + return Qfb(a.b.e.a, b.b.e.a); + } + function sWc(a, b) { + return Qfb(a.c.e.a, b.c.e.a); + } + function $2b(a) { + return !a.c ? -1 : Wmb(a.c.a, a, 0); + } + function Cod(a) { + return a == vod || a == xod || a == wod; + } + function CMd(a, b) { + this.c = a; + nMd.call(this, a, b); + } + function fq(a, b, c) { + this.a = a; + qc.call(this, b, c); + } + function YDb(a) { + this.c = a; + xxb.call(this, Sve, 0); + } + function rk(a, b, c) { + this.c = b; + this.b = c; + this.a = a; + } + function DMc(a) { + dMc(); + this.d = a; + this.a = new wmb(); + } + function ho(a) { + _l(); + this.a = (yob(), new Lqb(a)); + } + function Xmc(a, b) { + Dmd(a.f) ? Ymc(a, b) : Zmc(a, b); + } + function Lxb(a, b) { + Mxb.call(this, a, a.length, b); + } + function nBb(a, b) { + if (dBb) { + return; + } + !!b && (a.d = b); + } + function ZNd(a, b) { + return ZD(b, 15) && _Gd(a.c, b); + } + function AVd(a, b, c) { + return RD(a.c, 71).Wk(b, c); + } + function BVd(a, b, c) { + return RD(a.c, 71).Xk(b, c); + } + function mge(a, b, c) { + return lge(a, RD(b, 343), c); + } + function oge(a, b, c) { + return nge(a, RD(b, 343), c); + } + function Ige(a, b, c) { + return Hge(a, RD(b, 343), c); + } + function Kge(a, b, c) { + return Jge(a, RD(b, 343), c); + } + function Fn(a, b) { + return b == null ? null : Xv(a.b, b); + } + function Qeb(a) { + return _D(a) ? (uFb(a), a) : a.ue(); + } + function Rfb(a) { + return !isNaN(a) && !isFinite(a); + } + function Zub(a) { + Lub(this); + Xub(this); + ye(this, a); + } + function dnb(a) { + Pmb(this); + YEb(this.c, 0, a.Pc()); + } + function Fsb(a, b, c) { + this.a = a; + this.b = b; + this.c = c; + } + function Vtb(a, b, c) { + this.a = a; + this.b = b; + this.c = c; + } + function hvb(a, b, c) { + this.d = a; + this.b = c; + this.a = b; + } + function aBb(a) { + this.a = a; + gib(); + Hdb(Date.now()); + } + function wzb(a) { + Ckb(a.a); + Yyb(a.c, a.b); + a.b = null; + } + function wvb() { + wvb = geb; + uvb = new xvb(); + vvb = new zvb(); + } + function KMd() { + KMd = geb; + JMd = $C(jJ, rve, 1, 0, 5, 1); + } + function TTd() { + TTd = geb; + STd = $C(jJ, rve, 1, 0, 5, 1); + } + function yUd() { + yUd = geb; + xUd = $C(jJ, rve, 1, 0, 5, 1); + } + function _l() { + _l = geb; + new im((yob(), yob(), vob)); + } + function gAb(a) { + cAb(); + return ws((qAb(), pAb), a); + } + function zBb(a) { + xBb(); + return ws((CBb(), BBb), a); + } + function FHb(a) { + DHb(); + return ws((IHb(), HHb), a); + } + function NHb(a) { + LHb(); + return ws((QHb(), PHb), a); + } + function kIb(a) { + iIb(); + return ws((nIb(), mIb), a); + } + function _Jb(a) { + ZJb(); + return ws((cKb(), bKb), a); + } + function GKb(a) { + EKb(); + return ws((JKb(), IKb), a); + } + function xLb(a) { + vLb(); + return ws((ALb(), zLb), a); + } + function mMb(a) { + hMb(); + return ws((pMb(), oMb), a); + } + function oOb(a) { + mOb(); + return ws((rOb(), qOb), a); + } + function KPb(a) { + IPb(); + return ws((NPb(), MPb), a); + } + function KRb(a) { + IRb(); + return ws((NRb(), MRb), a); + } + function XRb(a) { + VRb(); + return ws(($Rb(), ZRb), a); + } + function VUb(a) { + TUb(); + return ws((YUb(), XUb), a); + } + function CWb(a) { + AWb(); + return ws((FWb(), EWb), a); + } + function uXb(a) { + sXb(); + return ws((xXb(), wXb), a); + } + function tZb(a) { + nZb(); + return ws((wZb(), vZb), a); + } + function W$b(a) { + U$b(); + return ws((Z$b(), Y$b), a); + } + function Mb(a, b) { + if (!a) { + throw Adb(new agb(b)); + } + } + function Vb(a) { + if (!a) { + throw Adb(new dgb(tve)); + } + } + function rFb(a, b) { + if (a != b) { + throw Adb(new Jrb()); + } + } + function KQb(a, b, c) { + this.a = a; + this.b = b; + this.c = c; + } + function lRb(a, b, c) { + this.a = a; + this.b = b; + this.c = c; + } + function h7b(a, b, c) { + this.a = a; + this.b = b; + this.c = c; + } + function J0b(a, b, c) { + this.b = a; + this.a = b; + this.c = c; + } + function dNb(a, b, c) { + this.b = a; + this.c = b; + this.a = c; + } + function oac(a, b, c) { + this.a = a; + this.b = b; + this.c = c; + } + function F1b(a, b, c) { + this.e = b; + this.b = a; + this.d = c; + } + function Ecc(a, b, c) { + this.b = a; + this.a = b; + this.c = c; + } + function UDb(a, b, c) { + xDb(); + a.a.Yd(b, c); + return b; + } + function CJb(a) { + var b; + b = new BJb(); + b.e = a; + return b; + } + function _Nb(a) { + var b; + b = new YNb(); + b.b = a; + return b; + } + function U9b() { + U9b = geb; + S9b = new bac(); + T9b = new eac(); + } + function Rec() { + Rec = geb; + Qec = new efc(); + Pec = new jfc(); + } + function lkc() { + lkc = geb; + jkc = new Mkc(); + kkc = new Okc(); + } + function loc(a) { + joc(); + return ws((ooc(), noc), a); + } + function kcc(a) { + hcc(); + return ws((ncc(), mcc), a); + } + function yec(a) { + vec(); + return ws((Bec(), Aec), a); + } + function gnc(a) { + enc(); + return ws((jnc(), inc), a); + } + function Enc(a) { + Bnc(); + return ws((Hnc(), Gnc), a); + } + function gpc(a) { + epc(); + return ws((jpc(), ipc), a); + } + function dtc(a) { + btc(); + return ws((gtc(), ftc), a); + } + function ltc(a) { + jtc(); + return ws((otc(), ntc), a); + } + function xtc(a) { + stc(); + return ws((Atc(), ztc), a); + } + function Gtc(a) { + Etc(); + return ws((Jtc(), Itc), a); + } + function Utc(a) { + Ptc(); + return ws((Xtc(), Wtc), a); + } + function auc(a) { + $tc(); + return ws((duc(), cuc), a); + } + function avc(a) { + $uc(); + return ws((dvc(), cvc), a); + } + function qvc(a) { + ovc(); + return ws((tvc(), svc), a); + } + function zvc(a) { + xvc(); + return ws((Cvc(), Bvc), a); + } + function Ivc(a) { + Gvc(); + return ws((Lvc(), Kvc), a); + } + function Qvc(a) { + Ovc(); + return ws((Tvc(), Svc), a); + } + function Quc(a) { + Ouc(); + return ws((Tuc(), Suc), a); + } + function juc(a) { + huc(); + return ws((muc(), luc), a); + } + function wuc(a) { + tuc(); + return ws((zuc(), yuc), a); + } + function Euc(a) { + Cuc(); + return ws((Huc(), Guc), a); + } + function exc(a) { + cxc(); + return ws((hxc(), gxc), a); + } + function eDc(a) { + _Cc(); + return ws((hDc(), gDc), a); + } + function oDc(a) { + lDc(); + return ws((rDc(), qDc), a); + } + function ADc(a) { + wDc(); + return ws((DDc(), CDc), a); + } + function ODc(a) { + JDc(); + return ws((RDc(), QDc), a); + } + function cEc(a) { + aEc(); + return ws((fEc(), eEc), a); + } + function mEc(a) { + kEc(); + return ws((pEc(), oEc), a); + } + function uEc(a) { + sEc(); + return ws((xEc(), wEc), a); + } + function DEc(a) { + BEc(); + return ws((GEc(), FEc), a); + } + function MEc(a) { + KEc(); + return ws((PEc(), OEc), a); + } + function VEc(a) { + TEc(); + return ws((YEc(), XEc), a); + } + function nFc(a) { + lFc(); + return ws((qFc(), pFc), a); + } + function wFc(a) { + uFc(); + return ws((zFc(), yFc), a); + } + function FFc(a) { + DFc(); + return ws((IFc(), HFc), a); + } + function TKc(a) { + RKc(); + return ws((WKc(), VKc), a); + } + function uNc(a) { + sNc(); + return ws((xNc(), wNc), a); + } + function yQc(a) { + wQc(); + return ws((BQc(), AQc), a); + } + function GQc(a) { + EQc(); + return ws((JQc(), IQc), a); + } + function hTc(a) { + fTc(); + return ws((kTc(), jTc), a); + } + function fVc(a) { + dVc(); + return ws((iVc(), hVc), a); + } + function bWc(a) { + YVc(); + return ws((eWc(), dWc), a); + } + function ZYc(a) { + WYc(); + return ws((aZc(), _Yc), a); + } + function NZc(a) { + LZc(); + return ws((QZc(), PZc), a); + } + function u_c(a) { + s_c(); + return ws((x_c(), w_c), a); + } + function C_c(a) { + A_c(); + return ws((F_c(), E_c), a); + } + function C2c(a) { + x2c(); + return ws((F2c(), E2c), a); + } + function j3c(a) { + g3c(); + return ws((m3c(), l3c), a); + } + function j4c(a) { + g4c(); + return ws((m4c(), l4c), a); + } + function _3c(a) { + Y3c(); + return ws((c4c(), b4c), a); + } + function m5c(a) { + j5c(); + return ws((p5c(), o5c), a); + } + function w5c(a) { + t5c(); + return ws((z5c(), y5c), a); + } + function h6c(a) { + f6c(); + return ws((k6c(), j6c), a); + } + function C6c(a) { + z6c(); + return ws((F6c(), E6c), a); + } + function b7c(a) { + _6c(); + return ws((e7c(), d7c), a); + } + function E8c(a) { + z8c(); + return ws((H8c(), G8c), a); + } + function R8b(a) { + P8b(); + return ws((U8b(), T8b), a); + } + function t3b(a) { + r3b(); + return ws((w3b(), v3b), a); + } + function g9c(a) { + b9c(); + return ws((j9c(), i9c), a); + } + function G9c(a) { + B9c(); + return ws((J9c(), I9c), a); + } + function uad(a) { + sad(); + return ws((xad(), wad), a); + } + function xbd(a) { + sbd(); + return ws((Abd(), zbd), a); + } + function ibd(a) { + gbd(); + return ws((lbd(), kbd), a); + } + function Gbd(a) { + Cbd(); + return ws((Jbd(), Ibd), a); + } + function Obd(a) { + Mbd(); + return ws((Rbd(), Qbd), a); + } + function Zbd(a) { + Xbd(); + return ws((acd(), _bd), a); + } + function fdd(a) { + _cd(); + return ws((idd(), hdd), a); + } + function qdd(a) { + ldd(); + return ws((tdd(), sdd), a); + } + function $hd(a) { + Yhd(); + return ws((bid(), aid), a); + } + function mid(a) { + kid(); + return ws((pid(), oid), a); + } + function Tjd(a) { + Rjd(); + return ws((Wjd(), Vjd), a); + } + function wkd(a) { + ukd(); + return ws((zkd(), ykd), a); + } + function Hmd(a) { + Cmd(); + return ws((Kmd(), Jmd), a); + } + function Qmd(a) { + Omd(); + return ws((Tmd(), Smd), a); + } + function $md(a) { + Ymd(); + return ws((bnd(), and), a); + } + function knd(a) { + ind(); + return ws((nnd(), mnd), a); + } + function Hnd(a) { + Fnd(); + return ws((Knd(), Jnd), a); + } + function Snd(a) { + Pnd(); + return ws((Vnd(), Und), a); + } + function god(a) { + dod(); + return ws((jod(), iod), a); + } + function rod(a) { + pod(); + return ws((uod(), tod), a); + } + function Fod(a) { + Bod(); + return ws((Iod(), Hod), a); + } + function Tod(a) { + Pod(); + return ws((Wod(), Vod), a); + } + function wpd(a) { + qpd(); + return ws((zpd(), ypd), a); + } + function Spd(a) { + Qpd(); + return ws((Vpd(), Upd), a); + } + function fqd(a) { + dqd(); + return ws((iqd(), hqd), a); + } + function oqd(a) { + mqd(); + return ws((rqd(), qqd), a); + } + function zsc(a, b) { + return (uFb(a), a) + (uFb(b), b); + } + function wqd(a) { + uqd(); + return ws((Eqd(), Dqd), a); + } + function Ird(a) { + Grd(); + return ws((Lrd(), Krd), a); + } + function vtd(a) { + ttd(); + return ws((ytd(), xtd), a); + } + function dMc() { + dMc = geb; + bMc = (qpd(), ppd); + cMc = Xod; + } + function uqd() { + uqd = geb; + sqd = new zqd(); + tqd = new Bqd(); + } + function wJc(a) { + !a.e && (a.e = new bnb()); + return a.e; + } + function BTc(a, b) { + this.c = a; + this.a = b; + this.b = b - a; + } + function g8c(a, b, c) { + this.a = a; + this.b = b; + this.c = c; + } + function gud(a, b, c) { + this.a = a; + this.b = b; + this.c = c; + } + function Wdd(a, b, c) { + this.a = a; + this.b = b; + this.c = c; + } + function ced(a, b, c) { + this.a = a; + this.b = b; + this.c = c; + } + function pFd(a, b, c) { + this.a = a; + this.b = b; + this.c = c; + } + function ZPd(a, b, c) { + this.a = a; + this.b = b; + this.c = c; + } + function g7d(a, b, c) { + this.e = a; + this.a = b; + this.c = c; + } + function K7d(a, b, c) { + s7d(); + C7d.call(this, a, b, c); + } + function f9d(a, b, c) { + s7d(); + O8d.call(this, a, b, c); + } + function r9d(a, b, c) { + s7d(); + O8d.call(this, a, b, c); + } + function x9d(a, b, c) { + s7d(); + O8d.call(this, a, b, c); + } + function h9d(a, b, c) { + s7d(); + f9d.call(this, a, b, c); + } + function j9d(a, b, c) { + s7d(); + f9d.call(this, a, b, c); + } + function l9d(a, b, c) { + s7d(); + j9d.call(this, a, b, c); + } + function t9d(a, b, c) { + s7d(); + r9d.call(this, a, b, c); + } + function z9d(a, b, c) { + s7d(); + x9d.call(this, a, b, c); + } + function S2b(a) { + J2b.call(this, a.d, a.c, a.a, a.b); + } + function B3b(a) { + J2b.call(this, a.d, a.c, a.a, a.b); + } + function Og(a) { + this.d = a; + Lg(this); + this.b = ed(a.d); + } + function cGd(a) { + aGd(); + return ws((fGd(), eGd), a); + } + function gk(a, b) { + Qb(a); + Qb(b); + return new hk(a, b); + } + function dr(a, b) { + Qb(a); + Qb(b); + return new mr(a, b); + } + function hr(a, b) { + Qb(a); + Qb(b); + return new sr(a, b); + } + function Dr(a, b) { + Qb(a); + Qb(b); + return new Rr(a, b); + } + function Uub(a) { + sFb(a.b != 0); + return Wub(a, a.a.a); + } + function Vub(a) { + sFb(a.b != 0); + return Wub(a, a.c.b); + } + function q$d(a) { + !a.c && (a.c = new X9d()); + return a.c; + } + function cv(a) { + var b; + b = new bnb(); + xr(b, a); + return b; + } + function Vx(a) { + var b; + b = new _sb(); + xr(b, a); + return b; + } + function Yx(a) { + var b; + b = new xAb(); + _q(b, a); + return b; + } + function gv(a) { + var b; + b = new Yub(); + _q(b, a); + return b; + } + function RD(a, b) { + CFb(a == null || QD(a, b)); + return a; + } + function Mxb(a, b, c) { + Axb.call(this, b, c); + this.a = a; + } + function kB(a, b) { + this.c = a; + this.b = b; + this.a = false; + } + function hCb() { + this.a = ";,;"; + this.b = ""; + this.c = ""; + } + function $Cb(a, b, c) { + this.b = a; + pxb.call(this, b, c); + } + function uub(a, b, c) { + this.c = a; + xlb.call(this, b, c); + } + function fZb(a, b, c) { + eZb.call(this, a, b); + this.b = c; + } + function YEb(a, b, c) { + VEb(c, 0, a, b, c.length, false); + } + function JYb(a, b, c, d, e) { + a.b = b; + a.c = c; + a.d = d; + a.a = e; + } + function D2b(a, b, c, d, e) { + a.d = b; + a.c = c; + a.a = d; + a.b = e; + } + function XDb(a, b) { + if (b) { + a.b = b; + a.a = (LCb(b), b.a); + } + } + function mFb(a, b) { + if (!a) { + throw Adb(new agb(b)); + } + } + function zFb(a, b) { + if (!a) { + throw Adb(new dgb(b)); + } + } + function qFb(a, b) { + if (!a) { + throw Adb(new zeb(b)); + } + } + function zqc(a, b) { + mqc(); + return hgb(a.d.p, b.d.p); + } + function T0c(a, b) { + B0c(); + return Qfb(a.e.b, b.e.b); + } + function U0c(a, b) { + B0c(); + return Qfb(a.e.a, b.e.a); + } + function Xoc(a, b) { + return hgb(N3b(a.d), N3b(b.d)); + } + function Izb(a, b) { + return !!b && Jzb(a, b.d) ? b : null; + } + function $lc(a, b) { + return b == (qpd(), ppd) ? a.c : a.d; + } + function Qdb(a) { + return Edb(yD(Kdb(a) ? Wdb(a) : a)); + } + function Nid(a) { + return new rjd(a.c + a.b, a.d + a.a); + } + function GSd(a) { + return a != null && !mSd(a, aSd, bSd); + } + function DSd(a, b) { + return (JSd(a) << 4 | JSd(b)) & Bwe; + } + function Rid(a, b, c, d, e) { + a.c = b; + a.d = c; + a.b = d; + a.a = e; + } + function y8b(a) { + var b, c; + b = a.b; + c = a.c; + a.b = c; + a.c = b; + } + function B8b(a) { + var b, c; + c = a.d; + b = a.a; + a.d = b; + a.a = c; + } + function u6d(a, b) { + var c; + c = a.c; + t6d(a, b); + return c; + } + function Nqd(a, b) { + b < 0 ? a.g = -1 : a.g = b; + return a; + } + function kjd(a, b) { + gjd(a); + a.a *= b; + a.b *= b; + return a; + } + function hrc(a, b, c) { + grc.call(this, b, c); + this.d = a; + } + function PZd(a, b, c) { + kZd.call(this, a, b); + this.c = c; + } + function Kfe(a, b, c) { + kZd.call(this, a, b); + this.c = c; + } + function zUd(a) { + yUd(); + kUd.call(this); + this.ci(a); + } + function Yee() { + ree(); + Zee.call(this, (YSd(), XSd)); + } + function Yse(a) { + Vse(); + return new Hte(0, a); + } + function uke() { + uke = geb; + tke = (yob(), new mpb(eLe)); + } + function ux() { + ux = geb; + new wx((kl(), jl), (Wk(), Vk)); + } + function ugb() { + ugb = geb; + tgb = $C(bJ, Nve, 17, 256, 0, 1); + } + function zUb() { + this.b = Kfb(UD(iGd((yVb(), sVb)))); + } + function Pq(a) { + this.b = a; + this.a = gn(this.b.a).Od(); + } + function mr(a, b) { + this.b = a; + this.a = b; + zl.call(this); + } + function sr(a, b) { + this.a = a; + this.b = b; + zl.call(this); + } + function s_d(a, b, c) { + this.a = a; + N$d.call(this, b, c); + } + function n_d(a, b, c) { + this.a = a; + N$d.call(this, b, c); + } + function sDd(a, b, c) { + var d; + d = new OC(c); + sC(a, b, d); + } + function _Eb(a, b, c) { + var d; + d = a[b]; + a[b] = c; + return d; + } + function UEb(a) { + var b; + b = a.slice(); + return dD(b, a); + } + function SJb(a) { + var b; + b = a.n; + return a.a.b + b.d + b.a; + } + function PKb(a) { + var b; + b = a.n; + return a.e.b + b.d + b.a; + } + function QKb(a) { + var b; + b = a.n; + return a.e.a + b.b + b.c; + } + function rub(a) { + a.a.b = a.b; + a.b.a = a.a; + a.a = a.b = null; + } + function Mub(a, b) { + Pub(a, b, a.c.b, a.c); + return true; + } + function w2b(a) { + if (a.a) { + return a.a; + } + return R0b(a); + } + function NSb(a) { + HSb(); + return JGd(a) == vCd(LGd(a)); + } + function OSb(a) { + HSb(); + return LGd(a) == vCd(JGd(a)); + } + function l_b(a, b) { + return k_b(a, new eZb(b.a, b.b)); + } + function xn(a, b) { + return fn(), ck(a, b), new zy(a, b); + } + function fmc(a, b) { + return a.c < b.c ? -1 : a.c == b.c ? 0 : 1; + } + function snc(a) { + return a.b.c.length - a.e.c.length; + } + function N3b(a) { + return a.e.c.length - a.g.c.length; + } + function L3b(a) { + return a.e.c.length + a.g.c.length; + } + function Lgb(a) { + return a == 0 || isNaN(a) ? a : a < 0 ? -1 : 1; + } + function V0b(a) { + return !W0b(a) && a.c.i.c == a.d.i.c; + } + function DOc(a) { + dOc(); + return (qpd(), apd).Hc(a.j); + } + function M0c(a, b, c) { + B0c(); + return c.e.a + c.f.a + a * b; + } + function W0c(a, b, c) { + B0c(); + return c.e.b + c.f.b + a * b; + } + function SUc(a, b, c) { + return Zjb(a.b, RD(c.b, 18), b); + } + function TUc(a, b, c) { + return Zjb(a.b, RD(c.b, 18), b); + } + function oFd(a, b, c) { + iEd(a.a, a.b, a.c, RD(b, 166), c); + } + function lad(a, b, c, d) { + mad.call(this, a, b, c, d, 0, 0); + } + function LUd(a) { + yUd(); + zUd.call(this, a); + this.a = -1; + } + function Gxb(a, b) { + Axb.call(this, b, 1040); + this.a = a; + } + function zqd() { + vqd.call(this, "COUNT_CHILDREN", 0); + } + function ole(a, b) { + Eke.call(this, a, b); + this.a = this; + } + function ufb(a, b) { + var c; + c = rfb(a, b); + c.i = 2; + return c; + } + function cJd(a, b) { + var c; + ++a.j; + c = a.Cj(b); + return c; + } + function pfd(a, b, c) { + a.a = -1; + tfd(a, b.g, c); + return a; + } + function Bsd(a, b) { + return Rmb(a, new rjd(b.a, b.b)); + } + function __c(a) { + return R_c(), $C(Z$, NEe, 40, a, 0, 1); + } + function dj(a) { + return a.e.Rd().gc() * a.c.Rd().gc(); + } + function fk(a, b, c) { + return new rk(hDb(a)._e(), c, b); + } + function mVd(a, b) { + nVd(a, b == null ? null : (uFb(b), b)); + } + function q6d(a, b) { + s6d(a, b == null ? null : (uFb(b), b)); + } + function r6d(a, b) { + s6d(a, b == null ? null : (uFb(b), b)); + } + function CFb(a) { + if (!a) { + throw Adb(new Ifb(null)); + } + } + function tt(a) { + if (a.c.e != a.a) { + throw Adb(new Jrb()); + } + } + function Au(a) { + if (a.e.c != a.b) { + throw Adb(new Jrb()); + } + } + function Ar(a) { + Qb(a); + while (a.Ob()) { + a.Pb(); + a.Qb(); + } + } + function Dy(a) { + tm(); + this.a = (yob(), new mpb(Qb(a))); + } + function mf(a) { + this.c = a; + this.b = this.c.d.vc().Kc(); + } + function hx(a) { + a.a.ld(); + RD(a.a.md(), 16).gc(); + Hh(); + } + function $hb(a, b) { + a.a += Ihb(b, 0, b.length); + return a; + } + function Vmb(a, b) { + tFb(b, a.c.length); + return a.c[b]; + } + function kob(a, b) { + tFb(b, a.a.length); + return a.a[b]; + } + function Arb(a, b) { + return uFb(b), Leb(b, (uFb(a), a)); + } + function vrb(a, b) { + return uFb(a), Leb(a, (uFb(b), b)); + } + function YC(a, b, c, d, e, f) { + return ZC(a, b, c, d, e, 0, f); + } + function GBb(a, b) { + return bD(b, 0, tCb(b[0], Hgb(1))); + } + function IBb(a, b) { + return Hgb(Bdb(Hgb(a.a).a, b.a)); + } + function tCb(a, b) { + return IBb(RD(a, 168), RD(b, 168)); + } + function Jgb() { + Jgb = geb; + Igb = $C(eJ, Nve, 168, 256, 0, 1); + } + function dhb() { + dhb = geb; + chb = $C(lJ, Nve, 191, 256, 0, 1); + } + function Zeb() { + Zeb = geb; + Yeb = $C(RI, Nve, 222, 256, 0, 1); + } + function jfb() { + jfb = geb; + ifb = $C(SI, Nve, 180, 128, 0, 1); + } + function KYb() { + JYb(this, false, false, false, false); + } + function Kub(a) { + ctb.call(this, new gub()); + ye(this, a); + } + function btb(a) { + this.a = new Usb(a.gc()); + ye(this, a); + } + function nsb(a) { + this.c = a; + this.a = new Osb(this.c.a); + } + function Kmc(a) { + this.a = a; + this.c = new Tsb(); + Emc(this); + } + function DRb() { + this.d = new rjd(0, 0); + this.e = new _sb(); + } + function SDb(a, b) { + xDb(); + NCb.call(this, a); + this.a = b; + } + function J2b(a, b, c, d) { + D2b(this, a, b, c, d); + } + function Uqc(a, b, c) { + return hgb(b.d[a.g], c.d[a.g]); + } + function wMc(a, b, c) { + return hgb(a.d[b.p], a.d[c.p]); + } + function xMc(a, b, c) { + return hgb(a.d[b.p], a.d[c.p]); + } + function yMc(a, b, c) { + return hgb(a.d[b.p], a.d[c.p]); + } + function zMc(a, b, c) { + return hgb(a.d[b.p], a.d[c.p]); + } + function Aad(a, b, c) { + return $wnd.Math.min(c / a, 1 / b); + } + function SIc(a, b) { + return a ? 0 : $wnd.Math.max(0, b - 1); + } + function qSd(a, b) { + return a == null ? b == null : lhb(a, b); + } + function rSd(a, b) { + return a == null ? b == null : mhb(a, b); + } + function lQb(a) { + return !a.q ? (yob(), yob(), wob) : a.q; + } + function _lc(a) { + return a.c - RD(Vmb(a.a, a.b), 294).b; + } + function trd(a) { + if (a.c) { + return a.c.f; + } + return a.e.b; + } + function urd(a) { + if (a.c) { + return a.c.g; + } + return a.e.a; + } + function wsc(a, b) { + a.a == null && usc(a); + return a.a[b]; + } + function L2c(a) { + var b; + b = R2c(a); + return !b ? a : L2c(b); + } + function $se(a, b) { + Vse(); + return new Qte(a, b); + } + function Hte(a, b) { + Vse(); + Wse.call(this, a); + this.a = b; + } + function N8d(a, b) { + s7d(); + t7d.call(this, b); + this.a = a; + } + function iae(a, b, c) { + this.a = a; + XZd.call(this, b, c, 2); + } + function ntd(a) { + this.b = new Yub(); + this.a = a; + this.c = -1; + } + function ds(a) { + qc.call(this, 0, 0); + this.a = a; + this.b = 0; + } + function PSd(a) { + ZHd.call(this, a.gc()); + YGd(this, a); + } + function jg(a) { + a.b ? jg(a.b) : a.d.dc() && a.f.c.Bc(a.e); + } + function aD(a) { + return Array.isArray(a) && a.Tm === keb; + } + function Bsb(a, b) { + return ZD(b, 22) && Csb(a, RD(b, 22)); + } + function Dsb(a, b) { + return ZD(b, 22) && Esb(a, RD(b, 22)); + } + function qtb(a, b) { + return otb(a, b, ptb(a, a.b.Ce(b))); + } + function Jtb(a, b) { + return !(a.a.get(b) === void 0); + } + function Iwb(a) { + return Kwb(a, 26) * Kxe + Kwb(a, 27) * Lxe; + } + function OBb(a, b) { + return FBb(new jCb(), new VBb(a), b); + } + function Ynb(a, b, c) { + nFb(0, b, a.length); + Wnb(a, 0, b, c); + } + function Qmb(a, b, c) { + wFb(b, a.c.length); + XEb(a.c, b, c); + } + function dKb(a, b, c) { + var d; + if (a) { + d = a.i; + d.c = b; + d.b = c; + } + } + function eKb(a, b, c) { + var d; + if (a) { + d = a.i; + d.d = b; + d.a = c; + } + } + function Pnb(a, b, c) { + var d; + for (d = 0; d < b; ++d) { + a[d] = c; + } + } + function Qnb(a, b) { + var c; + for (c = 0; c < b; ++c) { + a[c] = -1; + } + } + function ysb(a, b) { + var c; + c = xsb(a); + zob(c, b); + return c; + } + function cA(a, b) { + !a && (a = []); + a[a.length] = b; + return a; + } + function RQb(a, b) { + $id(a.c, b); + a.b.c += b.a; + a.b.d += b.b; + } + function QQb(a, b) { + RQb(a, ojd(new rjd(b.a, b.b), a.c)); + } + function sOb(a, b) { + this.b = new Yub(); + this.a = a; + this.c = b; + } + function QYb() { + this.b = new aZb(); + this.c = new UYb(this); + } + function fHb() { + this.d = new tHb(); + this.e = new lHb(this); + } + function UFc() { + RFc(); + this.f = new Yub(); + this.e = new Yub(); + } + function yOc() { + dOc(); + this.k = new Tsb(); + this.d = new _sb(); + } + function nud() { + nud = geb; + mud = new mGd((umd(), Gld), 0); + } + function cs() { + cs = geb; + bs = new ds($C(jJ, rve, 1, 0, 5, 1)); + } + function _ad(a, b, c) { + return Ysb(a, new TFb(b.a, c.a)); + } + function DGc(a, b, c) { + return -hgb(a.f[b.p], a.f[c.p]); + } + function Mic(a, b, c) { + Hic(c, a, 1); + Rmb(b, new xjc(c, a)); + } + function Nic(a, b, c) { + Iic(c, a, 1); + Rmb(b, new Jjc(c, a)); + } + function h$d(a, b, c) { + this.a = a; + _Zd.call(this, b, c, 22); + } + function s5d(a, b, c) { + this.a = a; + _Zd.call(this, b, c, 14); + } + function E8d(a, b, c, d) { + s7d(); + N7d.call(this, a, b, c, d); + } + function L8d(a, b, c, d) { + s7d(); + N7d.call(this, a, b, c, d); + } + function nfd(a, b, c) { + a.a = -1; + tfd(a, b.g + 1, c); + return a; + } + function bCd(a, b, c) { + c = xvd(a, RD(b, 54), 7, c); + return c; + } + function hVd(a, b, c) { + c = xvd(a, RD(b, 54), 3, c); + return c; + } + function Ydb(a) { + if (Kdb(a)) { + return a | 0; + } + return FD(a); + } + function cte(a) { + Vse(); + return new eue(10, a, 0); + } + function fe(a) { + var b; + b = a.f; + return !b ? a.f = a.Dc() : b; + } + function Ec(a) { + var b; + b = a.i; + return !b ? a.i = a.bc() : b; + } + function Ahe(a) { + if (a.e.j != a.d) { + throw Adb(new Jrb()); + } + } + function gn(a) { + if (a.c) { + return a.c; + } + return a.c = a.Sd(); + } + function hn(a) { + if (a.d) { + return a.d; + } + return a.d = a.Td(); + } + function Uee(a, b) { + return ufe(Pee(a, b)) ? b.zi() : null; + } + function ed(a) { + return ZD(a, 15) ? RD(a, 15).ed() : a.Kc(); + } + function De(a) { + return a.Qc($C(jJ, rve, 1, a.gc(), 5, 1)); + } + function aE(a) { + return a != null && cE(a) && !(a.Tm === keb); + } + function YD(a) { + return !Array.isArray(a) && a.Tm === keb; + } + function vx(a, b) { + return Qb(b), a.a.Jd(b) && !a.b.Jd(b); + } + function tD(a, b) { + return hD(a.l & b.l, a.m & b.m, a.h & b.h); + } + function zD(a, b) { + return hD(a.l | b.l, a.m | b.m, a.h | b.h); + } + function HD(a, b) { + return hD(a.l ^ b.l, a.m ^ b.m, a.h ^ b.h); + } + function Sdb(a, b) { + return Edb(AD(Kdb(a) ? Wdb(a) : a, b)); + } + function Tdb(a, b) { + return Edb(BD(Kdb(a) ? Wdb(a) : a, b)); + } + function Udb(a, b) { + return Edb(CD(Kdb(a) ? Wdb(a) : a, b)); + } + function Ieb(a, b) { + return Keb((uFb(a), a), (uFb(b), b)); + } + function Jfb(a, b) { + return Qfb((uFb(a), a), (uFb(b), b)); + } + function pwb(a) { + this.b = new cnb(11); + this.a = (urb(), a); + } + function is(a) { + this.a = (cs(), bs); + this.d = RD(Qb(a), 51); + } + function Axb(a, b) { + this.c = 0; + this.d = a; + this.b = b | 64 | Ove; + } + function kxb(a, b) { + this.e = a; + this.d = (b & 64) != 0 ? b | Ove : b; + } + function ezb(a) { + this.b = null; + this.a = (urb(), !a ? rrb : a); + } + function nz(a) { + ez(this); + this.g = a; + gz(this); + this.je(); + } + function vue(a) { + uue(); + this.a = 0; + this.b = a - 1; + this.c = 1; + } + function yg(a, b, c, d) { + this.a = a; + lg.call(this, a, b, c, d); + } + function gEb(a, b, c) { + if (a.a.Mb(c)) { + a.b = true; + b.Cd(c); + } + } + function Qwb(a) { + if (!a.d) { + a.d = a.b.Kc(); + a.c = a.b.gc(); + } + } + function lyb(a, b) { + if (a < 0 || a >= b) { + throw Adb(new web()); + } + } + function JDb(a, b) { + return MDb(a, (uFb(b), new JAb(b))); + } + function KDb(a, b) { + return MDb(a, (uFb(b), new LAb(b))); + } + function prc(a, b, c) { + return qrc(a, RD(b, 12), RD(c, 12)); + } + function q4b(a) { + return J3b(), RD(a, 12).g.c.length != 0; + } + function v4b(a) { + return J3b(), RD(a, 12).e.c.length != 0; + } + function sdc(a, b) { + Zcc(); + return Qfb(b.a.o.a, a.a.o.a); + } + function d_d(a, b) { + (b.Bb & QHe) != 0 && !a.a.o && (a.a.o = b); + } + function T3c(a, b) { + b.Ug("General 'Rotator", 1); + S3c(a); + } + function MCc(a, b, c) { + b.qf(c, Kfb(UD(Wjb(a.b, c))) * a.a); + } + function yid(a, b, c) { + tid(); + return xid(a, b) && xid(a, c); + } + function Rod(a) { + Pod(); + return !a.Hc(Lod) && !a.Hc(Nod); + } + function Nrc(a) { + if (a.e) { + return Src(a.e); + } + return null; + } + function Zdb(a) { + if (Kdb(a)) { + return "" + a; + } + return GD(a); + } + function XNc(a) { + var b; + b = a; + while (b.f) { + b = b.f; + } + return b; + } + function HBb(a, b, c) { + bD(b, 0, tCb(b[0], c[0])); + return b; + } + function Gpc(a, b, c, d) { + var e; + e = a.i; + e.i = b; + e.a = c; + e.b = d; + } + function C5d(a, b, c, d) { + XZd.call(this, a, b, c); + this.b = d; + } + function N3d(a, b, c, d, e) { + O3d.call(this, a, b, c, d, e, -1); + } + function b4d(a, b, c, d, e) { + c4d.call(this, a, b, c, d, e, -1); + } + function Iie(a, b, c, d) { + PZd.call(this, a, b, c); + this.b = d; + } + function Xde(a) { + uId.call(this, a, false); + this.a = false; + } + function Bqd() { + vqd.call(this, "LOOKAHEAD_LAYOUT", 1); + } + function nNd(a) { + this.b = a; + mMd.call(this, a); + mNd(this); + } + function vNd(a) { + this.b = a; + BMd.call(this, a); + uNd(this); + } + function J5d(a, b, c) { + this.a = a; + G5d.call(this, b, c, 5, 6); + } + function wje(a, b, c, d) { + this.b = a; + XZd.call(this, b, c, d); + } + function Tj(a, b) { + this.b = a; + Aj.call(this, a.b); + this.a = b; + } + function NLc(a) { + this.a = LLc(a.a); + this.b = new dnb(a.b); + } + function Fx(a, b) { + tm(); + Ex.call(this, a, Pm(new mob(b))); + } + function _se(a, b) { + Vse(); + return new aue(a, b, 0); + } + function bte(a, b) { + Vse(); + return new aue(6, a, b); + } + function Ztb(a, b) { + uFb(b); + while (a.Ob()) { + b.Cd(a.Pb()); + } + } + function Ujb(a, b) { + return bE(b) ? Yjb(a, b) : !!qtb(a.f, b); + } + function O_d(a, b) { + return b.Vh() ? Vvd(a.b, RD(b, 54)) : b; + } + function whb(a, b) { + return lhb(a.substr(0, b.length), b); + } + function Fl(a) { + return new is(new Il(a.a.length, a.a)); + } + function Oid(a) { + return new rjd(a.c + a.b / 2, a.d + a.a / 2); + } + function yD(a) { + return hD(~a.l & dxe, ~a.m & dxe, ~a.h & exe); + } + function cE(a) { + return typeof a === gve || typeof a === kve; + } + function akb(a) { + a.f = new ttb(a); + a.i = new Ntb(a); + ++a.g; + } + function Klb(a) { + if (!a) { + throw Adb(new Dvb()); + } + return a.d; + } + function smb(a) { + var b; + b = omb(a); + sFb(b != null); + return b; + } + function tmb(a) { + var b; + b = pmb(a); + sFb(b != null); + return b; + } + function tv(a, b) { + var c; + c = a.a.gc(); + Sb(b, c); + return c - b; + } + function Ysb(a, b) { + var c; + c = a.a.zc(b, a); + return c == null; + } + function rAb(a, b) { + return a.a.zc(b, (Geb(), Eeb)) == null; + } + function _nb(a) { + return new SDb(null, $nb(a, a.length)); + } + function yPb(a, b, c) { + return zPb(a, RD(b, 42), RD(c, 176)); + } + function Wrb(a, b, c) { + zsb(a.a, b); + return _Eb(a.b, b.g, c); + } + function fyb(a, b, c) { + lyb(c, a.a.c.length); + $mb(a.a, c, b); + } + function Knb(a, b, c, d) { + nFb(b, c, a.length); + Onb(a, b, c, d); + } + function Onb(a, b, c, d) { + var e; + for (e = b; e < c; ++e) { + a[e] = d; + } + } + function Snb(a, b) { + var c; + for (c = 0; c < b; ++c) { + a[c] = false; + } + } + function cjb(a, b, c) { + Pib(); + this.e = a; + this.d = b; + this.a = c; + } + function DBb(a, b, c) { + this.c = a; + this.a = b; + yob(); + this.b = c; + } + function nMd(a, b) { + this.d = a; + dMd.call(this, a); + this.e = b; + } + function Ved(a, b, c) { + Ned(a, b.g, c); + zsb(a.c, b); + return a; + } + function xYb(a) { + vYb(a, (Cmd(), ymd)); + a.d = true; + return a; + } + function Cfe(a) { + !a.j && Ife(a, Dee(a.g, a.b)); + return a.j; + } + function At(a) { + a.a = null; + a.e = null; + akb(a.b); + a.d = 0; + ++a.c; + } + function znb(a) { + yFb(a.b != -1); + Xmb(a.c, a.a = a.b); + a.b = -1; + } + function Qte(a, b) { + Wse.call(this, 1); + this.a = a; + this.b = b; + } + function uUb(a, b) { + return a > 0 ? $wnd.Math.log(a / b) : -100; + } + function Agb(a, b) { + return Ddb(a, b) < 0 ? -1 : Ddb(a, b) > 0 ? 1 : 0; + } + function Dge(a, b) { + hZd(a, ZD(b, 160) ? b : RD(b, 2036).Rl()); + } + function vFb(a, b) { + if (a == null) { + throw Adb(new Ogb(b)); + } + } + function $nb(a, b) { + return jxb(b, a.length), new Gxb(a, b); + } + function hsc(a, b) { + if (!b) { + return false; + } + return ye(a, b); + } + function Gs() { + zs(); + return cD(WC(RG, 1), jwe, 549, 0, [ys]); + } + function Xib(a) { + return a.e == 0 ? a : new cjb(-a.e, a.d, a.a); + } + function $Nb(a, b) { + return Qfb(a.c.c + a.c.b, b.c.c + b.c.b); + } + function cvb(a, b) { + Pub(a.d, b, a.b.b, a.b); + ++a.a; + a.c = null; + } + function JCb(a, b) { + !a.c ? Rmb(a.b, b) : JCb(a.c, b); + return a; + } + function KB(a, b, c) { + var d; + d = JB(a, b); + LB(a, b, c); + return d; + } + function Rnb(a, b, c) { + var d; + for (d = 0; d < b; ++d) { + bD(a, d, c); + } + } + function nhb(a, b, c, d, e) { + while (b < c) { + d[e++] = ihb(a, b++); + } + } + function Qnc(a, b, c, d, e) { + Pnc(a, RD(Qc(b.k, c), 15), c, d, e); + } + function Nnc(a, b) { + FDb(GDb(a.Oc(), new voc()), new xoc(b)); + } + function tXc(a, b) { + return Qfb(a.e.a + a.f.a, b.e.a + b.f.a); + } + function vXc(a, b) { + return Qfb(a.e.b + a.f.b, b.e.b + b.f.b); + } + function GOc(a) { + return $wnd.Math.abs(a.d.e - a.e.e) - a.a; + } + function ane(a) { + return a == oxe ? mLe : a == pxe ? "-INF" : "" + a; + } + function cne(a) { + return a == oxe ? mLe : a == pxe ? "-INF" : "" + a; + } + function MSb(a) { + HSb(); + return vCd(JGd(a)) == vCd(LGd(a)); + } + function kOd(a, b, c) { + return RD(a.c.hd(b, RD(c, 136)), 44); + } + function IFd(a, b) { + oDd(a, new OC(b.f != null ? b.f : "" + b.g)); + } + function KFd(a, b) { + oDd(a, new OC(b.f != null ? b.f : "" + b.g)); + } + function YGd(a, b) { + a.Si() && (b = bHd(a, b)); + return a.Fi(b); + } + function VVd(a, b) { + b = a.Yk(null, b); + return UVd(a, null, b); + } + function Wfe(a, b) { + ++a.j; + Tge(a, a.i, b); + Vfe(a, RD(b, 343)); + } + function UId(a) { + a ? iz(a, (gib(), fib)) : neb((gib(), a)); + } + function Twb(a) { + this.d = (uFb(a), a); + this.a = 0; + this.c = Sve; + } + function TTc(a, b) { + this.d = bUc(a); + this.c = b; + this.a = 0.5 * b; + } + function WTb(a) { + VTb.call(this); + this.a = a; + Rmb(a.a, this); + } + function Zje() { + gub.call(this); + this.a = true; + this.b = true; + } + function WB() { + WB = geb; + UB = new XB(false); + VB = new XB(true); + } + function Pc(a) { + var b; + return b = a.g, !b ? a.g = new th(a) : b; + } + function Uc(a) { + var b; + return b = a.k, !b ? a.k = new Bh(a) : b; + } + function ki(a) { + var b; + return b = a.k, !b ? a.k = new Bh(a) : b; + } + function ej(a) { + var b; + return b = a.i, !b ? a.i = new Ki(a) : b; + } + function bj(a) { + var b; + b = a.f; + return !b ? a.f = new Zj(a) : b; + } + function Fc(a) { + var b; + b = a.j; + return !b ? a.j = new Sw(a) : b; + } + function Co(a) { + var b; + b = a.d; + return !b ? a.d = new mp(a) : b; + } + function ate(a, b, c) { + Vse(); + return new Yte(a, b, c); + } + function yj(a, b) { + Pb(b, a.c.b.c.gc()); + return new Nj(a, b); + } + function sv(a, b) { + var c; + c = a.a.gc(); + Pb(b, c); + return c - 1 - b; + } + function sfb(a, b, c) { + var d; + d = rfb(a, b); + Ffb(c, d); + return d; + } + function rfb(a, b) { + var c; + c = new pfb(); + c.j = a; + c.d = b; + return c; + } + function Qb(a) { + if (a == null) { + throw Adb(new Ngb()); + } + return a; + } + function OC(a) { + if (a == null) { + throw Adb(new Ngb()); + } + this.a = a; + } + function XA(a) { + vA(); + this.b = new bnb(); + this.a = a; + IA(this, a); + } + function Zs(a) { + this.b = a; + this.a = RD(Hvb(this.b.a.e), 227); + } + function tm() { + tm = geb; + _l(); + sm = new Kx((yob(), yob(), vob)); + } + function Px() { + Px = geb; + _l(); + Ox = new Qx((yob(), yob(), xob)); + } + function lTd() { + lTd = geb; + kTd = _ae(); + !!(JTd(), nTd) && bbe(); + } + function LSc(a) { + a.s = NaN; + a.c = NaN; + MSc(a, a.e); + MSc(a, a.j); + } + function AYd(a) { + return (a.i == null && rYd(a), a.i).length; + } + function wq(a, b) { + return RD(gn(a.a).Md().Xb(b), 44).ld(); + } + function Wjb(a, b) { + return bE(b) ? Xjb(a, b) : Wd(qtb(a.f, b)); + } + function QSb(a, b) { + HSb(); + return a == JGd(b) ? LGd(b) : JGd(b); + } + function rWb(a, b, c, d) { + return c == 0 || (c - d) / c < a.e || b >= a.g; + } + function bD(a, b, c) { + pFb(c == null || VC(a, c)); + return a[b] = c; + } + function yhb(a, b) { + BFb(b, a.length + 1); + return a.substr(b); + } + function yxb(a, b) { + uFb(b); + while (a.c < a.d) { + a.Se(b, a.c++); + } + } + function Dub(a) { + this.d = a; + this.c = a.a.d.a; + this.b = a.a.e.g; + } + function Ggd(a) { + this.c = a; + this.a = new Yub(); + this.b = new Yub(); + } + function R4b(a) { + this.c = new pjd(); + this.a = new bnb(); + this.b = a; + } + function fYb(a) { + this.b = new bnb(); + this.a = new bnb(); + this.c = a; + } + function Pdd(a, b, c) { + RD(b.b, 68); + Umb(b.a, new Wdd(a, c, b)); + } + function rdc(a, b) { + Zcc(); + return RD(Vrb(a, b.d), 15).Fc(b); + } + function oDd(a, b) { + var c; + c = a.a.length; + JB(a, c); + LB(a, c, b); + } + function eFb(a, b) { + var c; + c = console[a]; + c.call(console, b); + } + function _Id(a, b) { + var c; + ++a.j; + c = a.Ej(); + a.rj(a.Zi(c, b)); + } + function lMc(a, b, c) { + var d; + d = rMc(a, b, c); + return kMc(a, d); + } + function j2d(a) { + !a.d && (a.d = new XZd(o7, a, 1)); + return a.d; + } + function jVd(a) { + !a.a && (a.a = new XZd(r7, a, 4)); + return a.a; + } + function Jhb(a, b) { + a.a += String.fromCharCode(b); + return a; + } + function Thb(a, b) { + a.a += String.fromCharCode(b); + return a; + } + function D9d(a, b, c) { + this.a = a; + L6d.call(this, b); + this.b = c; + } + function Fde(a, b, c) { + this.a = a; + MKd.call(this, 8, b, null, c); + } + function aue(a, b, c) { + Wse.call(this, a); + this.a = b; + this.b = c; + } + function O8d(a, b, c) { + t7d.call(this, b); + this.a = a; + this.b = c; + } + function ut(a) { + this.c = a; + this.b = this.c.a; + this.a = this.c.e; + } + function Zee(a) { + this.a = (uFb(qKe), qKe); + this.b = a; + new O5d(); + } + function Trb(a) { + Ae(a.a); + a.b = $C(jJ, rve, 1, a.b.length, 5, 1); + } + function Ckb(a) { + yFb(a.c != -1); + a.d.gd(a.c); + a.b = a.c; + a.c = -1; + } + function ejd(a) { + return $wnd.Math.sqrt(a.a * a.a + a.b * a.b); + } + function Jzb(a, b) { + return Tyb(a.c, a.f, b, a.b, a.a, a.e, a.d); + } + function eyb(a, b) { + return lyb(b, a.a.c.length), Vmb(a.a, b); + } + function Hb(a, b) { + return dE(a) === dE(b) || a != null && pb(a, b); + } + function O2d(a) { + return ZD(a, 102) && (RD(a, 19).Bb & QHe) != 0; + } + function Fb(a) { + Hvb(a); + return ZD(a, 484) ? RD(a, 484) : jeb(a); + } + function bve(a) { + if (a) + return a.dc(); + return !a.Kc().Ob(); + } + function kte(a) { + if (!Ase) + return false; + return Yjb(Ase, a); + } + function hDb(a) { + if (0 >= a) { + return new rDb(); + } + return iDb(a - 1); + } + function Y2b(a) { + if (!a.a && !!a.c) { + return a.c.b; + } + return a.a; + } + function Zx(a) { + if (ZD(a, 616)) { + return a; + } + return new sy(a); + } + function LCb(a) { + if (!a.c) { + MCb(a); + a.d = true; + } else { + LCb(a.c); + } + } + function ICb(a) { + if (!a.c) { + a.d = true; + KCb(a); + } else { + a.c.$e(); + } + } + function bHb(a) { + a.b = false; + a.c = false; + a.d = false; + a.a = false; + } + function uMc(a) { + var b, c; + b = a.c.i.c; + c = a.d.i.c; + return b == c; + } + function _vd(a, b) { + var c; + c = a.Ih(b); + c >= 0 ? a.ki(c) : Tvd(a, b); + } + function mtd(a, b) { + a.c < 0 || a.b.b < a.c ? Oub(a.b, b) : a.a.tf(b); + } + function aBd(a, b) { + WGd((!a.a && (a.a = new F4d(a, a)), a.a), b); + } + function DQb(a, b) { + RQb(RD(b.b, 68), a); + Umb(b.a, new IQb(a)); + } + function Woc(a, b) { + return hgb(b.j.c.length, a.j.c.length); + } + function oed(a, b, c) { + hed(); + return c.Lg(a, RD(b.ld(), 149)); + } + function Hvb(a) { + if (a == null) { + throw Adb(new Ngb()); + } + return a; + } + function uFb(a) { + if (a == null) { + throw Adb(new Ngb()); + } + return a; + } + function uKd(a) { + if (a.p != 4) + throw Adb(new cgb()); + return a.e; + } + function tKd(a) { + if (a.p != 3) + throw Adb(new cgb()); + return a.e; + } + function CKd(a) { + if (a.p != 3) + throw Adb(new cgb()); + return a.j; + } + function DKd(a) { + if (a.p != 4) + throw Adb(new cgb()); + return a.j; + } + function wKd(a) { + if (a.p != 6) + throw Adb(new cgb()); + return a.f; + } + function FKd(a) { + if (a.p != 6) + throw Adb(new cgb()); + return a.k; + } + function $9d(a) { + !a.b && (a.b = new pae(new lae())); + return a.b; + } + function yfe(a) { + a.c == -2 && Efe(a, vee(a.g, a.b)); + return a.c; + } + function vfb(a, b) { + var c; + c = rfb("", a); + c.n = b; + c.i = 1; + return c; + } + function kp(a, b, c, d) { + gp.call(this, a, c); + this.a = b; + this.f = d; + } + function ct(a, b, c, d) { + gp.call(this, a, b); + this.d = c; + this.a = d; + } + function zy(a, b) { + _p.call(this, Gob(Qb(a), Qb(b))); + this.a = b; + } + function ufd() { + Oed.call(this); + aFb(this.j.c, 0); + this.a = -1; + } + function $ae() { + FBd.call(this, AKe, (jTd(), iTd)); + Uae(this); + } + function Bne() { + FBd.call(this, dLe, (Ole(), Nle)); + xne(this); + } + function cdd() { + qs.call(this, "DELAUNAY_TRIANGULATION", 0); + } + function Ehb(a) { + return String.fromCharCode.apply(null, a); + } + function Zjb(a, b, c) { + return bE(b) ? $jb(a, b, c) : rtb(a.f, b, c); + } + function Fob(a) { + yob(); + return !a ? (urb(), urb(), trb) : a.Oe(); + } + function Zu(a) { + dk(a, lwe); + return dz(Bdb(Bdb(5, a), a / 10 | 0)); + } + function yx(a, b) { + ux(); + return new wx(new tl(a), new dl(b)); + } + function fn() { + fn = geb; + en = new Nx(cD(WC(UK, 1), Zve, 44, 0, [])); + } + function tqb(a) { + !a.d && (a.d = new xpb(a.c.Cc())); + return a.d; + } + function qqb(a) { + !a.a && (a.a = new Sqb(a.c.vc())); + return a.a; + } + function sqb(a) { + !a.b && (a.b = new Lqb(a.c.ec())); + return a.b; + } + function qgb(a, b) { + while (b-- > 0) { + a = a << 1 | (a < 0 ? 1 : 0); + } + return a; + } + function BGc(a, b) { + var c; + c = new R4b(a); + ZEb(b.c, c); + return c; + } + function FMb(a, b) { + a.u.Hc((Pod(), Lod)) && DMb(a, b); + HMb(a, b); + } + function Fvb(a, b) { + return dE(a) === dE(b) || a != null && pb(a, b); + } + function Vrb(a, b) { + return Bsb(a.a, b) ? a.b[RD(b, 22).g] : null; + } + function YRb() { + VRb(); + return cD(WC($O, 1), jwe, 489, 0, [URb]); + } + function ybd() { + sbd(); + return cD(WC(M1, 1), jwe, 490, 0, [rbd]); + } + function Hbd() { + Cbd(); + return cD(WC(N1, 1), jwe, 558, 0, [Bbd]); + } + function gdd() { + _cd(); + return cD(WC(V1, 1), jwe, 539, 0, [$cd]); + } + function iyd(a) { + !a.n && (a.n = new C5d(I4, a, 1, 7)); + return a.n; + } + function wCd(a) { + !a.c && (a.c = new C5d(K4, a, 9, 9)); + return a.c; + } + function mzd(a) { + !a.c && (a.c = new Yie(E4, a, 5, 8)); + return a.c; + } + function lzd(a) { + !a.b && (a.b = new Yie(E4, a, 4, 7)); + return a.b; + } + function Sed(a) { + a.j.c.length = 0; + Ae(a.c); + sfd(a.a); + return a; + } + function Afe(a) { + a.e == fLe && Gfe(a, Aee(a.g, a.b)); + return a.e; + } + function Bfe(a) { + a.f == fLe && Hfe(a, Bee(a.g, a.b)); + return a.f; + } + function xBd(a, b, c, d) { + wBd(a, b, c, false); + j1d(a, d); + return a; + } + function oNd(a, b) { + this.b = a; + nMd.call(this, a, b); + mNd(this); + } + function wNd(a, b) { + this.b = a; + CMd.call(this, a, b); + uNd(this); + } + function Kmb(a) { + this.d = a; + this.a = this.d.b; + this.b = this.d.c; + } + function oy(a, b) { + this.b = a; + this.c = b; + this.a = new Osb(this.b); + } + function ihb(a, b) { + BFb(b, a.length); + return a.charCodeAt(b); + } + function NDd(a, b) { + CGd(a, Kfb(vDd(b, "x")), Kfb(vDd(b, "y"))); + } + function $Dd(a, b) { + CGd(a, Kfb(vDd(b, "x")), Kfb(vDd(b, "y"))); + } + function CDb(a, b) { + MCb(a); + return new SDb(a, new hEb(b, a.a)); + } + function GDb(a, b) { + MCb(a); + return new SDb(a, new zEb(b, a.a)); + } + function HDb(a, b) { + MCb(a); + return new WCb(a, new nEb(b, a.a)); + } + function IDb(a, b) { + MCb(a); + return new oDb(a, new tEb(b, a.a)); + } + function Ty(a, b) { + return new Ry(RD(Qb(a), 50), RD(Qb(b), 50)); + } + function nHb(a, b) { + return Qfb(a.d.c + a.d.b / 2, b.d.c + b.d.b / 2); + } + function gTb(a, b, c) { + c.a ? Eyd(a, b.b - a.f / 2) : Dyd(a, b.a - a.g / 2); + } + function WYb(a, b) { + return Qfb(a.g.c + a.g.b / 2, b.g.c + b.g.b / 2); + } + function RZb(a, b) { + NZb(); + return Qfb((uFb(a), a), (uFb(b), b)); + } + function wSd(a) { + return a != null && tpb(eSd, a.toLowerCase()); + } + function Ae(a) { + var b; + for (b = a.Kc(); b.Ob(); ) { + b.Pb(); + b.Qb(); + } + } + function Ih(a) { + var b; + b = a.b; + !b && (a.b = b = new Xh(a)); + return b; + } + function R0b(a) { + var b; + b = Z5b(a); + if (b) { + return b; + } + return null; + } + function BSb(a, b) { + var c, d; + c = a / b; + d = eE(c); + c > d && ++d; + return d; + } + function Ck(a, b, c) { + var d; + d = RD(a.d.Kb(c), 159); + !!d && d.Nb(b); + } + function Vhc(a, b, c) { + tqc(a.a, c); + Jpc(c); + Kqc(a.b, c); + bqc(b, c); + } + function oNc(a, b, c, d) { + this.a = a; + this.c = b; + this.b = c; + this.d = d; + } + function ROc(a, b, c, d) { + this.c = a; + this.b = b; + this.a = c; + this.d = d; + } + function uPc(a, b, c, d) { + this.c = a; + this.b = b; + this.d = c; + this.a = d; + } + function Uid(a, b, c, d) { + this.c = a; + this.d = b; + this.b = c; + this.a = d; + } + function GTc(a, b, c, d) { + this.a = a; + this.d = b; + this.c = c; + this.b = d; + } + function t1b(a, b, c, d) { + this.a = a; + this.e = b; + this.d = c; + this.c = d; + } + function $td(a, b, c, d) { + this.a = a; + this.c = b; + this.d = c; + this.b = d; + } + function ehb(a, b, c) { + this.a = ywe; + this.d = a; + this.b = b; + this.c = c; + } + function fpc(a, b, c, d) { + qs.call(this, a, b); + this.a = c; + this.b = d; + } + function Uwb(a, b) { + this.d = (uFb(a), a); + this.a = 16449; + this.c = b; + } + function CIc(a) { + this.a = new bnb(); + this.e = $C(kE, Nve, 53, a, 0, 2); + } + function ELc(a) { + a.Ug("No crossing minimization", 1); + a.Vg(); + } + function Evb() { + yz.call(this, "There is no more element."); + } + function OEd(a, b, c, d) { + this.a = a; + this.b = b; + this.c = c; + this.d = d; + } + function PEd(a, b, c, d) { + this.a = a; + this.b = b; + this.c = c; + this.d = d; + } + function h7d(a, b, c, d) { + this.e = a; + this.a = b; + this.c = c; + this.d = d; + } + function x7d(a, b, c, d) { + this.a = a; + this.c = b; + this.d = c; + this.b = d; + } + function C8d(a, b, c, d) { + s7d(); + M7d.call(this, b, c, d); + this.a = a; + } + function J8d(a, b, c, d) { + s7d(); + M7d.call(this, b, c, d); + this.a = a; + } + function lwd(a, b, c) { + var d, e; + d = oSd(a); + e = b.ti(c, d); + return e; + } + function lBd(a) { + var b, c; + c = (b = new s2d(), b); + l2d(c, a); + return c; + } + function mBd(a) { + var b, c; + c = (b = new s2d(), b); + p2d(c, a); + return c; + } + function HDd(a, b) { + var c; + c = Wjb(a.f, b); + wEd(b, c); + return null; + } + function uCd(a) { + !a.b && (a.b = new C5d(G4, a, 12, 3)); + return a.b; + } + function VD(a) { + CFb(a == null || cE(a) && !(a.Tm === keb)); + return a; + } + function gz(a) { + if (a.n) { + a.e !== rwe && a.je(); + a.j = null; + } + return a; + } + function Ng(a) { + ig(a.d); + if (a.d.d != a.c) { + throw Adb(new Jrb()); + } + } + function Bkb(a) { + sFb(a.b < a.d.gc()); + return a.d.Xb(a.c = a.b++); + } + function Xub(a) { + a.a.a = a.c; + a.c.b = a.a; + a.a.b = a.c.a = null; + a.b = 0; + } + function xPd(a) { + this.f = a; + this.c = this.f.e; + a.f > 0 && wPd(this); + } + function Vg(a, b) { + this.a = a; + Pg.call(this, a, RD(a.d, 15).fd(b)); + } + function lrd(a, b) { + return Qfb(urd(a) * trd(a), urd(b) * trd(b)); + } + function mrd(a, b) { + return Qfb(urd(a) * trd(a), urd(b) * trd(b)); + } + function n5b(a) { + return ozd(a) && Heb(TD(Gxd(a, (yCc(), OAc)))); + } + function Sfc(a, b) { + return Rc(a, RD(mQb(b, (yCc(), tBc)), 17), b); + } + function lic(a, b) { + RD(mQb(a, (Ywc(), qwc)), 15).Fc(b); + return b; + } + function C2b(a, b) { + a.b = b.b; + a.c = b.c; + a.d = b.d; + a.a = b.a; + return a; + } + function cEb(a, b, c, d) { + this.b = a; + this.c = d; + xxb.call(this, b, c); + } + function Ulc(a, b, c) { + a.i = 0; + a.e = 0; + if (b == c) { + return; + } + Qlc(a, b, c); + } + function Vlc(a, b, c) { + a.i = 0; + a.e = 0; + if (b == c) { + return; + } + Rlc(a, b, c); + } + function akc(a, b, c) { + Wjc(); + return _Gb(RD(Wjb(a.e, b), 529), c); + } + function nd(a) { + var b; + return b = a.f, !b ? a.f = new ne(a, a.c) : b; + } + function nTc(a, b) { + return VTc(a.j, b.s, b.c) + VTc(b.e, a.s, a.c); + } + function Rrc(a, b) { + if (!!a.e && !a.e.a) { + Prc(a.e, b); + Rrc(a.e, b); + } + } + function Qrc(a, b) { + if (!!a.d && !a.d.a) { + Prc(a.d, b); + Qrc(a.d, b); + } + } + function krd(a, b) { + return -Qfb(urd(a) * trd(a), urd(b) * trd(b)); + } + function gtd(a) { + return RD(a.ld(), 149).Pg() + ":" + jeb(a.md()); + } + function EBd() { + BBd(this, new yAd()); + this.wb = (lTd(), kTd); + jTd(); + } + function G7b(a) { + this.b = new bnb(); + Tmb(this.b, this.b); + this.a = a; + } + function WWc(a, b) { + new Yub(); + this.a = new Ejd(); + this.b = a; + this.c = b; + } + function urb() { + urb = geb; + rrb = new wrb(); + srb = new wrb(); + trb = new Brb(); + } + function yob() { + yob = geb; + vob = new Job(); + wob = new apb(); + xob = new ipb(); + } + function FGb() { + FGb = geb; + CGb = new AGb(); + EGb = new fHb(); + DGb = new YGb(); + } + function HSb() { + HSb = geb; + GSb = new bnb(); + FSb = new Tsb(); + ESb = new bnb(); + } + function Rb(a, b) { + if (a == null) { + throw Adb(new Ogb(b)); + } + return a; + } + function tCd(a) { + !a.a && (a.a = new C5d(J4, a, 10, 11)); + return a.a; + } + function uYd(a) { + !a.q && (a.q = new C5d(s7, a, 11, 10)); + return a.q; + } + function xYd(a) { + !a.s && (a.s = new C5d(y7, a, 21, 17)); + return a.s; + } + function er(a) { + Qb(a); + return Er(new is(Mr(a.a.Kc(), new ir()))); + } + function hfd(a, b) { + rb(a); + rb(b); + return ns(RD(a, 22), RD(b, 22)); + } + function qDd(a, b, c) { + var d, e; + d = Qeb(c); + e = new hC(d); + sC(a, b, e); + } + function d4d(a, b, c, d, e, f) { + c4d.call(this, a, b, c, d, e, f ? -2 : -1); + } + function sje(a, b, c, d) { + kZd.call(this, b, c); + this.b = a; + this.a = d; + } + function Ry(a, b) { + wi.call(this, new ezb(a)); + this.a = a; + this.b = b; + } + function Gu(a) { + this.b = a; + this.c = a; + a.e = null; + a.c = null; + this.a = 1; + } + function Dkc(a) { + lkc(); + var b; + b = RD(a.g, 10); + b.n.a = a.d.c + b.d.b; + } + function fA() { + fA = geb; + var a, b; + b = !lA(); + a = new tA(); + eA = b ? new mA() : a; + } + function Hob(a) { + yob(); + return ZD(a, 59) ? new irb(a) : new Upb(a); + } + function Ux(a) { + return ZD(a, 16) ? new btb(RD(a, 16)) : Vx(a.Kc()); + } + function Vi(a) { + return new ij(a, a.e.Rd().gc() * a.c.Rd().gc()); + } + function fj(a) { + return new sj(a, a.e.Rd().gc() * a.c.Rd().gc()); + } + function Iz(a) { + return !!a && !!a.hashCode ? a.hashCode() : kFb(a); + } + function Yjb(a, b) { + return b == null ? !!qtb(a.f, null) : Jtb(a.i, b); + } + function hYb(a, b) { + var c; + c = $sb(a.a, b); + c && (b.d = null); + return c; + } + function MGb(a, b, c) { + if (a.f) { + return a.f.ef(b, c); + } + return false; + } + function cFc(a, b, c, d) { + bD(a.c[b.g], c.g, d); + bD(a.c[c.g], b.g, d); + } + function fFc(a, b, c, d) { + bD(a.c[b.g], b.g, c); + bD(a.b[b.g], b.g, d); + } + function sXc(a, b, c) { + return Kfb(UD(c.a)) <= a && Kfb(UD(c.b)) >= b; + } + function yJc(a, b) { + this.g = a; + this.d = cD(WC(jR, 1), WAe, 10, 0, [b]); + } + function lHb(a) { + this.c = a; + this.b = new yAb(RD(Qb(new oHb()), 50)); + } + function UYb(a) { + this.c = a; + this.b = new yAb(RD(Qb(new XYb()), 50)); + } + function $Qb(a) { + this.b = a; + this.a = new yAb(RD(Qb(new bRb()), 50)); + } + function tRc() { + this.b = new _sb(); + this.d = new Yub(); + this.e = new Fyb(); + } + function VTb() { + this.c = new pjd(); + this.d = new pjd(); + this.e = new pjd(); + } + function a1b() { + this.a = new Ejd(); + this.b = (dk(3, iwe), new cnb(3)); + } + function i7d(a, b) { + this.e = a; + this.a = jJ; + this.b = pje(b); + this.c = b; + } + function Vid(a) { + this.c = a.c; + this.d = a.d; + this.b = a.b; + this.a = a.a; + } + function VLd(a, b, c, d, e, f) { + this.a = a; + NKd.call(this, b, c, d, e, f); + } + function aLd(a, b, c, d, e, f) { + this.a = a; + NKd.call(this, b, c, d, e, f); + } + function fge(a, b, c, d, e, f, g) { + return new lle(a.e, b, c, d, e, f, g); + } + function xhb(a, b, c) { + return c >= 0 && lhb(a.substr(c, b.length), b); + } + function hGd(a, b) { + return ZD(b, 149) && lhb(a.b, RD(b, 149).Pg()); + } + function Tde(a, b) { + return a.a ? b.Gh().Kc() : RD(b.Gh(), 71).Ii(); + } + function Qqb(a, b) { + var c; + c = a.b.Qc(b); + Rqb(c, a.b.gc()); + return c; + } + function Ivb(a, b) { + if (a == null) { + throw Adb(new Ogb(b)); + } + return a; + } + function zYd(a) { + if (!a.u) { + yYd(a); + a.u = new w0d(a, a); + } + return a.u; + } + function Kx(a) { + this.a = (yob(), ZD(a, 59) ? new irb(a) : new Upb(a)); + } + function Uwd(a) { + var b; + b = RD(Ywd(a, 16), 29); + return !b ? a.ii() : b; + } + function lz(a, b) { + var c; + c = nfb(a.Rm); + return b == null ? c : c + ": " + b; + } + function zhb(a, b, c) { + AFb(b, c, a.length); + return a.substr(b, c - b); + } + function VKb(a, b) { + RJb.call(this); + KKb(this); + this.a = a; + this.c = b; + } + function neb(a) { + !a ? vve : lz(a, a.ie()); + } + function Wz(a) { + Qz(); + $wnd.setTimeout(function() { + throw a; + }, 0); + } + function GHb() { + DHb(); + return cD(WC(uN, 1), jwe, 436, 0, [CHb, BHb]); + } + function OHb() { + LHb(); + return cD(WC(vN, 1), jwe, 435, 0, [JHb, KHb]); + } + function WUb() { + TUb(); + return cD(WC(BP, 1), jwe, 432, 0, [RUb, SUb]); + } + function S8b() { + P8b(); + return cD(WC(vS, 1), jwe, 517, 0, [O8b, N8b]); + } + function Rvc() { + Ovc(); + return cD(WC(lX, 1), jwe, 429, 0, [Mvc, Nvc]); + } + function buc() { + $tc(); + return cD(WC(cX, 1), jwe, 428, 0, [Ytc, Ztc]); + } + function mtc() { + jtc(); + return cD(WC($W, 1), jwe, 431, 0, [htc, itc]); + } + function vEc() { + sEc(); + return cD(WC(xX, 1), jwe, 430, 0, [qEc, rEc]); + } + function vNc() { + sNc(); + return cD(WC(MY, 1), jwe, 531, 0, [rNc, qNc]); + } + function D2c() { + x2c(); + return cD(WC(s0, 1), jwe, 501, 0, [v2c, w2c]); + } + function zQc() { + wQc(); + return cD(WC(FZ, 1), jwe, 523, 0, [vQc, uQc]); + } + function HQc() { + EQc(); + return cD(WC(GZ, 1), jwe, 522, 0, [CQc, DQc]); + } + function iTc() { + fTc(); + return cD(WC(b$, 1), jwe, 528, 0, [eTc, dTc]); + } + function Fuc() { + Cuc(); + return cD(WC(fX, 1), jwe, 488, 0, [Buc, Auc]); + } + function F8c() { + z8c(); + return cD(WC(l1, 1), jwe, 491, 0, [x8c, y8c]); + } + function H9c() { + B9c(); + return cD(WC(t1, 1), jwe, 492, 0, [z9c, A9c]); + } + function D_c() { + A_c(); + return cD(WC(K_, 1), jwe, 433, 0, [z_c, y_c]); + } + function a4c() { + Y3c(); + return cD(WC(H0, 1), jwe, 434, 0, [W3c, X3c]); + } + function gVc() { + dVc(); + return cD(WC(w$, 1), jwe, 465, 0, [bVc, cVc]); + } + function Pbd() { + Mbd(); + return cD(WC(O1, 1), jwe, 438, 0, [Lbd, Kbd]); + } + function rdd() { + ldd(); + return cD(WC(W1, 1), jwe, 437, 0, [kdd, jdd]); + } + function xqd() { + uqd(); + return cD(WC(M3, 1), jwe, 347, 0, [sqd, tqd]); + } + function Jvd(a, b, c, d) { + return c >= 0 ? a.Uh(b, c, d) : a.Ch(null, c, d); + } + function ltd(a) { + if (a.b.b == 0) { + return a.a.sf(); + } + return Uub(a.b); + } + function vKd(a) { + if (a.p != 5) + throw Adb(new cgb()); + return Ydb(a.f); + } + function EKd(a) { + if (a.p != 5) + throw Adb(new cgb()); + return Ydb(a.k); + } + function P$d(a) { + dE(a.a) === dE((lYd(), kYd)) && Q$d(a); + return a.a; + } + function iad(a, b) { + a.b = b; + a.c > 0 && a.b > 0 && (a.g = Aad(a.c, a.b, a.a)); + } + function jad(a, b) { + a.c = b; + a.c > 0 && a.b > 0 && (a.g = Aad(a.c, a.b, a.a)); + } + function BUc(a, b) { + yUc(this, new rjd(a.a, a.b)); + zUc(this, gv(b)); + } + function Tp() { + Sp.call(this, new Usb(Sv(12))); + Lb(true); + this.a = 2; + } + function eue(a, b, c) { + Vse(); + Wse.call(this, a); + this.b = b; + this.a = c; + } + function C7d(a, b, c) { + s7d(); + t7d.call(this, b); + this.a = a; + this.b = c; + } + function qub(a) { + var b; + b = a.c.d.b; + a.b = b; + a.a = a.c.d; + b.a = a.c.d.b = a; + } + function Tub(a) { + return a.b == 0 ? null : (sFb(a.b != 0), Wub(a, a.a.a)); + } + function Xjb(a, b) { + return b == null ? Wd(qtb(a.f, null)) : Ktb(a.i, b); + } + function bzb(a, b, c, d, e) { + return new Kzb(a, (cAb(), aAb), b, c, d, e); + } + function Fnb(a, b) { + oFb(b); + return Hnb(a, $C(kE, Pwe, 28, b, 15, 1), b); + } + function Tx(a, b) { + Rb(a, "set1"); + Rb(b, "set2"); + return new ey(a, b); + } + function Kz(a, b) { + var c = Jz[a.charCodeAt(0)]; + return c == null ? a : c; + } + function Xyb(a, b) { + var c, d; + c = b; + d = new Gzb(); + Zyb(a, c, d); + return d.d; + } + function EMb(a, b, c, d) { + var e; + e = new TJb(); + b.a[c.g] = e; + Wrb(a.b, d, e); + } + function SXb(a, b) { + var c; + c = BXb(a.f, b); + return $id(fjd(c), a.f.d); + } + function RFb(a) { + var b; + EJb(a.a); + DJb(a.a); + b = new PJb(a.a); + LJb(b); + } + function _Mb(a, b) { + $Mb(a, true); + Umb(a.e.Rf(), new dNb(a, true, b)); + } + function PSb(a, b) { + HSb(); + return a == vCd(JGd(b)) || a == vCd(LGd(b)); + } + function R0c(a, b) { + B0c(); + return RD(mQb(b, (h_c(), f_c)), 17).a == a; + } + function eE(a) { + return Math.max(Math.min(a, lve), -2147483648) | 0; + } + function sy(a) { + this.a = RD(Qb(a), 277); + this.b = (yob(), new jrb(a)); + } + function qbd(a, b, c) { + this.i = new bnb(); + this.b = a; + this.g = b; + this.a = c; + } + function had(a, b, c) { + this.a = new bnb(); + this.e = a; + this.f = b; + this.c = c; + } + function _9c(a, b, c) { + this.c = new bnb(); + this.e = a; + this.f = b; + this.b = c; + } + function TKb(a) { + RJb.call(this); + KKb(this); + this.a = a; + this.c = true; + } + function ieb(a) { + function b() { + } + b.prototype = a || {}; + return new b(); + } + function zfb(a) { + if (a.Ae()) { + return null; + } + var b = a.n; + return eeb[b]; + } + function kzd(a) { + if (a.Db >> 16 != 3) + return null; + return RD(a.Cb, 27); + } + function MCd(a) { + if (a.Db >> 16 != 9) + return null; + return RD(a.Cb, 27); + } + function Fzd(a) { + if (a.Db >> 16 != 6) + return null; + return RD(a.Cb, 74); + } + function dVc() { + dVc = geb; + bVc = new eVc(Nye, 0); + cVc = new eVc(Oye, 1); + } + function wQc() { + wQc = geb; + vQc = new xQc(Oye, 0); + uQc = new xQc(Nye, 1); + } + function EQc() { + EQc = geb; + CQc = new FQc(Zye, 0); + DQc = new FQc("UP", 1); + } + function Is() { + Is = geb; + Hs = ss((zs(), cD(WC(RG, 1), jwe, 549, 0, [ys]))); + } + function Wx(a) { + var b; + b = new atb(Sv(a.length)); + zob(b, a); + return b; + } + function B2b(a, b) { + a.b += b.b; + a.c += b.c; + a.d += b.d; + a.a += b.a; + return a; + } + function qmb(a, b) { + if (kmb(a, b)) { + Jmb(a); + return true; + } + return false; + } + function qC(a, b) { + if (b == null) { + throw Adb(new Ngb()); + } + return rC(a, b); + } + function nB(a, b) { + var c; + c = a.q.getHours(); + a.q.setDate(b); + mB(a, c); + } + function Xvd(a, b, c) { + var d; + d = a.Ih(b); + d >= 0 ? a.bi(d, c) : Svd(a, b, c); + } + function Lvd(a, b) { + var c; + c = a.Ih(b); + return c >= 0 ? a.Wh(c) : Rvd(a, b); + } + function zo(a, b) { + var c; + Qb(b); + for (c = a.a; c; c = c.c) { + b.Yd(c.g, c.i); + } + } + function pMc(a, b, c) { + var d; + d = qMc(a, b, c); + a.b = new _Lc(d.c.length); + } + function HId(a, b, c) { + EId(); + !!a && Zjb(DId, a, b); + !!a && Zjb(CId, a, c); + } + function bfc(a, b) { + Rec(); + return Geb(), RD(b.a, 17).a < a ? true : false; + } + function afc(a, b) { + Rec(); + return Geb(), RD(b.b, 17).a < a ? true : false; + } + function R7b(a, b) { + return $wnd.Math.abs(a) < $wnd.Math.abs(b) ? a : b; + } + function xCd(a) { + return !a.a && (a.a = new C5d(J4, a, 10, 11)), a.a.i > 0; + } + function sId(a) { + var b; + b = a.d; + b = a.bj(a.f); + WGd(a, b); + return b.Ob(); + } + function bHd(a, b) { + var c; + c = new Kub(b); + Ve(c, a); + return new dnb(c); + } + function qKd(a) { + if (a.p != 0) + throw Adb(new cgb()); + return Pdb(a.f, 0); + } + function zKd(a) { + if (a.p != 0) + throw Adb(new cgb()); + return Pdb(a.k, 0); + } + function gBd(a) { + if (a.Db >> 16 != 7) + return null; + return RD(a.Cb, 241); + } + function xXd(a) { + if (a.Db >> 16 != 6) + return null; + return RD(a.Cb, 241); + } + function dCd(a) { + if (a.Db >> 16 != 7) + return null; + return RD(a.Cb, 167); + } + function vCd(a) { + if (a.Db >> 16 != 11) + return null; + return RD(a.Cb, 27); + } + function uWd(a) { + if (a.Db >> 16 != 17) + return null; + return RD(a.Cb, 29); + } + function kVd(a) { + if (a.Db >> 16 != 3) + return null; + return RD(a.Cb, 155); + } + function BDb(a) { + var b; + MCb(a); + b = new _sb(); + return CDb(a, new aEb(b)); + } + function xfb(a, b) { + var c = a.a = a.a || []; + return c[b] || (c[b] = a.ve(b)); + } + function qB(a, b) { + var c; + c = a.q.getHours(); + a.q.setMonth(b); + mB(a, c); + } + function oz(a, b) { + ez(this); + this.f = b; + this.g = a; + gz(this); + this.je(); + } + function TQb(a, b) { + this.a = a; + this.c = ajd(this.a); + this.b = new Vid(b); + } + function aGb(a, b, c) { + this.a = b; + this.c = a; + this.b = (Qb(c), new dnb(c)); + } + function s$b(a, b, c) { + this.a = b; + this.c = a; + this.b = (Qb(c), new dnb(c)); + } + function _Kc(a) { + this.a = a; + this.b = $C(qY, Nve, 2043, a.e.length, 0, 2); + } + function fGb() { + this.a = new Iub(); + this.e = new _sb(); + this.g = 0; + this.i = 0; + } + function EId() { + EId = geb; + DId = new Tsb(); + CId = new Tsb(); + IId(zK, new JId()); + } + function KFc() { + KFc = geb; + JFc = nfd(new ufd(), (sXb(), rXb), (hcc(), $bc)); + } + function RFc() { + RFc = geb; + QFc = nfd(new ufd(), (sXb(), rXb), (hcc(), $bc)); + } + function gGc() { + gGc = geb; + fGc = nfd(new ufd(), (sXb(), rXb), (hcc(), $bc)); + } + function ANc() { + ANc = geb; + zNc = pfd(new ufd(), (sXb(), rXb), (hcc(), ybc)); + } + function dOc() { + dOc = geb; + cOc = pfd(new ufd(), (sXb(), rXb), (hcc(), ybc)); + } + function gQc() { + gQc = geb; + fQc = pfd(new ufd(), (sXb(), rXb), (hcc(), ybc)); + } + function WQc() { + WQc = geb; + VQc = pfd(new ufd(), (sXb(), rXb), (hcc(), ybc)); + } + function dZd(a, b, c, d, e, f) { + return new P3d(a.e, b, a.Lj(), c, d, e, f); + } + function $jb(a, b, c) { + return b == null ? rtb(a.f, null, c) : Ltb(a.i, b, c); + } + function Y0b(a, b) { + !!a.c && Ymb(a.c.g, a); + a.c = b; + !!a.c && Rmb(a.c.g, a); + } + function g3b(a, b) { + !!a.c && Ymb(a.c.a, a); + a.c = b; + !!a.c && Rmb(a.c.a, a); + } + function P3b(a, b) { + !!a.i && Ymb(a.i.j, a); + a.i = b; + !!a.i && Rmb(a.i.j, a); + } + function Z0b(a, b) { + !!a.d && Ymb(a.d.e, a); + a.d = b; + !!a.d && Rmb(a.d.e, a); + } + function _Sc(a, b) { + !!a.a && Ymb(a.a.k, a); + a.a = b; + !!a.a && Rmb(a.a.k, a); + } + function aTc(a, b) { + !!a.b && Ymb(a.b.f, a); + a.b = b; + !!a.b && Rmb(a.b.f, a); + } + function Odd(a, b) { + Pdd(a, a.b, a.c); + RD(a.b.b, 68); + !!b && RD(b.b, 68).b; + } + function j2c(a, b) { + return Qfb(RD(a.c, 65).c.e.b, RD(b.c, 65).c.e.b); + } + function k2c(a, b) { + return Qfb(RD(a.c, 65).c.e.a, RD(b.c, 65).c.e.a); + } + function YXb(a) { + NXb(); + return Geb(), RD(a.a, 86).d.e != 0 ? true : false; + } + function LXd(a, b) { + ZD(a.Cb, 184) && (RD(a.Cb, 184).tb = null); + PAd(a, b); + } + function CWd(a, b) { + ZD(a.Cb, 90) && v$d(yYd(RD(a.Cb, 90)), 4); + PAd(a, b); + } + function _5d(a, b) { + a6d(a, b); + ZD(a.Cb, 90) && v$d(yYd(RD(a.Cb, 90)), 2); + } + function JFd(a, b) { + var c, d; + c = b.c; + d = c != null; + d && oDd(a, new OC(b.c)); + } + function v0d(a) { + var b, c; + c = (jTd(), b = new s2d(), b); + l2d(c, a); + return c; + } + function E4d(a) { + var b, c; + c = (jTd(), b = new s2d(), b); + l2d(c, a); + return c; + } + function Fr(a) { + var b; + while (true) { + b = a.Pb(); + if (!a.Ob()) { + return b; + } + } + } + function nq(a, b, c) { + Rmb(a.a, (fn(), ck(b, c), new gp(b, c))); + return a; + } + function rge(a, b) { + return nke(), wWd(b) ? new ole(b, a) : new Eke(b, a); + } + function ojb(a) { + Pib(); + return Ddb(a, 0) >= 0 ? jjb(a) : Xib(jjb(Odb(a))); + } + function Asb(a) { + var b; + b = RD(UEb(a.b), 9); + return new Fsb(a.a, b, a.c); + } + function Qw(a, b) { + var c; + c = RD(Xv(nd(a.a), b), 16); + return !c ? 0 : c.gc(); + } + function Zmb(a, b, c) { + var d; + xFb(b, c, a.c.length); + d = c - b; + $Eb(a.c, b, d); + } + function Rkb(a, b, c) { + xFb(b, c, a.gc()); + this.c = a; + this.a = b; + this.b = c - b; + } + function fgd(a) { + this.c = new Yub(); + this.b = a.b; + this.d = a.c; + this.a = a.a; + } + function qjd(a) { + this.a = $wnd.Math.cos(a); + this.b = $wnd.Math.sin(a); + } + function bTc(a, b, c, d) { + this.c = a; + this.d = d; + _Sc(this, b); + aTc(this, c); + } + function Si(a, b) { + Qi.call(this, new Usb(Sv(a))); + dk(b, Mve); + this.a = b; + } + function Ryb(a, b, c) { + return new Kzb(a, (cAb(), _zb), null, false, b, c); + } + function czb(a, b, c) { + return new Kzb(a, (cAb(), bAb), b, c, null, false); + } + function ABb() { + xBb(); + return cD(WC(QL, 1), jwe, 108, 0, [uBb, vBb, wBb]); + } + function yLb() { + vLb(); + return cD(WC(TN, 1), jwe, 472, 0, [uLb, tLb, sLb]); + } + function HKb() { + EKb(); + return cD(WC(MN, 1), jwe, 471, 0, [CKb, BKb, DKb]); + } + function aKb() { + ZJb(); + return cD(WC(JN, 1), jwe, 237, 0, [WJb, XJb, YJb]); + } + function DWb() { + AWb(); + return cD(WC(JP, 1), jwe, 391, 0, [yWb, xWb, zWb]); + } + function moc() { + joc(); + return cD(WC(UV, 1), jwe, 372, 0, [ioc, hoc, goc]); + } + function ytc() { + stc(); + return cD(WC(_W, 1), jwe, 322, 0, [qtc, ptc, rtc]); + } + function Htc() { + Etc(); + return cD(WC(aX, 1), jwe, 351, 0, [Btc, Dtc, Ctc]); + } + function kuc() { + huc(); + return cD(WC(dX, 1), jwe, 460, 0, [fuc, euc, guc]); + } + function Avc() { + xvc(); + return cD(WC(jX, 1), jwe, 299, 0, [vvc, wvc, uvc]); + } + function Jvc() { + Gvc(); + return cD(WC(kX, 1), jwe, 311, 0, [Evc, Fvc, Dvc]); + } + function pDc() { + lDc(); + return cD(WC(sX, 1), jwe, 390, 0, [iDc, jDc, kDc]); + } + function EEc() { + BEc(); + return cD(WC(yX, 1), jwe, 463, 0, [AEc, yEc, zEc]); + } + function NEc() { + KEc(); + return cD(WC(zX, 1), jwe, 387, 0, [HEc, IEc, JEc]); + } + function WEc() { + TEc(); + return cD(WC(AX, 1), jwe, 349, 0, [SEc, QEc, REc]); + } + function oFc() { + lFc(); + return cD(WC(CX, 1), jwe, 350, 0, [iFc, jFc, kFc]); + } + function xFc() { + uFc(); + return cD(WC(DX, 1), jwe, 352, 0, [tFc, rFc, sFc]); + } + function GFc() { + DFc(); + return cD(WC(EX, 1), jwe, 388, 0, [BFc, CFc, AFc]); + } + function UKc() { + RKc(); + return cD(WC(nY, 1), jwe, 464, 0, [OKc, PKc, QKc]); + } + function K3b(a) { + return xjd(cD(WC(l3, 1), Nve, 8, 0, [a.i.n, a.n, a.a])); + } + function OZc() { + LZc(); + return cD(WC(F_, 1), jwe, 392, 0, [KZc, JZc, IZc]); + } + function H_c() { + H_c = geb; + G_c = nfd(new ufd(), (YVc(), WVc), (WYc(), MYc)); + } + function A_c() { + A_c = geb; + z_c = new B_c("DFS", 0); + y_c = new B_c("BFS", 1); + } + function TQc(a, b, c) { + var d; + d = new SQc(); + d.b = b; + d.a = c; + ++b.b; + Rmb(a.d, d); + } + function NTb(a, b, c) { + var d; + d = new sjd(c.d); + $id(d, a); + CGd(b, d.a, d.b); + } + function Nwb(a, b) { + Mwb(a, Ydb(Cdb(Tdb(b, 24), Pxe)), Ydb(Cdb(b, Pxe))); + } + function wFb(a, b) { + if (a < 0 || a > b) { + throw Adb(new veb(cye + a + dye + b)); + } + } + function tFb(a, b) { + if (a < 0 || a >= b) { + throw Adb(new veb(cye + a + dye + b)); + } + } + function BFb(a, b) { + if (a < 0 || a >= b) { + throw Adb(new eib(cye + a + dye + b)); + } + } + function Swb(a, b) { + this.b = (uFb(a), a); + this.a = (b & qxe) == 0 ? b | 64 | Ove : b; + } + function ODb(a) { + var b; + MCb(a); + b = (urb(), urb(), srb); + return PDb(a, b); + } + function R9c(a, b, c) { + var d; + d = S9c(a, b, false); + return d.b <= b && d.a <= c; + } + function h9c() { + b9c(); + return cD(WC(o1, 1), jwe, 439, 0, [$8c, a9c, _8c]); + } + function c7c() { + _6c(); + return cD(WC(a1, 1), jwe, 394, 0, [Z6c, $6c, Y6c]); + } + function i6c() { + f6c(); + return cD(WC(V0, 1), jwe, 445, 0, [c6c, d6c, e6c]); + } + function D6c() { + z6c(); + return cD(WC(Z0, 1), jwe, 456, 0, [w6c, y6c, x6c]); + } + function k4c() { + g4c(); + return cD(WC(I0, 1), jwe, 393, 0, [d4c, e4c, f4c]); + } + function x5c() { + t5c(); + return cD(WC(N0, 1), jwe, 300, 0, [r5c, s5c, q5c]); + } + function Ind() { + Fnd(); + return cD(WC(y3, 1), jwe, 346, 0, [Dnd, Cnd, End]); + } + function jbd() { + gbd(); + return cD(WC(I1, 1), jwe, 444, 0, [dbd, ebd, fbd]); + } + function Rmd() { + Omd(); + return cD(WC(t3, 1), jwe, 278, 0, [Lmd, Mmd, Nmd]); + } + function pqd() { + mqd(); + return cD(WC(J3, 1), jwe, 280, 0, [kqd, jqd, lqd]); + } + function bv(a) { + Qb(a); + return ZD(a, 16) ? new dnb(RD(a, 16)) : cv(a.Kc()); + } + function Hz(a, b) { + return !!a && !!a.equals ? a.equals(b) : dE(a) === dE(b); + } + function Cdb(a, b) { + return Edb(tD(Kdb(a) ? Wdb(a) : a, Kdb(b) ? Wdb(b) : b)); + } + function Rdb(a, b) { + return Edb(zD(Kdb(a) ? Wdb(a) : a, Kdb(b) ? Wdb(b) : b)); + } + function $db(a, b) { + return Edb(HD(Kdb(a) ? Wdb(a) : a, Kdb(b) ? Wdb(b) : b)); + } + function xs(a, b) { + var c; + c = (uFb(a), a).g; + lFb(!!c); + uFb(b); + return c(b); + } + function rv(a, b) { + var c, d; + d = tv(a, b); + c = a.a.fd(d); + return new Gv(a, c); + } + function CXd(a) { + if (a.Db >> 16 != 6) + return null; + return RD(yvd(a), 241); + } + function sKd(a) { + if (a.p != 2) + throw Adb(new cgb()); + return Ydb(a.f) & Bwe; + } + function BKd(a) { + if (a.p != 2) + throw Adb(new cgb()); + return Ydb(a.k) & Bwe; + } + function ynb(a) { + sFb(a.a < a.c.c.length); + a.b = a.a++; + return a.c.c[a.b]; + } + function $Gb(a, b) { + a.b = a.b | b.b; + a.c = a.c | b.c; + a.d = a.d | b.d; + a.a = a.a | b.a; + } + function NJb(a, b) { + var c; + c = Kfb(UD(a.a.of((umd(), cmd)))); + OJb(a, b, c); + } + function bjb(a, b) { + cjb.call(this, 1, 2, cD(WC(kE, 1), Pwe, 28, 15, [a, b])); + } + function Yte(a, b, c) { + Wse.call(this, 25); + this.b = a; + this.a = b; + this.c = c; + } + function xte(a) { + Vse(); + Wse.call(this, a); + this.c = false; + this.a = false; + } + function xfe(a) { + a.a == (ree(), qee) && Dfe(a, see(a.g, a.b)); + return a.a; + } + function zfe(a) { + a.d == (ree(), qee) && Ffe(a, wee(a.g, a.b)); + return a.d; + } + function IZb(a, b) { + CZb(); + return a.c == b.c ? Qfb(b.d, a.d) : Qfb(b.c, a.c); + } + function GZb(a, b) { + CZb(); + return a.c == b.c ? Qfb(b.d, a.d) : Qfb(a.c, b.c); + } + function HZb(a, b) { + CZb(); + return a.c == b.c ? Qfb(a.d, b.d) : Qfb(a.c, b.c); + } + function JZb(a, b) { + CZb(); + return a.c == b.c ? Qfb(a.d, b.d) : Qfb(b.c, a.c); + } + function Yrb(a, b) { + return Dsb(a.a, b) ? _Eb(a.b, RD(b, 22).g, null) : null; + } + function Lwb(a) { + return Bdb(Sdb(Hdb(Kwb(a, 32)), 32), Hdb(Kwb(a, 32))); + } + function kUb(a) { + return a.b == null || a.b.length == 0 ? "n_" + a.a : "n_" + a.b; + } + function aXc(a) { + return a.c == null || a.c.length == 0 ? "n_" + a.g : "n_" + a.c; + } + function wYc(a, b) { + var c; + c = a + ""; + while (c.length < b) { + c = "0" + c; + } + return c; + } + function vkc(a, b) { + var c; + c = RD(Wjb(a.g, b), 60); + Umb(b.d, new ulc(a, c)); + } + function J_b(a, b) { + var c, d; + c = l2b(a); + d = l2b(b); + return c < d ? -1 : c > d ? 1 : 0; + } + function Hmc(a, b) { + var c, d; + c = Gmc(b); + d = c; + return RD(Wjb(a.c, d), 17).a; + } + function CMc(a, b, c) { + var d; + d = a.d[b.p]; + a.d[b.p] = a.d[c.p]; + a.d[c.p] = d; + } + function Jqd(a, b, c) { + var d; + if (a.n && !!b && !!c) { + d = new otd(); + Rmb(a.e, d); + } + } + function gYb(a, b) { + Ysb(a.a, b); + if (b.d) { + throw Adb(new yz(jye)); + } + b.d = a; + } + function Had(a, b) { + this.a = new bnb(); + this.d = new bnb(); + this.f = a; + this.c = b; + } + function RWb() { + this.c = new dXb(); + this.a = new I_b(); + this.b = new E0b(); + g0b(); + } + function med() { + hed(); + this.b = new Tsb(); + this.a = new Tsb(); + this.c = new bnb(); + } + function KKd(a, b, c) { + this.d = a; + this.j = b; + this.e = c; + this.o = -1; + this.p = 3; + } + function LKd(a, b, c) { + this.d = a; + this.k = b; + this.f = c; + this.o = -1; + this.p = 5; + } + function S3d(a, b, c, d, e, f) { + R3d.call(this, a, b, c, d, e); + f && (this.o = -2); + } + function U3d(a, b, c, d, e, f) { + T3d.call(this, a, b, c, d, e); + f && (this.o = -2); + } + function W3d(a, b, c, d, e, f) { + V3d.call(this, a, b, c, d, e); + f && (this.o = -2); + } + function Y3d(a, b, c, d, e, f) { + X3d.call(this, a, b, c, d, e); + f && (this.o = -2); + } + function $3d(a, b, c, d, e, f) { + Z3d.call(this, a, b, c, d, e); + f && (this.o = -2); + } + function a4d(a, b, c, d, e, f) { + _3d.call(this, a, b, c, d, e); + f && (this.o = -2); + } + function f4d(a, b, c, d, e, f) { + e4d.call(this, a, b, c, d, e); + f && (this.o = -2); + } + function h4d(a, b, c, d, e, f) { + g4d.call(this, a, b, c, d, e); + f && (this.o = -2); + } + function N7d(a, b, c, d) { + t7d.call(this, c); + this.b = a; + this.c = b; + this.d = d; + } + function mfe(a, b) { + this.f = a; + this.a = (ree(), pee); + this.c = pee; + this.b = b; + } + function Jfe(a, b) { + this.g = a; + this.d = (ree(), qee); + this.a = qee; + this.b = b; + } + function Gme(a, b) { + !a.c && (a.c = new Uge(a, 0)); + Fge(a.c, (nme(), fme), b); + } + function Oge(a, b) { + return Pge(a, b, ZD(b, 102) && (RD(b, 19).Bb & txe) != 0); + } + function lB(a, b) { + return Agb(Hdb(a.q.getTime()), Hdb(b.q.getTime())); + } + function gj(a) { + return fk(a.e.Rd().gc() * a.c.Rd().gc(), 16, new qj(a)); + } + function CYd(a) { + return !!a.u && tYd(a.u.a).i != 0 && !(!!a.n && d$d(a.n)); + } + function p4d(a) { + return !!a.a && o4d(a.a.a).i != 0 && !(!!a.b && o5d(a.b)); + } + function Cxd(a, b) { + if (b == 0) { + return !!a.o && a.o.f != 0; + } + return Kvd(a, b); + } + function Cc(a, b, c) { + var d; + d = RD(a.Zb().xc(b), 16); + return !!d && d.Hc(c); + } + function Gc(a, b, c) { + var d; + d = RD(a.Zb().xc(b), 16); + return !!d && d.Mc(c); + } + function _yb(a, b) { + var c; + c = 1 - b; + a.a[c] = azb(a.a[c], c); + return azb(a, b); + } + function DFb(a, b) { + var c, d; + d = Cdb(a, yxe); + c = Sdb(b, 32); + return Rdb(c, d); + } + function bGb(a, b, c) { + var d; + d = (Qb(a), new dnb(a)); + _Fb(new aGb(d, b, c)); + } + function t$b(a, b, c) { + var d; + d = (Qb(a), new dnb(a)); + r$b(new s$b(d, b, c)); + } + function vBd(a, b, c, d, e, f) { + wBd(a, b, c, f); + EYd(a, d); + FYd(a, e); + return a; + } + function Xhb(a, b, c, d) { + a.a += "" + zhb(b == null ? vve : jeb(b), c, d); + return a; + } + function Jkb(a, b) { + this.a = a; + Dkb.call(this, a); + wFb(b, a.gc()); + this.b = b; + } + function xmb(a) { + this.a = $C(jJ, rve, 1, mgb($wnd.Math.max(8, a)) << 1, 5, 1); + } + function t2b(a) { + return RD(anb(a, $C(jR, WAe, 10, a.c.length, 0, 1)), 199); + } + function s2b(a) { + return RD(anb(a, $C(WQ, VAe, 18, a.c.length, 0, 1)), 483); + } + function Iyb(a) { + return !a.a ? a.c : a.e.length == 0 ? a.a.a : a.a.a + ("" + a.e); + } + function Rib(a) { + while (a.d > 0 && a.a[--a.d] == 0) + ; + a.a[a.d++] == 0 && (a.e = 0); + } + function fvb(a) { + sFb(a.b.b != a.d.a); + a.c = a.b = a.b.b; + --a.a; + return a.c.c; + } + function sRc(a, b, c) { + a.a = b; + a.c = c; + a.b.a.$b(); + Xub(a.d); + aFb(a.e.a.c, 0); + } + function Z5c(a, b) { + var c; + a.e = new R5c(); + c = Q2c(b); + _mb(c, a.c); + $5c(a, c, 0); + } + function zgd(a, b, c, d) { + var e; + e = new Hgd(); + e.a = b; + e.b = c; + e.c = d; + Mub(a.a, e); + } + function Agd(a, b, c, d) { + var e; + e = new Hgd(); + e.a = b; + e.b = c; + e.c = d; + Mub(a.b, e); + } + function Tb(a, b, c) { + if (a < 0 || b < a || b > c) { + throw Adb(new veb(Kb(a, b, c))); + } + } + function Pb(a, b) { + if (a < 0 || a >= b) { + throw Adb(new veb(Ib(a, b))); + } + return a; + } + function qz(b) { + if (!("stack" in b)) { + try { + throw b; + } catch (a) { + } + } + return b; + } + function Zjc(a) { + Wjc(); + if (ZD(a.g, 10)) { + return RD(a.g, 10); + } + return null; + } + function nx(a) { + if (Ih(a).dc()) { + return false; + } + Jh(a, new rx()); + return true; + } + function Xdb(a) { + var b; + if (Kdb(a)) { + b = a; + return b == -0 ? 0 : b; + } + return ED(a); + } + function lkb(a, b) { + if (ZD(b, 44)) { + return Jd(a.a, RD(b, 44)); + } + return false; + } + function gsb(a, b) { + if (ZD(b, 44)) { + return Jd(a.a, RD(b, 44)); + } + return false; + } + function vub(a, b) { + if (ZD(b, 44)) { + return Jd(a.a, RD(b, 44)); + } + return false; + } + function RCb(a) { + var b; + LCb(a); + b = new Prb(); + ixb(a.a, new fDb(b)); + return b; + } + function Vae() { + var a, b, c; + b = (c = (a = new s2d(), a), c); + Rmb(Rae, b); + return b; + } + function mDb(a) { + var b; + LCb(a); + b = new ltb(); + ixb(a.a, new uDb(b)); + return b; + } + function jDb(a, b) { + if (a.a <= a.b) { + b.Dd(a.a++); + return true; + } + return false; + } + function xzb(a) { + yzb.call(this, a, (cAb(), $zb), null, false, null, false); + } + function $Rb() { + $Rb = geb; + ZRb = ss((VRb(), cD(WC($O, 1), jwe, 489, 0, [URb]))); + } + function CHc() { + CHc = geb; + BHc = yx(sgb(1), sgb(4)); + AHc = yx(sgb(1), sgb(2)); + } + function yXc(a, b) { + return new gud(b, njd(ajd(b.e), a, a), (Geb(), true)); + } + function fv(a) { + return new cnb((dk(a, lwe), dz(Bdb(Bdb(5, a), a / 10 | 0)))); + } + function Wi(a) { + return fk(a.e.Rd().gc() * a.c.Rd().gc(), 273, new kj(a)); + } + function u2b(a) { + return RD(anb(a, $C(xR, XAe, 12, a.c.length, 0, 1)), 2042); + } + function COc(a) { + dOc(); + return !W0b(a) && !(!W0b(a) && a.c.i.c == a.d.i.c); + } + function Y_c(a, b) { + R_c(); + return RD(mQb(b, (h_c(), W$c)), 17).a >= a.gc(); + } + function q8b(a, b) { + w8b(b, a); + y8b(a.d); + y8b(RD(mQb(a, (yCc(), cBc)), 214)); + } + function r8b(a, b) { + z8b(b, a); + B8b(a.d); + B8b(RD(mQb(a, (yCc(), cBc)), 214)); + } + function $0b(a, b, c) { + !!a.d && Ymb(a.d.e, a); + a.d = b; + !!a.d && Qmb(a.d.e, c, a); + } + function jPb(a, b, c) { + return c.f.c.length > 0 ? yPb(a.a, b, c) : yPb(a.b, b, c); + } + function Uz(a, b, c) { + var d; + d = Sz(); + try { + return Rz(a, b, c); + } finally { + Vz(d); + } + } + function wDd(a, b) { + var c, d; + c = qC(a, b); + d = null; + !!c && (d = c.pe()); + return d; + } + function yDd(a, b) { + var c, d; + c = qC(a, b); + d = null; + !!c && (d = c.se()); + return d; + } + function xDd(a, b) { + var c, d; + c = JB(a, b); + d = null; + !!c && (d = c.se()); + return d; + } + function zDd(a, b) { + var c, d; + c = qC(a, b); + d = null; + !!c && (d = ADd(c)); + return d; + } + function rEd(a, b, c) { + var d; + d = uDd(c); + Do(a.g, d, b); + Do(a.i, b, c); + return b; + } + function UIc(a, b, c) { + this.d = new fJc(this); + this.e = a; + this.i = b; + this.f = c; + } + function Mk(a, b, c, d) { + this.e = null; + this.c = a; + this.d = b; + this.a = c; + this.b = d; + } + function urc(a, b, c, d) { + nrc(this); + this.c = a; + this.e = b; + this.f = c; + this.b = d; + } + function MKd(a, b, c, d) { + this.d = a; + this.n = b; + this.g = c; + this.o = d; + this.p = -1; + } + function Vc(a, b, c, d) { + return ZD(c, 59) ? new Kg(a, b, c, d) : new yg(a, b, c, d); + } + function gr(a) { + if (ZD(a, 16)) { + return RD(a, 16).dc(); + } + return !a.Kc().Ob(); + } + function Wo(a) { + if (a.e.g != a.b) { + throw Adb(new Jrb()); + } + return !!a.c && a.d > 0; + } + function evb(a) { + sFb(a.b != a.d.c); + a.c = a.b; + a.b = a.b.a; + ++a.a; + return a.c.c; + } + function imb(a, b) { + uFb(b); + bD(a.a, a.c, b); + a.c = a.c + 1 & a.a.length - 1; + mmb(a); + } + function hmb(a, b) { + uFb(b); + a.b = a.b - 1 & a.a.length - 1; + bD(a.a, a.b, b); + mmb(a); + } + function _je(a) { + var b; + b = a.Gh(); + this.a = ZD(b, 71) ? RD(b, 71).Ii() : b.Kc(); + } + function px(a) { + return new Swb(Dob(RD(a.a.md(), 16).gc(), a.a.ld()), 16); + } + function Abd() { + Abd = geb; + zbd = ss((sbd(), cD(WC(M1, 1), jwe, 490, 0, [rbd]))); + } + function Jbd() { + Jbd = geb; + Ibd = ss((Cbd(), cD(WC(N1, 1), jwe, 558, 0, [Bbd]))); + } + function idd() { + idd = geb; + hdd = ss((_cd(), cD(WC(V1, 1), jwe, 539, 0, [$cd]))); + } + function X$b() { + U$b(); + return cD(WC(CQ, 1), jwe, 389, 0, [T$b, R$b, Q$b, S$b]); + } + function hAb() { + cAb(); + return cD(WC(AL, 1), jwe, 304, 0, [$zb, _zb, aAb, bAb]); + } + function LPb() { + IPb(); + return cD(WC(DO, 1), jwe, 332, 0, [FPb, EPb, GPb, HPb]); + } + function LRb() { + IRb(); + return cD(WC(WO, 1), jwe, 406, 0, [FRb, ERb, GRb, HRb]); + } + function pOb() { + mOb(); + return cD(WC(hO, 1), jwe, 417, 0, [lOb, iOb, jOb, kOb]); + } + function uZb() { + nZb(); + return cD(WC(lQ, 1), jwe, 416, 0, [jZb, mZb, kZb, lZb]); + } + function hnc() { + enc(); + return cD(WC(LV, 1), jwe, 421, 0, [anc, bnc, cnc, dnc]); + } + function zec() { + vec(); + return cD(WC(qT, 1), jwe, 371, 0, [uec, sec, tec, rec]); + } + function BDc() { + wDc(); + return cD(WC(tX, 1), jwe, 203, 0, [uDc, vDc, tDc, sDc]); + } + function nEc() { + kEc(); + return cD(WC(wX, 1), jwe, 284, 0, [hEc, gEc, iEc, jEc]); + } + function Unc(a) { + var b; + return a.j == (qpd(), npd) && (b = Vnc(a), Csb(b, Xod)); + } + function qhc(a, b) { + var c; + c = b.a; + Y0b(c, b.c.d); + Z0b(c, b.d.d); + Cjd(c.a, a.n); + } + function _5b(a, b) { + var c; + c = RD(cub(a.b, b), 67); + !c && (c = new Yub()); + return c; + } + function $jc(a) { + Wjc(); + if (ZD(a.g, 154)) { + return RD(a.g, 154); + } + return null; + } + function gRc(a) { + a.a = null; + a.e = null; + aFb(a.b.c, 0); + aFb(a.f.c, 0); + a.c = null; + } + function Ovc() { + Ovc = geb; + Mvc = new Pvc(Kye, 0); + Nvc = new Pvc("TOP_LEFT", 1); + } + function sNc() { + sNc = geb; + rNc = new tNc("UPPER", 0); + qNc = new tNc("LOWER", 1); + } + function nWc(a, b) { + return cjd(new rjd(b.e.a + b.f.a / 2, b.e.b + b.f.b / 2), a); + } + function wqc(a, b) { + return RD(Lvb(JDb(RD(Qc(a.k, b), 15).Oc(), lqc)), 113); + } + function xqc(a, b) { + return RD(Lvb(KDb(RD(Qc(a.k, b), 15).Oc(), lqc)), 113); + } + function cWc() { + YVc(); + return cD(WC(H$, 1), jwe, 405, 0, [UVc, VVc, WVc, XVc]); + } + function v_c() { + s_c(); + return cD(WC(J_, 1), jwe, 353, 0, [r_c, p_c, q_c, o_c]); + } + function n5c() { + j5c(); + return cD(WC(M0, 1), jwe, 354, 0, [i5c, g5c, h5c, f5c]); + } + function Tpd() { + Qpd(); + return cD(WC(H3, 1), jwe, 386, 0, [Opd, Ppd, Npd, Mpd]); + } + function Tnd() { + Pnd(); + return cD(WC(z3, 1), jwe, 291, 0, [Ond, Lnd, Mnd, Nnd]); + } + function _md() { + Ymd(); + return cD(WC(u3, 1), jwe, 223, 0, [Xmd, Vmd, Umd, Wmd]); + } + function Jrd() { + Grd(); + return cD(WC(R3, 1), jwe, 320, 0, [Frd, Crd, Erd, Drd]); + } + function wtd() { + ttd(); + return cD(WC(n4, 1), jwe, 415, 0, [qtd, rtd, ptd, std]); + } + function GId(a) { + EId(); + return Ujb(DId, a) ? RD(Wjb(DId, a), 341).Qg() : null; + } + function Avd(a, b, c) { + return b < 0 ? Rvd(a, c) : RD(c, 69).wk().Bk(a, a.hi(), b); + } + function sEd(a, b, c) { + var d; + d = uDd(c); + Do(a.j, d, b); + Zjb(a.k, b, c); + return b; + } + function qEd(a, b, c) { + var d; + d = uDd(c); + Do(a.d, d, b); + Zjb(a.e, b, c); + return b; + } + function DGd(a) { + var b, c; + b = (bvd(), c = new rzd(), c); + !!a && pzd(b, a); + return b; + } + function WHd(a) { + var b; + b = a.aj(a.i); + a.i > 0 && hib(a.g, 0, b, 0, a.i); + return b; + } + function Led(a, b) { + var c; + for (c = a.j.c.length; c < b; c++) { + Rmb(a.j, a.Ng()); + } + } + function $Ec(a, b, c, d) { + var e; + e = d[b.g][c.g]; + return Kfb(UD(mQb(a.a, e))); + } + function QRd(a, b) { + PRd(); + var c; + c = RD(Wjb(ORd, a), 57); + return !c || c.fk(b); + } + function rKd(a) { + if (a.p != 1) + throw Adb(new cgb()); + return Ydb(a.f) << 24 >> 24; + } + function AKd(a) { + if (a.p != 1) + throw Adb(new cgb()); + return Ydb(a.k) << 24 >> 24; + } + function GKd(a) { + if (a.p != 7) + throw Adb(new cgb()); + return Ydb(a.k) << 16 >> 16; + } + function xKd(a) { + if (a.p != 7) + throw Adb(new cgb()); + return Ydb(a.f) << 16 >> 16; + } + function Wib(a, b) { + if (b.e == 0 || a.e == 0) { + return Oib; + } + return Ljb(), Mjb(a, b); + } + function Nd(a, b) { + return dE(b) === dE(a) ? "(this Map)" : b == null ? vve : jeb(b); + } + function MFb(a, b, c) { + return Jfb(UD(Wd(qtb(a.f, b))), UD(Wd(qtb(a.f, c)))); + } + function wkc(a, b, c) { + var d; + d = RD(Wjb(a.g, c), 60); + Rmb(a.a.c, new Ptd(b, d)); + } + function Slc(a, b, c) { + a.i = 0; + a.e = 0; + if (b == c) { + return; + } + Rlc(a, b, c); + Qlc(a, b, c); + } + function rTc(a, b, c, d, e) { + var f; + f = mTc(e, c, d); + Rmb(b, TSc(e, f)); + vTc(a, e, b); + } + function Jrc(a, b, c, d, e) { + this.i = a; + this.a = b; + this.e = c; + this.j = d; + this.f = e; + } + function iUb(a, b) { + VTb.call(this); + this.a = a; + this.b = b; + Rmb(this.a.b, this); + } + function rTb(a) { + this.b = new Tsb(); + this.c = new Tsb(); + this.d = new Tsb(); + this.a = a; + } + function Dx(a, b) { + var c; + c = new cib(); + a.Gd(c); + c.a += ".."; + b.Hd(c); + return c.a; + } + function Fsd(a, b) { + var c; + c = b; + while (c) { + Zid(a, c.i, c.j); + c = vCd(c); + } + return a; + } + function pEd(a, b, c) { + var d; + d = uDd(c); + Zjb(a.b, d, b); + Zjb(a.c, b, c); + return b; + } + function Kr(a) { + var b; + b = 0; + while (a.Ob()) { + a.Pb(); + b = Bdb(b, 1); + } + return dz(b); + } + function oke(a, b) { + nke(); + var c; + c = RD(a, 69).vk(); + K6d(c, b); + return c.xl(b); + } + function tC(d, a, b) { + if (b) { + var c = b.oe(); + d.a[a] = c(b); + } else { + delete d.a[a]; + } + } + function tB(a, b) { + var c; + c = a.q.getHours(); + a.q.setFullYear(b + Owe); + mB(a, c); + } + function KSd(a, b) { + return RD(b == null ? Wd(qtb(a.f, null)) : Ktb(a.i, b), 288); + } + function hOc(a, b) { + return a == (r3b(), p3b) && b == p3b ? 4 : a == p3b || b == p3b ? 8 : 32; + } + function cge(a, b, c) { + return dge(a, b, c, ZD(b, 102) && (RD(b, 19).Bb & txe) != 0); + } + function jge(a, b, c) { + return kge(a, b, c, ZD(b, 102) && (RD(b, 19).Bb & txe) != 0); + } + function Qge(a, b, c) { + return Rge(a, b, c, ZD(b, 102) && (RD(b, 19).Bb & txe) != 0); + } + function jmb(a) { + if (a.b == a.c) { + return; + } + a.a = $C(jJ, rve, 1, 8, 5, 1); + a.b = 0; + a.c = 0; + } + function Nsb(a) { + sFb(a.a < a.c.a.length); + a.b = a.a; + Lsb(a); + return a.c.b[a.b]; + } + function tYd(a) { + if (!a.n) { + yYd(a); + a.n = new h$d(a, o7, a); + zYd(a); + } + return a.n; + } + function oFb(a) { + if (a < 0) { + throw Adb(new Mgb("Negative array size: " + a)); + } + } + function LB(d, a, b) { + if (b) { + var c = b.oe(); + b = c(b); + } else { + b = void 0; + } + d.a[a] = b; + } + function ygc(a, b) { + sgc(); + var c; + c = a.j.g - b.j.g; + if (c != 0) { + return c; + } + return 0; + } + function l_d(a, b) { + gib(); + return WGd(xYd(a.a), b); + } + function q_d(a, b) { + gib(); + return WGd(xYd(a.a), b); + } + function ajb(a, b) { + Pib(); + cjb.call(this, a, 1, cD(WC(kE, 1), Pwe, 28, 15, [b])); + } + function Kte(a, b) { + Vse(); + Wse.call(this, a); + this.a = b; + this.c = -1; + this.b = -1; + } + function L3d(a, b, c, d) { + KKd.call(this, 1, c, d); + this.c = a; + this.b = b; + } + function M3d(a, b, c, d) { + LKd.call(this, 1, c, d); + this.c = a; + this.b = b; + } + function lle(a, b, c, d, e, f, g) { + NKd.call(this, b, d, e, f, g); + this.c = a; + this.a = c; + } + function j7d(a, b, c) { + this.e = a; + this.a = jJ; + this.b = pje(b); + this.c = b; + this.d = c; + } + function Xo(a) { + this.e = a; + this.c = this.e.a; + this.b = this.e.g; + this.d = this.e.i; + } + function Qtb(a) { + this.d = a; + this.b = this.d.a.entries(); + this.a = this.b.next(); + } + function N9d(a) { + this.c = a; + this.a = RD(WVd(a), 156); + this.b = this.a.jk().wi(); + } + function gub() { + Tsb.call(this); + _tb(this); + this.d.b = this.d; + this.d.a = this.d; + } + function Pub(a, b, c, d) { + var e; + e = new svb(); + e.c = b; + e.b = c; + e.a = d; + d.b = c.a = e; + ++a.b; + } + function USd(a, b) { + var c; + return c = b != null ? Xjb(a, b) : Wd(qtb(a.f, b)), fE(c); + } + function dTd(a, b) { + var c; + return c = b != null ? Xjb(a, b) : Wd(qtb(a.f, b)), fE(c); + } + function zDb(a, b) { + var c; + return b.b.Kb(LDb(a, b.c.Xe(), (c = new OEb(b), c))); + } + function Gnb(a, b) { + var c; + oFb(b); + return c = a.slice(0, b), c.length = b, dD(c, a); + } + function Rqb(a, b) { + var c; + for (c = 0; c < b; ++c) { + bD(a, c, new brb(RD(a[c], 44))); + } + } + function Tib(a, b) { + var c; + for (c = a.d - 1; c >= 0 && a.a[c] === b[c]; c--) + ; + return c < 0; + } + function Xx(a) { + var b; + if (a) { + return new Kub(a); + } + b = new Iub(); + _q(b, a); + return b; + } + function nmc(a, b) { + var c, d; + d = false; + do { + c = qmc(a, b); + d = d | c; + } while (c); + return d; + } + function Vz(a) { + a && aA(($z(), Zz)); + --Nz; + if (a) { + if (Pz != -1) { + Xz(Pz); + Pz = -1; + } + } + } + function Pwb(a) { + Hwb(); + Mwb(this, Ydb(Cdb(Tdb(a, 24), Pxe)), Ydb(Cdb(a, Pxe))); + } + function IHb() { + IHb = geb; + HHb = ss((DHb(), cD(WC(uN, 1), jwe, 436, 0, [CHb, BHb]))); + } + function QHb() { + QHb = geb; + PHb = ss((LHb(), cD(WC(vN, 1), jwe, 435, 0, [JHb, KHb]))); + } + function YUb() { + YUb = geb; + XUb = ss((TUb(), cD(WC(BP, 1), jwe, 432, 0, [RUb, SUb]))); + } + function U8b() { + U8b = geb; + T8b = ss((P8b(), cD(WC(vS, 1), jwe, 517, 0, [O8b, N8b]))); + } + function Tvc() { + Tvc = geb; + Svc = ss((Ovc(), cD(WC(lX, 1), jwe, 429, 0, [Mvc, Nvc]))); + } + function duc() { + duc = geb; + cuc = ss(($tc(), cD(WC(cX, 1), jwe, 428, 0, [Ytc, Ztc]))); + } + function Huc() { + Huc = geb; + Guc = ss((Cuc(), cD(WC(fX, 1), jwe, 488, 0, [Buc, Auc]))); + } + function xEc() { + xEc = geb; + wEc = ss((sEc(), cD(WC(xX, 1), jwe, 430, 0, [qEc, rEc]))); + } + function xNc() { + xNc = geb; + wNc = ss((sNc(), cD(WC(MY, 1), jwe, 531, 0, [rNc, qNc]))); + } + function otc() { + otc = geb; + ntc = ss((jtc(), cD(WC($W, 1), jwe, 431, 0, [htc, itc]))); + } + function F_c() { + F_c = geb; + E_c = ss((A_c(), cD(WC(K_, 1), jwe, 433, 0, [z_c, y_c]))); + } + function F2c() { + F2c = geb; + E2c = ss((x2c(), cD(WC(s0, 1), jwe, 501, 0, [v2c, w2c]))); + } + function BQc() { + BQc = geb; + AQc = ss((wQc(), cD(WC(FZ, 1), jwe, 523, 0, [vQc, uQc]))); + } + function JQc() { + JQc = geb; + IQc = ss((EQc(), cD(WC(GZ, 1), jwe, 522, 0, [CQc, DQc]))); + } + function kTc() { + kTc = geb; + jTc = ss((fTc(), cD(WC(b$, 1), jwe, 528, 0, [eTc, dTc]))); + } + function iVc() { + iVc = geb; + hVc = ss((dVc(), cD(WC(w$, 1), jwe, 465, 0, [bVc, cVc]))); + } + function c4c() { + c4c = geb; + b4c = ss((Y3c(), cD(WC(H0, 1), jwe, 434, 0, [W3c, X3c]))); + } + function H8c() { + H8c = geb; + G8c = ss((z8c(), cD(WC(l1, 1), jwe, 491, 0, [x8c, y8c]))); + } + function J9c() { + J9c = geb; + I9c = ss((B9c(), cD(WC(t1, 1), jwe, 492, 0, [z9c, A9c]))); + } + function Rbd() { + Rbd = geb; + Qbd = ss((Mbd(), cD(WC(O1, 1), jwe, 438, 0, [Lbd, Kbd]))); + } + function tdd() { + tdd = geb; + sdd = ss((ldd(), cD(WC(W1, 1), jwe, 437, 0, [kdd, jdd]))); + } + function Eqd() { + Eqd = geb; + Dqd = ss((uqd(), cD(WC(M3, 1), jwe, 347, 0, [sqd, tqd]))); + } + function Imd() { + Cmd(); + return cD(WC(s3, 1), jwe, 88, 0, [Amd, zmd, ymd, xmd, Bmd]); + } + function xpd() { + qpd(); + return cD(WC(E3, 1), NAe, 64, 0, [opd, Yod, Xod, npd, ppd]); + } + function LSd(a, b, c) { + return RD(b == null ? rtb(a.f, null, c) : Ltb(a.i, b, c), 288); + } + function L6b(a) { + return (a.k == (r3b(), p3b) || a.k == m3b) && nQb(a, (Ywc(), cwc)); + } + function bUb(a) { + return !!a.c && !!a.d ? kUb(a.c) + "->" + kUb(a.d) : "e_" + kFb(a); + } + function xgb(a, b) { + var c, d; + uFb(b); + for (d = a.Kc(); d.Ob(); ) { + c = d.Pb(); + b.Cd(c); + } + } + function jEd(a, b) { + var c; + c = new uC(); + qDd(c, "x", b.a); + qDd(c, "y", b.b); + oDd(a, c); + } + function mEd(a, b) { + var c; + c = new uC(); + qDd(c, "x", b.a); + qDd(c, "y", b.b); + oDd(a, c); + } + function Gsd(a, b) { + var c; + c = b; + while (c) { + Zid(a, -c.i, -c.j); + c = vCd(c); + } + return a; + } + function ZLc(a, b) { + var c, d; + c = b; + d = 0; + while (c > 0) { + d += a.a[c]; + c -= c & -c; + } + return d; + } + function $mb(a, b, c) { + var d; + d = (tFb(b, a.c.length), a.c[b]); + a.c[b] = c; + return d; + } + function uIc(a, b, c) { + a.a.c.length = 0; + yIc(a, b, c); + a.a.c.length == 0 || rIc(a, b); + } + function wo(a) { + a.i = 0; + Mnb(a.b, null); + Mnb(a.c, null); + a.a = null; + a.e = null; + ++a.g; + } + function gBb() { + gBb = geb; + dBb = true; + bBb = false; + cBb = false; + fBb = false; + eBb = false; + } + function oBb(a) { + gBb(); + if (dBb) { + return; + } + this.c = a; + this.e = true; + this.a = new bnb(); + } + function kDb(a, b) { + this.c = 0; + this.b = b; + txb.call(this, a, 17493); + this.a = this.c; + } + function S_b(a) { + P_b(); + A$b(this); + this.a = new Yub(); + Q_b(this, a); + Mub(this.a, a); + } + function m_b() { + Pmb(this); + this.b = new rjd(oxe, oxe); + this.a = new rjd(pxe, pxe); + } + function z8c() { + z8c = geb; + x8c = new B8c(CBe, 0); + y8c = new B8c("TARGET_WIDTH", 1); + } + function yDb(a, b) { + return (MCb(a), QDb(new SDb(a, new hEb(b, a.a)))).Bd(wDb); + } + function vXb() { + sXb(); + return cD(WC(UP, 1), jwe, 367, 0, [nXb, oXb, pXb, qXb, rXb]); + } + function Fnc() { + Bnc(); + return cD(WC(TV, 1), jwe, 375, 0, [xnc, znc, Anc, ync, wnc]); + } + function Vtc() { + Ptc(); + return cD(WC(bX, 1), jwe, 348, 0, [Ltc, Ktc, Ntc, Otc, Mtc]); + } + function PDc() { + JDc(); + return cD(WC(uX, 1), jwe, 323, 0, [IDc, FDc, GDc, EDc, HDc]); + } + function fxc() { + cxc(); + return cD(WC(mX, 1), jwe, 171, 0, [bxc, Zwc, $wc, _wc, axc]); + } + function k3c() { + g3c(); + return cD(WC(x0, 1), jwe, 368, 0, [e3c, b3c, f3c, c3c, d3c]); + } + function vad() { + sad(); + return cD(WC(x1, 1), jwe, 373, 0, [oad, nad, qad, pad, rad]); + } + function $bd() { + Xbd(); + return cD(WC(P1, 1), jwe, 324, 0, [Sbd, Tbd, Wbd, Ubd, Vbd]); + } + function _hd() { + Yhd(); + return cD(WC(d3, 1), jwe, 170, 0, [Whd, Vhd, Thd, Xhd, Uhd]); + } + function sod() { + pod(); + return cD(WC(B3, 1), jwe, 256, 0, [mod, ood, kod, lod, nod]); + } + function Tz(b) { + Qz(); + return function() { + return Uz(b, this, arguments); + }; + } + function W0b(a) { + if (!a.c || !a.d) { + return false; + } + return !!a.c.i && a.c.i == a.d.i; + } + function Nfd(a, b) { + if (ZD(b, 143)) { + return lhb(a.c, RD(b, 143).c); + } + return false; + } + function yYd(a) { + if (!a.t) { + a.t = new w$d(a); + VGd(new Cde(a), 0, a.t); + } + return a.t; + } + function jNd(a) { + this.b = a; + dMd.call(this, a); + this.a = RD(Ywd(this.b.a, 4), 129); + } + function sNd(a) { + this.b = a; + yMd.call(this, a); + this.a = RD(Ywd(this.b.a, 4), 129); + } + function Q3d(a, b, c, d, e) { + OKd.call(this, b, d, e); + this.c = a; + this.b = c; + } + function V3d(a, b, c, d, e) { + KKd.call(this, b, d, e); + this.c = a; + this.a = c; + } + function Z3d(a, b, c, d, e) { + LKd.call(this, b, d, e); + this.c = a; + this.a = c; + } + function g4d(a, b, c, d, e) { + OKd.call(this, b, d, e); + this.c = a; + this.a = c; + } + function ugd(a, b) { + var c; + c = RD(cub(a.d, b), 23); + return c ? c : RD(cub(a.e, b), 23); + } + function Blb(a, b) { + var c, d; + c = b.ld(); + d = a.Fe(c); + return !!d && Fvb(d.e, b.md()); + } + function me(a, b) { + var c; + c = b.ld(); + return new gp(c, a.e.pc(c, RD(b.md(), 16))); + } + function ptb(a, b) { + var c; + c = a.a.get(b); + return c == null ? $C(jJ, rve, 1, 0, 5, 1) : c; + } + function khb(a) { + var b; + b = a.length; + return lhb(sxe.substr(sxe.length - b, b), a); + } + function hs(a) { + if (gs(a)) { + a.c = a.a; + return a.a.Pb(); + } else { + throw Adb(new Dvb()); + } + } + function $ib(a, b) { + if (b == 0 || a.e == 0) { + return a; + } + return b > 0 ? tjb(a, b) : qjb(a, -b); + } + function Zib(a, b) { + if (b == 0 || a.e == 0) { + return a; + } + return b > 0 ? qjb(a, b) : tjb(a, -b); + } + function Deb(a) { + Beb.call(this, a == null ? vve : jeb(a), ZD(a, 82) ? RD(a, 82) : null); + } + function Y5d(a) { + var b; + if (!a.c) { + b = a.r; + ZD(b, 90) && (a.c = RD(b, 29)); + } + return a.c; + } + function s0b(a) { + var b; + b = new a1b(); + kQb(b, a); + pQb(b, (yCc(), RAc), null); + return b; + } + function lec(a) { + var b, c; + b = a.c.i; + c = a.d.i; + return b.k == (r3b(), m3b) && c.k == m3b; + } + function fD(a) { + var b, c, d; + b = a & dxe; + c = a >> 22 & dxe; + d = a < 0 ? exe : 0; + return hD(b, c, d); + } + function Ky(a) { + var b, c, d, e; + for (c = a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + ICb(b); + } + } + function Tc(a, b) { + var c, d; + c = RD(Yv(a.c, b), 16); + if (c) { + d = c.gc(); + c.$b(); + a.d -= d; + } + } + function Fvd(a, b, c) { + var d; + return d = a.Ih(b), d >= 0 ? a.Lh(d, c, true) : Qvd(a, b, c); + } + function AXc(a, b, c) { + return Qfb(cjd(jWc(a), ajd(b.b)), cjd(jWc(a), ajd(c.b))); + } + function BXc(a, b, c) { + return Qfb(cjd(jWc(a), ajd(b.e)), cjd(jWc(a), ajd(c.e))); + } + function Kad(a, b) { + return $wnd.Math.min(bjd(b.a, a.d.d.c), bjd(b.b, a.d.d.c)); + } + function LHd(a, b) { + a._i(a.i + 1); + MHd(a, a.i, a.Zi(a.i, b)); + a.Mi(a.i++, b); + a.Ni(); + } + function OHd(a) { + var b, c; + ++a.j; + b = a.g; + c = a.i; + a.g = null; + a.i = 0; + a.Oi(c, b); + a.Ni(); + } + function yke(a, b, c) { + var d; + d = new zke(a.a); + Ld(d, a.a.a); + rtb(d.f, b, c); + a.a.a = d; + } + function mKb(a, b, c, d) { + var e; + for (e = 0; e < jKb; e++) { + dKb(a.a[e][b.g], c, d[b.g]); + } + } + function lKb(a, b, c, d) { + var e; + for (e = 0; e < iKb; e++) { + eKb(a.a[b.g][e], c, d[b.g]); + } + } + function Qc(a, b) { + var c; + c = RD(a.c.xc(b), 16); + !c && (c = a.ic(b)); + return a.pc(b, c); + } + function vm(a) { + var b; + b = (Qb(a), a ? new dnb(a) : cv(a.Kc())); + Eob(b); + return Pm(b); + } + function dv(a) { + var b, c; + Qb(a); + b = Zu(a.length); + c = new cnb(b); + zob(c, a); + return c; + } + function Hjb(a, b, c, d) { + var e; + e = $C(kE, Pwe, 28, b, 15, 1); + Ijb(e, a, b, c, d); + return e; + } + function Sb(a, b) { + if (a < 0 || a > b) { + throw Adb(new veb(Jb(a, b, "index"))); + } + return a; + } + function Xmb(a, b) { + var c; + c = (tFb(b, a.c.length), a.c[b]); + $Eb(a.c, b, 1); + return c; + } + function jhb(a, b) { + var c, d; + c = (uFb(a), a); + d = (uFb(b), b); + return c == d ? 0 : c < d ? -1 : 1; + } + function Orb(a) { + var b; + b = a.e + a.f; + if (isNaN(b) && Rfb(a.d)) { + return a.d; + } + return b; + } + function zc(a) { + a.e = 3; + a.d = a.Yb(); + if (a.e != 2) { + a.e = 0; + return true; + } + return false; + } + function Gyb(a, b) { + !a.a ? a.a = new dib(a.d) : Zhb(a.a, a.b); + Whb(a.a, b); + return a; + } + function _jb(a, b) { + return bE(b) ? b == null ? stb(a.f, null) : Mtb(a.i, b) : stb(a.f, b); + } + function nEb(a, b) { + pxb.call(this, b.zd(), b.yd() & -6); + uFb(a); + this.a = a; + this.b = b; + } + function tEb(a, b) { + txb.call(this, b.zd(), b.yd() & -6); + uFb(a); + this.a = a; + this.b = b; + } + function zEb(a, b) { + xxb.call(this, b.zd(), b.yd() & -6); + uFb(a); + this.a = a; + this.b = b; + } + function M7d(a, b, c) { + t7d.call(this, c); + this.b = a; + this.c = b; + this.d = (a8d(), $7d); + } + function OKd(a, b, c) { + this.d = a; + this.k = b ? 1 : 0; + this.f = c ? 1 : 0; + this.o = -1; + this.p = 0; + } + function l4b(a) { + this.c = a; + this.a = new Anb(this.c.a); + this.b = new Anb(this.c.b); + } + function gUb() { + this.e = new bnb(); + this.c = new bnb(); + this.d = new bnb(); + this.b = new bnb(); + } + function DIb() { + this.g = new GIb(); + this.b = new GIb(); + this.a = new bnb(); + this.k = new bnb(); + } + function I_b() { + this.a = new J$b(); + this.b = new N$b(); + this.d = new Z_b(); + this.e = new V_b(); + } + function knc(a, b, c) { + this.a = a; + this.c = b; + this.d = c; + Rmb(b.e, this); + Rmb(c.b, this); + } + function sIc(a, b, c) { + var d, e; + d = 0; + for (e = 0; e < b.length; e++) { + d += a.tg(b[e], d, c); + } + } + function nMc(a, b) { + var c; + c = tMc(a, b); + a.b = new _Lc(c.c.length); + return mMc(a, c); + } + function pB(a, b) { + var c; + c = a.q.getHours() + (b / 60 | 0); + a.q.setMinutes(b); + mB(a, c); + } + function _Wc(a) { + var b; + b = a.b; + if (b.b == 0) { + return null; + } + return RD(ju(b, 0), 65).b; + } + function Src(a) { + if (a.a) { + if (a.e) { + return Src(a.e); + } + } else { + return a; + } + return null; + } + function mIc(a, b) { + if (a.p < b.p) { + return 1; + } else if (a.p > b.p) { + return -1; + } + return 0; + } + function hXd(a) { + var b; + if (!a.a) { + b = a.r; + ZD(b, 156) && (a.a = RD(b, 156)); + } + return a.a; + } + function iOd(a, b, c) { + var d; + ++a.e; + --a.f; + d = RD(a.d[b].gd(c), 136); + return d.md(); + } + function fd(a) { + var b, c; + b = a.ld(); + c = RD(a.md(), 16); + return gk(c.Nc(), new jh(b)); + } + function oae(a, b) { + if (Ujb(a.a, b)) { + _jb(a.a, b); + return true; + } else { + return false; + } + } + function Ui(a, b, c) { + Pb(b, a.e.Rd().gc()); + Pb(c, a.c.Rd().gc()); + return a.a[b][c]; + } + function _Uc(a, b, c) { + this.a = a; + this.b = b; + this.c = c; + Rmb(a.t, this); + Rmb(b.i, this); + } + function lg(a, b, c, d) { + this.f = a; + this.e = b; + this.d = c; + this.b = d; + this.c = !d ? null : d.d; + } + function YWc() { + this.b = new Yub(); + this.a = new Yub(); + this.b = new Yub(); + this.a = new Yub(); + } + function ree() { + ree = geb; + var a, b; + pee = (jTd(), b = new k1d(), b); + qee = (a = new mXd(), a); + } + function UCb(a) { + var b; + MCb(a); + b = new $Cb(a, a.a.e, a.a.d | 4); + return new WCb(a, b); + } + function ADb(a) { + var b; + LCb(a); + b = 0; + while (a.a.Bd(new MEb())) { + b = Bdb(b, 1); + } + return b; + } + function zxb(a, b) { + uFb(b); + if (a.c < a.d) { + a.Se(b, a.c++); + return true; + } + return false; + } + function cnb(a) { + Pmb(this); + mFb(a >= 0, "Initial capacity must not be negative"); + } + function rid() { + rid = geb; + qid = new jGd("org.eclipse.elk.labels.labelManager"); + } + function iec() { + iec = geb; + hec = new kGd("separateLayerConnections", (vec(), uec)); + } + function fTc() { + fTc = geb; + eTc = new gTc("REGULAR", 0); + dTc = new gTc("CRITICAL", 1); + } + function Mbd() { + Mbd = geb; + Lbd = new Nbd("FIXED", 0); + Kbd = new Nbd("CENTER_NODE", 1); + } + function jtc() { + jtc = geb; + htc = new ktc("QUADRATIC", 0); + itc = new ktc("SCANLINE", 1); + } + function Atc() { + Atc = geb; + ztc = ss((stc(), cD(WC(_W, 1), jwe, 322, 0, [qtc, ptc, rtc]))); + } + function Jtc() { + Jtc = geb; + Itc = ss((Etc(), cD(WC(aX, 1), jwe, 351, 0, [Btc, Dtc, Ctc]))); + } + function ooc() { + ooc = geb; + noc = ss((joc(), cD(WC(UV, 1), jwe, 372, 0, [ioc, hoc, goc]))); + } + function muc() { + muc = geb; + luc = ss((huc(), cD(WC(dX, 1), jwe, 460, 0, [fuc, euc, guc]))); + } + function Cvc() { + Cvc = geb; + Bvc = ss((xvc(), cD(WC(jX, 1), jwe, 299, 0, [vvc, wvc, uvc]))); + } + function Lvc() { + Lvc = geb; + Kvc = ss((Gvc(), cD(WC(kX, 1), jwe, 311, 0, [Evc, Fvc, Dvc]))); + } + function rDc() { + rDc = geb; + qDc = ss((lDc(), cD(WC(sX, 1), jwe, 390, 0, [iDc, jDc, kDc]))); + } + function PEc() { + PEc = geb; + OEc = ss((KEc(), cD(WC(zX, 1), jwe, 387, 0, [HEc, IEc, JEc]))); + } + function YEc() { + YEc = geb; + XEc = ss((TEc(), cD(WC(AX, 1), jwe, 349, 0, [SEc, QEc, REc]))); + } + function GEc() { + GEc = geb; + FEc = ss((BEc(), cD(WC(yX, 1), jwe, 463, 0, [AEc, yEc, zEc]))); + } + function qFc() { + qFc = geb; + pFc = ss((lFc(), cD(WC(CX, 1), jwe, 350, 0, [iFc, jFc, kFc]))); + } + function zFc() { + zFc = geb; + yFc = ss((uFc(), cD(WC(DX, 1), jwe, 352, 0, [tFc, rFc, sFc]))); + } + function IFc() { + IFc = geb; + HFc = ss((DFc(), cD(WC(EX, 1), jwe, 388, 0, [BFc, CFc, AFc]))); + } + function QZc() { + QZc = geb; + PZc = ss((LZc(), cD(WC(F_, 1), jwe, 392, 0, [KZc, JZc, IZc]))); + } + function m4c() { + m4c = geb; + l4c = ss((g4c(), cD(WC(I0, 1), jwe, 393, 0, [d4c, e4c, f4c]))); + } + function z5c() { + z5c = geb; + y5c = ss((t5c(), cD(WC(N0, 1), jwe, 300, 0, [r5c, s5c, q5c]))); + } + function k6c() { + k6c = geb; + j6c = ss((f6c(), cD(WC(V0, 1), jwe, 445, 0, [c6c, d6c, e6c]))); + } + function F6c() { + F6c = geb; + E6c = ss((z6c(), cD(WC(Z0, 1), jwe, 456, 0, [w6c, y6c, x6c]))); + } + function e7c() { + e7c = geb; + d7c = ss((_6c(), cD(WC(a1, 1), jwe, 394, 0, [Z6c, $6c, Y6c]))); + } + function j9c() { + j9c = geb; + i9c = ss((b9c(), cD(WC(o1, 1), jwe, 439, 0, [$8c, a9c, _8c]))); + } + function WKc() { + WKc = geb; + VKc = ss((RKc(), cD(WC(nY, 1), jwe, 464, 0, [OKc, PKc, QKc]))); + } + function JKb() { + JKb = geb; + IKb = ss((EKb(), cD(WC(MN, 1), jwe, 471, 0, [CKb, BKb, DKb]))); + } + function cKb() { + cKb = geb; + bKb = ss((ZJb(), cD(WC(JN, 1), jwe, 237, 0, [WJb, XJb, YJb]))); + } + function ALb() { + ALb = geb; + zLb = ss((vLb(), cD(WC(TN, 1), jwe, 472, 0, [uLb, tLb, sLb]))); + } + function CBb() { + CBb = geb; + BBb = ss((xBb(), cD(WC(QL, 1), jwe, 108, 0, [uBb, vBb, wBb]))); + } + function FWb() { + FWb = geb; + EWb = ss((AWb(), cD(WC(JP, 1), jwe, 391, 0, [yWb, xWb, zWb]))); + } + function Knd() { + Knd = geb; + Jnd = ss((Fnd(), cD(WC(y3, 1), jwe, 346, 0, [Dnd, Cnd, End]))); + } + function lbd() { + lbd = geb; + kbd = ss((gbd(), cD(WC(I1, 1), jwe, 444, 0, [dbd, ebd, fbd]))); + } + function Tmd() { + Tmd = geb; + Smd = ss((Omd(), cD(WC(t3, 1), jwe, 278, 0, [Lmd, Mmd, Nmd]))); + } + function rqd() { + rqd = geb; + qqd = ss((mqd(), cD(WC(J3, 1), jwe, 280, 0, [kqd, jqd, lqd]))); + } + function Hxd(a, b) { + return !a.o && (a.o = new DVd((pvd(), mvd), X4, a, 0)), QNd(a.o, b); + } + function HMb(a, b) { + var c; + if (a.C) { + c = RD(Vrb(a.b, b), 127).n; + c.d = a.C.d; + c.a = a.C.a; + } + } + function F8b(a) { + var b, c, d, e; + e = a.d; + b = a.a; + c = a.b; + d = a.c; + a.d = c; + a.a = d; + a.b = e; + a.c = b; + } + function cOd(a) { + !a.g && (a.g = new hQd()); + !a.g.b && (a.g.b = new ePd(a)); + return a.g.b; + } + function dOd(a) { + !a.g && (a.g = new hQd()); + !a.g.c && (a.g.c = new IPd(a)); + return a.g.c; + } + function lOd(a) { + !a.g && (a.g = new hQd()); + !a.g.d && (a.g.d = new kPd(a)); + return a.g.d; + } + function YNd(a) { + !a.g && (a.g = new hQd()); + !a.g.a && (a.g.a = new qPd(a)); + return a.g.a; + } + function B9d(a, b, c, d) { + !!c && (d = c.Rh(b, BYd(c.Dh(), a.c.uk()), null, d)); + return d; + } + function C9d(a, b, c, d) { + !!c && (d = c.Th(b, BYd(c.Dh(), a.c.uk()), null, d)); + return d; + } + function Cjb(a, b, c, d) { + var e; + e = $C(kE, Pwe, 28, b + 1, 15, 1); + Djb(e, a, b, c, d); + return e; + } + function $C(a, b, c, d, e, f) { + var g; + g = _C(e, d); + e != 10 && cD(WC(a, f), b, c, e, g); + return g; + } + function $fe(a, b, c) { + var d, e; + e = new Phe(b, a); + for (d = 0; d < c; ++d) { + Dhe(e); + } + return e; + } + function $Gd(a, b, c) { + var d, e; + if (c != null) { + for (d = 0; d < b; ++d) { + e = c[d]; + a.Qi(d, e); + } + } + } + function Yyb(a, b) { + var c; + c = new Gzb(); + c.c = true; + c.d = b.md(); + return Zyb(a, b.ld(), c); + } + function rB(a, b) { + var c; + c = a.q.getHours() + (b / 3600 | 0); + a.q.setSeconds(b); + mB(a, c); + } + function Ct(a, b) { + var c, d; + c = b; + d = Hob(cv(new Nu(a, c))); + Ar(new Nu(a, c)); + return d; + } + function Kdc(a, b) { + b.Ug("Label management", 1); + fE(mQb(a, (rid(), qid))); + b.Vg(); + } + function wge(a, b, c, d) { + vge(a, b, c, kge(a, b, d, ZD(b, 102) && (RD(b, 19).Bb & txe) != 0)); + } + function BQb(a, b, c) { + RD(a.b, 68); + RD(a.b, 68); + RD(a.b, 68); + Umb(a.a, new KQb(c, b, a)); + } + function AFb(a, b, c) { + if (a < 0 || b > c || b < a) { + throw Adb(new eib(_xe + a + bye + b + Qxe + c)); + } + } + function NCb(a) { + if (!a) { + this.c = null; + this.b = new bnb(); + } else { + this.c = a; + this.b = null; + } + } + function Fzb(a, b) { + xlb.call(this, a, b); + this.a = $C(vL, Zve, 447, 2, 0, 1); + this.b = true; + } + function hub(a) { + ckb.call(this, a, 0); + _tb(this); + this.d.b = this.d; + this.d.a = this.d; + } + function wtb(a) { + this.e = a; + this.b = this.e.a.entries(); + this.a = $C(jJ, rve, 1, 0, 5, 1); + } + function _Fc() { + _Fc = geb; + $Fc = nfd(pfd(new ufd(), (sXb(), nXb), (hcc(), Ebc)), rXb, $bc); + } + function xuc() { + tuc(); + return cD(WC(eX, 1), jwe, 283, 0, [ouc, nuc, quc, puc, suc, ruc]); + } + function Ruc() { + Ouc(); + return cD(WC(gX, 1), jwe, 281, 0, [Luc, Kuc, Nuc, Juc, Muc, Iuc]); + } + function bvc() { + $uc(); + return cD(WC(hX, 1), jwe, 282, 0, [Yuc, Vuc, Zuc, Xuc, Wuc, Uuc]); + } + function etc() { + btc(); + return cD(WC(ZW, 1), jwe, 232, 0, [Zsc, _sc, Ysc, $sc, atc, Xsc]); + } + function u3b() { + r3b(); + return cD(WC(hR, 1), jwe, 273, 0, [p3b, o3b, m3b, q3b, n3b, l3b]); + } + function Uod() { + Pod(); + return cD(WC(D3, 1), jwe, 279, 0, [Nod, Lod, Mod, Kod, Jod, Ood]); + } + function God() { + Bod(); + return cD(WC(C3, 1), jwe, 101, 0, [Aod, zod, yod, vod, xod, wod]); + } + function lnd() { + ind(); + return cD(WC(v3, 1), jwe, 321, 0, [gnd, end, hnd, cnd, fnd, dnd]); + } + function Ujd() { + Rjd(); + return cD(WC(n3, 1), jwe, 255, 0, [Ljd, Ojd, Pjd, Qjd, Mjd, Njd]); + } + function xkd() { + ukd(); + return cD(WC(q3, 1), jwe, 298, 0, [tkd, skd, rkd, pkd, okd, qkd]); + } + function K3d(a) { + var b; + if (!a.a && a.b != -1) { + b = a.c.Dh(); + a.a = vYd(b, a.b); + } + return a.a; + } + function WGd(a, b) { + if (a.Si() && a.Hc(b)) { + return false; + } else { + a.Hi(b); + return true; + } + } + function RKb(a, b) { + Ivb(b, "Horizontal alignment cannot be null"); + a.b = b; + return a; + } + function ite(a, b, c) { + Vse(); + var d; + d = hte(a, b); + c && !!d && kte(a) && (d = null); + return d; + } + function ZKc(a, b, c) { + var d; + d = a.b[c.c.p][c.p]; + d.b += b.b; + d.c += b.c; + d.a += b.a; + ++d.a; + } + function Umc(a, b, c) { + var d; + a.d[b.g] = c; + d = a.g.c; + d[b.g] = $wnd.Math.max(d[b.g], c + 1); + } + function bjd(a, b) { + var c, d; + c = a.a - b.a; + d = a.b - b.b; + return $wnd.Math.sqrt(c * c + d * d); + } + function v$b(a, b) { + var c, d; + for (d = b.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 36); + u$b(a, c, 0, 0); + } + } + function x$b(a, b, c) { + var d, e; + for (e = a.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 36); + w$b(d, b, c); + } + } + function G0c(a) { + var b, c; + for (c = Sub(a.a, 0); c.b != c.d.c; ) { + b = RD(evb(c), 65); + H0c(b); + } + } + function nnc(a, b) { + bub(a.e, b) || dub(a.e, b, new tnc(b)); + return RD(cub(a.e, b), 113); + } + function tBb(a, b, c, d) { + uFb(a); + uFb(b); + uFb(c); + uFb(d); + return new DBb(a, b, new NAb()); + } + function DVd(a, b, c, d) { + this.ak(); + this.a = b; + this.b = a; + this.c = new wje(this, b, c, d); + } + function O3d(a, b, c, d, e, f) { + MKd.call(this, b, d, e, f); + this.c = a; + this.b = c; + } + function c4d(a, b, c, d, e, f) { + MKd.call(this, b, d, e, f); + this.c = a; + this.a = c; + } + function Q9c(a, b) { + var c, d, e; + e = a.r; + d = a.d; + c = S9c(a, b, true); + return c.b != e || c.a != d; + } + function Vee(a, b, c) { + var d, e; + e = (d = N5d(a.b, b), d); + return !e ? null : tfe(Pee(a, e), c); + } + function _Dd(a, b, c) { + var d, e, f; + d = qC(a, c); + e = null; + !!d && (e = ADd(d)); + f = e; + tEd(b, c, f); + } + function aEd(a, b, c) { + var d, e, f; + d = qC(a, c); + e = null; + !!d && (e = ADd(d)); + f = e; + tEd(b, c, f); + } + function Evd(a, b) { + var c; + return c = a.Ih(b), c >= 0 ? a.Lh(c, true, true) : Qvd(a, b, true); + } + function gMc(a, b, c) { + var d; + d = qMc(a, b, c); + a.b = new _Lc(d.c.length); + return iMc(a, d); + } + function Pue(a) { + if (a.b <= 0) + throw Adb(new Dvb()); + --a.b; + a.a -= a.c.c; + return sgb(a.a); + } + function PGd(a) { + var b; + if (!a.a) { + throw Adb(new Evb()); + } + b = a.a; + a.a = vCd(a.a); + return b; + } + function WDb(a) { + while (!a.a) { + if (!yEb(a.c, new $Db(a))) { + return false; + } + } + return true; + } + function Nr(a) { + var b; + Qb(a); + if (ZD(a, 204)) { + b = RD(a, 204); + return b; + } + return new Or(a); + } + function Cfd(a) { + Afd(); + RD(a.of((umd(), Lld)), 181).Fc((Pod(), Mod)); + a.qf(Kld, null); + } + function Afd() { + Afd = geb; + xfd = new Gfd(); + zfd = new Ifd(); + yfd = yn((umd(), Kld), xfd, pld, zfd); + } + function Y3c() { + Y3c = geb; + W3c = new $3c("LEAF_NUMBER", 0); + X3c = new $3c("NODE_SIZE", 1); + } + function YLc(a) { + a.a = $C(kE, Pwe, 28, a.b + 1, 15, 1); + a.c = $C(kE, Pwe, 28, a.b, 15, 1); + a.d = 0; + } + function OZb(a, b) { + if (a.a.Ne(b.d, a.b) > 0) { + Rmb(a.c, new fZb(b.c, b.d, a.d)); + a.b = b.d; + } + } + function NHd(a, b) { + if (a.g == null || b >= a.i) + throw Adb(new yNd(b, a.i)); + return a.g[b]; + } + function P_d(a, b, c) { + gHd(a, c); + if (c != null && !a.fk(c)) { + throw Adb(new yeb()); + } + return c; + } + function dD(a, b) { + XC(b) != 10 && cD(rb(b), b.Sm, b.__elementTypeId$, XC(b), a); + return a; + } + function Wnb(a, b, c, d) { + var e; + d = (urb(), !d ? rrb : d); + e = a.slice(b, c); + Xnb(e, a, b, c, -b, d); + } + function zvd(a, b, c, d, e) { + return b < 0 ? Qvd(a, c, d) : RD(c, 69).wk().yk(a, a.hi(), b, d, e); + } + function J9b(a, b) { + return Qfb(Kfb(UD(mQb(a, (Ywc(), Jwc)))), Kfb(UD(mQb(b, Jwc)))); + } + function qAb() { + qAb = geb; + pAb = ss((cAb(), cD(WC(AL, 1), jwe, 304, 0, [$zb, _zb, aAb, bAb]))); + } + function cAb() { + cAb = geb; + $zb = new dAb("All", 0); + _zb = new iAb(); + aAb = new kAb(); + bAb = new nAb(); + } + function EKb() { + EKb = geb; + CKb = new FKb(Nye, 0); + BKb = new FKb(Kye, 1); + DKb = new FKb(Oye, 2); + } + function Zme() { + Zme = geb; + qAd(); + Wme = oxe; + Vme = pxe; + Yme = new Tfb(oxe); + Xme = new Tfb(pxe); + } + function rOb() { + rOb = geb; + qOb = ss((mOb(), cD(WC(hO, 1), jwe, 417, 0, [lOb, iOb, jOb, kOb]))); + } + function NRb() { + NRb = geb; + MRb = ss((IRb(), cD(WC(WO, 1), jwe, 406, 0, [FRb, ERb, GRb, HRb]))); + } + function NPb() { + NPb = geb; + MPb = ss((IPb(), cD(WC(DO, 1), jwe, 332, 0, [FPb, EPb, GPb, HPb]))); + } + function Z$b() { + Z$b = geb; + Y$b = ss((U$b(), cD(WC(CQ, 1), jwe, 389, 0, [T$b, R$b, Q$b, S$b]))); + } + function wZb() { + wZb = geb; + vZb = ss((nZb(), cD(WC(lQ, 1), jwe, 416, 0, [jZb, mZb, kZb, lZb]))); + } + function jnc() { + jnc = geb; + inc = ss((enc(), cD(WC(LV, 1), jwe, 421, 0, [anc, bnc, cnc, dnc]))); + } + function Bec() { + Bec = geb; + Aec = ss((vec(), cD(WC(qT, 1), jwe, 371, 0, [uec, sec, tec, rec]))); + } + function DDc() { + DDc = geb; + CDc = ss((wDc(), cD(WC(tX, 1), jwe, 203, 0, [uDc, vDc, tDc, sDc]))); + } + function pEc() { + pEc = geb; + oEc = ss((kEc(), cD(WC(wX, 1), jwe, 284, 0, [hEc, gEc, iEc, jEc]))); + } + function Cuc() { + Cuc = geb; + Buc = new Duc(LAe, 0); + Auc = new Duc("IMPROVE_STRAIGHTNESS", 1); + } + function _i(a, b) { + var c, d; + d = b / a.c.Rd().gc() | 0; + c = b % a.c.Rd().gc(); + return Ui(a, d, c); + } + function iZd(a) { + var b; + if (a.nl()) { + for (b = a.i - 1; b >= 0; --b) { + QHd(a, b); + } + } + return WHd(a); + } + function Nyb(a) { + var b, c; + if (!a.b) { + return null; + } + c = a.b; + while (b = c.a[0]) { + c = b; + } + return c; + } + function Oyb(a) { + var b, c; + if (!a.b) { + return null; + } + c = a.b; + while (b = c.a[1]) { + c = b; + } + return c; + } + function Hae(a) { + if (ZD(a, 180)) { + return "" + RD(a, 180).a; + } + return a == null ? null : jeb(a); + } + function Iae(a) { + if (ZD(a, 180)) { + return "" + RD(a, 180).a; + } + return a == null ? null : jeb(a); + } + function eGb(a, b) { + if (b.a) { + throw Adb(new yz(jye)); + } + Ysb(a.a, b); + b.a = a; + !a.j && (a.j = b); + } + function hEb(a, b) { + xxb.call(this, b.zd(), b.yd() & -16449); + uFb(a); + this.a = a; + this.c = b; + } + function zXc(a, b) { + return new gud(b, Zid(ajd(b.e), b.f.a + a, b.f.b + a), (Geb(), false)); + } + function EMc(a, b) { + dMc(); + return Rmb(a, new Ptd(b, sgb(b.e.c.length + b.g.c.length))); + } + function GMc(a, b) { + dMc(); + return Rmb(a, new Ptd(b, sgb(b.e.c.length + b.g.c.length))); + } + function p5c() { + p5c = geb; + o5c = ss((j5c(), cD(WC(M0, 1), jwe, 354, 0, [i5c, g5c, h5c, f5c]))); + } + function x_c() { + x_c = geb; + w_c = ss((s_c(), cD(WC(J_, 1), jwe, 353, 0, [r_c, p_c, q_c, o_c]))); + } + function eWc() { + eWc = geb; + dWc = ss((YVc(), cD(WC(H$, 1), jwe, 405, 0, [UVc, VVc, WVc, XVc]))); + } + function bnd() { + bnd = geb; + and = ss((Ymd(), cD(WC(u3, 1), jwe, 223, 0, [Xmd, Vmd, Umd, Wmd]))); + } + function Vnd() { + Vnd = geb; + Und = ss((Pnd(), cD(WC(z3, 1), jwe, 291, 0, [Ond, Lnd, Mnd, Nnd]))); + } + function Vpd() { + Vpd = geb; + Upd = ss((Qpd(), cD(WC(H3, 1), jwe, 386, 0, [Opd, Ppd, Npd, Mpd]))); + } + function Lrd() { + Lrd = geb; + Krd = ss((Grd(), cD(WC(R3, 1), jwe, 320, 0, [Frd, Crd, Erd, Drd]))); + } + function ytd() { + ytd = geb; + xtd = ss((ttd(), cD(WC(n4, 1), jwe, 415, 0, [qtd, rtd, ptd, std]))); + } + function b9c() { + b9c = geb; + $8c = new d9c(iFe, 0); + a9c = new d9c(mEe, 1); + _8c = new d9c(LAe, 2); + } + function sBb(a, b, c, d, e) { + uFb(a); + uFb(b); + uFb(c); + uFb(d); + uFb(e); + return new DBb(a, b, d); + } + function fub(a, b) { + var c; + c = RD(_jb(a.e, b), 400); + if (c) { + rub(c); + return c.e; + } + return null; + } + function Ymb(a, b) { + var c; + c = Wmb(a, b, 0); + if (c == -1) { + return false; + } + Xmb(a, c); + return true; + } + function LDb(a, b, c) { + var d; + LCb(a); + d = new IEb(); + d.a = b; + a.a.Nb(new QEb(d, c)); + return d.a; + } + function VCb(a) { + var b; + LCb(a); + b = $C(iE, vxe, 28, 0, 15, 1); + ixb(a.a, new dDb(b)); + return b; + } + function yc(a) { + var b; + if (!xc(a)) { + throw Adb(new Dvb()); + } + a.e = 1; + b = a.d; + a.d = null; + return b; + } + function Odb(a) { + var b; + if (Kdb(a)) { + b = 0 - a; + if (!isNaN(b)) { + return b; + } + } + return Edb(xD(a)); + } + function Wmb(a, b, c) { + for (; c < a.c.length; ++c) { + if (Fvb(b, a.c[c])) { + return c; + } + } + return -1; + } + function Gmc(a) { + var b, c; + c = RD(Vmb(a.j, 0), 12); + b = RD(mQb(c, (Ywc(), Awc)), 12); + return b; + } + function Nu(a, b) { + var c; + this.f = a; + this.b = b; + c = RD(Wjb(a.b, b), 260); + this.c = !c ? null : c.b; + } + function Ckc() { + lkc(); + this.b = new Tsb(); + this.f = new Tsb(); + this.g = new Tsb(); + this.e = new Tsb(); + } + function RSd(a) { + ez(this); + this.g = !a ? null : lz(a, a.ie()); + this.f = a; + gz(this); + this.je(); + } + function pKd(a) { + var b; + b = a.jj(); + b != null && a.d != -1 && RD(b, 94).xh(a); + !!a.i && a.i.oj(); + } + function asc(a) { + var b; + for (b = a.p + 1; b < a.c.a.c.length; ++b) { + --RD(Vmb(a.c.a, b), 10).p; + } + } + function ukb(a) { + yFb(!!a.c); + rFb(a.f.g, a.d); + a.c.Qb(); + a.c = null; + a.b = skb(a); + a.d = a.f.g; + } + function o4d(a) { + if (!a.b) { + a.b = new s5d(a, o7, a); + !a.a && (a.a = new F4d(a, a)); + } + return a.b; + } + function Pee(a, b) { + var c, d; + c = RD(b, 690); + d = c.xi(); + !d && c.Ai(d = new wfe(a, b)); + return d; + } + function Qee(a, b) { + var c, d; + c = RD(b, 692); + d = c.$k(); + !d && c.cl(d = new Jfe(a, b)); + return d; + } + function _jc(a, b) { + Wjc(); + var c, d; + c = $jc(a); + d = $jc(b); + return !!c && !!d && !Aob(c.k, d.k); + } + function WFb(a, b) { + return Fvb(b, Vmb(a.f, 0)) || Fvb(b, Vmb(a.f, 1)) || Fvb(b, Vmb(a.f, 2)); + } + function Med(a, b) { + if (b < 0) { + throw Adb(new veb(zGe + b)); + } + Led(a, b + 1); + return Vmb(a.j, b); + } + function Ob(a, b, c, d) { + if (!a) { + throw Adb(new agb(hc(b, cD(WC(jJ, 1), rve, 1, 5, [c, d])))); + } + } + function P3d(a, b, c, d, e, f, g) { + NKd.call(this, b, d, e, f, g); + this.c = a; + this.b = c; + } + function UA(a, b, c) { + var d, e; + d = 10; + for (e = 0; e < c - 1; e++) { + b < d && (a.a += "0", a); + d *= 10; + } + a.a += b; + } + function Ahb(a) { + var b, c; + c = a.length; + b = $C(hE, zwe, 28, c, 15, 1); + nhb(a, 0, c, b, 0); + return b; + } + function $eb(a) { + Zeb(); + var b, c; + b = a + 128; + c = Yeb[b]; + !c && (c = Yeb[b] = new Seb(a)); + return c; + } + function Cub(a) { + rFb(a.d.a.e.g, a.b); + sFb(a.c != a.d.a.d); + a.a = a.c; + a.c = a.c.a; + return a.a; + } + function mDc(a) { + switch (a.g) { + case 0: + return lve; + case 1: + return -1; + default: + return 0; + } + } + function ED(a) { + if (uD(a, (MD(), LD)) < 0) { + return -qD(xD(a)); + } + return a.l + a.m * gxe + a.h * hxe; + } + function etd(a) { + (!this.q ? (yob(), yob(), wob) : this.q).Ac(!a.q ? (yob(), yob(), wob) : a.q); + } + function Eud(a, b) { + Cod(RD(RD(a.f, 27).of((umd(), Hld)), 101)) && lQd(wCd(RD(a.f, 27)), b); + } + function Gvd(a, b) { + var c; + c = BYd(a.d, b); + return c >= 0 ? Dvd(a, c, true, true) : Qvd(a, b, true); + } + function Vwd(a) { + var b; + b = SD(Ywd(a, 32)); + if (b == null) { + Wwd(a); + b = SD(Ywd(a, 32)); + } + return b; + } + function Yvd(a) { + var b; + if (!a.Oh()) { + b = AYd(a.Dh()) - a.ji(); + a.$h().Mk(b); + } + return a.zh(); + } + function zQb(a, b) { + yQb = new kRb(); + wQb = b; + xQb = a; + RD(xQb.b, 68); + BQb(xQb, yQb, null); + AQb(xQb); + } + function AWb() { + AWb = geb; + yWb = new BWb("XY", 0); + xWb = new BWb("X", 1); + zWb = new BWb("Y", 2); + } + function vLb() { + vLb = geb; + uLb = new wLb("TOP", 0); + tLb = new wLb(Kye, 1); + sLb = new wLb(Qye, 2); + } + function Gvc() { + Gvc = geb; + Evc = new Hvc(LAe, 0); + Fvc = new Hvc("TOP", 1); + Dvc = new Hvc(Qye, 2); + } + function sEc() { + sEc = geb; + qEc = new tEc("INPUT_ORDER", 0); + rEc = new tEc("PORT_DEGREE", 1); + } + function MD() { + MD = geb; + ID = hD(dxe, dxe, 524287); + JD = hD(0, 0, fxe); + KD = fD(1); + fD(2); + LD = fD(0); + } + function wWd(a) { + var b; + if (a.d != a.r) { + b = WVd(a); + a.e = !!b && b.lk() == aKe; + a.d = b; + } + return a.e; + } + function UHd(a, b, c) { + var d; + d = a.g[b]; + MHd(a, b, a.Zi(b, c)); + a.Ri(b, c, d); + a.Ni(); + return d; + } + function dHd(a, b) { + var c; + c = a.dd(b); + if (c >= 0) { + a.gd(c); + return true; + } else { + return false; + } + } + function xr(a, b) { + var c; + Qb(a); + Qb(b); + c = false; + while (b.Ob()) { + c = c | a.Fc(b.Pb()); + } + return c; + } + function cub(a, b) { + var c; + c = RD(Wjb(a.e, b), 400); + if (c) { + eub(a, c); + return c.e; + } + return null; + } + function iB(a) { + var b, c; + b = a / 60 | 0; + c = a % 60; + if (c == 0) { + return "" + b; + } + return "" + b + ":" + ("" + c); + } + function JB(d, a) { + var b = d.a[a]; + var c = (HC(), GC)[typeof b]; + return c ? c(b) : NC(typeof b); + } + function EDb(a, b) { + var c, d; + MCb(a); + d = new zEb(b, a.a); + c = new YDb(d); + return new SDb(a, c); + } + function mwb(a) { + var b; + b = a.b.c.length == 0 ? null : Vmb(a.b, 0); + b != null && owb(a, 0); + return b; + } + function ukc(a, b) { + var c, d, e; + e = b.c.i; + c = RD(Wjb(a.f, e), 60); + d = c.d.c - c.e.c; + Bjd(b.a, d, 0); + } + function XLc(a, b) { + var c; + ++a.d; + ++a.c[b]; + c = b + 1; + while (c < a.a.length) { + ++a.a[c]; + c += c & -c; + } + } + function Ute(a, b, c, d) { + Vse(); + Wse.call(this, 26); + this.c = a; + this.a = b; + this.d = c; + this.b = d; + } + function KA(a, b) { + while (b[0] < a.length && qhb(" \r\n", Fhb(ihb(a, b[0]))) >= 0) { + ++b[0]; + } + } + function eEd(a, b) { + Dyd(a, b == null || Rfb((uFb(b), b)) || isNaN((uFb(b), b)) ? 0 : (uFb(b), b)); + } + function fEd(a, b) { + Eyd(a, b == null || Rfb((uFb(b), b)) || isNaN((uFb(b), b)) ? 0 : (uFb(b), b)); + } + function gEd(a, b) { + Cyd(a, b == null || Rfb((uFb(b), b)) || isNaN((uFb(b), b)) ? 0 : (uFb(b), b)); + } + function hEd(a, b) { + Ayd(a, b == null || Rfb((uFb(b), b)) || isNaN((uFb(b), b)) ? 0 : (uFb(b), b)); + } + function oWc(a, b, c) { + return cjd(new rjd(c.e.a + c.f.a / 2, c.e.b + c.f.b / 2), a) == (uFb(b), b); + } + function qge(a, b) { + return ZD(b, 102) && (RD(b, 19).Bb & txe) != 0 ? new She(b, a) : new Phe(b, a); + } + function sge(a, b) { + return ZD(b, 102) && (RD(b, 19).Bb & txe) != 0 ? new She(b, a) : new Phe(b, a); + } + function XC(a) { + return a.__elementTypeCategory$ == null ? 10 : a.__elementTypeCategory$; + } + function Bhb(a, b) { + return b == (wvb(), wvb(), vvb) ? a.toLocaleLowerCase() : a.toLowerCase(); + } + function Mu(a) { + if (!a.e) { + throw Adb(new Dvb()); + } + a.c = a.a = a.e; + a.e = a.e.e; + --a.d; + return a.a.f; + } + function Lu(a) { + if (!a.c) { + throw Adb(new Dvb()); + } + a.e = a.a = a.c; + a.c = a.c.c; + ++a.d; + return a.a.f; + } + function Lsb(a) { + var b; + ++a.a; + for (b = a.c.a.length; a.a < b; ++a.a) { + if (a.c.b[a.a]) { + return; + } + } + } + function _z(a) { + var b, c; + if (a.a) { + c = null; + do { + b = a.a; + a.a = null; + c = dA(b, c); + } while (a.a); + a.a = c; + } + } + function aA(a) { + var b, c; + if (a.b) { + c = null; + do { + b = a.b; + a.b = null; + c = dA(b, c); + } while (a.b); + a.b = c; + } + } + function eve(a, b) { + var c; + c = 0; + while (a.e != a.i.gc()) { + oFd(b, bMd(a), sgb(c)); + c != lve && ++c; + } + } + function Llc(a, b) { + var c; + c = $y(a.e.c, b.e.c); + if (c == 0) { + return Qfb(a.e.d, b.e.d); + } + return c; + } + function hdc(a, b) { + var c, d; + d = b.c; + for (c = d + 1; c <= b.f; c++) { + a.a[c] > a.a[d] && (d = c); + } + return d; + } + function Krc(a) { + var b; + b = RD(mQb(a, (Ywc(), Wvc)), 313); + if (b) { + return b.a == a; + } + return false; + } + function Lrc(a) { + var b; + b = RD(mQb(a, (Ywc(), Wvc)), 313); + if (b) { + return b.i == a; + } + return false; + } + function xXb() { + xXb = geb; + wXb = ss((sXb(), cD(WC(UP, 1), jwe, 367, 0, [nXb, oXb, pXb, qXb, rXb]))); + } + function Hnc() { + Hnc = geb; + Gnc = ss((Bnc(), cD(WC(TV, 1), jwe, 375, 0, [xnc, znc, Anc, ync, wnc]))); + } + function Xtc() { + Xtc = geb; + Wtc = ss((Ptc(), cD(WC(bX, 1), jwe, 348, 0, [Ltc, Ktc, Ntc, Otc, Mtc]))); + } + function RDc() { + RDc = geb; + QDc = ss((JDc(), cD(WC(uX, 1), jwe, 323, 0, [IDc, FDc, GDc, EDc, HDc]))); + } + function hxc() { + hxc = geb; + gxc = ss((cxc(), cD(WC(mX, 1), jwe, 171, 0, [bxc, Zwc, $wc, _wc, axc]))); + } + function m3c() { + m3c = geb; + l3c = ss((g3c(), cD(WC(x0, 1), jwe, 368, 0, [e3c, b3c, f3c, c3c, d3c]))); + } + function xad() { + xad = geb; + wad = ss((sad(), cD(WC(x1, 1), jwe, 373, 0, [oad, nad, qad, pad, rad]))); + } + function acd() { + acd = geb; + _bd = ss((Xbd(), cD(WC(P1, 1), jwe, 324, 0, [Sbd, Tbd, Wbd, Ubd, Vbd]))); + } + function Kmd() { + Kmd = geb; + Jmd = ss((Cmd(), cD(WC(s3, 1), jwe, 88, 0, [Amd, zmd, ymd, xmd, Bmd]))); + } + function bid() { + bid = geb; + aid = ss((Yhd(), cD(WC(d3, 1), jwe, 170, 0, [Whd, Vhd, Thd, Xhd, Uhd]))); + } + function uod() { + uod = geb; + tod = ss((pod(), cD(WC(B3, 1), jwe, 256, 0, [mod, ood, kod, lod, nod]))); + } + function zpd() { + zpd = geb; + ypd = ss((qpd(), cD(WC(E3, 1), NAe, 64, 0, [opd, Yod, Xod, npd, ppd]))); + } + function LHb() { + LHb = geb; + JHb = new MHb("BY_SIZE", 0); + KHb = new MHb("BY_SIZE_AND_SHAPE", 1); + } + function TUb() { + TUb = geb; + RUb = new UUb("EADES", 0); + SUb = new UUb("FRUCHTERMAN_REINGOLD", 1); + } + function $tc() { + $tc = geb; + Ytc = new _tc("READING_DIRECTION", 0); + Ztc = new _tc("ROTATION", 1); + } + function CZb() { + CZb = geb; + zZb = new ZZb(); + AZb = new b$b(); + xZb = new f$b(); + yZb = new j$b(); + BZb = new n$b(); + } + function dGb(a) { + this.b = new bnb(); + this.a = new bnb(); + this.c = new bnb(); + this.d = new bnb(); + this.e = a; + } + function XZb(a) { + this.g = a; + this.f = new bnb(); + this.a = $wnd.Math.min(this.g.c.c, this.g.d.c); + } + function UKb(a, b, c) { + RJb.call(this); + KKb(this); + this.a = a; + this.c = c; + this.b = b.d; + this.f = b.e; + } + function d6b(a, b, c) { + var d, e; + for (e = new Anb(c); e.a < e.c.c.length; ) { + d = ynb(e); + c6b(a, b, d); + } + } + function sC(a, b, c) { + var d; + if (b == null) { + throw Adb(new Ngb()); + } + d = qC(a, b); + tC(a, b, c); + return d; + } + function ked(a, b) { + var c; + c = RD(Wjb(a.a, b), 137); + if (!c) { + c = new qQb(); + Zjb(a.a, b, c); + } + return c; + } + function vYd(a, b) { + var c; + c = (a.i == null && rYd(a), a.i); + return b >= 0 && b < c.length ? c[b] : null; + } + function Gqd(a, b) { + var c; + c = b > 0 ? b - 1 : b; + return Kqd(Lqd(Mqd(Nqd(new Oqd(), c), a.n), a.j), a.k); + } + function nBd(a) { + var b, c; + c = (b = new q4d(), b); + WGd((!a.q && (a.q = new C5d(s7, a, 11, 10)), a.q), c); + } + function ofb(a) { + return ((a.i & 2) != 0 ? "interface " : (a.i & 1) != 0 ? "" : "class ") + (lfb(a), a.o); + } + function dz(a) { + if (Ddb(a, lve) > 0) { + return lve; + } + if (Ddb(a, qwe) < 0) { + return qwe; + } + return Ydb(a); + } + function Sv(a) { + if (a < 3) { + dk(a, fwe); + return a + 1; + } + if (a < hwe) { + return eE(a / 0.75 + 1); + } + return lve; + } + function Rwb(a, b) { + uFb(b); + Qwb(a); + if (a.d.Ob()) { + b.Cd(a.d.Pb()); + return true; + } + return false; + } + function ke(a, b) { + var c, d; + c = RD(Xv(a.d, b), 16); + if (!c) { + return null; + } + d = b; + return a.e.pc(d, c); + } + function Ufe(a, b, c, d) { + var e; + a.j = -1; + oLd(a, gge(a, b, c), (nke(), e = RD(b, 69).vk(), e.xl(d))); + } + function Z_c(a, b) { + R_c(); + return -hgb(RD(mQb(a, (h_c(), W$c)), 17).a, RD(mQb(b, W$c), 17).a); + } + function xo(a, b) { + return !!Ho(a, b, Ydb(Ndb(cwe, qgb(Ydb(Ndb(b == null ? 0 : tb(b), dwe)), 15)))); + } + function dGd() { + aGd(); + return cD(WC(T5, 1), jwe, 245, 0, [_Fd, YFd, ZFd, XFd, $Fd, VFd, UFd, WFd]); + } + function nid() { + kid(); + return cD(WC(e3, 1), jwe, 285, 0, [jid, cid, gid, iid, did, eid, fid, hid]); + } + function hpc() { + epc(); + return cD(WC(hW, 1), jwe, 276, 0, [Zoc, apc, Yoc, dpc, _oc, $oc, cpc, bpc]); + } + function Kcc(a) { + var b; + b = Kfb(UD(mQb(a, (yCc(), FAc)))); + if (b < 0) { + b = 0; + pQb(a, FAc, b); + } + return b; + } + function Odc(a, b) { + var c, d; + for (d = a.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 72); + pQb(c, (Ywc(), swc), b); + } + } + function Oic(a, b, c) { + var d; + d = $wnd.Math.max(0, a.b / 2 - 0.5); + Iic(c, d, 1); + Rmb(b, new Xic(c, d)); + } + function lRc(a, b, c) { + var d; + d = a.a.e[RD(b.a, 10).p] - a.a.e[RD(c.a, 10).p]; + return eE(Lgb(d)); + } + function PDb(a, b) { + var c; + MCb(a); + c = new cEb(a, a.a.zd(), a.a.yd() | 4, b); + return new SDb(a, c); + } + function gvb(a) { + var b; + yFb(!!a.c); + b = a.c.a; + Wub(a.d, a.c); + a.b == a.c ? a.b = b : --a.a; + a.c = null; + } + function iqc(a) { + a.a >= -0.01 && a.a <= Tye && (a.a = 0); + a.b >= -0.01 && a.b <= Tye && (a.b = 0); + return a; + } + function Hid(a) { + tid(); + var b, c; + c = KEe; + for (b = 0; b < a.length; b++) { + a[b] > c && (c = a[b]); + } + return c; + } + function Zvd(a, b) { + var c; + c = wYd(a.Dh(), b); + if (!c) { + throw Adb(new agb(KHe + b + NHe)); + } + return c; + } + function NGd(a, b) { + var c; + c = a; + while (vCd(c)) { + c = vCd(c); + if (c == b) { + return true; + } + } + return false; + } + function ix(a, b) { + var c, d, e; + d = b.a.ld(); + c = RD(b.a.md(), 16).gc(); + for (e = 0; e < c; e++) { + a.Cd(d); + } + } + function Umb(a, b) { + var c, d, e, f; + uFb(b); + for (d = a.c, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + b.Cd(c); + } + } + function q0b(a, b, c, d, e, f) { + var g; + g = s0b(d); + Y0b(g, e); + Z0b(g, f); + Rc(a.a, d, new J0b(g, b, c.f)); + } + function P8c(a, b) { + Ixd(a, (X6c(), T6c), b.f); + Ixd(a, Q6c, b.e); + Ixd(a, S6c, b.d); + Ixd(a, P6c, b.c); + } + function grc(a, b) { + this.a = new Tsb(); + this.e = new Tsb(); + this.b = (lDc(), kDc); + this.c = a; + this.b = b; + } + function yd(a) { + this.d = a; + this.c = a.c.vc().Kc(); + this.b = null; + this.a = null; + this.e = (zs(), ys); + } + function Wub(a, b) { + var c; + c = b.c; + b.a.b = b.b; + b.b.a = b.a; + b.a = b.b = null; + b.c = null; + --a.b; + return c; + } + function Esb(a, b) { + if (!!b && a.b[b.g] == b) { + bD(a.b, b.g, null); + --a.c; + return true; + } + return false; + } + function jxb(a, b) { + if (0 > a || a > b) { + throw Adb(new xeb("fromIndex: 0, toIndex: " + a + Qxe + b)); + } + } + function ZHd(a) { + if (a < 0) { + throw Adb(new agb("Illegal Capacity: " + a)); + } + this.g = this.aj(a); + } + function _y(a, b) { + Zy(); + bz(pwe); + return $wnd.Math.abs(a - b) <= pwe || a == b || isNaN(a) && isNaN(b); + } + function xJc(a, b) { + var c, d, e, f; + for (d = a.d, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + pJc(a.g, c).a = b; + } + } + function BIc(a, b, c) { + var d, e, f; + e = b[c]; + for (d = 0; d < e.length; d++) { + f = e[d]; + a.e[f.c.p][f.p] = d; + } + } + function nqc(a) { + var b; + for (b = 0; b < a.c.length; b++) { + (tFb(b, a.c.length), RD(a.c[b], 12)).p = b; + } + } + function qqc(a) { + var b, c; + b = a.a.d.j; + c = a.c.d.j; + while (b != c) { + zsb(a.b, b); + b = tpd(b); + } + zsb(a.b, b); + } + function gjd(a) { + var b; + b = $wnd.Math.sqrt(a.a * a.a + a.b * a.b); + if (b > 0) { + a.a /= b; + a.b /= b; + } + return a; + } + function BXd(a) { + var b; + if (a.w) { + return a.w; + } else { + b = CXd(a); + !!b && !b.Vh() && (a.w = b); + return b; + } + } + function l2d(a, b) { + var c, d; + d = a.a; + c = m2d(a, b, null); + d != b && !a.e && (c = o2d(a, b, c)); + !!c && c.oj(); + } + function rQc(a, b, c) { + var d, e; + d = b; + do { + e = Kfb(a.p[d.p]) + c; + a.p[d.p] = e; + d = a.a[d.p]; + } while (d != b); + } + function heb(a, b, c) { + var d = function() { + return a.apply(d, arguments); + }; + b.apply(d, c); + return d; + } + function Gae(a) { + var b; + if (a == null) { + return null; + } else { + b = RD(a, 195); + return sAd(b, b.length); + } + } + function QHd(a, b) { + if (a.g == null || b >= a.i) + throw Adb(new yNd(b, a.i)); + return a.Wi(b, a.g[b]); + } + function Dob(a, b) { + yob(); + var c, d; + d = new bnb(); + for (c = 0; c < a; ++c) { + ZEb(d.c, b); + } + return new irb(d); + } + function NDb(a) { + MCb(a); + zFb(true, "n may not be negative"); + return new SDb(a, new DEb(a.a)); + } + function KKb(a) { + a.b = (EKb(), BKb); + a.f = (vLb(), tLb); + a.d = (dk(2, iwe), new cnb(2)); + a.e = new pjd(); + } + function zrd(a) { + this.b = (Qb(a), new dnb(a)); + this.a = new bnb(); + this.d = new bnb(); + this.e = new pjd(); + } + function ZJb() { + ZJb = geb; + WJb = new $Jb("BEGIN", 0); + XJb = new $Jb(Kye, 1); + YJb = new $Jb("END", 2); + } + function Omd() { + Omd = geb; + Lmd = new Pmd(Kye, 0); + Mmd = new Pmd("HEAD", 1); + Nmd = new Pmd("TAIL", 2); + } + function R_c() { + R_c = geb; + Q_c = mfd(mfd(mfd(rfd(new ufd(), (YVc(), VVc)), (WYc(), VYc)), OYc), SYc); + } + function B0c() { + B0c = geb; + A0c = mfd(mfd(mfd(rfd(new ufd(), (YVc(), XVc)), (WYc(), QYc)), LYc), PYc); + } + function gtc() { + gtc = geb; + ftc = ss((btc(), cD(WC(ZW, 1), jwe, 232, 0, [Zsc, _sc, Ysc, $sc, atc, Xsc]))); + } + function zuc() { + zuc = geb; + yuc = ss((tuc(), cD(WC(eX, 1), jwe, 283, 0, [ouc, nuc, quc, puc, suc, ruc]))); + } + function Tuc() { + Tuc = geb; + Suc = ss((Ouc(), cD(WC(gX, 1), jwe, 281, 0, [Luc, Kuc, Nuc, Juc, Muc, Iuc]))); + } + function dvc() { + dvc = geb; + cvc = ss(($uc(), cD(WC(hX, 1), jwe, 282, 0, [Yuc, Vuc, Zuc, Xuc, Wuc, Uuc]))); + } + function w3b() { + w3b = geb; + v3b = ss((r3b(), cD(WC(hR, 1), jwe, 273, 0, [p3b, o3b, m3b, q3b, n3b, l3b]))); + } + function Wjd() { + Wjd = geb; + Vjd = ss((Rjd(), cD(WC(n3, 1), jwe, 255, 0, [Ljd, Ojd, Pjd, Qjd, Mjd, Njd]))); + } + function zkd() { + zkd = geb; + ykd = ss((ukd(), cD(WC(q3, 1), jwe, 298, 0, [tkd, skd, rkd, pkd, okd, qkd]))); + } + function nnd() { + nnd = geb; + mnd = ss((ind(), cD(WC(v3, 1), jwe, 321, 0, [gnd, end, hnd, cnd, fnd, dnd]))); + } + function Iod() { + Iod = geb; + Hod = ss((Bod(), cD(WC(C3, 1), jwe, 101, 0, [Aod, zod, yod, vod, xod, wod]))); + } + function Wod() { + Wod = geb; + Vod = ss((Pod(), cD(WC(D3, 1), jwe, 279, 0, [Nod, Lod, Mod, Kod, Jod, Ood]))); + } + function kKb() { + kKb = geb; + jKb = (ZJb(), cD(WC(JN, 1), jwe, 237, 0, [WJb, XJb, YJb])).length; + iKb = jKb; + } + function hod() { + dod(); + return cD(WC(A3, 1), jwe, 95, 0, [Xnd, Wnd, Znd, cod, bod, aod, $nd, _nd, Ynd]); + } + function eoc(a, b) { + Mnc(); + return hgb(a.b.c.length - a.e.c.length, b.b.c.length - b.e.c.length); + } + function Ao(a, b) { + return $v(Go(a, b, Ydb(Ndb(cwe, qgb(Ydb(Ndb(b == null ? 0 : tb(b), dwe)), 15))))); + } + function rGb(a, b) { + return Zy(), bz(pwe), $wnd.Math.abs(a - b) <= pwe || a == b || isNaN(a) && isNaN(b); + } + function Wxd(a, b) { + var c; + c = a.b; + a.b = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new L3d(a, 1, c, a.b)); + } + function Hzd(a, b) { + var c; + c = a.b; + a.b = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new L3d(a, 3, c, a.b)); + } + function Ayd(a, b) { + var c; + c = a.f; + a.f = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new L3d(a, 3, c, a.f)); + } + function Cyd(a, b) { + var c; + c = a.g; + a.g = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new L3d(a, 4, c, a.g)); + } + function Dyd(a, b) { + var c; + c = a.i; + a.i = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new L3d(a, 5, c, a.i)); + } + function Eyd(a, b) { + var c; + c = a.j; + a.j = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new L3d(a, 6, c, a.j)); + } + function Ozd(a, b) { + var c; + c = a.j; + a.j = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new L3d(a, 1, c, a.j)); + } + function Izd(a, b) { + var c; + c = a.c; + a.c = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new L3d(a, 4, c, a.c)); + } + function Pzd(a, b) { + var c; + c = a.k; + a.k = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new L3d(a, 2, c, a.k)); + } + function Vxd(a, b) { + var c; + c = a.a; + a.a = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new L3d(a, 0, c, a.a)); + } + function $Vd(a, b) { + var c; + c = a.s; + a.s = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new M3d(a, 4, c, a.s)); + } + function bWd(a, b) { + var c; + c = a.t; + a.t = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new M3d(a, 5, c, a.t)); + } + function Q1d(a, b) { + var c; + c = a.d; + a.d = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new M3d(a, 2, c, a.d)); + } + function zXd(a, b) { + var c; + c = a.F; + a.F = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 5, c, b)); + } + function IMd(a, b) { + var c; + c = RD(Wjb((PRd(), ORd), a), 57); + return c ? c.gk(b) : $C(jJ, rve, 1, b, 5, 1); + } + function BXb(a, b) { + var c; + c = ojd(ajd(RD(Wjb(a.g, b), 8)), Pid(RD(Wjb(a.f, b), 470).b)); + return c; + } + function FGd(a, b) { + var c, d, e; + c = (d = (bvd(), e = new hCd(), e), !!b && eCd(d, b), d); + fCd(c, a); + return c; + } + function vDd(a, b) { + var c, d; + c = b in a.a; + if (c) { + d = qC(a, b).re(); + if (d) { + return d.a; + } + } + return null; + } + function jZd(a, b, c) { + gHd(a, c); + if (!a.kl() && c != null && !a.fk(c)) { + throw Adb(new yeb()); + } + return c; + } + function Mqd(a, b) { + a.n = b; + if (a.n) { + a.f = new bnb(); + a.e = new bnb(); + } else { + a.f = null; + a.e = null; + } + return a; + } + function Ffb(a, b) { + if (!a) { + return; + } + b.n = a; + var d = zfb(b); + if (!d) { + eeb[a] = [b]; + return; + } + d.Rm = b; + } + function SD(a) { + var b; + CFb(a == null || Array.isArray(a) && (b = XC(a), !(b >= 14 && b <= 16))); + return a; + } + function ws(a, b) { + var c; + uFb(b); + c = a[":" + b]; + mFb(!!c, "Enum constant undefined: " + b); + return c; + } + function tfb(a, b, c, d, e, f) { + var g; + g = rfb(a, b); + Ffb(c, g); + g.i = e ? 8 : 0; + g.f = d; + g.e = e; + g.g = f; + return g; + } + function R3d(a, b, c, d, e) { + this.d = b; + this.k = d; + this.f = e; + this.o = -1; + this.p = 1; + this.c = a; + this.a = c; + } + function T3d(a, b, c, d, e) { + this.d = b; + this.k = d; + this.f = e; + this.o = -1; + this.p = 2; + this.c = a; + this.a = c; + } + function _3d(a, b, c, d, e) { + this.d = b; + this.k = d; + this.f = e; + this.o = -1; + this.p = 6; + this.c = a; + this.a = c; + } + function e4d(a, b, c, d, e) { + this.d = b; + this.k = d; + this.f = e; + this.o = -1; + this.p = 7; + this.c = a; + this.a = c; + } + function X3d(a, b, c, d, e) { + this.d = b; + this.j = d; + this.e = e; + this.o = -1; + this.p = 4; + this.c = a; + this.a = c; + } + function iGb(a, b) { + var c, d, e, f; + for (d = b, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + eGb(a.a, c); + } + return a; + } + function Al(a) { + var b, c, d, e; + for (c = a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + Qb(b); + } + return new Gl(a); + } + function ZTb(a) { + var b; + b = ojd(ajd(a.d.d), a.c.d); + wid(b, a.c.e.a, a.c.e.b); + return $id(b, a.c.d); + } + function $Tb(a) { + var b; + b = ojd(ajd(a.c.d), a.d.d); + wid(b, a.d.e.a, a.d.e.b); + return $id(b, a.d.d); + } + function iA(a) { + var b = /function(?:\s+([\w$]+))?\s*\(/; + var c = b.exec(a); + return c && c[1] || wwe; + } + function Hnb(a, b, c) { + var d, e; + e = a.length; + d = $wnd.Math.min(c, e); + VEb(a, 0, b, 0, d, true); + return b; + } + function ISb(a, b, c) { + var d, e; + for (e = b.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 74); + Ysb(a, RD(c.Kb(d), 27)); + } + } + function E1b(a, b) { + Cod(RD(mQb(RD(a.e, 10), (yCc(), BBc)), 101)) && (yob(), _mb(RD(a.e, 10).j, b)); + } + function lIb() { + iIb(); + return cD(WC(xN, 1), jwe, 257, 0, [hIb, cIb, dIb, bIb, fIb, gIb, eIb, aIb, _Hb]); + } + function fDc() { + _Cc(); + return cD(WC(rX, 1), jwe, 265, 0, [ZCc, WCc, XCc, TCc, VCc, $Cc, YCc, SCc, UCc]); + } + function RKc() { + RKc = geb; + OKc = new SKc("BARYCENTER", 0); + PKc = new SKc(jBe, 1); + QKc = new SKc(kBe, 2); + } + function uFc() { + uFc = geb; + tFc = new vFc("NO", 0); + rFc = new vFc(CBe, 1); + sFc = new vFc("LOOK_BACK", 2); + } + function Etc() { + Etc = geb; + Btc = new Ftc("ARD", 0); + Dtc = new Ftc("MSD", 1); + Ctc = new Ftc("MANUAL", 2); + } + function BEc() { + BEc = geb; + AEc = new CEc(Sye, 0); + yEc = new CEc("INPUT", 1); + zEc = new CEc("OUTPUT", 2); + } + function ygd() { + if (!qgd) { + qgd = new xgd(); + wgd(qgd, cD(WC(B2, 1), rve, 134, 0, [new vmd()])); + } + return qgd; + } + function bz(a) { + if (!(a >= 0)) { + throw Adb(new agb("tolerance (" + a + ") must be >= 0")); + } + return a; + } + function hOd(a, b) { + var c; + if (ZD(b, 44)) { + return a.c.Mc(b); + } else { + c = QNd(a, b); + jOd(a, b); + return c; + } + } + function yBd(a, b, c) { + YVd(a, b); + PAd(a, c); + $Vd(a, 0); + bWd(a, 1); + aWd(a, true); + _Vd(a, true); + return a; + } + function ZGd(a, b) { + var c; + c = a.gc(); + if (b < 0 || b > c) + throw Adb(new aMd(b, c)); + return new CMd(a, b); + } + function Cad(a, b) { + a.b = $wnd.Math.max(a.b, b.d); + a.e += b.r + (a.a.c.length == 0 ? 0 : a.c); + Rmb(a.a, b); + } + function Jmb(a) { + yFb(a.c >= 0); + if (rmb(a.d, a.c) < 0) { + a.a = a.a - 1 & a.d.a.length - 1; + a.b = a.d.c; + } + a.c = -1; + } + function Nc(a) { + var b, c; + for (c = a.c.Cc().Kc(); c.Ob(); ) { + b = RD(c.Pb(), 16); + b.$b(); + } + a.c.$b(); + a.d = 0; + } + function Zi(a) { + var b, c, d, e; + for (c = a.a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + Rnb(b, b.length, null); + } + } + function zjd(a, b) { + var c, d, e, f; + for (d = b, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + Pub(a, c, a.c.b, a.c); + } + } + function St(a, b) { + var c, d; + for (c = 0, d = a.gc(); c < d; ++c) { + if (Fvb(b, a.Xb(c))) { + return c; + } + } + return -1; + } + function ogb(a) { + var b, c; + if (a == 0) { + return 32; + } else { + c = 0; + for (b = 1; (b & a) == 0; b <<= 1) { + ++c; + } + return c; + } + } + function dk(a, b) { + if (a < 0) { + throw Adb(new agb(b + " cannot be negative but was: " + a)); + } + return a; + } + function deb(a, b) { + typeof window === gve && typeof window["$gwt"] === gve && (window["$gwt"][a] = b); + } + function lp(a, b) { + return Vv(Ho(a.a, b, Ydb(Ndb(cwe, qgb(Ydb(Ndb(b == null ? 0 : tb(b), dwe)), 15))))); + } + function FBb(a, b, c) { + return sBb(a, new CCb(b), new ECb(), new GCb(c), cD(WC(QL, 1), jwe, 108, 0, [])); + } + function gqd() { + dqd(); + return cD(WC(I3, 1), jwe, 264, 0, [Ypd, $pd, Xpd, _pd, aqd, cqd, bqd, Zpd, Wpd]); + } + function wgb() { + wgb = geb; + vgb = cD(WC(kE, 1), Pwe, 28, 15, [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]); + } + function stc() { + stc = geb; + qtc = new utc("LAYER_SWEEP", 0); + ptc = new utc(BBe, 1); + rtc = new utc(LAe, 2); + } + function nGc() { + nGc = geb; + mGc = pfd(pfd(pfd(new ufd(), (sXb(), nXb), (hcc(), obc)), oXb, Nbc), pXb, Mbc); + } + function yGc() { + yGc = geb; + xGc = pfd(pfd(pfd(new ufd(), (sXb(), nXb), (hcc(), obc)), oXb, Nbc), pXb, Mbc); + } + function SGc() { + SGc = geb; + RGc = pfd(pfd(pfd(new ufd(), (sXb(), nXb), (hcc(), obc)), oXb, Nbc), pXb, Mbc); + } + function lHc() { + lHc = geb; + kHc = pfd(pfd(pfd(new ufd(), (sXb(), nXb), (hcc(), obc)), oXb, Nbc), pXb, Mbc); + } + function tHc() { + tHc = geb; + sHc = pfd(pfd(pfd(new ufd(), (sXb(), nXb), (hcc(), obc)), oXb, Nbc), pXb, Mbc); + } + function RHc() { + RHc = geb; + QHc = pfd(pfd(pfd(new ufd(), (sXb(), nXb), (hcc(), obc)), oXb, Nbc), pXb, Mbc); + } + function YJc() { + YJc = geb; + XJc = nfd(pfd(pfd(new ufd(), (sXb(), pXb), (hcc(), Qbc)), qXb, Gbc), rXb, Pbc); + } + function EJb(a) { + var b, c; + for (c = new Anb(yud(a)); c.a < c.c.c.length; ) { + b = RD(ynb(c), 695); + b._f(); + } + } + function aeb() { + beb(); + var a = _db; + for (var b = 0; b < arguments.length; b++) { + a.push(arguments[b]); + } + } + function EXb(a) { + zXb(); + this.g = new Tsb(); + this.f = new Tsb(); + this.b = new Tsb(); + this.c = new Tp(); + this.i = a; + } + function d1b() { + this.f = new pjd(); + this.d = new C3b(); + this.c = new pjd(); + this.a = new bnb(); + this.b = new bnb(); + } + function Cje(a, b, c, d) { + this.ak(); + this.a = b; + this.b = a; + this.c = null; + this.c = new Dje(this, b, c, d); + } + function NKd(a, b, c, d, e) { + this.d = a; + this.n = b; + this.g = c; + this.o = d; + this.p = -1; + e || (this.o = -2 - d - 1); + } + function HWd() { + dWd.call(this); + this.n = -1; + this.g = null; + this.i = null; + this.j = null; + this.Bb |= gwe; + } + function DEb(a) { + xxb.call(this, a.Ad(64) ? Kgb(0, Vdb(a.zd(), 1)) : Sve, a.yd()); + this.b = 1; + this.a = a; + } + function X_c(a, b) { + R_c(); + return RD(mQb(b, (h_c(), W$c)), 17).a < a.gc() && RD(mQb(b, W$c), 17).a >= 0; + } + function Iqd(a, b) { + if (a.r > 0 && a.c < a.r) { + a.c += b; + !!a.i && a.i.d > 0 && a.g != 0 && Iqd(a.i, b / a.r * a.i.d); + } + } + function $Cd(a, b) { + var c; + c = a.c; + a.c = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 1, c, a.c)); + } + function P1d(a, b) { + var c; + c = a.c; + a.c = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 4, c, a.c)); + } + function jyd(a, b) { + var c; + c = a.k; + a.k = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 2, c, a.k)); + } + function JXd(a, b) { + var c; + c = a.D; + a.D = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 2, c, a.D)); + } + function Kzd(a, b) { + var c; + c = a.f; + a.f = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 8, c, a.f)); + } + function Lzd(a, b) { + var c; + c = a.i; + a.i = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 7, c, a.i)); + } + function fCd(a, b) { + var c; + c = a.a; + a.a = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 8, c, a.a)); + } + function ZCd(a, b) { + var c; + c = a.b; + a.b = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 0, c, a.b)); + } + function s6d(a, b) { + var c; + c = a.b; + a.b = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 0, c, a.b)); + } + function t6d(a, b) { + var c; + c = a.c; + a.c = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 1, c, a.c)); + } + function nVd(a, b) { + var c; + c = a.d; + a.d = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 1, c, a.d)); + } + function Cte(a, b, c) { + var d; + a.b = b; + a.a = c; + d = (a.a & 512) == 512 ? new Gre() : new Tqe(); + a.c = Nqe(d, a.b, a.a); + } + function Gge(a, b) { + return qke(a.e, b) ? (nke(), wWd(b) ? new ole(b, a) : new Eke(b, a)) : new Ble(b, a); + } + function iDb(a) { + var b, c; + if (0 > a) { + return new rDb(); + } + b = a + 1; + c = new kDb(b, a); + return new oDb(null, c); + } + function Gob(a, b) { + yob(); + var c; + c = new Usb(1); + bE(a) ? $jb(c, a, b) : rtb(c.f, a, b); + return new uqb(c); + } + function pQc(a, b) { + var c, d; + c = a.c; + d = b.e[a.p]; + if (d > 0) { + return RD(Vmb(c.a, d - 1), 10); + } + return null; + } + function TOb(a, b) { + var c, d; + c = a.o + a.p; + d = b.o + b.p; + if (c < d) { + return -1; + } + if (c == d) { + return 0; + } + return 1; + } + function Z5b(a) { + var b; + b = mQb(a, (Ywc(), Awc)); + if (ZD(b, 167)) { + return Y5b(RD(b, 167)); + } + return null; + } + function Wp(a) { + var b; + a = $wnd.Math.max(a, 2); + b = mgb(a); + if (a > b) { + b <<= 1; + return b > 0 ? b : hwe; + } + return b; + } + function xc(a) { + Ub(a.e != 3); + switch (a.e) { + case 2: + return false; + case 0: + return true; + } + return zc(a); + } + function djd(a, b) { + var c; + if (ZD(b, 8)) { + c = RD(b, 8); + return a.a == c.a && a.b == c.b; + } else { + return false; + } + } + function Ydd(a, b) { + var c; + c = new kRb(); + RD(b.b, 68); + RD(b.b, 68); + RD(b.b, 68); + Umb(b.a, new ced(a, c, b)); + } + function gOd(a, b) { + var c, d; + for (d = b.vc().Kc(); d.Ob(); ) { + c = RD(d.Pb(), 44); + fOd(a, c.ld(), c.md()); + } + } + function Jzd(a, b) { + var c; + c = a.d; + a.d = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 11, c, a.d)); + } + function zWd(a, b) { + var c; + c = a.j; + a.j = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 13, c, a.j)); + } + function b6d(a, b) { + var c; + c = a.b; + a.b = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 21, c, a.b)); + } + function YAb(a, b) { + ((gBb(), dBb) ? null : b.c).length == 0 && iBb(b, new rBb()); + $jb(a.a, dBb ? null : b.c, b); + } + function b9b(a, b) { + b.Ug("Hierarchical port constraint processing", 1); + c9b(a); + e9b(a); + b.Vg(); + } + function joc() { + joc = geb; + ioc = new koc("START", 0); + hoc = new koc("MIDDLE", 1); + goc = new koc("END", 2); + } + function x2c() { + x2c = geb; + v2c = new z2c("P1_NODE_PLACEMENT", 0); + w2c = new z2c("P2_EDGE_ROUTING", 1); + } + function JVb() { + JVb = geb; + HVb = new jGd(rAe); + IVb = new jGd(sAe); + GVb = new jGd(tAe); + FVb = new jGd(uAe); + } + function tkb(a) { + var b; + rFb(a.f.g, a.d); + sFb(a.b); + a.c = a.a; + b = RD(a.a.Pb(), 44); + a.b = skb(a); + return b; + } + function P2d(a) { + var b; + if (a.b == null) { + return j3d(), j3d(), i3d; + } + b = a.ul() ? a.tl() : a.sl(); + return b; + } + function nwb(a, b) { + var c; + c = b == null ? -1 : Wmb(a.b, b, 0); + if (c < 0) { + return false; + } + owb(a, c); + return true; + } + function zsb(a, b) { + var c; + uFb(b); + c = b.g; + if (!a.b[c]) { + bD(a.b, c, b); + ++a.c; + return true; + } + return false; + } + function azb(a, b) { + var c, d; + c = 1 - b; + d = a.a[c]; + a.a[c] = d.a[b]; + d.a[b] = a; + a.b = true; + d.b = false; + return d; + } + function xRb(a, b) { + var c, d; + for (d = b.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 272); + a.b = true; + Ysb(a.e, c); + c.b = a; + } + } + function kic(a, b) { + var c, d; + c = RD(mQb(a, (yCc(), IBc)), 8); + d = RD(mQb(b, IBc), 8); + return Qfb(c.b, d.b); + } + function SPb(a, b, c) { + var d, e, f; + f = b >> 5; + e = b & 31; + d = Cdb(Udb(a.n[c][f], Ydb(Sdb(e, 1))), 3); + return d; + } + function lmb(a, b, c) { + var d, e, f; + f = a.a.length - 1; + for (e = a.b, d = 0; d < c; e = e + 1 & f, ++d) { + bD(b, d, a.a[e]); + } + } + function owb(a, b) { + var c; + c = Xmb(a.b, a.b.c.length - 1); + if (b < a.b.c.length) { + $mb(a.b, b, c); + kwb(a, b); + } + } + function NQc(a, b) { + var c; + c = RD(Wjb(a.c, b), 467); + if (!c) { + c = new UQc(); + c.c = b; + Zjb(a.c, c.c, c); + } + return c; + } + function PUc(a, b) { + var c, d; + d = new bnb(); + c = b; + do { + ZEb(d.c, c); + c = RD(Wjb(a.k, c), 18); + } while (c); + return d; + } + function rMc(a, b, c) { + var d; + d = new bnb(); + sMc(a, b, d, c, true, true); + a.b = new _Lc(d.c.length); + return d; + } + function tvb(a, b) { + var c, d; + c = a.Pc(); + Wnb(c, 0, c.length, b); + for (d = 0; d < c.length; d++) { + a.hd(d, c[d]); + } + } + function Bad(a) { + var b, c; + for (c = new dMd(a); c.e != c.i.gc(); ) { + b = RD(bMd(c), 27); + Dyd(b, 0); + Eyd(b, 0); + } + } + function Bu(a) { + this.e = a; + this.d = new atb(Sv(Ec(this.e).gc())); + this.c = this.e.a; + this.b = this.e.c; + } + function _Lc(a) { + this.b = a; + this.a = $C(kE, Pwe, 28, a + 1, 15, 1); + this.c = $C(kE, Pwe, 28, a, 15, 1); + this.d = 0; + } + function frc(a, b, c) { + grc.call(this, b, c); + this.d = $C(jR, WAe, 10, a.a.c.length, 0, 1); + anb(a.a, this.d); + } + function vLc(a, b, c) { + UIc.call(this, a, b, c); + this.a = new Tsb(); + this.b = new Tsb(); + this.d = new yLc(this); + } + function Pic(a) { + fHb.call(this); + this.b = Kfb(UD(mQb(a, (yCc(), TBc)))); + this.a = RD(mQb(a, yAc), 223); + } + function _q(a, b) { + var c; + if (ZD(b, 16)) { + c = RD(b, 16); + return a.Gc(c); + } + return xr(a, RD(Qb(b), 20).Kc()); + } + function KCc(a, b) { + FDb(CDb(new SDb(null, new Swb(new Xkb(a.b), 1)), new esd(a, b)), new isd(a, b)); + } + function f6b(a, b) { + b.Ug(iBe, 1); + FDb(EDb(new SDb(null, new Swb(a.b, 16)), new j6b()), new l6b()); + b.Vg(); + } + function tb(a) { + return bE(a) ? ohb(a) : _D(a) ? Nfb(a) : $D(a) ? Jeb(a) : YD(a) ? a.Hb() : aD(a) ? kFb(a) : Iz(a); + } + function xKc(a) { + var b, c; + for (c = a.c.a.ec().Kc(); c.Ob(); ) { + b = RD(c.Pb(), 219); + DJc(b, new NLc(b.f)); + } + } + function yKc(a) { + var b, c; + for (c = a.c.a.ec().Kc(); c.Ob(); ) { + b = RD(c.Pb(), 219); + EJc(b, new OLc(b.e)); + } + } + function PAd(a, b) { + var c; + c = a.zb; + a.zb = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 1, c, a.zb)); + } + function CBd(a, b) { + var c; + c = a.xb; + a.xb = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 3, c, a.xb)); + } + function DBd(a, b) { + var c; + c = a.yb; + a.yb = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 2, c, a.yb)); + } + function iBd(a, b) { + var c, d; + c = (d = new mXd(), d); + c.n = b; + WGd((!a.s && (a.s = new C5d(y7, a, 21, 17)), a.s), c); + } + function oBd(a, b) { + var c, d; + d = (c = new d6d(), c); + d.n = b; + WGd((!a.s && (a.s = new C5d(y7, a, 21, 17)), a.s), d); + } + function ye(a, b) { + var c, d, e; + uFb(b); + c = false; + for (e = b.Kc(); e.Ob(); ) { + d = e.Pb(); + c = c | a.Fc(d); + } + return c; + } + function Sx(a) { + var b, c, d; + b = 0; + for (d = a.Kc(); d.Ob(); ) { + c = d.Pb(); + b += c != null ? tb(c) : 0; + b = ~~b; + } + return b; + } + function oC(e, a) { + var b = e.a; + var c = 0; + for (var d in b) { + b.hasOwnProperty(d) && (a[c++] = d); + } + return a; + } + function gB(a) { + var b; + if (a == 0) { + return "UTC"; + } + if (a < 0) { + a = -a; + b = "UTC+"; + } else { + b = "UTC-"; + } + return b + iB(a); + } + function xib(a) { + if (a.a < 54) { + return a.f < 0 ? -1 : a.f > 0 ? 1 : 0; + } + return (!a.c && (a.c = ojb(Hdb(a.f))), a.c).e; + } + function GXd(a, b) { + if (b) { + if (a.B == null) { + a.B = a.D; + a.D = null; + } + } else if (a.B != null) { + a.D = a.B; + a.B = null; + } + } + function rZb(a, b) { + nZb(); + return a == jZb && b == mZb || a == mZb && b == jZb || a == lZb && b == kZb || a == kZb && b == lZb; + } + function sZb(a, b) { + nZb(); + return a == jZb && b == kZb || a == jZb && b == lZb || a == mZb && b == lZb || a == mZb && b == kZb; + } + function zMb(a, b) { + return Zy(), bz(Tye), $wnd.Math.abs(0 - b) <= Tye || 0 == b || isNaN(0) && isNaN(b) ? 0 : a / b; + } + function qsc(a, b) { + return Kfb(UD(Lvb(MDb(GDb(new SDb(null, new Swb(a.c.b, 16)), new Isc(a)), b)))); + } + function tsc(a, b) { + return Kfb(UD(Lvb(MDb(GDb(new SDb(null, new Swb(a.c.b, 16)), new Gsc(a)), b)))); + } + function rvc() { + ovc(); + return cD(WC(iX, 1), jwe, 259, 0, [fvc, hvc, ivc, jvc, kvc, lvc, nvc, evc, gvc, mvc]); + } + function dEc() { + aEc(); + return cD(WC(vX, 1), jwe, 243, 0, [$Dc, VDc, YDc, WDc, XDc, SDc, ZDc, _Dc, TDc, UDc]); + } + function z3c(a, b) { + var c; + b.Ug("General Compactor", 1); + c = h4c(RD(Gxd(a, ($4c(), I4c)), 393)); + c.Cg(a); + } + function T5c(a, b) { + var c, d; + c = RD(Gxd(a, ($4c(), P4c)), 17); + d = RD(Gxd(b, P4c), 17); + return hgb(c.a, d.a); + } + function Bjd(a, b, c) { + var d, e; + for (e = Sub(a, 0); e.b != e.d.c; ) { + d = RD(evb(e), 8); + d.a += b; + d.b += c; + } + return a; + } + function Go(a, b, c) { + var d; + for (d = a.b[c & a.f]; d; d = d.b) { + if (c == d.a && Hb(b, d.g)) { + return d; + } + } + return null; + } + function Ho(a, b, c) { + var d; + for (d = a.c[c & a.f]; d; d = d.d) { + if (c == d.f && Hb(b, d.i)) { + return d; + } + } + return null; + } + function sjb(a, b, c) { + var d, e, f; + d = 0; + for (e = 0; e < c; e++) { + f = b[e]; + a[e] = f << 1 | d; + d = f >>> 31; + } + d != 0 && (a[c] = d); + } + function yzb(a, b, c, d, e, f) { + var g; + this.c = a; + g = new bnb(); + Syb(a, g, b, a.b, c, d, e, f); + this.a = new Jkb(g, 0); + } + function _5c() { + this.c = new T2c(0); + this.b = new T2c(FEe); + this.d = new T2c(EEe); + this.a = new T2c(Gze); + } + function kMb(a, b, c, d, e, f, g) { + qs.call(this, a, b); + this.d = c; + this.e = d; + this.c = e; + this.b = f; + this.a = dv(g); + } + function tBd(a, b, c, d, e, f, g, h, i, j, k, l, m) { + ABd(a, b, c, d, e, f, g, h, i, j, k, l, m); + kXd(a, false); + return a; + } + function H0b(a) { + if (a.b.c.i.k == (r3b(), m3b)) { + return RD(mQb(a.b.c.i, (Ywc(), Awc)), 12); + } + return a.b.c; + } + function I0b(a) { + if (a.b.d.i.k == (r3b(), m3b)) { + return RD(mQb(a.b.d.i, (Ywc(), Awc)), 12); + } + return a.b.d; + } + function nDb(a) { + var b; + b = mDb(a); + if (Gdb(b.a, 0)) { + return bwb(), bwb(), awb; + } + return bwb(), new ewb(b.b); + } + function SCb(a) { + var b; + b = RCb(a); + if (Gdb(b.a, 0)) { + return Tvb(), Tvb(), Svb; + } + return Tvb(), new Yvb(b.b); + } + function TCb(a) { + var b; + b = RCb(a); + if (Gdb(b.a, 0)) { + return Tvb(), Tvb(), Svb; + } + return Tvb(), new Yvb(b.c); + } + function o8b(a) { + switch (a.g) { + case 2: + return qpd(), ppd; + case 4: + return qpd(), Xod; + default: + return a; + } + } + function p8b(a) { + switch (a.g) { + case 1: + return qpd(), npd; + case 3: + return qpd(), Yod; + default: + return a; + } + } + function C9c(a) { + switch (a.g) { + case 0: + return new s9c(); + case 1: + return new x9c(); + default: + return null; + } + } + function Zcc() { + Zcc = geb; + Ycc = new kGd("edgelabelcenterednessanalysis.includelabel", (Geb(), Eeb)); + } + function jKc() { + jKc = geb; + iKc = mfd(qfd(pfd(pfd(new ufd(), (sXb(), pXb), (hcc(), Qbc)), qXb, Gbc), rXb), Pbc); + } + function DLc() { + DLc = geb; + CLc = mfd(qfd(pfd(pfd(new ufd(), (sXb(), pXb), (hcc(), Qbc)), qXb, Gbc), rXb), Pbc); + } + function lYd() { + lYd = geb; + iYd = new i1d(); + kYd = cD(WC(y7, 1), lKe, 179, 0, []); + jYd = cD(WC(s7, 1), mKe, 62, 0, []); + } + function P8b() { + P8b = geb; + O8b = new Q8b("TO_INTERNAL_LTR", 0); + N8b = new Q8b("TO_INPUT_DIRECTION", 1); + } + function J3b() { + J3b = geb; + G3b = new r4b(); + E3b = new w4b(); + F3b = new A4b(); + D3b = new E4b(); + H3b = new I4b(); + I3b = new M4b(); + } + function Cac(a, b) { + b.Ug(iBe, 1); + LJb(KJb(new PJb((i1b(), new t1b(a, false, false, new _1b()))))); + b.Vg(); + } + function M_c(a, b, c) { + c.Ug("DFS Treeifying phase", 1); + L_c(a, b); + J_c(a, b); + a.a = null; + a.b = null; + c.Vg(); + } + function Leb(a, b) { + Geb(); + return bE(a) ? jhb(a, WD(b)) : _D(a) ? Jfb(a, UD(b)) : $D(a) ? Ieb(a, TD(b)) : a.Fd(b); + } + function Ld(a, b) { + var c, d; + uFb(b); + for (d = b.vc().Kc(); d.Ob(); ) { + c = RD(d.Pb(), 44); + a.zc(c.ld(), c.md()); + } + } + function ege(a, b, c) { + var d; + for (d = c.Kc(); d.Ob(); ) { + if (!cge(a, b, d.Pb())) { + return false; + } + } + return true; + } + function S6d(a, b, c, d, e) { + var f; + if (c) { + f = BYd(b.Dh(), a.c); + e = c.Rh(b, -1 - (f == -1 ? d : f), null, e); + } + return e; + } + function T6d(a, b, c, d, e) { + var f; + if (c) { + f = BYd(b.Dh(), a.c); + e = c.Th(b, -1 - (f == -1 ? d : f), null, e); + } + return e; + } + function Uib(a) { + var b; + if (a.b == -2) { + if (a.e == 0) { + b = -1; + } else { + for (b = 0; a.a[b] == 0; b++) + ; + } + a.b = b; + } + return a.b; + } + function fjb(a) { + uFb(a); + if (a.length == 0) { + throw Adb(new Vgb("Zero length BigInteger")); + } + mjb(this, a); + } + function $Hd(a) { + this.i = a.gc(); + if (this.i > 0) { + this.g = this.aj(this.i + (this.i / 8 | 0) + 1); + a.Qc(this.g); + } + } + function dmc(a, b, c) { + this.g = a; + this.d = b; + this.e = c; + this.a = new bnb(); + bmc(this); + yob(); + _mb(this.a, null); + } + function aad(a, b) { + b.q = a; + a.d = $wnd.Math.max(a.d, b.r); + a.b += b.d + (a.a.c.length == 0 ? 0 : a.c); + Rmb(a.a, b); + } + function xid(a, b) { + var c, d, e, f; + e = a.c; + c = a.c + a.b; + f = a.d; + d = a.d + a.a; + return b.a > e && b.a < c && b.b > f && b.b < d; + } + function Cjd(a, b) { + var c, d; + for (d = Sub(a, 0); d.b != d.d.c; ) { + c = RD(evb(d), 8); + c.a += b.a; + c.b += b.b; + } + return a; + } + function $cc(a) { + var b, c, d; + d = 0; + for (c = new Anb(a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 30); + b.p = d; + ++d; + } + } + function Tnc(a) { + var b, c, d; + return a.j == (qpd(), Yod) && (b = Vnc(a), c = Csb(b, Xod), d = Csb(b, ppd), d || d && c); + } + function rsd(a, b) { + var c; + c = wsd(a); + return qsd(new rjd(c.c, c.d), new rjd(c.b, c.a), a.Mf(), b, a.ag()); + } + function wEd(a, b) { + var c; + c = RD(b, 190); + qDd(c, "x", a.i); + qDd(c, "y", a.j); + qDd(c, fIe, a.g); + qDd(c, eIe, a.f); + } + function CVd(a, b) { + var c; + if (ZD(b, 85)) { + RD(a.c, 79).Gk(); + c = RD(b, 85); + gOd(a, c); + } else { + RD(a.c, 79).Wb(b); + } + } + function Bvb(a, b) { + var c, d; + uFb(b); + for (d = a.vc().Kc(); d.Ob(); ) { + c = RD(d.Pb(), 44); + b.Yd(c.ld(), c.md()); + } + } + function zr(a, b) { + var c; + Qb(b); + while (a.Ob()) { + c = a.Pb(); + if (!oSc(RD(c, 10))) { + return false; + } + } + return true; + } + function _Ab() { + var a; + if (!XAb) { + XAb = new $Ab(); + a = new oBb(""); + mBb(a, (SAb(), RAb)); + YAb(XAb, a); + } + return XAb; + } + function PBb(a, b) { + return sBb(new lCb(a), new nCb(b), new pCb(b), new rCb(), cD(WC(QL, 1), jwe, 108, 0, [])); + } + function t5c() { + t5c = geb; + r5c = new v5c(LAe, 0); + s5c = new v5c("POLAR_COORDINATE", 1); + q5c = new v5c("ID", 2); + } + function KEc() { + KEc = geb; + HEc = new LEc("EQUALLY", 0); + IEc = new LEc(_ye, 1); + JEc = new LEc("NORTH_SOUTH", 2); + } + function OQb() { + OQb = geb; + MQb = new kGd("debugSVG", (Geb(), false)); + NQb = new kGd("overlapsExisted", true); + } + function pid() { + pid = geb; + oid = ss((kid(), cD(WC(e3, 1), jwe, 285, 0, [jid, cid, gid, iid, did, eid, fid, hid]))); + } + function fGd() { + fGd = geb; + eGd = ss((aGd(), cD(WC(T5, 1), jwe, 245, 0, [_Fd, YFd, ZFd, XFd, $Fd, VFd, UFd, WFd]))); + } + function jpc() { + jpc = geb; + ipc = ss((epc(), cD(WC(hW, 1), jwe, 276, 0, [Zoc, apc, Yoc, dpc, _oc, $oc, cpc, bpc]))); + } + function $Yc() { + WYc(); + return cD(WC(u_, 1), jwe, 262, 0, [VYc, OYc, SYc, TYc, RYc, NYc, UYc, LYc, QYc, PYc, MYc]); + } + function $i(a, b, c) { + var d, e; + e = RD(Fn(a.d, b), 17); + d = RD(Fn(a.b, c), 17); + return !e || !d ? null : Ui(a, e.a, d.a); + } + function cgd(a, b) { + var c; + c = sgd(ygd(), a); + if (c) { + Ixd(b, (umd(), Tld), c); + return true; + } else { + return false; + } + } + function TMb(a) { + RMb(); + if (a.A.Hc((Qpd(), Mpd))) { + if (!a.B.Hc((dqd(), $pd))) { + return SMb(a); + } + } + return null; + } + function tUb() { + this.a = RD(iGd((yVb(), aVb)), 17).a; + this.c = Kfb(UD(iGd(rVb))); + this.b = Kfb(UD(iGd(nVb))); + } + function vkb(a) { + this.f = a; + this.e = new Qtb(this.f.i); + this.a = this.e; + this.b = skb(this); + this.d = this.f.g; + } + function Uge(a, b) { + Kfe.call(this, Ibb, a, b); + this.b = this; + this.a = pke(a.Dh(), vYd(this.e.Dh(), this.c)); + } + function bdc(a, b) { + var c, d; + for (d = new Anb(b.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 30); + a.a[c.p] = h2b(c); + } + } + function ofd(a, b) { + var c; + for (c = 0; c < b.j.c.length; c++) { + RD(Med(a, c), 21).Gc(RD(Med(b, c), 16)); + } + return a; + } + function peb(a, b, c, d) { + var e; + e = a.a.length; + c > e ? c = e : BFb(b, c + 1); + a.a = zhb(a.a, 0, b) + ("" + d) + yhb(a.a, c); + } + function ktb(a, b) { + a.a = Bdb(a.a, 1); + a.c = $wnd.Math.min(a.c, b); + a.b = $wnd.Math.max(a.b, b); + a.d = Bdb(a.d, b); + } + function wdc(a, b) { + return b < a.b.gc() ? RD(a.b.Xb(b), 10) : b == a.b.gc() ? a.a : RD(Vmb(a.e, b - a.b.gc() - 1), 10); + } + function rXc(a, b, c) { + return Qfb(cjd(jWc(a), new rjd(b.e.a, b.e.b)), cjd(jWc(a), new rjd(c.e.a, c.e.b))); + } + function WJc(a, b, c) { + return a == (RKc(), QKc) ? new PJc() : Kwb(b, 1) != 0 ? new ILc(c.length) : new pLc(c.length); + } + function qvd(a, b) { + var c, d, e; + c = a.th(); + if (c != null && a.wh()) { + for (d = 0, e = c.length; d < e; ++d) { + c[d].dj(b); + } + } + } + function QBb(a, b) { + var c, d, e; + c = a.c.Xe(); + for (e = b.Kc(); e.Ob(); ) { + d = e.Pb(); + a.a.Yd(c, d); + } + return a.b.Kb(c); + } + function n2b(a, b) { + var c, d; + c = a; + d = Y2b(c).e; + while (d) { + c = d; + if (c == b) { + return true; + } + d = Y2b(c).e; + } + return false; + } + function Edb(a) { + var b; + b = a.h; + if (b == 0) { + return a.l + a.m * gxe; + } + if (b == exe) { + return a.l + a.m * gxe - hxe; + } + return a; + } + function LHc(a, b, c) { + var d, e; + d = a.a.f[b.p]; + e = a.a.f[c.p]; + if (d < e) { + return -1; + } + if (d == e) { + return 0; + } + return 1; + } + function Wmc(a, b) { + var c, d; + for (d = new Anb(b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 72); + Rmb(a.d, c); + $mc(a, c); + } + } + function E6b(a, b) { + var c; + b.Ug("Edge and layer constraint edge reversal", 1); + c = D6b(a); + C6b(c); + b.Vg(); + } + function m6c(a, b) { + var c, d; + for (d = new dMd(a); d.e != d.i.gc(); ) { + c = RD(bMd(d), 27); + Byd(c, c.i + b.b, c.j + b.d); + } + } + function TNd(a) { + var b; + if (a.d == null) { + ++a.e; + a.f = 0; + SNd(null); + } else { + ++a.e; + b = a.d; + a.d = null; + a.f = 0; + SNd(b); + } + } + function Ys(a) { + var b; + if (a.a == a.b.a) { + throw Adb(new Dvb()); + } + b = a.a; + a.c = b; + a.a = RD(Hvb(a.a.e), 227); + return b; + } + function Ywd(a, b) { + var c; + if ((a.Db & b) != 0) { + c = Xwd(a, b); + return c == -1 ? a.Eb : SD(a.Eb)[c]; + } else { + return null; + } + } + function jBd(a, b) { + var c, d; + c = (d = new HYd(), d); + c.G = b; + !a.rb && (a.rb = new J5d(a, i7, a)); + WGd(a.rb, c); + return c; + } + function kBd(a, b) { + var c, d; + c = (d = new k1d(), d); + c.G = b; + !a.rb && (a.rb = new J5d(a, i7, a)); + WGd(a.rb, c); + return c; + } + function wBd(a, b, c, d) { + ZD(a.Cb, 184) && (RD(a.Cb, 184).tb = null); + PAd(a, c); + !!b && HXd(a, b); + d && a.gl(true); + } + function nJc(a, b) { + if (a.c) { + oJc(a, b, true); + FDb(new SDb(null, new Swb(b, 16)), new BJc(a)); + } + oJc(a, b, false); + } + function KRc(a) { + FRc(); + var b; + if (!Urb(ERc, a)) { + b = new HRc(); + b.a = a; + Xrb(ERc, a, b); + } + return RD(Vrb(ERc, a), 645); + } + function k3d(a) { + var b; + if (a.g > 1 || a.Ob()) { + ++a.a; + a.g = 0; + b = a.i; + a.Ob(); + return b; + } else { + throw Adb(new Dvb()); + } + } + function GRc(a) { + switch (a.a.g) { + case 1: + return new lSc(); + case 3: + return new VUc(); + default: + return new WRc(); + } + } + function fyd(a, b) { + switch (b) { + case 1: + return !!a.n && a.n.i != 0; + case 2: + return a.k != null; + } + return Cxd(a, b); + } + function Hdb(a) { + if (jxe < a && a < hxe) { + return a < 0 ? $wnd.Math.ceil(a) : $wnd.Math.floor(a); + } + return Edb(vD(a)); + } + function hfb(a) { + var b; + if (a < 128) { + return jfb(), b = ifb[a], !b && (b = ifb[a] = new bfb(a)), b; + } + return new bfb(a); + } + function PCb(b, c) { + var d; + try { + c.de(); + } catch (a) { + a = zdb(a); + if (ZD(a, 82)) { + d = a; + ZEb(b.c, d); + } else + throw Adb(a); + } + } + function Wdb(a) { + var b, c, d, e; + e = a; + d = 0; + if (e < 0) { + e += hxe; + d = exe; + } + c = eE(e / gxe); + b = eE(e - c * gxe); + return hD(b, c, d); + } + function dy(a) { + var b, c, d; + d = 0; + for (c = new Osb(a.a); c.a < c.c.a.length; ) { + b = Nsb(c); + a.b.Hc(b) && ++d; + } + return d; + } + function _u(a) { + var b, c, d; + b = 1; + for (d = a.Kc(); d.Ob(); ) { + c = d.Pb(); + b = 31 * b + (c == null ? 0 : tb(c)); + b = ~~b; + } + return b; + } + function kQb(a, b) { + var c; + if (!b) { + return a; + } + c = b.nf(); + c.dc() || (!a.q ? a.q = new Vsb(c) : Ld(a.q, c)); + return a; + } + function Mtb(a, b) { + var c; + c = a.a.get(b); + if (c === void 0) { + ++a.d; + } else { + Ctb(a.a, b); + --a.c; + ++a.b.g; + } + return c; + } + function a0b(a, b) { + var c, d, e; + c = b.p - a.p; + if (c == 0) { + d = a.f.a * a.f.b; + e = b.f.a * b.f.b; + return Qfb(d, e); + } + return c; + } + function Jfc(a, b) { + var c, d; + c = a.j; + d = b.j; + return c != d ? c.g - d.g : a.p == b.p ? 0 : c == (qpd(), Yod) ? a.p - b.p : b.p - a.p; + } + function dFc(a, b, c, d, e) { + bD(a.c[b.g], c.g, d); + bD(a.c[c.g], b.g, d); + bD(a.b[b.g], c.g, e); + bD(a.b[c.g], b.g, e); + } + function Jyb(a, b, c) { + this.b = (uFb(a), a); + this.d = (uFb(b), b); + this.e = (uFb(c), c); + this.c = this.d + ("" + this.e); + } + function Phe(a, b) { + this.b = a; + this.e = b; + this.d = b.j; + this.f = (nke(), RD(a, 69).xk()); + this.k = pke(b.e.Dh(), a); + } + function USc(a) { + this.n = new bnb(); + this.e = new Yub(); + this.j = new Yub(); + this.k = new bnb(); + this.f = new bnb(); + this.p = a; + } + function rVc(a) { + a.r = new _sb(); + a.w = new _sb(); + a.t = new bnb(); + a.i = new bnb(); + a.d = new _sb(); + a.a = new Tid(); + a.c = new Tsb(); + } + function mOb() { + mOb = geb; + lOb = new nOb("UP", 0); + iOb = new nOb(Zye, 1); + jOb = new nOb(Nye, 2); + kOb = new nOb(Oye, 3); + } + function xvc() { + xvc = geb; + vvc = new yvc("ONE_SIDED", 0); + wvc = new yvc("TWO_SIDED", 1); + uvc = new yvc("OFF", 2); + } + function B9c() { + B9c = geb; + z9c = new D9c("EQUAL_BETWEEN_STRUCTURES", 0); + A9c = new D9c("TO_ASPECT_RATIO", 1); + } + function hDc() { + hDc = geb; + gDc = ss((_Cc(), cD(WC(rX, 1), jwe, 265, 0, [ZCc, WCc, XCc, TCc, VCc, $Cc, YCc, SCc, UCc]))); + } + function iqd() { + iqd = geb; + hqd = ss((dqd(), cD(WC(I3, 1), jwe, 264, 0, [Ypd, $pd, Xpd, _pd, aqd, cqd, bqd, Zpd, Wpd]))); + } + function jod() { + jod = geb; + iod = ss((dod(), cD(WC(A3, 1), jwe, 95, 0, [Xnd, Wnd, Znd, cod, bod, aod, $nd, _nd, Ynd]))); + } + function nIb() { + nIb = geb; + mIb = ss((iIb(), cD(WC(xN, 1), jwe, 257, 0, [hIb, cIb, dIb, bIb, fIb, gIb, eIb, aIb, _Hb]))); + } + function oSc(a) { + var b; + b = RD(mQb(a, (Ywc(), hwc)), 64); + return a.k == (r3b(), m3b) && (b == (qpd(), ppd) || b == Xod); + } + function j0b(a, b, c) { + var d, e; + e = RD(mQb(a, (yCc(), RAc)), 75); + if (e) { + d = new Ejd(); + Ajd(d, 0, e); + Cjd(d, c); + ye(b, d); + } + } + function U2b(a, b, c) { + var d, e, f, g; + g = Y2b(a); + d = g.d; + e = g.c; + f = a.n; + b && (f.a = f.a - d.b - e.a); + c && (f.b = f.b - d.d - e.b); + } + function OOb(a, b) { + var c, d; + c = a.f.c.length; + d = b.f.c.length; + if (c < d) { + return -1; + } + if (c == d) { + return 0; + } + return 1; + } + function S0b(a) { + if (a.b.c.length != 0 && !!RD(Vmb(a.b, 0), 72).a) { + return RD(Vmb(a.b, 0), 72).a; + } + return R0b(a); + } + function fr(a) { + var b; + if (a) { + b = a; + if (b.dc()) { + throw Adb(new Dvb()); + } + return b.Xb(b.gc() - 1); + } + return Fr(a.Kc()); + } + function Dib(a) { + var b; + Ddb(a, 0) < 0 && (a = Qdb(a)); + return b = Ydb(Udb(a, 32)), 64 - (b != 0 ? ngb(b) : ngb(Ydb(a)) + 32); + } + function pBb() { + gBb(); + if (dBb) { + return new oBb(null); + } + return ZAb(_Ab(), "com.google.common.base.Strings"); + } + function eyd(a, b, c, d) { + if (c == 1) { + return !a.n && (a.n = new C5d(I4, a, 1, 7)), rLd(a.n, b, d); + } + return Bxd(a, b, c, d); + } + function eBd(a, b) { + var c, d; + d = (c = new _9d(), c); + PAd(d, b); + WGd((!a.A && (a.A = new iie(z7, a, 7)), a.A), d); + return d; + } + function xEd(a, b, c) { + var d, e, f, g; + f = null; + g = b; + e = wDd(g, iIe); + d = new JEd(a, c); + f = (LDd(d.a, d.b, e), e); + return f; + } + function iXd(a) { + var b; + if (!a.a || (a.Bb & 1) == 0 && a.a.Vh()) { + b = WVd(a); + ZD(b, 156) && (a.a = RD(b, 156)); + } + return a.a; + } + function Be(a, b) { + var c, d; + uFb(b); + for (d = b.Kc(); d.Ob(); ) { + c = d.Pb(); + if (!a.Hc(c)) { + return false; + } + } + return true; + } + function sD(a, b) { + var c, d, e; + c = a.l + b.l; + d = a.m + b.m + (c >> 22); + e = a.h + b.h + (d >> 22); + return hD(c & dxe, d & dxe, e & exe); + } + function DD(a, b) { + var c, d, e; + c = a.l - b.l; + d = a.m - b.m + (c >> 22); + e = a.h - b.h + (d >> 22); + return hD(c & dxe, d & dxe, e & exe); + } + function Jpc(a) { + var b, c; + Hpc(a); + for (c = new Anb(a.d); c.a < c.c.c.length; ) { + b = RD(ynb(c), 105); + !!b.i && Ipc(b); + } + } + function zdb(a) { + var b; + if (ZD(a, 82)) { + return a; + } + b = a && a.__java$exception; + if (!b) { + b = new Cz(a); + gA(b); + } + return b; + } + function BGd(a) { + if (ZD(a, 193)) { + return RD(a, 123); + } else if (!a) { + throw Adb(new Ogb(HIe)); + } else { + return null; + } + } + function skb(a) { + if (a.a.Ob()) { + return true; + } + if (a.a != a.e) { + return false; + } + a.a = new wtb(a.f.f); + return a.a.Ob(); + } + function kmb(a, b) { + if (b == null) { + return false; + } + while (a.a != a.b) { + if (pb(b, Imb(a))) { + return true; + } + } + return false; + } + function dHb(a, b) { + if (!a || !b || a == b) { + return false; + } + return tGb(a.d.c, b.d.c + b.d.b) && tGb(b.d.c, a.d.c + a.d.b); + } + function Tmb(a, b) { + var c, d; + c = b.Pc(); + d = c.length; + if (d == 0) { + return false; + } + YEb(a.c, a.c.length, c); + return true; + } + function NBb(a, b, c) { + var d, e; + for (e = b.vc().Kc(); e.Ob(); ) { + d = RD(e.Pb(), 44); + a.yc(d.ld(), d.md(), c); + } + return a; + } + function $Wc(a) { + var b, c, d; + b = new Yub(); + for (d = Sub(a.d, 0); d.b != d.d.c; ) { + c = RD(evb(d), 65); + Mub(b, c.c); + } + return b; + } + function Pdc(a, b) { + var c, d; + for (d = new Anb(a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 72); + pQb(c, (Ywc(), swc), b); + } + } + function L9c(a, b, c) { + var d, e; + for (e = new Anb(a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 27); + Byd(d, d.i + b, d.j + c); + } + } + function Nb(a, b) { + if (!a) { + throw Adb(new agb(hc("value already present: %s", cD(WC(jJ, 1), rve, 1, 5, [b])))); + } + } + function Aid(a, b, c, d, e) { + tid(); + return $wnd.Math.min(Lid(a, b, c, d, e), Lid(c, d, a, b, fjd(new rjd(e.a, e.b)))); + } + function Rdd(a, b, c, d) { + RD(c.b, 68); + RD(c.b, 68); + RD(d.b, 68); + RD(d.b, 68); + RD(d.b, 68); + Umb(d.a, new Wdd(a, b, d)); + } + function NGb(a, b) { + a.d == (Cmd(), ymd) || a.d == Bmd ? RD(b.a, 60).c.Fc(RD(b.b, 60)) : RD(b.b, 60).c.Fc(RD(b.a, 60)); + } + function Ued(a, b) { + var c; + c = ev(b.a.gc()); + FDb(PDb(new SDb(null, new Swb(b, 1)), a.i), new ffd(a, c)); + return c; + } + function fBd(a) { + var b, c; + c = (b = new _9d(), b); + PAd(c, "T"); + WGd((!a.d && (a.d = new iie(z7, a, 11)), a.d), c); + return c; + } + function cHd(a) { + var b, c, d, e; + b = 1; + for (c = 0, e = a.gc(); c < e; ++c) { + d = a.Vi(c); + b = 31 * b + (d == null ? 0 : tb(d)); + } + return b; + } + function cj(a, b, c, d) { + var e; + Pb(b, a.e.Rd().gc()); + Pb(c, a.c.Rd().gc()); + e = a.a[b][c]; + bD(a.a[b], c, d); + return e; + } + function cD(a, b, c, d, e) { + e.Rm = a; + e.Sm = b; + e.Tm = keb; + e.__elementTypeId$ = c; + e.__elementTypeCategory$ = d; + return e; + } + function vec() { + vec = geb; + uec = new xec(LAe, 0); + sec = new xec(oBe, 1); + tec = new xec(pBe, 2); + rec = new xec("BOTH", 3); + } + function enc() { + enc = geb; + anc = new fnc(Kye, 0); + bnc = new fnc(Nye, 1); + cnc = new fnc(Oye, 2); + dnc = new fnc("TOP", 3); + } + function nZb() { + nZb = geb; + jZb = new qZb("Q1", 0); + mZb = new qZb("Q4", 1); + kZb = new qZb("Q2", 2); + lZb = new qZb("Q3", 3); + } + function DFc() { + DFc = geb; + BFc = new EFc("OFF", 0); + CFc = new EFc("SINGLE_EDGE", 1); + AFc = new EFc("MULTI_EDGE", 2); + } + function ldd() { + ldd = geb; + kdd = new ndd("MINIMUM_SPANNING_TREE", 0); + jdd = new ndd("MAXIMUM_SPANNING_TREE", 1); + } + function hed() { + hed = geb; + fed = new sed(); + eed = new qed(); + } + function EGd(a) { + var b, c; + c = (bvd(), b = new Rzd(), b); + !!a && WGd((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a), c); + return c; + } + function N2c(a) { + var b, c, d, e; + e = new bnb(); + for (d = a.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 27); + b = Q2c(c); + Tmb(e, b); + } + return e; + } + function Jr(a, b) { + var c, d; + Rb(b, "predicate"); + for (d = 0; a.Ob(); d++) { + c = a.Pb(); + if (b.Lb(c)) { + return d; + } + } + return -1; + } + function xSd(a, b) { + var c, d; + d = 0; + if (a < 64 && a <= b) { + b = b < 64 ? b : 63; + for (c = a; c <= b; c++) { + d = Rdb(d, Sdb(1, c)); + } + } + return d; + } + function oQc(a, b) { + var c, d; + c = a.c; + d = b.e[a.p]; + if (d < c.a.c.length - 1) { + return RD(Vmb(c.a, d + 1), 10); + } + return null; + } + function Bob(a) { + yob(); + var b, c, d; + d = 0; + for (c = a.Kc(); c.Ob(); ) { + b = c.Pb(); + d = d + (b != null ? tb(b) : 0); + d = d | 0; + } + return d; + } + function wsb(a) { + var b, c, d; + b = RD(a.e && a.e(), 9); + d = (c = b.slice(), RD(dD(c, b), 9)); + return new Fsb(b, d, b.length); + } + function Bdd(a, b, c) { + var d; + akb(a.a); + Umb(c.i, new Mdd(a)); + d = new $Fb(RD(Wjb(a.a, b.b), 68)); + Add(a, d, b); + c.f = d; + } + function bgc(a) { + var b; + X0b(a, true); + b = Awe; + nQb(a, (yCc(), KBc)) && (b += RD(mQb(a, KBc), 17).a); + pQb(a, KBc, sgb(b)); + } + function hB(a) { + var b; + b = new dB(); + b.a = a; + b.b = fB(a); + b.c = $C(qJ, Nve, 2, 2, 6, 1); + b.c[0] = gB(a); + b.c[1] = gB(a); + return b; + } + function Z7b(a) { + var b, c, d; + c = a.n; + d = a.o; + b = a.d; + return new Uid(c.a - b.b, c.b - b.d, d.a + (b.b + b.c), d.b + (b.d + b.a)); + } + function UQb(a, b) { + if (!a || !b || a == b) { + return false; + } + return $y(a.b.c, b.b.c + b.b.b) < 0 && $y(b.b.c, a.b.c + a.b.b) < 0; + } + function Qnd(a) { + switch (a.g) { + case 1: + return Mnd; + case 2: + return Lnd; + case 3: + return Nnd; + default: + return Ond; + } + } + function mec(a) { + switch (RD(mQb(a, (yCc(), UAc)), 171).g) { + case 2: + case 4: + return true; + default: + return false; + } + } + function aHb(a, b, c) { + switch (c.g) { + case 2: + a.b = b; + break; + case 1: + a.c = b; + break; + case 4: + a.d = b; + break; + case 3: + a.a = b; + } + } + function Exd(a, b) { + switch (b) { + case 0: + !a.o && (a.o = new DVd((pvd(), mvd), X4, a, 0)); + a.o.c.$b(); + return; + } + $vd(a, b); + } + function Mad(a, b) { + var c, d; + c = RD(RD(Wjb(a.g, b.a), 42).a, 68); + d = RD(RD(Wjb(a.g, b.b), 42).a, 68); + return SQb(c, d); + } + function XGd(a, b, c) { + var d; + d = a.gc(); + if (b > d) + throw Adb(new aMd(b, d)); + a.Si() && (c = bHd(a, c)); + return a.Ei(b, c); + } + function eQb(a, b, c, d, e) { + var f, g; + for (g = c; g <= e; g++) { + for (f = b; f <= d; f++) { + PPb(a, f, g) || TPb(a, f, g, true, false); + } + } + } + function uid(a) { + tid(); + var b, c, d; + c = $C(l3, Nve, 8, 2, 0, 1); + d = 0; + for (b = 0; b < 2; b++) { + d += 0.5; + c[b] = Cid(d, a); + } + return c; + } + function xD(a) { + var b, c, d; + b = ~a.l + 1 & dxe; + c = ~a.m + (b == 0 ? 1 : 0) & dxe; + d = ~a.h + (b == 0 && c == 0 ? 1 : 0) & exe; + return hD(b, c, d); + } + function mgb(a) { + var b; + if (a < 0) { + return qwe; + } else if (a == 0) { + return 0; + } else { + for (b = hwe; (b & a) == 0; b >>= 1) + ; + return b; + } + } + function zSd(a, b, c) { + if (a >= 128) + return false; + return a < 64 ? Pdb(Cdb(Sdb(1, a), c), 0) : Pdb(Cdb(Sdb(1, a - 64), b), 0); + } + function oQb(a, b, c) { + return c == null ? (!a.q && (a.q = new Tsb()), _jb(a.q, b)) : (!a.q && (a.q = new Tsb()), Zjb(a.q, b, c)), a; + } + function pQb(a, b, c) { + c == null ? (!a.q && (a.q = new Tsb()), _jb(a.q, b)) : (!a.q && (a.q = new Tsb()), Zjb(a.q, b, c)); + return a; + } + function KTb(a) { + var b, c; + c = new gUb(); + kQb(c, a); + pQb(c, (JVb(), HVb), a); + b = new Tsb(); + MTb(a, c, b); + LTb(a, c, b); + return c; + } + function cIc(a) { + var b, c; + b = a.t - a.k[a.o.p] * a.d + a.j[a.o.p] > a.f; + c = a.u + a.e[a.o.p] * a.d > a.f * a.s * a.d; + return b || c; + } + function qmc(a, b) { + var c, d, e, f; + c = false; + d = a.a[b].length; + for (f = 0; f < d - 1; f++) { + e = f + 1; + c = c | rmc(a, b, f, e); + } + return c; + } + function Emc(a) { + var b, c, d, e; + for (c = a.a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + Jmc(a, b, (qpd(), npd)); + Jmc(a, b, Yod); + } + } + function tvc() { + tvc = geb; + svc = ss((ovc(), cD(WC(iX, 1), jwe, 259, 0, [fvc, hvc, ivc, jvc, kvc, lvc, nvc, evc, gvc, mvc]))); + } + function fEc() { + fEc = geb; + eEc = ss((aEc(), cD(WC(vX, 1), jwe, 243, 0, [$Dc, VDc, YDc, WDc, XDc, SDc, ZDc, _Dc, TDc, UDc]))); + } + function huc() { + huc = geb; + fuc = new iuc(LAe, 0); + euc = new iuc("INCOMING_ONLY", 1); + guc = new iuc("OUTGOING_ONLY", 2); + } + function HC() { + HC = geb; + GC = { "boolean": IC, "number": JC, "string": LC, "object": KC, "function": KC, "undefined": MC }; + } + function pfb() { + this.o = null; + this.k = null; + this.j = null; + this.d = null; + this.b = null; + this.n = null; + this.a = null; + } + function pj(a, b) { + this.c = a; + this.d = b; + this.b = this.d / this.c.c.Rd().gc() | 0; + this.a = this.d % this.c.c.Rd().gc(); + } + function R$d(a, b) { + this.b = a; + N$d.call(this, (RD(QHd(xYd((lTd(), kTd).o), 10), 19), b.i), b.g); + this.a = (lYd(), kYd); + } + function vB(a, b, c) { + this.q = new $wnd.Date(); + this.q.setFullYear(a + Owe, b, c); + this.q.setHours(0, 0, 0, 0); + mB(this, 0); + } + function ckb(a, b) { + mFb(a >= 0, "Negative initial capacity"); + mFb(b >= 0, "Non-positive load factor"); + akb(this); + } + function iib(a, b, c, d, e) { + var f, g; + g = a.length; + f = c.length; + if (b < 0 || d < 0 || e < 0 || b + e > g || d + e > f) { + throw Adb(new ueb()); + } + } + function zob(a, b) { + yob(); + var c, d, e, f, g; + g = false; + for (d = b, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + g = g | a.Fc(c); + } + return g; + } + function Wyb(a, b, c) { + var d, e; + d = new Fzb(b, c); + e = new Gzb(); + a.b = Uyb(a, a.b, d, e); + e.b || ++a.c; + a.b.b = false; + return e.d; + } + function omb(a) { + var b; + b = a.a[a.b]; + if (b == null) { + return null; + } + bD(a.a, a.b, null); + a.b = a.b + 1 & a.a.length - 1; + return b; + } + function oD(a) { + var b, c; + c = ngb(a.h); + if (c == 32) { + b = ngb(a.m); + return b == 32 ? ngb(a.l) + 32 : b + 20 - 10; + } else { + return c - 12; + } + } + function $5d(a) { + var b; + if (!a.c || (a.Bb & 1) == 0 && (a.c.Db & 64) != 0) { + b = WVd(a); + ZD(b, 90) && (a.c = RD(b, 29)); + } + return a.c; + } + function OGb(a) { + var b, c; + for (c = new Anb(a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 60); + b.d.c = -b.d.c - b.d.b; + } + IGb(a); + } + function zYb(a) { + var b, c; + for (c = new Anb(a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 86); + b.g.c = -b.g.c - b.g.b; + } + uYb(a); + } + function Jmc(a, b, c) { + var d, e, f, g; + g = aMc(b, c); + f = 0; + for (e = g.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 12); + Zjb(a.c, d, sgb(f++)); + } + } + function qMc(a, b, c) { + var d; + d = new bnb(); + sMc(a, b, d, (qpd(), Xod), true, false); + sMc(a, c, d, ppd, false, false); + return d; + } + function xjd(a) { + var b, c, d, e, f; + b = new pjd(); + for (d = a, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + b.a += c.a; + b.b += c.b; + } + return b; + } + function CEd(a, b, c) { + var d, e, f, g; + f = null; + g = b; + e = wDd(g, "labels"); + d = new fFd(a, c); + f = (bEd(d.a, d.b, e), e); + return f; + } + function Jee(a, b, c, d) { + var e; + e = Ree(a, b, c, d); + if (!e) { + e = Iee(a, c, d); + if (!!e && !Eee(a, b, e)) { + return null; + } + } + return e; + } + function Mee(a, b, c, d) { + var e; + e = See(a, b, c, d); + if (!e) { + e = Lee(a, c, d); + if (!!e && !Eee(a, b, e)) { + return null; + } + } + return e; + } + function Cb(a, b, c) { + Qb(b); + if (c.Ob()) { + Vhb(b, Fb(c.Pb())); + while (c.Ob()) { + Vhb(b, a.a); + Vhb(b, Fb(c.Pb())); + } + } + return b; + } + function Xb(a, b) { + var c; + for (c = 0; c < a.a.a.length; c++) { + if (!RD(kob(a.a, c), 178).Lb(b)) { + return false; + } + } + return true; + } + function fB(a) { + var b; + if (a == 0) { + return "Etc/GMT"; + } + if (a < 0) { + a = -a; + b = "Etc/GMT-"; + } else { + b = "Etc/GMT+"; + } + return b + iB(a); + } + function DA(a) { + var b; + if (a.b <= 0) { + return false; + } + b = qhb("MLydhHmsSDkK", Fhb(ihb(a.c, 0))); + return b > 1 || b >= 0 && a.b < 3; + } + function nD(a) { + var b, c, d; + b = ~a.l + 1 & dxe; + c = ~a.m + (b == 0 ? 1 : 0) & dxe; + d = ~a.h + (b == 0 && c == 0 ? 1 : 0) & exe; + a.l = b; + a.m = c; + a.h = d; + } + function Cob(a) { + yob(); + var b, c, d; + d = 1; + for (c = a.Kc(); c.Ob(); ) { + b = c.Pb(); + d = 31 * d + (b != null ? tb(b) : 0); + d = d | 0; + } + return d; + } + function kD(a, b, c, d, e) { + var f; + f = BD(a, b); + c && nD(f); + if (e) { + a = mD(a, b); + d ? eD = xD(a) : eD = hD(a.l, a.m, a.h); + } + return f; + } + function Qlc(a, b, c) { + a.g = Wlc(a, b, (qpd(), Xod), a.b); + a.d = Wlc(a, c, Xod, a.b); + if (a.g.c == 0 || a.d.c == 0) { + return; + } + Tlc(a); + } + function Rlc(a, b, c) { + a.g = Wlc(a, b, (qpd(), ppd), a.j); + a.d = Wlc(a, c, ppd, a.j); + if (a.g.c == 0 || a.d.c == 0) { + return; + } + Tlc(a); + } + function Xyd(a, b) { + switch (b) { + case 7: + return !!a.e && a.e.i != 0; + case 8: + return !!a.d && a.d.i != 0; + } + return wyd(a, b); + } + function STb(a, b) { + switch (b.g) { + case 0: + ZD(a.b, 641) || (a.b = new tUb()); + break; + case 1: + ZD(a.b, 642) || (a.b = new zUb()); + } + } + function tbd(a) { + switch (a.g) { + case 0: + return new _dd(); + default: + throw Adb(new agb(eGe + (a.f != null ? a.f : "" + a.g))); + } + } + function bdd(a) { + switch (a.g) { + case 0: + return new vdd(); + default: + throw Adb(new agb(eGe + (a.f != null ? a.f : "" + a.g))); + } + } + function LCc(a, b, c) { + return !QDb(CDb(new SDb(null, new Swb(a.c, 16)), new PAb(new gsd(b, c)))).Bd((xDb(), wDb)); + } + function mWc(a, b) { + return cjd(jWc(RD(mQb(b, (h_c(), H$c)), 88)), new rjd(a.c.e.a - a.b.e.a, a.c.e.b - a.b.e.b)) <= 0; + } + function dve(a, b) { + while (a.g == null && !a.c ? sId(a) : a.g == null || a.i != 0 && RD(a.g[a.i - 1], 51).Ob()) { + mFd(b, tId(a)); + } + } + function sYb(a) { + var b, c; + for (c = new Anb(a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 86); + b.f.$b(); + } + NYb(a.b, a); + tYb(a); + } + function Ijd(a) { + var b, c, d; + b = new Ejd(); + for (d = Sub(a, 0); d.b != d.d.c; ) { + c = RD(evb(d), 8); + hu(b, 0, new sjd(c)); + } + return b; + } + function DDb(a) { + var b; + LCb(a); + b = new IEb(); + if (a.a.Bd(b)) { + return Kvb(), new Ovb(uFb(b.a)); + } + return Kvb(), Kvb(), Jvb; + } + function Dxd(a, b, c) { + switch (b) { + case 0: + !a.o && (a.o = new DVd((pvd(), mvd), X4, a, 0)); + CVd(a.o, c); + return; + } + Wvd(a, b, c); + } + function bXc(a, b, c) { + this.g = a; + this.e = new pjd(); + this.f = new pjd(); + this.d = new Yub(); + this.b = new Yub(); + this.a = b; + this.c = c; + } + function V9c(a, b, c, d) { + this.b = new bnb(); + this.n = new bnb(); + this.i = d; + this.j = c; + this.s = a; + this.t = b; + this.r = 0; + this.d = 0; + } + function gHd(a, b) { + if (!a.Li() && b == null) { + throw Adb(new agb("The 'no null' constraint is violated")); + } + return b; + } + function ohb(a) { + var b, c; + b = 0; + for (c = 0; c < a.length; c++) { + b = (b << 5) - b + (BFb(c, a.length), a.charCodeAt(c)) | 0; + } + return b; + } + function Myb(a, b) { + var c, d, e; + e = a.b; + while (e) { + c = a.a.Ne(b, e.d); + if (c == 0) { + return e; + } + d = c < 0 ? 0 : 1; + e = e.a[d]; + } + return null; + } + function LBb(a, b, c) { + var d, e; + d = (Geb(), SSb(c) ? true : false); + e = RD(b.xc(d), 15); + if (!e) { + e = new bnb(); + b.zc(d, e); + } + e.Fc(c); + } + function q6c(a, b) { + var c, d; + c = RD(Gxd(a, (X7c(), A7c)), 17).a; + d = RD(Gxd(b, A7c), 17).a; + return c == d ? -1 : c < d ? -1 : c > d ? 1 : 0; + } + function ICc(a) { + Rmb(a.c, (hed(), fed)); + if (_y(a.a, Kfb(UD(iGd((QCc(), OCc)))))) { + return new asd(); + } + return new csd(a); + } + function fs(a) { + while (!a.d || !a.d.Ob()) { + if (!!a.b && !nmb(a.b)) { + a.d = RD(smb(a.b), 51); + } else { + return null; + } + } + return a.d; + } + function BVc(a) { + switch (a.g) { + case 1: + return EEe; + default: + case 2: + return 0; + case 3: + return Gze; + case 4: + return FEe; + } + } + function fte() { + Vse(); + var a; + if (Cse) + return Cse; + a = Zse(hte("M", true)); + a = $se(hte("M", false), a); + Cse = a; + return Cse; + } + function ttd() { + ttd = geb; + qtd = new utd("ELK", 0); + rtd = new utd("JSON", 1); + ptd = new utd("DOT", 2); + std = new utd("SVG", 3); + } + function TEc() { + TEc = geb; + SEc = new UEc("STACKED", 0); + QEc = new UEc("REVERSE_STACKED", 1); + REc = new UEc("SEQUENCED", 2); + } + function LZc() { + LZc = geb; + KZc = new MZc(LAe, 0); + JZc = new MZc("MIDDLE_TO_MIDDLE", 1); + IZc = new MZc("AVOID_OVERLAP", 2); + } + function sgc() { + sgc = geb; + qgc = new Lgc(); + rgc = new Ngc(); + pgc = new Dgc(); + ogc = new Pgc(); + ngc = new Hgc(); + mgc = (uFb(ngc), new nrb()); + } + function vnd() { + vnd = geb; + tnd = new A3b(15); + snd = new mGd((umd(), tld), tnd); + und = Qld; + ond = Ekd; + pnd = kld; + rnd = nld; + qnd = mld; + } + function wgd(a, b) { + var c, d, e, f, g; + for (d = b, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + g = new Ggd(a); + c.hf(g); + Bgd(g); + } + akb(a.f); + } + function xw(a, b) { + var c; + if (b === a) { + return true; + } + if (ZD(b, 229)) { + c = RD(b, 229); + return pb(a.Zb(), c.Zb()); + } + return false; + } + function Q_b(a, b) { + if (R_b(a, b)) { + Rc(a.b, RD(mQb(b, (Ywc(), ewc)), 21), b); + Mub(a.a, b); + return true; + } else { + return false; + } + } + function u6b(a) { + var b, c; + b = RD(mQb(a, (Ywc(), Iwc)), 10); + if (b) { + c = b.c; + Ymb(c.a, b); + c.a.c.length == 0 && Ymb(Y2b(b).b, c); + } + } + function dfc(a, b) { + if (nQb(a, (Ywc(), zwc)) && nQb(b, zwc)) { + return RD(mQb(b, zwc), 17).a - RD(mQb(a, zwc), 17).a; + } + return 0; + } + function ifc(a, b) { + if (nQb(a, (Ywc(), zwc)) && nQb(b, zwc)) { + return RD(mQb(a, zwc), 17).a - RD(mQb(b, zwc), 17).a; + } + return 0; + } + function kBb(a) { + if (dBb) { + return $C(JL, Xxe, 581, 0, 0, 1); + } + return RD(anb(a.a, $C(JL, Xxe, 581, a.a.c.length, 0, 1)), 856); + } + function yn(a, b, c, d) { + fn(); + return new Nx(cD(WC(UK, 1), Zve, 44, 0, [(ck(a, b), new gp(a, b)), (ck(c, d), new gp(c, d))])); + } + function bBd(a, b, c) { + var d, e; + e = (d = new q4d(), d); + yBd(e, b, c); + WGd((!a.q && (a.q = new C5d(s7, a, 11, 10)), a.q), e); + return e; + } + function xAd(a) { + var b, c, d, e; + e = meb(pAd, a); + c = e.length; + d = $C(qJ, Nve, 2, c, 6, 1); + for (b = 0; b < c; ++b) { + d[b] = e[b]; + } + return d; + } + function jwb(a, b) { + var c; + if (b * 2 + 1 >= a.b.c.length) { + return; + } + jwb(a, 2 * b + 1); + c = 2 * b + 2; + c < a.b.c.length && jwb(a, c); + kwb(a, b); + } + function sKc(a, b) { + var c, d; + for (d = Sub(a, 0); d.b != d.d.c; ) { + c = RD(evb(d), 219); + if (c.e.length > 0) { + b.Cd(c); + c.i && zKc(c); + } + } + } + function Ejb(a, b, c) { + var d; + for (d = c - 1; d >= 0 && a[d] === b[d]; d--) + ; + return d < 0 ? 0 : Ldb(Cdb(a[d], yxe), Cdb(b[d], yxe)) ? -1 : 1; + } + function it(a, b, c) { + var d, e; + this.g = a; + this.c = b; + this.a = this; + this.d = this; + e = Wp(c); + d = $C(UG, ewe, 227, e, 0, 1); + this.b = d; + } + function fQb(a, b, c, d, e) { + var f, g; + for (g = c; g <= e; g++) { + for (f = b; f <= d; f++) { + if (PPb(a, f, g)) { + return true; + } + } + } + return false; + } + function Dc(a, b) { + var c, d; + for (d = a.Zb().Cc().Kc(); d.Ob(); ) { + c = RD(d.Pb(), 16); + if (c.Hc(b)) { + return true; + } + } + return false; + } + function iu(a, b, c) { + var d, e, f, g; + uFb(c); + g = false; + f = a.fd(b); + for (e = c.Kc(); e.Ob(); ) { + d = e.Pb(); + f.Rb(d); + g = true; + } + return g; + } + function NMd(a, b) { + var c, d; + d = RD(Ywd(a.a, 4), 129); + c = $C(d6, IJe, 424, b, 0, 1); + d != null && hib(d, 0, c, 0, d.length); + return c; + } + function hSd(a, b) { + var c; + c = new lSd((a.f & 256) != 0, a.i, a.a, a.d, (a.f & 16) != 0, a.j, a.g, b); + a.e != null || (c.c = a); + return c; + } + function Tv(a, b) { + var c; + if (a === b) { + return true; + } else if (ZD(b, 85)) { + c = RD(b, 85); + return Rx(gn(a), c.vc()); + } + return false; + } + function Vjb(a, b, c) { + var d, e; + for (e = c.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 44); + if (a.Be(b, d.md())) { + return true; + } + } + return false; + } + function lmc(a, b, c) { + if (!a.d[b.p][c.p]) { + kmc(a, b, c); + a.d[b.p][c.p] = true; + a.d[c.p][b.p] = true; + } + return a.a[b.p][c.p]; + } + function vMc(a, b) { + var c; + if (!a || a == b || !nQb(b, (Ywc(), pwc))) { + return false; + } + c = RD(mQb(b, (Ywc(), pwc)), 10); + return c != a; + } + function Bhe(a) { + switch (a.i) { + case 2: { + return true; + } + case 1: { + return false; + } + case -1: { + ++a.c; + } + default: { + return a.$l(); + } + } + } + function Che(a) { + switch (a.i) { + case -2: { + return true; + } + case -1: { + return false; + } + case 1: { + --a.c; + } + default: { + return a._l(); + } + } + } + function bgb(a) { + oz.call(this, "The given string does not match the expected format for individual spacings.", a); + } + function J6c(a, b) { + var c; + b.Ug("Min Size Preprocessing", 1); + c = vsd(a); + Ixd(a, (X6c(), U6c), c.a); + Ixd(a, R6c, c.b); + b.Vg(); + } + function Djd(a) { + var b, c, d; + b = 0; + d = $C(l3, Nve, 8, a.b, 0, 1); + c = Sub(a, 0); + while (c.b != c.d.c) { + d[b++] = RD(evb(c), 8); + } + return d; + } + function Ajd(a, b, c) { + var d, e, f; + d = new Yub(); + for (f = Sub(c, 0); f.b != f.d.c; ) { + e = RD(evb(f), 8); + Mub(d, new sjd(e)); + } + iu(a, b, d); + } + function az(a, b) { + var c; + c = Bdb(a, b); + if (Ldb($db(a, b), 0) | Jdb($db(a, c), 0)) { + return c; + } + return Bdb(Sve, $db(Udb(c, 63), 1)); + } + function le(a, b) { + var c, d; + c = RD(a.d.Bc(b), 16); + if (!c) { + return null; + } + d = a.e.hc(); + d.Gc(c); + a.e.d -= c.gc(); + c.$b(); + return d; + } + function Dyb(a) { + var b; + b = a.a.c.length; + if (b > 0) { + return lyb(b - 1, a.a.c.length), Xmb(a.a, b - 1); + } else { + throw Adb(new Srb()); + } + } + function nFb(a, b, c) { + if (a > b) { + throw Adb(new agb(_xe + a + aye + b)); + } + if (a < 0 || b > c) { + throw Adb(new xeb(_xe + a + bye + b + Qxe + c)); + } + } + function yXd(a, b) { + if (a.D == null && a.B != null) { + a.D = a.B; + a.B = null; + } + JXd(a, b == null ? null : (uFb(b), b)); + !!a.C && a.hl(null); + } + function JCc(a, b) { + var c; + c = iGd((QCc(), OCc)) != null && b.Sg() != null ? Kfb(UD(b.Sg())) / Kfb(UD(iGd(OCc))) : 1; + Zjb(a.b, b, c); + } + function $Lc(a, b) { + var c, d; + d = a.c[b]; + if (d == 0) { + return; + } + a.c[b] = 0; + a.d -= d; + c = b + 1; + while (c < a.a.length) { + a.a[c] -= d; + c += c & -c; + } + } + function VHd(a) { + var b; + ++a.j; + if (a.i == 0) { + a.g = null; + } else if (a.i < a.g.length) { + b = a.g; + a.g = a.aj(a.i); + hib(b, 0, a.g, 0, a.i); + } + } + function Ned(a, b, c) { + if (b < 0) { + throw Adb(new veb(zGe + b)); + } + if (b < a.j.c.length) { + $mb(a.j, b, c); + } else { + Led(a, b); + Rmb(a.j, c); + } + } + function uhd(a) { + if (!a.a || (a.a.i & 8) == 0) { + throw Adb(new dgb("Enumeration class expected for layout option " + a.f)); + } + } + function y1d(a) { + var b; + b = (!a.a && (a.a = new C5d(l7, a, 9, 5)), a.a); + if (b.i != 0) { + return N1d(RD(QHd(b, 0), 694)); + } + return null; + } + function yr(a) { + var b; + Qb(a); + Mb(true, "numberToAdvance must be nonnegative"); + for (b = 0; b < 0 && gs(a); b++) { + hs(a); + } + return b; + } + function eSb() { + eSb = geb; + bSb = (VRb(), URb); + aSb = new lGd(vze, bSb); + _Rb = new jGd(wze); + cSb = new jGd(xze); + dSb = new jGd(yze); + } + function s_c() { + s_c = geb; + r_c = new t_c(MAe, 0); + p_c = new t_c(QEe, 1); + q_c = new t_c("FAN", 2); + o_c = new t_c("CONSTRAINT", 3); + } + function g4c() { + g4c = geb; + d4c = new i4c(LAe, 0); + e4c = new i4c("RADIAL_COMPACTION", 1); + f4c = new i4c("WEDGE_COMPACTION", 2); + } + function lFc() { + lFc = geb; + iFc = new mFc("CONSERVATIVE", 0); + jFc = new mFc("CONSERVATIVE_SOFT", 1); + kFc = new mFc("SLOPPY", 2); + } + function xBb() { + xBb = geb; + uBb = new yBb("CONCURRENT", 0); + vBb = new yBb("IDENTITY_FINISH", 1); + wBb = new yBb("UNORDERED", 2); + } + function NXb() { + NXb = geb; + LXb = Wx(cD(WC(s3, 1), jwe, 88, 0, [(Cmd(), ymd), zmd])); + MXb = Wx(cD(WC(s3, 1), jwe, 88, 0, [Bmd, xmd])); + } + function rb(a) { + return bE(a) ? qJ : _D(a) ? VI : $D(a) ? QI : YD(a) ? a.Rm : aD(a) ? a.Rm : a.Rm || Array.isArray(a) && WC(hI, 1) || hI; + } + function Qje(a) { + return !a ? null : (a.i & 1) != 0 ? a == xdb ? QI : a == kE ? bJ : a == jE ? ZI : a == iE ? VI : a == lE ? eJ : a == wdb ? lJ : a == gE ? RI : SI : a; + } + function CIb(a) { + if (a.c != a.b.b || a.i != a.g.b) { + aFb(a.a.c, 0); + Tmb(a.a, a.b); + Tmb(a.a, a.g); + a.c = a.b.b; + a.i = a.g.b; + } + return a.a; + } + function vmb(a, b) { + var c, d; + c = a.a.length - 1; + while (b != a.b) { + d = b - 1 & c; + bD(a.a, b, a.a[d]); + b = d; + } + bD(a.a, a.b, null); + a.b = a.b + 1 & c; + } + function umb(a, b) { + var c, d; + c = a.a.length - 1; + a.c = a.c - 1 & c; + while (b != a.c) { + d = b + 1 & c; + bD(a.a, b, a.a[d]); + b = d; + } + bD(a.a, a.c, null); + } + function Smb(a, b, c) { + var d, e; + wFb(b, a.c.length); + d = c.Pc(); + e = d.length; + if (e == 0) { + return false; + } + YEb(a.c, b, d); + return true; + } + function otb(a, b, c) { + var d, e, f, g; + for (e = c, f = 0, g = e.length; f < g; ++f) { + d = e[f]; + if (a.b.Be(b, d.ld())) { + return d; + } + } + return null; + } + function Tnb(a) { + var b, c, d, e, f; + f = 1; + for (c = a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + f = 31 * f + (b != null ? tb(b) : 0); + f = f | 0; + } + return f; + } + function ss(a) { + var b, c, d, e, f; + b = {}; + for (d = a, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + b[":" + (c.f != null ? c.f : "" + c.g)] = c; + } + return b; + } + function tSd(a) { + var b, c; + if (a == null) + return null; + for (b = 0, c = a.length; b < c; b++) { + if (!GSd(a[b])) + return a[b]; + } + return null; + } + function gKb(a, b) { + if (!a) { + return 0; + } + if (b && !a.j) { + return 0; + } + if (ZD(a, 127)) { + if (RD(a, 127).a.b == 0) { + return 0; + } + } + return a.jf(); + } + function hKb(a, b) { + if (!a) { + return 0; + } + if (b && !a.k) { + return 0; + } + if (ZD(a, 127)) { + if (RD(a, 127).a.a == 0) { + return 0; + } + } + return a.kf(); + } + function orc(a, b) { + if (nQb(a, (Ywc(), zwc)) && nQb(b, zwc)) { + return hgb(RD(mQb(a, zwc), 17).a, RD(mQb(b, zwc), 17).a); + } + return 0; + } + function EHc(a) { + var b, c, d; + d = 0; + for (c = new is(Mr(a.a.Kc(), new ir())); gs(c); ) { + b = RD(hs(c), 18); + b.c.i == b.d.i || ++d; + } + return d; + } + function Gad(a, b) { + var c, d, e; + e = b - a.f; + for (d = new Anb(a.d); d.a < d.c.c.length; ) { + c = RD(ynb(d), 315); + fad(c, c.e, c.f + e); + } + a.f = b; + } + function YVd(a, b) { + var c, d, e; + d = a.Yk(b, null); + e = null; + if (b) { + e = (jTd(), c = new s2d(), c); + l2d(e, a.r); + } + d = XVd(a, e, d); + !!d && d.oj(); + } + function P0b(a, b) { + var c, d, e; + c = a; + e = 0; + do { + if (c == b) { + return e; + } + d = c.e; + if (!d) { + throw Adb(new _fb()); + } + c = Y2b(d); + ++e; + } while (true); + } + function uRb(a) { + var b, c, d, e; + d = a.b.a; + for (c = d.a.ec().Kc(); c.Ob(); ) { + b = RD(c.Pb(), 567); + e = new DSb(b, a.e, a.f); + Rmb(a.g, e); + } + } + function DZb(a) { + var b; + b = new XZb(a); + t$b(a.a, BZb, new mob(cD(WC(wQ, 1), rve, 382, 0, [b]))); + !!b.d && Rmb(b.f, b.d); + return b.f; + } + function M2b(a, b) { + var c; + for (c = 0; c < b.length; c++) { + if (a == (BFb(c, b.length), b.charCodeAt(c))) { + return true; + } + } + return false; + } + function BSd(a, b) { + return b < a.length && (BFb(b, a.length), a.charCodeAt(b) != 63) && (BFb(b, a.length), a.charCodeAt(b) != 35); + } + function trc(a, b, c, d) { + nrc(this); + this.c = $C(jR, WAe, 10, a.a.c.length, 0, 1); + this.e = b; + anb(a.a, this.c); + this.f = c; + this.b = d; + } + function Cz(a) { + Az(); + ez(this); + gz(this); + this.e = a; + hz(this, a); + this.g = a == null ? vve : jeb(a); + this.a = ""; + this.b = a; + this.a = ""; + } + function Pad() { + this.a = new Qad(); + this.f = new Sad(this); + this.b = new Uad(this); + this.i = new Wad(this); + this.e = new Yad(this); + } + function Ks() { + Js.call(this, new hub(Sv(16))); + dk(2, Mve); + this.b = 2; + this.a = new ct(null, null, 0, null); + Ss(this.a, this.a); + } + function NC(a) { + HC(); + throw Adb(new aC("Unexpected typeof result '" + a + "'; please report this bug to the GWT team")); + } + function AVc(a, b, c) { + if ($wnd.Math.abs(b - a) < DEe || $wnd.Math.abs(c - a) < DEe) { + return true; + } + return b - a > DEe ? a - c > DEe : c - a > DEe; + } + function vjd(a, b) { + var c; + for (c = 0; c < b.length; c++) { + if (a == (BFb(c, b.length), b.charCodeAt(c))) { + return true; + } + } + return false; + } + function HSd(a) { + var b, c; + if (a == null) + return false; + for (b = 0, c = a.length; b < c; b++) { + if (!GSd(a[b])) + return false; + } + return true; + } + function M8c(a, b) { + var c, d, e; + d = false; + c = b.q.d; + if (b.d < a.b) { + e = dad(b.q, a.b); + if (b.q.d > e) { + ead(b.q, e); + d = c != b.q.d; + } + } + return d; + } + function C3c(a, b) { + var c, d, e, f, g, h, i, j; + i = b.i; + j = b.j; + d = a.f; + e = d.i; + f = d.j; + g = i - e; + h = j - f; + c = $wnd.Math.sqrt(g * g + h * h); + return c; + } + function pBd(a, b) { + var c, d; + d = Hvd(a); + if (!d) { + c = (gSd(), nSd(b)); + d = new Sde(c); + WGd(d.El(), a); + } + return d; + } + function Sc(a, b) { + var c, d; + c = RD(a.c.Bc(b), 16); + if (!c) { + return a.jc(); + } + d = a.hc(); + d.Gc(c); + a.d -= c.gc(); + c.$b(); + return a.mc(d); + } + function tKc(a, b) { + var c, d; + d = Kwb(a.d, 1) != 0; + c = true; + while (c) { + c = false; + c = b.c.mg(b.e, d); + c = c | DKc(a, b, d, false); + d = !d; + } + yKc(a); + } + function omc(a, b, c, d) { + var e, f; + a.a = b; + f = d ? 0 : 1; + a.f = (e = new mmc(a.c, a.a, c, f), new Pmc(c, a.a, e, a.e, a.b, a.c == (RKc(), PKc))); + } + function Imb(a) { + var b; + sFb(a.a != a.b); + b = a.d.a[a.a]; + zmb(a.b == a.d.c && b != null); + a.c = a.a; + a.a = a.a + 1 & a.d.a.length - 1; + return b; + } + function Vib(a) { + var b; + if (a.c != 0) { + return a.c; + } + for (b = 0; b < a.a.length; b++) { + a.c = a.c * 33 + (a.a[b] & -1); + } + a.c = a.c * a.e; + return a.c; + } + function Oue(a) { + var b; + if (!(a.c.c < 0 ? a.a >= a.c.b : a.a <= a.c.b)) { + throw Adb(new Dvb()); + } + b = a.a; + a.a += a.c.c; + ++a.b; + return sgb(b); + } + function h5b(a) { + var b; + b = new y2b(a.a); + kQb(b, a); + pQb(b, (Ywc(), Awc), a); + b.o.a = a.g; + b.o.b = a.f; + b.n.a = a.i; + b.n.b = a.j; + return b; + } + function tVc(a) { + return (qpd(), hpd).Hc(a.j) ? Kfb(UD(mQb(a, (Ywc(), Swc)))) : xjd(cD(WC(l3, 1), Nve, 8, 0, [a.i.n, a.n, a.a])).b; + } + function ZJc(a) { + var b; + b = vfd(XJc); + RD(mQb(a, (Ywc(), kwc)), 21).Hc((ovc(), kvc)) && pfd(b, (sXb(), pXb), (hcc(), Ybc)); + return b; + } + function M2c(a) { + var b, c, d, e; + e = new _sb(); + for (d = new Anb(a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 27); + b = P2c(c); + ye(e, b); + } + return e; + } + function hIc(a) { + var b, c; + for (c = new Anb(a.r); c.a < c.c.c.length; ) { + b = RD(ynb(c), 10); + if (a.n[b.p] <= 0) { + return b; + } + } + return null; + } + function LGb(a, b, c) { + var d, e; + for (e = b.a.a.ec().Kc(); e.Ob(); ) { + d = RD(e.Pb(), 60); + if (MGb(a, d, c)) { + return true; + } + } + return false; + } + function Rcc(a, b, c, d) { + var e, f; + for (f = a.Kc(); f.Ob(); ) { + e = RD(f.Pb(), 72); + e.n.a = b.a + (d.a - e.o.a) / 2; + e.n.b = b.b; + b.b += e.o.b + c; + } + } + function hNb(a, b, c) { + var d; + d = new rMb(a, b); + Rc(a.r, b.ag(), d); + if (c && !Rod(a.u)) { + d.c = new TKb(a.d); + Umb(b.Rf(), new kNb(d)); + } + } + function Ddb(a, b) { + var c; + if (Kdb(a) && Kdb(b)) { + c = a - b; + if (!isNaN(c)) { + return c; + } + } + return uD(Kdb(a) ? Wdb(a) : a, Kdb(b) ? Wdb(b) : b); + } + function Iid(a, b) { + var c, d, e; + e = 1; + c = a; + d = b >= 0 ? b : -b; + while (d > 0) { + if (d % 2 == 0) { + c *= c; + d = d / 2 | 0; + } else { + e *= c; + d -= 1; + } + } + return b < 0 ? 1 / e : e; + } + function Jid(a, b) { + var c, d, e; + e = 1; + c = a; + d = b >= 0 ? b : -b; + while (d > 0) { + if (d % 2 == 0) { + c *= c; + d = d / 2 | 0; + } else { + e *= c; + d -= 1; + } + } + return b < 0 ? 1 / e : e; + } + function Vvd(a, b) { + var c, d, e, f; + f = (e = a ? Hvd(a) : null, Pje((d = b, e ? e.Gl() : null, d))); + if (f == b) { + c = Hvd(a); + !!c && c.Gl(); + } + return f; + } + function g2d(a, b, c) { + var d, e; + e = a.f; + a.f = b; + if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { + d = new N3d(a, 1, 0, e, b); + !c ? c = d : c.nj(d); + } + return c; + } + function e2d(a, b, c) { + var d, e; + e = a.b; + a.b = b; + if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { + d = new N3d(a, 1, 3, e, b); + !c ? c = d : c.nj(d); + } + return c; + } + function rAd(a, b, c) { + var d, e; + e = a.a; + a.a = b; + if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { + d = new N3d(a, 1, 1, e, b); + !c ? c = d : c.nj(d); + } + return c; + } + function SNd(a) { + var b, c; + if (a != null) { + for (c = 0; c < a.length; ++c) { + b = a[c]; + if (b) { + RD(b.g, 379); + b.i; + } + } + } + } + function Vnb(a, b, c, d, e, f, g, h) { + var i; + i = c; + while (f < g) { + i >= d || b < c && h.Ne(a[b], a[i]) <= 0 ? bD(e, f++, a[b++]) : bD(e, f++, a[i++]); + } + } + function Njb(a, b, c, d, e) { + if (b == 0 || d == 0) { + return; + } + b == 1 ? e[d] = Pjb(e, c, d, a[0]) : d == 1 ? e[b] = Pjb(e, a, b, c[0]) : Ojb(a, c, e, b, d); + } + function w9c(a, b, c) { + var d, e, f, g; + d = c / a.gc(); + e = 0; + for (g = a.Kc(); g.Ob(); ) { + f = RD(g.Pb(), 186); + Gad(f, f.f + d * e); + Dad(f, b, d); + ++e; + } + } + function cad(a) { + var b, c, d; + d = 0; + for (c = new Anb(a.a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 172); + d = $wnd.Math.max(d, b.g); + } + return d; + } + function EKc(a) { + var b, c, d; + for (d = new Anb(a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 219); + b = c.c.kg() ? c.f : c.a; + !!b && MLc(b, c.j); + } + } + function lDc() { + lDc = geb; + iDc = new nDc("DUMMY_NODE_OVER", 0); + jDc = new nDc("DUMMY_NODE_UNDER", 1); + kDc = new nDc("EQUAL", 2); + } + function mqd() { + mqd = geb; + kqd = new nqd("PARALLEL_NODE", 0); + jqd = new nqd("HIERARCHICAL_NODE", 1); + lqd = new nqd("ROOT_NODE", 2); + } + function Fnd() { + Fnd = geb; + Dnd = new Gnd("INHERIT", 0); + Cnd = new Gnd("INCLUDE_CHILDREN", 1); + End = new Gnd("SEPARATE_CHILDREN", 2); + } + function hyd(a, b) { + switch (b) { + case 1: + !a.n && (a.n = new C5d(I4, a, 1, 7)); + sLd(a.n); + return; + case 2: + jyd(a, null); + return; + } + Exd(a, b); + } + function c9c(a) { + switch (a.g) { + case 0: + return new R8c(); + case 1: + return new o9c(); + case 2: + return new X8c(); + default: + return null; + } + } + function eq(a) { + _l(); + switch (a.c) { + case 0: + return Px(), Ox; + case 1: + return new Fy(Ir(new Osb(a))); + default: + return new dq(a); + } + } + function go(a) { + _l(); + switch (a.gc()) { + case 0: + return Px(), Ox; + case 1: + return new Fy(a.Kc().Pb()); + default: + return new Qx(a); + } + } + function Pm(a) { + var b; + switch (a.gc()) { + case 0: + return sm; + case 1: + return new Dy(Qb(a.Xb(0))); + default: + b = a; + return new Kx(b); + } + } + function sgb(a) { + var b, c; + if (a > -129 && a < 128) { + return ugb(), b = a + 128, c = tgb[b], !c && (c = tgb[b] = new fgb(a)), c; + } + return new fgb(a); + } + function bhb(a) { + var b, c; + if (a > -129 && a < 128) { + return dhb(), b = a + 128, c = chb[b], !c && (c = chb[b] = new Xgb(a)), c; + } + return new Xgb(a); + } + function M$b(a, b) { + var c; + if (a.a.c.length > 0) { + c = RD(Vmb(a.a, a.a.c.length - 1), 579); + if (Q_b(c, b)) { + return; + } + } + Rmb(a.a, new S_b(b)); + } + function Ekc(a) { + lkc(); + var b, c; + b = a.d.c - a.e.c; + c = RD(a.g, 154); + Umb(c.b, new Ykc(b)); + Umb(c.c, new $kc(b)); + xgb(c.i, new alc(b)); + } + function Mlc(a) { + var b; + b = new bib(); + b.a += "VerticalSegment "; + Yhb(b, a.e); + b.a += " "; + Zhb(b, Eb(new Gb(), new Anb(a.k))); + return b.a; + } + function Fmc(a, b) { + var c, d, e; + c = 0; + for (e = b3b(a, b).Kc(); e.Ob(); ) { + d = RD(e.Pb(), 12); + c += mQb(d, (Ywc(), Iwc)) != null ? 1 : 0; + } + return c; + } + function VTc(a, b, c) { + var d, e, f; + d = 0; + for (f = Sub(a, 0); f.b != f.d.c; ) { + e = Kfb(UD(evb(f))); + if (e > c) { + break; + } else + e >= b && ++d; + } + return d; + } + function Wv(b, c) { + Qb(b); + try { + return b._b(c); + } catch (a) { + a = zdb(a); + if (ZD(a, 212) || ZD(a, 169)) { + return false; + } else + throw Adb(a); + } + } + function Nk(b, c) { + Qb(b); + try { + return b.Hc(c); + } catch (a) { + a = zdb(a); + if (ZD(a, 212) || ZD(a, 169)) { + return false; + } else + throw Adb(a); + } + } + function Ok(b, c) { + Qb(b); + try { + return b.Mc(c); + } catch (a) { + a = zdb(a); + if (ZD(a, 212) || ZD(a, 169)) { + return false; + } else + throw Adb(a); + } + } + function Xv(b, c) { + Qb(b); + try { + return b.xc(c); + } catch (a) { + a = zdb(a); + if (ZD(a, 212) || ZD(a, 169)) { + return null; + } else + throw Adb(a); + } + } + function Yv(b, c) { + Qb(b); + try { + return b.Bc(c); + } catch (a) { + a = zdb(a); + if (ZD(a, 212) || ZD(a, 169)) { + return null; + } else + throw Adb(a); + } + } + function aMc(a, b) { + switch (b.g) { + case 2: + case 1: + return b3b(a, b); + case 3: + case 4: + return hv(b3b(a, b)); + } + return yob(), yob(), vob; + } + function QAd(a) { + var b; + if ((a.Db & 64) != 0) + return awd(a); + b = new Shb(awd(a)); + b.a += " (name: "; + Nhb(b, a.zb); + b.a += ")"; + return b.a; + } + function Fgd(a) { + var b; + b = RD(cub(a.c.c, ""), 233); + if (!b) { + b = new fgd(ogd(ngd(new pgd(), ""), "Other")); + dub(a.c.c, "", b); + } + return b; + } + function hBd(a, b, c) { + var d, e; + e = a.sb; + a.sb = b; + if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { + d = new N3d(a, 1, 4, e, b); + !c ? c = d : c.nj(d); + } + return c; + } + function ZVd(a, b, c) { + var d, e; + e = a.r; + a.r = b; + if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { + d = new N3d(a, 1, 8, e, a.r); + !c ? c = d : c.nj(d); + } + return c; + } + function q5d(a, b, c) { + var d, e; + d = new P3d(a.e, 4, 13, (e = b.c, e ? e : (JTd(), wTd)), null, fZd(a, b), false); + !c ? c = d : c.nj(d); + return c; + } + function p5d(a, b, c) { + var d, e; + d = new P3d(a.e, 3, 13, null, (e = b.c, e ? e : (JTd(), wTd)), fZd(a, b), false); + !c ? c = d : c.nj(d); + return c; + } + function Oee(a, b) { + var c, d; + c = RD(b, 691); + d = c.el(); + !d && c.fl(d = ZD(b, 90) ? new afe(a, RD(b, 29)) : new mfe(a, RD(b, 156))); + return d; + } + function KHd(a, b, c) { + var d; + a._i(a.i + 1); + d = a.Zi(b, c); + b != a.i && hib(a.g, b, a.g, b + 1, a.i - b); + bD(a.g, b, d); + ++a.i; + a.Mi(b, c); + a.Ni(); + } + function Hyb(a, b) { + var c; + if (b.a) { + c = b.a.a.length; + !a.a ? a.a = new dib(a.d) : Zhb(a.a, a.b); + Xhb(a.a, b.a, b.d.length, c); + } + return a; + } + function wib(a, b) { + var c; + a.c = b; + a.a = pjb(b); + a.a < 54 && (a.f = (c = b.d > 1 ? DFb(b.a[0], b.a[1]) : DFb(b.a[0], 0), Xdb(b.e > 0 ? c : Odb(c)))); + } + function MDb(a, b) { + var c; + c = new IEb(); + if (!a.a.Bd(c)) { + LCb(a); + return Kvb(), Kvb(), Jvb; + } + return Kvb(), new Ovb(uFb(LDb(a, c.a, b))); + } + function t9b(a, b) { + var c; + if (a.c.length == 0) { + return; + } + c = RD(anb(a, $C(jR, WAe, 10, a.c.length, 0, 1)), 199); + Znb(c, new F9b()); + q9b(c, b); + } + function z9b(a, b) { + var c; + if (a.c.length == 0) { + return; + } + c = RD(anb(a, $C(jR, WAe, 10, a.c.length, 0, 1)), 199); + Znb(c, new K9b()); + q9b(c, b); + } + function pb(a, b) { + return bE(a) ? lhb(a, b) : _D(a) ? Lfb(a, b) : $D(a) ? (uFb(a), dE(a) === dE(b)) : YD(a) ? a.Fb(b) : aD(a) ? mb(a, b) : Hz(a, b); + } + function Cvd(a, b, c) { + if (b < 0) { + Tvd(a, c); + } else { + if (!c.rk()) { + throw Adb(new agb(KHe + c.xe() + LHe)); + } + RD(c, 69).wk().Ek(a, a.hi(), b); + } + } + function xFb(a, b, c) { + if (a < 0 || b > c) { + throw Adb(new veb(_xe + a + bye + b + ", size: " + c)); + } + if (a > b) { + throw Adb(new agb(_xe + a + aye + b)); + } + } + function oVd(a) { + var b; + if ((a.Db & 64) != 0) + return awd(a); + b = new Shb(awd(a)); + b.a += " (source: "; + Nhb(b, a.d); + b.a += ")"; + return b.a; + } + function JSd(a) { + if (a >= 65 && a <= 70) { + return a - 65 + 10; + } + if (a >= 97 && a <= 102) { + return a - 97 + 10; + } + if (a >= 48 && a <= 57) { + return a - 48; + } + return 0; + } + function lMb(a) { + hMb(); + var b, c, d, e; + for (c = nMb(), d = 0, e = c.length; d < e; ++d) { + b = c[d]; + if (Wmb(b.a, a, 0) != -1) { + return b; + } + } + return gMb; + } + function zde(a, b) { + var c, d, e, f; + b.ej(a.a); + f = RD(Ywd(a.a, 8), 2035); + if (f != null) { + for (c = f, d = 0, e = c.length; d < e; ++d) { + null.Um(); + } + } + } + function _Vd(a, b) { + var c; + c = (a.Bb & 256) != 0; + b ? a.Bb |= 256 : a.Bb &= -257; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new Q3d(a, 1, 2, c, b)); + } + function EYd(a, b) { + var c; + c = (a.Bb & 256) != 0; + b ? a.Bb |= 256 : a.Bb &= -257; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new Q3d(a, 1, 8, c, b)); + } + function j1d(a, b) { + var c; + c = (a.Bb & 256) != 0; + b ? a.Bb |= 256 : a.Bb &= -257; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new Q3d(a, 1, 8, c, b)); + } + function aWd(a, b) { + var c; + c = (a.Bb & 512) != 0; + b ? a.Bb |= 512 : a.Bb &= -513; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new Q3d(a, 1, 3, c, b)); + } + function FYd(a, b) { + var c; + c = (a.Bb & 512) != 0; + b ? a.Bb |= 512 : a.Bb &= -513; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new Q3d(a, 1, 9, c, b)); + } + function m2d(a, b, c) { + var d, e; + e = a.a; + a.a = b; + if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { + d = new N3d(a, 1, 5, e, a.a); + !c ? c = d : oKd(c, d); + } + return c; + } + function kle(a, b) { + var c; + if (a.b == -1 && !!a.a) { + c = a.a.pk(); + a.b = !c ? BYd(a.c.Dh(), a.a) : a.c.Hh(a.a.Lj(), c); + } + return a.c.yh(a.b, b); + } + function t0d(a, b) { + var c, d; + for (d = new dMd(a); d.e != d.i.gc(); ) { + c = RD(bMd(d), 29); + if (dE(b) === dE(c)) { + return true; + } + } + return false; + } + function a9b(a) { + var b, c; + b = a.k; + if (b == (r3b(), m3b)) { + c = RD(mQb(a, (Ywc(), hwc)), 64); + return c == (qpd(), Yod) || c == npd; + } + return false; + } + function QCb(a) { + var b; + b = RCb(a); + if (Gdb(b.a, 0)) { + return Tvb(), Tvb(), Svb; + } + return Tvb(), new Yvb(Idb(b.a, 0) ? Orb(b) / Xdb(b.a) : 0); + } + function Aib(a, b) { + this.e = b; + this.a = Dib(a); + this.a < 54 ? this.f = Xdb(a) : this.c = (Pib(), Ddb(a, 0) >= 0 ? jjb(a) : Xib(jjb(Odb(a)))); + } + function G0b(a, b, c, d, e, f) { + this.e = new bnb(); + this.f = (BEc(), AEc); + Rmb(this.e, a); + this.d = b; + this.a = c; + this.b = d; + this.f = e; + this.c = f; + } + function bQb(a, b, c) { + a.n = YC(lE, [Nve, rxe], [376, 28], 14, [c, eE($wnd.Math.ceil(b / 32))], 2); + a.o = b; + a.p = c; + a.j = b - 1 >> 1; + a.k = c - 1 >> 1; + } + function ggb(a) { + a -= a >> 1 & 1431655765; + a = (a >> 2 & 858993459) + (a & 858993459); + a = (a >> 4) + a & 252645135; + a += a >> 8; + a += a >> 16; + return a & 63; + } + function C4d(a, b) { + var c, d; + for (d = new dMd(a); d.e != d.i.gc(); ) { + c = RD(bMd(d), 142); + if (dE(b) === dE(c)) { + return true; + } + } + return false; + } + function Iee(a, b, c) { + var d, e, f; + f = (e = N5d(a.b, b), e); + if (f) { + d = RD(tfe(Pee(a, f), ""), 29); + if (d) { + return Ree(a, d, b, c); + } + } + return null; + } + function Lee(a, b, c) { + var d, e, f; + f = (e = N5d(a.b, b), e); + if (f) { + d = RD(tfe(Pee(a, f), ""), 29); + if (d) { + return See(a, d, b, c); + } + } + return null; + } + function IDd(a, b) { + var c; + c = Ao(a.i, b); + if (c == null) { + throw Adb(new CDd("Node did not exist in input.")); + } + wEd(b, c); + return null; + } + function wvd(a, b) { + var c; + c = wYd(a, b); + if (ZD(c, 331)) { + return RD(c, 35); + } + throw Adb(new agb(KHe + b + "' is not a valid attribute")); + } + function VGd(a, b, c) { + var d; + d = a.gc(); + if (b > d) + throw Adb(new aMd(b, d)); + if (a.Si() && a.Hc(c)) { + throw Adb(new agb(LIe)); + } + a.Gi(b, c); + } + function w7b(a, b) { + b.Ug("Sort end labels", 1); + FDb(CDb(EDb(new SDb(null, new Swb(a.b, 16)), new H7b()), new J7b()), new L7b()); + b.Vg(); + } + function Cmd() { + Cmd = geb; + Amd = new Gmd(Sye, 0); + zmd = new Gmd(Oye, 1); + ymd = new Gmd(Nye, 2); + xmd = new Gmd(Zye, 3); + Bmd = new Gmd("UP", 4); + } + function gbd() { + gbd = geb; + dbd = new hbd("P1_STRUCTURE", 0); + ebd = new hbd("P2_PROCESSING_ORDER", 1); + fbd = new hbd("P3_EXECUTION", 2); + } + function r0c() { + r0c = geb; + q0c = mfd(mfd(rfd(mfd(mfd(rfd(pfd(new ufd(), (YVc(), VVc), (WYc(), VYc)), WVc), RYc), TYc), XVc), NYc), UYc); + } + function s8b(a) { + switch (RD(mQb(a, (Ywc(), owc)), 311).g) { + case 1: + pQb(a, owc, (Gvc(), Dvc)); + break; + case 2: + pQb(a, owc, (Gvc(), Fvc)); + } + } + function bUc(a) { + switch (a) { + case 0: + return new mUc(); + case 1: + return new cUc(); + case 2: + return new hUc(); + default: + throw Adb(new _fb()); + } + } + function Fmd(a) { + switch (a.g) { + case 2: + return zmd; + case 1: + return ymd; + case 4: + return xmd; + case 3: + return Bmd; + default: + return Amd; + } + } + function UNb(a, b) { + switch (a.b.g) { + case 0: + case 1: + return b; + case 2: + case 3: + return new Uid(b.d, 0, b.a, b.b); + default: + return null; + } + } + function rpd(a) { + switch (a.g) { + case 1: + return ppd; + case 2: + return Yod; + case 3: + return Xod; + case 4: + return npd; + default: + return opd; + } + } + function spd(a) { + switch (a.g) { + case 1: + return npd; + case 2: + return ppd; + case 3: + return Yod; + case 4: + return Xod; + default: + return opd; + } + } + function tpd(a) { + switch (a.g) { + case 1: + return Xod; + case 2: + return npd; + case 3: + return ppd; + case 4: + return Yod; + default: + return opd; + } + } + function cyd(a, b, c, d) { + switch (b) { + case 1: + return !a.n && (a.n = new C5d(I4, a, 1, 7)), a.n; + case 2: + return a.k; + } + return Axd(a, b, c, d); + } + function uLd(a, b, c) { + var d, e; + if (a.Pj()) { + e = a.Qj(); + d = SHd(a, b, c); + a.Jj(a.Ij(7, sgb(c), d, b, e)); + return d; + } else { + return SHd(a, b, c); + } + } + function VNd(a, b) { + var c, d, e; + if (a.d == null) { + ++a.e; + --a.f; + } else { + e = b.ld(); + c = b.Bi(); + d = (c & lve) % a.d.length; + iOd(a, d, XNd(a, d, c, e)); + } + } + function xWd(a, b) { + var c; + c = (a.Bb & gwe) != 0; + b ? a.Bb |= gwe : a.Bb &= -1025; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new Q3d(a, 1, 10, c, b)); + } + function DWd(a, b) { + var c; + c = (a.Bb & qxe) != 0; + b ? a.Bb |= qxe : a.Bb &= -4097; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new Q3d(a, 1, 12, c, b)); + } + function EWd(a, b) { + var c; + c = (a.Bb & bKe) != 0; + b ? a.Bb |= bKe : a.Bb &= -8193; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new Q3d(a, 1, 15, c, b)); + } + function FWd(a, b) { + var c; + c = (a.Bb & cKe) != 0; + b ? a.Bb |= cKe : a.Bb &= -2049; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new Q3d(a, 1, 11, c, b)); + } + function zKc(a) { + var b; + if (a.g) { + b = a.c.kg() ? a.f : a.a; + BKc(b.a, a.o, true); + BKc(b.a, a.o, false); + pQb(a.o, (yCc(), BBc), (Bod(), vod)); + } + } + function Orc(a) { + var b; + if (!a.a) { + throw Adb(new dgb("Cannot offset an unassigned cut.")); + } + b = a.c - a.b; + a.b += b; + Qrc(a, b); + Rrc(a, b); + } + function JDd(a, b) { + var c; + c = Wjb(a.k, b); + if (c == null) { + throw Adb(new CDd("Port did not exist in input.")); + } + wEd(b, c); + return null; + } + function Jje(a) { + var b, c; + for (c = Kje(BXd(a)).Kc(); c.Ob(); ) { + b = WD(c.Pb()); + if (bAd(a, b)) { + return USd((TSd(), SSd), b); + } + } + return null; + } + function qJb(a) { + var b, c; + for (c = a.p.a.ec().Kc(); c.Ob(); ) { + b = RD(c.Pb(), 218); + if (b.f && a.b[b.c] < -1e-10) { + return b; + } + } + return null; + } + function Lr(a) { + var b, c; + c = Thb(new bib(), 91); + b = true; + while (a.Ob()) { + b || (c.a += pve, c); + b = false; + Yhb(c, a.Pb()); + } + return (c.a += "]", c).a; + } + function o_b(a) { + var b, c, d; + b = new bnb(); + for (d = new Anb(a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 602); + Tmb(b, RD(c.Cf(), 16)); + } + return b; + } + function TXb(a, b) { + var c, d; + for (d = new Anb(b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 42); + Ymb(a.b.b, c.b); + hYb(RD(c.a, 194), RD(c.b, 86)); + } + } + function aRb(a, b) { + var c; + c = Qfb(a.b.c, b.b.c); + if (c != 0) { + return c; + } + c = Qfb(a.a.a, b.a.a); + if (c != 0) { + return c; + } + return Qfb(a.a.b, b.a.b); + } + function Qfb(a, b) { + if (a < b) { + return -1; + } + if (a > b) { + return 1; + } + if (a == b) { + return a == 0 ? Qfb(1 / a, 1 / b) : 0; + } + return isNaN(a) ? isNaN(b) ? 0 : 1 : -1; + } + function pmb(a) { + var b; + b = a.a[a.c - 1 & a.a.length - 1]; + if (b == null) { + return null; + } + a.c = a.c - 1 & a.a.length - 1; + bD(a.a, a.c, null); + return b; + } + function Dqe(a) { + var b, c, d; + d = 0; + c = a.length; + for (b = 0; b < c; b++) { + a[b] == 32 || a[b] == 13 || a[b] == 10 || a[b] == 9 || (a[d++] = a[b]); + } + return d; + } + function Nge(a, b) { + var c, d, e, f, g; + g = pke(a.e.Dh(), b); + f = 0; + c = RD(a.g, 124); + for (e = 0; e < a.i; ++e) { + d = c[e]; + g.am(d.Lk()) && ++f; + } + return f; + } + function tge(a, b, c) { + var d, e; + e = ZD(b, 102) && (RD(b, 19).Bb & txe) != 0 ? new She(b, a) : new Phe(b, a); + for (d = 0; d < c; ++d) { + Dhe(e); + } + return e; + } + function yrd(a, b, c) { + var d, e; + if (a.c) { + Isd(a.c, b, c); + } else { + for (e = new Anb(a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 163); + yrd(d, b, c); + } + } + } + function tGd(a, b, c) { + var d, e; + d = RD(b.of(a.a), 34); + e = RD(c.of(a.a), 34); + return d != null && e != null ? Leb(d, e) : d != null ? -1 : e != null ? 1 : 0; + } + function Ce(a, b) { + var c, d, e; + uFb(b); + c = false; + for (d = new Anb(a); d.a < d.c.c.length; ) { + e = ynb(d); + if (b.Hc(e)) { + znb(d); + c = true; + } + } + return c; + } + function xsb(a) { + var b, c, d, e; + c = (b = RD(mfb((d = a.Rm, e = d.f, e == WI ? d : e)), 9), new Fsb(b, RD(WEb(b, b.length), 9), 0)); + zsb(c, a); + return c; + } + function i2b(a) { + var b, c; + c = RD(mQb(a, (yCc(), rAc)), 88); + if (c == (Cmd(), Amd)) { + b = Kfb(UD(mQb(a, Tzc))); + return b >= 1 ? zmd : xmd; + } + return c; + } + function Xhc(a) { + switch (RD(mQb(a, (yCc(), yAc)), 223).g) { + case 1: + return new jqc(); + case 3: + return new arc(); + default: + return new dqc(); + } + } + function MCb(a) { + if (a.c) { + MCb(a.c); + } else if (a.d) { + throw Adb(new dgb("Stream already terminated, can't be modified or used")); + } + } + function Ltb(a, b, c) { + var d; + d = a.a.get(b); + a.a.set(b, c === void 0 ? null : c); + if (d === void 0) { + ++a.c; + ++a.b.g; + } else { + ++a.d; + } + return d; + } + function HHc(a, b, c) { + var d, e; + for (e = a.a.ec().Kc(); e.Ob(); ) { + d = RD(e.Pb(), 10); + if (Be(c, RD(Vmb(b, d.p), 16))) { + return d; + } + } + return null; + } + function u0c(a, b, c) { + var d; + d = 0; + !!b && (Emd(a.a) ? d += b.f.a / 2 : d += b.f.b / 2); + !!c && (Emd(a.a) ? d += c.f.a / 2 : d += c.f.b / 2); + return d; + } + function LWb(a, b, c) { + var d; + d = c; + !d && (d = Nqd(new Oqd(), 0)); + d.Ug(EAe, 2); + y0b(a.b, b, d.eh(1)); + NWb(a, b, d.eh(1)); + h0b(b, d.eh(1)); + d.Vg(); + } + function CGd(a, b, c) { + var d, e; + d = (bvd(), e = new Xxd(), e); + Vxd(d, b); + Wxd(d, c); + !!a && WGd((!a.a && (a.a = new XZd(D4, a, 5)), a.a), d); + return d; + } + function kyd(a) { + var b; + if ((a.Db & 64) != 0) + return awd(a); + b = new Shb(awd(a)); + b.a += " (identifier: "; + Nhb(b, a.k); + b.a += ")"; + return b.a; + } + function kXd(a, b) { + var c; + c = (a.Bb & QHe) != 0; + b ? a.Bb |= QHe : a.Bb &= -32769; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new Q3d(a, 1, 18, c, b)); + } + function a6d(a, b) { + var c; + c = (a.Bb & QHe) != 0; + b ? a.Bb |= QHe : a.Bb &= -32769; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new Q3d(a, 1, 18, c, b)); + } + function AWd(a, b) { + var c; + c = (a.Bb & Ove) != 0; + b ? a.Bb |= Ove : a.Bb &= -16385; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new Q3d(a, 1, 16, c, b)); + } + function c6d(a, b) { + var c; + c = (a.Bb & txe) != 0; + b ? a.Bb |= txe : a.Bb &= -65537; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new Q3d(a, 1, 20, c, b)); + } + function qse(a) { + var b; + b = $C(hE, zwe, 28, 2, 15, 1); + a -= txe; + b[0] = (a >> 10) + uxe & Bwe; + b[1] = (a & 1023) + 56320 & Bwe; + return Ihb(b, 0, b.length); + } + function Zfb(a) { + var b; + b = Neb(a); + if (b > 34028234663852886e22) { + return oxe; + } else if (b < -34028234663852886e22) { + return pxe; + } + return b; + } + function Bdb(a, b) { + var c; + if (Kdb(a) && Kdb(b)) { + c = a + b; + if (jxe < c && c < hxe) { + return c; + } + } + return Edb(sD(Kdb(a) ? Wdb(a) : a, Kdb(b) ? Wdb(b) : b)); + } + function Ndb(a, b) { + var c; + if (Kdb(a) && Kdb(b)) { + c = a * b; + if (jxe < c && c < hxe) { + return c; + } + } + return Edb(wD(Kdb(a) ? Wdb(a) : a, Kdb(b) ? Wdb(b) : b)); + } + function Vdb(a, b) { + var c; + if (Kdb(a) && Kdb(b)) { + c = a - b; + if (jxe < c && c < hxe) { + return c; + } + } + return Edb(DD(Kdb(a) ? Wdb(a) : a, Kdb(b) ? Wdb(b) : b)); + } + function b3b(a, b) { + var c; + a.i || V2b(a); + c = RD(Vrb(a.g, b), 42); + return !c ? (yob(), yob(), vob) : new Rkb(a.j, RD(c.a, 17).a, RD(c.b, 17).a); + } + function ZXb(a) { + NXb(); + return Geb(), IYb(RD(a.a, 86).j, RD(a.b, 88)) || RD(a.a, 86).d.e != 0 && IYb(RD(a.a, 86).j, RD(a.b, 88)) ? true : false; + } + function pWc(a, b) { + return lhb(!!b.b && !!b.c ? aXc(b.b) + "->" + aXc(b.c) : "e_" + tb(b), !!a.b && !!a.c ? aXc(a.b) + "->" + aXc(a.c) : "e_" + tb(a)); + } + function rWc(a, b) { + return lhb(!!b.b && !!b.c ? aXc(b.b) + "->" + aXc(b.c) : "e_" + tb(b), !!a.b && !!a.c ? aXc(a.b) + "->" + aXc(a.c) : "e_" + tb(a)); + } + function $y(a, b) { + Zy(); + return bz(pwe), $wnd.Math.abs(a - b) <= pwe || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : cz(isNaN(a), isNaN(b)); + } + function Ymd() { + Ymd = geb; + Xmd = new Zmd(Sye, 0); + Vmd = new Zmd("POLYLINE", 1); + Umd = new Zmd("ORTHOGONAL", 2); + Wmd = new Zmd("SPLINES", 3); + } + function _6c() { + _6c = geb; + Z6c = new a7c("ASPECT_RATIO_DRIVEN", 0); + $6c = new a7c("MAX_SCALE_DRIVEN", 1); + Y6c = new a7c("AREA_DRIVEN", 2); + } + function Db(b, c, d) { + var e; + try { + Cb(b, c, d); + } catch (a) { + a = zdb(a); + if (ZD(a, 606)) { + e = a; + throw Adb(new Deb(e)); + } else + throw Adb(a); + } + return c; + } + function Im(a) { + var b, c, d; + for (c = 0, d = a.length; c < d; c++) { + if (a[c] == null) { + throw Adb(new Ogb("at index " + c)); + } + } + b = a; + return new mob(b); + } + function W2b(a) { + var b, c, d; + b = new bnb(); + for (d = new Anb(a.j); d.a < d.c.c.length; ) { + c = RD(ynb(d), 12); + Rmb(b, c.b); + } + return Qb(b), new Dl(b); + } + function Z2b(a) { + var b, c, d; + b = new bnb(); + for (d = new Anb(a.j); d.a < d.c.c.length; ) { + c = RD(ynb(d), 12); + Rmb(b, c.e); + } + return Qb(b), new Dl(b); + } + function a3b(a) { + var b, c, d; + b = new bnb(); + for (d = new Anb(a.j); d.a < d.c.c.length; ) { + c = RD(ynb(d), 12); + Rmb(b, c.g); + } + return Qb(b), new Dl(b); + } + function MBb(a, b) { + var c, d, e; + e = new Tsb(); + for (d = b.vc().Kc(); d.Ob(); ) { + c = RD(d.Pb(), 44); + Zjb(e, c.ld(), QBb(a, RD(c.md(), 15))); + } + return e; + } + function Mje(a) { + var b, c; + for (c = Nje(BXd(uWd(a))).Kc(); c.Ob(); ) { + b = WD(c.Pb()); + if (bAd(a, b)) + return dTd((cTd(), bTd), b); + } + return null; + } + function Cgc(a, b) { + var c, d, e; + e = 0; + for (d = RD(b.Kb(a), 20).Kc(); d.Ob(); ) { + c = RD(d.Pb(), 18); + Heb(TD(mQb(c, (Ywc(), Nwc)))) || ++e; + } + return e; + } + function Uv(a) { + var b, c, d, e; + b = new oq(a.Rd().gc()); + e = 0; + for (d = Nr(a.Rd().Kc()); d.Ob(); ) { + c = d.Pb(); + nq(b, c, sgb(e++)); + } + return sn(b.a); + } + function Cvb(a, b, c, d) { + var e, f; + uFb(d); + uFb(c); + e = a.xc(b); + f = e == null ? c : EBb(RD(e, 15), RD(c, 16)); + f == null ? a.Bc(b) : a.zc(b, f); + return f; + } + function Unb(a, b, c, d) { + var e, f, g; + for (e = b + 1; e < c; ++e) { + for (f = e; f > b && d.Ne(a[f - 1], a[f]) > 0; --f) { + g = a[f]; + bD(a, f, a[f - 1]); + bD(a, f - 1, g); + } + } + } + function Egd(a, b) { + var c, d, e, f, g; + c = b.f; + dub(a.c.d, c, b); + if (b.g != null) { + for (e = b.g, f = 0, g = e.length; f < g; ++f) { + d = e[f]; + dub(a.c.e, d, b); + } + } + } + function YSc(a, b) { + var c, d; + c = Sub(a, 0); + while (c.b != c.d.c) { + d = Mfb(UD(evb(c))); + if (d == b) { + return; + } else if (d > b) { + fvb(c); + break; + } + } + cvb(c, b); + } + function Kic(a, b) { + var c, d, e; + d = Zjc(b); + e = Kfb(UD(hFc(d, (yCc(), TBc)))); + c = $wnd.Math.max(0, e / 2 - 0.5); + Iic(b, c, 1); + Rmb(a, new hjc(b, c)); + } + function L5c(a, b, c) { + var d; + c.Ug("Straight Line Edge Routing", 1); + c.dh(b, eFe); + d = RD(Gxd(b, (u2c(), t2c)), 27); + M5c(a, d); + c.dh(b, gFe); + } + function K9c(a, b) { + a.n.c.length == 0 && Rmb(a.n, new _9c(a.s, a.t, a.i)); + Rmb(a.b, b); + W9c(RD(Vmb(a.n, a.n.c.length - 1), 209), b); + M9c(a, b); + } + function Zrb(a) { + var b; + this.a = (b = RD(a.e && a.e(), 9), new Fsb(b, RD(WEb(b, b.length), 9), 0)); + this.b = $C(jJ, rve, 1, this.a.a.length, 5, 1); + } + function jeb(a) { + var b; + if (Array.isArray(a) && a.Tm === keb) { + return nfb(rb(a)) + "@" + (b = tb(a) >>> 0, b.toString(16)); + } + return a.toString(); + } + function jD(a, b) { + if (a.h == fxe && a.m == 0 && a.l == 0) { + b && (eD = hD(0, 0, 0)); + return gD((MD(), KD)); + } + b && (eD = hD(a.l, a.m, a.h)); + return hD(0, 0, 0); + } + function _Gb(a, b) { + switch (b.g) { + case 2: + return a.b; + case 1: + return a.c; + case 4: + return a.d; + case 3: + return a.a; + default: + return false; + } + } + function IYb(a, b) { + switch (b.g) { + case 2: + return a.b; + case 1: + return a.c; + case 4: + return a.d; + case 3: + return a.a; + default: + return false; + } + } + function vyd(a, b, c, d) { + switch (b) { + case 3: + return a.f; + case 4: + return a.g; + case 5: + return a.i; + case 6: + return a.j; + } + return cyd(a, b, c, d); + } + function oIb(a, b) { + if (b == a.d) { + return a.e; + } else if (b == a.e) { + return a.d; + } else { + throw Adb(new agb("Node " + b + " not part of edge " + a)); + } + } + function Uvd(a, b) { + var c; + c = wYd(a.Dh(), b); + if (ZD(c, 102)) { + return RD(c, 19); + } + throw Adb(new agb(KHe + b + "' is not a valid reference")); + } + function Bvd(a, b, c, d) { + if (b < 0) { + Svd(a, c, d); + } else { + if (!c.rk()) { + throw Adb(new agb(KHe + c.xe() + LHe)); + } + RD(c, 69).wk().Ck(a, a.hi(), b, d); + } + } + function ig(a) { + var b; + if (a.b) { + ig(a.b); + if (a.b.d != a.c) { + throw Adb(new Jrb()); + } + } else if (a.d.dc()) { + b = RD(a.f.c.xc(a.e), 16); + !!b && (a.d = b); + } + } + function VMb(a) { + RMb(); + var b, c, d, e; + b = a.o.b; + for (d = RD(RD(Qc(a.r, (qpd(), npd)), 21), 87).Kc(); d.Ob(); ) { + c = RD(d.Pb(), 117); + e = c.e; + e.b += b; + } + } + function SRb(a) { + var b, c, d; + this.a = new Iub(); + for (d = new Anb(a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 16); + b = new DRb(); + xRb(b, c); + Ysb(this.a, b); + } + } + function fdc(a, b) { + var c, d, e; + d = cdc(a, b); + e = d[d.length - 1] / 2; + for (c = 0; c < d.length; c++) { + if (d[c] >= e) { + return b.c + c; + } + } + return b.c + b.b.gc(); + } + function lQd(a, b) { + jQd(); + var c, d, e, f; + d = iZd(a); + e = b; + Wnb(d, 0, d.length, e); + for (c = 0; c < d.length; c++) { + f = kQd(a, d[c], c); + c != f && uLd(a, c, f); + } + } + function mSd(a, b, c) { + var d, e; + for (d = 0, e = a.length; d < e; d++) { + if (zSd((BFb(d, a.length), a.charCodeAt(d)), b, c)) + return true; + } + return false; + } + function ARb(a, b) { + var c, d; + for (d = a.e.a.ec().Kc(); d.Ob(); ) { + c = RD(d.Pb(), 272); + if (Eid(b, c.d) || zid(b, c.d)) { + return true; + } + } + return false; + } + function oMc(a, b, c, d, e) { + var f, g, h; + g = e; + while (b.b != b.c) { + f = RD(smb(b), 10); + h = RD(b3b(f, d).Xb(0), 12); + a.d[h.p] = g++; + ZEb(c.c, h); + } + return g; + } + function vKb(a, b) { + var c, d, e, f, g, h; + d = 0; + c = 0; + for (f = b, g = 0, h = f.length; g < h; ++g) { + e = f[g]; + if (e > 0) { + d += e; + ++c; + } + } + c > 1 && (d += a.d * (c - 1)); + return d; + } + function FFd(a) { + var b, c, d, e, f; + f = HFd(a); + c = cve(a.c); + d = !c; + if (d) { + e = new MB(); + sC(f, "knownLayouters", e); + b = new QFd(e); + xgb(a.c, b); + } + return f; + } + function fHd(a) { + var b, c, d; + d = new Qhb(); + d.a += "["; + for (b = 0, c = a.gc(); b < c; ) { + Nhb(d, Ghb(a.Vi(b))); + ++b < c && (d.a += pve, d); + } + d.a += "]"; + return d.a; + } + function kSd(a) { + if (a.e == null) { + return a; + } else + !a.c && (a.c = new lSd((a.f & 256) != 0, a.i, a.a, a.d, (a.f & 16) != 0, a.j, a.g, null)); + return a.c; + } + function pnc(a) { + if (a.k != (r3b(), p3b)) { + return false; + } + return yDb(new SDb(null, new Twb(new is(Mr(a3b(a).a.Kc(), new ir())))), new qnc()); + } + function hv(a) { + var b, c; + if (ZD(a, 307)) { + c = vm(RD(a, 307)); + b = c; + return b; + } else + return ZD(a, 441) ? RD(a, 441).a : ZD(a, 59) ? new Fv(a) : new uv(a); + } + function FSd(a) { + var b; + if (a == null) + return true; + b = a.length; + return b > 0 && (BFb(b - 1, a.length), a.charCodeAt(b - 1) == 58) && !mSd(a, aSd, bSd); + } + function Sib(a, b) { + var c; + if (dE(a) === dE(b)) { + return true; + } + if (ZD(b, 92)) { + c = RD(b, 92); + return a.e == c.e && a.d == c.d && Tib(a, c.a); + } + return false; + } + function vpd(a) { + qpd(); + switch (a.g) { + case 4: + return Yod; + case 1: + return Xod; + case 3: + return npd; + case 2: + return ppd; + default: + return opd; + } + } + function jBb(a) { + var b, c; + if (a.b) { + return a.b; + } + c = dBb ? null : a.d; + while (c) { + b = dBb ? null : c.b; + if (b) { + return b; + } + c = dBb ? null : c.d; + } + return SAb(), RAb; + } + function LJb(a) { + var b, c, d; + d = Kfb(UD(a.a.of((umd(), cmd)))); + for (c = new Anb(a.a.Sf()); c.a < c.c.c.length; ) { + b = RD(ynb(c), 695); + OJb(a, b, d); + } + } + function jz(a) { + var b, c, d, e; + for (b = (a.j == null && (a.j = (fA(), e = eA.me(a), hA(e))), a.j), c = 0, d = b.length; c < d; ++c) { + } + } + function OXb(a, b) { + var c, d; + for (d = new Anb(b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 42); + Rmb(a.b.b, RD(c.b, 86)); + gYb(RD(c.a, 194), RD(c.b, 86)); + } + } + function nHc(a, b, c) { + var d, e; + e = a.a.b; + for (d = e.c.length; d < c; d++) { + Qmb(e, 0, new R4b(a.a)); + } + g3b(b, RD(Vmb(e, e.c.length - c), 30)); + a.b[b.p] = c; + } + function EOc(a, b, c, d, e) { + dOc(); + rIb(uIb(tIb(sIb(vIb(new wIb(), 0), e.d.e - a), b), e.d)); + rIb(uIb(tIb(sIb(vIb(new wIb(), 0), c - e.a.e), e.a), d)); + } + function Ted(a, b) { + var c; + if (a.d) { + if (Ujb(a.b, b)) { + return RD(Wjb(a.b, b), 47); + } else { + c = b.dg(); + Zjb(a.b, b, c); + return c; + } + } else { + return b.dg(); + } + } + function hFb(b) { + var c = b.e; + function d(a) { + if (!a || a.length == 0) { + return ""; + } + return " " + a.join("\n "); + } + return c && (c.stack || d(b[xwe])); + } + function wyd(a, b) { + switch (b) { + case 3: + return a.f != 0; + case 4: + return a.g != 0; + case 5: + return a.i != 0; + case 6: + return a.j != 0; + } + return fyd(a, b); + } + function y2c(a) { + switch (a.g) { + case 0: + return new D5c(); + case 1: + return new N5c(); + default: + throw Adb(new agb(lBe + (a.f != null ? a.f : "" + a.g))); + } + } + function Z3c(a) { + switch (a.g) { + case 0: + return new G5c(); + case 1: + return new J5c(); + default: + throw Adb(new agb(mFe + (a.f != null ? a.f : "" + a.g))); + } + } + function h4c(a) { + switch (a.g) { + case 1: + return new F3c(); + case 2: + return new x3c(); + default: + throw Adb(new agb(mFe + (a.f != null ? a.f : "" + a.g))); + } + } + function mdd(a) { + switch (a.g) { + case 0: + return new Ddd(); + case 1: + return new Hdd(); + default: + throw Adb(new agb(eGe + (a.f != null ? a.f : "" + a.g))); + } + } + function Owb() { + Hwb(); + var a, b, c; + c = Gwb++ + Date.now(); + a = eE($wnd.Math.floor(c * Nxe)) & Pxe; + b = eE(c - a * Oxe); + this.a = a ^ 1502; + this.b = b ^ Mxe; + } + function cxc() { + cxc = geb; + bxc = new dxc(LAe, 0); + Zwc = new dxc("FIRST", 1); + $wc = new dxc(oBe, 2); + _wc = new dxc("LAST", 3); + axc = new dxc(pBe, 4); + } + function Grd() { + Grd = geb; + Frd = new Hrd(mEe, 0); + Crd = new Hrd("GROUP_DEC", 1); + Erd = new Hrd("GROUP_MIXED", 2); + Drd = new Hrd("GROUP_INC", 3); + } + function cEd(a, b) { + var c, d, e, f; + if (b) { + e = vDd(b, "x"); + c = new wFd(a); + Ozd(c.a, (uFb(e), e)); + f = vDd(b, "y"); + d = new zFd(a); + Pzd(d.a, (uFb(f), f)); + } + } + function nEd(a, b) { + var c, d, e, f; + if (b) { + e = vDd(b, "x"); + c = new BFd(a); + Hzd(c.a, (uFb(e), e)); + f = vDd(b, "y"); + d = new CFd(a); + Izd(d.a, (uFb(f), f)); + } + } + function Sje(a, b) { + var c, d, e, f; + e = new cnb(b.gc()); + for (d = b.Kc(); d.Ob(); ) { + c = d.Pb(); + f = Rje(a, RD(c, 58)); + !!f && (ZEb(e.c, f), true); + } + return e; + } + function ze(a, b, c) { + var d, e; + for (e = a.Kc(); e.Ob(); ) { + d = e.Pb(); + if (dE(b) === dE(d) || b != null && pb(b, d)) { + c && e.Qb(); + return true; + } + } + return false; + } + function Y5b(a) { + var b, c, d; + c = a.jh(); + if (c) { + b = a.Eh(); + if (ZD(b, 167)) { + d = Y5b(RD(b, 167)); + if (d != null) { + return d + "." + c; + } + } + return c; + } + return null; + } + function pjb(a) { + var b, c, d; + if (a.e == 0) { + return 0; + } + b = a.d << 5; + c = a.a[a.d - 1]; + if (a.e < 0) { + d = Uib(a); + if (d == a.d - 1) { + --c; + c = c | 0; + } + } + b -= ngb(c); + return b; + } + function kjb(a) { + var b, c, d; + if (a < Nib.length) { + return Nib[a]; + } + c = a >> 5; + b = a & 31; + d = $C(kE, Pwe, 28, c + 1, 15, 1); + d[c] = 1 << b; + return new cjb(1, c + 1, d); + } + function eLd(a, b) { + var c, d; + if (!b) { + return false; + } else { + for (c = 0; c < a.i; ++c) { + d = RD(a.g[c], 378); + if (d.mj(b)) { + return false; + } + } + return WGd(a, b); + } + } + function ZId(a, b, c) { + var d, e; + ++a.j; + if (c.dc()) { + return false; + } else { + for (e = c.Kc(); e.Ob(); ) { + d = e.Pb(); + a.qj(b, a.Zi(b, d)); + ++b; + } + return true; + } + } + function OA(a, b, c, d) { + var e, f; + f = c - b; + if (f < 3) { + while (f < 3) { + a *= 10; + ++f; + } + } else { + e = 1; + while (f > 3) { + e *= 10; + --f; + } + a = (a + (e >> 1)) / e | 0; + } + d.i = a; + return true; + } + function BYd(a, b) { + var c, d, e; + c = (a.i == null && rYd(a), a.i); + d = b.Lj(); + if (d != -1) { + for (e = c.length; d < e; ++d) { + if (c[d] == b) { + return d; + } + } + } + return -1; + } + function T$d(a) { + var b, c, d, e, f; + c = RD(a.g, 689); + for (d = a.i - 1; d >= 0; --d) { + b = c[d]; + for (e = 0; e < d; ++e) { + f = c[e]; + if (U$d(a, b, f)) { + THd(a, d); + break; + } + } + } + } + function PId(a) { + var b, c, d, e; + b = new MB(); + for (e = new Ppb(a.b.Kc()); e.b.Ob(); ) { + d = RD(e.b.Pb(), 701); + c = LFd(d); + KB(b, b.a.length, c); + } + return b.a; + } + function VNb(a) { + var b; + !a.c && (a.c = new MNb()); + _mb(a.d, new aOb()); + SNb(a); + b = LNb(a); + FDb(new SDb(null, new Swb(a.d, 16)), new tOb(a)); + return b; + } + function I6b(a, b) { + b.Ug("End label post-processing", 1); + FDb(CDb(EDb(new SDb(null, new Swb(a.b, 16)), new N6b()), new P6b()), new R6b()); + b.Vg(); + } + function RCc(a) { + QCc(); + this.c = dv(cD(WC(g2, 1), rve, 845, 0, [FCc])); + this.b = new Tsb(); + this.a = a; + Zjb(this.b, OCc, 1); + Umb(PCc, new $rd(this)); + } + function wKb(a, b, c) { + kKb(); + fKb.call(this); + this.a = YC(IN, [Nve, Mye], [603, 217], 0, [jKb, iKb], 2); + this.c = new Tid(); + this.g = a; + this.f = b; + this.d = c; + } + function gQb(a, b) { + this.n = YC(lE, [Nve, rxe], [376, 28], 14, [b, eE($wnd.Math.ceil(a / 32))], 2); + this.o = a; + this.p = b; + this.j = a - 1 >> 1; + this.k = b - 1 >> 1; + } + function Dfd(a) { + Afd(); + if (RD(a.of((umd(), pld)), 181).Hc((dqd(), bqd))) { + RD(a.of(Lld), 181).Fc((Pod(), Ood)); + RD(a.of(pld), 181).Mc(bqd); + } + } + function ndc(a) { + var b, c; + b = a.d == (btc(), Ysc); + c = jdc(a); + b && !c || !b && c ? pQb(a.a, (yCc(), Rzc), (Rjd(), Pjd)) : pQb(a.a, (yCc(), Rzc), (Rjd(), Ojd)); + } + function QCc() { + QCc = geb; + GCc(); + OCc = (yCc(), bCc); + PCc = dv(cD(WC(V5, 1), kEe, 149, 0, [SBc, TBc, VBc, WBc, ZBc, $Bc, _Bc, aCc, dCc, fCc, UBc, XBc, cCc])); + } + function RDb(a, b) { + var c; + c = RD(zDb(a, tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + return c.Qc(__c(c.gc())); + } + function nXc(a, b) { + var c, d; + d = new zAb(a.a.ad(b, true)); + if (d.a.gc() <= 1) { + throw Adb(new Ngb()); + } + c = d.a.ec().Kc(); + c.Pb(); + return RD(c.Pb(), 40); + } + function lQc(a, b, c) { + var d, e; + d = Kfb(a.p[b.i.p]) + Kfb(a.d[b.i.p]) + b.n.b + b.a.b; + e = Kfb(a.p[c.i.p]) + Kfb(a.d[c.i.p]) + c.n.b + c.a.b; + return e - d; + } + function XHd(a, b) { + var c; + if (a.i > 0) { + if (b.length < a.i) { + c = IMd(rb(b).c, a.i); + b = c; + } + hib(a.g, 0, b, 0, a.i); + } + b.length > a.i && bD(b, a.i, null); + return b; + } + function MXd(a) { + var b; + if ((a.Db & 64) != 0) + return QAd(a); + b = new Shb(QAd(a)); + b.a += " (instanceClassName: "; + Nhb(b, a.D); + b.a += ")"; + return b.a; + } + function ySd(a) { + var b, c, d, e; + e = 0; + for (c = 0, d = a.length; c < d; c++) { + b = (BFb(c, a.length), a.charCodeAt(c)); + b < 64 && (e = Rdb(e, Sdb(1, b))); + } + return e; + } + function Fjb(a, b, c) { + var d, e; + d = Cdb(c, yxe); + for (e = 0; Ddb(d, 0) != 0 && e < b; e++) { + d = Bdb(d, Cdb(a[e], yxe)); + a[e] = Ydb(d); + d = Tdb(d, 32); + } + return Ydb(d); + } + function pge(a, b) { + var c, d, e, f; + f = pke(a.e.Dh(), b); + c = RD(a.g, 124); + for (e = 0; e < a.i; ++e) { + d = c[e]; + if (f.am(d.Lk())) { + return false; + } + } + return true; + } + function QNd(a, b) { + var c, d, e; + if (a.f > 0) { + a._j(); + d = b == null ? 0 : tb(b); + e = (d & lve) % a.d.length; + c = XNd(a, e, d, b); + return c != -1; + } else { + return false; + } + } + function Nrb(a, b) { + var c, d; + a.a = Bdb(a.a, 1); + a.c = $wnd.Math.min(a.c, b); + a.b = $wnd.Math.max(a.b, b); + a.d += b; + c = b - a.f; + d = a.e + c; + a.f = d - a.e - c; + a.e = d; + } + function yyd(a, b) { + switch (b) { + case 3: + Ayd(a, 0); + return; + case 4: + Cyd(a, 0); + return; + case 5: + Dyd(a, 0); + return; + case 6: + Eyd(a, 0); + return; + } + hyd(a, b); + } + function c3b(a, b) { + switch (b.g) { + case 1: + return dr(a.j, (J3b(), E3b)); + case 2: + return dr(a.j, (J3b(), G3b)); + default: + return yob(), yob(), vob; + } + } + function zm(a) { + tm(); + var b; + b = a.Pc(); + switch (b.length) { + case 0: + return sm; + case 1: + return new Dy(Qb(b[0])); + default: + return new Kx(Im(b)); + } + } + function kMd(b, c) { + b.Xj(); + try { + b.d.bd(b.e++, c); + b.f = b.d.j; + b.g = -1; + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + throw Adb(new Jrb()); + } else + throw Adb(a); + } + } + function a8d() { + a8d = geb; + $7d = new b8d(); + T7d = new e8d(); + U7d = new h8d(); + V7d = new k8d(); + W7d = new n8d(); + X7d = new q8d(); + Y7d = new t8d(); + Z7d = new w8d(); + _7d = new z8d(); + } + function YA(a, b) { + WA(); + var c, d; + c = _A(($A(), $A(), ZA)); + d = null; + b == c && (d = RD(Xjb(VA, a), 624)); + if (!d) { + d = new XA(a); + b == c && $jb(VA, a, d); + } + return d; + } + function zDc(a) { + wDc(); + var b; + (!a.q ? (yob(), yob(), wob) : a.q)._b((yCc(), iBc)) ? b = RD(mQb(a, iBc), 203) : b = RD(mQb(Y2b(a), jBc), 203); + return b; + } + function hFc(a, b) { + var c, d; + d = null; + if (nQb(a, (yCc(), YBc))) { + c = RD(mQb(a, YBc), 96); + c.pf(b) && (d = c.of(b)); + } + d == null && (d = mQb(Y2b(a), b)); + return d; + } + function Ze(a, b) { + var c, d, e; + if (ZD(b, 44)) { + c = RD(b, 44); + d = c.ld(); + e = Xv(a.Rc(), d); + return Hb(e, c.md()) && (e != null || a.Rc()._b(d)); + } + return false; + } + function $Nd(a, b) { + var c, d, e; + if (a.f > 0) { + a._j(); + d = b == null ? 0 : tb(b); + e = (d & lve) % a.d.length; + c = WNd(a, e, d, b); + if (c) { + return c.md(); + } + } + return null; + } + function qLd(a, b, c) { + var d, e, f; + if (a.Pj()) { + d = a.i; + f = a.Qj(); + KHd(a, d, b); + e = a.Ij(3, null, b, d, f); + !c ? c = e : c.nj(e); + } else { + KHd(a, a.i, b); + } + return c; + } + function f$d(a, b, c) { + var d, e; + d = new P3d(a.e, 4, 10, (e = b.c, ZD(e, 90) ? RD(e, 29) : (JTd(), zTd)), null, fZd(a, b), false); + !c ? c = d : c.nj(d); + return c; + } + function e$d(a, b, c) { + var d, e; + d = new P3d(a.e, 3, 10, null, (e = b.c, ZD(e, 90) ? RD(e, 29) : (JTd(), zTd)), fZd(a, b), false); + !c ? c = d : c.nj(d); + return c; + } + function SMb(a) { + RMb(); + var b; + b = new sjd(RD(a.e.of((umd(), nld)), 8)); + if (a.B.Hc((dqd(), Ypd))) { + b.a <= 0 && (b.a = 20); + b.b <= 0 && (b.b = 20); + } + return b; + } + function jjb(a) { + Pib(); + var b, c; + c = Ydb(a); + b = Ydb(Udb(a, 32)); + if (b != 0) { + return new bjb(c, b); + } + if (c > 10 || c < 0) { + return new ajb(1, c); + } + return Lib[c]; + } + function Mdb(a, b) { + var c; + if (Kdb(a) && Kdb(b)) { + c = a % b; + if (jxe < c && c < hxe) { + return c; + } + } + return Edb((iD(Kdb(a) ? Wdb(a) : a, Kdb(b) ? Wdb(b) : b, true), eD)); + } + function G8b(a, b) { + var c; + D8b(b); + c = RD(mQb(a, (yCc(), xAc)), 283); + !!c && pQb(a, xAc, uuc(c)); + E8b(a.c); + E8b(a.f); + F8b(a.d); + F8b(RD(mQb(a, cBc), 214)); + } + function y7b(a) { + var b, c, d, e; + d = t7b(a); + _mb(d, r7b); + e = a.d; + e.c.length = 0; + for (c = new Anb(d); c.a < c.c.c.length; ) { + b = RD(ynb(c), 466); + Tmb(e, b.b); + } + } + function cmc(a) { + var b; + if (a.c == 0) { + return; + } + b = RD(Vmb(a.a, a.b), 294); + b.b == 1 ? (++a.b, a.b < a.a.c.length && gmc(RD(Vmb(a.a, a.b), 294))) : --b.b; + --a.c; + } + function vdc(a) { + var b; + b = a.a; + do { + b = RD(hs(new is(Mr(a3b(b).a.Kc(), new ir()))), 18).d.i; + b.k == (r3b(), o3b) && Rmb(a.e, b); + } while (b.k == (r3b(), o3b)); + } + function RLc(a) { + this.e = $C(kE, Pwe, 28, a.length, 15, 1); + this.c = $C(xdb, Hye, 28, a.length, 16, 1); + this.b = $C(xdb, Hye, 28, a.length, 16, 1); + this.f = 0; + } + function _Hc(a) { + var b, c; + a.j = $C(iE, vxe, 28, a.p.c.length, 15, 1); + for (c = new Anb(a.p); c.a < c.c.c.length; ) { + b = RD(ynb(c), 10); + a.j[b.p] = b.o.b / a.i; + } + } + function L_c(a, b) { + var c, d, e, f; + f = b.b.b; + a.a = new Yub(); + a.b = $C(kE, Pwe, 28, f, 15, 1); + c = 0; + for (e = Sub(b.b, 0); e.b != e.d.c; ) { + d = RD(evb(e), 40); + d.g = c++; + } + } + function fad(a, b, c) { + var d, e, f, g; + f = b - a.e; + g = c - a.f; + for (e = new Anb(a.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 172); + U9c(d, d.s + f, d.t + g); + } + a.e = b; + a.f = c; + } + function ose(a, b) { + var c, d; + d = b.length; + for (c = 0; c < d; c += 2) + rte(a, (BFb(c, b.length), b.charCodeAt(c)), (BFb(c + 1, b.length), b.charCodeAt(c + 1))); + } + function G6c(a, b) { + b.Ug("Min Size Postprocessing", 1); + Ixd(a, (X6c(), W6c), $wnd.Math.max(Kfb(UD(Gxd(a, W6c))), Kfb(UD(Gxd(a, U6c))))); + b.Vg(); + } + function Fpd() { + Fpd = geb; + Cpd = new A3b(15); + Bpd = new mGd((umd(), tld), Cpd); + Epd = new mGd(fmd, 15); + Dpd = new mGd(Sld, sgb(0)); + Apd = new mGd(Dkd, Yze); + } + function Qpd() { + Qpd = geb; + Opd = new Rpd("PORTS", 0); + Ppd = new Rpd("PORT_LABELS", 1); + Npd = new Rpd("NODE_LABELS", 2); + Mpd = new Rpd("MINIMUM_SIZE", 3); + } + function f6c() { + f6c = geb; + c6c = new g6c("P1_WIDTH_APPROXIMATION", 0); + d6c = new g6c("P2_PACKING", 1); + e6c = new g6c("P3_WHITESPACE_ELIMINATION", 2); + } + function $je(a) { + if (a.b == null) { + while (a.a.Ob()) { + a.b = a.a.Pb(); + if (!RD(a.b, 54).Jh()) { + return true; + } + } + a.b = null; + return false; + } else { + return true; + } + } + function Pyb(a, b, c) { + var d, e, f; + e = null; + f = a.b; + while (f) { + d = a.a.Ne(b, f.d); + if (c && d == 0) { + return f; + } + if (d >= 0) { + f = f.a[1]; + } else { + e = f; + f = f.a[0]; + } + } + return e; + } + function Qyb(a, b, c) { + var d, e, f; + e = null; + f = a.b; + while (f) { + d = a.a.Ne(b, f.d); + if (c && d == 0) { + return f; + } + if (d <= 0) { + f = f.a[0]; + } else { + e = f; + f = f.a[1]; + } + } + return e; + } + function rmc(a, b, c, d) { + var e, f, g; + e = false; + if (Lmc(a.f, c, d)) { + Omc(a.f, a.a[b][c], a.a[b][d]); + f = a.a[b]; + g = f[d]; + f[d] = f[c]; + f[c] = g; + e = true; + } + return e; + } + function Nqc(a, b, c) { + var d, e, f, g; + e = RD(Wjb(a.b, c), 183); + d = 0; + for (g = new Anb(b.j); g.a < g.c.c.length; ) { + f = RD(ynb(g), 113); + e[f.d.p] && ++d; + } + return d; + } + function lte(a, b, c) { + var d, e; + d = RD(Xjb(wse, b), 122); + e = RD(Xjb(xse, b), 122); + if (c) { + $jb(wse, a, d); + $jb(xse, a, e); + } else { + $jb(xse, a, d); + $jb(wse, a, e); + } + } + function qjb(a, b) { + var c, d, e, f; + c = b >> 5; + b &= 31; + e = a.d + c + (b == 0 ? 0 : 1); + d = $C(kE, Pwe, 28, e, 15, 1); + rjb(d, a.a, c, b); + f = new cjb(a.e, e, d); + Rib(f); + return f; + } + function zGc(a, b) { + var c, d, e; + for (d = new is(Mr(a3b(a).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + e = c.d.i; + if (e.c == b) { + return false; + } + } + return true; + } + function _Ec(a, b, c) { + var d, e, f, g, h; + g = a.k; + h = b.k; + d = c[g.g][h.g]; + e = UD(hFc(a, d)); + f = UD(hFc(b, d)); + return $wnd.Math.max((uFb(e), e), (uFb(f), f)); + } + function lA() { + if (Error.stackTraceLimit > 0) { + $wnd.Error.stackTraceLimit = Error.stackTraceLimit = 64; + return true; + } + return "stack" in new Error(); + } + function sGb(a, b) { + return Zy(), Zy(), bz(pwe), ($wnd.Math.abs(a - b) <= pwe || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : cz(isNaN(a), isNaN(b))) > 0; + } + function uGb(a, b) { + return Zy(), Zy(), bz(pwe), ($wnd.Math.abs(a - b) <= pwe || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : cz(isNaN(a), isNaN(b))) < 0; + } + function tGb(a, b) { + return Zy(), Zy(), bz(pwe), ($wnd.Math.abs(a - b) <= pwe || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : cz(isNaN(a), isNaN(b))) <= 0; + } + function Efb(a, b) { + var c = 0; + while (!b[c] || b[c] == "") { + c++; + } + var d = b[c++]; + for (; c < b.length; c++) { + if (!b[c] || b[c] == "") { + continue; + } + d += a + b[c]; + } + return d; + } + function MMd(a) { + var b, c; + b = RD(Ywd(a.a, 4), 129); + if (b != null) { + c = $C(d6, IJe, 424, b.length, 0, 1); + hib(b, 0, c, 0, b.length); + return c; + } else { + return JMd; + } + } + function kne(a) { + var b, c, d, e, f; + if (a == null) + return null; + f = new bnb(); + for (c = xAd(a), d = 0, e = c.length; d < e; ++d) { + b = c[d]; + Rmb(f, nue(b, true)); + } + return f; + } + function nne(a) { + var b, c, d, e, f; + if (a == null) + return null; + f = new bnb(); + for (c = xAd(a), d = 0, e = c.length; d < e; ++d) { + b = c[d]; + Rmb(f, nue(b, true)); + } + return f; + } + function one(a) { + var b, c, d, e, f; + if (a == null) + return null; + f = new bnb(); + for (c = xAd(a), d = 0, e = c.length; d < e; ++d) { + b = c[d]; + Rmb(f, nue(b, true)); + } + return f; + } + function vrd(a, b) { + var c, d, e; + if (a.c) { + Ayd(a.c, b); + } else { + c = b - trd(a); + for (e = new Anb(a.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 163); + vrd(d, trd(d) + c); + } + } + } + function wrd(a, b) { + var c, d, e; + if (a.c) { + Cyd(a.c, b); + } else { + c = b - urd(a); + for (e = new Anb(a.d); e.a < e.c.c.length; ) { + d = RD(ynb(e), 163); + wrd(d, urd(d) + c); + } + } + } + function Ihb(a, b, c) { + var d, e, f, g; + f = b + c; + AFb(b, f, a.length); + g = ""; + for (e = b; e < f; ) { + d = $wnd.Math.min(e + 1e4, f); + g += Ehb(a.slice(e, d)); + e = d; + } + return g; + } + function jMb(a) { + switch (a.g) { + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + return true; + default: + return false; + } + } + function Ptc() { + Ptc = geb; + Ltc = new Rtc(CBe, 0); + Ktc = new Rtc(DBe, 1); + Ntc = new Rtc(BBe, 2); + Otc = new Rtc(MAe, 3); + Mtc = new Rtc("GREEDY_MODEL_ORDER", 4); + } + function kEc() { + kEc = geb; + hEc = new lEc(LAe, 0); + gEc = new lEc("NODES_AND_EDGES", 1); + iEc = new lEc("PREFER_EDGES", 2); + jEc = new lEc("PREFER_NODES", 3); + } + function mad(a, b, c, d, e, f) { + this.a = a; + this.c = b; + this.b = c; + this.f = d; + this.d = e; + this.e = f; + this.c > 0 && this.b > 0 && (this.g = Aad(this.c, this.b, this.a)); + } + function rC(f, a) { + var b = f.a; + var c; + a = String(a); + b.hasOwnProperty(a) && (c = b[a]); + var d = (HC(), GC)[typeof c]; + var e = d ? d(c) : NC(typeof c); + return e; + } + function uDd(a) { + var b, c, d; + d = null; + b = uIe in a.a; + c = !b; + if (c) { + throw Adb(new CDd("Every element must have an id.")); + } + d = tDd(qC(a, uIe)); + return d; + } + function Qqe(a) { + var b, c; + c = Rqe(a); + b = null; + while (a.c == 2) { + Mqe(a); + if (!b) { + b = (Vse(), Vse(), new iue(2)); + hue(b, c); + c = b; + } + c.Jm(Rqe(a)); + } + return c; + } + function jOd(a, b) { + var c, d, e; + a._j(); + d = b == null ? 0 : tb(b); + e = (d & lve) % a.d.length; + c = WNd(a, e, d, b); + if (c) { + hOd(a, c); + return c.md(); + } else { + return null; + } + } + function Qib(a, b) { + if (a.e > b.e) { + return 1; + } + if (a.e < b.e) { + return -1; + } + if (a.d > b.d) { + return a.e; + } + if (a.d < b.d) { + return -b.e; + } + return a.e * Ejb(a.a, b.a, a.d); + } + function dfb(a) { + if (a >= 48 && a < 48 + $wnd.Math.min(10, 10)) { + return a - 48; + } + if (a >= 97 && a < 97) { + return a - 97 + 10; + } + if (a >= 65 && a < 65) { + return a - 65 + 10; + } + return -1; + } + function UHc(a, b) { + if (b.c == a) { + return b.d; + } else if (b.d == a) { + return b.c; + } + throw Adb(new agb("Input edge is not connected to the input port.")); + } + function Fae(a) { + if (mhb(FGe, a)) { + return Geb(), Feb; + } else if (mhb(GGe, a)) { + return Geb(), Eeb; + } else { + throw Adb(new agb("Expecting true or false")); + } + } + function jFb(a) { + switch (typeof a) { + case jve: + return ohb(a); + case ive: + return Nfb(a); + case hve: + return Jeb(a); + default: + return a == null ? 0 : kFb(a); + } + } + function mfd(a, b) { + if (a.a < 0) { + throw Adb(new dgb("Did not call before(...) or after(...) before calling add(...).")); + } + tfd(a, a.a, b); + return a; + } + function FId(a) { + EId(); + if (ZD(a, 162)) { + return RD(Wjb(CId, zK), 295).Rg(a); + } + if (Ujb(CId, rb(a))) { + return RD(Wjb(CId, rb(a)), 295).Rg(a); + } + return null; + } + function Wwd(a) { + var b, c; + if ((a.Db & 32) == 0) { + c = (b = RD(Ywd(a, 16), 29), AYd(!b ? a.ii() : b) - AYd(a.ii())); + c != 0 && $wd(a, 32, $C(jJ, rve, 1, c, 5, 1)); + } + return a; + } + function $wd(a, b, c) { + var d; + if ((a.Db & b) != 0) { + if (c == null) { + Zwd(a, b); + } else { + d = Xwd(a, b); + d == -1 ? a.Eb = c : bD(SD(a.Eb), d, c); + } + } else + c != null && Twd(a, b, c); + } + function tTc(a, b, c, d) { + var e, f; + if (b.c.length == 0) { + return; + } + e = pTc(c, d); + f = oTc(b); + FDb(PDb(new SDb(null, new Swb(f, 1)), new CTc()), new GTc(a, c, e, d)); + } + function rmb(a, b) { + var c, d, e, f; + d = a.a.length - 1; + c = b - a.b & d; + f = a.c - b & d; + e = a.c - a.b & d; + zmb(c < e); + if (c >= f) { + umb(a, b); + return -1; + } else { + vmb(a, b); + return 1; + } + } + function Hvd(a) { + var b, c, d; + d = a.Jh(); + if (!d) { + b = 0; + for (c = a.Ph(); c; c = c.Ph()) { + if (++b > wxe) { + return c.Qh(); + } + d = c.Jh(); + if (!!d || c == a) { + break; + } + } + } + return d; + } + function Ue(a, b) { + var c; + if (dE(b) === dE(a)) { + return true; + } + if (!ZD(b, 21)) { + return false; + } + c = RD(b, 21); + if (c.gc() != a.gc()) { + return false; + } + return a.Ic(c); + } + function kNc(a, b) { + if (a.e < b.e) { + return -1; + } else if (a.e > b.e) { + return 1; + } else if (a.f < b.f) { + return -1; + } else if (a.f > b.f) { + return 1; + } + return tb(a) - tb(b); + } + function mhb(a, b) { + uFb(a); + if (b == null) { + return false; + } + if (lhb(a, b)) { + return true; + } + return a.length == b.length && lhb(a.toLowerCase(), b.toLowerCase()); + } + function Hgb(a) { + var b, c; + if (Ddb(a, -129) > 0 && Ddb(a, 128) < 0) { + return Jgb(), b = Ydb(a) + 128, c = Igb[b], !c && (c = Igb[b] = new zgb(a)), c; + } + return new zgb(a); + } + function U$b() { + U$b = geb; + T$b = new V$b(LAe, 0); + R$b = new V$b("INSIDE_PORT_SIDE_GROUPS", 1); + Q$b = new V$b("GROUP_MODEL_ORDER", 2); + S$b = new V$b(MAe, 3); + } + function ufe(a) { + var b; + a.b || vfe(a, (b = Hee(a.e, a.a), !b || !lhb(GGe, $Nd((!b.b && (b.b = new SVd((JTd(), FTd), C8, b)), b.b), "qualified")))); + return a.c; + } + function BA(a, b) { + var c, d; + c = (BFb(b, a.length), a.charCodeAt(b)); + d = b + 1; + while (d < a.length && (BFb(d, a.length), a.charCodeAt(d) == c)) { + ++d; + } + return d - b; + } + function dFb(a, b) { + (!b && console.groupCollapsed != null ? console.groupCollapsed : console.group != null ? console.group : console.log).call(console, a); + } + function EQb(a, b, c, d) { + d == a ? (RD(c.b, 68), RD(c.b, 68), RD(d.b, 68), RD(d.b, 68).c.b) : (RD(c.b, 68), RD(c.b, 68), RD(d.b, 68), RD(d.b, 68).c.b); + BQb(d, b, a); + } + function vRb(a) { + var c, d; + for (c = new Anb(a.g); c.a < c.c.c.length; ) { + RD(ynb(c), 568); + } + d = new vQb(a.g, Kfb(a.a), a.c); + vOb(d); + a.g = d.b; + a.d = d.a; + } + function Add(a, b, c) { + var d, e, f; + for (f = new Anb(c.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 225); + d = new $Fb(RD(Wjb(a.a, e.b), 68)); + Rmb(b.a, d); + Add(a, d, e); + } + } + function D4d(a, b, c) { + var d, e, f; + d = RD(QHd(o4d(a.a), b), 89); + f = (e = d.c, e ? e : (JTd(), wTd)); + (f.Vh() ? Vvd(a.b, RD(f, 54)) : f) == c ? i2d(d) : l2d(d, c); + return f; + } + function cqc(a, b, c) { + b.b = $wnd.Math.max(b.b, -c.a); + b.c = $wnd.Math.max(b.c, c.a - a.a); + b.d = $wnd.Math.max(b.d, -c.b); + b.a = $wnd.Math.max(b.a, c.b - a.b); + } + function JXb(a, b, c) { + this.c = a; + this.f = new bnb(); + this.e = new pjd(); + this.j = new KYb(); + this.n = new KYb(); + this.b = b; + this.g = new Uid(b.c, b.d, b.b, b.a); + this.a = c; + } + function iYb(a) { + var b, c, d, e; + this.a = new Iub(); + this.d = new _sb(); + this.e = 0; + for (c = a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + !this.f && (this.f = b); + gYb(this, b); + } + } + function djb(a) { + Pib(); + if (a.length == 0) { + this.e = 0; + this.d = 1; + this.a = cD(WC(kE, 1), Pwe, 28, 15, [0]); + } else { + this.e = 1; + this.d = a.length; + this.a = a; + Rib(this); + } + } + function dLb(a, b, c) { + fKb.call(this); + this.a = $C(IN, Mye, 217, (ZJb(), cD(WC(JN, 1), jwe, 237, 0, [WJb, XJb, YJb])).length, 0, 1); + this.b = a; + this.d = b; + this.c = c; + } + function zfc(a) { + var b, c, d, e, f, g; + g = RD(mQb(a, (Ywc(), Awc)), 12); + pQb(g, Swc, a.i.n.b); + b = s2b(a.e); + for (d = b, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + Z0b(c, g); + } + } + function Afc(a) { + var b, c, d, e, f, g; + c = RD(mQb(a, (Ywc(), Awc)), 12); + pQb(c, Swc, a.i.n.b); + b = s2b(a.g); + for (e = b, f = 0, g = e.length; f < g; ++f) { + d = e[f]; + Y0b(d, c); + } + } + function dRc(a, b) { + WQc(); + var c, d; + for (d = new is(Mr(W2b(a).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + if (c.d.i == b || c.c.i == b) { + return c; + } + } + return null; + } + function zee(a, b) { + var c, d; + c = b.qi(a.a); + if (c) { + d = WD($Nd((!c.b && (c.b = new SVd((JTd(), FTd), C8, c)), c.b), GIe)); + if (d != null) { + return d; + } + } + return b.xe(); + } + function Aee(a, b) { + var c, d; + c = b.qi(a.a); + if (c) { + d = WD($Nd((!c.b && (c.b = new SVd((JTd(), FTd), C8, c)), c.b), GIe)); + if (d != null) { + return d; + } + } + return b.xe(); + } + function B7b(a, b) { + var c, d; + c = hgb(a.a.c.p, b.a.c.p); + if (c != 0) { + return c; + } + d = hgb(a.a.d.i.p, b.a.d.i.p); + if (d != 0) { + return d; + } + return hgb(b.a.d.p, a.a.d.p); + } + function Wje(a, b) { + var c, d, e, f; + for (d = 0, e = b.gc(); d < e; ++d) { + c = b.Tl(d); + if (ZD(c, 102) && (RD(c, 19).Bb & QHe) != 0) { + f = b.Ul(d); + f != null && Rje(a, RD(f, 58)); + } + } + } + function KSb(a, b) { + var c, d, e; + Rmb(GSb, a); + b.Fc(a); + c = RD(Wjb(FSb, a), 21); + if (c) { + for (e = c.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 27); + Wmb(GSb, d, 0) != -1 || KSb(d, b); + } + } + } + function Omc(a, b, c) { + var d, e; + BMc(a.e, b, c, (qpd(), ppd)); + BMc(a.i, b, c, Xod); + if (a.a) { + e = RD(mQb(b, (Ywc(), Awc)), 12); + d = RD(mQb(c, Awc), 12); + CMc(a.g, e, d); + } + } + function mJc(a, b, c) { + var d, e, f; + d = b.c.p; + f = b.p; + a.b[d][f] = new yJc(a, b); + if (c) { + a.a[d][f] = new dJc(b); + e = RD(mQb(b, (Ywc(), pwc)), 10); + !!e && Rc(a.d, e, b); + } + } + function zIc(a, b, c) { + var d, e, f, g; + f = b.j; + g = c.j; + if (f != g) { + return f.g - g.g; + } else { + d = a.f[b.p]; + e = a.f[c.p]; + return d == 0 && e == 0 ? 0 : d == 0 ? -1 : e == 0 ? 1 : Qfb(d, e); + } + } + function Sz() { + var a; + if (Nz != 0) { + a = Date.now(); + if (a - Oz > 2e3) { + Oz = a; + Pz = $wnd.setTimeout(Yz, 10); + } + } + if (Nz++ == 0) { + _z(($z(), Zz)); + return true; + } + return false; + } + function lBb(a, b, c) { + var d; + (bBb ? (jBb(a), true) : cBb ? (SAb(), true) : fBb ? (SAb(), true) : eBb && (SAb(), false)) && (d = new aBb(b), d.b = c, hBb(a, d), void 0); + } + function oNb(a, b) { + var c; + c = !a.A.Hc((Qpd(), Ppd)) || a.q == (Bod(), wod); + a.u.Hc((Pod(), Lod)) ? c ? mNb(a, b) : qNb(a, b) : a.u.Hc(Nod) && (c ? nNb(a, b) : rNb(a, b)); + } + function Bed(a) { + var b; + if (dE(Gxd(a, (umd(), Xkd))) === dE((Fnd(), Dnd))) { + if (!vCd(a)) { + Ixd(a, Xkd, End); + } else { + b = RD(Gxd(vCd(a), Xkd), 346); + Ixd(a, Xkd, b); + } + } + } + function _fc(a) { + var b, c; + if (nQb(a.d.i, (yCc(), tBc))) { + b = RD(mQb(a.c.i, tBc), 17); + c = RD(mQb(a.d.i, tBc), 17); + return hgb(b.a, c.a) > 0; + } else { + return false; + } + } + function g_b(a, b, c) { + return new Uid($wnd.Math.min(a.a, b.a) - c / 2, $wnd.Math.min(a.b, b.b) - c / 2, $wnd.Math.abs(a.a - b.a) + c, $wnd.Math.abs(a.b - b.b) + c); + } + function _mc(a) { + var b; + this.d = new bnb(); + this.j = new pjd(); + this.g = new pjd(); + b = a.g.b; + this.f = RD(mQb(Y2b(b), (yCc(), rAc)), 88); + this.e = Kfb(UD(k2b(b, ZBc))); + } + function onc(a) { + this.d = new bnb(); + this.e = new gub(); + this.c = $C(kE, Pwe, 28, (qpd(), cD(WC(E3, 1), NAe, 64, 0, [opd, Yod, Xod, npd, ppd])).length, 15, 1); + this.b = a; + } + function $pc(a, b, c) { + var d; + d = c[a.g][b]; + switch (a.g) { + case 1: + case 3: + return new rjd(0, d); + case 2: + case 4: + return new rjd(d, 0); + default: + return null; + } + } + function Ced(b, c, d) { + var e, f; + f = RD(ltd(c.f), 205); + try { + f.rf(b, d); + mtd(c.f, f); + } catch (a) { + a = zdb(a); + if (ZD(a, 103)) { + e = a; + throw Adb(e); + } else + throw Adb(a); + } + } + function tEd(a, b, c) { + var d, e, f, g, h, i; + d = null; + h = vgd(ygd(), b); + f = null; + if (h) { + e = null; + i = zhd(h, c); + g = null; + i != null && (g = a.qf(h, i)); + e = g; + f = e; + } + d = f; + return d; + } + function sSd(a, b, c, d) { + var e; + e = a.length; + if (b >= e) + return e; + for (b = b > 0 ? b : 0; b < e; b++) { + if (zSd((BFb(b, a.length), a.charCodeAt(b)), c, d)) + break; + } + return b; + } + function anb(a, b) { + var c, d; + d = a.c.length; + b.length < d && (b = cFb(new Array(d), b)); + for (c = 0; c < d; ++c) { + bD(b, c, a.c[c]); + } + b.length > d && bD(b, d, null); + return b; + } + function lob(a, b) { + var c, d; + d = a.a.length; + b.length < d && (b = cFb(new Array(d), b)); + for (c = 0; c < d; ++c) { + bD(b, c, a.a[c]); + } + b.length > d && bD(b, d, null); + return b; + } + function Bde(a, b) { + var c, d; + ++a.j; + if (b != null) { + c = (d = a.a.Cb, ZD(d, 99) ? RD(d, 99).th() : null); + if (Jnb(b, c)) { + $wd(a.a, 4, c); + return; + } + } + $wd(a.a, 4, RD(b, 129)); + } + function mne(a) { + var b; + if (a == null) + return null; + b = Hqe(nue(a, true)); + if (b == null) { + throw Adb(new Mle("Invalid hexBinary value: '" + a + "'")); + } + return b; + } + function wA(a, b, c) { + var d; + if (b.a.length > 0) { + Rmb(a.b, new kB(b.a, c)); + d = b.a.length; + 0 < d ? b.a = zhb(b.a, 0, 0) : 0 > d && (b.a += Hhb($C(hE, zwe, 28, -d, 15, 1))); + } + } + function yIb(a, b, c) { + var d, e, f; + if (c[b.d]) { + return; + } + c[b.d] = true; + for (e = new Anb(CIb(b)); e.a < e.c.c.length; ) { + d = RD(ynb(e), 218); + f = oIb(d, b); + yIb(a, f, c); + } + } + function dub(a, b, c) { + var d, e, f; + e = RD(Wjb(a.e, b), 400); + if (!e) { + d = new uub(a, b, c); + Zjb(a.e, b, d); + qub(d); + return null; + } else { + f = qlb(e, c); + eub(a, e); + return f; + } + } + function r5d(a, b, c, d) { + var e, f, g; + e = new P3d(a.e, 1, 13, (g = b.c, g ? g : (JTd(), wTd)), (f = c.c, f ? f : (JTd(), wTd)), fZd(a, b), false); + !d ? d = e : d.nj(e); + return d; + } + function nMb() { + hMb(); + return cD(WC(XN, 1), jwe, 164, 0, [eMb, dMb, fMb, XLb, WLb, YLb, _Lb, $Lb, ZLb, cMb, bMb, aMb, ULb, TLb, VLb, RLb, QLb, SLb, OLb, NLb, PLb, gMb]); + } + function jWc(a) { + switch (a.g) { + case 4: + return new rjd(0, -1); + case 1: + return new rjd(1, 0); + case 2: + return new rjd(-1, 0); + default: + return new rjd(0, 1); + } + } + function f_b(a) { + switch (a.g) { + case 1: + return Cmd(), Bmd; + case 4: + return Cmd(), ymd; + case 2: + return Cmd(), zmd; + case 3: + return Cmd(), xmd; + } + return Cmd(), Amd; + } + function s$d(a) { + var b; + b = a.hj(null); + switch (b) { + case 10: + return 0; + case 15: + return 1; + case 14: + return 2; + case 11: + return 3; + case 21: + return 4; + } + return -1; + } + function Yhd() { + Yhd = geb; + Whd = new Zhd("PARENTS", 0); + Vhd = new Zhd("NODES", 1); + Thd = new Zhd("EDGES", 2); + Xhd = new Zhd("PORTS", 3); + Uhd = new Zhd("LABELS", 4); + } + function AA(a, b, c) { + var d; + d = c.q.getFullYear() - Owe + Owe; + d < 0 && (d = -d); + switch (b) { + case 1: + a.a += d; + break; + case 2: + UA(a, d % 100, 2); + break; + default: + UA(a, d, b); + } + } + function Sub(a, b) { + var c, d; + wFb(b, a.b); + if (b >= a.b >> 1) { + d = a.c; + for (c = a.b; c > b; --c) { + d = d.b; + } + } else { + d = a.a.a; + for (c = 0; c < b; ++c) { + d = d.a; + } + } + return new hvb(a, b, d); + } + function DHb() { + DHb = geb; + CHb = new EHb("NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST", 0); + BHb = new EHb("CORNER_CASES_THAN_SINGLE_SIDE_LAST", 1); + } + function tnc(a) { + this.b = new bnb(); + this.e = new bnb(); + this.d = a; + this.a = !QDb(CDb(new SDb(null, new Twb(new l4b(a.b))), new PAb(new unc()))).Bd((xDb(), wDb)); + } + function ssc(a, b) { + var c, d, e, f; + c = 0; + for (e = new Anb(b.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 10); + f = d.o.a + d.d.c + d.d.b + a.j; + c = $wnd.Math.max(c, f); + } + return c; + } + function OUc(a, b) { + var c, d, e; + e = b.d.i; + d = e.k; + if (d == (r3b(), p3b) || d == l3b) { + return; + } + c = new is(Mr(a3b(e).a.Kc(), new ir())); + gs(c) && Zjb(a.k, b, RD(hs(c), 18)); + } + function O0c(a, b) { + B0c(); + return Qfb((a.a.b == 0 ? new rjd(a.c.e.a, a.c.e.b) : RD(Qub(a.a), 8)).b, (b.a.b == 0 ? new rjd(b.c.e.a, b.c.e.b) : RD(Qub(b.a), 8)).b); + } + function P0c(a, b) { + B0c(); + return Qfb((a.a.b == 0 ? new rjd(a.c.e.a, a.c.e.b) : RD(Qub(a.a), 8)).a, (b.a.b == 0 ? new rjd(b.c.e.a, b.c.e.b) : RD(Qub(b.a), 8)).a); + } + function S0c(a, b) { + B0c(); + return Qfb((a.a.b == 0 ? new rjd(a.b.e.a, a.b.e.b) : RD(Rub(a.a), 8)).a, (b.a.b == 0 ? new rjd(b.b.e.a, b.b.e.b) : RD(Rub(b.a), 8)).a); + } + function Q0c(a, b) { + B0c(); + return Qfb((a.a.b == 0 ? new rjd(a.b.e.a, a.b.e.b) : RD(Rub(a.a), 8)).b, (b.a.b == 0 ? new rjd(b.b.e.a, b.b.e.b) : RD(Rub(b.a), 8)).b); + } + function pod() { + pod = geb; + mod = new qod("DISTRIBUTED", 0); + ood = new qod("JUSTIFIED", 1); + kod = new qod("BEGIN", 2); + lod = new qod(Kye, 3); + nod = new qod("END", 4); + } + function Kvd(a, b) { + var c, d, e; + d = vYd(a.Dh(), b); + c = b - a.ji(); + return c < 0 ? (e = a.Ih(d), e >= 0 ? a.Wh(e) : Rvd(a, d)) : c < 0 ? Rvd(a, d) : RD(d, 69).wk().Bk(a, a.hi(), c); + } + function Fxd(a) { + var b, c, d; + d = (!a.o && (a.o = new DVd((pvd(), mvd), X4, a, 0)), a.o); + for (c = d.c.Kc(); c.e != c.i.gc(); ) { + b = RD(c.Yj(), 44); + b.md(); + } + return dOd(d); + } + function iGd(a) { + var b; + if (ZD(a.a, 4)) { + b = FId(a.a); + if (b == null) { + throw Adb(new dgb(HGe + a.b + "'. " + DGe + (lfb(b6), b6.k) + EGe)); + } + return b; + } else { + return a.a; + } + } + function iSd(a, b) { + var c, d; + if (a.j.length != b.j.length) + return false; + for (c = 0, d = a.j.length; c < d; c++) { + if (!lhb(a.j[c], b.j[c])) + return false; + } + return true; + } + function bMd(b) { + var c; + try { + c = b.i.Xb(b.e); + b.Xj(); + b.g = b.e++; + return c; + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + b.Xj(); + throw Adb(new Dvb()); + } else + throw Adb(a); + } + } + function xMd(b) { + var c; + try { + c = b.c.Vi(b.e); + b.Xj(); + b.g = b.e++; + return c; + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + b.Xj(); + throw Adb(new Dvb()); + } else + throw Adb(a); + } + } + function vSd(a) { + var b, c, d, e; + e = 0; + for (c = 0, d = a.length; c < d; c++) { + b = (BFb(c, a.length), a.charCodeAt(c)); + b >= 64 && b < 128 && (e = Rdb(e, Sdb(1, b - 64))); + } + return e; + } + function k2b(a, b) { + var c, d; + d = null; + if (nQb(a, (umd(), amd))) { + c = RD(mQb(a, amd), 96); + c.pf(b) && (d = c.of(b)); + } + d == null && !!Y2b(a) && (d = mQb(Y2b(a), b)); + return d; + } + function i0b(a, b) { + var c; + c = RD(mQb(a, (yCc(), RAc)), 75); + if (br(b, f0b)) { + if (!c) { + c = new Ejd(); + pQb(a, RAc, c); + } else { + Xub(c); + } + } else + !!c && pQb(a, RAc, null); + return c; + } + function tSb() { + tSb = geb; + sSb = (umd(), Yld); + mSb = Ukd; + hSb = Dkd; + nSb = tld; + qSb = (YHb(), UHb); + pSb = SHb; + rSb = WHb; + oSb = RHb; + jSb = (eSb(), aSb); + iSb = _Rb; + kSb = cSb; + lSb = dSb; + } + function PZb(a) { + NZb(); + this.c = new bnb(); + this.d = a; + switch (a.g) { + case 0: + case 2: + this.a = Fob(MZb); + this.b = oxe; + break; + case 3: + case 1: + this.a = MZb; + this.b = pxe; + } + } + function c9b(a) { + var b; + if (!Cod(RD(mQb(a, (yCc(), BBc)), 101))) { + return; + } + b = a.b; + d9b((tFb(0, b.c.length), RD(b.c[0], 30))); + d9b(RD(Vmb(b, b.c.length - 1), 30)); + } + function ohc(a, b) { + b.Ug("Self-Loop post-processing", 1); + FDb(CDb(CDb(EDb(new SDb(null, new Swb(a.b, 16)), new uhc()), new whc()), new yhc()), new Ahc()); + b.Vg(); + } + function xrd(a, b, c) { + var d, e; + if (a.c) { + Dyd(a.c, a.c.i + b); + Eyd(a.c, a.c.j + c); + } else { + for (e = new Anb(a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 163); + xrd(d, b, c); + } + } + } + function ine(a) { + var b; + if (a == null) + return null; + b = Aqe(nue(a, true)); + if (b == null) { + throw Adb(new Mle("Invalid base64Binary value: '" + a + "'")); + } + return b; + } + function ju(b, c) { + var d; + d = b.fd(c); + try { + return d.Pb(); + } catch (a) { + a = zdb(a); + if (ZD(a, 112)) { + throw Adb(new veb("Can't get element " + c)); + } else + throw Adb(a); + } + } + function ANb(a, b) { + var c, d, e; + c = a.o; + for (e = RD(RD(Qc(a.r, b), 21), 87).Kc(); e.Ob(); ) { + d = RD(e.Pb(), 117); + d.e.a = uNb(d, c.a); + d.e.b = c.b * Kfb(UD(d.b.of(sNb))); + } + } + function kdc(a, b) { + var c, d, e; + e = new cnb(b.gc()); + for (d = b.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 293); + c.c == c.f ? _cc(a, c, c.c) : adc(a, c) || (ZEb(e.c, c), true); + } + return e; + } + function i3b(a) { + var b; + b = new bib(); + b.a += "n"; + a.k != (r3b(), p3b) && Zhb(Zhb((b.a += "(", b), ps(a.k).toLowerCase()), ")"); + Zhb((b.a += "_", b), X2b(a)); + return b.a; + } + function h9b(a, b) { + var c, d, e, f; + e = a.k; + c = Kfb(UD(mQb(a, (Ywc(), Jwc)))); + f = b.k; + d = Kfb(UD(mQb(b, Jwc))); + return f != (r3b(), m3b) ? -1 : e != m3b ? 1 : c == d ? 0 : c < d ? -1 : 1; + } + function Lad(a, b) { + var c, d; + c = RD(RD(Wjb(a.g, b.a), 42).a, 68); + d = RD(RD(Wjb(a.g, b.b), 42).a, 68); + return bjd(b.a, b.b) - bjd(b.a, Pid(c.b)) - bjd(b.b, Pid(d.b)); + } + function GMb(a, b) { + var c; + c = RD(Vrb(a.b, b), 127).n; + switch (b.g) { + case 1: + a.t >= 0 && (c.d = a.t); + break; + case 3: + a.t >= 0 && (c.a = a.t); + } + if (a.C) { + c.b = a.C.b; + c.c = a.C.c; + } + } + function JDc() { + JDc = geb; + IDc = new LDc(mEe, 0); + FDc = new LDc(BBe, 1); + GDc = new LDc("LINEAR_SEGMENTS", 2); + EDc = new LDc("BRANDES_KOEPF", 3); + HDc = new LDc(lEe, 4); + } + function IRb() { + IRb = geb; + FRb = new JRb(_ye, 0); + ERb = new JRb(aze, 1); + GRb = new JRb(bze, 2); + HRb = new JRb(cze, 3); + FRb.a = false; + ERb.a = true; + GRb.a = false; + HRb.a = true; + } + function IPb() { + IPb = geb; + FPb = new JPb(_ye, 0); + EPb = new JPb(aze, 1); + GPb = new JPb(bze, 2); + HPb = new JPb(cze, 3); + FPb.a = false; + EPb.a = true; + GPb.a = false; + HPb.a = true; + } + function Ivd(a, b, c, d) { + var e; + if (c >= 0) { + return a.Sh(b, c, d); + } else { + !!a.Ph() && (d = (e = a.Fh(), e >= 0 ? a.Ah(d) : a.Ph().Th(a, -1 - e, null, d))); + return a.Ch(b, c, d); + } + } + function Zyd(a, b) { + switch (b) { + case 7: + !a.e && (a.e = new Yie(G4, a, 7, 4)); + sLd(a.e); + return; + case 8: + !a.d && (a.d = new Yie(G4, a, 8, 5)); + sLd(a.d); + return; + } + yyd(a, b); + } + function Ixd(a, b, c) { + c == null ? (!a.o && (a.o = new DVd((pvd(), mvd), X4, a, 0)), jOd(a.o, b)) : (!a.o && (a.o = new DVd((pvd(), mvd), X4, a, 0)), fOd(a.o, b, c)); + return a; + } + function Aob(a, b) { + yob(); + var c, d, e, f; + c = a; + f = b; + if (ZD(a, 21) && !ZD(b, 21)) { + c = b; + f = a; + } + for (e = c.Kc(); e.Ob(); ) { + d = e.Pb(); + if (f.Hc(d)) { + return false; + } + } + return true; + } + function qTc(a, b, c, d) { + if (b.a < d.a) { + return true; + } else if (b.a == d.a) { + if (b.b < d.b) { + return true; + } else if (b.b == d.b) { + if (a.b > c.b) { + return true; + } + } + } + return false; + } + function QD(a, b) { + if (bE(a)) { + return !!PD[b]; + } else if (a.Sm) { + return !!a.Sm[b]; + } else if (_D(a)) { + return !!OD[b]; + } else if ($D(a)) { + return !!ND[b]; + } + return false; + } + function udc(a) { + var b; + b = a.a; + do { + b = RD(hs(new is(Mr(Z2b(b).a.Kc(), new ir()))), 18).c.i; + b.k == (r3b(), o3b) && a.b.Fc(b); + } while (b.k == (r3b(), o3b)); + a.b = hv(a.b); + } + function UGc(a, b) { + var c, d, e; + e = a; + for (d = new is(Mr(Z2b(b).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + !!c.c.i.c && (e = $wnd.Math.max(e, c.c.i.c.p)); + } + return e; + } + function INb(a, b) { + var c, d, e; + e = 0; + d = RD(RD(Qc(a.r, b), 21), 87).Kc(); + while (d.Ob()) { + c = RD(d.Pb(), 117); + e += c.d.d + c.b.Mf().b + c.d.a; + d.Ob() && (e += a.w); + } + return e; + } + function AMb(a, b) { + var c, d, e; + e = 0; + d = RD(RD(Qc(a.r, b), 21), 87).Kc(); + while (d.Ob()) { + c = RD(d.Pb(), 117); + e += c.d.b + c.b.Mf().a + c.d.c; + d.Ob() && (e += a.w); + } + return e; + } + function O2c(a) { + var b, c, d, e; + d = 0; + e = Q2c(a); + if (e.c.length == 0) { + return 1; + } else { + for (c = new Anb(e); c.a < c.c.c.length; ) { + b = RD(ynb(c), 27); + d += O2c(b); + } + } + return d; + } + function aIc(a) { + var b, c, d; + d = a.c.a; + a.p = (Qb(d), new dnb(d)); + for (c = new Anb(d); c.a < c.c.c.length; ) { + b = RD(ynb(c), 10); + b.p = eIc(b).a; + } + yob(); + _mb(a.p, new nIc()); + } + function UJd(a, b, c) { + var d, e, f, g; + d = a.dd(b); + if (d != -1) { + if (a.Pj()) { + f = a.Qj(); + g = cJd(a, d); + e = a.Ij(4, g, null, d, f); + !c ? c = e : c.nj(e); + } else { + cJd(a, d); + } + } + return c; + } + function rLd(a, b, c) { + var d, e, f, g; + d = a.dd(b); + if (d != -1) { + if (a.Pj()) { + f = a.Qj(); + g = THd(a, d); + e = a.Ij(4, g, null, d, f); + !c ? c = e : c.nj(e); + } else { + THd(a, d); + } + } + return c; + } + function Tje(a, b, c, d) { + var e, f, g; + if (c.Xh(b)) { + nke(); + if (wWd(b)) { + e = RD(c.Mh(b), 160); + Wje(a, e); + } else { + f = (g = b, !g ? null : RD(d, 54).gi(g)); + !!f && Uje(c.Mh(b), f); + } + } + } + function Dvd(a, b, c, d) { + var e, f, g; + f = vYd(a.Dh(), b); + e = b - a.ji(); + return e < 0 ? (g = a.Ih(f), g >= 0 ? a.Lh(g, c, true) : Qvd(a, f, c)) : RD(f, 69).wk().yk(a, a.hi(), e, c, d); + } + function aNb(a, b, c, d) { + var e, f; + f = b.pf((umd(), ild)) ? RD(b.of(ild), 21) : a.j; + e = lMb(f); + if (e == (hMb(), gMb)) { + return; + } + if (c && !jMb(e)) { + return; + } + LKb(cNb(a, e, d), b); + } + function Y6b(a) { + switch (a.g) { + case 1: + return mOb(), lOb; + case 3: + return mOb(), iOb; + case 2: + return mOb(), kOb; + case 4: + return mOb(), jOb; + default: + return null; + } + } + function kmc(a, b, c) { + if (a.e) { + switch (a.b) { + case 1: + Ulc(a.c, b, c); + break; + case 0: + Vlc(a.c, b, c); + } + } else { + Slc(a.c, b, c); + } + a.a[b.p][c.p] = a.c.i; + a.a[c.p][b.p] = a.c.e; + } + function LLc(a) { + var b, c; + if (a == null) { + return null; + } + c = $C(jR, Nve, 199, a.length, 0, 2); + for (b = 0; b < c.length; b++) { + c[b] = RD(Gnb(a[b], a[b].length), 199); + } + return c; + } + function Dhe(a) { + var b; + if (Bhe(a)) { + Ahe(a); + if (a.ul()) { + b = Bge(a.e, a.b, a.c, a.a, a.j); + a.j = b; + } + a.g = a.a; + ++a.a; + ++a.c; + a.i = 0; + return a.j; + } else { + throw Adb(new Dvb()); + } + } + function YOb(a, b) { + var c, d, e, f; + f = a.o; + c = a.p; + f < c ? f *= f : c *= c; + d = f + c; + f = b.o; + c = b.p; + f < c ? f *= f : c *= c; + e = f + c; + if (d < e) { + return -1; + } + if (d == e) { + return 0; + } + return 1; + } + function fZd(a, b) { + var c, d, e; + e = RHd(a, b); + if (e >= 0) + return e; + if (a.ol()) { + for (d = 0; d < a.i; ++d) { + c = a.pl(RD(a.g[d], 58)); + if (dE(c) === dE(b)) { + return d; + } + } + } + return -1; + } + function eHd(a, b, c) { + var d, e; + e = a.gc(); + if (b >= e) + throw Adb(new aMd(b, e)); + if (a.Si()) { + d = a.dd(c); + if (d >= 0 && d != b) { + throw Adb(new agb(LIe)); + } + } + return a.Xi(b, c); + } + function wx(a, b) { + this.a = RD(Qb(a), 253); + this.b = RD(Qb(b), 253); + if (a.Ed(b) > 0 || a == (Wk(), Vk) || b == (kl(), jl)) { + throw Adb(new agb("Invalid range: " + Dx(a, b))); + } + } + function p_b(a) { + var b, c; + this.b = new bnb(); + this.c = a; + this.a = false; + for (c = new Anb(a.a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 10); + this.a = this.a | b.k == (r3b(), p3b); + } + } + function xIb(a, b) { + var c, d, e; + c = eJb(new gJb(), a); + for (e = new Anb(b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 125); + rIb(uIb(tIb(vIb(sIb(new wIb(), 0), 0), c), d)); + } + return c; + } + function y0b(a, b, c) { + c.Ug("Compound graph preprocessor", 1); + a.a = new Tp(); + D0b(a, b, null); + x0b(a, b); + C0b(a); + pQb(b, (Ywc(), _vc), a.a); + a.a = null; + akb(a.b); + c.Vg(); + } + function aec(a, b, c) { + var d, e, f; + for (e = new is(Mr((b ? Z2b(a) : a3b(a)).a.Kc(), new ir())); gs(e); ) { + d = RD(hs(e), 18); + f = b ? d.c.i : d.d.i; + f.k == (r3b(), n3b) && g3b(f, c); + } + } + function FZc(a, b) { + var c, d, e; + b.Ug("Untreeify", 1); + c = RD(mQb(a, (q$c(), k$c)), 15); + for (e = c.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 65); + Mub(d.b.d, d); + Mub(d.c.b, d); + } + b.Vg(); + } + function Znc(a) { + var b, c, d; + for (d = RD(Qc(a.a, (Bnc(), znc)), 15).Kc(); d.Ob(); ) { + c = RD(d.Pb(), 105); + b = foc(c); + Qnc(a, c, b[0], (joc(), goc), 0); + Qnc(a, c, b[1], ioc, 1); + } + } + function $nc(a) { + var b, c, d; + for (d = RD(Qc(a.a, (Bnc(), Anc)), 15).Kc(); d.Ob(); ) { + c = RD(d.Pb(), 105); + b = foc(c); + Qnc(a, c, b[0], (joc(), goc), 0); + Qnc(a, c, b[1], ioc, 1); + } + } + function wDc() { + wDc = geb; + uDc = new yDc(LAe, 0); + vDc = new yDc("PORT_POSITION", 1); + tDc = new yDc("NODE_SIZE_WHERE_SPACE_PERMITS", 2); + sDc = new yDc("NODE_SIZE", 3); + } + function z6c() { + z6c = geb; + w6c = new A6c("INTERACTIVE_NODE_REORDERER", 0); + y6c = new A6c("MIN_SIZE_PRE_PROCESSOR", 1); + x6c = new A6c("MIN_SIZE_POST_PROCESSOR", 2); + } + function Rjd() { + Rjd = geb; + Ljd = new Sjd("AUTOMATIC", 0); + Ojd = new Sjd(Nye, 1); + Pjd = new Sjd(Oye, 2); + Qjd = new Sjd("TOP", 3); + Mjd = new Sjd(Qye, 4); + Njd = new Sjd(Kye, 5); + } + function Pjb(a, b, c, d) { + Ljb(); + var e, f; + e = 0; + for (f = 0; f < c; f++) { + e = Bdb(Ndb(Cdb(b[f], yxe), Cdb(d, yxe)), Cdb(Ydb(e), yxe)); + a[f] = Ydb(e); + e = Udb(e, 32); + } + return Ydb(e); + } + function qKb(a, b, c) { + var d, e; + e = 0; + for (d = 0; d < iKb; d++) { + e = $wnd.Math.max(e, gKb(a.a[b.g][d], c)); + } + b == (ZJb(), XJb) && !!a.b && (e = $wnd.Math.max(e, a.b.b)); + return e; + } + function Jwb(a, b) { + var c, d; + lFb(b > 0); + if ((b & -b) == b) { + return eE(b * Kwb(a, 31) * 4656612873077393e-25); + } + do { + c = Kwb(a, 31); + d = c % b; + } while (c - d + (b - 1) < 0); + return eE(d); + } + function d2b(a, b, c) { + switch (c.g) { + case 1: + a.a = b.a / 2; + a.b = 0; + break; + case 2: + a.a = b.a; + a.b = b.b / 2; + break; + case 3: + a.a = b.a / 2; + a.b = b.b; + break; + case 4: + a.a = 0; + a.b = b.b / 2; + } + } + function Onc(a, b, c, d) { + var e, f; + for (e = b; e < a.c.length; e++) { + f = (tFb(e, a.c.length), RD(a.c[e], 12)); + if (c.Mb(f)) { + ZEb(d.c, f); + } else { + return e; + } + } + return a.c.length; + } + function u5c(a) { + switch (a.g) { + case 0: + return null; + case 1: + return new _5c(); + case 2: + return new R5c(); + default: + throw Adb(new agb(mFe + (a.f != null ? a.f : "" + a.g))); + } + } + function U9c(a, b, c) { + var d, e; + L9c(a, b - a.s, c - a.t); + for (e = new Anb(a.n); e.a < e.c.c.length; ) { + d = RD(ynb(e), 209); + Y9c(d, d.e + b - a.s); + Z9c(d, d.f + c - a.t); + } + a.s = b; + a.t = c; + } + function AIb(a) { + var b, c, d, e, f; + c = 0; + for (e = new Anb(a.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 125); + d.d = c++; + } + b = zIb(a); + f = null; + b.c.length > 1 && (f = xIb(a, b)); + return f; + } + function yqd(a) { + var b; + b = Kfb(UD(Gxd(a, (umd(), lmd)))) * $wnd.Math.sqrt((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a).i); + return new rjd(b, b / Kfb(UD(Gxd(a, kmd)))); + } + function Dzd(a) { + var b; + if (!!a.f && a.f.Vh()) { + b = RD(a.f, 54); + a.f = RD(Vvd(a, b), 84); + a.f != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 9, 8, b, a.f)); + } + return a.f; + } + function Ezd(a) { + var b; + if (!!a.i && a.i.Vh()) { + b = RD(a.i, 54); + a.i = RD(Vvd(a, b), 84); + a.i != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 9, 7, b, a.i)); + } + return a.i; + } + function Z5d(a) { + var b; + if (!!a.b && (a.b.Db & 64) != 0) { + b = a.b; + a.b = RD(Vvd(a, b), 19); + a.b != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 9, 21, b, a.b)); + } + return a.b; + } + function UNd(a, b) { + var c, d, e; + if (a.d == null) { + ++a.e; + ++a.f; + } else { + d = b.Bi(); + _Nd(a, a.f + 1); + e = (d & lve) % a.d.length; + c = a.d[e]; + !c && (c = a.d[e] = a.dk()); + c.Fc(b); + ++a.f; + } + } + function Mge(a, b, c) { + var d; + if (b.tk()) { + return false; + } else if (b.Ik() != -2) { + d = b.ik(); + return d == null ? c == null : pb(d, c); + } else + return b.qk() == a.e.Dh() && c == null; + } + function Io() { + var a; + dk(16, fwe); + a = Wp(16); + this.b = $C(XF, ewe, 303, a, 0, 1); + this.c = $C(XF, ewe, 303, a, 0, 1); + this.a = null; + this.e = null; + this.i = 0; + this.f = a - 1; + this.g = 0; + } + function j3b(a) { + v2b.call(this); + this.k = (r3b(), p3b); + this.j = (dk(6, iwe), new cnb(6)); + this.b = (dk(2, iwe), new cnb(2)); + this.d = new T2b(); + this.f = new C3b(); + this.a = a; + } + function wgc(a) { + var b, c; + if (a.c.length <= 1) { + return; + } + b = tgc(a, (qpd(), npd)); + vgc(a, RD(b.a, 17).a, RD(b.b, 17).a); + c = tgc(a, ppd); + vgc(a, RD(c.a, 17).a, RD(c.b, 17).a); + } + function vHc(a, b, c) { + var d, e; + e = a.a.b; + for (d = e.c.length; d < c; d++) { + Qmb(e, e.c.length, new R4b(a.a)); + } + g3b(b, (tFb(c - 1, e.c.length), RD(e.c[c - 1], 30))); + a.b[b.p] = c; + } + function K_c(a, b) { + var c, d, e; + a.b[b.g] = 1; + for (d = Sub(b.d, 0); d.b != d.d.c; ) { + c = RD(evb(d), 65); + e = c.c; + a.b[e.g] == 1 ? Mub(a.a, c) : a.b[e.g] == 2 ? a.b[e.g] = 1 : K_c(a, e); + } + } + function u3c(a, b, c, d) { + var e, f, g; + e = d ? RD(Qc(a.a, b), 21) : RD(Qc(a.b, b), 21); + for (g = e.Kc(); g.Ob(); ) { + f = RD(g.Pb(), 27); + if (o3c(a, c, f)) { + return true; + } + } + return false; + } + function d$d(a) { + var b, c; + for (c = new dMd(a); c.e != c.i.gc(); ) { + b = RD(bMd(c), 89); + if (!!b.e || (!b.d && (b.d = new XZd(o7, b, 1)), b.d).i != 0) { + return true; + } + } + return false; + } + function o5d(a) { + var b, c; + for (c = new dMd(a); c.e != c.i.gc(); ) { + b = RD(bMd(c), 89); + if (!!b.e || (!b.d && (b.d = new XZd(o7, b, 1)), b.d).i != 0) { + return true; + } + } + return false; + } + function dIc(a) { + var b, c, d; + b = 0; + for (d = new Anb(a.c.a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 10); + b += Kr(new is(Mr(a3b(c).a.Kc(), new ir()))); + } + return b / a.c.a.c.length; + } + function Tcd() { + Tcd = geb; + Scd = (Kcd(), Jcd); + Qcd = new A3b(8); + new mGd((umd(), tld), Qcd); + new mGd(fmd, 8); + Rcd = Hcd; + Ocd = xcd; + Pcd = ycd; + Ncd = new mGd(Mkd, (Geb(), false)); + } + function $dd(a, b, c) { + var d; + c.Ug("Shrinking tree compaction", 1); + if (Heb(TD(mQb(b, (OQb(), MQb))))) { + Ydd(a, b.f); + zQb(b.f, (d = b.c, d)); + } else { + zQb(b.f, b.c); + } + c.Vg(); + } + function Uyd(a, b, c, d) { + switch (b) { + case 7: + return !a.e && (a.e = new Yie(G4, a, 7, 4)), a.e; + case 8: + return !a.d && (a.d = new Yie(G4, a, 8, 5)), a.d; + } + return vyd(a, b, c, d); + } + function h2d(a) { + var b; + if (!!a.a && a.a.Vh()) { + b = RD(a.a, 54); + a.a = RD(Vvd(a, b), 142); + a.a != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 9, 5, b, a.a)); + } + return a.a; + } + function Xqe(a) { + if (a < 48) + return -1; + if (a > 102) + return -1; + if (a <= 57) + return a - 48; + if (a < 65) + return -1; + if (a <= 70) + return a - 65 + 10; + if (a < 97) + return -1; + return a - 97 + 10; + } + function ck(a, b) { + if (a == null) { + throw Adb(new Ogb("null key in entry: null=" + b)); + } else if (b == null) { + throw Adb(new Ogb("null value in entry: " + a + "=null")); + } + } + function Cr(a, b) { + var c, d; + while (a.Ob()) { + if (!b.Ob()) { + return false; + } + c = a.Pb(); + d = b.Pb(); + if (!(dE(c) === dE(d) || c != null && pb(c, d))) { + return false; + } + } + return !b.Ob(); + } + function aLb(a, b) { + var c; + c = cD(WC(iE, 1), vxe, 28, 15, [gKb(a.a[0], b), gKb(a.a[1], b), gKb(a.a[2], b)]); + if (a.d) { + c[0] = $wnd.Math.max(c[0], c[2]); + c[2] = c[0]; + } + return c; + } + function bLb(a, b) { + var c; + c = cD(WC(iE, 1), vxe, 28, 15, [hKb(a.a[0], b), hKb(a.a[1], b), hKb(a.a[2], b)]); + if (a.d) { + c[0] = $wnd.Math.max(c[0], c[2]); + c[2] = c[0]; + } + return c; + } + function vIc(a, b, c) { + if (!Cod(RD(mQb(b, (yCc(), BBc)), 101))) { + uIc(a, b, e3b(b, c)); + uIc(a, b, e3b(b, (qpd(), npd))); + uIc(a, b, e3b(b, Yod)); + yob(); + _mb(b.j, new JIc(a)); + } + } + function sUc(a) { + var b, c; + a.c || vUc(a); + c = new Ejd(); + b = new Anb(a.a); + ynb(b); + while (b.a < b.c.c.length) { + Mub(c, RD(ynb(b), 418).a); + } + sFb(c.b != 0); + Wub(c, c.c.b); + return c; + } + function O9c(a, b, c) { + var d, e, f, g, h; + h = a.r + b; + a.r += b; + a.d += c; + d = c / a.n.c.length; + e = 0; + for (g = new Anb(a.n); g.a < g.c.c.length; ) { + f = RD(ynb(g), 209); + X9c(f, h, d, e); + ++e; + } + } + function kHb(a) { + var b, c, d; + a.b.a.$b(); + a.a = $C(hN, rve, 60, a.c.c.a.b.c.length, 0, 1); + b = 0; + for (d = new Anb(a.c.c.a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 60); + c.f = b++; + } + } + function TYb(a) { + var b, c, d; + a.b.a.$b(); + a.a = $C(bQ, rve, 86, a.c.a.a.b.c.length, 0, 1); + b = 0; + for (d = new Anb(a.c.a.a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 86); + c.i = b++; + } + } + function Er(a) { + var b; + b = yr(a); + if (!gs(a)) { + throw Adb(new veb("position (0) must be less than the number of elements that remained (" + b + ")")); + } + return hs(a); + } + function ZCb(a, b) { + var c; + if (!a.a) { + c = $C(iE, vxe, 28, 0, 15, 1); + ixb(a.b.a, new bDb(c)); + bFb(c, heb(iob.prototype.Me, iob, [])); + a.a = new Lxb(c, a.d); + } + return zxb(a.a, b); + } + function $Pb(b, c, d) { + var e; + try { + return PPb(b, c + b.j, d + b.k); + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + e = a; + throw Adb(new veb(e.g + ize + c + pve + d + ").")); + } else + throw Adb(a); + } + } + function _Pb(b, c, d) { + var e; + try { + return QPb(b, c + b.j, d + b.k); + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + e = a; + throw Adb(new veb(e.g + ize + c + pve + d + ").")); + } else + throw Adb(a); + } + } + function aQb(b, c, d) { + var e; + try { + return RPb(b, c + b.j, d + b.k); + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + e = a; + throw Adb(new veb(e.g + ize + c + pve + d + ").")); + } else + throw Adb(a); + } + } + function J8b(a) { + switch (a.g) { + case 1: + return qpd(), ppd; + case 4: + return qpd(), Yod; + case 3: + return qpd(), Xod; + case 2: + return qpd(), npd; + default: + return qpd(), opd; + } + } + function Imc(a, b, c) { + if (b.k == (r3b(), p3b) && c.k == o3b) { + a.d = Fmc(b, (qpd(), npd)); + a.b = Fmc(b, Yod); + } + if (c.k == p3b && b.k == o3b) { + a.d = Fmc(c, (qpd(), Yod)); + a.b = Fmc(c, npd); + } + } + function Mmc(a, b) { + var c, d, e; + e = b3b(a, b); + for (d = e.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 12); + if (mQb(c, (Ywc(), Iwc)) != null || k4b(new l4b(c.b))) { + return true; + } + } + return false; + } + function RNc(a, b, c) { + c.Ug("Linear segments node placement", 1); + a.b = RD(mQb(b, (Ywc(), Qwc)), 312); + SNc(a, b); + NNc(a, b); + KNc(a, b); + QNc(a); + a.a = null; + a.b = null; + c.Vg(); + } + function W9c(a, b) { + Dyd(b, a.e + a.d + (a.c.c.length == 0 ? 0 : a.b)); + Eyd(b, a.f); + a.a = $wnd.Math.max(a.a, b.f); + a.d += b.g + (a.c.c.length == 0 ? 0 : a.b); + Rmb(a.c, b); + return true; + } + function bad(a, b, c) { + var d, e, f, g; + g = 0; + d = c / a.a.c.length; + for (f = new Anb(a.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 172); + U9c(e, e.s, e.t + g * d); + O9c(e, a.d - e.r + b, d); + ++g; + } + } + function Cid(a, b) { + var c, d, e, f, g, h; + e = b.length - 1; + g = 0; + h = 0; + for (d = 0; d <= e; d++) { + f = b[d]; + c = vid(e, d) * Iid(1 - a, e - d) * Iid(a, d); + g += f.a * c; + h += f.b * c; + } + return new rjd(g, h); + } + function JHd(a, b) { + var c, d, e, f, g; + c = b.gc(); + a._i(a.i + c); + f = b.Kc(); + g = a.i; + a.i += c; + for (d = g; d < a.i; ++d) { + e = f.Pb(); + MHd(a, d, a.Zi(d, e)); + a.Mi(d, e); + a.Ni(); + } + return c != 0; + } + function TJd(a, b, c) { + var d, e, f; + if (a.Pj()) { + d = a.Ej(); + f = a.Qj(); + ++a.j; + a.qj(d, a.Zi(d, b)); + e = a.Ij(3, null, b, d, f); + !c ? c = e : c.nj(e); + } else { + $Id(a, a.Ej(), b); + } + return c; + } + function u0d(a, b, c) { + var d, e, f; + d = RD(QHd(tYd(a.a), b), 89); + f = (e = d.c, ZD(e, 90) ? RD(e, 29) : (JTd(), zTd)); + ((f.Db & 64) != 0 ? Vvd(a.b, f) : f) == c ? i2d(d) : l2d(d, c); + return f; + } + function pne(a) { + var b; + return a == null ? null : new ejb((b = nue(a, true), b.length > 0 && (BFb(0, b.length), b.charCodeAt(0) == 43) ? (BFb(1, b.length + 1), b.substr(1)) : b)); + } + function qne(a) { + var b; + return a == null ? null : new ejb((b = nue(a, true), b.length > 0 && (BFb(0, b.length), b.charCodeAt(0) == 43) ? (BFb(1, b.length + 1), b.substr(1)) : b)); + } + function Syb(a, b, c, d, e, f, g, h) { + var i, j; + if (!d) { + return; + } + i = d.a[0]; + !!i && Syb(a, b, c, i, e, f, g, h); + Tyb(a, c, d.d, e, f, g, h) && b.Fc(d); + j = d.a[1]; + !!j && Syb(a, b, c, j, e, f, g, h); + } + function PPb(b, c, d) { + try { + return Gdb(SPb(b, c, d), 1); + } catch (a) { + a = zdb(a); + if (ZD(a, 333)) { + throw Adb(new veb(fze + b.o + "*" + b.p + gze + c + pve + d + hze)); + } else + throw Adb(a); + } + } + function QPb(b, c, d) { + try { + return Gdb(SPb(b, c, d), 0); + } catch (a) { + a = zdb(a); + if (ZD(a, 333)) { + throw Adb(new veb(fze + b.o + "*" + b.p + gze + c + pve + d + hze)); + } else + throw Adb(a); + } + } + function RPb(b, c, d) { + try { + return Gdb(SPb(b, c, d), 2); + } catch (a) { + a = zdb(a); + if (ZD(a, 333)) { + throw Adb(new veb(fze + b.o + "*" + b.p + gze + c + pve + d + hze)); + } else + throw Adb(a); + } + } + function lMd(b, c) { + if (b.g == -1) { + throw Adb(new cgb()); + } + b.Xj(); + try { + b.d.hd(b.g, c); + b.f = b.d.j; + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + throw Adb(new Jrb()); + } else + throw Adb(a); + } + } + function Y7b(a) { + var b, c, d, e, f; + for (d = new Anb(a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 30); + b = 0; + for (f = new Anb(c.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + e.p = b++; + } + } + } + function Ee(a, b) { + var c, d, e, f; + f = a.gc(); + b.length < f && (b = cFb(new Array(f), b)); + e = b; + d = a.Kc(); + for (c = 0; c < f; ++c) { + bD(e, c, d.Pb()); + } + b.length > f && bD(b, f, null); + return b; + } + function av(a, b) { + var c, d; + d = a.gc(); + if (b == null) { + for (c = 0; c < d; c++) { + if (a.Xb(c) == null) { + return c; + } + } + } else { + for (c = 0; c < d; c++) { + if (pb(b, a.Xb(c))) { + return c; + } + } + } + return -1; + } + function Jd(a, b) { + var c, d, e; + c = b.ld(); + e = b.md(); + d = a.xc(c); + if (!(dE(e) === dE(d) || e != null && pb(e, d))) { + return false; + } + if (d == null && !a._b(c)) { + return false; + } + return true; + } + function mD(a, b) { + var c, d, e; + if (b <= 22) { + c = a.l & (1 << b) - 1; + d = e = 0; + } else if (b <= 44) { + c = a.l; + d = a.m & (1 << b - 22) - 1; + e = 0; + } else { + c = a.l; + d = a.m; + e = a.h & (1 << b - 44) - 1; + } + return hD(c, d, e); + } + function pNb(a, b) { + switch (b.g) { + case 1: + return a.f.n.d + a.t; + case 3: + return a.f.n.a + a.t; + case 2: + return a.f.n.c + a.s; + case 4: + return a.f.n.b + a.s; + default: + return 0; + } + } + function TNb(a, b) { + var c, d; + d = b.c; + c = b.a; + switch (a.b.g) { + case 0: + c.d = a.e - d.a - d.d; + break; + case 1: + c.d += a.e; + break; + case 2: + c.c = a.e - d.a - d.d; + break; + case 3: + c.c = a.e + d.d; + } + } + function QRb(a, b, c, d) { + var e, f; + this.a = b; + this.c = d; + e = a.a; + PRb(this, new rjd(-e.c, -e.d)); + $id(this.b, c); + f = d / 2; + b.a ? njd(this.b, 0, f) : njd(this.b, f, 0); + Rmb(a.c, this); + } + function i2c(a, b, c, d) { + var e; + this.c = a; + this.d = b; + e = new Yub(); + Pub(e, c, e.c.b, e.c); + this.a = e; + this.b = RD(mQb(d, (h_c(), H$c)), 88); + this.e = Kfb(UD(mQb(d, $$c))); + h2c(this); + } + function j5c() { + j5c = geb; + i5c = new l5c(LAe, 0); + g5c = new l5c(EBe, 1); + h5c = new l5c("EDGE_LENGTH_BY_POSITION", 2); + f5c = new l5c("CROSSING_MINIMIZATION_BY_POSITION", 3); + } + function uEd(a, b) { + var c, d; + c = RD(Ao(a.g, b), 27); + if (c) { + return c; + } + d = RD(Ao(a.j, b), 123); + if (d) { + return d; + } + throw Adb(new CDd("Referenced shape does not exist: " + b)); + } + function Pk(b, c) { + var d, e; + if (ZD(c, 253)) { + e = RD(c, 253); + try { + d = b.Ed(e); + return d == 0; + } catch (a) { + a = zdb(a); + if (ZD(a, 212)) { + return false; + } else + throw Adb(a); + } + } + return false; + } + function tWb(a, b) { + if (a.c == b) { + return a.d; + } else if (a.d == b) { + return a.c; + } else { + throw Adb(new agb("Node 'one' must be either source or target of edge 'edge'.")); + } + } + function rRc(a, b) { + if (a.c.i == b) { + return a.d.i; + } else if (a.d.i == b) { + return a.c.i; + } else { + throw Adb(new agb("Node " + b + " is neither source nor target of edge " + a)); + } + } + function $gc(a, b, c) { + c.Ug("Self-Loop ordering", 1); + FDb(GDb(CDb(CDb(EDb(new SDb(null, new Swb(b.b, 16)), new chc()), new ehc()), new ghc()), new ihc()), new khc(a)); + c.Vg(); + } + function Fpc(a, b) { + var c; + switch (b.g) { + case 2: + case 4: + c = a.a; + a.c.d.n.b < c.d.n.b && (c = a.c); + Gpc(a, b, (enc(), dnc), c); + break; + case 1: + case 3: + Gpc(a, b, (enc(), anc), null); + } + } + function Ypc(a, b, c, d, e, f) { + var g, h, i, j, k; + g = Wpc(b, c, f); + h = c == (qpd(), Yod) || c == ppd ? -1 : 1; + j = a[c.g]; + for (k = 0; k < j.length; k++) { + i = j[k]; + i > 0 && (i += e); + j[k] = g; + g += h * (i + d); + } + } + function vsc(a) { + var b, c, d; + d = a.f; + a.n = $C(iE, vxe, 28, d, 15, 1); + a.d = $C(iE, vxe, 28, d, 15, 1); + for (b = 0; b < d; b++) { + c = RD(Vmb(a.c.b, b), 30); + a.n[b] = ssc(a, c); + a.d[b] = rsc(a, c); + } + } + function Xwd(a, b) { + var c, d, e; + e = 0; + for (d = 2; d < b; d <<= 1) { + (a.Db & d) != 0 && ++e; + } + if (e == 0) { + for (c = b <<= 1; c <= 128; c <<= 1) { + if ((a.Db & c) != 0) { + return 0; + } + } + return -1; + } else { + return e; + } + } + function Sge(a, b) { + var c, d, e, f, g; + g = pke(a.e.Dh(), b); + f = null; + c = RD(a.g, 124); + for (e = 0; e < a.i; ++e) { + d = c[e]; + if (g.am(d.Lk())) { + !f && (f = new YHd()); + WGd(f, d); + } + } + !!f && wLd(a, f); + } + function ene(a) { + var b, c, d; + if (!a) + return null; + if (a.dc()) + return ""; + d = new Qhb(); + for (c = a.Kc(); c.Ob(); ) { + b = c.Pb(); + Nhb(d, WD(b)); + d.a += " "; + } + return qeb(d, d.a.length - 1); + } + function _C(a, b) { + var c = new Array(b); + var d; + switch (a) { + case 14: + case 15: + d = 0; + break; + case 16: + d = false; + break; + default: + return c; + } + for (var e = 0; e < b; ++e) { + c[e] = d; + } + return c; + } + function GGb(a) { + var b, c, d; + for (c = new Anb(a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 60); + b.c.$b(); + } + Dmd(a.d) ? d = a.a.c : d = a.a.d; + Umb(d, new WGb(a)); + a.c.df(a); + HGb(a); + } + function oUb(a) { + var b, c, d, e; + for (c = new Anb(a.e.c); c.a < c.c.c.length; ) { + b = RD(ynb(c), 290); + for (e = new Anb(b.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 454); + hUb(d); + } + YTb(b); + } + } + function gad(a) { + var b, c, d, e, f; + d = 0; + f = 0; + e = 0; + for (c = new Anb(a.a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 172); + f = $wnd.Math.max(f, b.r); + d += b.d + (e > 0 ? a.c : 0); + ++e; + } + a.b = d; + a.d = f; + } + function rKb(a, b) { + var c; + c = cD(WC(iE, 1), vxe, 28, 15, [qKb(a, (ZJb(), WJb), b), qKb(a, XJb, b), qKb(a, YJb, b)]); + if (a.f) { + c[0] = $wnd.Math.max(c[0], c[2]); + c[2] = c[0]; + } + return c; + } + function cQb(b, c, d) { + var e; + try { + TPb(b, c + b.j, d + b.k, false, true); + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + e = a; + throw Adb(new veb(e.g + ize + c + pve + d + ").")); + } else + throw Adb(a); + } + } + function dQb(b, c, d) { + var e; + try { + TPb(b, c + b.j, d + b.k, true, false); + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + e = a; + throw Adb(new veb(e.g + ize + c + pve + d + ").")); + } else + throw Adb(a); + } + } + function u8b(a) { + var b; + if (!nQb(a, (yCc(), dBc))) { + return; + } + b = RD(mQb(a, dBc), 21); + if (b.Hc((dod(), Xnd))) { + b.Mc(Xnd); + b.Fc(Znd); + } else if (b.Hc(Znd)) { + b.Mc(Znd); + b.Fc(Xnd); + } + } + function v8b(a) { + var b; + if (!nQb(a, (yCc(), dBc))) { + return; + } + b = RD(mQb(a, dBc), 21); + if (b.Hc((dod(), cod))) { + b.Mc(cod); + b.Fc(aod); + } else if (b.Hc(aod)) { + b.Mc(aod); + b.Fc(cod); + } + } + function oqc(a, b, c, d) { + var e, f, g, h; + a.a == null && rqc(a, b); + g = b.b.j.c.length; + f = c.d.p; + h = d.d.p; + e = h - 1; + e < 0 && (e = g - 1); + return f <= e ? a.a[e] - a.a[f] : a.a[g - 1] - a.a[f] + a.a[e]; + } + function Cud(a) { + var b, c; + if (!a.b) { + a.b = fv(RD(a.f, 27).kh().i); + for (c = new dMd(RD(a.f, 27).kh()); c.e != c.i.gc(); ) { + b = RD(bMd(c), 135); + Rmb(a.b, new Bud(b)); + } + } + return a.b; + } + function Dud(a) { + var b, c; + if (!a.e) { + a.e = fv(wCd(RD(a.f, 27)).i); + for (c = new dMd(wCd(RD(a.f, 27))); c.e != c.i.gc(); ) { + b = RD(bMd(c), 123); + Rmb(a.e, new Rud(b)); + } + } + return a.e; + } + function yud(a) { + var b, c; + if (!a.a) { + a.a = fv(tCd(RD(a.f, 27)).i); + for (c = new dMd(tCd(RD(a.f, 27))); c.e != c.i.gc(); ) { + b = RD(bMd(c), 27); + Rmb(a.a, new Fud(a, b)); + } + } + return a.a; + } + function DXd(b) { + var c; + if (!b.C && (b.D != null || b.B != null)) { + c = EXd(b); + if (c) { + b.hl(c); + } else { + try { + b.hl(null); + } catch (a) { + a = zdb(a); + if (!ZD(a, 63)) + throw Adb(a); + } + } + } + return b.C; + } + function xMb(a) { + switch (a.q.g) { + case 5: + uMb(a, (qpd(), Yod)); + uMb(a, npd); + break; + case 4: + vMb(a, (qpd(), Yod)); + vMb(a, npd); + break; + default: + wMb(a, (qpd(), Yod)); + wMb(a, npd); + } + } + function GNb(a) { + switch (a.q.g) { + case 5: + DNb(a, (qpd(), Xod)); + DNb(a, ppd); + break; + case 4: + ENb(a, (qpd(), Xod)); + ENb(a, ppd); + break; + default: + FNb(a, (qpd(), Xod)); + FNb(a, ppd); + } + } + function G$b(a, b) { + var c, d, e; + e = new pjd(); + for (d = a.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 36); + w$b(c, e.a, 0); + e.a += c.f.a + b; + e.b = $wnd.Math.max(e.b, c.f.b); + } + e.b > 0 && (e.b += b); + return e; + } + function I$b(a, b) { + var c, d, e; + e = new pjd(); + for (d = a.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 36); + w$b(c, 0, e.b); + e.b += c.f.b + b; + e.a = $wnd.Math.max(e.a, c.f.a); + } + e.a > 0 && (e.a += b); + return e; + } + function l2b(a) { + var b, c, d; + d = lve; + for (c = new Anb(a.a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 10); + nQb(b, (Ywc(), zwc)) && (d = $wnd.Math.min(d, RD(mQb(b, zwc), 17).a)); + } + return d; + } + function PLc(a, b) { + var c, d; + if (b.length == 0) { + return 0; + } + c = lMc(a.a, b[0], (qpd(), ppd)); + c += lMc(a.a, b[b.length - 1], Xod); + for (d = 0; d < b.length; d++) { + c += QLc(a, d, b); + } + return c; + } + function VUc() { + HUc(); + this.c = new bnb(); + this.i = new bnb(); + this.e = new Iub(); + this.f = new Iub(); + this.g = new Iub(); + this.j = new bnb(); + this.a = new bnb(); + this.b = new Tsb(); + this.k = new Tsb(); + } + function AXd(a, b) { + var c, d; + if (a.Db >> 16 == 6) { + return a.Cb.Th(a, 5, t7, b); + } + return d = Z5d(RD(vYd((c = RD(Ywd(a, 16), 29), !c ? a.ii() : c), a.Db >> 16), 19)), a.Cb.Th(a, d.n, d.f, b); + } + function kA(a) { + fA(); + var b = a.e; + if (b && b.stack) { + var c = b.stack; + var d = b + "\n"; + c.substring(0, d.length) == d && (c = c.substring(d.length)); + return c.split("\n"); + } + return []; + } + function pgb(a) { + var b; + b = (wgb(), vgb); + return b[a >>> 28] | b[a >> 24 & 15] << 4 | b[a >> 20 & 15] << 8 | b[a >> 16 & 15] << 12 | b[a >> 12 & 15] << 16 | b[a >> 8 & 15] << 20 | b[a >> 4 & 15] << 24 | b[a & 15] << 28; + } + function mmb(a) { + var b, c, d; + if (a.b != a.c) { + return; + } + d = a.a.length; + c = mgb($wnd.Math.max(8, d)) << 1; + if (a.b != 0) { + b = WEb(a.a, c); + lmb(a, b, d); + a.a = b; + a.b = 0; + } else { + aFb(a.a, c); + } + a.c = d; + } + function uNb(a, b) { + var c; + c = a.b; + return c.pf((umd(), Gld)) ? c.ag() == (qpd(), ppd) ? -c.Mf().a - Kfb(UD(c.of(Gld))) : b + Kfb(UD(c.of(Gld))) : c.ag() == (qpd(), ppd) ? -c.Mf().a : b; + } + function X2b(a) { + var b; + if (a.b.c.length != 0 && !!RD(Vmb(a.b, 0), 72).a) { + return RD(Vmb(a.b, 0), 72).a; + } + b = R0b(a); + if (b != null) { + return b; + } + return "" + (!a.c ? -1 : Wmb(a.c.a, a, 0)); + } + function M3b(a) { + var b; + if (a.f.c.length != 0 && !!RD(Vmb(a.f, 0), 72).a) { + return RD(Vmb(a.f, 0), 72).a; + } + b = R0b(a); + if (b != null) { + return b; + } + return "" + (!a.i ? -1 : Wmb(a.i.j, a, 0)); + } + function skc(a, b) { + var c, d; + if (b < 0 || b >= a.gc()) { + return null; + } + for (c = b; c < a.gc(); ++c) { + d = RD(a.Xb(c), 131); + if (c == a.gc() - 1 || !d.o) { + return new Ptd(sgb(c), d); + } + } + return null; + } + function Xrc(a, b, c) { + var d, e, f, g, h; + f = a.c; + h = c ? b : a; + d = c ? a : b; + for (e = h.p + 1; e < d.p; ++e) { + g = RD(Vmb(f.a, e), 10); + if (!(g.k == (r3b(), l3b) || Yrc(g))) { + return false; + } + } + return true; + } + function Ead(a) { + var b, c, d, e, f; + f = 0; + e = pxe; + d = 0; + for (c = new Anb(a.a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 172); + f += b.r + (d > 0 ? a.c : 0); + e = $wnd.Math.max(e, b.d); + ++d; + } + a.e = f; + a.b = e; + } + function Qud(a) { + var b, c; + if (!a.b) { + a.b = fv(RD(a.f, 123).kh().i); + for (c = new dMd(RD(a.f, 123).kh()); c.e != c.i.gc(); ) { + b = RD(bMd(c), 135); + Rmb(a.b, new Bud(b)); + } + } + return a.b; + } + function aHd(a, b) { + var c, d, e; + if (b.dc()) { + return jQd(), jQd(), iQd; + } else { + c = new ZLd(a, b.gc()); + for (e = new dMd(a); e.e != e.i.gc(); ) { + d = bMd(e); + b.Hc(d) && WGd(c, d); + } + return c; + } + } + function Axd(a, b, c, d) { + if (b == 0) { + return d ? (!a.o && (a.o = new DVd((pvd(), mvd), X4, a, 0)), a.o) : (!a.o && (a.o = new DVd((pvd(), mvd), X4, a, 0)), dOd(a.o)); + } + return Dvd(a, b, c, d); + } + function rBd(a) { + var b, c; + if (a.rb) { + for (b = 0, c = a.rb.i; b < c; ++b) { + aAd(QHd(a.rb, b)); + } + } + if (a.vb) { + for (b = 0, c = a.vb.i; b < c; ++b) { + aAd(QHd(a.vb, b)); + } + } + Uee((lke(), jke), a); + a.Bb |= 1; + } + function zBd(a, b, c, d, e, f, g, h, i, j, k, l, m, n) { + ABd(a, b, d, null, e, f, g, h, i, j, m, true, n); + a6d(a, k); + ZD(a.Cb, 90) && v$d(yYd(RD(a.Cb, 90)), 2); + !!c && b6d(a, c); + c6d(a, l); + return a; + } + function Jae(b) { + var c, d; + if (b == null) { + return null; + } + d = 0; + try { + d = Oeb(b, qwe, lve) & Bwe; + } catch (a) { + a = zdb(a); + if (ZD(a, 130)) { + c = Ahb(b); + d = c[0]; + } else + throw Adb(a); + } + return hfb(d); + } + function Kae(b) { + var c, d; + if (b == null) { + return null; + } + d = 0; + try { + d = Oeb(b, qwe, lve) & Bwe; + } catch (a) { + a = zdb(a); + if (ZD(a, 130)) { + c = Ahb(b); + d = c[0]; + } else + throw Adb(a); + } + return hfb(d); + } + function rD(a, b) { + var c, d, e; + e = a.h - b.h; + if (e < 0) { + return false; + } + c = a.l - b.l; + d = a.m - b.m + (c >> 22); + e += d >> 22; + if (e < 0) { + return false; + } + a.l = c & dxe; + a.m = d & dxe; + a.h = e & exe; + return true; + } + function Tyb(a, b, c, d, e, f, g) { + var h, i; + if (b.Te() && (i = a.a.Ne(c, d), i < 0 || !e && i == 0)) { + return false; + } + if (b.Ue() && (h = a.a.Ne(c, f), h > 0 || !g && h == 0)) { + return false; + } + return true; + } + function Agc(a, b) { + sgc(); + var c; + c = a.j.g - b.j.g; + if (c != 0) { + return 0; + } + switch (a.j.g) { + case 2: + return Cgc(b, rgc) - Cgc(a, rgc); + case 4: + return Cgc(a, qgc) - Cgc(b, qgc); + } + return 0; + } + function uuc(a) { + switch (a.g) { + case 0: + return nuc; + case 1: + return ouc; + case 2: + return puc; + case 3: + return quc; + case 4: + return ruc; + case 5: + return suc; + default: + return null; + } + } + function cBd(a, b, c) { + var d, e; + d = (e = new R5d(), YVd(e, b), PAd(e, c), WGd((!a.c && (a.c = new C5d(u7, a, 12, 10)), a.c), e), e); + $Vd(d, 0); + bWd(d, 1); + aWd(d, true); + _Vd(d, true); + return d; + } + function THd(a, b) { + var c, d; + if (b >= a.i) + throw Adb(new yNd(b, a.i)); + ++a.j; + c = a.g[b]; + d = a.i - b - 1; + d > 0 && hib(a.g, b + 1, a.g, b, d); + bD(a.g, --a.i, null); + a.Qi(b, c); + a.Ni(); + return c; + } + function sWd(a, b) { + var c, d; + if (a.Db >> 16 == 17) { + return a.Cb.Th(a, 21, h7, b); + } + return d = Z5d(RD(vYd((c = RD(Ywd(a, 16), 29), !c ? a.ii() : c), a.Db >> 16), 19)), a.Cb.Th(a, d.n, d.f, b); + } + function _Fb(a) { + var b, c, d, e; + yob(); + _mb(a.c, a.a); + for (e = new Anb(a.c); e.a < e.c.c.length; ) { + d = ynb(e); + for (c = new Anb(a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 693); + b.bf(d); + } + } + } + function r$b(a) { + var b, c, d, e; + yob(); + _mb(a.c, a.a); + for (e = new Anb(a.c); e.a < e.c.c.length; ) { + d = ynb(e); + for (c = new Anb(a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 382); + b.bf(d); + } + } + } + function rJb(a) { + var b, c, d, e, f; + e = lve; + f = null; + for (d = new Anb(a.d); d.a < d.c.c.length; ) { + c = RD(ynb(d), 218); + if (c.d.j ^ c.e.j) { + b = c.e.e - c.d.e - c.a; + if (b < e) { + e = b; + f = c; + } + } + } + return f; + } + function QVb() { + QVb = geb; + OVb = new lGd(vAe, (Geb(), false)); + KVb = new lGd(wAe, 100); + MVb = (AWb(), yWb); + LVb = new lGd(xAe, MVb); + NVb = new lGd(yAe, Vze); + PVb = new lGd(zAe, sgb(lve)); + } + function Xlc(a, b, c) { + var d, e, f, g, h, i, j, k; + j = 0; + for (e = a.a[b], f = 0, g = e.length; f < g; ++f) { + d = e[f]; + k = aMc(d, c); + for (i = k.Kc(); i.Ob(); ) { + h = RD(i.Pb(), 12); + Zjb(a.f, h, sgb(j++)); + } + } + } + function UDd(a, b, c) { + var d, e, f, g; + if (c) { + e = c.a.length; + d = new vue(e); + for (g = (d.b - d.a) * d.c < 0 ? (uue(), tue) : new Rue(d); g.Ob(); ) { + f = RD(g.Pb(), 17); + Rc(a, b, tDd(JB(c, f.a))); + } + } + } + function VDd(a, b, c) { + var d, e, f, g; + if (c) { + e = c.a.length; + d = new vue(e); + for (g = (d.b - d.a) * d.c < 0 ? (uue(), tue) : new Rue(d); g.Ob(); ) { + f = RD(g.Pb(), 17); + Rc(a, b, tDd(JB(c, f.a))); + } + } + } + function foc(a) { + Mnc(); + var b; + b = RD(Ee(Ec(a.k), $C(E3, NAe, 64, 2, 0, 1)), 126); + Wnb(b, 0, b.length, null); + if (b[0] == (qpd(), Yod) && b[1] == ppd) { + bD(b, 0, ppd); + bD(b, 1, Yod); + } + return b; + } + function hMc(a, b, c) { + var d, e, f; + e = fMc(a, b, c); + f = iMc(a, e); + YLc(a.b); + CMc(a, b, c); + yob(); + _mb(e, new HMc(a)); + d = iMc(a, e); + YLc(a.b); + CMc(a, c, b); + return new Ptd(sgb(f), sgb(d)); + } + function JNc() { + JNc = geb; + GNc = pfd(new ufd(), (sXb(), rXb), (hcc(), ybc)); + HNc = new kGd("linearSegments.inputPrio", sgb(0)); + INc = new kGd("linearSegments.outputPrio", sgb(0)); + } + function YVc() { + YVc = geb; + UVc = new $Vc("P1_TREEIFICATION", 0); + VVc = new $Vc("P2_NODE_ORDERING", 1); + WVc = new $Vc("P3_NODE_PLACEMENT", 2); + XVc = new $Vc("P4_EDGE_ROUTING", 3); + } + function yad(a) { + var b, c, d, e; + c = 0; + b = 0; + for (e = new dMd(a); e.e != e.i.gc(); ) { + d = RD(bMd(e), 27); + c = $wnd.Math.max(d.g + d.i, c); + b = $wnd.Math.max(d.f + d.j, b); + } + return new rjd(c, b); + } + function ard(a, b) { + var c, d, e, f; + f = 0; + for (d = new Anb(a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 27); + f += $wnd.Math.pow(c.g * c.f - b, 2); + } + e = $wnd.Math.sqrt(f / (a.c.length - 1)); + return e; + } + function Pnd() { + Pnd = geb; + Ond = new Rnd("UNKNOWN", 0); + Lnd = new Rnd("ABOVE", 1); + Mnd = new Rnd("BELOW", 2); + Nnd = new Rnd("INLINE", 3); + new kGd("org.eclipse.elk.labelSide", Ond); + } + function RHd(a, b) { + var c; + if (a.Yi() && b != null) { + for (c = 0; c < a.i; ++c) { + if (pb(b, a.g[c])) { + return c; + } + } + } else { + for (c = 0; c < a.i; ++c) { + if (dE(a.g[c]) === dE(b)) { + return c; + } + } + } + return -1; + } + function L0b(a, b, c) { + var d, e; + if (b.c == (BEc(), zEc) && c.c == yEc) { + return -1; + } else if (b.c == yEc && c.c == zEc) { + return 1; + } + d = P0b(b.a, a.a); + e = P0b(c.a, a.a); + return b.c == zEc ? e - d : d - e; + } + function f3b(a, b, c) { + if (!!c && (b < 0 || b > c.a.c.length)) { + throw Adb(new agb("index must be >= 0 and <= layer node count")); + } + !!a.c && Ymb(a.c.a, a); + a.c = c; + !!c && Qmb(c.a, b, a); + } + function Gac(a, b) { + var c, d, e; + for (d = new is(Mr(W2b(a).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + e = RD(b.Kb(c), 10); + return new cc(Qb(e.n.b + e.o.b / 2)); + } + return wb(), wb(), vb; + } + function RQc(a, b) { + this.c = new Tsb(); + this.a = a; + this.b = b; + this.d = RD(mQb(a, (Ywc(), Qwc)), 312); + dE(mQb(a, (yCc(), eBc))) === dE((Cuc(), Auc)) ? this.e = new BRc() : this.e = new uRc(); + } + function ftd(a, b) { + var c, d; + d = null; + if (a.pf((umd(), amd))) { + c = RD(a.of(amd), 96); + c.pf(b) && (d = c.of(b)); + } + d == null && !!a.Tf() && (d = a.Tf().of(b)); + d == null && (d = iGd(b)); + return d; + } + function ku(b, c) { + var d, e; + d = b.fd(c); + try { + e = d.Pb(); + d.Qb(); + return e; + } catch (a) { + a = zdb(a); + if (ZD(a, 112)) { + throw Adb(new veb("Can't remove element " + c)); + } else + throw Adb(a); + } + } + function GA(a, b) { + var c, d, e; + d = new uB(); + e = new vB(d.q.getFullYear() - Owe, d.q.getMonth(), d.q.getDate()); + c = FA(a, b, e); + if (c == 0 || c < b.length) { + throw Adb(new agb(b)); + } + return e; + } + function iwb(a, b) { + var c, d, e; + uFb(b); + lFb(b != a); + e = a.b.c.length; + for (d = b.Kc(); d.Ob(); ) { + c = d.Pb(); + Rmb(a.b, uFb(c)); + } + if (e != a.b.c.length) { + jwb(a, 0); + return true; + } + return false; + } + function dWb() { + dWb = geb; + XVb = (umd(), ald); + new mGd(Pkd, (Geb(), true)); + $Vb = kld; + _Vb = nld; + aWb = pld; + ZVb = ild; + bWb = sld; + cWb = Lld; + WVb = (QVb(), OVb); + UVb = LVb; + VVb = NVb; + YVb = PVb; + TVb = KVb; + } + function U0b(a, b) { + if (b == a.c) { + return a.d; + } else if (b == a.d) { + return a.c; + } else { + throw Adb(new agb("'port' must be either the source port or target port of the edge.")); + } + } + function T6b(a, b, c) { + var d, e; + e = a.o; + d = a.d; + switch (b.g) { + case 1: + return -d.d - c; + case 3: + return e.b + d.a + c; + case 2: + return e.a + d.c + c; + case 4: + return -d.b - c; + default: + return 0; + } + } + function Y9b(a, b, c, d) { + var e, f, g, h; + g3b(b, RD(d.Xb(0), 30)); + h = d.kd(1, d.gc()); + for (f = RD(c.Kb(b), 20).Kc(); f.Ob(); ) { + e = RD(f.Pb(), 18); + g = e.c.i == b ? e.d.i : e.c.i; + Y9b(a, g, c, h); + } + } + function Bic(a) { + var b; + b = new Tsb(); + if (nQb(a, (Ywc(), Vwc))) { + return RD(mQb(a, Vwc), 85); + } + FDb(CDb(new SDb(null, new Swb(a.j, 16)), new Dic()), new Fic(b)); + pQb(a, Vwc, b); + return b; + } + function zad(a, b) { + var c, d, e, f, g; + d = 0; + e = 0; + c = 0; + for (g = new Anb(a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 186); + d = $wnd.Math.max(d, f.e); + e += f.b + (c > 0 ? b : 0); + ++c; + } + return new rjd(d, e); + } + function Czd(a, b) { + var c, d; + if (a.Db >> 16 == 6) { + return a.Cb.Th(a, 6, G4, b); + } + return d = Z5d(RD(vYd((c = RD(Ywd(a, 16), 29), !c ? (pvd(), hvd) : c), a.Db >> 16), 19)), a.Cb.Th(a, d.n, d.f, b); + } + function cCd(a, b) { + var c, d; + if (a.Db >> 16 == 7) { + return a.Cb.Th(a, 1, H4, b); + } + return d = Z5d(RD(vYd((c = RD(Ywd(a, 16), 29), !c ? (pvd(), jvd) : c), a.Db >> 16), 19)), a.Cb.Th(a, d.n, d.f, b); + } + function LCd(a, b) { + var c, d; + if (a.Db >> 16 == 9) { + return a.Cb.Th(a, 9, J4, b); + } + return d = Z5d(RD(vYd((c = RD(Ywd(a, 16), 29), !c ? (pvd(), lvd) : c), a.Db >> 16), 19)), a.Cb.Th(a, d.n, d.f, b); + } + function M1d(a, b) { + var c, d; + if (a.Db >> 16 == 5) { + return a.Cb.Th(a, 9, m7, b); + } + return d = Z5d(RD(vYd((c = RD(Ywd(a, 16), 29), !c ? (JTd(), tTd) : c), a.Db >> 16), 19)), a.Cb.Th(a, d.n, d.f, b); + } + function qBd(a, b) { + var c, d; + if (a.Db >> 16 == 7) { + return a.Cb.Th(a, 6, t7, b); + } + return d = Z5d(RD(vYd((c = RD(Ywd(a, 16), 29), !c ? (JTd(), CTd) : c), a.Db >> 16), 19)), a.Cb.Th(a, d.n, d.f, b); + } + function iVd(a, b) { + var c, d; + if (a.Db >> 16 == 3) { + return a.Cb.Th(a, 0, p7, b); + } + return d = Z5d(RD(vYd((c = RD(Ywd(a, 16), 29), !c ? (JTd(), mTd) : c), a.Db >> 16), 19)), a.Cb.Th(a, d.n, d.f, b); + } + function IEd() { + this.a = new BDd(); + this.g = new Io(); + this.j = new Io(); + this.b = new Tsb(); + this.d = new Io(); + this.i = new Io(); + this.k = new Tsb(); + this.c = new Tsb(); + this.e = new Tsb(); + this.f = new Tsb(); + } + function kQd(a, b, c) { + var d, e, f; + c < 0 && (c = 0); + f = a.i; + for (e = c; e < f; e++) { + d = QHd(a, e); + if (b == null) { + if (d == null) { + return e; + } + } else if (dE(b) === dE(d) || pb(b, d)) { + return e; + } + } + return -1; + } + function Bee(a, b) { + var c, d; + c = b.qi(a.a); + if (!c) { + return null; + } else { + d = WD($Nd((!c.b && (c.b = new SVd((JTd(), FTd), C8, c)), c.b), _Ke)); + return lhb(aLe, d) ? Uee(a, BXd(b.qk())) : d; + } + } + function Oje(a, b) { + var c, d; + if (b) { + if (b == a) { + return true; + } + c = 0; + for (d = RD(b, 54).Ph(); !!d && d != b; d = d.Ph()) { + if (++c > wxe) { + return Oje(a, d); + } + if (d == a) { + return true; + } + } + } + return false; + } + function yNb(a) { + tNb(); + switch (a.q.g) { + case 5: + vNb(a, (qpd(), Yod)); + vNb(a, npd); + break; + case 4: + wNb(a, (qpd(), Yod)); + wNb(a, npd); + break; + default: + xNb(a, (qpd(), Yod)); + xNb(a, npd); + } + } + function CNb(a) { + tNb(); + switch (a.q.g) { + case 5: + zNb(a, (qpd(), Xod)); + zNb(a, ppd); + break; + case 4: + ANb(a, (qpd(), Xod)); + ANb(a, ppd); + break; + default: + BNb(a, (qpd(), Xod)); + BNb(a, ppd); + } + } + function RTb(a) { + var b, c; + b = RD(mQb(a, (yVb(), mVb)), 17); + if (b) { + c = b.a; + c == 0 ? pQb(a, (JVb(), IVb), new Owb()) : pQb(a, (JVb(), IVb), new Pwb(c)); + } else { + pQb(a, (JVb(), IVb), new Pwb(1)); + } + } + function b2b(a, b) { + var c; + c = a.i; + switch (b.g) { + case 1: + return -(a.n.b + a.o.b); + case 2: + return a.n.a - c.o.a; + case 3: + return a.n.b - c.o.b; + case 4: + return -(a.n.a + a.o.a); + } + return 0; + } + function wec(a, b) { + switch (a.g) { + case 0: + return b == (cxc(), $wc) ? sec : tec; + case 1: + return b == (cxc(), $wc) ? sec : rec; + case 2: + return b == (cxc(), $wc) ? rec : tec; + default: + return rec; + } + } + function Fad(a, b) { + var c, d, e; + Ymb(a.a, b); + a.e -= b.r + (a.a.c.length == 0 ? 0 : a.c); + e = fFe; + for (d = new Anb(a.a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 172); + e = $wnd.Math.max(e, c.d); + } + a.b = e; + } + function jzd(a, b) { + var c, d; + if (a.Db >> 16 == 3) { + return a.Cb.Th(a, 12, J4, b); + } + return d = Z5d(RD(vYd((c = RD(Ywd(a, 16), 29), !c ? (pvd(), gvd) : c), a.Db >> 16), 19)), a.Cb.Th(a, d.n, d.f, b); + } + function sCd(a, b) { + var c, d; + if (a.Db >> 16 == 11) { + return a.Cb.Th(a, 10, J4, b); + } + return d = Z5d(RD(vYd((c = RD(Ywd(a, 16), 29), !c ? (pvd(), kvd) : c), a.Db >> 16), 19)), a.Cb.Th(a, d.n, d.f, b); + } + function n4d(a, b) { + var c, d; + if (a.Db >> 16 == 10) { + return a.Cb.Th(a, 11, h7, b); + } + return d = Z5d(RD(vYd((c = RD(Ywd(a, 16), 29), !c ? (JTd(), ATd) : c), a.Db >> 16), 19)), a.Cb.Th(a, d.n, d.f, b); + } + function Q5d(a, b) { + var c, d; + if (a.Db >> 16 == 10) { + return a.Cb.Th(a, 12, s7, b); + } + return d = Z5d(RD(vYd((c = RD(Ywd(a, 16), 29), !c ? (JTd(), DTd) : c), a.Db >> 16), 19)), a.Cb.Th(a, d.n, d.f, b); + } + function WVd(a) { + var b; + if ((a.Bb & 1) == 0 && !!a.r && a.r.Vh()) { + b = RD(a.r, 54); + a.r = RD(Vvd(a, b), 142); + a.r != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 9, 8, b, a.r)); + } + return a.r; + } + function pKb(a, b, c) { + var d; + d = cD(WC(iE, 1), vxe, 28, 15, [sKb(a, (ZJb(), WJb), b, c), sKb(a, XJb, b, c), sKb(a, YJb, b, c)]); + if (a.f) { + d[0] = $wnd.Math.max(d[0], d[2]); + d[2] = d[0]; + } + return d; + } + function ddc(a, b) { + var c, d, e; + e = kdc(a, b); + if (e.c.length == 0) { + return; + } + _mb(e, new Gdc()); + c = e.c.length; + for (d = 0; d < c; d++) { + _cc(a, (tFb(d, e.c.length), RD(e.c[d], 293)), gdc(a, e, d)); + } + } + function Wnc(a) { + var b, c, d, e; + for (e = RD(Qc(a.a, (Bnc(), wnc)), 15).Kc(); e.Ob(); ) { + d = RD(e.Pb(), 105); + for (c = Ec(d.k).Kc(); c.Ob(); ) { + b = RD(c.Pb(), 64); + Qnc(a, d, b, (joc(), hoc), 1); + } + } + } + function Yrc(a) { + var b, c; + if (a.k == (r3b(), o3b)) { + for (c = new is(Mr(W2b(a).a.Kc(), new ir())); gs(c); ) { + b = RD(hs(c), 18); + if (!W0b(b) && a.c == T0b(b, a).c) { + return true; + } + } + } + return false; + } + function hSc(a) { + var b, c; + if (a.k == (r3b(), o3b)) { + for (c = new is(Mr(W2b(a).a.Kc(), new ir())); gs(c); ) { + b = RD(hs(c), 18); + if (!W0b(b) && b.c.i.c == b.d.i.c) { + return true; + } + } + } + return false; + } + function XDd(a, b) { + var c, d, e, f, g; + if (b) { + e = b.a.length; + c = new vue(e); + for (g = (c.b - c.a) * c.c < 0 ? (uue(), tue) : new Rue(c); g.Ob(); ) { + f = RD(g.Pb(), 17); + d = xDd(b, f.a); + !!d && AEd(a, d); + } + } + } + function bbe() { + Tae(); + var a, b; + Xae((lTd(), kTd)); + Wae(kTd); + rBd(kTd); + d2d = (JTd(), wTd); + for (b = new Anb(Rae); b.a < b.c.c.length; ) { + a = RD(ynb(b), 248); + o2d(a, wTd, null); + } + return true; + } + function uD(a, b) { + var c, d, e, f, g, h, i, j; + i = a.h >> 19; + j = b.h >> 19; + if (i != j) { + return j - i; + } + e = a.h; + h = b.h; + if (e != h) { + return e - h; + } + d = a.m; + g = b.m; + if (d != g) { + return d - g; + } + c = a.l; + f = b.l; + return c - f; + } + function YHb() { + YHb = geb; + XHb = (iIb(), fIb); + WHb = new lGd(Aye, XHb); + VHb = (LHb(), KHb); + UHb = new lGd(Bye, VHb); + THb = (DHb(), CHb); + SHb = new lGd(Cye, THb); + RHb = new lGd(Dye, (Geb(), true)); + } + function Iic(a, b, c) { + var d, e; + d = b * c; + if (ZD(a.g, 154)) { + e = $jc(a); + if (e.f.d) { + e.f.a || (a.d.a += d + Tye); + } else { + a.d.d -= d + Tye; + a.d.a += d + Tye; + } + } else if (ZD(a.g, 10)) { + a.d.d -= d; + a.d.a += 2 * d; + } + } + function _pc(a, b, c) { + var d, e, f, g, h; + e = a[c.g]; + for (h = new Anb(b.d); h.a < h.c.c.length; ) { + g = RD(ynb(h), 105); + f = g.i; + if (!!f && f.i == c) { + d = g.d[c.g]; + e[d] = $wnd.Math.max(e[d], f.j.b); + } + } + } + function k9c(a, b) { + var c, d, e, f, g; + d = 0; + e = 0; + c = 0; + for (g = new Anb(b.d); g.a < g.c.c.length; ) { + f = RD(ynb(g), 315); + gad(f); + d = $wnd.Math.max(d, f.b); + e += f.d + (c > 0 ? a.b : 0); + ++c; + } + b.b = d; + b.e = e; + } + function Fo(a) { + var b, c, d; + d = a.b; + if (Xp(a.i, d.length)) { + c = d.length * 2; + a.b = $C(XF, ewe, 303, c, 0, 1); + a.c = $C(XF, ewe, 303, c, 0, 1); + a.f = c - 1; + a.i = 0; + for (b = a.a; b; b = b.c) { + Bo(a, b, b); + } + ++a.g; + } + } + function VPb(a, b, c, d) { + var e, f, g, h; + for (e = 0; e < b.o; e++) { + f = e - b.j + c; + for (g = 0; g < b.p; g++) { + h = g - b.k + d; + PPb(b, e, g) ? aQb(a, f, h) || cQb(a, f, h) : RPb(b, e, g) && ($Pb(a, f, h) || dQb(a, f, h)); + } + } + } + function k_b(a, b) { + a.b.a = $wnd.Math.min(a.b.a, b.c); + a.b.b = $wnd.Math.min(a.b.b, b.d); + a.a.a = $wnd.Math.max(a.a.a, b.c); + a.a.b = $wnd.Math.max(a.a.b, b.d); + return ZEb(a.c, b), true; + } + function psc(a, b, c) { + var d; + d = b.c.i; + if (d.k == (r3b(), o3b)) { + pQb(a, (Ywc(), vwc), RD(mQb(d, vwc), 12)); + pQb(a, wwc, RD(mQb(d, wwc), 12)); + } else { + pQb(a, (Ywc(), vwc), b.c); + pQb(a, wwc, c.d); + } + } + function wid(a, b, c) { + tid(); + var d, e, f, g, h, i; + g = b / 2; + f = c / 2; + d = $wnd.Math.abs(a.a); + e = $wnd.Math.abs(a.b); + h = 1; + i = 1; + d > g && (h = g / d); + e > f && (i = f / e); + ijd(a, $wnd.Math.min(h, i)); + return a; + } + function OAd() { + qAd(); + var b, c; + try { + c = RD(M5d((YSd(), XSd), $He), 2113); + if (c) { + return c; + } + } catch (a) { + a = zdb(a); + if (ZD(a, 103)) { + b = a; + UId((Hde(), b)); + } else + throw Adb(a); + } + return new KAd(); + } + function Qae() { + qAd(); + var b, c; + try { + c = RD(M5d((YSd(), XSd), AKe), 2040); + if (c) { + return c; + } + } catch (a) { + a = zdb(a); + if (ZD(a, 103)) { + b = a; + UId((Hde(), b)); + } else + throw Adb(a); + } + return new Mae(); + } + function vne() { + Zme(); + var b, c; + try { + c = RD(M5d((YSd(), XSd), dLe), 2122); + if (c) { + return c; + } + } catch (a) { + a = zdb(a); + if (ZD(a, 103)) { + b = a; + UId((Hde(), b)); + } else + throw Adb(a); + } + return new rne(); + } + function f2d(a, b, c) { + var d, e; + e = a.e; + a.e = b; + if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { + d = new N3d(a, 1, 4, e, b); + !c ? c = d : c.nj(d); + } + e != b && (b ? c = o2d(a, k2d(a, b), c) : c = o2d(a, a.a, c)); + return c; + } + function DB() { + uB.call(this); + this.e = -1; + this.a = false; + this.p = qwe; + this.k = -1; + this.c = -1; + this.b = -1; + this.g = false; + this.f = -1; + this.j = -1; + this.n = -1; + this.i = -1; + this.d = -1; + this.o = qwe; + } + function hHb(a, b) { + var c, d, e; + d = a.b.d.d; + a.a || (d += a.b.d.a); + e = b.b.d.d; + b.a || (e += b.b.d.a); + c = Qfb(d, e); + if (c == 0) { + if (!a.a && b.a) { + return -1; + } else if (!b.a && a.a) { + return 1; + } + } + return c; + } + function XQb(a, b) { + var c, d, e; + d = a.b.b.d; + a.a || (d += a.b.b.a); + e = b.b.b.d; + b.a || (e += b.b.b.a); + c = Qfb(d, e); + if (c == 0) { + if (!a.a && b.a) { + return -1; + } else if (!b.a && a.a) { + return 1; + } + } + return c; + } + function RYb(a, b) { + var c, d, e; + d = a.b.g.d; + a.a || (d += a.b.g.a); + e = b.b.g.d; + b.a || (e += b.b.g.a); + c = Qfb(d, e); + if (c == 0) { + if (!a.a && b.a) { + return -1; + } else if (!b.a && a.a) { + return 1; + } + } + return c; + } + function _Wb() { + _Wb = geb; + YWb = nfd(pfd(pfd(pfd(new ufd(), (sXb(), qXb), (hcc(), Dbc)), qXb, Hbc), rXb, Obc), rXb, rbc); + $Wb = pfd(pfd(new ufd(), qXb, hbc), qXb, sbc); + ZWb = nfd(new ufd(), rXb, ubc); + } + function J6b(a) { + var b, c, d, e, f; + b = RD(mQb(a, (Ywc(), cwc)), 85); + f = a.n; + for (d = b.Cc().Kc(); d.Ob(); ) { + c = RD(d.Pb(), 314); + e = c.i; + e.c += f.a; + e.d += f.b; + c.c ? MKb(c) : OKb(c); + } + pQb(a, cwc, null); + } + function Wpc(a, b, c) { + var d, e; + e = a.b; + d = e.d; + switch (b.g) { + case 1: + return -d.d - c; + case 2: + return e.o.a + d.c + c; + case 3: + return e.o.b + d.a + c; + case 4: + return -d.b - c; + default: + return -1; + } + } + function CNc(a, b, c) { + var d, e; + c.Ug("Interactive node placement", 1); + a.a = RD(mQb(b, (Ywc(), Qwc)), 312); + for (e = new Anb(b.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 30); + BNc(a, d); + } + c.Vg(); + } + function C5c(a) { + var b, c, d, e, f; + d = 0; + e = Hze; + if (a.b) { + for (b = 0; b < 360; b++) { + c = b * 0.017453292519943295; + A5c(a, a.d, 0, 0, dFe, c); + f = a.b.Dg(a.d); + if (f < e) { + d = c; + e = f; + } + } + } + A5c(a, a.d, 0, 0, dFe, d); + } + function Oad(a, b) { + var c, d, e, f; + f = new Tsb(); + b.e = null; + b.f = null; + for (d = new Anb(b.i); d.a < d.c.c.length; ) { + c = RD(ynb(d), 68); + e = RD(Wjb(a.g, c.a), 42); + c.a = Oid(c.b); + Zjb(f, c.a, e); + } + a.g = f; + } + function Dad(a, b, c) { + var d, e, f, g, h, i; + e = b - a.e; + f = e / a.d.c.length; + g = 0; + for (i = new Anb(a.d); i.a < i.c.c.length; ) { + h = RD(ynb(i), 315); + d = a.b - h.b + c; + fad(h, h.e + g * f, h.f); + bad(h, f, d); + ++g; + } + } + function wPd(a) { + var b; + a.f._j(); + if (a.b != -1) { + ++a.b; + b = a.f.d[a.a]; + if (a.b < b.i) { + return; + } + ++a.a; + } + for (; a.a < a.f.d.length; ++a.a) { + b = a.f.d[a.a]; + if (!!b && b.i != 0) { + a.b = 0; + return; + } + } + a.b = -1; + } + function Jde(a, b) { + var c, d, e; + e = b.c.length; + c = Lde(a, e == 0 ? "" : (tFb(0, b.c.length), WD(b.c[0]))); + for (d = 1; d < e && !!c; ++d) { + c = RD(c, 54).Zh((tFb(d, b.c.length), WD(b.c[d]))); + } + return c; + } + function RIc(a, b) { + var c, d; + for (d = new Anb(b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 10); + a.c[c.c.p][c.p].a = Iwb(a.i); + a.c[c.c.p][c.p].d = Kfb(a.c[c.c.p][c.p].a); + a.c[c.c.p][c.p].b = 1; + } + } + function brd(a, b) { + var c, d, e, f; + f = 0; + for (d = new Anb(a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 163); + f += $wnd.Math.pow(urd(c) * trd(c) - b, 2); + } + e = $wnd.Math.sqrt(f / (a.c.length - 1)); + return e; + } + function uMb(a, b) { + var c, d, e, f; + f = 0; + for (e = RD(RD(Qc(a.r, b), 21), 87).Kc(); e.Ob(); ) { + d = RD(e.Pb(), 117); + f = $wnd.Math.max(f, d.e.a + d.b.Mf().a); + } + c = RD(Vrb(a.b, b), 127); + c.n.b = 0; + c.a.a = f; + } + function DNb(a, b) { + var c, d, e, f; + c = 0; + for (f = RD(RD(Qc(a.r, b), 21), 87).Kc(); f.Ob(); ) { + e = RD(f.Pb(), 117); + c = $wnd.Math.max(c, e.e.b + e.b.Mf().b); + } + d = RD(Vrb(a.b, b), 127); + d.n.d = 0; + d.a.b = c; + } + function jMc(a, b, c, d) { + var e, f, g; + f = eMc(a, b, c, d); + g = kMc(a, f); + BMc(a, b, c, d); + YLc(a.b); + yob(); + _mb(f, new LMc(a)); + e = kMc(a, f); + BMc(a, c, b, d); + YLc(a.b); + return new Ptd(sgb(g), sgb(e)); + } + function udd(a, b) { + var c; + b.Ug("Delaunay triangulation", 1); + c = new bnb(); + Umb(a.i, new ydd(c)); + Heb(TD(mQb(a, (OQb(), MQb)))) && "null10bw"; + !a.e ? a.e = EFb(c) : ye(a.e, EFb(c)); + b.Vg(); + } + function Hsd(a, b, c) { + var d, e; + Nzd(a, a.j + b, a.k + c); + for (e = new dMd((!a.a && (a.a = new XZd(D4, a, 5)), a.a)); e.e != e.i.gc(); ) { + d = RD(bMd(e), 377); + Uxd(d, d.a + b, d.b + c); + } + Gzd(a, a.b + b, a.c + c); + } + function Vyd(a, b, c, d) { + switch (c) { + case 7: + return !a.e && (a.e = new Yie(G4, a, 7, 4)), qLd(a.e, b, d); + case 8: + return !a.d && (a.d = new Yie(G4, a, 8, 5)), qLd(a.d, b, d); + } + return dyd(a, b, c, d); + } + function Wyd(a, b, c, d) { + switch (c) { + case 7: + return !a.e && (a.e = new Yie(G4, a, 7, 4)), rLd(a.e, b, d); + case 8: + return !a.d && (a.d = new Yie(G4, a, 8, 5)), rLd(a.d, b, d); + } + return eyd(a, b, c, d); + } + function LDd(a, b, c) { + var d, e, f, g, h; + if (c) { + f = c.a.length; + d = new vue(f); + for (h = (d.b - d.a) * d.c < 0 ? (uue(), tue) : new Rue(d); h.Ob(); ) { + g = RD(h.Pb(), 17); + e = xDd(c, g.a); + !!e && DEd(a, e, b); + } + } + } + function fOd(a, b, c) { + var d, e, f, g, h; + a._j(); + f = b == null ? 0 : tb(b); + if (a.f > 0) { + g = (f & lve) % a.d.length; + e = WNd(a, g, f, b); + if (e) { + h = e.nd(c); + return h; + } + } + d = a.ck(f, b, c); + a.c.Fc(d); + return null; + } + function Tee(a, b) { + var c, d, e, f; + switch (Oee(a, b).Kl()) { + case 3: + case 2: { + c = mYd(b); + for (e = 0, f = c.i; e < f; ++e) { + d = RD(QHd(c, e), 35); + if (yfe(Qee(a, d)) == 5) { + return d; + } + } + break; + } + } + return null; + } + function gt(a) { + var b, c, d, e, f; + if (Xp(a.f, a.b.length)) { + d = $C(UG, ewe, 227, a.b.length * 2, 0, 1); + a.b = d; + e = d.length - 1; + for (c = a.a; c != a; c = c._d()) { + f = RD(c, 227); + b = f.d & e; + f.a = d[b]; + d[b] = f; + } + } + } + function gSc(a) { + var b, c; + c = RD(mQb(a, (Ywc(), kwc)), 21); + b = vfd(ZRc); + c.Hc((ovc(), lvc)) && ofd(b, aSc); + c.Hc(nvc) && ofd(b, cSc); + c.Hc(evc) && ofd(b, $Rc); + c.Hc(gvc) && ofd(b, _Rc); + return b; + } + function Bid(a) { + if (a < 0) { + throw Adb(new agb("The input must be positive")); + } else + return a < sid.length ? Xdb(sid[a]) : $wnd.Math.sqrt(dFe * a) * (Jid(a, a) / Iid(2.718281828459045, a)); + } + function PHd(a, b) { + var c; + if (a.Yi() && b != null) { + for (c = 0; c < a.i; ++c) { + if (pb(b, a.g[c])) { + return true; + } + } + } else { + for (c = 0; c < a.i; ++c) { + if (dE(a.g[c]) === dE(b)) { + return true; + } + } + } + return false; + } + function Br(a, b) { + if (b == null) { + while (a.a.Ob()) { + if (RD(a.a.Pb(), 44).md() == null) { + return true; + } + } + } else { + while (a.a.Ob()) { + if (pb(b, RD(a.a.Pb(), 44).md())) { + return true; + } + } + } + return false; + } + function Qy(a, b) { + var c, d, e; + if (b === a) { + return true; + } else if (ZD(b, 678)) { + e = RD(b, 2046); + return Ue((d = a.g, !d ? a.g = new Di(a) : d), (c = e.g, !c ? e.g = new Di(e) : c)); + } else { + return false; + } + } + function hA(a) { + var b, c, d, e; + b = "gA"; + c = "vz"; + e = $wnd.Math.min(a.length, 5); + for (d = e - 1; d >= 0; d--) { + if (lhb(a[d].d, b) || lhb(a[d].d, c)) { + a.length >= d + 1 && a.splice(0, d + 1); + break; + } + } + return a; + } + function Fdb(a, b) { + var c; + if (Kdb(a) && Kdb(b)) { + c = a / b; + if (jxe < c && c < hxe) { + return c < 0 ? $wnd.Math.ceil(c) : $wnd.Math.floor(c); + } + } + return Edb(iD(Kdb(a) ? Wdb(a) : a, Kdb(b) ? Wdb(b) : b, false)); + } + function T0b(a, b) { + if (b == a.c.i) { + return a.d.i; + } else if (b == a.d.i) { + return a.c.i; + } else { + throw Adb(new agb("'node' must either be the source node or target node of the edge.")); + } + } + function M5b(a) { + var b, c, d, e; + e = RD(mQb(a, (Ywc(), Zvc)), 36); + if (e) { + d = new pjd(); + b = Y2b(a.c.i); + while (b != e) { + c = b.e; + b = Y2b(c); + Zid($id($id(d, c.n), b.c), b.d.b, b.d.d); + } + return d; + } + return G5b; + } + function phc(a) { + var b; + b = RD(mQb(a, (Ywc(), Pwc)), 337); + FDb(EDb(new SDb(null, new Swb(b.d, 16)), new Chc()), new Ehc(a)); + FDb(CDb(new SDb(null, new Swb(b.d, 16)), new Ghc()), new Ihc(a)); + } + function Zrc(a, b) { + var c, d, e, f; + e = b ? a3b(a) : Z2b(a); + for (d = new is(Mr(e.a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + f = T0b(c, a); + if (f.k == (r3b(), o3b) && f.c != a.c) { + return f; + } + } + return null; + } + function fIc(a) { + var b, c, d; + for (c = new Anb(a.p); c.a < c.c.c.length; ) { + b = RD(ynb(c), 10); + if (b.k != (r3b(), p3b)) { + continue; + } + d = b.o.b; + a.i = $wnd.Math.min(a.i, d); + a.g = $wnd.Math.max(a.g, d); + } + } + function OIc(a, b, c) { + var d, e, f; + for (f = new Anb(b); f.a < f.c.c.length; ) { + d = RD(ynb(f), 10); + a.c[d.c.p][d.p].e = false; + } + for (e = new Anb(b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 10); + NIc(a, d, c); + } + } + function uTc(a, b, c) { + var d, e; + d = VTc(b.j, c.s, c.c) + VTc(c.e, b.s, b.c); + e = VTc(c.j, b.s, b.c) + VTc(b.e, c.s, c.c); + if (d == e) { + if (d > 0) { + a.b += 2; + a.a += d; + } + } else { + a.b += 1; + a.a += $wnd.Math.min(d, e); + } + } + function CVc(a) { + var b; + b = RD(mQb(RD(ju(a.b, 0), 40), (h_c(), T$c)), 107); + pQb(a, (q$c(), SZc), new rjd(0, 0)); + FVc(new YWc(), a, b.b + b.c - Kfb(UD(mQb(a, ZZc))), b.d + b.a - Kfb(UD(mQb(a, _Zc)))); + } + function pDd(a, b) { + var c, d; + d = false; + if (bE(b)) { + d = true; + oDd(a, new OC(WD(b))); + } + if (!d) { + if (ZD(b, 242)) { + d = true; + oDd(a, (c = Qeb(RD(b, 242)), new hC(c))); + } + } + if (!d) { + throw Adb(new Aeb(tIe)); + } + } + function g$d(a, b, c, d) { + var e, f, g; + e = new P3d(a.e, 1, 10, (g = b.c, ZD(g, 90) ? RD(g, 29) : (JTd(), zTd)), (f = c.c, ZD(f, 90) ? RD(f, 29) : (JTd(), zTd)), fZd(a, b), false); + !d ? d = e : d.nj(e); + return d; + } + function _2b(a) { + var b, c; + switch (RD(mQb(Y2b(a), (yCc(), QAc)), 429).g) { + case 0: + b = a.n; + c = a.o; + return new rjd(b.a + c.a / 2, b.b + c.b / 2); + case 1: + return new sjd(a.n); + default: + return null; + } + } + function Ouc() { + Ouc = geb; + Luc = new Puc(LAe, 0); + Kuc = new Puc("LEFTUP", 1); + Nuc = new Puc("RIGHTUP", 2); + Juc = new Puc("LEFTDOWN", 3); + Muc = new Puc("RIGHTDOWN", 4); + Iuc = new Puc("BALANCED", 5); + } + function dKc(a, b, c) { + var d, e, f; + d = Qfb(a.a[b.p], a.a[c.p]); + if (d == 0) { + e = RD(mQb(b, (Ywc(), qwc)), 15); + f = RD(mQb(c, qwc), 15); + if (e.Hc(c)) { + return -1; + } else if (f.Hc(b)) { + return 1; + } + } + return d; + } + function k5c(a) { + switch (a.g) { + case 1: + return new K3c(); + case 2: + return new M3c(); + case 3: + return new I3c(); + case 0: + return null; + default: + throw Adb(new agb(mFe + (a.f != null ? a.f : "" + a.g))); + } + } + function gyd(a, b, c) { + switch (b) { + case 1: + !a.n && (a.n = new C5d(I4, a, 1, 7)); + sLd(a.n); + !a.n && (a.n = new C5d(I4, a, 1, 7)); + YGd(a.n, RD(c, 16)); + return; + case 2: + jyd(a, WD(c)); + return; + } + Dxd(a, b, c); + } + function xyd(a, b, c) { + switch (b) { + case 3: + Ayd(a, Kfb(UD(c))); + return; + case 4: + Cyd(a, Kfb(UD(c))); + return; + case 5: + Dyd(a, Kfb(UD(c))); + return; + case 6: + Eyd(a, Kfb(UD(c))); + return; + } + gyd(a, b, c); + } + function dBd(a, b, c) { + var d, e, f; + f = (d = new R5d(), d); + e = XVd(f, b, null); + !!e && e.oj(); + PAd(f, c); + WGd((!a.c && (a.c = new C5d(u7, a, 12, 10)), a.c), f); + $Vd(f, 0); + bWd(f, 1); + aWd(f, true); + _Vd(f, true); + } + function M5d(a, b) { + var c, d, e; + c = Ktb(a.i, b); + if (ZD(c, 241)) { + e = RD(c, 241); + e.zi() == null && void 0; + return e.wi(); + } else if (ZD(c, 507)) { + d = RD(c, 2037); + e = d.b; + return e; + } else { + return null; + } + } + function aj(a, b, c, d) { + var e, f; + Qb(b); + Qb(c); + f = RD(Fn(a.d, b), 17); + Ob(!!f, "Row %s not in %s", b, a.e); + e = RD(Fn(a.b, c), 17); + Ob(!!e, "Column %s not in %s", c, a.c); + return cj(a, f.a, e.a, d); + } + function ZC(a, b, c, d, e, f, g) { + var h, i, j, k, l; + k = e[f]; + j = f == g - 1; + h = j ? d : 0; + l = _C(h, k); + d != 10 && cD(WC(a, g - f), b[f], c[f], h, l); + if (!j) { + ++f; + for (i = 0; i < k; ++i) { + l[i] = ZC(a, b, c, d, e, f, g); + } + } + return l; + } + function cMd(b) { + if (b.g == -1) { + throw Adb(new cgb()); + } + b.Xj(); + try { + b.i.gd(b.g); + b.f = b.i.j; + b.g < b.e && --b.e; + b.g = -1; + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + throw Adb(new Jrb()); + } else + throw Adb(a); + } + } + function v0b(a) { + var b, c, d, e; + e = -1; + d = 0; + for (c = new Anb(a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 249); + if (b.c == (BEc(), yEc)) { + e = d == 0 ? 0 : d - 1; + break; + } else + d == a.c.length - 1 && (e = d); + d += 1; + } + return e; + } + function $9c(a) { + var b, c, d, e; + e = 0; + b = 0; + for (d = new Anb(a.c); d.a < d.c.c.length; ) { + c = RD(ynb(d), 27); + Dyd(c, a.e + e); + Eyd(c, a.f); + e += c.g + a.b; + b = $wnd.Math.max(b, c.f + a.b); + } + a.d = e - a.b; + a.a = b - a.b; + } + function UGb(a) { + var b, c, d; + for (c = new Anb(a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 60); + d = b.d.c; + b.d.c = b.d.d; + b.d.d = d; + d = b.d.b; + b.d.b = b.d.a; + b.d.a = d; + d = b.b.a; + b.b.a = b.b.b; + b.b.b = d; + } + IGb(a); + } + function DYb(a) { + var b, c, d; + for (c = new Anb(a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 86); + d = b.g.c; + b.g.c = b.g.d; + b.g.d = d; + d = b.g.b; + b.g.b = b.g.a; + b.g.a = d; + d = b.e.a; + b.e.a = b.e.b; + b.e.b = d; + } + uYb(a); + } + function pqc(a) { + var b, c, d, e, f; + f = Ec(a.k); + for (c = (qpd(), cD(WC(E3, 1), NAe, 64, 0, [opd, Yod, Xod, npd, ppd])), d = 0, e = c.length; d < e; ++d) { + b = c[d]; + if (b != opd && !f.Hc(b)) { + return b; + } + } + return null; + } + function drc(a, b) { + var c, d; + d = RD(Nvb(DDb(CDb(new SDb(null, new Swb(b.j, 16)), new lrc()))), 12); + if (d) { + c = RD(Vmb(d.e, 0), 18); + if (c) { + return RD(mQb(c, (Ywc(), zwc)), 17).a; + } + } + return mDc(a.b); + } + function FGc(a, b) { + var c, d, e, f; + for (f = new Anb(b.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + Nnb(a.d); + for (d = new is(Mr(a3b(e).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + CGc(a, e, c.d.i); + } + } + } + function T9c(a, b) { + var c, d; + Ymb(a.b, b); + for (d = new Anb(a.n); d.a < d.c.c.length; ) { + c = RD(ynb(d), 209); + if (Wmb(c.c, b, 0) != -1) { + Ymb(c.c, b); + $9c(c); + c.c.c.length == 0 && Ymb(a.n, c); + break; + } + } + N9c(a); + } + function ead(a, b) { + var c, d, e, f, g; + g = a.f; + e = 0; + f = 0; + for (d = new Anb(a.a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 172); + U9c(c, a.e, g); + Q9c(c, b); + f = $wnd.Math.max(f, c.r); + g += c.d + a.c; + e = g; + } + a.d = f; + a.b = e; + } + function R2c(a) { + var b, c; + c = yGd(a); + if (gr(c)) { + return null; + } else { + b = (Qb(c), RD(Er(new is(Mr(c.a.Kc(), new ir()))), 74)); + return AGd(RD(QHd((!b.b && (b.b = new Yie(E4, b, 4, 7)), b.b), 0), 84)); + } + } + function vWd(a) { + var b; + if (!a.o) { + b = a.uk(); + b ? a.o = new D9d(a, a, null) : a.al() ? a.o = new U6d(a, null) : yfe(Qee((lke(), jke), a)) == 1 ? a.o = new N9d(a) : a.o = new S9d(a, null); + } + return a.o; + } + function Vje(a, b, c, d) { + var e, f, g, h, i; + if (c.Xh(b)) { + e = (g = b, !g ? null : RD(d, 54).gi(g)); + if (e) { + i = c.Mh(b); + h = b.t; + if (h > 1 || h == -1) { + f = RD(i, 15); + e.Wb(Sje(a, f)); + } else { + e.Wb(Rje(a, RD(i, 58))); + } + } + } + } + function ceb(b, c, d, e) { + beb(); + var f = _db; + function g() { + for (var a = 0; a < f.length; a++) { + f[a](); + } + } + if (b) { + try { + fve(g)(); + } catch (a) { + b(c, a); + } + } else { + fve(g)(); + } + } + function a6b(a, b) { + var c, d, e, f; + for (e = (f = new Xkb(a.b).a.vc().Kc(), new blb(f)); e.a.Ob(); ) { + d = (c = RD(e.a.Pb(), 44), RD(c.ld(), 34)); + if (egb(b, RD(d, 17)) < 0) { + return false; + } + } + return true; + } + function b6b(a, b) { + var c, d, e, f; + for (e = (f = new Xkb(a.b).a.vc().Kc(), new blb(f)); e.a.Ob(); ) { + d = (c = RD(e.a.Pb(), 44), RD(c.ld(), 34)); + if (egb(b, RD(d, 17)) > 0) { + return false; + } + } + return true; + } + function okc(a) { + var b, c, d, e, f; + for (d = new vkb(new mkb(a.b).a); d.b; ) { + c = tkb(d); + b = RD(c.ld(), 10); + f = RD(RD(c.md(), 42).a, 10); + e = RD(RD(c.md(), 42).b, 8); + $id(hjd(b.n), $id(ajd(f.n), e)); + } + } + function Roc(a) { + switch (RD(mQb(a.b, (yCc(), BAc)), 387).g) { + case 1: + FDb(GDb(EDb(new SDb(null, new Swb(a.d, 16)), new kpc()), new mpc()), new opc()); + break; + case 2: + Toc(a); + break; + case 0: + Soc(a); + } + } + function SVc(a, b, c) { + var d, e, f; + d = c; + !d && (d = new Oqd()); + d.Ug("Layout", a.a.c.length); + for (f = new Anb(a.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 47); + if (d.$g()) { + return; + } + e.Kf(b, d.eh(1)); + } + d.Vg(); + } + function ukd() { + ukd = geb; + tkd = new vkd("V_TOP", 0); + skd = new vkd("V_CENTER", 1); + rkd = new vkd("V_BOTTOM", 2); + pkd = new vkd("H_LEFT", 3); + okd = new vkd("H_CENTER", 4); + qkd = new vkd("H_RIGHT", 5); + } + function GYd(a) { + var b; + if ((a.Db & 64) != 0) + return MXd(a); + b = new Shb(MXd(a)); + b.a += " (abstract: "; + Ohb(b, (a.Bb & 256) != 0); + b.a += ", interface: "; + Ohb(b, (a.Bb & 512) != 0); + b.a += ")"; + return b.a; + } + function Bz(a) { + var b; + if (a.c == null) { + b = dE(a.b) === dE(zz) ? null : a.b; + a.d = b == null ? vve : aE(b) ? Ez(VD(b)) : bE(b) ? uwe : nfb(rb(b)); + a.a = a.a + ": " + (aE(b) ? Dz(VD(b)) : b + ""); + a.c = "(" + a.d + ") " + a.a; + } + } + function Gtb() { + function b() { + try { + return (/* @__PURE__ */ new Map()).entries().next().done; + } catch (a) { + return false; + } + } + if (typeof Map === kve && Map.prototype.entries && b()) { + return Map; + } else { + return Htb(); + } + } + function tUc(a, b) { + var c, d, e, f; + f = new Jkb(a.e, 0); + c = 0; + while (f.b < f.d.gc()) { + d = Kfb((sFb(f.b < f.d.gc()), UD(f.d.Xb(f.c = f.b++)))); + e = d - b; + if (e > AEe) { + return c; + } else + e > -1e-6 && ++c; + } + return c; + } + function n2d(a, b) { + var c; + if (b != a.b) { + c = null; + !!a.b && (c = Jvd(a.b, a, -4, c)); + !!b && (c = Ivd(b, a, -4, c)); + c = e2d(a, b, c); + !!c && c.oj(); + } else + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 3, b, b)); + } + function q2d(a, b) { + var c; + if (b != a.f) { + c = null; + !!a.f && (c = Jvd(a.f, a, -1, c)); + !!b && (c = Ivd(b, a, -1, c)); + c = g2d(a, b, c); + !!c && c.oj(); + } else + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 0, b, b)); + } + function Lge(a, b, c, d) { + var e, f, g, h; + if (Mvd(a.e)) { + e = b.Lk(); + h = b.md(); + f = c.md(); + g = fge(a, 1, e, h, f, e.Jk() ? kge(a, e, f, ZD(e, 102) && (RD(e, 19).Bb & txe) != 0) : -1, true); + d ? d.nj(g) : d = g; + } + return d; + } + function bne(a) { + var b, c, d; + if (a == null) + return null; + c = RD(a, 15); + if (c.dc()) + return ""; + d = new Qhb(); + for (b = c.Kc(); b.Ob(); ) { + Nhb(d, (nme(), WD(b.Pb()))); + d.a += " "; + } + return qeb(d, d.a.length - 1); + } + function fne(a) { + var b, c, d; + if (a == null) + return null; + c = RD(a, 15); + if (c.dc()) + return ""; + d = new Qhb(); + for (b = c.Kc(); b.Ob(); ) { + Nhb(d, (nme(), WD(b.Pb()))); + d.a += " "; + } + return qeb(d, d.a.length - 1); + } + function QIc(a, b, c) { + var d, e; + d = a.c[b.c.p][b.p]; + e = a.c[c.c.p][c.p]; + if (d.a != null && e.a != null) { + return Jfb(d.a, e.a); + } else if (d.a != null) { + return -1; + } else if (e.a != null) { + return 1; + } + return 0; + } + function RVc(a, b, c) { + c.Ug("Tree layout", 1); + Sed(a.b); + Ved(a.b, (YVc(), UVc), UVc); + Ved(a.b, VVc, VVc); + Ved(a.b, WVc, WVc); + Ved(a.b, XVc, XVc); + a.a = Qed(a.b, b); + SVc(a, b, c.eh(1)); + c.Vg(); + return b; + } + function ZDd(a, b) { + var c, d, e, f, g, h; + if (b) { + f = b.a.length; + c = new vue(f); + for (h = (c.b - c.a) * c.c < 0 ? (uue(), tue) : new Rue(c); h.Ob(); ) { + g = RD(h.Pb(), 17); + e = xDd(b, g.a); + d = new aFd(a); + $Dd(d.a, e); + } + } + } + function oEd(a, b) { + var c, d, e, f, g, h; + if (b) { + f = b.a.length; + c = new vue(f); + for (h = (c.b - c.a) * c.c < 0 ? (uue(), tue) : new Rue(c); h.Ob(); ) { + g = RD(h.Pb(), 17); + e = xDd(b, g.a); + d = new LEd(a); + NDd(d.a, e); + } + } + } + function ESd(b) { + var c; + if (b != null && b.length > 0 && ihb(b, b.length - 1) == 33) { + try { + c = nSd(zhb(b, 0, b.length - 1)); + return c.e == null; + } catch (a) { + a = zdb(a); + if (!ZD(a, 33)) + throw Adb(a); + } + } + return false; + } + function u0b(a, b, c) { + var d, e, f; + d = Y2b(b); + e = i2b(d); + f = new R3b(); + P3b(f, b); + switch (c.g) { + case 1: + Q3b(f, spd(vpd(e))); + break; + case 2: + Q3b(f, vpd(e)); + } + pQb(f, (yCc(), ABc), UD(mQb(a, ABc))); + return f; + } + function jdc(a) { + var b, c; + b = RD(hs(new is(Mr(Z2b(a.a).a.Kc(), new ir()))), 18); + c = RD(hs(new is(Mr(a3b(a.a).a.Kc(), new ir()))), 18); + return Heb(TD(mQb(b, (Ywc(), Nwc)))) || Heb(TD(mQb(c, Nwc))); + } + function Bnc() { + Bnc = geb; + xnc = new Cnc("ONE_SIDE", 0); + znc = new Cnc("TWO_SIDES_CORNER", 1); + Anc = new Cnc("TWO_SIDES_OPPOSING", 2); + ync = new Cnc("THREE_SIDES", 3); + wnc = new Cnc("FOUR_SIDES", 4); + } + function Usc(a, b) { + var c, d, e, f; + f = new bnb(); + e = 0; + d = b.Kc(); + while (d.Ob()) { + c = sgb(RD(d.Pb(), 17).a + e); + while (c.a < a.f && !wsc(a, c.a)) { + c = sgb(c.a + 1); + ++e; + } + if (c.a >= a.f) { + break; + } + ZEb(f.c, c); + } + return f; + } + function iIc(a, b) { + var c, d, e, f, g; + for (f = new Anb(b.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + for (d = new is(Mr(Z2b(e).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + g = c.c.i.p; + a.n[g] = a.n[g] - 1; + } + } + } + function fOc(a) { + var b, c; + for (c = new Anb(a.e.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 30); + wOc(a, b); + } + FDb(CDb(EDb(EDb(new SDb(null, new Swb(a.e.b, 16)), new wPc()), new TPc()), new VPc()), new XPc(a)); + } + function oKd(a, b) { + if (!b) { + return false; + } else { + if (a.mj(b)) { + return false; + } + if (!a.i) { + if (ZD(b, 152)) { + a.i = RD(b, 152); + return true; + } else { + a.i = new fLd(); + return a.i.nj(b); + } + } else { + return a.i.nj(b); + } + } + } + function Hge(a, b, c) { + var d, e, f; + d = b.Lk(); + f = b.md(); + e = d.Jk() ? fge(a, 3, d, null, f, kge(a, d, f, ZD(d, 102) && (RD(d, 19).Bb & txe) != 0), true) : fge(a, 1, d, d.ik(), f, -1, true); + c ? c.nj(e) : c = e; + return c; + } + function $me(a) { + a = nue(a, true); + if (lhb(FGe, a) || lhb("1", a)) { + return Geb(), Feb; + } else if (lhb(GGe, a) || lhb("0", a)) { + return Geb(), Eeb; + } + throw Adb(new Mle("Invalid boolean value: '" + a + "'")); + } + function Kd(a, b, c) { + var d, e, f; + for (e = a.vc().Kc(); e.Ob(); ) { + d = RD(e.Pb(), 44); + f = d.ld(); + if (dE(b) === dE(f) || b != null && pb(b, f)) { + if (c) { + d = new xlb(d.ld(), d.md()); + e.Qb(); + } + return d; + } + } + return null; + } + function WMb(a) { + RMb(); + var b, c, d; + if (!a.B.Hc((dqd(), Xpd))) { + return; + } + d = a.f.i; + b = new Vid(a.a.c); + c = new z3b(); + c.b = b.c - d.c; + c.d = b.d - d.d; + c.c = d.c + d.b - (b.c + b.b); + c.a = d.d + d.a - (b.d + b.a); + a.e.$f(c); + } + function CQb(a, b, c, d) { + var e, f, g; + g = $wnd.Math.min(c, FQb(RD(a.b, 68), b, c, d)); + for (f = new Anb(a.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 225); + e != b && (g = $wnd.Math.min(g, CQb(e, b, g, d))); + } + return g; + } + function c1b(a) { + var b, c, d, e; + e = $C(jR, Nve, 199, a.b.c.length, 0, 2); + d = new Jkb(a.b, 0); + while (d.b < d.d.gc()) { + b = (sFb(d.b < d.d.gc()), RD(d.d.Xb(d.c = d.b++), 30)); + c = d.b - 1; + e[c] = t2b(b.a); + } + return e; + } + function c6b(a, b, c) { + var d, e, f; + d = RD(cub(a.a, c), 34); + if (d != null) { + f = RD(cub(a.b, d), 67); + ze(f, c, true); + } + e = RD(cub(a.b, b), 67); + if (!e) { + e = new Yub(); + dub(a.b, b, e); + } + Pub(e, c, e.c.b, e.c); + dub(a.a, c, b); + } + function _6b(a, b, c, d, e) { + var f, g, h, i; + g = XNb(WNb(_Nb(Y6b(c)), d), T6b(a, c, e)); + for (i = e3b(a, c).Kc(); i.Ob(); ) { + h = RD(i.Pb(), 12); + if (b[h.p]) { + f = b[h.p].i; + Rmb(g.d, new sOb(f, UNb(g, f))); + } + } + VNb(g); + } + function Ylc(a, b) { + this.f = new Tsb(); + this.b = new Tsb(); + this.j = new Tsb(); + this.a = a; + this.c = b; + this.c > 0 && Xlc(this, this.c - 1, (qpd(), Xod)); + this.c < this.a.length - 1 && Xlc(this, this.c + 1, (qpd(), ppd)); + } + function Iqc(a, b) { + var c, d, e, f, g; + for (f = new Anb(b.d); f.a < f.c.c.length; ) { + e = RD(ynb(f), 105); + g = RD(Wjb(a.c, e), 118).o; + for (d = new Osb(e.b); d.a < d.c.a.length; ) { + c = RD(Nsb(d), 64); + Umc(e, c, g); + } + } + } + function qJc(a) { + a.length > 0 && a[0].length > 0 && (this.c = Heb(TD(mQb(Y2b(a[0][0]), (Ywc(), rwc))))); + this.a = $C(aY, Nve, 2117, a.length, 0, 2); + this.b = $C(dY, Nve, 2118, a.length, 0, 2); + this.d = new Ks(); + } + function TOc(a) { + if (a.c.length == 0) { + return false; + } + if ((tFb(0, a.c.length), RD(a.c[0], 18)).c.i.k == (r3b(), o3b)) { + return true; + } + return yDb(GDb(new SDb(null, new Swb(a, 16)), new WOc()), new YOc()); + } + function I5c(a, b) { + var c, d, e, f, g, h, i; + h = Q2c(b); + f = b.f; + i = b.g; + g = $wnd.Math.sqrt(f * f + i * i); + e = 0; + for (d = new Anb(h); d.a < d.c.c.length; ) { + c = RD(ynb(d), 27); + e += I5c(a, c); + } + return $wnd.Math.max(e, g); + } + function Bod() { + Bod = geb; + Aod = new Eod(Sye, 0); + zod = new Eod("FREE", 1); + yod = new Eod("FIXED_SIDE", 2); + vod = new Eod("FIXED_ORDER", 3); + xod = new Eod("FIXED_RATIO", 4); + wod = new Eod("FIXED_POS", 5); + } + function Cee(a, b) { + var c, d, e; + c = b.qi(a.a); + if (c) { + e = WD($Nd((!c.b && (c.b = new SVd((JTd(), FTd), C8, c)), c.b), bLe)); + for (d = 1; d < (lke(), kke).length; ++d) { + if (lhb(kke[d], e)) { + return d; + } + } + } + return 0; + } + function aob(a) { + var b, c, d, e, f; + if (a == null) { + return vve; + } + f = new Jyb(pve, "[", "]"); + for (c = a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + Gyb(f, "" + b); + } + return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); + } + function gob(a) { + var b, c, d, e, f; + if (a == null) { + return vve; + } + f = new Jyb(pve, "[", "]"); + for (c = a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + Gyb(f, "" + b); + } + return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); + } + function Md(a) { + var b, c, d; + d = new Jyb(pve, "{", "}"); + for (c = a.vc().Kc(); c.Ob(); ) { + b = RD(c.Pb(), 44); + Gyb(d, Nd(a, b.ld()) + "=" + Nd(a, b.md())); + } + return !d.a ? d.c : d.e.length == 0 ? d.a.a : d.a.a + ("" + d.e); + } + function vJb(a) { + var b, c, d, e; + while (!nmb(a.o)) { + c = RD(smb(a.o), 42); + d = RD(c.a, 125); + b = RD(c.b, 218); + e = oIb(b, d); + if (b.e == d) { + EIb(e.g, b); + d.e = e.e + b.a; + } else { + EIb(e.b, b); + d.e = e.e - b.a; + } + Rmb(a.e.a, d); + } + } + function W9b(a, b) { + var c, d, e; + c = null; + for (e = RD(b.Kb(a), 20).Kc(); e.Ob(); ) { + d = RD(e.Pb(), 18); + if (!c) { + c = d.c.i == a ? d.d.i : d.c.i; + } else { + if ((d.c.i == a ? d.d.i : d.c.i) != c) { + return false; + } + } + } + return true; + } + function UTc(a, b) { + var c, d, e, f, g; + c = uSc(a, false, b); + for (e = new Anb(c); e.a < e.c.c.length; ) { + d = RD(ynb(e), 132); + d.d == 0 ? (_Sc(d, null), aTc(d, null)) : (f = d.a, g = d.b, _Sc(d, g), aTc(d, f), void 0); + } + } + function QUc(a) { + var b, c; + b = new ufd(); + ofd(b, CUc); + c = RD(mQb(a, (Ywc(), kwc)), 21); + c.Hc((ovc(), nvc)) && ofd(b, GUc); + c.Hc(evc) && ofd(b, DUc); + c.Hc(lvc) && ofd(b, FUc); + c.Hc(gvc) && ofd(b, EUc); + return b; + } + function iz(a, b, c) { + var d, e, f, g, h; + jz(a); + for (e = (a.k == null && (a.k = $C(rJ, Nve, 82, 0, 0, 1)), a.k), f = 0, g = e.length; f < g; ++f) { + d = e[f]; + iz(d); + } + h = a.f; + !!h && iz(h); + } + function kec(a) { + var b, c, d, e; + jec(a); + for (c = new is(Mr(W2b(a).a.Kc(), new ir())); gs(c); ) { + b = RD(hs(c), 18); + d = b.c.i == a; + e = d ? b.d : b.c; + d ? Z0b(b, null) : Y0b(b, null); + pQb(b, (Ywc(), Ewc), e); + oec(a, e.i); + } + } + function aqc(a, b, c, d) { + var e, f; + f = b.i; + e = c[f.g][a.d[f.g]]; + switch (f.g) { + case 1: + e -= d + b.j.b; + b.g.b = e; + break; + case 3: + e += d; + b.g.b = e; + break; + case 4: + e -= d + b.j.a; + b.g.a = e; + break; + case 2: + e += d; + b.g.a = e; + } + } + function K2c(a) { + var b, c, d; + for (c = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); c.e != c.i.gc(); ) { + b = RD(bMd(c), 27); + d = yGd(b); + if (!gs(new is(Mr(d.a.Kc(), new ir())))) { + return b; + } + } + return null; + } + function g3c() { + g3c = geb; + e3c = new h3c("OVERLAP_REMOVAL", 0); + b3c = new h3c(iFe, 1); + f3c = new h3c("ROTATION", 2); + c3c = new h3c("GRAPH_SIZE_CALCULATION", 3); + d3c = new h3c("OUTGOING_EDGE_ANGLES", 4); + } + function aCd() { + var a; + if (YBd) + return RD(N5d((YSd(), XSd), $He), 2115); + a = RD(ZD(Xjb((YSd(), XSd), $He), 569) ? Xjb(XSd, $He) : new _Bd(), 569); + YBd = true; + ZBd(a); + $Bd(a); + rBd(a); + $jb(XSd, $He, a); + return a; + } + function Tge(a, b, c) { + var d, e; + if (a.j == 0) + return c; + e = RD(jZd(a, b, c), 76); + d = c.Lk(); + if (!d.rk() || !a.a.am(d)) { + throw Adb(new yz("Invalid entry feature '" + d.qk().zb + "." + d.xe() + "'")); + } + return e; + } + function Yi(a, b) { + var c, d, e, f, g, h, i, j; + for (h = a.a, i = 0, j = h.length; i < j; ++i) { + g = h[i]; + for (d = g, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + if (dE(b) === dE(c) || b != null && pb(b, c)) { + return true; + } + } + } + return false; + } + function yjb(a) { + var b, c, d; + if (Ddb(a, 0) >= 0) { + c = Fdb(a, ixe); + d = Mdb(a, ixe); + } else { + b = Udb(a, 1); + c = Fdb(b, 5e8); + d = Mdb(b, 5e8); + d = Bdb(Sdb(d, 1), Cdb(a, 1)); + } + return Rdb(Sdb(d, 32), Cdb(c, yxe)); + } + function fTb(a, b, c) { + var d, e; + d = (sFb(b.b != 0), RD(Wub(b, b.a.a), 8)); + switch (c.g) { + case 0: + d.b = 0; + break; + case 2: + d.b = a.f; + break; + case 3: + d.a = 0; + break; + default: + d.a = a.g; + } + e = Sub(b, 0); + cvb(e, d); + return b; + } + function Vpc(a, b, c, d) { + var e, f, g, h, i; + i = a.b; + f = b.d; + g = f.j; + h = $pc(g, i.d[g.g], c); + e = $id(ajd(f.n), f.a); + switch (f.j.g) { + case 1: + case 3: + h.a += e.a; + break; + case 2: + case 4: + h.b += e.b; + } + Pub(d, h, d.c.b, d.c); + } + function YNc(a, b, c) { + var d, e, f, g; + g = Wmb(a.e, b, 0); + f = new ZNc(); + f.b = c; + d = new Jkb(a.e, g); + while (d.b < d.d.gc()) { + e = (sFb(d.b < d.d.gc()), RD(d.d.Xb(d.c = d.b++), 10)); + e.p = c; + Rmb(f.e, e); + Ckb(d); + } + return f; + } + function l8c(a, b, c, d) { + var e, f, g, h, i; + e = null; + f = 0; + for (h = new Anb(b); h.a < h.c.c.length; ) { + g = RD(ynb(h), 27); + i = g.i + g.g; + if (a < g.j + g.f + d) { + !e ? e = g : c.i - i < c.i - f && (e = g); + f = e.i + e.g; + } + } + return !e ? 0 : f + d; + } + function m8c(a, b, c, d) { + var e, f, g, h, i; + f = null; + e = 0; + for (h = new Anb(b); h.a < h.c.c.length; ) { + g = RD(ynb(h), 27); + i = g.j + g.f; + if (a < g.i + g.g + d) { + !f ? f = g : c.j - i < c.j - e && (f = g); + e = f.j + f.f; + } + } + return !f ? 0 : e + d; + } + function CA(a) { + var b, c, d; + b = false; + d = a.b.c.length; + for (c = 0; c < d; c++) { + if (DA(RD(Vmb(a.b, c), 443))) { + if (!b && c + 1 < d && DA(RD(Vmb(a.b, c + 1), 443))) { + b = true; + RD(Vmb(a.b, c), 443).a = true; + } + } else { + b = false; + } + } + } + function Ijb(a, b, c, d, e) { + var f, g; + f = 0; + for (g = 0; g < e; g++) { + f = Bdb(f, Vdb(Cdb(b[g], yxe), Cdb(d[g], yxe))); + a[g] = Ydb(f); + f = Tdb(f, 32); + } + for (; g < c; g++) { + f = Bdb(f, Cdb(b[g], yxe)); + a[g] = Ydb(f); + f = Tdb(f, 32); + } + } + function Rjb(a, b) { + Ljb(); + var c, d; + d = (Pib(), Kib); + c = a; + for (; b > 1; b >>= 1) { + (b & 1) != 0 && (d = Wib(d, c)); + c.d == 1 ? c = Wib(c, c) : c = new djb(Tjb(c.a, c.d, $C(kE, Pwe, 28, c.d << 1, 15, 1))); + } + d = Wib(d, c); + return d; + } + function Hwb() { + Hwb = geb; + var a, b, c, d; + Ewb = $C(iE, vxe, 28, 25, 15, 1); + Fwb = $C(iE, vxe, 28, 33, 15, 1); + d = 152587890625e-16; + for (b = 32; b >= 0; b--) { + Fwb[b] = d; + d *= 0.5; + } + c = 1; + for (a = 24; a >= 0; a--) { + Ewb[a] = c; + c *= 0.5; + } + } + function a5b(a) { + var b, c; + if (Heb(TD(Gxd(a, (yCc(), NAc))))) { + for (c = new is(Mr(zGd(a).a.Kc(), new ir())); gs(c); ) { + b = RD(hs(c), 74); + if (ozd(b)) { + if (Heb(TD(Gxd(b, OAc)))) { + return true; + } + } + } + } + return false; + } + function Qmc(a, b) { + var c, d, e; + if (Ysb(a.f, b)) { + b.b = a; + d = b.c; + Wmb(a.j, d, 0) != -1 || Rmb(a.j, d); + e = b.d; + Wmb(a.j, e, 0) != -1 || Rmb(a.j, e); + c = b.a.b; + if (c.c.length != 0) { + !a.i && (a.i = new _mc(a)); + Wmc(a.i, c); + } + } + } + function Xpc(a) { + var b, c, d, e, f; + c = a.c.d; + d = c.j; + e = a.d.d; + f = e.j; + if (d == f) { + return c.p < e.p ? 0 : 1; + } else if (tpd(d) == f) { + return 0; + } else if (rpd(d) == f) { + return 1; + } else { + b = a.b; + return Csb(b.b, tpd(d)) ? 0 : 1; + } + } + function Pfd(a) { + var b; + this.d = new Tsb(); + this.c = a.c; + this.e = a.d; + this.b = a.b; + this.f = new ntd(a.e); + this.a = a.a; + !a.f ? this.g = (b = RD(mfb(T5), 9), new Fsb(b, RD(WEb(b, b.length), 9), 0)) : this.g = a.f; + } + function GEd(a, b) { + var c, d, e, f, g, h; + e = a; + g = yDd(e, "layoutOptions"); + !g && (g = yDd(e, cIe)); + if (g) { + h = g; + d = null; + !!h && (d = (f = oC(h, $C(qJ, Nve, 2, 0, 6, 1)), new CC(h, f))); + if (d) { + c = new bFd(h, b); + xgb(d, c); + } + } + } + function AGd(a) { + if (ZD(a, 207)) { + return RD(a, 27); + } else if (ZD(a, 193)) { + return MCd(RD(a, 123)); + } else if (!a) { + throw Adb(new Ogb(HIe)); + } else { + throw Adb(new kib("Only support nodes and ports.")); + } + } + function SA(a, b, c, d) { + if (b >= 0 && lhb(a.substr(b, "GMT".length), "GMT")) { + c[0] = b + 3; + return JA(a, c, d); + } + if (b >= 0 && lhb(a.substr(b, "UTC".length), "UTC")) { + c[0] = b + 3; + return JA(a, c, d); + } + return JA(a, c, d); + } + function Zmc(a, b) { + var c, d, e, f, g; + f = a.g.a; + g = a.g.b; + for (d = new Anb(a.d); d.a < d.c.c.length; ) { + c = RD(ynb(d), 72); + e = c.n; + e.a = f; + a.i == (qpd(), Yod) ? e.b = g + a.j.b - c.o.b : e.b = g; + $id(e, b); + f += c.o.a + a.e; + } + } + function Fqd(a, b, c) { + if (a.b) { + throw Adb(new dgb("The task is already done.")); + } else if (a.p != null) { + return false; + } else { + a.p = b; + a.r = c; + a.k && (a.o = (gib(), Ndb(Hdb(Date.now()), Awe))); + return true; + } + } + function HFd(a) { + var b, c, d, e, f, g, h; + h = new uC(); + c = a.Pg(); + e = c != null; + e && sDd(h, uIe, a.Pg()); + d = a.xe(); + f = d != null; + f && sDd(h, GIe, a.xe()); + b = a.Og(); + g = b != null; + g && sDd(h, "description", a.Og()); + return h; + } + function UVd(a, b, c) { + var d, e, f; + f = a.q; + a.q = b; + if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { + e = new N3d(a, 1, 9, f, b); + !c ? c = e : c.nj(e); + } + if (!b) { + !!a.r && (c = a.Yk(null, c)); + } else { + d = b.c; + d != a.r && (c = a.Yk(d, c)); + } + return c; + } + function gae(a, b, c) { + var d, e, f, g, h; + c = (h = b, Ivd(h, a.e, -1 - a.c, c)); + g = $9d(a.a); + for (f = (d = new vkb(new mkb(g.a).a), new xae(d)); f.a.b; ) { + e = RD(tkb(f.a).ld(), 89); + c = o2d(e, k2d(e, a.a), c); + } + return c; + } + function hae(a, b, c) { + var d, e, f, g, h; + c = (h = b, Jvd(h, a.e, -1 - a.c, c)); + g = $9d(a.a); + for (f = (d = new vkb(new mkb(g.a).a), new xae(d)); f.a.b; ) { + e = RD(tkb(f.a).ld(), 89); + c = o2d(e, k2d(e, a.a), c); + } + return c; + } + function rjb(a, b, c, d) { + var e, f, g; + if (d == 0) { + hib(b, 0, a, c, a.length - c); + } else { + g = 32 - d; + a[a.length - 1] = 0; + for (f = a.length - 1; f > c; f--) { + a[f] |= b[f - c - 1] >>> g; + a[f - 1] = b[f - c - 1] << d; + } + } + for (e = 0; e < c; e++) { + a[e] = 0; + } + } + function CMb(a) { + var b, c, d, e, f; + b = 0; + c = 0; + for (f = a.Kc(); f.Ob(); ) { + d = RD(f.Pb(), 117); + b = $wnd.Math.max(b, d.d.b); + c = $wnd.Math.max(c, d.d.c); + } + for (e = a.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 117); + d.d.b = b; + d.d.c = c; + } + } + function KNb(a) { + var b, c, d, e, f; + c = 0; + b = 0; + for (f = a.Kc(); f.Ob(); ) { + d = RD(f.Pb(), 117); + c = $wnd.Math.max(c, d.d.d); + b = $wnd.Math.max(b, d.d.a); + } + for (e = a.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 117); + d.d.d = c; + d.d.a = b; + } + } + function Pnc(a, b, c, d, e) { + var f, g; + f = RD(zDb(CDb(b.Oc(), new Foc()), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + Eob(f); + g = RD($i(a.b, c, d), 15); + e == 0 ? g.cd(0, f) : g.Gc(f); + } + function Sdd(a, b, c) { + c.Ug("Grow Tree", 1); + a.b = b.f; + if (Heb(TD(mQb(b, (OQb(), MQb))))) { + a.c = new kRb(); + Odd(a, null); + } else { + a.c = new kRb(); + } + a.a = false; + Qdd(a, b.f); + pQb(b, NQb, (Geb(), a.a ? true : false)); + c.Vg(); + } + function wsd(a) { + var b, c, d, e; + b = null; + for (e = new Anb(a.Rf()); e.a < e.c.c.length; ) { + d = RD(ynb(e), 187); + c = new Uid(d.Lf().a, d.Lf().b, d.Mf().a, d.Mf().b); + !b ? b = c : Sid(b, c); + } + !b && (b = new Tid()); + return b; + } + function dyd(a, b, c, d) { + var e, f; + if (c == 1) { + return !a.n && (a.n = new C5d(I4, a, 1, 7)), qLd(a.n, b, d); + } + return f = RD(vYd((e = RD(Ywd(a, 16), 29), !e ? a.ii() : e), c), 69), f.wk().zk(a, Wwd(a), c - AYd(a.ii()), b, d); + } + function IHd(a, b, c) { + var d, e, f, g, h; + d = c.gc(); + a._i(a.i + d); + h = a.i - b; + h > 0 && hib(a.g, b, a.g, b + d, h); + g = c.Kc(); + a.i += d; + for (e = 0; e < d; ++e) { + f = g.Pb(); + MHd(a, b, a.Zi(b, f)); + a.Mi(b, f); + a.Ni(); + ++b; + } + return d != 0; + } + function XVd(a, b, c) { + var d; + if (b != a.q) { + !!a.q && (c = Jvd(a.q, a, -10, c)); + !!b && (c = Ivd(b, a, -10, c)); + c = UVd(a, b, c); + } else if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { + d = new N3d(a, 1, 9, b, b); + !c ? c = d : c.nj(d); + } + return c; + } + function ek(a, b, c, d) { + Mb((c & Ove) == 0, "flatMap does not support SUBSIZED characteristic"); + Mb((c & 4) == 0, "flatMap does not support SORTED characteristic"); + Qb(a); + Qb(b); + return new Mk(a, b, c, d); + } + function fz(a, b) { + vFb(b, "Cannot suppress a null exception."); + mFb(b != a, "Exception can not suppress itself."); + if (a.i) { + return; + } + a.k == null ? a.k = cD(WC(rJ, 1), Nve, 82, 0, [b]) : a.k[a.k.length] = b; + } + function DLb(a, b) { + var c; + c = ELb(a.b.ag(), b.b.ag()); + if (c != 0) { + return c; + } + switch (a.b.ag().g) { + case 1: + case 2: + return hgb(a.b.Nf(), b.b.Nf()); + case 3: + case 4: + return hgb(b.b.Nf(), a.b.Nf()); + } + return 0; + } + function eUb(a) { + var b, c, d; + d = a.e.c.length; + a.a = YC(kE, [Nve, Pwe], [53, 28], 15, [d, d], 2); + for (c = new Anb(a.c); c.a < c.c.c.length; ) { + b = RD(ynb(c), 290); + a.a[b.c.a][b.d.a] += RD(mQb(b, (yVb(), lVb)), 17).a; + } + } + function sAd(a, b) { + var c, d, e, f, g; + if (a == null) { + return null; + } else { + g = $C(hE, zwe, 28, 2 * b, 15, 1); + for (d = 0, e = 0; d < b; ++d) { + c = a[d] >> 4 & 15; + f = a[d] & 15; + g[e++] = oAd[c]; + g[e++] = oAd[f]; + } + return Ihb(g, 0, g.length); + } + } + function Fhb(a) { + var b, c; + if (a >= txe) { + b = uxe + (a - txe >> 10 & 1023) & Bwe; + c = 56320 + (a - txe & 1023) & Bwe; + return String.fromCharCode(b) + ("" + String.fromCharCode(c)); + } else { + return String.fromCharCode(a & Bwe); + } + } + function UMb(a, b) { + RMb(); + var c, d, e, f; + e = RD(RD(Qc(a.r, b), 21), 87); + if (e.gc() >= 2) { + d = RD(e.Kc().Pb(), 117); + c = a.u.Hc((Pod(), Kod)); + f = a.u.Hc(Ood); + return !d.a && !c && (e.gc() == 2 || f); + } else { + return false; + } + } + function v3c(a, b, c, d, e) { + var f, g, h; + f = w3c(a, b, c, d, e); + h = false; + while (!f) { + n3c(a, e, true); + h = true; + f = w3c(a, b, c, d, e); + } + h && n3c(a, e, false); + g = N2c(e); + if (g.c.length != 0) { + !!a.d && a.d.Gg(g); + v3c(a, e, c, d, g); + } + } + function ind() { + ind = geb; + gnd = new jnd(LAe, 0); + end = new jnd("DIRECTED", 1); + hnd = new jnd("UNDIRECTED", 2); + cnd = new jnd("ASSOCIATION", 3); + fnd = new jnd("GENERALIZATION", 4); + dnd = new jnd("DEPENDENCY", 5); + } + function nsd(a, b) { + var c; + if (!MCd(a)) { + throw Adb(new dgb(sHe)); + } + c = MCd(a); + switch (b.g) { + case 1: + return -(a.j + a.f); + case 2: + return a.i - c.g; + case 3: + return a.j - c.f; + case 4: + return -(a.i + a.g); + } + return 0; + } + function Jge(a, b, c) { + var d, e, f; + d = b.Lk(); + f = b.md(); + e = d.Jk() ? fge(a, 4, d, f, null, kge(a, d, f, ZD(d, 102) && (RD(d, 19).Bb & txe) != 0), true) : fge(a, d.tk() ? 2 : 1, d, f, d.ik(), -1, true); + c ? c.nj(e) : c = e; + return c; + } + function lwb(a, b) { + var c, d; + uFb(b); + d = a.b.c.length; + Rmb(a.b, b); + while (d > 0) { + c = d; + d = (d - 1) / 2 | 0; + if (a.a.Ne(Vmb(a.b, d), b) <= 0) { + $mb(a.b, c, b); + return true; + } + $mb(a.b, c, Vmb(a.b, d)); + } + $mb(a.b, d, b); + return true; + } + function sKb(a, b, c, d) { + var e, f; + e = 0; + if (!c) { + for (f = 0; f < jKb; f++) { + e = $wnd.Math.max(e, hKb(a.a[f][b.g], d)); + } + } else { + e = hKb(a.a[c.g][b.g], d); + } + b == (ZJb(), XJb) && !!a.b && (e = $wnd.Math.max(e, a.b.a)); + return e; + } + function Qqc(a, b) { + var c, d, e, f, g, h; + e = a.i; + f = b.i; + if (!e || !f) { + return false; + } + if (e.i != f.i || e.i == (qpd(), Xod) || e.i == (qpd(), ppd)) { + return false; + } + g = e.g.a; + c = g + e.j.a; + h = f.g.a; + d = h + f.j.a; + return g <= d && c >= h; + } + function A8c(a) { + switch (a.g) { + case 0: + return new o8c(); + case 1: + return new u8c(); + default: + throw Adb(new agb("No implementation is available for the width approximator " + (a.f != null ? a.f : "" + a.g))); + } + } + function rDd(a, b, c, d) { + var e; + e = false; + if (bE(d)) { + e = true; + sDd(b, c, WD(d)); + } + if (!e) { + if ($D(d)) { + e = true; + rDd(a, b, c, d); + } + } + if (!e) { + if (ZD(d, 242)) { + e = true; + qDd(b, c, RD(d, 242)); + } + } + if (!e) { + throw Adb(new Aeb(tIe)); + } + } + function uee(a, b) { + var c, d, e; + c = b.qi(a.a); + if (c) { + e = $Nd((!c.b && (c.b = new SVd((JTd(), FTd), C8, c)), c.b), rKe); + if (e != null) { + for (d = 1; d < (lke(), hke).length; ++d) { + if (lhb(hke[d], e)) { + return d; + } + } + } + } + return 0; + } + function vee(a, b) { + var c, d, e; + c = b.qi(a.a); + if (c) { + e = $Nd((!c.b && (c.b = new SVd((JTd(), FTd), C8, c)), c.b), rKe); + if (e != null) { + for (d = 1; d < (lke(), ike).length; ++d) { + if (lhb(ike[d], e)) { + return d; + } + } + } + } + return 0; + } + function Ve(a, b) { + var c, d, e, f; + uFb(b); + f = a.a.gc(); + if (f < b.gc()) { + for (c = a.a.ec().Kc(); c.Ob(); ) { + d = c.Pb(); + b.Hc(d) && c.Qb(); + } + } else { + for (e = b.Kc(); e.Ob(); ) { + d = e.Pb(); + a.a.Bc(d) != null; + } + } + return f != a.a.gc(); + } + function e_b(a) { + var b, c; + c = ajd(xjd(cD(WC(l3, 1), Nve, 8, 0, [a.i.n, a.n, a.a]))); + b = a.i.d; + switch (a.j.g) { + case 1: + c.b -= b.d; + break; + case 2: + c.a += b.c; + break; + case 3: + c.b += b.a; + break; + case 4: + c.a -= b.b; + } + return c; + } + function edc(a) { + var b; + b = (Zcc(), RD(hs(new is(Mr(Z2b(a).a.Kc(), new ir()))), 18).c.i); + while (b.k == (r3b(), o3b)) { + pQb(b, (Ywc(), twc), (Geb(), true)); + b = RD(hs(new is(Mr(Z2b(b).a.Kc(), new ir()))), 18).c.i; + } + } + function BMc(a, b, c, d) { + var e, f, g, h; + h = aMc(b, d); + for (g = h.Kc(); g.Ob(); ) { + e = RD(g.Pb(), 12); + a.d[e.p] = a.d[e.p] + a.c[c.p]; + } + h = aMc(c, d); + for (f = h.Kc(); f.Ob(); ) { + e = RD(f.Pb(), 12); + a.d[e.p] = a.d[e.p] - a.c[b.p]; + } + } + function Isd(a, b, c) { + var d, e; + for (e = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); e.e != e.i.gc(); ) { + d = RD(bMd(e), 27); + Byd(d, d.i + b, d.j + c); + } + xgb((!a.b && (a.b = new C5d(G4, a, 12, 3)), a.b), new Osd(b, c)); + } + function $yb(a, b, c, d) { + var e, f; + f = b; + e = f.d == null || a.a.Ne(c.d, f.d) > 0 ? 1 : 0; + while (f.a[e] != c) { + f = f.a[e]; + e = a.a.Ne(c.d, f.d) > 0 ? 1 : 0; + } + f.a[e] = d; + d.b = c.b; + d.a[0] = c.a[0]; + d.a[1] = c.a[1]; + c.a[0] = null; + c.a[1] = null; + } + function zIb(a) { + var b, c, d, e; + b = new bnb(); + c = $C(xdb, Hye, 28, a.a.c.length, 16, 1); + Snb(c, c.length); + for (e = new Anb(a.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 125); + if (!c[d.d]) { + ZEb(b.c, d); + yIb(a, d, c); + } + } + return b; + } + function UXb(a, b) { + var c, d, e, f, g; + e = b == 1 ? MXb : LXb; + for (d = e.a.ec().Kc(); d.Ob(); ) { + c = RD(d.Pb(), 88); + for (g = RD(Qc(a.f.c, c), 21).Kc(); g.Ob(); ) { + f = RD(g.Pb(), 42); + Ymb(a.b.b, f.b); + Ymb(a.b.a, RD(f.b, 86).d); + } + } + } + function P9b(a, b) { + var c; + b.Ug("Hierarchical port position processing", 1); + c = a.b; + c.c.length > 0 && O9b((tFb(0, c.c.length), RD(c.c[0], 30)), a); + c.c.length > 1 && O9b(RD(Vmb(c, c.c.length - 1), 30), a); + b.Vg(); + } + function Sod(a) { + Pod(); + var b, c; + b = ysb(Lod, cD(WC(D3, 1), jwe, 279, 0, [Nod])); + if (dy(Tx(b, a)) > 1) { + return false; + } + c = ysb(Kod, cD(WC(D3, 1), jwe, 279, 0, [Jod, Ood])); + if (dy(Tx(c, a)) > 1) { + return false; + } + return true; + } + function FBd(a, b) { + var c; + c = Xjb((YSd(), XSd), a); + ZD(c, 507) ? $jb(XSd, a, new B5d(this, b)) : $jb(XSd, a, this); + BBd(this, b); + if (b == (jTd(), iTd)) { + this.wb = RD(this, 2038); + RD(b, 2040); + } else { + this.wb = (lTd(), kTd); + } + } + function Lae(b) { + var c, d, e; + if (b == null) { + return null; + } + c = null; + for (d = 0; d < nAd.length; ++d) { + try { + return b2d(nAd[d], b); + } catch (a) { + a = zdb(a); + if (ZD(a, 33)) { + e = a; + c = e; + } else + throw Adb(a); + } + } + throw Adb(new RSd(c)); + } + function Mrb() { + Mrb = geb; + Krb = cD(WC(qJ, 1), Nve, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); + Lrb = cD(WC(qJ, 1), Nve, 2, 6, ["Jan", "Feb", "Mar", "Apr", Gwe, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]); + } + function qBb(a) { + var b, c, d; + b = lhb(typeof b, Yxe) ? null : new gFb(); + if (!b) { + return; + } + SAb(); + c = (d = 900, d >= Awe ? "error" : d >= 900 ? "warn" : d >= 800 ? "info" : "log"); + eFb(c, a.a); + !!a.b && fFb(b, c, a.b, "Exception: ", true); + } + function mQb(a, b) { + var c, d; + d = (!a.q && (a.q = new Tsb()), Wjb(a.q, b)); + if (d != null) { + return d; + } + c = b.Sg(); + ZD(c, 4) && (c == null ? (!a.q && (a.q = new Tsb()), _jb(a.q, b)) : (!a.q && (a.q = new Tsb()), Zjb(a.q, b, c)), a); + return c; + } + function sXb() { + sXb = geb; + nXb = new tXb("P1_CYCLE_BREAKING", 0); + oXb = new tXb("P2_LAYERING", 1); + pXb = new tXb("P3_NODE_ORDERING", 2); + qXb = new tXb("P4_NODE_PLACEMENT", 3); + rXb = new tXb("P5_EDGE_ROUTING", 4); + } + function KZb(a, b) { + CZb(); + var c; + if (a.c == b.c) { + if (a.b == b.b || rZb(a.b, b.b)) { + c = oZb(a.b) ? 1 : -1; + if (a.a && !b.a) { + return c; + } else if (!a.a && b.a) { + return -c; + } + } + return hgb(a.b.g, b.b.g); + } else { + return Qfb(a.c, b.c); + } + } + function E3c(a, b) { + var c, d, e; + if (p3c(a, b)) { + return true; + } + for (d = new Anb(b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 27); + e = R2c(c); + if (o3c(a, c, e)) { + return true; + } + if (C3c(a, c) - a.g <= a.a) { + return true; + } + } + return false; + } + function ncd() { + ncd = geb; + mcd = (Kcd(), Jcd); + jcd = Fcd; + icd = Dcd; + gcd = zcd; + hcd = Bcd; + fcd = new A3b(8); + ecd = new mGd((umd(), tld), fcd); + kcd = new mGd(fmd, 8); + lcd = Hcd; + bcd = ucd; + ccd = wcd; + dcd = new mGd(Mkd, (Geb(), false)); + } + function hkd() { + hkd = geb; + ekd = new A3b(15); + dkd = new mGd((umd(), tld), ekd); + gkd = new mGd(fmd, 15); + fkd = new mGd(Rld, sgb(0)); + $jd = Wkd; + akd = kld; + ckd = pld; + Xjd = new mGd(Dkd, KGe); + _jd = ald; + bkd = nld; + Yjd = Fkd; + Zjd = Kkd; + } + function JGd(a) { + if ((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c).i != 1) { + throw Adb(new agb(JIe)); + } + return AGd(RD(QHd((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b), 0), 84)); + } + function KGd(a) { + if ((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c).i != 1) { + throw Adb(new agb(JIe)); + } + return BGd(RD(QHd((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b), 0), 84)); + } + function MGd(a) { + if ((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c).i != 1) { + throw Adb(new agb(JIe)); + } + return BGd(RD(QHd((!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c), 0), 84)); + } + function LGd(a) { + if ((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c).i != 1) { + throw Adb(new agb(JIe)); + } + return AGd(RD(QHd((!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c), 0), 84)); + } + function bJd(a, b, c) { + var d, e, f; + ++a.j; + e = a.Ej(); + if (b >= e || b < 0) + throw Adb(new veb(MIe + b + NIe + e)); + if (c >= e || c < 0) + throw Adb(new veb(OIe + c + NIe + e)); + b != c ? d = (f = a.Cj(c), a.qj(b, f), f) : d = a.xj(c); + return d; + } + function Lje(a) { + var b, c, d; + d = a; + if (a) { + b = 0; + for (c = a.Eh(); c; c = c.Eh()) { + if (++b > wxe) { + return Lje(c); + } + d = c; + if (c == a) { + throw Adb(new dgb("There is a cycle in the containment hierarchy of " + a)); + } + } + } + return d; + } + function Fe(a) { + var b, c, d; + d = new Jyb(pve, "[", "]"); + for (c = a.Kc(); c.Ob(); ) { + b = c.Pb(); + Gyb(d, dE(b) === dE(a) ? "(this Collection)" : b == null ? vve : jeb(b)); + } + return !d.a ? d.c : d.e.length == 0 ? d.a.a : d.a.a + ("" + d.e); + } + function p3c(a, b) { + var c, d; + d = false; + if (b.gc() < 2) { + return false; + } + for (c = 0; c < b.gc(); c++) { + c < b.gc() - 1 ? d = d | o3c(a, RD(b.Xb(c), 27), RD(b.Xb(c + 1), 27)) : d = d | o3c(a, RD(b.Xb(c), 27), RD(b.Xb(0), 27)); + } + return d; + } + function wAd(a, b) { + var c; + if (b != a.a) { + c = null; + !!a.a && (c = RD(a.a, 54).Th(a, 4, t7, c)); + !!b && (c = RD(b, 54).Rh(a, 4, t7, c)); + c = rAd(a, b, c); + !!c && c.oj(); + } else + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 1, b, b)); + } + function p2d(a, b) { + var c; + if (b != a.e) { + !!a.e && oae($9d(a.e), a); + !!b && (!b.b && (b.b = new pae(new lae())), nae(b.b, a)); + c = f2d(a, b, null); + !!c && c.oj(); + } else + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 4, b, b)); + } + function $mc(a, b) { + var c; + c = b.o; + if (Dmd(a.f)) { + a.j.a = $wnd.Math.max(a.j.a, c.a); + a.j.b += c.b; + a.d.c.length > 1 && (a.j.b += a.e); + } else { + a.j.a += c.a; + a.j.b = $wnd.Math.max(a.j.b, c.b); + a.d.c.length > 1 && (a.j.a += a.e); + } + } + function Mnc() { + Mnc = geb; + Jnc = cD(WC(E3, 1), NAe, 64, 0, [(qpd(), Yod), Xod, npd]); + Inc = cD(WC(E3, 1), NAe, 64, 0, [Xod, npd, ppd]); + Knc = cD(WC(E3, 1), NAe, 64, 0, [npd, ppd, Yod]); + Lnc = cD(WC(E3, 1), NAe, 64, 0, [ppd, Yod, Xod]); + } + function Upc(a, b, c, d) { + var e, f, g, h, i, j, k; + g = a.c.d; + h = a.d.d; + if (g.j == h.j) { + return; + } + k = a.b; + e = g.j; + i = null; + while (e != h.j) { + i = b == 0 ? tpd(e) : rpd(e); + f = $pc(e, k.d[e.g], c); + j = $pc(i, k.d[i.g], c); + Mub(d, $id(f, j)); + e = i; + } + } + function OJc(a, b, c, d) { + var e, f, g, h, i; + g = hMc(a.a, b, c); + h = RD(g.a, 17).a; + f = RD(g.b, 17).a; + if (d) { + i = RD(mQb(b, (Ywc(), Iwc)), 10); + e = RD(mQb(c, Iwc), 10); + if (!!i && !!e) { + Slc(a.b, i, e); + h += a.b.i; + f += a.b.e; + } + } + return h > f; + } + function OLc(a) { + var b, c, d, e, f, g, h, i, j; + this.a = LLc(a); + this.b = new bnb(); + for (c = a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + f = new bnb(); + Rmb(this.b, f); + for (h = b, i = 0, j = h.length; i < j; ++i) { + g = h[i]; + Rmb(f, new dnb(g.j)); + } + } + } + function QLc(a, b, c) { + var d, e, f; + f = 0; + d = c[b]; + if (b < c.length - 1) { + e = c[b + 1]; + if (a.b[b]) { + f = iNc(a.d, d, e); + f += lMc(a.a, d, (qpd(), Xod)); + f += lMc(a.a, e, ppd); + } else { + f = gMc(a.a, d, e); + } + } + a.c[b] && (f += nMc(a.a, d)); + return f; + } + function r0b(a, b, c, d, e) { + var f, g, h, i; + i = null; + for (h = new Anb(d); h.a < h.c.c.length; ) { + g = RD(ynb(h), 453); + if (g != c && Wmb(g.e, e, 0) != -1) { + i = g; + break; + } + } + f = s0b(e); + Y0b(f, c.b); + Z0b(f, i.b); + Rc(a.a, e, new J0b(f, b, c.f)); + } + function h2b(a) { + var b, c, d, e; + if (Emd(RD(mQb(a.b, (yCc(), rAc)), 88))) { + return 0; + } + b = 0; + for (d = new Anb(a.a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 10); + if (c.k == (r3b(), p3b)) { + e = c.o.a; + b = $wnd.Math.max(b, e); + } + } + return b; + } + function Tlc(a) { + while (a.g.c != 0 && a.d.c != 0) { + if (amc(a.g).c > amc(a.d).c) { + a.i += a.g.c; + cmc(a.d); + } else if (amc(a.d).c > amc(a.g).c) { + a.e += a.d.c; + cmc(a.g); + } else { + a.i += _lc(a.g); + a.e += _lc(a.d); + cmc(a.g); + cmc(a.d); + } + } + } + function vTc(a, b, c) { + var d, e, f, g; + f = b.q; + g = b.r; + new bTc((fTc(), dTc), b, f, 1); + new bTc(dTc, f, g, 1); + for (e = new Anb(c); e.a < e.c.c.length; ) { + d = RD(ynb(e), 118); + if (d != f && d != b && d != g) { + PTc(a.a, d, b); + PTc(a.a, d, g); + } + } + } + function vVc(a, b, c, d) { + a.a.d = $wnd.Math.min(b, c); + a.a.a = $wnd.Math.max(b, d) - a.a.d; + if (b < c) { + a.b = 0.5 * (b + c); + a.g = CEe * a.b + 0.9 * b; + a.f = CEe * a.b + 0.9 * c; + } else { + a.b = 0.5 * (b + d); + a.g = CEe * a.b + 0.9 * d; + a.f = CEe * a.b + 0.9 * b; + } + } + function zZc(a) { + var b, c, d, e; + if (a.b != 0) { + b = new Yub(); + for (e = Sub(a, 0); e.b != e.d.c; ) { + d = RD(evb(e), 40); + ye(b, $Wc(d)); + c = d.e; + c.a = RD(mQb(d, (q$c(), o$c)), 17).a; + c.b = RD(mQb(d, p$c), 17).a; + } + return b; + } + return new Yub(); + } + function t8b(a) { + switch (RD(mQb(a, (yCc(), UAc)), 171).g) { + case 1: + pQb(a, UAc, (cxc(), _wc)); + break; + case 2: + pQb(a, UAc, (cxc(), axc)); + break; + case 3: + pQb(a, UAc, (cxc(), Zwc)); + break; + case 4: + pQb(a, UAc, (cxc(), $wc)); + } + } + function Whc(a, b, c) { + var d; + c.Ug("Self-Loop routing", 1); + d = Xhc(b); + fE(mQb(b, (rid(), qid))); + FDb(GDb(CDb(CDb(EDb(new SDb(null, new Swb(b.b, 16)), new $hc()), new aic()), new cic()), new eic()), new gic(a, d)); + c.Vg(); + } + function $uc() { + $uc = geb; + Yuc = new _uc(LAe, 0); + Vuc = new _uc(Nye, 1); + Zuc = new _uc(Oye, 2); + Xuc = new _uc("LEFT_RIGHT_CONSTRAINT_LOCKING", 3); + Wuc = new _uc("LEFT_RIGHT_CONNECTION_LOCKING", 4); + Uuc = new _uc(EBe, 5); + } + function tWc(a, b, c) { + var d, e, f, g, h, i, j; + h = c.a / 2; + f = c.b / 2; + d = $wnd.Math.abs(b.a - a.a); + e = $wnd.Math.abs(b.b - a.b); + i = 1; + j = 1; + d > h && (i = h / d); + e > f && (j = f / e); + g = $wnd.Math.min(i, j); + a.a += g * (b.a - a.a); + a.b += g * (b.b - a.b); + } + function I8c(a, b, c, d, e) { + var f, g; + g = false; + f = RD(Vmb(c.b, 0), 27); + while (V8c(a, b, f, d, e)) { + g = true; + T9c(c, f); + if (c.b.c.length == 0) { + break; + } + f = RD(Vmb(c.b, 0), 27); + } + c.b.c.length == 0 && Fad(c.j, c); + g && gad(b.q); + return g; + } + function Eid(a, b) { + tid(); + var c, d, e, f; + if (b.b < 2) { + return false; + } + f = Sub(b, 0); + c = RD(evb(f), 8); + d = c; + while (f.b != f.d.c) { + e = RD(evb(f), 8); + if (Did(a, d, e)) { + return true; + } + d = e; + } + if (Did(a, d, c)) { + return true; + } + return false; + } + function Bxd(a, b, c, d) { + var e, f; + if (c == 0) { + return !a.o && (a.o = new DVd((pvd(), mvd), X4, a, 0)), BVd(a.o, b, d); + } + return f = RD(vYd((e = RD(Ywd(a, 16), 29), !e ? a.ii() : e), c), 69), f.wk().Ak(a, Wwd(a), c - AYd(a.ii()), b, d); + } + function BBd(a, b) { + var c; + if (b != a.sb) { + c = null; + !!a.sb && (c = RD(a.sb, 54).Th(a, 1, n7, c)); + !!b && (c = RD(b, 54).Rh(a, 1, n7, c)); + c = hBd(a, b, c); + !!c && c.oj(); + } else + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 4, b, b)); + } + function YDd(a, b) { + var c, d, e, f; + if (b) { + e = vDd(b, "x"); + c = new ZEd(a); + Hzd(c.a, (uFb(e), e)); + f = vDd(b, "y"); + d = new $Ed(a); + Izd(d.a, (uFb(f), f)); + } else { + throw Adb(new CDd("All edge sections need an end point.")); + } + } + function WDd(a, b) { + var c, d, e, f; + if (b) { + e = vDd(b, "x"); + c = new WEd(a); + Ozd(c.a, (uFb(e), e)); + f = vDd(b, "y"); + d = new XEd(a); + Pzd(d.a, (uFb(f), f)); + } else { + throw Adb(new CDd("All edge sections need a start point.")); + } + } + function hBb(a, b) { + var c, d, e, f, g, h, i; + for (d = kBb(a), f = 0, h = d.length; f < h; ++f) { + qBb(b); + } + i = !dBb && a.e ? dBb ? null : a.d : null; + while (i) { + for (c = kBb(i), e = 0, g = c.length; e < g; ++e) { + qBb(b); + } + i = !dBb && i.e ? dBb ? null : i.d : null; + } + } + function aXb(a, b) { + var c, d; + d = RD(mQb(b, (yCc(), BBc)), 101); + pQb(b, (Ywc(), Fwc), d); + c = b.e; + !!c && (FDb(new SDb(null, new Swb(c.a, 16)), new fXb(a)), FDb(EDb(new SDb(null, new Swb(c.b, 16)), new hXb()), new jXb(a))); + } + function r3b() { + r3b = geb; + p3b = new s3b("NORMAL", 0); + o3b = new s3b("LONG_EDGE", 1); + m3b = new s3b("EXTERNAL_PORT", 2); + q3b = new s3b("NORTH_SOUTH_PORT", 3); + n3b = new s3b("LABEL", 4); + l3b = new s3b("BREAKING_POINT", 5); + } + function x7b(a) { + var b, c, d, e; + b = false; + if (nQb(a, (Ywc(), cwc))) { + c = RD(mQb(a, cwc), 85); + for (e = new Anb(a.j); e.a < e.c.c.length; ) { + d = RD(ynb(e), 12); + if (v7b(d)) { + if (!b) { + u7b(Y2b(a)); + b = true; + } + y7b(RD(c.xc(d), 314)); + } + } + } + } + function GFd(a) { + var b, c, d, e, f, g, h, i, j; + j = HFd(a); + c = a.e; + f = c != null; + f && sDd(j, FIe, a.e); + h = a.k; + g = !!h; + g && sDd(j, "type", ps(a.k)); + d = cve(a.j); + e = !d; + if (e) { + i = new MB(); + sC(j, lIe, i); + b = new SFd(i); + xgb(a.j, b); + } + return j; + } + function Zv(a) { + var b, c, d, e; + e = Thb((dk(a.gc(), "size"), new cib()), 123); + d = true; + for (c = gn(a).Kc(); c.Ob(); ) { + b = RD(c.Pb(), 44); + d || (e.a += pve, e); + d = false; + Yhb(Thb(Yhb(e, b.ld()), 61), b.md()); + } + return (e.a += "}", e).a; + } + function AD(a, b) { + var c, d, e; + b &= 63; + if (b < 22) { + c = a.l << b; + d = a.m << b | a.l >> 22 - b; + e = a.h << b | a.m >> 22 - b; + } else if (b < 44) { + c = 0; + d = a.l << b - 22; + e = a.m << b - 22 | a.l >> 44 - b; + } else { + c = 0; + d = 0; + e = a.l << b - 44; + } + return hD(c & dxe, d & dxe, e & exe); + } + function Neb(a) { + Meb == null && (Meb = new RegExp("^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$")); + if (!Meb.test(a)) { + throw Adb(new Vgb(nxe + a + '"')); + } + return parseFloat(a); + } + function PXb(a, b) { + var c, d, e, f, g; + e = b == 1 ? MXb : LXb; + for (d = e.a.ec().Kc(); d.Ob(); ) { + c = RD(d.Pb(), 88); + for (g = RD(Qc(a.f.c, c), 21).Kc(); g.Ob(); ) { + f = RD(g.Pb(), 42); + Rmb(a.b.b, RD(f.b, 86)); + Rmb(a.b.a, RD(f.b, 86).d); + } + } + } + function rqc(a, b) { + var c, d, e, f; + f = b.b.j; + a.a = $C(kE, Pwe, 28, f.c.length, 15, 1); + e = 0; + for (d = 0; d < f.c.length; d++) { + c = (tFb(d, f.c.length), RD(f.c[d], 12)); + c.e.c.length == 0 && c.g.c.length == 0 ? e += 1 : e += 3; + a.a[d] = e; + } + } + function tuc() { + tuc = geb; + ouc = new vuc("ALWAYS_UP", 0); + nuc = new vuc("ALWAYS_DOWN", 1); + quc = new vuc("DIRECTION_UP", 2); + puc = new vuc("DIRECTION_DOWN", 3); + suc = new vuc("SMART_UP", 4); + ruc = new vuc("SMART_DOWN", 5); + } + function vid(a, b) { + if (a < 0 || b < 0) { + throw Adb(new agb("k and n must be positive")); + } else if (b > a) { + throw Adb(new agb("k must be smaller than n")); + } else + return b == 0 || b == a ? 1 : a == 0 ? 0 : Bid(a) / (Bid(b) * Bid(a - b)); + } + function msd(a, b) { + var c, d, e, f; + c = new zId(a); + while (c.g == null && !c.c ? sId(c) : c.g == null || c.i != 0 && RD(c.g[c.i - 1], 51).Ob()) { + f = RD(tId(c), 58); + if (ZD(f, 167)) { + d = RD(f, 167); + for (e = 0; e < b.length; e++) { + b[e].Kg(d); + } + } + } + } + function Fyd(a) { + var b; + if ((a.Db & 64) != 0) + return kyd(a); + b = new Shb(kyd(a)); + b.a += " (height: "; + Khb(b, a.f); + b.a += ", width: "; + Khb(b, a.g); + b.a += ", x: "; + Khb(b, a.i); + b.a += ", y: "; + Khb(b, a.j); + b.a += ")"; + return b.a; + } + function Gn(a) { + var b, c, d, e, f, g, h; + b = new gub(); + for (d = a, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + g = Qb(c.ld()); + h = dub(b, g, Qb(c.md())); + if (h != null) { + throw Adb(new agb("duplicate key: " + g)); + } + } + this.b = (yob(), new uqb(b)); + } + function bob(a) { + var b, c, d, e, f; + if (a == null) { + return vve; + } + f = new Jyb(pve, "[", "]"); + for (c = a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + Gyb(f, String.fromCharCode(b)); + } + return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); + } + function OUb() { + OUb = geb; + IUb = (TUb(), SUb); + HUb = new lGd(Rze, IUb); + sgb(1); + GUb = new lGd(Sze, sgb(300)); + sgb(0); + LUb = new lGd(Tze, sgb(0)); + MUb = new lGd(Uze, Vze); + JUb = new lGd(Wze, 5); + NUb = SUb; + KUb = RUb; + } + function K6d(a, b) { + var c; + if (b != null && !a.c.Hk().fk(b)) { + c = ZD(b, 58) ? RD(b, 58).Dh().zb : nfb(rb(b)); + throw Adb(new Ifb(KHe + a.c.xe() + "'s type '" + a.c.Hk().xe() + "' does not permit a value of type '" + c + "'")); + } + } + function k0b(a, b, c) { + var d, e; + e = new Jkb(a.b, 0); + while (e.b < e.d.gc()) { + d = (sFb(e.b < e.d.gc()), RD(e.d.Xb(e.c = e.b++), 72)); + if (dE(mQb(d, (Ywc(), Dwc))) !== dE(b)) { + continue; + } + e2b(d.n, Y2b(a.c.i), c); + Ckb(e); + Rmb(b.b, d); + } + } + function Arc(a) { + var b, c; + c = $wnd.Math.sqrt((a.k == null && (a.k = tsc(a, new Esc())), Kfb(a.k) / (a.b * (a.g == null && (a.g = qsc(a, new Csc())), Kfb(a.g))))); + b = Ydb(Hdb($wnd.Math.round(c))); + b = $wnd.Math.min(b, a.f); + return b; + } + function sse() { + var a, b, c; + b = 0; + for (a = 0; a < "X".length; a++) { + c = rse((BFb(a, "X".length), "X".charCodeAt(a))); + if (c == 0) + throw Adb(new Lqe((BFb(a, "X".length + 1), "Unknown Option: " + "X".substr(a)))); + b |= c; + } + return b; + } + function R3b() { + J3b(); + v2b.call(this); + this.j = (qpd(), opd); + this.a = new pjd(); + new T2b(); + this.f = (dk(2, iwe), new cnb(2)); + this.e = (dk(4, iwe), new cnb(4)); + this.g = (dk(4, iwe), new cnb(4)); + this.b = new h4b(this.e, this.g); + } + function A6b(a, b) { + var c, d; + if (Heb(TD(mQb(b, (Ywc(), Nwc))))) { + return false; + } + d = b.c.i; + if (a == (cxc(), Zwc)) { + if (d.k == (r3b(), n3b)) { + return false; + } + } + c = RD(mQb(d, (yCc(), UAc)), 171); + if (c == $wc) { + return false; + } + return true; + } + function B6b(a, b) { + var c, d; + if (Heb(TD(mQb(b, (Ywc(), Nwc))))) { + return false; + } + d = b.d.i; + if (a == (cxc(), _wc)) { + if (d.k == (r3b(), n3b)) { + return false; + } + } + c = RD(mQb(d, (yCc(), UAc)), 171); + if (c == axc) { + return false; + } + return true; + } + function a7b(a, b) { + var c, d, e, f, g, h, i; + g = a.d; + i = a.o; + h = new Uid(-g.b, -g.d, g.b + i.a + g.c, g.d + i.b + g.a); + for (d = b, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + !!c && Sid(h, c.i); + } + g.b = -h.c; + g.d = -h.d; + g.c = h.b - g.b - i.a; + g.a = h.a - g.d - i.b; + } + function _gc(a, b) { + if (b.a) { + switch (RD(mQb(b.b, (Ywc(), Fwc)), 101).g) { + case 0: + case 1: + Roc(b); + case 2: + FDb(new SDb(null, new Swb(b.d, 16)), new mhc()); + aoc(a.a, b); + } + } else { + FDb(new SDb(null, new Swb(b.d, 16)), new mhc()); + } + } + function Xbd() { + Xbd = geb; + Sbd = new Ybd("CENTER_DISTANCE", 0); + Tbd = new Ybd("CIRCLE_UNDERLAP", 1); + Wbd = new Ybd("RECTANGLE_UNDERLAP", 2); + Ubd = new Ybd("INVERTED_OVERLAP", 3); + Vbd = new Ybd("MINIMUM_ROOT_DISTANCE", 4); + } + function Iqe(a) { + Gqe(); + var b, c, d, e, f; + if (a == null) + return null; + d = a.length; + e = d * 2; + b = $C(hE, zwe, 28, e, 15, 1); + for (c = 0; c < d; c++) { + f = a[c]; + f < 0 && (f += 256); + b[c * 2] = Fqe[f >> 4]; + b[c * 2 + 1] = Fqe[f & 15]; + } + return Ihb(b, 0, b.length); + } + function sn(a) { + fn(); + var b, c, d; + d = a.c.length; + switch (d) { + case 0: + return en; + case 1: + b = RD(Ir(new Anb(a)), 44); + return xn(b.ld(), b.md()); + default: + c = RD(anb(a, $C(UK, Zve, 44, a.c.length, 0, 1)), 173); + return new Mx(c); + } + } + function KWb(a) { + var b, c, d, e, f, g; + b = new wmb(); + c = new wmb(); + hmb(b, a); + hmb(c, a); + while (c.b != c.c) { + e = RD(smb(c), 36); + for (g = new Anb(e.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 10); + if (f.e) { + d = f.e; + hmb(b, d); + hmb(c, d); + } + } + } + return b; + } + function e3b(a, b) { + switch (b.g) { + case 1: + return dr(a.j, (J3b(), F3b)); + case 2: + return dr(a.j, (J3b(), D3b)); + case 3: + return dr(a.j, (J3b(), H3b)); + case 4: + return dr(a.j, (J3b(), I3b)); + default: + return yob(), yob(), vob; + } + } + function Zlc(a, b) { + var c, d, e; + c = $lc(b, a.e); + d = RD(Wjb(a.g.f, c), 17).a; + e = a.a.c.length - 1; + if (a.a.c.length != 0 && RD(Vmb(a.a, e), 294).c == d) { + ++RD(Vmb(a.a, e), 294).a; + ++RD(Vmb(a.a, e), 294).b; + } else { + Rmb(a.a, new hmc(d)); + } + } + function tLc(a, b, c) { + var d, e; + d = sLc(a, b, c); + if (d != 0) { + return d; + } + if (nQb(b, (Ywc(), zwc)) && nQb(c, zwc)) { + e = hgb(RD(mQb(b, zwc), 17).a, RD(mQb(c, zwc), 17).a); + e < 0 ? uLc(a, b, c) : e > 0 && uLc(a, c, b); + return e; + } + return rLc(a, b, c); + } + function $4c() { + $4c = geb; + R4c = (umd(), Qld); + Y4c = fmd; + K4c = kld; + L4c = nld; + M4c = pld; + J4c = ild; + N4c = sld; + Q4c = Lld; + H4c = (D4c(), o4c); + I4c = p4c; + T4c = v4c; + W4c = y4c; + U4c = w4c; + V4c = x4c; + O4c = r4c; + P4c = t4c; + S4c = u4c; + X4c = z4c; + Z4c = B4c; + G4c = n4c; + } + function P9c(a, b) { + var c, d, e, f, g; + if (a.e <= b) { + return a.g; + } + if (R9c(a, a.g, b)) { + return a.g; + } + f = a.r; + d = a.g; + g = a.r; + e = (f - d) / 2 + d; + while (d + 1 < f) { + c = S9c(a, e, false); + if (c.b <= e && c.a <= b) { + g = e; + f = e; + } else { + d = e; + } + e = (f - d) / 2 + d; + } + return g; + } + function Eed(a, b, c) { + var d; + d = zed(a, b, true); + Fqd(c, "Recursive Graph Layout", d); + msd(b, cD(WC(j4, 1), rve, 536, 0, [new Bfd()])); + Hxd(b, (umd(), Tld)) || msd(b, cD(WC(j4, 1), rve, 536, 0, [new dgd()])); + Fed(a, b, null, c); + Hqd(c); + } + function Hqd(a) { + var b; + if (a.p == null) { + throw Adb(new dgb("The task has not begun yet.")); + } + if (!a.b) { + if (a.k) { + b = (gib(), Ndb(Hdb(Date.now()), Awe)); + a.q = Xdb(Vdb(b, a.o)) * 1e-9; + } + a.c < a.r && Iqd(a, a.r - a.c); + a.b = true; + } + } + function ssd(a) { + var b, c, d; + d = new Ejd(); + Mub(d, new rjd(a.j, a.k)); + for (c = new dMd((!a.a && (a.a = new XZd(D4, a, 5)), a.a)); c.e != c.i.gc(); ) { + b = RD(bMd(c), 377); + Mub(d, new rjd(b.a, b.b)); + } + Mub(d, new rjd(a.b, a.c)); + return d; + } + function QDd(a, b, c, d, e) { + var f, g, h, i, j, k; + if (e) { + i = e.a.length; + f = new vue(i); + for (k = (f.b - f.a) * f.c < 0 ? (uue(), tue) : new Rue(f); k.Ob(); ) { + j = RD(k.Pb(), 17); + h = xDd(e, j.a); + g = new PEd(a, b, c, d); + RDd(g.a, g.b, g.c, g.d, h); + } + } + } + function Rx(b, c) { + var d; + if (dE(b) === dE(c)) { + return true; + } + if (ZD(c, 21)) { + d = RD(c, 21); + try { + return b.gc() == d.gc() && b.Ic(d); + } catch (a) { + a = zdb(a); + if (ZD(a, 169) || ZD(a, 212)) { + return false; + } else + throw Adb(a); + } + } + return false; + } + function Kzb(a, b, c, d, e, f) { + this.c = a; + switch (b.g) { + case 2: + if (a.a.Ne(e, c) < 0) { + throw Adb(new agb(Sxe + e + Txe + c)); + } + break; + case 1: + a.a.Ne(e, e); + break; + case 3: + a.a.Ne(c, c); + } + this.f = b; + this.b = c; + this.a = d; + this.e = e; + this.d = f; + } + function LKb(a, b) { + var c; + Rmb(a.d, b); + c = b.Mf(); + if (a.c) { + a.e.a = $wnd.Math.max(a.e.a, c.a); + a.e.b += c.b; + a.d.c.length > 1 && (a.e.b += a.a); + } else { + a.e.a += c.a; + a.e.b = $wnd.Math.max(a.e.b, c.b); + a.d.c.length > 1 && (a.e.a += a.a); + } + } + function Ipc(a) { + var b, c, d, e; + e = a.i; + b = e.b; + d = e.j; + c = e.g; + switch (e.a.g) { + case 0: + c.a = (a.g.b.o.a - d.a) / 2; + break; + case 1: + c.a = b.d.n.a + b.d.a.a; + break; + case 2: + c.a = b.d.n.a + b.d.a.a - d.a; + break; + case 3: + c.b = b.d.n.b + b.d.a.b; + } + } + function oOc(a, b, c) { + var d, e, f; + for (e = new is(Mr(W2b(c).a.Kc(), new ir())); gs(e); ) { + d = RD(hs(e), 18); + if (!(!W0b(d) && !(!W0b(d) && d.c.i.c == d.d.i.c))) { + continue; + } + f = gOc(a, d, c, new VOc()); + f.c.length > 1 && (ZEb(b.c, f), true); + } + } + function _id(a, b, c, d, e) { + if (d < b || e < c) { + throw Adb(new agb("The highx must be bigger then lowx and the highy must be bigger then lowy")); + } + a.a < b ? a.a = b : a.a > d && (a.a = d); + a.b < c ? a.b = c : a.b > e && (a.b = e); + return a; + } + function LFd(a) { + if (ZD(a, 143)) { + return EFd(RD(a, 143)); + } else if (ZD(a, 233)) { + return FFd(RD(a, 233)); + } else if (ZD(a, 23)) { + return GFd(RD(a, 23)); + } else { + throw Adb(new agb(wIe + Fe(new mob(cD(WC(jJ, 1), rve, 1, 5, [a]))))); + } + } + function ujb(a, b, c, d, e) { + var f, g, h; + f = true; + for (g = 0; g < d; g++) { + f = f & c[g] == 0; + } + if (e == 0) { + hib(c, d, a, 0, b); + g = b; + } else { + h = 32 - e; + f = f & c[g] << h == 0; + for (g = 0; g < b - 1; g++) { + a[g] = c[g + d] >>> e | c[g + d + 1] << h; + } + a[g] = c[g + d] >>> e; + ++g; + } + return f; + } + function ZQc(a, b, c, d) { + var e, f, g; + if (b.k == (r3b(), o3b)) { + for (f = new is(Mr(Z2b(b).a.Kc(), new ir())); gs(f); ) { + e = RD(hs(f), 18); + g = e.c.i.k; + if (g == o3b && a.c.a[e.c.i.c.p] == d && a.c.a[b.c.p] == c) { + return true; + } + } + } + return false; + } + function CD(a, b) { + var c, d, e, f; + b &= 63; + c = a.h & exe; + if (b < 22) { + f = c >>> b; + e = a.m >> b | c << 22 - b; + d = a.l >> b | a.m << 22 - b; + } else if (b < 44) { + f = 0; + e = c >>> b - 22; + d = a.m >> b - 22 | a.h << 44 - b; + } else { + f = 0; + e = 0; + d = c >>> b - 44; + } + return hD(d & dxe, e & dxe, f & exe); + } + function mmc(a, b, c, d) { + var e; + this.b = d; + this.e = a == (RKc(), PKc); + e = b[c]; + this.d = YC(xdb, [Nve, Hye], [183, 28], 16, [e.length, e.length], 2); + this.a = YC(kE, [Nve, Pwe], [53, 28], 15, [e.length, e.length], 2); + this.c = new Ylc(b, c); + } + function Rmc(a) { + var b, c, d; + a.k = new Si((qpd(), cD(WC(E3, 1), NAe, 64, 0, [opd, Yod, Xod, npd, ppd])).length, a.j.c.length); + for (d = new Anb(a.j); d.a < d.c.c.length; ) { + c = RD(ynb(d), 113); + b = c.d.j; + Rc(a.k, b, c); + } + a.e = Dnc(Ec(a.k)); + } + function sVc(a, b) { + var c, d, e; + Ysb(a.d, b); + c = new zVc(); + Zjb(a.c, b, c); + c.f = tVc(b.c); + c.a = tVc(b.d); + c.d = (HUc(), e = b.c.i.k, e == (r3b(), p3b) || e == l3b); + c.e = (d = b.d.i.k, d == p3b || d == l3b); + c.b = b.c.j == (qpd(), ppd); + c.c = b.d.j == Xod; + } + function sJb(a) { + var b, c, d, e, f; + f = lve; + e = lve; + for (d = new Anb(CIb(a)); d.a < d.c.c.length; ) { + c = RD(ynb(d), 218); + b = c.e.e - c.d.e; + c.e == a && b < e ? e = b : b < f && (f = b); + } + e == lve && (e = -1); + f == lve && (f = -1); + return new Ptd(sgb(e), sgb(f)); + } + function qTb(a, b) { + var c, d, e; + e = Hze; + d = (IRb(), FRb); + e = $wnd.Math.abs(a.b); + c = $wnd.Math.abs(b.f - a.b); + if (c < e) { + e = c; + d = GRb; + } + c = $wnd.Math.abs(a.a); + if (c < e) { + e = c; + d = HRb; + } + c = $wnd.Math.abs(b.g - a.a); + if (c < e) { + e = c; + d = ERb; + } + return d; + } + function adc(a, b) { + var c, d, e, f; + c = b.a.o.a; + f = new Rkb(Y2b(b.a).b, b.c, b.f + 1); + for (e = new Dkb(f); e.b < e.d.gc(); ) { + d = (sFb(e.b < e.d.gc()), RD(e.d.Xb(e.c = e.b++), 30)); + if (d.c.a >= c) { + _cc(a, b, d.p); + return true; + } + } + return false; + } + function EA(a, b, c, d) { + var e, f, g, h, i, j; + g = c.length; + f = 0; + e = -1; + j = Bhb((BFb(b, a.length + 1), a.substr(b)), (wvb(), uvb)); + for (h = 0; h < g; ++h) { + i = c[h].length; + if (i > f && whb(j, Bhb(c[h], uvb))) { + e = h; + f = i; + } + } + e >= 0 && (d[0] = b + f); + return e; + } + function gCd(a) { + var b; + if ((a.Db & 64) != 0) + return Fyd(a); + b = new dib(FHe); + !a.a || Zhb(Zhb((b.a += ' "', b), a.a), '"'); + Zhb(Uhb(Zhb(Uhb(Zhb(Uhb(Zhb(Uhb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")"); + return b.a; + } + function xge(a, b, c) { + var d, e, f, g, h; + h = pke(a.e.Dh(), b); + e = RD(a.g, 124); + d = 0; + for (g = 0; g < a.i; ++g) { + f = e[g]; + if (h.am(f.Lk())) { + if (d == c) { + vLd(a, g); + return nke(), RD(b, 69).xk() ? f : f.md(); + } + ++d; + } + } + throw Adb(new veb(HJe + c + NIe + d)); + } + function Rqe(a) { + var b, c, d; + b = a.c; + if (b == 2 || b == 7 || b == 1) { + return Vse(), Vse(), Ese; + } else { + d = Pqe(a); + c = null; + while ((b = a.c) != 2 && b != 7 && b != 1) { + if (!c) { + c = (Vse(), Vse(), new iue(1)); + hue(c, d); + d = c; + } + hue(c, Pqe(a)); + } + return d; + } + } + function Kb(a, b, c) { + if (a < 0 || a > c) { + return Jb(a, c, "start index"); + } + if (b < 0 || b > c) { + return Jb(b, c, "end index"); + } + return hc("end index (%s) must not be less than start index (%s)", cD(WC(jJ, 1), rve, 1, 5, [sgb(b), sgb(a)])); + } + function dA(b, c) { + var d, e, f, g; + for (e = 0, f = b.length; e < f; e++) { + g = b[e]; + try { + g[1] ? g[0].Um() && (c = cA(c, g)) : g[0].Um(); + } catch (a) { + a = zdb(a); + if (ZD(a, 82)) { + d = a; + Qz(); + Wz(ZD(d, 486) ? RD(d, 486).ke() : d); + } else + throw Adb(a); + } + } + return c; + } + function _cc(a, b, c) { + var d, e, f; + c != b.c + b.b.gc() && odc(b.a, wdc(b, c - b.c)); + f = b.a.c.p; + a.a[f] = $wnd.Math.max(a.a[f], b.a.o.a); + for (e = RD(mQb(b.a, (Ywc(), Mwc)), 15).Kc(); e.Ob(); ) { + d = RD(e.Pb(), 72); + pQb(d, Ycc, (Geb(), true)); + } + } + function Aic(a, b) { + var c, d, e; + e = zic(b); + pQb(b, (Ywc(), xwc), e); + if (e) { + d = lve; + !!qtb(a.f, e) && (d = RD(Wd(qtb(a.f, e)), 17).a); + c = RD(Vmb(b.g, 0), 18); + Heb(TD(mQb(c, Nwc))) || Zjb(a, e, sgb($wnd.Math.min(RD(mQb(c, zwc), 17).a, d))); + } + } + function aGc(a, b, c) { + var d, e, f, g, h; + b.p = -1; + for (h = c3b(b, (BEc(), zEc)).Kc(); h.Ob(); ) { + g = RD(h.Pb(), 12); + for (e = new Anb(g.g); e.a < e.c.c.length; ) { + d = RD(ynb(e), 18); + f = d.d.i; + b != f && (f.p < 0 ? c.Fc(d) : f.p > 0 && aGc(a, f, c)); + } + } + b.p = 0; + } + function Ahd(a) { + var b; + this.c = new Yub(); + this.f = a.e; + this.e = a.d; + this.i = a.g; + this.d = a.c; + this.b = a.b; + this.k = a.j; + this.a = a.a; + !a.i ? this.j = (b = RD(mfb(d3), 9), new Fsb(b, RD(WEb(b, b.length), 9), 0)) : this.j = a.i; + this.g = a.f; + } + function Wb(a) { + var b, c, d, e; + b = Thb(Zhb(new dib("Predicates."), "and"), 40); + c = true; + for (e = new Dkb(a); e.b < e.d.gc(); ) { + d = (sFb(e.b < e.d.gc()), e.d.Xb(e.c = e.b++)); + c || (b.a += ",", b); + b.a += "" + d; + c = false; + } + return (b.a += ")", b).a; + } + function vgc(a, b, c) { + var d, e, f; + if (c <= b + 2) { + return; + } + e = (c - b) / 2 | 0; + for (d = 0; d < e; ++d) { + f = (tFb(b + d, a.c.length), RD(a.c[b + d], 12)); + $mb(a, b + d, (tFb(c - d - 1, a.c.length), RD(a.c[c - d - 1], 12))); + tFb(c - d - 1, a.c.length); + a.c[c - d - 1] = f; + } + } + function Nmc(a, b, c) { + var d, e, f, g, h, i, j, k; + f = a.d.p; + h = f.e; + i = f.r; + a.g = new DMc(i); + g = a.d.o.c.p; + d = g > 0 ? h[g - 1] : $C(jR, WAe, 10, 0, 0, 1); + e = h[g]; + j = g < h.length - 1 ? h[g + 1] : $C(jR, WAe, 10, 0, 0, 1); + k = b == c - 1; + k ? pMc(a.g, e, j) : pMc(a.g, d, e); + } + function Vmc(a) { + var b; + this.j = new bnb(); + this.f = new _sb(); + this.b = (b = RD(mfb(E3), 9), new Fsb(b, RD(WEb(b, b.length), 9), 0)); + this.d = $C(kE, Pwe, 28, (qpd(), cD(WC(E3, 1), NAe, 64, 0, [opd, Yod, Xod, npd, ppd])).length, 15, 1); + this.g = a; + } + function D3c(a, b) { + var c, d, e; + if (b.c.length != 0) { + c = E3c(a, b); + e = false; + while (!c) { + n3c(a, b, true); + e = true; + c = E3c(a, b); + } + e && n3c(a, b, false); + d = N2c(b); + !!a.b && a.b.Gg(d); + a.a = C3c(a, (tFb(0, b.c.length), RD(b.c[0], 27))); + D3c(a, d); + } + } + function $vd(a, b) { + var c, d, e; + d = vYd(a.Dh(), b); + c = b - a.ji(); + if (c < 0) { + if (!d) { + throw Adb(new agb(OHe + b + PHe)); + } else if (d.rk()) { + e = a.Ih(d); + e >= 0 ? a.ki(e) : Tvd(a, d); + } else { + throw Adb(new agb(KHe + d.xe() + LHe)); + } + } else { + Cvd(a, c, d); + } + } + function ADd(a) { + var b, c; + c = null; + b = false; + if (ZD(a, 211)) { + b = true; + c = RD(a, 211).a; + } + if (!b) { + if (ZD(a, 263)) { + b = true; + c = "" + RD(a, 263).a; + } + } + if (!b) { + if (ZD(a, 493)) { + b = true; + c = "" + RD(a, 493).a; + } + } + if (!b) { + throw Adb(new Aeb(tIe)); + } + return c; + } + function gge(a, b, c) { + var d, e, f, g, h, i; + i = pke(a.e.Dh(), b); + d = 0; + h = a.i; + e = RD(a.g, 124); + for (g = 0; g < a.i; ++g) { + f = e[g]; + if (i.am(f.Lk())) { + if (c == d) { + return g; + } + ++d; + h = g + 1; + } + } + if (c == d) { + return h; + } else { + throw Adb(new veb(HJe + c + NIe + d)); + } + } + function ucc(a, b) { + var c, d, e, f; + if (a.f.c.length == 0) { + return null; + } else { + f = new Tid(); + for (d = new Anb(a.f); d.a < d.c.c.length; ) { + c = RD(ynb(d), 72); + e = c.o; + f.b = $wnd.Math.max(f.b, e.a); + f.a += e.b; + } + f.a += (a.f.c.length - 1) * b; + return f; + } + } + function rOc(a) { + var b, c, d, e; + c = new Yub(); + ye(c, a.o); + d = new Fyb(); + while (c.b != 0) { + b = RD(c.b == 0 ? null : (sFb(c.b != 0), Wub(c, c.a.a)), 515); + e = iOc(a, b, true); + e && Rmb(d.a, b); + } + while (d.a.c.length != 0) { + b = RD(Dyb(d), 515); + iOc(a, b, false); + } + } + function kid() { + kid = geb; + jid = new lid(Sye, 0); + cid = new lid("BOOLEAN", 1); + gid = new lid("INT", 2); + iid = new lid("STRING", 3); + did = new lid("DOUBLE", 4); + eid = new lid("ENUM", 5); + fid = new lid("ENUMSET", 6); + hid = new lid("OBJECT", 7); + } + function Sid(a, b) { + var c, d, e, f, g; + d = $wnd.Math.min(a.c, b.c); + f = $wnd.Math.min(a.d, b.d); + e = $wnd.Math.max(a.c + a.b, b.c + b.b); + g = $wnd.Math.max(a.d + a.a, b.d + b.a); + if (e < d) { + c = d; + d = e; + e = c; + } + if (g < f) { + c = f; + f = g; + g = c; + } + Rid(a, d, f, e - d, g - f); + } + function m3d(a, b) { + var c, d; + if (a.f) { + while (b.Ob()) { + c = RD(b.Pb(), 76); + d = c.Lk(); + if (ZD(d, 102) && (RD(d, 19).Bb & QHe) != 0 && (!a.e || d.pk() != C4 || d.Lj() != 0) && c.md() != null) { + b.Ub(); + return true; + } + } + return false; + } else { + return b.Ob(); + } + } + function o3d(a, b) { + var c, d; + if (a.f) { + while (b.Sb()) { + c = RD(b.Ub(), 76); + d = c.Lk(); + if (ZD(d, 102) && (RD(d, 19).Bb & QHe) != 0 && (!a.e || d.pk() != C4 || d.Lj() != 0) && c.md() != null) { + b.Pb(); + return true; + } + } + return false; + } else { + return b.Sb(); + } + } + function lke() { + lke = geb; + ike = cD(WC(qJ, 1), Nve, 2, 6, [TKe, UKe, VKe, WKe, XKe, YKe, FIe]); + hke = cD(WC(qJ, 1), Nve, 2, 6, [TKe, "empty", UKe, pKe, "elementOnly"]); + kke = cD(WC(qJ, 1), Nve, 2, 6, [TKe, "preserve", "replace", ZKe]); + jke = new Yee(); + } + function e2b(a, b, c) { + var d, e, f; + if (b == c) { + return; + } + d = b; + do { + $id(a, d.c); + e = d.e; + if (e) { + f = d.d; + Zid(a, f.b, f.d); + $id(a, e.n); + d = Y2b(e); + } + } while (e); + d = c; + do { + ojd(a, d.c); + e = d.e; + if (e) { + f = d.d; + njd(a, f.b, f.d); + ojd(a, e.n); + d = Y2b(e); + } + } while (e); + } + function Wlc(a, b, c, d) { + var e, f, g, h, i; + if (d.f.c + d.i.c == 0) { + for (g = a.a[a.c], h = 0, i = g.length; h < i; ++h) { + f = g[h]; + Zjb(d, f, new dmc(a, f, c)); + } + } + e = RD(Wd(qtb(d.f, b)), 677); + e.b = 0; + e.c = e.f; + e.c == 0 || gmc(RD(Vmb(e.a, e.b), 294)); + return e; + } + function btc() { + btc = geb; + Zsc = new ctc("MEDIAN_LAYER", 0); + _sc = new ctc("TAIL_LAYER", 1); + Ysc = new ctc("HEAD_LAYER", 2); + $sc = new ctc("SPACE_EFFICIENT_LAYER", 3); + atc = new ctc("WIDEST_LAYER", 4); + Xsc = new ctc("CENTER_LAYER", 5); + } + function WGc(a) { + var b, c, d, e; + a.e = 0; + for (e = Sub(a.f, 0); e.b != e.d.c; ) { + d = RD(evb(e), 10); + if (d.p >= a.d.b.c.length) { + b = new R4b(a.d); + b.p = d.p - 1; + Rmb(a.d.b, b); + c = new R4b(a.d); + c.p = d.p; + Rmb(a.d.b, c); + } + g3b(d, RD(Vmb(a.d.b, d.p), 30)); + } + } + function DVc(a, b, c) { + var d, e, f; + if (!a.b[b.g]) { + a.b[b.g] = true; + d = c; + !d && (d = new YWc()); + Mub(d.b, b); + for (f = a.a[b.g].Kc(); f.Ob(); ) { + e = RD(f.Pb(), 65); + e.b != b && DVc(a, e.b, d); + e.c != b && DVc(a, e.c, d); + Mub(d.a, e); + } + return d; + } + return null; + } + function iMb(a) { + switch (a.g) { + case 0: + case 1: + case 2: + return qpd(), Yod; + case 3: + case 4: + case 5: + return qpd(), npd; + case 6: + case 7: + case 8: + return qpd(), ppd; + case 9: + case 10: + case 11: + return qpd(), Xod; + default: + return qpd(), opd; + } + } + function SOc(a, b) { + var c; + if (a.c.length == 0) { + return false; + } + c = zDc((tFb(0, a.c.length), RD(a.c[0], 18)).c.i); + dOc(); + if (c == (wDc(), tDc) || c == sDc) { + return true; + } + return yDb(GDb(new SDb(null, new Swb(a, 16)), new $Oc()), new aPc(b)); + } + function KDd(a, b) { + if (ZD(b, 207)) { + return EDd(a, RD(b, 27)); + } else if (ZD(b, 193)) { + return FDd(a, RD(b, 123)); + } else if (ZD(b, 452)) { + return DDd(a, RD(b, 166)); + } else { + throw Adb(new agb(wIe + Fe(new mob(cD(WC(jJ, 1), rve, 1, 5, [b]))))); + } + } + function Ou(a, b, c) { + var d, e; + this.f = a; + d = RD(Wjb(a.b, b), 260); + e = !d ? 0 : d.a; + Sb(c, e); + if (c >= (e / 2 | 0)) { + this.e = !d ? null : d.c; + this.d = e; + while (c++ < e) { + Mu(this); + } + } else { + this.c = !d ? null : d.b; + while (c-- > 0) { + Lu(this); + } + } + this.b = b; + this.a = null; + } + function iHb(a, b) { + var c, d; + b.a ? jHb(a, b) : (c = RD(vAb(a.b, b.b), 60), !!c && c == a.a[b.b.f] && !!c.a && c.a != b.b.a && c.c.Fc(b.b), d = RD(uAb(a.b, b.b), 60), !!d && a.a[d.f] == b.b && !!d.a && d.a != b.b.a && b.b.c.Fc(d), wAb(a.b, b.b), void 0); + } + function wMb(a, b) { + var c, d; + c = RD(Vrb(a.b, b), 127); + if (RD(RD(Qc(a.r, b), 21), 87).dc()) { + c.n.b = 0; + c.n.c = 0; + return; + } + c.n.b = a.C.b; + c.n.c = a.C.c; + a.A.Hc((Qpd(), Ppd)) && BMb(a, b); + d = AMb(a, b); + BLb(a, b) == (pod(), mod) && (d += 2 * a.w); + c.a.a = d; + } + function FNb(a, b) { + var c, d; + c = RD(Vrb(a.b, b), 127); + if (RD(RD(Qc(a.r, b), 21), 87).dc()) { + c.n.d = 0; + c.n.a = 0; + return; + } + c.n.d = a.C.d; + c.n.a = a.C.a; + a.A.Hc((Qpd(), Ppd)) && JNb(a, b); + d = INb(a, b); + BLb(a, b) == (pod(), mod) && (d += 2 * a.w); + c.a.b = d; + } + function VQb(a, b) { + var c, d, e, f; + f = new bnb(); + for (d = new Anb(b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 68); + Rmb(f, new fRb(c, true)); + Rmb(f, new fRb(c, false)); + } + e = new $Qb(a); + e.a.a.$b(); + bGb(f, a.b, new mob(cD(WC(bN, 1), rve, 693, 0, [e]))); + } + function iTb(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q; + i = a.a; + n = a.b; + j = b.a; + o2 = b.b; + k = c.a; + p = c.b; + l = d.a; + q = d.b; + f = i * o2 - n * j; + g = k * q - p * l; + e = (i - j) * (p - q) - (n - o2) * (k - l); + h = (f * (k - l) - g * (i - j)) / e; + m = (f * (p - q) - g * (n - o2)) / e; + return new rjd(h, m); + } + function Z6b(a, b) { + var c, d, e; + b.Ug("End label pre-processing", 1); + c = Kfb(UD(mQb(a, (yCc(), VBc)))); + d = Kfb(UD(mQb(a, ZBc))); + e = Emd(RD(mQb(a, rAc), 88)); + FDb(EDb(new SDb(null, new Swb(a.b, 16)), new f7b()), new h7b(c, d, e)); + b.Vg(); + } + function LFc(a, b) { + var c, d, e; + if (a.d[b.p]) { + return; + } + a.d[b.p] = true; + a.a[b.p] = true; + for (d = new is(Mr(a3b(b).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + if (W0b(c)) { + continue; + } + e = c.d.i; + a.a[e.p] ? Rmb(a.b, c) : LFc(a, e); + } + a.a[b.p] = false; + } + function hGc(a, b, c) { + var d; + d = 0; + switch (RD(mQb(b, (yCc(), UAc)), 171).g) { + case 2: + d = 2 * -c + a.a; + ++a.a; + break; + case 1: + d = -c; + break; + case 3: + d = c; + break; + case 4: + d = 2 * c + a.b; + ++a.b; + } + nQb(b, (Ywc(), zwc)) && (d += RD(mQb(b, zwc), 17).a); + return d; + } + function JSc(a, b, c) { + var d, e, f; + c.zc(b, a); + Rmb(a.n, b); + f = a.p.zg(b); + b.j == a.p.Ag() ? YSc(a.e, f) : YSc(a.j, f); + LSc(a); + for (e = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [new T3b(b), new _3b(b)]))); gs(e); ) { + d = RD(hs(e), 12); + c._b(d) || JSc(a, d, c); + } + } + function rZc(a, b, c) { + var d, e, f; + c.Ug("Processor set neighbors", 1); + a.a = b.b.b == 0 ? 1 : b.b.b; + e = null; + d = Sub(b.b, 0); + while (!e && d.b != d.d.c) { + f = RD(evb(d), 40); + Heb(TD(mQb(f, (q$c(), n$c)))) && (e = f); + } + !!e && sZc(a, new dXc(e), c); + c.Vg(); + } + function vsd(a) { + var b, c, d; + c = RD(Gxd(a, (umd(), kld)), 21); + if (c.Hc((Qpd(), Mpd))) { + d = RD(Gxd(a, pld), 21); + b = new sjd(RD(Gxd(a, nld), 8)); + if (d.Hc((dqd(), Ypd))) { + b.a <= 0 && (b.a = 20); + b.b <= 0 && (b.b = 20); + } + return b; + } else { + return new pjd(); + } + } + function nYd(a) { + var b, c, d; + if (!a.b) { + d = new y_d(); + for (c = new yMd(qYd(a)); c.e != c.i.gc(); ) { + b = RD(xMd(c), 19); + (b.Bb & QHe) != 0 && WGd(d, b); + } + VHd(d); + a.b = new N$d((RD(QHd(xYd((lTd(), kTd).o), 8), 19), d.i), d.g); + yYd(a).b &= -9; + } + return a.b; + } + function Dhb(a) { + var b, c, d; + c = a.length; + d = 0; + while (d < c && (BFb(d, a.length), a.charCodeAt(d) <= 32)) { + ++d; + } + b = c; + while (b > d && (BFb(b - 1, a.length), a.charCodeAt(b - 1) <= 32)) { + --b; + } + return d > 0 || b < c ? (AFb(d, b, a.length), a.substr(d, b - d)) : a; + } + function vqc(a, b) { + var c, d, e, f, g, h, i, j; + i = RD(Ee(Ec(b.k), $C(E3, NAe, 64, 2, 0, 1)), 126); + j = b.g; + c = xqc(b, i[0]); + e = wqc(b, i[1]); + d = oqc(a, j, c, e); + f = xqc(b, i[1]); + h = wqc(b, i[0]); + g = oqc(a, j, f, h); + if (d <= g) { + b.a = c; + b.c = e; + } else { + b.a = f; + b.c = h; + } + } + function Eob(a) { + var h; + yob(); + var b, c, d, e, f, g; + if (ZD(a, 59)) { + for (e = 0, d = a.gc() - 1; e < d; ++e, --d) { + h = a.Xb(e); + a.hd(e, a.Xb(d)); + a.hd(d, h); + } + } else { + b = a.ed(); + f = a.fd(a.gc()); + while (b.Tb() < f.Vb()) { + c = b.Pb(); + g = f.Ub(); + b.Wb(g); + f.Wb(c); + } + } + } + function lKc(a, b) { + var c, d, e, f, g, h; + h = 0; + f = new wmb(); + hmb(f, b); + while (f.b != f.c) { + g = RD(smb(f), 219); + h += PLc(g.d, g.e); + for (e = new Anb(g.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 36); + c = RD(Vmb(a.b, d.p), 219); + c.s || (h += lKc(a, c)); + } + } + return h; + } + function QTc(a, b, c, d, e) { + var f, g, h, i, j; + if (b) { + for (h = b.Kc(); h.Ob(); ) { + g = RD(h.Pb(), 10); + for (j = d3b(g, (BEc(), zEc), c).Kc(); j.Ob(); ) { + i = RD(j.Pb(), 12); + f = RD(Wd(qtb(e.f, i)), 118); + if (!f) { + f = new USc(a.d); + ZEb(d.c, f); + JSc(f, i, e); + } + } + } + } + } + function wVc(a, b, c) { + var d, e; + rVc(this); + b == (dVc(), bVc) ? Ysb(this.r, a.c) : Ysb(this.w, a.c); + c == bVc ? Ysb(this.r, a.d) : Ysb(this.w, a.d); + sVc(this, a); + d = tVc(a.c); + e = tVc(a.d); + vVc(this, d, e, e); + this.o = (HUc(), $wnd.Math.abs(d - e) < 0.2); + } + function Ade(a, b, c) { + var d, e, f, g, h, i; + h = RD(Ywd(a.a, 8), 2035); + if (h != null) { + for (e = h, f = 0, g = e.length; f < g; ++f) { + null.Um(); + } + } + d = c; + if ((a.a.Db & 1) == 0) { + i = new Fde(a, c, b); + d.dj(i); + } + ZD(d, 686) ? RD(d, 686).fj(a.a) : d.cj() == a.a && d.ej(null); + } + function Cne() { + var a; + if (wne) + return RD(N5d((YSd(), XSd), dLe), 2044); + Dne(); + a = RD(ZD(Xjb((YSd(), XSd), dLe), 594) ? Xjb(XSd, dLe) : new Bne(), 594); + wne = true; + zne(a); + Ane(a); + Zjb((hTd(), gTd), a, new Ene()); + rBd(a); + $jb(XSd, dLe, a); + return a; + } + function NA(a, b, c, d) { + var e; + e = EA(a, c, cD(WC(qJ, 1), Nve, 2, 6, [Swe, Twe, Uwe, Vwe, Wwe, Xwe, Ywe]), b); + e < 0 && (e = EA(a, c, cD(WC(qJ, 1), Nve, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), b)); + if (e < 0) { + return false; + } + d.d = e; + return true; + } + function QA(a, b, c, d) { + var e; + e = EA(a, c, cD(WC(qJ, 1), Nve, 2, 6, [Swe, Twe, Uwe, Vwe, Wwe, Xwe, Ywe]), b); + e < 0 && (e = EA(a, c, cD(WC(qJ, 1), Nve, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), b)); + if (e < 0) { + return false; + } + d.d = e; + return true; + } + function rtb(a, b, c) { + var d, e, f, g; + g = a.b.Ce(b); + e = (d = a.a.get(g), d == null ? $C(jJ, rve, 1, 0, 5, 1) : d); + if (e.length == 0) { + a.a.set(g, e); + } else { + f = otb(a, b, e); + if (f) { + return f.nd(c); + } + } + bD(e, e.length, new xlb(b, c)); + ++a.c; + ++a.b.g; + return null; + } + function PYb(a) { + var b, c, d; + MYb(a); + d = new bnb(); + for (c = new Anb(a.a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 86); + Rmb(d, new _Yb(b, true)); + Rmb(d, new _Yb(b, false)); + } + TYb(a.c); + t$b(d, a.b, new mob(cD(WC(wQ, 1), rve, 382, 0, [a.c]))); + OYb(a); + } + function eHb(a, b) { + var c, d, e; + e = new bnb(); + for (d = new Anb(a.c.a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 60); + if (b.Lb(c)) { + Rmb(e, new sHb(c, true)); + Rmb(e, new sHb(c, false)); + } + } + kHb(a.e); + bGb(e, a.d, new mob(cD(WC(bN, 1), rve, 693, 0, [a.e]))); + } + function t7b(a) { + var b, c, d, e; + c = new Tsb(); + for (e = new Anb(a.d); e.a < e.c.c.length; ) { + d = RD(ynb(e), 187); + b = RD(d.of((Ywc(), dwc)), 18); + !!qtb(c.f, b) || Zjb(c, b, new G7b(b)); + Rmb(RD(Wd(qtb(c.f, b)), 466).b, d); + } + return new dnb(new glb(c)); + } + function Xdc(a, b) { + var c, d, e, f, g; + d = new xmb(a.j.c.length); + c = null; + for (f = new Anb(a.j); f.a < f.c.c.length; ) { + e = RD(ynb(f), 12); + if (e.j != c) { + d.b == d.c || Ydc(d, c, b); + jmb(d); + c = e.j; + } + g = c7b(e); + !!g && (imb(d, g), true); + } + d.b == d.c || Ydc(d, c, b); + } + function Lec(a, b) { + var c, d, e; + d = new Jkb(a.b, 0); + while (d.b < d.d.gc()) { + c = (sFb(d.b < d.d.gc()), RD(d.d.Xb(d.c = d.b++), 72)); + e = RD(mQb(c, (yCc(), wAc)), 278); + if (e == (Omd(), Mmd)) { + Ckb(d); + Rmb(b.b, c); + nQb(c, (Ywc(), dwc)) || pQb(c, dwc, a); + } + } + } + function eIc(a) { + var b, c, d, e, f; + b = Kr(new is(Mr(a3b(a).a.Kc(), new ir()))); + for (e = new is(Mr(Z2b(a).a.Kc(), new ir())); gs(e); ) { + d = RD(hs(e), 18); + c = d.c.i; + f = Kr(new is(Mr(a3b(c).a.Kc(), new ir()))); + b = $wnd.Math.max(b, f); + } + return sgb(b); + } + function Jsd(a, b, c) { + var d, e, f; + d = RD(Gxd(a, (umd(), Kkd)), 21); + e = 0; + f = 0; + b.a > c.a && (d.Hc((ukd(), okd)) ? e = (b.a - c.a) / 2 : d.Hc(qkd) && (e = b.a - c.a)); + b.b > c.b && (d.Hc((ukd(), skd)) ? f = (b.b - c.b) / 2 : d.Hc(rkd) && (f = b.b - c.b)); + Isd(a, e, f); + } + function ABd(a, b, c, d, e, f, g, h, i, j, k, l, m) { + ZD(a.Cb, 90) && v$d(yYd(RD(a.Cb, 90)), 4); + PAd(a, c); + a.f = g; + DWd(a, h); + FWd(a, i); + xWd(a, j); + EWd(a, k); + aWd(a, l); + AWd(a, m); + _Vd(a, true); + $Vd(a, e); + a.Zk(f); + YVd(a, b); + d != null && (a.i = null, zWd(a, d)); + } + function Jb(a, b, c) { + if (a < 0) { + return hc(qve, cD(WC(jJ, 1), rve, 1, 5, [c, sgb(a)])); + } else if (b < 0) { + throw Adb(new agb(sve + b)); + } else { + return hc("%s (%s) must not be greater than size (%s)", cD(WC(jJ, 1), rve, 1, 5, [c, sgb(a), sgb(b)])); + } + } + function Xnb(a, b, c, d, e, f) { + var g, h, i, j; + g = d - c; + if (g < 7) { + Unb(b, c, d, f); + return; + } + i = c + e; + h = d + e; + j = i + (h - i >> 1); + Xnb(b, a, i, j, -e, f); + Xnb(b, a, j, h, -e, f); + if (f.Ne(a[j - 1], a[j]) <= 0) { + while (c < d) { + bD(b, c++, a[i++]); + } + return; + } + Vnb(a, i, j, h, b, c, d, f); + } + function Mqc(a, b) { + var c, d, e, f, g, h, i; + i = b.d; + e = b.b.j; + for (h = new Anb(i); h.a < h.c.c.length; ) { + g = RD(ynb(h), 105); + f = $C(xdb, Hye, 28, e.c.length, 16, 1); + Zjb(a.b, g, f); + c = g.a.d.p - 1; + d = g.c.d.p; + while (c != d) { + c = (c + 1) % e.c.length; + f[c] = true; + } + } + } + function rGc(a, b) { + nGc(); + if (nQb(a, (Ywc(), zwc)) && nQb(b, zwc)) { + return hgb(RD(mQb(a, zwc), 17).a, RD(mQb(b, zwc), 17).a); + } + throw Adb(new Ked("The BF model order layer assigner requires all real nodes to have a model order.")); + } + function $Gc(a, b) { + SGc(); + if (nQb(a, (Ywc(), zwc)) && nQb(b, zwc)) { + return hgb(RD(mQb(a, zwc), 17).a, RD(mQb(b, zwc), 17).a); + } + throw Adb(new Ked("The DF model order layer assigner requires all real nodes to have a model order.")); + } + function TSc(a, b) { + a.r = new USc(a.p); + SSc(a.r, a); + ye(a.r.j, a.j); + Xub(a.j); + Mub(a.j, b); + Mub(a.r.e, b); + LSc(a); + LSc(a.r); + while (a.f.c.length != 0) { + $Sc(RD(Vmb(a.f, 0), 132)); + } + while (a.k.c.length != 0) { + $Sc(RD(Vmb(a.k, 0), 132)); + } + return a.r; + } + function Wvd(a, b, c) { + var d, e, f; + e = vYd(a.Dh(), b); + d = b - a.ji(); + if (d < 0) { + if (!e) { + throw Adb(new agb(OHe + b + PHe)); + } else if (e.rk()) { + f = a.Ih(e); + f >= 0 ? a.bi(f, c) : Svd(a, e, c); + } else { + throw Adb(new agb(KHe + e.xe() + LHe)); + } + } else { + Bvd(a, d, e, c); + } + } + function n3d(a) { + var b, c; + if (a.f) { + while (a.n > 0) { + b = RD(a.k.Xb(a.n - 1), 76); + c = b.Lk(); + if (ZD(c, 102) && (RD(c, 19).Bb & QHe) != 0 && (!a.e || c.pk() != C4 || c.Lj() != 0) && b.md() != null) { + return true; + } else { + --a.n; + } + } + return false; + } else { + return a.n > 0; + } + } + function Pje(b) { + var c, d, e, f; + d = RD(b, 54)._h(); + if (d) { + try { + e = null; + c = N5d((YSd(), XSd), jSd(kSd(d))); + if (c) { + f = c.ai(); + !!f && (e = f.Fl(Chb(d.e))); + } + if (!!e && e != b) { + return Pje(e); + } + } catch (a) { + a = zdb(a); + if (!ZD(a, 63)) + throw Adb(a); + } + } + return b; + } + function P3c(a, b, c) { + var d, e, f; + c.Ug("Remove overlaps", 1); + c.dh(b, eFe); + d = RD(Gxd(b, (u2c(), t2c)), 27); + a.f = d; + a.a = u5c(RD(Gxd(b, ($4c(), X4c)), 300)); + e = UD(Gxd(b, (umd(), fmd))); + s3c(a, (uFb(e), e)); + f = Q2c(d); + O3c(a, b, f, c); + c.dh(b, gFe); + } + function Ded(a) { + var b, c, d; + if (Heb(TD(Gxd(a, (umd(), $kd))))) { + d = new bnb(); + for (c = new is(Mr(zGd(a).a.Kc(), new ir())); gs(c); ) { + b = RD(hs(c), 74); + ozd(b) && Heb(TD(Gxd(b, _kd))) && (ZEb(d.c, b), true); + } + return d; + } else { + return yob(), yob(), vob; + } + } + function KC(a) { + if (!a) { + return cC(), bC; + } + var b = a.valueOf ? a.valueOf() : a; + if (b !== a) { + var c = GC[typeof b]; + return c ? c(b) : NC(typeof b); + } else if (a instanceof Array || a instanceof $wnd.Array) { + return new NB(a); + } else { + return new vC(a); + } + } + function IMb(a, b, c) { + var d, e, f; + f = a.o; + d = RD(Vrb(a.p, c), 252); + e = d.i; + e.b = ZKb(d); + e.a = YKb(d); + e.b = $wnd.Math.max(e.b, f.a); + e.b > f.a && !b && (e.b = f.a); + e.c = -(e.b - f.a) / 2; + switch (c.g) { + case 1: + e.d = -e.a; + break; + case 3: + e.d = f.b; + } + $Kb(d); + _Kb(d); + } + function JMb(a, b, c) { + var d, e, f; + f = a.o; + d = RD(Vrb(a.p, c), 252); + e = d.i; + e.b = ZKb(d); + e.a = YKb(d); + e.a = $wnd.Math.max(e.a, f.b); + e.a > f.b && !b && (e.a = f.b); + e.d = -(e.a - f.b) / 2; + switch (c.g) { + case 4: + e.c = -e.b; + break; + case 2: + e.c = f.a; + } + $Kb(d); + _Kb(d); + } + function nkc(a, b) { + var c, d, e, f, g; + if (b.dc()) { + return; + } + e = RD(b.Xb(0), 131); + if (b.gc() == 1) { + mkc(a, e, e, 1, 0, b); + return; + } + c = 1; + while (c < b.gc()) { + if (e.j || !e.o) { + f = skc(b, c); + if (f) { + d = RD(f.a, 17).a; + g = RD(f.b, 131); + mkc(a, e, g, c, d, b); + c = d + 1; + e = g; + } + } + } + } + function Soc(a) { + var b, c, d, e, f, g; + g = new dnb(a.d); + _mb(g, new upc()); + b = (epc(), cD(WC(hW, 1), jwe, 276, 0, [Zoc, apc, Yoc, dpc, _oc, $oc, cpc, bpc])); + c = 0; + for (f = new Anb(g); f.a < f.c.c.length; ) { + e = RD(ynb(f), 105); + d = b[c % b.length]; + Uoc(e, d); + ++c; + } + } + function zid(a, b) { + tid(); + var c, d, e, f; + if (b.b < 2) { + return false; + } + f = Sub(b, 0); + c = RD(evb(f), 8); + d = c; + while (f.b != f.d.c) { + e = RD(evb(f), 8); + if (!(xid(a, d) && xid(a, e))) { + return false; + } + d = e; + } + if (!(xid(a, d) && xid(a, c))) { + return false; + } + return true; + } + function HEd(a, b) { + var c, d, e, f, g, h, i, j, k, l; + k = null; + l = a; + g = vDd(l, "x"); + c = new iFd(b); + eEd(c.a, g); + h = vDd(l, "y"); + d = new jFd(b); + fEd(d.a, h); + i = vDd(l, fIe); + e = new kFd(b); + gEd(e.a, i); + j = vDd(l, eIe); + f = new lFd(b); + k = (hEd(f.a, j), j); + return k; + } + function v$d(a, b) { + r$d(a, b); + (a.b & 1) != 0 && (a.a.a = null); + (a.b & 2) != 0 && (a.a.f = null); + if ((a.b & 4) != 0) { + a.a.g = null; + a.a.i = null; + } + if ((a.b & 16) != 0) { + a.a.d = null; + a.a.e = null; + } + (a.b & 8) != 0 && (a.a.b = null); + if ((a.b & 32) != 0) { + a.a.j = null; + a.a.c = null; + } + } + function Lde(b, c) { + var d, e, f; + f = 0; + if (c.length > 0) { + try { + f = Oeb(c, qwe, lve); + } catch (a) { + a = zdb(a); + if (ZD(a, 130)) { + e = a; + throw Adb(new RSd(e)); + } else + throw Adb(a); + } + } + d = (!b.a && (b.a = new Zde(b)), b.a); + return f < d.i && f >= 0 ? RD(QHd(d, f), 58) : null; + } + function Ib(a, b) { + if (a < 0) { + return hc(qve, cD(WC(jJ, 1), rve, 1, 5, ["index", sgb(a)])); + } else if (b < 0) { + throw Adb(new agb(sve + b)); + } else { + return hc("%s (%s) must be less than size (%s)", cD(WC(jJ, 1), rve, 1, 5, ["index", sgb(a), sgb(b)])); + } + } + function cob(a) { + var b, c, d, e, f; + if (a == null) { + return vve; + } + f = new Jyb(pve, "[", "]"); + for (c = a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + !f.a ? f.a = new dib(f.d) : Zhb(f.a, f.b); + Whb(f.a, "" + b); + } + return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); + } + function dob(a) { + var b, c, d, e, f; + if (a == null) { + return vve; + } + f = new Jyb(pve, "[", "]"); + for (c = a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + !f.a ? f.a = new dib(f.d) : Zhb(f.a, f.b); + Whb(f.a, "" + b); + } + return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); + } + function eob(a) { + var b, c, d, e, f; + if (a == null) { + return vve; + } + f = new Jyb(pve, "[", "]"); + for (c = a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + !f.a ? f.a = new dib(f.d) : Zhb(f.a, f.b); + Whb(f.a, "" + b); + } + return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); + } + function hob(a) { + var b, c, d, e, f; + if (a == null) { + return vve; + } + f = new Jyb(pve, "[", "]"); + for (c = a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + !f.a ? f.a = new dib(f.d) : Zhb(f.a, f.b); + Whb(f.a, "" + b); + } + return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); + } + function kwb(a, b) { + var c, d, e, f, g, h; + c = a.b.c.length; + e = Vmb(a.b, b); + while (b * 2 + 1 < c) { + d = (f = 2 * b + 1, g = f + 1, h = f, g < c && a.a.Ne(Vmb(a.b, g), Vmb(a.b, f)) < 0 && (h = g), h); + if (a.a.Ne(e, Vmb(a.b, d)) < 0) { + break; + } + $mb(a.b, b, Vmb(a.b, d)); + b = d; + } + $mb(a.b, b, e); + } + function oJb(a, b, c) { + var d, e; + d = c.d; + e = c.e; + if (a.g[d.d] <= a.i[b.d] && a.i[b.d] <= a.i[d.d] && a.g[e.d] <= a.i[b.d] && a.i[b.d] <= a.i[e.d]) { + if (a.i[d.d] < a.i[e.d]) { + return false; + } + return true; + } + if (a.i[d.d] < a.i[e.d]) { + return true; + } + return false; + } + function SWb(a, b) { + var c; + c = RD(mQb(b, (yCc(), oAc)), 322); + if (c != a) { + throw Adb(new Ked("The hierarchy aware processor " + c + " in child node " + b + " is only allowed if the root node specifies the same hierarchical processor.")); + } + } + function Kee(a, b) { + var c, d, e, f, g; + d = (!b.s && (b.s = new C5d(y7, b, 21, 17)), b.s); + f = null; + for (e = 0, g = d.i; e < g; ++e) { + c = RD(QHd(d, e), 179); + switch (yfe(Qee(a, c))) { + case 2: + case 3: { + !f && (f = new bnb()); + ZEb(f.c, c); + } + } + } + return !f ? (yob(), yob(), vob) : f; + } + function PQb(a, b, c) { + var d, e, f, g, h, i; + i = oxe; + for (f = new Anb(nRb(a.b)); f.a < f.c.c.length; ) { + e = RD(ynb(f), 177); + for (h = new Anb(nRb(b.b)); h.a < h.c.c.length; ) { + g = RD(ynb(h), 177); + d = Aid(e.a, e.b, g.a, g.b, c); + i = $wnd.Math.min(i, d); + } + } + return i; + } + function Q3b(a, b) { + if (!b) { + throw Adb(new Ngb()); + } + a.j = b; + if (!a.d) { + switch (a.j.g) { + case 1: + a.a.a = a.o.a / 2; + a.a.b = 0; + break; + case 2: + a.a.a = a.o.a; + a.a.b = a.o.b / 2; + break; + case 3: + a.a.a = a.o.a / 2; + a.a.b = a.o.b; + break; + case 4: + a.a.a = 0; + a.a.b = a.o.b / 2; + } + } + } + function Jic(a, b) { + var c, d, e; + if (ZD(b.g, 10) && RD(b.g, 10).k == (r3b(), m3b)) { + return oxe; + } + e = $jc(b); + if (e) { + return $wnd.Math.max(0, a.b / 2 - 0.5); + } + c = Zjc(b); + if (c) { + d = Kfb(UD(hFc(c, (yCc(), bCc)))); + return $wnd.Math.max(0, d / 2 - 0.5); + } + return oxe; + } + function Lic(a, b) { + var c, d, e; + if (ZD(b.g, 10) && RD(b.g, 10).k == (r3b(), m3b)) { + return oxe; + } + e = $jc(b); + if (e) { + return $wnd.Math.max(0, a.b / 2 - 0.5); + } + c = Zjc(b); + if (c) { + d = Kfb(UD(hFc(c, (yCc(), bCc)))); + return $wnd.Math.max(0, d / 2 - 0.5); + } + return oxe; + } + function Jkc(a, b) { + lkc(); + var c, d, e, f, g, h; + c = null; + for (g = b.Kc(); g.Ob(); ) { + f = RD(g.Pb(), 131); + if (f.o) { + continue; + } + d = Qid(f.a); + e = Nid(f.a); + h = new Nlc(d, e, null, RD(f.d.a.ec().Kc().Pb(), 18)); + Rmb(h.c, f.a); + ZEb(a.c, h); + !!c && Rmb(c.d, h); + c = h; + } + } + function bmc(a) { + var b, c, d, e, f, g; + g = aMc(a.d, a.e); + for (f = g.Kc(); f.Ob(); ) { + e = RD(f.Pb(), 12); + d = a.e == (qpd(), ppd) ? e.e : e.g; + for (c = new Anb(d); c.a < c.c.c.length; ) { + b = RD(ynb(c), 18); + if (!W0b(b) && b.c.i.c != b.d.i.c) { + Zlc(a, b); + ++a.f; + ++a.c; + } + } + } + } + function Wsc(a, b) { + var c, d; + if (b.dc()) { + return yob(), yob(), vob; + } + d = new bnb(); + Rmb(d, sgb(qwe)); + for (c = 1; c < a.f; ++c) { + a.a == null && usc(a); + a.a[c] && Rmb(d, sgb(c)); + } + if (d.c.length == 1) { + return yob(), yob(), vob; + } + Rmb(d, sgb(lve)); + return Vsc(b, d); + } + function kOc(a, b) { + var c, d, e, f, g, h, i; + g = b.c.i.k != (r3b(), p3b); + i = g ? b.d : b.c; + c = U0b(b, i).i; + e = RD(Wjb(a.k, i), 125); + d = a.i[c.p].a; + if ($2b(i.i) < (!c.c ? -1 : Wmb(c.c.a, c, 0))) { + f = e; + h = d; + } else { + f = d; + h = e; + } + rIb(uIb(tIb(vIb(sIb(new wIb(), 0), 4), f), h)); + } + function ODd(a, b, c) { + var d, e, f, g, h, i; + if (c) { + e = c.a.length; + d = new vue(e); + for (h = (d.b - d.a) * d.c < 0 ? (uue(), tue) : new Rue(d); h.Ob(); ) { + g = RD(h.Pb(), 17); + i = uEd(a, tDd(JB(c, g.a))); + if (i) { + f = (!b.b && (b.b = new Yie(E4, b, 4, 7)), b.b); + WGd(f, i); + } + } + } + } + function PDd(a, b, c) { + var d, e, f, g, h, i; + if (c) { + e = c.a.length; + d = new vue(e); + for (h = (d.b - d.a) * d.c < 0 ? (uue(), tue) : new Rue(d); h.Ob(); ) { + g = RD(h.Pb(), 17); + i = uEd(a, tDd(JB(c, g.a))); + if (i) { + f = (!b.c && (b.c = new Yie(E4, b, 5, 8)), b.c); + WGd(f, i); + } + } + } + } + function Bo(a, b, c) { + var d, e; + d = b.a & a.f; + b.b = a.b[d]; + a.b[d] = b; + e = b.f & a.f; + b.d = a.c[e]; + a.c[e] = b; + if (!c) { + b.e = a.e; + b.c = null; + !a.e ? a.a = b : a.e.c = b; + a.e = b; + } else { + b.e = c.e; + !b.e ? a.a = b : b.e.c = b; + b.c = c.c; + !b.c ? a.e = b : b.c.e = b; + } + ++a.i; + ++a.g; + } + function Ir(a) { + var b, c, d; + b = a.Pb(); + if (!a.Ob()) { + return b; + } + d = Yhb(Zhb(new bib(), "expected one element but was: <"), b); + for (c = 0; c < 4 && a.Ob(); c++) { + Yhb((d.a += pve, d), a.Pb()); + } + a.Ob() && (d.a += ", ...", d); + d.a += ">"; + throw Adb(new agb(d.a)); + } + function cB(a) { + var b, c; + c = -a.a; + b = cD(WC(hE, 1), zwe, 28, 15, [43, 48, 48, 48, 48]); + if (c < 0) { + b[0] = 45; + c = -c; + } + b[1] = b[1] + ((c / 60 | 0) / 10 | 0) & Bwe; + b[2] = b[2] + (c / 60 | 0) % 10 & Bwe; + b[3] = b[3] + (c % 60 / 10 | 0) & Bwe; + b[4] = b[4] + c % 10 & Bwe; + return Ihb(b, 0, b.length); + } + function V2b(a) { + var b, c, d, e; + a.g = new Zrb(RD(Qb(E3), 297)); + d = 0; + c = (qpd(), Yod); + b = 0; + for (; b < a.j.c.length; b++) { + e = RD(Vmb(a.j, b), 12); + if (e.j != c) { + d != b && Wrb(a.g, c, new Ptd(sgb(d), sgb(b))); + c = e.j; + d = b; + } + } + Wrb(a.g, c, new Ptd(sgb(d), sgb(b))); + } + function u7b(a) { + var b, c, d, e, f, g, h; + d = 0; + for (c = new Anb(a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 30); + for (f = new Anb(b.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + e.p = d++; + for (h = new Anb(e.j); h.a < h.c.c.length; ) { + g = RD(ynb(h), 12); + g.p = d++; + } + } + } + } + function Tvd(a, b) { + var c, d, e; + e = Eee((lke(), jke), a.Dh(), b); + if (e) { + nke(); + RD(e, 69).xk() || (e = zfe(Qee(jke, e))); + d = (c = a.Ih(e), RD(c >= 0 ? a.Lh(c, true, true) : Qvd(a, e, true), 160)); + RD(d, 220).Zl(b); + } else { + throw Adb(new agb(KHe + b.xe() + LHe)); + } + } + function Cib(a) { + var b, c; + if (a > -140737488355328 && a < 140737488355328) { + if (a == 0) { + return 0; + } + b = a < 0; + b && (a = -a); + c = eE($wnd.Math.floor($wnd.Math.log(a) / 0.6931471805599453)); + (!b || a != $wnd.Math.pow(2, c)) && ++c; + return c; + } + return Dib(Hdb(a)); + } + function oTc(a) { + var b, c, d, e, f, g, h; + f = new Iub(); + for (c = new Anb(a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 132); + g = b.a; + h = b.b; + if (f.a._b(g) || f.a._b(h)) { + continue; + } + e = g; + d = h; + if (g.e.b + g.j.b > 2 && h.e.b + h.j.b <= 2) { + e = h; + d = g; + } + f.a.zc(e, f); + e.q = d; + } + return f; + } + function B5c(a, b, c) { + c.Ug("Eades radial", 1); + c.dh(b, gFe); + a.d = RD(Gxd(b, (u2c(), t2c)), 27); + a.c = Kfb(UD(Gxd(b, ($4c(), S4c)))); + a.e = u5c(RD(Gxd(b, X4c), 300)); + a.a = Z3c(RD(Gxd(b, Z4c), 434)); + a.b = k5c(RD(Gxd(b, O4c), 354)); + C5c(a); + c.dh(b, gFe); + } + function t8c(a, b) { + b.Ug("Target Width Setter", 1); + if (Hxd(a, (X7c(), W7c))) { + Ixd(a, (X6c(), W6c), UD(Gxd(a, W7c))); + } else { + throw Adb(new Jed("A target width has to be set if the TargetWidthWidthApproximator should be used.")); + } + b.Vg(); + } + function _8b(a, b) { + var c, d, e; + d = new j3b(a); + kQb(d, b); + pQb(d, (Ywc(), gwc), b); + pQb(d, (yCc(), BBc), (Bod(), wod)); + pQb(d, Rzc, (Rjd(), Njd)); + h3b(d, (r3b(), m3b)); + c = new R3b(); + P3b(c, d); + Q3b(c, (qpd(), ppd)); + e = new R3b(); + P3b(e, d); + Q3b(e, Xod); + return d; + } + function ttc(a) { + switch (a.g) { + case 0: + return new FKc((RKc(), OKc)); + case 1: + return new aKc(); + case 2: + return new FLc(); + default: + throw Adb(new agb("No implementation is available for the crossing minimizer " + (a.f != null ? a.f : "" + a.g))); + } + } + function THc(a, b) { + var c, d, e, f, g; + a.c[b.p] = true; + Rmb(a.a, b); + for (g = new Anb(b.j); g.a < g.c.c.length; ) { + f = RD(ynb(g), 12); + for (d = new l4b(f.b); xnb(d.a) || xnb(d.b); ) { + c = RD(xnb(d.a) ? ynb(d.a) : ynb(d.b), 18); + e = UHc(f, c).i; + a.c[e.p] || THc(a, e); + } + } + } + function J2c(a) { + var b, c, d, e, f, g, h; + g = 0; + for (c = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); c.e != c.i.gc(); ) { + b = RD(bMd(c), 27); + h = b.g; + e = b.f; + d = $wnd.Math.sqrt(h * h + e * e); + g = $wnd.Math.max(d, g); + f = J2c(b); + g = $wnd.Math.max(f, g); + } + return g; + } + function Pod() { + Pod = geb; + Nod = new Qod("OUTSIDE", 0); + Lod = new Qod("INSIDE", 1); + Mod = new Qod("NEXT_TO_PORT_IF_POSSIBLE", 2); + Kod = new Qod("ALWAYS_SAME_SIDE", 3); + Jod = new Qod("ALWAYS_OTHER_SAME_SIDE", 4); + Ood = new Qod("SPACE_EFFICIENT", 5); + } + function DEd(a, b, c) { + var d, e, f, h, i, j; + d = rEd(a, (e = (bvd(), f = new ACd(), f), !!c && yCd(e, c), e), b); + jyd(d, zDd(b, uIe)); + GEd(b, d); + BEd(b, d); + HEd(b, d); + h = b; + i = wDd(h, "ports"); + j = new hFd(a, d); + dEd(j.a, j.b, i); + CEd(a, b, d); + xEd(a, b, d); + return d; + } + function bB(a) { + var b, c; + c = -a.a; + b = cD(WC(hE, 1), zwe, 28, 15, [43, 48, 48, 58, 48, 48]); + if (c < 0) { + b[0] = 45; + c = -c; + } + b[1] = b[1] + ((c / 60 | 0) / 10 | 0) & Bwe; + b[2] = b[2] + (c / 60 | 0) % 10 & Bwe; + b[4] = b[4] + (c % 60 / 10 | 0) & Bwe; + b[5] = b[5] + c % 10 & Bwe; + return Ihb(b, 0, b.length); + } + function eB(a) { + var b; + b = cD(WC(hE, 1), zwe, 28, 15, [71, 77, 84, 45, 48, 48, 58, 48, 48]); + if (a <= 0) { + b[3] = 43; + a = -a; + } + b[4] = b[4] + ((a / 60 | 0) / 10 | 0) & Bwe; + b[5] = b[5] + (a / 60 | 0) % 10 & Bwe; + b[7] = b[7] + (a % 60 / 10 | 0) & Bwe; + b[8] = b[8] + a % 10 & Bwe; + return Ihb(b, 0, b.length); + } + function fob(a) { + var b, c, d, e, f; + if (a == null) { + return vve; + } + f = new Jyb(pve, "[", "]"); + for (c = a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + !f.a ? f.a = new dib(f.d) : Zhb(f.a, f.b); + Whb(f.a, "" + Zdb(b)); + } + return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); + } + function uJb(a, b) { + var c, d, e; + e = lve; + for (d = new Anb(CIb(b)); d.a < d.c.c.length; ) { + c = RD(ynb(d), 218); + if (c.f && !a.c[c.c]) { + a.c[c.c] = true; + e = $wnd.Math.min(e, uJb(a, oIb(c, b))); + } + } + a.i[b.d] = a.j; + a.g[b.d] = $wnd.Math.min(e, a.j++); + return a.g[b.d]; + } + function vNb(a, b) { + var c, d, e; + for (e = RD(RD(Qc(a.r, b), 21), 87).Kc(); e.Ob(); ) { + d = RD(e.Pb(), 117); + d.e.b = (c = d.b, c.pf((umd(), Gld)) ? c.ag() == (qpd(), Yod) ? -c.Mf().b - Kfb(UD(c.of(Gld))) : Kfb(UD(c.of(Gld))) : c.ag() == (qpd(), Yod) ? -c.Mf().b : 0); + } + } + function CSb(a) { + var b, c, d, e, f, g, h; + c = zRb(a.e); + f = ijd(njd(ajd(yRb(a.e)), a.d * a.a, a.c * a.b), -0.5); + b = c.a - f.a; + e = c.b - f.b; + for (h = 0; h < a.c; h++) { + d = b; + for (g = 0; g < a.d; g++) { + ARb(a.e, new Uid(d, e, a.a, a.b)) && TPb(a, g, h, false, true); + d += a.a; + } + e += a.b; + } + } + function H0c(a) { + var b, c, d, e, f; + b = a.a; + c = a.b; + e = a.c; + d = new rjd(c.e.a + c.f.a / 2, c.e.b + c.f.b / 2); + f = new rjd(e.e.a + e.f.a / 2, e.e.b + e.f.b / 2); + Pub(b, d, b.a, b.a.a); + Pub(b, f, b.c.b, b.c); + tWc(d, RD(ju(b, 1), 8), a.b.f); + tWc(f, RD(ju(b, b.b - 2), 8), a.c.f); + } + function tDd(a) { + var b, c; + c = false; + if (ZD(a, 211)) { + c = true; + return RD(a, 211).a; + } + if (!c) { + if (ZD(a, 263)) { + b = RD(a, 263).a % 1 == 0; + if (b) { + c = true; + return sgb(Ofb(RD(a, 263).a)); + } + } + } + throw Adb(new CDd("Id must be a string or an integer: '" + a + "'.")); + } + function Kde(a, b) { + var c, d, e, f, g, h; + f = null; + for (e = new Xde((!a.a && (a.a = new Zde(a)), a.a)); Ude(e); ) { + c = RD(tId(e), 58); + d = (g = c.Dh(), h = (mYd(g), g.o), !h || !c.Xh(h) ? null : Hje(iXd(h), c.Mh(h))); + if (d != null) { + if (lhb(d, b)) { + f = c; + break; + } + } + } + return f; + } + function Rw(a, b, c) { + var d, e, f, g, h; + dk(c, "occurrences"); + if (c == 0) { + return h = RD(Xv(nd(a.a), b), 16), !h ? 0 : h.gc(); + } + g = RD(Xv(nd(a.a), b), 16); + if (!g) { + return 0; + } + f = g.gc(); + if (c >= f) { + g.$b(); + } else { + e = g.Kc(); + for (d = 0; d < c; d++) { + e.Pb(); + e.Qb(); + } + } + return f; + } + function qx(a, b, c) { + var d, e, f, g; + dk(c, "oldCount"); + dk(0, "newCount"); + d = RD(Xv(nd(a.a), b), 16); + if ((!d ? 0 : d.gc()) == c) { + dk(0, "count"); + e = (f = RD(Xv(nd(a.a), b), 16), !f ? 0 : f.gc()); + g = -e; + g > 0 ? Hh() : g < 0 && Rw(a, b, -g); + return true; + } else { + return false; + } + } + function YKb(a) { + var b, c, d, e, f, g, h; + h = 0; + if (a.b == 0) { + g = aLb(a, true); + b = 0; + for (d = g, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + if (c > 0) { + h += c; + ++b; + } + } + b > 1 && (h += a.c * (b - 1)); + } else { + h = Vvb(SCb(HDb(CDb(_nb(a.a), new oLb()), new qLb()))); + } + return h > 0 ? h + a.n.d + a.n.a : 0; + } + function ZKb(a) { + var b, c, d, e, f, g, h; + h = 0; + if (a.b == 0) { + h = Vvb(SCb(HDb(CDb(_nb(a.a), new kLb()), new mLb()))); + } else { + g = bLb(a, true); + b = 0; + for (d = g, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + if (c > 0) { + h += c; + ++b; + } + } + b > 1 && (h += a.c * (b - 1)); + } + return h > 0 ? h + a.n.b + a.n.c : 0; + } + function UOc(a) { + var b, c; + if (a.c.length != 2) { + throw Adb(new dgb("Order only allowed for two paths.")); + } + b = (tFb(0, a.c.length), RD(a.c[0], 18)); + c = (tFb(1, a.c.length), RD(a.c[1], 18)); + if (b.d.i != c.c.i) { + a.c.length = 0; + ZEb(a.c, c); + ZEb(a.c, b); + } + } + function O8c(a, b, c) { + var d; + zyd(c, b.g, b.f); + Byd(c, b.i, b.j); + for (d = 0; d < (!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a).i; d++) { + O8c(a, RD(QHd((!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a), d), 27), RD(QHd((!c.a && (c.a = new C5d(J4, c, 10, 11)), c.a), d), 27)); + } + } + function DMb(a, b) { + var c, d, e, f; + f = RD(Vrb(a.b, b), 127); + c = f.a; + for (e = RD(RD(Qc(a.r, b), 21), 87).Kc(); e.Ob(); ) { + d = RD(e.Pb(), 117); + !!d.c && (c.a = $wnd.Math.max(c.a, QKb(d.c))); + } + if (c.a > 0) { + switch (b.g) { + case 2: + f.n.c = a.s; + break; + case 4: + f.n.b = a.s; + } + } + } + function ETb(a, b) { + var c, d, e; + c = RD(mQb(b, (yVb(), lVb)), 17).a - RD(mQb(a, lVb), 17).a; + if (c == 0) { + d = ojd(ajd(RD(mQb(a, (JVb(), FVb)), 8)), RD(mQb(a, GVb), 8)); + e = ojd(ajd(RD(mQb(b, FVb), 8)), RD(mQb(b, GVb), 8)); + return Qfb(d.a * d.b, e.a * e.b); + } + return c; + } + function JVc(a, b) { + var c, d, e; + c = RD(mQb(b, (h_c(), X$c)), 17).a - RD(mQb(a, X$c), 17).a; + if (c == 0) { + d = ojd(ajd(RD(mQb(a, (q$c(), RZc)), 8)), RD(mQb(a, SZc), 8)); + e = ojd(ajd(RD(mQb(b, RZc), 8)), RD(mQb(b, SZc), 8)); + return Qfb(d.a * d.b, e.a * e.b); + } + return c; + } + function _0b(a) { + var b, c; + c = new bib(); + c.a += "e_"; + b = S0b(a); + b != null && (c.a += "" + b, c); + if (!!a.c && !!a.d) { + Zhb((c.a += " ", c), M3b(a.c)); + Zhb(Yhb((c.a += "[", c), a.c.i), "]"); + Zhb((c.a += SAe, c), M3b(a.d)); + Zhb(Yhb((c.a += "[", c), a.d.i), "]"); + } + return c.a; + } + function ZVc(a) { + switch (a.g) { + case 0: + return new N_c(); + case 1: + return new V_c(); + case 2: + return new x0c(); + case 3: + return new J0c(); + default: + throw Adb(new agb("No implementation is available for the layout phase " + (a.f != null ? a.f : "" + a.g))); + } + } + function qsd(a, b, c, d, e) { + var f; + f = 0; + switch (e.g) { + case 1: + f = $wnd.Math.max(0, b.b + a.b - (c.b + d)); + break; + case 3: + f = $wnd.Math.max(0, -a.b - d); + break; + case 2: + f = $wnd.Math.max(0, -a.a - d); + break; + case 4: + f = $wnd.Math.max(0, b.a + a.a - (c.a + d)); + } + return f; + } + function MDd(a, b, c) { + var d, e, f, g, h; + if (c) { + e = c.a.length; + d = new vue(e); + for (h = (d.b - d.a) * d.c < 0 ? (uue(), tue) : new Rue(d); h.Ob(); ) { + g = RD(h.Pb(), 17); + f = xDd(c, g.a); + kIe in f.a || lIe in f.a ? yEd(a, f, b) : EEd(a, f, b); + OGd(RD(Wjb(a.b, uDd(f)), 74)); + } + } + } + function jXd(a) { + var b, c; + switch (a.b) { + case -1: { + return true; + } + case 0: { + c = a.t; + if (c > 1 || c == -1) { + a.b = -1; + return true; + } else { + b = WVd(a); + if (!!b && (nke(), b.lk() == aKe)) { + a.b = -1; + return true; + } else { + a.b = 1; + return false; + } + } + } + default: + case 1: { + return false; + } + } + } + function Sqe(a, b) { + var c, d, e, f; + Mqe(a); + if (a.c != 0 || a.a != 123) + throw Adb(new Lqe(TId((Hde(), eJe)))); + f = b == 112; + d = a.d; + c = phb(a.i, 125, d); + if (c < 0) + throw Adb(new Lqe(TId((Hde(), fJe)))); + e = zhb(a.i, d, c); + a.d = c + 1; + return ite(e, f, (a.e & 512) == 512); + } + function YTb(a) { + var b, c, d, e, f, g, h; + d = a.a.c.length; + if (d > 0) { + g = a.c.d; + h = a.d.d; + e = ijd(ojd(new rjd(h.a, h.b), g), 1 / (d + 1)); + f = new rjd(g.a, g.b); + for (c = new Anb(a.a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 250); + b.d.a = f.a + e.a; + b.d.b = f.b + e.b; + $id(f, e); + } + } + } + function HXd(a, b) { + var c, d, e; + if (!b) { + JXd(a, null); + zXd(a, null); + } else if ((b.i & 4) != 0) { + d = "[]"; + for (c = b.c; ; c = c.c) { + if ((c.i & 4) == 0) { + e = shb((lfb(c), c.o + d)); + JXd(a, e); + zXd(a, e); + break; + } + d += "[]"; + } + } else { + e = shb((lfb(b), b.o)); + JXd(a, e); + zXd(a, e); + } + a.hl(b); + } + function Bge(a, b, c, d, e) { + var f, g, h, i; + i = Age(a, RD(e, 58)); + if (dE(i) !== dE(e)) { + h = RD(a.g[c], 76); + f = oke(b, i); + MHd(a, c, Tge(a, c, f)); + if (Mvd(a.e)) { + g = fge(a, 9, f.Lk(), e, i, d, false); + oKd(g, new P3d(a.e, 9, a.c, h, f, d, false)); + pKd(g); + } + return i; + } + return e; + } + function AGc(a, b, c) { + var d, e, f, g, h, i; + d = RD(Qc(a.c, b), 15); + e = RD(Qc(a.c, c), 15); + f = d.fd(d.gc()); + g = e.fd(e.gc()); + while (f.Sb() && g.Sb()) { + h = RD(f.Ub(), 17); + i = RD(g.Ub(), 17); + if (h != i) { + return hgb(h.a, i.a); + } + } + return !f.Ob() && !g.Ob() ? 0 : f.Ob() ? 1 : -1; + } + function FHc(a) { + var b, c, d, e, f, g, h; + h = ev(a.c.length); + for (e = new Anb(a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 10); + g = new _sb(); + f = a3b(d); + for (c = new is(Mr(f.a.Kc(), new ir())); gs(c); ) { + b = RD(hs(c), 18); + b.c.i == b.d.i || Ysb(g, b.d.i); + } + ZEb(h.c, g); + } + return h; + } + function xhd(c, d) { + var e, f, g; + try { + g = xs(c.a, d); + return g; + } catch (b) { + b = zdb(b); + if (ZD(b, 33)) { + try { + f = Oeb(d, qwe, lve); + e = mfb(c.a); + if (f >= 0 && f < e.length) { + return e[f]; + } + } catch (a) { + a = zdb(a); + if (!ZD(a, 130)) + throw Adb(a); + } + return null; + } else + throw Adb(b); + } + } + function Rvd(a, b) { + var c, d, e; + e = Eee((lke(), jke), a.Dh(), b); + if (e) { + nke(); + RD(e, 69).xk() || (e = zfe(Qee(jke, e))); + d = (c = a.Ih(e), RD(c >= 0 ? a.Lh(c, true, true) : Qvd(a, e, true), 160)); + return RD(d, 220).Wl(b); + } else { + throw Adb(new agb(KHe + b.xe() + NHe)); + } + } + function _ae() { + Tae(); + var a; + if (Sae) + return RD(N5d((YSd(), XSd), AKe), 2038); + RRd(UK, new hde()); + abe(); + a = RD(ZD(Xjb((YSd(), XSd), AKe), 560) ? Xjb(XSd, AKe) : new $ae(), 560); + Sae = true; + Yae(a); + Zae(a); + Zjb((hTd(), gTd), a, new cbe()); + $jb(XSd, AKe, a); + return a; + } + function Vfe(a, b) { + var c, d, e, f; + a.j = -1; + if (Mvd(a.e)) { + c = a.i; + f = a.i != 0; + LHd(a, b); + d = new P3d(a.e, 3, a.c, null, b, c, f); + e = b.zl(a.e, a.c, null); + e = Hge(a, b, e); + if (!e) { + qvd(a.e, d); + } else { + e.nj(d); + e.oj(); + } + } else { + LHd(a, b); + e = b.zl(a.e, a.c, null); + !!e && e.oj(); + } + } + function HA(a, b) { + var c, d, e; + e = 0; + d = b[0]; + if (d >= a.length) { + return -1; + } + c = (BFb(d, a.length), a.charCodeAt(d)); + while (c >= 48 && c <= 57) { + e = e * 10 + (c - 48); + ++d; + if (d >= a.length) { + break; + } + c = (BFb(d, a.length), a.charCodeAt(d)); + } + d > b[0] ? b[0] = d : e = -1; + return e; + } + function mPb(a) { + var b, c, d, e, f; + e = RD(a.a, 17).a; + f = RD(a.b, 17).a; + c = e; + d = f; + b = $wnd.Math.max($wnd.Math.abs(e), $wnd.Math.abs(f)); + if (e <= 0 && e == f) { + c = 0; + d = f - 1; + } else { + if (e == -b && f != b) { + c = f; + d = e; + f >= 0 && ++c; + } else { + c = -f; + d = e; + } + } + return new Ptd(sgb(c), sgb(d)); + } + function YPb(a, b, c, d) { + var e, f, g, h, i, j; + for (e = 0; e < b.o; e++) { + f = e - b.j + c; + for (g = 0; g < b.p; g++) { + h = g - b.k + d; + if ((i = f, j = h, i += a.j, j += a.k, i >= 0 && j >= 0 && i < a.o && j < a.p) && (!QPb(b, e, g) && $Pb(a, f, h) || PPb(b, e, g) && !_Pb(a, f, h))) { + return true; + } + } + } + return false; + } + function jSc(a, b, c) { + var d, e, f, g, h; + g = a.c; + h = a.d; + f = xjd(cD(WC(l3, 1), Nve, 8, 0, [g.i.n, g.n, g.a])).b; + e = (f + xjd(cD(WC(l3, 1), Nve, 8, 0, [h.i.n, h.n, h.a])).b) / 2; + d = null; + g.j == (qpd(), Xod) ? d = new rjd(b + g.i.c.c.a + c, e) : d = new rjd(b - c, e); + hu(a.a, 0, d); + } + function ozd(a) { + var b, c, d, e; + b = null; + for (d = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [(!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b), (!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c)]))); gs(d); ) { + c = RD(hs(d), 84); + e = AGd(c); + if (!b) { + b = e; + } else if (b != e) { + return false; + } + } + return true; + } + function SHd(a, b, c) { + var d; + ++a.j; + if (b >= a.i) + throw Adb(new veb(MIe + b + NIe + a.i)); + if (c >= a.i) + throw Adb(new veb(OIe + c + NIe + a.i)); + d = a.g[c]; + if (b != c) { + b < c ? hib(a.g, b, a.g, b + 1, c - b) : hib(a.g, c + 1, a.g, c, b - c); + bD(a.g, b, d); + a.Pi(b, d, c); + a.Ni(); + } + return d; + } + function Rc(a, b, c) { + var d; + d = RD(a.c.xc(b), 16); + if (!d) { + d = a.ic(b); + if (d.Fc(c)) { + ++a.d; + a.c.zc(b, d); + return true; + } else { + throw Adb(new Deb("New Collection violated the Collection spec")); + } + } else if (d.Fc(c)) { + ++a.d; + return true; + } else { + return false; + } + } + function ngb(a) { + var b, c, d; + if (a < 0) { + return 0; + } else if (a == 0) { + return 32; + } else { + d = -(a >> 16); + b = d >> 16 & 16; + c = 16 - b; + a = a >> b; + d = a - 256; + b = d >> 16 & 8; + c += b; + a <<= b; + d = a - qxe; + b = d >> 16 & 4; + c += b; + a <<= b; + d = a - Ove; + b = d >> 16 & 2; + c += b; + a <<= b; + d = a >> 14; + b = d & ~(d >> 1); + return c + 2 - b; + } + } + function RSb(a) { + HSb(); + var b, c, d, e; + GSb = new bnb(); + FSb = new Tsb(); + ESb = new bnb(); + b = (!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a); + JSb(b); + for (e = new dMd(b); e.e != e.i.gc(); ) { + d = RD(bMd(e), 27); + if (Wmb(GSb, d, 0) == -1) { + c = new bnb(); + Rmb(ESb, c); + KSb(d, c); + } + } + return ESb; + } + function sTb(a, b, c) { + var d, e, f, g; + a.a = c.b.d; + if (ZD(b, 326)) { + e = IGd(RD(b, 74), false, false); + f = ssd(e); + d = new wTb(a); + xgb(f, d); + lsd(f, e); + b.of((umd(), cld)) != null && xgb(RD(b.of(cld), 75), d); + } else { + g = RD(b, 422); + g.rh(g.nh() + a.a.a); + g.sh(g.oh() + a.a.b); + } + } + function hWc(a, b) { + var c, d, e; + e = new bnb(); + for (d = Sub(b.a, 0); d.b != d.d.c; ) { + c = RD(evb(d), 65); + c.c.g == a.g && dE(mQb(c.b, (h_c(), f_c))) !== dE(mQb(c.c, f_c)) && !yDb(new SDb(null, new Swb(e, 16)), new IWc(c)) && (ZEb(e.c, c), true); + } + _mb(e, new KWc()); + return e; + } + function fUb(a, b, c) { + var d, e, f, g; + if (ZD(b, 153) && ZD(c, 153)) { + f = RD(b, 153); + g = RD(c, 153); + return a.a[f.a][g.a] + a.a[g.a][f.a]; + } else if (ZD(b, 250) && ZD(c, 250)) { + d = RD(b, 250); + e = RD(c, 250); + if (d.a == e.a) { + return RD(mQb(e.a, (yVb(), lVb)), 17).a; + } + } + return 0; + } + function q9b(a, b) { + var c, d, e, f, g, h, i, j; + j = Kfb(UD(mQb(b, (yCc(), fCc)))); + i = a[0].n.a + a[0].o.a + a[0].d.c + j; + for (h = 1; h < a.length; h++) { + d = a[h].n; + e = a[h].o; + c = a[h].d; + f = d.a - c.b - i; + f < 0 && (d.a -= f); + g = b.f; + g.a = $wnd.Math.max(g.a, d.a + e.a); + i = d.a + e.a + c.c + j; + } + } + function Nad(a, b) { + var c, d, e, f, g, h; + d = RD(RD(Wjb(a.g, b.a), 42).a, 68); + e = RD(RD(Wjb(a.g, b.b), 42).a, 68); + f = d.b; + g = e.b; + c = Kid(f, g); + if (c >= 0) { + return c; + } + h = ejd(ojd(new rjd(g.c + g.b / 2, g.d + g.a / 2), new rjd(f.c + f.b / 2, f.d + f.a / 2))); + return -(oRb(f, g) - 1) * h; + } + function ysd(a, b, c) { + var d; + FDb(new SDb(null, (!c.a && (c.a = new C5d(F4, c, 6, 6)), new Swb(c.a, 16))), new Qsd(a, b)); + FDb(new SDb(null, (!c.n && (c.n = new C5d(I4, c, 1, 7)), new Swb(c.n, 16))), new Ssd(a, b)); + d = RD(Gxd(c, (umd(), cld)), 75); + !!d && Bjd(d, a, b); + } + function Qvd(a, b, c) { + var d, e, f; + f = Eee((lke(), jke), a.Dh(), b); + if (f) { + nke(); + RD(f, 69).xk() || (f = zfe(Qee(jke, f))); + e = (d = a.Ih(f), RD(d >= 0 ? a.Lh(d, true, true) : Qvd(a, f, true), 160)); + return RD(e, 220).Sl(b, c); + } else { + throw Adb(new agb(KHe + b.xe() + NHe)); + } + } + function WNd(a, b, c, d) { + var e, f, g, h, i; + e = a.d[b]; + if (e) { + f = e.g; + i = e.i; + if (d != null) { + for (h = 0; h < i; ++h) { + g = RD(f[h], 136); + if (g.Bi() == c && pb(d, g.ld())) { + return g; + } + } + } else { + for (h = 0; h < i; ++h) { + g = RD(f[h], 136); + if (dE(g.ld()) === dE(d)) { + return g; + } + } + } + } + return null; + } + function Nee(a, b) { + var c, d, e, f, g; + d = (!b.s && (b.s = new C5d(y7, b, 21, 17)), b.s); + f = null; + for (e = 0, g = d.i; e < g; ++e) { + c = RD(QHd(d, e), 179); + switch (yfe(Qee(a, c))) { + case 4: + case 5: + case 6: { + !f && (f = new bnb()); + ZEb(f.c, c); + break; + } + } + } + return !f ? (yob(), yob(), vob) : f; + } + function Yib(a, b) { + var c; + if (b < 0) { + throw Adb(new teb("Negative exponent")); + } + if (b == 0) { + return Kib; + } else if (b == 1 || Sib(a, Kib) || Sib(a, Oib)) { + return a; + } + if (!_ib(a, 0)) { + c = 1; + while (!_ib(a, c)) { + ++c; + } + return Wib(kjb(c * b), Yib($ib(a, c), b)); + } + return Rjb(a, b); + } + function Jnb(a, b) { + var c, d, e; + if (dE(a) === dE(b)) { + return true; + } + if (a == null || b == null) { + return false; + } + if (a.length != b.length) { + return false; + } + for (c = 0; c < a.length; ++c) { + d = a[c]; + e = b[c]; + if (!(dE(d) === dE(e) || d != null && pb(d, e))) { + return false; + } + } + return true; + } + function EYb(a) { + pYb(); + var b, c, d; + this.b = oYb; + this.c = (Cmd(), Amd); + this.f = (kYb(), jYb); + this.a = a; + BYb(this, new FYb()); + uYb(this); + for (d = new Anb(a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 86); + if (!c.d) { + b = new iYb(cD(WC(bQ, 1), rve, 86, 0, [c])); + Rmb(a.a, b); + } + } + } + function U6b(a, b, c) { + var d, e, f, g, h, i; + if (!a || a.c.length == 0) { + return null; + } + f = new VKb(b, !c); + for (e = new Anb(a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 72); + LKb(f, (i1b(), new D1b(d))); + } + g = f.i; + g.a = (i = f.n, f.e.b + i.d + i.a); + g.b = (h = f.n, f.e.a + h.b + h.c); + return f; + } + function d9b(a) { + var b, c, d, e, f, g, h; + h = t2b(a.a); + Znb(h, new i9b()); + c = null; + for (e = h, f = 0, g = e.length; f < g; ++f) { + d = e[f]; + if (d.k != (r3b(), m3b)) { + break; + } + b = RD(mQb(d, (Ywc(), hwc)), 64); + if (b != (qpd(), ppd) && b != Xod) { + continue; + } + !!c && RD(mQb(c, qwc), 15).Fc(d); + c = d; + } + } + function wTc(a, b, c) { + var d, e, f, g, h, i, j; + i = (tFb(b, a.c.length), RD(a.c[b], 339)); + Xmb(a, b); + if (i.b / 2 >= c) { + d = b; + j = (i.c + i.a) / 2; + g = j - c; + if (i.c <= j - c) { + e = new BTc(i.c, g); + Qmb(a, d++, e); + } + h = j + c; + if (h <= i.a) { + f = new BTc(h, i.a); + wFb(d, a.c.length); + XEb(a.c, d, f); + } + } + } + function mZc(a, b, c) { + var d, e, f, g, h, i; + if (!b.dc()) { + e = new Yub(); + for (i = b.Kc(); i.Ob(); ) { + h = RD(i.Pb(), 40); + Zjb(a.a, sgb(h.g), sgb(c)); + for (g = (d = Sub(new dXc(h).a.d, 0), new gXc(d)); dvb(g.a); ) { + f = RD(evb(g.a), 65).c; + Pub(e, f, e.c.b, e.c); + } + } + mZc(a, e, c + 1); + } + } + function Ude(a) { + var b; + if (!a.c && a.g == null) { + a.d = a.bj(a.f); + WGd(a, a.d); + b = a.d; + } else { + if (a.g == null) { + return true; + } else if (a.i == 0) { + return false; + } else { + b = RD(a.g[a.i - 1], 51); + } + } + if (b == a.b && null.Vm >= null.Um()) { + tId(a); + return Ude(a); + } else { + return b.Ob(); + } + } + function t_b(a) { + this.a = a; + if (a.c.i.k == (r3b(), m3b)) { + this.c = a.c; + this.d = RD(mQb(a.c.i, (Ywc(), hwc)), 64); + } else if (a.d.i.k == m3b) { + this.c = a.d; + this.d = RD(mQb(a.d.i, (Ywc(), hwc)), 64); + } else { + throw Adb(new agb("Edge " + a + " is not an external edge.")); + } + } + function O1d(a, b) { + var c, d, e; + e = a.b; + a.b = b; + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 3, e, a.b)); + if (!b) { + PAd(a, null); + Q1d(a, 0); + P1d(a, null); + } else if (b != a) { + PAd(a, b.zb); + Q1d(a, b.d); + c = (d = b.c, d == null ? b.zb : d); + P1d(a, c == null || lhb(c, b.zb) ? null : c); + } + } + function hj(a, b) { + var c; + this.e = (tm(), Qb(a), tm(), zm(a)); + this.c = (Qb(b), zm(b)); + Lb(this.e.Rd().dc() == this.c.Rd().dc()); + this.d = Uv(this.e); + this.b = Uv(this.c); + c = YC(jJ, [Nve, rve], [5, 1], 5, [this.e.Rd().gc(), this.c.Rd().gc()], 2); + this.a = c; + Zi(this); + } + function Lz(b) { + !Jz && (Jz = Mz()), Jz; + var d = b.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g, function(a) { + return Kz(a); + }); + return '"' + d + '"'; + } + function VEb(a, b, c, d, e, f) { + var g, h, i, j, k; + if (e == 0) { + return; + } + if (dE(a) === dE(c)) { + a = a.slice(b, b + e); + b = 0; + } + i = c; + for (h = b, j = b + e; h < j; ) { + g = $wnd.Math.min(h + 1e4, j); + e = g - h; + k = a.slice(h, g); + k.splice(0, 0, d, f ? e : 0); + Array.prototype.splice.apply(i, k); + h = g; + d += e; + } + } + function VGb(a) { + FGb(); + var b, c; + this.b = CGb; + this.c = EGb; + this.g = (wGb(), vGb); + this.d = (Cmd(), Amd); + this.a = a; + IGb(this); + for (c = new Anb(a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 60); + !b.a && gGb(iGb(new jGb(), cD(WC(hN, 1), rve, 60, 0, [b])), a); + b.e = new Vid(b.d); + } + } + function yTb(a) { + var b, c, d, e, f, g; + e = a.e.c.length; + d = $C(QK, Ize, 15, e, 0, 1); + for (g = new Anb(a.e); g.a < g.c.c.length; ) { + f = RD(ynb(g), 153); + d[f.a] = new Yub(); + } + for (c = new Anb(a.c); c.a < c.c.c.length; ) { + b = RD(ynb(c), 290); + d[b.c.a].Fc(b); + d[b.d.a].Fc(b); + } + return d; + } + function OMd(a, b) { + var c, d, e, f, g; + c = RD(Ywd(a.a, 4), 129); + g = c == null ? 0 : c.length; + if (b >= g) + throw Adb(new aMd(b, g)); + e = c[b]; + if (g == 1) { + d = null; + } else { + d = $C(d6, IJe, 424, g - 1, 0, 1); + hib(c, 0, d, 0, b); + f = g - b - 1; + f > 0 && hib(c, b + 1, d, b, f); + } + Bde(a, d); + Ade(a, b, e); + return e; + } + function l3d(a) { + var b, c; + if (a.f) { + while (a.n < a.o) { + b = RD(!a.j ? a.k.Xb(a.n) : a.j.$i(a.n), 76); + c = b.Lk(); + if (ZD(c, 102) && (RD(c, 19).Bb & QHe) != 0 && (!a.e || c.pk() != C4 || c.Lj() != 0) && b.md() != null) { + return true; + } else { + ++a.n; + } + } + return false; + } else { + return a.n < a.o; + } + } + function Lle() { + Lle = geb; + Jle = RD(QHd(xYd((Qle(), Ple).qb), 6), 35); + Gle = RD(QHd(xYd(Ple.qb), 3), 35); + Hle = RD(QHd(xYd(Ple.qb), 4), 35); + Ile = RD(QHd(xYd(Ple.qb), 5), 19); + vWd(Jle); + vWd(Gle); + vWd(Hle); + vWd(Ile); + Kle = new mob(cD(WC(y7, 1), lKe, 179, 0, [Jle, Gle])); + } + function rMb(a, b) { + var c; + this.d = new P2b(); + this.b = b; + this.e = new sjd(b.Lf()); + c = a.u.Hc((Pod(), Mod)); + a.u.Hc(Lod) ? a.D ? this.a = c && !b.bg() : this.a = true : a.u.Hc(Nod) ? c ? this.a = !(b.Uf().Kc().Ob() || b.Wf().Kc().Ob()) : this.a = false : this.a = false; + } + function zNb(a, b) { + var c, d, e, f; + c = a.o.a; + for (f = RD(RD(Qc(a.r, b), 21), 87).Kc(); f.Ob(); ) { + e = RD(f.Pb(), 117); + e.e.a = (d = e.b, d.pf((umd(), Gld)) ? d.ag() == (qpd(), ppd) ? -d.Mf().a - Kfb(UD(d.of(Gld))) : c + Kfb(UD(d.of(Gld))) : d.ag() == (qpd(), ppd) ? -d.Mf().a : c); + } + } + function $4b(a, b) { + var c, d, e, f; + c = RD(mQb(a, (yCc(), rAc)), 88); + f = RD(Gxd(b, GBc), 64); + e = RD(mQb(a, BBc), 101); + if (e != (Bod(), zod) && e != Aod) { + if (f == (qpd(), opd)) { + f = osd(b, c); + f == opd && (f = vpd(c)); + } + } else { + d = W4b(b); + d > 0 ? f = vpd(c) : f = spd(vpd(c)); + } + Ixd(b, GBc, f); + } + function agc(a, b) { + var c; + b.Ug("Partition preprocessing", 1); + c = RD(zDb(CDb(EDb(CDb(new SDb(null, new Swb(a.a, 16)), new egc()), new ggc()), new igc()), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + FDb(c.Oc(), new kgc()); + b.Vg(); + } + function Uoc(a, b) { + var c, d, e, f, g; + g = a.j; + b.a != b.b && _mb(g, new ypc()); + e = g.c.length / 2 | 0; + for (d = 0; d < e; d++) { + f = (tFb(d, g.c.length), RD(g.c[d], 113)); + f.c && Q3b(f.d, b.a); + } + for (c = e; c < g.c.length; c++) { + f = (tFb(c, g.c.length), RD(g.c[c], 113)); + f.c && Q3b(f.d, b.b); + } + } + function rLc(a, b, c) { + var d, e, f; + d = a.c[b.c.p][b.p]; + e = a.c[c.c.p][c.p]; + if (d.a != null && e.a != null) { + f = Jfb(d.a, e.a); + f < 0 ? uLc(a, b, c) : f > 0 && uLc(a, c, b); + return f; + } else if (d.a != null) { + uLc(a, b, c); + return -1; + } else if (e.a != null) { + uLc(a, c, b); + return 1; + } + return 0; + } + function EVc(a, b) { + var c, d, e, f, g; + e = b.b.b; + a.a = $C(QK, Ize, 15, e, 0, 1); + a.b = $C(xdb, Hye, 28, e, 16, 1); + for (g = Sub(b.b, 0); g.b != g.d.c; ) { + f = RD(evb(g), 40); + a.a[f.g] = new Yub(); + } + for (d = Sub(b.a, 0); d.b != d.d.c; ) { + c = RD(evb(d), 65); + a.a[c.b.g].Fc(c); + a.a[c.c.g].Fc(c); + } + } + function SJd(a, b) { + var c, d, e, f; + if (a.Pj()) { + c = a.Ej(); + f = a.Qj(); + ++a.j; + a.qj(c, a.Zi(c, b)); + d = a.Ij(3, null, b, c, f); + if (a.Mj()) { + e = a.Nj(b, null); + if (!e) { + a.Jj(d); + } else { + e.nj(d); + e.oj(); + } + } else { + a.Jj(d); + } + } else { + _Id(a, b); + if (a.Mj()) { + e = a.Nj(b, null); + !!e && e.oj(); + } + } + } + function oLd(a, b, c) { + var d, e, f; + if (a.Pj()) { + f = a.Qj(); + KHd(a, b, c); + d = a.Ij(3, null, c, b, f); + if (a.Mj()) { + e = a.Nj(c, null); + a.Tj() && (e = a.Uj(c, e)); + if (!e) { + a.Jj(d); + } else { + e.nj(d); + e.oj(); + } + } else { + a.Jj(d); + } + } else { + KHd(a, b, c); + if (a.Mj()) { + e = a.Nj(c, null); + !!e && e.oj(); + } + } + } + function bge(a, b) { + var c, d, e, f, g; + g = pke(a.e.Dh(), b); + e = new YHd(); + c = RD(a.g, 124); + for (f = a.i; --f >= 0; ) { + d = c[f]; + g.am(d.Lk()) && WGd(e, d); + } + !wLd(a, e) && Mvd(a.e) && eZd(a, b.Jk() ? fge(a, 6, b, (yob(), vob), null, -1, false) : fge(a, b.tk() ? 2 : 1, b, null, null, -1, false)); + } + function _7b(a, b) { + var c, d, e, f, g; + if (a.a == ($uc(), Yuc)) { + return true; + } + f = b.a.c; + c = b.a.c + b.a.b; + if (b.j) { + d = b.A; + g = d.c.c.a - d.o.a / 2; + e = f - (d.n.a + d.o.a); + if (e > g) { + return false; + } + } + if (b.q) { + d = b.C; + g = d.c.c.a - d.o.a / 2; + e = d.n.a - c; + if (e > g) { + return false; + } + } + return true; + } + function bRc(a) { + WQc(); + var b, c, d, e, f, g, h; + c = new gub(); + for (e = new Anb(a.e.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 30); + for (g = new Anb(d.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 10); + h = a.g[f.p]; + b = RD(cub(c, h), 15); + if (!b) { + b = new bnb(); + dub(c, h, b); + } + b.Fc(f); + } + } + return c; + } + function Qzd(a) { + var b; + if ((a.Db & 64) != 0) + return awd(a); + b = new Shb(awd(a)); + b.a += " (startX: "; + Khb(b, a.j); + b.a += ", startY: "; + Khb(b, a.k); + b.a += ", endX: "; + Khb(b, a.b); + b.a += ", endY: "; + Khb(b, a.c); + b.a += ", identifier: "; + Nhb(b, a.d); + b.a += ")"; + return b.a; + } + function cWd(a) { + var b; + if ((a.Db & 64) != 0) + return QAd(a); + b = new Shb(QAd(a)); + b.a += " (ordered: "; + Ohb(b, (a.Bb & 256) != 0); + b.a += ", unique: "; + Ohb(b, (a.Bb & 512) != 0); + b.a += ", lowerBound: "; + Lhb(b, a.s); + b.a += ", upperBound: "; + Lhb(b, a.t); + b.a += ")"; + return b.a; + } + function uBd(a, b, c, d, e, f, g, h) { + var i; + ZD(a.Cb, 90) && v$d(yYd(RD(a.Cb, 90)), 4); + PAd(a, c); + a.f = d; + DWd(a, e); + FWd(a, f); + xWd(a, g); + EWd(a, false); + aWd(a, true); + AWd(a, h); + _Vd(a, true); + $Vd(a, 0); + a.b = 0; + bWd(a, 1); + i = XVd(a, b, null); + !!i && i.oj(); + kXd(a, false); + return a; + } + function ZAb(a, b) { + var c, d, e, f; + c = RD(Xjb(a.a, b), 525); + if (!c) { + d = new oBb(b); + e = (gBb(), dBb) ? null : d.c; + f = zhb(e, 0, $wnd.Math.max(0, thb(e, Fhb(46)))); + nBb(d, ZAb(a, f)); + (dBb ? null : d.c).length == 0 && iBb(d, new rBb()); + $jb(a.a, dBb ? null : d.c, d); + return d; + } + return c; + } + function sRb(a, b) { + var c; + a.b = b; + a.g = new bnb(); + c = tRb(a.b); + a.e = c; + a.f = c; + a.c = Heb(TD(mQb(a.b, (YHb(), RHb)))); + a.a = UD(mQb(a.b, (umd(), Dkd))); + a.a == null && (a.a = 1); + Kfb(a.a) > 1 ? a.e *= Kfb(a.a) : a.f /= Kfb(a.a); + uRb(a); + vRb(a); + rRb(a); + pQb(a.b, (tSb(), lSb), a.g); + } + function n9b(a, b, c) { + var d, e, f, g, h, i; + d = 0; + i = c; + if (!b) { + d = c * (a.c.length - 1); + i *= -1; + } + for (f = new Anb(a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + pQb(e, (yCc(), Rzc), (Rjd(), Njd)); + e.o.a = d; + for (h = e3b(e, (qpd(), Xod)).Kc(); h.Ob(); ) { + g = RD(h.Pb(), 12); + g.n.a = d; + } + d += i; + } + } + function gZd(a, b, c) { + var d, e, f, g, h, i; + h = a.pl(c); + if (h != c) { + g = a.g[b]; + i = h; + MHd(a, b, a.Zi(b, i)); + f = g; + a.Ri(b, i, f); + if (a.al()) { + d = c; + e = a.Oj(d, null); + !RD(h, 54).Ph() && (e = a.Nj(i, e)); + !!e && e.oj(); + } + Mvd(a.e) && eZd(a, a.Ij(9, c, h, b, false)); + return h; + } else { + return c; + } + } + function rYb(a, b) { + var c, d, e, f; + for (d = new Anb(a.a.a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 194); + c.g = true; + } + for (f = new Anb(a.a.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 86); + e.k = Heb(TD(a.e.Kb(new Ptd(e, b)))); + e.d.g = e.d.g & Heb(TD(a.e.Kb(new Ptd(e, b)))); + } + return a; + } + function Rdc(a, b) { + var c, d; + if (a.c.length != 0) { + if (a.c.length == 2) { + Qdc((tFb(0, a.c.length), RD(a.c[0], 10)), (Pnd(), Lnd)); + Qdc((tFb(1, a.c.length), RD(a.c[1], 10)), Mnd); + } else { + for (d = new Anb(a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 10); + Qdc(c, b); + } + } + a.c.length = 0; + } + } + function Vnc(a) { + var b, c, d, e, f; + c = (b = RD(mfb(E3), 9), new Fsb(b, RD(WEb(b, b.length), 9), 0)); + f = RD(mQb(a, (Ywc(), Iwc)), 10); + if (f) { + for (e = new Anb(f.j); e.a < e.c.c.length; ) { + d = RD(ynb(e), 12); + dE(mQb(d, Awc)) === dE(a) && k4b(new l4b(d.b)) && zsb(c, d.j); + } + } + return c; + } + function CGc(a, b, c) { + var d, e, f, g, h; + if (a.d[c.p]) { + return; + } + for (e = new is(Mr(a3b(c).a.Kc(), new ir())); gs(e); ) { + d = RD(hs(e), 18); + h = d.d.i; + for (g = new is(Mr(Z2b(h).a.Kc(), new ir())); gs(g); ) { + f = RD(hs(g), 18); + f.c.i == b && (a.a[f.p] = true); + } + CGc(a, b, h); + } + a.d[c.p] = true; + } + function Zwd(a, b) { + var c, d, e, f, g, h, i; + d = ggb(a.Db & 254); + if (d == 1) { + a.Eb = null; + } else { + f = SD(a.Eb); + if (d == 2) { + e = Xwd(a, b); + a.Eb = f[e == 0 ? 1 : 0]; + } else { + g = $C(jJ, rve, 1, d - 1, 5, 1); + for (c = 2, h = 0, i = 0; c <= 128; c <<= 1) { + c == b ? ++h : (a.Db & c) != 0 && (g[i++] = f[h++]); + } + a.Eb = g; + } + } + a.Db &= ~b; + } + function rse(a) { + var b; + b = 0; + switch (a) { + case 105: + b = 2; + break; + case 109: + b = 8; + break; + case 115: + b = 4; + break; + case 120: + b = 16; + break; + case 117: + b = 32; + break; + case 119: + b = 64; + break; + case 70: + b = 256; + break; + case 72: + b = 128; + break; + case 88: + b = 512; + break; + case 44: + b = gwe; + } + return b; + } + function Ojb(a, b, c, d, e) { + var f, g, h, i; + if (dE(a) === dE(b) && d == e) { + Tjb(a, d, c); + return; + } + for (h = 0; h < d; h++) { + g = 0; + f = a[h]; + for (i = 0; i < e; i++) { + g = Bdb(Bdb(Ndb(Cdb(f, yxe), Cdb(b[i], yxe)), Cdb(c[h + i], yxe)), Cdb(Ydb(g), yxe)); + c[h + i] = Ydb(g); + g = Udb(g, 32); + } + c[h + e] = Ydb(g); + } + } + function tRb(a) { + var b, c, d, e, f, g, h, i, j, k, l; + k = 0; + j = 0; + e = a.a; + h = e.a.gc(); + for (d = e.a.ec().Kc(); d.Ob(); ) { + c = RD(d.Pb(), 567); + b = (c.b && CRb(c), c.a); + l = b.a; + g = b.b; + k += l + g; + j += l * g; + } + i = $wnd.Math.sqrt(400 * h * j - 4 * j + k * k) + k; + f = 2 * (100 * h - 1); + if (f == 0) { + return i; + } + return i / f; + } + function MSc(a, b) { + if (b.b != 0) { + isNaN(a.s) ? a.s = Kfb((sFb(b.b != 0), UD(b.a.a.c))) : a.s = $wnd.Math.min(a.s, Kfb((sFb(b.b != 0), UD(b.a.a.c)))); + isNaN(a.c) ? a.c = Kfb((sFb(b.b != 0), UD(b.c.b.c))) : a.c = $wnd.Math.max(a.c, Kfb((sFb(b.b != 0), UD(b.c.b.c)))); + } + } + function nzd(a) { + var b, c, d, e; + b = null; + for (d = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [(!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b), (!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c)]))); gs(d); ) { + c = RD(hs(d), 84); + e = AGd(c); + if (!b) { + b = vCd(e); + } else if (b != vCd(e)) { + return true; + } + } + return false; + } + function pLd(a, b) { + var c, d, e, f; + if (a.Pj()) { + c = a.i; + f = a.Qj(); + LHd(a, b); + d = a.Ij(3, null, b, c, f); + if (a.Mj()) { + e = a.Nj(b, null); + a.Tj() && (e = a.Uj(b, e)); + if (!e) { + a.Jj(d); + } else { + e.nj(d); + e.oj(); + } + } else { + a.Jj(d); + } + } else { + LHd(a, b); + if (a.Mj()) { + e = a.Nj(b, null); + !!e && e.oj(); + } + } + } + function ZQb(a, b) { + var c, d, e, f; + f = rAb(a.a, b.b); + if (!f) { + throw Adb(new dgb("Invalid hitboxes for scanline overlap calculation.")); + } + e = false; + for (d = a.a.a.ec().Kc(); d.Ob(); ) { + c = RD(d.Pb(), 68); + if (UQb(b.b, c)) { + bbd(a.b.a, b.b, c); + e = true; + } else { + if (e) { + break; + } + } + } + } + function whd(a) { + var b; + if (!a.a) { + throw Adb(new dgb("IDataType class expected for layout option " + a.f)); + } + b = GId(a.a); + if (b == null) { + throw Adb(new dgb("Couldn't create new instance of property '" + a.f + "'. " + DGe + (lfb(b6), b6.k) + EGe)); + } + return RD(b, 423); + } + function yvd(a) { + var b, c, d, e, f; + f = a.Ph(); + if (f) { + if (f.Vh()) { + e = Vvd(a, f); + if (e != f) { + c = a.Fh(); + d = (b = a.Fh(), b >= 0 ? a.Ah(null) : a.Ph().Th(a, -1 - b, null, null)); + a.Bh(RD(e, 54), c); + !!d && d.oj(); + a.vh() && a.wh() && c > -1 && qvd(a, new N3d(a, 9, c, f, e)); + return e; + } + } + } + return f; + } + function stb(a, b) { + var c, d, e, f, g; + f = a.b.Ce(b); + d = (c = a.a.get(f), c == null ? $C(jJ, rve, 1, 0, 5, 1) : c); + for (g = 0; g < d.length; g++) { + e = d[g]; + if (a.b.Be(b, e.ld())) { + if (d.length == 1) { + d.length = 0; + Btb(a.a, f); + } else { + d.splice(g, 1); + } + --a.c; + ++a.b.g; + return e.md(); + } + } + return null; + } + function pWb(a) { + var b, c, d, e, f, g, h, i; + g = 0; + f = a.f.e; + for (d = 0; d < f.c.length; ++d) { + h = (tFb(d, f.c.length), RD(f.c[d], 153)); + for (e = d + 1; e < f.c.length; ++e) { + i = (tFb(e, f.c.length), RD(f.c[e], 153)); + c = bjd(h.d, i.d); + b = c - a.a[h.a][i.a]; + g += a.i[h.a][i.a] * b * b; + } + } + return g; + } + function oec(a, b) { + var c; + if (nQb(b, (yCc(), UAc))) { + return; + } + c = wec(RD(mQb(b, hec), 371), RD(mQb(a, UAc), 171)); + pQb(b, hec, c); + if (gs(new is(Mr(W2b(b).a.Kc(), new ir())))) { + return; + } + switch (c.g) { + case 1: + pQb(b, UAc, (cxc(), Zwc)); + break; + case 2: + pQb(b, UAc, (cxc(), _wc)); + } + } + function aoc(a, b) { + var c; + Snc(a); + a.a = (c = new Ri(), FDb(new SDb(null, new Swb(b.d, 16)), new zoc(c)), c); + Xnc(a, RD(mQb(b.b, (yCc(), CAc)), 349)); + Znc(a); + Ync(a); + Wnc(a); + $nc(a); + _nc(a, b); + FDb(EDb(new SDb(null, gj(ej(a.b).a)), new poc()), new roc()); + b.a = false; + a.a = null; + } + function B$c() { + B$c = geb; + r$c = new lGd(REe, (Geb(), false)); + s$c = new lGd(SEe, 7); + sgb(0); + y$c = new lGd(TEe, sgb(0)); + v$c = new lGd(UEe, sgb(-1)); + A$c = (s_c(), r_c); + z$c = new lGd(VEe, A$c); + u$c = (LZc(), IZc); + t$c = new lGd(WEe, u$c); + x$c = (A_c(), z_c); + w$c = new lGd(XEe, x$c); + } + function _Bd() { + FBd.call(this, $He, (bvd(), avd)); + this.p = null; + this.a = null; + this.f = null; + this.n = null; + this.g = null; + this.c = null; + this.i = null; + this.j = null; + this.d = null; + this.b = null; + this.e = null; + this.k = null; + this.o = null; + this.s = null; + this.q = false; + this.r = false; + } + function aGd() { + aGd = geb; + _Fd = new bGd(FBe, 0); + YFd = new bGd("INSIDE_SELF_LOOPS", 1); + ZFd = new bGd("MULTI_EDGES", 2); + XFd = new bGd("EDGE_LABELS", 3); + $Fd = new bGd("PORTS", 4); + VFd = new bGd("COMPOUND", 5); + UFd = new bGd("CLUSTERS", 6); + WFd = new bGd("DISCONNECTED", 7); + } + function RJd(a, b, c) { + var d, e, f; + if (a.Pj()) { + f = a.Qj(); + ++a.j; + a.qj(b, a.Zi(b, c)); + d = a.Ij(3, null, c, b, f); + if (a.Mj()) { + e = a.Nj(c, null); + if (!e) { + a.Jj(d); + } else { + e.nj(d); + e.oj(); + } + } else { + a.Jj(d); + } + } else { + ++a.j; + a.qj(b, a.Zi(b, c)); + if (a.Mj()) { + e = a.Nj(c, null); + !!e && e.oj(); + } + } + } + function _ib(a, b) { + var c, d, e; + if (b == 0) { + return (a.a[0] & 1) != 0; + } + if (b < 0) { + throw Adb(new teb("Negative bit address")); + } + e = b >> 5; + if (e >= a.d) { + return a.e < 0; + } + c = a.a[e]; + b = 1 << (b & 31); + if (a.e < 0) { + d = Uib(a); + if (e < d) { + return false; + } else + d == e ? c = -c : c = ~c; + } + return (c & b) != 0; + } + function Zdd(a, b, c, d) { + var e; + RD(c.b, 68); + RD(c.b, 68); + RD(d.b, 68); + RD(d.b, 68); + e = ojd(ajd(RD(c.b, 68).c), RD(d.b, 68).c); + kjd(e, PQb(RD(c.b, 68), RD(d.b, 68), e)); + RD(d.b, 68); + RD(d.b, 68); + RD(d.b, 68).c.a + e.a; + RD(d.b, 68).c.b + e.b; + RD(d.b, 68); + Umb(d.a, new ced(a, b, d)); + } + function V$d(a, b) { + var c, d, e, f, g, h, i; + f = b.e; + if (f) { + c = yvd(f); + d = RD(a.g, 689); + for (g = 0; g < a.i; ++g) { + i = d[g]; + if (h2d(i) == c) { + e = (!i.d && (i.d = new XZd(o7, i, 1)), i.d); + h = RD(c.Mh(jwd(f, f.Cb, f.Db >> 16)), 15).dd(f); + if (h < e.i) { + return V$d(a, RD(QHd(e, h), 89)); + } + } + } + } + return b; + } + function feb(a, b, c) { + var d = eeb, h; + var e = d[a]; + var f = e instanceof Array ? e[0] : null; + if (e && !f) { + _ = e; + } else { + _ = (h = b && b.prototype, !h && (h = eeb[b]), ieb(h)); + _.Sm = c; + !b && (_.Tm = keb); + d[a] = _; + } + for (var g = 3; g < arguments.length; ++g) { + arguments[g].prototype = _; + } + f && (_.Rm = f); + } + function gs(a) { + var b; + while (!RD(Qb(a.a), 51).Ob()) { + a.d = fs(a); + if (!a.d) { + return false; + } + a.a = RD(a.d.Pb(), 51); + if (ZD(a.a, 38)) { + b = RD(a.a, 38); + a.a = b.a; + !a.b && (a.b = new wmb()); + hmb(a.b, a.d); + if (b.b) { + while (!nmb(b.b)) { + hmb(a.b, RD(tmb(b.b), 51)); + } + } + a.d = b.d; + } + } + return true; + } + function xJb(a, b) { + var c, d, e, f; + e = 1; + b.j = true; + f = null; + for (d = new Anb(CIb(b)); d.a < d.c.c.length; ) { + c = RD(ynb(d), 218); + if (!a.c[c.c]) { + a.c[c.c] = true; + f = oIb(c, b); + if (c.f) { + e += xJb(a, f); + } else if (!f.j && c.a == c.e.e - c.d.e) { + c.f = true; + Ysb(a.p, c); + e += xJb(a, f); + } + } + } + return e; + } + function OYb(a) { + var b, c, d; + for (c = new Anb(a.a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 86); + d = (uFb(0), 0); + if (d > 0) { + !(Dmd(a.a.c) && b.n.d) && !(Emd(a.a.c) && b.n.b) && (b.g.d += $wnd.Math.max(0, d / 2 - 0.5)); + !(Dmd(a.a.c) && b.n.a) && !(Emd(a.a.c) && b.n.c) && (b.g.a -= d - 1); + } + } + } + function c7b(a) { + var b, c, d, e, f; + e = new bnb(); + f = d7b(a, e); + b = RD(mQb(a, (Ywc(), Iwc)), 10); + if (b) { + for (d = new Anb(b.j); d.a < d.c.c.length; ) { + c = RD(ynb(d), 12); + dE(mQb(c, Awc)) === dE(a) && (f = $wnd.Math.max(f, d7b(c, e))); + } + } + e.c.length == 0 || pQb(a, ywc, f); + return f != -1 ? e : null; + } + function rcc(a, b, c) { + var d, e, f, g, h, i; + f = RD(Vmb(b.e, 0), 18).c; + d = f.i; + e = d.k; + i = RD(Vmb(c.g, 0), 18).d; + g = i.i; + h = g.k; + e == (r3b(), o3b) ? pQb(a, (Ywc(), vwc), RD(mQb(d, vwc), 12)) : pQb(a, (Ywc(), vwc), f); + h == o3b ? pQb(a, (Ywc(), wwc), RD(mQb(g, wwc), 12)) : pQb(a, (Ywc(), wwc), i); + } + function ysc(a) { + var b, c, d; + this.c = a; + d = RD(mQb(a, (yCc(), rAc)), 88); + b = Kfb(UD(mQb(a, Tzc))); + c = Kfb(UD(mQb(a, oCc))); + d == (Cmd(), ymd) || d == zmd || d == Amd ? this.b = b * c : this.b = 1 / (b * c); + this.j = Kfb(UD(mQb(a, cCc))); + this.e = Kfb(UD(mQb(a, bCc))); + this.f = a.b.c.length; + } + function BD(a, b) { + var c, d, e, f, g; + b &= 63; + c = a.h; + d = (c & fxe) != 0; + d && (c |= -1048576); + if (b < 22) { + g = c >> b; + f = a.m >> b | c << 22 - b; + e = a.l >> b | a.m << 22 - b; + } else if (b < 44) { + g = d ? exe : 0; + f = c >> b - 22; + e = a.m >> b - 22 | c << 44 - b; + } else { + g = d ? exe : 0; + f = d ? dxe : 0; + e = c >> b - 44; + } + return hD(e & dxe, f & dxe, g & exe); + } + function ORb(a) { + var b, c, d, e, f, g; + this.c = new bnb(); + this.d = a; + d = oxe; + e = oxe; + b = pxe; + c = pxe; + for (g = Sub(a, 0); g.b != g.d.c; ) { + f = RD(evb(g), 8); + d = $wnd.Math.min(d, f.a); + e = $wnd.Math.min(e, f.b); + b = $wnd.Math.max(b, f.a); + c = $wnd.Math.max(c, f.b); + } + this.a = new Uid(d, e, b - d, c - e); + } + function Udc(a, b) { + var c, d, e, f, g, h; + for (f = new Anb(a.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 30); + for (h = new Anb(e.a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 10); + g.k == (r3b(), n3b) && Qdc(g, b); + for (d = new is(Mr(a3b(g).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + Pdc(c, b); + } + } + } + } + function nec(a, b) { + var c, d, e; + b.Ug("Layer constraint preprocessing", 1); + c = new bnb(); + e = new Jkb(a.a, 0); + while (e.b < e.d.gc()) { + d = (sFb(e.b < e.d.gc()), RD(e.d.Xb(e.c = e.b++), 10)); + if (mec(d)) { + kec(d); + ZEb(c.c, d); + Ckb(e); + } + } + c.c.length == 0 || pQb(a, (Ywc(), lwc), c); + b.Vg(); + } + function $Hc(a) { + var b, c; + a.e = $C(kE, Pwe, 28, a.p.c.length, 15, 1); + a.k = $C(kE, Pwe, 28, a.p.c.length, 15, 1); + for (c = new Anb(a.p); c.a < c.c.c.length; ) { + b = RD(ynb(c), 10); + a.e[b.p] = Kr(new is(Mr(Z2b(b).a.Kc(), new ir()))); + a.k[b.p] = Kr(new is(Mr(a3b(b).a.Kc(), new ir()))); + } + } + function bIc(a) { + var b, c, d, e, f, g; + e = 0; + a.q = new bnb(); + b = new _sb(); + for (g = new Anb(a.p); g.a < g.c.c.length; ) { + f = RD(ynb(g), 10); + f.p = e; + for (d = new is(Mr(a3b(f).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + Ysb(b, c.d.i); + } + b.a.Bc(f) != null; + Rmb(a.q, new btb(b)); + b.a.$b(); + ++e; + } + } + function pPd(a, b) { + var c, d, e, f, g, h, i, j, k; + if (a.a.f > 0 && ZD(b, 44)) { + a.a._j(); + j = RD(b, 44); + i = j.ld(); + f = i == null ? 0 : tb(i); + g = bOd(a.a, f); + c = a.a.d[g]; + if (c) { + d = RD(c.g, 379); + k = c.i; + for (h = 0; h < k; ++h) { + e = d[h]; + if (e.Bi() == f && e.Fb(j)) { + pPd(a, j); + return true; + } + } + } + } + return false; + } + function Nje(a) { + var b, c, d, e, f, g, h; + b = a.qi(AKe); + if (b) { + h = WD($Nd((!b.b && (b.b = new SVd((JTd(), FTd), C8, b)), b.b), "settingDelegates")); + if (h != null) { + c = new bnb(); + for (e = vhb(h, "\\w+"), f = 0, g = e.length; f < g; ++f) { + d = e[f]; + ZEb(c.c, d); + } + return c; + } + } + return yob(), yob(), vob; + } + function Ync(a) { + var b, c, d, e; + for (e = RD(Qc(a.a, (Bnc(), ync)), 15).Kc(); e.Ob(); ) { + d = RD(e.Pb(), 105); + c = (b = Ec(d.k), b.Hc((qpd(), Yod)) ? b.Hc(Xod) ? b.Hc(npd) ? b.Hc(ppd) ? null : Jnc : Lnc : Knc : Inc); + Qnc(a, d, c[0], (joc(), goc), 0); + Qnc(a, d, c[1], hoc, 1); + Qnc(a, d, c[2], ioc, 1); + } + } + function Kqc(a, b) { + var c, d; + c = Lqc(b); + Oqc(a, b, c); + UTc(a.a, RD(mQb(Y2b(b.b), (Ywc(), Lwc)), 234)); + Jqc(a); + Iqc(a, b); + d = $C(kE, Pwe, 28, b.b.j.c.length, 15, 1); + Rqc(a, b, (qpd(), Yod), d, c); + Rqc(a, b, Xod, d, c); + Rqc(a, b, npd, d, c); + Rqc(a, b, ppd, d, c); + a.a = null; + a.c = null; + a.b = null; + } + function Yyd(a, b, c) { + switch (b) { + case 7: + !a.e && (a.e = new Yie(G4, a, 7, 4)); + sLd(a.e); + !a.e && (a.e = new Yie(G4, a, 7, 4)); + YGd(a.e, RD(c, 16)); + return; + case 8: + !a.d && (a.d = new Yie(G4, a, 8, 5)); + sLd(a.d); + !a.d && (a.d = new Yie(G4, a, 8, 5)); + YGd(a.d, RD(c, 16)); + return; + } + xyd(a, b, c); + } + function Rt(a, b) { + var c, d, e, f, g; + if (dE(b) === dE(a)) { + return true; + } + if (!ZD(b, 15)) { + return false; + } + g = RD(b, 15); + if (a.gc() != g.gc()) { + return false; + } + f = g.Kc(); + for (d = a.Kc(); d.Ob(); ) { + c = d.Pb(); + e = f.Pb(); + if (!(dE(c) === dE(e) || c != null && pb(c, e))) { + return false; + } + } + return true; + } + function jac(a, b) { + var c, d, e, f; + f = RD(zDb(EDb(EDb(new SDb(null, new Swb(b.b, 16)), new pac()), new rac()), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + f.Jc(new tac()); + c = 0; + for (e = f.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 12); + d.p == -1 && iac(a, d, c++); + } + } + function KDc(a) { + switch (a.g) { + case 0: + return new iQc(); + case 1: + return new DNc(); + case 2: + return new TNc(); + case 3: + return new aRc(); + case 4: + return new yOc(); + default: + throw Adb(new agb("No implementation is available for the node placer " + (a.f != null ? a.f : "" + a.g))); + } + } + function Qtc(a) { + switch (a.g) { + case 0: + return new UFc(); + case 1: + return new NFc(); + case 2: + return new cGc(); + case 3: + return new jGc(); + case 4: + return new YFc(); + default: + throw Adb(new agb("No implementation is available for the cycle breaker " + (a.f != null ? a.f : "" + a.g))); + } + } + function I_c(a, b) { + var c, d, e, f, g; + d = new Yub(); + Pub(d, b, d.c.b, d.c); + do { + c = (sFb(d.b != 0), RD(Wub(d, d.a.a), 40)); + a.b[c.g] = 1; + for (f = Sub(c.d, 0); f.b != f.d.c; ) { + e = RD(evb(f), 65); + g = e.c; + a.b[g.g] == 1 ? Mub(a.a, e) : a.b[g.g] == 2 ? a.b[g.g] = 1 : Pub(d, g, d.c.b, d.c); + } + } while (d.b != 0); + } + function $$b(a, b, c) { + var d; + d = null; + !!b && (d = b.d); + k_b(a, new eZb(b.n.a - d.b + c.a, b.n.b - d.d + c.b)); + k_b(a, new eZb(b.n.a - d.b + c.a, b.n.b + b.o.b + d.a + c.b)); + k_b(a, new eZb(b.n.a + b.o.a + d.c + c.a, b.n.b - d.d + c.b)); + k_b(a, new eZb(b.n.a + b.o.a + d.c + c.a, b.n.b + b.o.b + d.a + c.b)); + } + function iac(a, b, c) { + var d, e, f; + b.p = c; + for (f = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [new T3b(b), new _3b(b)]))); gs(f); ) { + d = RD(hs(f), 12); + d.p == -1 && iac(a, d, c); + } + if (b.i.k == (r3b(), o3b)) { + for (e = new Anb(b.i.j); e.a < e.c.c.length; ) { + d = RD(ynb(e), 12); + d != b && d.p == -1 && iac(a, d, c); + } + } + } + function cRc(a, b) { + var c, d, e, f, g, h; + d = new gub(); + g = Xx(new mob(a.g)); + for (f = g.a.ec().Kc(); f.Ob(); ) { + e = RD(f.Pb(), 10); + if (!e) { + b.bh("There are no classes in a balanced layout."); + break; + } + h = a.j[e.p]; + c = RD(cub(d, h), 15); + if (!c) { + c = new bnb(); + dub(d, h, c); + } + c.Fc(e); + } + return d; + } + function RTc(a) { + var b, c, d, e, f; + e = RD(zDb(BDb(ODb(a)), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + d = Hze; + if (e.gc() >= 2) { + c = e.Kc(); + b = UD(c.Pb()); + while (c.Ob()) { + f = b; + b = UD(c.Pb()); + d = $wnd.Math.min(d, (uFb(b), b) - (uFb(f), f)); + } + } + return d; + } + function iWc(a, b) { + var c, d, e; + e = new bnb(); + for (d = Sub(b.a, 0); d.b != d.d.c; ) { + c = RD(evb(d), 65); + c.b.g == a.g && !lhb(c.b.c, IEe) && dE(mQb(c.b, (h_c(), f_c))) !== dE(mQb(c.c, f_c)) && !yDb(new SDb(null, new Swb(e, 16)), new OWc(c)) && (ZEb(e.c, c), true); + } + _mb(e, new QWc()); + return e; + } + function $u(a, b) { + var c, d, e; + if (dE(b) === dE(Qb(a))) { + return true; + } + if (!ZD(b, 15)) { + return false; + } + d = RD(b, 15); + e = a.gc(); + if (e != d.gc()) { + return false; + } + if (ZD(d, 59)) { + for (c = 0; c < e; c++) { + if (!Hb(a.Xb(c), d.Xb(c))) { + return false; + } + } + return true; + } else { + return Cr(a.Kc(), d.Kc()); + } + } + function Scc(a, b, c, d, e, f) { + var g, h, i, j; + h = !QDb(CDb(a.Oc(), new PAb(new Wcc()))).Bd((xDb(), wDb)); + g = a; + f == (Cmd(), Bmd) && (g = hv(g)); + for (j = g.Kc(); j.Ob(); ) { + i = RD(j.Pb(), 72); + i.n.a = b.a; + h ? i.n.b = b.b + (d.b - i.o.b) / 2 : e ? i.n.b = b.b : i.n.b = b.b + d.b - i.o.b; + b.a += i.o.a + c; + } + } + function Tgc(a, b) { + var c, d, e, f, g; + b.Ug("Port side processing", 1); + for (g = new Anb(a.a); g.a < g.c.c.length; ) { + e = RD(ynb(g), 10); + Ugc(e); + } + for (d = new Anb(a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 30); + for (f = new Anb(c.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + Ugc(e); + } + } + b.Vg(); + } + function bEd(a, b, c) { + var d, e, f, g, h, i, j; + if (c) { + f = c.a.length; + d = new vue(f); + for (h = (d.b - d.a) * d.c < 0 ? (uue(), tue) : new Rue(d); h.Ob(); ) { + g = RD(h.Pb(), 17); + i = xDd(c, g.a); + if (i) { + j = FGd(zDd(i, hIe), b); + Zjb(a.f, j, i); + e = uIe in i.a; + e && jyd(j, zDd(i, uIe)); + GEd(i, j); + HEd(i, j); + } + } + } + } + function MWb(a, b, c) { + var d, e, f, g, h; + h = c; + !h && (h = Nqd(new Oqd(), 0)); + h.Ug(EAe, 1); + cXb(a.c, b); + g = H_b(a.a, b); + if (g.gc() == 1) { + OWb(RD(g.Xb(0), 36), h); + } else { + f = 1 / g.gc(); + for (e = g.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 36); + if (c.$g()) { + return; + } + OWb(d, h.eh(f)); + } + } + F_b(a.a, g, b); + PWb(b); + h.Vg(); + } + function Hic(a, b, c) { + var d, e, f, g, h; + e = a.f; + !e && (e = RD(a.a.a.ec().Kc().Pb(), 60)); + Iic(e, b, c); + if (a.a.a.gc() == 1) { + return; + } + d = b * c; + for (g = a.a.a.ec().Kc(); g.Ob(); ) { + f = RD(g.Pb(), 60); + if (f != e) { + h = $jc(f); + if (h.f.d) { + f.d.d += d + Tye; + f.d.a -= d + Tye; + } else + h.f.a && (f.d.a -= d + Tye); + } + } + } + function kTb(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n; + g = c - a; + h = d - b; + f = $wnd.Math.atan2(g, h); + i = f + Gze; + j = f - Gze; + k = e * $wnd.Math.sin(i) + a; + m = e * $wnd.Math.cos(i) + b; + l = e * $wnd.Math.sin(j) + a; + n = e * $wnd.Math.cos(j) + b; + return dv(cD(WC(l3, 1), Nve, 8, 0, [new rjd(k, m), new rjd(l, n)])); + } + function mQc(a, b, c, d) { + var e, f, g, h, i, j, k, l; + e = c; + k = b; + f = k; + do { + f = a.a[f.p]; + h = (l = a.g[f.p], Kfb(a.p[l.p]) + Kfb(a.d[f.p]) - f.d.d); + i = pQc(f, d); + if (i) { + g = (j = a.g[i.p], Kfb(a.p[j.p]) + Kfb(a.d[i.p]) + i.o.b + i.d.a); + e = $wnd.Math.min(e, h - (g + bFc(a.k, f, i))); + } + } while (k != f); + return e; + } + function nQc(a, b, c, d) { + var e, f, g, h, i, j, k, l; + e = c; + k = b; + f = k; + do { + f = a.a[f.p]; + g = (l = a.g[f.p], Kfb(a.p[l.p]) + Kfb(a.d[f.p]) + f.o.b + f.d.a); + i = oQc(f, d); + if (i) { + h = (j = a.g[i.p], Kfb(a.p[j.p]) + Kfb(a.d[i.p]) - i.d.d); + e = $wnd.Math.min(e, h - (g + bFc(a.k, f, i))); + } + } while (k != f); + return e; + } + function r9c(a, b) { + var c; + b.Ug("Equal Whitespace Eliminator", 1); + if (Hxd(a, (X6c(), V6c))) { + w9c(RD(Gxd(a, V6c), 15), Kfb(UD(Gxd(a, O6c))), (c = Kfb(UD(Gxd(a, M6c))), Kfb(UD(Gxd(a, (X7c(), Q7c)))), c)); + } else { + throw Adb(new Jed("The graph does not contain rows.")); + } + b.Vg(); + } + function Gxd(a, b) { + var c, d; + d = (!a.o && (a.o = new DVd((pvd(), mvd), X4, a, 0)), $Nd(a.o, b)); + if (d != null) { + return d; + } + c = b.Sg(); + ZD(c, 4) && (c == null ? (!a.o && (a.o = new DVd((pvd(), mvd), X4, a, 0)), jOd(a.o, b)) : (!a.o && (a.o = new DVd((pvd(), mvd), X4, a, 0)), fOd(a.o, b, c)), a); + return c; + } + function dod() { + dod = geb; + Xnd = new eod("H_LEFT", 0); + Wnd = new eod("H_CENTER", 1); + Znd = new eod("H_RIGHT", 2); + cod = new eod("V_TOP", 3); + bod = new eod("V_CENTER", 4); + aod = new eod("V_BOTTOM", 5); + $nd = new eod("INSIDE", 6); + _nd = new eod("OUTSIDE", 7); + Ynd = new eod("H_PRIORITY", 8); + } + function jJb(a, b) { + var c, d, e, f, g, h, i; + if (!b.f) { + throw Adb(new agb("The input edge is not a tree edge.")); + } + f = null; + e = lve; + for (d = new Anb(a.d); d.a < d.c.c.length; ) { + c = RD(ynb(d), 218); + h = c.d; + i = c.e; + if (oJb(a, h, b) && !oJb(a, i, b)) { + g = i.e - h.e - c.a; + if (g < e) { + e = g; + f = c; + } + } + } + return f; + } + function sWb(a) { + var b, c, d, e, f, g; + if (a.f.e.c.length <= 1) { + return; + } + b = 0; + e = pWb(a); + c = oxe; + do { + b > 0 && (e = c); + for (g = new Anb(a.f.e); g.a < g.c.c.length; ) { + f = RD(ynb(g), 153); + if (Heb(TD(mQb(f, (dWb(), WVb))))) { + continue; + } + d = oWb(a, f); + $id(hjd(f.d), d); + } + c = pWb(a); + } while (!rWb(a, b++, e, c)); + } + function Ymc(a, b) { + var c, d, e, f, g; + f = a.g.a; + g = a.g.b; + for (d = new Anb(a.d); d.a < d.c.c.length; ) { + c = RD(ynb(d), 72); + e = c.n; + a.a == (enc(), bnc) || a.i == (qpd(), Xod) ? e.a = f : a.a == cnc || a.i == (qpd(), ppd) ? e.a = f + a.j.a - c.o.a : e.a = f + (a.j.a - c.o.a) / 2; + e.b = g; + $id(e, b); + g += c.o.b + a.e; + } + } + function BEd(a, b) { + var c, d, e, f, g, h, i, j, k, l; + j = a; + i = yDd(j, "individualSpacings"); + if (i) { + d = Hxd(b, (umd(), amd)); + g = !d; + if (g) { + e = new dtd(); + Ixd(b, amd, e); + } + h = RD(Gxd(b, amd), 385); + l = i; + f = null; + !!l && (f = (k = oC(l, $C(qJ, Nve, 2, 0, 6, 1)), new CC(l, k))); + if (f) { + c = new dFd(l, h); + xgb(f, c); + } + } + } + function FEd(a, b) { + var c, d, e, f, g, h, i, j, k, l, m; + i = null; + l = a; + k = null; + if (DIe in l.a || EIe in l.a || nIe in l.a) { + j = null; + m = EGd(b); + g = yDd(l, DIe); + c = new gFd(m); + cEd(c.a, g); + h = yDd(l, EIe); + d = new AFd(m); + nEd(d.a, h); + f = wDd(l, nIe); + e = new DFd(m); + j = (oEd(e.a, f), f); + k = j; + } + i = k; + return i; + } + function ox(a, b) { + var c, d, e; + if (b === a) { + return true; + } + if (ZD(b, 552)) { + e = RD(b, 849); + if (a.a.d != e.a.d || Ih(a).gc() != Ih(e).gc()) { + return false; + } + for (d = Ih(e).Kc(); d.Ob(); ) { + c = RD(d.Pb(), 425); + if (Qw(a, c.a.ld()) != RD(c.a.md(), 16).gc()) { + return false; + } + } + return true; + } + return false; + } + function sPb(a) { + var b, c, d, e; + d = RD(a.a, 17).a; + e = RD(a.b, 17).a; + b = d; + c = e; + if (d == 0 && e == 0) { + c -= 1; + } else { + if (d == -1 && e <= 0) { + b = 0; + c -= 2; + } else { + if (d <= 0 && e > 0) { + b -= 1; + c -= 1; + } else { + if (d >= 0 && e < 0) { + b += 1; + c += 1; + } else { + if (d > 0 && e >= 0) { + b -= 1; + c += 1; + } else { + b += 1; + c -= 1; + } + } + } + } + } + return new Ptd(sgb(b), sgb(c)); + } + function nNc(a, b) { + if (a.c < b.c) { + return -1; + } else if (a.c > b.c) { + return 1; + } else if (a.b < b.b) { + return -1; + } else if (a.b > b.b) { + return 1; + } else if (a.a != b.a) { + return tb(a.a) - tb(b.a); + } else if (a.d == (sNc(), rNc) && b.d == qNc) { + return -1; + } else if (a.d == qNc && b.d == rNc) { + return 1; + } + return 0; + } + function ARc(a, b) { + var c, d, e, f, g; + f = b.a; + f.c.i == b.b ? g = f.d : g = f.c; + f.c.i == b.b ? d = f.c : d = f.d; + e = lQc(a.a, g, d); + if (e > 0 && e < Hze) { + c = mQc(a.a, d.i, e, a.c); + rQc(a.a, d.i, -c); + return c > 0; + } else if (e < 0 && -e < Hze) { + c = nQc(a.a, d.i, -e, a.c); + rQc(a.a, d.i, c); + return c > 0; + } + return false; + } + function X9c(a, b, c, d) { + var e, f, g, h, i, j, k, l; + e = (b - a.d) / a.c.c.length; + f = 0; + a.a += c; + a.d = b; + for (l = new Anb(a.c); l.a < l.c.c.length; ) { + k = RD(ynb(l), 27); + j = k.g; + i = k.f; + Dyd(k, k.i + f * e); + Eyd(k, k.j + d * c); + Cyd(k, k.g + e); + Ayd(k, a.a); + ++f; + h = k.g; + g = k.f; + Jsd(k, new rjd(h, g), new rjd(j, i)); + } + } + function vAd(a) { + var b, c, d, e, f, g, h; + if (a == null) { + return null; + } + h = a.length; + e = (h + 1) / 2 | 0; + g = $C(gE, YHe, 28, e, 15, 1); + h % 2 != 0 && (g[--e] = JAd((BFb(h - 1, a.length), a.charCodeAt(h - 1)))); + for (c = 0, d = 0; c < e; ++c) { + b = JAd(ihb(a, d++)); + f = JAd(ihb(a, d++)); + g[c] = (b << 4 | f) << 24 >> 24; + } + return g; + } + function Bfb(a) { + if (a.ze()) { + var b = a.c; + b.Ae() ? a.o = "[" + b.n : !b.ze() ? a.o = "[L" + b.xe() + ";" : a.o = "[" + b.xe(); + a.b = b.we() + "[]"; + a.k = b.ye() + "[]"; + return; + } + var c = a.j; + var d = a.d; + d = d.split("/"); + a.o = Efb(".", [c, Efb("$", d)]); + a.b = Efb(".", [c, Efb(".", d)]); + a.k = d[d.length - 1]; + } + function hJb(a, b) { + var c, d, e, f, g; + g = null; + for (f = new Anb(a.e.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 125); + if (e.b.a.c.length == e.g.a.c.length) { + d = e.e; + g = sJb(e); + for (c = e.e - RD(g.a, 17).a + 1; c < e.e + RD(g.b, 17).a; c++) { + b[c] < b[d] && (d = c); + } + if (b[d] < b[e.e]) { + --b[e.e]; + ++b[d]; + e.e = d; + } + } + } + } + function qQc(a) { + var b, c, d, e, f, g, h, i; + e = oxe; + d = pxe; + for (c = new Anb(a.e.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 30); + for (g = new Anb(b.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 10); + i = Kfb(a.p[f.p]); + h = i + Kfb(a.b[a.g[f.p].p]); + e = $wnd.Math.min(e, i); + d = $wnd.Math.max(d, h); + } + } + return d - e; + } + function nSd(a) { + gSd(); + var b, c, d, e; + d = qhb(a, Fhb(35)); + b = d == -1 ? a : (AFb(0, d, a.length), a.substr(0, d)); + c = d == -1 ? null : (BFb(d + 1, a.length + 1), a.substr(d + 1)); + e = KSd(fSd, b); + if (!e) { + e = ASd(b); + LSd(fSd, b, e); + c != null && (e = hSd(e, c)); + } else + c != null && (e = hSd(e, (uFb(c), c))); + return e; + } + function Ree(a, b, c, d) { + var e, f, g, h, j; + e = Fee(a, b); + for (h = 0, j = e.gc(); h < j; ++h) { + f = RD(e.Xb(h), 179); + if (lhb(d, Afe(Qee(a, f)))) { + g = Bfe(Qee(a, f)); + if (c == null) { + if (g == null) { + return f; + } + } else if (lhb(c, g)) { + return f; + } else + ; + } + } + return null; + } + function See(a, b, c, d) { + var e, f, g, h, j; + e = Gee(a, b); + for (h = 0, j = e.gc(); h < j; ++h) { + f = RD(e.Xb(h), 179); + if (lhb(d, Afe(Qee(a, f)))) { + g = Bfe(Qee(a, f)); + if (c == null) { + if (g == null) { + return f; + } + } else if (lhb(c, g)) { + return f; + } else + ; + } + } + return null; + } + function Pge(a, b, c) { + var d, e, f, g, h, i; + g = new YHd(); + h = pke(a.e.Dh(), b); + d = RD(a.g, 124); + nke(); + if (RD(b, 69).xk()) { + for (f = 0; f < a.i; ++f) { + e = d[f]; + h.am(e.Lk()) && WGd(g, e); + } + } else { + for (f = 0; f < a.i; ++f) { + e = d[f]; + if (h.am(e.Lk())) { + i = e.md(); + WGd(g, c ? Bge(a, b, f, g.i, i) : i); + } + } + } + return WHd(g); + } + function Kje(a) { + var b, c, d, e, f, g, h; + if (a) { + b = a.qi(AKe); + if (b) { + g = WD($Nd((!b.b && (b.b = new SVd((JTd(), FTd), C8, b)), b.b), "conversionDelegates")); + if (g != null) { + h = new bnb(); + for (d = vhb(g, "\\w+"), e = 0, f = d.length; e < f; ++e) { + c = d[e]; + ZEb(h.c, c); + } + return h; + } + } + } + return yob(), yob(), vob; + } + function WXb(a, b) { + var c, d, e, f, g, h, i, j; + g = b == 1 ? MXb : LXb; + for (f = g.a.ec().Kc(); f.Ob(); ) { + e = RD(f.Pb(), 88); + for (i = RD(Qc(a.f.c, e), 21).Kc(); i.Ob(); ) { + h = RD(i.Pb(), 42); + d = RD(h.b, 86); + j = RD(h.a, 194); + c = j.c; + switch (e.g) { + case 2: + case 1: + d.g.d += c; + break; + case 4: + case 3: + d.g.c += c; + } + } + } + } + function idc(a, b) { + var c, d, e, f, g; + c = new Zrb(ZW); + for (e = (btc(), cD(WC(ZW, 1), jwe, 232, 0, [Zsc, _sc, Ysc, $sc, atc, Xsc])), f = 0, g = e.length; f < g; ++f) { + d = e[f]; + Xrb(c, d, new bnb()); + } + FDb(GDb(CDb(EDb(new SDb(null, new Swb(a.b, 16)), new ydc()), new Adc()), new Cdc(b)), new Edc(c)); + return c; + } + function n3c(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + for (f = b.Kc(); f.Ob(); ) { + e = RD(f.Pb(), 27); + k = e.i + e.g / 2; + m = e.j + e.f / 2; + i = a.f; + g = i.i + i.g / 2; + h = i.j + i.f / 2; + j = k - g; + l = m - h; + d = $wnd.Math.sqrt(j * j + l * l); + j *= a.e / d; + l *= a.e / d; + if (c) { + k -= j; + m -= l; + } else { + k += j; + m += l; + } + Dyd(e, k - e.g / 2); + Eyd(e, m - e.f / 2); + } + } + function vte(a) { + var b, c, d; + if (a.c) + return; + if (a.b == null) + return; + for (b = a.b.length - 4; b >= 0; b -= 2) { + for (c = 0; c <= b; c += 2) { + if (a.b[c] > a.b[c + 2] || a.b[c] === a.b[c + 2] && a.b[c + 1] > a.b[c + 3]) { + d = a.b[c + 2]; + a.b[c + 2] = a.b[c]; + a.b[c] = d; + d = a.b[c + 3]; + a.b[c + 3] = a.b[c + 1]; + a.b[c + 1] = d; + } + } + } + a.c = true; + } + function nKc(a, b) { + var c, d, e, f, g, h, i, j, k; + j = -1; + k = 0; + for (g = a, h = 0, i = g.length; h < i; ++h) { + f = g[h]; + c = new hrc(j == -1 ? a[0] : a[j], b, (lDc(), kDc)); + for (d = 0; d < f.length; d++) { + for (e = d + 1; e < f.length; e++) { + nQb(f[d], (Ywc(), zwc)) && nQb(f[e], zwc) && crc(c, f[d], f[e]) > 0 && ++k; + } + } + ++j; + } + return k; + } + function awd(a) { + var b, c; + c = new dib(nfb(a.Rm)); + c.a += "@"; + Zhb(c, (b = tb(a) >>> 0, b.toString(16))); + if (a.Vh()) { + c.a += " (eProxyURI: "; + Yhb(c, a._h()); + if (a.Kh()) { + c.a += " eClass: "; + Yhb(c, a.Kh()); + } + c.a += ")"; + } else if (a.Kh()) { + c.a += " (eClass: "; + Yhb(c, a.Kh()); + c.a += ")"; + } + return c.a; + } + function KGb(a) { + var b, c, d, e; + if (a.e) { + throw Adb(new dgb((lfb(lN), lye + lN.k + mye))); + } + a.d == (Cmd(), Amd) && JGb(a, ymd); + for (c = new Anb(a.a.a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 316); + b.g = b.i; + } + for (e = new Anb(a.a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 60); + d.i = pxe; + } + a.b.cf(a); + return a; + } + function rUc(a, b) { + var c, d, e, f, g; + if (b < 2 * a.b) { + throw Adb(new agb("The knot vector must have at least two time the dimension elements.")); + } + a.f = 1; + for (e = 0; e < a.b; e++) { + Rmb(a.e, 0); + } + g = b + 1 - 2 * a.b; + c = g; + for (f = 1; f < g; f++) { + Rmb(a.e, f / c); + } + if (a.d) { + for (d = 0; d < a.b; d++) { + Rmb(a.e, 1); + } + } + } + function AEd(a, b) { + var c, d, e, f, g, h, i, j, k; + j = b; + k = RD(lp(Co(a.i), j), 27); + if (!k) { + e = zDd(j, uIe); + h = "Unable to find elk node for json object '" + e; + i = h + "' Panic!"; + throw Adb(new CDd(i)); + } + f = wDd(j, "edges"); + c = new KEd(a, k); + MDd(c.a, c.b, f); + g = wDd(j, iIe); + d = new VEd(a); + XDd(d.a, g); + } + function XNd(a, b, c, d) { + var e, f, g, h, i; + if (d != null) { + e = a.d[b]; + if (e) { + f = e.g; + i = e.i; + for (h = 0; h < i; ++h) { + g = RD(f[h], 136); + if (g.Bi() == c && pb(d, g.ld())) { + return h; + } + } + } + } else { + e = a.d[b]; + if (e) { + f = e.g; + i = e.i; + for (h = 0; h < i; ++h) { + g = RD(f[h], 136); + if (dE(g.ld()) === dE(d)) { + return h; + } + } + } + } + return -1; + } + function N5d(a, b) { + var c, d, e; + c = b == null ? Wd(qtb(a.f, null)) : Ktb(a.i, b); + if (ZD(c, 241)) { + e = RD(c, 241); + e.zi() == null && void 0; + return e; + } else if (ZD(c, 507)) { + d = RD(c, 2037); + e = d.a; + !!e && (e.yb == null ? void 0 : b == null ? rtb(a.f, null, e) : Ltb(a.i, b, e)); + return e; + } else { + return null; + } + } + function Hqe(a) { + Gqe(); + var b, c, d, e, f, g, h; + if (a == null) + return null; + e = a.length; + if (e % 2 != 0) + return null; + b = Ahb(a); + f = e / 2 | 0; + c = $C(gE, YHe, 28, f, 15, 1); + for (d = 0; d < f; d++) { + g = Eqe[b[d * 2]]; + if (g == -1) + return null; + h = Eqe[b[d * 2 + 1]]; + if (h == -1) + return null; + c[d] = (g << 4 | h) << 24 >> 24; + } + return c; + } + function cNb(a, b, c) { + var d, e, f; + e = RD(Vrb(a.i, b), 314); + if (!e) { + e = new UKb(a.d, b, c); + Wrb(a.i, b, e); + if (jMb(b)) { + tKb(a.a, b.c, b.b, e); + } else { + f = iMb(b); + d = RD(Vrb(a.p, f), 252); + switch (f.g) { + case 1: + case 3: + e.j = true; + cLb(d, b.b, e); + break; + case 4: + case 2: + e.k = true; + cLb(d, b.c, e); + } + } + } + return e; + } + function Ndc(a, b) { + var c, d, e, f, g, h, i, j, k; + i = ev(a.c - a.b & a.a.length - 1); + j = null; + k = null; + for (f = new Kmb(a); f.a != f.b; ) { + e = RD(Imb(f), 10); + c = (h = RD(mQb(e, (Ywc(), vwc)), 12), !h ? null : h.i); + d = (g = RD(mQb(e, wwc), 12), !g ? null : g.i); + if (j != c || k != d) { + Rdc(i, b); + j = c; + k = d; + } + ZEb(i.c, e); + } + Rdc(i, b); + } + function Rge(a, b, c, d) { + var e, f, g, h, i, j; + h = new YHd(); + i = pke(a.e.Dh(), b); + e = RD(a.g, 124); + nke(); + if (RD(b, 69).xk()) { + for (g = 0; g < a.i; ++g) { + f = e[g]; + i.am(f.Lk()) && WGd(h, f); + } + } else { + for (g = 0; g < a.i; ++g) { + f = e[g]; + if (i.am(f.Lk())) { + j = f.md(); + WGd(h, d ? Bge(a, b, g, h.i, j) : j); + } + } + } + return XHd(h, c); + } + function oHc(a, b) { + var c, d, e, f, g, h, i, j; + e = a.b[b.p]; + if (e >= 0) { + return e; + } else { + f = 1; + for (h = new Anb(b.j); h.a < h.c.c.length; ) { + g = RD(ynb(h), 12); + for (d = new Anb(g.g); d.a < d.c.c.length; ) { + c = RD(ynb(d), 18); + j = c.d.i; + if (b != j) { + i = oHc(a, j); + f = $wnd.Math.max(f, i + 1); + } + } + } + nHc(a, b, f); + return f; + } + } + function wHc(a, b) { + var c, d, e, f, g, h, i, j; + e = a.b[b.p]; + if (e >= 0) { + return e; + } else { + f = 1; + for (h = new Anb(b.j); h.a < h.c.c.length; ) { + g = RD(ynb(h), 12); + for (d = new Anb(g.e); d.a < d.c.c.length; ) { + c = RD(ynb(d), 18); + j = c.c.i; + if (b != j) { + i = wHc(a, j); + f = $wnd.Math.max(f, i + 1); + } + } + } + vHc(a, b, f); + return f; + } + } + function wLc(a, b, c) { + var d, e, f; + for (d = 1; d < a.c.length; d++) { + f = (tFb(d, a.c.length), RD(a.c[d], 10)); + e = d; + while (e > 0 && b.Ne((tFb(e - 1, a.c.length), RD(a.c[e - 1], 10)), f) > 0) { + $mb(a, e, (tFb(e - 1, a.c.length), RD(a.c[e - 1], 10))); + --e; + } + tFb(e, a.c.length); + a.c[e] = f; + } + c.a = new Tsb(); + c.b = new Tsb(); + } + function yhd(a, b, c) { + var d, e, f, g, h, i, j, k; + k = (d = RD(b.e && b.e(), 9), new Fsb(d, RD(WEb(d, d.length), 9), 0)); + i = vhb(c, "[\\[\\]\\s,]+"); + for (f = i, g = 0, h = f.length; g < h; ++g) { + e = f[g]; + if (Dhb(e).length == 0) { + continue; + } + j = xhd(a, e); + if (j == null) { + return null; + } else { + zsb(k, RD(j, 22)); + } + } + return k; + } + function tse(a) { + var b, c, d, e; + e = a.length; + b = null; + for (d = 0; d < e; d++) { + c = (BFb(d, a.length), a.charCodeAt(d)); + if (qhb(".*+?{[()|\\^$", Fhb(c)) >= 0) { + if (!b) { + b = new Rhb(); + d > 0 && Nhb(b, (AFb(0, d, a.length), a.substr(0, d))); + } + b.a += "\\"; + Jhb(b, c & Bwe); + } else + !!b && Jhb(b, c & Bwe); + } + return b ? b.a : a; + } + function MYb(a) { + var b, c, d; + for (c = new Anb(a.a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 86); + d = (uFb(0), 0); + if (d > 0) { + !(Dmd(a.a.c) && b.n.d) && !(Emd(a.a.c) && b.n.b) && (b.g.d -= $wnd.Math.max(0, d / 2 - 0.5)); + !(Dmd(a.a.c) && b.n.a) && !(Emd(a.a.c) && b.n.c) && (b.g.a += $wnd.Math.max(0, d - 1)); + } + } + } + function Ydc(a, b, c) { + var d, e; + if ((a.c - a.b & a.a.length - 1) == 2) { + if (b == (qpd(), Yod) || b == Xod) { + Odc(RD(omb(a), 15), (Pnd(), Lnd)); + Odc(RD(omb(a), 15), Mnd); + } else { + Odc(RD(omb(a), 15), (Pnd(), Mnd)); + Odc(RD(omb(a), 15), Lnd); + } + } else { + for (e = new Kmb(a); e.a != e.b; ) { + d = RD(Imb(e), 15); + Odc(d, c); + } + } + } + function HGd(a, b) { + var c, d, e, f, g, h, i; + e = cv(new QGd(a)); + h = new Jkb(e, e.c.length); + f = cv(new QGd(b)); + i = new Jkb(f, f.c.length); + g = null; + while (h.b > 0 && i.b > 0) { + c = (sFb(h.b > 0), RD(h.a.Xb(h.c = --h.b), 27)); + d = (sFb(i.b > 0), RD(i.a.Xb(i.c = --i.b), 27)); + if (c == d) { + g = c; + } else { + break; + } + } + return g; + } + function Dmc(a, b, c) { + var d, e, f, g; + if (Hmc(a, b) > Hmc(a, c)) { + d = b3b(c, (qpd(), Xod)); + a.d = d.dc() ? 0 : L3b(RD(d.Xb(0), 12)); + g = b3b(b, ppd); + a.b = g.dc() ? 0 : L3b(RD(g.Xb(0), 12)); + } else { + e = b3b(c, (qpd(), ppd)); + a.d = e.dc() ? 0 : L3b(RD(e.Xb(0), 12)); + f = b3b(b, Xod); + a.b = f.dc() ? 0 : L3b(RD(f.Xb(0), 12)); + } + } + function wNb(a, b) { + var c, d, e, f; + c = a.o.a; + for (f = RD(RD(Qc(a.r, b), 21), 87).Kc(); f.Ob(); ) { + e = RD(f.Pb(), 117); + e.e.a = c * Kfb(UD(e.b.of(sNb))); + e.e.b = (d = e.b, d.pf((umd(), Gld)) ? d.ag() == (qpd(), Yod) ? -d.Mf().b - Kfb(UD(d.of(Gld))) : Kfb(UD(d.of(Gld))) : d.ag() == (qpd(), Yod) ? -d.Mf().b : 0); + } + } + function Mhc(a, b) { + var c, d, e, f; + b.Ug("Self-Loop pre-processing", 1); + for (d = new Anb(a.a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 10); + if (pnc(c)) { + e = (f = new onc(c), pQb(c, (Ywc(), Pwc), f), lnc(f), f); + FDb(GDb(EDb(new SDb(null, new Swb(e.d, 16)), new Phc()), new Rhc()), new Thc()); + Khc(e); + } + } + b.Vg(); + } + function xsc(a) { + var b, c, d, e, f, g, h, i; + b = true; + e = null; + f = null; + j: + for (i = new Anb(a.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + for (d = new is(Mr(Z2b(h).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + if (!!e && e != h) { + b = false; + break j; + } + e = h; + g = c.c.i; + if (!!f && f != g) { + b = false; + break j; + } + f = g; + } + } + return b; + } + function mTc(a, b, c) { + var d, e, f, g, h, i; + f = -1; + h = -1; + for (g = 0; g < b.c.length; g++) { + e = (tFb(g, b.c.length), RD(b.c[g], 339)); + if (e.c > a.c) { + break; + } else if (e.a >= a.s) { + f < 0 && (f = g); + h = g; + } + } + i = (a.s + a.c) / 2; + if (f >= 0) { + d = lTc(a, b, f, h); + i = yTc((tFb(d, b.c.length), RD(b.c[d], 339))); + wTc(b, d, c); + } + return i; + } + function _Ad(a, b, c) { + var d, e, f, g, h, i, j; + g = (f = new pVd(), f); + nVd(g, (uFb(b), b)); + j = (!g.b && (g.b = new SVd((JTd(), FTd), C8, g)), g.b); + for (i = 1; i < c.length; i += 2) { + fOd(j, c[i - 1], c[i]); + } + d = (!a.Ab && (a.Ab = new C5d(f7, a, 0, 3)), a.Ab); + for (h = 0; h < 0; ++h) { + e = jVd(RD(QHd(d, d.i - 1), 598)); + d = e; + } + WGd(d, g); + } + function DSb(a, b, c) { + var d, e, f; + jQb.call(this, new bnb()); + this.a = b; + this.b = c; + this.e = a; + d = (a.b && CRb(a), a.a); + this.d = BSb(d.a, this.a); + this.c = BSb(d.b, this.b); + bQb(this, this.d, this.c); + CSb(this); + for (f = this.e.e.a.ec().Kc(); f.Ob(); ) { + e = RD(f.Pb(), 272); + e.c.c.length > 0 && ASb(this, e); + } + } + function zTb(a, b, c, d, e, f) { + var g, h, i; + if (!e[b.a]) { + e[b.a] = true; + g = d; + !g && (g = new gUb()); + Rmb(g.e, b); + for (i = f[b.a].Kc(); i.Ob(); ) { + h = RD(i.Pb(), 290); + if (h.d == c || h.c == c) { + continue; + } + h.c != b && zTb(a, h.c, b, g, e, f); + h.d != b && zTb(a, h.d, b, g, e, f); + Rmb(g.c, h); + Tmb(g.d, h.b); + } + return g; + } + return null; + } + function v7b(a) { + var b, c, d, e, f, g, h; + b = 0; + for (e = new Anb(a.e); e.a < e.c.c.length; ) { + d = RD(ynb(e), 18); + c = yDb(new SDb(null, new Swb(d.b, 16)), new N7b()); + c && ++b; + } + for (g = new Anb(a.g); g.a < g.c.c.length; ) { + f = RD(ynb(g), 18); + h = yDb(new SDb(null, new Swb(f.b, 16)), new P7b()); + h && ++b; + } + return b >= 2; + } + function _qc(a, b, c, d, e) { + var f, g, h, i, j, k; + f = a.c.d.j; + g = RD(ju(c, 0), 8); + for (k = 1; k < c.b; k++) { + j = RD(ju(c, k), 8); + Pub(d, g, d.c.b, d.c); + h = ijd($id(new sjd(g), j), 0.5); + i = ijd(new qjd(BVc(f)), e); + $id(h, i); + Pub(d, h, d.c.b, d.c); + g = j; + f = b == 0 ? tpd(f) : rpd(f); + } + Mub(d, (sFb(c.b != 0), RD(c.c.b.c, 8))); + } + function fod(a) { + dod(); + var b, c, d; + c = ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [_nd])); + if (dy(Tx(c, a)) > 1) { + return false; + } + b = ysb(Xnd, cD(WC(A3, 1), jwe, 95, 0, [Wnd, Znd])); + if (dy(Tx(b, a)) > 1) { + return false; + } + d = ysb(cod, cD(WC(A3, 1), jwe, 95, 0, [bod, aod])); + if (dy(Tx(d, a)) > 1) { + return false; + } + return true; + } + function $Uc(a, b, c) { + var d, e, f; + for (f = new Anb(a.t); f.a < f.c.c.length; ) { + d = RD(ynb(f), 274); + if (d.b.s < 0 && d.c > 0) { + d.b.n -= d.c; + d.b.n <= 0 && d.b.u > 0 && Mub(b, d.b); + } + } + for (e = new Anb(a.i); e.a < e.c.c.length; ) { + d = RD(ynb(e), 274); + if (d.a.s < 0 && d.c > 0) { + d.a.u -= d.c; + d.a.u <= 0 && d.a.n > 0 && Mub(c, d.a); + } + } + } + function tId(a) { + var b, c, d, e, f; + if (a.g == null) { + a.d = a.bj(a.f); + WGd(a, a.d); + if (a.c) { + f = a.f; + return f; + } + } + b = RD(a.g[a.i - 1], 51); + e = b.Pb(); + a.e = b; + c = a.bj(e); + if (c.Ob()) { + a.d = c; + WGd(a, c); + } else { + a.d = null; + while (!b.Ob()) { + bD(a.g, --a.i, null); + if (a.i == 0) { + break; + } + d = RD(a.g[a.i - 1], 51); + b = d; + } + } + return e; + } + function Rfe(a, b) { + var c, d, e, f, g, h; + d = b; + e = d.Lk(); + if (qke(a.e, e)) { + if (e.Si() && cge(a, e, d.md())) { + return false; + } + } else { + h = pke(a.e.Dh(), e); + c = RD(a.g, 124); + for (f = 0; f < a.i; ++f) { + g = c[f]; + if (h.am(g.Lk())) { + if (pb(g, d)) { + return false; + } else { + RD(eHd(a, f, b), 76); + return true; + } + } + } + } + return WGd(a, b); + } + function Icc(a, b, c, d) { + var e, f, g, h; + e = new j3b(a); + h3b(e, (r3b(), n3b)); + pQb(e, (Ywc(), Awc), b); + pQb(e, Mwc, d); + pQb(e, (yCc(), BBc), (Bod(), wod)); + pQb(e, vwc, b.c); + pQb(e, wwc, b.d); + Oec(b, e); + h = $wnd.Math.floor(c / 2); + for (g = new Anb(e.j); g.a < g.c.c.length; ) { + f = RD(ynb(g), 12); + f.n.b = h; + } + return e; + } + function fSc(a) { + var b, c, d, e, f, g, h; + b = 0; + for (d = new Anb(a.a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 10); + for (f = new is(Mr(a3b(c).a.Kc(), new ir())); gs(f); ) { + e = RD(hs(f), 18); + if (a == e.d.i.c && e.c.j == (qpd(), ppd)) { + g = K3b(e.c).b; + h = K3b(e.d).b; + b = $wnd.Math.max(b, $wnd.Math.abs(h - g)); + } + } + } + return b; + } + function QTb(a, b, c) { + var d, e, f, g, h; + c.Ug("ELK Force", 1); + Heb(TD(Gxd(b, (yVb(), gVb)))) || RFb((d = new SFb((lud(), new zud(b))), d)); + h = KTb(b); + RTb(h); + STb(a, RD(mQb(h, bVb), 432)); + g = CTb(a.a, h); + for (f = g.Kc(); f.Ob(); ) { + e = RD(f.Pb(), 235); + pUb(a.b, e, c.eh(1 / g.gc())); + } + h = BTb(g); + JTb(h); + c.Vg(); + } + function d_b(a, b, c) { + switch (c.g) { + case 1: + return new rjd(b.a, $wnd.Math.min(a.d.b, b.b)); + case 2: + return new rjd($wnd.Math.max(a.c.a, b.a), b.b); + case 3: + return new rjd(b.a, $wnd.Math.max(a.c.b, b.b)); + case 4: + return new rjd($wnd.Math.min(b.a, a.d.a), b.b); + } + return new rjd(b.a, b.b); + } + function yGd(a) { + var b, c, d; + b = ev(1 + (!a.c && (a.c = new C5d(K4, a, 9, 9)), a.c).i); + Rmb(b, (!a.d && (a.d = new Yie(G4, a, 8, 5)), a.d)); + for (d = new dMd((!a.c && (a.c = new C5d(K4, a, 9, 9)), a.c)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 123); + Rmb(b, (!c.d && (c.d = new Yie(G4, c, 8, 5)), c.d)); + } + return Qb(b), new Dl(b); + } + function zGd(a) { + var b, c, d; + b = ev(1 + (!a.c && (a.c = new C5d(K4, a, 9, 9)), a.c).i); + Rmb(b, (!a.e && (a.e = new Yie(G4, a, 7, 4)), a.e)); + for (d = new dMd((!a.c && (a.c = new C5d(K4, a, 9, 9)), a.c)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 123); + Rmb(b, (!c.e && (c.e = new Yie(G4, c, 7, 4)), c.e)); + } + return Qb(b), new Dl(b); + } + function jne(a) { + var b, c, d, e; + if (a == null) { + return null; + } else { + d = nue(a, true); + e = mLe.length; + if (lhb(d.substr(d.length - e, e), mLe)) { + c = d.length; + if (c == 4) { + b = (BFb(0, d.length), d.charCodeAt(0)); + if (b == 43) { + return Wme; + } else if (b == 45) { + return Vme; + } + } else if (c == 3) { + return Wme; + } + } + return Neb(d); + } + } + function _rc(a, b) { + var c, d, e, f, g; + b.Ug("Breaking Point Processor", 1); + $rc(a); + if (Heb(TD(mQb(a, (yCc(), uCc))))) { + for (e = new Anb(a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 30); + c = 0; + for (g = new Anb(d.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 10); + f.p = c++; + } + } + Vrc(a); + Wrc(a, true); + Wrc(a, false); + } + b.Vg(); + } + function MJc(a, b, c, d) { + var e, f, g, h, i, j, k, l, m; + l = d ? (qpd(), ppd) : (qpd(), Xod); + e = false; + for (i = b[c], j = 0, k = i.length; j < k; ++j) { + h = i[j]; + if (Cod(RD(mQb(h, (yCc(), BBc)), 101))) { + continue; + } + g = h.e; + m = !b3b(h, l).dc() && !!g; + if (m) { + f = c1b(g); + a.b = new Ylc(f, d ? 0 : f.length - 1); + } + e = e | NJc(a, h, l, m); + } + return e; + } + function gOc(a, b, c, d) { + var e, f, g; + g = T0b(b, c); + ZEb(d.c, b); + if (a.j[g.p] == -1 || a.j[g.p] == 2 || a.a[b.p]) { + return d; + } + a.j[g.p] = -1; + for (f = new is(Mr(W2b(g).a.Kc(), new ir())); gs(f); ) { + e = RD(hs(f), 18); + if (!(!W0b(e) && !(!W0b(e) && e.c.i.c == e.d.i.c)) || e == b) { + continue; + } + return gOc(a, e, g, d); + } + return d; + } + function AOc(a) { + var b, c, d, e; + b = 0; + c = 0; + for (e = new Anb(a.j); e.a < e.c.c.length; ) { + d = RD(ynb(e), 12); + b = Ydb(Bdb(b, ADb(CDb(new SDb(null, new Swb(d.e, 16)), new NPc())))); + c = Ydb(Bdb(c, ADb(CDb(new SDb(null, new Swb(d.g, 16)), new PPc())))); + if (b > 1 || c > 1) { + return 2; + } + } + if (b + c == 1) { + return 2; + } + return 0; + } + function Kwb(a, b) { + var c, d, e, f, g, h; + f = a.a * Mxe + a.b * 1502; + h = a.b * Mxe + 11; + c = $wnd.Math.floor(h * Nxe); + f += c; + h -= c * Oxe; + f %= Oxe; + a.a = f; + a.b = h; + if (b <= 24) { + return $wnd.Math.floor(a.a * Ewb[b]); + } else { + e = a.a * (1 << b - 24); + g = $wnd.Math.floor(a.b * Fwb[b]); + d = e + g; + d >= 2147483648 && (d -= 4294967296); + return d; + } + } + function uSc(a, b, c) { + var d, e, f, g, h, i, j; + f = new bnb(); + j = new Yub(); + g = new Yub(); + vSc(a, j, g, b); + tSc(a, j, g, b, c); + for (i = new Anb(a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 118); + for (e = new Anb(h.k); e.a < e.c.c.length; ) { + d = RD(ynb(e), 132); + (!b || d.c == (fTc(), dTc)) && h.g > d.b.g && (ZEb(f.c, d), true); + } + } + return f; + } + function jed(a, b, c) { + var d, e, f, g, h, i; + h = a.c; + for (g = (!c.q ? (yob(), yob(), wob) : c.q).vc().Kc(); g.Ob(); ) { + f = RD(g.Pb(), 44); + d = !QDb(CDb(new SDb(null, new Swb(h, 16)), new PAb(new xed(b, f)))).Bd((xDb(), wDb)); + if (d) { + i = f.md(); + if (ZD(i, 4)) { + e = FId(i); + e != null && (i = e); + } + b.qf(RD(f.ld(), 149), i); + } + } + } + function mbd(a, b, c) { + var d, e; + Sed(a.b); + Ved(a.b, (gbd(), dbd), (_cd(), $cd)); + Ved(a.b, ebd, b.g); + Ved(a.b, fbd, b.a); + a.a = Qed(a.b, b); + c.Ug("Compaction by shrinking a tree", a.a.c.length); + if (b.i.c.length > 1) { + for (e = new Anb(a.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 47); + d.Kf(b, c.eh(1)); + } + } + c.Vg(); + } + function Svd(a, b, c) { + var d, e, f; + f = Eee((lke(), jke), a.Dh(), b); + if (f) { + nke(); + if (!RD(f, 69).xk()) { + f = zfe(Qee(jke, f)); + if (!f) { + throw Adb(new agb(KHe + b.xe() + LHe)); + } + } + e = (d = a.Ih(f), RD(d >= 0 ? a.Lh(d, true, true) : Qvd(a, f, true), 160)); + RD(e, 220).Xl(b, c); + } else { + throw Adb(new agb(KHe + b.xe() + LHe)); + } + } + function k2d(a, b) { + var c, d, e, f, g; + if (!b) { + return null; + } else { + f = ZD(a.Cb, 90) || ZD(a.Cb, 102); + g = !f && ZD(a.Cb, 331); + for (d = new dMd((!b.a && (b.a = new iae(b, o7, b)), b.a)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 89); + e = i2d(c); + if (f ? ZD(e, 90) : g ? ZD(e, 156) : !!e) { + return e; + } + } + return f ? (JTd(), zTd) : (JTd(), wTd); + } + } + function W8b(a, b) { + var c, d, e, f; + b.Ug("Resize child graph to fit parent.", 1); + for (d = new Anb(a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 30); + Tmb(a.a, c.a); + c.a.c.length = 0; + } + for (f = new Anb(a.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + g3b(e, null); + } + a.b.c.length = 0; + X8b(a); + !!a.e && V8b(a.e, a); + b.Vg(); + } + function Fec(a, b) { + var c, d, e, f, g; + b.Ug("Edge joining", 1); + c = Heb(TD(mQb(a, (yCc(), mCc)))); + for (e = new Anb(a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 30); + g = new Jkb(d.a, 0); + while (g.b < g.d.gc()) { + f = (sFb(g.b < g.d.gc()), RD(g.d.Xb(g.c = g.b++), 10)); + if (f.k == (r3b(), o3b)) { + Hec(f, c); + Ckb(g); + } + } + } + b.Vg(); + } + function pTc(a, b) { + var c, d, e, f, g; + c = new bnb(); + e = EDb(new SDb(null, new Swb(a, 16)), new ITc()); + f = EDb(new SDb(null, new Swb(a, 16)), new KTc()); + g = VCb(UCb(HDb(Ly(cD(WC(RM, 1), rve, 848, 0, [e, f])), new MTc()))); + for (d = 1; d < g.length; d++) { + g[d] - g[d - 1] >= 2 * b && Rmb(c, new BTc(g[d - 1] + b, g[d] - b)); + } + return c; + } + function dEd(a, b, c) { + var d, e, f, g, h, j, k, l; + if (c) { + f = c.a.length; + d = new vue(f); + for (h = (d.b - d.a) * d.c < 0 ? (uue(), tue) : new Rue(d); h.Ob(); ) { + g = RD(h.Pb(), 17); + e = xDd(c, g.a); + !!e && (j = sEd(a, (k = (bvd(), l = new PCd(), l), !!b && NCd(k, b), k), e), jyd(j, zDd(e, uIe)), GEd(e, j), HEd(e, j), CEd(a, e, j)); + } + } + } + function sYd(a) { + var b, c, d, e, f, g; + if (!a.j) { + g = new f1d(); + b = iYd; + f = b.a.zc(a, b); + if (f == null) { + for (d = new dMd(zYd(a)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 29); + e = sYd(c); + YGd(g, e); + WGd(g, c); + } + b.a.Bc(a) != null; + } + VHd(g); + a.j = new N$d((RD(QHd(xYd((lTd(), kTd).o), 11), 19), g.i), g.g); + yYd(a).b &= -33; + } + return a.j; + } + function lne(a) { + var b, c, d, e; + if (a == null) { + return null; + } else { + d = nue(a, true); + e = mLe.length; + if (lhb(d.substr(d.length - e, e), mLe)) { + c = d.length; + if (c == 4) { + b = (BFb(0, d.length), d.charCodeAt(0)); + if (b == 43) { + return Yme; + } else if (b == 45) { + return Xme; + } + } else if (c == 3) { + return Yme; + } + } + return new Ufb(d); + } + } + function pD(a) { + var b, c, d; + c = a.l; + if ((c & c - 1) != 0) { + return -1; + } + d = a.m; + if ((d & d - 1) != 0) { + return -1; + } + b = a.h; + if ((b & b - 1) != 0) { + return -1; + } + if (b == 0 && d == 0 && c == 0) { + return -1; + } + if (b == 0 && d == 0 && c != 0) { + return ogb(c); + } + if (b == 0 && d != 0 && c == 0) { + return ogb(d) + 22; + } + if (b != 0 && d == 0 && c == 0) { + return ogb(b) + 44; + } + return -1; + } + function yo(a, b) { + var c, d, e, f, g; + e = b.a & a.f; + f = null; + for (d = a.b[e]; true; d = d.b) { + if (d == b) { + !f ? a.b[e] = b.b : f.b = b.b; + break; + } + f = d; + } + g = b.f & a.f; + f = null; + for (c = a.c[g]; true; c = c.d) { + if (c == b) { + !f ? a.c[g] = b.d : f.d = b.d; + break; + } + f = c; + } + !b.e ? a.a = b.c : b.e.c = b.c; + !b.c ? a.e = b.e : b.c.e = b.e; + --a.i; + ++a.g; + } + function Dt(a, b) { + var c; + b.d ? b.d.b = b.b : a.a = b.b; + b.b ? b.b.d = b.d : a.e = b.d; + if (!b.e && !b.c) { + c = RD(Hvb(RD(_jb(a.b, b.a), 260)), 260); + c.a = 0; + ++a.c; + } else { + c = RD(Hvb(RD(Wjb(a.b, b.a), 260)), 260); + --c.a; + !b.e ? c.b = RD(Hvb(b.c), 511) : b.e.c = b.c; + !b.c ? c.c = RD(Hvb(b.e), 511) : b.c.e = b.e; + } + --a.d; + } + function XPb(a) { + var b, c, d, e, f, g, h, i, j, k; + c = a.o; + b = a.p; + g = lve; + e = qwe; + h = lve; + f = qwe; + for (j = 0; j < c; ++j) { + for (k = 0; k < b; ++k) { + if (PPb(a, j, k)) { + g = $wnd.Math.min(g, j); + e = $wnd.Math.max(e, j); + h = $wnd.Math.min(h, k); + f = $wnd.Math.max(f, k); + } + } + } + i = e - g + 1; + d = f - h + 1; + return new $td(sgb(g), sgb(h), sgb(i), sgb(d)); + } + function FZb(a, b) { + var c, d, e, f; + f = new Jkb(a, 0); + c = (sFb(f.b < f.d.gc()), RD(f.d.Xb(f.c = f.b++), 148)); + while (f.b < f.d.gc()) { + d = (sFb(f.b < f.d.gc()), RD(f.d.Xb(f.c = f.b++), 148)); + e = new fZb(d.c, c.d, b); + sFb(f.b > 0); + f.a.Xb(f.c = --f.b); + Ikb(f, e); + sFb(f.b < f.d.gc()); + f.d.Xb(f.c = f.b++); + e.a = false; + c = d; + } + } + function n6b(a) { + var b, c, d, e, f, g; + e = RD(mQb(a, (Ywc(), Xvc)), 12); + for (g = new Anb(a.j); g.a < g.c.c.length; ) { + f = RD(ynb(g), 12); + for (d = new Anb(f.g); d.a < d.c.c.length; ) { + b = RD(ynb(d), 18); + Z0b(b, e); + return f; + } + for (c = new Anb(f.e); c.a < c.c.c.length; ) { + b = RD(ynb(c), 18); + Y0b(b, e); + return f; + } + } + return null; + } + function Xec(a, b, c) { + var d, e, f, g, h, i; + i = RD($5b(a.a, b), 17).a; + c ? c6b(a.a, sgb(i + 1), b) : c6b(a.a, sgb(i - 1), b); + g = new Iub(); + for (e = new is(Mr((c ? a3b(b) : Z2b(b)).a.Kc(), new ir())); gs(e); ) { + d = RD(hs(e), 18); + c ? f = d.d.i : f = d.c.i; + dE($5b(a.a, f)) === dE($5b(a.a, b)) && (h = g.a.zc(f, g), h == null); + } + return g; + } + function yA(a, b, c) { + var d, e; + d = Hdb(c.q.getTime()); + if (Ddb(d, 0) < 0) { + e = Awe - Ydb(Mdb(Odb(d), Awe)); + e == Awe && (e = 0); + } else { + e = Ydb(Mdb(d, Awe)); + } + if (b == 1) { + e = $wnd.Math.min((e + 50) / 100 | 0, 9); + Thb(a, 48 + e & Bwe); + } else if (b == 2) { + e = $wnd.Math.min((e + 5) / 10 | 0, 99); + UA(a, e, 2); + } else { + UA(a, e, 3); + b > 3 && UA(a, 0, b - 3); + } + } + function eXb(a) { + var b, c, d, e; + if (dE(mQb(a, (yCc(), IAc))) === dE((Fnd(), Cnd))) { + return !a.e && dE(mQb(a, gAc)) !== dE((xvc(), uvc)); + } + d = RD(mQb(a, hAc), 299); + e = Heb(TD(mQb(a, nAc))) || dE(mQb(a, oAc)) === dE((stc(), ptc)); + b = RD(mQb(a, fAc), 17).a; + c = a.a.c.length; + return !e && d != (xvc(), uvc) && (b == 0 || b > c); + } + function Rnc(a) { + var b, c; + c = 0; + for (; c < a.c.length; c++) { + if (snc((tFb(c, a.c.length), RD(a.c[c], 113))) > 0) { + break; + } + } + if (c > 0 && c < a.c.length - 1) { + return c; + } + b = 0; + for (; b < a.c.length; b++) { + if (snc((tFb(b, a.c.length), RD(a.c[b], 113))) > 0) { + break; + } + } + if (b > 0 && c < a.c.length - 1) { + return b; + } + return a.c.length / 2 | 0; + } + function Mzd(a, b) { + var c, d; + if (b != a.Cb || a.Db >> 16 != 6 && !!b) { + if (Oje(a, b)) + throw Adb(new agb(UHe + Qzd(a))); + d = null; + !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? Czd(a, d) : a.Cb.Th(a, -1 - c, null, d))); + !!b && (d = Ivd(b, a, 6, d)); + d = Bzd(a, b, d); + !!d && d.oj(); + } else + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 6, b, b)); + } + function pzd(a, b) { + var c, d; + if (b != a.Cb || a.Db >> 16 != 3 && !!b) { + if (Oje(a, b)) + throw Adb(new agb(UHe + qzd(a))); + d = null; + !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? jzd(a, d) : a.Cb.Th(a, -1 - c, null, d))); + !!b && (d = Ivd(b, a, 12, d)); + d = izd(a, b, d); + !!d && d.oj(); + } else + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 3, b, b)); + } + function NCd(a, b) { + var c, d; + if (b != a.Cb || a.Db >> 16 != 9 && !!b) { + if (Oje(a, b)) + throw Adb(new agb(UHe + OCd(a))); + d = null; + !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? LCd(a, d) : a.Cb.Th(a, -1 - c, null, d))); + !!b && (d = Ivd(b, a, 9, d)); + d = KCd(a, b, d); + !!d && d.oj(); + } else + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 9, b, b)); + } + function tWd(b) { + var c, d, e, f, g; + e = WVd(b); + g = b.j; + if (g == null && !!e) { + return b.Jk() ? null : e.ik(); + } else if (ZD(e, 156)) { + d = e.jk(); + if (d) { + f = d.wi(); + if (f != b.i) { + c = RD(e, 156); + if (c.nk()) { + try { + b.g = f.ti(c, g); + } catch (a) { + a = zdb(a); + if (ZD(a, 82)) { + b.g = null; + } else + throw Adb(a); + } + } + b.i = f; + } + } + return b.g; + } + return null; + } + function nRb(a) { + var b; + b = new bnb(); + Rmb(b, new TFb(new rjd(a.c, a.d), new rjd(a.c + a.b, a.d))); + Rmb(b, new TFb(new rjd(a.c, a.d), new rjd(a.c, a.d + a.a))); + Rmb(b, new TFb(new rjd(a.c + a.b, a.d + a.a), new rjd(a.c + a.b, a.d))); + Rmb(b, new TFb(new rjd(a.c + a.b, a.d + a.a), new rjd(a.c, a.d + a.a))); + return b; + } + function ic(b) { + var c, d, e; + if (b == null) { + return vve; + } + try { + return jeb(b); + } catch (a) { + a = zdb(a); + if (ZD(a, 103)) { + c = a; + e = nfb(rb(b)) + "@" + (d = (gib(), jFb(b)) >>> 0, d.toString(16)); + lBb(pBb(), (SAb(), "Exception during lenientFormat for " + e), c); + return "<" + e + " threw " + nfb(c.Rm) + ">"; + } else + throw Adb(a); + } + } + function mTb(a, b, c) { + var d, e, f; + for (f = b.a.ec().Kc(); f.Ob(); ) { + e = RD(f.Pb(), 74); + d = RD(Wjb(a.b, e), 272); + !d && (vCd(JGd(e)) == vCd(LGd(e)) ? lTb(a, e, c) : JGd(e) == vCd(LGd(e)) ? Wjb(a.c, e) == null && Wjb(a.b, LGd(e)) != null && oTb(a, e, c, false) : Wjb(a.d, e) == null && Wjb(a.b, JGd(e)) != null && oTb(a, e, c, true)); + } + } + function Pfc(a, b) { + var c, d, e, f, g, h, i; + for (e = a.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 10); + h = new R3b(); + P3b(h, d); + Q3b(h, (qpd(), Xod)); + pQb(h, (Ywc(), Hwc), (Geb(), true)); + for (g = b.Kc(); g.Ob(); ) { + f = RD(g.Pb(), 10); + i = new R3b(); + P3b(i, f); + Q3b(i, ppd); + pQb(i, Hwc, true); + c = new a1b(); + pQb(c, Hwc, true); + Y0b(c, h); + Z0b(c, i); + } + } + } + function Pqc(a, b, c, d) { + var e, f, g, h; + e = Nqc(a, b, c); + f = Nqc(a, c, b); + g = RD(Wjb(a.c, b), 118); + h = RD(Wjb(a.c, c), 118); + if (e < f) { + new bTc((fTc(), eTc), g, h, f - e); + } else if (f < e) { + new bTc((fTc(), eTc), h, g, e - f); + } else if (e != 0 || !(!b.i || !c.i) && d[b.i.c][c.i.c]) { + new bTc((fTc(), eTc), g, h, 0); + new bTc(eTc, h, g, 0); + } + } + function rsc(a, b) { + var c, d, e, f, g, h, i; + e = 0; + for (g = new Anb(b.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 10); + e += f.o.b + f.d.a + f.d.d + a.e; + for (d = new is(Mr(Z2b(f).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + if (c.c.i.k == (r3b(), q3b)) { + i = c.c.i; + h = RD(mQb(i, (Ywc(), Awc)), 10); + e += h.o.b + h.d.a + h.d.d; + } + } + } + return e; + } + function sad() { + sad = geb; + oad = new tad("CANDIDATE_POSITION_LAST_PLACED_RIGHT", 0); + nad = new tad("CANDIDATE_POSITION_LAST_PLACED_BELOW", 1); + qad = new tad("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT", 2); + pad = new tad("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW", 3); + rad = new tad("WHOLE_DRAWING", 4); + } + function vEd(a, b) { + if (ZD(b, 207)) { + return IDd(a, RD(b, 27)); + } else if (ZD(b, 193)) { + return JDd(a, RD(b, 123)); + } else if (ZD(b, 366)) { + return HDd(a, RD(b, 135)); + } else if (ZD(b, 326)) { + return GDd(a, RD(b, 74)); + } else if (b) { + return null; + } else { + throw Adb(new agb(wIe + Fe(new mob(cD(WC(jJ, 1), rve, 1, 5, [b]))))); + } + } + function Glc(a) { + var b, c, d, e, f, g, h; + f = new Yub(); + for (e = new Anb(a.d.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 125); + d.b.a.c.length == 0 && (Pub(f, d, f.c.b, f.c), true); + } + if (f.b > 1) { + b = eJb((c = new gJb(), ++a.b, c), a.d); + for (h = Sub(f, 0); h.b != h.d.c; ) { + g = RD(evb(h), 125); + rIb(uIb(tIb(vIb(sIb(new wIb(), 1), 0), b), g)); + } + } + } + function isc(a, b, c) { + var d, e, f, g, h; + c.Ug("Breaking Point Removing", 1); + a.a = RD(mQb(b, (yCc(), yAc)), 223); + for (f = new Anb(b.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 30); + for (h = new Anb(bv(e.a)); h.a < h.c.c.length; ) { + g = RD(ynb(h), 10); + if (Krc(g)) { + d = RD(mQb(g, (Ywc(), Wvc)), 313); + !d.d && jsc(a, d); + } + } + } + c.Vg(); + } + function yCd(a, b) { + var c, d; + if (b != a.Cb || a.Db >> 16 != 11 && !!b) { + if (Oje(a, b)) + throw Adb(new agb(UHe + zCd(a))); + d = null; + !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? sCd(a, d) : a.Cb.Th(a, -1 - c, null, d))); + !!b && (d = Ivd(b, a, 10, d)); + d = rCd(a, b, d); + !!d && d.oj(); + } else + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 11, b, b)); + } + function C0b(a) { + var b, c, d, e; + for (d = new vkb(new mkb(a.b).a); d.b; ) { + c = tkb(d); + e = RD(c.ld(), 12); + b = RD(c.md(), 10); + pQb(b, (Ywc(), Awc), e); + pQb(e, Iwc, b); + pQb(e, nwc, (Geb(), true)); + Q3b(e, RD(mQb(b, hwc), 64)); + mQb(b, hwc); + pQb(e.i, (yCc(), BBc), (Bod(), yod)); + RD(mQb(Y2b(e.i), kwc), 21).Fc((ovc(), kvc)); + } + } + function X7b(a, b, c) { + var d, e, f, g, h, i; + f = 0; + g = 0; + if (a.c) { + for (i = new Anb(a.d.i.j); i.a < i.c.c.length; ) { + h = RD(ynb(i), 12); + f += h.e.c.length; + } + } else { + f = 1; + } + if (a.d) { + for (i = new Anb(a.c.i.j); i.a < i.c.c.length; ) { + h = RD(ynb(i), 12); + g += h.g.c.length; + } + } else { + g = 1; + } + e = eE(Lgb(g - f)); + d = (c + b) / 2 + (c - b) * (0.4 * e); + return d; + } + function Dnc(a) { + Bnc(); + var b, c; + if (a.Hc((qpd(), opd))) { + throw Adb(new agb("Port sides must not contain UNDEFINED")); + } + switch (a.gc()) { + case 1: + return xnc; + case 2: + b = a.Hc(Xod) && a.Hc(ppd); + c = a.Hc(Yod) && a.Hc(npd); + return b || c ? Anc : znc; + case 3: + return ync; + case 4: + return wnc; + default: + return null; + } + } + function Did(a, b, c) { + tid(); + if (xid(a, b) && xid(a, c)) { + return false; + } + return Fid(new rjd(a.c, a.d), new rjd(a.c + a.b, a.d), b, c) || Fid(new rjd(a.c + a.b, a.d), new rjd(a.c + a.b, a.d + a.a), b, c) || Fid(new rjd(a.c + a.b, a.d + a.a), new rjd(a.c, a.d + a.a), b, c) || Fid(new rjd(a.c, a.d + a.a), new rjd(a.c, a.d), b, c); + } + function Xee(a, b) { + var c, d, e, f; + if (!a.dc()) { + for (c = 0, d = a.gc(); c < d; ++c) { + f = WD(a.Xb(c)); + if (f == null ? b == null : lhb(f.substr(0, 3), "!##") ? b != null && (e = b.length, !lhb(f.substr(f.length - e, e), b) || f.length != b.length + 3) && !lhb(dLe, b) : lhb(f, eLe) && !lhb(dLe, b) || lhb(f, b)) { + return true; + } + } + } + return false; + } + function $6b(a, b, c, d) { + var e, f, g, h, i, j; + g = a.j.c.length; + i = $C(NN, Mye, 314, g, 0, 1); + for (h = 0; h < g; h++) { + f = RD(Vmb(a.j, h), 12); + f.p = h; + i[h] = U6b(c7b(f), c, d); + } + W6b(a, i, c, b, d); + j = new Tsb(); + for (e = 0; e < i.length; e++) { + !!i[e] && Zjb(j, RD(Vmb(a.j, e), 12), i[e]); + } + if (j.f.c + j.i.c != 0) { + pQb(a, (Ywc(), cwc), j); + a7b(a, i); + } + } + function Yfc(a, b) { + var c, d, e, f, g, h; + b.Ug("Partition postprocessing", 1); + for (d = new Anb(a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 30); + for (f = new Anb(c.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + h = new Anb(e.j); + while (h.a < h.c.c.length) { + g = RD(ynb(h), 12); + Heb(TD(mQb(g, (Ywc(), Hwc)))) && znb(h); + } + } + } + b.Vg(); + } + function pkc(a, b, c) { + var d, e, f; + for (e = new Anb(a.a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 60); + f = Zjc(d); + if (f) { + if (f.k == (r3b(), m3b)) { + switch (RD(mQb(f, (Ywc(), hwc)), 64).g) { + case 4: + f.n.a = b.a; + break; + case 2: + f.n.a = c.a - (f.o.a + f.d.c); + break; + case 1: + f.n.b = b.b; + break; + case 3: + f.n.b = c.b - (f.o.b + f.d.a); + } + } + } + } + } + function eZc(a, b, c) { + var d, e, f; + c.Ug("Processor determine the height for each level", 1); + a.a = b.b.b == 0 ? 1 : b.b.b; + e = null; + d = Sub(b.b, 0); + while (!e && d.b != d.d.c) { + f = RD(evb(d), 40); + Heb(TD(mQb(f, (q$c(), n$c)))) && (e = f); + } + !!e && fZc(a, dv(cD(WC(Z$, 1), NEe, 40, 0, [e])), c, RD(mQb(b, (h_c(), H$c)), 88)); + c.Vg(); + } + function N8c(a) { + var b, c, d, e, f, g; + d = (bvd(), f = new ACd(), f); + zxd(d, a); + for (c = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); c.e != c.i.gc(); ) { + b = RD(bMd(c), 27); + g = (e = new ACd(), e); + yCd(g, d); + zyd(g, b.g, b.f); + jyd(g, b.k); + Byd(g, b.i, b.j); + WGd((!d.a && (d.a = new C5d(J4, d, 10, 11)), d.a), g); + zxd(g, b); + } + return d; + } + function ord(a, b, c) { + var d, e, f, g, h; + e = RD(Gxd(b, (hkd(), fkd)), 17); + !e && (e = sgb(0)); + f = RD(Gxd(c, fkd), 17); + !f && (f = sgb(0)); + if (e.a > f.a) { + return -1; + } else if (e.a < f.a) { + return 1; + } else { + if (a.a) { + d = Qfb(b.j, c.j); + if (d != 0) { + return d; + } + d = Qfb(b.i, c.i); + if (d != 0) { + return d; + } + } + g = b.g * b.f; + h = c.g * c.f; + return Qfb(g, h); + } + } + function _Nd(a, b) { + var c, d, e, f, g, h, i, j, k, l; + ++a.e; + i = a.d == null ? 0 : a.d.length; + if (b > i) { + k = a.d; + a.d = $C(D6, KJe, 66, 2 * i + 4, 0, 1); + for (f = 0; f < i; ++f) { + j = k[f]; + if (j) { + d = j.g; + l = j.i; + for (h = 0; h < l; ++h) { + e = RD(d[h], 136); + g = bOd(a, e.Bi()); + c = a.d[g]; + !c && (c = a.d[g] = a.dk()); + c.Fc(e); + } + } + } + return true; + } else { + return false; + } + } + function Ofe(a, b, c) { + var d, e, f, g, h, i; + e = c; + f = e.Lk(); + if (qke(a.e, f)) { + if (f.Si()) { + d = RD(a.g, 124); + for (g = 0; g < a.i; ++g) { + h = d[g]; + if (pb(h, e) && g != b) { + throw Adb(new agb(LIe)); + } + } + } + } else { + i = pke(a.e.Dh(), f); + d = RD(a.g, 124); + for (g = 0; g < a.i; ++g) { + h = d[g]; + if (i.am(h.Lk())) { + throw Adb(new agb(gLe)); + } + } + } + VGd(a, b, c); + } + function R_b(a, b) { + var c, d, e, f, g, h; + c = RD(mQb(b, (Ywc(), ewc)), 21); + g = RD(Qc((z$b(), y$b), c), 21); + h = RD(Qc(O_b, c), 21); + for (f = g.Kc(); f.Ob(); ) { + d = RD(f.Pb(), 21); + if (!RD(Qc(a.b, d), 15).dc()) { + return false; + } + } + for (e = h.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 21); + if (!RD(Qc(a.b, d), 15).dc()) { + return false; + } + } + return true; + } + function dad(a, b) { + var c, d, e, f, g, h, i, j, k; + if (a.a.c.length == 1) { + return P9c(RD(Vmb(a.a, 0), 172), b); + } + g = cad(a); + i = 0; + j = a.d; + f = g; + k = a.d; + h = (j - f) / 2 + f; + while (f + 1 < j) { + i = 0; + for (d = new Anb(a.a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 172); + i += (e = S9c(c, h, false), e.a); + } + if (i < b) { + k = h; + j = h; + } else { + f = h; + } + h = (j - f) / 2 + f; + } + return k; + } + function zxd(a, b) { + var c, d, e, f, g; + if (!b) { + return a; + } + if (ZD(b, 342)) { + e = RD(b, 342); + f = (!a.o && (a.o = new DVd((pvd(), mvd), X4, a, 0)), a.o); + for (d = e.gh().c.Kc(); d.e != d.i.gc(); ) { + c = RD(d.Yj(), 44); + g = c.md(); + fOd(f, RD(c.ld(), 149), g); + } + } else { + !a.o && (a.o = new DVd((pvd(), mvd), X4, a, 0)); + gOd(a.o, b.nf()); + } + return a; + } + function vD(a) { + var b, c, d, e, f; + if (isNaN(a)) { + return MD(), LD; + } + if (a < -9223372036854776e3) { + return MD(), JD; + } + if (a >= 9223372036854776e3) { + return MD(), ID; + } + e = false; + if (a < 0) { + e = true; + a = -a; + } + d = 0; + if (a >= hxe) { + d = eE(a / hxe); + a -= d * hxe; + } + c = 0; + if (a >= gxe) { + c = eE(a / gxe); + a -= c * gxe; + } + b = eE(a); + f = hD(b, c, d); + e && nD(f); + return f; + } + function KCb(a) { + var b, c, d, e, f; + f = new bnb(); + Umb(a.b, new SEb(f)); + a.b.c.length = 0; + if (f.c.length != 0) { + b = (tFb(0, f.c.length), RD(f.c[0], 82)); + for (c = 1, d = f.c.length; c < d; ++c) { + e = (tFb(c, f.c.length), RD(f.c[c], 82)); + e != b && fz(b, e); + } + if (ZD(b, 63)) { + throw Adb(RD(b, 63)); + } + if (ZD(b, 296)) { + throw Adb(RD(b, 296)); + } + } + } + function iNb(a, b) { + var c, d, e, f; + c = !b || !a.u.Hc((Pod(), Lod)); + f = 0; + for (e = new Anb(a.e.Xf()); e.a < e.c.c.length; ) { + d = RD(ynb(e), 852); + if (d.ag() == (qpd(), opd)) { + throw Adb(new agb("Label and node size calculator can only be used with ports that have port sides assigned.")); + } + d.Qf(f++); + hNb(a, d, c); + } + } + function IGb(a) { + var b, c, d, e, f; + for (c = new Anb(a.a.a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 316); + b.j = null; + for (f = b.a.a.ec().Kc(); f.Ob(); ) { + d = RD(f.Pb(), 60); + hjd(d.b); + (!b.j || d.d.c < b.j.d.c) && (b.j = d); + } + for (e = b.a.a.ec().Kc(); e.Ob(); ) { + d = RD(e.Pb(), 60); + d.b.a = d.d.c - b.j.d.c; + d.b.b = d.d.d - b.j.d.d; + } + } + return a; + } + function uYb(a) { + var b, c, d, e, f; + for (c = new Anb(a.a.a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 194); + b.f = null; + for (f = b.a.a.ec().Kc(); f.Ob(); ) { + d = RD(f.Pb(), 86); + hjd(d.e); + (!b.f || d.g.c < b.f.g.c) && (b.f = d); + } + for (e = b.a.a.ec().Kc(); e.Ob(); ) { + d = RD(e.Pb(), 86); + d.e.a = d.g.c - b.f.g.c; + d.e.b = d.g.d - b.f.g.d; + } + } + return a; + } + function vPb(a) { + var b, c, d; + c = RD(a.a, 17).a; + d = RD(a.b, 17).a; + b = $wnd.Math.max($wnd.Math.abs(c), $wnd.Math.abs(d)); + if (c < b && d == -b) { + return new Ptd(sgb(c + 1), sgb(d)); + } + if (c == b && d < b) { + return new Ptd(sgb(c), sgb(d + 1)); + } + if (c >= -b && d == b) { + return new Ptd(sgb(c - 1), sgb(d)); + } + return new Ptd(sgb(c), sgb(d - 1)); + } + function lcc() { + hcc(); + return cD(WC(YS, 1), jwe, 81, 0, [nbc, kbc, obc, Ebc, Xbc, Ibc, bcc, Nbc, Vbc, zbc, Rbc, Mbc, Wbc, vbc, dcc, ebc, Qbc, Zbc, Fbc, Ybc, fcc, Tbc, fbc, Ubc, gcc, _bc, ecc, Gbc, sbc, Hbc, Dbc, ccc, ibc, qbc, Kbc, hbc, Lbc, Bbc, wbc, Obc, ybc, lbc, jbc, Cbc, xbc, Pbc, acc, gbc, Sbc, Abc, Jbc, tbc, rbc, $bc, pbc, ubc, mbc]); + } + function Cmc(a, b, c) { + a.d = 0; + a.b = 0; + b.k == (r3b(), q3b) && c.k == q3b && RD(mQb(b, (Ywc(), Awc)), 10) == RD(mQb(c, Awc), 10) && (Gmc(b).j == (qpd(), Yod) ? Dmc(a, b, c) : Dmc(a, c, b)); + b.k == q3b && c.k == o3b ? Gmc(b).j == (qpd(), Yod) ? a.d = 1 : a.b = 1 : c.k == q3b && b.k == o3b && (Gmc(c).j == (qpd(), Yod) ? a.b = 1 : a.d = 1); + Imc(a, b, c); + } + function EFd(a) { + var b, c, d, e, f, g, h, i, j, k, l; + l = HFd(a); + b = a.a; + i = b != null; + i && sDd(l, "category", a.a); + e = cve(new Xkb(a.d)); + g = !e; + if (g) { + j = new MB(); + sC(l, "knownOptions", j); + c = new MFd(j); + xgb(new Xkb(a.d), c); + } + f = cve(a.g); + h = !f; + if (h) { + k = new MB(); + sC(l, "supportedFeatures", k); + d = new OFd(k); + xgb(a.g, d); + } + return l; + } + function Ly(a) { + var b, c, d, e, f, g, h, i, j; + d = false; + b = 336; + c = 0; + f = new hq(a.length); + for (h = a, i = 0, j = h.length; i < j; ++i) { + g = h[i]; + d = d | (MCb(g), false); + e = (LCb(g), g.a); + Rmb(f.a, Qb(e)); + b &= e.yd(); + c = az(c, e.zd()); + } + return RD(RD(JCb(new SDb(null, ek(new Swb((tm(), zm(f.a)), 16), new My(), b, c)), new Oy(a)), 687), 848); + } + function WZb(a, b) { + var c; + if (!!a.d && (b.c != a.e.c || sZb(a.e.b, b.b))) { + Rmb(a.f, a.d); + a.a = a.d.c + a.d.b; + a.d = null; + a.e = null; + } + pZb(b.b) ? a.c = b : a.b = b; + if (b.b == (nZb(), jZb) && !b.a || b.b == kZb && b.a || b.b == lZb && b.a || b.b == mZb && !b.a) { + if (!!a.c && !!a.b) { + c = new Uid(a.a, a.c.d, b.c - a.a, a.b.d - a.c.d); + a.d = c; + a.e = b; + } + } + } + function Wed(a) { + var b; + Oed.call(this); + this.i = new ifd(); + this.g = a; + this.f = RD(a.e && a.e(), 9).length; + if (this.f == 0) { + throw Adb(new agb("There must be at least one phase in the phase enumeration.")); + } + this.c = (b = RD(mfb(this.g), 9), new Fsb(b, RD(WEb(b, b.length), 9), 0)); + this.a = new ufd(); + this.b = new Tsb(); + } + function eCd(a, b) { + var c, d; + if (b != a.Cb || a.Db >> 16 != 7 && !!b) { + if (Oje(a, b)) + throw Adb(new agb(UHe + gCd(a))); + d = null; + !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? cCd(a, d) : a.Cb.Th(a, -1 - c, null, d))); + !!b && (d = RD(b, 54).Rh(a, 1, H4, d)); + d = bCd(a, b, d); + !!d && d.oj(); + } else + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 7, b, b)); + } + function lVd(a, b) { + var c, d; + if (b != a.Cb || a.Db >> 16 != 3 && !!b) { + if (Oje(a, b)) + throw Adb(new agb(UHe + oVd(a))); + d = null; + !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? iVd(a, d) : a.Cb.Th(a, -1 - c, null, d))); + !!b && (d = RD(b, 54).Rh(a, 0, p7, d)); + d = hVd(a, b, d); + !!d && d.oj(); + } else + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 3, b, b)); + } + function Mjb(a, b) { + Ljb(); + var c, d, e, f, g, h, i, j, k; + if (b.d > a.d) { + h = a; + a = b; + b = h; + } + if (b.d < 63) { + return Qjb(a, b); + } + g = (a.d & -2) << 4; + j = $ib(a, g); + k = $ib(b, g); + d = Gjb(a, Zib(j, g)); + e = Gjb(b, Zib(k, g)); + i = Mjb(j, k); + c = Mjb(d, e); + f = Mjb(Gjb(j, d), Gjb(e, k)); + f = Bjb(Bjb(f, i), c); + f = Zib(f, g); + i = Zib(i, g << 1); + return Bjb(Bjb(i, f), c); + } + function _Cc() { + _Cc = geb; + ZCc = new bDc(lEe, 0); + WCc = new bDc("LONGEST_PATH", 1); + XCc = new bDc("LONGEST_PATH_SOURCE", 2); + TCc = new bDc("COFFMAN_GRAHAM", 3); + VCc = new bDc(BBe, 4); + $Cc = new bDc("STRETCH_WIDTH", 5); + YCc = new bDc("MIN_WIDTH", 6); + SCc = new bDc("BF_MODEL_ORDER", 7); + UCc = new bDc("DF_MODEL_ORDER", 8); + } + function AKc(a, b, c) { + var d, e, f, g, h; + g = aMc(a, c); + h = $C(jR, WAe, 10, b.length, 0, 1); + d = 0; + for (f = g.Kc(); f.Ob(); ) { + e = RD(f.Pb(), 12); + Heb(TD(mQb(e, (Ywc(), nwc)))) && (h[d++] = RD(mQb(e, Iwc), 10)); + } + if (d < b.length) { + throw Adb(new dgb("Expected " + b.length + " hierarchical ports, but found only " + d + ".")); + } + return h; + } + function sBd(a, b) { + var c, d, e, f, g, h; + if (!a.tb) { + f = (!a.rb && (a.rb = new J5d(a, i7, a)), a.rb); + h = new Usb(f.i); + for (e = new dMd(f); e.e != e.i.gc(); ) { + d = RD(bMd(e), 142); + g = d.xe(); + c = RD(g == null ? rtb(h.f, null, d) : Ltb(h.i, g, d), 142); + !!c && (g == null ? rtb(h.f, null, c) : Ltb(h.i, g, c)); + } + a.tb = h; + } + return RD(Xjb(a.tb, b), 142); + } + function wYd(a, b) { + var c, d, e, f, g; + (a.i == null && rYd(a), a.i).length; + if (!a.p) { + g = new Usb((3 * a.g.i / 2 | 0) + 1); + for (e = new yMd(a.g); e.e != e.i.gc(); ) { + d = RD(xMd(e), 179); + f = d.xe(); + c = RD(f == null ? rtb(g.f, null, d) : Ltb(g.i, f, d), 179); + !!c && (f == null ? rtb(g.f, null, c) : Ltb(g.i, f, c)); + } + a.p = g; + } + return RD(Xjb(a.p, b), 179); + } + function fFb(a, b, c, d, e) { + var f, g, h, i, j; + dFb(d + lz(c, c.ie()), e); + eFb(b, hFb(c)); + f = c.f; + !!f && fFb(a, b, f, "Caused by: ", false); + for (h = (c.k == null && (c.k = $C(rJ, Nve, 82, 0, 0, 1)), c.k), i = 0, j = h.length; i < j; ++i) { + g = h[i]; + fFb(a, b, g, "Suppressed: ", false); + } + console.groupEnd != null && console.groupEnd.call(console); + } + function DKc(a, b, c, d) { + var e, f, g, h, i; + i = b.e; + h = i.length; + g = b.q.ug(i, c ? 0 : h - 1, c); + e = i[c ? 0 : h - 1]; + g = g | CKc(a, e, c, d); + for (f = c ? 1 : h - 2; c ? f < h : f >= 0; f += c ? 1 : -1) { + g = g | b.c.lg(i, f, c, d && !Heb(TD(mQb(b.j, (Ywc(), jwc)))) && !Heb(TD(mQb(b.j, (Ywc(), Owc))))); + g = g | b.q.ug(i, f, c); + g = g | CKc(a, i[f], c, d); + } + Ysb(a.c, b); + return g; + } + function F6b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + for (k = u2b(a.j), l = 0, m = k.length; l < m; ++l) { + j = k[l]; + if (c == (BEc(), yEc) || c == AEc) { + i = s2b(j.g); + for (e = i, f = 0, g = e.length; f < g; ++f) { + d = e[f]; + B6b(b, d) && X0b(d, true); + } + } + if (c == zEc || c == AEc) { + h = s2b(j.e); + for (e = h, f = 0, g = e.length; f < g; ++f) { + d = e[f]; + A6b(b, d) && X0b(d, true); + } + } + } + } + function uqc(a) { + var b, c; + b = null; + c = null; + switch (pqc(a).g) { + case 1: + b = (qpd(), Xod); + c = ppd; + break; + case 2: + b = (qpd(), npd); + c = Yod; + break; + case 3: + b = (qpd(), ppd); + c = Xod; + break; + case 4: + b = (qpd(), Yod); + c = npd; + } + Smc(a, RD(Lvb(KDb(RD(Qc(a.k, b), 15).Oc(), lqc)), 113)); + Tmc(a, RD(Lvb(JDb(RD(Qc(a.k, c), 15).Oc(), lqc)), 113)); + } + function r9b(a) { + var b, c, d, e, f, g; + e = RD(Vmb(a.j, 0), 12); + if (e.e.c.length + e.g.c.length == 0) { + a.n.a = 0; + } else { + g = 0; + for (d = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [new T3b(e), new _3b(e)]))); gs(d); ) { + c = RD(hs(d), 12); + g += c.i.n.a + c.n.a + c.a.a; + } + b = RD(mQb(a, (yCc(), zBc)), 8); + f = !b ? 0 : b.a; + a.n.a = g / (e.e.c.length + e.g.c.length) - f; + } + } + function Qdd(a, b) { + var c, d, e; + for (d = new Anb(b.a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 225); + RQb(RD(c.b, 68), ojd(ajd(RD(b.b, 68).c), RD(b.b, 68).a)); + e = oRb(RD(b.b, 68).b, RD(c.b, 68).b); + e > 1 && (a.a = true); + QQb(RD(c.b, 68), $id(ajd(RD(b.b, 68).c), ijd(ojd(ajd(RD(c.b, 68).a), RD(b.b, 68).a), e))); + Odd(a, b); + Qdd(a, c); + } + } + function tYb(a) { + var b, c, d, e, f, g, h; + for (f = new Anb(a.a.a); f.a < f.c.c.length; ) { + d = RD(ynb(f), 194); + d.e = 0; + d.d.a.$b(); + } + for (e = new Anb(a.a.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 194); + for (c = d.a.a.ec().Kc(); c.Ob(); ) { + b = RD(c.Pb(), 86); + for (h = b.f.Kc(); h.Ob(); ) { + g = RD(h.Pb(), 86); + if (g.d != d) { + Ysb(d.d, g); + ++g.d.e; + } + } + } + } + } + function Hfc(a) { + var b, c, d, e, f, g, h, i; + i = a.j.c.length; + c = 0; + b = i; + e = 2 * i; + for (h = new Anb(a.j); h.a < h.c.c.length; ) { + g = RD(ynb(h), 12); + switch (g.j.g) { + case 2: + case 4: + g.p = -1; + break; + case 1: + case 3: + d = g.e.c.length; + f = g.g.c.length; + d > 0 && f > 0 ? g.p = b++ : d > 0 ? g.p = c++ : f > 0 ? g.p = e++ : g.p = c++; + } + } + yob(); + _mb(a.j, new Lfc()); + } + function zic(a) { + var b, c; + c = null; + b = RD(Vmb(a.g, 0), 18); + do { + c = b.d.i; + if (nQb(c, (Ywc(), wwc))) { + return RD(mQb(c, wwc), 12).i; + } + if (c.k != (r3b(), p3b) && gs(new is(Mr(a3b(c).a.Kc(), new ir())))) { + b = RD(hs(new is(Mr(a3b(c).a.Kc(), new ir()))), 18); + } else if (c.k != p3b) { + return null; + } + } while (!!c && c.k != (r3b(), p3b)); + return c; + } + function sqc(a, b) { + var c, d, e, f, g, h, i, j, k; + h = b.j; + g = b.g; + i = RD(Vmb(h, h.c.length - 1), 113); + k = (tFb(0, h.c.length), RD(h.c[0], 113)); + j = oqc(a, g, i, k); + for (f = 1; f < h.c.length; f++) { + c = (tFb(f - 1, h.c.length), RD(h.c[f - 1], 113)); + e = (tFb(f, h.c.length), RD(h.c[f], 113)); + d = oqc(a, g, c, e); + if (d > j) { + i = c; + k = e; + j = d; + } + } + b.a = k; + b.c = i; + } + function fMc(a, b, c) { + var d, e, f, g, h, i, j; + j = new yAb(new TMc(a)); + for (g = cD(WC(xR, 1), XAe, 12, 0, [b, c]), h = 0, i = g.length; h < i; ++h) { + f = g[h]; + j.a.zc(f, (Geb(), Eeb)) == null; + for (e = new l4b(f.b); xnb(e.a) || xnb(e.b); ) { + d = RD(xnb(e.a) ? ynb(e.a) : ynb(e.b), 18); + d.c == d.d || rAb(j, f == d.c ? d.d : d.c); + } + } + return Qb(j), new dnb(j); + } + function rIb(a) { + if (!a.a.d || !a.a.e) { + throw Adb(new dgb((lfb(zN), zN.k + " must have a source and target " + (lfb(DN), DN.k) + " specified."))); + } + if (a.a.d == a.a.e) { + throw Adb(new dgb("Network simplex does not support self-loops: " + a.a + " " + a.a.d + " " + a.a.e)); + } + EIb(a.a.d.g, a.a); + EIb(a.a.e.b, a.a); + return a.a; + } + function x6b(a, b) { + var c, d, e, f, g, h, i; + b.Ug("Constraints Postprocessor", 1); + g = 0; + for (f = new Anb(a.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 30); + i = 0; + h = false; + for (d = new Anb(e.a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 10); + if (c.k == (r3b(), p3b)) { + h = true; + pQb(c, (yCc(), VAc), sgb(g)); + pQb(c, mAc, sgb(i)); + ++i; + } + } + h && ++g; + } + b.Vg(); + } + function OTc(a, b, c) { + var d, e, f, g, h, i; + d = 0; + if (b.b != 0 && c.b != 0) { + f = Sub(b, 0); + g = Sub(c, 0); + h = Kfb(UD(evb(f))); + i = Kfb(UD(evb(g))); + e = true; + do { + if (h > i - a.b && h < i + a.b) { + return -1; + } else + h > i - a.a && h < i + a.a && ++d; + h <= i && f.b != f.d.c ? h = Kfb(UD(evb(f))) : i <= h && g.b != g.d.c ? i = Kfb(UD(evb(g))) : e = false; + } while (e); + } + return d; + } + function G2c(a, b) { + var c, d; + Sed(a.a); + Ved(a.a, (x2c(), v2c), v2c); + Ved(a.a, w2c, w2c); + d = new ufd(); + pfd(d, w2c, (g3c(), e3c)); + dE(Gxd(b, ($4c(), I4c))) !== dE((g4c(), d4c)) && pfd(d, w2c, b3c); + Heb(TD(Gxd(b, T4c))) && pfd(d, w2c, f3c); + pfd(d, w2c, c3c); + Heb(TD(Gxd(b, V4c))) && nfd(d, w2c, d3c); + Ped(a.a, d); + c = Qed(a.a, b); + return c; + } + function W6b(a, b, c, d, e) { + var f, g, h, i; + i = (f = RD(mfb(E3), 9), new Fsb(f, RD(WEb(f, f.length), 9), 0)); + for (h = new Anb(a.j); h.a < h.c.c.length; ) { + g = RD(ynb(h), 12); + if (b[g.p]) { + X6b(g, b[g.p], d); + zsb(i, g.j); + } + } + if (e) { + _6b(a, b, (qpd(), Xod), 2 * c, d); + _6b(a, b, ppd, 2 * c, d); + } else { + _6b(a, b, (qpd(), Yod), 2 * c, d); + _6b(a, b, npd, 2 * c, d); + } + } + function eec(a) { + var b, c; + for (c = new is(Mr(a3b(a).a.Kc(), new ir())); gs(c); ) { + b = RD(hs(c), 18); + if (b.d.i.k != (r3b(), n3b)) { + throw Adb(new Jed(nBe + X2b(a) + "' has its layer constraint set to LAST, but has at least one outgoing edge that does not go to a LAST_SEPARATE node. That must not happen.")); + } + } + } + function mHc(a, b, c) { + var d, e, f, g, h; + c.Ug("Longest path layering", 1); + a.a = b; + h = a.a.a; + a.b = $C(kE, Pwe, 28, h.c.length, 15, 1); + d = 0; + for (g = new Anb(h); g.a < g.c.c.length; ) { + e = RD(ynb(g), 10); + e.p = d; + a.b[d] = -1; + ++d; + } + for (f = new Anb(h); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + oHc(a, e); + } + h.c.length = 0; + a.a = null; + a.b = null; + c.Vg(); + } + function JUc(a, b, c, d) { + var e, f, g, h, i, j, k, l, m; + i = 0; + for (k = new Anb(a.a); k.a < k.c.c.length; ) { + j = RD(ynb(k), 10); + h = 0; + for (f = new is(Mr(Z2b(j).a.Kc(), new ir())); gs(f); ) { + e = RD(hs(f), 18); + l = K3b(e.c).b; + m = K3b(e.d).b; + h = $wnd.Math.max(h, $wnd.Math.abs(m - l)); + } + i = $wnd.Math.max(i, h); + } + g = d * $wnd.Math.min(1, b / c) * i; + return g; + } + function J_c(a, b) { + var c, d, e, f, g; + g = RD(mQb(b, (h_c(), Y$c)), 433); + for (f = Sub(b.b, 0); f.b != f.d.c; ) { + e = RD(evb(f), 40); + if (a.b[e.g] == 0) { + switch (g.g) { + case 0: + K_c(a, e); + break; + case 1: + I_c(a, e); + } + a.b[e.g] = 2; + } + } + for (d = Sub(a.a, 0); d.b != d.d.c; ) { + c = RD(evb(d), 65); + ze(c.b.d, c, true); + ze(c.c.b, c, true); + } + pQb(b, (q$c(), k$c), a.a); + } + function pse(a) { + var b; + b = new Rhb(); + (a & 256) != 0 && (b.a += "F", b); + (a & 128) != 0 && (b.a += "H", b); + (a & 512) != 0 && (b.a += "X", b); + (a & 2) != 0 && (b.a += "i", b); + (a & 8) != 0 && (b.a += "m", b); + (a & 4) != 0 && (b.a += "s", b); + (a & 32) != 0 && (b.a += "u", b); + (a & 64) != 0 && (b.a += "w", b); + (a & 16) != 0 && (b.a += "x", b); + (a & gwe) != 0 && (b.a += ",", b); + return shb(b.a); + } + function W8c(a, b) { + var c, d, e, f, g, h; + b.Ug(bGe, 1); + e = RD(Gxd(a, (X7c(), N7c)), 107); + f = (!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a); + g = yad(f); + h = $wnd.Math.max(g.a, Kfb(UD(Gxd(a, (X6c(), U6c)))) - (e.b + e.c)); + d = $wnd.Math.max(g.b, Kfb(UD(Gxd(a, R6c))) - (e.d + e.a)); + c = d - g.b; + Ixd(a, M6c, c); + Ixd(a, O6c, h); + Ixd(a, N6c, d + c); + b.Vg(); + } + function pke(a, b) { + nke(); + var c, d, e, f; + if (!b) { + return mke; + } else if (b == (nme(), kme) || (b == Ule || b == Sle || b == Tle) && a != Rle) { + return new wke(a, b); + } else { + d = RD(b, 692); + c = d.$k(); + if (!c) { + Afe(Qee((lke(), jke), b)); + c = d.$k(); + } + f = (!c.i && (c.i = new Tsb()), c.i); + e = RD(Wd(qtb(f.f, a)), 2041); + !e && Zjb(f, a, e = new wke(a, b)); + return e; + } + } + function jHb(a, b) { + var c, d; + d = rAb(a.b, b.b); + if (!d) { + throw Adb(new dgb("Invalid hitboxes for scanline constraint calculation.")); + } + (dHb(b.b, RD(tAb(a.b, b.b), 60)) || dHb(b.b, RD(sAb(a.b, b.b), 60))) && (gib(), String.fromCharCode(10)); + a.a[b.b.f] = RD(vAb(a.b, b.b), 60); + c = RD(uAb(a.b, b.b), 60); + !!c && (a.a[c.f] = b.b); + } + function lTb(a, b, c) { + var d, e, f, g, h, i, j, k, l; + f = IGd(b, false, false); + j = ssd(f); + l = Kfb(UD(Gxd(b, (tSb(), mSb)))); + e = jTb(j, l + a.a); + k = new ORb(e); + kQb(k, b); + Zjb(a.b, b, k); + ZEb(c.c, k); + i = (!b.n && (b.n = new C5d(I4, b, 1, 7)), b.n); + for (h = new dMd(i); h.e != h.i.gc(); ) { + g = RD(bMd(h), 135); + d = nTb(a, g, true, 0, 0); + ZEb(c.c, d); + } + return k; + } + function Zec(a, b) { + var c, d, e, f, g, h, i; + e = new bnb(); + for (c = 0; c <= a.j; c++) { + d = new R4b(b); + d.p = a.j - c; + ZEb(e.c, d); + } + for (h = new Anb(a.p); h.a < h.c.c.length; ) { + g = RD(ynb(h), 10); + g3b(g, RD(Vmb(e, a.j - a.g[g.p]), 30)); + } + f = new Anb(e); + while (f.a < f.c.c.length) { + i = RD(ynb(f), 30); + i.a.c.length == 0 && znb(f); + } + b.b.c.length = 0; + Tmb(b.b, e); + } + function xfc(a, b) { + var c, d, e, f, g, h, i, j, k; + i = RD(mQb(a, (Ywc(), Awc)), 12); + j = xjd(cD(WC(l3, 1), Nve, 8, 0, [i.i.n, i.n, i.a])).a; + k = a.i.n.b; + c = s2b(a.e); + for (e = c, f = 0, g = e.length; f < g; ++f) { + d = e[f]; + Z0b(d, i); + Oub(d.a, new rjd(j, k)); + if (b) { + h = RD(mQb(d, (yCc(), RAc)), 75); + if (!h) { + h = new Ejd(); + pQb(d, RAc, h); + } + Mub(h, new rjd(j, k)); + } + } + } + function yfc(a, b) { + var c, d, e, f, g, h, i, j, k; + e = RD(mQb(a, (Ywc(), Awc)), 12); + j = xjd(cD(WC(l3, 1), Nve, 8, 0, [e.i.n, e.n, e.a])).a; + k = a.i.n.b; + c = s2b(a.g); + for (g = c, h = 0, i = g.length; h < i; ++h) { + f = g[h]; + Y0b(f, e); + Nub(f.a, new rjd(j, k)); + if (b) { + d = RD(mQb(f, (yCc(), RAc)), 75); + if (!d) { + d = new Ejd(); + pQb(f, RAc, d); + } + Mub(d, new rjd(j, k)); + } + } + } + function Khc(a) { + var b, c, d, e, f, g, h, i, j; + d = a.b; + f = d.e; + g = Cod(RD(mQb(d, (yCc(), BBc)), 101)); + c = !!f && RD(mQb(f, (Ywc(), kwc)), 21).Hc((ovc(), hvc)); + if (g || c) { + return; + } + for (j = (h = new glb(a.e).a.vc().Kc(), new llb(h)); j.a.Ob(); ) { + i = (b = RD(j.a.Pb(), 44), RD(b.md(), 113)); + if (i.a) { + e = i.d; + P3b(e, null); + i.c = true; + a.a = true; + } + } + } + function iic(a, b) { + var c, d, e, f; + b.Ug("Semi-Interactive Crossing Minimization Processor", 1); + c = false; + for (e = new Anb(a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 30); + f = MDb(PDb(CDb(CDb(new SDb(null, new Swb(d.a, 16)), new nic()), new pic()), new ric()), new vic()); + c = c | f.a != null; + } + c && pQb(a, (Ywc(), rwc), (Geb(), true)); + b.Vg(); + } + function rKc(a, b) { + var c, d, e, f, g, h; + a.b = new bnb(); + a.d = RD(mQb(b, (Ywc(), Lwc)), 234); + a.e = Lwb(a.d); + f = new Yub(); + e = dv(cD(WC(eR, 1), OAe, 36, 0, [b])); + g = 0; + while (g < e.c.length) { + d = (tFb(g, e.c.length), RD(e.c[g], 36)); + d.p = g++; + c = new FJc(d, a.a, a.b); + Tmb(e, c.b); + Rmb(a.b, c); + c.s && (h = Sub(f, 0), cvb(h, c)); + } + a.c = new _sb(); + return f; + } + function yMb(a, b) { + var c, d, e, f, g, h; + for (g = RD(RD(Qc(a.r, b), 21), 87).Kc(); g.Ob(); ) { + f = RD(g.Pb(), 117); + c = f.c ? QKb(f.c) : 0; + if (c > 0) { + if (f.a) { + h = f.b.Mf().a; + if (c > h) { + e = (c - h) / 2; + f.d.b = e; + f.d.c = e; + } + } else { + f.d.c = a.s + c; + } + } else if (Rod(a.u)) { + d = wsd(f.b); + d.c < 0 && (f.d.b = -d.c); + d.c + d.b > f.b.Mf().a && (f.d.c = d.c + d.b - f.b.Mf().a); + } + } + } + function RUc(a, b) { + var c, d, e, f, g; + g = new bnb(); + c = b; + do { + f = RD(Wjb(a.b, c), 131); + f.B = c.c; + f.D = c.d; + ZEb(g.c, f); + c = RD(Wjb(a.k, c), 18); + } while (c); + d = (tFb(0, g.c.length), RD(g.c[0], 131)); + d.j = true; + d.A = RD(d.d.a.ec().Kc().Pb(), 18).c.i; + e = RD(Vmb(g, g.c.length - 1), 131); + e.q = true; + e.C = RD(e.d.a.ec().Kc().Pb(), 18).d.i; + return g; + } + function pPb(a) { + var b, c; + b = RD(a.a, 17).a; + c = RD(a.b, 17).a; + if (b >= 0) { + if (b == c) { + return new Ptd(sgb(-b - 1), sgb(-b - 1)); + } + if (b == -c) { + return new Ptd(sgb(-b), sgb(c + 1)); + } + } + if ($wnd.Math.abs(b) > $wnd.Math.abs(c)) { + if (b < 0) { + return new Ptd(sgb(-b), sgb(c)); + } + return new Ptd(sgb(-b), sgb(c + 1)); + } + return new Ptd(sgb(b + 1), sgb(c)); + } + function H8b(a) { + var b, c; + c = RD(mQb(a, (yCc(), UAc)), 171); + b = RD(mQb(a, (Ywc(), owc)), 311); + if (c == (cxc(), $wc)) { + pQb(a, UAc, bxc); + pQb(a, owc, (Gvc(), Fvc)); + } else if (c == axc) { + pQb(a, UAc, bxc); + pQb(a, owc, (Gvc(), Dvc)); + } else if (b == (Gvc(), Fvc)) { + pQb(a, UAc, $wc); + pQb(a, owc, Evc); + } else if (b == Dvc) { + pQb(a, UAc, axc); + pQb(a, owc, Evc); + } + } + function dSc() { + dSc = geb; + bSc = new pSc(); + ZRc = pfd(new ufd(), (sXb(), pXb), (hcc(), Fbc)); + aSc = nfd(pfd(new ufd(), pXb, Tbc), rXb, Sbc); + cSc = mfd(mfd(rfd(nfd(pfd(new ufd(), nXb, bcc), rXb, acc), qXb), _bc), ccc); + $Rc = nfd(pfd(pfd(pfd(new ufd(), oXb, Ibc), qXb, Kbc), qXb, Lbc), rXb, Jbc); + _Rc = nfd(pfd(pfd(new ufd(), qXb, Lbc), qXb, qbc), rXb, pbc); + } + function HUc() { + HUc = geb; + CUc = pfd(nfd(new ufd(), (sXb(), rXb), (hcc(), tbc)), pXb, Fbc); + GUc = mfd(mfd(rfd(nfd(pfd(new ufd(), nXb, bcc), rXb, acc), qXb), _bc), ccc); + DUc = nfd(pfd(pfd(pfd(new ufd(), oXb, Ibc), qXb, Kbc), qXb, Lbc), rXb, Jbc); + FUc = pfd(pfd(new ufd(), pXb, Tbc), rXb, Sbc); + EUc = nfd(pfd(pfd(new ufd(), qXb, Lbc), qXb, qbc), rXb, pbc); + } + function eSc(a, b, c, d, e) { + var f, g; + if ((!W0b(b) && b.c.i.c == b.d.i.c || !djd(xjd(cD(WC(l3, 1), Nve, 8, 0, [e.i.n, e.n, e.a])), c)) && !W0b(b)) { + b.c == e ? hu(b.a, 0, new sjd(c)) : Mub(b.a, new sjd(c)); + if (d && !Zsb(a.a, c)) { + g = RD(mQb(b, (yCc(), RAc)), 75); + if (!g) { + g = new Ejd(); + pQb(b, RAc, g); + } + f = new sjd(c); + Pub(g, f, g.c.b, g.c); + Ysb(a.a, f); + } + } + } + function ht(a, b) { + var c, d, e, f; + f = Ydb(Ndb(cwe, qgb(Ydb(Ndb(b == null ? 0 : tb(b), dwe)), 15))); + c = f & a.b.length - 1; + e = null; + for (d = a.b[c]; d; e = d, d = d.a) { + if (d.d == f && Hb(d.i, b)) { + !e ? a.b[c] = d.a : e.a = d.a; + Ts(RD(Hvb(d.c), 604), RD(Hvb(d.f), 604)); + Ss(RD(Hvb(d.b), 227), RD(Hvb(d.e), 227)); + --a.f; + ++a.e; + return true; + } + } + return false; + } + function dec(a) { + var b, c; + for (c = new is(Mr(Z2b(a).a.Kc(), new ir())); gs(c); ) { + b = RD(hs(c), 18); + if (b.c.i.k != (r3b(), n3b)) { + throw Adb(new Jed(nBe + X2b(a) + "' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen.")); + } + } + } + function Twd(a, b, c) { + var d, e, f, g, h, i, j; + e = ggb(a.Db & 254); + if (e == 0) { + a.Eb = c; + } else { + if (e == 1) { + h = $C(jJ, rve, 1, 2, 5, 1); + f = Xwd(a, b); + if (f == 0) { + h[0] = c; + h[1] = a.Eb; + } else { + h[0] = a.Eb; + h[1] = c; + } + } else { + h = $C(jJ, rve, 1, e + 1, 5, 1); + g = SD(a.Eb); + for (d = 2, i = 0, j = 0; d <= 128; d <<= 1) { + d == b ? h[j++] = c : (a.Db & d) != 0 && (h[j++] = g[i++]); + } + } + a.Eb = h; + } + a.Db |= b; + } + function vQb(a, b, c) { + var d, e, f, g; + this.b = new bnb(); + e = 0; + d = 0; + for (g = new Anb(a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 176); + c && iPb(f); + Rmb(this.b, f); + e += f.o; + d += f.p; + } + if (this.b.c.length > 0) { + f = RD(Vmb(this.b, 0), 176); + e += f.o; + d += f.p; + } + e *= 2; + d *= 2; + b > 1 ? e = eE($wnd.Math.ceil(e * b)) : d = eE($wnd.Math.ceil(d / b)); + this.a = new gQb(e, d); + } + function mkc(a, b, c, d, e, f) { + var g, h, i, j, k, l, m, n, o2, p, q, r; + k = d; + if (b.j && b.o) { + n = RD(Wjb(a.f, b.A), 60); + p = n.d.c + n.d.b; + --k; + } else { + p = b.a.c + b.a.b; + } + l = e; + if (c.q && c.o) { + n = RD(Wjb(a.f, c.C), 60); + j = n.d.c; + ++l; + } else { + j = c.a.c; + } + q = j - p; + i = $wnd.Math.max(2, l - k); + h = q / i; + o2 = p + h; + for (m = k; m < l; ++m) { + g = RD(f.Xb(m), 131); + r = g.a.b; + g.a.c = o2 - r / 2; + o2 += h; + } + } + function Wrc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m; + e = b ? new dsc() : new fsc(); + f = false; + do { + f = false; + j = b ? hv(a.b) : a.b; + for (i = j.Kc(); i.Ob(); ) { + h = RD(i.Pb(), 30); + m = bv(h.a); + b || hv(m); + for (l = new Anb(m); l.a < l.c.c.length; ) { + k = RD(ynb(l), 10); + if (e.Mb(k)) { + d = k; + c = RD(mQb(k, (Ywc(), Wvc)), 313); + g = b ? c.b : c.k; + f = Urc(d, g, b, false); + } + } + } + } while (f); + } + function sMc(a, b, c, d, e, f) { + var g, h, i, j, k, l; + j = c.c.length; + f && (a.c = $C(kE, Pwe, 28, b.length, 15, 1)); + for (g = e ? 0 : b.length - 1; e ? g < b.length : g >= 0; g += e ? 1 : -1) { + h = b[g]; + i = d == (qpd(), Xod) ? e ? b3b(h, d) : hv(b3b(h, d)) : e ? hv(b3b(h, d)) : b3b(h, d); + f && (a.c[h.p] = i.gc()); + for (l = i.Kc(); l.Ob(); ) { + k = RD(l.Pb(), 12); + a.d[k.p] = j++; + } + Tmb(c, i); + } + } + function AUc(a, b, c) { + var d, e, f, g, h, i, j, k; + f = Kfb(UD(a.b.Kc().Pb())); + j = Kfb(UD(fr(b.b))); + d = ijd(ajd(a.a), j - c); + e = ijd(ajd(b.a), c - f); + k = $id(d, e); + ijd(k, 1 / (j - f)); + this.a = k; + this.b = new bnb(); + h = true; + g = a.b.Kc(); + g.Pb(); + while (g.Ob()) { + i = Kfb(UD(g.Pb())); + if (h && i - c > AEe) { + this.b.Fc(c); + h = false; + } + this.b.Fc(i); + } + h && this.b.Fc(c); + } + function mJb(a) { + var b, c, d, e; + pJb(a, a.n); + if (a.d.c.length > 0) { + Nnb(a.c); + while (xJb(a, RD(ynb(new Anb(a.e.a)), 125)) < a.e.a.c.length) { + b = rJb(a); + e = b.e.e - b.d.e - b.a; + b.e.j && (e = -e); + for (d = new Anb(a.e.a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 125); + c.j && (c.e += e); + } + Nnb(a.c); + } + Nnb(a.c); + uJb(a, RD(ynb(new Anb(a.e.a)), 125)); + iJb(a); + } + } + function ned(a, b) { + hed(); + var c, d; + c = ugd(ygd(), b.Pg()); + if (c) { + d = c.j; + if (ZD(a, 207)) { + return xCd(RD(a, 27)) ? Csb(d, (Yhd(), Vhd)) || Csb(d, Whd) : Csb(d, (Yhd(), Vhd)); + } else if (ZD(a, 326)) { + return Csb(d, (Yhd(), Thd)); + } else if (ZD(a, 193)) { + return Csb(d, (Yhd(), Xhd)); + } else if (ZD(a, 366)) { + return Csb(d, (Yhd(), Uhd)); + } + } + return true; + } + function Cge(a, b, c) { + var d, e, f, g, h, i; + e = c; + f = e.Lk(); + if (qke(a.e, f)) { + if (f.Si()) { + d = RD(a.g, 124); + for (g = 0; g < a.i; ++g) { + h = d[g]; + if (pb(h, e) && g != b) { + throw Adb(new agb(LIe)); + } + } + } + } else { + i = pke(a.e.Dh(), f); + d = RD(a.g, 124); + for (g = 0; g < a.i; ++g) { + h = d[g]; + if (i.am(h.Lk()) && g != b) { + throw Adb(new agb(gLe)); + } + } + } + return RD(eHd(a, b, c), 76); + } + function hz(d, b) { + if (b instanceof Object) { + try { + b.__java$exception = d; + if (navigator.userAgent.toLowerCase().indexOf("msie") != -1 && $doc.documentMode < 9) { + return; + } + var c = d; + Object.defineProperties(b, { cause: { get: function() { + var a = c.he(); + return a && a.fe(); + } }, suppressed: { get: function() { + return c.ge(); + } } }); + } catch (a) { + } + } + } + function tjb(a, b) { + var c, d, e, f, g; + d = b >> 5; + b &= 31; + if (d >= a.d) { + return a.e < 0 ? (Pib(), Jib) : (Pib(), Oib); + } + f = a.d - d; + e = $C(kE, Pwe, 28, f + 1, 15, 1); + ujb(e, f, a.a, d, b); + if (a.e < 0) { + for (c = 0; c < d && a.a[c] == 0; c++) + ; + if (c < d || b > 0 && a.a[c] << 32 - b != 0) { + for (c = 0; c < f && e[c] == -1; c++) { + e[c] = 0; + } + c == f && ++f; + ++e[c]; + } + } + g = new cjb(a.e, f, e); + Rib(g); + return g; + } + function LSb(a) { + var b, c, d, e; + e = MCd(a); + c = new bTb(e); + d = new dTb(e); + b = new bnb(); + Tmb(b, (!a.d && (a.d = new Yie(G4, a, 8, 5)), a.d)); + Tmb(b, (!a.e && (a.e = new Yie(G4, a, 7, 4)), a.e)); + return RD(zDb(GDb(CDb(new SDb(null, new Swb(b, 16)), c), d), sBb(new _Bb(), new bCb(), new yCb(), new ACb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), wBb), vBb]))), 21); + } + function Tdc(a, b) { + var c; + c = RD(mQb(a, (yCc(), xAc)), 283); + b.Ug("Label side selection (" + c + ")", 1); + switch (c.g) { + case 0: + Udc(a, (Pnd(), Lnd)); + break; + case 1: + Udc(a, (Pnd(), Mnd)); + break; + case 2: + Sdc(a, (Pnd(), Lnd)); + break; + case 3: + Sdc(a, (Pnd(), Mnd)); + break; + case 4: + Vdc(a, (Pnd(), Lnd)); + break; + case 5: + Vdc(a, (Pnd(), Mnd)); + } + b.Vg(); + } + function qke(a, b) { + nke(); + var c, d, e; + if (b.Jk()) { + return true; + } else if (b.Ik() == -2) { + if (b == (Lle(), Jle) || b == Gle || b == Hle || b == Ile) { + return true; + } else { + e = a.Dh(); + if (BYd(e, b) >= 0) { + return false; + } else { + c = Eee((lke(), jke), e, b); + if (!c) { + return true; + } else { + d = c.Ik(); + return (d > 1 || d == -1) && yfe(Qee(jke, c)) != 3; + } + } + } + } else { + return false; + } + } + function _4b(a, b, c, d) { + var e, f, g, h, i; + h = AGd(RD(QHd((!b.b && (b.b = new Yie(E4, b, 4, 7)), b.b), 0), 84)); + i = AGd(RD(QHd((!b.c && (b.c = new Yie(E4, b, 5, 8)), b.c), 0), 84)); + if (vCd(h) == vCd(i)) { + return null; + } + if (NGd(i, h)) { + return null; + } + g = kzd(b); + if (g == c) { + return d; + } else { + f = RD(Wjb(a.a, g), 10); + if (f) { + e = f.e; + if (e) { + return e; + } + } + } + return null; + } + function uHc(a, b, c) { + var d, e, f, g, h; + c.Ug("Longest path to source layering", 1); + a.a = b; + h = a.a.a; + a.b = $C(kE, Pwe, 28, h.c.length, 15, 1); + d = 0; + for (g = new Anb(h); g.a < g.c.c.length; ) { + e = RD(ynb(g), 10); + e.p = d; + a.b[d] = -1; + ++d; + } + for (f = new Anb(h); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + wHc(a, e); + } + h.c.length = 0; + a.a = null; + a.b = null; + c.Vg(); + } + function BKc(a, b, c) { + var d, e, f, g, h, i; + d = pKc(c, a.length); + g = a[d]; + f = qKc(c, g.length); + if (g[f].k != (r3b(), m3b)) { + return; + } + i = b.j; + for (e = 0; e < i.c.length; e++) { + h = (tFb(e, i.c.length), RD(i.c[e], 12)); + if ((c ? h.j == (qpd(), Xod) : h.j == (qpd(), ppd)) && Heb(TD(mQb(h, (Ywc(), nwc))))) { + $mb(i, e, RD(mQb(g[f], (Ywc(), Awc)), 12)); + f += c ? 1 : -1; + } + } + } + function n8c(a, b) { + var c, d, e, f, g, h, i, j; + b.Ug("Greedy Width Approximator", 1); + c = Kfb(UD(Gxd(a, (X7c(), x7c)))); + i = RD(Gxd(a, N7c), 107); + f = RD(Gxd(a, U7c), 394); + g = Heb(TD(Gxd(a, T7c))); + h = Kfb(UD(Gxd(a, Q7c))); + j = (!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a); + Bad(j); + e = new g8c(c, f, g); + d = c8c(e, j, h, i); + Ixd(a, (X6c(), W6c), d.c); + b.Vg(); + } + function yKd(a) { + if (a.g == null) { + switch (a.p) { + case 0: + a.g = qKd(a) ? (Geb(), Feb) : (Geb(), Eeb); + break; + case 1: + a.g = $eb(rKd(a)); + break; + case 2: + a.g = hfb(sKd(a)); + break; + case 3: + a.g = tKd(a); + break; + case 4: + a.g = new Tfb(uKd(a)); + break; + case 6: + a.g = Hgb(wKd(a)); + break; + case 5: + a.g = sgb(vKd(a)); + break; + case 7: + a.g = bhb(xKd(a)); + } + } + return a.g; + } + function HKd(a) { + if (a.n == null) { + switch (a.p) { + case 0: + a.n = zKd(a) ? (Geb(), Feb) : (Geb(), Eeb); + break; + case 1: + a.n = $eb(AKd(a)); + break; + case 2: + a.n = hfb(BKd(a)); + break; + case 3: + a.n = CKd(a); + break; + case 4: + a.n = new Tfb(DKd(a)); + break; + case 6: + a.n = Hgb(FKd(a)); + break; + case 5: + a.n = sgb(EKd(a)); + break; + case 7: + a.n = bhb(GKd(a)); + } + } + return a.n; + } + function Pfe(a, b, c, d) { + var e, f, g, h, i; + h = (nke(), RD(b, 69).xk()); + if (qke(a.e, b)) { + if (b.Si() && dge(a, b, d, ZD(b, 102) && (RD(b, 19).Bb & txe) != 0)) { + throw Adb(new agb(LIe)); + } + } else { + i = pke(a.e.Dh(), b); + e = RD(a.g, 124); + for (g = 0; g < a.i; ++g) { + f = e[g]; + if (i.am(f.Lk())) { + throw Adb(new agb(gLe)); + } + } + } + VGd(a, gge(a, b, c), h ? RD(d, 76) : oke(b, d)); + } + function HGb(a) { + var b, c, d, e, f, g, h; + for (f = new Anb(a.a.a); f.a < f.c.c.length; ) { + d = RD(ynb(f), 316); + d.g = 0; + d.i = 0; + d.e.a.$b(); + } + for (e = new Anb(a.a.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 316); + for (c = d.a.a.ec().Kc(); c.Ob(); ) { + b = RD(c.Pb(), 60); + for (h = b.c.Kc(); h.Ob(); ) { + g = RD(h.Pb(), 60); + if (g.a != d) { + Ysb(d.e, g); + ++g.a.g; + ++g.a.i; + } + } + } + } + } + function X8b(a) { + var b, c, d, e, f; + e = RD(mQb(a, (yCc(), lBc)), 21); + f = RD(mQb(a, oBc), 21); + c = new rjd(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a); + b = new sjd(c); + if (e.Hc((Qpd(), Mpd))) { + d = RD(mQb(a, nBc), 8); + if (f.Hc((dqd(), Ypd))) { + d.a <= 0 && (d.a = 20); + d.b <= 0 && (d.b = 20); + } + b.a = $wnd.Math.max(c.a, d.a); + b.b = $wnd.Math.max(c.b, d.b); + } + Y8b(a, c, b); + } + function SYb(a, b) { + var c, d, e; + b.a ? (rAb(a.b, b.b), a.a[b.b.i] = RD(vAb(a.b, b.b), 86), c = RD(uAb(a.b, b.b), 86), !!c && (a.a[c.i] = b.b), void 0) : (d = RD(vAb(a.b, b.b), 86), !!d && d == a.a[b.b.i] && !!d.d && d.d != b.b.d && d.f.Fc(b.b), e = RD(uAb(a.b, b.b), 86), !!e && a.a[e.i] == b.b && !!e.d && e.d != b.b.d && b.b.f.Fc(e), wAb(a.b, b.b), void 0); + } + function Oec(a, b) { + var c, d, e, f, g, h; + f = a.d; + h = Kfb(UD(mQb(a, (yCc(), FAc)))); + if (h < 0) { + h = 0; + pQb(a, FAc, h); + } + b.o.b = h; + g = $wnd.Math.floor(h / 2); + d = new R3b(); + Q3b(d, (qpd(), ppd)); + P3b(d, b); + d.n.b = g; + e = new R3b(); + Q3b(e, Xod); + P3b(e, b); + e.n.b = g; + Z0b(a, d); + c = new a1b(); + kQb(c, a); + pQb(c, RAc, null); + Y0b(c, e); + Z0b(c, f); + Nec(b, a, c); + Lec(a, c); + return c; + } + function URc(a) { + var b, c; + c = RD(mQb(a, (Ywc(), kwc)), 21); + b = new ufd(); + if (c.Hc((ovc(), ivc))) { + ofd(b, ORc); + ofd(b, QRc); + } + if (c.Hc(kvc) || Heb(TD(mQb(a, (yCc(), GAc))))) { + ofd(b, QRc); + c.Hc(lvc) && ofd(b, RRc); + } + c.Hc(hvc) && ofd(b, NRc); + c.Hc(nvc) && ofd(b, SRc); + c.Hc(jvc) && ofd(b, PRc); + c.Hc(evc) && ofd(b, LRc); + c.Hc(gvc) && ofd(b, MRc); + return b; + } + function Qjb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m; + d = a.d; + f = b.d; + h = d + f; + i = a.e != b.e ? -1 : 1; + if (h == 2) { + k = Ndb(Cdb(a.a[0], yxe), Cdb(b.a[0], yxe)); + m = Ydb(k); + l = Ydb(Udb(k, 32)); + return l == 0 ? new ajb(i, m) : new cjb(i, 2, cD(WC(kE, 1), Pwe, 28, 15, [m, l])); + } + c = a.a; + e = b.a; + g = $C(kE, Pwe, 28, h, 15, 1); + Njb(c, d, e, f, g); + j = new cjb(i, h, g); + Rib(j); + return j; + } + function Uyb(a, b, c, d) { + var e, f; + if (!b) { + return c; + } else { + e = a.a.Ne(c.d, b.d); + if (e == 0) { + d.d = qlb(b, c.e); + d.b = true; + return b; + } + f = e < 0 ? 0 : 1; + b.a[f] = Uyb(a, b.a[f], c, d); + if (Vyb(b.a[f])) { + if (Vyb(b.a[1 - f])) { + b.b = true; + b.a[0].b = false; + b.a[1].b = false; + } else { + Vyb(b.a[f].a[f]) ? b = azb(b, 1 - f) : Vyb(b.a[f].a[1 - f]) && (b = _yb(b, 1 - f)); + } + } + } + return b; + } + function nKb(a, b, c) { + var d, e, f, g; + e = a.i; + d = a.n; + mKb(a, (ZJb(), WJb), e.c + d.b, c); + mKb(a, YJb, e.c + e.b - d.c - c[2], c); + g = e.b - d.b - d.c; + if (c[0] > 0) { + c[0] += a.d; + g -= c[0]; + } + if (c[2] > 0) { + c[2] += a.d; + g -= c[2]; + } + f = $wnd.Math.max(0, g); + c[1] = $wnd.Math.max(c[1], g); + mKb(a, XJb, e.c + d.b + c[0] - (c[1] - g) / 2, c); + if (b == XJb) { + a.c.b = f; + a.c.c = e.c + d.b + (f - g) / 2; + } + } + function D_b() { + this.c = $C(iE, vxe, 28, (qpd(), cD(WC(E3, 1), NAe, 64, 0, [opd, Yod, Xod, npd, ppd])).length, 15, 1); + this.b = $C(iE, vxe, 28, cD(WC(E3, 1), NAe, 64, 0, [opd, Yod, Xod, npd, ppd]).length, 15, 1); + this.a = $C(iE, vxe, 28, cD(WC(E3, 1), NAe, 64, 0, [opd, Yod, Xod, npd, ppd]).length, 15, 1); + Lnb(this.c, oxe); + Lnb(this.b, pxe); + Lnb(this.a, pxe); + } + function rte(a, b, c) { + var d, e, f, g; + if (b <= c) { + e = b; + f = c; + } else { + e = c; + f = b; + } + d = 0; + if (a.b == null) { + a.b = $C(kE, Pwe, 28, 2, 15, 1); + a.b[0] = e; + a.b[1] = f; + a.c = true; + } else { + d = a.b.length; + if (a.b[d - 1] + 1 == e) { + a.b[d - 1] = f; + return; + } + g = $C(kE, Pwe, 28, d + 2, 15, 1); + hib(a.b, 0, g, 0, d); + a.b = g; + a.b[d - 1] >= e && (a.c = false, a.a = false); + a.b[d++] = e; + a.b[d] = f; + a.c || vte(a); + } + } + function Oqc(a, b, c) { + var d, e, f, g, h, i, j; + j = b.d; + a.a = new cnb(j.c.length); + a.c = new Tsb(); + for (h = new Anb(j); h.a < h.c.c.length; ) { + g = RD(ynb(h), 105); + f = new USc(null); + Rmb(a.a, f); + Zjb(a.c, g, f); + } + a.b = new Tsb(); + Mqc(a, b); + for (d = 0; d < j.c.length - 1; d++) { + i = RD(Vmb(b.d, d), 105); + for (e = d + 1; e < j.c.length; e++) { + Pqc(a, i, RD(Vmb(b.d, e), 105), c); + } + } + } + function Q2c(a) { + var b, c, d, e, f; + e = new bnb(); + b = new btb((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); + for (d = new is(Mr(zGd(a).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 74); + if (!ZD(QHd((!c.b && (c.b = new Yie(E4, c, 4, 7)), c.b), 0), 193)) { + f = AGd(RD(QHd((!c.c && (c.c = new Yie(E4, c, 5, 8)), c.c), 0), 84)); + b.a._b(f) || (ZEb(e.c, f), true); + } + } + return e; + } + function Nqe(a, b, c) { + var d, e, f; + a.e = c; + a.d = 0; + a.b = 0; + a.f = 1; + a.i = b; + (a.e & 16) == 16 && (a.i = use(a.i)); + a.j = a.i.length; + Mqe(a); + f = Qqe(a); + if (a.d != a.j) + throw Adb(new Lqe(TId((Hde(), TIe)))); + if (a.g) { + for (d = 0; d < a.g.a.c.length; d++) { + e = RD(eyb(a.g, d), 592); + if (a.f <= e.a) + throw Adb(new Lqe(TId((Hde(), UIe)))); + } + a.g.a.c.length = 0; + } + return f; + } + function BNc(a, b) { + var c, d, e, f, g, h, i; + c = pxe; + h = (r3b(), p3b); + for (e = new Anb(b.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 10); + f = d.k; + if (f != p3b) { + g = UD(mQb(d, (Ywc(), Cwc))); + if (g == null) { + c = $wnd.Math.max(c, 0); + d.n.b = c + aFc(a.a, f, h); + } else { + d.n.b = (uFb(g), g); + } + } + i = aFc(a.a, f, h); + d.n.b < c + i + d.d.d && (d.n.b = c + i + d.d.d); + c = d.n.b + d.o.b + d.d.a; + h = f; + } + } + function w3c(a, b, c, d, e) { + var f, g, h, i, j, k; + !!a.d && a.d.Gg(e); + f = RD(e.Xb(0), 27); + if (u3c(a, c, f, false)) { + return true; + } + g = RD(e.Xb(e.gc() - 1), 27); + if (u3c(a, d, g, true)) { + return true; + } + if (p3c(a, e)) { + return true; + } + for (k = e.Kc(); k.Ob(); ) { + j = RD(k.Pb(), 27); + for (i = b.Kc(); i.Ob(); ) { + h = RD(i.Pb(), 27); + if (o3c(a, j, h)) { + return true; + } + } + } + return false; + } + function Ovd(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + m = b.c.length; + l = (j = a.Ih(c), RD(j >= 0 ? a.Lh(j, false, true) : Qvd(a, c, false), 61)); + n: + for (f = l.Kc(); f.Ob(); ) { + e = RD(f.Pb(), 58); + for (k = 0; k < m; ++k) { + g = (tFb(k, b.c.length), RD(b.c[k], 76)); + i = g.md(); + h = g.Lk(); + d = e.Nh(h, false); + if (i == null ? d != null : !pb(i, d)) { + continue n; + } + } + return e; + } + return null; + } + function o6b(a, b) { + var c, d, e, f, g, h, i; + b.Ug("Comment post-processing", 1); + for (f = new Anb(a.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 30); + d = new bnb(); + for (h = new Anb(e.a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 10); + i = RD(mQb(g, (Ywc(), Xwc)), 15); + c = RD(mQb(g, Vvc), 15); + if (!!i || !!c) { + p6b(g, i, c); + !!i && Tmb(d, i); + !!c && Tmb(d, c); + } + } + Tmb(e.a, d); + } + b.Vg(); + } + function kac(a, b, c, d) { + var e, f, g, h; + e = RD(e3b(b, (qpd(), ppd)).Kc().Pb(), 12); + f = RD(e3b(b, Xod).Kc().Pb(), 12); + for (h = new Anb(a.j); h.a < h.c.c.length; ) { + g = RD(ynb(h), 12); + while (g.e.c.length != 0) { + Z0b(RD(Vmb(g.e, 0), 18), e); + } + while (g.g.c.length != 0) { + Y0b(RD(Vmb(g.g, 0), 18), f); + } + } + c || pQb(b, (Ywc(), vwc), null); + d || pQb(b, (Ywc(), wwc), null); + } + function IGd(a, b, c) { + var d, e; + if ((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a).i == 0) { + return EGd(a); + } else { + d = RD(QHd((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a), 0), 166); + if (b) { + sLd((!d.a && (d.a = new XZd(D4, d, 5)), d.a)); + Ozd(d, 0); + Pzd(d, 0); + Hzd(d, 0); + Izd(d, 0); + } + if (c) { + e = (!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a); + while (e.i > 1) { + vLd(e, e.i - 1); + } + } + return d; + } + } + function Vdc(a, b) { + var c, d, e, f, g, h, i; + c = new wmb(); + for (f = new Anb(a.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 30); + i = true; + d = 0; + for (h = new Anb(e.a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 10); + switch (g.k.g) { + case 4: + ++d; + case 1: + imb(c, g); + break; + case 0: + Xdc(g, b); + default: + c.b == c.c || Wdc(c, d, i, false, b); + i = false; + d = 0; + } + } + c.b == c.c || Wdc(c, d, i, true, b); + } + } + function iMc(a, b) { + var c, d, e, f, g, h; + c = 0; + for (h = new Anb(b); h.a < h.c.c.length; ) { + g = RD(ynb(h), 12); + $Lc(a.b, a.d[g.p]); + for (e = new l4b(g.b); xnb(e.a) || xnb(e.b); ) { + d = RD(xnb(e.a) ? ynb(e.a) : ynb(e.b), 18); + f = AMc(a, g == d.c ? d.d : d.c); + if (f > a.d[g.p]) { + c += ZLc(a.b, f); + hmb(a.a, sgb(f)); + } + } + while (!nmb(a.a)) { + XLc(a.b, RD(smb(a.a), 17).a); + } + } + return c; + } + function Uec(a) { + var b, c, d, e, f, g, h, i, j; + a.a = new e6b(); + j = 0; + e = 0; + for (d = new Anb(a.i.b); d.a < d.c.c.length; ) { + b = RD(ynb(d), 30); + b.p = e; + for (i = new Anb(b.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + h.p = j; + ++j; + } + ++e; + } + f = a.r == (aEc(), TDc); + g = f ? Qec : Pec; + for (c = new Anb(a.i.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 30); + _mb(b.a, g); + d6b(a.a, sgb(b.p), b.a); + } + } + function zed(a, b, c) { + var d, e, f, g; + f = (!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a).i; + for (e = new dMd((!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a)); e.e != e.i.gc(); ) { + d = RD(bMd(e), 27); + (!d.a && (d.a = new C5d(J4, d, 10, 11)), d.a).i == 0 || (f += zed(a, d, false)); + } + if (c) { + g = vCd(b); + while (g) { + f += (!g.a && (g.a = new C5d(J4, g, 10, 11)), g.a).i; + g = vCd(g); + } + } + return f; + } + function vLd(a, b) { + var c, d, e, f; + if (a.Pj()) { + d = null; + e = a.Qj(); + a.Tj() && (d = a.Vj(a.$i(b), null)); + c = a.Ij(4, f = THd(a, b), null, b, e); + if (a.Mj() && f != null) { + d = a.Oj(f, d); + if (!d) { + a.Jj(c); + } else { + d.nj(c); + d.oj(); + } + } else { + if (!d) { + a.Jj(c); + } else { + d.nj(c); + d.oj(); + } + } + return f; + } else { + f = THd(a, b); + if (a.Mj() && f != null) { + d = a.Oj(f, null); + !!d && d.oj(); + } + return f; + } + } + function LNb(a) { + var b, c, d, e, f, g, h, i, j, k; + j = a.a; + b = new _sb(); + i = 0; + for (d = new Anb(a.d); d.a < d.c.c.length; ) { + c = RD(ynb(d), 226); + k = 0; + tvb(c.b, new ONb()); + for (g = Sub(c.b, 0); g.b != g.d.c; ) { + f = RD(evb(g), 226); + if (b.a._b(f)) { + e = c.c; + h = f.c; + k < h.d + h.a + j && k + e.a + j > h.d && (k = h.d + h.a + j); + } + } + c.c.d = k; + b.a.zc(c, b); + i = $wnd.Math.max(i, c.c.d + c.c.a); + } + return i; + } + function ovc() { + ovc = geb; + fvc = new pvc("COMMENTS", 0); + hvc = new pvc("EXTERNAL_PORTS", 1); + ivc = new pvc("HYPEREDGES", 2); + jvc = new pvc("HYPERNODES", 3); + kvc = new pvc("NON_FREE_PORTS", 4); + lvc = new pvc("NORTH_SOUTH_PORTS", 5); + nvc = new pvc(FBe, 6); + evc = new pvc("CENTER_LABELS", 7); + gvc = new pvc("END_LABELS", 8); + mvc = new pvc("PARTITIONS", 9); + } + function PA(a, b, c, d, e) { + if (d < 0) { + d = EA(a, e, cD(WC(qJ, 1), Nve, 2, 6, [Cwe, Dwe, Ewe, Fwe, Gwe, Hwe, Iwe, Jwe, Kwe, Lwe, Mwe, Nwe]), b); + d < 0 && (d = EA(a, e, cD(WC(qJ, 1), Nve, 2, 6, ["Jan", "Feb", "Mar", "Apr", Gwe, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]), b)); + if (d < 0) { + return false; + } + c.k = d; + return true; + } else if (d > 0) { + c.k = d - 1; + return true; + } + return false; + } + function RA(a, b, c, d, e) { + if (d < 0) { + d = EA(a, e, cD(WC(qJ, 1), Nve, 2, 6, [Cwe, Dwe, Ewe, Fwe, Gwe, Hwe, Iwe, Jwe, Kwe, Lwe, Mwe, Nwe]), b); + d < 0 && (d = EA(a, e, cD(WC(qJ, 1), Nve, 2, 6, ["Jan", "Feb", "Mar", "Apr", Gwe, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]), b)); + if (d < 0) { + return false; + } + c.k = d; + return true; + } else if (d > 0) { + c.k = d - 1; + return true; + } + return false; + } + function TA(a, b, c, d, e, f) { + var g, h, i, j; + h = 32; + if (d < 0) { + if (b[0] >= a.length) { + return false; + } + h = ihb(a, b[0]); + if (h != 43 && h != 45) { + return false; + } + ++b[0]; + d = HA(a, b); + if (d < 0) { + return false; + } + h == 45 && (d = -d); + } + if (h == 32 && b[0] - c == 2 && e.b == 2) { + i = new uB(); + j = i.q.getFullYear() - Owe + Owe - 80; + g = j % 100; + f.a = d == g; + d += (j / 100 | 0) * 100 + (d < g ? 100 : 0); + } + f.p = d; + return true; + } + function V4b(a, b) { + var c, d, e, f, g; + if (!vCd(a)) { + return; + } + g = RD(mQb(b, (yCc(), lBc)), 181); + dE(Gxd(a, BBc)) === dE((Bod(), Aod)) && Ixd(a, BBc, zod); + d = (lud(), new zud(vCd(a))); + f = new Fud(!vCd(a) ? null : new zud(vCd(a)), a); + e = GJb(d, f, false, true); + zsb(g, (Qpd(), Mpd)); + c = RD(mQb(b, nBc), 8); + c.a = $wnd.Math.max(e.a, c.a); + c.b = $wnd.Math.max(e.b, c.b); + } + function cec(a, b, c) { + var d, e, f, g, h, i; + for (g = RD(mQb(a, (Ywc(), lwc)), 15).Kc(); g.Ob(); ) { + f = RD(g.Pb(), 10); + switch (RD(mQb(f, (yCc(), UAc)), 171).g) { + case 2: + g3b(f, b); + break; + case 4: + g3b(f, c); + } + for (e = new is(Mr(W2b(f).a.Kc(), new ir())); gs(e); ) { + d = RD(hs(e), 18); + if (!!d.c && !!d.d) { + continue; + } + h = !d.d; + i = RD(mQb(d, Ewc), 12); + h ? Z0b(d, i) : Y0b(d, i); + } + } + } + function epc() { + epc = geb; + Zoc = new fpc(_ye, 0, (qpd(), Yod), Yod); + apc = new fpc(bze, 1, npd, npd); + Yoc = new fpc(aze, 2, Xod, Xod); + dpc = new fpc(cze, 3, ppd, ppd); + _oc = new fpc("NORTH_WEST_CORNER", 4, ppd, Yod); + $oc = new fpc("NORTH_EAST_CORNER", 5, Yod, Xod); + cpc = new fpc("SOUTH_WEST_CORNER", 6, npd, ppd); + bpc = new fpc("SOUTH_EAST_CORNER", 7, Xod, npd); + } + function P2c(a) { + var b, c, d, e, f, g; + f = new _sb(); + b = new btb((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); + for (e = new is(Mr(zGd(a).a.Kc(), new ir())); gs(e); ) { + d = RD(hs(e), 74); + if (!ZD(QHd((!d.b && (d.b = new Yie(E4, d, 4, 7)), d.b), 0), 193)) { + g = AGd(RD(QHd((!d.c && (d.c = new Yie(E4, d, 5, 8)), d.c), 0), 84)); + b.a._b(g) || (c = f.a.zc(g, f), c == null); + } + } + return f; + } + function tid() { + tid = geb; + sid = cD(WC(lE, 1), rxe, 28, 14, [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368e3, { l: 3506176, m: 794077, h: 1 }, { l: 884736, m: 916411, h: 20 }, { l: 3342336, m: 3912489, h: 363 }, { l: 589824, m: 3034138, h: 6914 }, { l: 3407872, m: 1962506, h: 138294 }]); + $wnd.Math.pow(2, -65); + } + function Ljb() { + Ljb = geb; + var a, b; + Jjb = $C(uJ, Nve, 92, 32, 0, 1); + Kjb = $C(uJ, Nve, 92, 32, 0, 1); + a = 1; + for (b = 0; b <= 18; b++) { + Jjb[b] = (Pib(), Ddb(a, 0) >= 0 ? jjb(a) : Xib(jjb(Odb(a)))); + Kjb[b] = Jdb(Sdb(a, b), 0) ? jjb(Sdb(a, b)) : Xib(jjb(Odb(Sdb(a, b)))); + a = Ndb(a, 5); + } + for (; b < Kjb.length; b++) { + Jjb[b] = Wib(Jjb[b - 1], Jjb[1]); + Kjb[b] = Wib(Kjb[b - 1], (Pib(), Mib)); + } + } + function tgc(a, b) { + var c, d, e, f, g; + if (a.c.length == 0) { + return new Ptd(sgb(0), sgb(0)); + } + c = (tFb(0, a.c.length), RD(a.c[0], 12)).j; + g = 0; + f = b.g; + d = b.g + 1; + while (g < a.c.length - 1 && c.g < f) { + ++g; + c = (tFb(g, a.c.length), RD(a.c[g], 12)).j; + } + e = g; + while (e < a.c.length - 1 && c.g < d) { + ++e; + c = (tFb(g, a.c.length), RD(a.c[g], 12)).j; + } + return new Ptd(sgb(g), sgb(e)); + } + function NJc(a, b, c, d) { + var e, f, g, h, i, j, k; + i = b3b(b, c); + (c == (qpd(), npd) || c == ppd) && (i = hv(i)); + g = false; + do { + e = false; + for (f = 0; f < i.gc() - 1; f++) { + j = RD(i.Xb(f), 12); + h = RD(i.Xb(f + 1), 12); + if (OJc(a, j, h, d)) { + g = true; + CMc(a.a, RD(i.Xb(f), 12), RD(i.Xb(f + 1), 12)); + k = RD(i.Xb(f + 1), 12); + i.hd(f + 1, RD(i.Xb(f), 12)); + i.hd(f, k); + e = true; + } + } + } while (e); + return g; + } + function lZc(a, b, c) { + var d, e, f, g; + c.Ug(MEe, 1); + e = RD(zDb(CDb(new SDb(null, new Swb(b.b, 16)), new pZc()), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + mZc(a, e, 0); + for (g = Sub(b.b, 0); g.b != g.d.c; ) { + f = RD(evb(g), 40); + d = Wjb(a.a, sgb(f.g)) != null ? RD(Wjb(a.a, sgb(f.g)), 17).a : 0; + pQb(f, (h_c(), f_c), sgb(d)); + } + c.Vg(); + } + function o3c(a, b, c) { + var d, e, f, g, h, i, j, k; + h = b.i - a.g / 2; + i = c.i - a.g / 2; + j = b.j - a.g / 2; + k = c.j - a.g / 2; + f = b.g + a.g; + g = c.g + a.g; + d = b.f + a.g; + e = c.f + a.g; + if (h < i + g && i < h && j < k + e && k < j) { + return true; + } else if (i < h + f && h < i && k < j + d && j < k) { + return true; + } else if (h < i + g && i < h && j < k && k < j + d) { + return true; + } else if (i < h + f && h < i && j < k + e && k < j) { + return true; + } + return false; + } + function gdc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + f = b.c.length; + g = (tFb(c, b.c.length), RD(b.c[c], 293)); + h = g.a.o.a; + l = g.c; + m = 0; + for (j = g.c; j <= g.f; j++) { + if (h <= a.a[j]) { + return j; + } + k = a.a[j]; + i = null; + for (e = c + 1; e < f; e++) { + d = (tFb(e, b.c.length), RD(b.c[e], 293)); + d.c <= j && d.f >= j && (i = d); + } + !!i && (k = $wnd.Math.max(k, i.a.o.a)); + if (k > m) { + l = j; + m = k; + } + } + return l; + } + function SNb(a) { + var b, c, d, e, f, g, h; + f = new yAb(RD(Qb(new eOb()), 50)); + h = pxe; + for (c = new Anb(a.d); c.a < c.c.c.length; ) { + b = RD(ynb(c), 226); + h = b.c.c; + while (f.a.gc() != 0) { + g = RD(f.a.Tc(), 226); + if (g.c.c + g.c.b < h) { + f.a.Bc(g) != null; + } else { + break; + } + } + for (e = f.a.ec().Kc(); e.Ob(); ) { + d = RD(e.Pb(), 226); + Mub(d.b, b); + Mub(b.b, d); + } + f.a.zc(b, (Geb(), Eeb)) == null; + } + } + function sZc(a, b, c) { + var d, e, f, g, h; + if (!gr(b)) { + h = c.eh((ZD(b, 16) ? RD(b, 16).gc() : Kr(b.Kc())) / a.a | 0); + h.Ug(OEe, 1); + g = new vZc(); + f = null; + for (e = b.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 40); + g = Al(cD(WC(cJ, 1), rve, 20, 0, [g, new dXc(d)])); + if (f) { + pQb(f, (q$c(), l$c), d); + pQb(d, b$c, f); + if (_Wc(d) == _Wc(f)) { + pQb(f, m$c, d); + pQb(d, c$c, f); + } + } + f = d; + } + h.Vg(); + sZc(a, g, c); + } + } + function z1d(a, b) { + var c, d, e; + if (b == null) { + for (d = (!a.a && (a.a = new C5d(l7, a, 9, 5)), new dMd(a.a)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 694); + e = c.c; + if ((e == null ? c.zb : e) == null) { + return c; + } + } + } else { + for (d = (!a.a && (a.a = new C5d(l7, a, 9, 5)), new dMd(a.a)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 694); + if (lhb(b, (e = c.c, e == null ? c.zb : e))) { + return c; + } + } + } + return null; + } + function BLb(a, b) { + var c; + c = null; + switch (b.g) { + case 1: + a.e.pf((umd(), Cld)) && (c = RD(a.e.of(Cld), 256)); + break; + case 3: + a.e.pf((umd(), Dld)) && (c = RD(a.e.of(Dld), 256)); + break; + case 2: + a.e.pf((umd(), Bld)) && (c = RD(a.e.of(Bld), 256)); + break; + case 4: + a.e.pf((umd(), Eld)) && (c = RD(a.e.of(Eld), 256)); + } + !c && (c = RD(a.e.of((umd(), zld)), 256)); + return c; + } + function $5c(a, b, c) { + var d, e, f, g, h, i; + e = c; + f = 0; + for (h = new Anb(b); h.a < h.c.c.length; ) { + g = RD(ynb(h), 27); + Ixd(g, ($4c(), P4c), sgb(e++)); + i = Q2c(g); + d = $wnd.Math.atan2(g.j + g.f / 2, g.i + g.g / 2); + d += d < 0 ? dFe : 0; + d < 0.7853981633974483 || d > FFe ? _mb(i, a.b) : d <= FFe && d > GFe ? _mb(i, a.d) : d <= GFe && d > HFe ? _mb(i, a.c) : d <= HFe && _mb(i, a.a); + f = $5c(a, i, f); + } + return e; + } + function sTc(a, b, c, d) { + var e, f, g, h, i, j; + e = (d.c + d.a) / 2; + Xub(b.j); + Mub(b.j, e); + Xub(c.e); + Mub(c.e, e); + j = new ATc(); + for (h = new Anb(a.f); h.a < h.c.c.length; ) { + f = RD(ynb(h), 132); + i = f.a; + uTc(j, b, i); + uTc(j, c, i); + } + for (g = new Anb(a.k); g.a < g.c.c.length; ) { + f = RD(ynb(g), 132); + i = f.b; + uTc(j, b, i); + uTc(j, c, i); + } + j.b += 2; + j.a += nTc(b, a.q); + j.a += nTc(a.q, c); + return j; + } + function U_c(a, b, c) { + var d; + c.Ug("Processor arrange node", 1); + Heb(TD(mQb(b, (h_c(), G$c)))); + d = RD(Lvb(DDb(CDb(new SDb(null, new Swb(b.b, 16)), new c0c()))), 40); + a.a = RD(mQb(b, g_c), 353); + a.a == (s_c(), q_c) || a.a == p_c ? T_c(a, new mob(cD(WC(Z$, 1), NEe, 40, 0, [d])), c.eh(1)) : a.a == o_c && S_c(a, new mob(cD(WC(Z$, 1), NEe, 40, 0, [d])), c.eh(1)); + c.Vg(); + } + function X7c() { + X7c = geb; + x7c = new mGd((umd(), Dkd), 1.3); + G7c = new mGd(mld, (Geb(), false)); + O7c = new A3b(15); + N7c = new mGd(tld, O7c); + Q7c = new mGd(fmd, 15); + y7c = Kkd; + F7c = kld; + H7c = nld; + I7c = pld; + E7c = ild; + J7c = sld; + P7c = Lld; + U7c = (u7c(), p7c); + T7c = o7c; + W7c = t7c; + V7c = r7c; + M7c = k7c; + L7c = j7c; + K7c = i7c; + S7c = n7c; + B7c = ald; + C7c = bld; + A7c = g7c; + z7c = f7c; + D7c = h7c; + R7c = m7c; + } + function MKb(a) { + var b, c, d, e, f, g, h; + c = a.i; + b = a.n; + h = c.d; + a.f == (vLb(), tLb) ? h += (c.a - a.e.b) / 2 : a.f == sLb && (h += c.a - a.e.b); + for (e = new Anb(a.d); e.a < e.c.c.length; ) { + d = RD(ynb(e), 187); + g = d.Mf(); + f = new pjd(); + f.b = h; + h += g.b + a.a; + switch (a.b.g) { + case 0: + f.a = c.c + b.b; + break; + case 1: + f.a = c.c + b.b + (c.b - g.a) / 2; + break; + case 2: + f.a = c.c + c.b - b.c - g.a; + } + d.Of(f); + } + } + function OKb(a) { + var b, c, d, e, f, g, h; + c = a.i; + b = a.n; + h = c.c; + a.b == (EKb(), BKb) ? h += (c.b - a.e.a) / 2 : a.b == DKb && (h += c.b - a.e.a); + for (e = new Anb(a.d); e.a < e.c.c.length; ) { + d = RD(ynb(e), 187); + g = d.Mf(); + f = new pjd(); + f.a = h; + h += g.a + a.a; + switch (a.f.g) { + case 0: + f.b = c.d + b.d; + break; + case 1: + f.b = c.d + b.d + (c.a - g.b) / 2; + break; + case 2: + f.b = c.d + c.a - b.a - g.b; + } + d.Of(f); + } + } + function U7b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2; + k = c.a.c; + g = c.a.c + c.a.b; + f = RD(Wjb(c.c, b), 468); + n = f.f; + o2 = f.a; + i = new rjd(k, n); + l = new rjd(g, o2); + e = k; + c.p || (e += a.c); + e += c.F + c.v * a.b; + j = new rjd(e, n); + m = new rjd(e, o2); + zjd(b.a, cD(WC(l3, 1), Nve, 8, 0, [i, j])); + h = c.d.a.gc() > 1; + if (h) { + d = new rjd(e, c.b); + Mub(b.a, d); + } + zjd(b.a, cD(WC(l3, 1), Nve, 8, 0, [m, l])); + } + function TGc(a, b, c) { + var d, e; + if (b < a.d.b.c.length) { + a.b = RD(Vmb(a.d.b, b), 30); + a.a = RD(Vmb(a.d.b, b - 1), 30); + a.c = b; + } else { + a.a = new R4b(a.d); + a.a.p = b - 1; + Rmb(a.d.b, a.a); + a.b = new R4b(a.d); + a.b.p = b; + Rmb(a.d.b, a.b); + a.c = b; + } + g3b(c, a.b); + for (e = new is(Mr(Z2b(c).a.Kc(), new ir())); gs(e); ) { + d = RD(hs(e), 18); + !d.c.i.c && d.c.i.k == (r3b(), n3b) && g3b(d.c.i, a.a); + } + } + function Gpd(a) { + Cgd(a, new Pfd($fd(Xfd(Zfd(Yfd(new agd(), qHe), "ELK Randomizer"), 'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'), new Jpd()))); + Agd(a, qHe, Eze, Cpd); + Agd(a, qHe, _ze, 15); + Agd(a, qHe, bAe, sgb(0)); + Agd(a, qHe, Dze, Yze); + } + function Gqe() { + Gqe = geb; + var a, b, c, d, e, f; + Eqe = $C(gE, YHe, 28, 255, 15, 1); + Fqe = $C(hE, zwe, 28, 16, 15, 1); + for (b = 0; b < 255; b++) { + Eqe[b] = -1; + } + for (c = 57; c >= 48; c--) { + Eqe[c] = c - 48 << 24 >> 24; + } + for (d = 70; d >= 65; d--) { + Eqe[d] = d - 65 + 10 << 24 >> 24; + } + for (e = 102; e >= 97; e--) { + Eqe[e] = e - 97 + 10 << 24 >> 24; + } + for (f = 0; f < 10; f++) + Fqe[f] = 48 + f & Bwe; + for (a = 10; a <= 15; a++) + Fqe[a] = 65 + a - 10 & Bwe; + } + function yYc(a, b) { + b.Ug("Process graph bounds", 1); + pQb(a, (q$c(), ZZc), Uvb(TCb(HDb(new SDb(null, new Swb(a.b, 16)), new DYc())))); + pQb(a, _Zc, Uvb(TCb(HDb(new SDb(null, new Swb(a.b, 16)), new FYc())))); + pQb(a, YZc, Uvb(SCb(HDb(new SDb(null, new Swb(a.b, 16)), new HYc())))); + pQb(a, $Zc, Uvb(SCb(HDb(new SDb(null, new Swb(a.b, 16)), new JYc())))); + b.Vg(); + } + function PWb(a) { + var b, c, d, e, f; + e = RD(mQb(a, (yCc(), lBc)), 21); + f = RD(mQb(a, oBc), 21); + c = new rjd(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a); + b = new sjd(c); + if (e.Hc((Qpd(), Mpd))) { + d = RD(mQb(a, nBc), 8); + if (f.Hc((dqd(), Ypd))) { + d.a <= 0 && (d.a = 20); + d.b <= 0 && (d.b = 20); + } + b.a = $wnd.Math.max(c.a, d.a); + b.b = $wnd.Math.max(c.b, d.b); + } + Heb(TD(mQb(a, mBc))) || QWb(a, c, b); + } + function lOc(a, b) { + var c, d, e, f; + for (f = b3b(b, (qpd(), npd)).Kc(); f.Ob(); ) { + d = RD(f.Pb(), 12); + c = RD(mQb(d, (Ywc(), Iwc)), 10); + !!c && rIb(uIb(tIb(vIb(sIb(new wIb(), 0), 0.1), a.i[b.p].d), a.i[c.p].a)); + } + for (e = b3b(b, Yod).Kc(); e.Ob(); ) { + d = RD(e.Pb(), 12); + c = RD(mQb(d, (Ywc(), Iwc)), 10); + !!c && rIb(uIb(tIb(vIb(sIb(new wIb(), 0), 0.1), a.i[c.p].d), a.i[b.p].a)); + } + } + function oYd(a) { + var b, c, d, e, f, g; + if (!a.c) { + g = new W$d(); + b = iYd; + f = b.a.zc(a, b); + if (f == null) { + for (d = new dMd(tYd(a)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 89); + e = i2d(c); + ZD(e, 90) && YGd(g, oYd(RD(e, 29))); + WGd(g, c); + } + b.a.Bc(a) != null; + b.a.gc() == 0 && void 0; + } + T$d(g); + VHd(g); + a.c = new N$d((RD(QHd(xYd((lTd(), kTd).o), 15), 19), g.i), g.g); + yYd(a).b &= -33; + } + return a.c; + } + function Dre(a) { + var b; + if (a.c != 10) + throw Adb(new Lqe(TId((Hde(), VIe)))); + b = a.a; + switch (b) { + case 110: + b = 10; + break; + case 114: + b = 13; + break; + case 116: + b = 9; + break; + case 92: + case 124: + case 46: + case 94: + case 45: + case 63: + case 42: + case 43: + case 123: + case 125: + case 40: + case 41: + case 91: + case 93: + break; + default: + throw Adb(new Lqe(TId((Hde(), xJe)))); + } + return b; + } + function GD(a) { + var b, c, d, e, f; + if (a.l == 0 && a.m == 0 && a.h == 0) { + return "0"; + } + if (a.h == fxe && a.m == 0 && a.l == 0) { + return "-9223372036854775808"; + } + if (a.h >> 19 != 0) { + return "-" + GD(xD(a)); + } + c = a; + d = ""; + while (!(c.l == 0 && c.m == 0 && c.h == 0)) { + e = fD(ixe); + c = iD(c, e, true); + b = "" + FD(eD); + if (!(c.l == 0 && c.m == 0 && c.h == 0)) { + f = 9 - b.length; + for (; f > 0; f--) { + b = "0" + b; + } + } + d = b + d; + } + return d; + } + function tkc(a) { + var b, c, d, e, f, g, h; + b = false; + c = 0; + for (e = new Anb(a.d.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 30); + d.p = c++; + for (g = new Anb(d.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 10); + !b && !gr(W2b(f)) && (b = true); + } + } + h = ysb((Cmd(), Amd), cD(WC(s3, 1), jwe, 88, 0, [ymd, zmd])); + if (!b) { + zsb(h, Bmd); + zsb(h, xmd); + } + a.a = new dGb(h); + akb(a.f); + akb(a.b); + akb(a.e); + akb(a.g); + } + function Ftb() { + if (!Object.create || !Object.getOwnPropertyNames) { + return false; + } + var a = "__proto__"; + var b = /* @__PURE__ */ Object.create(null); + if (b[a] !== void 0) { + return false; + } + var c = Object.getOwnPropertyNames(b); + if (c.length != 0) { + return false; + } + b[a] = 42; + if (b[a] !== 42) { + return false; + } + if (Object.getOwnPropertyNames(b).length == 0) { + return false; + } + return true; + } + function c_b(a, b, c) { + var d, e, f, g, h, i, j, k, l; + d = c.c; + e = c.d; + h = K3b(b.c); + i = K3b(b.d); + if (d == b.c) { + h = d_b(a, h, e); + i = e_b(b.d); + } else { + h = e_b(b.c); + i = d_b(a, i, e); + } + j = new Fjd(b.a); + Pub(j, h, j.a, j.a.a); + Pub(j, i, j.c.b, j.c); + g = b.c == d; + l = new E_b(); + for (f = 0; f < j.b - 1; ++f) { + k = new Ptd(RD(ju(j, f), 8), RD(ju(j, f + 1), 8)); + g && f == 0 || !g && f == j.b - 2 ? l.b = k : Rmb(l.a, k); + } + return l; + } + function W1b(a, b) { + var c, d, e, f; + f = a.j.g - b.j.g; + if (f != 0) { + return f; + } + c = RD(mQb(a, (yCc(), CBc)), 17); + d = RD(mQb(b, CBc), 17); + if (!!c && !!d) { + e = c.a - d.a; + if (e != 0) { + return e; + } + } + switch (a.j.g) { + case 1: + return Qfb(a.n.a, b.n.a); + case 2: + return Qfb(a.n.b, b.n.b); + case 3: + return Qfb(b.n.a, a.n.a); + case 4: + return Qfb(b.n.b, a.n.b); + default: + throw Adb(new dgb(UAe)); + } + } + function X9b(a, b, c, d) { + var e, f, g, h, i; + if (Kr((U9b(), new is(Mr(W2b(b).a.Kc(), new ir())))) >= a.a) { + return -1; + } + if (!W9b(b, c)) { + return -1; + } + if (gr(RD(d.Kb(b), 20))) { + return 1; + } + e = 0; + for (g = RD(d.Kb(b), 20).Kc(); g.Ob(); ) { + f = RD(g.Pb(), 18); + i = f.c.i == b ? f.d.i : f.c.i; + h = X9b(a, i, c, d); + if (h == -1) { + return -1; + } + e = $wnd.Math.max(e, h); + if (e > a.c - 1) { + return -1; + } + } + return e + 1; + } + function _Gd(a, b) { + var c, d, e, f, g, h; + if (dE(b) === dE(a)) { + return true; + } + if (!ZD(b, 15)) { + return false; + } + d = RD(b, 15); + h = a.gc(); + if (d.gc() != h) { + return false; + } + g = d.Kc(); + if (a.Yi()) { + for (c = 0; c < h; ++c) { + e = a.Vi(c); + f = g.Pb(); + if (e == null ? f != null : !pb(e, f)) { + return false; + } + } + } else { + for (c = 0; c < h; ++c) { + e = a.Vi(c); + f = g.Pb(); + if (dE(e) !== dE(f)) { + return false; + } + } + } + return true; + } + function RNd(a, b) { + var c, d, e, f, g, h; + if (a.f > 0) { + a._j(); + if (b != null) { + for (f = 0; f < a.d.length; ++f) { + c = a.d[f]; + if (c) { + d = RD(c.g, 379); + h = c.i; + for (g = 0; g < h; ++g) { + e = d[g]; + if (pb(b, e.md())) { + return true; + } + } + } + } + } else { + for (f = 0; f < a.d.length; ++f) { + c = a.d[f]; + if (c) { + d = RD(c.g, 379); + h = c.i; + for (g = 0; g < h; ++g) { + e = d[g]; + if (dE(b) === dE(e.md())) { + return true; + } + } + } + } + } + } + return false; + } + function see(a, b) { + var c, d, e; + c = b.qi(a.a); + if (c) { + e = WD($Nd((!c.b && (c.b = new SVd((JTd(), FTd), C8, c)), c.b), "affiliation")); + if (e != null) { + d = thb(e, Fhb(35)); + return d == -1 ? Lee(a, Uee(a, BXd(b.qk())), e) : d == 0 ? Lee(a, null, (BFb(1, e.length + 1), e.substr(1))) : Lee(a, (AFb(0, d, e.length), e.substr(0, d)), (BFb(d + 1, e.length + 1), e.substr(d + 1))); + } + } + return null; + } + function v9b(a, b, c) { + var d, e, f, g; + c.Ug("Orthogonally routing hierarchical port edges", 1); + a.a = 0; + d = y9b(b); + B9b(b, d); + A9b(a, b, d); + w9b(b); + e = RD(mQb(b, (yCc(), BBc)), 101); + f = b.b; + u9b((tFb(0, f.c.length), RD(f.c[0], 30)), e, b); + u9b(RD(Vmb(f, f.c.length - 1), 30), e, b); + g = b.b; + s9b((tFb(0, g.c.length), RD(g.c[0], 30))); + s9b(RD(Vmb(g, g.c.length - 1), 30)); + c.Vg(); + } + function JAd(a) { + switch (a) { + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: { + return a - 48 << 24 >> 24; + } + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: { + return a - 97 + 10 << 24 >> 24; + } + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: { + return a - 65 + 10 << 24 >> 24; + } + default: { + throw Adb(new Vgb("Invalid hexadecimal")); + } + } + } + function iIb() { + iIb = geb; + hIb = new jIb("SPIRAL", 0); + cIb = new jIb("LINE_BY_LINE", 1); + dIb = new jIb("MANHATTAN", 2); + bIb = new jIb("JITTER", 3); + fIb = new jIb("QUADRANTS_LINE_BY_LINE", 4); + gIb = new jIb("QUADRANTS_MANHATTAN", 5); + eIb = new jIb("QUADRANTS_JITTER", 6); + aIb = new jIb("COMBINE_LINE_BY_LINE_MANHATTAN", 7); + _Hb = new jIb("COMBINE_JITTER_MANHATTAN", 8); + } + function Urc(a, b, c, d) { + var e, f, g, h, i, j; + i = Zrc(a, c); + j = Zrc(b, c); + e = false; + while (!!i && !!j) { + if (d || Xrc(i, j, c)) { + g = Zrc(i, c); + h = Zrc(j, c); + asc(b); + asc(a); + f = i.c; + Hec(i, false); + Hec(j, false); + if (c) { + f3b(b, j.p, f); + b.p = j.p; + f3b(a, i.p + 1, f); + a.p = i.p; + } else { + f3b(a, i.p, f); + a.p = i.p; + f3b(b, j.p + 1, f); + b.p = j.p; + } + g3b(i, null); + g3b(j, null); + i = g; + j = h; + e = true; + } else { + break; + } + } + return e; + } + function aDc(a) { + switch (a.g) { + case 0: + return new XHc(); + case 1: + return new pHc(); + case 3: + return new GGc(); + case 4: + return new gHc(); + case 5: + return new jIc(); + case 6: + return new IHc(); + case 2: + return new xHc(); + case 7: + return new pGc(); + case 8: + return new YGc(); + default: + throw Adb(new agb("No implementation is available for the layerer " + (a.f != null ? a.f : "" + a.g))); + } + } + function tIc(a, b, c, d) { + var e, f, g, h, i; + e = false; + f = false; + for (h = new Anb(d.j); h.a < h.c.c.length; ) { + g = RD(ynb(h), 12); + dE(mQb(g, (Ywc(), Awc))) === dE(c) && (g.g.c.length == 0 ? g.e.c.length == 0 || (e = true) : f = true); + } + i = 0; + e && e ^ f ? i = c.j == (qpd(), Yod) ? -a.e[d.c.p][d.p] : b - a.e[d.c.p][d.p] : f && e ^ f ? i = a.e[d.c.p][d.p] + 1 : e && f && (i = c.j == (qpd(), Yod) ? 0 : b / 2); + return i; + } + function lSd(a, b, c, d, e, f, g, h) { + var i, j, k; + i = 0; + b != null && (i ^= ohb(b.toLowerCase())); + c != null && (i ^= ohb(c)); + d != null && (i ^= ohb(d)); + g != null && (i ^= ohb(g)); + h != null && (i ^= ohb(h)); + for (j = 0, k = f.length; j < k; j++) { + i ^= ohb(f[j]); + } + a ? i |= 256 : i &= -257; + e ? i |= 16 : i &= -17; + this.f = i; + this.i = b == null ? null : (uFb(b), b); + this.a = c; + this.d = d; + this.j = f; + this.g = g; + this.e = h; + } + function d3b(a, b, c) { + var d, e; + e = null; + switch (b.g) { + case 1: + e = (J3b(), E3b); + break; + case 2: + e = (J3b(), G3b); + } + d = null; + switch (c.g) { + case 1: + d = (J3b(), F3b); + break; + case 2: + d = (J3b(), D3b); + break; + case 3: + d = (J3b(), H3b); + break; + case 4: + d = (J3b(), I3b); + } + return !!e && !!d ? dr(a.j, new Yb(new mob(cD(WC(pE, 1), rve, 178, 0, [RD(Qb(e), 178), RD(Qb(d), 178)])))) : (yob(), yob(), vob); + } + function K8b(a) { + var b, c, d; + b = RD(mQb(a, (yCc(), nBc)), 8); + pQb(a, nBc, new rjd(b.b, b.a)); + switch (RD(mQb(a, Rzc), 255).g) { + case 1: + pQb(a, Rzc, (Rjd(), Qjd)); + break; + case 2: + pQb(a, Rzc, (Rjd(), Mjd)); + break; + case 3: + pQb(a, Rzc, (Rjd(), Ojd)); + break; + case 4: + pQb(a, Rzc, (Rjd(), Pjd)); + } + if ((!a.q ? (yob(), yob(), wob) : a.q)._b(IBc)) { + c = RD(mQb(a, IBc), 8); + d = c.a; + c.a = c.b; + c.b = d; + } + } + function Pmc(a, b, c, d, e, f) { + this.b = c; + this.d = e; + if (a >= b.length) { + throw Adb(new veb("Greedy SwitchDecider: Free layer not in graph.")); + } + this.c = b[a]; + this.e = new DMc(d); + rMc(this.e, this.c, (qpd(), ppd)); + this.i = new DMc(d); + rMc(this.i, this.c, Xod); + this.f = new Kmc(this.c); + this.a = !f && e.i && !e.s && this.c[0].k == (r3b(), m3b); + this.a && Nmc(this, a, b.length); + } + function $Mb(a, b) { + var c, d, e, f, g, h; + f = !a.B.Hc((dqd(), Wpd)); + g = a.B.Hc(Zpd); + a.a = new wKb(g, f, a.c); + !!a.n && C2b(a.a.n, a.n); + cLb(a.g, (ZJb(), XJb), a.a); + if (!b) { + d = new dLb(1, f, a.c); + d.n.a = a.k; + Wrb(a.p, (qpd(), Yod), d); + e = new dLb(1, f, a.c); + e.n.d = a.k; + Wrb(a.p, npd, e); + h = new dLb(0, f, a.c); + h.n.c = a.k; + Wrb(a.p, ppd, h); + c = new dLb(0, f, a.c); + c.n.b = a.k; + Wrb(a.p, Xod, c); + } + } + function zkc(a) { + var b, c, d; + b = RD(mQb(a.d, (yCc(), yAc)), 223); + switch (b.g) { + case 2: + c = rkc(a); + break; + case 3: + c = (d = new bnb(), FDb(CDb(GDb(EDb(EDb(new SDb(null, new Swb(a.d.b, 16)), new wlc()), new ylc()), new Alc()), new Kkc()), new Clc(d)), d); + break; + default: + throw Adb(new dgb("Compaction not supported for " + b + " edges.")); + } + ykc(a, c); + xgb(new Xkb(a.g), new ilc(a)); + } + function qYc(a, b) { + var c, d, e, f, g, h, i; + b.Ug("Process directions", 1); + c = RD(mQb(a, (h_c(), H$c)), 88); + if (c != (Cmd(), xmd)) { + for (e = Sub(a.b, 0); e.b != e.d.c; ) { + d = RD(evb(e), 40); + h = RD(mQb(d, (q$c(), o$c)), 17).a; + i = RD(mQb(d, p$c), 17).a; + switch (c.g) { + case 4: + i *= -1; + break; + case 1: + f = h; + h = i; + i = f; + break; + case 2: + g = h; + h = -i; + i = g; + } + pQb(d, o$c, sgb(h)); + pQb(d, p$c, sgb(i)); + } + } + b.Vg(); + } + function led(a, b) { + var c; + c = new qQb(); + !!b && kQb(c, RD(Wjb(a.a, H4), 96)); + ZD(b, 422) && kQb(c, RD(Wjb(a.a, L4), 96)); + if (ZD(b, 366)) { + kQb(c, RD(Wjb(a.a, I4), 96)); + return c; + } + ZD(b, 84) && kQb(c, RD(Wjb(a.a, E4), 96)); + if (ZD(b, 207)) { + kQb(c, RD(Wjb(a.a, J4), 96)); + return c; + } + if (ZD(b, 193)) { + kQb(c, RD(Wjb(a.a, K4), 96)); + return c; + } + ZD(b, 326) && kQb(c, RD(Wjb(a.a, G4), 96)); + return c; + } + function a_b(a) { + var b, c, d, e, f, g, h, i; + i = new m_b(); + for (h = new Anb(a.a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 10); + if (g.k == (r3b(), m3b)) { + continue; + } + $$b(i, g, new pjd()); + for (f = new is(Mr(a3b(g).a.Kc(), new ir())); gs(f); ) { + e = RD(hs(f), 18); + if (e.c.i.k == m3b || e.d.i.k == m3b) { + continue; + } + for (d = Sub(e.a, 0); d.b != d.d.c; ) { + c = RD(evb(d), 8); + b = c; + k_b(i, new eZb(b.a, b.b)); + } + } + } + return i; + } + function Kcd() { + Kcd = geb; + Jcd = new jGd(iGe); + Icd = (_cd(), $cd); + Hcd = new lGd(nGe, Icd); + Gcd = (ldd(), kdd); + Fcd = new lGd(jGe, Gcd); + Ecd = (Xbd(), Tbd); + Dcd = new lGd(kGe, Ecd); + zcd = new lGd(lGe, null); + Ccd = (Mbd(), Kbd); + Bcd = new lGd(mGe, Ccd); + vcd = (sbd(), rbd); + ucd = new lGd(oGe, vcd); + wcd = new lGd(pGe, (Geb(), false)); + xcd = new lGd(qGe, sgb(64)); + ycd = new lGd(rGe, true); + Acd = Lbd; + } + function eHc(a, b) { + var c, d, e, f, g, h, i, j, k, l; + a.p = 1; + e = a.c; + l = new Iub(); + for (k = c3b(a, (BEc(), zEc)).Kc(); k.Ob(); ) { + j = RD(k.Pb(), 12); + for (d = new Anb(j.g); d.a < d.c.c.length; ) { + c = RD(ynb(d), 18); + i = c.d.i; + if (a != i) { + f = i.c; + if (f.p <= e.p) { + g = e.p + 1; + if (g == b.b.c.length) { + h = new R4b(b); + h.p = g; + Rmb(b.b, h); + g3b(i, h); + } else { + h = RD(Vmb(b.b, g), 30); + g3b(i, h); + } + l.a.zc(i, l); + } + } + } + } + return l; + } + function mXc(a, b) { + var c, d; + c = RD(mQb(a, (q$c(), TZc)), 15); + if (!c || c.gc() < 1) { + return null; + } else if (c.gc() == 1) { + return RD(c.Xb(0), 40); + } + d = null; + switch (b.g) { + case 2: + d = RD(Lvb(KDb(c.Oc(), new mYc())), 40); + break; + case 1: + d = RD(Lvb(JDb(c.Oc(), new KXc())), 40); + break; + case 4: + d = RD(Lvb(KDb(c.Oc(), new OXc())), 40); + break; + case 3: + d = RD(Lvb(JDb(c.Oc(), new SXc())), 40); + } + return d; + } + function usc(a) { + var b, c, d, e, f, g; + if (a.a != null) { + return; + } + a.a = $C(xdb, Hye, 28, a.c.b.c.length, 16, 1); + a.a[0] = false; + if (nQb(a.c, (yCc(), wCc))) { + d = RD(mQb(a.c, wCc), 15); + for (c = d.Kc(); c.Ob(); ) { + b = RD(c.Pb(), 17).a; + b > 0 && b < a.a.length && (a.a[b] = false); + } + } else { + g = new Anb(a.c.b); + g.a < g.c.c.length && ynb(g); + e = 1; + while (g.a < g.c.c.length) { + f = RD(ynb(g), 30); + a.a[e++] = xsc(f); + } + } + } + function X6c() { + X6c = geb; + M6c = new jGd("additionalHeight"); + N6c = new jGd("drawingHeight"); + O6c = new jGd("drawingWidth"); + R6c = new jGd("minHeight"); + U6c = new jGd("minWidth"); + V6c = new jGd("rows"); + W6c = new jGd("targetWidth"); + T6c = new kGd("minRowIncrease", 0); + Q6c = new kGd("maxRowIncrease", 0); + S6c = new kGd("minRowDecrease", 0); + P6c = new kGd("maxRowDecrease", 0); + } + function r$d(a, b) { + var c, d, e, f; + e = a.b; + switch (b) { + case 1: { + a.b |= 1; + a.b |= 4; + a.b |= 8; + break; + } + case 2: { + a.b |= 2; + a.b |= 4; + a.b |= 8; + break; + } + case 4: { + a.b |= 1; + a.b |= 2; + a.b |= 4; + a.b |= 8; + break; + } + case 3: { + a.b |= 16; + a.b |= 8; + break; + } + case 0: { + a.b |= 32; + a.b |= 16; + a.b |= 8; + a.b |= 1; + a.b |= 2; + a.b |= 4; + break; + } + } + if (a.b != e && !!a.c) { + for (d = new dMd(a.c); d.e != d.i.gc(); ) { + f = RD(bMd(d), 482); + c = yYd(f); + v$d(c, b); + } + } + } + function CKc(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2; + e = false; + for (g = b, h = 0, i = g.length; h < i; ++h) { + f = g[h]; + Heb((Geb(), f.e ? true : false)) && !RD(Vmb(a.b, f.e.p), 219).s && (e = e | (j = f.e, k = RD(Vmb(a.b, j.p), 219), l = k.e, m = qKc(c, l.length), n = l[m][0], n.k == (r3b(), m3b) ? l[m] = AKc(f, l[m], c ? (qpd(), ppd) : (qpd(), Xod)) : k.c.mg(l, c), o2 = DKc(a, k, c, d), BKc(k.e, k.o, c), o2)); + } + return e; + } + function Aed(a, b) { + var c, d, e, f, g; + f = (!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a).i; + for (e = new dMd((!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a)); e.e != e.i.gc(); ) { + d = RD(bMd(e), 27); + if (dE(Gxd(d, (umd(), Xkd))) !== dE((Fnd(), End))) { + g = RD(Gxd(b, Tld), 143); + c = RD(Gxd(d, Tld), 143); + (g == c || !!g && Nfd(g, c)) && (!d.a && (d.a = new C5d(J4, d, 10, 11)), d.a).i != 0 && (f += Aed(a, d)); + } + } + return f; + } + function Toc(a) { + var b, c, d, e, f, g, h; + d = 0; + h = 0; + for (g = new Anb(a.d); g.a < g.c.c.length; ) { + f = RD(ynb(g), 105); + e = RD(zDb(CDb(new SDb(null, new Swb(f.j, 16)), new Cpc()), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + c = null; + if (d <= h) { + c = (qpd(), Yod); + d += e.gc(); + } else if (h < d) { + c = (qpd(), npd); + h += e.gc(); + } + b = c; + FDb(GDb(e.Oc(), new qpc()), new spc(b)); + } + } + function D6b(a) { + var b, c, d, e, f; + f = new cnb(a.a.c.length); + for (e = new Anb(a.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 10); + c = RD(mQb(d, (yCc(), UAc)), 171); + b = null; + switch (c.g) { + case 1: + case 2: + b = (huc(), guc); + break; + case 3: + case 4: + b = (huc(), euc); + } + if (b) { + pQb(d, (Ywc(), bwc), (huc(), guc)); + b == euc ? F6b(d, c, (BEc(), yEc)) : b == guc && F6b(d, c, (BEc(), zEc)); + } else { + ZEb(f.c, d); + } + } + return f; + } + function Snc(a) { + var b, c, d, e, f, g, h, i; + a.b = new hj(new mob((qpd(), cD(WC(E3, 1), NAe, 64, 0, [opd, Yod, Xod, npd, ppd]))), new mob((joc(), cD(WC(UV, 1), jwe, 372, 0, [ioc, hoc, goc])))); + for (g = cD(WC(E3, 1), NAe, 64, 0, [opd, Yod, Xod, npd, ppd]), h = 0, i = g.length; h < i; ++h) { + f = g[h]; + for (c = cD(WC(UV, 1), jwe, 372, 0, [ioc, hoc, goc]), d = 0, e = c.length; d < e; ++d) { + b = c[d]; + aj(a.b, f, b, new bnb()); + } + } + } + function BMb(a, b) { + var c, d, e, f, g, h, i, j, k, l; + g = RD(RD(Qc(a.r, b), 21), 87); + h = a.u.Hc((Pod(), Nod)); + c = a.u.Hc(Kod); + d = a.u.Hc(Jod); + j = a.u.Hc(Ood); + l = a.B.Hc((dqd(), cqd)); + k = !c && !d && (j || g.gc() == 2); + yMb(a, b); + e = null; + i = null; + if (h) { + f = g.Kc(); + e = RD(f.Pb(), 117); + i = e; + while (f.Ob()) { + i = RD(f.Pb(), 117); + } + e.d.b = 0; + i.d.c = 0; + k && !e.a && (e.d.c = 0); + } + if (l) { + CMb(g); + if (h) { + e.d.b = 0; + i.d.c = 0; + } + } + } + function JNb(a, b) { + var c, d, e, f, g, h, i, j, k, l; + g = RD(RD(Qc(a.r, b), 21), 87); + h = a.u.Hc((Pod(), Nod)); + c = a.u.Hc(Kod); + d = a.u.Hc(Jod); + i = a.u.Hc(Ood); + l = a.B.Hc((dqd(), cqd)); + j = !c && !d && (i || g.gc() == 2); + HNb(a, b); + k = null; + e = null; + if (h) { + f = g.Kc(); + k = RD(f.Pb(), 117); + e = k; + while (f.Ob()) { + e = RD(f.Pb(), 117); + } + k.d.d = 0; + e.d.a = 0; + j && !k.a && (k.d.a = 0); + } + if (l) { + KNb(g); + if (h) { + k.d.d = 0; + e.d.a = 0; + } + } + } + function ONc(a, b, c) { + var d, e, f, g, h, i, j, k; + e = b.k; + if (b.p >= 0) { + return false; + } else { + b.p = c.b; + Rmb(c.e, b); + } + if (e == (r3b(), o3b) || e == q3b) { + for (g = new Anb(b.j); g.a < g.c.c.length; ) { + f = RD(ynb(g), 12); + for (k = (d = new Anb(new _3b(f).a.g), new c4b(d)); xnb(k.a); ) { + j = RD(ynb(k.a), 18).d; + h = j.i; + i = h.k; + if (b.c != h.c) { + if (i == o3b || i == q3b) { + if (ONc(a, h, c)) { + return true; + } + } + } + } + } + } + return true; + } + function GWd(a) { + var b; + if ((a.Db & 64) != 0) + return cWd(a); + b = new Shb(cWd(a)); + b.a += " (changeable: "; + Ohb(b, (a.Bb & gwe) != 0); + b.a += ", volatile: "; + Ohb(b, (a.Bb & cKe) != 0); + b.a += ", transient: "; + Ohb(b, (a.Bb & qxe) != 0); + b.a += ", defaultValueLiteral: "; + Nhb(b, a.j); + b.a += ", unsettable: "; + Ohb(b, (a.Bb & bKe) != 0); + b.a += ", derived: "; + Ohb(b, (a.Bb & Ove) != 0); + b.a += ")"; + return b.a; + } + function tee(a, b) { + var c, d, e, f, g; + e = b.qi(a.a); + if (e) { + d = (!e.b && (e.b = new SVd((JTd(), FTd), C8, e)), e.b); + c = WD($Nd(d, DKe)); + if (c != null) { + f = c.lastIndexOf("#"); + g = f == -1 ? Wee(a, b.jk(), c) : f == 0 ? Vee(a, null, (BFb(1, c.length + 1), c.substr(1))) : Vee(a, (AFb(0, f, c.length), c.substr(0, f)), (BFb(f + 1, c.length + 1), c.substr(f + 1))); + if (ZD(g, 156)) { + return RD(g, 156); + } + } + } + return null; + } + function xee(a, b) { + var c, d, e, f, g; + d = b.qi(a.a); + if (d) { + c = (!d.b && (d.b = new SVd((JTd(), FTd), C8, d)), d.b); + f = WD($Nd(c, $Ke)); + if (f != null) { + e = f.lastIndexOf("#"); + g = e == -1 ? Wee(a, b.jk(), f) : e == 0 ? Vee(a, null, (BFb(1, f.length + 1), f.substr(1))) : Vee(a, (AFb(0, e, f.length), f.substr(0, e)), (BFb(e + 1, f.length + 1), f.substr(e + 1))); + if (ZD(g, 156)) { + return RD(g, 156); + } + } + } + return null; + } + function rRb(a) { + var b, c, d, e, f, g, h, i, j, k, l, m; + e = XPb(a.d); + g = RD(mQb(a.b, (tSb(), nSb)), 107); + h = g.b + g.c; + i = g.d + g.a; + k = e.d.a * a.e + h; + j = e.b.a * a.f + i; + RRb(a.b, new rjd(k, j)); + for (m = new Anb(a.g); m.a < m.c.c.length; ) { + l = RD(ynb(m), 568); + b = l.g - e.a.a; + c = l.i - e.c.a; + d = $id(jjd(new rjd(b, c), l.a, l.b), ijd(njd(ajd(yRb(l.e)), l.d * l.a, l.c * l.b), -0.5)); + f = zRb(l.e); + BRb(l.e, ojd(d, f)); + } + } + function Xgc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m; + b.Ug("Restoring reversed edges", 1); + for (i = new Anb(a.b); i.a < i.c.c.length; ) { + h = RD(ynb(i), 30); + for (k = new Anb(h.a); k.a < k.c.c.length; ) { + j = RD(ynb(k), 10); + for (m = new Anb(j.j); m.a < m.c.c.length; ) { + l = RD(ynb(m), 12); + g = s2b(l.g); + for (d = g, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + Heb(TD(mQb(c, (Ywc(), Nwc)))) && X0b(c, false); + } + } + } + } + b.Vg(); + } + function Zpc(a, b, c, d) { + var e, f, g, h, i; + i = $C(iE, Nve, 109, (qpd(), cD(WC(E3, 1), NAe, 64, 0, [opd, Yod, Xod, npd, ppd])).length, 0, 2); + for (f = cD(WC(E3, 1), NAe, 64, 0, [opd, Yod, Xod, npd, ppd]), g = 0, h = f.length; g < h; ++g) { + e = f[g]; + i[e.g] = $C(iE, vxe, 28, a.c[e.g], 15, 1); + } + _pc(i, a, Yod); + _pc(i, a, npd); + Ypc(i, a, Yod, b, c, d); + Ypc(i, a, Xod, b, c, d); + Ypc(i, a, npd, b, c, d); + Ypc(i, a, ppd, b, c, d); + return i; + } + function sLc(a, b, c) { + if (Ujb(a.a, b)) { + if (Zsb(RD(Wjb(a.a, b), 49), c)) { + return 1; + } + } else { + Zjb(a.a, b, new _sb()); + } + if (Ujb(a.a, c)) { + if (Zsb(RD(Wjb(a.a, c), 49), b)) { + return -1; + } + } else { + Zjb(a.a, c, new _sb()); + } + if (Ujb(a.b, b)) { + if (Zsb(RD(Wjb(a.b, b), 49), c)) { + return -1; + } + } else { + Zjb(a.b, b, new _sb()); + } + if (Ujb(a.b, c)) { + if (Zsb(RD(Wjb(a.b, c), 49), b)) { + return 1; + } + } else { + Zjb(a.b, c, new _sb()); + } + return 0; + } + function tMb(a) { + var b, c, d, e, f, g; + if (a.q == (Bod(), xod) || a.q == wod) { + return; + } + e = a.f.n.d + SJb(RD(Vrb(a.b, (qpd(), Yod)), 127)) + a.c; + b = a.f.n.a + SJb(RD(Vrb(a.b, npd), 127)) + a.c; + d = RD(Vrb(a.b, Xod), 127); + g = RD(Vrb(a.b, ppd), 127); + f = $wnd.Math.max(0, d.n.d - e); + f = $wnd.Math.max(f, g.n.d - e); + c = $wnd.Math.max(0, d.n.a - b); + c = $wnd.Math.max(c, g.n.a - b); + d.n.d = f; + g.n.d = f; + d.n.a = c; + g.n.a = c; + } + function Xfe(a, b, c, d) { + var e, f, g, h, i, j; + if (c == null) { + e = RD(a.g, 124); + for (h = 0; h < a.i; ++h) { + g = e[h]; + if (g.Lk() == b) { + return rLd(a, g, d); + } + } + } + f = (nke(), RD(b, 69).xk() ? RD(c, 76) : oke(b, c)); + if (Mvd(a.e)) { + j = !pge(a, b); + d = qLd(a, f, d); + i = b.Jk() ? fge(a, 3, b, null, c, kge(a, b, c, ZD(b, 102) && (RD(b, 19).Bb & txe) != 0), j) : fge(a, 1, b, b.ik(), c, -1, j); + d ? d.nj(i) : d = i; + } else { + d = qLd(a, f, d); + } + return d; + } + function xgd() { + this.b = new gub(); + this.d = new gub(); + this.e = new gub(); + this.c = new gub(); + this.a = new Tsb(); + this.f = new Tsb(); + HId(l3, new Igd(), new Kgd()); + HId(k3, new ehd(), new ghd()); + HId(h3, new ihd(), new khd()); + HId(i3, new mhd(), new ohd()); + HId(l4, new qhd(), new shd()); + HId(VJ, new Mgd(), new Ogd()); + HId(PK, new Qgd(), new Sgd()); + HId(BK, new Ugd(), new Wgd()); + HId(MK, new Ygd(), new $gd()); + HId(DL, new ahd(), new chd()); + } + function hc(a, b) { + var c, d, e, f, g; + a = a == null ? vve : (uFb(a), a); + for (e = 0; e < b.length; e++) { + b[e] = ic(b[e]); + } + c = new cib(); + g = 0; + d = 0; + while (d < b.length) { + f = a.indexOf("%s", g); + if (f == -1) { + break; + } + c.a += "" + zhb(a == null ? vve : (uFb(a), a), g, f); + Yhb(c, b[d++]); + g = f + 2; + } + Xhb(c, a, g, a.length); + if (d < b.length) { + c.a += " ["; + Yhb(c, b[d++]); + while (d < b.length) { + c.a += pve; + Yhb(c, b[d++]); + } + c.a += "]"; + } + return c.a; + } + function kMc(a, b) { + var c, d, e, f, g, h, i; + c = 0; + for (i = new Anb(b); i.a < i.c.c.length; ) { + h = RD(ynb(i), 12); + $Lc(a.b, a.d[h.p]); + g = 0; + for (e = new l4b(h.b); xnb(e.a) || xnb(e.b); ) { + d = RD(xnb(e.a) ? ynb(e.a) : ynb(e.b), 18); + if (uMc(d)) { + f = AMc(a, h == d.c ? d.d : d.c); + if (f > a.d[h.p]) { + c += ZLc(a.b, f); + hmb(a.a, sgb(f)); + } + } else { + ++g; + } + } + c += a.b.d * g; + while (!nmb(a.a)) { + XLc(a.b, RD(smb(a.a), 17).a); + } + } + return c; + } + function pje(a) { + var b, c, d, e, f, g; + f = 0; + b = WVd(a); + !!b.kk() && (f |= 4); + (a.Bb & bKe) != 0 && (f |= 2); + if (ZD(a, 102)) { + c = RD(a, 19); + e = Z5d(c); + (c.Bb & QHe) != 0 && (f |= 32); + if (e) { + AYd(uWd(e)); + f |= 8; + g = e.t; + (g > 1 || g == -1) && (f |= 16); + (e.Bb & QHe) != 0 && (f |= 64); + } + (c.Bb & txe) != 0 && (f |= cKe); + f |= gwe; + } else { + if (ZD(b, 469)) { + f |= 512; + } else { + d = b.kk(); + !!d && (d.i & 1) != 0 && (f |= 256); + } + } + (a.Bb & 512) != 0 && (f |= 128); + return f; + } + function vke(a, b) { + var c; + if (a.f == tke) { + c = yfe(Qee((lke(), jke), b)); + return a.e ? c == 4 && b != (Lle(), Jle) && b != (Lle(), Gle) && b != (Lle(), Hle) && b != (Lle(), Ile) : c == 2; + } + if (!!a.d && (a.d.Hc(b) || a.d.Hc(zfe(Qee((lke(), jke), b))) || a.d.Hc(Eee((lke(), jke), a.b, b)))) { + return true; + } + if (a.f) { + if (Xee((lke(), a.f), Bfe(Qee(jke, b)))) { + c = yfe(Qee(jke, b)); + return a.e ? c == 4 : c == 2; + } + } + return false; + } + function oKc(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n; + m = -1; + n = 0; + for (j = a, k = 0, l = j.length; k < l; ++k) { + i = j[k]; + for (f = i, g = 0, h = f.length; g < h; ++g) { + e = f[g]; + b = new urc(m == -1 ? a[0] : a[m], RD(mQb(Y2b(e), (yCc(), cAc)), 284), Bic(e), Heb(TD(mQb(Y2b(e), bAc)))); + for (c = 0; c < e.j.c.length; c++) { + for (d = c + 1; d < e.j.c.length; d++) { + prc(b, RD(Vmb(e.j, c), 12), RD(Vmb(e.j, d), 12)) > 0 && ++n; + } + } + } + ++m; + } + return n; + } + function S2c(a, b, c, d) { + var e, f, g, h, i, j, k, l; + g = RD(Gxd(c, (umd(), Qld)), 8); + i = g.a; + k = g.b + a; + e = $wnd.Math.atan2(k, i); + e < 0 && (e += dFe); + e += b; + e > dFe && (e -= dFe); + h = RD(Gxd(d, Qld), 8); + j = h.a; + l = h.b + a; + f = $wnd.Math.atan2(l, j); + f < 0 && (f += dFe); + f += b; + f > dFe && (f -= dFe); + return Zy(), bz(1e-10), $wnd.Math.abs(e - f) <= 1e-10 || e == f || isNaN(e) && isNaN(f) ? 0 : e < f ? -1 : e > f ? 1 : cz(isNaN(e), isNaN(f)); + } + function PGb(a) { + var b, c, d, e, f, g, h; + h = new Tsb(); + for (d = new Anb(a.a.b); d.a < d.c.c.length; ) { + b = RD(ynb(d), 60); + Zjb(h, b, new bnb()); + } + for (e = new Anb(a.a.b); e.a < e.c.c.length; ) { + b = RD(ynb(e), 60); + b.i = pxe; + for (g = b.c.Kc(); g.Ob(); ) { + f = RD(g.Pb(), 60); + RD(Wd(qtb(h.f, f)), 15).Fc(b); + } + } + for (c = new Anb(a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 60); + b.c.$b(); + b.c = RD(Wd(qtb(h.f, b)), 15); + } + HGb(a); + } + function AYb(a) { + var b, c, d, e, f, g, h; + h = new Tsb(); + for (d = new Anb(a.a.b); d.a < d.c.c.length; ) { + b = RD(ynb(d), 86); + Zjb(h, b, new bnb()); + } + for (e = new Anb(a.a.b); e.a < e.c.c.length; ) { + b = RD(ynb(e), 86); + b.o = pxe; + for (g = b.f.Kc(); g.Ob(); ) { + f = RD(g.Pb(), 86); + RD(Wd(qtb(h.f, f)), 15).Fc(b); + } + } + for (c = new Anb(a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 86); + b.f.$b(); + b.f = RD(Wd(qtb(h.f, b)), 15); + } + tYb(a); + } + function WPb(a, b, c, d) { + var e, f; + VPb(a, b, c, d); + hQb(b, a.j - b.j + c); + iQb(b, a.k - b.k + d); + for (f = new Anb(b.f); f.a < f.c.c.length; ) { + e = RD(ynb(f), 334); + switch (e.a.g) { + case 0: + eQb(a, b.g + e.b.a, 0, b.g + e.c.a, b.i - 1); + break; + case 1: + eQb(a, b.g + b.o, b.i + e.b.a, a.o - 1, b.i + e.c.a); + break; + case 2: + eQb(a, b.g + e.b.a, b.i + b.p, b.g + e.c.a, a.p - 1); + break; + default: + eQb(a, 0, b.i + e.b.a, b.g - 1, b.i + e.c.a); + } + } + } + function $ec(a, b) { + var c, d, e, f, g, h, i, j; + f = new bnb(); + b.b.c.length = 0; + c = RD(zDb(ODb(new SDb(null, new Swb(new Xkb(a.a.b), 1))), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + for (e = c.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 17); + g = _5b(a.a, d); + if (g.b != 0) { + h = new R4b(b); + ZEb(f.c, h); + h.p = d.a; + for (j = Sub(g, 0); j.b != j.d.c; ) { + i = RD(evb(j), 10); + g3b(i, h); + } + } + } + Tmb(b.b, f); + } + function TPb(b, c, d, e, f) { + var g, h, i; + try { + if (c >= b.o) { + throw Adb(new web()); + } + i = c >> 5; + h = c & 31; + g = Sdb(1, Ydb(Sdb(h, 1))); + f ? b.n[d][i] = Rdb(b.n[d][i], g) : b.n[d][i] = Cdb(b.n[d][i], Qdb(g)); + g = Sdb(g, 1); + e ? b.n[d][i] = Rdb(b.n[d][i], g) : b.n[d][i] = Cdb(b.n[d][i], Qdb(g)); + } catch (a) { + a = zdb(a); + if (ZD(a, 333)) { + throw Adb(new veb(fze + b.o + "*" + b.p + gze + c + pve + d + hze)); + } else + throw Adb(a); + } + } + function eMc(a, b, c, d) { + var e, f, g, h, i, j, k, l, m; + m = new yAb(new PMc(a)); + for (h = cD(WC(jR, 1), WAe, 10, 0, [b, c]), i = 0, j = h.length; i < j; ++i) { + g = h[i]; + for (l = aMc(g, d).Kc(); l.Ob(); ) { + k = RD(l.Pb(), 12); + for (f = new l4b(k.b); xnb(f.a) || xnb(f.b); ) { + e = RD(xnb(f.a) ? ynb(f.a) : ynb(f.b), 18); + if (!W0b(e)) { + m.a.zc(k, (Geb(), Eeb)) == null; + uMc(e) && rAb(m, k == e.c ? e.d : e.c); + } + } + } + } + return Qb(m), new dnb(m); + } + function w0c(a, b, c, d) { + var e, f, g; + if (b) { + f = Kfb(UD(mQb(b, (q$c(), j$c)))) + d; + g = c + Kfb(UD(mQb(b, d$c))) / 2; + pQb(b, o$c, sgb(Ydb(Hdb($wnd.Math.round(f))))); + pQb(b, p$c, sgb(Ydb(Hdb($wnd.Math.round(g))))); + b.d.b == 0 || w0c(a, RD(Hr((e = Sub(new dXc(b).a.d, 0), new gXc(e))), 40), c + Kfb(UD(mQb(b, d$c))) + a.b, d + Kfb(UD(mQb(b, g$c)))); + mQb(b, m$c) != null && w0c(a, RD(mQb(b, m$c), 40), c, d); + } + } + function cdc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m; + i = Y2b(b.a); + e = Kfb(UD(mQb(i, (yCc(), XBc)))) * 2; + k = Kfb(UD(mQb(i, cCc))); + j = $wnd.Math.max(e, k); + f = $C(iE, vxe, 28, b.f - b.c + 1, 15, 1); + d = -j; + c = 0; + for (h = b.b.Kc(); h.Ob(); ) { + g = RD(h.Pb(), 10); + d += a.a[g.c.p] + j; + f[c++] = d; + } + d += a.a[b.a.c.p] + j; + f[c++] = d; + for (m = new Anb(b.e); m.a < m.c.c.length; ) { + l = RD(ynb(m), 10); + d += a.a[l.c.p] + j; + f[c++] = d; + } + return f; + } + function Xud(a, b) { + var c, d, e, f; + f = RD(Gxd(a, (umd(), Old)), 64).g - RD(Gxd(b, Old), 64).g; + if (f != 0) { + return f; + } + c = RD(Gxd(a, Jld), 17); + d = RD(Gxd(b, Jld), 17); + if (!!c && !!d) { + e = c.a - d.a; + if (e != 0) { + return e; + } + } + switch (RD(Gxd(a, Old), 64).g) { + case 1: + return Qfb(a.i, b.i); + case 2: + return Qfb(a.j, b.j); + case 3: + return Qfb(b.i, a.i); + case 4: + return Qfb(b.j, a.j); + default: + throw Adb(new dgb(UAe)); + } + } + function zCd(a) { + var b, c, d; + if ((a.Db & 64) != 0) + return Fyd(a); + b = new dib(GHe); + c = a.k; + if (!c) { + !a.n && (a.n = new C5d(I4, a, 1, 7)); + if (a.n.i > 0) { + d = (!a.n && (a.n = new C5d(I4, a, 1, 7)), RD(QHd(a.n, 0), 135)).a; + !d || Zhb(Zhb((b.a += ' "', b), d), '"'); + } + } else { + Zhb(Zhb((b.a += ' "', b), c), '"'); + } + Zhb(Uhb(Zhb(Uhb(Zhb(Uhb(Zhb(Uhb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")"); + return b.a; + } + function OCd(a) { + var b, c, d; + if ((a.Db & 64) != 0) + return Fyd(a); + b = new dib(HHe); + c = a.k; + if (!c) { + !a.n && (a.n = new C5d(I4, a, 1, 7)); + if (a.n.i > 0) { + d = (!a.n && (a.n = new C5d(I4, a, 1, 7)), RD(QHd(a.n, 0), 135)).a; + !d || Zhb(Zhb((b.a += ' "', b), d), '"'); + } + } else { + Zhb(Zhb((b.a += ' "', b), c), '"'); + } + Zhb(Uhb(Zhb(Uhb(Zhb(Uhb(Zhb(Uhb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")"); + return b.a; + } + function Xnc(a, b) { + var c, d, e, f, g; + b == (TEc(), QEc) && Eob(RD(Qc(a.a, (Bnc(), xnc)), 15)); + for (e = RD(Qc(a.a, (Bnc(), xnc)), 15).Kc(); e.Ob(); ) { + d = RD(e.Pb(), 105); + c = RD(Vmb(d.j, 0), 113).d.j; + f = new dnb(d.j); + _mb(f, new Boc()); + switch (b.g) { + case 2: + Pnc(a, f, c, (joc(), hoc), 1); + break; + case 1: + case 0: + g = Rnc(f); + Pnc(a, new Rkb(f, 0, g), c, (joc(), hoc), 0); + Pnc(a, new Rkb(f, g, f.c.length), c, hoc, 1); + } + } + } + function sgd(a, b) { + var c, d, e, f, g, h, i; + if (b == null || b.length == 0) { + return null; + } + e = RD(Xjb(a.a, b), 143); + if (!e) { + for (d = (h = new glb(a.b).a.vc().Kc(), new llb(h)); d.a.Ob(); ) { + c = (f = RD(d.a.Pb(), 44), RD(f.md(), 143)); + g = c.c; + i = b.length; + if (lhb(g.substr(g.length - i, i), b) && (b.length == g.length || ihb(g, g.length - b.length - 1) == 46)) { + if (e) { + return null; + } + e = c; + } + } + !!e && $jb(a.a, b, e); + } + return e; + } + function HOb(a, b) { + var c, d, e, f; + c = new MOb(); + d = RD(zDb(GDb(new SDb(null, new Swb(a.f, 16)), c), sBb(new _Bb(), new bCb(), new yCb(), new ACb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), wBb), vBb]))), 21); + e = d.gc(); + d = RD(zDb(GDb(new SDb(null, new Swb(b.f, 16)), c), sBb(new _Bb(), new bCb(), new yCb(), new ACb(), cD(WC(QL, 1), jwe, 108, 0, [wBb, vBb]))), 21); + f = d.gc(); + if (e < f) { + return -1; + } + if (e == f) { + return 0; + } + return 1; + } + function I8b(a) { + var b, c, d; + if (!nQb(a, (yCc(), dBc))) { + return; + } + d = RD(mQb(a, dBc), 21); + if (d.dc()) { + return; + } + c = (b = RD(mfb(A3), 9), new Fsb(b, RD(WEb(b, b.length), 9), 0)); + d.Hc((dod(), $nd)) ? zsb(c, $nd) : zsb(c, _nd); + d.Hc(Ynd) || zsb(c, Ynd); + d.Hc(Xnd) ? zsb(c, cod) : d.Hc(Wnd) ? zsb(c, bod) : d.Hc(Znd) && zsb(c, aod); + d.Hc(cod) ? zsb(c, Xnd) : d.Hc(bod) ? zsb(c, Wnd) : d.Hc(aod) && zsb(c, Znd); + pQb(a, dBc, c); + } + function KLc(a) { + var b, c, d, e, f, g, h; + e = RD(mQb(a, (Ywc(), pwc)), 10); + d = a.j; + c = (tFb(0, d.c.length), RD(d.c[0], 12)); + for (g = new Anb(e.j); g.a < g.c.c.length; ) { + f = RD(ynb(g), 12); + if (dE(f) === dE(mQb(c, Awc))) { + if (f.j == (qpd(), Yod) && a.p > e.p) { + Q3b(f, npd); + if (f.d) { + h = f.o.b; + b = f.a.b; + f.a.b = h - b; + } + } else if (f.j == npd && e.p > a.p) { + Q3b(f, Yod); + if (f.d) { + h = f.o.b; + b = f.a.b; + f.a.b = -(h - b); + } + } + break; + } + } + return e; + } + function nTb(a, b, c, d, e) { + var f, g, h, i, j, k, l; + if (!(ZD(b, 207) || ZD(b, 366) || ZD(b, 193))) { + throw Adb(new agb("Method only works for ElkNode-, ElkLabel and ElkPort-objects.")); + } + g = a.a / 2; + i = b.i + d - g; + k = b.j + e - g; + j = i + b.g + a.a; + l = k + b.f + a.a; + f = new Ejd(); + Mub(f, new rjd(i, k)); + Mub(f, new rjd(i, l)); + Mub(f, new rjd(j, l)); + Mub(f, new rjd(j, k)); + h = new ORb(f); + kQb(h, b); + c && Zjb(a.b, b, h); + return h; + } + function w$b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + f = new rjd(b, c); + for (k = new Anb(a.a); k.a < k.c.c.length; ) { + j = RD(ynb(k), 10); + $id(j.n, f); + for (m = new Anb(j.j); m.a < m.c.c.length; ) { + l = RD(ynb(m), 12); + for (e = new Anb(l.g); e.a < e.c.c.length; ) { + d = RD(ynb(e), 18); + Cjd(d.a, f); + g = RD(mQb(d, (yCc(), RAc)), 75); + !!g && Cjd(g, f); + for (i = new Anb(d.b); i.a < i.c.c.length; ) { + h = RD(ynb(i), 72); + $id(h.n, f); + } + } + } + } + } + function o2b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + f = new rjd(b, c); + for (k = new Anb(a.a); k.a < k.c.c.length; ) { + j = RD(ynb(k), 10); + $id(j.n, f); + for (m = new Anb(j.j); m.a < m.c.c.length; ) { + l = RD(ynb(m), 12); + for (e = new Anb(l.g); e.a < e.c.c.length; ) { + d = RD(ynb(e), 18); + Cjd(d.a, f); + g = RD(mQb(d, (yCc(), RAc)), 75); + !!g && Cjd(g, f); + for (i = new Anb(d.b); i.a < i.c.c.length; ) { + h = RD(ynb(i), 72); + $id(h.n, f); + } + } + } + } + } + function X4b(a) { + if ((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b).i == 0) { + throw Adb(new Ked("Edges must have a source.")); + } else if ((!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c).i == 0) { + throw Adb(new Ked("Edges must have a target.")); + } else { + !a.b && (a.b = new Yie(E4, a, 4, 7)); + if (!(a.b.i <= 1 && (!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c.i <= 1))) { + throw Adb(new Ked("Hyperedges are not supported.")); + } + } + } + function mKc(a, b) { + var c, d, e, f, g, h, i, j, k, l; + l = 0; + f = new wmb(); + hmb(f, b); + while (f.b != f.c) { + i = RD(smb(f), 219); + j = 0; + k = RD(mQb(b.j, (yCc(), cAc)), 284); + g = Kfb(UD(mQb(b.j, Zzc))); + h = Kfb(UD(mQb(b.j, $zc))); + if (k != (kEc(), hEc)) { + j += g * nKc(i.e, k); + j += h * oKc(i.e); + } + l += PLc(i.d, i.e) + j; + for (e = new Anb(i.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 36); + c = RD(Vmb(a.b, d.p), 219); + c.s || (l += lKc(a, c)); + } + } + return l; + } + function Pib() { + Pib = geb; + var a; + Kib = new ajb(1, 1); + Mib = new ajb(1, 10); + Oib = new ajb(0, 0); + Jib = new ajb(-1, 1); + Lib = cD(WC(uJ, 1), Nve, 92, 0, [Oib, Kib, new ajb(1, 2), new ajb(1, 3), new ajb(1, 4), new ajb(1, 5), new ajb(1, 6), new ajb(1, 7), new ajb(1, 8), new ajb(1, 9), Mib]); + Nib = $C(uJ, Nve, 92, 32, 0, 1); + for (a = 0; a < Nib.length; a++) { + Nib[a] = Jdb(Sdb(1, a), 0) ? jjb(Sdb(1, a)) : Xib(jjb(Odb(Sdb(1, a)))); + } + } + function JJb(a, b, c, d, e, f, g) { + a.c = d.Lf().a; + a.d = d.Lf().b; + if (e) { + a.c += e.Lf().a; + a.d += e.Lf().b; + } + a.b = b.Mf().a; + a.a = b.Mf().b; + if (!e) { + c ? a.c -= g + b.Mf().a : a.c += d.Mf().a + g; + } else { + switch (e.ag().g) { + case 0: + case 2: + a.c += e.Mf().a + g + f.a + g; + break; + case 4: + a.c -= g + f.a + g + b.Mf().a; + break; + case 1: + a.c += e.Mf().a + g; + a.d -= g + f.b + g + b.Mf().b; + break; + case 3: + a.c += e.Mf().a + g; + a.d += e.Mf().b + g + f.b + g; + } + } + } + function xdc(a, b) { + var c, d; + this.b = new bnb(); + this.e = new bnb(); + this.a = a; + this.d = b; + udc(this); + vdc(this); + this.b.dc() ? this.c = a.c.p : this.c = RD(this.b.Xb(0), 10).c.p; + this.e.c.length == 0 ? this.f = a.c.p : this.f = RD(Vmb(this.e, this.e.c.length - 1), 10).c.p; + for (d = RD(mQb(a, (Ywc(), Mwc)), 15).Kc(); d.Ob(); ) { + c = RD(d.Pb(), 72); + if (nQb(c, (yCc(), uAc))) { + this.d = RD(mQb(c, uAc), 232); + break; + } + } + } + function erc(a, b, c) { + var d, e, f, g, h, i, j, k; + d = RD(Wjb(a.a, b), 49); + f = RD(Wjb(a.a, c), 49); + e = RD(Wjb(a.e, b), 49); + g = RD(Wjb(a.e, c), 49); + d.a.zc(c, d); + g.a.zc(b, g); + for (k = f.a.ec().Kc(); k.Ob(); ) { + j = RD(k.Pb(), 10); + d.a.zc(j, d); + Ysb(RD(Wjb(a.e, j), 49), b); + ye(RD(Wjb(a.e, j), 49), e); + } + for (i = e.a.ec().Kc(); i.Ob(); ) { + h = RD(i.Pb(), 10); + g.a.zc(h, g); + Ysb(RD(Wjb(a.a, h), 49), c); + ye(RD(Wjb(a.a, h), 49), f); + } + } + function uLc(a, b, c) { + var d, e, f, g, h, i, j, k; + d = RD(Wjb(a.a, b), 49); + f = RD(Wjb(a.a, c), 49); + e = RD(Wjb(a.b, b), 49); + g = RD(Wjb(a.b, c), 49); + d.a.zc(c, d); + g.a.zc(b, g); + for (k = f.a.ec().Kc(); k.Ob(); ) { + j = RD(k.Pb(), 10); + d.a.zc(j, d); + Ysb(RD(Wjb(a.b, j), 49), b); + ye(RD(Wjb(a.b, j), 49), e); + } + for (i = e.a.ec().Kc(); i.Ob(); ) { + h = RD(i.Pb(), 10); + g.a.zc(h, g); + Ysb(RD(Wjb(a.a, h), 49), c); + ye(RD(Wjb(a.a, h), 49), f); + } + } + function rrc(a, b, c) { + var d, e, f, g, h, i, j, k; + d = RD(Wjb(a.a, b), 49); + f = RD(Wjb(a.a, c), 49); + e = RD(Wjb(a.d, b), 49); + g = RD(Wjb(a.d, c), 49); + d.a.zc(c, d); + g.a.zc(b, g); + for (k = f.a.ec().Kc(); k.Ob(); ) { + j = RD(k.Pb(), 12); + d.a.zc(j, d); + Ysb(RD(Wjb(a.d, j), 49), b); + ye(RD(Wjb(a.d, j), 49), e); + } + for (i = e.a.ec().Kc(); i.Ob(); ) { + h = RD(i.Pb(), 12); + g.a.zc(h, g); + Ysb(RD(Wjb(a.a, h), 49), c); + ye(RD(Wjb(a.a, h), 49), f); + } + } + function lTc(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2; + f = c; + if (c < d) { + m = (n = new USc(a.p), o2 = new USc(a.p), ye(n.e, a.e), n.q = a.q, n.r = o2, LSc(n), ye(o2.j, a.j), o2.r = n, LSc(o2), new Ptd(n, o2)); + l = RD(m.a, 118); + k = RD(m.b, 118); + e = (tFb(f, b.c.length), RD(b.c[f], 339)); + g = sTc(a, l, k, e); + for (j = c + 1; j <= d; j++) { + h = (tFb(j, b.c.length), RD(b.c[j], 339)); + i = sTc(a, l, k, h); + if (qTc(h, i, e, g)) { + e = h; + g = i; + f = j; + } + } + } + return f; + } + function c8c(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2; + g = RD(QHd(b, 0), 27); + Dyd(g, 0); + Eyd(g, 0); + m = new bnb(); + ZEb(m.c, g); + h = g; + f = new lad(a.a, g.g, g.f, (sad(), rad)); + for (n = 1; n < b.i; n++) { + o2 = RD(QHd(b, n), 27); + i = d8c(a, oad, o2, h, f, m, c); + j = d8c(a, nad, o2, h, f, m, c); + k = d8c(a, qad, o2, h, f, m, c); + l = d8c(a, pad, o2, h, f, m, c); + e = f8c(a, i, j, k, l, o2, h, d); + Dyd(o2, e.d); + Eyd(o2, e.e); + kad(e, rad); + f = e; + h = o2; + ZEb(m.c, o2); + } + return f; + } + function yEd(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + k = null; + m = b; + l = pEd(a, DGd(c), m); + jyd(l, zDd(m, uIe)); + g = wDd(m, kIe); + d = new MEd(a, l); + ODd(d.a, d.b, g); + h = wDd(m, lIe); + e = new NEd(a, l); + PDd(e.a, e.b, h); + if ((!l.b && (l.b = new Yie(E4, l, 4, 7)), l.b).i == 0 || (!l.c && (l.c = new Yie(E4, l, 5, 8)), l.c).i == 0) { + f = zDd(m, uIe); + i = yIe + f; + j = i + zIe; + throw Adb(new CDd(j)); + } + GEd(m, l); + zEd(a, m, l); + k = CEd(a, m, l); + return k; + } + function pJb(a, b) { + var c, d, e, f, g, h, i; + e = $C(kE, Pwe, 28, a.e.a.c.length, 15, 1); + for (g = new Anb(a.e.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 125); + e[f.d] += f.b.a.c.length; + } + h = gv(b); + while (h.b != 0) { + f = RD(h.b == 0 ? null : (sFb(h.b != 0), Wub(h, h.a.a)), 125); + for (d = Nr(new Anb(f.g.a)); d.Ob(); ) { + c = RD(d.Pb(), 218); + i = c.e; + i.e = $wnd.Math.max(i.e, f.e + c.a); + --e[i.d]; + e[i.d] == 0 && (Pub(h, i, h.c.b, h.c), true); + } + } + } + function tJb(a) { + var b, c, d, e, f, g, h, i, j, k, l; + c = qwe; + e = lve; + for (h = new Anb(a.e.a); h.a < h.c.c.length; ) { + f = RD(ynb(h), 125); + e = $wnd.Math.min(e, f.e); + c = $wnd.Math.max(c, f.e); + } + b = $C(kE, Pwe, 28, c - e + 1, 15, 1); + for (g = new Anb(a.e.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 125); + f.e -= e; + ++b[f.e]; + } + d = 0; + if (a.k != null) { + for (j = a.k, k = 0, l = j.length; k < l; ++k) { + i = j[k]; + b[d++] += i; + if (b.length == d) { + break; + } + } + } + return b; + } + function I0c(a, b) { + var c, d, e, f, g, h; + b.Ug("Edge routing", 1); + e = RD(mQb(a, (h_c(), K$c)), 392); + if (e == (LZc(), JZc)) { + G0c(a); + } else if (e == IZc) { + RD(Lvb(DDb(CDb(new SDb(null, new Swb(a.b, 16)), new AWc()))), 40); + f = Kfb(UD(mQb(a, $$c))); + g = Kfb(UD(mQb(a, J$c))); + h = RD(mQb(a, H$c), 88); + E0c(a, h, f); + F0c(a, h, f, g); + D0c(a, h, f, g); + for (d = Sub(a.a, 0); d.b != d.d.c; ) { + c = RD(evb(d), 65); + c.a.b < 2 && H0c(c); + } + } + b.Vg(); + } + function IKd(a) { + switch (a.d) { + case 9: + case 8: { + return true; + } + case 3: + case 5: + case 4: + case 6: { + return false; + } + case 7: { + return RD(HKd(a), 17).a == a.o; + } + case 1: + case 2: { + if (a.o == -2) { + return false; + } else { + switch (a.p) { + case 0: + case 1: + case 2: + case 6: + case 5: + case 7: { + return Gdb(a.k, a.f); + } + case 3: + case 4: { + return a.j == a.e; + } + default: { + return a.n == null ? a.g == null : pb(a.n, a.g); + } + } + } + } + default: { + return false; + } + } + } + function Grc(a, b) { + var c, d, e; + b.Ug("Breaking Point Insertion", 1); + d = new ysc(a); + switch (RD(mQb(a, (yCc(), rCc)), 351).g) { + case 2: + e = new Ksc(); + break; + case 0: + e = new zrc(); + break; + default: + e = new Nsc(); + } + c = e.og(a, d); + Heb(TD(mQb(a, tCc))) && (c = Frc(a, c)); + if (!e.pg() && nQb(a, xCc)) { + switch (RD(mQb(a, xCc), 352).g) { + case 2: + c = Wsc(d, c); + break; + case 1: + c = Usc(d, c); + } + } + if (c.dc()) { + b.Vg(); + return; + } + Drc(a, c); + b.Vg(); + } + function oJc(a, b, c) { + var d, e, f, g, h, i, j, k, l; + f = new cnb(b.c.length); + for (j = new Anb(b); j.a < j.c.c.length; ) { + g = RD(ynb(j), 10); + Rmb(f, a.b[g.c.p][g.p]); + } + jJc(a, f, c); + l = null; + while (l = kJc(f)) { + lJc(a, RD(l.a, 239), RD(l.b, 239), f); + } + b.c.length = 0; + for (e = new Anb(f); e.a < e.c.c.length; ) { + d = RD(ynb(e), 239); + for (h = d.d, i = 0, k = h.length; i < k; ++i) { + g = h[i]; + ZEb(b.c, g); + a.a[g.c.p][g.p].a = pJc(d.g, d.d[0]).a; + } + } + } + function wnd(a) { + Cgd(a, new Pfd($fd(Xfd(Zfd(Yfd(new agd(), pHe), "ELK Fixed"), "Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points."), new znd()))); + Agd(a, pHe, Eze, tnd); + Agd(a, pHe, fEe, iGd(und)); + Agd(a, pHe, QGe, iGd(ond)); + Agd(a, pHe, jAe, iGd(pnd)); + Agd(a, pHe, CAe, iGd(rnd)); + Agd(a, pHe, hAe, iGd(qnd)); + } + function Do(a, b, c) { + var d, e, f, g, h; + d = Ydb(Ndb(cwe, qgb(Ydb(Ndb(b == null ? 0 : tb(b), dwe)), 15))); + h = Ydb(Ndb(cwe, qgb(Ydb(Ndb(c == null ? 0 : tb(c), dwe)), 15))); + f = Go(a, b, d); + if (!!f && h == f.f && Hb(c, f.i)) { + return c; + } + g = Ho(a, c, h); + if (g) { + throw Adb(new agb("value already present: " + c)); + } + e = new kp(b, d, c, h); + if (f) { + yo(a, f); + Bo(a, e, f); + f.e = null; + f.c = null; + return f.i; + } else { + Bo(a, e, null); + Fo(a); + return null; + } + } + function V7b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2; + k = c.a.c; + g = c.a.c + c.a.b; + f = RD(Wjb(c.c, b), 468); + n = f.f; + o2 = f.a; + f.b ? i = new rjd(g, n) : i = new rjd(k, n); + f.c ? l = new rjd(k, o2) : l = new rjd(g, o2); + e = k; + c.p || (e += a.c); + e += c.F + c.v * a.b; + j = new rjd(e, n); + m = new rjd(e, o2); + zjd(b.a, cD(WC(l3, 1), Nve, 8, 0, [i, j])); + h = c.d.a.gc() > 1; + if (h) { + d = new rjd(e, c.b); + Mub(b.a, d); + } + zjd(b.a, cD(WC(l3, 1), Nve, 8, 0, [m, l])); + } + function aEc() { + aEc = geb; + $Dc = new bEc(LAe, 0); + VDc = new bEc("NIKOLOV", 1); + YDc = new bEc("NIKOLOV_PIXEL", 2); + WDc = new bEc("NIKOLOV_IMPROVED", 3); + XDc = new bEc("NIKOLOV_IMPROVED_PIXEL", 4); + SDc = new bEc("DUMMYNODE_PERCENTAGE", 5); + ZDc = new bEc("NODECOUNT_PERCENTAGE", 6); + _Dc = new bEc("NO_BOUNDARY", 7); + TDc = new bEc("MODEL_ORDER_LEFT_TO_RIGHT", 8); + UDc = new bEc("MODEL_ORDER_RIGHT_TO_LEFT", 9); + } + function use(a) { + var b, c, d, e, f; + d = a.length; + b = new Rhb(); + f = 0; + while (f < d) { + c = ihb(a, f++); + if (c == 9 || c == 10 || c == 12 || c == 13 || c == 32) + continue; + if (c == 35) { + while (f < d) { + c = ihb(a, f++); + if (c == 13 || c == 10) + break; + } + continue; + } + if (c == 92 && f < d) { + if ((e = (BFb(f, a.length), a.charCodeAt(f))) == 35 || e == 9 || e == 10 || e == 12 || e == 13 || e == 32) { + Jhb(b, e & Bwe); + ++f; + } else { + b.a += "\\"; + Jhb(b, e & Bwe); + ++f; + } + } else + Jhb(b, c & Bwe); + } + return b.a; + } + function D4c() { + D4c = geb; + n4c = new lGd(oFe, (Geb(), false)); + t4c = new lGd(pFe, sgb(0)); + u4c = new lGd(qFe, 0); + v4c = new lGd(rFe, false); + q4c = (g4c(), d4c); + p4c = new lGd(sFe, q4c); + sgb(0); + o4c = new lGd(tFe, sgb(1)); + A4c = (t5c(), r5c); + z4c = new lGd(uFe, A4c); + C4c = (Y3c(), X3c); + B4c = new lGd(vFe, C4c); + s4c = (j5c(), i5c); + r4c = new lGd(wFe, s4c); + y4c = new lGd(xFe, 0); + w4c = new lGd(yFe, false); + x4c = new lGd(zFe, false); + } + function t3c(a, b) { + var c, d, e; + for (d = new Anb(b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 27); + Rc(a.a, c, c); + Rc(a.b, c, c); + e = Q2c(c); + if (e.c.length != 0) { + !!a.d && a.d.Gg(e); + Rc(a.a, c, (tFb(0, e.c.length), RD(e.c[0], 27))); + Rc(a.b, c, RD(Vmb(e, e.c.length - 1), 27)); + while (N2c(e).c.length != 0) { + e = N2c(e); + !!a.d && a.d.Gg(e); + Rc(a.a, c, (tFb(0, e.c.length), RD(e.c[0], 27))); + Rc(a.b, c, RD(Vmb(e, e.c.length - 1), 27)); + } + } + } + } + function jwd(a, b, c) { + var d, e, f, g, h, i; + if (!b) { + return null; + } else { + if (c <= -1) { + d = vYd(b.Dh(), -1 - c); + if (ZD(d, 102)) { + return RD(d, 19); + } else { + g = RD(b.Mh(d), 160); + for (h = 0, i = g.gc(); h < i; ++h) { + if (dE(g.Ul(h)) === dE(a)) { + e = g.Tl(h); + if (ZD(e, 102)) { + f = RD(e, 19); + if ((f.Bb & QHe) != 0) { + return f; + } + } + } + } + throw Adb(new dgb("The containment feature could not be located")); + } + } else { + return Z5d(RD(vYd(a.Dh(), c), 19)); + } + } + } + function Lqc(a) { + var b, c, d, e, f, g, h, i, j, k; + c = 0; + for (h = new Anb(a.d); h.a < h.c.c.length; ) { + g = RD(ynb(h), 105); + !!g.i && (g.i.c = c++); + } + b = YC(xdb, [Nve, Hye], [183, 28], 16, [c, c], 2); + k = a.d; + for (e = 0; e < k.c.length; e++) { + i = (tFb(e, k.c.length), RD(k.c[e], 105)); + if (i.i) { + for (f = e + 1; f < k.c.length; f++) { + j = (tFb(f, k.c.length), RD(k.c[f], 105)); + if (j.i) { + d = Qqc(i, j); + b[i.i.c][j.i.c] = d; + b[j.i.c][i.i.c] = d; + } + } + } + } + return b; + } + function u7c() { + u7c = geb; + m7c = new lGd(LFe, (Geb(), false)); + sgb(-1); + f7c = new lGd(MFe, sgb(-1)); + sgb(-1); + g7c = new lGd(NFe, sgb(-1)); + h7c = new lGd(OFe, false); + s7c = (z8c(), x8c); + r7c = new lGd(PFe, s7c); + t7c = new lGd(QFe, -1); + q7c = (_6c(), $6c); + p7c = new lGd(RFe, q7c); + o7c = new lGd(SFe, true); + l7c = (b9c(), $8c); + k7c = new lGd(TFe, l7c); + j7c = new lGd(UFe, false); + sgb(1); + i7c = new lGd(VFe, sgb(1)); + n7c = new jGd(WFe); + } + function WYc() { + WYc = geb; + VYc = new XYc("ROOT_PROC", 0); + OYc = new XYc("FAN_PROC", 1); + SYc = new XYc("LEVEL_PROC", 2); + TYc = new XYc("NEIGHBORS_PROC", 3); + RYc = new XYc("LEVEL_HEIGHT", 4); + NYc = new XYc("DIRECTION_PROC", 5); + UYc = new XYc("NODE_POSITION_PROC", 6); + LYc = new XYc("COMPACTION_PROC", 7); + QYc = new XYc("LEVEL_COORDS", 8); + PYc = new XYc("GRAPH_BOUNDS_PROC", 9); + MYc = new XYc("DETREEIFYING_PROC", 10); + } + function Fee(a, b) { + var c, d, e, f, g, h, i, j, k, l; + l = zYd(b); + j = null; + e = false; + for (h = 0, k = tYd(l.a).i; h < k; ++h) { + g = RD(N_d(l, h, (f = RD(QHd(tYd(l.a), h), 89), i = f.c, ZD(i, 90) ? RD(i, 29) : (JTd(), zTd))), 29); + c = Fee(a, g); + if (!c.dc()) { + if (!j) { + j = c; + } else { + if (!e) { + e = true; + j = new PSd(j); + } + j.Gc(c); + } + } + } + d = Kee(a, b); + if (d.dc()) { + return !j ? (yob(), yob(), vob) : j; + } else { + if (!j) { + return d; + } else { + e || (j = new PSd(j)); + j.Gc(d); + return j; + } + } + } + function Gee(a, b) { + var c, d, e, f, g, h, i, j, k, l; + l = zYd(b); + j = null; + d = false; + for (h = 0, k = tYd(l.a).i; h < k; ++h) { + f = RD(N_d(l, h, (e = RD(QHd(tYd(l.a), h), 89), i = e.c, ZD(i, 90) ? RD(i, 29) : (JTd(), zTd))), 29); + c = Gee(a, f); + if (!c.dc()) { + if (!j) { + j = c; + } else { + if (!d) { + d = true; + j = new PSd(j); + } + j.Gc(c); + } + } + } + g = Nee(a, b); + if (g.dc()) { + return !j ? (yob(), yob(), vob) : j; + } else { + if (!j) { + return g; + } else { + d || (j = new PSd(j)); + j.Gc(g); + return j; + } + } + } + function gNb(a) { + var b, c, d, e; + d = a.o; + RMb(); + if (a.A.dc() || pb(a.A, QMb)) { + e = d.a; + } else { + e = ZKb(a.f); + if (a.A.Hc((Qpd(), Npd)) && !a.B.Hc((dqd(), _pd))) { + e = $wnd.Math.max(e, ZKb(RD(Vrb(a.p, (qpd(), Yod)), 252))); + e = $wnd.Math.max(e, ZKb(RD(Vrb(a.p, npd), 252))); + } + b = TMb(a); + !!b && (e = $wnd.Math.max(e, b.a)); + } + Heb(TD(a.e.Tf().of((umd(), mld)))) ? d.a = $wnd.Math.max(d.a, e) : d.a = e; + c = a.f.i; + c.c = 0; + c.b = e; + $Kb(a.f); + } + function _fe(a, b, c) { + var d, e, f, g, h, i; + if (ZD(b, 76)) { + return rLd(a, b, c); + } else { + h = null; + f = null; + d = RD(a.g, 124); + for (g = 0; g < a.i; ++g) { + e = d[g]; + if (pb(b, e.md())) { + f = e.Lk(); + if (ZD(f, 102) && (RD(f, 19).Bb & QHe) != 0) { + h = e; + break; + } + } + } + if (h) { + if (Mvd(a.e)) { + i = f.Jk() ? fge(a, 4, f, b, null, kge(a, f, b, ZD(f, 102) && (RD(f, 19).Bb & txe) != 0), true) : fge(a, f.tk() ? 2 : 1, f, b, f.ik(), -1, true); + c ? c.nj(i) : c = i; + } + c = _fe(a, h, c); + } + return c; + } + } + function yge(a, b, c) { + var d, e, f, g; + g = pke(a.e.Dh(), b); + d = RD(a.g, 124); + nke(); + if (RD(b, 69).xk()) { + for (f = 0; f < a.i; ++f) { + e = d[f]; + if (g.am(e.Lk())) { + if (pb(e, c)) { + vLd(a, f); + return true; + } + } + } + } else if (c != null) { + for (f = 0; f < a.i; ++f) { + e = d[f]; + if (g.am(e.Lk())) { + if (pb(c, e.md())) { + vLd(a, f); + return true; + } + } + } + } else { + for (f = 0; f < a.i; ++f) { + e = d[f]; + if (g.am(e.Lk())) { + if (e.md() == null) { + vLd(a, f); + return true; + } + } + } + } + return false; + } + function xcc(a, b) { + var c, d, e, f, g; + b.Ug("Node and Port Label Placement and Node Sizing", 1); + DJb((i1b(), new t1b(a, true, true, new Acc()))); + if (RD(mQb(a, (Ywc(), kwc)), 21).Hc((ovc(), hvc))) { + f = RD(mQb(a, (yCc(), EBc)), 21); + e = f.Hc((Pod(), Mod)); + g = Heb(TD(mQb(a, FBc))); + for (d = new Anb(a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 30); + FDb(CDb(new SDb(null, new Swb(c.a, 16)), new Ccc()), new Ecc(f, e, g)); + } + } + b.Vg(); + } + function SHc(a, b) { + var c, d, e, f, g; + a.c == null || a.c.length < b.c.length ? a.c = $C(xdb, Hye, 28, b.c.length, 16, 1) : Nnb(a.c); + a.a = new bnb(); + d = 0; + for (g = new Anb(b); g.a < g.c.c.length; ) { + e = RD(ynb(g), 10); + e.p = d++; + } + c = new Yub(); + for (f = new Anb(b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + if (!a.c[e.p]) { + THc(a, e); + c.b == 0 || (sFb(c.b != 0), RD(c.a.a.c, 15)).gc() < a.a.c.length ? Nub(c, a.a) : Oub(c, a.a); + a.a = new bnb(); + } + } + return c; + } + function Ucd(a) { + Cgd(a, new Pfd($fd(Xfd(Zfd(Yfd(new agd(), uGe), "ELK SPOrE Overlap Removal"), 'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'), new Xcd()))); + Agd(a, uGe, iGe, iGd(Scd)); + Agd(a, uGe, Eze, Qcd); + Agd(a, uGe, _ze, 8); + Agd(a, uGe, nGe, iGd(Rcd)); + Agd(a, uGe, qGe, iGd(Ocd)); + Agd(a, uGe, rGe, iGd(Pcd)); + Agd(a, uGe, LDe, (Geb(), false)); + } + function Dee(a, b) { + var c, d, e, f, g, h, i; + c = b.qi(a.a); + if (c) { + i = WD($Nd((!c.b && (c.b = new SVd((JTd(), FTd), C8, c)), c.b), cLe)); + if (i != null) { + d = new bnb(); + for (f = vhb(i, "\\w"), g = 0, h = f.length; g < h; ++g) { + e = f[g]; + lhb(e, "##other") ? Rmb(d, "!##" + Uee(a, BXd(b.qk()))) : lhb(e, "##local") ? (d.c.push(null), true) : lhb(e, aLe) ? Rmb(d, Uee(a, BXd(b.qk()))) : (ZEb(d.c, e), true); + } + return d; + } + } + return yob(), yob(), vob; + } + function u$b(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n; + g = Zid(b.c, c, d); + for (l = new Anb(b.a); l.a < l.c.c.length; ) { + k = RD(ynb(l), 10); + $id(k.n, g); + for (n = new Anb(k.j); n.a < n.c.c.length; ) { + m = RD(ynb(n), 12); + for (f = new Anb(m.g); f.a < f.c.c.length; ) { + e = RD(ynb(f), 18); + Cjd(e.a, g); + h = RD(mQb(e, (yCc(), RAc)), 75); + !!h && Cjd(h, g); + for (j = new Anb(e.b); j.a < j.c.c.length; ) { + i = RD(ynb(j), 72); + $id(i.n, g); + } + } + } + Rmb(a.a, k); + k.a = a; + } + } + function wYb(a) { + var b, c, d, e, f, g, h, i; + if (a.d) { + throw Adb(new dgb((lfb(eQ), lye + eQ.k + mye))); + } + a.c == (Cmd(), Amd) && vYb(a, ymd); + for (c = new Anb(a.a.a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 194); + b.e = 0; + } + for (g = new Anb(a.a.b); g.a < g.c.c.length; ) { + f = RD(ynb(g), 86); + f.o = pxe; + for (e = f.f.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 86); + ++d.d.e; + } + } + LYb(a); + for (i = new Anb(a.a.b); i.a < i.c.c.length; ) { + h = RD(ynb(i), 86); + h.k = true; + } + return a; + } + function mnc(a, b) { + var c, d, e, f, g, h, i, j; + h = new Vmc(a); + c = new Yub(); + Pub(c, b, c.c.b, c.c); + while (c.b != 0) { + d = RD(c.b == 0 ? null : (sFb(c.b != 0), Wub(c, c.a.a)), 113); + d.d.p = 1; + for (g = new Anb(d.e); g.a < g.c.c.length; ) { + e = RD(ynb(g), 340); + Qmc(h, e); + j = e.d; + j.d.p == 0 && (Pub(c, j, c.c.b, c.c), true); + } + for (f = new Anb(d.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 340); + Qmc(h, e); + i = e.c; + i.d.p == 0 && (Pub(c, i, c.c.b, c.c), true); + } + } + return h; + } + function ksd(a) { + var b, c, d, e, f; + d = Kfb(UD(Gxd(a, (umd(), Uld)))); + if (d == 1) { + return; + } + zyd(a, d * a.g, d * a.f); + c = cr(hr((!a.c && (a.c = new C5d(K4, a, 9, 9)), a.c), new Lsd())); + for (f = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [(!a.n && (a.n = new C5d(I4, a, 1, 7)), a.n), (!a.c && (a.c = new C5d(K4, a, 9, 9)), a.c), c]))); gs(f); ) { + e = RD(hs(f), 422); + e.qh(d * e.nh(), d * e.oh()); + e.ph(d * e.mh(), d * e.lh()); + b = RD(e.of(Fld), 8); + if (b) { + b.a *= d; + b.b *= d; + } + } + } + function Qfe(a, b, c) { + var d, e, f, g, h; + g = (nke(), RD(b, 69).xk()); + if (qke(a.e, b)) { + if (b.Si() && dge(a, b, c, ZD(b, 102) && (RD(b, 19).Bb & txe) != 0)) { + return false; + } + } else { + h = pke(a.e.Dh(), b); + d = RD(a.g, 124); + for (f = 0; f < a.i; ++f) { + e = d[f]; + if (h.am(e.Lk())) { + if (g ? pb(e, c) : c == null ? e.md() == null : pb(c, e.md())) { + return false; + } else { + RD(eHd(a, f, g ? RD(c, 76) : oke(b, c)), 76); + return true; + } + } + } + } + return WGd(a, g ? RD(c, 76) : oke(b, c)); + } + function _dc(a, b, c, d, e) { + var f, g, h, i, j, k, l, m; + for (g = new Anb(a.b); g.a < g.c.c.length; ) { + f = RD(ynb(g), 30); + m = t2b(f.a); + for (j = m, k = 0, l = j.length; k < l; ++k) { + i = j[k]; + switch (RD(mQb(i, (yCc(), UAc)), 171).g) { + case 1: + dec(i); + g3b(i, b); + aec(i, true, d); + break; + case 3: + eec(i); + g3b(i, c); + aec(i, false, e); + } + } + } + h = new Jkb(a.b, 0); + while (h.b < h.d.gc()) { + (sFb(h.b < h.d.gc()), RD(h.d.Xb(h.c = h.b++), 30)).a.c.length == 0 && Ckb(h); + } + } + function mjb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + n = b.length; + i = n; + BFb(0, b.length); + if (b.charCodeAt(0) == 45) { + l = -1; + m = 1; + --n; + } else { + l = 1; + m = 0; + } + f = (xjb(), wjb)[10]; + e = n / f | 0; + q = n % f; + q != 0 && ++e; + h = $C(kE, Pwe, 28, e, 15, 1); + c = vjb[8]; + g = 0; + o2 = m + (q == 0 ? f : q); + for (p = m; p < i; p = o2, o2 = p + f) { + d = Oeb((AFb(p, o2, b.length), b.substr(p, o2 - p)), qwe, lve); + j = (Ljb(), Pjb(h, h, g, c)); + j += Fjb(h, g, d); + h[g++] = j; + } + k = g; + a.e = l; + a.d = k; + a.a = h; + Rib(a); + } + function bPb(a, b) { + var c, d, e, f; + c = new gPb(); + d = RD(zDb(GDb(new SDb(null, new Swb(a.f, 16)), c), sBb(new _Bb(), new bCb(), new yCb(), new ACb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), wBb), vBb]))), 21); + e = d.gc(); + d = RD(zDb(GDb(new SDb(null, new Swb(b.f, 16)), c), sBb(new _Bb(), new bCb(), new yCb(), new ACb(), cD(WC(QL, 1), jwe, 108, 0, [wBb, vBb]))), 21); + f = d.gc(); + e = e == 1 ? 1 : 0; + f = f == 1 ? 1 : 0; + if (e < f) { + return -1; + } + if (e == f) { + return 0; + } + return 1; + } + function p0b(a) { + var b, c, d, e, f, g, h, i, j, k, l, m; + h = a.i; + e = Heb(TD(mQb(h, (yCc(), NAc)))); + k = 0; + d = 0; + for (j = new Anb(a.g); j.a < j.c.c.length; ) { + i = RD(ynb(j), 18); + g = W0b(i); + f = g && e && Heb(TD(mQb(i, OAc))); + m = i.d.i; + g && f ? ++d : g && !f ? ++k : Y2b(m).e == h ? ++d : ++k; + } + for (c = new Anb(a.e); c.a < c.c.c.length; ) { + b = RD(ynb(c), 18); + g = W0b(b); + f = g && e && Heb(TD(mQb(b, OAc))); + l = b.c.i; + g && f ? ++k : g && !f ? ++d : Y2b(l).e == h ? ++k : ++d; + } + return k - d; + } + function sQc(a, b, c, d) { + this.e = a; + this.k = RD(mQb(a, (Ywc(), Qwc)), 312); + this.g = $C(jR, WAe, 10, b, 0, 1); + this.b = $C(VI, Nve, 345, b, 7, 1); + this.a = $C(jR, WAe, 10, b, 0, 1); + this.d = $C(VI, Nve, 345, b, 7, 1); + this.j = $C(jR, WAe, 10, b, 0, 1); + this.i = $C(VI, Nve, 345, b, 7, 1); + this.p = $C(VI, Nve, 345, b, 7, 1); + this.n = $C(QI, Nve, 485, b, 8, 1); + Mnb(this.n, (Geb(), false)); + this.f = $C(QI, Nve, 485, b, 8, 1); + Mnb(this.f, true); + this.o = c; + this.c = d; + } + function mdc(a, b) { + var c, d, e, f, g, h; + if (b.dc()) { + return; + } + if (RD(b.Xb(0), 293).d == (btc(), $sc)) { + ddc(a, b); + } else { + for (d = b.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 293); + switch (c.d.g) { + case 5: + _cc(a, c, fdc(a, c)); + break; + case 0: + _cc(a, c, (g = c.f - c.c + 1, h = (g - 1) / 2 | 0, c.c + h)); + break; + case 4: + _cc(a, c, hdc(a, c)); + break; + case 2: + ndc(c); + _cc(a, c, (f = jdc(c), f ? c.c : c.f)); + break; + case 1: + ndc(c); + _cc(a, c, (e = jdc(c), e ? c.f : c.c)); + } + edc(c.a); + } + } + } + function zt(a, b, c, d) { + var e, f, g; + g = new Hu(b, c); + if (!a.a) { + a.a = a.e = g; + Zjb(a.b, b, new Gu(g)); + ++a.c; + } else if (!d) { + RD(Hvb(a.e), 511).b = g; + g.d = a.e; + a.e = g; + e = RD(Wjb(a.b, b), 260); + if (!e) { + Zjb(a.b, b, e = new Gu(g)); + ++a.c; + } else { + ++e.a; + f = e.c; + f.c = g; + g.e = f; + e.c = g; + } + } else { + e = RD(Hvb(RD(Wjb(a.b, b), 260)), 260); + ++e.a; + g.d = d.d; + g.e = d.e; + g.b = d; + g.c = d; + !d.e ? e.b = g : d.e.c = g; + !d.d ? a.a = g : d.d.b = g; + d.d = g; + d.e = g; + } + ++a.d; + return g; + } + function lJb(a, b) { + var c, d, e, f, g; + b.Ug("Network simplex", 1); + if (a.e.a.c.length < 1) { + b.Vg(); + return; + } + for (f = new Anb(a.e.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 125); + e.e = 0; + } + g = a.e.a.c.length >= 40; + g && wJb(a); + nJb(a); + mJb(a); + c = qJb(a); + d = 0; + while (!!c && d < a.f) { + kJb(a, c, jJb(a, c)); + c = qJb(a); + ++d; + } + g && vJb(a); + a.a ? hJb(a, tJb(a)) : tJb(a); + a.b = null; + a.d = null; + a.p = null; + a.c = null; + a.g = null; + a.i = null; + a.n = null; + a.o = null; + b.Vg(); + } + function T7b(a, b) { + var c, d, e, f, g, h, i; + if (b.e) { + return; + } + b.e = true; + for (d = b.d.a.ec().Kc(); d.Ob(); ) { + c = RD(d.Pb(), 18); + if (b.o && b.d.a.gc() <= 1) { + g = b.a.c; + h = b.a.c + b.a.b; + i = new rjd(g + (h - g) / 2, b.b); + Mub(RD(b.d.a.ec().Kc().Pb(), 18).a, i); + continue; + } + e = RD(Wjb(b.c, c), 468); + if (e.b || e.c) { + V7b(a, c, b); + continue; + } + f = a.d == (lFc(), kFc) && (e.d || e.e) && _7b(a, b) && b.d.a.gc() <= 1; + f ? W7b(c, b) : U7b(a, c, b); + } + b.k && xgb(b.d, new m8b()); + } + function A5c(a, b, c, d, e, f) { + var g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + m = f; + h = (d + e) / 2 + m; + q = c * $wnd.Math.cos(h); + r = c * $wnd.Math.sin(h); + s = q - b.g / 2; + t = r - b.f / 2; + Dyd(b, s); + Eyd(b, t); + l = a.a.Eg(b); + p = 2 * $wnd.Math.acos(c / c + a.c); + if (p < e - d) { + n = p / l; + g = (d + e - p) / 2; + } else { + n = (e - d) / l; + g = d; + } + o2 = Q2c(b); + if (a.e) { + a.e.Fg(a.d); + a.e.Gg(o2); + } + for (j = new Anb(o2); j.a < j.c.c.length; ) { + i = RD(ynb(j), 27); + k = a.a.Eg(i); + A5c(a, i, c + a.c, g, g + n * k, f); + g += n * k; + } + } + function zA(a, b, c) { + var d; + d = c.q.getMonth(); + switch (b) { + case 5: + Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"])[d]); + break; + case 4: + Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, [Cwe, Dwe, Ewe, Fwe, Gwe, Hwe, Iwe, Jwe, Kwe, Lwe, Mwe, Nwe])[d]); + break; + case 3: + Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, ["Jan", "Feb", "Mar", "Apr", Gwe, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[d]); + break; + default: + UA(a, d + 1, b); + } + } + function ATb(a, b, c, d) { + var e, f, g, h, i, j, k, l, m; + i = new rjd(c, d); + ojd(i, RD(mQb(b, (JVb(), GVb)), 8)); + for (m = new Anb(b.e); m.a < m.c.c.length; ) { + l = RD(ynb(m), 153); + $id(l.d, i); + Rmb(a.e, l); + } + for (h = new Anb(b.c); h.a < h.c.c.length; ) { + g = RD(ynb(h), 290); + for (f = new Anb(g.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 250); + $id(e.d, i); + } + Rmb(a.c, g); + } + for (k = new Anb(b.d); k.a < k.c.c.length; ) { + j = RD(ynb(k), 454); + $id(j.d, i); + Rmb(a.d, j); + } + } + function TFc(a, b) { + var c, d, e, f, g, h, i, j; + for (i = new Anb(b.j); i.a < i.c.c.length; ) { + h = RD(ynb(i), 12); + for (e = new l4b(h.b); xnb(e.a) || xnb(e.b); ) { + d = RD(xnb(e.a) ? ynb(e.a) : ynb(e.b), 18); + c = d.c == h ? d.d : d.c; + f = c.i; + if (b == f) { + continue; + } + j = RD(mQb(d, (yCc(), KBc)), 17).a; + j < 0 && (j = 0); + g = f.p; + if (a.b[g] == 0) { + if (d.d == c) { + a.a[g] -= j + 1; + a.a[g] <= 0 && a.c[g] > 0 && Mub(a.f, f); + } else { + a.c[g] -= j + 1; + a.c[g] <= 0 && a.a[g] > 0 && Mub(a.e, f); + } + } + } + } + } + function FVc(a, b, c, d) { + var e, f, g, h, i, j, k; + i = new rjd(c, d); + ojd(i, RD(mQb(b, (q$c(), SZc)), 8)); + for (k = Sub(b.b, 0); k.b != k.d.c; ) { + j = RD(evb(k), 40); + $id(j.e, i); + Mub(a.b, j); + } + for (h = RD(zDb(BDb(new SDb(null, new Swb(b.a, 16))), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15).Kc(); h.Ob(); ) { + g = RD(h.Pb(), 65); + for (f = Sub(g.a, 0); f.b != f.d.c; ) { + e = RD(evb(f), 8); + e.a += i.a; + e.b += i.b; + } + Mub(a.a, g); + } + } + function kWc(a, b) { + var c, d, e, f; + if (0 < (ZD(a, 16) ? RD(a, 16).gc() : Kr(a.Kc()))) { + e = b; + if (1 < e) { + --e; + f = new uWc(); + for (d = a.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 40); + f = Al(cD(WC(cJ, 1), rve, 20, 0, [f, new dXc(c)])); + } + return kWc(f, e); + } + if (e < 0) { + f = new xWc(); + for (d = a.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 40); + f = Al(cD(WC(cJ, 1), rve, 20, 0, [f, new dXc(c)])); + } + if (0 < (ZD(f, 16) ? RD(f, 16).gc() : Kr(f.Kc()))) { + return kWc(f, e); + } + } + } + return RD(Hr(a.Kc()), 40); + } + function v0c(a, b, c) { + var d, e, f, g; + c.Ug("Processor order nodes", 2); + a.b = Kfb(UD(mQb(b, (h_c(), _$c)))); + a.a = RD(mQb(b, H$c), 88); + if (a.a == (Cmd(), Amd)) { + a.a = xmd; + pQb(b, H$c, a.a); + } + e = new Yub(); + for (g = Sub(b.b, 0); g.b != g.d.c; ) { + f = RD(evb(g), 40); + Heb(TD(mQb(f, (q$c(), n$c)))) && (Pub(e, f, e.c.b, e.c), true); + } + d = (sFb(e.b != 0), RD(e.a.a.c, 40)); + t0c(a, d); + c.fh(1); + w0c(a, d, 0 - Kfb(UD(mQb(d, (q$c(), d$c)))) / 2, 0); + c.fh(1); + c.Vg(); + } + function dqd() { + dqd = geb; + Ypd = new eqd("DEFAULT_MINIMUM_SIZE", 0); + $pd = new eqd("MINIMUM_SIZE_ACCOUNTS_FOR_PADDING", 1); + Xpd = new eqd("COMPUTE_PADDING", 2); + _pd = new eqd("OUTSIDE_NODE_LABELS_OVERHANG", 3); + aqd = new eqd("PORTS_OVERHANG", 4); + cqd = new eqd("UNIFORM_PORT_SPACING", 5); + bqd = new eqd("SPACE_EFFICIENT_PORT_LABELS", 6); + Zpd = new eqd("FORCE_TABULAR_NODE_LABELS", 7); + Wpd = new eqd("ASYMMETRICAL", 8); + } + function Rje(a, b) { + var c, d, e, f, g, h, i, j; + if (!b) { + return null; + } else { + c = (f = b.Dh(), !f ? null : BXd(f).wi().si(f)); + if (c) { + dub(a, b, c); + e = b.Dh(); + for (i = 0, j = (e.i == null && rYd(e), e.i).length; i < j; ++i) { + h = (d = (e.i == null && rYd(e), e.i), i >= 0 && i < d.length ? d[i] : null); + if (h.rk() && !h.sk()) { + if (ZD(h, 331)) { + Tje(a, RD(h, 35), b, c); + } else { + g = RD(h, 19); + (g.Bb & QHe) != 0 && Vje(a, g, b, c); + } + } + } + b.Vh() && RD(c, 54).ei(RD(b, 54)._h()); + } + return c; + } + } + function kJb(a, b, c) { + var d, e, f; + if (!b.f) { + throw Adb(new agb("Given leave edge is no tree edge.")); + } + if (c.f) { + throw Adb(new agb("Given enter edge is a tree edge already.")); + } + b.f = false; + $sb(a.p, b); + c.f = true; + Ysb(a.p, c); + d = c.e.e - c.d.e - c.a; + oJb(a, c.e, b) || (d = -d); + for (f = new Anb(a.e.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 125); + oJb(a, e, b) || (e.e += d); + } + a.j = 1; + Nnb(a.c); + uJb(a, RD(ynb(new Anb(a.e.a)), 125)); + iJb(a); + } + function wIc(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n; + BIc(a, b, c); + f = b[c]; + n = d ? (qpd(), ppd) : (qpd(), Xod); + if (xIc(b.length, c, d)) { + e = b[d ? c - 1 : c + 1]; + sIc(a, e, d ? (BEc(), zEc) : (BEc(), yEc)); + for (i = f, k = 0, m = i.length; k < m; ++k) { + g = i[k]; + vIc(a, g, n); + } + sIc(a, f, d ? (BEc(), yEc) : (BEc(), zEc)); + for (h = e, j = 0, l = h.length; j < l; ++j) { + g = h[j]; + !!g.e || vIc(a, g, spd(n)); + } + } else { + for (h = f, j = 0, l = h.length; j < l; ++j) { + g = h[j]; + vIc(a, g, n); + } + } + return false; + } + function erd(a, b, c, d, e) { + var f, g, h, i, j, k, l; + yob(); + _mb(a, new Urd()); + h = new Jkb(a, 0); + l = new bnb(); + f = 0; + while (h.b < h.d.gc()) { + g = (sFb(h.b < h.d.gc()), RD(h.d.Xb(h.c = h.b++), 163)); + if (l.c.length != 0 && urd(g) * trd(g) > f * 2) { + k = new zrd(l); + j = urd(g) / trd(g); + i = ird(k, b, new z3b(), c, d, e, j); + $id(hjd(k.e), i); + l.c.length = 0; + f = 0; + ZEb(l.c, k); + ZEb(l.c, g); + f = urd(k) * trd(k) + urd(g) * trd(g); + } else { + ZEb(l.c, g); + f += urd(g) * trd(g); + } + } + return l; + } + function O9b(a, b) { + var c, d, e, f, g, h; + h = RD(mQb(b, (yCc(), BBc)), 101); + if (!(h == (Bod(), xod) || h == wod)) { + return; + } + e = new rjd(b.f.a + b.d.b + b.d.c, b.f.b + b.d.d + b.d.a).b; + for (g = new Anb(a.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 10); + if (f.k != (r3b(), m3b)) { + continue; + } + c = RD(mQb(f, (Ywc(), hwc)), 64); + if (c != (qpd(), Xod) && c != ppd) { + continue; + } + d = Kfb(UD(mQb(f, Jwc))); + h == xod && (d *= e); + f.n.b = d - RD(mQb(f, zBc), 8).b; + U2b(f, false, true); + } + } + function uge(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2; + if (Mvd(a.e)) { + if (b != c) { + e = RD(a.g, 124); + n = e[c]; + g = n.Lk(); + if (qke(a.e, g)) { + o2 = pke(a.e.Dh(), g); + i = -1; + h = -1; + d = 0; + for (j = 0, l = b > c ? b : c; j <= l; ++j) { + if (j == c) { + h = d++; + } else { + f = e[j]; + k = o2.am(f.Lk()); + j == b && (i = j == l && !k ? d - 1 : d); + k && ++d; + } + } + m = RD(uLd(a, b, c), 76); + h != i && eZd(a, new c4d(a.e, 7, g, sgb(h), n.md(), i)); + return m; + } + } + } else { + return RD(SHd(a, b, c), 76); + } + return RD(uLd(a, b, c), 76); + } + function ugc(a, b) { + var c, d, e, f, g, h, i; + b.Ug("Port order processing", 1); + i = RD(mQb(a, (yCc(), HBc)), 430); + for (d = new Anb(a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 30); + for (f = new Anb(c.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + g = RD(mQb(e, BBc), 101); + h = e.j; + if (g == (Bod(), vod) || g == xod || g == wod) { + yob(); + _mb(h, mgc); + } else if (g != zod && g != Aod) { + yob(); + _mb(h, pgc); + wgc(h); + i == (sEc(), rEc) && _mb(h, ogc); + } + e.i = true; + V2b(e); + } + } + b.Vg(); + } + function VHc(a) { + var b, c, d, e, f, g, h, i; + i = new Tsb(); + b = new BIb(); + for (g = a.Kc(); g.Ob(); ) { + e = RD(g.Pb(), 10); + h = eJb(fJb(new gJb(), e), b); + rtb(i.f, e, h); + } + for (f = a.Kc(); f.Ob(); ) { + e = RD(f.Pb(), 10); + for (d = new is(Mr(a3b(e).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + if (W0b(c)) { + continue; + } + rIb(uIb(tIb(sIb(vIb(new wIb(), $wnd.Math.max(1, RD(mQb(c, (yCc(), LBc)), 17).a)), 1), RD(Wjb(i, c.c.i), 125)), RD(Wjb(i, c.d.i), 125))); + } + } + return b; + } + function TRc() { + TRc = geb; + ORc = pfd(new ufd(), (sXb(), qXb), (hcc(), Bbc)); + QRc = pfd(new ufd(), pXb, Fbc); + RRc = nfd(pfd(new ufd(), pXb, Tbc), rXb, Sbc); + NRc = nfd(pfd(pfd(new ufd(), pXb, vbc), qXb, wbc), rXb, xbc); + SRc = mfd(mfd(rfd(nfd(pfd(new ufd(), nXb, bcc), rXb, acc), qXb), _bc), ccc); + PRc = nfd(new ufd(), rXb, Cbc); + LRc = nfd(pfd(pfd(pfd(new ufd(), oXb, Ibc), qXb, Kbc), qXb, Lbc), rXb, Jbc); + MRc = nfd(pfd(pfd(new ufd(), qXb, Lbc), qXb, qbc), rXb, pbc); + } + function lD(a, b, c, d, e, f) { + var g, h, i, j, k, l, m; + j = oD(b) - oD(a); + g = AD(b, j); + i = hD(0, 0, 0); + while (j >= 0) { + h = rD(a, g); + if (h) { + j < 22 ? (i.l |= 1 << j, void 0) : j < 44 ? (i.m |= 1 << j - 22, void 0) : (i.h |= 1 << j - 44, void 0); + if (a.l == 0 && a.m == 0 && a.h == 0) { + break; + } + } + k = g.m; + l = g.h; + m = g.l; + g.h = l >>> 1; + g.m = k >>> 1 | (l & 1) << 21; + g.l = m >>> 1 | (k & 1) << 21; + --j; + } + c && nD(i); + if (f) { + if (d) { + eD = xD(a); + e && (eD = DD(eD, (MD(), KD))); + } else { + eD = hD(a.l, a.m, a.h); + } + } + return i; + } + function rIc(a, b) { + var c, d, e, f, g, h, i, j, k, l; + j = a.e[b.c.p][b.p] + 1; + i = b.c.a.c.length + 1; + for (h = new Anb(a.a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 12); + l = 0; + f = 0; + for (e = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [new T3b(g), new _3b(g)]))); gs(e); ) { + d = RD(hs(e), 12); + if (d.i.c == b.c) { + l += AIc(a, d.i) + 1; + ++f; + } + } + c = l / f; + k = g.j; + k == (qpd(), Xod) ? c < j ? a.f[g.p] = a.c - c : a.f[g.p] = a.b + (i - c) : k == ppd && (c < j ? a.f[g.p] = a.b + c : a.f[g.p] = a.c - (i - c)); + } + } + function Oeb(a, b, c) { + var d, e, f, g, h; + if (a == null) { + throw Adb(new Vgb(vve)); + } + f = a.length; + g = f > 0 && (BFb(0, a.length), a.charCodeAt(0) == 45 || (BFb(0, a.length), a.charCodeAt(0) == 43)) ? 1 : 0; + for (d = g; d < f; d++) { + if (dfb((BFb(d, a.length), a.charCodeAt(d))) == -1) { + throw Adb(new Vgb(nxe + a + '"')); + } + } + h = parseInt(a, 10); + e = h < b; + if (isNaN(h)) { + throw Adb(new Vgb(nxe + a + '"')); + } else if (e || h > c) { + throw Adb(new Vgb(nxe + a + '"')); + } + return h; + } + function Jqc(a) { + var b, c, d, e, f, g, h; + g = new Yub(); + for (f = new Anb(a.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 118); + PSc(e, e.f.c.length); + QSc(e, e.k.c.length); + if (e.i == 0) { + e.o = 0; + Pub(g, e, g.c.b, g.c); + } + } + while (g.b != 0) { + e = RD(g.b == 0 ? null : (sFb(g.b != 0), Wub(g, g.a.a)), 118); + d = e.o + 1; + for (c = new Anb(e.f); c.a < c.c.c.length; ) { + b = RD(ynb(c), 132); + h = b.a; + RSc(h, $wnd.Math.max(h.o, d)); + QSc(h, h.i - 1); + h.i == 0 && (Pub(g, h, g.c.b, g.c), true); + } + } + } + function Ged(a) { + var b, c, d, e, f, g, h, i; + for (g = new Anb(a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 74); + d = AGd(RD(QHd((!f.b && (f.b = new Yie(E4, f, 4, 7)), f.b), 0), 84)); + h = d.i; + i = d.j; + e = RD(QHd((!f.a && (f.a = new C5d(F4, f, 6, 6)), f.a), 0), 166); + Nzd(e, e.j + h, e.k + i); + Gzd(e, e.b + h, e.c + i); + for (c = new dMd((!e.a && (e.a = new XZd(D4, e, 5)), e.a)); c.e != c.i.gc(); ) { + b = RD(bMd(c), 377); + Uxd(b, b.a + h, b.b + i); + } + Bjd(RD(Gxd(f, (umd(), cld)), 75), h, i); + } + } + function Ere(a) { + var b; + switch (a) { + case 100: + return Jre(OLe, true); + case 68: + return Jre(OLe, false); + case 119: + return Jre(PLe, true); + case 87: + return Jre(PLe, false); + case 115: + return Jre(QLe, true); + case 83: + return Jre(QLe, false); + case 99: + return Jre(RLe, true); + case 67: + return Jre(RLe, false); + case 105: + return Jre(SLe, true); + case 73: + return Jre(SLe, false); + default: + throw Adb(new yz((b = a, NLe + b.toString(16)))); + } + } + function b_b(a) { + var b, c, d, e, f; + e = RD(Vmb(a.a, 0), 10); + b = new j3b(a); + Rmb(a.a, b); + b.o.a = $wnd.Math.max(1, e.o.a); + b.o.b = $wnd.Math.max(1, e.o.b); + b.n.a = e.n.a; + b.n.b = e.n.b; + switch (RD(mQb(e, (Ywc(), hwc)), 64).g) { + case 4: + b.n.a += 2; + break; + case 1: + b.n.b += 2; + break; + case 2: + b.n.a -= 2; + break; + case 3: + b.n.b -= 2; + } + d = new R3b(); + P3b(d, b); + c = new a1b(); + f = RD(Vmb(e.j, 0), 12); + Y0b(c, f); + Z0b(c, d); + $id(hjd(d.n), f.n); + $id(hjd(d.a), f.a); + return b; + } + function Wdc(a, b, c, d, e) { + if (c && (!d || (a.c - a.b & a.a.length - 1) > 1) && b == 1 && RD(a.a[a.b], 10).k == (r3b(), n3b)) { + Qdc(RD(a.a[a.b], 10), (Pnd(), Lnd)); + } else if (d && (!c || (a.c - a.b & a.a.length - 1) > 1) && b == 1 && RD(a.a[a.c - 1 & a.a.length - 1], 10).k == (r3b(), n3b)) { + Qdc(RD(a.a[a.c - 1 & a.a.length - 1], 10), (Pnd(), Mnd)); + } else if ((a.c - a.b & a.a.length - 1) == 2) { + Qdc(RD(omb(a), 10), (Pnd(), Lnd)); + Qdc(RD(omb(a), 10), Mnd); + } else { + Ndc(a, e); + } + jmb(a); + } + function QVc(a, b, c) { + var d, e, f, g, h; + f = 0; + for (e = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); e.e != e.i.gc(); ) { + d = RD(bMd(e), 27); + g = ""; + (!d.n && (d.n = new C5d(I4, d, 1, 7)), d.n).i == 0 || (g = RD(QHd((!d.n && (d.n = new C5d(I4, d, 1, 7)), d.n), 0), 135).a); + h = new bXc(f++, b, g); + kQb(h, d); + pQb(h, (q$c(), h$c), d); + h.e.b = d.j + d.f / 2; + h.f.a = $wnd.Math.max(d.g, 1); + h.e.a = d.i + d.g / 2; + h.f.b = $wnd.Math.max(d.f, 1); + Mub(b.b, h); + rtb(c.f, d, h); + } + } + function L5b(a) { + var b, c, d, e, f; + d = RD(mQb(a, (Ywc(), Awc)), 27); + f = RD(Gxd(d, (yCc(), lBc)), 181).Hc((Qpd(), Ppd)); + if (!a.e) { + e = RD(mQb(a, kwc), 21); + b = new rjd(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a); + if (e.Hc((ovc(), hvc))) { + Ixd(d, BBc, (Bod(), wod)); + Esd(d, b.a, b.b, false, true); + } else { + Heb(TD(Gxd(d, mBc))) || Esd(d, b.a, b.b, true, true); + } + } + f ? Ixd(d, lBc, xsb(Ppd)) : Ixd(d, lBc, (c = RD(mfb(H3), 9), new Fsb(c, RD(WEb(c, c.length), 9), 0))); + } + function JA(a, b, c) { + var d, e, f, g; + if (b[0] >= a.length) { + c.o = 0; + return true; + } + switch (ihb(a, b[0])) { + case 43: + e = 1; + break; + case 45: + e = -1; + break; + default: + c.o = 0; + return true; + } + ++b[0]; + f = b[0]; + g = HA(a, b); + if (g == 0 && b[0] == f) { + return false; + } + if (b[0] < a.length && ihb(a, b[0]) == 58) { + d = g * 60; + ++b[0]; + f = b[0]; + g = HA(a, b); + if (g == 0 && b[0] == f) { + return false; + } + d += g; + } else { + d = g; + d < 24 && b[0] - f <= 2 ? d *= 60 : d = d % 100 + (d / 100 | 0) * 60; + } + d *= e; + c.o = -d; + return true; + } + function lnc(a) { + var b, c, d, e, f, g, h, i, j; + g = new bnb(); + for (d = new is(Mr(a3b(a.b).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + W0b(c) && Rmb(g, new knc(c, nnc(a, c.c), nnc(a, c.d))); + } + for (j = (f = new glb(a.e).a.vc().Kc(), new llb(f)); j.a.Ob(); ) { + h = (b = RD(j.a.Pb(), 44), RD(b.md(), 113)); + h.d.p = 0; + } + for (i = (e = new glb(a.e).a.vc().Kc(), new llb(e)); i.a.Ob(); ) { + h = (b = RD(i.a.Pb(), 44), RD(b.md(), 113)); + h.d.p == 0 && Rmb(a.d, mnc(a, h)); + } + } + function e5b(a) { + var b, c, d, e, f, g, h; + f = MCd(a); + for (e = new dMd((!a.e && (a.e = new Yie(G4, a, 7, 4)), a.e)); e.e != e.i.gc(); ) { + d = RD(bMd(e), 74); + h = AGd(RD(QHd((!d.c && (d.c = new Yie(E4, d, 5, 8)), d.c), 0), 84)); + if (!NGd(h, f)) { + return true; + } + } + for (c = new dMd((!a.d && (a.d = new Yie(G4, a, 8, 5)), a.d)); c.e != c.i.gc(); ) { + b = RD(bMd(c), 74); + g = AGd(RD(QHd((!b.b && (b.b = new Yie(E4, b, 4, 7)), b.b), 0), 84)); + if (!NGd(g, f)) { + return true; + } + } + return false; + } + function jRc(a, b) { + var c, d, e, f, g, h, i, j, k; + for (g = new Anb(b.b); g.a < g.c.c.length; ) { + f = RD(ynb(g), 30); + for (j = new Anb(f.a); j.a < j.c.c.length; ) { + i = RD(ynb(j), 10); + k = new bnb(); + h = 0; + for (d = new is(Mr(Z2b(i).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + if (W0b(c) || !W0b(c) && c.c.i.c == c.d.i.c) { + continue; + } + e = RD(mQb(c, (yCc(), MBc)), 17).a; + if (e > h) { + h = e; + k.c.length = 0; + } + e == h && Rmb(k, new Ptd(c.c.i, c)); + } + yob(); + _mb(k, a.c); + Qmb(a.b, i.p, k); + } + } + } + function kRc(a, b) { + var c, d, e, f, g, h, i, j, k; + for (g = new Anb(b.b); g.a < g.c.c.length; ) { + f = RD(ynb(g), 30); + for (j = new Anb(f.a); j.a < j.c.c.length; ) { + i = RD(ynb(j), 10); + k = new bnb(); + h = 0; + for (d = new is(Mr(a3b(i).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + if (W0b(c) || !W0b(c) && c.c.i.c == c.d.i.c) { + continue; + } + e = RD(mQb(c, (yCc(), MBc)), 17).a; + if (e > h) { + h = e; + k.c.length = 0; + } + e == h && Rmb(k, new Ptd(c.d.i, c)); + } + yob(); + _mb(k, a.c); + Qmb(a.f, i.p, k); + } + } + } + function HVc(a, b) { + var c, d, e, f, g, h, i, j; + j = TD(mQb(b, (h_c(), Z$c))); + if (j == null || (uFb(j), j)) { + EVc(a, b); + e = new bnb(); + for (i = Sub(b.b, 0); i.b != i.d.c; ) { + g = RD(evb(i), 40); + c = DVc(a, g, null); + if (c) { + kQb(c, b); + ZEb(e.c, c); + } + } + a.a = null; + a.b = null; + if (e.c.length > 1) { + for (d = new Anb(e); d.a < d.c.c.length; ) { + c = RD(ynb(d), 121); + f = 0; + for (h = Sub(c.b, 0); h.b != h.d.c; ) { + g = RD(evb(h), 40); + g.g = f++; + } + } + } + return e; + } + return dv(cD(WC(W$, 1), Jze, 121, 0, [b])); + } + function hqc(a) { + var b, c, d, e, f, g, h, i; + i = new Ejd(); + b = Sub(a, 0); + h = null; + c = RD(evb(b), 8); + e = RD(evb(b), 8); + while (b.b != b.d.c) { + h = c; + c = e; + e = RD(evb(b), 8); + f = iqc(ojd(new rjd(h.a, h.b), c)); + g = iqc(ojd(new rjd(e.a, e.b), c)); + d = 10; + d = $wnd.Math.min(d, $wnd.Math.abs(f.a + f.b) / 2); + d = $wnd.Math.min(d, $wnd.Math.abs(g.a + g.b) / 2); + f.a = Lgb(f.a) * d; + f.b = Lgb(f.b) * d; + g.a = Lgb(g.a) * d; + g.b = Lgb(g.b) * d; + Mub(i, $id(f, c)); + Mub(i, $id(g, c)); + } + return i; + } + function wKc(a, b, c) { + var d, e, f, g, h, i; + c.Ug("Minimize Crossings " + a.a, 1); + d = b.b.c.length == 0 || !QDb(CDb(new SDb(null, new Swb(b.b, 16)), new PAb(new XKc()))).Bd((xDb(), wDb)); + i = b.b.c.length == 1 && RD(Vmb(b.b, 0), 30).a.c.length == 1; + f = dE(mQb(b, (yCc(), IAc))) === dE((Fnd(), Cnd)); + if (d || i && !f) { + c.Vg(); + return; + } + e = rKc(a, b); + g = (h = RD(ju(e, 0), 219), h.c.kg() ? h.c.eg() ? new KKc(a) : new MKc(a) : new IKc(a)); + sKc(e, g); + EKc(a); + c.Vg(); + } + function xvd(a, b, c, d) { + var e, f, g, h, i; + g = a.Ph(); + i = a.Jh(); + e = null; + if (i) { + if (!!b && (jwd(a, b, c).Bb & txe) == 0) { + d = rLd(i.El(), a, d); + a.di(null); + e = b.Qh(); + } else { + i = null; + } + } else { + !!g && (i = g.Qh()); + !!b && (e = b.Qh()); + } + i != e && !!i && i.Il(a); + h = a.Fh(); + a.Bh(b, c); + i != e && !!e && e.Hl(a); + if (a.vh() && a.wh()) { + if (!!g && h >= 0 && h != c) { + f = new N3d(a, 1, h, g, null); + !d ? d = f : d.nj(f); + } + if (c >= 0) { + f = new N3d(a, 1, c, h == c ? g : null, b); + !d ? d = f : d.nj(f); + } + } + return d; + } + function jSd(a) { + var b, c, d; + if (a.b == null) { + d = new Qhb(); + if (a.i != null) { + Nhb(d, a.i); + d.a += ":"; + } + if ((a.f & 256) != 0) { + if ((a.f & 256) != 0 && a.a != null) { + wSd(a.i) || (d.a += "//", d); + Nhb(d, a.a); + } + if (a.d != null) { + d.a += "/"; + Nhb(d, a.d); + } + (a.f & 16) != 0 && (d.a += "/", d); + for (b = 0, c = a.j.length; b < c; b++) { + b != 0 && (d.a += "/", d); + Nhb(d, a.j[b]); + } + if (a.g != null) { + d.a += "?"; + Nhb(d, a.g); + } + } else { + Nhb(d, a.a); + } + if (a.e != null) { + d.a += "#"; + Nhb(d, a.e); + } + a.b = d.a; + } + return a.b; + } + function V8b(a, b) { + var c, d, e, f, g, h; + for (e = new Anb(b.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 10); + f = mQb(d, (Ywc(), Awc)); + if (ZD(f, 12)) { + g = RD(f, 12); + h = j2b(b, d, g.o.a, g.o.b); + g.n.a = h.a; + g.n.b = h.b; + Q3b(g, RD(mQb(d, hwc), 64)); + } + } + c = new rjd(b.f.a + b.d.b + b.d.c, b.f.b + b.d.d + b.d.a); + if (RD(mQb(b, (Ywc(), kwc)), 21).Hc((ovc(), hvc))) { + pQb(a, (yCc(), BBc), (Bod(), wod)); + RD(mQb(Y2b(a), kwc), 21).Fc(kvc); + r2b(a, c, false); + } else { + r2b(a, c, true); + } + } + function Ffc(a, b, c, d, e) { + var f, g, h, i; + f = new j3b(a); + h3b(f, (r3b(), q3b)); + pQb(f, (yCc(), BBc), (Bod(), wod)); + pQb(f, (Ywc(), Awc), b.c.i); + g = new R3b(); + pQb(g, Awc, b.c); + Q3b(g, e); + P3b(g, f); + pQb(b.c, Iwc, f); + h = new j3b(a); + h3b(h, q3b); + pQb(h, BBc, wod); + pQb(h, Awc, b.d.i); + i = new R3b(); + pQb(i, Awc, b.d); + Q3b(i, e); + P3b(i, h); + pQb(b.d, Iwc, h); + Y0b(b, g); + Z0b(b, i); + wFb(0, c.c.length); + XEb(c.c, 0, f); + ZEb(d.c, h); + pQb(f, $vc, sgb(1)); + pQb(h, $vc, sgb(1)); + } + function Eo(a, b, c, d) { + var e, f, g, h, i; + i = Ydb(Ndb(cwe, qgb(Ydb(Ndb(b == null ? 0 : tb(b), dwe)), 15))); + e = Ydb(Ndb(cwe, qgb(Ydb(Ndb(c == null ? 0 : tb(c), dwe)), 15))); + h = Ho(a, b, i); + g = Go(a, c, e); + if (!!h && e == h.a && Hb(c, h.g)) { + return c; + } else if (!!g && !d) { + throw Adb(new agb("key already present: " + c)); + } + !!h && yo(a, h); + !!g && yo(a, g); + f = new kp(c, e, b, i); + Bo(a, f, g); + if (g) { + g.e = null; + g.c = null; + } + if (h) { + h.e = null; + h.c = null; + } + Fo(a); + return !h ? null : h.g; + } + function Tjb(a, b, c) { + var d, e, f, g, h; + for (f = 0; f < b; f++) { + d = 0; + for (h = f + 1; h < b; h++) { + d = Bdb(Bdb(Ndb(Cdb(a[f], yxe), Cdb(a[h], yxe)), Cdb(c[f + h], yxe)), Cdb(Ydb(d), yxe)); + c[f + h] = Ydb(d); + d = Udb(d, 32); + } + c[f + b] = Ydb(d); + } + sjb(c, c, b << 1); + d = 0; + for (e = 0, g = 0; e < b; ++e, g++) { + d = Bdb(Bdb(Ndb(Cdb(a[e], yxe), Cdb(a[e], yxe)), Cdb(c[g], yxe)), Cdb(Ydb(d), yxe)); + c[g] = Ydb(d); + d = Udb(d, 32); + ++g; + d = Bdb(d, Cdb(c[g], yxe)); + c[g] = Ydb(d); + d = Udb(d, 32); + } + return c; + } + function xOc(a, b, c) { + var d, e, f, g, h, i, j, k; + if (gr(b)) { + return; + } + i = Kfb(UD(hFc(c.c, (yCc(), fCc)))); + j = RD(hFc(c.c, eCc), 140); + !j && (j = new P2b()); + d = c.a; + e = null; + for (h = b.Kc(); h.Ob(); ) { + g = RD(h.Pb(), 12); + k = 0; + if (!e) { + k = j.d; + } else { + k = i; + k += e.o.b; + } + f = eJb(fJb(new gJb(), g), a.f); + Zjb(a.k, g, f); + rIb(uIb(tIb(sIb(vIb(new wIb(), 0), eE($wnd.Math.ceil(k))), d), f)); + e = g; + d = f; + } + rIb(uIb(tIb(sIb(vIb(new wIb(), 0), eE($wnd.Math.ceil(j.a + e.o.b))), d), c.d)); + } + function K8c(a, b, c, d, e, f, g, h) { + var i, j, k, l, m, n; + n = false; + m = f - c.s; + k = c.t - b.f + (j = S9c(c, m, false), j.a); + if (d.g + h > m) { + return false; + } + l = (i = S9c(d, m, false), i.a); + if (k + h + l <= b.b) { + Q9c(c, f - c.s); + c.c = true; + Q9c(d, f - c.s); + U9c(d, c.s, c.t + c.d + h); + d.k = true; + aad(c.q, d); + n = true; + if (e) { + Cad(b, d); + d.j = b; + if (a.c.length > g) { + Fad((tFb(g, a.c.length), RD(a.c[g], 186)), d); + (tFb(g, a.c.length), RD(a.c[g], 186)).a.c.length == 0 && Xmb(a, g); + } + } + } + return n; + } + function Qfc(a, b) { + var c, d, e, f, g, h; + b.Ug("Partition midprocessing", 1); + e = new Tp(); + FDb(CDb(new SDb(null, new Swb(a.a, 16)), new Ufc()), new Wfc(e)); + if (e.d == 0) { + return; + } + h = RD(zDb(ODb((f = e.i, new SDb(null, (!f ? e.i = new zf(e, e.c) : f).Nc()))), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + d = h.Kc(); + c = RD(d.Pb(), 17); + while (d.Ob()) { + g = RD(d.Pb(), 17); + Pfc(RD(Qc(e, c), 21), RD(Qc(e, g), 21)); + c = g; + } + b.Vg(); + } + function G_b(a, b, c) { + var d, e, f, g, h, i, j, k; + if (b.p == 0) { + b.p = 1; + g = c; + if (!g) { + e = new bnb(); + f = (d = RD(mfb(E3), 9), new Fsb(d, RD(WEb(d, d.length), 9), 0)); + g = new Ptd(e, f); + } + RD(g.a, 15).Fc(b); + b.k == (r3b(), m3b) && RD(g.b, 21).Fc(RD(mQb(b, (Ywc(), hwc)), 64)); + for (i = new Anb(b.j); i.a < i.c.c.length; ) { + h = RD(ynb(i), 12); + for (k = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [new T3b(h), new _3b(h)]))); gs(k); ) { + j = RD(hs(k), 12); + G_b(a, j.i, g); + } + } + return g; + } + return null; + } + function bAd(a, b) { + var c, d, e, f, g; + if (a.Ab) { + if (a.Ab) { + g = a.Ab.i; + if (g > 0) { + e = RD(a.Ab.g, 2033); + if (b == null) { + for (f = 0; f < g; ++f) { + c = e[f]; + if (c.d == null) { + return c; + } + } + } else { + for (f = 0; f < g; ++f) { + c = e[f]; + if (lhb(b, c.d)) { + return c; + } + } + } + } + } else { + if (b == null) { + for (d = new dMd(a.Ab); d.e != d.i.gc(); ) { + c = RD(bMd(d), 598); + if (c.d == null) { + return c; + } + } + } else { + for (d = new dMd(a.Ab); d.e != d.i.gc(); ) { + c = RD(bMd(d), 598); + if (lhb(b, c.d)) { + return c; + } + } + } + } + } + return null; + } + function RDd(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, p, q, r, s, t, u, v; + n = qEd(a, EGd(b), e); + Jzd(n, zDd(e, uIe)); + o = null; + p = e; + q = yDd(p, xIe); + r = new UEd(n); + WDd(r.a, q); + s = yDd(p, "endPoint"); + t = new YEd(n); + YDd(t.a, s); + u = wDd(p, nIe); + v = new _Ed(n); + ZDd(v.a, u); + l = zDd(e, pIe); + f = new QEd(a, n); + SDd(f.a, f.b, l); + m = zDd(e, oIe); + g = new REd(a, n); + TDd(g.a, g.b, m); + j = wDd(e, rIe); + h = new SEd(c, n); + UDd(h.b, h.a, j); + k = wDd(e, qIe); + i = new TEd(d, n); + VDd(i.b, i.a, k); + } + function q2b(a, b, c) { + var d, e, f, g, h; + h = null; + switch (b.g) { + case 1: + for (e = new Anb(a.j); e.a < e.c.c.length; ) { + d = RD(ynb(e), 12); + if (Heb(TD(mQb(d, (Ywc(), mwc))))) { + return d; + } + } + h = new R3b(); + pQb(h, (Ywc(), mwc), (Geb(), true)); + break; + case 2: + for (g = new Anb(a.j); g.a < g.c.c.length; ) { + f = RD(ynb(g), 12); + if (Heb(TD(mQb(f, (Ywc(), Gwc))))) { + return f; + } + } + h = new R3b(); + pQb(h, (Ywc(), Gwc), (Geb(), true)); + } + if (h) { + P3b(h, a); + Q3b(h, c); + d2b(h.n, a.o, c); + } + return h; + } + function d7b(a, b) { + var c, d, e, f, g, h; + h = -1; + g = new Yub(); + for (d = new l4b(a.b); xnb(d.a) || xnb(d.b); ) { + c = RD(xnb(d.a) ? ynb(d.a) : ynb(d.b), 18); + h = $wnd.Math.max(h, Kfb(UD(mQb(c, (yCc(), FAc))))); + c.c == a ? FDb(CDb(new SDb(null, new Swb(c.b, 16)), new j7b()), new l7b(g)) : FDb(CDb(new SDb(null, new Swb(c.b, 16)), new n7b()), new p7b(g)); + for (f = Sub(g, 0); f.b != f.d.c; ) { + e = RD(evb(f), 72); + nQb(e, (Ywc(), dwc)) || pQb(e, dwc, c); + } + Tmb(b, g); + Xub(g); + } + return h; + } + function _Tc(a, b, c, d, e) { + var f, g, h, i, j; + h = e ? d.b : d.a; + if (Zsb(a.a, d)) { + return; + } + j = h > c.s && h < c.c; + i = false; + if (c.e.b != 0 && c.j.b != 0) { + i = i | ($wnd.Math.abs(h - Kfb(UD(Qub(c.e)))) < Vze && $wnd.Math.abs(h - Kfb(UD(Qub(c.j)))) < Vze); + i = i | ($wnd.Math.abs(h - Kfb(UD(Rub(c.e)))) < Vze && $wnd.Math.abs(h - Kfb(UD(Rub(c.j)))) < Vze); + } + if (j || i) { + g = RD(mQb(b, (yCc(), RAc)), 75); + if (!g) { + g = new Ejd(); + pQb(b, RAc, g); + } + f = new sjd(d); + Pub(g, f, g.c.b, g.c); + Ysb(a.a, f); + } + } + function ZPb(a, b, c, d) { + var e, f, g, h, i, j, k; + if (YPb(a, b, c, d)) { + return true; + } else { + for (g = new Anb(b.f); g.a < g.c.c.length; ) { + f = RD(ynb(g), 334); + h = false; + i = a.j - b.j + c; + j = i + b.o; + k = a.k - b.k + d; + e = k + b.p; + switch (f.a.g) { + case 0: + h = fQb(a, i + f.b.a, 0, i + f.c.a, k - 1); + break; + case 1: + h = fQb(a, j, k + f.b.a, a.o - 1, k + f.c.a); + break; + case 2: + h = fQb(a, i + f.b.a, e, i + f.c.a, a.p - 1); + break; + default: + h = fQb(a, 0, k + f.b.a, i - 1, k + f.c.a); + } + if (h) { + return true; + } + } + } + return false; + } + function yZc(a, b, c) { + var d, e, f, g, h, i, j, k, l; + c.Ug("Processor set coordinates", 1); + a.a = b.b.b == 0 ? 1 : b.b.b; + j = null; + d = Sub(b.b, 0); + while (!j && d.b != d.d.c) { + l = RD(evb(d), 40); + if (Heb(TD(mQb(l, (q$c(), n$c))))) { + j = l; + i = l.e; + i.a = RD(mQb(l, o$c), 17).a; + i.b = RD(mQb(l, p$c), 17).a; + } + } + h = $Wc(j); + k = 1; + do { + h = zZc((e = h, c.eh(k), e)); + k = h.b / a.a | 0; + } while (h.b != 0); + for (g = Sub(b.b, 0); g.b != g.d.c; ) { + f = RD(evb(g), 40); + ojd(f.e, new rjd(f.f.a / 2, f.f.b / 2)); + } + c.Vg(); + } + function uYc(a, b, c) { + var d, e, f, g, h, i, j, k; + c.Ug(MEe, 1); + akb(a.b); + akb(a.a); + h = null; + f = Sub(b.b, 0); + while (!h && f.b != f.d.c) { + j = RD(evb(f), 40); + Heb(TD(mQb(j, (q$c(), n$c)))) && (h = j); + } + i = new Yub(); + Pub(i, h, i.c.b, i.c); + tYc(a, i); + for (k = Sub(b.b, 0); k.b != k.d.c; ) { + j = RD(evb(k), 40); + g = WD(mQb(j, (q$c(), a$c))); + e = Xjb(a.b, g) != null ? RD(Xjb(a.b, g), 17).a : 0; + pQb(j, XZc, sgb(e)); + d = 1 + (Xjb(a.a, g) != null ? RD(Xjb(a.a, g), 17).a : 0); + pQb(j, VZc, sgb(d)); + } + c.Vg(); + } + function ikd(a) { + Cgd(a, new Pfd($fd(Xfd(Zfd(Yfd(new agd(), LGe), "ELK Box"), "Algorithm for packing of unconnected boxes, i.e. graphs without edges."), new lkd()))); + Agd(a, LGe, Eze, ekd); + Agd(a, LGe, _ze, 15); + Agd(a, LGe, $ze, sgb(0)); + Agd(a, LGe, MGe, iGd($jd)); + Agd(a, LGe, jAe, iGd(akd)); + Agd(a, LGe, iAe, iGd(ckd)); + Agd(a, LGe, Dze, KGe); + Agd(a, LGe, dAe, iGd(_jd)); + Agd(a, LGe, CAe, iGd(bkd)); + Agd(a, LGe, NGe, iGd(Yjd)); + Agd(a, LGe, YDe, iGd(Zjd)); + } + function c2b(a, b) { + var c, d, e, f, g, h, i, j, k; + e = a.i; + g = e.o.a; + f = e.o.b; + if (g <= 0 && f <= 0) { + return qpd(), opd; + } + j = a.n.a; + k = a.n.b; + h = a.o.a; + c = a.o.b; + switch (b.g) { + case 2: + case 1: + if (j < 0) { + return qpd(), ppd; + } else if (j + h > g) { + return qpd(), Xod; + } + break; + case 4: + case 3: + if (k < 0) { + return qpd(), Yod; + } else if (k + c > f) { + return qpd(), npd; + } + } + i = (j + h / 2) / g; + d = (k + c / 2) / f; + return i + d <= 1 && i - d <= 0 ? (qpd(), ppd) : i + d >= 1 && i - d >= 0 ? (qpd(), Xod) : d < 0.5 ? (qpd(), Yod) : (qpd(), npd); + } + function PNc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p; + c = false; + k = Kfb(UD(mQb(b, (yCc(), bCc)))); + o2 = pwe * k; + for (e = new Anb(b.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 30); + j = new Anb(d.a); + f = RD(ynb(j), 10); + l = XNc(a.a[f.p]); + while (j.a < j.c.c.length) { + h = RD(ynb(j), 10); + m = XNc(a.a[h.p]); + if (l != m) { + n = bFc(a.b, f, h); + g = f.n.b + f.o.b + f.d.a + l.a + n; + i = h.n.b - h.d.d + m.a; + if (g > i + o2) { + p = l.g + m.g; + m.a = (m.g * m.a + l.g * l.a) / p; + m.g = p; + l.f = m; + c = true; + } + } + f = h; + l = m; + } + } + return c; + } + function MJb(a, b, c, d, e, f, g) { + var h, i, j, k, l, m; + m = new Tid(); + for (j = b.Kc(); j.Ob(); ) { + h = RD(j.Pb(), 853); + for (l = new Anb(h.Rf()); l.a < l.c.c.length; ) { + k = RD(ynb(l), 187); + if (dE(k.of((umd(), Qkd))) === dE((Omd(), Nmd))) { + JJb(m, k, false, d, e, f, g); + Sid(a, m); + } + } + } + for (i = c.Kc(); i.Ob(); ) { + h = RD(i.Pb(), 853); + for (l = new Anb(h.Rf()); l.a < l.c.c.length; ) { + k = RD(ynb(l), 187); + if (dE(k.of((umd(), Qkd))) === dE((Omd(), Mmd))) { + JJb(m, k, true, d, e, f, g); + Sid(a, m); + } + } + } + } + function PVc(a, b, c) { + var d, e, f, g, h, i, j; + for (g = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); g.e != g.i.gc(); ) { + f = RD(bMd(g), 27); + for (e = new is(Mr(zGd(f).a.Kc(), new ir())); gs(e); ) { + d = RD(hs(e), 74); + if (!nzd(d) && !nzd(d) && !ozd(d)) { + i = RD(Wd(qtb(c.f, f)), 40); + j = RD(Wjb(c, AGd(RD(QHd((!d.c && (d.c = new Yie(E4, d, 5, 8)), d.c), 0), 84))), 40); + if (!!i && !!j) { + h = new WWc(i, j); + pQb(h, (q$c(), h$c), d); + kQb(h, d); + Mub(i.d, h); + Mub(j.b, h); + Mub(b.a, h); + } + } + } + } + } + function HNb(a, b) { + var c, d, e, f, g, h, i, j; + for (i = RD(RD(Qc(a.r, b), 21), 87).Kc(); i.Ob(); ) { + h = RD(i.Pb(), 117); + e = h.c ? PKb(h.c) : 0; + if (e > 0) { + if (h.a) { + j = h.b.Mf().b; + if (e > j) { + if (a.v || h.c.d.c.length == 1) { + g = (e - j) / 2; + h.d.d = g; + h.d.a = g; + } else { + c = RD(Vmb(h.c.d, 0), 187).Mf().b; + d = (c - j) / 2; + h.d.d = $wnd.Math.max(0, d); + h.d.a = e - d - j; + } + } + } else { + h.d.a = a.t + e; + } + } else if (Rod(a.u)) { + f = wsd(h.b); + f.d < 0 && (h.d.d = -f.d); + f.d + f.a > h.b.Mf().b && (h.d.a = f.d + f.a - h.b.Mf().b); + } + } + } + function yVb() { + yVb = geb; + lVb = new mGd((umd(), Rld), sgb(1)); + rVb = new mGd(fmd, 80); + qVb = new mGd($ld, 5); + ZUb = new mGd(Dkd, Yze); + mVb = new mGd(Sld, sgb(1)); + pVb = new mGd(Vld, (Geb(), true)); + iVb = new A3b(50); + hVb = new mGd(tld, iVb); + _Ub = ald; + jVb = Hld; + $Ub = new mGd(Pkd, false); + gVb = sld; + eVb = mld; + fVb = pld; + dVb = kld; + cVb = ild; + kVb = Lld; + bVb = (OUb(), HUb); + sVb = MUb; + aVb = GUb; + nVb = JUb; + oVb = LUb; + vVb = mmd; + xVb = qmd; + uVb = lmd; + tVb = kmd; + wVb = (mqd(), jqd); + new mGd(nmd, wVb); + } + function VC(a, b) { + var c; + switch (XC(a)) { + case 6: + return bE(b); + case 7: + return _D(b); + case 8: + return $D(b); + case 3: + return Array.isArray(b) && (c = XC(b), !(c >= 14 && c <= 16)); + case 11: + return b != null && typeof b === kve; + case 12: + return b != null && (typeof b === gve || typeof b == kve); + case 0: + return QD(b, a.__elementTypeId$); + case 2: + return cE(b) && !(b.Tm === keb); + case 1: + return cE(b) && !(b.Tm === keb) || QD(b, a.__elementTypeId$); + default: + return true; + } + } + function oRb(a, b) { + var c, d, e, f; + d = $wnd.Math.min($wnd.Math.abs(a.c - (b.c + b.b)), $wnd.Math.abs(a.c + a.b - b.c)); + f = $wnd.Math.min($wnd.Math.abs(a.d - (b.d + b.a)), $wnd.Math.abs(a.d + a.a - b.d)); + c = $wnd.Math.abs(a.c + a.b / 2 - (b.c + b.b / 2)); + if (c > a.b / 2 + b.b / 2) { + return 1; + } + e = $wnd.Math.abs(a.d + a.a / 2 - (b.d + b.a / 2)); + if (e > a.a / 2 + b.a / 2) { + return 1; + } + if (c == 0 && e == 0) { + return 0; + } + if (c == 0) { + return f / e + 1; + } + if (e == 0) { + return d / c + 1; + } + return $wnd.Math.min(d / c, f / e) + 1; + } + function oWb(a, b) { + var c, d, e, f, g, h, i; + f = 0; + h = 0; + i = 0; + for (e = new Anb(a.f.e); e.a < e.c.c.length; ) { + d = RD(ynb(e), 153); + if (b == d) { + continue; + } + g = a.i[b.a][d.a]; + f += g; + c = bjd(b.d, d.d); + c > 0 && a.d != (AWb(), zWb) && (h += g * (d.d.a + a.a[b.a][d.a] * (b.d.a - d.d.a) / c)); + c > 0 && a.d != (AWb(), xWb) && (i += g * (d.d.b + a.a[b.a][d.a] * (b.d.b - d.d.b) / c)); + } + switch (a.d.g) { + case 1: + return new rjd(h / f, b.d.b); + case 2: + return new rjd(b.d.a, i / f); + default: + return new rjd(h / f, i / f); + } + } + function xsd(a) { + var b, c, d, e, f, g; + c = (!a.a && (a.a = new XZd(D4, a, 5)), a.a).i + 2; + g = new cnb(c); + Rmb(g, new rjd(a.j, a.k)); + FDb(new SDb(null, (!a.a && (a.a = new XZd(D4, a, 5)), new Swb(a.a, 16))), new Usd(g)); + Rmb(g, new rjd(a.b, a.c)); + b = 1; + while (b < g.c.length - 1) { + d = (tFb(b - 1, g.c.length), RD(g.c[b - 1], 8)); + e = (tFb(b, g.c.length), RD(g.c[b], 8)); + f = (tFb(b + 1, g.c.length), RD(g.c[b + 1], 8)); + d.a == e.a && e.a == f.a || d.b == e.b && e.b == f.b ? Xmb(g, b) : ++b; + } + return g; + } + function zgc(a, b) { + sgc(); + var c, d, e, f, g; + g = RD(mQb(a.i, (yCc(), BBc)), 101); + f = a.j.g - b.j.g; + if (f != 0 || !(g == (Bod(), vod) || g == xod || g == wod)) { + return 0; + } + if (g == (Bod(), vod)) { + c = RD(mQb(a, CBc), 17); + d = RD(mQb(b, CBc), 17); + if (!!c && !!d) { + e = c.a - d.a; + if (e != 0) { + return e; + } + } + } + switch (a.j.g) { + case 1: + return Qfb(a.n.a, b.n.a); + case 2: + return Qfb(a.n.b, b.n.b); + case 3: + return Qfb(b.n.a, a.n.a); + case 4: + return Qfb(b.n.b, a.n.b); + default: + throw Adb(new dgb(UAe)); + } + } + function Bkc(a, b) { + var c, d, e, f, g, h, i; + c = mGb(pGb(nGb(oGb(new qGb(), b), new Vid(b.e)), kkc), a.a); + b.j.c.length == 0 || eGb(RD(Vmb(b.j, 0), 60).a, c); + i = new cHb(); + Zjb(a.e, c, i); + g = new _sb(); + h = new _sb(); + for (f = new Anb(b.k); f.a < f.c.c.length; ) { + e = RD(ynb(f), 18); + Ysb(g, e.c); + Ysb(h, e.d); + } + d = g.a.gc() - h.a.gc(); + if (d < 0) { + aHb(i, true, (Cmd(), ymd)); + aHb(i, false, zmd); + } else if (d > 0) { + aHb(i, false, (Cmd(), ymd)); + aHb(i, true, zmd); + } + Umb(b.g, new Elc(a, c)); + Zjb(a.g, b, c); + } + function Ugb() { + Ugb = geb; + var a; + Qgb = cD(WC(kE, 1), Pwe, 28, 15, [-1, -1, 30, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); + Rgb = $C(kE, Pwe, 28, 37, 15, 1); + Sgb = cD(WC(kE, 1), Pwe, 28, 15, [-1, -1, 63, 40, 32, 28, 25, 23, 21, 20, 19, 19, 18, 18, 17, 17, 16, 16, 16, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13]); + Tgb = $C(lE, rxe, 28, 37, 14, 1); + for (a = 2; a <= 36; a++) { + Rgb[a] = eE($wnd.Math.pow(a, Qgb[a])); + Tgb[a] = Fdb(Sve, Rgb[a]); + } + } + function tsd(a) { + var b; + if ((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a).i != 1) { + throw Adb(new agb(tHe + (!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a).i)); + } + b = new Ejd(); + !!BGd(RD(QHd((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b), 0), 84)) && ye(b, usd(a, BGd(RD(QHd((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b), 0), 84)), false)); + !!BGd(RD(QHd((!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c), 0), 84)) && ye(b, usd(a, BGd(RD(QHd((!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c), 0), 84)), true)); + return b; + } + function zRc(a, b) { + var c, d, e, f, g; + b.d ? e = a.a.c == (wQc(), vQc) ? Z2b(b.b) : a3b(b.b) : e = a.a.c == (wQc(), uQc) ? Z2b(b.b) : a3b(b.b); + f = false; + for (d = new is(Mr(e.a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + g = Heb(a.a.f[a.a.g[b.b.p].p]); + if (!g && !W0b(c) && c.c.i.c == c.d.i.c) { + continue; + } + if (Heb(a.a.n[a.a.g[b.b.p].p]) || Heb(a.a.n[a.a.g[b.b.p].p])) { + continue; + } + f = true; + if (Zsb(a.b, a.a.g[rRc(c, b.b).p])) { + b.c = true; + b.a = c; + return b; + } + } + b.c = f; + b.a = null; + return b; + } + function QJd(a, b, c) { + var d, e, f, g, h, i, j; + d = c.gc(); + if (d == 0) { + return false; + } else { + if (a.Pj()) { + i = a.Qj(); + ZId(a, b, c); + g = d == 1 ? a.Ij(3, null, c.Kc().Pb(), b, i) : a.Ij(5, null, c, b, i); + if (a.Mj()) { + h = d < 100 ? null : new gLd(d); + f = b + d; + for (e = b; e < f; ++e) { + j = a.xj(e); + h = a.Nj(j, h); + h = h; + } + if (!h) { + a.Jj(g); + } else { + h.nj(g); + h.oj(); + } + } else { + a.Jj(g); + } + } else { + ZId(a, b, c); + if (a.Mj()) { + h = d < 100 ? null : new gLd(d); + f = b + d; + for (e = b; e < f; ++e) { + h = a.Nj(a.xj(e), h); + } + !!h && h.oj(); + } + } + return true; + } + } + function WJd(a, b, c) { + var d, e, f, g, h; + if (a.Pj()) { + e = null; + f = a.Qj(); + d = a.Ij(1, h = (g = a.Dj(b, a.Zi(b, c)), g), c, b, f); + if (a.Mj() && !(a.Yi() && !!h ? pb(h, c) : dE(h) === dE(c))) { + !!h && (e = a.Oj(h, e)); + e = a.Nj(c, e); + if (!e) { + a.Jj(d); + } else { + e.nj(d); + e.oj(); + } + } else { + if (!e) { + a.Jj(d); + } else { + e.nj(d); + e.oj(); + } + } + return h; + } else { + h = (g = a.Dj(b, a.Zi(b, c)), g); + if (a.Mj() && !(a.Yi() && !!h ? pb(h, c) : dE(h) === dE(c))) { + e = null; + !!h && (e = a.Oj(h, null)); + e = a.Nj(c, e); + !!e && e.oj(); + } + return h; + } + } + function nUb(a, b) { + var c, d, e, f, g, h, i, j, k; + a.e = b; + a.f = RD(mQb(b, (JVb(), IVb)), 234); + eUb(b); + a.d = $wnd.Math.max(b.e.c.length * 16 + b.c.c.length, 256); + if (!Heb(TD(mQb(b, (yVb(), _Ub))))) { + k = a.e.e.c.length; + for (i = new Anb(b.e); i.a < i.c.c.length; ) { + h = RD(ynb(i), 153); + j = h.d; + j.a = Iwb(a.f) * k; + j.b = Iwb(a.f) * k; + } + } + c = b.b; + for (f = new Anb(b.c); f.a < f.c.c.length; ) { + e = RD(ynb(f), 290); + d = RD(mQb(e, oVb), 17).a; + if (d > 0) { + for (g = 0; g < d; g++) { + Rmb(c, new WTb(e)); + } + YTb(e); + } + } + } + function NId(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2; + m = new OC(a.Zg()); + sC(b, GIe, m); + if (c && !a.Xg().a.dc()) { + k = new MB(); + sC(b, "logs", k); + h = 0; + for (o2 = new Ppb(a.Xg().b.Kc()); o2.b.Ob(); ) { + n = WD(o2.b.Pb()); + l = new OC(n); + JB(k, h); + LB(k, h, l); + ++h; + } + } + if (d) { + j = new hC(a.Wg()); + sC(b, "executionTime", j); + } + if (!a.Yg().a.dc()) { + g = new MB(); + sC(b, iIe, g); + h = 0; + for (f = new Ppb(a.Yg().b.Kc()); f.b.Ob(); ) { + e = RD(f.b.Pb(), 871); + i = new uC(); + JB(g, h); + LB(g, h, i); + NId(e, i, c, d); + ++h; + } + } + } + function rue() { + rue = geb; + Gie(); + que = new sue(); + cD(WC(B7, 2), Nve, 381, 0, [cD(WC(B7, 1), _Le, 600, 0, [new oue(wLe)])]); + cD(WC(B7, 2), Nve, 381, 0, [cD(WC(B7, 1), _Le, 600, 0, [new oue(xLe)])]); + cD(WC(B7, 2), Nve, 381, 0, [cD(WC(B7, 1), _Le, 600, 0, [new oue(yLe)]), cD(WC(B7, 1), _Le, 600, 0, [new oue(xLe)])]); + new ejb("-1"); + cD(WC(B7, 2), Nve, 381, 0, [cD(WC(B7, 1), _Le, 600, 0, [new oue("\\c+")])]); + new ejb("0"); + new ejb("0"); + new ejb("1"); + new ejb("0"); + new ejb(ILe); + } + function wac(a, b) { + var c, d, e, f, g, h, i, j, k, l; + b.Ug("Hypernodes processing", 1); + for (e = new Anb(a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 30); + for (h = new Anb(d.a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 10); + if (Heb(TD(mQb(g, (yCc(), MAc)))) && g.j.c.length <= 2) { + l = 0; + k = 0; + c = 0; + f = 0; + for (j = new Anb(g.j); j.a < j.c.c.length; ) { + i = RD(ynb(j), 12); + switch (i.j.g) { + case 1: + ++l; + break; + case 2: + ++k; + break; + case 3: + ++c; + break; + case 4: + ++f; + } + } + l == 0 && c == 0 && vac(a, g, f <= k); + } + } + } + b.Vg(); + } + function MUc(a, b, c, d, e) { + var f, g, h, i, j, k, l; + for (g = new Anb(b); g.a < g.c.c.length; ) { + f = RD(ynb(g), 18); + i = f.c; + if (c.a._b(i)) { + j = (dVc(), bVc); + } else if (d.a._b(i)) { + j = (dVc(), cVc); + } else { + throw Adb(new agb("Source port must be in one of the port sets.")); + } + k = f.d; + if (c.a._b(k)) { + l = (dVc(), bVc); + } else if (d.a._b(k)) { + l = (dVc(), cVc); + } else { + throw Adb(new agb("Target port must be in one of the port sets.")); + } + h = new wVc(f, j, l); + Zjb(a.b, f, h); + ZEb(e.c, h); + } + } + function i2d(a) { + var b, c; + if (!!a.c && a.c.Vh()) { + c = RD(a.c, 54); + a.c = RD(Vvd(a, c), 142); + if (a.c != c) { + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 9, 2, c, a.c)); + if (ZD(a.Cb, 411)) { + a.Db >> 16 == -15 && a.Cb.Yh() && pKd(new O3d(a.Cb, 9, 13, c, a.c, fZd(o4d(RD(a.Cb, 62)), a))); + } else if (ZD(a.Cb, 90)) { + if (a.Db >> 16 == -23 && a.Cb.Yh()) { + b = a.c; + ZD(b, 90) || (b = (JTd(), zTd)); + ZD(c, 90) || (c = (JTd(), zTd)); + pKd(new O3d(a.Cb, 9, 10, c, b, fZd(tYd(RD(a.Cb, 29)), a))); + } + } + } + } + return a.c; + } + function lac(a, b, c) { + var d, e, f, g, h, i, j, k, l; + c.Ug("Hyperedge merging", 1); + jac(a, b); + i = new Jkb(b.b, 0); + while (i.b < i.d.gc()) { + h = (sFb(i.b < i.d.gc()), RD(i.d.Xb(i.c = i.b++), 30)); + k = h.a; + if (k.c.length == 0) { + continue; + } + d = null; + e = null; + f = null; + g = null; + for (j = 0; j < k.c.length; j++) { + d = (tFb(j, k.c.length), RD(k.c[j], 10)); + e = d.k; + if (e == (r3b(), o3b) && g == o3b) { + l = hac(d, f); + if (l.a) { + kac(d, f, l.b, l.c); + tFb(j, k.c.length); + $Eb(k.c, j, 1); + --j; + d = f; + e = g; + } + } + f = d; + g = e; + } + } + c.Vg(); + } + function U$d(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2; + if (b == c) { + return true; + } else { + b = V$d(a, b); + c = V$d(a, c); + d = h2d(b); + if (d) { + k = h2d(c); + if (k != d) { + if (!k) { + return false; + } else { + i = d.mk(); + o2 = k.mk(); + return i == o2 && i != null; + } + } else { + g = (!b.d && (b.d = new XZd(o7, b, 1)), b.d); + f = g.i; + m = (!c.d && (c.d = new XZd(o7, c, 1)), c.d); + if (f == m.i) { + for (j = 0; j < f; ++j) { + e = RD(QHd(g, j), 89); + l = RD(QHd(m, j), 89); + if (!U$d(a, e, l)) { + return false; + } + } + } + return true; + } + } else { + h = b.e; + n = c.e; + return h == n; + } + } + } + function vge(a, b, c, d) { + var e, f, g, h, i, j, k, l; + if (qke(a.e, b)) { + l = pke(a.e.Dh(), b); + f = RD(a.g, 124); + k = null; + i = -1; + h = -1; + e = 0; + for (j = 0; j < a.i; ++j) { + g = f[j]; + if (l.am(g.Lk())) { + e == c && (i = j); + if (e == d) { + h = j; + k = g.md(); + } + ++e; + } + } + if (i == -1) { + throw Adb(new veb(MIe + c + NIe + e)); + } + if (h == -1) { + throw Adb(new veb(OIe + d + NIe + e)); + } + uLd(a, i, h); + Mvd(a.e) && eZd(a, fge(a, 7, b, sgb(d), k, c, true)); + return k; + } else { + throw Adb(new agb("The feature must be many-valued to support move")); + } + } + function j2b(a, b, c, d) { + var e, f, g, h, i; + i = new sjd(b.n); + i.a += b.o.a / 2; + i.b += b.o.b / 2; + h = Kfb(UD(mQb(b, (yCc(), ABc)))); + f = a.f; + g = a.d; + e = a.c; + switch (RD(mQb(b, (Ywc(), hwc)), 64).g) { + case 1: + i.a += g.b + e.a - c / 2; + i.b = -d - h; + b.n.b = -(g.d + h + e.b); + break; + case 2: + i.a = f.a + g.b + g.c + h; + i.b += g.d + e.b - d / 2; + b.n.a = f.a + g.c + h - e.a; + break; + case 3: + i.a += g.b + e.a - c / 2; + i.b = f.b + g.d + g.a + h; + b.n.b = f.b + g.a + h - e.b; + break; + case 4: + i.a = -c - h; + i.b += g.d + e.b - d / 2; + b.n.a = -(g.b + h + e.a); + } + return i; + } + function Z4b(a) { + var b, c, d, e, f, g; + d = new d1b(); + kQb(d, a); + dE(mQb(d, (yCc(), rAc))) === dE((Cmd(), Amd)) && pQb(d, rAc, i2b(d)); + if (mQb(d, (rid(), qid)) == null) { + g = RD(Lje(a), 167); + pQb(d, qid, fE(g.of(qid))); + } + pQb(d, (Ywc(), Awc), a); + pQb(d, kwc, (b = RD(mfb(iX), 9), new Fsb(b, RD(WEb(b, b.length), 9), 0))); + e = FJb((!vCd(a) ? null : (lud(), new zud(vCd(a))), lud(), new Fud(!vCd(a) ? null : new zud(vCd(a)), a)), zmd); + f = RD(mQb(d, qBc), 107); + c = d.d; + B2b(c, f); + B2b(c, e); + return d; + } + function Nec(a, b, c) { + var d, e; + d = b.c.i; + e = c.d.i; + if (d.k == (r3b(), o3b)) { + pQb(a, (Ywc(), vwc), RD(mQb(d, vwc), 12)); + pQb(a, wwc, RD(mQb(d, wwc), 12)); + pQb(a, uwc, TD(mQb(d, uwc))); + } else if (d.k == n3b) { + pQb(a, (Ywc(), vwc), RD(mQb(d, vwc), 12)); + pQb(a, wwc, RD(mQb(d, wwc), 12)); + pQb(a, uwc, (Geb(), true)); + } else if (e.k == n3b) { + pQb(a, (Ywc(), vwc), RD(mQb(e, vwc), 12)); + pQb(a, wwc, RD(mQb(e, wwc), 12)); + pQb(a, uwc, (Geb(), true)); + } else { + pQb(a, (Ywc(), vwc), b.c); + pQb(a, wwc, c.d); + } + } + function wJb(a) { + var b, c, d, e, f, g, h; + a.o = new wmb(); + d = new Yub(); + for (g = new Anb(a.e.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 125); + CIb(f).c.length == 1 && (Pub(d, f, d.c.b, d.c), true); + } + while (d.b != 0) { + f = RD(d.b == 0 ? null : (sFb(d.b != 0), Wub(d, d.a.a)), 125); + if (CIb(f).c.length == 0) { + continue; + } + b = RD(Vmb(CIb(f), 0), 218); + c = f.g.a.c.length > 0; + h = oIb(b, f); + c ? FIb(h.b, b) : FIb(h.g, b); + CIb(h).c.length == 1 && (Pub(d, h, d.c.b, d.c), true); + e = new Ptd(f, b); + hmb(a.o, e); + Ymb(a.e.a, f); + } + } + function SQb(a, b) { + var c, d, e, f, g, h, i; + d = $wnd.Math.abs(Oid(a.b).a - Oid(b.b).a); + h = $wnd.Math.abs(Oid(a.b).b - Oid(b.b).b); + e = 0; + i = 0; + c = 1; + g = 1; + if (d > a.b.b / 2 + b.b.b / 2) { + e = $wnd.Math.min($wnd.Math.abs(a.b.c - (b.b.c + b.b.b)), $wnd.Math.abs(a.b.c + a.b.b - b.b.c)); + c = 1 - e / d; + } + if (h > a.b.a / 2 + b.b.a / 2) { + i = $wnd.Math.min($wnd.Math.abs(a.b.d - (b.b.d + b.b.a)), $wnd.Math.abs(a.b.d + a.b.a - b.b.d)); + g = 1 - i / h; + } + f = $wnd.Math.min(c, g); + return (1 - f) * $wnd.Math.sqrt(d * d + h * h); + } + function LUc(a) { + var b, c, d, e; + NUc(a, a.e, a.f, (dVc(), bVc), true, a.c, a.i); + NUc(a, a.e, a.f, bVc, false, a.c, a.i); + NUc(a, a.e, a.f, cVc, true, a.c, a.i); + NUc(a, a.e, a.f, cVc, false, a.c, a.i); + MUc(a, a.c, a.e, a.f, a.i); + d = new Jkb(a.i, 0); + while (d.b < d.d.gc()) { + b = (sFb(d.b < d.d.gc()), RD(d.d.Xb(d.c = d.b++), 131)); + e = new Jkb(a.i, d.b); + while (e.b < e.d.gc()) { + c = (sFb(e.b < e.d.gc()), RD(e.d.Xb(e.c = e.b++), 131)); + KUc(b, c); + } + } + WUc(a.i, RD(mQb(a.d, (Ywc(), Lwc)), 234)); + ZUc(a.i); + } + function FXd(a, b) { + var c, d; + if (b != null) { + d = DXd(a); + if (d) { + if ((d.i & 1) != 0) { + if (d == xdb) { + return $D(b); + } else if (d == kE) { + return ZD(b, 17); + } else if (d == jE) { + return ZD(b, 161); + } else if (d == gE) { + return ZD(b, 222); + } else if (d == hE) { + return ZD(b, 180); + } else if (d == iE) { + return _D(b); + } else if (d == wdb) { + return ZD(b, 191); + } else if (d == lE) { + return ZD(b, 168); + } + } else { + return PRd(), c = RD(Wjb(ORd, d), 57), !c || c.fk(b); + } + } else if (ZD(b, 58)) { + return a.dl(RD(b, 58)); + } + } + return false; + } + function zqe() { + zqe = geb; + var a, b, c, d, e, f, g, h, i; + xqe = $C(gE, YHe, 28, 255, 15, 1); + yqe = $C(hE, zwe, 28, 64, 15, 1); + for (b = 0; b < 255; b++) { + xqe[b] = -1; + } + for (c = 90; c >= 65; c--) { + xqe[c] = c - 65 << 24 >> 24; + } + for (d = 122; d >= 97; d--) { + xqe[d] = d - 97 + 26 << 24 >> 24; + } + for (e = 57; e >= 48; e--) { + xqe[e] = e - 48 + 52 << 24 >> 24; + } + xqe[43] = 62; + xqe[47] = 63; + for (f = 0; f <= 25; f++) + yqe[f] = 65 + f & Bwe; + for (g = 26, i = 0; g <= 51; ++g, i++) + yqe[g] = 97 + i & Bwe; + for (a = 52, h = 0; a <= 61; ++a, h++) + yqe[a] = 48 + h & Bwe; + yqe[62] = 43; + yqe[63] = 47; + } + function uib(a, b) { + var c, d, e, f, g, h; + e = xib(a); + h = xib(b); + if (e == h) { + if (a.e == b.e && a.a < 54 && b.a < 54) { + return a.f < b.f ? -1 : a.f > b.f ? 1 : 0; + } + d = a.e - b.e; + c = (a.d > 0 ? a.d : $wnd.Math.floor((a.a - 1) * xxe) + 1) - (b.d > 0 ? b.d : $wnd.Math.floor((b.a - 1) * xxe) + 1); + if (c > d + 1) { + return e; + } else if (c < d - 1) { + return -e; + } else { + f = (!a.c && (a.c = ojb(Hdb(a.f))), a.c); + g = (!b.c && (b.c = ojb(Hdb(b.f))), b.c); + d < 0 ? f = Wib(f, Sjb(-d)) : d > 0 && (g = Wib(g, Sjb(d))); + return Qib(f, g); + } + } else + return e < h ? -1 : 1; + } + function pUb(a, b, c) { + var d, e, f, g, h, i, j, k; + c.Ug(Pze, 1); + a.vf(b); + f = 0; + while (a.xf(f) && !c.$g()) { + a.wf(); + for (k = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [b.e, b.d, b.b]))); gs(k); ) { + i = RD(hs(k), 309); + for (h = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [b.e, b.d, b.b]))); gs(h); ) { + g = RD(hs(h), 309); + if (g != i) { + e = a.uf(g, i); + !!e && $id(i.c, e); + } + } + } + for (j = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [b.e, b.d, b.b]))); gs(j); ) { + i = RD(hs(j), 309); + d = i.c; + _id(d, -a.d, -a.d, a.d, a.d); + $id(i.d, d); + d.a = 0; + d.b = 0; + } + ++f; + } + c.Vg(); + } + function H$b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n; + if (a.dc()) { + return new pjd(); + } + j = 0; + l = 0; + for (e = a.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 36); + f = d.f; + j = $wnd.Math.max(j, f.a); + l += f.a * f.b; + } + j = $wnd.Math.max(j, $wnd.Math.sqrt(l) * Kfb(UD(mQb(RD(a.Kc().Pb(), 36), (yCc(), Tzc))))); + m = 0; + n = 0; + i = 0; + c = b; + for (h = a.Kc(); h.Ob(); ) { + g = RD(h.Pb(), 36); + k = g.f; + if (m + k.a > j) { + m = 0; + n += i + b; + i = 0; + } + w$b(g, m, n); + c = $wnd.Math.max(c, m + k.a); + i = $wnd.Math.max(i, k.b); + m += k.a + b; + } + return new rjd(c + b, n + i + b); + } + function osd(a, b) { + var c, d, e, f, g, h, i; + if (!MCd(a)) { + throw Adb(new dgb(sHe)); + } + d = MCd(a); + f = d.g; + e = d.f; + if (f <= 0 && e <= 0) { + return qpd(), opd; + } + h = a.i; + i = a.j; + switch (b.g) { + case 2: + case 1: + if (h < 0) { + return qpd(), ppd; + } else if (h + a.g > f) { + return qpd(), Xod; + } + break; + case 4: + case 3: + if (i < 0) { + return qpd(), Yod; + } else if (i + a.f > e) { + return qpd(), npd; + } + } + g = (h + a.g / 2) / f; + c = (i + a.f / 2) / e; + return g + c <= 1 && g - c <= 0 ? (qpd(), ppd) : g + c >= 1 && g - c >= 0 ? (qpd(), Xod) : c < 0.5 ? (qpd(), Yod) : (qpd(), npd); + } + function Djb(a, b, c, d, e) { + var f, g; + f = Bdb(Cdb(b[0], yxe), Cdb(d[0], yxe)); + a[0] = Ydb(f); + f = Tdb(f, 32); + if (c >= e) { + for (g = 1; g < e; g++) { + f = Bdb(f, Bdb(Cdb(b[g], yxe), Cdb(d[g], yxe))); + a[g] = Ydb(f); + f = Tdb(f, 32); + } + for (; g < c; g++) { + f = Bdb(f, Cdb(b[g], yxe)); + a[g] = Ydb(f); + f = Tdb(f, 32); + } + } else { + for (g = 1; g < c; g++) { + f = Bdb(f, Bdb(Cdb(b[g], yxe), Cdb(d[g], yxe))); + a[g] = Ydb(f); + f = Tdb(f, 32); + } + for (; g < e; g++) { + f = Bdb(f, Cdb(d[g], yxe)); + a[g] = Ydb(f); + f = Tdb(f, 32); + } + } + Ddb(f, 0) != 0 && (a[g] = Ydb(f)); + } + function yte(a) { + Vse(); + var b, c, d, e, f, g; + if (a.e != 4 && a.e != 5) + throw Adb(new agb("Token#complementRanges(): must be RANGE: " + a.e)); + f = a; + vte(f); + ste(f); + d = f.b.length + 2; + f.b[0] == 0 && (d -= 2); + c = f.b[f.b.length - 1]; + c == MLe && (d -= 2); + e = new xte(4); + e.b = $C(kE, Pwe, 28, d, 15, 1); + g = 0; + if (f.b[0] > 0) { + e.b[g++] = 0; + e.b[g++] = f.b[0] - 1; + } + for (b = 1; b < f.b.length - 2; b += 2) { + e.b[g++] = f.b[b] + 1; + e.b[g++] = f.b[b + 1] - 1; + } + if (c != MLe) { + e.b[g++] = c + 1; + e.b[g] = MLe; + } + e.a = true; + return e; + } + function zac(a, b) { + var c, d, e, f, g, h, i, j, k; + b.Ug("Layer constraint edge reversal", 1); + for (g = new Anb(a.b); g.a < g.c.c.length; ) { + f = RD(ynb(g), 30); + k = -1; + c = new bnb(); + j = t2b(f.a); + for (e = 0; e < j.length; e++) { + d = RD(mQb(j[e], (Ywc(), owc)), 311); + if (k == -1) { + d != (Gvc(), Fvc) && (k = e); + } else { + if (d == (Gvc(), Fvc)) { + g3b(j[e], null); + f3b(j[e], k++, f); + } + } + d == (Gvc(), Dvc) && (ZEb(c.c, j[e]), true); + } + for (i = new Anb(c); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + g3b(h, null); + g3b(h, f); + } + } + b.Vg(); + } + function nLd(a, b, c) { + var d, e, f, g, h, i, j, k; + d = c.gc(); + if (d == 0) { + return false; + } else { + if (a.Pj()) { + j = a.Qj(); + IHd(a, b, c); + g = d == 1 ? a.Ij(3, null, c.Kc().Pb(), b, j) : a.Ij(5, null, c, b, j); + if (a.Mj()) { + h = d < 100 ? null : new gLd(d); + f = b + d; + for (e = b; e < f; ++e) { + k = a.g[e]; + h = a.Nj(k, h); + h = a.Uj(k, h); + } + if (!h) { + a.Jj(g); + } else { + h.nj(g); + h.oj(); + } + } else { + a.Jj(g); + } + } else { + IHd(a, b, c); + if (a.Mj()) { + h = d < 100 ? null : new gLd(d); + f = b + d; + for (e = b; e < f; ++e) { + i = a.g[e]; + h = a.Nj(i, h); + } + !!h && h.oj(); + } + } + return true; + } + } + function m9b(a, b) { + var c, d, e, f, g, h, i, j, k; + b.Ug("Hierarchical port dummy size processing", 1); + i = new bnb(); + k = new bnb(); + d = Kfb(UD(mQb(a, (yCc(), UBc)))); + c = d * 2; + for (f = new Anb(a.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 30); + i.c.length = 0; + k.c.length = 0; + for (h = new Anb(e.a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 10); + if (g.k == (r3b(), m3b)) { + j = RD(mQb(g, (Ywc(), hwc)), 64); + j == (qpd(), Yod) ? (ZEb(i.c, g), true) : j == npd && (ZEb(k.c, g), true); + } + } + n9b(i, true, c); + n9b(k, false, c); + } + b.Vg(); + } + function wSc(a, b, c, d) { + var e, f, g, h, i; + for (g = new Anb(a.k); g.a < g.c.c.length; ) { + e = RD(ynb(g), 132); + if (!d || e.c == (fTc(), dTc)) { + i = e.b; + if (i.g < 0 && e.d > 0) { + PSc(i, i.d - e.d); + e.c == (fTc(), dTc) && NSc(i, i.a - e.d); + i.d <= 0 && i.i > 0 && (Pub(b, i, b.c.b, b.c), true); + } + } + } + for (f = new Anb(a.f); f.a < f.c.c.length; ) { + e = RD(ynb(f), 132); + if (!d || e.c == (fTc(), dTc)) { + h = e.a; + if (h.g < 0 && e.d > 0) { + QSc(h, h.i - e.d); + e.c == (fTc(), dTc) && OSc(h, h.b - e.d); + h.i <= 0 && h.d > 0 && (Pub(c, h, c.c.b, c.c), true); + } + } + } + } + function drd(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n; + yob(); + _mb(a, new Mrd()); + g = gv(a); + n = new bnb(); + m = new bnb(); + h = null; + i = 0; + while (g.b != 0) { + f = RD(g.b == 0 ? null : (sFb(g.b != 0), Wub(g, g.a.a)), 163); + if (!h || urd(h) * trd(h) / 2 < urd(f) * trd(f)) { + h = f; + ZEb(n.c, f); + } else { + i += urd(f) * trd(f); + ZEb(m.c, f); + if (m.c.length > 1 && (i > urd(h) * trd(h) / 2 || g.b == 0)) { + l = new zrd(m); + k = urd(h) / trd(h); + j = ird(l, b, new z3b(), c, d, e, k); + $id(hjd(l.e), j); + h = l; + ZEb(n.c, l); + i = 0; + m.c.length = 0; + } + } + } + Tmb(n, m); + return n; + } + function hib(a, b, c, d, e) { + gib(); + var f, g, h, i, j, k, l; + vFb(a, "src"); + vFb(c, "dest"); + l = rb(a); + i = rb(c); + qFb((l.i & 4) != 0, "srcType is not an array"); + qFb((i.i & 4) != 0, "destType is not an array"); + k = l.c; + g = i.c; + qFb((k.i & 1) != 0 ? k == g : (g.i & 1) == 0, "Array types don't match"); + iib(a, b, c, d, e); + if ((k.i & 1) == 0 && l != i) { + j = SD(a); + f = SD(c); + if (dE(a) === dE(c) && b < d) { + b += e; + for (h = d + e; h-- > d; ) { + bD(f, h, j[--b]); + } + } else { + for (h = d + e; d < h; ) { + bD(f, d++, j[b++]); + } + } + } else { + VEb(a, b, c, d, e, true); + } + } + function crd(a, b) { + var c, d, e, f, g, h, i, j, k; + b.Ug("Box layout", 2); + e = Mfb(UD(Gxd(a, (hkd(), gkd)))); + f = RD(Gxd(a, dkd), 107); + c = Heb(TD(Gxd(a, $jd))); + d = Heb(TD(Gxd(a, _jd))); + switch (RD(Gxd(a, Yjd), 320).g) { + case 0: + g = (k = new dnb((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)), yob(), _mb(k, new prd(d)), k); + h = vsd(a); + i = UD(Gxd(a, Xjd)); + (i == null || (uFb(i), i) <= 0) && (i = 1.3); + j = grd(g, e, f, h.a, h.b, c, (uFb(i), i)); + Esd(a, j.a, j.b, false, true); + break; + default: + hrd(a, e, f, c); + } + b.Vg(); + } + function uUc(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, o2; + m = tUc(a, c); + for (i = 0; i < b; i++) { + Ikb(e, c); + n = new bnb(); + o2 = (sFb(d.b < d.d.gc()), RD(d.d.Xb(d.c = d.b++), 418)); + for (k = m + i; k < a.b; k++) { + h = o2; + o2 = (sFb(d.b < d.d.gc()), RD(d.d.Xb(d.c = d.b++), 418)); + Rmb(n, new AUc(h, o2, c)); + } + for (l = m + i; l < a.b; l++) { + sFb(d.b > 0); + d.a.Xb(d.c = --d.b); + l > m + i && Ckb(d); + } + for (g = new Anb(n); g.a < g.c.c.length; ) { + f = RD(ynb(g), 418); + Ikb(d, f); + } + if (i < b - 1) { + for (j = m + i; j < a.b; j++) { + sFb(d.b > 0); + d.a.Xb(d.c = --d.b); + } + } + } + } + function gte() { + Vse(); + var a, b, c, d, e, f; + if (Fse) + return Fse; + a = new xte(4); + ute(a, hte(WLe, true)); + wte(a, hte("M", true)); + wte(a, hte("C", true)); + f = new xte(4); + for (d = 0; d < 11; d++) { + rte(f, d, d); + } + b = new xte(4); + ute(b, hte("M", true)); + rte(b, 4448, 4607); + rte(b, 65438, 65439); + e = new iue(2); + hue(e, a); + hue(e, Ese); + c = new iue(2); + c.Jm($se(f, hte("L", true))); + c.Jm(b); + c = new Kte(3, c); + c = new Qte(e, c); + Fse = c; + return Fse; + } + function vhb(a, b) { + var c, d, e, f, g, h, i, j; + c = new RegExp(b, "g"); + i = $C(qJ, Nve, 2, 0, 6, 1); + d = 0; + j = a; + f = null; + while (true) { + h = c.exec(j); + if (h == null || j == "") { + i[d] = j; + break; + } else { + g = h.index; + i[d] = (AFb(0, g, j.length), j.substr(0, g)); + j = zhb(j, g + h[0].length, j.length); + c.lastIndex = 0; + if (f == j) { + i[d] = (AFb(0, 1, j.length), j.substr(0, 1)); + j = (BFb(1, j.length + 1), j.substr(1)); + } + f = j; + ++d; + } + } + if (a.length > 0) { + e = i.length; + while (e > 0 && i[e - 1] == "") { + --e; + } + e < i.length && (i.length = e); + } + return i; + } + function h_c() { + h_c = geb; + U$c = new A3b(20); + T$c = new mGd((umd(), tld), U$c); + _$c = new mGd(fmd, 20); + $$c = new mGd(_ld, 3); + E$c = new mGd(Dkd, Yze); + X$c = new mGd(Rld, sgb(1)); + Z$c = new mGd(Vld, (Geb(), true)); + G$c = Mkd; + I$c = (Cmd(), Amd); + H$c = new mGd(Nkd, I$c); + L$c = ald; + M$c = bld; + O$c = kld; + P$c = mld; + Q$c = nld; + R$c = pld; + N$c = ild; + S$c = sld; + V$c = Lld; + g_c = (B$c(), z$c); + Y$c = w$c; + c_c = mmd; + e_c = qmd; + b_c = lmd; + a_c = kmd; + d_c = (mqd(), jqd); + new mGd(nmd, d_c); + W$c = v$c; + K$c = t$c; + f_c = y$c; + F$c = r$c; + J$c = s$c; + } + function bgd(a) { + var b, c; + b = WD(Gxd(a, (umd(), Akd))); + if (cgd(b, a)) { + return; + } + if (!Hxd(a, Tld) && ((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a).i != 0 || Heb(TD(Gxd(a, $kd))))) { + if (b == null || Dhb(b).length == 0) { + if (!cgd(sxe, a)) { + c = Zhb(Zhb(new dib("Unable to load default layout algorithm "), sxe), " for unconfigured node "); + Csd(a, c); + throw Adb(new Jed(c.a)); + } + } else { + c = Zhb(Zhb(new dib("Layout algorithm '"), b), "' not found for "); + Csd(a, c); + throw Adb(new Jed(c.a)); + } + } + } + function $Kb(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n; + c = a.i; + b = a.n; + if (a.b == 0) { + n = c.c + b.b; + m = c.b - b.b - b.c; + for (g = a.a, i = 0, k = g.length; i < k; ++i) { + e = g[i]; + dKb(e, n, m); + } + } else { + d = bLb(a, false); + dKb(a.a[0], c.c + b.b, d[0]); + dKb(a.a[2], c.c + c.b - b.c - d[2], d[2]); + l = c.b - b.b - b.c; + if (d[0] > 0) { + l -= d[0] + a.c; + d[0] += a.c; + } + d[2] > 0 && (l -= d[2] + a.c); + d[1] = $wnd.Math.max(d[1], l); + dKb(a.a[1], c.c + b.b + d[0] - (d[1] - l) / 2, d[1]); + } + for (f = a.a, h = 0, j = f.length; h < j; ++h) { + e = f[h]; + ZD(e, 336) && RD(e, 336).lf(); + } + } + function iRc(a) { + var b, c, d, e, f, g, h, i, j, k, l; + l = new hRc(); + l.d = 0; + for (g = new Anb(a.b); g.a < g.c.c.length; ) { + f = RD(ynb(g), 30); + l.d += f.a.c.length; + } + d = 0; + e = 0; + l.a = $C(kE, Pwe, 28, a.b.c.length, 15, 1); + j = 0; + k = 0; + l.e = $C(kE, Pwe, 28, l.d, 15, 1); + for (c = new Anb(a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 30); + b.p = d++; + l.a[b.p] = e++; + k = 0; + for (i = new Anb(b.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + h.p = j++; + l.e[h.p] = k++; + } + } + l.c = new mRc(l); + l.b = ev(l.d); + jRc(l, a); + l.f = ev(l.d); + kRc(l, a); + return l; + } + function M9c(a, b) { + var c, d, e, f; + f = RD(Vmb(a.n, a.n.c.length - 1), 209).d; + a.p = $wnd.Math.min(a.p, b.g); + a.r = $wnd.Math.max(a.r, f); + a.g = $wnd.Math.max(a.g, b.g + (a.b.c.length == 1 ? 0 : a.i)); + a.o = $wnd.Math.min(a.o, b.f); + a.e += b.f + (a.b.c.length == 1 ? 0 : a.i); + a.f = $wnd.Math.max(a.f, b.f); + e = a.n.c.length > 0 ? (a.n.c.length - 1) * a.i : 0; + for (d = new Anb(a.n); d.a < d.c.c.length; ) { + c = RD(ynb(d), 209); + e += c.a; + } + a.d = e; + a.a = a.e / a.b.c.length - a.i * ((a.b.c.length - 1) / a.b.c.length); + Ead(a.j); + } + function CTb(a, b) { + var c, d, e, f, g, h, i, j, k, l; + k = TD(mQb(b, (yVb(), pVb))); + if (k == null || (uFb(k), k)) { + l = $C(xdb, Hye, 28, b.e.c.length, 16, 1); + g = yTb(b); + e = new Yub(); + for (j = new Anb(b.e); j.a < j.c.c.length; ) { + h = RD(ynb(j), 153); + c = zTb(a, h, null, null, l, g); + if (c) { + kQb(c, b); + Pub(e, c, e.c.b, e.c); + } + } + if (e.b > 1) { + for (d = Sub(e, 0); d.b != d.d.c; ) { + c = RD(evb(d), 235); + f = 0; + for (i = new Anb(c.e); i.a < i.c.c.length; ) { + h = RD(ynb(i), 153); + h.a = f++; + } + } + } + return e; + } + return dv(cD(WC(tP, 1), Jze, 235, 0, [b])); + } + function rYd(a) { + var b, c, d, e, f, g, h; + if (!a.g) { + h = new Z$d(); + b = iYd; + g = b.a.zc(a, b); + if (g == null) { + for (d = new dMd(zYd(a)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 29); + YGd(h, rYd(c)); + } + b.a.Bc(a) != null; + b.a.gc() == 0 && void 0; + } + e = h.i; + for (f = (!a.s && (a.s = new C5d(y7, a, 21, 17)), new dMd(a.s)); f.e != f.i.gc(); ++e) { + BWd(RD(bMd(f), 462), e); + } + YGd(h, (!a.s && (a.s = new C5d(y7, a, 21, 17)), a.s)); + VHd(h); + a.g = new R$d(a, h); + a.i = RD(h.g, 254); + a.i == null && (a.i = kYd); + a.p = null; + yYd(a).b &= -5; + } + return a.g; + } + function yee(a, b) { + var c, d, e, f, g, h, i, j, k; + c = b.qi(a.a); + if (c) { + i = WD($Nd((!c.b && (c.b = new SVd((JTd(), FTd), C8, c)), c.b), "memberTypes")); + if (i != null) { + j = new bnb(); + for (f = vhb(i, "\\w"), g = 0, h = f.length; g < h; ++g) { + e = f[g]; + d = e.lastIndexOf("#"); + k = d == -1 ? Wee(a, b.jk(), e) : d == 0 ? Vee(a, null, (BFb(1, e.length + 1), e.substr(1))) : Vee(a, (AFb(0, d, e.length), e.substr(0, d)), (BFb(d + 1, e.length + 1), e.substr(d + 1))); + ZD(k, 156) && Rmb(j, RD(k, 156)); + } + return j; + } + } + return yob(), yob(), vob; + } + function _Kb(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2; + d = a.i; + c = a.n; + if (a.b == 0) { + b = aLb(a, false); + eKb(a.a[0], d.d + c.d, b[0]); + eKb(a.a[2], d.d + d.a - c.a - b[2], b[2]); + m = d.a - c.d - c.a; + l = m; + if (b[0] > 0) { + b[0] += a.c; + l -= b[0]; + } + b[2] > 0 && (l -= b[2] + a.c); + b[1] = $wnd.Math.max(b[1], l); + eKb(a.a[1], d.d + c.d + b[0] - (b[1] - l) / 2, b[1]); + } else { + o2 = d.d + c.d; + n = d.a - c.d - c.a; + for (g = a.a, i = 0, k = g.length; i < k; ++i) { + e = g[i]; + eKb(e, o2, n); + } + } + for (f = a.a, h = 0, j = f.length; h < j; ++h) { + e = f[h]; + ZD(e, 336) && RD(e, 336).mf(); + } + } + function Erc(a) { + var b, c, d, e, f, g, h, i, j, k; + k = $C(kE, Pwe, 28, a.b.c.length + 1, 15, 1); + j = new _sb(); + d = 0; + for (f = new Anb(a.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 30); + k[d++] = j.a.gc(); + for (i = new Anb(e.a); i.a < i.c.c.length; ) { + g = RD(ynb(i), 10); + for (c = new is(Mr(a3b(g).a.Kc(), new ir())); gs(c); ) { + b = RD(hs(c), 18); + j.a.zc(b, j); + } + } + for (h = new Anb(e.a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 10); + for (c = new is(Mr(Z2b(g).a.Kc(), new ir())); gs(c); ) { + b = RD(hs(c), 18); + j.a.Bc(b) != null; + } + } + } + return k; + } + function dge(a, b, c, d) { + var e, f, g, h, i; + i = pke(a.e.Dh(), b); + e = RD(a.g, 124); + nke(); + if (RD(b, 69).xk()) { + for (g = 0; g < a.i; ++g) { + f = e[g]; + if (i.am(f.Lk()) && pb(f, c)) { + return true; + } + } + } else if (c != null) { + for (h = 0; h < a.i; ++h) { + f = e[h]; + if (i.am(f.Lk()) && pb(c, f.md())) { + return true; + } + } + if (d) { + for (g = 0; g < a.i; ++g) { + f = e[g]; + if (i.am(f.Lk()) && dE(c) === dE(Age(a, RD(f.md(), 58)))) { + return true; + } + } + } + } else { + for (g = 0; g < a.i; ++g) { + f = e[g]; + if (i.am(f.Lk()) && f.md() == null) { + return false; + } + } + } + return false; + } + function wee(a, b) { + var c, d, e, f, g, h; + c = b.qi(a.a); + if (c) { + h = WD($Nd((!c.b && (c.b = new SVd((JTd(), FTd), C8, c)), c.b), FIe)); + if (h != null) { + e = thb(h, Fhb(35)); + d = b.qk(); + if (e == -1) { + g = Uee(a, BXd(d)); + f = h; + } else if (e == 0) { + g = null; + f = (BFb(1, h.length + 1), h.substr(1)); + } else { + g = (AFb(0, e, h.length), h.substr(0, e)); + f = (BFb(e + 1, h.length + 1), h.substr(e + 1)); + } + switch (yfe(Qee(a, b))) { + case 2: + case 3: { + return Jee(a, d, g, f); + } + case 0: + case 4: + case 5: + case 6: { + return Mee(a, d, g, f); + } + } + } + } + return null; + } + function FQb(a, b, c, d) { + var e, f, g, h; + h = c; + for (g = new Anb(b.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 225); + e = RD(f.b, 68); + if ($y(a.b.c, e.b.c + e.b.b) <= 0 && $y(e.b.c, a.b.c + a.b.b) <= 0 && $y(a.b.d, e.b.d + e.b.a) <= 0 && $y(e.b.d, a.b.d + a.b.a) <= 0) { + if ($y(e.b.c, a.b.c + a.b.b) == 0 && d.a < 0 || $y(e.b.c + e.b.b, a.b.c) == 0 && d.a > 0 || $y(e.b.d, a.b.d + a.b.a) == 0 && d.b < 0 || $y(e.b.d + e.b.a, a.b.d) == 0 && d.b > 0) { + h = 0; + break; + } + } else { + h = $wnd.Math.min(h, PQb(a, e, d)); + } + h = $wnd.Math.min(h, FQb(a, f, h, d)); + } + return h; + } + function lsd(a, b) { + var c, d, e, f, g, h, i; + if (a.b < 2) { + throw Adb(new agb("The vector chain must contain at least a source and a target point.")); + } + e = (sFb(a.b != 0), RD(a.a.a.c, 8)); + Nzd(b, e.a, e.b); + i = new mMd((!b.a && (b.a = new XZd(D4, b, 5)), b.a)); + g = Sub(a, 1); + while (g.a < a.b - 1) { + h = RD(evb(g), 8); + if (i.e != i.i.gc()) { + c = RD(bMd(i), 377); + } else { + c = (bvd(), d = new Xxd(), d); + kMd(i, c); + } + Uxd(c, h.a, h.b); + } + while (i.e != i.i.gc()) { + bMd(i); + cMd(i); + } + f = (sFb(a.b != 0), RD(a.c.b.c, 8)); + Gzd(b, f.a, f.b); + } + function Ege(a, b, c, d) { + var e, f, g, h, i, j; + j = pke(a.e.Dh(), b); + g = RD(a.g, 124); + if (qke(a.e, b)) { + if (b.Si()) { + f = kge(a, b, d, ZD(b, 102) && (RD(b, 19).Bb & txe) != 0); + if (f >= 0 && f != c) { + throw Adb(new agb(LIe)); + } + } + e = 0; + for (i = 0; i < a.i; ++i) { + h = g[i]; + if (j.am(h.Lk())) { + if (e == c) { + return RD(eHd(a, i, (nke(), RD(b, 69).xk() ? RD(d, 76) : oke(b, d))), 76); + } + ++e; + } + } + throw Adb(new veb(HJe + c + NIe + e)); + } else { + for (i = 0; i < a.i; ++i) { + h = g[i]; + if (j.am(h.Lk())) { + return nke(), RD(b, 69).xk() ? h : h.md(); + } + } + return null; + } + } + function Epc(a, b) { + var c, d, e, f, g, h, i, j, k; + c = 0; + for (e = new Anb((tFb(0, a.c.length), RD(a.c[0], 105)).g.b.j); e.a < e.c.c.length; ) { + d = RD(ynb(e), 12); + d.p = c++; + } + b == (qpd(), Yod) ? _mb(a, new Mpc()) : _mb(a, new Qpc()); + h = 0; + k = a.c.length - 1; + while (h < k) { + g = (tFb(h, a.c.length), RD(a.c[h], 105)); + j = (tFb(k, a.c.length), RD(a.c[k], 105)); + f = b == Yod ? g.c : g.a; + i = b == Yod ? j.a : j.c; + Gpc(g, b, (enc(), cnc), f); + Gpc(j, b, bnc, i); + ++h; + --k; + } + h == k && Gpc((tFb(h, a.c.length), RD(a.c[h], 105)), b, (enc(), anc), null); + } + function lJc(a, b, c, d) { + var e, f, g, h, i, j; + g = new zJc(a, b, c); + i = new Jkb(d, 0); + e = false; + while (i.b < i.d.gc()) { + h = (sFb(i.b < i.d.gc()), RD(i.d.Xb(i.c = i.b++), 239)); + if (h == b || h == c) { + Ckb(i); + } else if (!e && Kfb(pJc(h.g, h.d[0]).a) > Kfb(pJc(g.g, g.d[0]).a)) { + sFb(i.b > 0); + i.a.Xb(i.c = --i.b); + Ikb(i, g); + e = true; + } else if (!!h.e && h.e.gc() > 0) { + f = (!h.e && (h.e = new bnb()), h.e).Mc(b); + j = (!h.e && (h.e = new bnb()), h.e).Mc(c); + if (f || j) { + (!h.e && (h.e = new bnb()), h.e).Fc(g); + ++g.c; + } + } + } + e || (ZEb(d.c, g), true); + } + function H3c(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r; + l = a.a.i + a.a.g / 2; + m = a.a.i + a.a.g / 2; + o2 = b.i + b.g / 2; + q = b.j + b.f / 2; + h = new rjd(o2, q); + j = RD(Gxd(b, (umd(), Qld)), 8); + j.a = j.a + l; + j.b = j.b + m; + f = (h.b - j.b) / (h.a - j.a); + d = h.b - f * h.a; + p = c.i + c.g / 2; + r = c.j + c.f / 2; + i = new rjd(p, r); + k = RD(Gxd(c, Qld), 8); + k.a = k.a + l; + k.b = k.b + m; + g = (i.b - k.b) / (i.a - k.a); + e = i.b - g * i.a; + n = (d - e) / (g - f); + if (j.a < n && h.a < n || n < j.a && n < h.a) { + return false; + } else if (k.a < n && i.a < n || n < k.a && n < i.a) { + return false; + } + return true; + } + function GDd(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n; + m = RD(Wjb(a.c, b), 190); + if (!m) { + throw Adb(new CDd("Edge did not exist in input.")); + } + j = uDd(m); + f = cve((!b.a && (b.a = new C5d(F4, b, 6, 6)), b.a)); + h = !f; + if (h) { + n = new MB(); + c = new pFd(a, j, n); + ave((!b.a && (b.a = new C5d(F4, b, 6, 6)), b.a), c); + sC(m, mIe, n); + } + e = Hxd(b, (umd(), cld)); + if (e) { + k = RD(Gxd(b, cld), 75); + g = !k || bve(k); + i = !g; + if (i) { + l = new MB(); + d = new xFd(l); + xgb(k, d); + sC(m, "junctionPoints", l); + } + } + sDd(m, "container", kzd(b).k); + return null; + } + function fZc(a, b, c, d) { + var e, f, g, h, i, j; + if (!gr(b)) { + j = c.eh((ZD(b, 16) ? RD(b, 16).gc() : Kr(b.Kc())) / a.a | 0); + j.Ug(OEe, 1); + i = new iZc(); + h = 0; + if (d == (Cmd(), ymd) || d == zmd) { + for (g = b.Kc(); g.Ob(); ) { + e = RD(g.Pb(), 40); + i = Al(cD(WC(cJ, 1), rve, 20, 0, [i, new dXc(e)])); + h < e.f.a && (h = e.f.a); + } + } else { + for (g = b.Kc(); g.Ob(); ) { + e = RD(g.Pb(), 40); + i = Al(cD(WC(cJ, 1), rve, 20, 0, [i, new dXc(e)])); + h < e.f.b && (h = e.f.b); + } + } + for (f = b.Kc(); f.Ob(); ) { + e = RD(f.Pb(), 40); + pQb(e, (q$c(), d$c), h); + } + j.Vg(); + fZc(a, i, c, d); + } + } + function XFb(a, b, c) { + var d, e, f, g, h, i, j, k; + this.a = a; + this.b = b; + this.c = c; + this.e = dv(cD(WC($M, 1), rve, 177, 0, [new TFb(a, b), new TFb(b, c), new TFb(c, a)])); + this.f = dv(cD(WC(l3, 1), Nve, 8, 0, [a, b, c])); + this.d = (d = ojd(ajd(this.b), this.a), e = ojd(ajd(this.c), this.a), f = ojd(ajd(this.c), this.b), g = d.a * (this.a.a + this.b.a) + d.b * (this.a.b + this.b.b), h = e.a * (this.a.a + this.c.a) + e.b * (this.a.b + this.c.b), i = 2 * (d.a * f.b - d.b * f.a), j = (e.b * g - d.b * h) / i, k = (d.a * h - e.a * g) / i, new rjd(j, k)); + } + function X0b(a, b) { + var c, d, e, f, g, h; + f = a.c; + g = a.d; + Y0b(a, null); + Z0b(a, null); + b && Heb(TD(mQb(g, (Ywc(), mwc)))) ? Y0b(a, q2b(g.i, (BEc(), zEc), (qpd(), Xod))) : Y0b(a, g); + b && Heb(TD(mQb(f, (Ywc(), Gwc)))) ? Z0b(a, q2b(f.i, (BEc(), yEc), (qpd(), ppd))) : Z0b(a, f); + for (d = new Anb(a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 72); + e = RD(mQb(c, (yCc(), wAc)), 278); + e == (Omd(), Nmd) ? pQb(c, wAc, Mmd) : e == Mmd && pQb(c, wAc, Nmd); + } + h = Heb(TD(mQb(a, (Ywc(), Nwc)))); + pQb(a, Nwc, (Geb(), h ? false : true)); + a.a = Ijd(a.a); + } + function lWc(a, b) { + var c, d, e, f, g; + c = jWc(RD(mQb(b, (h_c(), H$c)), 88)); + if (a.b.b == 0) { + return null; + } + g = RD(zDb(GDb(new SDb(null, new Swb(a.b, 16)), new UWc()), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + f = RD(zDb(CDb(new SDb(null, new Swb(b.b, 16)), new CWc(g)), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [vBb]))), 15); + e = UD(Lvb(JDb(GDb(f.Oc(), new EWc(c)), (urb(), urb(), srb)))); + d = RD(Lvb(DDb(CDb(f.Oc(), new GWc(c, e)))), 40); + return d; + } + function vOc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + c = eJb(new gJb(), a.f); + j = a.i[b.c.i.p]; + n = a.i[b.d.i.p]; + i = b.c; + m = b.d; + h = i.a.b; + l = m.a.b; + j.b || (h += i.n.b); + n.b || (l += m.n.b); + k = eE($wnd.Math.max(0, h - l)); + g = eE($wnd.Math.max(0, l - h)); + o2 = (p = $wnd.Math.max(1, RD(mQb(b, (yCc(), MBc)), 17).a), q = hOc(b.c.i.k, b.d.i.k), p * q); + e = rIb(uIb(tIb(sIb(vIb(new wIb(), o2), g), c), RD(Wjb(a.k, b.c), 125))); + f = rIb(uIb(tIb(sIb(vIb(new wIb(), o2), k), c), RD(Wjb(a.k, b.d), 125))); + d = new QOc(e, f); + a.c[b.p] = d; + } + function MTb(a, b, c) { + var d, e, f, g, h, i; + d = 0; + for (f = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); f.e != f.i.gc(); ) { + e = RD(bMd(f), 27); + g = ""; + (!e.n && (e.n = new C5d(I4, e, 1, 7)), e.n).i == 0 || (g = RD(QHd((!e.n && (e.n = new C5d(I4, e, 1, 7)), e.n), 0), 135).a); + h = new lUb(g); + kQb(h, e); + pQb(h, (JVb(), HVb), e); + h.a = d++; + h.d.a = e.i + e.g / 2; + h.d.b = e.j + e.f / 2; + h.e.a = $wnd.Math.max(e.g, 1); + h.e.b = $wnd.Math.max(e.f, 1); + Rmb(b.e, h); + rtb(c.f, e, h); + i = RD(Gxd(e, (yVb(), jVb)), 101); + i == (Bod(), Aod) && (i = zod); + } + } + function bec(a, b) { + var c, d, e, f, g, h, i; + b.Ug("Layer constraint postprocessing", 1); + i = a.b; + if (i.c.length != 0) { + d = (tFb(0, i.c.length), RD(i.c[0], 30)); + g = RD(Vmb(i, i.c.length - 1), 30); + c = new R4b(a); + f = new R4b(a); + _dc(a, d, g, c, f); + c.a.c.length == 0 || (wFb(0, i.c.length), XEb(i.c, 0, c)); + f.a.c.length == 0 || (ZEb(i.c, f), true); + } + if (nQb(a, (Ywc(), lwc))) { + e = new R4b(a); + h = new R4b(a); + cec(a, e, h); + e.a.c.length == 0 || (wFb(0, i.c.length), XEb(i.c, 0, e)); + h.a.c.length == 0 || (ZEb(i.c, h), true); + } + b.Vg(); + } + function zte(a) { + var b, c, d; + switch (a) { + case 91: + case 93: + case 45: + case 94: + case 44: + case 92: + d = "\\" + String.fromCharCode(a & Bwe); + break; + case 12: + d = "\\f"; + break; + case 10: + d = "\\n"; + break; + case 13: + d = "\\r"; + break; + case 9: + d = "\\t"; + break; + case 27: + d = "\\e"; + break; + default: + if (a < 32) { + c = (b = a >>> 0, "0" + b.toString(16)); + d = "\\x" + zhb(c, c.length - 2, c.length); + } else if (a >= txe) { + c = (b = a >>> 0, "0" + b.toString(16)); + d = "\\v" + zhb(c, c.length - 6, c.length); + } else + d = "" + String.fromCharCode(a & Bwe); + } + return d; + } + function Ugc(a) { + var b, c, d; + if (Dod(RD(mQb(a, (yCc(), BBc)), 101))) { + for (c = new Anb(a.j); c.a < c.c.c.length; ) { + b = RD(ynb(c), 12); + b.j == (qpd(), opd) && (d = RD(mQb(b, (Ywc(), Iwc)), 10), d ? Q3b(b, RD(mQb(d, hwc), 64)) : b.e.c.length - b.g.c.length < 0 ? Q3b(b, Xod) : Q3b(b, ppd)); + } + } else { + for (c = new Anb(a.j); c.a < c.c.c.length; ) { + b = RD(ynb(c), 12); + d = RD(mQb(b, (Ywc(), Iwc)), 10); + d ? Q3b(b, RD(mQb(d, hwc), 64)) : b.e.c.length - b.g.c.length < 0 ? Q3b(b, (qpd(), Xod)) : Q3b(b, (qpd(), ppd)); + } + pQb(a, BBc, (Bod(), yod)); + } + } + function wUc(a) { + var b, c, d, e, f, g; + this.e = new bnb(); + this.a = new bnb(); + for (c = a.b - 1; c < 3; c++) { + hu(a, 0, RD(ju(a, 0), 8)); + } + if (a.b < 4) { + throw Adb(new agb("At (least dimension + 1) control points are necessary!")); + } else { + this.b = 3; + this.d = true; + this.c = false; + rUc(this, a.b + this.b - 1); + g = new bnb(); + f = new Anb(this.e); + for (b = 0; b < this.b - 1; b++) { + Rmb(g, UD(ynb(f))); + } + for (e = Sub(a, 0); e.b != e.d.c; ) { + d = RD(evb(e), 8); + Rmb(g, UD(ynb(f))); + Rmb(this.a, new BUc(d, g)); + tFb(0, g.c.length); + g.c.splice(0, 1); + } + } + } + function Sdc(a, b) { + var c, d, e, f, g, h, i, j, k; + for (f = new Anb(a.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 30); + for (h = new Anb(e.a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 10); + if (g.k == (r3b(), n3b)) { + i = (j = RD(hs(new is(Mr(Z2b(g).a.Kc(), new ir()))), 18), k = RD(hs(new is(Mr(a3b(g).a.Kc(), new ir()))), 18), !Heb(TD(mQb(j, (Ywc(), Nwc)))) || !Heb(TD(mQb(k, Nwc)))) ? b : Qnd(b); + Qdc(g, i); + } + for (d = new is(Mr(a3b(g).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + i = Heb(TD(mQb(c, (Ywc(), Nwc)))) ? Qnd(b) : b; + Pdc(c, i); + } + } + } + } + function V8c(a, b, c, d, e) { + var f, g, h; + if (c.f >= b.o && c.f <= b.f || b.a * 0.5 <= c.f && b.a * 1.5 >= c.f) { + g = RD(Vmb(b.n, b.n.c.length - 1), 209); + if (g.e + g.d + c.g + e <= d && (f = RD(Vmb(b.n, b.n.c.length - 1), 209), f.f - a.f + c.f <= a.b || a.a.c.length == 1)) { + K9c(b, c); + return true; + } else if (b.s + c.g <= d && (b.t + b.d + c.f + e <= a.b || a.a.c.length == 1)) { + Rmb(b.b, c); + h = RD(Vmb(b.n, b.n.c.length - 1), 209); + Rmb(b.n, new _9c(b.s, h.f + h.a + b.i, b.i)); + W9c(RD(Vmb(b.n, b.n.c.length - 1), 209), c); + M9c(b, c); + return true; + } + } + return false; + } + function xLd(a, b, c) { + var d, e, f, g; + if (a.Pj()) { + e = null; + f = a.Qj(); + d = a.Ij(1, g = UHd(a, b, c), c, b, f); + if (a.Mj() && !(a.Yi() && g != null ? pb(g, c) : dE(g) === dE(c))) { + g != null && (e = a.Oj(g, e)); + e = a.Nj(c, e); + a.Tj() && (e = a.Wj(g, c, e)); + if (!e) { + a.Jj(d); + } else { + e.nj(d); + e.oj(); + } + } else { + a.Tj() && (e = a.Wj(g, c, e)); + if (!e) { + a.Jj(d); + } else { + e.nj(d); + e.oj(); + } + } + return g; + } else { + g = UHd(a, b, c); + if (a.Mj() && !(a.Yi() && g != null ? pb(g, c) : dE(g) === dE(c))) { + e = null; + g != null && (e = a.Oj(g, null)); + e = a.Nj(c, e); + !!e && e.oj(); + } + return g; + } + } + function Rsc(a, b) { + var c, d, e, f, g; + b.Ug("Path-Like Graph Wrapping", 1); + if (a.b.c.length == 0) { + b.Vg(); + return; + } + e = new ysc(a); + g = (e.i == null && (e.i = tsc(e, new Asc())), Kfb(e.i) * e.f); + c = g / (e.i == null && (e.i = tsc(e, new Asc())), Kfb(e.i)); + if (e.b > c) { + b.Vg(); + return; + } + switch (RD(mQb(a, (yCc(), rCc)), 351).g) { + case 2: + f = new Ksc(); + break; + case 0: + f = new zrc(); + break; + default: + f = new Nsc(); + } + d = f.og(a, e); + if (!f.pg()) { + switch (RD(mQb(a, xCc), 352).g) { + case 2: + d = Wsc(e, d); + break; + case 1: + d = Usc(e, d); + } + } + Qsc(a, e, d); + b.Vg(); + } + function mB(a, b) { + var c, d, e, f, g, h, i, j; + b %= 24; + if (a.q.getHours() != b) { + d = new $wnd.Date(a.q.getTime()); + d.setDate(d.getDate() + 1); + h = a.q.getTimezoneOffset() - d.getTimezoneOffset(); + if (h > 0) { + i = h / 60 | 0; + j = h % 60; + e = a.q.getDate(); + c = a.q.getHours(); + c + i >= 24 && ++e; + f = new $wnd.Date(a.q.getFullYear(), a.q.getMonth(), e, b + i, a.q.getMinutes() + j, a.q.getSeconds(), a.q.getMilliseconds()); + a.q.setTime(f.getTime()); + } + } + g = a.q.getTime(); + a.q.setTime(g + 36e5); + a.q.getHours() != b && a.q.setTime(g); + } + function kKc(a, b) { + var c, d, e, f; + Nwb(a.d, a.e); + a.c.a.$b(); + if (Kfb(UD(mQb(b.j, (yCc(), Zzc)))) != 0 || Kfb(UD(mQb(b.j, Zzc))) != 0) { + c = Hze; + dE(mQb(b.j, cAc)) !== dE((kEc(), hEc)) && pQb(b.j, (Ywc(), jwc), (Geb(), true)); + f = RD(mQb(b.j, gCc), 17).a; + for (e = 0; e < f; e++) { + d = uKc(a, b); + if (d < c) { + c = d; + xKc(a); + if (c == 0) { + break; + } + } + } + } else { + c = lve; + dE(mQb(b.j, cAc)) !== dE((kEc(), hEc)) && pQb(b.j, (Ywc(), jwc), (Geb(), true)); + f = RD(mQb(b.j, gCc), 17).a; + for (e = 0; e < f; e++) { + d = vKc(a, b); + if (d < c) { + c = d; + xKc(a); + if (c == 0) { + break; + } + } + } + } + } + function Vsc(a, b) { + var c, d, e, f, g, h, i, j; + g = new bnb(); + h = 0; + c = 0; + i = 0; + while (h < b.c.length - 1 && c < a.gc()) { + d = RD(a.Xb(c), 17).a + i; + while ((tFb(h + 1, b.c.length), RD(b.c[h + 1], 17)).a < d) { + ++h; + } + j = 0; + f = d - (tFb(h, b.c.length), RD(b.c[h], 17)).a; + e = (tFb(h + 1, b.c.length), RD(b.c[h + 1], 17)).a - d; + f > e && ++j; + Rmb(g, (tFb(h + j, b.c.length), RD(b.c[h + j], 17))); + i += (tFb(h + j, b.c.length), RD(b.c[h + j], 17)).a - d; + ++c; + while (c < a.gc() && RD(a.Xb(c), 17).a + i <= (tFb(h + j, b.c.length), RD(b.c[h + j], 17)).a) { + ++c; + } + h += 1 + j; + } + return g; + } + function VGc(a, b) { + var c, d, e, f, g; + for (g = new is(Mr(Z2b(b).a.Kc(), new ir())); gs(g); ) { + f = RD(hs(g), 18); + if (a.f.b == 0) { + e = f.c.i.k == (r3b(), p3b) && !!f.c.i.c && f.c.i.c.p == a.c; + if (gs(new is(Mr(Z2b(f.c.i).a.Kc(), new ir())))) { + c = RD(hs(new is(Mr(Z2b(f.c.i).a.Kc(), new ir()))), 18).c.i.c; + d = f.c.i.k == n3b && !!c && c.p == a.c; + } else { + d = false; + } + } else { + e = f.c.i.k == (r3b(), p3b) && f.c.i.p == a.c; + d = f.c.i.k == n3b && RD(hs(new is(Mr(Z2b(f.c.i).a.Kc(), new ir()))), 18).c.i.p == a.c; + } + if (e || d) { + return true; + } + } + return false; + } + function DHc(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + m = new bnb(); + r = Xx(d); + q = b * a.a; + l = 0; + o2 = 0; + f = new _sb(); + g = new _sb(); + h = new bnb(); + s = 0; + t = 0; + n = 0; + p = 0; + j = 0; + k = 0; + while (r.a.gc() != 0) { + i = HHc(r, e, g); + if (i) { + r.a.Bc(i) != null; + ZEb(h.c, i); + f.a.zc(i, f); + o2 = a.f[i.p]; + s += a.e[i.p] - o2 * a.b; + l = a.c[i.p]; + t += l * a.b; + k += o2 * a.b; + p += a.e[i.p]; + } + if (!i || r.a.gc() == 0 || s >= q && a.e[i.p] > o2 * a.b || t >= c * q) { + ZEb(m.c, h); + h = new bnb(); + ye(g, f); + f.a.$b(); + j -= k; + n = $wnd.Math.max(n, j * a.b + p); + j += t; + s = t; + t = 0; + k = 0; + p = 0; + } + } + return new Ptd(n, m); + } + function pYd(a) { + var b, c, d, e, f, g, h; + if (!a.d) { + h = new v_d(); + b = iYd; + f = b.a.zc(a, b); + if (f == null) { + for (d = new dMd(zYd(a)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 29); + YGd(h, pYd(c)); + } + b.a.Bc(a) != null; + b.a.gc() == 0 && void 0; + } + g = h.i; + for (e = (!a.q && (a.q = new C5d(s7, a, 11, 10)), new dMd(a.q)); e.e != e.i.gc(); ++g) { + RD(bMd(e), 411); + } + YGd(h, (!a.q && (a.q = new C5d(s7, a, 11, 10)), a.q)); + VHd(h); + a.d = new N$d((RD(QHd(xYd((lTd(), kTd).o), 9), 19), h.i), h.g); + a.e = RD(h.g, 688); + a.e == null && (a.e = jYd); + yYd(a).b &= -17; + } + return a.d; + } + function kge(a, b, c, d) { + var e, f, g, h, i, j; + j = pke(a.e.Dh(), b); + i = 0; + e = RD(a.g, 124); + nke(); + if (RD(b, 69).xk()) { + for (g = 0; g < a.i; ++g) { + f = e[g]; + if (j.am(f.Lk())) { + if (pb(f, c)) { + return i; + } + ++i; + } + } + } else if (c != null) { + for (h = 0; h < a.i; ++h) { + f = e[h]; + if (j.am(f.Lk())) { + if (pb(c, f.md())) { + return i; + } + ++i; + } + } + if (d) { + i = 0; + for (g = 0; g < a.i; ++g) { + f = e[g]; + if (j.am(f.Lk())) { + if (dE(c) === dE(Age(a, RD(f.md(), 58)))) { + return i; + } + ++i; + } + } + } + } else { + for (g = 0; g < a.i; ++g) { + f = e[g]; + if (j.am(f.Lk())) { + if (f.md() == null) { + return i; + } + ++i; + } + } + } + return -1; + } + function Xje(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p; + if (c.Xh(b)) { + k = (n = b, !n ? null : RD(d, 54).gi(n)); + if (k) { + p = c.Nh(b, a.a); + o2 = b.t; + if (o2 > 1 || o2 == -1) { + l = RD(p, 71); + m = RD(k, 71); + if (l.dc()) { + m.$b(); + } else { + g = !!Z5d(b); + f = 0; + for (h = a.a ? l.Kc() : l.Ii(); h.Ob(); ) { + j = RD(h.Pb(), 58); + e = RD(cub(a, j), 58); + if (!e) { + if (a.b && !g) { + m.Gi(f, j); + ++f; + } + } else { + if (g) { + i = m.dd(e); + i == -1 ? m.Gi(f, e) : f != i && m.Ui(f, e); + } else { + m.Gi(f, e); + } + ++f; + } + } + } + } else { + if (p == null) { + k.Wb(null); + } else { + e = cub(a, p); + e == null ? a.b && !Z5d(b) && k.Wb(p) : k.Wb(e); + } + } + } + } + } + function V9b(a, b) { + var c, d, e, f, g, h, i, j; + c = new aac(); + for (e = new is(Mr(Z2b(b).a.Kc(), new ir())); gs(e); ) { + d = RD(hs(e), 18); + if (W0b(d)) { + continue; + } + h = d.c.i; + if (W9b(h, T9b)) { + j = X9b(a, h, T9b, S9b); + if (j == -1) { + continue; + } + c.b = $wnd.Math.max(c.b, j); + !c.a && (c.a = new bnb()); + Rmb(c.a, h); + } + } + for (g = new is(Mr(a3b(b).a.Kc(), new ir())); gs(g); ) { + f = RD(hs(g), 18); + if (W0b(f)) { + continue; + } + i = f.d.i; + if (W9b(i, S9b)) { + j = X9b(a, i, S9b, T9b); + if (j == -1) { + continue; + } + c.d = $wnd.Math.max(c.d, j); + !c.c && (c.c = new bnb()); + Rmb(c.c, i); + } + } + return c; + } + function pcc(a, b, c, d) { + var e, f, g, h, i, j, k; + if (c.d.i == b.i) { + return; + } + e = new j3b(a); + h3b(e, (r3b(), o3b)); + pQb(e, (Ywc(), Awc), c); + pQb(e, (yCc(), BBc), (Bod(), wod)); + ZEb(d.c, e); + g = new R3b(); + P3b(g, e); + Q3b(g, (qpd(), ppd)); + h = new R3b(); + P3b(h, e); + Q3b(h, Xod); + k = c.d; + Z0b(c, g); + f = new a1b(); + kQb(f, c); + pQb(f, RAc, null); + Y0b(f, h); + Z0b(f, k); + j = new Jkb(c.b, 0); + while (j.b < j.d.gc()) { + i = (sFb(j.b < j.d.gc()), RD(j.d.Xb(j.c = j.b++), 72)); + if (dE(mQb(i, wAc)) === dE((Omd(), Mmd))) { + pQb(i, dwc, c); + Ckb(j); + Rmb(f.b, i); + } + } + rcc(e, g, h); + } + function occ(a, b, c, d) { + var e, f, g, h, i, j, k; + if (c.c.i == b.i) { + return; + } + e = new j3b(a); + h3b(e, (r3b(), o3b)); + pQb(e, (Ywc(), Awc), c); + pQb(e, (yCc(), BBc), (Bod(), wod)); + ZEb(d.c, e); + g = new R3b(); + P3b(g, e); + Q3b(g, (qpd(), ppd)); + h = new R3b(); + P3b(h, e); + Q3b(h, Xod); + Z0b(c, g); + f = new a1b(); + kQb(f, c); + pQb(f, RAc, null); + Y0b(f, h); + Z0b(f, b); + rcc(e, g, h); + j = new Jkb(c.b, 0); + while (j.b < j.d.gc()) { + i = (sFb(j.b < j.d.gc()), RD(j.d.Xb(j.c = j.b++), 72)); + k = RD(mQb(i, wAc), 278); + if (k == (Omd(), Mmd)) { + nQb(i, dwc) || pQb(i, dwc, c); + Ckb(j); + Rmb(f.b, i); + } + } + } + function Sjb(a) { + Ljb(); + var b, c, d, e; + b = eE(a); + if (a < Kjb.length) { + return Kjb[b]; + } else if (a <= 50) { + return Yib((Pib(), Mib), b); + } else if (a <= Awe) { + return Zib(Yib(Jjb[1], b), b); + } + if (a > 1e6) { + throw Adb(new teb("power of ten too big")); + } + if (a <= lve) { + return Zib(Yib(Jjb[1], b), b); + } + d = Yib(Jjb[1], lve); + e = d; + c = Hdb(a - lve); + b = eE(a % lve); + while (Ddb(c, lve) > 0) { + e = Wib(e, d); + c = Vdb(c, lve); + } + e = Wib(e, Yib(Jjb[1], b)); + e = Zib(e, lve); + c = Hdb(a - lve); + while (Ddb(c, lve) > 0) { + e = Zib(e, lve); + c = Vdb(c, lve); + } + e = Zib(e, b); + return e; + } + function s9b(a) { + var b, c, d, e, f, g, h, i, j, k; + for (i = new Anb(a.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + if (h.k != (r3b(), m3b)) { + continue; + } + e = RD(mQb(h, (Ywc(), hwc)), 64); + if (e == (qpd(), Xod) || e == ppd) { + for (d = new is(Mr(W2b(h).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + b = c.a; + if (b.b == 0) { + continue; + } + j = c.c; + if (j.i == h) { + f = (sFb(b.b != 0), RD(b.a.a.c, 8)); + f.b = xjd(cD(WC(l3, 1), Nve, 8, 0, [j.i.n, j.n, j.a])).b; + } + k = c.d; + if (k.i == h) { + g = (sFb(b.b != 0), RD(b.c.b.c, 8)); + g.b = xjd(cD(WC(l3, 1), Nve, 8, 0, [k.i.n, k.n, k.a])).b; + } + } + } + } + } + function Nlc(a, b, c, d) { + var e, f, g; + this.j = new bnb(); + this.k = new bnb(); + this.b = new bnb(); + this.c = new bnb(); + this.e = new Tid(); + this.i = new Ejd(); + this.f = new cHb(); + this.d = new bnb(); + this.g = new bnb(); + Rmb(this.b, a); + Rmb(this.b, b); + this.e.c = $wnd.Math.min(a.a, b.a); + this.e.d = $wnd.Math.min(a.b, b.b); + this.e.b = $wnd.Math.abs(a.a - b.a); + this.e.a = $wnd.Math.abs(a.b - b.b); + e = RD(mQb(d, (yCc(), RAc)), 75); + if (e) { + for (g = Sub(e, 0); g.b != g.d.c; ) { + f = RD(evb(g), 8); + rGb(f.a, a.a) && Mub(this.i, f); + } + } + !!c && Rmb(this.j, c); + Rmb(this.k, d); + } + function vSc(a, b, c, d) { + var e, f, g, h, i, j, k; + h = -1; + for (k = new Anb(a); k.a < k.c.c.length; ) { + j = RD(ynb(k), 118); + j.g = h--; + e = Ydb(mDb(IDb(CDb(new SDb(null, new Swb(j.f, 16)), new xSc()), new zSc())).d); + f = Ydb(mDb(IDb(CDb(new SDb(null, new Swb(j.k, 16)), new BSc()), new DSc())).d); + g = e; + i = f; + if (!d) { + g = Ydb(mDb(IDb(new SDb(null, new Swb(j.f, 16)), new FSc())).d); + i = Ydb(mDb(IDb(new SDb(null, new Swb(j.k, 16)), new HSc())).d); + } + j.d = g; + j.a = e; + j.i = i; + j.b = f; + i == 0 ? (Pub(c, j, c.c.b, c.c), true) : g == 0 && (Pub(b, j, b.c.b, b.c), true); + } + } + function Qdc(a, b) { + var c, d, e, f, g, h; + if (a.k == (r3b(), n3b)) { + c = a.k == n3b && !QDb(CDb(RD(mQb(a, (Ywc(), Mwc)), 15).Oc(), new PAb(new x3b()))).Bd((xDb(), wDb)) ? (Pnd(), Nnd) : b; + pQb(a, (Ywc(), swc), c); + if (c != (Pnd(), Mnd)) { + d = RD(mQb(a, Awc), 18); + h = Kfb(UD(mQb(d, (yCc(), FAc)))); + g = 0; + if (c == Lnd) { + g = a.o.b - $wnd.Math.ceil(h / 2); + } else if (c == Nnd) { + g = $wnd.Math.ceil(a.o.b - Kfb(UD(mQb(Y2b(a), VBc))) - h) / 2; + a.o.b -= Kfb(UD(mQb(Y2b(a), VBc))); + a.o.b -= h; + } + for (f = new Anb(a.j); f.a < f.c.c.length; ) { + e = RD(ynb(f), 12); + e.n.b = g; + } + } + } + } + function XQc(a, b, c) { + var d, e, f, g, h, i, j, k, l; + e = true; + for (g = new Anb(a.b); g.a < g.c.c.length; ) { + f = RD(ynb(g), 30); + j = pxe; + k = null; + for (i = new Anb(f.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + l = Kfb(b.p[h.p]) + Kfb(b.d[h.p]) - h.d.d; + d = Kfb(b.p[h.p]) + Kfb(b.d[h.p]) + h.o.b + h.d.a; + if (l > j && d > j) { + k = h; + j = Kfb(b.p[h.p]) + Kfb(b.d[h.p]) + h.o.b + h.d.a; + } else { + e = false; + c._g() && c.bh("bk node placement breaks on " + h + " which should have been after " + k); + break; + } + } + if (!e) { + break; + } + } + c._g() && c.bh(b + " is feasible: " + e); + return e; + } + function Dfc(a, b, c, d) { + var e, f, g, h, i, j, k, l, m; + f = new j3b(a); + h3b(f, (r3b(), q3b)); + pQb(f, (yCc(), BBc), (Bod(), wod)); + e = 0; + if (b) { + g = new R3b(); + pQb(g, (Ywc(), Awc), b); + pQb(f, Awc, b.i); + Q3b(g, (qpd(), ppd)); + P3b(g, f); + m = s2b(b.e); + for (j = m, k = 0, l = j.length; k < l; ++k) { + i = j[k]; + Z0b(i, g); + } + pQb(b, Iwc, f); + ++e; + } + if (c) { + h = new R3b(); + pQb(f, (Ywc(), Awc), c.i); + pQb(h, Awc, c); + Q3b(h, (qpd(), Xod)); + P3b(h, f); + m = s2b(c.g); + for (j = m, k = 0, l = j.length; k < l; ++k) { + i = j[k]; + Y0b(i, h); + } + pQb(c, Iwc, f); + ++e; + } + pQb(f, (Ywc(), $vc), sgb(e)); + ZEb(d.c, f); + return f; + } + function Bgd(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n; + for (c = (j = new glb(a.c.b).a.vc().Kc(), new llb(j)); c.a.Ob(); ) { + b = (h = RD(c.a.Pb(), 44), RD(h.md(), 143)); + e = b.a; + e == null && (e = ""); + d = tgd(a.c, e); + !d && e.length == 0 && (d = Fgd(a)); + !!d && !ze(d.c, b, false) && Mub(d.c, b); + } + for (g = Sub(a.a, 0); g.b != g.d.c; ) { + f = RD(evb(g), 487); + k = ugd(a.c, f.a); + n = ugd(a.c, f.b); + !!k && !!n && Mub(k.c, new Ptd(n, f.c)); + } + Xub(a.a); + for (m = Sub(a.b, 0); m.b != m.d.c; ) { + l = RD(evb(m), 487); + b = rgd(a.c, l.a); + i = ugd(a.c, l.b); + !!b && !!i && Mfd(b, i, l.c); + } + Xub(a.b); + } + function QId(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n; + f = new vC(a); + g = new IEd(); + e = (wo(g.g), wo(g.j), akb(g.b), wo(g.d), wo(g.i), akb(g.k), akb(g.c), akb(g.e), n = DEd(g, f, null), AEd(g, f), n); + if (b) { + j = new vC(b); + h = RId(j); + msd(e, cD(WC(j4, 1), rve, 536, 0, [h])); + } + m = false; + l = false; + if (c) { + j = new vC(c); + RIe in j.a && (m = qC(j, RIe).qe().a); + SIe in j.a && (l = qC(j, SIe).qe().a); + } + k = Kqd(Mqd(new Oqd(), m), l); + Eed(new Hed(), e, k); + RIe in f.a && sC(f, RIe, null); + if (m || l) { + i = new uC(); + NId(k, i, m, l); + sC(f, RIe, i); + } + d = new nFd(g); + dve(new zId(e), d); + } + function FA(a, b, c) { + var d, e, f, g, h, i, j, k, l; + g = new DB(); + j = cD(WC(kE, 1), Pwe, 28, 15, [0]); + e = -1; + f = 0; + d = 0; + for (i = 0; i < a.b.c.length; ++i) { + k = RD(Vmb(a.b, i), 443); + if (k.b > 0) { + if (e < 0 && k.a) { + e = i; + f = j[0]; + d = 0; + } + if (e >= 0) { + h = k.b; + if (i == e) { + h -= d++; + if (h == 0) { + return 0; + } + } + if (!MA(b, j, k, h, g)) { + i = e - 1; + j[0] = f; + continue; + } + } else { + e = -1; + if (!MA(b, j, k, 0, g)) { + return 0; + } + } + } else { + e = -1; + if (ihb(k.c, 0) == 32) { + l = j[0]; + KA(b, j); + if (j[0] > l) { + continue; + } + } else if (xhb(b, k.c, j[0])) { + j[0] += k.c.length; + continue; + } + return 0; + } + } + if (!CB(g, c)) { + return 0; + } + return j[0]; + } + function qWb(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + k = new pwb(new GWb(c)); + h = $C(xdb, Hye, 28, a.f.e.c.length, 16, 1); + Snb(h, h.length); + c[b.a] = 0; + for (j = new Anb(a.f.e); j.a < j.c.c.length; ) { + i = RD(ynb(j), 153); + i.a != b.a && (c[i.a] = lve); + zFb(lwb(k, i), Bxe); + } + while (k.b.c.length != 0) { + l = RD(mwb(k), 153); + h[l.a] = true; + for (f = ru(new su(a.b, l), 0); f.c; ) { + e = RD(Lu(f), 290); + m = tWb(e, l); + if (h[m.a]) { + continue; + } + nQb(e, (dWb(), TVb)) ? g = Kfb(UD(mQb(e, TVb))) : g = a.c; + d = c[l.a] + g; + if (d < c[m.a]) { + c[m.a] = d; + nwb(k, m); + zFb(lwb(k, m), Bxe); + } + } + } + } + function iPb(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2; + g = a.o; + d = $C(kE, Pwe, 28, g, 15, 1); + e = $C(kE, Pwe, 28, g, 15, 1); + c = a.p; + b = $C(kE, Pwe, 28, c, 15, 1); + f = $C(kE, Pwe, 28, c, 15, 1); + for (j = 0; j < g; j++) { + l = 0; + while (l < c && !PPb(a, j, l)) { + ++l; + } + d[j] = l; + } + for (k = 0; k < g; k++) { + l = c - 1; + while (l >= 0 && !PPb(a, k, l)) { + --l; + } + e[k] = l; + } + for (n = 0; n < c; n++) { + h = 0; + while (h < g && !PPb(a, h, n)) { + ++h; + } + b[n] = h; + } + for (o2 = 0; o2 < c; o2++) { + h = g - 1; + while (h >= 0 && !PPb(a, h, o2)) { + --h; + } + f[o2] = h; + } + for (i = 0; i < g; i++) { + for (m = 0; m < c; m++) { + i < f[m] && i > b[m] && m < e[i] && m > d[i] && TPb(a, i, m, false, true); + } + } + } + function hUb(a) { + var b, c, d, e, f, g, h, i; + c = Heb(TD(mQb(a, (yVb(), $Ub)))); + f = a.a.c.d; + h = a.a.d.d; + if (c) { + g = ijd(ojd(new rjd(h.a, h.b), f), 0.5); + i = ijd(ajd(a.e), 0.5); + b = ojd($id(new rjd(f.a, f.b), g), i); + mjd(a.d, b); + } else { + e = Kfb(UD(mQb(a.a, qVb))); + d = a.d; + if (f.a >= h.a) { + if (f.b >= h.b) { + d.a = h.a + (f.a - h.a) / 2 + e; + d.b = h.b + (f.b - h.b) / 2 - e - a.e.b; + } else { + d.a = h.a + (f.a - h.a) / 2 + e; + d.b = f.b + (h.b - f.b) / 2 + e; + } + } else { + if (f.b >= h.b) { + d.a = f.a + (h.a - f.a) / 2 + e; + d.b = h.b + (f.b - h.b) / 2 + e; + } else { + d.a = f.a + (h.a - f.a) / 2 + e; + d.b = f.b + (h.b - f.b) / 2 - e - a.e.b; + } + } + } + } + function qYd(a) { + var b, c, d, e, f, g, h, i; + if (!a.f) { + i = new a_d(); + h = new a_d(); + b = iYd; + g = b.a.zc(a, b); + if (g == null) { + for (f = new dMd(zYd(a)); f.e != f.i.gc(); ) { + e = RD(bMd(f), 29); + YGd(i, qYd(e)); + } + b.a.Bc(a) != null; + b.a.gc() == 0 && void 0; + } + for (d = (!a.s && (a.s = new C5d(y7, a, 21, 17)), new dMd(a.s)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 179); + ZD(c, 102) && WGd(h, RD(c, 19)); + } + VHd(h); + a.r = new s_d(a, (RD(QHd(xYd((lTd(), kTd).o), 6), 19), h.i), h.g); + YGd(i, a.r); + VHd(i); + a.f = new N$d((RD(QHd(xYd(kTd.o), 5), 19), i.i), i.g); + yYd(a).b &= -3; + } + return a.f; + } + function uSb(a) { + Cgd(a, new Pfd($fd(Xfd(Zfd(Yfd(new agd(), Aze), "ELK DisCo"), "Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."), new xSb()))); + Agd(a, Aze, Bze, iGd(sSb)); + Agd(a, Aze, Cze, iGd(mSb)); + Agd(a, Aze, Dze, iGd(hSb)); + Agd(a, Aze, Eze, iGd(nSb)); + Agd(a, Aze, Bye, iGd(qSb)); + Agd(a, Aze, Cye, iGd(pSb)); + Agd(a, Aze, Aye, iGd(rSb)); + Agd(a, Aze, Dye, iGd(oSb)); + Agd(a, Aze, vze, iGd(jSb)); + Agd(a, Aze, wze, iGd(iSb)); + Agd(a, Aze, xze, iGd(kSb)); + Agd(a, Aze, yze, iGd(lSb)); + } + function qAd() { + qAd = geb; + oAd = cD(WC(hE, 1), zwe, 28, 15, [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70]); + pAd = new RegExp("[ \n\r\f]+"); + try { + nAd = cD(WC(h8, 1), rve, 2114, 0, [new c2d((WA(), YA("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ", _A(($A(), $A(), ZA))))), new c2d(YA("yyyy-MM-dd'T'HH:mm:ss'.'SSS", _A((null, ZA)))), new c2d(YA("yyyy-MM-dd'T'HH:mm:ss", _A((null, ZA)))), new c2d(YA("yyyy-MM-dd'T'HH:mm", _A((null, ZA)))), new c2d(YA("yyyy-MM-dd", _A((null, ZA))))]); + } catch (a) { + a = zdb(a); + if (!ZD(a, 82)) + throw Adb(a); + } + } + function uKc(a, b) { + var c, d, e, f; + e = Kwb(a.d, 1) != 0; + d = mKc(a, b); + if (d == 0 && Heb(TD(mQb(b.j, (Ywc(), jwc))))) { + return 0; + } + !Heb(TD(mQb(b.j, (Ywc(), jwc)))) && !Heb(TD(mQb(b.j, Owc))) || dE(mQb(b.j, (yCc(), cAc))) === dE((kEc(), hEc)) ? b.c.mg(b.e, e) : e = Heb(TD(mQb(b.j, jwc))); + DKc(a, b, e, true); + Heb(TD(mQb(b.j, Owc))) && pQb(b.j, Owc, (Geb(), false)); + if (Heb(TD(mQb(b.j, jwc)))) { + pQb(b.j, jwc, (Geb(), false)); + pQb(b.j, Owc, true); + } + c = mKc(a, b); + do { + yKc(a); + if (c == 0) { + return 0; + } + e = !e; + f = c; + DKc(a, b, e, false); + c = mKc(a, b); + } while (f > c); + return f; + } + function vKc(a, b) { + var c, d, e, f; + e = Kwb(a.d, 1) != 0; + d = lKc(a, b); + if (d == 0 && Heb(TD(mQb(b.j, (Ywc(), jwc))))) { + return 0; + } + !Heb(TD(mQb(b.j, (Ywc(), jwc)))) && !Heb(TD(mQb(b.j, Owc))) || dE(mQb(b.j, (yCc(), cAc))) === dE((kEc(), hEc)) ? b.c.mg(b.e, e) : e = Heb(TD(mQb(b.j, jwc))); + DKc(a, b, e, true); + Heb(TD(mQb(b.j, Owc))) && pQb(b.j, Owc, (Geb(), false)); + if (Heb(TD(mQb(b.j, jwc)))) { + pQb(b.j, jwc, (Geb(), false)); + pQb(b.j, Owc, true); + } + c = lKc(a, b); + do { + yKc(a); + if (c == 0) { + return 0; + } + e = !e; + f = c; + DKc(a, b, e, false); + c = lKc(a, b); + } while (f > c); + return f; + } + function Gid(a, b, c, d) { + var e, f, g, h, i, j, k, l, m; + i = ojd(new rjd(c.a, c.b), a); + j = i.a * b.b - i.b * b.a; + k = b.a * d.b - b.b * d.a; + l = (i.a * d.b - i.b * d.a) / k; + m = j / k; + if (k == 0) { + if (j == 0) { + e = $id(new rjd(c.a, c.b), ijd(new rjd(d.a, d.b), 0.5)); + f = bjd(a, e); + g = bjd($id(new rjd(a.a, a.b), b), e); + h = $wnd.Math.sqrt(d.a * d.a + d.b * d.b) * 0.5; + if (f < g && f <= h) { + return new rjd(a.a, a.b); + } + if (g <= h) { + return $id(new rjd(a.a, a.b), b); + } + return null; + } else { + return null; + } + } else { + return l >= 0 && l <= 1 && m >= 0 && m <= 1 ? $id(new rjd(a.a, a.b), ijd(new rjd(b.a, b.b), l)) : null; + } + } + function QWb(a, b, c) { + var d, e, f, g, h; + d = RD(mQb(a, (yCc(), dAc)), 21); + c.a > b.a && (d.Hc((ukd(), okd)) ? a.c.a += (c.a - b.a) / 2 : d.Hc(qkd) && (a.c.a += c.a - b.a)); + c.b > b.b && (d.Hc((ukd(), skd)) ? a.c.b += (c.b - b.b) / 2 : d.Hc(rkd) && (a.c.b += c.b - b.b)); + if (RD(mQb(a, (Ywc(), kwc)), 21).Hc((ovc(), hvc)) && (c.a > b.a || c.b > b.b)) { + for (h = new Anb(a.a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 10); + if (g.k == (r3b(), m3b)) { + e = RD(mQb(g, hwc), 64); + e == (qpd(), Xod) ? g.n.a += c.a - b.a : e == npd && (g.n.b += c.b - b.b); + } + } + } + f = a.d; + a.f.a = c.a - f.b - f.c; + a.f.b = c.b - f.d - f.a; + } + function Y8b(a, b, c) { + var d, e, f, g, h; + d = RD(mQb(a, (yCc(), dAc)), 21); + c.a > b.a && (d.Hc((ukd(), okd)) ? a.c.a += (c.a - b.a) / 2 : d.Hc(qkd) && (a.c.a += c.a - b.a)); + c.b > b.b && (d.Hc((ukd(), skd)) ? a.c.b += (c.b - b.b) / 2 : d.Hc(rkd) && (a.c.b += c.b - b.b)); + if (RD(mQb(a, (Ywc(), kwc)), 21).Hc((ovc(), hvc)) && (c.a > b.a || c.b > b.b)) { + for (g = new Anb(a.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 10); + if (f.k == (r3b(), m3b)) { + e = RD(mQb(f, hwc), 64); + e == (qpd(), Xod) ? f.n.a += c.a - b.a : e == npd && (f.n.b += c.b - b.b); + } + } + } + h = a.d; + a.f.a = c.a - h.b - h.c; + a.f.b = c.b - h.d - h.a; + } + function KQc(a) { + var b, c, d, e, f, g, h, i, j, k, l, m; + b = bRc(a); + for (k = (h = new Xkb(b).a.vc().Kc(), new blb(h)); k.a.Ob(); ) { + j = (e = RD(k.a.Pb(), 44), RD(e.ld(), 10)); + l = 0; + m = 0; + l = j.d.d; + m = j.o.b + j.d.a; + a.d[j.p] = 0; + c = j; + while ((f = a.a[c.p]) != j) { + d = dRc(c, f); + i = 0; + a.c == (wQc(), uQc) ? i = d.d.n.b + d.d.a.b - d.c.n.b - d.c.a.b : i = d.c.n.b + d.c.a.b - d.d.n.b - d.d.a.b; + g = Kfb(a.d[c.p]) + i; + a.d[f.p] = g; + l = $wnd.Math.max(l, f.d.d - g); + m = $wnd.Math.max(m, g + f.o.b + f.d.a); + c = f; + } + c = j; + do { + a.d[c.p] = Kfb(a.d[c.p]) + l; + c = a.a[c.p]; + } while (c != j); + a.b[j.p] = l + m; + } + } + function S9c(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + f = 0; + g = a.t; + e = 0; + d = 0; + i = 0; + m = 0; + l = 0; + if (c) { + a.n.c.length = 0; + Rmb(a.n, new _9c(a.s, a.t, a.i)); + } + h = 0; + for (k = new Anb(a.b); k.a < k.c.c.length; ) { + j = RD(ynb(k), 27); + if (f + j.g + (h > 0 ? a.i : 0) > b && i > 0) { + f = 0; + g += i + a.i; + e = $wnd.Math.max(e, m); + d += i + a.i; + i = 0; + m = 0; + if (c) { + ++l; + Rmb(a.n, new _9c(a.s, g, a.i)); + } + h = 0; + } + m += j.g + (h > 0 ? a.i : 0); + i = $wnd.Math.max(i, j.f); + c && W9c(RD(Vmb(a.n, l), 209), j); + f += j.g + (h > 0 ? a.i : 0); + ++h; + } + e = $wnd.Math.max(e, m); + d += i; + if (c) { + a.r = e; + a.d = d; + Ead(a.j); + } + return new Uid(a.s, a.t, e, d); + } + function CRb(a) { + var b, c, d, e, f, g, h, i, j, k, l, m; + a.b = false; + l = oxe; + i = pxe; + m = oxe; + j = pxe; + for (d = a.e.a.ec().Kc(); d.Ob(); ) { + c = RD(d.Pb(), 272); + e = c.a; + l = $wnd.Math.min(l, e.c); + i = $wnd.Math.max(i, e.c + e.b); + m = $wnd.Math.min(m, e.d); + j = $wnd.Math.max(j, e.d + e.a); + for (g = new Anb(c.c); g.a < g.c.c.length; ) { + f = RD(ynb(g), 407); + b = f.a; + if (b.a) { + k = e.d + f.b.b; + h = k + f.c; + m = $wnd.Math.min(m, k); + j = $wnd.Math.max(j, h); + } else { + k = e.c + f.b.a; + h = k + f.c; + l = $wnd.Math.min(l, k); + i = $wnd.Math.max(i, h); + } + } + } + a.a = new rjd(i - l, j - m); + a.c = new rjd(l + a.d.a, m + a.d.b); + } + function mYd(a) { + var b, c, d, e, f, g, h, i; + if (!a.a) { + a.o = null; + i = new e_d(a); + b = new i_d(); + c = iYd; + h = c.a.zc(a, c); + if (h == null) { + for (g = new dMd(zYd(a)); g.e != g.i.gc(); ) { + f = RD(bMd(g), 29); + YGd(i, mYd(f)); + } + c.a.Bc(a) != null; + c.a.gc() == 0 && void 0; + } + for (e = (!a.s && (a.s = new C5d(y7, a, 21, 17)), new dMd(a.s)); e.e != e.i.gc(); ) { + d = RD(bMd(e), 179); + ZD(d, 331) && WGd(b, RD(d, 35)); + } + VHd(b); + a.k = new n_d(a, (RD(QHd(xYd((lTd(), kTd).o), 7), 19), b.i), b.g); + YGd(i, a.k); + VHd(i); + a.a = new N$d((RD(QHd(xYd(kTd.o), 4), 19), i.i), i.g); + yYd(a).b &= -2; + } + return a.a; + } + function age(a, b, c, d) { + var e, f, g, h, i, j, k; + k = pke(a.e.Dh(), b); + e = 0; + f = RD(a.g, 124); + i = null; + nke(); + if (RD(b, 69).xk()) { + for (h = 0; h < a.i; ++h) { + g = f[h]; + if (k.am(g.Lk())) { + if (pb(g, c)) { + i = g; + break; + } + ++e; + } + } + } else if (c != null) { + for (h = 0; h < a.i; ++h) { + g = f[h]; + if (k.am(g.Lk())) { + if (pb(c, g.md())) { + i = g; + break; + } + ++e; + } + } + } else { + for (h = 0; h < a.i; ++h) { + g = f[h]; + if (k.am(g.Lk())) { + if (g.md() == null) { + i = g; + break; + } + ++e; + } + } + } + if (i) { + if (Mvd(a.e)) { + j = b.Jk() ? new lle(a.e, 4, b, c, null, e, true) : fge(a, b.tk() ? 2 : 1, b, c, b.ik(), -1, true); + d ? d.nj(j) : d = j; + } + d = _fe(a, i, d); + } + return d; + } + function d8c(a, b, c, d, e, f, g) { + var h, i, j, k, l, m, n, o2, p; + o2 = 0; + p = 0; + i = e.c; + h = e.b; + k = c.f; + n = c.g; + switch (b.g) { + case 0: + o2 = d.i + d.g + g; + a.c ? p = m8c(o2, f, d, g) : p = d.j; + m = $wnd.Math.max(i, o2 + n); + j = $wnd.Math.max(h, p + k); + break; + case 1: + p = d.j + d.f + g; + a.c ? o2 = l8c(p, f, d, g) : o2 = d.i; + m = $wnd.Math.max(i, o2 + n); + j = $wnd.Math.max(h, p + k); + break; + case 2: + o2 = i + g; + p = 0; + m = i + g + n; + j = $wnd.Math.max(h, k); + break; + case 3: + o2 = 0; + p = h + g; + m = $wnd.Math.max(i, n); + j = h + g + k; + break; + default: + throw Adb(new agb("IllegalPlacementOption.")); + } + l = new mad(a.a, m, j, b, o2, p); + return l; + } + function g6b(a) { + var b, c, d, e, f, g, h, i, j, k, l, m; + h = a.d; + l = RD(mQb(a, (Ywc(), Xwc)), 15); + b = RD(mQb(a, Vvc), 15); + if (!l && !b) { + return; + } + f = Kfb(UD(hFc(a, (yCc(), QBc)))); + g = Kfb(UD(hFc(a, RBc))); + m = 0; + if (l) { + j = 0; + for (e = l.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 10); + j = $wnd.Math.max(j, d.o.b); + m += d.o.a; + } + m += f * (l.gc() - 1); + h.d += j + g; + } + c = 0; + if (b) { + j = 0; + for (e = b.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 10); + j = $wnd.Math.max(j, d.o.b); + c += d.o.a; + } + c += f * (b.gc() - 1); + h.a += j + g; + } + i = $wnd.Math.max(m, c); + if (i > a.o.a) { + k = (i - a.o.a) / 2; + h.b = $wnd.Math.max(h.b, k); + h.c = $wnd.Math.max(h.c, k); + } + } + function RId(a) { + var b, c, d, e, f, g, h, i; + f = new med(); + ied(f, (hed(), eed)); + for (d = (e = oC(a, $C(qJ, Nve, 2, 0, 6, 1)), new Dkb(new mob(new CC(a, e).b))); d.b < d.d.gc(); ) { + c = (sFb(d.b < d.d.gc()), WD(d.d.Xb(d.c = d.b++))); + g = vgd(LId, c); + if (g) { + b = qC(a, c); + b.te() ? h = b.te().a : b.qe() ? h = "" + b.qe().a : b.re() ? h = "" + b.re().a : h = b.Ib(); + i = zhd(g, h); + if (i != null) { + (Csb(g.j, (Yhd(), Vhd)) || Csb(g.j, Whd)) && oQb(ked(f, J4), g, i); + Csb(g.j, Thd) && oQb(ked(f, G4), g, i); + Csb(g.j, Xhd) && oQb(ked(f, K4), g, i); + Csb(g.j, Uhd) && oQb(ked(f, I4), g, i); + } + } + } + return f; + } + function ige(a, b, c) { + var d, e, f, g, h, i, j, k; + e = RD(a.g, 124); + if (qke(a.e, b)) { + return nke(), RD(b, 69).xk() ? new ole(b, a) : new Eke(b, a); + } else { + j = pke(a.e.Dh(), b); + d = 0; + for (h = 0; h < a.i; ++h) { + f = e[h]; + g = f.Lk(); + if (j.am(g)) { + nke(); + if (RD(b, 69).xk()) { + return f; + } else if (g == (Lle(), Jle) || g == Gle) { + i = new dib(jeb(f.md())); + while (++h < a.i) { + f = e[h]; + g = f.Lk(); + (g == Jle || g == Gle) && Zhb(i, jeb(f.md())); + } + return Ije(RD(b.Hk(), 156), i.a); + } else { + k = f.md(); + k != null && c && ZD(b, 102) && (RD(b, 19).Bb & txe) != 0 && (k = Bge(a, b, h, d, k)); + return k; + } + } + ++d; + } + return b.ik(); + } + } + function hge(a, b, c, d) { + var e, f, g, h, i, j; + i = pke(a.e.Dh(), b); + f = RD(a.g, 124); + if (qke(a.e, b)) { + e = 0; + for (h = 0; h < a.i; ++h) { + g = f[h]; + if (i.am(g.Lk())) { + if (e == c) { + nke(); + if (RD(b, 69).xk()) { + return g; + } else { + j = g.md(); + j != null && d && ZD(b, 102) && (RD(b, 19).Bb & txe) != 0 && (j = Bge(a, b, h, e, j)); + return j; + } + } + ++e; + } + } + throw Adb(new veb(HJe + c + NIe + e)); + } else { + e = 0; + for (h = 0; h < a.i; ++h) { + g = f[h]; + if (i.am(g.Lk())) { + nke(); + if (RD(b, 69).xk()) { + return g; + } else { + j = g.md(); + j != null && d && ZD(b, 102) && (RD(b, 19).Bb & txe) != 0 && (j = Bge(a, b, h, e, j)); + return j; + } + } + ++e; + } + return b.ik(); + } + } + function xjb() { + xjb = geb; + vjb = cD(WC(kE, 1), Pwe, 28, 15, [qwe, 1162261467, hwe, 1220703125, 362797056, 1977326743, hwe, 387420489, ixe, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 128e7, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729e6, 887503681, hwe, 1291467969, 1544804416, 1838265625, 60466176]); + wjb = cD(WC(kE, 1), Pwe, 28, 15, [-1, -1, 31, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); + } + function Gjb(a, b) { + var c, d, e, f, g, h, i, j, k, l; + g = a.e; + i = b.e; + if (i == 0) { + return a; + } + if (g == 0) { + return b.e == 0 ? b : new cjb(-b.e, b.d, b.a); + } + f = a.d; + h = b.d; + if (f + h == 2) { + c = Cdb(a.a[0], yxe); + d = Cdb(b.a[0], yxe); + g < 0 && (c = Odb(c)); + i < 0 && (d = Odb(d)); + return Pib(), Jdb(Vdb(c, d), 0) ? jjb(Vdb(c, d)) : Xib(jjb(Odb(Vdb(c, d)))); + } + e = f != h ? f > h ? 1 : -1 : Ejb(a.a, b.a, f); + if (e == -1) { + l = -i; + k = g == i ? Hjb(b.a, h, a.a, f) : Cjb(b.a, h, a.a, f); + } else { + l = g; + if (g == i) { + if (e == 0) { + return Pib(), Oib; + } + k = Hjb(a.a, f, b.a, h); + } else { + k = Cjb(a.a, f, b.a, h); + } + } + j = new cjb(l, k.length, k); + Rib(j); + return j; + } + function c5b(a, b) { + var c, d, e, f; + f = Z4b(b); + !b.c && (b.c = new C5d(K4, b, 9, 9)); + FDb(new SDb(null, (!b.c && (b.c = new C5d(K4, b, 9, 9)), new Swb(b.c, 16))), new s5b(f)); + e = RD(mQb(f, (Ywc(), kwc)), 21); + Y4b(b, e); + if (e.Hc((ovc(), hvc))) { + for (d = new dMd((!b.c && (b.c = new C5d(K4, b, 9, 9)), b.c)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 123); + g5b(a, b, f, c); + } + } + RD(Gxd(b, (yCc(), lBc)), 181).gc() != 0 && V4b(b, f); + Heb(TD(mQb(f, sBc))) && e.Fc(mvc); + nQb(f, PBc) && HCc(new RCc(Kfb(UD(mQb(f, PBc)))), f); + dE(Gxd(b, IAc)) === dE((Fnd(), Cnd)) ? d5b(a, b, f) : b5b(a, b, f); + return f; + } + function Vrc(a) { + var b, c, d, e, f, g, h, i; + for (e = new Anb(a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 30); + for (g = new Anb(bv(d.a)); g.a < g.c.c.length; ) { + f = RD(ynb(g), 10); + if (Lrc(f)) { + c = RD(mQb(f, (Ywc(), Wvc)), 313); + if (!c.g && !!c.d) { + b = c; + i = c.d; + while (i) { + Urc(i.i, i.k, false, true); + asc(b.a); + asc(i.i); + asc(i.k); + asc(i.b); + Z0b(i.c, b.c.d); + Z0b(b.c, null); + g3b(b.a, null); + g3b(i.i, null); + g3b(i.k, null); + g3b(i.b, null); + h = new Jrc(b.i, i.a, b.e, i.j, i.f); + h.k = b.k; + h.n = b.n; + h.b = b.b; + h.c = i.c; + h.g = b.g; + h.d = i.d; + pQb(b.i, Wvc, h); + pQb(i.a, Wvc, h); + i = i.d; + b = h; + } + } + } + } + } + } + function nue(a, b) { + var c, d, e, f, g, h, i; + if (a == null) { + return null; + } + f = a.length; + if (f == 0) { + return ""; + } + i = $C(hE, zwe, 28, f, 15, 1); + AFb(0, f, a.length); + AFb(0, f, i.length); + nhb(a, 0, f, i, 0); + c = null; + h = b; + for (e = 0, g = 0; e < f; e++) { + d = i[e]; + Kqe(); + if (d <= 32 && (Jqe[d] & 2) != 0) { + if (h) { + !c && (c = new Shb(a)); + Phb(c, e - g++); + } else { + h = b; + if (d != 32) { + !c && (c = new Shb(a)); + peb(c, e - g, e - g + 1, String.fromCharCode(32)); + } + } + } else { + h = false; + } + } + if (h) { + if (!c) { + return AFb(0, f - 1, a.length), a.substr(0, f - 1); + } else { + f = c.a.length; + return f > 0 ? zhb(c.a, 0, f - 1) : ""; + } + } else { + return !c ? a : c.a; + } + } + function xic(a, b) { + var c, d, e, f, g, h, i; + b.Ug("Sort By Input Model " + mQb(a, (yCc(), cAc)), 1); + e = 0; + for (d = new Anb(a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 30); + i = e == 0 ? 0 : e - 1; + h = RD(Vmb(a.b, i), 30); + for (g = new Anb(c.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 10); + if (dE(mQb(f, BBc)) !== dE((Bod(), vod)) && dE(mQb(f, BBc)) !== dE(wod)) { + yob(); + _mb(f.j, new trc(h, RD(mQb(a, cAc), 284), Bic(f), Heb(TD(mQb(a, bAc))))); + b.bh("Node " + f + " ports: " + f.j); + } + } + yob(); + _mb(c.a, new frc(h, RD(mQb(a, cAc), 284), RD(mQb(a, _zc), 390))); + b.bh("Layer " + e + ": " + c); + ++e; + } + b.Vg(); + } + function ute(a, b) { + var c, d, e, f, g; + g = RD(b, 138); + vte(a); + vte(g); + if (g.b == null) + return; + a.c = true; + if (a.b == null) { + a.b = $C(kE, Pwe, 28, g.b.length, 15, 1); + hib(g.b, 0, a.b, 0, g.b.length); + return; + } + f = $C(kE, Pwe, 28, a.b.length + g.b.length, 15, 1); + for (c = 0, d = 0, e = 0; c < a.b.length || d < g.b.length; ) { + if (c >= a.b.length) { + f[e++] = g.b[d++]; + f[e++] = g.b[d++]; + } else if (d >= g.b.length) { + f[e++] = a.b[c++]; + f[e++] = a.b[c++]; + } else if (g.b[d] < a.b[c] || g.b[d] === a.b[c] && g.b[d + 1] < a.b[c + 1]) { + f[e++] = g.b[d++]; + f[e++] = g.b[d++]; + } else { + f[e++] = a.b[c++]; + f[e++] = a.b[c++]; + } + } + a.b = f; + } + function hac(a, b) { + var c, d, e, f, g, h, i, j, k, l; + c = Heb(TD(mQb(a, (Ywc(), uwc)))); + h = Heb(TD(mQb(b, uwc))); + d = RD(mQb(a, vwc), 12); + i = RD(mQb(b, vwc), 12); + e = RD(mQb(a, wwc), 12); + j = RD(mQb(b, wwc), 12); + k = !!d && d == i; + l = !!e && e == j; + if (!c && !h) { + return new oac(RD(ynb(new Anb(a.j)), 12).p == RD(ynb(new Anb(b.j)), 12).p, k, l); + } + f = (!Heb(TD(mQb(a, uwc))) || Heb(TD(mQb(a, twc)))) && (!Heb(TD(mQb(b, uwc))) || Heb(TD(mQb(b, twc)))); + g = (!Heb(TD(mQb(a, uwc))) || !Heb(TD(mQb(a, twc)))) && (!Heb(TD(mQb(b, uwc))) || !Heb(TD(mQb(b, twc)))); + return new oac(k && f || l && g, k, l); + } + function N9c(a) { + var b, c, d, e, f, g, h, i; + d = 0; + c = 0; + i = new Yub(); + b = 0; + for (h = new Anb(a.n); h.a < h.c.c.length; ) { + g = RD(ynb(h), 209); + if (g.c.c.length == 0) { + Pub(i, g, i.c.b, i.c); + } else { + d = $wnd.Math.max(d, g.d); + c += g.a + (b > 0 ? a.i : 0); + } + ++b; + } + Ce(a.n, i); + a.d = c; + a.r = d; + a.g = 0; + a.f = 0; + a.e = 0; + a.o = oxe; + a.p = oxe; + for (f = new Anb(a.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 27); + a.p = $wnd.Math.min(a.p, e.g); + a.g = $wnd.Math.max(a.g, e.g); + a.f = $wnd.Math.max(a.f, e.f); + a.o = $wnd.Math.min(a.o, e.f); + a.e += e.f + a.i; + } + a.a = a.e / a.b.c.length - a.i * ((a.b.c.length - 1) / a.b.c.length); + Ead(a.j); + } + function qzd(a) { + var b, c, d, e; + if ((a.Db & 64) != 0) + return kyd(a); + b = new dib(BHe); + d = a.k; + if (!d) { + !a.n && (a.n = new C5d(I4, a, 1, 7)); + if (a.n.i > 0) { + e = (!a.n && (a.n = new C5d(I4, a, 1, 7)), RD(QHd(a.n, 0), 135)).a; + !e || Zhb(Zhb((b.a += ' "', b), e), '"'); + } + } else { + Zhb(Zhb((b.a += ' "', b), d), '"'); + } + c = (!a.b && (a.b = new Yie(E4, a, 4, 7)), !(a.b.i <= 1 && (!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c.i <= 1))); + c ? (b.a += " [", b) : (b.a += " ", b); + Zhb(b, Eb(new Gb(), new dMd(a.b))); + c && (b.a += "]", b); + b.a += SAe; + c && (b.a += "[", b); + Zhb(b, Eb(new Gb(), new dMd(a.c))); + c && (b.a += "]", b); + return b.a; + } + function odc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D; + v = a.c; + w = b.c; + c = Wmb(v.a, a, 0); + d = Wmb(w.a, b, 0); + t = RD(c3b(a, (BEc(), yEc)).Kc().Pb(), 12); + C = RD(c3b(a, zEc).Kc().Pb(), 12); + u = RD(c3b(b, yEc).Kc().Pb(), 12); + D = RD(c3b(b, zEc).Kc().Pb(), 12); + r = s2b(t.e); + A = s2b(C.g); + s = s2b(u.e); + B = s2b(D.g); + f3b(a, d, w); + for (g = s, k = 0, o2 = g.length; k < o2; ++k) { + e = g[k]; + Z0b(e, t); + } + for (h = B, l = 0, p = h.length; l < p; ++l) { + e = h[l]; + Y0b(e, C); + } + f3b(b, c, v); + for (i = r, m = 0, q = i.length; m < q; ++m) { + e = i[m]; + Z0b(e, u); + } + for (f = A, j = 0, n = f.length; j < n; ++j) { + e = f[j]; + Y0b(e, D); + } + } + function $2c(a) { + var b, c, d, e, f, g, h; + g = RD(Gxd(a, (u2c(), t2c)), 27); + for (d = new dMd((!g.e && (g.e = new Yie(G4, g, 7, 4)), g.e)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 74); + h = new rjd(RD(QHd((!c.a && (c.a = new C5d(F4, c, 6, 6)), c.a), 0), 166).j, RD(QHd((!c.a && (c.a = new C5d(F4, c, 6, 6)), c.a), 0), 166).k); + f = new rjd(RD(QHd((!c.a && (c.a = new C5d(F4, c, 6, 6)), c.a), 0), 166).b, RD(QHd((!c.a && (c.a = new C5d(F4, c, 6, 6)), c.a), 0), 166).c); + e = new rjd(f.a - h.a, f.b - h.b); + b = $wnd.Math.atan2(e.b, e.a); + RD(QHd((!c.c && (c.c = new Yie(E4, c, 5, 8)), c.c), 0), 84).qf(($4c(), W4c), b); + } + } + function o6c(a, b) { + var c, d, e, f, g, h, i, j, k; + b.Ug("Interactive Node Reorderer", 1); + k = (!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a); + h = new bnb(); + for (e = new dMd(k); e.e != e.i.gc(); ) { + c = RD(bMd(e), 27); + Hxd(c, (X7c(), A7c)) && (ZEb(h.c, c), true); + } + for (f = new Anb(h); f.a < f.c.c.length; ) { + c = RD(ynb(f), 27); + dHd(k, c); + } + yob(); + _mb(h, new s6c()); + for (g = new Anb(h); g.a < g.c.c.length; ) { + c = RD(ynb(g), 27); + j = RD(Gxd(c, (X7c(), A7c)), 17).a; + j = $wnd.Math.min(j, k.i); + VGd(k, j, c); + } + i = 0; + for (d = new dMd(k); d.e != d.i.gc(); ) { + c = RD(bMd(d), 27); + Ixd(c, (X7c(), z7c), sgb(i)); + ++i; + } + b.Vg(); + } + function PTc(a, b, c) { + var d, e, f, g, h, i, j, k; + if ($wnd.Math.abs(b.s - b.c) < Vze || $wnd.Math.abs(c.s - c.c) < Vze) { + return 0; + } + d = OTc(a, b.j, c.e); + e = OTc(a, c.j, b.e); + f = d == -1 || e == -1; + g = 0; + if (f) { + if (d == -1) { + new bTc((fTc(), dTc), c, b, 1); + ++g; + } + if (e == -1) { + new bTc((fTc(), dTc), b, c, 1); + ++g; + } + } else { + h = VTc(b.j, c.s, c.c); + h += VTc(c.e, b.s, b.c); + i = VTc(c.j, b.s, b.c); + i += VTc(b.e, c.s, c.c); + j = d + 16 * h; + k = e + 16 * i; + if (j < k) { + new bTc((fTc(), eTc), b, c, k - j); + } else if (j > k) { + new bTc((fTc(), eTc), c, b, j - k); + } else if (j > 0 && k > 0) { + new bTc((fTc(), eTc), b, c, 0); + new bTc(eTc, c, b, 0); + } + } + return g; + } + function pXc(a, b, c) { + var d, e, f; + a.a = new bnb(); + for (f = Sub(b.b, 0); f.b != f.d.c; ) { + e = RD(evb(f), 40); + while (RD(mQb(e, (h_c(), f_c)), 17).a > a.a.c.length - 1) { + Rmb(a.a, new Ptd(Hze, KEe)); + } + d = RD(mQb(e, f_c), 17).a; + if (c == (Cmd(), ymd) || c == zmd) { + e.e.a < Kfb(UD(RD(Vmb(a.a, d), 42).a)) && Ntd(RD(Vmb(a.a, d), 42), e.e.a); + e.e.a + e.f.a > Kfb(UD(RD(Vmb(a.a, d), 42).b)) && Otd(RD(Vmb(a.a, d), 42), e.e.a + e.f.a); + } else { + e.e.b < Kfb(UD(RD(Vmb(a.a, d), 42).a)) && Ntd(RD(Vmb(a.a, d), 42), e.e.b); + e.e.b + e.f.b > Kfb(UD(RD(Vmb(a.a, d), 42).b)) && Otd(RD(Vmb(a.a, d), 42), e.e.b + e.f.b); + } + } + } + function g2b(a, b, c, d) { + var e, f, g, h, i, j, k; + f = i2b(d); + h = Heb(TD(mQb(d, (yCc(), aBc)))); + if ((h || Heb(TD(mQb(a, MAc)))) && !Dod(RD(mQb(a, BBc), 101))) { + e = vpd(f); + i = q2b(a, c, c == (BEc(), zEc) ? e : spd(e)); + } else { + i = new R3b(); + P3b(i, a); + if (b) { + k = i.n; + k.a = b.a - a.n.a; + k.b = b.b - a.n.b; + _id(k, 0, 0, a.o.a, a.o.b); + Q3b(i, c2b(i, f)); + } else { + e = vpd(f); + Q3b(i, c == (BEc(), zEc) ? e : spd(e)); + } + g = RD(mQb(d, (Ywc(), kwc)), 21); + j = i.j; + switch (f.g) { + case 2: + case 1: + (j == (qpd(), Yod) || j == npd) && g.Fc((ovc(), lvc)); + break; + case 4: + case 3: + (j == (qpd(), Xod) || j == ppd) && g.Fc((ovc(), lvc)); + } + } + return i; + } + function VXb(a, b) { + var c, d, e, f, g, h; + for (g = new vkb(new mkb(a.f.b).a); g.b; ) { + f = tkb(g); + e = RD(f.ld(), 602); + if (b == 1) { + if (e.Af() != (Cmd(), Bmd) && e.Af() != xmd) { + continue; + } + } else { + if (e.Af() != (Cmd(), ymd) && e.Af() != zmd) { + continue; + } + } + d = RD(RD(f.md(), 42).b, 86); + h = RD(RD(f.md(), 42).a, 194); + c = h.c; + switch (e.Af().g) { + case 2: + d.g.c = a.e.a; + d.g.b = $wnd.Math.max(1, d.g.b + c); + break; + case 1: + d.g.c = d.g.c + c; + d.g.b = $wnd.Math.max(1, d.g.b - c); + break; + case 4: + d.g.d = a.e.b; + d.g.a = $wnd.Math.max(1, d.g.a + c); + break; + case 3: + d.g.d = d.g.d + c; + d.g.a = $wnd.Math.max(1, d.g.a - c); + } + } + } + function NNc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p; + h = $C(kE, Pwe, 28, b.b.c.length, 15, 1); + j = $C(hR, jwe, 273, b.b.c.length, 0, 1); + i = $C(jR, WAe, 10, b.b.c.length, 0, 1); + for (l = a.a, m = 0, n = l.length; m < n; ++m) { + k = l[m]; + p = 0; + for (g = new Anb(k.e); g.a < g.c.c.length; ) { + e = RD(ynb(g), 10); + d = Q4b(e.c); + ++h[d]; + o2 = Kfb(UD(mQb(b, (yCc(), TBc)))); + h[d] > 0 && !!i[d] && (o2 = bFc(a.b, i[d], e)); + p = $wnd.Math.max(p, e.c.c.b + o2); + } + for (f = new Anb(k.e); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + e.n.b = p + e.d.d; + c = e.c; + c.c.b = p + e.d.d + e.o.b + e.d.a; + j[Wmb(c.b.b, c, 0)] = e.k; + i[Wmb(c.b.b, c, 0)] = e; + } + } + } + function M5c(a, b) { + var c, d, e, f, g, h, i, j, k, l, m; + for (d = new is(Mr(zGd(b).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 74); + if (!ZD(QHd((!c.b && (c.b = new Yie(E4, c, 4, 7)), c.b), 0), 193)) { + i = AGd(RD(QHd((!c.c && (c.c = new Yie(E4, c, 5, 8)), c.c), 0), 84)); + if (!nzd(c)) { + g = b.i + b.g / 2; + h = b.j + b.f / 2; + k = i.i + i.g / 2; + l = i.j + i.f / 2; + m = new pjd(); + m.a = k - g; + m.b = l - h; + f = new rjd(m.a, m.b); + wid(f, b.g, b.f); + m.a -= f.a; + m.b -= f.b; + g = k - m.a; + h = l - m.b; + j = new rjd(m.a, m.b); + wid(j, i.g, i.f); + m.a -= j.a; + m.b -= j.b; + k = g + m.a; + l = h + m.b; + e = IGd(c, true, true); + Ozd(e, g); + Pzd(e, h); + Hzd(e, k); + Izd(e, l); + M5c(a, i); + } + } + } + } + function ocd(a) { + Cgd(a, new Pfd($fd(Xfd(Zfd(Yfd(new agd(), hGe), "ELK SPOrE Compaction"), "ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree."), new rcd()))); + Agd(a, hGe, iGe, iGd(mcd)); + Agd(a, hGe, jGe, iGd(jcd)); + Agd(a, hGe, kGe, iGd(icd)); + Agd(a, hGe, lGe, iGd(gcd)); + Agd(a, hGe, mGe, iGd(hcd)); + Agd(a, hGe, Eze, fcd); + Agd(a, hGe, _ze, 8); + Agd(a, hGe, nGe, iGd(lcd)); + Agd(a, hGe, oGe, iGd(bcd)); + Agd(a, hGe, pGe, iGd(ccd)); + Agd(a, hGe, LDe, (Geb(), false)); + } + function hQc(a, b) { + var c, d, e, f, g, h, i, j, k, l; + b.Ug("Simple node placement", 1); + l = RD(mQb(a, (Ywc(), Qwc)), 312); + h = 0; + for (f = new Anb(a.b); f.a < f.c.c.length; ) { + d = RD(ynb(f), 30); + g = d.c; + g.b = 0; + c = null; + for (j = new Anb(d.a); j.a < j.c.c.length; ) { + i = RD(ynb(j), 10); + !!c && (g.b += _Ec(i, c, l.c)); + g.b += i.d.d + i.o.b + i.d.a; + c = i; + } + h = $wnd.Math.max(h, g.b); + } + for (e = new Anb(a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 30); + g = d.c; + k = (h - g.b) / 2; + c = null; + for (j = new Anb(d.a); j.a < j.c.c.length; ) { + i = RD(ynb(j), 10); + !!c && (k += _Ec(i, c, l.c)); + k += i.d.d; + i.n.b = k; + k += i.o.b + i.d.a; + c = i; + } + } + b.Vg(); + } + function tqc(a, b) { + var c, d, e, f; + nqc(b.b.j); + FDb(GDb(new SDb(null, new Swb(b.d, 16)), new Eqc()), new Gqc()); + for (f = new Anb(b.d); f.a < f.c.c.length; ) { + e = RD(ynb(f), 105); + switch (e.e.g) { + case 0: + c = RD(Vmb(e.j, 0), 113).d.j; + Smc(e, RD(Lvb(KDb(RD(Qc(e.k, c), 15).Oc(), lqc)), 113)); + Tmc(e, RD(Lvb(JDb(RD(Qc(e.k, c), 15).Oc(), lqc)), 113)); + break; + case 1: + d = foc(e); + Smc(e, RD(Lvb(KDb(RD(Qc(e.k, d[0]), 15).Oc(), lqc)), 113)); + Tmc(e, RD(Lvb(JDb(RD(Qc(e.k, d[1]), 15).Oc(), lqc)), 113)); + break; + case 2: + vqc(a, e); + break; + case 3: + uqc(e); + break; + case 4: + sqc(a, e); + } + qqc(e); + } + a.a = null; + } + function yRc(a, b, c) { + var d, e, f, g, h, i, j, k; + d = a.a.o == (EQc(), DQc) ? oxe : pxe; + h = zRc(a, new xRc(b, c)); + if (!h.a && h.c) { + Mub(a.d, h); + return d; + } else if (h.a) { + e = h.a.c; + i = h.a.d; + if (c) { + j = a.a.c == (wQc(), vQc) ? i : e; + f = a.a.c == vQc ? e : i; + g = a.a.g[f.i.p]; + k = Kfb(a.a.p[g.p]) + Kfb(a.a.d[f.i.p]) + f.n.b + f.a.b - Kfb(a.a.d[j.i.p]) - j.n.b - j.a.b; + } else { + j = a.a.c == (wQc(), uQc) ? i : e; + f = a.a.c == uQc ? e : i; + k = Kfb(a.a.p[a.a.g[f.i.p].p]) + Kfb(a.a.d[f.i.p]) + f.n.b + f.a.b - Kfb(a.a.d[j.i.p]) - j.n.b - j.a.b; + } + a.a.n[a.a.g[e.i.p].p] = (Geb(), true); + a.a.n[a.a.g[i.i.p].p] = true; + return k; + } + return d; + } + function Sfe(a, b, c, d) { + var e, f, g, h, i, j, k, l; + if (d.gc() == 0) { + return false; + } + i = (nke(), RD(b, 69).xk()); + g = i ? d : new ZHd(d.gc()); + if (qke(a.e, b)) { + if (b.Si()) { + for (k = d.Kc(); k.Ob(); ) { + j = k.Pb(); + if (!dge(a, b, j, ZD(b, 102) && (RD(b, 19).Bb & txe) != 0)) { + f = oke(b, j); + g.Fc(f); + } + } + } else if (!i) { + for (k = d.Kc(); k.Ob(); ) { + j = k.Pb(); + f = oke(b, j); + g.Fc(f); + } + } + } else { + l = pke(a.e.Dh(), b); + e = RD(a.g, 124); + for (h = 0; h < a.i; ++h) { + f = e[h]; + if (l.am(f.Lk())) { + throw Adb(new agb(gLe)); + } + } + if (d.gc() > 1) { + throw Adb(new agb(gLe)); + } + if (!i) { + f = oke(b, d.Kc().Pb()); + g.Fc(f); + } + } + return XGd(a, gge(a, b, c), g); + } + function Fge(a, b, c) { + var d, e, f, g, h, i, j, k; + if (qke(a.e, b)) { + i = (nke(), RD(b, 69).xk() ? new ole(b, a) : new Eke(b, a)); + bge(i.c, i.b); + Ake(i, RD(c, 16)); + } else { + k = pke(a.e.Dh(), b); + d = RD(a.g, 124); + for (g = 0; g < a.i; ++g) { + e = d[g]; + f = e.Lk(); + if (k.am(f)) { + if (f == (Lle(), Jle) || f == Gle) { + j = Mge(a, b, c); + h = g; + j ? vLd(a, g) : ++g; + while (g < a.i) { + e = d[g]; + f = e.Lk(); + f == Jle || f == Gle ? vLd(a, g) : ++g; + } + j || RD(eHd(a, h, oke(b, c)), 76); + } else + Mge(a, b, c) ? vLd(a, g) : RD(eHd(a, g, (nke(), RD(b, 69).xk() ? RD(c, 76) : oke(b, c))), 76); + return; + } + } + Mge(a, b, c) || WGd(a, (nke(), RD(b, 69).xk() ? RD(c, 76) : oke(b, c))); + } + } + function zPb(a, b, c) { + var d, e, f, g, h, i, j, k; + if (!pb(c, a.b)) { + a.b = c; + f = new CPb(); + g = RD(zDb(GDb(new SDb(null, new Swb(c.f, 16)), f), sBb(new _Bb(), new bCb(), new yCb(), new ACb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), wBb), vBb]))), 21); + a.e = true; + a.f = true; + a.c = true; + a.d = true; + e = g.Hc((IPb(), FPb)); + d = g.Hc(GPb); + e && !d && (a.f = false); + !e && d && (a.d = false); + e = g.Hc(EPb); + d = g.Hc(HPb); + e && !d && (a.c = false); + !e && d && (a.e = false); + } + k = RD(a.a.Ve(b, c), 42); + i = RD(k.a, 17).a; + j = RD(k.b, 17).a; + h = false; + i < 0 ? a.c || (h = true) : a.e || (h = true); + j < 0 ? a.d || (h = true) : a.f || (h = true); + return h ? zPb(a, k, c) : k; + } + function fNb(a) { + var b, c, d, e; + e = a.o; + RMb(); + if (a.A.dc() || pb(a.A, QMb)) { + b = e.b; + } else { + b = YKb(a.f); + if (a.A.Hc((Qpd(), Npd)) && !a.B.Hc((dqd(), _pd))) { + b = $wnd.Math.max(b, YKb(RD(Vrb(a.p, (qpd(), Xod)), 252))); + b = $wnd.Math.max(b, YKb(RD(Vrb(a.p, ppd), 252))); + } + c = TMb(a); + !!c && (b = $wnd.Math.max(b, c.b)); + if (a.A.Hc(Opd)) { + if (a.q == (Bod(), xod) || a.q == wod) { + b = $wnd.Math.max(b, SJb(RD(Vrb(a.b, (qpd(), Xod)), 127))); + b = $wnd.Math.max(b, SJb(RD(Vrb(a.b, ppd), 127))); + } + } + } + Heb(TD(a.e.Tf().of((umd(), mld)))) ? e.b = $wnd.Math.max(e.b, b) : e.b = b; + d = a.f.i; + d.d = 0; + d.a = b; + _Kb(a.f); + } + function yNc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p; + for (l = 0; l < b.length; l++) { + for (h = a.Kc(); h.Ob(); ) { + f = RD(h.Pb(), 230); + f.hg(l, b); + } + for (m = 0; m < b[l].length; m++) { + for (i = a.Kc(); i.Ob(); ) { + f = RD(i.Pb(), 230); + f.ig(l, m, b); + } + p = b[l][m].j; + for (n = 0; n < p.c.length; n++) { + for (j = a.Kc(); j.Ob(); ) { + f = RD(j.Pb(), 230); + f.jg(l, m, n, b); + } + o2 = (tFb(n, p.c.length), RD(p.c[n], 12)); + c = 0; + for (e = new l4b(o2.b); xnb(e.a) || xnb(e.b); ) { + d = RD(xnb(e.a) ? ynb(e.a) : ynb(e.b), 18); + for (k = a.Kc(); k.Ob(); ) { + f = RD(k.Pb(), 230); + f.gg(l, m, n, c++, d, b); + } + } + } + } + } + for (g = a.Kc(); g.Ob(); ) { + f = RD(g.Pb(), 230); + f.fg(); + } + } + function $7b(a, b) { + var c, d, e, f, g, h, i; + a.b = Kfb(UD(mQb(b, (yCc(), UBc)))); + a.c = Kfb(UD(mQb(b, XBc))); + a.d = RD(mQb(b, DAc), 350); + a.a = RD(mQb(b, Xzc), 282); + Y7b(b); + h = RD(zDb(CDb(CDb(EDb(EDb(new SDb(null, new Swb(b.b, 16)), new c8b()), new e8b()), new g8b()), new i8b()), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + for (e = h.Kc(); e.Ob(); ) { + c = RD(e.Pb(), 18); + g = RD(mQb(c, (Ywc(), Twc)), 15); + g.Jc(new k8b(a)); + pQb(c, Twc, null); + } + for (d = h.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 18); + i = RD(mQb(c, (Ywc(), Uwc)), 18); + f = RD(mQb(c, Rwc), 15); + S7b(a, f, i); + pQb(c, Rwc, null); + } + } + function r2d(a, b) { + var c, d, e, f, g, h, i; + if (a.a) { + h = a.a.xe(); + i = null; + if (h != null) { + b.a += "" + h; + } else { + g = a.a.mk(); + if (g != null) { + f = qhb(g, Fhb(91)); + if (f != -1) { + i = (BFb(f, g.length + 1), g.substr(f)); + b.a += "" + zhb(g == null ? vve : (uFb(g), g), 0, f); + } else { + b.a += "" + g; + } + } + } + if (!!a.d && a.d.i != 0) { + e = true; + b.a += "<"; + for (d = new dMd(a.d); d.e != d.i.gc(); ) { + c = RD(bMd(d), 89); + e ? e = false : (b.a += pve, b); + r2d(c, b); + } + b.a += ">"; + } + i != null && (b.a += "" + i, b); + } else if (a.e) { + h = a.e.zb; + h != null && (b.a += "" + h, b); + } else { + b.a += "?"; + if (a.b) { + b.a += " super "; + r2d(a.b, b); + } else { + if (a.f) { + b.a += " extends "; + r2d(a.f, b); + } + } + } + } + function Uae(a) { + a.b = null; + a.a = null; + a.o = null; + a.q = null; + a.v = null; + a.w = null; + a.B = null; + a.p = null; + a.Q = null; + a.R = null; + a.S = null; + a.T = null; + a.U = null; + a.V = null; + a.W = null; + a.bb = null; + a.eb = null; + a.ab = null; + a.H = null; + a.db = null; + a.c = null; + a.d = null; + a.f = null; + a.n = null; + a.r = null; + a.s = null; + a.u = null; + a.G = null; + a.J = null; + a.e = null; + a.j = null; + a.i = null; + a.g = null; + a.k = null; + a.t = null; + a.F = null; + a.I = null; + a.L = null; + a.M = null; + a.O = null; + a.P = null; + a.$ = null; + a.N = null; + a.Z = null; + a.cb = null; + a.K = null; + a.D = null; + a.A = null; + a.C = null; + a._ = null; + a.fb = null; + a.X = null; + a.Y = null; + a.gb = false; + a.hb = false; + } + function yib(a) { + var b, c, d, e; + d = Ajb((!a.c && (a.c = ojb(Hdb(a.f))), a.c), 0); + if (a.e == 0 || a.a == 0 && a.f != -1 && a.e < 0) { + return d; + } + b = xib(a) < 0 ? 1 : 0; + c = a.e; + e = (d.length + 1 + $wnd.Math.abs(eE(a.e)), new cib()); + b == 1 && (e.a += "-", e); + if (a.e > 0) { + c -= d.length - b; + if (c >= 0) { + e.a += "0."; + for (; c > mib.length; c -= mib.length) { + $hb(e, mib); + } + _hb(e, mib, eE(c)); + Zhb(e, (BFb(b, d.length + 1), d.substr(b))); + } else { + c = b - c; + Zhb(e, zhb(d, b, eE(c))); + e.a += "."; + Zhb(e, yhb(d, eE(c))); + } + } else { + Zhb(e, (BFb(b, d.length + 1), d.substr(b))); + for (; c < -mib.length; c += mib.length) { + $hb(e, mib); + } + _hb(e, mib, eE(-c)); + } + return e.a; + } + function BOc(a) { + var b, c, d, e, f, g, h, i, j; + if (a.k != (r3b(), p3b)) { + return false; + } + if (a.j.c.length <= 1) { + return false; + } + f = RD(mQb(a, (yCc(), BBc)), 101); + if (f == (Bod(), wod)) { + return false; + } + e = (wDc(), (!a.q ? (yob(), yob(), wob) : a.q)._b(iBc) ? d = RD(mQb(a, iBc), 203) : d = RD(mQb(Y2b(a), jBc), 203), d); + if (e == uDc) { + return false; + } + if (!(e == tDc || e == sDc)) { + g = Kfb(UD(hFc(a, fCc))); + b = RD(mQb(a, eCc), 140); + !b && (b = new R2b(g, g, g, g)); + j = b3b(a, (qpd(), ppd)); + i = b.d + b.a + (j.gc() - 1) * g; + if (i > a.o.b) { + return false; + } + c = b3b(a, Xod); + h = b.d + b.a + (c.gc() - 1) * g; + if (h > a.o.b) { + return false; + } + } + return true; + } + function VRc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + b.Ug("Orthogonal edge routing", 1); + j = Kfb(UD(mQb(a, (yCc(), cCc)))); + c = Kfb(UD(mQb(a, UBc))); + d = Kfb(UD(mQb(a, XBc))); + m = new TTc(0, c); + q = 0; + g = new Jkb(a.b, 0); + h = null; + k = null; + i = null; + l = null; + do { + k = g.b < g.d.gc() ? (sFb(g.b < g.d.gc()), RD(g.d.Xb(g.c = g.b++), 30)) : null; + l = !k ? null : k.a; + if (h) { + p2b(h, q); + q += h.c.a; + } + p = !h ? q : q + d; + o2 = STc(m, a, i, l, p); + e = !h || ar(i, (dSc(), bSc)); + f = !k || ar(l, (dSc(), bSc)); + if (o2 > 0) { + n = (o2 - 1) * c; + !!h && (n += d); + !!k && (n += d); + n < j && !e && !f && (n = j); + q += n; + } else + !e && !f && (q += j); + h = k; + i = l; + } while (k); + a.f.a = q; + b.Vg(); + } + function tfe(a, b) { + var c, d, e, f, g, h, i, j, k, l; + k = null; + !!a.d && (k = RD(Xjb(a.d, b), 142)); + if (!k) { + f = a.a.vi(); + l = f.i; + if (!a.d || bkb(a.d) != l) { + i = new Tsb(); + !!a.d && Ld(i, a.d); + j = i.f.c + i.i.c; + for (h = j; h < l; ++h) { + d = RD(QHd(f, h), 142); + e = Oee(a.e, d).xe(); + c = RD(e == null ? rtb(i.f, null, d) : Ltb(i.i, e, d), 142); + !!c && c != d && (e == null ? rtb(i.f, null, c) : Ltb(i.i, e, c)); + } + if (i.f.c + i.i.c != l) { + for (g = 0; g < j; ++g) { + d = RD(QHd(f, g), 142); + e = Oee(a.e, d).xe(); + c = RD(e == null ? rtb(i.f, null, d) : Ltb(i.i, e, d), 142); + !!c && c != d && (e == null ? rtb(i.f, null, c) : Ltb(i.i, e, c)); + } + } + a.d = i; + } + k = RD(Xjb(a.d, b), 142); + } + return k; + } + function w0b(a, b, c, d, e, f, g) { + var h, i, j, k, l, m, n; + l = Heb(TD(mQb(b, (yCc(), bBc)))); + m = null; + f == (BEc(), yEc) && d.c.i == c ? m = d.c : f == zEc && d.d.i == c && (m = d.d); + j = g; + if (!j || !l || !!m) { + k = (qpd(), opd); + m ? k = m.j : Dod(RD(mQb(c, BBc), 101)) && (k = f == yEc ? ppd : Xod); + i = t0b(a, b, c, f, k, d); + h = s0b((Y2b(c), d)); + if (f == yEc) { + Y0b(h, RD(Vmb(i.j, 0), 12)); + Z0b(h, e); + } else { + Y0b(h, e); + Z0b(h, RD(Vmb(i.j, 0), 12)); + } + j = new G0b(d, h, i, RD(mQb(i, (Ywc(), Awc)), 12), f, !m); + } else { + Rmb(j.e, d); + n = $wnd.Math.max(Kfb(UD(mQb(j.d, FAc))), Kfb(UD(mQb(d, FAc)))); + pQb(j.d, FAc, n); + } + Rc(a.a, d, new J0b(j.d, b, f)); + return j; + } + function gSd() { + gSd = geb; + var a; + fSd = new MSd(); + _Rd = $C(qJ, Nve, 2, 0, 6, 1); + URd = Rdb(xSd(33, 58), xSd(1, 26)); + VRd = Rdb(xSd(97, 122), xSd(65, 90)); + WRd = xSd(48, 57); + SRd = Rdb(URd, 0); + TRd = Rdb(VRd, WRd); + XRd = Rdb(Rdb(0, xSd(1, 6)), xSd(33, 38)); + YRd = Rdb(Rdb(WRd, xSd(65, 70)), xSd(97, 102)); + cSd = Rdb(SRd, vSd("-_.!~*'()")); + dSd = Rdb(TRd, ySd("-_.!~*'()")); + vSd(MJe); + ySd(MJe); + Rdb(cSd, vSd(";:@&=+$,")); + Rdb(dSd, ySd(";:@&=+$,")); + ZRd = vSd(":/?#"); + $Rd = ySd(":/?#"); + aSd = vSd("/?#"); + bSd = ySd("/?#"); + a = new _sb(); + a.a.zc("jar", a); + a.a.zc("zip", a); + a.a.zc("archive", a); + eSd = (yob(), new Lqb(a)); + } + function t0b(a, b, c, d, e, f) { + var g, h, i, j, k, l; + g = null; + j = d == (BEc(), yEc) ? f.c : f.d; + i = i2b(b); + if (j.i == c) { + g = RD(Wjb(a.b, j), 10); + if (!g) { + g = f2b(j, RD(mQb(c, (yCc(), BBc)), 101), e, p0b(j), null, j.n, j.o, i, b); + pQb(g, (Ywc(), Awc), j); + Zjb(a.b, j, g); + } + } else { + g = f2b((k = new qQb(), l = Kfb(UD(mQb(b, (yCc(), TBc)))) / 2, oQb(k, ABc, l), k), RD(mQb(c, BBc), 101), e, d == yEc ? -1 : 1, null, new pjd(), new rjd(0, 0), i, b); + h = u0b(g, c, d); + pQb(g, (Ywc(), Awc), h); + Zjb(a.b, h, g); + } + RD(mQb(b, (Ywc(), kwc)), 21).Fc((ovc(), hvc)); + Dod(RD(mQb(b, (yCc(), BBc)), 101)) ? pQb(b, BBc, (Bod(), yod)) : pQb(b, BBc, (Bod(), zod)); + return g; + } + function Yec(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2; + h = 0; + o2 = 0; + i = Fnb(a.g, a.g.length); + f = a.e; + g = a.j; + d = a.b; + e = a.c; + do { + n = 0; + for (k = new Anb(a.q); k.a < k.c.c.length; ) { + j = RD(ynb(k), 10); + m = Wec(a, j); + c = true; + (a.r == (aEc(), VDc) || a.r == YDc) && (c = Heb(TD(m.b))); + if (RD(m.a, 17).a < 0 && c) { + ++n; + i = Fnb(a.g, a.g.length); + a.e = a.e + RD(m.a, 17).a; + o2 += f - a.e; + f = a.e + RD(m.a, 17).a; + g = a.j; + d = bv(a.b); + e = bv(a.c); + } else { + a.g = Fnb(i, i.length); + a.e = f; + a.b = (Qb(d), d ? new dnb(d) : cv(new Anb(d))); + a.c = (Qb(e), e ? new dnb(e) : cv(new Anb(e))); + a.j = g; + } + } + ++h; + l = n != 0 && Heb(TD(b.Kb(new Ptd(sgb(o2), sgb(h))))); + } while (l); + } + function e8c(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C; + g = a.f; + m = b.f; + h = g == (sad(), nad) || g == pad; + n = m == nad || m == pad; + i = g == oad || g == qad; + o2 = m == oad || m == qad; + j = g == oad || g == nad; + p = m == oad || m == nad; + if (h && n) { + return a.f == pad ? a : b; + } else if (i && o2) { + return a.f == qad ? a : b; + } else if (j && p) { + if (g == oad) { + l = a; + k = b; + } else { + l = b; + k = a; + } + f = (q = c.j + c.f, r = l.e + d.f, s = $wnd.Math.max(q, r), t = s - $wnd.Math.min(c.j, l.e), u = l.d + d.g - c.i, u * t); + e = (v = c.i + c.g, w = k.d + d.g, A = $wnd.Math.max(v, w), B = A - $wnd.Math.min(c.i, k.d), C = k.e + d.f - c.j, B * C); + return f <= e ? a.f == oad ? a : b : a.f == nad ? a : b; + } + return a; + } + function t0c(a, b) { + var c, d, e, f, g, h, i, j, k, l; + pQb(b, (q$c(), g$c), 0); + i = RD(mQb(b, c$c), 40); + if (b.d.b == 0) { + if (i) { + k = Kfb(UD(mQb(i, j$c))) + a.b + u0c(a, i, b); + pQb(b, j$c, k); + } else { + pQb(b, j$c, 0); + } + } else { + for (d = (f = Sub(new dXc(b).a.d, 0), new gXc(f)); dvb(d.a); ) { + c = RD(evb(d.a), 65).c; + t0c(a, c); + } + h = RD(Hr((g = Sub(new dXc(b).a.d, 0), new gXc(g))), 40); + l = RD(Gr((e = Sub(new dXc(b).a.d, 0), new gXc(e))), 40); + j = (Kfb(UD(mQb(l, j$c))) + Kfb(UD(mQb(h, j$c)))) / 2; + if (i) { + k = Kfb(UD(mQb(i, j$c))) + a.b + u0c(a, i, b); + pQb(b, j$c, k); + pQb(b, g$c, Kfb(UD(mQb(b, j$c))) - j); + s0c(a, b); + } else { + pQb(b, j$c, j); + } + } + } + function nJb(a) { + var b, c, d, e, f, g, h, i, j, k, l; + k = a.e.a.c.length; + for (g = new Anb(a.e.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 125); + f.j = false; + } + a.i = $C(kE, Pwe, 28, k, 15, 1); + a.g = $C(kE, Pwe, 28, k, 15, 1); + a.n = new bnb(); + e = 0; + l = new bnb(); + for (i = new Anb(a.e.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 125); + h.d = e++; + h.b.a.c.length == 0 && Rmb(a.n, h); + Tmb(l, h.g); + } + b = 0; + for (d = new Anb(l); d.a < d.c.c.length; ) { + c = RD(ynb(d), 218); + c.c = b++; + c.f = false; + } + j = l.c.length; + if (a.b == null || a.b.length < j) { + a.b = $C(iE, vxe, 28, j, 15, 1); + a.c = $C(xdb, Hye, 28, j, 16, 1); + } else { + Nnb(a.c); + } + a.d = l; + a.p = new Jub(Sv(a.d.c.length)); + a.j = 1; + } + function uWb(a, b) { + var c, d, e, f, g, h, i, j, k; + if (b.e.c.length <= 1) { + return; + } + a.f = b; + a.d = RD(mQb(a.f, (dWb(), UVb)), 391); + a.g = RD(mQb(a.f, YVb), 17).a; + a.e = Kfb(UD(mQb(a.f, VVb))); + a.c = Kfb(UD(mQb(a.f, TVb))); + At(a.b); + for (e = new Anb(a.f.c); e.a < e.c.c.length; ) { + d = RD(ynb(e), 290); + zt(a.b, d.c, d, null); + zt(a.b, d.d, d, null); + } + h = a.f.e.c.length; + a.a = YC(iE, [Nve, vxe], [109, 28], 15, [h, h], 2); + for (j = new Anb(a.f.e); j.a < j.c.c.length; ) { + i = RD(ynb(j), 153); + qWb(a, i, a.a[i.a]); + } + a.i = YC(iE, [Nve, vxe], [109, 28], 15, [h, h], 2); + for (f = 0; f < h; ++f) { + for (g = 0; g < h; ++g) { + c = a.a[f][g]; + k = 1 / (c * c); + a.i[f][g] = k; + } + } + } + function OWb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n; + h = b.ah(); + h || b.Ug(Pze, 1); + c = RD(mQb(a, (Ywc(), Kwc)), 15); + g = 1 / c.gc(); + if (b._g()) { + b.bh("ELK Layered uses the following " + c.gc() + " modules:"); + n = 0; + for (m = c.Kc(); m.Ob(); ) { + k = RD(m.Pb(), 47); + d = (n < 10 ? "0" : "") + n++; + b.bh(" Slot " + d + ": " + nfb(rb(k))); + } + } + for (l = c.Kc(); l.Ob(); ) { + k = RD(l.Pb(), 47); + if (b.$g()) { + return; + } + k.Kf(a, b.eh(g)); + } + for (f = new Anb(a.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 30); + Tmb(a.a, e.a); + e.a.c.length = 0; + } + for (j = new Anb(a.a); j.a < j.c.c.length; ) { + i = RD(ynb(j), 10); + g3b(i, null); + } + a.b.c.length = 0; + h || b.Vg(); + } + function y9b(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n; + j = new bnb(); + if (!nQb(a, (Ywc(), fwc))) { + return j; + } + for (d = RD(mQb(a, fwc), 15).Kc(); d.Ob(); ) { + b = RD(d.Pb(), 10); + x9b(b, a); + ZEb(j.c, b); + } + for (f = new Anb(a.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 30); + for (h = new Anb(e.a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 10); + if (g.k != (r3b(), m3b)) { + continue; + } + i = RD(mQb(g, gwc), 10); + !!i && (k = new R3b(), P3b(k, g), l = RD(mQb(g, hwc), 64), Q3b(k, l), m = RD(Vmb(i.j, 0), 12), n = new a1b(), Y0b(n, k), Z0b(n, m), void 0); + } + } + for (c = new Anb(j); c.a < c.c.c.length; ) { + b = RD(ynb(c), 10); + g3b(b, RD(Vmb(a.b, a.b.c.length - 1), 30)); + } + return j; + } + function U8c(a, b, c) { + var d, e, f, g, h, i, j, k, l; + l = new bnb(); + k = new Had(0, c); + f = 0; + Cad(k, new V9c(0, 0, k, c)); + e = 0; + for (j = new dMd(a); j.e != j.i.gc(); ) { + i = RD(bMd(j), 27); + d = RD(Vmb(k.a, k.a.c.length - 1), 172); + h = e + i.g + (RD(Vmb(k.a, 0), 172).b.c.length == 0 ? 0 : c); + if (h > b || Heb(TD(Gxd(i, (X7c(), D7c))))) { + e = 0; + f += k.b + c; + ZEb(l.c, k); + k = new Had(f, c); + d = new V9c(0, k.f, k, c); + Cad(k, d); + e = 0; + } + if (d.b.c.length == 0 || !Heb(TD(Gxd(vCd(i), (X7c(), L7c)))) && (i.f >= d.o && i.f <= d.f || d.a * 0.5 <= i.f && d.a * 1.5 >= i.f)) { + K9c(d, i); + } else { + g = new V9c(d.s + d.r + c, k.f, k, c); + Cad(k, g); + K9c(g, i); + } + e = i.i + i.g; + } + ZEb(l.c, k); + return l; + } + function ste(a) { + var b, c, d, e; + if (a.b == null || a.b.length <= 2) + return; + if (a.a) + return; + b = 0; + e = 0; + while (e < a.b.length) { + if (b != e) { + a.b[b] = a.b[e++]; + a.b[b + 1] = a.b[e++]; + } else + e += 2; + c = a.b[b + 1]; + while (e < a.b.length) { + if (c + 1 < a.b[e]) + break; + if (c + 1 == a.b[e]) { + a.b[b + 1] = a.b[e + 1]; + c = a.b[b + 1]; + e += 2; + } else if (c >= a.b[e + 1]) { + e += 2; + } else if (c < a.b[e + 1]) { + a.b[b + 1] = a.b[e + 1]; + c = a.b[b + 1]; + e += 2; + } else { + throw Adb(new yz("Token#compactRanges(): Internel Error: [" + a.b[b] + "," + a.b[b + 1] + "] [" + a.b[e] + "," + a.b[e + 1] + "]")); + } + } + b += 2; + } + if (b != a.b.length) { + d = $C(kE, Pwe, 28, b, 15, 1); + hib(a.b, 0, d, 0, b); + a.b = d; + } + a.a = true; + } + function x0b(a, b) { + var c, d, e, f, g, h, i; + for (g = Ec(a.a).Kc(); g.Ob(); ) { + f = RD(g.Pb(), 18); + if (f.b.c.length > 0) { + d = new dnb(RD(Qc(a.a, f), 21)); + yob(); + _mb(d, new M0b(b)); + e = new Jkb(f.b, 0); + while (e.b < e.d.gc()) { + c = (sFb(e.b < e.d.gc()), RD(e.d.Xb(e.c = e.b++), 72)); + h = -1; + switch (RD(mQb(c, (yCc(), wAc)), 278).g) { + case 1: + h = d.c.length - 1; + break; + case 0: + h = v0b(d); + break; + case 2: + h = 0; + } + if (h != -1) { + i = (tFb(h, d.c.length), RD(d.c[h], 249)); + Rmb(i.b.b, c); + RD(mQb(Y2b(i.b.c.i), (Ywc(), kwc)), 21).Fc((ovc(), gvc)); + RD(mQb(Y2b(i.b.c.i), kwc), 21).Fc(evc); + Ckb(e); + pQb(c, Dwc, f); + } + } + } + Y0b(f, null); + Z0b(f, null); + } + } + function wOb(a, b) { + var c, d, e, f; + c = new BOb(); + d = RD(zDb(GDb(new SDb(null, new Swb(a.f, 16)), c), sBb(new _Bb(), new bCb(), new yCb(), new ACb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), wBb), vBb]))), 21); + e = d.gc(); + e = e == 2 ? 1 : 0; + e == 1 && Gdb(Mdb(RD(zDb(CDb(d.Lc(), new DOb()), PBb(Hgb(0), new uCb())), 168).a, 2), 0) && (e = 0); + d = RD(zDb(GDb(new SDb(null, new Swb(b.f, 16)), c), sBb(new _Bb(), new bCb(), new yCb(), new ACb(), cD(WC(QL, 1), jwe, 108, 0, [wBb, vBb]))), 21); + f = d.gc(); + f = f == 2 ? 1 : 0; + f == 1 && Gdb(Mdb(RD(zDb(CDb(d.Lc(), new FOb()), PBb(Hgb(0), new uCb())), 168).a, 2), 0) && (f = 0); + if (e < f) { + return -1; + } + if (e == f) { + return 0; + } + return 1; + } + function W4b(a) { + var b, c, d, e, f, g, h, i, j, k, l, m; + b = MCd(a); + f = Heb(TD(Gxd(b, (yCc(), NAc)))); + k = 0; + e = 0; + for (j = new dMd((!a.e && (a.e = new Yie(G4, a, 7, 4)), a.e)); j.e != j.i.gc(); ) { + i = RD(bMd(j), 74); + h = ozd(i); + g = h && f && Heb(TD(Gxd(i, OAc))); + m = AGd(RD(QHd((!i.c && (i.c = new Yie(E4, i, 5, 8)), i.c), 0), 84)); + h && g ? ++e : h && !g ? ++k : vCd(m) == b || m == b ? ++e : ++k; + } + for (d = new dMd((!a.d && (a.d = new Yie(G4, a, 8, 5)), a.d)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 74); + h = ozd(c); + g = h && f && Heb(TD(Gxd(c, OAc))); + l = AGd(RD(QHd((!c.b && (c.b = new Yie(E4, c, 4, 7)), c.b), 0), 84)); + h && g ? ++k : h && !g ? ++e : vCd(l) == b || l == b ? ++k : ++e; + } + return k - e; + } + function Jec(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n; + b.Ug("Edge splitting", 1); + if (a.b.c.length <= 2) { + b.Vg(); + return; + } + f = new Jkb(a.b, 0); + g = (sFb(f.b < f.d.gc()), RD(f.d.Xb(f.c = f.b++), 30)); + while (f.b < f.d.gc()) { + e = g; + g = (sFb(f.b < f.d.gc()), RD(f.d.Xb(f.c = f.b++), 30)); + for (i = new Anb(e.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + for (k = new Anb(h.j); k.a < k.c.c.length; ) { + j = RD(ynb(k), 12); + for (d = new Anb(j.g); d.a < d.c.c.length; ) { + c = RD(ynb(d), 18); + m = c.d; + l = m.i.c; + l != e && l != g && Oec(c, (n = new j3b(a), h3b(n, (r3b(), o3b)), pQb(n, (Ywc(), Awc), c), pQb(n, (yCc(), BBc), (Bod(), wod)), g3b(n, g), n)); + } + } + } + } + b.Vg(); + } + function MLc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m; + k = new bnb(); + m = new _sb(); + g = b.b; + for (e = 0; e < g.c.length; e++) { + j = (tFb(e, g.c.length), RD(g.c[e], 30)).a; + k.c.length = 0; + for (f = 0; f < j.c.length; f++) { + h = a.a[e][f]; + h.p = f; + h.k == (r3b(), q3b) && (ZEb(k.c, h), true); + $mb(RD(Vmb(b.b, e), 30).a, f, h); + h.j.c.length = 0; + Tmb(h.j, RD(RD(Vmb(a.b, e), 15).Xb(f), 16)); + Cod(RD(mQb(h, (yCc(), BBc)), 101)) || pQb(h, BBc, (Bod(), vod)); + } + for (d = new Anb(k); d.a < d.c.c.length; ) { + c = RD(ynb(d), 10); + l = KLc(c); + m.a.zc(l, m); + m.a.zc(c, m); + } + } + for (i = m.a.ec().Kc(); i.Ob(); ) { + h = RD(i.Pb(), 10); + yob(); + _mb(h.j, (sgc(), mgc)); + h.i = true; + V2b(h); + } + } + function zib(a) { + var b, c, d, e, f; + if (a.g != null) { + return a.g; + } + if (a.a < 32) { + a.g = zjb(Hdb(a.f), eE(a.e)); + return a.g; + } + e = Ajb((!a.c && (a.c = ojb(Hdb(a.f))), a.c), 0); + if (a.e == 0) { + return e; + } + b = (!a.c && (a.c = ojb(Hdb(a.f))), a.c).e < 0 ? 2 : 1; + c = e.length; + d = -a.e + c - b; + f = new bib(); + f.a += "" + e; + if (a.e > 0 && d >= -6) { + if (d >= 0) { + aib(f, c - eE(a.e), String.fromCharCode(46)); + } else { + peb(f, b - 1, b - 1, "0."); + aib(f, b + 1, Ihb(mib, 0, -eE(d) - 1)); + } + } else { + if (c - b >= 1) { + aib(f, b, String.fromCharCode(46)); + ++c; + } + aib(f, c, String.fromCharCode(69)); + d > 0 && aib(f, ++c, String.fromCharCode(43)); + aib(f, ++c, "" + Zdb(Hdb(d))); + } + a.g = f.a; + return a.g; + } + function KNc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A; + d = Kfb(UD(mQb(b, (yCc(), hBc)))); + v = RD(mQb(b, gCc), 17).a; + m = 4; + e = 3; + w = 20 / v; + n = false; + i = 0; + g = lve; + do { + f = i != 1; + l = i != 0; + A = 0; + for (q = a.a, s = 0, u = q.length; s < u; ++s) { + o2 = q[s]; + o2.f = null; + LNc(a, o2, f, l, d); + A += $wnd.Math.abs(o2.a); + } + do { + h = PNc(a, b); + } while (h); + for (p = a.a, r = 0, t = p.length; r < t; ++r) { + o2 = p[r]; + c = XNc(o2).a; + if (c != 0) { + for (k = new Anb(o2.e); k.a < k.c.c.length; ) { + j = RD(ynb(k), 10); + j.n.b += c; + } + } + } + if (i == 0 || i == 1) { + --m; + if (m <= 0 && (A < g || -m > v)) { + i = 2; + g = lve; + } else if (i == 0) { + i = 1; + g = A; + } else { + i = 0; + g = A; + } + } else { + n = A >= g || g - A < w; + g = A; + n && --e; + } + } while (!(n && e <= 0)); + } + function LFb(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2; + o2 = new Tsb(); + for (f = a.a.ec().Kc(); f.Ob(); ) { + d = RD(f.Pb(), 177); + Zjb(o2, d, c.af(d)); + } + g = (Qb(a), a ? new dnb(a) : cv(a.a.ec().Kc())); + _mb(g, new NFb(o2)); + h = Xx(g); + i = new $Fb(b); + n = new Tsb(); + rtb(n.f, b, i); + while (h.a.gc() != 0) { + j = null; + k = null; + l = null; + for (e = h.a.ec().Kc(); e.Ob(); ) { + d = RD(e.Pb(), 177); + if (Kfb(UD(Wd(qtb(o2.f, d)))) <= oxe) { + if (Ujb(n, d.a) && !Ujb(n, d.b)) { + k = d.b; + l = d.a; + j = d; + break; + } + if (Ujb(n, d.b)) { + if (!Ujb(n, d.a)) { + k = d.a; + l = d.b; + j = d; + break; + } + } + } + } + if (!j) { + break; + } + m = new $Fb(k); + Rmb(RD(Wd(qtb(n.f, l)), 225).a, m); + rtb(n.f, k, m); + h.a.Bc(j) != null; + } + return i; + } + function MFc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n; + c.Ug("Depth-first cycle removal", 1); + l = b.a; + k = l.c.length; + a.c = new bnb(); + a.d = $C(xdb, Hye, 28, k, 16, 1); + a.a = $C(xdb, Hye, 28, k, 16, 1); + a.b = new bnb(); + g = 0; + for (j = new Anb(l); j.a < j.c.c.length; ) { + i = RD(ynb(j), 10); + i.p = g; + gr(Z2b(i)) && Rmb(a.c, i); + ++g; + } + for (n = new Anb(a.c); n.a < n.c.c.length; ) { + m = RD(ynb(n), 10); + LFc(a, m); + } + for (f = 0; f < k; f++) { + if (!a.d[f]) { + h = (tFb(f, l.c.length), RD(l.c[f], 10)); + LFc(a, h); + } + } + for (e = new Anb(a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 18); + X0b(d, true); + pQb(b, (Ywc(), awc), (Geb(), true)); + } + a.c = null; + a.d = null; + a.a = null; + a.b = null; + c.Vg(); + } + function Kid(a, b) { + tid(); + var c, d, e, f, g, h; + f = b.c - (a.c + a.b); + e = a.c - (b.c + b.b); + g = a.d - (b.d + b.a); + c = b.d - (a.d + a.a); + d = $wnd.Math.max(e, f); + h = $wnd.Math.max(g, c); + Zy(); + bz(vEe); + if (($wnd.Math.abs(d) <= vEe || d == 0 || isNaN(d) && isNaN(0) ? 0 : d < 0 ? -1 : d > 0 ? 1 : cz(isNaN(d), isNaN(0))) >= 0 ^ (bz(vEe), ($wnd.Math.abs(h) <= vEe || h == 0 || isNaN(h) && isNaN(0) ? 0 : h < 0 ? -1 : h > 0 ? 1 : cz(isNaN(h), isNaN(0))) >= 0)) { + return $wnd.Math.max(h, d); + } + bz(vEe); + if (($wnd.Math.abs(d) <= vEe || d == 0 || isNaN(d) && isNaN(0) ? 0 : d < 0 ? -1 : d > 0 ? 1 : cz(isNaN(d), isNaN(0))) > 0) { + return $wnd.Math.sqrt(h * h + d * d); + } + return -$wnd.Math.sqrt(h * h + d * d); + } + function hue(a, b) { + var c, d, e, f, g, h; + if (!b) + return; + !a.a && (a.a = new gyb()); + if (a.e == 2) { + dyb(a.a, b); + return; + } + if (b.e == 1) { + for (e = 0; e < b.Pm(); e++) + hue(a, b.Lm(e)); + return; + } + h = a.a.a.c.length; + if (h == 0) { + dyb(a.a, b); + return; + } + g = RD(eyb(a.a, h - 1), 122); + if (!((g.e == 0 || g.e == 10) && (b.e == 0 || b.e == 10))) { + dyb(a.a, b); + return; + } + f = b.e == 0 ? 2 : b.Mm().length; + if (g.e == 0) { + c = new Rhb(); + d = g.Km(); + d >= txe ? Nhb(c, qse(d)) : Jhb(c, d & Bwe); + g = new eue(10, null, 0); + fyb(a.a, g, h - 1); + } else { + c = (g.Mm().length + f, new Rhb()); + Nhb(c, g.Mm()); + } + if (b.e == 0) { + d = b.Km(); + d >= txe ? Nhb(c, qse(d)) : Jhb(c, d & Bwe); + } else { + Nhb(c, b.Mm()); + } + RD(g, 530).b = c.a; + } + function Qsc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + if (c.dc()) { + return; + } + h = 0; + m = 0; + d = c.Kc(); + o2 = RD(d.Pb(), 17).a; + while (h < b.f) { + if (h == o2) { + m = 0; + d.Ob() ? o2 = RD(d.Pb(), 17).a : o2 = b.f + 1; + } + if (h != m) { + q = RD(Vmb(a.b, h), 30); + n = RD(Vmb(a.b, m), 30); + p = bv(q.a); + for (l = new Anb(p); l.a < l.c.c.length; ) { + k = RD(ynb(l), 10); + f3b(k, n.a.c.length, n); + if (m == 0) { + g = bv(Z2b(k)); + for (f = new Anb(g); f.a < f.c.c.length; ) { + e = RD(ynb(f), 18); + X0b(e, true); + pQb(a, (Ywc(), awc), (Geb(), true)); + osc(a, e, 1); + } + } + } + } + ++m; + ++h; + } + i = new Jkb(a.b, 0); + while (i.b < i.d.gc()) { + j = (sFb(i.b < i.d.gc()), RD(i.d.Xb(i.c = i.b++), 30)); + j.a.c.length == 0 && Ckb(i); + } + } + function Xjc(a, b, c) { + var d, e, f; + e = RD(mQb(b, (yCc(), Xzc)), 282); + if (e == ($uc(), Yuc)) { + return; + } + c.Ug("Horizontal Compaction", 1); + a.a = b; + f = new Ckc(); + d = new VGb((f.d = b, f.c = RD(mQb(f.d, yAc), 223), tkc(f), Akc(f), zkc(f), f.a)); + TGb(d, a.b); + switch (RD(mQb(b, Wzc), 431).g) { + case 1: + RGb(d, new Pic(a.a)); + break; + default: + RGb(d, (FGb(), DGb)); + } + switch (e.g) { + case 1: + KGb(d); + break; + case 2: + KGb(JGb(d, (Cmd(), zmd))); + break; + case 3: + KGb(SGb(JGb(KGb(d), (Cmd(), zmd)), new fkc())); + break; + case 4: + KGb(SGb(JGb(KGb(d), (Cmd(), zmd)), new hkc(f))); + break; + case 5: + KGb(QGb(d, Vjc)); + } + JGb(d, (Cmd(), ymd)); + d.e = true; + qkc(f); + c.Vg(); + } + function bqc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + g = b.b; + k = g.o; + i = g.d; + d = Kfb(UD(k2b(g, (yCc(), TBc)))); + e = Kfb(UD(k2b(g, VBc))); + j = Kfb(UD(k2b(g, dCc))); + h = new T2b(); + D2b(h, i.d, i.c, i.a, i.b); + m = Zpc(b, d, e, j); + for (r = new Anb(b.d); r.a < r.c.c.length; ) { + q = RD(ynb(r), 105); + for (o2 = q.f.a.ec().Kc(); o2.Ob(); ) { + n = RD(o2.Pb(), 340); + f = n.a; + l = Xpc(n); + c = (s = new Ejd(), Vpc(n, n.c, m, s), Upc(n, l, m, s), Vpc(n, n.d, m, s), s); + c = a.ng(n, l, c); + Xub(f.a); + ye(f.a, c); + FDb(new SDb(null, new Swb(c, 16)), new fqc(k, h)); + } + p = q.i; + if (p) { + aqc(q, p, m, e); + t = new sjd(p.g); + cqc(k, h, t); + $id(t, p.j); + cqc(k, h, t); + } + } + D2b(i, h.d, h.c, h.a, h.b); + } + function f8c(a, b, c, d, e, f, g, h) { + var i, j, k, l; + i = dv(cD(WC(y1, 1), rve, 238, 0, [b, c, d, e])); + l = null; + switch (a.b.g) { + case 1: + l = dv(cD(WC(h1, 1), rve, 535, 0, [new r8c(), new h8c(), new j8c()])); + break; + case 0: + l = dv(cD(WC(h1, 1), rve, 535, 0, [new j8c(), new h8c(), new r8c()])); + break; + case 2: + l = dv(cD(WC(h1, 1), rve, 535, 0, [new h8c(), new r8c(), new j8c()])); + } + for (k = new Anb(l); k.a < k.c.c.length; ) { + j = RD(ynb(k), 535); + i.c.length > 1 && (i = j.Hg(i, a.a, h)); + } + if (i.c.length == 1) { + return RD(Vmb(i, i.c.length - 1), 238); + } + if (i.c.length == 2) { + return e8c((tFb(0, i.c.length), RD(i.c[0], 238)), (tFb(1, i.c.length), RD(i.c[1], 238)), g, f); + } + return null; + } + function CZc(a, b, c) { + var d, e, f, g, h, i, j; + c.Ug("Find roots", 1); + a.a.c.length = 0; + for (e = Sub(b.b, 0); e.b != e.d.c; ) { + d = RD(evb(e), 40); + if (d.b.b == 0) { + pQb(d, (q$c(), n$c), (Geb(), true)); + Rmb(a.a, d); + } + } + switch (a.a.c.length) { + case 0: + f = new bXc(0, b, "DUMMY_ROOT"); + pQb(f, (q$c(), n$c), (Geb(), true)); + pQb(f, WZc, true); + Mub(b.b, f); + break; + case 1: + break; + default: + g = new bXc(0, b, IEe); + for (i = new Anb(a.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 40); + j = new WWc(g, h); + pQb(j, (q$c(), WZc), (Geb(), true)); + Mub(g.a.a, j); + Mub(g.d, j); + Mub(h.b, j); + pQb(h, n$c, false); + } + pQb(g, (q$c(), n$c), (Geb(), true)); + pQb(g, WZc, true); + Mub(b.b, g); + } + c.Vg(); + } + function AQb(a) { + var b, c, d, e, f, g; + Umb(a.a, new GQb()); + for (c = new Anb(a.a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 225); + d = ojd(ajd(RD(a.b, 68).c), RD(b.b, 68).c); + if (wQb) { + g = RD(a.b, 68).b; + f = RD(b.b, 68).b; + if ($wnd.Math.abs(d.a) >= $wnd.Math.abs(d.b)) { + d.b = 0; + f.d + f.a > g.d && f.d < g.d + g.a && kjd(d, $wnd.Math.max(g.c - (f.c + f.b), f.c - (g.c + g.b))); + } else { + d.a = 0; + f.c + f.b > g.c && f.c < g.c + g.b && kjd(d, $wnd.Math.max(g.d - (f.d + f.a), f.d - (g.d + g.a))); + } + } else { + kjd(d, SQb(RD(a.b, 68), RD(b.b, 68))); + } + e = $wnd.Math.sqrt(d.a * d.a + d.b * d.b); + e = CQb(xQb, b, e, d); + kjd(d, e); + RQb(RD(b.b, 68), d); + Umb(b.a, new IQb(d)); + RD(xQb.b, 68); + BQb(xQb, yQb, b); + } + } + function tOc(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2; + a.f = new BIb(); + j = 0; + e = 0; + for (g = new Anb(a.e.b); g.a < g.c.c.length; ) { + f = RD(ynb(g), 30); + for (i = new Anb(f.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + h.p = j++; + for (d = new is(Mr(a3b(h).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 18); + c.p = e++; + } + b = BOc(h); + for (m = new Anb(h.j); m.a < m.c.c.length; ) { + l = RD(ynb(m), 12); + if (b) { + o2 = l.a.b; + if (o2 != $wnd.Math.floor(o2)) { + k = o2 - Xdb(Hdb($wnd.Math.round(o2))); + l.a.b -= k; + } + } + n = l.n.b + l.a.b; + if (n != $wnd.Math.floor(n)) { + k = n - Xdb(Hdb($wnd.Math.round(n))); + l.n.b -= k; + } + } + } + } + a.g = j; + a.b = e; + a.i = $C(XY, rve, 412, j, 0, 1); + a.c = $C(WY, rve, 655, e, 0, 1); + a.d.a.$b(); + } + function sLd(a) { + var b, c, d, e, f, g, h, i, j; + if (a.Pj()) { + i = a.Qj(); + if (a.i > 0) { + b = new zNd(a.i, a.g); + c = a.i; + f = c < 100 ? null : new gLd(c); + if (a.Tj()) { + for (d = 0; d < a.i; ++d) { + g = a.g[d]; + f = a.Vj(g, f); + } + } + OHd(a); + e = c == 1 ? a.Ij(4, QHd(b, 0), null, 0, i) : a.Ij(6, b, null, -1, i); + if (a.Mj()) { + for (d = new yMd(b); d.e != d.i.gc(); ) { + f = a.Oj(xMd(d), f); + } + if (!f) { + a.Jj(e); + } else { + f.nj(e); + f.oj(); + } + } else { + if (!f) { + a.Jj(e); + } else { + f.nj(e); + f.oj(); + } + } + } else { + OHd(a); + a.Jj(a.Ij(6, (yob(), vob), null, -1, i)); + } + } else if (a.Mj()) { + if (a.i > 0) { + h = a.g; + j = a.i; + OHd(a); + f = j < 100 ? null : new gLd(j); + for (d = 0; d < j; ++d) { + g = h[d]; + f = a.Oj(g, f); + } + !!f && f.oj(); + } else { + OHd(a); + } + } else { + OHd(a); + } + } + function xVc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + rVc(this); + c == (dVc(), bVc) ? Ysb(this.r, a) : Ysb(this.w, a); + k = oxe; + j = pxe; + for (g = b.a.ec().Kc(); g.Ob(); ) { + e = RD(g.Pb(), 42); + h = RD(e.a, 465); + d = RD(e.b, 18); + i = d.c; + i == a && (i = d.d); + h == bVc ? Ysb(this.r, i) : Ysb(this.w, i); + m = (qpd(), hpd).Hc(i.j) ? Kfb(UD(mQb(i, (Ywc(), Swc)))) : xjd(cD(WC(l3, 1), Nve, 8, 0, [i.i.n, i.n, i.a])).b; + k = $wnd.Math.min(k, m); + j = $wnd.Math.max(j, m); + } + l = (qpd(), hpd).Hc(a.j) ? Kfb(UD(mQb(a, (Ywc(), Swc)))) : xjd(cD(WC(l3, 1), Nve, 8, 0, [a.i.n, a.n, a.a])).b; + vVc(this, l, k, j); + for (f = b.a.ec().Kc(); f.Ob(); ) { + e = RD(f.Pb(), 42); + sVc(this, RD(e.b, 18)); + } + this.o = false; + } + function wD(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G; + c = a.l & 8191; + d = a.l >> 13 | (a.m & 15) << 9; + e = a.m >> 4 & 8191; + f = a.m >> 17 | (a.h & 255) << 5; + g = (a.h & 1048320) >> 8; + h = b.l & 8191; + i = b.l >> 13 | (b.m & 15) << 9; + j = b.m >> 4 & 8191; + k = b.m >> 17 | (b.h & 255) << 5; + l = (b.h & 1048320) >> 8; + B = c * h; + C = d * h; + D = e * h; + F = f * h; + G = g * h; + if (i != 0) { + C += c * i; + D += d * i; + F += e * i; + G += f * i; + } + if (j != 0) { + D += c * j; + F += d * j; + G += e * j; + } + if (k != 0) { + F += c * k; + G += d * k; + } + l != 0 && (G += c * l); + n = B & dxe; + o2 = (C & 511) << 13; + m = n + o2; + q = B >> 22; + r = C >> 9; + s = (D & 262143) << 4; + t = (F & 31) << 17; + p = q + r + s + t; + v = D >> 18; + w = F >> 5; + A = (G & 4095) << 8; + u = v + w + A; + p += m >> 22; + m &= dxe; + u += p >> 22; + p &= dxe; + u &= exe; + return hD(m, p, u); + } + function Fac(a) { + var b, c, d, e, f, g, h; + h = RD(Vmb(a.j, 0), 12); + if (h.g.c.length != 0 && h.e.c.length != 0) { + throw Adb(new dgb("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.")); + } + if (h.g.c.length != 0) { + f = oxe; + for (c = new Anb(h.g); c.a < c.c.c.length; ) { + b = RD(ynb(c), 18); + g = b.d.i; + d = RD(mQb(g, (yCc(), _Ac)), 140); + f = $wnd.Math.min(f, g.n.a - d.b); + } + return new cc(Qb(f)); + } + if (h.e.c.length != 0) { + e = pxe; + for (c = new Anb(h.e); c.a < c.c.c.length; ) { + b = RD(ynb(c), 18); + g = b.c.i; + d = RD(mQb(g, (yCc(), _Ac)), 140); + e = $wnd.Math.max(e, g.n.a + g.o.a + d.c); + } + return new cc(Qb(e)); + } + return wb(), wb(), vb; + } + function cZd(a, b) { + var c, d, e, f, g, h, i; + if (a.ol()) { + if (a.i > 4) { + if (a.fk(b)) { + if (a.al()) { + e = RD(b, 54); + d = e.Eh(); + i = d == a.e && (a.ml() ? e.yh(e.Fh(), a.il()) == a.jl() : -1 - e.Fh() == a.Lj()); + if (a.nl() && !i && !d && !!e.Jh()) { + for (f = 0; f < a.i; ++f) { + c = a.pl(RD(a.g[f], 58)); + if (dE(c) === dE(b)) { + return true; + } + } + } + return i; + } else if (a.ml() && !a.ll()) { + g = RD(b, 58).Mh(Z5d(RD(a.Lk(), 19))); + if (dE(g) === dE(a.e)) { + return true; + } else if (g == null || !RD(g, 58).Vh()) { + return false; + } + } + } else { + return false; + } + } + h = PHd(a, b); + if (a.nl() && !h) { + for (f = 0; f < a.i; ++f) { + e = a.pl(RD(a.g[f], 58)); + if (dE(e) === dE(b)) { + return true; + } + } + } + return h; + } else { + return PHd(a, b); + } + } + function bGc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + c.Ug("Interactive cycle breaking", 1); + l = new bnb(); + for (n = new Anb(b.a); n.a < n.c.c.length; ) { + m = RD(ynb(n), 10); + m.p = 1; + o2 = _2b(m).a; + for (k = c3b(m, (BEc(), zEc)).Kc(); k.Ob(); ) { + j = RD(k.Pb(), 12); + for (f = new Anb(j.g); f.a < f.c.c.length; ) { + d = RD(ynb(f), 18); + p = d.d.i; + if (p != m) { + q = _2b(p).a; + q < o2 && (ZEb(l.c, d), true); + } + } + } + } + for (g = new Anb(l); g.a < g.c.c.length; ) { + d = RD(ynb(g), 18); + X0b(d, true); + } + l.c.length = 0; + for (i = new Anb(b.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + h.p > 0 && aGc(a, h, l); + } + for (e = new Anb(l); e.a < e.c.c.length; ) { + d = RD(ynb(e), 18); + X0b(d, true); + } + l.c.length = 0; + c.Vg(); + } + function mMc(a, b) { + var c, d, e, f, g, h, i, j, k; + c = 0; + k = new bnb(); + for (h = new Anb(b); h.a < h.c.c.length; ) { + g = RD(ynb(h), 12); + $Lc(a.b, a.d[g.p]); + k.c.length = 0; + switch (g.i.k.g) { + case 0: + d = RD(mQb(g, (Ywc(), Iwc)), 10); + Umb(d.j, new XMc(k)); + break; + case 1: + Mvb(DDb(CDb(new SDb(null, new Swb(g.i.j, 16)), new ZMc(g))), new aNc(k)); + break; + case 3: + e = RD(mQb(g, (Ywc(), Awc)), 12); + Rmb(k, new Ptd(e, sgb(g.e.c.length + g.g.c.length))); + } + for (j = new Anb(k); j.a < j.c.c.length; ) { + i = RD(ynb(j), 42); + f = AMc(a, RD(i.a, 12)); + if (f > a.d[g.p]) { + c += ZLc(a.b, f) * RD(i.b, 17).a; + hmb(a.a, sgb(f)); + } + } + while (!nmb(a.a)) { + XLc(a.b, RD(smb(a.a), 17).a); + } + } + return c; + } + function x9b(a, b) { + var c, d, e, f, g, h, i, j, k, l; + k = RD(mQb(a, (Ywc(), hwc)), 64); + d = RD(Vmb(a.j, 0), 12); + k == (qpd(), Yod) ? Q3b(d, npd) : k == npd && Q3b(d, Yod); + if (RD(mQb(b, (yCc(), lBc)), 181).Hc((Qpd(), Ppd))) { + i = Kfb(UD(mQb(a, _Bc))); + j = Kfb(UD(mQb(a, aCc))); + g = Kfb(UD(mQb(a, ZBc))); + h = RD(mQb(b, EBc), 21); + if (h.Hc((Pod(), Lod))) { + c = j; + l = a.o.a / 2 - d.n.a; + for (f = new Anb(d.f); f.a < f.c.c.length; ) { + e = RD(ynb(f), 72); + e.n.b = c; + e.n.a = l - e.o.a / 2; + c += e.o.b + g; + } + } else if (h.Hc(Nod)) { + for (f = new Anb(d.f); f.a < f.c.c.length; ) { + e = RD(ynb(f), 72); + e.n.a = i + a.o.a - d.n.a; + } + } + NJb(new PJb((i1b(), new t1b(b, false, false, new _1b()))), new F1b(null, a, false)); + } + } + function ykc(a, b) { + var c, d, e, f, g, h, i, j, k; + if (b.c.length == 0) { + return; + } + yob(); + Ynb(b.c, b.c.length, null); + e = new Anb(b); + d = RD(ynb(e), 154); + while (e.a < e.c.c.length) { + c = RD(ynb(e), 154); + if (rGb(d.e.c, c.e.c) && !(uGb(Mid(d.e).b, c.e.d) || uGb(Mid(c.e).b, d.e.d))) { + d = (Tmb(d.k, c.k), Tmb(d.b, c.b), Tmb(d.c, c.c), ye(d.i, c.i), Tmb(d.d, c.d), Tmb(d.j, c.j), f = $wnd.Math.min(d.e.c, c.e.c), g = $wnd.Math.min(d.e.d, c.e.d), h = $wnd.Math.max(d.e.c + d.e.b, c.e.c + c.e.b), i = h - f, j = $wnd.Math.max(d.e.d + d.e.a, c.e.d + c.e.a), k = j - g, Rid(d.e, f, g, i, k), $Gb(d.f, c.f), !d.a && (d.a = c.a), Tmb(d.g, c.g), Rmb(d.g, c), d); + } else { + Bkc(a, d); + d = c; + } + } + Bkc(a, d); + } + function B0b(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v; + i = new bnb(); + for (f = new Anb(b.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + for (h = new Anb(e.j); h.a < h.c.c.length; ) { + g = RD(ynb(h), 12); + k = null; + for (t = s2b(g.g), u = 0, v = t.length; u < v; ++u) { + s = t[u]; + if (!n2b(s.d.i, c)) { + r = w0b(a, b, c, s, s.c, (BEc(), zEc), k); + r != k && (ZEb(i.c, r), true); + r.c && (k = r); + } + } + j = null; + for (o2 = s2b(g.e), p = 0, q = o2.length; p < q; ++p) { + n = o2[p]; + if (!n2b(n.c.i, c)) { + r = w0b(a, b, c, n, n.d, (BEc(), yEc), j); + r != j && (ZEb(i.c, r), true); + r.c && (j = r); + } + } + } + } + for (m = new Anb(i); m.a < m.c.c.length; ) { + l = RD(ynb(m), 453); + Wmb(b.a, l.a, 0) != -1 || Rmb(b.a, l.a); + l.c && (ZEb(d.c, l), true); + } + } + function hrd(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q; + l = new sjd(RD(Gxd(a, (hkd(), bkd)), 8)); + l.a = $wnd.Math.max(l.a - c.b - c.c, 0); + l.b = $wnd.Math.max(l.b - c.d - c.a, 0); + e = UD(Gxd(a, Xjd)); + (e == null || (uFb(e), e) <= 0) && (e = 1.3); + h = new bnb(); + for (o2 = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); o2.e != o2.i.gc(); ) { + n = RD(bMd(o2), 27); + g = new Ard(n); + ZEb(h.c, g); + } + m = RD(Gxd(a, Yjd), 320); + switch (m.g) { + case 3: + q = erd(h, b, l.a, l.b, (j = d, uFb(e), j)); + break; + case 1: + q = drd(h, b, l.a, l.b, (k = d, uFb(e), k)); + break; + default: + q = frd(h, b, l.a, l.b, (i = d, uFb(e), i)); + } + f = new zrd(q); + p = ird(f, b, c, l.a, l.b, d, (uFb(e), e)); + Esd(a, p.a, p.b, false, true); + } + function m2b(a, b, c, d) { + var e, f, g, h, i, j; + h = a.j; + if (h == (qpd(), opd) && b != (Bod(), zod) && b != (Bod(), Aod)) { + h = c2b(a, c); + Q3b(a, h); + !(!a.q ? (yob(), yob(), wob) : a.q)._b((yCc(), ABc)) && h != opd && (a.n.a != 0 || a.n.b != 0) && pQb(a, ABc, b2b(a, h)); + } + if (b == (Bod(), xod)) { + j = 0; + switch (h.g) { + case 1: + case 3: + f = a.i.o.a; + f > 0 && (j = a.n.a / f); + break; + case 2: + case 4: + e = a.i.o.b; + e > 0 && (j = a.n.b / e); + } + pQb(a, (Ywc(), Jwc), j); + } + i = a.o; + g = a.a; + if (d) { + g.a = d.a; + g.b = d.b; + a.d = true; + } else if (b != zod && b != Aod && h != opd) { + switch (h.g) { + case 1: + g.a = i.a / 2; + break; + case 2: + g.a = i.a; + g.b = i.b / 2; + break; + case 3: + g.a = i.a / 2; + g.b = i.b; + break; + case 4: + g.b = i.b / 2; + } + } else { + g.a = i.a / 2; + g.b = i.b / 2; + } + } + function VJd(a) { + var b, c, d, e, f, g, h, i, j, k; + if (a.Pj()) { + k = a.Ej(); + i = a.Qj(); + if (k > 0) { + b = new $Hd(a.pj()); + c = k; + f = c < 100 ? null : new gLd(c); + aJd(a, c, b.g); + e = c == 1 ? a.Ij(4, QHd(b, 0), null, 0, i) : a.Ij(6, b, null, -1, i); + if (a.Mj()) { + for (d = new dMd(b); d.e != d.i.gc(); ) { + f = a.Oj(bMd(d), f); + } + if (!f) { + a.Jj(e); + } else { + f.nj(e); + f.oj(); + } + } else { + if (!f) { + a.Jj(e); + } else { + f.nj(e); + f.oj(); + } + } + } else { + aJd(a, a.Ej(), a.Fj()); + a.Jj(a.Ij(6, (yob(), vob), null, -1, i)); + } + } else if (a.Mj()) { + k = a.Ej(); + if (k > 0) { + h = a.Fj(); + j = k; + aJd(a, k, h); + f = j < 100 ? null : new gLd(j); + for (d = 0; d < j; ++d) { + g = h[d]; + f = a.Oj(g, f); + } + !!f && f.oj(); + } else { + aJd(a, a.Ej(), a.Fj()); + } + } else { + aJd(a, a.Ej(), a.Fj()); + } + } + function frd(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, o2, p, q; + h = $C(iE, vxe, 28, a.c.length, 15, 1); + m = new pwb(new Qrd()); + iwb(m, a); + j = 0; + p = new bnb(); + while (m.b.c.length != 0) { + g = RD(m.b.c.length == 0 ? null : Vmb(m.b, 0), 163); + if (j > 1 && urd(g) * trd(g) / 2 > h[0]) { + f = 0; + while (f < p.c.length - 1 && urd(g) * trd(g) / 2 > h[f]) { + ++f; + } + o2 = new Rkb(p, 0, f + 1); + l = new zrd(o2); + k = urd(g) / trd(g); + i = ird(l, b, new z3b(), c, d, e, k); + $id(hjd(l.e), i); + zFb(lwb(m, l), Bxe); + n = new Rkb(p, f + 1, p.c.length); + iwb(m, n); + p.c.length = 0; + j = 0; + Pnb(h, h.length, 0); + } else { + q = m.b.c.length == 0 ? null : Vmb(m.b, 0); + q != null && owb(m, 0); + j > 0 && (h[j] = h[j - 1]); + h[j] += urd(g) * trd(g); + ++j; + ZEb(p.c, g); + } + } + return p; + } + function _nc(a, b) { + var c, d, e, f; + c = b.b; + f = new dnb(c.j); + e = 0; + d = c.j; + d.c.length = 0; + Nnc(RD($i(a.b, (qpd(), Yod), (joc(), ioc)), 15), c); + e = Onc(f, e, new Hoc(), d); + Nnc(RD($i(a.b, Yod, hoc), 15), c); + e = Onc(f, e, new Joc(), d); + Nnc(RD($i(a.b, Yod, goc), 15), c); + Nnc(RD($i(a.b, Xod, ioc), 15), c); + Nnc(RD($i(a.b, Xod, hoc), 15), c); + e = Onc(f, e, new Loc(), d); + Nnc(RD($i(a.b, Xod, goc), 15), c); + Nnc(RD($i(a.b, npd, ioc), 15), c); + e = Onc(f, e, new Noc(), d); + Nnc(RD($i(a.b, npd, hoc), 15), c); + e = Onc(f, e, new Poc(), d); + Nnc(RD($i(a.b, npd, goc), 15), c); + Nnc(RD($i(a.b, ppd, ioc), 15), c); + e = Onc(f, e, new toc(), d); + Nnc(RD($i(a.b, ppd, hoc), 15), c); + Nnc(RD($i(a.b, ppd, goc), 15), c); + } + function jJc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n; + for (h = new Anb(b); h.a < h.c.c.length; ) { + f = RD(ynb(h), 239); + f.e = null; + f.c = 0; + } + i = null; + for (g = new Anb(b); g.a < g.c.c.length; ) { + f = RD(ynb(g), 239); + l = f.d[0]; + if (c && l.k != (r3b(), p3b)) { + continue; + } + for (n = RD(mQb(l, (Ywc(), qwc)), 15).Kc(); n.Ob(); ) { + m = RD(n.Pb(), 10); + if (!c || m.k == (r3b(), p3b)) { + (!f.e && (f.e = new bnb()), f.e).Fc(a.b[m.c.p][m.p]); + ++a.b[m.c.p][m.p].c; + } + } + if (!c && l.k == (r3b(), p3b)) { + if (i) { + for (k = RD(Qc(a.d, i), 21).Kc(); k.Ob(); ) { + j = RD(k.Pb(), 10); + for (e = RD(Qc(a.d, l), 21).Kc(); e.Ob(); ) { + d = RD(e.Pb(), 10); + wJc(a.b[j.c.p][j.p]).Fc(a.b[d.c.p][d.p]); + ++a.b[d.c.p][d.p].c; + } + } + } + i = l; + } + } + } + function iGc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + c.Ug("Model order cycle breaking", 1); + a.a = 0; + a.b = 0; + n = new bnb(); + k = b.a.c.length; + for (j = new Anb(b.a); j.a < j.c.c.length; ) { + i = RD(ynb(j), 10); + nQb(i, (Ywc(), zwc)) && (k = $wnd.Math.max(k, RD(mQb(i, zwc), 17).a + 1)); + } + for (p = new Anb(b.a); p.a < p.c.c.length; ) { + o2 = RD(ynb(p), 10); + g = hGc(a, o2, k); + for (m = c3b(o2, (BEc(), zEc)).Kc(); m.Ob(); ) { + l = RD(m.Pb(), 12); + for (f = new Anb(l.g); f.a < f.c.c.length; ) { + d = RD(ynb(f), 18); + q = d.d.i; + h = hGc(a, q, k); + h < g && (ZEb(n.c, d), true); + } + } + } + for (e = new Anb(n); e.a < e.c.c.length; ) { + d = RD(ynb(e), 18); + X0b(d, true); + pQb(b, (Ywc(), awc), (Geb(), true)); + } + n.c.length = 0; + c.Vg(); + } + function qUb(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + g = b.d; + h = c.d; + while (g.a - h.a == 0 && g.b - h.b == 0) { + i = false; + if (ZD(b, 250) && ZD(c, 250) && !i) { + j = RD(b, 250).a; + k = ojd(new sjd($Tb(j)), ZTb(j)); + d = 2; + e = new rjd(k.a / $wnd.Math.sqrt(k.a * k.a + k.b * k.b) * d, -k.b / $wnd.Math.sqrt(k.a * k.a + k.b * k.b) * d); + $id(g, e); + l = RD(c, 250).a; + m = ojd(new sjd($Tb(l)), ZTb(l)); + d = k == m ? -2 : 2; + f = new rjd(m.a / $wnd.Math.sqrt(m.a * m.a + m.b * m.b) * d, -(m.b / $wnd.Math.sqrt(m.a * m.a + m.b * m.b)) * d); + $id(g, f); + i = true; + } else { + g.a += Kwb(a, 26) * Kxe + Kwb(a, 27) * Lxe - 0.5; + g.b += Kwb(a, 26) * Kxe + Kwb(a, 27) * Lxe - 0.5; + h.a += Kwb(a, 26) * Kxe + Kwb(a, 27) * Lxe - 0.5; + h.b += Kwb(a, 26) * Kxe + Kwb(a, 27) * Lxe - 0.5; + } + } + } + function NWb(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, p, q, r; + j = KWb(b); + q = RD(mQb(b, (yCc(), oAc)), 322); + xgb(j, new UWb(q)); + r = RD(mQb(b, gAc), 299); + xgb(j, new WWb(r)); + p = 0; + k = new bnb(); + for (f = new Kmb(j); f.a != f.b; ) { + e = RD(Imb(f), 36); + cXb(a.c, e); + m = RD(mQb(e, (Ywc(), Kwc)), 15); + p += m.gc(); + d = m.Kc(); + Rmb(k, new Ptd(e, d)); + } + c.Ug("Recursive hierarchical layout", p); + n = RD(RD(Vmb(k, k.c.length - 1), 42).b, 51); + while (n.Ob()) { + for (i = new Anb(k); i.a < i.c.c.length; ) { + h = RD(ynb(i), 42); + m = RD(h.b, 51); + g = RD(h.a, 36); + while (m.Ob()) { + l = RD(m.Pb(), 47); + if (ZD(l, 514)) { + if (!g.e) { + l.Kf(g, c.eh(1)); + break; + } else { + break; + } + } else { + l.Kf(g, c.eh(1)); + } + } + } + } + c.Vg(); + } + function Cec(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p; + b.Ug("Layer size calculation", 1); + k = oxe; + j = pxe; + e = false; + for (h = new Anb(a.b); h.a < h.c.c.length; ) { + g = RD(ynb(h), 30); + i = g.c; + i.a = 0; + i.b = 0; + if (g.a.c.length == 0) { + continue; + } + e = true; + for (m = new Anb(g.a); m.a < m.c.c.length; ) { + l = RD(ynb(m), 10); + o2 = l.o; + n = l.d; + i.a = $wnd.Math.max(i.a, o2.a + n.b + n.c); + } + d = RD(Vmb(g.a, 0), 10); + p = d.n.b - d.d.d; + d.k == (r3b(), m3b) && (p -= RD(mQb(a, (yCc(), eCc)), 140).d); + f = RD(Vmb(g.a, g.a.c.length - 1), 10); + c = f.n.b + f.o.b + f.d.a; + f.k == m3b && (c += RD(mQb(a, (yCc(), eCc)), 140).a); + i.b = c - p; + k = $wnd.Math.min(k, p); + j = $wnd.Math.max(j, c); + } + if (!e) { + k = 0; + j = 0; + } + a.f.b = j - k; + a.c.b -= k; + b.Vg(); + } + function p2b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r; + f = 0; + g = 0; + for (j = new Anb(a.a); j.a < j.c.c.length; ) { + h = RD(ynb(j), 10); + f = $wnd.Math.max(f, h.d.b); + g = $wnd.Math.max(g, h.d.c); + } + for (i = new Anb(a.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + c = RD(mQb(h, (yCc(), Rzc)), 255); + switch (c.g) { + case 1: + o2 = 0; + break; + case 2: + o2 = 1; + break; + case 5: + o2 = 0.5; + break; + default: + d = 0; + l = 0; + for (n = new Anb(h.j); n.a < n.c.c.length; ) { + m = RD(ynb(n), 12); + m.e.c.length == 0 || ++d; + m.g.c.length == 0 || ++l; + } + d + l == 0 ? o2 = 0.5 : o2 = l / (d + l); + } + q = a.c; + k = h.o.a; + r = (q.a - k) * o2; + o2 > 0.5 ? r -= g * 2 * (o2 - 0.5) : o2 < 0.5 && (r += f * 2 * (0.5 - o2)); + e = h.d.b; + r < e && (r = e); + p = h.d.c; + r > q.a - p - k && (r = q.a - p - k); + h.n.a = b + r; + } + } + function jec(a) { + var b, c, d, e, f; + d = RD(mQb(a, (yCc(), UAc)), 171); + if (d == (cxc(), $wc)) { + for (c = new is(Mr(Z2b(a).a.Kc(), new ir())); gs(c); ) { + b = RD(hs(c), 18); + if (!lec(b)) { + throw Adb(new Jed(nBe + X2b(a) + "' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges.")); + } + } + } else if (d == axc) { + for (f = new is(Mr(a3b(a).a.Kc(), new ir())); gs(f); ) { + e = RD(hs(f), 18); + if (!lec(e)) { + throw Adb(new Jed(nBe + X2b(a) + "' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges.")); + } + } + } + } + function Qed(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2; + if (a.e && a.c.c < a.f) { + throw Adb(new dgb("Expected " + a.f + " phases to be configured; only found " + a.c.c)); + } + k = RD(mfb(a.g), 9); + n = ev(a.f); + for (f = k, h = 0, j = f.length; h < j; ++h) { + d = f[h]; + l = RD(Med(a, d.g), 188); + l ? Rmb(n, RD(Ted(a, l), 106)) : (n.c.push(null), true); + } + o2 = new ufd(); + FDb(CDb(GDb(CDb(new SDb(null, new Swb(n, 16)), new Zed()), new _ed(b)), new bfd()), new dfd(o2)); + ofd(o2, a.a); + c = new bnb(); + for (e = k, g = 0, i = e.length; g < i; ++g) { + d = e[g]; + Tmb(c, Ued(a, Ux(RD(Med(o2, d.g), 20)))); + m = RD(Vmb(n, d.g), 106); + !!m && (ZEb(c.c, m), true); + } + Tmb(c, Ued(a, Ux(RD(Med(o2, k[k.length - 1].g + 1), 20)))); + return c; + } + function Frc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + m = new bnb(); + e = new bnb(); + p = null; + for (h = b.Kc(); h.Ob(); ) { + g = RD(h.Pb(), 17); + f = new Trc(g.a); + ZEb(e.c, f); + if (p) { + f.d = p; + p.e = f; + } + p = f; + } + t = Erc(a); + for (k = 0; k < e.c.length; ++k) { + n = null; + q = Src((tFb(0, e.c.length), RD(e.c[0], 661))); + c = null; + d = oxe; + for (l = 1; l < a.b.c.length; ++l) { + r = q ? $wnd.Math.abs(q.b - l) : $wnd.Math.abs(l - n.b) + 1; + o2 = n ? $wnd.Math.abs(l - n.b) : r + 1; + if (o2 < r) { + j = n; + i = o2; + } else { + j = q; + i = r; + } + s = (u = Kfb(UD(mQb(a, (yCc(), sCc)))), t[l] + $wnd.Math.pow(i, u)); + if (s < d) { + d = s; + c = j; + c.c = l; + } + if (!!q && l == q.b) { + n = q; + q = Nrc(q); + } + } + if (c) { + Rmb(m, sgb(c.c)); + c.a = true; + Orc(c); + } + } + yob(); + Ynb(m.c, m.c.length, null); + return m; + } + function iD(a, b, c) { + var d, e, f, g, h, i; + if (b.l == 0 && b.m == 0 && b.h == 0) { + throw Adb(new teb("divide by zero")); + } + if (a.l == 0 && a.m == 0 && a.h == 0) { + c && (eD = hD(0, 0, 0)); + return hD(0, 0, 0); + } + if (b.h == fxe && b.m == 0 && b.l == 0) { + return jD(a, c); + } + i = false; + if (b.h >> 19 != 0) { + b = xD(b); + i = !i; + } + g = pD(b); + f = false; + e = false; + d = false; + if (a.h == fxe && a.m == 0 && a.l == 0) { + e = true; + f = true; + if (g == -1) { + a = gD((MD(), ID)); + d = true; + i = !i; + } else { + h = BD(a, g); + i && nD(h); + c && (eD = hD(0, 0, 0)); + return h; + } + } else if (a.h >> 19 != 0) { + f = true; + a = xD(a); + d = true; + i = !i; + } + if (g != -1) { + return kD(a, g, i, f, c); + } + if (uD(a, b) < 0) { + c && (f ? eD = xD(a) : eD = hD(a.l, a.m, a.h)); + return hD(0, 0, 0); + } + return lD(d ? a : hD(a.l, a.m, a.h), b, i, f, e, c); + } + function Bjb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2; + g = a.e; + i = b.e; + if (g == 0) { + return b; + } + if (i == 0) { + return a; + } + f = a.d; + h = b.d; + if (f + h == 2) { + c = Cdb(a.a[0], yxe); + d = Cdb(b.a[0], yxe); + if (g == i) { + k = Bdb(c, d); + o2 = Ydb(k); + n = Ydb(Udb(k, 32)); + return n == 0 ? new ajb(g, o2) : new cjb(g, 2, cD(WC(kE, 1), Pwe, 28, 15, [o2, n])); + } + return Pib(), Jdb(g < 0 ? Vdb(d, c) : Vdb(c, d), 0) ? jjb(g < 0 ? Vdb(d, c) : Vdb(c, d)) : Xib(jjb(Odb(g < 0 ? Vdb(d, c) : Vdb(c, d)))); + } else if (g == i) { + m = g; + l = f >= h ? Cjb(a.a, f, b.a, h) : Cjb(b.a, h, a.a, f); + } else { + e = f != h ? f > h ? 1 : -1 : Ejb(a.a, b.a, f); + if (e == 0) { + return Pib(), Oib; + } + if (e == 1) { + m = g; + l = Hjb(a.a, f, b.a, h); + } else { + m = i; + l = Hjb(b.a, h, a.a, f); + } + } + j = new cjb(m, l.length, l); + Rib(j); + return j; + } + function KUc(a, b) { + var c, d, e, f, g, h, i; + if (a.g > b.f || b.g > a.f) { + return; + } + c = 0; + d = 0; + for (g = a.w.a.ec().Kc(); g.Ob(); ) { + e = RD(g.Pb(), 12); + AVc(xjd(cD(WC(l3, 1), Nve, 8, 0, [e.i.n, e.n, e.a])).b, b.g, b.f) && ++c; + } + for (h = a.r.a.ec().Kc(); h.Ob(); ) { + e = RD(h.Pb(), 12); + AVc(xjd(cD(WC(l3, 1), Nve, 8, 0, [e.i.n, e.n, e.a])).b, b.g, b.f) && --c; + } + for (i = b.w.a.ec().Kc(); i.Ob(); ) { + e = RD(i.Pb(), 12); + AVc(xjd(cD(WC(l3, 1), Nve, 8, 0, [e.i.n, e.n, e.a])).b, a.g, a.f) && ++d; + } + for (f = b.r.a.ec().Kc(); f.Ob(); ) { + e = RD(f.Pb(), 12); + AVc(xjd(cD(WC(l3, 1), Nve, 8, 0, [e.i.n, e.n, e.a])).b, a.g, a.f) && --d; + } + if (c < d) { + new _Uc(a, b, d - c); + } else if (d < c) { + new _Uc(b, a, c - d); + } else { + new _Uc(b, a, 0); + new _Uc(a, b, 0); + } + } + function ASb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s; + j = b.c; + e = zRb(a.e); + l = ijd(njd(ajd(yRb(a.e)), a.d * a.a, a.c * a.b), -0.5); + c = e.a - l.a; + d = e.b - l.b; + g = b.a; + c = g.c - c; + d = g.d - d; + for (i = new Anb(j); i.a < i.c.c.length; ) { + h = RD(ynb(i), 407); + m = h.b; + n = c + m.a; + q = d + m.b; + o2 = eE(n / a.a); + r = eE(q / a.b); + f = h.a; + switch (f.g) { + case 0: + k = (IPb(), FPb); + break; + case 1: + k = (IPb(), EPb); + break; + case 2: + k = (IPb(), GPb); + break; + default: + k = (IPb(), HPb); + } + if (f.a) { + s = eE((q + h.c) / a.b); + Rmb(a.f, new lRb(k, sgb(r), sgb(s))); + f == (IRb(), HRb) ? eQb(a, 0, r, o2, s) : eQb(a, o2, r, a.d - 1, s); + } else { + p = eE((n + h.c) / a.a); + Rmb(a.f, new lRb(k, sgb(o2), sgb(p))); + f == (IRb(), FRb) ? eQb(a, o2, 0, p, r) : eQb(a, o2, r, p, a.c - 1); + } + } + } + function Q$d(a) { + var b, c, d, e, f, g, h, i, j, k; + b = new Z$d(); + c = new Z$d(); + j = lhb(pKe, (e = bAd(a.b, qKe), !e ? null : WD($Nd((!e.b && (e.b = new SVd((JTd(), FTd), C8, e)), e.b), rKe)))); + for (i = 0; i < a.i; ++i) { + h = RD(a.g[i], 179); + if (ZD(h, 102)) { + g = RD(h, 19); + (g.Bb & QHe) != 0 ? ((g.Bb & Ove) == 0 || !j && (f = bAd(g, qKe), (!f ? null : WD($Nd((!f.b && (f.b = new SVd((JTd(), FTd), C8, f)), f.b), FIe))) == null)) && WGd(b, g) : (k = Z5d(g), !!k && (k.Bb & QHe) != 0 || ((g.Bb & Ove) == 0 || !j && (d = bAd(g, qKe), (!d ? null : WD($Nd((!d.b && (d.b = new SVd((JTd(), FTd), C8, d)), d.b), FIe))) == null)) && WGd(c, g)); + } else { + nke(); + if (RD(h, 69).xk()) { + if (!h.sk()) { + WGd(b, h); + WGd(c, h); + } + } + } + } + VHd(b); + VHd(c); + a.a = RD(b.g, 254); + RD(c.g, 254); + } + function Eee(a, b, c) { + var d, e, f, g, h, i, j, k, l; + if (BYd(b, c) >= 0) { + return c; + } + switch (yfe(Qee(a, c))) { + case 2: { + if (lhb("", Oee(a, c.qk()).xe())) { + i = Bfe(Qee(a, c)); + h = Afe(Qee(a, c)); + k = Ree(a, b, i, h); + if (k) { + return k; + } + e = Fee(a, b); + for (g = 0, l = e.gc(); g < l; ++g) { + k = RD(e.Xb(g), 179); + if (Xee(Cfe(Qee(a, k)), i)) { + return k; + } + } + } + return null; + } + case 4: { + if (lhb("", Oee(a, c.qk()).xe())) { + for (d = c; d; d = xfe(Qee(a, d))) { + j = Bfe(Qee(a, d)); + h = Afe(Qee(a, d)); + k = See(a, b, j, h); + if (k) { + return k; + } + } + i = Bfe(Qee(a, c)); + if (lhb(dLe, i)) { + return Tee(a, b); + } else { + f = Gee(a, b); + for (g = 0, l = f.gc(); g < l; ++g) { + k = RD(f.Xb(g), 179); + if (Xee(Cfe(Qee(a, k)), i)) { + return k; + } + } + } + } + return null; + } + default: { + return null; + } + } + } + function Tfe(a, b, c) { + var d, e, f, g, h, i, j, k; + if (c.gc() == 0) { + return false; + } + h = (nke(), RD(b, 69).xk()); + f = h ? c : new ZHd(c.gc()); + if (qke(a.e, b)) { + if (b.Si()) { + for (j = c.Kc(); j.Ob(); ) { + i = j.Pb(); + if (!dge(a, b, i, ZD(b, 102) && (RD(b, 19).Bb & txe) != 0)) { + e = oke(b, i); + f.Hc(e) || f.Fc(e); + } + } + } else if (!h) { + for (j = c.Kc(); j.Ob(); ) { + i = j.Pb(); + e = oke(b, i); + f.Fc(e); + } + } + } else { + if (c.gc() > 1) { + throw Adb(new agb(gLe)); + } + k = pke(a.e.Dh(), b); + d = RD(a.g, 124); + for (g = 0; g < a.i; ++g) { + e = d[g]; + if (k.am(e.Lk())) { + if (c.Hc(h ? e : e.md())) { + return false; + } else { + for (j = c.Kc(); j.Ob(); ) { + i = j.Pb(); + RD(eHd(a, g, h ? RD(i, 76) : oke(b, i)), 76); + } + return true; + } + } + } + if (!h) { + e = oke(b, c.Kc().Pb()); + f.Fc(e); + } + } + return YGd(a, f); + } + function QQc(a, b) { + var c, d, e, f, g, h, i, j, k; + k = new Yub(); + for (h = (j = new glb(a.c).a.vc().Kc(), new llb(j)); h.a.Ob(); ) { + f = (e = RD(h.a.Pb(), 44), RD(e.md(), 467)); + f.b == 0 && (Pub(k, f, k.c.b, k.c), true); + } + while (k.b != 0) { + f = RD(k.b == 0 ? null : (sFb(k.b != 0), Wub(k, k.a.a)), 467); + f.a == null && (f.a = 0); + for (d = new Anb(f.d); d.a < d.c.c.length; ) { + c = RD(ynb(d), 663); + c.b.a == null ? c.b.a = Kfb(f.a) + c.a : b.o == (EQc(), CQc) ? c.b.a = $wnd.Math.min(Kfb(c.b.a), Kfb(f.a) + c.a) : c.b.a = $wnd.Math.max(Kfb(c.b.a), Kfb(f.a) + c.a); + --c.b.b; + c.b.b == 0 && Mub(k, c.b); + } + } + for (g = (i = new glb(a.c).a.vc().Kc(), new llb(i)); g.a.Ob(); ) { + f = (e = RD(g.a.Pb(), 44), RD(e.md(), 467)); + b.i[f.c.p] = f.a; + } + } + function kSc(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2; + k = c + b.c.c.a; + for (n = new Anb(b.j); n.a < n.c.c.length; ) { + m = RD(ynb(n), 12); + e = xjd(cD(WC(l3, 1), Nve, 8, 0, [m.i.n, m.n, m.a])); + if (b.k == (r3b(), q3b)) { + h = RD(mQb(m, (Ywc(), Awc)), 12); + e.a = xjd(cD(WC(l3, 1), Nve, 8, 0, [h.i.n, h.n, h.a])).a; + b.n.a = e.a; + } + g = new rjd(0, e.b); + if (m.j == (qpd(), Xod)) { + g.a = k; + } else if (m.j == ppd) { + g.a = c; + } else { + continue; + } + o2 = $wnd.Math.abs(e.a - g.a); + if (o2 <= d && !hSc(b)) { + continue; + } + f = m.g.c.length + m.e.c.length > 1; + for (j = new l4b(m.b); xnb(j.a) || xnb(j.b); ) { + i = RD(xnb(j.a) ? ynb(j.a) : ynb(j.b), 18); + l = i.c == m ? i.d : i.c; + $wnd.Math.abs(xjd(cD(WC(l3, 1), Nve, 8, 0, [l.i.n, l.n, l.a])).b - g.b) > 1 && eSc(a, i, g, f, m); + } + } + } + function vUc(a) { + var b, c, d, e, f, g; + e = new Jkb(a.e, 0); + d = new Jkb(a.a, 0); + if (a.d) { + for (c = 0; c < a.b; c++) { + sFb(e.b < e.d.gc()); + e.d.Xb(e.c = e.b++); + } + } else { + for (c = 0; c < a.b - 1; c++) { + sFb(e.b < e.d.gc()); + e.d.Xb(e.c = e.b++); + Ckb(e); + } + } + b = Kfb((sFb(e.b < e.d.gc()), UD(e.d.Xb(e.c = e.b++)))); + while (a.f - b > AEe) { + f = b; + g = 0; + while ($wnd.Math.abs(b - f) < AEe) { + ++g; + b = Kfb((sFb(e.b < e.d.gc()), UD(e.d.Xb(e.c = e.b++)))); + sFb(d.b < d.d.gc()); + d.d.Xb(d.c = d.b++); + } + if (g < a.b) { + sFb(e.b > 0); + e.a.Xb(e.c = --e.b); + uUc(a, a.b - g, f, d, e); + sFb(e.b < e.d.gc()); + e.d.Xb(e.c = e.b++); + } + sFb(d.b > 0); + d.a.Xb(d.c = --d.b); + } + if (!a.d) { + for (c = 0; c < a.b - 1; c++) { + sFb(e.b < e.d.gc()); + e.d.Xb(e.c = e.b++); + Ckb(e); + } + } + a.d = true; + a.c = true; + } + function nme() { + nme = geb; + Rle = (Qle(), Ple).b; + Ule = RD(QHd(xYd(Ple.b), 0), 35); + Sle = RD(QHd(xYd(Ple.b), 1), 35); + Tle = RD(QHd(xYd(Ple.b), 2), 35); + cme = Ple.bb; + RD(QHd(xYd(Ple.bb), 0), 35); + RD(QHd(xYd(Ple.bb), 1), 35); + eme = Ple.fb; + fme = RD(QHd(xYd(Ple.fb), 0), 35); + RD(QHd(xYd(Ple.fb), 1), 35); + RD(QHd(xYd(Ple.fb), 2), 19); + hme = Ple.qb; + kme = RD(QHd(xYd(Ple.qb), 0), 35); + RD(QHd(xYd(Ple.qb), 1), 19); + RD(QHd(xYd(Ple.qb), 2), 19); + ime = RD(QHd(xYd(Ple.qb), 3), 35); + jme = RD(QHd(xYd(Ple.qb), 4), 35); + mme = RD(QHd(xYd(Ple.qb), 6), 35); + lme = RD(QHd(xYd(Ple.qb), 5), 19); + Vle = Ple.j; + Wle = Ple.k; + Xle = Ple.q; + Yle = Ple.w; + Zle = Ple.B; + $le = Ple.A; + _le = Ple.C; + ame = Ple.D; + bme = Ple._; + dme = Ple.cb; + gme = Ple.hb; + } + function yIc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n; + a.c = 0; + a.b = 0; + d = 2 * b.c.a.c.length + 1; + o: + for (l = c.Kc(); l.Ob(); ) { + k = RD(l.Pb(), 12); + h = k.j == (qpd(), Yod) || k.j == npd; + n = 0; + if (h) { + m = RD(mQb(k, (Ywc(), Iwc)), 10); + if (!m) { + continue; + } + n += tIc(a, d, k, m); + } else { + for (j = new Anb(k.g); j.a < j.c.c.length; ) { + i = RD(ynb(j), 18); + e = i.d; + if (e.i.c == b.c) { + Rmb(a.a, k); + continue o; + } else { + n += a.g[e.p]; + } + } + for (g = new Anb(k.e); g.a < g.c.c.length; ) { + f = RD(ynb(g), 18); + e = f.c; + if (e.i.c == b.c) { + Rmb(a.a, k); + continue o; + } else { + n -= a.g[e.p]; + } + } + } + if (k.e.c.length + k.g.c.length > 0) { + a.f[k.p] = n / (k.e.c.length + k.g.c.length); + a.c = $wnd.Math.min(a.c, a.f[k.p]); + a.b = $wnd.Math.max(a.b, a.f[k.p]); + } else + h && (a.f[k.p] = n); + } + } + function xne(a) { + a.b = null; + a.bb = null; + a.fb = null; + a.qb = null; + a.a = null; + a.c = null; + a.d = null; + a.e = null; + a.f = null; + a.n = null; + a.M = null; + a.L = null; + a.Q = null; + a.R = null; + a.K = null; + a.db = null; + a.eb = null; + a.g = null; + a.i = null; + a.j = null; + a.k = null; + a.gb = null; + a.o = null; + a.p = null; + a.q = null; + a.r = null; + a.$ = null; + a.ib = null; + a.S = null; + a.T = null; + a.t = null; + a.s = null; + a.u = null; + a.v = null; + a.w = null; + a.B = null; + a.A = null; + a.C = null; + a.D = null; + a.F = null; + a.G = null; + a.H = null; + a.I = null; + a.J = null; + a.P = null; + a.Z = null; + a.U = null; + a.V = null; + a.W = null; + a.X = null; + a.Y = null; + a._ = null; + a.ab = null; + a.cb = null; + a.hb = null; + a.nb = null; + a.lb = null; + a.mb = null; + a.ob = null; + a.pb = null; + a.jb = null; + a.kb = null; + a.N = false; + a.O = false; + } + function C8b(a, b, c) { + var d, e, f, g; + c.Ug("Graph transformation (" + a.a + ")", 1); + g = bv(b.a); + for (f = new Anb(b.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 30); + Tmb(g, e.a); + } + d = RD(mQb(b, (yCc(), sAc)), 428); + if (d == ($tc(), Ytc)) { + switch (RD(mQb(b, rAc), 88).g) { + case 2: + q8b(b, g); + break; + case 3: + G8b(b, g); + break; + case 4: + if (a.a == (P8b(), O8b)) { + G8b(b, g); + r8b(b, g); + } else { + r8b(b, g); + G8b(b, g); + } + } + } else { + if (a.a == (P8b(), O8b)) { + switch (RD(mQb(b, rAc), 88).g) { + case 2: + q8b(b, g); + r8b(b, g); + break; + case 3: + G8b(b, g); + q8b(b, g); + break; + case 4: + q8b(b, g); + G8b(b, g); + } + } else { + switch (RD(mQb(b, rAc), 88).g) { + case 2: + q8b(b, g); + r8b(b, g); + break; + case 3: + q8b(b, g); + G8b(b, g); + break; + case 4: + G8b(b, g); + q8b(b, g); + } + } + } + c.Vg(); + } + function AXb(a) { + var b, c, d, e, f, g, h, i; + for (f = new Anb(a.a.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 86); + e.b.c = e.g.c; + e.b.d = e.g.d; + } + i = new rjd(oxe, oxe); + b = new rjd(pxe, pxe); + for (d = new Anb(a.a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 86); + i.a = $wnd.Math.min(i.a, c.g.c); + i.b = $wnd.Math.min(i.b, c.g.d); + b.a = $wnd.Math.max(b.a, c.g.c + c.g.b); + b.b = $wnd.Math.max(b.b, c.g.d + c.g.a); + } + for (h = Uc(a.c).a.nc(); h.Ob(); ) { + g = RD(h.Pb(), 42); + c = RD(g.b, 86); + i.a = $wnd.Math.min(i.a, c.g.c); + i.b = $wnd.Math.min(i.b, c.g.d); + b.a = $wnd.Math.max(b.a, c.g.c + c.g.b); + b.b = $wnd.Math.max(b.b, c.g.d + c.g.a); + } + a.d = fjd(new rjd(i.a, i.b)); + a.e = ojd(new rjd(b.a, b.b), i); + a.a.a.c.length = 0; + a.a.b.c.length = 0; + } + function LZb(a) { + CZb(); + var b, c, d, e, f, g, h; + h = new EZb(); + for (c = new Anb(a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 148); + (!h.b || b.c >= h.b.c) && (h.b = b); + if (!h.c || b.c <= h.c.c) { + h.d = h.c; + h.c = b; + } + (!h.e || b.d >= h.e.d) && (h.e = b); + (!h.f || b.d <= h.f.d) && (h.f = b); + } + d = new PZb((nZb(), jZb)); + t$b(a, AZb, new mob(cD(WC(wQ, 1), rve, 382, 0, [d]))); + g = new PZb(mZb); + t$b(a, zZb, new mob(cD(WC(wQ, 1), rve, 382, 0, [g]))); + e = new PZb(kZb); + t$b(a, yZb, new mob(cD(WC(wQ, 1), rve, 382, 0, [e]))); + f = new PZb(lZb); + t$b(a, xZb, new mob(cD(WC(wQ, 1), rve, 382, 0, [f]))); + FZb(d.c, jZb); + FZb(e.c, kZb); + FZb(f.c, lZb); + FZb(g.c, mZb); + h.a.c.length = 0; + Tmb(h.a, d.c); + Tmb(h.a, hv(e.c)); + Tmb(h.a, f.c); + Tmb(h.a, hv(g.c)); + return h; + } + function n9c(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2; + b.Ug(bGe, 1); + n = Kfb(UD(Gxd(a, (X6c(), W6c)))); + g = Kfb(UD(Gxd(a, (X7c(), Q7c)))); + h = RD(Gxd(a, N7c), 107); + Bad((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); + k = U8c((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a), n, g); + !a.a && (a.a = new C5d(J4, a, 10, 11)); + for (j = new Anb(k); j.a < j.c.c.length; ) { + i = RD(ynb(j), 186); + for (e = new Anb(i.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 172); + m = new had(d.s, d.t, Kfb(UD(Gxd(a, Q7c)))); + aad(m, d); + Rmb(i.d, m); + } + } + l = zad(k, g); + o2 = $wnd.Math.max(l.a, Kfb(UD(Gxd(a, U6c))) - (h.b + h.c)); + f = $wnd.Math.max(l.b, Kfb(UD(Gxd(a, R6c))) - (h.d + h.a)); + c = f - l.b; + Ixd(a, M6c, c); + Ixd(a, O6c, o2); + Ixd(a, N6c, f + c); + Ixd(a, V6c, k); + b.Vg(); + } + function A9b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p; + j = new Iub(); + k = new Iub(); + o2 = new Iub(); + p = new Iub(); + i = Kfb(UD(mQb(b, (yCc(), bCc)))); + f = Kfb(UD(mQb(b, TBc))); + for (h = new Anb(c); h.a < h.c.c.length; ) { + g = RD(ynb(h), 10); + l = RD(mQb(g, (Ywc(), hwc)), 64); + if (l == (qpd(), Yod)) { + k.a.zc(g, k); + for (e = new is(Mr(Z2b(g).a.Kc(), new ir())); gs(e); ) { + d = RD(hs(e), 18); + Ysb(j, d.c.i); + } + } else if (l == npd) { + p.a.zc(g, p); + for (e = new is(Mr(Z2b(g).a.Kc(), new ir())); gs(e); ) { + d = RD(hs(e), 18); + Ysb(o2, d.c.i); + } + } + } + if (j.a.gc() != 0) { + m = new TTc(2, f); + n = STc(m, b, j, k, -i - b.c.b); + if (n > 0) { + a.a = i + (n - 1) * f; + b.c.b += a.a; + b.f.b += a.a; + } + } + if (o2.a.gc() != 0) { + m = new TTc(1, f); + n = STc(m, b, o2, p, b.f.b + i - b.c.b); + n > 0 && (b.f.b += i + (n - 1) * f); + } + } + function osc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + k = Kfb(UD(mQb(a, (yCc(), WBc)))); + d = Kfb(UD(mQb(a, nCc))); + m = new dtd(); + pQb(m, WBc, k + d); + j = b; + r = j.d; + p = j.c.i; + s = j.d.i; + q = Q4b(p.c); + t = Q4b(s.c); + e = new bnb(); + for (l = q; l <= t; l++) { + h = new j3b(a); + h3b(h, (r3b(), o3b)); + pQb(h, (Ywc(), Awc), j); + pQb(h, BBc, (Bod(), wod)); + pQb(h, YBc, m); + n = RD(Vmb(a.b, l), 30); + l == q ? f3b(h, n.a.c.length - c, n) : g3b(h, n); + u = Kfb(UD(mQb(j, FAc))); + if (u < 0) { + u = 0; + pQb(j, FAc, u); + } + h.o.b = u; + o2 = $wnd.Math.floor(u / 2); + g = new R3b(); + Q3b(g, (qpd(), ppd)); + P3b(g, h); + g.n.b = o2; + i = new R3b(); + Q3b(i, Xod); + P3b(i, h); + i.n.b = o2; + Z0b(j, g); + f = new a1b(); + kQb(f, j); + pQb(f, RAc, null); + Y0b(f, i); + Z0b(f, r); + psc(h, j, f); + ZEb(e.c, f); + j = f; + } + return e; + } + function Hec(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + i = RD(e3b(a, (qpd(), ppd)).Kc().Pb(), 12).e; + n = RD(e3b(a, Xod).Kc().Pb(), 12).g; + h = i.c.length; + t = K3b(RD(Vmb(a.j, 0), 12)); + while (h-- > 0) { + p = (tFb(0, i.c.length), RD(i.c[0], 18)); + e = (tFb(0, n.c.length), RD(n.c[0], 18)); + s = e.d.e; + f = Wmb(s, e, 0); + $0b(p, e.d, f); + Y0b(e, null); + Z0b(e, null); + o2 = p.a; + b && Mub(o2, new sjd(t)); + for (d = Sub(e.a, 0); d.b != d.d.c; ) { + c = RD(evb(d), 8); + Mub(o2, new sjd(c)); + } + r = p.b; + for (m = new Anb(e.b); m.a < m.c.c.length; ) { + l = RD(ynb(m), 72); + ZEb(r.c, l); + } + q = RD(mQb(p, (yCc(), RAc)), 75); + g = RD(mQb(e, RAc), 75); + if (g) { + if (!q) { + q = new Ejd(); + pQb(p, RAc, q); + } + for (k = Sub(g, 0); k.b != k.d.c; ) { + j = RD(evb(k), 8); + Mub(q, new sjd(j)); + } + } + } + } + function $Qc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + p = b.b.c.length; + if (p < 3) { + return; + } + n = $C(kE, Pwe, 28, p, 15, 1); + l = 0; + for (k = new Anb(b.b); k.a < k.c.c.length; ) { + j = RD(ynb(k), 30); + n[l++] = j.a.c.length; + } + m = new Jkb(b.b, 2); + for (d = 1; d < p - 1; d++) { + c = (sFb(m.b < m.d.gc()), RD(m.d.Xb(m.c = m.b++), 30)); + o2 = new Anb(c.a); + f = 0; + h = 0; + for (i = 0; i < n[d + 1]; i++) { + t = RD(ynb(o2), 10); + if (i == n[d + 1] - 1 || ZQc(a, t, d + 1, d)) { + g = n[d] - 1; + ZQc(a, t, d + 1, d) && (g = a.c.e[RD(RD(RD(Vmb(a.c.b, t.p), 15).Xb(0), 42).a, 10).p]); + while (h <= i) { + s = RD(Vmb(c.a, h), 10); + if (!ZQc(a, s, d + 1, d)) { + for (r = RD(Vmb(a.c.b, s.p), 15).Kc(); r.Ob(); ) { + q = RD(r.Pb(), 42); + e = a.c.e[RD(q.a, 10).p]; + (e < f || e > g) && Ysb(a.b, RD(q.b, 18)); + } + } + ++h; + } + f = g; + } + } + } + } + function zhd(b, c) { + var d; + if (c == null || lhb(c, vve)) { + return null; + } + if (c.length == 0 && b.k != (kid(), fid)) { + return null; + } + switch (b.k.g) { + case 1: + return mhb(c, FGe) ? (Geb(), Feb) : mhb(c, GGe) ? (Geb(), Eeb) : null; + case 2: + try { + return sgb(Oeb(c, qwe, lve)); + } catch (a) { + a = zdb(a); + if (ZD(a, 130)) { + return null; + } else + throw Adb(a); + } + case 4: + try { + return Neb(c); + } catch (a) { + a = zdb(a); + if (ZD(a, 130)) { + return null; + } else + throw Adb(a); + } + case 3: + return c; + case 5: + uhd(b); + return xhd(b, c); + case 6: + uhd(b); + return yhd(b, b.a, c); + case 7: + try { + d = whd(b); + d.cg(c); + return d; + } catch (a) { + a = zdb(a); + if (ZD(a, 33)) { + return null; + } else + throw Adb(a); + } + default: + throw Adb(new dgb("Invalid type set for this layout option.")); + } + } + function JKd(a) { + var b; + switch (a.d) { + case 1: { + if (a.Sj()) { + return a.o != -2; + } + break; + } + case 2: { + if (a.Sj()) { + return a.o == -2; + } + break; + } + case 3: + case 5: + case 4: + case 6: + case 7: { + return a.o > -2; + } + default: { + return false; + } + } + b = a.Rj(); + switch (a.p) { + case 0: + return b != null && Heb(TD(b)) != Pdb(a.k, 0); + case 1: + return b != null && RD(b, 222).a != Ydb(a.k) << 24 >> 24; + case 2: + return b != null && RD(b, 180).a != (Ydb(a.k) & Bwe); + case 6: + return b != null && Pdb(RD(b, 168).a, a.k); + case 5: + return b != null && RD(b, 17).a != Ydb(a.k); + case 7: + return b != null && RD(b, 191).a != Ydb(a.k) << 16 >> 16; + case 3: + return b != null && Kfb(UD(b)) != a.j; + case 4: + return b != null && RD(b, 161).a != a.j; + default: + return b == null ? a.n != null : !pb(b, a.n); + } + } + function N_d(a, b, c) { + var d, e, f, g; + if (a.ol() && a.nl()) { + g = O_d(a, RD(c, 58)); + if (dE(g) !== dE(c)) { + a.xj(b); + a.Dj(b, P_d(a, b, g)); + if (a.al()) { + f = (e = RD(c, 54), a.ml() ? a.kl() ? e.Th(a.b, Z5d(RD(vYd(Uwd(a.b), a.Lj()), 19)).n, RD(vYd(Uwd(a.b), a.Lj()).Hk(), 29).kk(), null) : e.Th(a.b, BYd(e.Dh(), Z5d(RD(vYd(Uwd(a.b), a.Lj()), 19))), null, null) : e.Th(a.b, -1 - a.Lj(), null, null)); + !RD(g, 54).Ph() && (f = (d = RD(g, 54), a.ml() ? a.kl() ? d.Rh(a.b, Z5d(RD(vYd(Uwd(a.b), a.Lj()), 19)).n, RD(vYd(Uwd(a.b), a.Lj()).Hk(), 29).kk(), f) : d.Rh(a.b, BYd(d.Dh(), Z5d(RD(vYd(Uwd(a.b), a.Lj()), 19))), null, f) : d.Rh(a.b, -1 - a.Lj(), null, f))); + !!f && f.oj(); + } + Mvd(a.b) && a.Jj(a.Ij(9, c, g, b, false)); + return g; + } + } + return c; + } + function iJb(a) { + var b, c, d, e, f, g, h, i, j, k; + d = new bnb(); + for (g = new Anb(a.e.a); g.a < g.c.c.length; ) { + e = RD(ynb(g), 125); + k = 0; + e.k.c.length = 0; + for (c = new Anb(CIb(e)); c.a < c.c.c.length; ) { + b = RD(ynb(c), 218); + if (b.f) { + Rmb(e.k, b); + ++k; + } + } + k == 1 && (ZEb(d.c, e), true); + } + for (f = new Anb(d); f.a < f.c.c.length; ) { + e = RD(ynb(f), 125); + while (e.k.c.length == 1) { + j = RD(ynb(new Anb(e.k)), 218); + a.b[j.c] = j.g; + h = j.d; + i = j.e; + for (c = new Anb(CIb(e)); c.a < c.c.c.length; ) { + b = RD(ynb(c), 218); + pb(b, j) || (b.f ? h == b.d || i == b.e ? a.b[j.c] -= a.b[b.c] - b.g : a.b[j.c] += a.b[b.c] - b.g : e == h ? b.d == e ? a.b[j.c] += b.g : a.b[j.c] -= b.g : b.d == e ? a.b[j.c] -= b.g : a.b[j.c] += b.g); + } + Ymb(h.k, j); + Ymb(i.k, j); + h == e ? e = j.e : e = j.d; + } + } + } + function vMb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n; + c = RD(Vrb(a.b, b), 127); + i = RD(RD(Qc(a.r, b), 21), 87); + if (i.dc()) { + c.n.b = 0; + c.n.c = 0; + return; + } + j = a.u.Hc((Pod(), Lod)); + g = 0; + h = i.Kc(); + k = null; + l = 0; + m = 0; + while (h.Ob()) { + d = RD(h.Pb(), 117); + e = Kfb(UD(d.b.of((tNb(), sNb)))); + f = d.b.Mf().a; + a.A.Hc((Qpd(), Ppd)) && BMb(a, b); + if (!k) { + !!a.C && a.C.b > 0 && (g = $wnd.Math.max(g, zMb(a.C.b + d.d.b, e))); + } else { + n = m + k.d.c + a.w + d.d.b; + g = $wnd.Math.max(g, (Zy(), bz(Tye), $wnd.Math.abs(l - e) <= Tye || l == e || isNaN(l) && isNaN(e) ? 0 : n / (e - l))); + } + k = d; + l = e; + m = f; + } + if (!!a.C && a.C.c > 0) { + n = m + a.C.c; + j && (n += k.d.c); + g = $wnd.Math.max(g, (Zy(), bz(Tye), $wnd.Math.abs(l - 1) <= Tye || l == 1 || isNaN(l) && isNaN(1) ? 0 : n / (1 - l))); + } + c.n.b = 0; + c.a.a = g; + } + function ENb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n; + c = RD(Vrb(a.b, b), 127); + i = RD(RD(Qc(a.r, b), 21), 87); + if (i.dc()) { + c.n.d = 0; + c.n.a = 0; + return; + } + j = a.u.Hc((Pod(), Lod)); + g = 0; + a.A.Hc((Qpd(), Ppd)) && JNb(a, b); + h = i.Kc(); + k = null; + m = 0; + l = 0; + while (h.Ob()) { + d = RD(h.Pb(), 117); + f = Kfb(UD(d.b.of((tNb(), sNb)))); + e = d.b.Mf().b; + if (!k) { + !!a.C && a.C.d > 0 && (g = $wnd.Math.max(g, zMb(a.C.d + d.d.d, f))); + } else { + n = l + k.d.a + a.w + d.d.d; + g = $wnd.Math.max(g, (Zy(), bz(Tye), $wnd.Math.abs(m - f) <= Tye || m == f || isNaN(m) && isNaN(f) ? 0 : n / (f - m))); + } + k = d; + m = f; + l = e; + } + if (!!a.C && a.C.a > 0) { + n = l + a.C.a; + j && (n += k.d.a); + g = $wnd.Math.max(g, (Zy(), bz(Tye), $wnd.Math.abs(m - 1) <= Tye || m == 1 || isNaN(m) && isNaN(1) ? 0 : n / (1 - m))); + } + c.n.d = 0; + c.a.b = g; + } + function L8c(a, b, c, d, e, f, g, h) { + var i, j, k, l, m, n, o2, p, q, r; + o2 = false; + j = dad(c.q, b.f + b.b - c.q.f); + n = d.f > b.b && h; + r = e - (c.q.e + j - g); + l = (i = S9c(d, r, false), i.a); + if (n && l > d.f) { + return false; + } + if (n) { + m = 0; + for (q = new Anb(b.d); q.a < q.c.c.length; ) { + p = RD(ynb(q), 315); + m += dad(p, d.f) + g; + } + r = e - m; + } + if (r < d.g) { + return false; + } + k = f == a.c.length - 1 && r >= (tFb(f, a.c.length), RD(a.c[f], 186)).e; + if (!n && l > b.b && !k) { + return false; + } + if (k || n || l <= b.b) { + if (k && l > b.b) { + c.d = l; + Q9c(c, P9c(c, l)); + } else { + ead(c.q, j); + c.c = true; + } + Q9c(d, e - (c.s + c.r)); + U9c(d, c.q.e + c.q.d, b.f); + Cad(b, d); + if (a.c.length > f) { + Fad((tFb(f, a.c.length), RD(a.c[f], 186)), d); + (tFb(f, a.c.length), RD(a.c[f], 186)).a.c.length == 0 && Xmb(a, f); + } + o2 = true; + } + return o2; + } + function zJc(a, b, c) { + var d, e, f, g, h, i; + this.g = a; + h = b.d.length; + i = c.d.length; + this.d = $C(jR, WAe, 10, h + i, 0, 1); + for (g = 0; g < h; g++) { + this.d[g] = b.d[g]; + } + for (f = 0; f < i; f++) { + this.d[h + f] = c.d[f]; + } + if (b.e) { + this.e = gv(b.e); + this.e.Mc(c); + if (c.e) { + for (e = c.e.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 239); + if (d == b) { + continue; + } else + this.e.Hc(d) ? --d.c : this.e.Fc(d); + } + } + } else if (c.e) { + this.e = gv(c.e); + this.e.Mc(b); + } + this.f = b.f + c.f; + this.a = b.a + c.a; + this.a > 0 ? xJc(this, this.f / this.a) : pJc(b.g, b.d[0]).a != null && pJc(c.g, c.d[0]).a != null ? xJc(this, (Kfb(pJc(b.g, b.d[0]).a) + Kfb(pJc(c.g, c.d[0]).a)) / 2) : pJc(b.g, b.d[0]).a != null ? xJc(this, pJc(b.g, b.d[0]).a) : pJc(c.g, c.d[0]).a != null && xJc(this, pJc(c.g, c.d[0]).a); + } + function DXb(a, b) { + var c, d, e, f, g, h, i, j, k, l; + a.a = new fYb(wsb(s3)); + for (d = new Anb(b.a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 855); + h = new iYb(cD(WC(bQ, 1), rve, 86, 0, [])); + Rmb(a.a.a, h); + for (j = new Anb(c.d); j.a < j.c.c.length; ) { + i = RD(ynb(j), 116); + k = new IXb(a, i); + CXb(k, RD(mQb(c.c, (Ywc(), ewc)), 21)); + if (!Ujb(a.g, c)) { + Zjb(a.g, c, new rjd(i.c, i.d)); + Zjb(a.f, c, k); + } + Rmb(a.a.b, k); + gYb(h, k); + } + for (g = new Anb(c.b); g.a < g.c.c.length; ) { + f = RD(ynb(g), 602); + k = new IXb(a, f.Df()); + Zjb(a.b, f, new Ptd(h, k)); + CXb(k, RD(mQb(c.c, (Ywc(), ewc)), 21)); + if (f.Bf()) { + l = new JXb(a, f.Bf(), 1); + CXb(l, RD(mQb(c.c, ewc), 21)); + e = new iYb(cD(WC(bQ, 1), rve, 86, 0, [])); + gYb(e, l); + Rc(a.c, f.Af(), new Ptd(h, l)); + } + } + } + return a.a; + } + function gFc(a) { + var b; + this.a = a; + b = (r3b(), cD(WC(hR, 1), jwe, 273, 0, [p3b, o3b, m3b, q3b, n3b, l3b])).length; + this.b = YC(V5, [Nve, kEe], [601, 149], 0, [b, b], 2); + this.c = YC(V5, [Nve, kEe], [601, 149], 0, [b, b], 2); + fFc(this, p3b, (yCc(), bCc), cCc); + dFc(this, p3b, o3b, WBc, XBc); + cFc(this, p3b, q3b, WBc); + cFc(this, p3b, m3b, WBc); + dFc(this, p3b, n3b, bCc, cCc); + fFc(this, o3b, TBc, UBc); + cFc(this, o3b, q3b, TBc); + cFc(this, o3b, m3b, TBc); + dFc(this, o3b, n3b, WBc, XBc); + eFc(this, q3b, TBc); + cFc(this, q3b, m3b, TBc); + cFc(this, q3b, n3b, $Bc); + eFc(this, m3b, fCc); + dFc(this, m3b, n3b, aCc, _Bc); + fFc(this, n3b, TBc, TBc); + fFc(this, l3b, TBc, UBc); + dFc(this, l3b, p3b, WBc, XBc); + dFc(this, l3b, n3b, WBc, XBc); + dFc(this, l3b, o3b, WBc, XBc); + } + function zge(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + g = c.Lk(); + if (ZD(g, 102) && (RD(g, 19).Bb & txe) != 0) { + m = RD(c.md(), 54); + p = Vvd(a.e, m); + if (p != m) { + k = oke(g, p); + MHd(a, b, Tge(a, b, k)); + l = null; + if (Mvd(a.e)) { + d = Eee((lke(), jke), a.e.Dh(), g); + if (d != vYd(a.e.Dh(), a.c)) { + q = pke(a.e.Dh(), g); + h = 0; + f = RD(a.g, 124); + for (i = 0; i < b; ++i) { + e = f[i]; + q.am(e.Lk()) && ++h; + } + l = new lle(a.e, 9, d, m, p, h, false); + l.nj(new P3d(a.e, 9, a.c, c, k, b, false)); + } + } + o2 = RD(g, 19); + n = Z5d(o2); + if (n) { + l = m.Th(a.e, BYd(m.Dh(), n), null, l); + l = RD(p, 54).Rh(a.e, BYd(p.Dh(), n), null, l); + } else if ((o2.Bb & QHe) != 0) { + j = -1 - BYd(a.e.Dh(), o2); + l = m.Th(a.e, j, null, null); + !RD(p, 54).Ph() && (l = RD(p, 54).Rh(a.e, j, null, l)); + } + !!l && l.oj(); + return k; + } + } + return c; + } + function SId(a) { + var b, c, d; + wgd(LId, cD(WC(B2, 1), rve, 134, 0, [new vmd()])); + c = new NB(a); + for (d = 0; d < c.a.length; ++d) { + b = JB(c, d).te().a; + lhb(b, "layered") ? wgd(LId, cD(WC(B2, 1), rve, 134, 0, [new Pzc()])) : lhb(b, "force") ? wgd(LId, cD(WC(B2, 1), rve, 134, 0, [new PUb()])) : lhb(b, "stress") ? wgd(LId, cD(WC(B2, 1), rve, 134, 0, [new RVb()])) : lhb(b, "mrtree") ? wgd(LId, cD(WC(B2, 1), rve, 134, 0, [new C$c()])) : lhb(b, "radial") ? wgd(LId, cD(WC(B2, 1), rve, 134, 0, [new E4c()])) : lhb(b, "disco") ? wgd(LId, cD(WC(B2, 1), rve, 134, 0, [new ZHb(), new fSb()])) : lhb(b, "sporeOverlap") || lhb(b, "sporeCompaction") ? wgd(LId, cD(WC(B2, 1), rve, 134, 0, [new Lcd()])) : lhb(b, "rectpacking") && wgd(LId, cD(WC(B2, 1), rve, 134, 0, [new v7c()])); + } + } + function r2b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r; + m = new sjd(a.o); + r = b.a / m.a; + h = b.b / m.b; + p = b.a - m.a; + f = b.b - m.b; + if (c) { + e = dE(mQb(a, (yCc(), BBc))) === dE((Bod(), wod)); + for (o2 = new Anb(a.j); o2.a < o2.c.c.length; ) { + n = RD(ynb(o2), 12); + switch (n.j.g) { + case 1: + e || (n.n.a *= r); + break; + case 2: + n.n.a += p; + e || (n.n.b *= h); + break; + case 3: + e || (n.n.a *= r); + n.n.b += f; + break; + case 4: + e || (n.n.b *= h); + } + } + } + for (j = new Anb(a.b); j.a < j.c.c.length; ) { + i = RD(ynb(j), 72); + k = i.n.a + i.o.a / 2; + l = i.n.b + i.o.b / 2; + q = k / m.a; + g = l / m.b; + if (q + g >= 1) { + if (q - g > 0 && l >= 0) { + i.n.a += p; + i.n.b += f * g; + } else if (q - g < 0 && k >= 0) { + i.n.a += p * q; + i.n.b += f; + } + } + } + a.o.a = b.a; + a.o.b = b.b; + pQb(a, (yCc(), lBc), (Qpd(), d = RD(mfb(H3), 9), new Fsb(d, RD(WEb(d, d.length), 9), 0))); + } + function ISd(a, b, c, d, e, f) { + var g; + if (!(b == null || !mSd(b, ZRd, $Rd))) { + throw Adb(new agb("invalid scheme: " + b)); + } + if (!a && !(c != null && qhb(c, Fhb(35)) == -1 && c.length > 0 && (BFb(0, c.length), c.charCodeAt(0) != 47))) { + throw Adb(new agb("invalid opaquePart: " + c)); + } + if (a && !(b != null && tpb(eSd, b.toLowerCase())) && !(c == null || !mSd(c, aSd, bSd))) { + throw Adb(new agb(NJe + c)); + } + if (a && b != null && tpb(eSd, b.toLowerCase()) && !ESd(c)) { + throw Adb(new agb(NJe + c)); + } + if (!FSd(d)) { + throw Adb(new agb("invalid device: " + d)); + } + if (!HSd(e)) { + g = e == null ? "invalid segments: null" : "invalid segment: " + tSd(e); + throw Adb(new agb(g)); + } + if (!(f == null || qhb(f, Fhb(35)) == -1)) { + throw Adb(new agb("invalid query: " + f)); + } + } + function WHc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r; + c.Ug("Network simplex layering", 1); + a.b = b; + r = RD(mQb(b, (yCc(), gCc)), 17).a * 4; + q = a.b.a; + if (q.c.length < 1) { + c.Vg(); + return; + } + f = SHc(a, q); + p = null; + for (e = Sub(f, 0); e.b != e.d.c; ) { + d = RD(evb(e), 15); + h = r * eE($wnd.Math.sqrt(d.gc())); + g = VHc(d); + lJb(yJb(AJb(zJb(CJb(g), h), p), true), c.eh(1)); + m = a.b.b; + for (o2 = new Anb(g.a); o2.a < o2.c.c.length; ) { + n = RD(ynb(o2), 125); + while (m.c.length <= n.e) { + Qmb(m, m.c.length, new R4b(a.b)); + } + k = RD(n.f, 10); + g3b(k, RD(Vmb(m, n.e), 30)); + } + if (f.b > 1) { + p = $C(kE, Pwe, 28, a.b.b.c.length, 15, 1); + l = 0; + for (j = new Anb(a.b.b); j.a < j.c.c.length; ) { + i = RD(ynb(j), 30); + p[l++] = i.a.c.length; + } + } + } + q.c.length = 0; + a.a = null; + a.b = null; + a.c = null; + c.Vg(); + } + function tMc(a, b) { + var c, d, e, f, g, h, i, j, k, l; + k = new bnb(); + l = new wmb(); + f = null; + e = 0; + for (d = 0; d < b.length; ++d) { + c = b[d]; + vMc(f, c) && (e = oMc(a, l, k, cMc, e)); + nQb(c, (Ywc(), pwc)) && (f = RD(mQb(c, pwc), 10)); + switch (c.k.g) { + case 0: + for (i = lr(dr(b3b(c, (qpd(), Yod)), new eNc())); xc(i); ) { + g = RD(yc(i), 12); + a.d[g.p] = e++; + ZEb(k.c, g); + } + e = oMc(a, l, k, cMc, e); + for (j = lr(dr(b3b(c, npd), new eNc())); xc(j); ) { + g = RD(yc(j), 12); + a.d[g.p] = e++; + ZEb(k.c, g); + } + break; + case 3: + if (!b3b(c, bMc).dc()) { + g = RD(b3b(c, bMc).Xb(0), 12); + a.d[g.p] = e++; + ZEb(k.c, g); + } + b3b(c, cMc).dc() || hmb(l, c); + break; + case 1: + for (h = b3b(c, (qpd(), ppd)).Kc(); h.Ob(); ) { + g = RD(h.Pb(), 12); + a.d[g.p] = e++; + ZEb(k.c, g); + } + b3b(c, Xod).Jc(new cNc(l, c)); + } + } + oMc(a, l, k, cMc, e); + return k; + } + function vgd(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2; + if (b == null || b.length == 0) { + return null; + } + f = RD(Xjb(a.f, b), 23); + if (!f) { + for (e = (n = new glb(a.d).a.vc().Kc(), new llb(n)); e.a.Ob(); ) { + c = (g = RD(e.a.Pb(), 44), RD(g.md(), 23)); + h = c.f; + o2 = b.length; + if (lhb(h.substr(h.length - o2, o2), b) && (b.length == h.length || ihb(h, h.length - b.length - 1) == 46)) { + if (f) { + return null; + } + f = c; + } + } + if (!f) { + for (d = (m = new glb(a.d).a.vc().Kc(), new llb(m)); d.a.Ob(); ) { + c = (g = RD(d.a.Pb(), 44), RD(g.md(), 23)); + l = c.g; + if (l != null) { + for (i = l, j = 0, k = i.length; j < k; ++j) { + h = i[j]; + o2 = b.length; + if (lhb(h.substr(h.length - o2, o2), b) && (b.length == h.length || ihb(h, h.length - b.length - 1) == 46)) { + if (f) { + return null; + } + f = c; + } + } + } + } + } + !!f && $jb(a.f, b, f); + } + return f; + } + function IA(a, b) { + var c, d, e, f, g; + c = new cib(); + g = false; + for (f = 0; f < b.length; f++) { + d = (BFb(f, b.length), b.charCodeAt(f)); + if (d == 32) { + wA(a, c, 0); + c.a += " "; + wA(a, c, 0); + while (f + 1 < b.length && (BFb(f + 1, b.length), b.charCodeAt(f + 1) == 32)) { + ++f; + } + continue; + } + if (g) { + if (d == 39) { + if (f + 1 < b.length && (BFb(f + 1, b.length), b.charCodeAt(f + 1) == 39)) { + c.a += String.fromCharCode(d); + ++f; + } else { + g = false; + } + } else { + c.a += String.fromCharCode(d); + } + continue; + } + if (qhb("GyMLdkHmsSEcDahKzZv", Fhb(d)) > 0) { + wA(a, c, 0); + c.a += String.fromCharCode(d); + e = BA(b, f); + wA(a, c, e); + f += e - 1; + continue; + } + if (d == 39) { + if (f + 1 < b.length && (BFb(f + 1, b.length), b.charCodeAt(f + 1) == 39)) { + c.a += "'"; + ++f; + } else { + g = true; + } + } else { + c.a += String.fromCharCode(d); + } + } + wA(a, c, 0); + CA(a); + } + function tSc(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + t = Yx(a); + i = new bnb(); + f = a.c.length; + j = f - 1; + k = f + 1; + while (t.a.gc() != 0) { + while (c.b != 0) { + r = (sFb(c.b != 0), RD(Wub(c, c.a.a), 118)); + t.a.Bc(r) != null; + r.g = j--; + wSc(r, b, c, d); + } + while (b.b != 0) { + s = (sFb(b.b != 0), RD(Wub(b, b.a.a), 118)); + t.a.Bc(s) != null; + s.g = k++; + wSc(s, b, c, d); + } + h = qwe; + for (p = t.a.ec().Kc(); p.Ob(); ) { + o2 = RD(p.Pb(), 118); + if (!d && o2.b > 0 && o2.a <= 0) { + i.c.length = 0; + ZEb(i.c, o2); + break; + } + n = o2.i - o2.d; + if (n >= h) { + if (n > h) { + i.c.length = 0; + h = n; + } + ZEb(i.c, o2); + } + } + if (i.c.length != 0) { + g = RD(Vmb(i, Jwb(e, i.c.length)), 118); + t.a.Bc(g) != null; + g.g = k++; + wSc(g, b, c, d); + i.c.length = 0; + } + } + q = a.c.length + 1; + for (m = new Anb(a); m.a < m.c.c.length; ) { + l = RD(ynb(m), 118); + l.g < f && (l.g = l.g + q); + } + } + function FJc(a, b, c) { + var d, e, f, g; + this.j = a; + this.e = c1b(a); + this.o = this.j.e; + this.i = !!this.o; + this.p = this.i ? RD(Vmb(c, Y2b(this.o).p), 219) : null; + e = RD(mQb(a, (Ywc(), kwc)), 21); + this.g = e.Hc((ovc(), hvc)); + this.b = new bnb(); + this.d = new RLc(this.e); + g = RD(mQb(this.j, Lwc), 234); + this.q = WJc(b, g, this.e); + this.k = new _Kc(this); + f = dv(cD(WC(QY, 1), rve, 230, 0, [this, this.d, this.k, this.q])); + if (b == (RKc(), OKc) && !Heb(TD(mQb(a, (yCc(), eAc))))) { + d = new qJc(this.e); + ZEb(f.c, d); + this.c = new UIc(d, g, RD(this.q, 413)); + } else if (b == OKc && Heb(TD(mQb(a, (yCc(), eAc))))) { + d = new qJc(this.e); + ZEb(f.c, d); + this.c = new vLc(d, g, RD(this.q, 413)); + } else { + this.c = new smc(b, this); + } + Rmb(f, this.c); + yNc(f, this.e); + this.s = $Kc(this.k); + } + function z0b(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, o2, p, q; + f = new bnb(); + for (j = new Anb(d); j.a < j.c.c.length; ) { + h = RD(ynb(j), 453); + g = null; + if (h.f == (BEc(), zEc)) { + for (o2 = new Anb(h.e); o2.a < o2.c.c.length; ) { + n = RD(ynb(o2), 18); + q = n.d.i; + if (Y2b(q) == b) { + q0b(a, b, h, n, h.b, n.d); + } else if (!c || n2b(q, c)) { + r0b(a, b, h, d, n); + } else { + m = w0b(a, b, c, n, h.b, zEc, g); + m != g && (ZEb(f.c, m), true); + m.c && (g = m); + } + } + } else { + for (l = new Anb(h.e); l.a < l.c.c.length; ) { + k = RD(ynb(l), 18); + p = k.c.i; + if (Y2b(p) == b) { + q0b(a, b, h, k, k.c, h.b); + } else if (!c || n2b(p, c)) { + continue; + } else { + m = w0b(a, b, c, k, h.b, yEc, g); + m != g && (ZEb(f.c, m), true); + m.c && (g = m); + } + } + } + } + for (i = new Anb(f); i.a < i.c.c.length; ) { + h = RD(ynb(i), 453); + Wmb(b.a, h.a, 0) != -1 || Rmb(b.a, h.a); + h.c && (ZEb(e.c, h), true); + } + } + function QXb(a) { + var b, c, d, e, f, g, h; + b = 0; + for (f = new Anb(a.b.a); f.a < f.c.c.length; ) { + d = RD(ynb(f), 194); + d.b = 0; + d.c = 0; + } + PXb(a, 0); + OXb(a, a.g); + uYb(a.c); + yYb(a.c); + c = (Cmd(), ymd); + wYb(qYb(vYb(wYb(qYb(vYb(wYb(vYb(a.c, c)), Fmd(c)))), c))); + vYb(a.c, ymd); + TXb(a, a.g); + UXb(a, 0); + VXb(a, 0); + WXb(a, 1); + PXb(a, 1); + OXb(a, a.d); + uYb(a.c); + for (g = new Anb(a.b.a); g.a < g.c.c.length; ) { + d = RD(ynb(g), 194); + b += $wnd.Math.abs(d.c); + } + for (h = new Anb(a.b.a); h.a < h.c.c.length; ) { + d = RD(ynb(h), 194); + d.b = 0; + d.c = 0; + } + c = Bmd; + wYb(qYb(vYb(wYb(qYb(vYb(wYb(yYb(vYb(a.c, c))), Fmd(c)))), c))); + vYb(a.c, ymd); + TXb(a, a.d); + UXb(a, 1); + VXb(a, 1); + WXb(a, 0); + yYb(a.c); + for (e = new Anb(a.b.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 194); + b += $wnd.Math.abs(d.c); + } + return b; + } + function A0b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + if (!Heb(TD(mQb(c, (yCc(), NAc))))) { + return; + } + for (h = new Anb(c.j); h.a < h.c.c.length; ) { + g = RD(ynb(h), 12); + m = s2b(g.g); + for (j = m, k = 0, l = j.length; k < l; ++k) { + i = j[k]; + f = i.d.i == c; + e = f && Heb(TD(mQb(i, OAc))); + if (e) { + o2 = i.c; + n = RD(Wjb(a.b, o2), 10); + if (!n) { + n = f2b(o2, (Bod(), zod), o2.j, -1, null, null, o2.o, RD(mQb(b, rAc), 88), b); + pQb(n, (Ywc(), Awc), o2); + Zjb(a.b, o2, n); + Rmb(b.a, n); + } + q = i.d; + p = RD(Wjb(a.b, q), 10); + if (!p) { + p = f2b(q, (Bod(), zod), q.j, 1, null, null, q.o, RD(mQb(b, rAc), 88), b); + pQb(p, (Ywc(), Awc), q); + Zjb(a.b, q, p); + Rmb(b.a, p); + } + d = s0b(i); + Y0b(d, RD(Vmb(n.j, 0), 12)); + Z0b(d, RD(Vmb(p.j, 0), 12)); + Rc(a.a, i, new J0b(d, b, (BEc(), zEc))); + RD(mQb(b, (Ywc(), kwc)), 21).Fc((ovc(), hvc)); + } + } + } + } + function OQc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m; + for (e = new Anb(a.a.b); e.a < e.c.c.length; ) { + c = RD(ynb(e), 30); + for (i = new Anb(c.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + b.j[h.p] = h; + b.i[h.p] = b.o == (EQc(), DQc) ? pxe : oxe; + } + } + akb(a.c); + g = a.a.b; + b.c == (wQc(), uQc) && (g = hv(g)); + sRc(a.e, b, a.b); + Mnb(b.p, null); + for (f = g.Kc(); f.Ob(); ) { + c = RD(f.Pb(), 30); + j = c.a; + b.o == (EQc(), DQc) && (j = hv(j)); + for (m = j.Kc(); m.Ob(); ) { + l = RD(m.Pb(), 10); + b.g[l.p] == l && PQc(a, l, b); + } + } + QQc(a, b); + for (d = g.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 30); + for (m = new Anb(c.a); m.a < m.c.c.length; ) { + l = RD(ynb(m), 10); + b.p[l.p] = b.p[b.g[l.p].p]; + if (l == b.g[l.p]) { + k = Kfb(b.i[b.j[l.p].p]); + (b.o == (EQc(), DQc) && k > pxe || b.o == CQc && k < oxe) && (b.p[l.p] = Kfb(b.p[l.p]) + k); + } + } + } + a.e.xg(); + } + function ldc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2; + c.Ug("Label dummy switching", 1); + d = RD(mQb(b, (yCc(), uAc)), 232); + $cc(b); + e = idc(b, d); + a.a = $C(iE, vxe, 28, b.b.c.length, 15, 1); + for (h = (btc(), cD(WC(ZW, 1), jwe, 232, 0, [Zsc, _sc, Ysc, $sc, atc, Xsc])), k = 0, n = h.length; k < n; ++k) { + f = h[k]; + if ((f == atc || f == Xsc || f == $sc) && !RD(Csb(e.a, f) ? e.b[f.g] : null, 15).dc()) { + bdc(a, b); + break; + } + } + for (i = cD(WC(ZW, 1), jwe, 232, 0, [Zsc, _sc, Ysc, $sc, atc, Xsc]), l = 0, o2 = i.length; l < o2; ++l) { + f = i[l]; + f == atc || f == Xsc || f == $sc || mdc(a, RD(Csb(e.a, f) ? e.b[f.g] : null, 15)); + } + for (g = cD(WC(ZW, 1), jwe, 232, 0, [Zsc, _sc, Ysc, $sc, atc, Xsc]), j = 0, m = g.length; j < m; ++j) { + f = g[j]; + (f == atc || f == Xsc || f == $sc) && mdc(a, RD(Csb(e.a, f) ? e.b[f.g] : null, 15)); + } + a.a = null; + c.Vg(); + } + function tte(a, b) { + var c, d, e, f, g, h, i, j, k; + j = b; + if (j.b == null || a.b == null) + return; + vte(a); + ste(a); + vte(j); + ste(j); + c = $C(kE, Pwe, 28, a.b.length + j.b.length, 15, 1); + k = 0; + d = 0; + g = 0; + while (d < a.b.length && g < j.b.length) { + e = a.b[d]; + f = a.b[d + 1]; + h = j.b[g]; + i = j.b[g + 1]; + if (f < h) { + d += 2; + } else if (f >= h && e <= i) { + if (h <= e && f <= i) { + c[k++] = e; + c[k++] = f; + d += 2; + } else if (h <= e) { + c[k++] = e; + c[k++] = i; + a.b[d] = i + 1; + g += 2; + } else if (f <= i) { + c[k++] = h; + c[k++] = f; + d += 2; + } else { + c[k++] = h; + c[k++] = i; + a.b[d] = i + 1; + } + } else if (i < e) { + g += 2; + } else { + throw Adb(new yz("Token#intersectRanges(): Internal Error: [" + a.b[d] + "," + a.b[d + 1] + "] & [" + j.b[g] + "," + j.b[g + 1] + "]")); + } + } + while (d < a.b.length) { + c[k++] = a.b[d++]; + c[k++] = a.b[d++]; + } + a.b = $C(kE, Pwe, 28, k, 15, 1); + hib(c, 0, a.b, 0, k); + } + function RXb(a) { + var b, c, d, e, f, g, h; + b = new bnb(); + a.g = new bnb(); + a.d = new bnb(); + for (g = new vkb(new mkb(a.f.b).a); g.b; ) { + f = tkb(g); + Rmb(b, RD(RD(f.md(), 42).b, 86)); + Dmd(RD(f.ld(), 602).Af()) ? Rmb(a.d, RD(f.md(), 42)) : Rmb(a.g, RD(f.md(), 42)); + } + OXb(a, a.d); + OXb(a, a.g); + a.c = new EYb(a.b); + CYb(a.c, (zXb(), yXb)); + TXb(a, a.d); + TXb(a, a.g); + Tmb(b, a.c.a.b); + a.e = new rjd(oxe, oxe); + a.a = new rjd(pxe, pxe); + for (d = new Anb(b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 86); + a.e.a = $wnd.Math.min(a.e.a, c.g.c); + a.e.b = $wnd.Math.min(a.e.b, c.g.d); + a.a.a = $wnd.Math.max(a.a.a, c.g.c + c.g.b); + a.a.b = $wnd.Math.max(a.a.b, c.g.d + c.g.a); + } + BYb(a.c, new $Xb()); + h = 0; + do { + e = QXb(a); + ++h; + } while ((h < 2 || e > pwe) && h < 10); + BYb(a.c, new bYb()); + QXb(a); + xYb(a.c); + AXb(a.f); + } + function B9b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p; + c = RD(mQb(a, (yCc(), BBc)), 101); + g = a.f; + f = a.d; + h = g.a + f.b + f.c; + i = 0 - f.d - a.c.b; + k = g.b + f.d + f.a - a.c.b; + j = new bnb(); + l = new bnb(); + for (e = new Anb(b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 10); + switch (c.g) { + case 1: + case 2: + case 3: + r9b(d); + break; + case 4: + m = RD(mQb(d, zBc), 8); + n = !m ? 0 : m.a; + d.n.a = h * Kfb(UD(mQb(d, (Ywc(), Jwc)))) - n; + U2b(d, true, false); + break; + case 5: + o2 = RD(mQb(d, zBc), 8); + p = !o2 ? 0 : o2.a; + d.n.a = Kfb(UD(mQb(d, (Ywc(), Jwc)))) - p; + U2b(d, true, false); + g.a = $wnd.Math.max(g.a, d.n.a + d.o.a / 2); + } + switch (RD(mQb(d, (Ywc(), hwc)), 64).g) { + case 1: + d.n.b = i; + ZEb(j.c, d); + break; + case 3: + d.n.b = k; + ZEb(l.c, d); + } + } + switch (c.g) { + case 1: + case 2: + t9b(j, a); + t9b(l, a); + break; + case 3: + z9b(j, a); + z9b(l, a); + } + } + function $Jc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m; + switch (a.k.g) { + case 1: + d = RD(mQb(a, (Ywc(), Awc)), 18); + c = RD(mQb(d, Bwc), 75); + !c ? c = new Ejd() : Heb(TD(mQb(d, Nwc))) && (c = Ijd(c)); + j = RD(mQb(a, vwc), 12); + if (j) { + k = xjd(cD(WC(l3, 1), Nve, 8, 0, [j.i.n, j.n, j.a])); + if (b <= k.a) { + return k.b; + } + Pub(c, k, c.a, c.a.a); + } + l = RD(mQb(a, wwc), 12); + if (l) { + m = xjd(cD(WC(l3, 1), Nve, 8, 0, [l.i.n, l.n, l.a])); + if (m.a <= b) { + return m.b; + } + Pub(c, m, c.c.b, c.c); + } + if (c.b >= 2) { + i = Sub(c, 0); + g = RD(evb(i), 8); + h = RD(evb(i), 8); + while (h.a < b && i.b != i.d.c) { + g = h; + h = RD(evb(i), 8); + } + return g.b + (b - g.a) / (h.a - g.a) * (h.b - g.b); + } + break; + case 3: + f = RD(mQb(RD(Vmb(a.j, 0), 12), (Ywc(), Awc)), 12); + e = f.i; + switch (f.j.g) { + case 1: + return e.n.b; + case 3: + return e.n.b + e.o.b; + } + } + return _2b(a).b; + } + function Akc(a) { + var b, c, d, e, f, g, h, i, j, k, l; + for (g = new Anb(a.d.b); g.a < g.c.c.length; ) { + f = RD(ynb(g), 30); + for (i = new Anb(f.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + if (Heb(TD(mQb(h, (yCc(), Uzc))))) { + if (!gr(W2b(h))) { + d = RD(er(W2b(h)), 18); + k = d.c.i; + k == h && (k = d.d.i); + l = new Ptd(k, ojd(ajd(h.n), k.n)); + Zjb(a.b, h, l); + continue; + } + } + e = new Uid(h.n.a - h.d.b, h.n.b - h.d.d, h.o.a + h.d.b + h.d.c, h.o.b + h.d.d + h.d.a); + b = mGb(pGb(nGb(oGb(new qGb(), h), e), jkc), a.a); + gGb(hGb(iGb(new jGb(), cD(WC(hN, 1), rve, 60, 0, [b])), b), a.a); + j = new cHb(); + Zjb(a.e, b, j); + c = Kr(new is(Mr(Z2b(h).a.Kc(), new ir()))) - Kr(new is(Mr(a3b(h).a.Kc(), new ir()))); + c < 0 ? aHb(j, true, (Cmd(), ymd)) : c > 0 && aHb(j, true, (Cmd(), zmd)); + h.k == (r3b(), m3b) && bHb(j); + Zjb(a.f, h, b); + } + } + } + function OVc(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + e = RD(mQb(a, (q$c(), h$c)), 27); + j = lve; + k = lve; + h = qwe; + i = qwe; + for (t = Sub(a.b, 0); t.b != t.d.c; ) { + r = RD(evb(t), 40); + n = r.e; + o2 = r.f; + j = $wnd.Math.min(j, n.a - o2.a / 2); + k = $wnd.Math.min(k, n.b - o2.b / 2); + h = $wnd.Math.max(h, n.a + o2.a / 2); + i = $wnd.Math.max(i, n.b + o2.b / 2); + } + m = RD(Gxd(e, (h_c(), T$c)), 107); + for (s = Sub(a.b, 0); s.b != s.d.c; ) { + r = RD(evb(s), 40); + l = mQb(r, h$c); + if (ZD(l, 207)) { + f = RD(l, 27); + Byd(f, r.e.a, r.e.b); + zxd(f, r); + } + } + for (q = Sub(a.a, 0); q.b != q.d.c; ) { + p = RD(evb(q), 65); + d = RD(mQb(p, h$c), 74); + if (d) { + b = p.a; + c = IGd(d, true, true); + lsd(b, c); + } + } + u = h - j + (m.b + m.c); + g = i - k + (m.d + m.a); + Heb(TD(Gxd(e, (umd(), mld)))) || Esd(e, u, g, false, false); + Ixd(e, Ikd, u - (m.b + m.c)); + Ixd(e, Hkd, g - (m.d + m.a)); + } + function Wec(a, b) { + var c, d, e, f, g, h, i, j, k, l; + i = true; + e = 0; + j = a.g[b.p]; + k = b.o.b + a.o; + c = a.d[b.p][2]; + $mb(a.b, j, sgb(RD(Vmb(a.b, j), 17).a - 1 + c)); + $mb(a.c, j, Kfb(UD(Vmb(a.c, j))) - k + c * a.f); + ++j; + if (j >= a.j) { + ++a.j; + Rmb(a.b, sgb(1)); + Rmb(a.c, k); + } else { + d = a.d[b.p][1]; + $mb(a.b, j, sgb(RD(Vmb(a.b, j), 17).a + 1 - d)); + $mb(a.c, j, Kfb(UD(Vmb(a.c, j))) + k - d * a.f); + } + (a.r == (aEc(), VDc) && (RD(Vmb(a.b, j), 17).a > a.k || RD(Vmb(a.b, j - 1), 17).a > a.k) || a.r == YDc && (Kfb(UD(Vmb(a.c, j))) > a.n || Kfb(UD(Vmb(a.c, j - 1))) > a.n)) && (i = false); + for (g = new is(Mr(Z2b(b).a.Kc(), new ir())); gs(g); ) { + f = RD(hs(g), 18); + h = f.c.i; + if (a.g[h.p] == j) { + l = Wec(a, h); + e = e + RD(l.a, 17).a; + i = i && Heb(TD(l.b)); + } + } + a.g[b.p] = j; + e = e + a.d[b.p][0]; + return new Ptd(sgb(e), (Geb(), i ? true : false)); + } + function cXb(a, b) { + var c, d, e, f, g; + c = Kfb(UD(mQb(b, (yCc(), TBc)))); + c < 2 && pQb(b, TBc, 2); + d = RD(mQb(b, rAc), 88); + d == (Cmd(), Amd) && pQb(b, rAc, i2b(b)); + e = RD(mQb(b, NBc), 17); + e.a == 0 ? pQb(b, (Ywc(), Lwc), new Owb()) : pQb(b, (Ywc(), Lwc), new Pwb(e.a)); + f = TD(mQb(b, gBc)); + f == null && pQb(b, gBc, (Geb(), dE(mQb(b, yAc)) === dE((Ymd(), Umd)) ? true : false)); + FDb(new SDb(null, new Swb(b.a, 16)), new fXb(a)); + FDb(EDb(new SDb(null, new Swb(b.b, 16)), new hXb()), new jXb(a)); + g = new gFc(b); + pQb(b, (Ywc(), Qwc), g); + Sed(a.a); + Ved(a.a, (sXb(), nXb), RD(mQb(b, pAc), 188)); + Ved(a.a, oXb, RD(mQb(b, $Ac), 188)); + Ved(a.a, pXb, RD(mQb(b, oAc), 188)); + Ved(a.a, qXb, RD(mQb(b, kBc), 188)); + Ved(a.a, rXb, KRc(RD(mQb(b, yAc), 223))); + Ped(a.a, bXb(b)); + pQb(b, Kwc, Qed(a.a, b)); + } + function STc(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, o2, p, q, r; + l = new Tsb(); + g = new bnb(); + QTc(a, c, a.d.Ag(), g, l); + QTc(a, d, a.d.Bg(), g, l); + a.b = 0.2 * (p = RTc(EDb(new SDb(null, new Swb(g, 16)), new XTc())), q = RTc(EDb(new SDb(null, new Swb(g, 16)), new ZTc())), $wnd.Math.min(p, q)); + f = 0; + for (h = 0; h < g.c.length - 1; h++) { + i = (tFb(h, g.c.length), RD(g.c[h], 118)); + for (o2 = h + 1; o2 < g.c.length; o2++) { + f += PTc(a, i, (tFb(o2, g.c.length), RD(g.c[o2], 118))); + } + } + m = RD(mQb(b, (Ywc(), Lwc)), 234); + f >= 2 && (r = uSc(g, true, m), !a.e && (a.e = new xTc(a)), tTc(a.e, r, g, a.b), void 0); + UTc(g, m); + WTc(g); + n = -1; + for (k = new Anb(g); k.a < k.c.c.length; ) { + j = RD(ynb(k), 118); + if ($wnd.Math.abs(j.s - j.c) < Vze) { + continue; + } + n = $wnd.Math.max(n, j.o); + a.d.yg(j, e, a.c); + } + a.d.a.a.$b(); + return n + 1; + } + function s0c(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + l = RD(Hr((g = Sub(new dXc(b).a.d, 0), new gXc(g))), 40); + o2 = l ? RD(mQb(l, (q$c(), b$c)), 40) : null; + e = 1; + while (!!l && !!o2) { + i = 0; + u = 0; + c = l; + d = o2; + for (h = 0; h < e; h++) { + c = _Wc(c); + d = _Wc(d); + u += Kfb(UD(mQb(c, (q$c(), g$c)))); + i += Kfb(UD(mQb(d, g$c))); + } + t = Kfb(UD(mQb(o2, (q$c(), j$c)))); + s = Kfb(UD(mQb(l, j$c))); + m = u0c(a, l, o2); + n = t + i + a.b + m - s - u; + if (0 < n) { + j = b; + k = 0; + while (!!j && j != d) { + ++k; + j = RD(mQb(j, c$c), 40); + } + if (j) { + r = n / k; + j = b; + while (j != d) { + q = Kfb(UD(mQb(j, j$c))) + n; + pQb(j, j$c, q); + p = Kfb(UD(mQb(j, g$c))) + n; + pQb(j, g$c, p); + n -= r; + j = RD(mQb(j, c$c), 40); + } + } else { + return; + } + } + ++e; + l.d.b == 0 ? l = kWc(new dXc(b), e) : l = RD(Hr((f = Sub(new dXc(l).a.d, 0), new gXc(f))), 40); + o2 = l ? RD(mQb(l, b$c), 40) : null; + } + } + function Lmc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w; + if (m = a.c[b], n = a.c[c], (o2 = RD(mQb(m, (Ywc(), qwc)), 15), !!o2 && o2.gc() != 0 && o2.Hc(n)) || (p = m.k != (r3b(), o3b) && n.k != o3b, q = RD(mQb(m, pwc), 10), r = RD(mQb(n, pwc), 10), s = q != r, t = !!q && q != m || !!r && r != n, u = Mmc(m, (qpd(), Yod)), v = Mmc(n, npd), t = t | (Mmc(m, npd) || Mmc(n, Yod)), w = t && s || u || v, p && w) || m.k == (r3b(), q3b) && n.k == p3b || n.k == (r3b(), q3b) && m.k == p3b) { + return false; + } + k = a.c[b]; + f = a.c[c]; + e = jMc(a.e, k, f, (qpd(), ppd)); + i = jMc(a.i, k, f, Xod); + Cmc(a.f, k, f); + j = lmc(a.b, k, f) + RD(e.a, 17).a + RD(i.a, 17).a + a.f.d; + h = lmc(a.b, f, k) + RD(e.b, 17).a + RD(i.b, 17).a + a.f.b; + if (a.a) { + l = RD(mQb(k, Awc), 12); + g = RD(mQb(f, Awc), 12); + d = hMc(a.g, l, g); + j += RD(d.a, 17).a; + h += RD(d.b, 17).a; + } + return j > h; + } + function Iad(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s; + j = oxe; + k = oxe; + h = pxe; + i = pxe; + for (m = new Anb(b.i); m.a < m.c.c.length; ) { + l = RD(ynb(m), 68); + e = RD(RD(Wjb(a.g, l.a), 42).b, 27); + Byd(e, l.b.c, l.b.d); + j = $wnd.Math.min(j, e.i); + k = $wnd.Math.min(k, e.j); + h = $wnd.Math.max(h, e.i + e.g); + i = $wnd.Math.max(i, e.j + e.f); + } + n = RD(Gxd(a.c, (ncd(), ecd)), 107); + Esd(a.c, h - j + (n.b + n.c), i - k + (n.d + n.a), true, true); + Isd(a.c, -j + n.b, -k + n.d); + for (d = new dMd(uCd(a.c)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 74); + g = IGd(c, true, true); + o2 = JGd(c); + q = LGd(c); + p = new rjd(o2.i + o2.g / 2, o2.j + o2.f / 2); + f = new rjd(q.i + q.g / 2, q.j + q.f / 2); + r = ojd(new rjd(f.a, f.b), p); + wid(r, o2.g, o2.f); + $id(p, r); + s = ojd(new rjd(p.a, p.b), f); + wid(s, q.g, q.f); + $id(f, s); + Nzd(g, p.a, p.b); + Gzd(g, f.a, f.b); + } + } + function Tcc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2; + b.Ug("Label dummy removal", 1); + d = Kfb(UD(mQb(a, (yCc(), VBc)))); + e = Kfb(UD(mQb(a, ZBc))); + j = RD(mQb(a, rAc), 88); + for (i = new Anb(a.b); i.a < i.c.c.length; ) { + h = RD(ynb(i), 30); + l = new Jkb(h.a, 0); + while (l.b < l.d.gc()) { + k = (sFb(l.b < l.d.gc()), RD(l.d.Xb(l.c = l.b++), 10)); + if (k.k == (r3b(), n3b)) { + m = RD(mQb(k, (Ywc(), Awc)), 18); + o2 = Kfb(UD(mQb(m, FAc))); + g = dE(mQb(k, swc)) === dE((Pnd(), Mnd)); + c = new sjd(k.n); + g && (c.b += o2 + d); + f = new rjd(k.o.a, k.o.b + (k.k == n3b && !QDb(CDb(RD(mQb(k, Mwc), 15).Oc(), new PAb(new x3b()))).Bd((xDb(), wDb)) ? 0 : -o2 - d)); + n = RD(mQb(k, Mwc), 15); + j == (Cmd(), Bmd) || j == xmd ? Scc(n, c, e, f, g, j) : Rcc(n, c, e, f); + Tmb(m.b, n); + Hec(k, dE(mQb(a, yAc)) === dE((Ymd(), Vmd))); + Ckb(l); + } + } + } + b.Vg(); + } + function ZBd(a) { + if (a.q) + return; + a.q = true; + a.p = jBd(a, 0); + a.a = jBd(a, 1); + oBd(a.a, 0); + a.f = jBd(a, 2); + oBd(a.f, 1); + iBd(a.f, 2); + a.n = jBd(a, 3); + iBd(a.n, 3); + iBd(a.n, 4); + iBd(a.n, 5); + iBd(a.n, 6); + a.g = jBd(a, 4); + oBd(a.g, 7); + iBd(a.g, 8); + a.c = jBd(a, 5); + oBd(a.c, 7); + oBd(a.c, 8); + a.i = jBd(a, 6); + oBd(a.i, 9); + oBd(a.i, 10); + oBd(a.i, 11); + oBd(a.i, 12); + iBd(a.i, 13); + a.j = jBd(a, 7); + oBd(a.j, 9); + a.d = jBd(a, 8); + oBd(a.d, 3); + oBd(a.d, 4); + oBd(a.d, 5); + oBd(a.d, 6); + iBd(a.d, 7); + iBd(a.d, 8); + iBd(a.d, 9); + iBd(a.d, 10); + a.b = jBd(a, 9); + iBd(a.b, 0); + iBd(a.b, 1); + a.e = jBd(a, 10); + iBd(a.e, 1); + iBd(a.e, 2); + iBd(a.e, 3); + iBd(a.e, 4); + oBd(a.e, 5); + oBd(a.e, 6); + oBd(a.e, 7); + oBd(a.e, 8); + oBd(a.e, 9); + oBd(a.e, 10); + iBd(a.e, 11); + a.k = jBd(a, 11); + iBd(a.k, 0); + iBd(a.k, 1); + a.o = kBd(a, 12); + a.s = kBd(a, 13); + } + function CXb(a, b) { + b.dc() && JYb(a.j, true, true, true, true); + pb(b, (qpd(), cpd)) && JYb(a.j, true, true, true, false); + pb(b, Zod) && JYb(a.j, false, true, true, true); + pb(b, kpd) && JYb(a.j, true, true, false, true); + pb(b, mpd) && JYb(a.j, true, false, true, true); + pb(b, dpd) && JYb(a.j, false, true, true, false); + pb(b, $od) && JYb(a.j, false, true, false, true); + pb(b, lpd) && JYb(a.j, true, false, false, true); + pb(b, jpd) && JYb(a.j, true, false, true, false); + pb(b, hpd) && JYb(a.j, true, true, true, true); + pb(b, apd) && JYb(a.j, true, true, true, true); + pb(b, hpd) && JYb(a.j, true, true, true, true); + pb(b, _od) && JYb(a.j, true, true, true, true); + pb(b, ipd) && JYb(a.j, true, true, true, true); + pb(b, gpd) && JYb(a.j, true, true, true, true); + pb(b, fpd) && JYb(a.j, true, true, true, true); + } + function tAd(b, c, d) { + var e, f, g, h, i, j, k, l, m; + if (b.a != c.jk()) { + throw Adb(new agb(VHe + c.xe() + WHe)); + } + e = Oee((lke(), jke), c).Jl(); + if (e) { + return e.jk().wi().ri(e, d); + } + h = Oee(jke, c).Ll(); + if (h) { + if (d == null) { + return null; + } + i = RD(d, 15); + if (i.dc()) { + return ""; + } + m = new Qhb(); + for (g = i.Kc(); g.Ob(); ) { + f = g.Pb(); + Nhb(m, h.jk().wi().ri(h, f)); + m.a += " "; + } + return qeb(m, m.a.length - 1); + } + l = Oee(jke, c).Ml(); + if (!l.dc()) { + for (k = l.Kc(); k.Ob(); ) { + j = RD(k.Pb(), 156); + if (j.fk(d)) { + try { + m = j.jk().wi().ri(j, d); + if (m != null) { + return m; + } + } catch (a) { + a = zdb(a); + if (!ZD(a, 103)) + throw Adb(a); + } + } + } + throw Adb(new agb("Invalid value: '" + d + "' for datatype :" + c.xe())); + } + RD(c, 847).ok(); + return d == null ? null : ZD(d, 180) ? "" + RD(d, 180).a : rb(d) == qK ? a2d(nAd[0], RD(d, 206)) : jeb(d); + } + function ZUc(a) { + var b, c, d, e, f, g, h, i, j, k; + j = new Yub(); + h = new Yub(); + for (f = new Anb(a); f.a < f.c.c.length; ) { + d = RD(ynb(f), 131); + d.v = 0; + d.n = d.i.c.length; + d.u = d.t.c.length; + d.n == 0 && (Pub(j, d, j.c.b, j.c), true); + d.u == 0 && d.r.a.gc() == 0 && (Pub(h, d, h.c.b, h.c), true); + } + g = -1; + while (j.b != 0) { + d = RD(ku(j, 0), 131); + for (c = new Anb(d.t); c.a < c.c.c.length; ) { + b = RD(ynb(c), 274); + k = b.b; + k.v = $wnd.Math.max(k.v, d.v + 1); + g = $wnd.Math.max(g, k.v); + --k.n; + k.n == 0 && (Pub(j, k, j.c.b, j.c), true); + } + } + if (g > -1) { + for (e = Sub(h, 0); e.b != e.d.c; ) { + d = RD(evb(e), 131); + d.v = g; + } + while (h.b != 0) { + d = RD(ku(h, 0), 131); + for (c = new Anb(d.i); c.a < c.c.c.length; ) { + b = RD(ynb(c), 274); + i = b.a; + if (i.r.a.gc() != 0) { + continue; + } + i.v = $wnd.Math.min(i.v, d.v - 1); + --i.u; + i.u == 0 && (Pub(h, i, h.c.b, h.c), true); + } + } + } + } + function WTc(a) { + var b, c, d, e, f, g, h, i, j, k; + j = new bnb(); + h = new bnb(); + for (g = new Anb(a); g.a < g.c.c.length; ) { + e = RD(ynb(g), 118); + PSc(e, e.f.c.length); + QSc(e, e.k.c.length); + e.d == 0 && (ZEb(j.c, e), true); + e.i == 0 && e.e.b == 0 && (ZEb(h.c, e), true); + } + d = -1; + while (j.c.length != 0) { + e = RD(Xmb(j, 0), 118); + for (c = new Anb(e.k); c.a < c.c.c.length; ) { + b = RD(ynb(c), 132); + k = b.b; + RSc(k, $wnd.Math.max(k.o, e.o + 1)); + d = $wnd.Math.max(d, k.o); + PSc(k, k.d - 1); + k.d == 0 && (ZEb(j.c, k), true); + } + } + if (d > -1) { + for (f = new Anb(h); f.a < f.c.c.length; ) { + e = RD(ynb(f), 118); + e.o = d; + } + while (h.c.length != 0) { + e = RD(Xmb(h, 0), 118); + for (c = new Anb(e.f); c.a < c.c.c.length; ) { + b = RD(ynb(c), 132); + i = b.a; + if (i.e.b > 0) { + continue; + } + RSc(i, $wnd.Math.min(i.o, e.o - 1)); + QSc(i, i.i - 1); + i.i == 0 && (ZEb(h.c, i), true); + } + } + } + } + function Lid(a, b, c, d, e) { + var f, g, h, i; + i = oxe; + g = false; + h = Gid(a, ojd(new rjd(b.a, b.b), a), $id(new rjd(c.a, c.b), e), ojd(new rjd(d.a, d.b), c)); + f = !!h && !($wnd.Math.abs(h.a - a.a) <= IGe && $wnd.Math.abs(h.b - a.b) <= IGe || $wnd.Math.abs(h.a - b.a) <= IGe && $wnd.Math.abs(h.b - b.b) <= IGe); + h = Gid(a, ojd(new rjd(b.a, b.b), a), c, e); + !!h && (($wnd.Math.abs(h.a - a.a) <= IGe && $wnd.Math.abs(h.b - a.b) <= IGe) == ($wnd.Math.abs(h.a - b.a) <= IGe && $wnd.Math.abs(h.b - b.b) <= IGe) || f ? i = $wnd.Math.min(i, ejd(ojd(h, c))) : g = true); + h = Gid(a, ojd(new rjd(b.a, b.b), a), d, e); + !!h && (g || ($wnd.Math.abs(h.a - a.a) <= IGe && $wnd.Math.abs(h.b - a.b) <= IGe) == ($wnd.Math.abs(h.a - b.a) <= IGe && $wnd.Math.abs(h.b - b.b) <= IGe) || f) && (i = $wnd.Math.min(i, ejd(ojd(h, d)))); + return i; + } + function eWb(a) { + Cgd(a, new Pfd(Wfd($fd(Xfd(Zfd(Yfd(new agd(), AAe), BAe), "Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."), new hWb()), Zze))); + Agd(a, AAe, dAe, iGd(XVb)); + Agd(a, AAe, fAe, (Geb(), true)); + Agd(a, AAe, jAe, iGd($Vb)); + Agd(a, AAe, CAe, iGd(_Vb)); + Agd(a, AAe, iAe, iGd(aWb)); + Agd(a, AAe, kAe, iGd(ZVb)); + Agd(a, AAe, gAe, iGd(bWb)); + Agd(a, AAe, lAe, iGd(cWb)); + Agd(a, AAe, vAe, iGd(WVb)); + Agd(a, AAe, xAe, iGd(UVb)); + Agd(a, AAe, yAe, iGd(VVb)); + Agd(a, AAe, zAe, iGd(YVb)); + Agd(a, AAe, wAe, iGd(TVb)); + } + function kJc(a) { + var b, c, d, e, f, g, h, i; + b = null; + for (d = new Anb(a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 239); + Kfb(pJc(c.g, c.d[0]).a); + c.b = null; + if (!!c.e && c.e.gc() > 0 && c.c == 0) { + !b && (b = new bnb()); + ZEb(b.c, c); + } + } + if (b) { + while (b.c.length != 0) { + c = RD(Xmb(b, 0), 239); + if (!!c.b && c.b.c.length > 0) { + for (f = (!c.b && (c.b = new bnb()), new Anb(c.b)); f.a < f.c.c.length; ) { + e = RD(ynb(f), 239); + if (Mfb(pJc(e.g, e.d[0]).a) == Mfb(pJc(c.g, c.d[0]).a)) { + if (Wmb(a, e, 0) > Wmb(a, c, 0)) { + return new Ptd(e, c); + } + } else if (Kfb(pJc(e.g, e.d[0]).a) > Kfb(pJc(c.g, c.d[0]).a)) { + return new Ptd(e, c); + } + } + } + for (h = (!c.e && (c.e = new bnb()), c.e).Kc(); h.Ob(); ) { + g = RD(h.Pb(), 239); + i = (!g.b && (g.b = new bnb()), g.b); + wFb(0, i.c.length); + XEb(i.c, 0, c); + g.c == i.c.length && (ZEb(b.c, g), true); + } + } + } + return null; + } + function _Jc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r; + b.Ug("Interactive crossing minimization", 1); + g = 0; + for (f = new Anb(a.b); f.a < f.c.c.length; ) { + d = RD(ynb(f), 30); + d.p = g++; + } + m = c1b(a); + q = new ILc(m.length); + yNc(new mob(cD(WC(QY, 1), rve, 230, 0, [q])), m); + p = 0; + g = 0; + for (e = new Anb(a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 30); + c = 0; + l = 0; + for (k = new Anb(d.a); k.a < k.c.c.length; ) { + i = RD(ynb(k), 10); + if (i.n.a > 0) { + c += i.n.a + i.o.a / 2; + ++l; + } + for (o2 = new Anb(i.j); o2.a < o2.c.c.length; ) { + n = RD(ynb(o2), 12); + n.p = p++; + } + } + l > 0 && (c /= l); + r = $C(iE, vxe, 28, d.a.c.length, 15, 1); + h = 0; + for (j = new Anb(d.a); j.a < j.c.c.length; ) { + i = RD(ynb(j), 10); + i.p = h++; + r[i.p] = $Jc(i, c); + i.k == (r3b(), o3b) && pQb(i, (Ywc(), Cwc), r[i.p]); + } + yob(); + _mb(d.a, new eKc(r)); + wIc(q, m, g, true); + ++g; + } + b.Vg(); + } + function wte(a, b) { + var c, d, e, f, g, h, i, j, k; + if (b.e == 5) { + tte(a, b); + return; + } + j = b; + if (j.b == null || a.b == null) + return; + vte(a); + ste(a); + vte(j); + ste(j); + c = $C(kE, Pwe, 28, a.b.length + j.b.length, 15, 1); + k = 0; + d = 0; + g = 0; + while (d < a.b.length && g < j.b.length) { + e = a.b[d]; + f = a.b[d + 1]; + h = j.b[g]; + i = j.b[g + 1]; + if (f < h) { + c[k++] = a.b[d++]; + c[k++] = a.b[d++]; + } else if (f >= h && e <= i) { + if (h <= e && f <= i) { + d += 2; + } else if (h <= e) { + a.b[d] = i + 1; + g += 2; + } else if (f <= i) { + c[k++] = e; + c[k++] = h - 1; + d += 2; + } else { + c[k++] = e; + c[k++] = h - 1; + a.b[d] = i + 1; + g += 2; + } + } else if (i < e) { + g += 2; + } else { + throw Adb(new yz("Token#subtractRanges(): Internal Error: [" + a.b[d] + "," + a.b[d + 1] + "] - [" + j.b[g] + "," + j.b[g + 1] + "]")); + } + } + while (d < a.b.length) { + c[k++] = a.b[d++]; + c[k++] = a.b[d++]; + } + a.b = $C(kE, Pwe, 28, k, 15, 1); + hib(c, 0, a.b, 0, k); + } + function oTb(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + h = IGd(b, false, false); + r = ssd(h); + d && (r = Ijd(r)); + t = Kfb(UD(Gxd(b, (tSb(), mSb)))); + q = (sFb(r.b != 0), RD(r.a.a.c, 8)); + l = RD(ju(r, 1), 8); + if (r.b > 2) { + k = new bnb(); + Tmb(k, new Rkb(r, 1, r.b)); + f = jTb(k, t + a.a); + s = new ORb(f); + kQb(s, b); + ZEb(c.c, s); + } else { + d ? s = RD(Wjb(a.b, JGd(b)), 272) : s = RD(Wjb(a.b, LGd(b)), 272); + } + i = JGd(b); + d && (i = LGd(b)); + g = qTb(q, i); + j = t + a.a; + if (g.a) { + j += $wnd.Math.abs(q.b - l.b); + p = new rjd(l.a, (l.b + q.b) / 2); + } else { + j += $wnd.Math.abs(q.a - l.a); + p = new rjd((l.a + q.a) / 2, l.b); + } + d ? Zjb(a.d, b, new QRb(s, g, p, j)) : Zjb(a.c, b, new QRb(s, g, p, j)); + Zjb(a.b, b, s); + o2 = (!b.n && (b.n = new C5d(I4, b, 1, 7)), b.n); + for (n = new dMd(o2); n.e != n.i.gc(); ) { + m = RD(bMd(n), 135); + e = nTb(a, m, true, 0, 0); + ZEb(c.c, e); + } + } + function sMb(a) { + var b, c, d, e, f, g, h; + if (a.A.dc()) { + return; + } + if (a.A.Hc((Qpd(), Opd))) { + RD(Vrb(a.b, (qpd(), Yod)), 127).k = true; + RD(Vrb(a.b, npd), 127).k = true; + b = a.q != (Bod(), xod) && a.q != wod; + QJb(RD(Vrb(a.b, Xod), 127), b); + QJb(RD(Vrb(a.b, ppd), 127), b); + QJb(a.g, b); + if (a.A.Hc(Ppd)) { + RD(Vrb(a.b, Yod), 127).j = true; + RD(Vrb(a.b, npd), 127).j = true; + RD(Vrb(a.b, Xod), 127).k = true; + RD(Vrb(a.b, ppd), 127).k = true; + a.g.k = true; + } + } + if (a.A.Hc(Npd)) { + a.a.j = true; + a.a.k = true; + a.g.j = true; + a.g.k = true; + h = a.B.Hc((dqd(), _pd)); + for (e = nMb(), f = 0, g = e.length; f < g; ++f) { + d = e[f]; + c = RD(Vrb(a.i, d), 314); + if (c) { + if (jMb(d)) { + c.j = true; + c.k = true; + } else { + c.j = !h; + c.k = !h; + } + } + } + } + if (a.A.Hc(Mpd) && a.B.Hc((dqd(), $pd))) { + a.g.j = true; + a.g.j = true; + if (!a.a.j) { + a.a.j = true; + a.a.k = true; + a.a.e = true; + } + } + } + function eOc(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r; + for (d = new Anb(a.e.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 30); + for (f = new Anb(c.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + n = a.i[e.p]; + j = n.a.e; + i = n.d.e; + e.n.b = j; + r = i - j - e.o.b; + b = BOc(e); + m = (wDc(), (!e.q ? (yob(), yob(), wob) : e.q)._b((yCc(), iBc)) ? l = RD(mQb(e, iBc), 203) : l = RD(mQb(Y2b(e), jBc), 203), l); + b && (m == tDc || m == sDc) && (e.o.b += r); + if (b && (m == vDc || m == tDc || m == sDc)) { + for (p = new Anb(e.j); p.a < p.c.c.length; ) { + o2 = RD(ynb(p), 12); + if ((qpd(), apd).Hc(o2.j)) { + k = RD(Wjb(a.k, o2), 125); + o2.n.b = k.e - j; + } + } + for (h = new Anb(e.b); h.a < h.c.c.length; ) { + g = RD(ynb(h), 72); + q = RD(mQb(e, dBc), 21); + q.Hc((dod(), aod)) ? g.n.b += r : q.Hc(bod) && (g.n.b += r / 2); + } + (m == tDc || m == sDc) && b3b(e, (qpd(), npd)).Jc(new yPc(r)); + } + } + } + } + function qOc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + j = new bnb(); + for (i = new Anb(b.a); i.a < i.c.c.length; ) { + g = RD(ynb(i), 10); + for (m = b3b(g, (qpd(), Xod)).Kc(); m.Ob(); ) { + l = RD(m.Pb(), 12); + for (e = new Anb(l.g); e.a < e.c.c.length; ) { + d = RD(ynb(e), 18); + if (!W0b(d) && d.c.i.c == d.d.i.c || W0b(d) || d.d.i.c != c) { + continue; + } + ZEb(j.c, d); + } + } + } + for (h = hv(c.a).Kc(); h.Ob(); ) { + g = RD(h.Pb(), 10); + for (m = b3b(g, (qpd(), ppd)).Kc(); m.Ob(); ) { + l = RD(m.Pb(), 12); + for (e = new Anb(l.e); e.a < e.c.c.length; ) { + d = RD(ynb(e), 18); + if (!W0b(d) && d.c.i.c == d.d.i.c || W0b(d) || d.c.i.c != b) { + continue; + } + if (j.c.length != 0) { + k = new Jkb(j, j.c.length); + f = (sFb(k.b > 0), RD(k.a.Xb(k.c = --k.b), 18)); + while (f != d && k.b > 0) { + a.a[f.p] = true; + a.a[d.p] = true; + f = (sFb(k.b > 0), RD(k.a.Xb(k.c = --k.b), 18)); + } + k.b > 0 && Ckb(k); + } + } + } + } + } + function Zyb(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n; + if (!a.b) { + return false; + } + g = null; + m = null; + i = new Fzb(null, null); + e = 1; + i.a[1] = a.b; + l = i; + while (l.a[e]) { + j = e; + h = m; + m = l; + l = l.a[e]; + d = a.a.Ne(b, l.d); + e = d < 0 ? 0 : 1; + d == 0 && (!c.c || Fvb(l.e, c.d)) && (g = l); + if (!(!!l && l.b) && !Vyb(l.a[e])) { + if (Vyb(l.a[1 - e])) { + m = m.a[j] = azb(l, e); + } else if (!Vyb(l.a[1 - e])) { + n = m.a[1 - j]; + if (n) { + if (!Vyb(n.a[1 - j]) && !Vyb(n.a[j])) { + m.b = false; + n.b = true; + l.b = true; + } else { + f = h.a[1] == m ? 1 : 0; + Vyb(n.a[j]) ? h.a[f] = _yb(m, j) : Vyb(n.a[1 - j]) && (h.a[f] = azb(m, j)); + l.b = h.a[f].b = true; + h.a[f].a[0].b = false; + h.a[f].a[1].b = false; + } + } + } + } + } + if (g) { + c.b = true; + c.d = g.e; + if (l != g) { + k = new Fzb(l.d, l.e); + $yb(a, i, g, k); + m == g && (m = k); + } + m.a[m.a[1] == l ? 1 : 0] = l.a[!l.a[0] ? 1 : 0]; + --a.c; + } + a.b = i.a[1]; + !!a.b && (a.b.b = false); + return c.b; + } + function Ilc(a) { + var b, c, d, e, f, g, h, i, j, k, l, m; + for (e = new Anb(a.a.a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 60); + for (i = d.c.Kc(); i.Ob(); ) { + h = RD(i.Pb(), 60); + if (d.a == h.a) { + continue; + } + Dmd(a.a.d) ? l = a.a.g.ff(d, h) : l = a.a.g.gf(d, h); + f = d.b.a + d.d.b + l - h.b.a; + f = $wnd.Math.ceil(f); + f = $wnd.Math.max(0, f); + if (_jc(d, h)) { + g = eJb(new gJb(), a.d); + j = eE($wnd.Math.ceil(h.b.a - d.b.a)); + b = j - (h.b.a - d.b.a); + k = $jc(d).a; + c = d; + if (!k) { + k = $jc(h).a; + b = -b; + c = h; + } + if (k) { + c.b.a -= b; + k.n.a -= b; + } + rIb(uIb(tIb(vIb(sIb(new wIb(), $wnd.Math.max(0, j)), 1), g), a.c[d.a.d])); + rIb(uIb(tIb(vIb(sIb(new wIb(), $wnd.Math.max(0, -j)), 1), g), a.c[h.a.d])); + } else { + m = 1; + (ZD(d.g, 154) && ZD(h.g, 10) || ZD(h.g, 154) && ZD(d.g, 10)) && (m = 2); + rIb(uIb(tIb(vIb(sIb(new wIb(), eE(f)), m), a.c[d.a.d]), a.c[h.a.d])); + } + } + } + } + function PIc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + if (c) { + d = -1; + k = new Jkb(b, 0); + while (k.b < k.d.gc()) { + h = (sFb(k.b < k.d.gc()), RD(k.d.Xb(k.c = k.b++), 10)); + l = a.c[h.c.p][h.p].a; + if (l == null) { + g = d + 1; + f = new Jkb(b, k.b); + while (f.b < f.d.gc()) { + m = TIc(a, (sFb(f.b < f.d.gc()), RD(f.d.Xb(f.c = f.b++), 10))).a; + if (m != null) { + g = (uFb(m), m); + break; + } + } + l = (d + g) / 2; + a.c[h.c.p][h.p].a = l; + a.c[h.c.p][h.p].d = (uFb(l), l); + a.c[h.c.p][h.p].b = 1; + } + d = (uFb(l), l); + } + } else { + e = 0; + for (j = new Anb(b); j.a < j.c.c.length; ) { + h = RD(ynb(j), 10); + a.c[h.c.p][h.p].a != null && (e = $wnd.Math.max(e, Kfb(a.c[h.c.p][h.p].a))); + } + e += 2; + for (i = new Anb(b); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + if (a.c[h.c.p][h.p].a == null) { + l = Kwb(a.i, 24) * Nxe * e - 1; + a.c[h.c.p][h.p].a = l; + a.c[h.c.p][h.p].d = l; + a.c[h.c.p][h.p].b = 1; + } + } + } + } + function xA(a, b, c) { + var d, e, f, g, h, i, j, k, l; + !c && (c = hB(b.q.getTimezoneOffset())); + e = (b.q.getTimezoneOffset() - c.a) * 6e4; + h = new wB(Bdb(Hdb(b.q.getTime()), e)); + i = h; + if (h.q.getTimezoneOffset() != b.q.getTimezoneOffset()) { + e > 0 ? e -= 864e5 : e += 864e5; + i = new wB(Bdb(Hdb(b.q.getTime()), e)); + } + k = new cib(); + j = a.a.length; + for (f = 0; f < j; ) { + d = ihb(a.a, f); + if (d >= 97 && d <= 122 || d >= 65 && d <= 90) { + for (g = f + 1; g < j && ihb(a.a, g) == d; ++g) + ; + LA(k, d, g - f, h, i, c); + f = g; + } else if (d == 39) { + ++f; + if (f < j && ihb(a.a, f) == 39) { + k.a += "'"; + ++f; + continue; + } + l = false; + while (!l) { + g = f; + while (g < j && ihb(a.a, g) != 39) { + ++g; + } + if (g >= j) { + throw Adb(new agb("Missing trailing '")); + } + g + 1 < j && ihb(a.a, g + 1) == 39 ? ++g : l = true; + Zhb(k, zhb(a.a, f, g)); + f = g + 1; + } + } else { + k.a += String.fromCharCode(d); + ++f; + } + } + return k.a; + } + function abe() { + RRd(g7, new Ibe()); + RRd(f7, new nce()); + RRd(h7, new Uce()); + RRd(i7, new kde()); + RRd(k7, new nde()); + RRd(m7, new qde()); + RRd(l7, new tde()); + RRd(n7, new wde()); + RRd(p7, new ebe()); + RRd(q7, new hbe()); + RRd(r7, new kbe()); + RRd(s7, new nbe()); + RRd(t7, new qbe()); + RRd(u7, new tbe()); + RRd(v7, new wbe()); + RRd(y7, new zbe()); + RRd(A7, new Cbe()); + RRd(C8, new Fbe()); + RRd(o7, new Lbe()); + RRd(z7, new Obe()); + RRd(QI, new Rbe()); + RRd(WC(gE, 1), new Ube()); + RRd(RI, new Xbe()); + RRd(SI, new $be()); + RRd(qK, new bce()); + RRd(T6, new ece()); + RRd(VI, new hce()); + RRd(Y6, new kce()); + RRd(Z6, new qce()); + RRd(Tbb, new tce()); + RRd(Jbb, new wce()); + RRd(ZI, new zce()); + RRd(bJ, new Cce()); + RRd(UI, new Fce()); + RRd(eJ, new Ice()); + RRd(VK, new Lce()); + RRd(Aab, new Oce()); + RRd(zab, new Rce()); + RRd(lJ, new Xce()); + RRd(qJ, new $ce()); + RRd(a7, new bde()); + RRd($6, new ede()); + } + function Inb(a, b) { + var c, d, e, f, g, h, i, j, k; + if (a == null) { + return vve; + } + i = b.a.zc(a, b); + if (i != null) { + return "[...]"; + } + c = new Jyb(pve, "[", "]"); + for (e = a, f = 0, g = e.length; f < g; ++f) { + d = e[f]; + if (d != null && (rb(d).i & 4) != 0) { + if (Array.isArray(d) && (k = XC(d), !(k >= 14 && k <= 16))) { + if (b.a._b(d)) { + !c.a ? c.a = new dib(c.d) : Zhb(c.a, c.b); + Whb(c.a, "[...]"); + } else { + h = SD(d); + j = new btb(b); + Gyb(c, Inb(h, j)); + } + } else + ZD(d, 183) ? Gyb(c, hob(RD(d, 183))) : ZD(d, 195) ? Gyb(c, aob(RD(d, 195))) : ZD(d, 201) ? Gyb(c, bob(RD(d, 201))) : ZD(d, 2111) ? Gyb(c, gob(RD(d, 2111))) : ZD(d, 53) ? Gyb(c, eob(RD(d, 53))) : ZD(d, 376) ? Gyb(c, fob(RD(d, 376))) : ZD(d, 846) ? Gyb(c, dob(RD(d, 846))) : ZD(d, 109) && Gyb(c, cob(RD(d, 109))); + } else { + Gyb(c, d == null ? vve : jeb(d)); + } + } + return !c.a ? c.c : c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e); + } + function KXd(a, b) { + var c, d, e, f; + f = a.F; + if (b == null) { + a.F = null; + yXd(a, null); + } else { + a.F = (uFb(b), b); + d = qhb(b, Fhb(60)); + if (d != -1) { + e = (AFb(0, d, b.length), b.substr(0, d)); + qhb(b, Fhb(46)) == -1 && !lhb(e, hve) && !lhb(e, dKe) && !lhb(e, eKe) && !lhb(e, fKe) && !lhb(e, gKe) && !lhb(e, hKe) && !lhb(e, iKe) && !lhb(e, jKe) && (e = kKe); + c = thb(b, Fhb(62)); + c != -1 && (e += "" + (BFb(c + 1, b.length + 1), b.substr(c + 1))); + yXd(a, e); + } else { + e = b; + if (qhb(b, Fhb(46)) == -1) { + d = qhb(b, Fhb(91)); + d != -1 && (e = (AFb(0, d, b.length), b.substr(0, d))); + if (!lhb(e, hve) && !lhb(e, dKe) && !lhb(e, eKe) && !lhb(e, fKe) && !lhb(e, gKe) && !lhb(e, hKe) && !lhb(e, iKe) && !lhb(e, jKe)) { + e = kKe; + d != -1 && (e += "" + (BFb(d, b.length + 1), b.substr(d))); + } else { + e = b; + } + } + yXd(a, e); + e == b && (a.F = a.D); + } + } + (a.Db & 4) != 0 && (a.Db & 1) == 0 && qvd(a, new N3d(a, 1, 5, f, b)); + } + function Pvd(b, c) { + var d, e, f, g, h, i, j, k, l, m; + j = c.length - 1; + i = (BFb(j, c.length), c.charCodeAt(j)); + if (i == 93) { + h = qhb(c, Fhb(91)); + if (h >= 0) { + f = Uvd(b, (AFb(1, h, c.length), c.substr(1, h - 1))); + l = (AFb(h + 1, j, c.length), c.substr(h + 1, j - (h + 1))); + return Nvd(b, l, f); + } + } else { + d = -1; + _eb == null && (_eb = new RegExp("\\d")); + if (_eb.test(String.fromCharCode(i))) { + d = uhb(c, Fhb(46), j - 1); + if (d >= 0) { + e = RD(Fvd(b, Zvd(b, (AFb(1, d, c.length), c.substr(1, d - 1))), false), 61); + k = 0; + try { + k = Oeb((BFb(d + 1, c.length + 1), c.substr(d + 1)), qwe, lve); + } catch (a) { + a = zdb(a); + if (ZD(a, 130)) { + g = a; + throw Adb(new RSd(g)); + } else + throw Adb(a); + } + if (k < e.gc()) { + m = e.Xb(k); + ZD(m, 76) && (m = RD(m, 76).md()); + return RD(m, 58); + } + } + } + if (d < 0) { + return RD(Fvd(b, Zvd(b, (BFb(1, c.length + 1), c.substr(1))), false), 58); + } + } + return null; + } + function Jcc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p; + b.Ug("Label dummy insertions", 1); + l = new bnb(); + g = Kfb(UD(mQb(a, (yCc(), VBc)))); + j = Kfb(UD(mQb(a, ZBc))); + k = RD(mQb(a, rAc), 88); + for (n = new Anb(a.a); n.a < n.c.c.length; ) { + m = RD(ynb(n), 10); + for (f = new is(Mr(a3b(m).a.Kc(), new ir())); gs(f); ) { + e = RD(hs(f), 18); + if (e.c.i != e.d.i && br(e.b, Gcc)) { + p = Kcc(e); + o2 = ev(e.b.c.length); + c = Icc(a, e, p, o2); + ZEb(l.c, c); + d = c.o; + h = new Jkb(e.b, 0); + while (h.b < h.d.gc()) { + i = (sFb(h.b < h.d.gc()), RD(h.d.Xb(h.c = h.b++), 72)); + if (dE(mQb(i, wAc)) === dE((Omd(), Lmd))) { + if (k == (Cmd(), Bmd) || k == xmd) { + d.a += i.o.a + j; + d.b = $wnd.Math.max(d.b, i.o.b); + } else { + d.a = $wnd.Math.max(d.a, i.o.a); + d.b += i.o.b + j; + } + ZEb(o2.c, i); + Ckb(h); + } + } + if (k == (Cmd(), Bmd) || k == xmd) { + d.a -= j; + d.b += g + p; + } else { + d.b += g - j + p; + } + } + } + } + Tmb(a.a, l); + b.Vg(); + } + function H_b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2; + a.c = a.e; + o2 = TD(mQb(b, (yCc(), OBc))); + n = o2 == null || (uFb(o2), o2); + f = RD(mQb(b, (Ywc(), kwc)), 21).Hc((ovc(), hvc)); + e = RD(mQb(b, BBc), 101); + c = !(e == (Bod(), vod) || e == xod || e == wod); + if (n && (c || !f)) { + for (l = new Anb(b.a); l.a < l.c.c.length; ) { + j = RD(ynb(l), 10); + j.p = 0; + } + m = new bnb(); + for (k = new Anb(b.a); k.a < k.c.c.length; ) { + j = RD(ynb(k), 10); + d = G_b(a, j, null); + if (d) { + i = new d1b(); + kQb(i, b); + pQb(i, ewc, RD(d.b, 21)); + C2b(i.d, b.d); + pQb(i, nBc, null); + for (h = RD(d.a, 15).Kc(); h.Ob(); ) { + g = RD(h.Pb(), 10); + Rmb(i.a, g); + g.a = i; + } + m.Fc(i); + } + } + f && (dE(mQb(b, Yzc)) === dE((U$b(), Q$b)) ? a.c = a.b : dE(mQb(b, Yzc)) === dE(S$b) ? a.c = a.d : a.c = a.a); + } else { + m = new mob(cD(WC(eR, 1), OAe, 36, 0, [b])); + } + dE(mQb(b, Yzc)) !== dE((U$b(), T$b)) && (yob(), m.jd(new K_b())); + return m; + } + function o2d(a, b, c) { + var d, e, f, g, h, i, j; + j = a.c; + !b && (b = d2d); + a.c = b; + if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { + i = new N3d(a, 1, 2, j, a.c); + !c ? c = i : c.nj(i); + } + if (j != b) { + if (ZD(a.Cb, 292)) { + if (a.Db >> 16 == -10) { + c = RD(a.Cb, 292).Yk(b, c); + } else if (a.Db >> 16 == -15) { + !b && (b = (JTd(), wTd)); + !j && (j = (JTd(), wTd)); + if (a.Cb.Yh()) { + i = new P3d(a.Cb, 1, 13, j, b, fZd(o4d(RD(a.Cb, 62)), a), false); + !c ? c = i : c.nj(i); + } + } + } else if (ZD(a.Cb, 90)) { + if (a.Db >> 16 == -23) { + ZD(b, 90) || (b = (JTd(), zTd)); + ZD(j, 90) || (j = (JTd(), zTd)); + if (a.Cb.Yh()) { + i = new P3d(a.Cb, 1, 10, j, b, fZd(tYd(RD(a.Cb, 29)), a), false); + !c ? c = i : c.nj(i); + } + } + } else if (ZD(a.Cb, 457)) { + h = RD(a.Cb, 850); + g = (!h.b && (h.b = new pae(new lae())), h.b); + for (f = (d = new vkb(new mkb(g.a).a), new xae(d)); f.a.b; ) { + e = RD(tkb(f.a).ld(), 89); + c = o2d(e, k2d(e, h), c); + } + } + } + return c; + } + function Y4b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m; + g = Heb(TD(Gxd(a, (yCc(), NAc)))); + m = RD(Gxd(a, EBc), 21); + i = false; + j = false; + l = new dMd((!a.c && (a.c = new C5d(K4, a, 9, 9)), a.c)); + while (l.e != l.i.gc() && (!i || !j)) { + f = RD(bMd(l), 123); + h = 0; + for (e = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [(!f.d && (f.d = new Yie(G4, f, 8, 5)), f.d), (!f.e && (f.e = new Yie(G4, f, 7, 4)), f.e)]))); gs(e); ) { + d = RD(hs(e), 74); + k = g && ozd(d) && Heb(TD(Gxd(d, OAc))); + c = cZd((!d.b && (d.b = new Yie(E4, d, 4, 7)), d.b), f) ? a == vCd(AGd(RD(QHd((!d.c && (d.c = new Yie(E4, d, 5, 8)), d.c), 0), 84))) : a == vCd(AGd(RD(QHd((!d.b && (d.b = new Yie(E4, d, 4, 7)), d.b), 0), 84))); + if (k || c) { + ++h; + if (h > 1) { + break; + } + } + } + h > 0 ? i = true : m.Hc((Pod(), Lod)) && (!f.n && (f.n = new C5d(I4, f, 1, 7)), f.n).i > 0 && (i = true); + h > 1 && (j = true); + } + i && b.Fc((ovc(), hvc)); + j && b.Fc((ovc(), ivc)); + } + function Dsd(a) { + var b, c, d, e, f, g, h, i, j, k, l, m; + m = RD(Gxd(a, (umd(), kld)), 21); + if (m.dc()) { + return null; + } + h = 0; + g = 0; + if (m.Hc((Qpd(), Opd))) { + k = RD(Gxd(a, Hld), 101); + d = 2; + c = 2; + e = 2; + f = 2; + b = !vCd(a) ? RD(Gxd(a, Nkd), 88) : RD(Gxd(vCd(a), Nkd), 88); + for (j = new dMd((!a.c && (a.c = new C5d(K4, a, 9, 9)), a.c)); j.e != j.i.gc(); ) { + i = RD(bMd(j), 123); + l = RD(Gxd(i, Old), 64); + if (l == (qpd(), opd)) { + l = osd(i, b); + Ixd(i, Old, l); + } + if (k == (Bod(), wod)) { + switch (l.g) { + case 1: + d = $wnd.Math.max(d, i.i + i.g); + break; + case 2: + c = $wnd.Math.max(c, i.j + i.f); + break; + case 3: + e = $wnd.Math.max(e, i.i + i.g); + break; + case 4: + f = $wnd.Math.max(f, i.j + i.f); + } + } else { + switch (l.g) { + case 1: + d += i.g + 2; + break; + case 2: + c += i.f + 2; + break; + case 3: + e += i.g + 2; + break; + case 4: + f += i.f + 2; + } + } + } + h = $wnd.Math.max(d, e); + g = $wnd.Math.max(c, f); + } + return Esd(a, h, g, true, true); + } + function Rqc(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + s = RD(zDb(PDb(CDb(new SDb(null, new Swb(b.d, 16)), new Vqc(c)), new Xqc(c)), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + l = lve; + k = qwe; + for (i = new Anb(b.b.j); i.a < i.c.c.length; ) { + h = RD(ynb(i), 12); + if (h.j == c) { + l = $wnd.Math.min(l, h.p); + k = $wnd.Math.max(k, h.p); + } + } + if (l == lve) { + for (g = 0; g < s.gc(); g++) { + Umc(RD(s.Xb(g), 105), c, g); + } + } else { + t = $C(kE, Pwe, 28, e.length, 15, 1); + Qnb(t, t.length); + for (r = s.Kc(); r.Ob(); ) { + q = RD(r.Pb(), 105); + f = RD(Wjb(a.b, q), 183); + j = 0; + for (p = l; p <= k; p++) { + f[p] && (j = $wnd.Math.max(j, d[p])); + } + if (q.i) { + n = q.i.c; + u = new _sb(); + for (m = 0; m < e.length; m++) { + e[n][m] && Ysb(u, sgb(t[m])); + } + while (Zsb(u, sgb(j))) { + ++j; + } + } + Umc(q, c, j); + for (o2 = l; o2 <= k; o2++) { + f[o2] && (d[o2] = j + 1); + } + !!q.i && (t[q.i.c] = j); + } + } + } + function wOc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p; + e = null; + for (d = new Anb(b.a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 10); + BOc(c) ? f = (h = eJb(fJb(new gJb(), c), a.f), i = eJb(fJb(new gJb(), c), a.f), j = new ROc(c, true, h, i), k = c.o.b, l = (wDc(), (!c.q ? (yob(), yob(), wob) : c.q)._b((yCc(), iBc)) ? m = RD(mQb(c, iBc), 203) : m = RD(mQb(Y2b(c), jBc), 203), m), n = 1e4, l == sDc && (n = 1), o2 = rIb(uIb(tIb(sIb(vIb(new wIb(), n), eE($wnd.Math.ceil(k))), h), i)), l == tDc && Ysb(a.d, o2), xOc(a, hv(b3b(c, (qpd(), ppd))), j), xOc(a, b3b(c, Xod), j), j) : f = (p = eJb(fJb(new gJb(), c), a.f), FDb(CDb(new SDb(null, new Swb(c.j, 16)), new cPc()), new ePc(a, p)), new ROc(c, false, p, p)); + a.i[c.p] = f; + if (e) { + g = e.c.d.a + bFc(a.n, e.c, c) + c.d.d; + e.b || (g += e.c.o.b); + rIb(uIb(tIb(vIb(sIb(new wIb(), eE($wnd.Math.ceil(g))), 0), e.d), f.a)); + } + e = f; + } + } + function h_b(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n; + f = new t_b(b); + l = c_b(a, b, f); + n = $wnd.Math.max(Kfb(UD(mQb(b, (yCc(), FAc)))), 1); + for (k = new Anb(l.a); k.a < k.c.c.length; ) { + j = RD(ynb(k), 42); + i = g_b(RD(j.a, 8), RD(j.b, 8), n); + o = true; + o = o & l_b(c, new rjd(i.c, i.d)); + o = o & l_b(c, Zid(new rjd(i.c, i.d), i.b, 0)); + o = o & l_b(c, Zid(new rjd(i.c, i.d), 0, i.a)); + o & l_b(c, Zid(new rjd(i.c, i.d), i.b, i.a)); + } + m = f.d; + h = g_b(RD(l.b.a, 8), RD(l.b.b, 8), n); + if (m == (qpd(), ppd) || m == Xod) { + d.c[m.g] = $wnd.Math.min(d.c[m.g], h.d); + d.b[m.g] = $wnd.Math.max(d.b[m.g], h.d + h.a); + } else { + d.c[m.g] = $wnd.Math.min(d.c[m.g], h.c); + d.b[m.g] = $wnd.Math.max(d.b[m.g], h.c + h.b); + } + e = pxe; + g = f.c.i.d; + switch (m.g) { + case 4: + e = g.c; + break; + case 2: + e = g.b; + break; + case 1: + e = g.a; + break; + case 3: + e = g.d; + } + d.a[m.g] = $wnd.Math.max(d.a[m.g], e); + return f; + } + function W7b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D; + h = RD(Wjb(b.c, a), 468); + s = b.a.c; + i = b.a.c + b.a.b; + C = h.f; + D = h.a; + g = C < D; + p = new rjd(s, C); + t = new rjd(i, D); + e = (s + i) / 2; + q = new rjd(e, C); + u = new rjd(e, D); + f = X7b(a, C, D); + w = K3b(b.B); + A = new rjd(e, f); + B = K3b(b.D); + c = uid(cD(WC(l3, 1), Nve, 8, 0, [w, A, B])); + n = false; + r = b.B.i; + if (!!r && !!r.c && h.d) { + j = g && r.p < r.c.a.c.length - 1 || !g && r.p > 0; + if (j) { + if (j) { + m = r.p; + g ? ++m : --m; + l = RD(Vmb(r.c.a, m), 10); + d = Z7b(l); + n = !(Did(d, w, c[0]) || yid(d, w, c[0])); + } + } else { + n = true; + } + } + o2 = false; + v = b.D.i; + if (!!v && !!v.c && h.e) { + k = g && v.p > 0 || !g && v.p < v.c.a.c.length - 1; + if (k) { + m = v.p; + g ? --m : ++m; + l = RD(Vmb(v.c.a, m), 10); + d = Z7b(l); + o2 = !(Did(d, c[0], B) || yid(d, c[0], B)); + } else { + o2 = true; + } + } + n && o2 && Mub(a.a, A); + n || zjd(a.a, cD(WC(l3, 1), Nve, 8, 0, [p, q])); + o2 || zjd(a.a, cD(WC(l3, 1), Nve, 8, 0, [u, t])); + } + function MNc(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s; + n = b.c.length; + m = 0; + for (l = new Anb(a.b); l.a < l.c.c.length; ) { + k = RD(ynb(l), 30); + r = k.a; + if (r.c.length == 0) { + continue; + } + q = new Anb(r); + j = 0; + s = null; + e = RD(ynb(q), 10); + f = null; + while (e) { + f = RD(Vmb(b, e.p), 261); + if (f.c >= 0) { + i = null; + h = new Jkb(k.a, j + 1); + while (h.b < h.d.gc()) { + g = (sFb(h.b < h.d.gc()), RD(h.d.Xb(h.c = h.b++), 10)); + i = RD(Vmb(b, g.p), 261); + if (i.d == f.d && i.c < f.c) { + break; + } else { + i = null; + } + } + if (i) { + if (s) { + $mb(d, e.p, sgb(RD(Vmb(d, e.p), 17).a - 1)); + RD(Vmb(c, s.p), 15).Mc(f); + } + f = YNc(f, e, n++); + ZEb(b.c, f); + Rmb(c, new bnb()); + if (s) { + RD(Vmb(c, s.p), 15).Fc(f); + Rmb(d, sgb(1)); + } else { + Rmb(d, sgb(0)); + } + } + } + o2 = null; + if (q.a < q.c.c.length) { + o2 = RD(ynb(q), 10); + p = RD(Vmb(b, o2.p), 261); + RD(Vmb(c, e.p), 15).Fc(p); + $mb(d, o2.p, sgb(RD(Vmb(d, o2.p), 17).a + 1)); + } + f.d = m; + f.c = j++; + s = e; + e = o2; + } + ++m; + } + } + function I5b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n; + f = RD(mQb(a, (Ywc(), Awc)), 74); + if (!f) { + return; + } + d = a.a; + e = new sjd(c); + $id(e, M5b(a)); + if (n2b(a.d.i, a.c.i)) { + m = a.c; + l = xjd(cD(WC(l3, 1), Nve, 8, 0, [m.n, m.a])); + ojd(l, c); + } else { + l = K3b(a.c); + } + Pub(d, l, d.a, d.a.a); + n = K3b(a.d); + mQb(a, Wwc) != null && $id(n, RD(mQb(a, Wwc), 8)); + Pub(d, n, d.c.b, d.c); + Cjd(d, e); + g = IGd(f, true, true); + Kzd(g, RD(QHd((!f.b && (f.b = new Yie(E4, f, 4, 7)), f.b), 0), 84)); + Lzd(g, RD(QHd((!f.c && (f.c = new Yie(E4, f, 5, 8)), f.c), 0), 84)); + lsd(d, g); + for (k = new Anb(a.b); k.a < k.c.c.length; ) { + j = RD(ynb(k), 72); + h = RD(mQb(j, Awc), 135); + Cyd(h, j.o.a); + Ayd(h, j.o.b); + Byd(h, j.n.a + e.a, j.n.b + e.b); + Ixd(h, (Zcc(), Ycc), TD(mQb(j, Ycc))); + } + i = RD(mQb(a, (yCc(), RAc)), 75); + if (i) { + Cjd(i, e); + Ixd(f, RAc, i); + } else { + Ixd(f, RAc, null); + } + b == (Ymd(), Wmd) ? Ixd(f, yAc, Wmd) : Ixd(f, yAc, null); + } + function O3c(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B; + if (c.c.length != 0) { + o2 = new bnb(); + for (n = new Anb(c); n.a < n.c.c.length; ) { + m = RD(ynb(n), 27); + Rmb(o2, new rjd(m.i, m.j)); + } + d.dh(b, "Before removing overlaps"); + while (p3c(a, c)) { + n3c(a, c, false); + } + d.dh(b, "After removing overlaps"); + h = 0; + i = 0; + e = null; + if (c.c.length != 0) { + e = (tFb(0, c.c.length), RD(c.c[0], 27)); + h = e.i - (tFb(0, o2.c.length), RD(o2.c[0], 8)).a; + i = e.j - (tFb(0, o2.c.length), RD(o2.c[0], 8)).b; + } + g = $wnd.Math.sqrt(h * h + i * i); + l = M2c(c); + f = 1; + if (l.a.gc() != 0) { + for (k = l.a.ec().Kc(); k.Ob(); ) { + j = RD(k.Pb(), 27); + p = a.f; + q = p.i + p.g / 2; + r = p.j + p.f / 2; + s = j.i + j.g / 2; + t = j.j + j.f / 2; + u = s - q; + v = t - r; + w = $wnd.Math.sqrt(u * u + v * v); + A = u / w; + B = v / w; + Dyd(j, j.i + A * g); + Eyd(j, j.j + B * g); + } + d.dh(b, "Child movement " + f); + ++f; + } + !!a.a && a.a.Gg(new dnb(l)); + O3c(a, b, new dnb(l), d); + } + } + function Fid(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + i = a; + k = ojd(new rjd(b.a, b.b), a); + j = c; + l = ojd(new rjd(d.a, d.b), c); + m = i.a; + q = i.b; + o2 = j.a; + s = j.b; + n = k.a; + r = k.b; + p = l.a; + t = l.b; + e = p * r - n * t; + Zy(); + bz(vEe); + if ($wnd.Math.abs(0 - e) <= vEe || 0 == e || isNaN(0) && isNaN(e)) { + return false; + } + g = 1 / e * ((m - o2) * r - (q - s) * n); + h = 1 / e * -(-(m - o2) * t + (q - s) * p); + f = (bz(vEe), ($wnd.Math.abs(0 - g) <= vEe || 0 == g || isNaN(0) && isNaN(g) ? 0 : 0 < g ? -1 : 0 > g ? 1 : cz(isNaN(0), isNaN(g))) < 0 && (bz(vEe), ($wnd.Math.abs(g - 1) <= vEe || g == 1 || isNaN(g) && isNaN(1) ? 0 : g < 1 ? -1 : g > 1 ? 1 : cz(isNaN(g), isNaN(1))) < 0) && (bz(vEe), ($wnd.Math.abs(0 - h) <= vEe || 0 == h || isNaN(0) && isNaN(h) ? 0 : 0 < h ? -1 : 0 > h ? 1 : cz(isNaN(0), isNaN(h))) < 0) && (bz(vEe), ($wnd.Math.abs(h - 1) <= vEe || h == 1 || isNaN(h) && isNaN(1) ? 0 : h < 1 ? -1 : h > 1 ? 1 : cz(isNaN(h), isNaN(1))) < 0)); + return f; + } + function EXd(b) { + var c, d, e, f; + d = b.D != null ? b.D : b.B; + c = qhb(d, Fhb(91)); + if (c != -1) { + e = (AFb(0, c, d.length), d.substr(0, c)); + f = new Qhb(); + do + f.a += "["; + while ((c = phb(d, 91, ++c)) != -1); + if (lhb(e, hve)) + f.a += "Z"; + else if (lhb(e, dKe)) + f.a += "B"; + else if (lhb(e, eKe)) + f.a += "C"; + else if (lhb(e, fKe)) + f.a += "D"; + else if (lhb(e, gKe)) + f.a += "F"; + else if (lhb(e, hKe)) + f.a += "I"; + else if (lhb(e, iKe)) + f.a += "J"; + else if (lhb(e, jKe)) + f.a += "S"; + else { + f.a += "L"; + f.a += "" + e; + f.a += ";"; + } + try { + return null; + } catch (a) { + a = zdb(a); + if (!ZD(a, 63)) + throw Adb(a); + } + } else if (qhb(d, Fhb(46)) == -1) { + if (lhb(d, hve)) + return xdb; + else if (lhb(d, dKe)) + return gE; + else if (lhb(d, eKe)) + return hE; + else if (lhb(d, fKe)) + return iE; + else if (lhb(d, gKe)) + return jE; + else if (lhb(d, hKe)) + return kE; + else if (lhb(d, iKe)) + return lE; + else if (lhb(d, jKe)) + return wdb; + } + return null; + } + function pTb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A; + a.e = b; + h = RSb(b); + w = new bnb(); + for (d = new Anb(h); d.a < d.c.c.length; ) { + c = RD(ynb(d), 15); + A = new bnb(); + ZEb(w.c, A); + i = new _sb(); + for (o2 = c.Kc(); o2.Ob(); ) { + n = RD(o2.Pb(), 27); + f = nTb(a, n, true, 0, 0); + ZEb(A.c, f); + p = n.i; + q = n.j; + m = (!n.n && (n.n = new C5d(I4, n, 1, 7)), n.n); + for (l = new dMd(m); l.e != l.i.gc(); ) { + j = RD(bMd(l), 135); + e = nTb(a, j, false, p, q); + ZEb(A.c, e); + } + v = (!n.c && (n.c = new C5d(K4, n, 9, 9)), n.c); + for (s = new dMd(v); s.e != s.i.gc(); ) { + r = RD(bMd(s), 123); + g = nTb(a, r, false, p, q); + ZEb(A.c, g); + t = r.i + p; + u = r.j + q; + m = (!r.n && (r.n = new C5d(I4, r, 1, 7)), r.n); + for (k = new dMd(m); k.e != k.i.gc(); ) { + j = RD(bMd(k), 135); + e = nTb(a, j, false, t, u); + ZEb(A.c, e); + } + } + ye(i, Ux(Al(cD(WC(cJ, 1), rve, 20, 0, [zGd(n), yGd(n)])))); + } + mTb(a, i, A); + } + a.f = new TRb(w); + kQb(a.f, b); + return a.f; + } + function Yje(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w; + for (l = new Dub(new wub(a)); l.c != l.d.a.d; ) { + k = Cub(l); + h = RD(k.d, 58); + b = RD(k.e, 58); + g = h.Dh(); + for (p = 0, u = (g.i == null && rYd(g), g.i).length; p < u; ++p) { + j = (f = (g.i == null && rYd(g), g.i), p >= 0 && p < f.length ? f[p] : null); + if (j.rk() && !j.sk()) { + if (ZD(j, 102)) { + i = RD(j, 19); + (i.Bb & QHe) == 0 && (w = Z5d(i), !(!!w && (w.Bb & QHe) != 0)) && Xje(a, i, h, b); + } else { + nke(); + if (RD(j, 69).xk()) { + c = (v = j, RD(!v ? null : RD(b, 54).gi(v), 160)); + if (c) { + n = RD(h.Mh(j), 160); + d = c.gc(); + for (q = 0, o2 = n.gc(); q < o2; ++q) { + m = n.Tl(q); + if (ZD(m, 102)) { + t = n.Ul(q); + e = cub(a, t); + if (e == null && t != null) { + s = RD(m, 19); + if (!a.b || (s.Bb & QHe) != 0 || !!Z5d(s)) { + continue; + } + e = t; + } + if (!c.Ol(m, e)) { + for (r = 0; r < d; ++r) { + if (c.Tl(r) == m && dE(c.Ul(r)) === dE(e)) { + c.Ti(c.gc() - 1, r); + --d; + break; + } + } + } + } else { + c.Ol(n.Tl(q), n.Ul(q)); + } + } + } + } + } + } + } + } + } + function gIc(a, b, c) { + var d; + c.Ug("StretchWidth layering", 1); + if (b.a.c.length == 0) { + c.Vg(); + return; + } + a.c = b; + a.t = 0; + a.u = 0; + a.i = oxe; + a.g = pxe; + a.d = Kfb(UD(mQb(b, (yCc(), TBc)))); + aIc(a); + bIc(a); + $Hc(a); + fIc(a); + _Hc(a); + a.i = $wnd.Math.max(1, a.i); + a.g = $wnd.Math.max(1, a.g); + a.d = a.d / a.i; + a.f = a.g / a.i; + a.s = dIc(a); + d = new R4b(a.c); + Rmb(a.c.b, d); + a.r = bv(a.p); + a.n = Fnb(a.k, a.k.length); + while (a.r.c.length != 0) { + a.o = hIc(a); + if (!a.o || cIc(a) && a.b.a.gc() != 0) { + iIc(a, d); + d = new R4b(a.c); + Rmb(a.c.b, d); + ye(a.a, a.b); + a.b.a.$b(); + a.t = a.u; + a.u = 0; + } else { + if (cIc(a)) { + a.c.b.c.length = 0; + d = new R4b(a.c); + Rmb(a.c.b, d); + a.t = 0; + a.u = 0; + a.b.a.$b(); + a.a.a.$b(); + ++a.f; + a.r = bv(a.p); + a.n = Fnb(a.k, a.k.length); + } else { + g3b(a.o, d); + Ymb(a.r, a.o); + Ysb(a.b, a.o); + a.t = a.t - a.k[a.o.p] * a.d + a.j[a.o.p]; + a.u += a.e[a.o.p] * a.d; + } + } + } + b.a.c.length = 0; + Eob(b.b); + c.Vg(); + } + function sOc(a) { + var b, c, d, e, f, g, h, i, j, k, l; + a.j = $C(kE, Pwe, 28, a.g, 15, 1); + a.o = new bnb(); + FDb(EDb(new SDb(null, new Swb(a.e.b, 16)), new APc()), new CPc(a)); + a.a = $C(xdb, Hye, 28, a.b, 16, 1); + MDb(new SDb(null, new Swb(a.e.b, 16)), new RPc(a)); + d = (l = new bnb(), FDb(CDb(EDb(new SDb(null, new Swb(a.e.b, 16)), new HPc()), new JPc(a)), new LPc(a, l)), l); + for (i = new Anb(d); i.a < i.c.c.length; ) { + h = RD(ynb(i), 515); + if (h.c.length <= 1) { + continue; + } + if (h.c.length == 2) { + UOc(h); + BOc((tFb(0, h.c.length), RD(h.c[0], 18)).d.i) || Rmb(a.o, h); + continue; + } + if (TOc(h) || SOc(h, new FPc())) { + continue; + } + j = new Anb(h); + e = null; + while (j.a < j.c.c.length) { + b = RD(ynb(j), 18); + c = a.c[b.p]; + !e || j.a >= j.c.c.length ? k = hOc((r3b(), p3b), o3b) : k = hOc((r3b(), o3b), o3b); + k *= 2; + f = c.a.g; + c.a.g = $wnd.Math.max(f, f + (k - f)); + g = c.b.g; + c.b.g = $wnd.Math.max(g, g + (k - g)); + e = b; + } + } + } + function qkc(a) { + var b, c, d, e; + FDb(CDb(new SDb(null, new Swb(a.a.b, 16)), new Qkc()), new Skc()); + okc(a); + FDb(CDb(new SDb(null, new Swb(a.a.b, 16)), new Ukc()), new Wkc()); + if (a.c == (Ymd(), Wmd)) { + FDb(CDb(EDb(new SDb(null, new Swb(new Xkb(a.f), 1)), new clc()), new elc()), new glc(a)); + FDb(CDb(GDb(EDb(EDb(new SDb(null, new Swb(a.d.b, 16)), new klc()), new mlc()), new olc()), new qlc()), new slc(a)); + } + e = new rjd(oxe, oxe); + b = new rjd(pxe, pxe); + for (d = new Anb(a.a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 60); + e.a = $wnd.Math.min(e.a, c.d.c); + e.b = $wnd.Math.min(e.b, c.d.d); + b.a = $wnd.Math.max(b.a, c.d.c + c.d.b); + b.b = $wnd.Math.max(b.b, c.d.d + c.d.a); + } + $id(hjd(a.d.c), fjd(new rjd(e.a, e.b))); + $id(hjd(a.d.f), ojd(new rjd(b.a, b.b), e)); + pkc(a, e, b); + akb(a.f); + akb(a.b); + akb(a.g); + akb(a.e); + a.a.a.c.length = 0; + a.a.b.c.length = 0; + a.a = null; + a.d = null; + } + function JGb(a, b) { + var c; + if (a.e) { + throw Adb(new dgb((lfb(lN), lye + lN.k + mye))); + } + if (!cGb(a.a, b)) { + throw Adb(new yz(nye + b + oye)); + } + if (b == a.d) { + return a; + } + c = a.d; + a.d = b; + switch (c.g) { + case 0: + switch (b.g) { + case 2: + GGb(a); + break; + case 1: + OGb(a); + GGb(a); + break; + case 4: + UGb(a); + GGb(a); + break; + case 3: + UGb(a); + OGb(a); + GGb(a); + } + break; + case 2: + switch (b.g) { + case 1: + OGb(a); + PGb(a); + break; + case 4: + UGb(a); + GGb(a); + break; + case 3: + UGb(a); + OGb(a); + GGb(a); + } + break; + case 1: + switch (b.g) { + case 2: + OGb(a); + PGb(a); + break; + case 4: + OGb(a); + UGb(a); + GGb(a); + break; + case 3: + OGb(a); + UGb(a); + OGb(a); + GGb(a); + } + break; + case 4: + switch (b.g) { + case 2: + UGb(a); + GGb(a); + break; + case 1: + UGb(a); + OGb(a); + GGb(a); + break; + case 3: + OGb(a); + PGb(a); + } + break; + case 3: + switch (b.g) { + case 2: + OGb(a); + UGb(a); + GGb(a); + break; + case 1: + OGb(a); + UGb(a); + OGb(a); + GGb(a); + break; + case 4: + OGb(a); + PGb(a); + } + } + return a; + } + function vYb(a, b) { + var c; + if (a.d) { + throw Adb(new dgb((lfb(eQ), lye + eQ.k + mye))); + } + if (!eYb(a.a, b)) { + throw Adb(new yz(nye + b + oye)); + } + if (b == a.c) { + return a; + } + c = a.c; + a.c = b; + switch (c.g) { + case 0: + switch (b.g) { + case 2: + sYb(a); + break; + case 1: + zYb(a); + sYb(a); + break; + case 4: + DYb(a); + sYb(a); + break; + case 3: + DYb(a); + zYb(a); + sYb(a); + } + break; + case 2: + switch (b.g) { + case 1: + zYb(a); + AYb(a); + break; + case 4: + DYb(a); + sYb(a); + break; + case 3: + DYb(a); + zYb(a); + sYb(a); + } + break; + case 1: + switch (b.g) { + case 2: + zYb(a); + AYb(a); + break; + case 4: + zYb(a); + DYb(a); + sYb(a); + break; + case 3: + zYb(a); + DYb(a); + zYb(a); + sYb(a); + } + break; + case 4: + switch (b.g) { + case 2: + DYb(a); + sYb(a); + break; + case 1: + DYb(a); + zYb(a); + sYb(a); + break; + case 3: + zYb(a); + AYb(a); + } + break; + case 3: + switch (b.g) { + case 2: + zYb(a); + DYb(a); + sYb(a); + break; + case 1: + zYb(a); + DYb(a); + zYb(a); + sYb(a); + break; + case 4: + zYb(a); + AYb(a); + } + } + return a; + } + function Csd(a, b) { + var c, d, e, f, g, h, i, j; + if (ZD(a.Eh(), 167)) { + Csd(RD(a.Eh(), 167), b); + b.a += " > "; + } else { + b.a += "Root "; + } + c = a.Dh().zb; + lhb(c.substr(0, 3), "Elk") ? Zhb(b, (BFb(3, c.length + 1), c.substr(3))) : (b.a += "" + c, b); + e = a.jh(); + if (e) { + Zhb((b.a += " ", b), e); + return; + } + if (ZD(a, 366)) { + j = RD(a, 135).a; + if (j) { + Zhb((b.a += " ", b), j); + return; + } + } + for (g = new dMd(a.kh()); g.e != g.i.gc(); ) { + f = RD(bMd(g), 135); + j = f.a; + if (j) { + Zhb((b.a += " ", b), j); + return; + } + } + if (ZD(a, 326)) { + d = RD(a, 74); + !d.b && (d.b = new Yie(E4, d, 4, 7)); + if (d.b.i != 0 && (!d.c && (d.c = new Yie(E4, d, 5, 8)), d.c.i != 0)) { + b.a += " ("; + h = new mMd((!d.b && (d.b = new Yie(E4, d, 4, 7)), d.b)); + while (h.e != h.i.gc()) { + h.e > 0 && (b.a += pve, b); + Csd(RD(bMd(h), 167), b); + } + b.a += SAe; + i = new mMd((!d.c && (d.c = new Yie(E4, d, 5, 8)), d.c)); + while (i.e != i.i.gc()) { + i.e > 0 && (b.a += pve, b); + Csd(RD(bMd(i), 167), b); + } + b.a += ")"; + } + } + } + function LTb(a, b, c) { + var d, e, f, g, h, i, j, k; + for (i = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); i.e != i.i.gc(); ) { + h = RD(bMd(i), 27); + for (e = new is(Mr(zGd(h).a.Kc(), new ir())); gs(e); ) { + d = RD(hs(e), 74); + !d.b && (d.b = new Yie(E4, d, 4, 7)); + if (!(d.b.i <= 1 && (!d.c && (d.c = new Yie(E4, d, 5, 8)), d.c.i <= 1))) { + throw Adb(new Ked("Graph must not contain hyperedges.")); + } + if (!nzd(d) && h != AGd(RD(QHd((!d.c && (d.c = new Yie(E4, d, 5, 8)), d.c), 0), 84))) { + j = new cUb(); + kQb(j, d); + pQb(j, (JVb(), HVb), d); + _Tb(j, RD(Wd(qtb(c.f, h)), 153)); + aUb(j, RD(Wjb(c, AGd(RD(QHd((!d.c && (d.c = new Yie(E4, d, 5, 8)), d.c), 0), 84))), 153)); + Rmb(b.c, j); + for (g = new dMd((!d.n && (d.n = new C5d(I4, d, 1, 7)), d.n)); g.e != g.i.gc(); ) { + f = RD(bMd(g), 135); + k = new iUb(j, f.a); + kQb(k, f); + pQb(k, HVb, f); + k.e.a = $wnd.Math.max(f.g, 1); + k.e.b = $wnd.Math.max(f.f, 1); + hUb(k); + Rmb(b.d, k); + } + } + } + } + } + function Vec(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + c.Ug("Node promotion heuristic", 1); + a.i = b; + a.r = RD(mQb(b, (yCc(), ZAc)), 243); + a.r != (aEc(), TDc) && a.r != UDc ? Tec(a) : Uec(a); + k = RD(mQb(a.i, YAc), 17).a; + f = new nfc(); + switch (a.r.g) { + case 2: + case 1: + Yec(a, f); + break; + case 3: + a.r = _Dc; + Yec(a, f); + i = 0; + for (h = new Anb(a.b); h.a < h.c.c.length; ) { + g = RD(ynb(h), 17); + i = $wnd.Math.max(i, g.a); + } + if (i > a.k) { + a.r = VDc; + Yec(a, f); + } + break; + case 4: + a.r = _Dc; + Yec(a, f); + j = 0; + for (e = new Anb(a.c); e.a < e.c.c.length; ) { + d = UD(ynb(e)); + j = $wnd.Math.max(j, (uFb(d), d)); + } + if (j > a.n) { + a.r = YDc; + Yec(a, f); + } + break; + case 6: + m = eE($wnd.Math.ceil(a.g.length * k / 100)); + Yec(a, new qfc(m)); + break; + case 5: + l = eE($wnd.Math.ceil(a.e * k / 100)); + Yec(a, new tfc(l)); + break; + case 8: + Sec(a, true); + break; + case 9: + Sec(a, false); + break; + default: + Yec(a, f); + } + a.r != TDc && a.r != UDc ? Zec(a, b) : $ec(a, b); + c.Vg(); + } + function $rc(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + l = a.b; + k = new Jkb(l, 0); + Ikb(k, new R4b(a)); + s = false; + g = 1; + while (k.b < k.d.gc()) { + j = (sFb(k.b < k.d.gc()), RD(k.d.Xb(k.c = k.b++), 30)); + p = (tFb(g, l.c.length), RD(l.c[g], 30)); + q = bv(j.a); + r = q.c.length; + for (o2 = new Anb(q); o2.a < o2.c.c.length; ) { + m = RD(ynb(o2), 10); + g3b(m, p); + } + if (s) { + for (n = hv(q).Kc(); n.Ob(); ) { + m = RD(n.Pb(), 10); + for (f = new Anb(bv(Z2b(m))); f.a < f.c.c.length; ) { + e = RD(ynb(f), 18); + X0b(e, true); + pQb(a, (Ywc(), awc), (Geb(), true)); + d = osc(a, e, r); + c = RD(mQb(m, Wvc), 313); + t = RD(Vmb(d, d.c.length - 1), 18); + c.k = t.c.i; + c.n = t; + c.b = e.d.i; + c.c = e; + } + } + s = false; + } else { + if (q.c.length != 0) { + b = (tFb(0, q.c.length), RD(q.c[0], 10)); + if (b.k == (r3b(), l3b)) { + s = true; + g = -1; + } + } + } + ++g; + } + h = new Jkb(a.b, 0); + while (h.b < h.d.gc()) { + i = (sFb(h.b < h.d.gc()), RD(h.d.Xb(h.c = h.b++), 30)); + i.a.c.length == 0 && Ckb(h); + } + } + function FJb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + l = new CLb(a); + _Mb(l, !(b == (Cmd(), Bmd) || b == xmd)); + k = l.a; + m = new z3b(); + for (e = (ZJb(), cD(WC(JN, 1), jwe, 237, 0, [WJb, XJb, YJb])), g = 0, i = e.length; g < i; ++g) { + c = e[g]; + j = oKb(k, WJb, c); + !!j && (m.d = $wnd.Math.max(m.d, j.jf())); + } + for (d = cD(WC(JN, 1), jwe, 237, 0, [WJb, XJb, YJb]), f = 0, h = d.length; f < h; ++f) { + c = d[f]; + j = oKb(k, YJb, c); + !!j && (m.a = $wnd.Math.max(m.a, j.jf())); + } + for (p = cD(WC(JN, 1), jwe, 237, 0, [WJb, XJb, YJb]), r = 0, t = p.length; r < t; ++r) { + n = p[r]; + j = oKb(k, n, WJb); + !!j && (m.b = $wnd.Math.max(m.b, j.kf())); + } + for (o2 = cD(WC(JN, 1), jwe, 237, 0, [WJb, XJb, YJb]), q = 0, s = o2.length; q < s; ++q) { + n = o2[q]; + j = oKb(k, n, YJb); + !!j && (m.c = $wnd.Math.max(m.c, j.kf())); + } + if (m.d > 0) { + m.d += k.n.d; + m.d += k.d; + } + if (m.a > 0) { + m.a += k.n.a; + m.a += k.d; + } + if (m.b > 0) { + m.b += k.n.b; + m.b += k.d; + } + if (m.c > 0) { + m.c += k.n.c; + m.c += k.d; + } + return m; + } + function u9b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2; + m = c.d; + l = c.c; + f = new rjd(c.f.a + c.d.b + c.d.c, c.f.b + c.d.d + c.d.a); + g = f.b; + for (j = new Anb(a.a); j.a < j.c.c.length; ) { + h = RD(ynb(j), 10); + if (h.k != (r3b(), m3b)) { + continue; + } + d = RD(mQb(h, (Ywc(), hwc)), 64); + e = RD(mQb(h, iwc), 8); + k = h.n; + switch (d.g) { + case 2: + k.a = c.f.a + m.c - l.a; + break; + case 4: + k.a = -l.a - m.b; + } + o2 = 0; + switch (d.g) { + case 2: + case 4: + if (b == (Bod(), xod)) { + n = Kfb(UD(mQb(h, Jwc))); + k.b = f.b * n - RD(mQb(h, (yCc(), zBc)), 8).b; + o2 = k.b + e.b; + U2b(h, false, true); + } else if (b == wod) { + k.b = Kfb(UD(mQb(h, Jwc))) - RD(mQb(h, (yCc(), zBc)), 8).b; + o2 = k.b + e.b; + U2b(h, false, true); + } + } + g = $wnd.Math.max(g, o2); + } + c.f.b += g - f.b; + for (i = new Anb(a.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + if (h.k != (r3b(), m3b)) { + continue; + } + d = RD(mQb(h, (Ywc(), hwc)), 64); + k = h.n; + switch (d.g) { + case 1: + k.b = -l.b - m.d; + break; + case 3: + k.b = c.f.b + m.a - l.b; + } + } + } + function nNb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r; + k = RD(RD(Qc(a.r, b), 21), 87); + if (k.gc() <= 2 || b == (qpd(), Xod) || b == (qpd(), ppd)) { + rNb(a, b); + return; + } + p = a.u.Hc((Pod(), Ood)); + c = b == (qpd(), Yod) ? (mOb(), lOb) : (mOb(), iOb); + r = b == Yod ? (vLb(), sLb) : (vLb(), uLb); + d = WNb(_Nb(c), a.s); + q = b == Yod ? oxe : pxe; + for (j = k.Kc(); j.Ob(); ) { + h = RD(j.Pb(), 117); + if (!h.c || h.c.d.c.length <= 0) { + continue; + } + o2 = h.b.Mf(); + n = h.e; + l = h.c; + m = l.i; + m.b = (f = l.n, l.e.a + f.b + f.c); + m.a = (g = l.n, l.e.b + g.d + g.a); + if (p) { + m.c = n.a - (e = l.n, l.e.a + e.b + e.c) - a.s; + p = false; + } else { + m.c = n.a + o2.a + a.s; + } + Ivb(r, Pye); + l.f = r; + RKb(l, (EKb(), DKb)); + Rmb(d.d, new sOb(m, UNb(d, m))); + q = b == Yod ? $wnd.Math.min(q, n.b) : $wnd.Math.max(q, n.b + h.b.Mf().b); + } + q += b == Yod ? -a.t : a.t; + VNb((d.e = q, d)); + for (i = k.Kc(); i.Ob(); ) { + h = RD(i.Pb(), 117); + if (!h.c || h.c.d.c.length <= 0) { + continue; + } + m = h.c.i; + m.c -= h.e.a; + m.d -= h.e.b; + } + } + function D0b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + e = new bnb(); + for (p = new Anb(b.a); p.a < p.c.c.length; ) { + o2 = RD(ynb(p), 10); + n = o2.e; + if (n) { + d = D0b(a, n, o2); + Tmb(e, d); + A0b(a, n, o2); + if (RD(mQb(n, (Ywc(), kwc)), 21).Hc((ovc(), hvc))) { + s = RD(mQb(o2, (yCc(), BBc)), 101); + m = RD(mQb(o2, EBc), 181).Hc((Pod(), Lod)); + for (r = new Anb(o2.j); r.a < r.c.c.length; ) { + q = RD(ynb(r), 12); + f = RD(Wjb(a.b, q), 10); + if (!f) { + f = f2b(q, s, q.j, -(q.e.c.length - q.g.c.length), null, new pjd(), q.o, RD(mQb(n, rAc), 88), n); + pQb(f, Awc, q); + Zjb(a.b, q, f); + Rmb(n.a, f); + } + g = RD(Vmb(f.j, 0), 12); + for (k = new Anb(q.f); k.a < k.c.c.length; ) { + j = RD(ynb(k), 72); + h = new x2b(); + h.o.a = j.o.a; + h.o.b = j.o.b; + Rmb(g.f, h); + if (!m) { + t = q.j; + l = 0; + Rod(RD(mQb(o2, EBc), 21)) && (l = qsd(j.n, j.o, q.o, 0, t)); + s == (Bod(), zod) || (qpd(), apd).Hc(t) ? h.o.a = l : h.o.b = l; + } + } + } + } + } + } + i = new bnb(); + z0b(a, b, c, e, i); + !!c && B0b(a, b, c, i); + return i; + } + function NIc(a, b, c) { + var d, e, f, g, h, i, j, k, l; + if (a.c[b.c.p][b.p].e) { + return; + } else { + a.c[b.c.p][b.p].e = true; + } + a.c[b.c.p][b.p].b = 0; + a.c[b.c.p][b.p].d = 0; + a.c[b.c.p][b.p].a = null; + for (k = new Anb(b.j); k.a < k.c.c.length; ) { + j = RD(ynb(k), 12); + l = c ? new T3b(j) : new _3b(j); + for (i = l.Kc(); i.Ob(); ) { + h = RD(i.Pb(), 12); + g = h.i; + if (g.c == b.c) { + if (g != b) { + NIc(a, g, c); + a.c[b.c.p][b.p].b += a.c[g.c.p][g.p].b; + a.c[b.c.p][b.p].d += a.c[g.c.p][g.p].d; + } + } else { + a.c[b.c.p][b.p].d += a.g[h.p]; + ++a.c[b.c.p][b.p].b; + } + } + } + f = RD(mQb(b, (Ywc(), Uvc)), 15); + if (f) { + for (e = f.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 10); + if (b.c == d.c) { + NIc(a, d, c); + a.c[b.c.p][b.p].b += a.c[d.c.p][d.p].b; + a.c[b.c.p][b.p].d += a.c[d.c.p][d.p].d; + } + } + } + if (a.c[b.c.p][b.p].b > 0) { + a.c[b.c.p][b.p].d += Kwb(a.i, 24) * Nxe * 0.07000000029802322 - 0.03500000014901161; + a.c[b.c.p][b.p].a = a.c[b.c.p][b.p].d / a.c[b.c.p][b.p].b; + } + } + function D8b(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + for (o2 = new Anb(a); o2.a < o2.c.c.length; ) { + n = RD(ynb(o2), 10); + E8b(n.n); + E8b(n.o); + F8b(n.f); + I8b(n); + K8b(n); + for (q = new Anb(n.j); q.a < q.c.c.length; ) { + p = RD(ynb(q), 12); + E8b(p.n); + E8b(p.a); + E8b(p.o); + Q3b(p, J8b(p.j)); + f = RD(mQb(p, (yCc(), CBc)), 17); + !!f && pQb(p, CBc, sgb(-f.a)); + for (e = new Anb(p.g); e.a < e.c.c.length; ) { + d = RD(ynb(e), 18); + for (c = Sub(d.a, 0); c.b != c.d.c; ) { + b = RD(evb(c), 8); + E8b(b); + } + i = RD(mQb(d, RAc), 75); + if (i) { + for (h = Sub(i, 0); h.b != h.d.c; ) { + g = RD(evb(h), 8); + E8b(g); + } + } + for (l = new Anb(d.b); l.a < l.c.c.length; ) { + j = RD(ynb(l), 72); + E8b(j.n); + E8b(j.o); + } + } + for (m = new Anb(p.f); m.a < m.c.c.length; ) { + j = RD(ynb(m), 72); + E8b(j.n); + E8b(j.o); + } + } + if (n.k == (r3b(), m3b)) { + pQb(n, (Ywc(), hwc), J8b(RD(mQb(n, hwc), 64))); + H8b(n); + } + for (k = new Anb(n.b); k.a < k.c.c.length; ) { + j = RD(ynb(k), 72); + I8b(j); + E8b(j.o); + E8b(j.n); + } + } + } + function iEd(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G; + D = Wjb(a.e, d); + if (D == null) { + D = new uC(); + n = RD(D, 190); + s = b + "_s"; + t = s + e; + m = new OC(t); + sC(n, uIe, m); + } + C = RD(D, 190); + oDd(c, C); + G = new uC(); + qDd(G, "x", d.j); + qDd(G, "y", d.k); + sC(C, xIe, G); + A = new uC(); + qDd(A, "x", d.b); + qDd(A, "y", d.c); + sC(C, "endPoint", A); + l = cve((!d.a && (d.a = new XZd(D4, d, 5)), d.a)); + o2 = !l; + if (o2) { + w = new MB(); + f = new qFd(w); + xgb((!d.a && (d.a = new XZd(D4, d, 5)), d.a), f); + sC(C, nIe, w); + } + i = Dzd(d); + u = !!i; + u && rDd(a.a, C, pIe, KDd(a, Dzd(d))); + r = Ezd(d); + v = !!r; + v && rDd(a.a, C, oIe, KDd(a, Ezd(d))); + j = (!d.e && (d.e = new Yie(F4, d, 10, 9)), d.e).i == 0; + p = !j; + if (p) { + B = new MB(); + g = new sFd(a, B); + xgb((!d.e && (d.e = new Yie(F4, d, 10, 9)), d.e), g); + sC(C, rIe, B); + } + k = (!d.g && (d.g = new Yie(F4, d, 9, 10)), d.g).i == 0; + q = !k; + if (q) { + F = new MB(); + h = new uFd(a, F); + xgb((!d.g && (d.g = new Yie(F4, d, 9, 10)), d.g), h); + sC(C, qIe, F); + } + } + function XMb(a) { + RMb(); + var b, c, d, e, f, g, h; + d = a.f.n; + for (g = ki(a.r).a.nc(); g.Ob(); ) { + f = RD(g.Pb(), 117); + e = 0; + if (f.b.pf((umd(), Gld))) { + e = Kfb(UD(f.b.of(Gld))); + if (e < 0) { + switch (f.b.ag().g) { + case 1: + d.d = $wnd.Math.max(d.d, -e); + break; + case 3: + d.a = $wnd.Math.max(d.a, -e); + break; + case 2: + d.c = $wnd.Math.max(d.c, -e); + break; + case 4: + d.b = $wnd.Math.max(d.b, -e); + } + } + } + if (Rod(a.u)) { + b = rsd(f.b, e); + h = !RD(a.e.of(pld), 181).Hc((dqd(), Wpd)); + c = false; + switch (f.b.ag().g) { + case 1: + c = b > d.d; + d.d = $wnd.Math.max(d.d, b); + if (h && c) { + d.d = $wnd.Math.max(d.d, d.a); + d.a = d.d + e; + } + break; + case 3: + c = b > d.a; + d.a = $wnd.Math.max(d.a, b); + if (h && c) { + d.a = $wnd.Math.max(d.a, d.d); + d.d = d.a + e; + } + break; + case 2: + c = b > d.c; + d.c = $wnd.Math.max(d.c, b); + if (h && c) { + d.c = $wnd.Math.max(d.b, d.c); + d.b = d.c + e; + } + break; + case 4: + c = b > d.b; + d.b = $wnd.Math.max(d.b, b); + if (h && c) { + d.b = $wnd.Math.max(d.b, d.c); + d.c = d.b + e; + } + } + } + } + } + function pA(a, b) { + var c, d, e, f, g, h, i, j, k; + j = ""; + if (b.length == 0) { + return a.ne(ywe, wwe, -1, -1); + } + k = Dhb(b); + lhb(k.substr(0, 3), "at ") && (k = (BFb(3, k.length + 1), k.substr(3))); + k = k.replace(/\[.*?\]/g, ""); + g = k.indexOf("("); + if (g == -1) { + g = k.indexOf("@"); + if (g == -1) { + j = k; + k = ""; + } else { + j = Dhb((BFb(g + 1, k.length + 1), k.substr(g + 1))); + k = Dhb((AFb(0, g, k.length), k.substr(0, g))); + } + } else { + c = k.indexOf(")", g); + j = (AFb(g + 1, c, k.length), k.substr(g + 1, c - (g + 1))); + k = Dhb((AFb(0, g, k.length), k.substr(0, g))); + } + g = qhb(k, Fhb(46)); + g != -1 && (k = (BFb(g + 1, k.length + 1), k.substr(g + 1))); + (k.length == 0 || lhb(k, "Anonymous function")) && (k = wwe); + h = thb(j, Fhb(58)); + e = uhb(j, Fhb(58), h - 1); + i = -1; + d = -1; + f = ywe; + if (h != -1 && e != -1) { + f = (AFb(0, e, j.length), j.substr(0, e)); + i = jA((AFb(e + 1, h, j.length), j.substr(e + 1, h - (e + 1)))); + d = jA((BFb(h + 1, j.length + 1), j.substr(h + 1))); + } + return a.ne(f, k, i, d); + } + function C6b(a) { + var b, c, d, e, f, g, h, i, j, k, l; + for (j = new Anb(a); j.a < j.c.c.length; ) { + i = RD(ynb(j), 10); + g = RD(mQb(i, (yCc(), UAc)), 171); + f = null; + switch (g.g) { + case 1: + case 2: + f = (huc(), guc); + break; + case 3: + case 4: + f = (huc(), euc); + } + if (f) { + pQb(i, (Ywc(), bwc), (huc(), guc)); + f == euc ? F6b(i, g, (BEc(), yEc)) : f == guc && F6b(i, g, (BEc(), zEc)); + } else { + if (Dod(RD(mQb(i, BBc), 101)) && i.j.c.length != 0) { + b = true; + for (l = new Anb(i.j); l.a < l.c.c.length; ) { + k = RD(ynb(l), 12); + if (!(k.j == (qpd(), Xod) && k.e.c.length - k.g.c.length > 0 || k.j == ppd && k.e.c.length - k.g.c.length < 0)) { + b = false; + break; + } + for (e = new Anb(k.g); e.a < e.c.c.length; ) { + c = RD(ynb(e), 18); + h = RD(mQb(c.d.i, UAc), 171); + if (h == (cxc(), _wc) || h == axc) { + b = false; + break; + } + } + for (d = new Anb(k.e); d.a < d.c.c.length; ) { + c = RD(ynb(d), 18); + h = RD(mQb(c.c.i, UAc), 171); + if (h == (cxc(), Zwc) || h == $wc) { + b = false; + break; + } + } + } + b && F6b(i, g, (BEc(), AEc)); + } + } + } + } + function LNc(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w; + w = 0; + n = 0; + for (l = new Anb(b.e); l.a < l.c.c.length; ) { + k = RD(ynb(l), 10); + m = 0; + h = 0; + i = c ? RD(mQb(k, HNc), 17).a : qwe; + r = d ? RD(mQb(k, INc), 17).a : qwe; + j = $wnd.Math.max(i, r); + for (t = new Anb(k.j); t.a < t.c.c.length; ) { + s = RD(ynb(t), 12); + u = k.n.b + s.n.b + s.a.b; + if (d) { + for (g = new Anb(s.g); g.a < g.c.c.length; ) { + f = RD(ynb(g), 18); + p = f.d; + o2 = p.i; + if (b != a.a[o2.p]) { + q = $wnd.Math.max(RD(mQb(o2, HNc), 17).a, RD(mQb(o2, INc), 17).a); + v = RD(mQb(f, (yCc(), MBc)), 17).a; + if (v >= j && v >= q) { + m += o2.n.b + p.n.b + p.a.b - u; + ++h; + } + } + } + } + if (c) { + for (g = new Anb(s.e); g.a < g.c.c.length; ) { + f = RD(ynb(g), 18); + p = f.c; + o2 = p.i; + if (b != a.a[o2.p]) { + q = $wnd.Math.max(RD(mQb(o2, HNc), 17).a, RD(mQb(o2, INc), 17).a); + v = RD(mQb(f, (yCc(), MBc)), 17).a; + if (v >= j && v >= q) { + m += o2.n.b + p.n.b + p.a.b - u; + ++h; + } + } + } + } + } + if (h > 0) { + w += m / h; + ++n; + } + } + if (n > 0) { + b.a = e * w / n; + b.g = n; + } else { + b.a = 0; + b.g = 0; + } + } + function hTb(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A; + f = a.f.b; + m = f.a; + k = f.b; + o2 = a.e.g; + n = a.e.f; + zyd(a.e, f.a, f.b); + w = m / o2; + A = k / n; + for (j = new dMd(iyd(a.e)); j.e != j.i.gc(); ) { + i = RD(bMd(j), 135); + Dyd(i, i.i * w); + Eyd(i, i.j * A); + } + for (s = new dMd(wCd(a.e)); s.e != s.i.gc(); ) { + r = RD(bMd(s), 123); + u = r.i; + v = r.j; + u > 0 && Dyd(r, u * w); + v > 0 && Eyd(r, v * A); + } + Bvb(a.b, new tTb()); + b = new bnb(); + for (h = new vkb(new mkb(a.c).a); h.b; ) { + g = tkb(h); + d = RD(g.ld(), 74); + c = RD(g.md(), 407).a; + e = IGd(d, false, false); + l = fTb(JGd(d), ssd(e), c); + lsd(l, e); + t = KGd(d); + if (!!t && Wmb(b, t, 0) == -1) { + ZEb(b.c, t); + gTb(t, (sFb(l.b != 0), RD(l.a.a.c, 8)), c); + } + } + for (q = new vkb(new mkb(a.d).a); q.b; ) { + p = tkb(q); + d = RD(p.ld(), 74); + c = RD(p.md(), 407).a; + e = IGd(d, false, false); + l = fTb(LGd(d), Ijd(ssd(e)), c); + l = Ijd(l); + lsd(l, e); + t = MGd(d); + if (!!t && Wmb(b, t, 0) == -1) { + ZEb(b.c, t); + gTb(t, (sFb(l.b != 0), RD(l.c.b.c, 8)), c); + } + } + } + function GJb(a, b, c, d) { + var e, f, g, h, i; + h = new CLb(b); + iNb(h, d); + e = true; + if (!!a && a.pf((umd(), Nkd))) { + f = RD(a.of((umd(), Nkd)), 88); + e = f == (Cmd(), Amd) || f == ymd || f == zmd; + } + $Mb(h, false); + Umb(h.e.Rf(), new dNb(h, false, e)); + EMb(h, h.f, (ZJb(), WJb), (qpd(), Yod)); + EMb(h, h.f, YJb, npd); + EMb(h, h.g, WJb, ppd); + EMb(h, h.g, YJb, Xod); + GMb(h, Yod); + GMb(h, npd); + FMb(h, Xod); + FMb(h, ppd); + RMb(); + g = h.A.Hc((Qpd(), Mpd)) && h.B.Hc((dqd(), $pd)) ? SMb(h) : null; + !!g && uKb(h.a, g); + XMb(h); + xMb(h); + GNb(h); + sMb(h); + gNb(h); + yNb(h); + oNb(h, Yod); + oNb(h, npd); + tMb(h); + fNb(h); + if (!c) { + return h.o; + } + VMb(h); + CNb(h); + oNb(h, Xod); + oNb(h, ppd); + i = h.B.Hc((dqd(), _pd)); + IMb(h, i, Yod); + IMb(h, i, npd); + JMb(h, i, Xod); + JMb(h, i, ppd); + FDb(new SDb(null, new Swb(new glb(h.i), 0)), new KMb()); + FDb(CDb(new SDb(null, ki(h.r).a.oc()), new MMb()), new OMb()); + WMb(h); + h.e.Pf(h.o); + FDb(new SDb(null, ki(h.r).a.oc()), new YMb()); + return h.o; + } + function LYb(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p; + j = oxe; + for (d = new Anb(a.a.b); d.a < d.c.c.length; ) { + b = RD(ynb(d), 86); + j = $wnd.Math.min(j, b.d.f.g.c + b.e.a); + } + n = new Yub(); + for (g = new Anb(a.a.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 194); + f.i = j; + f.e == 0 && (Pub(n, f, n.c.b, n.c), true); + } + while (n.b != 0) { + f = RD(n.b == 0 ? null : (sFb(n.b != 0), Wub(n, n.a.a)), 194); + e = f.f.g.c; + for (m = f.a.a.ec().Kc(); m.Ob(); ) { + k = RD(m.Pb(), 86); + p = f.i + k.e.a; + k.d.g || k.g.c < p ? k.o = p : k.o = k.g.c; + } + e -= f.f.o; + f.b += e; + a.c == (Cmd(), zmd) || a.c == xmd ? f.c += e : f.c -= e; + for (l = f.a.a.ec().Kc(); l.Ob(); ) { + k = RD(l.Pb(), 86); + for (i = k.f.Kc(); i.Ob(); ) { + h = RD(i.Pb(), 86); + Dmd(a.c) ? o2 = a.f.yf(k, h) : o2 = a.f.zf(k, h); + h.d.i = $wnd.Math.max(h.d.i, k.o + k.g.b + o2 - h.e.a); + h.k || (h.d.i = $wnd.Math.max(h.d.i, h.g.c - h.e.a)); + --h.d.e; + h.d.e == 0 && Mub(n, h.d); + } + } + } + for (c = new Anb(a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 86); + b.g.c = b.o; + } + } + function vOb(a) { + var b, c, d, e, f, g, h, i; + h = a.b; + b = a.a; + switch (RD(mQb(a, (YHb(), UHb)), 435).g) { + case 0: + _mb(h, new Frb(new UOb())); + break; + case 1: + default: + _mb(h, new Frb(new ZOb())); + } + switch (RD(mQb(a, SHb), 436).g) { + case 1: + _mb(h, new POb()); + _mb(h, new cPb()); + _mb(h, new xOb()); + break; + case 0: + default: + _mb(h, new POb()); + _mb(h, new IOb()); + } + switch (RD(mQb(a, WHb), 257).g) { + case 0: + i = new wPb(); + break; + case 1: + i = new qPb(); + break; + case 2: + i = new tPb(); + break; + case 3: + i = new nPb(); + break; + case 5: + i = new APb(new tPb()); + break; + case 4: + i = new APb(new qPb()); + break; + case 7: + i = new kPb(new APb(new qPb()), new APb(new tPb())); + break; + case 8: + i = new kPb(new APb(new nPb()), new APb(new tPb())); + break; + case 6: + default: + i = new APb(new nPb()); + } + for (g = new Anb(h); g.a < g.c.c.length; ) { + f = RD(ynb(g), 176); + d = 0; + e = 0; + c = new Ptd(sgb(d), sgb(e)); + while (ZPb(b, f, d, e)) { + c = RD(i.Ve(c, f), 42); + d = RD(c.a, 17).a; + e = RD(c.b, 17).a; + } + WPb(b, f, d, e); + } + } + function T_c(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w; + c.Ug(_Ee, 1); + m = (q$c(), XZc); + a.a == (s_c(), p_c) && (m = VZc); + k = 0; + yob(); + b.jd(new uGd(m)); + f = b.gc(); + h = b.fd(b.gc()); + j = true; + while (j && h.Sb()) { + s = RD(h.Ub(), 40); + RD(mQb(s, m), 17).a == 0 ? --f : j = false; + } + w = b.kd(0, f); + g = new Zub(w); + w = b.kd(f, b.gc()); + i = new Zub(w); + if (g.b == 0) { + for (p = Sub(i, 0); p.b != p.d.c; ) { + o2 = RD(evb(p), 40); + pQb(o2, i$c, sgb(k++)); + } + } else { + l = g.b; + for (v = Sub(g, 0); v.b != v.d.c; ) { + u = RD(evb(v), 40); + pQb(u, i$c, sgb(k++)); + d = $Wc(u); + T_c(a, d, c.eh(1 / l | 0)); + tvb(d, Fob(new uGd(i$c))); + n = new Yub(); + for (t = Sub(d, 0); t.b != t.d.c; ) { + s = RD(evb(t), 40); + for (r = Sub(u.d, 0); r.b != r.d.c; ) { + q = RD(evb(r), 65); + q.c == s && (Pub(n, q, n.c.b, n.c), true); + } + } + Xub(u.d); + ye(u.d, n); + h = Sub(i, i.b); + e = u.d.b; + j = true; + while (0 < e && j && h.Sb()) { + s = RD(h.Ub(), 40); + if (RD(mQb(s, m), 17).a == 0) { + pQb(s, i$c, sgb(k++)); + --e; + h.Qb(); + } else { + j = false; + } + } + } + } + c.Vg(); + } + function S3c(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n; + l = Kfb(UD(Gxd(a, ($4c(), W4c)))); + if (Heb(TD(Gxd(a, U4c)))) { + k = RD(Gxd(a, (u2c(), t2c)), 27); + f = RD(QHd(mzd(RD(QHd((!k.e && (k.e = new Yie(G4, k, 7, 4)), k.e), (!k.e && (k.e = new Yie(G4, k, 7, 4)), k.e).i - 1), 74)), 0), 27); + d = RD(QHd(mzd(RD(QHd((!k.e && (k.e = new Yie(G4, k, 7, 4)), k.e), 0), 74)), 0), 27); + g = new rjd(f.i + f.g / 2, f.j + f.f / 2); + e = new rjd(d.i + d.g / 2, d.j + d.f / 2); + c = l; + c <= 0 && (c += dFe); + m = $wnd.Math.acos((g.a * e.a + g.b * e.b) / ($wnd.Math.sqrt(g.a * g.a + g.b * g.b) * $wnd.Math.sqrt(e.a * e.a + e.b * e.b))); + m <= 0 && (m += dFe); + b = $wnd.Math.atan2(g.b, g.a); + b <= 0 && (b += dFe); + l = FEe - (b - c + m / 2); + } + for (i = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); i.e != i.i.gc(); ) { + h = RD(bMd(i), 27); + j = new rjd(h.i + h.g / 2, h.j + h.f / 2); + n = j.a * $wnd.Math.cos(l) - j.b * $wnd.Math.sin(l); + j.b = j.a * $wnd.Math.sin(l) + j.b * $wnd.Math.cos(l); + j.a = n; + Byd(h, j.a - h.g / 2, j.b - h.f / 2); + } + } + function qcc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + b.Ug("Inverted port preprocessing", 1); + k = a.b; + j = new Jkb(k, 0); + c = null; + t = new bnb(); + while (j.b < j.d.gc()) { + s = c; + c = (sFb(j.b < j.d.gc()), RD(j.d.Xb(j.c = j.b++), 30)); + for (n = new Anb(t); n.a < n.c.c.length; ) { + l = RD(ynb(n), 10); + g3b(l, s); + } + t.c.length = 0; + for (o2 = new Anb(c.a); o2.a < o2.c.c.length; ) { + l = RD(ynb(o2), 10); + if (l.k != (r3b(), p3b)) { + continue; + } + if (!Dod(RD(mQb(l, (yCc(), BBc)), 101))) { + continue; + } + for (r = d3b(l, (BEc(), yEc), (qpd(), Xod)).Kc(); r.Ob(); ) { + p = RD(r.Pb(), 12); + i = p.e; + h = RD(anb(i, $C(WQ, VAe, 18, i.c.length, 0, 1)), 483); + for (e = h, f = 0, g = e.length; f < g; ++f) { + d = e[f]; + occ(a, p, d, t); + } + } + for (q = d3b(l, zEc, ppd).Kc(); q.Ob(); ) { + p = RD(q.Pb(), 12); + i = p.g; + h = RD(anb(i, $C(WQ, VAe, 18, i.c.length, 0, 1)), 483); + for (e = h, f = 0, g = e.length; f < g; ++f) { + d = e[f]; + pcc(a, p, d, t); + } + } + } + } + for (m = new Anb(t); m.a < m.c.c.length; ) { + l = RD(ynb(m), 10); + g3b(l, c); + } + b.Vg(); + } + function NUc(a, b, c, d, e, f, g) { + var h, i, j, k, l, m, n, o2, p, q, r, s, t; + m = null; + d == (dVc(), bVc) ? m = b : d == cVc && (m = c); + for (p = m.a.ec().Kc(); p.Ob(); ) { + o2 = RD(p.Pb(), 12); + q = xjd(cD(WC(l3, 1), Nve, 8, 0, [o2.i.n, o2.n, o2.a])).b; + t = new _sb(); + h = new _sb(); + for (j = new l4b(o2.b); xnb(j.a) || xnb(j.b); ) { + i = RD(xnb(j.a) ? ynb(j.a) : ynb(j.b), 18); + if (Heb(TD(mQb(i, (Ywc(), Nwc)))) != e) { + continue; + } + if (Wmb(f, i, 0) != -1) { + i.d == o2 ? r = i.c : r = i.d; + s = xjd(cD(WC(l3, 1), Nve, 8, 0, [r.i.n, r.n, r.a])).b; + if ($wnd.Math.abs(s - q) < 0.2) { + continue; + } + s < q ? b.a._b(r) ? Ysb(t, new Ptd(bVc, i)) : Ysb(t, new Ptd(cVc, i)) : b.a._b(r) ? Ysb(h, new Ptd(bVc, i)) : Ysb(h, new Ptd(cVc, i)); + } + } + if (t.a.gc() > 1) { + n = new xVc(o2, t, d); + xgb(t, new nVc(a, n)); + ZEb(g.c, n); + for (l = t.a.ec().Kc(); l.Ob(); ) { + k = RD(l.Pb(), 42); + Ymb(f, k.b); + } + } + if (h.a.gc() > 1) { + n = new xVc(o2, h, d); + xgb(h, new pVc(a, n)); + ZEb(g.c, n); + for (l = h.a.ec().Kc(); l.Ob(); ) { + k = RD(l.Pb(), 42); + Ymb(f, k.b); + } + } + } + } + function p6b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r; + p = a.n; + q = a.o; + m = a.d; + l = Kfb(UD(hFc(a, (yCc(), QBc)))); + if (b) { + k = l * (b.gc() - 1); + n = 0; + for (i = b.Kc(); i.Ob(); ) { + g = RD(i.Pb(), 10); + k += g.o.a; + n = $wnd.Math.max(n, g.o.b); + } + r = p.a - (k - q.a) / 2; + f = p.b - m.d + n; + d = q.a / (b.gc() + 1); + e = d; + for (h = b.Kc(); h.Ob(); ) { + g = RD(h.Pb(), 10); + g.n.a = r; + g.n.b = f - g.o.b; + r += g.o.a + l; + j = n6b(g); + j.n.a = g.o.a / 2 - j.a.a; + j.n.b = g.o.b; + o2 = RD(mQb(g, (Ywc(), Xvc)), 12); + if (o2.e.c.length + o2.g.c.length == 1) { + o2.n.a = e - o2.a.a; + o2.n.b = 0; + P3b(o2, a); + } + e += d; + } + } + if (c) { + k = l * (c.gc() - 1); + n = 0; + for (i = c.Kc(); i.Ob(); ) { + g = RD(i.Pb(), 10); + k += g.o.a; + n = $wnd.Math.max(n, g.o.b); + } + r = p.a - (k - q.a) / 2; + f = p.b + q.b + m.a - n; + d = q.a / (c.gc() + 1); + e = d; + for (h = c.Kc(); h.Ob(); ) { + g = RD(h.Pb(), 10); + g.n.a = r; + g.n.b = f; + r += g.o.a + l; + j = n6b(g); + j.n.a = g.o.a / 2 - j.a.a; + j.n.b = 0; + o2 = RD(mQb(g, (Ywc(), Xvc)), 12); + if (o2.e.c.length + o2.g.c.length == 1) { + o2.n.a = e - o2.a.a; + o2.n.b = q.b; + P3b(o2, a); + } + e += d; + } + } + } + function Hac(a, b) { + var c, d, e, f, g, h; + if (!RD(mQb(b, (Ywc(), kwc)), 21).Hc((ovc(), hvc))) { + return; + } + for (h = new Anb(b.a); h.a < h.c.c.length; ) { + f = RD(ynb(h), 10); + if (f.k == (r3b(), p3b)) { + e = RD(mQb(f, (yCc(), _Ac)), 140); + a.c = $wnd.Math.min(a.c, f.n.a - e.b); + a.a = $wnd.Math.max(a.a, f.n.a + f.o.a + e.c); + a.d = $wnd.Math.min(a.d, f.n.b - e.d); + a.b = $wnd.Math.max(a.b, f.n.b + f.o.b + e.a); + } + } + for (g = new Anb(b.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 10); + if (f.k != (r3b(), p3b)) { + switch (f.k.g) { + case 2: + d = RD(mQb(f, (yCc(), UAc)), 171); + if (d == (cxc(), $wc)) { + f.n.a = a.c - 10; + Gac(f, new Oac()).Jb(new Rac(f)); + break; + } + if (d == axc) { + f.n.a = a.a + 10; + Gac(f, new Uac()).Jb(new Xac(f)); + break; + } + c = RD(mQb(f, owc), 311); + if (c == (Gvc(), Fvc)) { + Fac(f).Jb(new $ac(f)); + f.n.b = a.d - 10; + break; + } + if (c == Dvc) { + Fac(f).Jb(new bbc(f)); + f.n.b = a.b + 10; + break; + } + break; + default: + throw Adb(new agb("The node type " + f.k + " is not supported by the " + XS)); + } + } + } + } + function g5b(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q; + i = new rjd(d.i + d.g / 2, d.j + d.f / 2); + n = W4b(d); + o2 = RD(Gxd(b, (yCc(), BBc)), 101); + q = RD(Gxd(d, GBc), 64); + if (!HPd(Fxd(d), ABc)) { + d.i == 0 && d.j == 0 ? p = 0 : p = nsd(d, q); + Ixd(d, ABc, p); + } + j = new rjd(b.g, b.f); + e = f2b(d, o2, q, n, j, i, new rjd(d.g, d.f), RD(mQb(c, rAc), 88), c); + pQb(e, (Ywc(), Awc), d); + f = RD(Vmb(e.j, 0), 12); + O3b(f, e5b(d)); + pQb(e, EBc, (Pod(), xsb(Nod))); + l = RD(Gxd(b, EBc), 181).Hc(Lod); + for (h = new dMd((!d.n && (d.n = new C5d(I4, d, 1, 7)), d.n)); h.e != h.i.gc(); ) { + g = RD(bMd(h), 135); + if (!Heb(TD(Gxd(g, pBc))) && !!g.a) { + m = h5b(g); + Rmb(f.f, m); + if (!l) { + k = 0; + Rod(RD(Gxd(b, EBc), 21)) && (k = qsd(new rjd(g.i, g.j), new rjd(g.g, g.f), new rjd(d.g, d.f), 0, q)); + switch (q.g) { + case 2: + case 4: + m.o.a = k; + break; + case 1: + case 3: + m.o.b = k; + } + } + } + } + pQb(e, _Bc, UD(Gxd(vCd(b), _Bc))); + pQb(e, aCc, UD(Gxd(vCd(b), aCc))); + pQb(e, ZBc, UD(Gxd(vCd(b), ZBc))); + Rmb(c.a, e); + Zjb(a.a, d, e); + } + function j5b(a, b, c, d, e, f) { + var g, h, i, j, k, l; + j = new R3b(); + kQb(j, b); + Q3b(j, RD(Gxd(b, (yCc(), GBc)), 64)); + pQb(j, (Ywc(), Awc), b); + P3b(j, c); + l = j.o; + l.a = b.g; + l.b = b.f; + k = j.n; + k.a = b.i; + k.b = b.j; + Zjb(a.a, b, j); + g = yDb(GDb(EDb(new SDb(null, (!b.e && (b.e = new Yie(G4, b, 7, 4)), new Swb(b.e, 16))), new w5b()), new o5b()), new y5b(b)); + g || (g = yDb(GDb(EDb(new SDb(null, (!b.d && (b.d = new Yie(G4, b, 8, 5)), new Swb(b.d, 16))), new A5b()), new q5b()), new C5b(b))); + g || (g = yDb(new SDb(null, (!b.e && (b.e = new Yie(G4, b, 7, 4)), new Swb(b.e, 16))), new E5b())); + pQb(j, nwc, (Geb(), g ? true : false)); + m2b(j, f, e, RD(Gxd(b, zBc), 8)); + for (i = new dMd((!b.n && (b.n = new C5d(I4, b, 1, 7)), b.n)); i.e != i.i.gc(); ) { + h = RD(bMd(i), 135); + !Heb(TD(Gxd(h, pBc))) && !!h.a && Rmb(j.f, h5b(h)); + } + switch (e.g) { + case 2: + case 1: + (j.j == (qpd(), Yod) || j.j == npd) && d.Fc((ovc(), lvc)); + break; + case 4: + case 3: + (j.j == (qpd(), Xod) || j.j == ppd) && d.Fc((ovc(), lvc)); + } + return j; + } + function dud(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D; + t = 0; + o2 = 0; + n = 0; + m = 1; + for (s = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); s.e != s.i.gc(); ) { + q = RD(bMd(s), 27); + m += Kr(new is(Mr(zGd(q).a.Kc(), new ir()))); + B = q.g; + o2 = $wnd.Math.max(o2, B); + l = q.f; + n = $wnd.Math.max(n, l); + t += B * l; + } + p = (!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a).i; + g = t + 2 * d * d * m * p; + f = $wnd.Math.sqrt(g); + i = $wnd.Math.max(f * c, o2); + h = $wnd.Math.max(f / c, n); + for (r = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); r.e != r.i.gc(); ) { + q = RD(bMd(r), 27); + C = e.b + (Kwb(b, 26) * Kxe + Kwb(b, 27) * Lxe) * (i - q.g); + D = e.b + (Kwb(b, 26) * Kxe + Kwb(b, 27) * Lxe) * (h - q.f); + Dyd(q, C); + Eyd(q, D); + } + A = i + (e.b + e.c); + w = h + (e.d + e.a); + for (v = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); v.e != v.i.gc(); ) { + u = RD(bMd(v), 27); + for (k = new is(Mr(zGd(u).a.Kc(), new ir())); gs(k); ) { + j = RD(hs(k), 74); + nzd(j) || cud(j, b, A, w); + } + } + A += e.b + e.c; + w += e.d + e.a; + Esd(a, A, w, false, true); + } + function CLb(a) { + var b; + this.r = Ty(new FLb(), new JLb()); + this.b = new Zrb(RD(Qb(E3), 297)); + this.p = new Zrb(RD(Qb(E3), 297)); + this.i = new Zrb(RD(Qb(XN), 297)); + this.e = a; + this.o = new sjd(a.Mf()); + this.D = a.Yf() || Heb(TD(a.of((umd(), $kd)))); + this.A = RD(a.of((umd(), kld)), 21); + this.B = RD(a.of(pld), 21); + this.q = RD(a.of(Hld), 101); + this.u = RD(a.of(Lld), 21); + if (!Sod(this.u)) { + throw Adb(new Jed("Invalid port label placement: " + this.u)); + } + this.v = Heb(TD(a.of(Nld))); + this.j = RD(a.of(ild), 21); + if (!fod(this.j)) { + throw Adb(new Jed("Invalid node label placement: " + this.j)); + } + this.n = RD(ftd(a, gld), 107); + this.k = Kfb(UD(ftd(a, cmd))); + this.d = Kfb(UD(ftd(a, bmd))); + this.w = Kfb(UD(ftd(a, jmd))); + this.s = Kfb(UD(ftd(a, dmd))); + this.t = Kfb(UD(ftd(a, emd))); + this.C = RD(ftd(a, hmd), 140); + this.c = 2 * this.d; + b = !this.B.Hc((dqd(), Wpd)); + this.f = new dLb(0, b, 0); + this.g = new dLb(1, b, 0); + cLb(this.f, (ZJb(), XJb), this.g); + } + function s6b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r; + b.Ug("Comment pre-processing", 1); + c = 0; + i = new Anb(a.a); + while (i.a < i.c.c.length) { + h = RD(ynb(i), 10); + if (Heb(TD(mQb(h, (yCc(), Uzc))))) { + ++c; + e = 0; + d = null; + j = null; + for (o2 = new Anb(h.j); o2.a < o2.c.c.length; ) { + m = RD(ynb(o2), 12); + e += m.e.c.length + m.g.c.length; + if (m.e.c.length == 1) { + d = RD(Vmb(m.e, 0), 18); + j = d.c; + } + if (m.g.c.length == 1) { + d = RD(Vmb(m.g, 0), 18); + j = d.d; + } + } + if (e == 1 && j.e.c.length + j.g.c.length == 1 && !Heb(TD(mQb(j.i, Uzc)))) { + t6b(h, d, j, j.i); + znb(i); + } else { + r = new bnb(); + for (n = new Anb(h.j); n.a < n.c.c.length; ) { + m = RD(ynb(n), 12); + for (l = new Anb(m.g); l.a < l.c.c.length; ) { + k = RD(ynb(l), 18); + k.d.g.c.length == 0 || (ZEb(r.c, k), true); + } + for (g = new Anb(m.e); g.a < g.c.c.length; ) { + f = RD(ynb(g), 18); + f.c.e.c.length == 0 || (ZEb(r.c, f), true); + } + } + for (q = new Anb(r); q.a < q.c.c.length; ) { + p = RD(ynb(q), 18); + X0b(p, true); + } + } + } + } + b._g() && b.bh("Found " + c + " comment boxes"); + b.Vg(); + } + function wke(a, b) { + uke(); + var c, d, e, f, g, h, i; + this.a = new zke(this); + this.b = a; + this.c = b; + this.f = Cfe(Qee((lke(), jke), b)); + if (this.f.dc()) { + if ((h = Tee(jke, a)) == b) { + this.e = true; + this.d = new bnb(); + this.f = new OSd(); + this.f.Fc(dLe); + RD(tfe(Pee(jke, BXd(a)), ""), 29) == a && this.f.Fc(Uee(jke, BXd(a))); + for (e = Gee(jke, a).Kc(); e.Ob(); ) { + d = RD(e.Pb(), 179); + switch (yfe(Qee(jke, d))) { + case 4: { + this.d.Fc(d); + break; + } + case 5: { + this.f.Gc(Cfe(Qee(jke, d))); + break; + } + } + } + } else { + nke(); + if (RD(b, 69).xk()) { + this.e = true; + this.f = null; + this.d = new bnb(); + for (g = 0, i = (a.i == null && rYd(a), a.i).length; g < i; ++g) { + d = (c = (a.i == null && rYd(a), a.i), g >= 0 && g < c.length ? c[g] : null); + for (f = zfe(Qee(jke, d)); f; f = zfe(Qee(jke, f))) { + f == b && this.d.Fc(d); + } + } + } else if (yfe(Qee(jke, b)) == 1 && !!h) { + this.f = null; + this.d = (Lle(), Kle); + } else { + this.f = null; + this.e = true; + this.d = (yob(), new mpb(b)); + } + } + } else { + this.e = yfe(Qee(jke, b)) == 5; + this.f.Fb(tke) && (this.f = tke); + } + } + function qNb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2; + c = 0; + d = pNb(a, b); + m = a.s; + n = a.t; + for (j = RD(RD(Qc(a.r, b), 21), 87).Kc(); j.Ob(); ) { + i = RD(j.Pb(), 117); + if (!i.c || i.c.d.c.length <= 0) { + continue; + } + o2 = i.b.Mf(); + h = i.b.pf((umd(), Gld)) ? Kfb(UD(i.b.of(Gld))) : 0; + k = i.c; + l = k.i; + l.b = (g = k.n, k.e.a + g.b + g.c); + l.a = (f = k.n, k.e.b + f.d + f.a); + switch (b.g) { + case 1: + l.c = i.a ? (o2.a - l.b) / 2 : o2.a + m; + l.d = o2.b + h + d; + RKb(k, (EKb(), BKb)); + SKb(k, (vLb(), uLb)); + break; + case 3: + l.c = i.a ? (o2.a - l.b) / 2 : o2.a + m; + l.d = -h - d - l.a; + RKb(k, (EKb(), BKb)); + SKb(k, (vLb(), sLb)); + break; + case 2: + l.c = -h - d - l.b; + if (i.a) { + e = a.v ? l.a : RD(Vmb(k.d, 0), 187).Mf().b; + l.d = (o2.b - e) / 2; + } else { + l.d = o2.b + n; + } + RKb(k, (EKb(), DKb)); + SKb(k, (vLb(), tLb)); + break; + case 4: + l.c = o2.a + h + d; + if (i.a) { + e = a.v ? l.a : RD(Vmb(k.d, 0), 187).Mf().b; + l.d = (o2.b - e) / 2; + } else { + l.d = o2.b + n; + } + RKb(k, (EKb(), CKb)); + SKb(k, (vLb(), tLb)); + } + (b == (qpd(), Yod) || b == npd) && (c = $wnd.Math.max(c, l.a)); + } + c > 0 && (RD(Vrb(a.b, b), 127).a.b = c); + } + function wcc(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p; + m = Kfb(UD(mQb(a, (yCc(), _Bc)))); + n = Kfb(UD(mQb(a, aCc))); + l = Kfb(UD(mQb(a, ZBc))); + h = a.o; + f = RD(Vmb(a.j, 0), 12); + g = f.n; + p = ucc(f, l); + if (!p) { + return; + } + if (b.Hc((Pod(), Lod))) { + switch (RD(mQb(a, (Ywc(), hwc)), 64).g) { + case 1: + p.c = (h.a - p.b) / 2 - g.a; + p.d = n; + break; + case 3: + p.c = (h.a - p.b) / 2 - g.a; + p.d = -n - p.a; + break; + case 2: + if (c && f.e.c.length == 0 && f.g.c.length == 0) { + k = d ? p.a : RD(Vmb(f.f, 0), 72).o.b; + p.d = (h.b - k) / 2 - g.b; + } else { + p.d = h.b + n - g.b; + } + p.c = -m - p.b; + break; + case 4: + if (c && f.e.c.length == 0 && f.g.c.length == 0) { + k = d ? p.a : RD(Vmb(f.f, 0), 72).o.b; + p.d = (h.b - k) / 2 - g.b; + } else { + p.d = h.b + n - g.b; + } + p.c = m; + } + } else if (b.Hc(Nod)) { + switch (RD(mQb(a, (Ywc(), hwc)), 64).g) { + case 1: + case 3: + p.c = g.a + m; + break; + case 2: + case 4: + if (c && !f.c) { + k = d ? p.a : RD(Vmb(f.f, 0), 72).o.b; + p.d = (h.b - k) / 2 - g.b; + } else { + p.d = g.b + n; + } + } + } + e = p.d; + for (j = new Anb(f.f); j.a < j.c.c.length; ) { + i = RD(ynb(j), 72); + o2 = i.n; + o2.a = p.c; + o2.b = e; + e += i.o.b + l; + } + } + function w9b(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F; + w = new bnb(); + for (o2 = new Anb(a.b); o2.a < o2.c.c.length; ) { + n = RD(ynb(o2), 30); + for (r = new Anb(n.a); r.a < r.c.c.length; ) { + p = RD(ynb(r), 10); + if (p.k != (r3b(), m3b)) { + continue; + } + if (!nQb(p, (Ywc(), gwc))) { + continue; + } + s = null; + u = null; + t = null; + for (C = new Anb(p.j); C.a < C.c.c.length; ) { + B = RD(ynb(C), 12); + switch (B.j.g) { + case 4: + s = B; + break; + case 2: + u = B; + break; + default: + t = B; + } + } + v = RD(Vmb(t.g, 0), 18); + k = new Fjd(v.a); + j = new sjd(t.n); + $id(j, p.n); + l = Sub(k, 0); + cvb(l, j); + A = Ijd(v.a); + m = new sjd(t.n); + $id(m, p.n); + Pub(A, m, A.c.b, A.c); + D = RD(mQb(p, gwc), 10); + F = RD(Vmb(D.j, 0), 12); + i = RD(anb(s.e, $C(WQ, VAe, 18, 0, 0, 1)), 483); + for (d = i, f = 0, h = d.length; f < h; ++f) { + b = d[f]; + Z0b(b, F); + Ajd(b.a, b.a.b, k); + } + i = s2b(u.g); + for (c = i, e = 0, g = c.length; e < g; ++e) { + b = c[e]; + Y0b(b, F); + Ajd(b.a, 0, A); + } + Y0b(v, null); + Z0b(v, null); + ZEb(w.c, p); + } + } + for (q = new Anb(w); q.a < q.c.c.length; ) { + p = RD(ynb(q), 10); + g3b(p, null); + } + } + function Dne() { + RRd(Vbb, new ioe()); + RRd(Xbb, new Poe()); + RRd(Ybb, new upe()); + RRd(Zbb, new _pe()); + RRd(qJ, new lqe()); + RRd(WC(gE, 1), new oqe()); + RRd(QI, new rqe()); + RRd(RI, new uqe()); + RRd(qJ, new Gne()); + RRd(qJ, new Jne()); + RRd(qJ, new Mne()); + RRd(VI, new Pne()); + RRd(qJ, new Sne()); + RRd(QK, new Vne()); + RRd(QK, new Yne()); + RRd(qJ, new _ne()); + RRd(ZI, new coe()); + RRd(qJ, new foe()); + RRd(qJ, new loe()); + RRd(qJ, new ooe()); + RRd(qJ, new roe()); + RRd(qJ, new uoe()); + RRd(WC(gE, 1), new xoe()); + RRd(qJ, new Aoe()); + RRd(qJ, new Doe()); + RRd(QK, new Goe()); + RRd(QK, new Joe()); + RRd(qJ, new Moe()); + RRd(bJ, new Soe()); + RRd(qJ, new Voe()); + RRd(eJ, new Yoe()); + RRd(qJ, new _oe()); + RRd(qJ, new cpe()); + RRd(qJ, new fpe()); + RRd(qJ, new ipe()); + RRd(QK, new lpe()); + RRd(QK, new ope()); + RRd(qJ, new rpe()); + RRd(qJ, new xpe()); + RRd(qJ, new Ape()); + RRd(qJ, new Dpe()); + RRd(qJ, new Gpe()); + RRd(qJ, new Jpe()); + RRd(lJ, new Mpe()); + RRd(qJ, new Ppe()); + RRd(qJ, new Spe()); + RRd(qJ, new Vpe()); + RRd(lJ, new Ype()); + RRd(eJ, new cqe()); + RRd(qJ, new fqe()); + RRd(bJ, new iqe()); + } + function jsc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2; + k = new Ejd(); + switch (a.a.g) { + case 3: + m = RD(mQb(b.e, (Ywc(), Twc)), 15); + n = RD(mQb(b.j, Twc), 15); + o2 = RD(mQb(b.f, Twc), 15); + c = RD(mQb(b.e, Rwc), 15); + d = RD(mQb(b.j, Rwc), 15); + e = RD(mQb(b.f, Rwc), 15); + g = new bnb(); + Tmb(g, m); + n.Jc(new msc()); + Tmb(g, hv(n)); + Tmb(g, o2); + f = new bnb(); + Tmb(f, c); + Tmb(f, hv(d)); + Tmb(f, e); + pQb(b.f, Twc, g); + pQb(b.f, Rwc, f); + pQb(b.f, Uwc, b.f); + pQb(b.e, Twc, null); + pQb(b.e, Rwc, null); + pQb(b.j, Twc, null); + pQb(b.j, Rwc, null); + break; + case 1: + ye(k, b.e.a); + Mub(k, b.i.n); + ye(k, hv(b.j.a)); + Mub(k, b.a.n); + ye(k, b.f.a); + break; + default: + ye(k, b.e.a); + ye(k, hv(b.j.a)); + ye(k, b.f.a); + } + Xub(b.f.a); + ye(b.f.a, k); + Y0b(b.f, b.e.c); + h = RD(mQb(b.e, (yCc(), RAc)), 75); + j = RD(mQb(b.j, RAc), 75); + i = RD(mQb(b.f, RAc), 75); + if (!!h || !!j || !!i) { + l = new Ejd(); + hsc(l, i); + hsc(l, j); + hsc(l, h); + pQb(b.f, RAc, l); + } + Y0b(b.j, null); + Z0b(b.j, null); + Y0b(b.e, null); + Z0b(b.e, null); + g3b(b.a, null); + g3b(b.i, null); + !!b.g && jsc(a, b.g); + } + function tib() { + tib = geb; + var a, b, c; + new Aib(1, 0); + new Aib(10, 0); + new Aib(0, 0); + lib = $C(tJ, Nve, 247, 11, 0, 1); + mib = $C(hE, zwe, 28, 100, 15, 1); + nib = cD(WC(iE, 1), vxe, 28, 15, [1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125, 6103515625, 30517578125, 152587890625, 762939453125, 3814697265625, 19073486328125, 95367431640625, 476837158203125, 2384185791015625]); + oib = $C(kE, Pwe, 28, nib.length, 15, 1); + pib = cD(WC(iE, 1), vxe, 28, 15, [1, 10, 100, Awe, 1e4, wxe, 1e6, 1e7, 1e8, ixe, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16]); + qib = $C(kE, Pwe, 28, pib.length, 15, 1); + rib = $C(tJ, Nve, 247, 11, 0, 1); + a = 0; + for (; a < rib.length; a++) { + lib[a] = new Aib(a, 0); + rib[a] = new Aib(0, a); + mib[a] = 48; + } + for (; a < mib.length; a++) { + mib[a] = 48; + } + for (c = 0; c < oib.length; c++) { + oib[c] = Cib(nib[c]); + } + for (b = 0; b < qib.length; b++) { + qib[b] = Cib(pib[b]); + } + Ljb(); + } + function Htb() { + function e() { + this.obj = this.createObject(); + } + e.prototype.createObject = function(a) { + return /* @__PURE__ */ Object.create(null); + }; + e.prototype.get = function(a) { + return this.obj[a]; + }; + e.prototype.set = function(a, b) { + this.obj[a] = b; + }; + e.prototype[Jxe] = function(a) { + delete this.obj[a]; + }; + e.prototype.keys = function() { + return Object.getOwnPropertyNames(this.obj); + }; + e.prototype.entries = function() { + var b = this.keys(); + var c = this; + var d = 0; + return { next: function() { + if (d >= b.length) + return { done: true }; + var a = b[d++]; + return { value: [a, c.get(a)], done: false }; + } }; + }; + if (!Ftb()) { + e.prototype.createObject = function() { + return {}; + }; + e.prototype.get = function(a) { + return this.obj[":" + a]; + }; + e.prototype.set = function(a, b) { + this.obj[":" + a] = b; + }; + e.prototype[Jxe] = function(a) { + delete this.obj[":" + a]; + }; + e.prototype.keys = function() { + var a = []; + for (var b in this.obj) { + b.charCodeAt(0) == 58 && a.push(b.substring(1)); + } + return a; + }; + } + return e; + } + function q$c() { + q$c = geb; + h$c = new jGd(rAe); + new kGd("DEPTH", sgb(0)); + XZc = new kGd("FAN", sgb(0)); + VZc = new kGd(QEe, sgb(0)); + n$c = new kGd("ROOT", (Geb(), false)); + b$c = new kGd("LEFTNEIGHBOR", null); + l$c = new kGd("RIGHTNEIGHBOR", null); + c$c = new kGd("LEFTSIBLING", null); + m$c = new kGd("RIGHTSIBLING", null); + WZc = new kGd("DUMMY", false); + new kGd("LEVEL", sgb(0)); + k$c = new kGd("REMOVABLE_EDGES", new Yub()); + o$c = new kGd("XCOOR", sgb(0)); + p$c = new kGd("YCOOR", sgb(0)); + d$c = new kGd("LEVELHEIGHT", 0); + f$c = new kGd("LEVELMIN", 0); + e$c = new kGd("LEVELMAX", 0); + ZZc = new kGd("GRAPH_XMIN", 0); + _Zc = new kGd("GRAPH_YMIN", 0); + YZc = new kGd("GRAPH_XMAX", 0); + $Zc = new kGd("GRAPH_YMAX", 0); + UZc = new kGd("COMPACT_LEVEL_ASCENSION", false); + TZc = new kGd("COMPACT_CONSTRAINTS", new bnb()); + a$c = new kGd("ID", ""); + i$c = new kGd("POSITION", sgb(0)); + j$c = new kGd("PRELIM", 0); + g$c = new kGd("MODIFIER", 0); + SZc = new jGd(tAe); + RZc = new jGd(uAe); + } + function Bqe(a) { + zqe(); + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + if (a == null) + return null; + l = a.length * 8; + if (l == 0) { + return ""; + } + h = l % 24; + n = l / 24 | 0; + m = h != 0 ? n + 1 : n; + f = null; + f = $C(hE, zwe, 28, m * 4, 15, 1); + j = 0; + k = 0; + b = 0; + c = 0; + d = 0; + g = 0; + e = 0; + for (i = 0; i < n; i++) { + b = a[e++]; + c = a[e++]; + d = a[e++]; + k = (c & 15) << 24 >> 24; + j = (b & 3) << 24 >> 24; + o2 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24; + p = (c & -128) == 0 ? c >> 4 << 24 >> 24 : (c >> 4 ^ 240) << 24 >> 24; + q = (d & -128) == 0 ? d >> 6 << 24 >> 24 : (d >> 6 ^ 252) << 24 >> 24; + f[g++] = yqe[o2]; + f[g++] = yqe[p | j << 4]; + f[g++] = yqe[k << 2 | q]; + f[g++] = yqe[d & 63]; + } + if (h == 8) { + b = a[e]; + j = (b & 3) << 24 >> 24; + o2 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24; + f[g++] = yqe[o2]; + f[g++] = yqe[j << 4]; + f[g++] = 61; + f[g++] = 61; + } else if (h == 16) { + b = a[e]; + c = a[e + 1]; + k = (c & 15) << 24 >> 24; + j = (b & 3) << 24 >> 24; + o2 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24; + p = (c & -128) == 0 ? c >> 4 << 24 >> 24 : (c >> 4 ^ 240) << 24 >> 24; + f[g++] = yqe[o2]; + f[g++] = yqe[p | j << 4]; + f[g++] = yqe[k << 2]; + f[g++] = 61; + } + return Ihb(f, 0, f.length); + } + function CB(a, b) { + var c, d, e, f, g, h, i; + a.e == 0 && a.p > 0 && (a.p = -(a.p - 1)); + a.p > qwe && tB(b, a.p - Owe); + g = b.q.getDate(); + nB(b, 1); + a.k >= 0 && qB(b, a.k); + if (a.c >= 0) { + nB(b, a.c); + } else if (a.k >= 0) { + i = new vB(b.q.getFullYear() - Owe, b.q.getMonth(), 35); + d = 35 - i.q.getDate(); + nB(b, $wnd.Math.min(d, g)); + } else { + nB(b, g); + } + a.f < 0 && (a.f = b.q.getHours()); + a.b > 0 && a.f < 12 && (a.f += 12); + oB(b, a.f == 24 && a.g ? 0 : a.f); + a.j >= 0 && pB(b, a.j); + a.n >= 0 && rB(b, a.n); + a.i >= 0 && sB(b, Bdb(Ndb(Fdb(Hdb(b.q.getTime()), Awe), Awe), a.i)); + if (a.a) { + e = new uB(); + tB(e, e.q.getFullYear() - Owe - 80); + Ldb(Hdb(b.q.getTime()), Hdb(e.q.getTime())) && tB(b, e.q.getFullYear() - Owe + 100); + } + if (a.d >= 0) { + if (a.c == -1) { + c = (7 + a.d - b.q.getDay()) % 7; + c > 3 && (c -= 7); + h = b.q.getMonth(); + nB(b, b.q.getDate() + c); + b.q.getMonth() != h && nB(b, b.q.getDate() + (c > 0 ? -7 : 7)); + } else { + if (b.q.getDay() != a.d) { + return false; + } + } + } + if (a.o > qwe) { + f = b.q.getTimezoneOffset(); + sB(b, Bdb(Hdb(b.q.getTime()), (a.o - f) * 60 * Awe)); + } + return true; + } + function J5b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + e = mQb(b, (Ywc(), Awc)); + if (!ZD(e, 207)) { + return; + } + o2 = RD(e, 27); + p = b.e; + m = new sjd(b.c); + f = b.d; + m.a += f.b; + m.b += f.d; + u = RD(Gxd(o2, (yCc(), oBc)), 181); + if (Csb(u, (dqd(), Xpd))) { + n = RD(Gxd(o2, qBc), 107); + E2b(n, f.a); + H2b(n, f.d); + F2b(n, f.b); + G2b(n, f.c); + } + c = new bnb(); + for (k = new Anb(b.a); k.a < k.c.c.length; ) { + i = RD(ynb(k), 10); + if (ZD(mQb(i, Awc), 207)) { + K5b(i, m); + } else if (ZD(mQb(i, Awc), 193) && !p) { + d = RD(mQb(i, Awc), 123); + s = j2b(b, i, d.g, d.f); + Byd(d, s.a, s.b); + } + for (r = new Anb(i.j); r.a < r.c.c.length; ) { + q = RD(ynb(r), 12); + FDb(CDb(new SDb(null, new Swb(q.g, 16)), new Q5b(i)), new S5b(c)); + } + } + if (p) { + for (r = new Anb(p.j); r.a < r.c.c.length; ) { + q = RD(ynb(r), 12); + FDb(CDb(new SDb(null, new Swb(q.g, 16)), new U5b(p)), new W5b(c)); + } + } + t = RD(Gxd(o2, yAc), 223); + for (h = new Anb(c); h.a < h.c.c.length; ) { + g = RD(ynb(h), 18); + I5b(g, t, m); + } + L5b(b); + for (j = new Anb(b.a); j.a < j.c.c.length; ) { + i = RD(ynb(j), 10); + l = i.e; + !!l && J5b(a, l); + } + } + function xNb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n; + if (RD(RD(Qc(a.r, b), 21), 87).dc()) { + return; + } + g = RD(Vrb(a.b, b), 127); + i = g.i; + h = g.n; + k = BLb(a, b); + d = i.b - h.b - h.c; + e = g.a.a; + f = i.c + h.b; + n = a.w; + if ((k == (pod(), mod) || k == ood) && RD(RD(Qc(a.r, b), 21), 87).gc() == 1) { + e = k == mod ? e - 2 * a.w : e; + k = lod; + } + if (d < e && !a.B.Hc((dqd(), aqd))) { + if (k == mod) { + n += (d - e) / (RD(RD(Qc(a.r, b), 21), 87).gc() + 1); + f += n; + } else { + n += (d - e) / (RD(RD(Qc(a.r, b), 21), 87).gc() - 1); + } + } else { + if (d < e) { + e = k == mod ? e - 2 * a.w : e; + k = lod; + } + switch (k.g) { + case 3: + f += (d - e) / 2; + break; + case 4: + f += d - e; + break; + case 0: + c = (d - e) / (RD(RD(Qc(a.r, b), 21), 87).gc() + 1); + n += $wnd.Math.max(0, c); + f += n; + break; + case 1: + c = (d - e) / (RD(RD(Qc(a.r, b), 21), 87).gc() - 1); + n += $wnd.Math.max(0, c); + } + } + for (m = RD(RD(Qc(a.r, b), 21), 87).Kc(); m.Ob(); ) { + l = RD(m.Pb(), 117); + l.e.a = f + l.d.b; + l.e.b = (j = l.b, j.pf((umd(), Gld)) ? j.ag() == (qpd(), Yod) ? -j.Mf().b - Kfb(UD(j.of(Gld))) : Kfb(UD(j.of(Gld))) : j.ag() == (qpd(), Yod) ? -j.Mf().b : 0); + f += l.d.b + l.b.Mf().a + l.d.c + n; + } + } + function BNb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2; + if (RD(RD(Qc(a.r, b), 21), 87).dc()) { + return; + } + g = RD(Vrb(a.b, b), 127); + i = g.i; + h = g.n; + l = BLb(a, b); + d = i.a - h.d - h.a; + e = g.a.b; + f = i.d + h.d; + o2 = a.w; + j = a.o.a; + if ((l == (pod(), mod) || l == ood) && RD(RD(Qc(a.r, b), 21), 87).gc() == 1) { + e = l == mod ? e - 2 * a.w : e; + l = lod; + } + if (d < e && !a.B.Hc((dqd(), aqd))) { + if (l == mod) { + o2 += (d - e) / (RD(RD(Qc(a.r, b), 21), 87).gc() + 1); + f += o2; + } else { + o2 += (d - e) / (RD(RD(Qc(a.r, b), 21), 87).gc() - 1); + } + } else { + if (d < e) { + e = l == mod ? e - 2 * a.w : e; + l = lod; + } + switch (l.g) { + case 3: + f += (d - e) / 2; + break; + case 4: + f += d - e; + break; + case 0: + c = (d - e) / (RD(RD(Qc(a.r, b), 21), 87).gc() + 1); + o2 += $wnd.Math.max(0, c); + f += o2; + break; + case 1: + c = (d - e) / (RD(RD(Qc(a.r, b), 21), 87).gc() - 1); + o2 += $wnd.Math.max(0, c); + } + } + for (n = RD(RD(Qc(a.r, b), 21), 87).Kc(); n.Ob(); ) { + m = RD(n.Pb(), 117); + m.e.a = (k = m.b, k.pf((umd(), Gld)) ? k.ag() == (qpd(), ppd) ? -k.Mf().a - Kfb(UD(k.of(Gld))) : j + Kfb(UD(k.of(Gld))) : k.ag() == (qpd(), ppd) ? -k.Mf().a : j); + m.e.b = f + m.d.d; + f += m.d.d + m.b.Mf().b + m.d.a + o2; + } + } + function bZc(a, b) { + var c, d, e, f, g; + b.Ug("Processor determine the coords for each level", 1); + d = new bnb(); + for (g = Sub(a.b, 0); g.b != g.d.c; ) { + e = RD(evb(g), 40); + while (RD(mQb(e, (h_c(), f_c)), 17).a > d.c.length - 1) { + Rmb(d, new Ptd(Hze, KEe)); + } + c = RD(mQb(e, f_c), 17).a; + if (Dmd(RD(mQb(a, H$c), 88))) { + e.e.a < Kfb(UD((tFb(c, d.c.length), RD(d.c[c], 42)).a)) && Ntd((tFb(c, d.c.length), RD(d.c[c], 42)), e.e.a); + e.e.a + e.f.a > Kfb(UD((tFb(c, d.c.length), RD(d.c[c], 42)).b)) && Otd((tFb(c, d.c.length), RD(d.c[c], 42)), e.e.a + e.f.a); + } else { + e.e.b < Kfb(UD((tFb(c, d.c.length), RD(d.c[c], 42)).a)) && Ntd((tFb(c, d.c.length), RD(d.c[c], 42)), e.e.b); + e.e.b + e.f.b > Kfb(UD((tFb(c, d.c.length), RD(d.c[c], 42)).b)) && Otd((tFb(c, d.c.length), RD(d.c[c], 42)), e.e.b + e.f.b); + } + } + for (f = Sub(a.b, 0); f.b != f.d.c; ) { + e = RD(evb(f), 40); + c = RD(mQb(e, (h_c(), f_c)), 17).a; + pQb(e, (q$c(), f$c), UD((tFb(c, d.c.length), RD(d.c[c], 42)).a)); + pQb(e, e$c, UD((tFb(c, d.c.length), RD(d.c[c], 42)).b)); + } + b.Vg(); + } + function Tec(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p; + a.o = Kfb(UD(mQb(a.i, (yCc(), bCc)))); + a.f = Kfb(UD(mQb(a.i, XBc))); + a.j = a.i.b.c.length; + h = a.j - 1; + m = 0; + a.k = 0; + a.n = 0; + a.b = dv($C(bJ, Nve, 17, a.j, 0, 1)); + a.c = dv($C(VI, Nve, 345, a.j, 7, 1)); + for (g = new Anb(a.i.b); g.a < g.c.c.length; ) { + e = RD(ynb(g), 30); + e.p = h; + for (l = new Anb(e.a); l.a < l.c.c.length; ) { + k = RD(ynb(l), 10); + k.p = m; + ++m; + } + --h; + } + a.g = $C(kE, Pwe, 28, m, 15, 1); + a.d = YC(kE, [Nve, Pwe], [53, 28], 15, [m, 3], 2); + a.p = new bnb(); + a.q = new bnb(); + b = 0; + a.e = 0; + for (f = new Anb(a.i.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 30); + h = e.p; + d = 0; + p = 0; + i = e.a.c.length; + j = 0; + for (l = new Anb(e.a); l.a < l.c.c.length; ) { + k = RD(ynb(l), 10); + m = k.p; + a.g[m] = k.c.p; + j += k.o.b + a.o; + c = Kr(new is(Mr(Z2b(k).a.Kc(), new ir()))); + o2 = Kr(new is(Mr(a3b(k).a.Kc(), new ir()))); + a.d[m][0] = o2 - c; + a.d[m][1] = c; + a.d[m][2] = o2; + d += c; + p += o2; + c > 0 && Rmb(a.q, k); + Rmb(a.p, k); + } + b -= d; + n = i + b; + j += b * a.f; + $mb(a.b, h, sgb(n)); + $mb(a.c, h, j); + a.k = $wnd.Math.max(a.k, n); + a.n = $wnd.Math.max(a.n, j); + a.e += b; + b += p; + } + } + function qpd() { + qpd = geb; + var a; + opd = new upd(Sye, 0); + Yod = new upd(_ye, 1); + Xod = new upd(aze, 2); + npd = new upd(bze, 3); + ppd = new upd(cze, 4); + bpd = (yob(), new Lqb((a = RD(mfb(E3), 9), new Fsb(a, RD(WEb(a, a.length), 9), 0)))); + cpd = eq(ysb(Yod, cD(WC(E3, 1), NAe, 64, 0, []))); + Zod = eq(ysb(Xod, cD(WC(E3, 1), NAe, 64, 0, []))); + kpd = eq(ysb(npd, cD(WC(E3, 1), NAe, 64, 0, []))); + mpd = eq(ysb(ppd, cD(WC(E3, 1), NAe, 64, 0, []))); + hpd = eq(ysb(Yod, cD(WC(E3, 1), NAe, 64, 0, [npd]))); + apd = eq(ysb(Xod, cD(WC(E3, 1), NAe, 64, 0, [ppd]))); + jpd = eq(ysb(Yod, cD(WC(E3, 1), NAe, 64, 0, [ppd]))); + dpd = eq(ysb(Yod, cD(WC(E3, 1), NAe, 64, 0, [Xod]))); + lpd = eq(ysb(npd, cD(WC(E3, 1), NAe, 64, 0, [ppd]))); + $od = eq(ysb(Xod, cD(WC(E3, 1), NAe, 64, 0, [npd]))); + gpd = eq(ysb(Yod, cD(WC(E3, 1), NAe, 64, 0, [Xod, ppd]))); + _od = eq(ysb(Xod, cD(WC(E3, 1), NAe, 64, 0, [npd, ppd]))); + ipd = eq(ysb(Yod, cD(WC(E3, 1), NAe, 64, 0, [npd, ppd]))); + epd = eq(ysb(Yod, cD(WC(E3, 1), NAe, 64, 0, [Xod, npd]))); + fpd = eq(ysb(Yod, cD(WC(E3, 1), NAe, 64, 0, [Xod, npd, ppd]))); + } + function Gfc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A; + b.Ug(qBe, 1); + p = new bnb(); + w = new bnb(); + for (j = new Anb(a.b); j.a < j.c.c.length; ) { + i = RD(ynb(j), 30); + r = -1; + o2 = t2b(i.a); + for (l = o2, m = 0, n = l.length; m < n; ++m) { + k = l[m]; + ++r; + if (!(k.k == (r3b(), p3b) && Dod(RD(mQb(k, (yCc(), BBc)), 101)))) { + continue; + } + Cod(RD(mQb(k, (yCc(), BBc)), 101)) || Hfc(k); + pQb(k, (Ywc(), pwc), k); + p.c.length = 0; + w.c.length = 0; + c = new bnb(); + u = new Yub(); + _q(u, e3b(k, (qpd(), Yod))); + Efc(a, u, p, w, c); + h = r; + A = k; + for (f = new Anb(p); f.a < f.c.c.length; ) { + d = RD(ynb(f), 10); + f3b(d, h, i); + ++r; + pQb(d, pwc, k); + g = RD(Vmb(d.j, 0), 12); + q = RD(mQb(g, Awc), 12); + Heb(TD(mQb(q, Szc))) || RD(mQb(d, qwc), 15).Fc(A); + } + Xub(u); + for (t = e3b(k, npd).Kc(); t.Ob(); ) { + s = RD(t.Pb(), 12); + Pub(u, s, u.a, u.a.a); + } + Efc(a, u, w, null, c); + v = k; + for (e = new Anb(w); e.a < e.c.c.length; ) { + d = RD(ynb(e), 10); + f3b(d, ++r, i); + pQb(d, pwc, k); + g = RD(Vmb(d.j, 0), 12); + q = RD(mQb(g, Awc), 12); + Heb(TD(mQb(q, Szc))) || RD(mQb(v, qwc), 15).Fc(d); + } + c.c.length == 0 || pQb(k, Uvc, c); + } + } + b.Vg(); + } + function tYc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + if (b.b != 0) { + n = new Yub(); + h = null; + o2 = null; + d = eE($wnd.Math.floor($wnd.Math.log(b.b) * $wnd.Math.LOG10E) + 1); + i = 0; + for (t = Sub(b, 0); t.b != t.d.c; ) { + r = RD(evb(t), 40); + if (dE(o2) !== dE(mQb(r, (q$c(), a$c)))) { + o2 = WD(mQb(r, a$c)); + i = 0; + } + o2 != null ? h = o2 + wYc(i++, d) : h = wYc(i++, d); + pQb(r, a$c, h); + for (q = (e = Sub(new dXc(r).a.d, 0), new gXc(e)); dvb(q.a); ) { + p = RD(evb(q.a), 65).c; + Pub(n, p, n.c.b, n.c); + pQb(p, a$c, h); + } + } + m = new Tsb(); + for (g = 0; g < h.length - d; g++) { + for (s = Sub(b, 0); s.b != s.d.c; ) { + r = RD(evb(s), 40); + j = zhb(WD(mQb(r, (q$c(), a$c))), 0, g + 1); + c = (j == null ? Wd(qtb(m.f, null)) : Ktb(m.i, j)) != null ? RD(j == null ? Wd(qtb(m.f, null)) : Ktb(m.i, j), 17).a + 1 : 1; + $jb(m, j, sgb(c)); + } + } + for (l = new vkb(new mkb(m).a); l.b; ) { + k = tkb(l); + f = sgb(Wjb(a.a, k.ld()) != null ? RD(Wjb(a.a, k.ld()), 17).a : 0); + $jb(a.a, WD(k.ld()), sgb(RD(k.md(), 17).a + f.a)); + f = RD(Wjb(a.b, k.ld()), 17); + (!f || f.a < RD(k.md(), 17).a) && $jb(a.b, WD(k.ld()), RD(k.md(), 17)); + } + tYc(a, n); + } + } + function Hpc(a) { + var b, c, d, e, f, g, h, i, j, k, l, m; + c = null; + i = null; + e = RD(mQb(a.b, (yCc(), CAc)), 349); + if (e == (TEc(), REc)) { + c = new bnb(); + i = new bnb(); + } + for (h = new Anb(a.d); h.a < h.c.c.length; ) { + g = RD(ynb(h), 105); + f = g.i; + if (!f) { + continue; + } + switch (g.e.g) { + case 0: + b = RD(Nsb(new Osb(g.b)), 64); + e == REc && b == (qpd(), Yod) ? (ZEb(c.c, g), true) : e == REc && b == (qpd(), npd) ? (ZEb(i.c, g), true) : Fpc(g, b); + break; + case 1: + j = g.a.d.j; + k = g.c.d.j; + j == (qpd(), Yod) ? Gpc(g, Yod, (enc(), bnc), g.a) : k == Yod ? Gpc(g, Yod, (enc(), cnc), g.c) : j == npd ? Gpc(g, npd, (enc(), cnc), g.a) : k == npd && Gpc(g, npd, (enc(), bnc), g.c); + break; + case 2: + case 3: + d = g.b; + Csb(d, (qpd(), Yod)) ? Csb(d, npd) ? Csb(d, ppd) ? Csb(d, Xod) || Gpc(g, Yod, (enc(), cnc), g.c) : Gpc(g, Yod, (enc(), bnc), g.a) : Gpc(g, Yod, (enc(), anc), null) : Gpc(g, npd, (enc(), anc), null); + break; + case 4: + l = g.a.d.j; + m = g.a.d.j; + l == (qpd(), Yod) || m == Yod ? Gpc(g, npd, (enc(), anc), null) : Gpc(g, Yod, (enc(), anc), null); + } + } + if (c) { + c.c.length == 0 || Epc(c, (qpd(), Yod)); + i.c.length == 0 || Epc(i, (qpd(), npd)); + } + } + function oGc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r; + c.Ug("Breadth first model order layering", 1); + a.a = b; + q = new bnb(); + for (p = new Anb(a.a.a); p.a < p.c.c.length; ) { + n = RD(ynb(p), 10); + n.k == (r3b(), p3b) && (ZEb(q.c, n), true); + } + yob(); + _mb(q, new tGc()); + i = true; + e = new R4b(a.a); + d = null; + Rmb(a.a.b, e); + for (o2 = new Anb(q); o2.a < o2.c.c.length; ) { + n = RD(ynb(o2), 10); + if (i) { + g3b(n, e); + i = false; + } else { + for (h = new is(Mr(Z2b(n).a.Kc(), new ir())); gs(h); ) { + f = RD(hs(h), 18); + if (f.c.i.k == (r3b(), p3b) && f.c.i.c == e || f.c.i.k == n3b && RD(hs(new is(Mr(Z2b(f.c.i).a.Kc(), new ir()))), 18).c.i.c == e) { + d = new R4b(a.a); + Rmb(a.a.b, d); + e = new R4b(a.a); + Rmb(a.a.b, e); + } + } + for (g = new is(Mr(Z2b(n).a.Kc(), new ir())); gs(g); ) { + f = RD(hs(g), 18); + f.c.i.k == (r3b(), n3b) && !f.c.i.c && g3b(f.c.i, d); + } + g3b(n, e); + } + } + a.a.a.c.length = 0; + r = new bnb(); + for (l = new Anb(a.a.b); l.a < l.c.c.length; ) { + j = RD(ynb(l), 30); + j.a.c.length == 0 && (ZEb(r.c, j), true); + } + Ce(a.a.b, r); + m = 0; + for (k = new Anb(a.a.b); k.a < k.c.c.length; ) { + j = RD(ynb(k), 30); + j.p = m; + ++m; + } + c.Vg(); + } + function K5b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p; + d = RD(mQb(a, (Ywc(), Awc)), 27); + o2 = RD(mQb(a, (yCc(), mAc)), 17).a; + f = RD(mQb(a, VAc), 17).a; + Ixd(d, mAc, sgb(o2)); + Ixd(d, VAc, sgb(f)); + Dyd(d, a.n.a + b.a); + Eyd(d, a.n.b + b.b); + if (RD(Gxd(d, lBc), 181).gc() != 0 || !!a.e || dE(mQb(Y2b(a), kBc)) === dE((JDc(), HDc)) && xDc((wDc(), (!a.q ? (yob(), yob(), wob) : a.q)._b(iBc) ? m = RD(mQb(a, iBc), 203) : m = RD(mQb(Y2b(a), jBc), 203), m))) { + Cyd(d, a.o.a); + Ayd(d, a.o.b); + } + for (l = new Anb(a.j); l.a < l.c.c.length; ) { + j = RD(ynb(l), 12); + p = mQb(j, Awc); + if (ZD(p, 193)) { + e = RD(p, 123); + Byd(e, j.n.a, j.n.b); + Ixd(e, GBc, j.j); + } + } + n = RD(mQb(a, dBc), 181).gc() != 0; + for (i = new Anb(a.b); i.a < i.c.c.length; ) { + g = RD(ynb(i), 72); + if (n || RD(mQb(g, dBc), 181).gc() != 0) { + c = RD(mQb(g, Awc), 135); + zyd(c, g.o.a, g.o.b); + Byd(c, g.n.a, g.n.b); + } + } + if (!Rod(RD(mQb(a, EBc), 21))) { + for (k = new Anb(a.j); k.a < k.c.c.length; ) { + j = RD(ynb(k), 12); + for (h = new Anb(j.f); h.a < h.c.c.length; ) { + g = RD(ynb(h), 72); + c = RD(mQb(g, Awc), 135); + Cyd(c, g.o.a); + Ayd(c, g.o.b); + Byd(c, g.n.a, g.n.b); + } + } + } + } + function X2c(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C; + b.Ug("Calculate Graph Size", 1); + b.dh(a, eFe); + l = Hze; + m = Hze; + j = fFe; + k = fFe; + for (p = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); p.e != p.i.gc(); ) { + n = RD(bMd(p), 27); + s = n.i; + t = n.j; + C = n.g; + h = n.f; + i = RD(Gxd(n, (umd(), eld)), 140); + l = $wnd.Math.min(l, s - i.b); + m = $wnd.Math.min(m, t - i.d); + j = $wnd.Math.max(j, s + C + i.c); + k = $wnd.Math.max(k, t + h + i.a); + } + r = RD(Gxd(a, (umd(), tld)), 107); + q = new rjd(l - r.b, m - r.d); + B = j - l + (r.b + r.c); + g = k - m + (r.d + r.a); + if (Heb(TD(Gxd(a, ($4c(), G4c))))) { + u = RD(Gxd(a, (u2c(), t2c)), 27); + v = RD(Gxd(u, eld), 140); + w = u.i + u.g / 2 + (v.b + v.c) / 2 - q.a; + A = u.j + u.f / 2 + (v.d + v.a) / 2 - q.b; + e = B - w; + f = g - A; + if (e < B / 2) { + c = e - w; + B += c; + q.a -= c; + } else { + c = w - e; + B += c; + } + if (f < g / 2) { + d = f - A; + g += d; + q.b -= d; + } else { + d = A - f; + g += d; + } + } + for (o2 = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); o2.e != o2.i.gc(); ) { + n = RD(bMd(o2), 27); + Dyd(n, n.i - q.a); + Eyd(n, n.j - q.b); + } + if (!Heb(TD(Gxd(a, mld)))) { + Cyd(a, B); + Ayd(a, g); + } + Ixd(a, Ikd, B - (r.b + r.c)); + Ixd(a, Hkd, g - (r.d + r.a)); + b.dh(a, gFe); + } + function IUc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n; + a.e.a.$b(); + a.f.a.$b(); + a.c.c.length = 0; + a.i.c.length = 0; + a.g.a.$b(); + if (b) { + for (g = new Anb(b.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 10); + for (l = e3b(f, (qpd(), Xod)).Kc(); l.Ob(); ) { + k = RD(l.Pb(), 12); + Ysb(a.e, k); + for (e = new Anb(k.g); e.a < e.c.c.length; ) { + d = RD(ynb(e), 18); + if (W0b(d)) { + continue; + } + Rmb(a.c, d); + OUc(a, d); + h = d.c.i.k; + (h == (r3b(), p3b) || h == q3b || h == m3b || h == l3b) && Rmb(a.j, d); + n = d.d; + m = n.i.c; + m == c ? Ysb(a.f, n) : m == b ? Ysb(a.e, n) : Ymb(a.c, d); + } + } + } + } + if (c) { + for (g = new Anb(c.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 10); + for (j = new Anb(f.j); j.a < j.c.c.length; ) { + i = RD(ynb(j), 12); + for (e = new Anb(i.g); e.a < e.c.c.length; ) { + d = RD(ynb(e), 18); + W0b(d) && Ysb(a.g, d); + } + } + for (l = e3b(f, (qpd(), ppd)).Kc(); l.Ob(); ) { + k = RD(l.Pb(), 12); + Ysb(a.f, k); + for (e = new Anb(k.g); e.a < e.c.c.length; ) { + d = RD(ynb(e), 18); + if (W0b(d)) { + continue; + } + Rmb(a.c, d); + OUc(a, d); + h = d.c.i.k; + (h == (r3b(), p3b) || h == q3b || h == m3b || h == l3b) && Rmb(a.j, d); + n = d.d; + m = n.i.c; + m == c ? Ysb(a.f, n) : m == b ? Ysb(a.e, n) : Ymb(a.c, d); + } + } + } + } + } + function iSc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + c.Ug("Polyline edge routing", 1); + q = Kfb(UD(mQb(b, (yCc(), AAc)))); + n = Kfb(UD(mQb(b, cCc))); + e = Kfb(UD(mQb(b, UBc))); + d = $wnd.Math.min(1, e / n); + t = 0; + i = 0; + if (b.b.c.length != 0) { + u = fSc(RD(Vmb(b.b, 0), 30)); + t = 0.4 * d * u; + } + h = new Jkb(b.b, 0); + while (h.b < h.d.gc()) { + g = (sFb(h.b < h.d.gc()), RD(h.d.Xb(h.c = h.b++), 30)); + f = ar(g, bSc); + f && t > 0 && (t -= n); + p2b(g, t); + k = 0; + for (m = new Anb(g.a); m.a < m.c.c.length; ) { + l = RD(ynb(m), 10); + j = 0; + for (p = new is(Mr(a3b(l).a.Kc(), new ir())); gs(p); ) { + o2 = RD(hs(p), 18); + r = K3b(o2.c).b; + s = K3b(o2.d).b; + if (g == o2.d.i.c && !W0b(o2)) { + jSc(o2, t, 0.4 * d * $wnd.Math.abs(r - s)); + if (o2.c.j == (qpd(), ppd)) { + r = 0; + s = 0; + } + } + j = $wnd.Math.max(j, $wnd.Math.abs(s - r)); + } + switch (l.k.g) { + case 0: + case 4: + case 1: + case 3: + case 5: + kSc(a, l, t, q); + } + k = $wnd.Math.max(k, j); + } + if (h.b < h.d.gc()) { + u = fSc((sFb(h.b < h.d.gc()), RD(h.d.Xb(h.c = h.b++), 30))); + k = $wnd.Math.max(k, u); + sFb(h.b > 0); + h.a.Xb(h.c = --h.b); + } + i = 0.4 * d * k; + !f && h.b < h.d.gc() && (i += n); + t += g.c.a + i; + } + a.a.a.$b(); + b.f.a = t; + c.Vg(); + } + function GGd(a) { + var b, c, d, e, f; + Ivb(a, IIe); + switch ((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b).i + (!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c).i) { + case 0: + throw Adb(new agb("The edge must have at least one source or target.")); + case 1: + return (!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b).i == 0 ? vCd(AGd(RD(QHd((!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c), 0), 84))) : vCd(AGd(RD(QHd((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b), 0), 84))); + } + if ((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b).i == 1 && (!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c).i == 1) { + e = AGd(RD(QHd((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b), 0), 84)); + f = AGd(RD(QHd((!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c), 0), 84)); + if (vCd(e) == vCd(f)) { + return vCd(e); + } else if (e == vCd(f)) { + return e; + } else if (f == vCd(e)) { + return f; + } + } + d = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [(!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b), (!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c)]))); + b = AGd(RD(hs(d), 84)); + while (gs(d)) { + c = AGd(RD(hs(d), 84)); + if (c != b && !NGd(c, b)) { + if (vCd(c) == vCd(b)) { + b = vCd(c); + } else { + b = HGd(b, c); + if (!b) { + return null; + } + } + } + } + return b; + } + function _zd(b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + n = c.length; + if (n > 0) { + j = (BFb(0, c.length), c.charCodeAt(0)); + if (j != 64) { + if (j == 37) { + m = c.lastIndexOf("%"); + k = false; + if (m != 0 && (m == n - 1 || (k = (BFb(m + 1, c.length), c.charCodeAt(m + 1) == 46)))) { + h = (AFb(1, m, c.length), c.substr(1, m - 1)); + u = lhb("%", h) ? null : oSd(h); + e = 0; + if (k) { + try { + e = Oeb((BFb(m + 2, c.length + 1), c.substr(m + 2)), qwe, lve); + } catch (a) { + a = zdb(a); + if (ZD(a, 130)) { + i = a; + throw Adb(new RSd(i)); + } else + throw Adb(a); + } + } + for (r = P2d(b.Gh()); r.Ob(); ) { + p = k3d(r); + if (ZD(p, 519)) { + f = RD(p, 598); + t = f.d; + if ((u == null ? t == null : lhb(u, t)) && e-- == 0) { + return f; + } + } + } + return null; + } + } + l = c.lastIndexOf("."); + o2 = l == -1 ? c : (AFb(0, l, c.length), c.substr(0, l)); + d = 0; + if (l != -1) { + try { + d = Oeb((BFb(l + 1, c.length + 1), c.substr(l + 1)), qwe, lve); + } catch (a) { + a = zdb(a); + if (ZD(a, 130)) { + o2 = c; + } else + throw Adb(a); + } + } + o2 = lhb("%", o2) ? null : oSd(o2); + for (q = P2d(b.Gh()); q.Ob(); ) { + p = k3d(q); + if (ZD(p, 197)) { + g = RD(p, 197); + s = g.xe(); + if ((o2 == null ? s == null : lhb(o2, s)) && d-- == 0) { + return g; + } + } + } + return null; + } + } + return Pvd(b, c); + } + function Hlc(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s; + k = new Tsb(); + i = new Tp(); + for (d = new Anb(a.a.a.b); d.a < d.c.c.length; ) { + b = RD(ynb(d), 60); + j = Zjc(b); + if (j) { + rtb(k.f, j, b); + } else { + s = $jc(b); + if (s) { + for (f = new Anb(s.k); f.a < f.c.c.length; ) { + e = RD(ynb(f), 18); + Rc(i, e, b); + } + } + } + } + for (c = new Anb(a.a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 60); + j = Zjc(b); + if (j) { + for (h = new is(Mr(a3b(j).a.Kc(), new ir())); gs(h); ) { + g = RD(hs(h), 18); + if (W0b(g)) { + continue; + } + o2 = g.c; + r = g.d; + if ((qpd(), hpd).Hc(g.c.j) && hpd.Hc(g.d.j)) { + continue; + } + p = RD(Wjb(k, g.d.i), 60); + rIb(uIb(tIb(vIb(sIb(new wIb(), 0), 100), a.c[b.a.d]), a.c[p.a.d])); + if (o2.j == ppd && q4b((J3b(), o2))) { + for (m = RD(Qc(i, g), 21).Kc(); m.Ob(); ) { + l = RD(m.Pb(), 60); + if (l.d.c < b.d.c) { + n = a.c[l.a.d]; + q = a.c[b.a.d]; + if (n == q) { + continue; + } + rIb(uIb(tIb(vIb(sIb(new wIb(), 1), 100), n), q)); + } + } + } + if (r.j == Xod && v4b((J3b(), r))) { + for (m = RD(Qc(i, g), 21).Kc(); m.Ob(); ) { + l = RD(m.Pb(), 60); + if (l.d.c > b.d.c) { + n = a.c[b.a.d]; + q = a.c[l.a.d]; + if (n == q) { + continue; + } + rIb(uIb(tIb(vIb(sIb(new wIb(), 1), 100), n), q)); + } + } + } + } + } + } + } + function mNb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w; + m = RD(RD(Qc(a.r, b), 21), 87); + if (b == (qpd(), Xod) || b == ppd) { + qNb(a, b); + return; + } + f = b == Yod ? (mOb(), iOb) : (mOb(), lOb); + u = b == Yod ? (vLb(), uLb) : (vLb(), sLb); + c = RD(Vrb(a.b, b), 127); + d = c.i; + e = d.c + Hid(cD(WC(iE, 1), vxe, 28, 15, [c.n.b, a.C.b, a.k])); + r = d.c + d.b - Hid(cD(WC(iE, 1), vxe, 28, 15, [c.n.c, a.C.c, a.k])); + g = WNb(_Nb(f), a.t); + s = b == Yod ? pxe : oxe; + for (l = m.Kc(); l.Ob(); ) { + j = RD(l.Pb(), 117); + if (!j.c || j.c.d.c.length <= 0) { + continue; + } + q = j.b.Mf(); + p = j.e; + n = j.c; + o2 = n.i; + o2.b = (i = n.n, n.e.a + i.b + i.c); + o2.a = (h = n.n, n.e.b + h.d + h.a); + Ivb(u, Pye); + n.f = u; + RKb(n, (EKb(), DKb)); + o2.c = p.a - (o2.b - q.a) / 2; + v = $wnd.Math.min(e, p.a); + w = $wnd.Math.max(r, p.a + q.a); + o2.c < v ? o2.c = v : o2.c + o2.b > w && (o2.c = w - o2.b); + Rmb(g.d, new sOb(o2, UNb(g, o2))); + s = b == Yod ? $wnd.Math.max(s, p.b + j.b.Mf().b) : $wnd.Math.min(s, p.b); + } + s += b == Yod ? a.t : -a.t; + t = VNb((g.e = s, g)); + t > 0 && (RD(Vrb(a.b, b), 127).a.b = t); + for (k = m.Kc(); k.Ob(); ) { + j = RD(k.Pb(), 117); + if (!j.c || j.c.d.c.length <= 0) { + continue; + } + o2 = j.c.i; + o2.c -= j.e.a; + o2.d -= j.e.b; + } + } + function JSb(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n; + b = new Tsb(); + for (i = new dMd(a); i.e != i.i.gc(); ) { + h = RD(bMd(i), 27); + c = new _sb(); + Zjb(FSb, h, c); + n = new TSb(); + e = RD(zDb(new SDb(null, new Twb(new is(Mr(yGd(h).a.Kc(), new ir())))), OBb(n, tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)])))), 85); + ISb(c, RD(e.xc((Geb(), true)), 16), new VSb()); + d = RD(zDb(CDb(RD(e.xc(false), 15).Lc(), new XSb()), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [vBb]))), 15); + for (g = d.Kc(); g.Ob(); ) { + f = RD(g.Pb(), 74); + m = KGd(f); + if (m) { + j = RD(Wd(qtb(b.f, m)), 21); + if (!j) { + j = LSb(m); + rtb(b.f, m, j); + } + ye(c, j); + } + } + e = RD(zDb(new SDb(null, new Twb(new is(Mr(zGd(h).a.Kc(), new ir())))), OBb(n, tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [vBb])))), 85); + ISb(c, RD(e.xc(true), 16), new ZSb()); + d = RD(zDb(CDb(RD(e.xc(false), 15).Lc(), new _Sb()), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [vBb]))), 15); + for (l = d.Kc(); l.Ob(); ) { + k = RD(l.Pb(), 74); + m = MGd(k); + if (m) { + j = RD(Wd(qtb(b.f, m)), 21); + if (!j) { + j = LSb(m); + rtb(b.f, m, j); + } + ye(c, j); + } + } + } + } + function zjb(a, b) { + xjb(); + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p; + i = Ddb(a, 0) < 0; + i && (a = Odb(a)); + if (Ddb(a, 0) == 0) { + switch (b) { + case 0: + return "0"; + case 1: + return zxe; + case 2: + return "0.00"; + case 3: + return "0.000"; + case 4: + return "0.0000"; + case 5: + return "0.00000"; + case 6: + return "0.000000"; + default: + n = new bib(); + b < 0 ? (n.a += "0E+", n) : (n.a += "0E", n); + n.a += b == qwe ? "2147483648" : "" + -b; + return n.a; + } + } + k = 18; + l = $C(hE, zwe, 28, k + 1, 15, 1); + c = k; + p = a; + do { + j = p; + p = Fdb(p, 10); + l[--c] = Ydb(Bdb(48, Vdb(j, Ndb(p, 10)))) & Bwe; + } while (Ddb(p, 0) != 0); + e = Vdb(Vdb(Vdb(k, c), b), 1); + if (b == 0) { + i && (l[--c] = 45); + return Ihb(l, c, k - c); + } + if (b > 0 && Ddb(e, -6) >= 0) { + if (Ddb(e, 0) >= 0) { + f = c + Ydb(e); + for (h = k - 1; h >= f; h--) { + l[h + 1] = l[h]; + } + l[++f] = 46; + i && (l[--c] = 45); + return Ihb(l, c, k - c + 1); + } + for (g = 2; Ldb(g, Bdb(Odb(e), 1)); g++) { + l[--c] = 48; + } + l[--c] = 46; + l[--c] = 48; + i && (l[--c] = 45); + return Ihb(l, c, k - c); + } + o2 = c + 1; + d = k; + m = new cib(); + i && (m.a += "-", m); + if (d - o2 >= 1) { + Thb(m, l[c]); + m.a += "."; + m.a += Ihb(l, c + 1, k - c - 1); + } else { + m.a += Ihb(l, c, k - c); + } + m.a += "E"; + Ddb(e, 0) > 0 && (m.a += "+", m); + m.a += "" + Zdb(e); + return m.a; + } + function Esd(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w; + q = new rjd(a.g, a.f); + p = vsd(a); + p.a = $wnd.Math.max(p.a, b); + p.b = $wnd.Math.max(p.b, c); + w = p.a / q.a; + k = p.b / q.b; + u = p.a - q.a; + i = p.b - q.b; + if (d) { + g = !vCd(a) ? RD(Gxd(a, (umd(), Nkd)), 88) : RD(Gxd(vCd(a), (umd(), Nkd)), 88); + h = dE(Gxd(a, (umd(), Hld))) === dE((Bod(), wod)); + for (s = new dMd((!a.c && (a.c = new C5d(K4, a, 9, 9)), a.c)); s.e != s.i.gc(); ) { + r = RD(bMd(s), 123); + t = RD(Gxd(r, Old), 64); + if (t == (qpd(), opd)) { + t = osd(r, g); + Ixd(r, Old, t); + } + switch (t.g) { + case 1: + h || Dyd(r, r.i * w); + break; + case 2: + Dyd(r, r.i + u); + h || Eyd(r, r.j * k); + break; + case 3: + h || Dyd(r, r.i * w); + Eyd(r, r.j + i); + break; + case 4: + h || Eyd(r, r.j * k); + } + } + } + zyd(a, p.a, p.b); + if (e) { + for (m = new dMd((!a.n && (a.n = new C5d(I4, a, 1, 7)), a.n)); m.e != m.i.gc(); ) { + l = RD(bMd(m), 135); + n = l.i + l.g / 2; + o2 = l.j + l.f / 2; + v = n / q.a; + j = o2 / q.b; + if (v + j >= 1) { + if (v - j > 0 && o2 >= 0) { + Dyd(l, l.i + u); + Eyd(l, l.j + i * j); + } else if (v - j < 0 && n >= 0) { + Dyd(l, l.i + u * v); + Eyd(l, l.j + i); + } + } + } + } + Ixd(a, (umd(), kld), (Qpd(), f = RD(mfb(H3), 9), new Fsb(f, RD(WEb(f, f.length), 9), 0))); + return new rjd(w, k); + } + function _4c(a) { + Cgd(a, new Pfd(Wfd($fd(Xfd(Zfd(Yfd(new agd(), CFe), "ELK Radial"), 'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'), new c5c()), CFe))); + Agd(a, CFe, fEe, iGd(R4c)); + Agd(a, CFe, _ze, iGd(Y4c)); + Agd(a, CFe, jAe, iGd(K4c)); + Agd(a, CFe, CAe, iGd(L4c)); + Agd(a, CFe, iAe, iGd(M4c)); + Agd(a, CFe, kAe, iGd(J4c)); + Agd(a, CFe, gAe, iGd(N4c)); + Agd(a, CFe, lAe, iGd(Q4c)); + Agd(a, CFe, tFe, iGd(H4c)); + Agd(a, CFe, sFe, iGd(I4c)); + Agd(a, CFe, rFe, iGd(T4c)); + Agd(a, CFe, xFe, iGd(W4c)); + Agd(a, CFe, yFe, iGd(U4c)); + Agd(a, CFe, zFe, iGd(V4c)); + Agd(a, CFe, wFe, iGd(O4c)); + Agd(a, CFe, pFe, iGd(P4c)); + Agd(a, CFe, qFe, iGd(S4c)); + Agd(a, CFe, uFe, iGd(X4c)); + Agd(a, CFe, vFe, iGd(Z4c)); + Agd(a, CFe, oFe, iGd(G4c)); + } + function Peb(a) { + var b, c, d, e, f, g, h, i, j, k, l; + if (a == null) { + throw Adb(new Vgb(vve)); + } + j = a; + f = a.length; + i = false; + if (f > 0) { + b = (BFb(0, a.length), a.charCodeAt(0)); + if (b == 45 || b == 43) { + a = (BFb(1, a.length + 1), a.substr(1)); + --f; + i = b == 45; + } + } + if (f == 0) { + throw Adb(new Vgb(nxe + j + '"')); + } + while (a.length > 0 && (BFb(0, a.length), a.charCodeAt(0) == 48)) { + a = (BFb(1, a.length + 1), a.substr(1)); + --f; + } + if (f > (Ugb(), Sgb)[10]) { + throw Adb(new Vgb(nxe + j + '"')); + } + for (e = 0; e < f; e++) { + if (dfb((BFb(e, a.length), a.charCodeAt(e))) == -1) { + throw Adb(new Vgb(nxe + j + '"')); + } + } + l = 0; + g = Qgb[10]; + k = Rgb[10]; + h = Odb(Tgb[10]); + c = true; + d = f % g; + if (d > 0) { + l = -parseInt((AFb(0, d, a.length), a.substr(0, d)), 10); + a = (BFb(d, a.length + 1), a.substr(d)); + f -= d; + c = false; + } + while (f >= g) { + d = parseInt((AFb(0, g, a.length), a.substr(0, g)), 10); + a = (BFb(g, a.length + 1), a.substr(g)); + f -= g; + if (c) { + c = false; + } else { + if (Ddb(l, h) < 0) { + throw Adb(new Vgb(nxe + j + '"')); + } + l = Ndb(l, k); + } + l = Vdb(l, d); + } + if (Ddb(l, 0) > 0) { + throw Adb(new Vgb(nxe + j + '"')); + } + if (!i) { + l = Odb(l); + if (Ddb(l, 0) < 0) { + throw Adb(new Vgb(nxe + j + '"')); + } + } + return l; + } + function oSd(a) { + gSd(); + var b, c, d, e, f, g, h, i; + if (a == null) + return null; + e = qhb(a, Fhb(37)); + if (e < 0) { + return a; + } else { + i = new dib((AFb(0, e, a.length), a.substr(0, e))); + b = $C(gE, YHe, 28, 4, 15, 1); + h = 0; + d = 0; + for (g = a.length; e < g; e++) { + BFb(e, a.length); + if (a.charCodeAt(e) == 37 && a.length > e + 2 && zSd((BFb(e + 1, a.length), a.charCodeAt(e + 1)), XRd, YRd) && zSd((BFb(e + 2, a.length), a.charCodeAt(e + 2)), XRd, YRd)) { + c = DSd((BFb(e + 1, a.length), a.charCodeAt(e + 1)), (BFb(e + 2, a.length), a.charCodeAt(e + 2))); + e += 2; + if (d > 0) { + (c & 192) == 128 ? b[h++] = c << 24 >> 24 : d = 0; + } else if (c >= 128) { + if ((c & 224) == 192) { + b[h++] = c << 24 >> 24; + d = 2; + } else if ((c & 240) == 224) { + b[h++] = c << 24 >> 24; + d = 3; + } else if ((c & 248) == 240) { + b[h++] = c << 24 >> 24; + d = 4; + } + } + if (d > 0) { + if (h == d) { + switch (h) { + case 2: { + Thb(i, ((b[0] & 31) << 6 | b[1] & 63) & Bwe); + break; + } + case 3: { + Thb(i, ((b[0] & 15) << 12 | (b[1] & 63) << 6 | b[2] & 63) & Bwe); + break; + } + } + h = 0; + d = 0; + } + } else { + for (f = 0; f < h; ++f) { + Thb(i, b[f] & Bwe); + } + h = 0; + i.a += String.fromCharCode(c); + } + } else { + for (f = 0; f < h; ++f) { + Thb(i, b[f] & Bwe); + } + h = 0; + Thb(i, (BFb(e, a.length), a.charCodeAt(e))); + } + } + return i.a; + } + } + function atd(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2; + n = vCd(AGd(RD(QHd((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b), 0), 84))); + o2 = vCd(AGd(RD(QHd((!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c), 0), 84))); + l = n == o2; + h = new pjd(); + b = RD(Gxd(a, (vnd(), ond)), 75); + if (!!b && b.b >= 2) { + if ((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a).i == 0) { + c = (bvd(), e = new Rzd(), e); + WGd((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a), c); + } else if ((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a).i > 1) { + m = new mMd((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a)); + while (m.e != m.i.gc()) { + cMd(m); + } + } + lsd(b, RD(QHd((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a), 0), 166)); + } + if (l) { + for (d = new dMd((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a)); d.e != d.i.gc(); ) { + c = RD(bMd(d), 166); + for (j = new dMd((!c.a && (c.a = new XZd(D4, c, 5)), c.a)); j.e != j.i.gc(); ) { + i = RD(bMd(j), 377); + h.a = $wnd.Math.max(h.a, i.a); + h.b = $wnd.Math.max(h.b, i.b); + } + } + } + for (g = new dMd((!a.n && (a.n = new C5d(I4, a, 1, 7)), a.n)); g.e != g.i.gc(); ) { + f = RD(bMd(g), 135); + k = RD(Gxd(f, und), 8); + !!k && Byd(f, k.a, k.b); + if (l) { + h.a = $wnd.Math.max(h.a, f.i + f.g); + h.b = $wnd.Math.max(h.b, f.j + f.f); + } + } + return h; + } + function MA(a, b, c, d, e) { + var f, g, h; + KA(a, b); + g = b[0]; + f = ihb(c.c, 0); + h = -1; + if (DA(c)) { + if (d > 0) { + if (g + d > a.length) { + return false; + } + h = HA((AFb(0, g + d, a.length), a.substr(0, g + d)), b); + } else { + h = HA(a, b); + } + } + switch (f) { + case 71: + h = EA(a, g, cD(WC(qJ, 1), Nve, 2, 6, [Qwe, Rwe]), b); + e.e = h; + return true; + case 77: + return PA(a, b, e, h, g); + case 76: + return RA(a, b, e, h, g); + case 69: + return NA(a, b, g, e); + case 99: + return QA(a, b, g, e); + case 97: + h = EA(a, g, cD(WC(qJ, 1), Nve, 2, 6, ["AM", "PM"]), b); + e.b = h; + return true; + case 121: + return TA(a, b, g, h, c, e); + case 100: + if (h <= 0) { + return false; + } + e.c = h; + return true; + case 83: + if (h < 0) { + return false; + } + return OA(h, g, b[0], e); + case 104: + h == 12 && (h = 0); + case 75: + case 72: + if (h < 0) { + return false; + } + e.f = h; + e.g = false; + return true; + case 107: + if (h < 0) { + return false; + } + e.f = h; + e.g = true; + return true; + case 109: + if (h < 0) { + return false; + } + e.j = h; + return true; + case 115: + if (h < 0) { + return false; + } + e.n = h; + return true; + case 90: + if (g < a.length && (BFb(g, a.length), a.charCodeAt(g) == 90)) { + ++b[0]; + e.o = 0; + return true; + } + case 122: + case 118: + return SA(a, g, b, e); + default: + return false; + } + } + function YQc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B; + t = b.c.length; + e = new sQc(a.a, c, null, null); + B = $C(iE, vxe, 28, t, 15, 1); + p = $C(iE, vxe, 28, t, 15, 1); + o2 = $C(iE, vxe, 28, t, 15, 1); + q = 0; + for (h = 0; h < t; h++) { + p[h] = lve; + o2[h] = qwe; + } + for (i = 0; i < t; i++) { + d = (tFb(i, b.c.length), RD(b.c[i], 185)); + B[i] = qQc(d); + B[q] > B[i] && (q = i); + for (l = new Anb(a.a.b); l.a < l.c.c.length; ) { + k = RD(ynb(l), 30); + for (s = new Anb(k.a); s.a < s.c.c.length; ) { + r = RD(ynb(s), 10); + w = Kfb(d.p[r.p]) + Kfb(d.d[r.p]); + p[i] = $wnd.Math.min(p[i], w); + o2[i] = $wnd.Math.max(o2[i], w + r.o.b); + } + } + } + A = $C(iE, vxe, 28, t, 15, 1); + for (j = 0; j < t; j++) { + (tFb(j, b.c.length), RD(b.c[j], 185)).o == (EQc(), CQc) ? A[j] = p[q] - p[j] : A[j] = o2[q] - o2[j]; + } + f = $C(iE, vxe, 28, t, 15, 1); + for (n = new Anb(a.a.b); n.a < n.c.c.length; ) { + m = RD(ynb(n), 30); + for (v = new Anb(m.a); v.a < v.c.c.length; ) { + u = RD(ynb(v), 10); + for (g = 0; g < t; g++) { + f[g] = Kfb((tFb(g, b.c.length), RD(b.c[g], 185)).p[u.p]) + Kfb((tFb(g, b.c.length), RD(b.c[g], 185)).d[u.p]) + A[g]; + } + bFb(f, heb(iob.prototype.Me, iob, [])); + e.p[u.p] = (f[1] + f[2]) / 2; + e.d[u.p] = 0; + } + } + return e; + } + function X6b(a, b, c) { + var d, e, f, g, h; + d = b.i; + f = a.i.o; + e = a.i.d; + h = a.n; + g = xjd(cD(WC(l3, 1), Nve, 8, 0, [h, a.a])); + switch (a.j.g) { + case 1: + SKb(b, (vLb(), sLb)); + d.d = -e.d - c - d.a; + if (RD(RD(Vmb(b.d, 0), 187).of((Ywc(), swc)), 291) == (Pnd(), Lnd)) { + RKb(b, (EKb(), DKb)); + d.c = g.a - Kfb(UD(mQb(a, ywc))) - c - d.b; + } else { + RKb(b, (EKb(), CKb)); + d.c = g.a + Kfb(UD(mQb(a, ywc))) + c; + } + break; + case 2: + RKb(b, (EKb(), CKb)); + d.c = f.a + e.c + c; + if (RD(RD(Vmb(b.d, 0), 187).of((Ywc(), swc)), 291) == (Pnd(), Lnd)) { + SKb(b, (vLb(), sLb)); + d.d = g.b - Kfb(UD(mQb(a, ywc))) - c - d.a; + } else { + SKb(b, (vLb(), uLb)); + d.d = g.b + Kfb(UD(mQb(a, ywc))) + c; + } + break; + case 3: + SKb(b, (vLb(), uLb)); + d.d = f.b + e.a + c; + if (RD(RD(Vmb(b.d, 0), 187).of((Ywc(), swc)), 291) == (Pnd(), Lnd)) { + RKb(b, (EKb(), DKb)); + d.c = g.a - Kfb(UD(mQb(a, ywc))) - c - d.b; + } else { + RKb(b, (EKb(), CKb)); + d.c = g.a + Kfb(UD(mQb(a, ywc))) + c; + } + break; + case 4: + RKb(b, (EKb(), DKb)); + d.c = -e.b - c - d.b; + if (RD(RD(Vmb(b.d, 0), 187).of((Ywc(), swc)), 291) == (Pnd(), Lnd)) { + SKb(b, (vLb(), sLb)); + d.d = g.b - Kfb(UD(mQb(a, ywc))) - c - d.a; + } else { + SKb(b, (vLb(), uLb)); + d.d = g.b + Kfb(UD(mQb(a, ywc))) + c; + } + } + } + function Q8c(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p; + c.Ug(AFe, 1); + !b.a && (b.a = new C5d(J4, b, 10, 11)); + d = Kfb(UD(Gxd(b, (X7c(), x7c)))); + k = Kfb(UD(Gxd(b, Q7c))); + m = RD(Gxd(b, N7c), 107); + n = new m9c(d, k); + f = l9c(n, b, m); + P8c(b, n); + h = RD(Gxd(b, K7c), 17).a; + while (h > 1) { + e = N8c(b); + l = f.g; + o2 = RD(Gxd(b, N7c), 107); + p = Kfb(UD(Gxd(b, x7c))); + (!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a).i > 1 && Kfb(UD(Gxd(b, (X6c(), T6c)))) != oxe && (f.c + (o2.b + o2.c)) / (f.b + (o2.d + o2.a)) < p ? Ixd(e, (X6c(), W6c), Kfb(UD(Gxd(b, W6c))) + Kfb(UD(Gxd(b, T6c)))) : (!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a).i > 1 && Kfb(UD(Gxd(b, (X6c(), S6c)))) != oxe && (f.c + (o2.b + o2.c)) / (f.b + (o2.d + o2.a)) > p && Ixd(e, (X6c(), W6c), $wnd.Math.max(Kfb(UD(Gxd(b, U6c))), Kfb(UD(Gxd(e, W6c))) - Kfb(UD(Gxd(b, S6c))))); + n = new m9c(d, k); + i = l9c(n, e, m); + j = i.g; + if (j >= l && j == j) { + for (g = 0; g < (!e.a && (e.a = new C5d(J4, e, 10, 11)), e.a).i; g++) { + O8c(a, RD(QHd((!e.a && (e.a = new C5d(J4, e, 10, 11)), e.a), g), 27), RD(QHd((!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a), g), 27)); + } + P8c(b, n); + jad(f, i.c); + iad(f, i.b); + } + --h; + } + Ixd(b, (X6c(), N6c), f.b); + Ixd(b, O6c, f.c); + c.Vg(); + } + function fHc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s; + b.Ug("Interactive node layering", 1); + c = new bnb(); + for (m = new Anb(a.a); m.a < m.c.c.length; ) { + k = RD(ynb(m), 10); + i = k.n.a; + h = i + k.o.a; + h = $wnd.Math.max(i + 1, h); + s = new Jkb(c, 0); + d = null; + while (s.b < s.d.gc()) { + q = (sFb(s.b < s.d.gc()), RD(s.d.Xb(s.c = s.b++), 578)); + if (q.c >= h) { + sFb(s.b > 0); + s.a.Xb(s.c = --s.b); + break; + } else if (q.a > i) { + if (!d) { + Rmb(q.b, k); + q.c = $wnd.Math.min(q.c, i); + q.a = $wnd.Math.max(q.a, h); + d = q; + } else { + Tmb(d.b, q.b); + d.a = $wnd.Math.max(d.a, q.a); + Ckb(s); + } + } + } + if (!d) { + d = new jHc(); + d.c = i; + d.a = h; + Ikb(s, d); + Rmb(d.b, k); + } + } + g = a.b; + j = 0; + for (r = new Anb(c); r.a < r.c.c.length; ) { + q = RD(ynb(r), 578); + e = new R4b(a); + e.p = j++; + ZEb(g.c, e); + for (n = new Anb(q.b); n.a < n.c.c.length; ) { + k = RD(ynb(n), 10); + g3b(k, e); + k.p = 0; + } + } + for (l = new Anb(a.a); l.a < l.c.c.length; ) { + k = RD(ynb(l), 10); + if (k.p == 0) { + p = eHc(k, a); + while (p.a.gc() != 0) { + o2 = RD(p.a.ec().Kc().Pb(), 10); + p.a.Bc(o2) != null; + ye(p, eHc(o2, a)); + } + } + } + f = new Jkb(g, 0); + while (f.b < f.d.gc()) { + (sFb(f.b < f.d.gc()), RD(f.d.Xb(f.c = f.b++), 30)).a.c.length == 0 && Ckb(f); + } + a.a.c.length = 0; + b.Vg(); + } + function grd(a, b, c, d, e, f, g) { + var h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I; + n = 0; + D = 0; + for (i = new Anb(a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 27); + Dsd(h); + n = $wnd.Math.max(n, h.g); + D += h.g * h.f; + } + o2 = D / a.c.length; + C = ard(a, o2); + D += a.c.length * C; + n = $wnd.Math.max(n, $wnd.Math.sqrt(D * g)) + c.b; + H = c.b; + I = c.d; + m = 0; + k = c.b + c.c; + B = new Yub(); + Mub(B, sgb(0)); + w = new Yub(); + j = new Jkb(a, 0); + while (j.b < j.d.gc()) { + h = (sFb(j.b < j.d.gc()), RD(j.d.Xb(j.c = j.b++), 27)); + G = h.g; + l = h.f; + if (H + G > n) { + if (f) { + Oub(w, m); + Oub(B, sgb(j.b - 1)); + } + H = c.b; + I += m + b; + m = 0; + k = $wnd.Math.max(k, c.b + c.c + G); + } + Dyd(h, H); + Eyd(h, I); + k = $wnd.Math.max(k, H + G + c.c); + m = $wnd.Math.max(m, l); + H += G + b; + } + k = $wnd.Math.max(k, d); + F = I + m + c.a; + if (F < e) { + m += e - F; + F = e; + } + if (f) { + H = c.b; + j = new Jkb(a, 0); + Oub(B, sgb(a.c.length)); + A = Sub(B, 0); + r = RD(evb(A), 17).a; + Oub(w, m); + v = Sub(w, 0); + u = 0; + while (j.b < j.d.gc()) { + if (j.b == r) { + H = c.b; + u = Kfb(UD(evb(v))); + r = RD(evb(A), 17).a; + } + h = (sFb(j.b < j.d.gc()), RD(j.d.Xb(j.c = j.b++), 27)); + s = h.f; + Ayd(h, u); + p = u; + if (j.b == r) { + q = k - H - c.c; + t = h.g; + Cyd(h, q); + Jsd(h, new rjd(q, p), new rjd(t, s)); + } + H += h.g + b; + } + } + return new rjd(k, F); + } + function h0b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C; + b.Ug("Compound graph postprocessor", 1); + c = Heb(TD(mQb(a, (yCc(), mCc)))); + h = RD(mQb(a, (Ywc(), _vc)), 229); + k = new _sb(); + for (r = h.ec().Kc(); r.Ob(); ) { + q = RD(r.Pb(), 18); + g = new dnb(h.cc(q)); + yob(); + _mb(g, new M0b(a)); + v = H0b((tFb(0, g.c.length), RD(g.c[0], 249))); + A = I0b(RD(Vmb(g, g.c.length - 1), 249)); + t = v.i; + n2b(A.i, t) ? s = t.e : s = Y2b(t); + l = i0b(q, g); + Xub(q.a); + m = null; + for (f = new Anb(g); f.a < f.c.c.length; ) { + e = RD(ynb(f), 249); + p = new pjd(); + e2b(p, e.a, s); + n = e.b; + d = new Ejd(); + Ajd(d, 0, n.a); + Cjd(d, p); + u = new sjd(K3b(n.c)); + w = new sjd(K3b(n.d)); + $id(u, p); + $id(w, p); + if (m) { + d.b == 0 ? o2 = w : o2 = (sFb(d.b != 0), RD(d.a.a.c, 8)); + B = $wnd.Math.abs(m.a - o2.a) > Vze; + C = $wnd.Math.abs(m.b - o2.b) > Vze; + (!c && B && C || c && (B || C)) && Mub(q.a, u); + } + ye(q.a, d); + d.b == 0 ? m = u : m = (sFb(d.b != 0), RD(d.c.b.c, 8)); + j0b(n, l, p); + if (I0b(e) == A) { + if (Y2b(A.i) != e.a) { + p = new pjd(); + e2b(p, Y2b(A.i), s); + } + pQb(q, Wwc, p); + } + k0b(n, q, s); + k.a.zc(n, k); + } + Y0b(q, v); + Z0b(q, A); + } + for (j = k.a.ec().Kc(); j.Ob(); ) { + i = RD(j.Pb(), 18); + Y0b(i, null); + Z0b(i, null); + } + b.Vg(); + } + function lXc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m; + e = RD(mQb(a, (h_c(), H$c)), 88); + k = e == (Cmd(), ymd) || e == zmd ? xmd : zmd; + c = RD(zDb(CDb(new SDb(null, new Swb(a.b, 16)), new $Xc()), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + i = RD(zDb(GDb(c.Oc(), new aYc(b)), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [vBb]))), 15); + i.Gc(RD(zDb(GDb(c.Oc(), new cYc(b)), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [vBb]))), 16)); + i.jd(new eYc(k)); + m = new yAb(new iYc(e)); + d = new Tsb(); + for (h = i.Kc(); h.Ob(); ) { + g = RD(h.Pb(), 240); + j = RD(g.a, 40); + if (Heb(TD(g.c))) { + m.a.zc(j, (Geb(), Eeb)) == null; + new zAb(m.a.Zc(j, false)).a.gc() > 0 && Zjb(d, j, RD(new zAb(m.a.Zc(j, false)).a.Vc(), 40)); + new zAb(m.a.ad(j, true)).a.gc() > 1 && Zjb(d, nXc(m, j), j); + } else { + if (new zAb(m.a.Zc(j, false)).a.gc() > 0) { + f = RD(new zAb(m.a.Zc(j, false)).a.Vc(), 40); + dE(f) === dE(Wd(qtb(d.f, j))) && RD(mQb(j, (q$c(), TZc)), 15).Fc(f); + } + if (new zAb(m.a.ad(j, true)).a.gc() > 1) { + l = nXc(m, j); + dE(Wd(qtb(d.f, l))) === dE(j) && RD(mQb(l, (q$c(), TZc)), 15).Fc(j); + } + m.a.Bc(j) != null; + } + } + } + function BTb(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + if (a.gc() == 1) { + return RD(a.Xb(0), 235); + } else if (a.gc() <= 0) { + return new gUb(); + } + for (e = a.Kc(); e.Ob(); ) { + c = RD(e.Pb(), 235); + o2 = 0; + k = lve; + l = lve; + i = qwe; + j = qwe; + for (n = new Anb(c.e); n.a < n.c.c.length; ) { + m = RD(ynb(n), 153); + o2 += RD(mQb(m, (yVb(), lVb)), 17).a; + k = $wnd.Math.min(k, m.d.a - m.e.a / 2); + l = $wnd.Math.min(l, m.d.b - m.e.b / 2); + i = $wnd.Math.max(i, m.d.a + m.e.a / 2); + j = $wnd.Math.max(j, m.d.b + m.e.b / 2); + } + pQb(c, (yVb(), lVb), sgb(o2)); + pQb(c, (JVb(), GVb), new rjd(k, l)); + pQb(c, FVb, new rjd(i, j)); + } + yob(); + a.jd(new FTb()); + p = new gUb(); + kQb(p, RD(a.Xb(0), 96)); + h = 0; + s = 0; + for (f = a.Kc(); f.Ob(); ) { + c = RD(f.Pb(), 235); + q = ojd(ajd(RD(mQb(c, (JVb(), FVb)), 8)), RD(mQb(c, GVb), 8)); + h = $wnd.Math.max(h, q.a); + s += q.a * q.b; + } + h = $wnd.Math.max(h, $wnd.Math.sqrt(s) * Kfb(UD(mQb(p, (yVb(), ZUb))))); + r = Kfb(UD(mQb(p, rVb))); + t = 0; + u = 0; + g = 0; + b = r; + for (d = a.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 235); + q = ojd(ajd(RD(mQb(c, (JVb(), FVb)), 8)), RD(mQb(c, GVb), 8)); + if (t + q.a > h) { + t = 0; + u += g + r; + g = 0; + } + ATb(p, c, t, u); + b = $wnd.Math.max(b, t + q.a); + g = $wnd.Math.max(g, q.b); + t += q.a + r; + } + return p; + } + function Aqe(a) { + zqe(); + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + if (a == null) + return null; + f = Ahb(a); + o2 = Dqe(f); + if (o2 % 4 != 0) { + return null; + } + p = o2 / 4 | 0; + if (p == 0) + return $C(gE, YHe, 28, 0, 15, 1); + l = null; + b = 0; + c = 0; + d = 0; + e = 0; + g = 0; + h = 0; + i = 0; + j = 0; + n = 0; + m = 0; + k = 0; + l = $C(gE, YHe, 28, p * 3, 15, 1); + for (; n < p - 1; n++) { + if (!Cqe(g = f[k++]) || !Cqe(h = f[k++]) || !Cqe(i = f[k++]) || !Cqe(j = f[k++])) + return null; + b = xqe[g]; + c = xqe[h]; + d = xqe[i]; + e = xqe[j]; + l[m++] = (b << 2 | c >> 4) << 24 >> 24; + l[m++] = ((c & 15) << 4 | d >> 2 & 15) << 24 >> 24; + l[m++] = (d << 6 | e) << 24 >> 24; + } + if (!Cqe(g = f[k++]) || !Cqe(h = f[k++])) { + return null; + } + b = xqe[g]; + c = xqe[h]; + i = f[k++]; + j = f[k++]; + if (xqe[i] == -1 || xqe[j] == -1) { + if (i == 61 && j == 61) { + if ((c & 15) != 0) + return null; + q = $C(gE, YHe, 28, n * 3 + 1, 15, 1); + hib(l, 0, q, 0, n * 3); + q[m] = (b << 2 | c >> 4) << 24 >> 24; + return q; + } else if (i != 61 && j == 61) { + d = xqe[i]; + if ((d & 3) != 0) + return null; + q = $C(gE, YHe, 28, n * 3 + 2, 15, 1); + hib(l, 0, q, 0, n * 3); + q[m++] = (b << 2 | c >> 4) << 24 >> 24; + q[m] = ((c & 15) << 4 | d >> 2 & 15) << 24 >> 24; + return q; + } else { + return null; + } + } else { + d = xqe[i]; + e = xqe[j]; + l[m++] = (b << 2 | c >> 4) << 24 >> 24; + l[m++] = ((c & 15) << 4 | d >> 2 & 15) << 24 >> 24; + l[m++] = (d << 6 | e) << 24 >> 24; + } + return l; + } + function wfc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v; + b.Ug(qBe, 1); + o2 = RD(mQb(a, (yCc(), yAc)), 223); + for (e = new Anb(a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 30); + j = t2b(d.a); + for (g = j, h = 0, i = g.length; h < i; ++h) { + f = g[h]; + if (f.k != (r3b(), q3b)) { + continue; + } + if (o2 == (Ymd(), Wmd)) { + for (l = new Anb(f.j); l.a < l.c.c.length; ) { + k = RD(ynb(l), 12); + k.e.c.length == 0 || zfc(k); + k.g.c.length == 0 || Afc(k); + } + } else if (ZD(mQb(f, (Ywc(), Awc)), 18)) { + q = RD(mQb(f, Awc), 18); + r = RD(e3b(f, (qpd(), ppd)).Kc().Pb(), 12); + s = RD(e3b(f, Xod).Kc().Pb(), 12); + t = RD(mQb(r, Awc), 12); + u = RD(mQb(s, Awc), 12); + Y0b(q, u); + Z0b(q, t); + v = new sjd(s.i.n); + v.a = xjd(cD(WC(l3, 1), Nve, 8, 0, [u.i.n, u.n, u.a])).a; + Mub(q.a, v); + v = new sjd(r.i.n); + v.a = xjd(cD(WC(l3, 1), Nve, 8, 0, [t.i.n, t.n, t.a])).a; + Mub(q.a, v); + } else { + if (f.j.c.length >= 2) { + p = true; + m = new Anb(f.j); + c = RD(ynb(m), 12); + n = null; + while (m.a < m.c.c.length) { + n = c; + c = RD(ynb(m), 12); + if (!pb(mQb(n, Awc), mQb(c, Awc))) { + p = false; + break; + } + } + } else { + p = false; + } + for (l = new Anb(f.j); l.a < l.c.c.length; ) { + k = RD(ynb(l), 12); + k.e.c.length == 0 || xfc(k, p); + k.g.c.length == 0 || yfc(k, p); + } + } + g3b(f, null); + } + } + b.Vg(); + } + function LQc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v; + for (h = new Anb(a.a.b); h.a < h.c.c.length; ) { + f = RD(ynb(h), 30); + for (t = new Anb(f.a); t.a < t.c.c.length; ) { + s = RD(ynb(t), 10); + b.g[s.p] = s; + b.a[s.p] = s; + b.d[s.p] = 0; + } + } + i = a.a.b; + b.c == (wQc(), uQc) && (i = hv(i)); + for (g = i.Kc(); g.Ob(); ) { + f = RD(g.Pb(), 30); + n = -1; + m = f.a; + if (b.o == (EQc(), DQc)) { + n = lve; + m = hv(m); + } + for (v = m.Kc(); v.Ob(); ) { + u = RD(v.Pb(), 10); + l = null; + b.c == uQc ? l = RD(Vmb(a.b.f, u.p), 15) : l = RD(Vmb(a.b.b, u.p), 15); + if (l.gc() > 0) { + d = l.gc(); + j = eE($wnd.Math.floor((d + 1) / 2)) - 1; + e = eE($wnd.Math.ceil((d + 1) / 2)) - 1; + if (b.o == DQc) { + for (k = e; k >= j; k--) { + if (b.a[u.p] == u) { + p = RD(l.Xb(k), 42); + o2 = RD(p.a, 10); + if (!Zsb(c, p.b) && n > a.b.e[o2.p]) { + b.a[o2.p] = u; + b.g[u.p] = b.g[o2.p]; + b.a[u.p] = b.g[u.p]; + b.f[b.g[u.p].p] = (Geb(), Heb(b.f[b.g[u.p].p]) & u.k == (r3b(), o3b) ? true : false); + n = a.b.e[o2.p]; + } + } + } + } else { + for (k = j; k <= e; k++) { + if (b.a[u.p] == u) { + r = RD(l.Xb(k), 42); + q = RD(r.a, 10); + if (!Zsb(c, r.b) && n < a.b.e[q.p]) { + b.a[q.p] = u; + b.g[u.p] = b.g[q.p]; + b.a[u.p] = b.g[u.p]; + b.f[b.g[u.p].p] = (Geb(), Heb(b.f[b.g[u.p].p]) & u.k == (r3b(), o3b) ? true : false); + n = a.b.e[q.p]; + } + } + } + } + } + } + } + } + function iOc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B; + t = a.c[(tFb(0, b.c.length), RD(b.c[0], 18)).p]; + A = a.c[(tFb(1, b.c.length), RD(b.c[1], 18)).p]; + if (t.a.e.e - t.a.a - (t.b.e.e - t.b.a) == 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) == 0) { + return false; + } + r = t.b.e.f; + if (!ZD(r, 10)) { + return false; + } + q = RD(r, 10); + v = a.i[q.p]; + w = !q.c ? -1 : Wmb(q.c.a, q, 0); + f = oxe; + if (w > 0) { + e = RD(Vmb(q.c.a, w - 1), 10); + g = a.i[e.p]; + B = $wnd.Math.ceil(bFc(a.n, e, q)); + f = v.a.e - q.d.d - (g.a.e + e.o.b + e.d.a) - B; + } + j = oxe; + if (w < q.c.a.c.length - 1) { + i = RD(Vmb(q.c.a, w + 1), 10); + k = a.i[i.p]; + B = $wnd.Math.ceil(bFc(a.n, i, q)); + j = k.a.e - i.d.d - (v.a.e + q.o.b + q.d.a) - B; + } + if (c && (Zy(), bz(vEe), $wnd.Math.abs(f - j) <= vEe || f == j || isNaN(f) && isNaN(j))) { + return true; + } + d = GOc(t.a); + h = -GOc(t.b); + l = -GOc(A.a); + s = GOc(A.b); + p = t.a.e.e - t.a.a - (t.b.e.e - t.b.a) > 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) < 0; + o2 = t.a.e.e - t.a.a - (t.b.e.e - t.b.a) < 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) > 0; + n = t.a.e.e + t.b.a < A.b.e.e + A.a.a; + m = t.a.e.e + t.b.a > A.b.e.e + A.a.a; + u = 0; + !p && !o2 && (m ? f + l > 0 ? u = l : j - d > 0 && (u = d) : n && (f + h > 0 ? u = h : j - s > 0 && (u = s))); + v.a.e += u; + v.b && (v.d.e += u); + return false; + } + function OJb(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + d = new Uid(b.Lf().a, b.Lf().b, b.Mf().a, b.Mf().b); + e = new Tid(); + if (a.c) { + for (g = new Anb(b.Rf()); g.a < g.c.c.length; ) { + f = RD(ynb(g), 187); + e.c = f.Lf().a + b.Lf().a; + e.d = f.Lf().b + b.Lf().b; + e.b = f.Mf().a; + e.a = f.Mf().b; + Sid(d, e); + } + } + for (j = new Anb(b.Xf()); j.a < j.c.c.length; ) { + i = RD(ynb(j), 852); + k = i.Lf().a + b.Lf().a; + l = i.Lf().b + b.Lf().b; + if (a.e) { + e.c = k; + e.d = l; + e.b = i.Mf().a; + e.a = i.Mf().b; + Sid(d, e); + } + if (a.d) { + for (g = new Anb(i.Rf()); g.a < g.c.c.length; ) { + f = RD(ynb(g), 187); + e.c = f.Lf().a + k; + e.d = f.Lf().b + l; + e.b = f.Mf().a; + e.a = f.Mf().b; + Sid(d, e); + } + } + if (a.b) { + m = new rjd(-c, -c); + if (RD(b.of((umd(), Lld)), 181).Hc((Pod(), Nod))) { + for (g = new Anb(i.Rf()); g.a < g.c.c.length; ) { + f = RD(ynb(g), 187); + m.a += f.Mf().a + c; + m.b += f.Mf().b + c; + } + } + m.a = $wnd.Math.max(m.a, 0); + m.b = $wnd.Math.max(m.b, 0); + MJb(d, i.Wf(), i.Uf(), b, i, m, c); + } + } + a.b && MJb(d, b.Wf(), b.Uf(), b, null, null, c); + h = new S2b(b.Vf()); + h.d = $wnd.Math.max(0, b.Lf().b - d.d); + h.a = $wnd.Math.max(0, d.d + d.a - (b.Lf().b + b.Mf().b)); + h.b = $wnd.Math.max(0, b.Lf().a - d.c); + h.c = $wnd.Math.max(0, d.c + d.b - (b.Lf().a + b.Mf().a)); + b.Zf(h); + } + function Mz() { + var a = ["\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005", "\\u0006", "\\u0007", "\\b", "\\t", "\\n", "\\u000B", "\\f", "\\r", "\\u000E", "\\u000F", "\\u0010", "\\u0011", "\\u0012", "\\u0013", "\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019", "\\u001A", "\\u001B", "\\u001C", "\\u001D", "\\u001E", "\\u001F"]; + a[34] = '\\"'; + a[92] = "\\\\"; + a[173] = "\\u00ad"; + a[1536] = "\\u0600"; + a[1537] = "\\u0601"; + a[1538] = "\\u0602"; + a[1539] = "\\u0603"; + a[1757] = "\\u06dd"; + a[1807] = "\\u070f"; + a[6068] = "\\u17b4"; + a[6069] = "\\u17b5"; + a[8203] = "\\u200b"; + a[8204] = "\\u200c"; + a[8205] = "\\u200d"; + a[8206] = "\\u200e"; + a[8207] = "\\u200f"; + a[8232] = "\\u2028"; + a[8233] = "\\u2029"; + a[8234] = "\\u202a"; + a[8235] = "\\u202b"; + a[8236] = "\\u202c"; + a[8237] = "\\u202d"; + a[8238] = "\\u202e"; + a[8288] = "\\u2060"; + a[8289] = "\\u2061"; + a[8290] = "\\u2062"; + a[8291] = "\\u2063"; + a[8292] = "\\u2064"; + a[8298] = "\\u206a"; + a[8299] = "\\u206b"; + a[8300] = "\\u206c"; + a[8301] = "\\u206d"; + a[8302] = "\\u206e"; + a[8303] = "\\u206f"; + a[65279] = "\\ufeff"; + a[65529] = "\\ufff9"; + a[65530] = "\\ufffa"; + a[65531] = "\\ufffb"; + return a; + } + function zVb(a) { + Cgd(a, new Pfd(_fd(Wfd($fd(Xfd(Zfd(Yfd(new agd(), Zze), "ELK Force"), "Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported."), new CVb()), Zze), ysb((aGd(), ZFd), cD(WC(T5, 1), jwe, 245, 0, [XFd]))))); + Agd(a, Zze, $ze, sgb(1)); + Agd(a, Zze, _ze, 80); + Agd(a, Zze, aAe, 5); + Agd(a, Zze, Dze, Yze); + Agd(a, Zze, bAe, sgb(1)); + Agd(a, Zze, cAe, (Geb(), true)); + Agd(a, Zze, Eze, iVb); + Agd(a, Zze, dAe, iGd(_Ub)); + Agd(a, Zze, eAe, iGd(jVb)); + Agd(a, Zze, fAe, false); + Agd(a, Zze, gAe, iGd(gVb)); + Agd(a, Zze, hAe, iGd(eVb)); + Agd(a, Zze, iAe, iGd(fVb)); + Agd(a, Zze, jAe, iGd(dVb)); + Agd(a, Zze, kAe, iGd(cVb)); + Agd(a, Zze, lAe, iGd(kVb)); + Agd(a, Zze, Rze, iGd(bVb)); + Agd(a, Zze, Uze, iGd(sVb)); + Agd(a, Zze, Sze, iGd(aVb)); + Agd(a, Zze, Wze, iGd(nVb)); + Agd(a, Zze, Tze, iGd(oVb)); + Agd(a, Zze, mAe, iGd(vVb)); + Agd(a, Zze, nAe, iGd(xVb)); + Agd(a, Zze, oAe, iGd(uVb)); + Agd(a, Zze, pAe, iGd(tVb)); + Agd(a, Zze, qAe, wVb); + } + function hte(a, b) { + Vse(); + var c, d, e, f, g, h, i, j, k, l, m, n, o2; + if (bkb(wse) == 0) { + l = $C(qdb, Nve, 122, yse.length, 0, 1); + for (g = 0; g < l.length; g++) { + l[g] = new xte(4); + } + d = new Rhb(); + for (f = 0; f < vse.length; f++) { + k = new xte(4); + if (f < 84) { + h = f * 2; + n = (BFb(h, XLe.length), XLe.charCodeAt(h)); + m = (BFb(h + 1, XLe.length), XLe.charCodeAt(h + 1)); + rte(k, n, m); + } else { + h = (f - 84) * 2; + rte(k, zse[h], zse[h + 1]); + } + i = vse[f]; + lhb(i, "Specials") && rte(k, 65520, 65533); + if (lhb(i, VLe)) { + rte(k, 983040, 1048573); + rte(k, 1048576, 1114109); + } + $jb(wse, i, k); + $jb(xse, i, yte(k)); + j = d.a.length; + 0 < j ? d.a = zhb(d.a, 0, 0) : 0 > j && (d.a += Hhb($C(hE, zwe, 28, -j, 15, 1))); + d.a += "Is"; + if (qhb(i, Fhb(32)) >= 0) { + for (e = 0; e < i.length; e++) { + BFb(e, i.length); + i.charCodeAt(e) != 32 && Jhb(d, (BFb(e, i.length), i.charCodeAt(e))); + } + } else { + d.a += "" + i; + } + lte(d.a, i, true); + } + lte(WLe, "Cn", false); + lte(YLe, "Cn", true); + c = new xte(4); + rte(c, 0, MLe); + $jb(wse, "ALL", c); + $jb(xse, "ALL", yte(c)); + !Ase && (Ase = new Tsb()); + $jb(Ase, WLe, WLe); + !Ase && (Ase = new Tsb()); + $jb(Ase, YLe, YLe); + !Ase && (Ase = new Tsb()); + $jb(Ase, "ALL", "ALL"); + } + o2 = b ? RD(Xjb(wse, a), 138) : RD(Xjb(xse, a), 138); + return o2; + } + function i_c(a) { + Cgd(a, new Pfd(_fd(Wfd($fd(Xfd(Zfd(Yfd(new agd(), ZEe), "ELK Mr. Tree"), "Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."), new l_c()), $Ee), xsb((aGd(), WFd))))); + Agd(a, ZEe, Eze, U$c); + Agd(a, ZEe, _ze, 20); + Agd(a, ZEe, ADe, 3); + Agd(a, ZEe, Dze, Yze); + Agd(a, ZEe, $ze, sgb(1)); + Agd(a, ZEe, cAe, (Geb(), true)); + Agd(a, ZEe, LDe, iGd(G$c)); + Agd(a, ZEe, PDe, I$c); + Agd(a, ZEe, dAe, iGd(L$c)); + Agd(a, ZEe, iEe, iGd(M$c)); + Agd(a, ZEe, jAe, iGd(O$c)); + Agd(a, ZEe, hAe, iGd(P$c)); + Agd(a, ZEe, CAe, iGd(Q$c)); + Agd(a, ZEe, iAe, iGd(R$c)); + Agd(a, ZEe, kAe, iGd(N$c)); + Agd(a, ZEe, gAe, iGd(S$c)); + Agd(a, ZEe, lAe, iGd(V$c)); + Agd(a, ZEe, VEe, iGd(g_c)); + Agd(a, ZEe, XEe, iGd(Y$c)); + Agd(a, ZEe, mAe, iGd(c_c)); + Agd(a, ZEe, nAe, iGd(e_c)); + Agd(a, ZEe, oAe, iGd(b_c)); + Agd(a, ZEe, pAe, iGd(a_c)); + Agd(a, ZEe, qAe, d_c); + Agd(a, ZEe, UEe, iGd(W$c)); + Agd(a, ZEe, WEe, iGd(K$c)); + Agd(a, ZEe, TEe, iGd(f_c)); + Agd(a, ZEe, REe, iGd(F$c)); + Agd(a, ZEe, SEe, iGd(J$c)); + } + function rNb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m; + j = RD(RD(Qc(a.r, b), 21), 87); + g = UMb(a, b); + c = a.u.Hc((Pod(), Jod)); + for (i = j.Kc(); i.Ob(); ) { + h = RD(i.Pb(), 117); + if (!h.c || h.c.d.c.length <= 0) { + continue; + } + m = h.b.Mf(); + k = h.c; + l = k.i; + l.b = (f = k.n, k.e.a + f.b + f.c); + l.a = (e = k.n, k.e.b + e.d + e.a); + switch (b.g) { + case 1: + if (h.a) { + l.c = (m.a - l.b) / 2; + RKb(k, (EKb(), BKb)); + } else if (g || c) { + l.c = -l.b - a.s; + RKb(k, (EKb(), DKb)); + } else { + l.c = m.a + a.s; + RKb(k, (EKb(), CKb)); + } + l.d = -l.a - a.t; + SKb(k, (vLb(), sLb)); + break; + case 3: + if (h.a) { + l.c = (m.a - l.b) / 2; + RKb(k, (EKb(), BKb)); + } else if (g || c) { + l.c = -l.b - a.s; + RKb(k, (EKb(), DKb)); + } else { + l.c = m.a + a.s; + RKb(k, (EKb(), CKb)); + } + l.d = m.b + a.t; + SKb(k, (vLb(), uLb)); + break; + case 2: + if (h.a) { + d = a.v ? l.a : RD(Vmb(k.d, 0), 187).Mf().b; + l.d = (m.b - d) / 2; + SKb(k, (vLb(), tLb)); + } else if (g || c) { + l.d = -l.a - a.t; + SKb(k, (vLb(), sLb)); + } else { + l.d = m.b + a.t; + SKb(k, (vLb(), uLb)); + } + l.c = m.a + a.s; + RKb(k, (EKb(), CKb)); + break; + case 4: + if (h.a) { + d = a.v ? l.a : RD(Vmb(k.d, 0), 187).Mf().b; + l.d = (m.b - d) / 2; + SKb(k, (vLb(), tLb)); + } else if (g || c) { + l.d = -l.a - a.t; + SKb(k, (vLb(), sLb)); + } else { + l.d = m.b + a.t; + SKb(k, (vLb(), uLb)); + } + l.c = -l.b - a.s; + RKb(k, (EKb(), DKb)); + } + g = false; + } + } + function t6b(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s; + m = false; + l = false; + if (Dod(RD(mQb(d, (yCc(), BBc)), 101))) { + g = false; + h = false; + t: + for (o2 = new Anb(d.j); o2.a < o2.c.c.length; ) { + n = RD(ynb(o2), 12); + for (q = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [new T3b(n), new _3b(n)]))); gs(q); ) { + p = RD(hs(q), 12); + if (!Heb(TD(mQb(p.i, Uzc)))) { + if (n.j == (qpd(), Yod)) { + g = true; + break t; + } + if (n.j == npd) { + h = true; + break t; + } + } + } + } + m = h && !g; + l = g && !h; + } + if (!m && !l && d.b.c.length != 0) { + k = 0; + for (j = new Anb(d.b); j.a < j.c.c.length; ) { + i = RD(ynb(j), 72); + k += i.n.b + i.o.b / 2; + } + k /= d.b.c.length; + s = k >= d.o.b / 2; + } else { + s = !l; + } + if (s) { + r = RD(mQb(d, (Ywc(), Xwc)), 15); + if (!r) { + f = new bnb(); + pQb(d, Xwc, f); + } else if (m) { + f = r; + } else { + e = RD(mQb(d, Vvc), 15); + if (!e) { + f = new bnb(); + pQb(d, Vvc, f); + } else { + r.gc() <= e.gc() ? f = r : f = e; + } + } + } else { + e = RD(mQb(d, (Ywc(), Vvc)), 15); + if (!e) { + f = new bnb(); + pQb(d, Vvc, f); + } else if (l) { + f = e; + } else { + r = RD(mQb(d, Xwc), 15); + if (!r) { + f = new bnb(); + pQb(d, Xwc, f); + } else { + e.gc() <= r.gc() ? f = e : f = r; + } + } + } + f.Fc(a); + pQb(a, (Ywc(), Xvc), c); + if (b.d == c) { + Z0b(b, null); + c.e.c.length + c.g.c.length == 0 && P3b(c, null); + u6b(c); + } else { + Y0b(b, null); + c.e.c.length + c.g.c.length == 0 && P3b(c, null); + } + Xub(b.a); + } + function GHc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I; + c.Ug("MinWidth layering", 1); + n = b.b; + A = b.a; + I = RD(mQb(b, (yCc(), WAc)), 17).a; + h = RD(mQb(b, XAc), 17).a; + a.b = Kfb(UD(mQb(b, TBc))); + a.d = oxe; + for (u = new Anb(A); u.a < u.c.c.length; ) { + s = RD(ynb(u), 10); + if (s.k != (r3b(), p3b)) { + continue; + } + D = s.o.b; + a.d = $wnd.Math.min(a.d, D); + } + a.d = $wnd.Math.max(1, a.d); + B = A.c.length; + a.c = $C(kE, Pwe, 28, B, 15, 1); + a.f = $C(kE, Pwe, 28, B, 15, 1); + a.e = $C(iE, vxe, 28, B, 15, 1); + j = 0; + a.a = 0; + for (v = new Anb(A); v.a < v.c.c.length; ) { + s = RD(ynb(v), 10); + s.p = j++; + a.c[s.p] = EHc(Z2b(s)); + a.f[s.p] = EHc(a3b(s)); + a.e[s.p] = s.o.b / a.d; + a.a += a.e[s.p]; + } + a.b /= a.d; + a.a /= B; + w = FHc(A); + _mb(A, Fob(new MHc(a))); + p = oxe; + o2 = lve; + g = null; + H = I; + G = I; + f = h; + e = h; + if (I < 0) { + H = RD(BHc.a.Id(), 17).a; + G = RD(BHc.b.Id(), 17).a; + } + if (h < 0) { + f = RD(AHc.a.Id(), 17).a; + e = RD(AHc.b.Id(), 17).a; + } + for (F = H; F <= G; F++) { + for (d = f; d <= e; d++) { + C = DHc(a, F, d, A, w); + r = Kfb(UD(C.a)); + m = RD(C.b, 15); + q = m.gc(); + if (r < p || r == p && q < o2) { + p = r; + o2 = q; + g = m; + } + } + } + for (l = g.Kc(); l.Ob(); ) { + k = RD(l.Pb(), 15); + i = new R4b(b); + for (t = k.Kc(); t.Ob(); ) { + s = RD(t.Pb(), 10); + g3b(s, i); + } + ZEb(n.c, i); + } + Eob(n); + A.c.length = 0; + c.Vg(); + } + function UUc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G; + c.Ug("Spline edge routing", 1); + if (b.b.c.length == 0) { + b.f.a = 0; + c.Vg(); + return; + } + s = Kfb(UD(mQb(b, (yCc(), cCc)))); + h = Kfb(UD(mQb(b, XBc))); + g = Kfb(UD(mQb(b, UBc))); + r = RD(mQb(b, DAc), 350); + B = r == (lFc(), kFc); + A = Kfb(UD(mQb(b, EAc))); + a.d = b; + a.j.c.length = 0; + a.a.c.length = 0; + akb(a.k); + i = RD(Vmb(b.b, 0), 30); + k = ar(i.a, (dSc(), bSc)); + o2 = RD(Vmb(b.b, b.b.c.length - 1), 30); + l = ar(o2.a, bSc); + p = new Anb(b.b); + q = null; + G = 0; + do { + t = p.a < p.c.c.length ? RD(ynb(p), 30) : null; + IUc(a, q, t); + LUc(a); + C = cwb(nDb(IDb(CDb(new SDb(null, new Swb(a.i, 16)), new jVc()), new lVc()))); + F = 0; + u = G; + m = !q || k && q == i; + n = !t || l && t == o2; + if (C > 0) { + j = 0; + !!q && (j += h); + j += (C - 1) * g; + !!t && (j += h); + B && !!t && (j = $wnd.Math.max(j, JUc(t, g, s, A))); + if (j < s && !m && !n) { + F = (s - j) / 2; + j = s; + } + u += j; + } else + !m && !n && (u += s); + !!t && p2b(t, u); + for (w = new Anb(a.i); w.a < w.c.c.length; ) { + v = RD(ynb(w), 131); + v.a.c = G; + v.a.b = u - G; + v.F = F; + v.p = !q; + } + Tmb(a.a, a.i); + G = u; + !!t && (G += t.c.a); + q = t; + m = n; + } while (t); + for (e = new Anb(a.j); e.a < e.c.c.length; ) { + d = RD(ynb(e), 18); + f = PUc(a, d); + pQb(d, (Ywc(), Rwc), f); + D = RUc(a, d); + pQb(d, Twc, D); + } + b.f.a = G; + a.d = null; + c.Vg(); + } + function Z9b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D; + a.b = b; + a.a = RD(mQb(b, (yCc(), JAc)), 17).a; + a.c = RD(mQb(b, LAc), 17).a; + a.c == 0 && (a.c = lve); + q = new Jkb(b.b, 0); + while (q.b < q.d.gc()) { + p = (sFb(q.b < q.d.gc()), RD(q.d.Xb(q.c = q.b++), 30)); + h = new bnb(); + k = -1; + u = -1; + for (t = new Anb(p.a); t.a < t.c.c.length; ) { + s = RD(ynb(t), 10); + if (Kr((U9b(), new is(Mr(W2b(s).a.Kc(), new ir())))) >= a.a) { + d = V9b(a, s); + k = $wnd.Math.max(k, d.b); + u = $wnd.Math.max(u, d.d); + Rmb(h, new Ptd(s, d)); + } + } + B = new bnb(); + for (j = 0; j < k; ++j) { + Qmb(B, 0, (sFb(q.b > 0), q.a.Xb(q.c = --q.b), C = new R4b(a.b), Ikb(q, C), sFb(q.b < q.d.gc()), q.d.Xb(q.c = q.b++), C)); + } + for (g = new Anb(h); g.a < g.c.c.length; ) { + e = RD(ynb(g), 42); + n = RD(e.b, 580).a; + if (!n) { + continue; + } + for (m = new Anb(n); m.a < m.c.c.length; ) { + l = RD(ynb(m), 10); + Y9b(a, l, S9b, B); + } + } + c = new bnb(); + for (i = 0; i < u; ++i) { + Rmb(c, (D = new R4b(a.b), Ikb(q, D), D)); + } + for (f = new Anb(h); f.a < f.c.c.length; ) { + e = RD(ynb(f), 42); + A = RD(e.b, 580).c; + if (!A) { + continue; + } + for (w = new Anb(A); w.a < w.c.c.length; ) { + v = RD(ynb(w), 10); + Y9b(a, v, T9b, c); + } + } + } + r = new Jkb(b.b, 0); + while (r.b < r.d.gc()) { + o2 = (sFb(r.b < r.d.gc()), RD(r.d.Xb(r.c = r.b++), 30)); + o2.a.c.length == 0 && Ckb(r); + } + } + function wLd(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + p = a.i != 0; + t = false; + r = null; + if (Mvd(a.e)) { + k = b.gc(); + if (k > 0) { + m = k < 100 ? null : new gLd(k); + j = new $Hd(b); + o2 = j.g; + r = $C(kE, Pwe, 28, k, 15, 1); + d = 0; + u = new ZHd(k); + for (e = 0; e < a.i; ++e) { + h = a.g[e]; + n = h; + v: + for (s = 0; s < 2; ++s) { + for (i = k; --i >= 0; ) { + if (n != null ? pb(n, o2[i]) : dE(n) === dE(o2[i])) { + if (r.length <= d) { + q = r; + r = $C(kE, Pwe, 28, 2 * r.length, 15, 1); + hib(q, 0, r, 0, d); + } + r[d++] = e; + WGd(u, o2[i]); + break v; + } + } + n = n; + if (dE(n) === dE(h)) { + break; + } + } + } + j = u; + o2 = u.g; + k = d; + if (d > r.length) { + q = r; + r = $C(kE, Pwe, 28, d, 15, 1); + hib(q, 0, r, 0, d); + } + if (d > 0) { + t = true; + for (f = 0; f < d; ++f) { + n = o2[f]; + m = Kge(a, RD(n, 76), m); + } + for (g = d; --g >= 0; ) { + THd(a, r[g]); + } + if (d != k) { + for (e = k; --e >= d; ) { + THd(j, e); + } + q = r; + r = $C(kE, Pwe, 28, d, 15, 1); + hib(q, 0, r, 0, d); + } + b = j; + } + } + } else { + b = aHd(a, b); + for (e = a.i; --e >= 0; ) { + if (b.Hc(a.g[e])) { + THd(a, e); + t = true; + } + } + } + if (t) { + if (r != null) { + c = b.gc(); + l = c == 1 ? dZd(a, 4, b.Kc().Pb(), null, r[0], p) : dZd(a, 6, b, r, r[0], p); + m = c < 100 ? null : new gLd(c); + for (e = b.Kc(); e.Ob(); ) { + n = e.Pb(); + m = oge(a, RD(n, 76), m); + } + if (!m) { + qvd(a.e, l); + } else { + m.nj(l); + m.oj(); + } + } else { + m = tLd(b.gc()); + for (e = b.Kc(); e.Ob(); ) { + n = e.Pb(); + m = oge(a, RD(n, 76), m); + } + !!m && m.oj(); + } + return true; + } else { + return false; + } + } + function i_b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + c = new p_b(b); + c.a || b_b(b); + j = a_b(b); + i = new Tp(); + q = new D_b(); + for (p = new Anb(b.a); p.a < p.c.c.length; ) { + o2 = RD(ynb(p), 10); + for (e = new is(Mr(a3b(o2).a.Kc(), new ir())); gs(e); ) { + d = RD(hs(e), 18); + if (d.c.i.k == (r3b(), m3b) || d.d.i.k == m3b) { + k = h_b(a, d, j, q); + Rc(i, f_b(k.d), k.a); + } + } + } + g = new bnb(); + for (t = RD(mQb(c.c, (Ywc(), ewc)), 21).Kc(); t.Ob(); ) { + s = RD(t.Pb(), 64); + n = q.c[s.g]; + m = q.b[s.g]; + h = q.a[s.g]; + f = null; + r = null; + switch (s.g) { + case 4: + f = new Uid(a.d.a, n, j.b.a - a.d.a, m - n); + r = new Uid(a.d.a, n, h, m - n); + l_b(j, new rjd(f.c + f.b, f.d)); + l_b(j, new rjd(f.c + f.b, f.d + f.a)); + break; + case 2: + f = new Uid(j.a.a, n, a.c.a - j.a.a, m - n); + r = new Uid(a.c.a - h, n, h, m - n); + l_b(j, new rjd(f.c, f.d)); + l_b(j, new rjd(f.c, f.d + f.a)); + break; + case 1: + f = new Uid(n, a.d.b, m - n, j.b.b - a.d.b); + r = new Uid(n, a.d.b, m - n, h); + l_b(j, new rjd(f.c, f.d + f.a)); + l_b(j, new rjd(f.c + f.b, f.d + f.a)); + break; + case 3: + f = new Uid(n, j.a.b, m - n, a.c.b - j.a.b); + r = new Uid(n, a.c.b - h, m - n, h); + l_b(j, new rjd(f.c, f.d)); + l_b(j, new rjd(f.c + f.b, f.d)); + } + if (f) { + l = new y_b(); + l.d = s; + l.b = f; + l.c = r; + l.a = Ux(RD(Qc(i, f_b(s)), 21)); + ZEb(g.c, l); + } + } + Tmb(c.b, g); + c.d = DZb(LZb(j)); + return c; + } + function PQc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p; + if (c.p[b.p] != null) { + return; + } + h = true; + c.p[b.p] = 0; + g = b; + p = c.o == (EQc(), CQc) ? pxe : oxe; + do { + e = a.b.e[g.p]; + f = g.c.a.c.length; + if (c.o == CQc && e > 0 || c.o == DQc && e < f - 1) { + i = null; + j = null; + c.o == DQc ? i = RD(Vmb(g.c.a, e + 1), 10) : i = RD(Vmb(g.c.a, e - 1), 10); + j = c.g[i.p]; + PQc(a, j, c); + p = a.e.wg(p, b, g); + c.j[b.p] == b && (c.j[b.p] = c.j[j.p]); + if (c.j[b.p] == c.j[j.p]) { + o2 = bFc(a.d, g, i); + if (c.o == DQc) { + d = Kfb(c.p[b.p]); + l = Kfb(c.p[j.p]) + Kfb(c.d[i.p]) - i.d.d - o2 - g.d.a - g.o.b - Kfb(c.d[g.p]); + if (h) { + h = false; + c.p[b.p] = $wnd.Math.min(l, p); + } else { + c.p[b.p] = $wnd.Math.min(d, $wnd.Math.min(l, p)); + } + } else { + d = Kfb(c.p[b.p]); + l = Kfb(c.p[j.p]) + Kfb(c.d[i.p]) + i.o.b + i.d.a + o2 + g.d.d - Kfb(c.d[g.p]); + if (h) { + h = false; + c.p[b.p] = $wnd.Math.max(l, p); + } else { + c.p[b.p] = $wnd.Math.max(d, $wnd.Math.max(l, p)); + } + } + } else { + o2 = Kfb(UD(mQb(a.a, (yCc(), bCc)))); + n = NQc(a, c.j[b.p]); + k = NQc(a, c.j[j.p]); + if (c.o == DQc) { + m = Kfb(c.p[b.p]) + Kfb(c.d[g.p]) + g.o.b + g.d.a + o2 - (Kfb(c.p[j.p]) + Kfb(c.d[i.p]) - i.d.d); + TQc(n, k, m); + } else { + m = Kfb(c.p[b.p]) + Kfb(c.d[g.p]) - g.d.d - Kfb(c.p[j.p]) - Kfb(c.d[i.p]) - i.o.b - i.d.a - o2; + TQc(n, k, m); + } + } + } else { + p = a.e.wg(p, b, g); + } + g = c.a[g.p]; + } while (g != b); + qRc(a.e, b); + } + function $Kc(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C; + c = Kfb(UD(mQb(a.a.j, (yCc(), iAc)))); + if (c < -1 || !a.a.i || Cod(RD(mQb(a.a.o, BBc), 101)) || b3b(a.a.o, (qpd(), Xod)).gc() < 2 && b3b(a.a.o, ppd).gc() < 2) { + return true; + } + if (a.a.c.kg()) { + return false; + } + v = 0; + u = 0; + t = new bnb(); + for (i = a.a.e, j = 0, k = i.length; j < k; ++j) { + h = i[j]; + for (m = h, n = 0, p = m.length; n < p; ++n) { + l = m[n]; + if (l.k == (r3b(), q3b)) { + ZEb(t.c, l); + continue; + } + d = a.b[l.c.p][l.p]; + if (l.k == m3b) { + d.b = 1; + RD(mQb(l, (Ywc(), Awc)), 12).j == (qpd(), Xod) && (u += d.a); + } else { + C = b3b(l, (qpd(), ppd)); + C.dc() || !br(C, new lLc()) ? d.c = 1 : (e = b3b(l, Xod), (e.dc() || !br(e, new hLc())) && (v += d.a)); + } + for (g = new is(Mr(a3b(l).a.Kc(), new ir())); gs(g); ) { + f = RD(hs(g), 18); + v += d.c; + u += d.b; + B = f.d.i; + ZKc(a, d, B); + } + r = Al(cD(WC(cJ, 1), rve, 20, 0, [b3b(l, (qpd(), Yod)), b3b(l, npd)])); + for (A = new is(new Il(r.a.length, r.a)); gs(A); ) { + w = RD(hs(A), 12); + s = RD(mQb(w, (Ywc(), Iwc)), 10); + if (s) { + v += d.c; + u += d.b; + ZKc(a, d, s); + } + } + } + for (o2 = new Anb(t); o2.a < o2.c.c.length; ) { + l = RD(ynb(o2), 10); + d = a.b[l.c.p][l.p]; + for (g = new is(Mr(a3b(l).a.Kc(), new ir())); gs(g); ) { + f = RD(hs(g), 18); + v += d.c; + u += d.b; + B = f.d.i; + ZKc(a, d, B); + } + } + t.c.length = 0; + } + b = v + u; + q = b == 0 ? oxe : (v - u) / b; + return q >= c; + } + function zEd(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G; + t = b; + s = new Tp(); + u = new Tp(); + k = wDd(t, mIe); + d = new OEd(a, c, s, u); + QDd(d.a, d.b, d.c, d.d, k); + i = (A = s.i, !A ? s.i = new zf(s, s.c) : A); + for (C = i.Kc(); C.Ob(); ) { + B = RD(C.Pb(), 166); + e = RD(Qc(s, B), 21); + for (p = e.Kc(); p.Ob(); ) { + o2 = p.Pb(); + v = RD(Ao(a.d, o2), 166); + if (v) { + h = (!B.e && (B.e = new Yie(F4, B, 10, 9)), B.e); + WGd(h, v); + } else { + g = zDd(t, uIe); + m = AIe + o2 + BIe + g; + n = m + zIe; + throw Adb(new CDd(n)); + } + } + } + j = (w = u.i, !w ? u.i = new zf(u, u.c) : w); + for (F = j.Kc(); F.Ob(); ) { + D = RD(F.Pb(), 166); + f = RD(Qc(u, D), 21); + for (r = f.Kc(); r.Ob(); ) { + q = r.Pb(); + v = RD(Ao(a.d, q), 166); + if (v) { + l = (!D.g && (D.g = new Yie(F4, D, 9, 10)), D.g); + WGd(l, v); + } else { + g = zDd(t, uIe); + m = AIe + q + BIe + g; + n = m + zIe; + throw Adb(new CDd(n)); + } + } + } + !c.b && (c.b = new Yie(E4, c, 4, 7)); + if (c.b.i != 0 && (!c.c && (c.c = new Yie(E4, c, 5, 8)), c.c.i != 0) && (!c.b && (c.b = new Yie(E4, c, 4, 7)), c.b.i <= 1 && (!c.c && (c.c = new Yie(E4, c, 5, 8)), c.c.i <= 1)) && (!c.a && (c.a = new C5d(F4, c, 6, 6)), c.a).i == 1) { + G = RD(QHd((!c.a && (c.a = new C5d(F4, c, 6, 6)), c.a), 0), 166); + if (!Dzd(G) && !Ezd(G)) { + Kzd(G, RD(QHd((!c.b && (c.b = new Yie(E4, c, 4, 7)), c.b), 0), 84)); + Lzd(G, RD(QHd((!c.c && (c.c = new Yie(E4, c, 5, 8)), c.c), 0), 84)); + } + } + } + function QNc(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D; + for (t = a.a, u = 0, v = t.length; u < v; ++u) { + s = t[u]; + j = lve; + k = lve; + for (o2 = new Anb(s.e); o2.a < o2.c.c.length; ) { + m = RD(ynb(o2), 10); + g = !m.c ? -1 : Wmb(m.c.a, m, 0); + if (g > 0) { + l = RD(Vmb(m.c.a, g - 1), 10); + B = bFc(a.b, m, l); + q = m.n.b - m.d.d - (l.n.b + l.o.b + l.d.a + B); + } else { + q = m.n.b - m.d.d; + } + j = $wnd.Math.min(q, j); + if (g < m.c.a.c.length - 1) { + l = RD(Vmb(m.c.a, g + 1), 10); + B = bFc(a.b, m, l); + r = l.n.b - l.d.d - (m.n.b + m.o.b + m.d.a + B); + } else { + r = 2 * m.n.b; + } + k = $wnd.Math.min(r, k); + } + i = lve; + f = false; + e = RD(Vmb(s.e, 0), 10); + for (D = new Anb(e.j); D.a < D.c.c.length; ) { + C = RD(ynb(D), 12); + p = e.n.b + C.n.b + C.a.b; + for (d = new Anb(C.e); d.a < d.c.c.length; ) { + c = RD(ynb(d), 18); + w = c.c; + b = w.i.n.b + w.n.b + w.a.b - p; + if ($wnd.Math.abs(b) < $wnd.Math.abs(i) && $wnd.Math.abs(b) < (b < 0 ? j : k)) { + i = b; + f = true; + } + } + } + h = RD(Vmb(s.e, s.e.c.length - 1), 10); + for (A = new Anb(h.j); A.a < A.c.c.length; ) { + w = RD(ynb(A), 12); + p = h.n.b + w.n.b + w.a.b; + for (d = new Anb(w.g); d.a < d.c.c.length; ) { + c = RD(ynb(d), 18); + C = c.d; + b = C.i.n.b + C.n.b + C.a.b - p; + if ($wnd.Math.abs(b) < $wnd.Math.abs(i) && $wnd.Math.abs(b) < (b < 0 ? j : k)) { + i = b; + f = true; + } + } + } + if (f && i != 0) { + for (n = new Anb(s.e); n.a < n.c.c.length; ) { + m = RD(ynb(n), 10); + m.n.b += i; + } + } + } + } + function vac(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r; + d = new bnb(); + e = lve; + f = lve; + g = lve; + if (c) { + e = a.f.a; + for (p = new Anb(b.j); p.a < p.c.c.length; ) { + o2 = RD(ynb(p), 12); + for (i = new Anb(o2.g); i.a < i.c.c.length; ) { + h = RD(ynb(i), 18); + if (h.a.b != 0) { + k = RD(Qub(h.a), 8); + if (k.a < e) { + f = e - k.a; + g = lve; + d.c.length = 0; + e = k.a; + } + if (k.a <= e) { + ZEb(d.c, h); + h.a.b > 1 && (g = $wnd.Math.min(g, $wnd.Math.abs(RD(ju(h.a, 1), 8).b - k.b))); + } + } + } + } + } else { + for (p = new Anb(b.j); p.a < p.c.c.length; ) { + o2 = RD(ynb(p), 12); + for (i = new Anb(o2.e); i.a < i.c.c.length; ) { + h = RD(ynb(i), 18); + if (h.a.b != 0) { + m = RD(Rub(h.a), 8); + if (m.a > e) { + f = m.a - e; + g = lve; + d.c.length = 0; + e = m.a; + } + if (m.a >= e) { + ZEb(d.c, h); + h.a.b > 1 && (g = $wnd.Math.min(g, $wnd.Math.abs(RD(ju(h.a, h.a.b - 2), 8).b - m.b))); + } + } + } + } + } + if (d.c.length != 0 && f > b.o.a / 2 && g > b.o.b / 2) { + n = new R3b(); + P3b(n, b); + Q3b(n, (qpd(), Yod)); + n.n.a = b.o.a / 2; + r = new R3b(); + P3b(r, b); + Q3b(r, npd); + r.n.a = b.o.a / 2; + r.n.b = b.o.b; + for (i = new Anb(d); i.a < i.c.c.length; ) { + h = RD(ynb(i), 18); + if (c) { + j = RD(Uub(h.a), 8); + q = h.a.b == 0 ? K3b(h.d) : RD(Qub(h.a), 8); + q.b >= j.b ? Y0b(h, r) : Y0b(h, n); + } else { + j = RD(Vub(h.a), 8); + q = h.a.b == 0 ? K3b(h.c) : RD(Rub(h.a), 8); + q.b >= j.b ? Z0b(h, r) : Z0b(h, n); + } + l = RD(mQb(h, (yCc(), RAc)), 75); + !!l && ze(l, j, true); + } + b.n.a = e - b.o.a / 2; + } + } + function E0c(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + for (h = Sub(a.b, 0); h.b != h.d.c; ) { + g = RD(evb(h), 40); + if (lhb(g.c, IEe)) { + continue; + } + j = iWc(g, a); + b == (Cmd(), ymd) || b == zmd ? _mb(j, new D1c()) : _mb(j, new H1c()); + i = j.c.length; + for (d = 0; d < i; d++) { + k = (tFb(d, j.c.length), RD(j.c[d], 65)).c; + lhb(k.c, "n11") && o0; + if (Heb(TD(mQb(g, (q$c(), UZc)))) && !mWc((tFb(d, j.c.length), RD(j.c[d], 65)), a)) { + continue; + } + e = i == 1 ? 0.5 : (d + 1) / (i + 1); + if (b == ymd) { + f = Kfb(UD(mQb(g, f$c))); + m = g.e.b + g.f.b * e; + Nub((tFb(d, j.c.length), RD(j.c[d], 65)).a, new rjd($wnd.Math.min(f, g.e.a - c), m)); + Nub((tFb(d, j.c.length), RD(j.c[d], 65)).a, new rjd(g.e.a, m)); + } else if (b == zmd) { + f = Kfb(UD(mQb(g, e$c))) + c; + m = g.e.b + g.f.b * e; + Nub((tFb(d, j.c.length), RD(j.c[d], 65)).a, new rjd(f, m)); + Nub((tFb(d, j.c.length), RD(j.c[d], 65)).a, new rjd(g.e.a + g.f.a, m)); + } else if (b == Bmd) { + f = Kfb(UD(mQb(g, f$c))); + l = g.e.a + g.f.a * e; + Nub((tFb(d, j.c.length), RD(j.c[d], 65)).a, new rjd(l, $wnd.Math.min(g.e.b - c, f))); + Nub((tFb(d, j.c.length), RD(j.c[d], 65)).a, new rjd(l, g.e.b)); + } else { + f = Kfb(UD(mQb(g, e$c))) + c; + l = g.e.a + g.f.a * e; + Nub((tFb(d, j.c.length), RD(j.c[d], 65)).a, new rjd(l, f)); + Nub((tFb(d, j.c.length), RD(j.c[d], 65)).a, new rjd(l, g.e.b + g.f.b)); + } + } + } + } + function f2b(a, b, c, d, e, f, g, h, i) { + var j, k, l, m, n, o2, p; + n = c; + k = new j3b(i); + h3b(k, (r3b(), m3b)); + pQb(k, (Ywc(), iwc), g); + pQb(k, (yCc(), BBc), (Bod(), wod)); + p = Kfb(UD(a.of(ABc))); + pQb(k, ABc, p); + l = new R3b(); + P3b(l, k); + if (!(b != zod && b != Aod)) { + d >= 0 ? n = vpd(h) : n = spd(vpd(h)); + a.qf(GBc, n); + } + j = new pjd(); + m = false; + if (a.pf(zBc)) { + mjd(j, RD(a.of(zBc), 8)); + m = true; + } else { + ljd(j, g.a / 2, g.b / 2); + } + switch (n.g) { + case 4: + pQb(k, UAc, (cxc(), $wc)); + pQb(k, bwc, (huc(), guc)); + k.o.b = g.b; + p < 0 && (k.o.a = -p); + Q3b(l, (qpd(), Xod)); + m || (j.a = g.a); + j.a -= g.a; + break; + case 2: + pQb(k, UAc, (cxc(), axc)); + pQb(k, bwc, (huc(), euc)); + k.o.b = g.b; + p < 0 && (k.o.a = -p); + Q3b(l, (qpd(), ppd)); + m || (j.a = 0); + break; + case 1: + pQb(k, owc, (Gvc(), Fvc)); + k.o.a = g.a; + p < 0 && (k.o.b = -p); + Q3b(l, (qpd(), npd)); + m || (j.b = g.b); + j.b -= g.b; + break; + case 3: + pQb(k, owc, (Gvc(), Dvc)); + k.o.a = g.a; + p < 0 && (k.o.b = -p); + Q3b(l, (qpd(), Yod)); + m || (j.b = 0); + } + mjd(l.n, j); + pQb(k, zBc, j); + if (b == vod || b == xod || b == wod) { + o2 = 0; + if (b == vod && a.pf(CBc)) { + switch (n.g) { + case 1: + case 2: + o2 = RD(a.of(CBc), 17).a; + break; + case 3: + case 4: + o2 = -RD(a.of(CBc), 17).a; + } + } else { + switch (n.g) { + case 4: + case 2: + o2 = f.b; + b == xod && (o2 /= e.b); + break; + case 1: + case 3: + o2 = f.a; + b == xod && (o2 /= e.a); + } + } + pQb(k, Jwc, o2); + } + pQb(k, hwc, n); + return k; + } + function OId() { + MId(); + function h(f) { + var g = this; + this.dispatch = function(a) { + var b = a.data; + switch (b.cmd) { + case "algorithms": + var c = PId((yob(), new xpb(new glb(LId.b)))); + f.postMessage({ id: b.id, data: c }); + break; + case "categories": + var d = PId((yob(), new xpb(new glb(LId.c)))); + f.postMessage({ id: b.id, data: d }); + break; + case "options": + var e = PId((yob(), new xpb(new glb(LId.d)))); + f.postMessage({ id: b.id, data: e }); + break; + case "register": + SId(b.algorithms); + f.postMessage({ id: b.id }); + break; + case "layout": + QId(b.graph, b.layoutOptions || {}, b.options || {}); + f.postMessage({ id: b.id, data: b.graph }); + break; + } + }; + this.saveDispatch = function(b) { + try { + g.dispatch(b); + } catch (a) { + f.postMessage({ id: b.data.id, error: a }); + } + }; + } + function j(b) { + var c = this; + this.dispatcher = new h({ postMessage: function(a) { + c.onmessage({ data: a }); + } }); + this.postMessage = function(a) { + setTimeout(function() { + c.dispatcher.saveDispatch({ data: a }); + }, 0); + }; + } + if (typeof document === Yxe && typeof self !== Yxe) { + var i = new h(self); + self.onmessage = i.saveDispatch; + } else if (typeof module2 !== Yxe && module2.exports) { + Object.defineProperty(exports2, "__esModule", { value: true }); + module2.exports = { "default": j, Worker: j }; + } + } + function i5b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + k = new j3b(c); + kQb(k, b); + pQb(k, (Ywc(), Awc), b); + k.o.a = b.g; + k.o.b = b.f; + k.n.a = b.i; + k.n.b = b.j; + Rmb(c.a, k); + Zjb(a.a, b, k); + ((!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a).i != 0 || Heb(TD(Gxd(b, (yCc(), NAc))))) && pQb(k, Yvc, (Geb(), true)); + j = RD(mQb(c, kwc), 21); + l = RD(mQb(k, (yCc(), BBc)), 101); + l == (Bod(), Aod) ? pQb(k, BBc, zod) : l != zod && j.Fc((ovc(), kvc)); + m = 0; + d = RD(mQb(c, rAc), 88); + for (i = new dMd((!b.c && (b.c = new C5d(K4, b, 9, 9)), b.c)); i.e != i.i.gc(); ) { + h = RD(bMd(i), 123); + e = vCd(b); + (dE(Gxd(e, cAc)) !== dE((kEc(), hEc)) || dE(Gxd(e, pAc)) === dE((Ptc(), Otc)) || dE(Gxd(e, pAc)) === dE((Ptc(), Mtc)) || Heb(TD(Gxd(e, eAc))) || dE(Gxd(e, Yzc)) !== dE((U$b(), T$b)) || dE(Gxd(e, ZAc)) === dE((aEc(), TDc)) || dE(Gxd(e, ZAc)) === dE((aEc(), UDc)) || dE(Gxd(e, $Ac)) === dE((_Cc(), SCc)) || dE(Gxd(e, $Ac)) === dE((_Cc(), UCc))) && !Heb(TD(Gxd(b, aAc))) && Ixd(h, zwc, sgb(m++)); + Heb(TD(Gxd(h, pBc))) || j5b(a, h, k, j, d, l); + } + for (g = new dMd((!b.n && (b.n = new C5d(I4, b, 1, 7)), b.n)); g.e != g.i.gc(); ) { + f = RD(bMd(g), 135); + !Heb(TD(Gxd(f, pBc))) && !!f.a && Rmb(k.b, h5b(f)); + } + Heb(TD(mQb(k, Uzc))) && j.Fc((ovc(), fvc)); + if (Heb(TD(mQb(k, MAc)))) { + j.Fc((ovc(), jvc)); + j.Fc(ivc); + pQb(k, BBc, zod); + } + return k; + } + function ird(a, b, c, d, e, f, g) { + var h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I; + p = 0; + D = 0; + for (j = new Anb(a.b); j.a < j.c.c.length; ) { + i = RD(ynb(j), 163); + !!i.c && Dsd(i.c); + p = $wnd.Math.max(p, urd(i)); + D += urd(i) * trd(i); + } + q = D / a.b.c.length; + C = brd(a.b, q); + D += a.b.c.length * C; + p = $wnd.Math.max(p, $wnd.Math.sqrt(D * g)) + c.b; + H = c.b; + I = c.d; + n = 0; + l = c.b + c.c; + B = new Yub(); + Mub(B, sgb(0)); + w = new Yub(); + k = new Jkb(a.b, 0); + o2 = null; + h = new bnb(); + while (k.b < k.d.gc()) { + i = (sFb(k.b < k.d.gc()), RD(k.d.Xb(k.c = k.b++), 163)); + G = urd(i); + m = trd(i); + if (H + G > p) { + if (f) { + Oub(w, n); + Oub(B, sgb(k.b - 1)); + Rmb(a.d, o2); + h.c.length = 0; + } + H = c.b; + I += n + b; + n = 0; + l = $wnd.Math.max(l, c.b + c.c + G); + } + ZEb(h.c, i); + xrd(i, H, I); + l = $wnd.Math.max(l, H + G + c.c); + n = $wnd.Math.max(n, m); + H += G + b; + o2 = i; + } + Tmb(a.a, h); + Rmb(a.d, RD(Vmb(h, h.c.length - 1), 163)); + l = $wnd.Math.max(l, d); + F = I + n + c.a; + if (F < e) { + n += e - F; + F = e; + } + if (f) { + H = c.b; + k = new Jkb(a.b, 0); + Oub(B, sgb(a.b.c.length)); + A = Sub(B, 0); + s = RD(evb(A), 17).a; + Oub(w, n); + v = Sub(w, 0); + u = 0; + while (k.b < k.d.gc()) { + if (k.b == s) { + H = c.b; + u = Kfb(UD(evb(v))); + s = RD(evb(A), 17).a; + } + i = (sFb(k.b < k.d.gc()), RD(k.d.Xb(k.c = k.b++), 163)); + vrd(i, u); + if (k.b == s) { + r = l - H - c.c; + t = urd(i); + wrd(i, r); + yrd(i, (r - t) / 2, 0); + } + H += urd(i) + b; + } + } + return new rjd(l, F); + } + function zne(a) { + if (a.N) + return; + a.N = true; + a.b = jBd(a, 0); + iBd(a.b, 0); + iBd(a.b, 1); + iBd(a.b, 2); + a.bb = jBd(a, 1); + iBd(a.bb, 0); + iBd(a.bb, 1); + a.fb = jBd(a, 2); + iBd(a.fb, 3); + iBd(a.fb, 4); + oBd(a.fb, 5); + a.qb = jBd(a, 3); + iBd(a.qb, 0); + oBd(a.qb, 1); + oBd(a.qb, 2); + iBd(a.qb, 3); + iBd(a.qb, 4); + oBd(a.qb, 5); + iBd(a.qb, 6); + a.a = kBd(a, 4); + a.c = kBd(a, 5); + a.d = kBd(a, 6); + a.e = kBd(a, 7); + a.f = kBd(a, 8); + a.g = kBd(a, 9); + a.i = kBd(a, 10); + a.j = kBd(a, 11); + a.k = kBd(a, 12); + a.n = kBd(a, 13); + a.o = kBd(a, 14); + a.p = kBd(a, 15); + a.q = kBd(a, 16); + a.s = kBd(a, 17); + a.r = kBd(a, 18); + a.t = kBd(a, 19); + a.u = kBd(a, 20); + a.v = kBd(a, 21); + a.w = kBd(a, 22); + a.B = kBd(a, 23); + a.A = kBd(a, 24); + a.C = kBd(a, 25); + a.D = kBd(a, 26); + a.F = kBd(a, 27); + a.G = kBd(a, 28); + a.H = kBd(a, 29); + a.J = kBd(a, 30); + a.I = kBd(a, 31); + a.K = kBd(a, 32); + a.M = kBd(a, 33); + a.L = kBd(a, 34); + a.P = kBd(a, 35); + a.Q = kBd(a, 36); + a.R = kBd(a, 37); + a.S = kBd(a, 38); + a.T = kBd(a, 39); + a.U = kBd(a, 40); + a.V = kBd(a, 41); + a.X = kBd(a, 42); + a.W = kBd(a, 43); + a.Y = kBd(a, 44); + a.Z = kBd(a, 45); + a.$ = kBd(a, 46); + a._ = kBd(a, 47); + a.ab = kBd(a, 48); + a.cb = kBd(a, 49); + a.db = kBd(a, 50); + a.eb = kBd(a, 51); + a.gb = kBd(a, 52); + a.hb = kBd(a, 53); + a.ib = kBd(a, 54); + a.jb = kBd(a, 55); + a.kb = kBd(a, 56); + a.lb = kBd(a, 57); + a.mb = kBd(a, 58); + a.nb = kBd(a, 59); + a.ob = kBd(a, 60); + a.pb = kBd(a, 61); + } + function w8b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + s = 0; + if (b.f.a == 0) { + for (q = new Anb(a); q.a < q.c.c.length; ) { + o2 = RD(ynb(q), 10); + s = $wnd.Math.max(s, o2.n.a + o2.o.a + o2.d.c); + } + } else { + s = b.f.a - b.c.a; + } + s -= b.c.a; + for (p = new Anb(a); p.a < p.c.c.length; ) { + o2 = RD(ynb(p), 10); + x8b(o2.n, s - o2.o.a); + y8b(o2.f); + u8b(o2); + (!o2.q ? (yob(), yob(), wob) : o2.q)._b((yCc(), IBc)) && x8b(RD(mQb(o2, IBc), 8), s - o2.o.a); + switch (RD(mQb(o2, Rzc), 255).g) { + case 1: + pQb(o2, Rzc, (Rjd(), Pjd)); + break; + case 2: + pQb(o2, Rzc, (Rjd(), Ojd)); + } + r = o2.o; + for (u = new Anb(o2.j); u.a < u.c.c.length; ) { + t = RD(ynb(u), 12); + x8b(t.n, r.a - t.o.a); + x8b(t.a, t.o.a); + Q3b(t, o8b(t.j)); + g = RD(mQb(t, CBc), 17); + !!g && pQb(t, CBc, sgb(-g.a)); + for (f = new Anb(t.g); f.a < f.c.c.length; ) { + e = RD(ynb(f), 18); + for (d = Sub(e.a, 0); d.b != d.d.c; ) { + c = RD(evb(d), 8); + c.a = s - c.a; + } + j = RD(mQb(e, RAc), 75); + if (j) { + for (i = Sub(j, 0); i.b != i.d.c; ) { + h = RD(evb(i), 8); + h.a = s - h.a; + } + } + for (m = new Anb(e.b); m.a < m.c.c.length; ) { + k = RD(ynb(m), 72); + x8b(k.n, s - k.o.a); + } + } + for (n = new Anb(t.f); n.a < n.c.c.length; ) { + k = RD(ynb(n), 72); + x8b(k.n, t.o.a - k.o.a); + } + } + if (o2.k == (r3b(), m3b)) { + pQb(o2, (Ywc(), hwc), o8b(RD(mQb(o2, hwc), 64))); + t8b(o2); + } + for (l = new Anb(o2.b); l.a < l.c.c.length; ) { + k = RD(ynb(l), 72); + u8b(k); + x8b(k.n, r.a - k.o.a); + } + } + } + function z8b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + s = 0; + if (b.f.b == 0) { + for (q = new Anb(a); q.a < q.c.c.length; ) { + o2 = RD(ynb(q), 10); + s = $wnd.Math.max(s, o2.n.b + o2.o.b + o2.d.a); + } + } else { + s = b.f.b - b.c.b; + } + s -= b.c.b; + for (p = new Anb(a); p.a < p.c.c.length; ) { + o2 = RD(ynb(p), 10); + A8b(o2.n, s - o2.o.b); + B8b(o2.f); + v8b(o2); + (!o2.q ? (yob(), yob(), wob) : o2.q)._b((yCc(), IBc)) && A8b(RD(mQb(o2, IBc), 8), s - o2.o.b); + switch (RD(mQb(o2, Rzc), 255).g) { + case 3: + pQb(o2, Rzc, (Rjd(), Mjd)); + break; + case 4: + pQb(o2, Rzc, (Rjd(), Qjd)); + } + r = o2.o; + for (u = new Anb(o2.j); u.a < u.c.c.length; ) { + t = RD(ynb(u), 12); + A8b(t.n, r.b - t.o.b); + A8b(t.a, t.o.b); + Q3b(t, p8b(t.j)); + g = RD(mQb(t, CBc), 17); + !!g && pQb(t, CBc, sgb(-g.a)); + for (f = new Anb(t.g); f.a < f.c.c.length; ) { + e = RD(ynb(f), 18); + for (d = Sub(e.a, 0); d.b != d.d.c; ) { + c = RD(evb(d), 8); + c.b = s - c.b; + } + j = RD(mQb(e, RAc), 75); + if (j) { + for (i = Sub(j, 0); i.b != i.d.c; ) { + h = RD(evb(i), 8); + h.b = s - h.b; + } + } + for (m = new Anb(e.b); m.a < m.c.c.length; ) { + k = RD(ynb(m), 72); + A8b(k.n, s - k.o.b); + } + } + for (n = new Anb(t.f); n.a < n.c.c.length; ) { + k = RD(ynb(n), 72); + A8b(k.n, t.o.b - k.o.b); + } + } + if (o2.k == (r3b(), m3b)) { + pQb(o2, (Ywc(), hwc), p8b(RD(mQb(o2, hwc), 64))); + s8b(o2); + } + for (l = new Anb(o2.b); l.a < l.c.c.length; ) { + k = RD(ynb(l), 72); + v8b(k); + A8b(k.n, r.b - k.o.b); + } + } + } + function Drc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H; + s = new Jkb(a.b, 0); + k = b.Kc(); + o2 = 0; + j = RD(k.Pb(), 17).a; + v = 0; + c = new _sb(); + A = new Iub(); + while (s.b < s.d.gc()) { + r = (sFb(s.b < s.d.gc()), RD(s.d.Xb(s.c = s.b++), 30)); + for (u = new Anb(r.a); u.a < u.c.c.length; ) { + t = RD(ynb(u), 10); + for (n = new is(Mr(a3b(t).a.Kc(), new ir())); gs(n); ) { + l = RD(hs(n), 18); + A.a.zc(l, A); + } + for (m = new is(Mr(Z2b(t).a.Kc(), new ir())); gs(m); ) { + l = RD(hs(m), 18); + A.a.Bc(l) != null; + } + } + if (o2 + 1 == j) { + e = new R4b(a); + Ikb(s, e); + f = new R4b(a); + Ikb(s, f); + for (C = A.a.ec().Kc(); C.Ob(); ) { + B = RD(C.Pb(), 18); + if (!c.a._b(B)) { + ++v; + c.a.zc(B, c); + } + g = new j3b(a); + pQb(g, (yCc(), BBc), (Bod(), yod)); + g3b(g, e); + h3b(g, (r3b(), l3b)); + p = new R3b(); + P3b(p, g); + Q3b(p, (qpd(), ppd)); + D = new R3b(); + P3b(D, g); + Q3b(D, Xod); + d = new j3b(a); + pQb(d, BBc, yod); + g3b(d, f); + h3b(d, l3b); + q = new R3b(); + P3b(q, d); + Q3b(q, ppd); + F = new R3b(); + P3b(F, d); + Q3b(F, Xod); + w = new a1b(); + Y0b(w, B.c); + Z0b(w, p); + pQb(w, (Ywc(), zwc), RD(mQb(B, zwc), 17)); + H = new a1b(); + Y0b(H, D); + Z0b(H, q); + pQb(H, zwc, RD(mQb(B, zwc), 17)); + Y0b(B, F); + h = new Jrc(g, d, w, H, B); + pQb(g, Wvc, h); + pQb(d, Wvc, h); + G = w.c.i; + if (G.k == l3b) { + i = RD(mQb(G, Wvc), 313); + i.d = h; + h.g = i; + } + } + if (k.Ob()) { + j = RD(k.Pb(), 17).a; + } else { + break; + } + } + ++o2; + } + return sgb(v); + } + function rkc(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + p = new bnb(); + for (m = new Anb(a.d.b); m.a < m.c.c.length; ) { + l = RD(ynb(m), 30); + for (o2 = new Anb(l.a); o2.a < o2.c.c.length; ) { + n = RD(ynb(o2), 10); + e = RD(Wjb(a.f, n), 60); + for (i = new is(Mr(a3b(n).a.Kc(), new ir())); gs(i); ) { + g = RD(hs(i), 18); + d = Sub(g.a, 0); + j = true; + k = null; + if (d.b != d.d.c) { + b = RD(evb(d), 8); + c = null; + if (g.c.j == (qpd(), Yod)) { + q = new Nlc(b, new rjd(b.a, e.d.d), e, g); + q.f.a = true; + q.a = g.c; + ZEb(p.c, q); + } + if (g.c.j == npd) { + q = new Nlc(b, new rjd(b.a, e.d.d + e.d.a), e, g); + q.f.d = true; + q.a = g.c; + ZEb(p.c, q); + } + while (d.b != d.d.c) { + c = RD(evb(d), 8); + if (!rGb(b.b, c.b)) { + k = new Nlc(b, c, null, g); + ZEb(p.c, k); + if (j) { + j = false; + if (c.b < e.d.d) { + k.f.a = true; + } else if (c.b > e.d.d + e.d.a) { + k.f.d = true; + } else { + k.f.d = true; + k.f.a = true; + } + } + } + d.b != d.d.c && (b = c); + } + if (k) { + f = RD(Wjb(a.f, g.d.i), 60); + if (b.b < f.d.d) { + k.f.a = true; + } else if (b.b > f.d.d + f.d.a) { + k.f.d = true; + } else { + k.f.d = true; + k.f.a = true; + } + } + } + } + for (h = new is(Mr(Z2b(n).a.Kc(), new ir())); gs(h); ) { + g = RD(hs(h), 18); + if (g.a.b != 0) { + b = RD(Rub(g.a), 8); + if (g.d.j == (qpd(), Yod)) { + q = new Nlc(b, new rjd(b.a, e.d.d), e, g); + q.f.a = true; + q.a = g.d; + ZEb(p.c, q); + } + if (g.d.j == npd) { + q = new Nlc(b, new rjd(b.a, e.d.d + e.d.a), e, g); + q.f.d = true; + q.a = g.d; + ZEb(p.c, q); + } + } + } + } + } + return p; + } + function Nvd(a, b, c) { + var d, e, f, g, h, i, j, k, l, m; + i = new bnb(); + l = b.length; + g = $5d(c); + for (j = 0; j < l; ++j) { + k = rhb(b, Fhb(61), j); + d = wvd(g, (AFb(j, k, b.length), b.substr(j, k - j))); + e = iXd(d); + f = e.jk().wi(); + switch (ihb(b, ++k)) { + case 39: { + h = phb(b, 39, ++k); + Rmb(i, new KTd(d, lwd((AFb(k, h, b.length), b.substr(k, h - k)), f, e))); + j = h + 1; + break; + } + case 34: { + h = phb(b, 34, ++k); + Rmb(i, new KTd(d, lwd((AFb(k, h, b.length), b.substr(k, h - k)), f, e))); + j = h + 1; + break; + } + case 91: { + m = new bnb(); + Rmb(i, new KTd(d, m)); + n: + for (; ; ) { + switch (ihb(b, ++k)) { + case 39: { + h = phb(b, 39, ++k); + Rmb(m, lwd((AFb(k, h, b.length), b.substr(k, h - k)), f, e)); + k = h + 1; + break; + } + case 34: { + h = phb(b, 34, ++k); + Rmb(m, lwd((AFb(k, h, b.length), b.substr(k, h - k)), f, e)); + k = h + 1; + break; + } + case 110: { + ++k; + if (b.indexOf("ull", k) == k) { + m.c.push(null); + } else { + throw Adb(new yz(MHe)); + } + k += 3; + break; + } + } + if (k < l) { + switch (BFb(k, b.length), b.charCodeAt(k)) { + case 44: { + break; + } + case 93: { + break n; + } + default: { + throw Adb(new yz("Expecting , or ]")); + } + } + } else { + break; + } + } + j = k + 1; + break; + } + case 110: { + ++k; + if (b.indexOf("ull", k) == k) { + Rmb(i, new KTd(d, null)); + } else { + throw Adb(new yz(MHe)); + } + j = k + 3; + break; + } + } + if (j < l) { + BFb(j, b.length); + if (b.charCodeAt(j) != 44) { + throw Adb(new yz("Expecting ,")); + } + } else { + break; + } + } + return Ovd(a, i, c); + } + function Oqe(a) { + var b, c, d, e, f; + b = a.c; + f = null; + switch (b) { + case 6: + return a.Em(); + case 13: + return a.Fm(); + case 23: + return a.wm(); + case 22: + return a.Bm(); + case 18: + return a.ym(); + case 8: + Mqe(a); + f = (Vse(), Dse); + break; + case 9: + return a.em(true); + case 19: + return a.fm(); + case 10: + switch (a.a) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + f = a.dm(a.a); + Mqe(a); + return f; + case 101: + case 102: + case 110: + case 114: + case 116: + case 117: + case 118: + case 120: + { + c = a.cm(); + c < txe ? f = (Vse(), Vse(), new Hte(0, c)) : f = cte(qse(c)); + } + break; + case 99: + return a.om(); + case 67: + return a.jm(); + case 105: + return a.rm(); + case 73: + return a.km(); + case 103: + return a.pm(); + case 88: + return a.lm(); + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + return a.gm(); + case 80: + case 112: + f = Sqe(a, a.a); + if (!f) + throw Adb(new Lqe(TId((Hde(), hJe)))); + break; + default: + f = Yse(a.a); + } + Mqe(a); + break; + case 0: + if (a.a == 93 || a.a == 123 || a.a == 125) + throw Adb(new Lqe(TId((Hde(), gJe)))); + f = Yse(a.a); + d = a.a; + Mqe(a); + if ((d & 64512) == uxe && a.c == 0 && (a.a & 64512) == 56320) { + e = $C(hE, zwe, 28, 2, 15, 1); + e[0] = d & Bwe; + e[1] = a.a & Bwe; + f = bte(cte(Ihb(e, 0, e.length)), 0); + Mqe(a); + } + break; + default: + throw Adb(new Lqe(TId((Hde(), gJe)))); + } + return f; + } + function WUc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F; + C = new Yub(); + w = new Yub(); + q = -1; + for (i = new Anb(a); i.a < i.c.c.length; ) { + g = RD(ynb(i), 131); + g.s = q--; + k = 0; + t = 0; + for (f = new Anb(g.t); f.a < f.c.c.length; ) { + d = RD(ynb(f), 274); + t += d.c; + } + for (e = new Anb(g.i); e.a < e.c.c.length; ) { + d = RD(ynb(e), 274); + k += d.c; + } + g.n = k; + g.u = t; + t == 0 ? (Pub(w, g, w.c.b, w.c), true) : k == 0 && (Pub(C, g, C.c.b, C.c), true); + } + F = Xx(a); + l = a.c.length; + p = l + 1; + r = l - 1; + n = new bnb(); + while (F.a.gc() != 0) { + while (w.b != 0) { + v = (sFb(w.b != 0), RD(Wub(w, w.a.a), 131)); + F.a.Bc(v) != null; + v.s = r--; + $Uc(v, C, w); + } + while (C.b != 0) { + A = (sFb(C.b != 0), RD(Wub(C, C.a.a), 131)); + F.a.Bc(A) != null; + A.s = p++; + $Uc(A, C, w); + } + o2 = qwe; + for (j = F.a.ec().Kc(); j.Ob(); ) { + g = RD(j.Pb(), 131); + s = g.u - g.n; + if (s >= o2) { + if (s > o2) { + n.c.length = 0; + o2 = s; + } + ZEb(n.c, g); + } + } + if (n.c.length != 0) { + m = RD(Vmb(n, Jwb(b, n.c.length)), 131); + F.a.Bc(m) != null; + m.s = p++; + $Uc(m, C, w); + n.c.length = 0; + } + } + u = a.c.length + 1; + for (h = new Anb(a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 131); + g.s < l && (g.s += u); + } + for (B = new Anb(a); B.a < B.c.c.length; ) { + A = RD(ynb(B), 131); + c = new Jkb(A.t, 0); + while (c.b < c.d.gc()) { + d = (sFb(c.b < c.d.gc()), RD(c.d.Xb(c.c = c.b++), 274)); + D = d.b; + if (A.s > D.s) { + Ckb(c); + Ymb(D.i, d); + if (d.c > 0) { + d.a = D; + Rmb(D.t, d); + d.b = A; + Rmb(A.i, d); + } + } + } + } + } + function Efc(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F; + p = new cnb(b.b); + u = new cnb(b.b); + m = new cnb(b.b); + B = new cnb(b.b); + q = new cnb(b.b); + for (A = Sub(b, 0); A.b != A.d.c; ) { + v = RD(evb(A), 12); + for (h = new Anb(v.g); h.a < h.c.c.length; ) { + f = RD(ynb(h), 18); + if (f.c.i == f.d.i) { + if (v.j == f.d.j) { + ZEb(B.c, f); + continue; + } else if (v.j == (qpd(), Yod) && f.d.j == npd) { + ZEb(q.c, f); + continue; + } + } + } + } + for (i = new Anb(q); i.a < i.c.c.length; ) { + f = RD(ynb(i), 18); + Ffc(a, f, c, d, (qpd(), Xod)); + } + for (g = new Anb(B); g.a < g.c.c.length; ) { + f = RD(ynb(g), 18); + C = new j3b(a); + h3b(C, (r3b(), q3b)); + pQb(C, (yCc(), BBc), (Bod(), wod)); + pQb(C, (Ywc(), Awc), f); + D = new R3b(); + pQb(D, Awc, f.d); + Q3b(D, (qpd(), ppd)); + P3b(D, C); + F = new R3b(); + pQb(F, Awc, f.c); + Q3b(F, Xod); + P3b(F, C); + pQb(f.c, Iwc, C); + pQb(f.d, Iwc, C); + Y0b(f, null); + Z0b(f, null); + ZEb(c.c, C); + pQb(C, $vc, sgb(2)); + } + for (w = Sub(b, 0); w.b != w.d.c; ) { + v = RD(evb(w), 12); + j = v.e.c.length > 0; + r = v.g.c.length > 0; + j && r ? (ZEb(m.c, v), true) : j ? (ZEb(p.c, v), true) : r && (ZEb(u.c, v), true); + } + for (o2 = new Anb(p); o2.a < o2.c.c.length; ) { + n = RD(ynb(o2), 12); + Rmb(e, Dfc(a, n, null, c)); + } + for (t = new Anb(u); t.a < t.c.c.length; ) { + s = RD(ynb(t), 12); + Rmb(e, Dfc(a, null, s, c)); + } + for (l = new Anb(m); l.a < l.c.c.length; ) { + k = RD(ynb(l), 12); + Rmb(e, Dfc(a, k, k, c)); + } + } + function psd(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + m = oxe; + n = oxe; + k = 0; + l = 0; + i = new bnb(); + for (h = new dMd((!a.b && (a.b = new C5d(G4, a, 12, 3)), a.b)); h.e != h.i.gc(); ) { + f = RD(bMd(h), 74); + i = Al(cD(WC(cJ, 1), rve, 20, 0, [i, (!f.n && (f.n = new C5d(I4, f, 1, 7)), f.n)])); + } + for (t = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [(!a.n && (a.n = new C5d(I4, a, 1, 7)), a.n), (!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a), i]))); gs(t); ) { + s = RD(hs(t), 422); + j = RD(s.of((umd(), eld)), 140); + m > s.nh() - j.b && (m = s.nh() - j.b); + n > s.oh() - j.d && (n = s.oh() - j.d); + k < s.nh() + s.mh() + j.c && (k = s.nh() + s.mh() + j.c); + l < s.oh() + s.lh() + j.a && (l = s.oh() + s.lh() + j.a); + } + for (g = new dMd((!a.b && (a.b = new C5d(G4, a, 12, 3)), a.b)); g.e != g.i.gc(); ) { + f = RD(bMd(g), 74); + for (r = new dMd((!f.a && (f.a = new C5d(F4, f, 6, 6)), f.a)); r.e != r.i.gc(); ) { + q = RD(bMd(r), 166); + o2 = q.j; + d = q.b; + p = q.k; + e = q.c; + m = $wnd.Math.min(m, o2); + m = $wnd.Math.min(m, d); + k = $wnd.Math.max(k, o2); + k = $wnd.Math.max(k, d); + n = $wnd.Math.min(n, p); + n = $wnd.Math.min(n, e); + l = $wnd.Math.max(l, p); + l = $wnd.Math.max(l, e); + for (c = new dMd((!q.a && (q.a = new XZd(D4, q, 5)), q.a)); c.e != c.i.gc(); ) { + b = RD(bMd(c), 377); + m = $wnd.Math.min(m, b.a); + k = $wnd.Math.max(k, b.a); + n = $wnd.Math.min(n, b.b); + l = $wnd.Math.max(l, b.b); + } + } + } + Ixd(a, (umd(), Ikd), k - m); + Ixd(a, Hkd, l - n); + } + function uOc(a, b, c) { + var d, e, f, g, h, i, j, k, l; + c.Ug("Network simplex node placement", 1); + a.e = b; + a.n = RD(mQb(b, (Ywc(), Qwc)), 312); + tOc(a); + fOc(a); + FDb(EDb(new SDb(null, new Swb(a.e.b, 16)), new iPc()), new kPc(a)); + FDb(CDb(EDb(CDb(EDb(new SDb(null, new Swb(a.e.b, 16)), new ZPc()), new _Pc()), new bQc()), new dQc()), new gPc(a)); + if (Heb(TD(mQb(a.e, (yCc(), gBc))))) { + g = c.eh(1); + g.Ug("Straight Edges Pre-Processing", 1); + sOc(a); + g.Vg(); + } + AIb(a.f); + f = RD(mQb(b, gCc), 17).a * a.f.a.c.length; + lJb(yJb(zJb(CJb(a.f), f), false), c.eh(1)); + if (a.d.a.gc() != 0) { + g = c.eh(1); + g.Ug("Flexible Where Space Processing", 1); + h = RD(Lvb(KDb(GDb(new SDb(null, new Swb(a.f.a, 16)), new mPc()), new IOc())), 17).a; + i = RD(Lvb(JDb(GDb(new SDb(null, new Swb(a.f.a, 16)), new oPc()), new MOc())), 17).a; + j = i - h; + k = eJb(new gJb(), a.f); + l = eJb(new gJb(), a.f); + rIb(uIb(tIb(sIb(vIb(new wIb(), 2e4), j), k), l)); + FDb(CDb(CDb(_nb(a.i), new qPc()), new sPc()), new uPc(h, k, j, l)); + for (e = a.d.a.ec().Kc(); e.Ob(); ) { + d = RD(e.Pb(), 218); + d.g = 1; + } + lJb(yJb(zJb(CJb(a.f), f), false), g.eh(1)); + g.Vg(); + } + if (Heb(TD(mQb(b, gBc)))) { + g = c.eh(1); + g.Ug("Straight Edges Post-Processing", 1); + rOc(a); + g.Vg(); + } + eOc(a); + a.e = null; + a.f = null; + a.i = null; + a.c = null; + akb(a.k); + a.j = null; + a.a = null; + a.o = null; + a.d.a.$b(); + c.Vg(); + } + function XGc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + c.Ug("Depth first model order layering", 1); + a.d = b; + q = new bnb(); + for (p = new Anb(a.d.a); p.a < p.c.c.length; ) { + n = RD(ynb(p), 10); + n.k == (r3b(), p3b) && (ZEb(q.c, n), true); + } + yob(); + _mb(q, new aHc()); + g = true; + a.b = new R4b(a.d); + a.a = null; + Rmb(a.d.b, a.b); + a.b.p = 0; + a.c = 0; + a.f = new Yub(); + for (o2 = new Anb(q); o2.a < o2.c.c.length; ) { + n = RD(ynb(o2), 10); + if (g) { + g3b(n, a.b); + g = false; + } else { + if (VGc(a, n)) { + m = a.c; + m = UGc(m, n); + d = m + 2; + k = m - a.c; + if (a.f.b == 0) { + TGc(a, d, n); + } else { + if (k > 0) { + for (t = Sub(a.f, 0); t.b != t.d.c; ) { + s = RD(evb(t), 10); + s.p += m - a.e; + } + WGc(a); + Xub(a.f); + TGc(a, d, n); + } else { + Mub(a.f, n); + n.p = d; + a.e = $wnd.Math.max(a.e, d); + for (f = new is(Mr(Z2b(n).a.Kc(), new ir())); gs(f); ) { + e = RD(hs(f), 18); + if (!e.c.i.c && e.c.i.k == (r3b(), n3b)) { + Mub(a.f, e.c.i); + e.c.i.p = d - 1; + } + } + a.c = d; + } + } + } else { + WGc(a); + Xub(a.f); + d = 0; + if (gs(new is(Mr(Z2b(n).a.Kc(), new ir())))) { + m = 0; + m = UGc(m, n); + d = m + 2; + TGc(a, d, n); + } else { + Mub(a.f, n); + n.p = 0; + a.e = $wnd.Math.max(a.e, 0); + a.b = RD(Vmb(a.d.b, 0), 30); + a.c = 0; + } + } + } + } + a.f.b == 0 || WGc(a); + a.d.a.c.length = 0; + r = new bnb(); + for (j = new Anb(a.d.b); j.a < j.c.c.length; ) { + h = RD(ynb(j), 30); + h.a.c.length == 0 && (ZEb(r.c, h), true); + } + Ce(a.d.b, r); + l = 0; + for (i = new Anb(a.d.b); i.a < i.c.c.length; ) { + h = RD(ynb(i), 30); + h.p = l; + ++l; + } + c.Vg(); + } + function EEd(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K; + D = null; + G = b; + F = pEd(a, DGd(c), G); + jyd(F, zDd(G, uIe)); + H = RD(Ao(a.g, tDd(qC(G, bIe))), 27); + m = qC(G, "sourcePort"); + d = null; + !!m && (d = tDd(m)); + I = RD(Ao(a.j, d), 123); + if (!H) { + h = uDd(G); + o2 = "An edge must have a source node (edge id: '" + h; + p = o2 + zIe; + throw Adb(new CDd(p)); + } + if (!!I && !Hb(MCd(I), H)) { + i = zDd(G, uIe); + q = "The source port of an edge must be a port of the edge's source node (edge id: '" + i; + r = q + zIe; + throw Adb(new CDd(r)); + } + B = (!F.b && (F.b = new Yie(E4, F, 4, 7)), F.b); + f = null; + I ? f = I : f = H; + WGd(B, f); + J = RD(Ao(a.g, tDd(qC(G, CIe))), 27); + n = qC(G, "targetPort"); + e = null; + !!n && (e = tDd(n)); + K = RD(Ao(a.j, e), 123); + if (!J) { + l = uDd(G); + s = "An edge must have a target node (edge id: '" + l; + t = s + zIe; + throw Adb(new CDd(t)); + } + if (!!K && !Hb(MCd(K), J)) { + j = zDd(G, uIe); + u = "The target port of an edge must be a port of the edge's target node (edge id: '" + j; + v = u + zIe; + throw Adb(new CDd(v)); + } + C = (!F.c && (F.c = new Yie(E4, F, 5, 8)), F.c); + g = null; + K ? g = K : g = J; + WGd(C, g); + if ((!F.b && (F.b = new Yie(E4, F, 4, 7)), F.b).i == 0 || (!F.c && (F.c = new Yie(E4, F, 5, 8)), F.c).i == 0) { + k = zDd(G, uIe); + w = yIe + k; + A = w + zIe; + throw Adb(new CDd(A)); + } + GEd(G, F); + FEd(G, F); + D = CEd(a, G, F); + return D; + } + function JTb(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I; + n = RD(mQb(a, (JVb(), HVb)), 27); + t = lve; + u = lve; + r = qwe; + s = qwe; + for (w = new Anb(a.e); w.a < w.c.c.length; ) { + v = RD(ynb(w), 153); + F = v.d; + G = v.e; + t = $wnd.Math.min(t, F.a - G.a / 2); + u = $wnd.Math.min(u, F.b - G.b / 2); + r = $wnd.Math.max(r, F.a + G.a / 2); + s = $wnd.Math.max(s, F.b + G.b / 2); + } + for (c = new Anb(a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 250); + F = b.d; + G = b.e; + t = $wnd.Math.min(t, F.a - G.a / 2); + u = $wnd.Math.min(u, F.b - G.b / 2); + r = $wnd.Math.max(r, F.a + G.a / 2); + s = $wnd.Math.max(s, F.b + G.b / 2); + } + D = RD(Gxd(n, (yVb(), hVb)), 107); + C = new rjd(D.b - t, D.d - u); + for (j = new Anb(a.e); j.a < j.c.c.length; ) { + i = RD(ynb(j), 153); + B = mQb(i, HVb); + if (ZD(B, 207)) { + p = RD(B, 27); + A = $id(new sjd(i.d), C); + Byd(p, A.a - p.g / 2, A.b - p.f / 2); + } + } + for (f = new Anb(a.c); f.a < f.c.c.length; ) { + e = RD(ynb(f), 290); + l = RD(mQb(e, HVb), 74); + m = IGd(l, true, true); + H = new sjd(ZTb(e)); + $id(H, C); + Nzd(m, H.a, H.b); + Umb(e.a, new OTb(C, m)); + d = new sjd($Tb(e)); + $id(d, C); + Gzd(m, d.a, d.b); + } + for (h = new Anb(a.d); h.a < h.c.c.length; ) { + g = RD(ynb(h), 454); + o2 = RD(mQb(g, HVb), 135); + q = $id(new sjd(g.d), C); + Byd(o2, q.a, q.b); + } + I = r - t + (D.b + D.c); + k = s - u + (D.d + D.a); + Heb(TD(Gxd(n, (umd(), mld)))) || Esd(n, I, k, false, true); + Ixd(n, Ikd, I - (D.b + D.c)); + Ixd(n, Hkd, k - (D.d + D.a)); + } + function F$b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D; + l = H$b(B$b(a, (qpd(), bpd)), b); + o2 = G$b(B$b(a, cpd), b); + u = G$b(B$b(a, kpd), b); + B = I$b(B$b(a, mpd), b); + m = I$b(B$b(a, Zod), b); + s = G$b(B$b(a, jpd), b); + p = G$b(B$b(a, dpd), b); + w = G$b(B$b(a, lpd), b); + v = G$b(B$b(a, $od), b); + C = I$b(B$b(a, apd), b); + r = G$b(B$b(a, hpd), b); + t = G$b(B$b(a, gpd), b); + A = G$b(B$b(a, _od), b); + D = I$b(B$b(a, ipd), b); + n = I$b(B$b(a, epd), b); + q = G$b(B$b(a, fpd), b); + c = Hid(cD(WC(iE, 1), vxe, 28, 15, [s.a, B.a, w.a, D.a])); + d = Hid(cD(WC(iE, 1), vxe, 28, 15, [o2.a, l.a, u.a, q.a])); + e = r.a; + f = Hid(cD(WC(iE, 1), vxe, 28, 15, [p.a, m.a, v.a, n.a])); + j = Hid(cD(WC(iE, 1), vxe, 28, 15, [s.b, o2.b, p.b, t.b])); + i = Hid(cD(WC(iE, 1), vxe, 28, 15, [B.b, l.b, m.b, q.b])); + k = C.b; + h = Hid(cD(WC(iE, 1), vxe, 28, 15, [w.b, u.b, v.b, A.b])); + x$b(B$b(a, bpd), c + e, j + k); + x$b(B$b(a, fpd), c + e, j + k); + x$b(B$b(a, cpd), c + e, 0); + x$b(B$b(a, kpd), c + e, j + k + i); + x$b(B$b(a, mpd), 0, j + k); + x$b(B$b(a, Zod), c + e + d, j + k); + x$b(B$b(a, dpd), c + e + d, 0); + x$b(B$b(a, lpd), 0, j + k + i); + x$b(B$b(a, $od), c + e + d, j + k + i); + x$b(B$b(a, apd), 0, j); + x$b(B$b(a, hpd), c, 0); + x$b(B$b(a, _od), 0, j + k + i); + x$b(B$b(a, epd), c + e + d, 0); + g = new pjd(); + g.a = Hid(cD(WC(iE, 1), vxe, 28, 15, [c + d + e + f, C.a, t.a, A.a])); + g.b = Hid(cD(WC(iE, 1), vxe, 28, 15, [j + i + k + h, r.b, D.b, n.b])); + return g; + } + function EFb(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D; + s = new rjd(oxe, oxe); + b = new rjd(pxe, pxe); + for (B = new Anb(a); B.a < B.c.c.length; ) { + A = RD(ynb(B), 8); + s.a = $wnd.Math.min(s.a, A.a); + s.b = $wnd.Math.min(s.b, A.b); + b.a = $wnd.Math.max(b.a, A.a); + b.b = $wnd.Math.max(b.b, A.b); + } + m = new rjd(b.a - s.a, b.b - s.b); + j = new rjd(s.a - 50, s.b - m.a - 50); + k = new rjd(s.a - 50, b.b + m.a + 50); + l = new rjd(b.a + m.b / 2 + 50, s.b + m.b / 2); + n = new XFb(j, k, l); + w = new _sb(); + f = new bnb(); + c = new bnb(); + w.a.zc(n, w); + for (D = new Anb(a); D.a < D.c.c.length; ) { + C = RD(ynb(D), 8); + f.c.length = 0; + for (v = w.a.ec().Kc(); v.Ob(); ) { + t = RD(v.Pb(), 317); + d = t.d; + bjd(d, t.a); + $y(bjd(t.d, C), bjd(t.d, t.a)) < 0 && (ZEb(f.c, t), true); + } + c.c.length = 0; + for (u = new Anb(f); u.a < u.c.c.length; ) { + t = RD(ynb(u), 317); + for (q = new Anb(t.e); q.a < q.c.c.length; ) { + o2 = RD(ynb(q), 177); + g = true; + for (i = new Anb(f); i.a < i.c.c.length; ) { + h = RD(ynb(i), 317); + h != t && (Fvb(o2, Vmb(h.e, 0)) || Fvb(o2, Vmb(h.e, 1)) || Fvb(o2, Vmb(h.e, 2))) && (g = false); + } + g && (ZEb(c.c, o2), true); + } + } + Ve(w, f); + xgb(w, new FFb()); + for (p = new Anb(c); p.a < p.c.c.length; ) { + o2 = RD(ynb(p), 177); + Ysb(w, new XFb(C, o2.a, o2.b)); + } + } + r = new _sb(); + xgb(w, new HFb(r)); + e = r.a.ec().Kc(); + while (e.Ob()) { + o2 = RD(e.Pb(), 177); + (WFb(n, o2.a) || WFb(n, o2.b)) && e.Qb(); + } + xgb(r, new JFb()); + return r; + } + function pvd() { + pvd = geb; + dvd(); + ovd = cvd.a; + RD(QHd(xYd(cvd.a), 0), 19); + ivd = cvd.f; + RD(QHd(xYd(cvd.f), 0), 19); + RD(QHd(xYd(cvd.f), 1), 35); + nvd = cvd.n; + RD(QHd(xYd(cvd.n), 0), 35); + RD(QHd(xYd(cvd.n), 1), 35); + RD(QHd(xYd(cvd.n), 2), 35); + RD(QHd(xYd(cvd.n), 3), 35); + jvd = cvd.g; + RD(QHd(xYd(cvd.g), 0), 19); + RD(QHd(xYd(cvd.g), 1), 35); + fvd = cvd.c; + RD(QHd(xYd(cvd.c), 0), 19); + RD(QHd(xYd(cvd.c), 1), 19); + kvd = cvd.i; + RD(QHd(xYd(cvd.i), 0), 19); + RD(QHd(xYd(cvd.i), 1), 19); + RD(QHd(xYd(cvd.i), 2), 19); + RD(QHd(xYd(cvd.i), 3), 19); + RD(QHd(xYd(cvd.i), 4), 35); + lvd = cvd.j; + RD(QHd(xYd(cvd.j), 0), 19); + gvd = cvd.d; + RD(QHd(xYd(cvd.d), 0), 19); + RD(QHd(xYd(cvd.d), 1), 19); + RD(QHd(xYd(cvd.d), 2), 19); + RD(QHd(xYd(cvd.d), 3), 19); + RD(QHd(xYd(cvd.d), 4), 35); + RD(QHd(xYd(cvd.d), 5), 35); + RD(QHd(xYd(cvd.d), 6), 35); + RD(QHd(xYd(cvd.d), 7), 35); + evd = cvd.b; + RD(QHd(xYd(cvd.b), 0), 35); + RD(QHd(xYd(cvd.b), 1), 35); + hvd = cvd.e; + RD(QHd(xYd(cvd.e), 0), 35); + RD(QHd(xYd(cvd.e), 1), 35); + RD(QHd(xYd(cvd.e), 2), 35); + RD(QHd(xYd(cvd.e), 3), 35); + RD(QHd(xYd(cvd.e), 4), 19); + RD(QHd(xYd(cvd.e), 5), 19); + RD(QHd(xYd(cvd.e), 6), 19); + RD(QHd(xYd(cvd.e), 7), 19); + RD(QHd(xYd(cvd.e), 8), 19); + RD(QHd(xYd(cvd.e), 9), 19); + RD(QHd(xYd(cvd.e), 10), 35); + mvd = cvd.k; + RD(QHd(xYd(cvd.k), 0), 35); + RD(QHd(xYd(cvd.k), 1), 35); + } + function Pqe(a) { + var b, c, d, e, f; + b = a.c; + switch (b) { + case 11: + return a.vm(); + case 12: + return a.xm(); + case 14: + return a.zm(); + case 15: + return a.Cm(); + case 16: + return a.Am(); + case 17: + return a.Dm(); + case 21: + Mqe(a); + return Vse(), Vse(), Ese; + case 10: + switch (a.a) { + case 65: + return a.hm(); + case 90: + return a.mm(); + case 122: + return a.tm(); + case 98: + return a.nm(); + case 66: + return a.im(); + case 60: + return a.sm(); + case 62: + return a.qm(); + } + } + f = Oqe(a); + b = a.c; + switch (b) { + case 3: + return a.Im(f); + case 4: + return a.Gm(f); + case 5: + return a.Hm(f); + case 0: + if (a.a == 123 && a.d < a.j) { + e = a.d; + d = 0; + c = -1; + if ((b = ihb(a.i, e++)) >= 48 && b <= 57) { + d = b - 48; + while (e < a.j && (b = ihb(a.i, e++)) >= 48 && b <= 57) { + d = d * 10 + b - 48; + if (d < 0) + throw Adb(new Lqe(TId((Hde(), CJe)))); + } + } else { + throw Adb(new Lqe(TId((Hde(), yJe)))); + } + c = d; + if (b == 44) { + if (e >= a.j) { + throw Adb(new Lqe(TId((Hde(), AJe)))); + } else if ((b = ihb(a.i, e++)) >= 48 && b <= 57) { + c = b - 48; + while (e < a.j && (b = ihb(a.i, e++)) >= 48 && b <= 57) { + c = c * 10 + b - 48; + if (c < 0) + throw Adb(new Lqe(TId((Hde(), CJe)))); + } + if (d > c) + throw Adb(new Lqe(TId((Hde(), BJe)))); + } else { + c = -1; + } + } + if (b != 125) + throw Adb(new Lqe(TId((Hde(), zJe)))); + if (a.bm(e)) { + f = (Vse(), Vse(), new Kte(9, f)); + a.d = e + 1; + } else { + f = (Vse(), Vse(), new Kte(3, f)); + a.d = e; + } + f.Om(d); + f.Nm(c); + Mqe(a); + } + } + return f; + } + function bXb(a) { + var b, c, d, e, f; + c = RD(mQb(a, (Ywc(), kwc)), 21); + b = vfd(YWb); + e = RD(mQb(a, (yCc(), IAc)), 346); + e == (Fnd(), Cnd) && ofd(b, ZWb); + Heb(TD(mQb(a, GAc))) ? pfd(b, (sXb(), nXb), (hcc(), Zbc)) : pfd(b, (sXb(), pXb), (hcc(), Zbc)); + mQb(a, (rid(), qid)) != null && ofd(b, $Wb); + (Heb(TD(mQb(a, PAc))) || Heb(TD(mQb(a, HAc)))) && nfd(b, (sXb(), rXb), (hcc(), lbc)); + switch (RD(mQb(a, rAc), 88).g) { + case 2: + case 3: + case 4: + nfd(pfd(b, (sXb(), nXb), (hcc(), nbc)), rXb, mbc); + } + c.Hc((ovc(), fvc)) && nfd(pfd(pfd(b, (sXb(), nXb), (hcc(), kbc)), qXb, ibc), rXb, jbc); + dE(mQb(a, ZAc)) !== dE((aEc(), $Dc)) && pfd(b, (sXb(), pXb), (hcc(), Rbc)); + if (c.Hc(mvc)) { + pfd(b, (sXb(), nXb), (hcc(), Xbc)); + pfd(b, oXb, Vbc); + pfd(b, pXb, Wbc); + } + dE(mQb(a, Xzc)) !== dE(($uc(), Yuc)) && dE(mQb(a, yAc)) !== dE((Ymd(), Vmd)) && nfd(b, (sXb(), rXb), (hcc(), Abc)); + Heb(TD(mQb(a, KAc))) && pfd(b, (sXb(), pXb), (hcc(), zbc)); + Heb(TD(mQb(a, nAc))) && pfd(b, (sXb(), pXb), (hcc(), dcc)); + if (eXb(a)) { + dE(mQb(a, IAc)) === dE(Cnd) ? d = RD(mQb(a, gAc), 299) : d = RD(mQb(a, hAc), 299); + f = d == (xvc(), vvc) ? (hcc(), Ubc) : (hcc(), gcc); + pfd(b, (sXb(), qXb), f); + } + switch (RD(mQb(a, vCc), 388).g) { + case 1: + pfd(b, (sXb(), qXb), (hcc(), ecc)); + break; + case 2: + nfd(pfd(pfd(b, (sXb(), pXb), (hcc(), ebc)), qXb, fbc), rXb, gbc); + } + dE(mQb(a, cAc)) !== dE((kEc(), hEc)) && pfd(b, (sXb(), pXb), (hcc(), fcc)); + return b; + } + function crc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + if (Ujb(a.a, b)) { + if (Zsb(RD(Wjb(a.a, b), 49), c)) { + return 1; + } + } else { + Zjb(a.a, b, new _sb()); + } + if (Ujb(a.a, c)) { + if (Zsb(RD(Wjb(a.a, c), 49), b)) { + return -1; + } + } else { + Zjb(a.a, c, new _sb()); + } + if (Ujb(a.e, b)) { + if (Zsb(RD(Wjb(a.e, b), 49), c)) { + return -1; + } + } else { + Zjb(a.e, b, new _sb()); + } + if (Ujb(a.e, c)) { + if (Zsb(RD(Wjb(a.a, c), 49), b)) { + return 1; + } + } else { + Zjb(a.e, c, new _sb()); + } + if (a.c == (kEc(), iEc) || !nQb(b, (Ywc(), zwc)) || !nQb(c, (Ywc(), zwc))) { + l = null; + for (j = new Anb(b.j); j.a < j.c.c.length; ) { + h = RD(ynb(j), 12); + h.e.c.length == 0 || RD(Vmb(h.e, 0), 18).c.i.c != b.c && (l = RD(Vmb(h.e, 0), 18).c); + } + n = null; + for (i = new Anb(c.j); i.a < i.c.c.length; ) { + h = RD(ynb(i), 12); + h.e.c.length == 0 || RD(Vmb(h.e, 0), 18).c.i.c != c.c && (n = RD(Vmb(h.e, 0), 18).c); + } + if (!!l && !!n) { + k = l.i; + m = n.i; + if (!!k && k == m) { + for (p = new Anb(k.j); p.a < p.c.c.length; ) { + o2 = RD(ynb(p), 12); + if (o2 == l) { + erc(a, c, b); + return -1; + } else if (o2 == n) { + erc(a, b, c); + return 1; + } + } + return hgb(drc(a, b), drc(a, c)); + } + for (r = a.d, s = 0, t = r.length; s < t; ++s) { + q = r[s]; + if (q == k) { + erc(a, c, b); + return -1; + } else if (q == m) { + erc(a, b, c); + return 1; + } + } + } + if (!nQb(b, (Ywc(), zwc)) || !nQb(c, zwc)) { + e = drc(a, b); + g = drc(a, c); + e > g ? erc(a, b, c) : erc(a, c, b); + return e < g ? -1 : e > g ? 1 : 0; + } + } + d = RD(mQb(b, (Ywc(), zwc)), 17).a; + f = RD(mQb(c, zwc), 17).a; + d > f ? erc(a, b, c) : erc(a, c, b); + return d < f ? -1 : d > f ? 1 : 0; + } + function uAd(b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q, r; + if (d == null) { + return null; + } + if (b.a != c.jk()) { + throw Adb(new agb(VHe + c.xe() + WHe)); + } + if (ZD(c, 469)) { + r = z1d(RD(c, 685), d); + if (!r) { + throw Adb(new agb(XHe + d + "' is not a valid enumerator of '" + c.xe() + "'")); + } + return r; + } + switch (Oee((lke(), jke), c).Nl()) { + case 2: { + d = nue(d, false); + break; + } + case 3: { + d = nue(d, true); + break; + } + } + e = Oee(jke, c).Jl(); + if (e) { + return e.jk().wi().ti(e, d); + } + n = Oee(jke, c).Ll(); + if (n) { + r = new bnb(); + for (k = xAd(d), l = 0, m = k.length; l < m; ++l) { + j = k[l]; + Rmb(r, n.jk().wi().ti(n, j)); + } + return r; + } + q = Oee(jke, c).Ml(); + if (!q.dc()) { + for (p = q.Kc(); p.Ob(); ) { + o2 = RD(p.Pb(), 156); + try { + r = o2.jk().wi().ti(o2, d); + if (r != null) { + return r; + } + } catch (a) { + a = zdb(a); + if (!ZD(a, 63)) + throw Adb(a); + } + } + throw Adb(new agb(XHe + d + "' does not match any member types of the union datatype '" + c.xe() + "'")); + } + RD(c, 847).ok(); + f = Qje(c.kk()); + if (!f) + return null; + if (f == SI) { + h = 0; + try { + h = Oeb(d, qwe, lve) & Bwe; + } catch (a) { + a = zdb(a); + if (ZD(a, 130)) { + g = Ahb(d); + h = g[0]; + } else + throw Adb(a); + } + return hfb(h); + } + if (f == qK) { + for (i = 0; i < nAd.length; ++i) { + try { + return b2d(nAd[i], d); + } catch (a) { + a = zdb(a); + if (!ZD(a, 33)) + throw Adb(a); + } + } + throw Adb(new agb(XHe + d + "' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof")); + } + throw Adb(new agb(XHe + d + "' is invalid. ")); + } + function z$b() { + z$b = geb; + y$b = new Tp(); + Rc(y$b, (qpd(), bpd), fpd); + Rc(y$b, mpd, fpd); + Rc(y$b, mpd, ipd); + Rc(y$b, Zod, epd); + Rc(y$b, Zod, fpd); + Rc(y$b, cpd, fpd); + Rc(y$b, cpd, gpd); + Rc(y$b, kpd, _od); + Rc(y$b, kpd, fpd); + Rc(y$b, hpd, apd); + Rc(y$b, hpd, fpd); + Rc(y$b, hpd, gpd); + Rc(y$b, hpd, _od); + Rc(y$b, apd, hpd); + Rc(y$b, apd, ipd); + Rc(y$b, apd, epd); + Rc(y$b, apd, fpd); + Rc(y$b, jpd, jpd); + Rc(y$b, jpd, gpd); + Rc(y$b, jpd, ipd); + Rc(y$b, dpd, dpd); + Rc(y$b, dpd, gpd); + Rc(y$b, dpd, epd); + Rc(y$b, lpd, lpd); + Rc(y$b, lpd, _od); + Rc(y$b, lpd, ipd); + Rc(y$b, $od, $od); + Rc(y$b, $od, _od); + Rc(y$b, $od, epd); + Rc(y$b, gpd, cpd); + Rc(y$b, gpd, hpd); + Rc(y$b, gpd, jpd); + Rc(y$b, gpd, dpd); + Rc(y$b, gpd, fpd); + Rc(y$b, gpd, gpd); + Rc(y$b, gpd, ipd); + Rc(y$b, gpd, epd); + Rc(y$b, _od, kpd); + Rc(y$b, _od, hpd); + Rc(y$b, _od, lpd); + Rc(y$b, _od, $od); + Rc(y$b, _od, _od); + Rc(y$b, _od, ipd); + Rc(y$b, _od, epd); + Rc(y$b, _od, fpd); + Rc(y$b, ipd, mpd); + Rc(y$b, ipd, apd); + Rc(y$b, ipd, jpd); + Rc(y$b, ipd, lpd); + Rc(y$b, ipd, gpd); + Rc(y$b, ipd, _od); + Rc(y$b, ipd, ipd); + Rc(y$b, ipd, fpd); + Rc(y$b, epd, Zod); + Rc(y$b, epd, apd); + Rc(y$b, epd, dpd); + Rc(y$b, epd, $od); + Rc(y$b, epd, gpd); + Rc(y$b, epd, _od); + Rc(y$b, epd, epd); + Rc(y$b, epd, fpd); + Rc(y$b, fpd, bpd); + Rc(y$b, fpd, mpd); + Rc(y$b, fpd, Zod); + Rc(y$b, fpd, cpd); + Rc(y$b, fpd, kpd); + Rc(y$b, fpd, hpd); + Rc(y$b, fpd, apd); + Rc(y$b, fpd, gpd); + Rc(y$b, fpd, _od); + Rc(y$b, fpd, ipd); + Rc(y$b, fpd, epd); + Rc(y$b, fpd, fpd); + } + function _$b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B; + a.d = new rjd(oxe, oxe); + a.c = new rjd(pxe, pxe); + for (m = b.Kc(); m.Ob(); ) { + k = RD(m.Pb(), 36); + for (t = new Anb(k.a); t.a < t.c.c.length; ) { + s = RD(ynb(t), 10); + a.d.a = $wnd.Math.min(a.d.a, s.n.a - s.d.b); + a.d.b = $wnd.Math.min(a.d.b, s.n.b - s.d.d); + a.c.a = $wnd.Math.max(a.c.a, s.n.a + s.o.a + s.d.c); + a.c.b = $wnd.Math.max(a.c.b, s.n.b + s.o.b + s.d.a); + } + } + h = new q_b(); + for (l = b.Kc(); l.Ob(); ) { + k = RD(l.Pb(), 36); + d = i_b(a, k); + Rmb(h.a, d); + d.a = d.a | !RD(mQb(d.c, (Ywc(), ewc)), 21).dc(); + } + a.b = (NXb(), B = new XXb(), B.f = new EXb(c), B.b = DXb(B.f, h), B); + RXb((o2 = a.b, new Oqd(), o2)); + a.e = new pjd(); + a.a = a.b.f.e; + for (g = new Anb(h.a); g.a < g.c.c.length; ) { + e = RD(ynb(g), 855); + u = SXb(a.b, e); + o2b(e.c, u.a, u.b); + for (q = new Anb(e.c.a); q.a < q.c.c.length; ) { + p = RD(ynb(q), 10); + if (p.k == (r3b(), m3b)) { + r = d_b(a, p.n, RD(mQb(p, (Ywc(), hwc)), 64)); + $id(hjd(p.n), r); + } + } + } + for (f = new Anb(h.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 855); + for (j = new Anb(o_b(e)); j.a < j.c.c.length; ) { + i = RD(ynb(j), 18); + A = new Fjd(i.a); + hu(A, 0, K3b(i.c)); + Mub(A, K3b(i.d)); + n = null; + for (w = Sub(A, 0); w.b != w.d.c; ) { + v = RD(evb(w), 8); + if (!n) { + n = v; + continue; + } + if (_y(n.a, v.a)) { + a.e.a = $wnd.Math.min(a.e.a, n.a); + a.a.a = $wnd.Math.max(a.a.a, n.a); + } else if (_y(n.b, v.b)) { + a.e.b = $wnd.Math.min(a.e.b, n.b); + a.a.b = $wnd.Math.max(a.a.b, n.b); + } + n = v; + } + } + } + fjd(a.e); + $id(a.a, a.e); + } + function vib(a, b) { + var c, d, e, f, g, h, i, j; + c = 0; + g = 0; + f = b.length; + h = null; + j = new cib(); + if (g < f && (BFb(g, b.length), b.charCodeAt(g) == 43)) { + ++g; + ++c; + if (g < f && (BFb(g, b.length), b.charCodeAt(g) == 43 || (BFb(g, b.length), b.charCodeAt(g) == 45))) { + throw Adb(new Vgb(nxe + b + '"')); + } + } + while (g < f && (BFb(g, b.length), b.charCodeAt(g) != 46) && (BFb(g, b.length), b.charCodeAt(g) != 101) && (BFb(g, b.length), b.charCodeAt(g) != 69)) { + ++g; + } + j.a += "" + zhb(b == null ? vve : (uFb(b), b), c, g); + if (g < f && (BFb(g, b.length), b.charCodeAt(g) == 46)) { + ++g; + c = g; + while (g < f && (BFb(g, b.length), b.charCodeAt(g) != 101) && (BFb(g, b.length), b.charCodeAt(g) != 69)) { + ++g; + } + a.e = g - c; + j.a += "" + zhb(b == null ? vve : (uFb(b), b), c, g); + } else { + a.e = 0; + } + if (g < f && (BFb(g, b.length), b.charCodeAt(g) == 101 || (BFb(g, b.length), b.charCodeAt(g) == 69))) { + ++g; + c = g; + if (g < f && (BFb(g, b.length), b.charCodeAt(g) == 43)) { + ++g; + g < f && (BFb(g, b.length), b.charCodeAt(g) != 45) && ++c; + } + h = (AFb(c, f, b.length), b.substr(c, f - c)); + a.e = a.e - Oeb(h, qwe, lve); + if (a.e != eE(a.e)) { + throw Adb(new Vgb("Scale out of range.")); + } + } + i = j.a; + if (i.length < 16) { + a.f = (sib == null && (sib = new RegExp("^[+-]?\\d*$", "i")), sib.test(i) ? parseInt(i, 10) : NaN); + if (isNaN(a.f)) { + throw Adb(new Vgb(nxe + b + '"')); + } + a.a = Cib(a.f); + } else { + wib(a, new ejb(i)); + } + a.d = j.a.length; + for (e = 0; e < j.a.length; ++e) { + d = ihb(j.a, e); + if (d != 45 && d != 48) { + break; + } + --a.d; + } + a.d == 0 && (a.d = 1); + } + function Wae(a) { + _Ad(a.b, AKe, cD(WC(qJ, 1), Nve, 2, 6, [CKe, "ConsistentTransient"])); + _Ad(a.a, AKe, cD(WC(qJ, 1), Nve, 2, 6, [CKe, "WellFormedSourceURI"])); + _Ad(a.o, AKe, cD(WC(qJ, 1), Nve, 2, 6, [CKe, "InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"])); + _Ad(a.p, AKe, cD(WC(qJ, 1), Nve, 2, 6, [CKe, "WellFormedInstanceTypeName UniqueTypeParameterNames"])); + _Ad(a.v, AKe, cD(WC(qJ, 1), Nve, 2, 6, [CKe, "UniqueEnumeratorNames UniqueEnumeratorLiterals"])); + _Ad(a.R, AKe, cD(WC(qJ, 1), Nve, 2, 6, [CKe, "WellFormedName"])); + _Ad(a.T, AKe, cD(WC(qJ, 1), Nve, 2, 6, [CKe, "UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"])); + _Ad(a.U, AKe, cD(WC(qJ, 1), Nve, 2, 6, [CKe, "WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"])); + _Ad(a.W, AKe, cD(WC(qJ, 1), Nve, 2, 6, [CKe, "ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"])); + _Ad(a.bb, AKe, cD(WC(qJ, 1), Nve, 2, 6, [CKe, "ValidDefaultValueLiteral"])); + _Ad(a.eb, AKe, cD(WC(qJ, 1), Nve, 2, 6, [CKe, "ValidLowerBound ValidUpperBound ConsistentBounds ValidType"])); + _Ad(a.H, AKe, cD(WC(qJ, 1), Nve, 2, 6, [CKe, "ConsistentType ConsistentBounds ConsistentArguments"])); + } + function S7b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C; + if (b.dc()) { + return; + } + e = new Ejd(); + h = c ? c : RD(b.Xb(0), 18); + o2 = h.c; + HUc(); + m = o2.i.k; + if (!(m == (r3b(), p3b) || m == q3b || m == m3b || m == l3b)) { + throw Adb(new agb("The target node of the edge must be a normal node or a northSouthPort.")); + } + Oub(e, xjd(cD(WC(l3, 1), Nve, 8, 0, [o2.i.n, o2.n, o2.a]))); + if ((qpd(), hpd).Hc(o2.j)) { + q = Kfb(UD(mQb(o2, (Ywc(), Swc)))); + l = new rjd(xjd(cD(WC(l3, 1), Nve, 8, 0, [o2.i.n, o2.n, o2.a])).a, q); + Pub(e, l, e.c.b, e.c); + } + k = null; + d = false; + i = b.Kc(); + while (i.Ob()) { + g = RD(i.Pb(), 18); + f = g.a; + if (f.b != 0) { + if (d) { + j = ijd($id(k, (sFb(f.b != 0), RD(f.a.a.c, 8))), 0.5); + Pub(e, j, e.c.b, e.c); + d = false; + } else { + d = true; + } + k = ajd((sFb(f.b != 0), RD(f.c.b.c, 8))); + ye(e, f); + Xub(f); + } + } + p = h.d; + if (hpd.Hc(p.j)) { + q = Kfb(UD(mQb(p, (Ywc(), Swc)))); + l = new rjd(xjd(cD(WC(l3, 1), Nve, 8, 0, [p.i.n, p.n, p.a])).a, q); + Pub(e, l, e.c.b, e.c); + } + Oub(e, xjd(cD(WC(l3, 1), Nve, 8, 0, [p.i.n, p.n, p.a]))); + a.d == (lFc(), iFc) && (r = (sFb(e.b != 0), RD(e.a.a.c, 8)), s = RD(ju(e, 1), 8), t = new qjd(BVc(o2.j)), t.a *= 5, t.b *= 5, u = ojd(new rjd(s.a, s.b), r), v = new rjd(R7b(t.a, u.a), R7b(t.b, u.b)), $id(v, r), w = Sub(e, 1), cvb(w, v), A = (sFb(e.b != 0), RD(e.c.b.c, 8)), B = RD(ju(e, e.b - 2), 8), t = new qjd(BVc(p.j)), t.a *= 5, t.b *= 5, u = ojd(new rjd(B.a, B.b), A), C = new rjd(R7b(t.a, u.a), R7b(t.b, u.b)), $id(C, A), hu(e, e.b - 1, C), void 0); + n = new wUc(e); + ye(h.a, sUc(n)); + } + function cud(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K, L, M, N, O, P; + t = RD(QHd((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b), 0), 84); + v = t.nh(); + w = t.oh(); + u = t.mh() / 2; + p = t.lh() / 2; + if (ZD(t, 193)) { + s = RD(t, 123); + v += MCd(s).i; + v += MCd(s).i; + } + v += u; + w += p; + F = RD(QHd((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b), 0), 84); + H = F.nh(); + I = F.oh(); + G = F.mh() / 2; + A = F.lh() / 2; + if (ZD(F, 193)) { + D = RD(F, 123); + H += MCd(D).i; + H += MCd(D).i; + } + H += G; + I += A; + if ((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a).i == 0) { + h = (bvd(), j = new Rzd(), j); + WGd((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a), h); + } else if ((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a).i > 1) { + o2 = new mMd((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a)); + while (o2.e != o2.i.gc()) { + cMd(o2); + } + } + g = RD(QHd((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a), 0), 166); + q = H; + H > v + u ? q = v + u : H < v - u && (q = v - u); + r = I; + I > w + p ? r = w + p : I < w - p && (r = w - p); + q > v - u && q < v + u && r > w - p && r < w + p && (q = v + u); + Ozd(g, q); + Pzd(g, r); + B = v; + v > H + G ? B = H + G : v < H - G && (B = H - G); + C = w; + w > I + A ? C = I + A : w < I - A && (C = I - A); + B > H - G && B < H + G && C > I - A && C < I + A && (C = I + A); + Hzd(g, B); + Izd(g, C); + sLd((!g.a && (g.a = new XZd(D4, g, 5)), g.a)); + f = Jwb(b, 5); + t == F && ++f; + L = B - q; + O = C - r; + J = $wnd.Math.sqrt(L * L + O * O); + l = J * 0.20000000298023224; + M = L / (f + 1); + P = O / (f + 1); + K = q; + N = r; + for (k = 0; k < f; k++) { + K += M; + N += P; + m = K + Kwb(b, 24) * Nxe * l - l / 2; + m < 0 ? m = 1 : m > c && (m = c - 1); + n = N + Kwb(b, 24) * Nxe * l - l / 2; + n < 0 ? n = 1 : n > d && (n = d - 1); + e = (bvd(), i = new Xxd(), i); + Vxd(e, m); + Wxd(e, n); + WGd((!g.a && (g.a = new XZd(D4, g, 5)), g.a), e); + } + } + function Y7c(a) { + Cgd(a, new Pfd($fd(Xfd(Zfd(Yfd(new agd(), $Fe), "ELK Rectangle Packing"), "Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."), new _7c()))); + Agd(a, $Fe, Dze, 1.3); + Agd(a, $Fe, hAe, (Geb(), false)); + Agd(a, $Fe, Eze, O7c); + Agd(a, $Fe, _ze, 15); + Agd(a, $Fe, YDe, iGd(y7c)); + Agd(a, $Fe, jAe, iGd(F7c)); + Agd(a, $Fe, CAe, iGd(H7c)); + Agd(a, $Fe, iAe, iGd(I7c)); + Agd(a, $Fe, kAe, iGd(E7c)); + Agd(a, $Fe, gAe, iGd(J7c)); + Agd(a, $Fe, lAe, iGd(P7c)); + Agd(a, $Fe, RFe, iGd(U7c)); + Agd(a, $Fe, SFe, iGd(T7c)); + Agd(a, $Fe, QFe, iGd(W7c)); + Agd(a, $Fe, PFe, iGd(V7c)); + Agd(a, $Fe, TFe, iGd(M7c)); + Agd(a, $Fe, UFe, iGd(L7c)); + Agd(a, $Fe, VFe, iGd(K7c)); + Agd(a, $Fe, WFe, iGd(S7c)); + Agd(a, $Fe, dAe, iGd(B7c)); + Agd(a, $Fe, iEe, iGd(C7c)); + Agd(a, $Fe, NFe, iGd(A7c)); + Agd(a, $Fe, MFe, iGd(z7c)); + Agd(a, $Fe, OFe, iGd(D7c)); + Agd(a, $Fe, LFe, iGd(R7c)); + } + function Ajb(a, b) { + xjb(); + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H; + B = a.e; + o2 = a.d; + e = a.a; + if (B == 0) { + switch (b) { + case 0: + return "0"; + case 1: + return zxe; + case 2: + return "0.00"; + case 3: + return "0.000"; + case 4: + return "0.0000"; + case 5: + return "0.00000"; + case 6: + return "0.000000"; + default: + w = new bib(); + b < 0 ? (w.a += "0E+", w) : (w.a += "0E", w); + w.a += -b; + return w.a; + } + } + t = o2 * 10 + 1 + 7; + u = $C(hE, zwe, 28, t + 1, 15, 1); + c = t; + if (o2 == 1) { + h = e[0]; + if (h < 0) { + H = Cdb(h, yxe); + do { + p = H; + H = Fdb(H, 10); + u[--c] = 48 + Ydb(Vdb(p, Ndb(H, 10))) & Bwe; + } while (Ddb(H, 0) != 0); + } else { + H = h; + do { + p = H; + H = H / 10 | 0; + u[--c] = 48 + (p - H * 10) & Bwe; + } while (H != 0); + } + } else { + D = $C(kE, Pwe, 28, o2, 15, 1); + G = o2; + hib(e, 0, D, 0, G); + I: + while (true) { + A = 0; + for (j = G - 1; j >= 0; j--) { + F = Bdb(Sdb(A, 32), Cdb(D[j], yxe)); + r = yjb(F); + D[j] = Ydb(r); + A = Ydb(Tdb(r, 32)); + } + s = Ydb(A); + q = c; + do { + u[--c] = 48 + s % 10 & Bwe; + } while ((s = s / 10 | 0) != 0 && c != 0); + d = 9 - q + c; + for (i = 0; i < d && c > 0; i++) { + u[--c] = 48; + } + l = G - 1; + for (; D[l] == 0; l--) { + if (l == 0) { + break I; + } + } + G = l + 1; + } + while (u[c] == 48) { + ++c; + } + } + n = B < 0; + g = t - c - b - 1; + if (b == 0) { + n && (u[--c] = 45); + return Ihb(u, c, t - c); + } + if (b > 0 && g >= -6) { + if (g >= 0) { + k = c + g; + for (m = t - 1; m >= k; m--) { + u[m + 1] = u[m]; + } + u[++k] = 46; + n && (u[--c] = 45); + return Ihb(u, c, t - c + 1); + } + for (l = 2; l < -g + 1; l++) { + u[--c] = 48; + } + u[--c] = 46; + u[--c] = 48; + n && (u[--c] = 45); + return Ihb(u, c, t - c); + } + C = c + 1; + f = t; + v = new cib(); + n && (v.a += "-", v); + if (f - C >= 1) { + Thb(v, u[c]); + v.a += "."; + v.a += Ihb(u, c + 1, t - c - 1); + } else { + v.a += Ihb(u, c, t - c); + } + v.a += "E"; + g > 0 && (v.a += "+", v); + v.a += "" + g; + return v.a; + } + function Jad(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w; + a.c = b; + a.g = new Tsb(); + c = (lud(), new zud(a.c)); + d = new PJb(c); + LJb(d); + t = WD(Gxd(a.c, (ncd(), gcd))); + i = RD(Gxd(a.c, icd), 324); + v = RD(Gxd(a.c, jcd), 437); + g = RD(Gxd(a.c, bcd), 490); + u = RD(Gxd(a.c, hcd), 438); + a.j = Kfb(UD(Gxd(a.c, kcd))); + h = a.a; + switch (i.g) { + case 0: + h = a.a; + break; + case 1: + h = a.b; + break; + case 2: + h = a.i; + break; + case 3: + h = a.e; + break; + case 4: + h = a.f; + break; + default: + throw Adb(new agb(eGe + (i.f != null ? i.f : "" + i.g))); + } + a.d = new qbd(h, v, g); + pQb(a.d, (OQb(), MQb), TD(Gxd(a.c, dcd))); + a.d.c = Heb(TD(Gxd(a.c, ccd))); + if (tCd(a.c).i == 0) { + return a.d; + } + for (l = new dMd(tCd(a.c)); l.e != l.i.gc(); ) { + k = RD(bMd(l), 27); + n = k.g / 2; + m = k.f / 2; + w = new rjd(k.i + n, k.j + m); + while (Ujb(a.g, w)) { + Zid(w, ($wnd.Math.random() - 0.5) * Vze, ($wnd.Math.random() - 0.5) * Vze); + } + p = RD(Gxd(k, (umd(), eld)), 140); + q = new TQb(w, new Uid(w.a - n - a.j / 2 - p.b, w.b - m - a.j / 2 - p.d, k.g + a.j + (p.b + p.c), k.f + a.j + (p.d + p.a))); + Rmb(a.d.i, q); + Zjb(a.g, w, new Ptd(q, k)); + } + switch (u.g) { + case 0: + if (t == null) { + a.d.d = RD(Vmb(a.d.i, 0), 68); + } else { + for (s = new Anb(a.d.i); s.a < s.c.c.length; ) { + q = RD(ynb(s), 68); + o2 = RD(RD(Wjb(a.g, q.a), 42).b, 27).jh(); + o2 != null && lhb(o2, t) && (a.d.d = q); + } + } + break; + case 1: + e = new rjd(a.c.g, a.c.f); + e.a *= 0.5; + e.b *= 0.5; + Zid(e, a.c.i, a.c.j); + f = oxe; + for (r = new Anb(a.d.i); r.a < r.c.c.length; ) { + q = RD(ynb(r), 68); + j = bjd(q.a, e); + if (j < f) { + f = j; + a.d.d = q; + } + } + break; + default: + throw Adb(new agb(eGe + (u.f != null ? u.f : "" + u.g))); + } + return a.d; + } + function b5b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + m = 0; + for (e = new dMd((!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a)); e.e != e.i.gc(); ) { + d = RD(bMd(e), 27); + if (!Heb(TD(Gxd(d, (yCc(), pBc))))) { + k = vCd(d); + if ((dE(Gxd(k, cAc)) !== dE((kEc(), hEc)) || dE(Gxd(k, pAc)) === dE((Ptc(), Otc)) || dE(Gxd(k, pAc)) === dE((Ptc(), Mtc)) || Heb(TD(Gxd(k, eAc))) || dE(Gxd(k, Yzc)) !== dE((U$b(), T$b)) || dE(Gxd(k, ZAc)) === dE((aEc(), TDc)) || dE(Gxd(k, ZAc)) === dE((aEc(), UDc)) || dE(Gxd(k, $Ac)) === dE((_Cc(), SCc)) || dE(Gxd(k, $Ac)) === dE((_Cc(), UCc))) && !Heb(TD(Gxd(d, aAc)))) { + Ixd(d, (Ywc(), zwc), sgb(m)); + ++m; + } + i5b(a, d, c); + } + } + m = 0; + for (j = new dMd((!b.b && (b.b = new C5d(G4, b, 12, 3)), b.b)); j.e != j.i.gc(); ) { + h = RD(bMd(j), 74); + if (dE(Gxd(b, (yCc(), cAc))) !== dE((kEc(), hEc)) || dE(Gxd(b, pAc)) === dE((Ptc(), Otc)) || dE(Gxd(b, pAc)) === dE((Ptc(), Mtc)) || Heb(TD(Gxd(b, eAc))) || dE(Gxd(b, Yzc)) !== dE((U$b(), T$b)) || dE(Gxd(b, ZAc)) === dE((aEc(), TDc)) || dE(Gxd(b, ZAc)) === dE((aEc(), UDc)) || dE(Gxd(b, $Ac)) === dE((_Cc(), SCc)) || dE(Gxd(b, $Ac)) === dE((_Cc(), UCc))) { + Ixd(h, (Ywc(), zwc), sgb(m)); + ++m; + } + p = JGd(h); + q = LGd(h); + l = Heb(TD(Gxd(p, NAc))); + o2 = !Heb(TD(Gxd(h, pBc))); + n = l && ozd(h) && Heb(TD(Gxd(h, OAc))); + f = vCd(p) == b && vCd(p) == vCd(q); + g = (vCd(p) == b && q == b) ^ (vCd(q) == b && p == b); + o2 && !n && (g || f) && f5b(a, h, b, c); + } + if (vCd(b)) { + for (i = new dMd(uCd(vCd(b))); i.e != i.i.gc(); ) { + h = RD(bMd(i), 74); + p = JGd(h); + if (p == b && ozd(h)) { + n = Heb(TD(Gxd(p, (yCc(), NAc)))) && Heb(TD(Gxd(h, OAc))); + n && f5b(a, h, b, c); + } + } + } + } + function SFc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K, L; + c.Ug("Greedy cycle removal", 1); + t = b.a; + L = t.c.length; + a.a = $C(kE, Pwe, 28, L, 15, 1); + a.c = $C(kE, Pwe, 28, L, 15, 1); + a.b = $C(kE, Pwe, 28, L, 15, 1); + j = 0; + for (r = new Anb(t); r.a < r.c.c.length; ) { + p = RD(ynb(r), 10); + p.p = j; + for (C = new Anb(p.j); C.a < C.c.c.length; ) { + w = RD(ynb(C), 12); + for (h = new Anb(w.e); h.a < h.c.c.length; ) { + d = RD(ynb(h), 18); + if (d.c.i == p) { + continue; + } + G = RD(mQb(d, (yCc(), KBc)), 17).a; + a.a[j] += G > 0 ? G + 1 : 1; + } + for (g = new Anb(w.g); g.a < g.c.c.length; ) { + d = RD(ynb(g), 18); + if (d.d.i == p) { + continue; + } + G = RD(mQb(d, (yCc(), KBc)), 17).a; + a.c[j] += G > 0 ? G + 1 : 1; + } + } + a.c[j] == 0 ? Mub(a.e, p) : a.a[j] == 0 && Mub(a.f, p); + ++j; + } + o2 = -1; + n = 1; + l = new bnb(); + a.d = RD(mQb(b, (Ywc(), Lwc)), 234); + while (L > 0) { + while (a.e.b != 0) { + I = RD(Uub(a.e), 10); + a.b[I.p] = o2--; + TFc(a, I); + --L; + } + while (a.f.b != 0) { + J = RD(Uub(a.f), 10); + a.b[J.p] = n++; + TFc(a, J); + --L; + } + if (L > 0) { + m = qwe; + for (s = new Anb(t); s.a < s.c.c.length; ) { + p = RD(ynb(s), 10); + if (a.b[p.p] == 0) { + u = a.c[p.p] - a.a[p.p]; + if (u >= m) { + if (u > m) { + l.c.length = 0; + m = u; + } + ZEb(l.c, p); + } + } + } + k = a.sg(l); + a.b[k.p] = n++; + TFc(a, k); + --L; + } + } + H = t.c.length + 1; + for (j = 0; j < t.c.length; j++) { + a.b[j] < 0 && (a.b[j] += H); + } + for (q = new Anb(t); q.a < q.c.c.length; ) { + p = RD(ynb(q), 10); + F = u2b(p.j); + for (A = F, B = 0, D = A.length; B < D; ++B) { + w = A[B]; + v = s2b(w.g); + for (e = v, f = 0, i = e.length; f < i; ++f) { + d = e[f]; + K = d.d.i.p; + if (a.b[p.p] > a.b[K]) { + X0b(d, true); + pQb(b, awc, (Geb(), true)); + } + } + } + } + a.a = null; + a.c = null; + a.b = null; + Xub(a.f); + Xub(a.e); + c.Vg(); + } + function usd(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w; + v = RD(QHd((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a), 0), 166); + k = new Ejd(); + u = new Tsb(); + w = xsd(v); + rtb(u.f, v, w); + m = new Tsb(); + d = new Yub(); + for (o2 = Fl(Al(cD(WC(cJ, 1), rve, 20, 0, [(!b.d && (b.d = new Yie(G4, b, 8, 5)), b.d), (!b.e && (b.e = new Yie(G4, b, 7, 4)), b.e)]))); gs(o2); ) { + n = RD(hs(o2), 74); + if ((!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a).i != 1) { + throw Adb(new agb(tHe + (!a.a && (a.a = new C5d(F4, a, 6, 6)), a.a).i)); + } + if (n != a) { + q = RD(QHd((!n.a && (n.a = new C5d(F4, n, 6, 6)), n.a), 0), 166); + Pub(d, q, d.c.b, d.c); + p = RD(Wd(qtb(u.f, q)), 13); + if (!p) { + p = xsd(q); + rtb(u.f, q, p); + } + l = c ? ojd(new sjd(RD(Vmb(w, w.c.length - 1), 8)), RD(Vmb(p, p.c.length - 1), 8)) : ojd(new sjd((tFb(0, w.c.length), RD(w.c[0], 8))), (tFb(0, p.c.length), RD(p.c[0], 8))); + rtb(m.f, q, l); + } + } + if (d.b != 0) { + r = RD(Vmb(w, c ? w.c.length - 1 : 0), 8); + for (j = 1; j < w.c.length; j++) { + s = RD(Vmb(w, c ? w.c.length - 1 - j : j), 8); + e = Sub(d, 0); + while (e.b != e.d.c) { + q = RD(evb(e), 166); + p = RD(Wd(qtb(u.f, q)), 13); + if (p.c.length <= j) { + gvb(e); + } else { + t = $id(new sjd(RD(Vmb(p, c ? p.c.length - 1 - j : j), 8)), RD(Wd(qtb(m.f, q)), 8)); + if (s.a != t.a || s.b != t.b) { + f = s.a - r.a; + h = s.b - r.b; + g = t.a - r.a; + i = t.b - r.b; + g * h == i * f && (f == 0 || isNaN(f) ? f : f < 0 ? -1 : 1) == (g == 0 || isNaN(g) ? g : g < 0 ? -1 : 1) && (h == 0 || isNaN(h) ? h : h < 0 ? -1 : 1) == (i == 0 || isNaN(i) ? i : i < 0 ? -1 : 1) ? ($wnd.Math.abs(f) < $wnd.Math.abs(g) || $wnd.Math.abs(h) < $wnd.Math.abs(i)) && (Pub(k, s, k.c.b, k.c), true) : j > 1 && (Pub(k, r, k.c.b, k.c), true); + gvb(e); + } + } + } + r = s; + } + } + return k; + } + function S_c(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D; + c.Ug(_Ee, 1); + D = RD(zDb(CDb(new SDb(null, new Swb(b, 16)), new e0c()), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + k = RD(zDb(CDb(new SDb(null, new Swb(b, 16)), new g0c(b)), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [vBb]))), 15); + o2 = RD(zDb(CDb(new SDb(null, new Swb(b, 16)), new i0c(b)), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [vBb]))), 15); + p = $C(Z$, NEe, 40, b.gc(), 0, 1); + for (g = 0; g < k.gc(); g++) { + e = RD(k.Xb(g), 40); + C = RD(mQb(e, (h_c(), W$c)), 17).a; + if (C >= 0 && C < k.gc() && !p[C]) { + p[C] = e; + k.gd(g); + --g; + } + } + for (h = 0; h < k.gc(); h++) { + e = RD(k.Xb(h), 40); + C = RD(mQb(e, (h_c(), W$c)), 17).a; + for (m = 0; ; m++) { + n = C + m; + if (n < p.length && n >= 0 && !p[n]) { + p[n] = e; + k.gd(h); + --h; + break; + } + n = C - m; + if (n < p.length && n >= 0 && !p[n]) { + p[n] = e; + k.gd(h); + --h; + break; + } + } + } + o2.jd(new k0c()); + for (i = p.length - 1; i >= 0; i--) { + if (!p[i] && !o2.dc()) { + p[i] = RD(o2.Xb(0), 40); + o2.gd(0); + } + } + for (j = 0; j < p.length; j++) { + if (!p[j] && !D.dc()) { + p[j] = RD(D.Xb(0), 40); + D.gd(0); + } + } + for (f = 0; f < p.length; f++) { + pQb(p[f], (q$c(), i$c), sgb(f)); + } + l = RD(RDb(CDb(new SDb(null, new Swb(b, 16)), new o0c())), 534); + for (w = l, A = 0, B = w.length; A < B; ++A) { + v = w[A]; + d = $Wc(v); + S_c(a, d, c.eh(1 / l.length | 0)); + yob(); + tvb(d, new uGd((q$c(), i$c))); + q = new Yub(); + for (u = Sub(d, 0); u.b != u.d.c; ) { + t = RD(evb(u), 40); + for (s = Sub(v.d, 0); s.b != s.d.c; ) { + r = RD(evb(s), 65); + r.c == t && (Pub(q, r, q.c.b, q.c), true); + } + } + Xub(v.d); + ye(v.d, q); + } + c.Vg(); + } + function jTb(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r; + d = new bnb(); + h = new bnb(); + q = b / 2; + n = a.gc(); + e = RD(a.Xb(0), 8); + r = RD(a.Xb(1), 8); + o2 = kTb(e.a, e.b, r.a, r.b, q); + Rmb(d, (tFb(0, o2.c.length), RD(o2.c[0], 8))); + Rmb(h, (tFb(1, o2.c.length), RD(o2.c[1], 8))); + for (j = 2; j < n; j++) { + p = e; + e = r; + r = RD(a.Xb(j), 8); + o2 = kTb(e.a, e.b, p.a, p.b, q); + Rmb(d, (tFb(1, o2.c.length), RD(o2.c[1], 8))); + Rmb(h, (tFb(0, o2.c.length), RD(o2.c[0], 8))); + o2 = kTb(e.a, e.b, r.a, r.b, q); + Rmb(d, (tFb(0, o2.c.length), RD(o2.c[0], 8))); + Rmb(h, (tFb(1, o2.c.length), RD(o2.c[1], 8))); + } + o2 = kTb(r.a, r.b, e.a, e.b, q); + Rmb(d, (tFb(1, o2.c.length), RD(o2.c[1], 8))); + Rmb(h, (tFb(0, o2.c.length), RD(o2.c[0], 8))); + c = new Ejd(); + g = new bnb(); + Mub(c, (tFb(0, d.c.length), RD(d.c[0], 8))); + for (k = 1; k < d.c.length - 2; k += 2) { + f = (tFb(k, d.c.length), RD(d.c[k], 8)); + m = iTb((tFb(k - 1, d.c.length), RD(d.c[k - 1], 8)), f, (tFb(k + 1, d.c.length), RD(d.c[k + 1], 8)), (tFb(k + 2, d.c.length), RD(d.c[k + 2], 8))); + !isFinite(m.a) || !isFinite(m.b) ? (Pub(c, f, c.c.b, c.c), true) : (Pub(c, m, c.c.b, c.c), true); + } + Mub(c, RD(Vmb(d, d.c.length - 1), 8)); + Rmb(g, (tFb(0, h.c.length), RD(h.c[0], 8))); + for (l = 1; l < h.c.length - 2; l += 2) { + f = (tFb(l, h.c.length), RD(h.c[l], 8)); + m = iTb((tFb(l - 1, h.c.length), RD(h.c[l - 1], 8)), f, (tFb(l + 1, h.c.length), RD(h.c[l + 1], 8)), (tFb(l + 2, h.c.length), RD(h.c[l + 2], 8))); + !isFinite(m.a) || !isFinite(m.b) ? (ZEb(g.c, f), true) : (ZEb(g.c, m), true); + } + Rmb(g, RD(Vmb(h, h.c.length - 1), 8)); + for (i = g.c.length - 1; i >= 0; i--) { + Mub(c, (tFb(i, g.c.length), RD(g.c[i], 8))); + } + return c; + } + function l9c(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + t = Kfb(UD(Gxd(b, (X6c(), W6c)))); + n = Kfb(UD(Gxd(b, U6c))); + m = Kfb(UD(Gxd(b, R6c))); + Bad((!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a)); + r = U8c((!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a), t, a.b); + for (q = 0; q < r.c.length; q++) { + i = (tFb(q, r.c.length), RD(r.c[q], 186)); + if (q != 0) { + o2 = (tFb(q - 1, r.c.length), RD(r.c[q - 1], 186)); + Gad(i, o2.f + o2.b + a.b); + } + p = J8c(q, r, t, a.b, Heb(TD(Gxd(b, (X7c(), L7c))))); + if (Heb(TD(p.b))) { + for (f = new Anb(i.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 172); + e.c = false; + e.k = false; + N9c(e); + } + i.d = new bnb(); + i.e = t; + --q; + } else { + k9c(a, i); + if (q + 1 < r.c.length) { + a.e = $wnd.Math.max(i.e + a.b + RD(Vmb((tFb(q + 1, r.c.length), RD(r.c[q + 1], 186)).a, 0), 172).r - t, a.c); + a.f = $wnd.Math.min(i.e + a.b + RD(Vmb((tFb(q + 1, r.c.length), RD(r.c[q + 1], 186)).a, 0), 172).r - t, a.d); + if (i.d.c.length != 0) { + a.c = $wnd.Math.max(a.c, RD(Vmb(i.d, i.d.c.length - 1), 315).d + (i.d.c.length <= 1 ? 0 : a.b)); + a.d = $wnd.Math.min(a.c, RD(Vmb(i.d, i.d.c.length - 1), 315).d + (i.d.c.length <= 1 ? 0 : a.b)); + } + } + if (r.c.length == 1) { + l = RD(Vmb(i.d, i.d.c.length - 1), 315); + k = RD(Vmb(l.a, l.a.c.length - 1), 172); + for (h = new Anb(k.n); h.a < h.c.c.length; ) { + g = RD(ynb(h), 209); + a.c = $wnd.Math.max(a.c, k.r - g.d); + a.d = $wnd.Math.min(a.d, k.r - g.d); + a.e = $wnd.Math.max(a.e, g.d + a.b); + a.f = $wnd.Math.min(a.f, g.d + a.b); + } + } + } + } + s = zad(r, a.b); + u = $wnd.Math.max(s.a, n - (c.b + c.c)); + j = $wnd.Math.max(s.b, m - (c.d + c.a)); + d = j - s.b; + Ixd(b, M6c, d); + Ixd(b, V6c, r); + return new lad(a.a, u, s.b + d, (sad(), rad)); + } + function e9b(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G; + A = RD(mQb(a, (yCc(), BBc)), 101); + if (!(A != (Bod(), zod) && A != Aod)) { + return; + } + o2 = a.b; + n = o2.c.length; + k = new cnb((dk(n + 2, lwe), dz(Bdb(Bdb(5, n + 2), (n + 2) / 10 | 0)))); + p = new cnb((dk(n + 2, lwe), dz(Bdb(Bdb(5, n + 2), (n + 2) / 10 | 0)))); + Rmb(k, new Tsb()); + Rmb(k, new Tsb()); + Rmb(p, new bnb()); + Rmb(p, new bnb()); + w = new bnb(); + for (b = 0; b < n; b++) { + c = (tFb(b, o2.c.length), RD(o2.c[b], 30)); + B = (tFb(b, k.c.length), RD(k.c[b], 85)); + q = new Tsb(); + ZEb(k.c, q); + D = (tFb(b, p.c.length), RD(p.c[b], 15)); + s = new bnb(); + ZEb(p.c, s); + for (e = new Anb(c.a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 10); + if (a9b(d)) { + ZEb(w.c, d); + continue; + } + for (j = new is(Mr(Z2b(d).a.Kc(), new ir())); gs(j); ) { + h = RD(hs(j), 18); + F = h.c.i; + if (!a9b(F)) { + continue; + } + C = RD(B.xc(mQb(F, (Ywc(), Awc))), 10); + if (!C) { + C = _8b(a, F); + B.zc(mQb(F, Awc), C); + D.Fc(C); + } + Y0b(h, RD(Vmb(C.j, 1), 12)); + } + for (i = new is(Mr(a3b(d).a.Kc(), new ir())); gs(i); ) { + h = RD(hs(i), 18); + G = h.d.i; + if (!a9b(G)) { + continue; + } + r = RD(Wjb(q, mQb(G, (Ywc(), Awc))), 10); + if (!r) { + r = _8b(a, G); + Zjb(q, mQb(G, Awc), r); + ZEb(s.c, r); + } + Z0b(h, RD(Vmb(r.j, 0), 12)); + } + } + } + for (l = 0; l < p.c.length; l++) { + t = (tFb(l, p.c.length), RD(p.c[l], 15)); + if (t.dc()) { + continue; + } + m = null; + if (l == 0) { + m = new R4b(a); + wFb(0, o2.c.length); + XEb(o2.c, 0, m); + } else if (l == k.c.length - 1) { + m = new R4b(a); + ZEb(o2.c, m); + } else { + m = (tFb(l - 1, o2.c.length), RD(o2.c[l - 1], 30)); + } + for (g = t.Kc(); g.Ob(); ) { + f = RD(g.Pb(), 10); + g3b(f, m); + } + } + for (v = new Anb(w); v.a < v.c.c.length; ) { + u = RD(ynb(v), 10); + g3b(u, null); + } + pQb(a, (Ywc(), fwc), w); + } + function SNc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K; + I = new bnb(); + for (o2 = new Anb(b.b); o2.a < o2.c.c.length; ) { + m = RD(ynb(o2), 30); + for (v = new Anb(m.a); v.a < v.c.c.length; ) { + u = RD(ynb(v), 10); + u.p = -1; + l = qwe; + B = qwe; + for (D = new Anb(u.j); D.a < D.c.c.length; ) { + C = RD(ynb(D), 12); + for (e = new Anb(C.e); e.a < e.c.c.length; ) { + c = RD(ynb(e), 18); + F = RD(mQb(c, (yCc(), MBc)), 17).a; + l = $wnd.Math.max(l, F); + } + for (d = new Anb(C.g); d.a < d.c.c.length; ) { + c = RD(ynb(d), 18); + F = RD(mQb(c, (yCc(), MBc)), 17).a; + B = $wnd.Math.max(B, F); + } + } + pQb(u, HNc, sgb(l)); + pQb(u, INc, sgb(B)); + } + } + r = 0; + for (n = new Anb(b.b); n.a < n.c.c.length; ) { + m = RD(ynb(n), 30); + for (v = new Anb(m.a); v.a < v.c.c.length; ) { + u = RD(ynb(v), 10); + if (u.p < 0) { + H = new ZNc(); + H.b = r++; + ONc(a, u, H); + ZEb(I.c, H); + } + } + } + A = ev(I.c.length); + k = ev(I.c.length); + for (g = 0; g < I.c.length; g++) { + Rmb(A, new bnb()); + Rmb(k, sgb(0)); + } + MNc(b, I, A, k); + J = RD(anb(I, $C(SY, uEe, 261, I.c.length, 0, 1)), 854); + w = RD(anb(A, $C(QK, Ize, 15, A.c.length, 0, 1)), 198); + j = $C(kE, Pwe, 28, k.c.length, 15, 1); + for (h = 0; h < j.length; h++) { + j[h] = (tFb(h, k.c.length), RD(k.c[h], 17)).a; + } + s = 0; + t = new bnb(); + for (i = 0; i < J.length; i++) { + j[i] == 0 && (ZEb(t.c, J[i]), true); + } + q = $C(kE, Pwe, 28, J.length, 15, 1); + while (t.c.length != 0) { + H = RD(Xmb(t, 0), 261); + q[H.b] = s++; + while (!w[H.b].dc()) { + K = RD(w[H.b].gd(0), 261); + --j[K.b]; + j[K.b] == 0 && (ZEb(t.c, K), true); + } + } + a.a = $C(SY, uEe, 261, J.length, 0, 1); + for (f = 0; f < J.length; f++) { + p = J[f]; + G = q[f]; + a.a[G] = p; + p.b = G; + for (v = new Anb(p.e); v.a < v.c.c.length; ) { + u = RD(ynb(v), 10); + u.p = G; + } + } + return a.a; + } + function J8c(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, o2, p, q, r; + p = false; + i = false; + m = a + 1; + o2 = (tFb(a, b.c.length), RD(b.c[a], 186)); + h = o2.a; + j = null; + for (g = 0; g < o2.a.c.length; g++) { + f = (tFb(g, h.c.length), RD(h.c[g], 172)); + if (f.c) { + continue; + } + if (f.b.c.length == 0) { + gib(); + Fad(o2, f); + --g; + p = true; + continue; + } + if (!f.k) { + !!j && gad(j); + j = new had(!j ? 0 : j.e + j.d + d, o2.f, d); + U9c(f, j.e + j.d, o2.f); + Rmb(o2.d, j); + aad(j, f); + f.k = true; + } + k = null; + k = (r = null, g < o2.a.c.length - 1 ? r = RD(Vmb(o2.a, g + 1), 172) : m < b.c.length && (tFb(m, b.c.length), RD(b.c[m], 186)).a.c.length != 0 && (r = RD(Vmb((tFb(m, b.c.length), RD(b.c[m], 186)).a, 0), 172)), r); + q = false; + !!k && (q = !pb(k.j, o2)); + if (k) { + if (k.b.c.length != 0 && !Heb(TD(RD(Vmb(k.b, 0), 27).of((X7c(), D7c))))) { + Q9c(f, c - f.s); + gad(f.q); + p = p | I8c(o2, f, k, c, d); + } else { + Fad(o2, k); + break; + } + if (k.b.c.length == 0) { + b.c.length > m && Fad((tFb(m, b.c.length), RD(b.c[m], 186)), k); + k = null; + while (b.c.length > m && (tFb(m, b.c.length), RD(b.c[m], 186)).a.c.length == 0) { + Ymb(b, (tFb(m, b.c.length), b.c[m])); + } + } + if (!k) { + --g; + continue; + } + if (!Heb(TD(RD(Vmb(k.b, 0), 27).of((X7c(), D7c)))) && K8c(b, o2, f, k, q, c, m, d)) { + p = true; + continue; + } + if (q) { + n = o2.b; + l = k.f; + if (!Heb(TD(RD(Vmb(k.b, 0), 27).of(D7c))) && L8c(b, o2, f, k, c, m, d, e)) { + p = true; + if (n < l) { + i = true; + k.j = o2; + break; + } + continue; + } else if (M8c(o2, f)) { + f.c = true; + p = true; + continue; + } + } else if (M8c(o2, f)) { + f.c = true; + p = true; + continue; + } + if (p) { + continue; + } + } + if (M8c(o2, f)) { + f.c = true; + p = true; + !!k && (k.k = false); + continue; + } else { + gad(f.q); + } + } + return new Ptd((Geb(), p ? true : false), i ? true : false); + } + function yCc() { + yCc = geb; + QBc = (umd(), Wld); + RBc = Xld; + SBc = Yld; + TBc = Zld; + VBc = $ld; + WBc = _ld; + ZBc = bmd; + _Bc = dmd; + aCc = emd; + $Bc = cmd; + bCc = fmd; + dCc = gmd; + fCc = jmd; + YBc = amd; + PBc = (Ozc(), ezc); + UBc = fzc; + XBc = gzc; + cCc = hzc; + JBc = new mGd(Rld, sgb(0)); + KBc = bzc; + LBc = czc; + MBc = dzc; + vCc = Fzc; + nCc = kzc; + oCc = nzc; + rCc = vzc; + pCc = qzc; + qCc = szc; + xCc = Kzc; + wCc = Hzc; + tCc = Bzc; + sCc = zzc; + uCc = Dzc; + iBc = Uyc; + jBc = Vyc; + DAc = dyc; + EAc = gyc; + jCc = mmd; + lCc = qmd; + iCc = lmd; + hCc = kmd; + kCc = (mqd(), jqd); + new mGd(nmd, kCc); + rBc = new A3b(12); + qBc = new mGd(tld, rBc); + zAc = (Ymd(), Umd); + yAc = new mGd(Skd, zAc); + ABc = new mGd(Gld, 0); + NBc = new mGd(Sld, sgb(1)); + Tzc = new mGd(Dkd, Yze); + pBc = rld; + BBc = Hld; + GBc = Old; + qAc = Mkd; + Rzc = Bkd; + IAc = Xkd; + OBc = new mGd(Vld, (Geb(), true)); + NAc = $kd; + OAc = _kd; + lBc = kld; + oBc = pld; + mBc = mld; + tAc = (Cmd(), Amd); + rAc = new mGd(Nkd, tAc); + dBc = ild; + cBc = gld; + EBc = Lld; + DBc = Kld; + FBc = Nld; + uBc = (pod(), ood); + new mGd(zld, uBc); + wBc = Cld; + xBc = Dld; + yBc = Eld; + vBc = Bld; + mCc = jzc; + $Ac = Fyc; + ZAc = Dyc; + gCc = izc; + UAc = vyc; + pAc = Rxc; + oAc = Pxc; + eAc = yxc; + fAc = zxc; + hAc = Exc; + gAc = Axc; + nAc = Nxc; + aBc = Hyc; + bBc = Iyc; + QAc = oyc; + kBc = Zyc; + fBc = Myc; + GAc = jyc; + hBc = Syc; + BAc = _xc; + CAc = byc; + dAc = Kkd; + eBc = Jyc; + Xzc = mxc; + Wzc = kxc; + Vzc = jxc; + KAc = myc; + JAc = lyc; + LAc = nyc; + nBc = nld; + RAc = cld; + FAc = Ukd; + wAc = Qkd; + vAc = Pkd; + iAc = Hxc; + CBc = Jld; + Uzc = Jkd; + MAc = Zkd; + zBc = Fld; + sBc = vld; + tBc = xld; + WAc = yyc; + XAc = Ayc; + IBc = Qld; + Szc = ixc; + YAc = Cyc; + xAc = Xxc; + uAc = Vxc; + _Ac = eld; + SAc = syc; + gBc = Pyc; + eCc = hmd; + sAc = Txc; + HBc = _yc; + AAc = Zxc; + jAc = Jxc; + kAc = Kxc; + TAc = uyc; + lAc = Lxc; + PAc = bld; + VAc = xyc; + mAc = Mxc; + cAc = wxc; + _zc = sxc; + Zzc = qxc; + $zc = rxc; + aAc = uxc; + Yzc = oxc; + bAc = vxc; + HAc = kyc; + } + function Mqe(a) { + var b, c, d; + if (a.d >= a.j) { + a.a = -1; + a.c = 1; + return; + } + b = ihb(a.i, a.d++); + a.a = b; + if (a.b == 1) { + switch (b) { + case 92: + d = 10; + if (a.d >= a.j) + throw Adb(new Lqe(TId((Hde(), VIe)))); + a.a = ihb(a.i, a.d++); + break; + case 45: + if ((a.e & 512) == 512 && a.d < a.j && ihb(a.i, a.d) == 91) { + ++a.d; + d = 24; + } else + d = 0; + break; + case 91: + if ((a.e & 512) != 512 && a.d < a.j && ihb(a.i, a.d) == 58) { + ++a.d; + d = 20; + break; + } + default: + if ((b & 64512) == uxe && a.d < a.j) { + c = ihb(a.i, a.d); + if ((c & 64512) == 56320) { + a.a = txe + (b - uxe << 10) + c - 56320; + ++a.d; + } + } + d = 0; + } + a.c = d; + return; + } + switch (b) { + case 124: + d = 2; + break; + case 42: + d = 3; + break; + case 43: + d = 4; + break; + case 63: + d = 5; + break; + case 41: + d = 7; + break; + case 46: + d = 8; + break; + case 91: + d = 9; + break; + case 94: + d = 11; + break; + case 36: + d = 12; + break; + case 40: + d = 6; + if (a.d >= a.j) + break; + if (ihb(a.i, a.d) != 63) + break; + if (++a.d >= a.j) + throw Adb(new Lqe(TId((Hde(), WIe)))); + b = ihb(a.i, a.d++); + switch (b) { + case 58: + d = 13; + break; + case 61: + d = 14; + break; + case 33: + d = 15; + break; + case 91: + d = 19; + break; + case 62: + d = 18; + break; + case 60: + if (a.d >= a.j) + throw Adb(new Lqe(TId((Hde(), WIe)))); + b = ihb(a.i, a.d++); + if (b == 61) { + d = 16; + } else if (b == 33) { + d = 17; + } else + throw Adb(new Lqe(TId((Hde(), XIe)))); + break; + case 35: + while (a.d < a.j) { + b = ihb(a.i, a.d++); + if (b == 41) + break; + } + if (b != 41) + throw Adb(new Lqe(TId((Hde(), YIe)))); + d = 21; + break; + default: + if (b == 45 || 97 <= b && b <= 122 || 65 <= b && b <= 90) { + --a.d; + d = 22; + break; + } else if (b == 40) { + d = 23; + break; + } + throw Adb(new Lqe(TId((Hde(), WIe)))); + } + break; + case 92: + d = 10; + if (a.d >= a.j) + throw Adb(new Lqe(TId((Hde(), VIe)))); + a.a = ihb(a.i, a.d++); + break; + default: + d = 0; + } + a.c = d; + } + function oXc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + c.Ug("Process compaction", 1); + if (!Heb(TD(mQb(b, (h_c(), F$c))))) { + return; + } + e = RD(mQb(b, H$c), 88); + n = Kfb(UD(mQb(b, _$c))); + pXc(a, b, e); + lXc(b, n / 2 / 2); + o2 = b.b; + tvb(o2, new EXc(e)); + for (j = Sub(o2, 0); j.b != j.d.c; ) { + i = RD(evb(j), 40); + if (!Heb(TD(mQb(i, (q$c(), n$c))))) { + d = mXc(i, e); + p = lWc(i, b); + l = 0; + m = 0; + if (d) { + q = d.e; + switch (e.g) { + case 2: + l = q.a - n - i.f.a; + p.e.a - n - i.f.a < l && (l = p.e.a - n - i.f.a); + m = l + i.f.a; + break; + case 1: + l = q.a + d.f.a + n; + p.e.a + n > l && (l = p.e.a + p.f.a + n); + m = l + i.f.a; + break; + case 4: + l = q.b - n - i.f.b; + p.e.b - n - i.f.b < l && (l = p.e.b - n - i.f.b); + m = l + i.f.b; + break; + case 3: + l = q.b + d.f.b + n; + p.e.b + n > l && (l = p.e.b + p.f.b + n); + m = l + i.f.b; + } + } else if (p) { + switch (e.g) { + case 2: + l = p.e.a - n - i.f.a; + m = l + i.f.a; + break; + case 1: + l = p.e.a + p.f.a + n; + m = l + i.f.a; + break; + case 4: + l = p.e.b - n - i.f.b; + m = l + i.f.b; + break; + case 3: + l = p.e.b + p.f.b + n; + m = l + i.f.b; + } + } + if (dE(mQb(b, K$c)) === dE((LZc(), IZc))) { + f = l; + g = m; + h = DDb(CDb(new SDb(null, new Swb(a.a, 16)), new IXc(f, g))); + if (h.a != null) { + e == (Cmd(), ymd) || e == zmd ? i.e.a = l : i.e.b = l; + } else { + e == (Cmd(), ymd) || e == Bmd ? h = DDb(CDb(NDb(new SDb(null, new Swb(a.a, 16))), new WXc(f))) : h = DDb(CDb(NDb(new SDb(null, new Swb(a.a, 16))), new YXc(f))); + h.a != null && (e == ymd || e == zmd ? i.e.a = Kfb(UD((sFb(h.a != null), RD(h.a, 42)).a)) : i.e.b = Kfb(UD((sFb(h.a != null), RD(h.a, 42)).a))); + } + if (h.a != null) { + k = Wmb(a.a, (sFb(h.a != null), h.a), 0); + if (k > 0 && k != RD(mQb(i, f_c), 17).a) { + pQb(i, UZc, (Geb(), true)); + pQb(i, f_c, sgb(k)); + } + } + } else { + e == (Cmd(), ymd) || e == zmd ? i.e.a = l : i.e.b = l; + } + } + } + c.Vg(); + } + function Fre(a) { + var b, c, d, e, f, g, h, i, j; + a.b = 1; + Mqe(a); + b = null; + if (a.c == 0 && a.a == 94) { + Mqe(a); + b = (Vse(), Vse(), new xte(4)); + rte(b, 0, MLe); + h = new xte(4); + } else { + h = (Vse(), Vse(), new xte(4)); + } + e = true; + while ((j = a.c) != 1) { + if (j == 0 && a.a == 93 && !e) { + if (b) { + wte(b, h); + h = b; + } + break; + } + c = a.a; + d = false; + if (j == 10) { + switch (c) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + ute(h, Ere(c)); + d = true; + break; + case 105: + case 73: + case 99: + case 67: + c = (ute(h, Ere(c)), -1); + c < 0 && (d = true); + break; + case 112: + case 80: + i = Sqe(a, c); + if (!i) + throw Adb(new Lqe(TId((Hde(), hJe)))); + ute(h, i); + d = true; + break; + default: + c = Dre(a); + } + } else if (j == 24 && !e) { + if (b) { + wte(b, h); + h = b; + } + f = Fre(a); + wte(h, f); + if (a.c != 0 || a.a != 93) + throw Adb(new Lqe(TId((Hde(), lJe)))); + break; + } + Mqe(a); + if (!d) { + if (j == 0) { + if (c == 91) + throw Adb(new Lqe(TId((Hde(), mJe)))); + if (c == 93) + throw Adb(new Lqe(TId((Hde(), nJe)))); + if (c == 45 && !e && a.a != 93) + throw Adb(new Lqe(TId((Hde(), oJe)))); + } + if (a.c != 0 || a.a != 45 || c == 45 && e) { + rte(h, c, c); + } else { + Mqe(a); + if ((j = a.c) == 1) + throw Adb(new Lqe(TId((Hde(), jJe)))); + if (j == 0 && a.a == 93) { + rte(h, c, c); + rte(h, 45, 45); + } else if (j == 0 && a.a == 93 || j == 24) { + throw Adb(new Lqe(TId((Hde(), oJe)))); + } else { + g = a.a; + if (j == 0) { + if (g == 91) + throw Adb(new Lqe(TId((Hde(), mJe)))); + if (g == 93) + throw Adb(new Lqe(TId((Hde(), nJe)))); + if (g == 45) + throw Adb(new Lqe(TId((Hde(), oJe)))); + } else + j == 10 && (g = Dre(a)); + Mqe(a); + if (c > g) + throw Adb(new Lqe(TId((Hde(), rJe)))); + rte(h, c, g); + } + } + } + e = false; + } + if (a.c == 1) + throw Adb(new Lqe(TId((Hde(), jJe)))); + vte(h); + ste(h); + a.b = 0; + Mqe(a); + return h; + } + function EGc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v; + c.Ug("Coffman-Graham Layering", 1); + if (b.a.c.length == 0) { + c.Vg(); + return; + } + v = RD(mQb(b, (yCc(), SAc)), 17).a; + i = 0; + g = 0; + for (m = new Anb(b.a); m.a < m.c.c.length; ) { + l = RD(ynb(m), 10); + l.p = i++; + for (f = new is(Mr(a3b(l).a.Kc(), new ir())); gs(f); ) { + e = RD(hs(f), 18); + e.p = g++; + } + } + a.d = $C(xdb, Hye, 28, i, 16, 1); + a.a = $C(xdb, Hye, 28, g, 16, 1); + a.b = $C(kE, Pwe, 28, i, 15, 1); + a.e = $C(kE, Pwe, 28, i, 15, 1); + a.f = $C(kE, Pwe, 28, i, 15, 1); + Nc(a.c); + FGc(a, b); + o2 = new pwb(new JGc(a)); + for (u = new Anb(b.a); u.a < u.c.c.length; ) { + s = RD(ynb(u), 10); + for (f = new is(Mr(Z2b(s).a.Kc(), new ir())); gs(f); ) { + e = RD(hs(f), 18); + a.a[e.p] || ++a.b[s.p]; + } + a.b[s.p] == 0 && (zFb(lwb(o2, s), Bxe), true); + } + h = 0; + while (o2.b.c.length != 0) { + s = RD(mwb(o2), 10); + a.f[s.p] = h++; + for (f = new is(Mr(a3b(s).a.Kc(), new ir())); gs(f); ) { + e = RD(hs(f), 18); + if (a.a[e.p]) { + continue; + } + q = e.d.i; + --a.b[q.p]; + Rc(a.c, q, sgb(a.f[s.p])); + a.b[q.p] == 0 && (zFb(lwb(o2, q), Bxe), true); + } + } + n = new pwb(new NGc(a)); + for (t = new Anb(b.a); t.a < t.c.c.length; ) { + s = RD(ynb(t), 10); + for (f = new is(Mr(a3b(s).a.Kc(), new ir())); gs(f); ) { + e = RD(hs(f), 18); + a.a[e.p] || ++a.e[s.p]; + } + a.e[s.p] == 0 && (zFb(lwb(n, s), Bxe), true); + } + k = new bnb(); + d = BGc(b, k); + while (n.b.c.length != 0) { + r = RD(mwb(n), 10); + (d.a.c.length >= v || !zGc(r, d)) && (d = BGc(b, k)); + g3b(r, d); + for (f = new is(Mr(Z2b(r).a.Kc(), new ir())); gs(f); ) { + e = RD(hs(f), 18); + if (a.a[e.p]) { + continue; + } + p = e.c.i; + --a.e[p.p]; + a.e[p.p] == 0 && (zFb(lwb(n, p), Bxe), true); + } + } + for (j = k.c.length - 1; j >= 0; --j) { + Rmb(b.b, (tFb(j, k.c.length), RD(k.c[j], 30))); + } + b.a.c.length = 0; + c.Vg(); + } + function Sec(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + u = false; + do { + u = false; + for (f = b ? new Xkb(a.a.b).a.gc() - 2 : 1; b ? f >= 0 : f < new Xkb(a.a.b).a.gc(); f += b ? -1 : 1) { + e = _5b(a.a, sgb(f)); + for (n = 0; n < e.b; n++) { + l = RD(ju(e, n), 10); + if (!nQb(l, (Ywc(), zwc))) { + continue; + } + if (a6b(a.a, sgb(f)) && a.r == (aEc(), TDc) || b6b(a.a, sgb(f)) && a.r == (aEc(), UDc)) { + continue; + } + t = true; + for (r = 0; r < e.b; r++) { + q = RD(ju(e, r), 10); + nQb(q, zwc) && (b && RD(mQb(l, zwc), 17).a < RD(mQb(q, zwc), 17).a || !b && RD(mQb(l, zwc), 17).a > RD(mQb(q, zwc), 17).a) && (t = false); + } + if (!t) { + continue; + } + i = b ? f + 1 : f - 1; + h = _5b(a.a, sgb(i)); + g = false; + s = true; + d = false; + for (k = Sub(h, 0); k.b != k.d.c; ) { + j = RD(evb(k), 10); + if (nQb(j, zwc)) { + if (j.p != l.p) { + g = g | (b ? RD(mQb(j, zwc), 17).a < RD(mQb(l, zwc), 17).a : RD(mQb(j, zwc), 17).a > RD(mQb(l, zwc), 17).a); + s = false; + } + } else if (!g && s) { + if (j.k == (r3b(), n3b)) { + d = true; + b ? m = RD(hs(new is(Mr(Z2b(j).a.Kc(), new ir()))), 18).c.i : m = RD(hs(new is(Mr(a3b(j).a.Kc(), new ir()))), 18).d.i; + if (m == l) { + b ? c = RD(hs(new is(Mr(a3b(j).a.Kc(), new ir()))), 18).d.i : c = RD(hs(new is(Mr(Z2b(j).a.Kc(), new ir()))), 18).c.i; + (b ? RD($5b(a.a, c), 17).a - RD($5b(a.a, m), 17).a : RD($5b(a.a, m), 17).a - RD($5b(a.a, c), 17).a) <= 2 && (s = false); + } + } + } + } + if (d && s) { + b ? c = RD(hs(new is(Mr(a3b(l).a.Kc(), new ir()))), 18).d.i : c = RD(hs(new is(Mr(Z2b(l).a.Kc(), new ir()))), 18).c.i; + (b ? RD($5b(a.a, c), 17).a - RD($5b(a.a, l), 17).a : RD($5b(a.a, l), 17).a - RD($5b(a.a, c), 17).a) <= 2 && c.k == (r3b(), p3b) && (s = false); + } + if (g || s) { + p = Xec(a, l, b); + while (p.a.gc() != 0) { + o2 = RD(p.a.ec().Kc().Pb(), 10); + p.a.Bc(o2) != null; + ye(p, Xec(a, o2, b)); + } + --n; + u = true; + } + } + } + } while (u); + } + function Xae(a) { + _Ad(a.c, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "http://www.w3.org/2001/XMLSchema#decimal"])); + _Ad(a.d, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "http://www.w3.org/2001/XMLSchema#integer"])); + _Ad(a.e, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "http://www.w3.org/2001/XMLSchema#boolean"])); + _Ad(a.f, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "EBoolean", GIe, "EBoolean:Object"])); + _Ad(a.i, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "http://www.w3.org/2001/XMLSchema#byte"])); + _Ad(a.g, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "http://www.w3.org/2001/XMLSchema#hexBinary"])); + _Ad(a.j, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "EByte", GIe, "EByte:Object"])); + _Ad(a.n, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "EChar", GIe, "EChar:Object"])); + _Ad(a.t, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "http://www.w3.org/2001/XMLSchema#double"])); + _Ad(a.u, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "EDouble", GIe, "EDouble:Object"])); + _Ad(a.F, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "http://www.w3.org/2001/XMLSchema#float"])); + _Ad(a.G, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "EFloat", GIe, "EFloat:Object"])); + _Ad(a.I, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "http://www.w3.org/2001/XMLSchema#int"])); + _Ad(a.J, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "EInt", GIe, "EInt:Object"])); + _Ad(a.N, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "http://www.w3.org/2001/XMLSchema#long"])); + _Ad(a.O, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "ELong", GIe, "ELong:Object"])); + _Ad(a.Z, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "http://www.w3.org/2001/XMLSchema#short"])); + _Ad(a.$, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "EShort", GIe, "EShort:Object"])); + _Ad(a._, qKe, cD(WC(qJ, 1), Nve, 2, 6, [DKe, "http://www.w3.org/2001/XMLSchema#string"])); + } + function C0c(a, b, c, d, e, f, g) { + var h, i, j, k, l, m, n, o2; + m = RD(d.a, 17).a; + n = RD(d.b, 17).a; + l = a.b; + o2 = a.c; + h = 0; + k = 0; + if (b == (Cmd(), ymd) || b == zmd) { + k = Uvb(QCb(HDb(GDb(new SDb(null, new Swb(c.b, 16)), new b2c()), new b1c()))); + if (l.e.b + l.f.b / 2 > k) { + j = ++n; + h = Kfb(UD(Lvb(JDb(GDb(new SDb(null, new Swb(c.b, 16)), new d2c(e, j)), new d1c())))); + } else { + i = ++m; + h = Kfb(UD(Lvb(KDb(GDb(new SDb(null, new Swb(c.b, 16)), new f2c(e, i)), new h1c())))); + } + } else { + k = Uvb(QCb(HDb(GDb(new SDb(null, new Swb(c.b, 16)), new x1c()), new l1c()))); + if (l.e.a + l.f.a / 2 > k) { + j = ++n; + h = Kfb(UD(Lvb(JDb(GDb(new SDb(null, new Swb(c.b, 16)), new z1c(e, j)), new n1c())))); + } else { + i = ++m; + h = Kfb(UD(Lvb(KDb(GDb(new SDb(null, new Swb(c.b, 16)), new B1c(e, i)), new r1c())))); + } + } + if (b == ymd) { + Oub(a.a, new rjd(Kfb(UD(mQb(l, (q$c(), f$c)))) - e, h)); + Oub(a.a, new rjd(o2.e.a + o2.f.a + e + f, h)); + Oub(a.a, new rjd(o2.e.a + o2.f.a + e + f, o2.e.b + o2.f.b / 2)); + Oub(a.a, new rjd(o2.e.a + o2.f.a, o2.e.b + o2.f.b / 2)); + } else if (b == zmd) { + Oub(a.a, new rjd(Kfb(UD(mQb(l, (q$c(), e$c)))) + e, l.e.b + l.f.b / 2)); + Oub(a.a, new rjd(l.e.a + l.f.a + e, h)); + Oub(a.a, new rjd(o2.e.a - e - f, h)); + Oub(a.a, new rjd(o2.e.a - e - f, o2.e.b + o2.f.b / 2)); + Oub(a.a, new rjd(o2.e.a, o2.e.b + o2.f.b / 2)); + } else if (b == Bmd) { + Oub(a.a, new rjd(h, Kfb(UD(mQb(l, (q$c(), f$c)))) - e)); + Oub(a.a, new rjd(h, o2.e.b + o2.f.b + e + f)); + Oub(a.a, new rjd(o2.e.a + o2.f.a / 2, o2.e.b + o2.f.b + e + f)); + Oub(a.a, new rjd(o2.e.a + o2.f.a / 2, o2.e.b + o2.f.b + e)); + } else { + a.a.b == 0 || (RD(Rub(a.a), 8).b = Kfb(UD(mQb(l, (q$c(), e$c)))) + e * RD(g.b, 17).a); + Oub(a.a, new rjd(h, Kfb(UD(mQb(l, (q$c(), e$c)))) + e * RD(g.b, 17).a)); + Oub(a.a, new rjd(h, o2.e.b - e * RD(g.a, 17).a - f)); + } + return new Ptd(sgb(m), sgb(n)); + } + function ASd(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n; + g = true; + l = null; + d = null; + e = null; + b = false; + n = _Rd; + j = null; + f = null; + h = 0; + i = sSd(a, h, ZRd, $Rd); + if (i < a.length && (BFb(i, a.length), a.charCodeAt(i) == 58)) { + l = (AFb(h, i, a.length), a.substr(h, i - h)); + h = i + 1; + } + c = l != null && tpb(eSd, l.toLowerCase()); + if (c) { + i = a.lastIndexOf("!/"); + if (i == -1) { + throw Adb(new agb("no archive separator")); + } + g = true; + d = zhb(a, h, ++i); + h = i; + } else if (h >= 0 && lhb(a.substr(h, "//".length), "//")) { + h += 2; + i = sSd(a, h, aSd, bSd); + d = (AFb(h, i, a.length), a.substr(h, i - h)); + h = i; + } else if (l != null && (h == a.length || (BFb(h, a.length), a.charCodeAt(h) != 47))) { + g = false; + i = rhb(a, Fhb(35), h); + i == -1 && (i = a.length); + d = (AFb(h, i, a.length), a.substr(h, i - h)); + h = i; + } + if (!c && h < a.length && (BFb(h, a.length), a.charCodeAt(h) == 47)) { + i = sSd(a, h + 1, aSd, bSd); + k = (AFb(h + 1, i, a.length), a.substr(h + 1, i - (h + 1))); + if (k.length > 0 && ihb(k, k.length - 1) == 58) { + e = k; + h = i; + } + } + if (h < a.length && (BFb(h, a.length), a.charCodeAt(h) == 47)) { + ++h; + b = true; + } + if (h < a.length && (BFb(h, a.length), a.charCodeAt(h) != 63) && (BFb(h, a.length), a.charCodeAt(h) != 35)) { + m = new bnb(); + while (h < a.length && (BFb(h, a.length), a.charCodeAt(h) != 63) && (BFb(h, a.length), a.charCodeAt(h) != 35)) { + i = sSd(a, h, aSd, bSd); + Rmb(m, (AFb(h, i, a.length), a.substr(h, i - h))); + h = i; + h < a.length && (BFb(h, a.length), a.charCodeAt(h) == 47) && (BSd(a, ++h) || (m.c.push(""), true)); + } + n = $C(qJ, Nve, 2, m.c.length, 6, 1); + anb(m, n); + } + if (h < a.length && (BFb(h, a.length), a.charCodeAt(h) == 63)) { + i = phb(a, 35, ++h); + i == -1 && (i = a.length); + j = (AFb(h, i, a.length), a.substr(h, i - h)); + h = i; + } + h < a.length && (f = yhb(a, ++h)); + ISd(g, l, d, e, n, j); + return new lSd(g, l, d, e, b, n, j, f); + } + function P_b() { + P_b = geb; + z$b(); + O_b = new Tp(); + Rc(O_b, (qpd(), cpd), bpd); + Rc(O_b, mpd, bpd); + Rc(O_b, dpd, bpd); + Rc(O_b, jpd, bpd); + Rc(O_b, ipd, bpd); + Rc(O_b, gpd, bpd); + Rc(O_b, jpd, cpd); + Rc(O_b, bpd, Zod); + Rc(O_b, cpd, Zod); + Rc(O_b, mpd, Zod); + Rc(O_b, dpd, Zod); + Rc(O_b, hpd, Zod); + Rc(O_b, jpd, Zod); + Rc(O_b, ipd, Zod); + Rc(O_b, gpd, Zod); + Rc(O_b, apd, Zod); + Rc(O_b, bpd, kpd); + Rc(O_b, cpd, kpd); + Rc(O_b, Zod, kpd); + Rc(O_b, mpd, kpd); + Rc(O_b, dpd, kpd); + Rc(O_b, hpd, kpd); + Rc(O_b, jpd, kpd); + Rc(O_b, apd, kpd); + Rc(O_b, lpd, kpd); + Rc(O_b, ipd, kpd); + Rc(O_b, epd, kpd); + Rc(O_b, gpd, kpd); + Rc(O_b, cpd, mpd); + Rc(O_b, dpd, mpd); + Rc(O_b, jpd, mpd); + Rc(O_b, gpd, mpd); + Rc(O_b, cpd, dpd); + Rc(O_b, mpd, dpd); + Rc(O_b, jpd, dpd); + Rc(O_b, dpd, dpd); + Rc(O_b, ipd, dpd); + Rc(O_b, bpd, $od); + Rc(O_b, cpd, $od); + Rc(O_b, Zod, $od); + Rc(O_b, kpd, $od); + Rc(O_b, mpd, $od); + Rc(O_b, dpd, $od); + Rc(O_b, hpd, $od); + Rc(O_b, jpd, $od); + Rc(O_b, lpd, $od); + Rc(O_b, apd, $od); + Rc(O_b, gpd, $od); + Rc(O_b, ipd, $od); + Rc(O_b, fpd, $od); + Rc(O_b, bpd, lpd); + Rc(O_b, cpd, lpd); + Rc(O_b, Zod, lpd); + Rc(O_b, mpd, lpd); + Rc(O_b, dpd, lpd); + Rc(O_b, hpd, lpd); + Rc(O_b, jpd, lpd); + Rc(O_b, apd, lpd); + Rc(O_b, gpd, lpd); + Rc(O_b, epd, lpd); + Rc(O_b, fpd, lpd); + Rc(O_b, cpd, apd); + Rc(O_b, mpd, apd); + Rc(O_b, dpd, apd); + Rc(O_b, jpd, apd); + Rc(O_b, lpd, apd); + Rc(O_b, gpd, apd); + Rc(O_b, ipd, apd); + Rc(O_b, bpd, _od); + Rc(O_b, cpd, _od); + Rc(O_b, Zod, _od); + Rc(O_b, mpd, _od); + Rc(O_b, dpd, _od); + Rc(O_b, hpd, _od); + Rc(O_b, jpd, _od); + Rc(O_b, apd, _od); + Rc(O_b, gpd, _od); + Rc(O_b, cpd, ipd); + Rc(O_b, Zod, ipd); + Rc(O_b, kpd, ipd); + Rc(O_b, dpd, ipd); + Rc(O_b, bpd, epd); + Rc(O_b, cpd, epd); + Rc(O_b, kpd, epd); + Rc(O_b, mpd, epd); + Rc(O_b, dpd, epd); + Rc(O_b, hpd, epd); + Rc(O_b, jpd, epd); + Rc(O_b, jpd, fpd); + Rc(O_b, dpd, fpd); + Rc(O_b, apd, bpd); + Rc(O_b, apd, mpd); + Rc(O_b, apd, Zod); + Rc(O_b, hpd, bpd); + Rc(O_b, hpd, cpd); + Rc(O_b, hpd, kpd); + } + function _Qc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w; + c.Ug("Brandes & Koepf node placement", 1); + a.a = b; + a.c = iRc(b); + d = RD(mQb(b, (yCc(), fBc)), 281); + n = Heb(TD(mQb(b, gBc))); + a.d = d == (Ouc(), Luc) && !n || d == Iuc; + $Qc(a, b); + v = null; + w = null; + r = null; + s = null; + q = (dk(4, iwe), new cnb(4)); + switch (RD(mQb(b, fBc), 281).g) { + case 3: + r = new sQc(b, a.c.d, (EQc(), CQc), (wQc(), uQc)); + ZEb(q.c, r); + break; + case 1: + s = new sQc(b, a.c.d, (EQc(), DQc), (wQc(), uQc)); + ZEb(q.c, s); + break; + case 4: + v = new sQc(b, a.c.d, (EQc(), CQc), (wQc(), vQc)); + ZEb(q.c, v); + break; + case 2: + w = new sQc(b, a.c.d, (EQc(), DQc), (wQc(), vQc)); + ZEb(q.c, w); + break; + default: + r = new sQc(b, a.c.d, (EQc(), CQc), (wQc(), uQc)); + s = new sQc(b, a.c.d, DQc, uQc); + v = new sQc(b, a.c.d, CQc, vQc); + w = new sQc(b, a.c.d, DQc, vQc); + ZEb(q.c, v); + ZEb(q.c, w); + ZEb(q.c, r); + ZEb(q.c, s); + } + e = new MQc(b, a.c); + for (h = new Anb(q); h.a < h.c.c.length; ) { + f = RD(ynb(h), 185); + LQc(e, f, a.b); + KQc(f); + } + m = new RQc(b, a.c); + for (i = new Anb(q); i.a < i.c.c.length; ) { + f = RD(ynb(i), 185); + OQc(m, f); + } + if (c._g()) { + for (j = new Anb(q); j.a < j.c.c.length; ) { + f = RD(ynb(j), 185); + c.bh(f + " size is " + qQc(f)); + } + } + l = null; + if (a.d) { + k = YQc(a, q, a.c.d); + XQc(b, k, c) && (l = k); + } + if (!l) { + for (j = new Anb(q); j.a < j.c.c.length; ) { + f = RD(ynb(j), 185); + XQc(b, f, c) && (!l || qQc(l) > qQc(f)) && (l = f); + } + } + !l && (l = (tFb(0, q.c.length), RD(q.c[0], 185))); + for (p = new Anb(b.b); p.a < p.c.c.length; ) { + o2 = RD(ynb(p), 30); + for (u = new Anb(o2.a); u.a < u.c.c.length; ) { + t = RD(ynb(u), 10); + t.n.b = Kfb(l.p[t.p]) + Kfb(l.d[t.p]); + } + } + if (c._g()) { + c.bh("Chosen node placement: " + l); + c.bh("Blocks: " + bRc(l)); + c.bh("Classes: " + cRc(l, c)); + c.bh("Marked edges: " + a.b); + } + for (g = new Anb(q); g.a < g.c.c.length; ) { + f = RD(ynb(g), 185); + f.g = null; + f.b = null; + f.a = null; + f.d = null; + f.j = null; + f.i = null; + f.p = null; + } + gRc(a.c); + a.b.a.$b(); + c.Vg(); + } + function GVc(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G; + if (a.c.length == 1) { + CVc((tFb(0, a.c.length), RD(a.c[0], 121))); + return tFb(0, a.c.length), RD(a.c[0], 121); + } else if (a.c.length <= 0) { + return new YWc(); + } + for (i = new Anb(a); i.a < i.c.c.length; ) { + g = RD(ynb(i), 121); + s = 0; + o2 = lve; + p = lve; + m = qwe; + n = qwe; + for (r = Sub(g.b, 0); r.b != r.d.c; ) { + q = RD(evb(r), 40); + s += RD(mQb(q, (h_c(), X$c)), 17).a; + o2 = $wnd.Math.min(o2, q.e.a); + p = $wnd.Math.min(p, q.e.b); + m = $wnd.Math.max(m, q.e.a + q.f.a); + n = $wnd.Math.max(n, q.e.b + q.f.b); + } + pQb(g, (h_c(), X$c), sgb(s)); + pQb(g, (q$c(), SZc), new rjd(o2, p)); + pQb(g, RZc, new rjd(m, n)); + } + yob(); + _mb(a, new KVc()); + v = new YWc(); + kQb(v, (tFb(0, a.c.length), RD(a.c[0], 96))); + l = 0; + D = 0; + for (j = new Anb(a); j.a < j.c.c.length; ) { + g = RD(ynb(j), 121); + w = ojd(ajd(RD(mQb(g, (q$c(), RZc)), 8)), RD(mQb(g, SZc), 8)); + l = $wnd.Math.max(l, w.a); + D += w.a * w.b; + } + l = $wnd.Math.max(l, $wnd.Math.sqrt(D) * Kfb(UD(mQb(v, (h_c(), E$c))))); + A = Kfb(UD(mQb(v, _$c))); + F = 0; + G = 0; + k = 0; + b = A; + for (h = new Anb(a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 121); + w = ojd(ajd(RD(mQb(g, (q$c(), RZc)), 8)), RD(mQb(g, SZc), 8)); + if (F + w.a > l) { + F = 0; + G += k + A; + k = 0; + } + FVc(v, g, F, G); + b = $wnd.Math.max(b, F + w.a); + k = $wnd.Math.max(k, w.b); + F += w.a + A; + } + u = new Tsb(); + c = new Tsb(); + for (C = new Anb(a); C.a < C.c.c.length; ) { + B = RD(ynb(C), 121); + d = Heb(TD(mQb(B, (umd(), Mkd)))); + t = !B.q ? wob : B.q; + for (f = t.vc().Kc(); f.Ob(); ) { + e = RD(f.Pb(), 44); + if (Ujb(u, e.ld())) { + if (dE(RD(e.ld(), 149).Sg()) !== dE(e.md())) { + if (d && Ujb(c, e.ld())) { + gib(); + "Found different values for property " + RD(e.ld(), 149).Pg() + " in components."; + } else { + Zjb(u, RD(e.ld(), 149), e.md()); + pQb(v, RD(e.ld(), 149), e.md()); + d && Zjb(c, RD(e.ld(), 149), e.md()); + } + } + } else { + Zjb(u, RD(e.ld(), 149), e.md()); + pQb(v, RD(e.ld(), 149), e.md()); + } + } + } + CVc(v); + return v; + } + function f7d(a, b) { + switch (a.e) { + case 0: + case 2: + case 4: + case 6: + case 42: + case 44: + case 46: + case 48: + case 8: + case 10: + case 12: + case 14: + case 16: + case 18: + case 20: + case 22: + case 24: + case 26: + case 28: + case 30: + case 32: + case 34: + case 36: + case 38: + return new sje(a.b, a.a, b, a.c); + case 1: + return new _Zd(a.a, b, BYd(b.Dh(), a.c)); + case 43: + return new lie(a.a, b, BYd(b.Dh(), a.c)); + case 3: + return new XZd(a.a, b, BYd(b.Dh(), a.c)); + case 45: + return new iie(a.a, b, BYd(b.Dh(), a.c)); + case 41: + return new DVd(RD(WVd(a.c), 29), a.a, b, BYd(b.Dh(), a.c)); + case 50: + return new Cje(RD(WVd(a.c), 29), a.a, b, BYd(b.Dh(), a.c)); + case 5: + return new oie(a.a, b, BYd(b.Dh(), a.c), a.d.n); + case 47: + return new sie(a.a, b, BYd(b.Dh(), a.c), a.d.n); + case 7: + return new C5d(a.a, b, BYd(b.Dh(), a.c), a.d.n); + case 49: + return new G5d(a.a, b, BYd(b.Dh(), a.c), a.d.n); + case 9: + return new gie(a.a, b, BYd(b.Dh(), a.c)); + case 11: + return new eie(a.a, b, BYd(b.Dh(), a.c)); + case 13: + return new aie(a.a, b, BYd(b.Dh(), a.c)); + case 15: + return new Kfe(a.a, b, BYd(b.Dh(), a.c)); + case 17: + return new Cie(a.a, b, BYd(b.Dh(), a.c)); + case 19: + return new zie(a.a, b, BYd(b.Dh(), a.c)); + case 21: + return new vie(a.a, b, BYd(b.Dh(), a.c)); + case 23: + return new PZd(a.a, b, BYd(b.Dh(), a.c)); + case 25: + return new bje(a.a, b, BYd(b.Dh(), a.c), a.d.n); + case 27: + return new Yie(a.a, b, BYd(b.Dh(), a.c), a.d.n); + case 29: + return new Tie(a.a, b, BYd(b.Dh(), a.c), a.d.n); + case 31: + return new Nie(a.a, b, BYd(b.Dh(), a.c), a.d.n); + case 33: + return new $ie(a.a, b, BYd(b.Dh(), a.c), a.d.n); + case 35: + return new Vie(a.a, b, BYd(b.Dh(), a.c), a.d.n); + case 37: + return new Pie(a.a, b, BYd(b.Dh(), a.c), a.d.n); + case 39: + return new Iie(a.a, b, BYd(b.Dh(), a.c), a.d.n); + case 40: + return new Uge(b, BYd(b.Dh(), a.c)); + default: + throw Adb(new yz("Unknown feature style: " + a.e)); + } + } + function h2c(a) { + var b, c, d, e, f, g, h, i; + f = 0; + e = a.a.b; + for (i = Sub(a.a, 0); i.b != i.d.c; ) { + h = RD(evb(i), 240); + g = (f + 1) / (e + 1); + if (!a.c && !a.d) { + return; + } else if (!!a.c && !a.d) { + a.g = true; + if (a.b == (Cmd(), ymd)) { + d = a.c.e.b + a.c.f.b + a.e * (f + 1); + b = new rjd(Kfb(UD(mQb(a.c, (q$c(), e$c)))) + a.e, d); + c = new rjd(Kfb(UD(mQb(a.c, f$c))) - a.e, d); + } else if (a.b == zmd) { + d = a.c.e.b + a.c.f.b + a.e * (f + 1); + b = new rjd(Kfb(UD(mQb(a.c, (q$c(), f$c)))) - a.e, d); + c = new rjd(Kfb(UD(mQb(a.c, e$c))) + a.e, d); + } else if (a.b == Bmd) { + d = a.c.e.a + a.c.f.a + a.e * (f + 1); + b = new rjd(d, Kfb(UD(mQb(a.c, (q$c(), e$c)))) + a.e); + c = new rjd(d, Kfb(UD(mQb(a.c, f$c))) - a.e); + } else { + d = a.c.e.a + a.c.f.a + a.e * (f + 1); + b = new rjd(d, Kfb(UD(mQb(a.c, (q$c(), f$c)))) - a.e); + c = new rjd(d, Kfb(UD(mQb(a.c, e$c))) + a.e); + } + } else if (!!a.c && !!a.d) { + if (a.b == (Cmd(), ymd)) { + d = a.d.e.b * g + (a.c.e.b + a.c.f.b) * (1 - g); + b = new rjd(Kfb(UD(mQb(a.c, (q$c(), e$c)))) + a.e, d); + c = new rjd(Kfb(UD(mQb(a.c, f$c))) - a.e, d); + } else if (a.b == zmd) { + d = a.d.e.b * g + (a.c.e.b + a.c.f.b) * (1 - g); + b = new rjd(Kfb(UD(mQb(a.c, (q$c(), f$c)))) - a.e, d); + c = new rjd(Kfb(UD(mQb(a.c, e$c))) + a.e, d); + } else if (a.b == Bmd) { + d = a.d.e.a * g + (a.c.e.a + a.c.f.a) * (1 - g); + b = new rjd(d, Kfb(UD(mQb(a.c, (q$c(), e$c)))) + a.e); + c = new rjd(d, Kfb(UD(mQb(a.c, f$c))) - a.e); + } else { + d = a.d.e.a * g + (a.c.e.a + a.c.f.a) * (1 - g); + b = new rjd(d, Kfb(UD(mQb(a.c, (q$c(), f$c)))) - a.e); + c = new rjd(d, Kfb(UD(mQb(a.c, e$c))) + a.e); + } + } else { + a.f = true; + if (a.b == (Cmd(), ymd)) { + d = a.d.e.b - a.e * (f + 1); + b = new rjd(Kfb(UD(mQb(a.d, (q$c(), e$c)))) + a.e, d); + c = new rjd(Kfb(UD(mQb(a.d, f$c))) - a.e, d); + } else if (a.b == zmd) { + d = a.d.e.b - a.e * (f + 1); + b = new rjd(Kfb(UD(mQb(a.d, (q$c(), f$c)))) - a.e, d); + c = new rjd(Kfb(UD(mQb(a.d, e$c))) + a.e, d); + } else if (a.b == Bmd) { + d = a.d.e.a - a.e * (f + 1); + b = new rjd(d, Kfb(UD(mQb(a.d, (q$c(), e$c)))) + a.e); + c = new rjd(d, Kfb(UD(mQb(a.d, f$c))) - a.e); + } else { + d = a.d.e.a - a.e * (f + 1); + b = new rjd(d, Kfb(UD(mQb(a.d, (q$c(), f$c)))) - a.e); + c = new rjd(d, Kfb(UD(mQb(a.d, e$c))) + a.e); + } + } + RD(h.a, 8).a = b.a; + RD(h.a, 8).b = b.b; + h.b.a = c.a; + h.b.b = c.b; + ++f; + } + } + function LA(a, b, c, d, e, f) { + var g, h, i, j, k, l, m, n, o2, p, q, r; + switch (b) { + case 71: + h = d.q.getFullYear() - Owe >= -1900 ? 1 : 0; + c >= 4 ? Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, [Qwe, Rwe])[h]) : Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, ["BC", "AD"])[h]); + break; + case 121: + AA(a, c, d); + break; + case 77: + zA(a, c, d); + break; + case 107: + i = e.q.getHours(); + i == 0 ? UA(a, 24, c) : UA(a, i, c); + break; + case 83: + yA(a, c, e); + break; + case 69: + k = d.q.getDay(); + c == 5 ? Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, ["S", "M", "T", "W", "T", "F", "S"])[k]) : c == 4 ? Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, [Swe, Twe, Uwe, Vwe, Wwe, Xwe, Ywe])[k]) : Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[k]); + break; + case 97: + e.q.getHours() >= 12 && e.q.getHours() < 24 ? Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, ["AM", "PM"])[1]) : Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, ["AM", "PM"])[0]); + break; + case 104: + l = e.q.getHours() % 12; + l == 0 ? UA(a, 12, c) : UA(a, l, c); + break; + case 75: + m = e.q.getHours() % 12; + UA(a, m, c); + break; + case 72: + n = e.q.getHours(); + UA(a, n, c); + break; + case 99: + o2 = d.q.getDay(); + c == 5 ? Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, ["S", "M", "T", "W", "T", "F", "S"])[o2]) : c == 4 ? Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, [Swe, Twe, Uwe, Vwe, Wwe, Xwe, Ywe])[o2]) : c == 3 ? Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[o2]) : UA(a, o2, 1); + break; + case 76: + p = d.q.getMonth(); + c == 5 ? Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"])[p]) : c == 4 ? Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, [Cwe, Dwe, Ewe, Fwe, Gwe, Hwe, Iwe, Jwe, Kwe, Lwe, Mwe, Nwe])[p]) : c == 3 ? Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, ["Jan", "Feb", "Mar", "Apr", Gwe, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[p]) : UA(a, p + 1, c); + break; + case 81: + q = d.q.getMonth() / 3 | 0; + c < 4 ? Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, ["Q1", "Q2", "Q3", "Q4"])[q]) : Zhb(a, cD(WC(qJ, 1), Nve, 2, 6, ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"])[q]); + break; + case 100: + r = d.q.getDate(); + UA(a, r, c); + break; + case 109: + j = e.q.getMinutes(); + UA(a, j, c); + break; + case 115: + g = e.q.getSeconds(); + UA(a, g, c); + break; + case 122: + c < 4 ? Zhb(a, f.c[0]) : Zhb(a, f.c[1]); + break; + case 118: + Zhb(a, f.b); + break; + case 90: + c < 3 ? Zhb(a, cB(f)) : c == 3 ? Zhb(a, bB(f)) : Zhb(a, eB(f.a)); + break; + default: + return false; + } + return true; + } + function f5b(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H; + X4b(b); + i = RD(QHd((!b.b && (b.b = new Yie(E4, b, 4, 7)), b.b), 0), 84); + k = RD(QHd((!b.c && (b.c = new Yie(E4, b, 5, 8)), b.c), 0), 84); + h = AGd(i); + j = AGd(k); + g = (!b.a && (b.a = new C5d(F4, b, 6, 6)), b.a).i == 0 ? null : RD(QHd((!b.a && (b.a = new C5d(F4, b, 6, 6)), b.a), 0), 166); + A = RD(Wjb(a.a, h), 10); + F = RD(Wjb(a.a, j), 10); + B = null; + G = null; + if (ZD(i, 193)) { + w = RD(Wjb(a.a, i), 305); + if (ZD(w, 12)) { + B = RD(w, 12); + } else if (ZD(w, 10)) { + A = RD(w, 10); + B = RD(Vmb(A.j, 0), 12); + } + } + if (ZD(k, 193)) { + D = RD(Wjb(a.a, k), 305); + if (ZD(D, 12)) { + G = RD(D, 12); + } else if (ZD(D, 10)) { + F = RD(D, 10); + G = RD(Vmb(F.j, 0), 12); + } + } + if (!A || !F) { + throw Adb(new Ked("The source or the target of edge " + b + " could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN.")); + } + p = new a1b(); + kQb(p, b); + pQb(p, (Ywc(), Awc), b); + pQb(p, (yCc(), RAc), null); + n = RD(mQb(d, kwc), 21); + A == F && n.Fc((ovc(), nvc)); + if (!B) { + v = (BEc(), zEc); + C = null; + if (!!g && Dod(RD(mQb(A, BBc), 101))) { + C = new rjd(g.j, g.k); + Fsd(C, kzd(b)); + Gsd(C, c); + if (NGd(j, h)) { + v = yEc; + $id(C, A.n); + } + } + B = g2b(A, C, v, d); + } + if (!G) { + v = (BEc(), yEc); + H = null; + if (!!g && Dod(RD(mQb(F, BBc), 101))) { + H = new rjd(g.b, g.c); + Fsd(H, kzd(b)); + Gsd(H, c); + } + G = g2b(F, H, v, Y2b(F)); + } + Y0b(p, B); + Z0b(p, G); + (B.e.c.length > 1 || B.g.c.length > 1 || G.e.c.length > 1 || G.g.c.length > 1) && n.Fc((ovc(), ivc)); + for (m = new dMd((!b.n && (b.n = new C5d(I4, b, 1, 7)), b.n)); m.e != m.i.gc(); ) { + l = RD(bMd(m), 135); + if (!Heb(TD(Gxd(l, pBc))) && !!l.a) { + q = h5b(l); + Rmb(p.b, q); + switch (RD(mQb(q, wAc), 278).g) { + case 1: + case 2: + n.Fc((ovc(), gvc)); + break; + case 0: + n.Fc((ovc(), evc)); + pQb(q, wAc, (Omd(), Lmd)); + } + } + } + f = RD(mQb(d, oAc), 322); + r = RD(mQb(d, kBc), 323); + e = f == (stc(), ptc) || r == (JDc(), FDc); + if (!!g && (!g.a && (g.a = new XZd(D4, g, 5)), g.a).i != 0 && e) { + s = ssd(g); + o2 = new Ejd(); + for (u = Sub(s, 0); u.b != u.d.c; ) { + t = RD(evb(u), 8); + Mub(o2, new sjd(t)); + } + pQb(p, Bwc, o2); + } + return p; + } + function F0c(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I; + C = 0; + D = 0; + A = new Tsb(); + v = RD(Lvb(JDb(GDb(new SDb(null, new Swb(a.b, 16)), new v1c()), new Z0c())), 17).a + 1; + B = $C(kE, Pwe, 28, v, 15, 1); + q = $C(kE, Pwe, 28, v, 15, 1); + for (p = 0; p < v; p++) { + B[p] = 0; + q[p] = 0; + } + i = RD(zDb(BDb(new SDb(null, new Swb(a.a, 16))), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + for (k = i.Kc(); k.Ob(); ) { + j = RD(k.Pb(), 65); + G = RD(mQb(j.b, (h_c(), f_c)), 17).a; + I = RD(mQb(j.c, f_c), 17).a; + u = I - G; + if (u > 1) { + for (h = G + 1; h < I; h++) { + l = h; + w = RD(zDb(CDb(new SDb(null, new Swb(a.b, 16)), new P1c(l)), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [vBb]))), 15); + o2 = 0; + if (b == (Cmd(), ymd) || b == zmd) { + w.jd(new V1c()); + for (o2 = 0; o2 < w.gc(); o2++) { + r = (h - G) / (I - G); + if (RD(w.Xb(o2), 40).e.b > j.b.e.b * (1 - r) + j.c.e.b * r) { + break; + } + } + if (w.gc() > 0) { + H = j.a.b == 0 ? ajd(j.b.e) : RD(Rub(j.a), 8); + t = $id(ajd(RD(w.Xb(w.gc() - 1), 40).e), RD(w.Xb(w.gc() - 1), 40).f); + m = $id(ajd(RD(w.Xb(0), 40).e), RD(w.Xb(0), 40).f); + if (o2 >= w.gc() - 1 && H.b > t.b && j.c.e.b > t.b) { + continue; + } + if (o2 <= 0 && H.b < m.a && j.c.e.b < m.b) { + continue; + } + } + } else { + w.jd(new Z1c()); + for (o2 = 0; o2 < w.gc(); o2++) { + r = (h - G) / (I - G); + if (RD(w.Xb(o2), 40).e.a > j.b.e.a * (1 - r) + j.c.e.a * r) { + break; + } + } + if (w.gc() > 0) { + H = j.a.b == 0 ? ajd(j.b.e) : RD(Rub(j.a), 8); + t = $id(ajd(RD(w.Xb(w.gc() - 1), 40).e), RD(w.Xb(w.gc() - 1), 40).f); + m = $id(ajd(RD(w.Xb(0), 40).e), RD(w.Xb(0), 40).f); + if (o2 >= w.gc() - 1 && H.a > t.a && j.c.e.a > t.a) { + continue; + } + if (o2 <= 0 && H.a < m.a && j.c.e.a < m.a) { + continue; + } + } + } + e = new pjd(); + f = new pjd(); + Mub(j.a, e); + Mub(j.a, f); + g = new gud(e, f, j); + s = Rdb(Sdb(h, 32), Cdb(o2, yxe)); + if (Ujb(A, Hgb(s))) { + n = RD(Wjb(A, Hgb(s)), 675); + Mub(n.a, g); + Dmd(n.b) ? tvb(n.a, new l2c()) : tvb(n.a, new p2c()); + h2c(n); + } else { + n = new i2c(o2 == 0 ? null : RD(w.Xb(o2 - 1), 40), o2 == w.gc() ? null : RD(w.Xb(o2), 40), g, a); + Zjb(A, Hgb(s), n); + } + if (b == ymd || b == zmd) { + n.f && n.d.e.b <= Kfb(UD(mQb(a, (q$c(), _Zc)))) && ++C; + n.g && n.c.e.b + n.c.f.b >= Kfb(UD(mQb(a, (q$c(), $Zc)))) && ++D; + } else { + n.f && n.d.e.a <= Kfb(UD(mQb(a, (q$c(), ZZc)))) && ++C; + n.g && n.c.e.a + n.c.f.a >= Kfb(UD(mQb(a, (q$c(), YZc)))) && ++D; + } + } + } else if (u == 0) { + H0c(j); + } else if (u < 0) { + ++B[G]; + ++q[I]; + F = C0c(j, b, a, new Ptd(sgb(C), sgb(D)), c, d, new Ptd(sgb(q[I]), sgb(B[G]))); + C = RD(F.a, 17).a; + D = RD(F.b, 17).a; + } + } + } + function qrc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s; + d = b; + i = c; + if (a.b && d.j == (qpd(), ppd) && i.j == (qpd(), ppd)) { + s = d; + d = i; + i = s; + } + if (Ujb(a.a, d)) { + if (Zsb(RD(Wjb(a.a, d), 49), i)) { + return 1; + } + } else { + Zjb(a.a, d, new _sb()); + } + if (Ujb(a.a, i)) { + if (Zsb(RD(Wjb(a.a, i), 49), d)) { + return -1; + } + } else { + Zjb(a.a, i, new _sb()); + } + if (Ujb(a.d, d)) { + if (Zsb(RD(Wjb(a.d, d), 49), i)) { + return -1; + } + } else { + Zjb(a.d, d, new _sb()); + } + if (Ujb(a.d, i)) { + if (Zsb(RD(Wjb(a.a, i), 49), d)) { + return 1; + } + } else { + Zjb(a.d, i, new _sb()); + } + if (d.j != i.j) { + r = yrc(d.j, i.j); + r == -1 ? rrc(a, i, d) : rrc(a, d, i); + return r; + } + if (d.e.c.length != 0 && i.e.c.length != 0) { + if (a.b) { + r = orc(d, i); + if (r != 0) { + r == -1 ? rrc(a, i, d) : r == 1 && rrc(a, d, i); + return r; + } + } + f = RD(Vmb(d.e, 0), 18).c.i; + k = RD(Vmb(i.e, 0), 18).c.i; + if (f == k) { + e = RD(mQb(RD(Vmb(d.e, 0), 18), (Ywc(), zwc)), 17).a; + j = RD(mQb(RD(Vmb(i.e, 0), 18), zwc), 17).a; + e > j ? rrc(a, d, i) : rrc(a, i, d); + return e < j ? -1 : e > j ? 1 : 0; + } + for (o2 = a.c, p = 0, q = o2.length; p < q; ++p) { + n = o2[p]; + if (n == f) { + rrc(a, d, i); + return 1; + } else if (n == k) { + rrc(a, i, d); + return -1; + } + } + } + if (d.g.c.length != 0 && i.g.c.length != 0) { + h = RD(mQb(d, (Ywc(), xwc)), 10); + m = RD(mQb(i, xwc), 10); + if (a.e == (kEc(), jEc) && !!h && !!m && nQb(h, zwc) && nQb(m, zwc)) { + e = RD(mQb(h, zwc), 17).a; + j = RD(mQb(m, zwc), 17).a; + e > j ? rrc(a, d, i) : rrc(a, i, d); + return e < j ? -1 : e > j ? 1 : 0; + } + if (a.b) { + r = orc(d, i); + if (r != 0) { + r == -1 ? rrc(a, i, d) : r == 1 && rrc(a, d, i); + return r; + } + } + g = 0; + l = 0; + nQb(RD(Vmb(d.g, 0), 18), zwc) && (g = RD(mQb(RD(Vmb(d.g, 0), 18), zwc), 17).a); + nQb(RD(Vmb(i.g, 0), 18), zwc) && (l = RD(mQb(RD(Vmb(d.g, 0), 18), zwc), 17).a); + if (!!h && h == m) { + if (Heb(TD(mQb(RD(Vmb(d.g, 0), 18), Nwc))) && !Heb(TD(mQb(RD(Vmb(i.g, 0), 18), Nwc)))) { + rrc(a, d, i); + return 1; + } else if (!Heb(TD(mQb(RD(Vmb(d.g, 0), 18), Nwc))) && Heb(TD(mQb(RD(Vmb(i.g, 0), 18), Nwc)))) { + rrc(a, i, d); + return -1; + } + g > l ? rrc(a, d, i) : rrc(a, i, d); + return g < l ? -1 : g > l ? 1 : 0; + } + if (a.f) { + a.f._b(h) && (g = RD(a.f.xc(h), 17).a); + a.f._b(m) && (l = RD(a.f.xc(m), 17).a); + } + g > l ? rrc(a, d, i) : rrc(a, i, d); + return g < l ? -1 : g > l ? 1 : 0; + } + if (d.e.c.length != 0 && i.g.c.length != 0) { + rrc(a, d, i); + return 1; + } else if (d.g.c.length != 0 && i.e.c.length != 0) { + rrc(a, i, d); + return -1; + } else if (nQb(d, (Ywc(), zwc)) && nQb(i, zwc)) { + e = RD(mQb(d, zwc), 17).a; + j = RD(mQb(i, zwc), 17).a; + e > j ? rrc(a, d, i) : rrc(a, i, d); + return e < j ? -1 : e > j ? 1 : 0; + } else { + rrc(a, i, d); + return -1; + } + } + function Yae(a) { + if (a.gb) + return; + a.gb = true; + a.b = jBd(a, 0); + iBd(a.b, 18); + oBd(a.b, 19); + a.a = jBd(a, 1); + iBd(a.a, 1); + oBd(a.a, 2); + oBd(a.a, 3); + oBd(a.a, 4); + oBd(a.a, 5); + a.o = jBd(a, 2); + iBd(a.o, 8); + iBd(a.o, 9); + oBd(a.o, 10); + oBd(a.o, 11); + oBd(a.o, 12); + oBd(a.o, 13); + oBd(a.o, 14); + oBd(a.o, 15); + oBd(a.o, 16); + oBd(a.o, 17); + oBd(a.o, 18); + oBd(a.o, 19); + oBd(a.o, 20); + oBd(a.o, 21); + oBd(a.o, 22); + oBd(a.o, 23); + nBd(a.o); + nBd(a.o); + nBd(a.o); + nBd(a.o); + nBd(a.o); + nBd(a.o); + nBd(a.o); + nBd(a.o); + nBd(a.o); + nBd(a.o); + a.p = jBd(a, 3); + iBd(a.p, 2); + iBd(a.p, 3); + iBd(a.p, 4); + iBd(a.p, 5); + oBd(a.p, 6); + oBd(a.p, 7); + nBd(a.p); + nBd(a.p); + a.q = jBd(a, 4); + iBd(a.q, 8); + a.v = jBd(a, 5); + oBd(a.v, 9); + nBd(a.v); + nBd(a.v); + nBd(a.v); + a.w = jBd(a, 6); + iBd(a.w, 2); + iBd(a.w, 3); + iBd(a.w, 4); + oBd(a.w, 5); + a.B = jBd(a, 7); + oBd(a.B, 1); + nBd(a.B); + nBd(a.B); + nBd(a.B); + a.Q = jBd(a, 8); + oBd(a.Q, 0); + nBd(a.Q); + a.R = jBd(a, 9); + iBd(a.R, 1); + a.S = jBd(a, 10); + nBd(a.S); + nBd(a.S); + nBd(a.S); + nBd(a.S); + nBd(a.S); + nBd(a.S); + nBd(a.S); + nBd(a.S); + nBd(a.S); + nBd(a.S); + nBd(a.S); + nBd(a.S); + nBd(a.S); + nBd(a.S); + nBd(a.S); + a.T = jBd(a, 11); + oBd(a.T, 10); + oBd(a.T, 11); + oBd(a.T, 12); + oBd(a.T, 13); + oBd(a.T, 14); + nBd(a.T); + nBd(a.T); + a.U = jBd(a, 12); + iBd(a.U, 2); + iBd(a.U, 3); + oBd(a.U, 4); + oBd(a.U, 5); + oBd(a.U, 6); + oBd(a.U, 7); + nBd(a.U); + a.V = jBd(a, 13); + oBd(a.V, 10); + a.W = jBd(a, 14); + iBd(a.W, 18); + iBd(a.W, 19); + iBd(a.W, 20); + oBd(a.W, 21); + oBd(a.W, 22); + oBd(a.W, 23); + a.bb = jBd(a, 15); + iBd(a.bb, 10); + iBd(a.bb, 11); + iBd(a.bb, 12); + iBd(a.bb, 13); + iBd(a.bb, 14); + iBd(a.bb, 15); + iBd(a.bb, 16); + oBd(a.bb, 17); + nBd(a.bb); + nBd(a.bb); + a.eb = jBd(a, 16); + iBd(a.eb, 2); + iBd(a.eb, 3); + iBd(a.eb, 4); + iBd(a.eb, 5); + iBd(a.eb, 6); + iBd(a.eb, 7); + oBd(a.eb, 8); + oBd(a.eb, 9); + a.ab = jBd(a, 17); + iBd(a.ab, 0); + iBd(a.ab, 1); + a.H = jBd(a, 18); + oBd(a.H, 0); + oBd(a.H, 1); + oBd(a.H, 2); + oBd(a.H, 3); + oBd(a.H, 4); + oBd(a.H, 5); + nBd(a.H); + a.db = jBd(a, 19); + oBd(a.db, 2); + a.c = kBd(a, 20); + a.d = kBd(a, 21); + a.e = kBd(a, 22); + a.f = kBd(a, 23); + a.i = kBd(a, 24); + a.g = kBd(a, 25); + a.j = kBd(a, 26); + a.k = kBd(a, 27); + a.n = kBd(a, 28); + a.r = kBd(a, 29); + a.s = kBd(a, 30); + a.t = kBd(a, 31); + a.u = kBd(a, 32); + a.fb = kBd(a, 33); + a.A = kBd(a, 34); + a.C = kBd(a, 35); + a.D = kBd(a, 36); + a.F = kBd(a, 37); + a.G = kBd(a, 38); + a.I = kBd(a, 39); + a.J = kBd(a, 40); + a.L = kBd(a, 41); + a.M = kBd(a, 42); + a.N = kBd(a, 43); + a.O = kBd(a, 44); + a.P = kBd(a, 45); + a.X = kBd(a, 46); + a.Y = kBd(a, 47); + a.Z = kBd(a, 48); + a.$ = kBd(a, 49); + a._ = kBd(a, 50); + a.cb = kBd(a, 51); + a.K = kBd(a, 52); + } + function d5b(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G; + g = new Yub(); + w = RD(mQb(c, (yCc(), rAc)), 88); + p = 0; + ye(g, (!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a)); + while (g.b != 0) { + k = RD(g.b == 0 ? null : (sFb(g.b != 0), Wub(g, g.a.a)), 27); + j = vCd(k); + (dE(Gxd(j, cAc)) !== dE((kEc(), hEc)) || dE(Gxd(j, pAc)) === dE((Ptc(), Otc)) || dE(Gxd(j, pAc)) === dE((Ptc(), Mtc)) || Heb(TD(Gxd(j, eAc))) || dE(Gxd(j, Yzc)) !== dE((U$b(), T$b)) || dE(Gxd(j, ZAc)) === dE((aEc(), TDc)) || dE(Gxd(j, ZAc)) === dE((aEc(), UDc)) || dE(Gxd(j, $Ac)) === dE((_Cc(), SCc)) || dE(Gxd(j, $Ac)) === dE((_Cc(), UCc))) && !Heb(TD(Gxd(k, aAc))) && Ixd(k, (Ywc(), zwc), sgb(p++)); + r = !Heb(TD(Gxd(k, pBc))); + if (r) { + m = (!k.a && (k.a = new C5d(J4, k, 10, 11)), k.a).i != 0; + o2 = a5b(k); + n = dE(Gxd(k, IAc)) === dE((Fnd(), Cnd)); + G = !Hxd(k, (umd(), Akd)) || khb(WD(Gxd(k, Akd))); + u = null; + if (G && n && (m || o2)) { + u = Z4b(k); + pQb(u, rAc, w); + nQb(u, PBc) && HCc(new RCc(Kfb(UD(mQb(u, PBc)))), u); + if (RD(Gxd(k, lBc), 181).gc() != 0) { + l = u; + FDb(new SDb(null, (!k.c && (k.c = new C5d(K4, k, 9, 9)), new Swb(k.c, 16))), new u5b(l)); + V4b(k, u); + } + } + A = c; + B = RD(Wjb(a.a, vCd(k)), 10); + !!B && (A = B.e); + t = i5b(a, k, A); + if (u) { + t.e = u; + u.e = t; + ye(g, (!k.a && (k.a = new C5d(J4, k, 10, 11)), k.a)); + } + } + } + p = 0; + Pub(g, b, g.c.b, g.c); + while (g.b != 0) { + f = RD(g.b == 0 ? null : (sFb(g.b != 0), Wub(g, g.a.a)), 27); + for (i = new dMd((!f.b && (f.b = new C5d(G4, f, 12, 3)), f.b)); i.e != i.i.gc(); ) { + h = RD(bMd(i), 74); + X4b(h); + (dE(Gxd(b, cAc)) !== dE((kEc(), hEc)) || dE(Gxd(b, pAc)) === dE((Ptc(), Otc)) || dE(Gxd(b, pAc)) === dE((Ptc(), Mtc)) || Heb(TD(Gxd(b, eAc))) || dE(Gxd(b, Yzc)) !== dE((U$b(), T$b)) || dE(Gxd(b, ZAc)) === dE((aEc(), TDc)) || dE(Gxd(b, ZAc)) === dE((aEc(), UDc)) || dE(Gxd(b, $Ac)) === dE((_Cc(), SCc)) || dE(Gxd(b, $Ac)) === dE((_Cc(), UCc))) && Ixd(h, (Ywc(), zwc), sgb(p++)); + D = AGd(RD(QHd((!h.b && (h.b = new Yie(E4, h, 4, 7)), h.b), 0), 84)); + F = AGd(RD(QHd((!h.c && (h.c = new Yie(E4, h, 5, 8)), h.c), 0), 84)); + if (Heb(TD(Gxd(h, pBc))) || Heb(TD(Gxd(D, pBc))) || Heb(TD(Gxd(F, pBc)))) { + continue; + } + q = ozd(h) && Heb(TD(Gxd(D, NAc))) && Heb(TD(Gxd(h, OAc))); + v = f; + q || NGd(F, D) ? v = D : NGd(D, F) && (v = F); + A = c; + B = RD(Wjb(a.a, v), 10); + !!B && (A = B.e); + s = f5b(a, h, v, A); + pQb(s, (Ywc(), Zvc), _4b(a, h, b, c)); + } + n = dE(Gxd(f, IAc)) === dE((Fnd(), Cnd)); + if (n) { + for (e = new dMd((!f.a && (f.a = new C5d(J4, f, 10, 11)), f.a)); e.e != e.i.gc(); ) { + d = RD(bMd(e), 27); + G = !Hxd(d, (umd(), Akd)) || khb(WD(Gxd(d, Akd))); + C = dE(Gxd(d, IAc)) === dE(Cnd); + G && C && (Pub(g, d, g.c.b, g.c), true); + } + } + } + } + function Ywc() { + Ywc = geb; + var a, b; + Awc = new jGd(rAe); + Zvc = new jGd("coordinateOrigin"); + Kwc = new jGd("processors"); + Yvc = new kGd("compoundNode", (Geb(), false)); + nwc = new kGd("insideConnections", false); + Bwc = new jGd("originalBendpoints"); + Cwc = new jGd("originalDummyNodePosition"); + Dwc = new jGd("originalLabelEdge"); + Mwc = new jGd("representedLabels"); + cwc = new jGd("endLabels"); + dwc = new jGd("endLabel.origin"); + swc = new kGd("labelSide", (Pnd(), Ond)); + ywc = new kGd("maxEdgeThickness", 0); + Nwc = new kGd("reversed", false); + Lwc = new jGd(sAe); + vwc = new kGd("longEdgeSource", null); + wwc = new kGd("longEdgeTarget", null); + uwc = new kGd("longEdgeHasLabelDummies", false); + twc = new kGd("longEdgeBeforeLabelDummy", false); + bwc = new kGd("edgeConstraint", (huc(), fuc)); + pwc = new jGd("inLayerLayoutUnit"); + owc = new kGd("inLayerConstraint", (Gvc(), Evc)); + qwc = new kGd("inLayerSuccessorConstraint", new bnb()); + rwc = new kGd("inLayerSuccessorConstraintBetweenNonDummies", false); + Iwc = new jGd("portDummy"); + $vc = new kGd("crossingHint", sgb(0)); + kwc = new kGd("graphProperties", (b = RD(mfb(iX), 9), new Fsb(b, RD(WEb(b, b.length), 9), 0))); + hwc = new kGd("externalPortSide", (qpd(), opd)); + iwc = new kGd("externalPortSize", new pjd()); + fwc = new jGd("externalPortReplacedDummies"); + gwc = new jGd("externalPortReplacedDummy"); + ewc = new kGd("externalPortConnections", (a = RD(mfb(E3), 9), new Fsb(a, RD(WEb(a, a.length), 9), 0))); + Jwc = new kGd(Xye, 0); + Uvc = new jGd("barycenterAssociates"); + Xwc = new jGd("TopSideComments"); + Vvc = new jGd("BottomSideComments"); + Xvc = new jGd("CommentConnectionPort"); + mwc = new kGd("inputCollect", false); + Gwc = new kGd("outputCollect", false); + awc = new kGd("cyclic", false); + _vc = new jGd("crossHierarchyMap"); + Wwc = new jGd("targetOffset"); + new kGd("splineLabelSize", new pjd()); + Qwc = new jGd("spacings"); + Hwc = new kGd("partitionConstraint", false); + Wvc = new jGd("breakingPoint.info"); + Uwc = new jGd("splines.survivingEdge"); + Twc = new jGd("splines.route.start"); + Rwc = new jGd("splines.edgeChain"); + Fwc = new jGd("originalPortConstraints"); + Pwc = new jGd("selfLoopHolder"); + Swc = new jGd("splines.nsPortY"); + zwc = new jGd("modelOrder"); + xwc = new jGd("longEdgeTargetNode"); + jwc = new kGd(GBe, false); + Owc = new kGd(GBe, false); + lwc = new jGd("layerConstraints.hiddenNodes"); + Ewc = new jGd("layerConstraints.opposidePort"); + Vwc = new jGd("targetNode.modelOrder"); + } + function D0c(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2; + for (l = Sub(a.b, 0); l.b != l.d.c; ) { + k = RD(evb(l), 40); + if (lhb(k.c, IEe)) { + continue; + } + f = RD(zDb(new SDb(null, new Swb(hWc(k, a), 16)), tBb(new ZBb(), new XBb(), new wCb(), cD(WC(QL, 1), jwe, 108, 0, [(xBb(), vBb)]))), 15); + b == (Cmd(), ymd) || b == zmd ? f.jd(new L1c()) : f.jd(new R1c()); + o2 = f.gc(); + for (e = 0; e < o2; e++) { + g = o2 == 1 ? 0.5 : (1 + e) / (o2 + 1); + if (b == ymd) { + j = Kfb(UD(mQb(k, (q$c(), e$c)))); + if (k.e.a + k.f.a + d < j) { + Oub(RD(f.Xb(e), 65).a, new rjd(j + c, k.e.b + k.f.b * g)); + } else if (RD(f.Xb(e), 65).a.b > 0) { + h = RD(Rub(RD(f.Xb(e), 65).a), 8).a; + m = k.e.a + k.f.a / 2; + i = RD(Rub(RD(f.Xb(e), 65).a), 8).b; + n = k.e.b + k.f.b / 2; + d > 0 && $wnd.Math.abs(i - n) / ($wnd.Math.abs(h - m) / 40) > 50 && (n > i ? Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a + k.f.a + d / 5.3, k.e.b + k.f.b * g - d / 2)) : Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a + k.f.a + d / 5.3, k.e.b + k.f.b * g + d / 2))); + } + Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a + k.f.a, k.e.b + k.f.b * g)); + } else if (b == zmd) { + j = Kfb(UD(mQb(k, (q$c(), f$c)))); + if (k.e.a - d > j) { + Oub(RD(f.Xb(e), 65).a, new rjd(j - c, k.e.b + k.f.b * g)); + } else if (RD(f.Xb(e), 65).a.b > 0) { + h = RD(Rub(RD(f.Xb(e), 65).a), 8).a; + m = k.e.a + k.f.a / 2; + i = RD(Rub(RD(f.Xb(e), 65).a), 8).b; + n = k.e.b + k.f.b / 2; + d > 0 && $wnd.Math.abs(i - n) / ($wnd.Math.abs(h - m) / 40) > 50 && (n > i ? Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a - d / 5.3, k.e.b + k.f.b * g - d / 2)) : Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a - d / 5.3, k.e.b + k.f.b * g + d / 2))); + } + Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a, k.e.b + k.f.b * g)); + } else if (b == Bmd) { + j = Kfb(UD(mQb(k, (q$c(), e$c)))); + if (k.e.b + k.f.b + d < j) { + Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a + k.f.a * g, j + c)); + } else if (RD(f.Xb(e), 65).a.b > 0) { + h = RD(Rub(RD(f.Xb(e), 65).a), 8).a; + m = k.e.a + k.f.a / 2; + i = RD(Rub(RD(f.Xb(e), 65).a), 8).b; + n = k.e.b + k.f.b / 2; + d > 0 && $wnd.Math.abs(h - m) / ($wnd.Math.abs(i - n) / 40) > 50 && (m > h ? Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a + k.f.a * g - d / 2, k.e.b + d / 5.3 + k.f.b)) : Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a + k.f.a * g + d / 2, k.e.b + d / 5.3 + k.f.b))); + } + Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a + k.f.a * g, k.e.b + k.f.b)); + } else { + j = Kfb(UD(mQb(k, (q$c(), f$c)))); + if (mWc(RD(f.Xb(e), 65), a)) { + Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a + k.f.a * g, RD(Rub(RD(f.Xb(e), 65).a), 8).b)); + } else if (k.e.b - d > j) { + Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a + k.f.a * g, j - c)); + } else if (RD(f.Xb(e), 65).a.b > 0) { + h = RD(Rub(RD(f.Xb(e), 65).a), 8).a; + m = k.e.a + k.f.a / 2; + i = RD(Rub(RD(f.Xb(e), 65).a), 8).b; + n = k.e.b + k.f.b / 2; + d > 0 && $wnd.Math.abs(h - m) / ($wnd.Math.abs(i - n) / 40) > 50 && (m > h ? Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a + k.f.a * g - d / 2, k.e.b - d / 5.3)) : Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a + k.f.a * g + d / 2, k.e.b - d / 5.3))); + } + Oub(RD(f.Xb(e), 65).a, new rjd(k.e.a + k.f.a * g, k.e.b)); + } + } + } + } + function umd() { + umd = geb; + var a, b; + Akd = new jGd(OGe); + Tld = new jGd(PGe); + Ckd = (Rjd(), Ljd); + Bkd = new lGd(MDe, Ckd); + Dkd = new lGd(Dze, null); + Ekd = new jGd(QGe); + Lkd = (ukd(), ysb(tkd, cD(WC(q3, 1), jwe, 298, 0, [pkd]))); + Kkd = new lGd(YDe, Lkd); + Mkd = new lGd(LDe, (Geb(), false)); + Okd = (Cmd(), Amd); + Nkd = new lGd(PDe, Okd); + Tkd = (Ymd(), Xmd); + Skd = new lGd(kDe, Tkd); + Wkd = new lGd(MGe, false); + Ykd = (Fnd(), Dnd); + Xkd = new lGd(fDe, Ykd); + uld = new A3b(12); + tld = new lGd(Eze, uld); + ald = new lGd(dAe, false); + bld = new lGd(iEe, false); + sld = new lGd(gAe, false); + Ild = (Bod(), Aod); + Hld = new lGd(eAe, Ild); + Qld = new jGd(fEe); + Rld = new jGd($ze); + Sld = new jGd(bAe); + Vld = new jGd(cAe); + dld = new Ejd(); + cld = new lGd(ZDe, dld); + Jkd = new lGd(aEe, false); + Zkd = new lGd(bEe, false); + fld = new P2b(); + eld = new lGd(gEe, fld); + rld = new lGd(JDe, false); + Uld = new lGd(SGe, 1); + Ikd = new jGd(TGe); + Hkd = new jGd(UGe); + mmd = new lGd(mAe, false); + new lGd(VGe, true); + sgb(0); + new lGd(WGe, sgb(100)); + new lGd(XGe, false); + sgb(0); + new lGd(YGe, sgb(4e3)); + sgb(0); + new lGd(ZGe, sgb(400)); + new lGd($Ge, false); + new lGd(_Ge, false); + new lGd(aHe, true); + new lGd(bHe, false); + Gkd = (Grd(), Frd); + Fkd = new lGd(NGe, Gkd); + Wld = new lGd(xDe, 10); + Xld = new lGd(yDe, 10); + Yld = new lGd(Bze, 20); + Zld = new lGd(zDe, 10); + $ld = new lGd(aAe, 2); + _ld = new lGd(ADe, 10); + bmd = new lGd(BDe, 0); + cmd = new lGd(EDe, 5); + dmd = new lGd(CDe, 1); + emd = new lGd(DDe, 1); + fmd = new lGd(_ze, 20); + gmd = new lGd(FDe, 10); + jmd = new lGd(GDe, 10); + amd = new jGd(HDe); + imd = new Q2b(); + hmd = new lGd(hEe, imd); + xld = new jGd(eEe); + wld = false; + vld = new lGd(dEe, wld); + hld = new A3b(5); + gld = new lGd(QDe, hld); + jld = (dod(), b = RD(mfb(A3), 9), new Fsb(b, RD(WEb(b, b.length), 9), 0)); + ild = new lGd(kAe, jld); + Ald = (pod(), mod); + zld = new lGd(TDe, Ald); + Cld = new jGd(UDe); + Dld = new jGd(VDe); + Eld = new jGd(WDe); + Bld = new jGd(XDe); + lld = (a = RD(mfb(H3), 9), new Fsb(a, RD(WEb(a, a.length), 9), 0)); + kld = new lGd(jAe, lld); + qld = xsb((dqd(), Ypd)); + pld = new lGd(iAe, qld); + old = new rjd(0, 0); + nld = new lGd(CAe, old); + mld = new lGd(hAe, false); + Rkd = (Omd(), Lmd); + Qkd = new lGd($De, Rkd); + Pkd = new lGd(fAe, false); + sgb(1); + new lGd(dHe, null); + Fld = new jGd(cEe); + Jld = new jGd(_De); + Pld = (qpd(), opd); + Old = new lGd(KDe, Pld); + Gld = new jGd(IDe); + Mld = (Pod(), xsb(Nod)); + Lld = new lGd(lAe, Mld); + Kld = new lGd(RDe, false); + Nld = new lGd(SDe, true); + qmd = new lGd(nAe, 1); + smd = new lGd(eHe, null); + lmd = new lGd(oAe, 150); + kmd = new lGd(pAe, 1.414); + nmd = new lGd(qAe, null); + omd = new lGd(fHe, 1); + $kd = new lGd(NDe, false); + _kd = new lGd(ODe, false); + Ukd = new lGd(Cze, 1); + Vkd = (ind(), gnd); + new lGd(gHe, Vkd); + yld = true; + rmd = (mqd(), jqd); + tmd = jqd; + pmd = jqd; + } + function hcc() { + hcc = geb; + nbc = new icc("DIRECTION_PREPROCESSOR", 0); + kbc = new icc("COMMENT_PREPROCESSOR", 1); + obc = new icc("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER", 2); + Ebc = new icc("INTERACTIVE_EXTERNAL_PORT_POSITIONER", 3); + Xbc = new icc("PARTITION_PREPROCESSOR", 4); + Ibc = new icc("LABEL_DUMMY_INSERTER", 5); + bcc = new icc("SELF_LOOP_PREPROCESSOR", 6); + Nbc = new icc("LAYER_CONSTRAINT_PREPROCESSOR", 7); + Vbc = new icc("PARTITION_MIDPROCESSOR", 8); + zbc = new icc("HIGH_DEGREE_NODE_LAYER_PROCESSOR", 9); + Rbc = new icc("NODE_PROMOTION", 10); + Mbc = new icc("LAYER_CONSTRAINT_POSTPROCESSOR", 11); + Wbc = new icc("PARTITION_POSTPROCESSOR", 12); + vbc = new icc("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR", 13); + dcc = new icc("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR", 14); + ebc = new icc("BREAKING_POINT_INSERTER", 15); + Qbc = new icc("LONG_EDGE_SPLITTER", 16); + Zbc = new icc("PORT_SIDE_PROCESSOR", 17); + Fbc = new icc("INVERTED_PORT_PROCESSOR", 18); + Ybc = new icc("PORT_LIST_SORTER", 19); + fcc = new icc("SORT_BY_INPUT_ORDER_OF_MODEL", 20); + Tbc = new icc("NORTH_SOUTH_PORT_PREPROCESSOR", 21); + fbc = new icc("BREAKING_POINT_PROCESSOR", 22); + Ubc = new icc(jBe, 23); + gcc = new icc(kBe, 24); + _bc = new icc("SELF_LOOP_PORT_RESTORER", 25); + ecc = new icc("SINGLE_EDGE_GRAPH_WRAPPER", 26); + Gbc = new icc("IN_LAYER_CONSTRAINT_PROCESSOR", 27); + sbc = new icc("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR", 28); + Hbc = new icc("LABEL_AND_NODE_SIZE_PROCESSOR", 29); + Dbc = new icc("INNERMOST_NODE_MARGIN_CALCULATOR", 30); + ccc = new icc("SELF_LOOP_ROUTER", 31); + ibc = new icc("COMMENT_NODE_MARGIN_CALCULATOR", 32); + qbc = new icc("END_LABEL_PREPROCESSOR", 33); + Kbc = new icc("LABEL_DUMMY_SWITCHER", 34); + hbc = new icc("CENTER_LABEL_MANAGEMENT_PROCESSOR", 35); + Lbc = new icc("LABEL_SIDE_SELECTOR", 36); + Bbc = new icc("HYPEREDGE_DUMMY_MERGER", 37); + wbc = new icc("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR", 38); + Obc = new icc("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR", 39); + ybc = new icc("HIERARCHICAL_PORT_POSITION_PROCESSOR", 40); + lbc = new icc("CONSTRAINTS_POSTPROCESSOR", 41); + jbc = new icc("COMMENT_POSTPROCESSOR", 42); + Cbc = new icc("HYPERNODE_PROCESSOR", 43); + xbc = new icc("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER", 44); + Pbc = new icc("LONG_EDGE_JOINER", 45); + acc = new icc("SELF_LOOP_POSTPROCESSOR", 46); + gbc = new icc("BREAKING_POINT_REMOVER", 47); + Sbc = new icc("NORTH_SOUTH_PORT_POSTPROCESSOR", 48); + Abc = new icc("HORIZONTAL_COMPACTOR", 49); + Jbc = new icc("LABEL_DUMMY_REMOVER", 50); + tbc = new icc("FINAL_SPLINE_BENDPOINTS_CALCULATOR", 51); + rbc = new icc("END_LABEL_SORTER", 52); + $bc = new icc("REVERSED_EDGE_RESTORER", 53); + pbc = new icc("END_LABEL_POSTPROCESSOR", 54); + ubc = new icc("HIERARCHICAL_NODE_RESIZER", 55); + mbc = new icc("DIRECTION_POSTPROCESSOR", 56); + } + function Ozc() { + Ozc = geb; + Uxc = ($tc(), Ytc); + Txc = new lGd(HBe, Uxc); + jyc = new lGd(IBe, (Geb(), false)); + pyc = (Ovc(), Mvc); + oyc = new lGd(JBe, pyc); + Hyc = new lGd(KBe, false); + Iyc = new lGd(LBe, true); + ixc = new lGd(MBe, false); + azc = (sEc(), qEc); + _yc = new lGd(NBe, azc); + sgb(1); + izc = new lGd(OBe, sgb(7)); + jzc = new lGd(PBe, false); + kyc = new lGd(QBe, false); + Sxc = (Ptc(), Ltc); + Rxc = new lGd(RBe, Sxc); + Gyc = (_Cc(), ZCc); + Fyc = new lGd(SBe, Gyc); + wyc = (cxc(), bxc); + vyc = new lGd(TBe, wyc); + sgb(-1); + uyc = new lGd(UBe, null); + sgb(-1); + xyc = new lGd(VBe, sgb(-1)); + sgb(-1); + yyc = new lGd(WBe, sgb(4)); + sgb(-1); + Ayc = new lGd(XBe, sgb(2)); + Eyc = (aEc(), $Dc); + Dyc = new lGd(YBe, Eyc); + sgb(0); + Cyc = new lGd(ZBe, sgb(0)); + syc = new lGd($Be, sgb(lve)); + Qxc = (stc(), qtc); + Pxc = new lGd(_Be, Qxc); + yxc = new lGd(aCe, false); + Hxc = new lGd(bCe, 0.1); + Nxc = new lGd(cCe, false); + Jxc = new lGd(dCe, null); + Kxc = new lGd(eCe, null); + sgb(-1); + Lxc = new lGd(fCe, null); + sgb(-1); + Mxc = new lGd(gCe, sgb(-1)); + sgb(0); + zxc = new lGd(hCe, sgb(40)); + Fxc = (xvc(), wvc); + Exc = new lGd(iCe, Fxc); + Bxc = uvc; + Axc = new lGd(jCe, Bxc); + $yc = (JDc(), EDc); + Zyc = new lGd(kCe, $yc); + Pyc = new jGd(lCe); + Kyc = (Cuc(), Auc); + Jyc = new lGd(mCe, Kyc); + Nyc = (Ouc(), Luc); + Myc = new lGd(nCe, Nyc); + Syc = new lGd(oCe, 0.3); + Uyc = new jGd(pCe); + Wyc = (wDc(), uDc); + Vyc = new lGd(qCe, Wyc); + ayc = (KEc(), IEc); + _xc = new lGd(rCe, ayc); + cyc = (TEc(), SEc); + byc = new lGd(sCe, cyc); + eyc = (lFc(), kFc); + dyc = new lGd(tCe, eyc); + gyc = new lGd(uCe, 0.2); + Zxc = new lGd(vCe, 2); + ezc = new lGd(wCe, null); + gzc = new lGd(xCe, 10); + fzc = new lGd(yCe, 10); + hzc = new lGd(zCe, 20); + sgb(0); + bzc = new lGd(ACe, sgb(0)); + sgb(0); + czc = new lGd(BCe, sgb(0)); + sgb(0); + dzc = new lGd(CCe, sgb(0)); + jxc = new lGd(DCe, false); + nxc = ($uc(), Yuc); + mxc = new lGd(ECe, nxc); + lxc = (jtc(), itc); + kxc = new lGd(FCe, lxc); + myc = new lGd(GCe, false); + sgb(0); + lyc = new lGd(HCe, sgb(16)); + sgb(0); + nyc = new lGd(ICe, sgb(5)); + Gzc = (DFc(), BFc); + Fzc = new lGd(JCe, Gzc); + kzc = new lGd(KCe, 10); + nzc = new lGd(LCe, 1); + wzc = (Etc(), Dtc); + vzc = new lGd(MCe, wzc); + qzc = new jGd(NCe); + tzc = sgb(1); + sgb(0); + szc = new lGd(OCe, tzc); + Lzc = (uFc(), rFc); + Kzc = new lGd(PCe, Lzc); + Hzc = new jGd(QCe); + Bzc = new lGd(RCe, true); + zzc = new lGd(SCe, 2); + Dzc = new lGd(TCe, true); + Yxc = (tuc(), ruc); + Xxc = new lGd(UCe, Yxc); + Wxc = (btc(), Zsc); + Vxc = new lGd(VCe, Wxc); + xxc = (kEc(), hEc); + wxc = new lGd(WCe, xxc); + vxc = new lGd(XCe, false); + uxc = new lGd(YCe, false); + pxc = (U$b(), T$b); + oxc = new lGd(ZCe, pxc); + txc = (lDc(), iDc); + sxc = new lGd($Ce, txc); + qxc = new lGd(_Ce, 0); + rxc = new lGd(aDe, 0); + ryc = Ntc; + qyc = ptc; + zyc = YCc; + Byc = YCc; + tyc = TCc; + Ixc = (Fnd(), Cnd); + Oxc = qtc; + Gxc = qtc; + Cxc = qtc; + Dxc = Cnd; + Qyc = HDc; + Ryc = EDc; + Lyc = EDc; + Oyc = EDc; + Tyc = GDc; + Yyc = HDc; + Xyc = HDc; + fyc = (Ymd(), Wmd); + hyc = Wmd; + iyc = kFc; + $xc = Vmd; + lzc = CFc; + mzc = AFc; + ozc = CFc; + pzc = AFc; + xzc = CFc; + yzc = AFc; + rzc = Ctc; + uzc = Dtc; + Mzc = CFc; + Nzc = AFc; + Izc = CFc; + Jzc = AFc; + Czc = AFc; + Azc = AFc; + Ezc = AFc; + } + function iNc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, ab, bb, cb, db2, eb, fb, gb, hb, ib, jb, kb, lb; + cb = 0; + for (H = b, K = 0, N = H.length; K < N; ++K) { + F = H[K]; + for (V = new Anb(F.j); V.a < V.c.c.length; ) { + U = RD(ynb(V), 12); + X = 0; + for (h = new Anb(U.g); h.a < h.c.c.length; ) { + g = RD(ynb(h), 18); + F.c != g.d.i.c && ++X; + } + X > 0 && (a.a[U.p] = cb++); + } + } + hb = 0; + for (I = c, L = 0, O = I.length; L < O; ++L) { + F = I[L]; + P = 0; + for (V = new Anb(F.j); V.a < V.c.c.length; ) { + U = RD(ynb(V), 12); + if (U.j == (qpd(), Yod)) { + for (h = new Anb(U.e); h.a < h.c.c.length; ) { + g = RD(ynb(h), 18); + if (F.c != g.c.i.c) { + ++P; + break; + } + } + } else { + break; + } + } + R = 0; + Y = new Jkb(F.j, F.j.c.length); + while (Y.b > 0) { + U = (sFb(Y.b > 0), RD(Y.a.Xb(Y.c = --Y.b), 12)); + X = 0; + for (h = new Anb(U.e); h.a < h.c.c.length; ) { + g = RD(ynb(h), 18); + F.c != g.c.i.c && ++X; + } + if (X > 0) { + if (U.j == (qpd(), Yod)) { + a.a[U.p] = hb; + ++hb; + } else { + a.a[U.p] = hb + P + R; + ++R; + } + } + } + hb += R; + } + W = new Tsb(); + o2 = new Iub(); + for (G = b, J = 0, M = G.length; J < M; ++J) { + F = G[J]; + for (fb = new Anb(F.j); fb.a < fb.c.c.length; ) { + eb = RD(ynb(fb), 12); + for (h = new Anb(eb.g); h.a < h.c.c.length; ) { + g = RD(ynb(h), 18); + jb = g.d; + if (F.c != jb.i.c) { + db2 = RD(Wd(qtb(W.f, eb)), 478); + ib = RD(Wd(qtb(W.f, jb)), 478); + if (!db2 && !ib) { + n = new lNc(); + o2.a.zc(n, o2); + Rmb(n.a, g); + Rmb(n.d, eb); + rtb(W.f, eb, n); + Rmb(n.d, jb); + rtb(W.f, jb, n); + } else if (!db2) { + Rmb(ib.a, g); + Rmb(ib.d, eb); + rtb(W.f, eb, ib); + } else if (!ib) { + Rmb(db2.a, g); + Rmb(db2.d, jb); + rtb(W.f, jb, db2); + } else if (db2 == ib) { + Rmb(db2.a, g); + } else { + Rmb(db2.a, g); + for (T = new Anb(ib.d); T.a < T.c.c.length; ) { + S = RD(ynb(T), 12); + rtb(W.f, S, db2); + } + Tmb(db2.a, ib.a); + Tmb(db2.d, ib.d); + o2.a.Bc(ib) != null; + } + } + } + } + } + p = RD(Ee(o2, $C(OY, { 3: 1, 4: 1, 5: 1, 2045: 1 }, 478, o2.a.gc(), 0, 1)), 2045); + D = b[0].c; + bb = c[0].c; + for (k = p, l = 0, m = k.length; l < m; ++l) { + j = k[l]; + j.e = cb; + j.f = hb; + for (V = new Anb(j.d); V.a < V.c.c.length; ) { + U = RD(ynb(V), 12); + Z = a.a[U.p]; + if (U.i.c == D) { + Z < j.e && (j.e = Z); + Z > j.b && (j.b = Z); + } else if (U.i.c == bb) { + Z < j.f && (j.f = Z); + Z > j.c && (j.c = Z); + } + } + } + Wnb(p, 0, p.length, null); + gb = $C(kE, Pwe, 28, p.length, 15, 1); + d = $C(kE, Pwe, 28, hb + 1, 15, 1); + for (r = 0; r < p.length; r++) { + gb[r] = p[r].f; + d[gb[r]] = 1; + } + f = 0; + for (s = 0; s < d.length; s++) { + d[s] == 1 ? d[s] = f : --f; + } + $ = 0; + for (t = 0; t < gb.length; t++) { + gb[t] += d[gb[t]]; + $ = $wnd.Math.max($, gb[t] + 1); + } + i = 1; + while (i < $) { + i *= 2; + } + lb = 2 * i - 1; + i -= 1; + kb = $C(kE, Pwe, 28, lb, 15, 1); + e = 0; + for (B = 0; B < gb.length; B++) { + A = gb[B] + i; + ++kb[A]; + while (A > 0) { + A % 2 > 0 && (e += kb[A + 1]); + A = (A - 1) / 2 | 0; + ++kb[A]; + } + } + C = $C(NY, rve, 374, p.length * 2, 0, 1); + for (u = 0; u < p.length; u++) { + C[2 * u] = new oNc(p[u], p[u].e, p[u].b, (sNc(), rNc)); + C[2 * u + 1] = new oNc(p[u], p[u].b, p[u].e, qNc); + } + Wnb(C, 0, C.length, null); + Q = 0; + for (v = 0; v < C.length; v++) { + switch (C[v].d.g) { + case 0: + ++Q; + break; + case 1: + --Q; + e += Q; + } + } + ab = $C(NY, rve, 374, p.length * 2, 0, 1); + for (w = 0; w < p.length; w++) { + ab[2 * w] = new oNc(p[w], p[w].f, p[w].c, (sNc(), rNc)); + ab[2 * w + 1] = new oNc(p[w], p[w].c, p[w].f, qNc); + } + Wnb(ab, 0, ab.length, null); + Q = 0; + for (q = 0; q < ab.length; q++) { + switch (ab[q].d.g) { + case 0: + ++Q; + break; + case 1: + --Q; + e += Q; + } + } + return e; + } + function Vse() { + Vse = geb; + Ese = new Wse(7); + Gse = new Hte(8, 94); + new Hte(8, 64); + Hse = new Hte(8, 36); + Nse = new Hte(8, 65); + Ose = new Hte(8, 122); + Pse = new Hte(8, 90); + Sse = new Hte(8, 98); + Lse = new Hte(8, 66); + Qse = new Hte(8, 60); + Tse = new Hte(8, 62); + Dse = new Wse(11); + Bse = new xte(4); + rte(Bse, 48, 57); + Rse = new xte(4); + rte(Rse, 48, 57); + rte(Rse, 65, 90); + rte(Rse, 95, 95); + rte(Rse, 97, 122); + Mse = new xte(4); + rte(Mse, 9, 9); + rte(Mse, 10, 10); + rte(Mse, 12, 12); + rte(Mse, 13, 13); + rte(Mse, 32, 32); + Ise = yte(Bse); + Kse = yte(Rse); + Jse = yte(Mse); + wse = new Tsb(); + xse = new Tsb(); + yse = cD(WC(qJ, 1), Nve, 2, 6, ["Cn", "Lu", "Ll", "Lt", "Lm", "Lo", "Mn", "Me", "Mc", "Nd", "Nl", "No", "Zs", "Zl", "Zp", "Cc", "Cf", null, "Co", "Cs", "Pd", "Ps", "Pe", "Pc", "Po", "Sm", "Sc", "Sk", "So", "Pi", "Pf", "L", "M", "N", "Z", "C", "P", "S"]); + vse = cD(WC(qJ, 1), Nve, 2, 6, ["Basic Latin", "Latin-1 Supplement", "Latin Extended-A", "Latin Extended-B", "IPA Extensions", "Spacing Modifier Letters", "Combining Diacritical Marks", "Greek", "Cyrillic", "Armenian", "Hebrew", "Arabic", "Syriac", "Thaana", "Devanagari", "Bengali", "Gurmukhi", "Gujarati", "Oriya", "Tamil", "Telugu", "Kannada", "Malayalam", "Sinhala", "Thai", "Lao", "Tibetan", "Myanmar", "Georgian", "Hangul Jamo", "Ethiopic", "Cherokee", "Unified Canadian Aboriginal Syllabics", "Ogham", "Runic", "Khmer", "Mongolian", "Latin Extended Additional", "Greek Extended", "General Punctuation", "Superscripts and Subscripts", "Currency Symbols", "Combining Marks for Symbols", "Letterlike Symbols", "Number Forms", "Arrows", "Mathematical Operators", "Miscellaneous Technical", "Control Pictures", "Optical Character Recognition", "Enclosed Alphanumerics", "Box Drawing", "Block Elements", "Geometric Shapes", "Miscellaneous Symbols", "Dingbats", "Braille Patterns", "CJK Radicals Supplement", "Kangxi Radicals", "Ideographic Description Characters", "CJK Symbols and Punctuation", "Hiragana", "Katakana", "Bopomofo", "Hangul Compatibility Jamo", "Kanbun", "Bopomofo Extended", "Enclosed CJK Letters and Months", "CJK Compatibility", "CJK Unified Ideographs Extension A", "CJK Unified Ideographs", "Yi Syllables", "Yi Radicals", "Hangul Syllables", VLe, "CJK Compatibility Ideographs", "Alphabetic Presentation Forms", "Arabic Presentation Forms-A", "Combining Half Marks", "CJK Compatibility Forms", "Small Form Variants", "Arabic Presentation Forms-B", "Specials", "Halfwidth and Fullwidth Forms", "Old Italic", "Gothic", "Deseret", "Byzantine Musical Symbols", "Musical Symbols", "Mathematical Alphanumeric Symbols", "CJK Unified Ideographs Extension B", "CJK Compatibility Ideographs Supplement", "Tags"]); + zse = cD(WC(kE, 1), Pwe, 28, 15, [66304, 66351, 66352, 66383, 66560, 66639, 118784, 119039, 119040, 119295, 119808, 120831, 131072, 173782, 194560, 195103, 917504, 917631]); + } + function hMb() { + hMb = geb; + eMb = new kMb("OUT_T_L", 0, (EKb(), CKb), (vLb(), sLb), (ZJb(), WJb), WJb, cD(WC(bL, 1), rve, 21, 0, [ysb((dod(), _nd), cD(WC(A3, 1), jwe, 95, 0, [cod, Xnd]))])); + dMb = new kMb("OUT_T_C", 1, BKb, sLb, WJb, XJb, cD(WC(bL, 1), rve, 21, 0, [ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [cod, Wnd])), ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [cod, Wnd, Ynd]))])); + fMb = new kMb("OUT_T_R", 2, DKb, sLb, WJb, YJb, cD(WC(bL, 1), rve, 21, 0, [ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [cod, Znd]))])); + XLb = new kMb("OUT_B_L", 3, CKb, uLb, YJb, WJb, cD(WC(bL, 1), rve, 21, 0, [ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [aod, Xnd]))])); + WLb = new kMb("OUT_B_C", 4, BKb, uLb, YJb, XJb, cD(WC(bL, 1), rve, 21, 0, [ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [aod, Wnd])), ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [aod, Wnd, Ynd]))])); + YLb = new kMb("OUT_B_R", 5, DKb, uLb, YJb, YJb, cD(WC(bL, 1), rve, 21, 0, [ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [aod, Znd]))])); + _Lb = new kMb("OUT_L_T", 6, DKb, uLb, WJb, WJb, cD(WC(bL, 1), rve, 21, 0, [ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [Xnd, cod, Ynd]))])); + $Lb = new kMb("OUT_L_C", 7, DKb, tLb, XJb, WJb, cD(WC(bL, 1), rve, 21, 0, [ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [Xnd, bod])), ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [Xnd, bod, Ynd]))])); + ZLb = new kMb("OUT_L_B", 8, DKb, sLb, YJb, WJb, cD(WC(bL, 1), rve, 21, 0, [ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [Xnd, aod, Ynd]))])); + cMb = new kMb("OUT_R_T", 9, CKb, uLb, WJb, YJb, cD(WC(bL, 1), rve, 21, 0, [ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [Znd, cod, Ynd]))])); + bMb = new kMb("OUT_R_C", 10, CKb, tLb, XJb, YJb, cD(WC(bL, 1), rve, 21, 0, [ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [Znd, bod])), ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [Znd, bod, Ynd]))])); + aMb = new kMb("OUT_R_B", 11, CKb, sLb, YJb, YJb, cD(WC(bL, 1), rve, 21, 0, [ysb(_nd, cD(WC(A3, 1), jwe, 95, 0, [Znd, aod, Ynd]))])); + ULb = new kMb("IN_T_L", 12, CKb, uLb, WJb, WJb, cD(WC(bL, 1), rve, 21, 0, [ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [cod, Xnd])), ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [cod, Xnd, Ynd]))])); + TLb = new kMb("IN_T_C", 13, BKb, uLb, WJb, XJb, cD(WC(bL, 1), rve, 21, 0, [ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [cod, Wnd])), ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [cod, Wnd, Ynd]))])); + VLb = new kMb("IN_T_R", 14, DKb, uLb, WJb, YJb, cD(WC(bL, 1), rve, 21, 0, [ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [cod, Znd])), ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [cod, Znd, Ynd]))])); + RLb = new kMb("IN_C_L", 15, CKb, tLb, XJb, WJb, cD(WC(bL, 1), rve, 21, 0, [ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [bod, Xnd])), ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [bod, Xnd, Ynd]))])); + QLb = new kMb("IN_C_C", 16, BKb, tLb, XJb, XJb, cD(WC(bL, 1), rve, 21, 0, [ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [bod, Wnd])), ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [bod, Wnd, Ynd]))])); + SLb = new kMb("IN_C_R", 17, DKb, tLb, XJb, YJb, cD(WC(bL, 1), rve, 21, 0, [ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [bod, Znd])), ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [bod, Znd, Ynd]))])); + OLb = new kMb("IN_B_L", 18, CKb, sLb, YJb, WJb, cD(WC(bL, 1), rve, 21, 0, [ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [aod, Xnd])), ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [aod, Xnd, Ynd]))])); + NLb = new kMb("IN_B_C", 19, BKb, sLb, YJb, XJb, cD(WC(bL, 1), rve, 21, 0, [ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [aod, Wnd])), ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [aod, Wnd, Ynd]))])); + PLb = new kMb("IN_B_R", 20, DKb, sLb, YJb, YJb, cD(WC(bL, 1), rve, 21, 0, [ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [aod, Znd])), ysb($nd, cD(WC(A3, 1), jwe, 95, 0, [aod, Znd, Ynd]))])); + gMb = new kMb(Sye, 21, null, null, null, null, cD(WC(bL, 1), rve, 21, 0, [])); + } + function JTd() { + JTd = geb; + nTd = (lTd(), kTd).b; + RD(QHd(xYd(kTd.b), 0), 35); + RD(QHd(xYd(kTd.b), 1), 19); + mTd = kTd.a; + RD(QHd(xYd(kTd.a), 0), 35); + RD(QHd(xYd(kTd.a), 1), 19); + RD(QHd(xYd(kTd.a), 2), 19); + RD(QHd(xYd(kTd.a), 3), 19); + RD(QHd(xYd(kTd.a), 4), 19); + oTd = kTd.o; + RD(QHd(xYd(kTd.o), 0), 35); + RD(QHd(xYd(kTd.o), 1), 35); + qTd = RD(QHd(xYd(kTd.o), 2), 19); + RD(QHd(xYd(kTd.o), 3), 19); + RD(QHd(xYd(kTd.o), 4), 19); + RD(QHd(xYd(kTd.o), 5), 19); + RD(QHd(xYd(kTd.o), 6), 19); + RD(QHd(xYd(kTd.o), 7), 19); + RD(QHd(xYd(kTd.o), 8), 19); + RD(QHd(xYd(kTd.o), 9), 19); + RD(QHd(xYd(kTd.o), 10), 19); + RD(QHd(xYd(kTd.o), 11), 19); + RD(QHd(xYd(kTd.o), 12), 19); + RD(QHd(xYd(kTd.o), 13), 19); + RD(QHd(xYd(kTd.o), 14), 19); + RD(QHd(xYd(kTd.o), 15), 19); + RD(QHd(uYd(kTd.o), 0), 62); + RD(QHd(uYd(kTd.o), 1), 62); + RD(QHd(uYd(kTd.o), 2), 62); + RD(QHd(uYd(kTd.o), 3), 62); + RD(QHd(uYd(kTd.o), 4), 62); + RD(QHd(uYd(kTd.o), 5), 62); + RD(QHd(uYd(kTd.o), 6), 62); + RD(QHd(uYd(kTd.o), 7), 62); + RD(QHd(uYd(kTd.o), 8), 62); + RD(QHd(uYd(kTd.o), 9), 62); + pTd = kTd.p; + RD(QHd(xYd(kTd.p), 0), 35); + RD(QHd(xYd(kTd.p), 1), 35); + RD(QHd(xYd(kTd.p), 2), 35); + RD(QHd(xYd(kTd.p), 3), 35); + RD(QHd(xYd(kTd.p), 4), 19); + RD(QHd(xYd(kTd.p), 5), 19); + RD(QHd(uYd(kTd.p), 0), 62); + RD(QHd(uYd(kTd.p), 1), 62); + rTd = kTd.q; + RD(QHd(xYd(kTd.q), 0), 35); + sTd = kTd.v; + RD(QHd(xYd(kTd.v), 0), 19); + RD(QHd(uYd(kTd.v), 0), 62); + RD(QHd(uYd(kTd.v), 1), 62); + RD(QHd(uYd(kTd.v), 2), 62); + tTd = kTd.w; + RD(QHd(xYd(kTd.w), 0), 35); + RD(QHd(xYd(kTd.w), 1), 35); + RD(QHd(xYd(kTd.w), 2), 35); + RD(QHd(xYd(kTd.w), 3), 19); + uTd = kTd.B; + RD(QHd(xYd(kTd.B), 0), 19); + RD(QHd(uYd(kTd.B), 0), 62); + RD(QHd(uYd(kTd.B), 1), 62); + RD(QHd(uYd(kTd.B), 2), 62); + xTd = kTd.Q; + RD(QHd(xYd(kTd.Q), 0), 19); + RD(QHd(uYd(kTd.Q), 0), 62); + yTd = kTd.R; + RD(QHd(xYd(kTd.R), 0), 35); + zTd = kTd.S; + RD(QHd(uYd(kTd.S), 0), 62); + RD(QHd(uYd(kTd.S), 1), 62); + RD(QHd(uYd(kTd.S), 2), 62); + RD(QHd(uYd(kTd.S), 3), 62); + RD(QHd(uYd(kTd.S), 4), 62); + RD(QHd(uYd(kTd.S), 5), 62); + RD(QHd(uYd(kTd.S), 6), 62); + RD(QHd(uYd(kTd.S), 7), 62); + RD(QHd(uYd(kTd.S), 8), 62); + RD(QHd(uYd(kTd.S), 9), 62); + RD(QHd(uYd(kTd.S), 10), 62); + RD(QHd(uYd(kTd.S), 11), 62); + RD(QHd(uYd(kTd.S), 12), 62); + RD(QHd(uYd(kTd.S), 13), 62); + RD(QHd(uYd(kTd.S), 14), 62); + ATd = kTd.T; + RD(QHd(xYd(kTd.T), 0), 19); + RD(QHd(xYd(kTd.T), 2), 19); + BTd = RD(QHd(xYd(kTd.T), 3), 19); + RD(QHd(xYd(kTd.T), 4), 19); + RD(QHd(uYd(kTd.T), 0), 62); + RD(QHd(uYd(kTd.T), 1), 62); + RD(QHd(xYd(kTd.T), 1), 19); + CTd = kTd.U; + RD(QHd(xYd(kTd.U), 0), 35); + RD(QHd(xYd(kTd.U), 1), 35); + RD(QHd(xYd(kTd.U), 2), 19); + RD(QHd(xYd(kTd.U), 3), 19); + RD(QHd(xYd(kTd.U), 4), 19); + RD(QHd(xYd(kTd.U), 5), 19); + RD(QHd(uYd(kTd.U), 0), 62); + DTd = kTd.V; + RD(QHd(xYd(kTd.V), 0), 19); + ETd = kTd.W; + RD(QHd(xYd(kTd.W), 0), 35); + RD(QHd(xYd(kTd.W), 1), 35); + RD(QHd(xYd(kTd.W), 2), 35); + RD(QHd(xYd(kTd.W), 3), 19); + RD(QHd(xYd(kTd.W), 4), 19); + RD(QHd(xYd(kTd.W), 5), 19); + GTd = kTd.bb; + RD(QHd(xYd(kTd.bb), 0), 35); + RD(QHd(xYd(kTd.bb), 1), 35); + RD(QHd(xYd(kTd.bb), 2), 35); + RD(QHd(xYd(kTd.bb), 3), 35); + RD(QHd(xYd(kTd.bb), 4), 35); + RD(QHd(xYd(kTd.bb), 5), 35); + RD(QHd(xYd(kTd.bb), 6), 35); + RD(QHd(xYd(kTd.bb), 7), 19); + RD(QHd(uYd(kTd.bb), 0), 62); + RD(QHd(uYd(kTd.bb), 1), 62); + HTd = kTd.eb; + RD(QHd(xYd(kTd.eb), 0), 35); + RD(QHd(xYd(kTd.eb), 1), 35); + RD(QHd(xYd(kTd.eb), 2), 35); + RD(QHd(xYd(kTd.eb), 3), 35); + RD(QHd(xYd(kTd.eb), 4), 35); + RD(QHd(xYd(kTd.eb), 5), 35); + RD(QHd(xYd(kTd.eb), 6), 19); + RD(QHd(xYd(kTd.eb), 7), 19); + FTd = kTd.ab; + RD(QHd(xYd(kTd.ab), 0), 35); + RD(QHd(xYd(kTd.ab), 1), 35); + vTd = kTd.H; + RD(QHd(xYd(kTd.H), 0), 19); + RD(QHd(xYd(kTd.H), 1), 19); + RD(QHd(xYd(kTd.H), 2), 19); + RD(QHd(xYd(kTd.H), 3), 19); + RD(QHd(xYd(kTd.H), 4), 19); + RD(QHd(xYd(kTd.H), 5), 19); + RD(QHd(uYd(kTd.H), 0), 62); + ITd = kTd.db; + RD(QHd(xYd(kTd.db), 0), 19); + wTd = kTd.M; + } + function Ane(a) { + var b; + if (a.O) + return; + a.O = true; + PAd(a, "type"); + CBd(a, "ecore.xml.type"); + DBd(a, dLe); + b = RD(N5d((YSd(), XSd), dLe), 2044); + WGd(zYd(a.fb), a.b); + vBd(a.b, Vbb, "AnyType", false, false, true); + tBd(RD(QHd(xYd(a.b), 0), 35), a.wb.D, pKe, null, 0, -1, Vbb, false, false, true, false, false, false); + tBd(RD(QHd(xYd(a.b), 1), 35), a.wb.D, "any", null, 0, -1, Vbb, true, true, true, false, false, true); + tBd(RD(QHd(xYd(a.b), 2), 35), a.wb.D, "anyAttribute", null, 0, -1, Vbb, false, false, true, false, false, false); + vBd(a.bb, Xbb, iLe, false, false, true); + tBd(RD(QHd(xYd(a.bb), 0), 35), a.gb, "data", null, 0, 1, Xbb, false, false, true, false, true, false); + tBd(RD(QHd(xYd(a.bb), 1), 35), a.gb, CIe, null, 1, 1, Xbb, false, false, true, false, true, false); + vBd(a.fb, Ybb, jLe, false, false, true); + tBd(RD(QHd(xYd(a.fb), 0), 35), b.gb, "rawValue", null, 0, 1, Ybb, true, true, true, false, true, true); + tBd(RD(QHd(xYd(a.fb), 1), 35), b.a, aIe, null, 0, 1, Ybb, true, true, true, false, true, true); + zBd(RD(QHd(xYd(a.fb), 2), 19), a.wb.q, null, "instanceType", 1, 1, Ybb, false, false, true, false, false, false, false); + vBd(a.qb, Zbb, kLe, false, false, true); + tBd(RD(QHd(xYd(a.qb), 0), 35), a.wb.D, pKe, null, 0, -1, null, false, false, true, false, false, false); + zBd(RD(QHd(xYd(a.qb), 1), 19), a.wb.ab, null, "xMLNSPrefixMap", 0, -1, null, true, false, true, true, false, false, false); + zBd(RD(QHd(xYd(a.qb), 2), 19), a.wb.ab, null, "xSISchemaLocation", 0, -1, null, true, false, true, true, false, false, false); + tBd(RD(QHd(xYd(a.qb), 3), 35), a.gb, "cDATA", null, 0, -2, null, true, true, true, false, false, true); + tBd(RD(QHd(xYd(a.qb), 4), 35), a.gb, "comment", null, 0, -2, null, true, true, true, false, false, true); + zBd(RD(QHd(xYd(a.qb), 5), 19), a.bb, null, KLe, 0, -2, null, true, true, true, true, false, false, true); + tBd(RD(QHd(xYd(a.qb), 6), 35), a.gb, hIe, null, 0, -2, null, true, true, true, false, false, true); + xBd(a.a, jJ, "AnySimpleType", true); + xBd(a.c, qJ, "AnyURI", true); + xBd(a.d, WC(gE, 1), "Base64Binary", true); + xBd(a.e, xdb, "Boolean", true); + xBd(a.f, QI, "BooleanObject", true); + xBd(a.g, gE, "Byte", true); + xBd(a.i, RI, "ByteObject", true); + xBd(a.j, qJ, "Date", true); + xBd(a.k, qJ, "DateTime", true); + xBd(a.n, tJ, "Decimal", true); + xBd(a.o, iE, "Double", true); + xBd(a.p, VI, "DoubleObject", true); + xBd(a.q, qJ, "Duration", true); + xBd(a.s, QK, "ENTITIES", true); + xBd(a.r, QK, "ENTITIESBase", true); + xBd(a.t, qJ, qLe, true); + xBd(a.u, jE, "Float", true); + xBd(a.v, ZI, "FloatObject", true); + xBd(a.w, qJ, "GDay", true); + xBd(a.B, qJ, "GMonth", true); + xBd(a.A, qJ, "GMonthDay", true); + xBd(a.C, qJ, "GYear", true); + xBd(a.D, qJ, "GYearMonth", true); + xBd(a.F, WC(gE, 1), "HexBinary", true); + xBd(a.G, qJ, "ID", true); + xBd(a.H, qJ, "IDREF", true); + xBd(a.J, QK, "IDREFS", true); + xBd(a.I, QK, "IDREFSBase", true); + xBd(a.K, kE, "Int", true); + xBd(a.M, uJ, "Integer", true); + xBd(a.L, bJ, "IntObject", true); + xBd(a.P, qJ, "Language", true); + xBd(a.Q, lE, "Long", true); + xBd(a.R, eJ, "LongObject", true); + xBd(a.S, qJ, "Name", true); + xBd(a.T, qJ, rLe, true); + xBd(a.U, uJ, "NegativeInteger", true); + xBd(a.V, qJ, BLe, true); + xBd(a.X, QK, "NMTOKENS", true); + xBd(a.W, QK, "NMTOKENSBase", true); + xBd(a.Y, uJ, "NonNegativeInteger", true); + xBd(a.Z, uJ, "NonPositiveInteger", true); + xBd(a.$, qJ, "NormalizedString", true); + xBd(a._, qJ, "NOTATION", true); + xBd(a.ab, qJ, "PositiveInteger", true); + xBd(a.cb, qJ, "QName", true); + xBd(a.db, wdb, "Short", true); + xBd(a.eb, lJ, "ShortObject", true); + xBd(a.gb, qJ, uwe, true); + xBd(a.hb, qJ, "Time", true); + xBd(a.ib, qJ, "Token", true); + xBd(a.jb, wdb, "UnsignedByte", true); + xBd(a.kb, lJ, "UnsignedByteObject", true); + xBd(a.lb, lE, "UnsignedInt", true); + xBd(a.mb, eJ, "UnsignedIntObject", true); + xBd(a.nb, uJ, "UnsignedLong", true); + xBd(a.ob, kE, "UnsignedShort", true); + xBd(a.pb, bJ, "UnsignedShortObject", true); + pBd(a, dLe); + yne(a); + } + function Fed(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, ab; + if (d.$g()) { + return yob(), yob(), vob; + } + if (Heb(TD(Gxd(b, (umd(), rld))))) { + return yob(), yob(), vob; + } + A = (!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a).i != 0; + C = Ded(b); + B = !C.dc(); + if (A || B) { + e = RD(Gxd(b, Tld), 143); + if (!e) { + throw Adb(new Jed("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.")); + } + Y = Ofd(e, (aGd(), YFd)); + Bed(b); + if (!A && B && !Y) { + return yob(), yob(), vob; + } + t = new bnb(); + if (dE(Gxd(b, Xkd)) === dE((Fnd(), Cnd)) && (Ofd(e, VFd) || Ofd(e, UFd))) { + if (Heb(TD(Gxd(b, mmd)))) { + throw Adb(new Jed("Topdown layout cannot be used together with hierarchy handling.")); + } + M = Aed(a, b); + N = new Yub(); + ye(N, (!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a)); + while (N.b != 0) { + K = RD(N.b == 0 ? null : (sFb(N.b != 0), Wub(N, N.a.a)), 27); + Bed(K); + X = dE(Gxd(K, Xkd)) === dE(End); + if (X || Hxd(K, Akd) && !Nfd(e, Gxd(K, Tld))) { + q = Fed(a, K, c, d); + Tmb(t, q); + Ixd(K, Xkd, End); + ksd(K); + } else { + ye(N, (!K.a && (K.a = new C5d(J4, K, 10, 11)), K.a)); + } + } + } else { + M = (!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a).i; + if (Heb(TD(Gxd(b, mmd)))) { + Z = d.eh(1); + Z.Ug(yGe, 1); + if (Gxd(b, nmd) == null) { + throw Adb(new Jed(b.k + " has not been assigned a top-down node type.")); + } + if (RD(Gxd(b, nmd), 280) == (mqd(), jqd) || RD(Gxd(b, nmd), 280) == lqd) { + for (s = new dMd((!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a)); s.e != s.i.gc(); ) { + r = RD(bMd(s), 27); + J = RD(Gxd(r, Tld), 143); + if ((!r.a && (r.a = new C5d(J4, r, 10, 11)), r.a).i > 0 && (ltd(J.f), false)) { + if (RD(Gxd(r, nmd), 280) == jqd) { + throw Adb(new Jed("Topdown Layout Providers should only be used on parallel nodes.")); + } + fE(ltd(J.f)); + null.Um(); + zyd(r, $wnd.Math.max(r.g, null.Vm), $wnd.Math.max(r.f, null.Vm)); + } else if (Gxd(r, smd) != null) { + h = RD(Gxd(r, smd), 347); + W = h.Tg(r); + zyd(r, $wnd.Math.max(r.g, W.a), $wnd.Math.max(r.f, W.b)); + } + } + } + O = RD(Gxd(b, tld), 107); + n = b.g - (O.b + O.c); + m = b.f - (O.d + O.a); + Z.bh("Available Child Area: (" + n + "|" + m + ")"); + Ixd(b, Dkd, n / m); + Ced(b, e, d.eh(M)); + if (RD(Gxd(b, nmd), 280) == lqd) { + psd(b); + zyd(b, O.b + Kfb(UD(Gxd(b, Ikd))) + O.c, O.d + Kfb(UD(Gxd(b, Hkd))) + O.a); + } + Z.bh("Executed layout algorithm: " + WD(Gxd(b, Akd)) + " on node " + b.k); + if (RD(Gxd(b, nmd), 280) == jqd) { + if (n < 0 || m < 0) { + throw Adb(new Jed("The size defined by the parent parallel node is too small for the space provided by the paddings of the child hierarchical node. " + b.k)); + } + Hxd(b, Ikd) || Hxd(b, Hkd) || psd(b); + p = Kfb(UD(Gxd(b, Ikd))); + o2 = Kfb(UD(Gxd(b, Hkd))); + Z.bh("Desired Child Area: (" + p + "|" + o2 + ")"); + Q = n / p; + R = m / o2; + P = $wnd.Math.min(Q, $wnd.Math.min(R, Kfb(UD(Gxd(b, omd))))); + Ixd(b, qmd, P); + Z.bh(b.k + " -- Local Scale Factor (X|Y): (" + Q + "|" + R + ")"); + u = RD(Gxd(b, Kkd), 21); + f = 0; + g = 0; + P < Q && (u.Hc((ukd(), okd)) ? f = (n / 2 - p * P / 2) / P : u.Hc(qkd) && (f = (n - p * P) / P)); + P < R && (u.Hc((ukd(), skd)) ? g = (m / 2 - o2 * P / 2) / P : u.Hc(rkd) && (g = (m - o2 * P) / P)); + $ = f + (O.b / P - O.b); + ab = g + (O.d / P - O.d); + Z.bh("Shift: (" + $ + "|" + ab + ")"); + for (L = new dMd((!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a)); L.e != L.i.gc(); ) { + K = RD(bMd(L), 27); + Dyd(K, K.i + $); + Eyd(K, K.j + ab); + } + for (w = new dMd((!b.b && (b.b = new C5d(G4, b, 12, 3)), b.b)); w.e != w.i.gc(); ) { + v = RD(bMd(w), 74); + for (T = new dMd((!v.a && (v.a = new C5d(F4, v, 6, 6)), v.a)); T.e != T.i.gc(); ) { + S = RD(bMd(T), 166); + Nzd(S, S.j + $, S.k + ab); + Gzd(S, S.b + $, S.c + ab); + for (j = new dMd((!S.a && (S.a = new XZd(D4, S, 5)), S.a)); j.e != j.i.gc(); ) { + i = RD(bMd(j), 377); + Uxd(i, i.a + $, i.b + ab); + } + } + for (I = new dMd((!v.n && (v.n = new C5d(I4, v, 1, 7)), v.n)); I.e != I.i.gc(); ) { + H = RD(bMd(I), 135); + Byd(H, H.i + $, H.j + ab); + } + G = RD(Gxd(v, cld), 75); + for (F = Sub(G, 0); F.b != F.d.c; ) { + D = RD(evb(F), 8); + D.a += $; + D.b += ab; + } + Ixd(v, cld, G); + } + } + Z.Vg(); + } + for (l = new dMd((!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a)); l.e != l.i.gc(); ) { + k = RD(bMd(l), 27); + q = Fed(a, k, c, d); + Tmb(t, q); + ksd(k); + } + } + if (d.$g()) { + return yob(), yob(), vob; + } + for (V = new Anb(t); V.a < V.c.c.length; ) { + U = RD(ynb(V), 74); + Ixd(U, rld, (Geb(), true)); + } + Heb(TD(Gxd(b, mmd))) || Ced(b, e, d.eh(M)); + Ged(t); + return B && Y ? C : (yob(), yob(), vob); + } else { + return yob(), yob(), vob; + } + } + function Jre(a, b) { + var c, d; + if (!Bre) { + Bre = new Tsb(); + Cre = new Tsb(); + d = (Vse(), Vse(), new xte(4)); + ose(d, " \n\r\r "); + $jb(Bre, QLe, d); + $jb(Cre, QLe, yte(d)); + d = new xte(4); + ose(d, TLe); + $jb(Bre, OLe, d); + $jb(Cre, OLe, yte(d)); + d = new xte(4); + ose(d, TLe); + $jb(Bre, OLe, d); + $jb(Cre, OLe, yte(d)); + d = new xte(4); + ose(d, ULe); + ute(d, RD(Xjb(Bre, OLe), 122)); + $jb(Bre, PLe, d); + $jb(Cre, PLe, yte(d)); + d = new xte(4); + ose(d, "-.0:AZ__az··ÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁːˑ̀͠͡ͅΆΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁ҃҆ҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆֹֻֽֿֿׁׂ֑֣֡ׄׄאתװײءغـْ٠٩ٰڷںھۀێېۓە۪ۭۨ۰۹ँःअह़्॑॔क़ॣ०९ঁঃঅঌএঐওনপরললশহ়়াৄেৈো্ৗৗড়ঢ়য়ৣ০ৱਂਂਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹ਼਼ਾੂੇੈੋ੍ਖ਼ੜਫ਼ਫ਼੦ੴઁઃઅઋઍઍએઑઓનપરલળવહ઼ૅેૉો્ૠૠ૦૯ଁଃଅଌଏଐଓନପରଲଳଶହ଼ୃେୈୋ୍ୖୗଡ଼ଢ଼ୟୡ୦୯ஂஃஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹாூெைொ்ௗௗ௧௯ఁఃఅఌఎఐఒనపళవహాౄెైొ్ౕౖౠౡ౦౯ಂಃಅಌಎಐಒನಪಳವಹಾೄೆೈೊ್ೕೖೞೞೠೡ೦೯ംഃഅഌഎഐഒനപഹാൃെൈൊ്ൗൗൠൡ൦൯กฮะฺเ๎๐๙ກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະູົຽເໄໆໆ່ໍ໐໙༘༙༠༩༹༹༵༵༷༷༾ཇཉཀྵ྄ཱ྆ྋྐྕྗྗྙྭྱྷྐྵྐྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼ⃐⃜⃡⃡ΩΩKÅ℮℮ↀↂ々々〇〇〡〯〱〵ぁゔ゙゚ゝゞァヺーヾㄅㄬ一龥가힣"); + $jb(Bre, RLe, d); + $jb(Cre, RLe, yte(d)); + d = new xte(4); + ose(d, ULe); + rte(d, 95, 95); + rte(d, 58, 58); + $jb(Bre, SLe, d); + $jb(Cre, SLe, yte(d)); + } + c = b ? RD(Xjb(Bre, a), 138) : RD(Xjb(Cre, a), 138); + return c; + } + function zCc(a) { + Cgd(a, new Pfd(_fd(Wfd($fd(Xfd(Zfd(Yfd(new agd(), sxe), "ELK Layered"), "Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level."), new CCc()), sxe), ysb((aGd(), _Fd), cD(WC(T5, 1), jwe, 245, 0, [YFd, ZFd, XFd, $Fd, VFd, UFd]))))); + Agd(a, sxe, xDe, iGd(QBc)); + Agd(a, sxe, yDe, iGd(RBc)); + Agd(a, sxe, Bze, iGd(SBc)); + Agd(a, sxe, zDe, iGd(TBc)); + Agd(a, sxe, aAe, iGd(VBc)); + Agd(a, sxe, ADe, iGd(WBc)); + Agd(a, sxe, BDe, iGd(ZBc)); + Agd(a, sxe, CDe, iGd(_Bc)); + Agd(a, sxe, DDe, iGd(aCc)); + Agd(a, sxe, EDe, iGd($Bc)); + Agd(a, sxe, _ze, iGd(bCc)); + Agd(a, sxe, FDe, iGd(dCc)); + Agd(a, sxe, GDe, iGd(fCc)); + Agd(a, sxe, HDe, iGd(YBc)); + Agd(a, sxe, wCe, iGd(PBc)); + Agd(a, sxe, yCe, iGd(UBc)); + Agd(a, sxe, xCe, iGd(XBc)); + Agd(a, sxe, zCe, iGd(cCc)); + Agd(a, sxe, $ze, sgb(0)); + Agd(a, sxe, ACe, iGd(KBc)); + Agd(a, sxe, BCe, iGd(LBc)); + Agd(a, sxe, CCe, iGd(MBc)); + Agd(a, sxe, JCe, iGd(vCc)); + Agd(a, sxe, KCe, iGd(nCc)); + Agd(a, sxe, LCe, iGd(oCc)); + Agd(a, sxe, MCe, iGd(rCc)); + Agd(a, sxe, NCe, iGd(pCc)); + Agd(a, sxe, OCe, iGd(qCc)); + Agd(a, sxe, PCe, iGd(xCc)); + Agd(a, sxe, QCe, iGd(wCc)); + Agd(a, sxe, RCe, iGd(tCc)); + Agd(a, sxe, SCe, iGd(sCc)); + Agd(a, sxe, TCe, iGd(uCc)); + Agd(a, sxe, pCe, iGd(iBc)); + Agd(a, sxe, qCe, iGd(jBc)); + Agd(a, sxe, tCe, iGd(DAc)); + Agd(a, sxe, uCe, iGd(EAc)); + Agd(a, sxe, mAe, iGd(jCc)); + Agd(a, sxe, nAe, iGd(lCc)); + Agd(a, sxe, oAe, iGd(iCc)); + Agd(a, sxe, pAe, iGd(hCc)); + Agd(a, sxe, qAe, kCc); + Agd(a, sxe, Eze, rBc); + Agd(a, sxe, kDe, zAc); + Agd(a, sxe, IDe, 0); + Agd(a, sxe, bAe, sgb(1)); + Agd(a, sxe, Dze, Yze); + Agd(a, sxe, JDe, iGd(pBc)); + Agd(a, sxe, eAe, iGd(BBc)); + Agd(a, sxe, KDe, iGd(GBc)); + Agd(a, sxe, LDe, iGd(qAc)); + Agd(a, sxe, MDe, iGd(Rzc)); + Agd(a, sxe, fDe, iGd(IAc)); + Agd(a, sxe, cAe, (Geb(), true)); + Agd(a, sxe, NDe, iGd(NAc)); + Agd(a, sxe, ODe, iGd(OAc)); + Agd(a, sxe, jAe, iGd(lBc)); + Agd(a, sxe, iAe, iGd(oBc)); + Agd(a, sxe, hAe, iGd(mBc)); + Agd(a, sxe, PDe, tAc); + Agd(a, sxe, kAe, iGd(dBc)); + Agd(a, sxe, QDe, iGd(cBc)); + Agd(a, sxe, lAe, iGd(EBc)); + Agd(a, sxe, RDe, iGd(DBc)); + Agd(a, sxe, SDe, iGd(FBc)); + Agd(a, sxe, TDe, uBc); + Agd(a, sxe, UDe, iGd(wBc)); + Agd(a, sxe, VDe, iGd(xBc)); + Agd(a, sxe, WDe, iGd(yBc)); + Agd(a, sxe, XDe, iGd(vBc)); + Agd(a, sxe, PBe, iGd(mCc)); + Agd(a, sxe, SBe, iGd($Ac)); + Agd(a, sxe, YBe, iGd(ZAc)); + Agd(a, sxe, OBe, iGd(gCc)); + Agd(a, sxe, TBe, iGd(UAc)); + Agd(a, sxe, RBe, iGd(pAc)); + Agd(a, sxe, _Be, iGd(oAc)); + Agd(a, sxe, aCe, iGd(eAc)); + Agd(a, sxe, hCe, iGd(fAc)); + Agd(a, sxe, iCe, iGd(hAc)); + Agd(a, sxe, jCe, iGd(gAc)); + Agd(a, sxe, cCe, iGd(nAc)); + Agd(a, sxe, KBe, iGd(aBc)); + Agd(a, sxe, LBe, iGd(bBc)); + Agd(a, sxe, JBe, iGd(QAc)); + Agd(a, sxe, kCe, iGd(kBc)); + Agd(a, sxe, nCe, iGd(fBc)); + Agd(a, sxe, IBe, iGd(GAc)); + Agd(a, sxe, oCe, iGd(hBc)); + Agd(a, sxe, rCe, iGd(BAc)); + Agd(a, sxe, sCe, iGd(CAc)); + Agd(a, sxe, YDe, iGd(dAc)); + Agd(a, sxe, mCe, iGd(eBc)); + Agd(a, sxe, ECe, iGd(Xzc)); + Agd(a, sxe, FCe, iGd(Wzc)); + Agd(a, sxe, DCe, iGd(Vzc)); + Agd(a, sxe, GCe, iGd(KAc)); + Agd(a, sxe, HCe, iGd(JAc)); + Agd(a, sxe, ICe, iGd(LAc)); + Agd(a, sxe, CAe, iGd(nBc)); + Agd(a, sxe, ZDe, iGd(RAc)); + Agd(a, sxe, Cze, iGd(FAc)); + Agd(a, sxe, $De, iGd(wAc)); + Agd(a, sxe, fAe, iGd(vAc)); + Agd(a, sxe, bCe, iGd(iAc)); + Agd(a, sxe, _De, iGd(CBc)); + Agd(a, sxe, aEe, iGd(Uzc)); + Agd(a, sxe, bEe, iGd(MAc)); + Agd(a, sxe, cEe, iGd(zBc)); + Agd(a, sxe, dEe, iGd(sBc)); + Agd(a, sxe, eEe, iGd(tBc)); + Agd(a, sxe, WBe, iGd(WAc)); + Agd(a, sxe, XBe, iGd(XAc)); + Agd(a, sxe, fEe, iGd(IBc)); + Agd(a, sxe, MBe, iGd(Szc)); + Agd(a, sxe, ZBe, iGd(YAc)); + Agd(a, sxe, UCe, iGd(xAc)); + Agd(a, sxe, VCe, iGd(uAc)); + Agd(a, sxe, gEe, iGd(_Ac)); + Agd(a, sxe, $Be, iGd(SAc)); + Agd(a, sxe, lCe, iGd(gBc)); + Agd(a, sxe, hEe, iGd(eCc)); + Agd(a, sxe, HBe, iGd(sAc)); + Agd(a, sxe, NBe, iGd(HBc)); + Agd(a, sxe, vCe, iGd(AAc)); + Agd(a, sxe, dCe, iGd(jAc)); + Agd(a, sxe, eCe, iGd(kAc)); + Agd(a, sxe, UBe, iGd(TAc)); + Agd(a, sxe, fCe, iGd(lAc)); + Agd(a, sxe, iEe, iGd(PAc)); + Agd(a, sxe, VBe, iGd(VAc)); + Agd(a, sxe, gCe, iGd(mAc)); + Agd(a, sxe, WCe, iGd(cAc)); + Agd(a, sxe, $Ce, iGd(_zc)); + Agd(a, sxe, _Ce, iGd(Zzc)); + Agd(a, sxe, aDe, iGd($zc)); + Agd(a, sxe, YCe, iGd(aAc)); + Agd(a, sxe, ZCe, iGd(Yzc)); + Agd(a, sxe, XCe, iGd(bAc)); + Agd(a, sxe, QBe, iGd(HAc)); + } + function yne(a) { + _Ad(a.a, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "anySimpleType"])); + _Ad(a.b, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "anyType", rKe, pKe])); + _Ad(RD(QHd(xYd(a.b), 0), 35), qKe, cD(WC(qJ, 1), Nve, 2, 6, [rKe, YKe, GIe, ":mixed"])); + _Ad(RD(QHd(xYd(a.b), 1), 35), qKe, cD(WC(qJ, 1), Nve, 2, 6, [rKe, YKe, cLe, eLe, GIe, ":1", nLe, "lax"])); + _Ad(RD(QHd(xYd(a.b), 2), 35), qKe, cD(WC(qJ, 1), Nve, 2, 6, [rKe, WKe, cLe, eLe, GIe, ":2", nLe, "lax"])); + _Ad(a.c, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "anyURI", bLe, ZKe])); + _Ad(a.d, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "base64Binary", bLe, ZKe])); + _Ad(a.e, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, hve, bLe, ZKe])); + _Ad(a.f, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "boolean:Object", DKe, hve])); + _Ad(a.g, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, dKe])); + _Ad(a.i, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "byte:Object", DKe, dKe])); + _Ad(a.j, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "date", bLe, ZKe])); + _Ad(a.k, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "dateTime", bLe, ZKe])); + _Ad(a.n, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "decimal", bLe, ZKe])); + _Ad(a.o, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, fKe, bLe, ZKe])); + _Ad(a.p, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "double:Object", DKe, fKe])); + _Ad(a.q, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "duration", bLe, ZKe])); + _Ad(a.s, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "ENTITIES", DKe, oLe, pLe, "1"])); + _Ad(a.r, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, oLe, $Ke, qLe])); + _Ad(a.t, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, qLe, DKe, rLe])); + _Ad(a.u, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, gKe, bLe, ZKe])); + _Ad(a.v, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "float:Object", DKe, gKe])); + _Ad(a.w, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "gDay", bLe, ZKe])); + _Ad(a.B, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "gMonth", bLe, ZKe])); + _Ad(a.A, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "gMonthDay", bLe, ZKe])); + _Ad(a.C, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "gYear", bLe, ZKe])); + _Ad(a.D, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "gYearMonth", bLe, ZKe])); + _Ad(a.F, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "hexBinary", bLe, ZKe])); + _Ad(a.G, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "ID", DKe, rLe])); + _Ad(a.H, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "IDREF", DKe, rLe])); + _Ad(a.J, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "IDREFS", DKe, sLe, pLe, "1"])); + _Ad(a.I, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, sLe, $Ke, "IDREF"])); + _Ad(a.K, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, hKe])); + _Ad(a.M, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, tLe])); + _Ad(a.L, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "int:Object", DKe, hKe])); + _Ad(a.P, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "language", DKe, uLe, vLe, wLe])); + _Ad(a.Q, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, iKe])); + _Ad(a.R, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "long:Object", DKe, iKe])); + _Ad(a.S, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "Name", DKe, uLe, vLe, xLe])); + _Ad(a.T, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, rLe, DKe, "Name", vLe, yLe])); + _Ad(a.U, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "negativeInteger", DKe, zLe, ALe, "-1"])); + _Ad(a.V, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, BLe, DKe, uLe, vLe, "\\c+"])); + _Ad(a.X, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "NMTOKENS", DKe, CLe, pLe, "1"])); + _Ad(a.W, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, CLe, $Ke, BLe])); + _Ad(a.Y, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, DLe, DKe, tLe, ELe, "0"])); + _Ad(a.Z, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, zLe, DKe, tLe, ALe, "0"])); + _Ad(a.$, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, FLe, DKe, jve, bLe, "replace"])); + _Ad(a._, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "NOTATION", bLe, ZKe])); + _Ad(a.ab, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "positiveInteger", DKe, DLe, ELe, "1"])); + _Ad(a.bb, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "processingInstruction_._type", rKe, "empty"])); + _Ad(RD(QHd(xYd(a.bb), 0), 35), qKe, cD(WC(qJ, 1), Nve, 2, 6, [rKe, VKe, GIe, "data"])); + _Ad(RD(QHd(xYd(a.bb), 1), 35), qKe, cD(WC(qJ, 1), Nve, 2, 6, [rKe, VKe, GIe, CIe])); + _Ad(a.cb, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "QName", bLe, ZKe])); + _Ad(a.db, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, jKe])); + _Ad(a.eb, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "short:Object", DKe, jKe])); + _Ad(a.fb, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "simpleAnyType", rKe, UKe])); + _Ad(RD(QHd(xYd(a.fb), 0), 35), qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, ":3", rKe, UKe])); + _Ad(RD(QHd(xYd(a.fb), 1), 35), qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, ":4", rKe, UKe])); + _Ad(RD(QHd(xYd(a.fb), 2), 19), qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, ":5", rKe, UKe])); + _Ad(a.gb, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, jve, bLe, "preserve"])); + _Ad(a.hb, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "time", bLe, ZKe])); + _Ad(a.ib, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, uLe, DKe, FLe, bLe, ZKe])); + _Ad(a.jb, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, GLe, ALe, "255", ELe, "0"])); + _Ad(a.kb, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "unsignedByte:Object", DKe, GLe])); + _Ad(a.lb, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, HLe, ALe, "4294967295", ELe, "0"])); + _Ad(a.mb, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "unsignedInt:Object", DKe, HLe])); + _Ad(a.nb, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "unsignedLong", DKe, DLe, ALe, ILe, ELe, "0"])); + _Ad(a.ob, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, JLe, ALe, "65535", ELe, "0"])); + _Ad(a.pb, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "unsignedShort:Object", DKe, JLe])); + _Ad(a.qb, qKe, cD(WC(qJ, 1), Nve, 2, 6, [GIe, "", rKe, pKe])); + _Ad(RD(QHd(xYd(a.qb), 0), 35), qKe, cD(WC(qJ, 1), Nve, 2, 6, [rKe, YKe, GIe, ":mixed"])); + _Ad(RD(QHd(xYd(a.qb), 1), 19), qKe, cD(WC(qJ, 1), Nve, 2, 6, [rKe, VKe, GIe, "xmlns:prefix"])); + _Ad(RD(QHd(xYd(a.qb), 2), 19), qKe, cD(WC(qJ, 1), Nve, 2, 6, [rKe, VKe, GIe, "xsi:schemaLocation"])); + _Ad(RD(QHd(xYd(a.qb), 3), 35), qKe, cD(WC(qJ, 1), Nve, 2, 6, [rKe, XKe, GIe, "cDATA", _Ke, aLe])); + _Ad(RD(QHd(xYd(a.qb), 4), 35), qKe, cD(WC(qJ, 1), Nve, 2, 6, [rKe, XKe, GIe, "comment", _Ke, aLe])); + _Ad(RD(QHd(xYd(a.qb), 5), 19), qKe, cD(WC(qJ, 1), Nve, 2, 6, [rKe, XKe, GIe, KLe, _Ke, aLe])); + _Ad(RD(QHd(xYd(a.qb), 6), 35), qKe, cD(WC(qJ, 1), Nve, 2, 6, [rKe, XKe, GIe, hIe, _Ke, aLe])); + } + function TId(a) { + return lhb("_UI_EMFDiagnostic_marker", a) ? "EMF Problem" : lhb("_UI_CircularContainment_diagnostic", a) ? "An object may not circularly contain itself" : lhb(TIe, a) ? "Wrong character." : lhb(UIe, a) ? "Invalid reference number." : lhb(VIe, a) ? "A character is required after \\." : lhb(WIe, a) ? "'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?" : lhb(XIe, a) ? "'(?<' or '(? toIndex: ", bye = ", toIndex: ", cye = "Index: ", dye = ", Size: ", eye = "org.eclipse.elk.alg.common", fye = { 50: 1 }, gye = "org.eclipse.elk.alg.common.compaction", hye = "Scanline/EventHandler", iye = "org.eclipse.elk.alg.common.compaction.oned", jye = "CNode belongs to another CGroup.", kye = "ISpacingsHandler/1", lye = "The ", mye = " instance has been finished already.", nye = "The direction ", oye = " is not supported by the CGraph instance.", pye = "OneDimensionalCompactor", qye = "OneDimensionalCompactor/lambda$0$Type", rye = "Quadruplet", sye = "ScanlineConstraintCalculator", tye = "ScanlineConstraintCalculator/ConstraintsScanlineHandler", uye = "ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type", vye = "ScanlineConstraintCalculator/Timestamp", wye = "ScanlineConstraintCalculator/lambda$0$Type", xye = { 178: 1, 46: 1 }, yye = "org.eclipse.elk.alg.common.compaction.options", zye = "org.eclipse.elk.core.data", Aye = "org.eclipse.elk.polyomino.traversalStrategy", Bye = "org.eclipse.elk.polyomino.lowLevelSort", Cye = "org.eclipse.elk.polyomino.highLevelSort", Dye = "org.eclipse.elk.polyomino.fill", Eye = { 134: 1 }, Fye = "polyomino", Gye = "org.eclipse.elk.alg.common.networksimplex", Hye = { 183: 1, 3: 1, 4: 1 }, Iye = "org.eclipse.elk.alg.common.nodespacing", Jye = "org.eclipse.elk.alg.common.nodespacing.cellsystem", Kye = "CENTER", Lye = { 217: 1, 336: 1 }, Mye = { 3: 1, 4: 1, 5: 1, 603: 1 }, Nye = "LEFT", Oye = "RIGHT", Pye = "Vertical alignment cannot be null", Qye = "BOTTOM", Rye = "org.eclipse.elk.alg.common.nodespacing.internal", Sye = "UNDEFINED", Tye = 0.01, Uye = "org.eclipse.elk.alg.common.nodespacing.internal.algorithm", Vye = "LabelPlacer/lambda$0$Type", Wye = "LabelPlacer/lambda$1$Type", Xye = "portRatioOrPosition", Yye = "org.eclipse.elk.alg.common.overlaps", Zye = "DOWN", $ye = "org.eclipse.elk.alg.common.polyomino", _ye = "NORTH", aze = "EAST", bze = "SOUTH", cze = "WEST", dze = "org.eclipse.elk.alg.common.polyomino.structures", eze = "Direction", fze = "Grid is only of size ", gze = ". Requested point (", hze = ") is out of bounds.", ize = " Given center based coordinates were (", jze = "org.eclipse.elk.graph.properties", kze = "IPropertyHolder", lze = { 3: 1, 96: 1, 137: 1 }, mze = "org.eclipse.elk.alg.common.spore", nze = "org.eclipse.elk.alg.common.utils", oze = { 205: 1 }, pze = "org.eclipse.elk.core", qze = "Connected Components Compaction", rze = "org.eclipse.elk.alg.disco", sze = "org.eclipse.elk.alg.disco.graph", tze = "org.eclipse.elk.alg.disco.options", uze = "CompactionStrategy", vze = "org.eclipse.elk.disco.componentCompaction.strategy", wze = "org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm", xze = "org.eclipse.elk.disco.debug.discoGraph", yze = "org.eclipse.elk.disco.debug.discoPolys", zze = "componentCompaction", Aze = "org.eclipse.elk.disco", Bze = "org.eclipse.elk.spacing.componentComponent", Cze = "org.eclipse.elk.edge.thickness", Dze = "org.eclipse.elk.aspectRatio", Eze = "org.eclipse.elk.padding", Fze = "org.eclipse.elk.alg.disco.transform", Gze = 1.5707963267948966, Hze = 17976931348623157e292, Ize = { 3: 1, 4: 1, 5: 1, 198: 1 }, Jze = { 3: 1, 6: 1, 4: 1, 5: 1, 100: 1, 115: 1 }, Kze = "org.eclipse.elk.alg.force", Lze = "ComponentsProcessor", Mze = "ComponentsProcessor/1", Nze = "ElkGraphImporter/lambda$0$Type", Oze = "org.eclipse.elk.alg.force.graph", Pze = "Component Layout", Qze = "org.eclipse.elk.alg.force.model", Rze = "org.eclipse.elk.force.model", Sze = "org.eclipse.elk.force.iterations", Tze = "org.eclipse.elk.force.repulsivePower", Uze = "org.eclipse.elk.force.temperature", Vze = 1e-3, Wze = "org.eclipse.elk.force.repulsion", Xze = "org.eclipse.elk.alg.force.options", Yze = 1.600000023841858, Zze = "org.eclipse.elk.force", $ze = "org.eclipse.elk.priority", _ze = "org.eclipse.elk.spacing.nodeNode", aAe = "org.eclipse.elk.spacing.edgeLabel", bAe = "org.eclipse.elk.randomSeed", cAe = "org.eclipse.elk.separateConnectedComponents", dAe = "org.eclipse.elk.interactive", eAe = "org.eclipse.elk.portConstraints", fAe = "org.eclipse.elk.edgeLabels.inline", gAe = "org.eclipse.elk.omitNodeMicroLayout", hAe = "org.eclipse.elk.nodeSize.fixedGraphSize", iAe = "org.eclipse.elk.nodeSize.options", jAe = "org.eclipse.elk.nodeSize.constraints", kAe = "org.eclipse.elk.nodeLabels.placement", lAe = "org.eclipse.elk.portLabels.placement", mAe = "org.eclipse.elk.topdownLayout", nAe = "org.eclipse.elk.topdown.scaleFactor", oAe = "org.eclipse.elk.topdown.hierarchicalNodeWidth", pAe = "org.eclipse.elk.topdown.hierarchicalNodeAspectRatio", qAe = "org.eclipse.elk.topdown.nodeType", rAe = "origin", sAe = "random", tAe = "boundingBox.upLeft", uAe = "boundingBox.lowRight", vAe = "org.eclipse.elk.stress.fixed", wAe = "org.eclipse.elk.stress.desiredEdgeLength", xAe = "org.eclipse.elk.stress.dimension", yAe = "org.eclipse.elk.stress.epsilon", zAe = "org.eclipse.elk.stress.iterationLimit", AAe = "org.eclipse.elk.stress", BAe = "ELK Stress", CAe = "org.eclipse.elk.nodeSize.minimum", DAe = "org.eclipse.elk.alg.force.stress", EAe = "Layered layout", FAe = "org.eclipse.elk.alg.layered", GAe = "org.eclipse.elk.alg.layered.compaction.components", HAe = "org.eclipse.elk.alg.layered.compaction.oned", IAe = "org.eclipse.elk.alg.layered.compaction.oned.algs", JAe = "org.eclipse.elk.alg.layered.compaction.recthull", KAe = "org.eclipse.elk.alg.layered.components", LAe = "NONE", MAe = "MODEL_ORDER", NAe = { 3: 1, 6: 1, 4: 1, 9: 1, 5: 1, 126: 1 }, OAe = { 3: 1, 6: 1, 4: 1, 5: 1, 150: 1, 100: 1, 115: 1 }, PAe = "org.eclipse.elk.alg.layered.compound", QAe = { 47: 1 }, RAe = "org.eclipse.elk.alg.layered.graph", SAe = " -> ", TAe = "Not supported by LGraph", UAe = "Port side is undefined", VAe = { 3: 1, 6: 1, 4: 1, 5: 1, 483: 1, 150: 1, 100: 1, 115: 1 }, WAe = { 3: 1, 6: 1, 4: 1, 5: 1, 150: 1, 199: 1, 210: 1, 100: 1, 115: 1 }, XAe = { 3: 1, 6: 1, 4: 1, 5: 1, 150: 1, 2042: 1, 210: 1, 100: 1, 115: 1 }, YAe = `([{"' \r +`, ZAe = `)]}"' \r +`, $Ae = "The given string contains parts that cannot be parsed as numbers.", _Ae = "org.eclipse.elk.core.math", aBe = { 3: 1, 4: 1, 140: 1, 214: 1, 423: 1 }, bBe = { 3: 1, 4: 1, 107: 1, 214: 1, 423: 1 }, cBe = "org.eclipse.elk.alg.layered.graph.transform", dBe = "ElkGraphImporter", eBe = "ElkGraphImporter/lambda$1$Type", fBe = "ElkGraphImporter/lambda$2$Type", gBe = "ElkGraphImporter/lambda$4$Type", hBe = "org.eclipse.elk.alg.layered.intermediate", iBe = "Node margin calculation", jBe = "ONE_SIDED_GREEDY_SWITCH", kBe = "TWO_SIDED_GREEDY_SWITCH", lBe = "No implementation is available for the layout processor ", mBe = "IntermediateProcessorStrategy", nBe = "Node '", oBe = "FIRST_SEPARATE", pBe = "LAST_SEPARATE", qBe = "Odd port side processing", rBe = "org.eclipse.elk.alg.layered.intermediate.compaction", sBe = "org.eclipse.elk.alg.layered.intermediate.greedyswitch", tBe = "org.eclipse.elk.alg.layered.p3order.counting", uBe = { 230: 1 }, vBe = "org.eclipse.elk.alg.layered.intermediate.loops", wBe = "org.eclipse.elk.alg.layered.intermediate.loops.ordering", xBe = "org.eclipse.elk.alg.layered.intermediate.loops.routing", yBe = "org.eclipse.elk.alg.layered.intermediate.preserveorder", zBe = "org.eclipse.elk.alg.layered.intermediate.wrapping", ABe = "org.eclipse.elk.alg.layered.options", BBe = "INTERACTIVE", CBe = "GREEDY", DBe = "DEPTH_FIRST", EBe = "EDGE_LENGTH", FBe = "SELF_LOOPS", GBe = "firstTryWithInitialOrder", HBe = "org.eclipse.elk.layered.directionCongruency", IBe = "org.eclipse.elk.layered.feedbackEdges", JBe = "org.eclipse.elk.layered.interactiveReferencePoint", KBe = "org.eclipse.elk.layered.mergeEdges", LBe = "org.eclipse.elk.layered.mergeHierarchyEdges", MBe = "org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides", NBe = "org.eclipse.elk.layered.portSortingStrategy", OBe = "org.eclipse.elk.layered.thoroughness", PBe = "org.eclipse.elk.layered.unnecessaryBendpoints", QBe = "org.eclipse.elk.layered.generatePositionAndLayerIds", RBe = "org.eclipse.elk.layered.cycleBreaking.strategy", SBe = "org.eclipse.elk.layered.layering.strategy", TBe = "org.eclipse.elk.layered.layering.layerConstraint", UBe = "org.eclipse.elk.layered.layering.layerChoiceConstraint", VBe = "org.eclipse.elk.layered.layering.layerId", WBe = "org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth", XBe = "org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor", YBe = "org.eclipse.elk.layered.layering.nodePromotion.strategy", ZBe = "org.eclipse.elk.layered.layering.nodePromotion.maxIterations", $Be = "org.eclipse.elk.layered.layering.coffmanGraham.layerBound", _Be = "org.eclipse.elk.layered.crossingMinimization.strategy", aCe = "org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder", bCe = "org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness", cCe = "org.eclipse.elk.layered.crossingMinimization.semiInteractive", dCe = "org.eclipse.elk.layered.crossingMinimization.inLayerPredOf", eCe = "org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf", fCe = "org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint", gCe = "org.eclipse.elk.layered.crossingMinimization.positionId", hCe = "org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold", iCe = "org.eclipse.elk.layered.crossingMinimization.greedySwitch.type", jCe = "org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type", kCe = "org.eclipse.elk.layered.nodePlacement.strategy", lCe = "org.eclipse.elk.layered.nodePlacement.favorStraightEdges", mCe = "org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening", nCe = "org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment", oCe = "org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening", pCe = "org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility", qCe = "org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default", rCe = "org.eclipse.elk.layered.edgeRouting.selfLoopDistribution", sCe = "org.eclipse.elk.layered.edgeRouting.selfLoopOrdering", tCe = "org.eclipse.elk.layered.edgeRouting.splines.mode", uCe = "org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor", vCe = "org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth", wCe = "org.eclipse.elk.layered.spacing.baseValue", xCe = "org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers", yCe = "org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers", zCe = "org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers", ACe = "org.eclipse.elk.layered.priority.direction", BCe = "org.eclipse.elk.layered.priority.shortness", CCe = "org.eclipse.elk.layered.priority.straightness", DCe = "org.eclipse.elk.layered.compaction.connectedComponents", ECe = "org.eclipse.elk.layered.compaction.postCompaction.strategy", FCe = "org.eclipse.elk.layered.compaction.postCompaction.constraints", GCe = "org.eclipse.elk.layered.highDegreeNodes.treatment", HCe = "org.eclipse.elk.layered.highDegreeNodes.threshold", ICe = "org.eclipse.elk.layered.highDegreeNodes.treeHeight", JCe = "org.eclipse.elk.layered.wrapping.strategy", KCe = "org.eclipse.elk.layered.wrapping.additionalEdgeSpacing", LCe = "org.eclipse.elk.layered.wrapping.correctionFactor", MCe = "org.eclipse.elk.layered.wrapping.cutting.strategy", NCe = "org.eclipse.elk.layered.wrapping.cutting.cuts", OCe = "org.eclipse.elk.layered.wrapping.cutting.msd.freedom", PCe = "org.eclipse.elk.layered.wrapping.validify.strategy", QCe = "org.eclipse.elk.layered.wrapping.validify.forbiddenIndices", RCe = "org.eclipse.elk.layered.wrapping.multiEdge.improveCuts", SCe = "org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty", TCe = "org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges", UCe = "org.eclipse.elk.layered.edgeLabels.sideSelection", VCe = "org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy", WCe = "org.eclipse.elk.layered.considerModelOrder.strategy", XCe = "org.eclipse.elk.layered.considerModelOrder.portModelOrder", YCe = "org.eclipse.elk.layered.considerModelOrder.noModelOrder", ZCe = "org.eclipse.elk.layered.considerModelOrder.components", $Ce = "org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy", _Ce = "org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence", aDe = "org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence", bDe = "layering", cDe = "layering.minWidth", dDe = "layering.nodePromotion", eDe = "crossingMinimization", fDe = "org.eclipse.elk.hierarchyHandling", gDe = "crossingMinimization.greedySwitch", hDe = "nodePlacement", iDe = "nodePlacement.bk", jDe = "edgeRouting", kDe = "org.eclipse.elk.edgeRouting", lDe = "spacing", mDe = "priority", nDe = "compaction", oDe = "compaction.postCompaction", pDe = "Specifies whether and how post-process compaction is applied.", qDe = "highDegreeNodes", rDe = "wrapping", sDe = "wrapping.cutting", tDe = "wrapping.validify", uDe = "wrapping.multiEdge", vDe = "edgeLabels", wDe = "considerModelOrder", xDe = "org.eclipse.elk.spacing.commentComment", yDe = "org.eclipse.elk.spacing.commentNode", zDe = "org.eclipse.elk.spacing.edgeEdge", ADe = "org.eclipse.elk.spacing.edgeNode", BDe = "org.eclipse.elk.spacing.labelLabel", CDe = "org.eclipse.elk.spacing.labelPortHorizontal", DDe = "org.eclipse.elk.spacing.labelPortVertical", EDe = "org.eclipse.elk.spacing.labelNode", FDe = "org.eclipse.elk.spacing.nodeSelfLoop", GDe = "org.eclipse.elk.spacing.portPort", HDe = "org.eclipse.elk.spacing.individual", IDe = "org.eclipse.elk.port.borderOffset", JDe = "org.eclipse.elk.noLayout", KDe = "org.eclipse.elk.port.side", LDe = "org.eclipse.elk.debugMode", MDe = "org.eclipse.elk.alignment", NDe = "org.eclipse.elk.insideSelfLoops.activate", ODe = "org.eclipse.elk.insideSelfLoops.yo", PDe = "org.eclipse.elk.direction", QDe = "org.eclipse.elk.nodeLabels.padding", RDe = "org.eclipse.elk.portLabels.nextToPortIfPossible", SDe = "org.eclipse.elk.portLabels.treatAsGroup", TDe = "org.eclipse.elk.portAlignment.default", UDe = "org.eclipse.elk.portAlignment.north", VDe = "org.eclipse.elk.portAlignment.south", WDe = "org.eclipse.elk.portAlignment.west", XDe = "org.eclipse.elk.portAlignment.east", YDe = "org.eclipse.elk.contentAlignment", ZDe = "org.eclipse.elk.junctionPoints", $De = "org.eclipse.elk.edgeLabels.placement", _De = "org.eclipse.elk.port.index", aEe = "org.eclipse.elk.commentBox", bEe = "org.eclipse.elk.hypernode", cEe = "org.eclipse.elk.port.anchor", dEe = "org.eclipse.elk.partitioning.activate", eEe = "org.eclipse.elk.partitioning.partition", fEe = "org.eclipse.elk.position", gEe = "org.eclipse.elk.margins", hEe = "org.eclipse.elk.spacing.portsSurrounding", iEe = "org.eclipse.elk.interactiveLayout", jEe = "org.eclipse.elk.core.util", kEe = { 3: 1, 4: 1, 5: 1, 601: 1 }, lEe = "NETWORK_SIMPLEX", mEe = "SIMPLE", nEe = { 106: 1, 47: 1 }, oEe = "org.eclipse.elk.alg.layered.p1cycles", pEe = "org.eclipse.elk.alg.layered.p2layers", qEe = { 413: 1, 230: 1 }, rEe = { 846: 1, 3: 1, 4: 1 }, sEe = "org.eclipse.elk.alg.layered.p3order", tEe = "org.eclipse.elk.alg.layered.p4nodes", uEe = { 3: 1, 4: 1, 5: 1, 854: 1 }, vEe = 1e-5, wEe = "org.eclipse.elk.alg.layered.p4nodes.bk", xEe = "org.eclipse.elk.alg.layered.p5edges", yEe = "org.eclipse.elk.alg.layered.p5edges.orthogonal", zEe = "org.eclipse.elk.alg.layered.p5edges.orthogonal.direction", AEe = 1e-6, BEe = "org.eclipse.elk.alg.layered.p5edges.splines", CEe = 0.09999999999999998, DEe = 1e-8, EEe = 4.71238898038469, FEe = 3.141592653589793, GEe = "org.eclipse.elk.alg.mrtree", HEe = 0.10000000149011612, IEe = "SUPER_ROOT", JEe = "org.eclipse.elk.alg.mrtree.graph", KEe = -17976931348623157e292, LEe = "org.eclipse.elk.alg.mrtree.intermediate", MEe = "Processor compute fanout", NEe = { 3: 1, 6: 1, 4: 1, 5: 1, 534: 1, 100: 1, 115: 1 }, OEe = "Set neighbors in level", PEe = "org.eclipse.elk.alg.mrtree.options", QEe = "DESCENDANTS", REe = "org.eclipse.elk.mrtree.compaction", SEe = "org.eclipse.elk.mrtree.edgeEndTextureLength", TEe = "org.eclipse.elk.mrtree.treeLevel", UEe = "org.eclipse.elk.mrtree.positionConstraint", VEe = "org.eclipse.elk.mrtree.weighting", WEe = "org.eclipse.elk.mrtree.edgeRoutingMode", XEe = "org.eclipse.elk.mrtree.searchOrder", YEe = "Position Constraint", ZEe = "org.eclipse.elk.mrtree", $Ee = "org.eclipse.elk.tree", _Ee = "Processor arrange level", aFe = "org.eclipse.elk.alg.mrtree.p2order", bFe = "org.eclipse.elk.alg.mrtree.p4route", cFe = "org.eclipse.elk.alg.radial", dFe = 6.283185307179586, eFe = "Before", fFe = 5e-324, gFe = "After", hFe = "org.eclipse.elk.alg.radial.intermediate", iFe = "COMPACTION", jFe = "org.eclipse.elk.alg.radial.intermediate.compaction", kFe = { 3: 1, 4: 1, 5: 1, 100: 1 }, lFe = "org.eclipse.elk.alg.radial.intermediate.optimization", mFe = "No implementation is available for the layout option ", nFe = "org.eclipse.elk.alg.radial.options", oFe = "org.eclipse.elk.radial.centerOnRoot", pFe = "org.eclipse.elk.radial.orderId", qFe = "org.eclipse.elk.radial.radius", rFe = "org.eclipse.elk.radial.rotate", sFe = "org.eclipse.elk.radial.compactor", tFe = "org.eclipse.elk.radial.compactionStepSize", uFe = "org.eclipse.elk.radial.sorter", vFe = "org.eclipse.elk.radial.wedgeCriteria", wFe = "org.eclipse.elk.radial.optimizationCriteria", xFe = "org.eclipse.elk.radial.rotation.targetAngle", yFe = "org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace", zFe = "org.eclipse.elk.radial.rotation.outgoingEdgeAngles", AFe = "Compaction", BFe = "rotation", CFe = "org.eclipse.elk.radial", DFe = "org.eclipse.elk.alg.radial.p1position.wedge", EFe = "org.eclipse.elk.alg.radial.sorting", FFe = 5.497787143782138, GFe = 3.9269908169872414, HFe = 2.356194490192345, IFe = "org.eclipse.elk.alg.rectpacking", JFe = "org.eclipse.elk.alg.rectpacking.intermediate", KFe = "org.eclipse.elk.alg.rectpacking.options", LFe = "org.eclipse.elk.rectpacking.trybox", MFe = "org.eclipse.elk.rectpacking.currentPosition", NFe = "org.eclipse.elk.rectpacking.desiredPosition", OFe = "org.eclipse.elk.rectpacking.inNewRow", PFe = "org.eclipse.elk.rectpacking.widthApproximation.strategy", QFe = "org.eclipse.elk.rectpacking.widthApproximation.targetWidth", RFe = "org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal", SFe = "org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift", TFe = "org.eclipse.elk.rectpacking.packing.strategy", UFe = "org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation", VFe = "org.eclipse.elk.rectpacking.packing.compaction.iterations", WFe = "org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy", XFe = "widthApproximation", YFe = "Compaction Strategy", ZFe = "packing.compaction", $Fe = "org.eclipse.elk.rectpacking", _Fe = "org.eclipse.elk.alg.rectpacking.p1widthapproximation", aGe = "org.eclipse.elk.alg.rectpacking.p2packing", bGe = "No Compaction", cGe = "org.eclipse.elk.alg.rectpacking.p3whitespaceelimination", dGe = "org.eclipse.elk.alg.rectpacking.util", eGe = "No implementation available for ", fGe = "org.eclipse.elk.alg.spore", gGe = "org.eclipse.elk.alg.spore.options", hGe = "org.eclipse.elk.sporeCompaction", iGe = "org.eclipse.elk.underlyingLayoutAlgorithm", jGe = "org.eclipse.elk.processingOrder.treeConstruction", kGe = "org.eclipse.elk.processingOrder.spanningTreeCostFunction", lGe = "org.eclipse.elk.processingOrder.preferredRoot", mGe = "org.eclipse.elk.processingOrder.rootSelection", nGe = "org.eclipse.elk.structure.structureExtractionStrategy", oGe = "org.eclipse.elk.compaction.compactionStrategy", pGe = "org.eclipse.elk.compaction.orthogonal", qGe = "org.eclipse.elk.overlapRemoval.maxIterations", rGe = "org.eclipse.elk.overlapRemoval.runScanline", sGe = "processingOrder", tGe = "overlapRemoval", uGe = "org.eclipse.elk.sporeOverlap", vGe = "org.eclipse.elk.alg.spore.p1structure", wGe = "org.eclipse.elk.alg.spore.p2processingorder", xGe = "org.eclipse.elk.alg.spore.p3execution", yGe = "Topdown Layout", zGe = "Invalid index: ", AGe = "org.eclipse.elk.core.alg", BGe = { 341: 1 }, CGe = { 295: 1 }, DGe = "Make sure its type is registered with the ", EGe = " utility class.", FGe = "true", GGe = "false", HGe = "Couldn't clone property '", IGe = 0.05, JGe = "org.eclipse.elk.core.options", KGe = 1.2999999523162842, LGe = "org.eclipse.elk.box", MGe = "org.eclipse.elk.expandNodes", NGe = "org.eclipse.elk.box.packingMode", OGe = "org.eclipse.elk.algorithm", PGe = "org.eclipse.elk.resolvedAlgorithm", QGe = "org.eclipse.elk.bendPoints", RGe = "org.eclipse.elk.labelManager", SGe = "org.eclipse.elk.scaleFactor", TGe = "org.eclipse.elk.childAreaWidth", UGe = "org.eclipse.elk.childAreaHeight", VGe = "org.eclipse.elk.animate", WGe = "org.eclipse.elk.animTimeFactor", XGe = "org.eclipse.elk.layoutAncestors", YGe = "org.eclipse.elk.maxAnimTime", ZGe = "org.eclipse.elk.minAnimTime", $Ge = "org.eclipse.elk.progressBar", _Ge = "org.eclipse.elk.validateGraph", aHe = "org.eclipse.elk.validateOptions", bHe = "org.eclipse.elk.zoomToFit", cHe = "org.eclipse.elk.font.name", dHe = "org.eclipse.elk.font.size", eHe = "org.eclipse.elk.topdown.sizeApproximator", fHe = "org.eclipse.elk.topdown.scaleCap", gHe = "org.eclipse.elk.edge.type", hHe = "partitioning", iHe = "nodeLabels", jHe = "portAlignment", kHe = "nodeSize", lHe = "port", mHe = "portLabels", nHe = "topdown", oHe = "insideSelfLoops", pHe = "org.eclipse.elk.fixed", qHe = "org.eclipse.elk.random", rHe = { 3: 1, 34: 1, 22: 1, 347: 1 }, sHe = "port must have a parent node to calculate the port side", tHe = "The edge needs to have exactly one edge section. Found: ", uHe = "org.eclipse.elk.core.util.adapters", vHe = "org.eclipse.emf.ecore", wHe = "org.eclipse.elk.graph", xHe = "EMapPropertyHolder", yHe = "ElkBendPoint", zHe = "ElkGraphElement", AHe = "ElkConnectableShape", BHe = "ElkEdge", CHe = "ElkEdgeSection", DHe = "EModelElement", EHe = "ENamedElement", FHe = "ElkLabel", GHe = "ElkNode", HHe = "ElkPort", IHe = { 94: 1, 93: 1 }, JHe = "org.eclipse.emf.common.notify.impl", KHe = "The feature '", LHe = "' is not a valid changeable feature", MHe = "Expecting null", NHe = "' is not a valid feature", OHe = "The feature ID", PHe = " is not a valid feature ID", QHe = 32768, RHe = { 110: 1, 94: 1, 93: 1, 58: 1, 54: 1, 99: 1 }, SHe = "org.eclipse.emf.ecore.impl", THe = "org.eclipse.elk.graph.impl", UHe = "Recursive containment not allowed for ", VHe = "The datatype '", WHe = "' is not a valid classifier", XHe = "The value '", YHe = { 195: 1, 3: 1, 4: 1 }, ZHe = "The class '", $He = "http://www.eclipse.org/elk/ElkGraph", _He = "property", aIe = "value", bIe = "source", cIe = "properties", dIe = "identifier", eIe = "height", fIe = "width", gIe = "parent", hIe = "text", iIe = "children", jIe = "hierarchical", kIe = "sources", lIe = "targets", mIe = "sections", nIe = "bendPoints", oIe = "outgoingShape", pIe = "incomingShape", qIe = "outgoingSections", rIe = "incomingSections", sIe = "org.eclipse.emf.common.util", tIe = "Severe implementation error in the Json to ElkGraph importer.", uIe = "id", vIe = "org.eclipse.elk.graph.json", wIe = "Unhandled parameter types: ", xIe = "startPoint", yIe = "An edge must have at least one source and one target (edge id: '", zIe = "').", AIe = "Referenced edge section does not exist: ", BIe = " (edge id: '", CIe = "target", DIe = "sourcePoint", EIe = "targetPoint", FIe = "group", GIe = "name", HIe = "connectableShape cannot be null", IIe = "edge cannot be null", JIe = "Passed edge is not 'simple'.", KIe = "org.eclipse.elk.graph.util", LIe = "The 'no duplicates' constraint is violated", MIe = "targetIndex=", NIe = ", size=", OIe = "sourceIndex=", PIe = { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 59: 1, 70: 1, 66: 1, 61: 1 }, QIe = { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 51: 1, 15: 1, 59: 1, 70: 1, 66: 1, 61: 1, 596: 1 }, RIe = "logging", SIe = "measureExecutionTime", TIe = "parser.parse.1", UIe = "parser.parse.2", VIe = "parser.next.1", WIe = "parser.next.2", XIe = "parser.next.3", YIe = "parser.next.4", ZIe = "parser.factor.1", $Ie = "parser.factor.2", _Ie = "parser.factor.3", aJe = "parser.factor.4", bJe = "parser.factor.5", cJe = "parser.factor.6", dJe = "parser.atom.1", eJe = "parser.atom.2", fJe = "parser.atom.3", gJe = "parser.atom.4", hJe = "parser.atom.5", iJe = "parser.cc.1", jJe = "parser.cc.2", kJe = "parser.cc.3", lJe = "parser.cc.5", mJe = "parser.cc.6", nJe = "parser.cc.7", oJe = "parser.cc.8", pJe = "parser.ope.1", qJe = "parser.ope.2", rJe = "parser.ope.3", sJe = "parser.descape.1", tJe = "parser.descape.2", uJe = "parser.descape.3", vJe = "parser.descape.4", wJe = "parser.descape.5", xJe = "parser.process.1", yJe = "parser.quantifier.1", zJe = "parser.quantifier.2", AJe = "parser.quantifier.3", BJe = "parser.quantifier.4", CJe = "parser.quantifier.5", DJe = "org.eclipse.emf.common.notify", EJe = { 424: 1, 686: 1 }, FJe = { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 70: 1, 61: 1 }, GJe = { 378: 1, 152: 1 }, HJe = "index=", IJe = { 3: 1, 4: 1, 5: 1, 129: 1 }, JJe = { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 59: 1, 70: 1, 61: 1 }, KJe = { 3: 1, 6: 1, 4: 1, 5: 1, 198: 1 }, LJe = { 3: 1, 4: 1, 5: 1, 173: 1, 379: 1 }, MJe = ";/?:@&=+$,", NJe = "invalid authority: ", OJe = "EAnnotation", PJe = "ETypedElement", QJe = "EStructuralFeature", RJe = "EAttribute", SJe = "EClassifier", TJe = "EEnumLiteral", UJe = "EGenericType", VJe = "EOperation", WJe = "EParameter", XJe = "EReference", YJe = "ETypeParameter", ZJe = "org.eclipse.emf.ecore.util", $Je = { 79: 1 }, _Je = { 3: 1, 20: 1, 16: 1, 15: 1, 61: 1, 597: 1, 79: 1, 71: 1, 97: 1 }, aKe = "org.eclipse.emf.ecore.util.FeatureMap$Entry", bKe = 8192, cKe = 2048, dKe = "byte", eKe = "char", fKe = "double", gKe = "float", hKe = "int", iKe = "long", jKe = "short", kKe = "java.lang.Object", lKe = { 3: 1, 4: 1, 5: 1, 254: 1 }, mKe = { 3: 1, 4: 1, 5: 1, 688: 1 }, nKe = { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 59: 1, 70: 1, 66: 1, 61: 1, 71: 1 }, oKe = { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 59: 1, 70: 1, 66: 1, 61: 1, 79: 1, 71: 1, 97: 1 }, pKe = "mixed", qKe = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData", rKe = "kind", sKe = { 3: 1, 4: 1, 5: 1, 689: 1 }, tKe = { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 70: 1, 61: 1, 79: 1, 71: 1, 97: 1 }, uKe = { 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 61: 1, 71: 1 }, vKe = { 51: 1, 128: 1, 287: 1 }, wKe = { 76: 1, 343: 1 }, xKe = "The value of type '", yKe = "' must be of type '", zKe = 1352, AKe = "http://www.eclipse.org/emf/2002/Ecore", BKe = -32768, CKe = "constraints", DKe = "baseType", EKe = "getEStructuralFeature", FKe = "getFeatureID", GKe = "feature", HKe = "getOperationID", IKe = "operation", JKe = "defaultValue", KKe = "eTypeParameters", LKe = "isInstance", MKe = "getEEnumLiteral", NKe = "eContainingClass", OKe = { 57: 1 }, PKe = { 3: 1, 4: 1, 5: 1, 124: 1 }, QKe = "org.eclipse.emf.ecore.resource", RKe = { 94: 1, 93: 1, 599: 1, 2034: 1 }, SKe = "org.eclipse.emf.ecore.resource.impl", TKe = "unspecified", UKe = "simple", VKe = "attribute", WKe = "attributeWildcard", XKe = "element", YKe = "elementWildcard", ZKe = "collapse", $Ke = "itemType", _Ke = "namespace", aLe = "##targetNamespace", bLe = "whiteSpace", cLe = "wildcards", dLe = "http://www.eclipse.org/emf/2003/XMLType", eLe = "##any", fLe = "uninitialized", gLe = "The multiplicity constraint is violated", hLe = "org.eclipse.emf.ecore.xml.type", iLe = "ProcessingInstruction", jLe = "SimpleAnyType", kLe = "XMLTypeDocumentRoot", lLe = "org.eclipse.emf.ecore.xml.type.impl", mLe = "INF", nLe = "processing", oLe = "ENTITIES_._base", pLe = "minLength", qLe = "ENTITY", rLe = "NCName", sLe = "IDREFS_._base", tLe = "integer", uLe = "token", vLe = "pattern", wLe = "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", xLe = "\\i\\c*", yLe = "[\\i-[:]][\\c-[:]]*", zLe = "nonPositiveInteger", ALe = "maxInclusive", BLe = "NMTOKEN", CLe = "NMTOKENS_._base", DLe = "nonNegativeInteger", ELe = "minInclusive", FLe = "normalizedString", GLe = "unsignedByte", HLe = "unsignedInt", ILe = "18446744073709551615", JLe = "unsignedShort", KLe = "processingInstruction", LLe = "org.eclipse.emf.ecore.xml.type.internal", MLe = 1114111, NLe = "Internal Error: shorthands: \\u", OLe = "xml:isDigit", PLe = "xml:isWord", QLe = "xml:isSpace", RLe = "xml:isNameChar", SLe = "xml:isInitialNameChar", TLe = "09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩", ULe = "AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣", VLe = "Private Use", WLe = "ASSIGNED", XLe = "\0€ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\uFEFF\uFEFF＀￯", YLe = "UNASSIGNED", ZLe = { 3: 1, 122: 1 }, $Le = "org.eclipse.emf.ecore.xml.type.util", _Le = { 3: 1, 4: 1, 5: 1, 381: 1 }, aMe = "org.eclipse.xtext.xbase.lib", bMe = "Cannot add elements to a Range", cMe = "Cannot set elements in a Range", dMe = "Cannot remove elements from a Range", eMe = "user.agent"; + var _, eeb, _db; + $wnd.goog = $wnd.goog || {}; + $wnd.goog.global = $wnd.goog.global || $wnd; + eeb = {}; + feb(1, null, {}, nb); + _.Fb = function ob(a) { + return mb(this, a); + }; + _.Gb = function qb() { + return this.Rm; + }; + _.Hb = function sb() { + return kFb(this); + }; + _.Ib = function ub() { + var a; + return nfb(rb(this)) + "@" + (a = tb(this) >>> 0, a.toString(16)); + }; + _.equals = function(a) { + return this.Fb(a); + }; + _.hashCode = function() { + return this.Hb(); + }; + _.toString = function() { + return this.Ib(); + }; + var ND, OD, PD; + feb(297, 1, { 297: 1, 2124: 1 }, pfb); + _.ve = function qfb(a) { + var b; + b = new pfb(); + b.i = 4; + a > 1 ? b.c = xfb(this, a - 1) : b.c = this; + return b; + }; + _.we = function wfb() { + lfb(this); + return this.b; + }; + _.xe = function yfb() { + return nfb(this); + }; + _.ye = function Afb() { + return lfb(this), this.k; + }; + _.ze = function Cfb() { + return (this.i & 4) != 0; + }; + _.Ae = function Dfb() { + return (this.i & 1) != 0; + }; + _.Ib = function Gfb() { + return ofb(this); + }; + _.i = 0; + var jJ = sfb(mve, "Object", 1); + var UI = sfb(mve, "Class", 297); + feb(2096, 1, nve); + sfb(ove, "Optional", 2096); + feb(1191, 2096, nve, xb); + _.Fb = function yb(a) { + return a === this; + }; + _.Hb = function zb() { + return 2040732332; + }; + _.Ib = function Ab() { + return "Optional.absent()"; + }; + _.Jb = function Bb(a) { + Qb(a); + return wb(), vb; + }; + var vb; + sfb(ove, "Absent", 1191); + feb(636, 1, {}, Gb); + sfb(ove, "Joiner", 636); + var pE = ufb(ove, "Predicate"); + feb(589, 1, { 178: 1, 589: 1, 3: 1, 46: 1 }, Yb); + _.Mb = function ac(a) { + return Xb(this, a); + }; + _.Lb = function Zb(a) { + return Xb(this, a); + }; + _.Fb = function $b(a) { + var b; + if (ZD(a, 589)) { + b = RD(a, 589); + return Rt(this.a, b.a); + } + return false; + }; + _.Hb = function _b() { + return Cob(this.a) + 306654252; + }; + _.Ib = function bc() { + return Wb(this.a); + }; + sfb(ove, "Predicates/AndPredicate", 589); + feb(419, 2096, { 419: 1, 3: 1 }, cc); + _.Fb = function dc(a) { + var b; + if (ZD(a, 419)) { + b = RD(a, 419); + return pb(this.a, b.a); + } + return false; + }; + _.Hb = function ec() { + return 1502476572 + tb(this.a); + }; + _.Ib = function fc() { + return uve + this.a + ")"; + }; + _.Jb = function gc(a) { + return new cc(Rb(a.Kb(this.a), "the Function passed to Optional.transform() must not return null.")); + }; + sfb(ove, "Present", 419); + feb(204, 1, wve); + _.Nb = function kc(a) { + Ztb(this, a); + }; + _.Qb = function lc() { + jc(); + }; + sfb(xve, "UnmodifiableIterator", 204); + feb(2076, 204, yve); + _.Qb = function nc() { + jc(); + }; + _.Rb = function mc(a) { + throw Adb(new jib()); + }; + _.Wb = function oc(a) { + throw Adb(new jib()); + }; + sfb(xve, "UnmodifiableListIterator", 2076); + feb(399, 2076, yve); + _.Ob = function rc() { + return this.c < this.d; + }; + _.Sb = function sc() { + return this.c > 0; + }; + _.Pb = function tc() { + if (this.c >= this.d) { + throw Adb(new Dvb()); + } + return this.Xb(this.c++); + }; + _.Tb = function uc() { + return this.c; + }; + _.Ub = function vc() { + if (this.c <= 0) { + throw Adb(new Dvb()); + } + return this.Xb(--this.c); + }; + _.Vb = function wc() { + return this.c - 1; + }; + _.c = 0; + _.d = 0; + sfb(xve, "AbstractIndexedListIterator", 399); + feb(713, 204, wve); + _.Ob = function Ac() { + return xc(this); + }; + _.Pb = function Bc() { + return yc(this); + }; + _.e = 1; + sfb(xve, "AbstractIterator", 713); + feb(2084, 1, { 229: 1 }); + _.Zb = function Hc() { + var a; + return a = this.f, !a ? this.f = this.ac() : a; + }; + _.Fb = function Ic(a) { + return xw(this, a); + }; + _.Hb = function Jc() { + return tb(this.Zb()); + }; + _.dc = function Kc() { + return this.gc() == 0; + }; + _.ec = function Lc() { + return Ec(this); + }; + _.Ib = function Mc() { + return jeb(this.Zb()); + }; + sfb(xve, "AbstractMultimap", 2084); + feb(742, 2084, zve); + _.$b = function Xc() { + Nc(this); + }; + _._b = function Yc(a) { + return Oc(this, a); + }; + _.ac = function Zc() { + return new ne(this, this.c); + }; + _.ic = function $c(a) { + return this.hc(); + }; + _.bc = function _c() { + return new zf(this, this.c); + }; + _.jc = function ad() { + return this.mc(this.hc()); + }; + _.kc = function bd() { + return new Hd(this); + }; + _.lc = function cd() { + return ek(this.c.vc().Nc(), new hh(), 64, this.d); + }; + _.cc = function dd(a) { + return Qc(this, a); + }; + _.fc = function gd(a) { + return Sc(this, a); + }; + _.gc = function hd() { + return this.d; + }; + _.mc = function jd(a) { + return yob(), new xpb(a); + }; + _.nc = function kd() { + return new Dd(this); + }; + _.oc = function ld() { + return ek(this.c.Cc().Nc(), new Fd(), 64, this.d); + }; + _.pc = function md(a, b) { + return new lg(this, a, b, null); + }; + _.d = 0; + sfb(xve, "AbstractMapBasedMultimap", 742); + feb(1696, 742, zve); + _.hc = function pd() { + return new cnb(this.a); + }; + _.jc = function qd() { + return yob(), yob(), vob; + }; + _.cc = function sd(a) { + return RD(Qc(this, a), 15); + }; + _.fc = function ud(a) { + return RD(Sc(this, a), 15); + }; + _.Zb = function od() { + return nd(this); + }; + _.Fb = function rd(a) { + return xw(this, a); + }; + _.qc = function td(a) { + return RD(Qc(this, a), 15); + }; + _.rc = function vd(a) { + return RD(Sc(this, a), 15); + }; + _.mc = function wd(a) { + return Hob(RD(a, 15)); + }; + _.pc = function xd(a, b) { + return Vc(this, a, RD(b, 15), null); + }; + sfb(xve, "AbstractListMultimap", 1696); + feb(748, 1, Ave); + _.Nb = function zd(a) { + Ztb(this, a); + }; + _.Ob = function Ad() { + return this.c.Ob() || this.e.Ob(); + }; + _.Pb = function Bd() { + var a; + if (!this.e.Ob()) { + a = RD(this.c.Pb(), 44); + this.b = a.ld(); + this.a = RD(a.md(), 16); + this.e = this.a.Kc(); + } + return this.sc(this.b, this.e.Pb()); + }; + _.Qb = function Cd() { + this.e.Qb(); + RD(Hvb(this.a), 16).dc() && this.c.Qb(); + --this.d.d; + }; + sfb(xve, "AbstractMapBasedMultimap/Itr", 748); + feb(1129, 748, Ave, Dd); + _.sc = function Ed(a, b) { + return b; + }; + sfb(xve, "AbstractMapBasedMultimap/1", 1129); + feb(1130, 1, {}, Fd); + _.Kb = function Gd(a) { + return RD(a, 16).Nc(); + }; + sfb(xve, "AbstractMapBasedMultimap/1methodref$spliterator$Type", 1130); + feb(1131, 748, Ave, Hd); + _.sc = function Id(a, b) { + return new gp(a, b); + }; + sfb(xve, "AbstractMapBasedMultimap/2", 1131); + var VK = ufb(Bve, "Map"); + feb(2065, 1, Cve); + _.wc = function Td(a) { + Bvb(this, a); + }; + _.yc = function $d(a, b, c) { + return Cvb(this, a, b, c); + }; + _.$b = function Od() { + this.vc().$b(); + }; + _.tc = function Pd(a) { + return Jd(this, a); + }; + _._b = function Qd(a) { + return !!Kd(this, a, false); + }; + _.uc = function Rd(a) { + var b, c, d; + for (c = this.vc().Kc(); c.Ob(); ) { + b = RD(c.Pb(), 44); + d = b.md(); + if (dE(a) === dE(d) || a != null && pb(a, d)) { + return true; + } + } + return false; + }; + _.Fb = function Sd(a) { + var b, c, d; + if (a === this) { + return true; + } + if (!ZD(a, 85)) { + return false; + } + d = RD(a, 85); + if (this.gc() != d.gc()) { + return false; + } + for (c = d.vc().Kc(); c.Ob(); ) { + b = RD(c.Pb(), 44); + if (!this.tc(b)) { + return false; + } + } + return true; + }; + _.xc = function Ud(a) { + return Wd(Kd(this, a, false)); + }; + _.Hb = function Xd() { + return Bob(this.vc()); + }; + _.dc = function Yd() { + return this.gc() == 0; + }; + _.ec = function Zd() { + return new Xkb(this); + }; + _.zc = function _d(a, b) { + throw Adb(new kib("Put not supported on this map")); + }; + _.Ac = function ae(a) { + Ld(this, a); + }; + _.Bc = function be(a) { + return Wd(Kd(this, a, true)); + }; + _.gc = function ce() { + return this.vc().gc(); + }; + _.Ib = function de() { + return Md(this); + }; + _.Cc = function ee() { + return new glb(this); + }; + sfb(Bve, "AbstractMap", 2065); + feb(2085, 2065, Cve); + _.bc = function ge() { + return new rf(this); + }; + _.vc = function he() { + return fe(this); + }; + _.ec = function ie() { + var a; + a = this.g; + return !a ? this.g = this.bc() : a; + }; + _.Cc = function je() { + var a; + a = this.i; + return !a ? this.i = new nw(this) : a; + }; + sfb(xve, "Maps/ViewCachingAbstractMap", 2085); + feb(402, 2085, Cve, ne); + _.xc = function se(a) { + return ke(this, a); + }; + _.Bc = function ve(a) { + return le(this, a); + }; + _.$b = function oe() { + this.d == this.e.c ? this.e.$b() : Ar(new mf(this)); + }; + _._b = function pe(a) { + return Wv(this.d, a); + }; + _.Ec = function qe() { + return new df(this); + }; + _.Dc = function() { + return this.Ec(); + }; + _.Fb = function re(a) { + return this === a || pb(this.d, a); + }; + _.Hb = function te() { + return tb(this.d); + }; + _.ec = function ue() { + return this.e.ec(); + }; + _.gc = function we() { + return this.d.gc(); + }; + _.Ib = function xe() { + return jeb(this.d); + }; + sfb(xve, "AbstractMapBasedMultimap/AsMap", 402); + var cJ = ufb(mve, "Iterable"); + feb(31, 1, Dve); + _.Jc = function Le(a) { + xgb(this, a); + }; + _.Lc = function Ne() { + return this.Oc(); + }; + _.Nc = function Pe() { + return new Swb(this, 0); + }; + _.Oc = function Qe() { + return new SDb(null, this.Nc()); + }; + _.Fc = function Ge(a) { + throw Adb(new kib("Add not supported on this collection")); + }; + _.Gc = function He(a) { + return ye(this, a); + }; + _.$b = function Ie() { + Ae(this); + }; + _.Hc = function Je(a) { + return ze(this, a, false); + }; + _.Ic = function Ke(a) { + return Be(this, a); + }; + _.dc = function Me() { + return this.gc() == 0; + }; + _.Mc = function Oe(a) { + return ze(this, a, true); + }; + _.Pc = function Re() { + return De(this); + }; + _.Qc = function Se(a) { + return Ee(this, a); + }; + _.Ib = function Te() { + return Fe(this); + }; + sfb(Bve, "AbstractCollection", 31); + var bL = ufb(Bve, "Set"); + feb(Eve, 31, Fve); + _.Nc = function Ye() { + return new Swb(this, 1); + }; + _.Fb = function We(a) { + return Ue(this, a); + }; + _.Hb = function Xe() { + return Bob(this); + }; + sfb(Bve, "AbstractSet", Eve); + feb(2068, Eve, Fve); + sfb(xve, "Sets/ImprovedAbstractSet", 2068); + feb(2069, 2068, Fve); + _.$b = function $e() { + this.Rc().$b(); + }; + _.Hc = function _e(a) { + return Ze(this, a); + }; + _.dc = function af() { + return this.Rc().dc(); + }; + _.Mc = function bf(a) { + var b; + if (this.Hc(a) && ZD(a, 44)) { + b = RD(a, 44); + return this.Rc().ec().Mc(b.ld()); + } + return false; + }; + _.gc = function cf() { + return this.Rc().gc(); + }; + sfb(xve, "Maps/EntrySet", 2069); + feb(1127, 2069, Fve, df); + _.Hc = function ef(a) { + return Nk(this.a.d.vc(), a); + }; + _.Kc = function ff() { + return new mf(this.a); + }; + _.Rc = function gf() { + return this.a; + }; + _.Mc = function hf(a) { + var b; + if (!Nk(this.a.d.vc(), a)) { + return false; + } + b = RD(Hvb(RD(a, 44)), 44); + Tc(this.a.e, b.ld()); + return true; + }; + _.Nc = function jf() { + return gk(this.a.d.vc().Nc(), new kf(this.a)); + }; + sfb(xve, "AbstractMapBasedMultimap/AsMap/AsMapEntries", 1127); + feb(1128, 1, {}, kf); + _.Kb = function lf(a) { + return me(this.a, RD(a, 44)); + }; + sfb(xve, "AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type", 1128); + feb(746, 1, Ave, mf); + _.Nb = function nf(a) { + Ztb(this, a); + }; + _.Pb = function pf() { + var a; + return a = RD(this.b.Pb(), 44), this.a = RD(a.md(), 16), me(this.c, a); + }; + _.Ob = function of() { + return this.b.Ob(); + }; + _.Qb = function qf() { + Vb(!!this.a); + this.b.Qb(); + this.c.e.d -= this.a.gc(); + this.a.$b(); + this.a = null; + }; + sfb(xve, "AbstractMapBasedMultimap/AsMap/AsMapIterator", 746); + feb(542, 2068, Fve, rf); + _.$b = function sf() { + this.b.$b(); + }; + _.Hc = function tf(a) { + return this.b._b(a); + }; + _.Jc = function uf(a) { + Qb(a); + this.b.wc(new lw(a)); + }; + _.dc = function vf() { + return this.b.dc(); + }; + _.Kc = function wf() { + return new aw(this.b.vc().Kc()); + }; + _.Mc = function xf(a) { + if (this.b._b(a)) { + this.b.Bc(a); + return true; + } + return false; + }; + _.gc = function yf() { + return this.b.gc(); + }; + sfb(xve, "Maps/KeySet", 542); + feb(327, 542, Fve, zf); + _.$b = function Af() { + var a; + Ar((a = this.b.vc().Kc(), new Hf(this, a))); + }; + _.Ic = function Bf(a) { + return this.b.ec().Ic(a); + }; + _.Fb = function Cf(a) { + return this === a || pb(this.b.ec(), a); + }; + _.Hb = function Df() { + return tb(this.b.ec()); + }; + _.Kc = function Ef() { + var a; + return a = this.b.vc().Kc(), new Hf(this, a); + }; + _.Mc = function Ff(a) { + var b, c; + c = 0; + b = RD(this.b.Bc(a), 16); + if (b) { + c = b.gc(); + b.$b(); + this.a.d -= c; + } + return c > 0; + }; + _.Nc = function Gf() { + return this.b.ec().Nc(); + }; + sfb(xve, "AbstractMapBasedMultimap/KeySet", 327); + feb(747, 1, Ave, Hf); + _.Nb = function If(a) { + Ztb(this, a); + }; + _.Ob = function Jf() { + return this.c.Ob(); + }; + _.Pb = function Kf() { + this.a = RD(this.c.Pb(), 44); + return this.a.ld(); + }; + _.Qb = function Lf() { + var a; + Vb(!!this.a); + a = RD(this.a.md(), 16); + this.c.Qb(); + this.b.a.d -= a.gc(); + a.$b(); + this.a = null; + }; + sfb(xve, "AbstractMapBasedMultimap/KeySet/1", 747); + feb(503, 402, { 85: 1, 133: 1 }, Mf); + _.bc = function Nf() { + return this.Sc(); + }; + _.ec = function Qf() { + return this.Uc(); + }; + _.Sc = function Of() { + return new eg(this.c, this.Wc()); + }; + _.Tc = function Pf() { + return this.Wc().Tc(); + }; + _.Uc = function Rf() { + var a; + return a = this.b, !a ? this.b = this.Sc() : a; + }; + _.Vc = function Sf() { + return this.Wc().Vc(); + }; + _.Wc = function Tf() { + return RD(this.d, 133); + }; + sfb(xve, "AbstractMapBasedMultimap/SortedAsMap", 503); + feb(446, 503, Gve, Uf); + _.bc = function Wf() { + return new gg(this.a, RD(RD(this.d, 133), 139)); + }; + _.Sc = function Xf() { + return new gg(this.a, RD(RD(this.d, 133), 139)); + }; + _.ec = function _f() { + var a; + return a = this.b, RD(!a ? this.b = new gg(this.a, RD(RD(this.d, 133), 139)) : a, 277); + }; + _.Uc = function ag() { + var a; + return a = this.b, RD(!a ? this.b = new gg(this.a, RD(RD(this.d, 133), 139)) : a, 277); + }; + _.Wc = function cg() { + return RD(RD(this.d, 133), 139); + }; + _.Xc = function Vf(a) { + return RD(RD(this.d, 133), 139).Xc(a); + }; + _.Yc = function Yf(a) { + return RD(RD(this.d, 133), 139).Yc(a); + }; + _.Zc = function Zf(a, b) { + return new Uf(this.a, RD(RD(this.d, 133), 139).Zc(a, b)); + }; + _.$c = function $f(a) { + return RD(RD(this.d, 133), 139).$c(a); + }; + _._c = function bg(a) { + return RD(RD(this.d, 133), 139)._c(a); + }; + _.ad = function dg(a, b) { + return new Uf(this.a, RD(RD(this.d, 133), 139).ad(a, b)); + }; + sfb(xve, "AbstractMapBasedMultimap/NavigableAsMap", 446); + feb(502, 327, Hve, eg); + _.Nc = function fg() { + return this.b.ec().Nc(); + }; + sfb(xve, "AbstractMapBasedMultimap/SortedKeySet", 502); + feb(401, 502, Ive, gg); + sfb(xve, "AbstractMapBasedMultimap/NavigableKeySet", 401); + feb(551, 31, Dve, lg); + _.Fc = function mg(a) { + var b, c; + ig(this); + c = this.d.dc(); + b = this.d.Fc(a); + if (b) { + ++this.f.d; + c && hg(this); + } + return b; + }; + _.Gc = function ng(a) { + var b, c, d; + if (a.dc()) { + return false; + } + d = (ig(this), this.d.gc()); + b = this.d.Gc(a); + if (b) { + c = this.d.gc(); + this.f.d += c - d; + d == 0 && hg(this); + } + return b; + }; + _.$b = function og() { + var a; + a = (ig(this), this.d.gc()); + if (a == 0) { + return; + } + this.d.$b(); + this.f.d -= a; + jg(this); + }; + _.Hc = function pg(a) { + ig(this); + return this.d.Hc(a); + }; + _.Ic = function qg(a) { + ig(this); + return this.d.Ic(a); + }; + _.Fb = function rg(a) { + if (a === this) { + return true; + } + ig(this); + return pb(this.d, a); + }; + _.Hb = function sg() { + ig(this); + return tb(this.d); + }; + _.Kc = function tg() { + ig(this); + return new Og(this); + }; + _.Mc = function ug(a) { + var b; + ig(this); + b = this.d.Mc(a); + if (b) { + --this.f.d; + jg(this); + } + return b; + }; + _.gc = function vg() { + return kg(this); + }; + _.Nc = function wg() { + return ig(this), this.d.Nc(); + }; + _.Ib = function xg() { + ig(this); + return jeb(this.d); + }; + sfb(xve, "AbstractMapBasedMultimap/WrappedCollection", 551); + var QK = ufb(Bve, "List"); + feb(744, 551, { 20: 1, 31: 1, 16: 1, 15: 1 }, yg); + _.jd = function Hg(a) { + tvb(this, a); + }; + _.Nc = function Ig() { + return ig(this), this.d.Nc(); + }; + _.bd = function zg(a, b) { + var c; + ig(this); + c = this.d.dc(); + RD(this.d, 15).bd(a, b); + ++this.a.d; + c && hg(this); + }; + _.cd = function Ag(a, b) { + var c, d, e; + if (b.dc()) { + return false; + } + e = (ig(this), this.d.gc()); + c = RD(this.d, 15).cd(a, b); + if (c) { + d = this.d.gc(); + this.a.d += d - e; + e == 0 && hg(this); + } + return c; + }; + _.Xb = function Bg(a) { + ig(this); + return RD(this.d, 15).Xb(a); + }; + _.dd = function Cg(a) { + ig(this); + return RD(this.d, 15).dd(a); + }; + _.ed = function Dg() { + ig(this); + return new Ug(this); + }; + _.fd = function Eg(a) { + ig(this); + return new Vg(this, a); + }; + _.gd = function Fg(a) { + var b; + ig(this); + b = RD(this.d, 15).gd(a); + --this.a.d; + jg(this); + return b; + }; + _.hd = function Gg(a, b) { + ig(this); + return RD(this.d, 15).hd(a, b); + }; + _.kd = function Jg(a, b) { + ig(this); + return Vc(this.a, this.e, RD(this.d, 15).kd(a, b), !this.b ? this : this.b); + }; + sfb(xve, "AbstractMapBasedMultimap/WrappedList", 744); + feb(1126, 744, { 20: 1, 31: 1, 16: 1, 15: 1, 59: 1 }, Kg); + sfb(xve, "AbstractMapBasedMultimap/RandomAccessWrappedList", 1126); + feb(628, 1, Ave, Og); + _.Nb = function Qg(a) { + Ztb(this, a); + }; + _.Ob = function Rg() { + Ng(this); + return this.b.Ob(); + }; + _.Pb = function Sg() { + Ng(this); + return this.b.Pb(); + }; + _.Qb = function Tg() { + Mg(this); + }; + sfb(xve, "AbstractMapBasedMultimap/WrappedCollection/WrappedIterator", 628); + feb(745, 628, Jve, Ug, Vg); + _.Qb = function _g() { + Mg(this); + }; + _.Rb = function Wg(a) { + var b; + b = kg(this.a) == 0; + (Ng(this), RD(this.b, 128)).Rb(a); + ++this.a.a.d; + b && hg(this.a); + }; + _.Sb = function Xg() { + return (Ng(this), RD(this.b, 128)).Sb(); + }; + _.Tb = function Yg() { + return (Ng(this), RD(this.b, 128)).Tb(); + }; + _.Ub = function Zg() { + return (Ng(this), RD(this.b, 128)).Ub(); + }; + _.Vb = function $g() { + return (Ng(this), RD(this.b, 128)).Vb(); + }; + _.Wb = function ah(a) { + (Ng(this), RD(this.b, 128)).Wb(a); + }; + sfb(xve, "AbstractMapBasedMultimap/WrappedList/WrappedListIterator", 745); + feb(743, 551, Hve, bh); + _.Nc = function dh() { + return ig(this), this.d.Nc(); + }; + sfb(xve, "AbstractMapBasedMultimap/WrappedSortedSet", 743); + feb(1125, 743, Ive, eh); + sfb(xve, "AbstractMapBasedMultimap/WrappedNavigableSet", 1125); + feb(1124, 551, Fve, fh); + _.Nc = function gh() { + return ig(this), this.d.Nc(); + }; + sfb(xve, "AbstractMapBasedMultimap/WrappedSet", 1124); + feb(1133, 1, {}, hh); + _.Kb = function ih(a) { + return fd(RD(a, 44)); + }; + sfb(xve, "AbstractMapBasedMultimap/lambda$1$Type", 1133); + feb(1132, 1, {}, jh); + _.Kb = function kh(a) { + return new gp(this.a, a); + }; + sfb(xve, "AbstractMapBasedMultimap/lambda$2$Type", 1132); + var UK = ufb(Bve, "Map/Entry"); + feb(358, 1, Kve); + _.Fb = function lh(a) { + var b; + if (ZD(a, 44)) { + b = RD(a, 44); + return Hb(this.ld(), b.ld()) && Hb(this.md(), b.md()); + } + return false; + }; + _.Hb = function mh() { + var a, b; + a = this.ld(); + b = this.md(); + return (a == null ? 0 : tb(a)) ^ (b == null ? 0 : tb(b)); + }; + _.nd = function nh(a) { + throw Adb(new jib()); + }; + _.Ib = function oh() { + return this.ld() + "=" + this.md(); + }; + sfb(xve, Lve, 358); + feb(2086, 31, Dve); + _.$b = function ph() { + this.od().$b(); + }; + _.Hc = function qh(a) { + var b; + if (ZD(a, 44)) { + b = RD(a, 44); + return Cc(this.od(), b.ld(), b.md()); + } + return false; + }; + _.Mc = function rh(a) { + var b; + if (ZD(a, 44)) { + b = RD(a, 44); + return Gc(this.od(), b.ld(), b.md()); + } + return false; + }; + _.gc = function sh() { + return this.od().d; + }; + sfb(xve, "Multimaps/Entries", 2086); + feb(749, 2086, Dve, th); + _.Kc = function uh() { + return this.a.kc(); + }; + _.od = function vh() { + return this.a; + }; + _.Nc = function wh() { + return this.a.lc(); + }; + sfb(xve, "AbstractMultimap/Entries", 749); + feb(750, 749, Fve, xh); + _.Nc = function Ah() { + return this.a.lc(); + }; + _.Fb = function yh(a) { + return Rx(this, a); + }; + _.Hb = function zh() { + return Sx(this); + }; + sfb(xve, "AbstractMultimap/EntrySet", 750); + feb(751, 31, Dve, Bh); + _.$b = function Ch() { + this.a.$b(); + }; + _.Hc = function Dh(a) { + return Dc(this.a, a); + }; + _.Kc = function Eh() { + return this.a.nc(); + }; + _.gc = function Fh() { + return this.a.d; + }; + _.Nc = function Gh() { + return this.a.oc(); + }; + sfb(xve, "AbstractMultimap/Values", 751); + feb(2087, 31, { 849: 1, 20: 1, 31: 1, 16: 1 }); + _.Jc = function Oh(a) { + Qb(a); + Ih(this).Jc(new lx(a)); + }; + _.Nc = function Sh() { + var a; + return a = Ih(this).Nc(), ek(a, new sx(), 64 | a.yd() & 1296, this.a.d); + }; + _.Fc = function Kh(a) { + Hh(); + return true; + }; + _.Gc = function Lh(a) { + return Qb(this), Qb(a), ZD(a, 552) ? nx(RD(a, 849)) : !a.dc() && xr(this, a.Kc()); + }; + _.Hc = function Mh(a) { + var b; + return b = RD(Xv(nd(this.a), a), 16), (!b ? 0 : b.gc()) > 0; + }; + _.Fb = function Nh(a) { + return ox(this, a); + }; + _.Hb = function Ph() { + return tb(Ih(this)); + }; + _.dc = function Qh() { + return Ih(this).dc(); + }; + _.Mc = function Rh(a) { + return Rw(this, a, 1) > 0; + }; + _.Ib = function Th() { + return jeb(Ih(this)); + }; + sfb(xve, "AbstractMultiset", 2087); + feb(2089, 2068, Fve); + _.$b = function Uh() { + Nc(this.a.a); + }; + _.Hc = function Vh(a) { + var b, c; + if (ZD(a, 504)) { + c = RD(a, 425); + if (RD(c.a.md(), 16).gc() <= 0) { + return false; + } + b = Qw(this.a, c.a.ld()); + return b == RD(c.a.md(), 16).gc(); + } + return false; + }; + _.Mc = function Wh(a) { + var b, c, d, e; + if (ZD(a, 504)) { + c = RD(a, 425); + b = c.a.ld(); + d = RD(c.a.md(), 16).gc(); + if (d != 0) { + e = this.a; + return qx(e, b, d); + } + } + return false; + }; + sfb(xve, "Multisets/EntrySet", 2089); + feb(1139, 2089, Fve, Xh); + _.Kc = function Yh() { + return new _w(fe(nd(this.a.a)).Kc()); + }; + _.gc = function Zh() { + return nd(this.a.a).gc(); + }; + sfb(xve, "AbstractMultiset/EntrySet", 1139); + feb(627, 742, zve); + _.hc = function ai() { + return this.pd(); + }; + _.jc = function bi() { + return this.qd(); + }; + _.cc = function ei(a) { + return this.rd(a); + }; + _.fc = function gi(a) { + return this.sd(a); + }; + _.Zb = function _h() { + var a; + return a = this.f, !a ? this.f = this.ac() : a; + }; + _.qd = function ci() { + return yob(), yob(), xob; + }; + _.Fb = function di(a) { + return xw(this, a); + }; + _.rd = function fi(a) { + return RD(Qc(this, a), 21); + }; + _.sd = function hi(a) { + return RD(Sc(this, a), 21); + }; + _.mc = function ii(a) { + return yob(), new Lqb(RD(a, 21)); + }; + _.pc = function ji(a, b) { + return new fh(this, a, RD(b, 21)); + }; + sfb(xve, "AbstractSetMultimap", 627); + feb(1723, 627, zve); + _.hc = function mi() { + return new yAb(this.b); + }; + _.pd = function ni() { + return new yAb(this.b); + }; + _.jc = function oi() { + return Zx(new yAb(this.b)); + }; + _.qd = function pi() { + return Zx(new yAb(this.b)); + }; + _.cc = function qi(a) { + return RD(RD(Qc(this, a), 21), 87); + }; + _.rd = function ri(a) { + return RD(RD(Qc(this, a), 21), 87); + }; + _.fc = function si(a) { + return RD(RD(Sc(this, a), 21), 87); + }; + _.sd = function ti(a) { + return RD(RD(Sc(this, a), 21), 87); + }; + _.mc = function ui(a) { + return ZD(a, 277) ? Zx(RD(a, 277)) : (yob(), new jrb(RD(a, 87))); + }; + _.Zb = function li() { + var a; + return a = this.f, !a ? this.f = ZD(this.c, 139) ? new Uf(this, RD(this.c, 139)) : ZD(this.c, 133) ? new Mf(this, RD(this.c, 133)) : new ne(this, this.c) : a; + }; + _.pc = function vi(a, b) { + return ZD(b, 277) ? new eh(this, a, RD(b, 277)) : new bh(this, a, RD(b, 87)); + }; + sfb(xve, "AbstractSortedSetMultimap", 1723); + feb(1724, 1723, zve); + _.Zb = function xi() { + var a; + return a = this.f, RD(RD(!a ? this.f = ZD(this.c, 139) ? new Uf(this, RD(this.c, 139)) : ZD(this.c, 133) ? new Mf(this, RD(this.c, 133)) : new ne(this, this.c) : a, 133), 139); + }; + _.ec = function zi() { + var a; + return a = this.i, RD(RD(!a ? this.i = ZD(this.c, 139) ? new gg(this, RD(this.c, 139)) : ZD(this.c, 133) ? new eg(this, RD(this.c, 133)) : new zf(this, this.c) : a, 87), 277); + }; + _.bc = function yi() { + return ZD(this.c, 139) ? new gg(this, RD(this.c, 139)) : ZD(this.c, 133) ? new eg(this, RD(this.c, 133)) : new zf(this, this.c); + }; + sfb(xve, "AbstractSortedKeySortedSetMultimap", 1724); + feb(2109, 1, { 2046: 1 }); + _.Fb = function Ai(a) { + return Qy(this, a); + }; + _.Hb = function Bi() { + var a; + return Bob((a = this.g, !a ? this.g = new Di(this) : a)); + }; + _.Ib = function Ci() { + var a; + return Md((a = this.f, !a ? this.f = new Zj(this) : a)); + }; + sfb(xve, "AbstractTable", 2109); + feb(679, Eve, Fve, Di); + _.$b = function Ei() { + Xi(); + }; + _.Hc = function Fi(a) { + var b, c; + if (ZD(a, 479)) { + b = RD(a, 697); + c = RD(Xv(bj(this.a), Qm(b.c.e, b.b)), 85); + return !!c && Nk(c.vc(), new gp(Qm(b.c.c, b.a), Ui(b.c, b.b, b.a))); + } + return false; + }; + _.Kc = function Gi() { + return Vi(this.a); + }; + _.Mc = function Hi(a) { + var b, c; + if (ZD(a, 479)) { + b = RD(a, 697); + c = RD(Xv(bj(this.a), Qm(b.c.e, b.b)), 85); + return !!c && Ok(c.vc(), new gp(Qm(b.c.c, b.a), Ui(b.c, b.b, b.a))); + } + return false; + }; + _.gc = function Ii() { + return dj(this.a); + }; + _.Nc = function Ji() { + return Wi(this.a); + }; + sfb(xve, "AbstractTable/CellSet", 679); + feb(2025, 31, Dve, Ki); + _.$b = function Li() { + Xi(); + }; + _.Hc = function Mi(a) { + return Yi(this.a, a); + }; + _.Kc = function Ni() { + return fj(this.a); + }; + _.gc = function Oi() { + return dj(this.a); + }; + _.Nc = function Pi() { + return gj(this.a); + }; + sfb(xve, "AbstractTable/Values", 2025); + feb(1697, 1696, zve); + sfb(xve, "ArrayListMultimapGwtSerializationDependencies", 1697); + feb(520, 1697, zve, Ri, Si); + _.hc = function Ti() { + return new cnb(this.a); + }; + _.a = 0; + sfb(xve, "ArrayListMultimap", 520); + feb(678, 2109, { 678: 1, 2046: 1, 3: 1 }, hj); + sfb(xve, "ArrayTable", 678); + feb(2021, 399, yve, ij); + _.Xb = function jj(a) { + return new pj(this.a, a); + }; + sfb(xve, "ArrayTable/1", 2021); + feb(2022, 1, {}, kj); + _.td = function lj(a) { + return new pj(this.a, a); + }; + sfb(xve, "ArrayTable/1methodref$getCell$Type", 2022); + feb(2110, 1, { 697: 1 }); + _.Fb = function mj(a) { + var b; + if (a === this) { + return true; + } + if (ZD(a, 479)) { + b = RD(a, 697); + return Hb(Qm(this.c.e, this.b), Qm(b.c.e, b.b)) && Hb(Qm(this.c.c, this.a), Qm(b.c.c, b.a)) && Hb(Ui(this.c, this.b, this.a), Ui(b.c, b.b, b.a)); + } + return false; + }; + _.Hb = function nj() { + return Tnb(cD(WC(jJ, 1), rve, 1, 5, [Qm(this.c.e, this.b), Qm(this.c.c, this.a), Ui(this.c, this.b, this.a)])); + }; + _.Ib = function oj() { + return "(" + Qm(this.c.e, this.b) + "," + Qm(this.c.c, this.a) + ")=" + Ui(this.c, this.b, this.a); + }; + sfb(xve, "Tables/AbstractCell", 2110); + feb(479, 2110, { 479: 1, 697: 1 }, pj); + _.a = 0; + _.b = 0; + _.d = 0; + sfb(xve, "ArrayTable/2", 479); + feb(2024, 1, {}, qj); + _.td = function rj(a) { + return _i(this.a, a); + }; + sfb(xve, "ArrayTable/2methodref$getValue$Type", 2024); + feb(2023, 399, yve, sj); + _.Xb = function tj(a) { + return _i(this.a, a); + }; + sfb(xve, "ArrayTable/3", 2023); + feb(2077, 2065, Cve); + _.$b = function vj() { + Ar(this.kc()); + }; + _.vc = function wj() { + return new gw(this); + }; + _.lc = function xj() { + return new Uwb(this.kc(), this.gc()); + }; + sfb(xve, "Maps/IteratorBasedAbstractMap", 2077); + feb(842, 2077, Cve); + _.$b = function Bj() { + throw Adb(new jib()); + }; + _._b = function Cj(a) { + return En(this.c, a); + }; + _.kc = function Dj() { + return new Rj(this, this.c.b.c.gc()); + }; + _.lc = function Ej() { + return fk(this.c.b.c.gc(), 16, new Lj(this)); + }; + _.xc = function Fj(a) { + var b; + b = RD(Fn(this.c, a), 17); + return !b ? null : this.vd(b.a); + }; + _.dc = function Gj() { + return this.c.b.c.dc(); + }; + _.ec = function Hj() { + return hn(this.c); + }; + _.zc = function Ij(a, b) { + var c; + c = RD(Fn(this.c, a), 17); + if (!c) { + throw Adb(new agb(this.ud() + " " + a + " not in " + hn(this.c))); + } + return this.wd(c.a, b); + }; + _.Bc = function Jj(a) { + throw Adb(new jib()); + }; + _.gc = function Kj() { + return this.c.b.c.gc(); + }; + sfb(xve, "ArrayTable/ArrayMap", 842); + feb(2020, 1, {}, Lj); + _.td = function Mj(a) { + return yj(this.a, a); + }; + sfb(xve, "ArrayTable/ArrayMap/0methodref$getEntry$Type", 2020); + feb(2018, 358, Kve, Nj); + _.ld = function Oj() { + return zj(this.a, this.b); + }; + _.md = function Pj() { + return this.a.vd(this.b); + }; + _.nd = function Qj(a) { + return this.a.wd(this.b, a); + }; + _.b = 0; + sfb(xve, "ArrayTable/ArrayMap/1", 2018); + feb(2019, 399, yve, Rj); + _.Xb = function Sj(a) { + return yj(this.a, a); + }; + sfb(xve, "ArrayTable/ArrayMap/2", 2019); + feb(2017, 842, Cve, Tj); + _.ud = function Uj() { + return "Column"; + }; + _.vd = function Vj(a) { + return Ui(this.b, this.a, a); + }; + _.wd = function Wj(a, b) { + return cj(this.b, this.a, a, b); + }; + _.a = 0; + sfb(xve, "ArrayTable/Row", 2017); + feb(843, 842, Cve, Zj); + _.vd = function _j(a) { + return new Tj(this.a, a); + }; + _.zc = function ak(a, b) { + return RD(b, 85), Xj(); + }; + _.wd = function bk(a, b) { + return RD(b, 85), Yj(); + }; + _.ud = function $j() { + return "Row"; + }; + sfb(xve, "ArrayTable/RowMap", 843); + feb(1157, 1, Pve, hk); + _.Ad = function lk(a) { + return (this.a.yd() & -262 & a) != 0; + }; + _.yd = function ik() { + return this.a.yd() & -262; + }; + _.zd = function jk() { + return this.a.zd(); + }; + _.Nb = function kk(a) { + this.a.Nb(new pk(a, this.b)); + }; + _.Bd = function mk(a) { + return this.a.Bd(new nk(a, this.b)); + }; + sfb(xve, "CollectSpliterators/1", 1157); + feb(1158, 1, Qve, nk); + _.Cd = function ok(a) { + this.a.Cd(this.b.Kb(a)); + }; + sfb(xve, "CollectSpliterators/1/lambda$0$Type", 1158); + feb(1159, 1, Qve, pk); + _.Cd = function qk(a) { + this.a.Cd(this.b.Kb(a)); + }; + sfb(xve, "CollectSpliterators/1/lambda$1$Type", 1159); + feb(1154, 1, Pve, rk); + _.Ad = function vk(a) { + return ((16464 | this.b) & a) != 0; + }; + _.yd = function sk() { + return 16464 | this.b; + }; + _.zd = function tk() { + return this.a.zd(); + }; + _.Nb = function uk(a) { + this.a.Qe(new zk(a, this.c)); + }; + _.Bd = function wk(a) { + return this.a.Re(new xk(a, this.c)); + }; + _.b = 0; + sfb(xve, "CollectSpliterators/1WithCharacteristics", 1154); + feb(1155, 1, Rve, xk); + _.Dd = function yk(a) { + this.a.Cd(this.b.td(a)); + }; + sfb(xve, "CollectSpliterators/1WithCharacteristics/lambda$0$Type", 1155); + feb(1156, 1, Rve, zk); + _.Dd = function Ak(a) { + this.a.Cd(this.b.td(a)); + }; + sfb(xve, "CollectSpliterators/1WithCharacteristics/lambda$1$Type", 1156); + feb(1150, 1, Pve); + _.Ad = function Gk(a) { + return (this.a & a) != 0; + }; + _.yd = function Dk() { + return this.a; + }; + _.zd = function Ek() { + !!this.e && (this.b = Kgb(this.b, this.e.zd())); + return Kgb(this.b, 0); + }; + _.Nb = function Fk(a) { + if (this.e) { + this.e.Nb(a); + this.e = null; + } + this.c.Nb(new Kk(this, a)); + this.b = 0; + }; + _.Bd = function Hk(a) { + while (true) { + if (!!this.e && this.e.Bd(a)) { + Pdb(this.b, Sve) && (this.b = Vdb(this.b, 1)); + return true; + } else { + this.e = null; + } + if (!this.c.Bd(new Ik(this))) { + return false; + } + } + }; + _.a = 0; + _.b = 0; + sfb(xve, "CollectSpliterators/FlatMapSpliterator", 1150); + feb(1152, 1, Qve, Ik); + _.Cd = function Jk(a) { + Bk(this.a, a); + }; + sfb(xve, "CollectSpliterators/FlatMapSpliterator/lambda$0$Type", 1152); + feb(1153, 1, Qve, Kk); + _.Cd = function Lk(a) { + Ck(this.a, this.b, a); + }; + sfb(xve, "CollectSpliterators/FlatMapSpliterator/lambda$1$Type", 1153); + feb(1151, 1150, Pve, Mk); + sfb(xve, "CollectSpliterators/FlatMapSpliteratorOfObject", 1151); + feb(253, 1, Tve); + _.Fd = function Sk(a) { + return this.Ed(RD(a, 253)); + }; + _.Ed = function Rk(a) { + var b; + if (a == (kl(), jl)) { + return 1; + } + if (a == (Wk(), Vk)) { + return -1; + } + b = (ux(), Leb(this.a, a.a)); + if (b != 0) { + return b; + } + return ZD(this, 526) == ZD(a, 526) ? 0 : ZD(this, 526) ? 1 : -1; + }; + _.Id = function Tk() { + return this.a; + }; + _.Fb = function Uk(a) { + return Pk(this, a); + }; + sfb(xve, "Cut", 253); + feb(1823, 253, Tve, Xk); + _.Ed = function Yk(a) { + return a == this ? 0 : 1; + }; + _.Gd = function Zk(a) { + throw Adb(new Ceb()); + }; + _.Hd = function $k(a) { + a.a += "+∞)"; + }; + _.Id = function _k() { + throw Adb(new dgb(Uve)); + }; + _.Hb = function al() { + return gib(), jFb(this); + }; + _.Jd = function bl(a) { + return false; + }; + _.Ib = function cl() { + return "+∞"; + }; + var Vk; + sfb(xve, "Cut/AboveAll", 1823); + feb(526, 253, { 253: 1, 526: 1, 3: 1, 34: 1 }, dl); + _.Gd = function el(a) { + Yhb((a.a += "(", a), this.a); + }; + _.Hd = function fl(a) { + Thb(Yhb(a, this.a), 93); + }; + _.Hb = function gl() { + return ~tb(this.a); + }; + _.Jd = function hl(a) { + return ux(), Leb(this.a, a) < 0; + }; + _.Ib = function il() { + return "/" + this.a + "\\"; + }; + sfb(xve, "Cut/AboveValue", 526); + feb(1822, 253, Tve, ll); + _.Ed = function ml(a) { + return a == this ? 0 : -1; + }; + _.Gd = function nl(a) { + a.a += "(-∞"; + }; + _.Hd = function ol(a) { + throw Adb(new Ceb()); + }; + _.Id = function pl() { + throw Adb(new dgb(Uve)); + }; + _.Hb = function ql() { + return gib(), jFb(this); + }; + _.Jd = function rl(a) { + return true; + }; + _.Ib = function sl() { + return "-∞"; + }; + var jl; + sfb(xve, "Cut/BelowAll", 1822); + feb(1824, 253, Tve, tl); + _.Gd = function ul(a) { + Yhb((a.a += "[", a), this.a); + }; + _.Hd = function vl(a) { + Thb(Yhb(a, this.a), 41); + }; + _.Hb = function wl() { + return tb(this.a); + }; + _.Jd = function xl(a) { + return ux(), Leb(this.a, a) <= 0; + }; + _.Ib = function yl() { + return "\\" + this.a + "/"; + }; + sfb(xve, "Cut/BelowValue", 1824); + feb(547, 1, Vve); + _.Jc = function Bl(a) { + xgb(this, a); + }; + _.Ib = function Cl() { + return Lr(RD(Rb(this, "use Optional.orNull() instead of Optional.or(null)"), 20).Kc()); + }; + sfb(xve, "FluentIterable", 547); + feb(442, 547, Vve, Dl); + _.Kc = function El() { + return new is(Mr(this.a.Kc(), new ir())); + }; + sfb(xve, "FluentIterable/2", 442); + feb(1059, 547, Vve, Gl); + _.Kc = function Hl() { + return Fl(this); + }; + sfb(xve, "FluentIterable/3", 1059); + feb(724, 399, yve, Il); + _.Xb = function Jl(a) { + return this.a[a].Kc(); + }; + sfb(xve, "FluentIterable/3/1", 724); + feb(2070, 1, {}); + _.Ib = function Kl() { + return jeb(this.Kd().b); + }; + sfb(xve, "ForwardingObject", 2070); + feb(2071, 2070, Wve); + _.Kd = function Ql() { + return this.Ld(); + }; + _.Jc = function Rl(a) { + xgb(this, a); + }; + _.Lc = function Ul() { + return this.Oc(); + }; + _.Nc = function Xl() { + return new Swb(this, 0); + }; + _.Oc = function Yl() { + return new SDb(null, this.Nc()); + }; + _.Fc = function Ll(a) { + return this.Ld(), qpb(); + }; + _.Gc = function Ml(a) { + return this.Ld(), rpb(); + }; + _.$b = function Nl() { + this.Ld(), spb(); + }; + _.Hc = function Ol(a) { + return this.Ld().Hc(a); + }; + _.Ic = function Pl(a) { + return this.Ld().Ic(a); + }; + _.dc = function Sl() { + return this.Ld().b.dc(); + }; + _.Kc = function Tl() { + return this.Ld().Kc(); + }; + _.Mc = function Vl(a) { + return this.Ld(), vpb(); + }; + _.gc = function Wl() { + return this.Ld().b.gc(); + }; + _.Pc = function Zl() { + return this.Ld().Pc(); + }; + _.Qc = function $l(a) { + return this.Ld().Qc(a); + }; + sfb(xve, "ForwardingCollection", 2071); + feb(2078, 31, Xve); + _.Kc = function gm() { + return this.Od(); + }; + _.Fc = function am(a) { + throw Adb(new jib()); + }; + _.Gc = function bm(a) { + throw Adb(new jib()); + }; + _.Md = function cm() { + var a; + a = this.c; + return !a ? this.c = this.Nd() : a; + }; + _.$b = function dm() { + throw Adb(new jib()); + }; + _.Hc = function em(a) { + return a != null && ze(this, a, false); + }; + _.Nd = function fm() { + switch (this.gc()) { + case 0: + return tm(), tm(), sm; + case 1: + return tm(), new Dy(Qb(this.Od().Pb())); + default: + return new Fx(this, this.Pc()); + } + }; + _.Mc = function hm(a) { + throw Adb(new jib()); + }; + sfb(xve, "ImmutableCollection", 2078); + feb(727, 2078, Xve, im); + _.Kc = function nm() { + return Nr(this.a.Kc()); + }; + _.Hc = function jm(a) { + return a != null && this.a.Hc(a); + }; + _.Ic = function km(a) { + return this.a.Ic(a); + }; + _.dc = function lm() { + return this.a.dc(); + }; + _.Od = function mm() { + return Nr(this.a.Kc()); + }; + _.gc = function om() { + return this.a.gc(); + }; + _.Pc = function pm() { + return this.a.Pc(); + }; + _.Qc = function qm(a) { + return this.a.Qc(a); + }; + _.Ib = function rm() { + return jeb(this.a); + }; + sfb(xve, "ForwardingImmutableCollection", 727); + feb(307, 2078, Yve); + _.Kc = function Em() { + return this.Od(); + }; + _.ed = function Fm() { + return this.Pd(0); + }; + _.fd = function Hm(a) { + return this.Pd(a); + }; + _.jd = function Lm(a) { + tvb(this, a); + }; + _.Nc = function Mm() { + return new Swb(this, 16); + }; + _.kd = function Om(a, b) { + return this.Qd(a, b); + }; + _.bd = function wm(a, b) { + throw Adb(new jib()); + }; + _.cd = function xm(a, b) { + throw Adb(new jib()); + }; + _.Md = function ym() { + return this; + }; + _.Fb = function Am(a) { + return $u(this, a); + }; + _.Hb = function Bm() { + return _u(this); + }; + _.dd = function Cm(a) { + return a == null ? -1 : av(this, a); + }; + _.Od = function Dm() { + return this.Pd(0); + }; + _.Pd = function Gm(a) { + return um(this, a); + }; + _.gd = function Jm(a) { + throw Adb(new jib()); + }; + _.hd = function Km(a, b) { + throw Adb(new jib()); + }; + _.Qd = function Nm(a, b) { + var c; + return Pm((c = new pv(this), new Rkb(c, a, b))); + }; + var sm; + sfb(xve, "ImmutableList", 307); + feb(2105, 307, Yve); + _.Kc = function Zm() { + return Nr(this.Rd().Kc()); + }; + _.kd = function an(a, b) { + return Pm(this.Rd().kd(a, b)); + }; + _.Hc = function Rm(a) { + return a != null && this.Rd().Hc(a); + }; + _.Ic = function Sm(a) { + return this.Rd().Ic(a); + }; + _.Fb = function Tm(a) { + return pb(this.Rd(), a); + }; + _.Xb = function Um(a) { + return Qm(this, a); + }; + _.Hb = function Vm() { + return tb(this.Rd()); + }; + _.dd = function Wm(a) { + return this.Rd().dd(a); + }; + _.dc = function Xm() { + return this.Rd().dc(); + }; + _.Od = function Ym() { + return Nr(this.Rd().Kc()); + }; + _.gc = function $m() { + return this.Rd().gc(); + }; + _.Qd = function _m(a, b) { + return Pm(this.Rd().kd(a, b)); + }; + _.Pc = function bn() { + return this.Rd().Qc($C(jJ, rve, 1, this.Rd().gc(), 5, 1)); + }; + _.Qc = function cn(a) { + return this.Rd().Qc(a); + }; + _.Ib = function dn() { + return jeb(this.Rd()); + }; + sfb(xve, "ForwardingImmutableList", 2105); + feb(729, 1, $ve); + _.vc = function pn() { + return gn(this); + }; + _.wc = function rn(a) { + Bvb(this, a); + }; + _.ec = function vn() { + return hn(this); + }; + _.yc = function wn(a, b, c) { + return Cvb(this, a, b, c); + }; + _.Cc = function Dn() { + return this.Vd(); + }; + _.$b = function kn() { + throw Adb(new jib()); + }; + _._b = function ln(a) { + return this.xc(a) != null; + }; + _.uc = function mn(a) { + return this.Vd().Hc(a); + }; + _.Td = function nn() { + return new xq(this); + }; + _.Ud = function on() { + return new Gq(this); + }; + _.Fb = function qn(a) { + return Tv(this, a); + }; + _.Hb = function tn() { + return gn(this).Hb(); + }; + _.dc = function un() { + return this.gc() == 0; + }; + _.zc = function zn(a, b) { + return jn(); + }; + _.Bc = function An(a) { + throw Adb(new jib()); + }; + _.Ib = function Bn() { + return Zv(this); + }; + _.Vd = function Cn() { + if (this.e) { + return this.e; + } + return this.e = this.Ud(); + }; + _.c = null; + _.d = null; + _.e = null; + var en; + sfb(xve, "ImmutableMap", 729); + feb(730, 729, $ve); + _._b = function Hn(a) { + return En(this, a); + }; + _.uc = function In(a) { + return pqb(this.b, a); + }; + _.Sd = function Jn() { + return go(new Xn(this)); + }; + _.Td = function Kn() { + return go(sqb(this.b)); + }; + _.Ud = function Ln() { + return _l(), new im(tqb(this.b)); + }; + _.Fb = function Mn(a) { + return rqb(this.b, a); + }; + _.xc = function Nn(a) { + return Fn(this, a); + }; + _.Hb = function On() { + return tb(this.b.c); + }; + _.dc = function Pn() { + return this.b.c.dc(); + }; + _.gc = function Qn() { + return this.b.c.gc(); + }; + _.Ib = function Rn() { + return jeb(this.b.c); + }; + sfb(xve, "ForwardingImmutableMap", 730); + feb(2072, 2071, _ve); + _.Kd = function Sn() { + return this.Wd(); + }; + _.Ld = function Tn() { + return this.Wd(); + }; + _.Nc = function Wn() { + return new Swb(this, 1); + }; + _.Fb = function Un(a) { + return a === this || this.Wd().Fb(a); + }; + _.Hb = function Vn() { + return this.Wd().Hb(); + }; + sfb(xve, "ForwardingSet", 2072); + feb(1085, 2072, _ve, Xn); + _.Kd = function Zn() { + return qqb(this.a.b); + }; + _.Ld = function $n() { + return qqb(this.a.b); + }; + _.Hc = function Yn(b) { + if (ZD(b, 44) && RD(b, 44).ld() == null) { + return false; + } + try { + return Pqb(qqb(this.a.b), b); + } catch (a) { + a = zdb(a); + if (ZD(a, 212)) { + return false; + } else + throw Adb(a); + } + }; + _.Wd = function _n() { + return qqb(this.a.b); + }; + _.Qc = function ao(a) { + var b; + b = Qqb(qqb(this.a.b), a); + qqb(this.a.b).b.gc() < b.length && bD(b, qqb(this.a.b).b.gc(), null); + return b; + }; + sfb(xve, "ForwardingImmutableMap/1", 1085); + feb(2079, 2078, awe); + _.Kc = function eo() { + return this.Od(); + }; + _.Nc = function fo() { + return new Swb(this, 1); + }; + _.Fb = function bo(a) { + return Rx(this, a); + }; + _.Hb = function co() { + return Sx(this); + }; + sfb(xve, "ImmutableSet", 2079); + feb(719, 2079, awe); + _.Kc = function no() { + return Nr(new Ppb(this.a.b.Kc())); + }; + _.Hc = function io(a) { + return a != null && tpb(this.a, a); + }; + _.Ic = function jo(a) { + return upb(this.a, a); + }; + _.Hb = function ko() { + return tb(this.a.b); + }; + _.dc = function lo() { + return this.a.b.dc(); + }; + _.Od = function mo() { + return Nr(new Ppb(this.a.b.Kc())); + }; + _.gc = function oo() { + return this.a.b.gc(); + }; + _.Pc = function po() { + return this.a.b.Pc(); + }; + _.Qc = function qo(a) { + return wpb(this.a, a); + }; + _.Ib = function ro() { + return jeb(this.a.b); + }; + sfb(xve, "ForwardingImmutableSet", 719); + feb(2073, 2072, bwe); + _.Kd = function so() { + return this.b; + }; + _.Ld = function to() { + return this.b; + }; + _.Wd = function uo() { + return this.b; + }; + _.Nc = function vo() { + return new $wb(this); + }; + sfb(xve, "ForwardingSortedSet", 2073); + feb(543, 2077, $ve, Io); + _.Ac = function Ro(a) { + Ld(this, a); + }; + _.Cc = function Uo() { + var a; + return a = this.d, new Gp(!a ? this.d = new mp(this) : a); + }; + _.$b = function Jo() { + wo(this); + }; + _._b = function Ko(a) { + return !!Go(this, a, Ydb(Ndb(cwe, qgb(Ydb(Ndb(a == null ? 0 : tb(a), dwe)), 15)))); + }; + _.uc = function Lo(a) { + return xo(this, a); + }; + _.kc = function Mo() { + return new ap(this, this); + }; + _.wc = function No(a) { + zo(this, a); + }; + _.xc = function Oo(a) { + return Ao(this, a); + }; + _.ec = function Po() { + return new Np(this); + }; + _.zc = function Qo(a, b) { + return Do(this, a, b); + }; + _.Bc = function So(a) { + var b; + b = Go(this, a, Ydb(Ndb(cwe, qgb(Ydb(Ndb(a == null ? 0 : tb(a), dwe)), 15)))); + if (!b) { + return null; + } else { + yo(this, b); + b.e = null; + b.c = null; + return b.i; + } + }; + _.gc = function To() { + return this.i; + }; + _.xd = function Vo() { + var a; + return a = this.d, new Gp(!a ? this.d = new mp(this) : a); + }; + _.f = 0; + _.g = 0; + _.i = 0; + sfb(xve, "HashBiMap", 543); + feb(544, 1, Ave); + _.Nb = function Yo(a) { + Ztb(this, a); + }; + _.Ob = function Zo() { + return Wo(this); + }; + _.Pb = function $o() { + var a; + if (!Wo(this)) { + throw Adb(new Dvb()); + } + a = RD(Hvb(this.c), 303); + this.c = a.c; + this.f = a; + --this.d; + return this.Xd(a); + }; + _.Qb = function _o() { + if (this.e.g != this.b) { + throw Adb(new Jrb()); + } + if (!this.f) { + throw Adb(new dgb(tve)); + } + yo(this.e, this.f); + this.b = this.e.g; + this.f = null; + }; + _.b = 0; + _.d = 0; + _.f = null; + sfb(xve, "HashBiMap/Itr", 544); + feb(1023, 544, Ave, ap); + _.Xd = function bp(a) { + return new cp(this, a); + }; + sfb(xve, "HashBiMap/1", 1023); + feb(gwe, 358, Kve, cp); + _.ld = function dp() { + return this.a.g; + }; + _.md = function ep() { + return this.a.i; + }; + _.nd = function fp(a) { + var b, c, d; + c = this.a.i; + d = Ydb(Ndb(cwe, qgb(Ydb(Ndb(a == null ? 0 : tb(a), dwe)), 15))); + if (d == this.a.f && (dE(a) === dE(c) || a != null && pb(a, c))) { + return a; + } + Nb(!Ho(this.b.a, a, d), a); + yo(this.b.a, this.a); + b = new kp(this.a.g, this.a.a, a, d); + Bo(this.b.a, b, this.a); + this.a.e = null; + this.a.c = null; + this.b.b = this.b.a.g; + this.b.f == this.a && (this.b.f = b); + this.a = b; + return c; + }; + sfb(xve, "HashBiMap/1/MapEntry", gwe); + feb(246, 358, { 358: 1, 246: 1, 3: 1, 44: 1 }, gp); + _.ld = function hp() { + return this.g; + }; + _.md = function ip() { + return this.i; + }; + _.nd = function jp(a) { + throw Adb(new jib()); + }; + sfb(xve, "ImmutableEntry", 246); + feb(303, 246, { 358: 1, 303: 1, 246: 1, 3: 1, 44: 1 }, kp); + _.a = 0; + _.f = 0; + var XF = sfb(xve, "HashBiMap/BiEntry", 303); + feb(619, 2077, $ve, mp); + _.Ac = function vp(a) { + Ld(this, a); + }; + _.Cc = function yp() { + return new Np(this.a); + }; + _.$b = function np() { + wo(this.a); + }; + _._b = function op(a) { + return xo(this.a, a); + }; + _.kc = function pp() { + return new Ap(this, this.a); + }; + _.wc = function qp(a) { + Qb(a); + zo(this.a, new Lp(a)); + }; + _.xc = function rp(a) { + return lp(this, a); + }; + _.ec = function sp() { + return new Gp(this); + }; + _.zc = function up(a, b) { + return Eo(this.a, a, b, false); + }; + _.Bc = function wp(a) { + var b; + b = Ho(this.a, a, Ydb(Ndb(cwe, qgb(Ydb(Ndb(a == null ? 0 : tb(a), dwe)), 15)))); + if (!b) { + return null; + } else { + yo(this.a, b); + b.e = null; + b.c = null; + return b.g; + } + }; + _.gc = function xp() { + return this.a.i; + }; + _.xd = function zp() { + return new Np(this.a); + }; + sfb(xve, "HashBiMap/Inverse", 619); + feb(1020, 544, Ave, Ap); + _.Xd = function Bp(a) { + return new Cp(this, a); + }; + sfb(xve, "HashBiMap/Inverse/1", 1020); + feb(1021, 358, Kve, Cp); + _.ld = function Dp() { + return this.a.i; + }; + _.md = function Ep() { + return this.a.g; + }; + _.nd = function Fp(a) { + var b, c, d; + d = this.a.g; + b = Ydb(Ndb(cwe, qgb(Ydb(Ndb(a == null ? 0 : tb(a), dwe)), 15))); + if (b == this.a.a && (dE(a) === dE(d) || a != null && pb(a, d))) { + return a; + } + Nb(!Go(this.b.a.a, a, b), a); + yo(this.b.a.a, this.a); + c = new kp(a, b, this.a.i, this.a.f); + this.a = c; + Bo(this.b.a.a, c, null); + this.b.b = this.b.a.a.g; + return d; + }; + sfb(xve, "HashBiMap/Inverse/1/InverseEntry", 1021); + feb(620, 542, Fve, Gp); + _.Kc = function Hp() { + return new Jp(this.a.a); + }; + _.Mc = function Ip(a) { + var b; + b = Ho(this.a.a, a, Ydb(Ndb(cwe, qgb(Ydb(Ndb(a == null ? 0 : tb(a), dwe)), 15)))); + if (!b) { + return false; + } else { + yo(this.a.a, b); + return true; + } + }; + sfb(xve, "HashBiMap/Inverse/InverseKeySet", 620); + feb(1019, 544, Ave, Jp); + _.Xd = function Kp(a) { + return a.i; + }; + sfb(xve, "HashBiMap/Inverse/InverseKeySet/1", 1019); + feb(1022, 1, {}, Lp); + _.Yd = function Mp(a, b) { + tp(this.a, a, b); + }; + sfb(xve, "HashBiMap/Inverse/lambda$0$Type", 1022); + feb(618, 542, Fve, Np); + _.Kc = function Op() { + return new Qp(this.a); + }; + _.Mc = function Pp(a) { + var b; + b = Go(this.a, a, Ydb(Ndb(cwe, qgb(Ydb(Ndb(a == null ? 0 : tb(a), dwe)), 15)))); + if (!b) { + return false; + } else { + yo(this.a, b); + b.e = null; + b.c = null; + return true; + } + }; + sfb(xve, "HashBiMap/KeySet", 618); + feb(1018, 544, Ave, Qp); + _.Xd = function Rp(a) { + return a.g; + }; + sfb(xve, "HashBiMap/KeySet/1", 1018); + feb(1123, 627, zve); + sfb(xve, "HashMultimapGwtSerializationDependencies", 1123); + feb(271, 1123, zve, Tp); + _.hc = function Up() { + return new atb(Sv(this.a)); + }; + _.pd = function Vp() { + return new atb(Sv(this.a)); + }; + _.a = 2; + sfb(xve, "HashMultimap", 271); + feb(2097, 307, Yve); + _.Hc = function Yp(a) { + return this.Zd().Hc(a); + }; + _.dc = function Zp() { + return this.Zd().dc(); + }; + _.gc = function $p() { + return this.Zd().gc(); + }; + sfb(xve, "ImmutableAsList", 2097); + feb(2030, 730, $ve); + _.Vd = function aq() { + return _l(), new Fy(this.a); + }; + _.Cc = function bq() { + return _l(), new Fy(this.a); + }; + _.xd = function cq() { + return _l(), new Fy(this.a); + }; + sfb(xve, "ImmutableBiMap", 2030); + feb(2075, 1, {}); + sfb(xve, "ImmutableCollection/Builder", 2075); + feb(1035, 719, awe, dq); + sfb(xve, "ImmutableEnumSet", 1035); + feb(980, 399, yve, fq); + _.Xb = function gq(a) { + return this.a.Xb(a); + }; + sfb(xve, "ImmutableList/1", 980); + feb(979, 2075, {}, hq); + sfb(xve, "ImmutableList/Builder", 979); + feb(623, 204, wve, iq); + _.Ob = function jq() { + return this.a.Ob(); + }; + _.Pb = function kq() { + return RD(this.a.Pb(), 44).ld(); + }; + sfb(xve, "ImmutableMap/1", 623); + feb(1054, 1, {}, lq); + _.Kb = function mq(a) { + return RD(a, 44).ld(); + }; + sfb(xve, "ImmutableMap/2methodref$getKey$Type", 1054); + feb(1053, 1, {}, oq); + sfb(xve, "ImmutableMap/Builder", 1053); + feb(2098, 2079, awe); + _.Md = function pq() { + var a; + return a = this.b, !a ? this.b = new Xq(this) : a; + }; + _.Nd = function qq() { + return new Fx(this, Ee(this, $C(jJ, rve, 1, this.gc(), 5, 1))); + }; + sfb(xve, "ImmutableSet/CachingAsList", 2098); + feb(2099, 2098, awe); + _.Kc = function uq() { + var a; + return a = gn(this.a).Od(), new iq(a); + }; + _.Nd = function rq() { + return new Xq(this); + }; + _.Jc = function sq(a) { + var b, c; + Qb(a); + c = this.gc(); + for (b = 0; b < c; b++) { + a.Cd(RD(gn(this.a).Md().Xb(b), 44).ld()); + } + }; + _.Od = function tq() { + var a; + return a = this.b, um(!a ? this.b = new Xq(this) : a, 0); + }; + _.Nc = function vq() { + return fk(this.gc(), 1296, new Vq(this)); + }; + sfb(xve, "IndexedImmutableSet", 2099); + feb(1230, 2099, awe, xq); + _.Kc = function Bq() { + var a; + return a = gn(this.a).Od(), new iq(a); + }; + _.Hc = function yq(a) { + return this.a._b(a); + }; + _.Jc = function zq(a) { + Qb(a); + Bvb(this.a, new Eq(a)); + }; + _.Od = function Aq() { + var a; + return a = gn(this.a).Od(), new iq(a); + }; + _.gc = function Cq() { + return this.a.gc(); + }; + _.Nc = function Dq() { + return gk(gn(this.a).Nc(), new lq()); + }; + sfb(xve, "ImmutableMapKeySet", 1230); + feb(1231, 1, {}, Eq); + _.Yd = function Fq(a, b) { + _l(); + this.a.Cd(a); + }; + sfb(xve, "ImmutableMapKeySet/lambda$0$Type", 1231); + feb(1227, 2078, Xve, Gq); + _.Kc = function Kq() { + return new Pq(this); + }; + _.Md = function Hq() { + var a; + a = gn(this.a).Md(); + return new Sq(this, a); + }; + _.Hc = function Iq(a) { + return a != null && Br(new Pq(this), a); + }; + _.Od = function Jq() { + return new Pq(this); + }; + _.gc = function Lq() { + return this.a.gc(); + }; + _.Nc = function Mq() { + return gk(gn(this.a).Nc(), new Nq()); + }; + sfb(xve, "ImmutableMapValues", 1227); + feb(1228, 1, {}, Nq); + _.Kb = function Oq(a) { + return RD(a, 44).md(); + }; + sfb(xve, "ImmutableMapValues/0methodref$getValue$Type", 1228); + feb(637, 204, wve, Pq); + _.Ob = function Qq() { + return this.a.Ob(); + }; + _.Pb = function Rq() { + return RD(this.a.Pb(), 44).md(); + }; + sfb(xve, "ImmutableMapValues/1", 637); + feb(1229, 2097, Yve, Sq); + _.Zd = function Tq() { + return this.a; + }; + _.Xb = function Uq(a) { + return RD(this.b.Xb(a), 44).md(); + }; + sfb(xve, "ImmutableMapValues/2", 1229); + feb(1232, 1, {}, Vq); + _.td = function Wq(a) { + return wq(this.a, a); + }; + sfb(xve, "IndexedImmutableSet/0methodref$get$Type", 1232); + feb(638, 2097, Yve, Xq); + _.Zd = function Yq() { + return this.a; + }; + _.Xb = function Zq(a) { + return wq(this.a, a); + }; + _.gc = function $q() { + return this.a.a.gc(); + }; + sfb(xve, "IndexedImmutableSet/1", 638); + feb(43, 1, {}, ir); + _.Kb = function jr(a) { + return RD(a, 20).Kc(); + }; + _.Fb = function kr(a) { + return this === a; + }; + sfb(xve, "Iterables/10", 43); + feb(1055, 547, Vve, mr); + _.Jc = function nr(a) { + Qb(a); + this.b.Jc(new qr(this.a, a)); + }; + _.Kc = function or() { + return lr(this); + }; + sfb(xve, "Iterables/4", 1055); + feb(1056, 1, Qve, qr); + _.Cd = function rr(a) { + pr(this.b, this.a, a); + }; + sfb(xve, "Iterables/4/lambda$0$Type", 1056); + feb(1057, 547, Vve, sr); + _.Jc = function tr(a) { + Qb(a); + xgb(this.a, new vr(a, this.b)); + }; + _.Kc = function ur() { + return Mr(new dMd(this.a), this.b); + }; + sfb(xve, "Iterables/5", 1057); + feb(1058, 1, Qve, vr); + _.Cd = function wr(a) { + this.a.Cd(Ksd(a)); + }; + sfb(xve, "Iterables/5/lambda$0$Type", 1058); + feb(1087, 204, wve, Or); + _.Ob = function Pr() { + return this.a.Ob(); + }; + _.Pb = function Qr() { + return this.a.Pb(); + }; + sfb(xve, "Iterators/1", 1087); + feb(1088, 713, wve, Rr); + _.Yb = function Sr() { + var a; + while (this.b.Ob()) { + a = this.b.Pb(); + if (this.a.Lb(a)) { + return a; + } + } + return this.e = 2, null; + }; + sfb(xve, "Iterators/5", 1088); + feb(497, 1, Ave); + _.Nb = function Ur(a) { + Ztb(this, a); + }; + _.Ob = function Vr() { + return this.b.Ob(); + }; + _.Pb = function Wr() { + return this.$d(this.b.Pb()); + }; + _.Qb = function Xr() { + this.b.Qb(); + }; + sfb(xve, "TransformedIterator", 497); + feb(1089, 497, Ave, Yr); + _.$d = function Zr(a) { + return this.a.Kb(a); + }; + sfb(xve, "Iterators/6", 1089); + feb(732, 204, wve, $r); + _.Ob = function _r() { + return !this.a; + }; + _.Pb = function as() { + if (this.a) { + throw Adb(new Dvb()); + } + this.a = true; + return this.b; + }; + _.a = false; + sfb(xve, "Iterators/9", 732); + feb(1086, 399, yve, ds); + _.Xb = function es(a) { + return this.a[this.b + a]; + }; + _.b = 0; + var bs; + sfb(xve, "Iterators/ArrayItr", 1086); + feb(38, 1, { 38: 1, 51: 1 }, is); + _.Nb = function js(a) { + Ztb(this, a); + }; + _.Ob = function ks() { + return gs(this); + }; + _.Pb = function ls() { + return hs(this); + }; + _.Qb = function ms() { + if (!this.c) { + throw Adb(new dgb(tve)); + } + this.c.Qb(); + this.c = null; + }; + sfb(xve, "Iterators/ConcatenatedIterator", 38); + feb(22, 1, { 3: 1, 34: 1, 22: 1 }); + _.Fd = function rs(a) { + return ns(this, RD(a, 22)); + }; + _.Fb = function ts(a) { + return this === a; + }; + _.Hb = function us() { + return kFb(this); + }; + _.Ib = function vs() { + return ps(this); + }; + _.g = 0; + var WI = sfb(mve, "Enum", 22); + feb(549, 22, { 549: 1, 3: 1, 34: 1, 22: 1, 51: 1 }, As); + _.Nb = function Bs(a) { + Ztb(this, a); + }; + _.Ob = function Cs() { + return false; + }; + _.Pb = function Ds() { + throw Adb(new Dvb()); + }; + _.Qb = function Es() { + Vb(false); + }; + var ys; + var RG = tfb(xve, "Iterators/EmptyModifiableIterator", 549, WI, Gs, Fs); + var Hs; + feb(1907, 627, zve); + sfb(xve, "LinkedHashMultimapGwtSerializationDependencies", 1907); + feb(1908, 1907, zve, Ks); + _.hc = function Ms() { + return new Jub(Sv(this.b)); + }; + _.$b = function Ls() { + Nc(this); + Ss(this.a, this.a); + }; + _.pd = function Ns() { + return new Jub(Sv(this.b)); + }; + _.ic = function Os(a) { + return new it(this, a, this.b); + }; + _.kc = function Ps() { + return new Zs(this); + }; + _.lc = function Qs() { + var a; + return new Swb((a = this.g, RD(!a ? this.g = new xh(this) : a, 21)), 17); + }; + _.ec = function Rs() { + var a; + return a = this.i, !a ? this.i = new zf(this, this.c) : a; + }; + _.nc = function Us() { + return new cw(new Zs(this)); + }; + _.oc = function Vs() { + var a; + return gk(new Swb((a = this.g, RD(!a ? this.g = new xh(this) : a, 21)), 17), new Ws()); + }; + _.b = 2; + sfb(xve, "LinkedHashMultimap", 1908); + feb(1911, 1, {}, Ws); + _.Kb = function Xs(a) { + return RD(a, 44).md(); + }; + sfb(xve, "LinkedHashMultimap/0methodref$getValue$Type", 1911); + feb(834, 1, Ave, Zs); + _.Nb = function $s(a) { + Ztb(this, a); + }; + _.Pb = function at() { + return Ys(this); + }; + _.Ob = function _s() { + return this.a != this.b.a; + }; + _.Qb = function bt() { + Vb(!!this.c); + Gc(this.b, this.c.g, this.c.i); + this.c = null; + }; + sfb(xve, "LinkedHashMultimap/1", 834); + feb(227, 246, { 358: 1, 246: 1, 227: 1, 604: 1, 3: 1, 44: 1 }, ct); + _._d = function dt() { + return RD(Hvb(this.f), 604); + }; + _.ae = function et(a) { + this.c = a; + }; + _.be = function ft(a) { + this.f = a; + }; + _.d = 0; + var UG = sfb(xve, "LinkedHashMultimap/ValueEntry", 227); + feb(1909, 2068, { 604: 1, 20: 1, 31: 1, 16: 1, 21: 1 }, it); + _.Fc = function jt(a) { + var b, c, d, e, f; + f = Ydb(Ndb(cwe, qgb(Ydb(Ndb(a == null ? 0 : tb(a), dwe)), 15))); + b = f & this.b.length - 1; + e = this.b[b]; + for (c = e; c; c = c.a) { + if (c.d == f && Hb(c.i, a)) { + return false; + } + } + d = new ct(this.c, a, f, e); + Ts(this.d, d); + d.f = this; + this.d = d; + Ss(RD(Hvb(this.g.a.b), 227), d); + Ss(d, this.g.a); + this.b[b] = d; + ++this.f; + ++this.e; + gt(this); + return true; + }; + _.$b = function kt() { + var a, b; + Mnb(this.b, null); + this.f = 0; + for (a = this.a; a != this; a = a._d()) { + b = RD(a, 227); + Ss(RD(Hvb(b.b), 227), RD(Hvb(b.e), 227)); + } + this.a = this; + this.d = this; + ++this.e; + }; + _.Hc = function lt(a) { + var b, c; + c = Ydb(Ndb(cwe, qgb(Ydb(Ndb(a == null ? 0 : tb(a), dwe)), 15))); + for (b = this.b[c & this.b.length - 1]; b; b = b.a) { + if (b.d == c && Hb(b.i, a)) { + return true; + } + } + return false; + }; + _.Jc = function mt(a) { + var b; + Qb(a); + for (b = this.a; b != this; b = b._d()) { + a.Cd(RD(b, 227).i); + } + }; + _._d = function nt() { + return this.a; + }; + _.Kc = function ot() { + return new ut(this); + }; + _.Mc = function pt(a) { + return ht(this, a); + }; + _.ae = function qt(a) { + this.d = a; + }; + _.be = function rt(a) { + this.a = a; + }; + _.gc = function st() { + return this.f; + }; + _.e = 0; + _.f = 0; + sfb(xve, "LinkedHashMultimap/ValueSet", 1909); + feb(1910, 1, Ave, ut); + _.Nb = function vt(a) { + Ztb(this, a); + }; + _.Ob = function wt() { + return tt(this), this.b != this.c; + }; + _.Pb = function xt() { + var a, b; + tt(this); + if (this.b == this.c) { + throw Adb(new Dvb()); + } + a = RD(this.b, 227); + b = a.i; + this.d = a; + this.b = RD(Hvb(a.f), 604); + return b; + }; + _.Qb = function yt() { + tt(this); + Vb(!!this.d); + ht(this.c, this.d.i); + this.a = this.c.e; + this.d = null; + }; + _.a = 0; + sfb(xve, "LinkedHashMultimap/ValueSet/1", 1910); + feb(780, 2084, zve, Et); + _.Zb = function Ft() { + var a; + return a = this.f, !a ? this.f = new zw(this) : a; + }; + _.Fb = function Kt(a) { + return xw(this, a); + }; + _.cc = function Lt(a) { + return new su(this, a); + }; + _.fc = function Ot(a) { + return Ct(this, a); + }; + _.$b = function Gt() { + At(this); + }; + _._b = function Ht(a) { + return Bt(this, a); + }; + _.ac = function It() { + return new zw(this); + }; + _.bc = function Jt() { + return new vu(this); + }; + _.qc = function Mt(a) { + return new su(this, a); + }; + _.dc = function Nt() { + return !this.a; + }; + _.rc = function Pt(a) { + return Ct(this, a); + }; + _.gc = function Qt() { + return this.d; + }; + _.c = 0; + _.d = 0; + sfb(xve, "LinkedListMultimap", 780); + feb(56, 31, kwe); + _.jd = function eu(a) { + tvb(this, a); + }; + _.Nc = function fu() { + return new Swb(this, 16); + }; + _.bd = function Tt(a, b) { + throw Adb(new kib("Add not supported on this list")); + }; + _.Fc = function Ut(a) { + this.bd(this.gc(), a); + return true; + }; + _.cd = function Vt(a, b) { + var c, d, e; + uFb(b); + c = false; + for (e = b.Kc(); e.Ob(); ) { + d = e.Pb(); + this.bd(a++, d); + c = true; + } + return c; + }; + _.$b = function Wt() { + this.ce(0, this.gc()); + }; + _.Fb = function Xt(a) { + return Rt(this, a); + }; + _.Hb = function Yt() { + return Cob(this); + }; + _.dd = function Zt(a) { + return St(this, a); + }; + _.Kc = function $t() { + return new Dkb(this); + }; + _.ed = function _t() { + return this.fd(0); + }; + _.fd = function au(a) { + return new Jkb(this, a); + }; + _.gd = function bu(a) { + throw Adb(new kib("Remove not supported on this list")); + }; + _.ce = function cu(a, b) { + var c, d; + d = this.fd(a); + for (c = a; c < b; ++c) { + d.Pb(); + d.Qb(); + } + }; + _.hd = function du(a, b) { + throw Adb(new kib("Set not supported on this list")); + }; + _.kd = function gu(a, b) { + return new Rkb(this, a, b); + }; + _.j = 0; + sfb(Bve, "AbstractList", 56); + feb(2062, 56, kwe); + _.bd = function lu(a, b) { + hu(this, a, b); + }; + _.cd = function mu(a, b) { + return iu(this, a, b); + }; + _.Xb = function nu(a) { + return ju(this, a); + }; + _.Kc = function ou() { + return this.fd(0); + }; + _.gd = function pu(a) { + return ku(this, a); + }; + _.hd = function qu(b, c) { + var d, e; + d = this.fd(b); + try { + e = d.Pb(); + d.Wb(c); + return e; + } catch (a) { + a = zdb(a); + if (ZD(a, 112)) { + throw Adb(new veb("Can't set element " + b)); + } else + throw Adb(a); + } + }; + sfb(Bve, "AbstractSequentialList", 2062); + feb(646, 2062, kwe, su); + _.fd = function tu(a) { + return ru(this, a); + }; + _.gc = function uu() { + var a; + a = RD(Wjb(this.a.b, this.b), 260); + return !a ? 0 : a.a; + }; + sfb(xve, "LinkedListMultimap/1", 646); + feb(1316, 2068, Fve, vu); + _.Hc = function wu(a) { + return Bt(this.a, a); + }; + _.Kc = function xu() { + return new Bu(this.a); + }; + _.Mc = function yu(a) { + return !Ct(this.a, a).a.dc(); + }; + _.gc = function zu() { + return bkb(this.a.b); + }; + sfb(xve, "LinkedListMultimap/1KeySetImpl", 1316); + feb(1315, 1, Ave, Bu); + _.Nb = function Cu(a) { + Ztb(this, a); + }; + _.Ob = function Du() { + Au(this); + return !!this.c; + }; + _.Pb = function Eu() { + Au(this); + if (!this.c) { + throw Adb(new Dvb()); + } + this.a = this.c; + Ysb(this.d, this.a.a); + do { + this.c = this.c.b; + } while (!!this.c && !Ysb(this.d, this.c.a)); + return this.a.a; + }; + _.Qb = function Fu() { + Au(this); + Vb(!!this.a); + Ar(new Nu(this.e, this.a.a)); + this.a = null; + this.b = this.e.c; + }; + _.b = 0; + sfb(xve, "LinkedListMultimap/DistinctKeyIterator", 1315); + feb(260, 1, { 260: 1 }, Gu); + _.a = 0; + sfb(xve, "LinkedListMultimap/KeyList", 260); + feb(511, 358, { 358: 1, 511: 1, 44: 1 }, Hu); + _.ld = function Iu() { + return this.a; + }; + _.md = function Ju() { + return this.f; + }; + _.nd = function Ku(a) { + var b; + b = this.f; + this.f = a; + return b; + }; + sfb(xve, "LinkedListMultimap/Node", 511); + feb(566, 1, Jve, Nu, Ou); + _.Nb = function Qu(a) { + Ztb(this, a); + }; + _.Rb = function Pu(a) { + this.e = zt(this.f, this.b, a, this.c); + ++this.d; + this.a = null; + }; + _.Ob = function Ru() { + return !!this.c; + }; + _.Sb = function Su() { + return !!this.e; + }; + _.Pb = function Tu() { + return Lu(this); + }; + _.Tb = function Uu() { + return this.d; + }; + _.Ub = function Vu() { + return Mu(this); + }; + _.Vb = function Wu() { + return this.d - 1; + }; + _.Qb = function Xu() { + Vb(!!this.a); + if (this.a != this.c) { + this.e = this.a.e; + --this.d; + } else { + this.c = this.a.c; + } + Dt(this.f, this.a); + this.a = null; + }; + _.Wb = function Yu(a) { + Ub(!!this.a); + this.a.f = a; + }; + _.d = 0; + sfb(xve, "LinkedListMultimap/ValueForKeyIterator", 566); + feb(1031, 56, kwe); + _.bd = function iv(a, b) { + this.a.bd(a, b); + }; + _.cd = function jv(a, b) { + return this.a.cd(a, b); + }; + _.Hc = function kv(a) { + return this.a.Hc(a); + }; + _.Xb = function lv(a) { + return this.a.Xb(a); + }; + _.gd = function mv(a) { + return this.a.gd(a); + }; + _.hd = function nv(a, b) { + return this.a.hd(a, b); + }; + _.gc = function ov() { + return this.a.gc(); + }; + sfb(xve, "Lists/AbstractListWrapper", 1031); + feb(1032, 1031, mwe); + sfb(xve, "Lists/RandomAccessListWrapper", 1032); + feb(1034, 1032, mwe, pv); + _.fd = function qv(a) { + return this.a.fd(a); + }; + sfb(xve, "Lists/1", 1034); + feb(441, 56, { 441: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1 }, uv); + _.bd = function vv(a, b) { + this.a.bd(tv(this, a), b); + }; + _.$b = function wv() { + this.a.$b(); + }; + _.Xb = function xv(a) { + return this.a.Xb(sv(this, a)); + }; + _.Kc = function yv() { + return rv(this, 0); + }; + _.fd = function zv(a) { + return rv(this, a); + }; + _.gd = function Av(a) { + return this.a.gd(sv(this, a)); + }; + _.ce = function Bv(a, b) { + (Tb(a, b, this.a.gc()), hv(this.a.kd(tv(this, b), tv(this, a)))).$b(); + }; + _.hd = function Cv(a, b) { + return this.a.hd(sv(this, a), b); + }; + _.gc = function Dv() { + return this.a.gc(); + }; + _.kd = function Ev(a, b) { + return Tb(a, b, this.a.gc()), hv(this.a.kd(tv(this, b), tv(this, a))); + }; + sfb(xve, "Lists/ReverseList", 441); + feb(1030, 441, { 441: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 59: 1 }, Fv); + sfb(xve, "Lists/RandomAccessReverseList", 1030); + feb(1033, 1, Jve, Gv); + _.Nb = function Iv(a) { + Ztb(this, a); + }; + _.Rb = function Hv(a) { + this.c.Rb(a); + this.c.Ub(); + this.a = false; + }; + _.Ob = function Jv() { + return this.c.Sb(); + }; + _.Sb = function Kv() { + return this.c.Ob(); + }; + _.Pb = function Lv() { + if (!this.c.Sb()) { + throw Adb(new Dvb()); + } + this.a = true; + return this.c.Ub(); + }; + _.Tb = function Mv() { + return tv(this.b, this.c.Tb()); + }; + _.Ub = function Nv() { + if (!this.c.Ob()) { + throw Adb(new Dvb()); + } + this.a = true; + return this.c.Pb(); + }; + _.Vb = function Ov() { + return tv(this.b, this.c.Tb()) - 1; + }; + _.Qb = function Pv() { + Vb(this.a); + this.c.Qb(); + this.a = false; + }; + _.Wb = function Qv(a) { + Ub(this.a); + this.c.Wb(a); + }; + _.a = false; + sfb(xve, "Lists/ReverseList/1", 1033); + feb(440, 497, Ave, aw); + _.$d = function bw(a) { + return _v(a); + }; + sfb(xve, "Maps/1", 440); + feb(712, 497, Ave, cw); + _.$d = function dw(a) { + return RD(a, 44).md(); + }; + sfb(xve, "Maps/2", 712); + feb(975, 497, Ave, ew); + _.$d = function fw(a) { + return new gp(a, Mw(this.a, a)); + }; + sfb(xve, "Maps/3", 975); + feb(972, 2069, Fve, gw); + _.Jc = function hw(a) { + uj(this.a, a); + }; + _.Kc = function iw() { + return this.a.kc(); + }; + _.Rc = function jw() { + return this.a; + }; + _.Nc = function kw() { + return this.a.lc(); + }; + sfb(xve, "Maps/IteratorBasedAbstractMap/1", 972); + feb(973, 1, {}, lw); + _.Yd = function mw(a, b) { + this.a.Cd(a); + }; + sfb(xve, "Maps/KeySet/lambda$0$Type", 973); + feb(971, 31, Dve, nw); + _.$b = function ow() { + this.a.$b(); + }; + _.Hc = function pw(a) { + return this.a.uc(a); + }; + _.Jc = function qw(a) { + Qb(a); + this.a.wc(new vw(a)); + }; + _.dc = function rw() { + return this.a.dc(); + }; + _.Kc = function sw() { + return new cw(this.a.vc().Kc()); + }; + _.Mc = function tw(b) { + var c, d; + try { + return ze(this, b, true); + } catch (a) { + a = zdb(a); + if (ZD(a, 48)) { + for (d = this.a.vc().Kc(); d.Ob(); ) { + c = RD(d.Pb(), 44); + if (Hb(b, c.md())) { + this.a.Bc(c.ld()); + return true; + } + } + return false; + } else + throw Adb(a); + } + }; + _.gc = function uw() { + return this.a.gc(); + }; + sfb(xve, "Maps/Values", 971); + feb(974, 1, {}, vw); + _.Yd = function ww(a, b) { + this.a.Cd(b); + }; + sfb(xve, "Maps/Values/lambda$0$Type", 974); + feb(752, 2085, Cve, zw); + _.xc = function Dw(a) { + return this.a._b(a) ? this.a.cc(a) : null; + }; + _.Bc = function Gw(a) { + return this.a._b(a) ? this.a.fc(a) : null; + }; + _.$b = function Aw() { + this.a.$b(); + }; + _._b = function Bw(a) { + return this.a._b(a); + }; + _.Ec = function Cw() { + return new Iw(this); + }; + _.Dc = function() { + return this.Ec(); + }; + _.dc = function Ew() { + return this.a.dc(); + }; + _.ec = function Fw() { + return this.a.ec(); + }; + _.gc = function Hw() { + return this.a.ec().gc(); + }; + sfb(xve, "Multimaps/AsMap", 752); + feb(1134, 2069, Fve, Iw); + _.Kc = function Jw() { + return Rv(this.a.a.ec(), new Nw(this)); + }; + _.Rc = function Kw() { + return this.a; + }; + _.Mc = function Lw(a) { + var b; + if (!Ze(this, a)) { + return false; + } + b = RD(Hvb(RD(a, 44)), 44); + yw(this.a, b.ld()); + return true; + }; + sfb(xve, "Multimaps/AsMap/EntrySet", 1134); + feb(1138, 1, {}, Nw); + _.Kb = function Ow(a) { + return Mw(this, a); + }; + _.Fb = function Pw(a) { + return this === a; + }; + sfb(xve, "Multimaps/AsMap/EntrySet/1", 1138); + feb(552, 2087, { 552: 1, 849: 1, 20: 1, 31: 1, 16: 1 }, Sw); + _.$b = function Tw() { + Nc(this.a); + }; + _.Hc = function Uw(a) { + return Oc(this.a, a); + }; + _.Jc = function Vw(a) { + Qb(a); + xgb(Pc(this.a), new fx(a)); + }; + _.Kc = function Ww() { + return new aw(Pc(this.a).a.kc()); + }; + _.gc = function Xw() { + return this.a.d; + }; + _.Nc = function Yw() { + return gk(Pc(this.a).Nc(), new Zw()); + }; + sfb(xve, "Multimaps/Keys", 552); + feb(1136, 1, {}, Zw); + _.Kb = function $w(a) { + return RD(a, 44).ld(); + }; + sfb(xve, "Multimaps/Keys/0methodref$getKey$Type", 1136); + feb(1135, 497, Ave, _w); + _.$d = function ax(a) { + return new ex(RD(a, 44)); + }; + sfb(xve, "Multimaps/Keys/1", 1135); + feb(2088, 1, { 425: 1 }); + _.Fb = function bx(a) { + var b; + if (ZD(a, 504)) { + b = RD(a, 425); + return RD(this.a.md(), 16).gc() == RD(b.a.md(), 16).gc() && Hb(this.a.ld(), b.a.ld()); + } + return false; + }; + _.Hb = function cx() { + var a; + a = this.a.ld(); + return (a == null ? 0 : tb(a)) ^ RD(this.a.md(), 16).gc(); + }; + _.Ib = function dx() { + var a, b; + b = Ghb(this.a.ld()); + a = RD(this.a.md(), 16).gc(); + return a == 1 ? b : b + " x " + a; + }; + sfb(xve, "Multisets/AbstractEntry", 2088); + feb(504, 2088, { 504: 1, 425: 1 }, ex); + sfb(xve, "Multimaps/Keys/1/1", 504); + feb(1137, 1, Qve, fx); + _.Cd = function gx(a) { + this.a.Cd(RD(a, 44).ld()); + }; + sfb(xve, "Multimaps/Keys/lambda$1$Type", 1137); + feb(1140, 1, Qve, jx); + _.Cd = function kx(a) { + hx(RD(a, 425)); + }; + sfb(xve, "Multiset/lambda$0$Type", 1140); + feb(753, 1, Qve, lx); + _.Cd = function mx(a) { + ix(this.a, RD(a, 425)); + }; + sfb(xve, "Multiset/lambda$1$Type", 753); + feb(1141, 1, {}, rx); + sfb(xve, "Multisets/0methodref$add$Type", 1141); + feb(754, 1, {}, sx); + _.Kb = function tx(a) { + return px(RD(a, 425)); + }; + sfb(xve, "Multisets/lambda$1$Type", 754); + feb(2106, 1, nve); + sfb(xve, "RangeGwtSerializationDependencies", 2106); + feb(521, 2106, { 178: 1, 521: 1, 3: 1, 46: 1 }, wx); + _.Lb = function xx(a) { + return vx(this, RD(a, 34)); + }; + _.Mb = function Bx(a) { + return vx(this, RD(a, 34)); + }; + _.Fb = function zx(a) { + var b; + if (ZD(a, 521)) { + b = RD(a, 521); + return Pk(this.a, b.a) && Pk(this.b, b.b); + } + return false; + }; + _.Hb = function Ax() { + return this.a.Hb() * 31 + this.b.Hb(); + }; + _.Ib = function Cx() { + return Dx(this.a, this.b); + }; + sfb(xve, "Range", 521); + feb(654, 2097, Yve, Fx); + _.fd = function Jx(a) { + return um(this.b, a); + }; + _.Zd = function Gx() { + return this.a; + }; + _.Xb = function Hx(a) { + return Qm(this.b, a); + }; + _.Pd = function Ix(a) { + return um(this.b, a); + }; + sfb(xve, "RegularImmutableAsList", 654); + feb(656, 2105, Yve, Kx); + _.Rd = function Lx() { + return this.a; + }; + sfb(xve, "RegularImmutableList", 656); + feb(548, 730, $ve, Mx, Nx); + sfb(xve, "RegularImmutableMap", 548); + feb(731, 719, awe, Qx); + var Ox; + sfb(xve, "RegularImmutableSet", 731); + feb(2074, Eve, Fve); + _.Kc = function by() { + return new oy(this.a, this.b); + }; + _.Fc = function $x(a) { + throw Adb(new jib()); + }; + _.Gc = function _x(a) { + throw Adb(new jib()); + }; + _.$b = function ay() { + throw Adb(new jib()); + }; + _.Mc = function cy(a) { + throw Adb(new jib()); + }; + sfb(xve, "Sets/SetView", 2074); + feb(976, 2074, Fve, ey); + _.Kc = function iy() { + return new oy(this.a, this.b); + }; + _.Hc = function fy(a) { + return Bsb(this.a, a) && this.b.Hc(a); + }; + _.Ic = function gy(a) { + return Be(this.a, a) && this.b.Ic(a); + }; + _.dc = function hy() { + return Aob(this.b, this.a); + }; + _.Lc = function jy() { + return CDb(new SDb(null, new Swb(this.a, 1)), new qy(this.b)); + }; + _.gc = function ky() { + return dy(this); + }; + _.Oc = function ly() { + return CDb(new SDb(null, new Swb(this.a, 1)), new my(this.b)); + }; + sfb(xve, "Sets/2", 976); + feb(977, 1, nwe, my); + _.Mb = function ny(a) { + return this.a.Hc(a); + }; + sfb(xve, "Sets/2/0methodref$contains$Type", 977); + feb(714, 713, wve, oy); + _.Yb = function py() { + var a; + while (Msb(this.a)) { + a = Nsb(this.a); + if (this.c.Hc(a)) { + return a; + } + } + return this.e = 2, null; + }; + sfb(xve, "Sets/2/1", 714); + feb(978, 1, nwe, qy); + _.Mb = function ry(a) { + return this.a.Hc(a); + }; + sfb(xve, "Sets/2/1methodref$contains$Type", 978); + feb(616, 2073, { 616: 1, 3: 1, 20: 1, 16: 1, 277: 1, 21: 1, 87: 1 }, sy); + _.Kd = function ty() { + return this.b; + }; + _.Ld = function uy() { + return this.b; + }; + _.Wd = function vy() { + return this.b; + }; + _.Jc = function wy(a) { + this.a.Jc(a); + }; + _.Lc = function xy() { + return this.a.Lc(); + }; + _.Oc = function yy() { + return this.a.Oc(); + }; + sfb(xve, "Sets/UnmodifiableNavigableSet", 616); + feb(2031, 2030, $ve, zy); + _.Vd = function Ay() { + return _l(), new Fy(this.a); + }; + _.Cc = function By() { + return _l(), new Fy(this.a); + }; + _.xd = function Cy() { + return _l(), new Fy(this.a); + }; + sfb(xve, "SingletonImmutableBiMap", 2031); + feb(657, 2105, Yve, Dy); + _.Rd = function Ey() { + return this.a; + }; + sfb(xve, "SingletonImmutableList", 657); + feb(363, 2079, awe, Fy); + _.Kc = function Iy() { + return new $r(this.a); + }; + _.Hc = function Gy(a) { + return pb(this.a, a); + }; + _.Od = function Hy() { + return new $r(this.a); + }; + _.gc = function Jy() { + return 1; + }; + sfb(xve, "SingletonImmutableSet", 363); + feb(1148, 1, {}, My); + _.Kb = function Ny(a) { + return RD(a, 159); + }; + sfb(xve, "Streams/lambda$0$Type", 1148); + feb(1149, 1, owe, Oy); + _.de = function Py() { + Ky(this.a); + }; + sfb(xve, "Streams/lambda$1$Type", 1149); + feb(1725, 1724, zve, Ry); + _.Zb = function Sy() { + var a; + return a = this.f, RD(RD(!a ? this.f = ZD(this.c, 139) ? new Uf(this, RD(this.c, 139)) : ZD(this.c, 133) ? new Mf(this, RD(this.c, 133)) : new ne(this, this.c) : a, 133), 139); + }; + _.hc = function Vy() { + return new yAb(this.b); + }; + _.pd = function Wy() { + return new yAb(this.b); + }; + _.ec = function Yy() { + var a; + return a = this.i, RD(RD(!a ? this.i = ZD(this.c, 139) ? new gg(this, RD(this.c, 139)) : ZD(this.c, 133) ? new eg(this, RD(this.c, 133)) : new zf(this, this.c) : a, 87), 277); + }; + _.ac = function Uy() { + return ZD(this.c, 139) ? new Uf(this, RD(this.c, 139)) : ZD(this.c, 133) ? new Mf(this, RD(this.c, 133)) : new ne(this, this.c); + }; + _.ic = function Xy(a) { + a == null && this.a.Ne(a, a); + return new yAb(this.b); + }; + sfb(xve, "TreeMultimap", 1725); + feb(82, 1, { 3: 1, 82: 1 }); + _.ee = function pz(a) { + return new Error(a); + }; + _.fe = function rz() { + return this.e; + }; + _.ge = function sz() { + var a, b, c; + c = (this.k == null && (this.k = $C(rJ, Nve, 82, 0, 0, 1)), this.k); + b = $C(jJ, rve, 1, c.length, 5, 1); + for (a = 0; a < c.length; a++) { + b[a] = c[a].e; + } + return b; + }; + _.he = function tz() { + return this.f; + }; + _.ie = function uz() { + return this.g; + }; + _.je = function vz() { + kz(this, qz(this.ee(lz(this, this.g)))); + gA(this); + }; + _.Ib = function wz() { + return lz(this, this.ie()); + }; + _.e = rwe; + _.i = false; + _.n = true; + var rJ = sfb(mve, "Throwable", 82); + feb(103, 82, { 3: 1, 103: 1, 82: 1 }); + sfb(mve, "Exception", 103); + feb(63, 103, swe, xz, yz); + sfb(mve, "RuntimeException", 63); + feb(607, 63, swe); + sfb(mve, "JsException", 607); + feb(875, 607, swe); + sfb(twe, "JavaScriptExceptionBase", 875); + feb(486, 875, { 486: 1, 3: 1, 103: 1, 63: 1, 82: 1 }, Cz); + _.ie = function Fz() { + Bz(this); + return this.c; + }; + _.ke = function Gz() { + return dE(this.b) === dE(zz) ? null : this.b; + }; + var zz; + sfb(vwe, "JavaScriptException", 486); + var hI = sfb(vwe, "JavaScriptObject$", 0); + var Jz; + feb(2047, 1, {}); + sfb(vwe, "Scheduler", 2047); + var Nz = 0, Oz = 0, Pz = -1; + feb(902, 2047, {}, bA); + var Zz; + sfb(twe, "SchedulerImpl", 902); + var eA; + feb(2058, 1, {}); + sfb(twe, "StackTraceCreator/Collector", 2058); + feb(876, 2058, {}, mA); + _.le = function nA(a) { + var b = {}; + var c = []; + a[xwe] = c; + var d = arguments.callee.caller; + while (d) { + var e = (fA(), d.name || (d.name = iA(d.toString()))); + c.push(e); + var f = ":" + e; + var g = b[f]; + if (g) { + var h, i; + for (h = 0, i = g.length; h < i; h++) { + if (g[h] === d) { + return; + } + } + } + (g || (b[f] = [])).push(d); + d = d.caller; + } + }; + _.me = function oA(a) { + var b, c, d, e; + d = (fA(), a && a[xwe] ? a[xwe] : []); + c = d.length; + e = $C(mJ, Nve, 319, c, 0, 1); + for (b = 0; b < c; b++) { + e[b] = new ehb(d[b], null, -1); + } + return e; + }; + sfb(twe, "StackTraceCreator/CollectorLegacy", 876); + feb(2059, 2058, {}); + _.le = function qA(a) { + }; + _.ne = function rA(a, b, c, d) { + return new ehb(b, a + "@" + d, c < 0 ? -1 : c); + }; + _.me = function sA(a) { + var b, c, d, e, f, g; + e = kA(a); + f = $C(mJ, Nve, 319, 0, 0, 1); + b = 0; + d = e.length; + if (d == 0) { + return f; + } + g = pA(this, e[0]); + lhb(g.d, wwe) || (f[b++] = g); + for (c = 1; c < d; c++) { + f[b++] = pA(this, e[c]); + } + return f; + }; + sfb(twe, "StackTraceCreator/CollectorModern", 2059); + feb(877, 2059, {}, tA); + _.ne = function uA(a, b, c, d) { + return new ehb(b, a, -1); + }; + sfb(twe, "StackTraceCreator/CollectorModernNoSourceMap", 877); + feb(1064, 1, {}); + sfb(Zwe, $we, 1064); + feb(624, 1064, { 624: 1 }, XA); + var VA; + sfb(_we, $we, 624); + feb(2101, 1, {}); + sfb(Zwe, axe, 2101); + feb(2102, 2101, {}); + sfb(_we, axe, 2102); + feb(1120, 1, {}, aB); + var ZA; + sfb(_we, "LocaleInfo", 1120); + feb(2027, 1, {}, dB); + _.a = 0; + sfb(_we, "TimeZone", 2027); + feb(1293, 2102, {}, jB); + sfb("com.google.gwt.i18n.client.impl.cldr", "DateTimeFormatInfoImpl", 1293); + feb(443, 1, { 443: 1 }, kB); + _.a = false; + _.b = 0; + sfb(Zwe, "DateTimeFormat/PatternPart", 443); + feb(206, 1, bxe, uB, vB, wB); + _.Fd = function xB(a) { + return lB(this, RD(a, 206)); + }; + _.Fb = function yB(a) { + return ZD(a, 206) && Gdb(Hdb(this.q.getTime()), Hdb(RD(a, 206).q.getTime())); + }; + _.Hb = function zB() { + var a; + a = Hdb(this.q.getTime()); + return Ydb($db(a, Udb(a, 32))); + }; + _.Ib = function BB() { + var a, b, c; + c = -this.q.getTimezoneOffset(); + a = (c >= 0 ? "+" : "") + (c / 60 | 0); + b = AB($wnd.Math.abs(c) % 60); + return (Mrb(), Krb)[this.q.getDay()] + " " + Lrb[this.q.getMonth()] + " " + AB(this.q.getDate()) + " " + AB(this.q.getHours()) + ":" + AB(this.q.getMinutes()) + ":" + AB(this.q.getSeconds()) + " GMT" + a + b + " " + this.q.getFullYear(); + }; + var qK = sfb(Bve, "Date", 206); + feb(2015, 206, bxe, DB); + _.a = false; + _.b = 0; + _.c = 0; + _.d = 0; + _.e = 0; + _.f = 0; + _.g = false; + _.i = 0; + _.j = 0; + _.k = 0; + _.n = 0; + _.o = 0; + _.p = 0; + sfb("com.google.gwt.i18n.shared.impl", "DateRecord", 2015); + feb(2064, 1, {}); + _.pe = function EB() { + return null; + }; + _.qe = function FB() { + return null; + }; + _.re = function GB() { + return null; + }; + _.se = function HB() { + return null; + }; + _.te = function IB() { + return null; + }; + sfb(cxe, "JSONValue", 2064); + feb(221, 2064, { 221: 1 }, MB, NB); + _.Fb = function OB(a) { + if (!ZD(a, 221)) { + return false; + } + return Hz(this.a, RD(a, 221).a); + }; + _.oe = function PB() { + return TB; + }; + _.Hb = function QB() { + return Iz(this.a); + }; + _.pe = function RB() { + return this; + }; + _.Ib = function SB() { + var a, b, c; + c = new dib("["); + for (b = 0, a = this.a.length; b < a; b++) { + b > 0 && (c.a += ",", c); + Yhb(c, JB(this, b)); + } + c.a += "]"; + return c.a; + }; + sfb(cxe, "JSONArray", 221); + feb(493, 2064, { 493: 1 }, XB); + _.oe = function YB() { + return _B; + }; + _.qe = function ZB() { + return this; + }; + _.Ib = function $B() { + return Geb(), "" + this.a; + }; + _.a = false; + var UB, VB; + sfb(cxe, "JSONBoolean", 493); + feb(997, 63, swe, aC); + sfb(cxe, "JSONException", 997); + feb(1036, 2064, {}, dC); + _.oe = function eC() { + return gC; + }; + _.Ib = function fC() { + return vve; + }; + var bC; + sfb(cxe, "JSONNull", 1036); + feb(263, 2064, { 263: 1 }, hC); + _.Fb = function iC(a) { + if (!ZD(a, 263)) { + return false; + } + return this.a == RD(a, 263).a; + }; + _.oe = function jC() { + return nC; + }; + _.Hb = function kC() { + return Nfb(this.a); + }; + _.re = function lC() { + return this; + }; + _.Ib = function mC() { + return this.a + ""; + }; + _.a = 0; + sfb(cxe, "JSONNumber", 263); + feb(190, 2064, { 190: 1 }, uC, vC); + _.Fb = function wC(a) { + if (!ZD(a, 190)) { + return false; + } + return Hz(this.a, RD(a, 190).a); + }; + _.oe = function xC() { + return BC; + }; + _.Hb = function yC() { + return Iz(this.a); + }; + _.se = function zC() { + return this; + }; + _.Ib = function AC() { + var a, b, c, d, e, f, g; + g = new dib("{"); + a = true; + f = oC(this, $C(qJ, Nve, 2, 0, 6, 1)); + for (c = f, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + a ? a = false : (g.a += pve, g); + Zhb(g, Lz(b)); + g.a += ":"; + Yhb(g, qC(this, b)); + } + g.a += "}"; + return g.a; + }; + sfb(cxe, "JSONObject", 190); + feb(605, Eve, Fve, CC); + _.Hc = function DC(a) { + return bE(a) && pC(this.a, WD(a)); + }; + _.Kc = function EC() { + return new Dkb(new mob(this.b)); + }; + _.gc = function FC() { + return this.b.length; + }; + sfb(cxe, "JSONObject/1", 605); + var GC; + feb(211, 2064, { 211: 1 }, OC); + _.Fb = function PC(a) { + if (!ZD(a, 211)) { + return false; + } + return lhb(this.a, RD(a, 211).a); + }; + _.oe = function QC() { + return UC; + }; + _.Hb = function RC() { + return ohb(this.a); + }; + _.te = function SC() { + return this; + }; + _.Ib = function TC() { + return Lz(this.a); + }; + sfb(cxe, "JSONString", 211); + var eD; + var ID, JD, KD, LD; + feb(2060, 1, { 533: 1 }); + sfb(kxe, "OutputStream", 2060); + feb(2061, 2060, { 533: 1 }); + sfb(kxe, "FilterOutputStream", 2061); + feb(878, 2061, { 533: 1 }, oeb); + sfb(kxe, "PrintStream", 878); + feb(427, 1, { 484: 1 }); + _.Ib = function seb() { + return this.a; + }; + sfb(mve, "AbstractStringBuilder", 427); + feb(538, 63, swe, teb); + sfb(mve, "ArithmeticException", 538); + feb(77, 63, lxe, ueb, veb); + sfb(mve, "IndexOutOfBoundsException", 77); + feb(333, 77, { 3: 1, 333: 1, 103: 1, 77: 1, 63: 1, 82: 1 }, web, xeb); + sfb(mve, "ArrayIndexOutOfBoundsException", 333); + feb(537, 63, swe, yeb, zeb); + sfb(mve, "ArrayStoreException", 537); + feb(296, 82, mxe, Aeb); + sfb(mve, "Error", 296); + feb(200, 296, mxe, Ceb, Deb); + sfb(mve, "AssertionError", 200); + ND = { 3: 1, 485: 1, 34: 1 }; + var Eeb, Feb; + var QI = sfb(mve, "Boolean", 485); + feb(242, 1, { 3: 1, 242: 1 }); + var Meb; + sfb(mve, "Number", 242); + feb(222, 242, { 3: 1, 222: 1, 34: 1, 242: 1 }, Seb); + _.Fd = function Teb(a) { + return Reb(this, RD(a, 222)); + }; + _.ue = function Ueb() { + return this.a; + }; + _.Fb = function Veb(a) { + return ZD(a, 222) && RD(a, 222).a == this.a; + }; + _.Hb = function Web() { + return this.a; + }; + _.Ib = function Xeb() { + return "" + this.a; + }; + _.a = 0; + var RI = sfb(mve, "Byte", 222); + var Yeb; + feb(180, 1, { 3: 1, 180: 1, 34: 1 }, bfb); + _.Fd = function cfb(a) { + return afb(this, RD(a, 180)); + }; + _.Fb = function efb(a) { + return ZD(a, 180) && RD(a, 180).a == this.a; + }; + _.Hb = function ffb() { + return this.a; + }; + _.Ib = function gfb() { + return String.fromCharCode(this.a); + }; + _.a = 0; + var _eb; + var SI = sfb(mve, "Character", 180); + var ifb; + feb(212, 63, { 3: 1, 212: 1, 103: 1, 63: 1, 82: 1 }, Hfb, Ifb); + sfb(mve, "ClassCastException", 212); + OD = { 3: 1, 34: 1, 345: 1, 242: 1 }; + var VI = sfb(mve, "Double", 345); + feb(161, 242, { 3: 1, 34: 1, 161: 1, 242: 1 }, Tfb, Ufb); + _.Fd = function Vfb(a) { + return Sfb(this, RD(a, 161)); + }; + _.ue = function Wfb() { + return this.a; + }; + _.Fb = function Xfb(a) { + return ZD(a, 161) && Lfb(this.a, RD(a, 161).a); + }; + _.Hb = function Yfb() { + return eE(this.a); + }; + _.Ib = function $fb() { + return "" + this.a; + }; + _.a = 0; + var ZI = sfb(mve, "Float", 161); + feb(33, 63, { 3: 1, 103: 1, 33: 1, 63: 1, 82: 1 }, _fb, agb, bgb); + sfb(mve, "IllegalArgumentException", 33); + feb(73, 63, swe, cgb, dgb); + sfb(mve, "IllegalStateException", 73); + feb(17, 242, { 3: 1, 34: 1, 17: 1, 242: 1 }, fgb); + _.Fd = function igb(a) { + return egb(this, RD(a, 17)); + }; + _.ue = function jgb() { + return this.a; + }; + _.Fb = function kgb(a) { + return ZD(a, 17) && RD(a, 17).a == this.a; + }; + _.Hb = function lgb() { + return this.a; + }; + _.Ib = function rgb() { + return "" + this.a; + }; + _.a = 0; + var bJ = sfb(mve, "Integer", 17); + var tgb; + var vgb; + feb(168, 242, { 3: 1, 34: 1, 168: 1, 242: 1 }, zgb); + _.Fd = function Bgb(a) { + return ygb(this, RD(a, 168)); + }; + _.ue = function Cgb() { + return Xdb(this.a); + }; + _.Fb = function Dgb(a) { + return ZD(a, 168) && Gdb(RD(a, 168).a, this.a); + }; + _.Hb = function Egb() { + return Fgb(this.a); + }; + _.Ib = function Ggb() { + return "" + Zdb(this.a); + }; + _.a = 0; + var eJ = sfb(mve, "Long", 168); + var Igb; + feb(2140, 1, {}); + feb(1904, 63, swe, Mgb); + sfb(mve, "NegativeArraySizeException", 1904); + feb(169, 607, { 3: 1, 103: 1, 169: 1, 63: 1, 82: 1 }, Ngb, Ogb); + _.ee = function Pgb(a) { + return new TypeError(a); + }; + sfb(mve, "NullPointerException", 169); + var Qgb, Rgb, Sgb, Tgb; + feb(130, 33, { 3: 1, 103: 1, 33: 1, 130: 1, 63: 1, 82: 1 }, Vgb); + sfb(mve, "NumberFormatException", 130); + feb(191, 242, { 3: 1, 34: 1, 242: 1, 191: 1 }, Xgb); + _.Fd = function Ygb(a) { + return Wgb(this, RD(a, 191)); + }; + _.ue = function Zgb() { + return this.a; + }; + _.Fb = function $gb(a) { + return ZD(a, 191) && RD(a, 191).a == this.a; + }; + _.Hb = function _gb() { + return this.a; + }; + _.Ib = function ahb() { + return "" + this.a; + }; + _.a = 0; + var lJ = sfb(mve, "Short", 191); + var chb; + feb(319, 1, { 3: 1, 319: 1 }, ehb); + _.Fb = function fhb(a) { + var b; + if (ZD(a, 319)) { + b = RD(a, 319); + return this.c == b.c && this.d == b.d && this.a == b.a && this.b == b.b; + } + return false; + }; + _.Hb = function ghb() { + return Tnb(cD(WC(jJ, 1), rve, 1, 5, [sgb(this.c), this.a, this.d, this.b])); + }; + _.Ib = function hhb() { + return this.a + "." + this.d + "(" + (this.b != null ? this.b : "Unknown Source") + (this.c >= 0 ? ":" + this.c : "") + ")"; + }; + _.c = 0; + var mJ = sfb(mve, "StackTraceElement", 319); + PD = { 3: 1, 484: 1, 34: 1, 2: 1 }; + var qJ = sfb(mve, uwe, 2); + feb(111, 427, { 484: 1 }, Qhb, Rhb, Shb); + sfb(mve, "StringBuffer", 111); + feb(104, 427, { 484: 1 }, bib, cib, dib); + sfb(mve, "StringBuilder", 104); + feb(702, 77, lxe, eib); + sfb(mve, "StringIndexOutOfBoundsException", 702); + feb(2145, 1, {}); + var fib; + feb(48, 63, { 3: 1, 103: 1, 63: 1, 82: 1, 48: 1 }, jib, kib); + sfb(mve, "UnsupportedOperationException", 48); + feb(247, 242, { 3: 1, 34: 1, 242: 1, 247: 1 }, Aib, Bib); + _.Fd = function Eib(a) { + return uib(this, RD(a, 247)); + }; + _.ue = function Fib() { + return Neb(zib(this)); + }; + _.Fb = function Gib(a) { + var b; + if (this === a) { + return true; + } + if (ZD(a, 247)) { + b = RD(a, 247); + return this.e == b.e && uib(this, b) == 0; + } + return false; + }; + _.Hb = function Hib() { + var a; + if (this.b != 0) { + return this.b; + } + if (this.a < 54) { + a = Hdb(this.f); + this.b = Ydb(Cdb(a, -1)); + this.b = 33 * this.b + Ydb(Cdb(Tdb(a, 32), -1)); + this.b = 17 * this.b + eE(this.e); + return this.b; + } + this.b = 17 * Vib(this.c) + eE(this.e); + return this.b; + }; + _.Ib = function Iib() { + return zib(this); + }; + _.a = 0; + _.b = 0; + _.d = 0; + _.e = 0; + _.f = 0; + var lib, mib, nib, oib, pib, qib, rib, sib; + var tJ = sfb("java.math", "BigDecimal", 247); + feb(92, 242, { 3: 1, 34: 1, 242: 1, 92: 1 }, ajb, bjb, cjb, djb, ejb); + _.Fd = function gjb(a) { + return Qib(this, RD(a, 92)); + }; + _.ue = function hjb() { + return Neb(Ajb(this, 0)); + }; + _.Fb = function ijb(a) { + return Sib(this, a); + }; + _.Hb = function ljb() { + return Vib(this); + }; + _.Ib = function njb() { + return Ajb(this, 0); + }; + _.b = -2; + _.c = 0; + _.d = 0; + _.e = 0; + var Jib, Kib, Lib, Mib, Nib, Oib; + var uJ = sfb("java.math", "BigInteger", 92); + var vjb, wjb; + var Jjb, Kjb; + feb(498, 2065, Cve); + _.$b = function dkb() { + akb(this); + }; + _._b = function ekb(a) { + return Ujb(this, a); + }; + _.uc = function fkb(a) { + return Vjb(this, a, this.i) || Vjb(this, a, this.f); + }; + _.vc = function gkb() { + return new mkb(this); + }; + _.xc = function hkb(a) { + return Wjb(this, a); + }; + _.zc = function ikb(a, b) { + return Zjb(this, a, b); + }; + _.Bc = function jkb(a) { + return _jb(this, a); + }; + _.gc = function kkb() { + return bkb(this); + }; + _.g = 0; + sfb(Bve, "AbstractHashMap", 498); + feb(267, Eve, Fve, mkb); + _.$b = function nkb() { + this.a.$b(); + }; + _.Hc = function okb(a) { + return lkb(this, a); + }; + _.Kc = function pkb() { + return new vkb(this.a); + }; + _.Mc = function qkb(a) { + var b; + if (lkb(this, a)) { + b = RD(a, 44).ld(); + this.a.Bc(b); + return true; + } + return false; + }; + _.gc = function rkb() { + return this.a.gc(); + }; + sfb(Bve, "AbstractHashMap/EntrySet", 267); + feb(268, 1, Ave, vkb); + _.Nb = function wkb(a) { + Ztb(this, a); + }; + _.Pb = function ykb() { + return tkb(this); + }; + _.Ob = function xkb() { + return this.b; + }; + _.Qb = function zkb() { + ukb(this); + }; + _.b = false; + _.d = 0; + sfb(Bve, "AbstractHashMap/EntrySetIterator", 268); + feb(426, 1, Ave, Dkb); + _.Nb = function Ekb(a) { + Ztb(this, a); + }; + _.Ob = function Fkb() { + return Akb(this); + }; + _.Pb = function Gkb() { + return Bkb(this); + }; + _.Qb = function Hkb() { + Ckb(this); + }; + _.b = 0; + _.c = -1; + sfb(Bve, "AbstractList/IteratorImpl", 426); + feb(98, 426, Jve, Jkb); + _.Qb = function Pkb() { + Ckb(this); + }; + _.Rb = function Kkb(a) { + Ikb(this, a); + }; + _.Sb = function Lkb() { + return this.b > 0; + }; + _.Tb = function Mkb() { + return this.b; + }; + _.Ub = function Nkb() { + return sFb(this.b > 0), this.a.Xb(this.c = --this.b); + }; + _.Vb = function Okb() { + return this.b - 1; + }; + _.Wb = function Qkb(a) { + yFb(this.c != -1); + this.a.hd(this.c, a); + }; + sfb(Bve, "AbstractList/ListIteratorImpl", 98); + feb(244, 56, kwe, Rkb); + _.bd = function Skb(a, b) { + wFb(a, this.b); + this.c.bd(this.a + a, b); + ++this.b; + }; + _.Xb = function Tkb(a) { + tFb(a, this.b); + return this.c.Xb(this.a + a); + }; + _.gd = function Ukb(a) { + var b; + tFb(a, this.b); + b = this.c.gd(this.a + a); + --this.b; + return b; + }; + _.hd = function Vkb(a, b) { + tFb(a, this.b); + return this.c.hd(this.a + a, b); + }; + _.gc = function Wkb() { + return this.b; + }; + _.a = 0; + _.b = 0; + sfb(Bve, "AbstractList/SubList", 244); + feb(266, Eve, Fve, Xkb); + _.$b = function Ykb() { + this.a.$b(); + }; + _.Hc = function Zkb(a) { + return this.a._b(a); + }; + _.Kc = function $kb() { + var a; + return a = this.a.vc().Kc(), new blb(a); + }; + _.Mc = function _kb(a) { + if (this.a._b(a)) { + this.a.Bc(a); + return true; + } + return false; + }; + _.gc = function alb() { + return this.a.gc(); + }; + sfb(Bve, "AbstractMap/1", 266); + feb(541, 1, Ave, blb); + _.Nb = function clb(a) { + Ztb(this, a); + }; + _.Ob = function dlb() { + return this.a.Ob(); + }; + _.Pb = function elb() { + var a; + return a = RD(this.a.Pb(), 44), a.ld(); + }; + _.Qb = function flb() { + this.a.Qb(); + }; + sfb(Bve, "AbstractMap/1/1", 541); + feb(231, 31, Dve, glb); + _.$b = function hlb() { + this.a.$b(); + }; + _.Hc = function ilb(a) { + return this.a.uc(a); + }; + _.Kc = function jlb() { + var a; + return a = this.a.vc().Kc(), new llb(a); + }; + _.gc = function klb() { + return this.a.gc(); + }; + sfb(Bve, "AbstractMap/2", 231); + feb(301, 1, Ave, llb); + _.Nb = function mlb(a) { + Ztb(this, a); + }; + _.Ob = function nlb() { + return this.a.Ob(); + }; + _.Pb = function olb() { + var a; + return a = RD(this.a.Pb(), 44), a.md(); + }; + _.Qb = function plb() { + this.a.Qb(); + }; + sfb(Bve, "AbstractMap/2/1", 301); + feb(494, 1, { 494: 1, 44: 1 }); + _.Fb = function rlb(a) { + var b; + if (!ZD(a, 44)) { + return false; + } + b = RD(a, 44); + return Fvb(this.d, b.ld()) && Fvb(this.e, b.md()); + }; + _.ld = function slb() { + return this.d; + }; + _.md = function tlb() { + return this.e; + }; + _.Hb = function ulb() { + return Gvb(this.d) ^ Gvb(this.e); + }; + _.nd = function vlb(a) { + return qlb(this, a); + }; + _.Ib = function wlb() { + return this.d + "=" + this.e; + }; + sfb(Bve, "AbstractMap/AbstractEntry", 494); + feb(397, 494, { 494: 1, 397: 1, 44: 1 }, xlb); + sfb(Bve, "AbstractMap/SimpleEntry", 397); + feb(2082, 1, Axe); + _.Fb = function ylb(a) { + var b; + if (!ZD(a, 44)) { + return false; + } + b = RD(a, 44); + return Fvb(this.ld(), b.ld()) && Fvb(this.md(), b.md()); + }; + _.Hb = function zlb() { + return Gvb(this.ld()) ^ Gvb(this.md()); + }; + _.Ib = function Alb() { + return this.ld() + "=" + this.md(); + }; + sfb(Bve, Lve, 2082); + feb(2090, 2065, Gve); + _.Xc = function Dlb(a) { + return Vd(this.Ee(a)); + }; + _.tc = function Elb(a) { + return Blb(this, a); + }; + _._b = function Flb(a) { + return Clb(this, a); + }; + _.vc = function Glb() { + return new Plb(this); + }; + _.Tc = function Hlb() { + return Klb(this.Ge()); + }; + _.Yc = function Ilb(a) { + return Vd(this.He(a)); + }; + _.xc = function Jlb(a) { + var b; + b = a; + return Wd(this.Fe(b)); + }; + _.$c = function Llb(a) { + return Vd(this.Ie(a)); + }; + _.ec = function Mlb() { + return new Ulb(this); + }; + _.Vc = function Nlb() { + return Klb(this.Je()); + }; + _._c = function Olb(a) { + return Vd(this.Ke(a)); + }; + sfb(Bve, "AbstractNavigableMap", 2090); + feb(629, Eve, Fve, Plb); + _.Hc = function Qlb(a) { + return ZD(a, 44) && Blb(this.b, RD(a, 44)); + }; + _.Kc = function Rlb() { + return this.b.De(); + }; + _.Mc = function Slb(a) { + var b; + if (ZD(a, 44)) { + b = RD(a, 44); + return this.b.Le(b); + } + return false; + }; + _.gc = function Tlb() { + return this.b.gc(); + }; + sfb(Bve, "AbstractNavigableMap/EntrySet", 629); + feb(1146, Eve, Ive, Ulb); + _.Nc = function $lb() { + return new $wb(this); + }; + _.$b = function Vlb() { + this.a.$b(); + }; + _.Hc = function Wlb(a) { + return Clb(this.a, a); + }; + _.Kc = function Xlb() { + var a; + a = this.a.vc().b.De(); + return new _lb(a); + }; + _.Mc = function Ylb(a) { + if (Clb(this.a, a)) { + this.a.Bc(a); + return true; + } + return false; + }; + _.gc = function Zlb() { + return this.a.gc(); + }; + sfb(Bve, "AbstractNavigableMap/NavigableKeySet", 1146); + feb(1147, 1, Ave, _lb); + _.Nb = function amb(a) { + Ztb(this, a); + }; + _.Ob = function bmb() { + return Akb(this.a.a); + }; + _.Pb = function cmb() { + var a; + a = vzb(this.a); + return a.ld(); + }; + _.Qb = function dmb() { + wzb(this.a); + }; + sfb(Bve, "AbstractNavigableMap/NavigableKeySet/1", 1147); + feb(2103, 31, Dve); + _.Fc = function emb(a) { + return zFb(lwb(this, a), Bxe), true; + }; + _.Gc = function fmb(a) { + uFb(a); + mFb(a != this, "Can't add a queue to itself"); + return ye(this, a); + }; + _.$b = function gmb() { + while (mwb(this) != null) + ; + }; + sfb(Bve, "AbstractQueue", 2103); + feb(310, 31, { 4: 1, 20: 1, 31: 1, 16: 1 }, wmb, xmb); + _.Fc = function ymb(a) { + return imb(this, a), true; + }; + _.$b = function Amb() { + jmb(this); + }; + _.Hc = function Bmb(a) { + return kmb(new Kmb(this), a); + }; + _.dc = function Cmb() { + return nmb(this); + }; + _.Kc = function Dmb() { + return new Kmb(this); + }; + _.Mc = function Emb(a) { + return qmb(new Kmb(this), a); + }; + _.gc = function Fmb() { + return this.c - this.b & this.a.length - 1; + }; + _.Nc = function Gmb() { + return new Swb(this, 272); + }; + _.Qc = function Hmb(a) { + var b; + b = this.c - this.b & this.a.length - 1; + a.length < b && (a = cFb(new Array(b), a)); + lmb(this, a, b); + a.length > b && bD(a, b, null); + return a; + }; + _.b = 0; + _.c = 0; + sfb(Bve, "ArrayDeque", 310); + feb(459, 1, Ave, Kmb); + _.Nb = function Lmb(a) { + Ztb(this, a); + }; + _.Ob = function Mmb() { + return this.a != this.b; + }; + _.Pb = function Nmb() { + return Imb(this); + }; + _.Qb = function Omb() { + Jmb(this); + }; + _.a = 0; + _.b = 0; + _.c = -1; + sfb(Bve, "ArrayDeque/IteratorImpl", 459); + feb(13, 56, Cxe, bnb, cnb, dnb); + _.bd = function enb(a, b) { + Qmb(this, a, b); + }; + _.Fc = function fnb(a) { + return Rmb(this, a); + }; + _.cd = function gnb(a, b) { + return Smb(this, a, b); + }; + _.Gc = function hnb(a) { + return Tmb(this, a); + }; + _.$b = function inb() { + aFb(this.c, 0); + }; + _.Hc = function jnb(a) { + return Wmb(this, a, 0) != -1; + }; + _.Jc = function knb(a) { + Umb(this, a); + }; + _.Xb = function lnb(a) { + return Vmb(this, a); + }; + _.dd = function mnb(a) { + return Wmb(this, a, 0); + }; + _.dc = function nnb() { + return this.c.length == 0; + }; + _.Kc = function onb() { + return new Anb(this); + }; + _.gd = function pnb(a) { + return Xmb(this, a); + }; + _.Mc = function qnb(a) { + return Ymb(this, a); + }; + _.ce = function rnb(a, b) { + Zmb(this, a, b); + }; + _.hd = function snb(a, b) { + return $mb(this, a, b); + }; + _.gc = function tnb() { + return this.c.length; + }; + _.jd = function unb(a) { + _mb(this, a); + }; + _.Pc = function vnb() { + return UEb(this.c); + }; + _.Qc = function wnb(a) { + return anb(this, a); + }; + var VJ = sfb(Bve, "ArrayList", 13); + feb(7, 1, Ave, Anb); + _.Nb = function Bnb(a) { + Ztb(this, a); + }; + _.Ob = function Cnb() { + return xnb(this); + }; + _.Pb = function Dnb() { + return ynb(this); + }; + _.Qb = function Enb() { + znb(this); + }; + _.a = 0; + _.b = -1; + sfb(Bve, "ArrayList/1", 7); + feb(2112, $wnd.Function, {}, iob); + _.Me = function job(a, b) { + return Qfb(a, b); + }; + feb(151, 56, Dxe, mob); + _.Hc = function nob(a) { + return St(this, a) != -1; + }; + _.Jc = function oob(a) { + var b, c, d, e; + uFb(a); + for (c = this.a, d = 0, e = c.length; d < e; ++d) { + b = c[d]; + a.Cd(b); + } + }; + _.Xb = function pob(a) { + return kob(this, a); + }; + _.hd = function qob(a, b) { + var c; + c = (tFb(a, this.a.length), this.a[a]); + bD(this.a, a, b); + return c; + }; + _.gc = function rob() { + return this.a.length; + }; + _.jd = function sob(a) { + Ynb(this.a, this.a.length, a); + }; + _.Pc = function tob() { + return lob(this, $C(jJ, rve, 1, this.a.length, 5, 1)); + }; + _.Qc = function uob(a) { + return lob(this, a); + }; + sfb(Bve, "Arrays/ArrayList", 151); + var vob, wob, xob; + feb(953, 56, Dxe, Job); + _.Hc = function Kob(a) { + return false; + }; + _.Xb = function Lob(a) { + return Iob(a); + }; + _.Kc = function Mob() { + return yob(), Qob(), Pob; + }; + _.ed = function Nob() { + return yob(), Qob(), Pob; + }; + _.gc = function Oob() { + return 0; + }; + sfb(Bve, "Collections/EmptyList", 953); + feb(954, 1, Jve, Rob); + _.Nb = function Tob(a) { + Ztb(this, a); + }; + _.Rb = function Sob(a) { + throw Adb(new jib()); + }; + _.Ob = function Uob() { + return false; + }; + _.Sb = function Vob() { + return false; + }; + _.Pb = function Wob() { + throw Adb(new Dvb()); + }; + _.Tb = function Xob() { + return 0; + }; + _.Ub = function Yob() { + throw Adb(new Dvb()); + }; + _.Vb = function Zob() { + return -1; + }; + _.Qb = function $ob() { + throw Adb(new cgb()); + }; + _.Wb = function _ob(a) { + throw Adb(new cgb()); + }; + var Pob; + sfb(Bve, "Collections/EmptyListIterator", 954); + feb(956, 2065, $ve, apb); + _._b = function bpb(a) { + return false; + }; + _.uc = function cpb(a) { + return false; + }; + _.vc = function dpb() { + return yob(), xob; + }; + _.xc = function epb(a) { + return null; + }; + _.ec = function fpb() { + return yob(), xob; + }; + _.gc = function gpb() { + return 0; + }; + _.Cc = function hpb() { + return yob(), vob; + }; + sfb(Bve, "Collections/EmptyMap", 956); + feb(955, Eve, awe, ipb); + _.Hc = function jpb(a) { + return false; + }; + _.Kc = function kpb() { + return yob(), Qob(), Pob; + }; + _.gc = function lpb() { + return 0; + }; + sfb(Bve, "Collections/EmptySet", 955); + feb(608, 56, { 3: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1 }, mpb); + _.Hc = function npb(a) { + return Fvb(this.a, a); + }; + _.Xb = function opb(a) { + tFb(a, 1); + return this.a; + }; + _.gc = function ppb() { + return 1; + }; + sfb(Bve, "Collections/SingletonList", 608); + feb(384, 1, Wve, xpb); + _.Jc = function Dpb(a) { + xgb(this, a); + }; + _.Lc = function Gpb() { + return new SDb(null, this.Nc()); + }; + _.Nc = function Jpb() { + return new Swb(this, 0); + }; + _.Oc = function Kpb() { + return new SDb(null, this.Nc()); + }; + _.Fc = function ypb(a) { + return qpb(); + }; + _.Gc = function zpb(a) { + return rpb(); + }; + _.$b = function Apb() { + spb(); + }; + _.Hc = function Bpb(a) { + return tpb(this, a); + }; + _.Ic = function Cpb(a) { + return upb(this, a); + }; + _.dc = function Epb() { + return this.b.dc(); + }; + _.Kc = function Fpb() { + return new Ppb(this.b.Kc()); + }; + _.Mc = function Hpb(a) { + return vpb(); + }; + _.gc = function Ipb() { + return this.b.gc(); + }; + _.Pc = function Lpb() { + return this.b.Pc(); + }; + _.Qc = function Mpb(a) { + return wpb(this, a); + }; + _.Ib = function Npb() { + return jeb(this.b); + }; + sfb(Bve, "Collections/UnmodifiableCollection", 384); + feb(383, 1, Ave, Ppb); + _.Nb = function Qpb(a) { + Ztb(this, a); + }; + _.Ob = function Rpb() { + return this.b.Ob(); + }; + _.Pb = function Spb() { + return this.b.Pb(); + }; + _.Qb = function Tpb() { + Opb(); + }; + sfb(Bve, "Collections/UnmodifiableCollectionIterator", 383); + feb(540, 384, Exe, Upb); + _.Nc = function fqb() { + return new Swb(this, 16); + }; + _.bd = function Vpb(a, b) { + throw Adb(new jib()); + }; + _.cd = function Wpb(a, b) { + throw Adb(new jib()); + }; + _.Fb = function Xpb(a) { + return pb(this.a, a); + }; + _.Xb = function Ypb(a) { + return this.a.Xb(a); + }; + _.Hb = function Zpb() { + return tb(this.a); + }; + _.dd = function $pb(a) { + return this.a.dd(a); + }; + _.dc = function _pb() { + return this.a.dc(); + }; + _.ed = function aqb() { + return new hqb(this.a.fd(0)); + }; + _.fd = function bqb(a) { + return new hqb(this.a.fd(a)); + }; + _.gd = function cqb(a) { + throw Adb(new jib()); + }; + _.hd = function dqb(a, b) { + throw Adb(new jib()); + }; + _.jd = function eqb(a) { + throw Adb(new jib()); + }; + _.kd = function gqb(a, b) { + return new Upb(this.a.kd(a, b)); + }; + sfb(Bve, "Collections/UnmodifiableList", 540); + feb(705, 383, Jve, hqb); + _.Qb = function nqb() { + Opb(); + }; + _.Rb = function iqb(a) { + throw Adb(new jib()); + }; + _.Sb = function jqb() { + return this.a.Sb(); + }; + _.Tb = function kqb() { + return this.a.Tb(); + }; + _.Ub = function lqb() { + return this.a.Ub(); + }; + _.Vb = function mqb() { + return this.a.Vb(); + }; + _.Wb = function oqb(a) { + throw Adb(new jib()); + }; + sfb(Bve, "Collections/UnmodifiableListIterator", 705); + feb(609, 1, Cve, uqb); + _.wc = function Aqb(a) { + Bvb(this, a); + }; + _.yc = function Fqb(a, b, c) { + return Cvb(this, a, b, c); + }; + _.$b = function vqb() { + throw Adb(new jib()); + }; + _._b = function wqb(a) { + return this.c._b(a); + }; + _.uc = function xqb(a) { + return pqb(this, a); + }; + _.vc = function yqb() { + return qqb(this); + }; + _.Fb = function zqb(a) { + return rqb(this, a); + }; + _.xc = function Bqb(a) { + return this.c.xc(a); + }; + _.Hb = function Cqb() { + return tb(this.c); + }; + _.dc = function Dqb() { + return this.c.dc(); + }; + _.ec = function Eqb() { + return sqb(this); + }; + _.zc = function Gqb(a, b) { + throw Adb(new jib()); + }; + _.Bc = function Hqb(a) { + throw Adb(new jib()); + }; + _.gc = function Iqb() { + return this.c.gc(); + }; + _.Ib = function Jqb() { + return jeb(this.c); + }; + _.Cc = function Kqb() { + return tqb(this); + }; + sfb(Bve, "Collections/UnmodifiableMap", 609); + feb(396, 384, _ve, Lqb); + _.Nc = function Oqb() { + return new Swb(this, 1); + }; + _.Fb = function Mqb(a) { + return pb(this.b, a); + }; + _.Hb = function Nqb() { + return tb(this.b); + }; + sfb(Bve, "Collections/UnmodifiableSet", 396); + feb(957, 396, _ve, Sqb); + _.Hc = function Tqb(a) { + return Pqb(this, a); + }; + _.Ic = function Uqb(a) { + return this.b.Ic(a); + }; + _.Kc = function Vqb() { + var a; + a = this.b.Kc(); + return new Yqb(a); + }; + _.Pc = function Wqb() { + var a; + a = this.b.Pc(); + Rqb(a, a.length); + return a; + }; + _.Qc = function Xqb(a) { + return Qqb(this, a); + }; + sfb(Bve, "Collections/UnmodifiableMap/UnmodifiableEntrySet", 957); + feb(958, 1, Ave, Yqb); + _.Nb = function Zqb(a) { + Ztb(this, a); + }; + _.Pb = function _qb() { + return new brb(RD(this.a.Pb(), 44)); + }; + _.Ob = function $qb() { + return this.a.Ob(); + }; + _.Qb = function arb() { + throw Adb(new jib()); + }; + sfb(Bve, "Collections/UnmodifiableMap/UnmodifiableEntrySet/1", 958); + feb(703, 1, Axe, brb); + _.Fb = function crb(a) { + return this.a.Fb(a); + }; + _.ld = function drb() { + return this.a.ld(); + }; + _.md = function erb() { + return this.a.md(); + }; + _.Hb = function frb() { + return this.a.Hb(); + }; + _.nd = function grb(a) { + throw Adb(new jib()); + }; + _.Ib = function hrb() { + return jeb(this.a); + }; + sfb(Bve, "Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry", 703); + feb(610, 540, { 20: 1, 16: 1, 15: 1, 59: 1 }, irb); + sfb(Bve, "Collections/UnmodifiableRandomAccessList", 610); + feb(704, 396, bwe, jrb); + _.Nc = function mrb() { + return new $wb(this); + }; + _.Fb = function krb(a) { + return pb(this.a, a); + }; + _.Hb = function lrb() { + return tb(this.a); + }; + sfb(Bve, "Collections/UnmodifiableSortedSet", 704); + feb(858, 1, Fxe, nrb); + _.Ne = function orb(a, b) { + var c; + return c = ygc(RD(a, 12), RD(b, 12)), c != 0 ? c : zgc(RD(a, 12), RD(b, 12)); + }; + _.Fb = function prb(a) { + return this === a; + }; + _.Oe = function qrb() { + return new Frb(this); + }; + sfb(Bve, "Comparator/lambda$0$Type", 858); + var rrb, srb, trb; + feb(769, 1, Fxe, wrb); + _.Ne = function xrb(a, b) { + return vrb(RD(a, 34), RD(b, 34)); + }; + _.Fb = function yrb(a) { + return this === a; + }; + _.Oe = function zrb() { + return urb(), trb; + }; + sfb(Bve, "Comparators/NaturalOrderComparator", 769); + feb(1226, 1, Fxe, Brb); + _.Ne = function Crb(a, b) { + return Arb(RD(a, 34), RD(b, 34)); + }; + _.Fb = function Drb(a) { + return this === a; + }; + _.Oe = function Erb() { + return urb(), srb; + }; + sfb(Bve, "Comparators/ReverseNaturalOrderComparator", 1226); + feb(52, 1, Fxe, Frb); + _.Fb = function Hrb(a) { + return this === a; + }; + _.Ne = function Grb(a, b) { + return this.a.Ne(b, a); + }; + _.Oe = function Irb() { + return this.a; + }; + sfb(Bve, "Comparators/ReversedComparator", 52); + feb(175, 63, swe, Jrb); + sfb(Bve, "ConcurrentModificationException", 175); + var Krb, Lrb; + feb(1948, 1, Gxe, Prb); + _.Pe = function Qrb(a) { + Nrb(this, a); + }; + _.Ib = function Rrb() { + return "DoubleSummaryStatistics[count = " + Zdb(this.a) + ", avg = " + (Idb(this.a, 0) ? Orb(this) / Xdb(this.a) : 0) + ", min = " + this.c + ", max = " + this.b + ", sum = " + Orb(this) + "]"; + }; + _.a = 0; + _.b = pxe; + _.c = oxe; + _.d = 0; + _.e = 0; + _.f = 0; + sfb(Bve, "DoubleSummaryStatistics", 1948); + feb(1868, 63, swe, Srb); + sfb(Bve, "EmptyStackException", 1868); + feb(461, 2065, Cve, Zrb); + _.zc = function dsb(a, b) { + return Xrb(this, a, b); + }; + _.$b = function $rb() { + Trb(this); + }; + _._b = function _rb(a) { + return Urb(this, a); + }; + _.uc = function asb(a) { + var b, c; + for (c = new Osb(this.a); c.a < c.c.a.length; ) { + b = Nsb(c); + if (Fvb(a, this.b[b.g])) { + return true; + } + } + return false; + }; + _.vc = function bsb() { + return new hsb(this); + }; + _.xc = function csb(a) { + return Vrb(this, a); + }; + _.Bc = function esb(a) { + return Yrb(this, a); + }; + _.gc = function fsb() { + return this.a.c; + }; + sfb(Bve, "EnumMap", 461); + feb(1340, Eve, Fve, hsb); + _.$b = function isb() { + Trb(this.a); + }; + _.Hc = function jsb(a) { + return gsb(this, a); + }; + _.Kc = function ksb() { + return new nsb(this.a); + }; + _.Mc = function lsb(a) { + var b; + if (gsb(this, a)) { + b = RD(a, 44).ld(); + Yrb(this.a, b); + return true; + } + return false; + }; + _.gc = function msb() { + return this.a.a.c; + }; + sfb(Bve, "EnumMap/EntrySet", 1340); + feb(1341, 1, Ave, nsb); + _.Nb = function osb(a) { + Ztb(this, a); + }; + _.Pb = function qsb() { + return this.b = Nsb(this.a), new ssb(this.c, this.b); + }; + _.Ob = function psb() { + return Msb(this.a); + }; + _.Qb = function rsb() { + yFb(!!this.b); + Yrb(this.c, this.b); + this.b = null; + }; + sfb(Bve, "EnumMap/EntrySetIterator", 1341); + feb(1342, 2082, Axe, ssb); + _.ld = function tsb() { + return this.a; + }; + _.md = function usb() { + return this.b.b[this.a.g]; + }; + _.nd = function vsb(a) { + return _Eb(this.b.b, this.a.g, a); + }; + sfb(Bve, "EnumMap/MapEntry", 1342); + feb(181, Eve, { 20: 1, 31: 1, 16: 1, 181: 1, 21: 1 }); + var zK = sfb(Bve, "EnumSet", 181); + feb(162, 181, { 20: 1, 31: 1, 16: 1, 181: 1, 162: 1, 21: 1 }, Fsb); + _.Fc = function Gsb(a) { + return zsb(this, RD(a, 22)); + }; + _.Hc = function Hsb(a) { + return Bsb(this, a); + }; + _.Kc = function Isb() { + return new Osb(this); + }; + _.Mc = function Jsb(a) { + return Dsb(this, a); + }; + _.gc = function Ksb() { + return this.c; + }; + _.c = 0; + sfb(Bve, "EnumSet/EnumSetImpl", 162); + feb(356, 1, Ave, Osb); + _.Nb = function Psb(a) { + Ztb(this, a); + }; + _.Pb = function Rsb() { + return Nsb(this); + }; + _.Ob = function Qsb() { + return Msb(this); + }; + _.Qb = function Ssb() { + yFb(this.b != -1); + bD(this.c.b, this.b, null); + --this.c.c; + this.b = -1; + }; + _.a = -1; + _.b = -1; + sfb(Bve, "EnumSet/EnumSetImpl/IteratorImpl", 356); + feb(45, 498, Hxe, Tsb, Usb, Vsb); + _.Be = function Wsb(a, b) { + return dE(a) === dE(b) || a != null && pb(a, b); + }; + _.Ce = function Xsb(a) { + var b; + if (a == null) { + return 0; + } + b = tb(a); + return b | 0; + }; + sfb(Bve, "HashMap", 45); + feb(49, Eve, Ixe, _sb, atb, btb); + _.Fc = function dtb(a) { + return Ysb(this, a); + }; + _.$b = function etb() { + this.a.$b(); + }; + _.Hc = function ftb(a) { + return Zsb(this, a); + }; + _.dc = function gtb() { + return this.a.gc() == 0; + }; + _.Kc = function htb() { + return this.a.ec().Kc(); + }; + _.Mc = function itb(a) { + return $sb(this, a); + }; + _.gc = function jtb() { + return this.a.gc(); + }; + var BK = sfb(Bve, "HashSet", 49); + feb(1897, 1, Rve, ltb); + _.Dd = function mtb(a) { + ktb(this, a); + }; + _.Ib = function ntb() { + return "IntSummaryStatistics[count = " + Zdb(this.a) + ", avg = " + (Idb(this.a, 0) ? Xdb(this.d) / Xdb(this.a) : 0) + ", min = " + this.c + ", max = " + this.b + ", sum = " + Zdb(this.d) + "]"; + }; + _.a = 0; + _.b = qwe; + _.c = lve; + _.d = 0; + sfb(Bve, "IntSummaryStatistics", 1897); + feb(1062, 1, Vve, ttb); + _.Jc = function utb(a) { + xgb(this, a); + }; + _.Kc = function vtb() { + return new wtb(this); + }; + _.c = 0; + sfb(Bve, "InternalHashCodeMap", 1062); + feb(726, 1, Ave, wtb); + _.Nb = function xtb(a) { + Ztb(this, a); + }; + _.Pb = function ztb() { + return this.d = this.a[this.c++], this.d; + }; + _.Ob = function ytb() { + var a; + if (this.c < this.a.length) { + return true; + } + a = this.b.next(); + if (!a.done) { + this.a = a.value[1]; + this.c = 0; + return true; + } + return false; + }; + _.Qb = function Atb() { + stb(this.e, this.d.ld()); + this.c != 0 && --this.c; + }; + _.c = 0; + _.d = null; + sfb(Bve, "InternalHashCodeMap/1", 726); + var Dtb; + feb(1060, 1, Vve, Ntb); + _.Jc = function Otb(a) { + xgb(this, a); + }; + _.Kc = function Ptb() { + return new Qtb(this); + }; + _.c = 0; + _.d = 0; + sfb(Bve, "InternalStringMap", 1060); + feb(725, 1, Ave, Qtb); + _.Nb = function Rtb(a) { + Ztb(this, a); + }; + _.Pb = function Ttb() { + return this.c = this.a, this.a = this.b.next(), new Vtb(this.d, this.c, this.d.d); + }; + _.Ob = function Stb() { + return !this.a.done; + }; + _.Qb = function Utb() { + Mtb(this.d, this.c.value[0]); + }; + sfb(Bve, "InternalStringMap/1", 725); + feb(1061, 2082, Axe, Vtb); + _.ld = function Wtb() { + return this.b.value[0]; + }; + _.md = function Xtb() { + if (this.a.d != this.c) { + return Ktb(this.a, this.b.value[0]); + } + return this.b.value[1]; + }; + _.nd = function Ytb(a) { + return Ltb(this.a, this.b.value[0], a); + }; + _.c = 0; + sfb(Bve, "InternalStringMap/2", 1061); + feb(215, 45, Hxe, gub, hub); + _.$b = function iub() { + aub(this); + }; + _._b = function jub(a) { + return bub(this, a); + }; + _.uc = function kub(a) { + var b; + b = this.d.a; + while (b != this.d) { + if (Fvb(b.e, a)) { + return true; + } + b = b.a; + } + return false; + }; + _.vc = function lub() { + return new wub(this); + }; + _.xc = function mub(a) { + return cub(this, a); + }; + _.zc = function nub(a, b) { + return dub(this, a, b); + }; + _.Bc = function oub(a) { + return fub(this, a); + }; + _.gc = function pub() { + return bkb(this.e); + }; + _.c = false; + sfb(Bve, "LinkedHashMap", 215); + feb(400, 397, { 494: 1, 397: 1, 400: 1, 44: 1 }, tub, uub); + sfb(Bve, "LinkedHashMap/ChainEntry", 400); + feb(715, Eve, Fve, wub); + _.$b = function xub() { + aub(this.a); + }; + _.Hc = function yub(a) { + return vub(this, a); + }; + _.Kc = function zub() { + return new Dub(this); + }; + _.Mc = function Aub(a) { + var b; + if (vub(this, a)) { + b = RD(a, 44).ld(); + fub(this.a, b); + return true; + } + return false; + }; + _.gc = function Bub() { + return bkb(this.a.e); + }; + sfb(Bve, "LinkedHashMap/EntrySet", 715); + feb(716, 1, Ave, Dub); + _.Nb = function Eub(a) { + Ztb(this, a); + }; + _.Pb = function Gub() { + return Cub(this); + }; + _.Ob = function Fub() { + return this.c != this.d.a.d; + }; + _.Qb = function Hub() { + yFb(!!this.a); + rFb(this.d.a.e.g, this.b); + rub(this.a); + _jb(this.d.a.e, this.a.d); + this.b = this.d.a.e.g; + this.a = null; + }; + _.b = 0; + sfb(Bve, "LinkedHashMap/EntrySet/EntryIterator", 716); + feb(174, 49, Ixe, Iub, Jub, Kub); + var MK = sfb(Bve, "LinkedHashSet", 174); + feb(67, 2062, { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 67: 1, 15: 1 }, Yub, Zub); + _.Fc = function $ub(a) { + return Mub(this, a); + }; + _.$b = function _ub() { + Xub(this); + }; + _.fd = function avb(a) { + return Sub(this, a); + }; + _.gc = function bvb() { + return this.b; + }; + _.b = 0; + var PK = sfb(Bve, "LinkedList", 67); + feb(981, 1, Jve, hvb); + _.Nb = function jvb(a) { + Ztb(this, a); + }; + _.Rb = function ivb(a) { + cvb(this, a); + }; + _.Ob = function kvb() { + return dvb(this); + }; + _.Sb = function lvb() { + return this.b.b != this.d.a; + }; + _.Pb = function mvb() { + return evb(this); + }; + _.Tb = function nvb() { + return this.a; + }; + _.Ub = function ovb() { + return fvb(this); + }; + _.Vb = function pvb() { + return this.a - 1; + }; + _.Qb = function qvb() { + gvb(this); + }; + _.Wb = function rvb(a) { + yFb(!!this.c); + this.c.c = a; + }; + _.a = 0; + _.c = null; + sfb(Bve, "LinkedList/ListIteratorImpl", 981); + feb(617, 1, {}, svb); + sfb(Bve, "LinkedList/Node", 617); + feb(2057, 1, {}); + var uvb, vvb; + sfb(Bve, "Locale", 2057); + feb(873, 2057, {}, xvb); + _.Ib = function yvb() { + return ""; + }; + sfb(Bve, "Locale/1", 873); + feb(874, 2057, {}, zvb); + _.Ib = function Avb() { + return "unknown"; + }; + sfb(Bve, "Locale/4", 874); + feb(112, 63, { 3: 1, 103: 1, 63: 1, 82: 1, 112: 1 }, Dvb, Evb); + sfb(Bve, "NoSuchElementException", 112); + feb(475, 1, { 475: 1 }, Ovb); + _.Fb = function Pvb(a) { + var b; + if (a === this) { + return true; + } + if (!ZD(a, 475)) { + return false; + } + b = RD(a, 475); + return Fvb(this.a, b.a); + }; + _.Hb = function Qvb() { + return Gvb(this.a); + }; + _.Ib = function Rvb() { + return this.a != null ? uve + Ghb(this.a) + ")" : "Optional.empty()"; + }; + var Jvb; + sfb(Bve, "Optional", 475); + feb(414, 1, { 414: 1 }, Xvb, Yvb); + _.Fb = function Zvb(a) { + var b; + if (a === this) { + return true; + } + if (!ZD(a, 414)) { + return false; + } + b = RD(a, 414); + return this.a == b.a && Qfb(this.b, b.b) == 0; + }; + _.Hb = function $vb() { + return this.a ? eE(this.b) : 0; + }; + _.Ib = function _vb() { + return this.a ? "OptionalDouble.of(" + ("" + this.b) + ")" : "OptionalDouble.empty()"; + }; + _.a = false; + _.b = 0; + var Svb; + sfb(Bve, "OptionalDouble", 414); + feb(524, 1, { 524: 1 }, dwb, ewb); + _.Fb = function fwb(a) { + var b; + if (a === this) { + return true; + } + if (!ZD(a, 524)) { + return false; + } + b = RD(a, 524); + return this.a == b.a && hgb(this.b, b.b) == 0; + }; + _.Hb = function gwb() { + return this.a ? this.b : 0; + }; + _.Ib = function hwb() { + return this.a ? "OptionalInt.of(" + ("" + this.b) + ")" : "OptionalInt.empty()"; + }; + _.a = false; + _.b = 0; + var awb; + sfb(Bve, "OptionalInt", 524); + feb(510, 2103, Dve, pwb); + _.Gc = function qwb(a) { + return iwb(this, a); + }; + _.$b = function rwb() { + aFb(this.b.c, 0); + }; + _.Hc = function swb(a) { + return (a == null ? -1 : Wmb(this.b, a, 0)) != -1; + }; + _.Kc = function twb() { + return new zwb(this); + }; + _.Mc = function uwb(a) { + return nwb(this, a); + }; + _.gc = function vwb() { + return this.b.c.length; + }; + _.Nc = function wwb() { + return new Swb(this, 256); + }; + _.Pc = function xwb() { + return UEb(this.b.c); + }; + _.Qc = function ywb(a) { + return anb(this.b, a); + }; + sfb(Bve, "PriorityQueue", 510); + feb(1296, 1, Ave, zwb); + _.Nb = function Awb(a) { + Ztb(this, a); + }; + _.Ob = function Bwb() { + return this.a < this.c.b.c.length; + }; + _.Pb = function Cwb() { + sFb(this.a < this.c.b.c.length); + this.b = this.a++; + return Vmb(this.c.b, this.b); + }; + _.Qb = function Dwb() { + yFb(this.b != -1); + owb(this.c, this.a = this.b); + this.b = -1; + }; + _.a = 0; + _.b = -1; + sfb(Bve, "PriorityQueue/1", 1296); + feb(234, 1, { 234: 1 }, Owb, Pwb); + _.a = 0; + _.b = 0; + var Ewb, Fwb, Gwb = 0; + sfb(Bve, "Random", 234); + feb(25, 1, Pve, Swb, Twb, Uwb); + _.Ad = function Ywb(a) { + return (this.a & a) != 0; + }; + _.yd = function Vwb() { + return this.a; + }; + _.zd = function Wwb() { + Qwb(this); + return this.c; + }; + _.Nb = function Xwb(a) { + Qwb(this); + this.d.Nb(a); + }; + _.Bd = function Zwb(a) { + return Rwb(this, a); + }; + _.a = 0; + _.c = 0; + sfb(Bve, "Spliterators/IteratorSpliterator", 25); + feb(495, 25, Pve, $wb); + sfb(Bve, "SortedSet/1", 495); + feb(611, 1, Gxe, axb); + _.Pe = function bxb(a) { + this.a.Cd(a); + }; + sfb(Bve, "Spliterator/OfDouble/0methodref$accept$Type", 611); + feb(612, 1, Gxe, cxb); + _.Pe = function dxb(a) { + this.a.Cd(a); + }; + sfb(Bve, "Spliterator/OfDouble/1methodref$accept$Type", 612); + feb(613, 1, Rve, exb); + _.Dd = function fxb(a) { + this.a.Cd(sgb(a)); + }; + sfb(Bve, "Spliterator/OfInt/2methodref$accept$Type", 613); + feb(614, 1, Rve, gxb); + _.Dd = function hxb(a) { + this.a.Cd(sgb(a)); + }; + sfb(Bve, "Spliterator/OfInt/3methodref$accept$Type", 614); + feb(625, 1, Pve); + _.Nb = function nxb(a) { + _wb(this, a); + }; + _.Ad = function oxb(a) { + return (this.d & a) != 0; + }; + _.yd = function lxb() { + return this.d; + }; + _.zd = function mxb() { + return this.e; + }; + _.d = 0; + _.e = 0; + sfb(Bve, "Spliterators/BaseSpliterator", 625); + feb(736, 625, Pve); + _.Qe = function qxb(a) { + ixb(this, a); + }; + _.Nb = function rxb(a) { + ZD(a, 189) ? ixb(this, RD(a, 189)) : ixb(this, new cxb(a)); + }; + _.Bd = function sxb(a) { + return ZD(a, 189) ? this.Re(RD(a, 189)) : this.Re(new axb(a)); + }; + sfb(Bve, "Spliterators/AbstractDoubleSpliterator", 736); + feb(735, 625, Pve); + _.Qe = function uxb(a) { + ixb(this, a); + }; + _.Nb = function vxb(a) { + ZD(a, 202) ? ixb(this, RD(a, 202)) : ixb(this, new gxb(a)); + }; + _.Bd = function wxb(a) { + return ZD(a, 202) ? this.Re(RD(a, 202)) : this.Re(new exb(a)); + }; + sfb(Bve, "Spliterators/AbstractIntSpliterator", 735); + feb(500, 625, Pve); + sfb(Bve, "Spliterators/AbstractSpliterator", 500); + feb(706, 1, Pve); + _.Nb = function Dxb(a) { + _wb(this, a); + }; + _.Ad = function Exb(a) { + return (this.b & a) != 0; + }; + _.yd = function Bxb() { + return this.b; + }; + _.zd = function Cxb() { + return this.d - this.c; + }; + _.b = 0; + _.c = 0; + _.d = 0; + sfb(Bve, "Spliterators/BaseArraySpliterator", 706); + feb(960, 706, Pve, Gxb); + _.Se = function Hxb(a, b) { + Fxb(this, RD(a, 41), b); + }; + _.Nb = function Ixb(a) { + yxb(this, a); + }; + _.Bd = function Jxb(a) { + return zxb(this, a); + }; + sfb(Bve, "Spliterators/ArraySpliterator", 960); + feb(707, 706, Pve, Lxb); + _.Se = function Nxb(a, b) { + Kxb(this, RD(a, 189), b); + }; + _.Qe = function Oxb(a) { + yxb(this, a); + }; + _.Nb = function Pxb(a) { + ZD(a, 189) ? yxb(this, RD(a, 189)) : yxb(this, new cxb(a)); + }; + _.Re = function Qxb(a) { + return zxb(this, a); + }; + _.Bd = function Rxb(a) { + return ZD(a, 189) ? zxb(this, RD(a, 189)) : zxb(this, new axb(a)); + }; + sfb(Bve, "Spliterators/DoubleArraySpliterator", 707); + feb(2066, 1, Pve); + _.Nb = function Wxb(a) { + _wb(this, a); + }; + _.Ad = function Xxb(a) { + return (16448 & a) != 0; + }; + _.yd = function Uxb() { + return 16448; + }; + _.zd = function Vxb() { + return 0; + }; + var Sxb; + sfb(Bve, "Spliterators/EmptySpliterator", 2066); + feb(959, 2066, Pve, $xb); + _.Qe = function _xb(a) { + Yxb(a); + }; + _.Nb = function ayb(a) { + ZD(a, 202) ? Yxb(RD(a, 202)) : Yxb(new gxb(a)); + }; + _.Re = function byb(a) { + return Zxb(a); + }; + _.Bd = function cyb(a) { + return ZD(a, 202) ? Zxb(RD(a, 202)) : Zxb(new exb(a)); + }; + sfb(Bve, "Spliterators/EmptySpliterator/OfInt", 959); + feb(588, 56, Rxe, gyb); + _.bd = function hyb(a, b) { + lyb(a, this.a.c.length + 1); + Qmb(this.a, a, b); + }; + _.Fc = function iyb(a) { + return Rmb(this.a, a); + }; + _.cd = function jyb(a, b) { + lyb(a, this.a.c.length + 1); + return Smb(this.a, a, b); + }; + _.Gc = function kyb(a) { + return Tmb(this.a, a); + }; + _.$b = function myb() { + aFb(this.a.c, 0); + }; + _.Hc = function nyb(a) { + return Wmb(this.a, a, 0) != -1; + }; + _.Ic = function oyb(a) { + return Be(this.a, a); + }; + _.Jc = function pyb(a) { + Umb(this.a, a); + }; + _.Xb = function qyb(a) { + return lyb(a, this.a.c.length), Vmb(this.a, a); + }; + _.dd = function ryb(a) { + return Wmb(this.a, a, 0); + }; + _.dc = function syb() { + return this.a.c.length == 0; + }; + _.Kc = function tyb() { + return new Anb(this.a); + }; + _.gd = function uyb(a) { + return lyb(a, this.a.c.length), Xmb(this.a, a); + }; + _.ce = function vyb(a, b) { + Zmb(this.a, a, b); + }; + _.hd = function wyb(a, b) { + return lyb(a, this.a.c.length), $mb(this.a, a, b); + }; + _.gc = function xyb() { + return this.a.c.length; + }; + _.jd = function yyb(a) { + _mb(this.a, a); + }; + _.kd = function zyb(a, b) { + return new Rkb(this.a, a, b); + }; + _.Pc = function Ayb() { + return UEb(this.a.c); + }; + _.Qc = function Byb(a) { + return anb(this.a, a); + }; + _.Ib = function Cyb() { + return Fe(this.a); + }; + sfb(Bve, "Vector", 588); + feb(824, 588, Rxe, Fyb); + sfb(Bve, "Stack", 824); + feb(213, 1, { 213: 1 }, Jyb); + _.Ib = function Kyb() { + return Iyb(this); + }; + sfb(Bve, "StringJoiner", 213); + feb(553, 2090, { 3: 1, 85: 1, 139: 1, 133: 1 }, dzb, ezb); + _.$b = function fzb() { + Lyb(this); + }; + _.De = function gzb() { + return new xzb(this); + }; + _.vc = function hzb() { + return new Dzb(this); + }; + _.Ee = function izb(a) { + return Pyb(this, a, true); + }; + _.Fe = function jzb(a) { + return Myb(this, a); + }; + _.Ge = function kzb() { + return Nyb(this); + }; + _.He = function lzb(a) { + return Qyb(this, a, true); + }; + _.Ie = function mzb(a) { + return Pyb(this, a, false); + }; + _.Je = function nzb() { + return Oyb(this); + }; + _.Ke = function ozb(a) { + return Qyb(this, a, false); + }; + _.Zc = function pzb(a, b) { + return Ryb(this, a, b); + }; + _.zc = function qzb(a, b) { + return Wyb(this, a, b); + }; + _.Bc = function rzb(a) { + return Xyb(this, a); + }; + _.Le = function szb(a) { + return Yyb(this, a); + }; + _.gc = function tzb() { + return this.c; + }; + _.ad = function uzb(a, b) { + return czb(this, a, b); + }; + _.c = 0; + sfb(Bve, "TreeMap", 553); + feb(554, 1, Ave, xzb, yzb); + _.Nb = function zzb(a) { + Ztb(this, a); + }; + _.Pb = function Bzb() { + return vzb(this); + }; + _.Ob = function Azb() { + return Akb(this.a); + }; + _.Qb = function Czb() { + wzb(this); + }; + sfb(Bve, "TreeMap/EntryIterator", 554); + feb(1142, 629, Fve, Dzb); + _.$b = function Ezb() { + Lyb(this.a); + }; + sfb(Bve, "TreeMap/EntrySet", 1142); + feb(447, 397, { 494: 1, 397: 1, 44: 1, 447: 1 }, Fzb); + _.b = false; + var vL = sfb(Bve, "TreeMap/Node", 447); + feb(630, 1, {}, Gzb); + _.Ib = function Hzb() { + return "State: mv=" + this.c + " value=" + this.d + " done=" + this.a + " found=" + this.b; + }; + _.a = false; + _.b = false; + _.c = false; + sfb(Bve, "TreeMap/State", 630); + feb(631, 2090, Gve, Kzb); + _.De = function Lzb() { + return new yzb(this.c, this.f, this.b, this.a, this.e, this.d); + }; + _.vc = function Mzb() { + return new Plb(this); + }; + _.Ee = function Nzb(a) { + return Izb(this, Pyb(this.c, a, true)); + }; + _.Fe = function Ozb(a) { + return Izb(this, Myb(this.c, a)); + }; + _.Ge = function Pzb() { + var a; + return this.f.Te() ? this.a ? a = Pyb(this.c, this.b, true) : a = Pyb(this.c, this.b, false) : a = Nyb(this.c), !!a && Jzb(this, a.d) ? a : null; + }; + _.He = function Qzb(a) { + return Izb(this, Qyb(this.c, a, true)); + }; + _.Ie = function Rzb(a) { + return Izb(this, Pyb(this.c, a, false)); + }; + _.Je = function Szb() { + var a; + this.f.Ue() ? this.d ? a = Qyb(this.c, this.e, true) : a = Qyb(this.c, this.e, false) : a = Oyb(this.c); + return !!a && Jzb(this, a.d) ? a : null; + }; + _.Ke = function Tzb(a) { + return Izb(this, Qyb(this.c, a, false)); + }; + _.Zc = function Uzb(a, b) { + if (this.f.Ue() && this.c.a.Ne(a, this.e) > 0) { + throw Adb(new agb(Sxe + a + " greater than " + this.e)); + } + return this.f.Te() ? bzb(this.c, this.b, this.a, a, b) : Ryb(this.c, a, b); + }; + _.zc = function Vzb(a, b) { + if (!Tyb(this.c, this.f, a, this.b, this.a, this.e, this.d)) { + throw Adb(new agb(a + " outside the range " + this.b + " to " + this.e)); + } + return Wyb(this.c, a, b); + }; + _.Bc = function Wzb(a) { + var b; + b = a; + if (!Tyb(this.c, this.f, b, this.b, this.a, this.e, this.d)) { + return null; + } + return Xyb(this.c, b); + }; + _.Le = function Xzb(a) { + return Jzb(this, a.ld()) && Yyb(this.c, a); + }; + _.gc = function Yzb() { + var a, b, c; + this.f.Te() ? this.a ? b = Pyb(this.c, this.b, true) : b = Pyb(this.c, this.b, false) : b = Nyb(this.c); + if (!(!!b && Jzb(this, b.d) ? b : null)) { + return 0; + } + a = 0; + for (c = new yzb(this.c, this.f, this.b, this.a, this.e, this.d); Akb(c.a); c.b = RD(Bkb(c.a), 44)) { + ++a; + } + return a; + }; + _.ad = function Zzb(a, b) { + if (this.f.Te() && this.c.a.Ne(a, this.b) < 0) { + throw Adb(new agb(Sxe + a + Txe + this.b)); + } + return this.f.Ue() ? bzb(this.c, a, b, this.e, this.d) : czb(this.c, a, b); + }; + _.a = false; + _.d = false; + sfb(Bve, "TreeMap/SubMap", 631); + feb(304, 22, Uxe, dAb); + _.Te = function eAb() { + return false; + }; + _.Ue = function fAb() { + return false; + }; + var $zb, _zb, aAb, bAb; + var AL = tfb(Bve, "TreeMap/SubMapType", 304, WI, hAb, gAb); + feb(1143, 304, Uxe, iAb); + _.Ue = function jAb() { + return true; + }; + tfb(Bve, "TreeMap/SubMapType/1", 1143, AL, null, null); + feb(1144, 304, Uxe, kAb); + _.Te = function lAb() { + return true; + }; + _.Ue = function mAb() { + return true; + }; + tfb(Bve, "TreeMap/SubMapType/2", 1144, AL, null, null); + feb(1145, 304, Uxe, nAb); + _.Te = function oAb() { + return true; + }; + tfb(Bve, "TreeMap/SubMapType/3", 1145, AL, null, null); + var pAb; + feb(157, Eve, { 3: 1, 20: 1, 31: 1, 16: 1, 277: 1, 21: 1, 87: 1, 157: 1 }, xAb, yAb, zAb); + _.Nc = function GAb() { + return new $wb(this); + }; + _.Fc = function AAb(a) { + return rAb(this, a); + }; + _.$b = function BAb() { + this.a.$b(); + }; + _.Hc = function CAb(a) { + return this.a._b(a); + }; + _.Kc = function DAb() { + return this.a.ec().Kc(); + }; + _.Mc = function EAb(a) { + return wAb(this, a); + }; + _.gc = function FAb() { + return this.a.gc(); + }; + var DL = sfb(Bve, "TreeSet", 157); + feb(1082, 1, {}, JAb); + _.Ve = function KAb(a, b) { + return HAb(this.a, a, b); + }; + sfb(Vxe, "BinaryOperator/lambda$0$Type", 1082); + feb(1083, 1, {}, LAb); + _.Ve = function MAb(a, b) { + return IAb(this.a, a, b); + }; + sfb(Vxe, "BinaryOperator/lambda$1$Type", 1083); + feb(952, 1, {}, NAb); + _.Kb = function OAb(a) { + return a; + }; + sfb(Vxe, "Function/lambda$0$Type", 952); + feb(395, 1, nwe, PAb); + _.Mb = function QAb(a) { + return !this.a.Mb(a); + }; + sfb(Vxe, "Predicate/lambda$2$Type", 395); + feb(581, 1, { 581: 1 }); + var JL = sfb(Wxe, "Handler", 581); + feb(2107, 1, nve); + _.xe = function TAb() { + return "DUMMY"; + }; + _.Ib = function UAb() { + return this.xe(); + }; + var RAb; + sfb(Wxe, "Level", 2107); + feb(1706, 2107, nve, VAb); + _.xe = function WAb() { + return "INFO"; + }; + sfb(Wxe, "Level/LevelInfo", 1706); + feb(1843, 1, {}, $Ab); + var XAb; + sfb(Wxe, "LogManager", 1843); + feb(1896, 1, nve, aBb); + _.b = null; + sfb(Wxe, "LogRecord", 1896); + feb(525, 1, { 525: 1 }, oBb); + _.e = false; + var bBb = false, cBb = false, dBb = false, eBb = false, fBb = false; + sfb(Wxe, "Logger", 525); + feb(835, 581, { 581: 1 }, rBb); + sfb(Wxe, "SimpleConsoleLogHandler", 835); + feb(108, 22, { 3: 1, 34: 1, 22: 1, 108: 1 }, yBb); + var uBb, vBb, wBb; + var QL = tfb(Zxe, "Collector/Characteristics", 108, WI, ABb, zBb); + var BBb; + feb(758, 1, {}, DBb); + sfb(Zxe, "CollectorImpl", 758); + feb(1074, 1, {}, RBb); + _.Ve = function SBb(a, b) { + return Hyb(RD(a, 213), RD(b, 213)); + }; + sfb(Zxe, "Collectors/10methodref$merge$Type", 1074); + feb(1075, 1, {}, TBb); + _.Kb = function UBb(a) { + return Iyb(RD(a, 213)); + }; + sfb(Zxe, "Collectors/11methodref$toString$Type", 1075); + feb(1076, 1, {}, VBb); + _.Kb = function WBb(a) { + return Geb(), SSb(a) ? true : false; + }; + sfb(Zxe, "Collectors/12methodref$test$Type", 1076); + feb(144, 1, {}, XBb); + _.Yd = function YBb(a, b) { + RD(a, 16).Fc(b); + }; + sfb(Zxe, "Collectors/20methodref$add$Type", 144); + feb(146, 1, {}, ZBb); + _.Xe = function $Bb() { + return new bnb(); + }; + sfb(Zxe, "Collectors/21methodref$ctor$Type", 146); + feb(359, 1, {}, _Bb); + _.Xe = function aCb() { + return new _sb(); + }; + sfb(Zxe, "Collectors/23methodref$ctor$Type", 359); + feb(360, 1, {}, bCb); + _.Yd = function cCb(a, b) { + Ysb(RD(a, 49), b); + }; + sfb(Zxe, "Collectors/24methodref$add$Type", 360); + feb(1069, 1, {}, dCb); + _.Ve = function eCb(a, b) { + return EBb(RD(a, 15), RD(b, 16)); + }; + sfb(Zxe, "Collectors/4methodref$addAll$Type", 1069); + feb(1073, 1, {}, fCb); + _.Yd = function gCb(a, b) { + Gyb(RD(a, 213), RD(b, 484)); + }; + sfb(Zxe, "Collectors/9methodref$add$Type", 1073); + feb(1072, 1, {}, hCb); + _.Xe = function iCb() { + return new Jyb(this.a, this.b, this.c); + }; + sfb(Zxe, "Collectors/lambda$15$Type", 1072); + feb(1077, 1, {}, jCb); + _.Xe = function kCb() { + var a; + return a = new gub(), dub(a, (Geb(), false), new bnb()), dub(a, true, new bnb()), a; + }; + sfb(Zxe, "Collectors/lambda$22$Type", 1077); + feb(1078, 1, {}, lCb); + _.Xe = function mCb() { + return cD(WC(jJ, 1), rve, 1, 5, [this.a]); + }; + sfb(Zxe, "Collectors/lambda$25$Type", 1078); + feb(1079, 1, {}, nCb); + _.Yd = function oCb(a, b) { + GBb(this.a, SD(a)); + }; + sfb(Zxe, "Collectors/lambda$26$Type", 1079); + feb(1080, 1, {}, pCb); + _.Ve = function qCb(a, b) { + return HBb(this.a, SD(a), SD(b)); + }; + sfb(Zxe, "Collectors/lambda$27$Type", 1080); + feb(1081, 1, {}, rCb); + _.Kb = function sCb(a) { + return SD(a)[0]; + }; + sfb(Zxe, "Collectors/lambda$28$Type", 1081); + feb(728, 1, {}, uCb); + _.Ve = function vCb(a, b) { + return tCb(a, b); + }; + sfb(Zxe, "Collectors/lambda$4$Type", 728); + feb(145, 1, {}, wCb); + _.Ve = function xCb(a, b) { + return JBb(RD(a, 16), RD(b, 16)); + }; + sfb(Zxe, "Collectors/lambda$42$Type", 145); + feb(361, 1, {}, yCb); + _.Ve = function zCb(a, b) { + return KBb(RD(a, 49), RD(b, 49)); + }; + sfb(Zxe, "Collectors/lambda$50$Type", 361); + feb(362, 1, {}, ACb); + _.Kb = function BCb(a) { + return RD(a, 49); + }; + sfb(Zxe, "Collectors/lambda$51$Type", 362); + feb(1068, 1, {}, CCb); + _.Yd = function DCb(a, b) { + LBb(this.a, RD(a, 85), b); + }; + sfb(Zxe, "Collectors/lambda$7$Type", 1068); + feb(1070, 1, {}, ECb); + _.Ve = function FCb(a, b) { + return NBb(RD(a, 85), RD(b, 85), new dCb()); + }; + sfb(Zxe, "Collectors/lambda$8$Type", 1070); + feb(1071, 1, {}, GCb); + _.Kb = function HCb(a) { + return MBb(this.a, RD(a, 85)); + }; + sfb(Zxe, "Collectors/lambda$9$Type", 1071); + feb(550, 1, {}); + _.$e = function OCb() { + ICb(this); + }; + _.d = false; + sfb(Zxe, "TerminatableStream", 550); + feb(827, 550, $xe, WCb); + _.$e = function XCb() { + ICb(this); + }; + sfb(Zxe, "DoubleStreamImpl", 827); + feb(1847, 736, Pve, $Cb); + _.Re = function aDb(a) { + return ZCb(this, RD(a, 189)); + }; + _.a = null; + sfb(Zxe, "DoubleStreamImpl/2", 1847); + feb(1848, 1, Gxe, bDb); + _.Pe = function cDb(a) { + _Cb(this.a, a); + }; + sfb(Zxe, "DoubleStreamImpl/2/lambda$0$Type", 1848); + feb(1845, 1, Gxe, dDb); + _.Pe = function eDb(a) { + YCb(this.a, a); + }; + sfb(Zxe, "DoubleStreamImpl/lambda$0$Type", 1845); + feb(1846, 1, Gxe, fDb); + _.Pe = function gDb(a) { + Nrb(this.a, a); + }; + sfb(Zxe, "DoubleStreamImpl/lambda$2$Type", 1846); + feb(1397, 735, Pve, kDb); + _.Re = function lDb(a) { + return jDb(this, RD(a, 202)); + }; + _.a = 0; + _.b = 0; + _.c = 0; + sfb(Zxe, "IntStream/5", 1397); + feb(806, 550, $xe, oDb); + _.$e = function pDb() { + ICb(this); + }; + _._e = function qDb() { + return LCb(this), this.a; + }; + sfb(Zxe, "IntStreamImpl", 806); + feb(807, 550, $xe, rDb); + _.$e = function sDb() { + ICb(this); + }; + _._e = function tDb() { + return LCb(this), Txb(), Sxb; + }; + sfb(Zxe, "IntStreamImpl/Empty", 807); + feb(1687, 1, Rve, uDb); + _.Dd = function vDb(a) { + ktb(this.a, a); + }; + sfb(Zxe, "IntStreamImpl/lambda$4$Type", 1687); + var RM = ufb(Zxe, "Stream"); + feb(26, 550, { 533: 1, 687: 1, 848: 1 }, SDb); + _.$e = function TDb() { + ICb(this); + }; + var wDb; + sfb(Zxe, "StreamImpl", 26); + feb(1102, 500, Pve, YDb); + _.Bd = function ZDb(a) { + while (WDb(this)) { + if (this.a.Bd(a)) { + return true; + } else { + ICb(this.b); + this.b = null; + this.a = null; + } + } + return false; + }; + sfb(Zxe, "StreamImpl/1", 1102); + feb(1103, 1, Qve, $Db); + _.Cd = function _Db(a) { + XDb(this.a, RD(a, 848)); + }; + sfb(Zxe, "StreamImpl/1/lambda$0$Type", 1103); + feb(1104, 1, nwe, aEb); + _.Mb = function bEb(a) { + return Ysb(this.a, a); + }; + sfb(Zxe, "StreamImpl/1methodref$add$Type", 1104); + feb(1105, 500, Pve, cEb); + _.Bd = function dEb(a) { + var b; + if (!this.a) { + b = new bnb(); + this.b.a.Nb(new eEb(b)); + yob(); + _mb(b, this.c); + this.a = new Swb(b, 16); + } + return Rwb(this.a, a); + }; + _.a = null; + sfb(Zxe, "StreamImpl/5", 1105); + feb(1106, 1, Qve, eEb); + _.Cd = function fEb(a) { + Rmb(this.a, a); + }; + sfb(Zxe, "StreamImpl/5/2methodref$add$Type", 1106); + feb(737, 500, Pve, hEb); + _.Bd = function iEb(a) { + this.b = false; + while (!this.b && this.c.Bd(new jEb(this, a))) + ; + return this.b; + }; + _.b = false; + sfb(Zxe, "StreamImpl/FilterSpliterator", 737); + feb(1096, 1, Qve, jEb); + _.Cd = function kEb(a) { + gEb(this.a, this.b, a); + }; + sfb(Zxe, "StreamImpl/FilterSpliterator/lambda$0$Type", 1096); + feb(1091, 736, Pve, nEb); + _.Re = function oEb(a) { + return mEb(this, RD(a, 189)); + }; + sfb(Zxe, "StreamImpl/MapToDoubleSpliterator", 1091); + feb(1095, 1, Qve, pEb); + _.Cd = function qEb(a) { + lEb(this.a, this.b, a); + }; + sfb(Zxe, "StreamImpl/MapToDoubleSpliterator/lambda$0$Type", 1095); + feb(1090, 735, Pve, tEb); + _.Re = function uEb(a) { + return sEb(this, RD(a, 202)); + }; + sfb(Zxe, "StreamImpl/MapToIntSpliterator", 1090); + feb(1094, 1, Qve, vEb); + _.Cd = function wEb(a) { + rEb(this.a, this.b, a); + }; + sfb(Zxe, "StreamImpl/MapToIntSpliterator/lambda$0$Type", 1094); + feb(734, 500, Pve, zEb); + _.Bd = function AEb(a) { + return yEb(this, a); + }; + sfb(Zxe, "StreamImpl/MapToObjSpliterator", 734); + feb(1093, 1, Qve, BEb); + _.Cd = function CEb(a) { + xEb(this.a, this.b, a); + }; + sfb(Zxe, "StreamImpl/MapToObjSpliterator/lambda$0$Type", 1093); + feb(1092, 500, Pve, DEb); + _.Bd = function EEb(a) { + while (Idb(this.b, 0)) { + if (!this.a.Bd(new FEb())) { + return false; + } + this.b = Vdb(this.b, 1); + } + return this.a.Bd(a); + }; + _.b = 0; + sfb(Zxe, "StreamImpl/SkipSpliterator", 1092); + feb(1097, 1, Qve, FEb); + _.Cd = function GEb(a) { + }; + sfb(Zxe, "StreamImpl/SkipSpliterator/lambda$0$Type", 1097); + feb(626, 1, Qve, IEb); + _.Cd = function JEb(a) { + HEb(this, a); + }; + sfb(Zxe, "StreamImpl/ValueConsumer", 626); + feb(1098, 1, Qve, KEb); + _.Cd = function LEb(a) { + xDb(); + }; + sfb(Zxe, "StreamImpl/lambda$0$Type", 1098); + feb(1099, 1, Qve, MEb); + _.Cd = function NEb(a) { + xDb(); + }; + sfb(Zxe, "StreamImpl/lambda$1$Type", 1099); + feb(1100, 1, {}, OEb); + _.Ve = function PEb(a, b) { + return UDb(this.a, a, b); + }; + sfb(Zxe, "StreamImpl/lambda$4$Type", 1100); + feb(1101, 1, Qve, QEb); + _.Cd = function REb(a) { + VDb(this.b, this.a, a); + }; + sfb(Zxe, "StreamImpl/lambda$5$Type", 1101); + feb(1107, 1, Qve, SEb); + _.Cd = function TEb(a) { + PCb(this.a, RD(a, 380)); + }; + sfb(Zxe, "TerminatableStream/lambda$0$Type", 1107); + feb(2142, 1, {}); + feb(2014, 1, {}, gFb); + sfb("javaemul.internal", "ConsoleLogger", 2014); + var iFb = 0; + feb(2134, 1, {}); + feb(1830, 1, Qve, FFb); + _.Cd = function GFb(a) { + RD(a, 317); + }; + sfb(eye, "BowyerWatsonTriangulation/lambda$0$Type", 1830); + feb(1831, 1, Qve, HFb); + _.Cd = function IFb(a) { + ye(this.a, RD(a, 317).e); + }; + sfb(eye, "BowyerWatsonTriangulation/lambda$1$Type", 1831); + feb(1832, 1, Qve, JFb); + _.Cd = function KFb(a) { + RD(a, 177); + }; + sfb(eye, "BowyerWatsonTriangulation/lambda$2$Type", 1832); + feb(1827, 1, fye, NFb); + _.Ne = function OFb(a, b) { + return MFb(this.a, RD(a, 177), RD(b, 177)); + }; + _.Fb = function PFb(a) { + return this === a; + }; + _.Oe = function QFb() { + return new Frb(this); + }; + sfb(eye, "NaiveMinST/lambda$0$Type", 1827); + feb(449, 1, {}, SFb); + sfb(eye, "NodeMicroLayout", 449); + feb(177, 1, { 177: 1 }, TFb); + _.Fb = function UFb(a) { + var b; + if (ZD(a, 177)) { + b = RD(a, 177); + return Fvb(this.a, b.a) && Fvb(this.b, b.b) || Fvb(this.a, b.b) && Fvb(this.b, b.a); + } else { + return false; + } + }; + _.Hb = function VFb() { + return Gvb(this.a) + Gvb(this.b); + }; + var $M = sfb(eye, "TEdge", 177); + feb(317, 1, { 317: 1 }, XFb); + _.Fb = function YFb(a) { + var b; + if (ZD(a, 317)) { + b = RD(a, 317); + return WFb(this, b.a) && WFb(this, b.b) && WFb(this, b.c); + } else { + return false; + } + }; + _.Hb = function ZFb() { + return Gvb(this.a) + Gvb(this.b) + Gvb(this.c); + }; + sfb(eye, "TTriangle", 317); + feb(225, 1, { 225: 1 }, $Fb); + sfb(eye, "Tree", 225); + feb(1218, 1, {}, aGb); + sfb(gye, "Scanline", 1218); + var bN = ufb(gye, hye); + feb(1758, 1, {}, dGb); + sfb(iye, "CGraph", 1758); + feb(316, 1, { 316: 1 }, fGb); + _.b = 0; + _.c = 0; + _.d = 0; + _.g = 0; + _.i = 0; + _.k = pxe; + sfb(iye, "CGroup", 316); + feb(830, 1, {}, jGb); + sfb(iye, "CGroup/CGroupBuilder", 830); + feb(60, 1, { 60: 1 }, kGb); + _.Ib = function lGb() { + var a; + if (this.j) { + return WD(this.j.Kb(this)); + } + return lfb(hN), hN.o + "@" + (a = kFb(this) >>> 0, a.toString(16)); + }; + _.f = 0; + _.i = pxe; + var hN = sfb(iye, "CNode", 60); + feb(829, 1, {}, qGb); + sfb(iye, "CNode/CNodeBuilder", 829); + var vGb; + feb(1590, 1, {}, xGb); + _.ff = function yGb(a, b) { + return 0; + }; + _.gf = function zGb(a, b) { + return 0; + }; + sfb(iye, kye, 1590); + feb(1853, 1, {}, AGb); + _.cf = function BGb(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p; + j = oxe; + for (d = new Anb(a.a.b); d.a < d.c.c.length; ) { + b = RD(ynb(d), 60); + j = $wnd.Math.min(j, b.a.j.d.c + b.b.a); + } + n = new Yub(); + for (g = new Anb(a.a.a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 316); + f.k = j; + f.g == 0 && (Pub(n, f, n.c.b, n.c), true); + } + while (n.b != 0) { + f = RD(n.b == 0 ? null : (sFb(n.b != 0), Wub(n, n.a.a)), 316); + e = f.j.d.c; + for (m = f.a.a.ec().Kc(); m.Ob(); ) { + k = RD(m.Pb(), 60); + p = f.k + k.b.a; + !LGb(a, f, a.d) || k.d.c < p ? k.i = p : k.i = k.d.c; + } + e -= f.j.i; + f.b += e; + a.d == (Cmd(), zmd) || a.d == xmd ? f.c += e : f.c -= e; + for (l = f.a.a.ec().Kc(); l.Ob(); ) { + k = RD(l.Pb(), 60); + for (i = k.c.Kc(); i.Ob(); ) { + h = RD(i.Pb(), 60); + Dmd(a.d) ? o2 = a.g.ff(k, h) : o2 = a.g.gf(k, h); + h.a.k = $wnd.Math.max(h.a.k, k.i + k.d.b + o2 - h.b.a); + MGb(a, h, a.d) && (h.a.k = $wnd.Math.max(h.a.k, h.d.c - h.b.a)); + --h.a.g; + h.a.g == 0 && Mub(n, h.a); + } + } + } + for (c = new Anb(a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 60); + b.d.c = b.i; + } + }; + sfb(iye, "LongestPathCompaction", 1853); + feb(1756, 1, {}, VGb); + _.e = false; + var CGb, DGb, EGb; + var lN = sfb(iye, pye, 1756); + feb(1757, 1, Qve, WGb); + _.Cd = function XGb(a) { + NGb(this.a, RD(a, 42)); + }; + sfb(iye, qye, 1757); + feb(1854, 1, {}, YGb); + _.df = function ZGb(a) { + var b, c, d, e, f, g, h; + for (c = new Anb(a.a.b); c.a < c.c.c.length; ) { + b = RD(ynb(c), 60); + b.c.$b(); + } + for (e = new Anb(a.a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 60); + for (g = new Anb(a.a.b); g.a < g.c.c.length; ) { + f = RD(ynb(g), 60); + if (d == f) { + continue; + } + if (!!d.a && d.a == f.a) { + continue; + } + Dmd(a.d) ? h = a.g.gf(d, f) : h = a.g.ff(d, f); + (f.d.c > d.d.c || d.d.c == f.d.c && d.d.b < f.d.b) && sGb(f.d.d + f.d.a + h, d.d.d) && uGb(f.d.d, d.d.d + d.d.a + h) && d.c.Fc(f); + } + } + }; + sfb(iye, "QuadraticConstraintCalculation", 1854); + feb(529, 1, { 529: 1 }, cHb); + _.a = false; + _.b = false; + _.c = false; + _.d = false; + sfb(iye, rye, 529); + feb(817, 1, {}, fHb); + _.df = function gHb(a) { + this.c = a; + eHb(this, new xHb()); + }; + sfb(iye, sye, 817); + feb(1784, 1, { 693: 1 }, lHb); + _.bf = function mHb(a) { + iHb(this, RD(a, 473)); + }; + sfb(iye, tye, 1784); + feb(1785, 1, fye, oHb); + _.Ne = function pHb(a, b) { + return nHb(RD(a, 60), RD(b, 60)); + }; + _.Fb = function qHb(a) { + return this === a; + }; + _.Oe = function rHb() { + return new Frb(this); + }; + sfb(iye, uye, 1785); + feb(473, 1, { 473: 1 }, sHb); + _.a = false; + sfb(iye, vye, 473); + feb(1786, 1, fye, tHb); + _.Ne = function uHb(a, b) { + return hHb(RD(a, 473), RD(b, 473)); + }; + _.Fb = function vHb(a) { + return this === a; + }; + _.Oe = function wHb() { + return new Frb(this); + }; + sfb(iye, wye, 1786); + feb(1787, 1, xye, xHb); + _.Lb = function yHb(a) { + return RD(a, 60), true; + }; + _.Fb = function zHb(a) { + return this === a; + }; + _.Mb = function AHb(a) { + return RD(a, 60), true; + }; + sfb(iye, "ScanlineConstraintCalculator/lambda$1$Type", 1787); + feb(436, 22, { 3: 1, 34: 1, 22: 1, 436: 1 }, EHb); + var BHb, CHb; + var uN = tfb(yye, "HighLevelSortingCriterion", 436, WI, GHb, FHb); + var HHb; + feb(435, 22, { 3: 1, 34: 1, 22: 1, 435: 1 }, MHb); + var JHb, KHb; + var vN = tfb(yye, "LowLevelSortingCriterion", 435, WI, OHb, NHb); + var PHb; + var B2 = ufb(zye, "ILayoutMetaDataProvider"); + feb(864, 1, Eye, ZHb); + _.hf = function $Hb(a) { + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), Aye), Fye), "Polyomino Traversal Strategy"), "Traversal strategy for trying different candidate positions for polyominoes."), XHb), (kid(), eid)), xN), xsb((Yhd(), Whd))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), Bye), Fye), "Polyomino Secondary Sorting Criterion"), "Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion."), VHb), eid), vN), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), Cye), Fye), "Polyomino Primary Sorting Criterion"), "Possible primary sorting criteria for the processing order of polyominoes."), THb), eid), uN), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), Dye), Fye), "Fill Polyominoes"), "Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area."), (Geb(), true)), cid), QI), xsb(Whd)))); + }; + var RHb, SHb, THb, UHb, VHb, WHb, XHb; + sfb(yye, "PolyominoOptions", 864); + feb(257, 22, { 3: 1, 34: 1, 22: 1, 257: 1 }, jIb); + var _Hb, aIb, bIb, cIb, dIb, eIb, fIb, gIb, hIb; + var xN = tfb(yye, "TraversalStrategy", 257, WI, lIb, kIb); + var mIb; + feb(218, 1, { 218: 1 }, pIb); + _.Ib = function qIb() { + return "NEdge[id=" + this.b + " w=" + this.g + " d=" + this.a + "]"; + }; + _.a = 1; + _.b = 0; + _.c = 0; + _.f = false; + _.g = 0; + var zN = sfb(Gye, "NEdge", 218); + feb(182, 1, {}, wIb); + sfb(Gye, "NEdge/NEdgeBuilder", 182); + feb(662, 1, {}, BIb); + sfb(Gye, "NGraph", 662); + feb(125, 1, { 125: 1 }, DIb); + _.c = -1; + _.d = 0; + _.e = 0; + _.i = -1; + _.j = false; + var DN = sfb(Gye, "NNode", 125); + feb(808, 1, Exe, GIb); + _.Jc = function OIb(a) { + xgb(this, a); + }; + _.Lc = function VIb() { + return new SDb(null, new Swb(this, 16)); + }; + _.jd = function $Ib(a) { + tvb(this, a); + }; + _.Nc = function _Ib() { + return new Swb(this, 16); + }; + _.Oc = function aJb() { + return new SDb(null, new Swb(this, 16)); + }; + _.bd = function HIb(a, b) { + ++this.b; + Qmb(this.a, a, b); + }; + _.Fc = function IIb(a) { + return EIb(this, a); + }; + _.cd = function JIb(a, b) { + ++this.b; + return Smb(this.a, a, b); + }; + _.Gc = function KIb(a) { + ++this.b; + return Tmb(this.a, a); + }; + _.$b = function LIb() { + ++this.b; + aFb(this.a.c, 0); + }; + _.Hc = function MIb(a) { + return Wmb(this.a, a, 0) != -1; + }; + _.Ic = function NIb(a) { + return Be(this.a, a); + }; + _.Xb = function PIb(a) { + return Vmb(this.a, a); + }; + _.dd = function QIb(a) { + return Wmb(this.a, a, 0); + }; + _.dc = function RIb() { + return this.a.c.length == 0; + }; + _.Kc = function SIb() { + return Nr(new Anb(this.a)); + }; + _.ed = function TIb() { + throw Adb(new jib()); + }; + _.fd = function UIb(a) { + throw Adb(new jib()); + }; + _.gd = function WIb(a) { + ++this.b; + return Xmb(this.a, a); + }; + _.Mc = function XIb(a) { + return FIb(this, a); + }; + _.hd = function YIb(a, b) { + ++this.b; + return $mb(this.a, a, b); + }; + _.gc = function ZIb() { + return this.a.c.length; + }; + _.kd = function bJb(a, b) { + return new Rkb(this.a, a, b); + }; + _.Pc = function cJb() { + return UEb(this.a.c); + }; + _.Qc = function dJb(a) { + return anb(this.a, a); + }; + _.b = 0; + sfb(Gye, "NNode/ChangeAwareArrayList", 808); + feb(275, 1, {}, gJb); + sfb(Gye, "NNode/NNodeBuilder", 275); + feb(1695, 1, {}, BJb); + _.a = false; + _.f = lve; + _.j = 0; + sfb(Gye, "NetworkSimplex", 1695); + feb(1314, 1, Qve, HJb); + _.Cd = function IJb(a) { + GJb(this.a, RD(a, 695), true, false); + }; + sfb(Iye, "NodeLabelAndSizeCalculator/lambda$0$Type", 1314); + feb(565, 1, {}, PJb); + _.b = true; + _.c = true; + _.d = true; + _.e = true; + sfb(Iye, "NodeMarginCalculator", 565); + feb(217, 1, { 217: 1 }); + _.j = false; + _.k = false; + var IN = sfb(Jye, "Cell", 217); + feb(127, 217, { 127: 1, 217: 1 }, TJb); + _.jf = function UJb() { + return SJb(this); + }; + _.kf = function VJb() { + var a; + a = this.n; + return this.a.a + a.b + a.c; + }; + sfb(Jye, "AtomicCell", 127); + feb(237, 22, { 3: 1, 34: 1, 22: 1, 237: 1 }, $Jb); + var WJb, XJb, YJb; + var JN = tfb(Jye, "ContainerArea", 237, WI, aKb, _Jb); + var bKb; + feb(336, 217, Lye); + sfb(Jye, "ContainerCell", 336); + feb(1538, 336, Lye, wKb); + _.jf = function xKb() { + var a; + a = 0; + this.e ? this.b ? a = this.b.b : !!this.a[1][1] && (a = this.a[1][1].jf()) : a = vKb(this, rKb(this, true)); + return a > 0 ? a + this.n.d + this.n.a : 0; + }; + _.kf = function yKb() { + var a, b, c, d, e; + e = 0; + if (this.e) { + this.b ? e = this.b.a : !!this.a[1][1] && (e = this.a[1][1].kf()); + } else if (this.g) { + e = vKb(this, pKb(this, null, true)); + } else { + for (b = (ZJb(), cD(WC(JN, 1), jwe, 237, 0, [WJb, XJb, YJb])), c = 0, d = b.length; c < d; ++c) { + a = b[c]; + e = $wnd.Math.max(e, vKb(this, pKb(this, a, true))); + } + } + return e > 0 ? e + this.n.b + this.n.c : 0; + }; + _.lf = function zKb() { + var a, b, c, d, e; + if (this.g) { + a = pKb(this, null, false); + for (c = (ZJb(), cD(WC(JN, 1), jwe, 237, 0, [WJb, XJb, YJb])), d = 0, e = c.length; d < e; ++d) { + b = c[d]; + nKb(this, b, a); + } + } else { + for (c = (ZJb(), cD(WC(JN, 1), jwe, 237, 0, [WJb, XJb, YJb])), d = 0, e = c.length; d < e; ++d) { + b = c[d]; + a = pKb(this, b, false); + nKb(this, b, a); + } + } + }; + _.mf = function AKb() { + var a, b, c, d; + b = this.i; + a = this.n; + d = rKb(this, false); + lKb(this, (ZJb(), WJb), b.d + a.d, d); + lKb(this, YJb, b.d + b.a - a.a - d[2], d); + c = b.a - a.d - a.a; + if (d[0] > 0) { + d[0] += this.d; + c -= d[0]; + } + if (d[2] > 0) { + d[2] += this.d; + c -= d[2]; + } + this.c.a = $wnd.Math.max(0, c); + this.c.d = b.d + a.d + (this.c.a - c) / 2; + d[1] = $wnd.Math.max(d[1], c); + lKb(this, XJb, b.d + a.d + d[0] - (d[1] - c) / 2, d); + }; + _.b = null; + _.d = 0; + _.e = false; + _.f = false; + _.g = false; + var iKb = 0, jKb = 0; + sfb(Jye, "GridContainerCell", 1538); + feb(471, 22, { 3: 1, 34: 1, 22: 1, 471: 1 }, FKb); + var BKb, CKb, DKb; + var MN = tfb(Jye, "HorizontalLabelAlignment", 471, WI, HKb, GKb); + var IKb; + feb(314, 217, { 217: 1, 314: 1 }, TKb, UKb, VKb); + _.jf = function WKb() { + return PKb(this); + }; + _.kf = function XKb() { + return QKb(this); + }; + _.a = 0; + _.c = false; + var NN = sfb(Jye, "LabelCell", 314); + feb(252, 336, { 217: 1, 336: 1, 252: 1 }, dLb); + _.jf = function eLb() { + return YKb(this); + }; + _.kf = function fLb() { + return ZKb(this); + }; + _.lf = function iLb() { + $Kb(this); + }; + _.mf = function jLb() { + _Kb(this); + }; + _.b = 0; + _.c = 0; + _.d = false; + sfb(Jye, "StripContainerCell", 252); + feb(1691, 1, nwe, kLb); + _.Mb = function lLb(a) { + return gLb(RD(a, 217)); + }; + sfb(Jye, "StripContainerCell/lambda$0$Type", 1691); + feb(1692, 1, {}, mLb); + _.Ye = function nLb(a) { + return RD(a, 217).kf(); + }; + sfb(Jye, "StripContainerCell/lambda$1$Type", 1692); + feb(1693, 1, nwe, oLb); + _.Mb = function pLb(a) { + return hLb(RD(a, 217)); + }; + sfb(Jye, "StripContainerCell/lambda$2$Type", 1693); + feb(1694, 1, {}, qLb); + _.Ye = function rLb(a) { + return RD(a, 217).jf(); + }; + sfb(Jye, "StripContainerCell/lambda$3$Type", 1694); + feb(472, 22, { 3: 1, 34: 1, 22: 1, 472: 1 }, wLb); + var sLb, tLb, uLb; + var TN = tfb(Jye, "VerticalLabelAlignment", 472, WI, yLb, xLb); + var zLb; + feb(800, 1, {}, CLb); + _.c = 0; + _.d = 0; + _.k = 0; + _.s = 0; + _.t = 0; + _.v = false; + _.w = 0; + _.D = false; + sfb(Rye, "NodeContext", 800); + feb(1536, 1, fye, FLb); + _.Ne = function GLb(a, b) { + return ELb(RD(a, 64), RD(b, 64)); + }; + _.Fb = function HLb(a) { + return this === a; + }; + _.Oe = function ILb() { + return new Frb(this); + }; + sfb(Rye, "NodeContext/0methodref$comparePortSides$Type", 1536); + feb(1537, 1, fye, JLb); + _.Ne = function KLb(a, b) { + return DLb(RD(a, 117), RD(b, 117)); + }; + _.Fb = function LLb(a) { + return this === a; + }; + _.Oe = function MLb() { + return new Frb(this); + }; + sfb(Rye, "NodeContext/1methodref$comparePortContexts$Type", 1537); + feb(164, 22, { 3: 1, 34: 1, 22: 1, 164: 1 }, kMb); + var NLb, OLb, PLb, QLb, RLb, SLb, TLb, ULb, VLb, WLb, XLb, YLb, ZLb, $Lb, _Lb, aMb, bMb, cMb, dMb, eMb, fMb, gMb; + var XN = tfb(Rye, "NodeLabelLocation", 164, WI, nMb, mMb); + var oMb; + feb(117, 1, { 117: 1 }, rMb); + _.a = false; + sfb(Rye, "PortContext", 117); + feb(1541, 1, Qve, KMb); + _.Cd = function LMb(a) { + NKb(RD(a, 314)); + }; + sfb(Uye, Vye, 1541); + feb(1542, 1, nwe, MMb); + _.Mb = function NMb(a) { + return !!RD(a, 117).c; + }; + sfb(Uye, Wye, 1542); + feb(1543, 1, Qve, OMb); + _.Cd = function PMb(a) { + NKb(RD(a, 117).c); + }; + sfb(Uye, "LabelPlacer/lambda$2$Type", 1543); + var QMb; + feb(1540, 1, Qve, YMb); + _.Cd = function ZMb(a) { + RMb(); + qMb(RD(a, 117)); + }; + sfb(Uye, "NodeLabelAndSizeUtilities/lambda$0$Type", 1540); + feb(801, 1, Qve, dNb); + _.Cd = function eNb(a) { + bNb(this.b, this.c, this.a, RD(a, 187)); + }; + _.a = false; + _.c = false; + sfb(Uye, "NodeLabelCellCreator/lambda$0$Type", 801); + feb(1539, 1, Qve, kNb); + _.Cd = function lNb(a) { + jNb(this.a, RD(a, 187)); + }; + sfb(Uye, "PortContextCreator/lambda$0$Type", 1539); + var sNb; + feb(1902, 1, {}, MNb); + sfb(Yye, "GreedyRectangleStripOverlapRemover", 1902); + feb(1903, 1, fye, ONb); + _.Ne = function PNb(a, b) { + return NNb(RD(a, 226), RD(b, 226)); + }; + _.Fb = function QNb(a) { + return this === a; + }; + _.Oe = function RNb() { + return new Frb(this); + }; + sfb(Yye, "GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type", 1903); + feb(1849, 1, {}, YNb); + _.a = 5; + _.e = 0; + sfb(Yye, "RectangleStripOverlapRemover", 1849); + feb(1850, 1, fye, aOb); + _.Ne = function bOb(a, b) { + return ZNb(RD(a, 226), RD(b, 226)); + }; + _.Fb = function cOb(a) { + return this === a; + }; + _.Oe = function dOb() { + return new Frb(this); + }; + sfb(Yye, "RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type", 1850); + feb(1852, 1, fye, eOb); + _.Ne = function fOb(a, b) { + return $Nb(RD(a, 226), RD(b, 226)); + }; + _.Fb = function gOb(a) { + return this === a; + }; + _.Oe = function hOb() { + return new Frb(this); + }; + sfb(Yye, "RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type", 1852); + feb(417, 22, { 3: 1, 34: 1, 22: 1, 417: 1 }, nOb); + var iOb, jOb, kOb, lOb; + var hO = tfb(Yye, "RectangleStripOverlapRemover/OverlapRemovalDirection", 417, WI, pOb, oOb); + var qOb; + feb(226, 1, { 226: 1 }, sOb); + sfb(Yye, "RectangleStripOverlapRemover/RectangleNode", 226); + feb(1851, 1, Qve, tOb); + _.Cd = function uOb(a) { + TNb(this.a, RD(a, 226)); + }; + sfb(Yye, "RectangleStripOverlapRemover/lambda$1$Type", 1851); + feb(1323, 1, fye, xOb); + _.Ne = function yOb(a, b) { + return wOb(RD(a, 176), RD(b, 176)); + }; + _.Fb = function zOb(a) { + return this === a; + }; + _.Oe = function AOb() { + return new Frb(this); + }; + sfb($ye, "PolyominoCompactor/CornerCasesGreaterThanRestComparator", 1323); + feb(1326, 1, {}, BOb); + _.Kb = function COb(a) { + return RD(a, 334).a; + }; + sfb($ye, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type", 1326); + feb(1327, 1, nwe, DOb); + _.Mb = function EOb(a) { + return RD(a, 332).a; + }; + sfb($ye, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type", 1327); + feb(1328, 1, nwe, FOb); + _.Mb = function GOb(a) { + return RD(a, 332).a; + }; + sfb($ye, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type", 1328); + feb(1321, 1, fye, IOb); + _.Ne = function JOb(a, b) { + return HOb(RD(a, 176), RD(b, 176)); + }; + _.Fb = function KOb(a) { + return this === a; + }; + _.Oe = function LOb() { + return new Frb(this); + }; + sfb($ye, "PolyominoCompactor/MinNumOfExtensionDirectionsComparator", 1321); + feb(1324, 1, {}, MOb); + _.Kb = function NOb(a) { + return RD(a, 334).a; + }; + sfb($ye, "PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type", 1324); + feb(781, 1, fye, POb); + _.Ne = function QOb(a, b) { + return OOb(RD(a, 176), RD(b, 176)); + }; + _.Fb = function ROb(a) { + return this === a; + }; + _.Oe = function SOb() { + return new Frb(this); + }; + sfb($ye, "PolyominoCompactor/MinNumOfExtensionsComparator", 781); + feb(1319, 1, fye, UOb); + _.Ne = function VOb(a, b) { + return TOb(RD(a, 330), RD(b, 330)); + }; + _.Fb = function WOb(a) { + return this === a; + }; + _.Oe = function XOb() { + return new Frb(this); + }; + sfb($ye, "PolyominoCompactor/MinPerimeterComparator", 1319); + feb(1320, 1, fye, ZOb); + _.Ne = function $Ob(a, b) { + return YOb(RD(a, 330), RD(b, 330)); + }; + _.Fb = function _Ob(a) { + return this === a; + }; + _.Oe = function aPb() { + return new Frb(this); + }; + sfb($ye, "PolyominoCompactor/MinPerimeterComparatorWithShape", 1320); + feb(1322, 1, fye, cPb); + _.Ne = function dPb(a, b) { + return bPb(RD(a, 176), RD(b, 176)); + }; + _.Fb = function ePb(a) { + return this === a; + }; + _.Oe = function fPb() { + return new Frb(this); + }; + sfb($ye, "PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator", 1322); + feb(1325, 1, {}, gPb); + _.Kb = function hPb(a) { + return RD(a, 334).a; + }; + sfb($ye, "PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type", 1325); + feb(782, 1, {}, kPb); + _.Ve = function lPb(a, b) { + return jPb(this, RD(a, 42), RD(b, 176)); + }; + sfb($ye, "SuccessorCombination", 782); + feb(649, 1, {}, nPb); + _.Ve = function oPb(a, b) { + var c; + return mPb((c = RD(a, 42), RD(b, 176), c)); + }; + sfb($ye, "SuccessorJitter", 649); + feb(648, 1, {}, qPb); + _.Ve = function rPb(a, b) { + var c; + return pPb((c = RD(a, 42), RD(b, 176), c)); + }; + sfb($ye, "SuccessorLineByLine", 648); + feb(573, 1, {}, tPb); + _.Ve = function uPb(a, b) { + var c; + return sPb((c = RD(a, 42), RD(b, 176), c)); + }; + sfb($ye, "SuccessorManhattan", 573); + feb(1344, 1, {}, wPb); + _.Ve = function xPb(a, b) { + var c; + return vPb((c = RD(a, 42), RD(b, 176), c)); + }; + sfb($ye, "SuccessorMaxNormWindingInMathPosSense", 1344); + feb(409, 1, {}, APb); + _.Ve = function BPb(a, b) { + return yPb(this, a, b); + }; + _.c = false; + _.d = false; + _.e = false; + _.f = false; + sfb($ye, "SuccessorQuadrantsGeneric", 409); + feb(1345, 1, {}, CPb); + _.Kb = function DPb(a) { + return RD(a, 334).a; + }; + sfb($ye, "SuccessorQuadrantsGeneric/lambda$0$Type", 1345); + feb(332, 22, { 3: 1, 34: 1, 22: 1, 332: 1 }, JPb); + _.a = false; + var EPb, FPb, GPb, HPb; + var DO = tfb(dze, eze, 332, WI, LPb, KPb); + var MPb; + feb(1317, 1, {}); + _.Ib = function UPb() { + var a, b, c, d, e, f; + c = " "; + a = sgb(0); + for (e = 0; e < this.o; e++) { + c += "" + a.a; + a = sgb(OPb(a.a)); + } + c += "\n"; + a = sgb(0); + for (f = 0; f < this.p; f++) { + c += "" + a.a; + a = sgb(OPb(a.a)); + for (d = 0; d < this.o; d++) { + b = SPb(this, d, f); + Ddb(b, 0) == 0 ? c += "_" : Ddb(b, 1) == 0 ? c += "X" : c += "0"; + } + c += "\n"; + } + return zhb(c, 0, c.length - 1); + }; + _.o = 0; + _.p = 0; + sfb(dze, "TwoBitGrid", 1317); + feb(330, 1317, { 330: 1 }, gQb); + _.j = 0; + _.k = 0; + sfb(dze, "PlanarGrid", 330); + feb(176, 330, { 330: 1, 176: 1 }); + _.g = 0; + _.i = 0; + sfb(dze, "Polyomino", 176); + var U5 = ufb(jze, kze); + feb(137, 1, lze, qQb); + _.qf = function uQb(a, b) { + return oQb(this, a, b); + }; + _.nf = function rQb() { + return lQb(this); + }; + _.of = function sQb(a) { + return mQb(this, a); + }; + _.pf = function tQb(a) { + return nQb(this, a); + }; + sfb(jze, "MapPropertyHolder", 137); + feb(1318, 137, lze, vQb); + sfb(dze, "Polyominoes", 1318); + var wQb = false, xQb, yQb; + feb(1828, 1, Qve, GQb); + _.Cd = function HQb(a) { + AQb(RD(a, 225)); + }; + sfb(mze, "DepthFirstCompaction/0methodref$compactTree$Type", 1828); + feb(825, 1, Qve, IQb); + _.Cd = function JQb(a) { + DQb(this.a, RD(a, 225)); + }; + sfb(mze, "DepthFirstCompaction/lambda$1$Type", 825); + feb(1829, 1, Qve, KQb); + _.Cd = function LQb(a) { + EQb(this.a, this.b, this.c, RD(a, 225)); + }; + sfb(mze, "DepthFirstCompaction/lambda$2$Type", 1829); + var MQb, NQb; + feb(68, 1, { 68: 1 }, TQb); + sfb(mze, "Node", 68); + feb(1214, 1, {}, WQb); + sfb(mze, "ScanlineOverlapCheck", 1214); + feb(1215, 1, { 693: 1 }, $Qb); + _.bf = function _Qb(a) { + YQb(this, RD(a, 451)); + }; + sfb(mze, "ScanlineOverlapCheck/OverlapsScanlineHandler", 1215); + feb(1216, 1, fye, bRb); + _.Ne = function cRb(a, b) { + return aRb(RD(a, 68), RD(b, 68)); + }; + _.Fb = function dRb(a) { + return this === a; + }; + _.Oe = function eRb() { + return new Frb(this); + }; + sfb(mze, "ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type", 1216); + feb(451, 1, { 451: 1 }, fRb); + _.a = false; + sfb(mze, "ScanlineOverlapCheck/Timestamp", 451); + feb(1217, 1, fye, gRb); + _.Ne = function hRb(a, b) { + return XQb(RD(a, 451), RD(b, 451)); + }; + _.Fb = function iRb(a) { + return this === a; + }; + _.Oe = function jRb() { + return new Frb(this); + }; + sfb(mze, "ScanlineOverlapCheck/lambda$0$Type", 1217); + feb(557, 1, {}, kRb); + sfb(nze, "SVGImage", 557); + feb(334, 1, { 334: 1 }, lRb); + _.Ib = function mRb() { + return "(" + this.a + pve + this.b + pve + this.c + ")"; + }; + sfb(nze, "UniqueTriple", 334); + feb(205, 1, oze); + sfb(pze, "AbstractLayoutProvider", 205); + feb(1114, 205, oze, pRb); + _.rf = function qRb(a, b) { + var c, d, e, f; + b.Ug(qze, 1); + this.a = Kfb(UD(Gxd(a, (tSb(), sSb)))); + if (Hxd(a, iSb)) { + e = WD(Gxd(a, iSb)); + c = sgd(ygd(), e); + if (c) { + d = RD(ltd(c.f), 205); + d.rf(a, b.eh(1)); + } + } + f = new rTb(this.a); + this.b = pTb(f, a); + switch (RD(Gxd(a, (eSb(), aSb)), 489).g) { + case 0: + sRb(new wRb(), this.b); + Ixd(a, lSb, mQb(this.b, lSb)); + break; + default: + gib(); + } + hTb(f); + Ixd(a, kSb, this.b); + b.Vg(); + }; + _.a = 0; + sfb(rze, "DisCoLayoutProvider", 1114); + feb(1208, 1, {}, wRb); + _.c = false; + _.e = 0; + _.f = 0; + sfb(rze, "DisCoPolyominoCompactor", 1208); + feb(567, 1, { 567: 1 }, DRb); + _.b = true; + sfb(sze, "DCComponent", 567); + feb(406, 22, { 3: 1, 34: 1, 22: 1, 406: 1 }, JRb); + _.a = false; + var ERb, FRb, GRb, HRb; + var WO = tfb(sze, "DCDirection", 406, WI, LRb, KRb); + var MRb; + feb(272, 137, { 3: 1, 272: 1, 96: 1, 137: 1 }, ORb); + sfb(sze, "DCElement", 272); + feb(407, 1, { 407: 1 }, QRb); + _.c = 0; + sfb(sze, "DCExtension", 407); + feb(762, 137, lze, TRb); + sfb(sze, "DCGraph", 762); + feb(489, 22, { 3: 1, 34: 1, 22: 1, 489: 1 }, WRb); + var URb; + var $O = tfb(tze, uze, 489, WI, YRb, XRb); + var ZRb; + feb(865, 1, Eye, fSb); + _.hf = function gSb(a) { + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), vze), zze), "Connected Components Compaction Strategy"), "Strategy for packing different connected components in order to save space and enhance readability of a graph."), bSb), (kid(), eid)), $O), xsb((Yhd(), Whd))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), wze), zze), "Connected Components Layout Algorithm"), "A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."), iid), qJ), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), xze), "debug"), "DCGraph"), "Access to the DCGraph is intended for the debug view,"), hid), jJ), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), yze), "debug"), "List of Polyominoes"), "Access to the polyominoes is intended for the debug view,"), hid), jJ), xsb(Whd)))); + uSb((new vSb(), a)); + }; + var _Rb, aSb, bSb, cSb, dSb; + sfb(tze, "DisCoMetaDataProvider", 865); + feb(1010, 1, Eye, vSb); + _.hf = function wSb(a) { + uSb(a); + }; + var hSb, iSb, jSb, kSb, lSb, mSb, nSb, oSb, pSb, qSb, rSb, sSb; + sfb(tze, "DisCoOptions", 1010); + feb(1011, 1, {}, xSb); + _.sf = function ySb() { + var a; + return a = new pRb(), a; + }; + _.tf = function zSb(a) { + }; + sfb(tze, "DisCoOptions/DiscoFactory", 1011); + feb(568, 176, { 330: 1, 176: 1, 568: 1 }, DSb); + _.a = 0; + _.b = 0; + _.c = 0; + _.d = 0; + sfb("org.eclipse.elk.alg.disco.structures", "DCPolyomino", 568); + var ESb, FSb, GSb; + feb(1286, 1, nwe, TSb); + _.Mb = function USb(a) { + return SSb(a); + }; + sfb(Fze, "ElkGraphComponentsProcessor/lambda$0$Type", 1286); + feb(1287, 1, {}, VSb); + _.Kb = function WSb(a) { + return HSb(), JGd(RD(a, 74)); + }; + sfb(Fze, "ElkGraphComponentsProcessor/lambda$1$Type", 1287); + feb(1288, 1, nwe, XSb); + _.Mb = function YSb(a) { + return NSb(RD(a, 74)); + }; + sfb(Fze, "ElkGraphComponentsProcessor/lambda$2$Type", 1288); + feb(1289, 1, {}, ZSb); + _.Kb = function $Sb(a) { + return HSb(), LGd(RD(a, 74)); + }; + sfb(Fze, "ElkGraphComponentsProcessor/lambda$3$Type", 1289); + feb(1290, 1, nwe, _Sb); + _.Mb = function aTb(a) { + return OSb(RD(a, 74)); + }; + sfb(Fze, "ElkGraphComponentsProcessor/lambda$4$Type", 1290); + feb(1291, 1, nwe, bTb); + _.Mb = function cTb(a) { + return PSb(this.a, RD(a, 74)); + }; + sfb(Fze, "ElkGraphComponentsProcessor/lambda$5$Type", 1291); + feb(1292, 1, {}, dTb); + _.Kb = function eTb(a) { + return QSb(this.a, RD(a, 74)); + }; + sfb(Fze, "ElkGraphComponentsProcessor/lambda$6$Type", 1292); + feb(1205, 1, {}, rTb); + _.a = 0; + sfb(Fze, "ElkGraphTransformer", 1205); + feb(1206, 1, {}, tTb); + _.Yd = function uTb(a, b) { + sTb(this, RD(a, 167), RD(b, 272)); + }; + sfb(Fze, "ElkGraphTransformer/OffsetApplier", 1206); + feb(1207, 1, Qve, wTb); + _.Cd = function xTb(a) { + vTb(this, RD(a, 8)); + }; + sfb(Fze, "ElkGraphTransformer/OffsetApplier/OffSetToChainApplier", 1207); + feb(760, 1, {}, DTb); + sfb(Kze, Lze, 760); + feb(1195, 1, fye, FTb); + _.Ne = function GTb(a, b) { + return ETb(RD(a, 235), RD(b, 235)); + }; + _.Fb = function HTb(a) { + return this === a; + }; + _.Oe = function ITb() { + return new Frb(this); + }; + sfb(Kze, Mze, 1195); + feb(1196, 1, Qve, OTb); + _.Cd = function PTb(a) { + NTb(this.b, this.a, RD(a, 250)); + }; + sfb(Kze, Nze, 1196); + feb(738, 205, oze, TTb); + _.rf = function UTb(a, b) { + QTb(this, a, b); + }; + sfb(Kze, "ForceLayoutProvider", 738); + feb(309, 137, { 3: 1, 309: 1, 96: 1, 137: 1 }); + sfb(Oze, "FParticle", 309); + feb(250, 309, { 3: 1, 250: 1, 309: 1, 96: 1, 137: 1 }, WTb); + _.Ib = function XTb() { + var a; + if (this.a) { + a = Wmb(this.a.a, this, 0); + return a >= 0 ? "b" + a + "[" + bUb(this.a) + "]" : "b[" + bUb(this.a) + "]"; + } + return "b_" + kFb(this); + }; + sfb(Oze, "FBendpoint", 250); + feb(290, 137, { 3: 1, 290: 1, 96: 1, 137: 1 }, cUb); + _.Ib = function dUb() { + return bUb(this); + }; + sfb(Oze, "FEdge", 290); + feb(235, 137, { 3: 1, 235: 1, 96: 1, 137: 1 }, gUb); + var tP = sfb(Oze, "FGraph", 235); + feb(454, 309, { 3: 1, 454: 1, 309: 1, 96: 1, 137: 1 }, iUb); + _.Ib = function jUb() { + return this.b == null || this.b.length == 0 ? "l[" + bUb(this.a) + "]" : "l_" + this.b; + }; + sfb(Oze, "FLabel", 454); + feb(153, 309, { 3: 1, 153: 1, 309: 1, 96: 1, 137: 1 }, lUb); + _.Ib = function mUb() { + return kUb(this); + }; + _.a = 0; + sfb(Oze, "FNode", 153); + feb(2100, 1, {}); + _.vf = function rUb(a) { + nUb(this, a); + }; + _.wf = function sUb() { + oUb(this); + }; + _.d = 0; + sfb(Qze, "AbstractForceModel", 2100); + feb(641, 2100, { 641: 1 }, tUb); + _.uf = function vUb(a, b) { + var c, d, e, f, g; + qUb(this.f, a, b); + e = ojd(ajd(b.d), a.d); + g = $wnd.Math.sqrt(e.a * e.a + e.b * e.b); + d = $wnd.Math.max(0, g - ejd(a.e) / 2 - ejd(b.e) / 2); + c = fUb(this.e, a, b); + c > 0 ? f = -uUb(d, this.c) * c : f = yUb(d, this.b) * RD(mQb(a, (yVb(), lVb)), 17).a; + ijd(e, f / g); + return e; + }; + _.vf = function wUb(a) { + nUb(this, a); + this.a = RD(mQb(a, (yVb(), aVb)), 17).a; + this.c = Kfb(UD(mQb(a, rVb))); + this.b = Kfb(UD(mQb(a, nVb))); + }; + _.xf = function xUb(a) { + return a < this.a; + }; + _.a = 0; + _.b = 0; + _.c = 0; + sfb(Qze, "EadesModel", 641); + feb(642, 2100, { 642: 1 }, zUb); + _.uf = function BUb(a, b) { + var c, d, e, f, g; + qUb(this.f, a, b); + e = ojd(ajd(b.d), a.d); + g = $wnd.Math.sqrt(e.a * e.a + e.b * e.b); + d = $wnd.Math.max(0, g - ejd(a.e) / 2 - ejd(b.e) / 2); + f = FUb(d, this.a) * RD(mQb(a, (yVb(), lVb)), 17).a; + c = fUb(this.e, a, b); + c > 0 && (f -= AUb(d, this.a) * c); + ijd(e, f * this.b / g); + return e; + }; + _.vf = function CUb(a) { + var b, c, d, e, f, g, h; + nUb(this, a); + this.b = Kfb(UD(mQb(a, (yVb(), sVb)))); + this.c = this.b / RD(mQb(a, aVb), 17).a; + d = a.e.c.length; + f = 0; + e = 0; + for (h = new Anb(a.e); h.a < h.c.c.length; ) { + g = RD(ynb(h), 153); + f += g.e.a; + e += g.e.b; + } + b = f * e; + c = Kfb(UD(mQb(a, rVb))) * Tye; + this.a = $wnd.Math.sqrt(b / (2 * d)) * c; + }; + _.wf = function DUb() { + oUb(this); + this.b -= this.c; + }; + _.xf = function EUb(a) { + return this.b > 0; + }; + _.a = 0; + _.b = 0; + _.c = 0; + sfb(Qze, "FruchtermanReingoldModel", 642); + feb(860, 1, Eye, PUb); + _.hf = function QUb(a) { + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), Rze), ""), "Force Model"), "Determines the model for force calculation."), IUb), (kid(), eid)), BP), xsb((Yhd(), Whd))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), Sze), ""), "Iterations"), "The number of iterations on the force model."), sgb(300)), gid), bJ), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), Tze), ""), "Repulsive Power"), "Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"), sgb(0)), gid), bJ), xsb(Thd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), Uze), ""), "FR Temperature"), "The temperature is used as a scaling factor for particle displacements."), Vze), did), VI), xsb(Whd)))); + zgd(a, Uze, Rze, NUb); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), Wze), ""), "Eades Repulsion"), "Factor for repulsive forces in Eades' model."), 5), did), VI), xsb(Whd)))); + zgd(a, Wze, Rze, KUb); + zVb((new AVb(), a)); + }; + var GUb, HUb, IUb, JUb, KUb, LUb, MUb, NUb; + sfb(Xze, "ForceMetaDataProvider", 860); + feb(432, 22, { 3: 1, 34: 1, 22: 1, 432: 1 }, UUb); + var RUb, SUb; + var BP = tfb(Xze, "ForceModelStrategy", 432, WI, WUb, VUb); + var XUb; + feb(Awe, 1, Eye, AVb); + _.hf = function BVb(a) { + zVb(a); + }; + var ZUb, $Ub, _Ub, aVb, bVb, cVb, dVb, eVb, fVb, gVb, hVb, iVb, jVb, kVb, lVb, mVb, nVb, oVb, pVb, qVb, rVb, sVb, tVb, uVb, vVb, wVb, xVb; + sfb(Xze, "ForceOptions", Awe); + feb(1001, 1, {}, CVb); + _.sf = function DVb() { + var a; + return a = new TTb(), a; + }; + _.tf = function EVb(a) { + }; + sfb(Xze, "ForceOptions/ForceFactory", 1001); + var FVb, GVb, HVb, IVb; + feb(861, 1, Eye, RVb); + _.hf = function SVb(a) { + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), vAe), ""), "Fixed Position"), "Prevent that the node is moved by the layout algorithm."), (Geb(), false)), (kid(), cid)), QI), xsb((Yhd(), Vhd))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), wAe), ""), "Desired Edge Length"), "Either specified for parent nodes or for individual edges, where the latter takes higher precedence."), 100), did), VI), ysb(Whd, cD(WC(d3, 1), jwe, 170, 0, [Thd]))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), xAe), ""), "Layout Dimension"), "Dimensions that are permitted to be altered during layout."), MVb), eid), JP), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), yAe), ""), "Stress Epsilon"), "Termination criterion for the iterative process."), Vze), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), zAe), ""), "Iteration Limit"), "Maximum number of performed iterations. Takes higher precedence than 'epsilon'."), sgb(lve)), gid), bJ), xsb(Whd)))); + eWb((new fWb(), a)); + }; + var KVb, LVb, MVb, NVb, OVb, PVb; + sfb(Xze, "StressMetaDataProvider", 861); + feb(1004, 1, Eye, fWb); + _.hf = function gWb(a) { + eWb(a); + }; + var TVb, UVb, VVb, WVb, XVb, YVb, ZVb, $Vb, _Vb, aWb, bWb, cWb; + sfb(Xze, "StressOptions", 1004); + feb(1005, 1, {}, hWb); + _.sf = function iWb() { + var a; + return a = new kWb(), a; + }; + _.tf = function jWb(a) { + }; + sfb(Xze, "StressOptions/StressFactory", 1005); + feb(1110, 205, oze, kWb); + _.rf = function lWb(a, b) { + var c, d, e, f, g; + b.Ug(BAe, 1); + Heb(TD(Gxd(a, (dWb(), XVb)))) ? Heb(TD(Gxd(a, bWb))) || RFb((c = new SFb((lud(), new zud(a))), c)) : QTb(new TTb(), a, b.eh(1)); + e = KTb(a); + d = CTb(this.a, e); + for (g = d.Kc(); g.Ob(); ) { + f = RD(g.Pb(), 235); + if (f.e.c.length <= 1) { + continue; + } + uWb(this.b, f); + sWb(this.b); + Umb(f.d, new mWb()); + } + e = BTb(d); + JTb(e); + b.Vg(); + }; + sfb(DAe, "StressLayoutProvider", 1110); + feb(1111, 1, Qve, mWb); + _.Cd = function nWb(a) { + hUb(RD(a, 454)); + }; + sfb(DAe, "StressLayoutProvider/lambda$0$Type", 1111); + feb(1002, 1, {}, vWb); + _.c = 0; + _.e = 0; + _.g = 0; + sfb(DAe, "StressMajorization", 1002); + feb(391, 22, { 3: 1, 34: 1, 22: 1, 391: 1 }, BWb); + var xWb, yWb, zWb; + var JP = tfb(DAe, "StressMajorization/Dimension", 391, WI, DWb, CWb); + var EWb; + feb(1003, 1, fye, GWb); + _.Ne = function HWb(a, b) { + return wWb(this.a, RD(a, 153), RD(b, 153)); + }; + _.Fb = function IWb(a) { + return this === a; + }; + _.Oe = function JWb() { + return new Frb(this); + }; + sfb(DAe, "StressMajorization/lambda$0$Type", 1003); + feb(1192, 1, {}, RWb); + sfb(FAe, "ElkLayered", 1192); + feb(1193, 1, Qve, UWb); + _.Cd = function VWb(a) { + SWb(this.a, RD(a, 36)); + }; + sfb(FAe, "ElkLayered/lambda$0$Type", 1193); + feb(1194, 1, Qve, WWb); + _.Cd = function XWb(a) { + TWb(this.a, RD(a, 36)); + }; + sfb(FAe, "ElkLayered/lambda$1$Type", 1194); + feb(1281, 1, {}, dXb); + var YWb, ZWb, $Wb; + sfb(FAe, "GraphConfigurator", 1281); + feb(770, 1, Qve, fXb); + _.Cd = function gXb(a) { + aXb(this.a, RD(a, 10)); + }; + sfb(FAe, "GraphConfigurator/lambda$0$Type", 770); + feb(771, 1, {}, hXb); + _.Kb = function iXb(a) { + return _Wb(), new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(FAe, "GraphConfigurator/lambda$1$Type", 771); + feb(772, 1, Qve, jXb); + _.Cd = function kXb(a) { + aXb(this.a, RD(a, 10)); + }; + sfb(FAe, "GraphConfigurator/lambda$2$Type", 772); + feb(1109, 205, oze, lXb); + _.rf = function mXb(a, b) { + var c; + c = c5b(new k5b(), a); + dE(Gxd(a, (yCc(), IAc))) === dE((Fnd(), Cnd)) ? LWb(this.a, c, b) : MWb(this.a, c, b); + b.$g() || J5b(new N5b(), c); + }; + sfb(FAe, "LayeredLayoutProvider", 1109); + feb(367, 22, { 3: 1, 34: 1, 22: 1, 367: 1 }, tXb); + var nXb, oXb, pXb, qXb, rXb; + var UP = tfb(FAe, "LayeredPhases", 367, WI, vXb, uXb); + var wXb; + feb(1717, 1, {}, EXb); + _.i = 0; + var yXb; + sfb(GAe, "ComponentsToCGraphTransformer", 1717); + var jYb; + feb(1718, 1, {}, FXb); + _.yf = function GXb(a, b) { + return $wnd.Math.min(a.a != null ? Kfb(a.a) : a.c.i, b.a != null ? Kfb(b.a) : b.c.i); + }; + _.zf = function HXb(a, b) { + return $wnd.Math.min(a.a != null ? Kfb(a.a) : a.c.i, b.a != null ? Kfb(b.a) : b.c.i); + }; + sfb(GAe, "ComponentsToCGraphTransformer/1", 1718); + feb(86, 1, { 86: 1 }); + _.i = 0; + _.k = true; + _.o = pxe; + var bQ = sfb(HAe, "CNode", 86); + feb(470, 86, { 470: 1, 86: 1 }, IXb, JXb); + _.Ib = function KXb() { + return ""; + }; + sfb(GAe, "ComponentsToCGraphTransformer/CRectNode", 470); + feb(1688, 1, {}, XXb); + var LXb, MXb; + sfb(GAe, "OneDimensionalComponentsCompaction", 1688); + feb(1689, 1, {}, $Xb); + _.Kb = function _Xb(a) { + return YXb(RD(a, 42)); + }; + _.Fb = function aYb(a) { + return this === a; + }; + sfb(GAe, "OneDimensionalComponentsCompaction/lambda$0$Type", 1689); + feb(1690, 1, {}, bYb); + _.Kb = function cYb(a) { + return ZXb(RD(a, 42)); + }; + _.Fb = function dYb(a) { + return this === a; + }; + sfb(GAe, "OneDimensionalComponentsCompaction/lambda$1$Type", 1690); + feb(1720, 1, {}, fYb); + sfb(HAe, "CGraph", 1720); + feb(194, 1, { 194: 1 }, iYb); + _.b = 0; + _.c = 0; + _.e = 0; + _.g = true; + _.i = pxe; + sfb(HAe, "CGroup", 194); + feb(1719, 1, {}, lYb); + _.yf = function mYb(a, b) { + return $wnd.Math.max(a.a != null ? Kfb(a.a) : a.c.i, b.a != null ? Kfb(b.a) : b.c.i); + }; + _.zf = function nYb(a, b) { + return $wnd.Math.max(a.a != null ? Kfb(a.a) : a.c.i, b.a != null ? Kfb(b.a) : b.c.i); + }; + sfb(HAe, kye, 1719); + feb(1721, 1, {}, EYb); + _.d = false; + var oYb; + var eQ = sfb(HAe, pye, 1721); + feb(1722, 1, {}, FYb); + _.Kb = function GYb(a) { + return pYb(), Geb(), RD(RD(a, 42).a, 86).d.e != 0 ? true : false; + }; + _.Fb = function HYb(a) { + return this === a; + }; + sfb(HAe, qye, 1722); + feb(833, 1, {}, KYb); + _.a = false; + _.b = false; + _.c = false; + _.d = false; + sfb(HAe, rye, 833); + feb(1898, 1, {}, QYb); + sfb(IAe, sye, 1898); + var wQ = ufb(JAe, hye); + feb(1899, 1, { 382: 1 }, UYb); + _.bf = function VYb(a) { + SYb(this, RD(a, 476)); + }; + sfb(IAe, tye, 1899); + feb(Owe, 1, fye, XYb); + _.Ne = function YYb(a, b) { + return WYb(RD(a, 86), RD(b, 86)); + }; + _.Fb = function ZYb(a) { + return this === a; + }; + _.Oe = function $Yb() { + return new Frb(this); + }; + sfb(IAe, uye, Owe); + feb(476, 1, { 476: 1 }, _Yb); + _.a = false; + sfb(IAe, vye, 476); + feb(1901, 1, fye, aZb); + _.Ne = function bZb(a, b) { + return RYb(RD(a, 476), RD(b, 476)); + }; + _.Fb = function cZb(a) { + return this === a; + }; + _.Oe = function dZb() { + return new Frb(this); + }; + sfb(IAe, wye, 1901); + feb(148, 1, { 148: 1 }, eZb, fZb); + _.Fb = function gZb(a) { + var b; + if (a == null) { + return false; + } + if (mQ != rb(a)) { + return false; + } + b = RD(a, 148); + return Fvb(this.c, b.c) && Fvb(this.d, b.d); + }; + _.Hb = function hZb() { + return Tnb(cD(WC(jJ, 1), rve, 1, 5, [this.c, this.d])); + }; + _.Ib = function iZb() { + return "(" + this.c + pve + this.d + (this.a ? "cx" : "") + this.b + ")"; + }; + _.a = true; + _.c = 0; + _.d = 0; + var mQ = sfb(JAe, "Point", 148); + feb(416, 22, { 3: 1, 34: 1, 22: 1, 416: 1 }, qZb); + var jZb, kZb, lZb, mZb; + var lQ = tfb(JAe, "Point/Quadrant", 416, WI, uZb, tZb); + var vZb; + feb(1708, 1, {}, EZb); + _.b = null; + _.c = null; + _.d = null; + _.e = null; + _.f = null; + var xZb, yZb, zZb, AZb, BZb; + sfb(JAe, "RectilinearConvexHull", 1708); + feb(583, 1, { 382: 1 }, PZb); + _.bf = function QZb(a) { + OZb(this, RD(a, 148)); + }; + _.b = 0; + var MZb; + sfb(JAe, "RectilinearConvexHull/MaximalElementsEventHandler", 583); + feb(1710, 1, fye, SZb); + _.Ne = function TZb(a, b) { + return RZb(UD(a), UD(b)); + }; + _.Fb = function UZb(a) { + return this === a; + }; + _.Oe = function VZb() { + return new Frb(this); + }; + sfb(JAe, "RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type", 1710); + feb(1709, 1, { 382: 1 }, XZb); + _.bf = function YZb(a) { + WZb(this, RD(a, 148)); + }; + _.a = 0; + _.b = null; + _.c = null; + _.d = null; + _.e = null; + sfb(JAe, "RectilinearConvexHull/RectangleEventHandler", 1709); + feb(1711, 1, fye, ZZb); + _.Ne = function $Zb(a, b) { + return GZb(RD(a, 148), RD(b, 148)); + }; + _.Fb = function _Zb(a) { + return this === a; + }; + _.Oe = function a$b() { + return new Frb(this); + }; + sfb(JAe, "RectilinearConvexHull/lambda$0$Type", 1711); + feb(1712, 1, fye, b$b); + _.Ne = function c$b(a, b) { + return HZb(RD(a, 148), RD(b, 148)); + }; + _.Fb = function d$b(a) { + return this === a; + }; + _.Oe = function e$b() { + return new Frb(this); + }; + sfb(JAe, "RectilinearConvexHull/lambda$1$Type", 1712); + feb(1713, 1, fye, f$b); + _.Ne = function g$b(a, b) { + return IZb(RD(a, 148), RD(b, 148)); + }; + _.Fb = function h$b(a) { + return this === a; + }; + _.Oe = function i$b() { + return new Frb(this); + }; + sfb(JAe, "RectilinearConvexHull/lambda$2$Type", 1713); + feb(1714, 1, fye, j$b); + _.Ne = function k$b(a, b) { + return JZb(RD(a, 148), RD(b, 148)); + }; + _.Fb = function l$b(a) { + return this === a; + }; + _.Oe = function m$b() { + return new Frb(this); + }; + sfb(JAe, "RectilinearConvexHull/lambda$3$Type", 1714); + feb(1715, 1, fye, n$b); + _.Ne = function o$b(a, b) { + return KZb(RD(a, 148), RD(b, 148)); + }; + _.Fb = function p$b(a) { + return this === a; + }; + _.Oe = function q$b() { + return new Frb(this); + }; + sfb(JAe, "RectilinearConvexHull/lambda$4$Type", 1715); + feb(1716, 1, {}, s$b); + sfb(JAe, "Scanline", 1716); + feb(2104, 1, {}); + sfb(KAe, "AbstractGraphPlacer", 2104); + feb(335, 1, { 335: 1 }, C$b); + _.Ff = function D$b(a) { + if (this.Gf(a)) { + Rc(this.b, RD(mQb(a, (Ywc(), ewc)), 21), a); + return true; + } else { + return false; + } + }; + _.Gf = function E$b(a) { + var b, c, d, e; + b = RD(mQb(a, (Ywc(), ewc)), 21); + e = RD(Qc(y$b, b), 21); + for (d = e.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 21); + if (!RD(Qc(this.b, c), 15).dc()) { + return false; + } + } + return true; + }; + var y$b; + sfb(KAe, "ComponentGroup", 335); + feb(779, 2104, {}, J$b); + _.Hf = function K$b(a) { + var b, c; + for (c = new Anb(this.a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 335); + if (b.Ff(a)) { + return; + } + } + Rmb(this.a, new C$b(a)); + }; + _.Ef = function L$b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2; + this.a.c.length = 0; + b.a.c.length = 0; + if (a.dc()) { + b.f.a = 0; + b.f.b = 0; + return; + } + g = RD(a.Xb(0), 36); + kQb(b, g); + for (e = a.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 36); + this.Hf(d); + } + o2 = new pjd(); + f = Kfb(UD(mQb(g, (yCc(), SBc)))); + for (j = new Anb(this.a); j.a < j.c.c.length; ) { + h = RD(ynb(j), 335); + k = F$b(h, f); + x$b(Uc(h.b), o2.a, o2.b); + o2.a += k.a; + o2.b += k.b; + } + b.f.a = o2.a - f; + b.f.b = o2.b - f; + if (Heb(TD(mQb(g, Vzc))) && dE(mQb(g, yAc)) === dE((Ymd(), Umd))) { + for (n = a.Kc(); n.Ob(); ) { + l = RD(n.Pb(), 36); + w$b(l, l.c.a, l.c.b); + } + c = new j_b(); + _$b(c, a, f); + for (m = a.Kc(); m.Ob(); ) { + l = RD(m.Pb(), 36); + $id(hjd(l.c), c.e); + } + $id(hjd(b.f), c.a); + } + for (i = new Anb(this.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 335); + v$b(b, Uc(h.b)); + } + }; + sfb(KAe, "ComponentGroupGraphPlacer", 779); + feb(1312, 779, {}, N$b); + _.Hf = function O$b(a) { + M$b(this, a); + }; + _.Ef = function P$b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t; + this.a.c.length = 0; + b.a.c.length = 0; + if (a.dc()) { + b.f.a = 0; + b.f.b = 0; + return; + } + g = RD(a.Xb(0), 36); + kQb(b, g); + for (e = a.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 36); + M$b(this, d); + } + t = new pjd(); + s = new pjd(); + p = new pjd(); + o2 = new pjd(); + f = Kfb(UD(mQb(g, (yCc(), SBc)))); + for (j = new Anb(this.a); j.a < j.c.c.length; ) { + h = RD(ynb(j), 335); + if (Dmd(RD(mQb(b, (umd(), Nkd)), 88))) { + p.a = t.a; + for (r = new aw(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) { + q = RD(_v(r.b.Pb()), 21); + if (q.Hc((qpd(), Yod))) { + p.a = s.a; + break; + } + } + } else if (Emd(RD(mQb(b, Nkd), 88))) { + p.b = t.b; + for (r = new aw(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) { + q = RD(_v(r.b.Pb()), 21); + if (q.Hc((qpd(), ppd))) { + p.b = s.b; + break; + } + } + } + k = F$b(RD(h, 579), f); + x$b(Uc(h.b), p.a, p.b); + if (Dmd(RD(mQb(b, Nkd), 88))) { + s.a = p.a + k.a; + o2.a = $wnd.Math.max(o2.a, s.a); + for (r = new aw(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) { + q = RD(_v(r.b.Pb()), 21); + if (q.Hc((qpd(), npd))) { + t.a = p.a + k.a; + break; + } + } + s.b = p.b + k.b; + p.b = s.b; + o2.b = $wnd.Math.max(o2.b, p.b); + } else if (Emd(RD(mQb(b, Nkd), 88))) { + s.b = p.b + k.b; + o2.b = $wnd.Math.max(o2.b, s.b); + for (r = new aw(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) { + q = RD(_v(r.b.Pb()), 21); + if (q.Hc((qpd(), Xod))) { + t.b = p.b + k.b; + break; + } + } + s.a = p.a + k.a; + p.a = s.a; + o2.a = $wnd.Math.max(o2.a, p.a); + } + } + b.f.a = o2.a - f; + b.f.b = o2.b - f; + if (Heb(TD(mQb(g, Vzc))) && dE(mQb(g, yAc)) === dE((Ymd(), Umd))) { + for (n = a.Kc(); n.Ob(); ) { + l = RD(n.Pb(), 36); + w$b(l, l.c.a, l.c.b); + } + c = new j_b(); + _$b(c, a, f); + for (m = a.Kc(); m.Ob(); ) { + l = RD(m.Pb(), 36); + $id(hjd(l.c), c.e); + } + $id(hjd(b.f), c.a); + } + for (i = new Anb(this.a); i.a < i.c.c.length; ) { + h = RD(ynb(i), 335); + v$b(b, Uc(h.b)); + } + }; + sfb(KAe, "ComponentGroupModelOrderGraphPlacer", 1312); + feb(389, 22, { 3: 1, 34: 1, 22: 1, 389: 1 }, V$b); + var Q$b, R$b, S$b, T$b; + var CQ = tfb(KAe, "ComponentOrderingStrategy", 389, WI, X$b, W$b); + var Y$b; + feb(659, 1, {}, j_b); + sfb(KAe, "ComponentsCompactor", 659); + feb(1533, 13, Cxe, m_b); + _.Fc = function n_b(a) { + return k_b(this, RD(a, 148)); + }; + sfb(KAe, "ComponentsCompactor/Hullpoints", 1533); + feb(1530, 1, { 855: 1 }, p_b); + _.a = false; + sfb(KAe, "ComponentsCompactor/InternalComponent", 1530); + feb(1529, 1, Vve, q_b); + _.Jc = function r_b(a) { + xgb(this, a); + }; + _.Kc = function s_b() { + return new Anb(this.a); + }; + sfb(KAe, "ComponentsCompactor/InternalConnectedComponents", 1529); + feb(1532, 1, { 602: 1 }, t_b); + _.Bf = function v_b() { + return null; + }; + _.Cf = function w_b() { + return this.a; + }; + _.Af = function u_b() { + return f_b(this.d); + }; + _.Df = function x_b() { + return this.b; + }; + sfb(KAe, "ComponentsCompactor/InternalExternalExtension", 1532); + feb(1531, 1, { 602: 1 }, y_b); + _.Cf = function B_b() { + return this.a; + }; + _.Af = function z_b() { + return f_b(this.d); + }; + _.Bf = function A_b() { + return this.c; + }; + _.Df = function C_b() { + return this.b; + }; + sfb(KAe, "ComponentsCompactor/InternalUnionExternalExtension", 1531); + feb(1535, 1, {}, D_b); + sfb(KAe, "ComponentsCompactor/OuterSegments", 1535); + feb(1534, 1, {}, E_b); + sfb(KAe, "ComponentsCompactor/Segments", 1534); + feb(1282, 1, {}, I_b); + sfb(KAe, Lze, 1282); + feb(1283, 1, fye, K_b); + _.Ne = function L_b(a, b) { + return J_b(RD(a, 36), RD(b, 36)); + }; + _.Fb = function M_b(a) { + return this === a; + }; + _.Oe = function N_b() { + return new Frb(this); + }; + sfb(KAe, "ComponentsProcessor/lambda$0$Type", 1283); + feb(579, 335, { 335: 1, 579: 1 }, S_b); + _.Ff = function T_b(a) { + return Q_b(this, a); + }; + _.Gf = function U_b(a) { + return R_b(this, a); + }; + var O_b; + sfb(KAe, "ModelOrderComponentGroup", 579); + feb(1310, 2104, {}, V_b); + _.Ef = function W_b(a, b) { + var c, d, e, f, g, h, i, j, k, l, m; + if (a.gc() == 1) { + l = RD(a.Xb(0), 36); + if (l != b) { + b.a.c.length = 0; + u$b(b, l, 0, 0); + kQb(b, l); + C2b(b.d, l.d); + b.f.a = l.f.a; + b.f.b = l.f.b; + } + return; + } else if (a.dc()) { + b.a.c.length = 0; + b.f.a = 0; + b.f.b = 0; + return; + } + this.Jf(a, b); + e = RD(a.Xb(0), 36); + b.a.c.length = 0; + kQb(b, e); + j = 0; + m = 0; + for (g = a.Kc(); g.Ob(); ) { + f = RD(g.Pb(), 36); + k = f.f; + j = $wnd.Math.max(j, k.a); + m += k.a * k.b; + } + j = $wnd.Math.max(j, $wnd.Math.sqrt(m) * Kfb(UD(mQb(b, (yCc(), Tzc))))); + d = Kfb(UD(mQb(b, SBc))); + this.If(a, b, j, d); + if (Heb(TD(mQb(e, Vzc)))) { + c = new j_b(); + _$b(c, a, d); + for (i = a.Kc(); i.Ob(); ) { + h = RD(i.Pb(), 36); + $id(hjd(h.c), c.e); + } + $id(hjd(b.f), c.a); + } + v$b(b, a); + }; + _.If = function X_b(a, b, c, d) { + var e, f, g, h, i, j, k, l; + k = 0; + l = 0; + h = 0; + e = d; + for (g = a.Kc(); g.Ob(); ) { + f = RD(g.Pb(), 36); + j = f.f; + if (k + j.a > c) { + k = 0; + l += h + d; + h = 0; + } + i = f.c; + w$b(f, k + i.a, l + i.b); + hjd(i); + e = $wnd.Math.max(e, k + j.a); + h = $wnd.Math.max(h, j.b); + k += j.a + d; + } + b.f.a = e; + b.f.b = l + h; + }; + _.Jf = function Y_b(a, b) { + var c, d, e, f, g; + if (dE(mQb(b, (yCc(), Yzc))) === dE((U$b(), T$b))) { + for (d = a.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 36); + g = 0; + for (f = new Anb(c.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + g += RD(mQb(e, JBc), 17).a; + } + c.p = g; + } + yob(); + a.jd(new b0b()); + } + }; + sfb(KAe, "SimpleRowGraphPlacer", 1310); + feb(1313, 1310, {}, Z_b); + _.If = function $_b(a, b, c, d) { + var e, f, g, h, i, j, k, l, m, n; + m = 0; + n = 0; + h = 0; + e = d; + i = null; + l = 0; + for (g = a.Kc(); g.Ob(); ) { + f = RD(g.Pb(), 36); + k = f.f; + if (m + k.a > c && !RD(mQb(f, (Ywc(), ewc)), 21).Hc((qpd(), Yod)) || !!i && RD(mQb(i, (Ywc(), ewc)), 21).Hc((qpd(), Xod)) || RD(mQb(f, (Ywc(), ewc)), 21).Hc((qpd(), ppd))) { + m = l; + n += h + d; + h = 0; + } + j = f.c; + RD(mQb(f, (Ywc(), ewc)), 21).Hc((qpd(), Yod)) && (m = e + d); + w$b(f, m + j.a, n + j.b); + e = $wnd.Math.max(e, m + k.a); + RD(mQb(f, ewc), 21).Hc(npd) && (l = $wnd.Math.max(l, m + k.a + d)); + hjd(j); + h = $wnd.Math.max(h, k.b); + m += k.a + d; + i = f; + } + b.f.a = e; + b.f.b = n + h; + }; + _.Jf = function __b(a, b) { + }; + sfb(KAe, "ModelOrderRowGraphPlacer", 1313); + feb(1311, 1, fye, b0b); + _.Ne = function c0b(a, b) { + return a0b(RD(a, 36), RD(b, 36)); + }; + _.Fb = function d0b(a) { + return this === a; + }; + _.Oe = function e0b() { + return new Frb(this); + }; + sfb(KAe, "SimpleRowGraphPlacer/1", 1311); + var f0b; + feb(1280, 1, xye, l0b); + _.Lb = function m0b(a) { + var b; + return b = RD(mQb(RD(a, 249).b, (yCc(), RAc)), 75), !!b && b.b != 0; + }; + _.Fb = function n0b(a) { + return this === a; + }; + _.Mb = function o0b(a) { + var b; + return b = RD(mQb(RD(a, 249).b, (yCc(), RAc)), 75), !!b && b.b != 0; + }; + sfb(PAe, "CompoundGraphPostprocessor/1", 1280); + feb(1279, 1, QAe, E0b); + _.Kf = function F0b(a, b) { + y0b(this, RD(a, 36), b); + }; + sfb(PAe, "CompoundGraphPreprocessor", 1279); + feb(453, 1, { 453: 1 }, G0b); + _.c = false; + sfb(PAe, "CompoundGraphPreprocessor/ExternalPort", 453); + feb(249, 1, { 249: 1 }, J0b); + _.Ib = function K0b() { + return ps(this.c) + ":" + _0b(this.b); + }; + sfb(PAe, "CrossHierarchyEdge", 249); + feb(777, 1, fye, M0b); + _.Ne = function N0b(a, b) { + return L0b(this, RD(a, 249), RD(b, 249)); + }; + _.Fb = function O0b(a) { + return this === a; + }; + _.Oe = function Q0b() { + return new Frb(this); + }; + sfb(PAe, "CrossHierarchyEdgeComparator", 777); + feb(305, 137, { 3: 1, 305: 1, 96: 1, 137: 1 }); + _.p = 0; + sfb(RAe, "LGraphElement", 305); + feb(18, 305, { 3: 1, 18: 1, 305: 1, 96: 1, 137: 1 }, a1b); + _.Ib = function b1b() { + return _0b(this); + }; + var WQ = sfb(RAe, "LEdge", 18); + feb(36, 305, { 3: 1, 20: 1, 36: 1, 305: 1, 96: 1, 137: 1 }, d1b); + _.Jc = function e1b(a) { + xgb(this, a); + }; + _.Kc = function f1b() { + return new Anb(this.b); + }; + _.Ib = function g1b() { + if (this.b.c.length == 0) { + return "G-unlayered" + Fe(this.a); + } else if (this.a.c.length == 0) { + return "G-layered" + Fe(this.b); + } + return "G[layerless" + Fe(this.a) + ", layers" + Fe(this.b) + "]"; + }; + var eR = sfb(RAe, "LGraph", 36); + var h1b; + feb(666, 1, {}); + _.Lf = function j1b() { + return this.e.n; + }; + _.of = function k1b(a) { + return mQb(this.e, a); + }; + _.Mf = function l1b() { + return this.e.o; + }; + _.Nf = function m1b() { + return this.e.p; + }; + _.pf = function n1b(a) { + return nQb(this.e, a); + }; + _.Of = function o1b(a) { + this.e.n.a = a.a; + this.e.n.b = a.b; + }; + _.Pf = function p1b(a) { + this.e.o.a = a.a; + this.e.o.b = a.b; + }; + _.Qf = function q1b(a) { + this.e.p = a; + }; + sfb(RAe, "LGraphAdapters/AbstractLShapeAdapter", 666); + feb(474, 1, { 853: 1 }, r1b); + _.Rf = function s1b() { + var a, b; + if (!this.b) { + this.b = ev(this.a.b.c.length); + for (b = new Anb(this.a.b); b.a < b.c.c.length; ) { + a = RD(ynb(b), 72); + Rmb(this.b, new D1b(a)); + } + } + return this.b; + }; + _.b = null; + sfb(RAe, "LGraphAdapters/LEdgeAdapter", 474); + feb(665, 1, {}, t1b); + _.Sf = function u1b() { + var a, b, c, d, e, f; + if (!this.b) { + this.b = new bnb(); + for (d = new Anb(this.a.b); d.a < d.c.c.length; ) { + c = RD(ynb(d), 30); + for (f = new Anb(c.a); f.a < f.c.c.length; ) { + e = RD(ynb(f), 10); + if (this.c.Mb(e)) { + Rmb(this.b, new F1b(this, e, this.e)); + if (this.d) { + if (nQb(e, (Ywc(), Xwc))) { + for (b = RD(mQb(e, Xwc), 15).Kc(); b.Ob(); ) { + a = RD(b.Pb(), 10); + Rmb(this.b, new F1b(this, a, false)); + } + } + if (nQb(e, Vvc)) { + for (b = RD(mQb(e, Vvc), 15).Kc(); b.Ob(); ) { + a = RD(b.Pb(), 10); + Rmb(this.b, new F1b(this, a, false)); + } + } + } + } + } + } + } + return this.b; + }; + _.Lf = function v1b() { + throw Adb(new kib(TAe)); + }; + _.of = function w1b(a) { + return mQb(this.a, a); + }; + _.Mf = function x1b() { + return this.a.f; + }; + _.Nf = function y1b() { + return this.a.p; + }; + _.pf = function z1b(a) { + return nQb(this.a, a); + }; + _.Of = function A1b(a) { + throw Adb(new kib(TAe)); + }; + _.Pf = function B1b(a) { + this.a.f.a = a.a; + this.a.f.b = a.b; + }; + _.Qf = function C1b(a) { + this.a.p = a; + }; + _.b = null; + _.d = false; + _.e = false; + sfb(RAe, "LGraphAdapters/LGraphAdapter", 665); + feb(585, 666, { 187: 1 }, D1b); + sfb(RAe, "LGraphAdapters/LLabelAdapter", 585); + feb(584, 666, { 695: 1 }, F1b); + _.Tf = function G1b() { + return this.b; + }; + _.Uf = function H1b() { + return yob(), yob(), vob; + }; + _.Rf = function I1b() { + var a, b; + if (!this.a) { + this.a = ev(RD(this.e, 10).b.c.length); + for (b = new Anb(RD(this.e, 10).b); b.a < b.c.c.length; ) { + a = RD(ynb(b), 72); + Rmb(this.a, new D1b(a)); + } + } + return this.a; + }; + _.Vf = function J1b() { + var a; + a = RD(this.e, 10).d; + return new R2b(a.d, a.c, a.a, a.b); + }; + _.Wf = function K1b() { + return yob(), yob(), vob; + }; + _.Xf = function L1b() { + var a, b; + if (!this.c) { + this.c = ev(RD(this.e, 10).j.c.length); + for (b = new Anb(RD(this.e, 10).j); b.a < b.c.c.length; ) { + a = RD(ynb(b), 12); + Rmb(this.c, new Q1b(a, this.d)); + } + } + return this.c; + }; + _.Yf = function M1b() { + return Heb(TD(mQb(RD(this.e, 10), (Ywc(), Yvc)))); + }; + _.Zf = function N1b(a) { + RD(this.e, 10).d.b = a.b; + RD(this.e, 10).d.d = a.d; + RD(this.e, 10).d.c = a.c; + RD(this.e, 10).d.a = a.a; + }; + _.$f = function O1b(a) { + RD(this.e, 10).f.b = a.b; + RD(this.e, 10).f.d = a.d; + RD(this.e, 10).f.c = a.c; + RD(this.e, 10).f.a = a.a; + }; + _._f = function P1b() { + E1b(this, (i1b(), h1b)); + }; + _.a = null; + _.b = null; + _.c = null; + _.d = false; + sfb(RAe, "LGraphAdapters/LNodeAdapter", 584); + feb(1788, 666, { 852: 1 }, Q1b); + _.Uf = function R1b() { + var a, b, c, d, e, f, g, h; + if (this.d && RD(this.e, 12).i.k == (r3b(), q3b)) { + return yob(), yob(), vob; + } else if (!this.a) { + this.a = new bnb(); + for (c = new Anb(RD(this.e, 12).e); c.a < c.c.c.length; ) { + a = RD(ynb(c), 18); + Rmb(this.a, new r1b(a)); + } + if (this.d) { + d = RD(mQb(RD(this.e, 12), (Ywc(), Iwc)), 10); + if (d) { + for (b = new is(Mr(Z2b(d).a.Kc(), new ir())); gs(b); ) { + a = RD(hs(b), 18); + Rmb(this.a, new r1b(a)); + } + } + } + if (nQb(RD(this.e, 12).i, (Ywc(), Pwc))) { + g = RD(mQb(RD(this.e, 12).i, Pwc), 337); + h = RD(cub(g.e, this.e), 113); + if (h) { + for (f = new Anb(h.b); f.a < f.c.c.length; ) { + e = RD(ynb(f), 340); + Rmb(this.a, new r1b(e.a)); + } + } + } + } + return this.a; + }; + _.Rf = function S1b() { + var a, b; + if (!this.b) { + this.b = ev(RD(this.e, 12).f.c.length); + for (b = new Anb(RD(this.e, 12).f); b.a < b.c.c.length; ) { + a = RD(ynb(b), 72); + Rmb(this.b, new D1b(a)); + } + } + return this.b; + }; + _.Wf = function T1b() { + var a, b, c, d, e, f, g, h; + if (this.d && RD(this.e, 12).i.k == (r3b(), q3b)) { + return yob(), yob(), vob; + } else if (!this.c) { + this.c = new bnb(); + for (c = new Anb(RD(this.e, 12).g); c.a < c.c.c.length; ) { + a = RD(ynb(c), 18); + Rmb(this.c, new r1b(a)); + } + if (this.d) { + d = RD(mQb(RD(this.e, 12), (Ywc(), Iwc)), 10); + if (d) { + for (b = new is(Mr(a3b(d).a.Kc(), new ir())); gs(b); ) { + a = RD(hs(b), 18); + Rmb(this.c, new r1b(a)); + } + } + } + if (nQb(RD(this.e, 12).i, (Ywc(), Pwc))) { + g = RD(mQb(RD(this.e, 12).i, Pwc), 337); + h = RD(cub(g.e, this.e), 113); + if (h) { + for (f = new Anb(h.e); f.a < f.c.c.length; ) { + e = RD(ynb(f), 340); + Rmb(this.c, new r1b(e.a)); + } + } + } + } + return this.c; + }; + _.ag = function U1b() { + return RD(this.e, 12).j; + }; + _.bg = function V1b() { + return Heb(TD(mQb(RD(this.e, 12), (Ywc(), nwc)))); + }; + _.a = null; + _.b = null; + _.c = null; + _.d = false; + sfb(RAe, "LGraphAdapters/LPortAdapter", 1788); + feb(1789, 1, fye, X1b); + _.Ne = function Y1b(a, b) { + return W1b(RD(a, 12), RD(b, 12)); + }; + _.Fb = function Z1b(a) { + return this === a; + }; + _.Oe = function $1b() { + return new Frb(this); + }; + sfb(RAe, "LGraphAdapters/PortComparator", 1789); + feb(818, 1, nwe, _1b); + _.Mb = function a2b(a) { + return RD(a, 10), i1b(), true; + }; + sfb(RAe, "LGraphAdapters/lambda$0$Type", 818); + feb(404, 305, { 3: 1, 305: 1, 404: 1, 96: 1, 137: 1 }); + sfb(RAe, "LShape", 404); + feb(72, 404, { 3: 1, 305: 1, 72: 1, 404: 1, 96: 1, 137: 1 }, x2b, y2b); + _.Ib = function z2b() { + var a; + a = w2b(this); + return a == null ? "label" : "l_" + a; + }; + sfb(RAe, "LLabel", 72); + feb(214, 1, { 3: 1, 4: 1, 214: 1, 423: 1 }); + _.Fb = function K2b(a) { + var b; + if (ZD(a, 214)) { + b = RD(a, 214); + return this.d == b.d && this.a == b.a && this.b == b.b && this.c == b.c; + } else { + return false; + } + }; + _.Hb = function L2b() { + var a, b; + a = Nfb(this.b) << 16; + a |= Nfb(this.a) & Bwe; + b = Nfb(this.c) << 16; + b |= Nfb(this.d) & Bwe; + return a ^ b; + }; + _.cg = function N2b(b) { + var c, d, e, f, g, h, i, j, k, l, m; + g = 0; + while (g < b.length && M2b((BFb(g, b.length), b.charCodeAt(g)), YAe)) { + ++g; + } + c = b.length; + while (c > 0 && M2b((BFb(c - 1, b.length), b.charCodeAt(c - 1)), ZAe)) { + --c; + } + if (g < c) { + l = vhb((AFb(g, c, b.length), b.substr(g, c - g)), ",|;"); + try { + for (i = l, j = 0, k = i.length; j < k; ++j) { + h = i[j]; + f = vhb(h, "="); + if (f.length != 2) { + throw Adb(new agb("Expecting a list of key-value pairs.")); + } + e = Dhb(f[0]); + m = Neb(Dhb(f[1])); + lhb(e, "top") ? this.d = m : lhb(e, "left") ? this.b = m : lhb(e, "bottom") ? this.a = m : lhb(e, "right") && (this.c = m); + } + } catch (a) { + a = zdb(a); + if (ZD(a, 130)) { + d = a; + throw Adb(new agb($Ae + d)); + } else + throw Adb(a); + } + } + }; + _.Ib = function O2b() { + return "[top=" + this.d + ",left=" + this.b + ",bottom=" + this.a + ",right=" + this.c + "]"; + }; + _.a = 0; + _.b = 0; + _.c = 0; + _.d = 0; + sfb(_Ae, "Spacing", 214); + feb(140, 214, aBe, P2b, Q2b, R2b, S2b); + var h3 = sfb(_Ae, "ElkMargin", 140); + feb(660, 140, aBe, T2b); + sfb(RAe, "LMargin", 660); + feb(10, 404, { 3: 1, 305: 1, 10: 1, 404: 1, 96: 1, 137: 1 }, j3b); + _.Ib = function k3b() { + return i3b(this); + }; + _.i = false; + var jR = sfb(RAe, "LNode", 10); + feb(273, 22, { 3: 1, 34: 1, 22: 1, 273: 1 }, s3b); + var l3b, m3b, n3b, o3b, p3b, q3b; + var hR = tfb(RAe, "LNode/NodeType", 273, WI, u3b, t3b); + var v3b; + feb(775, 1, nwe, x3b); + _.Mb = function y3b(a) { + return Heb(TD(mQb(RD(a, 72), (yCc(), vAc)))); + }; + sfb(RAe, "LNode/lambda$0$Type", 775); + feb(107, 214, bBe, z3b, A3b, B3b); + var i3 = sfb(_Ae, "ElkPadding", 107); + feb(778, 107, bBe, C3b); + sfb(RAe, "LPadding", 778); + feb(12, 404, { 3: 1, 305: 1, 12: 1, 404: 1, 96: 1, 137: 1 }, R3b); + _.Ib = function S3b() { + var a, b, c; + a = new bib(); + Zhb((a.a += "p_", a), M3b(this)); + !!this.i && Zhb(Yhb((a.a += "[", a), this.i), "]"); + if (this.e.c.length == 1 && this.g.c.length == 0 && RD(Vmb(this.e, 0), 18).c != this) { + b = RD(Vmb(this.e, 0), 18).c; + Zhb((a.a += " << ", a), M3b(b)); + Zhb(Yhb((a.a += "[", a), b.i), "]"); + } + if (this.e.c.length == 0 && this.g.c.length == 1 && RD(Vmb(this.g, 0), 18).d != this) { + c = RD(Vmb(this.g, 0), 18).d; + Zhb((a.a += " >> ", a), M3b(c)); + Zhb(Yhb((a.a += "[", a), c.i), "]"); + } + return a.a; + }; + _.c = true; + _.d = false; + var D3b, E3b, F3b, G3b, H3b, I3b; + var xR = sfb(RAe, "LPort", 12); + feb(408, 1, Vve, T3b); + _.Jc = function U3b(a) { + xgb(this, a); + }; + _.Kc = function V3b() { + var a; + a = new Anb(this.a.e); + return new W3b(a); + }; + sfb(RAe, "LPort/1", 408); + feb(1309, 1, Ave, W3b); + _.Nb = function X3b(a) { + Ztb(this, a); + }; + _.Pb = function Z3b() { + return RD(ynb(this.a), 18).c; + }; + _.Ob = function Y3b() { + return xnb(this.a); + }; + _.Qb = function $3b() { + znb(this.a); + }; + sfb(RAe, "LPort/1/1", 1309); + feb(369, 1, Vve, _3b); + _.Jc = function a4b(a) { + xgb(this, a); + }; + _.Kc = function b4b() { + var a; + return a = new Anb(this.a.g), new c4b(a); + }; + sfb(RAe, "LPort/2", 369); + feb(776, 1, Ave, c4b); + _.Nb = function d4b(a) { + Ztb(this, a); + }; + _.Pb = function f4b() { + return RD(ynb(this.a), 18).d; + }; + _.Ob = function e4b() { + return xnb(this.a); + }; + _.Qb = function g4b() { + znb(this.a); + }; + sfb(RAe, "LPort/2/1", 776); + feb(1302, 1, Vve, h4b); + _.Jc = function i4b(a) { + xgb(this, a); + }; + _.Kc = function j4b() { + return new l4b(this); + }; + sfb(RAe, "LPort/CombineIter", 1302); + feb(208, 1, Ave, l4b); + _.Nb = function m4b(a) { + Ztb(this, a); + }; + _.Qb = function p4b() { + $tb(); + }; + _.Ob = function n4b() { + return k4b(this); + }; + _.Pb = function o4b() { + return xnb(this.a) ? ynb(this.a) : ynb(this.b); + }; + sfb(RAe, "LPort/CombineIter/1", 208); + feb(1303, 1, xye, r4b); + _.Lb = function s4b(a) { + return q4b(a); + }; + _.Fb = function t4b(a) { + return this === a; + }; + _.Mb = function u4b(a) { + return J3b(), RD(a, 12).g.c.length != 0; + }; + sfb(RAe, "LPort/lambda$0$Type", 1303); + feb(1304, 1, xye, w4b); + _.Lb = function x4b(a) { + return v4b(a); + }; + _.Fb = function y4b(a) { + return this === a; + }; + _.Mb = function z4b(a) { + return J3b(), RD(a, 12).e.c.length != 0; + }; + sfb(RAe, "LPort/lambda$1$Type", 1304); + feb(1305, 1, xye, A4b); + _.Lb = function B4b(a) { + return J3b(), RD(a, 12).j == (qpd(), Yod); + }; + _.Fb = function C4b(a) { + return this === a; + }; + _.Mb = function D4b(a) { + return J3b(), RD(a, 12).j == (qpd(), Yod); + }; + sfb(RAe, "LPort/lambda$2$Type", 1305); + feb(1306, 1, xye, E4b); + _.Lb = function F4b(a) { + return J3b(), RD(a, 12).j == (qpd(), Xod); + }; + _.Fb = function G4b(a) { + return this === a; + }; + _.Mb = function H4b(a) { + return J3b(), RD(a, 12).j == (qpd(), Xod); + }; + sfb(RAe, "LPort/lambda$3$Type", 1306); + feb(1307, 1, xye, I4b); + _.Lb = function J4b(a) { + return J3b(), RD(a, 12).j == (qpd(), npd); + }; + _.Fb = function K4b(a) { + return this === a; + }; + _.Mb = function L4b(a) { + return J3b(), RD(a, 12).j == (qpd(), npd); + }; + sfb(RAe, "LPort/lambda$4$Type", 1307); + feb(1308, 1, xye, M4b); + _.Lb = function N4b(a) { + return J3b(), RD(a, 12).j == (qpd(), ppd); + }; + _.Fb = function O4b(a) { + return this === a; + }; + _.Mb = function P4b(a) { + return J3b(), RD(a, 12).j == (qpd(), ppd); + }; + sfb(RAe, "LPort/lambda$5$Type", 1308); + feb(30, 305, { 3: 1, 20: 1, 305: 1, 30: 1, 96: 1, 137: 1 }, R4b); + _.Jc = function S4b(a) { + xgb(this, a); + }; + _.Kc = function T4b() { + return new Anb(this.a); + }; + _.Ib = function U4b() { + return "L_" + Wmb(this.b.b, this, 0) + Fe(this.a); + }; + sfb(RAe, "Layer", 30); + feb(1330, 1, {}, k5b); + sfb(cBe, dBe, 1330); + feb(1334, 1, {}, o5b); + _.Kb = function p5b(a) { + return AGd(RD(a, 84)); + }; + sfb(cBe, "ElkGraphImporter/0methodref$connectableShapeToNode$Type", 1334); + feb(1337, 1, {}, q5b); + _.Kb = function r5b(a) { + return AGd(RD(a, 84)); + }; + sfb(cBe, "ElkGraphImporter/1methodref$connectableShapeToNode$Type", 1337); + feb(1331, 1, Qve, s5b); + _.Cd = function t5b(a) { + $4b(this.a, RD(a, 123)); + }; + sfb(cBe, Nze, 1331); + feb(1332, 1, Qve, u5b); + _.Cd = function v5b(a) { + $4b(this.a, RD(a, 123)); + }; + sfb(cBe, eBe, 1332); + feb(1333, 1, {}, w5b); + _.Kb = function x5b(a) { + return new SDb(null, new Swb(mzd(RD(a, 74)), 16)); + }; + sfb(cBe, fBe, 1333); + feb(1335, 1, nwe, y5b); + _.Mb = function z5b(a) { + return l5b(this.a, RD(a, 27)); + }; + sfb(cBe, gBe, 1335); + feb(1336, 1, {}, A5b); + _.Kb = function B5b(a) { + return new SDb(null, new Swb(lzd(RD(a, 74)), 16)); + }; + sfb(cBe, "ElkGraphImporter/lambda$5$Type", 1336); + feb(1338, 1, nwe, C5b); + _.Mb = function D5b(a) { + return m5b(this.a, RD(a, 27)); + }; + sfb(cBe, "ElkGraphImporter/lambda$7$Type", 1338); + feb(1339, 1, nwe, E5b); + _.Mb = function F5b(a) { + return n5b(RD(a, 74)); + }; + sfb(cBe, "ElkGraphImporter/lambda$8$Type", 1339); + feb(1297, 1, {}, N5b); + var G5b; + sfb(cBe, "ElkGraphLayoutTransferrer", 1297); + feb(1298, 1, nwe, Q5b); + _.Mb = function R5b(a) { + return O5b(this.a, RD(a, 18)); + }; + sfb(cBe, "ElkGraphLayoutTransferrer/lambda$0$Type", 1298); + feb(1299, 1, Qve, S5b); + _.Cd = function T5b(a) { + H5b(); + Rmb(this.a, RD(a, 18)); + }; + sfb(cBe, "ElkGraphLayoutTransferrer/lambda$1$Type", 1299); + feb(1300, 1, nwe, U5b); + _.Mb = function V5b(a) { + return P5b(this.a, RD(a, 18)); + }; + sfb(cBe, "ElkGraphLayoutTransferrer/lambda$2$Type", 1300); + feb(1301, 1, Qve, W5b); + _.Cd = function X5b(a) { + H5b(); + Rmb(this.a, RD(a, 18)); + }; + sfb(cBe, "ElkGraphLayoutTransferrer/lambda$3$Type", 1301); + feb(819, 1, {}, e6b); + sfb(hBe, "BiLinkedHashMultiMap", 819); + feb(1550, 1, QAe, h6b); + _.Kf = function i6b(a, b) { + f6b(RD(a, 36), b); + }; + sfb(hBe, "CommentNodeMarginCalculator", 1550); + feb(1551, 1, {}, j6b); + _.Kb = function k6b(a) { + return new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(hBe, "CommentNodeMarginCalculator/lambda$0$Type", 1551); + feb(1552, 1, Qve, l6b); + _.Cd = function m6b(a) { + g6b(RD(a, 10)); + }; + sfb(hBe, "CommentNodeMarginCalculator/lambda$1$Type", 1552); + feb(1553, 1, QAe, q6b); + _.Kf = function r6b(a, b) { + o6b(RD(a, 36), b); + }; + sfb(hBe, "CommentPostprocessor", 1553); + feb(1554, 1, QAe, v6b); + _.Kf = function w6b(a, b) { + s6b(RD(a, 36), b); + }; + sfb(hBe, "CommentPreprocessor", 1554); + feb(1555, 1, QAe, y6b); + _.Kf = function z6b(a, b) { + x6b(RD(a, 36), b); + }; + sfb(hBe, "ConstraintsPostprocessor", 1555); + feb(1556, 1, QAe, G6b); + _.Kf = function H6b(a, b) { + E6b(RD(a, 36), b); + }; + sfb(hBe, "EdgeAndLayerConstraintEdgeReverser", 1556); + feb(1557, 1, QAe, K6b); + _.Kf = function M6b(a, b) { + I6b(RD(a, 36), b); + }; + sfb(hBe, "EndLabelPostprocessor", 1557); + feb(1558, 1, {}, N6b); + _.Kb = function O6b(a) { + return new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(hBe, "EndLabelPostprocessor/lambda$0$Type", 1558); + feb(1559, 1, nwe, P6b); + _.Mb = function Q6b(a) { + return L6b(RD(a, 10)); + }; + sfb(hBe, "EndLabelPostprocessor/lambda$1$Type", 1559); + feb(1560, 1, Qve, R6b); + _.Cd = function S6b(a) { + J6b(RD(a, 10)); + }; + sfb(hBe, "EndLabelPostprocessor/lambda$2$Type", 1560); + feb(1561, 1, QAe, b7b); + _.Kf = function e7b(a, b) { + Z6b(RD(a, 36), b); + }; + sfb(hBe, "EndLabelPreprocessor", 1561); + feb(1562, 1, {}, f7b); + _.Kb = function g7b(a) { + return new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(hBe, "EndLabelPreprocessor/lambda$0$Type", 1562); + feb(1563, 1, Qve, h7b); + _.Cd = function i7b(a) { + V6b(this.a, this.b, this.c, RD(a, 10)); + }; + _.a = 0; + _.b = 0; + _.c = false; + sfb(hBe, "EndLabelPreprocessor/lambda$1$Type", 1563); + feb(1564, 1, nwe, j7b); + _.Mb = function k7b(a) { + return dE(mQb(RD(a, 72), (yCc(), wAc))) === dE((Omd(), Nmd)); + }; + sfb(hBe, "EndLabelPreprocessor/lambda$2$Type", 1564); + feb(1565, 1, Qve, l7b); + _.Cd = function m7b(a) { + Mub(this.a, RD(a, 72)); + }; + sfb(hBe, "EndLabelPreprocessor/lambda$3$Type", 1565); + feb(1566, 1, nwe, n7b); + _.Mb = function o7b(a) { + return dE(mQb(RD(a, 72), (yCc(), wAc))) === dE((Omd(), Mmd)); + }; + sfb(hBe, "EndLabelPreprocessor/lambda$4$Type", 1566); + feb(1567, 1, Qve, p7b); + _.Cd = function q7b(a) { + Mub(this.a, RD(a, 72)); + }; + sfb(hBe, "EndLabelPreprocessor/lambda$5$Type", 1567); + feb(1615, 1, QAe, z7b); + _.Kf = function A7b(a, b) { + w7b(RD(a, 36), b); + }; + var r7b; + sfb(hBe, "EndLabelSorter", 1615); + feb(1616, 1, fye, C7b); + _.Ne = function D7b(a, b) { + return B7b(RD(a, 466), RD(b, 466)); + }; + _.Fb = function E7b(a) { + return this === a; + }; + _.Oe = function F7b() { + return new Frb(this); + }; + sfb(hBe, "EndLabelSorter/1", 1616); + feb(466, 1, { 466: 1 }, G7b); + sfb(hBe, "EndLabelSorter/LabelGroup", 466); + feb(1617, 1, {}, H7b); + _.Kb = function I7b(a) { + return s7b(), new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(hBe, "EndLabelSorter/lambda$0$Type", 1617); + feb(1618, 1, nwe, J7b); + _.Mb = function K7b(a) { + return s7b(), RD(a, 10).k == (r3b(), p3b); + }; + sfb(hBe, "EndLabelSorter/lambda$1$Type", 1618); + feb(1619, 1, Qve, L7b); + _.Cd = function M7b(a) { + x7b(RD(a, 10)); + }; + sfb(hBe, "EndLabelSorter/lambda$2$Type", 1619); + feb(1620, 1, nwe, N7b); + _.Mb = function O7b(a) { + return s7b(), dE(mQb(RD(a, 72), (yCc(), wAc))) === dE((Omd(), Mmd)); + }; + sfb(hBe, "EndLabelSorter/lambda$3$Type", 1620); + feb(1621, 1, nwe, P7b); + _.Mb = function Q7b(a) { + return s7b(), dE(mQb(RD(a, 72), (yCc(), wAc))) === dE((Omd(), Nmd)); + }; + sfb(hBe, "EndLabelSorter/lambda$4$Type", 1621); + feb(1568, 1, QAe, a8b); + _.Kf = function b8b(a, b) { + $7b(this, RD(a, 36)); + }; + _.b = 0; + _.c = 0; + sfb(hBe, "FinalSplineBendpointsCalculator", 1568); + feb(1569, 1, {}, c8b); + _.Kb = function d8b(a) { + return new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(hBe, "FinalSplineBendpointsCalculator/lambda$0$Type", 1569); + feb(1570, 1, {}, e8b); + _.Kb = function f8b(a) { + return new SDb(null, new Twb(new is(Mr(a3b(RD(a, 10)).a.Kc(), new ir())))); + }; + sfb(hBe, "FinalSplineBendpointsCalculator/lambda$1$Type", 1570); + feb(1571, 1, nwe, g8b); + _.Mb = function h8b(a) { + return !W0b(RD(a, 18)); + }; + sfb(hBe, "FinalSplineBendpointsCalculator/lambda$2$Type", 1571); + feb(1572, 1, nwe, i8b); + _.Mb = function j8b(a) { + return nQb(RD(a, 18), (Ywc(), Twc)); + }; + sfb(hBe, "FinalSplineBendpointsCalculator/lambda$3$Type", 1572); + feb(1573, 1, Qve, k8b); + _.Cd = function l8b(a) { + T7b(this.a, RD(a, 131)); + }; + sfb(hBe, "FinalSplineBendpointsCalculator/lambda$4$Type", 1573); + feb(1574, 1, Qve, m8b); + _.Cd = function n8b(a) { + Eob(RD(a, 18).a); + }; + sfb(hBe, "FinalSplineBendpointsCalculator/lambda$5$Type", 1574); + feb(803, 1, QAe, L8b); + _.Kf = function M8b(a, b) { + C8b(this, RD(a, 36), b); + }; + sfb(hBe, "GraphTransformer", 803); + feb(517, 22, { 3: 1, 34: 1, 22: 1, 517: 1 }, Q8b); + var N8b, O8b; + var vS = tfb(hBe, "GraphTransformer/Mode", 517, WI, S8b, R8b); + var T8b; + feb(1575, 1, QAe, Z8b); + _.Kf = function $8b(a, b) { + W8b(RD(a, 36), b); + }; + sfb(hBe, "HierarchicalNodeResizingProcessor", 1575); + feb(1576, 1, QAe, f9b); + _.Kf = function g9b(a, b) { + b9b(RD(a, 36), b); + }; + sfb(hBe, "HierarchicalPortConstraintProcessor", 1576); + feb(1577, 1, fye, i9b); + _.Ne = function j9b(a, b) { + return h9b(RD(a, 10), RD(b, 10)); + }; + _.Fb = function k9b(a) { + return this === a; + }; + _.Oe = function l9b() { + return new Frb(this); + }; + sfb(hBe, "HierarchicalPortConstraintProcessor/NodeComparator", 1577); + feb(1578, 1, QAe, o9b); + _.Kf = function p9b(a, b) { + m9b(RD(a, 36), b); + }; + sfb(hBe, "HierarchicalPortDummySizeProcessor", 1578); + feb(1579, 1, QAe, C9b); + _.Kf = function D9b(a, b) { + v9b(this, RD(a, 36), b); + }; + _.a = 0; + sfb(hBe, "HierarchicalPortOrthogonalEdgeRouter", 1579); + feb(1580, 1, fye, F9b); + _.Ne = function G9b(a, b) { + return E9b(RD(a, 10), RD(b, 10)); + }; + _.Fb = function H9b(a) { + return this === a; + }; + _.Oe = function I9b() { + return new Frb(this); + }; + sfb(hBe, "HierarchicalPortOrthogonalEdgeRouter/1", 1580); + feb(1581, 1, fye, K9b); + _.Ne = function L9b(a, b) { + return J9b(RD(a, 10), RD(b, 10)); + }; + _.Fb = function M9b(a) { + return this === a; + }; + _.Oe = function N9b() { + return new Frb(this); + }; + sfb(hBe, "HierarchicalPortOrthogonalEdgeRouter/2", 1581); + feb(1582, 1, QAe, Q9b); + _.Kf = function R9b(a, b) { + P9b(RD(a, 36), b); + }; + sfb(hBe, "HierarchicalPortPositionProcessor", 1582); + feb(1583, 1, QAe, $9b); + _.Kf = function _9b(a, b) { + Z9b(this, RD(a, 36)); + }; + _.a = 0; + _.c = 0; + var S9b, T9b; + sfb(hBe, "HighDegreeNodeLayeringProcessor", 1583); + feb(580, 1, { 580: 1 }, aac); + _.b = -1; + _.d = -1; + sfb(hBe, "HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation", 580); + feb(1584, 1, {}, bac); + _.Kb = function cac(a) { + return U9b(), Z2b(RD(a, 10)); + }; + _.Fb = function dac(a) { + return this === a; + }; + sfb(hBe, "HighDegreeNodeLayeringProcessor/lambda$0$Type", 1584); + feb(1585, 1, {}, eac); + _.Kb = function fac(a) { + return U9b(), a3b(RD(a, 10)); + }; + _.Fb = function gac(a) { + return this === a; + }; + sfb(hBe, "HighDegreeNodeLayeringProcessor/lambda$1$Type", 1585); + feb(1591, 1, QAe, mac); + _.Kf = function nac(a, b) { + lac(this, RD(a, 36), b); + }; + sfb(hBe, "HyperedgeDummyMerger", 1591); + feb(804, 1, {}, oac); + _.a = false; + _.b = false; + _.c = false; + sfb(hBe, "HyperedgeDummyMerger/MergeState", 804); + feb(1592, 1, {}, pac); + _.Kb = function qac(a) { + return new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(hBe, "HyperedgeDummyMerger/lambda$0$Type", 1592); + feb(1593, 1, {}, rac); + _.Kb = function sac(a) { + return new SDb(null, new Swb(RD(a, 10).j, 16)); + }; + sfb(hBe, "HyperedgeDummyMerger/lambda$1$Type", 1593); + feb(1594, 1, Qve, tac); + _.Cd = function uac(a) { + RD(a, 12).p = -1; + }; + sfb(hBe, "HyperedgeDummyMerger/lambda$2$Type", 1594); + feb(1595, 1, QAe, xac); + _.Kf = function yac(a, b) { + wac(RD(a, 36), b); + }; + sfb(hBe, "HypernodesProcessor", 1595); + feb(1596, 1, QAe, Aac); + _.Kf = function Bac(a, b) { + zac(RD(a, 36), b); + }; + sfb(hBe, "InLayerConstraintProcessor", 1596); + feb(1597, 1, QAe, Dac); + _.Kf = function Eac(a, b) { + Cac(RD(a, 36), b); + }; + sfb(hBe, "InnermostNodeMarginCalculator", 1597); + feb(1598, 1, QAe, Iac); + _.Kf = function Nac(a, b) { + Hac(this, RD(a, 36)); + }; + _.a = pxe; + _.b = pxe; + _.c = oxe; + _.d = oxe; + var XS = sfb(hBe, "InteractiveExternalPortPositioner", 1598); + feb(1599, 1, {}, Oac); + _.Kb = function Pac(a) { + return RD(a, 18).d.i; + }; + _.Fb = function Qac(a) { + return this === a; + }; + sfb(hBe, "InteractiveExternalPortPositioner/lambda$0$Type", 1599); + feb(1600, 1, {}, Rac); + _.Kb = function Sac(a) { + return Jac(this.a, UD(a)); + }; + _.Fb = function Tac(a) { + return this === a; + }; + sfb(hBe, "InteractiveExternalPortPositioner/lambda$1$Type", 1600); + feb(1601, 1, {}, Uac); + _.Kb = function Vac(a) { + return RD(a, 18).c.i; + }; + _.Fb = function Wac(a) { + return this === a; + }; + sfb(hBe, "InteractiveExternalPortPositioner/lambda$2$Type", 1601); + feb(1602, 1, {}, Xac); + _.Kb = function Yac(a) { + return Kac(this.a, UD(a)); + }; + _.Fb = function Zac(a) { + return this === a; + }; + sfb(hBe, "InteractiveExternalPortPositioner/lambda$3$Type", 1602); + feb(1603, 1, {}, $ac); + _.Kb = function _ac(a) { + return Lac(this.a, UD(a)); + }; + _.Fb = function abc(a) { + return this === a; + }; + sfb(hBe, "InteractiveExternalPortPositioner/lambda$4$Type", 1603); + feb(1604, 1, {}, bbc); + _.Kb = function cbc(a) { + return Mac(this.a, UD(a)); + }; + _.Fb = function dbc(a) { + return this === a; + }; + sfb(hBe, "InteractiveExternalPortPositioner/lambda$5$Type", 1604); + feb(81, 22, { 3: 1, 34: 1, 22: 1, 81: 1, 196: 1 }, icc); + _.dg = function jcc() { + switch (this.g) { + case 15: + return new Hrc(); + case 22: + return new bsc(); + case 47: + return new ksc(); + case 28: + case 35: + return new Ldc(); + case 32: + return new h6b(); + case 42: + return new q6b(); + case 1: + return new v6b(); + case 41: + return new y6b(); + case 56: + return new L8b((P8b(), O8b)); + case 0: + return new L8b((P8b(), N8b)); + case 2: + return new G6b(); + case 54: + return new K6b(); + case 33: + return new b7b(); + case 51: + return new a8b(); + case 55: + return new Z8b(); + case 13: + return new f9b(); + case 38: + return new o9b(); + case 44: + return new C9b(); + case 40: + return new Q9b(); + case 9: + return new $9b(); + case 49: + return new Yjc(); + case 37: + return new mac(); + case 43: + return new xac(); + case 27: + return new Aac(); + case 30: + return new Dac(); + case 3: + return new Iac(); + case 18: + return new scc(); + case 29: + return new ycc(); + case 5: + return new Lcc(); + case 50: + return new Ucc(); + case 34: + return new pdc(); + case 36: + return new Zdc(); + case 52: + return new z7b(); + case 11: + return new fec(); + case 7: + return new pec(); + case 39: + return new Dec(); + case 45: + return new Gec(); + case 16: + return new Kec(); + case 10: + return new _ec(); + case 48: + return new Bfc(); + case 21: + return new Ifc(); + case 23: + return new FKc((RKc(), PKc)); + case 8: + return new Rfc(); + case 12: + return new Zfc(); + case 4: + return new cgc(); + case 19: + return new xgc(); + case 17: + return new Vgc(); + case 53: + return new Ygc(); + case 6: + return new Nhc(); + case 25: + return new ahc(); + case 46: + return new rhc(); + case 31: + return new Yhc(); + case 14: + return new jic(); + case 26: + return new Ssc(); + case 20: + return new yic(); + case 24: + return new FKc((RKc(), QKc)); + default: + throw Adb(new agb(lBe + (this.f != null ? this.f : "" + this.g))); + } + }; + var ebc, fbc, gbc, hbc, ibc, jbc, kbc, lbc, mbc, nbc, obc, pbc, qbc, rbc, sbc, tbc, ubc, vbc, wbc, xbc, ybc, zbc, Abc, Bbc, Cbc, Dbc, Ebc, Fbc, Gbc, Hbc, Ibc, Jbc, Kbc, Lbc, Mbc, Nbc, Obc, Pbc, Qbc, Rbc, Sbc, Tbc, Ubc, Vbc, Wbc, Xbc, Ybc, Zbc, $bc, _bc, acc, bcc, ccc, dcc, ecc, fcc, gcc; + var YS = tfb(hBe, mBe, 81, WI, lcc, kcc); + var mcc; + feb(1605, 1, QAe, scc); + _.Kf = function tcc(a, b) { + qcc(RD(a, 36), b); + }; + sfb(hBe, "InvertedPortProcessor", 1605); + feb(1606, 1, QAe, ycc); + _.Kf = function zcc(a, b) { + xcc(RD(a, 36), b); + }; + sfb(hBe, "LabelAndNodeSizeProcessor", 1606); + feb(1607, 1, nwe, Acc); + _.Mb = function Bcc(a) { + return RD(a, 10).k == (r3b(), p3b); + }; + sfb(hBe, "LabelAndNodeSizeProcessor/lambda$0$Type", 1607); + feb(1608, 1, nwe, Ccc); + _.Mb = function Dcc(a) { + return RD(a, 10).k == (r3b(), m3b); + }; + sfb(hBe, "LabelAndNodeSizeProcessor/lambda$1$Type", 1608); + feb(1609, 1, Qve, Ecc); + _.Cd = function Fcc(a) { + vcc(this.b, this.a, this.c, RD(a, 10)); + }; + _.a = false; + _.c = false; + sfb(hBe, "LabelAndNodeSizeProcessor/lambda$2$Type", 1609); + feb(1610, 1, QAe, Lcc); + _.Kf = function Mcc(a, b) { + Jcc(RD(a, 36), b); + }; + var Gcc; + sfb(hBe, "LabelDummyInserter", 1610); + feb(1611, 1, xye, Ncc); + _.Lb = function Occ(a) { + return dE(mQb(RD(a, 72), (yCc(), wAc))) === dE((Omd(), Lmd)); + }; + _.Fb = function Pcc(a) { + return this === a; + }; + _.Mb = function Qcc(a) { + return dE(mQb(RD(a, 72), (yCc(), wAc))) === dE((Omd(), Lmd)); + }; + sfb(hBe, "LabelDummyInserter/1", 1611); + feb(1612, 1, QAe, Ucc); + _.Kf = function Vcc(a, b) { + Tcc(RD(a, 36), b); + }; + sfb(hBe, "LabelDummyRemover", 1612); + feb(1613, 1, nwe, Wcc); + _.Mb = function Xcc(a) { + return Heb(TD(mQb(RD(a, 72), (yCc(), vAc)))); + }; + sfb(hBe, "LabelDummyRemover/lambda$0$Type", 1613); + feb(1378, 1, QAe, pdc); + _.Kf = function tdc(a, b) { + ldc(this, RD(a, 36), b); + }; + _.a = null; + var Ycc; + sfb(hBe, "LabelDummySwitcher", 1378); + feb(293, 1, { 293: 1 }, xdc); + _.c = 0; + _.d = null; + _.f = 0; + sfb(hBe, "LabelDummySwitcher/LabelDummyInfo", 293); + feb(1379, 1, {}, ydc); + _.Kb = function zdc(a) { + return Zcc(), new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(hBe, "LabelDummySwitcher/lambda$0$Type", 1379); + feb(1380, 1, nwe, Adc); + _.Mb = function Bdc(a) { + return Zcc(), RD(a, 10).k == (r3b(), n3b); + }; + sfb(hBe, "LabelDummySwitcher/lambda$1$Type", 1380); + feb(1381, 1, {}, Cdc); + _.Kb = function Ddc(a) { + return qdc(this.a, RD(a, 10)); + }; + sfb(hBe, "LabelDummySwitcher/lambda$2$Type", 1381); + feb(1382, 1, Qve, Edc); + _.Cd = function Fdc(a) { + rdc(this.a, RD(a, 293)); + }; + sfb(hBe, "LabelDummySwitcher/lambda$3$Type", 1382); + feb(1383, 1, fye, Gdc); + _.Ne = function Hdc(a, b) { + return sdc(RD(a, 293), RD(b, 293)); + }; + _.Fb = function Idc(a) { + return this === a; + }; + _.Oe = function Jdc() { + return new Frb(this); + }; + sfb(hBe, "LabelDummySwitcher/lambda$4$Type", 1383); + feb(802, 1, QAe, Ldc); + _.Kf = function Mdc(a, b) { + Kdc(RD(a, 36), b); + }; + sfb(hBe, "LabelManagementProcessor", 802); + feb(1614, 1, QAe, Zdc); + _.Kf = function $dc(a, b) { + Tdc(RD(a, 36), b); + }; + sfb(hBe, "LabelSideSelector", 1614); + feb(1622, 1, QAe, fec); + _.Kf = function gec(a, b) { + bec(RD(a, 36), b); + }; + sfb(hBe, "LayerConstraintPostprocessor", 1622); + feb(1623, 1, QAe, pec); + _.Kf = function qec(a, b) { + nec(RD(a, 36), b); + }; + var hec; + sfb(hBe, "LayerConstraintPreprocessor", 1623); + feb(371, 22, { 3: 1, 34: 1, 22: 1, 371: 1 }, xec); + var rec, sec, tec, uec; + var qT = tfb(hBe, "LayerConstraintPreprocessor/HiddenNodeConnections", 371, WI, zec, yec); + var Aec; + feb(1624, 1, QAe, Dec); + _.Kf = function Eec(a, b) { + Cec(RD(a, 36), b); + }; + sfb(hBe, "LayerSizeAndGraphHeightCalculator", 1624); + feb(1625, 1, QAe, Gec); + _.Kf = function Iec(a, b) { + Fec(RD(a, 36), b); + }; + sfb(hBe, "LongEdgeJoiner", 1625); + feb(1626, 1, QAe, Kec); + _.Kf = function Mec(a, b) { + Jec(RD(a, 36), b); + }; + sfb(hBe, "LongEdgeSplitter", 1626); + feb(1627, 1, QAe, _ec); + _.Kf = function cfc(a, b) { + Vec(this, RD(a, 36), b); + }; + _.e = 0; + _.f = 0; + _.j = 0; + _.k = 0; + _.n = 0; + _.o = 0; + var Pec, Qec; + sfb(hBe, "NodePromotion", 1627); + feb(1628, 1, fye, efc); + _.Ne = function ffc(a, b) { + return dfc(RD(a, 10), RD(b, 10)); + }; + _.Fb = function gfc(a) { + return this === a; + }; + _.Oe = function hfc() { + return new Frb(this); + }; + sfb(hBe, "NodePromotion/1", 1628); + feb(1629, 1, fye, jfc); + _.Ne = function kfc(a, b) { + return ifc(RD(a, 10), RD(b, 10)); + }; + _.Fb = function lfc(a) { + return this === a; + }; + _.Oe = function mfc() { + return new Frb(this); + }; + sfb(hBe, "NodePromotion/2", 1629); + feb(1630, 1, {}, nfc); + _.Kb = function ofc(a) { + return RD(a, 42), Rec(), Geb(), true; + }; + _.Fb = function pfc(a) { + return this === a; + }; + sfb(hBe, "NodePromotion/lambda$0$Type", 1630); + feb(1631, 1, {}, qfc); + _.Kb = function rfc(a) { + return afc(this.a, RD(a, 42)); + }; + _.Fb = function sfc(a) { + return this === a; + }; + _.a = 0; + sfb(hBe, "NodePromotion/lambda$1$Type", 1631); + feb(1632, 1, {}, tfc); + _.Kb = function ufc(a) { + return bfc(this.a, RD(a, 42)); + }; + _.Fb = function vfc(a) { + return this === a; + }; + _.a = 0; + sfb(hBe, "NodePromotion/lambda$2$Type", 1632); + feb(1633, 1, QAe, Bfc); + _.Kf = function Cfc(a, b) { + wfc(RD(a, 36), b); + }; + sfb(hBe, "NorthSouthPortPostprocessor", 1633); + feb(1634, 1, QAe, Ifc); + _.Kf = function Kfc(a, b) { + Gfc(RD(a, 36), b); + }; + sfb(hBe, "NorthSouthPortPreprocessor", 1634); + feb(1635, 1, fye, Lfc); + _.Ne = function Mfc(a, b) { + return Jfc(RD(a, 12), RD(b, 12)); + }; + _.Fb = function Nfc(a) { + return this === a; + }; + _.Oe = function Ofc() { + return new Frb(this); + }; + sfb(hBe, "NorthSouthPortPreprocessor/lambda$0$Type", 1635); + feb(1636, 1, QAe, Rfc); + _.Kf = function Tfc(a, b) { + Qfc(RD(a, 36), b); + }; + sfb(hBe, "PartitionMidprocessor", 1636); + feb(1637, 1, nwe, Ufc); + _.Mb = function Vfc(a) { + return nQb(RD(a, 10), (yCc(), tBc)); + }; + sfb(hBe, "PartitionMidprocessor/lambda$0$Type", 1637); + feb(1638, 1, Qve, Wfc); + _.Cd = function Xfc(a) { + Sfc(this.a, RD(a, 10)); + }; + sfb(hBe, "PartitionMidprocessor/lambda$1$Type", 1638); + feb(1639, 1, QAe, Zfc); + _.Kf = function $fc(a, b) { + Yfc(RD(a, 36), b); + }; + sfb(hBe, "PartitionPostprocessor", 1639); + feb(1640, 1, QAe, cgc); + _.Kf = function dgc(a, b) { + agc(RD(a, 36), b); + }; + sfb(hBe, "PartitionPreprocessor", 1640); + feb(1641, 1, nwe, egc); + _.Mb = function fgc(a) { + return nQb(RD(a, 10), (yCc(), tBc)); + }; + sfb(hBe, "PartitionPreprocessor/lambda$0$Type", 1641); + feb(1642, 1, {}, ggc); + _.Kb = function hgc(a) { + return new SDb(null, new Twb(new is(Mr(a3b(RD(a, 10)).a.Kc(), new ir())))); + }; + sfb(hBe, "PartitionPreprocessor/lambda$1$Type", 1642); + feb(1643, 1, nwe, igc); + _.Mb = function jgc(a) { + return _fc(RD(a, 18)); + }; + sfb(hBe, "PartitionPreprocessor/lambda$2$Type", 1643); + feb(1644, 1, Qve, kgc); + _.Cd = function lgc(a) { + bgc(RD(a, 18)); + }; + sfb(hBe, "PartitionPreprocessor/lambda$3$Type", 1644); + feb(1645, 1, QAe, xgc); + _.Kf = function Bgc(a, b) { + ugc(RD(a, 36), b); + }; + var mgc, ngc, ogc, pgc, qgc, rgc; + sfb(hBe, "PortListSorter", 1645); + feb(1648, 1, fye, Dgc); + _.Ne = function Egc(a, b) { + return ygc(RD(a, 12), RD(b, 12)); + }; + _.Fb = function Fgc(a) { + return this === a; + }; + _.Oe = function Ggc() { + return new Frb(this); + }; + sfb(hBe, "PortListSorter/lambda$0$Type", 1648); + feb(1650, 1, fye, Hgc); + _.Ne = function Igc(a, b) { + return zgc(RD(a, 12), RD(b, 12)); + }; + _.Fb = function Jgc(a) { + return this === a; + }; + _.Oe = function Kgc() { + return new Frb(this); + }; + sfb(hBe, "PortListSorter/lambda$1$Type", 1650); + feb(1646, 1, {}, Lgc); + _.Kb = function Mgc(a) { + return sgc(), RD(a, 12).e; + }; + sfb(hBe, "PortListSorter/lambda$2$Type", 1646); + feb(1647, 1, {}, Ngc); + _.Kb = function Ogc(a) { + return sgc(), RD(a, 12).g; + }; + sfb(hBe, "PortListSorter/lambda$3$Type", 1647); + feb(1649, 1, fye, Pgc); + _.Ne = function Qgc(a, b) { + return Agc(RD(a, 12), RD(b, 12)); + }; + _.Fb = function Rgc(a) { + return this === a; + }; + _.Oe = function Sgc() { + return new Frb(this); + }; + sfb(hBe, "PortListSorter/lambda$4$Type", 1649); + feb(1651, 1, QAe, Vgc); + _.Kf = function Wgc(a, b) { + Tgc(RD(a, 36), b); + }; + sfb(hBe, "PortSideProcessor", 1651); + feb(1652, 1, QAe, Ygc); + _.Kf = function Zgc(a, b) { + Xgc(RD(a, 36), b); + }; + sfb(hBe, "ReversedEdgeRestorer", 1652); + feb(1657, 1, QAe, ahc); + _.Kf = function bhc(a, b) { + $gc(this, RD(a, 36), b); + }; + sfb(hBe, "SelfLoopPortRestorer", 1657); + feb(1658, 1, {}, chc); + _.Kb = function dhc(a) { + return new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(hBe, "SelfLoopPortRestorer/lambda$0$Type", 1658); + feb(1659, 1, nwe, ehc); + _.Mb = function fhc(a) { + return RD(a, 10).k == (r3b(), p3b); + }; + sfb(hBe, "SelfLoopPortRestorer/lambda$1$Type", 1659); + feb(1660, 1, nwe, ghc); + _.Mb = function hhc(a) { + return nQb(RD(a, 10), (Ywc(), Pwc)); + }; + sfb(hBe, "SelfLoopPortRestorer/lambda$2$Type", 1660); + feb(1661, 1, {}, ihc); + _.Kb = function jhc(a) { + return RD(mQb(RD(a, 10), (Ywc(), Pwc)), 337); + }; + sfb(hBe, "SelfLoopPortRestorer/lambda$3$Type", 1661); + feb(1662, 1, Qve, khc); + _.Cd = function lhc(a) { + _gc(this.a, RD(a, 337)); + }; + sfb(hBe, "SelfLoopPortRestorer/lambda$4$Type", 1662); + feb(805, 1, Qve, mhc); + _.Cd = function nhc(a) { + Rmc(RD(a, 105)); + }; + sfb(hBe, "SelfLoopPortRestorer/lambda$5$Type", 805); + feb(1663, 1, QAe, rhc); + _.Kf = function thc(a, b) { + ohc(RD(a, 36), b); + }; + sfb(hBe, "SelfLoopPostProcessor", 1663); + feb(1664, 1, {}, uhc); + _.Kb = function vhc(a) { + return new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(hBe, "SelfLoopPostProcessor/lambda$0$Type", 1664); + feb(1665, 1, nwe, whc); + _.Mb = function xhc(a) { + return RD(a, 10).k == (r3b(), p3b); + }; + sfb(hBe, "SelfLoopPostProcessor/lambda$1$Type", 1665); + feb(1666, 1, nwe, yhc); + _.Mb = function zhc(a) { + return nQb(RD(a, 10), (Ywc(), Pwc)); + }; + sfb(hBe, "SelfLoopPostProcessor/lambda$2$Type", 1666); + feb(1667, 1, Qve, Ahc); + _.Cd = function Bhc(a) { + phc(RD(a, 10)); + }; + sfb(hBe, "SelfLoopPostProcessor/lambda$3$Type", 1667); + feb(1668, 1, {}, Chc); + _.Kb = function Dhc(a) { + return new SDb(null, new Swb(RD(a, 105).f, 1)); + }; + sfb(hBe, "SelfLoopPostProcessor/lambda$4$Type", 1668); + feb(1669, 1, Qve, Ehc); + _.Cd = function Fhc(a) { + qhc(this.a, RD(a, 340)); + }; + sfb(hBe, "SelfLoopPostProcessor/lambda$5$Type", 1669); + feb(1670, 1, nwe, Ghc); + _.Mb = function Hhc(a) { + return !!RD(a, 105).i; + }; + sfb(hBe, "SelfLoopPostProcessor/lambda$6$Type", 1670); + feb(1671, 1, Qve, Ihc); + _.Cd = function Jhc(a) { + shc(this.a, RD(a, 105)); + }; + sfb(hBe, "SelfLoopPostProcessor/lambda$7$Type", 1671); + feb(1653, 1, QAe, Nhc); + _.Kf = function Ohc(a, b) { + Mhc(RD(a, 36), b); + }; + sfb(hBe, "SelfLoopPreProcessor", 1653); + feb(1654, 1, {}, Phc); + _.Kb = function Qhc(a) { + return new SDb(null, new Swb(RD(a, 105).f, 1)); + }; + sfb(hBe, "SelfLoopPreProcessor/lambda$0$Type", 1654); + feb(1655, 1, {}, Rhc); + _.Kb = function Shc(a) { + return RD(a, 340).a; + }; + sfb(hBe, "SelfLoopPreProcessor/lambda$1$Type", 1655); + feb(1656, 1, Qve, Thc); + _.Cd = function Uhc(a) { + Lhc(RD(a, 18)); + }; + sfb(hBe, "SelfLoopPreProcessor/lambda$2$Type", 1656); + feb(1672, 1, QAe, Yhc); + _.Kf = function Zhc(a, b) { + Whc(this, RD(a, 36), b); + }; + sfb(hBe, "SelfLoopRouter", 1672); + feb(1673, 1, {}, $hc); + _.Kb = function _hc(a) { + return new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(hBe, "SelfLoopRouter/lambda$0$Type", 1673); + feb(1674, 1, nwe, aic); + _.Mb = function bic(a) { + return RD(a, 10).k == (r3b(), p3b); + }; + sfb(hBe, "SelfLoopRouter/lambda$1$Type", 1674); + feb(1675, 1, nwe, cic); + _.Mb = function dic(a) { + return nQb(RD(a, 10), (Ywc(), Pwc)); + }; + sfb(hBe, "SelfLoopRouter/lambda$2$Type", 1675); + feb(1676, 1, {}, eic); + _.Kb = function fic(a) { + return RD(mQb(RD(a, 10), (Ywc(), Pwc)), 337); + }; + sfb(hBe, "SelfLoopRouter/lambda$3$Type", 1676); + feb(1677, 1, Qve, gic); + _.Cd = function hic(a) { + Vhc(this.a, this.b, RD(a, 337)); + }; + sfb(hBe, "SelfLoopRouter/lambda$4$Type", 1677); + feb(1678, 1, QAe, jic); + _.Kf = function mic(a, b) { + iic(RD(a, 36), b); + }; + sfb(hBe, "SemiInteractiveCrossMinProcessor", 1678); + feb(1679, 1, nwe, nic); + _.Mb = function oic(a) { + return RD(a, 10).k == (r3b(), p3b); + }; + sfb(hBe, "SemiInteractiveCrossMinProcessor/lambda$0$Type", 1679); + feb(1680, 1, nwe, pic); + _.Mb = function qic(a) { + return lQb(RD(a, 10))._b((yCc(), IBc)); + }; + sfb(hBe, "SemiInteractiveCrossMinProcessor/lambda$1$Type", 1680); + feb(1681, 1, fye, ric); + _.Ne = function sic(a, b) { + return kic(RD(a, 10), RD(b, 10)); + }; + _.Fb = function tic(a) { + return this === a; + }; + _.Oe = function uic() { + return new Frb(this); + }; + sfb(hBe, "SemiInteractiveCrossMinProcessor/lambda$2$Type", 1681); + feb(1682, 1, {}, vic); + _.Ve = function wic(a, b) { + return lic(RD(a, 10), RD(b, 10)); + }; + sfb(hBe, "SemiInteractiveCrossMinProcessor/lambda$3$Type", 1682); + feb(1684, 1, QAe, yic); + _.Kf = function Cic(a, b) { + xic(RD(a, 36), b); + }; + sfb(hBe, "SortByInputModelProcessor", 1684); + feb(1685, 1, nwe, Dic); + _.Mb = function Eic(a) { + return RD(a, 12).g.c.length != 0; + }; + sfb(hBe, "SortByInputModelProcessor/lambda$0$Type", 1685); + feb(1686, 1, Qve, Fic); + _.Cd = function Gic(a) { + Aic(this.a, RD(a, 12)); + }; + sfb(hBe, "SortByInputModelProcessor/lambda$1$Type", 1686); + feb(1759, 817, {}, Pic); + _.df = function Qic(a) { + var b, c, d, e; + this.c = a; + switch (this.a.g) { + case 2: + b = new bnb(); + FDb(CDb(new SDb(null, new Swb(this.c.a.b, 16)), new Rjc()), new Tjc(this, b)); + eHb(this, new Zic()); + Umb(b, new bjc()); + b.c.length = 0; + FDb(CDb(new SDb(null, new Swb(this.c.a.b, 16)), new djc()), new fjc(b)); + eHb(this, new jjc()); + Umb(b, new njc()); + b.c.length = 0; + c = Wvb(TCb(HDb(new SDb(null, new Swb(this.c.a.b, 16)), new pjc(this))), new rjc()); + FDb(new SDb(null, new Swb(this.c.a.a, 16)), new vjc(c, b)); + eHb(this, new zjc()); + Umb(b, new Djc()); + b.c.length = 0; + break; + case 3: + d = new bnb(); + eHb(this, new Ric()); + e = Wvb(TCb(HDb(new SDb(null, new Swb(this.c.a.b, 16)), new Vic(this))), new tjc()); + FDb(CDb(new SDb(null, new Swb(this.c.a.b, 16)), new Fjc()), new Hjc(e, d)); + eHb(this, new Ljc()); + Umb(d, new Pjc()); + d.c.length = 0; + break; + default: + throw Adb(new Ied()); + } + }; + _.b = 0; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation", 1759); + feb(1760, 1, xye, Ric); + _.Lb = function Sic(a) { + return ZD(RD(a, 60).g, 154); + }; + _.Fb = function Tic(a) { + return this === a; + }; + _.Mb = function Uic(a) { + return ZD(RD(a, 60).g, 154); + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$0$Type", 1760); + feb(1761, 1, {}, Vic); + _.Ye = function Wic(a) { + return Jic(this.a, RD(a, 60)); + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$1$Type", 1761); + feb(1769, 1, owe, Xic); + _.de = function Yic() { + Iic(this.a, this.b, -1); + }; + _.b = 0; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$10$Type", 1769); + feb(1771, 1, xye, Zic); + _.Lb = function $ic(a) { + return ZD(RD(a, 60).g, 154); + }; + _.Fb = function _ic(a) { + return this === a; + }; + _.Mb = function ajc(a) { + return ZD(RD(a, 60).g, 154); + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$11$Type", 1771); + feb(1772, 1, Qve, bjc); + _.Cd = function cjc(a) { + RD(a, 380).de(); + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$12$Type", 1772); + feb(1773, 1, nwe, djc); + _.Mb = function ejc(a) { + return ZD(RD(a, 60).g, 10); + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$13$Type", 1773); + feb(1775, 1, Qve, fjc); + _.Cd = function gjc(a) { + Kic(this.a, RD(a, 60)); + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$14$Type", 1775); + feb(1774, 1, owe, hjc); + _.de = function ijc() { + Iic(this.b, this.a, -1); + }; + _.a = 0; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$15$Type", 1774); + feb(1776, 1, xye, jjc); + _.Lb = function kjc(a) { + return ZD(RD(a, 60).g, 10); + }; + _.Fb = function ljc(a) { + return this === a; + }; + _.Mb = function mjc(a) { + return ZD(RD(a, 60).g, 10); + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$16$Type", 1776); + feb(1777, 1, Qve, njc); + _.Cd = function ojc(a) { + RD(a, 380).de(); + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$17$Type", 1777); + feb(1778, 1, {}, pjc); + _.Ye = function qjc(a) { + return Lic(this.a, RD(a, 60)); + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$18$Type", 1778); + feb(1779, 1, {}, rjc); + _.We = function sjc() { + return 0; + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$19$Type", 1779); + feb(1762, 1, {}, tjc); + _.We = function ujc() { + return 0; + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$2$Type", 1762); + feb(1781, 1, Qve, vjc); + _.Cd = function wjc(a) { + Mic(this.a, this.b, RD(a, 316)); + }; + _.a = 0; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$20$Type", 1781); + feb(1780, 1, owe, xjc); + _.de = function yjc() { + Hic(this.a, this.b, -1); + }; + _.b = 0; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$21$Type", 1780); + feb(1782, 1, xye, zjc); + _.Lb = function Ajc(a) { + return RD(a, 60), true; + }; + _.Fb = function Bjc(a) { + return this === a; + }; + _.Mb = function Cjc(a) { + return RD(a, 60), true; + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$22$Type", 1782); + feb(1783, 1, Qve, Djc); + _.Cd = function Ejc(a) { + RD(a, 380).de(); + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$23$Type", 1783); + feb(1763, 1, nwe, Fjc); + _.Mb = function Gjc(a) { + return ZD(RD(a, 60).g, 10); + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$3$Type", 1763); + feb(1765, 1, Qve, Hjc); + _.Cd = function Ijc(a) { + Nic(this.a, this.b, RD(a, 60)); + }; + _.a = 0; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$4$Type", 1765); + feb(1764, 1, owe, Jjc); + _.de = function Kjc() { + Iic(this.b, this.a, -1); + }; + _.a = 0; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$5$Type", 1764); + feb(1766, 1, xye, Ljc); + _.Lb = function Mjc(a) { + return RD(a, 60), true; + }; + _.Fb = function Njc(a) { + return this === a; + }; + _.Mb = function Ojc(a) { + return RD(a, 60), true; + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$6$Type", 1766); + feb(1767, 1, Qve, Pjc); + _.Cd = function Qjc(a) { + RD(a, 380).de(); + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$7$Type", 1767); + feb(1768, 1, nwe, Rjc); + _.Mb = function Sjc(a) { + return ZD(RD(a, 60).g, 154); + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$8$Type", 1768); + feb(1770, 1, Qve, Tjc); + _.Cd = function Ujc(a) { + Oic(this.a, this.b, RD(a, 60)); + }; + sfb(rBe, "EdgeAwareScanlineConstraintCalculation/lambda$9$Type", 1770); + feb(1586, 1, QAe, Yjc); + _.Kf = function bkc(a, b) { + Xjc(this, RD(a, 36), b); + }; + var Vjc; + sfb(rBe, "HorizontalGraphCompactor", 1586); + feb(1587, 1, {}, ckc); + _.ff = function dkc(a, b) { + var c, d, e; + if (_jc(a, b)) { + return 0; + } + c = Zjc(a); + d = Zjc(b); + if (!!c && c.k == (r3b(), m3b) || !!d && d.k == (r3b(), m3b)) { + return 0; + } + e = RD(mQb(this.a.a, (Ywc(), Qwc)), 312); + return ZEc(e, c ? c.k : (r3b(), o3b), d ? d.k : (r3b(), o3b)); + }; + _.gf = function ekc(a, b) { + var c, d, e; + if (_jc(a, b)) { + return 1; + } + c = Zjc(a); + d = Zjc(b); + e = RD(mQb(this.a.a, (Ywc(), Qwc)), 312); + return aFc(e, c ? c.k : (r3b(), o3b), d ? d.k : (r3b(), o3b)); + }; + sfb(rBe, "HorizontalGraphCompactor/1", 1587); + feb(1588, 1, {}, fkc); + _.ef = function gkc(a, b) { + return Wjc(), a.a.i == 0; + }; + sfb(rBe, "HorizontalGraphCompactor/lambda$0$Type", 1588); + feb(1589, 1, {}, hkc); + _.ef = function ikc(a, b) { + return akc(this.a, a, b); + }; + sfb(rBe, "HorizontalGraphCompactor/lambda$1$Type", 1589); + feb(1730, 1, {}, Ckc); + var jkc, kkc; + sfb(rBe, "LGraphToCGraphTransformer", 1730); + feb(1738, 1, nwe, Kkc); + _.Mb = function Lkc(a) { + return a != null; + }; + sfb(rBe, "LGraphToCGraphTransformer/0methodref$nonNull$Type", 1738); + feb(1731, 1, {}, Mkc); + _.Kb = function Nkc(a) { + return lkc(), jeb(mQb(RD(RD(a, 60).g, 10), (Ywc(), Awc))); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$0$Type", 1731); + feb(1732, 1, {}, Okc); + _.Kb = function Pkc(a) { + return lkc(), Mlc(RD(RD(a, 60).g, 154)); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$1$Type", 1732); + feb(1741, 1, nwe, Qkc); + _.Mb = function Rkc(a) { + return lkc(), ZD(RD(a, 60).g, 10); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$10$Type", 1741); + feb(1742, 1, Qve, Skc); + _.Cd = function Tkc(a) { + Dkc(RD(a, 60)); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$11$Type", 1742); + feb(1743, 1, nwe, Ukc); + _.Mb = function Vkc(a) { + return lkc(), ZD(RD(a, 60).g, 154); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$12$Type", 1743); + feb(1747, 1, Qve, Wkc); + _.Cd = function Xkc(a) { + Ekc(RD(a, 60)); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$13$Type", 1747); + feb(1744, 1, Qve, Ykc); + _.Cd = function Zkc(a) { + Fkc(this.a, RD(a, 8)); + }; + _.a = 0; + sfb(rBe, "LGraphToCGraphTransformer/lambda$14$Type", 1744); + feb(1745, 1, Qve, $kc); + _.Cd = function _kc(a) { + Gkc(this.a, RD(a, 116)); + }; + _.a = 0; + sfb(rBe, "LGraphToCGraphTransformer/lambda$15$Type", 1745); + feb(1746, 1, Qve, alc); + _.Cd = function blc(a) { + Hkc(this.a, RD(a, 8)); + }; + _.a = 0; + sfb(rBe, "LGraphToCGraphTransformer/lambda$16$Type", 1746); + feb(1748, 1, {}, clc); + _.Kb = function dlc(a) { + return lkc(), new SDb(null, new Twb(new is(Mr(a3b(RD(a, 10)).a.Kc(), new ir())))); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$17$Type", 1748); + feb(1749, 1, nwe, elc); + _.Mb = function flc(a) { + return lkc(), W0b(RD(a, 18)); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$18$Type", 1749); + feb(1750, 1, Qve, glc); + _.Cd = function hlc(a) { + ukc(this.a, RD(a, 18)); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$19$Type", 1750); + feb(1734, 1, Qve, ilc); + _.Cd = function jlc(a) { + vkc(this.a, RD(a, 154)); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$2$Type", 1734); + feb(1751, 1, {}, klc); + _.Kb = function llc(a) { + return lkc(), new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$20$Type", 1751); + feb(1752, 1, {}, mlc); + _.Kb = function nlc(a) { + return lkc(), new SDb(null, new Twb(new is(Mr(a3b(RD(a, 10)).a.Kc(), new ir())))); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$21$Type", 1752); + feb(1753, 1, {}, olc); + _.Kb = function plc(a) { + return lkc(), RD(mQb(RD(a, 18), (Ywc(), Twc)), 15); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$22$Type", 1753); + feb(1754, 1, nwe, qlc); + _.Mb = function rlc(a) { + return Ikc(RD(a, 15)); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$23$Type", 1754); + feb(1755, 1, Qve, slc); + _.Cd = function tlc(a) { + nkc(this.a, RD(a, 15)); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$24$Type", 1755); + feb(1733, 1, Qve, ulc); + _.Cd = function vlc(a) { + wkc(this.a, this.b, RD(a, 154)); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$3$Type", 1733); + feb(1735, 1, {}, wlc); + _.Kb = function xlc(a) { + return lkc(), new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$4$Type", 1735); + feb(1736, 1, {}, ylc); + _.Kb = function zlc(a) { + return lkc(), new SDb(null, new Twb(new is(Mr(a3b(RD(a, 10)).a.Kc(), new ir())))); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$5$Type", 1736); + feb(1737, 1, {}, Alc); + _.Kb = function Blc(a) { + return lkc(), RD(mQb(RD(a, 18), (Ywc(), Twc)), 15); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$6$Type", 1737); + feb(1739, 1, Qve, Clc); + _.Cd = function Dlc(a) { + Jkc(this.a, RD(a, 15)); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$8$Type", 1739); + feb(1740, 1, Qve, Elc); + _.Cd = function Flc(a) { + xkc(this.a, this.b, RD(a, 154)); + }; + sfb(rBe, "LGraphToCGraphTransformer/lambda$9$Type", 1740); + feb(1729, 1, {}, Jlc); + _.cf = function Klc(a) { + var b, c, d, e, f; + this.a = a; + this.d = new BIb(); + this.c = $C(DN, rve, 125, this.a.a.a.c.length, 0, 1); + this.b = 0; + for (c = new Anb(this.a.a.a); c.a < c.c.c.length; ) { + b = RD(ynb(c), 316); + b.d = this.b; + f = eJb(fJb(new gJb(), b), this.d); + this.c[this.b] = f; + ++this.b; + } + Ilc(this); + Hlc(this); + Glc(this); + lJb(CJb(this.d), new Oqd()); + for (e = new Anb(this.a.a.b); e.a < e.c.c.length; ) { + d = RD(ynb(e), 60); + d.d.c = this.c[d.a.d].e + d.b.a; + } + }; + _.b = 0; + sfb(rBe, "NetworkSimplexCompaction", 1729); + feb(154, 1, { 34: 1, 154: 1 }, Nlc); + _.Fd = function Olc(a) { + return Llc(this, RD(a, 154)); + }; + _.Ib = function Plc() { + return Mlc(this); + }; + sfb(rBe, "VerticalSegment", 154); + feb(841, 1, {}, Ylc); + _.c = 0; + _.e = 0; + _.i = 0; + sfb(sBe, "BetweenLayerEdgeTwoNodeCrossingsCounter", 841); + feb(677, 1, { 677: 1 }, dmc); + _.Ib = function emc() { + return "AdjacencyList [node=" + this.d + ", adjacencies= " + this.a + "]"; + }; + _.b = 0; + _.c = 0; + _.f = 0; + sfb(sBe, "BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList", 677); + feb(294, 1, { 34: 1, 294: 1 }, hmc); + _.Fd = function imc(a) { + return fmc(this, RD(a, 294)); + }; + _.Ib = function jmc() { + return "Adjacency [position=" + this.c + ", cardinality=" + this.a + ", currentCardinality=" + this.b + "]"; + }; + _.a = 0; + _.b = 0; + _.c = 0; + sfb(sBe, "BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency", 294); + feb(2026, 1, {}, mmc); + _.b = 0; + _.e = false; + sfb(sBe, "CrossingMatrixFiller", 2026); + var QY = ufb(tBe, "IInitializable"); + feb(1867, 1, uBe, smc); + _.gg = function vmc(a, b, c, d, e, f) { + }; + _.ig = function xmc(a, b, c) { + }; + _.eg = function tmc() { + return this.c != (RKc(), PKc); + }; + _.fg = function umc() { + this.e = $C(kE, Pwe, 28, this.d, 15, 1); + }; + _.hg = function wmc(a, b) { + b[a][0].c.p = a; + }; + _.jg = function ymc(a, b, c, d) { + ++this.d; + }; + _.kg = function zmc() { + return true; + }; + _.lg = function Amc(a, b, c, d) { + omc(this, a, b, c); + return nmc(this, b); + }; + _.mg = function Bmc(a, b) { + var c; + c = pmc(b, a.length); + omc(this, a, c, b); + return qmc(this, c); + }; + _.d = 0; + sfb(sBe, "GreedySwitchHeuristic", 1867); + feb(2029, 1, {}, Kmc); + _.b = 0; + _.d = 0; + sfb(sBe, "NorthSouthEdgeNeighbouringNodeCrossingsCounter", 2029); + feb(2016, 1, {}, Pmc); + _.a = false; + sfb(sBe, "SwitchDecider", 2016); + feb(105, 1, { 105: 1 }, Vmc); + _.a = null; + _.c = null; + _.i = null; + sfb(vBe, "SelfHyperLoop", 105); + feb(2013, 1, {}, _mc); + _.c = 0; + _.e = 0; + sfb(vBe, "SelfHyperLoopLabels", 2013); + feb(421, 22, { 3: 1, 34: 1, 22: 1, 421: 1 }, fnc); + var anc, bnc, cnc, dnc; + var LV = tfb(vBe, "SelfHyperLoopLabels/Alignment", 421, WI, hnc, gnc); + var inc; + feb(340, 1, { 340: 1 }, knc); + sfb(vBe, "SelfLoopEdge", 340); + feb(337, 1, { 337: 1 }, onc); + _.a = false; + sfb(vBe, "SelfLoopHolder", 337); + feb(1790, 1, nwe, qnc); + _.Mb = function rnc(a) { + return W0b(RD(a, 18)); + }; + sfb(vBe, "SelfLoopHolder/lambda$0$Type", 1790); + feb(113, 1, { 113: 1 }, tnc); + _.a = false; + _.c = false; + sfb(vBe, "SelfLoopPort", 113); + feb(1855, 1, nwe, unc); + _.Mb = function vnc(a) { + return W0b(RD(a, 18)); + }; + sfb(vBe, "SelfLoopPort/lambda$0$Type", 1855); + feb(375, 22, { 3: 1, 34: 1, 22: 1, 375: 1 }, Cnc); + var wnc, xnc, ync, znc, Anc; + var TV = tfb(vBe, "SelfLoopType", 375, WI, Fnc, Enc); + var Gnc; + feb(1798, 1, {}, boc); + var Inc, Jnc, Knc, Lnc; + sfb(wBe, "PortRestorer", 1798); + feb(372, 22, { 3: 1, 34: 1, 22: 1, 372: 1 }, koc); + var goc, hoc, ioc; + var UV = tfb(wBe, "PortRestorer/PortSideArea", 372, WI, moc, loc); + var noc; + feb(1799, 1, {}, poc); + _.Kb = function qoc(a) { + return Mnc(), RD(a, 15).Oc(); + }; + sfb(wBe, "PortRestorer/lambda$0$Type", 1799); + feb(1800, 1, Qve, roc); + _.Cd = function soc(a) { + Mnc(); + RD(a, 113).c = false; + }; + sfb(wBe, "PortRestorer/lambda$1$Type", 1800); + feb(1809, 1, nwe, toc); + _.Mb = function uoc(a) { + return Mnc(), RD(a, 12).j == (qpd(), ppd); + }; + sfb(wBe, "PortRestorer/lambda$10$Type", 1809); + feb(1810, 1, {}, voc); + _.Kb = function woc(a) { + return Mnc(), RD(a, 113).d; + }; + sfb(wBe, "PortRestorer/lambda$11$Type", 1810); + feb(1811, 1, Qve, xoc); + _.Cd = function yoc(a) { + coc(this.a, RD(a, 12)); + }; + sfb(wBe, "PortRestorer/lambda$12$Type", 1811); + feb(1801, 1, Qve, zoc); + _.Cd = function Aoc(a) { + doc(this.a, RD(a, 105)); + }; + sfb(wBe, "PortRestorer/lambda$2$Type", 1801); + feb(1802, 1, fye, Boc); + _.Ne = function Coc(a, b) { + return eoc(RD(a, 113), RD(b, 113)); + }; + _.Fb = function Doc(a) { + return this === a; + }; + _.Oe = function Eoc() { + return new Frb(this); + }; + sfb(wBe, "PortRestorer/lambda$3$Type", 1802); + feb(1803, 1, nwe, Foc); + _.Mb = function Goc(a) { + return Mnc(), RD(a, 113).c; + }; + sfb(wBe, "PortRestorer/lambda$4$Type", 1803); + feb(1804, 1, nwe, Hoc); + _.Mb = function Ioc(a) { + return Tnc(RD(a, 12)); + }; + sfb(wBe, "PortRestorer/lambda$5$Type", 1804); + feb(1805, 1, nwe, Joc); + _.Mb = function Koc(a) { + return Mnc(), RD(a, 12).j == (qpd(), Yod); + }; + sfb(wBe, "PortRestorer/lambda$6$Type", 1805); + feb(1806, 1, nwe, Loc); + _.Mb = function Moc(a) { + return Mnc(), RD(a, 12).j == (qpd(), Xod); + }; + sfb(wBe, "PortRestorer/lambda$7$Type", 1806); + feb(1807, 1, nwe, Noc); + _.Mb = function Ooc(a) { + return Unc(RD(a, 12)); + }; + sfb(wBe, "PortRestorer/lambda$8$Type", 1807); + feb(1808, 1, nwe, Poc); + _.Mb = function Qoc(a) { + return Mnc(), RD(a, 12).j == (qpd(), npd); + }; + sfb(wBe, "PortRestorer/lambda$9$Type", 1808); + feb(276, 22, { 3: 1, 34: 1, 22: 1, 276: 1 }, fpc); + var Yoc, Zoc, $oc, _oc, apc, bpc, cpc, dpc; + var hW = tfb(wBe, "PortSideAssigner/Target", 276, WI, hpc, gpc); + var ipc; + feb(1791, 1, {}, kpc); + _.Kb = function lpc(a) { + return CDb(new SDb(null, new Swb(RD(a, 105).j, 16)), new Cpc()); + }; + sfb(wBe, "PortSideAssigner/lambda$1$Type", 1791); + feb(1792, 1, {}, mpc); + _.Kb = function npc(a) { + return RD(a, 113).d; + }; + sfb(wBe, "PortSideAssigner/lambda$2$Type", 1792); + feb(1793, 1, Qve, opc); + _.Cd = function ppc(a) { + Q3b(RD(a, 12), (qpd(), Yod)); + }; + sfb(wBe, "PortSideAssigner/lambda$3$Type", 1793); + feb(1794, 1, {}, qpc); + _.Kb = function rpc(a) { + return RD(a, 113).d; + }; + sfb(wBe, "PortSideAssigner/lambda$4$Type", 1794); + feb(1795, 1, Qve, spc); + _.Cd = function tpc(a) { + Voc(this.a, RD(a, 12)); + }; + sfb(wBe, "PortSideAssigner/lambda$5$Type", 1795); + feb(1796, 1, fye, upc); + _.Ne = function vpc(a, b) { + return Woc(RD(a, 105), RD(b, 105)); + }; + _.Fb = function wpc(a) { + return this === a; + }; + _.Oe = function xpc() { + return new Frb(this); + }; + sfb(wBe, "PortSideAssigner/lambda$6$Type", 1796); + feb(1797, 1, fye, ypc); + _.Ne = function zpc(a, b) { + return Xoc(RD(a, 113), RD(b, 113)); + }; + _.Fb = function Apc(a) { + return this === a; + }; + _.Oe = function Bpc() { + return new Frb(this); + }; + sfb(wBe, "PortSideAssigner/lambda$7$Type", 1797); + feb(820, 1, nwe, Cpc); + _.Mb = function Dpc(a) { + return RD(a, 113).c; + }; + sfb(wBe, "PortSideAssigner/lambda$8$Type", 820); + feb(2108, 1, {}); + sfb(xBe, "AbstractSelfLoopRouter", 2108); + feb(1816, 1, fye, Mpc); + _.Ne = function Npc(a, b) { + return Kpc(RD(a, 105), RD(b, 105)); + }; + _.Fb = function Opc(a) { + return this === a; + }; + _.Oe = function Ppc() { + return new Frb(this); + }; + sfb(xBe, Vye, 1816); + feb(1817, 1, fye, Qpc); + _.Ne = function Rpc(a, b) { + return Lpc(RD(a, 105), RD(b, 105)); + }; + _.Fb = function Spc(a) { + return this === a; + }; + _.Oe = function Tpc() { + return new Frb(this); + }; + sfb(xBe, Wye, 1817); + feb(1856, 2108, {}, dqc); + _.ng = function eqc(a, b, c) { + return c; + }; + sfb(xBe, "OrthogonalSelfLoopRouter", 1856); + feb(1858, 1, Qve, fqc); + _.Cd = function gqc(a) { + cqc(this.b, this.a, RD(a, 8)); + }; + sfb(xBe, "OrthogonalSelfLoopRouter/lambda$0$Type", 1858); + feb(1857, 1856, {}, jqc); + _.ng = function kqc(a, b, c) { + var d, e; + d = a.c.d; + hu(c, 0, $id(ajd(d.n), d.a)); + e = a.d.d; + Mub(c, $id(ajd(e.n), e.a)); + return hqc(c); + }; + sfb(xBe, "PolylineSelfLoopRouter", 1857); + feb(1812, 1, {}, yqc); + _.a = null; + var lqc; + sfb(xBe, "RoutingDirector", 1812); + feb(1813, 1, fye, Aqc); + _.Ne = function Bqc(a, b) { + return zqc(RD(a, 113), RD(b, 113)); + }; + _.Fb = function Cqc(a) { + return this === a; + }; + _.Oe = function Dqc() { + return new Frb(this); + }; + sfb(xBe, "RoutingDirector/lambda$0$Type", 1813); + feb(1814, 1, {}, Eqc); + _.Kb = function Fqc(a) { + return mqc(), RD(a, 105).j; + }; + sfb(xBe, "RoutingDirector/lambda$1$Type", 1814); + feb(1815, 1, Qve, Gqc); + _.Cd = function Hqc(a) { + mqc(); + RD(a, 15).jd(lqc); + }; + sfb(xBe, "RoutingDirector/lambda$2$Type", 1815); + feb(1818, 1, {}, Sqc); + sfb(xBe, "RoutingSlotAssigner", 1818); + feb(1819, 1, nwe, Vqc); + _.Mb = function Wqc(a) { + return Tqc(this.a, RD(a, 105)); + }; + sfb(xBe, "RoutingSlotAssigner/lambda$0$Type", 1819); + feb(1820, 1, fye, Xqc); + _.Ne = function Yqc(a, b) { + return Uqc(this.a, RD(a, 105), RD(b, 105)); + }; + _.Fb = function Zqc(a) { + return this === a; + }; + _.Oe = function $qc() { + return new Frb(this); + }; + sfb(xBe, "RoutingSlotAssigner/lambda$1$Type", 1820); + feb(1859, 1856, {}, arc); + _.ng = function brc(a, b, c) { + var d, e, f, g; + d = Kfb(UD(k2b(a.b.g.b, (yCc(), VBc)))); + g = new Gjd(cD(WC(l3, 1), Nve, 8, 0, [(f = a.c.d, $id(new sjd(f.n), f.a))])); + _qc(a, b, c, g, d); + Mub(g, (e = a.d.d, $id(new sjd(e.n), e.a))); + return sUc(new wUc(g)); + }; + sfb(xBe, "SplineSelfLoopRouter", 1859); + feb(586, 1, fye, frc, hrc); + _.Ne = function irc(a, b) { + return crc(this, RD(a, 10), RD(b, 10)); + }; + _.Fb = function jrc(a) { + return this === a; + }; + _.Oe = function krc() { + return new Frb(this); + }; + sfb(yBe, "ModelOrderNodeComparator", 586); + feb(1821, 1, nwe, lrc); + _.Mb = function mrc(a) { + return RD(a, 12).e.c.length != 0; + }; + sfb(yBe, "ModelOrderNodeComparator/lambda$0$Type", 1821); + feb(821, 1, fye, trc, urc); + _.Ne = function vrc(a, b) { + return prc(this, a, b); + }; + _.Fb = function wrc(a) { + return this === a; + }; + _.Oe = function xrc() { + return new Frb(this); + }; + _.b = false; + sfb(yBe, "ModelOrderPortComparator", 821); + feb(815, 1, {}, zrc); + _.og = function Brc(a, b) { + var c, d, e, f; + e = Arc(b); + c = new bnb(); + f = b.f / e; + for (d = 1; d < e; ++d) { + Rmb(c, sgb(Ydb(Hdb($wnd.Math.round(d * f))))); + } + return c; + }; + _.pg = function Crc() { + return false; + }; + sfb(zBe, "ARDCutIndexHeuristic", 815); + feb(1544, 1, QAe, Hrc); + _.Kf = function Irc(a, b) { + Grc(RD(a, 36), b); + }; + sfb(zBe, "BreakingPointInserter", 1544); + feb(313, 1, { 313: 1 }, Jrc); + _.Ib = function Mrc() { + var a; + a = new bib(); + a.a += "BPInfo["; + a.a += "\n start="; + Yhb(a, this.i); + a.a += "\n end="; + Yhb(a, this.a); + a.a += "\n nodeStartEdge="; + Yhb(a, this.e); + a.a += "\n startEndEdge="; + Yhb(a, this.j); + a.a += "\n originalEdge="; + Yhb(a, this.f); + a.a += "\n startInLayerDummy="; + Yhb(a, this.k); + a.a += "\n startInLayerEdge="; + Yhb(a, this.n); + a.a += "\n endInLayerDummy="; + Yhb(a, this.b); + a.a += "\n endInLayerEdge="; + Yhb(a, this.c); + return a.a; + }; + sfb(zBe, "BreakingPointInserter/BPInfo", 313); + feb(661, 1, { 661: 1 }, Trc); + _.a = false; + _.b = 0; + _.c = 0; + sfb(zBe, "BreakingPointInserter/Cut", 661); + feb(1545, 1, QAe, bsc); + _.Kf = function csc(a, b) { + _rc(RD(a, 36), b); + }; + sfb(zBe, "BreakingPointProcessor", 1545); + feb(1546, 1, nwe, dsc); + _.Mb = function esc(a) { + return Krc(RD(a, 10)); + }; + sfb(zBe, "BreakingPointProcessor/0methodref$isEnd$Type", 1546); + feb(1547, 1, nwe, fsc); + _.Mb = function gsc(a) { + return Lrc(RD(a, 10)); + }; + sfb(zBe, "BreakingPointProcessor/1methodref$isStart$Type", 1547); + feb(1548, 1, QAe, ksc); + _.Kf = function lsc(a, b) { + isc(this, RD(a, 36), b); + }; + sfb(zBe, "BreakingPointRemover", 1548); + feb(1549, 1, Qve, msc); + _.Cd = function nsc(a) { + RD(a, 131).k = true; + }; + sfb(zBe, "BreakingPointRemover/lambda$0$Type", 1549); + feb(811, 1, {}, ysc); + _.b = 0; + _.e = 0; + _.f = 0; + _.j = 0; + sfb(zBe, "GraphStats", 811); + feb(812, 1, {}, Asc); + _.Ve = function Bsc(a, b) { + return $wnd.Math.max(Kfb(UD(a)), Kfb(UD(b))); + }; + sfb(zBe, "GraphStats/0methodref$max$Type", 812); + feb(813, 1, {}, Csc); + _.Ve = function Dsc(a, b) { + return $wnd.Math.max(Kfb(UD(a)), Kfb(UD(b))); + }; + sfb(zBe, "GraphStats/2methodref$max$Type", 813); + feb(1726, 1, {}, Esc); + _.Ve = function Fsc(a, b) { + return zsc(UD(a), UD(b)); + }; + sfb(zBe, "GraphStats/lambda$1$Type", 1726); + feb(1727, 1, {}, Gsc); + _.Kb = function Hsc(a) { + return ssc(this.a, RD(a, 30)); + }; + sfb(zBe, "GraphStats/lambda$2$Type", 1727); + feb(1728, 1, {}, Isc); + _.Kb = function Jsc(a) { + return rsc(this.a, RD(a, 30)); + }; + sfb(zBe, "GraphStats/lambda$6$Type", 1728); + feb(814, 1, {}, Ksc); + _.og = function Lsc(a, b) { + var c; + c = RD(mQb(a, (yCc(), pCc)), 15); + return c ? c : (yob(), yob(), vob); + }; + _.pg = function Msc() { + return false; + }; + sfb(zBe, "ICutIndexCalculator/ManualCutIndexCalculator", 814); + feb(816, 1, {}, Nsc); + _.og = function Osc(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u; + u = (b.n == null && vsc(b), b.n); + i = (b.d == null && vsc(b), b.d); + t = $C(iE, vxe, 28, u.length, 15, 1); + t[0] = u[0]; + r = u[0]; + for (j = 1; j < u.length; j++) { + t[j] = t[j - 1] + u[j]; + r += u[j]; + } + e = Arc(b) - 1; + g = RD(mQb(a, (yCc(), qCc)), 17).a; + d = pxe; + c = new bnb(); + for (m = $wnd.Math.max(0, e - g); m <= $wnd.Math.min(b.f - 1, e + g); m++) { + p = r / (m + 1); + q = 0; + k = 1; + f = new bnb(); + s = pxe; + l = 0; + h = 0; + o2 = i[0]; + if (m == 0) { + s = r; + h = (b.g == null && (b.g = qsc(b, new Csc())), Kfb(b.g)); + } else { + while (k < b.f) { + if (t[k - 1] - q >= p) { + Rmb(f, sgb(k)); + s = $wnd.Math.max(s, t[k - 1] - l); + h += o2; + q += t[k - 1] - q; + l = t[k - 1]; + o2 = i[k]; + } + o2 = $wnd.Math.max(o2, i[k]); + ++k; + } + h += o2; + } + n = $wnd.Math.min(1 / s, 1 / b.b / h); + if (n > d) { + d = n; + c = f; + } + } + return c; + }; + _.pg = function Psc() { + return false; + }; + sfb(zBe, "MSDCutIndexHeuristic", 816); + feb(1683, 1, QAe, Ssc); + _.Kf = function Tsc(a, b) { + Rsc(RD(a, 36), b); + }; + sfb(zBe, "SingleEdgeGraphWrapper", 1683); + feb(232, 22, { 3: 1, 34: 1, 22: 1, 232: 1 }, ctc); + var Xsc, Ysc, Zsc, $sc, _sc, atc; + var ZW = tfb(ABe, "CenterEdgeLabelPlacementStrategy", 232, WI, etc, dtc); + var ftc; + feb(431, 22, { 3: 1, 34: 1, 22: 1, 431: 1 }, ktc); + var htc, itc; + var $W = tfb(ABe, "ConstraintCalculationStrategy", 431, WI, mtc, ltc); + var ntc; + feb(322, 22, { 3: 1, 34: 1, 22: 1, 322: 1, 188: 1, 196: 1 }, utc); + _.dg = function wtc() { + return ttc(this); + }; + _.qg = function vtc() { + return ttc(this); + }; + var ptc, qtc, rtc; + var _W = tfb(ABe, "CrossingMinimizationStrategy", 322, WI, ytc, xtc); + var ztc; + feb(351, 22, { 3: 1, 34: 1, 22: 1, 351: 1 }, Ftc); + var Btc, Ctc, Dtc; + var aX = tfb(ABe, "CuttingStrategy", 351, WI, Htc, Gtc); + var Itc; + feb(348, 22, { 3: 1, 34: 1, 22: 1, 348: 1, 188: 1, 196: 1 }, Rtc); + _.dg = function Ttc() { + return Qtc(this); + }; + _.qg = function Stc() { + return Qtc(this); + }; + var Ktc, Ltc, Mtc, Ntc, Otc; + var bX = tfb(ABe, "CycleBreakingStrategy", 348, WI, Vtc, Utc); + var Wtc; + feb(428, 22, { 3: 1, 34: 1, 22: 1, 428: 1 }, _tc); + var Ytc, Ztc; + var cX = tfb(ABe, "DirectionCongruency", 428, WI, buc, auc); + var cuc; + feb(460, 22, { 3: 1, 34: 1, 22: 1, 460: 1 }, iuc); + var euc, fuc, guc; + var dX = tfb(ABe, "EdgeConstraint", 460, WI, kuc, juc); + var luc; + feb(283, 22, { 3: 1, 34: 1, 22: 1, 283: 1 }, vuc); + var nuc, ouc, puc, quc, ruc, suc; + var eX = tfb(ABe, "EdgeLabelSideSelection", 283, WI, xuc, wuc); + var yuc; + feb(488, 22, { 3: 1, 34: 1, 22: 1, 488: 1 }, Duc); + var Auc, Buc; + var fX = tfb(ABe, "EdgeStraighteningStrategy", 488, WI, Fuc, Euc); + var Guc; + feb(281, 22, { 3: 1, 34: 1, 22: 1, 281: 1 }, Puc); + var Iuc, Juc, Kuc, Luc, Muc, Nuc; + var gX = tfb(ABe, "FixedAlignment", 281, WI, Ruc, Quc); + var Suc; + feb(282, 22, { 3: 1, 34: 1, 22: 1, 282: 1 }, _uc); + var Uuc, Vuc, Wuc, Xuc, Yuc, Zuc; + var hX = tfb(ABe, "GraphCompactionStrategy", 282, WI, bvc, avc); + var cvc; + feb(259, 22, { 3: 1, 34: 1, 22: 1, 259: 1 }, pvc); + var evc, fvc, gvc, hvc, ivc, jvc, kvc, lvc, mvc, nvc; + var iX = tfb(ABe, "GraphProperties", 259, WI, rvc, qvc); + var svc; + feb(299, 22, { 3: 1, 34: 1, 22: 1, 299: 1 }, yvc); + var uvc, vvc, wvc; + var jX = tfb(ABe, "GreedySwitchType", 299, WI, Avc, zvc); + var Bvc; + feb(311, 22, { 3: 1, 34: 1, 22: 1, 311: 1 }, Hvc); + var Dvc, Evc, Fvc; + var kX = tfb(ABe, "InLayerConstraint", 311, WI, Jvc, Ivc); + var Kvc; + feb(429, 22, { 3: 1, 34: 1, 22: 1, 429: 1 }, Pvc); + var Mvc, Nvc; + var lX = tfb(ABe, "InteractiveReferencePoint", 429, WI, Rvc, Qvc); + var Svc; + var Uvc, Vvc, Wvc, Xvc, Yvc, Zvc, $vc, _vc, awc, bwc, cwc, dwc, ewc, fwc, gwc, hwc, iwc, jwc, kwc, lwc, mwc, nwc, owc, pwc, qwc, rwc, swc, twc, uwc, vwc, wwc, xwc, ywc, zwc, Awc, Bwc, Cwc, Dwc, Ewc, Fwc, Gwc, Hwc, Iwc, Jwc, Kwc, Lwc, Mwc, Nwc, Owc, Pwc, Qwc, Rwc, Swc, Twc, Uwc, Vwc, Wwc, Xwc; + feb(171, 22, { 3: 1, 34: 1, 22: 1, 171: 1 }, dxc); + var Zwc, $wc, _wc, axc, bxc; + var mX = tfb(ABe, "LayerConstraint", 171, WI, fxc, exc); + var gxc; + feb(859, 1, Eye, Pzc); + _.hf = function Qzc(a) { + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), HBe), ""), "Direction Congruency"), "Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."), Uxc), (kid(), eid)), cX), xsb((Yhd(), Whd))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), IBe), ""), "Feedback Edges"), "Whether feedback edges should be highlighted by routing around the nodes."), (Geb(), false)), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), JBe), ""), "Interactive Reference Point"), "Determines which point of a node is considered by interactive layout phases."), pyc), eid), lX), xsb(Whd)))); + zgd(a, JBe, RBe, ryc); + zgd(a, JBe, _Be, qyc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), KBe), ""), "Merge Edges"), "Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), LBe), ""), "Merge Hierarchy-Crossing Edges"), "If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."), true), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Nhd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), MBe), ""), "Allow Non-Flow Ports To Switch Sides"), "Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."), false), cid), QI), xsb(Xhd)), cD(WC(qJ, 1), Nve, 2, 6, ["org.eclipse.elk.layered.northOrSouthPort"])))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), NBe), ""), "Port Sorting Strategy"), "Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."), azc), eid), xX), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), OBe), ""), "Thoroughness"), "How much effort should be spent to produce a nice layout."), sgb(7)), gid), bJ), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), PBe), ""), "Add Unnecessary Bendpoints"), "Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), QBe), ""), "Generate Position and Layer IDs"), "If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), RBe), "cycleBreaking"), "Cycle Breaking Strategy"), "Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."), Sxc), eid), bX), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), SBe), bDe), "Node Layering Strategy"), "Strategy for node layering."), Gyc), eid), rX), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), TBe), bDe), "Layer Constraint"), "Determines a constraint on the placement of the node regarding the layering."), wyc), eid), mX), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), UBe), bDe), "Layer Choice Constraint"), "Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), null), gid), bJ), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), VBe), bDe), "Layer ID"), "Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."), sgb(-1)), gid), bJ), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), WBe), cDe), "Upper Bound On Width [MinWidth Layerer]"), "Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."), sgb(4)), gid), bJ), xsb(Whd)))); + zgd(a, WBe, SBe, zyc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), XBe), cDe), "Upper Layer Estimation Scaling Factor [MinWidth Layerer]"), "Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."), sgb(2)), gid), bJ), xsb(Whd)))); + zgd(a, XBe, SBe, Byc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), YBe), dDe), "Node Promotion Strategy"), "Reduces number of dummy nodes after layering phase (if possible)."), Eyc), eid), vX), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), ZBe), dDe), "Max Node Promotion Iterations"), "Limits the number of iterations for node promotion."), sgb(0)), gid), bJ), xsb(Whd)))); + zgd(a, ZBe, YBe, null); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), $Be), "layering.coffmanGraham"), "Layer Bound"), "The maximum number of nodes allowed per layer."), sgb(lve)), gid), bJ), xsb(Whd)))); + zgd(a, $Be, SBe, tyc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), _Be), eDe), "Crossing Minimization Strategy"), "Strategy for crossing minimization."), Qxc), eid), _W), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), aCe), eDe), "Force Node Model Order"), "The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), bCe), eDe), "Hierarchical Sweepiness"), "How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."), 0.1), did), VI), xsb(Whd)))); + zgd(a, bCe, fDe, Ixc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), cCe), eDe), "Semi-Interactive Crossing Minimization"), "Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."), false), cid), QI), xsb(Whd)))); + zgd(a, cCe, _Be, Oxc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), dCe), eDe), "In Layer Predecessor of"), "Allows to set a constraint which specifies of which node the current node is the predecessor. If set to 's' then the node is the predecessor of 's' and is in the same layer"), null), iid), qJ), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), eCe), eDe), "In Layer Successor of"), "Allows to set a constraint which specifies of which node the current node is the successor. If set to 's' then the node is the successor of 's' and is in the same layer"), null), iid), qJ), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), fCe), eDe), "Position Choice Constraint"), "Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), null), gid), bJ), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), gCe), eDe), "Position ID"), "Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."), sgb(-1)), gid), bJ), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), hCe), gDe), "Greedy Switch Activation Threshold"), "By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."), sgb(40)), gid), bJ), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), iCe), gDe), "Greedy Switch Crossing Minimization"), "Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."), Fxc), eid), jX), xsb(Whd)))); + zgd(a, iCe, _Be, Gxc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), jCe), "crossingMinimization.greedySwitchHierarchical"), "Greedy Switch Crossing Minimization (hierarchical)"), "Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."), Bxc), eid), jX), xsb(Whd)))); + zgd(a, jCe, _Be, Cxc); + zgd(a, jCe, fDe, Dxc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), kCe), hDe), "Node Placement Strategy"), "Strategy for node placement."), $yc), eid), uX), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), lCe), hDe), "Favor Straight Edges Over Balancing"), "Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."), cid), QI), xsb(Whd)))); + zgd(a, lCe, kCe, Qyc); + zgd(a, lCe, kCe, Ryc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), mCe), iDe), "BK Edge Straightening"), "Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."), Kyc), eid), fX), xsb(Whd)))); + zgd(a, mCe, kCe, Lyc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), nCe), iDe), "BK Fixed Alignment"), "Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."), Nyc), eid), gX), xsb(Whd)))); + zgd(a, nCe, kCe, Oyc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), oCe), "nodePlacement.linearSegments"), "Linear Segments Deflection Dampening"), "Dampens the movement of nodes to keep the diagram from getting too large."), 0.3), did), VI), xsb(Whd)))); + zgd(a, oCe, kCe, Tyc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), pCe), "nodePlacement.networkSimplex"), "Node Flexibility"), "Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."), eid), tX), xsb(Vhd)))); + zgd(a, pCe, kCe, Yyc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), qCe), "nodePlacement.networkSimplex.nodeFlexibility"), "Node Flexibility Default"), "Default value of the 'nodeFlexibility' option for the children of a hierarchical node."), Wyc), eid), tX), xsb(Whd)))); + zgd(a, qCe, kCe, Xyc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), rCe), jDe), "Self-Loop Distribution"), "Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."), ayc), eid), zX), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), sCe), jDe), "Self-Loop Ordering"), "Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."), cyc), eid), AX), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), tCe), "edgeRouting.splines"), "Spline Routing Mode"), "Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."), eyc), eid), CX), xsb(Whd)))); + zgd(a, tCe, kDe, fyc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), uCe), "edgeRouting.splines.sloppy"), "Sloppy Spline Layer Spacing Factor"), "Spacing factor for routing area between layers when using sloppy spline routing."), 0.2), did), VI), xsb(Whd)))); + zgd(a, uCe, kDe, hyc); + zgd(a, uCe, tCe, iyc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), vCe), "edgeRouting.polyline"), "Sloped Edge Zone Width"), "Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."), 2), did), VI), xsb(Whd)))); + zgd(a, vCe, kDe, $xc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), wCe), lDe), "Spacing Base Value"), "An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), xCe), lDe), "Edge Node Between Layers Spacing"), "The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."), 10), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), yCe), lDe), "Edge Edge Between Layer Spacing"), "Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."), 10), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), zCe), lDe), "Node Node Between Layers Spacing"), "The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."), 20), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), ACe), mDe), "Direction Priority"), "Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."), sgb(0)), gid), bJ), xsb(Thd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), BCe), mDe), "Shortness Priority"), "Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."), sgb(0)), gid), bJ), xsb(Thd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), CCe), mDe), "Straightness Priority"), "Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."), sgb(0)), gid), bJ), xsb(Thd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), DCe), nDe), qze), "Tries to further compact components (disconnected sub-graphs)."), false), cid), QI), xsb(Whd)))); + zgd(a, DCe, cAe, true); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), ECe), oDe), "Post Compaction Strategy"), pDe), nxc), eid), hX), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), FCe), oDe), "Post Compaction Constraint Calculation"), pDe), lxc), eid), $W), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), GCe), qDe), "High Degree Node Treatment"), "Makes room around high degree nodes to place leafs and trees."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), HCe), qDe), "High Degree Node Threshold"), "Whether a node is considered to have a high degree."), sgb(16)), gid), bJ), xsb(Whd)))); + zgd(a, HCe, GCe, true); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), ICe), qDe), "High Degree Node Maximum Tree Height"), "Maximum height of a subtree connected to a high degree node to be moved to separate layers."), sgb(5)), gid), bJ), xsb(Whd)))); + zgd(a, ICe, GCe, true); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), JCe), rDe), "Graph Wrapping Strategy"), "For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."), Gzc), eid), EX), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), KCe), rDe), "Additional Wrapped Edges Spacing"), "To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."), 10), did), VI), xsb(Whd)))); + zgd(a, KCe, JCe, lzc); + zgd(a, KCe, JCe, mzc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), LCe), rDe), "Correction Factor for Wrapping"), "At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."), 1), did), VI), xsb(Whd)))); + zgd(a, LCe, JCe, ozc); + zgd(a, LCe, JCe, pzc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), MCe), sDe), "Cutting Strategy"), "The strategy by which the layer indexes are determined at which the layering crumbles into chunks."), wzc), eid), aX), xsb(Whd)))); + zgd(a, MCe, JCe, xzc); + zgd(a, MCe, JCe, yzc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), NCe), sDe), "Manually Specified Cuts"), "Allows the user to specify her own cuts for a certain graph."), hid), QK), xsb(Whd)))); + zgd(a, NCe, MCe, rzc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), OCe), "wrapping.cutting.msd"), "MSD Freedom"), "The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."), tzc), gid), bJ), xsb(Whd)))); + zgd(a, OCe, MCe, uzc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), PCe), tDe), "Validification Strategy"), "When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."), Lzc), eid), DX), xsb(Whd)))); + zgd(a, PCe, JCe, Mzc); + zgd(a, PCe, JCe, Nzc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), QCe), tDe), "Valid Indices for Wrapping"), null), hid), QK), xsb(Whd)))); + zgd(a, QCe, JCe, Izc); + zgd(a, QCe, JCe, Jzc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), RCe), uDe), "Improve Cuts"), "For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."), true), cid), QI), xsb(Whd)))); + zgd(a, RCe, JCe, Czc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), SCe), uDe), "Distance Penalty When Improving Cuts"), null), 2), did), VI), xsb(Whd)))); + zgd(a, SCe, JCe, Azc); + zgd(a, SCe, RCe, true); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), TCe), uDe), "Improve Wrapped Edges"), "The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."), true), cid), QI), xsb(Whd)))); + zgd(a, TCe, JCe, Ezc); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), UCe), vDe), "Edge Label Side Selection"), "Method to decide on edge label sides."), Yxc), eid), eX), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), VCe), vDe), "Edge Center Label Placement Strategy"), "Determines in which layer center labels of long edges should be placed."), Wxc), eid), ZW), ysb(Whd, cD(WC(d3, 1), jwe, 170, 0, [Uhd]))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), WCe), wDe), "Consider Model Order"), "Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."), xxc), eid), wX), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), XCe), wDe), "Consider Port Order"), "If disabled the port order of output ports is derived from the edge order and input ports are ordered by their incoming connections. If enabled all ports are ordered by the port model order."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), YCe), wDe), "No Model Order"), "Set on a node to not set a model order for this node even though it is a real node."), false), cid), QI), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), ZCe), wDe), "Consider Model Order for Components"), "If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."), pxc), eid), CQ), xsb(Whd)))); + zgd(a, ZCe, cAe, null); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), $Ce), wDe), "Long Edge Ordering Strategy"), "Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."), txc), eid), sX), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), _Ce), wDe), "Crossing Counter Node Order Influence"), "Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."), 0), did), VI), xsb(Whd)))); + zgd(a, _Ce, WCe, null); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), aDe), wDe), "Crossing Counter Port Order Influence"), "Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."), 0), did), VI), xsb(Whd)))); + zgd(a, aDe, WCe, null); + zCc((new ACc(), a)); + }; + var ixc, jxc, kxc, lxc, mxc, nxc, oxc, pxc, qxc, rxc, sxc, txc, uxc, vxc, wxc, xxc, yxc, zxc, Axc, Bxc, Cxc, Dxc, Exc, Fxc, Gxc, Hxc, Ixc, Jxc, Kxc, Lxc, Mxc, Nxc, Oxc, Pxc, Qxc, Rxc, Sxc, Txc, Uxc, Vxc, Wxc, Xxc, Yxc, Zxc, $xc, _xc, ayc, byc, cyc, dyc, eyc, fyc, gyc, hyc, iyc, jyc, kyc, lyc, myc, nyc, oyc, pyc, qyc, ryc, syc, tyc, uyc, vyc, wyc, xyc, yyc, zyc, Ayc, Byc, Cyc, Dyc, Eyc, Fyc, Gyc, Hyc, Iyc, Jyc, Kyc, Lyc, Myc, Nyc, Oyc, Pyc, Qyc, Ryc, Syc, Tyc, Uyc, Vyc, Wyc, Xyc, Yyc, Zyc, $yc, _yc, azc, bzc, czc, dzc, ezc, fzc, gzc, hzc, izc, jzc, kzc, lzc, mzc, nzc, ozc, pzc, qzc, rzc, szc, tzc, uzc, vzc, wzc, xzc, yzc, zzc, Azc, Bzc, Czc, Dzc, Ezc, Fzc, Gzc, Hzc, Izc, Jzc, Kzc, Lzc, Mzc, Nzc; + sfb(ABe, "LayeredMetaDataProvider", 859); + feb(998, 1, Eye, ACc); + _.hf = function BCc(a) { + zCc(a); + }; + var Rzc, Szc, Tzc, Uzc, Vzc, Wzc, Xzc, Yzc, Zzc, $zc, _zc, aAc, bAc, cAc, dAc, eAc, fAc, gAc, hAc, iAc, jAc, kAc, lAc, mAc, nAc, oAc, pAc, qAc, rAc, sAc, tAc, uAc, vAc, wAc, xAc, yAc, zAc, AAc, BAc, CAc, DAc, EAc, FAc, GAc, HAc, IAc, JAc, KAc, LAc, MAc, NAc, OAc, PAc, QAc, RAc, SAc, TAc, UAc, VAc, WAc, XAc, YAc, ZAc, $Ac, _Ac, aBc, bBc, cBc, dBc, eBc, fBc, gBc, hBc, iBc, jBc, kBc, lBc, mBc, nBc, oBc, pBc, qBc, rBc, sBc, tBc, uBc, vBc, wBc, xBc, yBc, zBc, ABc, BBc, CBc, DBc, EBc, FBc, GBc, HBc, IBc, JBc, KBc, LBc, MBc, NBc, OBc, PBc, QBc, RBc, SBc, TBc, UBc, VBc, WBc, XBc, YBc, ZBc, $Bc, _Bc, aCc, bCc, cCc, dCc, eCc, fCc, gCc, hCc, iCc, jCc, kCc, lCc, mCc, nCc, oCc, pCc, qCc, rCc, sCc, tCc, uCc, vCc, wCc, xCc; + sfb(ABe, "LayeredOptions", 998); + feb(999, 1, {}, CCc); + _.sf = function DCc() { + var a; + return a = new lXb(), a; + }; + _.tf = function ECc(a) { + }; + sfb(ABe, "LayeredOptions/LayeredFactory", 999); + feb(1391, 1, {}); + _.a = 0; + var FCc; + sfb(jEe, "ElkSpacings/AbstractSpacingsBuilder", 1391); + feb(792, 1391, {}, RCc); + var OCc, PCc; + sfb(ABe, "LayeredSpacings/LayeredSpacingsBuilder", 792); + feb(265, 22, { 3: 1, 34: 1, 22: 1, 265: 1, 188: 1, 196: 1 }, bDc); + _.dg = function dDc() { + return aDc(this); + }; + _.qg = function cDc() { + return aDc(this); + }; + var SCc, TCc, UCc, VCc, WCc, XCc, YCc, ZCc, $Cc; + var rX = tfb(ABe, "LayeringStrategy", 265, WI, fDc, eDc); + var gDc; + feb(390, 22, { 3: 1, 34: 1, 22: 1, 390: 1 }, nDc); + var iDc, jDc, kDc; + var sX = tfb(ABe, "LongEdgeOrderingStrategy", 390, WI, pDc, oDc); + var qDc; + feb(203, 22, { 3: 1, 34: 1, 22: 1, 203: 1 }, yDc); + var sDc, tDc, uDc, vDc; + var tX = tfb(ABe, "NodeFlexibility", 203, WI, BDc, ADc); + var CDc; + feb(323, 22, { 3: 1, 34: 1, 22: 1, 323: 1, 188: 1, 196: 1 }, LDc); + _.dg = function NDc() { + return KDc(this); + }; + _.qg = function MDc() { + return KDc(this); + }; + var EDc, FDc, GDc, HDc, IDc; + var uX = tfb(ABe, "NodePlacementStrategy", 323, WI, PDc, ODc); + var QDc; + feb(243, 22, { 3: 1, 34: 1, 22: 1, 243: 1 }, bEc); + var SDc, TDc, UDc, VDc, WDc, XDc, YDc, ZDc, $Dc, _Dc; + var vX = tfb(ABe, "NodePromotionStrategy", 243, WI, dEc, cEc); + var eEc; + feb(284, 22, { 3: 1, 34: 1, 22: 1, 284: 1 }, lEc); + var gEc, hEc, iEc, jEc; + var wX = tfb(ABe, "OrderingStrategy", 284, WI, nEc, mEc); + var oEc; + feb(430, 22, { 3: 1, 34: 1, 22: 1, 430: 1 }, tEc); + var qEc, rEc; + var xX = tfb(ABe, "PortSortingStrategy", 430, WI, vEc, uEc); + var wEc; + feb(463, 22, { 3: 1, 34: 1, 22: 1, 463: 1 }, CEc); + var yEc, zEc, AEc; + var yX = tfb(ABe, "PortType", 463, WI, EEc, DEc); + var FEc; + feb(387, 22, { 3: 1, 34: 1, 22: 1, 387: 1 }, LEc); + var HEc, IEc, JEc; + var zX = tfb(ABe, "SelfLoopDistributionStrategy", 387, WI, NEc, MEc); + var OEc; + feb(349, 22, { 3: 1, 34: 1, 22: 1, 349: 1 }, UEc); + var QEc, REc, SEc; + var AX = tfb(ABe, "SelfLoopOrderingStrategy", 349, WI, WEc, VEc); + var XEc; + feb(312, 1, { 312: 1 }, gFc); + sfb(ABe, "Spacings", 312); + feb(350, 22, { 3: 1, 34: 1, 22: 1, 350: 1 }, mFc); + var iFc, jFc, kFc; + var CX = tfb(ABe, "SplineRoutingMode", 350, WI, oFc, nFc); + var pFc; + feb(352, 22, { 3: 1, 34: 1, 22: 1, 352: 1 }, vFc); + var rFc, sFc, tFc; + var DX = tfb(ABe, "ValidifyStrategy", 352, WI, xFc, wFc); + var yFc; + feb(388, 22, { 3: 1, 34: 1, 22: 1, 388: 1 }, EFc); + var AFc, BFc, CFc; + var EX = tfb(ABe, "WrappingStrategy", 388, WI, GFc, FFc); + var HFc; + feb(1398, 1, nEe, NFc); + _.rg = function OFc(a) { + return RD(a, 36), JFc; + }; + _.Kf = function PFc(a, b) { + MFc(this, RD(a, 36), b); + }; + var JFc; + sfb(oEe, "DepthFirstCycleBreaker", 1398); + feb(793, 1, nEe, UFc); + _.rg = function WFc(a) { + return RD(a, 36), QFc; + }; + _.Kf = function XFc(a, b) { + SFc(this, RD(a, 36), b); + }; + _.sg = function VFc(a) { + return RD(Vmb(a, Jwb(this.d, a.c.length)), 10); + }; + var QFc; + sfb(oEe, "GreedyCycleBreaker", 793); + feb(1401, 793, nEe, YFc); + _.sg = function ZFc(a) { + var b, c, d, e; + e = null; + b = lve; + for (d = new Anb(a); d.a < d.c.c.length; ) { + c = RD(ynb(d), 10); + if (nQb(c, (Ywc(), zwc)) && RD(mQb(c, zwc), 17).a < b) { + b = RD(mQb(c, zwc), 17).a; + e = c; + } + } + if (!e) { + return RD(Vmb(a, Jwb(this.d, a.c.length)), 10); + } + return e; + }; + sfb(oEe, "GreedyModelOrderCycleBreaker", 1401); + feb(1399, 1, nEe, cGc); + _.rg = function dGc(a) { + return RD(a, 36), $Fc; + }; + _.Kf = function eGc(a, b) { + bGc(this, RD(a, 36), b); + }; + var $Fc; + sfb(oEe, "InteractiveCycleBreaker", 1399); + feb(1400, 1, nEe, jGc); + _.rg = function kGc(a) { + return RD(a, 36), fGc; + }; + _.Kf = function lGc(a, b) { + iGc(this, RD(a, 36), b); + }; + _.a = 0; + _.b = 0; + var fGc; + sfb(oEe, "ModelOrderCycleBreaker", 1400); + feb(1413, 1, nEe, pGc); + _.rg = function qGc(a) { + return RD(a, 36), mGc; + }; + _.Kf = function sGc(a, b) { + oGc(this, RD(a, 36), b); + }; + var mGc; + sfb(pEe, "BreadthFirstModelOrderLayerer", 1413); + feb(1414, 1, fye, tGc); + _.Ne = function uGc(a, b) { + return rGc(RD(a, 10), RD(b, 10)); + }; + _.Fb = function vGc(a) { + return this === a; + }; + _.Oe = function wGc() { + return new Frb(this); + }; + sfb(pEe, "BreadthFirstModelOrderLayerer/lambda$0$Type", 1414); + feb(1404, 1, nEe, GGc); + _.rg = function HGc(a) { + return RD(a, 36), xGc; + }; + _.Kf = function IGc(a, b) { + EGc(this, RD(a, 36), b); + }; + var xGc; + sfb(pEe, "CoffmanGrahamLayerer", 1404); + feb(1405, 1, fye, JGc); + _.Ne = function KGc(a, b) { + return AGc(this.a, RD(a, 10), RD(b, 10)); + }; + _.Fb = function LGc(a) { + return this === a; + }; + _.Oe = function MGc() { + return new Frb(this); + }; + sfb(pEe, "CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type", 1405); + feb(1406, 1, fye, NGc); + _.Ne = function OGc(a, b) { + return DGc(this.a, RD(a, 10), RD(b, 10)); + }; + _.Fb = function PGc(a) { + return this === a; + }; + _.Oe = function QGc() { + return new Frb(this); + }; + sfb(pEe, "CoffmanGrahamLayerer/lambda$1$Type", 1406); + feb(1415, 1, nEe, YGc); + _.rg = function ZGc(a) { + return RD(a, 36), RGc; + }; + _.Kf = function _Gc(a, b) { + XGc(this, RD(a, 36), b); + }; + _.c = 0; + _.e = 0; + var RGc; + sfb(pEe, "DepthFirstModelOrderLayerer", 1415); + feb(1416, 1, fye, aHc); + _.Ne = function bHc(a, b) { + return $Gc(RD(a, 10), RD(b, 10)); + }; + _.Fb = function cHc(a) { + return this === a; + }; + _.Oe = function dHc() { + return new Frb(this); + }; + sfb(pEe, "DepthFirstModelOrderLayerer/lambda$0$Type", 1416); + feb(1407, 1, nEe, gHc); + _.rg = function hHc(a) { + return RD(a, 36), pfd(pfd(pfd(new ufd(), (sXb(), nXb), (hcc(), Ebc)), oXb, Nbc), pXb, Mbc); + }; + _.Kf = function iHc(a, b) { + fHc(RD(a, 36), b); + }; + sfb(pEe, "InteractiveLayerer", 1407); + feb(578, 1, { 578: 1 }, jHc); + _.a = 0; + _.c = 0; + sfb(pEe, "InteractiveLayerer/LayerSpan", 578); + feb(1403, 1, nEe, pHc); + _.rg = function qHc(a) { + return RD(a, 36), kHc; + }; + _.Kf = function rHc(a, b) { + mHc(this, RD(a, 36), b); + }; + var kHc; + sfb(pEe, "LongestPathLayerer", 1403); + feb(1412, 1, nEe, xHc); + _.rg = function yHc(a) { + return RD(a, 36), sHc; + }; + _.Kf = function zHc(a, b) { + uHc(this, RD(a, 36), b); + }; + var sHc; + sfb(pEe, "LongestPathSourceLayerer", 1412); + feb(1410, 1, nEe, IHc); + _.rg = function JHc(a) { + return RD(a, 36), pfd(pfd(pfd(new ufd(), (sXb(), nXb), (hcc(), obc)), oXb, Nbc), pXb, Mbc); + }; + _.Kf = function KHc(a, b) { + GHc(this, RD(a, 36), b); + }; + _.a = 0; + _.b = 0; + _.d = 0; + var AHc, BHc; + sfb(pEe, "MinWidthLayerer", 1410); + feb(1411, 1, fye, MHc); + _.Ne = function NHc(a, b) { + return LHc(this, RD(a, 10), RD(b, 10)); + }; + _.Fb = function OHc(a) { + return this === a; + }; + _.Oe = function PHc() { + return new Frb(this); + }; + sfb(pEe, "MinWidthLayerer/MinOutgoingEdgesComparator", 1411); + feb(1402, 1, nEe, XHc); + _.rg = function YHc(a) { + return RD(a, 36), QHc; + }; + _.Kf = function ZHc(a, b) { + WHc(this, RD(a, 36), b); + }; + var QHc; + sfb(pEe, "NetworkSimplexLayerer", 1402); + feb(1408, 1, nEe, jIc); + _.rg = function kIc(a) { + return RD(a, 36), pfd(pfd(pfd(new ufd(), (sXb(), nXb), (hcc(), obc)), oXb, Nbc), pXb, Mbc); + }; + _.Kf = function lIc(a, b) { + gIc(this, RD(a, 36), b); + }; + _.d = 0; + _.f = 0; + _.g = 0; + _.i = 0; + _.s = 0; + _.t = 0; + _.u = 0; + sfb(pEe, "StretchWidthLayerer", 1408); + feb(1409, 1, fye, nIc); + _.Ne = function oIc(a, b) { + return mIc(RD(a, 10), RD(b, 10)); + }; + _.Fb = function pIc(a) { + return this === a; + }; + _.Oe = function qIc() { + return new Frb(this); + }; + sfb(pEe, "StretchWidthLayerer/1", 1409); + feb(413, 1, qEe); + _.gg = function FIc(a, b, c, d, e, f) { + }; + _.ug = function DIc(a, b, c) { + return wIc(this, a, b, c); + }; + _.fg = function EIc() { + this.g = $C(jE, rEe, 28, this.d, 15, 1); + this.f = $C(jE, rEe, 28, this.d, 15, 1); + }; + _.hg = function GIc(a, b) { + this.e[a] = $C(kE, Pwe, 28, b[a].length, 15, 1); + }; + _.ig = function HIc(a, b, c) { + var d; + d = c[a][b]; + d.p = b; + this.e[a][b] = b; + }; + _.jg = function IIc(a, b, c, d) { + RD(Vmb(d[a][b].j, c), 12).p = this.d++; + }; + _.b = 0; + _.c = 0; + _.d = 0; + sfb(sEe, "AbstractBarycenterPortDistributor", 413); + feb(1698, 1, fye, JIc); + _.Ne = function KIc(a, b) { + return zIc(this.a, RD(a, 12), RD(b, 12)); + }; + _.Fb = function LIc(a) { + return this === a; + }; + _.Oe = function MIc() { + return new Frb(this); + }; + sfb(sEe, "AbstractBarycenterPortDistributor/lambda$0$Type", 1698); + feb(832, 1, uBe, UIc); + _.gg = function XIc(a, b, c, d, e, f) { + }; + _.ig = function ZIc(a, b, c) { + }; + _.jg = function $Ic(a, b, c, d) { + }; + _.eg = function VIc() { + return false; + }; + _.fg = function WIc() { + this.c = this.e.a; + this.g = this.f.g; + }; + _.hg = function YIc(a, b) { + b[a][0].c.p = a; + }; + _.kg = function _Ic() { + return false; + }; + _.vg = function aJc(a, b, c, d) { + if (c) { + RIc(this, a); + } else { + OIc(this, a, d); + PIc(this, a, b); + } + if (a.c.length > 1) { + Heb(TD(mQb(Y2b((tFb(0, a.c.length), RD(a.c[0], 10))), (yCc(), eAc)))) ? wLc(a, this.d, RD(this, 669)) : (yob(), _mb(a, this.d)); + nJc(this.e, a); + } + }; + _.lg = function bJc(a, b, c, d) { + var e, f, g, h, i, j, k; + if (b != SIc(c, a.length)) { + f = a[b - (c ? 1 : -1)]; + sIc(this.f, f, c ? (BEc(), zEc) : (BEc(), yEc)); + } + e = a[b][0]; + k = !d || e.k == (r3b(), m3b); + j = dv(a[b]); + this.vg(j, k, false, c); + g = 0; + for (i = new Anb(j); i.a < i.c.c.length; ) { + h = RD(ynb(i), 10); + a[b][g++] = h; + } + return false; + }; + _.mg = function cJc(a, b) { + var c, d, e, f, g; + g = SIc(b, a.length); + f = dv(a[g]); + this.vg(f, false, true, b); + c = 0; + for (e = new Anb(f); e.a < e.c.c.length; ) { + d = RD(ynb(e), 10); + a[g][c++] = d; + } + return false; + }; + sfb(sEe, "BarycenterHeuristic", 832); + feb(667, 1, { 667: 1 }, dJc); + _.Ib = function eJc() { + return "BarycenterState [node=" + this.c + ", summedWeight=" + this.d + ", degree=" + this.b + ", barycenter=" + this.a + ", visited=" + this.e + "]"; + }; + _.b = 0; + _.d = 0; + _.e = false; + var aY = sfb(sEe, "BarycenterHeuristic/BarycenterState", 667); + feb(1865, 1, fye, fJc); + _.Ne = function gJc(a, b) { + return QIc(this.a, RD(a, 10), RD(b, 10)); + }; + _.Fb = function hJc(a) { + return this === a; + }; + _.Oe = function iJc() { + return new Frb(this); + }; + sfb(sEe, "BarycenterHeuristic/lambda$0$Type", 1865); + feb(831, 1, uBe, qJc); + _.fg = function rJc() { + }; + _.gg = function sJc(a, b, c, d, e, f) { + }; + _.jg = function vJc(a, b, c, d) { + }; + _.hg = function tJc(a, b) { + this.a[a] = $C(aY, { 3: 1, 4: 1, 5: 1, 2117: 1 }, 667, b[a].length, 0, 1); + this.b[a] = $C(dY, { 3: 1, 4: 1, 5: 1, 2118: 1 }, 239, b[a].length, 0, 1); + }; + _.ig = function uJc(a, b, c) { + mJc(this, c[a][b], true); + }; + _.c = false; + sfb(sEe, "ForsterConstraintResolver", 831); + feb(239, 1, { 239: 1 }, yJc, zJc); + _.Ib = function AJc() { + var a, b; + b = new bib(); + b.a += "["; + for (a = 0; a < this.d.length; a++) { + Zhb(b, i3b(this.d[a])); + pJc(this.g, this.d[0]).a != null && Zhb(Zhb((b.a += "<", b), Pfb(pJc(this.g, this.d[0]).a)), ">"); + a < this.d.length - 1 && (b.a += pve, b); + } + return (b.a += "]", b).a; + }; + _.a = 0; + _.c = 0; + _.f = 0; + var dY = sfb(sEe, "ForsterConstraintResolver/ConstraintGroup", 239); + feb(1860, 1, Qve, BJc); + _.Cd = function CJc(a) { + mJc(this.a, RD(a, 10), false); + }; + sfb(sEe, "ForsterConstraintResolver/lambda$0$Type", 1860); + feb(219, 1, { 219: 1, 230: 1 }, FJc); + _.gg = function HJc(a, b, c, d, e, f) { + }; + _.hg = function IJc(a, b) { + }; + _.fg = function GJc() { + this.r = $C(kE, Pwe, 28, this.n, 15, 1); + }; + _.ig = function JJc(a, b, c) { + var d, e; + e = c[a][b]; + d = e.e; + !!d && Rmb(this.b, d); + }; + _.jg = function KJc(a, b, c, d) { + ++this.n; + }; + _.Ib = function LJc() { + return Inb(this.e, new _sb()); + }; + _.g = false; + _.i = false; + _.n = 0; + _.s = false; + sfb(sEe, "GraphInfoHolder", 219); + feb(1905, 1, uBe, PJc); + _.gg = function SJc(a, b, c, d, e, f) { + }; + _.hg = function TJc(a, b) { + }; + _.jg = function VJc(a, b, c, d) { + }; + _.ug = function QJc(a, b, c) { + c && b > 0 ? (pMc(this.a, a[b - 1], a[b]), void 0) : !c && b < a.length - 1 ? (pMc(this.a, a[b], a[b + 1]), void 0) : rMc(this.a, a[b], c ? (qpd(), ppd) : (qpd(), Xod)); + return MJc(this, a, b, c); + }; + _.fg = function RJc() { + this.d = $C(kE, Pwe, 28, this.c, 15, 1); + this.a = new DMc(this.d); + }; + _.ig = function UJc(a, b, c) { + var d; + d = c[a][b]; + this.c += d.j.c.length; + }; + _.c = 0; + sfb(sEe, "GreedyPortDistributor", 1905); + feb(1421, 1, nEe, aKc); + _.rg = function bKc(a) { + return ZJc(RD(a, 36)); + }; + _.Kf = function cKc(a, b) { + _Jc(RD(a, 36), b); + }; + var XJc; + sfb(sEe, "InteractiveCrossingMinimizer", 1421); + feb(1422, 1, fye, eKc); + _.Ne = function fKc(a, b) { + return dKc(this, RD(a, 10), RD(b, 10)); + }; + _.Fb = function gKc(a) { + return this === a; + }; + _.Oe = function hKc() { + return new Frb(this); + }; + sfb(sEe, "InteractiveCrossingMinimizer/1", 1422); + feb(514, 1, { 514: 1, 106: 1, 47: 1 }, FKc); + _.rg = function GKc(a) { + var b; + return RD(a, 36), b = vfd(iKc), pfd(b, (sXb(), pXb), (hcc(), Ybc)), b; + }; + _.Kf = function HKc(a, b) { + wKc(this, RD(a, 36), b); + }; + _.e = 0; + var iKc; + sfb(sEe, "LayerSweepCrossingMinimizer", 514); + feb(1418, 1, Qve, IKc); + _.Cd = function JKc(a) { + kKc(this.a, RD(a, 219)); + }; + sfb(sEe, "LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type", 1418); + feb(1419, 1, Qve, KKc); + _.Cd = function LKc(a) { + tKc(this.a, RD(a, 219)); + }; + sfb(sEe, "LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type", 1419); + feb(1420, 1, Qve, MKc); + _.Cd = function NKc(a) { + vKc(this.a, RD(a, 219)); + }; + sfb(sEe, "LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type", 1420); + feb(464, 22, { 3: 1, 34: 1, 22: 1, 464: 1 }, SKc); + var OKc, PKc, QKc; + var nY = tfb(sEe, "LayerSweepCrossingMinimizer/CrossMinType", 464, WI, UKc, TKc); + var VKc; + feb(1417, 1, nwe, XKc); + _.Mb = function YKc(a) { + return jKc(), RD(a, 30).a.c.length == 0; + }; + sfb(sEe, "LayerSweepCrossingMinimizer/lambda$0$Type", 1417); + feb(1862, 1, uBe, _Kc); + _.fg = function aLc() { + }; + _.gg = function bLc(a, b, c, d, e, f) { + }; + _.jg = function eLc(a, b, c, d) { + }; + _.hg = function cLc(a, b) { + b[a][0].c.p = a; + this.b[a] = $C(qY, { 3: 1, 4: 1, 5: 1, 2043: 1 }, 668, b[a].length, 0, 1); + }; + _.ig = function dLc(a, b, c) { + var d; + d = c[a][b]; + d.p = b; + bD(this.b[a], b, new fLc()); + }; + sfb(sEe, "LayerSweepTypeDecider", 1862); + feb(668, 1, { 668: 1 }, fLc); + _.Ib = function gLc() { + return "NodeInfo [connectedEdges=" + this.a + ", hierarchicalInfluence=" + this.b + ", randomInfluence=" + this.c + "]"; + }; + _.a = 0; + _.b = 0; + _.c = 0; + var qY = sfb(sEe, "LayerSweepTypeDecider/NodeInfo", 668); + feb(1863, 1, xye, hLc); + _.Lb = function iLc(a) { + return k4b(new l4b(RD(a, 12).b)); + }; + _.Fb = function jLc(a) { + return this === a; + }; + _.Mb = function kLc(a) { + return k4b(new l4b(RD(a, 12).b)); + }; + sfb(sEe, "LayerSweepTypeDecider/lambda$0$Type", 1863); + feb(1864, 1, xye, lLc); + _.Lb = function mLc(a) { + return k4b(new l4b(RD(a, 12).b)); + }; + _.Fb = function nLc(a) { + return this === a; + }; + _.Mb = function oLc(a) { + return k4b(new l4b(RD(a, 12).b)); + }; + sfb(sEe, "LayerSweepTypeDecider/lambda$1$Type", 1864); + feb(1906, 413, qEe, pLc); + _.tg = function qLc(a, b, c) { + var d, e, f, g, h, i, j, k, l; + j = this.g; + switch (c.g) { + case 1: { + d = 0; + e = 0; + for (i = new Anb(a.j); i.a < i.c.c.length; ) { + g = RD(ynb(i), 12); + if (g.e.c.length != 0) { + ++d; + g.j == (qpd(), Yod) && ++e; + } + } + f = b + e; + l = b + d; + for (h = c3b(a, (BEc(), yEc)).Kc(); h.Ob(); ) { + g = RD(h.Pb(), 12); + if (g.j == (qpd(), Yod)) { + j[g.p] = f; + --f; + } else { + j[g.p] = l; + --l; + } + } + return d; + } + case 2: { + k = 0; + for (h = c3b(a, (BEc(), zEc)).Kc(); h.Ob(); ) { + g = RD(h.Pb(), 12); + ++k; + j[g.p] = b + k; + } + return k; + } + default: + throw Adb(new _fb()); + } + }; + sfb(sEe, "LayerTotalPortDistributor", 1906); + feb(669, 832, { 669: 1, 230: 1 }, vLc); + _.vg = function xLc(a, b, c, d) { + if (c) { + RIc(this, a); + } else { + OIc(this, a, d); + PIc(this, a, b); + } + if (a.c.length > 1) { + Heb(TD(mQb(Y2b((tFb(0, a.c.length), RD(a.c[0], 10))), (yCc(), eAc)))) ? wLc(a, this.d, this) : (yob(), _mb(a, this.d)); + Heb(TD(mQb(Y2b((tFb(0, a.c.length), RD(a.c[0], 10))), eAc))) || nJc(this.e, a); + } + }; + sfb(sEe, "ModelOrderBarycenterHeuristic", 669); + feb(1866, 1, fye, yLc); + _.Ne = function zLc(a, b) { + return tLc(this.a, RD(a, 10), RD(b, 10)); + }; + _.Fb = function ALc(a) { + return this === a; + }; + _.Oe = function BLc() { + return new Frb(this); + }; + sfb(sEe, "ModelOrderBarycenterHeuristic/lambda$0$Type", 1866); + feb(1423, 1, nEe, FLc); + _.rg = function GLc(a) { + var b; + return RD(a, 36), b = vfd(CLc), pfd(b, (sXb(), pXb), (hcc(), Ybc)), b; + }; + _.Kf = function HLc(a, b) { + ELc((RD(a, 36), b)); + }; + var CLc; + sfb(sEe, "NoCrossingMinimizer", 1423); + feb(809, 413, qEe, ILc); + _.tg = function JLc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n; + l = this.g; + switch (c.g) { + case 1: { + e = 0; + f = 0; + for (k = new Anb(a.j); k.a < k.c.c.length; ) { + i = RD(ynb(k), 12); + if (i.e.c.length != 0) { + ++e; + i.j == (qpd(), Yod) && ++f; + } + } + d = 1 / (e + 1); + g = b + f * d; + n = b + 1 - d; + for (j = c3b(a, (BEc(), yEc)).Kc(); j.Ob(); ) { + i = RD(j.Pb(), 12); + if (i.j == (qpd(), Yod)) { + l[i.p] = g; + g -= d; + } else { + l[i.p] = n; + n -= d; + } + } + break; + } + case 2: { + h = 0; + for (k = new Anb(a.j); k.a < k.c.c.length; ) { + i = RD(ynb(k), 12); + i.g.c.length == 0 || ++h; + } + d = 1 / (h + 1); + m = b + d; + for (j = c3b(a, (BEc(), zEc)).Kc(); j.Ob(); ) { + i = RD(j.Pb(), 12); + l[i.p] = m; + m += d; + } + break; + } + default: + throw Adb(new agb("Port type is undefined")); + } + return 1; + }; + sfb(sEe, "NodeRelativePortDistributor", 809); + feb(822, 1, {}, NLc, OLc); + sfb(sEe, "SweepCopy", 822); + feb(1861, 1, uBe, RLc); + _.hg = function ULc(a, b) { + }; + _.fg = function SLc() { + var a; + a = $C(kE, Pwe, 28, this.f, 15, 1); + this.d = new jNc(a); + this.a = new DMc(a); + }; + _.gg = function TLc(a, b, c, d, e, f) { + var g; + g = RD(Vmb(f[a][b].j, c), 12); + e.c == g && e.c.i.c == e.d.i.c && ++this.e[a]; + }; + _.ig = function VLc(a, b, c) { + var d; + d = c[a][b]; + this.c[a] = this.c[a] | d.k == (r3b(), q3b); + }; + _.jg = function WLc(a, b, c, d) { + var e; + e = RD(Vmb(d[a][b].j, c), 12); + e.p = this.f++; + e.g.c.length + e.e.c.length > 1 && (e.j == (qpd(), Xod) ? this.b[a] = true : e.j == ppd && a > 0 && (this.b[a - 1] = true)); + }; + _.f = 0; + sfb(tBe, "AllCrossingsCounter", 1861); + feb(595, 1, {}, _Lc); + _.b = 0; + _.d = 0; + sfb(tBe, "BinaryIndexedTree", 595); + feb(532, 1, {}, DMc); + var bMc, cMc; + sfb(tBe, "CrossingsCounter", 532); + feb(1950, 1, fye, HMc); + _.Ne = function IMc(a, b) { + return wMc(this.a, RD(a, 12), RD(b, 12)); + }; + _.Fb = function JMc(a) { + return this === a; + }; + _.Oe = function KMc() { + return new Frb(this); + }; + sfb(tBe, "CrossingsCounter/lambda$0$Type", 1950); + feb(1951, 1, fye, LMc); + _.Ne = function MMc(a, b) { + return xMc(this.a, RD(a, 12), RD(b, 12)); + }; + _.Fb = function NMc(a) { + return this === a; + }; + _.Oe = function OMc() { + return new Frb(this); + }; + sfb(tBe, "CrossingsCounter/lambda$1$Type", 1951); + feb(1952, 1, fye, PMc); + _.Ne = function QMc(a, b) { + return yMc(this.a, RD(a, 12), RD(b, 12)); + }; + _.Fb = function RMc(a) { + return this === a; + }; + _.Oe = function SMc() { + return new Frb(this); + }; + sfb(tBe, "CrossingsCounter/lambda$2$Type", 1952); + feb(1953, 1, fye, TMc); + _.Ne = function UMc(a, b) { + return zMc(this.a, RD(a, 12), RD(b, 12)); + }; + _.Fb = function VMc(a) { + return this === a; + }; + _.Oe = function WMc() { + return new Frb(this); + }; + sfb(tBe, "CrossingsCounter/lambda$3$Type", 1953); + feb(1954, 1, Qve, XMc); + _.Cd = function YMc(a) { + EMc(this.a, RD(a, 12)); + }; + sfb(tBe, "CrossingsCounter/lambda$4$Type", 1954); + feb(1955, 1, nwe, ZMc); + _.Mb = function $Mc(a) { + return FMc(this.a, RD(a, 12)); + }; + sfb(tBe, "CrossingsCounter/lambda$5$Type", 1955); + feb(1956, 1, Qve, aNc); + _.Cd = function bNc(a) { + _Mc(this, a); + }; + sfb(tBe, "CrossingsCounter/lambda$6$Type", 1956); + feb(1957, 1, Qve, cNc); + _.Cd = function dNc(a) { + var b; + dMc(); + hmb(this.b, (b = this.a, RD(a, 12), b)); + }; + sfb(tBe, "CrossingsCounter/lambda$7$Type", 1957); + feb(839, 1, xye, eNc); + _.Lb = function fNc(a) { + return dMc(), nQb(RD(a, 12), (Ywc(), Iwc)); + }; + _.Fb = function gNc(a) { + return this === a; + }; + _.Mb = function hNc(a) { + return dMc(), nQb(RD(a, 12), (Ywc(), Iwc)); + }; + sfb(tBe, "CrossingsCounter/lambda$8$Type", 839); + feb(1949, 1, {}, jNc); + sfb(tBe, "HyperedgeCrossingsCounter", 1949); + feb(478, 1, { 34: 1, 478: 1 }, lNc); + _.Fd = function mNc(a) { + return kNc(this, RD(a, 478)); + }; + _.b = 0; + _.c = 0; + _.e = 0; + _.f = 0; + var OY = sfb(tBe, "HyperedgeCrossingsCounter/Hyperedge", 478); + feb(374, 1, { 34: 1, 374: 1 }, oNc); + _.Fd = function pNc(a) { + return nNc(this, RD(a, 374)); + }; + _.b = 0; + _.c = 0; + var NY = sfb(tBe, "HyperedgeCrossingsCounter/HyperedgeCorner", 374); + feb(531, 22, { 3: 1, 34: 1, 22: 1, 531: 1 }, tNc); + var qNc, rNc; + var MY = tfb(tBe, "HyperedgeCrossingsCounter/HyperedgeCorner/Type", 531, WI, vNc, uNc); + var wNc; + feb(1425, 1, nEe, DNc); + _.rg = function ENc(a) { + return RD(mQb(RD(a, 36), (Ywc(), kwc)), 21).Hc((ovc(), hvc)) ? zNc : null; + }; + _.Kf = function FNc(a, b) { + CNc(this, RD(a, 36), b); + }; + var zNc; + sfb(tEe, "InteractiveNodePlacer", 1425); + feb(1426, 1, nEe, TNc); + _.rg = function UNc(a) { + return RD(mQb(RD(a, 36), (Ywc(), kwc)), 21).Hc((ovc(), hvc)) ? GNc : null; + }; + _.Kf = function VNc(a, b) { + RNc(this, RD(a, 36), b); + }; + var GNc, HNc, INc; + sfb(tEe, "LinearSegmentsNodePlacer", 1426); + feb(261, 1, { 34: 1, 261: 1 }, ZNc); + _.Fd = function $Nc(a) { + return WNc(this, RD(a, 261)); + }; + _.Fb = function _Nc(a) { + var b; + if (ZD(a, 261)) { + b = RD(a, 261); + return this.b == b.b; + } + return false; + }; + _.Hb = function aOc() { + return this.b; + }; + _.Ib = function bOc() { + return "ls" + Fe(this.e); + }; + _.a = 0; + _.b = 0; + _.c = -1; + _.d = -1; + _.g = 0; + var SY = sfb(tEe, "LinearSegmentsNodePlacer/LinearSegment", 261); + feb(1428, 1, nEe, yOc); + _.rg = function zOc(a) { + return RD(mQb(RD(a, 36), (Ywc(), kwc)), 21).Hc((ovc(), hvc)) ? cOc : null; + }; + _.Kf = function HOc(a, b) { + uOc(this, RD(a, 36), b); + }; + _.b = 0; + _.g = 0; + var cOc; + sfb(tEe, "NetworkSimplexPlacer", 1428); + feb(1447, 1, fye, IOc); + _.Ne = function JOc(a, b) { + return hgb(RD(a, 17).a, RD(b, 17).a); + }; + _.Fb = function KOc(a) { + return this === a; + }; + _.Oe = function LOc() { + return new Frb(this); + }; + sfb(tEe, "NetworkSimplexPlacer/0methodref$compare$Type", 1447); + feb(1449, 1, fye, MOc); + _.Ne = function NOc(a, b) { + return hgb(RD(a, 17).a, RD(b, 17).a); + }; + _.Fb = function OOc(a) { + return this === a; + }; + _.Oe = function POc() { + return new Frb(this); + }; + sfb(tEe, "NetworkSimplexPlacer/1methodref$compare$Type", 1449); + feb(655, 1, { 655: 1 }, QOc); + var WY = sfb(tEe, "NetworkSimplexPlacer/EdgeRep", 655); + feb(412, 1, { 412: 1 }, ROc); + _.b = false; + var XY = sfb(tEe, "NetworkSimplexPlacer/NodeRep", 412); + feb(515, 13, { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 13: 1, 16: 1, 15: 1, 59: 1, 515: 1 }, VOc); + sfb(tEe, "NetworkSimplexPlacer/Path", 515); + feb(1429, 1, {}, WOc); + _.Kb = function XOc(a) { + return RD(a, 18).d.i.k; + }; + sfb(tEe, "NetworkSimplexPlacer/Path/lambda$0$Type", 1429); + feb(1430, 1, nwe, YOc); + _.Mb = function ZOc(a) { + return RD(a, 273) == (r3b(), o3b); + }; + sfb(tEe, "NetworkSimplexPlacer/Path/lambda$1$Type", 1430); + feb(1431, 1, {}, $Oc); + _.Kb = function _Oc(a) { + return RD(a, 18).d.i; + }; + sfb(tEe, "NetworkSimplexPlacer/Path/lambda$2$Type", 1431); + feb(1432, 1, nwe, aPc); + _.Mb = function bPc(a) { + return EPc(zDc(RD(a, 10))); + }; + sfb(tEe, "NetworkSimplexPlacer/Path/lambda$3$Type", 1432); + feb(1433, 1, nwe, cPc); + _.Mb = function dPc(a) { + return DOc(RD(a, 12)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$0$Type", 1433); + feb(1434, 1, Qve, ePc); + _.Cd = function fPc(a) { + jOc(this.a, this.b, RD(a, 12)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$1$Type", 1434); + feb(1443, 1, Qve, gPc); + _.Cd = function hPc(a) { + kOc(this.a, RD(a, 18)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$10$Type", 1443); + feb(1444, 1, {}, iPc); + _.Kb = function jPc(a) { + return dOc(), new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$11$Type", 1444); + feb(1445, 1, Qve, kPc); + _.Cd = function lPc(a) { + lOc(this.a, RD(a, 10)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$12$Type", 1445); + feb(1446, 1, {}, mPc); + _.Kb = function nPc(a) { + return dOc(), sgb(RD(a, 125).e); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$13$Type", 1446); + feb(1448, 1, {}, oPc); + _.Kb = function pPc(a) { + return dOc(), sgb(RD(a, 125).e); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$15$Type", 1448); + feb(1450, 1, nwe, qPc); + _.Mb = function rPc(a) { + return dOc(), RD(a, 412).c.k == (r3b(), p3b); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$17$Type", 1450); + feb(1451, 1, nwe, sPc); + _.Mb = function tPc(a) { + return dOc(), RD(a, 412).c.j.c.length > 1; + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$18$Type", 1451); + feb(1452, 1, Qve, uPc); + _.Cd = function vPc(a) { + EOc(this.c, this.b, this.d, this.a, RD(a, 412)); + }; + _.c = 0; + _.d = 0; + sfb(tEe, "NetworkSimplexPlacer/lambda$19$Type", 1452); + feb(1435, 1, {}, wPc); + _.Kb = function xPc(a) { + return dOc(), new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$2$Type", 1435); + feb(1453, 1, Qve, yPc); + _.Cd = function zPc(a) { + FOc(this.a, RD(a, 12)); + }; + _.a = 0; + sfb(tEe, "NetworkSimplexPlacer/lambda$20$Type", 1453); + feb(1454, 1, {}, APc); + _.Kb = function BPc(a) { + return dOc(), new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$21$Type", 1454); + feb(1455, 1, Qve, CPc); + _.Cd = function DPc(a) { + mOc(this.a, RD(a, 10)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$22$Type", 1455); + feb(1456, 1, nwe, FPc); + _.Mb = function GPc(a) { + return EPc(a); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$23$Type", 1456); + feb(1457, 1, {}, HPc); + _.Kb = function IPc(a) { + return dOc(), new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$24$Type", 1457); + feb(1458, 1, nwe, JPc); + _.Mb = function KPc(a) { + return nOc(this.a, RD(a, 10)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$25$Type", 1458); + feb(1459, 1, Qve, LPc); + _.Cd = function MPc(a) { + oOc(this.a, this.b, RD(a, 10)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$26$Type", 1459); + feb(1460, 1, nwe, NPc); + _.Mb = function OPc(a) { + return dOc(), !W0b(RD(a, 18)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$27$Type", 1460); + feb(1461, 1, nwe, PPc); + _.Mb = function QPc(a) { + return dOc(), !W0b(RD(a, 18)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$28$Type", 1461); + feb(1462, 1, {}, RPc); + _.Ve = function SPc(a, b) { + return pOc(this.a, RD(a, 30), RD(b, 30)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$29$Type", 1462); + feb(1436, 1, {}, TPc); + _.Kb = function UPc(a) { + return dOc(), new SDb(null, new Twb(new is(Mr(a3b(RD(a, 10)).a.Kc(), new ir())))); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$3$Type", 1436); + feb(1437, 1, nwe, VPc); + _.Mb = function WPc(a) { + return dOc(), COc(RD(a, 18)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$4$Type", 1437); + feb(1438, 1, Qve, XPc); + _.Cd = function YPc(a) { + vOc(this.a, RD(a, 18)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$5$Type", 1438); + feb(1439, 1, {}, ZPc); + _.Kb = function $Pc(a) { + return dOc(), new SDb(null, new Swb(RD(a, 30).a, 16)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$6$Type", 1439); + feb(1440, 1, nwe, _Pc); + _.Mb = function aQc(a) { + return dOc(), RD(a, 10).k == (r3b(), p3b); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$7$Type", 1440); + feb(1441, 1, {}, bQc); + _.Kb = function cQc(a) { + return dOc(), new SDb(null, new Twb(new is(Mr(W2b(RD(a, 10)).a.Kc(), new ir())))); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$8$Type", 1441); + feb(1442, 1, nwe, dQc); + _.Mb = function eQc(a) { + return dOc(), V0b(RD(a, 18)); + }; + sfb(tEe, "NetworkSimplexPlacer/lambda$9$Type", 1442); + feb(1424, 1, nEe, iQc); + _.rg = function jQc(a) { + return RD(mQb(RD(a, 36), (Ywc(), kwc)), 21).Hc((ovc(), hvc)) ? fQc : null; + }; + _.Kf = function kQc(a, b) { + hQc(RD(a, 36), b); + }; + var fQc; + sfb(tEe, "SimpleNodePlacer", 1424); + feb(185, 1, { 185: 1 }, sQc); + _.Ib = function tQc() { + var a; + a = ""; + this.c == (wQc(), vQc) ? a += Oye : this.c == uQc && (a += Nye); + this.o == (EQc(), CQc) ? a += Zye : this.o == DQc ? a += "UP" : a += "BALANCED"; + return a; + }; + sfb(wEe, "BKAlignedLayout", 185); + feb(523, 22, { 3: 1, 34: 1, 22: 1, 523: 1 }, xQc); + var uQc, vQc; + var FZ = tfb(wEe, "BKAlignedLayout/HDirection", 523, WI, zQc, yQc); + var AQc; + feb(522, 22, { 3: 1, 34: 1, 22: 1, 522: 1 }, FQc); + var CQc, DQc; + var GZ = tfb(wEe, "BKAlignedLayout/VDirection", 522, WI, HQc, GQc); + var IQc; + feb(1699, 1, {}, MQc); + sfb(wEe, "BKAligner", 1699); + feb(1702, 1, {}, RQc); + sfb(wEe, "BKCompactor", 1702); + feb(663, 1, { 663: 1 }, SQc); + _.a = 0; + sfb(wEe, "BKCompactor/ClassEdge", 663); + feb(467, 1, { 467: 1 }, UQc); + _.a = null; + _.b = 0; + sfb(wEe, "BKCompactor/ClassNode", 467); + feb(1427, 1, nEe, aRc); + _.rg = function eRc(a) { + return RD(mQb(RD(a, 36), (Ywc(), kwc)), 21).Hc((ovc(), hvc)) ? VQc : null; + }; + _.Kf = function fRc(a, b) { + _Qc(this, RD(a, 36), b); + }; + _.d = false; + var VQc; + sfb(wEe, "BKNodePlacer", 1427); + feb(1700, 1, {}, hRc); + _.d = 0; + sfb(wEe, "NeighborhoodInformation", 1700); + feb(1701, 1, fye, mRc); + _.Ne = function nRc(a, b) { + return lRc(this, RD(a, 42), RD(b, 42)); + }; + _.Fb = function oRc(a) { + return this === a; + }; + _.Oe = function pRc() { + return new Frb(this); + }; + sfb(wEe, "NeighborhoodInformation/NeighborComparator", 1701); + feb(823, 1, {}); + sfb(wEe, "ThresholdStrategy", 823); + feb(1825, 823, {}, uRc); + _.wg = function vRc(a, b, c) { + return this.a.o == (EQc(), DQc) ? oxe : pxe; + }; + _.xg = function wRc() { + }; + sfb(wEe, "ThresholdStrategy/NullThresholdStrategy", 1825); + feb(587, 1, { 587: 1 }, xRc); + _.c = false; + _.d = false; + sfb(wEe, "ThresholdStrategy/Postprocessable", 587); + feb(1826, 823, {}, BRc); + _.wg = function CRc(a, b, c) { + var d, e, f; + e = b == c; + d = this.a.a[c.p] == b; + if (!(e || d)) { + return a; + } + f = a; + if (this.a.c == (wQc(), vQc)) { + e && (f = yRc(this, b, true)); + !isNaN(f) && !isFinite(f) && d && (f = yRc(this, c, false)); + } else { + e && (f = yRc(this, b, true)); + !isNaN(f) && !isFinite(f) && d && (f = yRc(this, c, false)); + } + return f; + }; + _.xg = function DRc() { + var a, b, c, d, e; + while (this.d.b != 0) { + e = RD(Tub(this.d), 587); + d = zRc(this, e); + if (!d.a) { + continue; + } + a = d.a; + c = Heb(this.a.f[this.a.g[e.b.p].p]); + if (!c && !W0b(a) && a.c.i.c == a.d.i.c) { + continue; + } + b = ARc(this, e); + b || Eyb(this.e, e); + } + while (this.e.a.c.length != 0) { + ARc(this, RD(Dyb(this.e), 587)); + } + }; + sfb(wEe, "ThresholdStrategy/SimpleThresholdStrategy", 1826); + feb(645, 1, { 645: 1, 188: 1, 196: 1 }, HRc); + _.dg = function JRc() { + return GRc(this); + }; + _.qg = function IRc() { + return GRc(this); + }; + var ERc; + sfb(xEe, "EdgeRouterFactory", 645); + feb(1485, 1, nEe, WRc); + _.rg = function XRc(a) { + return URc(RD(a, 36)); + }; + _.Kf = function YRc(a, b) { + VRc(RD(a, 36), b); + }; + var LRc, MRc, NRc, ORc, PRc, QRc, RRc, SRc; + sfb(xEe, "OrthogonalEdgeRouter", 1485); + feb(1478, 1, nEe, lSc); + _.rg = function mSc(a) { + return gSc(RD(a, 36)); + }; + _.Kf = function nSc(a, b) { + iSc(this, RD(a, 36), b); + }; + var ZRc, $Rc, _Rc, aSc, bSc, cSc; + sfb(xEe, "PolylineEdgeRouter", 1478); + feb(1479, 1, xye, pSc); + _.Lb = function qSc(a) { + return oSc(RD(a, 10)); + }; + _.Fb = function rSc(a) { + return this === a; + }; + _.Mb = function sSc(a) { + return oSc(RD(a, 10)); + }; + sfb(xEe, "PolylineEdgeRouter/1", 1479); + feb(1872, 1, nwe, xSc); + _.Mb = function ySc(a) { + return RD(a, 132).c == (fTc(), dTc); + }; + sfb(yEe, "HyperEdgeCycleDetector/lambda$0$Type", 1872); + feb(1873, 1, {}, zSc); + _.Ze = function ASc(a) { + return RD(a, 132).d; + }; + sfb(yEe, "HyperEdgeCycleDetector/lambda$1$Type", 1873); + feb(1874, 1, nwe, BSc); + _.Mb = function CSc(a) { + return RD(a, 132).c == (fTc(), dTc); + }; + sfb(yEe, "HyperEdgeCycleDetector/lambda$2$Type", 1874); + feb(1875, 1, {}, DSc); + _.Ze = function ESc(a) { + return RD(a, 132).d; + }; + sfb(yEe, "HyperEdgeCycleDetector/lambda$3$Type", 1875); + feb(1876, 1, {}, FSc); + _.Ze = function GSc(a) { + return RD(a, 132).d; + }; + sfb(yEe, "HyperEdgeCycleDetector/lambda$4$Type", 1876); + feb(1877, 1, {}, HSc); + _.Ze = function ISc(a) { + return RD(a, 132).d; + }; + sfb(yEe, "HyperEdgeCycleDetector/lambda$5$Type", 1877); + feb(118, 1, { 34: 1, 118: 1 }, USc); + _.Fd = function VSc(a) { + return KSc(this, RD(a, 118)); + }; + _.Fb = function WSc(a) { + var b; + if (ZD(a, 118)) { + b = RD(a, 118); + return this.g == b.g; + } + return false; + }; + _.Hb = function XSc() { + return this.g; + }; + _.Ib = function ZSc() { + var a, b, c, d; + a = new dib("{"); + d = new Anb(this.n); + while (d.a < d.c.c.length) { + c = RD(ynb(d), 12); + b = X2b(c.i); + b == null && (b = "n" + $2b(c.i)); + a.a += "" + b; + d.a < d.c.c.length && (a.a += ",", a); + } + a.a += "}"; + return a.a; + }; + _.a = 0; + _.b = 0; + _.c = NaN; + _.d = 0; + _.g = 0; + _.i = 0; + _.o = 0; + _.s = NaN; + sfb(yEe, "HyperEdgeSegment", 118); + feb(132, 1, { 132: 1 }, bTc); + _.Ib = function cTc() { + return this.a + "->" + this.b + " (" + os(this.c) + ")"; + }; + _.d = 0; + sfb(yEe, "HyperEdgeSegmentDependency", 132); + feb(528, 22, { 3: 1, 34: 1, 22: 1, 528: 1 }, gTc); + var dTc, eTc; + var b$ = tfb(yEe, "HyperEdgeSegmentDependency/DependencyType", 528, WI, iTc, hTc); + var jTc; + feb(1878, 1, {}, xTc); + sfb(yEe, "HyperEdgeSegmentSplitter", 1878); + feb(1879, 1, {}, ATc); + _.a = 0; + _.b = 0; + sfb(yEe, "HyperEdgeSegmentSplitter/AreaRating", 1879); + feb(339, 1, { 339: 1 }, BTc); + _.a = 0; + _.b = 0; + _.c = 0; + sfb(yEe, "HyperEdgeSegmentSplitter/FreeArea", 339); + feb(1880, 1, fye, CTc); + _.Ne = function DTc(a, b) { + return zTc(RD(a, 118), RD(b, 118)); + }; + _.Fb = function ETc(a) { + return this === a; + }; + _.Oe = function FTc() { + return new Frb(this); + }; + sfb(yEe, "HyperEdgeSegmentSplitter/lambda$0$Type", 1880); + feb(1881, 1, Qve, GTc); + _.Cd = function HTc(a) { + rTc(this.a, this.d, this.c, this.b, RD(a, 118)); + }; + _.b = 0; + sfb(yEe, "HyperEdgeSegmentSplitter/lambda$1$Type", 1881); + feb(1882, 1, {}, ITc); + _.Kb = function JTc(a) { + return new SDb(null, new Swb(RD(a, 118).e, 16)); + }; + sfb(yEe, "HyperEdgeSegmentSplitter/lambda$2$Type", 1882); + feb(1883, 1, {}, KTc); + _.Kb = function LTc(a) { + return new SDb(null, new Swb(RD(a, 118).j, 16)); + }; + sfb(yEe, "HyperEdgeSegmentSplitter/lambda$3$Type", 1883); + feb(1884, 1, {}, MTc); + _.Ye = function NTc(a) { + return Kfb(UD(a)); + }; + sfb(yEe, "HyperEdgeSegmentSplitter/lambda$4$Type", 1884); + feb(664, 1, {}, TTc); + _.a = 0; + _.b = 0; + _.c = 0; + sfb(yEe, "OrthogonalRoutingGenerator", 664); + feb(1703, 1, {}, XTc); + _.Kb = function YTc(a) { + return new SDb(null, new Swb(RD(a, 118).e, 16)); + }; + sfb(yEe, "OrthogonalRoutingGenerator/lambda$0$Type", 1703); + feb(1704, 1, {}, ZTc); + _.Kb = function $Tc(a) { + return new SDb(null, new Swb(RD(a, 118).j, 16)); + }; + sfb(yEe, "OrthogonalRoutingGenerator/lambda$1$Type", 1704); + feb(670, 1, {}); + sfb(zEe, "BaseRoutingDirectionStrategy", 670); + feb(1870, 670, {}, cUc); + _.yg = function dUc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p; + if (!!a.r && !a.q) { + return; + } + k = b + a.o * c; + for (j = new Anb(a.n); j.a < j.c.c.length; ) { + i = RD(ynb(j), 12); + l = xjd(cD(WC(l3, 1), Nve, 8, 0, [i.i.n, i.n, i.a])).a; + for (h = new Anb(i.g); h.a < h.c.c.length; ) { + g = RD(ynb(h), 18); + if (!W0b(g)) { + o2 = g.d; + p = xjd(cD(WC(l3, 1), Nve, 8, 0, [o2.i.n, o2.n, o2.a])).a; + if ($wnd.Math.abs(l - p) > Vze) { + f = k; + e = a; + d = new rjd(l, f); + Mub(g.a, d); + _Tc(this, g, e, d, false); + m = a.r; + if (m) { + n = Kfb(UD(ju(m.e, 0))); + d = new rjd(n, f); + Mub(g.a, d); + _Tc(this, g, e, d, false); + f = b + m.o * c; + e = m; + d = new rjd(n, f); + Mub(g.a, d); + _Tc(this, g, e, d, false); + } + d = new rjd(p, f); + Mub(g.a, d); + _Tc(this, g, e, d, false); + } + } + } + } + }; + _.zg = function eUc(a) { + return a.i.n.a + a.n.a + a.a.a; + }; + _.Ag = function fUc() { + return qpd(), npd; + }; + _.Bg = function gUc() { + return qpd(), Yod; + }; + sfb(zEe, "NorthToSouthRoutingStrategy", 1870); + feb(1871, 670, {}, hUc); + _.yg = function iUc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p; + if (!!a.r && !a.q) { + return; + } + k = b - a.o * c; + for (j = new Anb(a.n); j.a < j.c.c.length; ) { + i = RD(ynb(j), 12); + l = xjd(cD(WC(l3, 1), Nve, 8, 0, [i.i.n, i.n, i.a])).a; + for (h = new Anb(i.g); h.a < h.c.c.length; ) { + g = RD(ynb(h), 18); + if (!W0b(g)) { + o2 = g.d; + p = xjd(cD(WC(l3, 1), Nve, 8, 0, [o2.i.n, o2.n, o2.a])).a; + if ($wnd.Math.abs(l - p) > Vze) { + f = k; + e = a; + d = new rjd(l, f); + Mub(g.a, d); + _Tc(this, g, e, d, false); + m = a.r; + if (m) { + n = Kfb(UD(ju(m.e, 0))); + d = new rjd(n, f); + Mub(g.a, d); + _Tc(this, g, e, d, false); + f = b - m.o * c; + e = m; + d = new rjd(n, f); + Mub(g.a, d); + _Tc(this, g, e, d, false); + } + d = new rjd(p, f); + Mub(g.a, d); + _Tc(this, g, e, d, false); + } + } + } + } + }; + _.zg = function jUc(a) { + return a.i.n.a + a.n.a + a.a.a; + }; + _.Ag = function kUc() { + return qpd(), Yod; + }; + _.Bg = function lUc() { + return qpd(), npd; + }; + sfb(zEe, "SouthToNorthRoutingStrategy", 1871); + feb(1869, 670, {}, mUc); + _.yg = function nUc(a, b, c) { + var d, e, f, g, h, i, j, k, l, m, n, o2, p; + if (!!a.r && !a.q) { + return; + } + k = b + a.o * c; + for (j = new Anb(a.n); j.a < j.c.c.length; ) { + i = RD(ynb(j), 12); + l = xjd(cD(WC(l3, 1), Nve, 8, 0, [i.i.n, i.n, i.a])).b; + for (h = new Anb(i.g); h.a < h.c.c.length; ) { + g = RD(ynb(h), 18); + if (!W0b(g)) { + o2 = g.d; + p = xjd(cD(WC(l3, 1), Nve, 8, 0, [o2.i.n, o2.n, o2.a])).b; + if ($wnd.Math.abs(l - p) > Vze) { + f = k; + e = a; + d = new rjd(f, l); + Mub(g.a, d); + _Tc(this, g, e, d, true); + m = a.r; + if (m) { + n = Kfb(UD(ju(m.e, 0))); + d = new rjd(f, n); + Mub(g.a, d); + _Tc(this, g, e, d, true); + f = b + m.o * c; + e = m; + d = new rjd(f, n); + Mub(g.a, d); + _Tc(this, g, e, d, true); + } + d = new rjd(f, p); + Mub(g.a, d); + _Tc(this, g, e, d, true); + } + } + } + } + }; + _.zg = function oUc(a) { + return a.i.n.b + a.n.b + a.a.b; + }; + _.Ag = function pUc() { + return qpd(), Xod; + }; + _.Bg = function qUc() { + return qpd(), ppd; + }; + sfb(zEe, "WestToEastRoutingStrategy", 1869); + feb(828, 1, {}, wUc); + _.Ib = function xUc() { + return Fe(this.a); + }; + _.b = 0; + _.c = false; + _.d = false; + _.f = 0; + sfb(BEe, "NubSpline", 828); + feb(418, 1, { 418: 1 }, AUc, BUc); + sfb(BEe, "NubSpline/PolarCP", 418); + feb(1480, 1, nEe, VUc); + _.rg = function XUc(a) { + return QUc(RD(a, 36)); + }; + _.Kf = function YUc(a, b) { + UUc(this, RD(a, 36), b); + }; + var CUc, DUc, EUc, FUc, GUc; + sfb(BEe, "SplineEdgeRouter", 1480); + feb(274, 1, { 274: 1 }, _Uc); + _.Ib = function aVc() { + return this.a + " ->(" + this.c + ") " + this.b; + }; + _.c = 0; + sfb(BEe, "SplineEdgeRouter/Dependency", 274); + feb(465, 22, { 3: 1, 34: 1, 22: 1, 465: 1 }, eVc); + var bVc, cVc; + var w$ = tfb(BEe, "SplineEdgeRouter/SideToProcess", 465, WI, gVc, fVc); + var hVc; + feb(1481, 1, nwe, jVc); + _.Mb = function kVc(a) { + return HUc(), !RD(a, 131).o; + }; + sfb(BEe, "SplineEdgeRouter/lambda$0$Type", 1481); + feb(1482, 1, {}, lVc); + _.Ze = function mVc(a) { + return HUc(), RD(a, 131).v + 1; + }; + sfb(BEe, "SplineEdgeRouter/lambda$1$Type", 1482); + feb(1483, 1, Qve, nVc); + _.Cd = function oVc(a) { + SUc(this.a, this.b, RD(a, 42)); + }; + sfb(BEe, "SplineEdgeRouter/lambda$2$Type", 1483); + feb(1484, 1, Qve, pVc); + _.Cd = function qVc(a) { + TUc(this.a, this.b, RD(a, 42)); + }; + sfb(BEe, "SplineEdgeRouter/lambda$3$Type", 1484); + feb(131, 1, { 34: 1, 131: 1 }, wVc, xVc); + _.Fd = function yVc(a) { + return uVc(this, RD(a, 131)); + }; + _.b = 0; + _.e = false; + _.f = 0; + _.g = 0; + _.j = false; + _.k = false; + _.n = 0; + _.o = false; + _.p = false; + _.q = false; + _.s = 0; + _.u = 0; + _.v = 0; + _.F = 0; + sfb(BEe, "SplineSegment", 131); + feb(468, 1, { 468: 1 }, zVc); + _.a = 0; + _.b = false; + _.c = false; + _.d = false; + _.e = false; + _.f = 0; + sfb(BEe, "SplineSegment/EdgeInformation", 468); + feb(1198, 1, {}, IVc); + sfb(GEe, Lze, 1198); + feb(1199, 1, fye, KVc); + _.Ne = function LVc(a, b) { + return JVc(RD(a, 121), RD(b, 121)); + }; + _.Fb = function MVc(a) { + return this === a; + }; + _.Oe = function NVc() { + return new Frb(this); + }; + sfb(GEe, Mze, 1199); + feb(1197, 1, {}, TVc); + sfb(GEe, "MrTree", 1197); + feb(405, 22, { 3: 1, 34: 1, 22: 1, 405: 1, 188: 1, 196: 1 }, $Vc); + _.dg = function aWc() { + return ZVc(this); + }; + _.qg = function _Vc() { + return ZVc(this); + }; + var UVc, VVc, WVc, XVc; + var H$ = tfb(GEe, "TreeLayoutPhases", 405, WI, cWc, bWc); + var dWc; + feb(1112, 205, oze, fWc); + _.rf = function gWc(a, b) { + var c, d, e, f, g, h, i, j; + Heb(TD(Gxd(a, (h_c(), S$c)))) || RFb((c = new SFb((lud(), new zud(a))), c)); + g = b.eh(HEe); + g.Ug("build tGraph", 1); + h = (i = new YWc(), kQb(i, a), pQb(i, (q$c(), h$c), a), j = new Tsb(), QVc(a, i, j), PVc(a, i, j), i); + g.Vg(); + g = b.eh(HEe); + g.Ug("Split graph", 1); + f = HVc(this.a, h); + g.Vg(); + for (e = new Anb(f); e.a < e.c.c.length; ) { + d = RD(ynb(e), 121); + RVc(this.b, d, b.eh(0.5999999940395355 / f.c.length)); + } + g = b.eh(HEe); + g.Ug("Pack components", 1); + h = GVc(f); + g.Vg(); + g = b.eh(HEe); + g.Ug("Apply layout results", 1); + OVc(h); + g.Vg(); + }; + sfb(GEe, "TreeLayoutProvider", 1112); + feb(1894, 1, Vve, uWc); + _.Jc = function vWc(a) { + xgb(this, a); + }; + _.Kc = function wWc() { + return yob(), Qob(), Pob; + }; + sfb(GEe, "TreeUtil/1", 1894); + feb(1895, 1, Vve, xWc); + _.Jc = function yWc(a) { + xgb(this, a); + }; + _.Kc = function zWc() { + return yob(), Qob(), Pob; + }; + sfb(GEe, "TreeUtil/2", 1895); + feb(1885, 1, nwe, AWc); + _.Mb = function BWc(a) { + return Heb(TD(mQb(RD(a, 40), (q$c(), n$c)))); + }; + sfb(GEe, "TreeUtil/lambda$0$Type", 1885); + feb(1891, 1, nwe, CWc); + _.Mb = function DWc(a) { + return this.a.Hc(RD(a, 40)); + }; + sfb(GEe, "TreeUtil/lambda$10$Type", 1891); + feb(1892, 1, {}, EWc); + _.Kb = function FWc(a) { + return nWc(this.a, RD(a, 40)); + }; + sfb(GEe, "TreeUtil/lambda$11$Type", 1892); + feb(1893, 1, nwe, GWc); + _.Mb = function HWc(a) { + return oWc(this.a, this.b, RD(a, 40)); + }; + sfb(GEe, "TreeUtil/lambda$12$Type", 1893); + feb(1886, 1, nwe, IWc); + _.Mb = function JWc(a) { + return pWc(this.a, RD(a, 65)); + }; + sfb(GEe, "TreeUtil/lambda$3$Type", 1886); + feb(1887, 1, fye, KWc); + _.Ne = function LWc(a, b) { + return qWc(RD(a, 65), RD(b, 65)); + }; + _.Fb = function MWc(a) { + return this === a; + }; + _.Oe = function NWc() { + return new Frb(this); + }; + sfb(GEe, "TreeUtil/lambda$4$Type", 1887); + feb(1888, 1, nwe, OWc); + _.Mb = function PWc(a) { + return rWc(this.a, RD(a, 65)); + }; + sfb(GEe, "TreeUtil/lambda$7$Type", 1888); + feb(1889, 1, fye, QWc); + _.Ne = function RWc(a, b) { + return sWc(RD(a, 65), RD(b, 65)); + }; + _.Fb = function SWc(a) { + return this === a; + }; + _.Oe = function TWc() { + return new Frb(this); + }; + sfb(GEe, "TreeUtil/lambda$8$Type", 1889); + feb(1890, 1, {}, UWc); + _.Kb = function VWc(a) { + return RD(a, 65).b; + }; + sfb(GEe, "TreeUtil/lambda$9$Type", 1890); + feb(508, 137, { 3: 1, 508: 1, 96: 1, 137: 1 }); + _.g = 0; + sfb(JEe, "TGraphElement", 508); + feb(65, 508, { 3: 1, 65: 1, 508: 1, 96: 1, 137: 1 }, WWc); + _.Ib = function XWc() { + return !!this.b && !!this.c ? aXc(this.b) + "->" + aXc(this.c) : "e_" + tb(this); + }; + sfb(JEe, "TEdge", 65); + feb(121, 137, { 3: 1, 121: 1, 96: 1, 137: 1 }, YWc); + _.Ib = function ZWc() { + var a, b, c, d, e; + e = null; + for (d = Sub(this.b, 0); d.b != d.d.c; ) { + c = RD(evb(d), 40); + e += (c.c == null || c.c.length == 0 ? "n_" + c.g : "n_" + c.c) + "\n"; + } + for (b = Sub(this.a, 0); b.b != b.d.c; ) { + a = RD(evb(b), 65); + e += (!!a.b && !!a.c ? aXc(a.b) + "->" + aXc(a.c) : "e_" + tb(a)) + "\n"; + } + return e; + }; + var W$ = sfb(JEe, "TGraph", 121); + feb(643, 508, { 3: 1, 508: 1, 643: 1, 96: 1, 137: 1 }); + sfb(JEe, "TShape", 643); + feb(40, 643, { 3: 1, 508: 1, 40: 1, 643: 1, 96: 1, 137: 1 }, bXc); + _.Ib = function cXc() { + return aXc(this); + }; + var Z$ = sfb(JEe, "TNode", 40); + feb(236, 1, Vve, dXc); + _.Jc = function eXc(a) { + xgb(this, a); + }; + _.Kc = function fXc() { + var a; + return a = Sub(this.a.d, 0), new gXc(a); + }; + sfb(JEe, "TNode/2", 236); + feb(329, 1, Ave, gXc); + _.Nb = function hXc(a) { + Ztb(this, a); + }; + _.Pb = function jXc() { + return RD(evb(this.a), 65).c; + }; + _.Ob = function iXc() { + return dvb(this.a); + }; + _.Qb = function kXc() { + gvb(this.a); + }; + sfb(JEe, "TNode/2/1", 329); + feb(1923, 1, QAe, qXc); + _.Kf = function DXc(a, b) { + oXc(this, RD(a, 121), b); + }; + sfb(LEe, "CompactionProcessor", 1923); + feb(1924, 1, fye, EXc); + _.Ne = function FXc(a, b) { + return rXc(this.a, RD(a, 40), RD(b, 40)); + }; + _.Fb = function GXc(a) { + return this === a; + }; + _.Oe = function HXc() { + return new Frb(this); + }; + sfb(LEe, "CompactionProcessor/lambda$0$Type", 1924); + feb(1925, 1, nwe, IXc); + _.Mb = function JXc(a) { + return sXc(this.b, this.a, RD(a, 42)); + }; + _.a = 0; + _.b = 0; + sfb(LEe, "CompactionProcessor/lambda$1$Type", 1925); + feb(1934, 1, fye, KXc); + _.Ne = function LXc(a, b) { + return tXc(RD(a, 40), RD(b, 40)); + }; + _.Fb = function MXc(a) { + return this === a; + }; + _.Oe = function NXc() { + return new Frb(this); + }; + sfb(LEe, "CompactionProcessor/lambda$10$Type", 1934); + feb(1935, 1, fye, OXc); + _.Ne = function PXc(a, b) { + return uXc(RD(a, 40), RD(b, 40)); + }; + _.Fb = function QXc(a) { + return this === a; + }; + _.Oe = function RXc() { + return new Frb(this); + }; + sfb(LEe, "CompactionProcessor/lambda$11$Type", 1935); + feb(1936, 1, fye, SXc); + _.Ne = function TXc(a, b) { + return vXc(RD(a, 40), RD(b, 40)); + }; + _.Fb = function UXc(a) { + return this === a; + }; + _.Oe = function VXc() { + return new Frb(this); + }; + sfb(LEe, "CompactionProcessor/lambda$12$Type", 1936); + feb(1926, 1, nwe, WXc); + _.Mb = function XXc(a) { + return wXc(this.a, RD(a, 42)); + }; + _.a = 0; + sfb(LEe, "CompactionProcessor/lambda$2$Type", 1926); + feb(1927, 1, nwe, YXc); + _.Mb = function ZXc(a) { + return xXc(this.a, RD(a, 42)); + }; + _.a = 0; + sfb(LEe, "CompactionProcessor/lambda$3$Type", 1927); + feb(1928, 1, nwe, $Xc); + _.Mb = function _Xc(a) { + return RD(a, 40).c.indexOf(IEe) == -1; + }; + sfb(LEe, "CompactionProcessor/lambda$4$Type", 1928); + feb(1929, 1, {}, aYc); + _.Kb = function bYc(a) { + return yXc(this.a, RD(a, 40)); + }; + _.a = 0; + sfb(LEe, "CompactionProcessor/lambda$5$Type", 1929); + feb(1930, 1, {}, cYc); + _.Kb = function dYc(a) { + return zXc(this.a, RD(a, 40)); + }; + _.a = 0; + sfb(LEe, "CompactionProcessor/lambda$6$Type", 1930); + feb(1931, 1, fye, eYc); + _.Ne = function fYc(a, b) { + return AXc(this.a, RD(a, 240), RD(b, 240)); + }; + _.Fb = function gYc(a) { + return this === a; + }; + _.Oe = function hYc() { + return new Frb(this); + }; + sfb(LEe, "CompactionProcessor/lambda$7$Type", 1931); + feb(1932, 1, fye, iYc); + _.Ne = function jYc(a, b) { + return BXc(this.a, RD(a, 40), RD(b, 40)); + }; + _.Fb = function kYc(a) { + return this === a; + }; + _.Oe = function lYc() { + return new Frb(this); + }; + sfb(LEe, "CompactionProcessor/lambda$8$Type", 1932); + feb(1933, 1, fye, mYc); + _.Ne = function nYc(a, b) { + return CXc(RD(a, 40), RD(b, 40)); + }; + _.Fb = function oYc(a) { + return this === a; + }; + _.Oe = function pYc() { + return new Frb(this); + }; + sfb(LEe, "CompactionProcessor/lambda$9$Type", 1933); + feb(1921, 1, QAe, rYc); + _.Kf = function sYc(a, b) { + qYc(RD(a, 121), b); + }; + sfb(LEe, "DirectionProcessor", 1921); + feb(1913, 1, QAe, vYc); + _.Kf = function xYc(a, b) { + uYc(this, RD(a, 121), b); + }; + sfb(LEe, "FanProcessor", 1913); + feb(1937, 1, QAe, zYc); + _.Kf = function CYc(a, b) { + yYc(RD(a, 121), b); + }; + sfb(LEe, "GraphBoundsProcessor", 1937); + feb(1938, 1, {}, DYc); + _.Ye = function EYc(a) { + return RD(a, 40).e.a; + }; + sfb(LEe, "GraphBoundsProcessor/lambda$0$Type", 1938); + feb(1939, 1, {}, FYc); + _.Ye = function GYc(a) { + return RD(a, 40).e.b; + }; + sfb(LEe, "GraphBoundsProcessor/lambda$1$Type", 1939); + feb(1940, 1, {}, HYc); + _.Ye = function IYc(a) { + return AYc(RD(a, 40)); + }; + sfb(LEe, "GraphBoundsProcessor/lambda$2$Type", 1940); + feb(1941, 1, {}, JYc); + _.Ye = function KYc(a) { + return BYc(RD(a, 40)); + }; + sfb(LEe, "GraphBoundsProcessor/lambda$3$Type", 1941); + feb(262, 22, { 3: 1, 34: 1, 22: 1, 262: 1, 196: 1 }, XYc); + _.dg = function YYc() { + switch (this.g) { + case 0: + return new DZc(); + case 1: + return new vYc(); + case 2: + return new nZc(); + case 3: + return new tZc(); + case 4: + return new gZc(); + case 8: + return new cZc(); + case 5: + return new rYc(); + case 6: + return new AZc(); + case 7: + return new qXc(); + case 9: + return new zYc(); + case 10: + return new GZc(); + default: + throw Adb(new agb(lBe + (this.f != null ? this.f : "" + this.g))); + } + }; + var LYc, MYc, NYc, OYc, PYc, QYc, RYc, SYc, TYc, UYc, VYc; + var u_ = tfb(LEe, mBe, 262, WI, $Yc, ZYc); + var _Yc; + feb(1920, 1, QAe, cZc); + _.Kf = function dZc(a, b) { + bZc(RD(a, 121), b); + }; + sfb(LEe, "LevelCoordinatesProcessor", 1920); + feb(1918, 1, QAe, gZc); + _.Kf = function hZc(a, b) { + eZc(this, RD(a, 121), b); + }; + _.a = 0; + sfb(LEe, "LevelHeightProcessor", 1918); + feb(1919, 1, Vve, iZc); + _.Jc = function jZc(a) { + xgb(this, a); + }; + _.Kc = function kZc() { + return yob(), Qob(), Pob; + }; + sfb(LEe, "LevelHeightProcessor/1", 1919); + feb(1914, 1, QAe, nZc); + _.Kf = function oZc(a, b) { + lZc(this, RD(a, 121), b); + }; + sfb(LEe, "LevelProcessor", 1914); + feb(1915, 1, nwe, pZc); + _.Mb = function qZc(a) { + return Heb(TD(mQb(RD(a, 40), (q$c(), n$c)))); + }; + sfb(LEe, "LevelProcessor/lambda$0$Type", 1915); + feb(1916, 1, QAe, tZc); + _.Kf = function uZc(a, b) { + rZc(this, RD(a, 121), b); + }; + _.a = 0; + sfb(LEe, "NeighborsProcessor", 1916); + feb(1917, 1, Vve, vZc); + _.Jc = function wZc(a) { + xgb(this, a); + }; + _.Kc = function xZc() { + return yob(), Qob(), Pob; + }; + sfb(LEe, "NeighborsProcessor/1", 1917); + feb(1922, 1, QAe, AZc); + _.Kf = function BZc(a, b) { + yZc(this, RD(a, 121), b); + }; + _.a = 0; + sfb(LEe, "NodePositionProcessor", 1922); + feb(1912, 1, QAe, DZc); + _.Kf = function EZc(a, b) { + CZc(this, RD(a, 121), b); + }; + sfb(LEe, "RootProcessor", 1912); + feb(1942, 1, QAe, GZc); + _.Kf = function HZc(a, b) { + FZc(RD(a, 121), b); + }; + sfb(LEe, "Untreeifyer", 1942); + feb(392, 22, { 3: 1, 34: 1, 22: 1, 392: 1 }, MZc); + var IZc, JZc, KZc; + var F_ = tfb(PEe, "EdgeRoutingMode", 392, WI, OZc, NZc); + var PZc; + var RZc, SZc, TZc, UZc, VZc, WZc, XZc, YZc, ZZc, $Zc, _Zc, a$c, b$c, c$c, d$c, e$c, f$c, g$c, h$c, i$c, j$c, k$c, l$c, m$c, n$c, o$c, p$c; + feb(862, 1, Eye, C$c); + _.hf = function D$c(a) { + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), REe), ""), YEe), "Turns on Tree compaction which decreases the size of the whole tree by placing nodes of multiple levels in one large level"), (Geb(), false)), (kid(), cid)), QI), xsb((Yhd(), Whd))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), SEe), ""), "Edge End Texture Length"), "Should be set to the length of the texture at the end of an edge. This value can be used to improve the Edge Routing."), 7), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), TEe), ""), "Tree Level"), "The index for the tree level the node is in"), sgb(0)), gid), bJ), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), UEe), ""), YEe), "When set to a positive number this option will force the algorithm to place the node to the specified position within the trees layer if weighting is set to constraint"), sgb(-1)), gid), bJ), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), VEe), ""), "Weighting of Nodes"), "Which weighting to use when computing a node order."), A$c), eid), J_), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), WEe), ""), "Edge Routing Mode"), "Chooses an Edge Routing algorithm."), u$c), eid), F_), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), XEe), ""), "Search Order"), "Which search order to use when computing a spanning tree."), x$c), eid), K_), xsb(Whd)))); + i_c((new j_c(), a)); + }; + var r$c, s$c, t$c, u$c, v$c, w$c, x$c, y$c, z$c, A$c; + sfb(PEe, "MrTreeMetaDataProvider", 862); + feb(1006, 1, Eye, j_c); + _.hf = function k_c(a) { + i_c(a); + }; + var E$c, F$c, G$c, H$c, I$c, J$c, K$c, L$c, M$c, N$c, O$c, P$c, Q$c, R$c, S$c, T$c, U$c, V$c, W$c, X$c, Y$c, Z$c, $$c, _$c, a_c, b_c, c_c, d_c, e_c, f_c, g_c; + sfb(PEe, "MrTreeOptions", 1006); + feb(1007, 1, {}, l_c); + _.sf = function m_c() { + var a; + return a = new fWc(), a; + }; + _.tf = function n_c(a) { + }; + sfb(PEe, "MrTreeOptions/MrtreeFactory", 1007); + feb(353, 22, { 3: 1, 34: 1, 22: 1, 353: 1 }, t_c); + var o_c, p_c, q_c, r_c; + var J_ = tfb(PEe, "OrderWeighting", 353, WI, v_c, u_c); + var w_c; + feb(433, 22, { 3: 1, 34: 1, 22: 1, 433: 1 }, B_c); + var y_c, z_c; + var K_ = tfb(PEe, "TreeifyingOrder", 433, WI, D_c, C_c); + var E_c; + feb(1486, 1, nEe, N_c); + _.rg = function O_c(a) { + return RD(a, 121), G_c; + }; + _.Kf = function P_c(a, b) { + M_c(this, RD(a, 121), b); + }; + var G_c; + sfb("org.eclipse.elk.alg.mrtree.p1treeify", "DFSTreeifyer", 1486); + feb(1487, 1, nEe, V_c); + _.rg = function W_c(a) { + return RD(a, 121), Q_c; + }; + _.Kf = function $_c(a, b) { + U_c(this, RD(a, 121), b); + }; + var Q_c; + sfb(aFe, "NodeOrderer", 1487); + feb(1494, 1, {}, a0c); + _.td = function b0c(a) { + return __c(a); + }; + sfb(aFe, "NodeOrderer/0methodref$lambda$6$Type", 1494); + feb(1488, 1, nwe, c0c); + _.Mb = function d0c(a) { + return R_c(), Heb(TD(mQb(RD(a, 40), (q$c(), n$c)))); + }; + sfb(aFe, "NodeOrderer/lambda$0$Type", 1488); + feb(1489, 1, nwe, e0c); + _.Mb = function f0c(a) { + return R_c(), RD(mQb(RD(a, 40), (h_c(), W$c)), 17).a < 0; + }; + sfb(aFe, "NodeOrderer/lambda$1$Type", 1489); + feb(1490, 1, nwe, g0c); + _.Mb = function h0c(a) { + return X_c(this.a, RD(a, 40)); + }; + sfb(aFe, "NodeOrderer/lambda$2$Type", 1490); + feb(1491, 1, nwe, i0c); + _.Mb = function j0c(a) { + return Y_c(this.a, RD(a, 40)); + }; + sfb(aFe, "NodeOrderer/lambda$3$Type", 1491); + feb(1492, 1, fye, k0c); + _.Ne = function l0c(a, b) { + return Z_c(RD(a, 40), RD(b, 40)); + }; + _.Fb = function m0c(a) { + return this === a; + }; + _.Oe = function n0c() { + return new Frb(this); + }; + sfb(aFe, "NodeOrderer/lambda$4$Type", 1492); + feb(1493, 1, nwe, o0c); + _.Mb = function p0c(a) { + return R_c(), RD(mQb(RD(a, 40), (q$c(), XZc)), 17).a != 0; + }; + sfb(aFe, "NodeOrderer/lambda$5$Type", 1493); + feb(1495, 1, nEe, x0c); + _.rg = function y0c(a) { + return RD(a, 121), q0c; + }; + _.Kf = function z0c(a, b) { + v0c(this, RD(a, 121), b); + }; + _.b = 0; + var q0c; + sfb("org.eclipse.elk.alg.mrtree.p3place", "NodePlacer", 1495); + feb(1496, 1, nEe, J0c); + _.rg = function K0c(a) { + return RD(a, 121), A0c; + }; + _.Kf = function Y0c(a, b) { + I0c(RD(a, 121), b); + }; + var A0c; + var o0 = sfb(bFe, "EdgeRouter", 1496); + feb(1498, 1, fye, Z0c); + _.Ne = function $0c(a, b) { + return hgb(RD(a, 17).a, RD(b, 17).a); + }; + _.Fb = function _0c(a) { + return this === a; + }; + _.Oe = function a1c() { + return new Frb(this); + }; + sfb(bFe, "EdgeRouter/0methodref$compare$Type", 1498); + feb(1503, 1, {}, b1c); + _.Ye = function c1c(a) { + return Kfb(UD(a)); + }; + sfb(bFe, "EdgeRouter/1methodref$doubleValue$Type", 1503); + feb(1505, 1, fye, d1c); + _.Ne = function e1c(a, b) { + return Qfb(Kfb(UD(a)), Kfb(UD(b))); + }; + _.Fb = function f1c(a) { + return this === a; + }; + _.Oe = function g1c() { + return new Frb(this); + }; + sfb(bFe, "EdgeRouter/2methodref$compare$Type", 1505); + feb(1507, 1, fye, h1c); + _.Ne = function i1c(a, b) { + return Qfb(Kfb(UD(a)), Kfb(UD(b))); + }; + _.Fb = function j1c(a) { + return this === a; + }; + _.Oe = function k1c() { + return new Frb(this); + }; + sfb(bFe, "EdgeRouter/3methodref$compare$Type", 1507); + feb(1509, 1, {}, l1c); + _.Ye = function m1c(a) { + return Kfb(UD(a)); + }; + sfb(bFe, "EdgeRouter/4methodref$doubleValue$Type", 1509); + feb(1511, 1, fye, n1c); + _.Ne = function o1c(a, b) { + return Qfb(Kfb(UD(a)), Kfb(UD(b))); + }; + _.Fb = function p1c(a) { + return this === a; + }; + _.Oe = function q1c() { + return new Frb(this); + }; + sfb(bFe, "EdgeRouter/5methodref$compare$Type", 1511); + feb(1513, 1, fye, r1c); + _.Ne = function s1c(a, b) { + return Qfb(Kfb(UD(a)), Kfb(UD(b))); + }; + _.Fb = function t1c(a) { + return this === a; + }; + _.Oe = function u1c() { + return new Frb(this); + }; + sfb(bFe, "EdgeRouter/6methodref$compare$Type", 1513); + feb(1497, 1, {}, v1c); + _.Kb = function w1c(a) { + return B0c(), RD(mQb(RD(a, 40), (h_c(), f_c)), 17); + }; + sfb(bFe, "EdgeRouter/lambda$0$Type", 1497); + feb(1508, 1, {}, x1c); + _.Kb = function y1c(a) { + return L0c(RD(a, 40)); + }; + sfb(bFe, "EdgeRouter/lambda$11$Type", 1508); + feb(1510, 1, {}, z1c); + _.Kb = function A1c(a) { + return M0c(this.b, this.a, RD(a, 40)); + }; + _.a = 0; + _.b = 0; + sfb(bFe, "EdgeRouter/lambda$13$Type", 1510); + feb(1512, 1, {}, B1c); + _.Kb = function C1c(a) { + return N0c(this.b, this.a, RD(a, 40)); + }; + _.a = 0; + _.b = 0; + sfb(bFe, "EdgeRouter/lambda$15$Type", 1512); + feb(1514, 1, fye, D1c); + _.Ne = function E1c(a, b) { + return O0c(RD(a, 65), RD(b, 65)); + }; + _.Fb = function F1c(a) { + return this === a; + }; + _.Oe = function G1c() { + return new Frb(this); + }; + sfb(bFe, "EdgeRouter/lambda$17$Type", 1514); + feb(1515, 1, fye, H1c); + _.Ne = function I1c(a, b) { + return P0c(RD(a, 65), RD(b, 65)); + }; + _.Fb = function J1c(a) { + return this === a; + }; + _.Oe = function K1c() { + return new Frb(this); + }; + sfb(bFe, "EdgeRouter/lambda$18$Type", 1515); + feb(1516, 1, fye, L1c); + _.Ne = function M1c(a, b) { + return Q0c(RD(a, 65), RD(b, 65)); + }; + _.Fb = function N1c(a) { + return this === a; + }; + _.Oe = function O1c() { + return new Frb(this); + }; + sfb(bFe, "EdgeRouter/lambda$19$Type", 1516); + feb(1499, 1, nwe, P1c); + _.Mb = function Q1c(a) { + return R0c(this.a, RD(a, 40)); + }; + _.a = 0; + sfb(bFe, "EdgeRouter/lambda$2$Type", 1499); + feb(1517, 1, fye, R1c); + _.Ne = function S1c(a, b) { + return S0c(RD(a, 65), RD(b, 65)); + }; + _.Fb = function T1c(a) { + return this === a; + }; + _.Oe = function U1c() { + return new Frb(this); + }; + sfb(bFe, "EdgeRouter/lambda$20$Type", 1517); + feb(1500, 1, fye, V1c); + _.Ne = function W1c(a, b) { + return T0c(RD(a, 40), RD(b, 40)); + }; + _.Fb = function X1c(a) { + return this === a; + }; + _.Oe = function Y1c() { + return new Frb(this); + }; + sfb(bFe, "EdgeRouter/lambda$3$Type", 1500); + feb(1501, 1, fye, Z1c); + _.Ne = function $1c(a, b) { + return U0c(RD(a, 40), RD(b, 40)); + }; + _.Fb = function _1c(a) { + return this === a; + }; + _.Oe = function a2c() { + return new Frb(this); + }; + sfb(bFe, "EdgeRouter/lambda$4$Type", 1501); + feb(1502, 1, {}, b2c); + _.Kb = function c2c(a) { + return V0c(RD(a, 40)); + }; + sfb(bFe, "EdgeRouter/lambda$5$Type", 1502); + feb(1504, 1, {}, d2c); + _.Kb = function e2c(a) { + return W0c(this.b, this.a, RD(a, 40)); + }; + _.a = 0; + _.b = 0; + sfb(bFe, "EdgeRouter/lambda$7$Type", 1504); + feb(1506, 1, {}, f2c); + _.Kb = function g2c(a) { + return X0c(this.b, this.a, RD(a, 40)); + }; + _.a = 0; + _.b = 0; + sfb(bFe, "EdgeRouter/lambda$9$Type", 1506); + feb(675, 1, { 675: 1 }, i2c); + _.e = 0; + _.f = false; + _.g = false; + sfb(bFe, "MultiLevelEdgeNodeNodeGap", 675); + feb(1943, 1, fye, l2c); + _.Ne = function m2c(a, b) { + return j2c(RD(a, 240), RD(b, 240)); + }; + _.Fb = function n2c(a) { + return this === a; + }; + _.Oe = function o2c() { + return new Frb(this); + }; + sfb(bFe, "MultiLevelEdgeNodeNodeGap/lambda$0$Type", 1943); + feb(1944, 1, fye, p2c); + _.Ne = function q2c(a, b) { + return k2c(RD(a, 240), RD(b, 240)); + }; + _.Fb = function r2c(a) { + return this === a; + }; + _.Oe = function s2c() { + return new Frb(this); + }; + sfb(bFe, "MultiLevelEdgeNodeNodeGap/lambda$1$Type", 1944); + var t2c; + feb(501, 22, { 3: 1, 34: 1, 22: 1, 501: 1, 188: 1, 196: 1 }, z2c); + _.dg = function B2c() { + return y2c(this); + }; + _.qg = function A2c() { + return y2c(this); + }; + var v2c, w2c; + var s0 = tfb(cFe, "RadialLayoutPhases", 501, WI, D2c, C2c); + var E2c; + feb(1113, 205, oze, H2c); + _.rf = function I2c(a, b) { + var c, d, e, f, g, h; + c = G2c(this, a); + b.Ug("Radial layout", c.c.length); + Heb(TD(Gxd(a, ($4c(), N4c)))) || RFb((d = new SFb((lud(), new zud(a))), d)); + h = K2c(a); + Ixd(a, (u2c(), t2c), h); + if (!h) { + throw Adb(new agb("The given graph is not a tree!")); + } + e = Kfb(UD(Gxd(a, S4c))); + e == 0 && (e = J2c(a)); + Ixd(a, S4c, e); + for (g = new Anb(G2c(this, a)); g.a < g.c.c.length; ) { + f = RD(ynb(g), 47); + f.Kf(a, b.eh(1)); + } + b.Vg(); + }; + sfb(cFe, "RadialLayoutProvider", 1113); + feb(556, 1, fye, T2c); + _.Ne = function U2c(a, b) { + return S2c(this.a, this.b, RD(a, 27), RD(b, 27)); + }; + _.Fb = function V2c(a) { + return this === a; + }; + _.Oe = function W2c() { + return new Frb(this); + }; + _.a = 0; + _.b = 0; + sfb(cFe, "RadialUtil/lambda$0$Type", 556); + feb(1395, 1, QAe, Y2c); + _.Kf = function Z2c(a, b) { + X2c(RD(a, 27), b); + }; + sfb(hFe, "CalculateGraphSize", 1395); + feb(1396, 1, QAe, _2c); + _.Kf = function a3c(a, b) { + $2c(RD(a, 27)); + }; + sfb(hFe, "EdgeAngleCalculator", 1396); + feb(368, 22, { 3: 1, 34: 1, 22: 1, 368: 1, 196: 1 }, h3c); + _.dg = function i3c() { + switch (this.g) { + case 0: + return new Q3c(); + case 1: + return new A3c(); + case 2: + return new U3c(); + case 3: + return new Y2c(); + case 4: + return new _2c(); + default: + throw Adb(new agb(lBe + (this.f != null ? this.f : "" + this.g))); + } + }; + var b3c, c3c, d3c, e3c, f3c; + var x0 = tfb(hFe, mBe, 368, WI, k3c, j3c); + var l3c; + feb(653, 1, {}); + _.e = 1; + _.g = 0; + sfb(jFe, "AbstractRadiusExtensionCompaction", 653); + feb(1834, 653, {}, x3c); + _.Cg = function y3c(a) { + var b, c, d, e, f, g, h, i, j; + this.c = RD(Gxd(a, (u2c(), t2c)), 27); + r3c(this, this.c); + this.d = u5c(RD(Gxd(a, ($4c(), X4c)), 300)); + i = RD(Gxd(a, H4c), 17); + !!i && q3c(this, i.a); + h = UD(Gxd(a, (umd(), fmd))); + s3c(this, (uFb(h), h)); + j = Q2c(this.c); + !!this.d && this.d.Gg(j); + t3c(this, j); + g = new mob(cD(WC(J4, 1), kFe, 27, 0, [this.c])); + for (c = 0; c < 2; c++) { + for (b = 0; b < j.c.length; b++) { + e = new mob(cD(WC(J4, 1), kFe, 27, 0, [(tFb(b, j.c.length), RD(j.c[b], 27))])); + f = b < j.c.length - 1 ? (tFb(b + 1, j.c.length), RD(j.c[b + 1], 27)) : (tFb(0, j.c.length), RD(j.c[0], 27)); + d = b == 0 ? RD(Vmb(j, j.c.length - 1), 27) : (tFb(b - 1, j.c.length), RD(j.c[b - 1], 27)); + v3c(this, (tFb(b, j.c.length), RD(j.c[b], 27), g), d, f, e); + } + } + }; + sfb(jFe, "AnnulusWedgeCompaction", 1834); + feb(1393, 1, QAe, A3c); + _.Kf = function B3c(a, b) { + z3c(RD(a, 27), b); + }; + sfb(jFe, "GeneralCompactor", 1393); + feb(1833, 653, {}, F3c); + _.Cg = function G3c(a) { + var b, c, d, e; + c = RD(Gxd(a, (u2c(), t2c)), 27); + this.f = c; + this.b = u5c(RD(Gxd(a, ($4c(), X4c)), 300)); + e = RD(Gxd(a, H4c), 17); + !!e && q3c(this, e.a); + d = UD(Gxd(a, (umd(), fmd))); + s3c(this, (uFb(d), d)); + b = Q2c(c); + !!this.b && this.b.Gg(b); + D3c(this, b); + }; + _.a = 0; + sfb(jFe, "RadialCompaction", 1833); + feb(1842, 1, {}, I3c); + _.Dg = function J3c(a) { + var b, c, d, e, f, g; + this.a = a; + b = 0; + g = Q2c(a); + d = 0; + for (f = new Anb(g); f.a < f.c.c.length; ) { + e = RD(ynb(f), 27); + ++d; + for (c = d; c < g.c.length; c++) { + H3c(this, e, (tFb(c, g.c.length), RD(g.c[c], 27))) && (b += 1); + } + } + return b; + }; + sfb(lFe, "CrossingMinimizationPosition", 1842); + feb(1840, 1, {}, K3c); + _.Dg = function L3c(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n; + d = 0; + for (c = new is(Mr(zGd(a).a.Kc(), new ir())); gs(c); ) { + b = RD(hs(c), 74); + h = AGd(RD(QHd((!b.c && (b.c = new Yie(E4, b, 5, 8)), b.c), 0), 84)); + j = h.i + h.g / 2; + k = h.j + h.f / 2; + e = a.i + a.g / 2; + f = a.j + a.f / 2; + l = new pjd(); + l.a = j - e; + l.b = k - f; + g = new rjd(l.a, l.b); + wid(g, a.g, a.f); + l.a -= g.a; + l.b -= g.b; + e = j - l.a; + f = k - l.b; + i = new rjd(l.a, l.b); + wid(i, h.g, h.f); + l.a -= i.a; + l.b -= i.b; + j = e + l.a; + k = f + l.b; + m = j - e; + n = k - f; + d += $wnd.Math.sqrt(m * m + n * n); + } + return d; + }; + sfb(lFe, "EdgeLengthOptimization", 1840); + feb(1841, 1, {}, M3c); + _.Dg = function N3c(a) { + var b, c, d, e, f, g, h, i, j, k, l; + d = 0; + for (c = new is(Mr(zGd(a).a.Kc(), new ir())); gs(c); ) { + b = RD(hs(c), 74); + h = AGd(RD(QHd((!b.c && (b.c = new Yie(E4, b, 5, 8)), b.c), 0), 84)); + i = h.i + h.g / 2; + j = h.j + h.f / 2; + e = RD(Gxd(h, (umd(), Qld)), 8); + f = a.i + e.a + a.g / 2; + g = a.j + e.b + a.f; + k = i - f; + l = j - g; + d += $wnd.Math.sqrt(k * k + l * l); + } + return d; + }; + sfb(lFe, "EdgeLengthPositionOptimization", 1841); + feb(1392, 653, QAe, Q3c); + _.Kf = function R3c(a, b) { + P3c(this, RD(a, 27), b); + }; + sfb("org.eclipse.elk.alg.radial.intermediate.overlaps", "RadiusExtensionOverlapRemoval", 1392); + feb(1394, 1, QAe, U3c); + _.Kf = function V3c(a, b) { + T3c(RD(a, 27), b); + }; + sfb("org.eclipse.elk.alg.radial.intermediate.rotation", "GeneralRotator", 1394); + feb(434, 22, { 3: 1, 34: 1, 22: 1, 434: 1 }, $3c); + var W3c, X3c; + var H0 = tfb(nFe, "AnnulusWedgeCriteria", 434, WI, a4c, _3c); + var b4c; + feb(393, 22, { 3: 1, 34: 1, 22: 1, 393: 1 }, i4c); + var d4c, e4c, f4c; + var I0 = tfb(nFe, uze, 393, WI, k4c, j4c); + var l4c; + feb(863, 1, Eye, E4c); + _.hf = function F4c(a) { + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), oFe), ""), "Center On Root"), "Centers the layout on the root of the tree i.e. so that the central node is also the center node of the final layout. This introduces additional whitespace."), (Geb(), false)), (kid(), cid)), QI), xsb((Yhd(), Whd))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), pFe), ""), "Order ID"), "The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly."), sgb(0)), gid), bJ), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), qFe), ""), "Radius"), "The radius option can be used to set the initial radius for the radial layouter."), 0), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), rFe), ""), "Rotate"), "The rotate option determines whether a rotation of the layout should be performed."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), sFe), ""), AFe), "With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately."), q4c), eid), I0), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), tFe), ""), "Compaction Step Size"), "Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration."), sgb(1)), gid), bJ), xsb(Whd)))); + zgd(a, tFe, sFe, null); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), uFe), ""), "Sorter"), "Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates."), A4c), eid), N0), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), vFe), ""), "Annulus Wedge Criteria"), "Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals."), C4c), eid), H0), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), wFe), ""), "Translation Optimization"), "Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized."), s4c), eid), M0), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), xFe), BFe), "Target Angle"), "The angle in radians that the layout should be rotated to after layout."), 0), did), VI), xsb(Whd)))); + zgd(a, xFe, rFe, null); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), yFe), BFe), "Additional Wedge Space"), "If set to true, modifies the target angle by rotating further such that space is left for an edge to pass in between the nodes. This option should only be used in conjunction with top-down layout."), false), cid), QI), xsb(Whd)))); + zgd(a, yFe, rFe, null); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), zFe), BFe), "Outgoing Edge Angles"), "Calculate the required angle of connected nodes to leave space for an incoming edge. This option should only be used in conjunction with top-down layout."), false), cid), QI), xsb(Whd)))); + _4c((new a5c(), a)); + }; + var n4c, o4c, p4c, q4c, r4c, s4c, t4c, u4c, v4c, w4c, x4c, y4c, z4c, A4c, B4c, C4c; + sfb(nFe, "RadialMetaDataProvider", 863); + feb(1008, 1, Eye, a5c); + _.hf = function b5c(a) { + _4c(a); + }; + var G4c, H4c, I4c, J4c, K4c, L4c, M4c, N4c, O4c, P4c, Q4c, R4c, S4c, T4c, U4c, V4c, W4c, X4c, Y4c, Z4c; + sfb(nFe, "RadialOptions", 1008); + feb(1009, 1, {}, c5c); + _.sf = function d5c() { + var a; + return a = new H2c(), a; + }; + _.tf = function e5c(a) { + }; + sfb(nFe, "RadialOptions/RadialFactory", 1009); + feb(354, 22, { 3: 1, 34: 1, 22: 1, 354: 1 }, l5c); + var f5c, g5c, h5c, i5c; + var M0 = tfb(nFe, "RadialTranslationStrategy", 354, WI, n5c, m5c); + var o5c; + feb(300, 22, { 3: 1, 34: 1, 22: 1, 300: 1 }, v5c); + var q5c, r5c, s5c; + var N0 = tfb(nFe, "SortingStrategy", 300, WI, x5c, w5c); + var y5c; + feb(1476, 1, nEe, D5c); + _.rg = function E5c(a) { + return RD(a, 27), null; + }; + _.Kf = function F5c(a, b) { + B5c(this, RD(a, 27), b); + }; + _.c = 0; + sfb("org.eclipse.elk.alg.radial.p1position", "EadesRadial", 1476); + feb(1838, 1, {}, G5c); + _.Eg = function H5c(a) { + return O2c(a); + }; + sfb(DFe, "AnnulusWedgeByLeafs", 1838); + feb(1839, 1, {}, J5c); + _.Eg = function K5c(a) { + return I5c(this, a); + }; + sfb(DFe, "AnnulusWedgeByNodeSpace", 1839); + feb(1477, 1, nEe, N5c); + _.rg = function O5c(a) { + return RD(a, 27), null; + }; + _.Kf = function P5c(a, b) { + L5c(this, RD(a, 27), b); + }; + sfb("org.eclipse.elk.alg.radial.p2routing", "StraightLineEdgeRouter", 1477); + feb(826, 1, {}, R5c); + _.Fg = function S5c(a) { + }; + _.Gg = function U5c(a) { + Q5c(this, a); + }; + sfb(EFe, "IDSorter", 826); + feb(1837, 1, fye, V5c); + _.Ne = function W5c(a, b) { + return T5c(RD(a, 27), RD(b, 27)); + }; + _.Fb = function X5c(a) { + return this === a; + }; + _.Oe = function Y5c() { + return new Frb(this); + }; + sfb(EFe, "IDSorter/lambda$0$Type", 1837); + feb(1836, 1, {}, _5c); + _.Fg = function a6c(a) { + Z5c(this, a); + }; + _.Gg = function b6c(a) { + var b; + if (!a.dc()) { + if (!this.e) { + b = L2c(RD(a.Xb(0), 27)); + Z5c(this, b); + } + Q5c(this.e, a); + } + }; + sfb(EFe, "PolarCoordinateSorter", 1836); + feb(445, 22, { 3: 1, 34: 1, 22: 1, 445: 1 }, g6c); + var c6c, d6c, e6c; + var V0 = tfb(IFe, "RectPackingLayoutPhases", 445, WI, i6c, h6c); + var j6c; + feb(1118, 205, oze, l6c); + _.rf = function n6c(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, B, C, D; + b.Ug("Rectangle Packing", 1); + l = RD(Gxd(a, (X7c(), N7c)), 107); + i = Heb(TD(Gxd(a, G7c))); + k = Kfb(UD(Gxd(a, Q7c))); + C = Heb(TD(Gxd(a, R7c))); + t = (!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a); + Heb(TD(Gxd(a, J7c))) || RFb((e = new SFb((lud(), new zud(a))), e)); + B = false; + if (C && t.i >= 3) { + v = RD(QHd(t, 0), 27); + w = RD(QHd(t, 1), 27); + f = 0; + while (f + 2 < t.i) { + u = v; + v = w; + w = RD(QHd(t, f + 2), 27); + if (u.f >= v.f + w.f + k || w.f >= u.f + v.f + k) { + B = true; + break; + } else { + ++f; + } + } + } else { + B = true; + } + if (!B) { + m = t.i; + for (h = new dMd(t); h.e != h.i.gc(); ) { + g = RD(bMd(h), 27); + Ixd(g, (umd(), Rld), sgb(m)); + --m; + } + crd(a, new Oqd()); + b.Vg(); + return; + } + c = (Sed(this.a), Ved(this.a, (f6c(), c6c), RD(Gxd(a, V7c), 188)), Ved(this.a, d6c, RD(Gxd(a, M7c), 188)), Ved(this.a, e6c, RD(Gxd(a, S7c), 188)), Ped(this.a, (D = new ufd(), pfd(D, c6c, (z6c(), y6c)), pfd(D, d6c, x6c), Heb(TD(Gxd(a, B7c))) && pfd(D, c6c, w6c), D)), Qed(this.a, a)); + j = 1 / c.c.length; + for (o2 = new Anb(c); o2.a < o2.c.c.length; ) { + n = RD(ynb(o2), 47); + if (b.$g()) { + return; + } + n.Kf(a, b.eh(j)); + } + q = 0; + p = 0; + for (s = new dMd(t); s.e != s.i.gc(); ) { + r = RD(bMd(s), 27); + q = $wnd.Math.max(q, r.i + r.g); + p = $wnd.Math.max(p, r.j + r.f); + } + Jsd(a, new rjd(Kfb(UD(Gxd(a, (X6c(), O6c)))), Kfb(UD(Gxd(a, N6c)))), new rjd(q, p)); + m6c(t, l); + i || Esd(a, Kfb(UD(Gxd(a, O6c))) + (l.b + l.c), Kfb(UD(Gxd(a, N6c))) + (l.d + l.a), false, true); + Heb(TD(Gxd(a, J7c))) || RFb((d = new SFb((lud(), new zud(a))), d)); + b.Vg(); + }; + sfb(IFe, "RectPackingLayoutProvider", 1118); + feb(1518, 1, QAe, p6c); + _.Kf = function r6c(a, b) { + o6c(RD(a, 27), b); + }; + sfb(JFe, "InteractiveNodeReorderer", 1518); + feb(1519, 1, fye, s6c); + _.Ne = function t6c(a, b) { + return q6c(RD(a, 27), RD(b, 27)); + }; + _.Fb = function u6c(a) { + return this === a; + }; + _.Oe = function v6c() { + return new Frb(this); + }; + sfb(JFe, "InteractiveNodeReorderer/lambda$0$Type", 1519); + feb(456, 22, { 3: 1, 34: 1, 22: 1, 456: 1, 196: 1 }, A6c); + _.dg = function B6c() { + switch (this.g) { + case 0: + return new p6c(); + case 1: + return new K6c(); + case 2: + return new H6c(); + } + return null; + }; + var w6c, x6c, y6c; + var Z0 = tfb(JFe, mBe, 456, WI, D6c, C6c); + var E6c; + feb(1521, 1, QAe, H6c); + _.Kf = function I6c(a, b) { + G6c(RD(a, 27), b); + }; + sfb(JFe, "MinSizePostProcessor", 1521); + feb(1520, 1, QAe, K6c); + _.Kf = function L6c(a, b) { + J6c(RD(a, 27), b); + }; + sfb(JFe, "MinSizePreProcessor", 1520); + var M6c, N6c, O6c, P6c, Q6c, R6c, S6c, T6c, U6c, V6c, W6c; + feb(394, 22, { 3: 1, 34: 1, 22: 1, 394: 1 }, a7c); + var Y6c, Z6c, $6c; + var a1 = tfb(KFe, "OptimizationGoal", 394, WI, c7c, b7c); + var d7c; + feb(867, 1, Eye, v7c); + _.hf = function w7c(a) { + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), LFe), ""), "Try box layout first"), "Whether one should check whether the regions are stackable to see whether box layout would do the job. For example, nodes with the same height are not stackable inside a row. Therefore, box layout will perform better and faster."), (Geb(), false)), (kid(), cid)), QI), xsb((Yhd(), Whd))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), MFe), ""), "Current position of a node in the order of nodes"), "The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node."), sgb(-1)), gid), bJ), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), NFe), ""), "Desired index of node"), "The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position."), sgb(-1)), gid), bJ), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), OFe), ""), "In new Row"), "If set to true this node begins in a new row. Consequently this node cannot be moved in a previous layer during compaction. Width approximation does does not take this into account."), false), cid), QI), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), PFe), XFe), "Width Approximation Strategy"), "Strategy for finding an initial width of the drawing."), s7c), eid), l1), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), QFe), XFe), "Target Width"), "Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding."), -1), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), RFe), XFe), "Optimization Goal"), "Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored."), q7c), eid), a1), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), SFe), XFe), "Shift Last Placed."), "When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces."), true), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), TFe), "packing"), YFe), "Strategy for finding an initial placement on nodes."), l7c), eid), o1), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), UFe), ZFe), "Row Height Reevaluation"), "During the compaction step the height of a row is normally not changed. If this options is set, the blocks of other rows might be added if they exceed the row height. If this is the case the whole row has to be packed again to be optimal regarding the new row height. This option should, therefore, be used with care since it might be computation heavy."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), VFe), ZFe), "Compaction iterations"), "Defines the number of compaction iterations. E.g. if set to 2 the width is initially approximated, then the drawing is compacted and based on the resulting drawing the target width is decreased or increased and a second compaction step is executed and the result compared to the first one. The best run is used based on the scale measure."), sgb(1)), gid), bJ), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), WFe), "whiteSpaceElimination"), "White Space Approximation Strategy"), "Strategy for expanding nodes such that whitespace in the parent is eliminated."), eid), t1), xsb(Whd)))); + Y7c((new Z7c(), a)); + }; + var f7c, g7c, h7c, i7c, j7c, k7c, l7c, m7c, n7c, o7c, p7c, q7c, r7c, s7c, t7c; + sfb(KFe, "RectPackingMetaDataProvider", 867); + feb(1016, 1, Eye, Z7c); + _.hf = function $7c(a) { + Y7c(a); + }; + var x7c, y7c, z7c, A7c, B7c, C7c, D7c, E7c, F7c, G7c, H7c, I7c, J7c, K7c, L7c, M7c, N7c, O7c, P7c, Q7c, R7c, S7c, T7c, U7c, V7c, W7c; + sfb(KFe, "RectPackingOptions", 1016); + feb(1017, 1, {}, _7c); + _.sf = function a8c() { + var a; + return a = new l6c(), a; + }; + _.tf = function b8c(a) { + }; + sfb(KFe, "RectPackingOptions/RectpackingFactory", 1017); + feb(1705, 1, {}, g8c); + _.a = 0; + _.c = false; + sfb(_Fe, "AreaApproximation", 1705); + var h1 = ufb(_Fe, "BestCandidateFilter"); + feb(673, 1, { 535: 1 }, h8c); + _.Hg = function i8c(a, b, c) { + var d, e, f, g, h, i; + i = new bnb(); + f = oxe; + for (h = new Anb(a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 238); + f = $wnd.Math.min(f, (g.c + (c.b + c.c)) * (g.b + (c.d + c.a))); + } + for (e = new Anb(a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 238); + (d.c + (c.b + c.c)) * (d.b + (c.d + c.a)) == f && (ZEb(i.c, d), true); + } + return i; + }; + sfb(_Fe, "AreaFilter", 673); + feb(674, 1, { 535: 1 }, j8c); + _.Hg = function k8c(a, b, c) { + var d, e, f, g, h, i; + h = new bnb(); + i = oxe; + for (g = new Anb(a); g.a < g.c.c.length; ) { + f = RD(ynb(g), 238); + i = $wnd.Math.min(i, $wnd.Math.abs((f.c + (c.b + c.c)) / (f.b + (c.d + c.a)) - b)); + } + for (e = new Anb(a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 238); + $wnd.Math.abs((d.c + (c.b + c.c)) / (d.b + (c.d + c.a)) - b) == i && (ZEb(h.c, d), true); + } + return h; + }; + sfb(_Fe, "AspectRatioFilter", 674); + feb(1469, 1, nEe, o8c); + _.rg = function p8c(a) { + return RD(a, 27), null; + }; + _.Kf = function q8c(a, b) { + n8c(RD(a, 27), b); + }; + sfb(_Fe, "GreedyWidthApproximator", 1469); + feb(672, 1, { 535: 1 }, r8c); + _.Hg = function s8c(a, b, c) { + var d, e, f, g, h, i; + i = new bnb(); + f = pxe; + for (h = new Anb(a); h.a < h.c.c.length; ) { + g = RD(ynb(h), 238); + f = $wnd.Math.max(f, Aad(g.c + (c.b + c.c), g.b + (c.d + c.a), g.a)); + } + for (e = new Anb(a); e.a < e.c.c.length; ) { + d = RD(ynb(e), 238); + Aad(d.c + (c.b + c.c), d.b + (c.d + c.a), d.a) == f && (ZEb(i.c, d), true); + } + return i; + }; + sfb(_Fe, "ScaleMeasureFilter", 672); + feb(1470, 1, nEe, u8c); + _.rg = function v8c(a) { + return RD(a, 27), null; + }; + _.Kf = function w8c(a, b) { + t8c(RD(a, 27), b); + }; + sfb(_Fe, "TargetWidthWidthApproximator", 1470); + feb(491, 22, { 3: 1, 34: 1, 22: 1, 491: 1, 188: 1, 196: 1 }, B8c); + _.dg = function D8c() { + return A8c(this); + }; + _.qg = function C8c() { + return A8c(this); + }; + var x8c, y8c; + var l1 = tfb(_Fe, "WidthApproximationStrategy", 491, WI, F8c, E8c); + var G8c; + feb(1471, 1, nEe, R8c); + _.rg = function S8c(a) { + return RD(a, 27), null; + }; + _.Kf = function T8c(a, b) { + Q8c(this, RD(a, 27), b); + }; + sfb(aGe, "Compactor", 1471); + feb(1473, 1, nEe, X8c); + _.rg = function Y8c(a) { + return RD(a, 27), null; + }; + _.Kf = function Z8c(a, b) { + W8c(RD(a, 27), b); + }; + sfb(aGe, "NoPlacement", 1473); + feb(439, 22, { 3: 1, 34: 1, 22: 1, 439: 1, 188: 1, 196: 1 }, d9c); + _.dg = function f9c() { + return c9c(this); + }; + _.qg = function e9c() { + return c9c(this); + }; + var $8c, _8c, a9c; + var o1 = tfb(aGe, "PackingStrategy", 439, WI, h9c, g9c); + var i9c; + feb(810, 1, {}, m9c); + _.a = 0; + _.b = 0; + _.c = 0; + _.d = oxe; + _.e = 0; + _.f = oxe; + sfb(aGe, "RowFillingAndCompaction", 810); + feb(1472, 1, nEe, o9c); + _.rg = function p9c(a) { + return RD(a, 27), null; + }; + _.Kf = function q9c(a, b) { + n9c(RD(a, 27), b); + }; + sfb(aGe, "SimplePlacement", 1472); + feb(1474, 1, nEe, s9c); + _.rg = function t9c(a) { + return RD(a, 27), null; + }; + _.Kf = function u9c(a, b) { + this.Ig(RD(a, 27), b); + }; + _.Ig = function v9c(a, b) { + r9c(a, b); + }; + sfb(cGe, "EqualWhitespaceEliminator", 1474); + feb(1475, 1474, nEe, x9c); + _.Ig = function y9c(a, b) { + var c, d, e, f, g; + b.Ug("To Aspect Ratio Whitesapce Eliminator", 1); + g = Kfb(UD(Gxd(a, (X6c(), O6c)))); + f = Kfb(UD(Gxd(a, N6c))); + e = Kfb(UD(Gxd(a, (X7c(), x7c)))); + c = Kfb(UD(Gxd(a, M6c))); + d = g / f; + if (d < e) { + g = f * e; + Ixd(a, O6c, g); + } else { + c += g / e - f; + Ixd(a, M6c, c); + Ixd(a, N6c, f + c); + } + r9c(a, b); + b.Vg(); + }; + sfb(cGe, "ToAspectratioNodeExpander", 1475); + feb(492, 22, { 3: 1, 34: 1, 22: 1, 492: 1, 188: 1, 196: 1 }, D9c); + _.dg = function F9c() { + return C9c(this); + }; + _.qg = function E9c() { + return C9c(this); + }; + var z9c, A9c; + var t1 = tfb(cGe, "WhiteSpaceEliminationStrategy", 492, WI, H9c, G9c); + var I9c; + feb(172, 1, { 172: 1 }, V9c); + _.a = 0; + _.c = false; + _.d = 0; + _.e = 0; + _.f = 0; + _.g = 0; + _.i = 0; + _.k = false; + _.o = oxe; + _.p = oxe; + _.r = 0; + _.s = 0; + _.t = 0; + sfb(dGe, "Block", 172); + feb(209, 1, { 209: 1 }, _9c); + _.a = 0; + _.b = 0; + _.d = 0; + _.e = 0; + _.f = 0; + sfb(dGe, "BlockRow", 209); + feb(315, 1, { 315: 1 }, had); + _.b = 0; + _.c = 0; + _.d = 0; + _.e = 0; + _.f = 0; + sfb(dGe, "BlockStack", 315); + feb(238, 1, { 238: 1 }, lad, mad); + _.a = 0; + _.b = 0; + _.c = 0; + _.d = 0; + _.e = 0; + _.g = 0; + var y1 = sfb(dGe, "DrawingData", 238); + feb(373, 22, { 3: 1, 34: 1, 22: 1, 373: 1 }, tad); + var nad, oad, pad, qad, rad; + var x1 = tfb(dGe, "DrawingDataDescriptor", 373, WI, vad, uad); + var wad; + feb(186, 1, { 186: 1 }, Had); + _.b = 0; + _.c = 0; + _.e = 0; + _.f = 0; + sfb(dGe, "RectRow", 186); + feb(763, 1, {}, Pad); + _.j = 0; + sfb(fGe, dBe, 763); + feb(1209, 1, {}, Qad); + _.af = function Rad(a) { + return bjd(a.a, a.b); + }; + sfb(fGe, Nze, 1209); + feb(1210, 1, {}, Sad); + _.af = function Tad(a) { + return Kad(this.a, a); + }; + sfb(fGe, eBe, 1210); + feb(1211, 1, {}, Uad); + _.af = function Vad(a) { + return Lad(this.a, a); + }; + sfb(fGe, fBe, 1211); + feb(1212, 1, {}, Wad); + _.af = function Xad(a) { + return Mad(this.a, a); + }; + sfb(fGe, "ElkGraphImporter/lambda$3$Type", 1212); + feb(1213, 1, {}, Yad); + _.af = function Zad(a) { + return Nad(this.a, a); + }; + sfb(fGe, gBe, 1213); + feb(1115, 205, oze, $ad); + _.rf = function abd(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n; + if (Hxd(a, (ncd(), mcd))) { + n = WD(Gxd(a, (Tcd(), Scd))); + f = sgd(ygd(), n); + if (f) { + g = RD(ltd(f.f), 205); + g.rf(a, b.eh(1)); + } + } + Ixd(a, hcd, (Mbd(), Kbd)); + Ixd(a, icd, (Xbd(), Ubd)); + Ixd(a, jcd, (ldd(), kdd)); + h = RD(Gxd(a, (Tcd(), Ocd)), 17).a; + b.Ug("Overlap removal", 1); + Heb(TD(Gxd(a, Ncd))) && "null45scanlineOverlaps"; + i = new _sb(); + j = new cbd(i); + d = new Pad(); + c = Jad(d, a); + k = true; + e = 0; + while (e < h && k) { + if (Heb(TD(Gxd(a, Pcd)))) { + i.a.$b(); + VQb(new WQb(j), c.i); + if (i.a.gc() == 0) { + break; + } + c.e = i; + } + Sed(this.b); + Ved(this.b, (gbd(), dbd), (_cd(), $cd)); + Ved(this.b, ebd, c.g); + Ved(this.b, fbd, (Cbd(), Bbd)); + this.a = Qed(this.b, c); + for (m = new Anb(this.a); m.a < m.c.c.length; ) { + l = RD(ynb(m), 47); + l.Kf(c, b.eh(1)); + } + Oad(d, c); + k = Heb(TD(mQb(c, (OQb(), NQb)))); + ++e; + } + Iad(d, c); + b.Vg(); + }; + sfb(fGe, "OverlapRemovalLayoutProvider", 1115); + feb(1116, 1, {}, cbd); + sfb(fGe, "OverlapRemovalLayoutProvider/lambda$0$Type", 1116); + feb(444, 22, { 3: 1, 34: 1, 22: 1, 444: 1 }, hbd); + var dbd, ebd, fbd; + var I1 = tfb(fGe, "SPOrEPhases", 444, WI, jbd, ibd); + var kbd; + feb(1219, 1, {}, nbd); + sfb(fGe, "ShrinkTree", 1219); + feb(1117, 205, oze, obd); + _.rf = function pbd(a, b) { + var c, d, e, f, g; + if (Hxd(a, (ncd(), mcd))) { + g = WD(Gxd(a, mcd)); + e = sgd(ygd(), g); + if (e) { + f = RD(ltd(e.f), 205); + f.rf(a, b.eh(1)); + } + } + d = new Pad(); + c = Jad(d, a); + mbd(this.a, c, b.eh(1)); + Iad(d, c); + }; + sfb(fGe, "ShrinkTreeLayoutProvider", 1117); + feb(306, 137, { 3: 1, 306: 1, 96: 1, 137: 1 }, qbd); + _.c = false; + sfb("org.eclipse.elk.alg.spore.graph", "Graph", 306); + feb(490, 22, { 3: 1, 34: 1, 22: 1, 490: 1, 188: 1, 196: 1 }, ubd); + _.dg = function wbd() { + return tbd(this); + }; + _.qg = function vbd() { + return tbd(this); + }; + var rbd; + var M1 = tfb(gGe, uze, 490, WI, ybd, xbd); + var zbd; + feb(558, 22, { 3: 1, 34: 1, 22: 1, 558: 1, 188: 1, 196: 1 }, Dbd); + _.dg = function Fbd() { + return new Tdd(); + }; + _.qg = function Ebd() { + return new Tdd(); + }; + var Bbd; + var N1 = tfb(gGe, "OverlapRemovalStrategy", 558, WI, Hbd, Gbd); + var Ibd; + feb(438, 22, { 3: 1, 34: 1, 22: 1, 438: 1 }, Nbd); + var Kbd, Lbd; + var O1 = tfb(gGe, "RootSelection", 438, WI, Pbd, Obd); + var Qbd; + feb(324, 22, { 3: 1, 34: 1, 22: 1, 324: 1 }, Ybd); + var Sbd, Tbd, Ubd, Vbd, Wbd; + var P1 = tfb(gGe, "SpanningTreeCostFunction", 324, WI, $bd, Zbd); + var _bd; + feb(1014, 1, Eye, pcd); + _.hf = function qcd(a) { + ocd(a); + }; + var bcd, ccd, dcd, ecd, fcd, gcd, hcd, icd, jcd, kcd, lcd, mcd; + sfb(gGe, "SporeCompactionOptions", 1014); + feb(1015, 1, {}, rcd); + _.sf = function scd() { + var a; + return a = new obd(), a; + }; + _.tf = function tcd(a) { + }; + sfb(gGe, "SporeCompactionOptions/SporeCompactionFactory", 1015); + feb(866, 1, Eye, Lcd); + _.hf = function Mcd(a) { + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), iGe), ""), "Underlying Layout Algorithm"), "A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction."), (kid(), iid)), qJ), xsb((Yhd(), Whd))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), nGe), "structure"), "Structure Extraction Strategy"), "This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices."), Icd), eid), V1), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), jGe), sGe), "Tree Construction Strategy"), "Whether a minimum spanning tree or a maximum spanning tree should be constructed."), Gcd), eid), W1), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), kGe), sGe), "Cost Function for Spanning Tree"), "The cost function is used in the creation of the spanning tree."), Ecd), eid), P1), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), lGe), sGe), "Root node for spanning tree construction"), "The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen."), null), iid), qJ), xsb(Whd)))); + zgd(a, lGe, mGe, Acd); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), mGe), sGe), "Root selection for spanning tree"), "This sets the method used to select a root node for the construction of a spanning tree"), Ccd), eid), O1), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), oGe), nDe), YFe), "This option defines how the compaction is applied."), vcd), eid), M1), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), pGe), nDe), "Orthogonal Compaction"), "Restricts the translation of nodes to orthogonal directions in the compaction phase."), (Geb(), false)), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), qGe), tGe), "Upper limit for iterations of overlap removal"), null), sgb(64)), gid), bJ), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), rGe), tGe), "Whether to run a supplementary scanline overlap check."), null), true), cid), QI), xsb(Whd)))); + Ucd((new Vcd(), a)); + ocd((new pcd(), a)); + }; + var ucd, vcd, wcd, xcd, ycd, zcd, Acd, Bcd, Ccd, Dcd, Ecd, Fcd, Gcd, Hcd, Icd, Jcd; + sfb(gGe, "SporeMetaDataProvider", 866); + feb(1012, 1, Eye, Vcd); + _.hf = function Wcd(a) { + Ucd(a); + }; + var Ncd, Ocd, Pcd, Qcd, Rcd, Scd; + sfb(gGe, "SporeOverlapRemovalOptions", 1012); + feb(1013, 1, {}, Xcd); + _.sf = function Ycd() { + var a; + return a = new $ad(), a; + }; + _.tf = function Zcd(a) { + }; + sfb(gGe, "SporeOverlapRemovalOptions/SporeOverlapFactory", 1013); + feb(539, 22, { 3: 1, 34: 1, 22: 1, 539: 1, 188: 1, 196: 1 }, cdd); + _.dg = function edd() { + return bdd(this); + }; + _.qg = function ddd() { + return bdd(this); + }; + var $cd; + var V1 = tfb(gGe, "StructureExtractionStrategy", 539, WI, gdd, fdd); + var hdd; + feb(437, 22, { 3: 1, 34: 1, 22: 1, 437: 1, 188: 1, 196: 1 }, ndd); + _.dg = function pdd() { + return mdd(this); + }; + _.qg = function odd() { + return mdd(this); + }; + var jdd, kdd; + var W1 = tfb(gGe, "TreeConstructionStrategy", 437, WI, rdd, qdd); + var sdd; + feb(1463, 1, nEe, vdd); + _.rg = function wdd(a) { + return RD(a, 306), new ufd(); + }; + _.Kf = function xdd(a, b) { + udd(RD(a, 306), b); + }; + sfb(vGe, "DelaunayTriangulationPhase", 1463); + feb(1464, 1, Qve, ydd); + _.Cd = function zdd(a) { + Rmb(this.a, RD(a, 68).a); + }; + sfb(vGe, "DelaunayTriangulationPhase/lambda$0$Type", 1464); + feb(794, 1, nEe, Ddd); + _.rg = function Edd(a) { + return RD(a, 306), new ufd(); + }; + _.Kf = function Fdd(a, b) { + this.Jg(RD(a, 306), b); + }; + _.Jg = function Gdd(a, b) { + var c, d, e; + b.Ug("Minimum spanning tree construction", 1); + a.d ? d = a.d.a : d = RD(Vmb(a.i, 0), 68).a; + Heb(TD(mQb(a, (OQb(), MQb)))) ? e = LFb(a.e, d, (c = a.b, c)) : e = LFb(a.e, d, a.b); + Bdd(this, e, a); + b.Vg(); + }; + sfb(wGe, "MinSTPhase", 794); + feb(1466, 794, nEe, Hdd); + _.Jg = function Jdd(a, b) { + var c, d, e, f; + b.Ug("Maximum spanning tree construction", 1); + c = new Kdd(a); + a.d ? e = a.d.c : e = RD(Vmb(a.i, 0), 68).c; + Heb(TD(mQb(a, (OQb(), MQb)))) ? f = LFb(a.e, e, (d = c, d)) : f = LFb(a.e, e, c); + Bdd(this, f, a); + b.Vg(); + }; + sfb(wGe, "MaxSTPhase", 1466); + feb(1467, 1, {}, Kdd); + _.af = function Ldd(a) { + return Idd(this.a, a); + }; + sfb(wGe, "MaxSTPhase/lambda$0$Type", 1467); + feb(1465, 1, Qve, Mdd); + _.Cd = function Ndd(a) { + Cdd(this.a, RD(a, 68)); + }; + sfb(wGe, "MinSTPhase/lambda$0$Type", 1465); + feb(796, 1, nEe, Tdd); + _.rg = function Udd(a) { + return RD(a, 306), new ufd(); + }; + _.Kf = function Vdd(a, b) { + Sdd(this, RD(a, 306), b); + }; + _.a = false; + sfb(xGe, "GrowTreePhase", 796); + feb(797, 1, Qve, Wdd); + _.Cd = function Xdd(a) { + Rdd(this.a, this.b, this.c, RD(a, 225)); + }; + sfb(xGe, "GrowTreePhase/lambda$0$Type", 797); + feb(1468, 1, nEe, _dd); + _.rg = function aed(a) { + return RD(a, 306), new ufd(); + }; + _.Kf = function bed(a, b) { + $dd(this, RD(a, 306), b); + }; + sfb(xGe, "ShrinkTreeCompactionPhase", 1468); + feb(795, 1, Qve, ced); + _.Cd = function ded(a) { + Zdd(this.a, this.b, this.c, RD(a, 225)); + }; + sfb(xGe, "ShrinkTreeCompactionPhase/lambda$0$Type", 795); + var j4 = ufb(jEe, "IGraphElementVisitor"); + feb(872, 1, { 536: 1 }, med); + _.Kg = function ped(a) { + var b; + b = led(this, a); + kQb(b, RD(Wjb(this.b, a), 96)); + jed(this, a, b); + }; + var eed, fed; + sfb(pze, "LayoutConfigurator", 872); + var g2 = ufb(pze, "LayoutConfigurator/IPropertyHolderOptionFilter"); + feb(944, 1, { 2032: 1 }, qed); + _.Lg = function red(a, b) { + return hed(), !a.pf(b); + }; + sfb(pze, "LayoutConfigurator/lambda$0$Type", 944); + feb(943, 1, { 845: 1 }, sed); + _.Mg = function ted(a, b) { + return hed(), !a.pf(b); + }; + sfb(pze, "LayoutConfigurator/lambda$1$Type", 943); + feb(945, 1, { 2032: 1 }, ved); + _.Lg = function wed(a, b) { + return ued(a, b); + }; + sfb(pze, "LayoutConfigurator/lambda$2$Type", 945); + feb(946, 1, nwe, xed); + _.Mb = function yed(a) { + return oed(this.a, this.b, RD(a, 2032)); + }; + sfb(pze, "LayoutConfigurator/lambda$3$Type", 946); + feb(869, 1, {}, Hed); + sfb(pze, "RecursiveGraphLayoutEngine", 869); + feb(224, 63, swe, Ied, Jed); + sfb(pze, "UnsupportedConfigurationException", 224); + feb(370, 63, swe, Ked); + sfb(pze, "UnsupportedGraphException", 370); + feb(761, 1, {}); + sfb(jEe, "AbstractRandomListAccessor", 761); + feb(450, 761, {}, Wed); + _.Ng = function Yed() { + return null; + }; + _.d = true; + _.e = true; + _.f = 0; + sfb(AGe, "AlgorithmAssembler", 450); + feb(1200, 1, nwe, Zed); + _.Mb = function $ed(a) { + return !!RD(a, 106); + }; + sfb(AGe, "AlgorithmAssembler/lambda$0$Type", 1200); + feb(1201, 1, {}, _ed); + _.Kb = function afd(a) { + return Xed(this.a, RD(a, 106)); + }; + sfb(AGe, "AlgorithmAssembler/lambda$1$Type", 1201); + feb(1202, 1, nwe, bfd); + _.Mb = function cfd(a) { + return !!RD(a, 80); + }; + sfb(AGe, "AlgorithmAssembler/lambda$2$Type", 1202); + feb(1203, 1, Qve, dfd); + _.Cd = function efd(a) { + ofd(this.a, RD(a, 80)); + }; + sfb(AGe, "AlgorithmAssembler/lambda$3$Type", 1203); + feb(1204, 1, Qve, ffd); + _.Cd = function gfd(a) { + Red(this.a, this.b, RD(a, 196)); + }; + sfb(AGe, "AlgorithmAssembler/lambda$4$Type", 1204); + feb(1343, 1, fye, ifd); + _.Ne = function jfd(a, b) { + return hfd(RD(a, 196), RD(b, 196)); + }; + _.Fb = function kfd(a) { + return this === a; + }; + _.Oe = function lfd() { + return new Frb(this); + }; + sfb(AGe, "EnumBasedFactoryComparator", 1343); + feb(80, 761, { 80: 1 }, ufd); + _.Ng = function wfd() { + return new _sb(); + }; + _.a = 0; + sfb(AGe, "LayoutProcessorConfiguration", 80); + feb(1025, 1, { 536: 1 }, Bfd); + _.Kg = function Ffd(a) { + Bvb(yfd, new Kfd(a)); + }; + var xfd, yfd, zfd; + sfb(zye, "DeprecatedLayoutOptionReplacer", 1025); + feb(1026, 1, Qve, Gfd); + _.Cd = function Hfd(a) { + Cfd(RD(a, 167)); + }; + sfb(zye, "DeprecatedLayoutOptionReplacer/lambda$0$Type", 1026); + feb(1027, 1, Qve, Ifd); + _.Cd = function Jfd(a) { + Dfd(RD(a, 167)); + }; + sfb(zye, "DeprecatedLayoutOptionReplacer/lambda$1$Type", 1027); + feb(1028, 1, {}, Kfd); + _.Yd = function Lfd(a, b) { + Efd(this.a, RD(a, 149), RD(b, 41)); + }; + sfb(zye, "DeprecatedLayoutOptionReplacer/lambda$2$Type", 1028); + feb(143, 1, { 701: 1, 143: 1 }, Pfd); + _.Fb = function Qfd(a) { + return Nfd(this, a); + }; + _.Og = function Rfd() { + return this.b; + }; + _.Pg = function Sfd() { + return this.c; + }; + _.xe = function Tfd() { + return this.e; + }; + _.Hb = function Ufd() { + return ohb(this.c); + }; + _.Ib = function Vfd() { + return "Layout Algorithm: " + this.c; + }; + var D2 = sfb(zye, "LayoutAlgorithmData", 143); + feb(269, 1, {}, agd); + sfb(zye, "LayoutAlgorithmData/Builder", 269); + feb(1029, 1, { 536: 1 }, dgd); + _.Kg = function egd(a) { + ZD(a, 207) && !Heb(TD(a.of((umd(), rld)))) && bgd(RD(a, 27)); + }; + sfb(zye, "LayoutAlgorithmResolver", 1029); + feb(233, 1, { 701: 1, 233: 1 }, fgd); + _.Fb = function ggd(a) { + if (ZD(a, 233)) { + return lhb(this.b, RD(a, 233).b); + } + return false; + }; + _.Og = function hgd() { + return this.a; + }; + _.Pg = function igd() { + return this.b; + }; + _.xe = function jgd() { + return this.d; + }; + _.Hb = function kgd() { + return ohb(this.b); + }; + _.Ib = function lgd() { + return "Layout Type: " + this.b; + }; + sfb(zye, "LayoutCategoryData", 233); + feb(357, 1, {}, pgd); + sfb(zye, "LayoutCategoryData/Builder", 357); + feb(879, 1, {}, xgd); + var qgd; + sfb(zye, "LayoutMetaDataService", 879); + feb(880, 1, {}, Ggd); + sfb(zye, "LayoutMetaDataService/Registry", 880); + feb(487, 1, { 487: 1 }, Hgd); + sfb(zye, "LayoutMetaDataService/Registry/Triple", 487); + feb(881, 1, BGe, Igd); + _.Qg = function Jgd() { + return new pjd(); + }; + sfb(zye, "LayoutMetaDataService/lambda$0$Type", 881); + feb(882, 1, CGe, Kgd); + _.Rg = function Lgd(a) { + return ajd(RD(a, 8)); + }; + sfb(zye, "LayoutMetaDataService/lambda$1$Type", 882); + feb(891, 1, BGe, Mgd); + _.Qg = function Ngd() { + return new bnb(); + }; + sfb(zye, "LayoutMetaDataService/lambda$10$Type", 891); + feb(892, 1, CGe, Ogd); + _.Rg = function Pgd(a) { + return new dnb(RD(a, 13)); + }; + sfb(zye, "LayoutMetaDataService/lambda$11$Type", 892); + feb(893, 1, BGe, Qgd); + _.Qg = function Rgd() { + return new Yub(); + }; + sfb(zye, "LayoutMetaDataService/lambda$12$Type", 893); + feb(894, 1, CGe, Sgd); + _.Rg = function Tgd(a) { + return gv(RD(a, 67)); + }; + sfb(zye, "LayoutMetaDataService/lambda$13$Type", 894); + feb(895, 1, BGe, Ugd); + _.Qg = function Vgd() { + return new _sb(); + }; + sfb(zye, "LayoutMetaDataService/lambda$14$Type", 895); + feb(896, 1, CGe, Wgd); + _.Rg = function Xgd(a) { + return Ux(RD(a, 49)); + }; + sfb(zye, "LayoutMetaDataService/lambda$15$Type", 896); + feb(897, 1, BGe, Ygd); + _.Qg = function Zgd() { + return new Iub(); + }; + sfb(zye, "LayoutMetaDataService/lambda$16$Type", 897); + feb(898, 1, CGe, $gd); + _.Rg = function _gd(a) { + return Xx(RD(a, 49)); + }; + sfb(zye, "LayoutMetaDataService/lambda$17$Type", 898); + feb(899, 1, BGe, ahd); + _.Qg = function bhd() { + return new xAb(); + }; + sfb(zye, "LayoutMetaDataService/lambda$18$Type", 899); + feb(900, 1, CGe, chd); + _.Rg = function dhd(a) { + return Yx(RD(a, 157)); + }; + sfb(zye, "LayoutMetaDataService/lambda$19$Type", 900); + feb(883, 1, BGe, ehd); + _.Qg = function fhd() { + return new Ejd(); + }; + sfb(zye, "LayoutMetaDataService/lambda$2$Type", 883); + feb(884, 1, CGe, ghd); + _.Rg = function hhd(a) { + return new Fjd(RD(a, 75)); + }; + sfb(zye, "LayoutMetaDataService/lambda$3$Type", 884); + feb(885, 1, BGe, ihd); + _.Qg = function jhd() { + return new P2b(); + }; + sfb(zye, "LayoutMetaDataService/lambda$4$Type", 885); + feb(886, 1, CGe, khd); + _.Rg = function lhd(a) { + return new S2b(RD(a, 140)); + }; + sfb(zye, "LayoutMetaDataService/lambda$5$Type", 886); + feb(887, 1, BGe, mhd); + _.Qg = function nhd() { + return new z3b(); + }; + sfb(zye, "LayoutMetaDataService/lambda$6$Type", 887); + feb(888, 1, CGe, ohd); + _.Rg = function phd(a) { + return new B3b(RD(a, 107)); + }; + sfb(zye, "LayoutMetaDataService/lambda$7$Type", 888); + feb(889, 1, BGe, qhd); + _.Qg = function rhd() { + return new dtd(); + }; + sfb(zye, "LayoutMetaDataService/lambda$8$Type", 889); + feb(890, 1, CGe, shd); + _.Rg = function thd(a) { + return new etd(RD(a, 385)); + }; + sfb(zye, "LayoutMetaDataService/lambda$9$Type", 890); + var V5 = ufb(jze, "IProperty"); + feb(23, 1, { 34: 1, 701: 1, 23: 1, 149: 1 }, Ahd); + _.Fd = function Bhd(a) { + return vhd(this, RD(a, 149)); + }; + _.Fb = function Chd(a) { + return ZD(a, 23) ? lhb(this.f, RD(a, 23).f) : ZD(a, 149) && lhb(this.f, RD(a, 149).Pg()); + }; + _.Sg = function Dhd() { + var a; + if (ZD(this.b, 4)) { + a = FId(this.b); + if (a == null) { + throw Adb(new dgb(HGe + this.f + "'. Make sure it's type is registered with the " + (lfb(b6), b6.k) + EGe)); + } + return a; + } else { + return this.b; + } + }; + _.Og = function Ehd() { + return this.d; + }; + _.Pg = function Fhd() { + return this.f; + }; + _.xe = function Ghd() { + return this.i; + }; + _.Hb = function Hhd() { + return ohb(this.f); + }; + _.Ib = function Ihd() { + return "Layout Option: " + this.f; + }; + sfb(zye, "LayoutOptionData", 23); + feb(24, 1, {}, Shd); + sfb(zye, "LayoutOptionData/Builder", 24); + feb(170, 22, { 3: 1, 34: 1, 22: 1, 170: 1 }, Zhd); + var Thd, Uhd, Vhd, Whd, Xhd; + var d3 = tfb(zye, "LayoutOptionData/Target", 170, WI, _hd, $hd); + var aid; + feb(285, 22, { 3: 1, 34: 1, 22: 1, 285: 1 }, lid); + var cid, did, eid, fid, gid, hid, iid, jid; + var e3 = tfb(zye, "LayoutOptionData/Type", 285, WI, nid, mid); + var oid; + var qid; + var sid; + feb(116, 1, { 116: 1 }, Tid, Uid, Vid); + _.Fb = function Wid(a) { + var b; + if (a == null || !ZD(a, 116)) { + return false; + } + b = RD(a, 116); + return Fvb(this.c, b.c) && Fvb(this.d, b.d) && Fvb(this.b, b.b) && Fvb(this.a, b.a); + }; + _.Hb = function Xid() { + return Tnb(cD(WC(jJ, 1), rve, 1, 5, [this.c, this.d, this.b, this.a])); + }; + _.Ib = function Yid() { + return "Rect[x=" + this.c + ",y=" + this.d + ",w=" + this.b + ",h=" + this.a + "]"; + }; + _.a = 0; + _.b = 0; + _.c = 0; + _.d = 0; + sfb(_Ae, "ElkRectangle", 116); + feb(8, 1, { 3: 1, 4: 1, 8: 1, 423: 1 }, pjd, qjd, rjd, sjd); + _.Fb = function tjd(a) { + return djd(this, a); + }; + _.Hb = function ujd() { + return Nfb(this.a) + pgb(Nfb(this.b)); + }; + _.cg = function wjd(b) { + var c, d, e, f; + e = 0; + while (e < b.length && vjd((BFb(e, b.length), b.charCodeAt(e)), YAe)) { + ++e; + } + c = b.length; + while (c > 0 && vjd((BFb(c - 1, b.length), b.charCodeAt(c - 1)), ZAe)) { + --c; + } + if (e >= c) { + throw Adb(new agb("The given string does not contain any numbers.")); + } + f = vhb((AFb(e, c, b.length), b.substr(e, c - e)), ",|;|\r|\n"); + if (f.length != 2) { + throw Adb(new agb("Exactly two numbers are expected, " + f.length + " were found.")); + } + try { + this.a = Neb(Dhb(f[0])); + this.b = Neb(Dhb(f[1])); + } catch (a) { + a = zdb(a); + if (ZD(a, 130)) { + d = a; + throw Adb(new agb($Ae + d)); + } else + throw Adb(a); + } + }; + _.Ib = function yjd() { + return "(" + this.a + "," + this.b + ")"; + }; + _.a = 0; + _.b = 0; + var l3 = sfb(_Ae, "KVector", 8); + feb(75, 67, { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 67: 1, 15: 1, 75: 1, 423: 1 }, Ejd, Fjd, Gjd); + _.Pc = function Jjd() { + return Djd(this); + }; + _.cg = function Hjd(b) { + var c, d, e, f, g, h; + e = vhb(b, ",|;|\\(|\\)|\\[|\\]|\\{|\\}| | |\n"); + Xub(this); + try { + d = 0; + g = 0; + f = 0; + h = 0; + while (d < e.length) { + if (e[d] != null && Dhb(e[d]).length > 0) { + g % 2 == 0 ? f = Neb(e[d]) : h = Neb(e[d]); + g > 0 && g % 2 != 0 && Mub(this, new rjd(f, h)); + ++g; + } + ++d; + } + } catch (a) { + a = zdb(a); + if (ZD(a, 130)) { + c = a; + throw Adb(new agb("The given string does not match the expected format for vectors." + c)); + } else + throw Adb(a); + } + }; + _.Ib = function Kjd() { + var a, b, c; + a = new dib("("); + b = Sub(this, 0); + while (b.b != b.d.c) { + c = RD(evb(b), 8); + Zhb(a, c.a + "," + c.b); + b.b != b.d.c && (a.a += "; ", a); + } + return (a.a += ")", a).a; + }; + var k3 = sfb(_Ae, "KVectorChain", 75); + feb(255, 22, { 3: 1, 34: 1, 22: 1, 255: 1 }, Sjd); + var Ljd, Mjd, Njd, Ojd, Pjd, Qjd; + var n3 = tfb(JGe, "Alignment", 255, WI, Ujd, Tjd); + var Vjd; + feb(991, 1, Eye, jkd); + _.hf = function kkd(a) { + ikd(a); + }; + var Xjd, Yjd, Zjd, $jd, _jd, akd, bkd, ckd, dkd, ekd, fkd, gkd; + sfb(JGe, "BoxLayouterOptions", 991); + feb(992, 1, {}, lkd); + _.sf = function mkd() { + var a; + return a = new jrd(), a; + }; + _.tf = function nkd(a) { + }; + sfb(JGe, "BoxLayouterOptions/BoxFactory", 992); + feb(298, 22, { 3: 1, 34: 1, 22: 1, 298: 1 }, vkd); + var okd, pkd, qkd, rkd, skd, tkd; + var q3 = tfb(JGe, "ContentAlignment", 298, WI, xkd, wkd); + var ykd; + feb(699, 1, Eye, vmd); + _.hf = function wmd(a) { + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), OGe), ""), "Layout Algorithm"), "Select a specific layout algorithm."), (kid(), iid)), qJ), xsb((Yhd(), Whd))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), PGe), ""), "Resolved Layout Algorithm"), "Meta data associated with the selected algorithm."), hid), D2), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), MDe), ""), "Alignment"), "Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."), Ckd), eid), n3), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), Dze), ""), "Aspect Ratio"), "The desired aspect ratio of the drawing, that is the quotient of width by height."), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), QGe), ""), "Bend Points"), "A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."), hid), k3), xsb(Thd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), YDe), ""), "Content Alignment"), "Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."), Lkd), fid), q3), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), LDe), ""), "Debug Mode"), "Whether additional debug information shall be generated."), (Geb(), false)), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), PDe), ""), eze), "Overall direction of edges: horizontal (right / left) or vertical (down / up)."), Okd), eid), s3), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), kDe), ""), "Edge Routing"), "What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."), Tkd), eid), u3), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), MGe), ""), "Expand Nodes"), "If active, nodes are expanded to fill the area of their parent."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), fDe), ""), "Hierarchy Handling"), "Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."), Ykd), eid), y3), ysb(Whd, cD(WC(d3, 1), jwe, 170, 0, [Vhd]))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), Eze), ""), "Padding"), "The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."), uld), hid), i3), ysb(Whd, cD(WC(d3, 1), jwe, 170, 0, [Vhd]))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), dAe), ""), "Interactive"), "Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), iEe), ""), "interactive Layout"), "Whether the graph should be changeable interactively and by setting constraints"), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), gAe), ""), "Omit Node Micro Layout"), "Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), eAe), ""), "Port Constraints"), "Defines constraints of the position of the ports of a node."), Ild), eid), C3), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), fEe), ""), "Position"), "The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."), hid), l3), ysb(Vhd, cD(WC(d3, 1), jwe, 170, 0, [Xhd, Uhd]))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), $ze), ""), "Priority"), "Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."), gid), bJ), ysb(Vhd, cD(WC(d3, 1), jwe, 170, 0, [Thd]))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), bAe), ""), "Randomization Seed"), "Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."), gid), bJ), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), cAe), ""), "Separate Connected Components"), "Whether each connected component should be processed separately."), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), ZDe), ""), "Junction Points"), "This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."), dld), hid), k3), xsb(Thd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), aEe), ""), "Comment Box"), "Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."), false), cid), QI), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), bEe), ""), "Hypernode"), "Whether the node should be handled as a hypernode."), false), cid), QI), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), RGe), ""), "Label Manager"), "Label managers can shorten labels upon a layout algorithm's request."), hid), g3), ysb(Whd, cD(WC(d3, 1), jwe, 170, 0, [Uhd]))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), gEe), ""), "Margins"), "Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."), fld), hid), h3), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), JDe), ""), "No Layout"), "No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."), false), cid), QI), ysb(Vhd, cD(WC(d3, 1), jwe, 170, 0, [Thd, Xhd, Uhd]))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), SGe), ""), "Scale Factor"), "The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."), 1), did), VI), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), TGe), ""), "Child Area Width"), "The width of the area occupied by the laid out children of a node."), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), UGe), ""), "Child Area Height"), "The height of the area occupied by the laid out children of a node."), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), mAe), ""), yGe), "Turns topdown layout on and off. If this option is enabled, hierarchical layout will be computed first for the root node and then for its children recursively. Layouts are then scaled down to fit the area provided by their parents. Graphs must follow a certain structure for topdown layout to work properly. {@link TopdownNodeTypes.PARALLEL_NODE} nodes must have children of type {@link TopdownNodeTypes.HIERARCHICAL_NODE} and must define {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} for their children. Furthermore they need to be laid out using an algorithm that is a {@link TopdownLayoutProvider}. Hierarchical nodes can also be parents of other hierarchical nodes and can optionally use a {@link TopdownSizeApproximator} to dynamically set sizes during topdown layout. In this case {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} should be set on the node itself rather than the parent. The values are then used by the size approximator as base values. Hierarchical nodes require the layout option {@link nodeSize.fixedGraphSize} to be true to prevent the algorithm used there from resizing the hierarchical node. This option is not supported if 'Hierarchy Handling' is set to 'INCLUDE_CHILDREN'"), false), cid), QI), xsb(Whd)))); + zgd(a, mAe, qAe, null); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), VGe), ""), "Animate"), "Whether the shift from the old layout to the new computed layout shall be animated."), true), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), WGe), ""), "Animation Time Factor"), "Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."), sgb(100)), gid), bJ), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), XGe), ""), "Layout Ancestors"), "Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), YGe), ""), "Maximal Animation Time"), "The maximal time for animations, in milliseconds."), sgb(4e3)), gid), bJ), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), ZGe), ""), "Minimal Animation Time"), "The minimal time for animations, in milliseconds."), sgb(400)), gid), bJ), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), $Ge), ""), "Progress Bar"), "Whether a progress bar shall be displayed during layout computations."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), _Ge), ""), "Validate Graph"), "Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), aHe), ""), "Validate Options"), "Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."), true), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), bHe), ""), "Zoom to Fit"), "Whether the zoom level shall be set to view the whole diagram after layout."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), NGe), "box"), "Box Layout Mode"), "Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."), Gkd), eid), R3), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), xDe), lDe), "Comment Comment Spacing"), "Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."), 10), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), yDe), lDe), "Comment Node Spacing"), "Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."), 10), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), Bze), lDe), "Components Spacing"), "Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."), 20), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), zDe), lDe), "Edge Spacing"), "Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."), 10), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), aAe), lDe), "Edge Label Spacing"), "The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."), 2), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), ADe), lDe), "Edge Node Spacing"), "Spacing to be preserved between nodes and edges."), 10), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), BDe), lDe), "Label Spacing"), "Determines the amount of space to be left between two labels of the same graph element."), 0), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), EDe), lDe), "Label Node Spacing"), "Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."), 5), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), CDe), lDe), "Horizontal spacing between Label and Port"), "Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), DDe), lDe), "Vertical spacing between Label and Port"), "Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), _ze), lDe), "Node Spacing"), "The minimal distance to be preserved between each two nodes."), 20), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), FDe), lDe), "Node Self Loop Spacing"), "Spacing to be preserved between a node and its self loops."), 10), did), VI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), GDe), lDe), "Port Spacing"), "Spacing between pairs of ports of the same node."), 10), did), VI), ysb(Whd, cD(WC(d3, 1), jwe, 170, 0, [Vhd]))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), HDe), lDe), "Individual Spacing"), "Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."), hid), l4), ysb(Vhd, cD(WC(d3, 1), jwe, 170, 0, [Thd, Xhd, Uhd]))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), hEe), lDe), "Additional Port Space"), "Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."), imd), hid), h3), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), eEe), hHe), "Layout Partition"), "Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."), gid), bJ), ysb(Whd, cD(WC(d3, 1), jwe, 170, 0, [Vhd]))))); + zgd(a, eEe, dEe, yld); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), dEe), hHe), "Layout Partitioning"), "Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."), wld), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), QDe), iHe), "Node Label Padding"), "Define padding for node labels that are placed inside of a node."), hld), hid), i3), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), kAe), iHe), "Node Label Placement"), "Hints for where node labels are to be placed; if empty, the node label's position is not modified."), jld), fid), A3), ysb(Vhd, cD(WC(d3, 1), jwe, 170, 0, [Uhd]))))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), TDe), jHe), "Port Alignment"), "Defines the default port distribution for a node. May be overridden for each side individually."), Ald), eid), B3), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), UDe), jHe), "Port Alignment (North)"), "Defines how ports on the northern side are placed, overriding the node's general port alignment."), eid), B3), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), VDe), jHe), "Port Alignment (South)"), "Defines how ports on the southern side are placed, overriding the node's general port alignment."), eid), B3), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), WDe), jHe), "Port Alignment (West)"), "Defines how ports on the western side are placed, overriding the node's general port alignment."), eid), B3), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), XDe), jHe), "Port Alignment (East)"), "Defines how ports on the eastern side are placed, overriding the node's general port alignment."), eid), B3), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), jAe), kHe), "Node Size Constraints"), "What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."), lld), fid), H3), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), iAe), kHe), "Node Size Options"), "Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."), qld), fid), I3), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), CAe), kHe), "Node Size Minimum"), "The minimal size to which a node can be reduced."), old), hid), l3), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), hAe), kHe), "Fixed Graph Size"), "By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."), false), cid), QI), xsb(Whd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), $De), vDe), "Edge Label Placement"), "Gives a hint on where to put edge labels."), Rkd), eid), t3), xsb(Uhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), fAe), vDe), "Inline Edge Labels"), "If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."), false), cid), QI), xsb(Uhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), cHe), "font"), "Font Name"), "Font name used for a label."), iid), qJ), xsb(Uhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), dHe), "font"), "Font Size"), "Font size used for a label."), gid), bJ), xsb(Uhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), cEe), lHe), "Port Anchor Offset"), "The offset to the port position where connections shall be attached."), hid), l3), xsb(Xhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), _De), lHe), "Port Index"), "The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."), gid), bJ), xsb(Xhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), KDe), lHe), "Port Side"), "The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."), Pld), eid), E3), xsb(Xhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd(), IDe), lHe), "Port Border Offset"), "The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."), did), VI), xsb(Xhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), lAe), mHe), "Port Label Placement"), "Decides on a placement method for port labels; if empty, the node label's position is not modified."), Mld), fid), D3), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), RDe), mHe), "Port Labels Next to Port"), "Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."), false), cid), QI), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), SDe), mHe), "Treat Port Labels as Group"), "If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."), true), cid), QI), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), nAe), nHe), "Topdown Scale Factor"), "The scaling factor to be applied to the nodes laid out within the node in recursive topdown layout. The difference to 'Scale Factor' is that the node itself is not scaled. This value has to be set on hierarchical nodes."), 1), did), VI), xsb(Whd)))); + zgd(a, nAe, qAe, rmd); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), eHe), nHe), "Topdown Size Approximator"), "The size approximator to be used to set sizes of hierarchical nodes during topdown layout. The default value is null, which results in nodes keeping whatever size is defined for them e.g. through parent parallel node or by manually setting the size."), null), eid), M3), xsb(Vhd)))); + zgd(a, eHe, qAe, tmd); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), oAe), nHe), "Topdown Hierarchical Node Width"), "The fixed size of a hierarchical node when using topdown layout. If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."), 150), did), VI), ysb(Whd, cD(WC(d3, 1), jwe, 170, 0, [Vhd]))))); + zgd(a, oAe, qAe, null); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), pAe), nHe), "Topdown Hierarchical Node Aspect Ratio"), "The fixed aspect ratio of a hierarchical node when using topdown layout. Default is 1/sqrt(2). If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."), 1.414), did), VI), ysb(Whd, cD(WC(d3, 1), jwe, 170, 0, [Vhd]))))); + zgd(a, pAe, qAe, null); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), qAe), nHe), "Topdown Node Type"), "The different node types used for topdown layout. If the node type is set to {@link TopdownNodeTypes.PARALLEL_NODE} the algorithm must be set to a {@link TopdownLayoutProvider} such as {@link TopdownPacking}. The {@link nodeSize.fixedGraphSize} option is technically only required for hierarchical nodes."), null), eid), J3), xsb(Vhd)))); + zgd(a, qAe, hAe, null); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), fHe), nHe), "Topdown Scale Cap"), "Determines the upper limit for the topdown scale factor. The default value is 1.0 which ensures that nested children never end up appearing larger than their parents in terms of unit sizes such as the font size. If the limit is larger, nodes will fully utilize the available space, but it is counteriniuitive for inner nodes to have a larger scale than outer nodes."), 1), did), VI), xsb(Whd)))); + zgd(a, fHe, qAe, pmd); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), NDe), oHe), "Activate Inside Self Loops"), "Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."), false), cid), QI), xsb(Vhd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), ODe), oHe), "Inside Self Loop"), "Whether a self loop should be routed inside a node instead of around that node."), false), cid), QI), xsb(Thd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), Cze), "edge"), "Edge Thickness"), "The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."), 1), did), VI), xsb(Thd)))); + Egd(a, new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd(), gHe), "edge"), "Edge Type"), "The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."), Vkd), eid), v3), xsb(Thd)))); + Dgd(a, new fgd(mgd(ogd(ngd(new pgd(), sxe), "Layered"), 'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))); + Dgd(a, new fgd(mgd(ogd(ngd(new pgd(), "org.eclipse.elk.orthogonal"), "Orthogonal"), `Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`))); + Dgd(a, new fgd(mgd(ogd(ngd(new pgd(), Zze), "Force"), "Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))); + Dgd(a, new fgd(mgd(ogd(ngd(new pgd(), "org.eclipse.elk.circle"), "Circle"), "Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))); + Dgd(a, new fgd(mgd(ogd(ngd(new pgd(), $Ee), "Tree"), "Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))); + Dgd(a, new fgd(mgd(ogd(ngd(new pgd(), "org.eclipse.elk.planar"), "Planar"), "Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))); + Dgd(a, new fgd(mgd(ogd(ngd(new pgd(), CFe), "Radial"), "Radial layout algorithms usually position the nodes of the graph on concentric circles."))); + wnd((new xnd(), a)); + ikd((new jkd(), a)); + Gpd((new Hpd(), a)); + }; + var Akd, Bkd, Ckd, Dkd, Ekd, Fkd, Gkd, Hkd, Ikd, Jkd, Kkd, Lkd, Mkd, Nkd, Okd, Pkd, Qkd, Rkd, Skd, Tkd, Ukd, Vkd, Wkd, Xkd, Ykd, Zkd, $kd, _kd, ald, bld, cld, dld, eld, fld, gld, hld, ild, jld, kld, lld, mld, nld, old, pld, qld, rld, sld, tld, uld, vld, wld, xld, yld, zld, Ald, Bld, Cld, Dld, Eld, Fld, Gld, Hld, Ild, Jld, Kld, Lld, Mld, Nld, Old, Pld, Qld, Rld, Sld, Tld, Uld, Vld, Wld, Xld, Yld, Zld, $ld, _ld, amd, bmd, cmd, dmd, emd, fmd, gmd, hmd, imd, jmd, kmd, lmd, mmd, nmd, omd, pmd, qmd, rmd, smd, tmd; + sfb(JGe, "CoreOptions", 699); + feb(88, 22, { 3: 1, 34: 1, 22: 1, 88: 1 }, Gmd); + var xmd, ymd, zmd, Amd, Bmd; + var s3 = tfb(JGe, eze, 88, WI, Imd, Hmd); + var Jmd; + feb(278, 22, { 3: 1, 34: 1, 22: 1, 278: 1 }, Pmd); + var Lmd, Mmd, Nmd; + var t3 = tfb(JGe, "EdgeLabelPlacement", 278, WI, Rmd, Qmd); + var Smd; + feb(223, 22, { 3: 1, 34: 1, 22: 1, 223: 1 }, Zmd); + var Umd, Vmd, Wmd, Xmd; + var u3 = tfb(JGe, "EdgeRouting", 223, WI, _md, $md); + var and; + feb(321, 22, { 3: 1, 34: 1, 22: 1, 321: 1 }, jnd); + var cnd, dnd, end, fnd, gnd, hnd; + var v3 = tfb(JGe, "EdgeType", 321, WI, lnd, knd); + var mnd; + feb(989, 1, Eye, xnd); + _.hf = function ynd(a) { + wnd(a); + }; + var ond, pnd, qnd, rnd, snd, tnd, und; + sfb(JGe, "FixedLayouterOptions", 989); + feb(990, 1, {}, znd); + _.sf = function And() { + var a; + return a = new btd(), a; + }; + _.tf = function Bnd(a) { + }; + sfb(JGe, "FixedLayouterOptions/FixedFactory", 990); + feb(346, 22, { 3: 1, 34: 1, 22: 1, 346: 1 }, Gnd); + var Cnd, Dnd, End; + var y3 = tfb(JGe, "HierarchyHandling", 346, WI, Ind, Hnd); + var Jnd; + feb(291, 22, { 3: 1, 34: 1, 22: 1, 291: 1 }, Rnd); + var Lnd, Mnd, Nnd, Ond; + var z3 = tfb(JGe, "LabelSide", 291, WI, Tnd, Snd); + var Und; + feb(95, 22, { 3: 1, 34: 1, 22: 1, 95: 1 }, eod); + var Wnd, Xnd, Ynd, Znd, $nd, _nd, aod, bod, cod; + var A3 = tfb(JGe, "NodeLabelPlacement", 95, WI, hod, god); + var iod; + feb(256, 22, { 3: 1, 34: 1, 22: 1, 256: 1 }, qod); + var kod, lod, mod, nod, ood; + var B3 = tfb(JGe, "PortAlignment", 256, WI, sod, rod); + var tod; + feb(101, 22, { 3: 1, 34: 1, 22: 1, 101: 1 }, Eod); + var vod, wod, xod, yod, zod, Aod; + var C3 = tfb(JGe, "PortConstraints", 101, WI, God, Fod); + var Hod; + feb(279, 22, { 3: 1, 34: 1, 22: 1, 279: 1 }, Qod); + var Jod, Kod, Lod, Mod, Nod, Ood; + var D3 = tfb(JGe, "PortLabelPlacement", 279, WI, Uod, Tod); + var Vod; + feb(64, 22, { 3: 1, 34: 1, 22: 1, 64: 1 }, upd); + var Xod, Yod, Zod, $od, _od, apd, bpd, cpd, dpd, epd, fpd, gpd, hpd, ipd, jpd, kpd, lpd, mpd, npd, opd, ppd; + var E3 = tfb(JGe, "PortSide", 64, WI, xpd, wpd); + var ypd; + feb(993, 1, Eye, Hpd); + _.hf = function Ipd(a) { + Gpd(a); + }; + var Apd, Bpd, Cpd, Dpd, Epd; + sfb(JGe, "RandomLayouterOptions", 993); + feb(994, 1, {}, Jpd); + _.sf = function Kpd() { + var a; + return a = new eud(), a; + }; + _.tf = function Lpd(a) { + }; + sfb(JGe, "RandomLayouterOptions/RandomFactory", 994); + feb(386, 22, { 3: 1, 34: 1, 22: 1, 386: 1 }, Rpd); + var Mpd, Npd, Opd, Ppd; + var H3 = tfb(JGe, "SizeConstraint", 386, WI, Tpd, Spd); + var Upd; + feb(264, 22, { 3: 1, 34: 1, 22: 1, 264: 1 }, eqd); + var Wpd, Xpd, Ypd, Zpd, $pd, _pd, aqd, bqd, cqd; + var I3 = tfb(JGe, "SizeOptions", 264, WI, gqd, fqd); + var hqd; + feb(280, 22, { 3: 1, 34: 1, 22: 1, 280: 1 }, nqd); + var jqd, kqd, lqd; + var J3 = tfb(JGe, "TopdownNodeTypes", 280, WI, pqd, oqd); + var qqd; + feb(347, 22, rHe); + var sqd, tqd; + var M3 = tfb(JGe, "TopdownSizeApproximator", 347, WI, xqd, wqd); + feb(987, 347, rHe, zqd); + _.Tg = function Aqd(a) { + return yqd(a); + }; + tfb(JGe, "TopdownSizeApproximator/1", 987, M3, null, null); + feb(988, 347, rHe, Bqd); + _.Tg = function Cqd(b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B, C, D; + c = RD(Gxd(b, (umd(), Tld)), 143); + A = (bvd(), o2 = new ACd(), o2); + zxd(A, b); + B = new Tsb(); + for (g = new dMd((!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a)); g.e != g.i.gc(); ) { + e = RD(bMd(g), 27); + t = (n = new ACd(), n); + yCd(t, A); + zxd(t, e); + D = yqd(e); + zyd(t, $wnd.Math.max(e.g, D.a), $wnd.Math.max(e.f, D.b)); + rtb(B.f, e, t); + } + for (f = new dMd((!b.a && (b.a = new C5d(J4, b, 10, 11)), b.a)); f.e != f.i.gc(); ) { + e = RD(bMd(f), 27); + for (l = new dMd((!e.e && (e.e = new Yie(G4, e, 7, 4)), e.e)); l.e != l.i.gc(); ) { + k = RD(bMd(l), 74); + v = RD(Wd(qtb(B.f, e)), 27); + w = RD(Wjb(B, QHd((!k.c && (k.c = new Yie(E4, k, 5, 8)), k.c), 0)), 27); + u = (m = new rzd(), m); + WGd((!u.b && (u.b = new Yie(E4, u, 4, 7)), u.b), v); + WGd((!u.c && (u.c = new Yie(E4, u, 5, 8)), u.c), w); + pzd(u, vCd(v)); + zxd(u, k); + } + } + q = RD(ltd(c.f), 205); + try { + q.rf(A, new ztd()); + mtd(c.f, q); + } catch (a) { + a = zdb(a); + if (ZD(a, 103)) { + p = a; + throw Adb(p); + } else + throw Adb(a); + } + Hxd(A, Ikd) || Hxd(A, Hkd) || psd(A); + j = Kfb(UD(Gxd(A, Ikd))); + i = Kfb(UD(Gxd(A, Hkd))); + h = j / i; + d = Kfb(UD(Gxd(A, lmd))) * $wnd.Math.sqrt((!A.a && (A.a = new C5d(J4, A, 10, 11)), A.a).i); + C = RD(Gxd(A, tld), 107); + s = C.b + C.c + 1; + r = C.d + C.a + 1; + return new rjd($wnd.Math.max(s, d), $wnd.Math.max(r, d / h)); + }; + tfb(JGe, "TopdownSizeApproximator/2", 988, M3, null, null); + var Dqd; + feb(344, 1, { 871: 1 }, Oqd); + _.Ug = function Pqd(a, b) { + return Fqd(this, a, b); + }; + _.Vg = function Qqd() { + Hqd(this); + }; + _.Wg = function Rqd() { + return this.q; + }; + _.Xg = function Sqd() { + return !this.f ? null : Hob(this.f); + }; + _.Yg = function Tqd() { + return Hob(this.a); + }; + _.Zg = function Uqd() { + return this.p; + }; + _.$g = function Vqd() { + return false; + }; + _._g = function Wqd() { + return this.n; + }; + _.ah = function Xqd() { + return this.p != null && !this.b; + }; + _.bh = function Yqd(a) { + var b; + if (this.n) { + b = a; + Rmb(this.f, b); + } + }; + _.dh = function Zqd(a, b) { + var c, d; + this.n && !!a && Jqd(this, (c = new Zje(), d = Rje(c, a), Yje(c), d), (ttd(), qtd)); + }; + _.eh = function $qd(a) { + var b; + if (this.b) { + return null; + } else { + b = Gqd(this, this.g); + Mub(this.a, b); + b.i = this; + this.d = a; + return b; + } + }; + _.fh = function _qd(a) { + a > 0 && !this.b && Iqd(this, a); + }; + _.b = false; + _.c = 0; + _.d = -1; + _.e = null; + _.f = null; + _.g = -1; + _.j = false; + _.k = false; + _.n = false; + _.o = 0; + _.q = 0; + _.r = 0; + sfb(jEe, "BasicProgressMonitor", 344); + feb(717, 205, oze, jrd); + _.rf = function nrd(a, b) { + crd(a, b); + }; + sfb(jEe, "BoxLayoutProvider", 717); + feb(983, 1, fye, prd); + _.Ne = function qrd(a, b) { + return ord(this, RD(a, 27), RD(b, 27)); + }; + _.Fb = function rrd(a) { + return this === a; + }; + _.Oe = function srd() { + return new Frb(this); + }; + _.a = false; + sfb(jEe, "BoxLayoutProvider/1", 983); + feb(163, 1, { 163: 1 }, zrd, Ard); + _.Ib = function Brd() { + return this.c ? zCd(this.c) : Fe(this.b); + }; + sfb(jEe, "BoxLayoutProvider/Group", 163); + feb(320, 22, { 3: 1, 34: 1, 22: 1, 320: 1 }, Hrd); + var Crd, Drd, Erd, Frd; + var R3 = tfb(jEe, "BoxLayoutProvider/PackingMode", 320, WI, Jrd, Ird); + var Krd; + feb(984, 1, fye, Mrd); + _.Ne = function Nrd(a, b) { + return krd(RD(a, 163), RD(b, 163)); + }; + _.Fb = function Ord(a) { + return this === a; + }; + _.Oe = function Prd() { + return new Frb(this); + }; + sfb(jEe, "BoxLayoutProvider/lambda$0$Type", 984); + feb(985, 1, fye, Qrd); + _.Ne = function Rrd(a, b) { + return lrd(RD(a, 163), RD(b, 163)); + }; + _.Fb = function Srd(a) { + return this === a; + }; + _.Oe = function Trd() { + return new Frb(this); + }; + sfb(jEe, "BoxLayoutProvider/lambda$1$Type", 985); + feb(986, 1, fye, Urd); + _.Ne = function Vrd(a, b) { + return mrd(RD(a, 163), RD(b, 163)); + }; + _.Fb = function Wrd(a) { + return this === a; + }; + _.Oe = function Xrd() { + return new Frb(this); + }; + sfb(jEe, "BoxLayoutProvider/lambda$2$Type", 986); + feb(1384, 1, { 845: 1 }, Yrd); + _.Mg = function Zrd(a, b) { + return GCc(), !ZD(b, 167) || ued((hed(), RD(a, 167)), b); + }; + sfb(jEe, "ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type", 1384); + feb(1385, 1, Qve, $rd); + _.Cd = function _rd(a) { + JCc(this.a, RD(a, 149)); + }; + sfb(jEe, "ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type", 1385); + feb(1386, 1, Qve, asd); + _.Cd = function bsd(a) { + RD(a, 96); + GCc(); + }; + sfb(jEe, "ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type", 1386); + feb(1390, 1, Qve, csd); + _.Cd = function dsd(a) { + KCc(this.a, RD(a, 96)); + }; + sfb(jEe, "ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type", 1390); + feb(1388, 1, nwe, esd); + _.Mb = function fsd(a) { + return LCc(this.a, this.b, RD(a, 149)); + }; + sfb(jEe, "ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type", 1388); + feb(1387, 1, nwe, gsd); + _.Mb = function hsd(a) { + return NCc(this.a, this.b, RD(a, 845)); + }; + sfb(jEe, "ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type", 1387); + feb(1389, 1, Qve, isd); + _.Cd = function jsd(a) { + MCc(this.a, this.b, RD(a, 149)); + }; + sfb(jEe, "ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type", 1389); + feb(947, 1, {}, Lsd); + _.Kb = function Msd(a) { + return Ksd(a); + }; + _.Fb = function Nsd(a) { + return this === a; + }; + sfb(jEe, "ElkUtil/lambda$0$Type", 947); + feb(948, 1, Qve, Osd); + _.Cd = function Psd(a) { + ysd(this.a, this.b, RD(a, 74)); + }; + _.a = 0; + _.b = 0; + sfb(jEe, "ElkUtil/lambda$1$Type", 948); + feb(949, 1, Qve, Qsd); + _.Cd = function Rsd(a) { + zsd(this.a, this.b, RD(a, 166)); + }; + _.a = 0; + _.b = 0; + sfb(jEe, "ElkUtil/lambda$2$Type", 949); + feb(950, 1, Qve, Ssd); + _.Cd = function Tsd(a) { + Asd(this.a, this.b, RD(a, 135)); + }; + _.a = 0; + _.b = 0; + sfb(jEe, "ElkUtil/lambda$3$Type", 950); + feb(951, 1, Qve, Usd); + _.Cd = function Vsd(a) { + Bsd(this.a, RD(a, 377)); + }; + sfb(jEe, "ElkUtil/lambda$4$Type", 951); + feb(325, 1, { 34: 1, 325: 1 }, Xsd); + _.Fd = function Ysd(a) { + return Wsd(this, RD(a, 242)); + }; + _.Fb = function Zsd(a) { + var b; + if (ZD(a, 325)) { + b = RD(a, 325); + return this.a == b.a; + } + return false; + }; + _.Hb = function $sd() { + return eE(this.a); + }; + _.Ib = function _sd() { + return this.a + " (exclusive)"; + }; + _.a = 0; + sfb(jEe, "ExclusiveBounds/ExclusiveLowerBound", 325); + feb(1119, 205, oze, btd); + _.rf = function ctd(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r, s, t, u, v, w, A, B; + b.Ug("Fixed Layout", 1); + f = RD(Gxd(a, (umd(), Skd)), 223); + l = 0; + m = 0; + for (s = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); s.e != s.i.gc(); ) { + q = RD(bMd(s), 27); + B = RD(Gxd(q, (vnd(), und)), 8); + if (B) { + Byd(q, B.a, B.b); + if (RD(Gxd(q, pnd), 181).Hc((Qpd(), Mpd))) { + n = RD(Gxd(q, rnd), 8); + n.a > 0 && n.b > 0 && Esd(q, n.a, n.b, true, true); + } + } + l = $wnd.Math.max(l, q.i + q.g); + m = $wnd.Math.max(m, q.j + q.f); + for (j = new dMd((!q.n && (q.n = new C5d(I4, q, 1, 7)), q.n)); j.e != j.i.gc(); ) { + h = RD(bMd(j), 135); + B = RD(Gxd(h, und), 8); + !!B && Byd(h, B.a, B.b); + l = $wnd.Math.max(l, q.i + h.i + h.g); + m = $wnd.Math.max(m, q.j + h.j + h.f); + } + for (v = new dMd((!q.c && (q.c = new C5d(K4, q, 9, 9)), q.c)); v.e != v.i.gc(); ) { + u = RD(bMd(v), 123); + B = RD(Gxd(u, und), 8); + !!B && Byd(u, B.a, B.b); + w = q.i + u.i; + A = q.j + u.j; + l = $wnd.Math.max(l, w + u.g); + m = $wnd.Math.max(m, A + u.f); + for (i = new dMd((!u.n && (u.n = new C5d(I4, u, 1, 7)), u.n)); i.e != i.i.gc(); ) { + h = RD(bMd(i), 135); + B = RD(Gxd(h, und), 8); + !!B && Byd(h, B.a, B.b); + l = $wnd.Math.max(l, w + h.i + h.g); + m = $wnd.Math.max(m, A + h.j + h.f); + } + } + for (e = new is(Mr(zGd(q).a.Kc(), new ir())); gs(e); ) { + c = RD(hs(e), 74); + k = atd(c); + l = $wnd.Math.max(l, k.a); + m = $wnd.Math.max(m, k.b); + } + for (d = new is(Mr(yGd(q).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 74); + if (vCd(JGd(c)) != a) { + k = atd(c); + l = $wnd.Math.max(l, k.a); + m = $wnd.Math.max(m, k.b); + } + } + } + if (f == (Ymd(), Umd)) { + for (r = new dMd((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a)); r.e != r.i.gc(); ) { + q = RD(bMd(r), 27); + for (d = new is(Mr(zGd(q).a.Kc(), new ir())); gs(d); ) { + c = RD(hs(d), 74); + g = tsd(c); + g.b == 0 ? Ixd(c, cld, null) : Ixd(c, cld, g); + } + } + } + if (!Heb(TD(Gxd(a, (vnd(), qnd))))) { + t = RD(Gxd(a, snd), 107); + p = l + t.b + t.c; + o2 = m + t.d + t.a; + Esd(a, p, o2, true, true); + } + b.Vg(); + }; + sfb(jEe, "FixedLayoutProvider", 1119); + feb(385, 137, { 3: 1, 423: 1, 385: 1, 96: 1, 137: 1 }, dtd, etd); + _.cg = function htd(b) { + var c, d, e, f, g, h, i, j, k; + if (!b) { + return; + } + try { + j = vhb(b, ";,;"); + for (g = j, h = 0, i = g.length; h < i; ++h) { + f = g[h]; + d = vhb(f, "\\:"); + e = vgd(ygd(), d[0]); + if (!e) { + throw Adb(new agb("Invalid option id: " + d[0])); + } + k = zhd(e, d[1]); + if (k == null) { + throw Adb(new agb("Invalid option value: " + d[1])); + } + k == null ? (!this.q && (this.q = new Tsb()), _jb(this.q, e)) : (!this.q && (this.q = new Tsb()), Zjb(this.q, e, k)); + } + } catch (a) { + a = zdb(a); + if (ZD(a, 103)) { + c = a; + throw Adb(new bgb(c)); + } else + throw Adb(a); + } + }; + _.Ib = function itd() { + var a; + a = WD(zDb(GDb((!this.q ? (yob(), yob(), wob) : this.q).vc().Oc(), new jtd()), sBb(new hCb(), new fCb(), new RBb(), new TBb(), cD(WC(QL, 1), jwe, 108, 0, [])))); + return a; + }; + var l4 = sfb(jEe, "IndividualSpacings", 385); + feb(982, 1, {}, jtd); + _.Kb = function ktd(a) { + return gtd(RD(a, 44)); + }; + sfb(jEe, "IndividualSpacings/lambda$0$Type", 982); + feb(718, 1, {}, ntd); + _.c = 0; + sfb(jEe, "InstancePool", 718); + feb(1835, 1, {}, otd); + sfb(jEe, "LoggedGraph", 1835); + feb(415, 22, { 3: 1, 34: 1, 22: 1, 415: 1 }, utd); + var ptd, qtd, rtd, std; + var n4 = tfb(jEe, "LoggedGraph/Type", 415, WI, wtd, vtd); + var xtd; + feb(1063, 1, { 871: 1 }, ztd); + _.Ug = function Atd(a, b) { + return false; + }; + _.Vg = function Btd() { + }; + _.Wg = function Ctd() { + return 0; + }; + _.Xg = function Dtd() { + return null; + }; + _.Yg = function Etd() { + return null; + }; + _.Zg = function Ftd() { + return null; + }; + _.$g = function Gtd() { + return false; + }; + _._g = function Htd() { + return false; + }; + _.ah = function Itd() { + return false; + }; + _.bh = function Jtd(a) { + }; + _.dh = function Ktd(a, b) { + }; + _.eh = function Ltd(a) { + return this; + }; + _.fh = function Mtd(a) { + }; + sfb(jEe, "NullElkProgressMonitor", 1063); + feb(42, 1, { 20: 1, 42: 1 }, Ptd); + _.Jc = function Rtd(a) { + xgb(this, a); + }; + _.Fb = function Qtd(a) { + var b, c, d; + if (ZD(a, 42)) { + c = RD(a, 42); + b = this.a == null ? c.a == null : pb(this.a, c.a); + d = this.b == null ? c.b == null : pb(this.b, c.b); + return b && d; + } else { + return false; + } + }; + _.Hb = function Std() { + var a, b, c, d, e, f; + c = this.a == null ? 0 : tb(this.a); + a = c & Bwe; + b = c & -65536; + f = this.b == null ? 0 : tb(this.b); + d = f & Bwe; + e = f & -65536; + return a ^ e >> 16 & Bwe | b ^ d << 16; + }; + _.Kc = function Ttd() { + return new Vtd(this); + }; + _.Ib = function Utd() { + return this.a == null && this.b == null ? "pair(null,null)" : this.a == null ? "pair(null," + jeb(this.b) + ")" : this.b == null ? "pair(" + jeb(this.a) + ",null)" : "pair(" + jeb(this.a) + "," + jeb(this.b) + ")"; + }; + sfb(jEe, "Pair", 42); + feb(995, 1, Ave, Vtd); + _.Nb = function Wtd(a) { + Ztb(this, a); + }; + _.Ob = function Xtd() { + return !this.c && (!this.b && this.a.a != null || this.a.b != null); + }; + _.Pb = function Ytd() { + if (!this.c && !this.b && this.a.a != null) { + this.b = true; + return this.a.a; + } else if (!this.c && this.a.b != null) { + this.c = true; + return this.a.b; + } + throw Adb(new Dvb()); + }; + _.Qb = function Ztd() { + this.c && this.a.b != null ? this.a.b = null : this.b && this.a.a != null && (this.a.a = null); + throw Adb(new cgb()); + }; + _.b = false; + _.c = false; + sfb(jEe, "Pair/1", 995); + feb(455, 1, { 455: 1 }, $td); + _.Fb = function _td(a) { + return Fvb(this.a, RD(a, 455).a) && Fvb(this.c, RD(a, 455).c) && Fvb(this.d, RD(a, 455).d) && Fvb(this.b, RD(a, 455).b); + }; + _.Hb = function aud() { + return Tnb(cD(WC(jJ, 1), rve, 1, 5, [this.a, this.c, this.d, this.b])); + }; + _.Ib = function bud() { + return "(" + this.a + pve + this.c + pve + this.d + pve + this.b + ")"; + }; + sfb(jEe, "Quadruple", 455); + feb(1108, 205, oze, eud); + _.rf = function fud(a, b) { + var c, d, e, f, g; + b.Ug("Random Layout", 1); + if ((!a.a && (a.a = new C5d(J4, a, 10, 11)), a.a).i == 0) { + b.Vg(); + return; + } + f = RD(Gxd(a, (Fpd(), Dpd)), 17); + !!f && f.a != 0 ? e = new Pwb(f.a) : e = new Owb(); + c = Mfb(UD(Gxd(a, Apd))); + g = Mfb(UD(Gxd(a, Epd))); + d = RD(Gxd(a, Bpd), 107); + dud(a, e, c, g, d); + b.Vg(); + }; + sfb(jEe, "RandomLayoutProvider", 1108); + feb(240, 1, { 240: 1 }, gud); + _.Fb = function hud(a) { + return Fvb(this.a, RD(a, 240).a) && Fvb(this.b, RD(a, 240).b) && Fvb(this.c, RD(a, 240).c); + }; + _.Hb = function iud() { + return Tnb(cD(WC(jJ, 1), rve, 1, 5, [this.a, this.b, this.c])); + }; + _.Ib = function jud() { + return "(" + this.a + pve + this.b + pve + this.c + ")"; + }; + sfb(jEe, "Triple", 240); + var kud; + feb(562, 1, {}); + _.Lf = function oud() { + return new rjd(this.f.i, this.f.j); + }; + _.of = function pud(a) { + if (hGd(a, (umd(), Gld))) { + return Gxd(this.f, mud); + } + return Gxd(this.f, a); + }; + _.Mf = function qud() { + return new rjd(this.f.g, this.f.f); + }; + _.Nf = function rud() { + return this.g; + }; + _.pf = function sud(a) { + return Hxd(this.f, a); + }; + _.Of = function tud(a) { + Dyd(this.f, a.a); + Eyd(this.f, a.b); + }; + _.Pf = function uud(a) { + Cyd(this.f, a.a); + Ayd(this.f, a.b); + }; + _.Qf = function vud(a) { + this.g = a; + }; + _.g = 0; + var mud; + sfb(uHe, "ElkGraphAdapters/AbstractElkGraphElementAdapter", 562); + feb(563, 1, { 853: 1 }, wud); + _.Rf = function xud() { + var a, b; + if (!this.b) { + this.b = fv(iyd(this.a).i); + for (b = new dMd(iyd(this.a)); b.e != b.i.gc(); ) { + a = RD(bMd(b), 135); + Rmb(this.b, new Bud(a)); + } + } + return this.b; + }; + _.b = null; + sfb(uHe, "ElkGraphAdapters/ElkEdgeAdapter", 563); + feb(289, 562, {}, zud); + _.Sf = function Aud() { + return yud(this); + }; + _.a = null; + sfb(uHe, "ElkGraphAdapters/ElkGraphAdapter", 289); + feb(640, 562, { 187: 1 }, Bud); + sfb(uHe, "ElkGraphAdapters/ElkLabelAdapter", 640); + feb(639, 562, { 695: 1 }, Fud); + _.Rf = function Iud() { + return Cud(this); + }; + _.Vf = function Jud() { + var a; + return a = RD(Gxd(this.f, (umd(), eld)), 140), !a && (a = new P2b()), a; + }; + _.Xf = function Lud() { + return Dud(this); + }; + _.Zf = function Nud(a) { + var b; + b = new S2b(a); + Ixd(this.f, (umd(), eld), b); + }; + _.$f = function Oud(a) { + Ixd(this.f, (umd(), tld), new B3b(a)); + }; + _.Tf = function Gud() { + return this.d; + }; + _.Uf = function Hud() { + var a, b; + if (!this.a) { + this.a = new bnb(); + for (b = new is(Mr(yGd(RD(this.f, 27)).a.Kc(), new ir())); gs(b); ) { + a = RD(hs(b), 74); + Rmb(this.a, new wud(a)); + } + } + return this.a; + }; + _.Wf = function Kud() { + var a, b; + if (!this.c) { + this.c = new bnb(); + for (b = new is(Mr(zGd(RD(this.f, 27)).a.Kc(), new ir())); gs(b); ) { + a = RD(hs(b), 74); + Rmb(this.c, new wud(a)); + } + } + return this.c; + }; + _.Yf = function Mud() { + return tCd(RD(this.f, 27)).i != 0 || Heb(TD(RD(this.f, 27).of((umd(), $kd)))); + }; + _._f = function Pud() { + Eud(this, (lud(), kud)); + }; + _.a = null; + _.b = null; + _.c = null; + _.d = null; + _.e = null; + sfb(uHe, "ElkGraphAdapters/ElkNodeAdapter", 639); + feb(1284, 562, { 852: 1 }, Rud); + _.Rf = function Tud() { + return Qud(this); + }; + _.Uf = function Sud() { + var a, b; + if (!this.a) { + this.a = ev(RD(this.f, 123).hh().i); + for (b = new dMd(RD(this.f, 123).hh()); b.e != b.i.gc(); ) { + a = RD(bMd(b), 74); + Rmb(this.a, new wud(a)); + } + } + return this.a; + }; + _.Wf = function Uud() { + var a, b; + if (!this.c) { + this.c = ev(RD(this.f, 123).ih().i); + for (b = new dMd(RD(this.f, 123).ih()); b.e != b.i.gc(); ) { + a = RD(bMd(b), 74); + Rmb(this.c, new wud(a)); + } + } + return this.c; + }; + _.ag = function Vud() { + return RD(RD(this.f, 123).of((umd(), Old)), 64); + }; + _.bg = function Wud() { + var a, b, c, d, e, f, g, h; + d = MCd(RD(this.f, 123)); + for (c = new dMd(RD(this.f, 123).ih()); c.e != c.i.gc(); ) { + a = RD(bMd(c), 74); + for (h = new dMd((!a.c && (a.c = new Yie(E4, a, 5, 8)), a.c)); h.e != h.i.gc(); ) { + g = RD(bMd(h), 84); + if (NGd(AGd(g), d)) { + return true; + } else if (AGd(g) == d && Heb(TD(Gxd(a, (umd(), _kd))))) { + return true; + } + } + } + for (b = new dMd(RD(this.f, 123).hh()); b.e != b.i.gc(); ) { + a = RD(bMd(b), 74); + for (f = new dMd((!a.b && (a.b = new Yie(E4, a, 4, 7)), a.b)); f.e != f.i.gc(); ) { + e = RD(bMd(f), 84); + if (NGd(AGd(e), d)) { + return true; + } + } + } + return false; + }; + _.a = null; + _.b = null; + _.c = null; + sfb(uHe, "ElkGraphAdapters/ElkPortAdapter", 1284); + feb(1285, 1, fye, Yud); + _.Ne = function Zud(a, b) { + return Xud(RD(a, 123), RD(b, 123)); + }; + _.Fb = function $ud(a) { + return this === a; + }; + _.Oe = function _ud() { + return new Frb(this); + }; + sfb(uHe, "ElkGraphAdapters/PortComparator", 1285); + var r7 = ufb(vHe, "EObject"); + var C4 = ufb(wHe, xHe); + var D4 = ufb(wHe, yHe); + var H4 = ufb(wHe, zHe); + var L4 = ufb(wHe, "ElkShape"); + var E4 = ufb(wHe, AHe); + var G4 = ufb(wHe, BHe); + var F4 = ufb(wHe, CHe); + var p7 = ufb(vHe, DHe); + var n7 = ufb(vHe, "EFactory"); + var avd; + var q7 = ufb(vHe, EHe); + var t7 = ufb(vHe, "EPackage"); + var cvd; + var evd, fvd, gvd, hvd, ivd, jvd, kvd, lvd, mvd, nvd, ovd; + var I4 = ufb(wHe, FHe); + var J4 = ufb(wHe, GHe); + var K4 = ufb(wHe, HHe); + feb(93, 1, IHe); + _.th = function rvd() { + this.uh(); + return null; + }; + _.uh = function svd() { + return null; + }; + _.vh = function tvd() { + return this.uh(), false; + }; + _.wh = function uvd() { + return false; + }; + _.xh = function vvd(a) { + qvd(this, a); + }; + sfb(JHe, "BasicNotifierImpl", 93); + feb(99, 93, RHe); + _.Yh = function Dwd() { + return Mvd(this); + }; + _.yh = function bwd(a, b) { + return a; + }; + _.zh = function cwd() { + throw Adb(new jib()); + }; + _.Ah = function dwd(a) { + var b; + return b = Z5d(RD(vYd(this.Dh(), this.Fh()), 19)), this.Ph().Th(this, b.n, b.f, a); + }; + _.Bh = function ewd(a, b) { + throw Adb(new jib()); + }; + _.Ch = function fwd(a, b, c) { + return xvd(this, a, b, c); + }; + _.Dh = function gwd() { + var a; + if (this.zh()) { + a = this.zh().Nk(); + if (a) { + return a; + } + } + return this.ii(); + }; + _.Eh = function hwd() { + return yvd(this); + }; + _.Fh = function iwd() { + throw Adb(new jib()); + }; + _.Gh = function kwd() { + var a, b; + b = this.$h().Ok(); + !b && this.zh().Tk(b = (N2d(), a = P$d(rYd(this.Dh())), a == null ? M2d : new Q2d(this, a))); + return b; + }; + _.Hh = function mwd(a, b) { + return a; + }; + _.Ih = function nwd(a) { + var b; + b = a.pk(); + return !b ? BYd(this.Dh(), a) : a.Lj(); + }; + _.Jh = function owd() { + var a; + a = this.zh(); + return !a ? null : a.Qk(); + }; + _.Kh = function pwd() { + return !this.zh() ? null : this.zh().Nk(); + }; + _.Lh = function qwd(a, b, c) { + return Dvd(this, a, b, c); + }; + _.Mh = function rwd(a) { + return Evd(this, a); + }; + _.Nh = function swd(a, b) { + return Fvd(this, a, b); + }; + _.Oh = function twd() { + var a; + a = this.zh(); + return !!a && a.Rk(); + }; + _.Ph = function uwd() { + throw Adb(new jib()); + }; + _.Qh = function vwd() { + return Hvd(this); + }; + _.Rh = function wwd(a, b, c, d) { + return Ivd(this, a, b, d); + }; + _.Sh = function xwd(a, b, c) { + var d; + return d = RD(vYd(this.Dh(), b), 69), d.wk().zk(this, this.hi(), b - this.ji(), a, c); + }; + _.Th = function ywd(a, b, c, d) { + return Jvd(this, a, b, d); + }; + _.Uh = function zwd(a, b, c) { + var d; + return d = RD(vYd(this.Dh(), b), 69), d.wk().Ak(this, this.hi(), b - this.ji(), a, c); + }; + _.Vh = function Awd() { + return !!this.zh() && !!this.zh().Pk(); + }; + _.Wh = function Bwd(a) { + return Kvd(this, a); + }; + _.Xh = function Cwd(a) { + return Lvd(this, a); + }; + _.Zh = function Ewd(a) { + return Pvd(this, a); + }; + _.$h = function Fwd() { + throw Adb(new jib()); + }; + _._h = function Gwd() { + return !this.zh() ? null : this.zh().Pk(); + }; + _.ai = function Hwd() { + return Hvd(this); + }; + _.bi = function Iwd(a, b) { + Wvd(this, a, b); + }; + _.ci = function Jwd(a) { + this.$h().Sk(a); + }; + _.di = function Kwd(a) { + this.$h().Vk(a); + }; + _.ei = function Lwd(a) { + this.$h().Uk(a); + }; + _.fi = function Mwd(a, b) { + var c, d, e, f; + f = this.Jh(); + if (!!f && !!a) { + b = rLd(f.El(), this, b); + f.Il(this); + } + d = this.Ph(); + if (d) { + if ((jwd(this, this.Ph(), this.Fh()).Bb & txe) != 0) { + e = d.Qh(); + !!e && (!a ? e.Hl(this) : !f && e.Il(this)); + } else { + b = (c = this.Fh(), c >= 0 ? this.Ah(b) : this.Ph().Th(this, -1 - c, null, b)); + b = this.Ch(null, -1, b); + } + } + this.di(a); + return b; + }; + _.gi = function Nwd(a) { + var b, c, d, e, f, g, h, i; + c = this.Dh(); + f = BYd(c, a); + b = this.ji(); + if (f >= b) { + return RD(a, 69).wk().Dk(this, this.hi(), f - b); + } else if (f <= -1) { + g = Eee((lke(), jke), c, a); + if (g) { + nke(); + RD(g, 69).xk() || (g = zfe(Qee(jke, g))); + e = (d = this.Ih(g), RD(d >= 0 ? this.Lh(d, true, true) : Qvd(this, g, true), 160)); + i = g.Ik(); + if (i > 1 || i == -1) { + return RD(RD(e, 220).Sl(a, false), 79); + } + } else { + throw Adb(new agb(KHe + a.xe() + NHe)); + } + } else if (a.Jk()) { + return d = this.Ih(a), RD(d >= 0 ? this.Lh(d, false, true) : Qvd(this, a, false), 79); + } + h = new NTd(this, a); + return h; + }; + _.hi = function Owd() { + return Yvd(this); + }; + _.ii = function Pwd() { + return (lTd(), kTd).S; + }; + _.ji = function Qwd() { + return AYd(this.ii()); + }; + _.ki = function Rwd(a) { + $vd(this, a); + }; + _.Ib = function Swd() { + return awd(this); + }; + sfb(SHe, "BasicEObjectImpl", 99); + var ZSd; + feb(119, 99, { 110: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1 }); + _.li = function _wd(a) { + var b; + b = Vwd(this); + return b[a]; + }; + _.mi = function axd(a, b) { + var c; + c = Vwd(this); + bD(c, a, b); + }; + _.ni = function bxd(a) { + var b; + b = Vwd(this); + bD(b, a, null); + }; + _.th = function cxd() { + return RD(Ywd(this, 4), 129); + }; + _.uh = function dxd() { + throw Adb(new jib()); + }; + _.vh = function exd() { + return (this.Db & 4) != 0; + }; + _.zh = function fxd() { + throw Adb(new jib()); + }; + _.oi = function gxd(a) { + $wd(this, 2, a); + }; + _.Bh = function hxd(a, b) { + this.Db = b << 16 | this.Db & 255; + this.oi(a); + }; + _.Dh = function ixd() { + return Uwd(this); + }; + _.Fh = function jxd() { + return this.Db >> 16; + }; + _.Gh = function kxd() { + var a, b; + return N2d(), b = P$d(rYd((a = RD(Ywd(this, 16), 29), !a ? this.ii() : a))), b == null ? M2d : new Q2d(this, b); + }; + _.wh = function lxd() { + return (this.Db & 1) == 0; + }; + _.Jh = function mxd() { + return RD(Ywd(this, 128), 2034); + }; + _.Kh = function nxd() { + return RD(Ywd(this, 16), 29); + }; + _.Oh = function oxd() { + return (this.Db & 32) != 0; + }; + _.Ph = function pxd() { + return RD(Ywd(this, 2), 54); + }; + _.Vh = function qxd() { + return (this.Db & 64) != 0; + }; + _.$h = function rxd() { + throw Adb(new jib()); + }; + _._h = function sxd() { + return RD(Ywd(this, 64), 288); + }; + _.ci = function txd(a) { + $wd(this, 16, a); + }; + _.di = function uxd(a) { + $wd(this, 128, a); + }; + _.ei = function vxd(a) { + $wd(this, 64, a); + }; + _.hi = function wxd() { + return Wwd(this); + }; + _.Db = 0; + sfb(SHe, "MinimalEObjectImpl", 119); + feb(120, 119, { 110: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }); + _.oi = function xxd(a) { + this.Cb = a; + }; + _.Ph = function yxd() { + return this.Cb; + }; + sfb(SHe, "MinimalEObjectImpl/Container", 120); + feb(2083, 120, { 110: 1, 342: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }); + _.Lh = function Jxd(a, b, c) { + return Axd(this, a, b, c); + }; + _.Uh = function Kxd(a, b, c) { + return Bxd(this, a, b, c); + }; + _.Wh = function Lxd(a) { + return Cxd(this, a); + }; + _.bi = function Mxd(a, b) { + Dxd(this, a, b); + }; + _.ii = function Nxd() { + return pvd(), ovd; + }; + _.ki = function Oxd(a) { + Exd(this, a); + }; + _.nf = function Pxd() { + return Fxd(this); + }; + _.gh = function Qxd() { + return !this.o && (this.o = new DVd((pvd(), mvd), X4, this, 0)), this.o; + }; + _.of = function Rxd(a) { + return Gxd(this, a); + }; + _.pf = function Sxd(a) { + return Hxd(this, a); + }; + _.qf = function Txd(a, b) { + return Ixd(this, a, b); + }; + sfb(THe, "EMapPropertyHolderImpl", 2083); + feb(572, 120, { 110: 1, 377: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }, Xxd); + _.Lh = function Yxd(a, b, c) { + switch (a) { + case 0: + return this.a; + case 1: + return this.b; + } + return Dvd(this, a, b, c); + }; + _.Wh = function Zxd(a) { + switch (a) { + case 0: + return this.a != 0; + case 1: + return this.b != 0; + } + return Kvd(this, a); + }; + _.bi = function $xd(a, b) { + switch (a) { + case 0: + Vxd(this, Kfb(UD(b))); + return; + case 1: + Wxd(this, Kfb(UD(b))); + return; + } + Wvd(this, a, b); + }; + _.ii = function _xd() { + return pvd(), evd; + }; + _.ki = function ayd(a) { + switch (a) { + case 0: + Vxd(this, 0); + return; + case 1: + Wxd(this, 0); + return; + } + $vd(this, a); + }; + _.Ib = function byd() { + var a; + if ((this.Db & 64) != 0) + return awd(this); + a = new Shb(awd(this)); + a.a += " (x: "; + Khb(a, this.a); + a.a += ", y: "; + Khb(a, this.b); + a.a += ")"; + return a.a; + }; + _.a = 0; + _.b = 0; + sfb(THe, "ElkBendPointImpl", 572); + feb(739, 2083, { 110: 1, 342: 1, 167: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }); + _.Lh = function lyd(a, b, c) { + return cyd(this, a, b, c); + }; + _.Sh = function myd(a, b, c) { + return dyd(this, a, b, c); + }; + _.Uh = function nyd(a, b, c) { + return eyd(this, a, b, c); + }; + _.Wh = function oyd(a) { + return fyd(this, a); + }; + _.bi = function pyd(a, b) { + gyd(this, a, b); + }; + _.ii = function qyd() { + return pvd(), ivd; + }; + _.ki = function ryd(a) { + hyd(this, a); + }; + _.jh = function syd() { + return this.k; + }; + _.kh = function tyd() { + return iyd(this); + }; + _.Ib = function uyd() { + return kyd(this); + }; + _.k = null; + sfb(THe, "ElkGraphElementImpl", 739); + feb(740, 739, { 110: 1, 342: 1, 167: 1, 422: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }); + _.Lh = function Gyd(a, b, c) { + return vyd(this, a, b, c); + }; + _.Wh = function Hyd(a) { + return wyd(this, a); + }; + _.bi = function Iyd(a, b) { + xyd(this, a, b); + }; + _.ii = function Jyd() { + return pvd(), nvd; + }; + _.ki = function Kyd(a) { + yyd(this, a); + }; + _.lh = function Lyd() { + return this.f; + }; + _.mh = function Myd() { + return this.g; + }; + _.nh = function Nyd() { + return this.i; + }; + _.oh = function Oyd() { + return this.j; + }; + _.ph = function Pyd(a, b) { + zyd(this, a, b); + }; + _.qh = function Qyd(a, b) { + Byd(this, a, b); + }; + _.rh = function Ryd(a) { + Dyd(this, a); + }; + _.sh = function Syd(a) { + Eyd(this, a); + }; + _.Ib = function Tyd() { + return Fyd(this); + }; + _.f = 0; + _.g = 0; + _.i = 0; + _.j = 0; + sfb(THe, "ElkShapeImpl", 740); + feb(741, 740, { 110: 1, 342: 1, 84: 1, 167: 1, 422: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }); + _.Lh = function _yd(a, b, c) { + return Uyd(this, a, b, c); + }; + _.Sh = function azd(a, b, c) { + return Vyd(this, a, b, c); + }; + _.Uh = function bzd(a, b, c) { + return Wyd(this, a, b, c); + }; + _.Wh = function czd(a) { + return Xyd(this, a); + }; + _.bi = function dzd(a, b) { + Yyd(this, a, b); + }; + _.ii = function ezd() { + return pvd(), fvd; + }; + _.ki = function fzd(a) { + Zyd(this, a); + }; + _.hh = function gzd() { + return !this.d && (this.d = new Yie(G4, this, 8, 5)), this.d; + }; + _.ih = function hzd() { + return !this.e && (this.e = new Yie(G4, this, 7, 4)), this.e; + }; + sfb(THe, "ElkConnectableShapeImpl", 741); + feb(326, 739, { 110: 1, 342: 1, 74: 1, 167: 1, 326: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }, rzd); + _.Ah = function szd(a) { + return jzd(this, a); + }; + _.Lh = function tzd(a, b, c) { + switch (a) { + case 3: + return kzd(this); + case 4: + return !this.b && (this.b = new Yie(E4, this, 4, 7)), this.b; + case 5: + return !this.c && (this.c = new Yie(E4, this, 5, 8)), this.c; + case 6: + return !this.a && (this.a = new C5d(F4, this, 6, 6)), this.a; + case 7: + return Geb(), !this.b && (this.b = new Yie(E4, this, 4, 7)), this.b.i <= 1 && (!this.c && (this.c = new Yie(E4, this, 5, 8)), this.c.i <= 1) ? false : true; + case 8: + return Geb(), nzd(this) ? true : false; + case 9: + return Geb(), ozd(this) ? true : false; + case 10: + return Geb(), !this.b && (this.b = new Yie(E4, this, 4, 7)), this.b.i != 0 && (!this.c && (this.c = new Yie(E4, this, 5, 8)), this.c.i != 0) ? true : false; + } + return cyd(this, a, b, c); + }; + _.Sh = function uzd(a, b, c) { + var d; + switch (b) { + case 3: + !!this.Cb && (c = (d = this.Db >> 16, d >= 0 ? jzd(this, c) : this.Cb.Th(this, -1 - d, null, c))); + return izd(this, RD(a, 27), c); + case 4: + return !this.b && (this.b = new Yie(E4, this, 4, 7)), qLd(this.b, a, c); + case 5: + return !this.c && (this.c = new Yie(E4, this, 5, 8)), qLd(this.c, a, c); + case 6: + return !this.a && (this.a = new C5d(F4, this, 6, 6)), qLd(this.a, a, c); + } + return dyd(this, a, b, c); + }; + _.Uh = function vzd(a, b, c) { + switch (b) { + case 3: + return izd(this, null, c); + case 4: + return !this.b && (this.b = new Yie(E4, this, 4, 7)), rLd(this.b, a, c); + case 5: + return !this.c && (this.c = new Yie(E4, this, 5, 8)), rLd(this.c, a, c); + case 6: + return !this.a && (this.a = new C5d(F4, this, 6, 6)), rLd(this.a, a, c); + } + return eyd(this, a, b, c); + }; + _.Wh = function wzd(a) { + switch (a) { + case 3: + return !!kzd(this); + case 4: + return !!this.b && this.b.i != 0; + case 5: + return !!this.c && this.c.i != 0; + case 6: + return !!this.a && this.a.i != 0; + case 7: + return !this.b && (this.b = new Yie(E4, this, 4, 7)), !(this.b.i <= 1 && (!this.c && (this.c = new Yie(E4, this, 5, 8)), this.c.i <= 1)); + case 8: + return nzd(this); + case 9: + return ozd(this); + case 10: + return !this.b && (this.b = new Yie(E4, this, 4, 7)), this.b.i != 0 && (!this.c && (this.c = new Yie(E4, this, 5, 8)), this.c.i != 0); + } + return fyd(this, a); + }; + _.bi = function xzd(a, b) { + switch (a) { + case 3: + pzd(this, RD(b, 27)); + return; + case 4: + !this.b && (this.b = new Yie(E4, this, 4, 7)); + sLd(this.b); + !this.b && (this.b = new Yie(E4, this, 4, 7)); + YGd(this.b, RD(b, 16)); + return; + case 5: + !this.c && (this.c = new Yie(E4, this, 5, 8)); + sLd(this.c); + !this.c && (this.c = new Yie(E4, this, 5, 8)); + YGd(this.c, RD(b, 16)); + return; + case 6: + !this.a && (this.a = new C5d(F4, this, 6, 6)); + sLd(this.a); + !this.a && (this.a = new C5d(F4, this, 6, 6)); + YGd(this.a, RD(b, 16)); + return; + } + gyd(this, a, b); + }; + _.ii = function yzd() { + return pvd(), gvd; + }; + _.ki = function zzd(a) { + switch (a) { + case 3: + pzd(this, null); + return; + case 4: + !this.b && (this.b = new Yie(E4, this, 4, 7)); + sLd(this.b); + return; + case 5: + !this.c && (this.c = new Yie(E4, this, 5, 8)); + sLd(this.c); + return; + case 6: + !this.a && (this.a = new C5d(F4, this, 6, 6)); + sLd(this.a); + return; + } + hyd(this, a); + }; + _.Ib = function Azd() { + return qzd(this); + }; + sfb(THe, "ElkEdgeImpl", 326); + feb(452, 2083, { 110: 1, 342: 1, 166: 1, 452: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }, Rzd); + _.Ah = function Szd(a) { + return Czd(this, a); + }; + _.Lh = function Tzd(a, b, c) { + switch (a) { + case 1: + return this.j; + case 2: + return this.k; + case 3: + return this.b; + case 4: + return this.c; + case 5: + return !this.a && (this.a = new XZd(D4, this, 5)), this.a; + case 6: + return Fzd(this); + case 7: + if (b) + return Ezd(this); + return this.i; + case 8: + if (b) + return Dzd(this); + return this.f; + case 9: + return !this.g && (this.g = new Yie(F4, this, 9, 10)), this.g; + case 10: + return !this.e && (this.e = new Yie(F4, this, 10, 9)), this.e; + case 11: + return this.d; + } + return Axd(this, a, b, c); + }; + _.Sh = function Uzd(a, b, c) { + var d, e, f; + switch (b) { + case 6: + !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? Czd(this, c) : this.Cb.Th(this, -1 - e, null, c))); + return Bzd(this, RD(a, 74), c); + case 9: + return !this.g && (this.g = new Yie(F4, this, 9, 10)), qLd(this.g, a, c); + case 10: + return !this.e && (this.e = new Yie(F4, this, 10, 9)), qLd(this.e, a, c); + } + return f = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (pvd(), hvd) : d), b), 69), f.wk().zk(this, Wwd(this), b - AYd((pvd(), hvd)), a, c); + }; + _.Uh = function Vzd(a, b, c) { + switch (b) { + case 5: + return !this.a && (this.a = new XZd(D4, this, 5)), rLd(this.a, a, c); + case 6: + return Bzd(this, null, c); + case 9: + return !this.g && (this.g = new Yie(F4, this, 9, 10)), rLd(this.g, a, c); + case 10: + return !this.e && (this.e = new Yie(F4, this, 10, 9)), rLd(this.e, a, c); + } + return Bxd(this, a, b, c); + }; + _.Wh = function Wzd(a) { + switch (a) { + case 1: + return this.j != 0; + case 2: + return this.k != 0; + case 3: + return this.b != 0; + case 4: + return this.c != 0; + case 5: + return !!this.a && this.a.i != 0; + case 6: + return !!Fzd(this); + case 7: + return !!this.i; + case 8: + return !!this.f; + case 9: + return !!this.g && this.g.i != 0; + case 10: + return !!this.e && this.e.i != 0; + case 11: + return this.d != null; + } + return Cxd(this, a); + }; + _.bi = function Xzd(a, b) { + switch (a) { + case 1: + Ozd(this, Kfb(UD(b))); + return; + case 2: + Pzd(this, Kfb(UD(b))); + return; + case 3: + Hzd(this, Kfb(UD(b))); + return; + case 4: + Izd(this, Kfb(UD(b))); + return; + case 5: + !this.a && (this.a = new XZd(D4, this, 5)); + sLd(this.a); + !this.a && (this.a = new XZd(D4, this, 5)); + YGd(this.a, RD(b, 16)); + return; + case 6: + Mzd(this, RD(b, 74)); + return; + case 7: + Lzd(this, RD(b, 84)); + return; + case 8: + Kzd(this, RD(b, 84)); + return; + case 9: + !this.g && (this.g = new Yie(F4, this, 9, 10)); + sLd(this.g); + !this.g && (this.g = new Yie(F4, this, 9, 10)); + YGd(this.g, RD(b, 16)); + return; + case 10: + !this.e && (this.e = new Yie(F4, this, 10, 9)); + sLd(this.e); + !this.e && (this.e = new Yie(F4, this, 10, 9)); + YGd(this.e, RD(b, 16)); + return; + case 11: + Jzd(this, WD(b)); + return; + } + Dxd(this, a, b); + }; + _.ii = function Yzd() { + return pvd(), hvd; + }; + _.ki = function Zzd(a) { + switch (a) { + case 1: + Ozd(this, 0); + return; + case 2: + Pzd(this, 0); + return; + case 3: + Hzd(this, 0); + return; + case 4: + Izd(this, 0); + return; + case 5: + !this.a && (this.a = new XZd(D4, this, 5)); + sLd(this.a); + return; + case 6: + Mzd(this, null); + return; + case 7: + Lzd(this, null); + return; + case 8: + Kzd(this, null); + return; + case 9: + !this.g && (this.g = new Yie(F4, this, 9, 10)); + sLd(this.g); + return; + case 10: + !this.e && (this.e = new Yie(F4, this, 10, 9)); + sLd(this.e); + return; + case 11: + Jzd(this, null); + return; + } + Exd(this, a); + }; + _.Ib = function $zd() { + return Qzd(this); + }; + _.b = 0; + _.c = 0; + _.d = null; + _.j = 0; + _.k = 0; + sfb(THe, "ElkEdgeSectionImpl", 452); + feb(158, 120, { 110: 1, 94: 1, 93: 1, 155: 1, 58: 1, 114: 1, 54: 1, 99: 1, 158: 1, 119: 1, 120: 1 }); + _.Lh = function cAd(a, b, c) { + var d; + if (a == 0) { + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + } + return zvd(this, a - AYd(this.ii()), vYd((d = RD(Ywd(this, 16), 29), !d ? this.ii() : d), a), b, c); + }; + _.Sh = function dAd(a, b, c) { + var d, e; + if (b == 0) { + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), qLd(this.Ab, a, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? this.ii() : d), b), 69), e.wk().zk(this, Wwd(this), b - AYd(this.ii()), a, c); + }; + _.Uh = function eAd(a, b, c) { + var d, e; + if (b == 0) { + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), rLd(this.Ab, a, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? this.ii() : d), b), 69), e.wk().Ak(this, Wwd(this), b - AYd(this.ii()), a, c); + }; + _.Wh = function fAd(a) { + var b; + if (a == 0) { + return !!this.Ab && this.Ab.i != 0; + } + return Avd(this, a - AYd(this.ii()), vYd((b = RD(Ywd(this, 16), 29), !b ? this.ii() : b), a)); + }; + _.Zh = function gAd(a) { + return _zd(this, a); + }; + _.bi = function hAd(a, b) { + var c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + } + Bvd(this, a - AYd(this.ii()), vYd((c = RD(Ywd(this, 16), 29), !c ? this.ii() : c), a), b); + }; + _.di = function iAd(a) { + $wd(this, 128, a); + }; + _.ii = function jAd() { + return JTd(), xTd; + }; + _.ki = function kAd(a) { + var b; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + } + Cvd(this, a - AYd(this.ii()), vYd((b = RD(Ywd(this, 16), 29), !b ? this.ii() : b), a)); + }; + _.pi = function lAd() { + this.Bb |= 1; + }; + _.qi = function mAd(a) { + return bAd(this, a); + }; + _.Bb = 0; + sfb(SHe, "EModelElementImpl", 158); + feb(720, 158, { 110: 1, 94: 1, 93: 1, 480: 1, 155: 1, 58: 1, 114: 1, 54: 1, 99: 1, 158: 1, 119: 1, 120: 1 }, yAd); + _.ri = function zAd(a, b) { + return tAd(this, a, b); + }; + _.si = function AAd(a) { + var b, c, d, e, f; + if (this.a != BXd(a) || (a.Bb & 256) != 0) { + throw Adb(new agb(ZHe + a.zb + WHe)); + } + for (d = zYd(a); tYd(d.a).i != 0; ) { + c = RD(N_d(d, 0, (b = RD(QHd(tYd(d.a), 0), 89), f = b.c, ZD(f, 90) ? RD(f, 29) : (JTd(), zTd))), 29); + if (DXd(c)) { + e = BXd(c).wi().si(c); + RD(e, 54).ci(a); + return e; + } + d = zYd(c); + } + return (a.D != null ? a.D : a.B) == "java.util.Map$Entry" ? new LUd(a) : new zUd(a); + }; + _.ti = function BAd(a, b) { + return uAd(this, a, b); + }; + _.Lh = function CAd(a, b, c) { + var d; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.a; + } + return zvd(this, a - AYd((JTd(), uTd)), vYd((d = RD(Ywd(this, 16), 29), !d ? uTd : d), a), b, c); + }; + _.Sh = function DAd(a, b, c) { + var d, e; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), qLd(this.Ab, a, c); + case 1: + !!this.a && (c = RD(this.a, 54).Th(this, 4, t7, c)); + return rAd(this, RD(a, 241), c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), uTd) : d), b), 69), e.wk().zk(this, Wwd(this), b - AYd((JTd(), uTd)), a, c); + }; + _.Uh = function EAd(a, b, c) { + var d, e; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), rLd(this.Ab, a, c); + case 1: + return rAd(this, null, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), uTd) : d), b), 69), e.wk().Ak(this, Wwd(this), b - AYd((JTd(), uTd)), a, c); + }; + _.Wh = function FAd(a) { + var b; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return !!this.a; + } + return Avd(this, a - AYd((JTd(), uTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? uTd : b), a)); + }; + _.bi = function GAd(a, b) { + var c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + wAd(this, RD(b, 241)); + return; + } + Bvd(this, a - AYd((JTd(), uTd)), vYd((c = RD(Ywd(this, 16), 29), !c ? uTd : c), a), b); + }; + _.ii = function HAd() { + return JTd(), uTd; + }; + _.ki = function IAd(a) { + var b; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + wAd(this, null); + return; + } + Cvd(this, a - AYd((JTd(), uTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? uTd : b), a)); + }; + var nAd, oAd, pAd; + sfb(SHe, "EFactoryImpl", 720); + feb(1037, 720, { 110: 1, 2113: 1, 94: 1, 93: 1, 480: 1, 155: 1, 58: 1, 114: 1, 54: 1, 99: 1, 158: 1, 119: 1, 120: 1 }, KAd); + _.ri = function LAd(a, b) { + switch (a.hk()) { + case 12: + return RD(b, 149).Pg(); + case 13: + return jeb(b); + default: + throw Adb(new agb(VHe + a.xe() + WHe)); + } + }; + _.si = function MAd(a) { + var b, c, d, e, f, g, h, i; + switch (a.G == -1 && (a.G = (b = BXd(a), b ? fZd(b.vi(), a) : -1)), a.G) { + case 4: + return f = new hCd(), f; + case 6: + return g = new ACd(), g; + case 7: + return h = new PCd(), h; + case 8: + return d = new rzd(), d; + case 9: + return c = new Xxd(), c; + case 10: + return e = new Rzd(), e; + case 11: + return i = new _Cd(), i; + default: + throw Adb(new agb(ZHe + a.zb + WHe)); + } + }; + _.ti = function NAd(a, b) { + switch (a.hk()) { + case 13: + case 12: + return null; + default: + throw Adb(new agb(VHe + a.xe() + WHe)); + } + }; + sfb(THe, "ElkGraphFactoryImpl", 1037); + feb(448, 158, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 114: 1, 54: 1, 99: 1, 158: 1, 119: 1, 120: 1 }); + _.Gh = function RAd() { + var a, b; + b = (a = RD(Ywd(this, 16), 29), P$d(rYd(!a ? this.ii() : a))); + return b == null ? (N2d(), N2d(), M2d) : new e3d(this, b); + }; + _.Lh = function SAd(a, b, c) { + var d; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.xe(); + } + return zvd(this, a - AYd(this.ii()), vYd((d = RD(Ywd(this, 16), 29), !d ? this.ii() : d), a), b, c); + }; + _.Wh = function TAd(a) { + var b; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + } + return Avd(this, a - AYd(this.ii()), vYd((b = RD(Ywd(this, 16), 29), !b ? this.ii() : b), a)); + }; + _.bi = function UAd(a, b) { + var c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + this.ui(WD(b)); + return; + } + Bvd(this, a - AYd(this.ii()), vYd((c = RD(Ywd(this, 16), 29), !c ? this.ii() : c), a), b); + }; + _.ii = function VAd() { + return JTd(), yTd; + }; + _.ki = function WAd(a) { + var b; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + this.ui(null); + return; + } + Cvd(this, a - AYd(this.ii()), vYd((b = RD(Ywd(this, 16), 29), !b ? this.ii() : b), a)); + }; + _.xe = function XAd() { + return this.zb; + }; + _.ui = function YAd(a) { + PAd(this, a); + }; + _.Ib = function ZAd() { + return QAd(this); + }; + _.zb = null; + sfb(SHe, "ENamedElementImpl", 448); + feb(184, 448, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 241: 1, 114: 1, 54: 1, 99: 1, 158: 1, 184: 1, 119: 1, 120: 1, 690: 1 }, EBd); + _.Ah = function GBd(a) { + return qBd(this, a); + }; + _.Lh = function HBd(a, b, c) { + var d; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return this.yb; + case 3: + return this.xb; + case 4: + return this.sb; + case 5: + return !this.rb && (this.rb = new J5d(this, i7, this)), this.rb; + case 6: + return !this.vb && (this.vb = new G5d(t7, this, 6, 7)), this.vb; + case 7: + if (b) + return this.Db >> 16 == 7 ? RD(this.Cb, 241) : null; + return gBd(this); + } + return zvd(this, a - AYd((JTd(), CTd)), vYd((d = RD(Ywd(this, 16), 29), !d ? CTd : d), a), b, c); + }; + _.Sh = function IBd(a, b, c) { + var d, e, f; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), qLd(this.Ab, a, c); + case 4: + !!this.sb && (c = RD(this.sb, 54).Th(this, 1, n7, c)); + return hBd(this, RD(a, 480), c); + case 5: + return !this.rb && (this.rb = new J5d(this, i7, this)), qLd(this.rb, a, c); + case 6: + return !this.vb && (this.vb = new G5d(t7, this, 6, 7)), qLd(this.vb, a, c); + case 7: + !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? qBd(this, c) : this.Cb.Th(this, -1 - e, null, c))); + return xvd(this, a, 7, c); + } + return f = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), CTd) : d), b), 69), f.wk().zk(this, Wwd(this), b - AYd((JTd(), CTd)), a, c); + }; + _.Uh = function JBd(a, b, c) { + var d, e; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), rLd(this.Ab, a, c); + case 4: + return hBd(this, null, c); + case 5: + return !this.rb && (this.rb = new J5d(this, i7, this)), rLd(this.rb, a, c); + case 6: + return !this.vb && (this.vb = new G5d(t7, this, 6, 7)), rLd(this.vb, a, c); + case 7: + return xvd(this, null, 7, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), CTd) : d), b), 69), e.wk().Ak(this, Wwd(this), b - AYd((JTd(), CTd)), a, c); + }; + _.Wh = function KBd(a) { + var b; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return this.yb != null; + case 3: + return this.xb != null; + case 4: + return !!this.sb; + case 5: + return !!this.rb && this.rb.i != 0; + case 6: + return !!this.vb && this.vb.i != 0; + case 7: + return !!gBd(this); + } + return Avd(this, a - AYd((JTd(), CTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? CTd : b), a)); + }; + _.Zh = function LBd(a) { + var b; + b = sBd(this, a); + return b ? b : _zd(this, a); + }; + _.bi = function MBd(a, b) { + var c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + PAd(this, WD(b)); + return; + case 2: + DBd(this, WD(b)); + return; + case 3: + CBd(this, WD(b)); + return; + case 4: + BBd(this, RD(b, 480)); + return; + case 5: + !this.rb && (this.rb = new J5d(this, i7, this)); + sLd(this.rb); + !this.rb && (this.rb = new J5d(this, i7, this)); + YGd(this.rb, RD(b, 16)); + return; + case 6: + !this.vb && (this.vb = new G5d(t7, this, 6, 7)); + sLd(this.vb); + !this.vb && (this.vb = new G5d(t7, this, 6, 7)); + YGd(this.vb, RD(b, 16)); + return; + } + Bvd(this, a - AYd((JTd(), CTd)), vYd((c = RD(Ywd(this, 16), 29), !c ? CTd : c), a), b); + }; + _.ei = function NBd(a) { + var b, c; + if (!!a && !!this.rb) { + for (c = new dMd(this.rb); c.e != c.i.gc(); ) { + b = bMd(c); + ZD(b, 364) && (RD(b, 364).w = null); + } + } + $wd(this, 64, a); + }; + _.ii = function OBd() { + return JTd(), CTd; + }; + _.ki = function PBd(a) { + var b; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + PAd(this, null); + return; + case 2: + DBd(this, null); + return; + case 3: + CBd(this, null); + return; + case 4: + BBd(this, null); + return; + case 5: + !this.rb && (this.rb = new J5d(this, i7, this)); + sLd(this.rb); + return; + case 6: + !this.vb && (this.vb = new G5d(t7, this, 6, 7)); + sLd(this.vb); + return; + } + Cvd(this, a - AYd((JTd(), CTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? CTd : b), a)); + }; + _.pi = function QBd() { + rBd(this); + }; + _.vi = function RBd() { + return !this.rb && (this.rb = new J5d(this, i7, this)), this.rb; + }; + _.wi = function SBd() { + return this.sb; + }; + _.xi = function TBd() { + return this.ub; + }; + _.yi = function UBd() { + return this.xb; + }; + _.zi = function VBd() { + return this.yb; + }; + _.Ai = function WBd(a) { + this.ub = a; + }; + _.Ib = function XBd() { + var a; + if ((this.Db & 64) != 0) + return QAd(this); + a = new Shb(QAd(this)); + a.a += " (nsURI: "; + Nhb(a, this.yb); + a.a += ", nsPrefix: "; + Nhb(a, this.xb); + a.a += ")"; + return a.a; + }; + _.xb = null; + _.yb = null; + sfb(SHe, "EPackageImpl", 184); + feb(569, 184, { 110: 1, 2115: 1, 569: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 241: 1, 114: 1, 54: 1, 99: 1, 158: 1, 184: 1, 119: 1, 120: 1, 690: 1 }, _Bd); + _.q = false; + _.r = false; + var YBd = false; + sfb(THe, "ElkGraphPackageImpl", 569); + feb(366, 740, { 110: 1, 342: 1, 167: 1, 135: 1, 422: 1, 366: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }, hCd); + _.Ah = function iCd(a) { + return cCd(this, a); + }; + _.Lh = function jCd(a, b, c) { + switch (a) { + case 7: + return dCd(this); + case 8: + return this.a; + } + return vyd(this, a, b, c); + }; + _.Sh = function kCd(a, b, c) { + var d; + switch (b) { + case 7: + !!this.Cb && (c = (d = this.Db >> 16, d >= 0 ? cCd(this, c) : this.Cb.Th(this, -1 - d, null, c))); + return bCd(this, RD(a, 167), c); + } + return dyd(this, a, b, c); + }; + _.Uh = function lCd(a, b, c) { + if (b == 7) { + return bCd(this, null, c); + } + return eyd(this, a, b, c); + }; + _.Wh = function mCd(a) { + switch (a) { + case 7: + return !!dCd(this); + case 8: + return !lhb("", this.a); + } + return wyd(this, a); + }; + _.bi = function nCd(a, b) { + switch (a) { + case 7: + eCd(this, RD(b, 167)); + return; + case 8: + fCd(this, WD(b)); + return; + } + xyd(this, a, b); + }; + _.ii = function oCd() { + return pvd(), jvd; + }; + _.ki = function pCd(a) { + switch (a) { + case 7: + eCd(this, null); + return; + case 8: + fCd(this, ""); + return; + } + yyd(this, a); + }; + _.Ib = function qCd() { + return gCd(this); + }; + _.a = ""; + sfb(THe, "ElkLabelImpl", 366); + feb(207, 741, { 110: 1, 342: 1, 84: 1, 167: 1, 27: 1, 422: 1, 207: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }, ACd); + _.Ah = function BCd(a) { + return sCd(this, a); + }; + _.Lh = function CCd(a, b, c) { + switch (a) { + case 9: + return !this.c && (this.c = new C5d(K4, this, 9, 9)), this.c; + case 10: + return !this.a && (this.a = new C5d(J4, this, 10, 11)), this.a; + case 11: + return vCd(this); + case 12: + return !this.b && (this.b = new C5d(G4, this, 12, 3)), this.b; + case 13: + return Geb(), !this.a && (this.a = new C5d(J4, this, 10, 11)), this.a.i > 0 ? true : false; + } + return Uyd(this, a, b, c); + }; + _.Sh = function DCd(a, b, c) { + var d; + switch (b) { + case 9: + return !this.c && (this.c = new C5d(K4, this, 9, 9)), qLd(this.c, a, c); + case 10: + return !this.a && (this.a = new C5d(J4, this, 10, 11)), qLd(this.a, a, c); + case 11: + !!this.Cb && (c = (d = this.Db >> 16, d >= 0 ? sCd(this, c) : this.Cb.Th(this, -1 - d, null, c))); + return rCd(this, RD(a, 27), c); + case 12: + return !this.b && (this.b = new C5d(G4, this, 12, 3)), qLd(this.b, a, c); + } + return Vyd(this, a, b, c); + }; + _.Uh = function ECd(a, b, c) { + switch (b) { + case 9: + return !this.c && (this.c = new C5d(K4, this, 9, 9)), rLd(this.c, a, c); + case 10: + return !this.a && (this.a = new C5d(J4, this, 10, 11)), rLd(this.a, a, c); + case 11: + return rCd(this, null, c); + case 12: + return !this.b && (this.b = new C5d(G4, this, 12, 3)), rLd(this.b, a, c); + } + return Wyd(this, a, b, c); + }; + _.Wh = function FCd(a) { + switch (a) { + case 9: + return !!this.c && this.c.i != 0; + case 10: + return !!this.a && this.a.i != 0; + case 11: + return !!vCd(this); + case 12: + return !!this.b && this.b.i != 0; + case 13: + return !this.a && (this.a = new C5d(J4, this, 10, 11)), this.a.i > 0; + } + return Xyd(this, a); + }; + _.bi = function GCd(a, b) { + switch (a) { + case 9: + !this.c && (this.c = new C5d(K4, this, 9, 9)); + sLd(this.c); + !this.c && (this.c = new C5d(K4, this, 9, 9)); + YGd(this.c, RD(b, 16)); + return; + case 10: + !this.a && (this.a = new C5d(J4, this, 10, 11)); + sLd(this.a); + !this.a && (this.a = new C5d(J4, this, 10, 11)); + YGd(this.a, RD(b, 16)); + return; + case 11: + yCd(this, RD(b, 27)); + return; + case 12: + !this.b && (this.b = new C5d(G4, this, 12, 3)); + sLd(this.b); + !this.b && (this.b = new C5d(G4, this, 12, 3)); + YGd(this.b, RD(b, 16)); + return; + } + Yyd(this, a, b); + }; + _.ii = function HCd() { + return pvd(), kvd; + }; + _.ki = function ICd(a) { + switch (a) { + case 9: + !this.c && (this.c = new C5d(K4, this, 9, 9)); + sLd(this.c); + return; + case 10: + !this.a && (this.a = new C5d(J4, this, 10, 11)); + sLd(this.a); + return; + case 11: + yCd(this, null); + return; + case 12: + !this.b && (this.b = new C5d(G4, this, 12, 3)); + sLd(this.b); + return; + } + Zyd(this, a); + }; + _.Ib = function JCd() { + return zCd(this); + }; + sfb(THe, "ElkNodeImpl", 207); + feb(193, 741, { 110: 1, 342: 1, 84: 1, 167: 1, 123: 1, 422: 1, 193: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }, PCd); + _.Ah = function QCd(a) { + return LCd(this, a); + }; + _.Lh = function RCd(a, b, c) { + if (a == 9) { + return MCd(this); + } + return Uyd(this, a, b, c); + }; + _.Sh = function SCd(a, b, c) { + var d; + switch (b) { + case 9: + !!this.Cb && (c = (d = this.Db >> 16, d >= 0 ? LCd(this, c) : this.Cb.Th(this, -1 - d, null, c))); + return KCd(this, RD(a, 27), c); + } + return Vyd(this, a, b, c); + }; + _.Uh = function TCd(a, b, c) { + if (b == 9) { + return KCd(this, null, c); + } + return Wyd(this, a, b, c); + }; + _.Wh = function UCd(a) { + if (a == 9) { + return !!MCd(this); + } + return Xyd(this, a); + }; + _.bi = function VCd(a, b) { + switch (a) { + case 9: + NCd(this, RD(b, 27)); + return; + } + Yyd(this, a, b); + }; + _.ii = function WCd() { + return pvd(), lvd; + }; + _.ki = function XCd(a) { + switch (a) { + case 9: + NCd(this, null); + return; + } + Zyd(this, a); + }; + _.Ib = function YCd() { + return OCd(this); + }; + sfb(THe, "ElkPortImpl", 193); + var O6 = ufb(sIe, "BasicEMap/Entry"); + feb(1122, 120, { 110: 1, 44: 1, 94: 1, 93: 1, 136: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }, _Cd); + _.Fb = function fDd(a) { + return this === a; + }; + _.ld = function hDd() { + return this.b; + }; + _.Hb = function jDd() { + return kFb(this); + }; + _.Di = function lDd(a) { + ZCd(this, RD(a, 149)); + }; + _.Lh = function aDd(a, b, c) { + switch (a) { + case 0: + return this.b; + case 1: + return this.c; + } + return Dvd(this, a, b, c); + }; + _.Wh = function bDd(a) { + switch (a) { + case 0: + return !!this.b; + case 1: + return this.c != null; + } + return Kvd(this, a); + }; + _.bi = function cDd(a, b) { + switch (a) { + case 0: + ZCd(this, RD(b, 149)); + return; + case 1: + $Cd(this, b); + return; + } + Wvd(this, a, b); + }; + _.ii = function dDd() { + return pvd(), mvd; + }; + _.ki = function eDd(a) { + switch (a) { + case 0: + ZCd(this, null); + return; + case 1: + $Cd(this, null); + return; + } + $vd(this, a); + }; + _.Bi = function gDd() { + var a; + if (this.a == -1) { + a = this.b; + this.a = !a ? 0 : tb(a); + } + return this.a; + }; + _.md = function iDd() { + return this.c; + }; + _.Ci = function kDd(a) { + this.a = a; + }; + _.nd = function mDd(a) { + var b; + b = this.c; + $Cd(this, a); + return b; + }; + _.Ib = function nDd() { + var a; + if ((this.Db & 64) != 0) + return awd(this); + a = new bib(); + Zhb(Zhb(Zhb(a, this.b ? this.b.Pg() : vve), SAe), Ghb(this.c)); + return a.a; + }; + _.a = -1; + _.c = null; + var X4 = sfb(THe, "ElkPropertyToValueMapEntryImpl", 1122); + feb(996, 1, {}, BDd); + sfb(vIe, "JsonAdapter", 996); + feb(216, 63, swe, CDd); + sfb(vIe, "JsonImportException", 216); + feb(868, 1, {}, IEd); + sfb(vIe, "JsonImporter", 868); + feb(903, 1, {}, JEd); + sfb(vIe, "JsonImporter/lambda$0$Type", 903); + feb(904, 1, {}, KEd); + sfb(vIe, "JsonImporter/lambda$1$Type", 904); + feb(912, 1, {}, LEd); + sfb(vIe, "JsonImporter/lambda$10$Type", 912); + feb(914, 1, {}, MEd); + sfb(vIe, "JsonImporter/lambda$11$Type", 914); + feb(915, 1, {}, NEd); + sfb(vIe, "JsonImporter/lambda$12$Type", 915); + feb(921, 1, {}, OEd); + sfb(vIe, "JsonImporter/lambda$13$Type", 921); + feb(920, 1, {}, PEd); + sfb(vIe, "JsonImporter/lambda$14$Type", 920); + feb(916, 1, {}, QEd); + sfb(vIe, "JsonImporter/lambda$15$Type", 916); + feb(917, 1, {}, REd); + sfb(vIe, "JsonImporter/lambda$16$Type", 917); + feb(918, 1, {}, SEd); + sfb(vIe, "JsonImporter/lambda$17$Type", 918); + feb(919, 1, {}, TEd); + sfb(vIe, "JsonImporter/lambda$18$Type", 919); + feb(924, 1, {}, UEd); + sfb(vIe, "JsonImporter/lambda$19$Type", 924); + feb(905, 1, {}, VEd); + sfb(vIe, "JsonImporter/lambda$2$Type", 905); + feb(922, 1, {}, WEd); + sfb(vIe, "JsonImporter/lambda$20$Type", 922); + feb(923, 1, {}, XEd); + sfb(vIe, "JsonImporter/lambda$21$Type", 923); + feb(927, 1, {}, YEd); + sfb(vIe, "JsonImporter/lambda$22$Type", 927); + feb(925, 1, {}, ZEd); + sfb(vIe, "JsonImporter/lambda$23$Type", 925); + feb(926, 1, {}, $Ed); + sfb(vIe, "JsonImporter/lambda$24$Type", 926); + feb(929, 1, {}, _Ed); + sfb(vIe, "JsonImporter/lambda$25$Type", 929); + feb(928, 1, {}, aFd); + sfb(vIe, "JsonImporter/lambda$26$Type", 928); + feb(930, 1, Qve, bFd); + _.Cd = function cFd(a) { + _Dd(this.b, this.a, WD(a)); + }; + sfb(vIe, "JsonImporter/lambda$27$Type", 930); + feb(931, 1, Qve, dFd); + _.Cd = function eFd(a) { + aEd(this.b, this.a, WD(a)); + }; + sfb(vIe, "JsonImporter/lambda$28$Type", 931); + feb(932, 1, {}, fFd); + sfb(vIe, "JsonImporter/lambda$29$Type", 932); + feb(908, 1, {}, gFd); + sfb(vIe, "JsonImporter/lambda$3$Type", 908); + feb(933, 1, {}, hFd); + sfb(vIe, "JsonImporter/lambda$30$Type", 933); + feb(934, 1, {}, iFd); + sfb(vIe, "JsonImporter/lambda$31$Type", 934); + feb(935, 1, {}, jFd); + sfb(vIe, "JsonImporter/lambda$32$Type", 935); + feb(936, 1, {}, kFd); + sfb(vIe, "JsonImporter/lambda$33$Type", 936); + feb(937, 1, {}, lFd); + sfb(vIe, "JsonImporter/lambda$34$Type", 937); + feb(870, 1, {}, nFd); + sfb(vIe, "JsonImporter/lambda$35$Type", 870); + feb(941, 1, {}, pFd); + sfb(vIe, "JsonImporter/lambda$36$Type", 941); + feb(938, 1, Qve, qFd); + _.Cd = function rFd(a) { + jEd(this.a, RD(a, 377)); + }; + sfb(vIe, "JsonImporter/lambda$37$Type", 938); + feb(939, 1, Qve, sFd); + _.Cd = function tFd(a) { + kEd(this.a, this.b, RD(a, 166)); + }; + sfb(vIe, "JsonImporter/lambda$38$Type", 939); + feb(940, 1, Qve, uFd); + _.Cd = function vFd(a) { + lEd(this.a, this.b, RD(a, 166)); + }; + sfb(vIe, "JsonImporter/lambda$39$Type", 940); + feb(906, 1, {}, wFd); + sfb(vIe, "JsonImporter/lambda$4$Type", 906); + feb(942, 1, Qve, xFd); + _.Cd = function yFd(a) { + mEd(this.a, RD(a, 8)); + }; + sfb(vIe, "JsonImporter/lambda$40$Type", 942); + feb(907, 1, {}, zFd); + sfb(vIe, "JsonImporter/lambda$5$Type", 907); + feb(911, 1, {}, AFd); + sfb(vIe, "JsonImporter/lambda$6$Type", 911); + feb(909, 1, {}, BFd); + sfb(vIe, "JsonImporter/lambda$7$Type", 909); + feb(910, 1, {}, CFd); + sfb(vIe, "JsonImporter/lambda$8$Type", 910); + feb(913, 1, {}, DFd); + sfb(vIe, "JsonImporter/lambda$9$Type", 913); + feb(961, 1, Qve, MFd); + _.Cd = function NFd(a) { + oDd(this.a, new OC(WD(a))); + }; + sfb(vIe, "JsonMetaDataConverter/lambda$0$Type", 961); + feb(962, 1, Qve, OFd); + _.Cd = function PFd(a) { + IFd(this.a, RD(a, 245)); + }; + sfb(vIe, "JsonMetaDataConverter/lambda$1$Type", 962); + feb(963, 1, Qve, QFd); + _.Cd = function RFd(a) { + JFd(this.a, RD(a, 143)); + }; + sfb(vIe, "JsonMetaDataConverter/lambda$2$Type", 963); + feb(964, 1, Qve, SFd); + _.Cd = function TFd(a) { + KFd(this.a, RD(a, 170)); + }; + sfb(vIe, "JsonMetaDataConverter/lambda$3$Type", 964); + feb(245, 22, { 3: 1, 34: 1, 22: 1, 245: 1 }, bGd); + var UFd, VFd, WFd, XFd, YFd, ZFd, $Fd, _Fd; + var T5 = tfb(jze, "GraphFeature", 245, WI, dGd, cGd); + var eGd; + feb(11, 1, { 34: 1, 149: 1 }, jGd, kGd, lGd, mGd); + _.Fd = function nGd(a) { + return gGd(this, RD(a, 149)); + }; + _.Fb = function oGd(a) { + return hGd(this, a); + }; + _.Sg = function pGd() { + return iGd(this); + }; + _.Pg = function qGd() { + return this.b; + }; + _.Hb = function rGd() { + return ohb(this.b); + }; + _.Ib = function sGd() { + return this.b; + }; + sfb(jze, "Property", 11); + feb(671, 1, fye, uGd); + _.Ne = function vGd(a, b) { + return tGd(this, RD(a, 96), RD(b, 96)); + }; + _.Fb = function wGd(a) { + return this === a; + }; + _.Oe = function xGd() { + return new Frb(this); + }; + sfb(jze, "PropertyHolderComparator", 671); + feb(709, 1, Ave, QGd); + _.Nb = function RGd(a) { + Ztb(this, a); + }; + _.Pb = function TGd() { + return PGd(this); + }; + _.Qb = function UGd() { + $tb(); + }; + _.Ob = function SGd() { + return !!this.a; + }; + sfb(KIe, "ElkGraphUtil/AncestorIterator", 709); + var Y6 = ufb(sIe, "EList"); + feb(70, 56, { 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 70: 1, 61: 1 }); + _.bd = function hHd(a, b) { + VGd(this, a, b); + }; + _.Fc = function iHd(a) { + return WGd(this, a); + }; + _.cd = function jHd(a, b) { + return XGd(this, a, b); + }; + _.Gc = function kHd(a) { + return YGd(this, a); + }; + _.Ii = function lHd() { + return new yMd(this); + }; + _.Ji = function mHd() { + return new BMd(this); + }; + _.Ki = function nHd(a) { + return ZGd(this, a); + }; + _.Li = function oHd() { + return true; + }; + _.Mi = function pHd(a, b) { + }; + _.Ni = function qHd() { + }; + _.Oi = function rHd(a, b) { + $Gd(this, a, b); + }; + _.Pi = function sHd(a, b, c) { + }; + _.Qi = function tHd(a, b) { + }; + _.Ri = function uHd(a, b, c) { + }; + _.Fb = function vHd(a) { + return _Gd(this, a); + }; + _.Hb = function wHd() { + return cHd(this); + }; + _.Si = function xHd() { + return false; + }; + _.Kc = function yHd() { + return new dMd(this); + }; + _.ed = function zHd() { + return new mMd(this); + }; + _.fd = function AHd(a) { + var b; + b = this.gc(); + if (a < 0 || a > b) + throw Adb(new aMd(a, b)); + return new nMd(this, a); + }; + _.Ui = function BHd(a, b) { + this.Ti(a, this.dd(b)); + }; + _.Mc = function CHd(a) { + return dHd(this, a); + }; + _.Wi = function DHd(a, b) { + return b; + }; + _.hd = function EHd(a, b) { + return eHd(this, a, b); + }; + _.Ib = function FHd() { + return fHd(this); + }; + _.Yi = function GHd() { + return true; + }; + _.Zi = function HHd(a, b) { + return gHd(this, b); + }; + sfb(sIe, "AbstractEList", 70); + feb(66, 70, PIe, YHd, ZHd, $Hd); + _.Ei = function _Hd(a, b) { + return IHd(this, a, b); + }; + _.Fi = function aId(a) { + return JHd(this, a); + }; + _.Gi = function bId(a, b) { + KHd(this, a, b); + }; + _.Hi = function cId(a) { + LHd(this, a); + }; + _.$i = function dId(a) { + return NHd(this, a); + }; + _.$b = function eId() { + OHd(this); + }; + _.Hc = function fId(a) { + return PHd(this, a); + }; + _.Xb = function gId(a) { + return QHd(this, a); + }; + _._i = function hId(a) { + var b, c, d; + ++this.j; + c = this.g == null ? 0 : this.g.length; + if (a > c) { + d = this.g; + b = c + (c / 2 | 0) + 4; + b < a && (b = a); + this.g = this.aj(b); + d != null && hib(d, 0, this.g, 0, this.i); + } + }; + _.dd = function iId(a) { + return RHd(this, a); + }; + _.dc = function jId() { + return this.i == 0; + }; + _.Ti = function kId(a, b) { + return SHd(this, a, b); + }; + _.aj = function lId(a) { + return $C(jJ, rve, 1, a, 5, 1); + }; + _.Vi = function mId(a) { + return this.g[a]; + }; + _.gd = function nId(a) { + return THd(this, a); + }; + _.Xi = function oId(a, b) { + return UHd(this, a, b); + }; + _.gc = function pId() { + return this.i; + }; + _.Pc = function qId() { + return WHd(this); + }; + _.Qc = function rId(a) { + return XHd(this, a); + }; + _.i = 0; + var D6 = sfb(sIe, "BasicEList", 66); + var a7 = ufb(sIe, "TreeIterator"); + feb(708, 66, QIe); + _.Nb = function vId(a) { + Ztb(this, a); + }; + _.Ob = function wId() { + return this.g == null && !this.c ? sId(this) : this.g == null || this.i != 0 && RD(this.g[this.i - 1], 51).Ob(); + }; + _.Pb = function xId() { + return tId(this); + }; + _.Qb = function yId() { + if (!this.e) { + throw Adb(new dgb("There is no valid object to remove.")); + } + this.e.Qb(); + }; + _.c = false; + sfb(sIe, "AbstractTreeIterator", 708); + feb(700, 708, QIe, zId); + _.bj = function AId(a) { + var b; + b = RD(a, 58).Gh().Kc(); + ZD(b, 287) && RD(b, 287).wl(new BId()); + return b; + }; + sfb(KIe, "ElkGraphUtil/PropertiesSkippingTreeIterator", 700); + feb(965, 1, {}, BId); + sfb(KIe, "ElkGraphUtil/PropertiesSkippingTreeIterator/1", 965); + var CId, DId; + var b6 = sfb(KIe, "ElkReflect", null); + feb(901, 1, CGe, JId); + _.Rg = function KId(a) { + return EId(), Asb(RD(a, 181)); + }; + sfb(KIe, "ElkReflect/lambda$0$Type", 901); + var LId; + ufb(sIe, "ResourceLocator"); + feb(1065, 1, {}); + sfb(sIe, "DelegatingResourceLocator", 1065); + feb(1066, 1065, {}); + sfb("org.eclipse.emf.common", "EMFPlugin", 1066); + var d6 = ufb(DJe, "Adapter"); + var e6 = ufb(DJe, "Notification"); + feb(1174, 1, EJe); + _.cj = function VId() { + return this.d; + }; + _.dj = function WId(a) { + }; + _.ej = function XId(a) { + this.d = a; + }; + _.fj = function YId(a) { + this.d == a && (this.d = null); + }; + _.d = null; + sfb(JHe, "AdapterImpl", 1174); + feb(2093, 70, FJe); + _.Ei = function dJd(a, b) { + return ZId(this, a, b); + }; + _.Fi = function eJd(a) { + var b, c, d; + ++this.j; + if (a.dc()) { + return false; + } else { + b = this.Ej(); + for (d = a.Kc(); d.Ob(); ) { + c = d.Pb(); + this.rj(this.Zi(b, c)); + ++b; + } + return true; + } + }; + _.Gi = function fJd(a, b) { + $Id(this, a, b); + }; + _.Hi = function gJd(a) { + _Id(this, a); + }; + _.pj = function hJd() { + return this.sj(); + }; + _.$b = function iJd() { + aJd(this, this.Ej(), this.Fj()); + }; + _.Hc = function jJd(a) { + return this.uj(a); + }; + _.Ic = function kJd(a) { + return this.vj(a); + }; + _.qj = function lJd(a, b) { + this.Bj().Um(); + }; + _.rj = function mJd(a) { + this.Bj().Um(); + }; + _.sj = function nJd() { + return this.Bj(); + }; + _.tj = function oJd() { + this.Bj().Um(); + }; + _.uj = function pJd(a) { + return this.Bj().Um(); + }; + _.vj = function qJd(a) { + return this.Bj().Um(); + }; + _.wj = function rJd(a) { + return this.Bj().Um(); + }; + _.xj = function sJd(a) { + return this.Bj().Um(); + }; + _.yj = function tJd() { + return this.Bj().Um(); + }; + _.zj = function uJd(a) { + return this.Bj().Um(); + }; + _.Aj = function vJd() { + return this.Bj().Um(); + }; + _.Cj = function wJd(a) { + return this.Bj().Um(); + }; + _.Dj = function xJd(a, b) { + return this.Bj().Um(); + }; + _.Ej = function yJd() { + return this.Bj().Um(); + }; + _.Fj = function zJd() { + return this.Bj().Um(); + }; + _.Gj = function AJd(a) { + return this.Bj().Um(); + }; + _.Hj = function BJd() { + return this.Bj().Um(); + }; + _.Fb = function CJd(a) { + return this.wj(a); + }; + _.Xb = function DJd(a) { + return this.Wi(a, this.xj(a)); + }; + _.Hb = function EJd() { + return this.yj(); + }; + _.dd = function FJd(a) { + return this.zj(a); + }; + _.dc = function GJd() { + return this.Aj(); + }; + _.Ti = function HJd(a, b) { + return bJd(this, a, b); + }; + _.Vi = function IJd(a) { + return this.xj(a); + }; + _.gd = function JJd(a) { + return cJd(this, a); + }; + _.Mc = function KJd(a) { + var b; + b = this.dd(a); + if (b >= 0) { + this.gd(b); + return true; + } else { + return false; + } + }; + _.Xi = function LJd(a, b) { + return this.Dj(a, this.Zi(a, b)); + }; + _.gc = function MJd() { + return this.Ej(); + }; + _.Pc = function NJd() { + return this.Fj(); + }; + _.Qc = function OJd(a) { + return this.Gj(a); + }; + _.Ib = function PJd() { + return this.Hj(); + }; + sfb(sIe, "DelegatingEList", 2093); + feb(2094, 2093, FJe); + _.Ei = function XJd(a, b) { + return QJd(this, a, b); + }; + _.Fi = function YJd(a) { + return this.Ei(this.Ej(), a); + }; + _.Gi = function ZJd(a, b) { + RJd(this, a, b); + }; + _.Hi = function $Jd(a) { + SJd(this, a); + }; + _.Li = function _Jd() { + return !this.Mj(); + }; + _.$b = function aKd() { + VJd(this); + }; + _.Ij = function bKd(a, b, c, d, e) { + return new aLd(this, a, b, c, d, e); + }; + _.Jj = function cKd(a) { + qvd(this.jj(), a); + }; + _.Kj = function dKd() { + return null; + }; + _.Lj = function eKd() { + return -1; + }; + _.jj = function fKd() { + return null; + }; + _.Mj = function gKd() { + return false; + }; + _.Nj = function hKd(a, b) { + return b; + }; + _.Oj = function iKd(a, b) { + return b; + }; + _.Pj = function jKd() { + return false; + }; + _.Qj = function kKd() { + return !this.Aj(); + }; + _.Ti = function lKd(a, b) { + var c, d; + if (this.Pj()) { + d = this.Qj(); + c = bJd(this, a, b); + this.Jj(this.Ij(7, sgb(b), c, a, d)); + return c; + } else { + return bJd(this, a, b); + } + }; + _.gd = function mKd(a) { + var b, c, d, e; + if (this.Pj()) { + c = null; + d = this.Qj(); + b = this.Ij(4, e = cJd(this, a), null, a, d); + if (this.Mj() && !!e) { + c = this.Oj(e, c); + if (!c) { + this.Jj(b); + } else { + c.nj(b); + c.oj(); + } + } else { + if (!c) { + this.Jj(b); + } else { + c.nj(b); + c.oj(); + } + } + return e; + } else { + e = cJd(this, a); + if (this.Mj() && !!e) { + c = this.Oj(e, null); + !!c && c.oj(); + } + return e; + } + }; + _.Xi = function nKd(a, b) { + return WJd(this, a, b); + }; + sfb(JHe, "DelegatingNotifyingListImpl", 2094); + feb(152, 1, GJe); + _.nj = function PKd(a) { + return oKd(this, a); + }; + _.oj = function QKd() { + pKd(this); + }; + _.gj = function RKd() { + return this.d; + }; + _.Kj = function SKd() { + return null; + }; + _.Rj = function TKd() { + return null; + }; + _.hj = function UKd(a) { + return -1; + }; + _.ij = function VKd() { + return yKd(this); + }; + _.jj = function WKd() { + return null; + }; + _.kj = function XKd() { + return HKd(this); + }; + _.lj = function YKd() { + return this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o; + }; + _.Sj = function ZKd() { + return false; + }; + _.mj = function $Kd(a) { + var b, c, d, e, f, g, h, i, j, k, l; + switch (this.d) { + case 1: + case 2: { + e = a.gj(); + switch (e) { + case 1: + case 2: { + f = a.jj(); + if (dE(f) === dE(this.jj()) && this.hj(null) == a.hj(null)) { + this.g = a.ij(); + a.gj() == 1 && (this.d = 1); + return true; + } + } + } + } + case 4: { + e = a.gj(); + switch (e) { + case 4: { + f = a.jj(); + if (dE(f) === dE(this.jj()) && this.hj(null) == a.hj(null)) { + j = JKd(this); + i = this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o; + g = a.lj(); + this.d = 6; + l = new ZHd(2); + if (i <= g) { + WGd(l, this.n); + WGd(l, a.kj()); + this.g = cD(WC(kE, 1), Pwe, 28, 15, [this.o = i, g + 1]); + } else { + WGd(l, a.kj()); + WGd(l, this.n); + this.g = cD(WC(kE, 1), Pwe, 28, 15, [this.o = g, i]); + } + this.n = l; + j || (this.o = -2 - this.o - 1); + return true; + } + break; + } + } + break; + } + case 6: { + e = a.gj(); + switch (e) { + case 4: { + f = a.jj(); + if (dE(f) === dE(this.jj()) && this.hj(null) == a.hj(null)) { + j = JKd(this); + g = a.lj(); + k = RD(this.g, 53); + d = $C(kE, Pwe, 28, k.length + 1, 15, 1); + b = 0; + while (b < k.length) { + h = k[b]; + if (h <= g) { + d[b++] = h; + ++g; + } else { + break; + } + } + c = RD(this.n, 15); + c.bd(b, a.kj()); + d[b] = g; + while (++b < d.length) { + d[b] = k[b - 1]; + } + this.g = d; + j || (this.o = -2 - d[0]); + return true; + } + break; + } + } + break; + } + } + return false; + }; + _.Ib = function _Kd() { + var a, b, c, d; + d = new Shb(nfb(this.Rm) + "@" + (b = tb(this) >>> 0, b.toString(16))); + d.a += " (eventType: "; + switch (this.d) { + case 1: { + d.a += "SET"; + break; + } + case 2: { + d.a += "UNSET"; + break; + } + case 3: { + d.a += "ADD"; + break; + } + case 5: { + d.a += "ADD_MANY"; + break; + } + case 4: { + d.a += "REMOVE"; + break; + } + case 6: { + d.a += "REMOVE_MANY"; + break; + } + case 7: { + d.a += "MOVE"; + break; + } + case 8: { + d.a += "REMOVING_ADAPTER"; + break; + } + case 9: { + d.a += "RESOLVE"; + break; + } + default: { + Lhb(d, this.d); + break; + } + } + IKd(this) && (d.a += ", touch: true", d); + d.a += ", position: "; + Lhb(d, this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o); + d.a += ", notifier: "; + Mhb(d, this.jj()); + d.a += ", feature: "; + Mhb(d, this.Kj()); + d.a += ", oldValue: "; + Mhb(d, HKd(this)); + d.a += ", newValue: "; + if (this.d == 6 && ZD(this.g, 53)) { + c = RD(this.g, 53); + d.a += "["; + for (a = 0; a < c.length; ) { + d.a += c[a]; + ++a < c.length && (d.a += pve, d); + } + d.a += "]"; + } else { + Mhb(d, yKd(this)); + } + d.a += ", isTouch: "; + Ohb(d, IKd(this)); + d.a += ", wasSet: "; + Ohb(d, JKd(this)); + d.a += ")"; + return d.a; + }; + _.d = 0; + _.e = 0; + _.f = 0; + _.j = 0; + _.k = 0; + _.o = 0; + _.p = 0; + sfb(JHe, "NotificationImpl", 152); + feb(1188, 152, GJe, aLd); + _.Kj = function bLd() { + return this.a.Kj(); + }; + _.hj = function cLd(a) { + return this.a.Lj(); + }; + _.jj = function dLd() { + return this.a.jj(); + }; + sfb(JHe, "DelegatingNotifyingListImpl/1", 1188); + feb(251, 66, PIe, fLd, gLd); + _.Fc = function hLd(a) { + return eLd(this, RD(a, 378)); + }; + _.nj = function iLd(a) { + return eLd(this, a); + }; + _.oj = function jLd() { + var a, b, c; + for (a = 0; a < this.i; ++a) { + b = RD(this.g[a], 378); + c = b.jj(); + c != null && b.gj() != -1 && RD(c, 94).xh(b); + } + }; + _.aj = function kLd(a) { + return $C(e6, rve, 378, a, 0, 1); + }; + sfb(JHe, "NotificationChainImpl", 251); + feb(1524, 93, IHe); + _.uh = function lLd() { + return this.e; + }; + _.wh = function mLd() { + return (this.f & 1) != 0; + }; + _.f = 1; + sfb(JHe, "NotifierImpl", 1524); + feb(2091, 66, PIe); + _.Ei = function yLd(a, b) { + return nLd(this, a, b); + }; + _.Fi = function zLd(a) { + return this.Ei(this.i, a); + }; + _.Gi = function ALd(a, b) { + oLd(this, a, b); + }; + _.Hi = function BLd(a) { + pLd(this, a); + }; + _.Li = function CLd() { + return !this.Mj(); + }; + _.$b = function DLd() { + sLd(this); + }; + _.Ij = function ELd(a, b, c, d, e) { + return new VLd(this, a, b, c, d, e); + }; + _.Jj = function FLd(a) { + qvd(this.jj(), a); + }; + _.Kj = function GLd() { + return null; + }; + _.Lj = function HLd() { + return -1; + }; + _.jj = function ILd() { + return null; + }; + _.Mj = function JLd() { + return false; + }; + _.Tj = function KLd() { + return false; + }; + _.Nj = function LLd(a, b) { + return b; + }; + _.Oj = function MLd(a, b) { + return b; + }; + _.Pj = function NLd() { + return false; + }; + _.Qj = function OLd() { + return this.i != 0; + }; + _.Ti = function PLd(a, b) { + return uLd(this, a, b); + }; + _.gd = function QLd(a) { + return vLd(this, a); + }; + _.Xi = function RLd(a, b) { + return xLd(this, a, b); + }; + _.Uj = function SLd(a, b) { + return b; + }; + _.Vj = function TLd(a, b) { + return b; + }; + _.Wj = function ULd(a, b, c) { + return c; + }; + sfb(JHe, "NotifyingListImpl", 2091); + feb(1187, 152, GJe, VLd); + _.Kj = function WLd() { + return this.a.Kj(); + }; + _.hj = function XLd(a) { + return this.a.Lj(); + }; + _.jj = function YLd() { + return this.a.jj(); + }; + sfb(JHe, "NotifyingListImpl/1", 1187); + feb(966, 66, PIe, ZLd); + _.Hc = function $Ld(a) { + if (this.i > 10) { + if (!this.b || this.c.j != this.a) { + this.b = new btb(this); + this.a = this.j; + } + return Zsb(this.b, a); + } else { + return PHd(this, a); + } + }; + _.Yi = function _Ld() { + return true; + }; + _.a = 0; + sfb(sIe, "AbstractEList/1", 966); + feb(302, 77, lxe, aMd); + sfb(sIe, "AbstractEList/BasicIndexOutOfBoundsException", 302); + feb(37, 1, Ave, dMd); + _.Nb = function gMd(a) { + Ztb(this, a); + }; + _.Xj = function eMd() { + if (this.i.j != this.f) { + throw Adb(new Jrb()); + } + }; + _.Yj = function fMd() { + return bMd(this); + }; + _.Ob = function hMd() { + return this.e != this.i.gc(); + }; + _.Pb = function iMd() { + return this.Yj(); + }; + _.Qb = function jMd() { + cMd(this); + }; + _.e = 0; + _.f = 0; + _.g = -1; + sfb(sIe, "AbstractEList/EIterator", 37); + feb(286, 37, Jve, mMd, nMd); + _.Qb = function vMd() { + cMd(this); + }; + _.Rb = function oMd(a) { + kMd(this, a); + }; + _.Zj = function pMd() { + var b; + try { + b = this.d.Xb(--this.e); + this.Xj(); + this.g = this.e; + return b; + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + this.Xj(); + throw Adb(new Dvb()); + } else + throw Adb(a); + } + }; + _.$j = function qMd(a) { + lMd(this, a); + }; + _.Sb = function rMd() { + return this.e != 0; + }; + _.Tb = function sMd() { + return this.e; + }; + _.Ub = function tMd() { + return this.Zj(); + }; + _.Vb = function uMd() { + return this.e - 1; + }; + _.Wb = function wMd(a) { + this.$j(a); + }; + sfb(sIe, "AbstractEList/EListIterator", 286); + feb(355, 37, Ave, yMd); + _.Yj = function zMd() { + return xMd(this); + }; + _.Qb = function AMd() { + throw Adb(new jib()); + }; + sfb(sIe, "AbstractEList/NonResolvingEIterator", 355); + feb(398, 286, Jve, BMd, CMd); + _.Rb = function DMd(a) { + throw Adb(new jib()); + }; + _.Yj = function EMd() { + var b; + try { + b = this.c.Vi(this.e); + this.Xj(); + this.g = this.e++; + return b; + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + this.Xj(); + throw Adb(new Dvb()); + } else + throw Adb(a); + } + }; + _.Zj = function FMd() { + var b; + try { + b = this.c.Vi(--this.e); + this.Xj(); + this.g = this.e; + return b; + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + this.Xj(); + throw Adb(new Dvb()); + } else + throw Adb(a); + } + }; + _.Qb = function GMd() { + throw Adb(new jib()); + }; + _.Wb = function HMd(a) { + throw Adb(new jib()); + }; + sfb(sIe, "AbstractEList/NonResolvingEListIterator", 398); + feb(2080, 70, JJe); + _.Ei = function PMd(a, b) { + var c, d, e, f, g, h, i, j, k, l, m; + e = b.gc(); + if (e != 0) { + j = RD(Ywd(this.a, 4), 129); + k = j == null ? 0 : j.length; + m = k + e; + d = NMd(this, m); + l = k - a; + l > 0 && hib(j, a, d, a + e, l); + i = b.Kc(); + for (g = 0; g < e; ++g) { + h = i.Pb(); + c = a + g; + LMd(d, c, gHd(this, h)); + } + Bde(this, d); + for (f = 0; f < e; ++f) { + h = d[a]; + this.Mi(a, h); + ++a; + } + return true; + } else { + ++this.j; + return false; + } + }; + _.Fi = function QMd(a) { + var b, c, d, e, f, g, h, i, j; + d = a.gc(); + if (d != 0) { + i = (c = RD(Ywd(this.a, 4), 129), c == null ? 0 : c.length); + j = i + d; + b = NMd(this, j); + h = a.Kc(); + for (f = i; f < j; ++f) { + g = h.Pb(); + LMd(b, f, gHd(this, g)); + } + Bde(this, b); + for (e = i; e < j; ++e) { + g = b[e]; + this.Mi(e, g); + } + return true; + } else { + ++this.j; + return false; + } + }; + _.Gi = function RMd(a, b) { + var c, d, e, f; + d = RD(Ywd(this.a, 4), 129); + e = d == null ? 0 : d.length; + c = NMd(this, e + 1); + f = gHd(this, b); + a != e && hib(d, a, c, a + 1, e - a); + bD(c, a, f); + Bde(this, c); + this.Mi(a, b); + }; + _.Hi = function SMd(a) { + var b, c, d; + d = (c = RD(Ywd(this.a, 4), 129), c == null ? 0 : c.length); + b = NMd(this, d + 1); + LMd(b, d, gHd(this, a)); + Bde(this, b); + this.Mi(d, a); + }; + _.Ii = function TMd() { + return new sNd(this); + }; + _.Ji = function UMd() { + return new vNd(this); + }; + _.Ki = function VMd(a) { + var b, c; + c = (b = RD(Ywd(this.a, 4), 129), b == null ? 0 : b.length); + if (a < 0 || a > c) + throw Adb(new aMd(a, c)); + return new wNd(this, a); + }; + _.$b = function WMd() { + var a, b; + ++this.j; + a = RD(Ywd(this.a, 4), 129); + b = a == null ? 0 : a.length; + Bde(this, null); + $Gd(this, b, a); + }; + _.Hc = function XMd(a) { + var b, c, d, e, f; + b = RD(Ywd(this.a, 4), 129); + if (b != null) { + if (a != null) { + for (d = b, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + if (pb(a, c)) { + return true; + } + } + } else { + for (d = b, e = 0, f = d.length; e < f; ++e) { + c = d[e]; + if (dE(c) === dE(a)) { + return true; + } + } + } + } + return false; + }; + _.Xb = function YMd(a) { + var b, c; + b = RD(Ywd(this.a, 4), 129); + c = b == null ? 0 : b.length; + if (a >= c) + throw Adb(new aMd(a, c)); + return b[a]; + }; + _.dd = function ZMd(a) { + var b, c, d; + b = RD(Ywd(this.a, 4), 129); + if (b != null) { + if (a != null) { + for (c = 0, d = b.length; c < d; ++c) { + if (pb(a, b[c])) { + return c; + } + } + } else { + for (c = 0, d = b.length; c < d; ++c) { + if (dE(b[c]) === dE(a)) { + return c; + } + } + } + } + return -1; + }; + _.dc = function $Md() { + return RD(Ywd(this.a, 4), 129) == null; + }; + _.Kc = function _Md() { + return new jNd(this); + }; + _.ed = function aNd() { + return new nNd(this); + }; + _.fd = function bNd(a) { + var b, c; + c = (b = RD(Ywd(this.a, 4), 129), b == null ? 0 : b.length); + if (a < 0 || a > c) + throw Adb(new aMd(a, c)); + return new oNd(this, a); + }; + _.Ti = function cNd(a, b) { + var c, d, e; + c = MMd(this); + e = c == null ? 0 : c.length; + if (a >= e) + throw Adb(new veb(MIe + a + NIe + e)); + if (b >= e) + throw Adb(new veb(OIe + b + NIe + e)); + d = c[b]; + if (a != b) { + a < b ? hib(c, a, c, a + 1, b - a) : hib(c, b + 1, c, b, a - b); + bD(c, a, d); + Bde(this, c); + } + return d; + }; + _.Vi = function dNd(a) { + return RD(Ywd(this.a, 4), 129)[a]; + }; + _.gd = function eNd(a) { + return OMd(this, a); + }; + _.Xi = function fNd(a, b) { + var c, d; + c = MMd(this); + d = c[a]; + LMd(c, a, gHd(this, b)); + Bde(this, c); + return d; + }; + _.gc = function gNd() { + var a; + return a = RD(Ywd(this.a, 4), 129), a == null ? 0 : a.length; + }; + _.Pc = function hNd() { + var a, b, c; + a = RD(Ywd(this.a, 4), 129); + c = a == null ? 0 : a.length; + b = $C(d6, IJe, 424, c, 0, 1); + c > 0 && hib(a, 0, b, 0, c); + return b; + }; + _.Qc = function iNd(a) { + var b, c, d; + b = RD(Ywd(this.a, 4), 129); + d = b == null ? 0 : b.length; + if (d > 0) { + if (a.length < d) { + c = IMd(rb(a).c, d); + a = c; + } + hib(b, 0, a, 0, d); + } + a.length > d && bD(a, d, null); + return a; + }; + var JMd; + sfb(sIe, "ArrayDelegatingEList", 2080); + feb(1051, 37, Ave, jNd); + _.Xj = function kNd() { + if (this.b.j != this.f || dE(RD(Ywd(this.b.a, 4), 129)) !== dE(this.a)) { + throw Adb(new Jrb()); + } + }; + _.Qb = function lNd() { + cMd(this); + this.a = RD(Ywd(this.b.a, 4), 129); + }; + sfb(sIe, "ArrayDelegatingEList/EIterator", 1051); + feb(722, 286, Jve, nNd, oNd); + _.Xj = function pNd() { + if (this.b.j != this.f || dE(RD(Ywd(this.b.a, 4), 129)) !== dE(this.a)) { + throw Adb(new Jrb()); + } + }; + _.$j = function qNd(a) { + lMd(this, a); + this.a = RD(Ywd(this.b.a, 4), 129); + }; + _.Qb = function rNd() { + cMd(this); + this.a = RD(Ywd(this.b.a, 4), 129); + }; + sfb(sIe, "ArrayDelegatingEList/EListIterator", 722); + feb(1052, 355, Ave, sNd); + _.Xj = function tNd() { + if (this.b.j != this.f || dE(RD(Ywd(this.b.a, 4), 129)) !== dE(this.a)) { + throw Adb(new Jrb()); + } + }; + sfb(sIe, "ArrayDelegatingEList/NonResolvingEIterator", 1052); + feb(723, 398, Jve, vNd, wNd); + _.Xj = function xNd() { + if (this.b.j != this.f || dE(RD(Ywd(this.b.a, 4), 129)) !== dE(this.a)) { + throw Adb(new Jrb()); + } + }; + sfb(sIe, "ArrayDelegatingEList/NonResolvingEListIterator", 723); + feb(615, 302, lxe, yNd); + sfb(sIe, "BasicEList/BasicIndexOutOfBoundsException", 615); + feb(710, 66, PIe, zNd); + _.bd = function ANd(a, b) { + throw Adb(new jib()); + }; + _.Fc = function BNd(a) { + throw Adb(new jib()); + }; + _.cd = function CNd(a, b) { + throw Adb(new jib()); + }; + _.Gc = function DNd(a) { + throw Adb(new jib()); + }; + _.$b = function ENd() { + throw Adb(new jib()); + }; + _._i = function FNd(a) { + throw Adb(new jib()); + }; + _.Kc = function GNd() { + return this.Ii(); + }; + _.ed = function HNd() { + return this.Ji(); + }; + _.fd = function INd(a) { + return this.Ki(a); + }; + _.Ti = function JNd(a, b) { + throw Adb(new jib()); + }; + _.Ui = function KNd(a, b) { + throw Adb(new jib()); + }; + _.gd = function LNd(a) { + throw Adb(new jib()); + }; + _.Mc = function MNd(a) { + throw Adb(new jib()); + }; + _.hd = function NNd(a, b) { + throw Adb(new jib()); + }; + sfb(sIe, "BasicEList/UnmodifiableEList", 710); + feb(721, 1, { 3: 1, 20: 1, 16: 1, 15: 1, 61: 1, 597: 1 }); + _.bd = function mOd(a, b) { + ONd(this, a, RD(b, 44)); + }; + _.Fc = function nOd(a) { + return PNd(this, RD(a, 44)); + }; + _.Jc = function vOd(a) { + xgb(this, a); + }; + _.Xb = function wOd(a) { + return RD(QHd(this.c, a), 136); + }; + _.Ti = function FOd(a, b) { + return RD(this.c.Ti(a, b), 44); + }; + _.Ui = function GOd(a, b) { + eOd(this, a, RD(b, 44)); + }; + _.Lc = function JOd() { + return new SDb(null, new Swb(this, 16)); + }; + _.gd = function KOd(a) { + return RD(this.c.gd(a), 44); + }; + _.hd = function MOd(a, b) { + return kOd(this, a, RD(b, 44)); + }; + _.jd = function OOd(a) { + tvb(this, a); + }; + _.Nc = function POd() { + return new Swb(this, 16); + }; + _.Oc = function QOd() { + return new SDb(null, new Swb(this, 16)); + }; + _.cd = function oOd(a, b) { + return this.c.cd(a, b); + }; + _.Gc = function pOd(a) { + return this.c.Gc(a); + }; + _.$b = function qOd() { + this.c.$b(); + }; + _.Hc = function rOd(a) { + return this.c.Hc(a); + }; + _.Ic = function sOd(a) { + return Be(this.c, a); + }; + _._j = function tOd() { + var a, b, c; + if (this.d == null) { + this.d = $C(D6, KJe, 66, 2 * this.f + 1, 0, 1); + c = this.e; + this.f = 0; + for (b = this.c.Kc(); b.e != b.i.gc(); ) { + a = RD(b.Yj(), 136); + UNd(this, a); + } + this.e = c; + } + }; + _.Fb = function uOd(a) { + return ZNd(this, a); + }; + _.Hb = function xOd() { + return cHd(this.c); + }; + _.dd = function yOd(a) { + return this.c.dd(a); + }; + _.ak = function zOd() { + this.c = new YOd(this); + }; + _.dc = function AOd() { + return this.f == 0; + }; + _.Kc = function BOd() { + return this.c.Kc(); + }; + _.ed = function COd() { + return this.c.ed(); + }; + _.fd = function DOd(a) { + return this.c.fd(a); + }; + _.bk = function EOd() { + return dOd(this); + }; + _.ck = function HOd(a, b, c) { + return new ZPd(a, b, c); + }; + _.dk = function IOd() { + return new cPd(); + }; + _.Mc = function LOd(a) { + return hOd(this, a); + }; + _.gc = function NOd() { + return this.f; + }; + _.kd = function ROd(a, b) { + return new Rkb(this.c, a, b); + }; + _.Pc = function SOd() { + return this.c.Pc(); + }; + _.Qc = function TOd(a) { + return this.c.Qc(a); + }; + _.Ib = function UOd() { + return fHd(this.c); + }; + _.e = 0; + _.f = 0; + sfb(sIe, "BasicEMap", 721); + feb(1046, 66, PIe, YOd); + _.Mi = function ZOd(a, b) { + VOd(this, RD(b, 136)); + }; + _.Pi = function _Od(a, b, c) { + var d; + ++(d = this, RD(b, 136), d).a.e; + }; + _.Qi = function aPd(a, b) { + WOd(this, RD(b, 136)); + }; + _.Ri = function bPd(a, b, c) { + XOd(this, RD(b, 136), RD(c, 136)); + }; + _.Oi = function $Od(a, b) { + TNd(this.a); + }; + sfb(sIe, "BasicEMap/1", 1046); + feb(1047, 66, PIe, cPd); + _.aj = function dPd(a) { + return $C(N6, LJe, 621, a, 0, 1); + }; + sfb(sIe, "BasicEMap/2", 1047); + feb(1048, Eve, Fve, ePd); + _.$b = function fPd() { + this.a.c.$b(); + }; + _.Hc = function gPd(a) { + return QNd(this.a, a); + }; + _.Kc = function hPd() { + return this.a.f == 0 ? (jQd(), iQd.a) : new DPd(this.a); + }; + _.Mc = function iPd(a) { + var b; + b = this.a.f; + jOd(this.a, a); + return this.a.f != b; + }; + _.gc = function jPd() { + return this.a.f; + }; + sfb(sIe, "BasicEMap/3", 1048); + feb(1049, 31, Dve, kPd); + _.$b = function lPd() { + this.a.c.$b(); + }; + _.Hc = function mPd(a) { + return RNd(this.a, a); + }; + _.Kc = function nPd() { + return this.a.f == 0 ? (jQd(), iQd.a) : new FPd(this.a); + }; + _.gc = function oPd() { + return this.a.f; + }; + sfb(sIe, "BasicEMap/4", 1049); + feb(1050, Eve, Fve, qPd); + _.$b = function rPd() { + this.a.c.$b(); + }; + _.Hc = function sPd(a) { + var b, c, d, e, f, g, h, i, j; + if (this.a.f > 0 && ZD(a, 44)) { + this.a._j(); + i = RD(a, 44); + h = i.ld(); + e = h == null ? 0 : tb(h); + f = bOd(this.a, e); + b = this.a.d[f]; + if (b) { + c = RD(b.g, 379); + j = b.i; + for (g = 0; g < j; ++g) { + d = c[g]; + if (d.Bi() == e && d.Fb(i)) { + return true; + } + } + } + } + return false; + }; + _.Kc = function tPd() { + return this.a.f == 0 ? (jQd(), iQd.a) : new xPd(this.a); + }; + _.Mc = function uPd(a) { + return pPd(this, a); + }; + _.gc = function vPd() { + return this.a.f; + }; + sfb(sIe, "BasicEMap/5", 1050); + feb(622, 1, Ave, xPd); + _.Nb = function yPd(a) { + Ztb(this, a); + }; + _.Ob = function zPd() { + return this.b != -1; + }; + _.Pb = function APd() { + var a; + if (this.f.e != this.c) { + throw Adb(new Jrb()); + } + if (this.b == -1) { + throw Adb(new Dvb()); + } + this.d = this.a; + this.e = this.b; + wPd(this); + a = RD(this.f.d[this.d].g[this.e], 136); + return this.ek(a); + }; + _.Qb = function BPd() { + if (this.f.e != this.c) { + throw Adb(new Jrb()); + } + if (this.e == -1) { + throw Adb(new cgb()); + } + this.f.c.Mc(QHd(this.f.d[this.d], this.e)); + this.c = this.f.e; + this.e = -1; + this.a == this.d && this.b != -1 && --this.b; + }; + _.ek = function CPd(a) { + return a; + }; + _.a = 0; + _.b = -1; + _.c = 0; + _.d = 0; + _.e = 0; + sfb(sIe, "BasicEMap/BasicEMapIterator", 622); + feb(1044, 622, Ave, DPd); + _.ek = function EPd(a) { + return a.ld(); + }; + sfb(sIe, "BasicEMap/BasicEMapKeyIterator", 1044); + feb(1045, 622, Ave, FPd); + _.ek = function GPd(a) { + return a.md(); + }; + sfb(sIe, "BasicEMap/BasicEMapValueIterator", 1045); + feb(1043, 1, Cve, IPd); + _.wc = function OPd(a) { + Bvb(this, a); + }; + _.yc = function TPd(a, b, c) { + return Cvb(this, a, b, c); + }; + _.$b = function JPd() { + this.a.c.$b(); + }; + _._b = function KPd(a) { + return HPd(this, a); + }; + _.uc = function LPd(a) { + return RNd(this.a, a); + }; + _.vc = function MPd() { + return YNd(this.a); + }; + _.Fb = function NPd(a) { + return ZNd(this.a, a); + }; + _.xc = function PPd(a) { + return $Nd(this.a, a); + }; + _.Hb = function QPd() { + return cHd(this.a.c); + }; + _.dc = function RPd() { + return this.a.f == 0; + }; + _.ec = function SPd() { + return cOd(this.a); + }; + _.zc = function UPd(a, b) { + return fOd(this.a, a, b); + }; + _.Bc = function VPd(a) { + return jOd(this.a, a); + }; + _.gc = function WPd() { + return this.a.f; + }; + _.Ib = function XPd() { + return fHd(this.a.c); + }; + _.Cc = function YPd() { + return lOd(this.a); + }; + sfb(sIe, "BasicEMap/DelegatingMap", 1043); + feb(621, 1, { 44: 1, 136: 1, 621: 1 }, ZPd); + _.Fb = function $Pd(a) { + var b; + if (ZD(a, 44)) { + b = RD(a, 44); + return (this.b != null ? pb(this.b, b.ld()) : dE(this.b) === dE(b.ld())) && (this.c != null ? pb(this.c, b.md()) : dE(this.c) === dE(b.md())); + } else { + return false; + } + }; + _.Bi = function _Pd() { + return this.a; + }; + _.ld = function aQd() { + return this.b; + }; + _.md = function bQd() { + return this.c; + }; + _.Hb = function cQd() { + return this.a ^ (this.c == null ? 0 : tb(this.c)); + }; + _.Ci = function dQd(a) { + this.a = a; + }; + _.Di = function eQd(a) { + throw Adb(new xz()); + }; + _.nd = function fQd(a) { + var b; + b = this.c; + this.c = a; + return b; + }; + _.Ib = function gQd() { + return this.b + "->" + this.c; + }; + _.a = 0; + var N6 = sfb(sIe, "BasicEMap/EntryImpl", 621); + feb(546, 1, {}, hQd); + sfb(sIe, "BasicEMap/View", 546); + var iQd; + feb(783, 1, {}); + _.Fb = function xQd(a) { + return Rt((yob(), vob), a); + }; + _.Hb = function yQd() { + return Cob((yob(), vob)); + }; + _.Ib = function zQd() { + return Fe((yob(), vob)); + }; + sfb(sIe, "ECollections/BasicEmptyUnmodifiableEList", 783); + feb(1348, 1, Jve, AQd); + _.Nb = function CQd(a) { + Ztb(this, a); + }; + _.Rb = function BQd(a) { + throw Adb(new jib()); + }; + _.Ob = function DQd() { + return false; + }; + _.Sb = function EQd() { + return false; + }; + _.Pb = function FQd() { + throw Adb(new Dvb()); + }; + _.Tb = function GQd() { + return 0; + }; + _.Ub = function HQd() { + throw Adb(new Dvb()); + }; + _.Vb = function IQd() { + return -1; + }; + _.Qb = function JQd() { + throw Adb(new jib()); + }; + _.Wb = function KQd(a) { + throw Adb(new jib()); + }; + sfb(sIe, "ECollections/BasicEmptyUnmodifiableEList/1", 1348); + feb(1346, 783, { 20: 1, 16: 1, 15: 1, 61: 1 }, LQd); + _.bd = function MQd(a, b) { + mQd(); + }; + _.Fc = function NQd(a) { + return nQd(); + }; + _.cd = function OQd(a, b) { + return oQd(); + }; + _.Gc = function PQd(a) { + return pQd(); + }; + _.$b = function QQd() { + qQd(); + }; + _.Hc = function RQd(a) { + return false; + }; + _.Ic = function SQd(a) { + return false; + }; + _.Jc = function TQd(a) { + xgb(this, a); + }; + _.Xb = function UQd(a) { + return Iob((yob(), a)), null; + }; + _.dd = function VQd(a) { + return -1; + }; + _.dc = function WQd() { + return true; + }; + _.Kc = function XQd() { + return this.a; + }; + _.ed = function YQd() { + return this.a; + }; + _.fd = function ZQd(a) { + return this.a; + }; + _.Ti = function $Qd(a, b) { + return rQd(); + }; + _.Ui = function _Qd(a, b) { + sQd(); + }; + _.Lc = function aRd() { + return new SDb(null, new Swb(this, 16)); + }; + _.gd = function bRd(a) { + return tQd(); + }; + _.Mc = function cRd(a) { + return uQd(); + }; + _.hd = function dRd(a, b) { + return vQd(); + }; + _.gc = function eRd() { + return 0; + }; + _.jd = function fRd(a) { + tvb(this, a); + }; + _.Nc = function gRd() { + return new Swb(this, 16); + }; + _.Oc = function hRd() { + return new SDb(null, new Swb(this, 16)); + }; + _.kd = function iRd(a, b) { + return yob(), new Rkb(vob, a, b); + }; + _.Pc = function jRd() { + return De((yob(), vob)); + }; + _.Qc = function kRd(a) { + return yob(), Ee(vob, a); + }; + sfb(sIe, "ECollections/EmptyUnmodifiableEList", 1346); + feb(1347, 783, { 20: 1, 16: 1, 15: 1, 61: 1, 597: 1 }, lRd); + _.bd = function mRd(a, b) { + mQd(); + }; + _.Fc = function nRd(a) { + return nQd(); + }; + _.cd = function oRd(a, b) { + return oQd(); + }; + _.Gc = function pRd(a) { + return pQd(); + }; + _.$b = function qRd() { + qQd(); + }; + _.Hc = function rRd(a) { + return false; + }; + _.Ic = function sRd(a) { + return false; + }; + _.Jc = function tRd(a) { + xgb(this, a); + }; + _.Xb = function uRd(a) { + return Iob((yob(), a)), null; + }; + _.dd = function vRd(a) { + return -1; + }; + _.dc = function wRd() { + return true; + }; + _.Kc = function xRd() { + return this.a; + }; + _.ed = function yRd() { + return this.a; + }; + _.fd = function zRd(a) { + return this.a; + }; + _.Ti = function BRd(a, b) { + return rQd(); + }; + _.Ui = function CRd(a, b) { + sQd(); + }; + _.Lc = function DRd() { + return new SDb(null, new Swb(this, 16)); + }; + _.gd = function ERd(a) { + return tQd(); + }; + _.Mc = function FRd(a) { + return uQd(); + }; + _.hd = function GRd(a, b) { + return vQd(); + }; + _.gc = function HRd() { + return 0; + }; + _.jd = function IRd(a) { + tvb(this, a); + }; + _.Nc = function JRd() { + return new Swb(this, 16); + }; + _.Oc = function KRd() { + return new SDb(null, new Swb(this, 16)); + }; + _.kd = function LRd(a, b) { + return yob(), new Rkb(vob, a, b); + }; + _.Pc = function MRd() { + return De((yob(), vob)); + }; + _.Qc = function NRd(a) { + return yob(), Ee(vob, a); + }; + _.bk = function ARd() { + return yob(), yob(), wob; + }; + sfb(sIe, "ECollections/EmptyUnmodifiableEMap", 1347); + var Z6 = ufb(sIe, "Enumerator"); + var ORd; + feb(288, 1, { 288: 1 }, lSd); + _.Fb = function pSd(a) { + var b; + if (this === a) + return true; + if (!ZD(a, 288)) + return false; + b = RD(a, 288); + return this.f == b.f && rSd(this.i, b.i) && qSd(this.a, (this.f & 256) != 0 ? (b.f & 256) != 0 ? b.a : null : (b.f & 256) != 0 ? null : b.a) && qSd(this.d, b.d) && qSd(this.g, b.g) && qSd(this.e, b.e) && iSd(this, b); + }; + _.Hb = function uSd() { + return this.f; + }; + _.Ib = function CSd() { + return jSd(this); + }; + _.f = 0; + var SRd = 0, TRd = 0, URd = 0, VRd = 0, WRd = 0, XRd = 0, YRd = 0, ZRd = 0, $Rd = 0, _Rd, aSd = 0, bSd = 0, cSd = 0, dSd = 0, eSd, fSd; + sfb(sIe, "URI", 288); + feb(1121, 45, Hxe, MSd); + _.zc = function NSd(a, b) { + return RD($jb(this, WD(a), RD(b, 288)), 288); + }; + sfb(sIe, "URI/URICache", 1121); + feb(506, 66, PIe, OSd, PSd); + _.Si = function QSd() { + return true; + }; + sfb(sIe, "UniqueEList", 506); + feb(590, 63, swe, RSd); + sfb(sIe, "WrappedException", 590); + var f7 = ufb(vHe, OJe); + var A7 = ufb(vHe, PJe); + var y7 = ufb(vHe, QJe); + var g7 = ufb(vHe, RJe); + var i7 = ufb(vHe, SJe); + var h7 = ufb(vHe, "EClass"); + var k7 = ufb(vHe, "EDataType"); + var SSd; + feb(1233, 45, Hxe, VSd); + _.xc = function WSd(a) { + return bE(a) ? Xjb(this, a) : Wd(qtb(this.f, a)); + }; + sfb(vHe, "EDataType/Internal/ConversionDelegate/Factory/Registry/Impl", 1233); + var m7 = ufb(vHe, "EEnum"); + var l7 = ufb(vHe, TJe); + var o7 = ufb(vHe, UJe); + var s7 = ufb(vHe, VJe); + var XSd; + var u7 = ufb(vHe, WJe); + var v7 = ufb(vHe, XJe); + feb(1042, 1, {}, _Sd); + _.Ib = function aTd() { + return "NIL"; + }; + sfb(vHe, "EStructuralFeature/Internal/DynamicValueHolder/1", 1042); + var bTd; + feb(1041, 45, Hxe, eTd); + _.xc = function fTd(a) { + return bE(a) ? Xjb(this, a) : Wd(qtb(this.f, a)); + }; + sfb(vHe, "EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl", 1041); + var z7 = ufb(vHe, YJe); + var B7 = ufb(vHe, "EValidator/PatternMatcher"); + var gTd; + var iTd; + var kTd; + var mTd, nTd, oTd, pTd, qTd, rTd, sTd, tTd, uTd, vTd, wTd, xTd, yTd, zTd, ATd, BTd, CTd, DTd, ETd, FTd, GTd, HTd, ITd; + var Jbb = ufb(ZJe, "FeatureMap/Entry"); + feb(545, 1, { 76: 1 }, KTd); + _.Lk = function LTd() { + return this.a; + }; + _.md = function MTd() { + return this.b; + }; + sfb(SHe, "BasicEObjectImpl/1", 545); + feb(1040, 1, $Je, NTd); + _.Fk = function OTd(a) { + return Fvd(this.a, this.b, a); + }; + _.Qj = function PTd() { + return Lvd(this.a, this.b); + }; + _.Wb = function QTd(a) { + Xvd(this.a, this.b, a); + }; + _.Gk = function RTd() { + _vd(this.a, this.b); + }; + sfb(SHe, "BasicEObjectImpl/4", 1040); + feb(2081, 1, { 114: 1 }); + _.Mk = function UTd(a) { + this.e = a == 0 ? STd : $C(jJ, rve, 1, a, 5, 1); + }; + _.li = function VTd(a) { + return this.e[a]; + }; + _.mi = function WTd(a, b) { + this.e[a] = b; + }; + _.ni = function XTd(a) { + this.e[a] = null; + }; + _.Nk = function YTd() { + return this.c; + }; + _.Ok = function ZTd() { + throw Adb(new jib()); + }; + _.Pk = function $Td() { + throw Adb(new jib()); + }; + _.Qk = function _Td() { + return this.d; + }; + _.Rk = function aUd() { + return this.e != null; + }; + _.Sk = function bUd(a) { + this.c = a; + }; + _.Tk = function cUd(a) { + throw Adb(new jib()); + }; + _.Uk = function dUd(a) { + throw Adb(new jib()); + }; + _.Vk = function eUd(a) { + this.d = a; + }; + var STd; + sfb(SHe, "BasicEObjectImpl/EPropertiesHolderBaseImpl", 2081); + feb(192, 2081, { 114: 1 }, fUd); + _.Ok = function gUd() { + return this.a; + }; + _.Pk = function hUd() { + return this.b; + }; + _.Tk = function iUd(a) { + this.a = a; + }; + _.Uk = function jUd(a) { + this.b = a; + }; + sfb(SHe, "BasicEObjectImpl/EPropertiesHolderImpl", 192); + feb(516, 99, RHe, kUd); + _.uh = function lUd() { + return this.f; + }; + _.zh = function mUd() { + return this.k; + }; + _.Bh = function nUd(a, b) { + this.g = a; + this.i = b; + }; + _.Dh = function oUd() { + return (this.j & 2) == 0 ? this.ii() : this.$h().Nk(); + }; + _.Fh = function pUd() { + return this.i; + }; + _.wh = function qUd() { + return (this.j & 1) != 0; + }; + _.Ph = function rUd() { + return this.g; + }; + _.Vh = function sUd() { + return (this.j & 4) != 0; + }; + _.$h = function tUd() { + return !this.k && (this.k = new fUd()), this.k; + }; + _.ci = function uUd(a) { + this.$h().Sk(a); + a ? this.j |= 2 : this.j &= -3; + }; + _.ei = function vUd(a) { + this.$h().Uk(a); + a ? this.j |= 4 : this.j &= -5; + }; + _.ii = function wUd() { + return (lTd(), kTd).S; + }; + _.i = 0; + _.j = 1; + sfb(SHe, "EObjectImpl", 516); + feb(798, 516, { 110: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1 }, zUd); + _.li = function AUd(a) { + return this.e[a]; + }; + _.mi = function BUd(a, b) { + this.e[a] = b; + }; + _.ni = function CUd(a) { + this.e[a] = null; + }; + _.Dh = function DUd() { + return this.d; + }; + _.Ih = function EUd(a) { + return BYd(this.d, a); + }; + _.Kh = function FUd() { + return this.d; + }; + _.Oh = function GUd() { + return this.e != null; + }; + _.$h = function HUd() { + !this.k && (this.k = new VUd()); + return this.k; + }; + _.ci = function IUd(a) { + this.d = a; + }; + _.hi = function JUd() { + var a; + if (this.e == null) { + a = AYd(this.d); + this.e = a == 0 ? xUd : $C(jJ, rve, 1, a, 5, 1); + } + return this; + }; + _.ji = function KUd() { + return 0; + }; + var xUd; + sfb(SHe, "DynamicEObjectImpl", 798); + feb(1522, 798, { 110: 1, 44: 1, 94: 1, 93: 1, 136: 1, 58: 1, 114: 1, 54: 1, 99: 1 }, LUd); + _.Fb = function NUd(a) { + return this === a; + }; + _.Hb = function RUd() { + return kFb(this); + }; + _.ci = function MUd(a) { + this.d = a; + this.b = wYd(a, "key"); + this.c = wYd(a, aIe); + }; + _.Bi = function OUd() { + var a; + if (this.a == -1) { + a = Gvd(this, this.b); + this.a = a == null ? 0 : tb(a); + } + return this.a; + }; + _.ld = function PUd() { + return Gvd(this, this.b); + }; + _.md = function QUd() { + return Gvd(this, this.c); + }; + _.Ci = function SUd(a) { + this.a = a; + }; + _.Di = function TUd(a) { + Xvd(this, this.b, a); + }; + _.nd = function UUd(a) { + var b; + b = Gvd(this, this.c); + Xvd(this, this.c, a); + return b; + }; + _.a = 0; + sfb(SHe, "DynamicEObjectImpl/BasicEMapEntry", 1522); + feb(1523, 1, { 114: 1 }, VUd); + _.Mk = function WUd(a) { + throw Adb(new jib()); + }; + _.li = function XUd(a) { + throw Adb(new jib()); + }; + _.mi = function YUd(a, b) { + throw Adb(new jib()); + }; + _.ni = function ZUd(a) { + throw Adb(new jib()); + }; + _.Nk = function $Ud() { + throw Adb(new jib()); + }; + _.Ok = function _Ud() { + return this.a; + }; + _.Pk = function aVd() { + return this.b; + }; + _.Qk = function bVd() { + return this.c; + }; + _.Rk = function cVd() { + throw Adb(new jib()); + }; + _.Sk = function dVd(a) { + throw Adb(new jib()); + }; + _.Tk = function eVd(a) { + this.a = a; + }; + _.Uk = function fVd(a) { + this.b = a; + }; + _.Vk = function gVd(a) { + this.c = a; + }; + sfb(SHe, "DynamicEObjectImpl/DynamicEPropertiesHolderImpl", 1523); + feb(519, 158, { 110: 1, 94: 1, 93: 1, 598: 1, 155: 1, 58: 1, 114: 1, 54: 1, 99: 1, 519: 1, 158: 1, 119: 1, 120: 1 }, pVd); + _.Ah = function qVd(a) { + return iVd(this, a); + }; + _.Lh = function rVd(a, b, c) { + var d; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.d; + case 2: + return c ? (!this.b && (this.b = new SVd((JTd(), FTd), C8, this)), this.b) : (!this.b && (this.b = new SVd((JTd(), FTd), C8, this)), dOd(this.b)); + case 3: + return kVd(this); + case 4: + return !this.a && (this.a = new XZd(r7, this, 4)), this.a; + case 5: + return !this.c && (this.c = new zie(r7, this, 5)), this.c; + } + return zvd(this, a - AYd((JTd(), mTd)), vYd((d = RD(Ywd(this, 16), 29), !d ? mTd : d), a), b, c); + }; + _.Sh = function sVd(a, b, c) { + var d, e, f; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), qLd(this.Ab, a, c); + case 3: + !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? iVd(this, c) : this.Cb.Th(this, -1 - e, null, c))); + return hVd(this, RD(a, 155), c); + } + return f = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), mTd) : d), b), 69), f.wk().zk(this, Wwd(this), b - AYd((JTd(), mTd)), a, c); + }; + _.Uh = function tVd(a, b, c) { + var d, e; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), rLd(this.Ab, a, c); + case 2: + return !this.b && (this.b = new SVd((JTd(), FTd), C8, this)), BVd(this.b, a, c); + case 3: + return hVd(this, null, c); + case 4: + return !this.a && (this.a = new XZd(r7, this, 4)), rLd(this.a, a, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), mTd) : d), b), 69), e.wk().Ak(this, Wwd(this), b - AYd((JTd(), mTd)), a, c); + }; + _.Wh = function uVd(a) { + var b; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.d != null; + case 2: + return !!this.b && this.b.f != 0; + case 3: + return !!kVd(this); + case 4: + return !!this.a && this.a.i != 0; + case 5: + return !!this.c && this.c.i != 0; + } + return Avd(this, a - AYd((JTd(), mTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? mTd : b), a)); + }; + _.bi = function vVd(a, b) { + var c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + mVd(this, WD(b)); + return; + case 2: + !this.b && (this.b = new SVd((JTd(), FTd), C8, this)); + CVd(this.b, b); + return; + case 3: + lVd(this, RD(b, 155)); + return; + case 4: + !this.a && (this.a = new XZd(r7, this, 4)); + sLd(this.a); + !this.a && (this.a = new XZd(r7, this, 4)); + YGd(this.a, RD(b, 16)); + return; + case 5: + !this.c && (this.c = new zie(r7, this, 5)); + sLd(this.c); + !this.c && (this.c = new zie(r7, this, 5)); + YGd(this.c, RD(b, 16)); + return; + } + Bvd(this, a - AYd((JTd(), mTd)), vYd((c = RD(Ywd(this, 16), 29), !c ? mTd : c), a), b); + }; + _.ii = function wVd() { + return JTd(), mTd; + }; + _.ki = function xVd(a) { + var b; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + nVd(this, null); + return; + case 2: + !this.b && (this.b = new SVd((JTd(), FTd), C8, this)); + this.b.c.$b(); + return; + case 3: + lVd(this, null); + return; + case 4: + !this.a && (this.a = new XZd(r7, this, 4)); + sLd(this.a); + return; + case 5: + !this.c && (this.c = new zie(r7, this, 5)); + sLd(this.c); + return; + } + Cvd(this, a - AYd((JTd(), mTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? mTd : b), a)); + }; + _.Ib = function yVd() { + return oVd(this); + }; + _.d = null; + sfb(SHe, "EAnnotationImpl", 519); + feb(141, 721, _Je, DVd); + _.Gi = function EVd(a, b) { + zVd(this, a, RD(b, 44)); + }; + _.Wk = function FVd(a, b) { + return AVd(this, RD(a, 44), b); + }; + _.$i = function GVd(a) { + return RD(RD(this.c, 71).$i(a), 136); + }; + _.Ii = function HVd() { + return RD(this.c, 71).Ii(); + }; + _.Ji = function IVd() { + return RD(this.c, 71).Ji(); + }; + _.Ki = function JVd(a) { + return RD(this.c, 71).Ki(a); + }; + _.Xk = function KVd(a, b) { + return BVd(this, a, b); + }; + _.Fk = function LVd(a) { + return RD(this.c, 79).Fk(a); + }; + _.ak = function MVd() { + }; + _.Qj = function NVd() { + return RD(this.c, 79).Qj(); + }; + _.ck = function OVd(a, b, c) { + var d; + d = RD(BXd(this.b).wi().si(this.b), 136); + d.Ci(a); + d.Di(b); + d.nd(c); + return d; + }; + _.dk = function PVd() { + return new uje(this); + }; + _.Wb = function QVd(a) { + CVd(this, a); + }; + _.Gk = function RVd() { + RD(this.c, 79).Gk(); + }; + sfb(ZJe, "EcoreEMap", 141); + feb(165, 141, _Je, SVd); + _._j = function TVd() { + var a, b, c, d, e, f; + if (this.d == null) { + f = $C(D6, KJe, 66, 2 * this.f + 1, 0, 1); + for (c = this.c.Kc(); c.e != c.i.gc(); ) { + b = RD(c.Yj(), 136); + d = b.Bi(); + e = (d & lve) % f.length; + a = f[e]; + !a && (a = f[e] = new uje(this)); + a.Fc(b); + } + this.d = f; + } + }; + sfb(SHe, "EAnnotationImpl/1", 165); + feb(292, 448, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 114: 1, 481: 1, 54: 1, 99: 1, 158: 1, 292: 1, 119: 1, 120: 1 }); + _.Lh = function eWd(a, b, c) { + var d, e; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return Geb(), (this.Bb & 256) != 0 ? true : false; + case 3: + return Geb(), (this.Bb & 512) != 0 ? true : false; + case 4: + return sgb(this.s); + case 5: + return sgb(this.t); + case 6: + return Geb(), this.Jk() ? true : false; + case 7: + return Geb(), e = this.s, e >= 1 ? true : false; + case 8: + if (b) + return WVd(this); + return this.r; + case 9: + return this.q; + } + return zvd(this, a - AYd(this.ii()), vYd((d = RD(Ywd(this, 16), 29), !d ? this.ii() : d), a), b, c); + }; + _.Uh = function fWd(a, b, c) { + var d, e; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), rLd(this.Ab, a, c); + case 9: + return VVd(this, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? this.ii() : d), b), 69), e.wk().Ak(this, Wwd(this), b - AYd(this.ii()), a, c); + }; + _.Wh = function gWd(a) { + var b, c; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return (this.Bb & 256) == 0; + case 3: + return (this.Bb & 512) == 0; + case 4: + return this.s != 0; + case 5: + return this.t != 1; + case 6: + return this.Jk(); + case 7: + return c = this.s, c >= 1; + case 8: + return !!this.r && !this.q.e && j2d(this.q).i == 0; + case 9: + return !!this.q && !(!!this.r && !this.q.e && j2d(this.q).i == 0); + } + return Avd(this, a - AYd(this.ii()), vYd((b = RD(Ywd(this, 16), 29), !b ? this.ii() : b), a)); + }; + _.bi = function hWd(a, b) { + var c, d; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + this.ui(WD(b)); + return; + case 2: + _Vd(this, Heb(TD(b))); + return; + case 3: + aWd(this, Heb(TD(b))); + return; + case 4: + $Vd(this, RD(b, 17).a); + return; + case 5: + this.Zk(RD(b, 17).a); + return; + case 8: + YVd(this, RD(b, 142)); + return; + case 9: + d = XVd(this, RD(b, 89), null); + !!d && d.oj(); + return; + } + Bvd(this, a - AYd(this.ii()), vYd((c = RD(Ywd(this, 16), 29), !c ? this.ii() : c), a), b); + }; + _.ii = function iWd() { + return JTd(), HTd; + }; + _.ki = function jWd(a) { + var b, c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + this.ui(null); + return; + case 2: + _Vd(this, true); + return; + case 3: + aWd(this, true); + return; + case 4: + $Vd(this, 0); + return; + case 5: + this.Zk(1); + return; + case 8: + YVd(this, null); + return; + case 9: + c = XVd(this, null, null); + !!c && c.oj(); + return; + } + Cvd(this, a - AYd(this.ii()), vYd((b = RD(Ywd(this, 16), 29), !b ? this.ii() : b), a)); + }; + _.pi = function kWd() { + WVd(this); + this.Bb |= 1; + }; + _.Hk = function lWd() { + return WVd(this); + }; + _.Ik = function mWd() { + return this.t; + }; + _.Jk = function nWd() { + var a; + return a = this.t, a > 1 || a == -1; + }; + _.Si = function oWd() { + return (this.Bb & 512) != 0; + }; + _.Yk = function pWd(a, b) { + return ZVd(this, a, b); + }; + _.Zk = function qWd(a) { + bWd(this, a); + }; + _.Ib = function rWd() { + return cWd(this); + }; + _.s = 0; + _.t = 1; + sfb(SHe, "ETypedElementImpl", 292); + feb(462, 292, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 179: 1, 69: 1, 114: 1, 481: 1, 54: 1, 99: 1, 158: 1, 462: 1, 292: 1, 119: 1, 120: 1, 692: 1 }); + _.Ah = function IWd(a) { + return sWd(this, a); + }; + _.Lh = function JWd(a, b, c) { + var d, e; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return Geb(), (this.Bb & 256) != 0 ? true : false; + case 3: + return Geb(), (this.Bb & 512) != 0 ? true : false; + case 4: + return sgb(this.s); + case 5: + return sgb(this.t); + case 6: + return Geb(), this.Jk() ? true : false; + case 7: + return Geb(), e = this.s, e >= 1 ? true : false; + case 8: + if (b) + return WVd(this); + return this.r; + case 9: + return this.q; + case 10: + return Geb(), (this.Bb & gwe) != 0 ? true : false; + case 11: + return Geb(), (this.Bb & cKe) != 0 ? true : false; + case 12: + return Geb(), (this.Bb & qxe) != 0 ? true : false; + case 13: + return this.j; + case 14: + return tWd(this); + case 15: + return Geb(), (this.Bb & bKe) != 0 ? true : false; + case 16: + return Geb(), (this.Bb & Ove) != 0 ? true : false; + case 17: + return uWd(this); + } + return zvd(this, a - AYd(this.ii()), vYd((d = RD(Ywd(this, 16), 29), !d ? this.ii() : d), a), b, c); + }; + _.Sh = function KWd(a, b, c) { + var d, e, f; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), qLd(this.Ab, a, c); + case 17: + !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? sWd(this, c) : this.Cb.Th(this, -1 - e, null, c))); + return xvd(this, a, 17, c); + } + return f = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? this.ii() : d), b), 69), f.wk().zk(this, Wwd(this), b - AYd(this.ii()), a, c); + }; + _.Uh = function LWd(a, b, c) { + var d, e; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), rLd(this.Ab, a, c); + case 9: + return VVd(this, c); + case 17: + return xvd(this, null, 17, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? this.ii() : d), b), 69), e.wk().Ak(this, Wwd(this), b - AYd(this.ii()), a, c); + }; + _.Wh = function MWd(a) { + var b, c; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return (this.Bb & 256) == 0; + case 3: + return (this.Bb & 512) == 0; + case 4: + return this.s != 0; + case 5: + return this.t != 1; + case 6: + return this.Jk(); + case 7: + return c = this.s, c >= 1; + case 8: + return !!this.r && !this.q.e && j2d(this.q).i == 0; + case 9: + return !!this.q && !(!!this.r && !this.q.e && j2d(this.q).i == 0); + case 10: + return (this.Bb & gwe) == 0; + case 11: + return (this.Bb & cKe) != 0; + case 12: + return (this.Bb & qxe) != 0; + case 13: + return this.j != null; + case 14: + return tWd(this) != null; + case 15: + return (this.Bb & bKe) != 0; + case 16: + return (this.Bb & Ove) != 0; + case 17: + return !!uWd(this); + } + return Avd(this, a - AYd(this.ii()), vYd((b = RD(Ywd(this, 16), 29), !b ? this.ii() : b), a)); + }; + _.bi = function NWd(a, b) { + var c, d; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + CWd(this, WD(b)); + return; + case 2: + _Vd(this, Heb(TD(b))); + return; + case 3: + aWd(this, Heb(TD(b))); + return; + case 4: + $Vd(this, RD(b, 17).a); + return; + case 5: + this.Zk(RD(b, 17).a); + return; + case 8: + YVd(this, RD(b, 142)); + return; + case 9: + d = XVd(this, RD(b, 89), null); + !!d && d.oj(); + return; + case 10: + xWd(this, Heb(TD(b))); + return; + case 11: + FWd(this, Heb(TD(b))); + return; + case 12: + DWd(this, Heb(TD(b))); + return; + case 13: + yWd(this, WD(b)); + return; + case 15: + EWd(this, Heb(TD(b))); + return; + case 16: + AWd(this, Heb(TD(b))); + return; + } + Bvd(this, a - AYd(this.ii()), vYd((c = RD(Ywd(this, 16), 29), !c ? this.ii() : c), a), b); + }; + _.ii = function OWd() { + return JTd(), GTd; + }; + _.ki = function PWd(a) { + var b, c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + ZD(this.Cb, 90) && v$d(yYd(RD(this.Cb, 90)), 4); + PAd(this, null); + return; + case 2: + _Vd(this, true); + return; + case 3: + aWd(this, true); + return; + case 4: + $Vd(this, 0); + return; + case 5: + this.Zk(1); + return; + case 8: + YVd(this, null); + return; + case 9: + c = XVd(this, null, null); + !!c && c.oj(); + return; + case 10: + xWd(this, true); + return; + case 11: + FWd(this, false); + return; + case 12: + DWd(this, false); + return; + case 13: + this.i = null; + zWd(this, null); + return; + case 15: + EWd(this, false); + return; + case 16: + AWd(this, false); + return; + } + Cvd(this, a - AYd(this.ii()), vYd((b = RD(Ywd(this, 16), 29), !b ? this.ii() : b), a)); + }; + _.pi = function QWd() { + Afe(Qee((lke(), jke), this)); + WVd(this); + this.Bb |= 1; + }; + _.pk = function RWd() { + return this.f; + }; + _.ik = function SWd() { + return tWd(this); + }; + _.qk = function TWd() { + return uWd(this); + }; + _.uk = function UWd() { + return null; + }; + _.$k = function VWd() { + return this.k; + }; + _.Lj = function WWd() { + return this.n; + }; + _.vk = function XWd() { + return vWd(this); + }; + _.wk = function YWd() { + var a, b, c, d, e, f, g, h, i; + if (!this.p) { + c = uWd(this); + (c.i == null && rYd(c), c.i).length; + d = this.uk(); + !!d && AYd(uWd(d)); + e = WVd(this); + g = e.kk(); + a = !g ? null : (g.i & 1) != 0 ? g == xdb ? QI : g == kE ? bJ : g == jE ? ZI : g == iE ? VI : g == lE ? eJ : g == wdb ? lJ : g == gE ? RI : SI : g; + b = tWd(this); + h = e.ik(); + Mje(this); + (this.Bb & Ove) != 0 && (!!(f = Tee((lke(), jke), c)) && f != this || !!(f = zfe(Qee(jke, this)))) ? this.p = new Z6d(this, f) : this.Jk() ? this.al() ? !d ? (this.Bb & bKe) != 0 ? !a ? this.bl() ? this.p = new i7d(42, this) : this.p = new i7d(0, this) : a == UK ? this.p = new g7d(50, O6, this) : this.bl() ? this.p = new g7d(43, a, this) : this.p = new g7d(1, a, this) : !a ? this.bl() ? this.p = new i7d(44, this) : this.p = new i7d(2, this) : a == UK ? this.p = new g7d(41, O6, this) : this.bl() ? this.p = new g7d(45, a, this) : this.p = new g7d(3, a, this) : (this.Bb & bKe) != 0 ? !a ? this.bl() ? this.p = new j7d(46, this, d) : this.p = new j7d(4, this, d) : this.bl() ? this.p = new h7d(47, a, this, d) : this.p = new h7d(5, a, this, d) : !a ? this.bl() ? this.p = new j7d(48, this, d) : this.p = new j7d(6, this, d) : this.bl() ? this.p = new h7d(49, a, this, d) : this.p = new h7d(7, a, this, d) : ZD(e, 156) ? a == Jbb ? this.p = new i7d(40, this) : (this.Bb & 512) != 0 ? (this.Bb & bKe) != 0 ? !a ? this.p = new i7d(8, this) : this.p = new g7d(9, a, this) : !a ? this.p = new i7d(10, this) : this.p = new g7d(11, a, this) : (this.Bb & bKe) != 0 ? !a ? this.p = new i7d(12, this) : this.p = new g7d(13, a, this) : !a ? this.p = new i7d(14, this) : this.p = new g7d(15, a, this) : !d ? this.bl() ? (this.Bb & bKe) != 0 ? !a ? this.p = new i7d(16, this) : this.p = new g7d(17, a, this) : !a ? this.p = new i7d(18, this) : this.p = new g7d(19, a, this) : (this.Bb & bKe) != 0 ? !a ? this.p = new i7d(20, this) : this.p = new g7d(21, a, this) : !a ? this.p = new i7d(22, this) : this.p = new g7d(23, a, this) : (i = d.t, i > 1 || i == -1 ? this.bl() ? (this.Bb & bKe) != 0 ? !a ? this.p = new j7d(24, this, d) : this.p = new h7d(25, a, this, d) : !a ? this.p = new j7d(26, this, d) : this.p = new h7d(27, a, this, d) : (this.Bb & bKe) != 0 ? !a ? this.p = new j7d(28, this, d) : this.p = new h7d(29, a, this, d) : !a ? this.p = new j7d(30, this, d) : this.p = new h7d(31, a, this, d) : this.bl() ? (this.Bb & bKe) != 0 ? !a ? this.p = new j7d(32, this, d) : this.p = new h7d(33, a, this, d) : !a ? this.p = new j7d(34, this, d) : this.p = new h7d(35, a, this, d) : (this.Bb & bKe) != 0 ? !a ? this.p = new j7d(36, this, d) : this.p = new h7d(37, a, this, d) : !a ? this.p = new j7d(38, this, d) : this.p = new h7d(39, a, this, d)) : this._k() ? this.bl() ? this.p = new K7d(RD(e, 29), this, d) : this.p = new C7d(RD(e, 29), this, d) : ZD(e, 156) ? a == Jbb ? this.p = new i7d(40, this) : (this.Bb & bKe) != 0 ? !a ? this.p = new J8d(RD(e, 156), b, h, this) : this.p = new L8d(b, h, this, (a8d(), g == kE ? Y7d : g == xdb ? T7d : g == lE ? Z7d : g == jE ? X7d : g == iE ? W7d : g == wdb ? _7d : g == gE ? U7d : g == hE ? V7d : $7d)) : !a ? this.p = new C8d(RD(e, 156), b, h, this) : this.p = new E8d(b, h, this, (a8d(), g == kE ? Y7d : g == xdb ? T7d : g == lE ? Z7d : g == jE ? X7d : g == iE ? W7d : g == wdb ? _7d : g == gE ? U7d : g == hE ? V7d : $7d)) : this.al() ? !d ? (this.Bb & bKe) != 0 ? this.bl() ? this.p = new d9d(RD(e, 29), this) : this.p = new b9d(RD(e, 29), this) : this.bl() ? this.p = new _8d(RD(e, 29), this) : this.p = new Z8d(RD(e, 29), this) : (this.Bb & bKe) != 0 ? this.bl() ? this.p = new l9d(RD(e, 29), this, d) : this.p = new j9d(RD(e, 29), this, d) : this.bl() ? this.p = new h9d(RD(e, 29), this, d) : this.p = new f9d(RD(e, 29), this, d) : this.bl() ? !d ? (this.Bb & bKe) != 0 ? this.p = new p9d(RD(e, 29), this) : this.p = new n9d(RD(e, 29), this) : (this.Bb & bKe) != 0 ? this.p = new t9d(RD(e, 29), this, d) : this.p = new r9d(RD(e, 29), this, d) : !d ? (this.Bb & bKe) != 0 ? this.p = new v9d(RD(e, 29), this) : this.p = new N8d(RD(e, 29), this) : (this.Bb & bKe) != 0 ? this.p = new z9d(RD(e, 29), this, d) : this.p = new x9d(RD(e, 29), this, d); + } + return this.p; + }; + _.rk = function ZWd() { + return (this.Bb & gwe) != 0; + }; + _._k = function $Wd() { + return false; + }; + _.al = function _Wd() { + return false; + }; + _.sk = function aXd() { + return (this.Bb & Ove) != 0; + }; + _.xk = function bXd() { + return wWd(this); + }; + _.bl = function cXd() { + return false; + }; + _.tk = function dXd() { + return (this.Bb & bKe) != 0; + }; + _.cl = function eXd(a) { + this.k = a; + }; + _.ui = function fXd(a) { + CWd(this, a); + }; + _.Ib = function gXd() { + return GWd(this); + }; + _.e = false; + _.n = 0; + sfb(SHe, "EStructuralFeatureImpl", 462); + feb(331, 462, { 110: 1, 94: 1, 93: 1, 35: 1, 155: 1, 197: 1, 58: 1, 179: 1, 69: 1, 114: 1, 481: 1, 54: 1, 99: 1, 331: 1, 158: 1, 462: 1, 292: 1, 119: 1, 120: 1, 692: 1 }, mXd); + _.Lh = function nXd(a, b, c) { + var d, e; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return Geb(), (this.Bb & 256) != 0 ? true : false; + case 3: + return Geb(), (this.Bb & 512) != 0 ? true : false; + case 4: + return sgb(this.s); + case 5: + return sgb(this.t); + case 6: + return Geb(), jXd(this) ? true : false; + case 7: + return Geb(), e = this.s, e >= 1 ? true : false; + case 8: + if (b) + return WVd(this); + return this.r; + case 9: + return this.q; + case 10: + return Geb(), (this.Bb & gwe) != 0 ? true : false; + case 11: + return Geb(), (this.Bb & cKe) != 0 ? true : false; + case 12: + return Geb(), (this.Bb & qxe) != 0 ? true : false; + case 13: + return this.j; + case 14: + return tWd(this); + case 15: + return Geb(), (this.Bb & bKe) != 0 ? true : false; + case 16: + return Geb(), (this.Bb & Ove) != 0 ? true : false; + case 17: + return uWd(this); + case 18: + return Geb(), (this.Bb & QHe) != 0 ? true : false; + case 19: + if (b) + return iXd(this); + return hXd(this); + } + return zvd(this, a - AYd((JTd(), nTd)), vYd((d = RD(Ywd(this, 16), 29), !d ? nTd : d), a), b, c); + }; + _.Wh = function oXd(a) { + var b, c; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return (this.Bb & 256) == 0; + case 3: + return (this.Bb & 512) == 0; + case 4: + return this.s != 0; + case 5: + return this.t != 1; + case 6: + return jXd(this); + case 7: + return c = this.s, c >= 1; + case 8: + return !!this.r && !this.q.e && j2d(this.q).i == 0; + case 9: + return !!this.q && !(!!this.r && !this.q.e && j2d(this.q).i == 0); + case 10: + return (this.Bb & gwe) == 0; + case 11: + return (this.Bb & cKe) != 0; + case 12: + return (this.Bb & qxe) != 0; + case 13: + return this.j != null; + case 14: + return tWd(this) != null; + case 15: + return (this.Bb & bKe) != 0; + case 16: + return (this.Bb & Ove) != 0; + case 17: + return !!uWd(this); + case 18: + return (this.Bb & QHe) != 0; + case 19: + return !!hXd(this); + } + return Avd(this, a - AYd((JTd(), nTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? nTd : b), a)); + }; + _.bi = function pXd(a, b) { + var c, d; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + CWd(this, WD(b)); + return; + case 2: + _Vd(this, Heb(TD(b))); + return; + case 3: + aWd(this, Heb(TD(b))); + return; + case 4: + $Vd(this, RD(b, 17).a); + return; + case 5: + lXd(this, RD(b, 17).a); + return; + case 8: + YVd(this, RD(b, 142)); + return; + case 9: + d = XVd(this, RD(b, 89), null); + !!d && d.oj(); + return; + case 10: + xWd(this, Heb(TD(b))); + return; + case 11: + FWd(this, Heb(TD(b))); + return; + case 12: + DWd(this, Heb(TD(b))); + return; + case 13: + yWd(this, WD(b)); + return; + case 15: + EWd(this, Heb(TD(b))); + return; + case 16: + AWd(this, Heb(TD(b))); + return; + case 18: + kXd(this, Heb(TD(b))); + return; + } + Bvd(this, a - AYd((JTd(), nTd)), vYd((c = RD(Ywd(this, 16), 29), !c ? nTd : c), a), b); + }; + _.ii = function qXd() { + return JTd(), nTd; + }; + _.ki = function rXd(a) { + var b, c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + ZD(this.Cb, 90) && v$d(yYd(RD(this.Cb, 90)), 4); + PAd(this, null); + return; + case 2: + _Vd(this, true); + return; + case 3: + aWd(this, true); + return; + case 4: + $Vd(this, 0); + return; + case 5: + this.b = 0; + bWd(this, 1); + return; + case 8: + YVd(this, null); + return; + case 9: + c = XVd(this, null, null); + !!c && c.oj(); + return; + case 10: + xWd(this, true); + return; + case 11: + FWd(this, false); + return; + case 12: + DWd(this, false); + return; + case 13: + this.i = null; + zWd(this, null); + return; + case 15: + EWd(this, false); + return; + case 16: + AWd(this, false); + return; + case 18: + kXd(this, false); + return; + } + Cvd(this, a - AYd((JTd(), nTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? nTd : b), a)); + }; + _.pi = function sXd() { + iXd(this); + Afe(Qee((lke(), jke), this)); + WVd(this); + this.Bb |= 1; + }; + _.Jk = function tXd() { + return jXd(this); + }; + _.Yk = function uXd(a, b) { + this.b = 0; + this.a = null; + return ZVd(this, a, b); + }; + _.Zk = function vXd(a) { + lXd(this, a); + }; + _.Ib = function wXd() { + var a; + if ((this.Db & 64) != 0) + return GWd(this); + a = new Shb(GWd(this)); + a.a += " (iD: "; + Ohb(a, (this.Bb & QHe) != 0); + a.a += ")"; + return a.a; + }; + _.b = 0; + sfb(SHe, "EAttributeImpl", 331); + feb(364, 448, { 110: 1, 94: 1, 93: 1, 142: 1, 155: 1, 197: 1, 58: 1, 114: 1, 54: 1, 99: 1, 364: 1, 158: 1, 119: 1, 120: 1, 691: 1 }); + _.dl = function NXd(a) { + return a.Dh() == this; + }; + _.Ah = function OXd(a) { + return AXd(this, a); + }; + _.Bh = function PXd(a, b) { + this.w = null; + this.Db = b << 16 | this.Db & 255; + this.Cb = a; + }; + _.Lh = function QXd(a, b, c) { + var d; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return this.D != null ? this.D : this.B; + case 3: + return DXd(this); + case 4: + return this.ik(); + case 5: + return this.F; + case 6: + if (b) + return BXd(this); + return xXd(this); + case 7: + return !this.A && (this.A = new iie(z7, this, 7)), this.A; + } + return zvd(this, a - AYd(this.ii()), vYd((d = RD(Ywd(this, 16), 29), !d ? this.ii() : d), a), b, c); + }; + _.Sh = function RXd(a, b, c) { + var d, e, f; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), qLd(this.Ab, a, c); + case 6: + !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? AXd(this, c) : this.Cb.Th(this, -1 - e, null, c))); + return xvd(this, a, 6, c); + } + return f = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? this.ii() : d), b), 69), f.wk().zk(this, Wwd(this), b - AYd(this.ii()), a, c); + }; + _.Uh = function SXd(a, b, c) { + var d, e; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), rLd(this.Ab, a, c); + case 6: + return xvd(this, null, 6, c); + case 7: + return !this.A && (this.A = new iie(z7, this, 7)), rLd(this.A, a, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? this.ii() : d), b), 69), e.wk().Ak(this, Wwd(this), b - AYd(this.ii()), a, c); + }; + _.Wh = function TXd(a) { + var b; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return this.D != null && this.D == this.F; + case 3: + return !!DXd(this); + case 4: + return this.ik() != null; + case 5: + return this.F != null && this.F != this.D && this.F != this.B; + case 6: + return !!xXd(this); + case 7: + return !!this.A && this.A.i != 0; + } + return Avd(this, a - AYd(this.ii()), vYd((b = RD(Ywd(this, 16), 29), !b ? this.ii() : b), a)); + }; + _.bi = function UXd(a, b) { + var c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + LXd(this, WD(b)); + return; + case 2: + IXd(this, WD(b)); + return; + case 5: + KXd(this, WD(b)); + return; + case 7: + !this.A && (this.A = new iie(z7, this, 7)); + sLd(this.A); + !this.A && (this.A = new iie(z7, this, 7)); + YGd(this.A, RD(b, 16)); + return; + } + Bvd(this, a - AYd(this.ii()), vYd((c = RD(Ywd(this, 16), 29), !c ? this.ii() : c), a), b); + }; + _.ii = function VXd() { + return JTd(), pTd; + }; + _.ki = function WXd(a) { + var b; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + ZD(this.Cb, 184) && (RD(this.Cb, 184).tb = null); + PAd(this, null); + return; + case 2: + yXd(this, null); + zXd(this, this.D); + return; + case 5: + KXd(this, null); + return; + case 7: + !this.A && (this.A = new iie(z7, this, 7)); + sLd(this.A); + return; + } + Cvd(this, a - AYd(this.ii()), vYd((b = RD(Ywd(this, 16), 29), !b ? this.ii() : b), a)); + }; + _.hk = function XXd() { + var a; + return this.G == -1 && (this.G = (a = BXd(this), a ? fZd(a.vi(), this) : -1)), this.G; + }; + _.ik = function YXd() { + return null; + }; + _.jk = function ZXd() { + return BXd(this); + }; + _.el = function $Xd() { + return this.v; + }; + _.kk = function _Xd() { + return DXd(this); + }; + _.lk = function aYd() { + return this.D != null ? this.D : this.B; + }; + _.mk = function bYd() { + return this.F; + }; + _.fk = function cYd(a) { + return FXd(this, a); + }; + _.fl = function dYd(a) { + this.v = a; + }; + _.gl = function eYd(a) { + GXd(this, a); + }; + _.hl = function fYd(a) { + this.C = a; + }; + _.ui = function gYd(a) { + LXd(this, a); + }; + _.Ib = function hYd() { + return MXd(this); + }; + _.C = null; + _.D = null; + _.G = -1; + sfb(SHe, "EClassifierImpl", 364); + feb(90, 364, { 110: 1, 94: 1, 93: 1, 29: 1, 142: 1, 155: 1, 197: 1, 58: 1, 114: 1, 54: 1, 99: 1, 90: 1, 364: 1, 158: 1, 482: 1, 119: 1, 120: 1, 691: 1 }, HYd); + _.dl = function IYd(a) { + return DYd(this, a.Dh()); + }; + _.Lh = function JYd(a, b, c) { + var d; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return this.D != null ? this.D : this.B; + case 3: + return DXd(this); + case 4: + return null; + case 5: + return this.F; + case 6: + if (b) + return BXd(this); + return xXd(this); + case 7: + return !this.A && (this.A = new iie(z7, this, 7)), this.A; + case 8: + return Geb(), (this.Bb & 256) != 0 ? true : false; + case 9: + return Geb(), (this.Bb & 512) != 0 ? true : false; + case 10: + return zYd(this); + case 11: + return !this.q && (this.q = new C5d(s7, this, 11, 10)), this.q; + case 12: + return mYd(this); + case 13: + return qYd(this); + case 14: + return qYd(this), this.r; + case 15: + return mYd(this), this.k; + case 16: + return nYd(this); + case 17: + return pYd(this); + case 18: + return rYd(this); + case 19: + return sYd(this); + case 20: + return mYd(this), this.o; + case 21: + return !this.s && (this.s = new C5d(y7, this, 21, 17)), this.s; + case 22: + return tYd(this); + case 23: + return oYd(this); + } + return zvd(this, a - AYd((JTd(), oTd)), vYd((d = RD(Ywd(this, 16), 29), !d ? oTd : d), a), b, c); + }; + _.Sh = function KYd(a, b, c) { + var d, e, f; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), qLd(this.Ab, a, c); + case 6: + !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? AXd(this, c) : this.Cb.Th(this, -1 - e, null, c))); + return xvd(this, a, 6, c); + case 11: + return !this.q && (this.q = new C5d(s7, this, 11, 10)), qLd(this.q, a, c); + case 21: + return !this.s && (this.s = new C5d(y7, this, 21, 17)), qLd(this.s, a, c); + } + return f = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), oTd) : d), b), 69), f.wk().zk(this, Wwd(this), b - AYd((JTd(), oTd)), a, c); + }; + _.Uh = function LYd(a, b, c) { + var d, e; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), rLd(this.Ab, a, c); + case 6: + return xvd(this, null, 6, c); + case 7: + return !this.A && (this.A = new iie(z7, this, 7)), rLd(this.A, a, c); + case 11: + return !this.q && (this.q = new C5d(s7, this, 11, 10)), rLd(this.q, a, c); + case 21: + return !this.s && (this.s = new C5d(y7, this, 21, 17)), rLd(this.s, a, c); + case 22: + return rLd(tYd(this), a, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), oTd) : d), b), 69), e.wk().Ak(this, Wwd(this), b - AYd((JTd(), oTd)), a, c); + }; + _.Wh = function MYd(a) { + var b; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return this.D != null && this.D == this.F; + case 3: + return !!DXd(this); + case 4: + return false; + case 5: + return this.F != null && this.F != this.D && this.F != this.B; + case 6: + return !!xXd(this); + case 7: + return !!this.A && this.A.i != 0; + case 8: + return (this.Bb & 256) != 0; + case 9: + return (this.Bb & 512) != 0; + case 10: + return !!this.u && tYd(this.u.a).i != 0 && !(!!this.n && d$d(this.n)); + case 11: + return !!this.q && this.q.i != 0; + case 12: + return mYd(this).i != 0; + case 13: + return qYd(this).i != 0; + case 14: + return qYd(this), this.r.i != 0; + case 15: + return mYd(this), this.k.i != 0; + case 16: + return nYd(this).i != 0; + case 17: + return pYd(this).i != 0; + case 18: + return rYd(this).i != 0; + case 19: + return sYd(this).i != 0; + case 20: + return mYd(this), !!this.o; + case 21: + return !!this.s && this.s.i != 0; + case 22: + return !!this.n && d$d(this.n); + case 23: + return oYd(this).i != 0; + } + return Avd(this, a - AYd((JTd(), oTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? oTd : b), a)); + }; + _.Zh = function NYd(a) { + var b; + b = this.i == null || !!this.q && this.q.i != 0 ? null : wYd(this, a); + return b ? b : _zd(this, a); + }; + _.bi = function OYd(a, b) { + var c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + LXd(this, WD(b)); + return; + case 2: + IXd(this, WD(b)); + return; + case 5: + KXd(this, WD(b)); + return; + case 7: + !this.A && (this.A = new iie(z7, this, 7)); + sLd(this.A); + !this.A && (this.A = new iie(z7, this, 7)); + YGd(this.A, RD(b, 16)); + return; + case 8: + EYd(this, Heb(TD(b))); + return; + case 9: + FYd(this, Heb(TD(b))); + return; + case 10: + VJd(zYd(this)); + YGd(zYd(this), RD(b, 16)); + return; + case 11: + !this.q && (this.q = new C5d(s7, this, 11, 10)); + sLd(this.q); + !this.q && (this.q = new C5d(s7, this, 11, 10)); + YGd(this.q, RD(b, 16)); + return; + case 21: + !this.s && (this.s = new C5d(y7, this, 21, 17)); + sLd(this.s); + !this.s && (this.s = new C5d(y7, this, 21, 17)); + YGd(this.s, RD(b, 16)); + return; + case 22: + sLd(tYd(this)); + YGd(tYd(this), RD(b, 16)); + return; + } + Bvd(this, a - AYd((JTd(), oTd)), vYd((c = RD(Ywd(this, 16), 29), !c ? oTd : c), a), b); + }; + _.ii = function PYd() { + return JTd(), oTd; + }; + _.ki = function QYd(a) { + var b; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + ZD(this.Cb, 184) && (RD(this.Cb, 184).tb = null); + PAd(this, null); + return; + case 2: + yXd(this, null); + zXd(this, this.D); + return; + case 5: + KXd(this, null); + return; + case 7: + !this.A && (this.A = new iie(z7, this, 7)); + sLd(this.A); + return; + case 8: + EYd(this, false); + return; + case 9: + FYd(this, false); + return; + case 10: + !!this.u && VJd(this.u); + return; + case 11: + !this.q && (this.q = new C5d(s7, this, 11, 10)); + sLd(this.q); + return; + case 21: + !this.s && (this.s = new C5d(y7, this, 21, 17)); + sLd(this.s); + return; + case 22: + !!this.n && sLd(this.n); + return; + } + Cvd(this, a - AYd((JTd(), oTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? oTd : b), a)); + }; + _.pi = function RYd() { + var a, b; + mYd(this); + qYd(this); + nYd(this); + pYd(this); + rYd(this); + sYd(this); + oYd(this); + OHd(q$d(yYd(this))); + if (this.s) { + for (a = 0, b = this.s.i; a < b; ++a) { + aAd(QHd(this.s, a)); + } + } + if (this.q) { + for (a = 0, b = this.q.i; a < b; ++a) { + aAd(QHd(this.q, a)); + } + } + Oee((lke(), jke), this).xe(); + this.Bb |= 1; + }; + _.Ib = function SYd() { + return GYd(this); + }; + _.k = null; + _.r = null; + var iYd, jYd, kYd; + sfb(SHe, "EClassImpl", 90); + feb(2092, 2091, nKe); + _.Ei = function TYd(a, b) { + return nLd(this, a, b); + }; + _.Fi = function UYd(a) { + return nLd(this, this.i, a); + }; + _.Gi = function VYd(a, b) { + oLd(this, a, b); + }; + _.Hi = function WYd(a) { + pLd(this, a); + }; + _.Wk = function XYd(a, b) { + return qLd(this, a, b); + }; + _.$i = function YYd(a) { + return NHd(this, a); + }; + _.Xk = function aZd(a, b) { + return rLd(this, a, b); + }; + _.Xi = function bZd(a, b) { + return xLd(this, a, b); + }; + _.Ii = function ZYd() { + return new yMd(this); + }; + _.Ji = function $Yd() { + return new BMd(this); + }; + _.Ki = function _Yd(a) { + return ZGd(this, a); + }; + sfb(ZJe, "NotifyingInternalEListImpl", 2092); + feb(632, 2092, oKe); + _.Hc = function lZd(a) { + return cZd(this, a); + }; + _.Ij = function mZd(a, b, c, d, e) { + return dZd(this, a, b, c, d, e); + }; + _.Jj = function nZd(a) { + eZd(this, a); + }; + _.Fk = function oZd(a) { + return this; + }; + _.Lk = function pZd() { + return vYd(this.e.Dh(), this.Lj()); + }; + _.Kj = function qZd() { + return this.Lk(); + }; + _.Lj = function rZd() { + return BYd(this.e.Dh(), this.Lk()); + }; + _.il = function sZd() { + return RD(this.Lk().Hk(), 29).kk(); + }; + _.jl = function tZd() { + return Z5d(RD(this.Lk(), 19)).n; + }; + _.jj = function uZd() { + return this.e; + }; + _.kl = function vZd() { + return true; + }; + _.ll = function wZd() { + return false; + }; + _.ml = function xZd() { + return false; + }; + _.nl = function yZd() { + return false; + }; + _.dd = function zZd(a) { + return fZd(this, a); + }; + _.Nj = function AZd(a, b) { + var c; + return c = RD(a, 54), this.ml() ? this.kl() ? c.Rh(this.e, this.jl(), this.il(), b) : c.Rh(this.e, BYd(c.Dh(), Z5d(RD(this.Lk(), 19))), null, b) : c.Rh(this.e, -1 - this.Lj(), null, b); + }; + _.Oj = function BZd(a, b) { + var c; + return c = RD(a, 54), this.ml() ? this.kl() ? c.Th(this.e, this.jl(), this.il(), b) : c.Th(this.e, BYd(c.Dh(), Z5d(RD(this.Lk(), 19))), null, b) : c.Th(this.e, -1 - this.Lj(), null, b); + }; + _.al = function CZd() { + return false; + }; + _.ol = function DZd() { + return true; + }; + _.fk = function EZd(a) { + return QRd(this.d, a); + }; + _.Pj = function FZd() { + return Mvd(this.e); + }; + _.Qj = function GZd() { + return this.i != 0; + }; + _.aj = function HZd(a) { + return IMd(this.d, a); + }; + _.Wi = function IZd(a, b) { + return this.ol() && this.nl() ? gZd(this, a, RD(b, 58)) : b; + }; + _.pl = function JZd(a) { + return a.Vh() ? Vvd(this.e, RD(a, 54)) : a; + }; + _.Wb = function KZd(a) { + hZd(this, a); + }; + _.Pc = function LZd() { + return iZd(this); + }; + _.Qc = function MZd(a) { + var b; + if (this.nl()) { + for (b = this.i - 1; b >= 0; --b) { + QHd(this, b); + } + } + return XHd(this, a); + }; + _.Gk = function NZd() { + sLd(this); + }; + _.Zi = function OZd(a, b) { + return jZd(this, a, b); + }; + sfb(ZJe, "EcoreEList", 632); + feb(505, 632, oKe, PZd); + _.Li = function QZd() { + return false; + }; + _.Lj = function RZd() { + return this.c; + }; + _.Mj = function SZd() { + return false; + }; + _.ol = function TZd() { + return true; + }; + _.Si = function UZd() { + return true; + }; + _.Wi = function VZd(a, b) { + return b; + }; + _.Yi = function WZd() { + return false; + }; + _.c = 0; + sfb(ZJe, "EObjectEList", 505); + feb(83, 505, oKe, XZd); + _.Mj = function YZd() { + return true; + }; + _.ml = function ZZd() { + return false; + }; + _.al = function $Zd() { + return true; + }; + sfb(ZJe, "EObjectContainmentEList", 83); + feb(555, 83, oKe, _Zd); + _.Ni = function a$d() { + this.b = true; + }; + _.Qj = function b$d() { + return this.b; + }; + _.Gk = function c$d() { + var a; + sLd(this); + if (Mvd(this.e)) { + a = this.b; + this.b = false; + qvd(this.e, new Q3d(this.e, 2, this.c, a, false)); + } else { + this.b = false; + } + }; + _.b = false; + sfb(ZJe, "EObjectContainmentEList/Unsettable", 555); + feb(1161, 555, oKe, h$d); + _.Ti = function l$d(a, b) { + var c, d; + return c = RD(uLd(this, a, b), 89), Mvd(this.e) && eZd(this, new c4d(this.a, 7, (JTd(), qTd), sgb(b), (d = c.c, ZD(d, 90) ? RD(d, 29) : zTd), a)), c; + }; + _.Uj = function m$d(a, b) { + return e$d(this, RD(a, 89), b); + }; + _.Vj = function n$d(a, b) { + return f$d(this, RD(a, 89), b); + }; + _.Wj = function o$d(a, b, c) { + return g$d(this, RD(a, 89), RD(b, 89), c); + }; + _.Ij = function i$d(a, b, c, d, e) { + switch (a) { + case 3: { + return dZd(this, a, b, c, d, this.i > 1); + } + case 5: { + return dZd(this, a, b, c, d, this.i - RD(c, 15).gc() > 0); + } + default: { + return new P3d(this.e, a, this.c, b, c, d, true); + } + } + }; + _.Tj = function j$d() { + return true; + }; + _.Qj = function k$d() { + return d$d(this); + }; + _.Gk = function p$d() { + sLd(this); + }; + sfb(SHe, "EClassImpl/1", 1161); + feb(1175, 1174, EJe); + _.dj = function t$d(a) { + var b, c, d, e, f, g, h; + c = a.gj(); + if (c != 8) { + d = s$d(a); + if (d == 0) { + switch (c) { + case 1: + case 9: { + h = a.kj(); + if (h != null) { + b = yYd(RD(h, 482)); + !b.c && (b.c = new X9d()); + dHd(b.c, a.jj()); + } + g = a.ij(); + if (g != null) { + e = RD(g, 482); + if ((e.Bb & 1) == 0) { + b = yYd(e); + !b.c && (b.c = new X9d()); + WGd(b.c, RD(a.jj(), 29)); + } + } + break; + } + case 3: { + g = a.ij(); + if (g != null) { + e = RD(g, 482); + if ((e.Bb & 1) == 0) { + b = yYd(e); + !b.c && (b.c = new X9d()); + WGd(b.c, RD(a.jj(), 29)); + } + } + break; + } + case 5: { + g = a.ij(); + if (g != null) { + for (f = RD(g, 16).Kc(); f.Ob(); ) { + e = RD(f.Pb(), 482); + if ((e.Bb & 1) == 0) { + b = yYd(e); + !b.c && (b.c = new X9d()); + WGd(b.c, RD(a.jj(), 29)); + } + } + } + break; + } + case 4: { + h = a.kj(); + if (h != null) { + e = RD(h, 482); + if ((e.Bb & 1) == 0) { + b = yYd(e); + !b.c && (b.c = new X9d()); + dHd(b.c, a.jj()); + } + } + break; + } + case 6: { + h = a.kj(); + if (h != null) { + for (f = RD(h, 16).Kc(); f.Ob(); ) { + e = RD(f.Pb(), 482); + if ((e.Bb & 1) == 0) { + b = yYd(e); + !b.c && (b.c = new X9d()); + dHd(b.c, a.jj()); + } + } + } + break; + } + } + } + this.ql(d); + } + }; + _.ql = function u$d(a) { + r$d(this, a); + }; + _.b = 63; + sfb(SHe, "ESuperAdapter", 1175); + feb(1176, 1175, EJe, w$d); + _.ql = function x$d(a) { + v$d(this, a); + }; + sfb(SHe, "EClassImpl/10", 1176); + feb(1165, 710, oKe); + _.Ei = function y$d(a, b) { + return IHd(this, a, b); + }; + _.Fi = function z$d(a) { + return JHd(this, a); + }; + _.Gi = function A$d(a, b) { + KHd(this, a, b); + }; + _.Hi = function B$d(a) { + LHd(this, a); + }; + _.$i = function D$d(a) { + return NHd(this, a); + }; + _.Xi = function L$d(a, b) { + return UHd(this, a, b); + }; + _.Wk = function C$d(a, b) { + throw Adb(new jib()); + }; + _.Ii = function E$d() { + return new yMd(this); + }; + _.Ji = function F$d() { + return new BMd(this); + }; + _.Ki = function G$d(a) { + return ZGd(this, a); + }; + _.Xk = function H$d(a, b) { + throw Adb(new jib()); + }; + _.Fk = function I$d(a) { + return this; + }; + _.Qj = function J$d() { + return this.i != 0; + }; + _.Wb = function K$d(a) { + throw Adb(new jib()); + }; + _.Gk = function M$d() { + throw Adb(new jib()); + }; + sfb(ZJe, "EcoreEList/UnmodifiableEList", 1165); + feb(328, 1165, oKe, N$d); + _.Yi = function O$d() { + return false; + }; + sfb(ZJe, "EcoreEList/UnmodifiableEList/FastCompare", 328); + feb(1168, 328, oKe, R$d); + _.dd = function S$d(a) { + var b, c, d; + if (ZD(a, 179)) { + b = RD(a, 179); + c = b.Lj(); + if (c != -1) { + for (d = this.i; c < d; ++c) { + if (dE(this.g[c]) === dE(a)) { + return c; + } + } + } + } + return -1; + }; + sfb(SHe, "EClassImpl/1EAllStructuralFeaturesList", 1168); + feb(1162, 506, PIe, W$d); + _.aj = function X$d(a) { + return $C(o7, sKe, 89, a, 0, 1); + }; + _.Yi = function Y$d() { + return false; + }; + sfb(SHe, "EClassImpl/1EGenericSuperTypeEList", 1162); + feb(633, 506, PIe, Z$d); + _.aj = function $$d(a) { + return $C(y7, lKe, 179, a, 0, 1); + }; + _.Yi = function _$d() { + return false; + }; + sfb(SHe, "EClassImpl/1EStructuralFeatureUniqueEList", 633); + feb(755, 506, PIe, a_d); + _.aj = function b_d(a) { + return $C(v7, lKe, 19, a, 0, 1); + }; + _.Yi = function c_d() { + return false; + }; + sfb(SHe, "EClassImpl/1ReferenceList", 755); + feb(1163, 506, PIe, e_d); + _.Mi = function f_d(a, b) { + d_d(this, RD(b, 35)); + }; + _.aj = function g_d(a) { + return $C(g7, lKe, 35, a, 0, 1); + }; + _.Yi = function h_d() { + return false; + }; + sfb(SHe, "EClassImpl/2", 1163); + feb(1164, 506, PIe, i_d); + _.aj = function j_d(a) { + return $C(g7, lKe, 35, a, 0, 1); + }; + _.Yi = function k_d() { + return false; + }; + sfb(SHe, "EClassImpl/3", 1164); + feb(1166, 328, oKe, n_d); + _.Fc = function o_d(a) { + return l_d(this, RD(a, 35)); + }; + _.Hi = function p_d(a) { + m_d(this, RD(a, 35)); + }; + sfb(SHe, "EClassImpl/4", 1166); + feb(1167, 328, oKe, s_d); + _.Fc = function t_d(a) { + return q_d(this, RD(a, 19)); + }; + _.Hi = function u_d(a) { + r_d(this, RD(a, 19)); + }; + sfb(SHe, "EClassImpl/5", 1167); + feb(1169, 506, PIe, v_d); + _.aj = function w_d(a) { + return $C(s7, mKe, 62, a, 0, 1); + }; + _.Yi = function x_d() { + return false; + }; + sfb(SHe, "EClassImpl/6", 1169); + feb(1170, 506, PIe, y_d); + _.aj = function z_d(a) { + return $C(v7, lKe, 19, a, 0, 1); + }; + _.Yi = function A_d() { + return false; + }; + sfb(SHe, "EClassImpl/7", 1170); + feb(2095, 2094, { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 70: 1, 61: 1, 71: 1 }); + _.Ei = function B_d(a, b) { + return QJd(this, a, b); + }; + _.Fi = function C_d(a) { + return QJd(this, this.Ej(), a); + }; + _.Gi = function D_d(a, b) { + RJd(this, a, b); + }; + _.Hi = function E_d(a) { + SJd(this, a); + }; + _.Wk = function F_d(a, b) { + return TJd(this, a, b); + }; + _.Xk = function L_d(a, b) { + return UJd(this, a, b); + }; + _.Xi = function M_d(a, b) { + return WJd(this, a, b); + }; + _.$i = function G_d(a) { + return this.xj(a); + }; + _.Ii = function H_d() { + return new yMd(this); + }; + _.pj = function I_d() { + return this.sj(); + }; + _.Ji = function J_d() { + return new BMd(this); + }; + _.Ki = function K_d(a) { + return ZGd(this, a); + }; + sfb(ZJe, "DelegatingNotifyingInternalEListImpl", 2095); + feb(756, 2095, tKe); + _.Li = function R_d() { + var a; + a = vYd(Uwd(this.b), this.Lj()).Hk(); + return ZD(a, 156) && !ZD(a, 469) && (a.kk().i & 1) == 0; + }; + _.Hc = function S_d(a) { + var b, c, d, e, f, g, h, i; + if (this.ol()) { + i = this.Ej(); + if (i > 4) { + if (this.fk(a)) { + if (this.al()) { + d = RD(a, 54); + c = d.Eh(); + h = c == this.b && (this.ml() ? d.yh(d.Fh(), RD(vYd(Uwd(this.b), this.Lj()).Hk(), 29).kk()) == Z5d(RD(vYd(Uwd(this.b), this.Lj()), 19)).n : -1 - d.Fh() == this.Lj()); + if (this.nl() && !h && !c && !!d.Jh()) { + for (e = 0; e < i; ++e) { + b = O_d(this, this.xj(e)); + if (dE(b) === dE(a)) { + return true; + } + } + } + return h; + } else if (this.ml() && !this.ll()) { + f = RD(a, 58).Mh(Z5d(RD(vYd(Uwd(this.b), this.Lj()), 19))); + if (dE(f) === dE(this.b)) { + return true; + } else if (f == null || !RD(f, 58).Vh()) { + return false; + } + } + } else { + return false; + } + } + g = this.uj(a); + if (this.nl() && !g) { + for (e = 0; e < i; ++e) { + d = O_d(this, this.xj(e)); + if (dE(d) === dE(a)) { + return true; + } + } + } + return g; + } else { + return this.uj(a); + } + }; + _.Ij = function T_d(a, b, c, d, e) { + return new P3d(this.b, a, this.Lj(), b, c, d, e); + }; + _.Jj = function U_d(a) { + qvd(this.b, a); + }; + _.Fk = function V_d(a) { + return this; + }; + _.Kj = function W_d() { + return vYd(Uwd(this.b), this.Lj()); + }; + _.Lj = function X_d() { + return BYd(Uwd(this.b), vYd(Uwd(this.b), this.Lj())); + }; + _.jj = function Y_d() { + return this.b; + }; + _.kl = function Z_d() { + return !!vYd(Uwd(this.b), this.Lj()).Hk().kk(); + }; + _.Mj = function $_d() { + var a, b; + b = vYd(Uwd(this.b), this.Lj()); + if (ZD(b, 102)) { + a = RD(b, 19); + return (a.Bb & QHe) != 0 || !!Z5d(RD(b, 19)); + } else { + return false; + } + }; + _.ll = function __d() { + var a, b, c, d; + b = vYd(Uwd(this.b), this.Lj()); + if (ZD(b, 102)) { + a = RD(b, 19); + c = Z5d(a); + return !!c && (d = c.t, d > 1 || d == -1); + } else { + return false; + } + }; + _.ml = function a0d() { + var a, b, c; + b = vYd(Uwd(this.b), this.Lj()); + if (ZD(b, 102)) { + a = RD(b, 19); + c = Z5d(a); + return !!c; + } else { + return false; + } + }; + _.nl = function b0d() { + var a, b; + b = vYd(Uwd(this.b), this.Lj()); + if (ZD(b, 102)) { + a = RD(b, 19); + return (a.Bb & txe) != 0; + } else { + return false; + } + }; + _.dd = function c0d(a) { + var b, c, d, e; + d = this.zj(a); + if (d >= 0) + return d; + if (this.ol()) { + for (c = 0, e = this.Ej(); c < e; ++c) { + b = O_d(this, this.xj(c)); + if (dE(b) === dE(a)) { + return c; + } + } + } + return -1; + }; + _.Nj = function d0d(a, b) { + var c; + return c = RD(a, 54), this.ml() ? this.kl() ? c.Rh(this.b, Z5d(RD(vYd(Uwd(this.b), this.Lj()), 19)).n, RD(vYd(Uwd(this.b), this.Lj()).Hk(), 29).kk(), b) : c.Rh(this.b, BYd(c.Dh(), Z5d(RD(vYd(Uwd(this.b), this.Lj()), 19))), null, b) : c.Rh(this.b, -1 - this.Lj(), null, b); + }; + _.Oj = function e0d(a, b) { + var c; + return c = RD(a, 54), this.ml() ? this.kl() ? c.Th(this.b, Z5d(RD(vYd(Uwd(this.b), this.Lj()), 19)).n, RD(vYd(Uwd(this.b), this.Lj()).Hk(), 29).kk(), b) : c.Th(this.b, BYd(c.Dh(), Z5d(RD(vYd(Uwd(this.b), this.Lj()), 19))), null, b) : c.Th(this.b, -1 - this.Lj(), null, b); + }; + _.al = function f0d() { + var a, b; + b = vYd(Uwd(this.b), this.Lj()); + if (ZD(b, 102)) { + a = RD(b, 19); + return (a.Bb & QHe) != 0; + } else { + return false; + } + }; + _.ol = function g0d() { + return ZD(vYd(Uwd(this.b), this.Lj()).Hk(), 90); + }; + _.fk = function h0d(a) { + return vYd(Uwd(this.b), this.Lj()).Hk().fk(a); + }; + _.Pj = function i0d() { + return Mvd(this.b); + }; + _.Qj = function j0d() { + return !this.Aj(); + }; + _.Si = function k0d() { + return vYd(Uwd(this.b), this.Lj()).Si(); + }; + _.Wi = function l0d(a, b) { + return N_d(this, a, b); + }; + _.Wb = function m0d(a) { + VJd(this); + YGd(this, RD(a, 15)); + }; + _.Pc = function n0d() { + var a; + if (this.nl()) { + for (a = this.Ej() - 1; a >= 0; --a) { + N_d(this, a, this.xj(a)); + } + } + return this.Fj(); + }; + _.Qc = function o0d(a) { + var b; + if (this.nl()) { + for (b = this.Ej() - 1; b >= 0; --b) { + N_d(this, b, this.xj(b)); + } + } + return this.Gj(a); + }; + _.Gk = function p0d() { + VJd(this); + }; + _.Zi = function q0d(a, b) { + return P_d(this, a, b); + }; + sfb(ZJe, "DelegatingEcoreEList", 756); + feb(1171, 756, tKe, w0d); + _.qj = function z0d(a, b) { + r0d(this, a, RD(b, 29)); + }; + _.rj = function A0d(a) { + s0d(this, RD(a, 29)); + }; + _.xj = function G0d(a) { + var b, c; + return b = RD(QHd(tYd(this.a), a), 89), c = b.c, ZD(c, 90) ? RD(c, 29) : (JTd(), zTd); + }; + _.Cj = function L0d(a) { + var b, c; + return b = RD(vLd(tYd(this.a), a), 89), c = b.c, ZD(c, 90) ? RD(c, 29) : (JTd(), zTd); + }; + _.Dj = function M0d(a, b) { + return u0d(this, a, RD(b, 29)); + }; + _.Li = function x0d() { + return false; + }; + _.Ij = function y0d(a, b, c, d, e) { + return null; + }; + _.sj = function B0d() { + return new c1d(this); + }; + _.tj = function C0d() { + sLd(tYd(this.a)); + }; + _.uj = function D0d(a) { + return t0d(this, a); + }; + _.vj = function E0d(a) { + var b, c; + for (c = a.Kc(); c.Ob(); ) { + b = c.Pb(); + if (!t0d(this, b)) { + return false; + } + } + return true; + }; + _.wj = function F0d(a) { + var b, c, d; + if (ZD(a, 15)) { + d = RD(a, 15); + if (d.gc() == tYd(this.a).i) { + for (b = d.Kc(), c = new dMd(this); b.Ob(); ) { + if (dE(b.Pb()) !== dE(bMd(c))) { + return false; + } + } + return true; + } + } + return false; + }; + _.yj = function H0d() { + var a, b, c, d, e; + c = 1; + for (b = new dMd(tYd(this.a)); b.e != b.i.gc(); ) { + a = RD(bMd(b), 89); + d = (e = a.c, ZD(e, 90) ? RD(e, 29) : (JTd(), zTd)); + c = 31 * c + (!d ? 0 : kFb(d)); + } + return c; + }; + _.zj = function I0d(a) { + var b, c, d, e; + d = 0; + for (c = new dMd(tYd(this.a)); c.e != c.i.gc(); ) { + b = RD(bMd(c), 89); + if (dE(a) === dE((e = b.c, ZD(e, 90) ? RD(e, 29) : (JTd(), zTd)))) { + return d; + } + ++d; + } + return -1; + }; + _.Aj = function J0d() { + return tYd(this.a).i == 0; + }; + _.Bj = function K0d() { + return null; + }; + _.Ej = function N0d() { + return tYd(this.a).i; + }; + _.Fj = function O0d() { + var a, b, c, d, e, f; + f = tYd(this.a).i; + e = $C(jJ, rve, 1, f, 5, 1); + c = 0; + for (b = new dMd(tYd(this.a)); b.e != b.i.gc(); ) { + a = RD(bMd(b), 89); + e[c++] = (d = a.c, ZD(d, 90) ? RD(d, 29) : (JTd(), zTd)); + } + return e; + }; + _.Gj = function P0d(a) { + var b, c, d, e, f, g, h; + h = tYd(this.a).i; + if (a.length < h) { + e = IMd(rb(a).c, h); + a = e; + } + a.length > h && bD(a, h, null); + d = 0; + for (c = new dMd(tYd(this.a)); c.e != c.i.gc(); ) { + b = RD(bMd(c), 89); + f = (g = b.c, ZD(g, 90) ? RD(g, 29) : (JTd(), zTd)); + bD(a, d++, f); + } + return a; + }; + _.Hj = function Q0d() { + var a, b, c, d, e; + e = new Qhb(); + e.a += "["; + a = tYd(this.a); + for (b = 0, d = tYd(this.a).i; b < d; ) { + Nhb(e, Ghb((c = RD(QHd(a, b), 89).c, ZD(c, 90) ? RD(c, 29) : (JTd(), zTd)))); + ++b < d && (e.a += pve, e); + } + e.a += "]"; + return e.a; + }; + _.Jj = function R0d(a) { + }; + _.Lj = function S0d() { + return 10; + }; + _.kl = function T0d() { + return true; + }; + _.Mj = function U0d() { + return false; + }; + _.ll = function V0d() { + return false; + }; + _.ml = function W0d() { + return false; + }; + _.nl = function X0d() { + return true; + }; + _.al = function Y0d() { + return false; + }; + _.ol = function Z0d() { + return true; + }; + _.fk = function $0d(a) { + return ZD(a, 90); + }; + _.Qj = function _0d() { + return CYd(this.a); + }; + _.Si = function a1d() { + return true; + }; + _.Yi = function b1d() { + return true; + }; + sfb(SHe, "EClassImpl/8", 1171); + feb(1172, 2062, kwe, c1d); + _.fd = function d1d(a) { + return ZGd(this.a, a); + }; + _.gc = function e1d() { + return tYd(this.a.a).i; + }; + sfb(SHe, "EClassImpl/8/1", 1172); + feb(1173, 506, PIe, f1d); + _.aj = function g1d(a) { + return $C(i7, rve, 142, a, 0, 1); + }; + _.Yi = function h1d() { + return false; + }; + sfb(SHe, "EClassImpl/9", 1173); + feb(1160, 49, Ixe, i1d); + sfb(SHe, "EClassImpl/MyHashSet", 1160); + feb(577, 364, { 110: 1, 94: 1, 93: 1, 142: 1, 156: 1, 847: 1, 155: 1, 197: 1, 58: 1, 114: 1, 54: 1, 99: 1, 364: 1, 158: 1, 119: 1, 120: 1, 691: 1 }, k1d); + _.Lh = function l1d(a, b, c) { + var d; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return this.D != null ? this.D : this.B; + case 3: + return DXd(this); + case 4: + return this.ik(); + case 5: + return this.F; + case 6: + if (b) + return BXd(this); + return xXd(this); + case 7: + return !this.A && (this.A = new iie(z7, this, 7)), this.A; + case 8: + return Geb(), (this.Bb & 256) != 0 ? true : false; + } + return zvd(this, a - AYd(this.ii()), vYd((d = RD(Ywd(this, 16), 29), !d ? this.ii() : d), a), b, c); + }; + _.Wh = function m1d(a) { + var b; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return this.D != null && this.D == this.F; + case 3: + return !!DXd(this); + case 4: + return this.ik() != null; + case 5: + return this.F != null && this.F != this.D && this.F != this.B; + case 6: + return !!xXd(this); + case 7: + return !!this.A && this.A.i != 0; + case 8: + return (this.Bb & 256) == 0; + } + return Avd(this, a - AYd(this.ii()), vYd((b = RD(Ywd(this, 16), 29), !b ? this.ii() : b), a)); + }; + _.bi = function n1d(a, b) { + var c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + LXd(this, WD(b)); + return; + case 2: + IXd(this, WD(b)); + return; + case 5: + KXd(this, WD(b)); + return; + case 7: + !this.A && (this.A = new iie(z7, this, 7)); + sLd(this.A); + !this.A && (this.A = new iie(z7, this, 7)); + YGd(this.A, RD(b, 16)); + return; + case 8: + j1d(this, Heb(TD(b))); + return; + } + Bvd(this, a - AYd(this.ii()), vYd((c = RD(Ywd(this, 16), 29), !c ? this.ii() : c), a), b); + }; + _.ii = function o1d() { + return JTd(), rTd; + }; + _.ki = function p1d(a) { + var b; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + ZD(this.Cb, 184) && (RD(this.Cb, 184).tb = null); + PAd(this, null); + return; + case 2: + yXd(this, null); + zXd(this, this.D); + return; + case 5: + KXd(this, null); + return; + case 7: + !this.A && (this.A = new iie(z7, this, 7)); + sLd(this.A); + return; + case 8: + j1d(this, true); + return; + } + Cvd(this, a - AYd(this.ii()), vYd((b = RD(Ywd(this, 16), 29), !b ? this.ii() : b), a)); + }; + _.pi = function q1d() { + Oee((lke(), jke), this).xe(); + this.Bb |= 1; + }; + _.ok = function r1d() { + var a, b, c; + if (!this.c) { + a = Kje(BXd(this)); + if (!a.dc()) { + for (c = a.Kc(); c.Ob(); ) { + b = WD(c.Pb()); + !!bAd(this, b) && Jje(this); + } + } + } + return this.b; + }; + _.ik = function s1d() { + var b; + if (!this.e) { + b = null; + try { + b = DXd(this); + } catch (a) { + a = zdb(a); + if (!ZD(a, 103)) + throw Adb(a); + } + this.d = null; + !!b && (b.i & 1) != 0 && (b == xdb ? this.d = (Geb(), Eeb) : b == kE ? this.d = sgb(0) : b == jE ? this.d = new Tfb(0) : b == iE ? this.d = 0 : b == lE ? this.d = Hgb(0) : b == wdb ? this.d = bhb(0) : b == gE ? this.d = $eb(0) : this.d = hfb(0)); + this.e = true; + } + return this.d; + }; + _.nk = function t1d() { + return (this.Bb & 256) != 0; + }; + _.rl = function u1d(a) { + a && (this.D = "org.eclipse.emf.common.util.AbstractEnumerator"); + }; + _.gl = function v1d(a) { + GXd(this, a); + this.rl(a); + }; + _.hl = function w1d(a) { + this.C = a; + this.e = false; + }; + _.Ib = function x1d() { + var a; + if ((this.Db & 64) != 0) + return MXd(this); + a = new Shb(MXd(this)); + a.a += " (serializable: "; + Ohb(a, (this.Bb & 256) != 0); + a.a += ")"; + return a.a; + }; + _.c = false; + _.d = null; + _.e = false; + sfb(SHe, "EDataTypeImpl", 577); + feb(469, 577, { 110: 1, 94: 1, 93: 1, 142: 1, 156: 1, 847: 1, 685: 1, 155: 1, 197: 1, 58: 1, 114: 1, 54: 1, 99: 1, 364: 1, 469: 1, 158: 1, 119: 1, 120: 1, 691: 1 }, A1d); + _.Lh = function B1d(a, b, c) { + var d; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return this.D != null ? this.D : this.B; + case 3: + return DXd(this); + case 4: + return y1d(this); + case 5: + return this.F; + case 6: + if (b) + return BXd(this); + return xXd(this); + case 7: + return !this.A && (this.A = new iie(z7, this, 7)), this.A; + case 8: + return Geb(), (this.Bb & 256) != 0 ? true : false; + case 9: + return !this.a && (this.a = new C5d(l7, this, 9, 5)), this.a; + } + return zvd(this, a - AYd((JTd(), sTd)), vYd((d = RD(Ywd(this, 16), 29), !d ? sTd : d), a), b, c); + }; + _.Sh = function C1d(a, b, c) { + var d, e, f; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), qLd(this.Ab, a, c); + case 6: + !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? AXd(this, c) : this.Cb.Th(this, -1 - e, null, c))); + return xvd(this, a, 6, c); + case 9: + return !this.a && (this.a = new C5d(l7, this, 9, 5)), qLd(this.a, a, c); + } + return f = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), sTd) : d), b), 69), f.wk().zk(this, Wwd(this), b - AYd((JTd(), sTd)), a, c); + }; + _.Uh = function D1d(a, b, c) { + var d, e; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), rLd(this.Ab, a, c); + case 6: + return xvd(this, null, 6, c); + case 7: + return !this.A && (this.A = new iie(z7, this, 7)), rLd(this.A, a, c); + case 9: + return !this.a && (this.a = new C5d(l7, this, 9, 5)), rLd(this.a, a, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), sTd) : d), b), 69), e.wk().Ak(this, Wwd(this), b - AYd((JTd(), sTd)), a, c); + }; + _.Wh = function E1d(a) { + var b; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return this.D != null && this.D == this.F; + case 3: + return !!DXd(this); + case 4: + return !!y1d(this); + case 5: + return this.F != null && this.F != this.D && this.F != this.B; + case 6: + return !!xXd(this); + case 7: + return !!this.A && this.A.i != 0; + case 8: + return (this.Bb & 256) == 0; + case 9: + return !!this.a && this.a.i != 0; + } + return Avd(this, a - AYd((JTd(), sTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? sTd : b), a)); + }; + _.bi = function F1d(a, b) { + var c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + LXd(this, WD(b)); + return; + case 2: + IXd(this, WD(b)); + return; + case 5: + KXd(this, WD(b)); + return; + case 7: + !this.A && (this.A = new iie(z7, this, 7)); + sLd(this.A); + !this.A && (this.A = new iie(z7, this, 7)); + YGd(this.A, RD(b, 16)); + return; + case 8: + j1d(this, Heb(TD(b))); + return; + case 9: + !this.a && (this.a = new C5d(l7, this, 9, 5)); + sLd(this.a); + !this.a && (this.a = new C5d(l7, this, 9, 5)); + YGd(this.a, RD(b, 16)); + return; + } + Bvd(this, a - AYd((JTd(), sTd)), vYd((c = RD(Ywd(this, 16), 29), !c ? sTd : c), a), b); + }; + _.ii = function G1d() { + return JTd(), sTd; + }; + _.ki = function H1d(a) { + var b; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + ZD(this.Cb, 184) && (RD(this.Cb, 184).tb = null); + PAd(this, null); + return; + case 2: + yXd(this, null); + zXd(this, this.D); + return; + case 5: + KXd(this, null); + return; + case 7: + !this.A && (this.A = new iie(z7, this, 7)); + sLd(this.A); + return; + case 8: + j1d(this, true); + return; + case 9: + !this.a && (this.a = new C5d(l7, this, 9, 5)); + sLd(this.a); + return; + } + Cvd(this, a - AYd((JTd(), sTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? sTd : b), a)); + }; + _.pi = function I1d() { + var a, b; + if (this.a) { + for (a = 0, b = this.a.i; a < b; ++a) { + aAd(QHd(this.a, a)); + } + } + Oee((lke(), jke), this).xe(); + this.Bb |= 1; + }; + _.ik = function J1d() { + return y1d(this); + }; + _.fk = function K1d(a) { + if (a != null) { + return true; + } + return false; + }; + _.rl = function L1d(a) { + }; + sfb(SHe, "EEnumImpl", 469); + feb(582, 448, { 110: 1, 94: 1, 93: 1, 2039: 1, 694: 1, 155: 1, 197: 1, 58: 1, 114: 1, 54: 1, 99: 1, 582: 1, 158: 1, 119: 1, 120: 1 }, R1d); + _.xe = function $1d() { + return this.zb; + }; + _.Ah = function S1d(a) { + return M1d(this, a); + }; + _.Lh = function T1d(a, b, c) { + var d, e; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return sgb(this.d); + case 3: + return this.b ? this.b : this.a; + case 4: + return e = this.c, e == null ? this.zb : e; + case 5: + return this.Db >> 16 == 5 ? RD(this.Cb, 685) : null; + } + return zvd(this, a - AYd((JTd(), tTd)), vYd((d = RD(Ywd(this, 16), 29), !d ? tTd : d), a), b, c); + }; + _.Sh = function U1d(a, b, c) { + var d, e, f; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), qLd(this.Ab, a, c); + case 5: + !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? M1d(this, c) : this.Cb.Th(this, -1 - e, null, c))); + return xvd(this, a, 5, c); + } + return f = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), tTd) : d), b), 69), f.wk().zk(this, Wwd(this), b - AYd((JTd(), tTd)), a, c); + }; + _.Uh = function V1d(a, b, c) { + var d, e; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), rLd(this.Ab, a, c); + case 5: + return xvd(this, null, 5, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), tTd) : d), b), 69), e.wk().Ak(this, Wwd(this), b - AYd((JTd(), tTd)), a, c); + }; + _.Wh = function W1d(a) { + var b; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return this.d != 0; + case 3: + return !!this.b; + case 4: + return this.c != null; + case 5: + return !!(this.Db >> 16 == 5 ? RD(this.Cb, 685) : null); + } + return Avd(this, a - AYd((JTd(), tTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? tTd : b), a)); + }; + _.bi = function X1d(a, b) { + var c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + PAd(this, WD(b)); + return; + case 2: + Q1d(this, RD(b, 17).a); + return; + case 3: + O1d(this, RD(b, 2039)); + return; + case 4: + P1d(this, WD(b)); + return; + } + Bvd(this, a - AYd((JTd(), tTd)), vYd((c = RD(Ywd(this, 16), 29), !c ? tTd : c), a), b); + }; + _.ii = function Y1d() { + return JTd(), tTd; + }; + _.ki = function Z1d(a) { + var b; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + PAd(this, null); + return; + case 2: + Q1d(this, 0); + return; + case 3: + O1d(this, null); + return; + case 4: + P1d(this, null); + return; + } + Cvd(this, a - AYd((JTd(), tTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? tTd : b), a)); + }; + _.Ib = function _1d() { + var a; + return a = this.c, a == null ? this.zb : a; + }; + _.b = null; + _.c = null; + _.d = 0; + sfb(SHe, "EEnumLiteralImpl", 582); + var h8 = ufb(SHe, "EFactoryImpl/InternalEDateTimeFormat"); + feb(499, 1, { 2114: 1 }, c2d); + sfb(SHe, "EFactoryImpl/1ClientInternalEDateTimeFormat", 499); + feb(248, 120, { 110: 1, 94: 1, 93: 1, 89: 1, 58: 1, 114: 1, 54: 1, 99: 1, 248: 1, 119: 1, 120: 1 }, s2d); + _.Ch = function t2d(a, b, c) { + var d; + c = xvd(this, a, b, c); + if (!!this.e && ZD(a, 179)) { + d = k2d(this, this.e); + d != this.c && (c = o2d(this, d, c)); + } + return c; + }; + _.Lh = function u2d(a, b, c) { + var d; + switch (a) { + case 0: + return this.f; + case 1: + return !this.d && (this.d = new XZd(o7, this, 1)), this.d; + case 2: + if (b) + return i2d(this); + return this.c; + case 3: + return this.b; + case 4: + return this.e; + case 5: + if (b) + return h2d(this); + return this.a; + } + return zvd(this, a - AYd((JTd(), vTd)), vYd((d = RD(Ywd(this, 16), 29), !d ? vTd : d), a), b, c); + }; + _.Uh = function v2d(a, b, c) { + var d, e; + switch (b) { + case 0: + return g2d(this, null, c); + case 1: + return !this.d && (this.d = new XZd(o7, this, 1)), rLd(this.d, a, c); + case 3: + return e2d(this, null, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), vTd) : d), b), 69), e.wk().Ak(this, Wwd(this), b - AYd((JTd(), vTd)), a, c); + }; + _.Wh = function w2d(a) { + var b; + switch (a) { + case 0: + return !!this.f; + case 1: + return !!this.d && this.d.i != 0; + case 2: + return !!this.c; + case 3: + return !!this.b; + case 4: + return !!this.e; + case 5: + return !!this.a; + } + return Avd(this, a - AYd((JTd(), vTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? vTd : b), a)); + }; + _.bi = function x2d(a, b) { + var c; + switch (a) { + case 0: + q2d(this, RD(b, 89)); + return; + case 1: + !this.d && (this.d = new XZd(o7, this, 1)); + sLd(this.d); + !this.d && (this.d = new XZd(o7, this, 1)); + YGd(this.d, RD(b, 16)); + return; + case 3: + n2d(this, RD(b, 89)); + return; + case 4: + p2d(this, RD(b, 850)); + return; + case 5: + l2d(this, RD(b, 142)); + return; + } + Bvd(this, a - AYd((JTd(), vTd)), vYd((c = RD(Ywd(this, 16), 29), !c ? vTd : c), a), b); + }; + _.ii = function y2d() { + return JTd(), vTd; + }; + _.ki = function z2d(a) { + var b; + switch (a) { + case 0: + q2d(this, null); + return; + case 1: + !this.d && (this.d = new XZd(o7, this, 1)); + sLd(this.d); + return; + case 3: + n2d(this, null); + return; + case 4: + p2d(this, null); + return; + case 5: + l2d(this, null); + return; + } + Cvd(this, a - AYd((JTd(), vTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? vTd : b), a)); + }; + _.Ib = function A2d() { + var a; + a = new dib(awd(this)); + a.a += " (expression: "; + r2d(this, a); + a.a += ")"; + return a.a; + }; + var d2d; + sfb(SHe, "EGenericTypeImpl", 248); + feb(2067, 2062, uKe); + _.Gi = function C2d(a, b) { + B2d(this, a, b); + }; + _.Wk = function D2d(a, b) { + B2d(this, this.gc(), a); + return b; + }; + _.$i = function E2d(a) { + return ju(this.pj(), a); + }; + _.Ii = function F2d() { + return this.Ji(); + }; + _.pj = function G2d() { + return new mee(this); + }; + _.Ji = function H2d() { + return this.Ki(0); + }; + _.Ki = function I2d(a) { + return this.pj().fd(a); + }; + _.Xk = function J2d(a, b) { + ze(this, a, true); + return b; + }; + _.Ti = function K2d(a, b) { + var c, d; + d = ku(this, b); + c = this.fd(a); + c.Rb(d); + return d; + }; + _.Ui = function L2d(a, b) { + var c; + ze(this, b, true); + c = this.fd(a); + c.Rb(b); + }; + sfb(ZJe, "AbstractSequentialInternalEList", 2067); + feb(496, 2067, uKe, Q2d); + _.$i = function R2d(a) { + return ju(this.pj(), a); + }; + _.Ii = function S2d() { + if (this.b == null) { + return j3d(), j3d(), i3d; + } + return this.sl(); + }; + _.pj = function T2d() { + return new Whe(this.a, this.b); + }; + _.Ji = function U2d() { + if (this.b == null) { + return j3d(), j3d(), i3d; + } + return this.sl(); + }; + _.Ki = function V2d(a) { + var b, c; + if (this.b == null) { + if (a < 0 || a > 1) { + throw Adb(new veb(HJe + a + ", size=0")); + } + return j3d(), j3d(), i3d; + } + c = this.sl(); + for (b = 0; b < a; ++b) { + k3d(c); + } + return c; + }; + _.dc = function W2d() { + var a, b, c, d, e, f; + if (this.b != null) { + for (c = 0; c < this.b.length; ++c) { + a = this.b[c]; + if (!this.vl() || this.a.Xh(a)) { + f = this.a.Nh(a, false); + nke(); + if (RD(a, 69).xk()) { + b = RD(f, 160); + for (d = 0, e = b.gc(); d < e; ++d) { + if (O2d(b.Tl(d)) && b.Ul(d) != null) { + return false; + } + } + } else if (a.Jk()) { + if (!RD(f, 16).dc()) { + return false; + } + } else if (f != null) { + return false; + } + } + } + } + return true; + }; + _.Kc = function X2d() { + return P2d(this); + }; + _.fd = function Y2d(a) { + var b, c; + if (this.b == null) { + if (a != 0) { + throw Adb(new veb(HJe + a + ", size=0")); + } + return j3d(), j3d(), i3d; + } + c = this.ul() ? this.tl() : this.sl(); + for (b = 0; b < a; ++b) { + k3d(c); + } + return c; + }; + _.Ti = function Z2d(a, b) { + throw Adb(new jib()); + }; + _.Ui = function $2d(a, b) { + throw Adb(new jib()); + }; + _.sl = function _2d() { + return new p3d(this.a, this.b); + }; + _.tl = function a3d() { + return new D3d(this.a, this.b); + }; + _.ul = function b3d() { + return true; + }; + _.gc = function c3d() { + var a, b, c, d, e, f, g; + e = 0; + if (this.b != null) { + for (c = 0; c < this.b.length; ++c) { + a = this.b[c]; + if (!this.vl() || this.a.Xh(a)) { + g = this.a.Nh(a, false); + nke(); + if (RD(a, 69).xk()) { + b = RD(g, 160); + for (d = 0, f = b.gc(); d < f; ++d) { + O2d(b.Tl(d)) && b.Ul(d) != null && ++e; + } + } else + a.Jk() ? e += RD(g, 16).gc() : g != null && ++e; + } + } + } + return e; + }; + _.vl = function d3d() { + return true; + }; + var M2d; + sfb(ZJe, "EContentsEList", 496); + feb(1177, 496, uKe, e3d); + _.sl = function f3d() { + return new H3d(this.a, this.b); + }; + _.tl = function g3d() { + return new F3d(this.a, this.b); + }; + _.vl = function h3d() { + return false; + }; + sfb(SHe, "ENamedElementImpl/1", 1177); + feb(287, 1, vKe, p3d); + _.Nb = function s3d(a) { + Ztb(this, a); + }; + _.Rb = function q3d(a) { + throw Adb(new jib()); + }; + _.wl = function r3d(a) { + if (this.g != 0 || !!this.e) { + throw Adb(new dgb("Iterator already in use or already filtered")); + } + this.e = a; + }; + _.Ob = function t3d() { + var a, b, c, d, e, f; + switch (this.g) { + case 3: + case 2: { + return true; + } + case 1: { + return false; + } + case -3: { + !this.p ? ++this.n : this.p.Pb(); + } + default: { + if (!this.k || (!this.p ? !l3d(this) : !m3d(this, this.p))) { + while (this.d < this.c.length) { + b = this.c[this.d++]; + if ((!this.e || b.pk() != C4 || b.Lj() != 0) && (!this.vl() || this.b.Xh(b))) { + f = this.b.Nh(b, this.ul()); + this.f = (nke(), RD(b, 69).xk()); + if (this.f || b.Jk()) { + if (this.ul()) { + d = RD(f, 15); + this.k = d; + } else { + d = RD(f, 71); + this.k = this.j = d; + } + if (ZD(this.k, 59)) { + this.p = null; + this.o = this.k.gc(); + this.n = 0; + } else { + this.p = !this.j ? this.k.ed() : this.j.Ji(); + } + if (!this.p ? l3d(this) : m3d(this, this.p)) { + e = !this.p ? !this.j ? this.k.Xb(this.n++) : this.j.$i(this.n++) : this.p.Pb(); + if (this.f) { + a = RD(e, 76); + a.Lk(); + c = a.md(); + this.i = c; + } else { + c = e; + this.i = c; + } + this.g = 3; + return true; + } + } else if (f != null) { + this.k = null; + this.p = null; + c = f; + this.i = c; + this.g = 2; + return true; + } + } + } + this.k = null; + this.p = null; + this.f = false; + this.g = 1; + return false; + } else { + e = !this.p ? !this.j ? this.k.Xb(this.n++) : this.j.$i(this.n++) : this.p.Pb(); + if (this.f) { + a = RD(e, 76); + a.Lk(); + c = a.md(); + this.i = c; + } else { + c = e; + this.i = c; + } + this.g = 3; + return true; + } + } + } + }; + _.Sb = function u3d() { + var a, b, c, d, e, f; + switch (this.g) { + case -3: + case -2: { + return true; + } + case -1: { + return false; + } + case 3: { + !this.p ? --this.n : this.p.Ub(); + } + default: { + if (!this.k || (!this.p ? !n3d(this) : !o3d(this, this.p))) { + while (this.d > 0) { + b = this.c[--this.d]; + if ((!this.e || b.pk() != C4 || b.Lj() != 0) && (!this.vl() || this.b.Xh(b))) { + f = this.b.Nh(b, this.ul()); + this.f = (nke(), RD(b, 69).xk()); + if (this.f || b.Jk()) { + if (this.ul()) { + d = RD(f, 15); + this.k = d; + } else { + d = RD(f, 71); + this.k = this.j = d; + } + if (ZD(this.k, 59)) { + this.o = this.k.gc(); + this.n = this.o; + } else { + this.p = !this.j ? this.k.fd(this.k.gc()) : this.j.Ki(this.k.gc()); + } + if (!this.p ? n3d(this) : o3d(this, this.p)) { + e = !this.p ? !this.j ? this.k.Xb(--this.n) : this.j.$i(--this.n) : this.p.Ub(); + if (this.f) { + a = RD(e, 76); + a.Lk(); + c = a.md(); + this.i = c; + } else { + c = e; + this.i = c; + } + this.g = -3; + return true; + } + } else if (f != null) { + this.k = null; + this.p = null; + c = f; + this.i = c; + this.g = -2; + return true; + } + } + } + this.k = null; + this.p = null; + this.g = -1; + return false; + } else { + e = !this.p ? !this.j ? this.k.Xb(--this.n) : this.j.$i(--this.n) : this.p.Ub(); + if (this.f) { + a = RD(e, 76); + a.Lk(); + c = a.md(); + this.i = c; + } else { + c = e; + this.i = c; + } + this.g = -3; + return true; + } + } + } + }; + _.Pb = function v3d() { + return k3d(this); + }; + _.Tb = function w3d() { + return this.a; + }; + _.Ub = function x3d() { + var a; + if (this.g < -1 || this.Sb()) { + --this.a; + this.g = 0; + a = this.i; + this.Sb(); + return a; + } else { + throw Adb(new Dvb()); + } + }; + _.Vb = function y3d() { + return this.a - 1; + }; + _.Qb = function z3d() { + throw Adb(new jib()); + }; + _.ul = function A3d() { + return false; + }; + _.Wb = function B3d(a) { + throw Adb(new jib()); + }; + _.vl = function C3d() { + return true; + }; + _.a = 0; + _.d = 0; + _.f = false; + _.g = 0; + _.n = 0; + _.o = 0; + var i3d; + sfb(ZJe, "EContentsEList/FeatureIteratorImpl", 287); + feb(711, 287, vKe, D3d); + _.ul = function E3d() { + return true; + }; + sfb(ZJe, "EContentsEList/ResolvingFeatureIteratorImpl", 711); + feb(1178, 711, vKe, F3d); + _.vl = function G3d() { + return false; + }; + sfb(SHe, "ENamedElementImpl/1/1", 1178); + feb(1179, 287, vKe, H3d); + _.vl = function I3d() { + return false; + }; + sfb(SHe, "ENamedElementImpl/1/2", 1179); + feb(39, 152, GJe, L3d, M3d, N3d, O3d, P3d, Q3d, R3d, S3d, T3d, U3d, V3d, W3d, X3d, Y3d, Z3d, $3d, _3d, a4d, b4d, c4d, d4d, e4d, f4d, g4d, h4d); + _.Kj = function i4d() { + return K3d(this); + }; + _.Rj = function j4d() { + var a; + a = K3d(this); + if (a) { + return a.ik(); + } + return null; + }; + _.hj = function k4d(a) { + this.b == -1 && !!this.a && (this.b = this.c.Hh(this.a.Lj(), this.a.pk())); + return this.c.yh(this.b, a); + }; + _.jj = function l4d() { + return this.c; + }; + _.Sj = function m4d() { + var a; + a = K3d(this); + if (a) { + return a.tk(); + } + return false; + }; + _.b = -1; + sfb(SHe, "ENotificationImpl", 39); + feb(411, 292, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 62: 1, 114: 1, 481: 1, 54: 1, 99: 1, 158: 1, 411: 1, 292: 1, 119: 1, 120: 1 }, q4d); + _.Ah = function r4d(a) { + return n4d(this, a); + }; + _.Lh = function s4d(a, b, c) { + var d, e, f; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return Geb(), (this.Bb & 256) != 0 ? true : false; + case 3: + return Geb(), (this.Bb & 512) != 0 ? true : false; + case 4: + return sgb(this.s); + case 5: + return sgb(this.t); + case 6: + return Geb(), f = this.t, f > 1 || f == -1 ? true : false; + case 7: + return Geb(), e = this.s, e >= 1 ? true : false; + case 8: + if (b) + return WVd(this); + return this.r; + case 9: + return this.q; + case 10: + return this.Db >> 16 == 10 ? RD(this.Cb, 29) : null; + case 11: + return !this.d && (this.d = new iie(z7, this, 11)), this.d; + case 12: + return !this.c && (this.c = new C5d(u7, this, 12, 10)), this.c; + case 13: + return !this.a && (this.a = new F4d(this, this)), this.a; + case 14: + return o4d(this); + } + return zvd(this, a - AYd((JTd(), ATd)), vYd((d = RD(Ywd(this, 16), 29), !d ? ATd : d), a), b, c); + }; + _.Sh = function t4d(a, b, c) { + var d, e, f; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), qLd(this.Ab, a, c); + case 10: + !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? n4d(this, c) : this.Cb.Th(this, -1 - e, null, c))); + return xvd(this, a, 10, c); + case 12: + return !this.c && (this.c = new C5d(u7, this, 12, 10)), qLd(this.c, a, c); + } + return f = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), ATd) : d), b), 69), f.wk().zk(this, Wwd(this), b - AYd((JTd(), ATd)), a, c); + }; + _.Uh = function u4d(a, b, c) { + var d, e; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), rLd(this.Ab, a, c); + case 9: + return VVd(this, c); + case 10: + return xvd(this, null, 10, c); + case 11: + return !this.d && (this.d = new iie(z7, this, 11)), rLd(this.d, a, c); + case 12: + return !this.c && (this.c = new C5d(u7, this, 12, 10)), rLd(this.c, a, c); + case 14: + return rLd(o4d(this), a, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), ATd) : d), b), 69), e.wk().Ak(this, Wwd(this), b - AYd((JTd(), ATd)), a, c); + }; + _.Wh = function v4d(a) { + var b, c, d; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return (this.Bb & 256) == 0; + case 3: + return (this.Bb & 512) == 0; + case 4: + return this.s != 0; + case 5: + return this.t != 1; + case 6: + return d = this.t, d > 1 || d == -1; + case 7: + return c = this.s, c >= 1; + case 8: + return !!this.r && !this.q.e && j2d(this.q).i == 0; + case 9: + return !!this.q && !(!!this.r && !this.q.e && j2d(this.q).i == 0); + case 10: + return !!(this.Db >> 16 == 10 ? RD(this.Cb, 29) : null); + case 11: + return !!this.d && this.d.i != 0; + case 12: + return !!this.c && this.c.i != 0; + case 13: + return !!this.a && o4d(this.a.a).i != 0 && !(!!this.b && o5d(this.b)); + case 14: + return !!this.b && o5d(this.b); + } + return Avd(this, a - AYd((JTd(), ATd)), vYd((b = RD(Ywd(this, 16), 29), !b ? ATd : b), a)); + }; + _.bi = function w4d(a, b) { + var c, d; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + PAd(this, WD(b)); + return; + case 2: + _Vd(this, Heb(TD(b))); + return; + case 3: + aWd(this, Heb(TD(b))); + return; + case 4: + $Vd(this, RD(b, 17).a); + return; + case 5: + bWd(this, RD(b, 17).a); + return; + case 8: + YVd(this, RD(b, 142)); + return; + case 9: + d = XVd(this, RD(b, 89), null); + !!d && d.oj(); + return; + case 11: + !this.d && (this.d = new iie(z7, this, 11)); + sLd(this.d); + !this.d && (this.d = new iie(z7, this, 11)); + YGd(this.d, RD(b, 16)); + return; + case 12: + !this.c && (this.c = new C5d(u7, this, 12, 10)); + sLd(this.c); + !this.c && (this.c = new C5d(u7, this, 12, 10)); + YGd(this.c, RD(b, 16)); + return; + case 13: + !this.a && (this.a = new F4d(this, this)); + VJd(this.a); + !this.a && (this.a = new F4d(this, this)); + YGd(this.a, RD(b, 16)); + return; + case 14: + sLd(o4d(this)); + YGd(o4d(this), RD(b, 16)); + return; + } + Bvd(this, a - AYd((JTd(), ATd)), vYd((c = RD(Ywd(this, 16), 29), !c ? ATd : c), a), b); + }; + _.ii = function x4d() { + return JTd(), ATd; + }; + _.ki = function y4d(a) { + var b, c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + PAd(this, null); + return; + case 2: + _Vd(this, true); + return; + case 3: + aWd(this, true); + return; + case 4: + $Vd(this, 0); + return; + case 5: + bWd(this, 1); + return; + case 8: + YVd(this, null); + return; + case 9: + c = XVd(this, null, null); + !!c && c.oj(); + return; + case 11: + !this.d && (this.d = new iie(z7, this, 11)); + sLd(this.d); + return; + case 12: + !this.c && (this.c = new C5d(u7, this, 12, 10)); + sLd(this.c); + return; + case 13: + !!this.a && VJd(this.a); + return; + case 14: + !!this.b && sLd(this.b); + return; + } + Cvd(this, a - AYd((JTd(), ATd)), vYd((b = RD(Ywd(this, 16), 29), !b ? ATd : b), a)); + }; + _.pi = function z4d() { + var a, b; + if (this.c) { + for (a = 0, b = this.c.i; a < b; ++a) { + aAd(QHd(this.c, a)); + } + } + WVd(this); + this.Bb |= 1; + }; + sfb(SHe, "EOperationImpl", 411); + feb(513, 756, tKe, F4d); + _.qj = function I4d(a, b) { + A4d(this, a, RD(b, 142)); + }; + _.rj = function J4d(a) { + B4d(this, RD(a, 142)); + }; + _.xj = function P4d(a) { + var b, c; + return b = RD(QHd(o4d(this.a), a), 89), c = b.c, c ? c : (JTd(), wTd); + }; + _.Cj = function U4d(a) { + var b, c; + return b = RD(vLd(o4d(this.a), a), 89), c = b.c, c ? c : (JTd(), wTd); + }; + _.Dj = function V4d(a, b) { + return D4d(this, a, RD(b, 142)); + }; + _.Li = function G4d() { + return false; + }; + _.Ij = function H4d(a, b, c, d, e) { + return null; + }; + _.sj = function K4d() { + return new l5d(this); + }; + _.tj = function L4d() { + sLd(o4d(this.a)); + }; + _.uj = function M4d(a) { + return C4d(this, a); + }; + _.vj = function N4d(a) { + var b, c; + for (c = a.Kc(); c.Ob(); ) { + b = c.Pb(); + if (!C4d(this, b)) { + return false; + } + } + return true; + }; + _.wj = function O4d(a) { + var b, c, d; + if (ZD(a, 15)) { + d = RD(a, 15); + if (d.gc() == o4d(this.a).i) { + for (b = d.Kc(), c = new dMd(this); b.Ob(); ) { + if (dE(b.Pb()) !== dE(bMd(c))) { + return false; + } + } + return true; + } + } + return false; + }; + _.yj = function Q4d() { + var a, b, c, d, e; + c = 1; + for (b = new dMd(o4d(this.a)); b.e != b.i.gc(); ) { + a = RD(bMd(b), 89); + d = (e = a.c, e ? e : (JTd(), wTd)); + c = 31 * c + (!d ? 0 : tb(d)); + } + return c; + }; + _.zj = function R4d(a) { + var b, c, d, e; + d = 0; + for (c = new dMd(o4d(this.a)); c.e != c.i.gc(); ) { + b = RD(bMd(c), 89); + if (dE(a) === dE((e = b.c, e ? e : (JTd(), wTd)))) { + return d; + } + ++d; + } + return -1; + }; + _.Aj = function S4d() { + return o4d(this.a).i == 0; + }; + _.Bj = function T4d() { + return null; + }; + _.Ej = function W4d() { + return o4d(this.a).i; + }; + _.Fj = function X4d() { + var a, b, c, d, e, f; + f = o4d(this.a).i; + e = $C(jJ, rve, 1, f, 5, 1); + c = 0; + for (b = new dMd(o4d(this.a)); b.e != b.i.gc(); ) { + a = RD(bMd(b), 89); + e[c++] = (d = a.c, d ? d : (JTd(), wTd)); + } + return e; + }; + _.Gj = function Y4d(a) { + var b, c, d, e, f, g, h; + h = o4d(this.a).i; + if (a.length < h) { + e = IMd(rb(a).c, h); + a = e; + } + a.length > h && bD(a, h, null); + d = 0; + for (c = new dMd(o4d(this.a)); c.e != c.i.gc(); ) { + b = RD(bMd(c), 89); + f = (g = b.c, g ? g : (JTd(), wTd)); + bD(a, d++, f); + } + return a; + }; + _.Hj = function Z4d() { + var a, b, c, d, e; + e = new Qhb(); + e.a += "["; + a = o4d(this.a); + for (b = 0, d = o4d(this.a).i; b < d; ) { + Nhb(e, Ghb((c = RD(QHd(a, b), 89).c, c ? c : (JTd(), wTd)))); + ++b < d && (e.a += pve, e); + } + e.a += "]"; + return e.a; + }; + _.Jj = function $4d(a) { + }; + _.Lj = function _4d() { + return 13; + }; + _.kl = function a5d() { + return true; + }; + _.Mj = function b5d() { + return false; + }; + _.ll = function c5d() { + return false; + }; + _.ml = function d5d() { + return false; + }; + _.nl = function e5d() { + return true; + }; + _.al = function f5d() { + return false; + }; + _.ol = function g5d() { + return true; + }; + _.fk = function h5d(a) { + return ZD(a, 142); + }; + _.Qj = function i5d() { + return p4d(this.a); + }; + _.Si = function j5d() { + return true; + }; + _.Yi = function k5d() { + return true; + }; + sfb(SHe, "EOperationImpl/1", 513); + feb(1376, 2062, kwe, l5d); + _.fd = function m5d(a) { + return ZGd(this.a, a); + }; + _.gc = function n5d() { + return o4d(this.a.a).i; + }; + sfb(SHe, "EOperationImpl/1/1", 1376); + feb(1377, 555, oKe, s5d); + _.Ti = function w5d(a, b) { + var c, d; + return c = RD(uLd(this, a, b), 89), Mvd(this.e) && eZd(this, new c4d(this.a, 7, (JTd(), BTd), sgb(b), (d = c.c, d ? d : wTd), a)), c; + }; + _.Uj = function x5d(a, b) { + return p5d(this, RD(a, 89), b); + }; + _.Vj = function y5d(a, b) { + return q5d(this, RD(a, 89), b); + }; + _.Wj = function z5d(a, b, c) { + return r5d(this, RD(a, 89), RD(b, 89), c); + }; + _.Ij = function t5d(a, b, c, d, e) { + switch (a) { + case 3: { + return dZd(this, a, b, c, d, this.i > 1); + } + case 5: { + return dZd(this, a, b, c, d, this.i - RD(c, 15).gc() > 0); + } + default: { + return new P3d(this.e, a, this.c, b, c, d, true); + } + } + }; + _.Tj = function u5d() { + return true; + }; + _.Qj = function v5d() { + return o5d(this); + }; + _.Gk = function A5d() { + sLd(this); + }; + sfb(SHe, "EOperationImpl/2", 1377); + feb(507, 1, { 2037: 1, 507: 1 }, B5d); + sfb(SHe, "EPackageImpl/1", 507); + feb(14, 83, oKe, C5d); + _.il = function D5d() { + return this.d; + }; + _.jl = function E5d() { + return this.b; + }; + _.ml = function F5d() { + return true; + }; + _.b = 0; + sfb(ZJe, "EObjectContainmentWithInverseEList", 14); + feb(365, 14, oKe, G5d); + _.nl = function H5d() { + return true; + }; + _.Wi = function I5d(a, b) { + return gZd(this, a, RD(b, 58)); + }; + sfb(ZJe, "EObjectContainmentWithInverseEList/Resolving", 365); + feb(308, 365, oKe, J5d); + _.Ni = function K5d() { + this.a.tb = null; + }; + sfb(SHe, "EPackageImpl/2", 308); + feb(1278, 1, {}, L5d); + sfb(SHe, "EPackageImpl/3", 1278); + feb(733, 45, Hxe, O5d); + _._b = function P5d(a) { + return bE(a) ? Yjb(this, a) : !!qtb(this.f, a); + }; + sfb(SHe, "EPackageRegistryImpl", 733); + feb(518, 292, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 2116: 1, 114: 1, 481: 1, 54: 1, 99: 1, 158: 1, 518: 1, 292: 1, 119: 1, 120: 1 }, R5d); + _.Ah = function S5d(a) { + return Q5d(this, a); + }; + _.Lh = function T5d(a, b, c) { + var d, e, f; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return Geb(), (this.Bb & 256) != 0 ? true : false; + case 3: + return Geb(), (this.Bb & 512) != 0 ? true : false; + case 4: + return sgb(this.s); + case 5: + return sgb(this.t); + case 6: + return Geb(), f = this.t, f > 1 || f == -1 ? true : false; + case 7: + return Geb(), e = this.s, e >= 1 ? true : false; + case 8: + if (b) + return WVd(this); + return this.r; + case 9: + return this.q; + case 10: + return this.Db >> 16 == 10 ? RD(this.Cb, 62) : null; + } + return zvd(this, a - AYd((JTd(), DTd)), vYd((d = RD(Ywd(this, 16), 29), !d ? DTd : d), a), b, c); + }; + _.Sh = function U5d(a, b, c) { + var d, e, f; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), qLd(this.Ab, a, c); + case 10: + !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? Q5d(this, c) : this.Cb.Th(this, -1 - e, null, c))); + return xvd(this, a, 10, c); + } + return f = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), DTd) : d), b), 69), f.wk().zk(this, Wwd(this), b - AYd((JTd(), DTd)), a, c); + }; + _.Uh = function V5d(a, b, c) { + var d, e; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), rLd(this.Ab, a, c); + case 9: + return VVd(this, c); + case 10: + return xvd(this, null, 10, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), DTd) : d), b), 69), e.wk().Ak(this, Wwd(this), b - AYd((JTd(), DTd)), a, c); + }; + _.Wh = function W5d(a) { + var b, c, d; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return (this.Bb & 256) == 0; + case 3: + return (this.Bb & 512) == 0; + case 4: + return this.s != 0; + case 5: + return this.t != 1; + case 6: + return d = this.t, d > 1 || d == -1; + case 7: + return c = this.s, c >= 1; + case 8: + return !!this.r && !this.q.e && j2d(this.q).i == 0; + case 9: + return !!this.q && !(!!this.r && !this.q.e && j2d(this.q).i == 0); + case 10: + return !!(this.Db >> 16 == 10 ? RD(this.Cb, 62) : null); + } + return Avd(this, a - AYd((JTd(), DTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? DTd : b), a)); + }; + _.ii = function X5d() { + return JTd(), DTd; + }; + sfb(SHe, "EParameterImpl", 518); + feb(102, 462, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 19: 1, 179: 1, 69: 1, 114: 1, 481: 1, 54: 1, 99: 1, 158: 1, 102: 1, 462: 1, 292: 1, 119: 1, 120: 1, 692: 1 }, d6d); + _.Lh = function e6d(a, b, c) { + var d, e, f, g; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return Geb(), (this.Bb & 256) != 0 ? true : false; + case 3: + return Geb(), (this.Bb & 512) != 0 ? true : false; + case 4: + return sgb(this.s); + case 5: + return sgb(this.t); + case 6: + return Geb(), g = this.t, g > 1 || g == -1 ? true : false; + case 7: + return Geb(), e = this.s, e >= 1 ? true : false; + case 8: + if (b) + return WVd(this); + return this.r; + case 9: + return this.q; + case 10: + return Geb(), (this.Bb & gwe) != 0 ? true : false; + case 11: + return Geb(), (this.Bb & cKe) != 0 ? true : false; + case 12: + return Geb(), (this.Bb & qxe) != 0 ? true : false; + case 13: + return this.j; + case 14: + return tWd(this); + case 15: + return Geb(), (this.Bb & bKe) != 0 ? true : false; + case 16: + return Geb(), (this.Bb & Ove) != 0 ? true : false; + case 17: + return uWd(this); + case 18: + return Geb(), (this.Bb & QHe) != 0 ? true : false; + case 19: + return Geb(), f = Z5d(this), !!f && (f.Bb & QHe) != 0 ? true : false; + case 20: + return Geb(), (this.Bb & txe) != 0 ? true : false; + case 21: + if (b) + return Z5d(this); + return this.b; + case 22: + if (b) + return $5d(this); + return Y5d(this); + case 23: + return !this.a && (this.a = new zie(g7, this, 23)), this.a; + } + return zvd(this, a - AYd((JTd(), ETd)), vYd((d = RD(Ywd(this, 16), 29), !d ? ETd : d), a), b, c); + }; + _.Wh = function f6d(a) { + var b, c, d, e; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return (this.Bb & 256) == 0; + case 3: + return (this.Bb & 512) == 0; + case 4: + return this.s != 0; + case 5: + return this.t != 1; + case 6: + return e = this.t, e > 1 || e == -1; + case 7: + return c = this.s, c >= 1; + case 8: + return !!this.r && !this.q.e && j2d(this.q).i == 0; + case 9: + return !!this.q && !(!!this.r && !this.q.e && j2d(this.q).i == 0); + case 10: + return (this.Bb & gwe) == 0; + case 11: + return (this.Bb & cKe) != 0; + case 12: + return (this.Bb & qxe) != 0; + case 13: + return this.j != null; + case 14: + return tWd(this) != null; + case 15: + return (this.Bb & bKe) != 0; + case 16: + return (this.Bb & Ove) != 0; + case 17: + return !!uWd(this); + case 18: + return (this.Bb & QHe) != 0; + case 19: + return d = Z5d(this), !!d && (d.Bb & QHe) != 0; + case 20: + return (this.Bb & txe) == 0; + case 21: + return !!this.b; + case 22: + return !!Y5d(this); + case 23: + return !!this.a && this.a.i != 0; + } + return Avd(this, a - AYd((JTd(), ETd)), vYd((b = RD(Ywd(this, 16), 29), !b ? ETd : b), a)); + }; + _.bi = function g6d(a, b) { + var c, d; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + CWd(this, WD(b)); + return; + case 2: + _Vd(this, Heb(TD(b))); + return; + case 3: + aWd(this, Heb(TD(b))); + return; + case 4: + $Vd(this, RD(b, 17).a); + return; + case 5: + bWd(this, RD(b, 17).a); + return; + case 8: + YVd(this, RD(b, 142)); + return; + case 9: + d = XVd(this, RD(b, 89), null); + !!d && d.oj(); + return; + case 10: + xWd(this, Heb(TD(b))); + return; + case 11: + FWd(this, Heb(TD(b))); + return; + case 12: + DWd(this, Heb(TD(b))); + return; + case 13: + yWd(this, WD(b)); + return; + case 15: + EWd(this, Heb(TD(b))); + return; + case 16: + AWd(this, Heb(TD(b))); + return; + case 18: + _5d(this, Heb(TD(b))); + return; + case 20: + c6d(this, Heb(TD(b))); + return; + case 21: + b6d(this, RD(b, 19)); + return; + case 23: + !this.a && (this.a = new zie(g7, this, 23)); + sLd(this.a); + !this.a && (this.a = new zie(g7, this, 23)); + YGd(this.a, RD(b, 16)); + return; + } + Bvd(this, a - AYd((JTd(), ETd)), vYd((c = RD(Ywd(this, 16), 29), !c ? ETd : c), a), b); + }; + _.ii = function h6d() { + return JTd(), ETd; + }; + _.ki = function i6d(a) { + var b, c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + ZD(this.Cb, 90) && v$d(yYd(RD(this.Cb, 90)), 4); + PAd(this, null); + return; + case 2: + _Vd(this, true); + return; + case 3: + aWd(this, true); + return; + case 4: + $Vd(this, 0); + return; + case 5: + bWd(this, 1); + return; + case 8: + YVd(this, null); + return; + case 9: + c = XVd(this, null, null); + !!c && c.oj(); + return; + case 10: + xWd(this, true); + return; + case 11: + FWd(this, false); + return; + case 12: + DWd(this, false); + return; + case 13: + this.i = null; + zWd(this, null); + return; + case 15: + EWd(this, false); + return; + case 16: + AWd(this, false); + return; + case 18: + a6d(this, false); + ZD(this.Cb, 90) && v$d(yYd(RD(this.Cb, 90)), 2); + return; + case 20: + c6d(this, true); + return; + case 21: + b6d(this, null); + return; + case 23: + !this.a && (this.a = new zie(g7, this, 23)); + sLd(this.a); + return; + } + Cvd(this, a - AYd((JTd(), ETd)), vYd((b = RD(Ywd(this, 16), 29), !b ? ETd : b), a)); + }; + _.pi = function j6d() { + $5d(this); + Afe(Qee((lke(), jke), this)); + WVd(this); + this.Bb |= 1; + }; + _.uk = function k6d() { + return Z5d(this); + }; + _._k = function l6d() { + var a; + return a = Z5d(this), !!a && (a.Bb & QHe) != 0; + }; + _.al = function m6d() { + return (this.Bb & QHe) != 0; + }; + _.bl = function n6d() { + return (this.Bb & txe) != 0; + }; + _.Yk = function o6d(a, b) { + this.c = null; + return ZVd(this, a, b); + }; + _.Ib = function p6d() { + var a; + if ((this.Db & 64) != 0) + return GWd(this); + a = new Shb(GWd(this)); + a.a += " (containment: "; + Ohb(a, (this.Bb & QHe) != 0); + a.a += ", resolveProxies: "; + Ohb(a, (this.Bb & txe) != 0); + a.a += ")"; + return a.a; + }; + sfb(SHe, "EReferenceImpl", 102); + feb(561, 120, { 110: 1, 44: 1, 94: 1, 93: 1, 136: 1, 58: 1, 114: 1, 54: 1, 99: 1, 561: 1, 119: 1, 120: 1 }, v6d); + _.Fb = function B6d(a) { + return this === a; + }; + _.ld = function D6d() { + return this.b; + }; + _.md = function E6d() { + return this.c; + }; + _.Hb = function F6d() { + return kFb(this); + }; + _.Di = function H6d(a) { + q6d(this, WD(a)); + }; + _.nd = function I6d(a) { + return u6d(this, WD(a)); + }; + _.Lh = function w6d(a, b, c) { + var d; + switch (a) { + case 0: + return this.b; + case 1: + return this.c; + } + return zvd(this, a - AYd((JTd(), FTd)), vYd((d = RD(Ywd(this, 16), 29), !d ? FTd : d), a), b, c); + }; + _.Wh = function x6d(a) { + var b; + switch (a) { + case 0: + return this.b != null; + case 1: + return this.c != null; + } + return Avd(this, a - AYd((JTd(), FTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? FTd : b), a)); + }; + _.bi = function y6d(a, b) { + var c; + switch (a) { + case 0: + r6d(this, WD(b)); + return; + case 1: + t6d(this, WD(b)); + return; + } + Bvd(this, a - AYd((JTd(), FTd)), vYd((c = RD(Ywd(this, 16), 29), !c ? FTd : c), a), b); + }; + _.ii = function z6d() { + return JTd(), FTd; + }; + _.ki = function A6d(a) { + var b; + switch (a) { + case 0: + s6d(this, null); + return; + case 1: + t6d(this, null); + return; + } + Cvd(this, a - AYd((JTd(), FTd)), vYd((b = RD(Ywd(this, 16), 29), !b ? FTd : b), a)); + }; + _.Bi = function C6d() { + var a; + if (this.a == -1) { + a = this.b; + this.a = a == null ? 0 : ohb(a); + } + return this.a; + }; + _.Ci = function G6d(a) { + this.a = a; + }; + _.Ib = function J6d() { + var a; + if ((this.Db & 64) != 0) + return awd(this); + a = new Shb(awd(this)); + a.a += " (key: "; + Nhb(a, this.b); + a.a += ", value: "; + Nhb(a, this.c); + a.a += ")"; + return a.a; + }; + _.a = -1; + _.b = null; + _.c = null; + var C8 = sfb(SHe, "EStringToStringMapEntryImpl", 561); + var Ibb = ufb(ZJe, "FeatureMap/Entry/Internal"); + feb(576, 1, wKe); + _.xl = function M6d(a) { + return this.yl(RD(a, 54)); + }; + _.yl = function N6d(a) { + return this.xl(a); + }; + _.Fb = function O6d(a) { + var b, c; + if (this === a) { + return true; + } else if (ZD(a, 76)) { + b = RD(a, 76); + if (b.Lk() == this.c) { + c = this.md(); + return c == null ? b.md() == null : pb(c, b.md()); + } else { + return false; + } + } else { + return false; + } + }; + _.Lk = function P6d() { + return this.c; + }; + _.Hb = function Q6d() { + var a; + a = this.md(); + return tb(this.c) ^ (a == null ? 0 : tb(a)); + }; + _.Ib = function R6d() { + var a, b; + a = this.c; + b = BXd(a.qk()).yi(); + a.xe(); + return (b != null && b.length != 0 ? b + ":" + a.xe() : a.xe()) + "=" + this.md(); + }; + sfb(SHe, "EStructuralFeatureImpl/BasicFeatureMapEntry", 576); + feb(791, 576, wKe, U6d); + _.yl = function V6d(a) { + return new U6d(this.c, a); + }; + _.md = function W6d() { + return this.a; + }; + _.zl = function X6d(a, b, c) { + return S6d(this, a, this.a, b, c); + }; + _.Al = function Y6d(a, b, c) { + return T6d(this, a, this.a, b, c); + }; + sfb(SHe, "EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry", 791); + feb(1350, 1, {}, Z6d); + _.yk = function $6d(a, b, c, d, e) { + var f; + f = RD(Evd(a, this.b), 220); + return f.Yl(this.a).Fk(d); + }; + _.zk = function _6d(a, b, c, d, e) { + var f; + f = RD(Evd(a, this.b), 220); + return f.Pl(this.a, d, e); + }; + _.Ak = function a7d(a, b, c, d, e) { + var f; + f = RD(Evd(a, this.b), 220); + return f.Ql(this.a, d, e); + }; + _.Bk = function b7d(a, b, c) { + var d; + d = RD(Evd(a, this.b), 220); + return d.Yl(this.a).Qj(); + }; + _.Ck = function c7d(a, b, c, d) { + var e; + e = RD(Evd(a, this.b), 220); + e.Yl(this.a).Wb(d); + }; + _.Dk = function d7d(a, b, c) { + return RD(Evd(a, this.b), 220).Yl(this.a); + }; + _.Ek = function e7d(a, b, c) { + var d; + d = RD(Evd(a, this.b), 220); + d.Yl(this.a).Gk(); + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator", 1350); + feb(91, 1, {}, g7d, h7d, i7d, j7d); + _.yk = function k7d(a, b, c, d, e) { + var f; + f = b.li(c); + f == null && b.mi(c, f = f7d(this, a)); + if (!e) { + switch (this.e) { + case 50: + case 41: + return RD(f, 597).bk(); + case 40: + return RD(f, 220).Vl(); + } + } + return f; + }; + _.zk = function l7d(a, b, c, d, e) { + var f, g; + g = b.li(c); + g == null && b.mi(c, g = f7d(this, a)); + f = RD(g, 71).Wk(d, e); + return f; + }; + _.Ak = function m7d(a, b, c, d, e) { + var f; + f = b.li(c); + f != null && (e = RD(f, 71).Xk(d, e)); + return e; + }; + _.Bk = function n7d(a, b, c) { + var d; + d = b.li(c); + return d != null && RD(d, 79).Qj(); + }; + _.Ck = function o7d(a, b, c, d) { + var e; + e = RD(b.li(c), 79); + !e && b.mi(c, e = f7d(this, a)); + e.Wb(d); + }; + _.Dk = function p7d(a, b, c) { + var d, e; + e = b.li(c); + e == null && b.mi(c, e = f7d(this, a)); + if (ZD(e, 79)) { + return RD(e, 79); + } else { + d = RD(b.li(c), 15); + return new I9d(d); + } + }; + _.Ek = function q7d(a, b, c) { + var d; + d = RD(b.li(c), 79); + !d && b.mi(c, d = f7d(this, a)); + d.Gk(); + }; + _.b = 0; + _.e = 0; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateMany", 91); + feb(512, 1, {}); + _.zk = function u7d(a, b, c, d, e) { + throw Adb(new jib()); + }; + _.Ak = function v7d(a, b, c, d, e) { + throw Adb(new jib()); + }; + _.Dk = function w7d(a, b, c) { + return new x7d(this, a, b, c); + }; + var r7d; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingle", 512); + feb(1367, 1, $Je, x7d); + _.Fk = function y7d(a) { + return this.a.yk(this.c, this.d, this.b, a, true); + }; + _.Qj = function z7d() { + return this.a.Bk(this.c, this.d, this.b); + }; + _.Wb = function A7d(a) { + this.a.Ck(this.c, this.d, this.b, a); + }; + _.Gk = function B7d() { + this.a.Ek(this.c, this.d, this.b); + }; + _.b = 0; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingle/1", 1367); + feb(784, 512, {}, C7d); + _.yk = function D7d(a, b, c, d, e) { + return jwd(a, a.Ph(), a.Fh()) == this.b ? this.bl() && d ? yvd(a) : a.Ph() : null; + }; + _.zk = function E7d(a, b, c, d, e) { + var f, g; + !!a.Ph() && (e = (f = a.Fh(), f >= 0 ? a.Ah(e) : a.Ph().Th(a, -1 - f, null, e))); + g = BYd(a.Dh(), this.e); + return a.Ch(d, g, e); + }; + _.Ak = function F7d(a, b, c, d, e) { + var f; + f = BYd(a.Dh(), this.e); + return a.Ch(null, f, e); + }; + _.Bk = function G7d(a, b, c) { + var d; + d = BYd(a.Dh(), this.e); + return !!a.Ph() && a.Fh() == d; + }; + _.Ck = function H7d(a, b, c, d) { + var e, f, g, h, i; + if (d != null && !FXd(this.a, d)) { + throw Adb(new Ifb(xKe + (ZD(d, 58) ? GYd(RD(d, 58).Dh()) : ofb(rb(d))) + yKe + this.a + "'")); + } + e = a.Ph(); + g = BYd(a.Dh(), this.e); + if (dE(d) !== dE(e) || a.Fh() != g && d != null) { + if (Oje(a, RD(d, 58))) + throw Adb(new agb(UHe + a.Ib())); + i = null; + !!e && (i = (f = a.Fh(), f >= 0 ? a.Ah(i) : a.Ph().Th(a, -1 - f, null, i))); + h = RD(d, 54); + !!h && (i = h.Rh(a, BYd(h.Dh(), this.b), null, i)); + i = a.Ch(h, g, i); + !!i && i.oj(); + } else { + a.vh() && a.wh() && qvd(a, new N3d(a, 1, g, d, d)); + } + }; + _.Ek = function I7d(a, b, c) { + var d, e, f, g; + d = a.Ph(); + if (d) { + g = (e = a.Fh(), e >= 0 ? a.Ah(null) : a.Ph().Th(a, -1 - e, null, null)); + f = BYd(a.Dh(), this.e); + g = a.Ch(null, f, g); + !!g && g.oj(); + } else { + a.vh() && a.wh() && qvd(a, new b4d(a, 1, this.e, null, null)); + } + }; + _.bl = function J7d() { + return false; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleContainer", 784); + feb(1351, 784, {}, K7d); + _.bl = function L7d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving", 1351); + feb(574, 512, {}); + _.yk = function O7d(a, b, c, d, e) { + var f; + return f = b.li(c), f == null ? this.b : dE(f) === dE(r7d) ? null : f; + }; + _.Bk = function P7d(a, b, c) { + var d; + d = b.li(c); + return d != null && (dE(d) === dE(r7d) || !pb(d, this.b)); + }; + _.Ck = function Q7d(a, b, c, d) { + var e, f; + if (a.vh() && a.wh()) { + e = (f = b.li(c), f == null ? this.b : dE(f) === dE(r7d) ? null : f); + if (d == null) { + if (this.c != null) { + b.mi(c, null); + d = this.b; + } else + this.b != null ? b.mi(c, r7d) : b.mi(c, null); + } else { + this.Bl(d); + b.mi(c, d); + } + qvd(a, this.d.Cl(a, 1, this.e, e, d)); + } else { + if (d == null) { + this.c != null ? b.mi(c, null) : this.b != null ? b.mi(c, r7d) : b.mi(c, null); + } else { + this.Bl(d); + b.mi(c, d); + } + } + }; + _.Ek = function R7d(a, b, c) { + var d, e; + if (a.vh() && a.wh()) { + d = (e = b.li(c), e == null ? this.b : dE(e) === dE(r7d) ? null : e); + b.ni(c); + qvd(a, this.d.Cl(a, 1, this.e, d, this.b)); + } else { + b.ni(c); + } + }; + _.Bl = function S7d(a) { + throw Adb(new Hfb()); + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleData", 574); + feb(zKe, 1, {}, b8d); + _.Cl = function c8d(a, b, c, d, e) { + return new b4d(a, b, c, d, e); + }; + _.Dl = function d8d(a, b, c, d, e, f) { + return new d4d(a, b, c, d, e, f); + }; + var T7d, U7d, V7d, W7d, X7d, Y7d, Z7d, $7d, _7d; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator", zKe); + feb(1368, zKe, {}, e8d); + _.Cl = function f8d(a, b, c, d, e) { + return new g4d(a, b, c, Heb(TD(d)), Heb(TD(e))); + }; + _.Dl = function g8d(a, b, c, d, e, f) { + return new h4d(a, b, c, Heb(TD(d)), Heb(TD(e)), f); + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1", 1368); + feb(1369, zKe, {}, h8d); + _.Cl = function i8d(a, b, c, d, e) { + return new R3d(a, b, c, RD(d, 222).a, RD(e, 222).a); + }; + _.Dl = function j8d(a, b, c, d, e, f) { + return new S3d(a, b, c, RD(d, 222).a, RD(e, 222).a, f); + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2", 1369); + feb(1370, zKe, {}, k8d); + _.Cl = function l8d(a, b, c, d, e) { + return new T3d(a, b, c, RD(d, 180).a, RD(e, 180).a); + }; + _.Dl = function m8d(a, b, c, d, e, f) { + return new U3d(a, b, c, RD(d, 180).a, RD(e, 180).a, f); + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3", 1370); + feb(1371, zKe, {}, n8d); + _.Cl = function o8d(a, b, c, d, e) { + return new V3d(a, b, c, Kfb(UD(d)), Kfb(UD(e))); + }; + _.Dl = function p8d(a, b, c, d, e, f) { + return new W3d(a, b, c, Kfb(UD(d)), Kfb(UD(e)), f); + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4", 1371); + feb(1372, zKe, {}, q8d); + _.Cl = function r8d(a, b, c, d, e) { + return new X3d(a, b, c, RD(d, 161).a, RD(e, 161).a); + }; + _.Dl = function s8d(a, b, c, d, e, f) { + return new Y3d(a, b, c, RD(d, 161).a, RD(e, 161).a, f); + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5", 1372); + feb(1373, zKe, {}, t8d); + _.Cl = function u8d(a, b, c, d, e) { + return new Z3d(a, b, c, RD(d, 17).a, RD(e, 17).a); + }; + _.Dl = function v8d(a, b, c, d, e, f) { + return new $3d(a, b, c, RD(d, 17).a, RD(e, 17).a, f); + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6", 1373); + feb(1374, zKe, {}, w8d); + _.Cl = function x8d(a, b, c, d, e) { + return new _3d(a, b, c, RD(d, 168).a, RD(e, 168).a); + }; + _.Dl = function y8d(a, b, c, d, e, f) { + return new a4d(a, b, c, RD(d, 168).a, RD(e, 168).a, f); + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7", 1374); + feb(1375, zKe, {}, z8d); + _.Cl = function A8d(a, b, c, d, e) { + return new e4d(a, b, c, RD(d, 191).a, RD(e, 191).a); + }; + _.Dl = function B8d(a, b, c, d, e, f) { + return new f4d(a, b, c, RD(d, 191).a, RD(e, 191).a, f); + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8", 1375); + feb(1353, 574, {}, C8d); + _.Bl = function D8d(a) { + if (!this.a.fk(a)) { + throw Adb(new Ifb(xKe + rb(a) + yKe + this.a + "'")); + } + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic", 1353); + feb(1354, 574, {}, E8d); + _.Bl = function F8d(a) { + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic", 1354); + feb(785, 574, {}); + _.Bk = function G8d(a, b, c) { + var d; + d = b.li(c); + return d != null; + }; + _.Ck = function H8d(a, b, c, d) { + var e, f; + if (a.vh() && a.wh()) { + e = true; + f = b.li(c); + if (f == null) { + e = false; + f = this.b; + } else + dE(f) === dE(r7d) && (f = null); + if (d == null) { + if (this.c != null) { + b.mi(c, null); + d = this.b; + } else { + b.mi(c, r7d); + } + } else { + this.Bl(d); + b.mi(c, d); + } + qvd(a, this.d.Dl(a, 1, this.e, f, d, !e)); + } else { + if (d == null) { + this.c != null ? b.mi(c, null) : b.mi(c, r7d); + } else { + this.Bl(d); + b.mi(c, d); + } + } + }; + _.Ek = function I8d(a, b, c) { + var d, e; + if (a.vh() && a.wh()) { + d = true; + e = b.li(c); + if (e == null) { + d = false; + e = this.b; + } else + dE(e) === dE(r7d) && (e = null); + b.ni(c); + qvd(a, this.d.Dl(a, 2, this.e, e, this.b, d)); + } else { + b.ni(c); + } + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable", 785); + feb(1355, 785, {}, J8d); + _.Bl = function K8d(a) { + if (!this.a.fk(a)) { + throw Adb(new Ifb(xKe + rb(a) + yKe + this.a + "'")); + } + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic", 1355); + feb(1356, 785, {}, L8d); + _.Bl = function M8d(a) { + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic", 1356); + feb(410, 512, {}, N8d); + _.yk = function P8d(a, b, c, d, e) { + var f, g, h, i, j; + j = b.li(c); + if (this.tk() && dE(j) === dE(r7d)) { + return null; + } else if (this.bl() && d && j != null) { + h = RD(j, 54); + if (h.Vh()) { + i = Vvd(a, h); + if (h != i) { + if (!FXd(this.a, i)) { + throw Adb(new Ifb(xKe + rb(i) + yKe + this.a + "'")); + } + b.mi(c, j = i); + if (this.al()) { + f = RD(i, 54); + g = h.Th(a, !this.b ? -1 - BYd(a.Dh(), this.e) : BYd(h.Dh(), this.b), null, null); + !f.Ph() && (g = f.Rh(a, !this.b ? -1 - BYd(a.Dh(), this.e) : BYd(f.Dh(), this.b), null, g)); + !!g && g.oj(); + } + a.vh() && a.wh() && qvd(a, new b4d(a, 9, this.e, h, i)); + } + } + return j; + } else { + return j; + } + }; + _.zk = function Q8d(a, b, c, d, e) { + var f, g; + g = b.li(c); + dE(g) === dE(r7d) && (g = null); + b.mi(c, d); + if (this.Mj()) { + if (dE(g) !== dE(d) && g != null) { + f = RD(g, 54); + e = f.Th(a, BYd(f.Dh(), this.b), null, e); + } + } else + this.al() && g != null && (e = RD(g, 54).Th(a, -1 - BYd(a.Dh(), this.e), null, e)); + if (a.vh() && a.wh()) { + !e && (e = new gLd(4)); + e.nj(new b4d(a, 1, this.e, g, d)); + } + return e; + }; + _.Ak = function R8d(a, b, c, d, e) { + var f; + f = b.li(c); + dE(f) === dE(r7d) && (f = null); + b.ni(c); + if (a.vh() && a.wh()) { + !e && (e = new gLd(4)); + this.tk() ? e.nj(new b4d(a, 2, this.e, f, null)) : e.nj(new b4d(a, 1, this.e, f, null)); + } + return e; + }; + _.Bk = function S8d(a, b, c) { + var d; + d = b.li(c); + return d != null; + }; + _.Ck = function T8d(a, b, c, d) { + var e, f, g, h, i; + if (d != null && !FXd(this.a, d)) { + throw Adb(new Ifb(xKe + (ZD(d, 58) ? GYd(RD(d, 58).Dh()) : ofb(rb(d))) + yKe + this.a + "'")); + } + i = b.li(c); + h = i != null; + this.tk() && dE(i) === dE(r7d) && (i = null); + g = null; + if (this.Mj()) { + if (dE(i) !== dE(d)) { + if (i != null) { + e = RD(i, 54); + g = e.Th(a, BYd(e.Dh(), this.b), null, g); + } + if (d != null) { + e = RD(d, 54); + g = e.Rh(a, BYd(e.Dh(), this.b), null, g); + } + } + } else if (this.al()) { + if (dE(i) !== dE(d)) { + i != null && (g = RD(i, 54).Th(a, -1 - BYd(a.Dh(), this.e), null, g)); + d != null && (g = RD(d, 54).Rh(a, -1 - BYd(a.Dh(), this.e), null, g)); + } + } + d == null && this.tk() ? b.mi(c, r7d) : b.mi(c, d); + if (a.vh() && a.wh()) { + f = new d4d(a, 1, this.e, i, d, this.tk() && !h); + if (!g) { + qvd(a, f); + } else { + g.nj(f); + g.oj(); + } + } else + !!g && g.oj(); + }; + _.Ek = function U8d(a, b, c) { + var d, e, f, g, h; + h = b.li(c); + g = h != null; + this.tk() && dE(h) === dE(r7d) && (h = null); + f = null; + if (h != null) { + if (this.Mj()) { + d = RD(h, 54); + f = d.Th(a, BYd(d.Dh(), this.b), null, f); + } else + this.al() && (f = RD(h, 54).Th(a, -1 - BYd(a.Dh(), this.e), null, f)); + } + b.ni(c); + if (a.vh() && a.wh()) { + e = new d4d(a, this.tk() ? 2 : 1, this.e, h, null, g); + if (!f) { + qvd(a, e); + } else { + f.nj(e); + f.oj(); + } + } else + !!f && f.oj(); + }; + _.Mj = function V8d() { + return false; + }; + _.al = function W8d() { + return false; + }; + _.bl = function X8d() { + return false; + }; + _.tk = function Y8d() { + return false; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObject", 410); + feb(575, 410, {}, Z8d); + _.al = function $8d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment", 575); + feb(1359, 575, {}, _8d); + _.bl = function a9d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving", 1359); + feb(787, 575, {}, b9d); + _.tk = function c9d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable", 787); + feb(1361, 787, {}, d9d); + _.bl = function e9d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving", 1361); + feb(650, 575, {}, f9d); + _.Mj = function g9d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse", 650); + feb(1360, 650, {}, h9d); + _.bl = function i9d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving", 1360); + feb(788, 650, {}, j9d); + _.tk = function k9d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable", 788); + feb(1362, 788, {}, l9d); + _.bl = function m9d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving", 1362); + feb(651, 410, {}, n9d); + _.bl = function o9d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving", 651); + feb(1363, 651, {}, p9d); + _.tk = function q9d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable", 1363); + feb(789, 651, {}, r9d); + _.Mj = function s9d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse", 789); + feb(1364, 789, {}, t9d); + _.tk = function u9d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable", 1364); + feb(1357, 410, {}, v9d); + _.tk = function w9d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable", 1357); + feb(786, 410, {}, x9d); + _.Mj = function y9d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse", 786); + feb(1358, 786, {}, z9d); + _.tk = function A9d() { + return true; + }; + sfb(SHe, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable", 1358); + feb(790, 576, wKe, D9d); + _.yl = function E9d(a) { + return new D9d(this.a, this.c, a); + }; + _.md = function F9d() { + return this.b; + }; + _.zl = function G9d(a, b, c) { + return B9d(this, a, this.b, c); + }; + _.Al = function H9d(a, b, c) { + return C9d(this, a, this.b, c); + }; + sfb(SHe, "EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry", 790); + feb(1365, 1, $Je, I9d); + _.Fk = function J9d(a) { + return this.a; + }; + _.Qj = function K9d() { + return ZD(this.a, 97) ? RD(this.a, 97).Qj() : !this.a.dc(); + }; + _.Wb = function L9d(a) { + this.a.$b(); + this.a.Gc(RD(a, 15)); + }; + _.Gk = function M9d() { + ZD(this.a, 97) ? RD(this.a, 97).Gk() : this.a.$b(); + }; + sfb(SHe, "EStructuralFeatureImpl/SettingMany", 1365); + feb(1366, 576, wKe, N9d); + _.xl = function O9d(a) { + return new S9d((nme(), mme), this.b.ri(this.a, a)); + }; + _.md = function P9d() { + return null; + }; + _.zl = function Q9d(a, b, c) { + return c; + }; + _.Al = function R9d(a, b, c) { + return c; + }; + sfb(SHe, "EStructuralFeatureImpl/SimpleContentFeatureMapEntry", 1366); + feb(652, 576, wKe, S9d); + _.xl = function T9d(a) { + return new S9d(this.c, a); + }; + _.md = function U9d() { + return this.a; + }; + _.zl = function V9d(a, b, c) { + return c; + }; + _.Al = function W9d(a, b, c) { + return c; + }; + sfb(SHe, "EStructuralFeatureImpl/SimpleFeatureMapEntry", 652); + feb(403, 506, PIe, X9d); + _.aj = function Y9d(a) { + return $C(h7, rve, 29, a, 0, 1); + }; + _.Yi = function Z9d() { + return false; + }; + sfb(SHe, "ESuperAdapter/1", 403); + feb(457, 448, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 114: 1, 850: 1, 54: 1, 99: 1, 158: 1, 457: 1, 119: 1, 120: 1 }, _9d); + _.Lh = function aae(a, b, c) { + var d; + switch (a) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return !this.a && (this.a = new iae(this, o7, this)), this.a; + } + return zvd(this, a - AYd((JTd(), ITd)), vYd((d = RD(Ywd(this, 16), 29), !d ? ITd : d), a), b, c); + }; + _.Uh = function bae(a, b, c) { + var d, e; + switch (b) { + case 0: + return !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)), rLd(this.Ab, a, c); + case 2: + return !this.a && (this.a = new iae(this, o7, this)), rLd(this.a, a, c); + } + return e = RD(vYd((d = RD(Ywd(this, 16), 29), !d ? (JTd(), ITd) : d), b), 69), e.wk().Ak(this, Wwd(this), b - AYd((JTd(), ITd)), a, c); + }; + _.Wh = function cae(a) { + var b; + switch (a) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return !!this.a && this.a.i != 0; + } + return Avd(this, a - AYd((JTd(), ITd)), vYd((b = RD(Ywd(this, 16), 29), !b ? ITd : b), a)); + }; + _.bi = function dae(a, b) { + var c; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + YGd(this.Ab, RD(b, 16)); + return; + case 1: + PAd(this, WD(b)); + return; + case 2: + !this.a && (this.a = new iae(this, o7, this)); + sLd(this.a); + !this.a && (this.a = new iae(this, o7, this)); + YGd(this.a, RD(b, 16)); + return; + } + Bvd(this, a - AYd((JTd(), ITd)), vYd((c = RD(Ywd(this, 16), 29), !c ? ITd : c), a), b); + }; + _.ii = function eae() { + return JTd(), ITd; + }; + _.ki = function fae(a) { + var b; + switch (a) { + case 0: + !this.Ab && (this.Ab = new C5d(f7, this, 0, 3)); + sLd(this.Ab); + return; + case 1: + PAd(this, null); + return; + case 2: + !this.a && (this.a = new iae(this, o7, this)); + sLd(this.a); + return; + } + Cvd(this, a - AYd((JTd(), ITd)), vYd((b = RD(Ywd(this, 16), 29), !b ? ITd : b), a)); + }; + sfb(SHe, "ETypeParameterImpl", 457); + feb(458, 83, oKe, iae); + _.Nj = function jae(a, b) { + return gae(this, RD(a, 89), b); + }; + _.Oj = function kae(a, b) { + return hae(this, RD(a, 89), b); + }; + sfb(SHe, "ETypeParameterImpl/1", 458); + feb(647, 45, Hxe, lae); + _.ec = function mae() { + return new pae(this); + }; + sfb(SHe, "ETypeParameterImpl/2", 647); + feb(570, Eve, Fve, pae); + _.Fc = function qae(a) { + return nae(this, RD(a, 89)); + }; + _.Gc = function rae(a) { + var b, c, d; + d = false; + for (c = a.Kc(); c.Ob(); ) { + b = RD(c.Pb(), 89); + Zjb(this.a, b, "") == null && (d = true); + } + return d; + }; + _.$b = function sae() { + akb(this.a); + }; + _.Hc = function tae(a) { + return Ujb(this.a, a); + }; + _.Kc = function uae() { + var a; + return a = new vkb(new mkb(this.a).a), new xae(a); + }; + _.Mc = function vae(a) { + return oae(this, a); + }; + _.gc = function wae() { + return bkb(this.a); + }; + sfb(SHe, "ETypeParameterImpl/2/1", 570); + feb(571, 1, Ave, xae); + _.Nb = function yae(a) { + Ztb(this, a); + }; + _.Pb = function Aae() { + return RD(tkb(this.a).ld(), 89); + }; + _.Ob = function zae() { + return this.a.b; + }; + _.Qb = function Bae() { + ukb(this.a); + }; + sfb(SHe, "ETypeParameterImpl/2/1/1", 571); + feb(1329, 45, Hxe, Cae); + _._b = function Dae(a) { + return bE(a) ? Yjb(this, a) : !!qtb(this.f, a); + }; + _.xc = function Eae(a) { + var b, c; + b = bE(a) ? Xjb(this, a) : Wd(qtb(this.f, a)); + if (ZD(b, 851)) { + c = RD(b, 851); + b = c.Kk(); + Zjb(this, RD(a, 241), b); + return b; + } else + return b != null ? b : a == null ? (Gie(), Fie) : null; + }; + sfb(SHe, "EValidatorRegistryImpl", 1329); + feb(1349, 720, { 110: 1, 94: 1, 93: 1, 480: 1, 155: 1, 58: 1, 114: 1, 2040: 1, 54: 1, 99: 1, 158: 1, 119: 1, 120: 1 }, Mae); + _.ri = function Nae(a, b) { + switch (a.hk()) { + case 21: + case 22: + case 23: + case 24: + case 26: + case 31: + case 32: + case 37: + case 38: + case 39: + case 40: + case 43: + case 44: + case 48: + case 49: + case 20: + return b == null ? null : jeb(b); + case 25: + return Gae(b); + case 27: + return Hae(b); + case 28: + return Iae(b); + case 29: + return b == null ? null : a2d(nAd[0], RD(b, 206)); + case 41: + return b == null ? "" : nfb(RD(b, 297)); + case 42: + return jeb(b); + case 50: + return WD(b); + default: + throw Adb(new agb(VHe + a.xe() + WHe)); + } + }; + _.si = function Oae(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q; + switch (a.G == -1 && (a.G = (m = BXd(a), m ? fZd(m.vi(), a) : -1)), a.G) { + case 0: + return c = new mXd(), c; + case 1: + return b = new pVd(), b; + case 2: + return d = new HYd(), d; + case 4: + return e = new k1d(), e; + case 5: + return f = new A1d(), f; + case 6: + return g = new R1d(), g; + case 7: + return h = new yAd(), h; + case 10: + return j = new kUd(), j; + case 11: + return k = new q4d(), k; + case 12: + return l = new EBd(), l; + case 13: + return n = new R5d(), n; + case 14: + return o2 = new d6d(), o2; + case 17: + return p = new v6d(), p; + case 18: + return i = new s2d(), i; + case 19: + return q = new _9d(), q; + default: + throw Adb(new agb(ZHe + a.zb + WHe)); + } + }; + _.ti = function Pae(a, b) { + switch (a.hk()) { + case 20: + return b == null ? null : new Bib(b); + case 21: + return b == null ? null : new ejb(b); + case 23: + case 22: + return b == null ? null : Fae(b); + case 26: + case 24: + return b == null ? null : $eb(Oeb(b, -128, 127) << 24 >> 24); + case 25: + return vAd(b); + case 27: + return Jae(b); + case 28: + return Kae(b); + case 29: + return Lae(b); + case 32: + case 31: + return b == null ? null : Neb(b); + case 38: + case 37: + return b == null ? null : new Ufb(b); + case 40: + case 39: + return b == null ? null : sgb(Oeb(b, qwe, lve)); + case 41: + return null; + case 42: + return b == null ? null : null; + case 44: + case 43: + return b == null ? null : Hgb(Peb(b)); + case 49: + case 48: + return b == null ? null : bhb(Oeb(b, BKe, 32767) << 16 >> 16); + case 50: + return b; + default: + throw Adb(new agb(VHe + a.xe() + WHe)); + } + }; + sfb(SHe, "EcoreFactoryImpl", 1349); + feb(560, 184, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 241: 1, 114: 1, 2038: 1, 54: 1, 99: 1, 158: 1, 184: 1, 560: 1, 119: 1, 120: 1, 690: 1 }, $ae); + _.gb = false; + _.hb = false; + var Rae, Sae = false; + sfb(SHe, "EcorePackageImpl", 560); + feb(1234, 1, { 851: 1 }, cbe); + _.Kk = function dbe() { + return fke(), eke; + }; + sfb(SHe, "EcorePackageImpl/1", 1234); + feb(1243, 1, OKe, ebe); + _.fk = function fbe(a) { + return ZD(a, 155); + }; + _.gk = function gbe(a) { + return $C(p7, rve, 155, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/10", 1243); + feb(1244, 1, OKe, hbe); + _.fk = function ibe(a) { + return ZD(a, 197); + }; + _.gk = function jbe(a) { + return $C(q7, rve, 197, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/11", 1244); + feb(1245, 1, OKe, kbe); + _.fk = function lbe(a) { + return ZD(a, 58); + }; + _.gk = function mbe(a) { + return $C(r7, rve, 58, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/12", 1245); + feb(1246, 1, OKe, nbe); + _.fk = function obe(a) { + return ZD(a, 411); + }; + _.gk = function pbe(a) { + return $C(s7, mKe, 62, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/13", 1246); + feb(1247, 1, OKe, qbe); + _.fk = function rbe(a) { + return ZD(a, 241); + }; + _.gk = function sbe(a) { + return $C(t7, rve, 241, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/14", 1247); + feb(1248, 1, OKe, tbe); + _.fk = function ube(a) { + return ZD(a, 518); + }; + _.gk = function vbe(a) { + return $C(u7, rve, 2116, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/15", 1248); + feb(1249, 1, OKe, wbe); + _.fk = function xbe(a) { + return ZD(a, 102); + }; + _.gk = function ybe(a) { + return $C(v7, lKe, 19, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/16", 1249); + feb(1250, 1, OKe, zbe); + _.fk = function Abe(a) { + return ZD(a, 179); + }; + _.gk = function Bbe(a) { + return $C(y7, lKe, 179, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/17", 1250); + feb(1251, 1, OKe, Cbe); + _.fk = function Dbe(a) { + return ZD(a, 481); + }; + _.gk = function Ebe(a) { + return $C(A7, rve, 481, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/18", 1251); + feb(1252, 1, OKe, Fbe); + _.fk = function Gbe(a) { + return ZD(a, 561); + }; + _.gk = function Hbe(a) { + return $C(C8, LJe, 561, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/19", 1252); + feb(1235, 1, OKe, Ibe); + _.fk = function Jbe(a) { + return ZD(a, 331); + }; + _.gk = function Kbe(a) { + return $C(g7, lKe, 35, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/2", 1235); + feb(1253, 1, OKe, Lbe); + _.fk = function Mbe(a) { + return ZD(a, 248); + }; + _.gk = function Nbe(a) { + return $C(o7, sKe, 89, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/20", 1253); + feb(1254, 1, OKe, Obe); + _.fk = function Pbe(a) { + return ZD(a, 457); + }; + _.gk = function Qbe(a) { + return $C(z7, rve, 850, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/21", 1254); + feb(1255, 1, OKe, Rbe); + _.fk = function Sbe(a) { + return $D(a); + }; + _.gk = function Tbe(a) { + return $C(QI, Nve, 485, a, 8, 1); + }; + sfb(SHe, "EcorePackageImpl/22", 1255); + feb(1256, 1, OKe, Ube); + _.fk = function Vbe(a) { + return ZD(a, 195); + }; + _.gk = function Wbe(a) { + return $C(gE, Nve, 195, a, 0, 2); + }; + sfb(SHe, "EcorePackageImpl/23", 1256); + feb(1257, 1, OKe, Xbe); + _.fk = function Ybe(a) { + return ZD(a, 222); + }; + _.gk = function Zbe(a) { + return $C(RI, Nve, 222, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/24", 1257); + feb(1258, 1, OKe, $be); + _.fk = function _be(a) { + return ZD(a, 180); + }; + _.gk = function ace(a) { + return $C(SI, Nve, 180, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/25", 1258); + feb(1259, 1, OKe, bce); + _.fk = function cce(a) { + return ZD(a, 206); + }; + _.gk = function dce(a) { + return $C(qK, Nve, 206, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/26", 1259); + feb(1260, 1, OKe, ece); + _.fk = function fce(a) { + return false; + }; + _.gk = function gce(a) { + return $C(T6, rve, 2215, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/27", 1260); + feb(1261, 1, OKe, hce); + _.fk = function ice(a) { + return _D(a); + }; + _.gk = function jce(a) { + return $C(VI, Nve, 345, a, 7, 1); + }; + sfb(SHe, "EcorePackageImpl/28", 1261); + feb(1262, 1, OKe, kce); + _.fk = function lce(a) { + return ZD(a, 61); + }; + _.gk = function mce(a) { + return $C(Y6, Ize, 61, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/29", 1262); + feb(1236, 1, OKe, nce); + _.fk = function oce(a) { + return ZD(a, 519); + }; + _.gk = function pce(a) { + return $C(f7, { 3: 1, 4: 1, 5: 1, 2033: 1 }, 598, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/3", 1236); + feb(1263, 1, OKe, qce); + _.fk = function rce(a) { + return ZD(a, 582); + }; + _.gk = function sce(a) { + return $C(Z6, rve, 2039, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/30", 1263); + feb(1264, 1, OKe, tce); + _.fk = function uce(a) { + return ZD(a, 160); + }; + _.gk = function vce(a) { + return $C(Tbb, Ize, 160, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/31", 1264); + feb(1265, 1, OKe, wce); + _.fk = function xce(a) { + return ZD(a, 76); + }; + _.gk = function yce(a) { + return $C(Jbb, PKe, 76, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/32", 1265); + feb(1266, 1, OKe, zce); + _.fk = function Ace(a) { + return ZD(a, 161); + }; + _.gk = function Bce(a) { + return $C(ZI, Nve, 161, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/33", 1266); + feb(1267, 1, OKe, Cce); + _.fk = function Dce(a) { + return ZD(a, 17); + }; + _.gk = function Ece(a) { + return $C(bJ, Nve, 17, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/34", 1267); + feb(1268, 1, OKe, Fce); + _.fk = function Gce(a) { + return ZD(a, 297); + }; + _.gk = function Hce(a) { + return $C(UI, rve, 297, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/35", 1268); + feb(1269, 1, OKe, Ice); + _.fk = function Jce(a) { + return ZD(a, 168); + }; + _.gk = function Kce(a) { + return $C(eJ, Nve, 168, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/36", 1269); + feb(1270, 1, OKe, Lce); + _.fk = function Mce(a) { + return ZD(a, 85); + }; + _.gk = function Nce(a) { + return $C(VK, rve, 85, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/37", 1270); + feb(1271, 1, OKe, Oce); + _.fk = function Pce(a) { + return ZD(a, 599); + }; + _.gk = function Qce(a) { + return $C(Aab, rve, 599, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/38", 1271); + feb(1272, 1, OKe, Rce); + _.fk = function Sce(a) { + return false; + }; + _.gk = function Tce(a) { + return $C(zab, rve, 2216, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/39", 1272); + feb(1237, 1, OKe, Uce); + _.fk = function Vce(a) { + return ZD(a, 90); + }; + _.gk = function Wce(a) { + return $C(h7, rve, 29, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/4", 1237); + feb(1273, 1, OKe, Xce); + _.fk = function Yce(a) { + return ZD(a, 191); + }; + _.gk = function Zce(a) { + return $C(lJ, Nve, 191, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/40", 1273); + feb(1274, 1, OKe, $ce); + _.fk = function _ce(a) { + return bE(a); + }; + _.gk = function ade(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(SHe, "EcorePackageImpl/41", 1274); + feb(1275, 1, OKe, bde); + _.fk = function cde(a) { + return ZD(a, 596); + }; + _.gk = function dde(a) { + return $C(a7, rve, 596, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/42", 1275); + feb(1276, 1, OKe, ede); + _.fk = function fde(a) { + return false; + }; + _.gk = function gde(a) { + return $C($6, Nve, 2217, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/43", 1276); + feb(1277, 1, OKe, hde); + _.fk = function ide(a) { + return ZD(a, 44); + }; + _.gk = function jde(a) { + return $C(UK, Zve, 44, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/44", 1277); + feb(1238, 1, OKe, kde); + _.fk = function lde(a) { + return ZD(a, 142); + }; + _.gk = function mde(a) { + return $C(i7, rve, 142, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/5", 1238); + feb(1239, 1, OKe, nde); + _.fk = function ode(a) { + return ZD(a, 156); + }; + _.gk = function pde(a) { + return $C(k7, rve, 156, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/6", 1239); + feb(1240, 1, OKe, qde); + _.fk = function rde(a) { + return ZD(a, 469); + }; + _.gk = function sde(a) { + return $C(m7, rve, 685, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/7", 1240); + feb(1241, 1, OKe, tde); + _.fk = function ude(a) { + return ZD(a, 582); + }; + _.gk = function vde(a) { + return $C(l7, rve, 694, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/8", 1241); + feb(1242, 1, OKe, wde); + _.fk = function xde(a) { + return ZD(a, 480); + }; + _.gk = function yde(a) { + return $C(n7, rve, 480, a, 0, 1); + }; + sfb(SHe, "EcorePackageImpl/9", 1242); + feb(1038, 2080, JJe, Cde); + _.Mi = function Dde(a, b) { + zde(this, RD(b, 424)); + }; + _.Qi = function Ede(a, b) { + Ade(this, a, RD(b, 424)); + }; + sfb(SHe, "MinimalEObjectImpl/1ArrayDelegatingAdapterList", 1038); + feb(1039, 152, GJe, Fde); + _.jj = function Gde() { + return this.a.a; + }; + sfb(SHe, "MinimalEObjectImpl/1ArrayDelegatingAdapterList/1", 1039); + feb(1067, 1066, {}, Ide); + sfb("org.eclipse.emf.ecore.plugin", "EcorePlugin", 1067); + var Aab = ufb(QKe, "Resource"); + feb(799, 1524, RKe); + _.Hl = function Mde(a) { + }; + _.Il = function Nde(a) { + }; + _.El = function Ode() { + return !this.a && (this.a = new Zde(this)), this.a; + }; + _.Fl = function Pde(a) { + var b, c, d, e, f; + d = a.length; + if (d > 0) { + BFb(0, a.length); + if (a.charCodeAt(0) == 47) { + f = new cnb(4); + e = 1; + for (b = 1; b < d; ++b) { + BFb(b, a.length); + if (a.charCodeAt(b) == 47) { + Rmb(f, e == b ? "" : (AFb(e, b, a.length), a.substr(e, b - e))); + e = b + 1; + } + } + Rmb(f, (BFb(e, a.length + 1), a.substr(e))); + return Jde(this, f); + } else { + BFb(d - 1, a.length); + if (a.charCodeAt(d - 1) == 63) { + c = uhb(a, Fhb(63), d - 2); + c > 0 && (a = (AFb(0, c, a.length), a.substr(0, c))); + } + } + } + return Kde(this, a); + }; + _.Gl = function Qde() { + return this.c; + }; + _.Ib = function Rde() { + var a; + return nfb(this.Rm) + "@" + (a = tb(this) >>> 0, a.toString(16)) + " uri='" + this.d + "'"; + }; + _.b = false; + sfb(SKe, "ResourceImpl", 799); + feb(1525, 799, RKe, Sde); + sfb(SKe, "BinaryResourceImpl", 1525); + feb(1190, 708, QIe); + _.bj = function Vde(a) { + return ZD(a, 58) ? Tde(this, RD(a, 58)) : ZD(a, 599) ? new dMd(RD(a, 599).El()) : dE(a) === dE(this.f) ? RD(a, 16).Kc() : (jQd(), iQd.a); + }; + _.Ob = function Wde() { + return Ude(this); + }; + _.a = false; + sfb(ZJe, "EcoreUtil/ContentTreeIterator", 1190); + feb(1526, 1190, QIe, Xde); + _.bj = function Yde(a) { + return dE(a) === dE(this.f) ? RD(a, 15).Kc() : new _je(RD(a, 58)); + }; + sfb(SKe, "ResourceImpl/5", 1526); + feb(658, 2092, nKe, Zde); + _.Hc = function $de(a) { + return this.i <= 4 ? PHd(this, a) : ZD(a, 54) && RD(a, 54).Jh() == this.a; + }; + _.Mi = function _de(a, b) { + a == this.i - 1 && (this.a.b || (this.a.b = true, null)); + }; + _.Oi = function aee(a, b) { + a == 0 ? this.a.b || (this.a.b = true, null) : $Gd(this, a, b); + }; + _.Qi = function bee(a, b) { + }; + _.Ri = function cee(a, b, c) { + }; + _.Lj = function dee() { + return 2; + }; + _.jj = function eee() { + return this.a; + }; + _.Mj = function fee() { + return true; + }; + _.Nj = function gee(a, b) { + var c; + c = RD(a, 54); + b = c.fi(this.a, b); + return b; + }; + _.Oj = function hee(a, b) { + var c; + c = RD(a, 54); + return c.fi(null, b); + }; + _.Pj = function iee() { + return false; + }; + _.Si = function jee() { + return true; + }; + _.aj = function kee(a) { + return $C(r7, rve, 58, a, 0, 1); + }; + _.Yi = function lee() { + return false; + }; + sfb(SKe, "ResourceImpl/ContentsEList", 658); + feb(970, 2062, kwe, mee); + _.fd = function nee(a) { + return this.a.Ki(a); + }; + _.gc = function oee() { + return this.a.gc(); + }; + sfb(ZJe, "AbstractSequentialInternalEList/1", 970); + var hke, ike, jke, kke; + feb(634, 1, {}, Yee); + var pee, qee; + sfb(ZJe, "BasicExtendedMetaData", 634); + feb(1181, 1, {}, afe); + _.Jl = function bfe() { + return null; + }; + _.Kl = function cfe() { + this.a == -2 && $ee(this, uee(this.d, this.b)); + return this.a; + }; + _.Ll = function dfe() { + return null; + }; + _.Ml = function efe() { + return yob(), yob(), vob; + }; + _.xe = function ffe() { + this.c == fLe && _ee(this, zee(this.d, this.b)); + return this.c; + }; + _.Nl = function gfe() { + return 0; + }; + _.a = -2; + _.c = fLe; + sfb(ZJe, "BasicExtendedMetaData/EClassExtendedMetaDataImpl", 1181); + feb(1182, 1, {}, mfe); + _.Jl = function nfe() { + this.a == (ree(), pee) && hfe(this, tee(this.f, this.b)); + return this.a; + }; + _.Kl = function ofe() { + return 0; + }; + _.Ll = function pfe() { + this.c == (ree(), pee) && ife(this, xee(this.f, this.b)); + return this.c; + }; + _.Ml = function qfe() { + !this.d && jfe(this, yee(this.f, this.b)); + return this.d; + }; + _.xe = function rfe() { + this.e == fLe && kfe(this, zee(this.f, this.b)); + return this.e; + }; + _.Nl = function sfe() { + this.g == -2 && lfe(this, Cee(this.f, this.b)); + return this.g; + }; + _.e = fLe; + _.g = -2; + sfb(ZJe, "BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl", 1182); + feb(1180, 1, {}, wfe); + _.b = false; + _.c = false; + sfb(ZJe, "BasicExtendedMetaData/EPackageExtendedMetaDataImpl", 1180); + feb(1183, 1, {}, Jfe); + _.c = -2; + _.e = fLe; + _.f = fLe; + sfb(ZJe, "BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl", 1183); + feb(593, 632, oKe, Kfe); + _.Lj = function Lfe() { + return this.c; + }; + _.ol = function Mfe() { + return false; + }; + _.Wi = function Nfe(a, b) { + return b; + }; + _.c = 0; + sfb(ZJe, "EDataTypeEList", 593); + var Tbb = ufb(ZJe, "FeatureMap"); + feb(78, 593, { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 59: 1, 70: 1, 66: 1, 61: 1, 79: 1, 160: 1, 220: 1, 2036: 1, 71: 1, 97: 1 }, Uge); + _.bd = function Vge(a, b) { + Ofe(this, a, RD(b, 76)); + }; + _.Fc = function Wge(a) { + return Rfe(this, RD(a, 76)); + }; + _.Hi = function _ge(a) { + Wfe(this, RD(a, 76)); + }; + _.Nj = function khe(a, b) { + return mge(this, RD(a, 76), b); + }; + _.Oj = function lhe(a, b) { + return oge(this, RD(a, 76), b); + }; + _.Ti = function nhe(a, b) { + return uge(this, a, b); + }; + _.Wi = function phe(a, b) { + return zge(this, a, RD(b, 76)); + }; + _.hd = function rhe(a, b) { + return Cge(this, a, RD(b, 76)); + }; + _.Uj = function vhe(a, b) { + return Ige(this, RD(a, 76), b); + }; + _.Vj = function whe(a, b) { + return Kge(this, RD(a, 76), b); + }; + _.Wj = function xhe(a, b, c) { + return Lge(this, RD(a, 76), RD(b, 76), c); + }; + _.Zi = function zhe(a, b) { + return Tge(this, a, RD(b, 76)); + }; + _.Ol = function Xge(a, b) { + return Qfe(this, a, b); + }; + _.cd = function Yge(a, b) { + var c, d, e, f, g, h, i, j, k; + j = new ZHd(b.gc()); + for (e = b.Kc(); e.Ob(); ) { + d = RD(e.Pb(), 76); + f = d.Lk(); + if (qke(this.e, f)) { + (!f.Si() || !cge(this, f, d.md()) && !PHd(j, d)) && WGd(j, d); + } else { + k = pke(this.e.Dh(), f); + c = RD(this.g, 124); + g = true; + for (h = 0; h < this.i; ++h) { + i = c[h]; + if (k.am(i.Lk())) { + RD(eHd(this, h, d), 76); + g = false; + break; + } + } + g && WGd(j, d); + } + } + return XGd(this, a, j); + }; + _.Gc = function Zge(a) { + var b, c, d, e, f, g, h, i, j; + i = new ZHd(a.gc()); + for (d = a.Kc(); d.Ob(); ) { + c = RD(d.Pb(), 76); + e = c.Lk(); + if (qke(this.e, e)) { + (!e.Si() || !cge(this, e, c.md()) && !PHd(i, c)) && WGd(i, c); + } else { + j = pke(this.e.Dh(), e); + b = RD(this.g, 124); + f = true; + for (g = 0; g < this.i; ++g) { + h = b[g]; + if (j.am(h.Lk())) { + RD(eHd(this, g, c), 76); + f = false; + break; + } + } + f && WGd(i, c); + } + } + return YGd(this, i); + }; + _.Fi = function $ge(a) { + this.j = -1; + return nLd(this, this.i, a); + }; + _.Pl = function ahe(a, b, c) { + return Xfe(this, a, b, c); + }; + _.Xk = function bhe(a, b) { + return _fe(this, a, b); + }; + _.Ql = function che(a, b, c) { + return age(this, a, b, c); + }; + _.Rl = function dhe() { + return this; + }; + _.Sl = function ehe(a, b) { + return ige(this, a, b); + }; + _.Tl = function fhe(a) { + return RD(QHd(this, a), 76).Lk(); + }; + _.Ul = function ghe(a) { + return RD(QHd(this, a), 76).md(); + }; + _.Vl = function hhe() { + return this.b; + }; + _.Mj = function ihe() { + return true; + }; + _.Tj = function jhe() { + return true; + }; + _.Wl = function mhe(a) { + return !pge(this, a); + }; + _.aj = function ohe(a) { + return $C(Ibb, PKe, 343, a, 0, 1); + }; + _.pl = function qhe(a) { + return Age(this, a); + }; + _.Wb = function she(a) { + Dge(this, a); + }; + _.Xl = function the(a, b) { + Fge(this, a, b); + }; + _.Yl = function uhe(a) { + return Gge(this, a); + }; + _.Zl = function yhe(a) { + Sge(this, a); + }; + sfb(ZJe, "BasicFeatureMap", 78); + feb(1960, 1, Jve); + _.Nb = function Fhe(a) { + Ztb(this, a); + }; + _.Rb = function Ehe(b) { + if (this.g == -1) { + throw Adb(new cgb()); + } + Ahe(this); + try { + Pfe(this.e, this.b, this.a, b); + this.d = this.e.j; + Dhe(this); + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + throw Adb(new Jrb()); + } else + throw Adb(a); + } + }; + _.Ob = function Ghe() { + return Bhe(this); + }; + _.Sb = function Hhe() { + return Che(this); + }; + _.Pb = function Ihe() { + return Dhe(this); + }; + _.Tb = function Jhe() { + return this.a; + }; + _.Ub = function Khe() { + var a; + if (Che(this)) { + Ahe(this); + this.g = --this.a; + if (this.ul()) { + a = Bge(this.e, this.b, this.c, this.a, this.j); + this.j = a; + } + this.i = 0; + return this.j; + } else { + throw Adb(new Dvb()); + } + }; + _.Vb = function Lhe() { + return this.a - 1; + }; + _.Qb = function Mhe() { + if (this.g == -1) { + throw Adb(new cgb()); + } + Ahe(this); + try { + xge(this.e, this.b, this.g); + this.d = this.e.j; + if (this.g < this.a) { + --this.a; + --this.c; + } + --this.g; + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + throw Adb(new Jrb()); + } else + throw Adb(a); + } + }; + _.ul = function Nhe() { + return false; + }; + _.Wb = function Ohe(b) { + if (this.g == -1) { + throw Adb(new cgb()); + } + Ahe(this); + try { + Ege(this.e, this.b, this.g, b); + this.d = this.e.j; + } catch (a) { + a = zdb(a); + if (ZD(a, 77)) { + throw Adb(new Jrb()); + } else + throw Adb(a); + } + }; + _.a = 0; + _.c = 0; + _.d = 0; + _.f = false; + _.g = 0; + _.i = 0; + sfb(ZJe, "FeatureMapUtil/BasicFeatureEIterator", 1960); + feb(420, 1960, Jve, Phe); + _.$l = function Qhe() { + var a, b, c; + c = this.e.i; + a = RD(this.e.g, 124); + while (this.c < c) { + b = a[this.c]; + if (this.k.am(b.Lk())) { + this.j = this.f ? b : b.md(); + this.i = 2; + return true; + } + ++this.c; + } + this.i = 1; + this.g = -1; + return false; + }; + _._l = function Rhe() { + var a, b; + a = RD(this.e.g, 124); + while (--this.c >= 0) { + b = a[this.c]; + if (this.k.am(b.Lk())) { + this.j = this.f ? b : b.md(); + this.i = -2; + return true; + } + } + this.i = -1; + this.g = -1; + return false; + }; + sfb(ZJe, "BasicFeatureMap/FeatureEIterator", 420); + feb(676, 420, Jve, She); + _.ul = function The() { + return true; + }; + sfb(ZJe, "BasicFeatureMap/ResolvingFeatureEIterator", 676); + feb(968, 496, uKe, Uhe); + _.pj = function Vhe() { + return this; + }; + sfb(ZJe, "EContentsEList/1", 968); + feb(969, 496, uKe, Whe); + _.ul = function Xhe() { + return false; + }; + sfb(ZJe, "EContentsEList/2", 969); + feb(967, 287, vKe, Yhe); + _.wl = function Zhe(a) { + }; + _.Ob = function $he() { + return false; + }; + _.Sb = function _he() { + return false; + }; + sfb(ZJe, "EContentsEList/FeatureIteratorImpl/1", 967); + feb(840, 593, oKe, aie); + _.Ni = function bie() { + this.a = true; + }; + _.Qj = function cie() { + return this.a; + }; + _.Gk = function die() { + var a; + sLd(this); + if (Mvd(this.e)) { + a = this.a; + this.a = false; + qvd(this.e, new Q3d(this.e, 2, this.c, a, false)); + } else { + this.a = false; + } + }; + _.a = false; + sfb(ZJe, "EDataTypeEList/Unsettable", 840); + feb(1958, 593, oKe, eie); + _.Si = function fie() { + return true; + }; + sfb(ZJe, "EDataTypeUniqueEList", 1958); + feb(1959, 840, oKe, gie); + _.Si = function hie() { + return true; + }; + sfb(ZJe, "EDataTypeUniqueEList/Unsettable", 1959); + feb(147, 83, oKe, iie); + _.nl = function jie() { + return true; + }; + _.Wi = function kie(a, b) { + return gZd(this, a, RD(b, 58)); + }; + sfb(ZJe, "EObjectContainmentEList/Resolving", 147); + feb(1184, 555, oKe, lie); + _.nl = function mie() { + return true; + }; + _.Wi = function nie(a, b) { + return gZd(this, a, RD(b, 58)); + }; + sfb(ZJe, "EObjectContainmentEList/Unsettable/Resolving", 1184); + feb(766, 14, oKe, oie); + _.Ni = function pie() { + this.a = true; + }; + _.Qj = function qie() { + return this.a; + }; + _.Gk = function rie() { + var a; + sLd(this); + if (Mvd(this.e)) { + a = this.a; + this.a = false; + qvd(this.e, new Q3d(this.e, 2, this.c, a, false)); + } else { + this.a = false; + } + }; + _.a = false; + sfb(ZJe, "EObjectContainmentWithInverseEList/Unsettable", 766); + feb(1222, 766, oKe, sie); + _.nl = function tie() { + return true; + }; + _.Wi = function uie(a, b) { + return gZd(this, a, RD(b, 58)); + }; + sfb(ZJe, "EObjectContainmentWithInverseEList/Unsettable/Resolving", 1222); + feb(757, 505, oKe, vie); + _.Ni = function wie() { + this.a = true; + }; + _.Qj = function xie() { + return this.a; + }; + _.Gk = function yie() { + var a; + sLd(this); + if (Mvd(this.e)) { + a = this.a; + this.a = false; + qvd(this.e, new Q3d(this.e, 2, this.c, a, false)); + } else { + this.a = false; + } + }; + _.a = false; + sfb(ZJe, "EObjectEList/Unsettable", 757); + feb(338, 505, oKe, zie); + _.nl = function Aie() { + return true; + }; + _.Wi = function Bie(a, b) { + return gZd(this, a, RD(b, 58)); + }; + sfb(ZJe, "EObjectResolvingEList", 338); + feb(1844, 757, oKe, Cie); + _.nl = function Die() { + return true; + }; + _.Wi = function Eie(a, b) { + return gZd(this, a, RD(b, 58)); + }; + sfb(ZJe, "EObjectResolvingEList/Unsettable", 1844); + feb(1527, 1, {}, Hie); + var Fie; + sfb(ZJe, "EObjectValidator", 1527); + feb(559, 505, oKe, Iie); + _.il = function Jie() { + return this.d; + }; + _.jl = function Kie() { + return this.b; + }; + _.Mj = function Lie() { + return true; + }; + _.ml = function Mie() { + return true; + }; + _.b = 0; + sfb(ZJe, "EObjectWithInverseEList", 559); + feb(1225, 559, oKe, Nie); + _.ll = function Oie() { + return true; + }; + sfb(ZJe, "EObjectWithInverseEList/ManyInverse", 1225); + feb(635, 559, oKe, Pie); + _.Ni = function Qie() { + this.a = true; + }; + _.Qj = function Rie() { + return this.a; + }; + _.Gk = function Sie() { + var a; + sLd(this); + if (Mvd(this.e)) { + a = this.a; + this.a = false; + qvd(this.e, new Q3d(this.e, 2, this.c, a, false)); + } else { + this.a = false; + } + }; + _.a = false; + sfb(ZJe, "EObjectWithInverseEList/Unsettable", 635); + feb(1224, 635, oKe, Tie); + _.ll = function Uie() { + return true; + }; + sfb(ZJe, "EObjectWithInverseEList/Unsettable/ManyInverse", 1224); + feb(767, 559, oKe, Vie); + _.nl = function Wie() { + return true; + }; + _.Wi = function Xie(a, b) { + return gZd(this, a, RD(b, 58)); + }; + sfb(ZJe, "EObjectWithInverseResolvingEList", 767); + feb(32, 767, oKe, Yie); + _.ll = function Zie() { + return true; + }; + sfb(ZJe, "EObjectWithInverseResolvingEList/ManyInverse", 32); + feb(768, 635, oKe, $ie); + _.nl = function _ie() { + return true; + }; + _.Wi = function aje(a, b) { + return gZd(this, a, RD(b, 58)); + }; + sfb(ZJe, "EObjectWithInverseResolvingEList/Unsettable", 768); + feb(1223, 768, oKe, bje); + _.ll = function cje() { + return true; + }; + sfb(ZJe, "EObjectWithInverseResolvingEList/Unsettable/ManyInverse", 1223); + feb(1185, 632, oKe); + _.Li = function dje() { + return (this.b & 1792) == 0; + }; + _.Ni = function eje() { + this.b |= 1; + }; + _.kl = function fje() { + return (this.b & 4) != 0; + }; + _.Mj = function gje() { + return (this.b & 40) != 0; + }; + _.ll = function hje() { + return (this.b & 16) != 0; + }; + _.ml = function ije() { + return (this.b & 8) != 0; + }; + _.nl = function jje() { + return (this.b & cKe) != 0; + }; + _.al = function kje() { + return (this.b & 32) != 0; + }; + _.ol = function lje() { + return (this.b & gwe) != 0; + }; + _.fk = function mje(a) { + return !this.d ? this.Lk().Hk().fk(a) : QRd(this.d, a); + }; + _.Qj = function nje() { + return (this.b & 2) != 0 ? (this.b & 1) != 0 : this.i != 0; + }; + _.Si = function oje() { + return (this.b & 128) != 0; + }; + _.Gk = function qje() { + var a; + sLd(this); + if ((this.b & 2) != 0) { + if (Mvd(this.e)) { + a = (this.b & 1) != 0; + this.b &= -2; + eZd(this, new Q3d(this.e, 2, BYd(this.e.Dh(), this.Lk()), a, false)); + } else { + this.b &= -2; + } + } + }; + _.Yi = function rje() { + return (this.b & 1536) == 0; + }; + _.b = 0; + sfb(ZJe, "EcoreEList/Generic", 1185); + feb(1186, 1185, oKe, sje); + _.Lk = function tje() { + return this.a; + }; + sfb(ZJe, "EcoreEList/Dynamic", 1186); + feb(765, 66, PIe, uje); + _.aj = function vje(a) { + return IMd(this.a.a, a); + }; + sfb(ZJe, "EcoreEMap/1", 765); + feb(764, 83, oKe, wje); + _.Mi = function xje(a, b) { + UNd(this.b, RD(b, 136)); + }; + _.Oi = function yje(a, b) { + TNd(this.b); + }; + _.Pi = function zje(a, b, c) { + var d; + ++(d = this.b, RD(b, 136), d).e; + }; + _.Qi = function Aje(a, b) { + VNd(this.b, RD(b, 136)); + }; + _.Ri = function Bje(a, b, c) { + VNd(this.b, RD(c, 136)); + dE(c) === dE(b) && RD(c, 136).Ci(aOd(RD(b, 136).ld())); + UNd(this.b, RD(b, 136)); + }; + sfb(ZJe, "EcoreEMap/DelegateEObjectContainmentEList", 764); + feb(1220, 141, _Je, Cje); + sfb(ZJe, "EcoreEMap/Unsettable", 1220); + feb(1221, 764, oKe, Dje); + _.Ni = function Eje() { + this.a = true; + }; + _.Qj = function Fje() { + return this.a; + }; + _.Gk = function Gje() { + var a; + sLd(this); + if (Mvd(this.e)) { + a = this.a; + this.a = false; + qvd(this.e, new Q3d(this.e, 2, this.c, a, false)); + } else { + this.a = false; + } + }; + _.a = false; + sfb(ZJe, "EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList", 1221); + feb(1189, 215, Hxe, Zje); + _.a = false; + _.b = false; + sfb(ZJe, "EcoreUtil/Copier", 1189); + feb(759, 1, Ave, _je); + _.Nb = function ake(a) { + Ztb(this, a); + }; + _.Ob = function bke() { + return $je(this); + }; + _.Pb = function cke() { + var a; + $je(this); + a = this.b; + this.b = null; + return a; + }; + _.Qb = function dke() { + this.a.Qb(); + }; + sfb(ZJe, "EcoreUtil/ProperContentIterator", 759); + feb(1528, 1527, {}, gke); + var eke; + sfb(ZJe, "EcoreValidator", 1528); + var mke; + ufb(ZJe, "FeatureMapUtil/Validator"); + feb(1295, 1, { 2041: 1 }, rke); + _.am = function ske(a) { + return true; + }; + sfb(ZJe, "FeatureMapUtil/1", 1295); + feb(773, 1, { 2041: 1 }, wke); + _.am = function xke(a) { + var b; + if (this.c == a) + return true; + b = TD(Wjb(this.a, a)); + if (b == null) { + if (vke(this, a)) { + yke(this.a, a, (Geb(), Feb)); + return true; + } else { + yke(this.a, a, (Geb(), Eeb)); + return false; + } + } else { + return b == (Geb(), Feb); + } + }; + _.e = false; + var tke; + sfb(ZJe, "FeatureMapUtil/BasicValidator", 773); + feb(774, 45, Hxe, zke); + sfb(ZJe, "FeatureMapUtil/BasicValidator/Cache", 774); + feb(509, 56, { 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 61: 1, 79: 1, 71: 1, 97: 1 }, Eke); + _.bd = function Fke(a, b) { + Pfe(this.c, this.b, a, b); + }; + _.Fc = function Gke(a) { + return Qfe(this.c, this.b, a); + }; + _.cd = function Hke(a, b) { + return Sfe(this.c, this.b, a, b); + }; + _.Gc = function Ike(a) { + return Ake(this, a); + }; + _.Gi = function Jke(a, b) { + Ufe(this.c, this.b, a, b); + }; + _.Wk = function Kke(a, b) { + return Xfe(this.c, this.b, a, b); + }; + _.$i = function Lke(a) { + return hge(this.c, this.b, a, false); + }; + _.Ii = function Mke() { + return Yfe(this.c, this.b); + }; + _.Ji = function Nke() { + return Zfe(this.c, this.b); + }; + _.Ki = function Oke(a) { + return $fe(this.c, this.b, a); + }; + _.Xk = function Pke(a, b) { + return Bke(this, a, b); + }; + _.$b = function Qke() { + Cke(this); + }; + _.Hc = function Rke(a) { + return cge(this.c, this.b, a); + }; + _.Ic = function Ske(a) { + return ege(this.c, this.b, a); + }; + _.Xb = function Tke(a) { + return hge(this.c, this.b, a, true); + }; + _.Fk = function Uke(a) { + return this; + }; + _.dd = function Vke(a) { + return jge(this.c, this.b, a); + }; + _.dc = function Wke() { + return Dke(this); + }; + _.Qj = function Xke() { + return !pge(this.c, this.b); + }; + _.Kc = function Yke() { + return qge(this.c, this.b); + }; + _.ed = function Zke() { + return sge(this.c, this.b); + }; + _.fd = function $ke(a) { + return tge(this.c, this.b, a); + }; + _.Ti = function _ke(a, b) { + return vge(this.c, this.b, a, b); + }; + _.Ui = function ale(a, b) { + wge(this.c, this.b, a, b); + }; + _.gd = function ble(a) { + return xge(this.c, this.b, a); + }; + _.Mc = function cle(a) { + return yge(this.c, this.b, a); + }; + _.hd = function dle(a, b) { + return Ege(this.c, this.b, a, b); + }; + _.Wb = function ele(a) { + bge(this.c, this.b); + Ake(this, RD(a, 15)); + }; + _.gc = function fle() { + return Nge(this.c, this.b); + }; + _.Pc = function gle() { + return Oge(this.c, this.b); + }; + _.Qc = function hle(a) { + return Qge(this.c, this.b, a); + }; + _.Ib = function ile() { + var a, b; + b = new Qhb(); + b.a += "["; + for (a = Yfe(this.c, this.b); Bhe(a); ) { + Nhb(b, Ghb(Dhe(a))); + Bhe(a) && (b.a += pve, b); + } + b.a += "]"; + return b.a; + }; + _.Gk = function jle() { + bge(this.c, this.b); + }; + sfb(ZJe, "FeatureMapUtil/FeatureEList", 509); + feb(644, 39, GJe, lle); + _.hj = function mle(a) { + return kle(this, a); + }; + _.mj = function nle(a) { + var b, c, d, e, f, g, h; + switch (this.d) { + case 1: + case 2: { + f = a.jj(); + if (dE(f) === dE(this.c) && kle(this, null) == a.hj(null)) { + this.g = a.ij(); + a.gj() == 1 && (this.d = 1); + return true; + } + break; + } + case 3: { + e = a.gj(); + switch (e) { + case 3: { + f = a.jj(); + if (dE(f) === dE(this.c) && kle(this, null) == a.hj(null)) { + this.d = 5; + b = new ZHd(2); + WGd(b, this.g); + WGd(b, a.ij()); + this.g = b; + return true; + } + break; + } + } + break; + } + case 5: { + e = a.gj(); + switch (e) { + case 3: { + f = a.jj(); + if (dE(f) === dE(this.c) && kle(this, null) == a.hj(null)) { + c = RD(this.g, 16); + c.Fc(a.ij()); + return true; + } + break; + } + } + break; + } + case 4: { + e = a.gj(); + switch (e) { + case 3: { + f = a.jj(); + if (dE(f) === dE(this.c) && kle(this, null) == a.hj(null)) { + this.d = 1; + this.g = a.ij(); + return true; + } + break; + } + case 4: { + f = a.jj(); + if (dE(f) === dE(this.c) && kle(this, null) == a.hj(null)) { + this.d = 6; + h = new ZHd(2); + WGd(h, this.n); + WGd(h, a.kj()); + this.n = h; + g = cD(WC(kE, 1), Pwe, 28, 15, [this.o, a.lj()]); + this.g = g; + return true; + } + break; + } + } + break; + } + case 6: { + e = a.gj(); + switch (e) { + case 4: { + f = a.jj(); + if (dE(f) === dE(this.c) && kle(this, null) == a.hj(null)) { + c = RD(this.n, 16); + c.Fc(a.kj()); + g = RD(this.g, 53); + d = $C(kE, Pwe, 28, g.length + 1, 15, 1); + hib(g, 0, d, 0, g.length); + d[g.length] = a.lj(); + this.g = d; + return true; + } + break; + } + } + break; + } + } + return false; + }; + sfb(ZJe, "FeatureMapUtil/FeatureENotificationImpl", 644); + feb(564, 509, { 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 61: 1, 79: 1, 160: 1, 220: 1, 2036: 1, 71: 1, 97: 1 }, ole); + _.Ol = function ple(a, b) { + return Qfe(this.c, a, b); + }; + _.Pl = function qle(a, b, c) { + return Xfe(this.c, a, b, c); + }; + _.Ql = function rle(a, b, c) { + return age(this.c, a, b, c); + }; + _.Rl = function sle() { + return this; + }; + _.Sl = function tle(a, b) { + return ige(this.c, a, b); + }; + _.Tl = function ule(a) { + return RD(hge(this.c, this.b, a, false), 76).Lk(); + }; + _.Ul = function vle(a) { + return RD(hge(this.c, this.b, a, false), 76).md(); + }; + _.Vl = function wle() { + return this.a; + }; + _.Wl = function xle(a) { + return !pge(this.c, a); + }; + _.Xl = function yle(a, b) { + Fge(this.c, a, b); + }; + _.Yl = function zle(a) { + return Gge(this.c, a); + }; + _.Zl = function Ale(a) { + Sge(this.c, a); + }; + sfb(ZJe, "FeatureMapUtil/FeatureFeatureMap", 564); + feb(1294, 1, $Je, Ble); + _.Fk = function Cle(a) { + return hge(this.b, this.a, -1, a); + }; + _.Qj = function Dle() { + return !pge(this.b, this.a); + }; + _.Wb = function Ele(a) { + Fge(this.b, this.a, a); + }; + _.Gk = function Fle() { + bge(this.b, this.a); + }; + sfb(ZJe, "FeatureMapUtil/FeatureValue", 1294); + var Gle, Hle, Ile, Jle, Kle; + var Vbb = ufb(hLe, "AnyType"); + feb(680, 63, swe, Mle); + sfb(hLe, "InvalidDatatypeValueException", 680); + var Xbb = ufb(hLe, iLe); + var Ybb = ufb(hLe, jLe); + var Zbb = ufb(hLe, kLe); + var Nle; + var Ple; + var Rle, Sle, Tle, Ule, Vle, Wle, Xle, Yle, Zle, $le, _le, ame, bme, cme, dme, eme, fme, gme, hme, ime, jme, kme, lme, mme; + feb(844, 516, { 110: 1, 94: 1, 93: 1, 58: 1, 54: 1, 99: 1, 857: 1 }, ome); + _.Lh = function pme(a, b, c) { + switch (a) { + case 0: + if (c) + return !this.c && (this.c = new Uge(this, 0)), this.c; + return !this.c && (this.c = new Uge(this, 0)), this.c.b; + case 1: + if (c) + return !this.c && (this.c = new Uge(this, 0)), RD(rge(this.c, (nme(), Sle)), 160); + return (!this.c && (this.c = new Uge(this, 0)), RD(RD(rge(this.c, (nme(), Sle)), 160), 220)).Vl(); + case 2: + if (c) + return !this.b && (this.b = new Uge(this, 2)), this.b; + return !this.b && (this.b = new Uge(this, 2)), this.b.b; + } + return zvd(this, a - AYd(this.ii()), vYd((this.j & 2) == 0 ? this.ii() : (!this.k && (this.k = new fUd()), this.k).Nk(), a), b, c); + }; + _.Uh = function qme(a, b, c) { + var d; + switch (b) { + case 0: + return !this.c && (this.c = new Uge(this, 0)), _fe(this.c, a, c); + case 1: + return (!this.c && (this.c = new Uge(this, 0)), RD(RD(rge(this.c, (nme(), Sle)), 160), 71)).Xk(a, c); + case 2: + return !this.b && (this.b = new Uge(this, 2)), _fe(this.b, a, c); + } + return d = RD(vYd((this.j & 2) == 0 ? this.ii() : (!this.k && (this.k = new fUd()), this.k).Nk(), b), 69), d.wk().Ak(this, Yvd(this), b - AYd(this.ii()), a, c); + }; + _.Wh = function rme(a) { + switch (a) { + case 0: + return !!this.c && this.c.i != 0; + case 1: + return !(!this.c && (this.c = new Uge(this, 0)), RD(rge(this.c, (nme(), Sle)), 160)).dc(); + case 2: + return !!this.b && this.b.i != 0; + } + return Avd(this, a - AYd(this.ii()), vYd((this.j & 2) == 0 ? this.ii() : (!this.k && (this.k = new fUd()), this.k).Nk(), a)); + }; + _.bi = function sme(a, b) { + switch (a) { + case 0: + !this.c && (this.c = new Uge(this, 0)); + Dge(this.c, b); + return; + case 1: + (!this.c && (this.c = new Uge(this, 0)), RD(RD(rge(this.c, (nme(), Sle)), 160), 220)).Wb(b); + return; + case 2: + !this.b && (this.b = new Uge(this, 2)); + Dge(this.b, b); + return; + } + Bvd(this, a - AYd(this.ii()), vYd((this.j & 2) == 0 ? this.ii() : (!this.k && (this.k = new fUd()), this.k).Nk(), a), b); + }; + _.ii = function tme() { + return nme(), Rle; + }; + _.ki = function ume(a) { + switch (a) { + case 0: + !this.c && (this.c = new Uge(this, 0)); + sLd(this.c); + return; + case 1: + (!this.c && (this.c = new Uge(this, 0)), RD(rge(this.c, (nme(), Sle)), 160)).$b(); + return; + case 2: + !this.b && (this.b = new Uge(this, 2)); + sLd(this.b); + return; + } + Cvd(this, a - AYd(this.ii()), vYd((this.j & 2) == 0 ? this.ii() : (!this.k && (this.k = new fUd()), this.k).Nk(), a)); + }; + _.Ib = function vme() { + var a; + if ((this.j & 4) != 0) + return awd(this); + a = new Shb(awd(this)); + a.a += " (mixed: "; + Mhb(a, this.c); + a.a += ", anyAttribute: "; + Mhb(a, this.b); + a.a += ")"; + return a.a; + }; + sfb(lLe, "AnyTypeImpl", 844); + feb(681, 516, { 110: 1, 94: 1, 93: 1, 58: 1, 54: 1, 99: 1, 2119: 1, 681: 1 }, yme); + _.Lh = function zme(a, b, c) { + switch (a) { + case 0: + return this.a; + case 1: + return this.b; + } + return zvd(this, a - AYd((nme(), cme)), vYd((this.j & 2) == 0 ? cme : (!this.k && (this.k = new fUd()), this.k).Nk(), a), b, c); + }; + _.Wh = function Ame(a) { + switch (a) { + case 0: + return this.a != null; + case 1: + return this.b != null; + } + return Avd(this, a - AYd((nme(), cme)), vYd((this.j & 2) == 0 ? cme : (!this.k && (this.k = new fUd()), this.k).Nk(), a)); + }; + _.bi = function Bme(a, b) { + switch (a) { + case 0: + wme(this, WD(b)); + return; + case 1: + xme(this, WD(b)); + return; + } + Bvd(this, a - AYd((nme(), cme)), vYd((this.j & 2) == 0 ? cme : (!this.k && (this.k = new fUd()), this.k).Nk(), a), b); + }; + _.ii = function Cme() { + return nme(), cme; + }; + _.ki = function Dme(a) { + switch (a) { + case 0: + this.a = null; + return; + case 1: + this.b = null; + return; + } + Cvd(this, a - AYd((nme(), cme)), vYd((this.j & 2) == 0 ? cme : (!this.k && (this.k = new fUd()), this.k).Nk(), a)); + }; + _.Ib = function Eme() { + var a; + if ((this.j & 4) != 0) + return awd(this); + a = new Shb(awd(this)); + a.a += " (data: "; + Nhb(a, this.a); + a.a += ", target: "; + Nhb(a, this.b); + a.a += ")"; + return a.a; + }; + _.a = null; + _.b = null; + sfb(lLe, "ProcessingInstructionImpl", 681); + feb(682, 844, { 110: 1, 94: 1, 93: 1, 58: 1, 54: 1, 99: 1, 857: 1, 2120: 1, 682: 1 }, Hme); + _.Lh = function Ime(a, b, c) { + switch (a) { + case 0: + if (c) + return !this.c && (this.c = new Uge(this, 0)), this.c; + return !this.c && (this.c = new Uge(this, 0)), this.c.b; + case 1: + if (c) + return !this.c && (this.c = new Uge(this, 0)), RD(rge(this.c, (nme(), Sle)), 160); + return (!this.c && (this.c = new Uge(this, 0)), RD(RD(rge(this.c, (nme(), Sle)), 160), 220)).Vl(); + case 2: + if (c) + return !this.b && (this.b = new Uge(this, 2)), this.b; + return !this.b && (this.b = new Uge(this, 2)), this.b.b; + case 3: + return !this.c && (this.c = new Uge(this, 0)), WD(ige(this.c, (nme(), fme), true)); + case 4: + return Ije(this.a, (!this.c && (this.c = new Uge(this, 0)), WD(ige(this.c, (nme(), fme), true)))); + case 5: + return this.a; + } + return zvd(this, a - AYd((nme(), eme)), vYd((this.j & 2) == 0 ? eme : (!this.k && (this.k = new fUd()), this.k).Nk(), a), b, c); + }; + _.Wh = function Jme(a) { + switch (a) { + case 0: + return !!this.c && this.c.i != 0; + case 1: + return !(!this.c && (this.c = new Uge(this, 0)), RD(rge(this.c, (nme(), Sle)), 160)).dc(); + case 2: + return !!this.b && this.b.i != 0; + case 3: + return !this.c && (this.c = new Uge(this, 0)), WD(ige(this.c, (nme(), fme), true)) != null; + case 4: + return Ije(this.a, (!this.c && (this.c = new Uge(this, 0)), WD(ige(this.c, (nme(), fme), true)))) != null; + case 5: + return !!this.a; + } + return Avd(this, a - AYd((nme(), eme)), vYd((this.j & 2) == 0 ? eme : (!this.k && (this.k = new fUd()), this.k).Nk(), a)); + }; + _.bi = function Kme(a, b) { + switch (a) { + case 0: + !this.c && (this.c = new Uge(this, 0)); + Dge(this.c, b); + return; + case 1: + (!this.c && (this.c = new Uge(this, 0)), RD(RD(rge(this.c, (nme(), Sle)), 160), 220)).Wb(b); + return; + case 2: + !this.b && (this.b = new Uge(this, 2)); + Dge(this.b, b); + return; + case 3: + Gme(this, WD(b)); + return; + case 4: + Gme(this, Hje(this.a, b)); + return; + case 5: + Fme(this, RD(b, 156)); + return; + } + Bvd(this, a - AYd((nme(), eme)), vYd((this.j & 2) == 0 ? eme : (!this.k && (this.k = new fUd()), this.k).Nk(), a), b); + }; + _.ii = function Lme() { + return nme(), eme; + }; + _.ki = function Mme(a) { + switch (a) { + case 0: + !this.c && (this.c = new Uge(this, 0)); + sLd(this.c); + return; + case 1: + (!this.c && (this.c = new Uge(this, 0)), RD(rge(this.c, (nme(), Sle)), 160)).$b(); + return; + case 2: + !this.b && (this.b = new Uge(this, 2)); + sLd(this.b); + return; + case 3: + !this.c && (this.c = new Uge(this, 0)); + Fge(this.c, (nme(), fme), null); + return; + case 4: + Gme(this, Hje(this.a, null)); + return; + case 5: + this.a = null; + return; + } + Cvd(this, a - AYd((nme(), eme)), vYd((this.j & 2) == 0 ? eme : (!this.k && (this.k = new fUd()), this.k).Nk(), a)); + }; + sfb(lLe, "SimpleAnyTypeImpl", 682); + feb(683, 516, { 110: 1, 94: 1, 93: 1, 58: 1, 54: 1, 99: 1, 2121: 1, 683: 1 }, Nme); + _.Lh = function Ome(a, b, c) { + switch (a) { + case 0: + if (c) + return !this.a && (this.a = new Uge(this, 0)), this.a; + return !this.a && (this.a = new Uge(this, 0)), this.a.b; + case 1: + return c ? (!this.b && (this.b = new DVd((JTd(), FTd), C8, this, 1)), this.b) : (!this.b && (this.b = new DVd((JTd(), FTd), C8, this, 1)), dOd(this.b)); + case 2: + return c ? (!this.c && (this.c = new DVd((JTd(), FTd), C8, this, 2)), this.c) : (!this.c && (this.c = new DVd((JTd(), FTd), C8, this, 2)), dOd(this.c)); + case 3: + return !this.a && (this.a = new Uge(this, 0)), rge(this.a, (nme(), ime)); + case 4: + return !this.a && (this.a = new Uge(this, 0)), rge(this.a, (nme(), jme)); + case 5: + return !this.a && (this.a = new Uge(this, 0)), rge(this.a, (nme(), lme)); + case 6: + return !this.a && (this.a = new Uge(this, 0)), rge(this.a, (nme(), mme)); + } + return zvd(this, a - AYd((nme(), hme)), vYd((this.j & 2) == 0 ? hme : (!this.k && (this.k = new fUd()), this.k).Nk(), a), b, c); + }; + _.Uh = function Pme(a, b, c) { + var d; + switch (b) { + case 0: + return !this.a && (this.a = new Uge(this, 0)), _fe(this.a, a, c); + case 1: + return !this.b && (this.b = new DVd((JTd(), FTd), C8, this, 1)), BVd(this.b, a, c); + case 2: + return !this.c && (this.c = new DVd((JTd(), FTd), C8, this, 2)), BVd(this.c, a, c); + case 5: + return !this.a && (this.a = new Uge(this, 0)), Bke(rge(this.a, (nme(), lme)), a, c); + } + return d = RD(vYd((this.j & 2) == 0 ? (nme(), hme) : (!this.k && (this.k = new fUd()), this.k).Nk(), b), 69), d.wk().Ak(this, Yvd(this), b - AYd((nme(), hme)), a, c); + }; + _.Wh = function Qme(a) { + switch (a) { + case 0: + return !!this.a && this.a.i != 0; + case 1: + return !!this.b && this.b.f != 0; + case 2: + return !!this.c && this.c.f != 0; + case 3: + return !this.a && (this.a = new Uge(this, 0)), !Dke(rge(this.a, (nme(), ime))); + case 4: + return !this.a && (this.a = new Uge(this, 0)), !Dke(rge(this.a, (nme(), jme))); + case 5: + return !this.a && (this.a = new Uge(this, 0)), !Dke(rge(this.a, (nme(), lme))); + case 6: + return !this.a && (this.a = new Uge(this, 0)), !Dke(rge(this.a, (nme(), mme))); + } + return Avd(this, a - AYd((nme(), hme)), vYd((this.j & 2) == 0 ? hme : (!this.k && (this.k = new fUd()), this.k).Nk(), a)); + }; + _.bi = function Rme(a, b) { + switch (a) { + case 0: + !this.a && (this.a = new Uge(this, 0)); + Dge(this.a, b); + return; + case 1: + !this.b && (this.b = new DVd((JTd(), FTd), C8, this, 1)); + CVd(this.b, b); + return; + case 2: + !this.c && (this.c = new DVd((JTd(), FTd), C8, this, 2)); + CVd(this.c, b); + return; + case 3: + !this.a && (this.a = new Uge(this, 0)); + Cke(rge(this.a, (nme(), ime))); + !this.a && (this.a = new Uge(this, 0)); + Ake(rge(this.a, ime), RD(b, 16)); + return; + case 4: + !this.a && (this.a = new Uge(this, 0)); + Cke(rge(this.a, (nme(), jme))); + !this.a && (this.a = new Uge(this, 0)); + Ake(rge(this.a, jme), RD(b, 16)); + return; + case 5: + !this.a && (this.a = new Uge(this, 0)); + Cke(rge(this.a, (nme(), lme))); + !this.a && (this.a = new Uge(this, 0)); + Ake(rge(this.a, lme), RD(b, 16)); + return; + case 6: + !this.a && (this.a = new Uge(this, 0)); + Cke(rge(this.a, (nme(), mme))); + !this.a && (this.a = new Uge(this, 0)); + Ake(rge(this.a, mme), RD(b, 16)); + return; + } + Bvd(this, a - AYd((nme(), hme)), vYd((this.j & 2) == 0 ? hme : (!this.k && (this.k = new fUd()), this.k).Nk(), a), b); + }; + _.ii = function Sme() { + return nme(), hme; + }; + _.ki = function Tme(a) { + switch (a) { + case 0: + !this.a && (this.a = new Uge(this, 0)); + sLd(this.a); + return; + case 1: + !this.b && (this.b = new DVd((JTd(), FTd), C8, this, 1)); + this.b.c.$b(); + return; + case 2: + !this.c && (this.c = new DVd((JTd(), FTd), C8, this, 2)); + this.c.c.$b(); + return; + case 3: + !this.a && (this.a = new Uge(this, 0)); + Cke(rge(this.a, (nme(), ime))); + return; + case 4: + !this.a && (this.a = new Uge(this, 0)); + Cke(rge(this.a, (nme(), jme))); + return; + case 5: + !this.a && (this.a = new Uge(this, 0)); + Cke(rge(this.a, (nme(), lme))); + return; + case 6: + !this.a && (this.a = new Uge(this, 0)); + Cke(rge(this.a, (nme(), mme))); + return; + } + Cvd(this, a - AYd((nme(), hme)), vYd((this.j & 2) == 0 ? hme : (!this.k && (this.k = new fUd()), this.k).Nk(), a)); + }; + _.Ib = function Ume() { + var a; + if ((this.j & 4) != 0) + return awd(this); + a = new Shb(awd(this)); + a.a += " (mixed: "; + Mhb(a, this.a); + a.a += ")"; + return a.a; + }; + sfb(lLe, "XMLTypeDocumentRootImpl", 683); + feb(2028, 720, { 110: 1, 94: 1, 93: 1, 480: 1, 155: 1, 58: 1, 114: 1, 54: 1, 99: 1, 158: 1, 119: 1, 120: 1, 2122: 1 }, rne); + _.ri = function sne(a, b) { + switch (a.hk()) { + case 7: + case 8: + case 9: + case 10: + case 16: + case 22: + case 23: + case 24: + case 25: + case 26: + case 32: + case 33: + case 34: + case 36: + case 37: + case 44: + case 45: + case 50: + case 51: + case 53: + case 55: + case 56: + case 57: + case 58: + case 60: + case 61: + case 4: + return b == null ? null : jeb(b); + case 19: + case 28: + case 29: + case 35: + case 38: + case 39: + case 41: + case 46: + case 52: + case 54: + case 5: + return WD(b); + case 6: + return _me(RD(b, 195)); + case 12: + case 47: + case 49: + case 11: + return tAd(this, a, b); + case 13: + return b == null ? null : yib(RD(b, 247)); + case 15: + case 14: + return b == null ? null : ane(Kfb(UD(b))); + case 17: + return bne((nme(), b)); + case 18: + return bne(b); + case 21: + case 20: + return b == null ? null : cne(RD(b, 161).a); + case 27: + return dne(RD(b, 195)); + case 30: + return ene((nme(), RD(b, 15))); + case 31: + return ene(RD(b, 15)); + case 40: + return hne((nme(), b)); + case 42: + return fne((nme(), b)); + case 43: + return fne(b); + case 59: + case 48: + return gne((nme(), b)); + default: + throw Adb(new agb(VHe + a.xe() + WHe)); + } + }; + _.si = function tne(a) { + var b, c, d, e, f; + switch (a.G == -1 && (a.G = (c = BXd(a), c ? fZd(c.vi(), a) : -1)), a.G) { + case 0: + return b = new ome(), b; + case 1: + return d = new yme(), d; + case 2: + return e = new Hme(), e; + case 3: + return f = new Nme(), f; + default: + throw Adb(new agb(ZHe + a.zb + WHe)); + } + }; + _.ti = function une(a, b) { + var c, d, e, f, g, h, i, j, k, l, m, n, o2, p, q, r; + switch (a.hk()) { + case 5: + case 52: + case 4: + return b; + case 6: + return ine(b); + case 8: + case 7: + return b == null ? null : $me(b); + case 9: + return b == null ? null : $eb(Oeb((d = nue(b, true), d.length > 0 && (BFb(0, d.length), d.charCodeAt(0) == 43) ? (BFb(1, d.length + 1), d.substr(1)) : d), -128, 127) << 24 >> 24); + case 10: + return b == null ? null : $eb(Oeb((e = nue(b, true), e.length > 0 && (BFb(0, e.length), e.charCodeAt(0) == 43) ? (BFb(1, e.length + 1), e.substr(1)) : e), -128, 127) << 24 >> 24); + case 11: + return WD(uAd(this, (nme(), Vle), b)); + case 12: + return WD(uAd(this, (nme(), Wle), b)); + case 13: + return b == null ? null : new Bib(nue(b, true)); + case 15: + case 14: + return jne(b); + case 16: + return WD(uAd(this, (nme(), Xle), b)); + case 17: + return kne((nme(), b)); + case 18: + return kne(b); + case 28: + case 29: + case 35: + case 38: + case 39: + case 41: + case 54: + case 19: + return nue(b, true); + case 21: + case 20: + return lne(b); + case 22: + return WD(uAd(this, (nme(), Yle), b)); + case 23: + return WD(uAd(this, (nme(), Zle), b)); + case 24: + return WD(uAd(this, (nme(), $le), b)); + case 25: + return WD(uAd(this, (nme(), _le), b)); + case 26: + return WD(uAd(this, (nme(), ame), b)); + case 27: + return mne(b); + case 30: + return nne((nme(), b)); + case 31: + return nne(b); + case 32: + return b == null ? null : sgb(Oeb((k = nue(b, true), k.length > 0 && (BFb(0, k.length), k.charCodeAt(0) == 43) ? (BFb(1, k.length + 1), k.substr(1)) : k), qwe, lve)); + case 33: + return b == null ? null : new ejb((l = nue(b, true), l.length > 0 && (BFb(0, l.length), l.charCodeAt(0) == 43) ? (BFb(1, l.length + 1), l.substr(1)) : l)); + case 34: + return b == null ? null : sgb(Oeb((m = nue(b, true), m.length > 0 && (BFb(0, m.length), m.charCodeAt(0) == 43) ? (BFb(1, m.length + 1), m.substr(1)) : m), qwe, lve)); + case 36: + return b == null ? null : Hgb(Peb((n = nue(b, true), n.length > 0 && (BFb(0, n.length), n.charCodeAt(0) == 43) ? (BFb(1, n.length + 1), n.substr(1)) : n))); + case 37: + return b == null ? null : Hgb(Peb((o2 = nue(b, true), o2.length > 0 && (BFb(0, o2.length), o2.charCodeAt(0) == 43) ? (BFb(1, o2.length + 1), o2.substr(1)) : o2))); + case 40: + return qne((nme(), b)); + case 42: + return one((nme(), b)); + case 43: + return one(b); + case 44: + return b == null ? null : new ejb((p = nue(b, true), p.length > 0 && (BFb(0, p.length), p.charCodeAt(0) == 43) ? (BFb(1, p.length + 1), p.substr(1)) : p)); + case 45: + return b == null ? null : new ejb((q = nue(b, true), q.length > 0 && (BFb(0, q.length), q.charCodeAt(0) == 43) ? (BFb(1, q.length + 1), q.substr(1)) : q)); + case 46: + return nue(b, false); + case 47: + return WD(uAd(this, (nme(), bme), b)); + case 59: + case 48: + return pne((nme(), b)); + case 49: + return WD(uAd(this, (nme(), dme), b)); + case 50: + return b == null ? null : bhb(Oeb((r = nue(b, true), r.length > 0 && (BFb(0, r.length), r.charCodeAt(0) == 43) ? (BFb(1, r.length + 1), r.substr(1)) : r), BKe, 32767) << 16 >> 16); + case 51: + return b == null ? null : bhb(Oeb((f = nue(b, true), f.length > 0 && (BFb(0, f.length), f.charCodeAt(0) == 43) ? (BFb(1, f.length + 1), f.substr(1)) : f), BKe, 32767) << 16 >> 16); + case 53: + return WD(uAd(this, (nme(), gme), b)); + case 55: + return b == null ? null : bhb(Oeb((g = nue(b, true), g.length > 0 && (BFb(0, g.length), g.charCodeAt(0) == 43) ? (BFb(1, g.length + 1), g.substr(1)) : g), BKe, 32767) << 16 >> 16); + case 56: + return b == null ? null : bhb(Oeb((h = nue(b, true), h.length > 0 && (BFb(0, h.length), h.charCodeAt(0) == 43) ? (BFb(1, h.length + 1), h.substr(1)) : h), BKe, 32767) << 16 >> 16); + case 57: + return b == null ? null : Hgb(Peb((i = nue(b, true), i.length > 0 && (BFb(0, i.length), i.charCodeAt(0) == 43) ? (BFb(1, i.length + 1), i.substr(1)) : i))); + case 58: + return b == null ? null : Hgb(Peb((j = nue(b, true), j.length > 0 && (BFb(0, j.length), j.charCodeAt(0) == 43) ? (BFb(1, j.length + 1), j.substr(1)) : j))); + case 60: + return b == null ? null : sgb(Oeb((c = nue(b, true), c.length > 0 && (BFb(0, c.length), c.charCodeAt(0) == 43) ? (BFb(1, c.length + 1), c.substr(1)) : c), qwe, lve)); + case 61: + return b == null ? null : sgb(Oeb(nue(b, true), qwe, lve)); + default: + throw Adb(new agb(VHe + a.xe() + WHe)); + } + }; + var Vme, Wme, Xme, Yme; + sfb(lLe, "XMLTypeFactoryImpl", 2028); + feb(594, 184, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 241: 1, 114: 1, 54: 1, 99: 1, 158: 1, 184: 1, 119: 1, 120: 1, 690: 1, 2044: 1, 594: 1 }, Bne); + _.N = false; + _.O = false; + var wne = false; + sfb(lLe, "XMLTypePackageImpl", 594); + feb(1961, 1, { 851: 1 }, Ene); + _.Kk = function Fne() { + return rue(), que; + }; + sfb(lLe, "XMLTypePackageImpl/1", 1961); + feb(1970, 1, OKe, Gne); + _.fk = function Hne(a) { + return bE(a); + }; + _.gk = function Ine(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/10", 1970); + feb(1971, 1, OKe, Jne); + _.fk = function Kne(a) { + return bE(a); + }; + _.gk = function Lne(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/11", 1971); + feb(1972, 1, OKe, Mne); + _.fk = function Nne(a) { + return bE(a); + }; + _.gk = function One(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/12", 1972); + feb(1973, 1, OKe, Pne); + _.fk = function Qne(a) { + return _D(a); + }; + _.gk = function Rne(a) { + return $C(VI, Nve, 345, a, 7, 1); + }; + sfb(lLe, "XMLTypePackageImpl/13", 1973); + feb(1974, 1, OKe, Sne); + _.fk = function Tne(a) { + return bE(a); + }; + _.gk = function Une(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/14", 1974); + feb(1975, 1, OKe, Vne); + _.fk = function Wne(a) { + return ZD(a, 15); + }; + _.gk = function Xne(a) { + return $C(QK, Ize, 15, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/15", 1975); + feb(1976, 1, OKe, Yne); + _.fk = function Zne(a) { + return ZD(a, 15); + }; + _.gk = function $ne(a) { + return $C(QK, Ize, 15, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/16", 1976); + feb(1977, 1, OKe, _ne); + _.fk = function aoe(a) { + return bE(a); + }; + _.gk = function boe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/17", 1977); + feb(1978, 1, OKe, coe); + _.fk = function doe(a) { + return ZD(a, 161); + }; + _.gk = function eoe(a) { + return $C(ZI, Nve, 161, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/18", 1978); + feb(1979, 1, OKe, foe); + _.fk = function goe(a) { + return bE(a); + }; + _.gk = function hoe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/19", 1979); + feb(1962, 1, OKe, ioe); + _.fk = function joe(a) { + return ZD(a, 857); + }; + _.gk = function koe(a) { + return $C(Vbb, rve, 857, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/2", 1962); + feb(1980, 1, OKe, loe); + _.fk = function moe(a) { + return bE(a); + }; + _.gk = function noe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/20", 1980); + feb(1981, 1, OKe, ooe); + _.fk = function poe(a) { + return bE(a); + }; + _.gk = function qoe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/21", 1981); + feb(1982, 1, OKe, roe); + _.fk = function soe(a) { + return bE(a); + }; + _.gk = function toe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/22", 1982); + feb(1983, 1, OKe, uoe); + _.fk = function voe(a) { + return bE(a); + }; + _.gk = function woe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/23", 1983); + feb(1984, 1, OKe, xoe); + _.fk = function yoe(a) { + return ZD(a, 195); + }; + _.gk = function zoe(a) { + return $C(gE, Nve, 195, a, 0, 2); + }; + sfb(lLe, "XMLTypePackageImpl/24", 1984); + feb(1985, 1, OKe, Aoe); + _.fk = function Boe(a) { + return bE(a); + }; + _.gk = function Coe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/25", 1985); + feb(1986, 1, OKe, Doe); + _.fk = function Eoe(a) { + return bE(a); + }; + _.gk = function Foe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/26", 1986); + feb(1987, 1, OKe, Goe); + _.fk = function Hoe(a) { + return ZD(a, 15); + }; + _.gk = function Ioe(a) { + return $C(QK, Ize, 15, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/27", 1987); + feb(1988, 1, OKe, Joe); + _.fk = function Koe(a) { + return ZD(a, 15); + }; + _.gk = function Loe(a) { + return $C(QK, Ize, 15, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/28", 1988); + feb(1989, 1, OKe, Moe); + _.fk = function Noe(a) { + return bE(a); + }; + _.gk = function Ooe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/29", 1989); + feb(1963, 1, OKe, Poe); + _.fk = function Qoe(a) { + return ZD(a, 681); + }; + _.gk = function Roe(a) { + return $C(Xbb, rve, 2119, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/3", 1963); + feb(1990, 1, OKe, Soe); + _.fk = function Toe(a) { + return ZD(a, 17); + }; + _.gk = function Uoe(a) { + return $C(bJ, Nve, 17, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/30", 1990); + feb(1991, 1, OKe, Voe); + _.fk = function Woe(a) { + return bE(a); + }; + _.gk = function Xoe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/31", 1991); + feb(1992, 1, OKe, Yoe); + _.fk = function Zoe(a) { + return ZD(a, 168); + }; + _.gk = function $oe(a) { + return $C(eJ, Nve, 168, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/32", 1992); + feb(1993, 1, OKe, _oe); + _.fk = function ape(a) { + return bE(a); + }; + _.gk = function bpe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/33", 1993); + feb(1994, 1, OKe, cpe); + _.fk = function dpe(a) { + return bE(a); + }; + _.gk = function epe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/34", 1994); + feb(1995, 1, OKe, fpe); + _.fk = function gpe(a) { + return bE(a); + }; + _.gk = function hpe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/35", 1995); + feb(1996, 1, OKe, ipe); + _.fk = function jpe(a) { + return bE(a); + }; + _.gk = function kpe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/36", 1996); + feb(1997, 1, OKe, lpe); + _.fk = function mpe(a) { + return ZD(a, 15); + }; + _.gk = function npe(a) { + return $C(QK, Ize, 15, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/37", 1997); + feb(1998, 1, OKe, ope); + _.fk = function ppe(a) { + return ZD(a, 15); + }; + _.gk = function qpe(a) { + return $C(QK, Ize, 15, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/38", 1998); + feb(1999, 1, OKe, rpe); + _.fk = function spe(a) { + return bE(a); + }; + _.gk = function tpe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/39", 1999); + feb(1964, 1, OKe, upe); + _.fk = function vpe(a) { + return ZD(a, 682); + }; + _.gk = function wpe(a) { + return $C(Ybb, rve, 2120, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/4", 1964); + feb(2e3, 1, OKe, xpe); + _.fk = function ype(a) { + return bE(a); + }; + _.gk = function zpe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/40", 2e3); + feb(2001, 1, OKe, Ape); + _.fk = function Bpe(a) { + return bE(a); + }; + _.gk = function Cpe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/41", 2001); + feb(2002, 1, OKe, Dpe); + _.fk = function Epe(a) { + return bE(a); + }; + _.gk = function Fpe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/42", 2002); + feb(2003, 1, OKe, Gpe); + _.fk = function Hpe(a) { + return bE(a); + }; + _.gk = function Ipe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/43", 2003); + feb(2004, 1, OKe, Jpe); + _.fk = function Kpe(a) { + return bE(a); + }; + _.gk = function Lpe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/44", 2004); + feb(2005, 1, OKe, Mpe); + _.fk = function Npe(a) { + return ZD(a, 191); + }; + _.gk = function Ope(a) { + return $C(lJ, Nve, 191, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/45", 2005); + feb(2006, 1, OKe, Ppe); + _.fk = function Qpe(a) { + return bE(a); + }; + _.gk = function Rpe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/46", 2006); + feb(2007, 1, OKe, Spe); + _.fk = function Tpe(a) { + return bE(a); + }; + _.gk = function Upe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/47", 2007); + feb(2008, 1, OKe, Vpe); + _.fk = function Wpe(a) { + return bE(a); + }; + _.gk = function Xpe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/48", 2008); + feb(2009, 1, OKe, Ype); + _.fk = function Zpe(a) { + return ZD(a, 191); + }; + _.gk = function $pe(a) { + return $C(lJ, Nve, 191, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/49", 2009); + feb(1965, 1, OKe, _pe); + _.fk = function aqe(a) { + return ZD(a, 683); + }; + _.gk = function bqe(a) { + return $C(Zbb, rve, 2121, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/5", 1965); + feb(2010, 1, OKe, cqe); + _.fk = function dqe(a) { + return ZD(a, 168); + }; + _.gk = function eqe(a) { + return $C(eJ, Nve, 168, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/50", 2010); + feb(2011, 1, OKe, fqe); + _.fk = function gqe(a) { + return bE(a); + }; + _.gk = function hqe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/51", 2011); + feb(2012, 1, OKe, iqe); + _.fk = function jqe(a) { + return ZD(a, 17); + }; + _.gk = function kqe(a) { + return $C(bJ, Nve, 17, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/52", 2012); + feb(1966, 1, OKe, lqe); + _.fk = function mqe(a) { + return bE(a); + }; + _.gk = function nqe(a) { + return $C(qJ, Nve, 2, a, 6, 1); + }; + sfb(lLe, "XMLTypePackageImpl/6", 1966); + feb(1967, 1, OKe, oqe); + _.fk = function pqe(a) { + return ZD(a, 195); + }; + _.gk = function qqe(a) { + return $C(gE, Nve, 195, a, 0, 2); + }; + sfb(lLe, "XMLTypePackageImpl/7", 1967); + feb(1968, 1, OKe, rqe); + _.fk = function sqe(a) { + return $D(a); + }; + _.gk = function tqe(a) { + return $C(QI, Nve, 485, a, 8, 1); + }; + sfb(lLe, "XMLTypePackageImpl/8", 1968); + feb(1969, 1, OKe, uqe); + _.fk = function vqe(a) { + return ZD(a, 222); + }; + _.gk = function wqe(a) { + return $C(RI, Nve, 222, a, 0, 1); + }; + sfb(lLe, "XMLTypePackageImpl/9", 1969); + var xqe, yqe; + var Eqe, Fqe; + var Jqe; + feb(55, 63, swe, Lqe); + sfb(LLe, "RegEx/ParseException", 55); + feb(836, 1, {}, Tqe); + _.bm = function Uqe(a) { + return a < this.j && ihb(this.i, a) == 63; + }; + _.cm = function Vqe() { + var a, b, c, d, e; + if (this.c != 10) + throw Adb(new Lqe(TId((Hde(), VIe)))); + a = this.a; + switch (a) { + case 101: + a = 27; + break; + case 102: + a = 12; + break; + case 110: + a = 10; + break; + case 114: + a = 13; + break; + case 116: + a = 9; + break; + case 120: + Mqe(this); + if (this.c != 0) + throw Adb(new Lqe(TId((Hde(), sJe)))); + if (this.a == 123) { + e = 0; + c = 0; + do { + Mqe(this); + if (this.c != 0) + throw Adb(new Lqe(TId((Hde(), sJe)))); + if ((e = Xqe(this.a)) < 0) + break; + if (c > c * 16) + throw Adb(new Lqe(TId((Hde(), tJe)))); + c = c * 16 + e; + } while (true); + if (this.a != 125) + throw Adb(new Lqe(TId((Hde(), uJe)))); + if (c > MLe) + throw Adb(new Lqe(TId((Hde(), vJe)))); + a = c; + } else { + e = 0; + if (this.c != 0 || (e = Xqe(this.a)) < 0) + throw Adb(new Lqe(TId((Hde(), sJe)))); + c = e; + Mqe(this); + if (this.c != 0 || (e = Xqe(this.a)) < 0) + throw Adb(new Lqe(TId((Hde(), sJe)))); + c = c * 16 + e; + a = c; + } + break; + case 117: + d = 0; + Mqe(this); + if (this.c != 0 || (d = Xqe(this.a)) < 0) + throw Adb(new Lqe(TId((Hde(), sJe)))); + b = d; + Mqe(this); + if (this.c != 0 || (d = Xqe(this.a)) < 0) + throw Adb(new Lqe(TId((Hde(), sJe)))); + b = b * 16 + d; + Mqe(this); + if (this.c != 0 || (d = Xqe(this.a)) < 0) + throw Adb(new Lqe(TId((Hde(), sJe)))); + b = b * 16 + d; + Mqe(this); + if (this.c != 0 || (d = Xqe(this.a)) < 0) + throw Adb(new Lqe(TId((Hde(), sJe)))); + b = b * 16 + d; + a = b; + break; + case 118: + Mqe(this); + if (this.c != 0 || (d = Xqe(this.a)) < 0) + throw Adb(new Lqe(TId((Hde(), sJe)))); + b = d; + Mqe(this); + if (this.c != 0 || (d = Xqe(this.a)) < 0) + throw Adb(new Lqe(TId((Hde(), sJe)))); + b = b * 16 + d; + Mqe(this); + if (this.c != 0 || (d = Xqe(this.a)) < 0) + throw Adb(new Lqe(TId((Hde(), sJe)))); + b = b * 16 + d; + Mqe(this); + if (this.c != 0 || (d = Xqe(this.a)) < 0) + throw Adb(new Lqe(TId((Hde(), sJe)))); + b = b * 16 + d; + Mqe(this); + if (this.c != 0 || (d = Xqe(this.a)) < 0) + throw Adb(new Lqe(TId((Hde(), sJe)))); + b = b * 16 + d; + Mqe(this); + if (this.c != 0 || (d = Xqe(this.a)) < 0) + throw Adb(new Lqe(TId((Hde(), sJe)))); + b = b * 16 + d; + if (b > MLe) + throw Adb(new Lqe(TId((Hde(), "parser.descappe.4")))); + a = b; + break; + case 65: + case 90: + case 122: + throw Adb(new Lqe(TId((Hde(), wJe)))); + } + return a; + }; + _.dm = function Wqe(a) { + var b, c; + switch (a) { + case 100: + c = (this.e & 32) == 32 ? hte("Nd", true) : (Vse(), Bse); + break; + case 68: + c = (this.e & 32) == 32 ? hte("Nd", false) : (Vse(), Ise); + break; + case 119: + c = (this.e & 32) == 32 ? hte("IsWord", true) : (Vse(), Rse); + break; + case 87: + c = (this.e & 32) == 32 ? hte("IsWord", false) : (Vse(), Kse); + break; + case 115: + c = (this.e & 32) == 32 ? hte("IsSpace", true) : (Vse(), Mse); + break; + case 83: + c = (this.e & 32) == 32 ? hte("IsSpace", false) : (Vse(), Jse); + break; + default: + throw Adb(new yz((b = a, NLe + b.toString(16)))); + } + return c; + }; + _.em = function Yqe(a) { + var b, c, d, e, f, g, h, i, j, k, l, m; + this.b = 1; + Mqe(this); + b = null; + if (this.c == 0 && this.a == 94) { + Mqe(this); + if (a) { + k = (Vse(), Vse(), new xte(5)); + } else { + b = (Vse(), Vse(), new xte(4)); + rte(b, 0, MLe); + k = new xte(4); + } + } else { + k = (Vse(), Vse(), new xte(4)); + } + e = true; + while ((m = this.c) != 1) { + if (m == 0 && this.a == 93 && !e) + break; + e = false; + c = this.a; + d = false; + if (m == 10) { + switch (c) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + ute(k, this.dm(c)); + d = true; + break; + case 105: + case 73: + case 99: + case 67: + c = this.um(k, c); + c < 0 && (d = true); + break; + case 112: + case 80: + l = Sqe(this, c); + if (!l) + throw Adb(new Lqe(TId((Hde(), hJe)))); + ute(k, l); + d = true; + break; + default: + c = this.cm(); + } + } else if (m == 20) { + g = phb(this.i, 58, this.d); + if (g < 0) + throw Adb(new Lqe(TId((Hde(), iJe)))); + h = true; + if (ihb(this.i, this.d) == 94) { + ++this.d; + h = false; + } + f = zhb(this.i, this.d, g); + i = ite(f, h, (this.e & 512) == 512); + if (!i) + throw Adb(new Lqe(TId((Hde(), kJe)))); + ute(k, i); + d = true; + if (g + 1 >= this.j || ihb(this.i, g + 1) != 93) + throw Adb(new Lqe(TId((Hde(), iJe)))); + this.d = g + 2; + } + Mqe(this); + if (!d) { + if (this.c != 0 || this.a != 45) { + rte(k, c, c); + } else { + Mqe(this); + if ((m = this.c) == 1) + throw Adb(new Lqe(TId((Hde(), jJe)))); + if (m == 0 && this.a == 93) { + rte(k, c, c); + rte(k, 45, 45); + } else { + j = this.a; + m == 10 && (j = this.cm()); + Mqe(this); + rte(k, c, j); + } + } + } + (this.e & gwe) == gwe && this.c == 0 && this.a == 44 && Mqe(this); + } + if (this.c == 1) + throw Adb(new Lqe(TId((Hde(), jJe)))); + if (b) { + wte(b, k); + k = b; + } + vte(k); + ste(k); + this.b = 0; + Mqe(this); + return k; + }; + _.fm = function Zqe() { + var a, b, c, d; + c = this.em(false); + while ((d = this.c) != 7) { + a = this.a; + if (d == 0 && (a == 45 || a == 38) || d == 4) { + Mqe(this); + if (this.c != 9) + throw Adb(new Lqe(TId((Hde(), pJe)))); + b = this.em(false); + if (d == 4) + ute(c, b); + else if (a == 45) + wte(c, b); + else if (a == 38) + tte(c, b); + else + throw Adb(new yz("ASSERT")); + } else { + throw Adb(new Lqe(TId((Hde(), qJe)))); + } + } + Mqe(this); + return c; + }; + _.gm = function $qe() { + var a, b; + a = this.a - 48; + b = (Vse(), Vse(), new eue(12, null, a)); + !this.g && (this.g = new gyb()); + dyb(this.g, new Bte(a)); + Mqe(this); + return b; + }; + _.hm = function _qe() { + Mqe(this); + return Vse(), Nse; + }; + _.im = function are() { + Mqe(this); + return Vse(), Lse; + }; + _.jm = function bre() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.km = function cre() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.lm = function dre() { + Mqe(this); + return fte(); + }; + _.mm = function ere() { + Mqe(this); + return Vse(), Pse; + }; + _.nm = function fre() { + Mqe(this); + return Vse(), Sse; + }; + _.om = function gre() { + var a; + if (this.d >= this.j || ((a = ihb(this.i, this.d++)) & 65504) != 64) + throw Adb(new Lqe(TId((Hde(), dJe)))); + Mqe(this); + return Vse(), Vse(), new Hte(0, a - 64); + }; + _.pm = function hre() { + Mqe(this); + return gte(); + }; + _.qm = function ire() { + Mqe(this); + return Vse(), Tse; + }; + _.rm = function jre() { + var a; + a = (Vse(), Vse(), new Hte(0, 105)); + Mqe(this); + return a; + }; + _.sm = function kre() { + Mqe(this); + return Vse(), Qse; + }; + _.tm = function lre() { + Mqe(this); + return Vse(), Ose; + }; + _.um = function mre(a, b) { + return this.cm(); + }; + _.vm = function nre() { + Mqe(this); + return Vse(), Gse; + }; + _.wm = function ore() { + var a, b, c, d, e; + if (this.d + 1 >= this.j) + throw Adb(new Lqe(TId((Hde(), aJe)))); + d = -1; + b = null; + a = ihb(this.i, this.d); + if (49 <= a && a <= 57) { + d = a - 48; + !this.g && (this.g = new gyb()); + dyb(this.g, new Bte(d)); + ++this.d; + if (ihb(this.i, this.d) != 41) + throw Adb(new Lqe(TId((Hde(), ZIe)))); + ++this.d; + } else { + a == 63 && --this.d; + Mqe(this); + b = Pqe(this); + switch (b.e) { + case 20: + case 21: + case 22: + case 23: + break; + case 8: + if (this.c != 7) + throw Adb(new Lqe(TId((Hde(), ZIe)))); + break; + default: + throw Adb(new Lqe(TId((Hde(), bJe)))); + } + } + Mqe(this); + e = Qqe(this); + c = null; + if (e.e == 2) { + if (e.Pm() != 2) + throw Adb(new Lqe(TId((Hde(), cJe)))); + c = e.Lm(1); + e = e.Lm(0); + } + if (this.c != 7) + throw Adb(new Lqe(TId((Hde(), ZIe)))); + Mqe(this); + return Vse(), Vse(), new Ute(d, b, e, c); + }; + _.xm = function pre() { + Mqe(this); + return Vse(), Hse; + }; + _.ym = function qre() { + var a; + Mqe(this); + a = _se(24, Qqe(this)); + if (this.c != 7) + throw Adb(new Lqe(TId((Hde(), ZIe)))); + Mqe(this); + return a; + }; + _.zm = function rre() { + var a; + Mqe(this); + a = _se(20, Qqe(this)); + if (this.c != 7) + throw Adb(new Lqe(TId((Hde(), ZIe)))); + Mqe(this); + return a; + }; + _.Am = function sre() { + var a; + Mqe(this); + a = _se(22, Qqe(this)); + if (this.c != 7) + throw Adb(new Lqe(TId((Hde(), ZIe)))); + Mqe(this); + return a; + }; + _.Bm = function tre() { + var a, b, c, d, e; + a = 0; + c = 0; + b = -1; + while (this.d < this.j) { + b = ihb(this.i, this.d); + e = rse(b); + if (e == 0) + break; + a |= e; + ++this.d; + } + if (this.d >= this.j) + throw Adb(new Lqe(TId((Hde(), $Ie)))); + if (b == 45) { + ++this.d; + while (this.d < this.j) { + b = ihb(this.i, this.d); + e = rse(b); + if (e == 0) + break; + c |= e; + ++this.d; + } + if (this.d >= this.j) + throw Adb(new Lqe(TId((Hde(), $Ie)))); + } + if (b == 58) { + ++this.d; + Mqe(this); + d = ate(Qqe(this), a, c); + if (this.c != 7) + throw Adb(new Lqe(TId((Hde(), ZIe)))); + Mqe(this); + } else if (b == 41) { + ++this.d; + Mqe(this); + d = ate(Qqe(this), a, c); + } else + throw Adb(new Lqe(TId((Hde(), _Ie)))); + return d; + }; + _.Cm = function ure() { + var a; + Mqe(this); + a = _se(21, Qqe(this)); + if (this.c != 7) + throw Adb(new Lqe(TId((Hde(), ZIe)))); + Mqe(this); + return a; + }; + _.Dm = function vre() { + var a; + Mqe(this); + a = _se(23, Qqe(this)); + if (this.c != 7) + throw Adb(new Lqe(TId((Hde(), ZIe)))); + Mqe(this); + return a; + }; + _.Em = function wre() { + var a, b; + Mqe(this); + a = this.f++; + b = bte(Qqe(this), a); + if (this.c != 7) + throw Adb(new Lqe(TId((Hde(), ZIe)))); + Mqe(this); + return b; + }; + _.Fm = function xre() { + var a; + Mqe(this); + a = bte(Qqe(this), 0); + if (this.c != 7) + throw Adb(new Lqe(TId((Hde(), ZIe)))); + Mqe(this); + return a; + }; + _.Gm = function yre(a) { + Mqe(this); + if (this.c == 5) { + Mqe(this); + return $se(a, (Vse(), Vse(), new Kte(9, a))); + } else + return $se(a, (Vse(), Vse(), new Kte(3, a))); + }; + _.Hm = function zre(a) { + var b; + Mqe(this); + b = (Vse(), Vse(), new iue(2)); + if (this.c == 5) { + Mqe(this); + hue(b, Ese); + hue(b, a); + } else { + hue(b, a); + hue(b, Ese); + } + return b; + }; + _.Im = function Are(a) { + Mqe(this); + if (this.c == 5) { + Mqe(this); + return Vse(), Vse(), new Kte(9, a); + } else + return Vse(), Vse(), new Kte(3, a); + }; + _.a = 0; + _.b = 0; + _.c = 0; + _.d = 0; + _.e = 0; + _.f = 1; + _.g = null; + _.j = 0; + sfb(LLe, "RegEx/RegexParser", 836); + feb(1947, 836, {}, Gre); + _.bm = function Hre(a) { + return false; + }; + _.cm = function Ire() { + return Dre(this); + }; + _.dm = function Kre(a) { + return Ere(a); + }; + _.em = function Lre(a) { + return Fre(this); + }; + _.fm = function Mre() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.gm = function Nre() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.hm = function Ore() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.im = function Pre() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.jm = function Qre() { + Mqe(this); + return Ere(67); + }; + _.km = function Rre() { + Mqe(this); + return Ere(73); + }; + _.lm = function Sre() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.mm = function Tre() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.nm = function Ure() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.om = function Vre() { + Mqe(this); + return Ere(99); + }; + _.pm = function Wre() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.qm = function Xre() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.rm = function Yre() { + Mqe(this); + return Ere(105); + }; + _.sm = function Zre() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.tm = function $re() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.um = function _re(a, b) { + return ute(a, Ere(b)), -1; + }; + _.vm = function ase() { + Mqe(this); + return Vse(), Vse(), new Hte(0, 94); + }; + _.wm = function bse() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.xm = function cse() { + Mqe(this); + return Vse(), Vse(), new Hte(0, 36); + }; + _.ym = function dse() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.zm = function ese() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.Am = function fse() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.Bm = function gse() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.Cm = function hse() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.Dm = function ise() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.Em = function jse() { + var a; + Mqe(this); + a = bte(Qqe(this), 0); + if (this.c != 7) + throw Adb(new Lqe(TId((Hde(), ZIe)))); + Mqe(this); + return a; + }; + _.Fm = function kse() { + throw Adb(new Lqe(TId((Hde(), xJe)))); + }; + _.Gm = function lse(a) { + Mqe(this); + return $se(a, (Vse(), Vse(), new Kte(3, a))); + }; + _.Hm = function mse(a) { + var b; + Mqe(this); + b = (Vse(), Vse(), new iue(2)); + hue(b, a); + hue(b, Ese); + return b; + }; + _.Im = function nse(a) { + Mqe(this); + return Vse(), Vse(), new Kte(3, a); + }; + var Bre = null, Cre = null; + sfb(LLe, "RegEx/ParserForXMLSchema", 1947); + feb(122, 1, ZLe, Wse); + _.Jm = function Xse(a) { + throw Adb(new yz("Not supported.")); + }; + _.Km = function dte() { + return -1; + }; + _.Lm = function ete(a) { + return null; + }; + _.Mm = function jte() { + return null; + }; + _.Nm = function mte(a) { + }; + _.Om = function nte(a) { + }; + _.Pm = function ote() { + return 0; + }; + _.Ib = function pte() { + return this.Qm(0); + }; + _.Qm = function qte(a) { + return this.e == 11 ? "." : ""; + }; + _.e = 0; + var vse, wse, xse, yse, zse, Ase = null, Bse, Cse = null, Dse, Ese, Fse = null, Gse, Hse, Ise, Jse, Kse, Lse, Mse, Nse, Ose, Pse, Qse, Rse, Sse, Tse; + var qdb = sfb(LLe, "RegEx/Token", 122); + feb(138, 122, { 3: 1, 138: 1, 122: 1 }, xte); + _.Qm = function Ate(a) { + var b, c, d; + if (this.e == 4) { + if (this == Dse) + c = "."; + else if (this == Bse) + c = "\\d"; + else if (this == Rse) + c = "\\w"; + else if (this == Mse) + c = "\\s"; + else { + d = new Qhb(); + d.a += "["; + for (b = 0; b < this.b.length; b += 2) { + (a & gwe) != 0 && b > 0 && (d.a += ",", d); + if (this.b[b] === this.b[b + 1]) { + Nhb(d, zte(this.b[b])); + } else { + Nhb(d, zte(this.b[b])); + d.a += "-"; + Nhb(d, zte(this.b[b + 1])); + } + } + d.a += "]"; + c = d.a; + } + } else { + if (this == Ise) + c = "\\D"; + else if (this == Kse) + c = "\\W"; + else if (this == Jse) + c = "\\S"; + else { + d = new Qhb(); + d.a += "[^"; + for (b = 0; b < this.b.length; b += 2) { + (a & gwe) != 0 && b > 0 && (d.a += ",", d); + if (this.b[b] === this.b[b + 1]) { + Nhb(d, zte(this.b[b])); + } else { + Nhb(d, zte(this.b[b])); + d.a += "-"; + Nhb(d, zte(this.b[b + 1])); + } + } + d.a += "]"; + c = d.a; + } + } + return c; + }; + _.a = false; + _.c = false; + sfb(LLe, "RegEx/RangeToken", 138); + feb(592, 1, { 592: 1 }, Bte); + _.a = 0; + sfb(LLe, "RegEx/RegexParser/ReferencePosition", 592); + feb(591, 1, { 3: 1, 591: 1 }, Dte); + _.Fb = function Ete(a) { + var b; + if (a == null) + return false; + if (!ZD(a, 591)) + return false; + b = RD(a, 591); + return lhb(this.b, b.b) && this.a == b.a; + }; + _.Hb = function Fte() { + return ohb(this.b + "/" + pse(this.a)); + }; + _.Ib = function Gte() { + return this.c.Qm(this.a); + }; + _.a = 0; + sfb(LLe, "RegEx/RegularExpression", 591); + feb(228, 122, ZLe, Hte); + _.Km = function Ite() { + return this.a; + }; + _.Qm = function Jte(a) { + var b, c, d; + switch (this.e) { + case 0: + switch (this.a) { + case 124: + case 42: + case 43: + case 63: + case 40: + case 41: + case 46: + case 91: + case 123: + case 92: + d = "\\" + XD(this.a & Bwe); + break; + case 12: + d = "\\f"; + break; + case 10: + d = "\\n"; + break; + case 13: + d = "\\r"; + break; + case 9: + d = "\\t"; + break; + case 27: + d = "\\e"; + break; + default: + if (this.a >= txe) { + c = (b = this.a >>> 0, "0" + b.toString(16)); + d = "\\v" + zhb(c, c.length - 6, c.length); + } else + d = "" + XD(this.a & Bwe); + } + break; + case 8: + this == Gse || this == Hse ? d = "" + XD(this.a & Bwe) : d = "\\" + XD(this.a & Bwe); + break; + default: + d = null; + } + return d; + }; + _.a = 0; + sfb(LLe, "RegEx/Token/CharToken", 228); + feb(318, 122, ZLe, Kte); + _.Lm = function Lte(a) { + return this.a; + }; + _.Nm = function Mte(a) { + this.b = a; + }; + _.Om = function Nte(a) { + this.c = a; + }; + _.Pm = function Ote() { + return 1; + }; + _.Qm = function Pte(a) { + var b; + if (this.e == 3) { + if (this.c < 0 && this.b < 0) { + b = this.a.Qm(a) + "*"; + } else if (this.c == this.b) { + b = this.a.Qm(a) + "{" + this.c + "}"; + } else if (this.c >= 0 && this.b >= 0) { + b = this.a.Qm(a) + "{" + this.c + "," + this.b + "}"; + } else if (this.c >= 0 && this.b < 0) { + b = this.a.Qm(a) + "{" + this.c + ",}"; + } else + throw Adb(new yz("Token#toString(): CLOSURE " + this.c + pve + this.b)); + } else { + if (this.c < 0 && this.b < 0) { + b = this.a.Qm(a) + "*?"; + } else if (this.c == this.b) { + b = this.a.Qm(a) + "{" + this.c + "}?"; + } else if (this.c >= 0 && this.b >= 0) { + b = this.a.Qm(a) + "{" + this.c + "," + this.b + "}?"; + } else if (this.c >= 0 && this.b < 0) { + b = this.a.Qm(a) + "{" + this.c + ",}?"; + } else + throw Adb(new yz("Token#toString(): NONGREEDYCLOSURE " + this.c + pve + this.b)); + } + return b; + }; + _.b = 0; + _.c = 0; + sfb(LLe, "RegEx/Token/ClosureToken", 318); + feb(837, 122, ZLe, Qte); + _.Lm = function Rte(a) { + return a == 0 ? this.a : this.b; + }; + _.Pm = function Ste() { + return 2; + }; + _.Qm = function Tte(a) { + var b; + this.b.e == 3 && this.b.Lm(0) == this.a ? b = this.a.Qm(a) + "+" : this.b.e == 9 && this.b.Lm(0) == this.a ? b = this.a.Qm(a) + "+?" : b = this.a.Qm(a) + ("" + this.b.Qm(a)); + return b; + }; + sfb(LLe, "RegEx/Token/ConcatToken", 837); + feb(1945, 122, ZLe, Ute); + _.Lm = function Vte(a) { + if (a == 0) + return this.d; + if (a == 1) + return this.b; + throw Adb(new yz("Internal Error: " + a)); + }; + _.Pm = function Wte() { + return !this.b ? 1 : 2; + }; + _.Qm = function Xte(a) { + var b; + this.c > 0 ? b = "(?(" + this.c + ")" : this.a.e == 8 ? b = "(?(" + this.a + ")" : b = "(?" + this.a; + !this.b ? b += this.d + ")" : b += this.d + "|" + this.b + ")"; + return b; + }; + _.c = 0; + sfb(LLe, "RegEx/Token/ConditionToken", 1945); + feb(1946, 122, ZLe, Yte); + _.Lm = function Zte(a) { + return this.b; + }; + _.Pm = function $te() { + return 1; + }; + _.Qm = function _te(a) { + return "(?" + (this.a == 0 ? "" : pse(this.a)) + (this.c == 0 ? "" : pse(this.c)) + ":" + this.b.Qm(a) + ")"; + }; + _.a = 0; + _.c = 0; + sfb(LLe, "RegEx/Token/ModifierToken", 1946); + feb(838, 122, ZLe, aue); + _.Lm = function bue(a) { + return this.a; + }; + _.Pm = function cue() { + return 1; + }; + _.Qm = function due(a) { + var b; + b = null; + switch (this.e) { + case 6: + this.b == 0 ? b = "(?:" + this.a.Qm(a) + ")" : b = "(" + this.a.Qm(a) + ")"; + break; + case 20: + b = "(?=" + this.a.Qm(a) + ")"; + break; + case 21: + b = "(?!" + this.a.Qm(a) + ")"; + break; + case 22: + b = "(?<=" + this.a.Qm(a) + ")"; + break; + case 23: + b = "(?" + this.a.Qm(a) + ")"; + } + return b; + }; + _.b = 0; + sfb(LLe, "RegEx/Token/ParenToken", 838); + feb(530, 122, { 3: 1, 122: 1, 530: 1 }, eue); + _.Mm = function fue() { + return this.b; + }; + _.Qm = function gue(a) { + return this.e == 12 ? "\\" + this.a : tse(this.b); + }; + _.a = 0; + sfb(LLe, "RegEx/Token/StringToken", 530); + feb(477, 122, ZLe, iue); + _.Jm = function jue(a) { + hue(this, a); + }; + _.Lm = function kue(a) { + return RD(eyb(this.a, a), 122); + }; + _.Pm = function lue() { + return !this.a ? 0 : this.a.a.c.length; + }; + _.Qm = function mue(a) { + var b, c, d, e, f; + if (this.e == 1) { + if (this.a.a.c.length == 2) { + b = RD(eyb(this.a, 0), 122); + c = RD(eyb(this.a, 1), 122); + c.e == 3 && c.Lm(0) == b ? e = b.Qm(a) + "+" : c.e == 9 && c.Lm(0) == b ? e = b.Qm(a) + "+?" : e = b.Qm(a) + ("" + c.Qm(a)); + } else { + f = new Qhb(); + for (d = 0; d < this.a.a.c.length; d++) { + Nhb(f, RD(eyb(this.a, d), 122).Qm(a)); + } + e = f.a; + } + return e; + } + if (this.a.a.c.length == 2 && RD(eyb(this.a, 1), 122).e == 7) { + e = RD(eyb(this.a, 0), 122).Qm(a) + "?"; + } else if (this.a.a.c.length == 2 && RD(eyb(this.a, 0), 122).e == 7) { + e = RD(eyb(this.a, 1), 122).Qm(a) + "??"; + } else { + f = new Qhb(); + Nhb(f, RD(eyb(this.a, 0), 122).Qm(a)); + for (d = 1; d < this.a.a.c.length; d++) { + f.a += "|"; + Nhb(f, RD(eyb(this.a, d), 122).Qm(a)); + } + e = f.a; + } + return e; + }; + sfb(LLe, "RegEx/Token/UnionToken", 477); + feb(527, 1, { 600: 1 }, oue); + _.Ib = function pue() { + return this.a.b; + }; + sfb($Le, "XMLTypeUtil/PatternMatcherImpl", 527); + feb(1707, 1527, {}, sue); + var que; + sfb($Le, "XMLTypeValidator", 1707); + feb(270, 1, Vve, vue); + _.Jc = function wue(a) { + xgb(this, a); + }; + _.Kc = function xue() { + return (this.b - this.a) * this.c < 0 ? tue : new Rue(this); + }; + _.a = 0; + _.b = 0; + _.c = 0; + var tue; + sfb(aMe, "ExclusiveRange", 270); + feb(1084, 1, Jve, Cue); + _.Rb = function Due(a) { + RD(a, 17); + yue(); + }; + _.Nb = function Eue(a) { + Ztb(this, a); + }; + _.Pb = function Hue() { + return zue(); + }; + _.Ub = function Jue() { + return Aue(); + }; + _.Wb = function Mue(a) { + RD(a, 17); + Bue(); + }; + _.Ob = function Fue() { + return false; + }; + _.Sb = function Gue() { + return false; + }; + _.Tb = function Iue() { + return -1; + }; + _.Vb = function Kue() { + return -1; + }; + _.Qb = function Lue() { + throw Adb(new kib(dMe)); + }; + sfb(aMe, "ExclusiveRange/1", 1084); + feb(258, 1, Jve, Rue); + _.Rb = function Sue(a) { + RD(a, 17); + Nue(); + }; + _.Nb = function Tue(a) { + Ztb(this, a); + }; + _.Pb = function Wue() { + return Oue(this); + }; + _.Ub = function Yue() { + return Pue(this); + }; + _.Wb = function _ue(a) { + RD(a, 17); + Que(); + }; + _.Ob = function Uue() { + return this.c.c < 0 ? this.a >= this.c.b : this.a <= this.c.b; + }; + _.Sb = function Vue() { + return this.b > 0; + }; + _.Tb = function Xue() { + return this.b; + }; + _.Vb = function Zue() { + return this.b - 1; + }; + _.Qb = function $ue() { + throw Adb(new kib(dMe)); + }; + _.a = 0; + _.b = 0; + sfb(aMe, "ExclusiveRange/RangeIterator", 258); + var hE = vfb(eKe, "C"); + var kE = vfb(hKe, "I"); + var xdb = vfb(hve, "Z"); + var lE = vfb(iKe, "J"); + var gE = vfb(dKe, "B"); + var iE = vfb(fKe, "D"); + var jE = vfb(gKe, "F"); + var wdb = vfb(jKe, "S"); + var g3 = ufb("org.eclipse.elk.core.labels", "ILabelManager"); + var T6 = ufb(sIe, "DiagnosticChain"); + var zab = ufb(QKe, "ResourceSet"); + var $6 = sfb(sIe, "InvocationTargetException", null); + var fve = (Qz(), Tz); + var gwtOnLoad = gwtOnLoad = ceb; + aeb(leb); + deb("permProps", [[["locale", "default"], [eMe, "gecko1_8"]], [["locale", "default"], [eMe, "safari"]]]); + gwtOnLoad(null, "elk", null); + }).call(this); + }).call(this, typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); + }, {}], 3: [function(require2, module2, exports2) { + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _possibleConstructorReturn(self2, call) { + if (!self2) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return call && (typeof call === "object" || typeof call === "function") ? call : self2; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); + if (superClass) + Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } + var ELK2 = require2("./elk-api.js").default; + var ELKNode = function(_ELK) { + _inherits(ELKNode2, _ELK); + function ELKNode2() { + var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + _classCallCheck(this, ELKNode2); + var optionsClone = Object.assign({}, options); + var workerThreadsExist = false; + try { + require2.resolve("web-worker"); + workerThreadsExist = true; + } catch (e) { + } + if (options.workerUrl) { + if (workerThreadsExist) { + var Worker2 = require2("web-worker"); + optionsClone.workerFactory = function(url) { + return new Worker2(url); + }; + } else { + console.warn("Web worker requested but 'web-worker' package not installed. \nConsider installing the package or pass your own 'workerFactory' to ELK's constructor.\n... Falling back to non-web worker version."); + } + } + if (!optionsClone.workerFactory) { + var _require = require2("./elk-worker.min.js"), _Worker = _require.Worker; + optionsClone.workerFactory = function(url) { + return new _Worker(url); + }; + } + return _possibleConstructorReturn(this, (ELKNode2.__proto__ || Object.getPrototypeOf(ELKNode2)).call(this, optionsClone)); + } + return ELKNode2; + }(ELK2); + Object.defineProperty(module2.exports, "__esModule", { + value: true + }); + module2.exports = ELKNode; + ELKNode.default = ELKNode; + }, { "./elk-api.js": 1, "./elk-worker.min.js": 2, "web-worker": 4 }], 4: [function(require2, module2, exports2) { + module2.exports = Worker; + }, {}] }, {}, [3])(3); + }); +})(elk_bundled); +var elk_bundledExports = elk_bundled.exports; +const ELK = /* @__PURE__ */ getDefaultExportFromCjs(elk_bundledExports); +const elk = new ELK(); +let portPos = {}; +const conf = {}; +let nodeDb = {}; +const addVertices = async function(vert, svgId, root, doc, diagObj, parentLookupDb, graph) { + const svg = root.select(`[id="${svgId}"]`); + const nodes = svg.insert("g").attr("class", "nodes"); + const keys = Object.keys(vert); + await Promise.all( + keys.map(async function(id) { + const vertex = vert[id]; + let classStr = "default"; + if (vertex.classes.length > 0) { + classStr = vertex.classes.join(" "); + } + classStr = classStr + " flowchart-label"; + const styles2 = getStylesFromArray(vertex.styles); + let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id; + const labelData = { width: 0, height: 0 }; + const ports = [ + { + id: vertex.id + "-west", + layoutOptions: { + "port.side": "WEST" + } + }, + { + id: vertex.id + "-east", + layoutOptions: { + "port.side": "EAST" + } + }, + { + id: vertex.id + "-south", + layoutOptions: { + "port.side": "SOUTH" + } + }, + { + id: vertex.id + "-north", + layoutOptions: { + "port.side": "NORTH" + } + } + ]; + let radius = 0; + let _shape = ""; + let layoutOptions = {}; + switch (vertex.type) { + case "round": + radius = 5; + _shape = "rect"; + break; + case "square": + _shape = "rect"; + break; + case "diamond": + _shape = "question"; + layoutOptions = { + portConstraints: "FIXED_SIDE" + }; + break; + case "hexagon": + _shape = "hexagon"; + break; + case "odd": + _shape = "rect_left_inv_arrow"; + break; + case "lean_right": + _shape = "lean_right"; + break; + case "lean_left": + _shape = "lean_left"; + break; + case "trapezoid": + _shape = "trapezoid"; + break; + case "inv_trapezoid": + _shape = "inv_trapezoid"; + break; + case "odd_right": + _shape = "rect_left_inv_arrow"; + break; + case "circle": + _shape = "circle"; + break; + case "ellipse": + _shape = "ellipse"; + break; + case "stadium": + _shape = "stadium"; + break; + case "subroutine": + _shape = "subroutine"; + break; + case "cylinder": + _shape = "cylinder"; + break; + case "group": + _shape = "rect"; + break; + case "doublecircle": + _shape = "doublecircle"; + break; + default: + _shape = "rect"; + } + const node = { + labelStyle: styles2.labelStyle, + shape: _shape, + labelText: vertexText, + labelType: vertex.labelType, + rx: radius, + ry: radius, + class: classStr, + style: styles2.style, + id: vertex.id, + link: vertex.link, + linkTarget: vertex.linkTarget, + tooltip: diagObj.db.getTooltip(vertex.id) || "", + domId: diagObj.db.lookUpDomId(vertex.id), + haveCallback: vertex.haveCallback, + width: vertex.type === "group" ? 500 : void 0, + dir: vertex.dir, + type: vertex.type, + props: vertex.props, + padding: getConfig().flowchart.padding + }; + let boundingBox; + let nodeEl; + if (node.type !== "group") { + nodeEl = await insertNode(nodes, node, vertex.dir); + boundingBox = nodeEl.node().getBBox(); + } else { + doc.createElementNS("http://www.w3.org/2000/svg", "text"); + const { shapeSvg, bbox } = await labelHelper(nodes, node, void 0, true); + labelData.width = bbox.width; + labelData.wrappingWidth = getConfig().flowchart.wrappingWidth; + labelData.height = bbox.height; + labelData.labelNode = shapeSvg.node(); + node.labelData = labelData; + } + const data = { + id: vertex.id, + ports: vertex.type === "diamond" ? ports : [], + // labelStyle: styles.labelStyle, + // shape: _shape, + layoutOptions, + labelText: vertexText, + labelData, + // labels: [{ text: vertexText }], + // rx: radius, + // ry: radius, + // class: classStr, + // style: styles.style, + // link: vertex.link, + // linkTarget: vertex.linkTarget, + // tooltip: diagObj.db.getTooltip(vertex.id) || '', + domId: diagObj.db.lookUpDomId(vertex.id), + // haveCallback: vertex.haveCallback, + width: boundingBox == null ? void 0 : boundingBox.width, + height: boundingBox == null ? void 0 : boundingBox.height, + // dir: vertex.dir, + type: vertex.type, + // props: vertex.props, + // padding: getConfig().flowchart.padding, + // boundingBox, + el: nodeEl, + parent: parentLookupDb.parentById[vertex.id] + }; + nodeDb[node.id] = data; + }) + ); + return graph; +}; +const getNextPosition = (position, edgeDirection, graphDirection) => { + const portPos2 = { + TB: { + in: { + north: "north" + }, + out: { + south: "west", + west: "east", + east: "south" + } + }, + LR: { + in: { + west: "west" + }, + out: { + east: "south", + south: "north", + north: "east" + } + }, + RL: { + in: { + east: "east" + }, + out: { + west: "north", + north: "south", + south: "west" + } + }, + BT: { + in: { + south: "south" + }, + out: { + north: "east", + east: "west", + west: "north" + } + } + }; + portPos2.TD = portPos2.TB; + return portPos2[graphDirection][edgeDirection][position]; +}; +const getNextPort = (node, edgeDirection, graphDirection) => { + log.info("getNextPort", { node, edgeDirection, graphDirection }); + if (!portPos[node]) { + switch (graphDirection) { + case "TB": + case "TD": + portPos[node] = { + inPosition: "north", + outPosition: "south" + }; + break; + case "BT": + portPos[node] = { + inPosition: "south", + outPosition: "north" + }; + break; + case "RL": + portPos[node] = { + inPosition: "east", + outPosition: "west" + }; + break; + case "LR": + portPos[node] = { + inPosition: "west", + outPosition: "east" + }; + break; + } + } + const result = edgeDirection === "in" ? portPos[node].inPosition : portPos[node].outPosition; + if (edgeDirection === "in") { + portPos[node].inPosition = getNextPosition( + portPos[node].inPosition, + edgeDirection, + graphDirection + ); + } else { + portPos[node].outPosition = getNextPosition( + portPos[node].outPosition, + edgeDirection, + graphDirection + ); + } + return result; +}; +const getEdgeStartEndPoint = (edge, dir) => { + let source = edge.start; + let target = edge.end; + const sourceId = source; + const targetId = target; + const startNode = nodeDb[source]; + const endNode = nodeDb[target]; + if (!startNode || !endNode) { + return { source, target }; + } + if (startNode.type === "diamond") { + source = `${source}-${getNextPort(source, "out", dir)}`; + } + if (endNode.type === "diamond") { + target = `${target}-${getNextPort(target, "in", dir)}`; + } + return { source, target, sourceId, targetId }; +}; +const addEdges = function(edges, diagObj, graph, svg) { + log.info("abc78 edges = ", edges); + const labelsEl = svg.insert("g").attr("class", "edgeLabels"); + let linkIdCnt = {}; + let dir = diagObj.db.getDirection(); + let defaultStyle; + let defaultLabelStyle; + if (edges.defaultStyle !== void 0) { + const defaultStyles = getStylesFromArray(edges.defaultStyle); + defaultStyle = defaultStyles.style; + defaultLabelStyle = defaultStyles.labelStyle; + } + edges.forEach(function(edge) { + const linkIdBase = "L-" + edge.start + "-" + edge.end; + if (linkIdCnt[linkIdBase] === void 0) { + linkIdCnt[linkIdBase] = 0; + log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]); + } else { + linkIdCnt[linkIdBase]++; + log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]); + } + let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase]; + log.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]); + const linkNameStart = "LS-" + edge.start; + const linkNameEnd = "LE-" + edge.end; + const edgeData = { style: "", labelStyle: "" }; + edgeData.minlen = edge.length || 1; + if (edge.type === "arrow_open") { + edgeData.arrowhead = "none"; + } else { + edgeData.arrowhead = "normal"; + } + edgeData.arrowTypeStart = "arrow_open"; + edgeData.arrowTypeEnd = "arrow_open"; + switch (edge.type) { + case "double_arrow_cross": + edgeData.arrowTypeStart = "arrow_cross"; + case "arrow_cross": + edgeData.arrowTypeEnd = "arrow_cross"; + break; + case "double_arrow_point": + edgeData.arrowTypeStart = "arrow_point"; + case "arrow_point": + edgeData.arrowTypeEnd = "arrow_point"; + break; + case "double_arrow_circle": + edgeData.arrowTypeStart = "arrow_circle"; + case "arrow_circle": + edgeData.arrowTypeEnd = "arrow_circle"; + break; + } + let style = ""; + let labelStyle = ""; + switch (edge.stroke) { + case "normal": + style = "fill:none;"; + if (defaultStyle !== void 0) { + style = defaultStyle; + } + if (defaultLabelStyle !== void 0) { + labelStyle = defaultLabelStyle; + } + edgeData.thickness = "normal"; + edgeData.pattern = "solid"; + break; + case "dotted": + edgeData.thickness = "normal"; + edgeData.pattern = "dotted"; + edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;"; + break; + case "thick": + edgeData.thickness = "thick"; + edgeData.pattern = "solid"; + edgeData.style = "stroke-width: 3.5px;fill:none;"; + break; + } + if (edge.style !== void 0) { + const styles2 = getStylesFromArray(edge.style); + style = styles2.style; + labelStyle = styles2.labelStyle; + } + edgeData.style = edgeData.style += style; + edgeData.labelStyle = edgeData.labelStyle += labelStyle; + if (edge.interpolate !== void 0) { + edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear); + } else if (edges.defaultInterpolate !== void 0) { + edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear); + } else { + edgeData.curve = interpolateToCurve(conf.curve, curveLinear); + } + if (edge.text === void 0) { + if (edge.style !== void 0) { + edgeData.arrowheadStyle = "fill: #333"; + } + } else { + edgeData.arrowheadStyle = "fill: #333"; + edgeData.labelpos = "c"; + } + edgeData.labelType = edge.labelType; + edgeData.label = edge.text.replace(common.lineBreakRegex, "\n"); + if (edge.style === void 0) { + edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;"; + } + edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:"); + edgeData.id = linkId; + edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd; + const labelEl = insertEdgeLabel(labelsEl, edgeData); + const { source, target, sourceId, targetId } = getEdgeStartEndPoint(edge, dir); + log.debug("abc78 source and target", source, target); + graph.edges.push({ + id: "e" + edge.start + edge.end, + sources: [source], + targets: [target], + sourceId, + targetId, + labelEl, + labels: [ + { + width: edgeData.width, + height: edgeData.height, + orgWidth: edgeData.width, + orgHeight: edgeData.height, + text: edgeData.label, + layoutOptions: { + "edgeLabels.inline": "true", + "edgeLabels.placement": "CENTER" + } + } + ], + edgeData + }); + }); + return graph; +}; +const addMarkersToEdge = function(svgPath, edgeData, diagramType, arrowMarkerAbsolute, id) { + let url = ""; + if (arrowMarkerAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); + } + addEdgeMarkers(svgPath, edgeData, url, id, diagramType); +}; +const getClasses = function(text, diagObj) { + log.info("Extracting classes"); + return diagObj.db.getClasses(); +}; +const addSubGraphs = function(db2) { + const parentLookupDb = { parentById: {}, childrenById: {} }; + const subgraphs = db2.getSubGraphs(); + log.info("Subgraphs - ", subgraphs); + subgraphs.forEach(function(subgraph) { + subgraph.nodes.forEach(function(node) { + parentLookupDb.parentById[node] = subgraph.id; + if (parentLookupDb.childrenById[subgraph.id] === void 0) { + parentLookupDb.childrenById[subgraph.id] = []; + } + parentLookupDb.childrenById[subgraph.id].push(node); + }); + }); + subgraphs.forEach(function(subgraph) { + ({ id: subgraph.id }); + if (parentLookupDb.parentById[subgraph.id] !== void 0) { + parentLookupDb.parentById[subgraph.id]; + } + }); + return parentLookupDb; +}; +const calcOffset = function(src, dest, parentLookupDb) { + const ancestor = findCommonAncestor(src, dest, parentLookupDb); + if (ancestor === void 0 || ancestor === "root") { + return { x: 0, y: 0 }; + } + const ancestorOffset = nodeDb[ancestor].offset; + return { x: ancestorOffset.posX, y: ancestorOffset.posY }; +}; +const insertEdge = function(edgesEl, edge, edgeData, diagObj, parentLookupDb, id) { + const offset = calcOffset(edge.sourceId, edge.targetId, parentLookupDb); + const src = edge.sections[0].startPoint; + const dest = edge.sections[0].endPoint; + const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : []; + const segPoints = segments.map((segment) => [segment.x + offset.x, segment.y + offset.y]); + const points = [ + [src.x + offset.x, src.y + offset.y], + ...segPoints, + [dest.x + offset.x, dest.y + offset.y] + ]; + const { x, y } = getLineFunctionsWithOffset(edge.edgeData); + const curve = line().x(x).y(y).curve(curveLinear); + const edgePath = edgesEl.insert("path").attr("d", curve(points)).attr("class", "path " + edgeData.classes).attr("fill", "none"); + const edgeG = edgesEl.insert("g").attr("class", "edgeLabel"); + const edgeWithLabel = d3select(edgeG.node().appendChild(edge.labelEl)); + const box = edgeWithLabel.node().firstChild.getBoundingClientRect(); + edgeWithLabel.attr("width", box.width); + edgeWithLabel.attr("height", box.height); + edgeG.attr( + "transform", + `translate(${edge.labels[0].x + offset.x}, ${edge.labels[0].y + offset.y})` + ); + addMarkersToEdge(edgePath, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute, id); +}; +const insertChildren = (nodeArray, parentLookupDb) => { + nodeArray.forEach((node) => { + if (!node.children) { + node.children = []; + } + const childIds = parentLookupDb.childrenById[node.id]; + if (childIds) { + childIds.forEach((childId) => { + node.children.push(nodeDb[childId]); + }); + } + insertChildren(node.children, parentLookupDb); + }); +}; +const draw = async function(text, id, _version, diagObj) { + var _a; + diagObj.db.clear(); + nodeDb = {}; + portPos = {}; + diagObj.db.setGen("gen-2"); + diagObj.parser.parse(text); + const renderEl = d3select("body").append("div").attr("style", "height:400px").attr("id", "cy"); + let graph = { + id: "root", + layoutOptions: { + "elk.hierarchyHandling": "INCLUDE_CHILDREN", + "org.eclipse.elk.padding": "[top=100, left=100, bottom=110, right=110]", + "elk.layered.spacing.edgeNodeBetweenLayers": "30", + // 'elk.layered.mergeEdges': 'true', + "elk.direction": "DOWN" + // 'elk.ports.sameLayerEdges': true, + // 'nodePlacement.strategy': 'SIMPLE', + }, + children: [], + edges: [] + }; + log.info("Drawing flowchart using v3 renderer", elk); + let dir = diagObj.db.getDirection(); + switch (dir) { + case "BT": + graph.layoutOptions["elk.direction"] = "UP"; + break; + case "TB": + graph.layoutOptions["elk.direction"] = "DOWN"; + break; + case "LR": + graph.layoutOptions["elk.direction"] = "RIGHT"; + break; + case "RL": + graph.layoutOptions["elk.direction"] = "LEFT"; + break; + } + const { securityLevel, flowchart: conf2 } = getConfig(); + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + const svg = root.select(`[id="${id}"]`); + const markers = ["point", "circle", "cross"]; + insertMarkers(svg, markers, diagObj.type, id); + const vert = diagObj.db.getVertices(); + let subG; + const subGraphs = diagObj.db.getSubGraphs(); + log.info("Subgraphs - ", subGraphs); + for (let i = subGraphs.length - 1; i >= 0; i--) { + subG = subGraphs[i]; + diagObj.db.addVertex( + subG.id, + { text: subG.title, type: subG.labelType }, + "group", + void 0, + subG.classes, + subG.dir + ); + } + const subGraphsEl = svg.insert("g").attr("class", "subgraphs"); + const parentLookupDb = addSubGraphs(diagObj.db); + graph = await addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph); + const edgesEl = svg.insert("g").attr("class", "edges edgePath"); + const edges = diagObj.db.getEdges(); + graph = addEdges(edges, diagObj, graph, svg); + const nodes = Object.keys(nodeDb); + nodes.forEach((nodeId) => { + const node = nodeDb[nodeId]; + if (!node.parent) { + graph.children.push(node); + } + if (parentLookupDb.childrenById[nodeId] !== void 0) { + node.labels = [ + { + text: node.labelText, + layoutOptions: { + "nodeLabels.placement": "[H_CENTER, V_TOP, INSIDE]" + }, + width: node.labelData.width, + height: node.labelData.height + // width: 100, + // height: 100, + } + ]; + delete node.x; + delete node.y; + delete node.width; + delete node.height; + } + }); + insertChildren(graph.children, parentLookupDb); + log.info("after layout", JSON.stringify(graph, null, 2)); + const g = await elk.layout(graph); + drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0); + log.info("after layout", g); + (_a = g.edges) == null ? void 0 : _a.map((edge) => { + insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb, id); + }); + setupGraphViewbox({}, svg, conf2.diagramPadding, conf2.useMaxWidth); + renderEl.remove(); +}; +const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj, depth) => { + nodeArray.forEach(function(node) { + if (node) { + nodeDb[node.id].offset = { + posX: node.x + relX, + posY: node.y + relY, + x: relX, + y: relY, + depth, + width: node.width, + height: node.height + }; + if (node.type === "group") { + const subgraphEl = subgraphsEl.insert("g").attr("class", "subgraph"); + subgraphEl.insert("rect").attr("class", "subgraph subgraph-lvl-" + depth % 5 + " node").attr("x", node.x + relX).attr("y", node.y + relY).attr("width", node.width).attr("height", node.height); + const label = subgraphEl.insert("g").attr("class", "label"); + const labelCentering = getConfig().flowchart.htmlLabels ? node.labelData.width / 2 : 0; + label.attr( + "transform", + `translate(${node.labels[0].x + relX + node.x + labelCentering}, ${node.labels[0].y + relY + node.y + 3})` + ); + label.node().appendChild(node.labelData.labelNode); + log.info("Id (UGH)= ", node.type, node.labels); + } else { + log.info("Id (UGH)= ", node.id); + node.el.attr( + "transform", + `translate(${node.x + relX + node.width / 2}, ${node.y + relY + node.height / 2})` + ); + } + } + }); + nodeArray.forEach(function(node) { + if (node && node.type === "group") { + drawNodes(relX + node.x, relY + node.y, node.children, svg, subgraphsEl, diagObj, depth + 1); + } + }); +}; +const renderer = { + getClasses, + draw +}; +const genSections = (options) => { + let sections = ""; + for (let i = 0; i < 5; i++) { + sections += ` + .subgraph-lvl-${i} { + fill: ${options[`surface${i}`]}; + stroke: ${options[`surfacePeer${i}`]}; + } + `; + } + return sections; +}; +const getStyles = (options) => `.label { + font-family: ${options.fontFamily}; + color: ${options.nodeTextColor || options.textColor}; + } + .cluster-label text { + fill: ${options.titleColor}; + } + .cluster-label span { + color: ${options.titleColor}; + } + + .label text,span { + fill: ${options.nodeTextColor || options.textColor}; + color: ${options.nodeTextColor || options.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${options.arrowheadColor}; + } + + .edgePath .path { + stroke: ${options.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${options.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${options.edgeLabelBackground}; + rect { + opacity: 0.85; + background-color: ${options.edgeLabelBackground}; + fill: ${options.edgeLabelBackground}; + } + text-align: center; + } + + .cluster rect { + fill: ${options.clusterBkg}; + stroke: ${options.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${options.titleColor}; + } + + .cluster span { + color: ${options.titleColor}; + } + /* .cluster div { + color: ${options.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${options.fontFamily}; + font-size: 12px; + background: ${options.tertiaryColor}; + border: 1px solid ${options.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.textColor}; + } + .subgraph { + stroke-width:2; + rx:3; + } + // .subgraph-lvl-1 { + // fill:#ccc; + // // stroke:black; + // } + + .flowchart-label text { + text-anchor: middle; + } + + ${genSections(options)} +`; +const styles = getStyles; +const diagram = { + db, + renderer, + parser, + styles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/flowchart-elk-definition-ae0efee6.js b/assets/lib/mermaid/flowchart-elk-definition-ae0efee6.js new file mode 100644 index 000000000..07e66012e --- /dev/null +++ b/assets/lib/mermaid/flowchart-elk-definition-ae0efee6.js @@ -0,0 +1,814 @@ +import { d as db, p as parser } from "./flowDb-c1833063.js"; +import { select, curveLinear, line } from "d3"; +import { a as insertMarkers, e as insertNode, l as labelHelper, f as insertEdgeLabel, k as getLineFunctionsWithOffset, m as addEdgeMarkers } from "./edges-066a5561.js"; +import { l as log, F as getConfig, o as setupGraphViewbox, k as getStylesFromArray, n as interpolateToCurve, e as common } from "./mermaid-6dc72991.js"; +import ELK from "elkjs/lib/elk.bundled.js"; +import "./createText-ca0c5216.js"; +import "mdast-util-from-markdown"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +const findCommonAncestor = (id1, id2, treeData) => { + const { parentById } = treeData; + const visited = /* @__PURE__ */ new Set(); + let currentId = id1; + while (currentId) { + visited.add(currentId); + if (currentId === id2) { + return currentId; + } + currentId = parentById[currentId]; + } + currentId = id2; + while (currentId) { + if (visited.has(currentId)) { + return currentId; + } + currentId = parentById[currentId]; + } + return "root"; +}; +const elk = new ELK(); +let portPos = {}; +const conf = {}; +let nodeDb = {}; +const addVertices = async function(vert, svgId, root, doc, diagObj, parentLookupDb, graph) { + const svg = root.select(`[id="${svgId}"]`); + const nodes = svg.insert("g").attr("class", "nodes"); + const keys = Object.keys(vert); + await Promise.all( + keys.map(async function(id) { + const vertex = vert[id]; + let classStr = "default"; + if (vertex.classes.length > 0) { + classStr = vertex.classes.join(" "); + } + classStr = classStr + " flowchart-label"; + const styles2 = getStylesFromArray(vertex.styles); + let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id; + const labelData = { width: 0, height: 0 }; + const ports = [ + { + id: vertex.id + "-west", + layoutOptions: { + "port.side": "WEST" + } + }, + { + id: vertex.id + "-east", + layoutOptions: { + "port.side": "EAST" + } + }, + { + id: vertex.id + "-south", + layoutOptions: { + "port.side": "SOUTH" + } + }, + { + id: vertex.id + "-north", + layoutOptions: { + "port.side": "NORTH" + } + } + ]; + let radius = 0; + let _shape = ""; + let layoutOptions = {}; + switch (vertex.type) { + case "round": + radius = 5; + _shape = "rect"; + break; + case "square": + _shape = "rect"; + break; + case "diamond": + _shape = "question"; + layoutOptions = { + portConstraints: "FIXED_SIDE" + }; + break; + case "hexagon": + _shape = "hexagon"; + break; + case "odd": + _shape = "rect_left_inv_arrow"; + break; + case "lean_right": + _shape = "lean_right"; + break; + case "lean_left": + _shape = "lean_left"; + break; + case "trapezoid": + _shape = "trapezoid"; + break; + case "inv_trapezoid": + _shape = "inv_trapezoid"; + break; + case "odd_right": + _shape = "rect_left_inv_arrow"; + break; + case "circle": + _shape = "circle"; + break; + case "ellipse": + _shape = "ellipse"; + break; + case "stadium": + _shape = "stadium"; + break; + case "subroutine": + _shape = "subroutine"; + break; + case "cylinder": + _shape = "cylinder"; + break; + case "group": + _shape = "rect"; + break; + case "doublecircle": + _shape = "doublecircle"; + break; + default: + _shape = "rect"; + } + const node = { + labelStyle: styles2.labelStyle, + shape: _shape, + labelText: vertexText, + labelType: vertex.labelType, + rx: radius, + ry: radius, + class: classStr, + style: styles2.style, + id: vertex.id, + link: vertex.link, + linkTarget: vertex.linkTarget, + tooltip: diagObj.db.getTooltip(vertex.id) || "", + domId: diagObj.db.lookUpDomId(vertex.id), + haveCallback: vertex.haveCallback, + width: vertex.type === "group" ? 500 : void 0, + dir: vertex.dir, + type: vertex.type, + props: vertex.props, + padding: getConfig().flowchart.padding + }; + let boundingBox; + let nodeEl; + if (node.type !== "group") { + nodeEl = await insertNode(nodes, node, vertex.dir); + boundingBox = nodeEl.node().getBBox(); + } else { + doc.createElementNS("http://www.w3.org/2000/svg", "text"); + const { shapeSvg, bbox } = await labelHelper(nodes, node, void 0, true); + labelData.width = bbox.width; + labelData.wrappingWidth = getConfig().flowchart.wrappingWidth; + labelData.height = bbox.height; + labelData.labelNode = shapeSvg.node(); + node.labelData = labelData; + } + const data = { + id: vertex.id, + ports: vertex.type === "diamond" ? ports : [], + // labelStyle: styles.labelStyle, + // shape: _shape, + layoutOptions, + labelText: vertexText, + labelData, + // labels: [{ text: vertexText }], + // rx: radius, + // ry: radius, + // class: classStr, + // style: styles.style, + // link: vertex.link, + // linkTarget: vertex.linkTarget, + // tooltip: diagObj.db.getTooltip(vertex.id) || '', + domId: diagObj.db.lookUpDomId(vertex.id), + // haveCallback: vertex.haveCallback, + width: boundingBox == null ? void 0 : boundingBox.width, + height: boundingBox == null ? void 0 : boundingBox.height, + // dir: vertex.dir, + type: vertex.type, + // props: vertex.props, + // padding: getConfig().flowchart.padding, + // boundingBox, + el: nodeEl, + parent: parentLookupDb.parentById[vertex.id] + }; + nodeDb[node.id] = data; + }) + ); + return graph; +}; +const getNextPosition = (position, edgeDirection, graphDirection) => { + const portPos2 = { + TB: { + in: { + north: "north" + }, + out: { + south: "west", + west: "east", + east: "south" + } + }, + LR: { + in: { + west: "west" + }, + out: { + east: "south", + south: "north", + north: "east" + } + }, + RL: { + in: { + east: "east" + }, + out: { + west: "north", + north: "south", + south: "west" + } + }, + BT: { + in: { + south: "south" + }, + out: { + north: "east", + east: "west", + west: "north" + } + } + }; + portPos2.TD = portPos2.TB; + return portPos2[graphDirection][edgeDirection][position]; +}; +const getNextPort = (node, edgeDirection, graphDirection) => { + log.info("getNextPort", { node, edgeDirection, graphDirection }); + if (!portPos[node]) { + switch (graphDirection) { + case "TB": + case "TD": + portPos[node] = { + inPosition: "north", + outPosition: "south" + }; + break; + case "BT": + portPos[node] = { + inPosition: "south", + outPosition: "north" + }; + break; + case "RL": + portPos[node] = { + inPosition: "east", + outPosition: "west" + }; + break; + case "LR": + portPos[node] = { + inPosition: "west", + outPosition: "east" + }; + break; + } + } + const result = edgeDirection === "in" ? portPos[node].inPosition : portPos[node].outPosition; + if (edgeDirection === "in") { + portPos[node].inPosition = getNextPosition( + portPos[node].inPosition, + edgeDirection, + graphDirection + ); + } else { + portPos[node].outPosition = getNextPosition( + portPos[node].outPosition, + edgeDirection, + graphDirection + ); + } + return result; +}; +const getEdgeStartEndPoint = (edge, dir) => { + let source = edge.start; + let target = edge.end; + const sourceId = source; + const targetId = target; + const startNode = nodeDb[source]; + const endNode = nodeDb[target]; + if (!startNode || !endNode) { + return { source, target }; + } + if (startNode.type === "diamond") { + source = `${source}-${getNextPort(source, "out", dir)}`; + } + if (endNode.type === "diamond") { + target = `${target}-${getNextPort(target, "in", dir)}`; + } + return { source, target, sourceId, targetId }; +}; +const addEdges = function(edges, diagObj, graph, svg) { + log.info("abc78 edges = ", edges); + const labelsEl = svg.insert("g").attr("class", "edgeLabels"); + let linkIdCnt = {}; + let dir = diagObj.db.getDirection(); + let defaultStyle; + let defaultLabelStyle; + if (edges.defaultStyle !== void 0) { + const defaultStyles = getStylesFromArray(edges.defaultStyle); + defaultStyle = defaultStyles.style; + defaultLabelStyle = defaultStyles.labelStyle; + } + edges.forEach(function(edge) { + const linkIdBase = "L-" + edge.start + "-" + edge.end; + if (linkIdCnt[linkIdBase] === void 0) { + linkIdCnt[linkIdBase] = 0; + log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]); + } else { + linkIdCnt[linkIdBase]++; + log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]); + } + let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase]; + log.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]); + const linkNameStart = "LS-" + edge.start; + const linkNameEnd = "LE-" + edge.end; + const edgeData = { style: "", labelStyle: "" }; + edgeData.minlen = edge.length || 1; + if (edge.type === "arrow_open") { + edgeData.arrowhead = "none"; + } else { + edgeData.arrowhead = "normal"; + } + edgeData.arrowTypeStart = "arrow_open"; + edgeData.arrowTypeEnd = "arrow_open"; + switch (edge.type) { + case "double_arrow_cross": + edgeData.arrowTypeStart = "arrow_cross"; + case "arrow_cross": + edgeData.arrowTypeEnd = "arrow_cross"; + break; + case "double_arrow_point": + edgeData.arrowTypeStart = "arrow_point"; + case "arrow_point": + edgeData.arrowTypeEnd = "arrow_point"; + break; + case "double_arrow_circle": + edgeData.arrowTypeStart = "arrow_circle"; + case "arrow_circle": + edgeData.arrowTypeEnd = "arrow_circle"; + break; + } + let style = ""; + let labelStyle = ""; + switch (edge.stroke) { + case "normal": + style = "fill:none;"; + if (defaultStyle !== void 0) { + style = defaultStyle; + } + if (defaultLabelStyle !== void 0) { + labelStyle = defaultLabelStyle; + } + edgeData.thickness = "normal"; + edgeData.pattern = "solid"; + break; + case "dotted": + edgeData.thickness = "normal"; + edgeData.pattern = "dotted"; + edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;"; + break; + case "thick": + edgeData.thickness = "thick"; + edgeData.pattern = "solid"; + edgeData.style = "stroke-width: 3.5px;fill:none;"; + break; + } + if (edge.style !== void 0) { + const styles2 = getStylesFromArray(edge.style); + style = styles2.style; + labelStyle = styles2.labelStyle; + } + edgeData.style = edgeData.style += style; + edgeData.labelStyle = edgeData.labelStyle += labelStyle; + if (edge.interpolate !== void 0) { + edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear); + } else if (edges.defaultInterpolate !== void 0) { + edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear); + } else { + edgeData.curve = interpolateToCurve(conf.curve, curveLinear); + } + if (edge.text === void 0) { + if (edge.style !== void 0) { + edgeData.arrowheadStyle = "fill: #333"; + } + } else { + edgeData.arrowheadStyle = "fill: #333"; + edgeData.labelpos = "c"; + } + edgeData.labelType = edge.labelType; + edgeData.label = edge.text.replace(common.lineBreakRegex, "\n"); + if (edge.style === void 0) { + edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;"; + } + edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:"); + edgeData.id = linkId; + edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd; + const labelEl = insertEdgeLabel(labelsEl, edgeData); + const { source, target, sourceId, targetId } = getEdgeStartEndPoint(edge, dir); + log.debug("abc78 source and target", source, target); + graph.edges.push({ + id: "e" + edge.start + edge.end, + sources: [source], + targets: [target], + sourceId, + targetId, + labelEl, + labels: [ + { + width: edgeData.width, + height: edgeData.height, + orgWidth: edgeData.width, + orgHeight: edgeData.height, + text: edgeData.label, + layoutOptions: { + "edgeLabels.inline": "true", + "edgeLabels.placement": "CENTER" + } + } + ], + edgeData + }); + }); + return graph; +}; +const addMarkersToEdge = function(svgPath, edgeData, diagramType, arrowMarkerAbsolute, id) { + let url = ""; + if (arrowMarkerAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); + } + addEdgeMarkers(svgPath, edgeData, url, id, diagramType); +}; +const getClasses = function(text, diagObj) { + log.info("Extracting classes"); + return diagObj.db.getClasses(); +}; +const addSubGraphs = function(db2) { + const parentLookupDb = { parentById: {}, childrenById: {} }; + const subgraphs = db2.getSubGraphs(); + log.info("Subgraphs - ", subgraphs); + subgraphs.forEach(function(subgraph) { + subgraph.nodes.forEach(function(node) { + parentLookupDb.parentById[node] = subgraph.id; + if (parentLookupDb.childrenById[subgraph.id] === void 0) { + parentLookupDb.childrenById[subgraph.id] = []; + } + parentLookupDb.childrenById[subgraph.id].push(node); + }); + }); + subgraphs.forEach(function(subgraph) { + ({ id: subgraph.id }); + if (parentLookupDb.parentById[subgraph.id] !== void 0) { + parentLookupDb.parentById[subgraph.id]; + } + }); + return parentLookupDb; +}; +const calcOffset = function(src, dest, parentLookupDb) { + const ancestor = findCommonAncestor(src, dest, parentLookupDb); + if (ancestor === void 0 || ancestor === "root") { + return { x: 0, y: 0 }; + } + const ancestorOffset = nodeDb[ancestor].offset; + return { x: ancestorOffset.posX, y: ancestorOffset.posY }; +}; +const insertEdge = function(edgesEl, edge, edgeData, diagObj, parentLookupDb, id) { + const offset = calcOffset(edge.sourceId, edge.targetId, parentLookupDb); + const src = edge.sections[0].startPoint; + const dest = edge.sections[0].endPoint; + const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : []; + const segPoints = segments.map((segment) => [segment.x + offset.x, segment.y + offset.y]); + const points = [ + [src.x + offset.x, src.y + offset.y], + ...segPoints, + [dest.x + offset.x, dest.y + offset.y] + ]; + const { x, y } = getLineFunctionsWithOffset(edge.edgeData); + const curve = line().x(x).y(y).curve(curveLinear); + const edgePath = edgesEl.insert("path").attr("d", curve(points)).attr("class", "path " + edgeData.classes).attr("fill", "none"); + const edgeG = edgesEl.insert("g").attr("class", "edgeLabel"); + const edgeWithLabel = select(edgeG.node().appendChild(edge.labelEl)); + const box = edgeWithLabel.node().firstChild.getBoundingClientRect(); + edgeWithLabel.attr("width", box.width); + edgeWithLabel.attr("height", box.height); + edgeG.attr( + "transform", + `translate(${edge.labels[0].x + offset.x}, ${edge.labels[0].y + offset.y})` + ); + addMarkersToEdge(edgePath, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute, id); +}; +const insertChildren = (nodeArray, parentLookupDb) => { + nodeArray.forEach((node) => { + if (!node.children) { + node.children = []; + } + const childIds = parentLookupDb.childrenById[node.id]; + if (childIds) { + childIds.forEach((childId) => { + node.children.push(nodeDb[childId]); + }); + } + insertChildren(node.children, parentLookupDb); + }); +}; +const draw = async function(text, id, _version, diagObj) { + var _a; + diagObj.db.clear(); + nodeDb = {}; + portPos = {}; + diagObj.db.setGen("gen-2"); + diagObj.parser.parse(text); + const renderEl = select("body").append("div").attr("style", "height:400px").attr("id", "cy"); + let graph = { + id: "root", + layoutOptions: { + "elk.hierarchyHandling": "INCLUDE_CHILDREN", + "org.eclipse.elk.padding": "[top=100, left=100, bottom=110, right=110]", + "elk.layered.spacing.edgeNodeBetweenLayers": "30", + // 'elk.layered.mergeEdges': 'true', + "elk.direction": "DOWN" + // 'elk.ports.sameLayerEdges': true, + // 'nodePlacement.strategy': 'SIMPLE', + }, + children: [], + edges: [] + }; + log.info("Drawing flowchart using v3 renderer", elk); + let dir = diagObj.db.getDirection(); + switch (dir) { + case "BT": + graph.layoutOptions["elk.direction"] = "UP"; + break; + case "TB": + graph.layoutOptions["elk.direction"] = "DOWN"; + break; + case "LR": + graph.layoutOptions["elk.direction"] = "RIGHT"; + break; + case "RL": + graph.layoutOptions["elk.direction"] = "LEFT"; + break; + } + const { securityLevel, flowchart: conf2 } = getConfig(); + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + const svg = root.select(`[id="${id}"]`); + const markers = ["point", "circle", "cross"]; + insertMarkers(svg, markers, diagObj.type, id); + const vert = diagObj.db.getVertices(); + let subG; + const subGraphs = diagObj.db.getSubGraphs(); + log.info("Subgraphs - ", subGraphs); + for (let i = subGraphs.length - 1; i >= 0; i--) { + subG = subGraphs[i]; + diagObj.db.addVertex( + subG.id, + { text: subG.title, type: subG.labelType }, + "group", + void 0, + subG.classes, + subG.dir + ); + } + const subGraphsEl = svg.insert("g").attr("class", "subgraphs"); + const parentLookupDb = addSubGraphs(diagObj.db); + graph = await addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph); + const edgesEl = svg.insert("g").attr("class", "edges edgePath"); + const edges = diagObj.db.getEdges(); + graph = addEdges(edges, diagObj, graph, svg); + const nodes = Object.keys(nodeDb); + nodes.forEach((nodeId) => { + const node = nodeDb[nodeId]; + if (!node.parent) { + graph.children.push(node); + } + if (parentLookupDb.childrenById[nodeId] !== void 0) { + node.labels = [ + { + text: node.labelText, + layoutOptions: { + "nodeLabels.placement": "[H_CENTER, V_TOP, INSIDE]" + }, + width: node.labelData.width, + height: node.labelData.height + // width: 100, + // height: 100, + } + ]; + delete node.x; + delete node.y; + delete node.width; + delete node.height; + } + }); + insertChildren(graph.children, parentLookupDb); + log.info("after layout", JSON.stringify(graph, null, 2)); + const g = await elk.layout(graph); + drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0); + log.info("after layout", g); + (_a = g.edges) == null ? void 0 : _a.map((edge) => { + insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb, id); + }); + setupGraphViewbox({}, svg, conf2.diagramPadding, conf2.useMaxWidth); + renderEl.remove(); +}; +const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj, depth) => { + nodeArray.forEach(function(node) { + if (node) { + nodeDb[node.id].offset = { + posX: node.x + relX, + posY: node.y + relY, + x: relX, + y: relY, + depth, + width: node.width, + height: node.height + }; + if (node.type === "group") { + const subgraphEl = subgraphsEl.insert("g").attr("class", "subgraph"); + subgraphEl.insert("rect").attr("class", "subgraph subgraph-lvl-" + depth % 5 + " node").attr("x", node.x + relX).attr("y", node.y + relY).attr("width", node.width).attr("height", node.height); + const label = subgraphEl.insert("g").attr("class", "label"); + const labelCentering = getConfig().flowchart.htmlLabels ? node.labelData.width / 2 : 0; + label.attr( + "transform", + `translate(${node.labels[0].x + relX + node.x + labelCentering}, ${node.labels[0].y + relY + node.y + 3})` + ); + label.node().appendChild(node.labelData.labelNode); + log.info("Id (UGH)= ", node.type, node.labels); + } else { + log.info("Id (UGH)= ", node.id); + node.el.attr( + "transform", + `translate(${node.x + relX + node.width / 2}, ${node.y + relY + node.height / 2})` + ); + } + } + }); + nodeArray.forEach(function(node) { + if (node && node.type === "group") { + drawNodes(relX + node.x, relY + node.y, node.children, svg, subgraphsEl, diagObj, depth + 1); + } + }); +}; +const renderer = { + getClasses, + draw +}; +const genSections = (options) => { + let sections = ""; + for (let i = 0; i < 5; i++) { + sections += ` + .subgraph-lvl-${i} { + fill: ${options[`surface${i}`]}; + stroke: ${options[`surfacePeer${i}`]}; + } + `; + } + return sections; +}; +const getStyles = (options) => `.label { + font-family: ${options.fontFamily}; + color: ${options.nodeTextColor || options.textColor}; + } + .cluster-label text { + fill: ${options.titleColor}; + } + .cluster-label span { + color: ${options.titleColor}; + } + + .label text,span { + fill: ${options.nodeTextColor || options.textColor}; + color: ${options.nodeTextColor || options.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${options.arrowheadColor}; + } + + .edgePath .path { + stroke: ${options.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${options.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${options.edgeLabelBackground}; + rect { + opacity: 0.85; + background-color: ${options.edgeLabelBackground}; + fill: ${options.edgeLabelBackground}; + } + text-align: center; + } + + .cluster rect { + fill: ${options.clusterBkg}; + stroke: ${options.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${options.titleColor}; + } + + .cluster span { + color: ${options.titleColor}; + } + /* .cluster div { + color: ${options.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${options.fontFamily}; + font-size: 12px; + background: ${options.tertiaryColor}; + border: 1px solid ${options.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.textColor}; + } + .subgraph { + stroke-width:2; + rx:3; + } + // .subgraph-lvl-1 { + // fill:#ccc; + // // stroke:black; + // } + + .flowchart-label text { + text-anchor: middle; + } + + ${genSections(options)} +`; +const styles = getStyles; +const diagram = { + db, + renderer, + parser, + styles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/flowchart-elk-definition-cf813a97.js b/assets/lib/mermaid/flowchart-elk-definition-cf813a97.js new file mode 100644 index 000000000..2a8300a3c --- /dev/null +++ b/assets/lib/mermaid/flowchart-elk-definition-cf813a97.js @@ -0,0 +1,48407 @@ +import { d as xNe, p as FNe } from "./flowDb-9a89ea33.js"; +import { P as Nse, Q as BNe, l as Ra, j as IO, _ as xU, t as RNe, o as E0n, q as j0n, n as $U, f as KNe } from "./mermaid-9f2aa176.js"; +import { a as _Ne, e as HNe, l as qNe, f as UNe, k as GNe, m as zNe } from "./edges-16357fde.js"; +import { l as XNe } from "./line-24d93f1b.js"; +import "./createText-03b82060.js"; +import "./array-2ff2c7a6.js"; +import "./path-428ebac9.js"; +const VNe = (ct, qt, Vt) => { + const { parentById: gt } = Vt, Rr = /* @__PURE__ */ new Set(); + let Jt = ct; + for (; Jt; ) { + if (Rr.add(Jt), Jt === qt) + return Jt; + Jt = gt[Jt]; + } + for (Jt = qt; Jt; ) { + if (Rr.has(Jt)) + return Jt; + Jt = gt[Jt]; + } + return "root"; +}; +function NU(ct) { + throw new Error('Could not dynamically require "' + ct + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); +} +var Bse = { exports: {} }; +(function(ct, qt) { + (function(Vt) { + ct.exports = Vt(); + })(function() { + return function() { + function Vt(gt, Rr, Jt) { + function y(Rt, Yt) { + if (!Rr[Rt]) { + if (!gt[Rt]) { + var Je = typeof NU == "function" && NU; + if (!Yt && Je) + return Je(Rt, !0); + if (Bt) + return Bt(Rt, !0); + var Si = new Error("Cannot find module '" + Rt + "'"); + throw Si.code = "MODULE_NOT_FOUND", Si; + } + var wr = Rr[Rt] = { exports: {} }; + gt[Rt][0].call(wr.exports, function(En) { + var jc = gt[Rt][1][En]; + return y(jc || En); + }, wr, wr.exports, Vt, gt, Rr, Jt); + } + return Rr[Rt].exports; + } + for (var Bt = typeof NU == "function" && NU, Qu = 0; Qu < Jt.length; Qu++) + y(Jt[Qu]); + return y; + } + return Vt; + }()({ 1: [function(Vt, gt, Rr) { + Object.defineProperty(Rr, "__esModule", { + value: !0 + }); + var Jt = function() { + function Rt(Yt, Je) { + for (var Si = 0; Si < Je.length; Si++) { + var wr = Je[Si]; + wr.enumerable = wr.enumerable || !1, wr.configurable = !0, "value" in wr && (wr.writable = !0), Object.defineProperty(Yt, wr.key, wr); + } + } + return function(Yt, Je, Si) { + return Je && Rt(Yt.prototype, Je), Si && Rt(Yt, Si), Yt; + }; + }(); + function y(Rt, Yt) { + if (!(Rt instanceof Yt)) + throw new TypeError("Cannot call a class as a function"); + } + var Bt = function() { + function Rt() { + var Yt = this, Je = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, Si = Je.defaultLayoutOptions, wr = Si === void 0 ? {} : Si, En = Je.algorithms, jc = En === void 0 ? ["layered", "stress", "mrtree", "radial", "force", "disco", "sporeOverlap", "sporeCompaction", "rectpacking"] : En, Fu = Je.workerFactory, so = Je.workerUrl; + if (y(this, Rt), this.defaultLayoutOptions = wr, this.initialized = !1, typeof so > "u" && typeof Fu > "u") + throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); + var ar = Fu; + typeof so < "u" && typeof Fu > "u" && (ar = function(Kl) { + return new Worker(Kl); + }); + var cl = ar(so); + if (typeof cl.postMessage != "function") + throw new TypeError("Created worker does not provide the required 'postMessage' function."); + this.worker = new Qu(cl), this.worker.postMessage({ + cmd: "register", + algorithms: jc + }).then(function(N1) { + return Yt.initialized = !0; + }).catch(console.err); + } + return Jt(Rt, [{ + key: "layout", + value: function(Je) { + var Si = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, wr = Si.layoutOptions, En = wr === void 0 ? this.defaultLayoutOptions : wr, jc = Si.logging, Fu = jc === void 0 ? !1 : jc, so = Si.measureExecutionTime, ar = so === void 0 ? !1 : so; + return Je ? this.worker.postMessage({ + cmd: "layout", + graph: Je, + layoutOptions: En, + options: { + logging: Fu, + measureExecutionTime: ar + } + }) : Promise.reject(new Error("Missing mandatory parameter 'graph'.")); + } + }, { + key: "knownLayoutAlgorithms", + value: function() { + return this.worker.postMessage({ cmd: "algorithms" }); + } + }, { + key: "knownLayoutOptions", + value: function() { + return this.worker.postMessage({ cmd: "options" }); + } + }, { + key: "knownLayoutCategories", + value: function() { + return this.worker.postMessage({ cmd: "categories" }); + } + }, { + key: "terminateWorker", + value: function() { + this.worker.terminate(); + } + }]), Rt; + }(); + Rr.default = Bt; + var Qu = function() { + function Rt(Yt) { + var Je = this; + if (y(this, Rt), Yt === void 0) + throw new Error("Missing mandatory parameter 'worker'."); + this.resolvers = {}, this.worker = Yt, this.worker.onmessage = function(Si) { + setTimeout(function() { + Je.receive(Je, Si); + }, 0); + }; + } + return Jt(Rt, [{ + key: "postMessage", + value: function(Je) { + var Si = this.id || 0; + this.id = Si + 1, Je.id = Si; + var wr = this; + return new Promise(function(En, jc) { + wr.resolvers[Si] = function(Fu, so) { + Fu ? (wr.convertGwtStyleError(Fu), jc(Fu)) : En(so); + }, wr.worker.postMessage(Je); + }); + } + }, { + key: "receive", + value: function(Je, Si) { + var wr = Si.data, En = Je.resolvers[wr.id]; + En && (delete Je.resolvers[wr.id], wr.error ? En(wr.error) : En(null, wr.data)); + } + }, { + key: "terminate", + value: function() { + this.worker.terminate && this.worker.terminate(); + } + }, { + key: "convertGwtStyleError", + value: function(Je) { + if (Je) { + var Si = Je.__java$exception; + Si && (Si.cause && Si.cause.backingJsObject && (Je.cause = Si.cause.backingJsObject, this.convertGwtStyleError(Je.cause)), delete Je.__java$exception); + } + } + }]), Rt; + }(); + }, {}], 2: [function(Vt, gt, Rr) { + (function(Jt) { + (function() { + var y; + typeof window < "u" ? y = window : typeof Jt < "u" ? y = Jt : typeof self < "u" && (y = self); + var Bt; + function Qu() { + } + function Rt() { + } + function Yt() { + } + function Je() { + } + function Si() { + } + function wr() { + } + function En() { + } + function jc() { + } + function Fu() { + } + function so() { + } + function ar() { + } + function cl() { + } + function N1() { + } + function Kl() { + } + function Ka() { + } + function Gv() { + } + function $1() { + } + function ul() { + } + function C0n() { + } + function M0n() { + } + function Q2() { + } + function F() { + } + function T0n() { + } + function mE() { + } + function A0n() { + } + function S0n() { + } + function P0n() { + } + function I0n() { + } + function O0n() { + } + function FU() { + } + function D0n() { + } + function L0n() { + } + function N0n() { + } + function OO() { + } + function $0n() { + } + function x0n() { + } + function F0n() { + } + function DO() { + } + function B0n() { + } + function R0n() { + } + function BU() { + } + function K0n() { + } + function _0n() { + } + function ku() { + } + function yu() { + } + function Y2() { + } + function Z2() { + } + function H0n() { + } + function q0n() { + } + function U0n() { + } + function G0n() { + } + function RU() { + } + function ju() { + } + function np() { + } + function ep() { + } + function z0n() { + } + function X0n() { + } + function LO() { + } + function V0n() { + } + function W0n() { + } + function J0n() { + } + function Q0n() { + } + function Y0n() { + } + function Z0n() { + } + function nbn() { + } + function ebn() { + } + function tbn() { + } + function ibn() { + } + function rbn() { + } + function cbn() { + } + function ubn() { + } + function obn() { + } + function sbn() { + } + function fbn() { + } + function hbn() { + } + function lbn() { + } + function abn() { + } + function dbn() { + } + function bbn() { + } + function wbn() { + } + function gbn() { + } + function pbn() { + } + function mbn() { + } + function vbn() { + } + function kbn() { + } + function ybn() { + } + function jbn() { + } + function Ebn() { + } + function Cbn() { + } + function Mbn() { + } + function Tbn() { + } + function KU() { + } + function Abn() { + } + function Sbn() { + } + function Pbn() { + } + function Ibn() { + } + function NO() { + } + function $O() { + } + function vE() { + } + function Obn() { + } + function Dbn() { + } + function xO() { + } + function Lbn() { + } + function Nbn() { + } + function $bn() { + } + function kE() { + } + function xbn() { + } + function Fbn() { + } + function Bbn() { + } + function Rbn() { + } + function Kbn() { + } + function _bn() { + } + function Hbn() { + } + function qbn() { + } + function Ubn() { + } + function _U() { + } + function Gbn() { + } + function zbn() { + } + function HU() { + } + function Xbn() { + } + function Vbn() { + } + function Wbn() { + } + function Jbn() { + } + function Qbn() { + } + function Ybn() { + } + function Zbn() { + } + function nwn() { + } + function ewn() { + } + function twn() { + } + function iwn() { + } + function rwn() { + } + function cwn() { + } + function FO() { + } + function uwn() { + } + function own() { + } + function swn() { + } + function fwn() { + } + function hwn() { + } + function lwn() { + } + function awn() { + } + function dwn() { + } + function bwn() { + } + function qU() { + } + function UU() { + } + function wwn() { + } + function gwn() { + } + function pwn() { + } + function mwn() { + } + function vwn() { + } + function kwn() { + } + function ywn() { + } + function jwn() { + } + function Ewn() { + } + function Cwn() { + } + function Mwn() { + } + function Twn() { + } + function Awn() { + } + function Swn() { + } + function Pwn() { + } + function Iwn() { + } + function Own() { + } + function Dwn() { + } + function Lwn() { + } + function Nwn() { + } + function $wn() { + } + function xwn() { + } + function Fwn() { + } + function Bwn() { + } + function Rwn() { + } + function Kwn() { + } + function _wn() { + } + function Hwn() { + } + function qwn() { + } + function Uwn() { + } + function Gwn() { + } + function zwn() { + } + function Xwn() { + } + function Vwn() { + } + function Wwn() { + } + function Jwn() { + } + function Qwn() { + } + function Ywn() { + } + function Zwn() { + } + function ngn() { + } + function egn() { + } + function tgn() { + } + function ign() { + } + function rgn() { + } + function cgn() { + } + function ugn() { + } + function ogn() { + } + function sgn() { + } + function fgn() { + } + function hgn() { + } + function lgn() { + } + function agn() { + } + function dgn() { + } + function bgn() { + } + function wgn() { + } + function ggn() { + } + function pgn() { + } + function mgn() { + } + function vgn() { + } + function kgn() { + } + function ygn() { + } + function jgn() { + } + function Egn() { + } + function Cgn() { + } + function Mgn() { + } + function Tgn() { + } + function Agn() { + } + function Sgn() { + } + function Pgn() { + } + function Ign() { + } + function Ogn() { + } + function Dgn() { + } + function Lgn() { + } + function Ngn() { + } + function $gn() { + } + function xgn() { + } + function Fgn() { + } + function Bgn() { + } + function Rgn() { + } + function Kgn() { + } + function _gn() { + } + function Hgn() { + } + function qgn() { + } + function Ugn() { + } + function Ggn() { + } + function zgn() { + } + function Xgn() { + } + function Vgn() { + } + function Wgn() { + } + function Jgn() { + } + function Qgn() { + } + function Ygn() { + } + function Zgn() { + } + function n2n() { + } + function e2n() { + } + function t2n() { + } + function i2n() { + } + function r2n() { + } + function c2n() { + } + function u2n() { + } + function GU() { + } + function o2n() { + } + function s2n() { + } + function f2n() { + } + function h2n() { + } + function l2n() { + } + function a2n() { + } + function d2n() { + } + function b2n() { + } + function w2n() { + } + function g2n() { + } + function p2n() { + } + function m2n() { + } + function v2n() { + } + function k2n() { + } + function y2n() { + } + function j2n() { + } + function E2n() { + } + function C2n() { + } + function M2n() { + } + function T2n() { + } + function A2n() { + } + function S2n() { + } + function P2n() { + } + function I2n() { + } + function O2n() { + } + function D2n() { + } + function L2n() { + } + function N2n() { + } + function $2n() { + } + function x2n() { + } + function F2n() { + } + function B2n() { + } + function R2n() { + } + function K2n() { + } + function _2n() { + } + function H2n() { + } + function q2n() { + } + function U2n() { + } + function G2n() { + } + function z2n() { + } + function X2n() { + } + function V2n() { + } + function W2n() { + } + function J2n() { + } + function Q2n() { + } + function Y2n() { + } + function Z2n() { + } + function npn() { + } + function epn() { + } + function tpn() { + } + function ipn() { + } + function rpn() { + } + function cpn() { + } + function upn() { + } + function opn() { + } + function spn() { + } + function fpn() { + } + function hpn() { + } + function lpn() { + } + function apn() { + } + function dpn() { + } + function bpn() { + } + function wpn() { + } + function gpn() { + } + function ppn() { + } + function mpn() { + } + function vpn() { + } + function kpn() { + } + function ypn() { + } + function jpn() { + } + function Epn() { + } + function Cpn() { + } + function Mpn() { + } + function zU() { + } + function Tpn() { + } + function Apn() { + } + function Spn() { + } + function Ppn() { + } + function Ipn() { + } + function Opn() { + } + function Dpn() { + } + function Lpn() { + } + function Npn() { + } + function $pn() { + } + function XU() { + } + function xpn() { + } + function Fpn() { + } + function Bpn() { + } + function Rpn() { + } + function Kpn() { + } + function _pn() { + } + function VU() { + } + function WU() { + } + function Hpn() { + } + function JU() { + } + function QU() { + } + function qpn() { + } + function Upn() { + } + function Gpn() { + } + function zpn() { + } + function Xpn() { + } + function Vpn() { + } + function Wpn() { + } + function Jpn() { + } + function Qpn() { + } + function Ypn() { + } + function Zpn() { + } + function YU() { + } + function n3n() { + } + function e3n() { + } + function t3n() { + } + function i3n() { + } + function r3n() { + } + function c3n() { + } + function u3n() { + } + function o3n() { + } + function s3n() { + } + function f3n() { + } + function h3n() { + } + function l3n() { + } + function a3n() { + } + function d3n() { + } + function b3n() { + } + function w3n() { + } + function g3n() { + } + function p3n() { + } + function m3n() { + } + function v3n() { + } + function k3n() { + } + function y3n() { + } + function j3n() { + } + function E3n() { + } + function C3n() { + } + function M3n() { + } + function T3n() { + } + function A3n() { + } + function S3n() { + } + function P3n() { + } + function I3n() { + } + function O3n() { + } + function D3n() { + } + function L3n() { + } + function N3n() { + } + function $3n() { + } + function x3n() { + } + function F3n() { + } + function B3n() { + } + function R3n() { + } + function K3n() { + } + function _3n() { + } + function H3n() { + } + function q3n() { + } + function U3n() { + } + function G3n() { + } + function z3n() { + } + function X3n() { + } + function V3n() { + } + function W3n() { + } + function J3n() { + } + function Q3n() { + } + function Y3n() { + } + function Z3n() { + } + function n4n() { + } + function e4n() { + } + function t4n() { + } + function i4n() { + } + function r4n() { + } + function c4n() { + } + function u4n() { + } + function o4n() { + } + function s4n() { + } + function f4n() { + } + function h4n() { + } + function l4n() { + } + function a4n() { + } + function d4n() { + } + function b4n() { + } + function w4n() { + } + function g4n() { + } + function p4n() { + } + function m4n() { + } + function v4n() { + } + function k4n() { + } + function y4n() { + } + function j4n() { + } + function E4n() { + } + function C4n() { + } + function M4n() { + } + function T4n() { + } + function A4n() { + } + function S4n() { + } + function P4n() { + } + function I4n() { + } + function O4n() { + } + function _se() { + } + function D4n() { + } + function L4n() { + } + function N4n() { + } + function $4n() { + } + function x4n() { + } + function F4n() { + } + function B4n() { + } + function R4n() { + } + function K4n() { + } + function _4n() { + } + function H4n() { + } + function q4n() { + } + function U4n() { + } + function G4n() { + } + function z4n() { + } + function X4n() { + } + function V4n() { + } + function W4n() { + } + function J4n() { + } + function Q4n() { + } + function Y4n() { + } + function Z4n() { + } + function nmn() { + } + function emn() { + } + function tmn() { + } + function imn() { + } + function rmn() { + } + function BO() { + } + function RO() { + } + function cmn() { + } + function KO() { + } + function umn() { + } + function omn() { + } + function smn() { + } + function fmn() { + } + function hmn() { + } + function lmn() { + } + function amn() { + } + function dmn() { + } + function bmn() { + } + function wmn() { + } + function ZU() { + } + function gmn() { + } + function pmn() { + } + function mmn() { + } + function Hse() { + } + function vmn() { + } + function kmn() { + } + function ymn() { + } + function jmn() { + } + function Emn() { + } + function Cmn() { + } + function Mmn() { + } + function _a() { + } + function Tmn() { + } + function tp() { + } + function nG() { + } + function Amn() { + } + function Smn() { + } + function Pmn() { + } + function Imn() { + } + function Omn() { + } + function Dmn() { + } + function Lmn() { + } + function Nmn() { + } + function $mn() { + } + function xmn() { + } + function Fmn() { + } + function Bmn() { + } + function Rmn() { + } + function Kmn() { + } + function _mn() { + } + function Hmn() { + } + function qmn() { + } + function Umn() { + } + function Gmn() { + } + function hn() { + } + function zmn() { + } + function Xmn() { + } + function Vmn() { + } + function Wmn() { + } + function Jmn() { + } + function Qmn() { + } + function Ymn() { + } + function Zmn() { + } + function nvn() { + } + function evn() { + } + function tvn() { + } + function ivn() { + } + function rvn() { + } + function _O() { + } + function cvn() { + } + function uvn() { + } + function ovn() { + } + function yE() { + } + function svn() { + } + function HO() { + } + function jE() { + } + function fvn() { + } + function eG() { + } + function hvn() { + } + function lvn() { + } + function avn() { + } + function dvn() { + } + function bvn() { + } + function wvn() { + } + function EE() { + } + function gvn() { + } + function pvn() { + } + function CE() { + } + function mvn() { + } + function ME() { + } + function vvn() { + } + function tG() { + } + function kvn() { + } + function qO() { + } + function iG() { + } + function yvn() { + } + function jvn() { + } + function Evn() { + } + function Cvn() { + } + function qse() { + } + function Mvn() { + } + function Tvn() { + } + function Avn() { + } + function Svn() { + } + function Pvn() { + } + function Ivn() { + } + function Ovn() { + } + function Dvn() { + } + function Lvn() { + } + function Nvn() { + } + function V3() { + } + function UO() { + } + function $vn() { + } + function xvn() { + } + function Fvn() { + } + function Bvn() { + } + function Rvn() { + } + function Kvn() { + } + function _vn() { + } + function Hvn() { + } + function qvn() { + } + function Uvn() { + } + function Gvn() { + } + function zvn() { + } + function Xvn() { + } + function Vvn() { + } + function Wvn() { + } + function Jvn() { + } + function Qvn() { + } + function Yvn() { + } + function Zvn() { + } + function n6n() { + } + function e6n() { + } + function t6n() { + } + function i6n() { + } + function r6n() { + } + function c6n() { + } + function u6n() { + } + function o6n() { + } + function s6n() { + } + function f6n() { + } + function h6n() { + } + function l6n() { + } + function a6n() { + } + function d6n() { + } + function b6n() { + } + function w6n() { + } + function g6n() { + } + function p6n() { + } + function m6n() { + } + function v6n() { + } + function k6n() { + } + function y6n() { + } + function j6n() { + } + function E6n() { + } + function C6n() { + } + function M6n() { + } + function T6n() { + } + function A6n() { + } + function S6n() { + } + function P6n() { + } + function I6n() { + } + function O6n() { + } + function D6n() { + } + function L6n() { + } + function N6n() { + } + function $6n() { + } + function x6n() { + } + function F6n() { + } + function B6n() { + } + function R6n() { + } + function K6n() { + } + function _6n() { + } + function H6n() { + } + function q6n() { + } + function U6n() { + } + function G6n() { + } + function z6n() { + } + function X6n() { + } + function V6n() { + } + function W6n() { + } + function J6n() { + } + function Q6n() { + } + function Y6n() { + } + function Z6n() { + } + function n5n() { + } + function e5n() { + } + function t5n() { + } + function i5n() { + } + function r5n() { + } + function c5n() { + } + function u5n() { + } + function o5n() { + } + function s5n() { + } + function f5n() { + } + function h5n() { + } + function l5n() { + } + function a5n() { + } + function d5n() { + } + function b5n() { + } + function w5n() { + } + function g5n() { + } + function p5n() { + } + function m5n() { + } + function v5n() { + } + function k5n() { + } + function y5n() { + } + function j5n() { + } + function E5n() { + } + function C5n() { + } + function M5n() { + } + function T5n() { + } + function A5n() { + } + function rG() { + } + function S5n() { + } + function P5n() { + } + function GO() { + Zv(); + } + function I5n() { + r7(); + } + function O5n() { + aA(); + } + function D5n() { + Q$(); + } + function L5n() { + C5(); + } + function N5n() { + ann(); + } + function $5n() { + Us(); + } + function x5n() { + jZ(); + } + function F5n() { + Uk(); + } + function B5n() { + c7(); + } + function R5n() { + L7(); + } + function K5n() { + aCn(); + } + function _5n() { + Hp(); + } + function H5n() { + KLn(); + } + function q5n() { + yQ(); + } + function U5n() { + SOn(); + } + function G5n() { + jQ(); + } + function z5n() { + pNn(); + } + function X5n() { + AOn(); + } + function V5n() { + rm(); + } + function W5n() { + nxn(); + } + function J5n() { + Z$n(); + } + function Q5n() { + EDn(); + } + function Y5n() { + exn(); + } + function Z5n() { + ua(); + } + function n8n() { + ZE(); + } + function e8n() { + ltn(); + } + function t8n() { + cn(); + } + function i8n() { + txn(); + } + function r8n() { + Pxn(); + } + function c8n() { + POn(); + } + function u8n() { + nKn(); + } + function o8n() { + IOn(); + } + function s8n() { + bUn(); + } + function f8n() { + qnn(); + } + function h8n() { + kl(); + } + function l8n() { + wBn(); + } + function a8n() { + lc(); + } + function d8n() { + ROn(); + } + function b8n() { + _p(); + } + function w8n() { + Men(); + } + function g8n() { + oa(); + } + function p8n() { + Ten(); + } + function m8n() { + Bf(); + } + function v8n() { + Wk(); + } + function k8n() { + EF(); + } + function y8n() { + Dx(); + } + function uf() { + wSn(); + } + function j8n() { + YM(); + } + function E8n() { + mA(); + } + function cG() { + He(); + } + function C8n() { + NT(); + } + function M8n() { + YY(); + } + function uG() { + D$(); + } + function oG() { + KA(); + } + function T8n() { + Fen(); + } + function sG(n) { + Jn(n); + } + function A8n(n) { + this.a = n; + } + function TE(n) { + this.a = n; + } + function S8n(n) { + this.a = n; + } + function P8n(n) { + this.a = n; + } + function I8n(n) { + this.a = n; + } + function O8n(n) { + this.a = n; + } + function D8n(n) { + this.a = n; + } + function L8n(n) { + this.a = n; + } + function fG(n) { + this.a = n; + } + function hG(n) { + this.a = n; + } + function N8n(n) { + this.a = n; + } + function $8n(n) { + this.a = n; + } + function zO(n) { + this.a = n; + } + function x8n(n) { + this.a = n; + } + function F8n(n) { + this.a = n; + } + function XO(n) { + this.a = n; + } + function VO(n) { + this.a = n; + } + function B8n(n) { + this.a = n; + } + function WO(n) { + this.a = n; + } + function R8n(n) { + this.a = n; + } + function K8n(n) { + this.a = n; + } + function _8n(n) { + this.a = n; + } + function lG(n) { + this.b = n; + } + function H8n(n) { + this.c = n; + } + function q8n(n) { + this.a = n; + } + function U8n(n) { + this.a = n; + } + function G8n(n) { + this.a = n; + } + function z8n(n) { + this.a = n; + } + function X8n(n) { + this.a = n; + } + function V8n(n) { + this.a = n; + } + function W8n(n) { + this.a = n; + } + function J8n(n) { + this.a = n; + } + function Q8n(n) { + this.a = n; + } + function Y8n(n) { + this.a = n; + } + function Z8n(n) { + this.a = n; + } + function n9n(n) { + this.a = n; + } + function e9n(n) { + this.a = n; + } + function aG(n) { + this.a = n; + } + function dG(n) { + this.a = n; + } + function AE(n) { + this.a = n; + } + function U9(n) { + this.a = n; + } + function Ha() { + this.a = []; + } + function t9n(n, e) { + n.a = e; + } + function Use(n, e) { + n.a = e; + } + function Gse(n, e) { + n.b = e; + } + function zse(n, e) { + n.b = e; + } + function Xse(n, e) { + n.b = e; + } + function bG(n, e) { + n.j = e; + } + function Vse(n, e) { + n.g = e; + } + function Wse(n, e) { + n.i = e; + } + function Jse(n, e) { + n.c = e; + } + function Qse(n, e) { + n.c = e; + } + function Yse(n, e) { + n.d = e; + } + function Zse(n, e) { + n.d = e; + } + function qa(n, e) { + n.k = e; + } + function nfe(n, e) { + n.c = e; + } + function wG(n, e) { + n.c = e; + } + function gG(n, e) { + n.a = e; + } + function efe(n, e) { + n.a = e; + } + function tfe(n, e) { + n.f = e; + } + function ife(n, e) { + n.a = e; + } + function rfe(n, e) { + n.b = e; + } + function JO(n, e) { + n.d = e; + } + function SE(n, e) { + n.i = e; + } + function pG(n, e) { + n.o = e; + } + function cfe(n, e) { + n.r = e; + } + function ufe(n, e) { + n.a = e; + } + function ofe(n, e) { + n.b = e; + } + function i9n(n, e) { + n.e = e; + } + function sfe(n, e) { + n.f = e; + } + function mG(n, e) { + n.g = e; + } + function ffe(n, e) { + n.e = e; + } + function hfe(n, e) { + n.f = e; + } + function lfe(n, e) { + n.f = e; + } + function QO(n, e) { + n.a = e; + } + function YO(n, e) { + n.b = e; + } + function afe(n, e) { + n.n = e; + } + function dfe(n, e) { + n.a = e; + } + function bfe(n, e) { + n.c = e; + } + function wfe(n, e) { + n.c = e; + } + function gfe(n, e) { + n.c = e; + } + function pfe(n, e) { + n.a = e; + } + function mfe(n, e) { + n.a = e; + } + function vfe(n, e) { + n.d = e; + } + function kfe(n, e) { + n.d = e; + } + function yfe(n, e) { + n.e = e; + } + function jfe(n, e) { + n.e = e; + } + function Efe(n, e) { + n.g = e; + } + function Cfe(n, e) { + n.f = e; + } + function Mfe(n, e) { + n.j = e; + } + function Tfe(n, e) { + n.a = e; + } + function Afe(n, e) { + n.a = e; + } + function Sfe(n, e) { + n.b = e; + } + function r9n(n) { + n.b = n.a; + } + function c9n(n) { + n.c = n.d.d; + } + function vG(n) { + this.a = n; + } + function kG(n) { + this.a = n; + } + function yG(n) { + this.a = n; + } + function Ua(n) { + this.a = n; + } + function Ga(n) { + this.a = n; + } + function G9(n) { + this.a = n; + } + function u9n(n) { + this.a = n; + } + function jG(n) { + this.a = n; + } + function z9(n) { + this.a = n; + } + function PE(n) { + this.a = n; + } + function ol(n) { + this.a = n; + } + function Pb(n) { + this.a = n; + } + function o9n(n) { + this.a = n; + } + function s9n(n) { + this.a = n; + } + function ZO(n) { + this.b = n; + } + function W3(n) { + this.b = n; + } + function J3(n) { + this.b = n; + } + function nD(n) { + this.a = n; + } + function f9n(n) { + this.a = n; + } + function eD(n) { + this.c = n; + } + function C(n) { + this.c = n; + } + function h9n(n) { + this.c = n; + } + function zv(n) { + this.d = n; + } + function EG(n) { + this.a = n; + } + function Te(n) { + this.a = n; + } + function l9n(n) { + this.a = n; + } + function CG(n) { + this.a = n; + } + function MG(n) { + this.a = n; + } + function TG(n) { + this.a = n; + } + function AG(n) { + this.a = n; + } + function SG(n) { + this.a = n; + } + function PG(n) { + this.a = n; + } + function Q3(n) { + this.a = n; + } + function a9n(n) { + this.a = n; + } + function d9n(n) { + this.a = n; + } + function Y3(n) { + this.a = n; + } + function b9n(n) { + this.a = n; + } + function w9n(n) { + this.a = n; + } + function g9n(n) { + this.a = n; + } + function p9n(n) { + this.a = n; + } + function m9n(n) { + this.a = n; + } + function v9n(n) { + this.a = n; + } + function k9n(n) { + this.a = n; + } + function y9n(n) { + this.a = n; + } + function j9n(n) { + this.a = n; + } + function E9n(n) { + this.a = n; + } + function C9n(n) { + this.a = n; + } + function M9n(n) { + this.a = n; + } + function T9n(n) { + this.a = n; + } + function A9n(n) { + this.a = n; + } + function S9n(n) { + this.a = n; + } + function Xv(n) { + this.a = n; + } + function P9n(n) { + this.a = n; + } + function I9n(n) { + this.a = n; + } + function O9n(n) { + this.a = n; + } + function D9n(n) { + this.a = n; + } + function IE(n) { + this.a = n; + } + function L9n(n) { + this.a = n; + } + function N9n(n) { + this.a = n; + } + function Z3(n) { + this.a = n; + } + function IG(n) { + this.a = n; + } + function $9n(n) { + this.a = n; + } + function x9n(n) { + this.a = n; + } + function F9n(n) { + this.a = n; + } + function B9n(n) { + this.a = n; + } + function R9n(n) { + this.a = n; + } + function K9n(n) { + this.a = n; + } + function OG(n) { + this.a = n; + } + function DG(n) { + this.a = n; + } + function LG(n) { + this.a = n; + } + function Vv(n) { + this.a = n; + } + function OE(n) { + this.e = n; + } + function n4(n) { + this.a = n; + } + function _9n(n) { + this.a = n; + } + function ip(n) { + this.a = n; + } + function NG(n) { + this.a = n; + } + function H9n(n) { + this.a = n; + } + function q9n(n) { + this.a = n; + } + function U9n(n) { + this.a = n; + } + function G9n(n) { + this.a = n; + } + function z9n(n) { + this.a = n; + } + function X9n(n) { + this.a = n; + } + function V9n(n) { + this.a = n; + } + function W9n(n) { + this.a = n; + } + function J9n(n) { + this.a = n; + } + function Q9n(n) { + this.a = n; + } + function Y9n(n) { + this.a = n; + } + function $G(n) { + this.a = n; + } + function Z9n(n) { + this.a = n; + } + function n7n(n) { + this.a = n; + } + function e7n(n) { + this.a = n; + } + function t7n(n) { + this.a = n; + } + function i7n(n) { + this.a = n; + } + function r7n(n) { + this.a = n; + } + function c7n(n) { + this.a = n; + } + function u7n(n) { + this.a = n; + } + function o7n(n) { + this.a = n; + } + function s7n(n) { + this.a = n; + } + function f7n(n) { + this.a = n; + } + function h7n(n) { + this.a = n; + } + function l7n(n) { + this.a = n; + } + function a7n(n) { + this.a = n; + } + function d7n(n) { + this.a = n; + } + function b7n(n) { + this.a = n; + } + function w7n(n) { + this.a = n; + } + function g7n(n) { + this.a = n; + } + function p7n(n) { + this.a = n; + } + function m7n(n) { + this.a = n; + } + function v7n(n) { + this.a = n; + } + function k7n(n) { + this.a = n; + } + function y7n(n) { + this.a = n; + } + function j7n(n) { + this.a = n; + } + function E7n(n) { + this.a = n; + } + function C7n(n) { + this.a = n; + } + function M7n(n) { + this.a = n; + } + function T7n(n) { + this.a = n; + } + function A7n(n) { + this.a = n; + } + function S7n(n) { + this.a = n; + } + function P7n(n) { + this.a = n; + } + function I7n(n) { + this.a = n; + } + function O7n(n) { + this.a = n; + } + function D7n(n) { + this.a = n; + } + function L7n(n) { + this.a = n; + } + function N7n(n) { + this.a = n; + } + function $7n(n) { + this.a = n; + } + function x7n(n) { + this.a = n; + } + function F7n(n) { + this.c = n; + } + function B7n(n) { + this.b = n; + } + function R7n(n) { + this.a = n; + } + function K7n(n) { + this.a = n; + } + function _7n(n) { + this.a = n; + } + function H7n(n) { + this.a = n; + } + function q7n(n) { + this.a = n; + } + function U7n(n) { + this.a = n; + } + function G7n(n) { + this.a = n; + } + function z7n(n) { + this.a = n; + } + function X7n(n) { + this.a = n; + } + function V7n(n) { + this.a = n; + } + function W7n(n) { + this.a = n; + } + function J7n(n) { + this.a = n; + } + function Q7n(n) { + this.a = n; + } + function Y7n(n) { + this.a = n; + } + function Z7n(n) { + this.a = n; + } + function nkn(n) { + this.a = n; + } + function ekn(n) { + this.a = n; + } + function tkn(n) { + this.a = n; + } + function ikn(n) { + this.a = n; + } + function rkn(n) { + this.a = n; + } + function ckn(n) { + this.a = n; + } + function ukn(n) { + this.a = n; + } + function okn(n) { + this.a = n; + } + function skn(n) { + this.a = n; + } + function fkn(n) { + this.a = n; + } + function hkn(n) { + this.a = n; + } + function lkn(n) { + this.a = n; + } + function sl(n) { + this.a = n; + } + function sg(n) { + this.a = n; + } + function akn(n) { + this.a = n; + } + function dkn(n) { + this.a = n; + } + function bkn(n) { + this.a = n; + } + function wkn(n) { + this.a = n; + } + function gkn(n) { + this.a = n; + } + function pkn(n) { + this.a = n; + } + function mkn(n) { + this.a = n; + } + function vkn(n) { + this.a = n; + } + function kkn(n) { + this.a = n; + } + function ykn(n) { + this.a = n; + } + function jkn(n) { + this.a = n; + } + function Ekn(n) { + this.a = n; + } + function Ckn(n) { + this.a = n; + } + function Mkn(n) { + this.a = n; + } + function Tkn(n) { + this.a = n; + } + function Akn(n) { + this.a = n; + } + function Skn(n) { + this.a = n; + } + function Pkn(n) { + this.a = n; + } + function Ikn(n) { + this.a = n; + } + function Okn(n) { + this.a = n; + } + function Dkn(n) { + this.a = n; + } + function Lkn(n) { + this.a = n; + } + function Nkn(n) { + this.a = n; + } + function $kn(n) { + this.a = n; + } + function xkn(n) { + this.a = n; + } + function Fkn(n) { + this.a = n; + } + function DE(n) { + this.a = n; + } + function Bkn(n) { + this.f = n; + } + function Rkn(n) { + this.a = n; + } + function Kkn(n) { + this.a = n; + } + function _kn(n) { + this.a = n; + } + function Hkn(n) { + this.a = n; + } + function qkn(n) { + this.a = n; + } + function Ukn(n) { + this.a = n; + } + function Gkn(n) { + this.a = n; + } + function zkn(n) { + this.a = n; + } + function Xkn(n) { + this.a = n; + } + function Vkn(n) { + this.a = n; + } + function Wkn(n) { + this.a = n; + } + function Jkn(n) { + this.a = n; + } + function Qkn(n) { + this.a = n; + } + function Ykn(n) { + this.a = n; + } + function Zkn(n) { + this.a = n; + } + function nyn(n) { + this.a = n; + } + function eyn(n) { + this.a = n; + } + function tyn(n) { + this.a = n; + } + function iyn(n) { + this.a = n; + } + function ryn(n) { + this.a = n; + } + function cyn(n) { + this.a = n; + } + function uyn(n) { + this.a = n; + } + function oyn(n) { + this.a = n; + } + function syn(n) { + this.a = n; + } + function fyn(n) { + this.a = n; + } + function hyn(n) { + this.a = n; + } + function lyn(n) { + this.a = n; + } + function ayn(n) { + this.a = n; + } + function tD(n) { + this.a = n; + } + function xG(n) { + this.a = n; + } + function lt(n) { + this.b = n; + } + function dyn(n) { + this.a = n; + } + function byn(n) { + this.a = n; + } + function wyn(n) { + this.a = n; + } + function gyn(n) { + this.a = n; + } + function pyn(n) { + this.a = n; + } + function myn(n) { + this.a = n; + } + function vyn(n) { + this.a = n; + } + function kyn(n) { + this.b = n; + } + function yyn(n) { + this.a = n; + } + function X9(n) { + this.a = n; + } + function jyn(n) { + this.a = n; + } + function Eyn(n) { + this.a = n; + } + function FG(n) { + this.c = n; + } + function LE(n) { + this.e = n; + } + function NE(n) { + this.a = n; + } + function $E(n) { + this.a = n; + } + function iD(n) { + this.a = n; + } + function Cyn(n) { + this.d = n; + } + function Myn(n) { + this.a = n; + } + function BG(n) { + this.a = n; + } + function RG(n) { + this.a = n; + } + function Jd(n) { + this.e = n; + } + function Pfe() { + this.a = 0; + } + function de() { + Ku(this); + } + function Z() { + pL(this); + } + function rD() { + sIn(this); + } + function Tyn() { + } + function Qd() { + this.c = Gdn; + } + function Ayn(n, e) { + n.b += e; + } + function Ife(n, e) { + e.Wb(n); + } + function Ofe(n) { + return n.a; + } + function Dfe(n) { + return n.a; + } + function Lfe(n) { + return n.a; + } + function Nfe(n) { + return n.a; + } + function $fe(n) { + return n.a; + } + function M(n) { + return n.e; + } + function xfe() { + return null; + } + function Ffe() { + return null; + } + function Bfe() { + Cz(), pLe(); + } + function Rfe(n) { + n.b.Of(n.e); + } + function Syn(n) { + n.b = new CD(); + } + function Wv(n, e) { + n.b = e - n.b; + } + function Jv(n, e) { + n.a = e - n.a; + } + function Kn(n, e) { + n.push(e); + } + function Pyn(n, e) { + n.sort(e); + } + function Iyn(n, e) { + e.jd(n.a); + } + function Kfe(n, e) { + pi(e, n); + } + function _fe(n, e, t) { + n.Yd(t, e); + } + function V9(n, e) { + n.e = e, e.b = n; + } + function KG(n) { + uh(), this.a = n; + } + function Oyn(n) { + uh(), this.a = n; + } + function Dyn(n) { + uh(), this.a = n; + } + function cD(n) { + v0(), this.a = n; + } + function Lyn(n) { + I4(), VK.le(n); + } + function _G() { + _G = F, new de(); + } + function za() { + YTn.call(this); + } + function HG() { + YTn.call(this); + } + function qG() { + za.call(this); + } + function uD() { + za.call(this); + } + function Nyn() { + za.call(this); + } + function W9() { + za.call(this); + } + function Eu() { + za.call(this); + } + function rp() { + za.call(this); + } + function Pe() { + za.call(this); + } + function Bo() { + za.call(this); + } + function $yn() { + za.call(this); + } + function nc() { + za.call(this); + } + function xyn() { + za.call(this); + } + function Fyn() { + this.a = this; + } + function xE() { + this.Bb |= 256; + } + function Byn() { + this.b = new GMn(); + } + function Ib(n, e) { + n.length = e; + } + function FE(n, e) { + nn(n.a, e); + } + function Hfe(n, e) { + bnn(n.c, e); + } + function qfe(n, e) { + hi(n.b, e); + } + function Ufe(n, e) { + uA(n.a, e); + } + function Gfe(n, e) { + cx(n.a, e); + } + function e4(n, e) { + it(n.e, e); + } + function cp(n) { + jA(n.c, n.b); + } + function zfe(n, e) { + n.kc().Nb(e); + } + function UG(n) { + this.a = B5e(n); + } + function ei() { + this.a = new de(); + } + function Ryn() { + this.a = new de(); + } + function GG() { + this.a = new rCn(); + } + function BE() { + this.a = new Z(); + } + function oD() { + this.a = new Z(); + } + function zG() { + this.a = new Z(); + } + function hs() { + this.a = new cbn(); + } + function Xa() { + this.a = new NLn(); + } + function XG() { + this.a = new _U(); + } + function VG() { + this.a = new TOn(); + } + function WG() { + this.a = new BAn(); + } + function Kyn() { + this.a = new Z(); + } + function _yn() { + this.a = new Z(); + } + function Hyn() { + this.a = new Z(); + } + function JG() { + this.a = new Z(); + } + function qyn() { + this.d = new Z(); + } + function Uyn() { + this.a = new zOn(); + } + function Gyn() { + this.a = new ei(); + } + function zyn() { + this.a = new de(); + } + function Xyn() { + this.b = new de(); + } + function Vyn() { + this.b = new Z(); + } + function QG() { + this.e = new Z(); + } + function Wyn() { + this.a = new Z5n(); + } + function Jyn() { + this.d = new Z(); + } + function Qyn() { + QIn.call(this); + } + function Yyn() { + QIn.call(this); + } + function Zyn() { + Z.call(this); + } + function YG() { + qG.call(this); + } + function ZG() { + BE.call(this); + } + function njn() { + qC.call(this); + } + function ejn() { + JG.call(this); + } + function Qv() { + Tyn.call(this); + } + function sD() { + Qv.call(this); + } + function up() { + Tyn.call(this); + } + function nz() { + up.call(this); + } + function tjn() { + rz.call(this); + } + function ijn() { + rz.call(this); + } + function rjn() { + rz.call(this); + } + function cjn() { + cz.call(this); + } + function Yv() { + svn.call(this); + } + function ez() { + svn.call(this); + } + function Cu() { + Ct.call(this); + } + function ujn() { + yjn.call(this); + } + function ojn() { + yjn.call(this); + } + function sjn() { + de.call(this); + } + function fjn() { + de.call(this); + } + function hjn() { + de.call(this); + } + function fD() { + cxn.call(this); + } + function ljn() { + ei.call(this); + } + function ajn() { + xE.call(this); + } + function hD() { + BX.call(this); + } + function tz() { + de.call(this); + } + function lD() { + BX.call(this); + } + function aD() { + de.call(this); + } + function djn() { + de.call(this); + } + function iz() { + ME.call(this); + } + function bjn() { + iz.call(this); + } + function wjn() { + ME.call(this); + } + function gjn() { + rG.call(this); + } + function rz() { + this.a = new ei(); + } + function pjn() { + this.a = new de(); + } + function mjn() { + this.a = new Z(); + } + function cz() { + this.a = new de(); + } + function op() { + this.a = new Ct(); + } + function vjn() { + this.j = new Z(); + } + function kjn() { + this.a = new mEn(); + } + function yjn() { + this.a = new mvn(); + } + function uz() { + this.a = new Z4n(); + } + function Zv() { + Zv = F, KK = new Rt(); + } + function dD() { + dD = F, _K = new Ejn(); + } + function bD() { + bD = F, HK = new jjn(); + } + function jjn() { + XO.call(this, ""); + } + function Ejn() { + XO.call(this, ""); + } + function Cjn(n) { + S$n.call(this, n); + } + function Mjn(n) { + S$n.call(this, n); + } + function oz(n) { + fG.call(this, n); + } + function sz(n) { + XEn.call(this, n); + } + function Xfe(n) { + XEn.call(this, n); + } + function Vfe(n) { + sz.call(this, n); + } + function Wfe(n) { + sz.call(this, n); + } + function Jfe(n) { + sz.call(this, n); + } + function Tjn(n) { + zN.call(this, n); + } + function Ajn(n) { + zN.call(this, n); + } + function Sjn(n) { + uSn.call(this, n); + } + function Pjn(n) { + Oz.call(this, n); + } + function n6(n) { + WE.call(this, n); + } + function fz(n) { + WE.call(this, n); + } + function Ijn(n) { + WE.call(this, n); + } + function hz(n) { + mje.call(this, n); + } + function lz(n) { + hz.call(this, n); + } + function ec(n) { + APn.call(this, n); + } + function Ojn(n) { + ec.call(this, n); + } + function sp() { + U9.call(this, {}); + } + function Djn() { + Djn = F, dQn = new M0n(); + } + function RE() { + RE = F, GK = new STn(); + } + function Ljn() { + Ljn = F, oun = new Qu(); + } + function az() { + az = F, sun = new Kl(); + } + function KE() { + KE = F, T8 = new $1(); + } + function wD(n) { + d4(), this.a = n; + } + function gD(n) { + RQ(), this.a = n; + } + function Yd(n) { + nN(), this.f = n; + } + function pD(n) { + nN(), this.f = n; + } + function Njn(n) { + bSn(), this.a = n; + } + function $jn(n) { + n.b = null, n.c = 0; + } + function Qfe(n, e) { + n.e = e, bqn(n, e); + } + function Yfe(n, e) { + n.a = e, cEe(n); + } + function mD(n, e, t) { + n.a[e.g] = t; + } + function Zfe(n, e, t) { + kke(t, n, e); + } + function nhe(n, e) { + Wae(e.i, n.n); + } + function xjn(n, e) { + v6e(n).Cd(e); + } + function ehe(n, e) { + n.a.ec().Mc(e); + } + function Fjn(n, e) { + return n.g - e.g; + } + function the(n, e) { + return n * n / e; + } + function on(n) { + return Jn(n), n; + } + function $(n) { + return Jn(n), n; + } + function J9(n) { + return Jn(n), n; + } + function ihe(n) { + return new AE(n); + } + function rhe(n) { + return new Ub(n); + } + function dz(n) { + return Jn(n), n; + } + function che(n) { + return Jn(n), n; + } + function _E(n) { + ec.call(this, n); + } + function Pr(n) { + ec.call(this, n); + } + function Bjn(n) { + ec.call(this, n); + } + function vD(n) { + APn.call(this, n); + } + function t4(n) { + ec.call(this, n); + } + function Gn(n) { + ec.call(this, n); + } + function Ir(n) { + ec.call(this, n); + } + function Rjn(n) { + ec.call(this, n); + } + function fp(n) { + ec.call(this, n); + } + function _l(n) { + ec.call(this, n); + } + function Hl(n) { + ec.call(this, n); + } + function hp(n) { + ec.call(this, n); + } + function nh(n) { + ec.call(this, n); + } + function kD(n) { + ec.call(this, n); + } + function Le(n) { + ec.call(this, n); + } + function Bu(n) { + Jn(n), this.a = n; + } + function bz(n) { + return ad(n), n; + } + function e6(n) { + TW(n, n.length); + } + function t6(n) { + return n.b == n.c; + } + function Ob(n) { + return !!n && n.b; + } + function uhe(n) { + return !!n && n.k; + } + function ohe(n) { + return !!n && n.j; + } + function she(n, e, t) { + n.c.Ef(e, t); + } + function Kjn(n, e) { + n.be(e), e.ae(n); + } + function lp(n) { + uh(), this.a = Se(n); + } + function yD() { + this.a = Oe(Se(cr)); + } + function _jn() { + throw M(new Pe()); + } + function fhe() { + throw M(new Pe()); + } + function wz() { + throw M(new Pe()); + } + function Hjn() { + throw M(new Pe()); + } + function hhe() { + throw M(new Pe()); + } + function lhe() { + throw M(new Pe()); + } + function HE() { + HE = F, I4(); + } + function ql() { + G9.call(this, ""); + } + function i6() { + G9.call(this, ""); + } + function x1() { + G9.call(this, ""); + } + function fg() { + G9.call(this, ""); + } + function gz(n) { + Pr.call(this, n); + } + function pz(n) { + Pr.call(this, n); + } + function eh(n) { + Gn.call(this, n); + } + function i4(n) { + J3.call(this, n); + } + function qjn(n) { + i4.call(this, n); + } + function jD(n) { + BC.call(this, n); + } + function ED(n) { + JX.call(this, n, 0); + } + function CD() { + sJ.call(this, 12, 3); + } + function T(n, e) { + return kOn(n, e); + } + function qE(n, e) { + return o$(n, e); + } + function ahe(n, e) { + return n.a - e.a; + } + function dhe(n, e) { + return n.a - e.a; + } + function bhe(n, e) { + return n.a - e.a; + } + function whe(n, e) { + return e in n.a; + } + function Ujn(n) { + return n.a ? n.b : 0; + } + function ghe(n) { + return n.a ? n.b : 0; + } + function phe(n, e, t) { + e.Cd(n.a[t]); + } + function mhe(n, e, t) { + e.Pe(n.a[t]); + } + function vhe(n, e) { + n.b = new ir(e); + } + function khe(n, e) { + return n.b = e, n; + } + function Gjn(n, e) { + return n.c = e, n; + } + function zjn(n, e) { + return n.f = e, n; + } + function yhe(n, e) { + return n.g = e, n; + } + function mz(n, e) { + return n.a = e, n; + } + function vz(n, e) { + return n.f = e, n; + } + function jhe(n, e) { + return n.k = e, n; + } + function kz(n, e) { + return n.a = e, n; + } + function Ehe(n, e) { + return n.e = e, n; + } + function yz(n, e) { + return n.e = e, n; + } + function Che(n, e) { + return n.f = e, n; + } + function Mhe(n, e) { + n.b = !0, n.d = e; + } + function The(n, e) { + return n.b - e.b; + } + function Ahe(n, e) { + return n.g - e.g; + } + function She(n, e) { + return n ? 0 : e - 1; + } + function Xjn(n, e) { + return n ? 0 : e - 1; + } + function Phe(n, e) { + return n ? e - 1 : 0; + } + function Ihe(n, e) { + return n.s - e.s; + } + function Ohe(n, e) { + return e.rg(n); + } + function Zd(n, e) { + return n.b = e, n; + } + function UE(n, e) { + return n.a = e, n; + } + function n0(n, e) { + return n.c = e, n; + } + function e0(n, e) { + return n.d = e, n; + } + function t0(n, e) { + return n.e = e, n; + } + function jz(n, e) { + return n.f = e, n; + } + function r6(n, e) { + return n.a = e, n; + } + function r4(n, e) { + return n.b = e, n; + } + function c4(n, e) { + return n.c = e, n; + } + function an(n, e) { + return n.c = e, n; + } + function Sn(n, e) { + return n.b = e, n; + } + function dn(n, e) { + return n.d = e, n; + } + function bn(n, e) { + return n.e = e, n; + } + function Dhe(n, e) { + return n.f = e, n; + } + function wn(n, e) { + return n.g = e, n; + } + function gn(n, e) { + return n.a = e, n; + } + function pn(n, e) { + return n.i = e, n; + } + function mn(n, e) { + return n.j = e, n; + } + function Lhe(n, e) { + ua(), ic(e, n); + } + function Nhe(n, e, t) { + Jbe(n.a, e, t); + } + function GE(n) { + $L.call(this, n); + } + function Vjn(n) { + Z5e.call(this, n); + } + function Wjn(n) { + SIn.call(this, n); + } + function Ez(n) { + SIn.call(this, n); + } + function F1(n) { + P0.call(this, n); + } + function Jjn(n) { + CN.call(this, n); + } + function Qjn(n) { + CN.call(this, n); + } + function Yjn() { + DX.call(this, ""); + } + function Ni() { + this.a = 0, this.b = 0; + } + function Zjn() { + this.b = 0, this.a = 0; + } + function nEn(n, e) { + n.b = 0, nw(n, e); + } + function eEn(n, e) { + return n.k = e, n; + } + function $he(n, e) { + return n.j = e, n; + } + function xhe(n, e) { + n.c = e, n.b = !0; + } + function tEn() { + tEn = F, TQn = Xke(); + } + function B1() { + B1 = F, voe = rke(); + } + function iEn() { + iEn = F, Ai = gye(); + } + function Cz() { + Cz = F, Da = G4(); + } + function u4() { + u4 = F, Udn = cke(); + } + function rEn() { + rEn = F, ise = uke(); + } + function Mz() { + Mz = F, yc = tEe(); + } + function of(n) { + return n.e && n.e(); + } + function cEn(n) { + return n.l | n.m << 22; + } + function uEn(n, e) { + return n.c._b(e); + } + function oEn(n, e) { + return rBn(n.b, e); + } + function MD(n) { + return n ? n.d : null; + } + function Fhe(n) { + return n ? n.g : null; + } + function Bhe(n) { + return n ? n.i : null; + } + function Va(n) { + return ll(n), n.o; + } + function hg(n, e) { + return n.a += e, n; + } + function TD(n, e) { + return n.a += e, n; + } + function Ul(n, e) { + return n.a += e, n; + } + function i0(n, e) { + return n.a += e, n; + } + function Tz(n, e) { + for (; n.Bd(e); ) + ; + } + function zE(n) { + this.a = new ap(n); + } + function sEn() { + throw M(new Pe()); + } + function fEn() { + throw M(new Pe()); + } + function hEn() { + throw M(new Pe()); + } + function lEn() { + throw M(new Pe()); + } + function aEn() { + throw M(new Pe()); + } + function dEn() { + throw M(new Pe()); + } + function Gl(n) { + this.a = new iN(n); + } + function bEn() { + this.a = new F5(Rln); + } + function wEn() { + this.b = new F5(rln); + } + function gEn() { + this.a = new F5(f1n); + } + function pEn() { + this.b = new F5(Fq); + } + function mEn() { + this.b = new F5(Fq); + } + function XE(n) { + this.a = 0, this.b = n; + } + function Az(n) { + zGn(), ILe(this, n); + } + function o4(n) { + return X1(n), n.a; + } + function Q9(n) { + return n.b != n.d.c; + } + function Sz(n, e) { + return n.d[e.p]; + } + function vEn(n, e) { + return XTe(n, e); + } + function Pz(n, e, t) { + n.splice(e, t); + } + function lg(n, e) { + for (; n.Re(e); ) + ; + } + function kEn(n) { + n.c ? Dqn(n) : Lqn(n); + } + function yEn() { + throw M(new Pe()); + } + function jEn() { + throw M(new Pe()); + } + function EEn() { + throw M(new Pe()); + } + function CEn() { + throw M(new Pe()); + } + function MEn() { + throw M(new Pe()); + } + function TEn() { + throw M(new Pe()); + } + function AEn() { + throw M(new Pe()); + } + function SEn() { + throw M(new Pe()); + } + function PEn() { + throw M(new Pe()); + } + function IEn() { + throw M(new Pe()); + } + function Rhe() { + throw M(new nc()); + } + function Khe() { + throw M(new nc()); + } + function Y9(n) { + this.a = new OEn(n); + } + function OEn(n) { + Ume(this, n, jje()); + } + function Z9(n) { + return !n || oIn(n); + } + function n7(n) { + return Zf[n] != -1; + } + function _he() { + cP != 0 && (cP = 0), uP = -1; + } + function DEn() { + RK == null && (RK = []); + } + function e7(n, e) { + Mg.call(this, n, e); + } + function s4(n, e) { + e7.call(this, n, e); + } + function LEn(n, e) { + this.a = n, this.b = e; + } + function NEn(n, e) { + this.a = n, this.b = e; + } + function $En(n, e) { + this.a = n, this.b = e; + } + function xEn(n, e) { + this.a = n, this.b = e; + } + function FEn(n, e) { + this.a = n, this.b = e; + } + function BEn(n, e) { + this.a = n, this.b = e; + } + function REn(n, e) { + this.a = n, this.b = e; + } + function f4(n, e) { + this.e = n, this.d = e; + } + function Iz(n, e) { + this.b = n, this.c = e; + } + function KEn(n, e) { + this.b = n, this.a = e; + } + function _En(n, e) { + this.b = n, this.a = e; + } + function HEn(n, e) { + this.b = n, this.a = e; + } + function qEn(n, e) { + this.b = n, this.a = e; + } + function UEn(n, e) { + this.a = n, this.b = e; + } + function AD(n, e) { + this.a = n, this.b = e; + } + function GEn(n, e) { + this.a = n, this.f = e; + } + function r0(n, e) { + this.g = n, this.i = e; + } + function je(n, e) { + this.f = n, this.g = e; + } + function zEn(n, e) { + this.b = n, this.c = e; + } + function XEn(n) { + KX(n.dc()), this.c = n; + } + function Hhe(n, e) { + this.a = n, this.b = e; + } + function VEn(n, e) { + this.a = n, this.b = e; + } + function WEn(n) { + this.a = u(Se(n), 15); + } + function Oz(n) { + this.a = u(Se(n), 15); + } + function JEn(n) { + this.a = u(Se(n), 85); + } + function VE(n) { + this.b = u(Se(n), 85); + } + function WE(n) { + this.b = u(Se(n), 51); + } + function JE() { + this.q = new y.Date(); + } + function SD(n, e) { + this.a = n, this.b = e; + } + function QEn(n, e) { + return Zc(n.b, e); + } + function t7(n, e) { + return n.b.Hc(e); + } + function YEn(n, e) { + return n.b.Ic(e); + } + function ZEn(n, e) { + return n.b.Qc(e); + } + function nCn(n, e) { + return n.b.Hc(e); + } + function eCn(n, e) { + return n.c.uc(e); + } + function tCn(n, e) { + return rt(n.c, e); + } + function sf(n, e) { + return n.a._b(e); + } + function iCn(n, e) { + return n > e && e < W5; + } + function c6(n) { + return n.f.c + n.i.c; + } + function qhe(n) { + return zPn(), n ? aQn : lQn; + } + function ap(n) { + wFn.call(this, n, 0); + } + function rCn() { + iN.call(this, null); + } + function dp(n) { + this.c = n, i$n(this); + } + function Ct() { + jTn(this), vo(this); + } + function fl() { + fl = F, pQn = new T0n(); + } + function h4() { + h4 = F, sv = new S0n(); + } + function Db() { + Db = F, n_ = new qMn(); + } + function QE() { + QE = F, SQn = new UMn(); + } + function l4() { + l4 = F, $un = new R0n(); + } + function Dz() { + i$.call(this, null); + } + function Wa() { + Wa = F, v3 = new V0n(); + } + function Ut(n, e) { + X1(n), n.a.Nb(e); + } + function Uhe(n, e) { + return n.a.Xc(e); + } + function Ghe(n, e) { + return n.a.Yc(e); + } + function PD(n, e) { + return n.a.$c(e); + } + function ID(n, e) { + return n.a._c(e); + } + function zhe(n, e) { + return n.Gc(e), n; + } + function Xhe(n, e) { + return Ri(n, e), n; + } + function Vhe(n, e) { + aF(H(n.a), e); + } + function Whe(n, e) { + aF(H(n.a), e); + } + function cCn(n, e) { + return n.Gc(e), n; + } + function Jhe(n, e) { + return n.a.f = e, n; + } + function uCn(n, e) { + return n.a.d = e, n; + } + function oCn(n, e) { + return n.a.g = e, n; + } + function sCn(n, e) { + return n.a.j = e, n; + } + function Os(n, e) { + return n.a.a = e, n; + } + function Ds(n, e) { + return n.a.d = e, n; + } + function Ls(n, e) { + return n.a.e = e, n; + } + function Ns(n, e) { + return n.a.g = e, n; + } + function i7(n, e) { + return n.a.f = e, n; + } + function Qhe(n) { + return n.b = !1, n; + } + function fCn() { + fCn = F, BQn = new Z0n(); + } + function YE() { + YE = F, b_ = new bAn(); + } + function Lz() { + Lz = F, jZn = new zbn(); + } + function hCn() { + hCn = F, EZn = new Zbn(); + } + function Nz() { + Nz = F, CZn = new wPn(); + } + function $z() { + $z = F, Oon = new iwn(); + } + function lCn() { + lCn = F, LZn = new dwn(); + } + function u6() { + u6 = F, $Zn = new bwn(); + } + function r7() { + r7 = F, RZn = new _wn(); + } + function c7() { + c7 = F, BZn = new Ni(); + } + function aCn() { + aCn = F, qZn = new Mgn(); + } + function o6() { + o6 = F, QZn = new upn(); + } + function ZE() { + ZE = F, w2 = new Ipn(); + } + function nC() { + nC = F, Jte = new Zmn(); + } + function eC() { + eC = F, Bq = new bCn(); + } + function tC() { + tC = F, Rq = new dAn(); + } + function s6() { + s6 = F, Hj = new bIn(); + } + function dCn() { + Y$n(), this.c = new CD(); + } + function bCn() { + je.call(this, VXn, 0); + } + function Yhe(n, e, t) { + Or(n.d, e.f, t); + } + function Zhe(n, e, t, i) { + P9e(n, i, e, t); + } + function nle(n, e, t, i) { + nTe(i, n, e, t); + } + function ele(n, e, t, i) { + IDe(i, n, e, t); + } + function f6(n, e) { + f1(n.c.c, e.b, e); + } + function c0(n, e) { + f1(n.c.b, e.c, e); + } + function tle(n) { + return n.e.b + n.f.b; + } + function ile(n) { + return n.e.a + n.f.a; + } + function rle(n) { + return n.b ? n.b : n.a; + } + function cle(n) { + return (n.c + n.a) / 2; + } + function wCn(n, e) { + return R7e(n.a, e); + } + function h6(n, e) { + return n.a = e.g, n; + } + function xz() { + xz = F, qdn = new djn(); + } + function gCn() { + gCn = F, Roe = new hjn(); + } + function u0() { + u0 = F, poe = new nvn(); + } + function pCn() { + pCn = F, Moe = new lvn(); + } + function mCn() { + mCn = F, Boe = new fjn(); + } + function R1() { + R1 = F, Ps = new tz(); + } + function iC() { + iC = F, yO = new de(); + } + function l6() { + l6 = F, MU = new TTn(); + } + function zl() { + zl = F, dE = new ATn(); + } + function OD() { + OD = F, Zoe = new T6n(); + } + function dr() { + dr = F, ese = new A6n(); + } + function K1() { + K1 = F, xa = new P5n(); + } + function Fz() { + Fz = F, n0n = new Z(); + } + function rC(n) { + return u(n, 44).ld(); + } + function DD(n) { + return n.b < n.d.gc(); + } + function ule(n, e) { + return e.split(n); + } + function LD(n, e) { + return Cc(n, e) > 0; + } + function ND(n, e) { + return Cc(n, e) < 0; + } + function vCn(n, e) { + return JL(n.a, e); + } + function ole(n, e) { + yOn.call(this, n, e); + } + function Bz(n) { + wN(), uSn.call(this, n); + } + function Rz(n, e) { + bPn(n, n.length, e); + } + function u7(n, e) { + HPn(n, n.length, e); + } + function a6(n, e) { + return n.a.get(e); + } + function kCn(n, e) { + return Zc(n.e, e); + } + function Kz(n) { + return Jn(n), !1; + } + function _z(n) { + this.a = u(Se(n), 229); + } + function cC(n) { + In.call(this, n, 21); + } + function uC(n, e) { + je.call(this, n, e); + } + function $D(n, e) { + je.call(this, n, e); + } + function yCn(n, e) { + this.b = n, this.a = e; + } + function oC(n, e) { + this.d = n, this.e = e; + } + function jCn(n, e) { + this.a = n, this.b = e; + } + function ECn(n, e) { + this.a = n, this.b = e; + } + function CCn(n, e) { + this.a = n, this.b = e; + } + function MCn(n, e) { + this.a = n, this.b = e; + } + function bp(n, e) { + this.a = n, this.b = e; + } + function TCn(n, e) { + this.b = n, this.a = e; + } + function Hz(n, e) { + this.b = n, this.a = e; + } + function qz(n, e) { + je.call(this, n, e); + } + function Uz(n, e) { + je.call(this, n, e); + } + function ag(n, e) { + je.call(this, n, e); + } + function xD(n, e) { + je.call(this, n, e); + } + function FD(n, e) { + je.call(this, n, e); + } + function BD(n, e) { + je.call(this, n, e); + } + function sC(n, e) { + je.call(this, n, e); + } + function Gz(n, e) { + this.b = n, this.a = e; + } + function fC(n, e) { + je.call(this, n, e); + } + function zz(n, e) { + this.b = n, this.a = e; + } + function hC(n, e) { + je.call(this, n, e); + } + function ACn(n, e) { + this.b = n, this.a = e; + } + function Xz(n, e) { + je.call(this, n, e); + } + function RD(n, e) { + je.call(this, n, e); + } + function o7(n, e) { + je.call(this, n, e); + } + function d6(n, e, t) { + n.splice(e, 0, t); + } + function sle(n, e, t) { + n.Mb(t) && e.Cd(t); + } + function fle(n, e, t) { + e.Pe(n.a.Ye(t)); + } + function hle(n, e, t) { + e.Dd(n.a.Ze(t)); + } + function lle(n, e, t) { + e.Cd(n.a.Kb(t)); + } + function ale(n, e) { + return Tu(n.c, e); + } + function dle(n, e) { + return Tu(n.e, e); + } + function lC(n, e) { + je.call(this, n, e); + } + function aC(n, e) { + je.call(this, n, e); + } + function b6(n, e) { + je.call(this, n, e); + } + function Vz(n, e) { + je.call(this, n, e); + } + function ti(n, e) { + je.call(this, n, e); + } + function dC(n, e) { + je.call(this, n, e); + } + function SCn(n, e) { + this.a = n, this.b = e; + } + function PCn(n, e) { + this.a = n, this.b = e; + } + function ICn(n, e) { + this.a = n, this.b = e; + } + function OCn(n, e) { + this.a = n, this.b = e; + } + function DCn(n, e) { + this.a = n, this.b = e; + } + function LCn(n, e) { + this.a = n, this.b = e; + } + function NCn(n, e) { + this.b = n, this.a = e; + } + function $Cn(n, e) { + this.b = n, this.a = e; + } + function Wz(n, e) { + this.b = n, this.a = e; + } + function a4(n, e) { + this.c = n, this.d = e; + } + function xCn(n, e) { + this.e = n, this.d = e; + } + function FCn(n, e) { + this.a = n, this.b = e; + } + function BCn(n, e) { + this.a = n, this.b = e; + } + function RCn(n, e) { + this.a = n, this.b = e; + } + function KCn(n, e) { + this.b = n, this.a = e; + } + function _Cn(n, e) { + this.b = e, this.c = n; + } + function bC(n, e) { + je.call(this, n, e); + } + function s7(n, e) { + je.call(this, n, e); + } + function KD(n, e) { + je.call(this, n, e); + } + function Jz(n, e) { + je.call(this, n, e); + } + function w6(n, e) { + je.call(this, n, e); + } + function _D(n, e) { + je.call(this, n, e); + } + function HD(n, e) { + je.call(this, n, e); + } + function f7(n, e) { + je.call(this, n, e); + } + function Qz(n, e) { + je.call(this, n, e); + } + function qD(n, e) { + je.call(this, n, e); + } + function g6(n, e) { + je.call(this, n, e); + } + function Yz(n, e) { + je.call(this, n, e); + } + function p6(n, e) { + je.call(this, n, e); + } + function m6(n, e) { + je.call(this, n, e); + } + function Lb(n, e) { + je.call(this, n, e); + } + function UD(n, e) { + je.call(this, n, e); + } + function GD(n, e) { + je.call(this, n, e); + } + function Zz(n, e) { + je.call(this, n, e); + } + function h7(n, e) { + je.call(this, n, e); + } + function dg(n, e) { + je.call(this, n, e); + } + function zD(n, e) { + je.call(this, n, e); + } + function wC(n, e) { + je.call(this, n, e); + } + function l7(n, e) { + je.call(this, n, e); + } + function Nb(n, e) { + je.call(this, n, e); + } + function gC(n, e) { + je.call(this, n, e); + } + function nX(n, e) { + je.call(this, n, e); + } + function XD(n, e) { + je.call(this, n, e); + } + function VD(n, e) { + je.call(this, n, e); + } + function WD(n, e) { + je.call(this, n, e); + } + function JD(n, e) { + je.call(this, n, e); + } + function QD(n, e) { + je.call(this, n, e); + } + function YD(n, e) { + je.call(this, n, e); + } + function ZD(n, e) { + je.call(this, n, e); + } + function HCn(n, e) { + this.b = n, this.a = e; + } + function eX(n, e) { + je.call(this, n, e); + } + function qCn(n, e) { + this.a = n, this.b = e; + } + function UCn(n, e) { + this.a = n, this.b = e; + } + function GCn(n, e) { + this.a = n, this.b = e; + } + function tX(n, e) { + je.call(this, n, e); + } + function iX(n, e) { + je.call(this, n, e); + } + function zCn(n, e) { + this.a = n, this.b = e; + } + function ble(n, e) { + return v4(), e != n; + } + function a7(n) { + return oe(n.a), n.b; + } + function nL(n) { + return yCe(n, n.c), n; + } + function XCn() { + return tEn(), new TQn(); + } + function VCn() { + VC(), this.a = new kV(); + } + function WCn() { + OA(), this.a = new ei(); + } + function JCn() { + NN(), this.b = new ei(); + } + function QCn(n, e) { + this.b = n, this.d = e; + } + function YCn(n, e) { + this.a = n, this.b = e; + } + function ZCn(n, e) { + this.a = n, this.b = e; + } + function nMn(n, e) { + this.a = n, this.b = e; + } + function eMn(n, e) { + this.b = n, this.a = e; + } + function rX(n, e) { + je.call(this, n, e); + } + function cX(n, e) { + je.call(this, n, e); + } + function pC(n, e) { + je.call(this, n, e); + } + function o0(n, e) { + je.call(this, n, e); + } + function eL(n, e) { + je.call(this, n, e); + } + function mC(n, e) { + je.call(this, n, e); + } + function uX(n, e) { + je.call(this, n, e); + } + function oX(n, e) { + je.call(this, n, e); + } + function d7(n, e) { + je.call(this, n, e); + } + function sX(n, e) { + je.call(this, n, e); + } + function tL(n, e) { + je.call(this, n, e); + } + function vC(n, e) { + je.call(this, n, e); + } + function iL(n, e) { + je.call(this, n, e); + } + function rL(n, e) { + je.call(this, n, e); + } + function cL(n, e) { + je.call(this, n, e); + } + function uL(n, e) { + je.call(this, n, e); + } + function fX(n, e) { + je.call(this, n, e); + } + function oL(n, e) { + je.call(this, n, e); + } + function hX(n, e) { + je.call(this, n, e); + } + function b7(n, e) { + je.call(this, n, e); + } + function sL(n, e) { + je.call(this, n, e); + } + function lX(n, e) { + je.call(this, n, e); + } + function w7(n, e) { + je.call(this, n, e); + } + function aX(n, e) { + je.call(this, n, e); + } + function tMn(n, e) { + this.b = n, this.a = e; + } + function iMn(n, e) { + this.b = n, this.a = e; + } + function rMn(n, e) { + this.b = n, this.a = e; + } + function cMn(n, e) { + this.b = n, this.a = e; + } + function dX(n, e) { + this.a = n, this.b = e; + } + function uMn(n, e) { + this.a = n, this.b = e; + } + function oMn(n, e) { + this.a = n, this.b = e; + } + function V(n, e) { + this.a = n, this.b = e; + } + function v6(n, e) { + je.call(this, n, e); + } + function g7(n, e) { + je.call(this, n, e); + } + function wp(n, e) { + je.call(this, n, e); + } + function k6(n, e) { + je.call(this, n, e); + } + function p7(n, e) { + je.call(this, n, e); + } + function fL(n, e) { + je.call(this, n, e); + } + function kC(n, e) { + je.call(this, n, e); + } + function y6(n, e) { + je.call(this, n, e); + } + function hL(n, e) { + je.call(this, n, e); + } + function yC(n, e) { + je.call(this, n, e); + } + function bg(n, e) { + je.call(this, n, e); + } + function m7(n, e) { + je.call(this, n, e); + } + function j6(n, e) { + je.call(this, n, e); + } + function E6(n, e) { + je.call(this, n, e); + } + function v7(n, e) { + je.call(this, n, e); + } + function jC(n, e) { + je.call(this, n, e); + } + function wg(n, e) { + je.call(this, n, e); + } + function lL(n, e) { + je.call(this, n, e); + } + function sMn(n, e) { + je.call(this, n, e); + } + function EC(n, e) { + je.call(this, n, e); + } + function fMn(n, e) { + this.a = n, this.b = e; + } + function hMn(n, e) { + this.a = n, this.b = e; + } + function lMn(n, e) { + this.a = n, this.b = e; + } + function aMn(n, e) { + this.a = n, this.b = e; + } + function dMn(n, e) { + this.a = n, this.b = e; + } + function bMn(n, e) { + this.a = n, this.b = e; + } + function wi(n, e) { + this.a = n, this.b = e; + } + function wMn(n, e) { + this.a = n, this.b = e; + } + function gMn(n, e) { + this.a = n, this.b = e; + } + function pMn(n, e) { + this.a = n, this.b = e; + } + function mMn(n, e) { + this.a = n, this.b = e; + } + function vMn(n, e) { + this.a = n, this.b = e; + } + function kMn(n, e) { + this.a = n, this.b = e; + } + function yMn(n, e) { + this.b = n, this.a = e; + } + function jMn(n, e) { + this.b = n, this.a = e; + } + function EMn(n, e) { + this.b = n, this.a = e; + } + function CMn(n, e) { + this.b = n, this.a = e; + } + function MMn(n, e) { + this.a = n, this.b = e; + } + function TMn(n, e) { + this.a = n, this.b = e; + } + function CC(n, e) { + je.call(this, n, e); + } + function AMn(n, e) { + this.a = n, this.b = e; + } + function SMn(n, e) { + this.a = n, this.b = e; + } + function gp(n, e) { + je.call(this, n, e); + } + function PMn(n, e) { + this.f = n, this.c = e; + } + function bX(n, e) { + return Tu(n.g, e); + } + function wle(n, e) { + return Tu(e.b, n); + } + function IMn(n, e) { + return wx(n.a, e); + } + function gle(n, e) { + return -n.b.af(e); + } + function ple(n, e) { + n && Xe(hE, n, e); + } + function wX(n, e) { + n.i = null, kT(n, e); + } + function mle(n, e, t) { + yKn(e, oF(n, t)); + } + function vle(n, e, t) { + yKn(e, oF(n, t)); + } + function kle(n, e) { + VMe(n.a, u(e, 58)); + } + function OMn(n, e) { + U4e(n.a, u(e, 12)); + } + function MC(n, e) { + this.a = n, this.b = e; + } + function DMn(n, e) { + this.a = n, this.b = e; + } + function LMn(n, e) { + this.a = n, this.b = e; + } + function NMn(n, e) { + this.a = n, this.b = e; + } + function $Mn(n, e) { + this.a = n, this.b = e; + } + function xMn(n, e) { + this.d = n, this.b = e; + } + function FMn(n, e) { + this.e = n, this.a = e; + } + function k7(n, e) { + this.b = n, this.c = e; + } + function gX(n, e) { + this.i = n, this.g = e; + } + function pX(n, e) { + this.d = n, this.e = e; + } + function yle(n, e) { + cme(new ne(n), e); + } + function TC(n) { + return Fk(n.c, n.b); + } + function Kr(n) { + return n ? n.md() : null; + } + function x(n) { + return n ?? null; + } + function Pi(n) { + return typeof n === nB; + } + function $b(n) { + return typeof n === i3; + } + function xb(n) { + return typeof n === dtn; + } + function s0(n, e) { + return Cc(n, e) == 0; + } + function AC(n, e) { + return Cc(n, e) >= 0; + } + function C6(n, e) { + return Cc(n, e) != 0; + } + function SC(n, e) { + return jve(n.Kc(), e); + } + function _1(n, e) { + return n.Rd().Xb(e); + } + function BMn(n) { + return no(n), n.d.gc(); + } + function PC(n) { + return x6(n == null), n; + } + function M6(n, e) { + return n.a += "" + e, n; + } + function Cr(n, e) { + return n.a += "" + e, n; + } + function T6(n, e) { + return n.a += "" + e, n; + } + function Lc(n, e) { + return n.a += "" + e, n; + } + function Re(n, e) { + return n.a += "" + e, n; + } + function mX(n, e) { + return n.a += "" + e, n; + } + function jle(n) { + return "" + (Jn(n), n); + } + function RMn(n) { + Ku(this), s5(this, n); + } + function KMn() { + oJ(), dW.call(this); + } + function _Mn(n, e) { + mW.call(this, n, e); + } + function HMn(n, e) { + mW.call(this, n, e); + } + function IC(n, e) { + mW.call(this, n, e); + } + function tr(n, e) { + xt(n, e, n.c.b, n.c); + } + function gg(n, e) { + xt(n, e, n.a, n.a.a); + } + function vX(n) { + return Ln(n, 0), null; + } + function qMn() { + this.b = 0, this.a = !1; + } + function UMn() { + this.b = 0, this.a = !1; + } + function GMn() { + this.b = new ap(Yb(12)); + } + function zMn() { + zMn = F, kYn = Ce(jx()); + } + function XMn() { + XMn = F, HZn = Ce(iqn()); + } + function VMn() { + VMn = F, lre = Ce(xxn()); + } + function kX() { + kX = F, _G(), fun = new de(); + } + function ff(n) { + return n.a = 0, n.b = 0, n; + } + function WMn(n, e) { + return n.a = e.g + 1, n; + } + function aL(n, e) { + _b.call(this, n, e); + } + function Mn(n, e) { + Dt.call(this, n, e); + } + function pg(n, e) { + gX.call(this, n, e); + } + function JMn(n, e) { + C7.call(this, n, e); + } + function dL(n, e) { + Q4.call(this, n, e); + } + function Ge(n, e) { + iC(), Xe(yO, n, e); + } + function QMn(n, e) { + n.q.setTime(rd(e)); + } + function Ele(n) { + y.clearTimeout(n); + } + function Cle(n) { + return Se(n), new A6(n); + } + function YMn(n, e) { + return x(n) === x(e); + } + function ZMn(n, e) { + return n.a.a.a.cc(e); + } + function bL(n, e) { + return qo(n.a, 0, e); + } + function yX(n) { + return Awe(u(n, 74)); + } + function pp(n) { + return gi((Jn(n), n)); + } + function Mle(n) { + return gi((Jn(n), n)); + } + function nTn(n) { + return Yc(n.l, n.m, n.h); + } + function jX(n, e) { + return Ec(n.a, e.a); + } + function Tle(n, e) { + return KPn(n.a, e.a); + } + function Ale(n, e) { + return bt(n.a, e.a); + } + function th(n, e) { + return n.indexOf(e); + } + function Sle(n, e) { + return n.j[e.p] == 2; + } + function f0(n, e) { + return n == e ? 0 : n ? 1 : -1; + } + function OC(n) { + return n < 10 ? "0" + n : "" + n; + } + function Vr(n) { + return typeof n === dtn; + } + function Ple(n) { + return n == cb || n == Ow; + } + function Ile(n) { + return n == cb || n == Iw; + } + function eTn(n, e) { + return Ec(n.g, e.g); + } + function EX(n) { + return qr(n.b.b, n, 0); + } + function tTn() { + rM.call(this, 0, 0, 0, 0); + } + function ih() { + CG.call(this, new Yl()); + } + function CX(n, e) { + x4(n, 0, n.length, e); + } + function Ole(n, e) { + return nn(n.a, e), e; + } + function Dle(n, e) { + return Fs(), e.a += n; + } + function Lle(n, e) { + return Fs(), e.a += n; + } + function Nle(n, e) { + return Fs(), e.c += n; + } + function $le(n, e) { + return nn(n.c, e), n; + } + function MX(n, e) { + return Mo(n.a, e), n; + } + function iTn(n) { + this.a = XCn(), this.b = n; + } + function rTn(n) { + this.a = XCn(), this.b = n; + } + function ir(n) { + this.a = n.a, this.b = n.b; + } + function A6(n) { + this.a = n, GO.call(this); + } + function cTn(n) { + this.a = n, GO.call(this); + } + function mp() { + Ho.call(this, 0, 0, 0, 0); + } + function DC(n) { + return Mo(new ri(), n); + } + function uTn(n) { + return jM(u(n, 123)); + } + function fo(n) { + return n.vh() && n.wh(); + } + function mg(n) { + return n != Jf && n != Pa; + } + function hl(n) { + return n == Fr || n == Xr; + } + function vg(n) { + return n == us || n == Vf; + } + function oTn(n) { + return n == P2 || n == S2; + } + function xle(n, e) { + return Ec(n.g, e.g); + } + function sTn(n, e) { + return new Q4(e, n); + } + function Fle(n, e) { + return new Q4(e, n); + } + function TX(n) { + return rbe(n.b.Kc(), n.a); + } + function wL(n, e) { + cm(n, e), U4(n, n.D); + } + function gL(n, e, t) { + aT(n, e), lT(n, t); + } + function kg(n, e, t) { + O0(n, e), I0(n, t); + } + function Ro(n, e, t) { + eu(n, e), tu(n, t); + } + function y7(n, e, t) { + K4(n, e), H4(n, t); + } + function j7(n, e, t) { + _4(n, e), q4(n, t); + } + function fTn(n, e, t) { + sV.call(this, n, e, t); + } + function AX(n) { + PMn.call(this, n, !0); + } + function hTn() { + uC.call(this, "Tail", 3); + } + function lTn() { + uC.call(this, "Head", 1); + } + function H1(n) { + ah(), mve.call(this, n); + } + function h0(n) { + rM.call(this, n, n, n, n); + } + function pL(n) { + n.c = K(yi, Bn, 1, 0, 5, 1); + } + function SX(n) { + return n.b && xF(n), n.a; + } + function PX(n) { + return n.b && xF(n), n.c; + } + function Ble(n, e) { + qf || (n.b = e); + } + function Rle(n, e) { + return n[n.length] = e; + } + function Kle(n, e) { + return n[n.length] = e; + } + function _le(n, e) { + return Zb(e, Af(n)); + } + function Hle(n, e) { + return Zb(e, Af(n)); + } + function qle(n, e) { + return pT(dN(n.d), e); + } + function Ule(n, e) { + return pT(dN(n.g), e); + } + function Gle(n, e) { + return pT(dN(n.j), e); + } + function $i(n, e) { + Dt.call(this, n.b, e); + } + function zle(n, e) { + ve(Pc(n.a), DOn(e)); + } + function Xle(n, e) { + ve(Zu(n.a), LOn(e)); + } + function Vle(n, e, t) { + Ro(t, t.i + n, t.j + e); + } + function aTn(n, e, t) { + $t(n.c[e.g], e.g, t); + } + function Wle(n, e, t) { + u(n.c, 71).Gi(e, t); + } + function mL(n, e, t) { + return $t(n, e, t), t; + } + function dTn(n) { + nu(n.Sf(), new D9n(n)); + } + function yg(n) { + return n != null ? mt(n) : 0; + } + function Jle(n) { + return n == null ? 0 : mt(n); + } + function S6(n) { + nt(), Jd.call(this, n); + } + function bTn(n) { + this.a = n, qV.call(this, n); + } + function Mf() { + Mf = F, y.Math.log(2); + } + function Ko() { + Ko = F, il = (pCn(), Moe); + } + function wTn() { + wTn = F, YH = new y5(aU); + } + function Ie() { + Ie = F, new gTn(), new Z(); + } + function gTn() { + new de(), new de(), new de(); + } + function Qle() { + throw M(new _l(QJn)); + } + function Yle() { + throw M(new _l(QJn)); + } + function Zle() { + throw M(new _l(YJn)); + } + function n1e() { + throw M(new _l(YJn)); + } + function vL(n) { + this.a = n, VE.call(this, n); + } + function kL(n) { + this.a = n, VE.call(this, n); + } + function pTn(n, e) { + v0(), this.a = n, this.b = e; + } + function e1e(n, e) { + Se(e), Ag(n).Jc(new so()); + } + function Zt(n, e) { + QL(n.c, n.c.length, e); + } + function tc(n) { + return n.a < n.c.c.length; + } + function IX(n) { + return n.a < n.c.a.length; + } + function mTn(n, e) { + return n.a ? n.b : e.We(); + } + function Ec(n, e) { + return n < e ? -1 : n > e ? 1 : 0; + } + function OX(n, e) { + return Cc(n, e) > 0 ? n : e; + } + function Yc(n, e, t) { + return { l: n, m: e, h: t }; + } + function t1e(n, e) { + n.a != null && OMn(e, n.a); + } + function i1e(n) { + Yi(n, null), Di(n, null); + } + function r1e(n, e, t) { + return Xe(n.g, t, e); + } + function jg(n, e, t) { + return nZ(e, t, n.c); + } + function c1e(n, e, t) { + return Xe(n.k, t, e); + } + function u1e(n, e, t) { + return GOe(n, e, t), t; + } + function o1e(n, e) { + return ko(), e.n.b += n; + } + function vTn(n) { + nJ.call(this), this.b = n; + } + function DX(n) { + vV.call(this), this.a = n; + } + function kTn() { + uC.call(this, "Range", 2); + } + function LC(n) { + this.b = n, this.a = new Z(); + } + function yTn(n) { + this.b = new $bn(), this.a = n; + } + function jTn(n) { + n.a = new OO(), n.c = new OO(); + } + function ETn(n) { + n.a = new de(), n.d = new de(); + } + function CTn(n) { + $N(n, null), xN(n, null); + } + function MTn(n, e) { + return XOe(n.a, e, null); + } + function s1e(n, e) { + return Xe(n.a, e.a, e); + } + function Ki(n) { + return new V(n.a, n.b); + } + function LX(n) { + return new V(n.c, n.d); + } + function f1e(n) { + return new V(n.c, n.d); + } + function P6(n, e) { + return cOe(n.c, n.b, e); + } + function D(n, e) { + return n != null && Tx(n, e); + } + function yL(n, e) { + return Yve(n.Kc(), e) != -1; + } + function NC(n) { + return n.Ob() ? n.Pb() : null; + } + function h1e(n) { + this.b = (Dn(), new eD(n)); + } + function NX(n) { + this.a = n, de.call(this); + } + function TTn() { + C7.call(this, null, null); + } + function ATn() { + _C.call(this, null, null); + } + function STn() { + je.call(this, "INSTANCE", 0); + } + function PTn() { + LZ(), this.a = new F5(Ion); + } + function ITn(n) { + return ws(n, 0, n.length); + } + function l1e(n, e) { + return new VTn(n.Kc(), e); + } + function $X(n, e) { + return n.a.Bc(e) != null; + } + function OTn(n, e) { + me(n), n.Gc(u(e, 15)); + } + function a1e(n, e, t) { + n.c.bd(e, u(t, 136)); + } + function d1e(n, e, t) { + n.c.Ui(e, u(t, 136)); + } + function DTn(n, e) { + n.c && (tW(e), rOn(e)); + } + function b1e(n, e) { + n.q.setHours(e), H5(n, e); + } + function w1e(n, e) { + d0(e, n.a.a.a, n.a.a.b); + } + function g1e(n, e, t, i) { + $t(n.a[e.g], t.g, i); + } + function jL(n, e, t) { + return n.a[e.g][t.g]; + } + function p1e(n, e) { + return n.e[e.c.p][e.p]; + } + function m1e(n, e) { + return n.c[e.c.p][e.p]; + } + function Tf(n, e) { + return n.a[e.c.p][e.p]; + } + function v1e(n, e) { + return n.j[e.p] = IMe(e); + } + function EL(n, e) { + return n.a.Bc(e) != null; + } + function k1e(n, e) { + return $(R(e.a)) <= n; + } + function y1e(n, e) { + return $(R(e.a)) >= n; + } + function j1e(n, e) { + return RJ(n.f, e.Pg()); + } + function vp(n, e) { + return n.a * e.a + n.b * e.b; + } + function E1e(n, e) { + return n.a < IV(e) ? -1 : 1; + } + function C1e(n, e) { + return RJ(n.b, e.Pg()); + } + function M1e(n, e, t) { + return t ? e != 0 : e != n - 1; + } + function LTn(n, e, t) { + n.a = e ^ 1502, n.b = t ^ LB; + } + function T1e(n, e, t) { + return n.a = e, n.b = t, n; + } + function rh(n, e) { + return n.a *= e, n.b *= e, n; + } + function nn(n, e) { + return Kn(n.c, e), !0; + } + function I6(n, e, t) { + return $t(n.g, e, t), t; + } + function ii(n, e, t) { + F7.call(this, n, e, t); + } + function $C(n, e, t) { + ii.call(this, n, e, t); + } + function xX(n, e, t) { + QC.call(this, n, e, t); + } + function NTn(n, e, t) { + QC.call(this, n, e, t); + } + function $Tn(n, e, t) { + xX.call(this, n, e, t); + } + function Mu(n, e, t) { + ii.call(this, n, e, t); + } + function xTn(n, e, t) { + $C.call(this, n, e, t); + } + function FX(n, e, t) { + F7.call(this, n, e, t); + } + function Eg(n, e, t) { + F7.call(this, n, e, t); + } + function FTn(n, e, t) { + FX.call(this, n, e, t); + } + function xC(n) { + n.j = K(jun, J, 319, 0, 0, 1); + } + function Cg() { + this.a = K(yi, Bn, 1, 8, 5, 1); + } + function BX() { + this.Bb |= 256, this.Bb |= 512; + } + function ne(n) { + this.i = n, this.f = this.i.j; + } + function q1(n) { + this.c = n, this.a = this.c.a; + } + function Mg(n, e) { + this.a = n, VE.call(this, e); + } + function RX(n, e) { + return H5e(n, new x1(), e).a; + } + function KX(n) { + if (!n) + throw M(new W9()); + } + function _X(n) { + if (!n) + throw M(new Eu()); + } + function HX() { + HX = F, HX(), PQn = new F0n(); + } + function BTn() { + BTn = F, OD(), nse = new T8n(); + } + function d4() { + d4 = F, Dun = new wD(null); + } + function A1e(n) { + G7(n, MWn), AA(n, GDe(n)); + } + function RTn(n) { + n.a = u(Un(n.b.a, 4), 129); + } + function KTn(n) { + n.a = u(Un(n.b.a, 4), 129); + } + function _Tn(n) { + n.b.Qb(), --n.d.f.d, fM(n.d); + } + function qX(n) { + this.a = n, H8n.call(this, n.d); + } + function HTn(n, e) { + this.a = n, ED.call(this, e); + } + function qTn(n, e) { + this.a = n, ED.call(this, e); + } + function UTn(n, e) { + this.a = n, ED.call(this, e); + } + function UX(n, e) { + this.a = e, ED.call(this, n); + } + function GTn(n, e) { + this.a = e, zN.call(this, n); + } + function zTn(n, e) { + this.a = n, zN.call(this, e); + } + function XTn(n, e) { + this.a = e, WE.call(this, n); + } + function VTn(n, e) { + this.a = e, WE.call(this, n); + } + function ce(n, e) { + return Se(e), new XTn(n, e); + } + function WTn(n, e) { + return new k_n(n.a, n.b, e); + } + function GX(n, e, t) { + return n.indexOf(e, t); + } + function FC(n, e) { + return n.lastIndexOf(e); + } + function O6(n) { + return n == null ? wu : Jr(n); + } + function S1e(n) { + return n == null ? null : n.name; + } + function P1e(n) { + return n.l + n.m * o3 + n.h * kd; + } + function I1e(n) { + return Q9(n.a) ? NOn(n) : null; + } + function ls(n) { + G9.call(this, (Jn(n), n)); + } + function mo(n) { + G9.call(this, (Jn(n), n)); + } + function JTn(n) { + XO.call(this, u(Se(n), 34)); + } + function QTn(n) { + XO.call(this, u(Se(n), 34)); + } + function CL(n) { + CG.call(this, new VJ(n)); + } + function BC(n) { + J3.call(this, n), this.a = n; + } + function zX(n) { + W3.call(this, n), this.a = n; + } + function XX(n) { + i4.call(this, n), this.a = n; + } + function YTn() { + xC(this), MM(this), this.je(); + } + function ZTn(n) { + this.a = n, ZO.call(this, n); + } + function ho(n) { + return oe(n.a != null), n.a; + } + function nAn(n, e) { + return nn(e.a, n.a), n.a; + } + function eAn(n, e) { + return nn(e.b, n.a), n.a; + } + function l0(n, e) { + return nn(e.a, n.a), n.a; + } + function E7(n, e, t) { + return L$(n, e, e, t), n; + } + function RC(n, e) { + return ++n.b, nn(n.a, e); + } + function VX(n, e) { + return ++n.b, au(n.a, e); + } + function O1e(n, e) { + return bt(n.c.d, e.c.d); + } + function D1e(n, e) { + return bt(n.c.c, e.c.c); + } + function L1e(n, e) { + return bt(n.n.a, e.n.a); + } + function hu(n, e) { + return u(ot(n.b, e), 15); + } + function N1e(n, e) { + return n.n.b = (Jn(e), e); + } + function $1e(n, e) { + return n.n.b = (Jn(e), e); + } + function Tu(n, e) { + return !!e && n.b[e.g] == e; + } + function D6(n) { + return tc(n.a) || tc(n.b); + } + function a0(n) { + return n.$H || (n.$H = ++bNe); + } + function x1e(n) { + return n.a != null ? n.a : null; + } + function F1e(n, e) { + return bt(n.e.b, e.e.b); + } + function B1e(n, e) { + return bt(n.e.a, e.e.a); + } + function R1e(n, e, t) { + return FDn(n, e, t, n.b); + } + function WX(n, e, t) { + return FDn(n, e, t, n.c); + } + function K1e(n) { + return Fs(), !!n && !n.dc(); + } + function tAn() { + o6(), this.b = new w7n(this); + } + function KC() { + KC = F, bP = new Dt(gXn, 0); + } + function _n() { + _n = F, ga = !1, uv = !0; + } + function Xl(n) { + var e; + e = n.a, n.a = n.b, n.b = e; + } + function C7(n, e) { + l6(), this.a = n, this.b = e; + } + function _C(n, e) { + zl(), this.b = n, this.c = e; + } + function ML(n, e) { + nN(), this.f = e, this.d = n; + } + function JX(n, e) { + BJ(e, n), this.d = n, this.c = e; + } + function QX(n, e) { + oZ.call(this, n, e, null); + } + function iAn(n, e, t, i) { + vW.call(this, n, e, t, i); + } + function kp(n) { + this.d = n, ne.call(this, n); + } + function yp(n) { + this.c = n, ne.call(this, n); + } + function M7(n) { + this.c = n, kp.call(this, n); + } + function _1e(n) { + return new Vb(3, n); + } + function Oh(n) { + return Co(n, vw), new zc(n); + } + function rAn(n) { + return I4(), parseInt(n) || -1; + } + function H1e(n) { + return RE(), Ee((lOn(), oQn), n); + } + function b4(n, e, t) { + return GX(n, bu(e), t); + } + function TL(n, e) { + return new iSn(n, n.gc(), e); + } + function q1e(n, e) { + return eN(n.c).Md().Xb(e); + } + function w4(n, e, t) { + var i; + i = n.fd(e), i.Rb(t); + } + function YX(n, e, t) { + u(lk(n, e), 21).Fc(t); + } + function U1e(n, e, t) { + cx(n.a, t), uA(n.a, e); + } + function T7(n) { + D(n, 158) && u(n, 158).pi(); + } + function cAn(n) { + UV.call(this, n, null, null); + } + function AL(n) { + Db(), this.b = n, this.a = !0; + } + function uAn(n) { + QE(), this.b = n, this.a = !0; + } + function g4(n) { + return oe(n.b != 0), n.a.a.c; + } + function $s(n) { + return oe(n.b != 0), n.c.b.c; + } + function G1e(n, e) { + return L$(n, e, e + 1, ""), n; + } + function kt(n, e) { + return !!n.q && Zc(n.q, e); + } + function oAn(n) { + return n.b = u(VW(n.a), 44); + } + function z1e(n) { + return n.f != null ? n.f : "" + n.g; + } + function SL(n) { + return n.f != null ? n.f : "" + n.g; + } + function X1e(n, e) { + return n > 0 ? e / (n * n) : e * 100; + } + function V1e(n, e) { + return n > 0 ? e * e / n : e * e * 100; + } + function Fb(n, e) { + return u(Lf(n.a, e), 34); + } + function W1e(n, e) { + return ua(), Pn(n, e.e, e); + } + function J1e(n, e, t) { + return nC(), t.Mg(n, e); + } + function Q1e(n) { + return kl(), n.e.a + n.f.a / 2; + } + function Y1e(n, e, t) { + return kl(), t.e.a - n * e; + } + function Z1e(n) { + return kl(), n.e.b + n.f.b / 2; + } + function nae(n, e, t) { + return kl(), t.e.b - n * e; + } + function sAn(n) { + n.d = new cAn(n), n.e = new de(); + } + function fAn() { + this.a = new M0(), this.b = new M0(); + } + function hAn(n) { + this.c = n, this.a = 1, this.b = 1; + } + function lAn(n) { + YF(), Syn(this), this.Ff(n); + } + function eae(n, e, t) { + YM(), n.pf(e) && t.Cd(n); + } + function tae(n, e, t) { + return nn(e, jBn(n, t)); + } + function d0(n, e, t) { + return n.a += e, n.b += t, n; + } + function iae(n, e, t) { + return n.a *= e, n.b *= t, n; + } + function ZX(n, e) { + return n.a = e.a, n.b = e.b, n; + } + function HC(n) { + return n.a = -n.a, n.b = -n.b, n; + } + function L6(n, e, t) { + return n.a -= e, n.b -= t, n; + } + function aAn(n) { + Ct.call(this), r5(this, n); + } + function dAn() { + je.call(this, "GROW_TREE", 0); + } + function bAn() { + je.call(this, "POLYOMINO", 0); + } + function lo(n, e, t) { + Pu.call(this, n, e, t, 2); + } + function rae(n, e, t) { + v5(Pc(n.a), e, DOn(t)); + } + function wAn(n, e) { + l6(), C7.call(this, n, e); + } + function nV(n, e) { + zl(), _C.call(this, n, e); + } + function gAn(n, e) { + zl(), nV.call(this, n, e); + } + function pAn(n, e) { + zl(), _C.call(this, n, e); + } + function cae(n, e) { + return n.c.Fc(u(e, 136)); + } + function uae(n, e, t) { + v5(Zu(n.a), e, LOn(t)); + } + function mAn(n) { + this.c = n, eu(n, 0), tu(n, 0); + } + function PL(n, e) { + Ko(), oM.call(this, n, e); + } + function vAn(n, e) { + Ko(), PL.call(this, n, e); + } + function eV(n, e) { + Ko(), PL.call(this, n, e); + } + function tV(n, e) { + Ko(), oM.call(this, n, e); + } + function kAn(n, e) { + Ko(), eV.call(this, n, e); + } + function yAn(n, e) { + Ko(), tV.call(this, n, e); + } + function jAn(n, e) { + Ko(), oM.call(this, n, e); + } + function oae(n, e, t) { + return e.zl(n.e, n.c, t); + } + function sae(n, e, t) { + return e.Al(n.e, n.c, t); + } + function iV(n, e, t) { + return qA(hk(n, e), t); + } + function IL(n, e) { + return ea(n.e, u(e, 54)); + } + function fae(n) { + return n == null ? null : NDe(n); + } + function hae(n) { + return n == null ? null : Aje(n); + } + function lae(n) { + return n == null ? null : Jr(n); + } + function aae(n) { + return n == null ? null : Jr(n); + } + function un(n) { + return x6(n == null || $b(n)), n; + } + function R(n) { + return x6(n == null || xb(n)), n; + } + function Oe(n) { + return x6(n == null || Pi(n)), n; + } + function ll(n) { + n.o == null && cMe(n); + } + function rV(n) { + if (!n) + throw M(new W9()); + } + function dae(n) { + if (!n) + throw M(new uD()); + } + function oe(n) { + if (!n) + throw M(new nc()); + } + function Bb(n) { + if (!n) + throw M(new Eu()); + } + function EAn(n) { + if (!n) + throw M(new Bo()); + } + function p4() { + p4 = F, aE = new ujn(), new ojn(); + } + function Tg() { + Tg = F, D2 = new lt("root"); + } + function cV() { + cxn.call(this), this.Bb |= fr; + } + function bae(n, e) { + this.d = n, c9n(this), this.b = e; + } + function uV(n, e) { + i$.call(this, n), this.a = e; + } + function oV(n, e) { + i$.call(this, n), this.a = e; + } + function sV(n, e, t) { + VM.call(this, n, e, t, null); + } + function CAn(n, e, t) { + VM.call(this, n, e, t, null); + } + function A7(n, e) { + this.c = n, f4.call(this, n, e); + } + function N6(n, e) { + this.a = n, A7.call(this, n, e); + } + function fV(n) { + this.q = new y.Date(rd(n)); + } + function MAn(n) { + return n > 8 ? 0 : n + 1; + } + function TAn(n, e) { + qf || nn(n.a, e); + } + function wae(n, e) { + return c7(), J4(e.d.i, n); + } + function gae(n, e) { + return Hp(), new tUn(e, n); + } + function pae(n, e, t) { + return n.Ne(e, t) <= 0 ? t : e; + } + function mae(n, e, t) { + return n.Ne(e, t) <= 0 ? e : t; + } + function vae(n, e) { + return u(Lf(n.b, e), 143); + } + function kae(n, e) { + return u(Lf(n.c, e), 233); + } + function OL(n) { + return u(sn(n.a, n.b), 294); + } + function AAn(n) { + return new V(n.c, n.d + n.a); + } + function SAn(n) { + return Jn(n), n ? 1231 : 1237; + } + function PAn(n) { + return ko(), oTn(u(n, 203)); + } + function Rb() { + Rb = F, ron = jn((go(), zd)); + } + function yae(n, e) { + e.a ? MCe(n, e) : EL(n.a, e.b); + } + function S7(n, e, t) { + ++n.j, n.tj(), t$(n, e, t); + } + function IAn(n, e, t) { + ++n.j, n.qj(e, n.Zi(e, t)); + } + function OAn(n, e, t) { + var i; + i = n.fd(e), i.Rb(t); + } + function hV(n, e, t) { + return t = So(n, e, 6, t), t; + } + function lV(n, e, t) { + return t = So(n, e, 3, t), t; + } + function aV(n, e, t) { + return t = So(n, e, 9, t), t; + } + function ch(n, e) { + return G7(e, xtn), n.f = e, n; + } + function dV(n, e) { + return (e & et) % n.d.length; + } + function DAn(n, e, t) { + return zen(n.c, n.b, e, t); + } + function LAn(n, e) { + this.c = n, P0.call(this, e); + } + function NAn(n, e) { + this.a = n, kyn.call(this, e); + } + function P7(n, e) { + this.a = n, kyn.call(this, e); + } + function Dt(n, e) { + lt.call(this, n), this.a = e; + } + function bV(n, e) { + FG.call(this, n), this.a = e; + } + function DL(n, e) { + FG.call(this, n), this.a = e; + } + function jae(n) { + VY.call(this, 0, 0), this.f = n; + } + function $An(n, e, t) { + return n.a += ws(e, 0, t), n; + } + function I7(n) { + return !n.a && (n.a = new C0n()), n.a; + } + function wV(n, e) { + var t; + return t = n.e, n.e = e, t; + } + function gV(n, e) { + var t; + return t = e, !!n.Fe(t); + } + function Eae(n, e) { + return _n(), n == e ? 0 : n ? 1 : -1; + } + function Kb(n, e) { + n.a.bd(n.b, e), ++n.b, n.c = -1; + } + function O7(n) { + n.b ? O7(n.b) : n.f.c.zc(n.e, n.d); + } + function xAn(n) { + Ku(n.e), n.d.b = n.d, n.d.a = n.d; + } + function Cae(n, e, t) { + Wa(), t9n(n, e.Ve(n.a, t)); + } + function pV(n, e, t) { + return Pp(n, u(e, 22), t); + } + function xs(n, e) { + return qE(new Array(e), n); + } + function Mae(n) { + return Ae(U1(n, 32)) ^ Ae(n); + } + function LL(n) { + return String.fromCharCode(n); + } + function Tae(n) { + return n == null ? null : n.message; + } + function Aae(n, e, t) { + return n.apply(e, t); + } + function Sae(n, e) { + var t; + t = n[DB], t.call(n, e); + } + function Pae(n, e) { + var t; + t = n[DB], t.call(n, e); + } + function Iae(n, e) { + return c7(), !J4(e.d.i, n); + } + function mV(n, e, t, i) { + rM.call(this, n, e, t, i); + } + function FAn() { + qC.call(this), this.a = new Ni(); + } + function vV() { + this.n = new Ni(), this.o = new Ni(); + } + function BAn() { + this.b = new Ni(), this.c = new Z(); + } + function RAn() { + this.a = new Z(), this.b = new Z(); + } + function KAn() { + this.a = new _U(), this.b = new Byn(); + } + function kV() { + this.b = new Yl(), this.a = new Yl(); + } + function _An() { + this.b = new ei(), this.a = new ei(); + } + function HAn() { + this.b = new de(), this.a = new de(); + } + function qAn() { + this.b = new wEn(), this.a = new H3n(); + } + function UAn() { + this.a = new n8n(), this.b = new Lpn(); + } + function GAn() { + this.a = new Z(), this.d = new Z(); + } + function qC() { + this.n = new up(), this.i = new mp(); + } + function zAn(n) { + this.a = (Co(n, vw), new zc(n)); + } + function XAn(n) { + this.a = (Co(n, vw), new zc(n)); + } + function Oae(n) { + return n < 100 ? null : new F1(n); + } + function Dae(n, e) { + return n.n.a = (Jn(e), e + 10); + } + function Lae(n, e) { + return n.n.a = (Jn(e), e + 10); + } + function Nae(n, e) { + return e == n || vm(TA(e), n); + } + function VAn(n, e) { + return Xe(n.a, e, "") == null; + } + function $ae(n, e) { + var t; + return t = e.qi(n.a), t; + } + function tt(n, e) { + return n.a += e.a, n.b += e.b, n; + } + function vi(n, e) { + return n.a -= e.a, n.b -= e.b, n; + } + function xae(n) { + return Ib(n.j.c, 0), n.a = -1, n; + } + function yV(n, e, t) { + return t = So(n, e, 11, t), t; + } + function Fae(n, e, t) { + t != null && mT(e, Fx(n, t)); + } + function Bae(n, e, t) { + t != null && vT(e, Fx(n, t)); + } + function jp(n, e, t, i) { + q.call(this, n, e, t, i); + } + function jV(n, e, t, i) { + q.call(this, n, e, t, i); + } + function WAn(n, e, t, i) { + jV.call(this, n, e, t, i); + } + function JAn(n, e, t, i) { + bM.call(this, n, e, t, i); + } + function NL(n, e, t, i) { + bM.call(this, n, e, t, i); + } + function EV(n, e, t, i) { + bM.call(this, n, e, t, i); + } + function QAn(n, e, t, i) { + NL.call(this, n, e, t, i); + } + function CV(n, e, t, i) { + NL.call(this, n, e, t, i); + } + function Nn(n, e, t, i) { + EV.call(this, n, e, t, i); + } + function YAn(n, e, t, i) { + CV.call(this, n, e, t, i); + } + function ZAn(n, e, t, i) { + jW.call(this, n, e, t, i); + } + function _b(n, e) { + Pr.call(this, p8 + n + Ad + e); + } + function MV(n, e) { + return n.jk().wi().ri(n, e); + } + function TV(n, e) { + return n.jk().wi().ti(n, e); + } + function nSn(n, e) { + return Jn(n), x(n) === x(e); + } + function An(n, e) { + return Jn(n), x(n) === x(e); + } + function Rae(n, e) { + return n.b.Bd(new ECn(n, e)); + } + function Kae(n, e) { + return n.b.Bd(new CCn(n, e)); + } + function eSn(n, e) { + return n.b.Bd(new MCn(n, e)); + } + function _ae(n, e) { + return n.e = u(n.d.Kb(e), 159); + } + function AV(n, e, t) { + return n.lastIndexOf(e, t); + } + function Hae(n, e, t) { + return bt(n[e.a], n[t.a]); + } + function qae(n, e) { + return U(e, (cn(), Cj), n); + } + function Uae(n, e) { + return Ec(e.a.d.p, n.a.d.p); + } + function Gae(n, e) { + return Ec(n.a.d.p, e.a.d.p); + } + function zae(n, e) { + return bt(n.c - n.s, e.c - e.s); + } + function Xae(n, e) { + return bt(n.b.e.a, e.b.e.a); + } + function Vae(n, e) { + return bt(n.c.e.a, e.c.e.a); + } + function tSn(n) { + return n.c ? qr(n.c.a, n, 0) : -1; + } + function Ep(n) { + return n == Gd || n == el || n == Uc; + } + function SV(n, e) { + this.c = n, oN.call(this, n, e); + } + function iSn(n, e, t) { + this.a = n, JX.call(this, e, t); + } + function rSn(n) { + this.c = n, IC.call(this, Ey, 0); + } + function cSn(n, e, t) { + this.c = e, this.b = t, this.a = n; + } + function D7(n) { + v4(), this.d = n, this.a = new Cg(); + } + function uSn(n) { + uh(), this.a = (Dn(), new i4(n)); + } + function Wae(n, e) { + hl(n.f) ? QCe(n, e) : Sye(n, e); + } + function oSn(n, e) { + sbe.call(this, n, n.length, e); + } + function Jae(n, e) { + qf || e && (n.d = e); + } + function sSn(n, e) { + return D(e, 15) && xqn(n.c, e); + } + function Qae(n, e, t) { + return u(n.c, 71).Wk(e, t); + } + function UC(n, e, t) { + return u(n.c, 71).Xk(e, t); + } + function Yae(n, e, t) { + return oae(n, u(e, 343), t); + } + function PV(n, e, t) { + return sae(n, u(e, 343), t); + } + function Zae(n, e, t) { + return PKn(n, u(e, 343), t); + } + function fSn(n, e, t) { + return _ye(n, u(e, 343), t); + } + function $6(n, e) { + return e == null ? null : iw(n.b, e); + } + function IV(n) { + return xb(n) ? (Jn(n), n) : n.ue(); + } + function GC(n) { + return !isNaN(n) && !isFinite(n); + } + function $L(n) { + jTn(this), vo(this), Ri(this, n); + } + function Ru(n) { + pL(this), zV(this.c, 0, n.Pc()); + } + function _o(n, e, t) { + this.a = n, this.b = e, this.c = t; + } + function hSn(n, e, t) { + this.a = n, this.b = e, this.c = t; + } + function lSn(n, e, t) { + this.d = n, this.b = t, this.a = e; + } + function aSn(n) { + this.a = n, fl(), vc(Date.now()); + } + function dSn(n) { + bo(n.a), GJ(n.c, n.b), n.b = null; + } + function xL() { + xL = F, Oun = new $0n(), AQn = new x0n(); + } + function bSn() { + bSn = F, Ioe = K(yi, Bn, 1, 0, 5, 1); + } + function wSn() { + wSn = F, Voe = K(yi, Bn, 1, 0, 5, 1); + } + function OV() { + OV = F, Woe = K(yi, Bn, 1, 0, 5, 1); + } + function uh() { + uh = F, new KG((Dn(), Dn(), or)); + } + function nde(n) { + return F4(), Ee((yNn(), IQn), n); + } + function ede(n) { + return qu(), Ee((lNn(), xQn), n); + } + function tde(n) { + return YT(), Ee((JDn(), HQn), n); + } + function ide(n) { + return cT(), Ee((QDn(), qQn), n); + } + function rde(n) { + return NA(), Ee((Jxn(), UQn), n); + } + function cde(n) { + return wf(), Ee((fNn(), XQn), n); + } + function ude(n) { + return Hu(), Ee((sNn(), WQn), n); + } + function ode(n) { + return du(), Ee((hNn(), QQn), n); + } + function sde(n) { + return VA(), Ee((zMn(), kYn), n); + } + function fde(n) { + return $0(), Ee((ENn(), jYn), n); + } + function hde(n) { + return Vp(), Ee((MNn(), CYn), n); + } + function lde(n) { + return T5(), Ee((CNn(), AYn), n); + } + function ade(n) { + return YE(), Ee((jDn(), SYn), n); + } + function dde(n) { + return uT(), Ee((YDn(), GYn), n); + } + function bde(n) { + return t5(), Ee((aNn(), pZn), n); + } + function wde(n) { + return Vi(), Ee((u$n(), yZn), n); + } + function gde(n) { + return Z4(), Ee((ANn(), TZn), n); + } + function pde(n) { + return bd(), Ee((TNn(), DZn), n); + } + function DV(n, e) { + if (!n) + throw M(new Gn(e)); + } + function m4(n) { + if (!n) + throw M(new Ir(btn)); + } + function FL(n, e) { + if (n != e) + throw M(new Bo()); + } + function gSn(n, e, t) { + this.a = n, this.b = e, this.c = t; + } + function LV(n, e, t) { + this.a = n, this.b = e, this.c = t; + } + function pSn(n, e, t) { + this.a = n, this.b = e, this.c = t; + } + function zC(n, e, t) { + this.b = n, this.a = e, this.c = t; + } + function NV(n, e, t) { + this.b = n, this.c = e, this.a = t; + } + function $V(n, e, t) { + this.a = n, this.b = e, this.c = t; + } + function XC(n, e, t) { + this.e = e, this.b = n, this.d = t; + } + function mSn(n, e, t) { + this.b = n, this.a = e, this.c = t; + } + function mde(n, e, t) { + return Wa(), n.a.Yd(e, t), e; + } + function BL(n) { + var e; + return e = new ubn(), e.e = n, e; + } + function xV(n) { + var e; + return e = new qyn(), e.b = n, e; + } + function L7() { + L7 = F, CP = new sgn(), MP = new fgn(); + } + function VC() { + VC = F, XZn = new xgn(), zZn = new Fgn(); + } + function Fs() { + Fs = F, YZn = new G2n(), ZZn = new z2n(); + } + function vde(n) { + return L0(), Ee((qLn(), fne), n); + } + function kde(n) { + return er(), Ee((XMn(), HZn), n); + } + function yde(n) { + return OT(), Ee((PNn(), GZn), n); + } + function jde(n) { + return $f(), Ee((SNn(), tne), n); + } + function Ede(n) { + return sw(), Ee((o$n(), rne), n); + } + function Cde(n) { + return DA(), Ee(($xn(), hne), n); + } + function Mde(n) { + return Yp(), Ee((D$n(), lne), n); + } + function Tde(n) { + return QM(), Ee((cLn(), ane), n); + } + function Ade(n) { + return c5(), Ee((_Ln(), dne), n); + } + function Sde(n) { + return bT(), Ee((HLn(), bne), n); + } + function Pde(n) { + return s1(), Ee((s$n(), wne), n); + } + function Ide(n) { + return wk(), Ee((eLn(), gne), n); + } + function Ode(n) { + return ym(), Ee(($$n(), jne), n); + } + function Dde(n) { + return mr(), Ee((aFn(), Ene), n); + } + function Lde(n) { + return Y4(), Ee((GLn(), Cne), n); + } + function Nde(n) { + return vl(), Ee((zLn(), Tne), n); + } + function $de(n) { + return KM(), Ee((nLn(), Ane), n); + } + function xde(n) { + return Vk(), Ee((N$n(), yne), n); + } + function Fde(n) { + return ld(), Ee((ULn(), mne), n); + } + function Bde(n) { + return vA(), Ee((L$n(), vne), n); + } + function Rde(n) { + return sk(), Ee((tLn(), kne), n); + } + function Kde(n) { + return Yo(), Ee((h$n(), Sne), n); + } + function _de(n) { + return d1(), Ee((Xxn(), Yte), n); + } + function Hde(n) { + return w5(), Ee((XLn(), Zte), n); + } + function qde(n) { + return uw(), Ee((INn(), nie), n); + } + function Ude(n) { + return M5(), Ee((f$n(), eie), n); + } + function Gde(n) { + return ps(), Ee((dFn(), tie), n); + } + function zde(n) { + return hh(), Ee((ONn(), iie), n); + } + function Xde(n) { + return dk(), Ee((iLn(), rie), n); + } + function Vde(n) { + return pr(), Ee((JLn(), uie), n); + } + function Wde(n) { + return ST(), Ee((VLn(), oie), n); + } + function Jde(n) { + return a5(), Ee((WLn(), sie), n); + } + function Qde(n) { + return um(), Ee((QLn(), fie), n); + } + function Yde(n) { + return dT(), Ee((YLn(), hie), n); + } + function Zde(n) { + return DT(), Ee((ZLn(), lie), n); + } + function n0e(n) { + return D0(), Ee((oNn(), Aie), n); + } + function e0e(n) { + return Z6(), Ee((rLn(), Die), n); + } + function t0e(n) { + return sh(), Ee((sLn(), Rie), n); + } + function i0e(n) { + return Sf(), Ee((fLn(), _ie), n); + } + function r0e(n) { + return af(), Ee((hLn(), tre), n); + } + function c0e(n) { + return T0(), Ee((lLn(), fre), n); + } + function u0e(n) { + return Qp(), Ee((BNn(), hre), n); + } + function o0e(n) { + return K5(), Ee((VMn(), lre), n); + } + function s0e(n) { + return d5(), Ee((nNn(), are), n); + } + function f0e(n) { + return b5(), Ee((FNn(), $re), n); + } + function h0e(n) { + return FM(), Ee((uLn(), xre), n); + } + function l0e(n) { + return yT(), Ee((oLn(), _re), n); + } + function a0e(n) { + return wA(), Ee((l$n(), qre), n); + } + function d0e(n) { + return Pk(), Ee((eNn(), Gre), n); + } + function b0e(n) { + return ZM(), Ee((aLn(), Ure), n); + } + function w0e(n) { + return sA(), Ee((xNn(), lce), n); + } + function g0e(n) { + return AT(), Ee((tNn(), ace), n); + } + function p0e(n) { + return XT(), Ee((iNn(), dce), n); + } + function m0e(n) { + return rA(), Ee((rNn(), wce), n); + } + function v0e(n) { + return _T(), Ee((cNn(), mce), n); + } + function k0e(n) { + return GM(), Ee((dLn(), Rce), n); + } + function y0e(n) { + return X4(), Ee((ZDn(), _Zn), n); + } + function j0e(n) { + return Vn(), Ee((x$n(), xZn), n); + } + function E0e(n) { + return nT(), Ee((uNn(), Kce), n); + } + function C0e(n) { + return N$(), Ee((bLn(), _ce), n); + } + function M0e(n) { + return x5(), Ee((a$n(), qce), n); + } + function T0e(n) { + return eC(), Ee((IDn(), Gce), n); + } + function A0e(n) { + return $k(), Ee((bNn(), Uce), n); + } + function S0e(n) { + return tC(), Ee((ODn(), Xce), n); + } + function P0e(n) { + return ik(), Ee((wLn(), Vce), n); + } + function I0e(n) { + return Jk(), Ee((d$n(), Wce), n); + } + function O0e(n) { + return s6(), Ee((DDn(), lue), n); + } + function D0e(n) { + return Mk(), Ee((gLn(), aue), n); + } + function L0e(n) { + return pf(), Ee((w$n(), mue), n); + } + function N0e(n) { + return a1(), Ee((Lxn(), kue), n); + } + function $0e(n) { + return Bh(), Ee((F$n(), yue), n); + } + function x0e(n) { + return gd(), Ee((B$n(), Aue), n); + } + function F0e(n) { + return ui(), Ee((b$n(), zue), n); + } + function B0e(n) { + return Nf(), Ee((wNn(), Xue), n); + } + function R0e(n) { + return El(), Ee((RNn(), Vue), n); + } + function K0e(n) { + return pA(), Ee((R$n(), Wue), n); + } + function _0e(n) { + return jl(), Ee((dNn(), Que), n); + } + function H0e(n) { + return To(), Ee((KNn(), Zue), n); + } + function q0e(n) { + return aw(), Ee((Wxn(), noe), n); + } + function U0e(n) { + return Bg(), Ee((g$n(), eoe), n); + } + function G0e(n) { + return Li(), Ee((K$n(), toe), n); + } + function z0e(n) { + return Uu(), Ee((_$n(), ioe), n); + } + function X0e(n) { + return en(), Ee((p$n(), roe), n); + } + function V0e(n) { + return go(), Ee((_Nn(), foe), n); + } + function W0e(n) { + return to(), Ee((Vxn(), hoe), n); + } + function J0e(n) { + return Gp(), Ee((gNn(), loe), n); + } + function Q0e(n, e) { + return Jn(n), n + (Jn(e), e); + } + function Y0e(n) { + return RL(), Ee((pLn(), aoe), n); + } + function Z0e(n) { + return qT(), Ee((HNn(), doe), n); + } + function nbe(n) { + return LT(), Ee((qNn(), goe), n); + } + function v4() { + v4 = F, tln = (en(), Wn), II = Zn; + } + function RL() { + RL = F, vdn = new VSn(), kdn = new LPn(); + } + function ebe(n) { + return !n.e && (n.e = new Z()), n.e; + } + function KL(n, e) { + this.c = n, this.a = e, this.b = e - n; + } + function vSn(n, e, t) { + this.a = n, this.b = e, this.c = t; + } + function _L(n, e, t) { + this.a = n, this.b = e, this.c = t; + } + function FV(n, e, t) { + this.a = n, this.b = e, this.c = t; + } + function BV(n, e, t) { + this.a = n, this.b = e, this.c = t; + } + function kSn(n, e, t) { + this.a = n, this.b = e, this.c = t; + } + function ySn(n, e, t) { + this.a = n, this.b = e, this.c = t; + } + function Vl(n, e, t) { + this.e = n, this.a = e, this.c = t; + } + function jSn(n, e, t) { + Ko(), tJ.call(this, n, e, t); + } + function HL(n, e, t) { + Ko(), RW.call(this, n, e, t); + } + function RV(n, e, t) { + Ko(), RW.call(this, n, e, t); + } + function KV(n, e, t) { + Ko(), RW.call(this, n, e, t); + } + function ESn(n, e, t) { + Ko(), HL.call(this, n, e, t); + } + function _V(n, e, t) { + Ko(), HL.call(this, n, e, t); + } + function CSn(n, e, t) { + Ko(), _V.call(this, n, e, t); + } + function MSn(n, e, t) { + Ko(), RV.call(this, n, e, t); + } + function TSn(n, e, t) { + Ko(), KV.call(this, n, e, t); + } + function qL(n) { + rM.call(this, n.d, n.c, n.a, n.b); + } + function HV(n) { + rM.call(this, n.d, n.c, n.a, n.b); + } + function qV(n) { + this.d = n, c9n(this), this.b = nwe(n.d); + } + function tbe(n) { + return Em(), Ee((Nxn(), Poe), n); + } + function N7(n, e) { + return Se(n), Se(e), new NEn(n, e); + } + function Cp(n, e) { + return Se(n), Se(e), new RSn(n, e); + } + function ibe(n, e) { + return Se(n), Se(e), new KSn(n, e); + } + function rbe(n, e) { + return Se(n), Se(e), new qEn(n, e); + } + function UL(n) { + return oe(n.b != 0), Xo(n, n.a.a); + } + function cbe(n) { + return oe(n.b != 0), Xo(n, n.c.b); + } + function ube(n) { + return !n.c && (n.c = new V3()), n.c; + } + function k4(n) { + var e; + return e = new Z(), b$(e, n), e; + } + function obe(n) { + var e; + return e = new ei(), b$(e, n), e; + } + function ASn(n) { + var e; + return e = new GG(), A$(e, n), e; + } + function $7(n) { + var e; + return e = new Ct(), A$(e, n), e; + } + function u(n, e) { + return x6(n == null || Tx(n, e)), n; + } + function sbe(n, e, t) { + TPn.call(this, e, t), this.a = n; + } + function SSn(n, e) { + this.c = n, this.b = e, this.a = !1; + } + function PSn() { + this.a = ";,;", this.b = "", this.c = ""; + } + function ISn(n, e, t) { + this.b = n, _Mn.call(this, e, t); + } + function UV(n, e, t) { + this.c = n, oC.call(this, e, t); + } + function GV(n, e, t) { + a4.call(this, n, e), this.b = t; + } + function zV(n, e, t) { + Bnn(t, 0, n, e, t.length, !1); + } + function Dh(n, e, t, i, r) { + n.b = e, n.c = t, n.d = i, n.a = r; + } + function XV(n, e, t, i, r) { + n.d = e, n.c = t, n.a = i, n.b = r; + } + function fbe(n, e) { + e && (n.b = e, n.a = (X1(e), e.a)); + } + function x7(n, e) { + if (!n) + throw M(new Gn(e)); + } + function Mp(n, e) { + if (!n) + throw M(new Ir(e)); + } + function VV(n, e) { + if (!n) + throw M(new Bjn(e)); + } + function hbe(n, e) { + return ZE(), Ec(n.d.p, e.d.p); + } + function lbe(n, e) { + return kl(), bt(n.e.b, e.e.b); + } + function abe(n, e) { + return kl(), bt(n.e.a, e.e.a); + } + function dbe(n, e) { + return Ec(GSn(n.d), GSn(e.d)); + } + function WC(n, e) { + return e && vM(n, e.d) ? e : null; + } + function bbe(n, e) { + return e == (en(), Wn) ? n.c : n.d; + } + function WV(n) { + return Y1(dwe(Vr(n) ? ds(n) : n)); + } + function wbe(n) { + return new V(n.c + n.b, n.d + n.a); + } + function OSn(n) { + return n != null && !lx(n, D9, L9); + } + function gbe(n, e) { + return (fBn(n) << 4 | fBn(e)) & oi; + } + function DSn(n, e, t, i, r) { + n.c = e, n.d = t, n.b = i, n.a = r; + } + function JV(n) { + var e, t; + e = n.b, t = n.c, n.b = t, n.c = e; + } + function QV(n) { + var e, t; + t = n.d, e = n.a, n.d = e, n.a = t; + } + function pbe(n, e) { + var t; + return t = n.c, PQ(n, e), t; + } + function YV(n, e) { + return e < 0 ? n.g = -1 : n.g = e, n; + } + function JC(n, e) { + return Mme(n), n.a *= e, n.b *= e, n; + } + function LSn(n, e, t) { + A$n.call(this, e, t), this.d = n; + } + function F7(n, e, t) { + pX.call(this, n, e), this.c = t; + } + function QC(n, e, t) { + pX.call(this, n, e), this.c = t; + } + function ZV(n) { + OV(), ME.call(this), this.ci(n); + } + function NSn() { + N4(), Bwe.call(this, (R1(), Ps)); + } + function $Sn(n) { + return nt(), new Lh(0, n); + } + function xSn() { + xSn = F, AU = (Dn(), new nD(IK)); + } + function YC() { + YC = F, new hZ((bD(), HK), (dD(), _K)); + } + function FSn() { + FSn = F, pun = K(Gi, J, 17, 256, 0, 1); + } + function BSn() { + this.b = $(R(rn((Us(), y_)))); + } + function GL(n) { + this.b = n, this.a = Qa(this.b.a).Od(); + } + function RSn(n, e) { + this.b = n, this.a = e, GO.call(this); + } + function KSn(n, e) { + this.a = n, this.b = e, GO.call(this); + } + function _Sn(n, e, t) { + this.a = n, pg.call(this, e, t); + } + function HSn(n, e, t) { + this.a = n, pg.call(this, e, t); + } + function y4(n, e, t) { + var i; + i = new Ub(t), bf(n, e, i); + } + function nW(n, e, t) { + var i; + return i = n[e], n[e] = t, i; + } + function ZC(n) { + var e; + return e = n.slice(), o$(e, n); + } + function nM(n) { + var e; + return e = n.n, n.a.b + e.d + e.a; + } + function qSn(n) { + var e; + return e = n.n, n.e.b + e.d + e.a; + } + function eW(n) { + var e; + return e = n.n, n.e.a + e.b + e.c; + } + function tW(n) { + n.a.b = n.b, n.b.a = n.a, n.a = n.b = null; + } + function Fe(n, e) { + return xt(n, e, n.c.b, n.c), !0; + } + function mbe(n) { + return n.a ? n.a : vN(n); + } + function vbe(n) { + return Lp(), Rh(n) == At(ra(n)); + } + function kbe(n) { + return Lp(), ra(n) == At(Rh(n)); + } + function b0(n, e) { + return I5(n, new a4(e.a, e.b)); + } + function ybe(n, e) { + return yM(), Nx(n, e), new lIn(n, e); + } + function jbe(n, e) { + return n.c < e.c ? -1 : n.c == e.c ? 0 : 1; + } + function USn(n) { + return n.b.c.length - n.e.c.length; + } + function GSn(n) { + return n.e.c.length - n.g.c.length; + } + function zL(n) { + return n.e.c.length + n.g.c.length; + } + function B7(n) { + return n == 0 || isNaN(n) ? n : n < 0 ? -1 : 1; + } + function Ebe(n) { + return !sr(n) && n.c.i.c == n.d.i.c; + } + function Cbe(n) { + return ko(), (en(), su).Hc(n.j); + } + function Mbe(n, e, t) { + return kl(), t.e.a + t.f.a + n * e; + } + function Tbe(n, e, t) { + return kl(), t.e.b + t.f.b + n * e; + } + function Abe(n, e, t) { + return Xe(n.b, u(t.b, 18), e); + } + function Sbe(n, e, t) { + return Xe(n.b, u(t.b, 18), e); + } + function Pbe(n, e, t) { + wDe(n.a, n.b, n.c, u(e, 166), t); + } + function iW(n, e, t, i) { + iZ.call(this, n, e, t, i, 0, 0); + } + function zSn(n) { + OV(), ZV.call(this, n), this.a = -1; + } + function XSn(n, e) { + TPn.call(this, e, 1040), this.a = n; + } + function VSn() { + sMn.call(this, "COUNT_CHILDREN", 0); + } + function eM(n, e) { + k7.call(this, n, e), this.a = this; + } + function Nt(n, e) { + var t; + return t = bN(n, e), t.i = 2, t; + } + function tM(n, e) { + var t; + return ++n.j, t = n.Cj(e), t; + } + function Ke(n, e, t) { + return n.a = -1, YX(n, e.g, t), n; + } + function Ibe(n, e) { + return nn(n, new V(e.a, e.b)); + } + function WSn(n) { + return _p(), K(NI, OS, 40, n, 0, 1); + } + function JSn(n) { + return n.e.Rd().gc() * n.c.Rd().gc(); + } + function XL(n, e, t) { + return new cSn(Kwe(n)._e(), t, e); + } + function Obe(n, e) { + IQ(n, e == null ? null : (Jn(e), e)); + } + function Dbe(n, e) { + SQ(n, e == null ? null : (Jn(e), e)); + } + function Lbe(n, e) { + SQ(n, e == null ? null : (Jn(e), e)); + } + function x6(n) { + if (!n) + throw M(new t4(null)); + } + function rW(n) { + if (n.c.e != n.a) + throw M(new Bo()); + } + function cW(n) { + if (n.e.c != n.b) + throw M(new Bo()); + } + function iM(n) { + for (Se(n); n.Ob(); ) + n.Pb(), n.Qb(); + } + function VL(n) { + v0(), this.a = (Dn(), new nD(Se(n))); + } + function uW(n) { + this.c = n, this.b = this.c.d.vc().Kc(); + } + function Nbe(n) { + n.a.ld(), u(n.a.md(), 16).gc(), wz(); + } + function QSn(n, e) { + return n.a += ws(e, 0, e.length), n; + } + function sn(n, e) { + return Ln(e, n.c.length), n.c[e]; + } + function YSn(n, e) { + return Ln(e, n.a.length), n.a[e]; + } + function $be(n, e) { + return Jn(e), mk(e, (Jn(n), n)); + } + function xbe(n, e) { + return Jn(n), mk(n, (Jn(e), e)); + } + function Ja(n, e, t, i, r, c) { + return jKn(n, e, t, i, r, 0, c); + } + function Fbe(n, e) { + return $t(e, 0, oW(e[0], Ml(1))); + } + function Bbe(n, e) { + return Ml(Zi(Ml(n.a).a, e.a)); + } + function oW(n, e) { + return Bbe(u(n, 168), u(e, 168)); + } + function ZSn() { + ZSn = F, mun = K(ib, J, 168, 256, 0, 1); + } + function nPn() { + nPn = F, yun = K(rb, J, 191, 256, 0, 1); + } + function ePn() { + ePn = F, bun = K(p3, J, 222, 256, 0, 1); + } + function tPn() { + tPn = F, gun = K(A8, J, 180, 128, 0, 1); + } + function sW() { + Dh(this, !1, !1, !1, !1); + } + function fW(n) { + CG.call(this, new Yl()), Ri(this, n); + } + function F6(n) { + this.a = new ap(n.gc()), Ri(this, n); + } + function iPn(n) { + this.c = n, this.a = new dp(this.c.a); + } + function rPn(n) { + this.a = n, this.c = new de(), o6e(this); + } + function cPn() { + this.d = new V(0, 0), this.e = new ei(); + } + function Tn(n, e) { + Wa(), i$.call(this, n), this.a = e; + } + function rM(n, e, t, i) { + XV(this, n, e, t, i); + } + function Rbe(n, e, t) { + return Ec(e.d[n.g], t.d[n.g]); + } + function Kbe(n, e, t) { + return Ec(n.d[e.p], n.d[t.p]); + } + function _be(n, e, t) { + return Ec(n.d[e.p], n.d[t.p]); + } + function Hbe(n, e, t) { + return Ec(n.d[e.p], n.d[t.p]); + } + function qbe(n, e, t) { + return Ec(n.d[e.p], n.d[t.p]); + } + function cM(n, e, t) { + return y.Math.min(t / n, 1 / e); + } + function uPn(n, e) { + return n ? 0 : y.Math.max(0, e - 1); + } + function WL(n, e) { + return n == null ? e == null : An(n, e); + } + function Ube(n, e) { + return n == null ? e == null : JT(n, e); + } + function oPn(n) { + return n.q ? n.q : (Dn(), Dn(), Vh); + } + function sPn(n) { + return n.c - u(sn(n.a, n.b), 294).b; + } + function ao(n) { + return n.c ? n.c.f : n.e.b; + } + function Au(n) { + return n.c ? n.c.g : n.e.a; + } + function Gbe(n, e) { + return n.a == null && qqn(n), n.a[e]; + } + function fPn(n) { + var e; + return e = CKn(n), e ? fPn(e) : n; + } + function uM(n, e) { + return nt(), new SW(n, e); + } + function Lh(n, e) { + nt(), Jd.call(this, n), this.a = e; + } + function oM(n, e) { + Ko(), LE.call(this, e), this.a = n; + } + function B6(n, e, t) { + this.a = n, ii.call(this, e, t, 2); + } + function hPn(n) { + this.b = new Ct(), this.a = n, this.c = -1; + } + function lPn(n) { + JX.call(this, 0, 0), this.a = n, this.b = 0; + } + function sM(n) { + P0.call(this, n.gc()), Kt(this, n); + } + function fM(n) { + n.b ? fM(n.b) : n.d.dc() && n.f.c.Bc(n.e); + } + function hW(n) { + return Array.isArray(n) && n.Tm === Q2; + } + function JL(n, e) { + return D(e, 22) && Tu(n, u(e, 22)); + } + function aPn(n, e) { + return D(e, 22) && kme(n, u(e, 22)); + } + function gr(n, e) { + return BFn(n, e, J3e(n, n.b.Ce(e))); + } + function zbe(n, e) { + return n.a.get(e) !== void 0; + } + function lW(n) { + return eo(n, 26) * J5 + eo(n, 27) * Q5; + } + function dPn(n, e) { + return Rme(new U0n(), new b9n(n), e); + } + function QL(n, e, t) { + xFn(0, e, n.length), x4(n, 0, e, t); + } + function w0(n, e, t) { + Xb(e, n.c.length), d6(n.c, e, t); + } + function hM(n, e, t) { + var i; + n && (i = n.i, i.c = e, i.b = t); + } + function lM(n, e, t) { + var i; + n && (i = n.i, i.d = e, i.a = t); + } + function bPn(n, e, t) { + var i; + for (i = 0; i < e; ++i) + n[i] = t; + } + function Xbe(n, e) { + var t; + for (t = 0; t < e; ++t) + n[t] = -1; + } + function yt(n, e) { + var t; + return t = jn(n), eY(t, e), t; + } + function Vbe(n, e) { + return !n && (n = []), n[n.length] = e, n; + } + function YL(n, e) { + tt(n.c, e), n.b.c += e.a, n.b.d += e.b; + } + function Wbe(n, e) { + YL(n, vi(new V(e.a, e.b), n.c)); + } + function ZL(n, e) { + this.b = new Ct(), this.a = n, this.c = e; + } + function wPn() { + this.b = new twn(), this.c = new WIn(this); + } + function aW() { + this.d = new ibn(), this.e = new VIn(this); + } + function dW() { + oJ(), this.f = new Ct(), this.e = new Ct(); + } + function gPn() { + ko(), this.k = new de(), this.d = new ei(); + } + function nN() { + nN = F, moe = new $i((He(), uo), 0); + } + function pPn() { + pPn = F, cQn = new lPn(K(yi, Bn, 1, 0, 5, 1)); + } + function Jbe(n, e, t) { + return hi(n, new bp(e.a, t.a)); + } + function Qbe(n, e, t) { + return -Ec(n.f[e.p], n.f[t.p]); + } + function Ybe(n, e, t) { + DHn(t, n, 1), nn(e, new DCn(t, n)); + } + function Zbe(n, e, t) { + P5(t, n, 1), nn(e, new $Cn(t, n)); + } + function mPn(n, e, t) { + this.a = n, $C.call(this, e, t, 22); + } + function vPn(n, e, t) { + this.a = n, $C.call(this, e, t, 14); + } + function kPn(n, e, t, i) { + Ko(), rDn.call(this, n, e, t, i); + } + function yPn(n, e, t, i) { + Ko(), rDn.call(this, n, e, t, i); + } + function Su(n, e, t) { + return n.a = -1, YX(n, e.g + 1, t), n; + } + function bW(n, e, t) { + return t = So(n, u(e, 54), 7, t), t; + } + function wW(n, e, t) { + return t = So(n, u(e, 54), 3, t), t; + } + function Ae(n) { + return Vr(n) ? n | 0 : cEn(n); + } + function jPn(n) { + return nt(), new IN(10, n, 0); + } + function EPn(n) { + var e; + return e = n.f, e || (n.f = n.Dc()); + } + function Tp(n) { + var e; + return e = n.i, e || (n.i = n.bc()); + } + function aM(n) { + if (n.e.j != n.d) + throw M(new Bo()); + } + function Qa(n) { + return n.c ? n.c : n.c = n.Sd(); + } + function eN(n) { + return n.d ? n.d : n.d = n.Td(); + } + function R6(n, e) { + return q8e(hk(n, e)) ? e.zi() : null; + } + function nwe(n) { + return D(n, 15) ? u(n, 15).ed() : n.Kc(); + } + function gW(n) { + return n.Qc(K(yi, Bn, 1, n.gc(), 5, 1)); + } + function CPn(n) { + return n != null && uN(n) && n.Tm !== Q2; + } + function pW(n) { + return !Array.isArray(n) && n.Tm === Q2; + } + function MPn(n, e) { + return Se(e), n.a.Jd(e) && !n.b.Jd(e); + } + function ewe(n, e) { + return Yc(n.l & e.l, n.m & e.m, n.h & e.h); + } + function twe(n, e) { + return Yc(n.l | e.l, n.m | e.m, n.h | e.h); + } + function iwe(n, e) { + return Yc(n.l ^ e.l, n.m ^ e.m, n.h ^ e.h); + } + function Bs(n, e) { + return Y1(t_n(Vr(n) ? ds(n) : n, e)); + } + function g0(n, e) { + return Y1(Xnn(Vr(n) ? ds(n) : n, e)); + } + function U1(n, e) { + return Y1(Bje(Vr(n) ? ds(n) : n, e)); + } + function rwe(n, e) { + return Eae((Jn(n), n), (Jn(e), e)); + } + function tN(n, e) { + return bt((Jn(n), n), (Jn(e), e)); + } + function dM(n) { + this.b = new zc(11), this.a = (E0(), n); + } + function ie(n) { + this.a = (pPn(), cQn), this.d = u(Se(n), 51); + } + function TPn(n, e) { + this.c = 0, this.d = n, this.b = e | 64 | bh; + } + function mW(n, e) { + this.e = n, this.d = e & 64 ? e | bh : e; + } + function iN(n) { + this.b = null, this.a = (E0(), n || Pun); + } + function APn(n) { + xC(this), this.g = n, MM(this), this.je(); + } + function Ya(n) { + K1(), this.a = 0, this.b = n - 1, this.c = 1; + } + function vW(n, e, t, i) { + this.a = n, VM.call(this, n, e, t, i); + } + function cwe(n, e, t) { + n.a.Mb(t) && (n.b = !0, e.Cd(t)); + } + function kW(n) { + n.d || (n.d = n.b.Kc(), n.c = n.b.gc()); + } + function j4(n, e) { + if (n < 0 || n >= e) + throw M(new YG()); + } + function Hb(n, e) { + return Lk(n, (Jn(e), new a9n(e))); + } + function Ap(n, e) { + return Lk(n, (Jn(e), new d9n(e))); + } + function SPn(n, e, t) { + return VLe(n, u(e, 12), u(t, 12)); + } + function PPn(n) { + return Iu(), u(n, 12).g.c.length != 0; + } + function IPn(n) { + return Iu(), u(n, 12).e.c.length != 0; + } + function uwe(n, e) { + return Hp(), bt(e.a.o.a, n.a.o.a); + } + function owe(n, e) { + e.Bb & kc && !n.a.o && (n.a.o = e); + } + function swe(n, e) { + e.Ug("General 'Rotator", 1), jDe(n); + } + function fwe(n, e, t) { + e.qf(t, $(R(ee(n.b, t))) * n.a); + } + function OPn(n, e, t) { + return Vg(), V4(n, e) && V4(n, t); + } + function K6(n) { + return Uu(), !n.Hc(Fl) && !n.Hc(Ia); + } + function hwe(n) { + return n.e ? qJ(n.e) : null; + } + function _6(n) { + return Vr(n) ? "" + n : $qn(n); + } + function yW(n) { + var e; + for (e = n; e.f; ) + e = e.f; + return e; + } + function lwe(n, e, t) { + return $t(e, 0, oW(e[0], t[0])), e; + } + function Wl(n, e, t, i) { + var r; + r = n.i, r.i = e, r.a = t, r.b = i; + } + function q(n, e, t, i) { + ii.call(this, n, e, t), this.b = i; + } + function Mi(n, e, t, i, r) { + c$.call(this, n, e, t, i, r, -1); + } + function H6(n, e, t, i, r) { + ck.call(this, n, e, t, i, r, -1); + } + function bM(n, e, t, i) { + F7.call(this, n, e, t), this.b = i; + } + function DPn(n) { + PMn.call(this, n, !1), this.a = !1; + } + function LPn() { + sMn.call(this, "LOOKAHEAD_LAYOUT", 1); + } + function NPn(n) { + this.b = n, kp.call(this, n), RTn(this); + } + function $Pn(n) { + this.b = n, M7.call(this, n), KTn(this); + } + function qb(n, e, t) { + this.a = n, jp.call(this, e, t, 5, 6); + } + function jW(n, e, t, i) { + this.b = n, ii.call(this, e, t, i); + } + function xPn(n, e) { + this.b = n, H8n.call(this, n.b), this.a = e; + } + function FPn(n) { + this.a = kRn(n.a), this.b = new Ru(n.b); + } + function EW(n, e) { + v0(), Hhe.call(this, n, FT(new Bu(e))); + } + function wM(n, e) { + return nt(), new BW(n, e, 0); + } + function rN(n, e) { + return nt(), new BW(6, n, e); + } + function _i(n, e) { + for (Jn(e); n.Ob(); ) + e.Cd(n.Pb()); + } + function Zc(n, e) { + return Pi(e) ? AN(n, e) : !!gr(n.f, e); + } + function cN(n, e) { + return e.Vh() ? ea(n.b, u(e, 54)) : e; + } + function awe(n, e) { + return An(n.substr(0, e.length), e); + } + function Nh(n) { + return new ie(new UX(n.a.length, n.a)); + } + function gM(n) { + return new V(n.c + n.b / 2, n.d + n.a / 2); + } + function dwe(n) { + return Yc(~n.l & io, ~n.m & io, ~n.h & Il); + } + function uN(n) { + return typeof n === vy || typeof n === eB; + } + function Ku(n) { + n.f = new iTn(n), n.i = new rTn(n), ++n.g; + } + function BPn(n) { + if (!n) + throw M(new nc()); + return n.d; + } + function Sp(n) { + var e; + return e = l5(n), oe(e != null), e; + } + function bwe(n) { + var e; + return e = I5e(n), oe(e != null), e; + } + function E4(n, e) { + var t; + return t = n.a.gc(), BJ(e, t), t - e; + } + function hi(n, e) { + var t; + return t = n.a.zc(e, n), t == null; + } + function R7(n, e) { + return n.a.zc(e, (_n(), ga)) == null; + } + function CW(n) { + return new Tn(null, vwe(n, n.length)); + } + function MW(n, e, t) { + return cGn(n, u(e, 42), u(t, 176)); + } + function Pp(n, e, t) { + return _s(n.a, e), nW(n.b, e.g, t); + } + function wwe(n, e, t) { + j4(t, n.a.c.length), Go(n.a, t, e); + } + function B(n, e, t, i) { + xFn(e, t, n.length), gwe(n, e, t, i); + } + function gwe(n, e, t, i) { + var r; + for (r = e; r < t; ++r) + n[r] = i; + } + function TW(n, e) { + var t; + for (t = 0; t < e; ++t) + n[t] = !1; + } + function Za(n, e, t) { + ah(), this.e = n, this.d = e, this.a = t; + } + function AW(n, e, t) { + this.c = n, this.a = e, Dn(), this.b = t; + } + function oN(n, e) { + this.d = n, ne.call(this, n), this.e = e; + } + function hf(n, e, t) { + return $6e(n, e.g, t), _s(n.c, e), n; + } + function pwe(n) { + return Yg(n, (ui(), Fr)), n.d = !0, n; + } + function sN(n) { + return !n.j && Mfe(n, ySe(n.g, n.b)), n.j; + } + function RPn(n) { + n.a = null, n.e = null, Ku(n.b), n.d = 0, ++n.c; + } + function q6(n) { + Bb(n.b != -1), Zl(n.c, n.a = n.b), n.b = -1; + } + function SW(n, e) { + Jd.call(this, 1), this.a = n, this.b = e; + } + function mwe(n, e) { + return n > 0 ? y.Math.log(n / e) : -100; + } + function KPn(n, e) { + return Cc(n, e) < 0 ? -1 : Cc(n, e) > 0 ? 1 : 0; + } + function K7(n, e) { + OTn(n, D(e, 160) ? e : u(e, 2036).Rl()); + } + function PW(n, e) { + if (n == null) + throw M(new fp(e)); + } + function vwe(n, e) { + return yme(e, n.length), new XSn(n, e); + } + function IW(n, e) { + return e ? Ri(n, e) : !1; + } + function kwe() { + return RE(), A(T(uQn, 1), G, 549, 0, [GK]); + } + function U6(n) { + return n.e == 0 ? n : new Za(-n.e, n.d, n.a); + } + function ywe(n, e) { + return bt(n.c.c + n.c.b, e.c.c + e.c.b); + } + function _7(n, e) { + xt(n.d, e, n.b.b, n.b), ++n.a, n.c = null; + } + function _Pn(n, e) { + return n.c ? _Pn(n.c, e) : nn(n.b, e), n; + } + function jwe(n, e, t) { + var i; + return i = Qb(n, e), qN(n, e, t), i; + } + function HPn(n, e, t) { + var i; + for (i = 0; i < e; ++i) + $t(n, i, t); + } + function qPn(n, e, t, i, r) { + for (; e < t; ) + i[r++] = Xi(n, e++); + } + function C4(n, e, t, i, r) { + Qx(n, u(ot(e.k, t), 15), t, i, r); + } + function p0(n, e) { + Ut(_r(n.Oc(), new lpn()), new C7n(e)); + } + function Ewe(n, e) { + return bt(n.e.a + n.f.a, e.e.a + e.f.a); + } + function Cwe(n, e) { + return bt(n.e.b + n.f.b, e.e.b + e.f.b); + } + function fN(n) { + return y.Math.abs(n.d.e - n.e.e) - n.a; + } + function Mwe(n) { + return n == St ? nj : n == ai ? "-INF" : "" + n; + } + function Twe(n) { + return n == St ? nj : n == ai ? "-INF" : "" + n; + } + function Awe(n) { + return Lp(), At(Rh(n)) == At(ra(n)); + } + function Swe(n, e, t) { + return u(n.c.hd(e, u(t, 136)), 44); + } + function Pwe(n, e) { + Ip(n, new Ub(e.f != null ? e.f : "" + e.g)); + } + function Iwe(n, e) { + Ip(n, new Ub(e.f != null ? e.f : "" + e.g)); + } + function Kt(n, e) { + return n.Si() && (e = gOn(n, e)), n.Fi(e); + } + function hN(n, e) { + return e = n.Yk(null, e), BKn(n, null, e); + } + function Owe(n, e) { + ++n.j, Jx(n, n.i, e), nCe(n, u(e, 343)); + } + function OW(n) { + n ? ZZ(n, (fl(), pQn)) : $ge((fl(), n)); + } + function m0(n) { + this.d = (Jn(n), n), this.a = 0, this.c = Ey; + } + function lN(n, e) { + this.d = j5e(n), this.c = e, this.a = 0.5 * e; + } + function UPn(n) { + nJ.call(this), this.a = n, nn(n.a, this); + } + function GPn() { + Yl.call(this), this.a = !0, this.b = !0; + } + function zPn() { + zPn = F, lQn = new dG(!1), aQn = new dG(!0); + } + function G6(n) { + var e; + return e = n.g, e || (n.g = new fG(n)); + } + function pM(n) { + var e; + return e = n.k, e || (n.k = new hG(n)); + } + function DW(n) { + var e; + return e = n.k, e || (n.k = new hG(n)); + } + function Dwe(n) { + var e; + return e = n.i, e || (n.i = new x8n(n)); + } + function XPn(n) { + var e; + return e = n.f, e || (n.f = new qX(n)); + } + function aN(n) { + var e; + return e = n.j, e || (n.j = new W8n(n)); + } + function dN(n) { + var e; + return e = n.d, e || (n.d = new VO(n)); + } + function VPn(n, e, t) { + return nt(), new qOn(n, e, t); + } + function WPn(n, e) { + return Z7(e, n.c.b.c.gc()), new LEn(n, e); + } + function LW(n, e) { + var t; + return t = n.a.gc(), Z7(e, t), t - 1 - e; + } + function w(n, e, t) { + var i; + return i = bN(n, e), G$n(t, i), i; + } + function bN(n, e) { + var t; + return t = new YQ(), t.j = n, t.d = e, t; + } + function Se(n) { + if (n == null) + throw M(new rp()); + return n; + } + function Ub(n) { + if (n == null) + throw M(new rp()); + this.a = n; + } + function JPn(n) { + _G(), this.b = new Z(), this.a = n, COe(this, n); + } + function NW(n) { + this.b = n, this.a = u(as(this.b.a.e), 227); + } + function v0() { + v0 = F, uh(), qK = new PN((Dn(), Dn(), or)); + } + function wN() { + wN = F, uh(), uun = new Bz((Dn(), Dn(), hP)); + } + function G1() { + G1 = F, Hn = ZEe(), On(), ig && nke(); + } + function mM(n) { + n.s = NaN, n.c = NaN, kHn(n, n.e), kHn(n, n.j); + } + function se(n) { + return (n.i == null && dh(n), n.i).length; + } + function QPn(n, e) { + return u(Qa(n.a).Md().Xb(e), 44).ld(); + } + function ee(n, e) { + return Pi(e) ? $c(n, e) : Kr(gr(n.f, e)); + } + function Lwe(n, e) { + return Lp(), n == Rh(e) ? ra(e) : Rh(e); + } + function Nwe(n, e, t, i) { + return t == 0 || (t - i) / t < n.e || e >= n.g; + } + function $t(n, e, t) { + return dae(t == null || sPe(n, t)), n[e] = t; + } + function $W(n, e) { + return zn(e, n.length + 1), n.substr(e); + } + function gN(n, e) { + for (Jn(e); n.c < n.d; ) + n.Se(e, n.c++); + } + function xW(n) { + this.d = n, this.c = n.a.d.a, this.b = n.a.e.g; + } + function YPn(n) { + this.c = n, this.a = new Ct(), this.b = new Ct(); + } + function Nc(n) { + this.c = new Ni(), this.a = new Z(), this.b = n; + } + function ZPn(n) { + this.b = new Z(), this.a = new Z(), this.c = n; + } + function $we(n, e, t) { + u(e.b, 68), nu(e.a, new FV(n, t, e)); + } + function xwe(n, e) { + return Hp(), u(Mr(n, e.d), 15).Fc(e); + } + function Ip(n, e) { + var t; + t = n.a.length, Qb(n, t), qN(n, t, e); + } + function nIn(n, e) { + var t; + t = console[n], t.call(console, e); + } + function eIn(n, e) { + var t; + ++n.j, t = n.Ej(), n.rj(n.Zi(t, e)); + } + function pN(n, e, t) { + var i; + return i = T$(n, e, t), yen(n, i); + } + function k0(n) { + return !n.d && (n.d = new ii(Er, n, 1)), n.d; + } + function Fwe(n) { + return !n.a && (n.a = new ii(Oa, n, 4)), n.a; + } + function M4(n, e) { + return n.a += String.fromCharCode(e), n; + } + function z1(n, e) { + return n.a += String.fromCharCode(e), n; + } + function FW(n, e, t) { + this.a = n, FG.call(this, e), this.b = t; + } + function tIn(n, e, t) { + this.a = n, vJ.call(this, 8, e, null, t); + } + function BW(n, e, t) { + Jd.call(this, n), this.a = e, this.b = t; + } + function RW(n, e, t) { + LE.call(this, e), this.a = n, this.b = t; + } + function iIn(n) { + this.c = n, this.b = this.c.a, this.a = this.c.e; + } + function Bwe(n) { + this.a = (Jn(Be), Be), this.b = n, new tz(); + } + function rIn(n) { + zW(n.a), n.b = K(yi, Bn, 1, n.b.length, 5, 1); + } + function bo(n) { + Bb(n.c != -1), n.d.gd(n.c), n.b = n.c, n.c = -1; + } + function z6(n) { + return y.Math.sqrt(n.a * n.a + n.b * n.b); + } + function vM(n, e) { + return qx(n.c, n.f, e, n.b, n.a, n.e, n.d); + } + function y0(n, e) { + return j4(e, n.a.c.length), sn(n.a, e); + } + function oh(n, e) { + return x(n) === x(e) || n != null && rt(n, e); + } + function cIn(n) { + return D(n, 102) && (u(n, 19).Bb & kc) != 0; + } + function uIn(n) { + return as(n), D(n, 484) ? u(n, 484) : Jr(n); + } + function oIn(n) { + return n ? n.dc() : !n.Kc().Ob(); + } + function Rwe(n) { + return cg ? AN(cg, n) : !1; + } + function Kwe(n) { + return 0 >= n ? new Dz() : Gme(n - 1); + } + function Hi(n) { + return !n.a && n.c ? n.c.b : n.a; + } + function KW(n) { + return D(n, 616) ? n : new oOn(n); + } + function X1(n) { + n.c ? X1(n.c) : (ta(n), n.d = !0); + } + function X6(n) { + n.c ? n.c.$e() : (n.d = !0, fTe(n)); + } + function sIn(n) { + n.b = !1, n.c = !1, n.d = !1, n.a = !1; + } + function fIn(n) { + var e, t; + return e = n.c.i.c, t = n.d.i.c, e == t; + } + function _we(n, e) { + var t; + t = n.Ih(e), t >= 0 ? n.ki(t) : Pnn(n, e); + } + function hIn(n, e) { + n.c < 0 || n.b.b < n.c ? tr(n.b, e) : n.a.tf(e); + } + function Hwe(n, e) { + ve((!n.a && (n.a = new P7(n, n)), n.a), e); + } + function qwe(n, e) { + YL(u(e.b, 68), n), nu(e.a, new IG(n)); + } + function Uwe(n, e) { + return Ec(e.j.c.length, n.j.c.length); + } + function Gwe(n, e, t) { + return qp(), t.Lg(n, u(e.ld(), 149)); + } + function as(n) { + if (n == null) + throw M(new rp()); + return n; + } + function Jn(n) { + if (n == null) + throw M(new rp()); + return n; + } + function zwe(n) { + if (n.p != 4) + throw M(new Eu()); + return n.e; + } + function Xwe(n) { + if (n.p != 3) + throw M(new Eu()); + return n.e; + } + function Vwe(n) { + if (n.p != 3) + throw M(new Eu()); + return n.j; + } + function Wwe(n) { + if (n.p != 4) + throw M(new Eu()); + return n.j; + } + function Jwe(n) { + if (n.p != 6) + throw M(new Eu()); + return n.f; + } + function Qwe(n) { + if (n.p != 6) + throw M(new Eu()); + return n.k; + } + function _W(n) { + return !n.b && (n.b = new NE(new aD())), n.b; + } + function j0(n) { + return n.c == -2 && gfe(n, Uye(n.g, n.b)), n.c; + } + function T4(n, e) { + var t; + return t = bN("", n), t.n = e, t.i = 1, t; + } + function kM(n, e, t, i) { + r0.call(this, n, t), this.a = e, this.f = i; + } + function HW(n, e, t, i) { + r0.call(this, n, e), this.d = t, this.a = i; + } + function lIn(n, e) { + h1e.call(this, zme(Se(n), Se(e))), this.a = e; + } + function ri() { + vjn.call(this), Ib(this.j.c, 0), this.a = -1; + } + function aIn() { + unn.call(this, ks, (u4(), Udn)), vIe(this); + } + function dIn() { + unn.call(this, Pd, (rEn(), ise)), hOe(this); + } + function bIn() { + je.call(this, "DELAUNAY_TRIANGULATION", 0); + } + function Ywe(n) { + return String.fromCharCode.apply(null, n); + } + function Xe(n, e, t) { + return Pi(e) ? Or(n, e, t) : Wc(n.f, e, t); + } + function qW(n) { + return Dn(), n ? n.Oe() : (E0(), E0(), Iun); + } + function Zwe(n) { + return Co(n, cB), oT(Zi(Zi(5, n), n / 10 | 0)); + } + function wIn(n, e) { + return YC(), new hZ(new QTn(n), new JTn(e)); + } + function yM() { + yM = F, rQn = new lz(A(T(Id, 1), WA, 44, 0, [])); + } + function gIn(n) { + return !n.d && (n.d = new J3(n.c.Cc())), n.d; + } + function A4(n) { + return !n.a && (n.a = new qjn(n.c.vc())), n.a; + } + function pIn(n) { + return !n.b && (n.b = new i4(n.c.ec())), n.b; + } + function $h(n, e) { + for (; e-- > 0; ) + n = n << 1 | (n < 0 ? 1 : 0); + return n; + } + function mIn(n, e) { + var t; + return t = new Nc(n), Kn(e.c, t), t; + } + function vIn(n, e) { + n.u.Hc((Uu(), Fl)) && zEe(n, e), h4e(n, e); + } + function mc(n, e) { + return x(n) === x(e) || n != null && rt(n, e); + } + function Mr(n, e) { + return JL(n.a, e) ? n.b[u(e, 22).g] : null; + } + function nge() { + return YE(), A(T(oon, 1), G, 489, 0, [b_]); + } + function ege() { + return eC(), A(T($1n, 1), G, 490, 0, [Bq]); + } + function tge() { + return tC(), A(T(zce, 1), G, 558, 0, [Rq]); + } + function ige() { + return s6(), A(T(tan, 1), G, 539, 0, [Hj]); + } + function jM(n) { + return !n.n && (n.n = new q(Sr, n, 1, 7)), n.n; + } + function mN(n) { + return !n.c && (n.c = new q(Wu, n, 9, 9)), n.c; + } + function UW(n) { + return !n.c && (n.c = new Nn(he, n, 5, 8)), n.c; + } + function rge(n) { + return !n.b && (n.b = new Nn(he, n, 4, 7)), n.b; + } + function H7(n) { + return n.j.c.length = 0, zW(n.c), xae(n.a), n; + } + function S4(n) { + return n.e == iv && jfe(n, Y8e(n.g, n.b)), n.e; + } + function q7(n) { + return n.f == iv && Cfe(n, q7e(n.g, n.b)), n.f; + } + function Ve(n, e, t, i) { + return Hxn(n, e, t, !1), BT(n, i), n; + } + function kIn(n, e) { + this.b = n, oN.call(this, n, e), RTn(this); + } + function yIn(n, e) { + this.b = n, SV.call(this, n, e), KTn(this); + } + function V6(n) { + this.d = n, this.a = this.d.b, this.b = this.d.c; + } + function GW(n, e) { + this.b = n, this.c = e, this.a = new dp(this.b); + } + function Xi(n, e) { + return zn(e, n.length), n.charCodeAt(e); + } + function cge(n, e) { + DY(n, $(yl(e, "x")), $(yl(e, "y"))); + } + function uge(n, e) { + DY(n, $(yl(e, "x")), $(yl(e, "y"))); + } + function ut(n, e) { + return ta(n), new Tn(n, new tQ(e, n.a)); + } + function _r(n, e) { + return ta(n), new Tn(n, new _J(e, n.a)); + } + function Gb(n, e) { + return ta(n), new uV(n, new ILn(e, n.a)); + } + function EM(n, e) { + return ta(n), new oV(n, new OLn(e, n.a)); + } + function oge(n, e) { + return new GIn(u(Se(n), 50), u(Se(e), 50)); + } + function sge(n, e) { + return bt(n.d.c + n.d.b / 2, e.d.c + e.d.b / 2); + } + function jIn(n, e, t) { + t.a ? tu(n, e.b - n.f / 2) : eu(n, e.a - n.g / 2); + } + function fge(n, e) { + return bt(n.g.c + n.g.b / 2, e.g.c + e.g.b / 2); + } + function hge(n, e) { + return $z(), bt((Jn(n), n), (Jn(e), e)); + } + function lge(n) { + return n != null && t7(jO, n.toLowerCase()); + } + function zW(n) { + var e; + for (e = n.Kc(); e.Ob(); ) + e.Pb(), e.Qb(); + } + function Ag(n) { + var e; + return e = n.b, !e && (n.b = e = new N8n(n)), e; + } + function vN(n) { + var e; + return e = Wme(n), e || null; + } + function EIn(n, e) { + var t, i; + return t = n / e, i = gi(t), t > i && ++i, i; + } + function age(n, e, t) { + var i; + i = u(n.d.Kb(t), 159), i && i.Nb(e); + } + function dge(n, e, t) { + wIe(n.a, t), zve(t), xCe(n.b, t), xIe(e, t); + } + function CM(n, e, t, i) { + this.a = n, this.c = e, this.b = t, this.d = i; + } + function XW(n, e, t, i) { + this.c = n, this.b = e, this.a = t, this.d = i; + } + function CIn(n, e, t, i) { + this.c = n, this.b = e, this.d = t, this.a = i; + } + function Ho(n, e, t, i) { + this.c = n, this.d = e, this.b = t, this.a = i; + } + function MIn(n, e, t, i) { + this.a = n, this.d = e, this.c = t, this.b = i; + } + function kN(n, e, t, i) { + this.a = n, this.e = e, this.d = t, this.c = i; + } + function TIn(n, e, t, i) { + this.a = n, this.c = e, this.d = t, this.b = i; + } + function yN(n, e, t) { + this.a = ktn, this.d = n, this.b = e, this.c = t; + } + function Op(n, e, t, i) { + je.call(this, n, e), this.a = t, this.b = i; + } + function AIn(n, e) { + this.d = (Jn(n), n), this.a = 16449, this.c = e; + } + function SIn(n) { + this.a = new Z(), this.e = K(ye, J, 53, n, 0, 2); + } + function bge(n) { + n.Ug("No crossing minimization", 1), n.Vg(); + } + function PIn() { + ec.call(this, "There is no more element."); + } + function IIn(n, e, t, i) { + this.a = n, this.b = e, this.c = t, this.d = i; + } + function OIn(n, e, t, i) { + this.a = n, this.b = e, this.c = t, this.d = i; + } + function nd(n, e, t, i) { + this.e = n, this.a = e, this.c = t, this.d = i; + } + function DIn(n, e, t, i) { + this.a = n, this.c = e, this.d = t, this.b = i; + } + function LIn(n, e, t, i) { + Ko(), DLn.call(this, e, t, i), this.a = n; + } + function NIn(n, e, t, i) { + Ko(), DLn.call(this, e, t, i), this.a = n; + } + function jN(n, e, t) { + var i, r; + return i = utn(n), r = e.ti(t, i), r; + } + function al(n) { + var e, t; + return t = (e = new Qd(), e), R4(t, n), t; + } + function EN(n) { + var e, t; + return t = (e = new Qd(), e), fnn(t, n), t; + } + function wge(n, e) { + var t; + return t = ee(n.f, e), HQ(e, t), null; + } + function $In(n) { + return !n.b && (n.b = new q(Wt, n, 12, 3)), n.b; + } + function xIn(n) { + return x6(n == null || uN(n) && n.Tm !== Q2), n; + } + function MM(n) { + return n.n && (n.e !== Fzn && n.je(), n.j = null), n; + } + function P4(n) { + if (no(n.d), n.d.d != n.c) + throw M(new Bo()); + } + function VW(n) { + return oe(n.b < n.d.gc()), n.d.Xb(n.c = n.b++); + } + function vo(n) { + n.a.a = n.c, n.c.b = n.a, n.a.b = n.c.a = null, n.b = 0; + } + function CN(n) { + this.f = n, this.c = this.f.e, n.f > 0 && bKn(this); + } + function FIn(n, e) { + this.a = n, bae.call(this, n, u(n.d, 15).fd(e)); + } + function gge(n, e) { + return bt(Au(n) * ao(n), Au(e) * ao(e)); + } + function pge(n, e) { + return bt(Au(n) * ao(n), Au(e) * ao(e)); + } + function mge(n) { + return H0(n) && on(un(z(n, (cn(), $d)))); + } + function vge(n, e) { + return Pn(n, u(v(e, (cn(), Ev)), 17), e); + } + function kge(n, e) { + return u(v(n, (W(), T3)), 15).Fc(e), e; + } + function WW(n, e) { + return n.b = e.b, n.c = e.c, n.d = e.d, n.a = e.a, n; + } + function BIn(n, e, t, i) { + this.b = n, this.c = i, IC.call(this, e, t); + } + function yge(n, e, t) { + n.i = 0, n.e = 0, e != t && yFn(n, e, t); + } + function jge(n, e, t) { + n.i = 0, n.e = 0, e != t && jFn(n, e, t); + } + function Ege(n, e, t) { + return o6(), J5e(u(ee(n.e, e), 529), t); + } + function Dp(n) { + var e; + return e = n.f, e || (n.f = new f4(n, n.c)); + } + function RIn(n, e) { + return Fg(n.j, e.s, e.c) + Fg(e.e, n.s, n.c); + } + function KIn(n, e) { + n.e && !n.e.a && (Ayn(n.e, e), KIn(n.e, e)); + } + function _In(n, e) { + n.d && !n.d.a && (Ayn(n.d, e), _In(n.d, e)); + } + function Cge(n, e) { + return -bt(Au(n) * ao(n), Au(e) * ao(e)); + } + function Mge(n) { + return u(n.ld(), 149).Pg() + ":" + Jr(n.md()); + } + function HIn() { + tF(this, new oG()), this.wb = (G1(), Hn), u4(); + } + function qIn(n) { + this.b = new Z(), li(this.b, this.b), this.a = n; + } + function JW(n, e) { + new Ct(), this.a = new Cu(), this.b = n, this.c = e; + } + function E0() { + E0 = F, Pun = new FU(), ZK = new FU(), Iun = new D0n(); + } + function Dn() { + Dn = F, or = new A0n(), Vh = new P0n(), hP = new I0n(); + } + function QW() { + QW = F, RQn = new nbn(), _Qn = new aW(), KQn = new ebn(); + } + function Lp() { + Lp = F, mP = new Z(), m_ = new de(), p_ = new Z(); + } + function TM(n, e) { + if (n == null) + throw M(new fp(e)); + return n; + } + function AM(n) { + return !n.a && (n.a = new q(Ye, n, 10, 11)), n.a; + } + function ft(n) { + return !n.q && (n.q = new q(Ss, n, 11, 10)), n.q; + } + function H(n) { + return !n.s && (n.s = new q(vu, n, 21, 17)), n.s; + } + function Tge(n) { + return Se(n), IRn(new ie(ce(n.a.Kc(), new En()))); + } + function Age(n, e) { + return wo(n), wo(e), Fjn(u(n, 22), u(e, 22)); + } + function ed(n, e, t) { + var i, r; + i = IV(t), r = new AE(i), bf(n, e, r); + } + function MN(n, e, t, i, r, c) { + ck.call(this, n, e, t, i, r, c ? -2 : -1); + } + function UIn(n, e, t, i) { + pX.call(this, e, t), this.b = n, this.a = i; + } + function GIn(n, e) { + Vfe.call(this, new iN(n)), this.a = n, this.b = e; + } + function YW(n) { + this.b = n, this.c = n, n.e = null, n.c = null, this.a = 1; + } + function Sge(n) { + Fs(); + var e; + e = u(n.g, 10), e.n.a = n.d.c + e.d.b; + } + function I4() { + I4 = F; + var n, e; + e = !$8e(), n = new Gv(), VK = e ? new Ka() : n; + } + function TN(n) { + return Dn(), D(n, 59) ? new jD(n) : new BC(n); + } + function SM(n) { + return D(n, 16) ? new F6(u(n, 16)) : obe(n.Kc()); + } + function Pge(n) { + return new HTn(n, n.e.Rd().gc() * n.c.Rd().gc()); + } + function Ige(n) { + return new qTn(n, n.e.Rd().gc() * n.c.Rd().gc()); + } + function ZW(n) { + return n && n.hashCode ? n.hashCode() : a0(n); + } + function AN(n, e) { + return e == null ? !!gr(n.f, null) : zbe(n.i, e); + } + function Oge(n, e) { + var t; + return t = $X(n.a, e), t && (e.d = null), t; + } + function zIn(n, e, t) { + return n.f ? n.f.ef(e, t) : !1; + } + function U7(n, e, t, i) { + $t(n.c[e.g], t.g, i), $t(n.c[t.g], e.g, i); + } + function SN(n, e, t, i) { + $t(n.c[e.g], e.g, t), $t(n.b[e.g], e.g, i); + } + function Dge(n, e, t) { + return $(R(t.a)) <= n && $(R(t.b)) >= e; + } + function XIn(n, e) { + this.g = n, this.d = A(T(Jh, 1), w1, 10, 0, [e]); + } + function VIn(n) { + this.c = n, this.b = new Gl(u(Se(new tbn()), 50)); + } + function WIn(n) { + this.c = n, this.b = new Gl(u(Se(new ewn()), 50)); + } + function JIn(n) { + this.b = n, this.a = new Gl(u(Se(new Nbn()), 50)); + } + function QIn() { + this.b = new ei(), this.d = new Ct(), this.e = new ZG(); + } + function nJ() { + this.c = new Ni(), this.d = new Ni(), this.e = new Ni(); + } + function C0() { + this.a = new Cu(), this.b = (Co(3, vw), new zc(3)); + } + function Jl(n, e) { + this.e = n, this.a = yi, this.b = Qqn(e), this.c = e; + } + function PM(n) { + this.c = n.c, this.d = n.d, this.b = n.b, this.a = n.a; + } + function YIn(n, e, t, i, r, c) { + this.a = n, k$.call(this, e, t, i, r, c); + } + function ZIn(n, e, t, i, r, c) { + this.a = n, k$.call(this, e, t, i, r, c); + } + function V1(n, e, t, i, r, c, s) { + return new GN(n.e, e, t, i, r, c, s); + } + function Lge(n, e, t) { + return t >= 0 && An(n.substr(t, e.length), e); + } + function nOn(n, e) { + return D(e, 149) && An(n.b, u(e, 149).Pg()); + } + function Nge(n, e) { + return n.a ? e.Gh().Kc() : u(e.Gh(), 71).Ii(); + } + function eOn(n, e) { + var t; + return t = n.b.Qc(e), WDn(t, n.b.gc()), t; + } + function G7(n, e) { + if (n == null) + throw M(new fp(e)); + return n; + } + function Hr(n) { + return n.u || (Yu(n), n.u = new NAn(n, n)), n.u; + } + function PN(n) { + this.a = (Dn(), D(n, 59) ? new jD(n) : new BC(n)); + } + function lu(n) { + var e; + return e = u(Un(n, 16), 29), e || n.ii(); + } + function IM(n, e) { + var t; + return t = Va(n.Rm), e == null ? t : t + ": " + e; + } + function qo(n, e, t) { + return Bi(e, t, n.length), n.substr(e, t - e); + } + function tOn(n, e) { + qC.call(this), lQ(this), this.a = n, this.c = e; + } + function $ge(n) { + n && IM(n, n.ie()); + } + function xge(n) { + HE(), y.setTimeout(function() { + throw n; + }, 0); + } + function Fge() { + return YT(), A(T(Bun, 1), G, 436, 0, [o_, Fun]); + } + function Bge() { + return cT(), A(T(Kun, 1), G, 435, 0, [Run, s_]); + } + function Rge() { + return uT(), A(T(bon, 1), G, 432, 0, [v_, vP]); + } + function Kge() { + return X4(), A(T(KZn, 1), G, 517, 0, [dj, L_]); + } + function _ge() { + return KM(), A(T(Qsn, 1), G, 429, 0, [fH, Jsn]); + } + function Hge() { + return wk(), A(T($sn, 1), G, 428, 0, [WP, Nsn]); + } + function qge() { + return QM(), A(T(Asn, 1), G, 431, 0, [Tsn, V_]); + } + function Uge() { + return dk(), A(T(qhn, 1), G, 430, 0, [UH, GH]); + } + function Gge() { + return Z6(), A(T(Oie, 1), G, 531, 0, [e9, n9]); + } + function zge() { + return yT(), A(T(Rln, 1), G, 501, 0, [RI, L2]); + } + function Xge() { + return sh(), A(T(Bie, 1), G, 523, 0, [vb, j1]); + } + function Vge() { + return Sf(), A(T(Kie, 1), G, 522, 0, [Kd, zf]); + } + function Wge() { + return af(), A(T(ere, 1), G, 528, 0, [Xw, Ea]); + } + function Jge() { + return sk(), A(T(Bsn, 1), G, 488, 0, [Fsn, QP]); + } + function Qge() { + return GM(), A(T(S1n, 1), G, 491, 0, [$q, A1n]); + } + function Yge() { + return N$(), A(T(N1n, 1), G, 492, 0, [D1n, L1n]); + } + function Zge() { + return FM(), A(T(Bln, 1), G, 433, 0, [dq, Fln]); + } + function n2e() { + return ZM(), A(T(_ln, 1), G, 434, 0, [Kln, vq]); + } + function e2e() { + return T0(), A(T(sre, 1), G, 465, 0, [Ca, I2]); + } + function t2e() { + return ik(), A(T(x1n, 1), G, 438, 0, [Kq, JI]); + } + function i2e() { + return Mk(), A(T(ran, 1), G, 437, 0, [YI, ian]); + } + function r2e() { + return RL(), A(T(dO, 1), G, 347, 0, [vdn, kdn]); + } + function OM(n, e, t, i) { + return t >= 0 ? n.Uh(e, t, i) : n.Ch(null, t, i); + } + function z7(n) { + return n.b.b == 0 ? n.a.sf() : UL(n.b); + } + function c2e(n) { + if (n.p != 5) + throw M(new Eu()); + return Ae(n.f); + } + function u2e(n) { + if (n.p != 5) + throw M(new Eu()); + return Ae(n.k); + } + function eJ(n) { + return x(n.a) === x((D$(), CU)) && rOe(n), n.a; + } + function o2e(n, e) { + n.b = e, n.c > 0 && n.b > 0 && (n.g = cM(n.c, n.b, n.a)); + } + function s2e(n, e) { + n.c = e, n.c > 0 && n.b > 0 && (n.g = cM(n.c, n.b, n.a)); + } + function iOn(n, e) { + ufe(this, new V(n.a, n.b)), ofe(this, $7(e)); + } + function M0() { + Wfe.call(this, new ap(Yb(12))), KX(!0), this.a = 2; + } + function IN(n, e, t) { + nt(), Jd.call(this, n), this.b = e, this.a = t; + } + function tJ(n, e, t) { + Ko(), LE.call(this, e), this.a = n, this.b = t; + } + function rOn(n) { + var e; + e = n.c.d.b, n.b = e, n.a = n.c.d, e.a = n.c.d.b = n; + } + function f2e(n) { + return n.b == 0 ? null : (oe(n.b != 0), Xo(n, n.a.a)); + } + function $c(n, e) { + return e == null ? Kr(gr(n.f, null)) : a6(n.i, e); + } + function cOn(n, e, t, i, r) { + return new rF(n, (F4(), i_), e, t, i, r); + } + function DM(n, e) { + return zDn(e), Lme(n, K(ye, _e, 28, e, 15, 1), e); + } + function LM(n, e) { + return TM(n, "set1"), TM(e, "set2"), new VEn(n, e); + } + function h2e(n, e) { + var t = XK[n.charCodeAt(0)]; + return t ?? n; + } + function uOn(n, e) { + var t, i; + return t = e, i = new DO(), LGn(n, t, i), i.d; + } + function ON(n, e, t, i) { + var r; + r = new FAn(), e.a[t.g] = r, Pp(n.b, i, r); + } + function l2e(n, e) { + var t; + return t = Ime(n.f, e), tt(HC(t), n.f.d); + } + function X7(n) { + var e; + _me(n.a), dTn(n.a), e = new IE(n.a), HY(e); + } + function a2e(n, e) { + _qn(n, !0), nu(n.e.Rf(), new NV(n, !0, e)); + } + function d2e(n, e) { + return Lp(), n == At(Rh(e)) || n == At(ra(e)); + } + function b2e(n, e) { + return kl(), u(v(e, (lc(), Ah)), 17).a == n; + } + function gi(n) { + return Math.max(Math.min(n, et), -2147483648) | 0; + } + function oOn(n) { + this.a = u(Se(n), 277), this.b = (Dn(), new XX(n)); + } + function sOn(n, e, t) { + this.i = new Z(), this.b = n, this.g = e, this.a = t; + } + function iJ(n, e, t) { + this.a = new Z(), this.e = n, this.f = e, this.c = t; + } + function NM(n, e, t) { + this.c = new Z(), this.e = n, this.f = e, this.b = t; + } + function fOn(n) { + qC.call(this), lQ(this), this.a = n, this.c = !0; + } + function w2e(n) { + function e() { + } + return e.prototype = n || {}, new e(); + } + function g2e(n) { + if (n.Ae()) + return null; + var e = n.n; + return rP[e]; + } + function V7(n) { + return n.Db >> 16 != 3 ? null : u(n.Cb, 27); + } + function Af(n) { + return n.Db >> 16 != 9 ? null : u(n.Cb, 27); + } + function hOn(n) { + return n.Db >> 16 != 6 ? null : u(n.Cb, 74); + } + function T0() { + T0 = F, Ca = new cX(s3, 0), I2 = new cX(f3, 1); + } + function sh() { + sh = F, vb = new tX(f3, 0), j1 = new tX(s3, 1); + } + function Sf() { + Sf = F, Kd = new iX(_B, 0), zf = new iX("UP", 1); + } + function lOn() { + lOn = F, oQn = Ce((RE(), A(T(uQn, 1), G, 549, 0, [GK]))); + } + function aOn(n) { + var e; + return e = new zE(Yb(n.length)), eY(e, n), e; + } + function dOn(n, e) { + return n.b += e.b, n.c += e.c, n.d += e.d, n.a += e.a, n; + } + function p2e(n, e) { + return Zxn(n, e) ? (W$n(n), !0) : !1; + } + function dl(n, e) { + if (e == null) + throw M(new rp()); + return F8e(n, e); + } + function W7(n, e) { + var t; + t = n.q.getHours(), n.q.setDate(e), H5(n, t); + } + function rJ(n, e, t) { + var i; + i = n.Ih(e), i >= 0 ? n.bi(i, t) : ten(n, e, t); + } + function bOn(n, e) { + var t; + return t = n.Ih(e), t >= 0 ? n.Wh(t) : hF(n, e); + } + function wOn(n, e) { + var t; + for (Se(e), t = n.a; t; t = t.c) + e.Yd(t.g, t.i); + } + function DN(n, e, t) { + var i; + i = vFn(n, e, t), n.b = new ET(i.c.length); + } + function Sg(n, e, t) { + $M(), n && Xe(yU, n, e), n && Xe(hE, n, t); + } + function m2e(n, e) { + return VC(), _n(), u(e.a, 17).a < n; + } + function v2e(n, e) { + return VC(), _n(), u(e.b, 17).a < n; + } + function LN(n, e) { + return y.Math.abs(n) < y.Math.abs(e) ? n : e; + } + function k2e(n) { + return !n.a && (n.a = new q(Ye, n, 10, 11)), n.a.i > 0; + } + function cJ(n) { + var e; + return e = n.d, e = n.bj(n.f), ve(n, e), e.Ob(); + } + function gOn(n, e) { + var t; + return t = new fW(e), _Kn(t, n), new Ru(t); + } + function y2e(n) { + if (n.p != 0) + throw M(new Eu()); + return C6(n.f, 0); + } + function j2e(n) { + if (n.p != 0) + throw M(new Eu()); + return C6(n.k, 0); + } + function pOn(n) { + return n.Db >> 16 != 7 ? null : u(n.Cb, 241); + } + function O4(n) { + return n.Db >> 16 != 6 ? null : u(n.Cb, 241); + } + function mOn(n) { + return n.Db >> 16 != 7 ? null : u(n.Cb, 167); + } + function At(n) { + return n.Db >> 16 != 11 ? null : u(n.Cb, 27); + } + function zb(n) { + return n.Db >> 16 != 17 ? null : u(n.Cb, 29); + } + function vOn(n) { + return n.Db >> 16 != 3 ? null : u(n.Cb, 155); + } + function uJ(n) { + var e; + return ta(n), e = new ei(), ut(n, new M9n(e)); + } + function kOn(n, e) { + var t = n.a = n.a || []; + return t[e] || (t[e] = n.ve(e)); + } + function E2e(n, e) { + var t; + t = n.q.getHours(), n.q.setMonth(e), H5(n, t); + } + function yOn(n, e) { + xC(this), this.f = e, this.g = n, MM(this), this.je(); + } + function jOn(n, e) { + this.a = n, this.c = Ki(this.a), this.b = new PM(e); + } + function EOn(n, e, t) { + this.a = e, this.c = n, this.b = (Se(t), new Ru(t)); + } + function COn(n, e, t) { + this.a = e, this.c = n, this.b = (Se(t), new Ru(t)); + } + function MOn(n) { + this.a = n, this.b = K(Sie, J, 2043, n.e.length, 0, 2); + } + function TOn() { + this.a = new ih(), this.e = new ei(), this.g = 0, this.i = 0; + } + function $M() { + $M = F, yU = new de(), hE = new de(), ple(MQn, new wvn()); + } + function AOn() { + AOn = F, aie = Su(new ri(), (Vi(), zr), (er(), bj)); + } + function oJ() { + oJ = F, die = Su(new ri(), (Vi(), zr), (er(), bj)); + } + function SOn() { + SOn = F, wie = Su(new ri(), (Vi(), zr), (er(), bj)); + } + function POn() { + POn = F, Lie = Ke(new ri(), (Vi(), zr), (er(), L8)); + } + function ko() { + ko = F, xie = Ke(new ri(), (Vi(), zr), (er(), L8)); + } + function IOn() { + IOn = F, Fie = Ke(new ri(), (Vi(), zr), (er(), L8)); + } + function NN() { + NN = F, Hie = Ke(new ri(), (Vi(), zr), (er(), L8)); + } + function W6(n, e, t, i, r, c) { + return new ml(n.e, e, n.Lj(), t, i, r, c); + } + function Or(n, e, t) { + return e == null ? Wc(n.f, null, t) : x0(n.i, e, t); + } + function Yi(n, e) { + n.c && au(n.c.g, n), n.c = e, n.c && nn(n.c.g, n); + } + function xi(n, e) { + n.c && au(n.c.a, n), n.c = e, n.c && nn(n.c.a, n); + } + function ic(n, e) { + n.i && au(n.i.j, n), n.i = e, n.i && nn(n.i.j, n); + } + function Di(n, e) { + n.d && au(n.d.e, n), n.d = e, n.d && nn(n.d.e, n); + } + function $N(n, e) { + n.a && au(n.a.k, n), n.a = e, n.a && nn(n.a.k, n); + } + function xN(n, e) { + n.b && au(n.b.f, n), n.b = e, n.b && nn(n.b.f, n); + } + function OOn(n, e) { + $we(n, n.b, n.c), u(n.b.b, 68), e && u(e.b, 68).b; + } + function C2e(n, e) { + return bt(u(n.c, 65).c.e.b, u(e.c, 65).c.e.b); + } + function M2e(n, e) { + return bt(u(n.c, 65).c.e.a, u(e.c, 65).c.e.a); + } + function T2e(n) { + return Y$(), _n(), u(n.a, 86).d.e != 0; + } + function xM(n, e) { + D(n.Cb, 184) && (u(n.Cb, 184).tb = null), Xc(n, e); + } + function FN(n, e) { + D(n.Cb, 90) && lw(Yu(u(n.Cb, 90)), 4), Xc(n, e); + } + function A2e(n, e) { + LY(n, e), D(n.Cb, 90) && lw(Yu(u(n.Cb, 90)), 2); + } + function S2e(n, e) { + var t, i; + t = e.c, i = t != null, i && Ip(n, new Ub(e.c)); + } + function DOn(n) { + var e, t; + return t = (u4(), e = new Qd(), e), R4(t, n), t; + } + function LOn(n) { + var e, t; + return t = (u4(), e = new Qd(), e), R4(t, n), t; + } + function NOn(n) { + for (var e; ; ) + if (e = n.Pb(), !n.Ob()) + return e; + } + function P2e(n, e, t) { + return nn(n.a, (yM(), Nx(e, t), new r0(e, t))), n; + } + function xc(n, e) { + return dr(), a$(e) ? new eM(e, n) : new k7(e, n); + } + function J7(n) { + return ah(), Cc(n, 0) >= 0 ? ia(n) : U6(ia(e1(n))); + } + function I2e(n) { + var e; + return e = u(ZC(n.b), 9), new _o(n.a, e, n.c); + } + function $On(n, e) { + var t; + return t = u(iw(Dp(n.a), e), 16), t ? t.gc() : 0; + } + function xOn(n, e, t) { + var i; + oBn(e, t, n.c.length), i = t - e, Pz(n.c, e, i); + } + function Ql(n, e, t) { + oBn(e, t, n.gc()), this.c = n, this.a = e, this.b = t - e; + } + function Np(n) { + this.c = new Ct(), this.b = n.b, this.d = n.c, this.a = n.a; + } + function BN(n) { + this.a = y.Math.cos(n), this.b = y.Math.sin(n); + } + function td(n, e, t, i) { + this.c = n, this.d = i, $N(this, e), xN(this, t); + } + function sJ(n, e) { + Xfe.call(this, new ap(Yb(n))), Co(e, Ozn), this.a = e; + } + function FOn(n, e, t) { + return new rF(n, (F4(), t_), null, !1, e, t); + } + function BOn(n, e, t) { + return new rF(n, (F4(), r_), e, t, null, !1); + } + function O2e() { + return qu(), A(T($r, 1), G, 108, 0, [xun, Yr, Sw]); + } + function D2e() { + return du(), A(T(JQn, 1), G, 472, 0, [kf, ma, Xs]); + } + function L2e() { + return Hu(), A(T(VQn, 1), G, 471, 0, [Ch, pa, zs]); + } + function N2e() { + return wf(), A(T(Pw, 1), G, 237, 0, [bc, Jc, wc]); + } + function $2e() { + return t5(), A(T(Pon, 1), G, 391, 0, [E_, j_, C_]); + } + function x2e() { + return L0(), A(T(R_, 1), G, 372, 0, [ob, va, ub]); + } + function F2e() { + return c5(), A(T(Psn, 1), G, 322, 0, [$8, pj, Ssn]); + } + function B2e() { + return bT(), A(T(Osn, 1), G, 351, 0, [Isn, VP, W_]); + } + function R2e() { + return ld(), A(T(pne, 1), G, 460, 0, [Y_, pv, m2]); + } + function K2e() { + return Y4(), A(T(sH, 1), G, 299, 0, [uH, oH, mj]); + } + function _2e() { + return vl(), A(T(Mne, 1), G, 311, 0, [vj, k2, E3]); + } + function H2e() { + return w5(), A(T(Lhn, 1), G, 390, 0, [FH, Dhn, MI]); + } + function q2e() { + return pr(), A(T(cie, 1), G, 463, 0, [Q8, zu, Qc]); + } + function U2e() { + return ST(), A(T(zhn, 1), G, 387, 0, [Uhn, zH, Ghn]); + } + function G2e() { + return a5(), A(T(Xhn, 1), G, 349, 0, [VH, XH, Ij]); + } + function z2e() { + return um(), A(T(Whn, 1), G, 350, 0, [WH, Vhn, Y8]); + } + function X2e() { + return dT(), A(T(Yhn, 1), G, 352, 0, [Qhn, JH, Jhn]); + } + function V2e() { + return DT(), A(T(Zhn, 1), G, 388, 0, [QH, Iv, zw]); + } + function W2e() { + return D0(), A(T(Tie, 1), G, 464, 0, [Oj, Z8, PI]); + } + function Pf(n) { + return cc(A(T(Ci, 1), J, 8, 0, [n.i.n, n.n, n.a])); + } + function J2e() { + return d5(), A(T(gln, 1), G, 392, 0, [wln, nq, Lj]); + } + function ROn() { + ROn = F, Fre = Su(new ri(), (Qp(), i9), (K5(), uln)); + } + function FM() { + FM = F, dq = new uX("DFS", 0), Fln = new uX("BFS", 1); + } + function KOn(n, e, t) { + var i; + i = new E3n(), i.b = e, i.a = t, ++e.b, nn(n.d, i); + } + function Q2e(n, e, t) { + var i; + i = new ir(t.d), tt(i, n), DY(e, i.a, i.b); + } + function Y2e(n, e) { + LTn(n, Ae(ki(g0(e, 24), YA)), Ae(ki(e, YA))); + } + function Xb(n, e) { + if (n < 0 || n > e) + throw M(new Pr(Ptn + n + Itn + e)); + } + function Ln(n, e) { + if (n < 0 || n >= e) + throw M(new Pr(Ptn + n + Itn + e)); + } + function zn(n, e) { + if (n < 0 || n >= e) + throw M(new gz(Ptn + n + Itn + e)); + } + function In(n, e) { + this.b = (Jn(n), n), this.a = e & kw ? e : e | 64 | bh; + } + function fJ(n) { + var e; + return ta(n), e = (E0(), E0(), ZK), fT(n, e); + } + function Z2e(n, e, t) { + var i; + return i = G5(n, e, !1), i.b <= e && i.a <= t; + } + function npe() { + return nT(), A(T(O1n, 1), G, 439, 0, [xq, I1n, P1n]); + } + function epe() { + return _T(), A(T(a1n, 1), G, 394, 0, [l1n, Oq, h1n]); + } + function tpe() { + return XT(), A(T(f1n, 1), G, 445, 0, [Bj, qI, Mq]); + } + function ipe() { + return rA(), A(T(bce, 1), G, 456, 0, [Tq, Sq, Aq]); + } + function rpe() { + return Pk(), A(T(Uln, 1), G, 393, 0, [KI, Hln, qln]); + } + function cpe() { + return AT(), A(T(s1n, 1), G, 300, 0, [Cq, o1n, u1n]); + } + function upe() { + return jl(), A(T(ldn, 1), G, 346, 0, [uO, T1, E9]); + } + function ope() { + return $k(), A(T(Fq, 1), G, 444, 0, [XI, VI, WI]); + } + function spe() { + return Nf(), A(T(Zan, 1), G, 278, 0, [xv, Qw, Fv]); + } + function fpe() { + return Gp(), A(T(mdn, 1), G, 280, 0, [pdn, Zw, aO]); + } + function A0(n) { + return Se(n), D(n, 16) ? new Ru(u(n, 16)) : k4(n.Kc()); + } + function hJ(n, e) { + return n && n.equals ? n.equals(e) : x(n) === x(e); + } + function ki(n, e) { + return Y1(ewe(Vr(n) ? ds(n) : n, Vr(e) ? ds(e) : e)); + } + function lf(n, e) { + return Y1(twe(Vr(n) ? ds(n) : n, Vr(e) ? ds(e) : e)); + } + function RN(n, e) { + return Y1(iwe(Vr(n) ? ds(n) : n, Vr(e) ? ds(e) : e)); + } + function hpe(n, e) { + var t; + return t = (Jn(n), n).g, rV(!!t), Jn(e), t(e); + } + function _On(n, e) { + var t, i; + return i = E4(n, e), t = n.a.fd(i), new zEn(n, t); + } + function lpe(n) { + return n.Db >> 16 != 6 ? null : u(dF(n), 241); + } + function ape(n) { + if (n.p != 2) + throw M(new Eu()); + return Ae(n.f) & oi; + } + function dpe(n) { + if (n.p != 2) + throw M(new Eu()); + return Ae(n.k) & oi; + } + function E(n) { + return oe(n.a < n.c.c.length), n.b = n.a++, n.c.c[n.b]; + } + function bpe(n, e) { + n.b = n.b | e.b, n.c = n.c | e.c, n.d = n.d | e.d, n.a = n.a | e.a; + } + function wpe(n, e) { + var t; + t = $(R(n.a.of((He(), iO)))), tzn(n, e, t); + } + function HOn(n, e) { + Za.call(this, 1, 2, A(T(ye, 1), _e, 28, 15, [n, e])); + } + function qOn(n, e, t) { + Jd.call(this, 25), this.b = n, this.a = e, this.c = t; + } + function yo(n) { + nt(), Jd.call(this, n), this.c = !1, this.a = !1; + } + function gpe(n) { + return n.a == (N4(), TO) && mfe(n, IAe(n.g, n.b)), n.a; + } + function $p(n) { + return n.d == (N4(), TO) && kfe(n, PPe(n.g, n.b)), n.d; + } + function ppe(n, e) { + return i5(), n.c == e.c ? bt(e.d, n.d) : bt(e.c, n.c); + } + function mpe(n, e) { + return i5(), n.c == e.c ? bt(e.d, n.d) : bt(n.c, e.c); + } + function vpe(n, e) { + return i5(), n.c == e.c ? bt(n.d, e.d) : bt(n.c, e.c); + } + function kpe(n, e) { + return i5(), n.c == e.c ? bt(n.d, e.d) : bt(e.c, n.c); + } + function lJ(n, e) { + return aPn(n.a, e) ? nW(n.b, u(e, 22).g, null) : null; + } + function ype(n) { + return Zi(Bs(vc(eo(n, 32)), 32), vc(eo(n, 32))); + } + function aJ(n) { + return n.b == null || n.b.length == 0 ? "n_" + n.a : "n_" + n.b; + } + function id(n) { + return n.c == null || n.c.length == 0 ? "n_" + n.g : "n_" + n.c; + } + function UOn(n, e) { + var t; + for (t = n + ""; t.length < e; ) + t = "0" + t; + return t; + } + function jpe(n, e) { + var t; + t = u(ee(n.g, e), 60), nu(e.d, new BCn(n, t)); + } + function Epe(n, e) { + var t, i; + return t = XRn(n), i = XRn(e), t < i ? -1 : t > i ? 1 : 0; + } + function GOn(n, e) { + var t, i; + return t = s$(e), i = t, u(ee(n.c, i), 17).a; + } + function KN(n, e, t) { + var i; + i = n.d[e.p], n.d[e.p] = n.d[t.p], n.d[t.p] = i; + } + function Cpe(n, e, t) { + var i; + n.n && e && t && (i = new uvn(), nn(n.e, i)); + } + function _N(n, e) { + if (hi(n.a, e), e.d) + throw M(new ec(nXn)); + e.d = n; + } + function dJ(n, e) { + this.a = new Z(), this.d = new Z(), this.f = n, this.c = e; + } + function zOn() { + this.c = new PTn(), this.a = new $Ln(), this.b = new Xyn(), lCn(); + } + function XOn() { + qp(), this.b = new de(), this.a = new de(), this.c = new Z(); + } + function VOn(n, e, t) { + this.d = n, this.j = e, this.e = t, this.o = -1, this.p = 3; + } + function WOn(n, e, t) { + this.d = n, this.k = e, this.f = t, this.o = -1, this.p = 5; + } + function JOn(n, e, t, i, r, c) { + dQ.call(this, n, e, t, i, r), c && (this.o = -2); + } + function QOn(n, e, t, i, r, c) { + bQ.call(this, n, e, t, i, r), c && (this.o = -2); + } + function YOn(n, e, t, i, r, c) { + OJ.call(this, n, e, t, i, r), c && (this.o = -2); + } + function ZOn(n, e, t, i, r, c) { + pQ.call(this, n, e, t, i, r), c && (this.o = -2); + } + function nDn(n, e, t, i, r, c) { + DJ.call(this, n, e, t, i, r), c && (this.o = -2); + } + function eDn(n, e, t, i, r, c) { + wQ.call(this, n, e, t, i, r), c && (this.o = -2); + } + function tDn(n, e, t, i, r, c) { + gQ.call(this, n, e, t, i, r), c && (this.o = -2); + } + function iDn(n, e, t, i, r, c) { + LJ.call(this, n, e, t, i, r), c && (this.o = -2); + } + function rDn(n, e, t, i) { + LE.call(this, t), this.b = n, this.c = e, this.d = i; + } + function cDn(n, e) { + this.f = n, this.a = (N4(), MO), this.c = MO, this.b = e; + } + function uDn(n, e) { + this.g = n, this.d = (N4(), TO), this.a = TO, this.b = e; + } + function bJ(n, e) { + !n.c && (n.c = new _t(n, 0)), HA(n.c, (at(), $9), e); + } + function Mpe(n, e) { + return oMe(n, e, D(e, 102) && (u(e, 19).Bb & fr) != 0); + } + function Tpe(n, e) { + return KPn(vc(n.q.getTime()), vc(e.q.getTime())); + } + function oDn(n) { + return XL(n.e.Rd().gc() * n.c.Rd().gc(), 16, new O8n(n)); + } + function Ape(n) { + return !!n.u && Pc(n.u.a).i != 0 && !(n.n && Ix(n.n)); + } + function Spe(n) { + return !!n.a && Zu(n.a.a).i != 0 && !(n.b && Ox(n.b)); + } + function wJ(n, e) { + return e == 0 ? !!n.o && n.o.f != 0 : Cx(n, e); + } + function Ppe(n, e, t) { + var i; + return i = u(n.Zb().xc(e), 16), !!i && i.Hc(t); + } + function sDn(n, e, t) { + var i; + return i = u(n.Zb().xc(e), 16), !!i && i.Mc(t); + } + function fDn(n, e) { + var t; + return t = 1 - e, n.a[t] = jT(n.a[t], t), jT(n, e); + } + function hDn(n, e) { + var t, i; + return i = ki(n, vr), t = Bs(e, 32), lf(t, i); + } + function lDn(n, e, t) { + var i; + i = (Se(n), new Ru(n)), O7e(new EOn(i, e, t)); + } + function Q7(n, e, t) { + var i; + i = (Se(n), new Ru(n)), D7e(new COn(i, e, t)); + } + function fc(n, e, t, i, r, c) { + return Hxn(n, e, t, c), CY(n, i), MY(n, r), n; + } + function aDn(n, e, t, i) { + return n.a += "" + qo(e == null ? wu : Jr(e), t, i), n; + } + function Fi(n, e) { + this.a = n, zv.call(this, n), Xb(e, n.gc()), this.b = e; + } + function dDn(n) { + this.a = K(yi, Bn, 1, QQ(y.Math.max(8, n)) << 1, 5, 1); + } + function Y7(n) { + return u(xf(n, K(Jh, w1, 10, n.c.length, 0, 1)), 199); + } + function fh(n) { + return u(xf(n, K(O_, rR, 18, n.c.length, 0, 1)), 483); + } + function bDn(n) { + return n.a ? n.e.length == 0 ? n.a.a : n.a.a + ("" + n.e) : n.c; + } + function J6(n) { + for (; n.d > 0 && n.a[--n.d] == 0; ) + ; + n.a[n.d++] == 0 && (n.e = 0); + } + function wDn(n) { + return oe(n.b.b != n.d.a), n.c = n.b = n.b.b, --n.a, n.c.c; + } + function Ipe(n, e, t) { + n.a = e, n.c = t, n.b.a.$b(), vo(n.d), Ib(n.e.a.c, 0); + } + function gDn(n, e) { + var t; + n.e = new uz(), t = dw(e), Zt(t, n.c), Iqn(n, t, 0); + } + function ci(n, e, t, i) { + var r; + r = new nG(), r.a = e, r.b = t, r.c = i, Fe(n.a, r); + } + function Q(n, e, t, i) { + var r; + r = new nG(), r.a = e, r.b = t, r.c = i, Fe(n.b, r); + } + function pDn(n, e, t) { + if (n < 0 || e < n || e > t) + throw M(new Pr(qje(n, e, t))); + } + function Z7(n, e) { + if (n < 0 || n >= e) + throw M(new Pr(kEe(n, e))); + return n; + } + function Ope(n) { + if (!("stack" in n)) + try { + throw n; + } catch { + } + return n; + } + function Pg(n) { + return o6(), D(n.g, 10) ? u(n.g, 10) : null; + } + function Dpe(n) { + return Ag(n).dc() ? !1 : (e1e(n, new ar()), !0); + } + function rd(n) { + var e; + return Vr(n) ? (e = n, e == -0 ? 0 : e) : X4e(n); + } + function mDn(n, e) { + return D(e, 44) ? xx(n.a, u(e, 44)) : !1; + } + function vDn(n, e) { + return D(e, 44) ? xx(n.a, u(e, 44)) : !1; + } + function kDn(n, e) { + return D(e, 44) ? xx(n.a, u(e, 44)) : !1; + } + function gJ(n) { + var e; + return X1(n), e = new L0n(), lg(n.a, new j9n(e)), e; + } + function pJ() { + var n, e, t; + return e = (t = (n = new Qd(), n), t), nn(n0n, e), e; + } + function BM(n) { + var e; + return X1(n), e = new N0n(), lg(n.a, new E9n(e)), e; + } + function Lpe(n, e) { + return n.a <= n.b ? (e.Dd(n.a++), !0) : !1; + } + function yDn(n) { + P$.call(this, n, (F4(), e_), null, !1, null, !1); + } + function jDn() { + jDn = F, SYn = Ce((YE(), A(T(oon, 1), G, 489, 0, [b_]))); + } + function EDn() { + EDn = F, eln = wIn(Y(1), Y(4)), nln = wIn(Y(1), Y(2)); + } + function Npe(n, e) { + return new _L(e, L6(Ki(e.e), n, n), (_n(), !0)); + } + function RM(n) { + return new zc((Co(n, cB), oT(Zi(Zi(5, n), n / 10 | 0)))); + } + function $pe(n) { + return XL(n.e.Rd().gc() * n.c.Rd().gc(), 273, new I8n(n)); + } + function CDn(n) { + return u(xf(n, K(FZn, DXn, 12, n.c.length, 0, 1)), 2042); + } + function xpe(n) { + return ko(), !sr(n) && !(!sr(n) && n.c.i.c == n.d.i.c); + } + function Fpe(n, e) { + return _p(), u(v(e, (lc(), O2)), 17).a >= n.gc(); + } + function Q6(n, e) { + vLe(e, n), JV(n.d), JV(u(v(n, (cn(), mI)), 214)); + } + function HN(n, e) { + kLe(e, n), QV(n.d), QV(u(v(n, (cn(), mI)), 214)); + } + function Bpe(n, e, t) { + n.d && au(n.d.e, n), n.d = e, n.d && w0(n.d.e, t, n); + } + function Rpe(n, e, t) { + return t.f.c.length > 0 ? MW(n.a, e, t) : MW(n.b, e, t); + } + function Kpe(n, e, t) { + var i; + i = i9e(); + try { + return Aae(n, e, t); + } finally { + D3e(i); + } + } + function S0(n, e) { + var t, i; + return t = dl(n, e), i = null, t && (i = t.pe()), i; + } + function Y6(n, e) { + var t, i; + return t = dl(n, e), i = null, t && (i = t.se()), i; + } + function D4(n, e) { + var t, i; + return t = Qb(n, e), i = null, t && (i = t.se()), i; + } + function bl(n, e) { + var t, i; + return t = dl(n, e), i = null, t && (i = gnn(t)), i; + } + function _pe(n, e, t) { + var i; + return i = bm(t), FA(n.g, i, e), FA(n.i, e, t), e; + } + function mJ(n, e, t) { + this.d = new $7n(this), this.e = n, this.i = e, this.f = t; + } + function MDn(n, e, t, i) { + this.e = null, this.c = n, this.d = e, this.a = t, this.b = i; + } + function TDn(n, e, t, i) { + ETn(this), this.c = n, this.e = e, this.f = t, this.b = i; + } + function vJ(n, e, t, i) { + this.d = n, this.n = e, this.g = t, this.o = i, this.p = -1; + } + function ADn(n, e, t, i) { + return D(t, 59) ? new iAn(n, e, t, i) : new vW(n, e, t, i); + } + function L4(n) { + return D(n, 16) ? u(n, 16).dc() : !n.Kc().Ob(); + } + function SDn(n) { + if (n.e.g != n.b) + throw M(new Bo()); + return !!n.c && n.d > 0; + } + function be(n) { + return oe(n.b != n.d.c), n.c = n.b, n.b = n.b.a, ++n.a, n.c.c; + } + function kJ(n, e) { + Jn(e), $t(n.a, n.c, e), n.c = n.c + 1 & n.a.length - 1, JRn(n); + } + function W1(n, e) { + Jn(e), n.b = n.b - 1 & n.a.length - 1, $t(n.a, n.b, e), JRn(n); + } + function PDn(n) { + var e; + e = n.Gh(), this.a = D(e, 71) ? u(e, 71).Ii() : e.Kc(); + } + function Hpe(n) { + return new In(Ame(u(n.a.md(), 16).gc(), n.a.ld()), 16); + } + function IDn() { + IDn = F, Gce = Ce((eC(), A(T($1n, 1), G, 490, 0, [Bq]))); + } + function ODn() { + ODn = F, Xce = Ce((tC(), A(T(zce, 1), G, 558, 0, [Rq]))); + } + function DDn() { + DDn = F, lue = Ce((s6(), A(T(tan, 1), G, 539, 0, [Hj]))); + } + function qpe() { + return bd(), A(T(Lon, 1), G, 389, 0, [Dw, Don, P_, I_]); + } + function Upe() { + return F4(), A(T(lP, 1), G, 304, 0, [e_, t_, i_, r_]); + } + function Gpe() { + return Vp(), A(T(EYn, 1), G, 332, 0, [uj, cj, oj, sj]); + } + function zpe() { + return T5(), A(T(TYn, 1), G, 406, 0, [fj, wP, gP, hj]); + } + function Xpe() { + return $0(), A(T(yYn, 1), G, 417, 0, [rj, ij, a_, d_]); + } + function Vpe() { + return Z4(), A(T(MZn, 1), G, 416, 0, [cb, Ow, Iw, d2]); + } + function Wpe() { + return $f(), A(T(ene, 1), G, 421, 0, [j3, hv, lv, B_]); + } + function Jpe() { + return OT(), A(T(UZn, 1), G, 371, 0, [F_, HP, qP, wj]); + } + function Qpe() { + return uw(), A(T(RH, 1), G, 203, 0, [TI, BH, P2, S2]); + } + function Ype() { + return hh(), A(T(Hhn, 1), G, 284, 0, [y1, _hn, HH, qH]); + } + function Zpe(n) { + var e; + return n.j == (en(), ae) && (e = mHn(n), Tu(e, Zn)); + } + function n3e(n, e) { + var t; + t = e.a, Yi(t, e.c.d), Di(t, e.d.d), ew(t.a, n.n); + } + function yJ(n, e) { + var t; + return t = u(Lf(n.b, e), 67), !t && (t = new Ct()), t; + } + function xp(n) { + return o6(), D(n.g, 154) ? u(n.g, 154) : null; + } + function e3e(n) { + n.a = null, n.e = null, Ib(n.b.c, 0), Ib(n.f.c, 0), n.c = null; + } + function KM() { + KM = F, fH = new Zz(Hm, 0), Jsn = new Zz("TOP_LEFT", 1); + } + function Z6() { + Z6 = F, e9 = new eX("UPPER", 0), n9 = new eX("LOWER", 1); + } + function t3e(n, e) { + return vp(new V(e.e.a + e.f.a / 2, e.e.b + e.f.b / 2), n); + } + function LDn(n, e) { + return u(ho(Hb(u(ot(n.k, e), 15).Oc(), w2)), 113); + } + function NDn(n, e) { + return u(ho(Ap(u(ot(n.k, e), 15).Oc(), w2)), 113); + } + function i3e() { + return Qp(), A(T(rln, 1), G, 405, 0, [LI, t9, i9, r9]); + } + function r3e() { + return b5(), A(T(xln, 1), G, 353, 0, [aq, BI, lq, hq]); + } + function c3e() { + return sA(), A(T(c1n, 1), G, 354, 0, [Eq, i1n, r1n, t1n]); + } + function u3e() { + return go(), A(T(S9, 1), G, 386, 0, [rE, zd, iE, Yw]); + } + function o3e() { + return To(), A(T(Yue, 1), G, 291, 0, [nE, Zh, Aa, Zj]); + } + function s3e() { + return El(), A(T(aU, 1), G, 223, 0, [lU, Yj, Bv, F3]); + } + function f3e() { + return qT(), A(T(Cdn, 1), G, 320, 0, [wU, ydn, Edn, jdn]); + } + function h3e() { + return LT(), A(T(woe, 1), G, 415, 0, [gU, Tdn, Mdn, Adn]); + } + function l3e(n) { + return $M(), Zc(yU, n) ? u(ee(yU, n), 341).Qg() : null; + } + function Uo(n, e, t) { + return e < 0 ? hF(n, t) : u(t, 69).wk().Bk(n, n.hi(), e); + } + function a3e(n, e, t) { + var i; + return i = bm(t), FA(n.j, i, e), Xe(n.k, e, t), e; + } + function d3e(n, e, t) { + var i; + return i = bm(t), FA(n.d, i, e), Xe(n.e, e, t), e; + } + function $Dn(n) { + var e, t; + return e = (B1(), t = new HO(), t), n && AA(e, n), e; + } + function jJ(n) { + var e; + return e = n.aj(n.i), n.i > 0 && Oc(n.g, 0, e, 0, n.i), e; + } + function xDn(n, e) { + var t; + for (t = n.j.c.length; t < e; t++) + nn(n.j, n.Ng()); + } + function FDn(n, e, t, i) { + var r; + return r = i[e.g][t.g], $(R(v(n.a, r))); + } + function BDn(n, e) { + iC(); + var t; + return t = u(ee(yO, n), 57), !t || t.fk(e); + } + function b3e(n) { + if (n.p != 1) + throw M(new Eu()); + return Ae(n.f) << 24 >> 24; + } + function w3e(n) { + if (n.p != 1) + throw M(new Eu()); + return Ae(n.k) << 24 >> 24; + } + function g3e(n) { + if (n.p != 7) + throw M(new Eu()); + return Ae(n.k) << 16 >> 16; + } + function p3e(n) { + if (n.p != 7) + throw M(new Eu()); + return Ae(n.f) << 16 >> 16; + } + function Ig(n, e) { + return e.e == 0 || n.e == 0 ? S8 : (Tm(), vF(n, e)); + } + function RDn(n, e) { + return x(e) === x(n) ? "(this Map)" : e == null ? wu : Jr(e); + } + function m3e(n, e, t) { + return tN(R(Kr(gr(n.f, e))), R(Kr(gr(n.f, t)))); + } + function v3e(n, e, t) { + var i; + i = u(ee(n.g, t), 60), nn(n.a.c, new wi(e, i)); + } + function KDn(n, e, t) { + n.i = 0, n.e = 0, e != t && (jFn(n, e, t), yFn(n, e, t)); + } + function k3e(n, e, t, i, r) { + var c; + c = yMe(r, t, i), nn(e, dEe(r, c)), rje(n, r, e); + } + function EJ(n, e, t, i, r) { + this.i = n, this.a = e, this.e = t, this.j = i, this.f = r; + } + function _Dn(n, e) { + nJ.call(this), this.a = n, this.b = e, nn(this.a.b, this); + } + function HDn(n) { + this.b = new de(), this.c = new de(), this.d = new de(), this.a = n; + } + function qDn(n, e) { + var t; + return t = new fg(), n.Gd(t), t.a += "..", e.Hd(t), t.a; + } + function UDn(n, e) { + var t; + for (t = e; t; ) + d0(n, t.i, t.j), t = At(t); + return n; + } + function GDn(n, e, t) { + var i; + return i = bm(t), Xe(n.b, i, e), Xe(n.c, e, t), e; + } + function wl(n) { + var e; + for (e = 0; n.Ob(); ) + n.Pb(), e = Zi(e, 1); + return oT(e); + } + function xh(n, e) { + dr(); + var t; + return t = u(n, 69).vk(), kje(t, e), t.xl(e); + } + function y3e(n, e, t) { + if (t) { + var i = t.oe(); + n.a[e] = i(t); + } else + delete n.a[e]; + } + function CJ(n, e) { + var t; + t = n.q.getHours(), n.q.setFullYear(e + ha), H5(n, t); + } + function j3e(n, e) { + return u(e == null ? Kr(gr(n.f, null)) : a6(n.i, e), 288); + } + function MJ(n, e) { + return n == (Vn(), Xt) && e == Xt ? 4 : n == Xt || e == Xt ? 8 : 32; + } + function _M(n, e, t) { + return RA(n, e, t, D(e, 102) && (u(e, 19).Bb & fr) != 0); + } + function E3e(n, e, t) { + return Im(n, e, t, D(e, 102) && (u(e, 19).Bb & fr) != 0); + } + function C3e(n, e, t) { + return bMe(n, e, t, D(e, 102) && (u(e, 19).Bb & fr) != 0); + } + function TJ(n) { + n.b != n.c && (n.a = K(yi, Bn, 1, 8, 5, 1), n.b = 0, n.c = 0); + } + function n5(n) { + return oe(n.a < n.c.a.length), n.b = n.a, i$n(n), n.c.b[n.b]; + } + function Pc(n) { + return n.n || (Yu(n), n.n = new mPn(n, Er, n), Hr(n)), n.n; + } + function zDn(n) { + if (n < 0) + throw M(new Rjn("Negative array size: " + n)); + } + function qN(n, e, t) { + if (t) { + var i = t.oe(); + t = i(t); + } else + t = void 0; + n.a[e] = t; + } + function XDn(n, e) { + rm(); + var t; + return t = n.j.g - e.j.g, t != 0 ? t : 0; + } + function M3e(n, e) { + return fl(), ve(H(n.a), e); + } + function T3e(n, e) { + return fl(), ve(H(n.a), e); + } + function gl(n, e) { + ah(), Za.call(this, n, 1, A(T(ye, 1), _e, 28, 15, [e])); + } + function Vb(n, e) { + nt(), Jd.call(this, n), this.a = e, this.c = -1, this.b = -1; + } + function Wb(n, e, t, i) { + VOn.call(this, 1, t, i), this.c = n, this.b = e; + } + function UN(n, e, t, i) { + WOn.call(this, 1, t, i), this.c = n, this.b = e; + } + function GN(n, e, t, i, r, c, s) { + k$.call(this, e, i, r, c, s), this.c = n, this.a = t; + } + function cd(n, e, t) { + this.e = n, this.a = yi, this.b = Qqn(e), this.c = e, this.d = t; + } + function zN(n) { + this.e = n, this.c = this.e.a, this.b = this.e.g, this.d = this.e.i; + } + function AJ(n) { + this.d = n, this.b = this.d.a.entries(), this.a = this.b.next(); + } + function VDn(n) { + this.c = n, this.a = u(gs(n), 156), this.b = this.a.jk().wi(); + } + function Yl() { + de.call(this), sAn(this), this.d.b = this.d, this.d.a = this.d; + } + function xt(n, e, t, i) { + var r; + r = new OO(), r.c = e, r.b = t, r.a = i, i.b = t.a = r, ++n.b; + } + function A3e(n, e) { + var t; + return t = e != null ? $c(n, e) : Kr(gr(n.f, e)), PC(t); + } + function S3e(n, e) { + var t; + return t = e != null ? $c(n, e) : Kr(gr(n.f, e)), PC(t); + } + function Wr(n, e) { + var t; + return e.b.Kb(GNn(n, e.c.Xe(), (t = new A9n(e), t))); + } + function P3e(n, e) { + var t; + return zDn(e), t = n.slice(0, e), t.length = e, o$(t, n); + } + function WDn(n, e) { + var t; + for (t = 0; t < e; ++t) + $t(n, t, new EG(u(n[t], 44))); + } + function I3e(n, e) { + var t; + for (t = n.d - 1; t >= 0 && n.a[t] === e[t]; t--) + ; + return t < 0; + } + function HM(n) { + var e; + return n ? new fW(n) : (e = new ih(), A$(e, n), e); + } + function O3e(n, e) { + var t, i; + i = !1; + do + t = lFn(n, e), i = i | t; + while (t); + return i; + } + function D3e(n) { + n && rme((az(), sun)), --cP, n && uP != -1 && (Ele(uP), uP = -1); + } + function qM(n) { + nnn(), LTn(this, Ae(ki(g0(n, 24), YA)), Ae(ki(n, YA))); + } + function JDn() { + JDn = F, HQn = Ce((YT(), A(T(Bun, 1), G, 436, 0, [o_, Fun]))); + } + function QDn() { + QDn = F, qQn = Ce((cT(), A(T(Kun, 1), G, 435, 0, [Run, s_]))); + } + function YDn() { + YDn = F, GYn = Ce((uT(), A(T(bon, 1), G, 432, 0, [v_, vP]))); + } + function ZDn() { + ZDn = F, _Zn = Ce((X4(), A(T(KZn, 1), G, 517, 0, [dj, L_]))); + } + function nLn() { + nLn = F, Ane = Ce((KM(), A(T(Qsn, 1), G, 429, 0, [fH, Jsn]))); + } + function eLn() { + eLn = F, gne = Ce((wk(), A(T($sn, 1), G, 428, 0, [WP, Nsn]))); + } + function tLn() { + tLn = F, kne = Ce((sk(), A(T(Bsn, 1), G, 488, 0, [Fsn, QP]))); + } + function iLn() { + iLn = F, rie = Ce((dk(), A(T(qhn, 1), G, 430, 0, [UH, GH]))); + } + function rLn() { + rLn = F, Die = Ce((Z6(), A(T(Oie, 1), G, 531, 0, [e9, n9]))); + } + function cLn() { + cLn = F, ane = Ce((QM(), A(T(Asn, 1), G, 431, 0, [Tsn, V_]))); + } + function uLn() { + uLn = F, xre = Ce((FM(), A(T(Bln, 1), G, 433, 0, [dq, Fln]))); + } + function oLn() { + oLn = F, _re = Ce((yT(), A(T(Rln, 1), G, 501, 0, [RI, L2]))); + } + function sLn() { + sLn = F, Rie = Ce((sh(), A(T(Bie, 1), G, 523, 0, [vb, j1]))); + } + function fLn() { + fLn = F, _ie = Ce((Sf(), A(T(Kie, 1), G, 522, 0, [Kd, zf]))); + } + function hLn() { + hLn = F, tre = Ce((af(), A(T(ere, 1), G, 528, 0, [Xw, Ea]))); + } + function lLn() { + lLn = F, fre = Ce((T0(), A(T(sre, 1), G, 465, 0, [Ca, I2]))); + } + function aLn() { + aLn = F, Ure = Ce((ZM(), A(T(_ln, 1), G, 434, 0, [Kln, vq]))); + } + function dLn() { + dLn = F, Rce = Ce((GM(), A(T(S1n, 1), G, 491, 0, [$q, A1n]))); + } + function bLn() { + bLn = F, _ce = Ce((N$(), A(T(N1n, 1), G, 492, 0, [D1n, L1n]))); + } + function wLn() { + wLn = F, Vce = Ce((ik(), A(T(x1n, 1), G, 438, 0, [Kq, JI]))); + } + function gLn() { + gLn = F, aue = Ce((Mk(), A(T(ran, 1), G, 437, 0, [YI, ian]))); + } + function pLn() { + pLn = F, aoe = Ce((RL(), A(T(dO, 1), G, 347, 0, [vdn, kdn]))); + } + function L3e() { + return ui(), A(T(y9, 1), G, 88, 0, [Wf, Xr, Fr, Vf, us]); + } + function N3e() { + return en(), A(T(hr, 1), Tc, 64, 0, [sc, Xn, Zn, ae, Wn]); + } + function $3e(n, e, t) { + return u(e == null ? Wc(n.f, null, t) : x0(n.i, e, t), 288); + } + function x3e(n) { + return (n.k == (Vn(), Xt) || n.k == ni) && kt(n, (W(), R8)); + } + function XN(n) { + return n.c && n.d ? aJ(n.c) + "->" + aJ(n.d) : "e_" + a0(n); + } + function qi(n, e) { + var t, i; + for (Jn(e), i = n.Kc(); i.Ob(); ) + t = i.Pb(), e.Cd(t); + } + function F3e(n, e) { + var t; + t = new sp(), ed(t, "x", e.a), ed(t, "y", e.b), Ip(n, t); + } + function B3e(n, e) { + var t; + t = new sp(), ed(t, "x", e.a), ed(t, "y", e.b), Ip(n, t); + } + function mLn(n, e) { + var t; + for (t = e; t; ) + d0(n, -t.i, -t.j), t = At(t); + return n; + } + function SJ(n, e) { + var t, i; + for (t = e, i = 0; t > 0; ) + i += n.a[t], t -= t & -t; + return i; + } + function Go(n, e, t) { + var i; + return i = (Ln(e, n.c.length), n.c[e]), n.c[e] = t, i; + } + function PJ(n, e, t) { + n.a.c.length = 0, fOe(n, e, t), n.a.c.length == 0 || FSe(n, e); + } + function nk(n) { + n.i = 0, u7(n.b, null), u7(n.c, null), n.a = null, n.e = null, ++n.g; + } + function UM() { + UM = F, qf = !0, DQn = !1, LQn = !1, $Qn = !1, NQn = !1; + } + function VN(n) { + UM(), !qf && (this.c = n, this.e = !0, this.a = new Z()); + } + function vLn(n, e) { + this.c = 0, this.b = e, HMn.call(this, n, 17493), this.a = this.c; + } + function kLn(n) { + jzn(), Syn(this), this.a = new Ct(), sY(this, n), Fe(this.a, n); + } + function yLn() { + pL(this), this.b = new V(St, St), this.a = new V(ai, ai); + } + function GM() { + GM = F, $q = new fX(cin, 0), A1n = new fX("TARGET_WIDTH", 1); + } + function Og(n, e) { + return (ta(n), o4(new Tn(n, new tQ(e, n.a)))).Bd(v3); + } + function R3e() { + return Vi(), A(T(Ion, 1), G, 367, 0, [Vs, Wh, Dc, _c, zr]); + } + function K3e() { + return sw(), A(T(ine, 1), G, 375, 0, [gj, zP, XP, GP, UP]); + } + function _3e() { + return s1(), A(T(Lsn, 1), G, 348, 0, [J_, Dsn, Q_, gv, wv]); + } + function H3e() { + return M5(), A(T($hn, 1), G, 323, 0, [Nhn, KH, _H, W8, J8]); + } + function q3e() { + return Yo(), A(T(hfn, 1), G, 171, 0, [Ej, _8, ya, H8, Fw]); + } + function U3e() { + return wA(), A(T(Hre, 1), G, 368, 0, [pq, bq, mq, wq, gq]); + } + function G3e() { + return x5(), A(T(Hce, 1), G, 373, 0, [N2, D3, d9, a9, _j]); + } + function z3e() { + return Jk(), A(T(K1n, 1), G, 324, 0, [F1n, _q, R1n, Hq, B1n]); + } + function X3e() { + return pf(), A(T(Yh, 1), G, 170, 0, [xn, mi, Sh, _d, C1]); + } + function V3e() { + return Bg(), A(T(M9, 1), G, 256, 0, [Sa, eE, adn, C9, ddn]); + } + function W3e(n) { + return HE(), function() { + return Kpe(n, this, arguments); + }; + } + function sr(n) { + return !n.c || !n.d ? !1 : !!n.c.i && n.c.i == n.d.i; + } + function IJ(n, e) { + return D(e, 143) ? An(n.c, u(e, 143).c) : !1; + } + function Yu(n) { + return n.t || (n.t = new myn(n), v5(new Njn(n), 0, n.t)), n.t; + } + function jLn(n) { + this.b = n, ne.call(this, n), this.a = u(Un(this.b.a, 4), 129); + } + function ELn(n) { + this.b = n, yp.call(this, n), this.a = u(Un(this.b.a, 4), 129); + } + function Rs(n, e, t, i, r) { + LLn.call(this, e, i, r), this.c = n, this.b = t; + } + function OJ(n, e, t, i, r) { + VOn.call(this, e, i, r), this.c = n, this.a = t; + } + function DJ(n, e, t, i, r) { + WOn.call(this, e, i, r), this.c = n, this.a = t; + } + function LJ(n, e, t, i, r) { + LLn.call(this, e, i, r), this.c = n, this.a = t; + } + function WN(n, e) { + var t; + return t = u(Lf(n.d, e), 23), t || u(Lf(n.e, e), 23); + } + function CLn(n, e) { + var t, i; + return t = e.ld(), i = n.Fe(t), !!i && mc(i.e, e.md()); + } + function MLn(n, e) { + var t; + return t = e.ld(), new r0(t, n.e.pc(t, u(e.md(), 16))); + } + function J3e(n, e) { + var t; + return t = n.a.get(e), t ?? K(yi, Bn, 1, 0, 5, 1); + } + function TLn(n) { + var e; + return e = n.length, An(Yn.substr(Yn.length - e, e), n); + } + function fe(n) { + if (pe(n)) + return n.c = n.a, n.a.Pb(); + throw M(new nc()); + } + function NJ(n, e) { + return e == 0 || n.e == 0 ? n : e > 0 ? wqn(n, e) : RBn(n, -e); + } + function Fp(n, e) { + return e == 0 || n.e == 0 ? n : e > 0 ? RBn(n, e) : wqn(n, -e); + } + function $J(n) { + ole.call(this, n == null ? wu : Jr(n), D(n, 82) ? u(n, 82) : null); + } + function ALn(n) { + var e; + return n.c || (e = n.r, D(e, 90) && (n.c = u(e, 29))), n.c; + } + function JN(n) { + var e; + return e = new C0(), Ur(e, n), U(e, (cn(), xr), null), e; + } + function SLn(n) { + var e, t; + return e = n.c.i, t = n.d.i, e.k == (Vn(), ni) && t.k == ni; + } + function QN(n) { + var e, t, i; + return e = n & io, t = n >> 22 & io, i = n < 0 ? Il : 0, Yc(e, t, i); + } + function Q3e(n) { + var e, t, i, r; + for (t = n, i = 0, r = t.length; i < r; ++i) + e = t[i], X6(e); + } + function Y3e(n, e) { + var t, i; + t = u(o5e(n.c, e), 16), t && (i = t.gc(), t.$b(), n.d -= i); + } + function YN(n, e, t) { + var i; + return i = n.Ih(e), i >= 0 ? n.Lh(i, t, !0) : q0(n, e, t); + } + function Z3e(n, e, t) { + return bt(vp(gm(n), Ki(e.b)), vp(gm(n), Ki(t.b))); + } + function n4e(n, e, t) { + return bt(vp(gm(n), Ki(e.e)), vp(gm(n), Ki(t.e))); + } + function e4e(n, e) { + return y.Math.min(J1(e.a, n.d.d.c), J1(e.b, n.d.d.c)); + } + function ek(n, e) { + n._i(n.i + 1), I6(n, n.i, n.Zi(n.i, e)), n.Mi(n.i++, e), n.Ni(); + } + function e5(n) { + var e, t; + ++n.j, e = n.g, t = n.i, n.g = null, n.i = 0, n.Oi(t, e), n.Ni(); + } + function PLn(n, e, t) { + var i; + i = new NX(n.a), s5(i, n.a.a), Wc(i.f, e, t), n.a.a = i; + } + function xJ(n, e, t, i) { + var r; + for (r = 0; r < dP; r++) + hM(n.a[r][e.g], t, i[e.g]); + } + function FJ(n, e, t, i) { + var r; + for (r = 0; r < h_; r++) + lM(n.a[e.g][r], t, i[e.g]); + } + function ot(n, e) { + var t; + return t = u(n.c.xc(e), 16), !t && (t = n.ic(e)), n.pc(e, t); + } + function t4e(n) { + var e; + return e = (Se(n), n ? new Ru(n) : k4(n.Kc())), Yk(e), FT(e); + } + function If(n) { + var e, t; + return Se(n), e = Zwe(n.length), t = new zc(e), eY(t, n), t; + } + function ZN(n, e, t, i) { + var r; + return r = K(ye, _e, 28, e, 15, 1), Eye(r, n, e, t, i), r; + } + function BJ(n, e) { + if (n < 0 || n > e) + throw M(new Pr(Mnn(n, e, "index"))); + return n; + } + function Zl(n, e) { + var t; + return t = (Ln(e, n.c.length), n.c[e]), Pz(n.c, e, 1), t; + } + function RJ(n, e) { + var t, i; + return t = (Jn(n), n), i = (Jn(e), e), t == i ? 0 : t < i ? -1 : 1; + } + function KJ(n) { + var e; + return e = n.e + n.f, isNaN(e) && GC(n.d) ? n.d : e; + } + function i4e(n) { + return n.e = 3, n.d = n.Yb(), n.e != 2 ? (n.e = 0, !0) : !1; + } + function pl(n, e) { + return n.a ? Re(n.a, n.b) : n.a = new mo(n.d), T6(n.a, e), n; + } + function Bp(n, e) { + return Pi(e) ? e == null ? Hnn(n.f, null) : Gxn(n.i, e) : Hnn(n.f, e); + } + function ILn(n, e) { + _Mn.call(this, e.zd(), e.yd() & -6), Jn(n), this.a = n, this.b = e; + } + function OLn(n, e) { + HMn.call(this, e.zd(), e.yd() & -6), Jn(n), this.a = n, this.b = e; + } + function _J(n, e) { + IC.call(this, e.zd(), e.yd() & -6), Jn(n), this.a = n, this.b = e; + } + function DLn(n, e, t) { + LE.call(this, t), this.b = n, this.c = e, this.d = (gx(), TU); + } + function LLn(n, e, t) { + this.d = n, this.k = e ? 1 : 0, this.f = t ? 1 : 0, this.o = -1, this.p = 0; + } + function Of(n) { + this.c = n, this.a = new C(this.c.a), this.b = new C(this.c.b); + } + function zM() { + this.e = new Z(), this.c = new Z(), this.d = new Z(), this.b = new Z(); + } + function NLn() { + this.g = new zG(), this.b = new zG(), this.a = new Z(), this.k = new Z(); + } + function $Ln() { + this.a = new JG(), this.b = new ejn(), this.d = new cwn(), this.e = new lwn(); + } + function xLn(n, e, t) { + this.a = n, this.c = e, this.d = t, nn(e.e, this), nn(t.b, this); + } + function HJ(n, e, t) { + var i, r; + for (i = 0, r = 0; r < e.length; r++) + i += n.tg(e[r], i, t); + } + function r4e(n, e) { + var t; + return t = EOe(n, e), n.b = new ET(t.c.length), HIe(n, t); + } + function c4e(n, e) { + var t; + t = n.q.getHours() + (e / 60 | 0), n.q.setMinutes(e), H5(n, t); + } + function n$(n) { + var e; + return e = n.b, e.b == 0 ? null : u(Zo(e, 0), 65).b; + } + function qJ(n) { + if (n.a) { + if (n.e) + return qJ(n.e); + } else + return n; + return null; + } + function u4e(n, e) { + return n.p < e.p ? 1 : n.p > e.p ? -1 : 0; + } + function FLn(n) { + var e; + return n.a || (e = n.r, D(e, 156) && (n.a = u(e, 156))), n.a; + } + function o4e(n, e, t) { + var i; + return ++n.e, --n.f, i = u(n.d[e].gd(t), 136), i.md(); + } + function s4e(n) { + var e, t; + return e = n.ld(), t = u(n.md(), 16), N7(t.Nc(), new L8n(e)); + } + function BLn(n, e) { + return Zc(n.a, e) ? (Bp(n.a, e), !0) : !1; + } + function Rp(n, e, t) { + return Z7(e, n.e.Rd().gc()), Z7(t, n.c.Rd().gc()), n.a[e][t]; + } + function XM(n, e, t) { + this.a = n, this.b = e, this.c = t, nn(n.t, this), nn(e.i, this); + } + function VM(n, e, t, i) { + this.f = n, this.e = e, this.d = t, this.b = i, this.c = i ? i.d : null; + } + function tk() { + this.b = new Ct(), this.a = new Ct(), this.b = new Ct(), this.a = new Ct(); + } + function N4() { + N4 = F; + var n, e; + MO = (u4(), e = new xE(), e), TO = (n = new fD(), n); + } + function f4e(n) { + var e; + return ta(n), e = new ISn(n, n.a.e, n.a.d | 4), new uV(n, e); + } + function RLn(n) { + var e; + for (X1(n), e = 0; n.a.Bd(new W0n()); ) + e = Zi(e, 1); + return e; + } + function WM(n, e) { + return Jn(e), n.c < n.d ? (n.Se(e, n.c++), !0) : !1; + } + function zc(n) { + pL(this), x7(n >= 0, "Initial capacity must not be negative"); + } + function JM() { + JM = F, b9 = new lt("org.eclipse.elk.labels.labelManager"); + } + function KLn() { + KLn = F, ysn = new Dt("separateLayerConnections", (OT(), F_)); + } + function af() { + af = F, Xw = new rX("REGULAR", 0), Ea = new rX("CRITICAL", 1); + } + function ik() { + ik = F, Kq = new lX("FIXED", 0), JI = new lX("CENTER_NODE", 1); + } + function QM() { + QM = F, Tsn = new Jz("QUADRATIC", 0), V_ = new Jz("SCANLINE", 1); + } + function _Ln() { + _Ln = F, dne = Ce((c5(), A(T(Psn, 1), G, 322, 0, [$8, pj, Ssn]))); + } + function HLn() { + HLn = F, bne = Ce((bT(), A(T(Osn, 1), G, 351, 0, [Isn, VP, W_]))); + } + function qLn() { + qLn = F, fne = Ce((L0(), A(T(R_, 1), G, 372, 0, [ob, va, ub]))); + } + function ULn() { + ULn = F, mne = Ce((ld(), A(T(pne, 1), G, 460, 0, [Y_, pv, m2]))); + } + function GLn() { + GLn = F, Cne = Ce((Y4(), A(T(sH, 1), G, 299, 0, [uH, oH, mj]))); + } + function zLn() { + zLn = F, Tne = Ce((vl(), A(T(Mne, 1), G, 311, 0, [vj, k2, E3]))); + } + function XLn() { + XLn = F, Zte = Ce((w5(), A(T(Lhn, 1), G, 390, 0, [FH, Dhn, MI]))); + } + function VLn() { + VLn = F, oie = Ce((ST(), A(T(zhn, 1), G, 387, 0, [Uhn, zH, Ghn]))); + } + function WLn() { + WLn = F, sie = Ce((a5(), A(T(Xhn, 1), G, 349, 0, [VH, XH, Ij]))); + } + function JLn() { + JLn = F, uie = Ce((pr(), A(T(cie, 1), G, 463, 0, [Q8, zu, Qc]))); + } + function QLn() { + QLn = F, fie = Ce((um(), A(T(Whn, 1), G, 350, 0, [WH, Vhn, Y8]))); + } + function YLn() { + YLn = F, hie = Ce((dT(), A(T(Yhn, 1), G, 352, 0, [Qhn, JH, Jhn]))); + } + function ZLn() { + ZLn = F, lie = Ce((DT(), A(T(Zhn, 1), G, 388, 0, [QH, Iv, zw]))); + } + function nNn() { + nNn = F, are = Ce((d5(), A(T(gln, 1), G, 392, 0, [wln, nq, Lj]))); + } + function eNn() { + eNn = F, Gre = Ce((Pk(), A(T(Uln, 1), G, 393, 0, [KI, Hln, qln]))); + } + function tNn() { + tNn = F, ace = Ce((AT(), A(T(s1n, 1), G, 300, 0, [Cq, o1n, u1n]))); + } + function iNn() { + iNn = F, dce = Ce((XT(), A(T(f1n, 1), G, 445, 0, [Bj, qI, Mq]))); + } + function rNn() { + rNn = F, wce = Ce((rA(), A(T(bce, 1), G, 456, 0, [Tq, Sq, Aq]))); + } + function cNn() { + cNn = F, mce = Ce((_T(), A(T(a1n, 1), G, 394, 0, [l1n, Oq, h1n]))); + } + function uNn() { + uNn = F, Kce = Ce((nT(), A(T(O1n, 1), G, 439, 0, [xq, I1n, P1n]))); + } + function oNn() { + oNn = F, Aie = Ce((D0(), A(T(Tie, 1), G, 464, 0, [Oj, Z8, PI]))); + } + function sNn() { + sNn = F, WQn = Ce((Hu(), A(T(VQn, 1), G, 471, 0, [Ch, pa, zs]))); + } + function fNn() { + fNn = F, XQn = Ce((wf(), A(T(Pw, 1), G, 237, 0, [bc, Jc, wc]))); + } + function hNn() { + hNn = F, QQn = Ce((du(), A(T(JQn, 1), G, 472, 0, [kf, ma, Xs]))); + } + function lNn() { + lNn = F, xQn = Ce((qu(), A(T($r, 1), G, 108, 0, [xun, Yr, Sw]))); + } + function aNn() { + aNn = F, pZn = Ce((t5(), A(T(Pon, 1), G, 391, 0, [E_, j_, C_]))); + } + function dNn() { + dNn = F, Que = Ce((jl(), A(T(ldn, 1), G, 346, 0, [uO, T1, E9]))); + } + function bNn() { + bNn = F, Uce = Ce(($k(), A(T(Fq, 1), G, 444, 0, [XI, VI, WI]))); + } + function wNn() { + wNn = F, Xue = Ce((Nf(), A(T(Zan, 1), G, 278, 0, [xv, Qw, Fv]))); + } + function gNn() { + gNn = F, loe = Ce((Gp(), A(T(mdn, 1), G, 280, 0, [pdn, Zw, aO]))); + } + function Df(n, e) { + return !n.o && (n.o = new Pu((Mc(), tl), A1, n, 0)), wx(n.o, e); + } + function h4e(n, e) { + var t; + n.C && (t = u(Mr(n.b, e), 127).n, t.d = n.C.d, t.a = n.C.a); + } + function UJ(n) { + var e, t, i, r; + r = n.d, e = n.a, t = n.b, i = n.c, n.d = t, n.a = i, n.b = r, n.c = e; + } + function l4e(n) { + return !n.g && (n.g = new CE()), !n.g.b && (n.g.b = new byn(n)), n.g.b; + } + function rk(n) { + return !n.g && (n.g = new CE()), !n.g.c && (n.g.c = new pyn(n)), n.g.c; + } + function a4e(n) { + return !n.g && (n.g = new CE()), !n.g.d && (n.g.d = new wyn(n)), n.g.d; + } + function d4e(n) { + return !n.g && (n.g = new CE()), !n.g.a && (n.g.a = new gyn(n)), n.g.a; + } + function b4e(n, e, t, i) { + return t && (i = t.Rh(e, Ot(t.Dh(), n.c.uk()), null, i)), i; + } + function w4e(n, e, t, i) { + return t && (i = t.Th(e, Ot(t.Dh(), n.c.uk()), null, i)), i; + } + function e$(n, e, t, i) { + var r; + return r = K(ye, _e, 28, e + 1, 15, 1), vPe(r, n, e, t, i), r; + } + function K(n, e, t, i, r, c) { + var s; + return s = _Rn(r, i), r != 10 && A(T(n, c), e, t, r, s), s; + } + function g4e(n, e, t) { + var i, r; + for (r = new Q4(e, n), i = 0; i < t; ++i) + iA(r); + return r; + } + function t$(n, e, t) { + var i, r; + if (t != null) + for (i = 0; i < e; ++i) + r = t[i], n.Qi(i, r); + } + function GJ(n, e) { + var t; + return t = new DO(), t.c = !0, t.d = e.md(), LGn(n, e.ld(), t); + } + function p4e(n, e) { + var t; + t = n.q.getHours() + (e / 3600 | 0), n.q.setSeconds(e), H5(n, t); + } + function zJ(n, e) { + var t, i; + return t = e, i = TN(k4(new f$(n, t))), iM(new f$(n, t)), i; + } + function m4e(n, e) { + e.Ug("Label management", 1), PC(v(n, (JM(), b9))), e.Vg(); + } + function v4e(n, e, t, i) { + LUn(n, e, t, Im(n, e, i, D(e, 102) && (u(e, 19).Bb & fr) != 0)); + } + function XJ(n, e, t) { + u(n.b, 68), u(n.b, 68), u(n.b, 68), nu(n.a, new gSn(t, e, n)); + } + function Bi(n, e, t) { + if (n < 0 || e > t || e < n) + throw M(new gz(ZA + n + Stn + e + Mtn + t)); + } + function i$(n) { + n ? (this.c = n, this.b = null) : (this.c = null, this.b = new Z()); + } + function r$(n, e) { + oC.call(this, n, e), this.a = K(lNe, WA, 447, 2, 0, 1), this.b = !0; + } + function VJ(n) { + wFn.call(this, n, 0), sAn(this), this.d.b = this.d, this.d.a = this.d; + } + function WJ(n) { + this.e = n, this.b = this.e.a.entries(), this.a = K(yi, Bn, 1, 0, 5, 1); + } + function pNn() { + pNn = F, bie = Su(Ke(new ri(), (Vi(), Vs), (er(), N_)), zr, bj); + } + function k4e() { + return vA(), A(T(xsn, 1), G, 283, 0, [nH, Z_, tH, eH, iH, JP]); + } + function y4e() { + return Vk(), A(T(qsn, 1), G, 281, 0, [YP, Ksn, Hsn, Rsn, _sn, rH]); + } + function j4e() { + return ym(), A(T(Wsn, 1), G, 282, 0, [x8, Gsn, Vsn, Xsn, zsn, Usn]); + } + function E4e() { + return Yp(), A(T(bv, 1), G, 232, 0, [dv, N8, av, $w, p2, g2]); + } + function C4e() { + return Vn(), A(T(D_, 1), G, 273, 0, [Xt, Ti, ni, Hc, Sc, Uf]); + } + function M4e() { + return Uu(), A(T(oO, 1), G, 279, 0, [Ia, Fl, tE, A9, T9, B3]); + } + function T4e() { + return Li(), A(T(bdn, 1), G, 101, 0, [Pa, Jf, Rv, Gd, el, Uc]); + } + function A4e() { + return pA(), A(T(cdn, 1), G, 321, 0, [dU, tdn, rdn, ndn, idn, edn]); + } + function S4e() { + return Bh(), A(T(fan, 1), G, 255, 0, [Vq, qj, Uj, eO, ZI, nO]); + } + function P4e() { + return gd(), A(T(Yq, 1), G, 298, 0, [Qq, m9, p9, Jq, w9, g9]); + } + function JJ(n) { + var e; + return !n.a && n.b != -1 && (e = n.c.Dh(), n.a = $n(e, n.b)), n.a; + } + function ve(n, e) { + return n.Si() && n.Hc(e) ? !1 : (n.Hi(e), !0); + } + function df(n, e) { + return G7(e, "Horizontal alignment cannot be null"), n.b = e, n; + } + function mNn(n, e, t) { + nt(); + var i; + return i = sa(n, e), t && i && Rwe(n) && (i = null), i; + } + function QJ(n, e, t) { + var i; + i = n.b[t.c.p][t.p], i.b += e.b, i.c += e.c, i.a += e.a, ++i.a; + } + function YJ(n, e, t) { + var i; + n.d[e.g] = t, i = n.g.c, i[e.g] = y.Math.max(i[e.g], t + 1); + } + function J1(n, e) { + var t, i; + return t = n.a - e.a, i = n.b - e.b, y.Math.sqrt(t * t + i * i); + } + function ZJ(n, e) { + var t, i; + for (i = e.Kc(); i.Ob(); ) + t = u(i.Pb(), 36), sUn(n, t, 0, 0); + } + function n1(n, e, t) { + var i, r; + for (r = n.Kc(); r.Ob(); ) + i = u(r.Pb(), 36), Am(i, e, t); + } + function I4e(n) { + var e, t; + for (t = ge(n.a, 0); t.b != t.d.c; ) + e = u(be(t), 65), Dnn(e); + } + function vNn(n, e) { + return kCn(n.e, e) || f1(n.e, e, new fRn(e)), u(Lf(n.e, e), 113); + } + function _u(n, e, t, i) { + return Jn(n), Jn(e), Jn(t), Jn(i), new AW(n, e, new B0n()); + } + function Pu(n, e, t, i) { + this.ak(), this.a = e, this.b = n, this.c = new jW(this, e, t, i); + } + function c$(n, e, t, i, r, c) { + vJ.call(this, e, i, r, c), this.c = n, this.b = t; + } + function ck(n, e, t, i, r, c) { + vJ.call(this, e, i, r, c), this.c = n, this.a = t; + } + function uk(n, e) { + var t, i, r; + return r = n.r, i = n.d, t = G5(n, e, !0), t.b != r || t.a != i; + } + function ok(n, e, t) { + var i, r; + return r = (i = Cm(n.b, e), i), r ? qA(hk(n, r), t) : null; + } + function O4e(n, e, t) { + var i, r, c; + i = dl(n, t), r = null, i && (r = gnn(i)), c = r, uRn(e, t, c); + } + function D4e(n, e, t) { + var i, r, c; + i = dl(n, t), r = null, i && (r = gnn(i)), c = r, uRn(e, t, c); + } + function $4(n, e) { + var t; + return t = n.Ih(e), t >= 0 ? n.Lh(t, !0, !0) : q0(n, e, !0); + } + function L4e(n, e, t) { + var i; + return i = vFn(n, e, t), n.b = new ET(i.c.length), den(n, i); + } + function N4e(n) { + if (n.b <= 0) + throw M(new nc()); + return --n.b, n.a -= n.c.c, Y(n.a); + } + function $4e(n) { + var e; + if (!n.a) + throw M(new PIn()); + return e = n.a, n.a = At(n.a), e; + } + function x4e(n) { + for (; !n.a; ) + if (!eSn(n.c, new C9n(n))) + return !1; + return !0; + } + function Kp(n) { + var e; + return Se(n), D(n, 204) ? (e = u(n, 204), e) : new _8n(n); + } + function F4e(n) { + YM(), u(n.of((He(), Jw)), 181).Fc((Uu(), tE)), n.qf(sU, null); + } + function YM() { + YM = F, wue = new Emn(), pue = new Cmn(), gue = M6e((He(), sU), wue, Ta, pue); + } + function ZM() { + ZM = F, Kln = new sX("LEAF_NUMBER", 0), vq = new sX("NODE_SIZE", 1); + } + function u$(n) { + n.a = K(ye, _e, 28, n.b + 1, 15, 1), n.c = K(ye, _e, 28, n.b, 15, 1), n.d = 0; + } + function B4e(n, e) { + n.a.Ne(e.d, n.b) > 0 && (nn(n.c, new GV(e.c, e.d, n.d)), n.b = e.d); + } + function nQ(n, e) { + if (n.g == null || e >= n.i) + throw M(new aL(e, n.i)); + return n.g[e]; + } + function kNn(n, e, t) { + if (im(n, t), t != null && !n.fk(t)) + throw M(new uD()); + return t; + } + function o$(n, e) { + return bk(e) != 10 && A(wo(e), e.Sm, e.__elementTypeId$, bk(e), n), n; + } + function x4(n, e, t, i) { + var r; + i = (E0(), i || Pun), r = n.slice(e, t), Tnn(r, n, e, t, -e, i); + } + function zo(n, e, t, i, r) { + return e < 0 ? q0(n, t, i) : u(t, 69).wk().yk(n, n.hi(), e, i, r); + } + function R4e(n, e) { + return bt($(R(v(n, (W(), hb)))), $(R(v(e, hb)))); + } + function yNn() { + yNn = F, IQn = Ce((F4(), A(T(lP, 1), G, 304, 0, [e_, t_, i_, r_]))); + } + function F4() { + F4 = F, e_ = new uC("All", 0), t_ = new lTn(), i_ = new kTn(), r_ = new hTn(); + } + function Hu() { + Hu = F, Ch = new FD(s3, 0), pa = new FD(Hm, 1), zs = new FD(f3, 2); + } + function jNn() { + jNn = F, KA(), s0n = St, mse = ai, f0n = new z9(St), vse = new z9(ai); + } + function ENn() { + ENn = F, jYn = Ce(($0(), A(T(yYn, 1), G, 417, 0, [rj, ij, a_, d_]))); + } + function CNn() { + CNn = F, AYn = Ce((T5(), A(T(TYn, 1), G, 406, 0, [fj, wP, gP, hj]))); + } + function MNn() { + MNn = F, CYn = Ce((Vp(), A(T(EYn, 1), G, 332, 0, [uj, cj, oj, sj]))); + } + function TNn() { + TNn = F, DZn = Ce((bd(), A(T(Lon, 1), G, 389, 0, [Dw, Don, P_, I_]))); + } + function ANn() { + ANn = F, TZn = Ce((Z4(), A(T(MZn, 1), G, 416, 0, [cb, Ow, Iw, d2]))); + } + function SNn() { + SNn = F, tne = Ce(($f(), A(T(ene, 1), G, 421, 0, [j3, hv, lv, B_]))); + } + function PNn() { + PNn = F, GZn = Ce((OT(), A(T(UZn, 1), G, 371, 0, [F_, HP, qP, wj]))); + } + function INn() { + INn = F, nie = Ce((uw(), A(T(RH, 1), G, 203, 0, [TI, BH, P2, S2]))); + } + function ONn() { + ONn = F, iie = Ce((hh(), A(T(Hhn, 1), G, 284, 0, [y1, _hn, HH, qH]))); + } + function sk() { + sk = F, Fsn = new Yz(vh, 0), QP = new Yz("IMPROVE_STRAIGHTNESS", 1); + } + function DNn(n, e) { + var t, i; + return i = e / n.c.Rd().gc() | 0, t = e % n.c.Rd().gc(), Rp(n, i, t); + } + function LNn(n) { + var e; + if (n.nl()) + for (e = n.i - 1; e >= 0; --e) + L(n, e); + return jJ(n); + } + function eQ(n) { + var e, t; + if (!n.b) + return null; + for (t = n.b; e = t.a[0]; ) + t = e; + return t; + } + function NNn(n) { + var e, t; + if (!n.b) + return null; + for (t = n.b; e = t.a[1]; ) + t = e; + return t; + } + function K4e(n) { + return D(n, 180) ? "" + u(n, 180).a : n == null ? null : Jr(n); + } + function _4e(n) { + return D(n, 180) ? "" + u(n, 180).a : n == null ? null : Jr(n); + } + function $Nn(n, e) { + if (e.a) + throw M(new ec(nXn)); + hi(n.a, e), e.a = n, !n.j && (n.j = e); + } + function tQ(n, e) { + IC.call(this, e.zd(), e.yd() & -16449), Jn(n), this.a = n, this.c = e; + } + function H4e(n, e) { + return new _L(e, d0(Ki(e.e), e.f.a + n, e.f.b + n), (_n(), !1)); + } + function q4e(n, e) { + return v4(), nn(n, new wi(e, Y(e.e.c.length + e.g.c.length))); + } + function U4e(n, e) { + return v4(), nn(n, new wi(e, Y(e.e.c.length + e.g.c.length))); + } + function xNn() { + xNn = F, lce = Ce((sA(), A(T(c1n, 1), G, 354, 0, [Eq, i1n, r1n, t1n]))); + } + function FNn() { + FNn = F, $re = Ce((b5(), A(T(xln, 1), G, 353, 0, [aq, BI, lq, hq]))); + } + function BNn() { + BNn = F, hre = Ce((Qp(), A(T(rln, 1), G, 405, 0, [LI, t9, i9, r9]))); + } + function RNn() { + RNn = F, Vue = Ce((El(), A(T(aU, 1), G, 223, 0, [lU, Yj, Bv, F3]))); + } + function KNn() { + KNn = F, Zue = Ce((To(), A(T(Yue, 1), G, 291, 0, [nE, Zh, Aa, Zj]))); + } + function _Nn() { + _Nn = F, foe = Ce((go(), A(T(S9, 1), G, 386, 0, [rE, zd, iE, Yw]))); + } + function HNn() { + HNn = F, doe = Ce((qT(), A(T(Cdn, 1), G, 320, 0, [wU, ydn, Edn, jdn]))); + } + function qNn() { + qNn = F, goe = Ce((LT(), A(T(woe, 1), G, 415, 0, [gU, Tdn, Mdn, Adn]))); + } + function nT() { + nT = F, xq = new oL(mVn, 0), I1n = new oL(Crn, 1), P1n = new oL(vh, 2); + } + function Jb(n, e, t, i, r) { + return Jn(n), Jn(e), Jn(t), Jn(i), Jn(r), new AW(n, e, i); + } + function UNn(n, e) { + var t; + return t = u(Bp(n.e, e), 400), t ? (tW(t), t.e) : null; + } + function au(n, e) { + var t; + return t = qr(n, e, 0), t == -1 ? !1 : (Zl(n, t), !0); + } + function GNn(n, e, t) { + var i; + return X1(n), i = new LO(), i.a = e, n.a.Nb(new TCn(i, t)), i.a; + } + function G4e(n) { + var e; + return X1(n), e = K(Oi, Ar, 28, 0, 15, 1), lg(n.a, new y9n(e)), e; + } + function iQ(n) { + var e; + if (!E$(n)) + throw M(new nc()); + return n.e = 1, e = n.d, n.d = null, e; + } + function e1(n) { + var e; + return Vr(n) && (e = 0 - n, !isNaN(e)) ? e : Y1(em(n)); + } + function qr(n, e, t) { + for (; t < n.c.length; ++t) + if (mc(e, n.c[t])) + return t; + return -1; + } + function s$(n) { + var e, t; + return t = u(sn(n.j, 0), 12), e = u(v(t, (W(), st)), 12), e; + } + function f$(n, e) { + var t; + this.f = n, this.b = e, t = u(ee(n.b, e), 260), this.c = t ? t.b : null; + } + function zNn() { + Fs(), this.b = new de(), this.f = new de(), this.g = new de(), this.e = new de(); + } + function eT(n) { + xC(this), this.g = n ? IM(n, n.ie()) : null, this.f = n, MM(this), this.je(); + } + function h$(n) { + var e; + e = n.jj(), e != null && n.d != -1 && u(e, 94).xh(n), n.i && n.i.oj(); + } + function fk(n) { + var e; + for (e = n.p + 1; e < n.c.a.c.length; ++e) + --u(sn(n.c.a, e), 10).p; + } + function XNn(n) { + Bb(!!n.c), FL(n.f.g, n.d), n.c.Qb(), n.c = null, n.b = GQ(n), n.d = n.f.g; + } + function Zu(n) { + return n.b || (n.b = new vPn(n, Er, n), !n.a && (n.a = new P7(n, n))), n.b; + } + function hk(n, e) { + var t, i; + return t = u(e, 690), i = t.xi(), !i && t.Ai(i = new FMn(n, e)), i; + } + function Dr(n, e) { + var t, i; + return t = u(e, 692), i = t.$k(), !i && t.cl(i = new uDn(n, e)), i; + } + function rQ(n, e) { + o6(); + var t, i; + return t = xp(n), i = xp(e), !!t && !!i && !pRn(t.k, i.k); + } + function tT(n, e) { + return mc(e, sn(n.f, 0)) || mc(e, sn(n.f, 1)) || mc(e, sn(n.f, 2)); + } + function lk(n, e) { + if (e < 0) + throw M(new Pr(DVn + e)); + return xDn(n, e + 1), sn(n.j, e); + } + function VNn(n, e, t, i) { + if (!n) + throw M(new Gn(R5(e, A(T(yi, 1), Bn, 1, 5, [t, i])))); + } + function ml(n, e, t, i, r, c, s) { + k$.call(this, e, i, r, c, s), this.c = n, this.b = t; + } + function Fh(n, e, t) { + var i, r; + for (i = 10, r = 0; r < t - 1; r++) + e < i && (n.a += "0"), i *= 10; + n.a += e; + } + function iT(n) { + var e, t; + return t = n.length, e = K(fs, wh, 28, t, 15, 1), qPn(n, 0, t, e, 0), e; + } + function ak(n) { + ePn(); + var e, t; + return e = n + 128, t = bun[e], !t && (t = bun[e] = new u9n(n)), t; + } + function WNn(n) { + return FL(n.d.a.e.g, n.b), oe(n.c != n.d.a.d), n.a = n.c, n.c = n.c.a, n.a; + } + function z4e(n) { + switch (n.g) { + case 0: + return et; + case 1: + return -1; + default: + return 0; + } + } + function X4e(n) { + return DZ(n, (B4(), aun)) < 0 ? -P1e(em(n)) : n.l + n.m * o3 + n.h * kd; + } + function JNn(n) { + (this.q ? this.q : (Dn(), Dn(), Vh)).Ac(n.q ? n.q : (Dn(), Dn(), Vh)); + } + function V4e(n, e) { + Ep(u(u(n.f, 27).of((He(), v9)), 101)) && e8e(mN(u(n.f, 27)), e); + } + function l$(n, e) { + var t; + return t = Ot(n.d, e), t >= 0 ? tA(n, t, !0, !0) : q0(n, e, !0); + } + function cQ(n) { + var e; + return e = ud(Un(n, 32)), e == null && (iu(n), e = ud(Un(n, 32))), e; + } + function uQ(n) { + var e; + return n.Oh() || (e = se(n.Dh()) - n.ji(), n.$h().Mk(e)), n.zh(); + } + function QNn(n, e) { + con = new kE(), MYn = e, I8 = n, u(I8.b, 68), XJ(I8, con, null), aGn(I8); + } + function t5() { + t5 = F, E_ = new RD("XY", 0), j_ = new RD("X", 1), C_ = new RD("Y", 2); + } + function du() { + du = F, kf = new BD("TOP", 0), ma = new BD(Hm, 1), Xs = new BD(Ftn, 2); + } + function vl() { + vl = F, vj = new GD(vh, 0), k2 = new GD("TOP", 1), E3 = new GD(Ftn, 2); + } + function dk() { + dk = F, UH = new nX("INPUT_ORDER", 0), GH = new nX("PORT_DEGREE", 1); + } + function B4() { + B4 = F, hun = Yc(io, io, 524287), bQn = Yc(0, 0, Ty), lun = QN(1), QN(2), aun = QN(0); + } + function a$(n) { + var e; + return n.d != n.r && (e = gs(n), n.e = !!e && e.lk() == bJn, n.d = e), n.e; + } + function d$(n, e, t) { + var i; + return i = n.g[e], I6(n, e, n.Zi(e, t)), n.Ri(e, t, i), n.Ni(), i; + } + function rT(n, e) { + var t; + return t = n.dd(e), t >= 0 ? (n.gd(t), !0) : !1; + } + function b$(n, e) { + var t; + for (Se(n), Se(e), t = !1; e.Ob(); ) + t = t | n.Fc(e.Pb()); + return t; + } + function Lf(n, e) { + var t; + return t = u(ee(n.e, e), 400), t ? (DTn(n, t), t.e) : null; + } + function YNn(n) { + var e, t; + return e = n / 60 | 0, t = n % 60, t == 0 ? "" + e : "" + e + ":" + ("" + t); + } + function Qb(n, e) { + var t = n.a[e], i = (K$(), WK)[typeof t]; + return i ? i(t) : wY(typeof t); + } + function rc(n, e) { + var t, i; + return ta(n), i = new _J(e, n.a), t = new rSn(i), new Tn(n, t); + } + function w$(n) { + var e; + return e = n.b.c.length == 0 ? null : sn(n.b, 0), e != null && M$(n, 0), e; + } + function W4e(n, e) { + var t, i, r; + r = e.c.i, t = u(ee(n.f, r), 60), i = t.d.c - t.e.c, BQ(e.a, i, 0); + } + function oQ(n, e) { + var t; + for (++n.d, ++n.c[e], t = e + 1; t < n.a.length; ) + ++n.a[t], t += t & -t; + } + function ZNn(n, e, t, i) { + nt(), Jd.call(this, 26), this.c = n, this.a = e, this.d = t, this.b = i; + } + function n$n(n, e) { + for (; e[0] < n.length && th(` \r +`, bu(Xi(n, e[0]))) >= 0; ) + ++e[0]; + } + function J4e(n, e) { + eu(n, e == null || GC((Jn(e), e)) || isNaN((Jn(e), e)) ? 0 : (Jn(e), e)); + } + function Q4e(n, e) { + tu(n, e == null || GC((Jn(e), e)) || isNaN((Jn(e), e)) ? 0 : (Jn(e), e)); + } + function Y4e(n, e) { + O0(n, e == null || GC((Jn(e), e)) || isNaN((Jn(e), e)) ? 0 : (Jn(e), e)); + } + function Z4e(n, e) { + I0(n, e == null || GC((Jn(e), e)) || isNaN((Jn(e), e)) ? 0 : (Jn(e), e)); + } + function nme(n, e, t) { + return vp(new V(t.e.a + t.f.a / 2, t.e.b + t.f.b / 2), n) == (Jn(e), e); + } + function eme(n, e) { + return D(e, 102) && u(e, 19).Bb & fr ? new dL(e, n) : new Q4(e, n); + } + function tme(n, e) { + return D(e, 102) && u(e, 19).Bb & fr ? new dL(e, n) : new Q4(e, n); + } + function bk(n) { + return n.__elementTypeCategory$ == null ? 10 : n.__elementTypeCategory$; + } + function e$n(n, e) { + return e == (xL(), xL(), AQn) ? n.toLocaleLowerCase() : n.toLowerCase(); + } + function t$n(n) { + if (!n.e) + throw M(new nc()); + return n.c = n.a = n.e, n.e = n.e.e, --n.d, n.a.f; + } + function sQ(n) { + if (!n.c) + throw M(new nc()); + return n.e = n.a = n.c, n.c = n.c.c, ++n.d, n.a.f; + } + function i$n(n) { + var e; + for (++n.a, e = n.c.a.length; n.a < e; ++n.a) + if (n.c.b[n.a]) + return; + } + function ime(n) { + var e, t; + if (n.a) { + t = null; + do + e = n.a, n.a = null, t = d_n(e, t); + while (n.a); + n.a = t; + } + } + function rme(n) { + var e, t; + if (n.b) { + t = null; + do + e = n.b, n.b = null, t = d_n(e, t); + while (n.b); + n.b = t; + } + } + function cme(n, e) { + var t; + for (t = 0; n.e != n.i.gc(); ) + Pbe(e, ue(n), Y(t)), t != et && ++t; + } + function ume(n, e) { + var t; + return t = F0(n.e.c, e.e.c), t == 0 ? bt(n.e.d, e.e.d) : t; + } + function ome(n, e) { + var t, i; + for (i = e.c, t = i + 1; t <= e.f; t++) + n.a[t] > n.a[i] && (i = t); + return i; + } + function r$n(n) { + var e; + return e = u(v(n, (W(), sb)), 313), e ? e.a == n : !1; + } + function c$n(n) { + var e; + return e = u(v(n, (W(), sb)), 313), e ? e.i == n : !1; + } + function u$n() { + u$n = F, yZn = Ce((Vi(), A(T(Ion, 1), G, 367, 0, [Vs, Wh, Dc, _c, zr]))); + } + function o$n() { + o$n = F, rne = Ce((sw(), A(T(ine, 1), G, 375, 0, [gj, zP, XP, GP, UP]))); + } + function s$n() { + s$n = F, wne = Ce((s1(), A(T(Lsn, 1), G, 348, 0, [J_, Dsn, Q_, gv, wv]))); + } + function f$n() { + f$n = F, eie = Ce((M5(), A(T($hn, 1), G, 323, 0, [Nhn, KH, _H, W8, J8]))); + } + function h$n() { + h$n = F, Sne = Ce((Yo(), A(T(hfn, 1), G, 171, 0, [Ej, _8, ya, H8, Fw]))); + } + function l$n() { + l$n = F, qre = Ce((wA(), A(T(Hre, 1), G, 368, 0, [pq, bq, mq, wq, gq]))); + } + function a$n() { + a$n = F, qce = Ce((x5(), A(T(Hce, 1), G, 373, 0, [N2, D3, d9, a9, _j]))); + } + function d$n() { + d$n = F, Wce = Ce((Jk(), A(T(K1n, 1), G, 324, 0, [F1n, _q, R1n, Hq, B1n]))); + } + function b$n() { + b$n = F, zue = Ce((ui(), A(T(y9, 1), G, 88, 0, [Wf, Xr, Fr, Vf, us]))); + } + function w$n() { + w$n = F, mue = Ce((pf(), A(T(Yh, 1), G, 170, 0, [xn, mi, Sh, _d, C1]))); + } + function g$n() { + g$n = F, eoe = Ce((Bg(), A(T(M9, 1), G, 256, 0, [Sa, eE, adn, C9, ddn]))); + } + function p$n() { + p$n = F, roe = Ce((en(), A(T(hr, 1), Tc, 64, 0, [sc, Xn, Zn, ae, Wn]))); + } + function cT() { + cT = F, Run = new Uz("BY_SIZE", 0), s_ = new Uz("BY_SIZE_AND_SHAPE", 1); + } + function uT() { + uT = F, v_ = new Xz("EADES", 0), vP = new Xz("FRUCHTERMAN_REINGOLD", 1); + } + function wk() { + wk = F, WP = new Qz("READING_DIRECTION", 0), Nsn = new Qz("ROTATION", 1); + } + function i5() { + i5 = F, PZn = new rwn(), IZn = new own(), AZn = new swn(), SZn = new uwn(), OZn = new fwn(); + } + function m$n(n) { + this.b = new Z(), this.a = new Z(), this.c = new Z(), this.d = new Z(), this.e = n; + } + function v$n(n) { + this.g = n, this.f = new Z(), this.a = y.Math.min(this.g.c.c, this.g.d.c); + } + function k$n(n, e, t) { + qC.call(this), lQ(this), this.a = n, this.c = t, this.b = e.d, this.f = e.e; + } + function sme(n, e, t) { + var i, r; + for (r = new C(t); r.a < r.c.c.length; ) + i = E(r), WZ(n, e, i); + } + function bf(n, e, t) { + var i; + if (e == null) + throw M(new rp()); + return i = dl(n, e), y3e(n, e, t), i; + } + function g$(n, e) { + var t; + return t = u(ee(n.a, e), 137), t || (t = new xO(), Xe(n.a, e, t)), t; + } + function $n(n, e) { + var t; + return t = (n.i == null && dh(n), n.i), e >= 0 && e < t.length ? t[e] : null; + } + function fme(n, e) { + var t; + return t = e > 0 ? e - 1 : e, eEn($he(U$n(YV(new op(), t), n.n), n.j), n.k); + } + function Lr(n) { + var e, t; + t = (e = new hD(), e), ve((!n.q && (n.q = new q(Ss, n, 11, 10)), n.q), t); + } + function fQ(n) { + return (n.i & 2 ? "interface " : n.i & 1 ? "" : "class ") + (ll(n), n.o); + } + function oT(n) { + return Cc(n, et) > 0 ? et : Cc(n, Wi) < 0 ? Wi : Ae(n); + } + function Yb(n) { + return n < 3 ? (Co(n, $zn), n + 1) : n < W5 ? gi(n / 0.75 + 1) : et; + } + function y$n(n, e) { + return Jn(e), kW(n), n.d.Ob() ? (e.Cd(n.d.Pb()), !0) : !1; + } + function hme(n, e) { + var t, i; + return t = u(iw(n.d, e), 16), t ? (i = e, n.e.pc(i, t)) : null; + } + function lme(n, e, t, i) { + var r; + n.j = -1, Rnn(n, pnn(n, e, t), (dr(), r = u(e, 69).vk(), r.xl(i))); + } + function ame(n, e) { + return _p(), -Ec(u(v(n, (lc(), O2)), 17).a, u(v(e, O2), 17).a); + } + function j$n(n, e) { + return !!o5(n, e, Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15)))); + } + function dme() { + return Em(), A(T(kO, 1), G, 245, 0, [kU, mO, vO, pO, vU, gO, wO, mU]); + } + function bme() { + return a1(), A(T(vue, 1), G, 285, 0, [uan, ji, Zr, $2, Qi, Pt, L3, Xf]); + } + function wme() { + return DA(), A(T(Msn, 1), G, 276, 0, [__, U_, K_, X_, q_, H_, z_, G_]); + } + function gme(n) { + var e; + return e = $(R(v(n, (cn(), v1)))), e < 0 && (e = 0, U(n, v1, e)), e; + } + function sT(n, e) { + var t, i; + for (i = n.Kc(); i.Ob(); ) + t = u(i.Pb(), 72), U(t, (W(), A3), e); + } + function pme(n, e, t) { + var i; + i = y.Math.max(0, n.b / 2 - 0.5), P5(t, i, 1), nn(e, new PCn(t, i)); + } + function mme(n, e, t) { + var i; + return i = n.a.e[u(e.a, 10).p] - n.a.e[u(t.a, 10).p], gi(B7(i)); + } + function fT(n, e) { + var t; + return ta(n), t = new BIn(n, n.a.zd(), n.a.yd() | 4, e), new Tn(n, t); + } + function p$(n) { + var e; + Bb(!!n.c), e = n.c.a, Xo(n.d, n.c), n.b == n.c ? n.b = e : --n.a, n.c = null; + } + function E$n(n) { + return n.a >= -0.01 && n.a <= Kf && (n.a = 0), n.b >= -0.01 && n.b <= Kf && (n.b = 0), n; + } + function Dg(n) { + Vg(); + var e, t; + for (t = Arn, e = 0; e < n.length; e++) + n[e] > t && (t = n[e]); + return t; + } + function C$n(n, e) { + var t; + if (t = oy(n.Dh(), e), !t) + throw M(new Gn(ba + e + sK)); + return t; + } + function Zb(n, e) { + var t; + for (t = n; At(t); ) + if (t = At(t), t == e) + return !0; + return !1; + } + function vme(n, e) { + var t, i, r; + for (i = e.a.ld(), t = u(e.a.md(), 16).gc(), r = 0; r < t; r++) + n.Cd(i); + } + function nu(n, e) { + var t, i, r, c; + for (Jn(e), i = n.c, r = 0, c = i.length; r < c; ++r) + t = i[r], e.Cd(t); + } + function M$n(n, e, t, i, r, c) { + var s; + s = JN(i), Yi(s, r), Di(s, c), Pn(n.a, i, new zC(s, e, t.f)); + } + function T$n(n, e) { + ht(n, (Kh(), Iq), e.f), ht(n, pce, e.e), ht(n, Pq, e.d), ht(n, gce, e.c); + } + function A$n(n, e) { + this.a = new de(), this.e = new de(), this.b = (w5(), MI), this.c = n, this.b = e; + } + function S$n(n) { + this.d = n, this.c = n.c.vc().Kc(), this.b = null, this.a = null, this.e = (RE(), GK); + } + function Xo(n, e) { + var t; + return t = e.c, e.a.b = e.b, e.b.a = e.a, e.a = e.b = null, e.c = null, --n.b, t; + } + function kme(n, e) { + return e && n.b[e.g] == e ? ($t(n.b, e.g, null), --n.c, !0) : !1; + } + function yme(n, e) { + if (0 > n || n > e) + throw M(new pz("fromIndex: 0, toIndex: " + n + Mtn + e)); + } + function P0(n) { + if (n < 0) + throw M(new Gn("Illegal Capacity: " + n)); + this.g = this.aj(n); + } + function hQ(n, e) { + return Mf(), Ks(fa), y.Math.abs(n - e) <= fa || n == e || isNaN(n) && isNaN(e); + } + function m$(n, e) { + var t, i, r, c; + for (i = n.d, r = 0, c = i.length; r < c; ++r) + t = i[r], Tf(n.g, t).a = e; + } + function jme(n, e, t) { + var i, r, c; + for (r = e[t], i = 0; i < r.length; i++) + c = r[i], n.e[c.c.p][c.p] = i; + } + function Eme(n) { + var e; + for (e = 0; e < n.c.length; e++) + (Ln(e, n.c.length), u(n.c[e], 12)).p = e; + } + function Cme(n) { + var e, t; + for (e = n.a.d.j, t = n.c.d.j; e != t; ) + _s(n.b, e), e = RT(e); + _s(n.b, e); + } + function Mme(n) { + var e; + return e = y.Math.sqrt(n.a * n.a + n.b * n.b), e > 0 && (n.a /= e, n.b /= e), n; + } + function jo(n) { + var e; + return n.w ? n.w : (e = lpe(n), e && !e.Vh() && (n.w = e), e); + } + function R4(n, e) { + var t, i; + i = n.a, t = w5e(n, e, null), i != e && !n.e && (t = Lm(n, e, t)), t && t.oj(); + } + function P$n(n, e, t) { + var i, r; + i = e; + do + r = $(n.p[i.p]) + t, n.p[i.p] = r, i = n.a[i.p]; + while (i != e); + } + function I$n(n, e, t) { + var i = function() { + return n.apply(i, arguments); + }; + return e.apply(i, t), i; + } + function Tme(n) { + var e; + return n == null ? null : (e = u(n, 195), Bye(e, e.length)); + } + function L(n, e) { + if (n.g == null || e >= n.i) + throw M(new aL(e, n.i)); + return n.Wi(e, n.g[e]); + } + function Ame(n, e) { + Dn(); + var t, i; + for (i = new Z(), t = 0; t < n; ++t) + Kn(i.c, e); + return new jD(i); + } + function O$n(n) { + return ta(n), Mp(!0, "n may not be negative"), new Tn(n, new uxn(n.a)); + } + function lQ(n) { + n.b = (Hu(), pa), n.f = (du(), ma), n.d = (Co(2, vw), new zc(2)), n.e = new Ni(); + } + function hT(n) { + this.b = (Se(n), new Ru(n)), this.a = new Z(), this.d = new Z(), this.e = new Ni(); + } + function wf() { + wf = F, bc = new xD("BEGIN", 0), Jc = new xD(Hm, 1), wc = new xD("END", 2); + } + function Nf() { + Nf = F, xv = new fL(Hm, 0), Qw = new fL("HEAD", 1), Fv = new fL("TAIL", 2); + } + function _p() { + _p = F, Bre = lh(lh(lh(h6(new ri(), (Qp(), t9)), (K5(), ZH)), sln), aln); + } + function kl() { + kl = F, Kre = lh(lh(lh(h6(new ri(), (Qp(), r9)), (K5(), hln)), cln), fln); + } + function D$n() { + D$n = F, lne = Ce((Yp(), A(T(bv, 1), G, 232, 0, [dv, N8, av, $w, p2, g2]))); + } + function L$n() { + L$n = F, vne = Ce((vA(), A(T(xsn, 1), G, 283, 0, [nH, Z_, tH, eH, iH, JP]))); + } + function N$n() { + N$n = F, yne = Ce((Vk(), A(T(qsn, 1), G, 281, 0, [YP, Ksn, Hsn, Rsn, _sn, rH]))); + } + function $$n() { + $$n = F, jne = Ce((ym(), A(T(Wsn, 1), G, 282, 0, [x8, Gsn, Vsn, Xsn, zsn, Usn]))); + } + function x$n() { + x$n = F, xZn = Ce((Vn(), A(T(D_, 1), G, 273, 0, [Xt, Ti, ni, Hc, Sc, Uf]))); + } + function F$n() { + F$n = F, yue = Ce((Bh(), A(T(fan, 1), G, 255, 0, [Vq, qj, Uj, eO, ZI, nO]))); + } + function B$n() { + B$n = F, Aue = Ce((gd(), A(T(Yq, 1), G, 298, 0, [Qq, m9, p9, Jq, w9, g9]))); + } + function R$n() { + R$n = F, Wue = Ce((pA(), A(T(cdn, 1), G, 321, 0, [dU, tdn, rdn, ndn, idn, edn]))); + } + function K$n() { + K$n = F, toe = Ce((Li(), A(T(bdn, 1), G, 101, 0, [Pa, Jf, Rv, Gd, el, Uc]))); + } + function _$n() { + _$n = F, ioe = Ce((Uu(), A(T(oO, 1), G, 279, 0, [Ia, Fl, tE, A9, T9, B3]))); + } + function H$n() { + H$n = F, dP = (wf(), A(T(Pw, 1), G, 237, 0, [bc, Jc, wc])).length, h_ = dP; + } + function Sme() { + return aw(), A(T(jr, 1), G, 95, 0, [Qs, xl, Ys, nf, nl, Ms, Lo, Zs, Cs]); + } + function Pme(n, e) { + return ua(), Ec(n.b.c.length - n.e.c.length, e.b.c.length - e.e.c.length); + } + function Lg(n, e) { + return Bhe(u5(n, e, Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15))))); + } + function aQ(n, e) { + return Mf(), Ks(fa), y.Math.abs(n - e) <= fa || n == e || isNaN(n) && isNaN(e); + } + function lT(n, e) { + var t; + t = n.b, n.b = e, n.Db & 4 && !(n.Db & 1) && it(n, new Wb(n, 1, t, n.b)); + } + function K4(n, e) { + var t; + t = n.b, n.b = e, n.Db & 4 && !(n.Db & 1) && it(n, new Wb(n, 3, t, n.b)); + } + function I0(n, e) { + var t; + t = n.f, n.f = e, n.Db & 4 && !(n.Db & 1) && it(n, new Wb(n, 3, t, n.f)); + } + function O0(n, e) { + var t; + t = n.g, n.g = e, n.Db & 4 && !(n.Db & 1) && it(n, new Wb(n, 4, t, n.g)); + } + function eu(n, e) { + var t; + t = n.i, n.i = e, n.Db & 4 && !(n.Db & 1) && it(n, new Wb(n, 5, t, n.i)); + } + function tu(n, e) { + var t; + t = n.j, n.j = e, n.Db & 4 && !(n.Db & 1) && it(n, new Wb(n, 6, t, n.j)); + } + function _4(n, e) { + var t; + t = n.j, n.j = e, n.Db & 4 && !(n.Db & 1) && it(n, new Wb(n, 1, t, n.j)); + } + function H4(n, e) { + var t; + t = n.c, n.c = e, n.Db & 4 && !(n.Db & 1) && it(n, new Wb(n, 4, t, n.c)); + } + function q4(n, e) { + var t; + t = n.k, n.k = e, n.Db & 4 && !(n.Db & 1) && it(n, new Wb(n, 2, t, n.k)); + } + function aT(n, e) { + var t; + t = n.a, n.a = e, n.Db & 4 && !(n.Db & 1) && it(n, new Wb(n, 0, t, n.a)); + } + function t1(n, e) { + var t; + t = n.s, n.s = e, n.Db & 4 && !(n.Db & 1) && it(n, new UN(n, 4, t, n.s)); + } + function nw(n, e) { + var t; + t = n.t, n.t = e, n.Db & 4 && !(n.Db & 1) && it(n, new UN(n, 5, t, n.t)); + } + function v$(n, e) { + var t; + t = n.d, n.d = e, n.Db & 4 && !(n.Db & 1) && it(n, new UN(n, 2, t, n.d)); + } + function U4(n, e) { + var t; + t = n.F, n.F = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 5, t, e)); + } + function gk(n, e) { + var t; + return t = u(ee((iC(), yO), n), 57), t ? t.gk(e) : K(yi, Bn, 1, e, 5, 1); + } + function Ime(n, e) { + var t; + return t = vi(Ki(u(ee(n.g, e), 8)), LX(u(ee(n.f, e), 470).b)), t; + } + function Ome(n, e) { + var t, i, r; + return t = (i = (B1(), r = new eG(), r), e && oen(i, e), i), TQ(t, n), t; + } + function yl(n, e) { + var t, i; + return t = e in n.a, t && (i = dl(n, e).re(), i) ? i.a : null; + } + function q$n(n, e, t) { + if (im(n, t), !n.kl() && t != null && !n.fk(t)) + throw M(new uD()); + return t; + } + function U$n(n, e) { + return n.n = e, n.n ? (n.f = new Z(), n.e = new Z()) : (n.f = null, n.e = null), n; + } + function G$n(n, e) { + if (n) { + e.n = n; + var t = g2e(e); + if (!t) { + rP[n] = [e]; + return; + } + t.Rm = e; + } + } + function ud(n) { + var e; + return x6(n == null || Array.isArray(n) && (e = bk(n), !(e >= 14 && e <= 16))), n; + } + function Ee(n, e) { + var t; + return Jn(e), t = n[":" + e], x7(!!t, "Enum constant undefined: " + e), t; + } + function we(n, e, t, i, r, c) { + var s; + return s = bN(n, e), G$n(t, s), s.i = r ? 8 : 0, s.f = i, s.e = r, s.g = c, s; + } + function dQ(n, e, t, i, r) { + this.d = e, this.k = i, this.f = r, this.o = -1, this.p = 1, this.c = n, this.a = t; + } + function bQ(n, e, t, i, r) { + this.d = e, this.k = i, this.f = r, this.o = -1, this.p = 2, this.c = n, this.a = t; + } + function wQ(n, e, t, i, r) { + this.d = e, this.k = i, this.f = r, this.o = -1, this.p = 6, this.c = n, this.a = t; + } + function gQ(n, e, t, i, r) { + this.d = e, this.k = i, this.f = r, this.o = -1, this.p = 7, this.c = n, this.a = t; + } + function pQ(n, e, t, i, r) { + this.d = e, this.j = i, this.e = r, this.o = -1, this.p = 4, this.c = n, this.a = t; + } + function z$n(n, e) { + var t, i, r, c; + for (i = e, r = 0, c = i.length; r < c; ++r) + t = i[r], $Nn(n.a, t); + return n; + } + function Eo(n) { + var e, t, i, r; + for (t = n, i = 0, r = t.length; i < r; ++i) + e = t[i], Se(e); + return new cTn(n); + } + function mQ(n) { + var e; + return e = vi(Ki(n.d.d), n.c.d), mm(e, n.c.e.a, n.c.e.b), tt(e, n.c.d); + } + function vQ(n) { + var e; + return e = vi(Ki(n.c.d), n.d.d), mm(e, n.d.e.a, n.d.e.b), tt(e, n.d.d); + } + function Dme(n) { + var e = /function(?:\s+([\w$]+))?\s*\(/, t = e.exec(n); + return t && t[1] || uB; + } + function Lme(n, e, t) { + var i, r; + return r = n.length, i = y.Math.min(t, r), Bnn(n, 0, e, 0, i, !0), e; + } + function X$n(n, e, t) { + var i, r; + for (r = e.Kc(); r.Ob(); ) + i = u(r.Pb(), 74), hi(n, u(t.Kb(i), 27)); + } + function Nme(n, e) { + Ep(u(v(u(n.e, 10), (cn(), Ht)), 101)) && (Dn(), Zt(u(n.e, 10).j, e)); + } + function $me() { + return NA(), A(T(ton, 1), G, 257, 0, [eon, Qun, Yun, Jun, f_, non, Zun, Wun, Vun]); + } + function xme() { + return d1(), A(T(Ohn, 1), G, 265, 0, [xH, Shn, Phn, $H, Ahn, Ihn, CI, Sv, Pv]); + } + function D0() { + D0 = F, Oj = new ZD("BARYCENTER", 0), Z8 = new ZD(qXn, 1), PI = new ZD(UXn, 2); + } + function dT() { + dT = F, Qhn = new QD("NO", 0), JH = new QD(cin, 1), Jhn = new QD("LOOK_BACK", 2); + } + function bT() { + bT = F, Isn = new HD("ARD", 0), VP = new HD("MSD", 1), W_ = new HD("MANUAL", 2); + } + function pr() { + pr = F, Q8 = new XD(n8, 0), zu = new XD("INPUT", 1), Qc = new XD("OUTPUT", 2); + } + function G4() { + return zq || (zq = new Jqn(), Ng(zq, A(T(a2, 1), Bn, 134, 0, [new cG()]))), zq; + } + function Ks(n) { + if (!(n >= 0)) + throw M(new Gn("tolerance (" + n + ") must be >= 0")); + return n; + } + function V$n(n, e) { + var t; + return D(e, 44) ? n.c.Mc(e) : (t = wx(n, e), VT(n, e), t); + } + function Tr(n, e, t) { + return dd(n, e), Xc(n, t), t1(n, 0), nw(n, 1), o1(n, !0), u1(n, !0), n; + } + function pk(n, e) { + var t; + if (t = n.gc(), e < 0 || e > t) + throw M(new _b(e, t)); + return new SV(n, e); + } + function wT(n, e) { + n.b = y.Math.max(n.b, e.d), n.e += e.r + (n.a.c.length == 0 ? 0 : n.c), nn(n.a, e); + } + function W$n(n) { + Bb(n.c >= 0), _8e(n.d, n.c) < 0 && (n.a = n.a - 1 & n.d.a.length - 1, n.b = n.d.c), n.c = -1; + } + function gT(n) { + var e, t; + for (t = n.c.Cc().Kc(); t.Ob(); ) + e = u(t.Pb(), 16), e.$b(); + n.c.$b(), n.d = 0; + } + function Fme(n) { + var e, t, i, r; + for (t = n.a, i = 0, r = t.length; i < r; ++i) + e = t[i], HPn(e, e.length, null); + } + function r5(n, e) { + var t, i, r, c; + for (i = e, r = 0, c = i.length; r < c; ++r) + t = i[r], xt(n, t, n.c.b, n.c); + } + function J$n(n, e) { + var t, i; + for (t = 0, i = n.gc(); t < i; ++t) + if (mc(e, n.Xb(t))) + return t; + return -1; + } + function kQ(n) { + var e, t; + if (n == 0) + return 32; + for (t = 0, e = 1; !(e & n); e <<= 1) + ++t; + return t; + } + function Co(n, e) { + if (n < 0) + throw M(new Gn(e + " cannot be negative but was: " + n)); + return n; + } + function Bme(n, e) { + typeof window === vy && typeof window.$gwt === vy && (window.$gwt[n] = e); + } + function pT(n, e) { + return Fhe(o5(n.a, e, Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15))))); + } + function Rme(n, e, t) { + return Jb(n, new m9n(e), new z0n(), new v9n(t), A(T($r, 1), G, 108, 0, [])); + } + function Kme() { + return to(), A(T(gdn, 1), G, 264, 0, [Kv, uE, sO, P9, fO, lO, hO, bU, cE]); + } + function Q$n() { + Q$n = F, wQn = A(T(ye, 1), _e, 28, 15, [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]); + } + function c5() { + c5 = F, $8 = new _D("LAYER_SWEEP", 0), pj = new _D(sR, 1), Ssn = new _D(vh, 2); + } + function yQ() { + yQ = F, gie = Ke(Ke(Ke(new ri(), (Vi(), Vs), (er(), b2)), Wh, Nw), Dc, Lw); + } + function Y$n() { + Y$n = F, pie = Ke(Ke(Ke(new ri(), (Vi(), Vs), (er(), b2)), Wh, Nw), Dc, Lw); + } + function jQ() { + jQ = F, mie = Ke(Ke(Ke(new ri(), (Vi(), Vs), (er(), b2)), Wh, Nw), Dc, Lw); + } + function Z$n() { + Z$n = F, vie = Ke(Ke(Ke(new ri(), (Vi(), Vs), (er(), b2)), Wh, Nw), Dc, Lw); + } + function nxn() { + nxn = F, kie = Ke(Ke(Ke(new ri(), (Vi(), Vs), (er(), b2)), Wh, Nw), Dc, Lw); + } + function exn() { + exn = F, yie = Ke(Ke(Ke(new ri(), (Vi(), Vs), (er(), b2)), Wh, Nw), Dc, Lw); + } + function txn() { + txn = F, Cie = Su(Ke(Ke(new ri(), (Vi(), Dc), (er(), NP)), _c, PP), zr, LP); + } + function _me(n) { + var e, t; + for (t = new C(zRn(n)); t.a < t.c.c.length; ) + e = u(E(t), 695), e._f(); + } + function Hme() { + DEn(); + for (var n = RK, e = 0; e < arguments.length; e++) + n.push(arguments[e]); + } + function ixn(n) { + Lz(), this.g = new de(), this.f = new de(), this.b = new de(), this.c = new M0(), this.i = n; + } + function EQ() { + this.f = new Ni(), this.d = new nz(), this.c = new Ni(), this.a = new Z(), this.b = new Z(); + } + function rxn(n, e, t, i) { + this.ak(), this.a = e, this.b = n, this.c = null, this.c = new ZAn(this, e, t, i); + } + function k$(n, e, t, i, r) { + this.d = n, this.n = e, this.g = t, this.o = i, this.p = -1, r || (this.o = -2 - i - 1); + } + function cxn() { + BX.call(this), this.n = -1, this.g = null, this.i = null, this.j = null, this.Bb |= Gs; + } + function uxn(n) { + IC.call(this, n.Ad(64) ? OX(0, bs(n.zd(), 1)) : Ey, n.yd()), this.b = 1, this.a = n; + } + function qme(n, e) { + return _p(), u(v(e, (lc(), O2)), 17).a < n.gc() && u(v(e, O2), 17).a >= 0; + } + function CQ(n, e) { + n.r > 0 && n.c < n.r && (n.c += e, n.i && n.i.d > 0 && n.g != 0 && CQ(n.i, e / n.r * n.i.d)); + } + function MQ(n, e) { + var t; + t = n.c, n.c = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 1, t, n.c)); + } + function y$(n, e) { + var t; + t = n.c, n.c = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 4, t, n.c)); + } + function z4(n, e) { + var t; + t = n.k, n.k = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 2, t, n.k)); + } + function j$(n, e) { + var t; + t = n.D, n.D = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 2, t, n.D)); + } + function mT(n, e) { + var t; + t = n.f, n.f = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 8, t, n.f)); + } + function vT(n, e) { + var t; + t = n.i, n.i = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 7, t, n.i)); + } + function TQ(n, e) { + var t; + t = n.a, n.a = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 8, t, n.a)); + } + function AQ(n, e) { + var t; + t = n.b, n.b = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 0, t, n.b)); + } + function SQ(n, e) { + var t; + t = n.b, n.b = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 0, t, n.b)); + } + function PQ(n, e) { + var t; + t = n.c, n.c = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 1, t, n.c)); + } + function IQ(n, e) { + var t; + t = n.d, n.d = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 1, t, n.d)); + } + function Ume(n, e, t) { + var i; + n.b = e, n.a = t, i = (n.a & 512) == 512 ? new gjn() : new rG(), n.c = rAe(i, n.b, n.a); + } + function oxn(n, e) { + return Sl(n.e, e) ? (dr(), a$(e) ? new eM(e, n) : new k7(e, n)) : new $Mn(e, n); + } + function Gme(n) { + var e, t; + return 0 > n ? new Dz() : (e = n + 1, t = new vLn(e, n), new oV(null, t)); + } + function zme(n, e) { + Dn(); + var t; + return t = new ap(1), Pi(n) ? Or(t, n, e) : Wc(t.f, n, e), new eD(t); + } + function Xme(n, e) { + var t, i; + return t = n.c, i = e.e[n.p], i > 0 ? u(sn(t.a, i - 1), 10) : null; + } + function Vme(n, e) { + var t, i; + return t = n.o + n.p, i = e.o + e.p, t < i ? -1 : t == i ? 0 : 1; + } + function Wme(n) { + var e; + return e = v(n, (W(), st)), D(e, 167) ? MBn(u(e, 167)) : null; + } + function sxn(n) { + var e; + return n = y.Math.max(n, 2), e = QQ(n), n > e ? (e <<= 1, e > 0 ? e : W5) : e; + } + function E$(n) { + switch (_X(n.e != 3), n.e) { + case 2: + return !1; + case 0: + return !0; + } + return i4e(n); + } + function fxn(n, e) { + var t; + return D(e, 8) ? (t = u(e, 8), n.a == t.a && n.b == t.b) : !1; + } + function Jme(n, e) { + var t; + t = new kE(), u(e.b, 68), u(e.b, 68), u(e.b, 68), nu(e.a, new BV(n, t, e)); + } + function hxn(n, e) { + var t, i; + for (i = e.vc().Kc(); i.Ob(); ) + t = u(i.Pb(), 44), zk(n, t.ld(), t.md()); + } + function OQ(n, e) { + var t; + t = n.d, n.d = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 11, t, n.d)); + } + function kT(n, e) { + var t; + t = n.j, n.j = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 13, t, n.j)); + } + function DQ(n, e) { + var t; + t = n.b, n.b = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 21, t, n.b)); + } + function Qme(n, e) { + (UM(), qf ? null : e.c).length == 0 && TAn(e, new BU()), Or(n.a, qf ? null : e.c, e); + } + function Yme(n, e) { + e.Ug("Hierarchical port constraint processing", 1), g9e(n), xLe(n), e.Vg(); + } + function L0() { + L0 = F, ob = new KD("START", 0), va = new KD("MIDDLE", 1), ub = new KD("END", 2); + } + function yT() { + yT = F, RI = new oX("P1_NODE_PLACEMENT", 0), L2 = new oX("P2_EDGE_ROUTING", 1); + } + function Q1() { + Q1 = F, y3 = new lt(Jtn), jP = new lt(MXn), D8 = new lt(TXn), lj = new lt(AXn); + } + function N0(n) { + var e; + return FL(n.f.g, n.d), oe(n.b), n.c = n.a, e = u(n.a.Pb(), 44), n.b = GQ(n), e; + } + function LQ(n) { + var e; + return n.b == null ? (zl(), zl(), dE) : (e = n.ul() ? n.tl() : n.sl(), e); + } + function lxn(n, e) { + var t; + return t = e == null ? -1 : qr(n.b, e, 0), t < 0 ? !1 : (M$(n, t), !0); + } + function _s(n, e) { + var t; + return Jn(e), t = e.g, n.b[t] ? !1 : ($t(n.b, t, e), ++n.c, !0); + } + function jT(n, e) { + var t, i; + return t = 1 - e, i = n.a[t], n.a[t] = i.a[e], i.a[e] = n, n.b = !0, i.b = !1, i; + } + function Zme(n, e) { + var t, i; + for (i = e.Kc(); i.Ob(); ) + t = u(i.Pb(), 272), n.b = !0, hi(n.e, t), t.b = n; + } + function nve(n, e) { + var t, i; + return t = u(v(n, (cn(), qw)), 8), i = u(v(e, qw), 8), bt(t.b, i.b); + } + function C$(n, e, t) { + var i, r, c; + return c = e >> 5, r = e & 31, i = ki(U1(n.n[t][c], Ae(Bs(r, 1))), 3), i; + } + function axn(n, e, t) { + var i, r, c; + for (c = n.a.length - 1, r = n.b, i = 0; i < t; r = r + 1 & c, ++i) + $t(e, i, n.a[r]); + } + function M$(n, e) { + var t; + t = Zl(n.b, n.b.c.length - 1), e < n.b.c.length && (Go(n.b, e, t), $_n(n, e)); + } + function dxn(n, e) { + var t; + return t = u(ee(n.c, e), 467), t || (t = new Jyn(), t.c = e, Xe(n.c, t.c, t)), t; + } + function eve(n, e) { + var t, i; + i = new Z(), t = e; + do + Kn(i.c, t), t = u(ee(n.k, t), 18); + while (t); + return i; + } + function T$(n, e, t) { + var i; + return i = new Z(), hen(n, e, i, t, !0, !0), n.b = new ET(i.c.length), i; + } + function od(n, e) { + var t, i; + for (t = n.Pc(), x4(t, 0, t.length, e), i = 0; i < t.length; i++) + n.hd(i, t[i]); + } + function NQ(n) { + var e, t; + for (t = new ne(n); t.e != t.i.gc(); ) + e = u(ue(t), 27), eu(e, 0), tu(e, 0); + } + function bxn(n) { + this.e = n, this.d = new zE(Yb(Tp(this.e).gc())), this.c = this.e.a, this.b = this.e.c; + } + function ET(n) { + this.b = n, this.a = K(ye, _e, 28, n + 1, 15, 1), this.c = K(ye, _e, 28, n, 15, 1), this.d = 0; + } + function wxn(n, e, t) { + A$n.call(this, e, t), this.d = K(Jh, w1, 10, n.a.c.length, 0, 1), xf(n.a, this.d); + } + function gxn(n, e, t) { + mJ.call(this, n, e, t), this.a = new de(), this.b = new de(), this.d = new q7n(this); + } + function pxn(n) { + aW.call(this), this.b = $(R(v(n, (cn(), Ws)))), this.a = u(v(n, $l), 223); + } + function A$(n, e) { + var t; + return D(e, 16) ? (t = u(e, 16), n.Gc(t)) : b$(n, u(Se(e), 20).Kc()); + } + function tve(n, e) { + Ut(ut(new Tn(null, new In(new Ua(n.b), 1)), new fMn(n, e)), new lMn(n, e)); + } + function ive(n, e) { + e.Ug(HXn, 1), Ut(rc(new Tn(null, new In(n.b, 16)), new Awn()), new Swn()), e.Vg(); + } + function mt(n) { + return Pi(n) ? i1(n) : xb(n) ? pp(n) : $b(n) ? SAn(n) : pW(n) ? n.Hb() : hW(n) ? a0(n) : ZW(n); + } + function mxn(n) { + var e, t; + for (t = n.c.a.ec().Kc(); t.Ob(); ) + e = u(t.Pb(), 219), efe(e, new FPn(e.f)); + } + function $Q(n) { + var e, t; + for (t = n.c.a.ec().Kc(); t.Ob(); ) + e = u(t.Pb(), 219), tfe(e, new QKn(e.e)); + } + function Xc(n, e) { + var t; + t = n.zb, n.zb = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 1, t, n.zb)); + } + function CT(n, e) { + var t; + t = n.xb, n.xb = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 3, t, n.xb)); + } + function MT(n, e) { + var t; + t = n.yb, n.yb = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 2, t, n.yb)); + } + function Ft(n, e) { + var t, i; + t = (i = new fD(), i), t.n = e, ve((!n.s && (n.s = new q(vu, n, 21, 17)), n.s), t); + } + function jt(n, e) { + var t, i; + i = (t = new cV(), t), i.n = e, ve((!n.s && (n.s = new q(vu, n, 21, 17)), n.s), i); + } + function Ri(n, e) { + var t, i, r; + for (Jn(e), t = !1, r = e.Kc(); r.Ob(); ) + i = r.Pb(), t = t | n.Fc(i); + return t; + } + function vxn(n) { + var e, t, i; + for (e = 0, i = n.Kc(); i.Ob(); ) + t = i.Pb(), e += t != null ? mt(t) : 0, e = ~~e; + return e; + } + function S$(n, e) { + var t = n.a, i = 0; + for (var r in t) + t.hasOwnProperty(r) && (e[i++] = r); + return e; + } + function kxn(n) { + var e; + return n == 0 ? "UTC" : (n < 0 ? (n = -n, e = "UTC+") : e = "UTC-", e + YNn(n)); + } + function xQ(n) { + return n.a < 54 ? n.f < 0 ? -1 : n.f > 0 ? 1 : 0 : (!n.c && (n.c = J7(vc(n.f))), n.c).e; + } + function yxn(n, e) { + e ? n.B == null && (n.B = n.D, n.D = null) : n.B != null && (n.D = n.B, n.B = null); + } + function rve(n, e) { + return Z4(), n == cb && e == Ow || n == Ow && e == cb || n == d2 && e == Iw || n == Iw && e == d2; + } + function cve(n, e) { + return Z4(), n == cb && e == Iw || n == cb && e == d2 || n == Ow && e == d2 || n == Ow && e == Iw; + } + function jxn(n, e) { + return Mf(), Ks(Kf), y.Math.abs(0 - e) <= Kf || e == 0 || isNaN(0) && isNaN(e) ? 0 : n / e; + } + function Exn(n, e) { + return $(R(ho(Lk(_r(new Tn(null, new In(n.c.b, 16)), new I7n(n)), e)))); + } + function FQ(n, e) { + return $(R(ho(Lk(_r(new Tn(null, new In(n.c.b, 16)), new P7n(n)), e)))); + } + function uve() { + return mr(), A(T(cH, 1), G, 259, 0, [ZP, cs, F8, nI, kv, v2, B8, mv, vv, eI]); + } + function ove() { + return ps(), A(T(Khn, 1), G, 243, 0, [AI, Sj, Pj, Fhn, Bhn, xhn, Rhn, SI, mb, Gw]); + } + function sve(n, e) { + var t; + e.Ug("General Compactor", 1), t = d8e(u(z(n, (oa(), yq)), 393)), t.Cg(n); + } + function fve(n, e) { + var t, i; + return t = u(z(n, (oa(), _I)), 17), i = u(z(e, _I), 17), Ec(t.a, i.a); + } + function BQ(n, e, t) { + var i, r; + for (r = ge(n, 0); r.b != r.d.c; ) + i = u(be(r), 8), i.a += e, i.b += t; + return n; + } + function u5(n, e, t) { + var i; + for (i = n.b[t & n.f]; i; i = i.b) + if (t == i.a && oh(e, i.g)) + return i; + return null; + } + function o5(n, e, t) { + var i; + for (i = n.c[t & n.f]; i; i = i.d) + if (t == i.f && oh(e, i.i)) + return i; + return null; + } + function hve(n, e, t) { + var i, r, c; + for (i = 0, r = 0; r < t; r++) + c = e[r], n[r] = c << 1 | i, i = c >>> 31; + i != 0 && (n[t] = i); + } + function P$(n, e, t, i, r, c) { + var s; + this.c = n, s = new Z(), pZ(n, s, e, n.b, t, i, r, c), this.a = new Fi(s, 0); + } + function Cxn() { + this.c = new XE(0), this.b = new XE(Trn), this.d = new XE(lVn), this.a = new XE(QB); + } + function Vo(n, e, t, i, r, c, s) { + je.call(this, n, e), this.d = t, this.e = i, this.c = r, this.b = c, this.a = If(s); + } + function Gt(n, e, t, i, r, c, s, f, h, l, a, d, g) { + return P_n(n, e, t, i, r, c, s, f, h, l, a, d, g), sx(n, !1), n; + } + function lve(n) { + return n.b.c.i.k == (Vn(), ni) ? u(v(n.b.c.i, (W(), st)), 12) : n.b.c; + } + function Mxn(n) { + return n.b.d.i.k == (Vn(), ni) ? u(v(n.b.d.i, (W(), st)), 12) : n.b.d; + } + function ave(n) { + var e; + return e = BM(n), s0(e.a, 0) ? (QE(), QE(), SQn) : (QE(), new uAn(e.b)); + } + function I$(n) { + var e; + return e = gJ(n), s0(e.a, 0) ? (Db(), Db(), n_) : (Db(), new AL(e.b)); + } + function O$(n) { + var e; + return e = gJ(n), s0(e.a, 0) ? (Db(), Db(), n_) : (Db(), new AL(e.c)); + } + function Txn(n) { + switch (n.g) { + case 2: + return en(), Wn; + case 4: + return en(), Zn; + default: + return n; + } + } + function Axn(n) { + switch (n.g) { + case 1: + return en(), ae; + case 3: + return en(), Xn; + default: + return n; + } + } + function Sxn(n) { + switch (n.g) { + case 0: + return new hmn(); + case 1: + return new lmn(); + default: + return null; + } + } + function Hp() { + Hp = F, x_ = new Dt("edgelabelcenterednessanalysis.includelabel", (_n(), ga)); + } + function RQ() { + RQ = F, Mie = lh(WMn(Ke(Ke(new ri(), (Vi(), Dc), (er(), NP)), _c, PP), zr), LP); + } + function Pxn() { + Pxn = F, Pie = lh(WMn(Ke(Ke(new ri(), (Vi(), Dc), (er(), NP)), _c, PP), zr), LP); + } + function D$() { + D$ = F, N9 = new ljn(), CU = A(T(vu, 1), f2, 179, 0, []), Joe = A(T(Ss, 1), Gcn, 62, 0, []); + } + function X4() { + X4 = F, dj = new Vz("TO_INTERNAL_LTR", 0), L_ = new Vz("TO_INPUT_DIRECTION", 1); + } + function Iu() { + Iu = F, Ron = new wwn(), Fon = new gwn(), Bon = new pwn(), xon = new mwn(), Kon = new vwn(), _on = new kwn(); + } + function dve(n, e) { + e.Ug(HXn, 1), HY(Qhe(new IE((u6(), new kN(n, !1, !1, new qU()))))), e.Vg(); + } + function bve(n, e, t) { + t.Ug("DFS Treeifying phase", 1), O8e(n, e), PTe(n, e), n.a = null, n.b = null, t.Vg(); + } + function mk(n, e) { + return _n(), Pi(n) ? RJ(n, Oe(e)) : xb(n) ? tN(n, R(e)) : $b(n) ? rwe(n, un(e)) : n.Fd(e); + } + function s5(n, e) { + var t, i; + for (Jn(e), i = e.vc().Kc(); i.Ob(); ) + t = u(i.Pb(), 44), n.zc(t.ld(), t.md()); + } + function wve(n, e, t) { + var i; + for (i = t.Kc(); i.Ob(); ) + if (!_M(n, e, i.Pb())) + return !1; + return !0; + } + function gve(n, e, t, i, r) { + var c; + return t && (c = Ot(e.Dh(), n.c), r = t.Rh(e, -1 - (c == -1 ? i : c), null, r)), r; + } + function pve(n, e, t, i, r) { + var c; + return t && (c = Ot(e.Dh(), n.c), r = t.Th(e, -1 - (c == -1 ? i : c), null, r)), r; + } + function Ixn(n) { + var e; + if (n.b == -2) { + if (n.e == 0) + e = -1; + else + for (e = 0; n.a[e] == 0; e++) + ; + n.b = e; + } + return n.b; + } + function mve(n) { + if (Jn(n), n.length == 0) + throw M(new eh("Zero length BigInteger")); + CSe(this, n); + } + function KQ(n) { + this.i = n.gc(), this.i > 0 && (this.g = this.aj(this.i + (this.i / 8 | 0) + 1), n.Qc(this.g)); + } + function Oxn(n, e, t) { + this.g = n, this.d = e, this.e = t, this.a = new Z(), IEe(this), Dn(), Zt(this.a, null); + } + function _Q(n, e) { + e.q = n, n.d = y.Math.max(n.d, e.r), n.b += e.d + (n.a.c.length == 0 ? 0 : n.c), nn(n.a, e); + } + function V4(n, e) { + var t, i, r, c; + return r = n.c, t = n.c + n.b, c = n.d, i = n.d + n.a, e.a > r && e.a < t && e.b > c && e.b < i; + } + function ew(n, e) { + var t, i; + for (i = ge(n, 0); i.b != i.d.c; ) + t = u(be(i), 8), t.a += e.a, t.b += e.b; + return n; + } + function vve(n) { + var e, t, i; + for (i = 0, t = new C(n.b); t.a < t.c.c.length; ) + e = u(E(t), 30), e.p = i, ++i; + } + function kve(n) { + var e, t, i; + return n.j == (en(), Xn) && (e = mHn(n), t = Tu(e, Zn), i = Tu(e, Wn), i || i && t); + } + function yve(n, e) { + var t; + return t = tnn(n), Lnn(new V(t.c, t.d), new V(t.b, t.a), n.Mf(), e, n.ag()); + } + function HQ(n, e) { + var t; + t = u(e, 190), ed(t, "x", n.i), ed(t, "y", n.j), ed(t, dK, n.g), ed(t, aK, n.f); + } + function TT(n, e) { + var t; + D(e, 85) ? (u(n.c, 79).Gk(), t = u(e, 85), hxn(n, t)) : u(n.c, 79).Wb(e); + } + function f5(n, e) { + var t, i; + for (Jn(e), i = n.vc().Kc(); i.Ob(); ) + t = u(i.Pb(), 44), e.Yd(t.ld(), t.md()); + } + function jve(n, e) { + var t; + for (Se(e); n.Ob(); ) + if (t = n.Pb(), !UQ(u(t, 10))) + return !1; + return !0; + } + function Eve() { + var n; + return c_ || (c_ = new Ryn(), n = new VN(""), Ble(n, (l4(), $un)), Qme(c_, n)), c_; + } + function Dxn(n, e) { + return Jb(new w9n(n), new g9n(e), new p9n(e), new G0n(), A(T($r, 1), G, 108, 0, [])); + } + function AT() { + AT = F, Cq = new iL(vh, 0), o1n = new iL("POLAR_COORDINATE", 1), u1n = new iL("ID", 2); + } + function ST() { + ST = F, Uhn = new VD("EQUALLY", 0), zH = new VD(eS, 1), Ghn = new VD("NORTH_SOUTH", 2); + } + function W4() { + W4 = F, O8 = new Dt("debugSVG", (_n(), !1)), uon = new Dt("overlapsExisted", !0); + } + function Lxn() { + Lxn = F, kue = Ce((a1(), A(T(vue, 1), G, 285, 0, [uan, ji, Zr, $2, Qi, Pt, L3, Xf]))); + } + function Nxn() { + Nxn = F, Poe = Ce((Em(), A(T(kO, 1), G, 245, 0, [kU, mO, vO, pO, vU, gO, wO, mU]))); + } + function $xn() { + $xn = F, hne = Ce((DA(), A(T(Msn, 1), G, 276, 0, [__, U_, K_, X_, q_, H_, z_, G_]))); + } + function xxn() { + return K5(), A(T(TNe, 1), G, 262, 0, [ZH, sln, aln, dln, lln, oln, bln, cln, hln, fln, uln]); + } + function sd(n, e, t) { + var i, r; + return r = u($6(n.d, e), 17), i = u($6(n.b, t), 17), !r || !i ? null : Rp(n, r.a, i.a); + } + function Fxn(n, e) { + var t; + return t = TF(G4(), n), t ? (ht(e, (He(), q2), t), !0) : !1; + } + function Bxn(n) { + return Rb(), n.A.Hc((go(), Yw)) && !n.B.Hc((to(), uE)) ? NBn(n) : null; + } + function Rxn() { + this.a = u(rn((Us(), kP)), 17).a, this.c = $(R(rn(yP))), this.b = $(R(rn(k_))); + } + function fd(n) { + this.f = n, this.e = new AJ(this.f.i), this.a = this.e, this.b = GQ(this), this.d = this.f.g; + } + function _t(n, e) { + QC.call(this, Qoe, n, e), this.b = this, this.a = ru(n.Dh(), $n(this.e.Dh(), this.c)); + } + function Cve(n, e) { + var t, i; + for (i = new C(e.b); i.a < i.c.c.length; ) + t = u(E(i), 30), n.a[t.p] = ije(t); + } + function Mo(n, e) { + var t; + for (t = 0; t < e.j.c.length; t++) + u(lk(n, t), 21).Gc(u(lk(e, t), 16)); + return n; + } + function L$(n, e, t, i) { + var r; + r = n.a.length, t > r ? t = r : zn(e, t + 1), n.a = qo(n.a, 0, e) + ("" + i) + $W(n.a, t); + } + function Kxn(n, e) { + n.a = Zi(n.a, 1), n.c = y.Math.min(n.c, e), n.b = y.Math.max(n.b, e), n.d = Zi(n.d, e); + } + function Mve(n, e) { + return e < n.b.gc() ? u(n.b.Xb(e), 10) : e == n.b.gc() ? n.a : u(sn(n.e, e - n.b.gc() - 1), 10); + } + function Tve(n, e, t) { + return bt(vp(gm(n), new V(e.e.a, e.e.b)), vp(gm(n), new V(t.e.a, t.e.b))); + } + function Ave(n, e, t) { + return n == (D0(), PI) ? new Wpn() : eo(e, 1) != 0 ? new Ez(t.length) : new Wjn(t.length); + } + function it(n, e) { + var t, i, r; + if (t = n.th(), t != null && n.wh()) + for (i = 0, r = t.length; i < r; ++i) + t[i].dj(e); + } + function Sve(n, e) { + var t, i, r; + for (t = n.c.Xe(), r = e.Kc(); r.Ob(); ) + i = r.Pb(), n.a.Yd(t, i); + return n.b.Kb(t); + } + function J4(n, e) { + var t, i; + for (t = n, i = Hi(t).e; i; ) { + if (t = i, t == e) + return !0; + i = Hi(t).e; + } + return !1; + } + function Y1(n) { + var e; + return e = n.h, e == 0 ? n.l + n.m * o3 : e == Il ? n.l + n.m * o3 - kd : n; + } + function Pve(n, e, t) { + var i, r; + return i = n.a.f[e.p], r = n.a.f[t.p], i < r ? -1 : i == r ? 0 : 1; + } + function Ive(n, e) { + var t, i; + for (i = new C(e); i.a < i.c.c.length; ) + t = u(E(i), 72), nn(n.d, t), Yye(n, t); + } + function Ove(n, e) { + var t; + e.Ug("Edge and layer constraint edge reversal", 1), t = KAe(n), pDe(t), e.Vg(); + } + function Dve(n, e) { + var t, i; + for (i = new ne(n); i.e != i.i.gc(); ) + t = u(ue(i), 27), Ro(t, t.i + e.b, t.j + e.d); + } + function _xn(n) { + var e; + n.d == null ? (++n.e, n.f = 0, ZFn(null)) : (++n.e, e = n.d, n.d = null, n.f = 0, ZFn(e)); + } + function Lve(n) { + var e; + if (n.a == n.b.a) + throw M(new nc()); + return e = n.a, n.c = e, n.a = u(as(n.a.e), 227), e; + } + function Un(n, e) { + var t; + return n.Db & e ? (t = Rx(n, e), t == -1 ? n.Eb : ud(n.Eb)[t]) : null; + } + function hc(n, e) { + var t, i; + return t = (i = new uG(), i), t.G = e, !n.rb && (n.rb = new qb(n, Cf, n)), ve(n.rb, t), t; + } + function We(n, e) { + var t, i; + return t = (i = new xE(), i), t.G = e, !n.rb && (n.rb = new qb(n, Cf, n)), ve(n.rb, t), t; + } + function Hxn(n, e, t, i) { + D(n.Cb, 184) && (u(n.Cb, 184).tb = null), Xc(n, t), e && JEe(n, e), i && n.gl(!0); + } + function qxn(n, e) { + n.c && (cUn(n, e, !0), Ut(new Tn(null, new In(e, 16)), new x7n(n))), cUn(n, e, !1); + } + function Nve(n) { + wTn(); + var e; + return vCn(YH, n) || (e = new M3n(), e.a = n, pV(YH, n, e)), u(Mr(YH, n), 645); + } + function PT(n) { + var e; + if (n.g > 1 || n.Ob()) + return ++n.a, n.g = 0, e = n.i, n.Ob(), e; + throw M(new nc()); + } + function Uxn(n) { + switch (n.a.g) { + case 1: + return new WCn(); + case 3: + return new WRn(); + default: + return new s8n(); + } + } + function qQ(n, e) { + switch (e) { + case 1: + return !!n.n && n.n.i != 0; + case 2: + return n.k != null; + } + return wJ(n, e); + } + function vc(n) { + return Ay < n && n < kd ? n < 0 ? y.Math.ceil(n) : y.Math.floor(n) : Y1(sTe(n)); + } + function vk(n) { + var e; + return n < 128 ? (tPn(), e = gun[n], !e && (e = gun[n] = new jG(n)), e) : new jG(n); + } + function $ve(n, e) { + var t; + try { + e.de(); + } catch (i) { + if (i = It(i), D(i, 82)) + t = i, Kn(n.c, t); + else + throw M(i); + } + } + function ds(n) { + var e, t, i, r; + return r = n, i = 0, r < 0 && (r += kd, i = Il), t = gi(r / o3), e = gi(r - t * o3), Yc(e, t, i); + } + function kk(n) { + var e, t, i; + for (i = 0, t = new dp(n.a); t.a < t.c.a.length; ) + e = n5(t), n.b.Hc(e) && ++i; + return i; + } + function xve(n) { + var e, t, i; + for (e = 1, i = n.Kc(); i.Ob(); ) + t = i.Pb(), e = 31 * e + (t == null ? 0 : mt(t)), e = ~~e; + return e; + } + function Ur(n, e) { + var t; + return e && (t = e.nf(), t.dc() || (n.q ? s5(n.q, t) : n.q = new RMn(t))), n; + } + function Gxn(n, e) { + var t; + return t = n.a.get(e), t === void 0 ? ++n.d : (Pae(n.a, e), --n.c, ++n.b.g), t; + } + function Fve(n, e) { + var t, i, r; + return t = e.p - n.p, t == 0 ? (i = n.f.a * n.f.b, r = e.f.a * e.f.b, bt(i, r)) : t; + } + function Bve(n, e) { + var t, i; + return t = n.j, i = e.j, t != i ? t.g - i.g : n.p == e.p ? 0 : t == (en(), Xn) ? n.p - e.p : e.p - n.p; + } + function h5(n, e, t, i, r) { + $t(n.c[e.g], t.g, i), $t(n.c[t.g], e.g, i), $t(n.b[e.g], t.g, r), $t(n.b[t.g], e.g, r); + } + function hd(n, e, t) { + this.b = (Jn(n), n), this.d = (Jn(e), e), this.e = (Jn(t), t), this.c = this.d + ("" + this.e); + } + function Q4(n, e) { + this.b = n, this.e = e, this.d = e.j, this.f = (dr(), u(n, 69).xk()), this.k = ru(e.e.Dh(), n); + } + function yk(n) { + this.n = new Z(), this.e = new Ct(), this.j = new Ct(), this.k = new Z(), this.f = new Z(), this.p = n; + } + function zxn(n) { + n.r = new ei(), n.w = new ei(), n.t = new Z(), n.i = new Z(), n.d = new ei(), n.a = new mp(), n.c = new de(); + } + function $0() { + $0 = F, rj = new sC("UP", 0), ij = new sC(_B, 1), a_ = new sC(s3, 2), d_ = new sC(f3, 3); + } + function Y4() { + Y4 = F, uH = new UD("ONE_SIDED", 0), oH = new UD("TWO_SIDED", 1), mj = new UD("OFF", 2); + } + function N$() { + N$ = F, D1n = new hX("EQUAL_BETWEEN_STRUCTURES", 0), L1n = new hX("TO_ASPECT_RATIO", 1); + } + function Xxn() { + Xxn = F, Yte = Ce((d1(), A(T(Ohn, 1), G, 265, 0, [xH, Shn, Phn, $H, Ahn, Ihn, CI, Sv, Pv]))); + } + function Vxn() { + Vxn = F, hoe = Ce((to(), A(T(gdn, 1), G, 264, 0, [Kv, uE, sO, P9, fO, lO, hO, bU, cE]))); + } + function Wxn() { + Wxn = F, noe = Ce((aw(), A(T(jr, 1), G, 95, 0, [Qs, xl, Ys, nf, nl, Ms, Lo, Zs, Cs]))); + } + function Jxn() { + Jxn = F, UQn = Ce((NA(), A(T(ton, 1), G, 257, 0, [eon, Qun, Yun, Jun, f_, non, Zun, Wun, Vun]))); + } + function UQ(n) { + var e; + return e = u(v(n, (W(), gc)), 64), n.k == (Vn(), ni) && (e == (en(), Wn) || e == Zn); + } + function Rve(n, e, t) { + var i, r; + r = u(v(n, (cn(), xr)), 75), r && (i = new Cu(), J$(i, 0, r), ew(i, t), Ri(e, i)); + } + function IT(n, e, t) { + var i, r, c, s; + s = Hi(n), i = s.d, r = s.c, c = n.n, e && (c.a = c.a - i.b - r.a), t && (c.b = c.b - i.d - r.b); + } + function Kve(n, e) { + var t, i; + return t = n.f.c.length, i = e.f.c.length, t < i ? -1 : t == i ? 0 : 1; + } + function _ve(n) { + return n.b.c.length != 0 && u(sn(n.b, 0), 72).a ? u(sn(n.b, 0), 72).a : vN(n); + } + function Hve(n) { + var e; + if (n) { + if (e = n, e.dc()) + throw M(new nc()); + return e.Xb(e.gc() - 1); + } + return NOn(n.Kc()); + } + function Qxn(n) { + var e; + return Cc(n, 0) < 0 && (n = WV(n)), e = Ae(U1(n, 32)), 64 - (e != 0 ? iy(e) : iy(Ae(n)) + 32); + } + function qve() { + return UM(), qf ? new VN(null) : wHn(Eve(), "com.google.common.base.Strings"); + } + function $$(n, e, t, i) { + return t == 1 ? (!n.n && (n.n = new q(Sr, n, 1, 7)), rr(n.n, e, i)) : hnn(n, e, t, i); + } + function jk(n, e) { + var t, i; + return i = (t = new UO(), t), Xc(i, e), ve((!n.A && (n.A = new Mu(fu, n, 7)), n.A), i), i; + } + function Uve(n, e, t) { + var i, r, c, s; + return c = null, s = e, r = S0(s, gK), i = new wMn(n, t), c = (yke(i.a, i.b, r), r), c; + } + function x$(n) { + var e; + return (!n.a || !(n.Bb & 1) && n.a.Vh()) && (e = gs(n), D(e, 156) && (n.a = u(e, 156))), n.a; + } + function Ek(n, e) { + var t, i; + for (Jn(e), i = e.Kc(); i.Ob(); ) + if (t = i.Pb(), !n.Hc(t)) + return !1; + return !0; + } + function Gve(n, e) { + var t, i, r; + return t = n.l + e.l, i = n.m + e.m + (t >> 22), r = n.h + e.h + (i >> 22), Yc(t & io, i & io, r & Il); + } + function Yxn(n, e) { + var t, i, r; + return t = n.l - e.l, i = n.m - e.m + (t >> 22), r = n.h - e.h + (i >> 22), Yc(t & io, i & io, r & Il); + } + function zve(n) { + var e, t; + for (RDe(n), t = new C(n.d); t.a < t.c.c.length; ) + e = u(E(t), 105), e.i && Nje(e); + } + function It(n) { + var e; + return D(n, 82) ? n : (e = n && n.__java$exception, e || (e = new GFn(n), Lyn(e)), e); + } + function Ck(n) { + if (D(n, 193)) + return u(n, 123); + if (n) + return null; + throw M(new fp(CWn)); + } + function GQ(n) { + return n.a.Ob() ? !0 : n.a != n.e ? !1 : (n.a = new WJ(n.f.f), n.a.Ob()); + } + function Zxn(n, e) { + if (e == null) + return !1; + for (; n.a != n.b; ) + if (rt(e, xT(n))) + return !0; + return !1; + } + function nFn(n, e) { + return !n || !e || n == e ? !1 : KBn(n.d.c, e.d.c + e.d.b) && KBn(e.d.c, n.d.c + n.d.b); + } + function li(n, e) { + var t, i; + return t = e.Pc(), i = t.length, i == 0 ? !1 : (zV(n.c, n.c.length, t), !0); + } + function Xve(n, e, t) { + var i, r; + for (r = e.vc().Kc(); r.Ob(); ) + i = u(r.Pb(), 44), n.yc(i.ld(), i.md(), t); + return n; + } + function F$(n) { + var e, t, i; + for (e = new Ct(), i = ge(n.d, 0); i.b != i.d.c; ) + t = u(be(i), 65), Fe(e, t.c); + return e; + } + function eFn(n, e) { + var t, i; + for (i = new C(n.b); i.a < i.c.c.length; ) + t = u(E(i), 72), U(t, (W(), A3), e); + } + function Vve(n, e, t) { + var i, r; + for (r = new C(n.b); r.a < r.c.c.length; ) + i = u(E(r), 27), Ro(i, i.i + e, i.j + t); + } + function tFn(n, e) { + if (!n) + throw M(new Gn(R5("value already present: %s", A(T(yi, 1), Bn, 1, 5, [e])))); + } + function Wve(n, e, t, i, r) { + return Vg(), y.Math.min(IGn(n, e, t, i, r), IGn(t, i, n, e, HC(new V(r.a, r.b)))); + } + function Jve(n, e, t, i) { + u(t.b, 68), u(t.b, 68), u(i.b, 68), u(i.b, 68), u(i.b, 68), nu(i.a, new FV(n, e, i)); + } + function Qve(n, e) { + n.d == (ui(), Fr) || n.d == us ? u(e.a, 60).c.Fc(u(e.b, 60)) : u(e.b, 60).c.Fc(u(e.a, 60)); + } + function iFn(n, e) { + var t; + return t = Oh(e.a.gc()), Ut(fT(new Tn(null, new In(e, 1)), n.i), new oMn(n, t)), t; + } + function rFn(n) { + var e, t; + return t = (e = new UO(), e), Xc(t, "T"), ve((!n.d && (n.d = new Mu(fu, n, 11)), n.d), t), t; + } + function zQ(n) { + var e, t, i, r; + for (e = 1, t = 0, r = n.gc(); t < r; ++t) + i = n.Vi(t), e = 31 * e + (i == null ? 0 : mt(i)); + return e; + } + function cFn(n, e, t, i) { + var r; + return Z7(e, n.e.Rd().gc()), Z7(t, n.c.Rd().gc()), r = n.a[e][t], $t(n.a[e], t, i), r; + } + function A(n, e, t, i, r) { + return r.Rm = n, r.Sm = e, r.Tm = Q2, r.__elementTypeId$ = t, r.__elementTypeCategory$ = i, r; + } + function OT() { + OT = F, F_ = new dC(vh, 0), HP = new dC(GXn, 1), qP = new dC(zXn, 2), wj = new dC("BOTH", 3); + } + function $f() { + $f = F, j3 = new bC(Hm, 0), hv = new bC(s3, 1), lv = new bC(f3, 2), B_ = new bC("TOP", 3); + } + function Z4() { + Z4 = F, cb = new lC("Q1", 0), Ow = new lC("Q4", 1), Iw = new lC("Q2", 2), d2 = new lC("Q3", 3); + } + function DT() { + DT = F, QH = new YD("OFF", 0), Iv = new YD("SINGLE_EDGE", 1), zw = new YD("MULTI_EDGE", 2); + } + function Mk() { + Mk = F, YI = new aX("MINIMUM_SPANNING_TREE", 0), ian = new aX("MAXIMUM_SPANNING_TREE", 1); + } + function qp() { + qp = F, bue = new mmn(), due = new pmn(); + } + function XQ(n) { + var e, t; + return t = (B1(), e = new jE(), e), n && ve((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a), t), t; + } + function B$(n) { + var e, t, i, r; + for (r = new Z(), i = n.Kc(); i.Ob(); ) + t = u(i.Pb(), 27), e = dw(t), li(r, e); + return r; + } + function Yve(n, e) { + var t, i; + for (TM(e, "predicate"), i = 0; n.Ob(); i++) + if (t = n.Pb(), e.Lb(t)) + return i; + return -1; + } + function Up(n, e) { + var t, i; + if (i = 0, n < 64 && n <= e) + for (e = e < 64 ? e : 63, t = n; t <= e; t++) + i = lf(i, Bs(1, t)); + return i; + } + function Zve(n, e) { + var t, i; + return t = n.c, i = e.e[n.p], i < t.a.c.length - 1 ? u(sn(t.a, i + 1), 10) : null; + } + function VQ(n) { + Dn(); + var e, t, i; + for (i = 0, t = n.Kc(); t.Ob(); ) + e = t.Pb(), i = i + (e != null ? mt(e) : 0), i = i | 0; + return i; + } + function n6e(n) { + var e, t, i; + return e = u(n.e && n.e(), 9), i = (t = e.slice(), u(o$(t, e), 9)), new _o(e, i, e.length); + } + function uFn(n, e, t) { + var i; + Ku(n.a), nu(t.i, new Pkn(n)), i = new LC(u(ee(n.a, e.b), 68)), JBn(n, i, e), t.f = i; + } + function e6e(n) { + var e; + G0(n, !0), e = b1, kt(n, (cn(), Mv)) && (e += u(v(n, Mv), 17).a), U(n, Mv, Y(e)); + } + function t6e(n) { + var e; + return e = new ul(), e.a = n, e.b = a6e(n), e.c = K(fn, J, 2, 2, 6, 1), e.c[0] = kxn(n), e.c[1] = kxn(n), e; + } + function oFn(n) { + var e, t, i; + return t = n.n, i = n.o, e = n.d, new Ho(t.a - e.b, t.b - e.d, i.a + (e.b + e.c), i.b + (e.d + e.a)); + } + function i6e(n, e) { + return !n || !e || n == e ? !1 : F0(n.b.c, e.b.c + e.b.b) < 0 && F0(e.b.c, n.b.c + n.b.b) < 0; + } + function sFn(n) { + switch (n.g) { + case 1: + return Aa; + case 2: + return Zh; + case 3: + return Zj; + default: + return nE; + } + } + function r6e(n) { + switch (u(v(n, (cn(), ou)), 171).g) { + case 2: + case 4: + return !0; + default: + return !1; + } + } + function Tk(n, e, t) { + switch (t.g) { + case 2: + n.b = e; + break; + case 1: + n.c = e; + break; + case 4: + n.d = e; + break; + case 3: + n.a = e; + } + } + function WQ(n, e) { + switch (e) { + case 0: + !n.o && (n.o = new Pu((Mc(), tl), A1, n, 0)), n.o.c.$b(); + return; + } + cF(n, e); + } + function c6e(n, e) { + var t, i; + return t = u(u(ee(n.g, e.a), 42).a, 68), i = u(u(ee(n.g, e.b), 42).a, 68), xUn(t, i); + } + function JQ(n, e, t) { + var i; + if (i = n.gc(), e > i) + throw M(new _b(e, i)); + return n.Si() && (t = gOn(n, t)), n.Ei(e, t); + } + function nm(n, e, t, i, r) { + var c, s; + for (s = t; s <= r; s++) + for (c = e; c <= i; c++) + Kg(n, c, s) || xA(n, c, s, !0, !1); + } + function u6e(n) { + Vg(); + var e, t, i; + for (t = K(Ci, J, 8, 2, 0, 1), i = 0, e = 0; e < 2; e++) + i += 0.5, t[e] = Z9e(i, n); + return t; + } + function em(n) { + var e, t, i; + return e = ~n.l + 1 & io, t = ~n.m + (e == 0 ? 1 : 0) & io, i = ~n.h + (e == 0 && t == 0 ? 1 : 0) & Il, Yc(e, t, i); + } + function QQ(n) { + var e; + if (n < 0) + return Wi; + if (n == 0) + return 0; + for (e = W5; !(e & n); e >>= 1) + ; + return e; + } + function R$(n, e, t) { + return n >= 128 ? !1 : n < 64 ? C6(ki(Bs(1, n), t), 0) : C6(ki(Bs(1, n - 64), e), 0); + } + function Ak(n, e, t) { + return t == null ? (!n.q && (n.q = new de()), Bp(n.q, e)) : (!n.q && (n.q = new de()), Xe(n.q, e, t)), n; + } + function U(n, e, t) { + return t == null ? (!n.q && (n.q = new de()), Bp(n.q, e)) : (!n.q && (n.q = new de()), Xe(n.q, e, t)), n; + } + function fFn(n) { + var e, t; + return t = new zM(), Ur(t, n), U(t, (Q1(), y3), n), e = new de(), $Pe(n, t, e), fDe(n, t, e), t; + } + function hFn(n) { + var e, t; + return e = n.t - n.k[n.o.p] * n.d + n.j[n.o.p] > n.f, t = n.u + n.e[n.o.p] * n.d > n.f * n.s * n.d, e || t; + } + function lFn(n, e) { + var t, i, r, c; + for (t = !1, i = n.a[e].length, c = 0; c < i - 1; c++) + r = c + 1, t = t | L8e(n, e, c, r); + return t; + } + function o6e(n) { + var e, t, i, r; + for (t = n.a, i = 0, r = t.length; i < r; ++i) + e = t[i], mFn(n, e, (en(), ae)), mFn(n, e, Xn); + } + function aFn() { + aFn = F, Ene = Ce((mr(), A(T(cH, 1), G, 259, 0, [ZP, cs, F8, nI, kv, v2, B8, mv, vv, eI]))); + } + function dFn() { + dFn = F, tie = Ce((ps(), A(T(Khn, 1), G, 243, 0, [AI, Sj, Pj, Fhn, Bhn, xhn, Rhn, SI, mb, Gw]))); + } + function ld() { + ld = F, Y_ = new qD(vh, 0), pv = new qD("INCOMING_ONLY", 1), m2 = new qD("OUTGOING_ONLY", 2); + } + function K$() { + K$ = F, WK = { boolean: qhe, number: ihe, string: rhe, object: D_n, function: D_n, undefined: Ffe }; + } + function YQ() { + this.o = null, this.k = null, this.j = null, this.d = null, this.b = null, this.n = null, this.a = null; + } + function ZQ(n, e) { + this.c = n, this.d = e, this.b = this.d / this.c.c.Rd().gc() | 0, this.a = this.d % this.c.c.Rd().gc(); + } + function bFn(n, e) { + this.b = n, pg.call(this, (u(L(H((G1(), Hn).o), 10), 19), e.i), e.g), this.a = (D$(), CU); + } + function nY(n, e, t) { + this.q = new y.Date(), this.q.setFullYear(n + ha, e, t), this.q.setHours(0, 0, 0, 0), H5(this, 0); + } + function wFn(n, e) { + x7(n >= 0, "Negative initial capacity"), x7(e >= 0, "Non-positive load factor"), Ku(this); + } + function s6e(n, e, t, i, r) { + var c, s; + if (s = n.length, c = t.length, e < 0 || i < 0 || r < 0 || e + r > s || i + r > c) + throw M(new qG()); + } + function eY(n, e) { + Dn(); + var t, i, r, c, s; + for (s = !1, i = e, r = 0, c = i.length; r < c; ++r) + t = i[r], s = s | n.Fc(t); + return s; + } + function gFn(n, e, t) { + var i, r; + return i = new r$(e, t), r = new DO(), n.b = yqn(n, n.b, i, r), r.b || ++n.c, n.b.b = !1, r.d; + } + function l5(n) { + var e; + return e = n.a[n.b], e == null ? null : ($t(n.a, n.b, null), n.b = n.b + 1 & n.a.length - 1, e); + } + function pFn(n) { + var e, t; + return t = iy(n.h), t == 32 ? (e = iy(n.m), e == 32 ? iy(n.l) + 32 : e + 20 - 10) : t - 12; + } + function tY(n) { + var e; + return (!n.c || !(n.Bb & 1) && n.c.Db & 64) && (e = gs(n), D(e, 90) && (n.c = u(e, 29))), n.c; + } + function Z1(n) { + var e, t; + for (t = new C(n.a.b); t.a < t.c.c.length; ) + e = u(E(t), 60), e.d.c = -e.d.c - e.d.b; + uen(n); + } + function na(n) { + var e, t; + for (t = new C(n.a.b); t.a < t.c.c.length; ) + e = u(E(t), 86), e.g.c = -e.g.c - e.g.b; + PA(n); + } + function mFn(n, e, t) { + var i, r, c, s; + for (s = g5(e, t), c = 0, r = s.Kc(); r.Ob(); ) + i = u(r.Pb(), 12), Xe(n.c, i, Y(c++)); + } + function vFn(n, e, t) { + var i; + return i = new Z(), hen(n, e, i, (en(), Zn), !0, !1), hen(n, t, i, Wn, !1, !1), i; + } + function cc(n) { + var e, t, i, r, c; + for (e = new Ni(), i = n, r = 0, c = i.length; r < c; ++r) + t = i[r], e.a += t.a, e.b += t.b; + return e; + } + function _$(n, e, t) { + var i, r, c, s; + return c = null, s = e, r = S0(s, "labels"), i = new MMn(n, t), c = (GCe(i.a, i.b, r), r), c; + } + function f6e(n, e, t, i) { + var r; + return r = Qnn(n, e, t, i), !r && (r = p5e(n, t, i), r && !Qg(n, e, r)) ? null : r; + } + function h6e(n, e, t, i) { + var r; + return r = Ynn(n, e, t, i), !r && (r = rx(n, t, i), r && !Qg(n, e, r)) ? null : r; + } + function l6e(n, e, t) { + if (Se(e), t.Ob()) + for (mX(e, uIn(t.Pb())); t.Ob(); ) + mX(e, n.a), mX(e, uIn(t.Pb())); + return e; + } + function kFn(n, e) { + var t; + for (t = 0; t < n.a.a.length; t++) + if (!u(YSn(n.a, t), 178).Lb(e)) + return !1; + return !0; + } + function a6e(n) { + var e; + return n == 0 ? "Etc/GMT" : (n < 0 ? (n = -n, e = "Etc/GMT-") : e = "Etc/GMT+", e + YNn(n)); + } + function iY(n) { + var e; + return n.b <= 0 ? !1 : (e = th("MLydhHmsSDkK", bu(Xi(n.c, 0))), e > 1 || e >= 0 && n.b < 3); + } + function H$(n) { + var e, t, i; + e = ~n.l + 1 & io, t = ~n.m + (e == 0 ? 1 : 0) & io, i = ~n.h + (e == 0 && t == 0 ? 1 : 0) & Il, n.l = e, n.m = t, n.h = i; + } + function rY(n) { + Dn(); + var e, t, i; + for (i = 1, t = n.Kc(); t.Ob(); ) + e = t.Pb(), i = 31 * i + (e != null ? mt(e) : 0), i = i | 0; + return i; + } + function d6e(n, e, t, i, r) { + var c; + return c = Xnn(n, e), t && H$(c), r && (n = u7e(n, e), i ? wa = em(n) : wa = Yc(n.l, n.m, n.h)), c; + } + function yFn(n, e, t) { + n.g = uF(n, e, (en(), Zn), n.b), n.d = uF(n, t, Zn, n.b), !(n.g.c == 0 || n.d.c == 0) && YKn(n); + } + function jFn(n, e, t) { + n.g = uF(n, e, (en(), Wn), n.j), n.d = uF(n, t, Wn, n.j), !(n.g.c == 0 || n.d.c == 0) && YKn(n); + } + function cY(n, e) { + switch (e) { + case 7: + return !!n.e && n.e.i != 0; + case 8: + return !!n.d && n.d.i != 0; + } + return qY(n, e); + } + function b6e(n, e) { + switch (e.g) { + case 0: + D(n.b, 641) || (n.b = new Rxn()); + break; + case 1: + D(n.b, 642) || (n.b = new BSn()); + } + } + function EFn(n) { + switch (n.g) { + case 0: + return new gmn(); + default: + throw M(new Gn(xS + (n.f != null ? n.f : "" + n.g))); + } + } + function CFn(n) { + switch (n.g) { + case 0: + return new wmn(); + default: + throw M(new Gn(xS + (n.f != null ? n.f : "" + n.g))); + } + } + function w6e(n, e, t) { + return !o4(ut(new Tn(null, new In(n.c, 16)), new Y3(new hMn(e, t)))).Bd((Wa(), v3)); + } + function MFn(n, e) { + return vp(gm(u(v(e, (lc(), kb)), 88)), new V(n.c.e.a - n.b.e.a, n.c.e.b - n.b.e.b)) <= 0; + } + function g6e(n, e) { + for (; n.g == null && !n.c ? cJ(n) : n.g == null || n.i != 0 && u(n.g[n.i - 1], 51).Ob(); ) + kle(e, CA(n)); + } + function ad(n) { + var e, t; + for (t = new C(n.a.b); t.a < t.c.c.length; ) + e = u(E(t), 86), e.f.$b(); + Yfe(n.b, n), uqn(n); + } + function Sk(n) { + var e, t, i; + for (e = new Cu(), i = ge(n, 0); i.b != i.d.c; ) + t = u(be(i), 8), w4(e, 0, new ir(t)); + return e; + } + function tm(n) { + var e; + return X1(n), e = new LO(), n.a.Bd(e) ? (d4(), new wD(Jn(e.a))) : (d4(), d4(), Dun); + } + function uY(n, e, t) { + switch (e) { + case 0: + !n.o && (n.o = new Pu((Mc(), tl), A1, n, 0)), TT(n.o, t); + return; + } + sF(n, e, t); + } + function q$(n, e, t) { + this.g = n, this.e = new Ni(), this.f = new Ni(), this.d = new Ct(), this.b = new Ct(), this.a = e, this.c = t; + } + function U$(n, e, t, i) { + this.b = new Z(), this.n = new Z(), this.i = i, this.j = t, this.s = n, this.t = e, this.r = 0, this.d = 0; + } + function im(n, e) { + if (!n.Li() && e == null) + throw M(new Gn("The 'no null' constraint is violated")); + return e; + } + function i1(n) { + var e, t; + for (e = 0, t = 0; t < n.length; t++) + e = (e << 5) - e + (zn(t, n.length), n.charCodeAt(t)) | 0; + return e; + } + function TFn(n, e) { + var t, i, r; + for (r = n.b; r; ) { + if (t = n.a.Ne(e, r.d), t == 0) + return r; + i = t < 0 ? 0 : 1, r = r.a[i]; + } + return null; + } + function p6e(n, e, t) { + var i, r; + i = (_n(), !!yX(t)), r = u(e.xc(i), 15), r || (r = new Z(), e.zc(i, r)), r.Fc(t); + } + function m6e(n, e) { + var t, i; + return t = u(z(n, (Bf(), Rj)), 17).a, i = u(z(e, Rj), 17).a, t == i || t < i ? -1 : t > i ? 1 : 0; + } + function v6e(n) { + return nn(n.c, (qp(), bue)), hQ(n.a, $(R(rn((bx(), EI))))) ? new tvn() : new $kn(n); + } + function k6e(n) { + for (; !n.d || !n.d.Ob(); ) + if (n.b && !t6(n.b)) + n.d = u(Sp(n.b), 51); + else + return null; + return n.d; + } + function oY(n) { + switch (n.g) { + case 1: + return lVn; + default: + case 2: + return 0; + case 3: + return QB; + case 4: + return Trn; + } + } + function y6e() { + nt(); + var n; + return IU || (n = _1e(sa("M", !0)), n = uM(sa("M", !1), n), IU = n, IU); + } + function LT() { + LT = F, gU = new CC("ELK", 0), Tdn = new CC("JSON", 1), Mdn = new CC("DOT", 2), Adn = new CC("SVG", 3); + } + function a5() { + a5 = F, VH = new WD("STACKED", 0), XH = new WD("REVERSE_STACKED", 1), Ij = new WD("SEQUENCED", 2); + } + function d5() { + d5 = F, wln = new eL(vh, 0), nq = new eL("MIDDLE_TO_MIDDLE", 1), Lj = new eL("AVOID_OVERLAP", 2); + } + function rm() { + rm = F, Esn = new Ygn(), Csn = new Zgn(), JZn = new Jgn(), WZn = new n2n(), VZn = new Qgn(), jsn = (Jn(VZn), new O0n()); + } + function NT() { + NT = F, hdn = new h0(15), Jue = new $i((He(), M1), hdn), j9 = N3, udn = Pue, odn = qd, fdn = _2, sdn = Ww; + } + function Ng(n, e) { + var t, i, r, c, s; + for (i = e, r = 0, c = i.length; r < c; ++r) + t = i[r], s = new YPn(n), t.hf(s), VPe(s); + Ku(n.f); + } + function G$(n, e) { + var t; + return e === n ? !0 : D(e, 229) ? (t = u(e, 229), rt(n.Zb(), t.Zb())) : !1; + } + function sY(n, e) { + return tqn(n, e) ? (Pn(n.b, u(v(e, (W(), Nl)), 21), e), Fe(n.a, e), !0) : !1; + } + function j6e(n) { + var e, t; + e = u(v(n, (W(), Gu)), 10), e && (t = e.c, au(t.a, e), t.a.c.length == 0 && au(Hi(e).b, t)); + } + function E6e(n, e) { + return kt(n, (W(), dt)) && kt(e, dt) ? u(v(e, dt), 17).a - u(v(n, dt), 17).a : 0; + } + function C6e(n, e) { + return kt(n, (W(), dt)) && kt(e, dt) ? u(v(n, dt), 17).a - u(v(e, dt), 17).a : 0; + } + function AFn(n) { + return qf ? K(OQn, Jzn, 581, 0, 0, 1) : u(xf(n.a, K(OQn, Jzn, 581, n.a.c.length, 0, 1)), 856); + } + function M6e(n, e, t, i) { + return yM(), new lz(A(T(Id, 1), WA, 44, 0, [(Nx(n, e), new r0(n, e)), (Nx(t, i), new r0(t, i))])); + } + function $g(n, e, t) { + var i, r; + return r = (i = new hD(), i), Tr(r, e, t), ve((!n.q && (n.q = new q(Ss, n, 11, 10)), n.q), r), r; + } + function z$(n) { + var e, t, i, r; + for (r = ule(Toe, n), t = r.length, i = K(fn, J, 2, t, 6, 1), e = 0; e < t; ++e) + i[e] = r[e]; + return i; + } + function fY(n, e) { + var t; + e * 2 + 1 >= n.b.c.length || (fY(n, 2 * e + 1), t = 2 * e + 2, t < n.b.c.length && fY(n, t), $_n(n, e)); + } + function T6e(n, e) { + var t, i; + for (i = ge(n, 0); i.b != i.d.c; ) + t = u(be(i), 219), t.e.length > 0 && (e.Cd(t), t.i && E5e(t)); + } + function hY(n, e, t) { + var i; + for (i = t - 1; i >= 0 && n[i] === e[i]; i--) + ; + return i < 0 ? 0 : ND(ki(n[i], vr), ki(e[i], vr)) ? -1 : 1; + } + function SFn(n, e, t) { + var i, r; + this.g = n, this.c = e, this.a = this, this.d = this, r = sxn(t), i = K(sQn, Cy, 227, r, 0, 1), this.b = i; + } + function X$(n, e, t, i, r) { + var c, s; + for (s = t; s <= r; s++) + for (c = e; c <= i; c++) + if (Kg(n, c, s)) + return !0; + return !1; + } + function A6e(n, e) { + var t, i; + for (i = n.Zb().Cc().Kc(); i.Ob(); ) + if (t = u(i.Pb(), 16), t.Hc(e)) + return !0; + return !1; + } + function PFn(n, e, t) { + var i, r, c, s; + for (Jn(t), s = !1, c = n.fd(e), r = t.Kc(); r.Ob(); ) + i = r.Pb(), c.Rb(i), s = !0; + return s; + } + function V$(n, e) { + var t, i; + return i = u(Un(n.a, 4), 129), t = K(jU, MK, 424, e, 0, 1), i != null && Oc(i, 0, t, 0, i.length), t; + } + function IFn(n, e) { + var t; + return t = new jF((n.f & 256) != 0, n.i, n.a, n.d, (n.f & 16) != 0, n.j, n.g, e), n.e != null || (t.c = n), t; + } + function S6e(n, e) { + var t; + return n === e ? !0 : D(e, 85) ? (t = u(e, 85), dnn(Qa(n), t.vc())) : !1; + } + function OFn(n, e, t) { + var i, r; + for (r = t.Kc(); r.Ob(); ) + if (i = u(r.Pb(), 44), n.Be(e, i.md())) + return !0; + return !1; + } + function DFn(n, e, t) { + return n.d[e.p][t.p] || (O9e(n, e, t), n.d[e.p][t.p] = !0, n.d[t.p][e.p] = !0), n.a[e.p][t.p]; + } + function P6e(n, e) { + var t; + return !n || n == e || !kt(e, (W(), fb)) ? !1 : (t = u(v(e, (W(), fb)), 10), t != n); + } + function W$(n) { + switch (n.i) { + case 2: + return !0; + case 1: + return !1; + case -1: + ++n.c; + default: + return n.$l(); + } + } + function LFn(n) { + switch (n.i) { + case -2: + return !0; + case -1: + return !1; + case 1: + --n.c; + default: + return n._l(); + } + } + function NFn(n) { + yOn.call(this, "The given string does not match the expected format for individual spacings.", n); + } + function I6e(n, e) { + var t; + e.Ug("Min Size Preprocessing", 1), t = jnn(n), ht(n, (Kh(), f9), t.a), ht(n, UI, t.b), e.Vg(); + } + function O6e(n) { + var e, t, i; + for (e = 0, i = K(Ci, J, 8, n.b, 0, 1), t = ge(n, 0); t.b != t.d.c; ) + i[e++] = u(be(t), 8); + return i; + } + function J$(n, e, t) { + var i, r, c; + for (i = new Ct(), c = ge(t, 0); c.b != c.d.c; ) + r = u(be(c), 8), Fe(i, new ir(r)); + PFn(n, e, i); + } + function D6e(n, e) { + var t; + return t = Zi(n, e), ND(RN(n, e), 0) | AC(RN(n, t), 0) ? t : Zi(Ey, RN(U1(t, 63), 1)); + } + function L6e(n, e) { + var t, i; + return t = u(n.d.Bc(e), 16), t ? (i = n.e.hc(), i.Gc(t), n.e.d -= t.gc(), t.$b(), i) : null; + } + function $Fn(n) { + var e; + if (e = n.a.c.length, e > 0) + return j4(e - 1, n.a.c.length), Zl(n.a, e - 1); + throw M(new $yn()); + } + function xFn(n, e, t) { + if (n > e) + throw M(new Gn(ZA + n + Qzn + e)); + if (n < 0 || e > t) + throw M(new pz(ZA + n + Stn + e + Mtn + t)); + } + function cm(n, e) { + n.D == null && n.B != null && (n.D = n.B, n.B = null), j$(n, e == null ? null : (Jn(e), e)), n.C && n.hl(null); + } + function N6e(n, e) { + var t; + t = rn((bx(), EI)) != null && e.Sg() != null ? $(R(e.Sg())) / $(R(rn(EI))) : 1, Xe(n.b, e, t); + } + function lY(n, e) { + var t, i; + if (i = n.c[e], i != 0) + for (n.c[e] = 0, n.d -= i, t = e + 1; t < n.a.length; ) + n.a[t] -= i, t += t & -t; + } + function tw(n) { + var e; + ++n.j, n.i == 0 ? n.g = null : n.i < n.g.length && (e = n.g, n.g = n.aj(n.i), Oc(e, 0, n.g, 0, n.i)); + } + function $6e(n, e, t) { + if (e < 0) + throw M(new Pr(DVn + e)); + e < n.j.c.length ? Go(n.j, e, t) : (xDn(n, e), nn(n.j, t)); + } + function FFn(n) { + if (!n.a || !(n.a.i & 8)) + throw M(new Ir("Enumeration class expected for layout option " + n.f)); + } + function aY(n) { + var e; + return e = (!n.a && (n.a = new q(Bl, n, 9, 5)), n.a), e.i != 0 ? rle(u(L(e, 0), 694)) : null; + } + function x6e(n) { + var e; + for (Se(n), DV(!0, "numberToAdvance must be nonnegative"), e = 0; e < 0 && pe(n); e++) + fe(n); + return e; + } + function Q$() { + Q$ = F, fon = (YE(), b_), son = new Mn(_tn, fon), PYn = new lt(Htn), IYn = new lt(qtn), OYn = new lt(Utn); + } + function b5() { + b5 = F, aq = new mC(tin, 0), BI = new mC(bVn, 1), lq = new mC("FAN", 2), hq = new mC("CONSTRAINT", 3); + } + function Pk() { + Pk = F, KI = new tL(vh, 0), Hln = new tL("RADIAL_COMPACTION", 1), qln = new tL("WEDGE_COMPACTION", 2); + } + function um() { + um = F, WH = new JD("CONSERVATIVE", 0), Vhn = new JD("CONSERVATIVE_SOFT", 1), Y8 = new JD("SLOPPY", 2); + } + function qu() { + qu = F, xun = new $D("CONCURRENT", 0), Yr = new $D("IDENTITY_FINISH", 1), Sw = new $D("UNORDERED", 2); + } + function Y$() { + Y$ = F, T_ = aOn(A(T(y9, 1), G, 88, 0, [(ui(), Fr), Xr])), A_ = aOn(A(T(y9, 1), G, 88, 0, [us, Vf])); + } + function wo(n) { + return Pi(n) ? fn : xb(n) ? fi : $b(n) ? zt : pW(n) || hW(n) ? n.Rm : n.Rm || Array.isArray(n) && T(fQn, 1) || fQn; + } + function F6e(n) { + return n ? n.i & 1 ? n == oo ? zt : n == ye ? Gi : n == ug ? ov : n == Oi ? fi : n == Fa ? ib : n == V2 ? rb : n == xu ? p3 : A8 : n : null; + } + function xg(n) { + return (n.c != n.b.b || n.i != n.g.b) && (Ib(n.a.c, 0), li(n.a, n.b), li(n.a, n.g), n.c = n.b.b, n.i = n.g.b), n.a; + } + function B6e(n, e) { + var t, i; + for (t = n.a.length - 1; e != n.b; ) + i = e - 1 & t, $t(n.a, e, n.a[i]), e = i; + $t(n.a, n.b, null), n.b = n.b + 1 & t; + } + function R6e(n, e) { + var t, i; + for (t = n.a.length - 1, n.c = n.c - 1 & t; e != n.c; ) + i = e + 1 & t, $t(n.a, e, n.a[i]), e = i; + $t(n.a, n.c, null); + } + function dY(n, e, t) { + var i, r; + return Xb(e, n.c.length), i = t.Pc(), r = i.length, r == 0 ? !1 : (zV(n.c, e, i), !0); + } + function BFn(n, e, t) { + var i, r, c, s; + for (r = t, c = 0, s = r.length; c < s; ++c) + if (i = r[c], n.b.Be(e, i.ld())) + return i; + return null; + } + function Ik(n) { + var e, t, i, r, c; + for (c = 1, t = n, i = 0, r = t.length; i < r; ++i) + e = t[i], c = 31 * c + (e != null ? mt(e) : 0), c = c | 0; + return c; + } + function Ce(n) { + var e, t, i, r, c; + for (e = {}, i = n, r = 0, c = i.length; r < c; ++r) + t = i[r], e[":" + (t.f != null ? t.f : "" + t.g)] = t; + return e; + } + function K6e(n) { + var e, t; + if (n == null) + return null; + for (e = 0, t = n.length; e < t; e++) + if (!OSn(n[e])) + return n[e]; + return null; + } + function Z$(n, e) { + return !n || e && !n.j || D(n, 127) && u(n, 127).a.b == 0 ? 0 : n.jf(); + } + function $T(n, e) { + return !n || e && !n.k || D(n, 127) && u(n, 127).a.a == 0 ? 0 : n.kf(); + } + function RFn(n, e) { + return kt(n, (W(), dt)) && kt(e, dt) ? Ec(u(v(n, dt), 17).a, u(v(e, dt), 17).a) : 0; + } + function KFn(n) { + var e, t, i; + for (i = 0, t = new ie(ce(n.a.Kc(), new En())); pe(t); ) + e = u(fe(t), 18), e.c.i == e.d.i || ++i; + return i; + } + function _Fn(n, e) { + var t, i, r; + for (r = e - n.f, i = new C(n.d); i.a < i.c.c.length; ) + t = u(E(i), 315), xBn(t, t.e, t.f + r); + n.f = e; + } + function dd(n, e) { + var t, i, r; + i = n.Yk(e, null), r = null, e && (r = (u4(), t = new Qd(), t), R4(r, n.r)), i = Ff(n, r, i), i && i.oj(); + } + function HFn(n, e) { + var t, i, r; + t = n, r = 0; + do { + if (t == e) + return r; + if (i = t.e, !i) + throw M(new W9()); + t = Hi(i), ++r; + } while (!0); + } + function _6e(n) { + var e, t, i, r; + for (i = n.b.a, t = i.a.ec().Kc(); t.Ob(); ) + e = u(t.Pb(), 567), r = new zHn(e, n.e, n.f), nn(n.g, r); + } + function H6e(n) { + var e; + return e = new v$n(n), Q7(n.a, OZn, new Bu(A(T(aj, 1), Bn, 382, 0, [e]))), e.d && nn(e.f, e.d), e.f; + } + function qFn(n, e) { + var t; + for (t = 0; t < e.length; t++) + if (n == (zn(t, e.length), e.charCodeAt(t))) + return !0; + return !1; + } + function q6e(n, e) { + return e < n.length && (zn(e, n.length), n.charCodeAt(e) != 63) && (zn(e, n.length), n.charCodeAt(e) != 35); + } + function UFn(n, e, t, i) { + ETn(this), this.c = K(Jh, w1, 10, n.a.c.length, 0, 1), this.e = e, xf(n.a, this.c), this.f = t, this.b = i; + } + function GFn(n) { + Ljn(), xC(this), MM(this), this.e = n, bqn(this, n), this.g = n == null ? wu : Jr(n), this.a = "", this.b = n, this.a = ""; + } + function bY() { + this.a = new amn(), this.f = new jkn(this), this.b = new Ekn(this), this.i = new Ckn(this), this.e = new Mkn(this); + } + function zFn() { + Jfe.call(this, new VJ(Yb(16))), Co(2, Ozn), this.b = 2, this.a = new HW(null, null, 0, null), V9(this.a, this.a); + } + function wY(n) { + throw K$(), M(new Ojn("Unexpected typeof result '" + n + "'; please report this bug to the GWT team")); + } + function nx(n, e, t) { + return y.Math.abs(e - n) < PS || y.Math.abs(t - n) < PS ? !0 : e - n > PS ? n - t > PS : t - n > PS; + } + function XFn(n, e) { + var t; + for (t = 0; t < e.length; t++) + if (n == (zn(t, e.length), e.charCodeAt(t))) + return !0; + return !1; + } + function U6e(n) { + var e, t; + if (n == null) + return !1; + for (e = 0, t = n.length; e < t; e++) + if (!OSn(n[e])) + return !1; + return !0; + } + function gY(n, e) { + var t, i, r; + return i = !1, t = e.q.d, e.d < n.b && (r = cen(e.q, n.b), e.q.d > r && (EKn(e.q, r), i = t != e.q.d)), i; + } + function VFn(n, e) { + var t, i, r, c, s, f, h, l; + return h = e.i, l = e.j, i = n.f, r = i.i, c = i.j, s = h - r, f = l - c, t = y.Math.sqrt(s * s + f * f), t; + } + function pY(n, e) { + var t, i; + return i = WT(n), i || (t = (UF(), $Hn(e)), i = new Cyn(t), ve(i.El(), n)), i; + } + function Ok(n, e) { + var t, i; + return t = u(n.c.Bc(e), 16), t ? (i = n.hc(), i.Gc(t), n.d -= t.gc(), t.$b(), n.mc(i)) : n.jc(); + } + function G6e(n, e) { + var t, i; + for (i = eo(n.d, 1) != 0, t = !0; t; ) + t = !1, t = e.c.mg(e.e, i), t = t | sy(n, e, i, !1), i = !i; + $Q(n); + } + function WFn(n, e, t, i) { + var r, c; + n.a = e, c = i ? 0 : 1, n.f = (r = new s_n(n.c, n.a, t, c), new Kqn(t, n.a, r, n.e, n.b, n.c == (D0(), Z8))); + } + function xT(n) { + var e; + return oe(n.a != n.b), e = n.d.a[n.a], EAn(n.b == n.d.c && e != null), n.c = n.a, n.a = n.a + 1 & n.d.a.length - 1, e; + } + function JFn(n) { + var e; + if (n.c != 0) + return n.c; + for (e = 0; e < n.a.length; e++) + n.c = n.c * 33 + (n.a[e] & -1); + return n.c = n.c * n.e, n.c; + } + function z6e(n) { + var e; + if (!(n.c.c < 0 ? n.a >= n.c.b : n.a <= n.c.b)) + throw M(new nc()); + return e = n.a, n.a += n.c.c, ++n.b, Y(e); + } + function ex(n) { + var e; + return e = new DX(n.a), Ur(e, n), U(e, (W(), st), n), e.o.a = n.g, e.o.b = n.f, e.n.a = n.i, e.n.b = n.j, e; + } + function tx(n) { + return (en(), pu).Hc(n.j) ? $(R(v(n, (W(), yv)))) : cc(A(T(Ci, 1), J, 8, 0, [n.i.n, n.n, n.a])).b; + } + function X6e(n) { + var e; + return e = DC(Cie), u(v(n, (W(), qc)), 21).Hc((mr(), kv)) && Ke(e, (Vi(), Dc), (er(), FP)), e; + } + function V6e(n) { + var e, t, i, r; + for (r = new ei(), i = new C(n); i.a < i.c.c.length; ) + t = u(E(i), 27), e = wAe(t), Ri(r, e); + return r; + } + function W6e(n) { + var e, t; + for (t = new C(n.r); t.a < t.c.c.length; ) + if (e = u(E(t), 10), n.n[e.p] <= 0) + return e; + return null; + } + function J6e(n, e, t) { + var i, r; + for (r = e.a.a.ec().Kc(); r.Ob(); ) + if (i = u(r.Pb(), 60), zIn(n, i, t)) + return !0; + return !1; + } + function Q6e(n, e, t, i) { + var r, c; + for (c = n.Kc(); c.Ob(); ) + r = u(c.Pb(), 72), r.n.a = e.a + (i.a - r.o.a) / 2, r.n.b = e.b, e.b += r.o.b + t; + } + function Y6e(n, e, t) { + var i; + i = new sHn(n, e), Pn(n.r, e.ag(), i), t && !K6(n.u) && (i.c = new fOn(n.d), nu(e.Rf(), new L9n(i))); + } + function Cc(n, e) { + var t; + return Vr(n) && Vr(e) && (t = n - e, !isNaN(t)) ? t : DZ(Vr(n) ? ds(n) : n, Vr(e) ? ds(e) : e); + } + function mY(n, e) { + var t, i, r; + for (r = 1, t = n, i = e >= 0 ? e : -e; i > 0; ) + i % 2 == 0 ? (t *= t, i = i / 2 | 0) : (r *= t, i -= 1); + return e < 0 ? 1 / r : r; + } + function Z6e(n, e) { + var t, i, r; + for (r = 1, t = n, i = e >= 0 ? e : -e; i > 0; ) + i % 2 == 0 ? (t *= t, i = i / 2 | 0) : (r *= t, i -= 1); + return e < 0 ? 1 / r : r; + } + function ea(n, e) { + var t, i, r, c; + return c = (r = n ? WT(n) : null, O_n((i = e, r && r.Gl(), i))), c == e && (t = WT(n), t && t.Gl()), c; + } + function QFn(n, e, t) { + var i, r; + return r = n.f, n.f = e, n.Db & 4 && !(n.Db & 1) && (i = new Mi(n, 1, 0, r, e), t ? t.nj(i) : t = i), t; + } + function YFn(n, e, t) { + var i, r; + return r = n.b, n.b = e, n.Db & 4 && !(n.Db & 1) && (i = new Mi(n, 1, 3, r, e), t ? t.nj(i) : t = i), t; + } + function vY(n, e, t) { + var i, r; + return r = n.a, n.a = e, n.Db & 4 && !(n.Db & 1) && (i = new Mi(n, 1, 1, r, e), t ? t.nj(i) : t = i), t; + } + function ZFn(n) { + var e, t; + if (n != null) + for (t = 0; t < n.length; ++t) + e = n[t], e && (u(e.g, 379), e.i); + } + function n5e(n, e, t, i, r, c, s, f) { + var h; + for (h = t; c < s; ) + h >= i || e < t && f.Ne(n[e], n[h]) <= 0 ? $t(r, c++, n[e++]) : $t(r, c++, n[h++]); + } + function e5e(n, e, t, i, r) { + e == 0 || i == 0 || (e == 1 ? r[i] = lZ(r, t, i, n[0]) : i == 1 ? r[e] = lZ(r, n, e, t[0]) : ECe(n, t, r, e, i)); + } + function t5e(n, e, t) { + var i, r, c, s; + for (i = t / n.gc(), r = 0, s = n.Kc(); s.Ob(); ) + c = u(s.Pb(), 186), _Fn(c, c.f + i * r), gke(c, e, i), ++r; + } + function i5e(n) { + var e, t, i; + for (i = 0, t = new C(n.a); t.a < t.c.c.length; ) + e = u(E(t), 172), i = y.Math.max(i, e.g); + return i; + } + function r5e(n) { + var e, t, i; + for (i = new C(n.b); i.a < i.c.c.length; ) + t = u(E(i), 219), e = t.c.kg() ? t.f : t.a, e && IIe(e, t.j); + } + function w5() { + w5 = F, FH = new zD("DUMMY_NODE_OVER", 0), Dhn = new zD("DUMMY_NODE_UNDER", 1), MI = new zD("EQUAL", 2); + } + function Gp() { + Gp = F, pdn = new lL("PARALLEL_NODE", 0), Zw = new lL("HIERARCHICAL_NODE", 1), aO = new lL("ROOT_NODE", 2); + } + function jl() { + jl = F, uO = new hL("INHERIT", 0), T1 = new hL("INCLUDE_CHILDREN", 1), E9 = new hL("SEPARATE_CHILDREN", 2); + } + function kY(n, e) { + switch (e) { + case 1: + !n.n && (n.n = new q(Sr, n, 1, 7)), me(n.n); + return; + case 2: + z4(n, null); + return; + } + WQ(n, e); + } + function nBn(n) { + switch (n.g) { + case 0: + return new omn(); + case 1: + return new fmn(); + case 2: + return new smn(); + default: + return null; + } + } + function r1(n) { + switch (uh(), n.c) { + case 0: + return wN(), uun; + case 1: + return new lp(B_n(new dp(n))); + default: + return new Sjn(n); + } + } + function eBn(n) { + switch (uh(), n.gc()) { + case 0: + return wN(), uun; + case 1: + return new lp(n.Kc().Pb()); + default: + return new Bz(n); + } + } + function FT(n) { + var e; + switch (n.gc()) { + case 0: + return qK; + case 1: + return new VL(Se(n.Xb(0))); + default: + return e = n, new PN(e); + } + } + function Y(n) { + var e, t; + return n > -129 && n < 128 ? (FSn(), e = n + 128, t = pun[e], !t && (t = pun[e] = new vG(n)), t) : new vG(n); + } + function om(n) { + var e, t; + return n > -129 && n < 128 ? (nPn(), e = n + 128, t = yun[e], !t && (t = yun[e] = new yG(n)), t) : new yG(n); + } + function tBn(n, e) { + var t; + n.a.c.length > 0 && (t = u(sn(n.a, n.a.c.length - 1), 579), sY(t, e)) || nn(n.a, new kLn(e)); + } + function c5e(n) { + Fs(); + var e, t; + e = n.d.c - n.e.c, t = u(n.g, 154), nu(t.b, new p7n(e)), nu(t.c, new m7n(e)), qi(t.i, new v7n(e)); + } + function iBn(n) { + var e; + return e = new x1(), e.a += "VerticalSegment ", Lc(e, n.e), e.a += " ", Re(e, RX(new yD(), new C(n.k))), e.a; + } + function ix(n, e) { + var t, i, r; + for (t = 0, r = uc(n, e).Kc(); r.Ob(); ) + i = u(r.Pb(), 12), t += v(i, (W(), Gu)) != null ? 1 : 0; + return t; + } + function Fg(n, e, t) { + var i, r, c; + for (i = 0, c = ge(n, 0); c.b != c.d.c && (r = $(R(be(c))), !(r > t)); ) + r >= e && ++i; + return i; + } + function rBn(n, e) { + Se(n); + try { + return n._b(e); + } catch (t) { + if (t = It(t), D(t, 212) || D(t, 169)) + return !1; + throw M(t); + } + } + function yY(n, e) { + Se(n); + try { + return n.Hc(e); + } catch (t) { + if (t = It(t), D(t, 212) || D(t, 169)) + return !1; + throw M(t); + } + } + function u5e(n, e) { + Se(n); + try { + return n.Mc(e); + } catch (t) { + if (t = It(t), D(t, 212) || D(t, 169)) + return !1; + throw M(t); + } + } + function iw(n, e) { + Se(n); + try { + return n.xc(e); + } catch (t) { + if (t = It(t), D(t, 212) || D(t, 169)) + return null; + throw M(t); + } + } + function o5e(n, e) { + Se(n); + try { + return n.Bc(e); + } catch (t) { + if (t = It(t), D(t, 212) || D(t, 169)) + return null; + throw M(t); + } + } + function g5(n, e) { + switch (e.g) { + case 2: + case 1: + return uc(n, e); + case 3: + case 4: + return Qo(uc(n, e)); + } + return Dn(), Dn(), or; + } + function p5(n) { + var e; + return n.Db & 64 ? Hs(n) : (e = new ls(Hs(n)), e.a += " (name: ", Cr(e, n.zb), e.a += ")", e.a); + } + function s5e(n) { + var e; + return e = u(Lf(n.c.c, ""), 233), e || (e = new Np(c4(r4(new tp(), ""), "Other")), f1(n.c.c, "", e)), e; + } + function jY(n, e, t) { + var i, r; + return r = n.sb, n.sb = e, n.Db & 4 && !(n.Db & 1) && (i = new Mi(n, 1, 4, r, e), t ? t.nj(i) : t = i), t; + } + function EY(n, e, t) { + var i, r; + return r = n.r, n.r = e, n.Db & 4 && !(n.Db & 1) && (i = new Mi(n, 1, 8, r, n.r), t ? t.nj(i) : t = i), t; + } + function f5e(n, e, t) { + var i, r; + return i = new ml(n.e, 4, 13, (r = e.c, r || (On(), Yf)), null, h1(n, e), !1), t ? t.nj(i) : t = i, t; + } + function h5e(n, e, t) { + var i, r; + return i = new ml(n.e, 3, 13, null, (r = e.c, r || (On(), Yf)), h1(n, e), !1), t ? t.nj(i) : t = i, t; + } + function c1(n, e) { + var t, i; + return t = u(e, 691), i = t.el(), !i && t.fl(i = D(e, 90) ? new xMn(n, u(e, 29)) : new cDn(n, u(e, 156))), i; + } + function Dk(n, e, t) { + var i; + n._i(n.i + 1), i = n.Zi(e, t), e != n.i && Oc(n.g, e, n.g, e + 1, n.i - e), $t(n.g, e, i), ++n.i, n.Mi(e, t), n.Ni(); + } + function l5e(n, e) { + var t; + return e.a && (t = e.a.a.length, n.a ? Re(n.a, n.b) : n.a = new mo(n.d), aDn(n.a, e.a, e.d.length, t)), n; + } + function a5e(n, e) { + var t; + n.c = e, n.a = p8e(e), n.a < 54 && (n.f = (t = e.d > 1 ? hDn(e.a[0], e.a[1]) : hDn(e.a[0], 0), rd(e.e > 0 ? t : e1(t)))); + } + function Lk(n, e) { + var t; + return t = new LO(), n.a.Bd(t) ? (d4(), new wD(Jn(GNn(n, t.a, e)))) : (X1(n), d4(), d4(), Dun); + } + function cBn(n, e) { + var t; + n.c.length != 0 && (t = u(xf(n, K(Jh, w1, 10, n.c.length, 0, 1)), 199), CX(t, new rgn()), Y_n(t, e)); + } + function uBn(n, e) { + var t; + n.c.length != 0 && (t = u(xf(n, K(Jh, w1, 10, n.c.length, 0, 1)), 199), CX(t, new cgn()), Y_n(t, e)); + } + function rt(n, e) { + return Pi(n) ? An(n, e) : xb(n) ? nSn(n, e) : $b(n) ? (Jn(n), x(n) === x(e)) : pW(n) ? n.Fb(e) : hW(n) ? YMn(n, e) : hJ(n, e); + } + function Wo(n, e, t) { + if (e < 0) + Pnn(n, t); + else { + if (!t.rk()) + throw M(new Gn(ba + t.xe() + b8)); + u(t, 69).wk().Ek(n, n.hi(), e); + } + } + function oBn(n, e, t) { + if (n < 0 || e > t) + throw M(new Pr(ZA + n + Stn + e + ", size: " + t)); + if (n > e) + throw M(new Gn(ZA + n + Qzn + e)); + } + function sBn(n) { + var e; + return n.Db & 64 ? Hs(n) : (e = new ls(Hs(n)), e.a += " (source: ", Cr(e, n.d), e.a += ")", e.a); + } + function fBn(n) { + return n >= 65 && n <= 70 ? n - 65 + 10 : n >= 97 && n <= 102 ? n - 97 + 10 : n >= 48 && n <= 57 ? n - 48 : 0; + } + function d5e(n) { + VA(); + var e, t, i, r; + for (t = jx(), i = 0, r = t.length; i < r; ++i) + if (e = t[i], qr(e.a, n, 0) != -1) + return e; + return l_; + } + function b5e(n, e) { + var t, i, r, c; + if (e.ej(n.a), c = u(Un(n.a, 8), 2035), c != null) + for (t = c, i = 0, r = t.length; i < r; ++i) + null.Um(); + } + function u1(n, e) { + var t; + t = (n.Bb & 256) != 0, e ? n.Bb |= 256 : n.Bb &= -257, n.Db & 4 && !(n.Db & 1) && it(n, new Rs(n, 1, 2, t, e)); + } + function CY(n, e) { + var t; + t = (n.Bb & 256) != 0, e ? n.Bb |= 256 : n.Bb &= -257, n.Db & 4 && !(n.Db & 1) && it(n, new Rs(n, 1, 8, t, e)); + } + function BT(n, e) { + var t; + t = (n.Bb & 256) != 0, e ? n.Bb |= 256 : n.Bb &= -257, n.Db & 4 && !(n.Db & 1) && it(n, new Rs(n, 1, 8, t, e)); + } + function o1(n, e) { + var t; + t = (n.Bb & 512) != 0, e ? n.Bb |= 512 : n.Bb &= -513, n.Db & 4 && !(n.Db & 1) && it(n, new Rs(n, 1, 3, t, e)); + } + function MY(n, e) { + var t; + t = (n.Bb & 512) != 0, e ? n.Bb |= 512 : n.Bb &= -513, n.Db & 4 && !(n.Db & 1) && it(n, new Rs(n, 1, 9, t, e)); + } + function w5e(n, e, t) { + var i, r; + return r = n.a, n.a = e, n.Db & 4 && !(n.Db & 1) && (i = new Mi(n, 1, 5, r, n.a), t ? zZ(t, i) : t = i), t; + } + function m5(n, e) { + var t; + return n.b == -1 && n.a && (t = n.a.pk(), n.b = t ? n.c.Hh(n.a.Lj(), t) : Ot(n.c.Dh(), n.a)), n.c.yh(n.b, e); + } + function hBn(n, e) { + var t, i; + for (i = new ne(n); i.e != i.i.gc(); ) + if (t = u(ue(i), 29), x(e) === x(t)) + return !0; + return !1; + } + function TY(n) { + var e, t; + return e = n.k, e == (Vn(), ni) ? (t = u(v(n, (W(), gc)), 64), t == (en(), Xn) || t == ae) : !1; + } + function lBn(n) { + var e; + return e = gJ(n), s0(e.a, 0) ? (Db(), Db(), n_) : (Db(), new AL(LD(e.a, 0) ? KJ(e) / rd(e.a) : 0)); + } + function Nk(n, e) { + this.e = e, this.a = Qxn(n), this.a < 54 ? this.f = rd(n) : this.c = (ah(), Cc(n, 0) >= 0 ? ia(n) : U6(ia(e1(n)))); + } + function aBn(n, e, t, i, r, c) { + this.e = new Z(), this.f = (pr(), Q8), nn(this.e, n), this.d = e, this.a = t, this.b = i, this.f = r, this.c = c; + } + function g5e(n, e, t) { + n.n = Ja(Fa, [J, SB], [376, 28], 14, [t, gi(y.Math.ceil(e / 32))], 2), n.o = e, n.p = t, n.j = e - 1 >> 1, n.k = t - 1 >> 1; + } + function dBn(n) { + return n -= n >> 1 & 1431655765, n = (n >> 2 & 858993459) + (n & 858993459), n = (n >> 4) + n & 252645135, n += n >> 8, n += n >> 16, n & 63; + } + function bBn(n, e) { + var t, i; + for (i = new ne(n); i.e != i.i.gc(); ) + if (t = u(ue(i), 142), x(e) === x(t)) + return !0; + return !1; + } + function p5e(n, e, t) { + var i, r, c; + return c = (r = Cm(n.b, e), r), c && (i = u(qA(hk(n, c), ""), 29), i) ? Qnn(n, i, e, t) : null; + } + function rx(n, e, t) { + var i, r, c; + return c = (r = Cm(n.b, e), r), c && (i = u(qA(hk(n, c), ""), 29), i) ? Ynn(n, i, e, t) : null; + } + function m5e(n, e) { + var t; + if (t = Lg(n.i, e), t == null) + throw M(new nh("Node did not exist in input.")); + return HQ(e, t), null; + } + function v5e(n, e) { + var t; + if (t = oy(n, e), D(t, 331)) + return u(t, 35); + throw M(new Gn(ba + e + "' is not a valid attribute")); + } + function v5(n, e, t) { + var i; + if (i = n.gc(), e > i) + throw M(new _b(e, i)); + if (n.Si() && n.Hc(t)) + throw M(new Gn(Vy)); + n.Gi(e, t); + } + function k5e(n, e) { + e.Ug("Sort end labels", 1), Ut(ut(rc(new Tn(null, new In(n.b, 16)), new Hwn()), new qwn()), new Uwn()), e.Vg(); + } + function ui() { + ui = F, Wf = new p7(n8, 0), Xr = new p7(f3, 1), Fr = new p7(s3, 2), Vf = new p7(_B, 3), us = new p7("UP", 4); + } + function $k() { + $k = F, XI = new sL("P1_STRUCTURE", 0), VI = new sL("P2_PROCESSING_ORDER", 1), WI = new sL("P3_EXECUTION", 2); + } + function wBn() { + wBn = F, Rre = lh(lh(h6(lh(lh(h6(Ke(new ri(), (Qp(), t9), (K5(), ZH)), i9), lln), dln), r9), oln), bln); + } + function y5e(n) { + switch (u(v(n, (W(), Dd)), 311).g) { + case 1: + U(n, Dd, (vl(), E3)); + break; + case 2: + U(n, Dd, (vl(), k2)); + } + } + function j5e(n) { + switch (n) { + case 0: + return new rjn(); + case 1: + return new tjn(); + case 2: + return new ijn(); + default: + throw M(new W9()); + } + } + function gBn(n) { + switch (n.g) { + case 2: + return Xr; + case 1: + return Fr; + case 4: + return Vf; + case 3: + return us; + default: + return Wf; + } + } + function AY(n, e) { + switch (n.b.g) { + case 0: + case 1: + return e; + case 2: + case 3: + return new Ho(e.d, 0, e.a, e.b); + default: + return null; + } + } + function SY(n) { + switch (n.g) { + case 1: + return Wn; + case 2: + return Xn; + case 3: + return Zn; + case 4: + return ae; + default: + return sc; + } + } + function xk(n) { + switch (n.g) { + case 1: + return ae; + case 2: + return Wn; + case 3: + return Xn; + case 4: + return Zn; + default: + return sc; + } + } + function RT(n) { + switch (n.g) { + case 1: + return Zn; + case 2: + return ae; + case 3: + return Wn; + case 4: + return Xn; + default: + return sc; + } + } + function PY(n, e, t, i) { + switch (e) { + case 1: + return !n.n && (n.n = new q(Sr, n, 1, 7)), n.n; + case 2: + return n.k; + } + return yZ(n, e, t, i); + } + function k5(n, e, t) { + var i, r; + return n.Pj() ? (r = n.Qj(), i = lF(n, e, t), n.Jj(n.Ij(7, Y(t), i, e, r)), i) : lF(n, e, t); + } + function cx(n, e) { + var t, i, r; + n.d == null ? (++n.e, --n.f) : (r = e.ld(), t = e.Bi(), i = (t & et) % n.d.length, o4e(n, i, RHn(n, i, t, r))); + } + function sm(n, e) { + var t; + t = (n.Bb & Gs) != 0, e ? n.Bb |= Gs : n.Bb &= -1025, n.Db & 4 && !(n.Db & 1) && it(n, new Rs(n, 1, 10, t, e)); + } + function fm(n, e) { + var t; + t = (n.Bb & kw) != 0, e ? n.Bb |= kw : n.Bb &= -4097, n.Db & 4 && !(n.Db & 1) && it(n, new Rs(n, 1, 12, t, e)); + } + function hm(n, e) { + var t; + t = (n.Bb & Nu) != 0, e ? n.Bb |= Nu : n.Bb &= -8193, n.Db & 4 && !(n.Db & 1) && it(n, new Rs(n, 1, 15, t, e)); + } + function lm(n, e) { + var t; + t = (n.Bb & Aw) != 0, e ? n.Bb |= Aw : n.Bb &= -2049, n.Db & 4 && !(n.Db & 1) && it(n, new Rs(n, 1, 11, t, e)); + } + function E5e(n) { + var e; + n.g && (e = n.c.kg() ? n.f : n.a, len(e.a, n.o, !0), len(e.a, n.o, !1), U(n.o, (cn(), Ht), (Li(), Gd))); + } + function C5e(n) { + var e; + if (!n.a) + throw M(new Ir("Cannot offset an unassigned cut.")); + e = n.c - n.b, n.b += e, _In(n, e), KIn(n, e); + } + function M5e(n, e) { + var t; + if (t = ee(n.k, e), t == null) + throw M(new nh("Port did not exist in input.")); + return HQ(e, t), null; + } + function T5e(n) { + var e, t; + for (t = xHn(jo(n)).Kc(); t.Ob(); ) + if (e = Oe(t.Pb()), _5(n, e)) + return A3e((mCn(), Boe), e); + return null; + } + function pBn(n) { + var e, t; + for (t = n.p.a.ec().Kc(); t.Ob(); ) + if (e = u(t.Pb(), 218), e.f && n.b[e.c] < -1e-10) + return e; + return null; + } + function A5e(n) { + var e, t; + for (t = z1(new x1(), 91), e = !0; n.Ob(); ) + e || (t.a += cr), e = !1, Lc(t, n.Pb()); + return (t.a += "]", t).a; + } + function S5e(n) { + var e, t, i; + for (e = new Z(), i = new C(n.b); i.a < i.c.c.length; ) + t = u(E(i), 602), li(e, u(t.Cf(), 16)); + return e; + } + function ux(n, e) { + var t, i; + for (i = new C(e); i.a < i.c.c.length; ) + t = u(E(i), 42), au(n.b.b, t.b), Oge(u(t.a, 194), u(t.b, 86)); + } + function P5e(n, e) { + var t; + return t = bt(n.b.c, e.b.c), t != 0 || (t = bt(n.a.a, e.a.a), t != 0) ? t : bt(n.a.b, e.a.b); + } + function bt(n, e) { + return n < e ? -1 : n > e ? 1 : n == e ? n == 0 ? bt(1 / n, 1 / e) : 0 : isNaN(n) ? isNaN(e) ? 0 : 1 : -1; + } + function I5e(n) { + var e; + return e = n.a[n.c - 1 & n.a.length - 1], e == null ? null : (n.c = n.c - 1 & n.a.length - 1, $t(n.a, n.c, null), e); + } + function O5e(n) { + var e, t, i; + for (i = 0, t = n.length, e = 0; e < t; e++) + n[e] == 32 || n[e] == 13 || n[e] == 10 || n[e] == 9 || (n[i++] = n[e]); + return i; + } + function D5e(n, e) { + var t, i, r, c, s; + for (s = ru(n.e.Dh(), e), c = 0, t = u(n.g, 124), r = 0; r < n.i; ++r) + i = t[r], s.am(i.Lk()) && ++c; + return c; + } + function L5e(n, e, t) { + var i, r; + for (r = D(e, 102) && u(e, 19).Bb & fr ? new dL(e, n) : new Q4(e, n), i = 0; i < t; ++i) + iA(r); + return r; + } + function mBn(n, e, t) { + var i, r; + if (n.c) + cnn(n.c, e, t); + else + for (r = new C(n.b); r.a < r.c.c.length; ) + i = u(E(r), 163), mBn(i, e, t); + } + function N5e(n, e, t) { + var i, r; + return i = u(e.of(n.a), 34), r = u(t.of(n.a), 34), i != null && r != null ? mk(i, r) : i != null ? -1 : r != null ? 1 : 0; + } + function IY(n, e) { + var t, i, r; + for (Jn(e), t = !1, i = new C(n); i.a < i.c.c.length; ) + r = E(i), e.Hc(r) && (q6(i), t = !0); + return t; + } + function jn(n) { + var e, t, i, r; + return t = (e = u(of((i = n.Rm, r = i.f, r == ke ? i : r)), 9), new _o(e, u(xs(e, e.length), 9), 0)), _s(t, n), t; + } + function KT(n) { + var e, t; + return t = u(v(n, (cn(), Do)), 88), t == (ui(), Wf) ? (e = $(R(v(n, oI))), e >= 1 ? Xr : Vf) : t; + } + function $5e(n) { + switch (u(v(n, (cn(), $l)), 223).g) { + case 1: + return new Ppn(); + case 3: + return new Npn(); + default: + return new Spn(); + } + } + function ta(n) { + if (n.c) + ta(n.c); + else if (n.d) + throw M(new Ir("Stream already terminated, can't be modified or used")); + } + function x0(n, e, t) { + var i; + return i = n.a.get(e), n.a.set(e, t === void 0 ? null : t), i === void 0 ? (++n.c, ++n.b.g) : ++n.d, i; + } + function x5e(n, e, t) { + var i, r; + for (r = n.a.ec().Kc(); r.Ob(); ) + if (i = u(r.Pb(), 10), Ek(t, u(sn(e, i.p), 16))) + return i; + return null; + } + function OY(n, e, t) { + var i; + return i = 0, e && (vg(n.a) ? i += e.f.a / 2 : i += e.f.b / 2), t && (vg(n.a) ? i += t.f.a / 2 : i += t.f.b / 2), i; + } + function F5e(n, e, t) { + var i; + i = t, !i && (i = YV(new op(), 0)), i.Ug(PXn, 2), jRn(n.b, e, i.eh(1)), YIe(n, e, i.eh(1)), eLe(e, i.eh(1)), i.Vg(); + } + function DY(n, e, t) { + var i, r; + return i = (B1(), r = new yE(), r), aT(i, e), lT(i, t), n && ve((!n.a && (n.a = new ii(xo, n, 5)), n.a), i), i; + } + function ox(n) { + var e; + return n.Db & 64 ? Hs(n) : (e = new ls(Hs(n)), e.a += " (identifier: ", Cr(e, n.k), e.a += ")", e.a); + } + function sx(n, e) { + var t; + t = (n.Bb & kc) != 0, e ? n.Bb |= kc : n.Bb &= -32769, n.Db & 4 && !(n.Db & 1) && it(n, new Rs(n, 1, 18, t, e)); + } + function LY(n, e) { + var t; + t = (n.Bb & kc) != 0, e ? n.Bb |= kc : n.Bb &= -32769, n.Db & 4 && !(n.Db & 1) && it(n, new Rs(n, 1, 18, t, e)); + } + function am(n, e) { + var t; + t = (n.Bb & bh) != 0, e ? n.Bb |= bh : n.Bb &= -16385, n.Db & 4 && !(n.Db & 1) && it(n, new Rs(n, 1, 16, t, e)); + } + function NY(n, e) { + var t; + t = (n.Bb & fr) != 0, e ? n.Bb |= fr : n.Bb &= -65537, n.Db & 4 && !(n.Db & 1) && it(n, new Rs(n, 1, 20, t, e)); + } + function $Y(n) { + var e; + return e = K(fs, wh, 28, 2, 15, 1), n -= fr, e[0] = (n >> 10) + Sy & oi, e[1] = (n & 1023) + 56320 & oi, ws(e, 0, e.length); + } + function B5e(n) { + var e; + return e = fw(n), e > 34028234663852886e22 ? St : e < -34028234663852886e22 ? ai : e; + } + function Zi(n, e) { + var t; + return Vr(n) && Vr(e) && (t = n + e, Ay < t && t < kd) ? t : Y1(Gve(Vr(n) ? ds(n) : n, Vr(e) ? ds(e) : e)); + } + function nr(n, e) { + var t; + return Vr(n) && Vr(e) && (t = n * e, Ay < t && t < kd) ? t : Y1(KIe(Vr(n) ? ds(n) : n, Vr(e) ? ds(e) : e)); + } + function bs(n, e) { + var t; + return Vr(n) && Vr(e) && (t = n - e, Ay < t && t < kd) ? t : Y1(Yxn(Vr(n) ? ds(n) : n, Vr(e) ? ds(e) : e)); + } + function uc(n, e) { + var t; + return n.i || Snn(n), t = u(Mr(n.g, e), 42), t ? new Ql(n.j, u(t.a, 17).a, u(t.b, 17).a) : (Dn(), Dn(), or); + } + function R5e(n) { + return Y$(), _n(), !!(yBn(u(n.a, 86).j, u(n.b, 88)) || u(n.a, 86).d.e != 0 && yBn(u(n.a, 86).j, u(n.b, 88))); + } + function K5e(n, e) { + return An(e.b && e.c ? id(e.b) + "->" + id(e.c) : "e_" + mt(e), n.b && n.c ? id(n.b) + "->" + id(n.c) : "e_" + mt(n)); + } + function _5e(n, e) { + return An(e.b && e.c ? id(e.b) + "->" + id(e.c) : "e_" + mt(e), n.b && n.c ? id(n.b) + "->" + id(n.c) : "e_" + mt(n)); + } + function F0(n, e) { + return Mf(), Ks(fa), y.Math.abs(n - e) <= fa || n == e || isNaN(n) && isNaN(e) ? 0 : n < e ? -1 : n > e ? 1 : f0(isNaN(n), isNaN(e)); + } + function El() { + El = F, lU = new kC(n8, 0), Yj = new kC("POLYLINE", 1), Bv = new kC("ORTHOGONAL", 2), F3 = new kC("SPLINES", 3); + } + function _T() { + _T = F, l1n = new uL("ASPECT_RATIO_DRIVEN", 0), Oq = new uL("MAX_SCALE_DRIVEN", 1), h1n = new uL("AREA_DRIVEN", 2); + } + function H5e(n, e, t) { + var i; + try { + l6e(n, e, t); + } catch (r) { + throw r = It(r), D(r, 606) ? (i = r, M(new $J(i))) : M(r); + } + return e; + } + function q5e(n) { + var e, t, i; + for (t = 0, i = n.length; t < i; t++) + if (n[t] == null) + throw M(new fp("at index " + t)); + return e = n, new Bu(e); + } + function Cl(n) { + var e, t, i; + for (e = new Z(), i = new C(n.j); i.a < i.c.c.length; ) + t = u(E(i), 12), nn(e, t.b); + return Se(e), new A6(e); + } + function Ei(n) { + var e, t, i; + for (e = new Z(), i = new C(n.j); i.a < i.c.c.length; ) + t = u(E(i), 12), nn(e, t.e); + return Se(e), new A6(e); + } + function Qt(n) { + var e, t, i; + for (e = new Z(), i = new C(n.j); i.a < i.c.c.length; ) + t = u(E(i), 12), nn(e, t.g); + return Se(e), new A6(e); + } + function U5e(n, e) { + var t, i, r; + for (r = new de(), i = e.vc().Kc(); i.Ob(); ) + t = u(i.Pb(), 44), Xe(r, t.ld(), Sve(n, u(t.md(), 15))); + return r; + } + function G5e(n) { + var e, t; + for (t = NCe(jo(zb(n))).Kc(); t.Ob(); ) + if (e = Oe(t.Pb()), _5(n, e)) + return S3e((gCn(), Roe), e); + return null; + } + function fx(n, e) { + var t, i, r; + for (r = 0, i = u(e.Kb(n), 20).Kc(); i.Ob(); ) + t = u(i.Pb(), 18), on(un(v(t, (W(), Gf)))) || ++r; + return r; + } + function vBn(n) { + var e, t, i, r; + for (e = new XAn(n.Rd().gc()), r = 0, i = Kp(n.Rd().Kc()); i.Ob(); ) + t = i.Pb(), P2e(e, t, Y(r++)); + return Sje(e.a); + } + function hx(n, e, t, i) { + var r, c; + return Jn(i), Jn(t), r = n.xc(e), c = r == null ? t : cCn(u(r, 15), u(t, 16)), c == null ? n.Bc(e) : n.zc(e, c), c; + } + function z5e(n, e, t, i) { + var r, c, s; + for (r = e + 1; r < t; ++r) + for (c = r; c > e && i.Ne(n[c - 1], n[c]) > 0; --c) + s = n[c], $t(n, c, n[c - 1]), $t(n, c - 1, s); + } + function vn(n, e) { + var t, i, r, c, s; + if (t = e.f, f1(n.c.d, t, e), e.g != null) + for (r = e.g, c = 0, s = r.length; c < s; ++c) + i = r[c], f1(n.c.e, i, e); + } + function kBn(n, e) { + var t, i; + for (t = ge(n, 0); t.b != t.d.c; ) { + if (i = J9(R(be(t))), i == e) + return; + if (i > e) { + wDn(t); + break; + } + } + _7(t, e); + } + function X5e(n, e) { + var t, i, r; + i = Pg(e), r = $(R(cw(i, (cn(), Ws)))), t = y.Math.max(0, r / 2 - 0.5), P5(e, t, 1), nn(n, new NCn(e, t)); + } + function V5e(n, e, t) { + var i; + t.Ug("Straight Line Edge Routing", 1), t.dh(e, xrn), i = u(z(e, (Tg(), D2)), 27), iGn(n, i), t.dh(e, DS); + } + function xY(n, e) { + n.n.c.length == 0 && nn(n.n, new NM(n.s, n.t, n.i)), nn(n.b, e), gZ(u(sn(n.n, n.n.c.length - 1), 209), e), RUn(n, e); + } + function y5(n) { + var e; + this.a = (e = u(n.e && n.e(), 9), new _o(e, u(xs(e, e.length), 9), 0)), this.b = K(yi, Bn, 1, this.a.a.length, 5, 1); + } + function Jr(n) { + var e; + return Array.isArray(n) && n.Tm === Q2 ? Va(wo(n)) + "@" + (e = mt(n) >>> 0, e.toString(16)) : n.toString(); + } + function W5e(n, e) { + return n.h == Ty && n.m == 0 && n.l == 0 ? (e && (wa = Yc(0, 0, 0)), nTn((B4(), lun))) : (e && (wa = Yc(n.l, n.m, n.h)), Yc(0, 0, 0)); + } + function J5e(n, e) { + switch (e.g) { + case 2: + return n.b; + case 1: + return n.c; + case 4: + return n.d; + case 3: + return n.a; + default: + return !1; + } + } + function yBn(n, e) { + switch (e.g) { + case 2: + return n.b; + case 1: + return n.c; + case 4: + return n.d; + case 3: + return n.a; + default: + return !1; + } + } + function FY(n, e, t, i) { + switch (e) { + case 3: + return n.f; + case 4: + return n.g; + case 5: + return n.i; + case 6: + return n.j; + } + return PY(n, e, t, i); + } + function HT(n, e) { + if (e == n.d) + return n.e; + if (e == n.e) + return n.d; + throw M(new Gn("Node " + e + " not part of edge " + n)); + } + function Q5e(n, e) { + var t; + if (t = oy(n.Dh(), e), D(t, 102)) + return u(t, 19); + throw M(new Gn(ba + e + "' is not a valid reference")); + } + function Jo(n, e, t, i) { + if (e < 0) + ten(n, t, i); + else { + if (!t.rk()) + throw M(new Gn(ba + t.xe() + b8)); + u(t, 69).wk().Ck(n, n.hi(), e, i); + } + } + function no(n) { + var e; + if (n.b) { + if (no(n.b), n.b.d != n.c) + throw M(new Bo()); + } else + n.d.dc() && (e = u(n.f.c.xc(n.e), 16), e && (n.d = e)); + } + function Y5e(n) { + Rb(); + var e, t, i, r; + for (e = n.o.b, i = u(u(ot(n.r, (en(), ae)), 21), 87).Kc(); i.Ob(); ) + t = u(i.Pb(), 117), r = t.e, r.b += e; + } + function Z5e(n) { + var e, t, i; + for (this.a = new ih(), i = new C(n); i.a < i.c.c.length; ) + t = u(E(i), 16), e = new cPn(), Zme(e, t), hi(this.a, e); + } + function n8e(n, e) { + var t, i, r; + for (i = eSe(n, e), r = i[i.length - 1] / 2, t = 0; t < i.length; t++) + if (i[t] >= r) + return e.c + t; + return e.c + e.b.gc(); + } + function e8e(n, e) { + p4(); + var t, i, r, c; + for (i = LNn(n), r = e, x4(i, 0, i.length, r), t = 0; t < i.length; t++) + c = H7e(n, i[t], t), t != c && k5(n, t, c); + } + function lx(n, e, t) { + var i, r; + for (i = 0, r = n.length; i < r; i++) + if (R$((zn(i, n.length), n.charCodeAt(i)), e, t)) + return !0; + return !1; + } + function t8e(n, e) { + var t, i; + for (i = n.e.a.ec().Kc(); i.Ob(); ) + if (t = u(i.Pb(), 272), fje(e, t.d) || mEe(e, t.d)) + return !0; + return !1; + } + function BY(n, e, t, i, r) { + var c, s, f; + for (s = r; e.b != e.c; ) + c = u(Sp(e), 10), f = u(uc(c, i).Xb(0), 12), n.d[f.p] = s++, Kn(t.c, f); + return s; + } + function RY(n, e) { + var t, i, r, c, s, f; + for (i = 0, t = 0, c = e, s = 0, f = c.length; s < f; ++s) + r = c[s], r > 0 && (i += r, ++t); + return t > 1 && (i += n.d * (t - 1)), i; + } + function i8e(n) { + var e, t, i, r, c; + return c = enn(n), t = Z9(n.c), i = !t, i && (r = new Ha(), bf(c, "knownLayouters", r), e = new lyn(r), qi(n.c, e)), c; + } + function KY(n) { + var e, t, i; + for (i = new ql(), i.a += "[", e = 0, t = n.gc(); e < t; ) + Cr(i, O6(n.Vi(e))), ++e < t && (i.a += cr); + return i.a += "]", i.a; + } + function r8e(n) { + return n.e == null ? n : (!n.c && (n.c = new jF((n.f & 256) != 0, n.i, n.a, n.d, (n.f & 16) != 0, n.j, n.g, null)), n.c); + } + function c8e(n) { + return n.k != (Vn(), Xt) ? !1 : Og(new Tn(null, new m0(new ie(ce(Qt(n).a.Kc(), new En())))), new mpn()); + } + function Qo(n) { + var e, t; + return D(n, 307) ? (t = t4e(u(n, 307)), e = t, e) : D(n, 441) ? u(n, 441).a : D(n, 59) ? new Pjn(n) : new Oz(n); + } + function u8e(n) { + var e; + return n == null ? !0 : (e = n.length, e > 0 && (zn(e - 1, n.length), n.charCodeAt(e - 1) == 58) && !lx(n, D9, L9)); + } + function _Y(n, e) { + var t; + return x(n) === x(e) ? !0 : D(e, 92) ? (t = u(e, 92), n.e == t.e && n.d == t.d && I3e(n, t.a)) : !1; + } + function zp(n) { + switch (en(), n.g) { + case 4: + return Xn; + case 1: + return Zn; + case 3: + return ae; + case 2: + return Wn; + default: + return sc; + } + } + function o8e(n) { + var e, t; + if (n.b) + return n.b; + for (t = qf ? null : n.d; t; ) { + if (e = qf ? null : t.b, e) + return e; + t = qf ? null : t.d; + } + return l4(), $un; + } + function HY(n) { + var e, t, i; + for (i = $(R(n.a.of((He(), iO)))), t = new C(n.a.Sf()); t.a < t.c.c.length; ) + e = u(E(t), 695), tzn(n, e, i); + } + function s8e(n) { + var e, t, i, r; + for (e = (n.j == null && (n.j = (I4(), r = VK.me(n), Tke(r))), n.j), t = 0, i = e.length; t < i; ++t) + ; + } + function ax(n, e) { + var t, i; + for (i = new C(e); i.a < i.c.c.length; ) + t = u(E(i), 42), nn(n.b.b, u(t.b, 86)), _N(u(t.a, 194), u(t.b, 86)); + } + function f8e(n, e, t) { + var i, r; + for (r = n.a.b, i = r.c.length; i < t; i++) + w0(r, 0, new Nc(n.a)); + xi(e, u(sn(r, r.c.length - t), 30)), n.b[e.p] = t; + } + function h8e(n, e, t, i, r) { + ko(), qs(Ls(Ds(Os(Ns(new hs(), 0), r.d.e - n), e), r.d)), qs(Ls(Ds(Os(Ns(new hs(), 0), t - r.a.e), r.a), i)); + } + function jBn(n, e) { + var t; + return n.d ? Zc(n.b, e) ? u(ee(n.b, e), 47) : (t = e.dg(), Xe(n.b, e, t), t) : e.dg(); + } + function l8e(n) { + var e = n.e; + function t(i) { + return !i || i.length == 0 ? "" : " " + i.join(` + `); + } + return e && (e.stack || t(n[oB])); + } + function qY(n, e) { + switch (e) { + case 3: + return n.f != 0; + case 4: + return n.g != 0; + case 5: + return n.i != 0; + case 6: + return n.j != 0; + } + return qQ(n, e); + } + function EBn(n) { + switch (n.g) { + case 0: + return new W4n(); + case 1: + return new Y4n(); + default: + throw M(new Gn(cR + (n.f != null ? n.f : "" + n.g))); + } + } + function a8e(n) { + switch (n.g) { + case 0: + return new J4n(); + case 1: + return new Q4n(); + default: + throw M(new Gn(GR + (n.f != null ? n.f : "" + n.g))); + } + } + function d8e(n) { + switch (n.g) { + case 1: + return new H4n(); + case 2: + return new fAn(); + default: + throw M(new Gn(GR + (n.f != null ? n.f : "" + n.g))); + } + } + function CBn(n) { + switch (n.g) { + case 0: + return new cz(); + case 1: + return new cjn(); + default: + throw M(new Gn(xS + (n.f != null ? n.f : "" + n.g))); + } + } + function dx() { + nnn(); + var n, e, t; + t = hNe++ + Date.now(), n = gi(y.Math.floor(t * Iy)) & YA, e = gi(t - n * Ctn), this.a = n ^ 1502, this.b = e ^ LB; + } + function Yo() { + Yo = F, Ej = new h7(vh, 0), _8 = new h7("FIRST", 1), ya = new h7(GXn, 2), H8 = new h7("LAST", 3), Fw = new h7(zXn, 4); + } + function qT() { + qT = F, wU = new EC(Crn, 0), ydn = new EC("GROUP_DEC", 1), Edn = new EC("GROUP_MIXED", 2), jdn = new EC("GROUP_INC", 3); + } + function b8e(n, e) { + var t, i, r, c; + e && (r = yl(e, "x"), t = new tyn(n), _4(t.a, (Jn(r), r)), c = yl(e, "y"), i = new ryn(n), q4(i.a, (Jn(c), c))); + } + function w8e(n, e) { + var t, i, r, c; + e && (r = yl(e, "x"), t = new uyn(n), K4(t.a, (Jn(r), r)), c = yl(e, "y"), i = new oyn(n), H4(i.a, (Jn(c), c))); + } + function g8e(n, e) { + var t, i, r, c; + for (r = new zc(e.gc()), i = e.Kc(); i.Ob(); ) + t = i.Pb(), c = IF(n, u(t, 58)), c && Kn(r.c, c); + return r; + } + function rw(n, e, t) { + var i, r; + for (r = n.Kc(); r.Ob(); ) + if (i = r.Pb(), x(e) === x(i) || e != null && rt(e, i)) + return t && r.Qb(), !0; + return !1; + } + function MBn(n) { + var e, t, i; + return t = n.jh(), t ? (e = n.Eh(), D(e, 167) && (i = MBn(u(e, 167)), i != null) ? i + "." + t : t) : null; + } + function p8e(n) { + var e, t, i; + return n.e == 0 ? 0 : (e = n.d << 5, t = n.a[n.d - 1], n.e < 0 && (i = Ixn(n), i == n.d - 1 && (--t, t = t | 0)), e -= iy(t), e); + } + function m8e(n) { + var e, t, i; + return n < fP.length ? fP[n] : (t = n >> 5, e = n & 31, i = K(ye, _e, 28, t + 1, 15, 1), i[t] = 1 << e, new Za(1, t + 1, i)); + } + function TBn(n, e) { + var t, i; + if (e) { + for (t = 0; t < n.i; ++t) + if (i = u(n.g[t], 378), i.mj(e)) + return !1; + return ve(n, e); + } else + return !1; + } + function UY(n, e, t) { + var i, r; + if (++n.j, t.dc()) + return !1; + for (r = t.Kc(); r.Ob(); ) + i = r.Pb(), n.qj(e, n.Zi(e, i)), ++e; + return !0; + } + function v8e(n, e, t, i) { + var r, c; + if (c = t - e, c < 3) + for (; c < 3; ) + n *= 10, ++c; + else { + for (r = 1; c > 3; ) + r *= 10, --c; + n = (n + (r >> 1)) / r | 0; + } + return i.i = n, !0; + } + function Ot(n, e) { + var t, i, r; + if (t = (n.i == null && dh(n), n.i), i = e.Lj(), i != -1) { + for (r = t.length; i < r; ++i) + if (t[i] == e) + return i; + } + return -1; + } + function k8e(n) { + var e, t, i, r, c; + for (t = u(n.g, 689), i = n.i - 1; i >= 0; --i) + for (e = t[i], r = 0; r < i; ++r) + if (c = t[r], DUn(n, e, c)) { + Jp(n, i); + break; + } + } + function GY(n) { + var e, t, i, r; + for (e = new Ha(), r = new W3(n.b.Kc()); r.b.Ob(); ) + i = u(r.b.Pb(), 701), t = xje(i), jwe(e, e.a.length, t); + return e.a; + } + function zY(n) { + var e; + return !n.c && (n.c = new pbn()), Zt(n.d, new vbn()), vAe(n), e = hAe(n), Ut(new Tn(null, new In(n.d, 16)), new N9n(n)), e; + } + function y8e(n, e) { + e.Ug("End label post-processing", 1), Ut(ut(rc(new Tn(null, new In(n.b, 16)), new Nwn()), new $wn()), new xwn()), e.Vg(); + } + function XY(n) { + bx(), this.c = If(A(T(PNe, 1), Bn, 845, 0, [Jte])), this.b = new de(), this.a = n, Xe(this.b, EI, 1), nu(Qte, new Nkn(this)); + } + function ABn(n, e, t) { + H$n(), njn.call(this), this.a = Ja(zQn, [J, $tn], [603, 217], 0, [dP, h_], 2), this.c = new mp(), this.g = n, this.f = e, this.d = t; + } + function VY(n, e) { + this.n = Ja(Fa, [J, SB], [376, 28], 14, [e, gi(y.Math.ceil(n / 32))], 2), this.o = n, this.p = e, this.j = n - 1 >> 1, this.k = e - 1 >> 1; + } + function j8e(n) { + YM(), u(n.of((He(), Ta)), 181).Hc((to(), hO)) && (u(n.of(Jw), 181).Fc((Uu(), B3)), u(n.of(Ta), 181).Mc(hO)); + } + function SBn(n) { + var e, t; + e = n.d == (Yp(), av), t = GZ(n), e && !t || !e && t ? U(n.a, (cn(), Mh), (Bh(), Uj)) : U(n.a, (cn(), Mh), (Bh(), qj)); + } + function bx() { + bx = F, nC(), EI = (cn(), pb), Qte = If(A(T(Xq, 1), Ern, 149, 0, [Tj, Ws, T2, gb, Uw, IH, Tv, Av, OH, X8, M2, Rd, A2])); + } + function E8e(n, e) { + var t; + return t = u(Wr(n, _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), t.Qc(WSn(t.gc())); + } + function PBn(n, e) { + var t, i; + if (i = new Q3(n.a.ad(e, !0)), i.a.gc() <= 1) + throw M(new rp()); + return t = i.a.ec().Kc(), t.Pb(), u(t.Pb(), 40); + } + function C8e(n, e, t) { + var i, r; + return i = $(n.p[e.i.p]) + $(n.d[e.i.p]) + e.n.b + e.a.b, r = $(n.p[t.i.p]) + $(n.d[t.i.p]) + t.n.b + t.a.b, r - i; + } + function WY(n, e) { + var t; + return n.i > 0 && (e.length < n.i && (t = gk(wo(e).c, n.i), e = t), Oc(n.g, 0, e, 0, n.i)), e.length > n.i && $t(e, n.i, null), e; + } + function UT(n) { + var e; + return n.Db & 64 ? p5(n) : (e = new ls(p5(n)), e.a += " (instanceClassName: ", Cr(e, n.D), e.a += ")", e.a); + } + function GT(n) { + var e, t, i, r; + for (r = 0, t = 0, i = n.length; t < i; t++) + e = (zn(t, n.length), n.charCodeAt(t)), e < 64 && (r = lf(r, Bs(1, e))); + return r; + } + function M8e(n, e, t) { + var i, r; + for (i = ki(t, vr), r = 0; Cc(i, 0) != 0 && r < e; r++) + i = Zi(i, ki(n[r], vr)), n[r] = Ae(i), i = g0(i, 32); + return Ae(i); + } + function Fk(n, e) { + var t, i, r, c; + for (c = ru(n.e.Dh(), e), t = u(n.g, 124), r = 0; r < n.i; ++r) + if (i = t[r], c.am(i.Lk())) + return !1; + return !0; + } + function wx(n, e) { + var t, i, r; + return n.f > 0 ? (n._j(), i = e == null ? 0 : mt(e), r = (i & et) % n.d.length, t = RHn(n, r, i, e), t != -1) : !1; + } + function IBn(n, e) { + var t, i; + n.a = Zi(n.a, 1), n.c = y.Math.min(n.c, e), n.b = y.Math.max(n.b, e), n.d += e, t = e - n.f, i = n.e + t, n.f = i - n.e - t, n.e = i; + } + function JY(n, e) { + switch (e) { + case 3: + I0(n, 0); + return; + case 4: + O0(n, 0); + return; + case 5: + eu(n, 0); + return; + case 6: + tu(n, 0); + return; + } + kY(n, e); + } + function B0(n, e) { + switch (e.g) { + case 1: + return Cp(n.j, (Iu(), Fon)); + case 2: + return Cp(n.j, (Iu(), Ron)); + default: + return Dn(), Dn(), or; + } + } + function QY(n) { + v0(); + var e; + switch (e = n.Pc(), e.length) { + case 0: + return qK; + case 1: + return new VL(Se(e[0])); + default: + return new PN(q5e(e)); + } + } + function OBn(n, e) { + n.Xj(); + try { + n.d.bd(n.e++, e), n.f = n.d.j, n.g = -1; + } catch (t) { + throw t = It(t), D(t, 77) ? M(new Bo()) : M(t); + } + } + function gx() { + gx = F, TU = new Tvn(), zdn = new Avn(), Xdn = new Svn(), Vdn = new Pvn(), Wdn = new Ivn(), Jdn = new Ovn(), Qdn = new Dvn(), Ydn = new Lvn(), Zdn = new Nvn(); + } + function zT(n, e) { + kX(); + var t, i; + return t = I7((KE(), KE(), T8)), i = null, e == t && (i = u($c(fun, n), 624)), i || (i = new JPn(n), e == t && Or(fun, n, i)), i; + } + function DBn(n) { + uw(); + var e; + return (n.q ? n.q : (Dn(), Dn(), Vh))._b((cn(), bb)) ? e = u(v(n, bb), 203) : e = u(v(Hi(n), z8), 203), e; + } + function cw(n, e) { + var t, i; + return i = null, kt(n, (cn(), yI)) && (t = u(v(n, yI), 96), t.pf(e) && (i = t.of(e))), i == null && (i = v(Hi(n), e)), i; + } + function LBn(n, e) { + var t, i, r; + return D(e, 44) ? (t = u(e, 44), i = t.ld(), r = iw(n.Rc(), i), oh(r, t.md()) && (r != null || n.Rc()._b(i))) : !1; + } + function gf(n, e) { + var t, i, r; + return n.f > 0 && (n._j(), i = e == null ? 0 : mt(e), r = (i & et) % n.d.length, t = xnn(n, r, i, e), t) ? t.md() : null; + } + function Vc(n, e, t) { + var i, r, c; + return n.Pj() ? (i = n.i, c = n.Qj(), Dk(n, i, e), r = n.Ij(3, null, e, i, c), t ? t.nj(r) : t = r) : Dk(n, n.i, e), t; + } + function T8e(n, e, t) { + var i, r; + return i = new ml(n.e, 4, 10, (r = e.c, D(r, 90) ? u(r, 29) : (On(), Is)), null, h1(n, e), !1), t ? t.nj(i) : t = i, t; + } + function A8e(n, e, t) { + var i, r; + return i = new ml(n.e, 3, 10, null, (r = e.c, D(r, 90) ? u(r, 29) : (On(), Is)), h1(n, e), !1), t ? t.nj(i) : t = i, t; + } + function NBn(n) { + Rb(); + var e; + return e = new ir(u(n.e.of((He(), _2)), 8)), n.B.Hc((to(), Kv)) && (e.a <= 0 && (e.a = 20), e.b <= 0 && (e.b = 20)), e; + } + function ia(n) { + ah(); + var e, t; + return t = Ae(n), e = Ae(U1(n, 32)), e != 0 ? new HOn(t, e) : t > 10 || t < 0 ? new gl(1, t) : kQn[t]; + } + function Bk(n, e) { + var t; + return Vr(n) && Vr(e) && (t = n % e, Ay < t && t < kd) ? t : Y1((Jen(Vr(n) ? ds(n) : n, Vr(e) ? ds(e) : e, !0), wa)); + } + function j5(n, e) { + var t; + bDe(e), t = u(v(n, (cn(), bI)), 283), t && U(n, bI, I7e(t)), Xl(n.c), Xl(n.f), UJ(n.d), UJ(u(v(n, mI), 214)); + } + function S8e(n) { + var e, t, i, r; + for (i = uEe(n), Zt(i, RZn), r = n.d, r.c.length = 0, t = new C(i); t.a < t.c.c.length; ) + e = u(E(t), 466), li(r, e.b); + } + function px(n) { + var e; + n.c != 0 && (e = u(sn(n.a, n.b), 294), e.b == 1 ? (++n.b, n.b < n.a.c.length && r9n(u(sn(n.a, n.b), 294))) : --e.b, --n.c); + } + function P8e(n) { + var e; + e = n.a; + do + e = u(fe(new ie(ce(Qt(e).a.Kc(), new En()))), 18).d.i, e.k == (Vn(), Ti) && nn(n.e, e); + while (e.k == (Vn(), Ti)); + } + function $Bn(n) { + this.e = K(ye, _e, 28, n.length, 15, 1), this.c = K(oo, zh, 28, n.length, 16, 1), this.b = K(oo, zh, 28, n.length, 16, 1), this.f = 0; + } + function I8e(n) { + var e, t; + for (n.j = K(Oi, Ar, 28, n.p.c.length, 15, 1), t = new C(n.p); t.a < t.c.c.length; ) + e = u(E(t), 10), n.j[e.p] = e.o.b / n.i; + } + function O8e(n, e) { + var t, i, r, c; + for (c = e.b.b, n.a = new Ct(), n.b = K(ye, _e, 28, c, 15, 1), t = 0, r = ge(e.b, 0); r.b != r.d.c; ) + i = u(be(r), 40), i.g = t++; + } + function xBn(n, e, t) { + var i, r, c, s; + for (c = e - n.e, s = t - n.f, r = new C(n.a); r.a < r.c.c.length; ) + i = u(E(r), 172), Hk(i, i.s + c, i.t + s); + n.e = e, n.f = t; + } + function Rk(n, e) { + var t, i; + for (i = e.length, t = 0; t < i; t += 2) + Fc(n, (zn(t, e.length), e.charCodeAt(t)), (zn(t + 1, e.length), e.charCodeAt(t + 1))); + } + function D8e(n, e) { + e.Ug("Min Size Postprocessing", 1), ht(n, (Kh(), Vw), y.Math.max($(R(z(n, Vw))), $(R(z(n, f9))))), e.Vg(); + } + function YY() { + YY = F, wdn = new h0(15), uoe = new $i((He(), M1), wdn), soe = new $i(Ud, 15), ooe = new $i(fU, Y(0)), coe = new $i(x2, Um); + } + function go() { + go = F, rE = new jC("PORTS", 0), zd = new jC("PORT_LABELS", 1), iE = new jC("NODE_LABELS", 2), Yw = new jC("MINIMUM_SIZE", 3); + } + function XT() { + XT = F, Bj = new rL("P1_WIDTH_APPROXIMATION", 0), qI = new rL("P2_PACKING", 1), Mq = new rL("P3_WHITESPACE_ELIMINATION", 2); + } + function FBn(n) { + if (n.b == null) { + for (; n.a.Ob(); ) + if (n.b = n.a.Pb(), !u(n.b, 54).Jh()) + return !0; + return n.b = null, !1; + } else + return !0; + } + function dm(n, e, t) { + var i, r, c; + for (r = null, c = n.b; c; ) { + if (i = n.a.Ne(e, c.d), t && i == 0) + return c; + i >= 0 ? c = c.a[1] : (r = c, c = c.a[0]); + } + return r; + } + function Kk(n, e, t) { + var i, r, c; + for (r = null, c = n.b; c; ) { + if (i = n.a.Ne(e, c.d), t && i == 0) + return c; + i <= 0 ? c = c.a[0] : (r = c, c = c.a[1]); + } + return r; + } + function L8e(n, e, t, i) { + var r, c, s; + return r = !1, xOe(n.f, t, i) && (e9e(n.f, n.a[e][t], n.a[e][i]), c = n.a[e], s = c[i], c[i] = c[t], c[t] = s, r = !0), r; + } + function BBn(n, e, t) { + var i, r, c, s; + for (r = u(ee(n.b, t), 183), i = 0, s = new C(e.j); s.a < s.c.c.length; ) + c = u(E(s), 113), r[c.d.p] && ++i; + return i; + } + function ZY(n, e, t) { + var i, r; + i = u($c(qv, e), 122), r = u($c(R9, e), 122), t ? (Or(qv, n, i), Or(R9, n, r)) : (Or(R9, n, i), Or(qv, n, r)); + } + function RBn(n, e) { + var t, i, r, c; + return t = e >> 5, e &= 31, r = n.d + t + (e == 0 ? 0 : 1), i = K(ye, _e, 28, r, 15, 1), Oye(i, n.a, t, e), c = new Za(n.e, r, i), J6(c), c; + } + function N8e(n, e) { + var t, i, r; + for (i = new ie(ce(Qt(n).a.Kc(), new En())); pe(i); ) + if (t = u(fe(i), 18), r = t.d.i, r.c == e) + return !1; + return !0; + } + function nZ(n, e, t) { + var i, r, c, s, f; + return s = n.k, f = e.k, i = t[s.g][f.g], r = R(cw(n, i)), c = R(cw(e, i)), y.Math.max((Jn(r), r), (Jn(c), c)); + } + function $8e() { + return Error.stackTraceLimit > 0 ? (y.Error.stackTraceLimit = Error.stackTraceLimit = 64, !0) : "stack" in new Error(); + } + function x8e(n, e) { + return Mf(), Mf(), Ks(fa), (y.Math.abs(n - e) <= fa || n == e || isNaN(n) && isNaN(e) ? 0 : n < e ? -1 : n > e ? 1 : f0(isNaN(n), isNaN(e))) > 0; + } + function eZ(n, e) { + return Mf(), Mf(), Ks(fa), (y.Math.abs(n - e) <= fa || n == e || isNaN(n) && isNaN(e) ? 0 : n < e ? -1 : n > e ? 1 : f0(isNaN(n), isNaN(e))) < 0; + } + function KBn(n, e) { + return Mf(), Mf(), Ks(fa), (y.Math.abs(n - e) <= fa || n == e || isNaN(n) && isNaN(e) ? 0 : n < e ? -1 : n > e ? 1 : f0(isNaN(n), isNaN(e))) <= 0; + } + function mx(n, e) { + for (var t = 0; !e[t] || e[t] == ""; ) + t++; + for (var i = e[t++]; t < e.length; t++) + !e[t] || e[t] == "" || (i += n + e[t]); + return i; + } + function _Bn(n) { + var e, t; + return e = u(Un(n.a, 4), 129), e != null ? (t = K(jU, MK, 424, e.length, 0, 1), Oc(e, 0, t, 0, e.length), t) : Ioe; + } + function HBn(n) { + var e, t, i, r, c; + if (n == null) + return null; + for (c = new Z(), t = z$(n), i = 0, r = t.length; i < r; ++i) + e = t[i], nn(c, Bc(e, !0)); + return c; + } + function qBn(n) { + var e, t, i, r, c; + if (n == null) + return null; + for (c = new Z(), t = z$(n), i = 0, r = t.length; i < r; ++i) + e = t[i], nn(c, Bc(e, !0)); + return c; + } + function UBn(n) { + var e, t, i, r, c; + if (n == null) + return null; + for (c = new Z(), t = z$(n), i = 0, r = t.length; i < r; ++i) + e = t[i], nn(c, Bc(e, !0)); + return c; + } + function GBn(n, e) { + var t, i, r; + if (n.c) + I0(n.c, e); + else + for (t = e - ao(n), r = new C(n.a); r.a < r.c.c.length; ) + i = u(E(r), 163), GBn(i, ao(i) + t); + } + function zBn(n, e) { + var t, i, r; + if (n.c) + O0(n.c, e); + else + for (t = e - Au(n), r = new C(n.d); r.a < r.c.c.length; ) + i = u(E(r), 163), zBn(i, Au(i) + t); + } + function ws(n, e, t) { + var i, r, c, s; + for (c = e + t, Bi(e, c, n.length), s = "", r = e; r < c; ) + i = y.Math.min(r + 1e4, c), s += Ywe(n.slice(r, i)), r = i; + return s; + } + function tZ(n) { + switch (n.g) { + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + return !0; + default: + return !1; + } + } + function s1() { + s1 = F, J_ = new f7(cin, 0), Dsn = new f7(VXn, 1), Q_ = new f7(sR, 2), gv = new f7(tin, 3), wv = new f7("GREEDY_MODEL_ORDER", 4); + } + function hh() { + hh = F, y1 = new gC(vh, 0), _hn = new gC("NODES_AND_EDGES", 1), HH = new gC("PREFER_EDGES", 2), qH = new gC("PREFER_NODES", 3); + } + function iZ(n, e, t, i, r, c) { + this.a = n, this.c = e, this.b = t, this.f = i, this.d = r, this.e = c, this.c > 0 && this.b > 0 && (this.g = cM(this.c, this.b, this.a)); + } + function F8e(n, e) { + var t = n.a, i; + e = String(e), t.hasOwnProperty(e) && (i = t[e]); + var r = (K$(), WK)[typeof i], c = r ? r(i) : wY(typeof i); + return c; + } + function bm(n) { + var e, t, i; + if (i = null, e = jh in n.a, t = !e, t) + throw M(new nh("Every element must have an id.")); + return i = Zp(dl(n, jh)), i; + } + function R0(n) { + var e, t; + for (t = a_n(n), e = null; n.c == 2; ) + Ze(n), e || (e = (nt(), nt(), new S6(2)), md(e, t), t = e), t.Jm(a_n(n)); + return t; + } + function VT(n, e) { + var t, i, r; + return n._j(), i = e == null ? 0 : mt(e), r = (i & et) % n.d.length, t = xnn(n, r, i, e), t ? (V$n(n, t), t.md()) : null; + } + function XBn(n, e) { + return n.e > e.e ? 1 : n.e < e.e ? -1 : n.d > e.d ? n.e : n.d < e.d ? -e.e : n.e * hY(n.a, e.a, n.d); + } + function VBn(n) { + return n >= 48 && n < 48 + y.Math.min(10, 10) ? n - 48 : n >= 97 && n < 97 ? n - 97 + 10 : n >= 65 && n < 65 ? n - 65 + 10 : -1; + } + function B8e(n, e) { + if (e.c == n) + return e.d; + if (e.d == n) + return e.c; + throw M(new Gn("Input edge is not connected to the input port.")); + } + function R8e(n) { + if (JT(Zm, n)) + return _n(), uv; + if (JT(cK, n)) + return _n(), ga; + throw M(new Gn("Expecting true or false")); + } + function rZ(n) { + switch (typeof n) { + case nB: + return i1(n); + case dtn: + return pp(n); + case i3: + return SAn(n); + default: + return n == null ? 0 : a0(n); + } + } + function lh(n, e) { + if (n.a < 0) + throw M(new Ir("Did not call before(...) or after(...) before calling add(...).")); + return YX(n, n.a, e), n; + } + function cZ(n) { + return $M(), D(n, 162) ? u(ee(hE, MQn), 295).Rg(n) : Zc(hE, wo(n)) ? u(ee(hE, wo(n)), 295).Rg(n) : null; + } + function iu(n) { + var e, t; + return n.Db & 32 || (t = (e = u(Un(n, 16), 29), se(e || n.ii()) - se(n.ii())), t != 0 && Xp(n, 32, K(yi, Bn, 1, t, 5, 1))), n; + } + function Xp(n, e, t) { + var i; + n.Db & e ? t == null ? jCe(n, e) : (i = Rx(n, e), i == -1 ? n.Eb = t : $t(ud(n.Eb), i, t)) : t != null && GTe(n, e, t); + } + function K8e(n, e, t, i) { + var r, c; + e.c.length != 0 && (r = $Me(t, i), c = xEe(e), Ut(fT(new Tn(null, new In(c, 1)), new L3n()), new MIn(n, t, r, i))); + } + function _8e(n, e) { + var t, i, r, c; + return i = n.a.length - 1, t = e - n.b & i, c = n.c - e & i, r = n.c - n.b & i, EAn(t < r), t >= c ? (R6e(n, e), -1) : (B6e(n, e), 1); + } + function WT(n) { + var e, t, i; + if (i = n.Jh(), !i) + for (e = 0, t = n.Ph(); t; t = t.Ph()) { + if (++e > PB) + return t.Qh(); + if (i = t.Jh(), i || t == n) + break; + } + return i; + } + function WBn(n, e) { + var t; + return x(e) === x(n) ? !0 : !D(e, 21) || (t = u(e, 21), t.gc() != n.gc()) ? !1 : n.Ic(t); + } + function H8e(n, e) { + return n.e < e.e ? -1 : n.e > e.e ? 1 : n.f < e.f ? -1 : n.f > e.f ? 1 : mt(n) - mt(e); + } + function JT(n, e) { + return Jn(n), e == null ? !1 : An(n, e) ? !0 : n.length == e.length && An(n.toLowerCase(), e.toLowerCase()); + } + function Ml(n) { + var e, t; + return Cc(n, -129) > 0 && Cc(n, 128) < 0 ? (ZSn(), e = Ae(n) + 128, t = mun[e], !t && (t = mun[e] = new kG(n)), t) : new kG(n); + } + function bd() { + bd = F, Dw = new aC(vh, 0), Don = new aC("INSIDE_PORT_SIDE_GROUPS", 1), P_ = new aC("GROUP_MODEL_ORDER", 2), I_ = new aC(tin, 3); + } + function q8e(n) { + var e; + return n.b || xhe(n, (e = $ae(n.e, n.a), !e || !An(cK, gf((!e.b && (e.b = new lo((On(), lr), pc, e)), e.b), "qualified")))), n.c; + } + function U8e(n, e) { + var t, i; + for (t = (zn(e, n.length), n.charCodeAt(e)), i = e + 1; i < n.length && (zn(i, n.length), n.charCodeAt(i) == t); ) + ++i; + return i - e; + } + function G8e(n, e) { + (!e && console.groupCollapsed != null ? console.groupCollapsed : console.group ?? console.log).call(console, n); + } + function z8e(n, e, t, i) { + i == n, u(t.b, 68), u(t.b, 68), u(i.b, 68), u(i.b, 68).c.b, XJ(i, e, n); + } + function X8e(n) { + var e, t; + for (e = new C(n.g); e.a < e.c.c.length; ) + u(E(e), 568); + t = new hqn(n.g, $(n.a), n.c), yDe(t), n.g = t.b, n.d = t.a; + } + function JBn(n, e, t) { + var i, r, c; + for (c = new C(t.a); c.a < c.c.c.length; ) + r = u(E(c), 225), i = new LC(u(ee(n.a, r.b), 68)), nn(e.a, i), JBn(n, i, r); + } + function V8e(n, e, t) { + var i, r, c; + return i = u(L(Zu(n.a), e), 89), c = (r = i.c, r || (On(), Yf)), (c.Vh() ? ea(n.b, u(c, 54)) : c) == t ? BA(i) : R4(i, t), c; + } + function uZ(n, e, t) { + e.b = y.Math.max(e.b, -t.a), e.c = y.Math.max(e.c, t.a - n.a), e.d = y.Math.max(e.d, -t.b), e.a = y.Math.max(e.a, t.b - n.b); + } + function oZ(n, e, t) { + this.c = n, this.f = new Z(), this.e = new Ni(), this.j = new sW(), this.n = new sW(), this.b = e, this.g = new Ho(e.c, e.d, e.b, e.a), this.a = t; + } + function vx(n) { + var e, t, i, r; + for (this.a = new ih(), this.d = new ei(), this.e = 0, t = n, i = 0, r = t.length; i < r; ++i) + e = t[i], !this.f && (this.f = e), _N(this, e); + } + function QBn(n) { + ah(), n.length == 0 ? (this.e = 0, this.d = 1, this.a = A(T(ye, 1), _e, 28, 15, [0])) : (this.e = 1, this.d = n.length, this.a = n, J6(this)); + } + function E5(n, e, t) { + njn.call(this), this.a = K(zQn, $tn, 217, (wf(), A(T(Pw, 1), G, 237, 0, [bc, Jc, wc])).length, 0, 1), this.b = n, this.d = e, this.c = t; + } + function W8e(n) { + var e, t, i, r, c, s; + for (s = u(v(n, (W(), st)), 12), U(s, yv, n.i.n.b), e = fh(n.e), i = e, r = 0, c = i.length; r < c; ++r) + t = i[r], Di(t, s); + } + function J8e(n) { + var e, t, i, r, c, s; + for (t = u(v(n, (W(), st)), 12), U(t, yv, n.i.n.b), e = fh(n.g), r = e, c = 0, s = r.length; c < s; ++c) + i = r[c], Yi(i, t); + } + function Q8e(n, e) { + NN(); + var t, i; + for (i = new ie(ce(Cl(n).a.Kc(), new En())); pe(i); ) + if (t = u(fe(i), 18), t.d.i == e || t.c.i == e) + return t; + return null; + } + function YBn(n, e) { + var t, i; + return t = e.qi(n.a), t && (i = Oe(gf((!t.b && (t.b = new lo((On(), lr), pc, t)), t.b), Qe)), i != null) ? i : e.xe(); + } + function Y8e(n, e) { + var t, i; + return t = e.qi(n.a), t && (i = Oe(gf((!t.b && (t.b = new lo((On(), lr), pc, t)), t.b), Qe)), i != null) ? i : e.xe(); + } + function Z8e(n, e) { + var t, i; + return t = Ec(n.a.c.p, e.a.c.p), t != 0 ? t : (i = Ec(n.a.d.i.p, e.a.d.i.p), i != 0 ? i : Ec(e.a.d.p, n.a.d.p)); + } + function n9e(n, e) { + var t, i, r, c; + for (i = 0, r = e.gc(); i < r; ++i) + t = e.Tl(i), D(t, 102) && u(t, 19).Bb & kc && (c = e.Ul(i), c != null && IF(n, u(c, 58))); + } + function ZBn(n, e) { + var t, i, r; + if (nn(mP, n), e.Fc(n), t = u(ee(m_, n), 21), t) + for (r = t.Kc(); r.Ob(); ) + i = u(r.Pb(), 27), qr(mP, i, 0) != -1 || ZBn(i, e); + } + function e9e(n, e, t) { + var i, r; + eF(n.e, e, t, (en(), Wn)), eF(n.i, e, t, Zn), n.a && (r = u(v(e, (W(), st)), 12), i = u(v(t, st), 12), KN(n.g, r, i)); + } + function nRn(n, e, t) { + var i, r, c; + i = e.c.p, c = e.p, n.b[i][c] = new XIn(n, e), t && (n.a[i][c] = new F7n(e), r = u(v(e, (W(), fb)), 10), r && Pn(n.d, r, e)); + } + function t9e(n, e, t) { + var i, r, c, s; + return c = e.j, s = t.j, c != s ? c.g - s.g : (i = n.f[e.p], r = n.f[t.p], i == 0 && r == 0 ? 0 : i == 0 ? -1 : r == 0 ? 1 : bt(i, r)); + } + function i9e() { + var n; + return cP != 0 && (n = Date.now(), n - hQn > 2e3 && (hQn = n, uP = y.setTimeout(_he, 10))), cP++ == 0 ? (ime((az(), sun)), !0) : !1; + } + function r9e(n, e, t) { + var i; + (DQn ? (o8e(n), !0) : LQn || $Qn ? (l4(), !0) : NQn && (l4(), !1)) && (i = new aSn(e), i.b = t, aje(n, i)); + } + function kx(n, e) { + var t; + t = !n.A.Hc((go(), zd)) || n.q == (Li(), Uc), n.u.Hc((Uu(), Fl)) ? t ? XDe(n, e) : UGn(n, e) : n.u.Hc(Ia) && (t ? dDe(n, e) : czn(n, e)); + } + function eRn(n) { + var e; + x(z(n, (He(), R2))) === x((jl(), uO)) && (At(n) ? (e = u(z(At(n), R2), 346), ht(n, R2, e)) : ht(n, R2, E9)); + } + function c9e(n) { + var e, t; + return kt(n.d.i, (cn(), Ev)) ? (e = u(v(n.c.i, Ev), 17), t = u(v(n.d.i, Ev), 17), Ec(e.a, t.a) > 0) : !1; + } + function tRn(n, e, t) { + return new Ho(y.Math.min(n.a, e.a) - t / 2, y.Math.min(n.b, e.b) - t / 2, y.Math.abs(n.a - e.a) + t, y.Math.abs(n.b - e.b) + t); + } + function iRn(n) { + var e; + this.d = new Z(), this.j = new Ni(), this.g = new Ni(), e = n.g.b, this.f = u(v(Hi(e), (cn(), Do)), 88), this.e = $(R(nA(e, Uw))); + } + function rRn(n) { + this.d = new Z(), this.e = new Yl(), this.c = K(ye, _e, 28, (en(), A(T(hr, 1), Tc, 64, 0, [sc, Xn, Zn, ae, Wn])).length, 15, 1), this.b = n; + } + function sZ(n, e, t) { + var i; + switch (i = t[n.g][e], n.g) { + case 1: + case 3: + return new V(0, i); + case 2: + case 4: + return new V(i, 0); + default: + return null; + } + } + function cRn(n, e, t) { + var i, r; + r = u(z7(e.f), 205); + try { + r.rf(n, t), hIn(e.f, r); + } catch (c) { + throw c = It(c), D(c, 103) ? (i = c, M(i)) : M(c); + } + } + function uRn(n, e, t) { + var i, r, c, s, f, h; + return i = null, f = Zen(G4(), e), c = null, f && (r = null, h = Qen(f, t), s = null, h != null && (s = n.qf(f, h)), r = s, c = r), i = c, i; + } + function yx(n, e, t, i) { + var r; + if (r = n.length, e >= r) + return r; + for (e = e > 0 ? e : 0; e < r && !R$((zn(e, n.length), n.charCodeAt(e)), t, i); e++) + ; + return e; + } + function xf(n, e) { + var t, i; + for (i = n.c.length, e.length < i && (e = qE(new Array(i), e)), t = 0; t < i; ++t) + $t(e, t, n.c[t]); + return e.length > i && $t(e, i, null), e; + } + function oRn(n, e) { + var t, i; + for (i = n.a.length, e.length < i && (e = qE(new Array(i), e)), t = 0; t < i; ++t) + $t(e, t, n.a[t]); + return e.length > i && $t(e, i, null), e; + } + function wm(n, e) { + var t, i; + if (++n.j, e != null && (t = (i = n.a.Cb, D(i, 99) ? u(i, 99).th() : null), hCe(e, t))) { + Xp(n.a, 4, t); + return; + } + Xp(n.a, 4, u(e, 129)); + } + function u9e(n) { + var e; + if (n == null) + return null; + if (e = lMe(Bc(n, !0)), e == null) + throw M(new kD("Invalid hexBinary value: '" + n + "'")); + return e; + } + function QT(n, e, t) { + var i; + e.a.length > 0 && (nn(n.b, new SSn(e.a, t)), i = e.a.length, 0 < i ? e.a = qo(e.a, 0, 0) : 0 > i && (e.a += ITn(K(fs, wh, 28, -i, 15, 1)))); + } + function sRn(n, e, t) { + var i, r, c; + if (!t[e.d]) + for (t[e.d] = !0, r = new C(xg(e)); r.a < r.c.c.length; ) + i = u(E(r), 218), c = HT(i, e), sRn(n, c, t); + } + function f1(n, e, t) { + var i, r, c; + return r = u(ee(n.e, e), 400), r ? (c = wV(r, t), DTn(n, r), c) : (i = new UV(n, e, t), Xe(n.e, e, i), rOn(i), null); + } + function o9e(n, e, t, i) { + var r, c, s; + return r = new ml(n.e, 1, 13, (s = e.c, s || (On(), Yf)), (c = t.c, c || (On(), Yf)), h1(n, e), !1), i ? i.nj(r) : i = r, i; + } + function jx() { + return VA(), A(T(vYn, 1), G, 164, 0, [pYn, gYn, mYn, sYn, oYn, fYn, aYn, lYn, hYn, wYn, bYn, dYn, cYn, rYn, uYn, tYn, eYn, iYn, ZQn, YQn, nYn, l_]); + } + function gm(n) { + switch (n.g) { + case 4: + return new V(0, -1); + case 1: + return new V(1, 0); + case 2: + return new V(-1, 0); + default: + return new V(0, 1); + } + } + function Ex(n) { + switch (n.g) { + case 1: + return ui(), us; + case 4: + return ui(), Fr; + case 2: + return ui(), Xr; + case 3: + return ui(), Vf; + } + return ui(), Wf; + } + function s9e(n) { + var e; + switch (e = n.hj(null), e) { + case 10: + return 0; + case 15: + return 1; + case 14: + return 2; + case 11: + return 3; + case 21: + return 4; + } + return -1; + } + function pf() { + pf = F, xn = new g7("PARENTS", 0), mi = new g7("NODES", 1), Sh = new g7("EDGES", 2), _d = new g7("PORTS", 3), C1 = new g7("LABELS", 4); + } + function f9e(n, e, t) { + var i; + switch (i = t.q.getFullYear() - ha + ha, i < 0 && (i = -i), e) { + case 1: + n.a += i; + break; + case 2: + Fh(n, i % 100, 2); + break; + default: + Fh(n, i, e); + } + } + function ge(n, e) { + var t, i; + if (Xb(e, n.b), e >= n.b >> 1) + for (i = n.c, t = n.b; t > e; --t) + i = i.b; + else + for (i = n.a.a, t = 0; t < e; ++t) + i = i.a; + return new lSn(n, e, i); + } + function YT() { + YT = F, o_ = new qz("NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST", 0), Fun = new qz("CORNER_CASES_THAN_SINGLE_SIDE_LAST", 1); + } + function fRn(n) { + this.b = new Z(), this.e = new Z(), this.d = n, this.a = !o4(ut(new Tn(null, new m0(new Of(n.b))), new Y3(new vpn()))).Bd((Wa(), v3)); + } + function hRn(n, e) { + var t, i, r, c; + for (t = 0, r = new C(e.a); r.a < r.c.c.length; ) + i = u(E(r), 10), c = i.o.a + i.d.c + i.d.b + n.j, t = y.Math.max(t, c); + return t; + } + function lRn(n, e) { + var t, i, r; + r = e.d.i, i = r.k, !(i == (Vn(), Xt) || i == Uf) && (t = new ie(ce(Qt(r).a.Kc(), new En())), pe(t) && Xe(n.k, e, u(fe(t), 18))); + } + function h9e(n, e) { + return kl(), bt((n.a.b == 0 ? new V(n.c.e.a, n.c.e.b) : u(g4(n.a), 8)).b, (e.a.b == 0 ? new V(e.c.e.a, e.c.e.b) : u(g4(e.a), 8)).b); + } + function l9e(n, e) { + return kl(), bt((n.a.b == 0 ? new V(n.c.e.a, n.c.e.b) : u(g4(n.a), 8)).a, (e.a.b == 0 ? new V(e.c.e.a, e.c.e.b) : u(g4(e.a), 8)).a); + } + function a9e(n, e) { + return kl(), bt((n.a.b == 0 ? new V(n.b.e.a, n.b.e.b) : u($s(n.a), 8)).a, (e.a.b == 0 ? new V(e.b.e.a, e.b.e.b) : u($s(e.a), 8)).a); + } + function d9e(n, e) { + return kl(), bt((n.a.b == 0 ? new V(n.b.e.a, n.b.e.b) : u($s(n.a), 8)).b, (e.a.b == 0 ? new V(e.b.e.a, e.b.e.b) : u($s(e.a), 8)).b); + } + function Bg() { + Bg = F, Sa = new m7("DISTRIBUTED", 0), eE = new m7("JUSTIFIED", 1), adn = new m7("BEGIN", 2), C9 = new m7(Hm, 3), ddn = new m7("END", 4); + } + function Cx(n, e) { + var t, i, r; + return i = $n(n.Dh(), e), t = e - n.ji(), t < 0 ? (r = n.Ih(i), r >= 0 ? n.Wh(r) : hF(n, i)) : t < 0 ? hF(n, i) : u(i, 69).wk().Bk(n, n.hi(), t); + } + function aRn(n) { + var e, t, i; + for (i = (!n.o && (n.o = new Pu((Mc(), tl), A1, n, 0)), n.o), t = i.c.Kc(); t.e != t.i.gc(); ) + e = u(t.Yj(), 44), e.md(); + return rk(i); + } + function rn(n) { + var e; + if (D(n.a, 4)) { + if (e = cZ(n.a), e == null) + throw M(new Ir(NVn + n.b + "'. " + LVn + (ll(lE), lE.k) + bcn)); + return e; + } else + return n.a; + } + function b9e(n, e) { + var t, i; + if (n.j.length != e.j.length) + return !1; + for (t = 0, i = n.j.length; t < i; t++) + if (!An(n.j[t], e.j[t])) + return !1; + return !0; + } + function ue(n) { + var e; + try { + return e = n.i.Xb(n.e), n.Xj(), n.g = n.e++, e; + } catch (t) { + throw t = It(t), D(t, 77) ? (n.Xj(), M(new nc())) : M(t); + } + } + function Mx(n) { + var e; + try { + return e = n.c.Vi(n.e), n.Xj(), n.g = n.e++, e; + } catch (t) { + throw t = It(t), D(t, 77) ? (n.Xj(), M(new nc())) : M(t); + } + } + function ZT(n) { + var e, t, i, r; + for (r = 0, t = 0, i = n.length; t < i; t++) + e = (zn(t, n.length), n.charCodeAt(t)), e >= 64 && e < 128 && (r = lf(r, Bs(1, e - 64))); + return r; + } + function nA(n, e) { + var t, i; + return i = null, kt(n, (He(), $3)) && (t = u(v(n, $3), 96), t.pf(e) && (i = t.of(e))), i == null && Hi(n) && (i = v(Hi(n), e)), i; + } + function w9e(n, e) { + var t; + return t = u(v(n, (cn(), xr)), 75), yL(e, LZn) ? t ? vo(t) : (t = new Cu(), U(n, xr, t)) : t && U(n, xr, null), t; + } + function C5() { + C5 = F, aon = (He(), qan), g_ = Ean, DYn = x2, lon = M1, xYn = (aA(), Uun), $Yn = Hun, FYn = zun, NYn = _un, LYn = (Q$(), son), w_ = PYn, hon = IYn, pP = OYn; + } + function eA(n) { + switch ($z(), this.c = new Z(), this.d = n, n.g) { + case 0: + case 2: + this.a = qW(Oon), this.b = St; + break; + case 3: + case 1: + this.a = Oon, this.b = ai; + } + } + function g9e(n) { + var e; + Ep(u(v(n, (cn(), Ht)), 101)) && (e = n.b, nHn((Ln(0, e.c.length), u(e.c[0], 30))), nHn(u(sn(e, e.c.length - 1), 30))); + } + function p9e(n, e) { + e.Ug("Self-Loop post-processing", 1), Ut(ut(ut(rc(new Tn(null, new In(n.b, 16)), new s2n()), new f2n()), new h2n()), new l2n()), e.Vg(); + } + function dRn(n, e, t) { + var i, r; + if (n.c) + eu(n.c, n.c.i + e), tu(n.c, n.c.j + t); + else + for (r = new C(n.b); r.a < r.c.c.length; ) + i = u(E(r), 163), dRn(i, e, t); + } + function m9e(n) { + var e; + if (n == null) + return null; + if (e = iLe(Bc(n, !0)), e == null) + throw M(new kD("Invalid base64Binary value: '" + n + "'")); + return e; + } + function Zo(n, e) { + var t; + t = n.fd(e); + try { + return t.Pb(); + } catch (i) { + throw i = It(i), D(i, 112) ? M(new Pr("Can't get element " + e)) : M(i); + } + } + function bRn(n, e) { + var t, i, r; + for (t = n.o, r = u(u(ot(n.r, e), 21), 87).Kc(); r.Ob(); ) + i = u(r.Pb(), 117), i.e.a = y7e(i, t.a), i.e.b = t.b * $(R(i.b.of(bP))); + } + function v9e(n, e) { + var t, i, r; + for (r = new zc(e.gc()), i = e.Kc(); i.Ob(); ) + t = u(i.Pb(), 293), t.c == t.f ? jm(n, t, t.c) : Hje(n, t) || Kn(r.c, t); + return r; + } + function wRn(n) { + var e; + return e = new x1(), e.a += "n", n.k != (Vn(), Xt) && Re(Re((e.a += "(", e), SL(n.k).toLowerCase()), ")"), Re((e.a += "_", e), qk(n)), e.a; + } + function k9e(n, e) { + var t, i, r, c; + return r = n.k, t = $(R(v(n, (W(), hb)))), c = e.k, i = $(R(v(e, hb))), c != (Vn(), ni) ? -1 : r != ni ? 1 : t == i ? 0 : t < i ? -1 : 1; + } + function y9e(n, e) { + var t, i; + return t = u(u(ee(n.g, e.a), 42).a, 68), i = u(u(ee(n.g, e.b), 42).a, 68), J1(e.a, e.b) - J1(e.a, LX(t.b)) - J1(e.b, LX(i.b)); + } + function gRn(n, e) { + var t; + switch (t = u(Mr(n.b, e), 127).n, e.g) { + case 1: + n.t >= 0 && (t.d = n.t); + break; + case 3: + n.t >= 0 && (t.a = n.t); + } + n.C && (t.b = n.C.b, t.c = n.C.c); + } + function M5() { + M5 = F, Nhn = new l7(Crn, 0), KH = new l7(sR, 1), _H = new l7("LINEAR_SEGMENTS", 2), W8 = new l7("BRANDES_KOEPF", 3), J8 = new l7(sVn, 4); + } + function T5() { + T5 = F, fj = new hC(eS, 0), wP = new hC(HB, 1), gP = new hC(qB, 2), hj = new hC(UB, 3), fj.a = !1, wP.a = !0, gP.a = !1, hj.a = !0; + } + function Vp() { + Vp = F, uj = new fC(eS, 0), cj = new fC(HB, 1), oj = new fC(qB, 2), sj = new fC(UB, 3), uj.a = !1, cj.a = !0, oj.a = !1, sj.a = !0; + } + function Wp(n, e, t, i) { + var r; + return t >= 0 ? n.Sh(e, t, i) : (n.Ph() && (i = (r = n.Fh(), r >= 0 ? n.Ah(i) : n.Ph().Th(n, -1 - r, null, i))), n.Ch(e, t, i)); + } + function fZ(n, e) { + switch (e) { + case 7: + !n.e && (n.e = new Nn(Wt, n, 7, 4)), me(n.e); + return; + case 8: + !n.d && (n.d = new Nn(Wt, n, 8, 5)), me(n.d); + return; + } + JY(n, e); + } + function ht(n, e, t) { + return t == null ? (!n.o && (n.o = new Pu((Mc(), tl), A1, n, 0)), VT(n.o, e)) : (!n.o && (n.o = new Pu((Mc(), tl), A1, n, 0)), zk(n.o, e, t)), n; + } + function pRn(n, e) { + Dn(); + var t, i, r, c; + for (t = n, c = e, D(n, 21) && !D(e, 21) && (t = e, c = n), r = t.Kc(); r.Ob(); ) + if (i = r.Pb(), c.Hc(i)) + return !1; + return !0; + } + function j9e(n, e, t, i) { + if (e.a < i.a) + return !0; + if (e.a == i.a) { + if (e.b < i.b) + return !0; + if (e.b == i.b && n.b > t.b) + return !0; + } + return !1; + } + function Tx(n, e) { + return Pi(n) ? !!iQn[e] : n.Sm ? !!n.Sm[e] : xb(n) ? !!tQn[e] : $b(n) ? !!eQn[e] : !1; + } + function E9e(n) { + var e; + e = n.a; + do + e = u(fe(new ie(ce(Ei(e).a.Kc(), new En()))), 18).c.i, e.k == (Vn(), Ti) && n.b.Fc(e); + while (e.k == (Vn(), Ti)); + n.b = Qo(n.b); + } + function mRn(n, e) { + var t, i, r; + for (r = n, i = new ie(ce(Ei(e).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 18), t.c.i.c && (r = y.Math.max(r, t.c.i.c.p)); + return r; + } + function C9e(n, e) { + var t, i, r; + for (r = 0, i = u(u(ot(n.r, e), 21), 87).Kc(); i.Ob(); ) + t = u(i.Pb(), 117), r += t.d.d + t.b.Mf().b + t.d.a, i.Ob() && (r += n.w); + return r; + } + function M9e(n, e) { + var t, i, r; + for (r = 0, i = u(u(ot(n.r, e), 21), 87).Kc(); i.Ob(); ) + t = u(i.Pb(), 117), r += t.d.b + t.b.Mf().a + t.d.c, i.Ob() && (r += n.w); + return r; + } + function vRn(n) { + var e, t, i, r; + if (i = 0, r = dw(n), r.c.length == 0) + return 1; + for (t = new C(r); t.a < t.c.c.length; ) + e = u(E(t), 27), i += vRn(e); + return i; + } + function T9e(n) { + var e, t, i; + for (i = n.c.a, n.p = (Se(i), new Ru(i)), t = new C(i); t.a < t.c.c.length; ) + e = u(E(t), 10), e.p = fEe(e).a; + Dn(), Zt(n.p, new Vpn()); + } + function A9e(n, e, t) { + var i, r, c, s; + return i = n.dd(e), i != -1 && (n.Pj() ? (c = n.Qj(), s = tM(n, i), r = n.Ij(4, s, null, i, c), t ? t.nj(r) : t = r) : tM(n, i)), t; + } + function rr(n, e, t) { + var i, r, c, s; + return i = n.dd(e), i != -1 && (n.Pj() ? (c = n.Qj(), s = Jp(n, i), r = n.Ij(4, s, null, i, c), t ? t.nj(r) : t = r) : Jp(n, i)), t; + } + function S9e(n, e, t, i) { + var r, c, s; + t.Xh(e) && (dr(), a$(e) ? (r = u(t.Mh(e), 160), n9e(n, r)) : (c = (s = e, s ? u(i, 54).gi(s) : null), c && Ife(t.Mh(e), c))); + } + function tA(n, e, t, i) { + var r, c, s; + return c = $n(n.Dh(), e), r = e - n.ji(), r < 0 ? (s = n.Ih(c), s >= 0 ? n.Lh(s, t, !0) : q0(n, c, t)) : u(c, 69).wk().yk(n, n.hi(), r, t, i); + } + function P9e(n, e, t, i) { + var r, c; + c = e.pf((He(), K2)) ? u(e.of(K2), 21) : n.j, r = d5e(c), r != (VA(), l_) && (t && !tZ(r) || bnn(aMe(n, r, i), e)); + } + function I9e(n) { + switch (n.g) { + case 1: + return $0(), rj; + case 3: + return $0(), ij; + case 2: + return $0(), d_; + case 4: + return $0(), a_; + default: + return null; + } + } + function O9e(n, e, t) { + if (n.e) + switch (n.b) { + case 1: + yge(n.c, e, t); + break; + case 0: + jge(n.c, e, t); + } + else + KDn(n.c, e, t); + n.a[e.p][t.p] = n.c.i, n.a[t.p][e.p] = n.c.e; + } + function kRn(n) { + var e, t; + if (n == null) + return null; + for (t = K(Jh, J, 199, n.length, 0, 2), e = 0; e < t.length; e++) + t[e] = u(P3e(n[e], n[e].length), 199); + return t; + } + function iA(n) { + var e; + if (W$(n)) + return aM(n), n.ul() && (e = L5(n.e, n.b, n.c, n.a, n.j), n.j = e), n.g = n.a, ++n.a, ++n.c, n.i = 0, n.j; + throw M(new nc()); + } + function D9e(n, e) { + var t, i, r, c; + return c = n.o, t = n.p, c < t ? c *= c : t *= t, i = c + t, c = e.o, t = e.p, c < t ? c *= c : t *= t, r = c + t, i < r ? -1 : i == r ? 0 : 1; + } + function h1(n, e) { + var t, i, r; + if (r = eKn(n, e), r >= 0) + return r; + if (n.ol()) { + for (i = 0; i < n.i; ++i) + if (t = n.pl(u(n.g[i], 58)), x(t) === x(e)) + return i; + } + return -1; + } + function Rg(n, e, t) { + var i, r; + if (r = n.gc(), e >= r) + throw M(new _b(e, r)); + if (n.Si() && (i = n.dd(t), i >= 0 && i != e)) + throw M(new Gn(Vy)); + return n.Xi(e, t); + } + function hZ(n, e) { + if (this.a = u(Se(n), 253), this.b = u(Se(e), 253), n.Ed(e) > 0 || n == (dD(), _K) || e == (bD(), HK)) + throw M(new Gn("Invalid range: " + qDn(n, e))); + } + function yRn(n) { + var e, t; + for (this.b = new Z(), this.c = n, this.a = !1, t = new C(n.a); t.a < t.c.c.length; ) + e = u(E(t), 10), this.a = this.a | e.k == (Vn(), Xt); + } + function L9e(n, e) { + var t, i, r; + for (t = l0(new Xa(), n), r = new C(e); r.a < r.c.c.length; ) + i = u(E(r), 125), qs(Ls(Ds(Ns(Os(new hs(), 0), 0), t), i)); + return t; + } + function jRn(n, e, t) { + t.Ug("Compound graph preprocessor", 1), n.a = new M0(), KGn(n, e, null), AIe(n, e), QMe(n), U(e, (W(), efn), n.a), n.a = null, Ku(n.b), t.Vg(); + } + function ERn(n, e, t) { + var i, r, c; + for (r = new ie(ce((e ? Ei(n) : Qt(n)).a.Kc(), new En())); pe(r); ) + i = u(fe(r), 18), c = e ? i.c.i : i.d.i, c.k == (Vn(), Sc) && xi(c, t); + } + function N9e(n, e) { + var t, i, r; + for (e.Ug("Untreeify", 1), t = u(v(n, (pt(), yln)), 15), r = t.Kc(); r.Ob(); ) + i = u(r.Pb(), 65), Fe(i.b.d, i), Fe(i.c.b, i); + e.Vg(); + } + function $9e(n) { + var e, t, i; + for (i = u(ot(n.a, (sw(), zP)), 15).Kc(); i.Ob(); ) + t = u(i.Pb(), 105), e = EZ(t), C4(n, t, e[0], (L0(), ub), 0), C4(n, t, e[1], ob, 1); + } + function x9e(n) { + var e, t, i; + for (i = u(ot(n.a, (sw(), XP)), 15).Kc(); i.Ob(); ) + t = u(i.Pb(), 105), e = EZ(t), C4(n, t, e[0], (L0(), ub), 0), C4(n, t, e[1], ob, 1); + } + function uw() { + uw = F, TI = new wC(vh, 0), BH = new wC("PORT_POSITION", 1), P2 = new wC("NODE_SIZE_WHERE_SPACE_PERMITS", 2), S2 = new wC("NODE_SIZE", 3); + } + function rA() { + rA = F, Tq = new cL("INTERACTIVE_NODE_REORDERER", 0), Sq = new cL("MIN_SIZE_PRE_PROCESSOR", 1), Aq = new cL("MIN_SIZE_POST_PROCESSOR", 2); + } + function Bh() { + Bh = F, Vq = new v6("AUTOMATIC", 0), qj = new v6(s3, 1), Uj = new v6(f3, 2), eO = new v6("TOP", 3), ZI = new v6(Ftn, 4), nO = new v6(Hm, 5); + } + function lZ(n, e, t, i) { + Tm(); + var r, c; + for (r = 0, c = 0; c < t; c++) + r = Zi(nr(ki(e[c], vr), ki(i, vr)), ki(Ae(r), vr)), n[c] = Ae(r), r = U1(r, 32); + return Ae(r); + } + function aZ(n, e, t) { + var i, r; + for (r = 0, i = 0; i < h_; i++) + r = y.Math.max(r, Z$(n.a[e.g][i], t)); + return e == (wf(), Jc) && n.b && (r = y.Math.max(r, n.b.b)), r; + } + function cA(n, e) { + var t, i; + if (rV(e > 0), (e & -e) == e) + return gi(e * eo(n, 31) * 4656612873077393e-25); + do + t = eo(n, 31), i = t % e; + while (t - i + (e - 1) < 0); + return gi(i); + } + function F9e(n, e, t) { + switch (t.g) { + case 1: + n.a = e.a / 2, n.b = 0; + break; + case 2: + n.a = e.a, n.b = e.b / 2; + break; + case 3: + n.a = e.a / 2, n.b = e.b; + break; + case 4: + n.a = 0, n.b = e.b / 2; + } + } + function _k(n, e, t, i) { + var r, c; + for (r = e; r < n.c.length; r++) + if (c = (Ln(r, n.c.length), u(n.c[r], 12)), t.Mb(c)) + Kn(i.c, c); + else + return r; + return n.c.length; + } + function Ax(n) { + switch (n.g) { + case 0: + return null; + case 1: + return new Cxn(); + case 2: + return new uz(); + default: + throw M(new Gn(GR + (n.f != null ? n.f : "" + n.g))); + } + } + function Hk(n, e, t) { + var i, r; + for (Vve(n, e - n.s, t - n.t), r = new C(n.n); r.a < r.c.c.length; ) + i = u(E(r), 209), ffe(i, i.e + e - n.s), hfe(i, i.f + t - n.t); + n.s = e, n.t = t; + } + function B9e(n) { + var e, t, i, r, c; + for (t = 0, r = new C(n.a); r.a < r.c.c.length; ) + i = u(E(r), 125), i.d = t++; + return e = Xye(n), c = null, e.c.length > 1 && (c = L9e(n, e)), c; + } + function CRn(n) { + var e; + return e = $(R(z(n, (He(), Qj)))) * y.Math.sqrt((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a).i), new V(e, e / $(R(z(n, rO)))); + } + function Sx(n) { + var e; + return n.f && n.f.Vh() && (e = u(n.f, 54), n.f = u(ea(n, e), 84), n.f != e && n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 9, 8, e, n.f))), n.f; + } + function Px(n) { + var e; + return n.i && n.i.Vh() && (e = u(n.i, 54), n.i = u(ea(n, e), 84), n.i != e && n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 9, 7, e, n.i))), n.i; + } + function br(n) { + var e; + return n.b && n.b.Db & 64 && (e = n.b, n.b = u(ea(n, e), 19), n.b != e && n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 9, 21, e, n.b))), n.b; + } + function uA(n, e) { + var t, i, r; + n.d == null ? (++n.e, ++n.f) : (i = e.Bi(), uTe(n, n.f + 1), r = (i & et) % n.d.length, t = n.d[r], !t && (t = n.d[r] = n.dk()), t.Fc(e), ++n.f); + } + function dZ(n, e, t) { + var i; + return e.tk() ? !1 : e.Ik() != -2 ? (i = e.ik(), i == null ? t == null : rt(i, t)) : e.qk() == n.e.Dh() && t == null; + } + function oA() { + var n; + Co(16, $zn), n = sxn(16), this.b = K(UK, Cy, 303, n, 0, 1), this.c = K(UK, Cy, 303, n, 0, 1), this.a = null, this.e = null, this.i = 0, this.f = n - 1, this.g = 0; + } + function Tl(n) { + vV.call(this), this.k = (Vn(), Xt), this.j = (Co(6, vw), new zc(6)), this.b = (Co(2, vw), new zc(2)), this.d = new sD(), this.f = new nz(), this.a = n; + } + function R9e(n) { + var e, t; + n.c.length <= 1 || (e = Sqn(n, (en(), ae)), w_n(n, u(e.a, 17).a, u(e.b, 17).a), t = Sqn(n, Wn), w_n(n, u(t.a, 17).a, u(t.b, 17).a)); + } + function K9e(n, e, t) { + var i, r; + for (r = n.a.b, i = r.c.length; i < t; i++) + w0(r, r.c.length, new Nc(n.a)); + xi(e, (Ln(t - 1, r.c.length), u(r.c[t - 1], 30))), n.b[e.p] = t; + } + function MRn(n, e) { + var t, i, r; + for (n.b[e.g] = 1, i = ge(e.d, 0); i.b != i.d.c; ) + t = u(be(i), 65), r = t.c, n.b[r.g] == 1 ? Fe(n.a, t) : n.b[r.g] == 2 ? n.b[r.g] = 1 : MRn(n, r); + } + function TRn(n, e, t, i) { + var r, c, s; + for (r = u(ot(i ? n.a : n.b, e), 21), s = r.Kc(); s.Ob(); ) + if (c = u(s.Pb(), 27), LA(n, t, c)) + return !0; + return !1; + } + function Ix(n) { + var e, t; + for (t = new ne(n); t.e != t.i.gc(); ) + if (e = u(ue(t), 89), e.e || (!e.d && (e.d = new ii(Er, e, 1)), e.d).i != 0) + return !0; + return !1; + } + function Ox(n) { + var e, t; + for (t = new ne(n); t.e != t.i.gc(); ) + if (e = u(ue(t), 89), e.e || (!e.d && (e.d = new ii(Er, e, 1)), e.d).i != 0) + return !0; + return !1; + } + function _9e(n) { + var e, t, i; + for (e = 0, i = new C(n.c.a); i.a < i.c.c.length; ) + t = u(E(i), 10), e += wl(new ie(ce(Qt(t).a.Kc(), new En()))); + return e / n.c.a.c.length; + } + function Dx() { + Dx = F, ean = (EF(), Q1n), nan = new h0(8), new $i((He(), M1), nan), new $i(Ud, 8), hue = W1n, Y1n = tue, Z1n = iue, fue = new $i(zj, (_n(), !1)); + } + function H9e(n, e, t) { + var i; + t.Ug("Shrinking tree compaction", 1), on(un(v(e, (W4(), O8)))) ? (Jme(n, e.f), QNn(e.f, (i = e.c, i))) : QNn(e.f, e.c), t.Vg(); + } + function bZ(n, e, t, i) { + switch (e) { + case 7: + return !n.e && (n.e = new Nn(Wt, n, 7, 4)), n.e; + case 8: + return !n.d && (n.d = new Nn(Wt, n, 8, 5)), n.d; + } + return FY(n, e, t, i); + } + function Lx(n) { + var e; + return n.a && n.a.Vh() && (e = u(n.a, 54), n.a = u(ea(n, e), 142), n.a != e && n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 9, 5, e, n.a))), n.a; + } + function wd(n) { + return n < 48 || n > 102 ? -1 : n <= 57 ? n - 48 : n < 65 ? -1 : n <= 70 ? n - 65 + 10 : n < 97 ? -1 : n - 97 + 10; + } + function Nx(n, e) { + if (n == null) + throw M(new fp("null key in entry: null=" + e)); + if (e == null) + throw M(new fp("null value in entry: " + n + "=null")); + } + function q9e(n, e) { + for (var t, i; n.Ob(); ) + if (!e.Ob() || (t = n.Pb(), i = e.Pb(), !(x(t) === x(i) || t != null && rt(t, i)))) + return !1; + return !e.Ob(); + } + function ARn(n, e) { + var t; + return t = A(T(Oi, 1), Ar, 28, 15, [Z$(n.a[0], e), Z$(n.a[1], e), Z$(n.a[2], e)]), n.d && (t[0] = y.Math.max(t[0], t[2]), t[2] = t[0]), t; + } + function SRn(n, e) { + var t; + return t = A(T(Oi, 1), Ar, 28, 15, [$T(n.a[0], e), $T(n.a[1], e), $T(n.a[2], e)]), n.d && (t[0] = y.Math.max(t[0], t[2]), t[2] = t[0]), t; + } + function wZ(n, e, t) { + Ep(u(v(e, (cn(), Ht)), 101)) || (PJ(n, e, l1(e, t)), PJ(n, e, l1(e, (en(), ae))), PJ(n, e, l1(e, Xn)), Dn(), Zt(e.j, new N7n(n))); + } + function PRn(n) { + var e, t; + for (n.c || sOe(n), t = new Cu(), e = new C(n.a), E(e); e.a < e.c.c.length; ) + Fe(t, u(E(e), 418).a); + return oe(t.b != 0), Xo(t, t.c.b), t; + } + function U9e(n, e, t) { + var i, r, c, s, f; + for (f = n.r + e, n.r += e, n.d += t, i = t / n.n.c.length, r = 0, s = new C(n.n); s.a < s.c.c.length; ) + c = u(E(s), 209), iMe(c, f, i, r), ++r; + } + function G9e(n) { + var e, t, i; + for (n.b.a.$b(), n.a = K(aP, Bn, 60, n.c.c.a.b.c.length, 0, 1), e = 0, i = new C(n.c.c.a.b); i.a < i.c.c.length; ) + t = u(E(i), 60), t.f = e++; + } + function z9e(n) { + var e, t, i; + for (n.b.a.$b(), n.a = K(M_, Bn, 86, n.c.a.a.b.c.length, 0, 1), e = 0, i = new C(n.c.a.a.b); i.a < i.c.c.length; ) + t = u(E(i), 86), t.i = e++; + } + function IRn(n) { + var e; + if (e = x6e(n), !pe(n)) + throw M(new Pr("position (0) must be less than the number of elements that remained (" + e + ")")); + return fe(n); + } + function X9e(n, e) { + var t; + return n.a || (t = K(Oi, Ar, 28, 0, 15, 1), lg(n.b.a, new k9n(t)), Pyn(t, I$n(mE.prototype.Me, mE, [])), n.a = new oSn(t, n.d)), WM(n.a, e); + } + function ORn(n, e, t) { + var i; + try { + return Kg(n, e + n.j, t + n.k); + } catch (r) { + throw r = It(r), D(r, 77) ? (i = r, M(new Pr(i.g + iS + e + cr + t + ")."))) : M(r); + } + } + function V9e(n, e, t) { + var i; + try { + return NRn(n, e + n.j, t + n.k); + } catch (r) { + throw r = It(r), D(r, 77) ? (i = r, M(new Pr(i.g + iS + e + cr + t + ")."))) : M(r); + } + } + function W9e(n, e, t) { + var i; + try { + return $Rn(n, e + n.j, t + n.k); + } catch (r) { + throw r = It(r), D(r, 77) ? (i = r, M(new Pr(i.g + iS + e + cr + t + ")."))) : M(r); + } + } + function DRn(n) { + switch (n.g) { + case 1: + return en(), Wn; + case 4: + return en(), Xn; + case 3: + return en(), Zn; + case 2: + return en(), ae; + default: + return en(), sc; + } + } + function J9e(n, e, t) { + e.k == (Vn(), Xt) && t.k == Ti && (n.d = ix(e, (en(), ae)), n.b = ix(e, Xn)), t.k == Xt && e.k == Ti && (n.d = ix(t, (en(), Xn)), n.b = ix(t, ae)); + } + function $x(n, e) { + var t, i, r; + for (r = uc(n, e), i = r.Kc(); i.Ob(); ) + if (t = u(i.Pb(), 12), v(t, (W(), Gu)) != null || D6(new Of(t.b))) + return !0; + return !1; + } + function Q9e(n, e, t) { + t.Ug("Linear segments node placement", 1), n.b = u(v(e, (W(), E2)), 312), FLe(n, e), dIe(n, e), OIe(n, e), bLe(n), n.a = null, n.b = null, t.Vg(); + } + function gZ(n, e) { + return eu(e, n.e + n.d + (n.c.c.length == 0 ? 0 : n.b)), tu(e, n.f), n.a = y.Math.max(n.a, e.f), n.d += e.g + (n.c.c.length == 0 ? 0 : n.b), nn(n.c, e), !0; + } + function Y9e(n, e, t) { + var i, r, c, s; + for (s = 0, i = t / n.a.c.length, c = new C(n.a); c.a < c.c.c.length; ) + r = u(E(c), 172), Hk(r, r.s, r.t + s * i), U9e(r, n.d - r.r + e, i), ++s; + } + function Z9e(n, e) { + var t, i, r, c, s, f; + for (r = e.length - 1, s = 0, f = 0, i = 0; i <= r; i++) + c = e[i], t = pje(r, i) * mY(1 - n, r - i) * mY(n, i), s += c.a * t, f += c.b * t; + return new V(s, f); + } + function LRn(n, e) { + var t, i, r, c, s; + for (t = e.gc(), n._i(n.i + t), c = e.Kc(), s = n.i, n.i += t, i = s; i < n.i; ++i) + r = c.Pb(), I6(n, i, n.Zi(i, r)), n.Mi(i, r), n.Ni(); + return t != 0; + } + function n7e(n, e, t) { + var i, r, c; + return n.Pj() ? (i = n.Ej(), c = n.Qj(), ++n.j, n.qj(i, n.Zi(i, e)), r = n.Ij(3, null, e, i, c), t ? t.nj(r) : t = r) : IAn(n, n.Ej(), e), t; + } + function e7e(n, e, t) { + var i, r, c; + return i = u(L(Pc(n.a), e), 89), c = (r = i.c, D(r, 90) ? u(r, 29) : (On(), Is)), (c.Db & 64 ? ea(n.b, c) : c) == t ? BA(i) : R4(i, t), c; + } + function t7e(n) { + var e; + return n == null ? null : new H1((e = Bc(n, !0), e.length > 0 && (zn(0, e.length), e.charCodeAt(0) == 43) ? (zn(1, e.length + 1), e.substr(1)) : e)); + } + function i7e(n) { + var e; + return n == null ? null : new H1((e = Bc(n, !0), e.length > 0 && (zn(0, e.length), e.charCodeAt(0) == 43) ? (zn(1, e.length + 1), e.substr(1)) : e)); + } + function pZ(n, e, t, i, r, c, s, f) { + var h, l; + i && (h = i.a[0], h && pZ(n, e, t, h, r, c, s, f), qx(n, t, i.d, r, c, s, f) && e.Fc(i), l = i.a[1], l && pZ(n, e, t, l, r, c, s, f)); + } + function Kg(n, e, t) { + try { + return s0(C$(n, e, t), 1); + } catch (i) { + throw i = It(i), D(i, 333) ? M(new Pr(GB + n.o + "*" + n.p + zB + e + cr + t + XB)) : M(i); + } + } + function NRn(n, e, t) { + try { + return s0(C$(n, e, t), 0); + } catch (i) { + throw i = It(i), D(i, 333) ? M(new Pr(GB + n.o + "*" + n.p + zB + e + cr + t + XB)) : M(i); + } + } + function $Rn(n, e, t) { + try { + return s0(C$(n, e, t), 2); + } catch (i) { + throw i = It(i), D(i, 333) ? M(new Pr(GB + n.o + "*" + n.p + zB + e + cr + t + XB)) : M(i); + } + } + function xRn(n, e) { + if (n.g == -1) + throw M(new Eu()); + n.Xj(); + try { + n.d.hd(n.g, e), n.f = n.d.j; + } catch (t) { + throw t = It(t), D(t, 77) ? M(new Bo()) : M(t); + } + } + function r7e(n) { + var e, t, i, r, c; + for (i = new C(n.b); i.a < i.c.c.length; ) + for (t = u(E(i), 30), e = 0, c = new C(t.a); c.a < c.c.c.length; ) + r = u(E(c), 10), r.p = e++; + } + function A5(n, e) { + var t, i, r, c; + for (c = n.gc(), e.length < c && (e = qE(new Array(c), e)), r = e, i = n.Kc(), t = 0; t < c; ++t) + $t(r, t, i.Pb()); + return e.length > c && $t(e, c, null), e; + } + function c7e(n, e) { + var t, i; + if (i = n.gc(), e == null) { + for (t = 0; t < i; t++) + if (n.Xb(t) == null) + return t; + } else + for (t = 0; t < i; t++) + if (rt(e, n.Xb(t))) + return t; + return -1; + } + function xx(n, e) { + var t, i, r; + return t = e.ld(), r = e.md(), i = n.xc(t), !(!(x(r) === x(i) || r != null && rt(r, i)) || i == null && !n._b(t)); + } + function u7e(n, e) { + var t, i, r; + return e <= 22 ? (t = n.l & (1 << e) - 1, i = r = 0) : e <= 44 ? (t = n.l, i = n.m & (1 << e - 22) - 1, r = 0) : (t = n.l, i = n.m, r = n.h & (1 << e - 44) - 1), Yc(t, i, r); + } + function o7e(n, e) { + switch (e.g) { + case 1: + return n.f.n.d + n.t; + case 3: + return n.f.n.a + n.t; + case 2: + return n.f.n.c + n.s; + case 4: + return n.f.n.b + n.s; + default: + return 0; + } + } + function s7e(n, e) { + var t, i; + switch (i = e.c, t = e.a, n.b.g) { + case 0: + t.d = n.e - i.a - i.d; + break; + case 1: + t.d += n.e; + break; + case 2: + t.c = n.e - i.a - i.d; + break; + case 3: + t.c = n.e + i.d; + } + } + function mZ(n, e, t, i) { + var r, c; + this.a = e, this.c = i, r = n.a, zse(this, new V(-r.c, -r.d)), tt(this.b, t), c = i / 2, e.a ? L6(this.b, 0, c) : L6(this.b, c, 0), nn(n.c, this); + } + function FRn(n, e, t, i) { + var r; + this.c = n, this.d = e, r = new Ct(), xt(r, t, r.c.b, r.c), this.a = r, this.b = u(v(i, (lc(), kb)), 88), this.e = $(R(v(i, Lln))), Ezn(this); + } + function sA() { + sA = F, Eq = new vC(vh, 0), i1n = new vC(WXn, 1), r1n = new vC("EDGE_LENGTH_BY_POSITION", 2), t1n = new vC("CROSSING_MINIMIZATION_BY_POSITION", 3); + } + function Fx(n, e) { + var t, i; + if (t = u(Lg(n.g, e), 27), t) + return t; + if (i = u(Lg(n.j, e), 123), i) + return i; + throw M(new nh("Referenced shape does not exist: " + e)); + } + function vZ(n, e) { + var t, i; + if (D(e, 253)) { + i = u(e, 253); + try { + return t = n.Ed(i), t == 0; + } catch (r) { + if (r = It(r), D(r, 212)) + return !1; + throw M(r); + } + } + return !1; + } + function f7e(n, e) { + if (n.c == e) + return n.d; + if (n.d == e) + return n.c; + throw M(new Gn("Node 'one' must be either source or target of edge 'edge'.")); + } + function h7e(n, e) { + if (n.c.i == e) + return n.d.i; + if (n.d.i == e) + return n.c.i; + throw M(new Gn("Node " + e + " is neither source nor target of edge " + n)); + } + function l7e(n, e, t) { + t.Ug("Self-Loop ordering", 1), Ut(_r(ut(ut(rc(new Tn(null, new In(e.b, 16)), new i2n()), new r2n()), new c2n()), new u2n()), new u7n(n)), t.Vg(); + } + function a7e(n, e) { + var t; + switch (e.g) { + case 2: + case 4: + t = n.a, n.c.d.n.b < t.d.n.b && (t = n.c), Wl(n, e, ($f(), B_), t); + break; + case 1: + case 3: + Wl(n, e, ($f(), j3), null); + } + } + function Bx(n, e, t, i, r, c) { + var s, f, h, l, a; + for (s = ake(e, t, c), f = t == (en(), Xn) || t == Wn ? -1 : 1, l = n[t.g], a = 0; a < l.length; a++) + h = l[a], h > 0 && (h += r), l[a] = s, s += f * (h + i); + } + function BRn(n) { + var e, t, i; + for (i = n.f, n.n = K(Oi, Ar, 28, i, 15, 1), n.d = K(Oi, Ar, 28, i, 15, 1), e = 0; e < i; e++) + t = u(sn(n.c.b, e), 30), n.n[e] = hRn(n, t), n.d[e] = eqn(n, t); + } + function Rx(n, e) { + var t, i, r; + for (r = 0, i = 2; i < e; i <<= 1) + n.Db & i && ++r; + if (r == 0) { + for (t = e <<= 1; t <= 128; t <<= 1) + if (n.Db & t) + return 0; + return -1; + } else + return r; + } + function RRn(n, e) { + var t, i, r, c, s; + for (s = ru(n.e.Dh(), e), c = null, t = u(n.g, 124), r = 0; r < n.i; ++r) + i = t[r], s.am(i.Lk()) && (!c && (c = new EE()), ve(c, i)); + c && uzn(n, c); + } + function KRn(n) { + var e, t, i; + if (!n) + return null; + if (n.dc()) + return ""; + for (i = new ql(), t = n.Kc(); t.Ob(); ) + e = t.Pb(), Cr(i, Oe(e)), i.a += " "; + return bL(i, i.a.length - 1); + } + function _Rn(n, e) { + var t = new Array(e), i; + switch (n) { + case 14: + case 15: + i = 0; + break; + case 16: + i = !1; + break; + default: + return t; + } + for (var r = 0; r < e; ++r) + t[r] = i; + return t; + } + function K0(n) { + var e, t, i; + for (t = new C(n.a.b); t.a < t.c.c.length; ) + e = u(E(t), 60), e.c.$b(); + hl(n.d) ? i = n.a.c : i = n.a.d, nu(i, new O9n(n)), n.c.df(n), vqn(n); + } + function HRn(n) { + var e, t, i, r; + for (t = new C(n.e.c); t.a < t.c.c.length; ) { + for (e = u(E(t), 290), r = new C(e.b); r.a < r.c.c.length; ) + i = u(E(r), 454), Uen(i); + W_n(e); + } + } + function fA(n) { + var e, t, i, r, c; + for (i = 0, c = 0, r = 0, t = new C(n.a); t.a < t.c.c.length; ) + e = u(E(t), 172), c = y.Math.max(c, e.r), i += e.d + (r > 0 ? n.c : 0), ++r; + n.b = i, n.d = c; + } + function qRn(n, e) { + var t; + return t = A(T(Oi, 1), Ar, 28, 15, [aZ(n, (wf(), bc), e), aZ(n, Jc, e), aZ(n, wc, e)]), n.f && (t[0] = y.Math.max(t[0], t[2]), t[2] = t[0]), t; + } + function d7e(n, e, t) { + var i; + try { + xA(n, e + n.j, t + n.k, !1, !0); + } catch (r) { + throw r = It(r), D(r, 77) ? (i = r, M(new Pr(i.g + iS + e + cr + t + ")."))) : M(r); + } + } + function b7e(n, e, t) { + var i; + try { + xA(n, e + n.j, t + n.k, !0, !1); + } catch (r) { + throw r = It(r), D(r, 77) ? (i = r, M(new Pr(i.g + iS + e + cr + t + ")."))) : M(r); + } + } + function URn(n) { + var e; + kt(n, (cn(), db)) && (e = u(v(n, db), 21), e.Hc((aw(), Qs)) ? (e.Mc(Qs), e.Fc(Ys)) : e.Hc(Ys) && (e.Mc(Ys), e.Fc(Qs))); + } + function GRn(n) { + var e; + kt(n, (cn(), db)) && (e = u(v(n, db), 21), e.Hc((aw(), nf)) ? (e.Mc(nf), e.Fc(Ms)) : e.Hc(Ms) && (e.Mc(Ms), e.Fc(nf))); + } + function Kx(n, e, t, i) { + var r, c, s, f; + return n.a == null && gje(n, e), s = e.b.j.c.length, c = t.d.p, f = i.d.p, r = f - 1, r < 0 && (r = s - 1), c <= r ? n.a[r] - n.a[c] : n.a[s - 1] - n.a[c] + n.a[r]; + } + function w7e(n) { + var e, t; + if (!n.b) + for (n.b = RM(u(n.f, 27).kh().i), t = new ne(u(n.f, 27).kh()); t.e != t.i.gc(); ) + e = u(ue(t), 135), nn(n.b, new pD(e)); + return n.b; + } + function g7e(n) { + var e, t; + if (!n.e) + for (n.e = RM(mN(u(n.f, 27)).i), t = new ne(mN(u(n.f, 27))); t.e != t.i.gc(); ) + e = u(ue(t), 123), nn(n.e, new Bkn(e)); + return n.e; + } + function zRn(n) { + var e, t; + if (!n.a) + for (n.a = RM(AM(u(n.f, 27)).i), t = new ne(AM(u(n.f, 27))); t.e != t.i.gc(); ) + e = u(ue(t), 27), nn(n.a, new ML(n, e)); + return n.a; + } + function _0(n) { + var e; + if (!n.C && (n.D != null || n.B != null)) + if (e = iDe(n), e) + n.hl(e); + else + try { + n.hl(null); + } catch (t) { + if (t = It(t), !D(t, 63)) + throw M(t); + } + return n.C; + } + function p7e(n) { + switch (n.q.g) { + case 5: + gKn(n, (en(), Xn)), gKn(n, ae); + break; + case 4: + mGn(n, (en(), Xn)), mGn(n, ae); + break; + default: + y_n(n, (en(), Xn)), y_n(n, ae); + } + } + function m7e(n) { + switch (n.q.g) { + case 5: + pKn(n, (en(), Zn)), pKn(n, Wn); + break; + case 4: + vGn(n, (en(), Zn)), vGn(n, Wn); + break; + default: + j_n(n, (en(), Zn)), j_n(n, Wn); + } + } + function _g(n, e) { + var t, i, r; + for (r = new Ni(), i = n.Kc(); i.Ob(); ) + t = u(i.Pb(), 36), Am(t, r.a, 0), r.a += t.f.a + e, r.b = y.Math.max(r.b, t.f.b); + return r.b > 0 && (r.b += e), r; + } + function hA(n, e) { + var t, i, r; + for (r = new Ni(), i = n.Kc(); i.Ob(); ) + t = u(i.Pb(), 36), Am(t, 0, r.b), r.b += t.f.b + e, r.a = y.Math.max(r.a, t.f.a); + return r.a > 0 && (r.a += e), r; + } + function XRn(n) { + var e, t, i; + for (i = et, t = new C(n.a); t.a < t.c.c.length; ) + e = u(E(t), 10), kt(e, (W(), dt)) && (i = y.Math.min(i, u(v(e, dt), 17).a)); + return i; + } + function VRn(n, e) { + var t, i; + if (e.length == 0) + return 0; + for (t = pN(n.a, e[0], (en(), Wn)), t += pN(n.a, e[e.length - 1], Zn), i = 0; i < e.length; i++) + t += eje(n, i, e); + return t; + } + function WRn() { + B5(), this.c = new Z(), this.i = new Z(), this.e = new ih(), this.f = new ih(), this.g = new ih(), this.j = new Z(), this.a = new Z(), this.b = new de(), this.k = new de(); + } + function _x(n, e) { + var t, i; + return n.Db >> 16 == 6 ? n.Cb.Th(n, 5, Ef, e) : (i = br(u($n((t = u(Un(n, 16), 29), t || n.ii()), n.Db >> 16), 19)), n.Cb.Th(n, i.n, i.f, e)); + } + function v7e(n) { + I4(); + var e = n.e; + if (e && e.stack) { + var t = e.stack, i = e + ` +`; + return t.substring(0, i.length) == i && (t = t.substring(i.length)), t.split(` +`); + } + return []; + } + function k7e(n) { + var e; + return e = (Q$n(), wQn), e[n >>> 28] | e[n >> 24 & 15] << 4 | e[n >> 20 & 15] << 8 | e[n >> 16 & 15] << 12 | e[n >> 12 & 15] << 16 | e[n >> 8 & 15] << 20 | e[n >> 4 & 15] << 24 | e[n & 15] << 28; + } + function JRn(n) { + var e, t, i; + n.b == n.c && (i = n.a.length, t = QQ(y.Math.max(8, i)) << 1, n.b != 0 ? (e = xs(n.a, t), axn(n, e, i), n.a = e, n.b = 0) : Ib(n.a, t), n.c = i); + } + function y7e(n, e) { + var t; + return t = n.b, t.pf((He(), uo)) ? t.ag() == (en(), Wn) ? -t.Mf().a - $(R(t.of(uo))) : e + $(R(t.of(uo))) : t.ag() == (en(), Wn) ? -t.Mf().a : e; + } + function qk(n) { + var e; + return n.b.c.length != 0 && u(sn(n.b, 0), 72).a ? u(sn(n.b, 0), 72).a : (e = vN(n), e ?? "" + (n.c ? qr(n.c.a, n, 0) : -1)); + } + function lA(n) { + var e; + return n.f.c.length != 0 && u(sn(n.f, 0), 72).a ? u(sn(n.f, 0), 72).a : (e = vN(n), e ?? "" + (n.i ? qr(n.i.j, n, 0) : -1)); + } + function j7e(n, e) { + var t, i; + if (e < 0 || e >= n.gc()) + return null; + for (t = e; t < n.gc(); ++t) + if (i = u(n.Xb(t), 131), t == n.gc() - 1 || !i.o) + return new wi(Y(t), i); + return null; + } + function E7e(n, e, t) { + var i, r, c, s, f; + for (c = n.c, f = t ? e : n, i = t ? n : e, r = f.p + 1; r < i.p; ++r) + if (s = u(sn(c.a, r), 10), !(s.k == (Vn(), Uf) || Q7e(s))) + return !1; + return !0; + } + function kZ(n) { + var e, t, i, r, c; + for (c = 0, r = ai, i = 0, t = new C(n.a); t.a < t.c.c.length; ) + e = u(E(t), 172), c += e.r + (i > 0 ? n.c : 0), r = y.Math.max(r, e.d), ++i; + n.e = c, n.b = r; + } + function C7e(n) { + var e, t; + if (!n.b) + for (n.b = RM(u(n.f, 123).kh().i), t = new ne(u(n.f, 123).kh()); t.e != t.i.gc(); ) + e = u(ue(t), 135), nn(n.b, new pD(e)); + return n.b; + } + function M7e(n, e) { + var t, i, r; + if (e.dc()) + return p4(), p4(), aE; + for (t = new LAn(n, e.gc()), r = new ne(n); r.e != r.i.gc(); ) + i = ue(r), e.Hc(i) && ve(t, i); + return t; + } + function yZ(n, e, t, i) { + return e == 0 ? i ? (!n.o && (n.o = new Pu((Mc(), tl), A1, n, 0)), n.o) : (!n.o && (n.o = new Pu((Mc(), tl), A1, n, 0)), rk(n.o)) : tA(n, e, t, i); + } + function Hx(n) { + var e, t; + if (n.rb) + for (e = 0, t = n.rb.i; e < t; ++e) + T7(L(n.rb, e)); + if (n.vb) + for (e = 0, t = n.vb.i; e < t; ++e) + T7(L(n.vb, e)); + R6((Ou(), zi), n), n.Bb |= 1; + } + function Et(n, e, t, i, r, c, s, f, h, l, a, d, g, p) { + return P_n(n, e, i, null, r, c, s, f, h, l, g, !0, p), LY(n, a), D(n.Cb, 90) && lw(Yu(u(n.Cb, 90)), 2), t && DQ(n, t), NY(n, d), n; + } + function T7e(n) { + var e, t; + if (n == null) + return null; + t = 0; + try { + t = Ao(n, Wi, et) & oi; + } catch (i) { + if (i = It(i), D(i, 130)) + e = iT(n), t = e[0]; + else + throw M(i); + } + return vk(t); + } + function A7e(n) { + var e, t; + if (n == null) + return null; + t = 0; + try { + t = Ao(n, Wi, et) & oi; + } catch (i) { + if (i = It(i), D(i, 130)) + e = iT(n), t = e[0]; + else + throw M(i); + } + return vk(t); + } + function S7e(n, e) { + var t, i, r; + return r = n.h - e.h, r < 0 || (t = n.l - e.l, i = n.m - e.m + (t >> 22), r += i >> 22, r < 0) ? !1 : (n.l = t & io, n.m = i & io, n.h = r & Il, !0); + } + function qx(n, e, t, i, r, c, s) { + var f, h; + return !(e.Te() && (h = n.a.Ne(t, i), h < 0 || !r && h == 0) || e.Ue() && (f = n.a.Ne(t, c), f > 0 || !s && f == 0)); + } + function P7e(n, e) { + rm(); + var t; + if (t = n.j.g - e.j.g, t != 0) + return 0; + switch (n.j.g) { + case 2: + return fx(e, Csn) - fx(n, Csn); + case 4: + return fx(n, Esn) - fx(e, Esn); + } + return 0; + } + function I7e(n) { + switch (n.g) { + case 0: + return Z_; + case 1: + return nH; + case 2: + return eH; + case 3: + return tH; + case 4: + return JP; + case 5: + return iH; + default: + return null; + } + } + function Nr(n, e, t) { + var i, r; + return i = (r = new lD(), dd(r, e), Xc(r, t), ve((!n.c && (n.c = new q(jb, n, 12, 10)), n.c), r), r), t1(i, 0), nw(i, 1), o1(i, !0), u1(i, !0), i; + } + function Jp(n, e) { + var t, i; + if (e >= n.i) + throw M(new aL(e, n.i)); + return ++n.j, t = n.g[e], i = n.i - e - 1, i > 0 && Oc(n.g, e + 1, n.g, e, i), $t(n.g, --n.i, null), n.Qi(e, t), n.Ni(), t; + } + function QRn(n, e) { + var t, i; + return n.Db >> 16 == 17 ? n.Cb.Th(n, 21, As, e) : (i = br(u($n((t = u(Un(n, 16), 29), t || n.ii()), n.Db >> 16), 19)), n.Cb.Th(n, i.n, i.f, e)); + } + function O7e(n) { + var e, t, i, r; + for (Dn(), Zt(n.c, n.a), r = new C(n.c); r.a < r.c.c.length; ) + for (i = E(r), t = new C(n.b); t.a < t.c.c.length; ) + e = u(E(t), 693), e.bf(i); + } + function D7e(n) { + var e, t, i, r; + for (Dn(), Zt(n.c, n.a), r = new C(n.c); r.a < r.c.c.length; ) + for (i = E(r), t = new C(n.b); t.a < t.c.c.length; ) + e = u(E(t), 382), e.bf(i); + } + function L7e(n) { + var e, t, i, r, c; + for (r = et, c = null, i = new C(n.d); i.a < i.c.c.length; ) + t = u(E(i), 218), t.d.j ^ t.e.j && (e = t.e.e - t.d.e - t.a, e < r && (r = e, c = t)); + return c; + } + function jZ() { + jZ = F, hZn = new Mn(Qtn, (_n(), !1)), oZn = new Mn(Ytn, 100), jon = (t5(), E_), sZn = new Mn(Ztn, jon), fZn = new Mn(nin, mh), lZn = new Mn(ein, Y(et)); + } + function YRn(n, e, t) { + var i, r, c, s, f, h, l, a; + for (l = 0, r = n.a[e], c = 0, s = r.length; c < s; ++c) + for (i = r[c], a = g5(i, t), h = a.Kc(); h.Ob(); ) + f = u(h.Pb(), 12), Xe(n.f, f, Y(l++)); + } + function N7e(n, e, t) { + var i, r, c, s; + if (t) + for (r = t.a.length, i = new Ya(r), s = (i.b - i.a) * i.c < 0 ? (K1(), xa) : new q1(i); s.Ob(); ) + c = u(s.Pb(), 17), Pn(n, e, Zp(Qb(t, c.a))); + } + function $7e(n, e, t) { + var i, r, c, s; + if (t) + for (r = t.a.length, i = new Ya(r), s = (i.b - i.a) * i.c < 0 ? (K1(), xa) : new q1(i); s.Ob(); ) + c = u(s.Pb(), 17), Pn(n, e, Zp(Qb(t, c.a))); + } + function EZ(n) { + ua(); + var e; + return e = u(A5(Tp(n.k), K(hr, Tc, 64, 2, 0, 1)), 126), x4(e, 0, e.length, null), e[0] == (en(), Xn) && e[1] == Wn && ($t(e, 0, Wn), $t(e, 1, Xn)), e; + } + function ZRn(n, e, t) { + var i, r, c; + return r = ETe(n, e, t), c = den(n, r), u$(n.b), KN(n, e, t), Dn(), Zt(r, new U7n(n)), i = den(n, r), u$(n.b), KN(n, t, e), new wi(Y(c), Y(i)); + } + function nKn() { + nKn = F, Nie = Ke(new ri(), (Vi(), zr), (er(), L8)), OI = new Dt("linearSegments.inputPrio", Y(0)), DI = new Dt("linearSegments.outputPrio", Y(0)); + } + function Qp() { + Qp = F, LI = new pC("P1_TREEIFICATION", 0), t9 = new pC("P2_NODE_ORDERING", 1), i9 = new pC("P3_NODE_PLACEMENT", 2), r9 = new pC("P4_EDGE_ROUTING", 3); + } + function x7e(n) { + var e, t, i, r; + for (t = 0, e = 0, r = new ne(n); r.e != r.i.gc(); ) + i = u(ue(r), 27), t = y.Math.max(i.g + i.i, t), e = y.Math.max(i.f + i.j, e); + return new V(t, e); + } + function F7e(n, e) { + var t, i, r, c; + for (c = 0, i = new C(n); i.a < i.c.c.length; ) + t = u(E(i), 27), c += y.Math.pow(t.g * t.f - e, 2); + return r = y.Math.sqrt(c / (n.c.length - 1)), r; + } + function To() { + To = F, nE = new yC("UNKNOWN", 0), Zh = new yC("ABOVE", 1), Aa = new yC("BELOW", 2), Zj = new yC("INLINE", 3), new Dt("org.eclipse.elk.labelSide", nE); + } + function eKn(n, e) { + var t; + if (n.Yi() && e != null) { + for (t = 0; t < n.i; ++t) + if (rt(e, n.g[t])) + return t; + } else + for (t = 0; t < n.i; ++t) + if (x(n.g[t]) === x(e)) + return t; + return -1; + } + function B7e(n, e, t) { + var i, r; + return e.c == (pr(), Qc) && t.c == zu ? -1 : e.c == zu && t.c == Qc ? 1 : (i = HFn(e.a, n.a), r = HFn(t.a, n.a), e.c == Qc ? r - i : i - r); + } + function ow(n, e, t) { + if (t && (e < 0 || e > t.a.c.length)) + throw M(new Gn("index must be >= 0 and <= layer node count")); + n.c && au(n.c.a, n), n.c = t, t && w0(t.a, e, n); + } + function tKn(n, e) { + var t, i, r; + for (i = new ie(ce(Cl(n).a.Kc(), new En())); pe(i); ) + return t = u(fe(i), 18), r = u(e.Kb(t), 10), new TE(Se(r.n.b + r.o.b / 2)); + return Zv(), Zv(), KK; + } + function iKn(n, e) { + this.c = new de(), this.a = n, this.b = e, this.d = u(v(n, (W(), E2)), 312), x(v(n, (cn(), shn))) === x((sk(), QP)) ? this.e = new Yyn() : this.e = new Qyn(); + } + function S5(n, e) { + var t, i; + return i = null, n.pf((He(), $3)) && (t = u(n.of($3), 96), t.pf(e) && (i = t.of(e))), i == null && n.Tf() && (i = n.Tf().of(e)), i == null && (i = rn(e)), i; + } + function Ux(n, e) { + var t, i; + t = n.fd(e); + try { + return i = t.Pb(), t.Qb(), i; + } catch (r) { + throw r = It(r), D(r, 112) ? M(new Pr("Can't remove element " + e)) : M(r); + } + } + function R7e(n, e) { + var t, i, r; + if (i = new JE(), r = new nY(i.q.getFullYear() - ha, i.q.getMonth(), i.q.getDate()), t = JPe(n, e, r), t == 0 || t < e.length) + throw M(new Gn(e)); + return r; + } + function CZ(n, e) { + var t, i, r; + for (Jn(e), rV(e != n), r = n.b.c.length, i = e.Kc(); i.Ob(); ) + t = i.Pb(), nn(n.b, Jn(t)); + return r != n.b.c.length ? (fY(n, 0), !0) : !1; + } + function Uk() { + Uk = F, Ton = (He(), Vj), new $i(Zq, (_n(), !0)), dZn = qd, bZn = _2, wZn = Ta, aZn = K2, Son = Wj, gZn = Jw, Mon = (jZ(), hZn), Eon = sZn, Con = fZn, Aon = lZn, EP = oZn; + } + function K7e(n, e) { + if (e == n.c) + return n.d; + if (e == n.d) + return n.c; + throw M(new Gn("'port' must be either the source port or target port of the edge.")); + } + function _7e(n, e, t) { + var i, r; + switch (r = n.o, i = n.d, e.g) { + case 1: + return -i.d - t; + case 3: + return r.b + i.a + t; + case 2: + return r.a + i.c + t; + case 4: + return -i.b - t; + default: + return 0; + } + } + function MZ(n, e, t, i) { + var r, c, s, f; + for (xi(e, u(i.Xb(0), 30)), f = i.kd(1, i.gc()), c = u(t.Kb(e), 20).Kc(); c.Ob(); ) + r = u(c.Pb(), 18), s = r.c.i == e ? r.d.i : r.c.i, MZ(n, s, t, f); + } + function rKn(n) { + var e; + return e = new de(), kt(n, (W(), gH)) ? u(v(n, gH), 85) : (Ut(ut(new Tn(null, new In(n.j, 16)), new S2n()), new l7n(e)), U(n, gH, e), e); + } + function cKn(n, e) { + var t, i, r, c, s; + for (i = 0, r = 0, t = 0, s = new C(n); s.a < s.c.c.length; ) + c = u(E(s), 186), i = y.Math.max(i, c.e), r += c.b + (t > 0 ? e : 0), ++t; + return new V(i, r); + } + function TZ(n, e) { + var t, i; + return n.Db >> 16 == 6 ? n.Cb.Th(n, 6, Wt, e) : (i = br(u($n((t = u(Un(n, 16), 29), t || (Mc(), bO)), n.Db >> 16), 19)), n.Cb.Th(n, i.n, i.f, e)); + } + function AZ(n, e) { + var t, i; + return n.Db >> 16 == 7 ? n.Cb.Th(n, 1, oE, e) : (i = br(u($n((t = u(Un(n, 16), 29), t || (Mc(), Pdn)), n.Db >> 16), 19)), n.Cb.Th(n, i.n, i.f, e)); + } + function SZ(n, e) { + var t, i; + return n.Db >> 16 == 9 ? n.Cb.Th(n, 9, Ye, e) : (i = br(u($n((t = u(Un(n, 16), 29), t || (Mc(), Odn)), n.Db >> 16), 19)), n.Cb.Th(n, i.n, i.f, e)); + } + function uKn(n, e) { + var t, i; + return n.Db >> 16 == 5 ? n.Cb.Th(n, 9, EO, e) : (i = br(u($n((t = u(Un(n, 16), 29), t || (On(), P1)), n.Db >> 16), 19)), n.Cb.Th(n, i.n, i.f, e)); + } + function oKn(n, e) { + var t, i; + return n.Db >> 16 == 7 ? n.Cb.Th(n, 6, Ef, e) : (i = br(u($n((t = u(Un(n, 16), 29), t || (On(), O1)), n.Db >> 16), 19)), n.Cb.Th(n, i.n, i.f, e)); + } + function PZ(n, e) { + var t, i; + return n.Db >> 16 == 3 ? n.Cb.Th(n, 0, fE, e) : (i = br(u($n((t = u(Un(n, 16), 29), t || (On(), S1)), n.Db >> 16), 19)), n.Cb.Th(n, i.n, i.f, e)); + } + function sKn() { + this.a = new dvn(), this.g = new oA(), this.j = new oA(), this.b = new de(), this.d = new oA(), this.i = new oA(), this.k = new de(), this.c = new de(), this.e = new de(), this.f = new de(); + } + function H7e(n, e, t) { + var i, r, c; + for (t < 0 && (t = 0), c = n.i, r = t; r < c; r++) + if (i = L(n, r), e == null) { + if (i == null) + return r; + } else if (x(e) === x(i) || rt(e, i)) + return r; + return -1; + } + function q7e(n, e) { + var t, i; + return t = e.qi(n.a), t ? (i = Oe(gf((!t.b && (t.b = new lo((On(), lr), pc, t)), t.b), nP)), An(Yy, i) ? R6(n, jo(e.qk())) : i) : null; + } + function pm(n, e) { + var t, i; + if (e) { + if (e == n) + return !0; + for (t = 0, i = u(e, 54).Ph(); i && i != e; i = i.Ph()) { + if (++t > PB) + return pm(n, i); + if (i == n) + return !0; + } + } + return !1; + } + function U7e(n) { + switch (KC(), n.q.g) { + case 5: + U_n(n, (en(), Xn)), U_n(n, ae); + break; + case 4: + GHn(n, (en(), Xn)), GHn(n, ae); + break; + default: + VGn(n, (en(), Xn)), VGn(n, ae); + } + } + function G7e(n) { + switch (KC(), n.q.g) { + case 5: + fHn(n, (en(), Zn)), fHn(n, Wn); + break; + case 4: + bRn(n, (en(), Zn)), bRn(n, Wn); + break; + default: + WGn(n, (en(), Zn)), WGn(n, Wn); + } + } + function z7e(n) { + var e, t; + e = u(v(n, (Us(), nZn)), 17), e ? (t = e.a, t == 0 ? U(n, (Q1(), jP), new dx()) : U(n, (Q1(), jP), new qM(t))) : U(n, (Q1(), jP), new qM(1)); + } + function X7e(n, e) { + var t; + switch (t = n.i, e.g) { + case 1: + return -(n.n.b + n.o.b); + case 2: + return n.n.a - t.o.a; + case 3: + return n.n.b - t.o.b; + case 4: + return -(n.n.a + n.o.a); + } + return 0; + } + function V7e(n, e) { + switch (n.g) { + case 0: + return e == (Yo(), ya) ? HP : qP; + case 1: + return e == (Yo(), ya) ? HP : wj; + case 2: + return e == (Yo(), ya) ? wj : qP; + default: + return wj; + } + } + function Gk(n, e) { + var t, i, r; + for (au(n.a, e), n.e -= e.r + (n.a.c.length == 0 ? 0 : n.c), r = Frn, i = new C(n.a); i.a < i.c.c.length; ) + t = u(E(i), 172), r = y.Math.max(r, t.d); + n.b = r; + } + function IZ(n, e) { + var t, i; + return n.Db >> 16 == 3 ? n.Cb.Th(n, 12, Ye, e) : (i = br(u($n((t = u(Un(n, 16), 29), t || (Mc(), Sdn)), n.Db >> 16), 19)), n.Cb.Th(n, i.n, i.f, e)); + } + function OZ(n, e) { + var t, i; + return n.Db >> 16 == 11 ? n.Cb.Th(n, 10, Ye, e) : (i = br(u($n((t = u(Un(n, 16), 29), t || (Mc(), Idn)), n.Db >> 16), 19)), n.Cb.Th(n, i.n, i.f, e)); + } + function fKn(n, e) { + var t, i; + return n.Db >> 16 == 10 ? n.Cb.Th(n, 11, As, e) : (i = br(u($n((t = u(Un(n, 16), 29), t || (On(), I1)), n.Db >> 16), 19)), n.Cb.Th(n, i.n, i.f, e)); + } + function hKn(n, e) { + var t, i; + return n.Db >> 16 == 10 ? n.Cb.Th(n, 12, Ss, e) : (i = br(u($n((t = u(Un(n, 16), 29), t || (On(), rg)), n.Db >> 16), 19)), n.Cb.Th(n, i.n, i.f, e)); + } + function gs(n) { + var e; + return !(n.Bb & 1) && n.r && n.r.Vh() && (e = u(n.r, 54), n.r = u(ea(n, e), 142), n.r != e && n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 9, 8, e, n.r))), n.r; + } + function Gx(n, e, t) { + var i; + return i = A(T(Oi, 1), Ar, 28, 15, [inn(n, (wf(), bc), e, t), inn(n, Jc, e, t), inn(n, wc, e, t)]), n.f && (i[0] = y.Math.max(i[0], i[2]), i[2] = i[0]), i; + } + function W7e(n, e) { + var t, i, r; + if (r = v9e(n, e), r.c.length != 0) + for (Zt(r, new Pgn()), t = r.c.length, i = 0; i < t; i++) + jm(n, (Ln(i, r.c.length), u(r.c[i], 293)), mAe(n, r, i)); + } + function J7e(n) { + var e, t, i, r; + for (r = u(ot(n.a, (sw(), UP)), 15).Kc(); r.Ob(); ) + for (i = u(r.Pb(), 105), t = Tp(i.k).Kc(); t.Ob(); ) + e = u(t.Pb(), 64), C4(n, i, e, (L0(), va), 1); + } + function Q7e(n) { + var e, t; + if (n.k == (Vn(), Ti)) { + for (t = new ie(ce(Cl(n).a.Kc(), new En())); pe(t); ) + if (e = u(fe(t), 18), !sr(e) && n.c == BZ(e, n).c) + return !0; + } + return !1; + } + function Y7e(n) { + var e, t; + if (n.k == (Vn(), Ti)) { + for (t = new ie(ce(Cl(n).a.Kc(), new En())); pe(t); ) + if (e = u(fe(t), 18), !sr(e) && e.c.i.c == e.d.i.c) + return !0; + } + return !1; + } + function Z7e(n, e) { + var t, i, r, c, s; + if (e) + for (r = e.a.length, t = new Ya(r), s = (t.b - t.a) * t.c < 0 ? (K1(), xa) : new q1(t); s.Ob(); ) + c = u(s.Pb(), 17), i = D4(e, c.a), i && BHn(n, i); + } + function nke() { + Fz(); + var n, e; + for (_Le((G1(), Hn)), OLe(Hn), Hx(Hn), Gdn = (On(), Yf), e = new C(n0n); e.a < e.c.c.length; ) + n = u(E(e), 248), Lm(n, Yf, null); + return !0; + } + function DZ(n, e) { + var t, i, r, c, s, f, h, l; + return h = n.h >> 19, l = e.h >> 19, h != l ? l - h : (r = n.h, f = e.h, r != f ? r - f : (i = n.m, s = e.m, i != s ? i - s : (t = n.l, c = e.l, t - c))); + } + function aA() { + aA = F, Xun = (NA(), f_), zun = new Mn(Otn, Xun), Gun = (cT(), s_), Uun = new Mn(Dtn, Gun), qun = (YT(), o_), Hun = new Mn(Ltn, qun), _un = new Mn(Ntn, (_n(), !0)); + } + function P5(n, e, t) { + var i, r; + i = e * t, D(n.g, 154) ? (r = xp(n), r.f.d ? r.f.a || (n.d.a += i + Kf) : (n.d.d -= i + Kf, n.d.a += i + Kf)) : D(n.g, 10) && (n.d.d -= i, n.d.a += 2 * i); + } + function lKn(n, e, t) { + var i, r, c, s, f; + for (r = n[t.g], f = new C(e.d); f.a < f.c.c.length; ) + s = u(E(f), 105), c = s.i, c && c.i == t && (i = s.d[t.g], r[i] = y.Math.max(r[i], c.j.b)); + } + function eke(n, e) { + var t, i, r, c, s; + for (i = 0, r = 0, t = 0, s = new C(e.d); s.a < s.c.c.length; ) + c = u(E(s), 315), fA(c), i = y.Math.max(i, c.b), r += c.d + (t > 0 ? n.b : 0), ++t; + e.b = i, e.e = r; + } + function aKn(n) { + var e, t, i; + if (i = n.b, iCn(n.i, i.length)) { + for (t = i.length * 2, n.b = K(UK, Cy, 303, t, 0, 1), n.c = K(UK, Cy, 303, t, 0, 1), n.f = t - 1, n.i = 0, e = n.a; e; e = e.c) + ny(n, e, e); + ++n.g; + } + } + function tke(n, e, t, i) { + var r, c, s, f; + for (r = 0; r < e.o; r++) + for (c = r - e.j + t, s = 0; s < e.p; s++) + f = s - e.k + i, Kg(e, r, s) ? W9e(n, c, f) || d7e(n, c, f) : $Rn(e, r, s) && (ORn(n, c, f) || b7e(n, c, f)); + } + function I5(n, e) { + return n.b.a = y.Math.min(n.b.a, e.c), n.b.b = y.Math.min(n.b.b, e.d), n.a.a = y.Math.max(n.a.a, e.c), n.a.b = y.Math.max(n.a.b, e.d), Kn(n.c, e), !0; + } + function ike(n, e, t) { + var i; + i = e.c.i, i.k == (Vn(), Ti) ? (U(n, (W(), yf), u(v(i, yf), 12)), U(n, Es, u(v(i, Es), 12))) : (U(n, (W(), yf), e.c), U(n, Es, t.d)); + } + function mm(n, e, t) { + Vg(); + var i, r, c, s, f, h; + return s = e / 2, c = t / 2, i = y.Math.abs(n.a), r = y.Math.abs(n.b), f = 1, h = 1, i > s && (f = s / i), r > c && (h = c / r), rh(n, y.Math.min(f, h)), n; + } + function rke() { + KA(); + var n, e; + try { + if (e = u(HZ((R1(), Ps), ev), 2113), e) + return e; + } catch (t) { + if (t = It(t), D(t, 103)) + n = t, OW((Ie(), n)); + else + throw M(t); + } + return new fvn(); + } + function cke() { + KA(); + var n, e; + try { + if (e = u(HZ((R1(), Ps), ks), 2040), e) + return e; + } catch (t) { + if (t = It(t), D(t, 103)) + n = t, OW((Ie(), n)); + else + throw M(t); + } + return new $vn(); + } + function uke() { + jNn(); + var n, e; + try { + if (e = u(HZ((R1(), Ps), Pd), 2122), e) + return e; + } catch (t) { + if (t = It(t), D(t, 103)) + n = t, OW((Ie(), n)); + else + throw M(t); + } + return new S6n(); + } + function oke(n, e, t) { + var i, r; + return r = n.e, n.e = e, n.Db & 4 && !(n.Db & 1) && (i = new Mi(n, 1, 4, r, e), t ? t.nj(i) : t = i), r != e && (e ? t = Lm(n, MA(n, e), t) : t = Lm(n, n.a, t)), t; + } + function dKn() { + JE.call(this), this.e = -1, this.a = !1, this.p = Wi, this.k = -1, this.c = -1, this.b = -1, this.g = !1, this.f = -1, this.j = -1, this.n = -1, this.i = -1, this.d = -1, this.o = Wi; + } + function ske(n, e) { + var t, i, r; + if (i = n.b.d.d, n.a || (i += n.b.d.a), r = e.b.d.d, e.a || (r += e.b.d.a), t = bt(i, r), t == 0) { + if (!n.a && e.a) + return -1; + if (!e.a && n.a) + return 1; + } + return t; + } + function fke(n, e) { + var t, i, r; + if (i = n.b.b.d, n.a || (i += n.b.b.a), r = e.b.b.d, e.a || (r += e.b.b.a), t = bt(i, r), t == 0) { + if (!n.a && e.a) + return -1; + if (!e.a && n.a) + return 1; + } + return t; + } + function hke(n, e) { + var t, i, r; + if (i = n.b.g.d, n.a || (i += n.b.g.a), r = e.b.g.d, e.a || (r += e.b.g.a), t = bt(i, r), t == 0) { + if (!n.a && e.a) + return -1; + if (!e.a && n.a) + return 1; + } + return t; + } + function LZ() { + LZ = F, mZn = Su(Ke(Ke(Ke(new ri(), (Vi(), _c), (er(), fsn)), _c, hsn), zr, lsn), zr, Yon), kZn = Ke(Ke(new ri(), _c, Gon), _c, Zon), vZn = Su(new ri(), zr, esn); + } + function lke(n) { + var e, t, i, r, c; + for (e = u(v(n, (W(), R8)), 85), c = n.n, i = e.Cc().Kc(); i.Ob(); ) + t = u(i.Pb(), 314), r = t.i, r.c += c.a, r.d += c.b, t.c ? Dqn(t) : Lqn(t); + U(n, R8, null); + } + function ake(n, e, t) { + var i, r; + switch (r = n.b, i = r.d, e.g) { + case 1: + return -i.d - t; + case 2: + return r.o.a + i.c + t; + case 3: + return r.o.b + i.a + t; + case 4: + return -i.b - t; + default: + return -1; + } + } + function dke(n, e, t) { + var i, r; + for (t.Ug("Interactive node placement", 1), n.a = u(v(e, (W(), E2)), 312), r = new C(e.b); r.a < r.c.c.length; ) + i = u(E(r), 30), cAe(n, i); + t.Vg(); + } + function bke(n) { + var e, t, i, r, c; + if (i = 0, r = i2, n.b) + for (e = 0; e < 360; e++) + t = e * 0.017453292519943295, Ien(n, n.d, 0, 0, Md, t), c = n.b.Dg(n.d), c < r && (i = t, r = c); + Ien(n, n.d, 0, 0, Md, i); + } + function wke(n, e) { + var t, i, r, c; + for (c = new de(), e.e = null, e.f = null, i = new C(e.i); i.a < i.c.c.length; ) + t = u(E(i), 68), r = u(ee(n.g, t.a), 42), t.a = gM(t.b), Xe(c, t.a, r); + n.g = c; + } + function gke(n, e, t) { + var i, r, c, s, f, h; + for (r = e - n.e, c = r / n.d.c.length, s = 0, h = new C(n.d); h.a < h.c.c.length; ) + f = u(E(h), 315), i = n.b - f.b + t, xBn(f, f.e + s * c, f.f), Y9e(f, c, i), ++s; + } + function bKn(n) { + var e; + if (n.f._j(), n.b != -1) { + if (++n.b, e = n.f.d[n.a], n.b < e.i) + return; + ++n.a; + } + for (; n.a < n.f.d.length; ++n.a) + if (e = n.f.d[n.a], e && e.i != 0) { + n.b = 0; + return; + } + n.b = -1; + } + function pke(n, e) { + var t, i, r; + for (r = e.c.length, t = vEe(n, r == 0 ? "" : (Ln(0, e.c.length), Oe(e.c[0]))), i = 1; i < r && t; ++i) + t = u(t, 54).Zh((Ln(i, e.c.length), Oe(e.c[i]))); + return t; + } + function wKn(n, e) { + var t, i; + for (i = new C(e); i.a < i.c.c.length; ) + t = u(E(i), 10), n.c[t.c.p][t.p].a = lW(n.i), n.c[t.c.p][t.p].d = $(n.c[t.c.p][t.p].a), n.c[t.c.p][t.p].b = 1; + } + function mke(n, e) { + var t, i, r, c; + for (c = 0, i = new C(n); i.a < i.c.c.length; ) + t = u(E(i), 163), c += y.Math.pow(Au(t) * ao(t) - e, 2); + return r = y.Math.sqrt(c / (n.c.length - 1)), r; + } + function gKn(n, e) { + var t, i, r, c; + for (c = 0, r = u(u(ot(n.r, e), 21), 87).Kc(); r.Ob(); ) + i = u(r.Pb(), 117), c = y.Math.max(c, i.e.a + i.b.Mf().a); + t = u(Mr(n.b, e), 127), t.n.b = 0, t.a.a = c; + } + function pKn(n, e) { + var t, i, r, c; + for (t = 0, c = u(u(ot(n.r, e), 21), 87).Kc(); c.Ob(); ) + r = u(c.Pb(), 117), t = y.Math.max(t, r.e.b + r.b.Mf().b); + i = u(Mr(n.b, e), 127), i.n.d = 0, i.a.b = t; + } + function mKn(n, e, t, i) { + var r, c, s; + return c = nSe(n, e, t, i), s = yen(n, c), eF(n, e, t, i), u$(n.b), Dn(), Zt(c, new G7n(n)), r = yen(n, c), eF(n, t, e, i), u$(n.b), new wi(Y(s), Y(r)); + } + function vke(n, e) { + var t; + e.Ug("Delaunay triangulation", 1), t = new Z(), nu(n.i, new Akn(t)), on(un(v(n, (W4(), O8)))), n.e ? Ri(n.e, azn(t)) : n.e = azn(t), e.Vg(); + } + function kke(n, e, t) { + var i, r; + for (j7(n, n.j + e, n.k + t), r = new ne((!n.a && (n.a = new ii(xo, n, 5)), n.a)); r.e != r.i.gc(); ) + i = u(ue(r), 377), gL(i, i.a + e, i.b + t); + y7(n, n.b + e, n.c + t); + } + function NZ(n, e, t, i) { + switch (t) { + case 7: + return !n.e && (n.e = new Nn(Wt, n, 7, 4)), Vc(n.e, e, i); + case 8: + return !n.d && (n.d = new Nn(Wt, n, 8, 5)), Vc(n.d, e, i); + } + return Yx(n, e, t, i); + } + function $Z(n, e, t, i) { + switch (t) { + case 7: + return !n.e && (n.e = new Nn(Wt, n, 7, 4)), rr(n.e, e, i); + case 8: + return !n.d && (n.d = new Nn(Wt, n, 8, 5)), rr(n.d, e, i); + } + return $$(n, e, t, i); + } + function yke(n, e, t) { + var i, r, c, s, f; + if (t) + for (c = t.a.length, i = new Ya(c), f = (i.b - i.a) * i.c < 0 ? (K1(), xa) : new q1(i); f.Ob(); ) + s = u(f.Pb(), 17), r = D4(t, s.a), r && q_n(n, r, e); + } + function zk(n, e, t) { + var i, r, c, s, f; + return n._j(), c = e == null ? 0 : mt(e), n.f > 0 && (s = (c & et) % n.d.length, r = xnn(n, s, c, e), r) ? (f = r.nd(t), f) : (i = n.ck(c, e, t), n.c.Fc(i), null); + } + function xZ(n, e) { + var t, i, r, c; + switch (c1(n, e).Kl()) { + case 3: + case 2: { + for (t = Jg(e), r = 0, c = t.i; r < c; ++r) + if (i = u(L(t, r), 35), j0(Dr(n, i)) == 5) + return i; + break; + } + } + return null; + } + function jke(n) { + var e, t, i, r, c; + if (iCn(n.f, n.b.length)) + for (i = K(sQn, Cy, 227, n.b.length * 2, 0, 1), n.b = i, r = i.length - 1, t = n.a; t != n; t = t._d()) + c = u(t, 227), e = c.d & r, c.a = i[e], i[e] = c; + } + function Eke(n) { + var e, t; + return t = u(v(n, (W(), qc)), 21), e = DC(Jie), t.Hc((mr(), v2)) && Mo(e, Zie), t.Hc(B8) && Mo(e, nre), t.Hc(mv) && Mo(e, Qie), t.Hc(vv) && Mo(e, Yie), e; + } + function FZ(n) { + if (n < 0) + throw M(new Gn("The input must be positive")); + return n < oan.length ? rd(oan[n]) : y.Math.sqrt(Md * n) * (Z6e(n, n) / mY(2.718281828459045, n)); + } + function vm(n, e) { + var t; + if (n.Yi() && e != null) { + for (t = 0; t < n.i; ++t) + if (rt(e, n.g[t])) + return !0; + } else + for (t = 0; t < n.i; ++t) + if (x(n.g[t]) === x(e)) + return !0; + return !1; + } + function Cke(n, e) { + if (e == null) { + for (; n.a.Ob(); ) + if (u(n.a.Pb(), 44).md() == null) + return !0; + } else + for (; n.a.Ob(); ) + if (rt(e, u(n.a.Pb(), 44).md())) + return !0; + return !1; + } + function Mke(n, e) { + var t, i, r; + return e === n ? !0 : D(e, 678) ? (r = u(e, 2046), WBn((i = n.g, i || (n.g = new zO(n))), (t = r.g, t || (r.g = new zO(r))))) : !1; + } + function Tke(n) { + var e, t, i, r; + for (e = "gA", t = "vz", r = y.Math.min(n.length, 5), i = r - 1; i >= 0; i--) + if (An(n[i].d, e) || An(n[i].d, t)) { + n.length >= i + 1 && n.splice(0, i + 1); + break; + } + return n; + } + function Xk(n, e) { + var t; + return Vr(n) && Vr(e) && (t = n / e, Ay < t && t < kd) ? t < 0 ? y.Math.ceil(t) : y.Math.floor(t) : Y1(Jen(Vr(n) ? ds(n) : n, Vr(e) ? ds(e) : e, !1)); + } + function BZ(n, e) { + if (e == n.c.i) + return n.d.i; + if (e == n.d.i) + return n.c.i; + throw M(new Gn("'node' must either be the source node or target node of the edge.")); + } + function Ake(n) { + var e, t, i, r; + if (r = u(v(n, (W(), nfn)), 36), r) { + for (i = new Ni(), e = Hi(n.c.i); e != r; ) + t = e.e, e = Hi(t), d0(tt(tt(i, t.n), e.c), e.d.b, e.d.d); + return i; + } + return BZn; + } + function Ske(n) { + var e; + e = u(v(n, (W(), lb)), 337), Ut(rc(new Tn(null, new In(e.d, 16)), new a2n()), new c7n(n)), Ut(ut(new Tn(null, new In(e.d, 16)), new d2n()), new o7n(n)); + } + function zx(n, e) { + var t, i, r, c; + for (r = e ? Qt(n) : Ei(n), i = new ie(ce(r.a.Kc(), new En())); pe(i); ) + if (t = u(fe(i), 18), c = BZ(t, n), c.k == (Vn(), Ti) && c.c != n.c) + return c; + return null; + } + function Pke(n) { + var e, t, i; + for (t = new C(n.p); t.a < t.c.c.length; ) + e = u(E(t), 10), e.k == (Vn(), Xt) && (i = e.o.b, n.i = y.Math.min(n.i, i), n.g = y.Math.max(n.g, i)); + } + function vKn(n, e, t) { + var i, r, c; + for (c = new C(e); c.a < c.c.c.length; ) + i = u(E(c), 10), n.c[i.c.p][i.p].e = !1; + for (r = new C(e); r.a < r.c.c.length; ) + i = u(E(r), 10), ttn(n, i, t); + } + function Xx(n, e, t) { + var i, r; + i = Fg(e.j, t.s, t.c) + Fg(t.e, e.s, e.c), r = Fg(t.j, e.s, e.c) + Fg(e.e, t.s, t.c), i == r ? i > 0 && (n.b += 2, n.a += i) : (n.b += 1, n.a += y.Math.min(i, r)); + } + function kKn(n) { + var e; + e = u(v(u(Zo(n.b, 0), 40), (lc(), Iln)), 107), U(n, (pt(), Ov), new V(0, 0)), lUn(new tk(), n, e.b + e.c - $(R(v(n, rq))), e.d + e.a - $(R(v(n, cq)))); + } + function yKn(n, e) { + var t, i; + if (i = !1, Pi(e) && (i = !0, Ip(n, new Ub(Oe(e)))), i || D(e, 242) && (i = !0, Ip(n, (t = IV(u(e, 242)), new AE(t)))), !i) + throw M(new vD(Lcn)); + } + function Ike(n, e, t, i) { + var r, c, s; + return r = new ml(n.e, 1, 10, (s = e.c, D(s, 90) ? u(s, 29) : (On(), Is)), (c = t.c, D(c, 90) ? u(c, 29) : (On(), Is)), h1(n, e), !1), i ? i.nj(r) : i = r, i; + } + function RZ(n) { + var e, t; + switch (u(v(Hi(n), (cn(), ehn)), 429).g) { + case 0: + return e = n.n, t = n.o, new V(e.a + t.a / 2, e.b + t.b / 2); + case 1: + return new ir(n.n); + default: + return null; + } + } + function Vk() { + Vk = F, YP = new p6(vh, 0), Ksn = new p6("LEFTUP", 1), Hsn = new p6("RIGHTUP", 2), Rsn = new p6("LEFTDOWN", 3), _sn = new p6("RIGHTDOWN", 4), rH = new p6("BALANCED", 5); + } + function Oke(n, e, t) { + var i, r, c; + if (i = bt(n.a[e.p], n.a[t.p]), i == 0) { + if (r = u(v(e, (W(), T3)), 15), c = u(v(t, T3), 15), r.Hc(t)) + return -1; + if (c.Hc(e)) + return 1; + } + return i; + } + function Dke(n) { + switch (n.g) { + case 1: + return new U4n(); + case 2: + return new G4n(); + case 3: + return new q4n(); + case 0: + return null; + default: + throw M(new Gn(GR + (n.f != null ? n.f : "" + n.g))); + } + } + function KZ(n, e, t) { + switch (e) { + case 1: + !n.n && (n.n = new q(Sr, n, 1, 7)), me(n.n), !n.n && (n.n = new q(Sr, n, 1, 7)), Kt(n.n, u(t, 16)); + return; + case 2: + z4(n, Oe(t)); + return; + } + uY(n, e, t); + } + function _Z(n, e, t) { + switch (e) { + case 3: + I0(n, $(R(t))); + return; + case 4: + O0(n, $(R(t))); + return; + case 5: + eu(n, $(R(t))); + return; + case 6: + tu(n, $(R(t))); + return; + } + KZ(n, e, t); + } + function dA(n, e, t) { + var i, r, c; + c = (i = new lD(), i), r = Ff(c, e, null), r && r.oj(), Xc(c, t), ve((!n.c && (n.c = new q(jb, n, 12, 10)), n.c), c), t1(c, 0), nw(c, 1), o1(c, !0), u1(c, !0); + } + function HZ(n, e) { + var t, i, r; + return t = a6(n.i, e), D(t, 241) ? (r = u(t, 241), r.zi() == null, r.wi()) : D(t, 507) ? (i = u(t, 2037), r = i.b, r) : null; + } + function Lke(n, e, t, i) { + var r, c; + return Se(e), Se(t), c = u($6(n.d, e), 17), VNn(!!c, "Row %s not in %s", e, n.e), r = u($6(n.b, t), 17), VNn(!!r, "Column %s not in %s", t, n.c), cFn(n, c.a, r.a, i); + } + function jKn(n, e, t, i, r, c, s) { + var f, h, l, a, d; + if (a = r[c], l = c == s - 1, f = l ? i : 0, d = _Rn(f, a), i != 10 && A(T(n, s - c), e[c], t[c], f, d), !l) + for (++c, h = 0; h < a; ++h) + d[h] = jKn(n, e, t, i, r, c, s); + return d; + } + function O5(n) { + if (n.g == -1) + throw M(new Eu()); + n.Xj(); + try { + n.i.gd(n.g), n.f = n.i.j, n.g < n.e && --n.e, n.g = -1; + } catch (e) { + throw e = It(e), D(e, 77) ? M(new Bo()) : M(e); + } + } + function Nke(n) { + var e, t, i, r; + for (r = -1, i = 0, t = new C(n); t.a < t.c.c.length; ) { + if (e = u(E(t), 249), e.c == (pr(), zu)) { + r = i == 0 ? 0 : i - 1; + break; + } else + i == n.c.length - 1 && (r = i); + i += 1; + } + return r; + } + function $ke(n) { + var e, t, i, r; + for (r = 0, e = 0, i = new C(n.c); i.a < i.c.c.length; ) + t = u(E(i), 27), eu(t, n.e + r), tu(t, n.f), r += t.g + n.b, e = y.Math.max(e, t.f + n.b); + n.d = r - n.b, n.a = e - n.b; + } + function Hg(n) { + var e, t, i; + for (t = new C(n.a.b); t.a < t.c.c.length; ) + e = u(E(t), 60), i = e.d.c, e.d.c = e.d.d, e.d.d = i, i = e.d.b, e.d.b = e.d.a, e.d.a = i, i = e.b.a, e.b.a = e.b.b, e.b.b = i; + uen(n); + } + function qg(n) { + var e, t, i; + for (t = new C(n.a.b); t.a < t.c.c.length; ) + e = u(E(t), 86), i = e.g.c, e.g.c = e.g.d, e.g.d = i, i = e.g.b, e.g.b = e.g.a, e.g.a = i, i = e.e.a, e.e.a = e.e.b, e.e.b = i; + PA(n); + } + function xke(n) { + var e, t, i, r, c; + for (c = Tp(n.k), t = (en(), A(T(hr, 1), Tc, 64, 0, [sc, Xn, Zn, ae, Wn])), i = 0, r = t.length; i < r; ++i) + if (e = t[i], e != sc && !c.Hc(e)) + return e; + return null; + } + function Vx(n, e) { + var t, i; + return i = u(x1e(tm(ut(new Tn(null, new In(e.j, 16)), new $pn()))), 12), i && (t = u(sn(i.e, 0), 18), t) ? u(v(t, (W(), dt)), 17).a : z4e(n.b); + } + function Fke(n, e) { + var t, i, r, c; + for (c = new C(e.a); c.a < c.c.c.length; ) + for (r = u(E(c), 10), e6(n.d), i = new ie(ce(Qt(r).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 18), vHn(n, r, t.d.i); + } + function Bke(n, e) { + var t, i; + for (au(n.b, e), i = new C(n.n); i.a < i.c.c.length; ) + if (t = u(E(i), 209), qr(t.c, e, 0) != -1) { + au(t.c, e), $ke(t), t.c.c.length == 0 && au(n.n, t); + break; + } + ZUn(n); + } + function EKn(n, e) { + var t, i, r, c, s; + for (s = n.f, r = 0, c = 0, i = new C(n.a); i.a < i.c.c.length; ) + t = u(E(i), 172), Hk(t, n.e, s), uk(t, e), c = y.Math.max(c, t.r), s += t.d + n.c, r = s; + n.d = c, n.b = r; + } + function CKn(n) { + var e, t; + return t = cy(n), L4(t) ? null : (e = (Se(t), u(IRn(new ie(ce(t.a.Kc(), new En()))), 74)), Gr(u(L((!e.b && (e.b = new Nn(he, e, 4, 7)), e.b), 0), 84))); + } + function bA(n) { + var e; + return n.o || (e = n.uk(), e ? n.o = new FW(n, n, null) : n.al() ? n.o = new bV(n, null) : j0(Dr((Ou(), zi), n)) == 1 ? n.o = new VDn(n) : n.o = new DL(n, null)), n.o; + } + function Rke(n, e, t, i) { + var r, c, s, f, h; + t.Xh(e) && (r = (s = e, s ? u(i, 54).gi(s) : null), r && (h = t.Mh(e), f = e.t, f > 1 || f == -1 ? (c = u(h, 15), r.Wb(g8e(n, c))) : r.Wb(IF(n, u(h, 58))))); + } + function Kke(n, e, t, i) { + DEn(); + var r = RK; + function c() { + for (var s = 0; s < r.length; s++) + r[s](); + } + if (n) + try { + Ise(c)(); + } catch (s) { + n(e, s); + } + else + Ise(c)(); + } + function _ke(n, e) { + var t, i, r, c; + for (r = (c = new Ua(n.b).a.vc().Kc(), new PE(c)); r.a.Ob(); ) + if (i = (t = u(r.a.Pb(), 44), u(t.ld(), 34)), jX(e, u(i, 17)) < 0) + return !1; + return !0; + } + function Hke(n, e) { + var t, i, r, c; + for (r = (c = new Ua(n.b).a.vc().Kc(), new PE(c)); r.a.Ob(); ) + if (i = (t = u(r.a.Pb(), 44), u(t.ld(), 34)), jX(e, u(i, 17)) > 0) + return !1; + return !0; + } + function qke(n) { + var e, t, i, r, c; + for (i = new fd(new Ga(n.b).a); i.b; ) + t = N0(i), e = u(t.ld(), 10), c = u(u(t.md(), 42).a, 10), r = u(u(t.md(), 42).b, 8), tt(ff(e.n), tt(Ki(c.n), r)); + } + function Uke(n) { + switch (u(v(n.b, (cn(), Vfn)), 387).g) { + case 1: + Ut(_r(rc(new Tn(null, new In(n.d, 16)), new ypn()), new jpn()), new Epn()); + break; + case 2: + RAe(n); + break; + case 0: + pEe(n); + } + } + function Gke(n, e, t) { + var i, r, c; + for (i = t, !i && (i = new op()), i.Ug("Layout", n.a.c.length), c = new C(n.a); c.a < c.c.c.length; ) { + if (r = u(E(c), 47), i.$g()) + return; + r.Kf(e, i.eh(1)); + } + i.Vg(); + } + function gd() { + gd = F, Qq = new k6("V_TOP", 0), m9 = new k6("V_CENTER", 1), p9 = new k6("V_BOTTOM", 2), Jq = new k6("H_LEFT", 3), w9 = new k6("H_CENTER", 4), g9 = new k6("H_RIGHT", 5); + } + function qZ(n) { + var e; + return n.Db & 64 ? UT(n) : (e = new ls(UT(n)), e.a += " (abstract: ", Ul(e, (n.Bb & 256) != 0), e.a += ", interface: ", Ul(e, (n.Bb & 512) != 0), e.a += ")", e.a); + } + function zke(n) { + var e; + n.c == null && (e = x(n.b) === x(oun) ? null : n.b, n.d = e == null ? wu : CPn(e) ? S1e(xIn(e)) : Pi(e) ? mtn : Va(wo(e)), n.a = n.a + ": " + (CPn(e) ? Tae(xIn(e)) : e + ""), n.c = "(" + n.d + ") " + n.a); + } + function Xke() { + function n() { + try { + return (/* @__PURE__ */ new Map()).entries().next().done; + } catch { + return !1; + } + } + return typeof Map === eB && Map.prototype.entries && n() ? Map : LDe(); + } + function Vke(n, e) { + var t, i, r, c; + for (c = new Fi(n.e, 0), t = 0; c.b < c.d.gc(); ) { + if (i = $((oe(c.b < c.d.gc()), R(c.d.Xb(c.c = c.b++)))), r = i - e, r > _R) + return t; + r > -1e-6 && ++t; + } + return t; + } + function UZ(n, e) { + var t; + e != n.b ? (t = null, n.b && (t = OM(n.b, n, -4, t)), e && (t = Wp(e, n, -4, t)), t = YFn(n, e, t), t && t.oj()) : n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 3, e, e)); + } + function MKn(n, e) { + var t; + e != n.f ? (t = null, n.f && (t = OM(n.f, n, -1, t)), e && (t = Wp(e, n, -1, t)), t = QFn(n, e, t), t && t.oj()) : n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 0, e, e)); + } + function Wke(n, e, t, i) { + var r, c, s, f; + return fo(n.e) && (r = e.Lk(), f = e.md(), c = t.md(), s = V1(n, 1, r, f, c, r.Jk() ? Im(n, r, c, D(r, 102) && (u(r, 19).Bb & fr) != 0) : -1, !0), i ? i.nj(s) : i = s), i; + } + function TKn(n) { + var e, t, i; + if (n == null) + return null; + if (t = u(n, 15), t.dc()) + return ""; + for (i = new ql(), e = t.Kc(); e.Ob(); ) + Cr(i, (at(), Oe(e.Pb()))), i.a += " "; + return bL(i, i.a.length - 1); + } + function AKn(n) { + var e, t, i; + if (n == null) + return null; + if (t = u(n, 15), t.dc()) + return ""; + for (i = new ql(), e = t.Kc(); e.Ob(); ) + Cr(i, (at(), Oe(e.Pb()))), i.a += " "; + return bL(i, i.a.length - 1); + } + function Jke(n, e, t) { + var i, r; + return i = n.c[e.c.p][e.p], r = n.c[t.c.p][t.p], i.a != null && r.a != null ? tN(i.a, r.a) : i.a != null ? -1 : r.a != null ? 1 : 0; + } + function Qke(n, e, t) { + return t.Ug("Tree layout", 1), H7(n.b), hf(n.b, (Qp(), LI), LI), hf(n.b, t9, t9), hf(n.b, i9, i9), hf(n.b, r9, r9), n.a = gy(n.b, e), Gke(n, e, t.eh(1)), t.Vg(), e; + } + function Yke(n, e) { + var t, i, r, c, s, f; + if (e) + for (c = e.a.length, t = new Ya(c), f = (t.b - t.a) * t.c < 0 ? (K1(), xa) : new q1(t); f.Ob(); ) + s = u(f.Pb(), 17), r = D4(e, s.a), i = new Vkn(n), uge(i.a, r); + } + function Zke(n, e) { + var t, i, r, c, s, f; + if (e) + for (c = e.a.length, t = new Ya(c), f = (t.b - t.a) * t.c < 0 ? (K1(), xa) : new q1(t); f.Ob(); ) + s = u(f.Pb(), 17), r = D4(e, s.a), i = new Rkn(n), cge(i.a, r); + } + function nye(n) { + var e; + if (n != null && n.length > 0 && Xi(n, n.length - 1) == 33) + try { + return e = $Hn(qo(n, 0, n.length - 1)), e.e == null; + } catch (t) { + if (t = It(t), !D(t, 33)) + throw M(t); + } + return !1; + } + function eye(n, e, t) { + var i, r, c; + switch (i = Hi(e), r = KT(i), c = new Ic(), ic(c, e), t.g) { + case 1: + pi(c, xk(zp(r))); + break; + case 2: + pi(c, zp(r)); + } + return U(c, (cn(), _w), R(v(n, _w))), c; + } + function GZ(n) { + var e, t; + return e = u(fe(new ie(ce(Ei(n.a).a.Kc(), new En()))), 18), t = u(fe(new ie(ce(Qt(n.a).a.Kc(), new En()))), 18), on(un(v(e, (W(), Gf)))) || on(un(v(t, Gf))); + } + function sw() { + sw = F, gj = new s7("ONE_SIDE", 0), zP = new s7("TWO_SIDES_CORNER", 1), XP = new s7("TWO_SIDES_OPPOSING", 2), GP = new s7("THREE_SIDES", 3), UP = new s7("FOUR_SIDES", 4); + } + function SKn(n, e) { + var t, i, r, c; + for (c = new Z(), r = 0, i = e.Kc(); i.Ob(); ) { + for (t = Y(u(i.Pb(), 17).a + r); t.a < n.f && !Gbe(n, t.a); ) + t = Y(t.a + 1), ++r; + if (t.a >= n.f) + break; + Kn(c.c, t); + } + return c; + } + function tye(n, e) { + var t, i, r, c, s; + for (c = new C(e.a); c.a < c.c.c.length; ) + for (r = u(E(c), 10), i = new ie(ce(Ei(r).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 18), s = t.c.i.p, n.n[s] = n.n[s] - 1; + } + function iye(n) { + var e, t; + for (t = new C(n.e.b); t.a < t.c.c.length; ) + e = u(E(t), 30), YOe(n, e); + Ut(ut(rc(rc(new Tn(null, new In(n.e.b, 16)), new l3n()), new p3n()), new m3n()), new ckn(n)); + } + function zZ(n, e) { + return e ? n.mj(e) ? !1 : n.i ? n.i.nj(e) : D(e, 152) ? (n.i = u(e, 152), !0) : (n.i = new gvn(), n.i.nj(e)) : !1; + } + function PKn(n, e, t) { + var i, r, c; + return i = e.Lk(), c = e.md(), r = i.Jk() ? V1(n, 3, i, null, c, Im(n, i, c, D(i, 102) && (u(i, 19).Bb & fr) != 0), !0) : V1(n, 1, i, i.ik(), c, -1, !0), t ? t.nj(r) : t = r, t; + } + function rye(n) { + if (n = Bc(n, !0), An(Zm, n) || An("1", n)) + return _n(), uv; + if (An(cK, n) || An("0", n)) + return _n(), ga; + throw M(new kD("Invalid boolean value: '" + n + "'")); + } + function XZ(n, e, t) { + var i, r, c; + for (r = n.vc().Kc(); r.Ob(); ) + if (i = u(r.Pb(), 44), c = i.ld(), x(e) === x(c) || e != null && rt(e, c)) + return t && (i = new oC(i.ld(), i.md()), r.Qb()), i; + return null; + } + function cye(n) { + Rb(); + var e, t, i; + n.B.Hc((to(), sO)) && (i = n.f.i, e = new PM(n.a.c), t = new up(), t.b = e.c - i.c, t.d = e.d - i.d, t.c = i.c + i.b - (e.c + e.b), t.a = i.d + i.a - (e.d + e.a), n.e.$f(t)); + } + function IKn(n, e, t, i) { + var r, c, s; + for (s = y.Math.min(t, _Un(u(n.b, 68), e, t, i)), c = new C(n.a); c.a < c.c.c.length; ) + r = u(E(c), 225), r != e && (s = y.Math.min(s, IKn(r, e, s, i))); + return s; + } + function VZ(n) { + var e, t, i, r; + for (r = K(Jh, J, 199, n.b.c.length, 0, 2), i = new Fi(n.b, 0); i.b < i.d.gc(); ) + e = (oe(i.b < i.d.gc()), u(i.d.Xb(i.c = i.b++), 30)), t = i.b - 1, r[t] = Y7(e.a); + return r; + } + function WZ(n, e, t) { + var i, r, c; + i = u(Lf(n.a, t), 34), i != null && (c = u(Lf(n.b, i), 67), rw(c, t, !0)), r = u(Lf(n.b, e), 67), r || (r = new Ct(), f1(n.b, e, r)), xt(r, t, r.c.b, r.c), f1(n.a, t, e); + } + function Wx(n, e, t, i, r) { + var c, s, f, h; + for (s = Ehe(kz(xV(I9e(t)), i), _7e(n, t, r)), h = l1(n, t).Kc(); h.Ob(); ) + f = u(h.Pb(), 12), e[f.p] && (c = e[f.p].i, nn(s.d, new ZL(c, AY(s, c)))); + zY(s); + } + function JZ(n, e) { + this.f = new de(), this.b = new de(), this.j = new de(), this.a = n, this.c = e, this.c > 0 && YRn(this, this.c - 1, (en(), Zn)), this.c < this.a.length - 1 && YRn(this, this.c + 1, (en(), Wn)); + } + function uye(n, e) { + var t, i, r, c, s; + for (c = new C(e.d); c.a < c.c.c.length; ) + for (r = u(E(c), 105), s = u(ee(n.c, r), 118).o, i = new dp(r.b); i.a < i.c.a.length; ) + t = u(n5(i), 64), YJ(r, t, s); + } + function QZ(n) { + n.length > 0 && n[0].length > 0 && (this.c = on(un(v(Hi(n[0][0]), (W(), ifn))))), this.a = K(jie, J, 2117, n.length, 0, 2), this.b = K(Eie, J, 2118, n.length, 0, 2), this.d = new zFn(); + } + function oye(n) { + return n.c.length == 0 ? !1 : (Ln(0, n.c.length), u(n.c[0], 18)).c.i.k == (Vn(), Ti) ? !0 : Og(_r(new Tn(null, new In(n, 16)), new t3n()), new i3n()); + } + function OKn(n, e) { + var t, i, r, c, s, f, h; + for (f = dw(e), c = e.f, h = e.g, s = y.Math.sqrt(c * c + h * h), r = 0, i = new C(f); i.a < i.c.c.length; ) + t = u(E(i), 27), r += OKn(n, t); + return y.Math.max(r, s); + } + function Li() { + Li = F, Pa = new j6(n8, 0), Jf = new j6("FREE", 1), Rv = new j6("FIXED_SIDE", 2), Gd = new j6("FIXED_ORDER", 3), el = new j6("FIXED_RATIO", 4), Uc = new j6("FIXED_POS", 5); + } + function sye(n, e) { + var t, i, r; + if (t = e.qi(n.a), t) { + for (r = Oe(gf((!t.b && (t.b = new lo((On(), lr), pc, t)), t.b), ys)), i = 1; i < (Ou(), r0n).length; ++i) + if (An(r0n[i], r)) + return i; + } + return 0; + } + function fye(n) { + var e, t, i, r, c; + if (n == null) + return wu; + for (c = new hd(cr, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i) + e = t[i], pl(c, "" + e); + return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c; + } + function hye(n) { + var e, t, i, r, c; + if (n == null) + return wu; + for (c = new hd(cr, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i) + e = t[i], pl(c, "" + e); + return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c; + } + function DKn(n) { + var e, t, i; + for (i = new hd(cr, "{", "}"), t = n.vc().Kc(); t.Ob(); ) + e = u(t.Pb(), 44), pl(i, RDn(n, e.ld()) + "=" + RDn(n, e.md())); + return i.a ? i.e.length == 0 ? i.a.a : i.a.a + ("" + i.e) : i.c; + } + function lye(n) { + for (var e, t, i, r; !t6(n.o); ) + t = u(Sp(n.o), 42), i = u(t.a, 125), e = u(t.b, 218), r = HT(e, i), e.e == i ? (RC(r.g, e), i.e = r.e + e.a) : (RC(r.b, e), i.e = r.e - e.a), nn(n.e.a, i); + } + function YZ(n, e) { + var t, i, r; + for (t = null, r = u(e.Kb(n), 20).Kc(); r.Ob(); ) + if (i = u(r.Pb(), 18), !t) + t = i.c.i == n ? i.d.i : i.c.i; + else if ((i.c.i == n ? i.d.i : i.c.i) != t) + return !1; + return !0; + } + function LKn(n, e) { + var t, i, r, c, s; + for (t = JHn(n, !1, e), r = new C(t); r.a < r.c.c.length; ) + i = u(E(r), 132), i.d == 0 ? ($N(i, null), xN(i, null)) : (c = i.a, s = i.b, $N(i, s), xN(i, c)); + } + function aye(n) { + var e, t; + return e = new ri(), Mo(e, ire), t = u(v(n, (W(), qc)), 21), t.Hc((mr(), B8)) && Mo(e, ore), t.Hc(mv) && Mo(e, rre), t.Hc(v2) && Mo(e, ure), t.Hc(vv) && Mo(e, cre), e; + } + function ZZ(n, e, t) { + var i, r, c, s, f; + for (s8e(n), r = (n.k == null && (n.k = K(zK, J, 82, 0, 0, 1)), n.k), c = 0, s = r.length; c < s; ++c) + i = r[c], ZZ(i); + f = n.f, f && ZZ(f); + } + function dye(n) { + var e, t, i, r; + for (nOe(n), t = new ie(ce(Cl(n).a.Kc(), new En())); pe(t); ) + e = u(fe(t), 18), i = e.c.i == n, r = i ? e.d : e.c, i ? Di(e, null) : Yi(e, null), U(e, (W(), ofn), r), ACe(n, r.i); + } + function bye(n, e, t, i) { + var r, c; + switch (c = e.i, r = t[c.g][n.d[c.g]], c.g) { + case 1: + r -= i + e.j.b, e.g.b = r; + break; + case 3: + r += i, e.g.b = r; + break; + case 4: + r -= i + e.j.a, e.g.a = r; + break; + case 2: + r += i, e.g.a = r; + } + } + function wye(n) { + var e, t, i; + for (t = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); t.e != t.i.gc(); ) + if (e = u(ue(t), 27), i = cy(e), !pe(new ie(ce(i.a.Kc(), new En())))) + return e; + return null; + } + function wA() { + wA = F, pq = new d7("OVERLAP_REMOVAL", 0), bq = new d7(mVn, 1), mq = new d7("ROTATION", 2), wq = new d7("GRAPH_SIZE_CALCULATION", 3), gq = new d7("OUTGOING_EDGE_ANGLES", 4); + } + function gye() { + var n; + return Aoe ? u(Cm((R1(), Ps), ev), 2115) : (n = u(D($c((R1(), Ps), ev), 569) ? $c(Ps, ev) : new jHn(), 569), Aoe = !0, BOe(n), eNe(n), Hx(n), Or(Ps, ev, n), n); + } + function Jx(n, e, t) { + var i, r; + if (n.j == 0) + return t; + if (r = u(q$n(n, e, t), 76), i = t.Lk(), !i.rk() || !n.a.am(i)) + throw M(new ec("Invalid entry feature '" + i.qk().zb + "." + i.xe() + "'")); + return r; + } + function pye(n, e) { + var t, i, r, c, s, f, h, l; + for (f = n.a, h = 0, l = f.length; h < l; ++h) + for (s = f[h], i = s, r = 0, c = i.length; r < c; ++r) + if (t = i[r], x(e) === x(t) || e != null && rt(e, t)) + return !0; + return !1; + } + function mye(n) { + var e, t, i; + return Cc(n, 0) >= 0 ? (t = Xk(n, QA), i = Bk(n, QA)) : (e = U1(n, 1), t = Xk(e, 5e8), i = Bk(e, 5e8), i = Zi(Bs(i, 1), ki(n, 1))), lf(Bs(i, 32), ki(t, vr)); + } + function NKn(n, e, t) { + var i, r; + switch (i = (oe(e.b != 0), u(Xo(e, e.a.a), 8)), t.g) { + case 0: + i.b = 0; + break; + case 2: + i.b = n.f; + break; + case 3: + i.a = 0; + break; + default: + i.a = n.g; + } + return r = ge(e, 0), _7(r, i), e; + } + function $Kn(n, e, t, i) { + var r, c, s, f, h; + switch (h = n.b, c = e.d, s = c.j, f = sZ(s, h.d[s.g], t), r = tt(Ki(c.n), c.a), c.j.g) { + case 1: + case 3: + f.a += r.a; + break; + case 2: + case 4: + f.b += r.b; + } + xt(i, f, i.c.b, i.c); + } + function vye(n, e, t) { + var i, r, c, s; + for (s = qr(n.e, e, 0), c = new QG(), c.b = t, i = new Fi(n.e, s); i.b < i.d.gc(); ) + r = (oe(i.b < i.d.gc()), u(i.d.Xb(i.c = i.b++), 10)), r.p = t, nn(c.e, r), bo(i); + return c; + } + function kye(n, e, t, i) { + var r, c, s, f, h; + for (r = null, c = 0, f = new C(e); f.a < f.c.c.length; ) + s = u(E(f), 27), h = s.i + s.g, n < s.j + s.f + i && (r ? t.i - h < t.i - c && (r = s) : r = s, c = r.i + r.g); + return r ? c + i : 0; + } + function yye(n, e, t, i) { + var r, c, s, f, h; + for (c = null, r = 0, f = new C(e); f.a < f.c.c.length; ) + s = u(E(f), 27), h = s.j + s.f, n < s.i + s.g + i && (c ? t.j - h < t.j - r && (c = s) : c = s, r = c.j + c.f); + return c ? r + i : 0; + } + function jye(n) { + var e, t, i; + for (e = !1, i = n.b.c.length, t = 0; t < i; t++) + iY(u(sn(n.b, t), 443)) ? !e && t + 1 < i && iY(u(sn(n.b, t + 1), 443)) && (e = !0, u(sn(n.b, t), 443).a = !0) : e = !1; + } + function Eye(n, e, t, i, r) { + var c, s; + for (c = 0, s = 0; s < r; s++) + c = Zi(c, bs(ki(e[s], vr), ki(i[s], vr))), n[s] = Ae(c), c = g0(c, 32); + for (; s < t; s++) + c = Zi(c, ki(e[s], vr)), n[s] = Ae(c), c = g0(c, 32); + } + function Cye(n, e) { + Tm(); + var t, i; + for (i = (ah(), sP), t = n; e > 1; e >>= 1) + e & 1 && (i = Ig(i, t)), t.d == 1 ? t = Ig(t, t) : t = new QBn(pUn(t.a, t.d, K(ye, _e, 28, t.d << 1, 15, 1))); + return i = Ig(i, t), i; + } + function nnn() { + nnn = F; + var n, e, t, i; + for (Lun = K(Oi, Ar, 28, 25, 15, 1), Nun = K(Oi, Ar, 28, 33, 15, 1), i = 152587890625e-16, e = 32; e >= 0; e--) + Nun[e] = i, i *= 0.5; + for (t = 1, n = 24; n >= 0; n--) + Lun[n] = t, t *= 0.5; + } + function Mye(n) { + var e, t; + if (on(un(z(n, (cn(), Kw))))) { + for (t = new ie(ce(Al(n).a.Kc(), new En())); pe(t); ) + if (e = u(fe(t), 74), H0(e) && on(un(z(e, $d)))) + return !0; + } + return !1; + } + function xKn(n, e) { + var t, i, r; + hi(n.f, e) && (e.b = n, i = e.c, qr(n.j, i, 0) != -1 || nn(n.j, i), r = e.d, qr(n.j, r, 0) != -1 || nn(n.j, r), t = e.a.b, t.c.length != 0 && (!n.i && (n.i = new iRn(n)), Ive(n.i, t))); + } + function Tye(n) { + var e, t, i, r, c; + return t = n.c.d, i = t.j, r = n.d.d, c = r.j, i == c ? t.p < r.p ? 0 : 1 : RT(i) == c ? 0 : SY(i) == c ? 1 : (e = n.b, Tu(e.b, RT(i)) ? 0 : 1); + } + function pd(n) { + var e; + this.d = new de(), this.c = n.c, this.e = n.d, this.b = n.b, this.f = new hPn(n.e), this.a = n.a, n.f ? this.g = n.f : this.g = (e = u(of(kO), 9), new _o(e, u(xs(e, e.length), 9), 0)); + } + function gA(n, e) { + var t, i, r, c, s, f; + r = n, s = Y6(r, "layoutOptions"), !s && (s = Y6(r, wWn)), s && (f = s, i = null, f && (i = (c = S$(f, K(fn, J, 2, 0, 6, 1)), new SD(f, c))), i && (t = new EMn(f, e), qi(i, t))); + } + function Gr(n) { + if (D(n, 207)) + return u(n, 27); + if (D(n, 193)) + return Af(u(n, 123)); + throw M(n ? new _l("Only support nodes and ports.") : new fp(CWn)); + } + function Aye(n, e, t, i) { + return (e >= 0 && An(n.substr(e, 3), "GMT") || e >= 0 && An(n.substr(e, 3), "UTC")) && (t[0] = e + 3), Len(n, t, i); + } + function Sye(n, e) { + var t, i, r, c, s; + for (c = n.g.a, s = n.g.b, i = new C(n.d); i.a < i.c.c.length; ) + t = u(E(i), 72), r = t.n, r.a = c, n.i == (en(), Xn) ? r.b = s + n.j.b - t.o.b : r.b = s, tt(r, e), c += t.o.a + n.e; + } + function FKn(n, e, t) { + if (n.b) + throw M(new Ir("The task is already done.")); + return n.p != null ? !1 : (n.p = e, n.r = t, n.k && (n.o = (fl(), nr(vc(Date.now()), b1))), !0); + } + function enn(n) { + var e, t, i, r, c, s, f; + return f = new sp(), t = n.Pg(), r = t != null, r && y4(f, jh, n.Pg()), i = n.xe(), c = i != null, c && y4(f, Qe, n.xe()), e = n.Og(), s = e != null, s && y4(f, "description", n.Og()), f; + } + function BKn(n, e, t) { + var i, r, c; + return c = n.q, n.q = e, n.Db & 4 && !(n.Db & 1) && (r = new Mi(n, 1, 9, c, e), t ? t.nj(r) : t = r), e ? (i = e.c, i != n.r && (t = n.Yk(i, t))) : n.r && (t = n.Yk(null, t)), t; + } + function Pye(n, e, t) { + var i, r, c, s, f; + for (t = (f = e, Wp(f, n.e, -1 - n.c, t)), s = _W(n.a), c = (i = new fd(new Ga(s.a).a), new $E(i)); c.a.b; ) + r = u(N0(c.a).ld(), 89), t = Lm(r, MA(r, n.a), t); + return t; + } + function Iye(n, e, t) { + var i, r, c, s, f; + for (t = (f = e, OM(f, n.e, -1 - n.c, t)), s = _W(n.a), c = (i = new fd(new Ga(s.a).a), new $E(i)); c.a.b; ) + r = u(N0(c.a).ld(), 89), t = Lm(r, MA(r, n.a), t); + return t; + } + function Oye(n, e, t, i) { + var r, c, s; + if (i == 0) + Oc(e, 0, n, t, n.length - t); + else + for (s = 32 - i, n[n.length - 1] = 0, c = n.length - 1; c > t; c--) + n[c] |= e[c - t - 1] >>> s, n[c - 1] = e[c - t - 1] << i; + for (r = 0; r < t; r++) + n[r] = 0; + } + function Dye(n) { + var e, t, i, r, c; + for (e = 0, t = 0, c = n.Kc(); c.Ob(); ) + i = u(c.Pb(), 117), e = y.Math.max(e, i.d.b), t = y.Math.max(t, i.d.c); + for (r = n.Kc(); r.Ob(); ) + i = u(r.Pb(), 117), i.d.b = e, i.d.c = t; + } + function Lye(n) { + var e, t, i, r, c; + for (t = 0, e = 0, c = n.Kc(); c.Ob(); ) + i = u(c.Pb(), 117), t = y.Math.max(t, i.d.d), e = y.Math.max(e, i.d.a); + for (r = n.Kc(); r.Ob(); ) + i = u(r.Pb(), 117), i.d.d = t, i.d.a = e; + } + function Qx(n, e, t, i, r) { + var c, s; + c = u(Wr(ut(e.Oc(), new dpn()), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), Yk(c), s = u(sd(n.b, t, i), 15), r == 0 ? s.cd(0, c) : s.Gc(c); + } + function Nye(n, e, t) { + t.Ug("Grow Tree", 1), n.b = e.f, on(un(v(e, (W4(), O8)))) ? (n.c = new kE(), OOn(n, null)) : n.c = new kE(), n.a = !1, cqn(n, e.f), U(e, uon, (_n(), !!n.a)), t.Vg(); + } + function tnn(n) { + var e, t, i, r; + for (e = null, r = new C(n.Rf()); r.a < r.c.c.length; ) + i = u(E(r), 187), t = new Ho(i.Lf().a, i.Lf().b, i.Mf().a, i.Mf().b), e ? D5(e, t) : e = t; + return !e && (e = new mp()), e; + } + function Yx(n, e, t, i) { + var r, c; + return t == 1 ? (!n.n && (n.n = new q(Sr, n, 1, 7)), Vc(n.n, e, i)) : (c = u($n((r = u(Un(n, 16), 29), r || n.ii()), t), 69), c.wk().zk(n, iu(n), t - se(n.ii()), e, i)); + } + function Zx(n, e, t) { + var i, r, c, s, f; + for (i = t.gc(), n._i(n.i + i), f = n.i - e, f > 0 && Oc(n.g, e, n.g, e + i, f), s = t.Kc(), n.i += i, r = 0; r < i; ++r) + c = s.Pb(), I6(n, e, n.Zi(e, c)), n.Mi(e, c), n.Ni(), ++e; + return i != 0; + } + function Ff(n, e, t) { + var i; + return e != n.q ? (n.q && (t = OM(n.q, n, -10, t)), e && (t = Wp(e, n, -10, t)), t = BKn(n, e, t)) : n.Db & 4 && !(n.Db & 1) && (i = new Mi(n, 1, 9, e, e), t ? t.nj(i) : t = i), t; + } + function nF(n, e, t, i) { + return DV((t & bh) == 0, "flatMap does not support SUBSIZED characteristic"), DV((t & 4) == 0, "flatMap does not support SORTED characteristic"), Se(n), Se(e), new MDn(n, e, t, i); + } + function $ye(n, e) { + PW(e, "Cannot suppress a null exception."), x7(e != n, "Exception can not suppress itself."), !n.i && (n.k == null ? n.k = A(T(zK, 1), J, 82, 0, [e]) : n.k[n.k.length] = e); + } + function xye(n, e) { + var t; + if (t = eTn(n.b.ag(), e.b.ag()), t != 0) + return t; + switch (n.b.ag().g) { + case 1: + case 2: + return Ec(n.b.Nf(), e.b.Nf()); + case 3: + case 4: + return Ec(e.b.Nf(), n.b.Nf()); + } + return 0; + } + function Fye(n) { + var e, t, i; + for (i = n.e.c.length, n.a = Ja(ye, [J, _e], [53, 28], 15, [i, i], 2), t = new C(n.c); t.a < t.c.c.length; ) + e = u(E(t), 290), n.a[e.c.a][e.d.a] += u(v(e, (Us(), k3)), 17).a; + } + function Bye(n, e) { + var t, i, r, c, s; + if (n == null) + return null; + for (s = K(fs, wh, 28, 2 * e, 15, 1), i = 0, r = 0; i < e; ++i) + t = n[i] >> 4 & 15, c = n[i] & 15, s[r++] = Ddn[t], s[r++] = Ddn[c]; + return ws(s, 0, s.length); + } + function bu(n) { + var e, t; + return n >= fr ? (e = Sy + (n - fr >> 10 & 1023) & oi, t = 56320 + (n - fr & 1023) & oi, String.fromCharCode(e) + ("" + String.fromCharCode(t))) : String.fromCharCode(n & oi); + } + function Rye(n, e) { + Rb(); + var t, i, r, c; + return r = u(u(ot(n.r, e), 21), 87), r.gc() >= 2 ? (i = u(r.Kc().Pb(), 117), t = n.u.Hc((Uu(), A9)), c = n.u.Hc(B3), !i.a && !t && (r.gc() == 2 || c)) : !1; + } + function RKn(n, e, t, i, r) { + var c, s, f; + for (c = Cqn(n, e, t, i, r), f = !1; !c; ) + EA(n, r, !0), f = !0, c = Cqn(n, e, t, i, r); + f && EA(n, r, !1), s = B$(r), s.c.length != 0 && (n.d && n.d.Gg(s), RKn(n, r, t, i, s)); + } + function pA() { + pA = F, dU = new y6(vh, 0), tdn = new y6("DIRECTED", 1), rdn = new y6("UNDIRECTED", 2), ndn = new y6("ASSOCIATION", 3), idn = new y6("GENERALIZATION", 4), edn = new y6("DEPENDENCY", 5); + } + function Kye(n, e) { + var t; + if (!Af(n)) + throw M(new Ir(eWn)); + switch (t = Af(n), e.g) { + case 1: + return -(n.j + n.f); + case 2: + return n.i - t.g; + case 3: + return n.j - t.f; + case 4: + return -(n.i + n.g); + } + return 0; + } + function _ye(n, e, t) { + var i, r, c; + return i = e.Lk(), c = e.md(), r = i.Jk() ? V1(n, 4, i, c, null, Im(n, i, c, D(i, 102) && (u(i, 19).Bb & fr) != 0), !0) : V1(n, i.tk() ? 2 : 1, i, c, i.ik(), -1, !0), t ? t.nj(r) : t = r, t; + } + function km(n, e) { + var t, i; + for (Jn(e), i = n.b.c.length, nn(n.b, e); i > 0; ) { + if (t = i, i = (i - 1) / 2 | 0, n.a.Ne(sn(n.b, i), e) <= 0) + return Go(n.b, t, e), !0; + Go(n.b, t, sn(n.b, i)); + } + return Go(n.b, i, e), !0; + } + function inn(n, e, t, i) { + var r, c; + if (r = 0, t) + r = $T(n.a[t.g][e.g], i); + else + for (c = 0; c < dP; c++) + r = y.Math.max(r, $T(n.a[c][e.g], i)); + return e == (wf(), Jc) && n.b && (r = y.Math.max(r, n.b.a)), r; + } + function Hye(n, e) { + var t, i, r, c, s, f; + return r = n.i, c = e.i, !r || !c || r.i != c.i || r.i == (en(), Zn) || r.i == (en(), Wn) ? !1 : (s = r.g.a, t = s + r.j.a, f = c.g.a, i = f + c.j.a, s <= i && t >= f); + } + function KKn(n) { + switch (n.g) { + case 0: + return new cmn(); + case 1: + return new umn(); + default: + throw M(new Gn("No implementation is available for the width approximator " + (n.f != null ? n.f : "" + n.g))); + } + } + function rnn(n, e, t, i) { + var r; + if (r = !1, Pi(i) && (r = !0, y4(e, t, Oe(i))), r || $b(i) && (r = !0, rnn(n, e, t, i)), r || D(i, 242) && (r = !0, ed(e, t, u(i, 242))), !r) + throw M(new vD(Lcn)); + } + function qye(n, e) { + var t, i, r; + if (t = e.qi(n.a), t && (r = gf((!t.b && (t.b = new lo((On(), lr), pc, t)), t.b), vs), r != null)) { + for (i = 1; i < (Ou(), t0n).length; ++i) + if (An(t0n[i], r)) + return i; + } + return 0; + } + function Uye(n, e) { + var t, i, r; + if (t = e.qi(n.a), t && (r = gf((!t.b && (t.b = new lo((On(), lr), pc, t)), t.b), vs), r != null)) { + for (i = 1; i < (Ou(), i0n).length; ++i) + if (An(i0n[i], r)) + return i; + } + return 0; + } + function _Kn(n, e) { + var t, i, r, c; + if (Jn(e), c = n.a.gc(), c < e.gc()) + for (t = n.a.ec().Kc(); t.Ob(); ) + i = t.Pb(), e.Hc(i) && t.Qb(); + else + for (r = e.Kc(); r.Ob(); ) + i = r.Pb(), n.a.Bc(i) != null; + return c != n.a.gc(); + } + function HKn(n) { + var e, t; + switch (t = Ki(cc(A(T(Ci, 1), J, 8, 0, [n.i.n, n.n, n.a]))), e = n.i.d, n.j.g) { + case 1: + t.b -= e.d; + break; + case 2: + t.a += e.c; + break; + case 3: + t.b += e.a; + break; + case 4: + t.a -= e.b; + } + return t; + } + function Gye(n) { + var e; + for (e = (Hp(), u(fe(new ie(ce(Ei(n).a.Kc(), new En()))), 18).c.i); e.k == (Vn(), Ti); ) + U(e, (W(), jj), (_n(), !0)), e = u(fe(new ie(ce(Ei(e).a.Kc(), new En()))), 18).c.i; + } + function eF(n, e, t, i) { + var r, c, s, f; + for (f = g5(e, i), s = f.Kc(); s.Ob(); ) + r = u(s.Pb(), 12), n.d[r.p] = n.d[r.p] + n.c[t.p]; + for (f = g5(t, i), c = f.Kc(); c.Ob(); ) + r = u(c.Pb(), 12), n.d[r.p] = n.d[r.p] - n.c[e.p]; + } + function cnn(n, e, t) { + var i, r; + for (r = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); r.e != r.i.gc(); ) + i = u(ue(r), 27), Ro(i, i.i + e, i.j + t); + qi((!n.b && (n.b = new q(Wt, n, 12, 3)), n.b), new aMn(e, t)); + } + function zye(n, e, t, i) { + var r, c; + for (c = e, r = c.d == null || n.a.Ne(t.d, c.d) > 0 ? 1 : 0; c.a[r] != t; ) + c = c.a[r], r = n.a.Ne(t.d, c.d) > 0 ? 1 : 0; + c.a[r] = i, i.b = t.b, i.a[0] = t.a[0], i.a[1] = t.a[1], t.a[0] = null, t.a[1] = null; + } + function Xye(n) { + var e, t, i, r; + for (e = new Z(), t = K(oo, zh, 28, n.a.c.length, 16, 1), TW(t, t.length), r = new C(n.a); r.a < r.c.c.length; ) + i = u(E(r), 125), t[i.d] || (Kn(e.c, i), sRn(n, i, t)); + return e; + } + function qKn(n, e) { + var t, i, r, c, s; + for (r = e == 1 ? A_ : T_, i = r.a.ec().Kc(); i.Ob(); ) + for (t = u(i.Pb(), 88), s = u(ot(n.f.c, t), 21).Kc(); s.Ob(); ) + c = u(s.Pb(), 42), au(n.b.b, c.b), au(n.b.a, u(c.b, 86).d); + } + function Vye(n, e) { + var t; + e.Ug("Hierarchical port position processing", 1), t = n.b, t.c.length > 0 && dUn((Ln(0, t.c.length), u(t.c[0], 30)), n), t.c.length > 1 && dUn(u(sn(t, t.c.length - 1), 30), n), e.Vg(); + } + function Wye(n) { + Uu(); + var e, t; + return e = yt(Fl, A(T(oO, 1), G, 279, 0, [Ia])), !(kk(LM(e, n)) > 1 || (t = yt(A9, A(T(oO, 1), G, 279, 0, [T9, B3])), kk(LM(t, n)) > 1)); + } + function unn(n, e) { + var t; + t = $c((R1(), Ps), n), D(t, 507) ? Or(Ps, n, new LMn(this, e)) : Or(Ps, n, this), tF(this, e), e == (u4(), Udn) ? (this.wb = u(this, 2038), u(e, 2040)) : this.wb = (G1(), Hn); + } + function Jye(n) { + var e, t, i; + if (n == null) + return null; + for (e = null, t = 0; t < O9.length; ++t) + try { + return wCn(O9[t], n); + } catch (r) { + if (r = It(r), D(r, 33)) + i = r, e = i; + else + throw M(r); + } + throw M(new eT(e)); + } + function UKn() { + UKn = F, EQn = A(T(fn, 1), J, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), CQn = A(T(fn, 1), J, 2, 6, ["Jan", "Feb", "Mar", "Apr", c3, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]); + } + function GKn(n) { + var e, t, i; + e = An(typeof e, xB) ? null : new J0n(), e && (l4(), t = (i = 900, i >= b1 ? "error" : i >= 900 ? "warn" : i >= 800 ? "info" : "log"), nIn(t, n.a), n.b && sen(e, t, n.b, "Exception: ", !0)); + } + function v(n, e) { + var t, i; + return i = (!n.q && (n.q = new de()), ee(n.q, e)), i ?? (t = e.Sg(), D(t, 4) && (t == null ? (!n.q && (n.q = new de()), Bp(n.q, e)) : (!n.q && (n.q = new de()), Xe(n.q, e, t))), t); + } + function Vi() { + Vi = F, Vs = new o7("P1_CYCLE_BREAKING", 0), Wh = new o7("P2_LAYERING", 1), Dc = new o7("P3_NODE_ORDERING", 2), _c = new o7("P4_NODE_PLACEMENT", 3), zr = new o7("P5_EDGE_ROUTING", 4); + } + function Qye(n, e) { + i5(); + var t; + if (n.c == e.c) { + if (n.b == e.b || rve(n.b, e.b)) { + if (t = Ple(n.b) ? 1 : -1, n.a && !e.a) + return t; + if (!n.a && e.a) + return -t; + } + return Ec(n.b.g, e.b.g); + } else + return bt(n.c, e.c); + } + function zKn(n, e) { + var t, i, r; + if (snn(n, e)) + return !0; + for (i = new C(e); i.a < i.c.c.length; ) + if (t = u(E(i), 27), r = CKn(t), LA(n, t, r) || VFn(n, t) - n.g <= n.a) + return !0; + return !1; + } + function Wk() { + Wk = F, QI = (EF(), Q1n), Gq = sue, Uq = oue, U1n = rue, qq = uue, q1n = new h0(8), Qce = new $i((He(), M1), q1n), Yce = new $i(Ud, 8), Zce = W1n, _1n = nue, H1n = eue, Jce = new $i(zj, (_n(), !1)); + } + function mA() { + mA = F, ban = new h0(15), Mue = new $i((He(), M1), ban), Tue = new $i(Ud, 15), wan = new $i(Jj, Y(0)), lan = Due, Eue = qd, Cue = Ta, han = new $i(x2, $Vn), aan = Vj, dan = _2, Wq = Iue, jue = Gj; + } + function Rh(n) { + if ((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b).i != 1 || (!n.c && (n.c = new Nn(he, n, 5, 8)), n.c).i != 1) + throw M(new Gn(mK)); + return Gr(u(L((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b), 0), 84)); + } + function XKn(n) { + if ((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b).i != 1 || (!n.c && (n.c = new Nn(he, n, 5, 8)), n.c).i != 1) + throw M(new Gn(mK)); + return Ck(u(L((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b), 0), 84)); + } + function VKn(n) { + if ((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b).i != 1 || (!n.c && (n.c = new Nn(he, n, 5, 8)), n.c).i != 1) + throw M(new Gn(mK)); + return Ck(u(L((!n.c && (n.c = new Nn(he, n, 5, 8)), n.c), 0), 84)); + } + function ra(n) { + if ((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b).i != 1 || (!n.c && (n.c = new Nn(he, n, 5, 8)), n.c).i != 1) + throw M(new Gn(mK)); + return Gr(u(L((!n.c && (n.c = new Nn(he, n, 5, 8)), n.c), 0), 84)); + } + function onn(n, e, t) { + var i, r, c; + if (++n.j, r = n.Ej(), e >= r || e < 0) + throw M(new Pr(vK + e + Ad + r)); + if (t >= r || t < 0) + throw M(new Pr(kK + t + Ad + r)); + return e != t ? i = (c = n.Cj(t), n.qj(e, c), c) : i = n.xj(t), i; + } + function WKn(n) { + var e, t, i; + if (i = n, n) + for (e = 0, t = n.Eh(); t; t = t.Eh()) { + if (++e > PB) + return WKn(t); + if (i = t, t == n) + throw M(new Ir("There is a cycle in the containment hierarchy of " + n)); + } + return i; + } + function ca(n) { + var e, t, i; + for (i = new hd(cr, "[", "]"), t = n.Kc(); t.Ob(); ) + e = t.Pb(), pl(i, x(e) === x(n) ? "(this Collection)" : e == null ? wu : Jr(e)); + return i.a ? i.e.length == 0 ? i.a.a : i.a.a + ("" + i.e) : i.c; + } + function snn(n, e) { + var t, i; + if (i = !1, e.gc() < 2) + return !1; + for (t = 0; t < e.gc(); t++) + t < e.gc() - 1 ? i = i | LA(n, u(e.Xb(t), 27), u(e.Xb(t + 1), 27)) : i = i | LA(n, u(e.Xb(t), 27), u(e.Xb(0), 27)); + return i; + } + function JKn(n, e) { + var t; + e != n.a ? (t = null, n.a && (t = u(n.a, 54).Th(n, 4, Ef, t)), e && (t = u(e, 54).Rh(n, 4, Ef, t)), t = vY(n, e, t), t && t.oj()) : n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 1, e, e)); + } + function fnn(n, e) { + var t; + e != n.e ? (n.e && BLn(_W(n.e), n), e && (!e.b && (e.b = new NE(new aD())), VAn(e.b, n)), t = oke(n, e, null), t && t.oj()) : n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 4, e, e)); + } + function Yye(n, e) { + var t; + t = e.o, hl(n.f) ? (n.j.a = y.Math.max(n.j.a, t.a), n.j.b += t.b, n.d.c.length > 1 && (n.j.b += n.e)) : (n.j.a += t.a, n.j.b = y.Math.max(n.j.b, t.b), n.d.c.length > 1 && (n.j.a += n.e)); + } + function ua() { + ua = F, une = A(T(hr, 1), Tc, 64, 0, [(en(), Xn), Zn, ae]), cne = A(T(hr, 1), Tc, 64, 0, [Zn, ae, Wn]), one = A(T(hr, 1), Tc, 64, 0, [ae, Wn, Xn]), sne = A(T(hr, 1), Tc, 64, 0, [Wn, Xn, Zn]); + } + function Zye(n, e, t, i) { + var r, c, s, f, h, l, a; + if (s = n.c.d, f = n.d.d, s.j != f.j) + for (a = n.b, r = s.j, h = null; r != f.j; ) + h = e == 0 ? RT(r) : SY(r), c = sZ(r, a.d[r.g], t), l = sZ(h, a.d[h.g], t), Fe(i, tt(c, l)), r = h; + } + function nje(n, e, t, i) { + var r, c, s, f, h; + return s = ZRn(n.a, e, t), f = u(s.a, 17).a, c = u(s.b, 17).a, i && (h = u(v(e, (W(), Gu)), 10), r = u(v(t, Gu), 10), h && r && (KDn(n.b, h, r), f += n.b.i, c += n.b.e)), f > c; + } + function QKn(n) { + var e, t, i, r, c, s, f, h, l; + for (this.a = kRn(n), this.b = new Z(), t = n, i = 0, r = t.length; i < r; ++i) + for (e = t[i], c = new Z(), nn(this.b, c), f = e, h = 0, l = f.length; h < l; ++h) + s = f[h], nn(c, new Ru(s.j)); + } + function eje(n, e, t) { + var i, r, c; + return c = 0, i = t[e], e < t.length - 1 && (r = t[e + 1], n.b[e] ? (c = YLe(n.d, i, r), c += pN(n.a, i, (en(), Zn)), c += pN(n.a, r, Wn)) : c = L4e(n.a, i, r)), n.c[e] && (c += r4e(n.a, i)), c; + } + function tje(n, e, t, i, r) { + var c, s, f, h; + for (h = null, f = new C(i); f.a < f.c.c.length; ) + if (s = u(E(f), 453), s != t && qr(s.e, r, 0) != -1) { + h = s; + break; + } + c = JN(r), Yi(c, t.b), Di(c, h.b), Pn(n.a, r, new zC(c, e, t.f)); + } + function ije(n) { + var e, t, i, r; + if (vg(u(v(n.b, (cn(), Do)), 88))) + return 0; + for (e = 0, i = new C(n.a); i.a < i.c.c.length; ) + t = u(E(i), 10), t.k == (Vn(), Xt) && (r = t.o.a, e = y.Math.max(e, r)); + return e; + } + function YKn(n) { + for (; n.g.c != 0 && n.d.c != 0; ) + OL(n.g).c > OL(n.d).c ? (n.i += n.g.c, px(n.d)) : OL(n.d).c > OL(n.g).c ? (n.e += n.d.c, px(n.g)) : (n.i += sPn(n.g), n.e += sPn(n.d), px(n.g), px(n.d)); + } + function rje(n, e, t) { + var i, r, c, s; + for (c = e.q, s = e.r, new td((af(), Ea), e, c, 1), new td(Ea, c, s, 1), r = new C(t); r.a < r.c.c.length; ) + i = u(E(r), 118), i != c && i != e && i != s && (Xen(n.a, i, e), Xen(n.a, i, s)); + } + function ZKn(n, e, t, i) { + n.a.d = y.Math.min(e, t), n.a.a = y.Math.max(e, i) - n.a.d, e < t ? (n.b = 0.5 * (e + t), n.g = HR * n.b + 0.9 * e, n.f = HR * n.b + 0.9 * t) : (n.b = 0.5 * (e + i), n.g = HR * n.b + 0.9 * i, n.f = HR * n.b + 0.9 * e); + } + function cje(n) { + var e, t, i, r; + if (n.b != 0) { + for (e = new Ct(), r = ge(n, 0); r.b != r.d.c; ) + i = u(be(r), 40), Ri(e, F$(i)), t = i.e, t.a = u(v(i, (pt(), $j)), 17).a, t.b = u(v(i, xj), 17).a; + return e; + } + return new Ct(); + } + function uje(n) { + switch (u(v(n, (cn(), ou)), 171).g) { + case 1: + U(n, ou, (Yo(), H8)); + break; + case 2: + U(n, ou, (Yo(), Fw)); + break; + case 3: + U(n, ou, (Yo(), _8)); + break; + case 4: + U(n, ou, (Yo(), ya)); + } + } + function oje(n, e, t) { + var i; + t.Ug("Self-Loop routing", 1), i = $5e(e), PC(v(e, (JM(), b9))), Ut(_r(ut(ut(rc(new Tn(null, new In(e.b, 16)), new m2n()), new v2n()), new k2n()), new y2n()), new SCn(n, i)), t.Vg(); + } + function ym() { + ym = F, x8 = new m6(vh, 0), Gsn = new m6(s3, 1), Vsn = new m6(f3, 2), Xsn = new m6("LEFT_RIGHT_CONSTRAINT_LOCKING", 3), zsn = new m6("LEFT_RIGHT_CONNECTION_LOCKING", 4), Usn = new m6(WXn, 5); + } + function n_n(n, e, t) { + var i, r, c, s, f, h, l; + f = t.a / 2, c = t.b / 2, i = y.Math.abs(e.a - n.a), r = y.Math.abs(e.b - n.b), h = 1, l = 1, i > f && (h = f / i), r > c && (l = c / r), s = y.Math.min(h, l), n.a += s * (e.a - n.a), n.b += s * (e.b - n.b); + } + function sje(n, e, t, i, r) { + var c, s; + for (s = !1, c = u(sn(t.b, 0), 27); FPe(n, e, c, i, r) && (s = !0, Bke(t, c), t.b.c.length != 0); ) + c = u(sn(t.b, 0), 27); + return t.b.c.length == 0 && Gk(t.j, t), s && fA(e.q), s; + } + function fje(n, e) { + Vg(); + var t, i, r, c; + if (e.b < 2) + return !1; + for (c = ge(e, 0), t = u(be(c), 8), i = t; c.b != c.d.c; ) { + if (r = u(be(c), 8), mF(n, i, r)) + return !0; + i = r; + } + return !!mF(n, i, t); + } + function hnn(n, e, t, i) { + var r, c; + return t == 0 ? (!n.o && (n.o = new Pu((Mc(), tl), A1, n, 0)), UC(n.o, e, i)) : (c = u($n((r = u(Un(n, 16), 29), r || n.ii()), t), 69), c.wk().Ak(n, iu(n), t - se(n.ii()), e, i)); + } + function tF(n, e) { + var t; + e != n.sb ? (t = null, n.sb && (t = u(n.sb, 54).Th(n, 1, I9, t)), e && (t = u(e, 54).Rh(n, 1, I9, t)), t = jY(n, e, t), t && t.oj()) : n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 4, e, e)); + } + function hje(n, e) { + var t, i, r, c; + if (e) + r = yl(e, "x"), t = new Gkn(n), K4(t.a, (Jn(r), r)), c = yl(e, "y"), i = new zkn(n), H4(i.a, (Jn(c), c)); + else + throw M(new nh("All edge sections need an end point.")); + } + function lje(n, e) { + var t, i, r, c; + if (e) + r = yl(e, "x"), t = new Hkn(n), _4(t.a, (Jn(r), r)), c = yl(e, "y"), i = new qkn(n), q4(i.a, (Jn(c), c)); + else + throw M(new nh("All edge sections need a start point.")); + } + function aje(n, e) { + var t, i, r, c, s, f, h; + for (i = AFn(n), c = 0, f = i.length; c < f; ++c) + GKn(e); + for (h = !qf && n.e ? qf ? null : n.d : null; h; ) { + for (t = AFn(h), r = 0, s = t.length; r < s; ++r) + GKn(e); + h = !qf && h.e ? qf ? null : h.d : null; + } + } + function e_n(n, e) { + var t, i; + i = u(v(e, (cn(), Ht)), 101), U(e, (W(), sfn), i), t = e.e, t && (Ut(new Tn(null, new In(t.a, 16)), new OG(n)), Ut(rc(new Tn(null, new In(t.b, 16)), new HU()), new DG(n))); + } + function Vn() { + Vn = F, Xt = new b6("NORMAL", 0), Ti = new b6("LONG_EDGE", 1), ni = new b6("EXTERNAL_PORT", 2), Hc = new b6("NORTH_SOUTH_PORT", 3), Sc = new b6("LABEL", 4), Uf = new b6("BREAKING_POINT", 5); + } + function dje(n) { + var e, t, i, r; + if (e = !1, kt(n, (W(), R8))) + for (t = u(v(n, R8), 85), r = new C(n.j); r.a < r.c.c.length; ) + i = u(E(r), 12), jMe(i) && (e || ($Ee(Hi(n)), e = !0), S8e(u(t.xc(i), 314))); + } + function bje(n) { + var e, t, i, r, c, s, f, h, l; + return l = enn(n), t = n.e, c = t != null, c && y4(l, KS, n.e), f = n.k, s = !!f, s && y4(l, "type", SL(n.k)), i = Z9(n.j), r = !i, r && (h = new Ha(), bf(l, pK, h), e = new ayn(h), qi(n.j, e)), l; + } + function wje(n) { + var e, t, i, r; + for (r = z1((Co(n.gc(), "size"), new fg()), 123), i = !0, t = Qa(n).Kc(); t.Ob(); ) + e = u(t.Pb(), 44), i || (r.a += cr), i = !1, Lc(z1(Lc(r, e.ld()), 61), e.md()); + return (r.a += "}", r).a; + } + function t_n(n, e) { + var t, i, r; + return e &= 63, e < 22 ? (t = n.l << e, i = n.m << e | n.l >> 22 - e, r = n.h << e | n.m >> 22 - e) : e < 44 ? (t = 0, i = n.l << e - 22, r = n.m << e - 22 | n.l >> 44 - e) : (t = 0, i = 0, r = n.l << e - 44), Yc(t & io, i & io, r & Il); + } + function fw(n) { + if (dun == null && (dun = new RegExp("^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$")), !dun.test(n)) + throw M(new eh(W0 + n + '"')); + return parseFloat(n); + } + function i_n(n, e) { + var t, i, r, c, s; + for (r = e == 1 ? A_ : T_, i = r.a.ec().Kc(); i.Ob(); ) + for (t = u(i.Pb(), 88), s = u(ot(n.f.c, t), 21).Kc(); s.Ob(); ) + c = u(s.Pb(), 42), nn(n.b.b, u(c.b, 86)), nn(n.b.a, u(c.b, 86).d); + } + function gje(n, e) { + var t, i, r, c; + for (c = e.b.j, n.a = K(ye, _e, 28, c.c.length, 15, 1), r = 0, i = 0; i < c.c.length; i++) + t = (Ln(i, c.c.length), u(c.c[i], 12)), t.e.c.length == 0 && t.g.c.length == 0 ? r += 1 : r += 3, n.a[i] = r; + } + function vA() { + vA = F, nH = new g6("ALWAYS_UP", 0), Z_ = new g6("ALWAYS_DOWN", 1), tH = new g6("DIRECTION_UP", 2), eH = new g6("DIRECTION_DOWN", 3), iH = new g6("SMART_UP", 4), JP = new g6("SMART_DOWN", 5); + } + function pje(n, e) { + if (n < 0 || e < 0) + throw M(new Gn("k and n must be positive")); + if (e > n) + throw M(new Gn("k must be smaller than n")); + return e == 0 || e == n ? 1 : n == 0 ? 0 : FZ(n) / (FZ(e) * FZ(n - e)); + } + function lnn(n, e) { + var t, i, r, c; + for (t = new AX(n); t.g == null && !t.c ? cJ(t) : t.g == null || t.i != 0 && u(t.g[t.i - 1], 51).Ob(); ) + if (c = u(CA(t), 58), D(c, 167)) + for (i = u(c, 167), r = 0; r < e.length; r++) + e[r].Kg(i); + } + function iF(n) { + var e; + return n.Db & 64 ? ox(n) : (e = new ls(ox(n)), e.a += " (height: ", hg(e, n.f), e.a += ", width: ", hg(e, n.g), e.a += ", x: ", hg(e, n.i), e.a += ", y: ", hg(e, n.j), e.a += ")", e.a); + } + function mje(n) { + var e, t, i, r, c, s, f; + for (e = new Yl(), i = n, r = 0, c = i.length; r < c; ++r) + if (t = i[r], s = Se(t.ld()), f = f1(e, s, Se(t.md())), f != null) + throw M(new Gn("duplicate key: " + s)); + this.b = (Dn(), new eD(e)); + } + function vje(n) { + var e, t, i, r, c; + if (n == null) + return wu; + for (c = new hd(cr, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i) + e = t[i], pl(c, String.fromCharCode(e)); + return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c; + } + function ann() { + ann = F, don = (uT(), vP), RYn = new Mn(cS, don), Y(1), BYn = new Mn(Vtn, Y(300)), Y(0), HYn = new Mn(Wtn, Y(0)), qYn = new Mn(ZB, mh), KYn = new Mn(nR, 5), UYn = vP, _Yn = v_; + } + function kje(n, e) { + var t; + if (e != null && !n.c.Hk().fk(e)) + throw t = D(e, 58) ? u(e, 58).Dh().zb : Va(wo(e)), M(new t4(ba + n.c.xe() + "'s type '" + n.c.Hk().xe() + "' does not permit a value of type '" + t + "'")); + } + function yje(n, e, t) { + var i, r; + for (r = new Fi(n.b, 0); r.b < r.d.gc(); ) + i = (oe(r.b < r.d.gc()), u(r.d.Xb(r.c = r.b++), 72)), x(v(i, (W(), ufn))) === x(e) && (mnn(i.n, Hi(n.c.i), t), bo(r), nn(e.b, i)); + } + function r_n(n) { + var e, t; + return t = y.Math.sqrt((n.k == null && (n.k = FQ(n, new Hpn())), $(n.k) / (n.b * (n.g == null && (n.g = Exn(n, new WU())), $(n.g))))), e = Ae(vc(y.Math.round(t))), e = y.Math.min(e, n.f), e; + } + function jje() { + var n, e, t; + for (e = 0, n = 0; n < 1; n++) { + if (t = _nn((zn(n, 1), "X".charCodeAt(n))), t == 0) + throw M(new Le((zn(n, 1 + 1), "Unknown Option: " + "X".substr(n)))); + e |= t; + } + return e; + } + function Ic() { + Iu(), vV.call(this), this.j = (en(), sc), this.a = new Ni(), new sD(), this.f = (Co(2, vw), new zc(2)), this.e = (Co(4, vw), new zc(4)), this.g = (Co(4, vw), new zc(4)), this.b = new ICn(this.e, this.g); + } + function Eje(n, e) { + var t, i; + return !(on(un(v(e, (W(), Gf)))) || (i = e.c.i, n == (Yo(), _8) && i.k == (Vn(), Sc)) || (t = u(v(i, (cn(), ou)), 171), t == ya)); + } + function Cje(n, e) { + var t, i; + return !(on(un(v(e, (W(), Gf)))) || (i = e.d.i, n == (Yo(), H8) && i.k == (Vn(), Sc)) || (t = u(v(i, (cn(), ou)), 171), t == Fw)); + } + function Mje(n, e) { + var t, i, r, c, s, f, h; + for (s = n.d, h = n.o, f = new Ho(-s.b, -s.d, s.b + h.a + s.c, s.d + h.b + s.a), i = e, r = 0, c = i.length; r < c; ++r) + t = i[r], t && D5(f, t.i); + s.b = -f.c, s.d = -f.d, s.c = f.b - s.b - h.a, s.a = f.a - s.d - h.b; + } + function Tje(n, e) { + if (e.a) + switch (u(v(e.b, (W(), sfn)), 101).g) { + case 0: + case 1: + Uke(e); + case 2: + Ut(new Tn(null, new In(e.d, 16)), new GU()), SCe(n.a, e); + } + else + Ut(new Tn(null, new In(e.d, 16)), new GU()); + } + function Jk() { + Jk = F, F1n = new w7("CENTER_DISTANCE", 0), _q = new w7("CIRCLE_UNDERLAP", 1), R1n = new w7("RECTANGLE_UNDERLAP", 2), Hq = new w7("INVERTED_OVERLAP", 3), B1n = new w7("MINIMUM_ROOT_DISTANCE", 4); + } + function Aje(n) { + wen(); + var e, t, i, r, c; + if (n == null) + return null; + for (i = n.length, r = i * 2, e = K(fs, wh, 28, r, 15, 1), t = 0; t < i; t++) + c = n[t], c < 0 && (c += 256), e[t * 2] = SO[c >> 4], e[t * 2 + 1] = SO[c & 15]; + return ws(e, 0, e.length); + } + function Sje(n) { + yM(); + var e, t, i; + switch (i = n.c.length, i) { + case 0: + return rQn; + case 1: + return e = u(B_n(new C(n)), 44), ybe(e.ld(), e.md()); + default: + return t = u(xf(n, K(Id, WA, 44, n.c.length, 0, 1)), 173), new hz(t); + } + } + function Pje(n) { + var e, t, i, r, c, s; + for (e = new Cg(), t = new Cg(), W1(e, n), W1(t, n); t.b != t.c; ) + for (r = u(Sp(t), 36), s = new C(r.a); s.a < s.c.c.length; ) + c = u(E(s), 10), c.e && (i = c.e, W1(e, i), W1(t, i)); + return e; + } + function l1(n, e) { + switch (e.g) { + case 1: + return Cp(n.j, (Iu(), Bon)); + case 2: + return Cp(n.j, (Iu(), xon)); + case 3: + return Cp(n.j, (Iu(), Kon)); + case 4: + return Cp(n.j, (Iu(), _on)); + default: + return Dn(), Dn(), or; + } + } + function Ije(n, e) { + var t, i, r; + t = bbe(e, n.e), i = u(ee(n.g.f, t), 17).a, r = n.a.c.length - 1, n.a.c.length != 0 && u(sn(n.a, r), 294).c == i ? (++u(sn(n.a, r), 294).a, ++u(sn(n.a, r), 294).b) : nn(n.a, new hAn(i)); + } + function Oje(n, e, t) { + var i, r; + return i = XAe(n, e, t), i != 0 ? i : kt(e, (W(), dt)) && kt(t, dt) ? (r = Ec(u(v(e, dt), 17).a, u(v(t, dt), 17).a), r < 0 ? hy(n, e, t) : r > 0 && hy(n, t, e), r) : pCe(n, e, t); + } + function oa() { + oa = F, fce = (He(), N3), hce = Ud, cce = qd, uce = _2, oce = Ta, rce = K2, Jln = Wj, sce = Jw, kq = (Men(), Xre), yq = Vre, Yln = Yre, jq = ece, Zln = Zre, n1n = nce, Qln = Wre, _I = Jre, HI = Qre, Fj = tce, e1n = ice, Wln = zre; + } + function c_n(n, e) { + var t, i, r, c, s; + if (n.e <= e || Z2e(n, n.g, e)) + return n.g; + for (c = n.r, i = n.g, s = n.r, r = (c - i) / 2 + i; i + 1 < c; ) + t = G5(n, r, !1), t.b <= r && t.a <= e ? (s = r, c = r) : i = r, r = (c - i) / 2 + i; + return s; + } + function Dje(n, e, t) { + var i; + i = Tqn(n, e, !0), FKn(t, "Recursive Graph Layout", i), lnn(e, A(T(can, 1), Bn, 536, 0, [new j8n()])), Df(e, (He(), q2)) || lnn(e, A(T(can, 1), Bn, 536, 0, [new Tmn()])), atn(n, e, null, t), u_n(t); + } + function u_n(n) { + var e; + if (n.p == null) + throw M(new Ir("The task has not begun yet.")); + n.b || (n.k && (e = (fl(), nr(vc(Date.now()), b1)), n.q = rd(bs(e, n.o)) * 1e-9), n.c < n.r && CQ(n, n.r - n.c), n.b = !0); + } + function Qk(n) { + var e, t, i; + for (i = new Cu(), Fe(i, new V(n.j, n.k)), t = new ne((!n.a && (n.a = new ii(xo, n, 5)), n.a)); t.e != t.i.gc(); ) + e = u(ue(t), 377), Fe(i, new V(e.a, e.b)); + return Fe(i, new V(n.b, n.c)), i; + } + function Lje(n, e, t, i, r) { + var c, s, f, h, l, a; + if (r) + for (h = r.a.length, c = new Ya(h), a = (c.b - c.a) * c.c < 0 ? (K1(), xa) : new q1(c); a.Ob(); ) + l = u(a.Pb(), 17), f = D4(r, l.a), s = new OIn(n, e, t, i), ePe(s.a, s.b, s.c, s.d, f); + } + function dnn(n, e) { + var t; + if (x(n) === x(e)) + return !0; + if (D(e, 21)) { + t = u(e, 21); + try { + return n.gc() == t.gc() && n.Ic(t); + } catch (i) { + if (i = It(i), D(i, 169) || D(i, 212)) + return !1; + throw M(i); + } + } + return !1; + } + function rF(n, e, t, i, r, c) { + switch (this.c = n, e.g) { + case 2: + if (n.a.Ne(r, t) < 0) + throw M(new Gn(Ttn + r + Wzn + t)); + break; + case 1: + n.a.Ne(r, r); + break; + case 3: + n.a.Ne(t, t); + } + this.f = e, this.b = t, this.a = i, this.e = r, this.d = c; + } + function bnn(n, e) { + var t; + nn(n.d, e), t = e.Mf(), n.c ? (n.e.a = y.Math.max(n.e.a, t.a), n.e.b += t.b, n.d.c.length > 1 && (n.e.b += n.a)) : (n.e.a += t.a, n.e.b = y.Math.max(n.e.b, t.b), n.d.c.length > 1 && (n.e.a += n.a)); + } + function Nje(n) { + var e, t, i, r; + switch (r = n.i, e = r.b, i = r.j, t = r.g, r.a.g) { + case 0: + t.a = (n.g.b.o.a - i.a) / 2; + break; + case 1: + t.a = e.d.n.a + e.d.a.a; + break; + case 2: + t.a = e.d.n.a + e.d.a.a - i.a; + break; + case 3: + t.b = e.d.n.b + e.d.a.b; + } + } + function $je(n, e, t) { + var i, r, c; + for (r = new ie(ce(Cl(t).a.Kc(), new En())); pe(r); ) + i = u(fe(r), 18), !sr(i) && !(!sr(i) && i.c.i.c == i.d.i.c) && (c = WHn(n, i, t, new Zyn()), c.c.length > 1 && Kn(e.c, c)); + } + function o_n(n, e, t, i, r) { + if (i < e || r < t) + throw M(new Gn("The highx must be bigger then lowx and the highy must be bigger then lowy")); + return n.a < e ? n.a = e : n.a > i && (n.a = i), n.b < t ? n.b = t : n.b > r && (n.b = r), n; + } + function xje(n) { + if (D(n, 143)) + return dTe(u(n, 143)); + if (D(n, 233)) + return i8e(u(n, 233)); + if (D(n, 23)) + return bje(u(n, 23)); + throw M(new Gn(Ncn + ca(new Bu(A(T(yi, 1), Bn, 1, 5, [n]))))); + } + function Fje(n, e, t, i, r) { + var c, s, f; + for (c = !0, s = 0; s < i; s++) + c = c & t[s] == 0; + if (r == 0) + Oc(t, i, n, 0, e), s = e; + else { + for (f = 32 - r, c = c & t[s] << f == 0, s = 0; s < e - 1; s++) + n[s] = t[s + i] >>> r | t[s + i + 1] << f; + n[s] = t[s + i] >>> r, ++s; + } + return c; + } + function wnn(n, e, t, i) { + var r, c, s; + if (e.k == (Vn(), Ti)) { + for (c = new ie(ce(Ei(e).a.Kc(), new En())); pe(c); ) + if (r = u(fe(c), 18), s = r.c.i.k, s == Ti && n.c.a[r.c.i.c.p] == i && n.c.a[e.c.p] == t) + return !0; + } + return !1; + } + function Bje(n, e) { + var t, i, r, c; + return e &= 63, t = n.h & Il, e < 22 ? (c = t >>> e, r = n.m >> e | t << 22 - e, i = n.l >> e | n.m << 22 - e) : e < 44 ? (c = 0, r = t >>> e - 22, i = n.m >> e - 22 | n.h << 44 - e) : (c = 0, r = 0, i = t >>> e - 44), Yc(i & io, r & io, c & Il); + } + function s_n(n, e, t, i) { + var r; + this.b = i, this.e = n == (D0(), Z8), r = e[t], this.d = Ja(oo, [J, zh], [183, 28], 16, [r.length, r.length], 2), this.a = Ja(ye, [J, _e], [53, 28], 15, [r.length, r.length], 2), this.c = new JZ(e, t); + } + function Rje(n) { + var e, t, i; + for (n.k = new sJ((en(), A(T(hr, 1), Tc, 64, 0, [sc, Xn, Zn, ae, Wn])).length, n.j.c.length), i = new C(n.j); i.a < i.c.c.length; ) + t = u(E(i), 113), e = t.d.j, Pn(n.k, e, t); + n.e = ZMe(Tp(n.k)); + } + function f_n(n, e) { + var t, i, r; + hi(n.d, e), t = new _3n(), Xe(n.c, e, t), t.f = tx(e.c), t.a = tx(e.d), t.d = (B5(), r = e.c.i.k, r == (Vn(), Xt) || r == Uf), t.e = (i = e.d.i.k, i == Xt || i == Uf), t.b = e.c.j == (en(), Wn), t.c = e.d.j == Zn; + } + function Kje(n) { + var e, t, i, r, c; + for (c = et, r = et, i = new C(xg(n)); i.a < i.c.c.length; ) + t = u(E(i), 218), e = t.e.e - t.d.e, t.e == n && e < r ? r = e : e < c && (c = e); + return r == et && (r = -1), c == et && (c = -1), new wi(Y(r), Y(c)); + } + function _je(n, e) { + var t, i, r; + return r = i2, i = (T5(), fj), r = y.Math.abs(n.b), t = y.Math.abs(e.f - n.b), t < r && (r = t, i = gP), t = y.Math.abs(n.a), t < r && (r = t, i = hj), t = y.Math.abs(e.g - n.a), t < r && (r = t, i = wP), i; + } + function Hje(n, e) { + var t, i, r, c; + for (t = e.a.o.a, c = new Ql(Hi(e.a).b, e.c, e.f + 1), r = new zv(c); r.b < r.d.gc(); ) + if (i = (oe(r.b < r.d.gc()), u(r.d.Xb(r.c = r.b++), 30)), i.c.a >= t) + return jm(n, e, i.p), !0; + return !1; + } + function Ug(n, e, t, i) { + var r, c, s, f, h, l; + for (s = t.length, c = 0, r = -1, l = e$n((zn(e, n.length + 1), n.substr(e)), (xL(), Oun)), f = 0; f < s; ++f) + h = t[f].length, h > c && awe(l, e$n(t[f], Oun)) && (r = f, c = h); + return r >= 0 && (i[0] = e + c), r; + } + function h_n(n) { + var e; + return n.Db & 64 ? iF(n) : (e = new mo(Ecn), !n.a || Re(Re((e.a += ' "', e), n.a), '"'), Re(i0(Re(i0(Re(i0(Re(i0((e.a += " (", e), n.i), ","), n.j), " | "), n.g), ","), n.f), ")"), e.a); + } + function l_n(n, e, t) { + var i, r, c, s, f; + for (f = ru(n.e.Dh(), e), r = u(n.g, 124), i = 0, s = 0; s < n.i; ++s) + if (c = r[s], f.am(c.Lk())) { + if (i == t) + return bw(n, s), dr(), u(e, 69).xk() ? c : c.md(); + ++i; + } + throw M(new Pr(p8 + t + Ad + i)); + } + function a_n(n) { + var e, t, i; + if (e = n.c, e == 2 || e == 7 || e == 1) + return nt(), nt(), K9; + for (i = stn(n), t = null; (e = n.c) != 2 && e != 7 && e != 1; ) + t || (t = (nt(), nt(), new S6(1)), md(t, i), i = t), md(t, stn(n)); + return i; + } + function qje(n, e, t) { + return n < 0 || n > t ? Mnn(n, t, "start index") : e < 0 || e > t ? Mnn(e, t, "end index") : R5("end index (%s) must not be less than start index (%s)", A(T(yi, 1), Bn, 1, 5, [Y(e), Y(n)])); + } + function d_n(n, e) { + var t, i, r, c; + for (i = 0, r = n.length; i < r; i++) { + c = n[i]; + try { + c[1] ? c[0].Um() && (e = Vbe(e, c)) : c[0].Um(); + } catch (s) { + if (s = It(s), D(s, 82)) + t = s, HE(), xge(D(t, 486) ? u(t, 486).ke() : t); + else + throw M(s); + } + } + return e; + } + function jm(n, e, t) { + var i, r, c; + for (t != e.c + e.b.gc() && fIe(e.a, Mve(e, t - e.c)), c = e.a.c.p, n.a[c] = y.Math.max(n.a[c], e.a.o.a), r = u(v(e.a, (W(), K8)), 15).Kc(); r.Ob(); ) + i = u(r.Pb(), 72), U(i, x_, (_n(), !0)); + } + function Uje(n, e) { + var t, i, r; + r = yTe(e), U(e, (W(), dH), r), r && (i = et, gr(n.f, r) && (i = u(Kr(gr(n.f, r)), 17).a), t = u(sn(e.g, 0), 18), on(un(v(t, Gf))) || Xe(n, r, Y(y.Math.min(u(v(t, dt), 17).a, i)))); + } + function b_n(n, e, t) { + var i, r, c, s, f; + for (e.p = -1, f = B0(e, (pr(), Qc)).Kc(); f.Ob(); ) + for (s = u(f.Pb(), 12), r = new C(s.g); r.a < r.c.c.length; ) + i = u(E(r), 18), c = i.d.i, e != c && (c.p < 0 ? t.Fc(i) : c.p > 0 && b_n(n, c, t)); + e.p = 0; + } + function ln(n) { + var e; + this.c = new Ct(), this.f = n.e, this.e = n.d, this.i = n.g, this.d = n.c, this.b = n.b, this.k = n.j, this.a = n.a, n.i ? this.j = n.i : this.j = (e = u(of(Yh), 9), new _o(e, u(xs(e, e.length), 9), 0)), this.g = n.f; + } + function Gje(n) { + var e, t, i, r; + for (e = z1(Re(new mo("Predicates."), "and"), 40), t = !0, r = new zv(n); r.b < r.d.gc(); ) + i = (oe(r.b < r.d.gc()), r.d.Xb(r.c = r.b++)), t || (e.a += ","), e.a += "" + i, t = !1; + return (e.a += ")", e).a; + } + function w_n(n, e, t) { + var i, r, c; + if (!(t <= e + 2)) + for (r = (t - e) / 2 | 0, i = 0; i < r; ++i) + c = (Ln(e + i, n.c.length), u(n.c[e + i], 12)), Go(n, e + i, (Ln(t - i - 1, n.c.length), u(n.c[t - i - 1], 12))), Ln(t - i - 1, n.c.length), n.c[t - i - 1] = c; + } + function zje(n, e, t) { + var i, r, c, s, f, h, l, a; + c = n.d.p, f = c.e, h = c.r, n.g = new D7(h), s = n.d.o.c.p, i = s > 0 ? f[s - 1] : K(Jh, w1, 10, 0, 0, 1), r = f[s], l = s < f.length - 1 ? f[s + 1] : K(Jh, w1, 10, 0, 0, 1), a = e == t - 1, a ? DN(n.g, r, l) : DN(n.g, i, r); + } + function g_n(n) { + var e; + this.j = new Z(), this.f = new ei(), this.b = (e = u(of(hr), 9), new _o(e, u(xs(e, e.length), 9), 0)), this.d = K(ye, _e, 28, (en(), A(T(hr, 1), Tc, 64, 0, [sc, Xn, Zn, ae, Wn])).length, 15, 1), this.g = n; + } + function p_n(n, e) { + var t, i, r; + if (e.c.length != 0) { + for (t = zKn(n, e), r = !1; !t; ) + EA(n, e, !0), r = !0, t = zKn(n, e); + r && EA(n, e, !1), i = B$(e), n.b && n.b.Gg(i), n.a = VFn(n, (Ln(0, e.c.length), u(e.c[0], 27))), p_n(n, i); + } + } + function cF(n, e) { + var t, i, r; + if (i = $n(n.Dh(), e), t = e - n.ji(), t < 0) + if (i) + if (i.rk()) + r = n.Ih(i), r >= 0 ? n.ki(r) : Pnn(n, i); + else + throw M(new Gn(ba + i.xe() + b8)); + else + throw M(new Gn(aWn + e + dWn)); + else + Wo(n, t, i); + } + function gnn(n) { + var e, t; + if (t = null, e = !1, D(n, 211) && (e = !0, t = u(n, 211).a), e || D(n, 263) && (e = !0, t = "" + u(n, 263).a), e || D(n, 493) && (e = !0, t = "" + u(n, 493).a), !e) + throw M(new vD(Lcn)); + return t; + } + function pnn(n, e, t) { + var i, r, c, s, f, h; + for (h = ru(n.e.Dh(), e), i = 0, f = n.i, r = u(n.g, 124), s = 0; s < n.i; ++s) + if (c = r[s], h.am(c.Lk())) { + if (t == i) + return s; + ++i, f = s + 1; + } + if (t == i) + return f; + throw M(new Pr(p8 + t + Ad + i)); + } + function Xje(n, e) { + var t, i, r, c; + if (n.f.c.length == 0) + return null; + for (c = new mp(), i = new C(n.f); i.a < i.c.c.length; ) + t = u(E(i), 72), r = t.o, c.b = y.Math.max(c.b, r.a), c.a += r.b; + return c.a += (n.f.c.length - 1) * e, c; + } + function Vje(n) { + var e, t, i, r; + for (t = new Ct(), Ri(t, n.o), i = new ZG(); t.b != 0; ) + e = u(t.b == 0 ? null : (oe(t.b != 0), Xo(t, t.a.a)), 515), r = ezn(n, e, !0), r && nn(i.a, e); + for (; i.a.c.length != 0; ) + e = u($Fn(i), 515), ezn(n, e, !1); + } + function a1() { + a1 = F, uan = new wp(n8, 0), ji = new wp("BOOLEAN", 1), Zr = new wp("INT", 2), $2 = new wp("STRING", 3), Qi = new wp("DOUBLE", 4), Pt = new wp("ENUM", 5), L3 = new wp("ENUMSET", 6), Xf = new wp("OBJECT", 7); + } + function D5(n, e) { + var t, i, r, c, s; + i = y.Math.min(n.c, e.c), c = y.Math.min(n.d, e.d), r = y.Math.max(n.c + n.b, e.c + e.b), s = y.Math.max(n.d + n.a, e.d + e.a), r < i && (t = i, i = r, r = t), s < c && (t = c, c = s, s = t), DSn(n, i, c, r - i, s - c); + } + function m_n(n, e) { + var t, i; + if (n.f) { + for (; e.Ob(); ) + if (t = u(e.Pb(), 76), i = t.Lk(), D(i, 102) && u(i, 19).Bb & kc && (!n.e || i.pk() != _v || i.Lj() != 0) && t.md() != null) + return e.Ub(), !0; + return !1; + } else + return e.Ob(); + } + function v_n(n, e) { + var t, i; + if (n.f) { + for (; e.Sb(); ) + if (t = u(e.Ub(), 76), i = t.Lk(), D(i, 102) && u(i, 19).Bb & kc && (!n.e || i.pk() != _v || i.Lj() != 0) && t.md() != null) + return e.Pb(), !0; + return !1; + } else + return e.Sb(); + } + function Ou() { + Ou = F, i0n = A(T(fn, 1), J, 2, 6, [Vcn, Qy, YS, PJn, ZS, SK, KS]), t0n = A(T(fn, 1), J, 2, 6, [Vcn, "empty", Qy, Jy, "elementOnly"]), r0n = A(T(fn, 1), J, 2, 6, [Vcn, "preserve", "replace", vf]), zi = new NSn(); + } + function mnn(n, e, t) { + var i, r, c; + if (e != t) { + i = e; + do + tt(n, i.c), r = i.e, r && (c = i.d, d0(n, c.b, c.d), tt(n, r.n), i = Hi(r)); + while (r); + i = t; + do + vi(n, i.c), r = i.e, r && (c = i.d, L6(n, c.b, c.d), vi(n, r.n), i = Hi(r)); + while (r); + } + } + function uF(n, e, t, i) { + var r, c, s, f, h; + if (i.f.c + i.i.c == 0) + for (s = n.a[n.c], f = 0, h = s.length; f < h; ++f) + c = s[f], Xe(i, c, new Oxn(n, c, t)); + return r = u(Kr(gr(i.f, e)), 677), r.b = 0, r.c = r.f, r.c == 0 || r9n(u(sn(r.a, r.b), 294)), r; + } + function Yp() { + Yp = F, dv = new w6("MEDIAN_LAYER", 0), N8 = new w6("TAIL_LAYER", 1), av = new w6("HEAD_LAYER", 2), $w = new w6("SPACE_EFFICIENT_LAYER", 3), p2 = new w6("WIDEST_LAYER", 4), g2 = new w6("CENTER_LAYER", 5); + } + function vnn(n) { + var e, t, i, r; + for (n.e = 0, r = ge(n.f, 0); r.b != r.d.c; ) + i = u(be(r), 10), i.p >= n.d.b.c.length && (e = new Nc(n.d), e.p = i.p - 1, nn(n.d.b, e), t = new Nc(n.d), t.p = i.p, nn(n.d.b, t)), xi(i, u(sn(n.d.b, i.p), 30)); + } + function knn(n, e, t) { + var i, r, c; + if (!n.b[e.g]) { + for (n.b[e.g] = !0, i = t, !i && (i = new tk()), Fe(i.b, e), c = n.a[e.g].Kc(); c.Ob(); ) + r = u(c.Pb(), 65), r.b != e && knn(n, r.b, i), r.c != e && knn(n, r.c, i), Fe(i.a, r); + return i; + } + return null; + } + function Wje(n) { + switch (n.g) { + case 0: + case 1: + case 2: + return en(), Xn; + case 3: + case 4: + case 5: + return en(), ae; + case 6: + case 7: + case 8: + return en(), Wn; + case 9: + case 10: + case 11: + return en(), Zn; + default: + return en(), sc; + } + } + function Jje(n, e) { + var t; + return n.c.length == 0 ? !1 : (t = DBn((Ln(0, n.c.length), u(n.c[0], 18)).c.i), ko(), t == (uw(), P2) || t == S2 ? !0 : Og(_r(new Tn(null, new In(n, 16)), new r3n()), new Y7n(e))); + } + function oF(n, e) { + if (D(e, 207)) + return Ule(n, u(e, 27)); + if (D(e, 193)) + return Gle(n, u(e, 123)); + if (D(e, 452)) + return qle(n, u(e, 166)); + throw M(new Gn(Ncn + ca(new Bu(A(T(yi, 1), Bn, 1, 5, [e]))))); + } + function k_n(n, e, t) { + var i, r; + if (this.f = n, i = u(ee(n.b, e), 260), r = i ? i.a : 0, BJ(t, r), t >= (r / 2 | 0)) + for (this.e = i ? i.c : null, this.d = r; t++ < r; ) + t$n(this); + else + for (this.c = i ? i.b : null; t-- > 0; ) + sQ(this); + this.b = e, this.a = null; + } + function Qje(n, e) { + var t, i; + e.a ? OTe(n, e) : (t = u(ID(n.b, e.b), 60), t && t == n.a[e.b.f] && t.a && t.a != e.b.a && t.c.Fc(e.b), i = u(PD(n.b, e.b), 60), i && n.a[i.f] == e.b && i.a && i.a != e.b.a && e.b.c.Fc(i), EL(n.b, e.b)); + } + function y_n(n, e) { + var t, i; + if (t = u(Mr(n.b, e), 127), u(u(ot(n.r, e), 21), 87).dc()) { + t.n.b = 0, t.n.c = 0; + return; + } + t.n.b = n.C.b, t.n.c = n.C.c, n.A.Hc((go(), zd)) && Xqn(n, e), i = M9e(n, e), kF(n, e) == (Bg(), Sa) && (i += 2 * n.w), t.a.a = i; + } + function j_n(n, e) { + var t, i; + if (t = u(Mr(n.b, e), 127), u(u(ot(n.r, e), 21), 87).dc()) { + t.n.d = 0, t.n.a = 0; + return; + } + t.n.d = n.C.d, t.n.a = n.C.a, n.A.Hc((go(), zd)) && Vqn(n, e), i = C9e(n, e), kF(n, e) == (Bg(), Sa) && (i += 2 * n.w), t.a.b = i; + } + function Yje(n, e) { + var t, i, r, c; + for (c = new Z(), i = new C(e); i.a < i.c.c.length; ) + t = u(E(i), 68), nn(c, new zz(t, !0)), nn(c, new zz(t, !1)); + r = new JIn(n), r.a.a.$b(), lDn(c, n.b, new Bu(A(T(FQn, 1), Bn, 693, 0, [r]))); + } + function E_n(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j; + return h = n.a, p = n.b, l = e.a, m = e.b, a = t.a, k = t.b, d = i.a, j = i.b, c = h * m - p * l, s = a * j - k * d, r = (h - l) * (k - j) - (p - m) * (a - d), f = (c * (a - d) - s * (h - l)) / r, g = (c * (k - j) - s * (p - m)) / r, new V(f, g); + } + function Zje(n, e) { + var t, i, r; + e.Ug("End label pre-processing", 1), t = $(R(v(n, (cn(), T2)))), i = $(R(v(n, Uw))), r = vg(u(v(n, Do), 88)), Ut(rc(new Tn(null, new In(n.b, 16)), new Bwn()), new pSn(t, i, r)), e.Vg(); + } + function ynn(n, e) { + var t, i, r; + if (!n.d[e.p]) { + for (n.d[e.p] = !0, n.a[e.p] = !0, i = new ie(ce(Qt(e).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 18), !sr(t) && (r = t.d.i, n.a[r.p] ? nn(n.b, t) : ynn(n, r)); + n.a[e.p] = !1; + } + } + function C_n(n, e, t) { + var i; + switch (i = 0, u(v(e, (cn(), ou)), 171).g) { + case 2: + i = 2 * -t + n.a, ++n.a; + break; + case 1: + i = -t; + break; + case 3: + i = t; + break; + case 4: + i = 2 * t + n.b, ++n.b; + } + return kt(e, (W(), dt)) && (i += u(v(e, dt), 17).a), i; + } + function M_n(n, e, t) { + var i, r, c; + for (t.zc(e, n), nn(n.n, e), c = n.p.zg(e), e.j == n.p.Ag() ? kBn(n.e, c) : kBn(n.j, c), mM(n), r = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [new n4(e), new ip(e)]))); pe(r); ) + i = u(fe(r), 12), t._b(i) || M_n(n, i, t); + } + function nEe(n, e, t) { + var i, r, c; + for (t.Ug("Processor set neighbors", 1), n.a = e.b.b == 0 ? 1 : e.b.b, r = null, i = ge(e.b, 0); !r && i.b != i.d.c; ) + c = u(be(i), 40), on(un(v(c, (pt(), Ma)))) && (r = c); + r && Pqn(n, new sl(r), t), t.Vg(); + } + function jnn(n) { + var e, t, i; + return t = u(z(n, (He(), qd)), 21), t.Hc((go(), Yw)) ? (i = u(z(n, Ta), 21), e = new ir(u(z(n, _2), 8)), i.Hc((to(), Kv)) && (e.a <= 0 && (e.a = 20), e.b <= 0 && (e.b = 20)), e) : new Ni(); + } + function Enn(n) { + var e, t, i; + if (!n.b) { + for (i = new Evn(), t = new yp(U5(n)); t.e != t.i.gc(); ) + e = u(Mx(t), 19), e.Bb & kc && ve(i, e); + tw(i), n.b = new pg((u(L(H((G1(), Hn).o), 8), 19), i.i), i.g), Yu(n).b &= -9; + } + return n.b; + } + function hw(n) { + var e, t, i; + for (t = n.length, i = 0; i < t && (zn(i, n.length), n.charCodeAt(i) <= 32); ) + ++i; + for (e = t; e > i && (zn(e - 1, n.length), n.charCodeAt(e - 1) <= 32); ) + --e; + return i > 0 || e < t ? (Bi(i, e, n.length), n.substr(i, e - i)) : n; + } + function eEe(n, e) { + var t, i, r, c, s, f, h, l; + h = u(A5(Tp(e.k), K(hr, Tc, 64, 2, 0, 1)), 126), l = e.g, t = NDn(e, h[0]), r = LDn(e, h[1]), i = Kx(n, l, t, r), c = NDn(e, h[1]), f = LDn(e, h[0]), s = Kx(n, l, c, f), i <= s ? (e.a = t, e.c = r) : (e.a = c, e.c = f); + } + function Yk(n) { + var e; + Dn(); + var t, i, r, c, s, f; + if (D(n, 59)) + for (c = 0, r = n.gc() - 1; c < r; ++c, --r) + e = n.Xb(c), n.hd(c, n.Xb(r)), n.hd(r, e); + else + for (t = n.ed(), s = n.fd(n.gc()); t.Tb() < s.Vb(); ) + i = t.Pb(), f = s.Ub(), t.Wb(f), s.Wb(i); + } + function kA(n, e) { + var t, i, r, c, s, f; + for (f = 0, c = new Cg(), W1(c, e); c.b != c.c; ) + for (s = u(Sp(c), 219), f += VRn(s.d, s.e), r = new C(s.b); r.a < r.c.c.length; ) + i = u(E(r), 36), t = u(sn(n.b, i.p), 219), t.s || (f += kA(n, t)); + return f; + } + function T_n(n, e, t, i, r) { + var c, s, f, h, l; + if (e) + for (f = e.Kc(); f.Ob(); ) + for (s = u(f.Pb(), 10), l = ven(s, (pr(), Qc), t).Kc(); l.Ob(); ) + h = u(l.Pb(), 12), c = u(Kr(gr(r.f, h)), 118), c || (c = new yk(n.d), Kn(i.c, c), M_n(c, h, r)); + } + function A_n(n, e, t) { + var i, r; + zxn(this), e == (T0(), Ca) ? hi(this.r, n.c) : hi(this.w, n.c), t == Ca ? hi(this.r, n.d) : hi(this.w, n.d), f_n(this, n), i = tx(n.c), r = tx(n.d), ZKn(this, i, r, r), this.o = (B5(), y.Math.abs(i - r) < 0.2); + } + function S_n(n, e, t) { + var i, r, c, s, f, h; + if (f = u(Un(n.a, 8), 2035), f != null) + for (r = f, c = 0, s = r.length; c < s; ++c) + null.Um(); + i = t, n.a.Db & 1 || (h = new tIn(n, t, e), i.dj(h)), D(i, 686) ? u(i, 686).fj(n.a) : i.cj() == n.a && i.ej(null); + } + function tEe() { + var n; + return kse ? u(Cm((R1(), Ps), Pd), 2044) : (DDe(), n = u(D($c((R1(), Ps), Pd), 594) ? $c(Ps, Pd) : new dIn(), 594), kse = !0, mLe(n), ZLe(n), Xe((xz(), qdn), n, new P6n()), Hx(n), Or(Ps, Pd, n), n); + } + function iEe(n, e, t, i) { + var r; + return r = Ug(n, t, A(T(fn, 1), J, 2, 6, [vB, kB, yB, jB, EB, CB, MB]), e), r < 0 && (r = Ug(n, t, A(T(fn, 1), J, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), e)), r < 0 ? !1 : (i.d = r, !0); + } + function rEe(n, e, t, i) { + var r; + return r = Ug(n, t, A(T(fn, 1), J, 2, 6, [vB, kB, yB, jB, EB, CB, MB]), e), r < 0 && (r = Ug(n, t, A(T(fn, 1), J, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), e)), r < 0 ? !1 : (i.d = r, !0); + } + function Wc(n, e, t) { + var i, r, c, s; + if (s = n.b.Ce(e), r = (i = n.a.get(s), i ?? K(yi, Bn, 1, 0, 5, 1)), r.length == 0) + n.a.set(s, r); + else if (c = BFn(n, e, r), c) + return c.nd(t); + return $t(r, r.length, new oC(e, t)), ++n.c, ++n.b.g, null; + } + function cEe(n) { + var e, t, i; + for (pMe(n), i = new Z(), t = new C(n.a.a.b); t.a < t.c.c.length; ) + e = u(E(t), 86), nn(i, new Wz(e, !0)), nn(i, new Wz(e, !1)); + z9e(n.c), Q7(i, n.b, new Bu(A(T(aj, 1), Bn, 382, 0, [n.c]))), ICe(n); + } + function Zk(n, e) { + var t, i, r; + for (r = new Z(), i = new C(n.c.a.b); i.a < i.c.c.length; ) + t = u(E(i), 60), e.Lb(t) && (nn(r, new Hz(t, !0)), nn(r, new Hz(t, !1))); + G9e(n.e), lDn(r, n.d, new Bu(A(T(FQn, 1), Bn, 693, 0, [n.e]))); + } + function uEe(n) { + var e, t, i, r; + for (t = new de(), r = new C(n.d); r.a < r.c.c.length; ) + i = u(E(r), 187), e = u(i.of((W(), M3)), 18), gr(t.f, e) || Xe(t, e, new qIn(e)), nn(u(Kr(gr(t.f, e)), 466).b, i); + return new Ru(new ol(t)); + } + function oEe(n, e) { + var t, i, r, c, s; + for (i = new dDn(n.j.c.length), t = null, c = new C(n.j); c.a < c.c.c.length; ) + r = u(E(c), 12), r.j != t && (i.b == i.c || qHn(i, t, e), TJ(i), t = r.j), s = MHn(r), s && kJ(i, s); + i.b == i.c || qHn(i, t, e); + } + function sEe(n, e) { + var t, i, r; + for (i = new Fi(n.b, 0); i.b < i.d.gc(); ) + t = (oe(i.b < i.d.gc()), u(i.d.Xb(i.c = i.b++), 72)), r = u(v(t, (cn(), Th)), 278), r == (Nf(), Qw) && (bo(i), nn(e.b, t), kt(t, (W(), M3)) || U(t, M3, n)); + } + function fEe(n) { + var e, t, i, r, c; + for (e = wl(new ie(ce(Qt(n).a.Kc(), new En()))), r = new ie(ce(Ei(n).a.Kc(), new En())); pe(r); ) + i = u(fe(r), 18), t = i.c.i, c = wl(new ie(ce(Qt(t).a.Kc(), new En()))), e = y.Math.max(e, c); + return Y(e); + } + function Cnn(n, e, t) { + var i, r, c; + i = u(z(n, (He(), Gj)), 21), r = 0, c = 0, e.a > t.a && (i.Hc((gd(), w9)) ? r = (e.a - t.a) / 2 : i.Hc(g9) && (r = e.a - t.a)), e.b > t.b && (i.Hc((gd(), m9)) ? c = (e.b - t.b) / 2 : i.Hc(p9) && (c = e.b - t.b)), cnn(n, r, c); + } + function P_n(n, e, t, i, r, c, s, f, h, l, a, d, g) { + D(n.Cb, 90) && lw(Yu(u(n.Cb, 90)), 4), Xc(n, t), n.f = s, fm(n, f), lm(n, h), sm(n, l), hm(n, a), o1(n, d), am(n, g), u1(n, !0), t1(n, r), n.Zk(c), dd(n, e), i != null && (n.i = null, kT(n, i)); + } + function Mnn(n, e, t) { + if (n < 0) + return R5(Tzn, A(T(yi, 1), Bn, 1, 5, [t, Y(n)])); + if (e < 0) + throw M(new Gn(Azn + e)); + return R5("%s (%s) must not be greater than size (%s)", A(T(yi, 1), Bn, 1, 5, [t, Y(n), Y(e)])); + } + function Tnn(n, e, t, i, r, c) { + var s, f, h, l; + if (s = i - t, s < 7) { + z5e(e, t, i, c); + return; + } + if (h = t + r, f = i + r, l = h + (f - h >> 1), Tnn(e, n, h, l, -r, c), Tnn(e, n, l, f, -r, c), c.Ne(n[l - 1], n[l]) <= 0) { + for (; t < i; ) + $t(e, t++, n[h++]); + return; + } + n5e(n, h, l, f, e, t, i, c); + } + function hEe(n, e) { + var t, i, r, c, s, f, h; + for (h = e.d, r = e.b.j, f = new C(h); f.a < f.c.c.length; ) + for (s = u(E(f), 105), c = K(oo, zh, 28, r.c.length, 16, 1), Xe(n.b, s, c), t = s.a.d.p - 1, i = s.c.d.p; t != i; ) + t = (t + 1) % r.c.length, c[t] = !0; + } + function lEe(n, e) { + if (yQ(), kt(n, (W(), dt)) && kt(e, dt)) + return Ec(u(v(n, dt), 17).a, u(v(e, dt), 17).a); + throw M(new hp("The BF model order layer assigner requires all real nodes to have a model order.")); + } + function aEe(n, e) { + if (jQ(), kt(n, (W(), dt)) && kt(e, dt)) + return Ec(u(v(n, dt), 17).a, u(v(e, dt), 17).a); + throw M(new hp("The DF model order layer assigner requires all real nodes to have a model order.")); + } + function dEe(n, e) { + for (n.r = new yk(n.p), cfe(n.r, n), Ri(n.r.j, n.j), vo(n.j), Fe(n.j, e), Fe(n.r.e, e), mM(n), mM(n.r); n.f.c.length != 0; ) + CTn(u(sn(n.f, 0), 132)); + for (; n.k.c.length != 0; ) + CTn(u(sn(n.k, 0), 132)); + return n.r; + } + function sF(n, e, t) { + var i, r, c; + if (r = $n(n.Dh(), e), i = e - n.ji(), i < 0) + if (r) + if (r.rk()) + c = n.Ih(r), c >= 0 ? n.bi(c, t) : ten(n, r, t); + else + throw M(new Gn(ba + r.xe() + b8)); + else + throw M(new Gn(aWn + e + dWn)); + else + Jo(n, i, r, t); + } + function I_n(n) { + var e, t; + if (n.f) { + for (; n.n > 0; ) { + if (e = u(n.k.Xb(n.n - 1), 76), t = e.Lk(), D(t, 102) && u(t, 19).Bb & kc && (!n.e || t.pk() != _v || t.Lj() != 0) && e.md() != null) + return !0; + --n.n; + } + return !1; + } else + return n.n > 0; + } + function O_n(n) { + var e, t, i, r; + if (t = u(n, 54)._h(), t) + try { + if (i = null, e = Cm((R1(), Ps), gUn(r8e(t))), e && (r = e.ai(), r && (i = r.Fl(che(t.e)))), i && i != n) + return O_n(i); + } catch (c) { + if (c = It(c), !D(c, 63)) + throw M(c); + } + return n; + } + function bEe(n, e, t) { + var i, r, c; + t.Ug("Remove overlaps", 1), t.dh(e, xrn), i = u(z(e, (Tg(), D2)), 27), n.f = i, n.a = Ax(u(z(e, (oa(), Fj)), 300)), r = R(z(e, (He(), Ud))), mG(n, (Jn(r), r)), c = dw(i), BGn(n, e, c, t), t.dh(e, DS); + } + function wEe(n) { + var e, t, i; + if (on(un(z(n, (He(), Xj))))) { + for (i = new Z(), t = new ie(ce(Al(n).a.Kc(), new En())); pe(t); ) + e = u(fe(t), 74), H0(e) && on(un(z(e, eU))) && Kn(i.c, e); + return i; + } else + return Dn(), Dn(), or; + } + function D_n(n) { + if (!n) + return Djn(), dQn; + var e = n.valueOf ? n.valueOf() : n; + if (e !== n) { + var t = WK[typeof e]; + return t ? t(e) : wY(typeof e); + } else + return n instanceof Array || n instanceof y.Array ? new aG(n) : new U9(n); + } + function L_n(n, e, t) { + var i, r, c; + switch (c = n.o, i = u(Mr(n.p, t), 252), r = i.i, r.b = ty(i), r.a = ey(i), r.b = y.Math.max(r.b, c.a), r.b > c.a && !e && (r.b = c.a), r.c = -(r.b - c.a) / 2, t.g) { + case 1: + r.d = -r.a; + break; + case 3: + r.d = c.b; + } + LF(i), NF(i); + } + function N_n(n, e, t) { + var i, r, c; + switch (c = n.o, i = u(Mr(n.p, t), 252), r = i.i, r.b = ty(i), r.a = ey(i), r.a = y.Math.max(r.a, c.b), r.a > c.b && !e && (r.a = c.b), r.d = -(r.a - c.b) / 2, t.g) { + case 4: + r.c = -r.b; + break; + case 2: + r.c = c.a; + } + LF(i), NF(i); + } + function gEe(n, e) { + var t, i, r, c, s; + if (!e.dc()) { + if (r = u(e.Xb(0), 131), e.gc() == 1) { + lqn(n, r, r, 1, 0, e); + return; + } + for (t = 1; t < e.gc(); ) + (r.j || !r.o) && (c = j7e(e, t), c && (i = u(c.a, 17).a, s = u(c.b, 131), lqn(n, r, s, t, i, e), t = i + 1, r = s)); + } + } + function pEe(n) { + var e, t, i, r, c, s; + for (s = new Ru(n.d), Zt(s, new kpn()), e = (DA(), A(T(Msn, 1), G, 276, 0, [__, U_, K_, X_, q_, H_, z_, G_])), t = 0, c = new C(s); c.a < c.c.c.length; ) + r = u(E(c), 105), i = e[t % e.length], gCe(r, i), ++t; + } + function mEe(n, e) { + Vg(); + var t, i, r, c; + if (e.b < 2) + return !1; + for (c = ge(e, 0), t = u(be(c), 8), i = t; c.b != c.d.c; ) { + if (r = u(be(c), 8), !(V4(n, i) && V4(n, r))) + return !1; + i = r; + } + return !!(V4(n, i) && V4(n, t)); + } + function Ann(n, e) { + var t, i, r, c, s, f, h, l, a, d; + return a = null, d = n, s = yl(d, "x"), t = new Jkn(e), J4e(t.a, s), f = yl(d, "y"), i = new Qkn(e), Q4e(i.a, f), h = yl(d, dK), r = new Ykn(e), Y4e(r.a, h), l = yl(d, aK), c = new Zkn(e), a = (Z4e(c.a, l), l), a; + } + function lw(n, e) { + Uqn(n, e), n.b & 1 && (n.a.a = null), n.b & 2 && (n.a.f = null), n.b & 4 && (n.a.g = null, n.a.i = null), n.b & 16 && (n.a.d = null, n.a.e = null), n.b & 8 && (n.a.b = null), n.b & 32 && (n.a.j = null, n.a.c = null); + } + function vEe(n, e) { + var t, i, r; + if (r = 0, e.length > 0) + try { + r = Ao(e, Wi, et); + } catch (c) { + throw c = It(c), D(c, 130) ? (i = c, M(new eT(i))) : M(c); + } + return t = (!n.a && (n.a = new iD(n)), n.a), r < t.i && r >= 0 ? u(L(t, r), 58) : null; + } + function kEe(n, e) { + if (n < 0) + return R5(Tzn, A(T(yi, 1), Bn, 1, 5, ["index", Y(n)])); + if (e < 0) + throw M(new Gn(Azn + e)); + return R5("%s (%s) must be less than size (%s)", A(T(yi, 1), Bn, 1, 5, ["index", Y(n), Y(e)])); + } + function yEe(n) { + var e, t, i, r, c; + if (n == null) + return wu; + for (c = new hd(cr, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i) + e = t[i], c.a ? Re(c.a, c.b) : c.a = new mo(c.d), T6(c.a, "" + e); + return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c; + } + function jEe(n) { + var e, t, i, r, c; + if (n == null) + return wu; + for (c = new hd(cr, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i) + e = t[i], c.a ? Re(c.a, c.b) : c.a = new mo(c.d), T6(c.a, "" + e); + return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c; + } + function EEe(n) { + var e, t, i, r, c; + if (n == null) + return wu; + for (c = new hd(cr, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i) + e = t[i], c.a ? Re(c.a, c.b) : c.a = new mo(c.d), T6(c.a, "" + e); + return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c; + } + function CEe(n) { + var e, t, i, r, c; + if (n == null) + return wu; + for (c = new hd(cr, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i) + e = t[i], c.a ? Re(c.a, c.b) : c.a = new mo(c.d), T6(c.a, "" + e); + return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c; + } + function $_n(n, e) { + var t, i, r, c, s, f; + for (t = n.b.c.length, r = sn(n.b, e); e * 2 + 1 < t && (i = (c = 2 * e + 1, s = c + 1, f = c, s < t && n.a.Ne(sn(n.b, s), sn(n.b, c)) < 0 && (f = s), f), !(n.a.Ne(r, sn(n.b, i)) < 0)); ) + Go(n.b, e, sn(n.b, i)), e = i; + Go(n.b, e, r); + } + function fF(n, e, t) { + var i, r; + return i = t.d, r = t.e, n.g[i.d] <= n.i[e.d] && n.i[e.d] <= n.i[i.d] && n.g[r.d] <= n.i[e.d] && n.i[e.d] <= n.i[r.d] ? !(n.i[i.d] < n.i[r.d]) : n.i[i.d] < n.i[r.d]; + } + function MEe(n, e) { + var t; + if (t = u(v(e, (cn(), U8)), 322), t != n) + throw M(new hp("The hierarchy aware processor " + t + " in child node " + e + " is only allowed if the root node specifies the same hierarchical processor.")); + } + function TEe(n, e) { + var t, i, r, c, s; + for (i = (!e.s && (e.s = new q(vu, e, 21, 17)), e.s), c = null, r = 0, s = i.i; r < s; ++r) + switch (t = u(L(i, r), 179), j0(Dr(n, t))) { + case 2: + case 3: + !c && (c = new Z()), Kn(c.c, t); + } + return c || (Dn(), Dn(), or); + } + function x_n(n, e, t) { + var i, r, c, s, f, h; + for (h = St, c = new C(nqn(n.b)); c.a < c.c.c.length; ) + for (r = u(E(c), 177), f = new C(nqn(e.b)); f.a < f.c.c.length; ) + s = u(E(f), 177), i = Wve(r.a, r.b, s.a, s.b, t), h = y.Math.min(h, i); + return h; + } + function pi(n, e) { + if (!e) + throw M(new rp()); + if (n.j = e, !n.d) + switch (n.j.g) { + case 1: + n.a.a = n.o.a / 2, n.a.b = 0; + break; + case 2: + n.a.a = n.o.a, n.a.b = n.o.b / 2; + break; + case 3: + n.a.a = n.o.a / 2, n.a.b = n.o.b; + break; + case 4: + n.a.a = 0, n.a.b = n.o.b / 2; + } + } + function AEe(n, e) { + var t, i, r; + return D(e.g, 10) && u(e.g, 10).k == (Vn(), ni) ? St : (r = xp(e), r ? y.Math.max(0, n.b / 2 - 0.5) : (t = Pg(e), t ? (i = $(R(cw(t, (cn(), pb)))), y.Math.max(0, i / 2 - 0.5)) : St)); + } + function SEe(n, e) { + var t, i, r; + return D(e.g, 10) && u(e.g, 10).k == (Vn(), ni) ? St : (r = xp(e), r ? y.Math.max(0, n.b / 2 - 0.5) : (t = Pg(e), t ? (i = $(R(cw(t, (cn(), pb)))), y.Math.max(0, i / 2 - 0.5)) : St)); + } + function PEe(n, e) { + Fs(); + var t, i, r, c, s, f; + for (t = null, s = e.Kc(); s.Ob(); ) + c = u(s.Pb(), 131), !c.o && (i = f1e(c.a), r = wbe(c.a), f = new q5(i, r, null, u(c.d.a.ec().Kc().Pb(), 18)), nn(f.c, c.a), Kn(n.c, f), t && nn(t.d, f), t = f); + } + function IEe(n) { + var e, t, i, r, c, s; + for (s = g5(n.d, n.e), c = s.Kc(); c.Ob(); ) + for (r = u(c.Pb(), 12), i = n.e == (en(), Wn) ? r.e : r.g, t = new C(i); t.a < t.c.c.length; ) + e = u(E(t), 18), !sr(e) && e.c.i.c != e.d.i.c && (Ije(n, e), ++n.f, ++n.c); + } + function F_n(n, e) { + var t, i; + if (e.dc()) + return Dn(), Dn(), or; + for (i = new Z(), nn(i, Y(Wi)), t = 1; t < n.f; ++t) + n.a == null && qqn(n), n.a[t] && nn(i, Y(t)); + return i.c.length == 1 ? (Dn(), Dn(), or) : (nn(i, Y(et)), KPe(e, i)); + } + function OEe(n, e) { + var t, i, r, c, s, f, h; + s = e.c.i.k != (Vn(), Xt), h = s ? e.d : e.c, t = K7e(e, h).i, r = u(ee(n.k, h), 125), i = n.i[t.p].a, tSn(h.i) < (t.c ? qr(t.c.a, t, 0) : -1) ? (c = r, f = i) : (c = i, f = r), qs(Ls(Ds(Ns(Os(new hs(), 0), 4), c), f)); + } + function DEe(n, e, t) { + var i, r, c, s, f, h; + if (t) + for (r = t.a.length, i = new Ya(r), f = (i.b - i.a) * i.c < 0 ? (K1(), xa) : new q1(i); f.Ob(); ) + s = u(f.Pb(), 17), h = Fx(n, Zp(Qb(t, s.a))), h && (c = (!e.b && (e.b = new Nn(he, e, 4, 7)), e.b), ve(c, h)); + } + function LEe(n, e, t) { + var i, r, c, s, f, h; + if (t) + for (r = t.a.length, i = new Ya(r), f = (i.b - i.a) * i.c < 0 ? (K1(), xa) : new q1(i); f.Ob(); ) + s = u(f.Pb(), 17), h = Fx(n, Zp(Qb(t, s.a))), h && (c = (!e.c && (e.c = new Nn(he, e, 5, 8)), e.c), ve(c, h)); + } + function ny(n, e, t) { + var i, r; + i = e.a & n.f, e.b = n.b[i], n.b[i] = e, r = e.f & n.f, e.d = n.c[r], n.c[r] = e, t ? (e.e = t.e, e.e ? e.e.c = e : n.a = e, e.c = t.c, e.c ? e.c.e = e : n.e = e) : (e.e = n.e, e.c = null, n.e ? n.e.c = e : n.a = e, n.e = e), ++n.i, ++n.g; + } + function B_n(n) { + var e, t, i; + if (e = n.Pb(), !n.Ob()) + return e; + for (i = Lc(Re(new x1(), "expected one element but was: <"), e), t = 0; t < 4 && n.Ob(); t++) + Lc((i.a += cr, i), n.Pb()); + throw n.Ob() && (i.a += ", ..."), i.a += ">", M(new Gn(i.a)); + } + function NEe(n) { + var e, t; + return t = -n.a, e = A(T(fs, 1), wh, 28, 15, [43, 48, 48, 48, 48]), t < 0 && (e[0] = 45, t = -t), e[1] = e[1] + ((t / 60 | 0) / 10 | 0) & oi, e[2] = e[2] + (t / 60 | 0) % 10 & oi, e[3] = e[3] + (t % 60 / 10 | 0) & oi, e[4] = e[4] + t % 10 & oi, ws(e, 0, e.length); + } + function Snn(n) { + var e, t, i, r; + for (n.g = new y5(u(Se(hr), 297)), i = 0, t = (en(), Xn), e = 0; e < n.j.c.length; e++) + r = u(sn(n.j, e), 12), r.j != t && (i != e && Pp(n.g, t, new wi(Y(i), Y(e))), t = r.j, i = e); + Pp(n.g, t, new wi(Y(i), Y(e))); + } + function $Ee(n) { + var e, t, i, r, c, s, f; + for (i = 0, t = new C(n.b); t.a < t.c.c.length; ) + for (e = u(E(t), 30), c = new C(e.a); c.a < c.c.c.length; ) + for (r = u(E(c), 10), r.p = i++, f = new C(r.j); f.a < f.c.c.length; ) + s = u(E(f), 12), s.p = i++; + } + function Pnn(n, e) { + var t, i, r; + if (r = Qg((Ou(), zi), n.Dh(), e), r) + dr(), u(r, 69).xk() || (r = $p(Dr(zi, r))), i = (t = n.Ih(r), u(t >= 0 ? n.Lh(t, !0, !0) : q0(n, r, !0), 160)), u(i, 220).Zl(e); + else + throw M(new Gn(ba + e.xe() + b8)); + } + function Inn(n) { + var e, t; + return n > -140737488355328 && n < 140737488355328 ? n == 0 ? 0 : (e = n < 0, e && (n = -n), t = gi(y.Math.floor(y.Math.log(n) / 0.6931471805599453)), (!e || n != y.Math.pow(2, t)) && ++t, t) : Qxn(vc(n)); + } + function xEe(n) { + var e, t, i, r, c, s, f; + for (c = new ih(), t = new C(n); t.a < t.c.c.length; ) + e = u(E(t), 132), s = e.a, f = e.b, !(c.a._b(s) || c.a._b(f)) && (r = s, i = f, s.e.b + s.j.b > 2 && f.e.b + f.j.b <= 2 && (r = f, i = s), c.a.zc(r, c), r.q = i); + return c; + } + function FEe(n, e, t) { + t.Ug("Eades radial", 1), t.dh(e, DS), n.d = u(z(e, (Tg(), D2)), 27), n.c = $(R(z(e, (oa(), HI)))), n.e = Ax(u(z(e, Fj), 300)), n.a = a8e(u(z(e, e1n), 434)), n.b = Dke(u(z(e, Qln), 354)), bke(n), t.dh(e, DS); + } + function BEe(n, e) { + if (e.Ug("Target Width Setter", 1), Df(n, (Bf(), Nq))) + ht(n, (Kh(), Vw), R(z(n, Nq))); + else + throw M(new Hl("A target width has to be set if the TargetWidthWidthApproximator should be used.")); + e.Vg(); + } + function R_n(n, e) { + var t, i, r; + return i = new Tl(n), Ur(i, e), U(i, (W(), cI), e), U(i, (cn(), Ht), (Li(), Uc)), U(i, Mh, (Bh(), nO)), qa(i, (Vn(), ni)), t = new Ic(), ic(t, i), pi(t, (en(), Wn)), r = new Ic(), ic(r, i), pi(r, Zn), i; + } + function K_n(n) { + switch (n.g) { + case 0: + return new gD((D0(), Oj)); + case 1: + return new i8n(); + case 2: + return new r8n(); + default: + throw M(new Gn("No implementation is available for the crossing minimizer " + (n.f != null ? n.f : "" + n.g))); + } + } + function __n(n, e) { + var t, i, r, c, s; + for (n.c[e.p] = !0, nn(n.a, e), s = new C(e.j); s.a < s.c.c.length; ) + for (c = u(E(s), 12), i = new Of(c.b); tc(i.a) || tc(i.b); ) + t = u(tc(i.a) ? E(i.a) : E(i.b), 18), r = B8e(c, t).i, n.c[r.p] || __n(n, r); + } + function H_n(n) { + var e, t, i, r, c, s, f; + for (s = 0, t = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); t.e != t.i.gc(); ) + e = u(ue(t), 27), f = e.g, r = e.f, i = y.Math.sqrt(f * f + r * r), s = y.Math.max(i, s), c = H_n(e), s = y.Math.max(c, s); + return s; + } + function Uu() { + Uu = F, Ia = new E6("OUTSIDE", 0), Fl = new E6("INSIDE", 1), tE = new E6("NEXT_TO_PORT_IF_POSSIBLE", 2), A9 = new E6("ALWAYS_SAME_SIDE", 3), T9 = new E6("ALWAYS_OTHER_SAME_SIDE", 4), B3 = new E6("SPACE_EFFICIENT", 5); + } + function q_n(n, e, t) { + var i, r, c, s, f, h; + return i = _pe(n, (r = (B1(), c = new Yv(), c), t && SA(r, t), r), e), z4(i, bl(e, jh)), gA(e, i), YCe(e, i), Ann(e, i), s = e, f = S0(s, "ports"), h = new TMn(n, i), xMe(h.a, h.b, f), _$(n, e, i), Uve(n, e, i), i; + } + function REe(n) { + var e, t; + return t = -n.a, e = A(T(fs, 1), wh, 28, 15, [43, 48, 48, 58, 48, 48]), t < 0 && (e[0] = 45, t = -t), e[1] = e[1] + ((t / 60 | 0) / 10 | 0) & oi, e[2] = e[2] + (t / 60 | 0) % 10 & oi, e[4] = e[4] + (t % 60 / 10 | 0) & oi, e[5] = e[5] + t % 10 & oi, ws(e, 0, e.length); + } + function KEe(n) { + var e; + return e = A(T(fs, 1), wh, 28, 15, [71, 77, 84, 45, 48, 48, 58, 48, 48]), n <= 0 && (e[3] = 43, n = -n), e[4] = e[4] + ((n / 60 | 0) / 10 | 0) & oi, e[5] = e[5] + (n / 60 | 0) % 10 & oi, e[7] = e[7] + (n % 60 / 10 | 0) & oi, e[8] = e[8] + n % 10 & oi, ws(e, 0, e.length); + } + function _Ee(n) { + var e, t, i, r, c; + if (n == null) + return wu; + for (c = new hd(cr, "[", "]"), t = n, i = 0, r = t.length; i < r; ++i) + e = t[i], c.a ? Re(c.a, c.b) : c.a = new mo(c.d), T6(c.a, "" + _6(e)); + return c.a ? c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e) : c.c; + } + function Onn(n, e) { + var t, i, r; + for (r = et, i = new C(xg(e)); i.a < i.c.c.length; ) + t = u(E(i), 218), t.f && !n.c[t.c] && (n.c[t.c] = !0, r = y.Math.min(r, Onn(n, HT(t, e)))); + return n.i[e.d] = n.j, n.g[e.d] = y.Math.min(r, n.j++), n.g[e.d]; + } + function U_n(n, e) { + var t, i, r; + for (r = u(u(ot(n.r, e), 21), 87).Kc(); r.Ob(); ) + i = u(r.Pb(), 117), i.e.b = (t = i.b, t.pf((He(), uo)) ? t.ag() == (en(), Xn) ? -t.Mf().b - $(R(t.of(uo))) : $(R(t.of(uo))) : t.ag() == (en(), Xn) ? -t.Mf().b : 0); + } + function HEe(n) { + var e, t, i, r, c, s, f; + for (t = PX(n.e), c = rh(L6(Ki(SX(n.e)), n.d * n.a, n.c * n.b), -0.5), e = t.a - c.a, r = t.b - c.b, f = 0; f < n.c; f++) { + for (i = e, s = 0; s < n.d; s++) + t8e(n.e, new Ho(i, r, n.a, n.b)) && xA(n, s, f, !1, !0), i += n.a; + r += n.b; + } + } + function Dnn(n) { + var e, t, i, r, c; + e = n.a, t = n.b, r = n.c, i = new V(t.e.a + t.f.a / 2, t.e.b + t.f.b / 2), c = new V(r.e.a + r.f.a / 2, r.e.b + r.f.b / 2), xt(e, i, e.a, e.a.a), xt(e, c, e.c.b, e.c), n_n(i, u(Zo(e, 1), 8), n.b.f), n_n(c, u(Zo(e, e.b - 2), 8), n.c.f); + } + function Zp(n) { + var e, t; + if (t = !1, D(n, 211)) + return t = !0, u(n, 211).a; + if (!t && D(n, 263) && (e = u(n, 263).a % 1 == 0, e)) + return t = !0, Y(Mle(u(n, 263).a)); + throw M(new nh("Id must be a string or an integer: '" + n + "'.")); + } + function qEe(n, e) { + var t, i, r, c, s, f; + for (c = null, r = new DPn((!n.a && (n.a = new iD(n)), n.a)); Fnn(r); ) + if (t = u(CA(r), 58), i = (s = t.Dh(), f = (Jg(s), s.o), !f || !t.Xh(f) ? null : MV(x$(f), t.Mh(f))), i != null && An(i, e)) { + c = t; + break; + } + return c; + } + function G_n(n, e, t) { + var i, r, c, s, f; + if (Co(t, "occurrences"), t == 0) + return f = u(iw(Dp(n.a), e), 16), f ? f.gc() : 0; + if (s = u(iw(Dp(n.a), e), 16), !s) + return 0; + if (c = s.gc(), t >= c) + s.$b(); + else + for (r = s.Kc(), i = 0; i < t; i++) + r.Pb(), r.Qb(); + return c; + } + function UEe(n, e, t) { + var i, r, c, s; + return Co(t, "oldCount"), Co(0, "newCount"), i = u(iw(Dp(n.a), e), 16), (i ? i.gc() : 0) == t ? (Co(0, "count"), r = (c = u(iw(Dp(n.a), e), 16), c ? c.gc() : 0), s = -r, s > 0 ? wz() : s < 0 && G_n(n, e, -s), !0) : !1; + } + function ey(n) { + var e, t, i, r, c, s, f; + if (f = 0, n.b == 0) { + for (s = ARn(n, !0), e = 0, i = s, r = 0, c = i.length; r < c; ++r) + t = i[r], t > 0 && (f += t, ++e); + e > 1 && (f += n.c * (e - 1)); + } else + f = Ujn(I$(Gb(ut(CW(n.a), new fbn()), new hbn()))); + return f > 0 ? f + n.n.d + n.n.a : 0; + } + function ty(n) { + var e, t, i, r, c, s, f; + if (f = 0, n.b == 0) + f = Ujn(I$(Gb(ut(CW(n.a), new obn()), new sbn()))); + else { + for (s = SRn(n, !0), e = 0, i = s, r = 0, c = i.length; r < c; ++r) + t = i[r], t > 0 && (f += t, ++e); + e > 1 && (f += n.c * (e - 1)); + } + return f > 0 ? f + n.n.b + n.n.c : 0; + } + function GEe(n) { + var e, t; + if (n.c.length != 2) + throw M(new Ir("Order only allowed for two paths.")); + e = (Ln(0, n.c.length), u(n.c[0], 18)), t = (Ln(1, n.c.length), u(n.c[1], 18)), e.d.i != t.c.i && (n.c.length = 0, Kn(n.c, t), Kn(n.c, e)); + } + function z_n(n, e, t) { + var i; + for (kg(t, e.g, e.f), Ro(t, e.i, e.j), i = 0; i < (!e.a && (e.a = new q(Ye, e, 10, 11)), e.a).i; i++) + z_n(n, u(L((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a), i), 27), u(L((!t.a && (t.a = new q(Ye, t, 10, 11)), t.a), i), 27)); + } + function zEe(n, e) { + var t, i, r, c; + for (c = u(Mr(n.b, e), 127), t = c.a, r = u(u(ot(n.r, e), 21), 87).Kc(); r.Ob(); ) + i = u(r.Pb(), 117), i.c && (t.a = y.Math.max(t.a, eW(i.c))); + if (t.a > 0) + switch (e.g) { + case 2: + c.n.c = n.s; + break; + case 4: + c.n.b = n.s; + } + } + function XEe(n, e) { + var t, i, r; + return t = u(v(e, (Us(), k3)), 17).a - u(v(n, k3), 17).a, t == 0 ? (i = vi(Ki(u(v(n, (Q1(), lj)), 8)), u(v(n, D8), 8)), r = vi(Ki(u(v(e, lj), 8)), u(v(e, D8), 8)), bt(i.a * i.b, r.a * r.b)) : t; + } + function VEe(n, e) { + var t, i, r; + return t = u(v(e, (lc(), FI)), 17).a - u(v(n, FI), 17).a, t == 0 ? (i = vi(Ki(u(v(n, (pt(), Nj)), 8)), u(v(n, Ov), 8)), r = vi(Ki(u(v(e, Nj), 8)), u(v(e, Ov), 8)), bt(i.a * i.b, r.a * r.b)) : t; + } + function X_n(n) { + var e, t; + return t = new x1(), t.a += "e_", e = _ve(n), e != null && (t.a += "" + e), n.c && n.d && (Re((t.a += " ", t), lA(n.c)), Re(Lc((t.a += "[", t), n.c.i), "]"), Re((t.a += iR, t), lA(n.d)), Re(Lc((t.a += "[", t), n.d.i), "]")), t.a; + } + function V_n(n) { + switch (n.g) { + case 0: + return new d8n(); + case 1: + return new b8n(); + case 2: + return new l8n(); + case 3: + return new h8n(); + default: + throw M(new Gn("No implementation is available for the layout phase " + (n.f != null ? n.f : "" + n.g))); + } + } + function Lnn(n, e, t, i, r) { + var c; + switch (c = 0, r.g) { + case 1: + c = y.Math.max(0, e.b + n.b - (t.b + i)); + break; + case 3: + c = y.Math.max(0, -n.b - i); + break; + case 2: + c = y.Math.max(0, -n.a - i); + break; + case 4: + c = y.Math.max(0, e.a + n.a - (t.a + i)); + } + return c; + } + function WEe(n, e, t) { + var i, r, c, s, f; + if (t) + for (r = t.a.length, i = new Ya(r), f = (i.b - i.a) * i.c < 0 ? (K1(), xa) : new q1(i); f.Ob(); ) + s = u(f.Pb(), 17), c = D4(t, s.a), Acn in c.a || pK in c.a ? fSe(n, c, e) : SLe(n, c, e), A1e(u(ee(n.b, bm(c)), 74)); + } + function Nnn(n) { + var e, t; + switch (n.b) { + case -1: + return !0; + case 0: + return t = n.t, t > 1 || t == -1 ? (n.b = -1, !0) : (e = gs(n), e && (dr(), e.lk() == bJn) ? (n.b = -1, !0) : (n.b = 1, !1)); + default: + case 1: + return !1; + } + } + function $nn(n, e) { + var t, i, r, c; + if (Ze(n), n.c != 0 || n.a != 123) + throw M(new Le($e((Ie(), xWn)))); + if (c = e == 112, i = n.d, t = b4(n.i, 125, i), t < 0) + throw M(new Le($e((Ie(), FWn)))); + return r = qo(n.i, i, t), n.d = t + 1, mNn(r, c, (n.e & 512) == 512); + } + function W_n(n) { + var e, t, i, r, c, s, f; + if (i = n.a.c.length, i > 0) + for (s = n.c.d, f = n.d.d, r = rh(vi(new V(f.a, f.b), s), 1 / (i + 1)), c = new V(s.a, s.b), t = new C(n.a); t.a < t.c.c.length; ) + e = u(E(t), 250), e.d.a = c.a + r.a, e.d.b = c.b + r.b, tt(c, r); + } + function JEe(n, e) { + var t, i, r; + if (!e) + j$(n, null), U4(n, null); + else if (e.i & 4) + for (i = "[]", t = e.c; ; t = t.c) { + if (!(t.i & 4)) { + r = dz((ll(t), t.o + i)), j$(n, r), U4(n, r); + break; + } + i += "[]"; + } + else + r = dz((ll(e), e.o)), j$(n, r), U4(n, r); + n.hl(e); + } + function L5(n, e, t, i, r) { + var c, s, f, h; + return h = IL(n, u(r, 58)), x(h) !== x(r) ? (f = u(n.g[t], 76), c = xh(e, h), I6(n, t, Jx(n, t, c)), fo(n.e) && (s = V1(n, 9, c.Lk(), r, h, i, !1), zZ(s, new ml(n.e, 9, n.c, f, c, i, !1)), h$(s)), h) : r; + } + function QEe(n, e, t) { + var i, r, c, s, f, h; + for (i = u(ot(n.c, e), 15), r = u(ot(n.c, t), 15), c = i.fd(i.gc()), s = r.fd(r.gc()); c.Sb() && s.Sb(); ) + if (f = u(c.Ub(), 17), h = u(s.Ub(), 17), f != h) + return Ec(f.a, h.a); + return !c.Ob() && !s.Ob() ? 0 : c.Ob() ? 1 : -1; + } + function YEe(n) { + var e, t, i, r, c, s, f; + for (f = Oh(n.c.length), r = new C(n); r.a < r.c.c.length; ) { + for (i = u(E(r), 10), s = new ei(), c = Qt(i), t = new ie(ce(c.a.Kc(), new En())); pe(t); ) + e = u(fe(t), 18), e.c.i == e.d.i || hi(s, e.d.i); + Kn(f.c, s); + } + return f; + } + function J_n(n, e) { + var t, i, r; + try { + return r = hpe(n.a, e), r; + } catch (c) { + if (c = It(c), D(c, 33)) { + try { + if (i = Ao(e, Wi, et), t = of(n.a), i >= 0 && i < t.length) + return t[i]; + } catch (s) { + if (s = It(s), !D(s, 130)) + throw M(s); + } + return null; + } else + throw M(c); + } + } + function hF(n, e) { + var t, i, r; + if (r = Qg((Ou(), zi), n.Dh(), e), r) + return dr(), u(r, 69).xk() || (r = $p(Dr(zi, r))), i = (t = n.Ih(r), u(t >= 0 ? n.Lh(t, !0, !0) : q0(n, r, !0), 160)), u(i, 220).Wl(e); + throw M(new Gn(ba + e.xe() + sK)); + } + function ZEe() { + Fz(); + var n; + return Yoe ? u(Cm((R1(), Ps), ks), 2038) : (Ge(Id, new k6n()), VOe(), n = u(D($c((R1(), Ps), ks), 560) ? $c(Ps, ks) : new aIn(), 560), Yoe = !0, WLe(n), tNe(n), Xe((xz(), qdn), n, new xvn()), Or(Ps, ks, n), n); + } + function nCe(n, e) { + var t, i, r, c; + n.j = -1, fo(n.e) ? (t = n.i, c = n.i != 0, ek(n, e), i = new ml(n.e, 3, n.c, null, e, t, c), r = e.zl(n.e, n.c, null), r = PKn(n, e, r), r ? (r.nj(i), r.oj()) : it(n.e, i)) : (ek(n, e), r = e.zl(n.e, n.c, null), r && r.oj()); + } + function yA(n, e) { + var t, i, r; + if (r = 0, i = e[0], i >= n.length) + return -1; + for (t = (zn(i, n.length), n.charCodeAt(i)); t >= 48 && t <= 57 && (r = r * 10 + (t - 48), ++i, !(i >= n.length)); ) + t = (zn(i, n.length), n.charCodeAt(i)); + return i > e[0] ? e[0] = i : r = -1, r; + } + function eCe(n) { + var e, t, i, r, c; + return r = u(n.a, 17).a, c = u(n.b, 17).a, t = r, i = c, e = y.Math.max(y.Math.abs(r), y.Math.abs(c)), r <= 0 && r == c ? (t = 0, i = c - 1) : r == -e && c != e ? (t = c, i = r, c >= 0 && ++t) : (t = -c, i = r), new wi(Y(t), Y(i)); + } + function tCe(n, e, t, i) { + var r, c, s, f, h, l; + for (r = 0; r < e.o; r++) + for (c = r - e.j + t, s = 0; s < e.p; s++) + if (f = s - e.k + i, h = c, l = f, h += n.j, l += n.k, h >= 0 && l >= 0 && h < n.o && l < n.p && (!NRn(e, r, s) && ORn(n, c, f) || Kg(e, r, s) && !V9e(n, c, f))) + return !0; + return !1; + } + function iCe(n, e, t) { + var i, r, c, s, f; + s = n.c, f = n.d, c = cc(A(T(Ci, 1), J, 8, 0, [s.i.n, s.n, s.a])).b, r = (c + cc(A(T(Ci, 1), J, 8, 0, [f.i.n, f.n, f.a])).b) / 2, i = null, s.j == (en(), Zn) ? i = new V(e + s.i.c.c.a + t, r) : i = new V(e - t, r), w4(n.a, 0, i); + } + function H0(n) { + var e, t, i, r; + for (e = null, i = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [(!n.b && (n.b = new Nn(he, n, 4, 7)), n.b), (!n.c && (n.c = new Nn(he, n, 5, 8)), n.c)]))); pe(i); ) + if (t = u(fe(i), 84), r = Gr(t), !e) + e = r; + else if (e != r) + return !1; + return !0; + } + function lF(n, e, t) { + var i; + if (++n.j, e >= n.i) + throw M(new Pr(vK + e + Ad + n.i)); + if (t >= n.i) + throw M(new Pr(kK + t + Ad + n.i)); + return i = n.g[t], e != t && (e < t ? Oc(n.g, e, n.g, e + 1, t - e) : Oc(n.g, t + 1, n.g, t, e - t), $t(n.g, e, i), n.Pi(e, i, t), n.Ni()), i; + } + function Pn(n, e, t) { + var i; + if (i = u(n.c.xc(e), 16), i) + return i.Fc(t) ? (++n.d, !0) : !1; + if (i = n.ic(e), i.Fc(t)) + return ++n.d, n.c.zc(e, i), !0; + throw M(new $J("New Collection violated the Collection spec")); + } + function iy(n) { + var e, t, i; + return n < 0 ? 0 : n == 0 ? 32 : (i = -(n >> 16), e = i >> 16 & 16, t = 16 - e, n = n >> e, i = n - 256, e = i >> 16 & 8, t += e, n <<= e, i = n - kw, e = i >> 16 & 4, t += e, n <<= e, i = n - bh, e = i >> 16 & 2, t += e, n <<= e, i = n >> 14, e = i & ~(i >> 1), t + 2 - e); + } + function rCe(n) { + Lp(); + var e, t, i, r; + for (mP = new Z(), m_ = new de(), p_ = new Z(), e = (!n.a && (n.a = new q(Ye, n, 10, 11)), n.a), VDe(e), r = new ne(e); r.e != r.i.gc(); ) + i = u(ue(r), 27), qr(mP, i, 0) == -1 && (t = new Z(), nn(p_, t), ZBn(i, t)); + return p_; + } + function cCe(n, e, t) { + var i, r, c, s; + n.a = t.b.d, D(e, 326) ? (r = Xg(u(e, 74), !1, !1), c = Qk(r), i = new F9n(n), qi(c, i), dy(c, r), e.of((He(), yb)) != null && qi(u(e.of(yb), 75), i)) : (s = u(e, 422), s.rh(s.nh() + n.a.a), s.sh(s.oh() + n.a.b)); + } + function uCe(n, e) { + var t, i, r; + for (r = new Z(), i = ge(e.a, 0); i.b != i.d.c; ) + t = u(be(i), 65), t.c.g == n.g && x(v(t.b, (lc(), Ah))) !== x(v(t.c, Ah)) && !Og(new Tn(null, new In(r, 16)), new hkn(t)) && Kn(r.c, t); + return Zt(r, new U3n()), r; + } + function Q_n(n, e, t) { + var i, r, c, s; + return D(e, 153) && D(t, 153) ? (c = u(e, 153), s = u(t, 153), n.a[c.a][s.a] + n.a[s.a][c.a]) : D(e, 250) && D(t, 250) && (i = u(e, 250), r = u(t, 250), i.a == r.a) ? u(v(r.a, (Us(), k3)), 17).a : 0; + } + function Y_n(n, e) { + var t, i, r, c, s, f, h, l; + for (l = $(R(v(e, (cn(), X8)))), h = n[0].n.a + n[0].o.a + n[0].d.c + l, f = 1; f < n.length; f++) + i = n[f].n, r = n[f].o, t = n[f].d, c = i.a - t.b - h, c < 0 && (i.a -= c), s = e.f, s.a = y.Math.max(s.a, i.a + r.a), h = i.a + r.a + t.c + l; + } + function oCe(n, e) { + var t, i, r, c, s, f; + return i = u(u(ee(n.g, e.a), 42).a, 68), r = u(u(ee(n.g, e.b), 42).a, 68), c = i.b, s = r.b, t = LIe(c, s), t >= 0 ? t : (f = z6(vi(new V(s.c + s.b / 2, s.d + s.a / 2), new V(c.c + c.b / 2, c.d + c.a / 2))), -(CUn(c, s) - 1) * f); + } + function sCe(n, e, t) { + var i; + Ut(new Tn(null, (!t.a && (t.a = new q(Mt, t, 6, 6)), new In(t.a, 16))), new dMn(n, e)), Ut(new Tn(null, (!t.n && (t.n = new q(Sr, t, 1, 7)), new In(t.n, 16))), new bMn(n, e)), i = u(z(t, (He(), yb)), 75), i && BQ(i, n, e); + } + function q0(n, e, t) { + var i, r, c; + if (c = Qg((Ou(), zi), n.Dh(), e), c) + return dr(), u(c, 69).xk() || (c = $p(Dr(zi, c))), r = (i = n.Ih(c), u(i >= 0 ? n.Lh(i, !0, !0) : q0(n, c, !0), 160)), u(r, 220).Sl(e, t); + throw M(new Gn(ba + e.xe() + sK)); + } + function xnn(n, e, t, i) { + var r, c, s, f, h; + if (r = n.d[e], r) { + if (c = r.g, h = r.i, i != null) { + for (f = 0; f < h; ++f) + if (s = u(c[f], 136), s.Bi() == t && rt(i, s.ld())) + return s; + } else + for (f = 0; f < h; ++f) + if (s = u(c[f], 136), x(s.ld()) === x(i)) + return s; + } + return null; + } + function fCe(n, e) { + var t, i, r, c, s; + for (i = (!e.s && (e.s = new q(vu, e, 21, 17)), e.s), c = null, r = 0, s = i.i; r < s; ++r) + switch (t = u(L(i, r), 179), j0(Dr(n, t))) { + case 4: + case 5: + case 6: { + !c && (c = new Z()), Kn(c.c, t); + break; + } + } + return c || (Dn(), Dn(), or); + } + function ry(n, e) { + var t; + if (e < 0) + throw M(new _E("Negative exponent")); + if (e == 0) + return sP; + if (e == 1 || _Y(n, sP) || _Y(n, S8)) + return n; + if (!CHn(n, 0)) { + for (t = 1; !CHn(n, t); ) + ++t; + return Ig(m8e(t * e), ry(NJ(n, t), e)); + } + return Cye(n, e); + } + function hCe(n, e) { + var t, i, r; + if (x(n) === x(e)) + return !0; + if (n == null || e == null || n.length != e.length) + return !1; + for (t = 0; t < n.length; ++t) + if (i = n[t], r = e[t], !(x(i) === x(r) || i != null && rt(i, r))) + return !1; + return !0; + } + function Z_n(n) { + Nz(); + var e, t, i; + for (this.b = CZn, this.c = (ui(), Wf), this.f = (hCn(), EZn), this.a = n, yz(this, new nwn()), PA(this), i = new C(n.b); i.a < i.c.c.length; ) + t = u(E(i), 86), t.d || (e = new vx(A(T(M_, 1), Bn, 86, 0, [t])), nn(n.a, e)); + } + function lCe(n, e, t) { + var i, r, c, s, f, h; + if (!n || n.c.length == 0) + return null; + for (c = new tOn(e, !t), r = new C(n); r.a < r.c.c.length; ) + i = u(E(r), 72), bnn(c, (u6(), new OE(i))); + return s = c.i, s.a = (h = c.n, c.e.b + h.d + h.a), s.b = (f = c.n, c.e.a + f.b + f.c), c; + } + function nHn(n) { + var e, t, i, r, c, s, f; + for (f = Y7(n.a), CX(f, new egn()), t = null, r = f, c = 0, s = r.length; c < s && (i = r[c], i.k == (Vn(), ni)); ++c) + e = u(v(i, (W(), gc)), 64), !(e != (en(), Wn) && e != Zn) && (t && u(v(t, T3), 15).Fc(i), t = i); + } + function aCe(n, e, t) { + var i, r, c, s, f, h, l; + h = (Ln(e, n.c.length), u(n.c[e], 339)), Zl(n, e), h.b / 2 >= t && (i = e, l = (h.c + h.a) / 2, s = l - t, h.c <= l - t && (r = new KL(h.c, s), w0(n, i++, r)), f = l + t, f <= h.a && (c = new KL(f, h.a), Xb(i, n.c.length), d6(n.c, i, c))); + } + function eHn(n, e, t) { + var i, r, c, s, f, h; + if (!e.dc()) { + for (r = new Ct(), h = e.Kc(); h.Ob(); ) + for (f = u(h.Pb(), 40), Xe(n.a, Y(f.g), Y(t)), s = (i = ge(new sl(f).a.d, 0), new sg(i)); Q9(s.a); ) + c = u(be(s.a), 65).c, xt(r, c, r.c.b, r.c); + eHn(n, r, t + 1); + } + } + function Fnn(n) { + var e; + if (!n.c && n.g == null) + n.d = n.bj(n.f), ve(n, n.d), e = n.d; + else { + if (n.g == null) + return !0; + if (n.i == 0) + return !1; + e = u(n.g[n.i - 1], 51); + } + return e == n.b && null.Vm >= null.Um() ? (CA(n), Fnn(n)) : e.Ob(); + } + function tHn(n) { + if (this.a = n, n.c.i.k == (Vn(), ni)) + this.c = n.c, this.d = u(v(n.c.i, (W(), gc)), 64); + else if (n.d.i.k == ni) + this.c = n.d, this.d = u(v(n.d.i, (W(), gc)), 64); + else + throw M(new Gn("Edge " + n + " is not an external edge.")); + } + function iHn(n, e) { + var t, i, r; + r = n.b, n.b = e, n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 3, r, n.b)), e ? e != n && (Xc(n, e.zb), v$(n, e.d), t = (i = e.c, i ?? e.zb), y$(n, t == null || An(t, e.zb) ? null : t)) : (Xc(n, null), v$(n, 0), y$(n, null)); + } + function rHn(n, e) { + var t; + this.e = (v0(), Se(n), v0(), QY(n)), this.c = (Se(e), QY(e)), KX(this.e.Rd().dc() == this.c.Rd().dc()), this.d = vBn(this.e), this.b = vBn(this.c), t = Ja(yi, [J, Bn], [5, 1], 5, [this.e.Rd().gc(), this.c.Rd().gc()], 2), this.a = t, Fme(this); + } + function cHn(n) { + !XK && (XK = uLe()); + var e = n.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g, function(t) { + return h2e(t); + }); + return '"' + e + '"'; + } + function Bnn(n, e, t, i, r, c) { + var s, f, h, l, a; + if (r != 0) + for (x(n) === x(t) && (n = n.slice(e, e + r), e = 0), h = t, f = e, l = e + r; f < l; ) + s = y.Math.min(f + 1e4, l), r = s - f, a = n.slice(f, s), a.splice(0, 0, i, c ? r : 0), Array.prototype.splice.apply(h, a), f = s, i += r; + } + function uHn(n) { + QW(); + var e, t; + for (this.b = RQn, this.c = _Qn, this.g = (fCn(), BQn), this.d = (ui(), Wf), this.a = n, uen(this), t = new C(n.b); t.a < t.c.c.length; ) + e = u(E(t), 60), !e.a && nAn(z$n(new VG(), A(T(aP, 1), Bn, 60, 0, [e])), n), e.e = new PM(e.d); + } + function dCe(n) { + var e, t, i, r, c, s; + for (r = n.e.c.length, i = K(rs, yw, 15, r, 0, 1), s = new C(n.e); s.a < s.c.c.length; ) + c = u(E(s), 153), i[c.a] = new Ct(); + for (t = new C(n.c); t.a < t.c.c.length; ) + e = u(E(t), 290), i[e.c.a].Fc(e), i[e.d.a].Fc(e); + return i; + } + function bCe(n, e) { + var t, i, r, c, s; + if (t = u(Un(n.a, 4), 129), s = t == null ? 0 : t.length, e >= s) + throw M(new _b(e, s)); + return r = t[e], s == 1 ? i = null : (i = K(jU, MK, 424, s - 1, 0, 1), Oc(t, 0, i, 0, e), c = s - e - 1, c > 0 && Oc(t, e + 1, i, e, c)), wm(n, i), S_n(n, e, r), r; + } + function oHn(n) { + var e, t; + if (n.f) { + for (; n.n < n.o; ) { + if (e = u(n.j ? n.j.$i(n.n) : n.k.Xb(n.n), 76), t = e.Lk(), D(t, 102) && u(t, 19).Bb & kc && (!n.e || t.pk() != _v || t.Lj() != 0) && e.md() != null) + return !0; + ++n.n; + } + return !1; + } else + return n.n < n.o; + } + function n3() { + n3 = F, _3 = u(L(H((Mz(), yc).qb), 6), 35), K3 = u(L(H(yc.qb), 3), 35), SU = u(L(H(yc.qb), 4), 35), PU = u(L(H(yc.qb), 5), 19), bA(_3), bA(K3), bA(SU), bA(PU), tse = new Bu(A(T(vu, 1), f2, 179, 0, [_3, K3])); + } + function sHn(n, e) { + var t; + this.d = new Qv(), this.b = e, this.e = new ir(e.Lf()), t = n.u.Hc((Uu(), tE)), n.u.Hc(Fl) ? n.D ? this.a = t && !e.bg() : this.a = !0 : n.u.Hc(Ia) ? t ? this.a = !(e.Uf().Kc().Ob() || e.Wf().Kc().Ob()) : this.a = !1 : this.a = !1; + } + function fHn(n, e) { + var t, i, r, c; + for (t = n.o.a, c = u(u(ot(n.r, e), 21), 87).Kc(); c.Ob(); ) + r = u(c.Pb(), 117), r.e.a = (i = r.b, i.pf((He(), uo)) ? i.ag() == (en(), Wn) ? -i.Mf().a - $(R(i.of(uo))) : t + $(R(i.of(uo))) : i.ag() == (en(), Wn) ? -i.Mf().a : t); + } + function hHn(n, e) { + var t, i, r, c; + t = u(v(n, (cn(), Do)), 88), c = u(z(e, Cv), 64), r = u(v(n, Ht), 101), r != (Li(), Jf) && r != Pa ? c == (en(), sc) && (c = Ren(e, t), c == sc && (c = zp(t))) : (i = hGn(e), i > 0 ? c = zp(t) : c = xk(zp(t))), ht(e, Cv, c); + } + function wCe(n, e) { + var t; + e.Ug("Partition preprocessing", 1), t = u(Wr(ut(rc(ut(new Tn(null, new In(n.a, 16)), new zgn()), new Xgn()), new Vgn()), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), Ut(t.Oc(), new Wgn()), e.Vg(); + } + function gCe(n, e) { + var t, i, r, c, s; + for (s = n.j, e.a != e.b && Zt(s, new Mpn()), r = s.c.length / 2 | 0, i = 0; i < r; i++) + c = (Ln(i, s.c.length), u(s.c[i], 113)), c.c && pi(c.d, e.a); + for (t = r; t < s.c.length; t++) + c = (Ln(t, s.c.length), u(s.c[t], 113)), c.c && pi(c.d, e.b); + } + function pCe(n, e, t) { + var i, r, c; + return i = n.c[e.c.p][e.p], r = n.c[t.c.p][t.p], i.a != null && r.a != null ? (c = tN(i.a, r.a), c < 0 ? hy(n, e, t) : c > 0 && hy(n, t, e), c) : i.a != null ? (hy(n, e, t), -1) : r.a != null ? (hy(n, t, e), 1) : 0; + } + function mCe(n, e) { + var t, i, r, c, s; + for (r = e.b.b, n.a = K(rs, yw, 15, r, 0, 1), n.b = K(oo, zh, 28, r, 16, 1), s = ge(e.b, 0); s.b != s.d.c; ) + c = u(be(s), 40), n.a[c.g] = new Ct(); + for (i = ge(e.a, 0); i.b != i.d.c; ) + t = u(be(i), 65), n.a[t.b.g].Fc(t), n.a[t.c.g].Fc(t); + } + function lHn(n, e) { + var t, i, r, c; + n.Pj() ? (t = n.Ej(), c = n.Qj(), ++n.j, n.qj(t, n.Zi(t, e)), i = n.Ij(3, null, e, t, c), n.Mj() ? (r = n.Nj(e, null), r ? (r.nj(i), r.oj()) : n.Jj(i)) : n.Jj(i)) : (eIn(n, e), n.Mj() && (r = n.Nj(e, null), r && r.oj())); + } + function Rnn(n, e, t) { + var i, r, c; + n.Pj() ? (c = n.Qj(), Dk(n, e, t), i = n.Ij(3, null, t, e, c), n.Mj() ? (r = n.Nj(t, null), n.Tj() && (r = n.Uj(t, r)), r ? (r.nj(i), r.oj()) : n.Jj(i)) : n.Jj(i)) : (Dk(n, e, t), n.Mj() && (r = n.Nj(t, null), r && r.oj())); + } + function jA(n, e) { + var t, i, r, c, s; + for (s = ru(n.e.Dh(), e), r = new EE(), t = u(n.g, 124), c = n.i; --c >= 0; ) + i = t[c], s.am(i.Lk()) && ve(r, i); + !uzn(n, r) && fo(n.e) && e4(n, e.Jk() ? V1(n, 6, e, (Dn(), or), null, -1, !1) : V1(n, e.tk() ? 2 : 1, e, null, null, -1, !1)); + } + function vCe(n, e) { + var t, i, r, c, s; + return n.a == (ym(), x8) ? !0 : (c = e.a.c, t = e.a.c + e.a.b, !(e.j && (i = e.A, s = i.c.c.a - i.o.a / 2, r = c - (i.n.a + i.o.a), r > s) || e.q && (i = e.C, s = i.c.c.a - i.o.a / 2, r = i.n.a - t, r > s))); + } + function aHn(n) { + NN(); + var e, t, i, r, c, s, f; + for (t = new Yl(), r = new C(n.e.b); r.a < r.c.c.length; ) + for (i = u(E(r), 30), s = new C(i.a); s.a < s.c.c.length; ) + c = u(E(s), 10), f = n.g[c.p], e = u(Lf(t, f), 15), e || (e = new Z(), f1(t, f, e)), e.Fc(c); + return t; + } + function dHn(n) { + var e; + return n.Db & 64 ? Hs(n) : (e = new ls(Hs(n)), e.a += " (startX: ", hg(e, n.j), e.a += ", startY: ", hg(e, n.k), e.a += ", endX: ", hg(e, n.b), e.a += ", endY: ", hg(e, n.c), e.a += ", identifier: ", Cr(e, n.d), e.a += ")", e.a); + } + function Knn(n) { + var e; + return n.Db & 64 ? p5(n) : (e = new ls(p5(n)), e.a += " (ordered: ", Ul(e, (n.Bb & 256) != 0), e.a += ", unique: ", Ul(e, (n.Bb & 512) != 0), e.a += ", lowerBound: ", TD(e, n.s), e.a += ", upperBound: ", TD(e, n.t), e.a += ")", e.a); + } + function bHn(n, e, t, i, r, c, s, f) { + var h; + return D(n.Cb, 90) && lw(Yu(u(n.Cb, 90)), 4), Xc(n, t), n.f = i, fm(n, r), lm(n, c), sm(n, s), hm(n, !1), o1(n, !0), am(n, f), u1(n, !0), t1(n, 0), n.b = 0, nw(n, 1), h = Ff(n, e, null), h && h.oj(), sx(n, !1), n; + } + function wHn(n, e) { + var t, i, r, c; + return t = u($c(n.a, e), 525), t || (i = new VN(e), r = (UM(), qf ? null : i.c), c = qo(r, 0, y.Math.max(0, FC(r, bu(46)))), Jae(i, wHn(n, c)), (qf ? null : i.c).length == 0 && TAn(i, new BU()), Or(n.a, qf ? null : i.c, i), i); + } + function kCe(n, e) { + var t; + n.b = e, n.g = new Z(), t = CCe(n.b), n.e = t, n.f = t, n.c = on(un(v(n.b, (aA(), _un)))), n.a = R(v(n.b, (He(), x2))), n.a == null && (n.a = 1), $(n.a) > 1 ? n.e *= $(n.a) : n.f /= $(n.a), _6e(n), X8e(n), UAe(n), U(n.b, (C5(), pP), n.g); + } + function gHn(n, e, t) { + var i, r, c, s, f, h; + for (i = 0, h = t, e || (i = t * (n.c.length - 1), h *= -1), c = new C(n); c.a < c.c.c.length; ) { + for (r = u(E(c), 10), U(r, (cn(), Mh), (Bh(), nO)), r.o.a = i, f = l1(r, (en(), Zn)).Kc(); f.Ob(); ) + s = u(f.Pb(), 12), s.n.a = i; + i += h; + } + } + function e3(n, e, t) { + var i, r, c, s, f, h; + return f = n.pl(t), f != t ? (s = n.g[e], h = f, I6(n, e, n.Zi(e, h)), c = s, n.Ri(e, h, c), n.al() && (i = t, r = n.Oj(i, null), !u(f, 54).Ph() && (r = n.Nj(h, r)), r && r.oj()), fo(n.e) && e4(n, n.Ij(9, t, f, e, !1)), f) : t; + } + function yCe(n, e) { + var t, i, r, c; + for (i = new C(n.a.a); i.a < i.c.c.length; ) + t = u(E(i), 194), t.g = !0; + for (c = new C(n.a.b); c.a < c.c.c.length; ) + r = u(E(c), 86), r.k = on(un(n.e.Kb(new wi(r, e)))), r.d.g = r.d.g & on(un(n.e.Kb(new wi(r, e)))); + return n; + } + function pHn(n, e) { + var t, i; + if (n.c.length != 0) { + if (n.c.length == 2) + t3((Ln(0, n.c.length), u(n.c[0], 10)), (To(), Zh)), t3((Ln(1, n.c.length), u(n.c[1], 10)), Aa); + else + for (i = new C(n); i.a < i.c.c.length; ) + t = u(E(i), 10), t3(t, e); + n.c.length = 0; + } + } + function mHn(n) { + var e, t, i, r, c; + if (t = (e = u(of(hr), 9), new _o(e, u(xs(e, e.length), 9), 0)), c = u(v(n, (W(), Gu)), 10), c) + for (r = new C(c.j); r.a < r.c.c.length; ) + i = u(E(r), 12), x(v(i, st)) === x(n) && D6(new Of(i.b)) && _s(t, i.j); + return t; + } + function vHn(n, e, t) { + var i, r, c, s, f; + if (!n.d[t.p]) { + for (r = new ie(ce(Qt(t).a.Kc(), new En())); pe(r); ) { + for (i = u(fe(r), 18), f = i.d.i, s = new ie(ce(Ei(f).a.Kc(), new En())); pe(s); ) + c = u(fe(s), 18), c.c.i == e && (n.a[c.p] = !0); + vHn(n, e, f); + } + n.d[t.p] = !0; + } + } + function jCe(n, e) { + var t, i, r, c, s, f, h; + if (i = dBn(n.Db & 254), i == 1) + n.Eb = null; + else if (c = ud(n.Eb), i == 2) + r = Rx(n, e), n.Eb = c[r == 0 ? 1 : 0]; + else { + for (s = K(yi, Bn, 1, i - 1, 5, 1), t = 2, f = 0, h = 0; t <= 128; t <<= 1) + t == e ? ++f : n.Db & t && (s[h++] = c[f++]); + n.Eb = s; + } + n.Db &= ~e; + } + function _nn(n) { + var e; + switch (e = 0, n) { + case 105: + e = 2; + break; + case 109: + e = 8; + break; + case 115: + e = 4; + break; + case 120: + e = 16; + break; + case 117: + e = 32; + break; + case 119: + e = 64; + break; + case 70: + e = 256; + break; + case 72: + e = 128; + break; + case 88: + e = 512; + break; + case 44: + e = Gs; + } + return e; + } + function ECe(n, e, t, i, r) { + var c, s, f, h; + if (x(n) === x(e) && i == r) { + pUn(n, i, t); + return; + } + for (f = 0; f < i; f++) { + for (s = 0, c = n[f], h = 0; h < r; h++) + s = Zi(Zi(nr(ki(c, vr), ki(e[h], vr)), ki(t[f + h], vr)), ki(Ae(s), vr)), t[f + h] = Ae(s), s = U1(s, 32); + t[f + r] = Ae(s); + } + } + function CCe(n) { + var e, t, i, r, c, s, f, h, l, a, d; + for (a = 0, l = 0, r = n.a, f = r.a.gc(), i = r.a.ec().Kc(); i.Ob(); ) + t = u(i.Pb(), 567), e = (t.b && xF(t), t.a), d = e.a, s = e.b, a += d + s, l += d * s; + return h = y.Math.sqrt(400 * f * l - 4 * l + a * a) + a, c = 2 * (100 * f - 1), c == 0 ? h : h / c; + } + function kHn(n, e) { + e.b != 0 && (isNaN(n.s) ? n.s = $((oe(e.b != 0), R(e.a.a.c))) : n.s = y.Math.min(n.s, $((oe(e.b != 0), R(e.a.a.c)))), isNaN(n.c) ? n.c = $((oe(e.b != 0), R(e.c.b.c))) : n.c = y.Math.max(n.c, $((oe(e.b != 0), R(e.c.b.c))))); + } + function N5(n) { + var e, t, i, r; + for (e = null, i = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [(!n.b && (n.b = new Nn(he, n, 4, 7)), n.b), (!n.c && (n.c = new Nn(he, n, 5, 8)), n.c)]))); pe(i); ) + if (t = u(fe(i), 84), r = Gr(t), !e) + e = At(r); + else if (e != At(r)) + return !0; + return !1; + } + function aF(n, e) { + var t, i, r, c; + n.Pj() ? (t = n.i, c = n.Qj(), ek(n, e), i = n.Ij(3, null, e, t, c), n.Mj() ? (r = n.Nj(e, null), n.Tj() && (r = n.Uj(e, r)), r ? (r.nj(i), r.oj()) : n.Jj(i)) : n.Jj(i)) : (ek(n, e), n.Mj() && (r = n.Nj(e, null), r && r.oj())); + } + function MCe(n, e) { + var t, i, r, c; + if (c = R7(n.a, e.b), !c) + throw M(new Ir("Invalid hitboxes for scanline overlap calculation.")); + for (r = !1, i = n.a.a.ec().Kc(); i.Ob(); ) + if (t = u(i.Pb(), 68), i6e(e.b, t)) + Nhe(n.b.a, e.b, t), r = !0; + else if (r) + break; + } + function TCe(n) { + var e; + if (!n.a) + throw M(new Ir("IDataType class expected for layout option " + n.f)); + if (e = l3e(n.a), e == null) + throw M(new Ir("Couldn't create new instance of property '" + n.f + "'. " + LVn + (ll(lE), lE.k) + bcn)); + return u(e, 423); + } + function dF(n) { + var e, t, i, r, c; + return c = n.Ph(), c && c.Vh() && (r = ea(n, c), r != c) ? (t = n.Fh(), i = (e = n.Fh(), e >= 0 ? n.Ah(null) : n.Ph().Th(n, -1 - e, null, null)), n.Bh(u(r, 54), t), i && i.oj(), n.vh() && n.wh() && t > -1 && it(n, new Mi(n, 9, t, c, r)), r) : c; + } + function Hnn(n, e) { + var t, i, r, c, s; + for (c = n.b.Ce(e), i = (t = n.a.get(c), t ?? K(yi, Bn, 1, 0, 5, 1)), s = 0; s < i.length; s++) + if (r = i[s], n.b.Be(e, r.ld())) + return i.length == 1 ? (i.length = 0, Sae(n.a, c)) : i.splice(s, 1), --n.c, ++n.b.g, r.md(); + return null; + } + function yHn(n) { + var e, t, i, r, c, s, f, h; + for (s = 0, c = n.f.e, i = 0; i < c.c.length; ++i) + for (f = (Ln(i, c.c.length), u(c.c[i], 153)), r = i + 1; r < c.c.length; ++r) + h = (Ln(r, c.c.length), u(c.c[r], 153)), t = J1(f.d, h.d), e = t - n.a[f.a][h.a], s += n.i[f.a][h.a] * e * e; + return s; + } + function ACe(n, e) { + var t; + if (!kt(e, (cn(), ou)) && (t = V7e(u(v(e, ysn), 371), u(v(n, ou), 171)), U(e, ysn, t), !pe(new ie(ce(Cl(e).a.Kc(), new En()))))) + switch (t.g) { + case 1: + U(e, ou, (Yo(), _8)); + break; + case 2: + U(e, ou, (Yo(), H8)); + } + } + function SCe(n, e) { + var t; + _Ae(n), n.a = (t = new CD(), Ut(new Tn(null, new In(e.d, 16)), new M7n(t)), t), iSe(n, u(v(e.b, (cn(), CH)), 349)), $9e(n), $Ce(n), J7e(n), x9e(n), WIe(n, e), Ut(rc(new Tn(null, oDn(Dwe(n.b).a)), new spn()), new fpn()), e.a = !1, n.a = null; + } + function qnn() { + qnn = F, bre = new Mn(Srn, (_n(), !1)), wre = new Mn(Prn, 7), Y(0), vre = new Mn(Irn, Y(0)), pre = new Mn(Orn, Y(-1)), Cln = (b5(), aq), kre = new Mn(Drn, Cln), jln = (d5(), Lj), gre = new Mn(Lrn, jln), Eln = (FM(), dq), mre = new Mn(Nrn, Eln); + } + function jHn() { + unn.call(this, ev, (B1(), voe)), this.p = null, this.a = null, this.f = null, this.n = null, this.g = null, this.c = null, this.i = null, this.j = null, this.d = null, this.b = null, this.e = null, this.k = null, this.o = null, this.s = null, this.q = !1, this.r = !1; + } + function Em() { + Em = F, kU = new gp(JXn, 0), mO = new gp("INSIDE_SELF_LOOPS", 1), vO = new gp("MULTI_EDGES", 2), pO = new gp("EDGE_LABELS", 3), vU = new gp("PORTS", 4), gO = new gp("COMPOUND", 5), wO = new gp("CLUSTERS", 6), mU = new gp("DISCONNECTED", 7); + } + function EHn(n, e, t) { + var i, r, c; + n.Pj() ? (c = n.Qj(), ++n.j, n.qj(e, n.Zi(e, t)), i = n.Ij(3, null, t, e, c), n.Mj() ? (r = n.Nj(t, null), r ? (r.nj(i), r.oj()) : n.Jj(i)) : n.Jj(i)) : (++n.j, n.qj(e, n.Zi(e, t)), n.Mj() && (r = n.Nj(t, null), r && r.oj())); + } + function CHn(n, e) { + var t, i, r; + if (e == 0) + return (n.a[0] & 1) != 0; + if (e < 0) + throw M(new _E("Negative bit address")); + if (r = e >> 5, r >= n.d) + return n.e < 0; + if (t = n.a[r], e = 1 << (e & 31), n.e < 0) { + if (i = Ixn(n), r < i) + return !1; + i == r ? t = -t : t = ~t; + } + return (t & e) != 0; + } + function PCe(n, e, t, i) { + var r; + u(t.b, 68), u(t.b, 68), u(i.b, 68), u(i.b, 68), r = vi(Ki(u(t.b, 68).c), u(i.b, 68).c), JC(r, x_n(u(t.b, 68), u(i.b, 68), r)), u(i.b, 68), u(i.b, 68), u(i.b, 68).c.a + r.a, u(i.b, 68).c.b + r.b, u(i.b, 68), nu(i.a, new BV(n, e, i)); + } + function Unn(n, e) { + var t, i, r, c, s, f, h; + if (c = e.e, c) { + for (t = dF(c), i = u(n.g, 689), s = 0; s < n.i; ++s) + if (h = i[s], Lx(h) == t && (r = (!h.d && (h.d = new ii(Er, h, 1)), h.d), f = u(t.Mh(AF(c, c.Cb, c.Db >> 16)), 15).dd(c), f < r.i)) + return Unn(n, u(L(r, f), 89)); + } + return e; + } + function b(n, e, t) { + var i = rP, r, c = i[n], s = c instanceof Array ? c[0] : null; + c && !s ? o = c : (o = (r = e && e.prototype, !r && (r = rP[e]), w2e(r)), o.Sm = t, !e && (o.Tm = Q2), i[n] = o); + for (var f = 3; f < arguments.length; ++f) + arguments[f].prototype = o; + s && (o.Rm = s); + } + function pe(n) { + for (var e; !u(Se(n.a), 51).Ob(); ) { + if (n.d = k6e(n), !n.d) + return !1; + if (n.a = u(n.d.Pb(), 51), D(n.a, 38)) { + if (e = u(n.a, 38), n.a = e.a, !n.b && (n.b = new Cg()), W1(n.b, n.d), e.b) + for (; !t6(e.b); ) + W1(n.b, u(bwe(e.b), 51)); + n.d = e.d; + } + } + return !0; + } + function Gnn(n, e) { + var t, i, r, c; + for (r = 1, e.j = !0, c = null, i = new C(xg(e)); i.a < i.c.c.length; ) + t = u(E(i), 218), n.c[t.c] || (n.c[t.c] = !0, c = HT(t, e), t.f ? r += Gnn(n, c) : !c.j && t.a == t.e.e - t.d.e && (t.f = !0, hi(n.p, t), r += Gnn(n, c))); + return r; + } + function ICe(n) { + var e, t, i; + for (t = new C(n.a.a.b); t.a < t.c.c.length; ) + e = u(E(t), 86), i = (Jn(0), 0), i > 0 && (!(hl(n.a.c) && e.n.d) && !(vg(n.a.c) && e.n.b) && (e.g.d += y.Math.max(0, i / 2 - 0.5)), !(hl(n.a.c) && e.n.a) && !(vg(n.a.c) && e.n.c) && (e.g.a -= i - 1)); + } + function MHn(n) { + var e, t, i, r, c; + if (r = new Z(), c = kUn(n, r), e = u(v(n, (W(), Gu)), 10), e) + for (i = new C(e.j); i.a < i.c.c.length; ) + t = u(E(i), 12), x(v(t, st)) === x(n) && (c = y.Math.max(c, kUn(t, r))); + return r.c.length == 0 || U(n, y2, c), c != -1 ? r : null; + } + function THn(n, e, t) { + var i, r, c, s, f, h; + c = u(sn(e.e, 0), 18).c, i = c.i, r = i.k, h = u(sn(t.g, 0), 18).d, s = h.i, f = s.k, r == (Vn(), Ti) ? U(n, (W(), yf), u(v(i, yf), 12)) : U(n, (W(), yf), c), f == Ti ? U(n, (W(), Es), u(v(s, Es), 12)) : U(n, (W(), Es), h); + } + function znn(n) { + var e, t, i; + this.c = n, i = u(v(n, (cn(), Do)), 88), e = $(R(v(n, oI))), t = $(R(v(n, khn))), i == (ui(), Fr) || i == Xr || i == Wf ? this.b = e * t : this.b = 1 / (e * t), this.j = $(R(v(n, A2))), this.e = $(R(v(n, pb))), this.f = n.b.c.length; + } + function Xnn(n, e) { + var t, i, r, c, s; + return e &= 63, t = n.h, i = (t & Ty) != 0, i && (t |= -1048576), e < 22 ? (s = t >> e, c = n.m >> e | t << 22 - e, r = n.l >> e | n.m << 22 - e) : e < 44 ? (s = i ? Il : 0, c = t >> e - 22, r = n.m >> e - 22 | t << 44 - e) : (s = i ? Il : 0, c = i ? io : 0, r = t >> e - 44), Yc(r & io, c & io, s & Il); + } + function bF(n) { + var e, t, i, r, c, s; + for (this.c = new Z(), this.d = n, i = St, r = St, e = ai, t = ai, s = ge(n, 0); s.b != s.d.c; ) + c = u(be(s), 8), i = y.Math.min(i, c.a), r = y.Math.min(r, c.b), e = y.Math.max(e, c.a), t = y.Math.max(t, c.b); + this.a = new Ho(i, r, e - i, t - r); + } + function AHn(n, e) { + var t, i, r, c, s, f; + for (c = new C(n.b); c.a < c.c.c.length; ) + for (r = u(E(c), 30), f = new C(r.a); f.a < f.c.c.length; ) + for (s = u(E(f), 10), s.k == (Vn(), Sc) && t3(s, e), i = new ie(ce(Qt(s).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 18), eFn(t, e); + } + function OCe(n, e) { + var t, i, r; + for (e.Ug("Layer constraint preprocessing", 1), t = new Z(), r = new Fi(n.a, 0); r.b < r.d.gc(); ) + i = (oe(r.b < r.d.gc()), u(r.d.Xb(r.c = r.b++), 10)), r6e(i) && (dye(i), Kn(t.c, i), bo(r)); + t.c.length == 0 || U(n, (W(), lH), t), e.Vg(); + } + function DCe(n) { + var e, t; + for (n.e = K(ye, _e, 28, n.p.c.length, 15, 1), n.k = K(ye, _e, 28, n.p.c.length, 15, 1), t = new C(n.p); t.a < t.c.c.length; ) + e = u(E(t), 10), n.e[e.p] = wl(new ie(ce(Ei(e).a.Kc(), new En()))), n.k[e.p] = wl(new ie(ce(Qt(e).a.Kc(), new En()))); + } + function LCe(n) { + var e, t, i, r, c, s; + for (r = 0, n.q = new Z(), e = new ei(), s = new C(n.p); s.a < s.c.c.length; ) { + for (c = u(E(s), 10), c.p = r, i = new ie(ce(Qt(c).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 18), hi(e, t.d.i); + e.a.Bc(c) != null, nn(n.q, new F6(e)), e.a.$b(), ++r; + } + } + function SHn(n, e) { + var t, i, r, c, s, f, h, l, a; + if (n.a.f > 0 && D(e, 44) && (n.a._j(), l = u(e, 44), h = l.ld(), c = h == null ? 0 : mt(h), s = dV(n.a, c), t = n.a.d[s], t)) { + for (i = u(t.g, 379), a = t.i, f = 0; f < a; ++f) + if (r = i[f], r.Bi() == c && r.Fb(l)) + return SHn(n, l), !0; + } + return !1; + } + function NCe(n) { + var e, t, i, r, c, s, f; + if (e = n.qi(ks), e && (f = Oe(gf((!e.b && (e.b = new lo((On(), lr), pc, e)), e.b), "settingDelegates")), f != null)) { + for (t = new Z(), r = gw(f, "\\w+"), c = 0, s = r.length; c < s; ++c) + i = r[c], Kn(t.c, i); + return t; + } + return Dn(), Dn(), or; + } + function $Ce(n) { + var e, t, i, r; + for (r = u(ot(n.a, (sw(), GP)), 15).Kc(); r.Ob(); ) + i = u(r.Pb(), 105), t = (e = Tp(i.k), e.Hc((en(), Xn)) ? e.Hc(Zn) ? e.Hc(ae) ? e.Hc(Wn) ? null : une : sne : one : cne), C4(n, i, t[0], (L0(), ub), 0), C4(n, i, t[1], va, 1), C4(n, i, t[2], ob, 1); + } + function xCe(n, e) { + var t, i; + t = gSe(e), iAe(n, e, t), LKn(n.a, u(v(Hi(e.b), (W(), S3)), 234)), BSe(n), uye(n, e), i = K(ye, _e, 28, e.b.j.c.length, 15, 1), VF(n, e, (en(), Xn), i, t), VF(n, e, Zn, i, t), VF(n, e, ae, i, t), VF(n, e, Wn, i, t), n.a = null, n.c = null, n.b = null; + } + function Vnn(n, e, t) { + switch (e) { + case 7: + !n.e && (n.e = new Nn(Wt, n, 7, 4)), me(n.e), !n.e && (n.e = new Nn(Wt, n, 7, 4)), Kt(n.e, u(t, 16)); + return; + case 8: + !n.d && (n.d = new Nn(Wt, n, 8, 5)), me(n.d), !n.d && (n.d = new Nn(Wt, n, 8, 5)), Kt(n.d, u(t, 16)); + return; + } + _Z(n, e, t); + } + function Wnn(n, e) { + var t, i, r, c, s; + if (x(e) === x(n)) + return !0; + if (!D(e, 15) || (s = u(e, 15), n.gc() != s.gc())) + return !1; + for (c = s.Kc(), i = n.Kc(); i.Ob(); ) + if (t = i.Pb(), r = c.Pb(), !(x(t) === x(r) || t != null && rt(t, r))) + return !1; + return !0; + } + function FCe(n, e) { + var t, i, r, c; + for (c = u(Wr(rc(rc(new Tn(null, new In(e.b, 16)), new lgn()), new agn()), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), c.Jc(new dgn()), t = 0, r = c.Kc(); r.Ob(); ) + i = u(r.Pb(), 12), i.p == -1 && Jnn(n, i, t++); + } + function PHn(n) { + switch (n.g) { + case 0: + return new o8n(); + case 1: + return new c8n(); + case 2: + return new u8n(); + case 3: + return new JCn(); + case 4: + return new gPn(); + default: + throw M(new Gn("No implementation is available for the node placer " + (n.f != null ? n.f : "" + n.g))); + } + } + function IHn(n) { + switch (n.g) { + case 0: + return new dW(); + case 1: + return new X5n(); + case 2: + return new z5n(); + case 3: + return new U5n(); + case 4: + return new KMn(); + default: + throw M(new Gn("No implementation is available for the cycle breaker " + (n.f != null ? n.f : "" + n.g))); + } + } + function BCe(n, e) { + var t, i, r, c, s; + i = new Ct(), xt(i, e, i.c.b, i.c); + do + for (t = (oe(i.b != 0), u(Xo(i, i.a.a), 40)), n.b[t.g] = 1, c = ge(t.d, 0); c.b != c.d.c; ) + r = u(be(c), 65), s = r.c, n.b[s.g] == 1 ? Fe(n.a, r) : n.b[s.g] == 2 ? n.b[s.g] = 1 : xt(i, s, i.c.b, i.c); + while (i.b != 0); + } + function RCe(n, e, t) { + var i; + i = null, e && (i = e.d), I5(n, new a4(e.n.a - i.b + t.a, e.n.b - i.d + t.b)), I5(n, new a4(e.n.a - i.b + t.a, e.n.b + e.o.b + i.a + t.b)), I5(n, new a4(e.n.a + e.o.a + i.c + t.a, e.n.b - i.d + t.b)), I5(n, new a4(e.n.a + e.o.a + i.c + t.a, e.n.b + e.o.b + i.a + t.b)); + } + function Jnn(n, e, t) { + var i, r, c; + for (e.p = t, c = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [new n4(e), new ip(e)]))); pe(c); ) + i = u(fe(c), 12), i.p == -1 && Jnn(n, i, t); + if (e.i.k == (Vn(), Ti)) + for (r = new C(e.i.j); r.a < r.c.c.length; ) + i = u(E(r), 12), i != e && i.p == -1 && Jnn(n, i, t); + } + function KCe(n, e) { + var t, i, r, c, s, f; + for (i = new Yl(), s = HM(new Bu(n.g)), c = s.a.ec().Kc(); c.Ob(); ) { + if (r = u(c.Pb(), 10), !r) { + e.bh("There are no classes in a balanced layout."); + break; + } + f = n.j[r.p], t = u(Lf(i, f), 15), t || (t = new Z(), f1(i, f, t)), t.Fc(r); + } + return i; + } + function OHn(n) { + var e, t, i, r, c; + if (r = u(Wr(uJ(fJ(n)), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), i = i2, r.gc() >= 2) + for (t = r.Kc(), e = R(t.Pb()); t.Ob(); ) + c = e, e = R(t.Pb()), i = y.Math.min(i, (Jn(e), e - (Jn(c), c))); + return i; + } + function _Ce(n, e) { + var t, i, r; + for (r = new Z(), i = ge(e.a, 0); i.b != i.d.c; ) + t = u(be(i), 65), t.b.g == n.g && !An(t.b.c, IS) && x(v(t.b, (lc(), Ah))) !== x(v(t.c, Ah)) && !Og(new Tn(null, new In(r, 16)), new lkn(t)) && Kn(r.c, t); + return Zt(r, new V3n()), r; + } + function HCe(n, e) { + var t, i, r; + if (x(e) === x(Se(n))) + return !0; + if (!D(e, 15) || (i = u(e, 15), r = n.gc(), r != i.gc())) + return !1; + if (D(i, 59)) { + for (t = 0; t < r; t++) + if (!oh(n.Xb(t), i.Xb(t))) + return !1; + return !0; + } else + return q9e(n.Kc(), i.Kc()); + } + function qCe(n, e, t, i, r, c) { + var s, f, h, l; + for (f = !o4(ut(n.Oc(), new Y3(new Tgn()))).Bd((Wa(), v3)), s = n, c == (ui(), us) && (s = Qo(s)), l = s.Kc(); l.Ob(); ) + h = u(l.Pb(), 72), h.n.a = e.a, f ? h.n.b = e.b + (i.b - h.o.b) / 2 : r ? h.n.b = e.b : h.n.b = e.b + i.b - h.o.b, e.a += h.o.a + t; + } + function UCe(n, e) { + var t, i, r, c, s; + for (e.Ug("Port side processing", 1), s = new C(n.a); s.a < s.c.c.length; ) + r = u(E(s), 10), GUn(r); + for (i = new C(n.b); i.a < i.c.c.length; ) + for (t = u(E(i), 30), c = new C(t.a); c.a < c.c.c.length; ) + r = u(E(c), 10), GUn(r); + e.Vg(); + } + function GCe(n, e, t) { + var i, r, c, s, f, h, l; + if (t) + for (c = t.a.length, i = new Ya(c), f = (i.b - i.a) * i.c < 0 ? (K1(), xa) : new q1(i); f.Ob(); ) + s = u(f.Pb(), 17), h = D4(t, s.a), h && (l = Ome(bl(h, wK), e), Xe(n.f, l, h), r = jh in h.a, r && z4(l, bl(h, jh)), gA(h, l), Ann(h, l)); + } + function zCe(n, e, t) { + var i, r, c, s, f; + if (f = t, !f && (f = YV(new op(), 0)), f.Ug(PXn, 1), AGn(n.c, e), s = JOe(n.a, e), s.gc() == 1) + sGn(u(s.Xb(0), 36), f); + else + for (c = 1 / s.gc(), r = s.Kc(); r.Ob(); ) { + if (i = u(r.Pb(), 36), t.$g()) + return; + sGn(i, f.eh(c)); + } + she(n.a, s, e), CAe(e), f.Vg(); + } + function DHn(n, e, t) { + var i, r, c, s, f; + if (r = n.f, !r && (r = u(n.a.a.ec().Kc().Pb(), 60)), P5(r, e, t), n.a.a.gc() != 1) + for (i = e * t, s = n.a.a.ec().Kc(); s.Ob(); ) + c = u(s.Pb(), 60), c != r && (f = xp(c), f.f.d ? (c.d.d += i + Kf, c.d.a -= i + Kf) : f.f.a && (c.d.a -= i + Kf)); + } + function wF(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p; + return s = t - n, f = i - e, c = y.Math.atan2(s, f), h = c + QB, l = c - QB, a = r * y.Math.sin(h) + n, g = r * y.Math.cos(h) + e, d = r * y.Math.sin(l) + n, p = r * y.Math.cos(l) + e, If(A(T(Ci, 1), J, 8, 0, [new V(a, g), new V(d, p)])); + } + function XCe(n, e, t, i) { + var r, c, s, f, h, l, a, d; + r = t, a = e, c = a; + do + c = n.a[c.p], f = (d = n.g[c.p], $(n.p[d.p]) + $(n.d[c.p]) - c.d.d), h = Xme(c, i), h && (s = (l = n.g[h.p], $(n.p[l.p]) + $(n.d[h.p]) + h.o.b + h.d.a), r = y.Math.min(r, f - (s + jg(n.k, c, h)))); + while (a != c); + return r; + } + function VCe(n, e, t, i) { + var r, c, s, f, h, l, a, d; + r = t, a = e, c = a; + do + c = n.a[c.p], s = (d = n.g[c.p], $(n.p[d.p]) + $(n.d[c.p]) + c.o.b + c.d.a), h = Zve(c, i), h && (f = (l = n.g[h.p], $(n.p[l.p]) + $(n.d[h.p]) - h.d.d), r = y.Math.min(r, f - (s + jg(n.k, c, h)))); + while (a != c); + return r; + } + function LHn(n, e) { + var t; + if (e.Ug("Equal Whitespace Eliminator", 1), Df(n, (Kh(), GI))) + t5e(u(z(n, GI), 15), $(R(z(n, O3))), (t = $(R(z(n, s9))), $(R(z(n, (Bf(), l9)))), t)); + else + throw M(new Hl("The graph does not contain rows.")); + e.Vg(); + } + function z(n, e) { + var t, i; + return i = (!n.o && (n.o = new Pu((Mc(), tl), A1, n, 0)), gf(n.o, e)), i ?? (t = e.Sg(), D(t, 4) && (t == null ? (!n.o && (n.o = new Pu((Mc(), tl), A1, n, 0)), VT(n.o, e)) : (!n.o && (n.o = new Pu((Mc(), tl), A1, n, 0)), zk(n.o, e, t))), t); + } + function aw() { + aw = F, Qs = new bg("H_LEFT", 0), xl = new bg("H_CENTER", 1), Ys = new bg("H_RIGHT", 2), nf = new bg("V_TOP", 3), nl = new bg("V_CENTER", 4), Ms = new bg("V_BOTTOM", 5), Lo = new bg("INSIDE", 6), Zs = new bg("OUTSIDE", 7), Cs = new bg("H_PRIORITY", 8); + } + function WCe(n, e) { + var t, i, r, c, s, f, h; + if (!e.f) + throw M(new Gn("The input edge is not a tree edge.")); + for (c = null, r = et, i = new C(n.d); i.a < i.c.c.length; ) + t = u(E(i), 218), f = t.d, h = t.e, fF(n, f, e) && !fF(n, h, e) && (s = h.e - f.e - t.a, s < r && (r = s, c = t)); + return c; + } + function JCe(n) { + var e, t, i, r, c, s; + if (!(n.f.e.c.length <= 1)) { + e = 0, r = yHn(n), t = St; + do { + for (e > 0 && (r = t), s = new C(n.f.e); s.a < s.c.c.length; ) + c = u(E(s), 153), !on(un(v(c, (Uk(), Mon)))) && (i = fPe(n, c), tt(ff(c.d), i)); + t = yHn(n); + } while (!Nwe(n, e++, r, t)); + } + } + function QCe(n, e) { + var t, i, r, c, s; + for (c = n.g.a, s = n.g.b, i = new C(n.d); i.a < i.c.c.length; ) + t = u(E(i), 72), r = t.n, n.a == ($f(), hv) || n.i == (en(), Zn) ? r.a = c : n.a == lv || n.i == (en(), Wn) ? r.a = c + n.j.a - t.o.a : r.a = c + (n.j.a - t.o.a) / 2, r.b = s, tt(r, e), s += t.o.b + n.e; + } + function YCe(n, e) { + var t, i, r, c, s, f, h, l, a, d; + l = n, h = Y6(l, "individualSpacings"), h && (i = Df(e, (He(), $3)), s = !i, s && (r = new _O(), ht(e, $3, r)), f = u(z(e, $3), 385), d = h, c = null, d && (c = (a = S$(d, K(fn, J, 2, 0, 6, 1)), new SD(d, a))), c && (t = new CMn(d, f), qi(c, t))); + } + function ZCe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g; + return h = null, d = n, a = null, (jWn in d.a || EWn in d.a || RS in d.a) && (l = null, g = XQ(e), s = Y6(d, jWn), t = new Wkn(g), b8e(t.a, s), f = Y6(d, EWn), i = new cyn(g), w8e(i.a, f), c = S0(d, RS), r = new syn(g), l = (Zke(r.a, c), c), a = l), h = a, h; + } + function nMe(n, e) { + var t, i, r; + if (e === n) + return !0; + if (D(e, 552)) { + if (r = u(e, 849), n.a.d != r.a.d || Ag(n).gc() != Ag(r).gc()) + return !1; + for (i = Ag(r).Kc(); i.Ob(); ) + if (t = u(i.Pb(), 425), $On(n, t.a.ld()) != u(t.a.md(), 16).gc()) + return !1; + return !0; + } + return !1; + } + function eMe(n) { + var e, t, i, r; + return i = u(n.a, 17).a, r = u(n.b, 17).a, e = i, t = r, i == 0 && r == 0 ? t -= 1 : i == -1 && r <= 0 ? (e = 0, t -= 2) : i <= 0 && r > 0 ? (e -= 1, t -= 1) : i >= 0 && r < 0 ? (e += 1, t += 1) : i > 0 && r >= 0 ? (e -= 1, t += 1) : (e += 1, t -= 1), new wi(Y(e), Y(t)); + } + function tMe(n, e) { + return n.c < e.c ? -1 : n.c > e.c ? 1 : n.b < e.b ? -1 : n.b > e.b ? 1 : n.a != e.a ? mt(n.a) - mt(e.a) : n.d == (Z6(), e9) && e.d == n9 ? -1 : n.d == n9 && e.d == e9 ? 1 : 0; + } + function NHn(n, e) { + var t, i, r, c, s; + return c = e.a, c.c.i == e.b ? s = c.d : s = c.c, c.c.i == e.b ? i = c.c : i = c.d, r = C8e(n.a, s, i), r > 0 && r < i2 ? (t = XCe(n.a, i.i, r, n.c), P$n(n.a, i.i, -t), t > 0) : r < 0 && -r < i2 ? (t = VCe(n.a, i.i, -r, n.c), P$n(n.a, i.i, t), t > 0) : !1; + } + function iMe(n, e, t, i) { + var r, c, s, f, h, l, a, d; + for (r = (e - n.d) / n.c.c.length, c = 0, n.a += t, n.d = e, d = new C(n.c); d.a < d.c.c.length; ) + a = u(E(d), 27), l = a.g, h = a.f, eu(a, a.i + c * r), tu(a, a.j + i * t), O0(a, a.g + r), I0(a, n.a), ++c, f = a.g, s = a.f, Cnn(a, new V(f, s), new V(l, h)); + } + function rMe(n) { + var e, t, i, r, c, s, f; + if (n == null) + return null; + for (f = n.length, r = (f + 1) / 2 | 0, s = K(xu, s2, 28, r, 15, 1), f % 2 != 0 && (s[--r] = men((zn(f - 1, n.length), n.charCodeAt(f - 1)))), t = 0, i = 0; t < r; ++t) + e = men(Xi(n, i++)), c = men(Xi(n, i++)), s[t] = (e << 4 | c) << 24 >> 24; + return s; + } + function cMe(n) { + if (n.ze()) { + var e = n.c; + e.Ae() ? n.o = "[" + e.n : e.ze() ? n.o = "[" + e.xe() : n.o = "[L" + e.xe() + ";", n.b = e.we() + "[]", n.k = e.ye() + "[]"; + return; + } + var t = n.j, i = n.d; + i = i.split("/"), n.o = mx(".", [t, mx("$", i)]), n.b = mx(".", [t, mx(".", i)]), n.k = i[i.length - 1]; + } + function uMe(n, e) { + var t, i, r, c, s; + for (s = null, c = new C(n.e.a); c.a < c.c.c.length; ) + if (r = u(E(c), 125), r.b.a.c.length == r.g.a.c.length) { + for (i = r.e, s = Kje(r), t = r.e - u(s.a, 17).a + 1; t < r.e + u(s.b, 17).a; t++) + e[t] < e[i] && (i = t); + e[i] < e[r.e] && (--e[r.e], ++e[i], r.e = i); + } + } + function gF(n) { + var e, t, i, r, c, s, f, h; + for (r = St, i = ai, t = new C(n.e.b); t.a < t.c.c.length; ) + for (e = u(E(t), 30), s = new C(e.a); s.a < s.c.c.length; ) + c = u(E(s), 10), h = $(n.p[c.p]), f = h + $(n.b[n.g[c.p].p]), r = y.Math.min(r, h), i = y.Math.max(i, f); + return i - r; + } + function $Hn(n) { + UF(); + var e, t, i, r; + return i = th(n, bu(35)), e = i == -1 ? n : (Bi(0, i, n.length), n.substr(0, i)), t = i == -1 ? null : (zn(i + 1, n.length + 1), n.substr(i + 1)), r = j3e(Hdn, e), r ? t != null && (r = IFn(r, (Jn(t), t))) : (r = qLe(e), $3e(Hdn, e, r), t != null && (r = IFn(r, t))), r; + } + function Qnn(n, e, t, i) { + var r, c, s, f, h; + for (r = Aen(n, e), f = 0, h = r.gc(); f < h; ++f) + if (c = u(r.Xb(f), 179), An(i, S4(Dr(n, c)))) { + if (s = q7(Dr(n, c)), t == null) { + if (s == null) + return c; + } else if (An(t, s)) + return c; + } + return null; + } + function Ynn(n, e, t, i) { + var r, c, s, f, h; + for (r = SF(n, e), f = 0, h = r.gc(); f < h; ++f) + if (c = u(r.Xb(f), 179), An(i, S4(Dr(n, c)))) { + if (s = q7(Dr(n, c)), t == null) { + if (s == null) + return c; + } else if (An(t, s)) + return c; + } + return null; + } + function oMe(n, e, t) { + var i, r, c, s, f, h; + if (s = new EE(), f = ru(n.e.Dh(), e), i = u(n.g, 124), dr(), u(e, 69).xk()) + for (c = 0; c < n.i; ++c) + r = i[c], f.am(r.Lk()) && ve(s, r); + else + for (c = 0; c < n.i; ++c) + r = i[c], f.am(r.Lk()) && (h = r.md(), ve(s, t ? L5(n, e, c, s.i, h) : h)); + return jJ(s); + } + function xHn(n) { + var e, t, i, r, c, s, f; + if (n && (e = n.qi(ks), e && (s = Oe(gf((!e.b && (e.b = new lo((On(), lr), pc, e)), e.b), "conversionDelegates")), s != null))) { + for (f = new Z(), i = gw(s, "\\w+"), r = 0, c = i.length; r < c; ++r) + t = i[r], Kn(f.c, t); + return f; + } + return Dn(), Dn(), or; + } + function FHn(n, e) { + var t, i, r, c, s, f, h, l; + for (s = e == 1 ? A_ : T_, c = s.a.ec().Kc(); c.Ob(); ) + for (r = u(c.Pb(), 88), h = u(ot(n.f.c, r), 21).Kc(); h.Ob(); ) + switch (f = u(h.Pb(), 42), i = u(f.b, 86), l = u(f.a, 194), t = l.c, r.g) { + case 2: + case 1: + i.g.d += t; + break; + case 4: + case 3: + i.g.c += t; + } + } + function sMe(n, e) { + var t, i, r, c, s; + for (t = new y5(bv), r = (Yp(), A(T(bv, 1), G, 232, 0, [dv, N8, av, $w, p2, g2])), c = 0, s = r.length; c < s; ++c) + i = r[c], pV(t, i, new Z()); + return Ut(_r(ut(rc(new Tn(null, new In(n.b, 16)), new Agn()), new Sgn()), new i7n(e)), new r7n(t)), t; + } + function EA(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + for (c = e.Kc(); c.Ob(); ) + r = u(c.Pb(), 27), a = r.i + r.g / 2, g = r.j + r.f / 2, h = n.f, s = h.i + h.g / 2, f = h.j + h.f / 2, l = a - s, d = g - f, i = y.Math.sqrt(l * l + d * d), l *= n.e / i, d *= n.e / i, t ? (a -= l, g -= d) : (a += l, g += d), eu(r, a - r.g / 2), tu(r, g - r.f / 2); + } + function Gg(n) { + var e, t, i; + if (!n.c && n.b != null) { + for (e = n.b.length - 4; e >= 0; e -= 2) + for (t = 0; t <= e; t += 2) + (n.b[t] > n.b[t + 2] || n.b[t] === n.b[t + 2] && n.b[t + 1] > n.b[t + 3]) && (i = n.b[t + 2], n.b[t + 2] = n.b[t], n.b[t] = i, i = n.b[t + 3], n.b[t + 3] = n.b[t + 1], n.b[t + 1] = i); + n.c = !0; + } + } + function fMe(n, e) { + var t, i, r, c, s, f, h, l, a; + for (l = -1, a = 0, s = n, f = 0, h = s.length; f < h; ++f) { + for (c = s[f], t = new LSn(l == -1 ? n[0] : n[l], e, (w5(), MI)), i = 0; i < c.length; i++) + for (r = i + 1; r < c.length; r++) + kt(c[i], (W(), dt)) && kt(c[r], dt) && dzn(t, c[i], c[r]) > 0 && ++a; + ++l; + } + return a; + } + function Hs(n) { + var e, t; + return t = new mo(Va(n.Rm)), t.a += "@", Re(t, (e = mt(n) >>> 0, e.toString(16))), n.Vh() ? (t.a += " (eProxyURI: ", Lc(t, n._h()), n.Kh() && (t.a += " eClass: ", Lc(t, n.Kh())), t.a += ")") : n.Kh() && (t.a += " (eClass: ", Lc(t, n.Kh()), t.a += ")"), t.a; + } + function $5(n) { + var e, t, i, r; + if (n.e) + throw M(new Ir((ll(u_), FB + u_.k + BB))); + for (n.d == (ui(), Wf) && UA(n, Fr), t = new C(n.a.a); t.a < t.c.c.length; ) + e = u(E(t), 316), e.g = e.i; + for (r = new C(n.a.b); r.a < r.c.c.length; ) + i = u(E(r), 60), i.i = ai; + return n.b.cf(n), n; + } + function hMe(n, e) { + var t, i, r, c, s; + if (e < 2 * n.b) + throw M(new Gn("The knot vector must have at least two time the dimension elements.")); + for (n.f = 1, r = 0; r < n.b; r++) + nn(n.e, 0); + for (s = e + 1 - 2 * n.b, t = s, c = 1; c < s; c++) + nn(n.e, c / t); + if (n.d) + for (i = 0; i < n.b; i++) + nn(n.e, 1); + } + function BHn(n, e) { + var t, i, r, c, s, f, h, l, a; + if (l = e, a = u(pT(dN(n.i), l), 27), !a) + throw r = bl(l, jh), f = "Unable to find elk node for json object '" + r, h = f + "' Panic!", M(new nh(h)); + c = S0(l, "edges"), t = new gMn(n, a), WEe(t.a, t.b, c), s = S0(l, gK), i = new _kn(n), Z7e(i.a, s); + } + function RHn(n, e, t, i) { + var r, c, s, f, h; + if (i != null) { + if (r = n.d[e], r) { + for (c = r.g, h = r.i, f = 0; f < h; ++f) + if (s = u(c[f], 136), s.Bi() == t && rt(i, s.ld())) + return f; + } + } else if (r = n.d[e], r) { + for (c = r.g, h = r.i, f = 0; f < h; ++f) + if (s = u(c[f], 136), x(s.ld()) === x(i)) + return f; + } + return -1; + } + function Cm(n, e) { + var t, i, r; + return t = e == null ? Kr(gr(n.f, null)) : a6(n.i, e), D(t, 241) ? (r = u(t, 241), r.zi() == null, r) : D(t, 507) ? (i = u(t, 2037), r = i.a, r && (r.yb == null || (e == null ? Wc(n.f, null, r) : x0(n.i, e, r))), r) : null; + } + function lMe(n) { + wen(); + var e, t, i, r, c, s, f; + if (n == null || (r = n.length, r % 2 != 0)) + return null; + for (e = iT(n), c = r / 2 | 0, t = K(xu, s2, 28, c, 15, 1), i = 0; i < c; i++) { + if (s = B9[e[i * 2]], s == -1 || (f = B9[e[i * 2 + 1]], f == -1)) + return null; + t[i] = (s << 4 | f) << 24 >> 24; + } + return t; + } + function aMe(n, e, t) { + var i, r, c; + if (r = u(Mr(n.i, e), 314), !r) + if (r = new k$n(n.d, e, t), Pp(n.i, e, r), tZ(e)) + g1e(n.a, e.c, e.b, r); + else + switch (c = Wje(e), i = u(Mr(n.p, c), 252), c.g) { + case 1: + case 3: + r.j = !0, mD(i, e.b, r); + break; + case 4: + case 2: + r.k = !0, mD(i, e.c, r); + } + return r; + } + function dMe(n, e) { + var t, i, r, c, s, f, h, l, a; + for (h = Oh(n.c - n.b & n.a.length - 1), l = null, a = null, c = new V6(n); c.a != c.b; ) + r = u(xT(c), 10), t = (f = u(v(r, (W(), yf)), 12), f ? f.i : null), i = (s = u(v(r, Es), 12), s ? s.i : null), (l != t || a != i) && (pHn(h, e), l = t, a = i), Kn(h.c, r); + pHn(h, e); + } + function bMe(n, e, t, i) { + var r, c, s, f, h, l; + if (f = new EE(), h = ru(n.e.Dh(), e), r = u(n.g, 124), dr(), u(e, 69).xk()) + for (s = 0; s < n.i; ++s) + c = r[s], h.am(c.Lk()) && ve(f, c); + else + for (s = 0; s < n.i; ++s) + c = r[s], h.am(c.Lk()) && (l = c.md(), ve(f, i ? L5(n, e, s, f.i, l) : l)); + return WY(f, t); + } + function KHn(n, e) { + var t, i, r, c, s, f, h, l; + if (r = n.b[e.p], r >= 0) + return r; + for (c = 1, f = new C(e.j); f.a < f.c.c.length; ) + for (s = u(E(f), 12), i = new C(s.g); i.a < i.c.c.length; ) + t = u(E(i), 18), l = t.d.i, e != l && (h = KHn(n, l), c = y.Math.max(c, h + 1)); + return f8e(n, e, c), c; + } + function _Hn(n, e) { + var t, i, r, c, s, f, h, l; + if (r = n.b[e.p], r >= 0) + return r; + for (c = 1, f = new C(e.j); f.a < f.c.c.length; ) + for (s = u(E(f), 12), i = new C(s.e); i.a < i.c.c.length; ) + t = u(E(i), 18), l = t.c.i, e != l && (h = _Hn(n, l), c = y.Math.max(c, h + 1)); + return K9e(n, e, c), c; + } + function HHn(n, e, t) { + var i, r, c; + for (i = 1; i < n.c.length; i++) { + for (c = (Ln(i, n.c.length), u(n.c[i], 10)), r = i; r > 0 && e.Ne((Ln(r - 1, n.c.length), u(n.c[r - 1], 10)), c) > 0; ) + Go(n, r, (Ln(r - 1, n.c.length), u(n.c[r - 1], 10))), --r; + Ln(r, n.c.length), n.c[r] = c; + } + t.a = new de(), t.b = new de(); + } + function wMe(n, e, t) { + var i, r, c, s, f, h, l, a; + for (a = (i = u(e.e && e.e(), 9), new _o(i, u(xs(i, i.length), 9), 0)), h = gw(t, "[\\[\\]\\s,]+"), c = h, s = 0, f = c.length; s < f; ++s) + if (r = c[s], hw(r).length != 0) { + if (l = J_n(n, r), l == null) + return null; + _s(a, u(l, 22)); + } + return a; + } + function gMe(n) { + var e, t, i, r; + for (r = n.length, e = null, i = 0; i < r; i++) + t = (zn(i, n.length), n.charCodeAt(i)), th(".*+?{[()|\\^$", bu(t)) >= 0 ? (e || (e = new i6(), i > 0 && Cr(e, (Bi(0, i, n.length), n.substr(0, i)))), e.a += "\\", M4(e, t & oi)) : e && M4(e, t & oi); + return e ? e.a : n; + } + function pMe(n) { + var e, t, i; + for (t = new C(n.a.a.b); t.a < t.c.c.length; ) + e = u(E(t), 86), i = (Jn(0), 0), i > 0 && (!(hl(n.a.c) && e.n.d) && !(vg(n.a.c) && e.n.b) && (e.g.d -= y.Math.max(0, i / 2 - 0.5)), !(hl(n.a.c) && e.n.a) && !(vg(n.a.c) && e.n.c) && (e.g.a += y.Math.max(0, i - 1))); + } + function qHn(n, e, t) { + var i, r; + if ((n.c - n.b & n.a.length - 1) == 2) + e == (en(), Xn) || e == Zn ? (sT(u(l5(n), 15), (To(), Zh)), sT(u(l5(n), 15), Aa)) : (sT(u(l5(n), 15), (To(), Aa)), sT(u(l5(n), 15), Zh)); + else + for (r = new V6(n); r.a != r.b; ) + i = u(xT(r), 15), sT(i, t); + } + function mMe(n, e) { + var t, i, r, c, s, f, h; + for (r = k4(new xG(n)), f = new Fi(r, r.c.length), c = k4(new xG(e)), h = new Fi(c, c.c.length), s = null; f.b > 0 && h.b > 0 && (t = (oe(f.b > 0), u(f.a.Xb(f.c = --f.b), 27)), i = (oe(h.b > 0), u(h.a.Xb(h.c = --h.b), 27)), t == i); ) + s = t; + return s; + } + function UHn(n, e, t) { + var i, r, c, s; + GOn(n, e) > GOn(n, t) ? (i = uc(t, (en(), Zn)), n.d = i.dc() ? 0 : zL(u(i.Xb(0), 12)), s = uc(e, Wn), n.b = s.dc() ? 0 : zL(u(s.Xb(0), 12))) : (r = uc(t, (en(), Wn)), n.d = r.dc() ? 0 : zL(u(r.Xb(0), 12)), c = uc(e, Zn), n.b = c.dc() ? 0 : zL(u(c.Xb(0), 12))); + } + function GHn(n, e) { + var t, i, r, c; + for (t = n.o.a, c = u(u(ot(n.r, e), 21), 87).Kc(); c.Ob(); ) + r = u(c.Pb(), 117), r.e.a = t * $(R(r.b.of(bP))), r.e.b = (i = r.b, i.pf((He(), uo)) ? i.ag() == (en(), Xn) ? -i.Mf().b - $(R(i.of(uo))) : $(R(i.of(uo))) : i.ag() == (en(), Xn) ? -i.Mf().b : 0); + } + function vMe(n, e) { + var t, i, r, c; + for (e.Ug("Self-Loop pre-processing", 1), i = new C(n.a); i.a < i.c.c.length; ) + t = u(E(i), 10), c8e(t) && (r = (c = new rRn(t), U(t, (W(), lb), c), qSe(c), c), Ut(_r(rc(new Tn(null, new In(r.d, 16)), new w2n()), new g2n()), new p2n()), xTe(r)); + e.Vg(); + } + function kMe(n) { + var e, t, i, r, c, s, f, h; + e = !0, r = null, c = null; + n: + for (h = new C(n.a); h.a < h.c.c.length; ) + for (f = u(E(h), 10), i = new ie(ce(Ei(f).a.Kc(), new En())); pe(i); ) { + if (t = u(fe(i), 18), r && r != f) { + e = !1; + break n; + } + if (r = f, s = t.c.i, c && c != s) { + e = !1; + break n; + } + c = s; + } + return e; + } + function yMe(n, e, t) { + var i, r, c, s, f, h; + for (c = -1, f = -1, s = 0; s < e.c.length && (r = (Ln(s, e.c.length), u(e.c[s], 339)), !(r.c > n.c)); s++) + r.a >= n.s && (c < 0 && (c = s), f = s); + return h = (n.s + n.c) / 2, c >= 0 && (i = oSe(n, e, c, f), h = cle((Ln(i, e.c.length), u(e.c[i], 339))), aCe(e, i, t)), h; + } + function Me(n, e, t) { + var i, r, c, s, f, h, l; + for (s = (c = new tG(), c), IQ(s, (Jn(e), e)), l = (!s.b && (s.b = new lo((On(), lr), pc, s)), s.b), h = 1; h < t.length; h += 2) + zk(l, t[h - 1], t[h]); + for (i = (!n.Ab && (n.Ab = new q(Ue, n, 0, 3)), n.Ab), f = 0; f < 0; ++f) + r = Fwe(u(L(i, i.i - 1), 598)), i = r; + ve(i, s); + } + function zHn(n, e, t) { + var i, r, c; + for (jae.call(this, new Z()), this.a = e, this.b = t, this.e = n, i = (n.b && xF(n), n.a), this.d = EIn(i.a, this.a), this.c = EIn(i.b, this.b), g5e(this, this.d, this.c), HEe(this), c = this.e.e.a.ec().Kc(); c.Ob(); ) + r = u(c.Pb(), 272), r.c.c.length > 0 && iOe(this, r); + } + function Znn(n, e, t, i, r, c) { + var s, f, h; + if (!r[e.a]) { + for (r[e.a] = !0, s = i, !s && (s = new zM()), nn(s.e, e), h = c[e.a].Kc(); h.Ob(); ) + f = u(h.Pb(), 290), !(f.d == t || f.c == t) && (f.c != e && Znn(n, f.c, e, s, r, c), f.d != e && Znn(n, f.d, e, s, r, c), nn(s.c, f), li(s.d, f.b)); + return s; + } + return null; + } + function jMe(n) { + var e, t, i, r, c, s, f; + for (e = 0, r = new C(n.e); r.a < r.c.c.length; ) + i = u(E(r), 18), t = Og(new Tn(null, new In(i.b, 16)), new Gwn()), t && ++e; + for (s = new C(n.g); s.a < s.c.c.length; ) + c = u(E(s), 18), f = Og(new Tn(null, new In(c.b, 16)), new zwn()), f && ++e; + return e >= 2; + } + function EMe(n, e, t, i, r) { + var c, s, f, h, l, a; + for (c = n.c.d.j, s = u(Zo(t, 0), 8), a = 1; a < t.b; a++) + l = u(Zo(t, a), 8), xt(i, s, i.c.b, i.c), f = rh(tt(new ir(s), l), 0.5), h = rh(new BN(oY(c)), r), tt(f, h), xt(i, f, i.c.b, i.c), s = l, c = e == 0 ? RT(c) : SY(c); + Fe(i, (oe(t.b != 0), u(t.c.b.c, 8))); + } + function CMe(n) { + aw(); + var e, t, i; + return t = yt(Lo, A(T(jr, 1), G, 95, 0, [Zs])), !(kk(LM(t, n)) > 1 || (e = yt(Qs, A(T(jr, 1), G, 95, 0, [xl, Ys])), kk(LM(e, n)) > 1) || (i = yt(nf, A(T(jr, 1), G, 95, 0, [nl, Ms])), kk(LM(i, n)) > 1)); + } + function nen(n, e, t) { + var i, r, c; + for (c = new C(n.t); c.a < c.c.c.length; ) + i = u(E(c), 274), i.b.s < 0 && i.c > 0 && (i.b.n -= i.c, i.b.n <= 0 && i.b.u > 0 && Fe(e, i.b)); + for (r = new C(n.i); r.a < r.c.c.length; ) + i = u(E(r), 274), i.a.s < 0 && i.c > 0 && (i.a.u -= i.c, i.a.u <= 0 && i.a.n > 0 && Fe(t, i.a)); + } + function CA(n) { + var e, t, i, r, c; + if (n.g == null && (n.d = n.bj(n.f), ve(n, n.d), n.c)) + return c = n.f, c; + if (e = u(n.g[n.i - 1], 51), r = e.Pb(), n.e = e, t = n.bj(r), t.Ob()) + n.d = t, ve(n, t); + else + for (n.d = null; !e.Ob() && ($t(n.g, --n.i, null), n.i != 0); ) + i = u(n.g[n.i - 1], 51), e = i; + return r; + } + function MMe(n, e) { + var t, i, r, c, s, f; + if (i = e, r = i.Lk(), Sl(n.e, r)) { + if (r.Si() && _M(n, r, i.md())) + return !1; + } else + for (f = ru(n.e.Dh(), r), t = u(n.g, 124), c = 0; c < n.i; ++c) + if (s = t[c], f.am(s.Lk())) + return rt(s, i) ? !1 : (u(Rg(n, c, e), 76), !0); + return ve(n, e); + } + function TMe(n, e, t, i) { + var r, c, s, f; + for (r = new Tl(n), qa(r, (Vn(), Sc)), U(r, (W(), st), e), U(r, K8, i), U(r, (cn(), Ht), (Li(), Uc)), U(r, yf, e.c), U(r, Es, e.d), kqn(e, r), f = y.Math.floor(t / 2), s = new C(r.j); s.a < s.c.c.length; ) + c = u(E(s), 12), c.n.b = f; + return r; + } + function XHn(n) { + var e, t, i, r, c, s, f; + for (e = 0, i = new C(n.a); i.a < i.c.c.length; ) + for (t = u(E(i), 10), c = new ie(ce(Qt(t).a.Kc(), new En())); pe(c); ) + r = u(fe(c), 18), n == r.d.i.c && r.c.j == (en(), Wn) && (s = Pf(r.c).b, f = Pf(r.d).b, e = y.Math.max(e, y.Math.abs(f - s))); + return e; + } + function VHn(n, e, t) { + var i, r, c, s, f; + for (t.Ug("ELK Force", 1), on(un(z(e, (Us(), pon)))) || X7((i = new Xv((u0(), new Yd(e))), i)), f = fFn(e), z7e(f), b6e(n, u(v(f, gon), 432)), s = KUn(n.a, f), c = s.Kc(); c.Ob(); ) + r = u(c.Pb(), 235), pPe(n.b, r, t.eh(1 / s.gc())); + f = nzn(s), hzn(f), t.Vg(); + } + function een(n, e, t) { + switch (t.g) { + case 1: + return new V(e.a, y.Math.min(n.d.b, e.b)); + case 2: + return new V(y.Math.max(n.c.a, e.a), e.b); + case 3: + return new V(e.a, y.Math.max(n.c.b, e.b)); + case 4: + return new V(y.Math.min(e.a, n.d.a), e.b); + } + return new V(e.a, e.b); + } + function cy(n) { + var e, t, i; + for (e = Oh(1 + (!n.c && (n.c = new q(Wu, n, 9, 9)), n.c).i), nn(e, (!n.d && (n.d = new Nn(Wt, n, 8, 5)), n.d)), i = new ne((!n.c && (n.c = new q(Wu, n, 9, 9)), n.c)); i.e != i.i.gc(); ) + t = u(ue(i), 123), nn(e, (!t.d && (t.d = new Nn(Wt, t, 8, 5)), t.d)); + return Se(e), new A6(e); + } + function Al(n) { + var e, t, i; + for (e = Oh(1 + (!n.c && (n.c = new q(Wu, n, 9, 9)), n.c).i), nn(e, (!n.e && (n.e = new Nn(Wt, n, 7, 4)), n.e)), i = new ne((!n.c && (n.c = new q(Wu, n, 9, 9)), n.c)); i.e != i.i.gc(); ) + t = u(ue(i), 123), nn(e, (!t.e && (t.e = new Nn(Wt, t, 7, 4)), t.e)); + return Se(e), new A6(e); + } + function AMe(n) { + var e, t, i, r; + if (n == null) + return null; + if (i = Bc(n, !0), r = nj.length, An(i.substr(i.length - r, r), nj)) { + if (t = i.length, t == 4) { + if (e = (zn(0, i.length), i.charCodeAt(0)), e == 43) + return s0n; + if (e == 45) + return mse; + } else if (t == 3) + return s0n; + } + return fw(i); + } + function SMe(n, e) { + var t, i, r, c, s; + if (e.Ug("Breaking Point Processor", 1), lDe(n), on(un(v(n, (cn(), Mhn))))) { + for (r = new C(n.b); r.a < r.c.c.length; ) + for (i = u(E(r), 30), t = 0, s = new C(i.a); s.a < s.c.c.length; ) + c = u(E(s), 10), c.p = t++; + uIe(n), aqn(n, !0), aqn(n, !1); + } + e.Vg(); + } + function PMe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g; + for (d = i ? (en(), Wn) : (en(), Zn), r = !1, h = e[t], l = 0, a = h.length; l < a; ++l) + f = h[l], !Ep(u(v(f, (cn(), Ht)), 101)) && (s = f.e, g = !uc(f, d).dc() && !!s, g && (c = VZ(s), n.b = new JZ(c, i ? 0 : c.length - 1)), r = r | gAe(n, f, d, g)); + return r; + } + function WHn(n, e, t, i) { + var r, c, s; + if (s = BZ(e, t), Kn(i.c, e), n.j[s.p] == -1 || n.j[s.p] == 2 || n.a[e.p]) + return i; + for (n.j[s.p] = -1, c = new ie(ce(Cl(s).a.Kc(), new En())); pe(c); ) + if (r = u(fe(c), 18), !(!(!sr(r) && !(!sr(r) && r.c.i.c == r.d.i.c)) || r == e)) + return WHn(n, r, s, i); + return i; + } + function IMe(n) { + var e, t, i, r; + for (e = 0, t = 0, r = new C(n.j); r.a < r.c.c.length; ) + if (i = u(E(r), 12), e = Ae(Zi(e, RLn(ut(new Tn(null, new In(i.e, 16)), new w3n())))), t = Ae(Zi(t, RLn(ut(new Tn(null, new In(i.g, 16)), new g3n())))), e > 1 || t > 1) + return 2; + return e + t == 1 ? 2 : 0; + } + function eo(n, e) { + var t, i, r, c, s, f; + return c = n.a * LB + n.b * 1502, f = n.b * LB + 11, t = y.Math.floor(f * Iy), c += t, f -= t * Ctn, c %= Ctn, n.a = c, n.b = f, e <= 24 ? y.Math.floor(n.a * Lun[e]) : (r = n.a * (1 << e - 24), s = y.Math.floor(n.b * Nun[e]), i = r + s, i >= 2147483648 && (i -= 4294967296), i); + } + function JHn(n, e, t) { + var i, r, c, s, f, h, l; + for (c = new Z(), l = new Ct(), s = new Ct(), XPe(n, l, s, e), MOe(n, l, s, e, t), h = new C(n); h.a < h.c.c.length; ) + for (f = u(E(h), 118), r = new C(f.k); r.a < r.c.c.length; ) + i = u(E(r), 132), (!e || i.c == (af(), Ea)) && f.g > i.b.g && Kn(c.c, i); + return c; + } + function OMe(n, e, t) { + var i, r, c, s, f, h; + for (f = n.c, s = (t.q ? t.q : (Dn(), Dn(), Vh)).vc().Kc(); s.Ob(); ) + c = u(s.Pb(), 44), i = !o4(ut(new Tn(null, new In(f, 16)), new Y3(new uMn(e, c)))).Bd((Wa(), v3)), i && (h = c.md(), D(h, 4) && (r = cZ(h), r != null && (h = r)), e.qf(u(c.ld(), 149), h)); + } + function DMe(n, e, t) { + var i, r; + if (H7(n.b), hf(n.b, ($k(), XI), (s6(), Hj)), hf(n.b, VI, e.g), hf(n.b, WI, e.a), n.a = gy(n.b, e), t.Ug("Compaction by shrinking a tree", n.a.c.length), e.i.c.length > 1) + for (r = new C(n.a); r.a < r.c.c.length; ) + i = u(E(r), 47), i.Kf(e, t.eh(1)); + t.Vg(); + } + function ten(n, e, t) { + var i, r, c; + if (c = Qg((Ou(), zi), n.Dh(), e), c) { + if (dr(), !u(c, 69).xk() && (c = $p(Dr(zi, c)), !c)) + throw M(new Gn(ba + e.xe() + b8)); + r = (i = n.Ih(c), u(i >= 0 ? n.Lh(i, !0, !0) : q0(n, c, !0), 160)), u(r, 220).Xl(e, t); + } else + throw M(new Gn(ba + e.xe() + b8)); + } + function MA(n, e) { + var t, i, r, c, s; + if (e) { + for (c = D(n.Cb, 90) || D(n.Cb, 102), s = !c && D(n.Cb, 331), i = new ne((!e.a && (e.a = new B6(e, Er, e)), e.a)); i.e != i.i.gc(); ) + if (t = u(ue(i), 89), r = BA(t), c ? D(r, 90) : s ? D(r, 156) : r) + return r; + return c ? (On(), Is) : (On(), Yf); + } else + return null; + } + function LMe(n, e) { + var t, i, r, c; + for (e.Ug("Resize child graph to fit parent.", 1), i = new C(n.b); i.a < i.c.c.length; ) + t = u(E(i), 30), li(n.a, t.a), t.a.c.length = 0; + for (c = new C(n.a); c.a < c.c.c.length; ) + r = u(E(c), 10), xi(r, null); + n.b.c.length = 0, ZTe(n), n.e && JSe(n.e, n), e.Vg(); + } + function NMe(n, e) { + var t, i, r, c, s; + for (e.Ug("Edge joining", 1), t = on(un(v(n, (cn(), DH)))), r = new C(n.b); r.a < r.c.c.length; ) + for (i = u(E(r), 30), s = new Fi(i.a, 0); s.b < s.d.gc(); ) + c = (oe(s.b < s.d.gc()), u(s.d.Xb(s.c = s.b++), 10)), c.k == (Vn(), Ti) && (XF(c, t), bo(s)); + e.Vg(); + } + function $Me(n, e) { + var t, i, r, c, s; + for (t = new Z(), r = rc(new Tn(null, new In(n, 16)), new N3n()), c = rc(new Tn(null, new In(n, 16)), new $3n()), s = G4e(f4e(Gb(bTe(A(T(dNe, 1), Bn, 848, 0, [r, c])), new x3n()))), i = 1; i < s.length; i++) + s[i] - s[i - 1] >= 2 * e && nn(t, new KL(s[i - 1] + e, s[i] - e)); + return t; + } + function xMe(n, e, t) { + var i, r, c, s, f, h, l, a; + if (t) + for (c = t.a.length, i = new Ya(c), f = (i.b - i.a) * i.c < 0 ? (K1(), xa) : new q1(i); f.Ob(); ) + s = u(f.Pb(), 17), r = D4(t, s.a), r && (h = a3e(n, (l = (B1(), a = new ez(), a), e && ien(l, e), l), r), z4(h, bl(r, jh)), gA(r, h), Ann(r, h), _$(n, r, h)); + } + function TA(n) { + var e, t, i, r, c, s; + if (!n.j) { + if (s = new Cvn(), e = N9, c = e.a.zc(n, e), c == null) { + for (i = new ne(Hr(n)); i.e != i.i.gc(); ) + t = u(ue(i), 29), r = TA(t), Kt(s, r), ve(s, t); + e.a.Bc(n) != null; + } + tw(s), n.j = new pg((u(L(H((G1(), Hn).o), 11), 19), s.i), s.g), Yu(n).b &= -33; + } + return n.j; + } + function FMe(n) { + var e, t, i, r; + if (n == null) + return null; + if (i = Bc(n, !0), r = nj.length, An(i.substr(i.length - r, r), nj)) { + if (t = i.length, t == 4) { + if (e = (zn(0, i.length), i.charCodeAt(0)), e == 43) + return f0n; + if (e == 45) + return vse; + } else if (t == 3) + return f0n; + } + return new UG(i); + } + function BMe(n) { + var e, t, i; + return t = n.l, t & t - 1 || (i = n.m, i & i - 1) || (e = n.h, e & e - 1) || e == 0 && i == 0 && t == 0 ? -1 : e == 0 && i == 0 && t != 0 ? kQ(t) : e == 0 && i != 0 && t == 0 ? kQ(i) + 22 : e != 0 && i == 0 && t == 0 ? kQ(e) + 44 : -1; + } + function zg(n, e) { + var t, i, r, c, s; + for (r = e.a & n.f, c = null, i = n.b[r]; ; i = i.b) { + if (i == e) { + c ? c.b = e.b : n.b[r] = e.b; + break; + } + c = i; + } + for (s = e.f & n.f, c = null, t = n.c[s]; ; t = t.d) { + if (t == e) { + c ? c.d = e.d : n.c[s] = e.d; + break; + } + c = t; + } + e.e ? e.e.c = e.c : n.a = e.c, e.c ? e.c.e = e.e : n.e = e.e, --n.i, ++n.g; + } + function RMe(n, e) { + var t; + e.d ? e.d.b = e.b : n.a = e.b, e.b ? e.b.d = e.d : n.e = e.d, !e.e && !e.c ? (t = u(as(u(Bp(n.b, e.a), 260)), 260), t.a = 0, ++n.c) : (t = u(as(u(ee(n.b, e.a), 260)), 260), --t.a, e.e ? e.e.c = e.c : t.b = u(as(e.c), 511), e.c ? e.c.e = e.e : t.c = u(as(e.e), 511)), --n.d; + } + function KMe(n) { + var e, t, i, r, c, s, f, h, l, a; + for (t = n.o, e = n.p, s = et, r = Wi, f = et, c = Wi, l = 0; l < t; ++l) + for (a = 0; a < e; ++a) + Kg(n, l, a) && (s = y.Math.min(s, l), r = y.Math.max(r, l), f = y.Math.min(f, a), c = y.Math.max(c, a)); + return h = r - s + 1, i = c - f + 1, new TIn(Y(s), Y(f), Y(h), Y(i)); + } + function pF(n, e) { + var t, i, r, c; + for (c = new Fi(n, 0), t = (oe(c.b < c.d.gc()), u(c.d.Xb(c.c = c.b++), 148)); c.b < c.d.gc(); ) + i = (oe(c.b < c.d.gc()), u(c.d.Xb(c.c = c.b++), 148)), r = new GV(i.c, t.d, e), oe(c.b > 0), c.a.Xb(c.c = --c.b), Kb(c, r), oe(c.b < c.d.gc()), c.d.Xb(c.c = c.b++), r.a = !1, t = i; + } + function QHn(n) { + var e, t, i, r, c, s; + for (r = u(v(n, (W(), tI)), 12), s = new C(n.j); s.a < s.c.c.length; ) { + for (c = u(E(s), 12), i = new C(c.g); i.a < i.c.c.length; ) + return e = u(E(i), 18), Di(e, r), c; + for (t = new C(c.e); t.a < t.c.c.length; ) + return e = u(E(t), 18), Yi(e, r), c; + } + return null; + } + function YHn(n, e, t) { + var i, r, c, s, f, h; + for (h = u(Fb(n.a, e), 17).a, t ? WZ(n.a, Y(h + 1), e) : WZ(n.a, Y(h - 1), e), s = new ih(), r = new ie(ce((t ? Qt(e) : Ei(e)).a.Kc(), new En())); pe(r); ) + i = u(fe(r), 18), t ? c = i.d.i : c = i.c.i, x(Fb(n.a, c)) === x(Fb(n.a, e)) && (f = s.a.zc(c, s), f == null); + return s; + } + function _Me(n, e, t) { + var i, r; + i = vc(t.q.getTime()), Cc(i, 0) < 0 ? (r = b1 - Ae(Bk(e1(i), b1)), r == b1 && (r = 0)) : r = Ae(Bk(i, b1)), e == 1 ? (r = y.Math.min((r + 50) / 100 | 0, 9), z1(n, 48 + r & oi)) : e == 2 ? (r = y.Math.min((r + 5) / 10 | 0, 99), Fh(n, r, 2)) : (Fh(n, r, 3), e > 3 && Fh(n, 0, e - 3)); + } + function HMe(n) { + var e, t, i, r; + return x(v(n, (cn(), Rw))) === x((jl(), T1)) ? !n.e && x(v(n, Cj)) !== x((Y4(), mj)) : (i = u(v(n, yH), 299), r = on(un(v(n, jH))) || x(v(n, U8)) === x((c5(), pj)), e = u(v(n, Hfn), 17).a, t = n.a.c.length, !r && i != (Y4(), mj) && (e == 0 || e > t)); + } + function qMe(n) { + var e, t; + for (t = 0; t < n.c.length && !(USn((Ln(t, n.c.length), u(n.c[t], 113))) > 0); t++) + ; + if (t > 0 && t < n.c.length - 1) + return t; + for (e = 0; e < n.c.length && !(USn((Ln(e, n.c.length), u(n.c[e], 113))) > 0); e++) + ; + return e > 0 && t < n.c.length - 1 ? e : n.c.length / 2 | 0; + } + function ZHn(n, e) { + var t, i; + if (e != n.Cb || n.Db >> 16 != 6 && e) { + if (pm(n, e)) + throw M(new Gn(w8 + dHn(n))); + i = null, n.Cb && (i = (t = n.Db >> 16, t >= 0 ? TZ(n, i) : n.Cb.Th(n, -1 - t, null, i))), e && (i = Wp(e, n, 6, i)), i = hV(n, e, i), i && i.oj(); + } else + n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 6, e, e)); + } + function AA(n, e) { + var t, i; + if (e != n.Cb || n.Db >> 16 != 3 && e) { + if (pm(n, e)) + throw M(new Gn(w8 + nGn(n))); + i = null, n.Cb && (i = (t = n.Db >> 16, t >= 0 ? IZ(n, i) : n.Cb.Th(n, -1 - t, null, i))), e && (i = Wp(e, n, 12, i)), i = lV(n, e, i), i && i.oj(); + } else + n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 3, e, e)); + } + function ien(n, e) { + var t, i; + if (e != n.Cb || n.Db >> 16 != 9 && e) { + if (pm(n, e)) + throw M(new Gn(w8 + Yqn(n))); + i = null, n.Cb && (i = (t = n.Db >> 16, t >= 0 ? SZ(n, i) : n.Cb.Th(n, -1 - t, null, i))), e && (i = Wp(e, n, 9, i)), i = aV(n, e, i), i && i.oj(); + } else + n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 9, e, e)); + } + function Mm(n) { + var e, t, i, r, c; + if (i = gs(n), c = n.j, c == null && i) + return n.Jk() ? null : i.ik(); + if (D(i, 156)) { + if (t = i.jk(), t && (r = t.wi(), r != n.i)) { + if (e = u(i, 156), e.nk()) + try { + n.g = r.ti(e, c); + } catch (s) { + if (s = It(s), D(s, 82)) + n.g = null; + else + throw M(s); + } + n.i = r; + } + return n.g; + } + return null; + } + function nqn(n) { + var e; + return e = new Z(), nn(e, new bp(new V(n.c, n.d), new V(n.c + n.b, n.d))), nn(e, new bp(new V(n.c, n.d), new V(n.c, n.d + n.a))), nn(e, new bp(new V(n.c + n.b, n.d + n.a), new V(n.c + n.b, n.d))), nn(e, new bp(new V(n.c + n.b, n.d + n.a), new V(n.c, n.d + n.a))), e; + } + function UMe(n) { + var e, t, i; + if (n == null) + return wu; + try { + return Jr(n); + } catch (r) { + if (r = It(r), D(r, 103)) + return e = r, i = Va(wo(n)) + "@" + (t = (fl(), rZ(n) >>> 0), t.toString(16)), r9e(qve(), (l4(), "Exception during lenientFormat for " + i), e), "<" + i + " threw " + Va(e.Rm) + ">"; + throw M(r); + } + } + function GMe(n, e, t) { + var i, r, c; + for (c = e.a.ec().Kc(); c.Ob(); ) + r = u(c.Pb(), 74), i = u(ee(n.b, r), 272), !i && (At(Rh(r)) == At(ra(r)) ? DTe(n, r, t) : Rh(r) == At(ra(r)) ? ee(n.c, r) == null && ee(n.b, ra(r)) != null && DGn(n, r, t, !1) : ee(n.d, r) == null && ee(n.b, Rh(r)) != null && DGn(n, r, t, !0)); + } + function zMe(n, e) { + var t, i, r, c, s, f, h; + for (r = n.Kc(); r.Ob(); ) + for (i = u(r.Pb(), 10), f = new Ic(), ic(f, i), pi(f, (en(), Zn)), U(f, (W(), uI), (_n(), !0)), s = e.Kc(); s.Ob(); ) + c = u(s.Pb(), 10), h = new Ic(), ic(h, c), pi(h, Wn), U(h, uI, !0), t = new C0(), U(t, uI, !0), Yi(t, f), Di(t, h); + } + function XMe(n, e, t, i) { + var r, c, s, f; + r = BBn(n, e, t), c = BBn(n, t, e), s = u(ee(n.c, e), 118), f = u(ee(n.c, t), 118), r < c ? new td((af(), Xw), s, f, c - r) : c < r ? new td((af(), Xw), f, s, r - c) : (r != 0 || !(!e.i || !t.i) && i[e.i.c][t.i.c]) && (new td((af(), Xw), s, f, 0), new td(Xw, f, s, 0)); + } + function eqn(n, e) { + var t, i, r, c, s, f, h; + for (r = 0, s = new C(e.a); s.a < s.c.c.length; ) + for (c = u(E(s), 10), r += c.o.b + c.d.a + c.d.d + n.e, i = new ie(ce(Ei(c).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 18), t.c.i.k == (Vn(), Hc) && (h = t.c.i, f = u(v(h, (W(), st)), 10), r += f.o.b + f.d.a + f.d.d); + return r; + } + function x5() { + x5 = F, N2 = new b7("CANDIDATE_POSITION_LAST_PLACED_RIGHT", 0), D3 = new b7("CANDIDATE_POSITION_LAST_PLACED_BELOW", 1), d9 = new b7("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT", 2), a9 = new b7("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW", 3), _j = new b7("WHOLE_DRAWING", 4); + } + function VMe(n, e) { + if (D(e, 207)) + return m5e(n, u(e, 27)); + if (D(e, 193)) + return M5e(n, u(e, 123)); + if (D(e, 366)) + return wge(n, u(e, 135)); + if (D(e, 326)) + return DPe(n, u(e, 74)); + if (e) + return null; + throw M(new Gn(Ncn + ca(new Bu(A(T(yi, 1), Bn, 1, 5, [e]))))); + } + function WMe(n) { + var e, t, i, r, c, s, f; + for (c = new Ct(), r = new C(n.d.a); r.a < r.c.c.length; ) + i = u(E(r), 125), i.b.a.c.length == 0 && xt(c, i, c.c.b, c.c); + if (c.b > 1) + for (e = l0((t = new Xa(), ++n.b, t), n.d), f = ge(c, 0); f.b != f.d.c; ) + s = u(be(f), 125), qs(Ls(Ds(Ns(Os(new hs(), 1), 0), e), s)); + } + function JMe(n, e, t) { + var i, r, c, s, f; + for (t.Ug("Breaking Point Removing", 1), n.a = u(v(e, (cn(), $l)), 223), c = new C(e.b); c.a < c.c.c.length; ) + for (r = u(E(c), 30), f = new C(A0(r.a)); f.a < f.c.c.length; ) + s = u(E(f), 10), r$n(s) && (i = u(v(s, (W(), sb)), 313), !i.d && GGn(n, i)); + t.Vg(); + } + function SA(n, e) { + var t, i; + if (e != n.Cb || n.Db >> 16 != 11 && e) { + if (pm(n, e)) + throw M(new Gn(w8 + Een(n))); + i = null, n.Cb && (i = (t = n.Db >> 16, t >= 0 ? OZ(n, i) : n.Cb.Th(n, -1 - t, null, i))), e && (i = Wp(e, n, 10, i)), i = yV(n, e, i), i && i.oj(); + } else + n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 11, e, e)); + } + function QMe(n) { + var e, t, i, r; + for (i = new fd(new Ga(n.b).a); i.b; ) + t = N0(i), r = u(t.ld(), 12), e = u(t.md(), 10), U(e, (W(), st), r), U(r, Gu, e), U(r, yj, (_n(), !0)), pi(r, u(v(e, gc), 64)), v(e, gc), U(r.i, (cn(), Ht), (Li(), Rv)), u(v(Hi(r.i), qc), 21).Fc((mr(), kv)); + } + function YMe(n, e, t) { + var i, r, c, s, f, h; + if (c = 0, s = 0, n.c) + for (h = new C(n.d.i.j); h.a < h.c.c.length; ) + f = u(E(h), 12), c += f.e.c.length; + else + c = 1; + if (n.d) + for (h = new C(n.c.i.j); h.a < h.c.c.length; ) + f = u(E(h), 12), s += f.g.c.length; + else + s = 1; + return r = gi(B7(s - c)), i = (t + e) / 2 + (t - e) * (0.4 * r), i; + } + function ZMe(n) { + sw(); + var e, t; + if (n.Hc((en(), sc))) + throw M(new Gn("Port sides must not contain UNDEFINED")); + switch (n.gc()) { + case 1: + return gj; + case 2: + return e = n.Hc(Zn) && n.Hc(Wn), t = n.Hc(Xn) && n.Hc(ae), e || t ? XP : zP; + case 3: + return GP; + case 4: + return UP; + default: + return null; + } + } + function mF(n, e, t) { + return Vg(), V4(n, e) && V4(n, t) ? !1 : WF(new V(n.c, n.d), new V(n.c + n.b, n.d), e, t) || WF(new V(n.c + n.b, n.d), new V(n.c + n.b, n.d + n.a), e, t) || WF(new V(n.c + n.b, n.d + n.a), new V(n.c, n.d + n.a), e, t) || WF(new V(n.c, n.d + n.a), new V(n.c, n.d), e, t); + } + function ren(n, e) { + var t, i, r, c; + if (!n.dc()) { + for (t = 0, i = n.gc(); t < i; ++t) + if (c = Oe(n.Xb(t)), c == null ? e == null : An(c.substr(0, 3), "!##") ? e != null && (r = e.length, !An(c.substr(c.length - r, r), e) || c.length != e.length + 3) && !An(Pd, e) : An(c, IK) && !An(Pd, e) || An(c, e)) + return !0; + } + return !1; + } + function nTe(n, e, t, i) { + var r, c, s, f, h, l; + for (s = n.j.c.length, h = K(gNe, $tn, 314, s, 0, 1), f = 0; f < s; f++) + c = u(sn(n.j, f), 12), c.p = f, h[f] = lCe(MHn(c), t, i); + for (MTe(n, h, t, e, i), l = new de(), r = 0; r < h.length; r++) + h[r] && Xe(l, u(sn(n.j, r), 12), h[r]); + l.f.c + l.i.c != 0 && (U(n, (W(), R8), l), Mje(n, h)); + } + function eTe(n, e) { + var t, i, r, c, s, f; + for (e.Ug("Partition postprocessing", 1), i = new C(n.b); i.a < i.c.c.length; ) + for (t = u(E(i), 30), c = new C(t.a); c.a < c.c.c.length; ) + for (r = u(E(c), 10), f = new C(r.j); f.a < f.c.c.length; ) + s = u(E(f), 12), on(un(v(s, (W(), uI)))) && q6(f); + e.Vg(); + } + function tTe(n, e, t) { + var i, r, c; + for (r = new C(n.a.b); r.a < r.c.c.length; ) + if (i = u(E(r), 60), c = Pg(i), c && c.k == (Vn(), ni)) + switch (u(v(c, (W(), gc)), 64).g) { + case 4: + c.n.a = e.a; + break; + case 2: + c.n.a = t.a - (c.o.a + c.d.c); + break; + case 1: + c.n.b = e.b; + break; + case 3: + c.n.b = t.b - (c.o.b + c.d.a); + } + } + function iTe(n, e, t) { + var i, r, c; + for (t.Ug("Processor determine the height for each level", 1), n.a = e.b.b == 0 ? 1 : e.b.b, r = null, i = ge(e.b, 0); !r && i.b != i.d.c; ) + c = u(be(i), 40), on(un(v(c, (pt(), Ma)))) && (r = c); + r && UUn(n, If(A(T(NI, 1), OS, 40, 0, [r])), t, u(v(e, (lc(), kb)), 88)), t.Vg(); + } + function rTe(n) { + var e, t, i, r, c, s; + for (i = (B1(), c = new Yv(), c), uy(i, n), t = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); t.e != t.i.gc(); ) + e = u(ue(t), 27), s = (r = new Yv(), r), SA(s, i), kg(s, e.g, e.f), z4(s, e.k), Ro(s, e.i, e.j), ve((!i.a && (i.a = new q(Ye, i, 10, 11)), i.a), s), uy(s, e); + return i; + } + function cTe(n, e, t) { + var i, r, c, s, f; + return r = u(z(e, (mA(), wan)), 17), !r && (r = Y(0)), c = u(z(t, wan), 17), !c && (c = Y(0)), r.a > c.a ? -1 : r.a < c.a ? 1 : n.a && (i = bt(e.j, t.j), i != 0 || (i = bt(e.i, t.i), i != 0)) ? i : (s = e.g * e.f, f = t.g * t.f, bt(s, f)); + } + function uTe(n, e) { + var t, i, r, c, s, f, h, l, a, d; + if (++n.e, h = n.d == null ? 0 : n.d.length, e > h) { + for (a = n.d, n.d = K(Ndn, qcn, 66, 2 * h + 4, 0, 1), c = 0; c < h; ++c) + if (l = a[c], l) + for (i = l.g, d = l.i, f = 0; f < d; ++f) + r = u(i[f], 136), s = dV(n, r.Bi()), t = n.d[s], !t && (t = n.d[s] = n.dk()), t.Fc(r); + return !0; + } else + return !1; + } + function oTe(n, e, t) { + var i, r, c, s, f, h; + if (r = t, c = r.Lk(), Sl(n.e, c)) { + if (c.Si()) { + for (i = u(n.g, 124), s = 0; s < n.i; ++s) + if (f = i[s], rt(f, r) && s != e) + throw M(new Gn(Vy)); + } + } else + for (h = ru(n.e.Dh(), c), i = u(n.g, 124), s = 0; s < n.i; ++s) + if (f = i[s], h.am(f.Lk())) + throw M(new Gn(Zy)); + v5(n, e, t); + } + function tqn(n, e) { + var t, i, r, c, s, f; + for (t = u(v(e, (W(), Nl)), 21), s = u(ot((YF(), wt), t), 21), f = u(ot(qe, t), 21), c = s.Kc(); c.Ob(); ) + if (i = u(c.Pb(), 21), !u(ot(n.b, i), 15).dc()) + return !1; + for (r = f.Kc(); r.Ob(); ) + if (i = u(r.Pb(), 21), !u(ot(n.b, i), 15).dc()) + return !1; + return !0; + } + function cen(n, e) { + var t, i, r, c, s, f, h, l, a; + if (n.a.c.length == 1) + return c_n(u(sn(n.a, 0), 172), e); + for (s = i5e(n), h = 0, l = n.d, c = s, a = n.d, f = (l - c) / 2 + c; c + 1 < l; ) { + for (h = 0, i = new C(n.a); i.a < i.c.c.length; ) + t = u(E(i), 172), h += (r = G5(t, f, !1), r.a); + h < e ? (a = f, l = f) : c = f, f = (l - c) / 2 + c; + } + return a; + } + function uy(n, e) { + var t, i, r, c, s; + if (!e) + return n; + if (D(e, 342)) + for (r = u(e, 342), c = (!n.o && (n.o = new Pu((Mc(), tl), A1, n, 0)), n.o), i = r.gh().c.Kc(); i.e != i.i.gc(); ) + t = u(i.Yj(), 44), s = t.md(), zk(c, u(t.ld(), 149), s); + else + !n.o && (n.o = new Pu((Mc(), tl), A1, n, 0)), hxn(n.o, e.nf()); + return n; + } + function sTe(n) { + var e, t, i, r, c; + return isNaN(n) ? (B4(), aun) : n < -9223372036854776e3 ? (B4(), bQn) : n >= 9223372036854776e3 ? (B4(), hun) : (r = !1, n < 0 && (r = !0, n = -n), i = 0, n >= kd && (i = gi(n / kd), n -= i * kd), t = 0, n >= o3 && (t = gi(n / o3), n -= t * o3), e = gi(n), c = Yc(e, t, i), r && H$(c), c); + } + function fTe(n) { + var e, t, i, r, c; + if (c = new Z(), nu(n.b, new S9n(c)), n.b.c.length = 0, c.c.length != 0) { + for (e = (Ln(0, c.c.length), u(c.c[0], 82)), t = 1, i = c.c.length; t < i; ++t) + r = (Ln(t, c.c.length), u(c.c[t], 82)), r != e && $ye(e, r); + if (D(e, 63)) + throw M(u(e, 63)); + if (D(e, 296)) + throw M(u(e, 296)); + } + } + function hTe(n, e) { + var t, i, r, c; + for (t = !e || !n.u.Hc((Uu(), Fl)), c = 0, r = new C(n.e.Xf()); r.a < r.c.c.length; ) { + if (i = u(E(r), 852), i.ag() == (en(), sc)) + throw M(new Gn("Label and node size calculator can only be used with ports that have port sides assigned.")); + i.Qf(c++), Y6e(n, i, t); + } + } + function uen(n) { + var e, t, i, r, c; + for (t = new C(n.a.a); t.a < t.c.c.length; ) { + for (e = u(E(t), 316), e.j = null, c = e.a.a.ec().Kc(); c.Ob(); ) + i = u(c.Pb(), 60), ff(i.b), (!e.j || i.d.c < e.j.d.c) && (e.j = i); + for (r = e.a.a.ec().Kc(); r.Ob(); ) + i = u(r.Pb(), 60), i.b.a = i.d.c - e.j.d.c, i.b.b = i.d.d - e.j.d.d; + } + return n; + } + function PA(n) { + var e, t, i, r, c; + for (t = new C(n.a.a); t.a < t.c.c.length; ) { + for (e = u(E(t), 194), e.f = null, c = e.a.a.ec().Kc(); c.Ob(); ) + i = u(c.Pb(), 86), ff(i.e), (!e.f || i.g.c < e.f.g.c) && (e.f = i); + for (r = e.a.a.ec().Kc(); r.Ob(); ) + i = u(r.Pb(), 86), i.e.a = i.g.c - e.f.g.c, i.e.b = i.g.d - e.f.g.d; + } + return n; + } + function lTe(n) { + var e, t, i; + return t = u(n.a, 17).a, i = u(n.b, 17).a, e = y.Math.max(y.Math.abs(t), y.Math.abs(i)), t < e && i == -e ? new wi(Y(t + 1), Y(i)) : t == e && i < e ? new wi(Y(t), Y(i + 1)) : t >= -e && i == e ? new wi(Y(t - 1), Y(i)) : new wi(Y(t), Y(i - 1)); + } + function iqn() { + return er(), A(T(yNe, 1), G, 81, 0, [Qon, Von, b2, N_, gsn, IP, KP, Nw, bsn, csn, asn, Lw, wsn, tsn, psn, Hon, NP, $_, SP, FP, vsn, xP, qon, dsn, ksn, BP, msn, PP, Zon, hsn, fsn, _P, zon, AP, DP, Gon, fv, osn, isn, lsn, L8, Won, Xon, ssn, rsn, LP, RP, Uon, $P, usn, OP, nsn, Yon, bj, TP, esn, Jon]); + } + function aTe(n, e, t) { + n.d = 0, n.b = 0, e.k == (Vn(), Hc) && t.k == Hc && u(v(e, (W(), st)), 10) == u(v(t, st), 10) && (s$(e).j == (en(), Xn) ? UHn(n, e, t) : UHn(n, t, e)), e.k == Hc && t.k == Ti ? s$(e).j == (en(), Xn) ? n.d = 1 : n.b = 1 : t.k == Hc && e.k == Ti && (s$(t).j == (en(), Xn) ? n.b = 1 : n.d = 1), J9e(n, e, t); + } + function dTe(n) { + var e, t, i, r, c, s, f, h, l, a, d; + return d = enn(n), e = n.a, h = e != null, h && y4(d, "category", n.a), r = Z9(new Ua(n.d)), s = !r, s && (l = new Ha(), bf(d, "knownOptions", l), t = new fyn(l), qi(new Ua(n.d), t)), c = Z9(n.g), f = !c, f && (a = new Ha(), bf(d, "supportedFeatures", a), i = new hyn(a), qi(n.g, i)), d; + } + function bTe(n) { + var e, t, i, r, c, s, f, h, l; + for (i = !1, e = 336, t = 0, c = new zAn(n.length), f = n, h = 0, l = f.length; h < l; ++h) + s = f[h], i = i | (ta(s), !1), r = (X1(s), s.a), nn(c.a, Se(r)), e &= r.yd(), t = D6e(t, r.zd()); + return u(u(_Pn(new Tn(null, nF(new In((v0(), QY(c.a)), 16), new N1(), e, t)), new e9n(n)), 687), 848); + } + function wTe(n, e) { + var t; + n.d && (e.c != n.e.c || cve(n.e.b, e.b)) && (nn(n.f, n.d), n.a = n.d.c + n.d.b, n.d = null, n.e = null), Ile(e.b) ? n.c = e : n.b = e, (e.b == (Z4(), cb) && !e.a || e.b == Iw && e.a || e.b == d2 && e.a || e.b == Ow && !e.a) && n.c && n.b && (t = new Ho(n.a, n.c.d, e.c - n.a, n.b.d - n.c.d), n.d = t, n.e = e); + } + function F5(n) { + var e; + if (vjn.call(this), this.i = new jmn(), this.g = n, this.f = u(n.e && n.e(), 9).length, this.f == 0) + throw M(new Gn("There must be at least one phase in the phase enumeration.")); + this.c = (e = u(of(this.g), 9), new _o(e, u(xs(e, e.length), 9), 0)), this.a = new ri(), this.b = new de(); + } + function oen(n, e) { + var t, i; + if (e != n.Cb || n.Db >> 16 != 7 && e) { + if (pm(n, e)) + throw M(new Gn(w8 + h_n(n))); + i = null, n.Cb && (i = (t = n.Db >> 16, t >= 0 ? AZ(n, i) : n.Cb.Th(n, -1 - t, null, i))), e && (i = u(e, 54).Rh(n, 1, oE, i)), i = bW(n, e, i), i && i.oj(); + } else + n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 7, e, e)); + } + function rqn(n, e) { + var t, i; + if (e != n.Cb || n.Db >> 16 != 3 && e) { + if (pm(n, e)) + throw M(new Gn(w8 + sBn(n))); + i = null, n.Cb && (i = (t = n.Db >> 16, t >= 0 ? PZ(n, i) : n.Cb.Th(n, -1 - t, null, i))), e && (i = u(e, 54).Rh(n, 0, fE, i)), i = wW(n, e, i), i && i.oj(); + } else + n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 3, e, e)); + } + function vF(n, e) { + Tm(); + var t, i, r, c, s, f, h, l, a; + return e.d > n.d && (f = n, n = e, e = f), e.d < 63 ? tAe(n, e) : (s = (n.d & -2) << 4, l = NJ(n, s), a = NJ(e, s), i = RF(n, Fp(l, s)), r = RF(e, Fp(a, s)), h = vF(l, a), t = vF(i, r), c = vF(RF(l, i), RF(r, a)), c = zF(zF(c, h), t), c = Fp(c, s), h = Fp(h, s << 1), zF(zF(h, c), t)); + } + function d1() { + d1 = F, xH = new dg(sVn, 0), Shn = new dg("LONGEST_PATH", 1), Phn = new dg("LONGEST_PATH_SOURCE", 2), $H = new dg("COFFMAN_GRAHAM", 3), Ahn = new dg(sR, 4), Ihn = new dg("STRETCH_WIDTH", 5), CI = new dg("MIN_WIDTH", 6), Sv = new dg("BF_MODEL_ORDER", 7), Pv = new dg("DF_MODEL_ORDER", 8); + } + function gTe(n, e, t) { + var i, r, c, s, f; + for (s = g5(n, t), f = K(Jh, w1, 10, e.length, 0, 1), i = 0, c = s.Kc(); c.Ob(); ) + r = u(c.Pb(), 12), on(un(v(r, (W(), yj)))) && (f[i++] = u(v(r, Gu), 10)); + if (i < e.length) + throw M(new Ir("Expected " + e.length + " hierarchical ports, but found only " + i + ".")); + return f; + } + function pTe(n, e) { + var t, i, r, c, s, f; + if (!n.tb) { + for (c = (!n.rb && (n.rb = new qb(n, Cf, n)), n.rb), f = new ap(c.i), r = new ne(c); r.e != r.i.gc(); ) + i = u(ue(r), 142), s = i.xe(), t = u(s == null ? Wc(f.f, null, i) : x0(f.i, s, i), 142), t && (s == null ? Wc(f.f, null, t) : x0(f.i, s, t)); + n.tb = f; + } + return u($c(n.tb, e), 142); + } + function oy(n, e) { + var t, i, r, c, s; + if ((n.i == null && dh(n), n.i).length, !n.p) { + for (s = new ap((3 * n.g.i / 2 | 0) + 1), r = new yp(n.g); r.e != r.i.gc(); ) + i = u(Mx(r), 179), c = i.xe(), t = u(c == null ? Wc(s.f, null, i) : x0(s.i, c, i), 179), t && (c == null ? Wc(s.f, null, t) : x0(s.i, c, t)); + n.p = s; + } + return u($c(n.p, e), 179); + } + function sen(n, e, t, i, r) { + var c, s, f, h, l; + for (G8e(i + IM(t, t.ie()), r), nIn(e, l8e(t)), c = t.f, c && sen(n, e, c, "Caused by: ", !1), f = (t.k == null && (t.k = K(zK, J, 82, 0, 0, 1)), t.k), h = 0, l = f.length; h < l; ++h) + s = f[h], sen(n, e, s, "Suppressed: ", !1); + console.groupEnd != null && console.groupEnd.call(console); + } + function sy(n, e, t, i) { + var r, c, s, f, h; + for (h = e.e, f = h.length, s = e.q.ug(h, t ? 0 : f - 1, t), r = h[t ? 0 : f - 1], s = s | Gqn(n, r, t, i), c = t ? 1 : f - 2; t ? c < f : c >= 0; c += t ? 1 : -1) + s = s | e.c.lg(h, c, t, i && !on(un(v(e.j, (W(), ka)))) && !on(un(v(e.j, (W(), j2))))), s = s | e.q.ug(h, c, t), s = s | Gqn(n, h[c], t, i); + return hi(n.c, e), s; + } + function IA(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + for (a = CDn(n.j), d = 0, g = a.length; d < g; ++d) { + if (l = a[d], t == (pr(), zu) || t == Q8) + for (h = fh(l.g), r = h, c = 0, s = r.length; c < s; ++c) + i = r[c], Cje(e, i) && G0(i, !0); + if (t == Qc || t == Q8) + for (f = fh(l.e), r = f, c = 0, s = r.length; c < s; ++c) + i = r[c], Eje(e, i) && G0(i, !0); + } + } + function mTe(n) { + var e, t; + switch (e = null, t = null, xke(n).g) { + case 1: + e = (en(), Zn), t = Wn; + break; + case 2: + e = (en(), ae), t = Xn; + break; + case 3: + e = (en(), Wn), t = Zn; + break; + case 4: + e = (en(), Xn), t = ae; + } + gG(n, u(ho(Ap(u(ot(n.k, e), 15).Oc(), w2)), 113)), wG(n, u(ho(Hb(u(ot(n.k, t), 15).Oc(), w2)), 113)); + } + function vTe(n) { + var e, t, i, r, c, s; + if (r = u(sn(n.j, 0), 12), r.e.c.length + r.g.c.length == 0) + n.n.a = 0; + else { + for (s = 0, i = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [new n4(r), new ip(r)]))); pe(i); ) + t = u(fe(i), 12), s += t.i.n.a + t.n.a + t.a.a; + e = u(v(n, (cn(), wb)), 8), c = e ? e.a : 0, n.n.a = s / (r.e.c.length + r.g.c.length) - c; + } + } + function cqn(n, e) { + var t, i, r; + for (i = new C(e.a); i.a < i.c.c.length; ) + t = u(E(i), 225), YL(u(t.b, 68), vi(Ki(u(e.b, 68).c), u(e.b, 68).a)), r = CUn(u(e.b, 68).b, u(t.b, 68).b), r > 1 && (n.a = !0), Wbe(u(t.b, 68), tt(Ki(u(e.b, 68).c), rh(vi(Ki(u(t.b, 68).a), u(e.b, 68).a), r))), OOn(n, e), cqn(n, t); + } + function uqn(n) { + var e, t, i, r, c, s, f; + for (c = new C(n.a.a); c.a < c.c.c.length; ) + i = u(E(c), 194), i.e = 0, i.d.a.$b(); + for (r = new C(n.a.a); r.a < r.c.c.length; ) + for (i = u(E(r), 194), t = i.a.a.ec().Kc(); t.Ob(); ) + for (e = u(t.Pb(), 86), f = e.f.Kc(); f.Ob(); ) + s = u(f.Pb(), 86), s.d != i && (hi(i.d, s), ++s.d.e); + } + function kTe(n) { + var e, t, i, r, c, s, f, h; + for (h = n.j.c.length, t = 0, e = h, r = 2 * h, f = new C(n.j); f.a < f.c.c.length; ) + switch (s = u(E(f), 12), s.j.g) { + case 2: + case 4: + s.p = -1; + break; + case 1: + case 3: + i = s.e.c.length, c = s.g.c.length, i > 0 && c > 0 ? s.p = e++ : i > 0 ? s.p = t++ : c > 0 ? s.p = r++ : s.p = t++; + } + Dn(), Zt(n.j, new _gn()); + } + function yTe(n) { + var e, t; + t = null, e = u(sn(n.g, 0), 18); + do { + if (t = e.d.i, kt(t, (W(), Es))) + return u(v(t, Es), 12).i; + if (t.k != (Vn(), Xt) && pe(new ie(ce(Qt(t).a.Kc(), new En())))) + e = u(fe(new ie(ce(Qt(t).a.Kc(), new En()))), 18); + else if (t.k != Xt) + return null; + } while (t && t.k != (Vn(), Xt)); + return t; + } + function jTe(n, e) { + var t, i, r, c, s, f, h, l, a; + for (f = e.j, s = e.g, h = u(sn(f, f.c.length - 1), 113), a = (Ln(0, f.c.length), u(f.c[0], 113)), l = Kx(n, s, h, a), c = 1; c < f.c.length; c++) + t = (Ln(c - 1, f.c.length), u(f.c[c - 1], 113)), r = (Ln(c, f.c.length), u(f.c[c], 113)), i = Kx(n, s, t, r), i > l && (h = t, a = r, l = i); + e.a = a, e.c = h; + } + function ETe(n, e, t) { + var i, r, c, s, f, h, l; + for (l = new Gl(new X7n(n)), s = A(T(FZn, 1), DXn, 12, 0, [e, t]), f = 0, h = s.length; f < h; ++f) + for (c = s[f], l.a.zc(c, (_n(), ga)) == null, r = new Of(c.b); tc(r.a) || tc(r.b); ) + i = u(tc(r.a) ? E(r.a) : E(r.b), 18), i.c == i.d || R7(l, c == i.c ? i.d : i.c); + return Se(l), new Ru(l); + } + function qs(n) { + if (!n.a.d || !n.a.e) + throw M(new Ir((ll(GQn), GQn.k + " must have a source and target " + (ll(ion), ion.k) + " specified."))); + if (n.a.d == n.a.e) + throw M(new Ir("Network simplex does not support self-loops: " + n.a + " " + n.a.d + " " + n.a.e)); + return RC(n.a.d.g, n.a), RC(n.a.e.b, n.a), n.a; + } + function CTe(n, e) { + var t, i, r, c, s, f, h; + for (e.Ug("Constraints Postprocessor", 1), s = 0, c = new C(n.b); c.a < c.c.c.length; ) { + for (r = u(E(c), 30), h = 0, f = !1, i = new C(r.a); i.a < i.c.c.length; ) + t = u(E(i), 10), t.k == (Vn(), Xt) && (f = !0, U(t, (cn(), gI), Y(s)), U(t, aI, Y(h)), ++h); + f && ++s; + } + e.Vg(); + } + function oqn(n, e, t) { + var i, r, c, s, f, h; + if (i = 0, e.b != 0 && t.b != 0) { + c = ge(e, 0), s = ge(t, 0), f = $(R(be(c))), h = $(R(be(s))), r = !0; + do { + if (f > h - n.b && f < h + n.b) + return -1; + f > h - n.a && f < h + n.a && ++i, f <= h && c.b != c.d.c ? f = $(R(be(c))) : h <= f && s.b != s.d.c ? h = $(R(be(s))) : r = !1; + } while (r); + } + return i; + } + function sqn(n, e) { + var t, i; + return H7(n.a), hf(n.a, (yT(), RI), RI), hf(n.a, L2, L2), i = new ri(), Ke(i, L2, (wA(), pq)), x(z(e, (oa(), yq))) !== x((Pk(), KI)) && Ke(i, L2, bq), on(un(z(e, Yln))) && Ke(i, L2, mq), Ke(i, L2, wq), on(un(z(e, n1n))) && Su(i, L2, gq), MX(n.a, i), t = gy(n.a, e), t; + } + function MTe(n, e, t, i, r) { + var c, s, f, h; + for (h = (c = u(of(hr), 9), new _o(c, u(xs(c, c.length), 9), 0)), f = new C(n.j); f.a < f.c.c.length; ) + s = u(E(f), 12), e[s.p] && (QDe(s, e[s.p], i), _s(h, s.j)); + r ? (Wx(n, e, (en(), Zn), 2 * t, i), Wx(n, e, Wn, 2 * t, i)) : (Wx(n, e, (en(), Xn), 2 * t, i), Wx(n, e, ae, 2 * t, i)); + } + function TTe(n) { + var e, t; + for (t = new ie(ce(Qt(n).a.Kc(), new En())); pe(t); ) + if (e = u(fe(t), 18), e.d.i.k != (Vn(), Sc)) + throw M(new Hl(oR + qk(n) + "' has its layer constraint set to LAST, but has at least one outgoing edge that does not go to a LAST_SEPARATE node. That must not happen.")); + } + function ATe(n, e, t) { + var i, r, c, s, f; + for (t.Ug("Longest path layering", 1), n.a = e, f = n.a.a, n.b = K(ye, _e, 28, f.c.length, 15, 1), i = 0, s = new C(f); s.a < s.c.c.length; ) + r = u(E(s), 10), r.p = i, n.b[i] = -1, ++i; + for (c = new C(f); c.a < c.c.c.length; ) + r = u(E(c), 10), KHn(n, r); + f.c.length = 0, n.a = null, n.b = null, t.Vg(); + } + function STe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g; + for (h = 0, a = new C(n.a); a.a < a.c.c.length; ) { + for (l = u(E(a), 10), f = 0, c = new ie(ce(Ei(l).a.Kc(), new En())); pe(c); ) + r = u(fe(c), 18), d = Pf(r.c).b, g = Pf(r.d).b, f = y.Math.max(f, y.Math.abs(g - d)); + h = y.Math.max(h, f); + } + return s = i * y.Math.min(1, e / t) * h, s; + } + function PTe(n, e) { + var t, i, r, c, s; + for (s = u(v(e, (lc(), Dln)), 433), c = ge(e.b, 0); c.b != c.d.c; ) + if (r = u(be(c), 40), n.b[r.g] == 0) { + switch (s.g) { + case 0: + MRn(n, r); + break; + case 1: + BCe(n, r); + } + n.b[r.g] = 2; + } + for (i = ge(n.a, 0); i.b != i.d.c; ) + t = u(be(i), 65), rw(t.b.d, t, !0), rw(t.c.b, t, !0); + U(e, (pt(), yln), n.a); + } + function fen(n) { + var e; + return e = new i6(), n & 256 && (e.a += "F"), n & 128 && (e.a += "H"), n & 512 && (e.a += "X"), n & 2 && (e.a += "i"), n & 8 && (e.a += "m"), n & 4 && (e.a += "s"), n & 32 && (e.a += "u"), n & 64 && (e.a += "w"), n & 16 && (e.a += "x"), n & Gs && (e.a += ","), dz(e.a); + } + function ITe(n, e) { + var t, i, r, c, s, f; + e.Ug(SVn, 1), r = u(z(n, (Bf(), h9)), 107), c = (!n.a && (n.a = new q(Ye, n, 10, 11)), n.a), s = x7e(c), f = y.Math.max(s.a, $(R(z(n, (Kh(), f9)))) - (r.b + r.c)), i = y.Math.max(s.b, $(R(z(n, UI))) - (r.d + r.a)), t = i - s.b, ht(n, s9, t), ht(n, O3, f), ht(n, Lv, i + t), e.Vg(); + } + function ru(n, e) { + dr(); + var t, i, r, c; + return e ? e == (at(), pse) || (e == cse || e == Xd || e == rse) && n != o0n ? new rtn(n, e) : (i = u(e, 692), t = i.$k(), t || (S4(Dr((Ou(), zi), e)), t = i.$k()), c = (!t.i && (t.i = new de()), t.i), r = u(Kr(gr(c.f, n)), 2041), !r && Xe(c, n, r = new rtn(n, e)), r) : ese; + } + function OTe(n, e) { + var t, i; + if (i = R7(n.b, e.b), !i) + throw M(new Ir("Invalid hitboxes for scanline constraint calculation.")); + (nFn(e.b, u(Ghe(n.b, e.b), 60)) || nFn(e.b, u(Uhe(n.b, e.b), 60))) && (fl(), String.fromCharCode(10)), n.a[e.b.f] = u(ID(n.b, e.b), 60), t = u(PD(n.b, e.b), 60), t && (n.a[t.f] = e.b); + } + function DTe(n, e, t) { + var i, r, c, s, f, h, l, a, d; + for (c = Xg(e, !1, !1), l = Qk(c), d = $(R(z(e, (C5(), g_)))), r = mzn(l, d + n.a), a = new bF(r), Ur(a, e), Xe(n.b, e, a), Kn(t.c, a), h = (!e.n && (e.n = new q(Sr, e, 1, 7)), e.n), f = new ne(h); f.e != f.i.gc(); ) + s = u(ue(f), 135), i = fy(n, s, !0, 0, 0), Kn(t.c, i); + return a; + } + function LTe(n, e) { + var t, i, r, c, s, f, h; + for (r = new Z(), t = 0; t <= n.j; t++) + i = new Nc(e), i.p = n.j - t, Kn(r.c, i); + for (f = new C(n.p); f.a < f.c.c.length; ) + s = u(E(f), 10), xi(s, u(sn(r, n.j - n.g[s.p]), 30)); + for (c = new C(r); c.a < c.c.c.length; ) + h = u(E(c), 30), h.a.c.length == 0 && q6(c); + e.b.c.length = 0, li(e.b, r); + } + function NTe(n, e) { + var t, i, r, c, s, f, h, l, a; + for (h = u(v(n, (W(), st)), 12), l = cc(A(T(Ci, 1), J, 8, 0, [h.i.n, h.n, h.a])).a, a = n.i.n.b, t = fh(n.e), r = t, c = 0, s = r.length; c < s; ++c) + i = r[c], Di(i, h), tr(i.a, new V(l, a)), e && (f = u(v(i, (cn(), xr)), 75), f || (f = new Cu(), U(i, xr, f)), Fe(f, new V(l, a))); + } + function $Te(n, e) { + var t, i, r, c, s, f, h, l, a; + for (r = u(v(n, (W(), st)), 12), l = cc(A(T(Ci, 1), J, 8, 0, [r.i.n, r.n, r.a])).a, a = n.i.n.b, t = fh(n.g), s = t, f = 0, h = s.length; f < h; ++f) + c = s[f], Yi(c, r), gg(c.a, new V(l, a)), e && (i = u(v(c, (cn(), xr)), 75), i || (i = new Cu(), U(c, xr, i)), Fe(i, new V(l, a))); + } + function xTe(n) { + var e, t, i, r, c, s, f, h, l; + if (i = n.b, c = i.e, s = Ep(u(v(i, (cn(), Ht)), 101)), t = !!c && u(v(c, (W(), qc)), 21).Hc((mr(), cs)), !(s || t)) + for (l = (f = new ol(n.e).a.vc().Kc(), new Pb(f)); l.a.Ob(); ) + h = (e = u(l.a.Pb(), 44), u(e.md(), 113)), h.a && (r = h.d, ic(r, null), h.c = !0, n.a = !0); + } + function FTe(n, e) { + var t, i, r, c; + for (e.Ug("Semi-Interactive Crossing Minimization Processor", 1), t = !1, r = new C(n.b); r.a < r.c.c.length; ) + i = u(E(r), 30), c = Lk(fT(ut(ut(new Tn(null, new In(i.a, 16)), new E2n()), new C2n()), new M2n()), new T2n()), t = t | c.a != null; + t && U(n, (W(), ifn), (_n(), !0)), e.Vg(); + } + function BTe(n, e) { + var t, i, r, c, s, f; + for (n.b = new Z(), n.d = u(v(e, (W(), S3)), 234), n.e = ype(n.d), c = new Ct(), r = If(A(T(NZn, 1), IXn, 36, 0, [e])), s = 0; s < r.c.length; ) + i = (Ln(s, r.c.length), u(r.c[s], 36)), i.p = s++, t = new EGn(i, n.a, n.b), li(r, t.b), nn(n.b, t), t.s && (f = ge(c, 0), _7(f, t)); + return n.c = new ei(), c; + } + function RTe(n, e) { + var t, i, r, c, s, f; + for (s = u(u(ot(n.r, e), 21), 87).Kc(); s.Ob(); ) + c = u(s.Pb(), 117), t = c.c ? eW(c.c) : 0, t > 0 ? c.a ? (f = c.b.Mf().a, t > f && (r = (t - f) / 2, c.d.b = r, c.d.c = r)) : c.d.c = n.s + t : K6(n.u) && (i = tnn(c.b), i.c < 0 && (c.d.b = -i.c), i.c + i.b > c.b.Mf().a && (c.d.c = i.c + i.b - c.b.Mf().a)); + } + function KTe(n, e) { + var t, i, r, c, s; + s = new Z(), t = e; + do + c = u(ee(n.b, t), 131), c.B = t.c, c.D = t.d, Kn(s.c, c), t = u(ee(n.k, t), 18); + while (t); + return i = (Ln(0, s.c.length), u(s.c[0], 131)), i.j = !0, i.A = u(i.d.a.ec().Kc().Pb(), 18).c.i, r = u(sn(s, s.c.length - 1), 131), r.q = !0, r.C = u(r.d.a.ec().Kc().Pb(), 18).d.i, s; + } + function _Te(n) { + var e, t; + if (e = u(n.a, 17).a, t = u(n.b, 17).a, e >= 0) { + if (e == t) + return new wi(Y(-e - 1), Y(-e - 1)); + if (e == -t) + return new wi(Y(-e), Y(t + 1)); + } + return y.Math.abs(e) > y.Math.abs(t) ? e < 0 ? new wi(Y(-e), Y(t)) : new wi(Y(-e), Y(t + 1)) : new wi(Y(e + 1), Y(t)); + } + function HTe(n) { + var e, t; + t = u(v(n, (cn(), ou)), 171), e = u(v(n, (W(), Dd)), 311), t == (Yo(), ya) ? (U(n, ou, Ej), U(n, Dd, (vl(), k2))) : t == Fw ? (U(n, ou, Ej), U(n, Dd, (vl(), E3))) : e == (vl(), k2) ? (U(n, ou, ya), U(n, Dd, vj)) : e == E3 && (U(n, ou, Fw), U(n, Dd, vj)); + } + function OA() { + OA = F, Dj = new A3n(), Jie = Ke(new ri(), (Vi(), Dc), (er(), SP)), Zie = Su(Ke(new ri(), Dc, xP), zr, $P), nre = lh(lh(h6(Su(Ke(new ri(), Vs, KP), zr, RP), _c), BP), _P), Qie = Su(Ke(Ke(Ke(new ri(), Wh, IP), _c, DP), _c, fv), zr, OP), Yie = Su(Ke(Ke(new ri(), _c, fv), _c, AP), zr, TP); + } + function B5() { + B5 = F, ire = Ke(Su(new ri(), (Vi(), zr), (er(), nsn)), Dc, SP), ore = lh(lh(h6(Su(Ke(new ri(), Vs, KP), zr, RP), _c), BP), _P), rre = Su(Ke(Ke(Ke(new ri(), Wh, IP), _c, DP), _c, fv), zr, OP), ure = Ke(Ke(new ri(), Dc, xP), zr, $P), cre = Su(Ke(Ke(new ri(), _c, fv), _c, AP), zr, TP); + } + function qTe(n, e, t, i, r) { + var c, s; + (!sr(e) && e.c.i.c == e.d.i.c || !fxn(cc(A(T(Ci, 1), J, 8, 0, [r.i.n, r.n, r.a])), t)) && !sr(e) && (e.c == r ? w4(e.a, 0, new ir(t)) : Fe(e.a, new ir(t)), i && !sf(n.a, t) && (s = u(v(e, (cn(), xr)), 75), s || (s = new Cu(), U(e, xr, s)), c = new ir(t), xt(s, c, s.c.b, s.c), hi(n.a, c))); + } + function fqn(n, e) { + var t, i, r, c; + for (c = Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15))), t = c & n.b.length - 1, r = null, i = n.b[t]; i; r = i, i = i.a) + if (i.d == c && oh(i.i, e)) + return r ? r.a = i.a : n.b[t] = i.a, Kjn(u(as(i.c), 604), u(as(i.f), 604)), V9(u(as(i.b), 227), u(as(i.e), 227)), --n.f, ++n.e, !0; + return !1; + } + function UTe(n) { + var e, t; + for (t = new ie(ce(Ei(n).a.Kc(), new En())); pe(t); ) + if (e = u(fe(t), 18), e.c.i.k != (Vn(), Sc)) + throw M(new Hl(oR + qk(n) + "' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen.")); + } + function GTe(n, e, t) { + var i, r, c, s, f, h, l; + if (r = dBn(n.Db & 254), r == 0) + n.Eb = t; + else { + if (r == 1) + f = K(yi, Bn, 1, 2, 5, 1), c = Rx(n, e), c == 0 ? (f[0] = t, f[1] = n.Eb) : (f[0] = n.Eb, f[1] = t); + else + for (f = K(yi, Bn, 1, r + 1, 5, 1), s = ud(n.Eb), i = 2, h = 0, l = 0; i <= 128; i <<= 1) + i == e ? f[l++] = t : n.Db & i && (f[l++] = s[h++]); + n.Eb = f; + } + n.Db |= e; + } + function hqn(n, e, t) { + var i, r, c, s; + for (this.b = new Z(), r = 0, i = 0, s = new C(n); s.a < s.c.c.length; ) + c = u(E(s), 176), t && YPe(c), nn(this.b, c), r += c.o, i += c.p; + this.b.c.length > 0 && (c = u(sn(this.b, 0), 176), r += c.o, i += c.p), r *= 2, i *= 2, e > 1 ? r = gi(y.Math.ceil(r * e)) : i = gi(y.Math.ceil(i / e)), this.a = new VY(r, i); + } + function lqn(n, e, t, i, r, c) { + var s, f, h, l, a, d, g, p, m, k, j, S; + for (a = i, e.j && e.o ? (p = u(ee(n.f, e.A), 60), k = p.d.c + p.d.b, --a) : k = e.a.c + e.a.b, d = r, t.q && t.o ? (p = u(ee(n.f, t.C), 60), l = p.d.c, ++d) : l = t.a.c, j = l - k, h = y.Math.max(2, d - a), f = j / h, m = k + f, g = a; g < d; ++g) + s = u(c.Xb(g), 131), S = s.a.b, s.a.c = m - S / 2, m += f; + } + function aqn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g; + r = e ? new Bpn() : new Rpn(), c = !1; + do + for (c = !1, l = e ? Qo(n.b) : n.b, h = l.Kc(); h.Ob(); ) + for (f = u(h.Pb(), 30), g = A0(f.a), e || Qo(g), d = new C(g); d.a < d.c.c.length; ) + a = u(E(d), 10), r.Mb(a) && (i = a, t = u(v(a, (W(), sb)), 313), s = e ? t.b : t.k, c = Bqn(i, s, e, !1)); + while (c); + } + function hen(n, e, t, i, r, c) { + var s, f, h, l, a, d; + for (l = t.c.length, c && (n.c = K(ye, _e, 28, e.length, 15, 1)), s = r ? 0 : e.length - 1; r ? s < e.length : s >= 0; s += r ? 1 : -1) { + for (f = e[s], h = i == (en(), Zn) ? r ? uc(f, i) : Qo(uc(f, i)) : r ? Qo(uc(f, i)) : uc(f, i), c && (n.c[f.p] = h.gc()), d = h.Kc(); d.Ob(); ) + a = u(d.Pb(), 12), n.d[a.p] = l++; + li(t, h); + } + } + function dqn(n, e, t) { + var i, r, c, s, f, h, l, a; + for (c = $(R(n.b.Kc().Pb())), l = $(R(Hve(e.b))), i = rh(Ki(n.a), l - t), r = rh(Ki(e.a), t - c), a = tt(i, r), rh(a, 1 / (l - c)), this.a = a, this.b = new Z(), f = !0, s = n.b.Kc(), s.Pb(); s.Ob(); ) + h = $(R(s.Pb())), f && h - t > _R && (this.b.Fc(t), f = !1), this.b.Fc(h); + f && this.b.Fc(t); + } + function zTe(n) { + var e, t, i, r; + if (hSe(n, n.n), n.d.c.length > 0) { + for (e6(n.c); Gnn(n, u(E(new C(n.e.a)), 125)) < n.e.a.c.length; ) { + for (e = L7e(n), r = e.e.e - e.d.e - e.a, e.e.j && (r = -r), i = new C(n.e.a); i.a < i.c.c.length; ) + t = u(E(i), 125), t.j && (t.e += r); + e6(n.c); + } + e6(n.c), Onn(n, u(E(new C(n.e.a)), 125)), pGn(n); + } + } + function XTe(n, e) { + qp(); + var t, i; + if (t = WN(G4(), e.Pg()), t) { + if (i = t.j, D(n, 207)) + return k2e(u(n, 27)) ? Tu(i, (pf(), mi)) || Tu(i, xn) : Tu(i, (pf(), mi)); + if (D(n, 326)) + return Tu(i, (pf(), Sh)); + if (D(n, 193)) + return Tu(i, (pf(), _d)); + if (D(n, 366)) + return Tu(i, (pf(), C1)); + } + return !0; + } + function VTe(n, e, t) { + var i, r, c, s, f, h; + if (r = t, c = r.Lk(), Sl(n.e, c)) { + if (c.Si()) { + for (i = u(n.g, 124), s = 0; s < n.i; ++s) + if (f = i[s], rt(f, r) && s != e) + throw M(new Gn(Vy)); + } + } else + for (h = ru(n.e.Dh(), c), i = u(n.g, 124), s = 0; s < n.i; ++s) + if (f = i[s], h.am(f.Lk()) && s != e) + throw M(new Gn(Zy)); + return u(Rg(n, e, t), 76); + } + function bqn(n, e) { + if (e instanceof Object) + try { + if (e.__java$exception = n, navigator.userAgent.toLowerCase().indexOf("msie") != -1 && $doc.documentMode < 9) + return; + var t = n; + Object.defineProperties(e, { cause: { get: function() { + var i = t.he(); + return i && i.fe(); + } }, suppressed: { get: function() { + return t.ge(); + } } }); + } catch { + } + } + function wqn(n, e) { + var t, i, r, c, s; + if (i = e >> 5, e &= 31, i >= n.d) + return n.e < 0 ? (ah(), vQn) : (ah(), S8); + if (c = n.d - i, r = K(ye, _e, 28, c + 1, 15, 1), Fje(r, c, n.a, i, e), n.e < 0) { + for (t = 0; t < i && n.a[t] == 0; t++) + ; + if (t < i || e > 0 && n.a[t] << 32 - e) { + for (t = 0; t < c && r[t] == -1; t++) + r[t] = 0; + t == c && ++c, ++r[t]; + } + } + return s = new Za(n.e, c, r), J6(s), s; + } + function gqn(n) { + var e, t, i, r; + return r = Af(n), t = new $9n(r), i = new x9n(r), e = new Z(), li(e, (!n.d && (n.d = new Nn(Wt, n, 8, 5)), n.d)), li(e, (!n.e && (n.e = new Nn(Wt, n, 7, 4)), n.e)), u(Wr(_r(ut(new Tn(null, new In(e, 16)), t), i), Jb(new Y2(), new Z2(), new np(), new ep(), A(T($r, 1), G, 108, 0, [(qu(), Sw), Yr]))), 21); + } + function WTe(n, e) { + var t; + switch (t = u(v(n, (cn(), bI)), 283), e.Ug("Label side selection (" + t + ")", 1), t.g) { + case 0: + AHn(n, (To(), Zh)); + break; + case 1: + AHn(n, (To(), Aa)); + break; + case 2: + zUn(n, (To(), Zh)); + break; + case 3: + zUn(n, (To(), Aa)); + break; + case 4: + Mqn(n, (To(), Zh)); + break; + case 5: + Mqn(n, (To(), Aa)); + } + e.Vg(); + } + function Sl(n, e) { + dr(); + var t, i, r; + return e.Jk() ? !0 : e.Ik() == -2 ? e == (n3(), _3) || e == K3 || e == SU || e == PU ? !0 : (r = n.Dh(), Ot(r, e) >= 0 ? !1 : (t = Qg((Ou(), zi), r, e), t ? (i = t.Ik(), (i > 1 || i == -1) && j0(Dr(zi, t)) != 3) : !0)) : !1; + } + function JTe(n, e, t, i) { + var r, c, s, f, h; + return f = Gr(u(L((!e.b && (e.b = new Nn(he, e, 4, 7)), e.b), 0), 84)), h = Gr(u(L((!e.c && (e.c = new Nn(he, e, 5, 8)), e.c), 0), 84)), At(f) == At(h) || Zb(h, f) ? null : (s = V7(e), s == t ? i : (c = u(ee(n.a, s), 10), c && (r = c.e, r) ? r : null)); + } + function QTe(n, e, t) { + var i, r, c, s, f; + for (t.Ug("Longest path to source layering", 1), n.a = e, f = n.a.a, n.b = K(ye, _e, 28, f.c.length, 15, 1), i = 0, s = new C(f); s.a < s.c.c.length; ) + r = u(E(s), 10), r.p = i, n.b[i] = -1, ++i; + for (c = new C(f); c.a < c.c.c.length; ) + r = u(E(c), 10), _Hn(n, r); + f.c.length = 0, n.a = null, n.b = null, t.Vg(); + } + function len(n, e, t) { + var i, r, c, s, f, h; + if (i = Phe(t, n.length), s = n[i], c = Xjn(t, s.length), s[c].k == (Vn(), ni)) + for (h = e.j, r = 0; r < h.c.length; r++) + f = (Ln(r, h.c.length), u(h.c[r], 12)), (t ? f.j == (en(), Zn) : f.j == (en(), Wn)) && on(un(v(f, (W(), yj)))) && (Go(h, r, u(v(s[c], (W(), st)), 12)), c += t ? 1 : -1); + } + function YTe(n, e) { + var t, i, r, c, s, f, h, l; + e.Ug("Greedy Width Approximator", 1), t = $(R(z(n, (Bf(), zI)))), h = u(z(n, h9), 107), c = u(z(n, C1n), 394), s = on(un(z(n, E1n))), f = $(R(z(n, l9))), l = (!n.a && (n.a = new q(Ye, n, 10, 11)), n.a), NQ(l), r = new vSn(t, c, s), i = sSe(r, l, f, h), ht(n, (Kh(), Vw), i.c), e.Vg(); + } + function pqn(n) { + if (n.g == null) + switch (n.p) { + case 0: + n.g = y2e(n) ? (_n(), uv) : (_n(), ga); + break; + case 1: + n.g = ak(b3e(n)); + break; + case 2: + n.g = vk(ape(n)); + break; + case 3: + n.g = Xwe(n); + break; + case 4: + n.g = new z9(zwe(n)); + break; + case 6: + n.g = Ml(Jwe(n)); + break; + case 5: + n.g = Y(c2e(n)); + break; + case 7: + n.g = om(p3e(n)); + } + return n.g; + } + function aen(n) { + if (n.n == null) + switch (n.p) { + case 0: + n.n = j2e(n) ? (_n(), uv) : (_n(), ga); + break; + case 1: + n.n = ak(w3e(n)); + break; + case 2: + n.n = vk(dpe(n)); + break; + case 3: + n.n = Vwe(n); + break; + case 4: + n.n = new z9(Wwe(n)); + break; + case 6: + n.n = Ml(Qwe(n)); + break; + case 5: + n.n = Y(u2e(n)); + break; + case 7: + n.n = om(g3e(n)); + } + return n.n; + } + function mqn(n, e, t, i) { + var r, c, s, f, h; + if (f = (dr(), u(e, 69).xk()), Sl(n.e, e)) { + if (e.Si() && RA(n, e, i, D(e, 102) && (u(e, 19).Bb & fr) != 0)) + throw M(new Gn(Vy)); + } else + for (h = ru(n.e.Dh(), e), r = u(n.g, 124), s = 0; s < n.i; ++s) + if (c = r[s], h.am(c.Lk())) + throw M(new Gn(Zy)); + v5(n, pnn(n, e, t), f ? u(i, 76) : xh(e, i)); + } + function vqn(n) { + var e, t, i, r, c, s, f; + for (c = new C(n.a.a); c.a < c.c.c.length; ) + i = u(E(c), 316), i.g = 0, i.i = 0, i.e.a.$b(); + for (r = new C(n.a.a); r.a < r.c.c.length; ) + for (i = u(E(r), 316), t = i.a.a.ec().Kc(); t.Ob(); ) + for (e = u(t.Pb(), 60), f = e.c.Kc(); f.Ob(); ) + s = u(f.Pb(), 60), s.a != i && (hi(i.e, s), ++s.a.g, ++s.a.i); + } + function ZTe(n) { + var e, t, i, r, c; + r = u(v(n, (cn(), Fd)), 21), c = u(v(n, kI), 21), t = new V(n.f.a + n.d.b + n.d.c, n.f.b + n.d.d + n.d.a), e = new ir(t), r.Hc((go(), Yw)) && (i = u(v(n, jv), 8), c.Hc((to(), Kv)) && (i.a <= 0 && (i.a = 20), i.b <= 0 && (i.b = 20)), e.a = y.Math.max(t.a, i.a), e.b = y.Math.max(t.b, i.b)), eIe(n, t, e); + } + function nAe(n, e) { + var t, i, r; + e.a ? (R7(n.b, e.b), n.a[e.b.i] = u(ID(n.b, e.b), 86), t = u(PD(n.b, e.b), 86), t && (n.a[t.i] = e.b)) : (i = u(ID(n.b, e.b), 86), i && i == n.a[e.b.i] && i.d && i.d != e.b.d && i.f.Fc(e.b), r = u(PD(n.b, e.b), 86), r && n.a[r.i] == e.b && r.d && r.d != e.b.d && e.b.f.Fc(r), EL(n.b, e.b)); + } + function kqn(n, e) { + var t, i, r, c, s, f; + return c = n.d, f = $(R(v(n, (cn(), v1)))), f < 0 && (f = 0, U(n, v1, f)), e.o.b = f, s = y.Math.floor(f / 2), i = new Ic(), pi(i, (en(), Wn)), ic(i, e), i.n.b = s, r = new Ic(), pi(r, Zn), ic(r, e), r.n.b = s, Di(n, i), t = new C0(), Ur(t, n), U(t, xr, null), Yi(t, r), Di(t, c), bPe(e, n, t), sEe(n, t), t; + } + function eAe(n) { + var e, t; + return t = u(v(n, (W(), qc)), 21), e = new ri(), t.Hc((mr(), F8)) && (Mo(e, zie), Mo(e, iln)), (t.Hc(kv) || on(un(v(n, (cn(), TH))))) && (Mo(e, iln), t.Hc(v2) && Mo(e, Vie)), t.Hc(cs) && Mo(e, Gie), t.Hc(B8) && Mo(e, Wie), t.Hc(nI) && Mo(e, Xie), t.Hc(mv) && Mo(e, qie), t.Hc(vv) && Mo(e, Uie), e; + } + function tAe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g; + return i = n.d, c = e.d, f = i + c, h = n.e != e.e ? -1 : 1, f == 2 ? (a = nr(ki(n.a[0], vr), ki(e.a[0], vr)), g = Ae(a), d = Ae(U1(a, 32)), d == 0 ? new gl(h, g) : new Za(h, 2, A(T(ye, 1), _e, 28, 15, [g, d]))) : (t = n.a, r = e.a, s = K(ye, _e, 28, f, 15, 1), e5e(t, i, r, c, s), l = new Za(h, f, s), J6(l), l); + } + function yqn(n, e, t, i) { + var r, c; + if (e) { + if (r = n.a.Ne(t.d, e.d), r == 0) + return i.d = wV(e, t.e), i.b = !0, e; + c = r < 0 ? 0 : 1, e.a[c] = yqn(n, e.a[c], t, i), Ob(e.a[c]) && (Ob(e.a[1 - c]) ? (e.b = !0, e.a[0].b = !1, e.a[1].b = !1) : Ob(e.a[c].a[c]) ? e = jT(e, 1 - c) : Ob(e.a[c].a[1 - c]) && (e = fDn(e, 1 - c))); + } else + return t; + return e; + } + function jqn(n, e, t) { + var i, r, c, s; + r = n.i, i = n.n, xJ(n, (wf(), bc), r.c + i.b, t), xJ(n, wc, r.c + r.b - i.c - t[2], t), s = r.b - i.b - i.c, t[0] > 0 && (t[0] += n.d, s -= t[0]), t[2] > 0 && (t[2] += n.d, s -= t[2]), c = y.Math.max(0, s), t[1] = y.Math.max(t[1], s), xJ(n, Jc, r.c + i.b + t[0] - (t[1] - s) / 2, t), e == Jc && (n.c.b = c, n.c.c = r.c + i.b + (c - s) / 2); + } + function Eqn() { + this.c = K(Oi, Ar, 28, (en(), A(T(hr, 1), Tc, 64, 0, [sc, Xn, Zn, ae, Wn])).length, 15, 1), this.b = K(Oi, Ar, 28, A(T(hr, 1), Tc, 64, 0, [sc, Xn, Zn, ae, Wn]).length, 15, 1), this.a = K(Oi, Ar, 28, A(T(hr, 1), Tc, 64, 0, [sc, Xn, Zn, ae, Wn]).length, 15, 1), Rz(this.c, St), Rz(this.b, ai), Rz(this.a, ai); + } + function Fc(n, e, t) { + var i, r, c, s; + if (e <= t ? (r = e, c = t) : (r = t, c = e), i = 0, n.b == null) + n.b = K(ye, _e, 28, 2, 15, 1), n.b[0] = r, n.b[1] = c, n.c = !0; + else { + if (i = n.b.length, n.b[i - 1] + 1 == r) { + n.b[i - 1] = c; + return; + } + s = K(ye, _e, 28, i + 2, 15, 1), Oc(n.b, 0, s, 0, i), n.b = s, n.b[i - 1] >= r && (n.c = !1, n.a = !1), n.b[i++] = r, n.b[i] = c, n.c || Gg(n); + } + } + function iAe(n, e, t) { + var i, r, c, s, f, h, l; + for (l = e.d, n.a = new zc(l.c.length), n.c = new de(), f = new C(l); f.a < f.c.c.length; ) + s = u(E(f), 105), c = new yk(null), nn(n.a, c), Xe(n.c, s, c); + for (n.b = new de(), hEe(n, e), i = 0; i < l.c.length - 1; i++) + for (h = u(sn(e.d, i), 105), r = i + 1; r < l.c.length; r++) + XMe(n, h, u(sn(e.d, r), 105), t); + } + function dw(n) { + var e, t, i, r, c; + for (r = new Z(), e = new F6((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)), i = new ie(ce(Al(n).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 74), D(L((!t.b && (t.b = new Nn(he, t, 4, 7)), t.b), 0), 193) || (c = Gr(u(L((!t.c && (t.c = new Nn(he, t, 5, 8)), t.c), 0), 84)), e.a._b(c) || Kn(r.c, c)); + return r; + } + function rAe(n, e, t) { + var i, r, c; + if (n.e = t, n.d = 0, n.b = 0, n.f = 1, n.i = e, (n.e & 16) == 16 && (n.i = bSe(n.i)), n.j = n.i.length, Ze(n), c = R0(n), n.d != n.j) + throw M(new Le($e((Ie(), AWn)))); + if (n.g) { + for (i = 0; i < n.g.a.c.length; i++) + if (r = u(y0(n.g, i), 592), n.f <= r.a) + throw M(new Le($e((Ie(), SWn)))); + n.g.a.c.length = 0; + } + return c; + } + function cAe(n, e) { + var t, i, r, c, s, f, h; + for (t = ai, f = (Vn(), Xt), r = new C(e.a); r.a < r.c.c.length; ) + i = u(E(r), 10), c = i.k, c != Xt && (s = R(v(i, (W(), cfn))), s == null ? (t = y.Math.max(t, 0), i.n.b = t + WX(n.a, c, f)) : i.n.b = (Jn(s), s)), h = WX(n.a, c, f), i.n.b < t + h + i.d.d && (i.n.b = t + h + i.d.d), t = i.n.b + i.o.b + i.d.a, f = c; + } + function Cqn(n, e, t, i, r) { + var c, s, f, h, l, a; + if (n.d && n.d.Gg(r), c = u(r.Xb(0), 27), TRn(n, t, c, !1) || (s = u(r.Xb(r.gc() - 1), 27), TRn(n, i, s, !0)) || snn(n, r)) + return !0; + for (a = r.Kc(); a.Ob(); ) + for (l = u(a.Pb(), 27), h = e.Kc(); h.Ob(); ) + if (f = u(h.Pb(), 27), LA(n, l, f)) + return !0; + return !1; + } + function uAe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + g = e.c.length, d = (l = n.Ih(t), u(l >= 0 ? n.Lh(l, !1, !0) : q0(n, t, !1), 61)); + n: + for (c = d.Kc(); c.Ob(); ) { + for (r = u(c.Pb(), 58), a = 0; a < g; ++a) + if (s = (Ln(a, e.c.length), u(e.c[a], 76)), h = s.md(), f = s.Lk(), i = r.Nh(f, !1), h == null ? i != null : !rt(h, i)) + continue n; + return r; + } + return null; + } + function oAe(n, e) { + var t, i, r, c, s, f, h; + for (e.Ug("Comment post-processing", 1), c = new C(n.b); c.a < c.c.c.length; ) { + for (r = u(E(c), 30), i = new Z(), f = new C(r.a); f.a < f.c.c.length; ) + s = u(E(f), 10), h = u(v(s, (W(), P3)), 15), t = u(v(s, C3), 15), (h || t) && (CDe(s, h, t), h && li(i, h), t && li(i, t)); + li(r.a, i); + } + e.Vg(); + } + function sAe(n, e, t, i) { + var r, c, s, f; + for (r = u(l1(e, (en(), Wn)).Kc().Pb(), 12), c = u(l1(e, Zn).Kc().Pb(), 12), f = new C(n.j); f.a < f.c.c.length; ) { + for (s = u(E(f), 12); s.e.c.length != 0; ) + Di(u(sn(s.e, 0), 18), r); + for (; s.g.c.length != 0; ) + Yi(u(sn(s.g, 0), 18), c); + } + t || U(e, (W(), yf), null), i || U(e, (W(), Es), null); + } + function Xg(n, e, t) { + var i, r; + if ((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a).i == 0) + return XQ(n); + if (i = u(L((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a), 0), 166), e && (me((!i.a && (i.a = new ii(xo, i, 5)), i.a)), _4(i, 0), q4(i, 0), K4(i, 0), H4(i, 0)), t) + for (r = (!n.a && (n.a = new q(Mt, n, 6, 6)), n.a); r.i > 1; ) + bw(r, r.i - 1); + return i; + } + function Mqn(n, e) { + var t, i, r, c, s, f, h; + for (t = new Cg(), c = new C(n.b); c.a < c.c.c.length; ) { + for (r = u(E(c), 30), h = !0, i = 0, f = new C(r.a); f.a < f.c.c.length; ) + switch (s = u(E(f), 10), s.k.g) { + case 4: + ++i; + case 1: + kJ(t, s); + break; + case 0: + oEe(s, e); + default: + t.b == t.c || wUn(t, i, h, !1, e), h = !1, i = 0; + } + t.b == t.c || wUn(t, i, h, !0, e); + } + } + function den(n, e) { + var t, i, r, c, s, f; + for (t = 0, f = new C(e); f.a < f.c.c.length; ) { + for (s = u(E(f), 12), lY(n.b, n.d[s.p]), r = new Of(s.b); tc(r.a) || tc(r.b); ) + i = u(tc(r.a) ? E(r.a) : E(r.b), 18), c = Sz(n, s == i.c ? i.d : i.c), c > n.d[s.p] && (t += SJ(n.b, c), W1(n.a, Y(c))); + for (; !t6(n.a); ) + oQ(n.b, u(Sp(n.a), 17).a); + } + return t; + } + function fAe(n) { + var e, t, i, r, c, s, f, h, l; + for (n.a = new kV(), l = 0, r = 0, i = new C(n.i.b); i.a < i.c.c.length; ) { + for (e = u(E(i), 30), e.p = r, h = new C(e.a); h.a < h.c.c.length; ) + f = u(E(h), 10), f.p = l, ++l; + ++r; + } + for (c = n.r == (ps(), mb), s = c ? XZn : zZn, t = new C(n.i.b); t.a < t.c.c.length; ) + e = u(E(t), 30), Zt(e.a, s), sme(n.a, Y(e.p), e.a); + } + function Tqn(n, e, t) { + var i, r, c, s; + for (c = (!e.a && (e.a = new q(Ye, e, 10, 11)), e.a).i, r = new ne((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a)); r.e != r.i.gc(); ) + i = u(ue(r), 27), (!i.a && (i.a = new q(Ye, i, 10, 11)), i.a).i == 0 || (c += Tqn(n, i, !1)); + if (t) + for (s = At(e); s; ) + c += (!s.a && (s.a = new q(Ye, s, 10, 11)), s.a).i, s = At(s); + return c; + } + function bw(n, e) { + var t, i, r, c; + return n.Pj() ? (i = null, r = n.Qj(), n.Tj() && (i = n.Vj(n.$i(e), null)), t = n.Ij(4, c = Jp(n, e), null, e, r), n.Mj() && c != null && (i = n.Oj(c, i)), i ? (i.nj(t), i.oj()) : n.Jj(t), c) : (c = Jp(n, e), n.Mj() && c != null && (i = n.Oj(c, null), i && i.oj()), c); + } + function hAe(n) { + var e, t, i, r, c, s, f, h, l, a; + for (l = n.a, e = new ei(), h = 0, i = new C(n.d); i.a < i.c.c.length; ) { + for (t = u(E(i), 226), a = 0, od(t.b, new mbn()), s = ge(t.b, 0); s.b != s.d.c; ) + c = u(be(s), 226), e.a._b(c) && (r = t.c, f = c.c, a < f.d + f.a + l && a + r.a + l > f.d && (a = f.d + f.a + l)); + t.c.d = a, e.a.zc(t, e), h = y.Math.max(h, t.c.d + t.c.a); + } + return h; + } + function mr() { + mr = F, ZP = new Lb("COMMENTS", 0), cs = new Lb("EXTERNAL_PORTS", 1), F8 = new Lb("HYPEREDGES", 2), nI = new Lb("HYPERNODES", 3), kv = new Lb("NON_FREE_PORTS", 4), v2 = new Lb("NORTH_SOUTH_PORTS", 5), B8 = new Lb(JXn, 6), mv = new Lb("CENTER_LABELS", 7), vv = new Lb("END_LABELS", 8), eI = new Lb("PARTITIONS", 9); + } + function lAe(n, e, t, i, r) { + return i < 0 ? (i = Ug(n, r, A(T(fn, 1), J, 2, 6, [sB, fB, hB, lB, c3, aB, dB, bB, wB, gB, pB, mB]), e), i < 0 && (i = Ug(n, r, A(T(fn, 1), J, 2, 6, ["Jan", "Feb", "Mar", "Apr", c3, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]), e)), i < 0 ? !1 : (t.k = i, !0)) : i > 0 ? (t.k = i - 1, !0) : !1; + } + function aAe(n, e, t, i, r) { + return i < 0 ? (i = Ug(n, r, A(T(fn, 1), J, 2, 6, [sB, fB, hB, lB, c3, aB, dB, bB, wB, gB, pB, mB]), e), i < 0 && (i = Ug(n, r, A(T(fn, 1), J, 2, 6, ["Jan", "Feb", "Mar", "Apr", c3, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]), e)), i < 0 ? !1 : (t.k = i, !0)) : i > 0 ? (t.k = i - 1, !0) : !1; + } + function dAe(n, e, t, i, r, c) { + var s, f, h, l; + if (f = 32, i < 0) { + if (e[0] >= n.length || (f = Xi(n, e[0]), f != 43 && f != 45) || (++e[0], i = yA(n, e), i < 0)) + return !1; + f == 45 && (i = -i); + } + return f == 32 && e[0] - t == 2 && r.b == 2 && (h = new JE(), l = h.q.getFullYear() - ha + ha - 80, s = l % 100, c.a = i == s, i += (l / 100 | 0) * 100 + (i < s ? 100 : 0)), c.p = i, !0; + } + function Aqn(n, e) { + var t, i, r, c, s; + At(n) && (s = u(v(e, (cn(), Fd)), 181), x(z(n, Ht)) === x((Li(), Pa)) && ht(n, Ht, Jf), i = (u0(), new Yd(At(n))), c = new ML(At(n) ? new Yd(At(n)) : null, n), r = HGn(i, c, !1, !0), _s(s, (go(), Yw)), t = u(v(e, jv), 8), t.a = y.Math.max(r.a, t.a), t.b = y.Math.max(r.b, t.b)); + } + function bAe(n, e, t) { + var i, r, c, s, f, h; + for (s = u(v(n, (W(), lH)), 15).Kc(); s.Ob(); ) { + switch (c = u(s.Pb(), 10), u(v(c, (cn(), ou)), 171).g) { + case 2: + xi(c, e); + break; + case 4: + xi(c, t); + } + for (r = new ie(ce(Cl(c).a.Kc(), new En())); pe(r); ) + i = u(fe(r), 18), !(i.c && i.d) && (f = !i.d, h = u(v(i, ofn), 12), f ? Di(i, h) : Yi(i, h)); + } + } + function DA() { + DA = F, __ = new Op(eS, 0, (en(), Xn), Xn), U_ = new Op(qB, 1, ae, ae), K_ = new Op(HB, 2, Zn, Zn), X_ = new Op(UB, 3, Wn, Wn), q_ = new Op("NORTH_WEST_CORNER", 4, Wn, Xn), H_ = new Op("NORTH_EAST_CORNER", 5, Xn, Zn), z_ = new Op("SOUTH_WEST_CORNER", 6, ae, Wn), G_ = new Op("SOUTH_EAST_CORNER", 7, Zn, ae); + } + function wAe(n) { + var e, t, i, r, c, s; + for (c = new ei(), e = new F6((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)), r = new ie(ce(Al(n).a.Kc(), new En())); pe(r); ) + i = u(fe(r), 74), D(L((!i.b && (i.b = new Nn(he, i, 4, 7)), i.b), 0), 193) || (s = Gr(u(L((!i.c && (i.c = new Nn(he, i, 5, 8)), i.c), 0), 84)), e.a._b(s) || (t = c.a.zc(s, c), t == null)); + return c; + } + function Vg() { + Vg = F, oan = A(T(Fa, 1), SB, 28, 14, [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368e3, { l: 3506176, m: 794077, h: 1 }, { l: 884736, m: 916411, h: 20 }, { l: 3342336, m: 3912489, h: 363 }, { l: 589824, m: 3034138, h: 6914 }, { l: 3407872, m: 1962506, h: 138294 }]), y.Math.pow(2, -65); + } + function Tm() { + Tm = F; + var n, e; + for (m3 = K(l2, J, 92, 32, 0, 1), P8 = K(l2, J, 92, 32, 0, 1), n = 1, e = 0; e <= 18; e++) + m3[e] = (ah(), Cc(n, 0) >= 0 ? ia(n) : U6(ia(e1(n)))), P8[e] = AC(Bs(n, e), 0) ? ia(Bs(n, e)) : U6(ia(e1(Bs(n, e)))), n = nr(n, 5); + for (; e < P8.length; e++) + m3[e] = Ig(m3[e - 1], m3[1]), P8[e] = Ig(P8[e - 1], (ah(), YK)); + } + function Sqn(n, e) { + var t, i, r, c, s; + if (n.c.length == 0) + return new wi(Y(0), Y(0)); + for (t = (Ln(0, n.c.length), u(n.c[0], 12)).j, s = 0, c = e.g, i = e.g + 1; s < n.c.length - 1 && t.g < c; ) + ++s, t = (Ln(s, n.c.length), u(n.c[s], 12)).j; + for (r = s; r < n.c.length - 1 && t.g < i; ) + ++r, t = (Ln(s, n.c.length), u(n.c[s], 12)).j; + return new wi(Y(s), Y(r)); + } + function gAe(n, e, t, i) { + var r, c, s, f, h, l, a; + h = uc(e, t), (t == (en(), ae) || t == Wn) && (h = Qo(h)), s = !1; + do + for (r = !1, c = 0; c < h.gc() - 1; c++) + l = u(h.Xb(c), 12), f = u(h.Xb(c + 1), 12), nje(n, l, f, i) && (s = !0, KN(n.a, u(h.Xb(c), 12), u(h.Xb(c + 1), 12)), a = u(h.Xb(c + 1), 12), h.hd(c + 1, u(h.Xb(c), 12)), h.hd(c, a), r = !0); + while (r); + return s; + } + function pAe(n, e, t) { + var i, r, c, s; + for (t.Ug(aVn, 1), r = u(Wr(ut(new Tn(null, new In(e.b, 16)), new l4n()), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), eHn(n, r, 0), s = ge(e.b, 0); s.b != s.d.c; ) + c = u(be(s), 40), i = ee(n.a, Y(c.g)) != null ? u(ee(n.a, Y(c.g)), 17).a : 0, U(c, (lc(), Ah), Y(i)); + t.Vg(); + } + function LA(n, e, t) { + var i, r, c, s, f, h, l, a; + return f = e.i - n.g / 2, h = t.i - n.g / 2, l = e.j - n.g / 2, a = t.j - n.g / 2, c = e.g + n.g, s = t.g + n.g, i = e.f + n.g, r = t.f + n.g, f < h + s && h < f && l < a + r && a < l || h < f + c && f < h && a < l + i && l < a || f < h + s && h < f && l < a && a < l + i ? !0 : h < f + c && f < h && l < a + r && a < l; + } + function mAe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + for (c = e.c.length, s = (Ln(t, e.c.length), u(e.c[t], 293)), f = s.a.o.a, d = s.c, g = 0, l = s.c; l <= s.f; l++) { + if (f <= n.a[l]) + return l; + for (a = n.a[l], h = null, r = t + 1; r < c; r++) + i = (Ln(r, e.c.length), u(e.c[r], 293)), i.c <= l && i.f >= l && (h = i); + h && (a = y.Math.max(a, h.a.o.a)), a > g && (d = l, g = a); + } + return d; + } + function vAe(n) { + var e, t, i, r, c, s, f; + for (c = new Gl(u(Se(new kbn()), 50)), f = ai, t = new C(n.d); t.a < t.c.c.length; ) { + for (e = u(E(t), 226), f = e.c.c; c.a.gc() != 0 && (s = u(c.a.Tc(), 226), s.c.c + s.c.b < f); ) + c.a.Bc(s) != null; + for (r = c.a.ec().Kc(); r.Ob(); ) + i = u(r.Pb(), 226), Fe(i.b, e), Fe(e.b, i); + c.a.zc(e, (_n(), ga)) == null; + } + } + function Pqn(n, e, t) { + var i, r, c, s, f; + if (!L4(e)) { + for (f = t.eh((D(e, 16) ? u(e, 16).gc() : wl(e.Kc())) / n.a | 0), f.Ug(dVn, 1), s = new d4n(), c = null, r = e.Kc(); r.Ob(); ) + i = u(r.Pb(), 40), s = Eo(A(T(Oo, 1), Bn, 20, 0, [s, new sl(i)])), c && (U(c, (pt(), dre), i), U(i, uq, c), n$(i) == n$(c) && (U(c, oq, i), U(i, $I, c))), c = i; + f.Vg(), Pqn(n, s, t); + } + } + function kAe(n, e) { + var t, i, r; + if (e == null) { + for (i = (!n.a && (n.a = new q(Bl, n, 9, 5)), new ne(n.a)); i.e != i.i.gc(); ) + if (t = u(ue(i), 694), r = t.c, (r ?? t.zb) == null) + return t; + } else + for (i = (!n.a && (n.a = new q(Bl, n, 9, 5)), new ne(n.a)); i.e != i.i.gc(); ) + if (t = u(ue(i), 694), An(e, (r = t.c, r ?? t.zb))) + return t; + return null; + } + function kF(n, e) { + var t; + switch (t = null, e.g) { + case 1: + n.e.pf((He(), rU)) && (t = u(n.e.of(rU), 256)); + break; + case 3: + n.e.pf((He(), cU)) && (t = u(n.e.of(cU), 256)); + break; + case 2: + n.e.pf((He(), iU)) && (t = u(n.e.of(iU), 256)); + break; + case 4: + n.e.pf((He(), uU)) && (t = u(n.e.of(uU), 256)); + } + return !t && (t = u(n.e.of((He(), xan)), 256)), t; + } + function Iqn(n, e, t) { + var i, r, c, s, f, h; + for (r = t, c = 0, f = new C(e); f.a < f.c.c.length; ) + s = u(E(f), 27), ht(s, (oa(), _I), Y(r++)), h = dw(s), i = y.Math.atan2(s.j + s.f / 2, s.i + s.g / 2), i += i < 0 ? Md : 0, i < 0.7853981633974483 || i > jVn ? Zt(h, n.b) : i <= jVn && i > EVn ? Zt(h, n.d) : i <= EVn && i > CVn ? Zt(h, n.c) : i <= CVn && Zt(h, n.a), c = Iqn(n, h, c); + return r; + } + function Oqn(n, e, t, i) { + var r, c, s, f, h, l; + for (r = (i.c + i.a) / 2, vo(e.j), Fe(e.j, r), vo(t.e), Fe(t.e, r), l = new Zjn(), f = new C(n.f); f.a < f.c.c.length; ) + c = u(E(f), 132), h = c.a, Xx(l, e, h), Xx(l, t, h); + for (s = new C(n.k); s.a < s.c.c.length; ) + c = u(E(s), 132), h = c.b, Xx(l, e, h), Xx(l, t, h); + return l.b += 2, l.a += RIn(e, n.q), l.a += RIn(n.q, t), l; + } + function yAe(n, e, t) { + var i; + t.Ug("Processor arrange node", 1), on(un(v(e, (lc(), Tln)))), i = u(ho(tm(ut(new Tn(null, new In(e.b, 16)), new D4n()))), 40), n.a = u(v(e, $ln), 353), n.a == (b5(), lq) || n.a == BI ? qGn(n, new Bu(A(T(NI, 1), OS, 40, 0, [i])), t.eh(1)) : n.a == hq && pzn(n, new Bu(A(T(NI, 1), OS, 40, 0, [i])), t.eh(1)), t.Vg(); + } + function Bf() { + Bf = F, zI = new $i((He(), x2), 1.3), $ce = new $i(Ww, (_n(), !1)), k1n = new h0(15), h9 = new $i(M1, k1n), l9 = new $i(Ud, 15), Oce = Gj, Nce = qd, xce = _2, Fce = Ta, Lce = K2, Dq = Wj, Bce = Jw, C1n = (Ten(), Sce), E1n = Ace, Nq = Ice, M1n = Pce, v1n = Cce, Lq = Ece, m1n = jce, j1n = Tce, p1n = Vj, Dce = tU, Rj = kce, g1n = vce, Kj = yce, y1n = Mce; + } + function Dqn(n) { + var e, t, i, r, c, s, f; + for (t = n.i, e = n.n, f = t.d, n.f == (du(), ma) ? f += (t.a - n.e.b) / 2 : n.f == Xs && (f += t.a - n.e.b), r = new C(n.d); r.a < r.c.c.length; ) { + switch (i = u(E(r), 187), s = i.Mf(), c = new Ni(), c.b = f, f += s.b + n.a, n.b.g) { + case 0: + c.a = t.c + e.b; + break; + case 1: + c.a = t.c + e.b + (t.b - s.a) / 2; + break; + case 2: + c.a = t.c + t.b - e.c - s.a; + } + i.Of(c); + } + } + function Lqn(n) { + var e, t, i, r, c, s, f; + for (t = n.i, e = n.n, f = t.c, n.b == (Hu(), pa) ? f += (t.b - n.e.a) / 2 : n.b == zs && (f += t.b - n.e.a), r = new C(n.d); r.a < r.c.c.length; ) { + switch (i = u(E(r), 187), s = i.Mf(), c = new Ni(), c.a = f, f += s.a + n.a, n.f.g) { + case 0: + c.b = t.d + e.d; + break; + case 1: + c.b = t.d + e.d + (t.a - s.b) / 2; + break; + case 2: + c.b = t.d + t.a - e.a - s.b; + } + i.Of(c); + } + } + function jAe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m; + a = t.a.c, s = t.a.c + t.a.b, c = u(ee(t.c, e), 468), p = c.f, m = c.a, h = new V(a, p), d = new V(s, m), r = a, t.p || (r += n.c), r += t.F + t.v * n.b, l = new V(r, p), g = new V(r, m), r5(e.a, A(T(Ci, 1), J, 8, 0, [h, l])), f = t.d.a.gc() > 1, f && (i = new V(r, t.b), Fe(e.a, i)), r5(e.a, A(T(Ci, 1), J, 8, 0, [g, d])); + } + function ben(n, e, t) { + var i, r; + for (e < n.d.b.c.length ? (n.b = u(sn(n.d.b, e), 30), n.a = u(sn(n.d.b, e - 1), 30), n.c = e) : (n.a = new Nc(n.d), n.a.p = e - 1, nn(n.d.b, n.a), n.b = new Nc(n.d), n.b.p = e, nn(n.d.b, n.b), n.c = e), xi(t, n.b), r = new ie(ce(Ei(t).a.Kc(), new En())); pe(r); ) + i = u(fe(r), 18), !i.c.i.c && i.c.i.k == (Vn(), Sc) && xi(i.c.i, n.a); + } + function Nqn(n) { + c0(n, new pd(t0(Zd(e0(n0(new _a(), BS), "ELK Randomizer"), 'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'), new Vmn()))), Q(n, BS, J0, wdn), Q(n, BS, jw, 15), Q(n, BS, uS, Y(0)), Q(n, BS, l3, Um); + } + function wen() { + wen = F; + var n, e, t, i, r, c; + for (B9 = K(xu, s2, 28, 255, 15, 1), SO = K(fs, wh, 28, 16, 15, 1), e = 0; e < 255; e++) + B9[e] = -1; + for (t = 57; t >= 48; t--) + B9[t] = t - 48 << 24 >> 24; + for (i = 70; i >= 65; i--) + B9[i] = i - 65 + 10 << 24 >> 24; + for (r = 102; r >= 97; r--) + B9[r] = r - 97 + 10 << 24 >> 24; + for (c = 0; c < 10; c++) + SO[c] = 48 + c & oi; + for (n = 10; n <= 15; n++) + SO[n] = 65 + n - 10 & oi; + } + function EAe(n, e) { + e.Ug("Process graph bounds", 1), U(n, (pt(), rq), a7(O$(Gb(new Tn(null, new In(n.b, 16)), new r4n())))), U(n, cq, a7(O$(Gb(new Tn(null, new In(n.b, 16)), new c4n())))), U(n, vln, a7(I$(Gb(new Tn(null, new In(n.b, 16)), new u4n())))), U(n, kln, a7(I$(Gb(new Tn(null, new In(n.b, 16)), new o4n())))), e.Vg(); + } + function CAe(n) { + var e, t, i, r, c; + r = u(v(n, (cn(), Fd)), 21), c = u(v(n, kI), 21), t = new V(n.f.a + n.d.b + n.d.c, n.f.b + n.d.d + n.d.a), e = new ir(t), r.Hc((go(), Yw)) && (i = u(v(n, jv), 8), c.Hc((to(), Kv)) && (i.a <= 0 && (i.a = 20), i.b <= 0 && (i.b = 20)), e.a = y.Math.max(t.a, i.a), e.b = y.Math.max(t.b, i.b)), on(un(v(n, SH))) || nIe(n, t, e); + } + function MAe(n, e) { + var t, i, r, c; + for (c = uc(e, (en(), ae)).Kc(); c.Ob(); ) + i = u(c.Pb(), 12), t = u(v(i, (W(), Gu)), 10), t && qs(Ls(Ds(Ns(Os(new hs(), 0), 0.1), n.i[e.p].d), n.i[t.p].a)); + for (r = uc(e, Xn).Kc(); r.Ob(); ) + i = u(r.Pb(), 12), t = u(v(i, (W(), Gu)), 10), t && qs(Ls(Ds(Ns(Os(new hs(), 0), 0.1), n.i[t.p].d), n.i[e.p].a)); + } + function yF(n) { + var e, t, i, r, c, s; + if (!n.c) { + if (s = new kvn(), e = N9, c = e.a.zc(n, e), c == null) { + for (i = new ne(Pc(n)); i.e != i.i.gc(); ) + t = u(ue(i), 89), r = BA(t), D(r, 90) && Kt(s, yF(u(r, 29))), ve(s, t); + e.a.Bc(n) != null, e.a.gc() == 0; + } + k8e(s), tw(s), n.c = new pg((u(L(H((G1(), Hn).o), 15), 19), s.i), s.g), Yu(n).b &= -33; + } + return n.c; + } + function gen(n) { + var e; + if (n.c != 10) + throw M(new Le($e((Ie(), qS)))); + switch (e = n.a, e) { + case 110: + e = 10; + break; + case 114: + e = 13; + break; + case 116: + e = 9; + break; + case 92: + case 124: + case 46: + case 94: + case 45: + case 63: + case 42: + case 43: + case 123: + case 125: + case 40: + case 41: + case 91: + case 93: + break; + default: + throw M(new Le($e((Ie(), is)))); + } + return e; + } + function $qn(n) { + var e, t, i, r, c; + if (n.l == 0 && n.m == 0 && n.h == 0) + return "0"; + if (n.h == Ty && n.m == 0 && n.l == 0) + return "-9223372036854775808"; + if (n.h >> 19) + return "-" + $qn(em(n)); + for (t = n, i = ""; !(t.l == 0 && t.m == 0 && t.h == 0); ) { + if (r = QN(QA), t = Jen(t, r, !0), e = "" + cEn(wa), !(t.l == 0 && t.m == 0 && t.h == 0)) + for (c = 9 - e.length; c > 0; c--) + e = "0" + e; + i = e + i; + } + return i; + } + function TAe(n) { + var e, t, i, r, c, s, f; + for (e = !1, t = 0, r = new C(n.d.b); r.a < r.c.c.length; ) + for (i = u(E(r), 30), i.p = t++, s = new C(i.a); s.a < s.c.c.length; ) + c = u(E(s), 10), !e && !L4(Cl(c)) && (e = !0); + f = yt((ui(), Wf), A(T(y9, 1), G, 88, 0, [Fr, Xr])), e || (_s(f, us), _s(f, Vf)), n.a = new m$n(f), Ku(n.f), Ku(n.b), Ku(n.e), Ku(n.g); + } + function AAe() { + if (!Object.create || !Object.getOwnPropertyNames) + return !1; + var n = "__proto__", e = /* @__PURE__ */ Object.create(null); + if (e[n] !== void 0) + return !1; + var t = Object.getOwnPropertyNames(e); + return !(t.length != 0 || (e[n] = 42, e[n] !== 42) || Object.getOwnPropertyNames(e).length == 0); + } + function SAe(n, e, t) { + var i, r, c, s, f, h, l, a, d; + for (i = t.c, r = t.d, f = Pf(e.c), h = Pf(e.d), i == e.c ? (f = een(n, f, r), h = HKn(e.d)) : (f = HKn(e.c), h = een(n, h, r)), l = new GE(e.a), xt(l, f, l.a, l.a.a), xt(l, h, l.c.b, l.c), s = e.c == i, d = new _yn(), c = 0; c < l.b - 1; ++c) + a = new wi(u(Zo(l, c), 8), u(Zo(l, c + 1), 8)), s && c == 0 || !s && c == l.b - 2 ? d.b = a : nn(d.a, a); + return d; + } + function PAe(n, e) { + var t, i, r, c; + if (c = n.j.g - e.j.g, c != 0) + return c; + if (t = u(v(n, (cn(), k1)), 17), i = u(v(e, k1), 17), t && i && (r = t.a - i.a, r != 0)) + return r; + switch (n.j.g) { + case 1: + return bt(n.n.a, e.n.a); + case 2: + return bt(n.n.b, e.n.b); + case 3: + return bt(e.n.a, n.n.a); + case 4: + return bt(e.n.b, n.n.b); + default: + throw M(new Ir(iin)); + } + } + function pen(n, e, t, i) { + var r, c, s, f, h; + if (wl((L7(), new ie(ce(Cl(e).a.Kc(), new En())))) >= n.a || !YZ(e, t)) + return -1; + if (L4(u(i.Kb(e), 20))) + return 1; + for (r = 0, s = u(i.Kb(e), 20).Kc(); s.Ob(); ) + if (c = u(s.Pb(), 18), h = c.c.i == e ? c.d.i : c.c.i, f = pen(n, h, t, i), f == -1 || (r = y.Math.max(r, f), r > n.c - 1)) + return -1; + return r + 1; + } + function xqn(n, e) { + var t, i, r, c, s, f; + if (x(e) === x(n)) + return !0; + if (!D(e, 15) || (i = u(e, 15), f = n.gc(), i.gc() != f)) + return !1; + if (s = i.Kc(), n.Yi()) { + for (t = 0; t < f; ++t) + if (r = n.Vi(t), c = s.Pb(), r == null ? c != null : !rt(r, c)) + return !1; + } else + for (t = 0; t < f; ++t) + if (r = n.Vi(t), c = s.Pb(), x(r) !== x(c)) + return !1; + return !0; + } + function Fqn(n, e) { + var t, i, r, c, s, f; + if (n.f > 0) { + if (n._j(), e != null) { + for (c = 0; c < n.d.length; ++c) + if (t = n.d[c], t) { + for (i = u(t.g, 379), f = t.i, s = 0; s < f; ++s) + if (r = i[s], rt(e, r.md())) + return !0; + } + } else + for (c = 0; c < n.d.length; ++c) + if (t = n.d[c], t) { + for (i = u(t.g, 379), f = t.i, s = 0; s < f; ++s) + if (r = i[s], x(e) === x(r.md())) + return !0; + } + } + return !1; + } + function IAe(n, e) { + var t, i, r; + return t = e.qi(n.a), t && (r = Oe(gf((!t.b && (t.b = new lo((On(), lr), pc, t)), t.b), "affiliation")), r != null) ? (i = FC(r, bu(35)), i == -1 ? rx(n, R6(n, jo(e.qk())), r) : i == 0 ? rx(n, null, (zn(1, r.length + 1), r.substr(1))) : rx(n, (Bi(0, i, r.length), r.substr(0, i)), (zn(i + 1, r.length + 1), r.substr(i + 1)))) : null; + } + function OAe(n, e, t) { + var i, r, c, s; + t.Ug("Orthogonally routing hierarchical port edges", 1), n.a = 0, i = TIe(e), OOe(e, i), wOe(n, e, i), ODe(e), r = u(v(e, (cn(), Ht)), 101), c = e.b, RGn((Ln(0, c.c.length), u(c.c[0], 30)), r, e), RGn(u(sn(c, c.c.length - 1), 30), r, e), s = e.b, WUn((Ln(0, s.c.length), u(s.c[0], 30))), WUn(u(sn(s, s.c.length - 1), 30)), t.Vg(); + } + function men(n) { + switch (n) { + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + return n - 48 << 24 >> 24; + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + return n - 97 + 10 << 24 >> 24; + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + return n - 65 + 10 << 24 >> 24; + default: + throw M(new eh("Invalid hexadecimal")); + } + } + function NA() { + NA = F, eon = new ag("SPIRAL", 0), Qun = new ag("LINE_BY_LINE", 1), Yun = new ag("MANHATTAN", 2), Jun = new ag("JITTER", 3), f_ = new ag("QUADRANTS_LINE_BY_LINE", 4), non = new ag("QUADRANTS_MANHATTAN", 5), Zun = new ag("QUADRANTS_JITTER", 6), Wun = new ag("COMBINE_LINE_BY_LINE_MANHATTAN", 7), Vun = new ag("COMBINE_JITTER_MANHATTAN", 8); + } + function Bqn(n, e, t, i) { + var r, c, s, f, h, l; + for (h = zx(n, t), l = zx(e, t), r = !1; h && l && (i || E7e(h, l, t)); ) + s = zx(h, t), f = zx(l, t), fk(e), fk(n), c = h.c, XF(h, !1), XF(l, !1), t ? (ow(e, l.p, c), e.p = l.p, ow(n, h.p + 1, c), n.p = h.p) : (ow(n, h.p, c), n.p = h.p, ow(e, l.p + 1, c), e.p = l.p), xi(h, null), xi(l, null), h = s, l = f, r = !0; + return r; + } + function Rqn(n) { + switch (n.g) { + case 0: + return new Y5n(); + case 1: + return new J5n(); + case 3: + return new dCn(); + case 4: + return new Xpn(); + case 5: + return new _An(); + case 6: + return new Q5n(); + case 2: + return new W5n(); + case 7: + return new q5n(); + case 8: + return new G5n(); + default: + throw M(new Gn("No implementation is available for the layerer " + (n.f != null ? n.f : "" + n.g))); + } + } + function DAe(n, e, t, i) { + var r, c, s, f, h; + for (r = !1, c = !1, f = new C(i.j); f.a < f.c.c.length; ) + s = u(E(f), 12), x(v(s, (W(), st))) === x(t) && (s.g.c.length == 0 ? s.e.c.length == 0 || (r = !0) : c = !0); + return h = 0, r && r ^ c ? h = t.j == (en(), Xn) ? -n.e[i.c.p][i.p] : e - n.e[i.c.p][i.p] : c && r ^ c ? h = n.e[i.c.p][i.p] + 1 : r && c && (h = t.j == (en(), Xn) ? 0 : e / 2), h; + } + function jF(n, e, t, i, r, c, s, f) { + var h, l, a; + for (h = 0, e != null && (h ^= i1(e.toLowerCase())), t != null && (h ^= i1(t)), i != null && (h ^= i1(i)), s != null && (h ^= i1(s)), f != null && (h ^= i1(f)), l = 0, a = c.length; l < a; l++) + h ^= i1(c[l]); + n ? h |= 256 : h &= -257, r ? h |= 16 : h &= -17, this.f = h, this.i = e == null ? null : (Jn(e), e), this.a = t, this.d = i, this.j = c, this.g = s, this.e = f; + } + function ven(n, e, t) { + var i, r; + switch (r = null, e.g) { + case 1: + r = (Iu(), Fon); + break; + case 2: + r = (Iu(), Ron); + } + switch (i = null, t.g) { + case 1: + i = (Iu(), Bon); + break; + case 2: + i = (Iu(), xon); + break; + case 3: + i = (Iu(), Kon); + break; + case 4: + i = (Iu(), _on); + } + return r && i ? Cp(n.j, new A8n(new Bu(A(T(cNe, 1), Bn, 178, 0, [u(Se(r), 178), u(Se(i), 178)])))) : (Dn(), Dn(), or); + } + function LAe(n) { + var e, t, i; + switch (e = u(v(n, (cn(), jv)), 8), U(n, jv, new V(e.b, e.a)), u(v(n, Mh), 255).g) { + case 1: + U(n, Mh, (Bh(), eO)); + break; + case 2: + U(n, Mh, (Bh(), ZI)); + break; + case 3: + U(n, Mh, (Bh(), qj)); + break; + case 4: + U(n, Mh, (Bh(), Uj)); + } + (n.q ? n.q : (Dn(), Dn(), Vh))._b(qw) && (t = u(v(n, qw), 8), i = t.a, t.a = t.b, t.b = i); + } + function Kqn(n, e, t, i, r, c) { + if (this.b = t, this.d = r, n >= e.length) + throw M(new Pr("Greedy SwitchDecider: Free layer not in graph.")); + this.c = e[n], this.e = new D7(i), T$(this.e, this.c, (en(), Wn)), this.i = new D7(i), T$(this.i, this.c, Zn), this.f = new rPn(this.c), this.a = !c && r.i && !r.s && this.c[0].k == (Vn(), ni), this.a && zje(this, n, e.length); + } + function _qn(n, e) { + var t, i, r, c, s, f; + c = !n.B.Hc((to(), cE)), s = n.B.Hc(bU), n.a = new ABn(s, c, n.c), n.n && WW(n.a.n, n.n), mD(n.g, (wf(), Jc), n.a), e || (i = new E5(1, c, n.c), i.n.a = n.k, Pp(n.p, (en(), Xn), i), r = new E5(1, c, n.c), r.n.d = n.k, Pp(n.p, ae, r), f = new E5(0, c, n.c), f.n.c = n.k, Pp(n.p, Wn, f), t = new E5(0, c, n.c), t.n.b = n.k, Pp(n.p, Zn, t)); + } + function NAe(n) { + var e, t, i; + switch (e = u(v(n.d, (cn(), $l)), 223), e.g) { + case 2: + t = jLe(n); + break; + case 3: + t = (i = new Z(), Ut(ut(_r(rc(rc(new Tn(null, new In(n.d.b, 16)), new ipn()), new rpn()), new cpn()), new U2n()), new E7n(i)), i); + break; + default: + throw M(new Ir("Compaction not supported for " + e + " edges.")); + } + UIe(n, t), qi(new Ua(n.g), new y7n(n)); + } + function $Ae(n, e) { + var t, i, r, c, s, f, h; + if (e.Ug("Process directions", 1), t = u(v(n, (lc(), kb)), 88), t != (ui(), Vf)) + for (r = ge(n.b, 0); r.b != r.d.c; ) { + switch (i = u(be(r), 40), f = u(v(i, (pt(), $j)), 17).a, h = u(v(i, xj), 17).a, t.g) { + case 4: + h *= -1; + break; + case 1: + c = f, f = h, h = c; + break; + case 2: + s = f, f = -h, h = s; + } + U(i, $j, Y(f)), U(i, xj, Y(h)); + } + e.Vg(); + } + function xAe(n, e) { + var t; + return t = new xO(), e && Ur(t, u(ee(n.a, oE), 96)), D(e, 422) && Ur(t, u(ee(n.a, sE), 96)), D(e, 366) ? (Ur(t, u(ee(n.a, Sr), 96)), t) : (D(e, 84) && Ur(t, u(ee(n.a, he), 96)), D(e, 207) ? (Ur(t, u(ee(n.a, Ye), 96)), t) : D(e, 193) ? (Ur(t, u(ee(n.a, Wu), 96)), t) : (D(e, 326) && Ur(t, u(ee(n.a, Wt), 96)), t)); + } + function FAe(n) { + var e, t, i, r, c, s, f, h; + for (h = new yLn(), f = new C(n.a); f.a < f.c.c.length; ) + if (s = u(E(f), 10), s.k != (Vn(), ni)) { + for (RCe(h, s, new Ni()), c = new ie(ce(Qt(s).a.Kc(), new En())); pe(c); ) + if (r = u(fe(c), 18), !(r.c.i.k == ni || r.d.i.k == ni)) + for (i = ge(r.a, 0); i.b != i.d.c; ) + t = u(be(i), 8), e = t, I5(h, new a4(e.a, e.b)); + } + return h; + } + function EF() { + EF = F, Q1n = new lt(YR), J1n = (s6(), Hj), W1n = new Mn(eK, J1n), V1n = (Mk(), YI), sue = new Mn(scn, V1n), X1n = (Jk(), _q), oue = new Mn(fcn, X1n), rue = new Mn(ZR, null), z1n = (ik(), JI), uue = new Mn(nK, z1n), G1n = (eC(), Bq), nue = new Mn(hcn, G1n), eue = new Mn(lcn, (_n(), !1)), tue = new Mn(acn, Y(64)), iue = new Mn(dcn, !0), cue = Kq; + } + function Hqn(n, e) { + var t, i, r, c, s, f, h, l, a, d; + for (n.p = 1, r = n.c, d = new ih(), a = B0(n, (pr(), Qc)).Kc(); a.Ob(); ) + for (l = u(a.Pb(), 12), i = new C(l.g); i.a < i.c.c.length; ) + t = u(E(i), 18), h = t.d.i, n != h && (c = h.c, c.p <= r.p && (s = r.p + 1, s == e.b.c.length ? (f = new Nc(e), f.p = s, nn(e.b, f), xi(h, f)) : (f = u(sn(e.b, s), 30), xi(h, f)), d.a.zc(h, d))); + return d; + } + function BAe(n, e) { + var t, i; + if (t = u(v(n, (pt(), eq)), 15), !t || t.gc() < 1) + return null; + if (t.gc() == 1) + return u(t.Xb(0), 40); + switch (i = null, e.g) { + case 2: + i = u(ho(Ap(t.Oc(), new e4n())), 40); + break; + case 1: + i = u(ho(Hb(t.Oc(), new Q3n())), 40); + break; + case 4: + i = u(ho(Ap(t.Oc(), new Y3n())), 40); + break; + case 3: + i = u(ho(Hb(t.Oc(), new Z3n())), 40); + } + return i; + } + function qqn(n) { + var e, t, i, r, c, s; + if (n.a == null) + if (n.a = K(oo, zh, 28, n.c.b.c.length, 16, 1), n.a[0] = !1, kt(n.c, (cn(), NH))) + for (i = u(v(n.c, NH), 15), t = i.Kc(); t.Ob(); ) + e = u(t.Pb(), 17).a, e > 0 && e < n.a.length && (n.a[e] = !1); + else + for (s = new C(n.c.b), s.a < s.c.c.length && E(s), r = 1; s.a < s.c.c.length; ) + c = u(E(s), 30), n.a[r++] = kMe(c); + } + function Kh() { + Kh = F, s9 = new lt("additionalHeight"), Lv = new lt("drawingHeight"), O3 = new lt("drawingWidth"), UI = new lt("minHeight"), f9 = new lt("minWidth"), GI = new lt("rows"), Vw = new lt("targetWidth"), Iq = new Dt("minRowIncrease", 0), pce = new Dt("maxRowIncrease", 0), Pq = new Dt("minRowDecrease", 0), gce = new Dt("maxRowDecrease", 0); + } + function Uqn(n, e) { + var t, i, r, c; + switch (r = n.b, e) { + case 1: { + n.b |= 1, n.b |= 4, n.b |= 8; + break; + } + case 2: { + n.b |= 2, n.b |= 4, n.b |= 8; + break; + } + case 4: { + n.b |= 1, n.b |= 2, n.b |= 4, n.b |= 8; + break; + } + case 3: { + n.b |= 16, n.b |= 8; + break; + } + case 0: { + n.b |= 32, n.b |= 16, n.b |= 8, n.b |= 1, n.b |= 2, n.b |= 4; + break; + } + } + if (n.b != r && n.c) + for (i = new ne(n.c); i.e != i.i.gc(); ) + c = u(ue(i), 482), t = Yu(c), lw(t, e); + } + function Gqn(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m; + for (r = !1, s = e, f = 0, h = s.length; f < h; ++f) + c = s[f], on((_n(), !!c.e)) && !u(sn(n.b, c.e.p), 219).s && (r = r | (l = c.e, a = u(sn(n.b, l.p), 219), d = a.e, g = Xjn(t, d.length), p = d[g][0], p.k == (Vn(), ni) ? d[g] = gTe(c, d[g], t ? (en(), Wn) : (en(), Zn)) : a.c.mg(d, t), m = sy(n, a, t, i), len(a.e, a.o, t), m)); + return r; + } + function zqn(n, e) { + var t, i, r, c, s; + for (c = (!e.a && (e.a = new q(Ye, e, 10, 11)), e.a).i, r = new ne((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a)); r.e != r.i.gc(); ) + i = u(ue(r), 27), x(z(i, (He(), R2))) !== x((jl(), E9)) && (s = u(z(e, q2), 143), t = u(z(i, q2), 143), (s == t || s && IJ(s, t)) && (!i.a && (i.a = new q(Ye, i, 10, 11)), i.a).i != 0 && (c += zqn(n, i))); + return c; + } + function RAe(n) { + var e, t, i, r, c, s, f; + for (i = 0, f = 0, s = new C(n.d); s.a < s.c.c.length; ) + c = u(E(s), 105), r = u(Wr(ut(new Tn(null, new In(c.j, 16)), new zU()), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), t = null, i <= f ? (t = (en(), Xn), i += r.gc()) : f < i && (t = (en(), ae), f += r.gc()), e = t, Ut(_r(r.Oc(), new Cpn()), new T7n(e)); + } + function KAe(n) { + var e, t, i, r, c; + for (c = new zc(n.a.c.length), r = new C(n.a); r.a < r.c.c.length; ) { + switch (i = u(E(r), 10), t = u(v(i, (cn(), ou)), 171), e = null, t.g) { + case 1: + case 2: + e = (ld(), m2); + break; + case 3: + case 4: + e = (ld(), pv); + } + e ? (U(i, (W(), rI), (ld(), m2)), e == pv ? IA(i, t, (pr(), zu)) : e == m2 && IA(i, t, (pr(), Qc))) : Kn(c.c, i); + } + return c; + } + function _Ae(n) { + var e, t, i, r, c, s, f, h; + for (n.b = new rHn(new Bu((en(), A(T(hr, 1), Tc, 64, 0, [sc, Xn, Zn, ae, Wn]))), new Bu((L0(), A(T(R_, 1), G, 372, 0, [ob, va, ub])))), s = A(T(hr, 1), Tc, 64, 0, [sc, Xn, Zn, ae, Wn]), f = 0, h = s.length; f < h; ++f) + for (c = s[f], t = A(T(R_, 1), G, 372, 0, [ob, va, ub]), i = 0, r = t.length; i < r; ++i) + e = t[i], Lke(n.b, c, e, new Z()); + } + function Xqn(n, e) { + var t, i, r, c, s, f, h, l, a, d; + if (s = u(u(ot(n.r, e), 21), 87), f = n.u.Hc((Uu(), Ia)), t = n.u.Hc(A9), i = n.u.Hc(T9), l = n.u.Hc(B3), d = n.B.Hc((to(), lO)), a = !t && !i && (l || s.gc() == 2), RTe(n, e), r = null, h = null, f) { + for (c = s.Kc(), r = u(c.Pb(), 117), h = r; c.Ob(); ) + h = u(c.Pb(), 117); + r.d.b = 0, h.d.c = 0, a && !r.a && (r.d.c = 0); + } + d && (Dye(s), f && (r.d.b = 0, h.d.c = 0)); + } + function Vqn(n, e) { + var t, i, r, c, s, f, h, l, a, d; + if (s = u(u(ot(n.r, e), 21), 87), f = n.u.Hc((Uu(), Ia)), t = n.u.Hc(A9), i = n.u.Hc(T9), h = n.u.Hc(B3), d = n.B.Hc((to(), lO)), l = !t && !i && (h || s.gc() == 2), oPe(n, e), a = null, r = null, f) { + for (c = s.Kc(), a = u(c.Pb(), 117), r = a; c.Ob(); ) + r = u(c.Pb(), 117); + a.d.d = 0, r.d.a = 0, l && !a.a && (a.d.a = 0); + } + d && (Lye(s), f && (a.d.d = 0, r.d.a = 0)); + } + function Wqn(n, e, t) { + var i, r, c, s, f, h, l, a; + if (r = e.k, e.p >= 0) + return !1; + if (e.p = t.b, nn(t.e, e), r == (Vn(), Ti) || r == Hc) { + for (s = new C(e.j); s.a < s.c.c.length; ) + for (c = u(E(s), 12), a = (i = new C(new ip(c).a.g), new NG(i)); tc(a.a); ) + if (l = u(E(a.a), 18).d, f = l.i, h = f.k, e.c != f.c && (h == Ti || h == Hc) && Wqn(n, f, t)) + return !0; + } + return !0; + } + function $A(n) { + var e; + return n.Db & 64 ? Knn(n) : (e = new ls(Knn(n)), e.a += " (changeable: ", Ul(e, (n.Bb & Gs) != 0), e.a += ", volatile: ", Ul(e, (n.Bb & Aw) != 0), e.a += ", transient: ", Ul(e, (n.Bb & kw) != 0), e.a += ", defaultValueLiteral: ", Cr(e, n.j), e.a += ", unsettable: ", Ul(e, (n.Bb & Nu) != 0), e.a += ", derived: ", Ul(e, (n.Bb & bh) != 0), e.a += ")", e.a); + } + function HAe(n, e) { + var t, i, r, c, s; + return r = e.qi(n.a), r && (i = (!r.b && (r.b = new lo((On(), lr), pc, r)), r.b), t = Oe(gf(i, Ji)), t != null && (c = t.lastIndexOf("#"), s = c == -1 ? iV(n, e.jk(), t) : c == 0 ? ok(n, null, (zn(1, t.length + 1), t.substr(1))) : ok(n, (Bi(0, c, t.length), t.substr(0, c)), (zn(c + 1, t.length + 1), t.substr(c + 1))), D(s, 156))) ? u(s, 156) : null; + } + function qAe(n, e) { + var t, i, r, c, s; + return i = e.qi(n.a), i && (t = (!i.b && (i.b = new lo((On(), lr), pc, i)), i.b), c = Oe(gf(t, PK)), c != null && (r = c.lastIndexOf("#"), s = r == -1 ? iV(n, e.jk(), c) : r == 0 ? ok(n, null, (zn(1, c.length + 1), c.substr(1))) : ok(n, (Bi(0, r, c.length), c.substr(0, r)), (zn(r + 1, c.length + 1), c.substr(r + 1))), D(s, 156))) ? u(s, 156) : null; + } + function UAe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g; + for (r = KMe(n.d), s = u(v(n.b, (C5(), lon)), 107), f = s.b + s.c, h = s.d + s.a, a = r.d.a * n.e + f, l = r.b.a * n.f + h, Xse(n.b, new V(a, l)), g = new C(n.g); g.a < g.c.c.length; ) + d = u(E(g), 568), e = d.g - r.a.a, t = d.i - r.c.a, i = tt(iae(new V(e, t), d.a, d.b), rh(L6(Ki(SX(d.e)), d.d * d.a, d.c * d.b), -0.5)), c = PX(d.e), Mhe(d.e, vi(i, c)); + } + function GAe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g; + for (e.Ug("Restoring reversed edges", 1), h = new C(n.b); h.a < h.c.c.length; ) + for (f = u(E(h), 30), a = new C(f.a); a.a < a.c.c.length; ) + for (l = u(E(a), 10), g = new C(l.j); g.a < g.c.c.length; ) + for (d = u(E(g), 12), s = fh(d.g), i = s, r = 0, c = i.length; r < c; ++r) + t = i[r], on(un(v(t, (W(), Gf)))) && G0(t, !1); + e.Vg(); + } + function zAe(n, e, t, i) { + var r, c, s, f, h; + for (h = K(Oi, J, 109, (en(), A(T(hr, 1), Tc, 64, 0, [sc, Xn, Zn, ae, Wn])).length, 0, 2), c = A(T(hr, 1), Tc, 64, 0, [sc, Xn, Zn, ae, Wn]), s = 0, f = c.length; s < f; ++s) + r = c[s], h[r.g] = K(Oi, Ar, 28, n.c[r.g], 15, 1); + return lKn(h, n, Xn), lKn(h, n, ae), Bx(h, n, Xn, e, t, i), Bx(h, n, Zn, e, t, i), Bx(h, n, ae, e, t, i), Bx(h, n, Wn, e, t, i), h; + } + function XAe(n, e, t) { + if (Zc(n.a, e)) { + if (sf(u(ee(n.a, e), 49), t)) + return 1; + } else + Xe(n.a, e, new ei()); + if (Zc(n.a, t)) { + if (sf(u(ee(n.a, t), 49), e)) + return -1; + } else + Xe(n.a, t, new ei()); + if (Zc(n.b, e)) { + if (sf(u(ee(n.b, e), 49), t)) + return -1; + } else + Xe(n.b, e, new ei()); + if (Zc(n.b, t)) { + if (sf(u(ee(n.b, t), 49), e)) + return 1; + } else + Xe(n.b, t, new ei()); + return 0; + } + function VAe(n) { + var e, t, i, r, c, s; + n.q == (Li(), el) || n.q == Uc || (r = n.f.n.d + nM(u(Mr(n.b, (en(), Xn)), 127)) + n.c, e = n.f.n.a + nM(u(Mr(n.b, ae), 127)) + n.c, i = u(Mr(n.b, Zn), 127), s = u(Mr(n.b, Wn), 127), c = y.Math.max(0, i.n.d - r), c = y.Math.max(c, s.n.d - r), t = y.Math.max(0, i.n.a - e), t = y.Math.max(t, s.n.a - e), i.n.d = c, s.n.d = c, i.n.a = t, s.n.a = t); + } + function ken(n, e, t, i) { + var r, c, s, f, h, l; + if (t == null) { + for (r = u(n.g, 124), f = 0; f < n.i; ++f) + if (s = r[f], s.Lk() == e) + return rr(n, s, i); + } + return c = (dr(), u(e, 69).xk() ? u(t, 76) : xh(e, t)), fo(n.e) ? (l = !Fk(n, e), i = Vc(n, c, i), h = e.Jk() ? V1(n, 3, e, null, t, Im(n, e, t, D(e, 102) && (u(e, 19).Bb & fr) != 0), l) : V1(n, 1, e, e.ik(), t, -1, l), i ? i.nj(h) : i = h) : i = Vc(n, c, i), i; + } + function Jqn() { + this.b = new Yl(), this.d = new Yl(), this.e = new Yl(), this.c = new Yl(), this.a = new de(), this.f = new de(), Sg(Ci, new Mmn(), new Amn()), Sg(san, new Bmn(), new Rmn()), Sg(Non, new Kmn(), new _mn()), Sg($on, new Hmn(), new qmn()), Sg(boe, new Umn(), new Gmn()), Sg(uNe, new Smn(), new Pmn()), Sg(fNe, new Imn(), new Omn()), Sg(oNe, new Dmn(), new Lmn()), Sg(sNe, new Nmn(), new $mn()), Sg(aNe, new xmn(), new Fmn()); + } + function R5(n, e) { + var t, i, r, c, s; + for (n = n == null ? wu : (Jn(n), n), r = 0; r < e.length; r++) + e[r] = UMe(e[r]); + for (t = new fg(), s = 0, i = 0; i < e.length && (c = n.indexOf("%s", s), c != -1); ) + t.a += "" + qo(n == null ? wu : (Jn(n), n), s, c), Lc(t, e[i++]), s = c + 2; + if (aDn(t, n, s, n.length), i < e.length) { + for (t.a += " [", Lc(t, e[i++]); i < e.length; ) + t.a += cr, Lc(t, e[i++]); + t.a += "]"; + } + return t.a; + } + function yen(n, e) { + var t, i, r, c, s, f, h; + for (t = 0, h = new C(e); h.a < h.c.c.length; ) { + for (f = u(E(h), 12), lY(n.b, n.d[f.p]), s = 0, r = new Of(f.b); tc(r.a) || tc(r.b); ) + i = u(tc(r.a) ? E(r.a) : E(r.b), 18), fIn(i) ? (c = Sz(n, f == i.c ? i.d : i.c), c > n.d[f.p] && (t += SJ(n.b, c), W1(n.a, Y(c)))) : ++s; + for (t += n.b.d * s; !t6(n.a); ) + oQ(n.b, u(Sp(n.a), 17).a); + } + return t; + } + function Qqn(n) { + var e, t, i, r, c, s; + return c = 0, e = gs(n), e.kk() && (c |= 4), n.Bb & Nu && (c |= 2), D(n, 102) ? (t = u(n, 19), r = br(t), t.Bb & kc && (c |= 32), r && (se(zb(r)), c |= 8, s = r.t, (s > 1 || s == -1) && (c |= 16), r.Bb & kc && (c |= 64)), t.Bb & fr && (c |= Aw), c |= Gs) : D(e, 469) ? c |= 512 : (i = e.kk(), i && i.i & 1 && (c |= 256)), n.Bb & 512 && (c |= 128), c; + } + function WAe(n, e) { + var t; + return n.f == AU ? (t = j0(Dr((Ou(), zi), e)), n.e ? t == 4 && e != (n3(), _3) && e != (n3(), K3) && e != (n3(), SU) && e != (n3(), PU) : t == 2) : n.d && (n.d.Hc(e) || n.d.Hc($p(Dr((Ou(), zi), e))) || n.d.Hc(Qg((Ou(), zi), n.b, e))) ? !0 : n.f && ren((Ou(), n.f), q7(Dr(zi, e))) ? (t = j0(Dr(zi, e)), n.e ? t == 4 : t == 2) : !1; + } + function JAe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p; + for (g = -1, p = 0, l = n, a = 0, d = l.length; a < d; ++a) { + for (h = l[a], c = h, s = 0, f = c.length; s < f; ++s) + for (r = c[s], e = new TDn(g == -1 ? n[0] : n[g], u(v(Hi(r), (cn(), Qh)), 284), rKn(r), on(un(v(Hi(r), vH)))), t = 0; t < r.j.c.length; t++) + for (i = t + 1; i < r.j.c.length; i++) + SPn(e, u(sn(r.j, t), 12), u(sn(r.j, i), 12)) > 0 && ++p; + ++g; + } + return p; + } + function QAe(n, e, t, i) { + var r, c, s, f, h, l, a, d; + return s = u(z(t, (He(), N3)), 8), h = s.a, a = s.b + n, r = y.Math.atan2(a, h), r < 0 && (r += Md), r += e, r > Md && (r -= Md), f = u(z(i, N3), 8), l = f.a, d = f.b + n, c = y.Math.atan2(d, l), c < 0 && (c += Md), c += e, c > Md && (c -= Md), Mf(), Ks(1e-10), y.Math.abs(r - c) <= 1e-10 || r == c || isNaN(r) && isNaN(c) ? 0 : r < c ? -1 : r > c ? 1 : f0(isNaN(r), isNaN(c)); + } + function CF(n) { + var e, t, i, r, c, s, f; + for (f = new de(), i = new C(n.a.b); i.a < i.c.c.length; ) + e = u(E(i), 60), Xe(f, e, new Z()); + for (r = new C(n.a.b); r.a < r.c.c.length; ) + for (e = u(E(r), 60), e.i = ai, s = e.c.Kc(); s.Ob(); ) + c = u(s.Pb(), 60), u(Kr(gr(f.f, c)), 15).Fc(e); + for (t = new C(n.a.b); t.a < t.c.c.length; ) + e = u(E(t), 60), e.c.$b(), e.c = u(Kr(gr(f.f, e)), 15); + vqn(n); + } + function MF(n) { + var e, t, i, r, c, s, f; + for (f = new de(), i = new C(n.a.b); i.a < i.c.c.length; ) + e = u(E(i), 86), Xe(f, e, new Z()); + for (r = new C(n.a.b); r.a < r.c.c.length; ) + for (e = u(E(r), 86), e.o = ai, s = e.f.Kc(); s.Ob(); ) + c = u(s.Pb(), 86), u(Kr(gr(f.f, c)), 15).Fc(e); + for (t = new C(n.a.b); t.a < t.c.c.length; ) + e = u(E(t), 86), e.f.$b(), e.f = u(Kr(gr(f.f, e)), 15); + uqn(n); + } + function YAe(n, e, t, i) { + var r, c; + for (tke(n, e, t, i), Vse(e, n.j - e.j + t), Wse(e, n.k - e.k + i), c = new C(e.f); c.a < c.c.c.length; ) + switch (r = u(E(c), 334), r.a.g) { + case 0: + nm(n, e.g + r.b.a, 0, e.g + r.c.a, e.i - 1); + break; + case 1: + nm(n, e.g + e.o, e.i + r.b.a, n.o - 1, e.i + r.c.a); + break; + case 2: + nm(n, e.g + r.b.a, e.i + e.p, e.g + r.c.a, n.p - 1); + break; + default: + nm(n, 0, e.i + r.b.a, e.g - 1, e.i + r.c.a); + } + } + function ZAe(n, e) { + var t, i, r, c, s, f, h, l; + for (c = new Z(), e.b.c.length = 0, t = u(Wr(fJ(new Tn(null, new In(new Ua(n.a.b), 1))), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), r = t.Kc(); r.Ob(); ) + if (i = u(r.Pb(), 17), s = yJ(n.a, i), s.b != 0) + for (f = new Nc(e), Kn(c.c, f), f.p = i.a, l = ge(s, 0); l.b != l.d.c; ) + h = u(be(l), 10), xi(h, f); + li(e.b, c); + } + function xA(n, e, t, i, r) { + var c, s, f; + try { + if (e >= n.o) + throw M(new YG()); + f = e >> 5, s = e & 31, c = Bs(1, Ae(Bs(s, 1))), r ? n.n[t][f] = lf(n.n[t][f], c) : n.n[t][f] = ki(n.n[t][f], WV(c)), c = Bs(c, 1), i ? n.n[t][f] = lf(n.n[t][f], c) : n.n[t][f] = ki(n.n[t][f], WV(c)); + } catch (h) { + throw h = It(h), D(h, 333) ? M(new Pr(GB + n.o + "*" + n.p + zB + e + cr + t + XB)) : M(h); + } + } + function nSe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g; + for (g = new Gl(new z7n(n)), f = A(T(Jh, 1), w1, 10, 0, [e, t]), h = 0, l = f.length; h < l; ++h) + for (s = f[h], d = g5(s, i).Kc(); d.Ob(); ) + for (a = u(d.Pb(), 12), c = new Of(a.b); tc(c.a) || tc(c.b); ) + r = u(tc(c.a) ? E(c.a) : E(c.b), 18), sr(r) || (g.a.zc(a, (_n(), ga)) == null, fIn(r) && R7(g, a == r.c ? r.d : r.c)); + return Se(g), new Ru(g); + } + function jen(n, e, t, i) { + var r, c, s; + e && (c = $(R(v(e, (pt(), E1)))) + i, s = t + $(R(v(e, xI))) / 2, U(e, $j, Y(Ae(vc(y.Math.round(c))))), U(e, xj, Y(Ae(vc(y.Math.round(s))))), e.d.b == 0 || jen(n, u(NC((r = ge(new sl(e).a.d, 0), new sg(r))), 40), t + $(R(v(e, xI))) + n.b, i + $(R(v(e, Dv)))), v(e, oq) != null && jen(n, u(v(e, oq), 40), t, i)); + } + function eSe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g; + for (h = Hi(e.a), r = $(R(v(h, (cn(), Rd)))) * 2, a = $(R(v(h, A2))), l = y.Math.max(r, a), c = K(Oi, Ar, 28, e.f - e.c + 1, 15, 1), i = -l, t = 0, f = e.b.Kc(); f.Ob(); ) + s = u(f.Pb(), 10), i += n.a[s.c.p] + l, c[t++] = i; + for (i += n.a[e.a.c.p] + l, c[t++] = i, g = new C(e.e); g.a < g.c.c.length; ) + d = u(E(g), 10), i += n.a[d.c.p] + l, c[t++] = i; + return c; + } + function tSe(n, e) { + var t, i, r, c; + if (c = u(z(n, (He(), H2)), 64).g - u(z(e, H2), 64).g, c != 0) + return c; + if (t = u(z(n, oU), 17), i = u(z(e, oU), 17), t && i && (r = t.a - i.a, r != 0)) + return r; + switch (u(z(n, H2), 64).g) { + case 1: + return bt(n.i, e.i); + case 2: + return bt(n.j, e.j); + case 3: + return bt(e.i, n.i); + case 4: + return bt(e.j, n.j); + default: + throw M(new Ir(iin)); + } + } + function Een(n) { + var e, t, i; + return n.Db & 64 ? iF(n) : (e = new mo(Ccn), t = n.k, t ? Re(Re((e.a += ' "', e), t), '"') : (!n.n && (n.n = new q(Sr, n, 1, 7)), n.n.i > 0 && (i = (!n.n && (n.n = new q(Sr, n, 1, 7)), u(L(n.n, 0), 135)).a, !i || Re(Re((e.a += ' "', e), i), '"'))), Re(i0(Re(i0(Re(i0(Re(i0((e.a += " (", e), n.i), ","), n.j), " | "), n.g), ","), n.f), ")"), e.a); + } + function Yqn(n) { + var e, t, i; + return n.Db & 64 ? iF(n) : (e = new mo(Mcn), t = n.k, t ? Re(Re((e.a += ' "', e), t), '"') : (!n.n && (n.n = new q(Sr, n, 1, 7)), n.n.i > 0 && (i = (!n.n && (n.n = new q(Sr, n, 1, 7)), u(L(n.n, 0), 135)).a, !i || Re(Re((e.a += ' "', e), i), '"'))), Re(i0(Re(i0(Re(i0(Re(i0((e.a += " (", e), n.i), ","), n.j), " | "), n.g), ","), n.f), ")"), e.a); + } + function iSe(n, e) { + var t, i, r, c, s; + for (e == (a5(), XH) && Yk(u(ot(n.a, (sw(), gj)), 15)), r = u(ot(n.a, (sw(), gj)), 15).Kc(); r.Ob(); ) + switch (i = u(r.Pb(), 105), t = u(sn(i.j, 0), 113).d.j, c = new Ru(i.j), Zt(c, new apn()), e.g) { + case 2: + Qx(n, c, t, (L0(), va), 1); + break; + case 1: + case 0: + s = qMe(c), Qx(n, new Ql(c, 0, s), t, (L0(), va), 0), Qx(n, new Ql(c, s, c.c.length), t, va, 1); + } + } + function TF(n, e) { + var t, i, r, c, s, f, h; + if (e == null || e.length == 0) + return null; + if (r = u($c(n.a, e), 143), !r) { + for (i = (f = new ol(n.b).a.vc().Kc(), new Pb(f)); i.a.Ob(); ) + if (t = (c = u(i.a.Pb(), 44), u(c.md(), 143)), s = t.c, h = e.length, An(s.substr(s.length - h, h), e) && (e.length == s.length || Xi(s, s.length - e.length - 1) == 46)) { + if (r) + return null; + r = t; + } + r && Or(n.a, e, r); + } + return r; + } + function rSe(n, e) { + var t, i, r, c; + return t = new Tbn(), i = u(Wr(_r(new Tn(null, new In(n.f, 16)), t), Jb(new Y2(), new Z2(), new np(), new ep(), A(T($r, 1), G, 108, 0, [(qu(), Sw), Yr]))), 21), r = i.gc(), i = u(Wr(_r(new Tn(null, new In(e.f, 16)), t), Jb(new Y2(), new Z2(), new np(), new ep(), A(T($r, 1), G, 108, 0, [Sw, Yr]))), 21), c = i.gc(), r < c ? -1 : r == c ? 0 : 1; + } + function Zqn(n) { + var e, t, i; + kt(n, (cn(), db)) && (i = u(v(n, db), 21), !i.dc() && (t = (e = u(of(jr), 9), new _o(e, u(xs(e, e.length), 9), 0)), i.Hc((aw(), Lo)) ? _s(t, Lo) : _s(t, Zs), i.Hc(Cs) || _s(t, Cs), i.Hc(Qs) ? _s(t, nf) : i.Hc(xl) ? _s(t, nl) : i.Hc(Ys) && _s(t, Ms), i.Hc(nf) ? _s(t, Qs) : i.Hc(nl) ? _s(t, xl) : i.Hc(Ms) && _s(t, Ys), U(n, db, t))); + } + function cSe(n) { + var e, t, i, r, c, s, f; + for (r = u(v(n, (W(), fb)), 10), i = n.j, t = (Ln(0, i.c.length), u(i.c[0], 12)), s = new C(r.j); s.a < s.c.c.length; ) + if (c = u(E(s), 12), x(c) === x(v(t, st))) { + c.j == (en(), Xn) && n.p > r.p ? (pi(c, ae), c.d && (f = c.o.b, e = c.a.b, c.a.b = f - e)) : c.j == ae && r.p > n.p && (pi(c, Xn), c.d && (f = c.o.b, e = c.a.b, c.a.b = -(f - e))); + break; + } + return r; + } + function fy(n, e, t, i, r) { + var c, s, f, h, l, a, d; + if (!(D(e, 207) || D(e, 366) || D(e, 193))) + throw M(new Gn("Method only works for ElkNode-, ElkLabel and ElkPort-objects.")); + return s = n.a / 2, h = e.i + i - s, a = e.j + r - s, l = h + e.g + n.a, d = a + e.f + n.a, c = new Cu(), Fe(c, new V(h, a)), Fe(c, new V(h, d)), Fe(c, new V(l, d)), Fe(c, new V(l, a)), f = new bF(c), Ur(f, e), t && Xe(n.b, e, f), f; + } + function Am(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + for (c = new V(e, t), a = new C(n.a); a.a < a.c.c.length; ) + for (l = u(E(a), 10), tt(l.n, c), g = new C(l.j); g.a < g.c.c.length; ) + for (d = u(E(g), 12), r = new C(d.g); r.a < r.c.c.length; ) + for (i = u(E(r), 18), ew(i.a, c), s = u(v(i, (cn(), xr)), 75), s && ew(s, c), h = new C(i.b); h.a < h.c.c.length; ) + f = u(E(h), 72), tt(f.n, c); + } + function uSe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + for (c = new V(e, t), a = new C(n.a); a.a < a.c.c.length; ) + for (l = u(E(a), 10), tt(l.n, c), g = new C(l.j); g.a < g.c.c.length; ) + for (d = u(E(g), 12), r = new C(d.g); r.a < r.c.c.length; ) + for (i = u(E(r), 18), ew(i.a, c), s = u(v(i, (cn(), xr)), 75), s && ew(s, c), h = new C(i.b); h.a < h.c.c.length; ) + f = u(E(h), 72), tt(f.n, c); + } + function nUn(n) { + if ((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b).i == 0) + throw M(new hp("Edges must have a source.")); + if ((!n.c && (n.c = new Nn(he, n, 5, 8)), n.c).i == 0) + throw M(new hp("Edges must have a target.")); + if (!n.b && (n.b = new Nn(he, n, 4, 7)), !(n.b.i <= 1 && (!n.c && (n.c = new Nn(he, n, 5, 8)), n.c.i <= 1))) + throw M(new hp("Hyperedges are not supported.")); + } + function Cen(n, e) { + var t, i, r, c, s, f, h, l, a, d; + for (d = 0, c = new Cg(), W1(c, e); c.b != c.c; ) + for (h = u(Sp(c), 219), l = 0, a = u(v(e.j, (cn(), Qh)), 284), s = $(R(v(e.j, hI))), f = $(R(v(e.j, Kfn))), a != (hh(), y1) && (l += s * fMe(h.e, a), l += f * JAe(h.e)), d += VRn(h.d, h.e) + l, r = new C(h.b); r.a < r.c.c.length; ) + i = u(E(r), 36), t = u(sn(n.b, i.p), 219), t.s || (d += kA(n, t)); + return d; + } + function ah() { + ah = F; + var n; + for (sP = new gl(1, 1), YK = new gl(1, 10), S8 = new gl(0, 0), vQn = new gl(-1, 1), kQn = A(T(l2, 1), J, 92, 0, [S8, sP, new gl(1, 2), new gl(1, 3), new gl(1, 4), new gl(1, 5), new gl(1, 6), new gl(1, 7), new gl(1, 8), new gl(1, 9), YK]), fP = K(l2, J, 92, 32, 0, 1), n = 0; n < fP.length; n++) + fP[n] = AC(Bs(1, n), 0) ? ia(Bs(1, n)) : U6(ia(e1(Bs(1, n)))); + } + function eUn(n, e, t, i, r, c, s) { + if (n.c = i.Lf().a, n.d = i.Lf().b, r && (n.c += r.Lf().a, n.d += r.Lf().b), n.b = e.Mf().a, n.a = e.Mf().b, !r) + t ? n.c -= s + e.Mf().a : n.c += i.Mf().a + s; + else + switch (r.ag().g) { + case 0: + case 2: + n.c += r.Mf().a + s + c.a + s; + break; + case 4: + n.c -= s + c.a + s + e.Mf().a; + break; + case 1: + n.c += r.Mf().a + s, n.d -= s + c.b + s + e.Mf().b; + break; + case 3: + n.c += r.Mf().a + s, n.d += r.Mf().b + s + c.b + s; + } + } + function tUn(n, e) { + var t, i; + for (this.b = new Z(), this.e = new Z(), this.a = n, this.d = e, E9e(this), P8e(this), this.b.dc() ? this.c = n.c.p : this.c = u(this.b.Xb(0), 10).c.p, this.e.c.length == 0 ? this.f = n.c.p : this.f = u(sn(this.e, this.e.c.length - 1), 10).c.p, i = u(v(n, (W(), K8)), 15).Kc(); i.Ob(); ) + if (t = u(i.Pb(), 72), kt(t, (cn(), dI))) { + this.d = u(v(t, dI), 232); + break; + } + } + function Sm(n, e, t) { + var i, r, c, s, f, h, l, a; + for (i = u(ee(n.a, e), 49), c = u(ee(n.a, t), 49), r = u(ee(n.e, e), 49), s = u(ee(n.e, t), 49), i.a.zc(t, i), s.a.zc(e, s), a = c.a.ec().Kc(); a.Ob(); ) + l = u(a.Pb(), 10), i.a.zc(l, i), hi(u(ee(n.e, l), 49), e), Ri(u(ee(n.e, l), 49), r); + for (h = r.a.ec().Kc(); h.Ob(); ) + f = u(h.Pb(), 10), s.a.zc(f, s), hi(u(ee(n.a, f), 49), t), Ri(u(ee(n.a, f), 49), c); + } + function hy(n, e, t) { + var i, r, c, s, f, h, l, a; + for (i = u(ee(n.a, e), 49), c = u(ee(n.a, t), 49), r = u(ee(n.b, e), 49), s = u(ee(n.b, t), 49), i.a.zc(t, i), s.a.zc(e, s), a = c.a.ec().Kc(); a.Ob(); ) + l = u(a.Pb(), 10), i.a.zc(l, i), hi(u(ee(n.b, l), 49), e), Ri(u(ee(n.b, l), 49), r); + for (h = r.a.ec().Kc(); h.Ob(); ) + f = u(h.Pb(), 10), s.a.zc(f, s), hi(u(ee(n.a, f), 49), t), Ri(u(ee(n.a, f), 49), c); + } + function ns(n, e, t) { + var i, r, c, s, f, h, l, a; + for (i = u(ee(n.a, e), 49), c = u(ee(n.a, t), 49), r = u(ee(n.d, e), 49), s = u(ee(n.d, t), 49), i.a.zc(t, i), s.a.zc(e, s), a = c.a.ec().Kc(); a.Ob(); ) + l = u(a.Pb(), 12), i.a.zc(l, i), hi(u(ee(n.d, l), 49), e), Ri(u(ee(n.d, l), 49), r); + for (h = r.a.ec().Kc(); h.Ob(); ) + f = u(h.Pb(), 12), s.a.zc(f, s), hi(u(ee(n.a, f), 49), t), Ri(u(ee(n.a, f), 49), c); + } + function oSe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m; + if (c = t, t < i) + for (g = (p = new yk(n.p), m = new yk(n.p), Ri(p.e, n.e), p.q = n.q, p.r = m, mM(p), Ri(m.j, n.j), m.r = p, mM(m), new wi(p, m)), d = u(g.a, 118), a = u(g.b, 118), r = (Ln(c, e.c.length), u(e.c[c], 339)), s = Oqn(n, d, a, r), l = t + 1; l <= i; l++) + f = (Ln(l, e.c.length), u(e.c[l], 339)), h = Oqn(n, d, a, f), j9e(f, h, r, s) && (r = f, s = h, c = l); + return c; + } + function sSe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m; + for (s = u(L(e, 0), 27), eu(s, 0), tu(s, 0), g = new Z(), Kn(g.c, s), f = s, c = new iW(n.a, s.g, s.f, (x5(), _j)), p = 1; p < e.i; p++) + m = u(L(e, p), 27), h = FF(n, N2, m, f, c, g, t), l = FF(n, D3, m, f, c, g, t), a = FF(n, d9, m, f, c, g, t), d = FF(n, a9, m, f, c, g, t), r = FIe(n, h, l, a, d, m, f, i), eu(m, r.d), tu(m, r.e), lfe(r, _j), c = r, f = m, Kn(g.c, m); + return c; + } + function fSe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + if (a = null, g = e, d = GDn(n, $Dn(t), g), z4(d, bl(g, jh)), s = S0(g, Acn), i = new pMn(n, d), DEe(i.a, i.b, s), f = S0(g, pK), r = new mMn(n, d), LEe(r.a, r.b, f), (!d.b && (d.b = new Nn(he, d, 4, 7)), d.b).i == 0 || (!d.c && (d.c = new Nn(he, d, 5, 8)), d.c).i == 0) + throw c = bl(g, jh), h = vWn + c, l = h + tv, M(new nh(l)); + return gA(g, d), dLe(n, g, d), a = _$(n, g, d), a; + } + function hSe(n, e) { + var t, i, r, c, s, f, h; + for (r = K(ye, _e, 28, n.e.a.c.length, 15, 1), s = new C(n.e.a); s.a < s.c.c.length; ) + c = u(E(s), 125), r[c.d] += c.b.a.c.length; + for (f = $7(e); f.b != 0; ) + for (c = u(f.b == 0 ? null : (oe(f.b != 0), Xo(f, f.a.a)), 125), i = Kp(new C(c.g.a)); i.Ob(); ) + t = u(i.Pb(), 218), h = t.e, h.e = y.Math.max(h.e, c.e + t.a), --r[h.d], r[h.d] == 0 && xt(f, h, f.c.b, f.c); + } + function iUn(n) { + var e, t, i, r, c, s, f, h, l, a, d; + for (t = Wi, r = et, f = new C(n.e.a); f.a < f.c.c.length; ) + c = u(E(f), 125), r = y.Math.min(r, c.e), t = y.Math.max(t, c.e); + for (e = K(ye, _e, 28, t - r + 1, 15, 1), s = new C(n.e.a); s.a < s.c.c.length; ) + c = u(E(s), 125), c.e -= r, ++e[c.e]; + if (i = 0, n.k != null) + for (l = n.k, a = 0, d = l.length; a < d && (h = l[a], e[i++] += h, e.length != i); ++a) + ; + return e; + } + function lSe(n, e) { + var t, i, r, c, s, f; + if (e.Ug("Edge routing", 1), r = u(v(n, (lc(), sq)), 392), r == (d5(), nq)) + I4e(n); + else if (r == Lj) + for (u(ho(tm(ut(new Tn(null, new In(n.b, 16)), new X3n()))), 40), c = $(R(v(n, Lln))), s = $(R(v(n, Sln))), f = u(v(n, kb), 88), gLe(n, f, c), XLe(n, f, c, s), QLe(n, f, c, s), i = ge(n.a, 0); i.b != i.d.c; ) + t = u(be(i), 65), t.a.b < 2 && Dnn(t); + e.Vg(); + } + function rUn(n) { + switch (n.d) { + case 9: + case 8: + return !0; + case 3: + case 5: + case 4: + case 6: + return !1; + case 7: + return u(aen(n), 17).a == n.o; + case 1: + case 2: { + if (n.o == -2) + return !1; + switch (n.p) { + case 0: + case 1: + case 2: + case 6: + case 5: + case 7: + return s0(n.k, n.f); + case 3: + case 4: + return n.j == n.e; + default: + return n.n == null ? n.g == null : rt(n.n, n.g); + } + } + default: + return !1; + } + } + function aSe(n, e) { + var t, i, r; + switch (e.Ug("Breaking Point Insertion", 1), i = new znn(n), u(v(n, (cn(), LH)), 351).g) { + case 2: + r = new JU(); + break; + case 0: + r = new XU(); + break; + default: + r = new QU(); + } + if (t = r.og(n, i), on(un(v(n, Chn))) && (t = eOe(n, t)), !r.pg() && kt(n, jI)) + switch (u(v(n, jI), 352).g) { + case 2: + t = F_n(i, t); + break; + case 1: + t = SKn(i, t); + } + if (t.dc()) { + e.Vg(); + return; + } + yLe(n, t), e.Vg(); + } + function cUn(n, e, t) { + var i, r, c, s, f, h, l, a, d; + for (c = new zc(e.c.length), l = new C(e); l.a < l.c.c.length; ) + s = u(E(l), 10), nn(c, n.b[s.c.p][s.p]); + for (JIe(n, c, t), d = null; d = _Oe(c); ) + IPe(n, u(d.a, 239), u(d.b, 239), c); + for (e.c.length = 0, r = new C(c); r.a < r.c.c.length; ) + for (i = u(E(r), 239), f = i.d, h = 0, a = f.length; h < a; ++h) + s = f[h], Kn(e.c, s), n.a[s.c.p][s.p].a = Tf(i.g, i.d[0]).a; + } + function uUn(n) { + c0(n, new pd(t0(Zd(e0(n0(new _a(), a8), "ELK Fixed"), "Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points."), new Xmn()))), Q(n, a8, J0, hdn), Q(n, a8, TS, rn(j9)), Q(n, a8, pcn, rn(udn)), Q(n, a8, r2, rn(odn)), Q(n, a8, d3, rn(fdn)), Q(n, a8, Gm, rn(sdn)); + } + function FA(n, e, t) { + var i, r, c, s, f; + if (i = Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15))), f = Ae(nr(qh, $h(Ae(nr(t == null ? 0 : mt(t), Uh)), 15))), c = u5(n, e, i), c && f == c.f && oh(t, c.i)) + return t; + if (s = o5(n, t, f), s) + throw M(new Gn("value already present: " + t)); + return r = new kM(e, i, t, f), c ? (zg(n, c), ny(n, r, c), c.e = null, c.c = null, c.i) : (ny(n, r, null), aKn(n), null); + } + function dSe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m; + a = t.a.c, s = t.a.c + t.a.b, c = u(ee(t.c, e), 468), p = c.f, m = c.a, c.b ? h = new V(s, p) : h = new V(a, p), c.c ? d = new V(a, m) : d = new V(s, m), r = a, t.p || (r += n.c), r += t.F + t.v * n.b, l = new V(r, p), g = new V(r, m), r5(e.a, A(T(Ci, 1), J, 8, 0, [h, l])), f = t.d.a.gc() > 1, f && (i = new V(r, t.b), Fe(e.a, i)), r5(e.a, A(T(Ci, 1), J, 8, 0, [g, d])); + } + function ps() { + ps = F, AI = new Nb(vh, 0), Sj = new Nb("NIKOLOV", 1), Pj = new Nb("NIKOLOV_PIXEL", 2), Fhn = new Nb("NIKOLOV_IMPROVED", 3), Bhn = new Nb("NIKOLOV_IMPROVED_PIXEL", 4), xhn = new Nb("DUMMYNODE_PERCENTAGE", 5), Rhn = new Nb("NODECOUNT_PERCENTAGE", 6), SI = new Nb("NO_BOUNDARY", 7), mb = new Nb("MODEL_ORDER_LEFT_TO_RIGHT", 8), Gw = new Nb("MODEL_ORDER_RIGHT_TO_LEFT", 9); + } + function bSe(n) { + var e, t, i, r, c; + for (i = n.length, e = new i6(), c = 0; c < i; ) + if (t = Xi(n, c++), !(t == 9 || t == 10 || t == 12 || t == 13 || t == 32)) { + if (t == 35) { + for (; c < i && (t = Xi(n, c++), !(t == 13 || t == 10)); ) + ; + continue; + } + t == 92 && c < i ? (r = (zn(c, n.length), n.charCodeAt(c))) == 35 || r == 9 || r == 10 || r == 12 || r == 13 || r == 32 ? (M4(e, r & oi), ++c) : (e.a += "\\", M4(e, r & oi), ++c) : M4(e, t & oi); + } + return e.a; + } + function Men() { + Men = F, zre = new Mn(Krn, (_n(), !1)), Jre = new Mn(_rn, Y(0)), Qre = new Mn(Hrn, 0), Yre = new Mn(LS, !1), Gln = (Pk(), KI), Vre = new Mn(zR, Gln), Y(0), Xre = new Mn(XR, Y(1)), Xln = (AT(), Cq), tce = new Mn(qrn, Xln), Vln = (ZM(), vq), ice = new Mn(Urn, Vln), zln = (sA(), Eq), Wre = new Mn(Grn, zln), ece = new Mn(VR, 0), Zre = new Mn(WR, !1), nce = new Mn(zrn, !1); + } + function wSe(n, e) { + var t, i, r; + for (i = new C(e); i.a < i.c.c.length; ) + if (t = u(E(i), 27), Pn(n.a, t, t), Pn(n.b, t, t), r = dw(t), r.c.length != 0) + for (n.d && n.d.Gg(r), Pn(n.a, t, (Ln(0, r.c.length), u(r.c[0], 27))), Pn(n.b, t, u(sn(r, r.c.length - 1), 27)); B$(r).c.length != 0; ) + r = B$(r), n.d && n.d.Gg(r), Pn(n.a, t, (Ln(0, r.c.length), u(r.c[0], 27))), Pn(n.b, t, u(sn(r, r.c.length - 1), 27)); + } + function AF(n, e, t) { + var i, r, c, s, f, h; + if (e) + if (t <= -1) { + if (i = $n(e.Dh(), -1 - t), D(i, 102)) + return u(i, 19); + for (s = u(e.Mh(i), 160), f = 0, h = s.gc(); f < h; ++f) + if (x(s.Ul(f)) === x(n) && (r = s.Tl(f), D(r, 102) && (c = u(r, 19), c.Bb & kc))) + return c; + throw M(new Ir("The containment feature could not be located")); + } else + return br(u($n(n.Dh(), t), 19)); + else + return null; + } + function gSe(n) { + var e, t, i, r, c, s, f, h, l, a; + for (t = 0, f = new C(n.d); f.a < f.c.c.length; ) + s = u(E(f), 105), s.i && (s.i.c = t++); + for (e = Ja(oo, [J, zh], [183, 28], 16, [t, t], 2), a = n.d, r = 0; r < a.c.length; r++) + if (h = (Ln(r, a.c.length), u(a.c[r], 105)), h.i) + for (c = r + 1; c < a.c.length; c++) + l = (Ln(c, a.c.length), u(a.c[c], 105)), l.i && (i = Hye(h, l), e[h.i.c][l.i.c] = i, e[l.i.c][h.i.c] = i); + return e; + } + function Ten() { + Ten = F, Mce = new Mn(Wrn, (_n(), !1)), Y(-1), vce = new Mn(Jrn, Y(-1)), Y(-1), kce = new Mn(Qrn, Y(-1)), yce = new Mn(Yrn, !1), w1n = (GM(), $q), Pce = new Mn(Zrn, w1n), Ice = new Mn(ncn, -1), b1n = (_T(), Oq), Sce = new Mn(ecn, b1n), Ace = new Mn(tcn, !0), d1n = (nT(), xq), Cce = new Mn(icn, d1n), Ece = new Mn(rcn, !1), Y(1), jce = new Mn(ccn, Y(1)), Tce = new lt(ucn); + } + function K5() { + K5 = F, ZH = new o0("ROOT_PROC", 0), sln = new o0("FAN_PROC", 1), aln = new o0("LEVEL_PROC", 2), dln = new o0("NEIGHBORS_PROC", 3), lln = new o0("LEVEL_HEIGHT", 4), oln = new o0("DIRECTION_PROC", 5), bln = new o0("NODE_POSITION_PROC", 6), cln = new o0("COMPACTION_PROC", 7), hln = new o0("LEVEL_COORDS", 8), fln = new o0("GRAPH_BOUNDS_PROC", 9), uln = new o0("DETREEIFYING_PROC", 10); + } + function Aen(n, e) { + var t, i, r, c, s, f, h, l, a, d; + for (d = Hr(e), l = null, r = !1, f = 0, a = Pc(d.a).i; f < a; ++f) + s = u(py(d, f, (c = u(L(Pc(d.a), f), 89), h = c.c, D(h, 90) ? u(h, 29) : (On(), Is))), 29), t = Aen(n, s), t.dc() || (l ? (r || (r = !0, l = new sM(l)), l.Gc(t)) : l = t); + return i = TEe(n, e), i.dc() ? l || (Dn(), Dn(), or) : l ? (r || (l = new sM(l)), l.Gc(i), l) : i; + } + function SF(n, e) { + var t, i, r, c, s, f, h, l, a, d; + for (d = Hr(e), l = null, i = !1, f = 0, a = Pc(d.a).i; f < a; ++f) + c = u(py(d, f, (r = u(L(Pc(d.a), f), 89), h = r.c, D(h, 90) ? u(h, 29) : (On(), Is))), 29), t = SF(n, c), t.dc() || (l ? (i || (i = !0, l = new sM(l)), l.Gc(t)) : l = t); + return s = fCe(n, e), s.dc() ? l || (Dn(), Dn(), or) : l ? (i || (l = new sM(l)), l.Gc(s), l) : s; + } + function pSe(n) { + var e, t, i, r; + i = n.o, Rb(), n.A.dc() || rt(n.A, ron) ? r = i.a : (r = ty(n.f), n.A.Hc((go(), iE)) && !n.B.Hc((to(), P9)) && (r = y.Math.max(r, ty(u(Mr(n.p, (en(), Xn)), 252))), r = y.Math.max(r, ty(u(Mr(n.p, ae), 252)))), e = Bxn(n), e && (r = y.Math.max(r, e.a))), on(un(n.e.Tf().of((He(), Ww)))) ? i.a = y.Math.max(i.a, r) : i.a = r, t = n.f.i, t.c = 0, t.b = r, LF(n.f); + } + function ly(n, e, t) { + var i, r, c, s, f, h; + if (D(e, 76)) + return rr(n, e, t); + for (f = null, c = null, i = u(n.g, 124), s = 0; s < n.i; ++s) + if (r = i[s], rt(e, r.md()) && (c = r.Lk(), D(c, 102) && u(c, 19).Bb & kc)) { + f = r; + break; + } + return f && (fo(n.e) && (h = c.Jk() ? V1(n, 4, c, e, null, Im(n, c, e, D(c, 102) && (u(c, 19).Bb & fr) != 0), !0) : V1(n, c.tk() ? 2 : 1, c, e, c.ik(), -1, !0), t ? t.nj(h) : t = h), t = ly(n, f, t)), t; + } + function mSe(n, e, t) { + var i, r, c, s; + if (s = ru(n.e.Dh(), e), i = u(n.g, 124), dr(), u(e, 69).xk()) { + for (c = 0; c < n.i; ++c) + if (r = i[c], s.am(r.Lk()) && rt(r, t)) + return bw(n, c), !0; + } else if (t != null) { + for (c = 0; c < n.i; ++c) + if (r = i[c], s.am(r.Lk()) && rt(t, r.md())) + return bw(n, c), !0; + } else + for (c = 0; c < n.i; ++c) + if (r = i[c], s.am(r.Lk()) && r.md() == null) + return bw(n, c), !0; + return !1; + } + function vSe(n, e) { + var t, i, r, c, s; + if (e.Ug("Node and Port Label Placement and Node Sizing", 1), dTn((u6(), new kN(n, !0, !0, new Egn()))), u(v(n, (W(), qc)), 21).Hc((mr(), cs))) + for (c = u(v(n, (cn(), Hw)), 21), r = c.Hc((Uu(), tE)), s = on(un(v(n, bhn))), i = new C(n.b); i.a < i.c.c.length; ) + t = u(E(i), 30), Ut(ut(new Tn(null, new In(t.a, 16)), new Cgn()), new mSn(c, r, s)); + e.Vg(); + } + function kSe(n, e) { + var t, i, r, c, s; + for (n.c == null || n.c.length < e.c.length ? n.c = K(oo, zh, 28, e.c.length, 16, 1) : e6(n.c), n.a = new Z(), i = 0, s = new C(e); s.a < s.c.c.length; ) + r = u(E(s), 10), r.p = i++; + for (t = new Ct(), c = new C(e); c.a < c.c.c.length; ) + r = u(E(c), 10), n.c[r.p] || (__n(n, r), t.b == 0 || (oe(t.b != 0), u(t.a.a.c, 15)).gc() < n.a.c.length ? gg(t, n.a) : tr(t, n.a), n.a = new Z()); + return t; + } + function oUn(n) { + c0(n, new pd(t0(Zd(e0(n0(new _a(), Qm), "ELK SPOrE Overlap Removal"), 'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'), new bmn()))), Q(n, Qm, YR, rn(ean)), Q(n, Qm, J0, nan), Q(n, Qm, jw, 8), Q(n, Qm, eK, rn(hue)), Q(n, Qm, acn, rn(Y1n)), Q(n, Qm, dcn, rn(Z1n)), Q(n, Qm, Uy, (_n(), !1)); + } + function ySe(n, e) { + var t, i, r, c, s, f, h; + if (t = e.qi(n.a), t && (h = Oe(gf((!t.b && (t.b = new lo((On(), lr), pc, t)), t.b), Wcn)), h != null)) { + for (i = new Z(), c = gw(h, "\\w"), s = 0, f = c.length; s < f; ++s) + r = c[s], An(r, "##other") ? nn(i, "!##" + R6(n, jo(e.qk()))) : An(r, "##local") ? i.c.push(null) : An(r, Yy) ? nn(i, R6(n, jo(e.qk()))) : Kn(i.c, r); + return i; + } + return Dn(), Dn(), or; + } + function sUn(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p; + for (s = d0(e.c, t, i), d = new C(e.a); d.a < d.c.c.length; ) { + for (a = u(E(d), 10), tt(a.n, s), p = new C(a.j); p.a < p.c.c.length; ) + for (g = u(E(p), 12), c = new C(g.g); c.a < c.c.c.length; ) + for (r = u(E(c), 18), ew(r.a, s), f = u(v(r, (cn(), xr)), 75), f && ew(f, s), l = new C(r.b); l.a < l.c.c.length; ) + h = u(E(l), 72), tt(h.n, s); + nn(n.a, a), a.a = n; + } + } + function ay(n) { + var e, t, i, r, c, s, f, h; + if (n.d) + throw M(new Ir((ll(S_), FB + S_.k + BB))); + for (n.c == (ui(), Wf) && Yg(n, Fr), t = new C(n.a.a); t.a < t.c.c.length; ) + e = u(E(t), 194), e.e = 0; + for (s = new C(n.a.b); s.a < s.c.c.length; ) + for (c = u(E(s), 86), c.o = ai, r = c.f.Kc(); r.Ob(); ) + i = u(r.Pb(), 86), ++i.d.e; + for (kDe(n), h = new C(n.a.b); h.a < h.c.c.length; ) + f = u(E(h), 86), f.k = !0; + return n; + } + function jSe(n, e) { + var t, i, r, c, s, f, h, l; + for (f = new g_n(n), t = new Ct(), xt(t, e, t.c.b, t.c); t.b != 0; ) { + for (i = u(t.b == 0 ? null : (oe(t.b != 0), Xo(t, t.a.a)), 113), i.d.p = 1, s = new C(i.e); s.a < s.c.c.length; ) + r = u(E(s), 340), xKn(f, r), l = r.d, l.d.p == 0 && xt(t, l, t.c.b, t.c); + for (c = new C(i.b); c.a < c.c.c.length; ) + r = u(E(c), 340), xKn(f, r), h = r.c, h.d.p == 0 && xt(t, h, t.c.b, t.c); + } + return f; + } + function fUn(n) { + var e, t, i, r, c; + if (i = $(R(z(n, (He(), Fue)))), i != 1) + for (kg(n, i * n.g, i * n.f), t = Cle(ibe((!n.c && (n.c = new q(Wu, n, 9, 9)), n.c), new ivn())), c = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [(!n.n && (n.n = new q(Sr, n, 1, 7)), n.n), (!n.c && (n.c = new q(Wu, n, 9, 9)), n.c), t]))); pe(c); ) + r = u(fe(c), 422), r.qh(i * r.nh(), i * r.oh()), r.ph(i * r.mh(), i * r.lh()), e = u(r.of(Ban), 8), e && (e.a *= i, e.b *= i); + } + function Sen(n, e, t) { + var i, r, c, s, f; + if (s = (dr(), u(e, 69).xk()), Sl(n.e, e)) { + if (e.Si() && RA(n, e, t, D(e, 102) && (u(e, 19).Bb & fr) != 0)) + return !1; + } else + for (f = ru(n.e.Dh(), e), i = u(n.g, 124), c = 0; c < n.i; ++c) + if (r = i[c], f.am(r.Lk())) + return (s ? rt(r, t) : t == null ? r.md() == null : rt(t, r.md())) ? !1 : (u(Rg(n, c, s ? u(t, 76) : xh(e, t)), 76), !0); + return ve(n, s ? u(t, 76) : xh(e, t)); + } + function ESe(n, e, t, i, r) { + var c, s, f, h, l, a, d, g; + for (s = new C(n.b); s.a < s.c.c.length; ) + for (c = u(E(s), 30), g = Y7(c.a), l = g, a = 0, d = l.length; a < d; ++a) + switch (h = l[a], u(v(h, (cn(), ou)), 171).g) { + case 1: + UTe(h), xi(h, e), ERn(h, !0, i); + break; + case 3: + TTe(h), xi(h, t), ERn(h, !1, r); + } + for (f = new Fi(n.b, 0); f.b < f.d.gc(); ) + (oe(f.b < f.d.gc()), u(f.d.Xb(f.c = f.b++), 30)).a.c.length == 0 && bo(f); + } + function CSe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j; + for (p = e.length, h = p, zn(0, e.length), e.charCodeAt(0) == 45 ? (d = -1, g = 1, --p) : (d = 1, g = 0), c = (BF(), jQn)[10], r = p / c | 0, j = p % c, j != 0 && ++r, f = K(ye, _e, 28, r, 15, 1), t = yQn[8], s = 0, m = g + (j == 0 ? c : j), k = g; k < h; k = m, m = k + c) + i = Ao((Bi(k, m, e.length), e.substr(k, m - k)), Wi, et), l = (Tm(), lZ(f, f, s, t)), l += M8e(f, s, i), f[s++] = l; + a = s, n.e = d, n.d = a, n.a = f, J6(n); + } + function MSe(n, e) { + var t, i, r, c; + return t = new Ibn(), i = u(Wr(_r(new Tn(null, new In(n.f, 16)), t), Jb(new Y2(), new Z2(), new np(), new ep(), A(T($r, 1), G, 108, 0, [(qu(), Sw), Yr]))), 21), r = i.gc(), i = u(Wr(_r(new Tn(null, new In(e.f, 16)), t), Jb(new Y2(), new Z2(), new np(), new ep(), A(T($r, 1), G, 108, 0, [Sw, Yr]))), 21), c = i.gc(), r = r == 1 ? 1 : 0, c = c == 1 ? 1 : 0, r < c ? -1 : r == c ? 0 : 1; + } + function TSe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g; + for (f = n.i, r = on(un(v(f, (cn(), Kw)))), a = 0, i = 0, l = new C(n.g); l.a < l.c.c.length; ) + h = u(E(l), 18), s = sr(h), c = s && r && on(un(v(h, $d))), g = h.d.i, s && c ? ++i : s && !c ? ++a : Hi(g).e == f ? ++i : ++a; + for (t = new C(n.e); t.a < t.c.c.length; ) + e = u(E(t), 18), s = sr(e), c = s && r && on(un(v(e, $d))), d = e.c.i, s && c ? ++a : s && !c ? ++i : Hi(d).e == f ? ++a : ++i; + return a - i; + } + function Wg(n, e, t, i) { + this.e = n, this.k = u(v(n, (W(), E2)), 312), this.g = K(Jh, w1, 10, e, 0, 1), this.b = K(fi, J, 345, e, 7, 1), this.a = K(Jh, w1, 10, e, 0, 1), this.d = K(fi, J, 345, e, 7, 1), this.j = K(Jh, w1, 10, e, 0, 1), this.i = K(fi, J, 345, e, 7, 1), this.p = K(fi, J, 345, e, 7, 1), this.n = K(zt, J, 485, e, 8, 1), u7(this.n, (_n(), !1)), this.f = K(zt, J, 485, e, 8, 1), u7(this.f, !0), this.o = t, this.c = i; + } + function hUn(n, e) { + var t, i, r, c, s, f; + if (!e.dc()) + if (u(e.Xb(0), 293).d == (Yp(), $w)) + W7e(n, e); + else + for (i = e.Kc(); i.Ob(); ) { + switch (t = u(i.Pb(), 293), t.d.g) { + case 5: + jm(n, t, n8e(n, t)); + break; + case 0: + jm(n, t, (s = t.f - t.c + 1, f = (s - 1) / 2 | 0, t.c + f)); + break; + case 4: + jm(n, t, ome(n, t)); + break; + case 2: + SBn(t), jm(n, t, (c = GZ(t), c ? t.c : t.f)); + break; + case 1: + SBn(t), jm(n, t, (r = GZ(t), r ? t.f : t.c)); + } + Gye(t.a); + } + } + function Pen(n, e, t, i) { + var r, c, s; + return s = new GEn(e, t), n.a ? i ? (r = u(as(u(ee(n.b, e), 260)), 260), ++r.a, s.d = i.d, s.e = i.e, s.b = i, s.c = i, i.e ? i.e.c = s : r.b = s, i.d ? i.d.b = s : n.a = s, i.d = s, i.e = s) : (u(as(n.e), 511).b = s, s.d = n.e, n.e = s, r = u(ee(n.b, e), 260), r ? (++r.a, c = r.c, c.c = s, s.e = c, r.c = s) : (Xe(n.b, e, r = new YW(s)), ++n.c)) : (n.a = n.e = s, Xe(n.b, e, new YW(s)), ++n.c), ++n.d, s; + } + function PF(n, e) { + var t, i, r, c, s; + if (e.Ug("Network simplex", 1), n.e.a.c.length < 1) { + e.Vg(); + return; + } + for (c = new C(n.e.a); c.a < c.c.c.length; ) + r = u(E(c), 125), r.e = 0; + for (s = n.e.a.c.length >= 40, s && wPe(n), CIe(n), zTe(n), t = pBn(n), i = 0; t && i < n.f; ) + OSe(n, t, WCe(n, t)), t = pBn(n), ++i; + s && lye(n), n.a ? uMe(n, iUn(n)) : iUn(n), n.b = null, n.d = null, n.p = null, n.c = null, n.g = null, n.i = null, n.n = null, n.o = null, e.Vg(); + } + function ASe(n, e) { + var t, i, r, c, s, f, h; + if (!e.e) { + for (e.e = !0, i = e.d.a.ec().Kc(); i.Ob(); ) { + if (t = u(i.Pb(), 18), e.o && e.d.a.gc() <= 1) { + s = e.a.c, f = e.a.c + e.a.b, h = new V(s + (f - s) / 2, e.b), Fe(u(e.d.a.ec().Kc().Pb(), 18).a, h); + continue; + } + if (r = u(ee(e.c, t), 468), r.b || r.c) { + dSe(n, t, e); + continue; + } + c = n.d == (um(), Y8) && (r.d || r.e) && vCe(n, e) && e.d.a.gc() <= 1, c ? nDe(t, e) : jAe(n, t, e); + } + e.k && qi(e.d, new Ywn()); + } + } + function Ien(n, e, t, i, r, c) { + var s, f, h, l, a, d, g, p, m, k, j, S, I, O; + for (g = c, f = (i + r) / 2 + g, j = t * y.Math.cos(f), S = t * y.Math.sin(f), I = j - e.g / 2, O = S - e.f / 2, eu(e, I), tu(e, O), d = n.a.Eg(e), k = 2 * y.Math.acos(t / t + n.c), k < r - i ? (p = k / d, s = (i + r - k) / 2) : (p = (r - i) / d, s = i), m = dw(e), n.e && (n.e.Fg(n.d), n.e.Gg(m)), l = new C(m); l.a < l.c.c.length; ) + h = u(E(l), 27), a = n.a.Eg(h), Ien(n, h, t + n.c, s, s + p * a, c), s += p * a; + } + function SSe(n, e, t) { + var i; + switch (i = t.q.getMonth(), e) { + case 5: + Re(n, A(T(fn, 1), J, 2, 6, ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"])[i]); + break; + case 4: + Re(n, A(T(fn, 1), J, 2, 6, [sB, fB, hB, lB, c3, aB, dB, bB, wB, gB, pB, mB])[i]); + break; + case 3: + Re(n, A(T(fn, 1), J, 2, 6, ["Jan", "Feb", "Mar", "Apr", c3, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[i]); + break; + default: + Fh(n, i + 1, e); + } + } + function PSe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g; + for (h = new V(t, i), vi(h, u(v(e, (Q1(), D8)), 8)), g = new C(e.e); g.a < g.c.c.length; ) + d = u(E(g), 153), tt(d.d, h), nn(n.e, d); + for (f = new C(e.c); f.a < f.c.c.length; ) { + for (s = u(E(f), 290), c = new C(s.a); c.a < c.c.c.length; ) + r = u(E(c), 250), tt(r.d, h); + nn(n.c, s); + } + for (a = new C(e.d); a.a < a.c.c.length; ) + l = u(E(a), 454), tt(l.d, h), nn(n.d, l); + } + function Oen(n, e) { + var t, i, r, c, s, f, h, l; + for (h = new C(e.j); h.a < h.c.c.length; ) + for (f = u(E(h), 12), r = new Of(f.b); tc(r.a) || tc(r.b); ) + i = u(tc(r.a) ? E(r.a) : E(r.b), 18), t = i.c == f ? i.d : i.c, c = t.i, e != c && (l = u(v(i, (cn(), Mv)), 17).a, l < 0 && (l = 0), s = c.p, n.b[s] == 0 && (i.d == t ? (n.a[s] -= l + 1, n.a[s] <= 0 && n.c[s] > 0 && Fe(n.f, c)) : (n.c[s] -= l + 1, n.c[s] <= 0 && n.a[s] > 0 && Fe(n.e, c)))); + } + function lUn(n, e, t, i) { + var r, c, s, f, h, l, a; + for (h = new V(t, i), vi(h, u(v(e, (pt(), Ov)), 8)), a = ge(e.b, 0); a.b != a.d.c; ) + l = u(be(a), 40), tt(l.e, h), Fe(n.b, l); + for (f = u(Wr(uJ(new Tn(null, new In(e.a, 16))), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15).Kc(); f.Ob(); ) { + for (s = u(f.Pb(), 65), c = ge(s.a, 0); c.b != c.d.c; ) + r = u(be(c), 8), r.a += h.a, r.b += h.b; + Fe(n.a, s); + } + } + function Den(n, e) { + var t, i, r, c; + if (0 < (D(n, 16) ? u(n, 16).gc() : wl(n.Kc()))) { + if (r = e, 1 < r) { + for (--r, c = new G3n(), i = n.Kc(); i.Ob(); ) + t = u(i.Pb(), 40), c = Eo(A(T(Oo, 1), Bn, 20, 0, [c, new sl(t)])); + return Den(c, r); + } + if (r < 0) { + for (c = new z3n(), i = n.Kc(); i.Ob(); ) + t = u(i.Pb(), 40), c = Eo(A(T(Oo, 1), Bn, 20, 0, [c, new sl(t)])); + if (0 < (D(c, 16) ? u(c, 16).gc() : wl(c.Kc()))) + return Den(c, r); + } + } + return u(NC(n.Kc()), 40); + } + function ISe(n, e, t) { + var i, r, c, s; + for (t.Ug("Processor order nodes", 2), n.b = $(R(v(e, (lc(), fq)))), n.a = u(v(e, kb), 88), n.a == (ui(), Wf) && (n.a = Vf, U(e, kb, n.a)), r = new Ct(), s = ge(e.b, 0); s.b != s.d.c; ) + c = u(be(s), 40), on(un(v(c, (pt(), Ma)))) && xt(r, c, r.c.b, r.c); + i = (oe(r.b != 0), u(r.a.a.c, 40)), oGn(n, i), t.fh(1), jen(n, i, 0 - $(R(v(i, (pt(), xI)))) / 2, 0), t.fh(1), t.Vg(); + } + function to() { + to = F, Kv = new wg("DEFAULT_MINIMUM_SIZE", 0), uE = new wg("MINIMUM_SIZE_ACCOUNTS_FOR_PADDING", 1), sO = new wg("COMPUTE_PADDING", 2), P9 = new wg("OUTSIDE_NODE_LABELS_OVERHANG", 3), fO = new wg("PORTS_OVERHANG", 4), lO = new wg("UNIFORM_PORT_SPACING", 5), hO = new wg("SPACE_EFFICIENT_PORT_LABELS", 6), bU = new wg("FORCE_TABULAR_NODE_LABELS", 7), cE = new wg("ASYMMETRICAL", 8); + } + function IF(n, e) { + var t, i, r, c, s, f, h, l; + if (e) { + if (t = (c = e.Dh(), c ? jo(c).wi().si(c) : null), t) { + for (f1(n, e, t), r = e.Dh(), h = 0, l = (r.i == null && dh(r), r.i).length; h < l; ++h) + f = (i = (r.i == null && dh(r), r.i), h >= 0 && h < i.length ? i[h] : null), f.rk() && !f.sk() && (D(f, 331) ? S9e(n, u(f, 35), e, t) : (s = u(f, 19), s.Bb & kc && Rke(n, s, e, t))); + e.Vh() && u(t, 54).ei(u(e, 54)._h()); + } + return t; + } else + return null; + } + function OSe(n, e, t) { + var i, r, c; + if (!e.f) + throw M(new Gn("Given leave edge is no tree edge.")); + if (t.f) + throw M(new Gn("Given enter edge is a tree edge already.")); + for (e.f = !1, $X(n.p, e), t.f = !0, hi(n.p, t), i = t.e.e - t.d.e - t.a, fF(n, t.e, e) || (i = -i), c = new C(n.e.a); c.a < c.c.c.length; ) + r = u(E(c), 125), fF(n, r, e) || (r.e += i); + n.j = 1, e6(n.c), Onn(n, u(E(new C(n.e.a)), 125)), pGn(n); + } + function aUn(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p; + if (jme(n, e, t), c = e[t], p = i ? (en(), Wn) : (en(), Zn), M1e(e.length, t, i)) { + for (r = e[i ? t - 1 : t + 1], HJ(n, r, i ? (pr(), Qc) : (pr(), zu)), h = c, a = 0, g = h.length; a < g; ++a) + s = h[a], wZ(n, s, p); + for (HJ(n, c, i ? (pr(), zu) : (pr(), Qc)), f = r, l = 0, d = f.length; l < d; ++l) + s = f[l], s.e || wZ(n, s, xk(p)); + } else + for (f = c, l = 0, d = f.length; l < d; ++l) + s = f[l], wZ(n, s, p); + return !1; + } + function DSe(n, e, t, i, r) { + var c, s, f, h, l, a, d; + for (Dn(), Zt(n, new Ymn()), f = new Fi(n, 0), d = new Z(), c = 0; f.b < f.d.gc(); ) + s = (oe(f.b < f.d.gc()), u(f.d.Xb(f.c = f.b++), 163)), d.c.length != 0 && Au(s) * ao(s) > c * 2 ? (a = new hT(d), l = Au(s) / ao(s), h = QF(a, e, new up(), t, i, r, l), tt(ff(a.e), h), d.c.length = 0, c = 0, Kn(d.c, a), Kn(d.c, s), c = Au(a) * ao(a) + Au(s) * ao(s)) : (Kn(d.c, s), c += Au(s) * ao(s)); + return d; + } + function dUn(n, e) { + var t, i, r, c, s, f; + if (f = u(v(e, (cn(), Ht)), 101), f == (Li(), el) || f == Uc) + for (r = new V(e.f.a + e.d.b + e.d.c, e.f.b + e.d.d + e.d.a).b, s = new C(n.a); s.a < s.c.c.length; ) + c = u(E(s), 10), c.k == (Vn(), ni) && (t = u(v(c, (W(), gc)), 64), !(t != (en(), Zn) && t != Wn) && (i = $(R(v(c, hb))), f == el && (i *= r), c.n.b = i - u(v(c, wb), 8).b, IT(c, !1, !0))); + } + function LSe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m; + if (fo(n.e)) { + if (e != t && (r = u(n.g, 124), p = r[t], s = p.Lk(), Sl(n.e, s))) { + for (m = ru(n.e.Dh(), s), h = -1, f = -1, i = 0, l = 0, d = e > t ? e : t; l <= d; ++l) + l == t ? f = i++ : (c = r[l], a = m.am(c.Lk()), l == e && (h = l == d && !a ? i - 1 : i), a && ++i); + return g = u(k5(n, e, t), 76), f != h && e4(n, new ck(n.e, 7, s, Y(f), p.md(), h)), g; + } + } else + return u(lF(n, e, t), 76); + return u(k5(n, e, t), 76); + } + function NSe(n, e) { + var t, i, r, c, s, f, h; + for (e.Ug("Port order processing", 1), h = u(v(n, (cn(), whn)), 430), i = new C(n.b); i.a < i.c.c.length; ) + for (t = u(E(i), 30), c = new C(t.a); c.a < c.c.c.length; ) + r = u(E(c), 10), s = u(v(r, Ht), 101), f = r.j, s == (Li(), Gd) || s == el || s == Uc ? (Dn(), Zt(f, jsn)) : s != Jf && s != Pa && (Dn(), Zt(f, JZn), R9e(f), h == (dk(), GH) && Zt(f, WZn)), r.i = !0, Snn(r); + e.Vg(); + } + function $Se(n) { + var e, t, i, r, c, s, f, h; + for (h = new de(), e = new oD(), s = n.Kc(); s.Ob(); ) + r = u(s.Pb(), 10), f = l0(i7(new Xa(), r), e), Wc(h.f, r, f); + for (c = n.Kc(); c.Ob(); ) + for (r = u(c.Pb(), 10), i = new ie(ce(Qt(r).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 18), !sr(t) && qs(Ls(Ds(Os(Ns(new hs(), y.Math.max(1, u(v(t, (cn(), ghn)), 17).a)), 1), u(ee(h, t.c.i), 125)), u(ee(h, t.d.i), 125))); + return e; + } + function bUn() { + bUn = F, zie = Ke(new ri(), (Vi(), _c), (er(), osn)), iln = Ke(new ri(), Dc, SP), Vie = Su(Ke(new ri(), Dc, xP), zr, $P), Gie = Su(Ke(Ke(new ri(), Dc, tsn), _c, isn), zr, rsn), Wie = lh(lh(h6(Su(Ke(new ri(), Vs, KP), zr, RP), _c), BP), _P), Xie = Su(new ri(), zr, ssn), qie = Su(Ke(Ke(Ke(new ri(), Wh, IP), _c, DP), _c, fv), zr, OP), Uie = Su(Ke(Ke(new ri(), _c, fv), _c, AP), zr, TP); + } + function xSe(n, e, t, i, r, c) { + var s, f, h, l, a, d, g; + for (l = pFn(e) - pFn(n), s = t_n(e, l), h = Yc(0, 0, 0); l >= 0 && (f = S7e(n, s), !(f && (l < 22 ? h.l |= 1 << l : l < 44 ? h.m |= 1 << l - 22 : h.h |= 1 << l - 44, n.l == 0 && n.m == 0 && n.h == 0))); ) + a = s.m, d = s.h, g = s.l, s.h = d >>> 1, s.m = a >>> 1 | (d & 1) << 21, s.l = g >>> 1 | (a & 1) << 21, --l; + return t && H$(h), c && (i ? (wa = em(n), r && (wa = Yxn(wa, (B4(), lun)))) : wa = Yc(n.l, n.m, n.h)), h; + } + function FSe(n, e) { + var t, i, r, c, s, f, h, l, a, d; + for (l = n.e[e.c.p][e.p] + 1, h = e.c.a.c.length + 1, f = new C(n.a); f.a < f.c.c.length; ) { + for (s = u(E(f), 12), d = 0, c = 0, r = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [new n4(s), new ip(s)]))); pe(r); ) + i = u(fe(r), 12), i.i.c == e.c && (d += p1e(n, i.i) + 1, ++c); + t = d / c, a = s.j, a == (en(), Zn) ? t < l ? n.f[s.p] = n.c - t : n.f[s.p] = n.b + (h - t) : a == Wn && (t < l ? n.f[s.p] = n.b + t : n.f[s.p] = n.c - (h - t)); + } + } + function Ao(n, e, t) { + var i, r, c, s, f; + if (n == null) + throw M(new eh(wu)); + for (c = n.length, s = c > 0 && (zn(0, n.length), n.charCodeAt(0) == 45 || (zn(0, n.length), n.charCodeAt(0) == 43)) ? 1 : 0, i = s; i < c; i++) + if (VBn((zn(i, n.length), n.charCodeAt(i))) == -1) + throw M(new eh(W0 + n + '"')); + if (f = parseInt(n, 10), r = f < e, isNaN(f)) + throw M(new eh(W0 + n + '"')); + if (r || f > t) + throw M(new eh(W0 + n + '"')); + return f; + } + function BSe(n) { + var e, t, i, r, c, s, f; + for (s = new Ct(), c = new C(n.a); c.a < c.c.c.length; ) + r = u(E(c), 118), JO(r, r.f.c.length), SE(r, r.k.c.length), r.i == 0 && (r.o = 0, xt(s, r, s.c.b, s.c)); + for (; s.b != 0; ) + for (r = u(s.b == 0 ? null : (oe(s.b != 0), Xo(s, s.a.a)), 118), i = r.o + 1, t = new C(r.f); t.a < t.c.c.length; ) + e = u(E(t), 132), f = e.a, pG(f, y.Math.max(f.o, i)), SE(f, f.i - 1), f.i == 0 && xt(s, f, s.c.b, s.c); + } + function RSe(n) { + var e, t, i, r, c, s, f, h; + for (s = new C(n); s.a < s.c.c.length; ) { + for (c = u(E(s), 74), i = Gr(u(L((!c.b && (c.b = new Nn(he, c, 4, 7)), c.b), 0), 84)), f = i.i, h = i.j, r = u(L((!c.a && (c.a = new q(Mt, c, 6, 6)), c.a), 0), 166), j7(r, r.j + f, r.k + h), y7(r, r.b + f, r.c + h), t = new ne((!r.a && (r.a = new ii(xo, r, 5)), r.a)); t.e != t.i.gc(); ) + e = u(ue(t), 377), gL(e, e.a + f, e.b + h); + BQ(u(z(c, (He(), yb)), 75), f, h); + } + } + function Pm(n) { + var e; + switch (n) { + case 100: + return Zg(M8, !0); + case 68: + return Zg(M8, !1); + case 119: + return Zg(LK, !0); + case 87: + return Zg(LK, !1); + case 115: + return Zg(NK, !0); + case 83: + return Zg(NK, !1); + case 99: + return Zg($K, !0); + case 67: + return Zg($K, !1); + case 105: + return Zg(xK, !0); + case 73: + return Zg(xK, !1); + default: + throw M(new ec((e = n, zJn + e.toString(16)))); + } + } + function KSe(n) { + var e, t, i, r, c; + switch (r = u(sn(n.a, 0), 10), e = new Tl(n), nn(n.a, e), e.o.a = y.Math.max(1, r.o.a), e.o.b = y.Math.max(1, r.o.b), e.n.a = r.n.a, e.n.b = r.n.b, u(v(r, (W(), gc)), 64).g) { + case 4: + e.n.a += 2; + break; + case 1: + e.n.b += 2; + break; + case 2: + e.n.a -= 2; + break; + case 3: + e.n.b -= 2; + } + return i = new Ic(), ic(i, e), t = new C0(), c = u(sn(r.j, 0), 12), Yi(t, c), Di(t, i), tt(ff(i.n), c.n), tt(ff(i.a), c.a), e; + } + function wUn(n, e, t, i, r) { + t && (!i || (n.c - n.b & n.a.length - 1) > 1) && e == 1 && u(n.a[n.b], 10).k == (Vn(), Sc) ? t3(u(n.a[n.b], 10), (To(), Zh)) : i && (!t || (n.c - n.b & n.a.length - 1) > 1) && e == 1 && u(n.a[n.c - 1 & n.a.length - 1], 10).k == (Vn(), Sc) ? t3(u(n.a[n.c - 1 & n.a.length - 1], 10), (To(), Aa)) : (n.c - n.b & n.a.length - 1) == 2 ? (t3(u(l5(n), 10), (To(), Zh)), t3(u(l5(n), 10), Aa)) : dMe(n, r), TJ(n); + } + function _Se(n, e, t) { + var i, r, c, s, f; + for (c = 0, r = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); r.e != r.i.gc(); ) + i = u(ue(r), 27), s = "", (!i.n && (i.n = new q(Sr, i, 1, 7)), i.n).i == 0 || (s = u(L((!i.n && (i.n = new q(Sr, i, 1, 7)), i.n), 0), 135).a), f = new q$(c++, e, s), Ur(f, i), U(f, (pt(), u9), i), f.e.b = i.j + i.f / 2, f.f.a = y.Math.max(i.g, 1), f.e.a = i.i + i.g / 2, f.f.b = y.Math.max(i.f, 1), Fe(e.b, f), Wc(t.f, i, f); + } + function HSe(n) { + var e, t, i, r, c; + i = u(v(n, (W(), st)), 27), c = u(z(i, (cn(), Fd)), 181).Hc((go(), zd)), n.e || (r = u(v(n, qc), 21), e = new V(n.f.a + n.d.b + n.d.c, n.f.b + n.d.d + n.d.a), r.Hc((mr(), cs)) ? (ht(i, Ht, (Li(), Uc)), z0(i, e.a, e.b, !1, !0)) : on(un(z(i, SH))) || z0(i, e.a, e.b, !0, !0)), c ? ht(i, Fd, jn(zd)) : ht(i, Fd, (t = u(of(S9), 9), new _o(t, u(xs(t, t.length), 9), 0))); + } + function Len(n, e, t) { + var i, r, c, s; + if (e[0] >= n.length) + return t.o = 0, !0; + switch (Xi(n, e[0])) { + case 43: + r = 1; + break; + case 45: + r = -1; + break; + default: + return t.o = 0, !0; + } + if (++e[0], c = e[0], s = yA(n, e), s == 0 && e[0] == c) + return !1; + if (e[0] < n.length && Xi(n, e[0]) == 58) { + if (i = s * 60, ++e[0], c = e[0], s = yA(n, e), s == 0 && e[0] == c) + return !1; + i += s; + } else + i = s, i < 24 && e[0] - c <= 2 ? i *= 60 : i = i % 100 + (i / 100 | 0) * 60; + return i *= r, t.o = -i, !0; + } + function qSe(n) { + var e, t, i, r, c, s, f, h, l; + for (s = new Z(), i = new ie(ce(Qt(n.b).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 18), sr(t) && nn(s, new xLn(t, vNn(n, t.c), vNn(n, t.d))); + for (l = (c = new ol(n.e).a.vc().Kc(), new Pb(c)); l.a.Ob(); ) + f = (e = u(l.a.Pb(), 44), u(e.md(), 113)), f.d.p = 0; + for (h = (r = new ol(n.e).a.vc().Kc(), new Pb(r)); h.a.Ob(); ) + f = (e = u(h.a.Pb(), 44), u(e.md(), 113)), f.d.p == 0 && nn(n.d, jSe(n, f)); + } + function USe(n) { + var e, t, i, r, c, s, f; + for (c = Af(n), r = new ne((!n.e && (n.e = new Nn(Wt, n, 7, 4)), n.e)); r.e != r.i.gc(); ) + if (i = u(ue(r), 74), f = Gr(u(L((!i.c && (i.c = new Nn(he, i, 5, 8)), i.c), 0), 84)), !Zb(f, c)) + return !0; + for (t = new ne((!n.d && (n.d = new Nn(Wt, n, 8, 5)), n.d)); t.e != t.i.gc(); ) + if (e = u(ue(t), 74), s = Gr(u(L((!e.b && (e.b = new Nn(he, e, 4, 7)), e.b), 0), 84)), !Zb(s, c)) + return !0; + return !1; + } + function GSe(n, e) { + var t, i, r, c, s, f, h, l, a; + for (s = new C(e.b); s.a < s.c.c.length; ) + for (c = u(E(s), 30), l = new C(c.a); l.a < l.c.c.length; ) { + for (h = u(E(l), 10), a = new Z(), f = 0, i = new ie(ce(Ei(h).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 18), !(sr(t) || !sr(t) && t.c.i.c == t.d.i.c) && (r = u(v(t, (cn(), I3)), 17).a, r > f && (f = r, a.c.length = 0), r == f && nn(a, new wi(t.c.i, t))); + Dn(), Zt(a, n.c), w0(n.b, h.p, a); + } + } + function zSe(n, e) { + var t, i, r, c, s, f, h, l, a; + for (s = new C(e.b); s.a < s.c.c.length; ) + for (c = u(E(s), 30), l = new C(c.a); l.a < l.c.c.length; ) { + for (h = u(E(l), 10), a = new Z(), f = 0, i = new ie(ce(Qt(h).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 18), !(sr(t) || !sr(t) && t.c.i.c == t.d.i.c) && (r = u(v(t, (cn(), I3)), 17).a, r > f && (f = r, a.c.length = 0), r == f && nn(a, new wi(t.d.i, t))); + Dn(), Zt(a, n.c), w0(n.f, h.p, a); + } + } + function XSe(n, e) { + var t, i, r, c, s, f, h, l; + if (l = un(v(e, (lc(), Ire))), l == null || (Jn(l), l)) { + for (mCe(n, e), r = new Z(), h = ge(e.b, 0); h.b != h.d.c; ) + s = u(be(h), 40), t = knn(n, s, null), t && (Ur(t, e), Kn(r.c, t)); + if (n.a = null, n.b = null, r.c.length > 1) + for (i = new C(r); i.a < i.c.c.length; ) + for (t = u(E(i), 121), c = 0, f = ge(t.b, 0); f.b != f.d.c; ) + s = u(be(f), 40), s.g = c++; + return r; + } + return If(A(T(MNe, 1), jXn, 121, 0, [e])); + } + function VSe(n) { + var e, t, i, r, c, s, f, h; + for (h = new Cu(), e = ge(n, 0), f = null, t = u(be(e), 8), r = u(be(e), 8); e.b != e.d.c; ) + f = t, t = r, r = u(be(e), 8), c = E$n(vi(new V(f.a, f.b), t)), s = E$n(vi(new V(r.a, r.b), t)), i = 10, i = y.Math.min(i, y.Math.abs(c.a + c.b) / 2), i = y.Math.min(i, y.Math.abs(s.a + s.b) / 2), c.a = B7(c.a) * i, c.b = B7(c.b) * i, s.a = B7(s.a) * i, s.b = B7(s.b) * i, Fe(h, tt(c, t)), Fe(h, tt(s, t)); + return h; + } + function WSe(n, e, t) { + var i, r, c, s, f, h; + if (t.Ug("Minimize Crossings " + n.a, 1), i = e.b.c.length == 0 || !o4(ut(new Tn(null, new In(e.b, 16)), new Y3(new Jpn()))).Bd((Wa(), v3)), h = e.b.c.length == 1 && u(sn(e.b, 0), 30).a.c.length == 1, c = x(v(e, (cn(), Rw))) === x((jl(), T1)), i || h && !c) { + t.Vg(); + return; + } + r = BTe(n, e), s = (f = u(Zo(r, 0), 219), f.c.kg() ? f.c.eg() ? new _7n(n) : new H7n(n) : new K7n(n)), T6e(r, s), r5e(n), t.Vg(); + } + function So(n, e, t, i) { + var r, c, s, f, h; + return s = n.Ph(), h = n.Jh(), r = null, h ? e && !(AF(n, e, t).Bb & fr) ? (i = rr(h.El(), n, i), n.di(null), r = e.Qh()) : h = null : (s && (h = s.Qh()), e && (r = e.Qh())), h != r && h && h.Il(n), f = n.Fh(), n.Bh(e, t), h != r && r && r.Hl(n), n.vh() && n.wh() && (s && f >= 0 && f != t && (c = new Mi(n, 1, f, s, null), i ? i.nj(c) : i = c), t >= 0 && (c = new Mi(n, 1, t, f == t ? s : null, e), i ? i.nj(c) : i = c)), i; + } + function gUn(n) { + var e, t, i; + if (n.b == null) { + if (i = new ql(), n.i != null && (Cr(i, n.i), i.a += ":"), n.f & 256) { + for (n.f & 256 && n.a != null && (lge(n.i) || (i.a += "//"), Cr(i, n.a)), n.d != null && (i.a += "/", Cr(i, n.d)), n.f & 16 && (i.a += "/"), e = 0, t = n.j.length; e < t; e++) + e != 0 && (i.a += "/"), Cr(i, n.j[e]); + n.g != null && (i.a += "?", Cr(i, n.g)); + } else + Cr(i, n.a); + n.e != null && (i.a += "#", Cr(i, n.e)), n.b = i.a; + } + return n.b; + } + function JSe(n, e) { + var t, i, r, c, s, f; + for (r = new C(e.a); r.a < r.c.c.length; ) + i = u(E(r), 10), c = v(i, (W(), st)), D(c, 12) && (s = u(c, 12), f = NUn(e, i, s.o.a, s.o.b), s.n.a = f.a, s.n.b = f.b, pi(s, u(v(i, gc), 64))); + t = new V(e.f.a + e.d.b + e.d.c, e.f.b + e.d.d + e.d.a), u(v(e, (W(), qc)), 21).Hc((mr(), cs)) ? (U(n, (cn(), Ht), (Li(), Uc)), u(v(Hi(n), qc), 21).Fc(kv), jGn(n, t, !1)) : jGn(n, t, !0); + } + function QSe(n, e, t, i, r) { + var c, s, f, h; + c = new Tl(n), qa(c, (Vn(), Hc)), U(c, (cn(), Ht), (Li(), Uc)), U(c, (W(), st), e.c.i), s = new Ic(), U(s, st, e.c), pi(s, r), ic(s, c), U(e.c, Gu, c), f = new Tl(n), qa(f, Hc), U(f, Ht, Uc), U(f, st, e.d.i), h = new Ic(), U(h, st, e.d), pi(h, r), ic(h, f), U(e.d, Gu, f), Yi(e, s), Di(e, h), Xb(0, t.c.length), d6(t.c, 0, c), Kn(i.c, f), U(c, iI, Y(1)), U(f, iI, Y(1)); + } + function YSe(n, e, t, i) { + var r, c, s, f, h; + if (h = Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15))), r = Ae(nr(qh, $h(Ae(nr(t == null ? 0 : mt(t), Uh)), 15))), f = o5(n, e, h), s = u5(n, t, r), f && r == f.a && oh(t, f.g)) + return t; + if (s && !i) + throw M(new Gn("key already present: " + t)); + return f && zg(n, f), s && zg(n, s), c = new kM(t, r, e, h), ny(n, c, s), s && (s.e = null, s.c = null), f && (f.e = null, f.c = null), aKn(n), f ? f.g : null; + } + function pUn(n, e, t) { + var i, r, c, s, f; + for (c = 0; c < e; c++) { + for (i = 0, f = c + 1; f < e; f++) + i = Zi(Zi(nr(ki(n[c], vr), ki(n[f], vr)), ki(t[c + f], vr)), ki(Ae(i), vr)), t[c + f] = Ae(i), i = U1(i, 32); + t[c + e] = Ae(i); + } + for (hve(t, t, e << 1), i = 0, r = 0, s = 0; r < e; ++r, s++) + i = Zi(Zi(nr(ki(n[r], vr), ki(n[r], vr)), ki(t[s], vr)), ki(Ae(i), vr)), t[s] = Ae(i), i = U1(i, 32), ++s, i = Zi(i, ki(t[s], vr)), t[s] = Ae(i), i = U1(i, 32); + return t; + } + function mUn(n, e, t) { + var i, r, c, s, f, h, l, a; + if (!L4(e)) { + for (h = $(R(cw(t.c, (cn(), X8)))), l = u(cw(t.c, Aj), 140), !l && (l = new Qv()), i = t.a, r = null, f = e.Kc(); f.Ob(); ) + s = u(f.Pb(), 12), a = 0, r ? (a = h, a += r.o.b) : a = l.d, c = l0(i7(new Xa(), s), n.f), Xe(n.k, s, c), qs(Ls(Ds(Os(Ns(new hs(), 0), gi(y.Math.ceil(a))), i), c)), r = s, i = c; + qs(Ls(Ds(Os(Ns(new hs(), 0), gi(y.Math.ceil(l.a + r.o.b))), i), t.d)); + } + } + function ZSe(n, e, t, i, r, c, s, f) { + var h, l, a, d, g, p; + return p = !1, g = c - t.s, a = t.t - e.f + (l = G5(t, g, !1), l.a), i.g + f > g ? !1 : (d = (h = G5(i, g, !1), h.a), a + f + d <= e.b && (uk(t, c - t.s), t.c = !0, uk(i, c - t.s), Hk(i, t.s, t.t + t.d + f), i.k = !0, _Q(t.q, i), p = !0, r && (wT(e, i), i.j = e, n.c.length > s && (Gk((Ln(s, n.c.length), u(n.c[s], 186)), i), (Ln(s, n.c.length), u(n.c[s], 186)).a.c.length == 0 && Zl(n, s)))), p); + } + function nPe(n, e) { + var t, i, r, c, s, f; + if (e.Ug("Partition midprocessing", 1), r = new M0(), Ut(ut(new Tn(null, new In(n.a, 16)), new qgn()), new h7n(r)), r.d != 0) { + for (f = u(Wr(fJ((c = r.i, new Tn(null, (c || (r.i = new Mg(r, r.c))).Nc()))), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), i = f.Kc(), t = u(i.Pb(), 17); i.Ob(); ) + s = u(i.Pb(), 17), zMe(u(ot(r, t), 21), u(ot(r, s), 21)), t = s; + e.Vg(); + } + } + function vUn(n, e, t) { + var i, r, c, s, f, h, l, a; + if (e.p == 0) { + for (e.p = 1, s = t, s || (r = new Z(), c = (i = u(of(hr), 9), new _o(i, u(xs(i, i.length), 9), 0)), s = new wi(r, c)), u(s.a, 15).Fc(e), e.k == (Vn(), ni) && u(s.b, 21).Fc(u(v(e, (W(), gc)), 64)), h = new C(e.j); h.a < h.c.c.length; ) + for (f = u(E(h), 12), a = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [new n4(f), new ip(f)]))); pe(a); ) + l = u(fe(a), 12), vUn(n, l.i, s); + return s; + } + return null; + } + function _5(n, e) { + var t, i, r, c, s; + if (n.Ab) { + if (n.Ab) { + if (s = n.Ab.i, s > 0) { + if (r = u(n.Ab.g, 2033), e == null) { + for (c = 0; c < s; ++c) + if (t = r[c], t.d == null) + return t; + } else + for (c = 0; c < s; ++c) + if (t = r[c], An(e, t.d)) + return t; + } + } else if (e == null) { + for (i = new ne(n.Ab); i.e != i.i.gc(); ) + if (t = u(ue(i), 598), t.d == null) + return t; + } else + for (i = new ne(n.Ab); i.e != i.i.gc(); ) + if (t = u(ue(i), 598), An(e, t.d)) + return t; + } + return null; + } + function ePe(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + p = d3e(n, XQ(e), r), OQ(p, bl(r, jh)), Bt = null, m = r, k = Y6(m, mWn), j = new Kkn(p), lje(j.a, k), S = Y6(m, "endPoint"), I = new Ukn(p), hje(I.a, S), O = S0(m, RS), N = new Xkn(p), Yke(N.a, O), d = bl(r, Icn), c = new vMn(n, p), Fae(c.a, c.b, d), g = bl(r, Pcn), s = new kMn(n, p), Bae(s.a, s.b, g), l = S0(r, Dcn), f = new yMn(t, p), N7e(f.b, f.a, l), a = S0(r, Ocn), h = new jMn(i, p), $7e(h.b, h.a, a); + } + function Nen(n, e, t) { + var i, r, c, s, f; + switch (f = null, e.g) { + case 1: + for (r = new C(n.j); r.a < r.c.c.length; ) + if (i = u(E(r), 12), on(un(v(i, (W(), aH))))) + return i; + f = new Ic(), U(f, (W(), aH), (_n(), !0)); + break; + case 2: + for (s = new C(n.j); s.a < s.c.c.length; ) + if (c = u(E(s), 12), on(un(v(c, (W(), bH))))) + return c; + f = new Ic(), U(f, (W(), bH), (_n(), !0)); + } + return f && (ic(f, n), pi(f, t), F9e(f.n, n.o, t)), f; + } + function kUn(n, e) { + var t, i, r, c, s, f; + for (f = -1, s = new Ct(), i = new Of(n.b); tc(i.a) || tc(i.b); ) { + for (t = u(tc(i.a) ? E(i.a) : E(i.b), 18), f = y.Math.max(f, $(R(v(t, (cn(), v1))))), t.c == n ? Ut(ut(new Tn(null, new In(t.b, 16)), new Rwn()), new J9n(s)) : Ut(ut(new Tn(null, new In(t.b, 16)), new Kwn()), new Q9n(s)), c = ge(s, 0); c.b != c.d.c; ) + r = u(be(c), 72), kt(r, (W(), M3)) || U(r, M3, t); + li(e, s), vo(s); + } + return f; + } + function U0(n, e, t, i, r) { + var c, s, f, h, l; + f = r ? i.b : i.a, !sf(n.a, i) && (l = f > t.s && f < t.c, h = !1, t.e.b != 0 && t.j.b != 0 && (h = h | (y.Math.abs(f - $(R(g4(t.e)))) < mh && y.Math.abs(f - $(R(g4(t.j)))) < mh), h = h | (y.Math.abs(f - $(R($s(t.e)))) < mh && y.Math.abs(f - $(R($s(t.j)))) < mh)), (l || h) && (s = u(v(e, (cn(), xr)), 75), s || (s = new Cu(), U(e, xr, s)), c = new ir(i), xt(s, c, s.c.b, s.c), hi(n.a, c))); + } + function tPe(n, e, t, i) { + var r, c, s, f, h, l, a; + if (tCe(n, e, t, i)) + return !0; + for (s = new C(e.f); s.a < s.c.c.length; ) { + switch (c = u(E(s), 334), f = !1, h = n.j - e.j + t, l = h + e.o, a = n.k - e.k + i, r = a + e.p, c.a.g) { + case 0: + f = X$(n, h + c.b.a, 0, h + c.c.a, a - 1); + break; + case 1: + f = X$(n, l, a + c.b.a, n.o - 1, a + c.c.a); + break; + case 2: + f = X$(n, h + c.b.a, r, h + c.c.a, n.p - 1); + break; + default: + f = X$(n, 0, a + c.b.a, h - 1, a + c.c.a); + } + if (f) + return !0; + } + return !1; + } + function iPe(n, e, t) { + var i, r, c, s, f, h, l, a, d; + for (t.Ug("Processor set coordinates", 1), n.a = e.b.b == 0 ? 1 : e.b.b, l = null, i = ge(e.b, 0); !l && i.b != i.d.c; ) + d = u(be(i), 40), on(un(v(d, (pt(), Ma)))) && (l = d, h = d.e, h.a = u(v(d, $j), 17).a, h.b = u(v(d, xj), 17).a); + f = F$(l), a = 1; + do + f = cje((r = f, t.eh(a), r)), a = f.b / n.a | 0; + while (f.b != 0); + for (s = ge(e.b, 0); s.b != s.d.c; ) + c = u(be(s), 40), vi(c.e, new V(c.f.a / 2, c.f.b / 2)); + t.Vg(); + } + function rPe(n, e, t) { + var i, r, c, s, f, h, l, a; + for (t.Ug(aVn, 1), Ku(n.b), Ku(n.a), f = null, c = ge(e.b, 0); !f && c.b != c.d.c; ) + l = u(be(c), 40), on(un(v(l, (pt(), Ma)))) && (f = l); + for (h = new Ct(), xt(h, f, h.c.b, h.c), JGn(n, h), a = ge(e.b, 0); a.b != a.d.c; ) + l = u(be(a), 40), s = Oe(v(l, (pt(), c9))), r = $c(n.b, s) != null ? u($c(n.b, s), 17).a : 0, U(l, iq, Y(r)), i = 1 + ($c(n.a, s) != null ? u($c(n.a, s), 17).a : 0), U(l, mln, Y(i)); + t.Vg(); + } + function yUn(n) { + c0(n, new pd(t0(Zd(e0(n0(new _a(), nb), "ELK Box"), "Algorithm for packing of unconnected boxes, i.e. graphs without edges."), new zmn()))), Q(n, nb, J0, ban), Q(n, nb, jw, 15), Q(n, nb, Ny, Y(0)), Q(n, nb, wcn, rn(lan)), Q(n, nb, r2, rn(Eue)), Q(n, nb, a3, rn(Cue)), Q(n, nb, l3, $Vn), Q(n, nb, i8, rn(aan)), Q(n, nb, d3, rn(dan)), Q(n, nb, gcn, rn(Wq)), Q(n, nb, MS, rn(jue)); + } + function jUn(n, e) { + var t, i, r, c, s, f, h, l, a; + if (r = n.i, s = r.o.a, c = r.o.b, s <= 0 && c <= 0) + return en(), sc; + switch (l = n.n.a, a = n.n.b, f = n.o.a, t = n.o.b, e.g) { + case 2: + case 1: + if (l < 0) + return en(), Wn; + if (l + f > s) + return en(), Zn; + break; + case 4: + case 3: + if (a < 0) + return en(), Xn; + if (a + t > c) + return en(), ae; + } + return h = (l + f / 2) / s, i = (a + t / 2) / c, h + i <= 1 && h - i <= 0 ? (en(), Wn) : h + i >= 1 && h - i >= 0 ? (en(), Zn) : i < 0.5 ? (en(), Xn) : (en(), ae); + } + function cPe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k; + for (t = !1, a = $(R(v(e, (cn(), pb)))), m = fa * a, r = new C(e.b); r.a < r.c.c.length; ) + for (i = u(E(r), 30), l = new C(i.a), c = u(E(l), 10), d = yW(n.a[c.p]); l.a < l.c.c.length; ) + f = u(E(l), 10), g = yW(n.a[f.p]), d != g && (p = jg(n.b, c, f), s = c.n.b + c.o.b + c.d.a + d.a + p, h = f.n.b - f.d.d + g.a, s > h + m && (k = d.g + g.g, g.a = (g.g * g.a + d.g * d.a) / k, g.g = k, d.f = g, t = !0)), c = f, d = g; + return t; + } + function EUn(n, e, t, i, r, c, s) { + var f, h, l, a, d, g; + for (g = new mp(), l = e.Kc(); l.Ob(); ) + for (f = u(l.Pb(), 853), d = new C(f.Rf()); d.a < d.c.c.length; ) + a = u(E(d), 187), x(a.of((He(), nU))) === x((Nf(), Fv)) && (eUn(g, a, !1, i, r, c, s), D5(n, g)); + for (h = t.Kc(); h.Ob(); ) + for (f = u(h.Pb(), 853), d = new C(f.Rf()); d.a < d.c.c.length; ) + a = u(E(d), 187), x(a.of((He(), nU))) === x((Nf(), Qw)) && (eUn(g, a, !0, i, r, c, s), D5(n, g)); + } + function uPe(n, e, t) { + var i, r, c, s, f, h, l; + for (s = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); s.e != s.i.gc(); ) + for (c = u(ue(s), 27), r = new ie(ce(Al(c).a.Kc(), new En())); pe(r); ) + i = u(fe(r), 74), !N5(i) && !N5(i) && !H0(i) && (h = u(Kr(gr(t.f, c)), 40), l = u(ee(t, Gr(u(L((!i.c && (i.c = new Nn(he, i, 5, 8)), i.c), 0), 84))), 40), h && l && (f = new JW(h, l), U(f, (pt(), u9), i), Ur(f, i), Fe(h.d, f), Fe(l.b, f), Fe(e.a, f))); + } + function oPe(n, e) { + var t, i, r, c, s, f, h, l; + for (h = u(u(ot(n.r, e), 21), 87).Kc(); h.Ob(); ) + f = u(h.Pb(), 117), r = f.c ? qSn(f.c) : 0, r > 0 ? f.a ? (l = f.b.Mf().b, r > l && (n.v || f.c.d.c.length == 1 ? (s = (r - l) / 2, f.d.d = s, f.d.a = s) : (t = u(sn(f.c.d, 0), 187).Mf().b, i = (t - l) / 2, f.d.d = y.Math.max(0, i), f.d.a = r - i - l))) : f.d.a = n.t + r : K6(n.u) && (c = tnn(f.b), c.d < 0 && (f.d.d = -c.d), c.d + c.a > f.b.Mf().b && (f.d.a = c.d + c.a - f.b.Mf().b)); + } + function Us() { + Us = F, k3 = new $i((He(), Jj), Y(1)), yP = new $i(Ud, 80), tZn = new $i(Uan, 5), zYn = new $i(x2, Um), nZn = new $i(fU, Y(1)), eZn = new $i(hU, (_n(), !0)), mon = new h0(50), YYn = new $i(M1, mon), won = Vj, von = v9, XYn = new $i(Zq, !1), pon = Wj, JYn = Ww, QYn = Ta, WYn = qd, VYn = K2, ZYn = Jw, gon = (ann(), RYn), y_ = qYn, kP = BYn, k_ = KYn, kon = HYn, cZn = k9, uZn = cO, rZn = Qj, iZn = rO, yon = (Gp(), Zw), new $i(x3, yon); + } + function sPe(n, e) { + var t; + switch (bk(n)) { + case 6: + return Pi(e); + case 7: + return xb(e); + case 8: + return $b(e); + case 3: + return Array.isArray(e) && (t = bk(e), !(t >= 14 && t <= 16)); + case 11: + return e != null && typeof e === eB; + case 12: + return e != null && (typeof e === vy || typeof e == eB); + case 0: + return Tx(e, n.__elementTypeId$); + case 2: + return uN(e) && e.Tm !== Q2; + case 1: + return uN(e) && e.Tm !== Q2 || Tx(e, n.__elementTypeId$); + default: + return !0; + } + } + function CUn(n, e) { + var t, i, r, c; + return i = y.Math.min(y.Math.abs(n.c - (e.c + e.b)), y.Math.abs(n.c + n.b - e.c)), c = y.Math.min(y.Math.abs(n.d - (e.d + e.a)), y.Math.abs(n.d + n.a - e.d)), t = y.Math.abs(n.c + n.b / 2 - (e.c + e.b / 2)), t > n.b / 2 + e.b / 2 || (r = y.Math.abs(n.d + n.a / 2 - (e.d + e.a / 2)), r > n.a / 2 + e.a / 2) ? 1 : t == 0 && r == 0 ? 0 : t == 0 ? c / r + 1 : r == 0 ? i / t + 1 : y.Math.min(i / t, c / r) + 1; + } + function fPe(n, e) { + var t, i, r, c, s, f, h; + for (c = 0, f = 0, h = 0, r = new C(n.f.e); r.a < r.c.c.length; ) + i = u(E(r), 153), e != i && (s = n.i[e.a][i.a], c += s, t = J1(e.d, i.d), t > 0 && n.d != (t5(), C_) && (f += s * (i.d.a + n.a[e.a][i.a] * (e.d.a - i.d.a) / t)), t > 0 && n.d != (t5(), j_) && (h += s * (i.d.b + n.a[e.a][i.a] * (e.d.b - i.d.b) / t))); + switch (n.d.g) { + case 1: + return new V(f / c, e.d.b); + case 2: + return new V(e.d.a, h / c); + default: + return new V(f / c, h / c); + } + } + function MUn(n) { + var e, t, i, r, c, s; + for (t = (!n.a && (n.a = new ii(xo, n, 5)), n.a).i + 2, s = new zc(t), nn(s, new V(n.j, n.k)), Ut(new Tn(null, (!n.a && (n.a = new ii(xo, n, 5)), new In(n.a, 16))), new xkn(s)), nn(s, new V(n.b, n.c)), e = 1; e < s.c.length - 1; ) + i = (Ln(e - 1, s.c.length), u(s.c[e - 1], 8)), r = (Ln(e, s.c.length), u(s.c[e], 8)), c = (Ln(e + 1, s.c.length), u(s.c[e + 1], 8)), i.a == r.a && r.a == c.a || i.b == r.b && r.b == c.b ? Zl(s, e) : ++e; + return s; + } + function TUn(n, e) { + rm(); + var t, i, r, c, s; + if (s = u(v(n.i, (cn(), Ht)), 101), c = n.j.g - e.j.g, c != 0 || !(s == (Li(), Gd) || s == el || s == Uc)) + return 0; + if (s == (Li(), Gd) && (t = u(v(n, k1), 17), i = u(v(e, k1), 17), t && i && (r = t.a - i.a, r != 0))) + return r; + switch (n.j.g) { + case 1: + return bt(n.n.a, e.n.a); + case 2: + return bt(n.n.b, e.n.b); + case 3: + return bt(e.n.a, n.n.a); + case 4: + return bt(e.n.b, n.n.b); + default: + throw M(new Ir(iin)); + } + } + function AUn(n, e) { + var t, i, r, c, s, f, h; + for (t = eAn(sCn(uCn(oCn(new WG(), e), new PM(e.e)), ZZn), n.a), e.j.c.length == 0 || $Nn(u(sn(e.j, 0), 60).a, t), h = new rD(), Xe(n.e, t, h), s = new ei(), f = new ei(), c = new C(e.k); c.a < c.c.c.length; ) + r = u(E(c), 18), hi(s, r.c), hi(f, r.d); + i = s.a.gc() - f.a.gc(), i < 0 ? (Tk(h, !0, (ui(), Fr)), Tk(h, !1, Xr)) : i > 0 && (Tk(h, !1, (ui(), Fr)), Tk(h, !0, Xr)), nu(e.g, new RCn(n, t)), Xe(n.g, e, t); + } + function SUn() { + SUn = F; + var n; + for (vun = A(T(ye, 1), _e, 28, 15, [-1, -1, 30, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]), JK = K(ye, _e, 28, 37, 15, 1), gQn = A(T(ye, 1), _e, 28, 15, [-1, -1, 63, 40, 32, 28, 25, 23, 21, 20, 19, 19, 18, 18, 17, 17, 16, 16, 16, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13]), kun = K(Fa, SB, 28, 37, 14, 1), n = 2; n <= 36; n++) + JK[n] = gi(y.Math.pow(n, vun[n])), kun[n] = Xk(Ey, JK[n]); + } + function hPe(n) { + var e; + if ((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a).i != 1) + throw M(new Gn(tWn + (!n.a && (n.a = new q(Mt, n, 6, 6)), n.a).i)); + return e = new Cu(), Ck(u(L((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b), 0), 84)) && Ri(e, gzn(n, Ck(u(L((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b), 0), 84)), !1)), Ck(u(L((!n.c && (n.c = new Nn(he, n, 5, 8)), n.c), 0), 84)) && Ri(e, gzn(n, Ck(u(L((!n.c && (n.c = new Nn(he, n, 5, 8)), n.c), 0), 84)), !0)), e; + } + function PUn(n, e) { + var t, i, r, c, s; + for (e.d ? r = n.a.c == (sh(), vb) ? Ei(e.b) : Qt(e.b) : r = n.a.c == (sh(), j1) ? Ei(e.b) : Qt(e.b), c = !1, i = new ie(ce(r.a.Kc(), new En())); pe(i); ) + if (t = u(fe(i), 18), s = on(n.a.f[n.a.g[e.b.p].p]), !(!s && !sr(t) && t.c.i.c == t.d.i.c) && !(on(n.a.n[n.a.g[e.b.p].p]) || on(n.a.n[n.a.g[e.b.p].p])) && (c = !0, sf(n.b, n.a.g[h7e(t, e.b).p]))) + return e.c = !0, e.a = t, e; + return e.c = c, e.a = null, e; + } + function $en(n, e, t) { + var i, r, c, s, f, h, l; + if (i = t.gc(), i == 0) + return !1; + if (n.Pj()) + if (h = n.Qj(), UY(n, e, t), s = i == 1 ? n.Ij(3, null, t.Kc().Pb(), e, h) : n.Ij(5, null, t, e, h), n.Mj()) { + for (f = i < 100 ? null : new F1(i), c = e + i, r = e; r < c; ++r) + l = n.xj(r), f = n.Nj(l, f), f = f; + f ? (f.nj(s), f.oj()) : n.Jj(s); + } else + n.Jj(s); + else if (UY(n, e, t), n.Mj()) { + for (f = i < 100 ? null : new F1(i), c = e + i, r = e; r < c; ++r) + f = n.Nj(n.xj(r), f); + f && f.oj(); + } + return !0; + } + function IUn(n, e, t) { + var i, r, c, s, f; + return n.Pj() ? (r = null, c = n.Qj(), i = n.Ij(1, f = (s = n.Dj(e, n.Zi(e, t)), s), t, e, c), n.Mj() && !(n.Yi() && f ? rt(f, t) : x(f) === x(t)) && (f && (r = n.Oj(f, r)), r = n.Nj(t, r)), r ? (r.nj(i), r.oj()) : n.Jj(i), f) : (f = (s = n.Dj(e, n.Zi(e, t)), s), n.Mj() && !(n.Yi() && f ? rt(f, t) : x(f) === x(t)) && (r = null, f && (r = n.Oj(f, null)), r = n.Nj(t, r), r && r.oj()), f); + } + function xen(n, e) { + var t, i, r, c, s, f, h, l, a; + if (n.e = e, n.f = u(v(e, (Q1(), jP)), 234), Fye(e), n.d = y.Math.max(e.e.c.length * 16 + e.c.c.length, 256), !on(un(v(e, (Us(), won))))) + for (a = n.e.e.c.length, h = new C(e.e); h.a < h.c.c.length; ) + f = u(E(h), 153), l = f.d, l.a = lW(n.f) * a, l.b = lW(n.f) * a; + for (t = e.b, c = new C(e.c); c.a < c.c.c.length; ) + if (r = u(E(c), 290), i = u(v(r, kon), 17).a, i > 0) { + for (s = 0; s < i; s++) + nn(t, new UPn(r)); + W_n(r); + } + } + function OUn(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m; + if (g = new Ub(n.Zg()), bf(e, Qe, g), t && !n.Xg().a.dc()) + for (a = new Ha(), bf(e, "logs", a), f = 0, m = new W3(n.Xg().b.Kc()); m.b.Ob(); ) + p = Oe(m.b.Pb()), d = new Ub(p), Qb(a, f), qN(a, f, d), ++f; + if (i && (l = new AE(n.Wg()), bf(e, "executionTime", l)), !n.Yg().a.dc()) + for (s = new Ha(), bf(e, gK, s), f = 0, c = new W3(n.Yg().b.Kc()); c.b.Ob(); ) + r = u(c.b.Pb(), 871), h = new sp(), Qb(s, f), qN(s, f, h), OUn(r, h, t, i), ++f; + } + function Fen() { + Fen = F, OD(), Pse = new S5n(), A(T(R3, 2), J, 381, 0, [A(T(R3, 1), iP, 600, 0, [new Y9(xJn)])]), A(T(R3, 2), J, 381, 0, [A(T(R3, 1), iP, 600, 0, [new Y9(Zcn)])]), A(T(R3, 2), J, 381, 0, [A(T(R3, 1), iP, 600, 0, [new Y9(FJn)]), A(T(R3, 1), iP, 600, 0, [new Y9(Zcn)])]), new H1("-1"), A(T(R3, 2), J, 381, 0, [A(T(R3, 1), iP, 600, 0, [new Y9("\\c+")])]), new H1("0"), new H1("0"), new H1("1"), new H1("0"), new H1(qJn); + } + function lPe(n, e) { + var t, i, r, c, s, f, h, l, a, d; + for (e.Ug("Hypernodes processing", 1), r = new C(n.b); r.a < r.c.c.length; ) + for (i = u(E(r), 30), f = new C(i.a); f.a < f.c.c.length; ) + if (s = u(E(f), 10), on(un(v(s, (cn(), wI)))) && s.j.c.length <= 2) { + for (d = 0, a = 0, t = 0, c = 0, l = new C(s.j); l.a < l.c.c.length; ) + switch (h = u(E(l), 12), h.j.g) { + case 1: + ++d; + break; + case 2: + ++a; + break; + case 3: + ++t; + break; + case 4: + ++c; + } + d == 0 && t == 0 && wLe(n, s, c <= a); + } + e.Vg(); + } + function aPe(n, e, t, i, r) { + var c, s, f, h, l, a, d; + for (s = new C(e); s.a < s.c.c.length; ) { + if (c = u(E(s), 18), h = c.c, t.a._b(h)) + l = (T0(), Ca); + else if (i.a._b(h)) + l = (T0(), I2); + else + throw M(new Gn("Source port must be in one of the port sets.")); + if (a = c.d, t.a._b(a)) + d = (T0(), Ca); + else if (i.a._b(a)) + d = (T0(), I2); + else + throw M(new Gn("Target port must be in one of the port sets.")); + f = new A_n(c, l, d), Xe(n.b, c, f), Kn(r.c, f); + } + } + function BA(n) { + var e, t; + return n.c && n.c.Vh() && (t = u(n.c, 54), n.c = u(ea(n, t), 142), n.c != t && (n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 9, 2, t, n.c)), D(n.Cb, 411) ? n.Db >> 16 == -15 && n.Cb.Yh() && h$(new c$(n.Cb, 9, 13, t, n.c, h1(Zu(u(n.Cb, 62)), n))) : D(n.Cb, 90) && n.Db >> 16 == -23 && n.Cb.Yh() && (e = n.c, D(e, 90) || (e = (On(), Is)), D(t, 90) || (t = (On(), Is)), h$(new c$(n.Cb, 9, 10, t, e, h1(Pc(u(n.Cb, 29)), n)))))), n.c; + } + function dPe(n, e, t) { + var i, r, c, s, f, h, l, a, d; + for (t.Ug("Hyperedge merging", 1), FCe(n, e), h = new Fi(e.b, 0); h.b < h.d.gc(); ) + if (f = (oe(h.b < h.d.gc()), u(h.d.Xb(h.c = h.b++), 30)), a = f.a, a.c.length != 0) + for (i = null, r = null, c = null, s = null, l = 0; l < a.c.length; l++) + i = (Ln(l, a.c.length), u(a.c[l], 10)), r = i.k, r == (Vn(), Ti) && s == Ti && (d = sIe(i, c), d.a && (sAe(i, c, d.b, d.c), Ln(l, a.c.length), Pz(a.c, l, 1), --l, i = c, r = s)), c = i, s = r; + t.Vg(); + } + function DUn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m; + if (e == t) + return !0; + if (e = Unn(n, e), t = Unn(n, t), i = Lx(e), i) { + if (a = Lx(t), a != i) + return a ? (h = i.mk(), m = a.mk(), h == m && h != null) : !1; + if (s = (!e.d && (e.d = new ii(Er, e, 1)), e.d), c = s.i, g = (!t.d && (t.d = new ii(Er, t, 1)), t.d), c == g.i) { + for (l = 0; l < c; ++l) + if (r = u(L(s, l), 89), d = u(L(g, l), 89), !DUn(n, r, d)) + return !1; + } + return !0; + } else + return f = e.e, p = t.e, f == p; + } + function LUn(n, e, t, i) { + var r, c, s, f, h, l, a, d; + if (Sl(n.e, e)) { + for (d = ru(n.e.Dh(), e), c = u(n.g, 124), a = null, h = -1, f = -1, r = 0, l = 0; l < n.i; ++l) + s = c[l], d.am(s.Lk()) && (r == t && (h = l), r == i && (f = l, a = s.md()), ++r); + if (h == -1) + throw M(new Pr(vK + t + Ad + r)); + if (f == -1) + throw M(new Pr(kK + i + Ad + r)); + return k5(n, h, f), fo(n.e) && e4(n, V1(n, 7, e, Y(i), a, t, !0)), a; + } else + throw M(new Gn("The feature must be many-valued to support move")); + } + function NUn(n, e, t, i) { + var r, c, s, f, h; + switch (h = new ir(e.n), h.a += e.o.a / 2, h.b += e.o.b / 2, f = $(R(v(e, (cn(), _w)))), c = n.f, s = n.d, r = n.c, u(v(e, (W(), gc)), 64).g) { + case 1: + h.a += s.b + r.a - t / 2, h.b = -i - f, e.n.b = -(s.d + f + r.b); + break; + case 2: + h.a = c.a + s.b + s.c + f, h.b += s.d + r.b - i / 2, e.n.a = c.a + s.c + f - r.a; + break; + case 3: + h.a += s.b + r.a - t / 2, h.b = c.b + s.d + s.a + f, e.n.b = c.b + s.a + f - r.b; + break; + case 4: + h.a = -t - f, h.b += s.d + r.b - i / 2, e.n.a = -(s.b + f + r.a); + } + return h; + } + function $Un(n) { + var e, t, i, r, c, s; + return i = new EQ(), Ur(i, n), x(v(i, (cn(), Do))) === x((ui(), Wf)) && U(i, Do, KT(i)), v(i, (JM(), b9)) == null && (s = u(WKn(n), 167), U(i, b9, PC(s.of(b9)))), U(i, (W(), st), n), U(i, qc, (e = u(of(cH), 9), new _o(e, u(xs(e, e.length), 9), 0))), r = aDe((At(n) && (u0(), new Yd(At(n))), u0(), new ML(At(n) ? new Yd(At(n)) : null, n)), Xr), c = u(v(i, hhn), 107), t = i.d, dOn(t, c), dOn(t, r), i; + } + function bPe(n, e, t) { + var i, r; + i = e.c.i, r = t.d.i, i.k == (Vn(), Ti) ? (U(n, (W(), yf), u(v(i, yf), 12)), U(n, Es, u(v(i, Es), 12)), U(n, xw, un(v(i, xw)))) : i.k == Sc ? (U(n, (W(), yf), u(v(i, yf), 12)), U(n, Es, u(v(i, Es), 12)), U(n, xw, (_n(), !0))) : r.k == Sc ? (U(n, (W(), yf), u(v(r, yf), 12)), U(n, Es, u(v(r, Es), 12)), U(n, xw, (_n(), !0))) : (U(n, (W(), yf), e.c), U(n, Es, t.d)); + } + function wPe(n) { + var e, t, i, r, c, s, f; + for (n.o = new Cg(), i = new Ct(), s = new C(n.e.a); s.a < s.c.c.length; ) + c = u(E(s), 125), xg(c).c.length == 1 && xt(i, c, i.c.b, i.c); + for (; i.b != 0; ) + c = u(i.b == 0 ? null : (oe(i.b != 0), Xo(i, i.a.a)), 125), xg(c).c.length != 0 && (e = u(sn(xg(c), 0), 218), t = c.g.a.c.length > 0, f = HT(e, c), VX(t ? f.b : f.g, e), xg(f).c.length == 1 && xt(i, f, i.c.b, i.c), r = new wi(c, e), W1(n.o, r), au(n.e.a, c)); + } + function xUn(n, e) { + var t, i, r, c, s, f, h; + return i = y.Math.abs(gM(n.b).a - gM(e.b).a), f = y.Math.abs(gM(n.b).b - gM(e.b).b), r = 0, h = 0, t = 1, s = 1, i > n.b.b / 2 + e.b.b / 2 && (r = y.Math.min(y.Math.abs(n.b.c - (e.b.c + e.b.b)), y.Math.abs(n.b.c + n.b.b - e.b.c)), t = 1 - r / i), f > n.b.a / 2 + e.b.a / 2 && (h = y.Math.min(y.Math.abs(n.b.d - (e.b.d + e.b.a)), y.Math.abs(n.b.d + n.b.a - e.b.d)), s = 1 - h / f), c = y.Math.min(t, s), (1 - c) * y.Math.sqrt(i * i + f * f); + } + function gPe(n) { + var e, t, i, r; + for (JF(n, n.e, n.f, (T0(), Ca), !0, n.c, n.i), JF(n, n.e, n.f, Ca, !1, n.c, n.i), JF(n, n.e, n.f, I2, !0, n.c, n.i), JF(n, n.e, n.f, I2, !1, n.c, n.i), aPe(n, n.c, n.e, n.f, n.i), i = new Fi(n.i, 0); i.b < i.d.gc(); ) + for (e = (oe(i.b < i.d.gc()), u(i.d.Xb(i.c = i.b++), 131)), r = new Fi(n.i, i.b); r.b < r.d.gc(); ) + t = (oe(r.b < r.d.gc()), u(r.d.Xb(r.c = r.b++), 131)), tOe(e, t); + MLe(n.i, u(v(n.d, (W(), S3)), 234)), ROe(n.i); + } + function OF(n, e) { + var t, i; + if (e != null) { + if (i = _0(n), i) + if (i.i & 1) { + if (i == oo) + return $b(e); + if (i == ye) + return D(e, 17); + if (i == ug) + return D(e, 161); + if (i == xu) + return D(e, 222); + if (i == fs) + return D(e, 180); + if (i == Oi) + return xb(e); + if (i == V2) + return D(e, 191); + if (i == Fa) + return D(e, 168); + } else + return iC(), t = u(ee(yO, i), 57), !t || t.fk(e); + else if (D(e, 58)) + return n.dl(u(e, 58)); + } + return !1; + } + function Ben() { + Ben = F; + var n, e, t, i, r, c, s, f, h; + for (Zf = K(xu, s2, 28, 255, 15, 1), D1 = K(fs, wh, 28, 64, 15, 1), e = 0; e < 255; e++) + Zf[e] = -1; + for (t = 90; t >= 65; t--) + Zf[t] = t - 65 << 24 >> 24; + for (i = 122; i >= 97; i--) + Zf[i] = i - 97 + 26 << 24 >> 24; + for (r = 57; r >= 48; r--) + Zf[r] = r - 48 + 52 << 24 >> 24; + for (Zf[43] = 62, Zf[47] = 63, c = 0; c <= 25; c++) + D1[c] = 65 + c & oi; + for (s = 26, h = 0; s <= 51; ++s, h++) + D1[s] = 97 + h & oi; + for (n = 52, f = 0; n <= 61; ++n, f++) + D1[n] = 48 + f & oi; + D1[62] = 43, D1[63] = 47; + } + function FUn(n, e) { + var t, i, r, c, s, f; + return r = xQ(n), f = xQ(e), r == f ? n.e == e.e && n.a < 54 && e.a < 54 ? n.f < e.f ? -1 : n.f > e.f ? 1 : 0 : (i = n.e - e.e, t = (n.d > 0 ? n.d : y.Math.floor((n.a - 1) * Uzn) + 1) - (e.d > 0 ? e.d : y.Math.floor((e.a - 1) * Uzn) + 1), t > i + 1 ? r : t < i - 1 ? -r : (c = (!n.c && (n.c = J7(vc(n.f))), n.c), s = (!e.c && (e.c = J7(vc(e.f))), e.c), i < 0 ? c = Ig(c, VUn(-i)) : i > 0 && (s = Ig(s, VUn(i))), XBn(c, s))) : r < f ? -1 : 1; + } + function pPe(n, e, t) { + var i, r, c, s, f, h, l, a; + for (t.Ug(CXn, 1), n.vf(e), c = 0; n.xf(c) && !t.$g(); ) { + for (n.wf(), a = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [e.e, e.d, e.b]))); pe(a); ) + for (h = u(fe(a), 309), f = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [e.e, e.d, e.b]))); pe(f); ) + s = u(fe(f), 309), s != h && (r = n.uf(s, h), r && tt(h.c, r)); + for (l = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [e.e, e.d, e.b]))); pe(l); ) + h = u(fe(l), 309), i = h.c, o_n(i, -n.d, -n.d, n.d, n.d), tt(h.d, i), i.a = 0, i.b = 0; + ++c; + } + t.Vg(); + } + function mPe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p; + if (n.dc()) + return new Ni(); + for (l = 0, d = 0, r = n.Kc(); r.Ob(); ) + i = u(r.Pb(), 36), c = i.f, l = y.Math.max(l, c.a), d += c.a * c.b; + for (l = y.Math.max(l, y.Math.sqrt(d) * $(R(v(u(n.Kc().Pb(), 36), (cn(), oI))))), g = 0, p = 0, h = 0, t = e, f = n.Kc(); f.Ob(); ) + s = u(f.Pb(), 36), a = s.f, g + a.a > l && (g = 0, p += h + e, h = 0), Am(s, g, p), t = y.Math.max(t, g + a.a), h = y.Math.max(h, a.b), g += a.a + e; + return new V(t + e, p + h + e); + } + function Ren(n, e) { + var t, i, r, c, s, f, h; + if (!Af(n)) + throw M(new Ir(eWn)); + if (i = Af(n), c = i.g, r = i.f, c <= 0 && r <= 0) + return en(), sc; + switch (f = n.i, h = n.j, e.g) { + case 2: + case 1: + if (f < 0) + return en(), Wn; + if (f + n.g > c) + return en(), Zn; + break; + case 4: + case 3: + if (h < 0) + return en(), Xn; + if (h + n.f > r) + return en(), ae; + } + return s = (f + n.g / 2) / c, t = (h + n.f / 2) / r, s + t <= 1 && s - t <= 0 ? (en(), Wn) : s + t >= 1 && s - t >= 0 ? (en(), Zn) : t < 0.5 ? (en(), Xn) : (en(), ae); + } + function vPe(n, e, t, i, r) { + var c, s; + if (c = Zi(ki(e[0], vr), ki(i[0], vr)), n[0] = Ae(c), c = g0(c, 32), t >= r) { + for (s = 1; s < r; s++) + c = Zi(c, Zi(ki(e[s], vr), ki(i[s], vr))), n[s] = Ae(c), c = g0(c, 32); + for (; s < t; s++) + c = Zi(c, ki(e[s], vr)), n[s] = Ae(c), c = g0(c, 32); + } else { + for (s = 1; s < t; s++) + c = Zi(c, Zi(ki(e[s], vr), ki(i[s], vr))), n[s] = Ae(c), c = g0(c, 32); + for (; s < r; s++) + c = Zi(c, ki(i[s], vr)), n[s] = Ae(c), c = g0(c, 32); + } + Cc(c, 0) != 0 && (n[s] = Ae(c)); + } + function ww(n) { + nt(); + var e, t, i, r, c, s; + if (n.e != 4 && n.e != 5) + throw M(new Gn("Token#complementRanges(): must be RANGE: " + n.e)); + for (c = n, Gg(c), z5(c), i = c.b.length + 2, c.b[0] == 0 && (i -= 2), t = c.b[c.b.length - 1], t == rv && (i -= 2), r = new yo(4), r.b = K(ye, _e, 28, i, 15, 1), s = 0, c.b[0] > 0 && (r.b[s++] = 0, r.b[s++] = c.b[0] - 1), e = 1; e < c.b.length - 2; e += 2) + r.b[s++] = c.b[e] + 1, r.b[s++] = c.b[e + 1] - 1; + return t != rv && (r.b[s++] = t + 1, r.b[s] = rv), r.a = !0, r; + } + function kPe(n, e) { + var t, i, r, c, s, f, h, l, a; + for (e.Ug("Layer constraint edge reversal", 1), s = new C(n.b); s.a < s.c.c.length; ) { + for (c = u(E(s), 30), a = -1, t = new Z(), l = Y7(c.a), r = 0; r < l.length; r++) + i = u(v(l[r], (W(), Dd)), 311), a == -1 ? i != (vl(), k2) && (a = r) : i == (vl(), k2) && (xi(l[r], null), ow(l[r], a++, c)), i == (vl(), E3) && Kn(t.c, l[r]); + for (h = new C(t); h.a < h.c.c.length; ) + f = u(E(h), 10), xi(f, null), xi(f, c); + } + e.Vg(); + } + function DF(n, e, t) { + var i, r, c, s, f, h, l, a; + if (i = t.gc(), i == 0) + return !1; + if (n.Pj()) + if (l = n.Qj(), Zx(n, e, t), s = i == 1 ? n.Ij(3, null, t.Kc().Pb(), e, l) : n.Ij(5, null, t, e, l), n.Mj()) { + for (f = i < 100 ? null : new F1(i), c = e + i, r = e; r < c; ++r) + a = n.g[r], f = n.Nj(a, f), f = n.Uj(a, f); + f ? (f.nj(s), f.oj()) : n.Jj(s); + } else + n.Jj(s); + else if (Zx(n, e, t), n.Mj()) { + for (f = i < 100 ? null : new F1(i), c = e + i, r = e; r < c; ++r) + h = n.g[r], f = n.Nj(h, f); + f && f.oj(); + } + return !0; + } + function yPe(n, e) { + var t, i, r, c, s, f, h, l, a; + for (e.Ug("Hierarchical port dummy size processing", 1), h = new Z(), a = new Z(), i = $(R(v(n, (cn(), M2)))), t = i * 2, c = new C(n.b); c.a < c.c.c.length; ) { + for (r = u(E(c), 30), h.c.length = 0, a.c.length = 0, f = new C(r.a); f.a < f.c.c.length; ) + s = u(E(f), 10), s.k == (Vn(), ni) && (l = u(v(s, (W(), gc)), 64), l == (en(), Xn) ? Kn(h.c, s) : l == ae && Kn(a.c, s)); + gHn(h, !0, t), gHn(a, !1, t); + } + e.Vg(); + } + function Ken(n, e, t, i) { + var r, c, s, f, h; + for (s = new C(n.k); s.a < s.c.c.length; ) + r = u(E(s), 132), (!i || r.c == (af(), Ea)) && (h = r.b, h.g < 0 && r.d > 0 && (JO(h, h.d - r.d), r.c == (af(), Ea) && ife(h, h.a - r.d), h.d <= 0 && h.i > 0 && xt(e, h, e.c.b, e.c))); + for (c = new C(n.f); c.a < c.c.c.length; ) + r = u(E(c), 132), (!i || r.c == (af(), Ea)) && (f = r.a, f.g < 0 && r.d > 0 && (SE(f, f.i - r.d), r.c == (af(), Ea) && rfe(f, f.b - r.d), f.i <= 0 && f.d > 0 && xt(t, f, t.c.b, t.c))); + } + function jPe(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p; + for (Dn(), Zt(n, new Jmn()), s = $7(n), p = new Z(), g = new Z(), f = null, h = 0; s.b != 0; ) + c = u(s.b == 0 ? null : (oe(s.b != 0), Xo(s, s.a.a)), 163), !f || Au(f) * ao(f) / 2 < Au(c) * ao(c) ? (f = c, Kn(p.c, c)) : (h += Au(c) * ao(c), Kn(g.c, c), g.c.length > 1 && (h > Au(f) * ao(f) / 2 || s.b == 0) && (d = new hT(g), a = Au(f) / ao(f), l = QF(d, e, new up(), t, i, r, a), tt(ff(d.e), l), f = d, Kn(p.c, d), h = 0, g.c.length = 0)); + return li(p, g), p; + } + function Oc(n, e, t, i, r) { + fl(); + var c, s, f, h, l, a, d; + if (PW(n, "src"), PW(t, "dest"), d = wo(n), h = wo(t), VV((d.i & 4) != 0, "srcType is not an array"), VV((h.i & 4) != 0, "destType is not an array"), a = d.c, s = h.c, VV(a.i & 1 ? a == s : (s.i & 1) == 0, "Array types don't match"), s6e(n, e, t, i, r), !(a.i & 1) && d != h) + if (l = ud(n), c = ud(t), x(n) === x(t) && e < i) + for (e += r, f = i + r; f-- > i; ) + $t(c, f, l[--e]); + else + for (f = i + r; i < f; ) + $t(c, i++, l[e++]); + else + Bnn(n, e, t, i, r, !0); + } + function BUn(n, e) { + var t, i, r, c, s, f, h, l, a; + switch (e.Ug("Box layout", 2), r = J9(R(z(n, (mA(), Tue)))), c = u(z(n, Mue), 107), t = on(un(z(n, lan))), i = on(un(z(n, aan))), u(z(n, Wq), 320).g) { + case 0: + s = (a = new Ru((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)), Dn(), Zt(a, new Lkn(i)), a), f = jnn(n), h = R(z(n, han)), (h == null || (Jn(h), h <= 0)) && (h = 1.3), l = nLe(s, r, c, f.a, f.b, t, (Jn(h), h)), z0(n, l.a, l.b, !1, !0); + break; + default: + zIe(n, r, c, t); + } + e.Vg(); + } + function EPe(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m; + for (g = Vke(n, t), h = 0; h < e; h++) { + for (Kb(r, t), p = new Z(), m = (oe(i.b < i.d.gc()), u(i.d.Xb(i.c = i.b++), 418)), a = g + h; a < n.b; a++) + f = m, m = (oe(i.b < i.d.gc()), u(i.d.Xb(i.c = i.b++), 418)), nn(p, new dqn(f, m, t)); + for (d = g + h; d < n.b; d++) + oe(i.b > 0), i.a.Xb(i.c = --i.b), d > g + h && bo(i); + for (s = new C(p); s.a < s.c.c.length; ) + c = u(E(s), 418), Kb(i, c); + if (h < e - 1) + for (l = g + h; l < n.b; l++) + oe(i.b > 0), i.a.Xb(i.c = --i.b); + } + } + function CPe() { + nt(); + var n, e, t, i, r, c; + if (OU) + return OU; + for (n = new yo(4), pw(n, sa(FK, !0)), V5(n, sa("M", !0)), V5(n, sa("C", !0)), c = new yo(4), i = 0; i < 11; i++) + Fc(c, i, i); + return e = new yo(4), pw(e, sa("M", !0)), Fc(e, 4448, 4607), Fc(e, 65438, 65439), r = new S6(2), md(r, n), md(r, K9), t = new S6(2), t.Jm(uM(c, sa("L", !0))), t.Jm(e), t = new Vb(3, t), t = new SW(r, t), OU = t, OU; + } + function gw(n, e) { + var t, i, r, c, s, f, h, l; + for (t = new RegExp(e, "g"), h = K(fn, J, 2, 0, 6, 1), i = 0, l = n, c = null; ; ) + if (f = t.exec(l), f == null || l == "") { + h[i] = l; + break; + } else + s = f.index, h[i] = (Bi(0, s, l.length), l.substr(0, s)), l = qo(l, s + f[0].length, l.length), t.lastIndex = 0, c == l && (h[i] = (Bi(0, 1, l.length), l.substr(0, 1)), l = (zn(1, l.length + 1), l.substr(1))), c = l, ++i; + if (n.length > 0) { + for (r = h.length; r > 0 && h[r - 1] == ""; ) + --r; + r < h.length && (h.length = r); + } + return h; + } + function lc() { + lc = F, Oln = new h0(20), Iln = new $i((He(), M1), Oln), fq = new $i(Ud, 20), Lln = new $i(Gan, 3), yre = new $i(x2, Um), FI = new $i(Jj, Y(1)), Ire = new $i(hU, (_n(), !0)), Tln = zj, Aln = (ui(), Wf), kb = new $i(Hd, Aln), jre = Vj, Ere = tU, Mre = qd, Tre = Ww, Are = _2, Sre = Ta, Cre = K2, Pln = Wj, Pre = Jw, $ln = (qnn(), kre), Dln = mre, Lre = k9, Nre = cO, Dre = Qj, Ore = rO, Nln = (Gp(), Zw), new $i(x3, Nln), O2 = pre, sq = gre, Ah = vre, Mln = bre, Sln = wre; + } + function MPe(n) { + var e, t; + if (e = Oe(z(n, (He(), Nv))), !Fxn(e, n) && !Df(n, q2) && ((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a).i != 0 || on(un(z(n, Xj))))) + if (e == null || hw(e).length == 0) { + if (!Fxn(Yn, n)) + throw t = Re(Re(new mo("Unable to load default layout algorithm "), Yn), " for unconfigured node "), GA(n, t), M(new Hl(t.a)); + } else + throw t = Re(Re(new mo("Layout algorithm '"), e), "' not found for "), GA(n, t), M(new Hl(t.a)); + } + function LF(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p; + if (t = n.i, e = n.n, n.b == 0) + for (p = t.c + e.b, g = t.b - e.b - e.c, s = n.a, h = 0, a = s.length; h < a; ++h) + r = s[h], hM(r, p, g); + else + i = SRn(n, !1), hM(n.a[0], t.c + e.b, i[0]), hM(n.a[2], t.c + t.b - e.c - i[2], i[2]), d = t.b - e.b - e.c, i[0] > 0 && (d -= i[0] + n.c, i[0] += n.c), i[2] > 0 && (d -= i[2] + n.c), i[1] = y.Math.max(i[1], d), hM(n.a[1], t.c + e.b + i[0] - (i[1] - d) / 2, i[1]); + for (c = n.a, f = 0, l = c.length; f < l; ++f) + r = c[f], D(r, 336) && u(r, 336).lf(); + } + function TPe(n) { + var e, t, i, r, c, s, f, h, l, a, d; + for (d = new C3n(), d.d = 0, s = new C(n.b); s.a < s.c.c.length; ) + c = u(E(s), 30), d.d += c.a.c.length; + for (i = 0, r = 0, d.a = K(ye, _e, 28, n.b.c.length, 15, 1), l = 0, a = 0, d.e = K(ye, _e, 28, d.d, 15, 1), t = new C(n.b); t.a < t.c.c.length; ) + for (e = u(E(t), 30), e.p = i++, d.a[e.p] = r++, a = 0, h = new C(e.a); h.a < h.c.c.length; ) + f = u(E(h), 10), f.p = l++, d.e[f.p] = a++; + return d.c = new ukn(d), d.b = Oh(d.d), GSe(d, n), d.f = Oh(d.d), zSe(d, n), d; + } + function RUn(n, e) { + var t, i, r, c; + for (c = u(sn(n.n, n.n.c.length - 1), 209).d, n.p = y.Math.min(n.p, e.g), n.r = y.Math.max(n.r, c), n.g = y.Math.max(n.g, e.g + (n.b.c.length == 1 ? 0 : n.i)), n.o = y.Math.min(n.o, e.f), n.e += e.f + (n.b.c.length == 1 ? 0 : n.i), n.f = y.Math.max(n.f, e.f), r = n.n.c.length > 0 ? (n.n.c.length - 1) * n.i : 0, i = new C(n.n); i.a < i.c.c.length; ) + t = u(E(i), 209), r += t.a; + n.d = r, n.a = n.e / n.b.c.length - n.i * ((n.b.c.length - 1) / n.b.c.length), kZ(n.j); + } + function KUn(n, e) { + var t, i, r, c, s, f, h, l, a, d; + if (a = un(v(e, (Us(), eZn))), a == null || (Jn(a), a)) { + for (d = K(oo, zh, 28, e.e.c.length, 16, 1), s = dCe(e), r = new Ct(), l = new C(e.e); l.a < l.c.c.length; ) + f = u(E(l), 153), t = Znn(n, f, null, null, d, s), t && (Ur(t, e), xt(r, t, r.c.b, r.c)); + if (r.b > 1) + for (i = ge(r, 0); i.b != i.d.c; ) + for (t = u(be(i), 235), c = 0, h = new C(t.e); h.a < h.c.c.length; ) + f = u(E(h), 153), f.a = c++; + return r; + } + return If(A(T(mNe, 1), jXn, 235, 0, [e])); + } + function dh(n) { + var e, t, i, r, c, s, f; + if (!n.g) { + if (f = new qO(), e = N9, s = e.a.zc(n, e), s == null) { + for (i = new ne(Hr(n)); i.e != i.i.gc(); ) + t = u(ue(i), 29), Kt(f, dh(t)); + e.a.Bc(n) != null, e.a.gc() == 0; + } + for (r = f.i, c = (!n.s && (n.s = new q(vu, n, 21, 17)), new ne(n.s)); c.e != c.i.gc(); ++r) + afe(u(ue(c), 462), r); + Kt(f, (!n.s && (n.s = new q(vu, n, 21, 17)), n.s)), tw(f), n.g = new bFn(n, f), n.i = u(f.g, 254), n.i == null && (n.i = CU), n.p = null, Yu(n).b &= -5; + } + return n.g; + } + function APe(n, e) { + var t, i, r, c, s, f, h, l, a; + if (t = e.qi(n.a), t && (h = Oe(gf((!t.b && (t.b = new lo((On(), lr), pc, t)), t.b), "memberTypes")), h != null)) { + for (l = new Z(), c = gw(h, "\\w"), s = 0, f = c.length; s < f; ++s) + r = c[s], i = r.lastIndexOf("#"), a = i == -1 ? iV(n, e.jk(), r) : i == 0 ? ok(n, null, (zn(1, r.length + 1), r.substr(1))) : ok(n, (Bi(0, i, r.length), r.substr(0, i)), (zn(i + 1, r.length + 1), r.substr(i + 1))), D(a, 156) && nn(l, u(a, 156)); + return l; + } + return Dn(), Dn(), or; + } + function NF(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m; + if (i = n.i, t = n.n, n.b == 0) + e = ARn(n, !1), lM(n.a[0], i.d + t.d, e[0]), lM(n.a[2], i.d + i.a - t.a - e[2], e[2]), g = i.a - t.d - t.a, d = g, e[0] > 0 && (e[0] += n.c, d -= e[0]), e[2] > 0 && (d -= e[2] + n.c), e[1] = y.Math.max(e[1], d), lM(n.a[1], i.d + t.d + e[0] - (e[1] - d) / 2, e[1]); + else + for (m = i.d + t.d, p = i.a - t.d - t.a, s = n.a, h = 0, a = s.length; h < a; ++h) + r = s[h], lM(r, m, p); + for (c = n.a, f = 0, l = c.length; f < l; ++f) + r = c[f], D(r, 336) && u(r, 336).mf(); + } + function SPe(n) { + var e, t, i, r, c, s, f, h, l, a; + for (a = K(ye, _e, 28, n.b.c.length + 1, 15, 1), l = new ei(), i = 0, c = new C(n.b); c.a < c.c.c.length; ) { + for (r = u(E(c), 30), a[i++] = l.a.gc(), h = new C(r.a); h.a < h.c.c.length; ) + for (s = u(E(h), 10), t = new ie(ce(Qt(s).a.Kc(), new En())); pe(t); ) + e = u(fe(t), 18), l.a.zc(e, l); + for (f = new C(r.a); f.a < f.c.c.length; ) + for (s = u(E(f), 10), t = new ie(ce(Ei(s).a.Kc(), new En())); pe(t); ) + e = u(fe(t), 18), l.a.Bc(e) != null; + } + return a; + } + function RA(n, e, t, i) { + var r, c, s, f, h; + if (h = ru(n.e.Dh(), e), r = u(n.g, 124), dr(), u(e, 69).xk()) { + for (s = 0; s < n.i; ++s) + if (c = r[s], h.am(c.Lk()) && rt(c, t)) + return !0; + } else if (t != null) { + for (f = 0; f < n.i; ++f) + if (c = r[f], h.am(c.Lk()) && rt(t, c.md())) + return !0; + if (i) { + for (s = 0; s < n.i; ++s) + if (c = r[s], h.am(c.Lk()) && x(t) === x(IL(n, u(c.md(), 58)))) + return !0; + } + } else + for (s = 0; s < n.i; ++s) + if (c = r[s], h.am(c.Lk()) && c.md() == null) + return !1; + return !1; + } + function PPe(n, e) { + var t, i, r, c, s, f; + if (t = e.qi(n.a), t && (f = Oe(gf((!t.b && (t.b = new lo((On(), lr), pc, t)), t.b), KS)), f != null)) + switch (r = FC(f, bu(35)), i = e.qk(), r == -1 ? (s = R6(n, jo(i)), c = f) : r == 0 ? (s = null, c = (zn(1, f.length + 1), f.substr(1))) : (s = (Bi(0, r, f.length), f.substr(0, r)), c = (zn(r + 1, f.length + 1), f.substr(r + 1))), j0(Dr(n, e))) { + case 2: + case 3: + return f6e(n, i, s, c); + case 0: + case 4: + case 5: + case 6: + return h6e(n, i, s, c); + } + return null; + } + function _Un(n, e, t, i) { + var r, c, s, f; + for (f = t, s = new C(e.a); s.a < s.c.c.length; ) { + if (c = u(E(s), 225), r = u(c.b, 68), F0(n.b.c, r.b.c + r.b.b) <= 0 && F0(r.b.c, n.b.c + n.b.b) <= 0 && F0(n.b.d, r.b.d + r.b.a) <= 0 && F0(r.b.d, n.b.d + n.b.a) <= 0) { + if (F0(r.b.c, n.b.c + n.b.b) == 0 && i.a < 0 || F0(r.b.c + r.b.b, n.b.c) == 0 && i.a > 0 || F0(r.b.d, n.b.d + n.b.a) == 0 && i.b < 0 || F0(r.b.d + r.b.a, n.b.d) == 0 && i.b > 0) { + f = 0; + break; + } + } else + f = y.Math.min(f, x_n(n, r, i)); + f = y.Math.min(f, _Un(n, c, f, i)); + } + return f; + } + function dy(n, e) { + var t, i, r, c, s, f, h; + if (n.b < 2) + throw M(new Gn("The vector chain must contain at least a source and a target point.")); + for (r = (oe(n.b != 0), u(n.a.a.c, 8)), j7(e, r.a, r.b), h = new kp((!e.a && (e.a = new ii(xo, e, 5)), e.a)), s = ge(n, 1); s.a < n.b - 1; ) + f = u(be(s), 8), h.e != h.i.gc() ? t = u(ue(h), 377) : (t = (B1(), i = new yE(), i), OBn(h, t)), gL(t, f.a, f.b); + for (; h.e != h.i.gc(); ) + ue(h), O5(h); + c = (oe(n.b != 0), u(n.c.b.c, 8)), y7(e, c.a, c.b); + } + function HUn(n, e, t, i) { + var r, c, s, f, h, l; + if (l = ru(n.e.Dh(), e), s = u(n.g, 124), Sl(n.e, e)) { + if (e.Si() && (c = Im(n, e, i, D(e, 102) && (u(e, 19).Bb & fr) != 0), c >= 0 && c != t)) + throw M(new Gn(Vy)); + for (r = 0, h = 0; h < n.i; ++h) + if (f = s[h], l.am(f.Lk())) { + if (r == t) + return u(Rg(n, h, (dr(), u(e, 69).xk() ? u(i, 76) : xh(e, i))), 76); + ++r; + } + throw M(new Pr(p8 + t + Ad + r)); + } else { + for (h = 0; h < n.i; ++h) + if (f = s[h], l.am(f.Lk())) + return dr(), u(e, 69).xk() ? f : f.md(); + return null; + } + } + function qUn(n, e) { + var t, i, r, c, s, f, h, l, a; + for (t = 0, r = new C((Ln(0, n.c.length), u(n.c[0], 105)).g.b.j); r.a < r.c.c.length; ) + i = u(E(r), 12), i.p = t++; + for (e == (en(), Xn) ? Zt(n, new Tpn()) : Zt(n, new Apn()), f = 0, a = n.c.length - 1; f < a; ) + s = (Ln(f, n.c.length), u(n.c[f], 105)), l = (Ln(a, n.c.length), u(n.c[a], 105)), c = e == Xn ? s.c : s.a, h = e == Xn ? l.a : l.c, Wl(s, e, ($f(), lv), c), Wl(l, e, hv, h), ++f, --a; + f == a && Wl((Ln(f, n.c.length), u(n.c[f], 105)), e, ($f(), j3), null); + } + function IPe(n, e, t, i) { + var r, c, s, f, h, l; + for (s = new kGn(n, e, t), h = new Fi(i, 0), r = !1; h.b < h.d.gc(); ) + f = (oe(h.b < h.d.gc()), u(h.d.Xb(h.c = h.b++), 239)), f == e || f == t ? bo(h) : !r && $(Tf(f.g, f.d[0]).a) > $(Tf(s.g, s.d[0]).a) ? (oe(h.b > 0), h.a.Xb(h.c = --h.b), Kb(h, s), r = !0) : f.e && f.e.gc() > 0 && (c = (!f.e && (f.e = new Z()), f.e).Mc(e), l = (!f.e && (f.e = new Z()), f.e).Mc(t), (c || l) && ((!f.e && (f.e = new Z()), f.e).Fc(s), ++s.c)); + r || Kn(i.c, s); + } + function OPe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S; + return d = n.a.i + n.a.g / 2, g = n.a.i + n.a.g / 2, m = e.i + e.g / 2, j = e.j + e.f / 2, f = new V(m, j), l = u(z(e, (He(), N3)), 8), l.a = l.a + d, l.b = l.b + g, c = (f.b - l.b) / (f.a - l.a), i = f.b - c * f.a, k = t.i + t.g / 2, S = t.j + t.f / 2, h = new V(k, S), a = u(z(t, N3), 8), a.a = a.a + d, a.b = a.b + g, s = (h.b - a.b) / (h.a - a.a), r = h.b - s * h.a, p = (i - r) / (s - c), l.a < p && f.a < p || p < l.a && p < f.a ? !1 : !(a.a < p && h.a < p || p < a.a && p < h.a); + } + function DPe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p; + if (g = u(ee(n.c, e), 190), !g) + throw M(new nh("Edge did not exist in input.")); + return l = bm(g), c = Z9((!e.a && (e.a = new q(Mt, e, 6, 6)), e.a)), f = !c, f && (p = new Ha(), t = new kSn(n, l, p), yle((!e.a && (e.a = new q(Mt, e, 6, 6)), e.a), t), bf(g, Scn, p)), r = Df(e, (He(), yb)), r && (a = u(z(e, yb), 75), s = !a || oIn(a), h = !s, h && (d = new Ha(), i = new iyn(d), qi(a, i), bf(g, "junctionPoints", d))), y4(g, "container", V7(e).k), null; + } + function UUn(n, e, t, i) { + var r, c, s, f, h, l; + if (!L4(e)) { + if (l = t.eh((D(e, 16) ? u(e, 16).gc() : wl(e.Kc())) / n.a | 0), l.Ug(dVn, 1), h = new h4n(), f = 0, i == (ui(), Fr) || i == Xr) + for (s = e.Kc(); s.Ob(); ) + r = u(s.Pb(), 40), h = Eo(A(T(Oo, 1), Bn, 20, 0, [h, new sl(r)])), f < r.f.a && (f = r.f.a); + else + for (s = e.Kc(); s.Ob(); ) + r = u(s.Pb(), 40), h = Eo(A(T(Oo, 1), Bn, 20, 0, [h, new sl(r)])), f < r.f.b && (f = r.f.b); + for (c = e.Kc(); c.Ob(); ) + r = u(c.Pb(), 40), U(r, (pt(), xI), f); + l.Vg(), UUn(n, h, t, i); + } + } + function _en(n, e, t) { + var i, r, c, s, f, h, l, a; + this.a = n, this.b = e, this.c = t, this.e = If(A(T(wNe, 1), Bn, 177, 0, [new bp(n, e), new bp(e, t), new bp(t, n)])), this.f = If(A(T(Ci, 1), J, 8, 0, [n, e, t])), this.d = (i = vi(Ki(this.b), this.a), r = vi(Ki(this.c), this.a), c = vi(Ki(this.c), this.b), s = i.a * (this.a.a + this.b.a) + i.b * (this.a.b + this.b.b), f = r.a * (this.a.a + this.c.a) + r.b * (this.a.b + this.c.b), h = 2 * (i.a * c.b - i.b * c.a), l = (r.b * s - i.b * f) / h, a = (i.a * f - r.a * s) / h, new V(l, a)); + } + function G0(n, e) { + var t, i, r, c, s, f; + for (c = n.c, s = n.d, Yi(n, null), Di(n, null), e && on(un(v(s, (W(), aH)))) ? Yi(n, Nen(s.i, (pr(), Qc), (en(), Zn))) : Yi(n, s), e && on(un(v(c, (W(), bH)))) ? Di(n, Nen(c.i, (pr(), zu), (en(), Wn))) : Di(n, c), i = new C(n.b); i.a < i.c.c.length; ) + t = u(E(i), 72), r = u(v(t, (cn(), Th)), 278), r == (Nf(), Fv) ? U(t, Th, Qw) : r == Qw && U(t, Th, Fv); + f = on(un(v(n, (W(), Gf)))), U(n, Gf, (_n(), !f)), n.a = Sk(n.a); + } + function LPe(n, e) { + var t, i, r, c, s; + return t = gm(u(v(e, (lc(), kb)), 88)), n.b.b == 0 ? null : (s = u(Wr(_r(new Tn(null, new In(n.b, 16)), new W3n()), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), c = u(Wr(ut(new Tn(null, new In(e.b, 16)), new skn(s)), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [Yr]))), 15), r = R(ho(Hb(_r(c.Oc(), new fkn(t)), (E0(), E0(), ZK)))), i = u(ho(tm(ut(c.Oc(), new nMn(t, r)))), 40), i); + } + function NPe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j; + t = l0(new Xa(), n.f), l = n.i[e.c.i.p], p = n.i[e.d.i.p], h = e.c, g = e.d, f = h.a.b, d = g.a.b, l.b || (f += h.n.b), p.b || (d += g.n.b), a = gi(y.Math.max(0, f - d)), s = gi(y.Math.max(0, d - f)), m = (k = y.Math.max(1, u(v(e, (cn(), I3)), 17).a), j = MJ(e.c.i.k, e.d.i.k), k * j), r = qs(Ls(Ds(Os(Ns(new hs(), m), s), t), u(ee(n.k, e.c), 125))), c = qs(Ls(Ds(Os(Ns(new hs(), m), a), t), u(ee(n.k, e.d), 125))), i = new qCn(r, c), n.c[e.p] = i; + } + function $Pe(n, e, t) { + var i, r, c, s, f, h; + for (i = 0, c = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); c.e != c.i.gc(); ) + r = u(ue(c), 27), s = "", (!r.n && (r.n = new q(Sr, r, 1, 7)), r.n).i == 0 || (s = u(L((!r.n && (r.n = new q(Sr, r, 1, 7)), r.n), 0), 135).a), f = new vTn(s), Ur(f, r), U(f, (Q1(), y3), r), f.a = i++, f.d.a = r.i + r.g / 2, f.d.b = r.j + r.f / 2, f.e.a = y.Math.max(r.g, 1), f.e.b = y.Math.max(r.f, 1), nn(e.e, f), Wc(t.f, r, f), h = u(z(r, (Us(), von)), 101), h == (Li(), Pa) && (h = Jf); + } + function xPe(n, e) { + var t, i, r, c, s, f, h; + e.Ug("Layer constraint postprocessing", 1), h = n.b, h.c.length != 0 && (i = (Ln(0, h.c.length), u(h.c[0], 30)), s = u(sn(h, h.c.length - 1), 30), t = new Nc(n), c = new Nc(n), ESe(n, i, s, t, c), t.a.c.length == 0 || (Xb(0, h.c.length), d6(h.c, 0, t)), c.a.c.length == 0 || Kn(h.c, c)), kt(n, (W(), lH)) && (r = new Nc(n), f = new Nc(n), bAe(n, r, f), r.a.c.length == 0 || (Xb(0, h.c.length), d6(h.c, 0, r)), f.a.c.length == 0 || Kn(h.c, f)), e.Vg(); + } + function by(n) { + var e, t, i; + switch (n) { + case 91: + case 93: + case 45: + case 94: + case 44: + case 92: + i = "\\" + String.fromCharCode(n & oi); + break; + case 12: + i = "\\f"; + break; + case 10: + i = "\\n"; + break; + case 13: + i = "\\r"; + break; + case 9: + i = "\\t"; + break; + case 27: + i = "\\e"; + break; + default: + n < 32 ? (t = (e = n >>> 0, "0" + e.toString(16)), i = "\\x" + qo(t, t.length - 2, t.length)) : n >= fr ? (t = (e = n >>> 0, "0" + e.toString(16)), i = "\\v" + qo(t, t.length - 6, t.length)) : i = "" + String.fromCharCode(n & oi); + } + return i; + } + function GUn(n) { + var e, t, i; + if (mg(u(v(n, (cn(), Ht)), 101))) + for (t = new C(n.j); t.a < t.c.c.length; ) + e = u(E(t), 12), e.j == (en(), sc) && (i = u(v(e, (W(), Gu)), 10), i ? pi(e, u(v(i, gc), 64)) : e.e.c.length - e.g.c.length < 0 ? pi(e, Zn) : pi(e, Wn)); + else { + for (t = new C(n.j); t.a < t.c.c.length; ) + e = u(E(t), 12), i = u(v(e, (W(), Gu)), 10), i ? pi(e, u(v(i, gc), 64)) : e.e.c.length - e.g.c.length < 0 ? pi(e, (en(), Zn)) : pi(e, (en(), Wn)); + U(n, Ht, (Li(), Rv)); + } + } + function Hen(n) { + var e, t, i, r, c, s; + for (this.e = new Z(), this.a = new Z(), t = n.b - 1; t < 3; t++) + w4(n, 0, u(Zo(n, 0), 8)); + if (n.b < 4) + throw M(new Gn("At (least dimension + 1) control points are necessary!")); + for (this.b = 3, this.d = !0, this.c = !1, hMe(this, n.b + this.b - 1), s = new Z(), c = new C(this.e), e = 0; e < this.b - 1; e++) + nn(s, R(E(c))); + for (r = ge(n, 0); r.b != r.d.c; ) + i = u(be(r), 8), nn(s, R(E(c))), nn(this.a, new iOn(i, s)), Ln(0, s.c.length), s.c.splice(0, 1); + } + function zUn(n, e) { + var t, i, r, c, s, f, h, l, a; + for (c = new C(n.b); c.a < c.c.c.length; ) + for (r = u(E(c), 30), f = new C(r.a); f.a < f.c.c.length; ) + for (s = u(E(f), 10), s.k == (Vn(), Sc) && (h = (l = u(fe(new ie(ce(Ei(s).a.Kc(), new En()))), 18), a = u(fe(new ie(ce(Qt(s).a.Kc(), new En()))), 18), !on(un(v(l, (W(), Gf)))) || !on(un(v(a, Gf))) ? e : sFn(e)), t3(s, h)), i = new ie(ce(Qt(s).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 18), h = on(un(v(t, (W(), Gf)))) ? sFn(e) : e, eFn(t, h); + } + function FPe(n, e, t, i, r) { + var c, s, f; + if (t.f >= e.o && t.f <= e.f || e.a * 0.5 <= t.f && e.a * 1.5 >= t.f) { + if (s = u(sn(e.n, e.n.c.length - 1), 209), s.e + s.d + t.g + r <= i && (c = u(sn(e.n, e.n.c.length - 1), 209), c.f - n.f + t.f <= n.b || n.a.c.length == 1)) + return xY(e, t), !0; + if (e.s + t.g <= i && (e.t + e.d + t.f + r <= n.b || n.a.c.length == 1)) + return nn(e.b, t), f = u(sn(e.n, e.n.c.length - 1), 209), nn(e.n, new NM(e.s, f.f + f.a + e.i, e.i)), gZ(u(sn(e.n, e.n.c.length - 1), 209), t), RUn(e, t), !0; + } + return !1; + } + function XUn(n, e, t) { + var i, r, c, s; + return n.Pj() ? (r = null, c = n.Qj(), i = n.Ij(1, s = d$(n, e, t), t, e, c), n.Mj() && !(n.Yi() && s != null ? rt(s, t) : x(s) === x(t)) ? (s != null && (r = n.Oj(s, r)), r = n.Nj(t, r), n.Tj() && (r = n.Wj(s, t, r)), r ? (r.nj(i), r.oj()) : n.Jj(i)) : (n.Tj() && (r = n.Wj(s, t, r)), r ? (r.nj(i), r.oj()) : n.Jj(i)), s) : (s = d$(n, e, t), n.Mj() && !(n.Yi() && s != null ? rt(s, t) : x(s) === x(t)) && (r = null, s != null && (r = n.Oj(s, null)), r = n.Nj(t, r), r && r.oj()), s); + } + function BPe(n, e) { + var t, i, r, c, s; + if (e.Ug("Path-Like Graph Wrapping", 1), n.b.c.length == 0) { + e.Vg(); + return; + } + if (r = new znn(n), s = (r.i == null && (r.i = FQ(r, new VU())), $(r.i) * r.f), t = s / (r.i == null && (r.i = FQ(r, new VU())), $(r.i)), r.b > t) { + e.Vg(); + return; + } + switch (u(v(n, (cn(), LH)), 351).g) { + case 2: + c = new JU(); + break; + case 0: + c = new XU(); + break; + default: + c = new QU(); + } + if (i = c.og(n, r), !c.pg()) + switch (u(v(n, jI), 352).g) { + case 2: + i = F_n(r, i); + break; + case 1: + i = SKn(r, i); + } + NIe(n, r, i), e.Vg(); + } + function H5(n, e) { + var t, i, r, c, s, f, h, l; + e %= 24, n.q.getHours() != e && (i = new y.Date(n.q.getTime()), i.setDate(i.getDate() + 1), f = n.q.getTimezoneOffset() - i.getTimezoneOffset(), f > 0 && (h = f / 60 | 0, l = f % 60, r = n.q.getDate(), t = n.q.getHours(), t + h >= 24 && ++r, c = new y.Date(n.q.getFullYear(), n.q.getMonth(), r, e + h, n.q.getMinutes() + l, n.q.getSeconds(), n.q.getMilliseconds()), n.q.setTime(c.getTime()))), s = n.q.getTime(), n.q.setTime(s + 36e5), n.q.getHours() != e && n.q.setTime(s); + } + function RPe(n, e) { + var t, i, r, c; + if (Y2e(n.d, n.e), n.c.a.$b(), $(R(v(e.j, (cn(), hI)))) != 0 || $(R(v(e.j, hI))) != 0) + for (t = i2, x(v(e.j, Qh)) !== x((hh(), y1)) && U(e.j, (W(), ka), (_n(), !0)), c = u(v(e.j, V8), 17).a, r = 0; r < c && (i = ZPe(n, e), !(i < t && (t = i, mxn(n), t == 0))); r++) + ; + else + for (t = et, x(v(e.j, Qh)) !== x((hh(), y1)) && U(e.j, (W(), ka), (_n(), !0)), c = u(v(e.j, V8), 17).a, r = 0; r < c && (i = YUn(n, e), !(i < t && (t = i, mxn(n), t == 0))); r++) + ; + } + function KPe(n, e) { + var t, i, r, c, s, f, h, l; + for (s = new Z(), f = 0, t = 0, h = 0; f < e.c.length - 1 && t < n.gc(); ) { + for (i = u(n.Xb(t), 17).a + h; (Ln(f + 1, e.c.length), u(e.c[f + 1], 17)).a < i; ) + ++f; + for (l = 0, c = i - (Ln(f, e.c.length), u(e.c[f], 17)).a, r = (Ln(f + 1, e.c.length), u(e.c[f + 1], 17)).a - i, c > r && ++l, nn(s, (Ln(f + l, e.c.length), u(e.c[f + l], 17))), h += (Ln(f + l, e.c.length), u(e.c[f + l], 17)).a - i, ++t; t < n.gc() && u(n.Xb(t), 17).a + h <= (Ln(f + l, e.c.length), u(e.c[f + l], 17)).a; ) + ++t; + f += 1 + l; + } + return s; + } + function _Pe(n, e) { + var t, i, r, c, s; + for (s = new ie(ce(Ei(e).a.Kc(), new En())); pe(s); ) + if (c = u(fe(s), 18), n.f.b == 0 ? (r = c.c.i.k == (Vn(), Xt) && !!c.c.i.c && c.c.i.c.p == n.c, pe(new ie(ce(Ei(c.c.i).a.Kc(), new En()))) ? (t = u(fe(new ie(ce(Ei(c.c.i).a.Kc(), new En()))), 18).c.i.c, i = c.c.i.k == Sc && !!t && t.p == n.c) : i = !1) : (r = c.c.i.k == (Vn(), Xt) && c.c.i.p == n.c, i = c.c.i.k == Sc && u(fe(new ie(ce(Ei(c.c.i).a.Kc(), new En()))), 18).c.i.p == n.c), r || i) + return !0; + return !1; + } + function HPe(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + for (g = new Z(), S = HM(i), j = e * n.a, d = 0, m = 0, c = new ei(), s = new ei(), f = new Z(), I = 0, O = 0, p = 0, k = 0, l = 0, a = 0; S.a.gc() != 0; ) + h = x5e(S, r, s), h && (S.a.Bc(h) != null, Kn(f.c, h), c.a.zc(h, c), m = n.f[h.p], I += n.e[h.p] - m * n.b, d = n.c[h.p], O += d * n.b, a += m * n.b, k += n.e[h.p]), (!h || S.a.gc() == 0 || I >= j && n.e[h.p] > m * n.b || O >= t * j) && (Kn(g.c, f), f = new Z(), Ri(s, c), c.a.$b(), l -= a, p = y.Math.max(p, l * n.b + k), l += O, I = O, O = 0, a = 0, k = 0); + return new wi(p, g); + } + function $F(n) { + var e, t, i, r, c, s, f; + if (!n.d) { + if (f = new jvn(), e = N9, c = e.a.zc(n, e), c == null) { + for (i = new ne(Hr(n)); i.e != i.i.gc(); ) + t = u(ue(i), 29), Kt(f, $F(t)); + e.a.Bc(n) != null, e.a.gc() == 0; + } + for (s = f.i, r = (!n.q && (n.q = new q(Ss, n, 11, 10)), new ne(n.q)); r.e != r.i.gc(); ++s) + u(ue(r), 411); + Kt(f, (!n.q && (n.q = new q(Ss, n, 11, 10)), n.q)), tw(f), n.d = new pg((u(L(H((G1(), Hn).o), 9), 19), f.i), f.g), n.e = u(f.g, 688), n.e == null && (n.e = Joe), Yu(n).b &= -17; + } + return n.d; + } + function Im(n, e, t, i) { + var r, c, s, f, h, l; + if (l = ru(n.e.Dh(), e), h = 0, r = u(n.g, 124), dr(), u(e, 69).xk()) { + for (s = 0; s < n.i; ++s) + if (c = r[s], l.am(c.Lk())) { + if (rt(c, t)) + return h; + ++h; + } + } else if (t != null) { + for (f = 0; f < n.i; ++f) + if (c = r[f], l.am(c.Lk())) { + if (rt(t, c.md())) + return h; + ++h; + } + if (i) { + for (h = 0, s = 0; s < n.i; ++s) + if (c = r[s], l.am(c.Lk())) { + if (x(t) === x(IL(n, u(c.md(), 58)))) + return h; + ++h; + } + } + } else + for (s = 0; s < n.i; ++s) + if (c = r[s], l.am(c.Lk())) { + if (c.md() == null) + return h; + ++h; + } + return -1; + } + function qPe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k; + if (t.Xh(e) && (a = (p = e, p ? u(i, 54).gi(p) : null), a)) + if (k = t.Nh(e, n.a), m = e.t, m > 1 || m == -1) + if (d = u(k, 71), g = u(a, 71), d.dc()) + g.$b(); + else + for (s = !!br(e), c = 0, f = n.a ? d.Kc() : d.Ii(); f.Ob(); ) + l = u(f.Pb(), 58), r = u(Lf(n, l), 58), r ? (s ? (h = g.dd(r), h == -1 ? g.Gi(c, r) : c != h && g.Ui(c, r)) : g.Gi(c, r), ++c) : n.b && !s && (g.Gi(c, l), ++c); + else + k == null ? a.Wb(null) : (r = Lf(n, k), r == null ? n.b && !br(e) && a.Wb(k) : a.Wb(r)); + } + function UPe(n, e) { + var t, i, r, c, s, f, h, l; + for (t = new ogn(), r = new ie(ce(Ei(e).a.Kc(), new En())); pe(r); ) + if (i = u(fe(r), 18), !sr(i) && (f = i.c.i, YZ(f, MP))) { + if (l = pen(n, f, MP, CP), l == -1) + continue; + t.b = y.Math.max(t.b, l), !t.a && (t.a = new Z()), nn(t.a, f); + } + for (s = new ie(ce(Qt(e).a.Kc(), new En())); pe(s); ) + if (c = u(fe(s), 18), !sr(c) && (h = c.d.i, YZ(h, CP))) { + if (l = pen(n, h, CP, MP), l == -1) + continue; + t.d = y.Math.max(t.d, l), !t.c && (t.c = new Z()), nn(t.c, h); + } + return t; + } + function GPe(n, e, t, i) { + var r, c, s, f, h, l, a; + if (t.d.i != e.i) { + for (r = new Tl(n), qa(r, (Vn(), Ti)), U(r, (W(), st), t), U(r, (cn(), Ht), (Li(), Uc)), Kn(i.c, r), s = new Ic(), ic(s, r), pi(s, (en(), Wn)), f = new Ic(), ic(f, r), pi(f, Zn), a = t.d, Di(t, s), c = new C0(), Ur(c, t), U(c, xr, null), Yi(c, f), Di(c, a), l = new Fi(t.b, 0); l.b < l.d.gc(); ) + h = (oe(l.b < l.d.gc()), u(l.d.Xb(l.c = l.b++), 72)), x(v(h, Th)) === x((Nf(), Qw)) && (U(h, M3, t), bo(l), nn(c.b, h)); + THn(r, s, f); + } + } + function zPe(n, e, t, i) { + var r, c, s, f, h, l, a; + if (t.c.i != e.i) + for (r = new Tl(n), qa(r, (Vn(), Ti)), U(r, (W(), st), t), U(r, (cn(), Ht), (Li(), Uc)), Kn(i.c, r), s = new Ic(), ic(s, r), pi(s, (en(), Wn)), f = new Ic(), ic(f, r), pi(f, Zn), Di(t, s), c = new C0(), Ur(c, t), U(c, xr, null), Yi(c, f), Di(c, e), THn(r, s, f), l = new Fi(t.b, 0); l.b < l.d.gc(); ) + h = (oe(l.b < l.d.gc()), u(l.d.Xb(l.c = l.b++), 72)), a = u(v(h, Th), 278), a == (Nf(), Qw) && (kt(h, M3) || U(h, M3, t), bo(l), nn(c.b, h)); + } + function VUn(n) { + Tm(); + var e, t, i, r; + if (e = gi(n), n < P8.length) + return P8[e]; + if (n <= 50) + return ry((ah(), YK), e); + if (n <= b1) + return Fp(ry(m3[1], e), e); + if (n > 1e6) + throw M(new _E("power of ten too big")); + if (n <= et) + return Fp(ry(m3[1], e), e); + for (i = ry(m3[1], et), r = i, t = vc(n - et), e = gi(n % et); Cc(t, et) > 0; ) + r = Ig(r, i), t = bs(t, et); + for (r = Ig(r, ry(m3[1], e)), r = Fp(r, et), t = vc(n - et); Cc(t, et) > 0; ) + r = Fp(r, et), t = bs(t, et); + return r = Fp(r, e), r; + } + function WUn(n) { + var e, t, i, r, c, s, f, h, l, a; + for (h = new C(n.a); h.a < h.c.c.length; ) + if (f = u(E(h), 10), f.k == (Vn(), ni) && (r = u(v(f, (W(), gc)), 64), r == (en(), Zn) || r == Wn)) + for (i = new ie(ce(Cl(f).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 18), e = t.a, e.b != 0 && (l = t.c, l.i == f && (c = (oe(e.b != 0), u(e.a.a.c, 8)), c.b = cc(A(T(Ci, 1), J, 8, 0, [l.i.n, l.n, l.a])).b), a = t.d, a.i == f && (s = (oe(e.b != 0), u(e.c.b.c, 8)), s.b = cc(A(T(Ci, 1), J, 8, 0, [a.i.n, a.n, a.a])).b)); + } + function q5(n, e, t, i) { + var r, c, s; + if (this.j = new Z(), this.k = new Z(), this.b = new Z(), this.c = new Z(), this.e = new mp(), this.i = new Cu(), this.f = new rD(), this.d = new Z(), this.g = new Z(), nn(this.b, n), nn(this.b, e), this.e.c = y.Math.min(n.a, e.a), this.e.d = y.Math.min(n.b, e.b), this.e.b = y.Math.abs(n.a - e.a), this.e.a = y.Math.abs(n.b - e.b), r = u(v(i, (cn(), xr)), 75), r) + for (s = ge(r, 0); s.b != s.d.c; ) + c = u(be(s), 8), aQ(c.a, n.a) && Fe(this.i, c); + t && nn(this.j, t), nn(this.k, i); + } + function XPe(n, e, t, i) { + var r, c, s, f, h, l, a; + for (f = -1, a = new C(n); a.a < a.c.c.length; ) + l = u(E(a), 118), l.g = f--, r = Ae(BM(EM(ut(new Tn(null, new In(l.f, 16)), new S3n()), new P3n())).d), c = Ae(BM(EM(ut(new Tn(null, new In(l.k, 16)), new I3n()), new O3n())).d), s = r, h = c, i || (s = Ae(BM(EM(new Tn(null, new In(l.f, 16)), new D3n())).d), h = Ae(BM(EM(new Tn(null, new In(l.k, 16)), new T3n())).d)), l.d = s, l.a = r, l.i = h, l.b = c, h == 0 ? xt(t, l, t.c.b, t.c) : s == 0 && xt(e, l, e.c.b, e.c); + } + function t3(n, e) { + var t, i, r, c, s, f; + if (n.k == (Vn(), Sc) && (t = n.k == Sc && !o4(ut(u(v(n, (W(), K8)), 15).Oc(), new Y3(new UU()))).Bd((Wa(), v3)) ? (To(), Zj) : e, U(n, (W(), A3), t), t != (To(), Aa))) + for (i = u(v(n, st), 18), f = $(R(v(i, (cn(), v1)))), s = 0, t == Zh ? s = n.o.b - y.Math.ceil(f / 2) : t == Zj && (s = y.Math.ceil(n.o.b - $(R(v(Hi(n), T2))) - f) / 2, n.o.b -= $(R(v(Hi(n), T2))), n.o.b -= f), c = new C(n.j); c.a < c.c.c.length; ) + r = u(E(c), 12), r.n.b = s; + } + function JUn(n, e, t) { + var i, r, c, s, f, h, l, a, d; + for (r = !0, s = new C(n.b); s.a < s.c.c.length; ) { + for (c = u(E(s), 30), l = ai, a = null, h = new C(c.a); h.a < h.c.c.length; ) + if (f = u(E(h), 10), d = $(e.p[f.p]) + $(e.d[f.p]) - f.d.d, i = $(e.p[f.p]) + $(e.d[f.p]) + f.o.b + f.d.a, d > l && i > l) + a = f, l = $(e.p[f.p]) + $(e.d[f.p]) + f.o.b + f.d.a; + else { + r = !1, t._g() && t.bh("bk node placement breaks on " + f + " which should have been after " + a); + break; + } + if (!r) + break; + } + return t._g() && t.bh(e + " is feasible: " + r), r; + } + function qen(n, e, t, i) { + var r, c, s, f, h, l, a, d, g; + if (c = new Tl(n), qa(c, (Vn(), Hc)), U(c, (cn(), Ht), (Li(), Uc)), r = 0, e) { + for (s = new Ic(), U(s, (W(), st), e), U(c, st, e.i), pi(s, (en(), Wn)), ic(s, c), g = fh(e.e), l = g, a = 0, d = l.length; a < d; ++a) + h = l[a], Di(h, s); + U(e, Gu, c), ++r; + } + if (t) { + for (f = new Ic(), U(c, (W(), st), t.i), U(f, st, t), pi(f, (en(), Zn)), ic(f, c), g = fh(t.g), l = g, a = 0, d = l.length; a < d; ++a) + h = l[a], Yi(h, f); + U(t, Gu, c), ++r; + } + return U(c, (W(), iI), Y(r)), Kn(i.c, c), c; + } + function VPe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p; + for (t = (l = new ol(n.c.b).a.vc().Kc(), new Pb(l)); t.a.Ob(); ) + e = (f = u(t.a.Pb(), 44), u(f.md(), 143)), r = e.a, r == null && (r = ""), i = kae(n.c, r), !i && r.length == 0 && (i = s5e(n)), i && !rw(i.c, e, !1) && Fe(i.c, e); + for (s = ge(n.a, 0); s.b != s.d.c; ) + c = u(be(s), 487), a = WN(n.c, c.a), p = WN(n.c, c.b), a && p && Fe(a.c, new wi(p, c.c)); + for (vo(n.a), g = ge(n.b, 0); g.b != g.d.c; ) + d = u(be(g), 487), e = vae(n.c, d.a), h = WN(n.c, d.b), e && h && Yhe(e, h, d.c); + vo(n.b); + } + function WPe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p; + c = new U9(n), s = new sKn(), r = (nk(s.g), nk(s.j), Ku(s.b), nk(s.d), nk(s.i), Ku(s.k), Ku(s.c), Ku(s.e), p = q_n(s, c, null), BHn(s, c), p), e && (l = new U9(e), f = rIe(l), lnn(r, A(T(can, 1), Bn, 536, 0, [f]))), g = !1, d = !1, t && (l = new U9(t), HS in l.a && (g = dl(l, HS).qe().a), TWn in l.a && (d = dl(l, TWn).qe().a)), a = eEn(U$n(new op(), g), d), Dje(new vmn(), r, a), HS in c.a && bf(c, HS, null), (g || d) && (h = new sp(), OUn(a, h, g, d), bf(c, HS, h)), i = new nyn(s), g6e(new AX(r), i); + } + function JPe(n, e, t) { + var i, r, c, s, f, h, l, a, d; + for (s = new dKn(), l = A(T(ye, 1), _e, 28, 15, [0]), r = -1, c = 0, i = 0, h = 0; h < n.b.c.length; ++h) + if (a = u(sn(n.b, h), 443), a.b > 0) { + if (r < 0 && a.a && (r = h, c = l[0], i = 0), r >= 0) { + if (f = a.b, h == r && (f -= i++, f == 0)) + return 0; + if (!ZGn(e, l, a, f, s)) { + h = r - 1, l[0] = c; + continue; + } + } else if (r = -1, !ZGn(e, l, a, 0, s)) + return 0; + } else { + if (r = -1, Xi(a.c, 0) == 32) { + if (d = l[0], n$n(e, l), l[0] > d) + continue; + } else if (Lge(e, a.c, l[0])) { + l[0] += a.c.length; + continue; + } + return 0; + } + return $De(s, t) ? l[0] : 0; + } + function QPe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + for (a = new dM(new B9n(t)), f = K(oo, zh, 28, n.f.e.c.length, 16, 1), TW(f, f.length), t[e.a] = 0, l = new C(n.f.e); l.a < l.c.c.length; ) + h = u(E(l), 153), h.a != e.a && (t[h.a] = et), Mp(km(a, h), Km); + for (; a.b.c.length != 0; ) + for (d = u(w$(a), 153), f[d.a] = !0, c = WTn(new AD(n.b, d), 0); c.c; ) + r = u(sQ(c), 290), g = f7e(r, d), !f[g.a] && (kt(r, (Uk(), EP)) ? s = $(R(v(r, EP))) : s = n.c, i = t[d.a] + s, i < t[g.a] && (t[g.a] = i, lxn(a, g), Mp(km(a, g), Km))); + } + function YPe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m; + for (s = n.o, i = K(ye, _e, 28, s, 15, 1), r = K(ye, _e, 28, s, 15, 1), t = n.p, e = K(ye, _e, 28, t, 15, 1), c = K(ye, _e, 28, t, 15, 1), l = 0; l < s; l++) { + for (d = 0; d < t && !Kg(n, l, d); ) + ++d; + i[l] = d; + } + for (a = 0; a < s; a++) { + for (d = t - 1; d >= 0 && !Kg(n, a, d); ) + --d; + r[a] = d; + } + for (p = 0; p < t; p++) { + for (f = 0; f < s && !Kg(n, f, p); ) + ++f; + e[p] = f; + } + for (m = 0; m < t; m++) { + for (f = s - 1; f >= 0 && !Kg(n, f, m); ) + --f; + c[m] = f; + } + for (h = 0; h < s; h++) + for (g = 0; g < t; g++) + h < c[g] && h > e[g] && g < r[h] && g > i[h] && xA(n, h, g, !1, !0); + } + function Uen(n) { + var e, t, i, r, c, s, f, h; + t = on(un(v(n, (Us(), XYn)))), c = n.a.c.d, f = n.a.d.d, t ? (s = rh(vi(new V(f.a, f.b), c), 0.5), h = rh(Ki(n.e), 0.5), e = vi(tt(new V(c.a, c.b), s), h), ZX(n.d, e)) : (r = $(R(v(n.a, tZn))), i = n.d, c.a >= f.a ? c.b >= f.b ? (i.a = f.a + (c.a - f.a) / 2 + r, i.b = f.b + (c.b - f.b) / 2 - r - n.e.b) : (i.a = f.a + (c.a - f.a) / 2 + r, i.b = c.b + (f.b - c.b) / 2 + r) : c.b >= f.b ? (i.a = c.a + (f.a - c.a) / 2 + r, i.b = f.b + (c.b - f.b) / 2 + r) : (i.a = c.a + (f.a - c.a) / 2 + r, i.b = c.b + (f.b - c.b) / 2 - r - n.e.b)); + } + function U5(n) { + var e, t, i, r, c, s, f, h; + if (!n.f) { + if (h = new iG(), f = new iG(), e = N9, s = e.a.zc(n, e), s == null) { + for (c = new ne(Hr(n)); c.e != c.i.gc(); ) + r = u(ue(c), 29), Kt(h, U5(r)); + e.a.Bc(n) != null, e.a.gc() == 0; + } + for (i = (!n.s && (n.s = new q(vu, n, 21, 17)), new ne(n.s)); i.e != i.i.gc(); ) + t = u(ue(i), 179), D(t, 102) && ve(f, u(t, 19)); + tw(f), n.r = new _Sn(n, (u(L(H((G1(), Hn).o), 6), 19), f.i), f.g), Kt(h, n.r), tw(h), n.f = new pg((u(L(H(Hn.o), 5), 19), h.i), h.g), Yu(n).b &= -3; + } + return n.f; + } + function QUn(n) { + c0(n, new pd(t0(Zd(e0(n0(new _a(), Ed), "ELK DisCo"), "Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."), new Bbn()))), Q(n, Ed, WB, rn(aon)), Q(n, Ed, JB, rn(g_)), Q(n, Ed, l3, rn(DYn)), Q(n, Ed, J0, rn(lon)), Q(n, Ed, Dtn, rn(xYn)), Q(n, Ed, Ltn, rn($Yn)), Q(n, Ed, Otn, rn(FYn)), Q(n, Ed, Ntn, rn(NYn)), Q(n, Ed, _tn, rn(LYn)), Q(n, Ed, Htn, rn(w_)), Q(n, Ed, qtn, rn(hon)), Q(n, Ed, Utn, rn(pP)); + } + function KA() { + KA = F, Ddn = A(T(fs, 1), wh, 28, 15, [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70]), Toe = new RegExp(`[ +\r\f]+`); + try { + O9 = A(T(LNe, 1), Bn, 2114, 0, [new X9((kX(), zT("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ", I7((KE(), KE(), T8))))), new X9(zT("yyyy-MM-dd'T'HH:mm:ss'.'SSS", I7(T8))), new X9(zT("yyyy-MM-dd'T'HH:mm:ss", I7(T8))), new X9(zT("yyyy-MM-dd'T'HH:mm", I7(T8))), new X9(zT("yyyy-MM-dd", I7(T8)))]); + } catch (n) { + if (n = It(n), !D(n, 82)) + throw M(n); + } + } + function ZPe(n, e) { + var t, i, r, c; + if (r = eo(n.d, 1) != 0, i = Cen(n, e), i == 0 && on(un(v(e.j, (W(), ka))))) + return 0; + !on(un(v(e.j, (W(), ka)))) && !on(un(v(e.j, j2))) || x(v(e.j, (cn(), Qh))) === x((hh(), y1)) ? e.c.mg(e.e, r) : r = on(un(v(e.j, ka))), sy(n, e, r, !0), on(un(v(e.j, j2))) && U(e.j, j2, (_n(), !1)), on(un(v(e.j, ka))) && (U(e.j, ka, (_n(), !1)), U(e.j, j2, !0)), t = Cen(n, e); + do { + if ($Q(n), t == 0) + return 0; + r = !r, c = t, sy(n, e, r, !1), t = Cen(n, e); + } while (c > t); + return c; + } + function YUn(n, e) { + var t, i, r, c; + if (r = eo(n.d, 1) != 0, i = kA(n, e), i == 0 && on(un(v(e.j, (W(), ka))))) + return 0; + !on(un(v(e.j, (W(), ka)))) && !on(un(v(e.j, j2))) || x(v(e.j, (cn(), Qh))) === x((hh(), y1)) ? e.c.mg(e.e, r) : r = on(un(v(e.j, ka))), sy(n, e, r, !0), on(un(v(e.j, j2))) && U(e.j, j2, (_n(), !1)), on(un(v(e.j, ka))) && (U(e.j, ka, (_n(), !1)), U(e.j, j2, !0)), t = kA(n, e); + do { + if ($Q(n), t == 0) + return 0; + r = !r, c = t, sy(n, e, r, !1), t = kA(n, e); + } while (c > t); + return c; + } + function Gen(n, e, t, i) { + var r, c, s, f, h, l, a, d, g; + return h = vi(new V(t.a, t.b), n), l = h.a * e.b - h.b * e.a, a = e.a * i.b - e.b * i.a, d = (h.a * i.b - h.b * i.a) / a, g = l / a, a == 0 ? l == 0 ? (r = tt(new V(t.a, t.b), rh(new V(i.a, i.b), 0.5)), c = J1(n, r), s = J1(tt(new V(n.a, n.b), e), r), f = y.Math.sqrt(i.a * i.a + i.b * i.b) * 0.5, c < s && c <= f ? new V(n.a, n.b) : s <= f ? tt(new V(n.a, n.b), e) : null) : null : d >= 0 && d <= 1 && g >= 0 && g <= 1 ? tt(new V(n.a, n.b), rh(new V(e.a, e.b), d)) : null; + } + function nIe(n, e, t) { + var i, r, c, s, f; + if (i = u(v(n, (cn(), kH)), 21), t.a > e.a && (i.Hc((gd(), w9)) ? n.c.a += (t.a - e.a) / 2 : i.Hc(g9) && (n.c.a += t.a - e.a)), t.b > e.b && (i.Hc((gd(), m9)) ? n.c.b += (t.b - e.b) / 2 : i.Hc(p9) && (n.c.b += t.b - e.b)), u(v(n, (W(), qc)), 21).Hc((mr(), cs)) && (t.a > e.a || t.b > e.b)) + for (f = new C(n.a); f.a < f.c.c.length; ) + s = u(E(f), 10), s.k == (Vn(), ni) && (r = u(v(s, gc), 64), r == (en(), Zn) ? s.n.a += t.a - e.a : r == ae && (s.n.b += t.b - e.b)); + c = n.d, n.f.a = t.a - c.b - c.c, n.f.b = t.b - c.d - c.a; + } + function eIe(n, e, t) { + var i, r, c, s, f; + if (i = u(v(n, (cn(), kH)), 21), t.a > e.a && (i.Hc((gd(), w9)) ? n.c.a += (t.a - e.a) / 2 : i.Hc(g9) && (n.c.a += t.a - e.a)), t.b > e.b && (i.Hc((gd(), m9)) ? n.c.b += (t.b - e.b) / 2 : i.Hc(p9) && (n.c.b += t.b - e.b)), u(v(n, (W(), qc)), 21).Hc((mr(), cs)) && (t.a > e.a || t.b > e.b)) + for (s = new C(n.a); s.a < s.c.c.length; ) + c = u(E(s), 10), c.k == (Vn(), ni) && (r = u(v(c, gc), 64), r == (en(), Zn) ? c.n.a += t.a - e.a : r == ae && (c.n.b += t.b - e.b)); + f = n.d, n.f.a = t.a - f.b - f.c, n.f.b = t.b - f.d - f.a; + } + function tIe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g; + for (e = aHn(n), a = (f = new Ua(e).a.vc().Kc(), new PE(f)); a.a.Ob(); ) { + for (l = (r = u(a.a.Pb(), 44), u(r.ld(), 10)), d = 0, g = 0, d = l.d.d, g = l.o.b + l.d.a, n.d[l.p] = 0, t = l; (c = n.a[t.p]) != l; ) + i = Q8e(t, c), h = 0, n.c == (sh(), j1) ? h = i.d.n.b + i.d.a.b - i.c.n.b - i.c.a.b : h = i.c.n.b + i.c.a.b - i.d.n.b - i.d.a.b, s = $(n.d[t.p]) + h, n.d[c.p] = s, d = y.Math.max(d, c.d.d - s), g = y.Math.max(g, s + c.o.b + c.d.a), t = c; + t = l; + do + n.d[t.p] = $(n.d[t.p]) + d, t = n.a[t.p]; + while (t != l); + n.b[l.p] = d + g; + } + } + function G5(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + for (c = 0, s = n.t, r = 0, i = 0, h = 0, g = 0, d = 0, t && (n.n.c.length = 0, nn(n.n, new NM(n.s, n.t, n.i))), f = 0, a = new C(n.b); a.a < a.c.c.length; ) + l = u(E(a), 27), c + l.g + (f > 0 ? n.i : 0) > e && h > 0 && (c = 0, s += h + n.i, r = y.Math.max(r, g), i += h + n.i, h = 0, g = 0, t && (++d, nn(n.n, new NM(n.s, s, n.i))), f = 0), g += l.g + (f > 0 ? n.i : 0), h = y.Math.max(h, l.f), t && gZ(u(sn(n.n, d), 209), l), c += l.g + (f > 0 ? n.i : 0), ++f; + return r = y.Math.max(r, g), i += h, t && (n.r = r, n.d = i, kZ(n.j)), new Ho(n.s, n.t, r, i); + } + function xF(n) { + var e, t, i, r, c, s, f, h, l, a, d, g; + for (n.b = !1, d = St, h = ai, g = St, l = ai, i = n.e.a.ec().Kc(); i.Ob(); ) + for (t = u(i.Pb(), 272), r = t.a, d = y.Math.min(d, r.c), h = y.Math.max(h, r.c + r.b), g = y.Math.min(g, r.d), l = y.Math.max(l, r.d + r.a), s = new C(t.c); s.a < s.c.c.length; ) + c = u(E(s), 407), e = c.a, e.a ? (a = r.d + c.b.b, f = a + c.c, g = y.Math.min(g, a), l = y.Math.max(l, f)) : (a = r.c + c.b.a, f = a + c.c, d = y.Math.min(d, a), h = y.Math.max(h, f)); + n.a = new V(h - d, l - g), n.c = new V(d + n.d.a, g + n.d.b); + } + function Jg(n) { + var e, t, i, r, c, s, f, h; + if (!n.a) { + if (n.o = null, h = new vyn(n), e = new yvn(), t = N9, f = t.a.zc(n, t), f == null) { + for (s = new ne(Hr(n)); s.e != s.i.gc(); ) + c = u(ue(s), 29), Kt(h, Jg(c)); + t.a.Bc(n) != null, t.a.gc() == 0; + } + for (r = (!n.s && (n.s = new q(vu, n, 21, 17)), new ne(n.s)); r.e != r.i.gc(); ) + i = u(ue(r), 179), D(i, 331) && ve(e, u(i, 35)); + tw(e), n.k = new HSn(n, (u(L(H((G1(), Hn).o), 7), 19), e.i), e.g), Kt(h, n.k), tw(h), n.a = new pg((u(L(H(Hn.o), 4), 19), h.i), h.g), Yu(n).b &= -2; + } + return n.a; + } + function zen(n, e, t, i) { + var r, c, s, f, h, l, a; + if (a = ru(n.e.Dh(), e), r = 0, c = u(n.g, 124), h = null, dr(), u(e, 69).xk()) { + for (f = 0; f < n.i; ++f) + if (s = c[f], a.am(s.Lk())) { + if (rt(s, t)) { + h = s; + break; + } + ++r; + } + } else if (t != null) { + for (f = 0; f < n.i; ++f) + if (s = c[f], a.am(s.Lk())) { + if (rt(t, s.md())) { + h = s; + break; + } + ++r; + } + } else + for (f = 0; f < n.i; ++f) + if (s = c[f], a.am(s.Lk())) { + if (s.md() == null) { + h = s; + break; + } + ++r; + } + return h && (fo(n.e) && (l = e.Jk() ? new GN(n.e, 4, e, t, null, r, !0) : V1(n, e.tk() ? 2 : 1, e, t, e.ik(), -1, !0), i ? i.nj(l) : i = l), i = ly(n, h, i)), i; + } + function FF(n, e, t, i, r, c, s) { + var f, h, l, a, d, g, p, m, k; + switch (m = 0, k = 0, h = r.c, f = r.b, a = t.f, p = t.g, e.g) { + case 0: + m = i.i + i.g + s, n.c ? k = yye(m, c, i, s) : k = i.j, g = y.Math.max(h, m + p), l = y.Math.max(f, k + a); + break; + case 1: + k = i.j + i.f + s, n.c ? m = kye(k, c, i, s) : m = i.i, g = y.Math.max(h, m + p), l = y.Math.max(f, k + a); + break; + case 2: + m = h + s, k = 0, g = h + s + p, l = y.Math.max(f, a); + break; + case 3: + m = 0, k = f + s, g = y.Math.max(h, p), l = f + s + a; + break; + default: + throw M(new Gn("IllegalPlacementOption.")); + } + return d = new iZ(n.a, g, l, e, m, k), d; + } + function iIe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g; + if (f = n.d, d = u(v(n, (W(), P3)), 15), e = u(v(n, C3), 15), !(!d && !e)) { + if (c = $(R(cw(n, (cn(), PH)))), s = $(R(cw(n, phn))), g = 0, d) { + for (l = 0, r = d.Kc(); r.Ob(); ) + i = u(r.Pb(), 10), l = y.Math.max(l, i.o.b), g += i.o.a; + g += c * (d.gc() - 1), f.d += l + s; + } + if (t = 0, e) { + for (l = 0, r = e.Kc(); r.Ob(); ) + i = u(r.Pb(), 10), l = y.Math.max(l, i.o.b), t += i.o.a; + t += c * (e.gc() - 1), f.a += l + s; + } + h = y.Math.max(g, t), h > n.o.a && (a = (h - n.o.a) / 2, f.b = y.Math.max(f.b, a), f.c = y.Math.max(f.c, a)); + } + } + function rIe(n) { + var e, t, i, r, c, s, f, h; + for (c = new XOn(), $le(c, (qp(), due)), i = (r = S$(n, K(fn, J, 2, 0, 6, 1)), new zv(new Bu(new SD(n, r).b))); i.b < i.d.gc(); ) + t = (oe(i.b < i.d.gc()), Oe(i.d.Xb(i.c = i.b++))), s = Zen(Da, t), s && (e = dl(n, t), e.te() ? f = e.te().a : e.qe() ? f = "" + e.qe().a : e.re() ? f = "" + e.re().a : f = e.Ib(), h = Qen(s, f), h != null && ((Tu(s.j, (pf(), mi)) || Tu(s.j, xn)) && Ak(g$(c, Ye), s, h), Tu(s.j, Sh) && Ak(g$(c, Wt), s, h), Tu(s.j, _d) && Ak(g$(c, Wu), s, h), Tu(s.j, C1) && Ak(g$(c, Sr), s, h))); + return c; + } + function wy(n, e, t) { + var i, r, c, s, f, h, l, a; + if (r = u(n.g, 124), Sl(n.e, e)) + return dr(), u(e, 69).xk() ? new eM(e, n) : new k7(e, n); + for (l = ru(n.e.Dh(), e), i = 0, f = 0; f < n.i; ++f) { + if (c = r[f], s = c.Lk(), l.am(s)) { + if (dr(), u(e, 69).xk()) + return c; + if (s == (n3(), _3) || s == K3) { + for (h = new mo(Jr(c.md())); ++f < n.i; ) + c = r[f], s = c.Lk(), (s == _3 || s == K3) && Re(h, Jr(c.md())); + return TV(u(e.Hk(), 156), h.a); + } else + return a = c.md(), a != null && t && D(e, 102) && u(e, 19).Bb & fr && (a = L5(n, e, f, i, a)), a; + } + ++i; + } + return e.ik(); + } + function _A(n, e, t, i) { + var r, c, s, f, h, l; + if (h = ru(n.e.Dh(), e), c = u(n.g, 124), Sl(n.e, e)) { + for (r = 0, f = 0; f < n.i; ++f) + if (s = c[f], h.am(s.Lk())) { + if (r == t) + return dr(), u(e, 69).xk() ? s : (l = s.md(), l != null && i && D(e, 102) && u(e, 19).Bb & fr && (l = L5(n, e, f, r, l)), l); + ++r; + } + throw M(new Pr(p8 + t + Ad + r)); + } else { + for (r = 0, f = 0; f < n.i; ++f) { + if (s = c[f], h.am(s.Lk())) + return dr(), u(e, 69).xk() ? s : (l = s.md(), l != null && i && D(e, 102) && u(e, 19).Bb & fr && (l = L5(n, e, f, r, l)), l); + ++r; + } + return e.ik(); + } + } + function BF() { + BF = F, yQn = A(T(ye, 1), _e, 28, 15, [Wi, 1162261467, W5, 1220703125, 362797056, 1977326743, W5, 387420489, QA, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 128e7, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729e6, 887503681, W5, 1291467969, 1544804416, 1838265625, 60466176]), jQn = A(T(ye, 1), _e, 28, 15, [-1, -1, 31, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); + } + function RF(n, e) { + var t, i, r, c, s, f, h, l, a, d; + if (s = n.e, h = e.e, h == 0) + return n; + if (s == 0) + return e.e == 0 ? e : new Za(-e.e, e.d, e.a); + if (c = n.d, f = e.d, c + f == 2) + return t = ki(n.a[0], vr), i = ki(e.a[0], vr), s < 0 && (t = e1(t)), h < 0 && (i = e1(i)), ah(), AC(bs(t, i), 0) ? ia(bs(t, i)) : U6(ia(e1(bs(t, i)))); + if (r = c != f ? c > f ? 1 : -1 : hY(n.a, e.a, c), r == -1) + d = -h, a = s == h ? ZN(e.a, f, n.a, c) : e$(e.a, f, n.a, c); + else if (d = s, s == h) { + if (r == 0) + return ah(), S8; + a = ZN(n.a, c, e.a, f); + } else + a = e$(n.a, c, e.a, f); + return l = new Za(d, a.length, a), J6(l), l; + } + function cIe(n, e) { + var t, i, r, c; + if (c = $Un(e), !e.c && (e.c = new q(Wu, e, 9, 9)), Ut(new Tn(null, (!e.c && (e.c = new q(Wu, e, 9, 9)), new In(e.c, 16))), new H9n(c)), r = u(v(c, (W(), qc)), 21), QOe(e, r), r.Hc((mr(), cs))) + for (i = new ne((!e.c && (e.c = new q(Wu, e, 9, 9)), e.c)); i.e != i.i.gc(); ) + t = u(ue(i), 123), TDe(n, e, c, t); + return u(z(e, (cn(), Fd)), 181).gc() != 0 && Aqn(e, c), on(un(v(c, ahn))) && r.Fc(eI), kt(c, Mj) && xjn(new XY($(R(v(c, Mj)))), c), x(z(e, Rw)) === x((jl(), T1)) ? JLe(n, e, c) : NLe(n, e, c), c; + } + function uIe(n) { + var e, t, i, r, c, s, f, h; + for (r = new C(n.b); r.a < r.c.c.length; ) + for (i = u(E(r), 30), s = new C(A0(i.a)); s.a < s.c.c.length; ) + if (c = u(E(s), 10), c$n(c) && (t = u(v(c, (W(), sb)), 313), !t.g && t.d)) + for (e = t, h = t.d; h; ) + Bqn(h.i, h.k, !1, !0), fk(e.a), fk(h.i), fk(h.k), fk(h.b), Di(h.c, e.c.d), Di(e.c, null), xi(e.a, null), xi(h.i, null), xi(h.k, null), xi(h.b, null), f = new EJ(e.i, h.a, e.e, h.j, h.f), f.k = e.k, f.n = e.n, f.b = e.b, f.c = h.c, f.g = e.g, f.d = h.d, U(e.i, sb, f), U(h.a, sb, f), h = h.d, e = f; + } + function Bc(n, e) { + var t, i, r, c, s, f, h; + if (n == null) + return null; + if (c = n.length, c == 0) + return ""; + for (h = K(fs, wh, 28, c, 15, 1), Bi(0, c, n.length), Bi(0, c, h.length), qPn(n, 0, c, h, 0), t = null, f = e, r = 0, s = 0; r < c; r++) + i = h[r], Mzn(), i <= 32 && P[i] & 2 ? f ? (!t && (t = new ls(n)), G1e(t, r - s++)) : (f = e, i != 32 && (!t && (t = new ls(n)), L$(t, r - s, r - s + 1, String.fromCharCode(32)))) : f = !1; + return f ? t ? (c = t.a.length, c > 0 ? qo(t.a, 0, c - 1) : "") : (Bi(0, c - 1, n.length), n.substr(0, c - 1)) : t ? t.a : n; + } + function oIe(n, e) { + var t, i, r, c, s, f, h; + for (e.Ug("Sort By Input Model " + v(n, (cn(), Qh)), 1), r = 0, i = new C(n.b); i.a < i.c.c.length; ) { + for (t = u(E(i), 30), h = r == 0 ? 0 : r - 1, f = u(sn(n.b, h), 30), s = new C(t.a); s.a < s.c.c.length; ) + c = u(E(s), 10), x(v(c, Ht)) !== x((Li(), Gd)) && x(v(c, Ht)) !== x(Uc) && (Dn(), Zt(c.j, new UFn(f, u(v(n, Qh), 284), rKn(c), on(un(v(n, vH))))), e.bh("Node " + c + " ports: " + c.j)); + Dn(), Zt(t.a, new wxn(f, u(v(n, Qh), 284), u(v(n, _fn), 390))), e.bh("Layer " + r + ": " + t), ++r; + } + e.Vg(); + } + function pw(n, e) { + var t, i, r, c, s; + if (s = u(e, 138), Gg(n), Gg(s), s.b != null) { + if (n.c = !0, n.b == null) { + n.b = K(ye, _e, 28, s.b.length, 15, 1), Oc(s.b, 0, n.b, 0, s.b.length); + return; + } + for (c = K(ye, _e, 28, n.b.length + s.b.length, 15, 1), t = 0, i = 0, r = 0; t < n.b.length || i < s.b.length; ) + t >= n.b.length ? (c[r++] = s.b[i++], c[r++] = s.b[i++]) : i >= s.b.length ? (c[r++] = n.b[t++], c[r++] = n.b[t++]) : s.b[i] < n.b[t] || s.b[i] === n.b[t] && s.b[i + 1] < n.b[t + 1] ? (c[r++] = s.b[i++], c[r++] = s.b[i++]) : (c[r++] = n.b[t++], c[r++] = n.b[t++]); + n.b = c; + } + } + function sIe(n, e) { + var t, i, r, c, s, f, h, l, a, d; + return t = on(un(v(n, (W(), xw)))), f = on(un(v(e, xw))), i = u(v(n, yf), 12), h = u(v(e, yf), 12), r = u(v(n, Es), 12), l = u(v(e, Es), 12), a = !!i && i == h, d = !!r && r == l, !t && !f ? new $V(u(E(new C(n.j)), 12).p == u(E(new C(e.j)), 12).p, a, d) : (c = (!on(un(v(n, xw))) || on(un(v(n, jj)))) && (!on(un(v(e, xw))) || on(un(v(e, jj)))), s = (!on(un(v(n, xw))) || !on(un(v(n, jj)))) && (!on(un(v(e, xw))) || !on(un(v(e, jj)))), new $V(a && c || d && s, a, d)); + } + function ZUn(n) { + var e, t, i, r, c, s, f, h; + for (i = 0, t = 0, h = new Ct(), e = 0, f = new C(n.n); f.a < f.c.c.length; ) + s = u(E(f), 209), s.c.c.length == 0 ? xt(h, s, h.c.b, h.c) : (i = y.Math.max(i, s.d), t += s.a + (e > 0 ? n.i : 0)), ++e; + for (IY(n.n, h), n.d = t, n.r = i, n.g = 0, n.f = 0, n.e = 0, n.o = St, n.p = St, c = new C(n.b); c.a < c.c.c.length; ) + r = u(E(c), 27), n.p = y.Math.min(n.p, r.g), n.g = y.Math.max(n.g, r.g), n.f = y.Math.max(n.f, r.f), n.o = y.Math.min(n.o, r.f), n.e += r.f + n.i; + n.a = n.e / n.b.c.length - n.i * ((n.b.c.length - 1) / n.b.c.length), kZ(n.j); + } + function nGn(n) { + var e, t, i, r; + return n.Db & 64 ? ox(n) : (e = new mo(jcn), i = n.k, i ? Re(Re((e.a += ' "', e), i), '"') : (!n.n && (n.n = new q(Sr, n, 1, 7)), n.n.i > 0 && (r = (!n.n && (n.n = new q(Sr, n, 1, 7)), u(L(n.n, 0), 135)).a, !r || Re(Re((e.a += ' "', e), r), '"'))), t = (!n.b && (n.b = new Nn(he, n, 4, 7)), !(n.b.i <= 1 && (!n.c && (n.c = new Nn(he, n, 5, 8)), n.c.i <= 1))), t ? e.a += " [" : e.a += " ", Re(e, RX(new yD(), new ne(n.b))), t && (e.a += "]"), e.a += iR, t && (e.a += "["), Re(e, RX(new yD(), new ne(n.c))), t && (e.a += "]"), e.a); + } + function fIe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn; + for (_ = n.c, X = e.c, t = qr(_.a, n, 0), i = qr(X.a, e, 0), O = u(B0(n, (pr(), zu)).Kc().Pb(), 12), kn = u(B0(n, Qc).Kc().Pb(), 12), N = u(B0(e, zu).Kc().Pb(), 12), Fn = u(B0(e, Qc).Kc().Pb(), 12), S = fh(O.e), tn = fh(kn.g), I = fh(N.e), yn = fh(Fn.g), ow(n, i, X), s = I, a = 0, m = s.length; a < m; ++a) + r = s[a], Di(r, O); + for (f = yn, d = 0, k = f.length; d < k; ++d) + r = f[d], Yi(r, kn); + for (ow(e, t, _), h = S, g = 0, j = h.length; g < j; ++g) + r = h[g], Di(r, N); + for (c = tn, l = 0, p = c.length; l < p; ++l) + r = c[l], Yi(r, Fn); + } + function hIe(n) { + var e, t, i, r, c, s, f; + for (s = u(z(n, (Tg(), D2)), 27), i = new ne((!s.e && (s.e = new Nn(Wt, s, 7, 4)), s.e)); i.e != i.i.gc(); ) + t = u(ue(i), 74), f = new V(u(L((!t.a && (t.a = new q(Mt, t, 6, 6)), t.a), 0), 166).j, u(L((!t.a && (t.a = new q(Mt, t, 6, 6)), t.a), 0), 166).k), c = new V(u(L((!t.a && (t.a = new q(Mt, t, 6, 6)), t.a), 0), 166).b, u(L((!t.a && (t.a = new q(Mt, t, 6, 6)), t.a), 0), 166).c), r = new V(c.a - f.a, c.b - f.b), e = y.Math.atan2(r.b, r.a), u(L((!t.c && (t.c = new Nn(he, t, 5, 8)), t.c), 0), 84).qf((oa(), jq), e); + } + function lIe(n, e) { + var t, i, r, c, s, f, h, l, a; + for (e.Ug("Interactive Node Reorderer", 1), a = (!n.a && (n.a = new q(Ye, n, 10, 11)), n.a), f = new Z(), r = new ne(a); r.e != r.i.gc(); ) + t = u(ue(r), 27), Df(t, (Bf(), Rj)) && Kn(f.c, t); + for (c = new C(f); c.a < c.c.c.length; ) + t = u(E(c), 27), rT(a, t); + for (Dn(), Zt(f, new emn()), s = new C(f); s.a < s.c.c.length; ) + t = u(E(s), 27), l = u(z(t, (Bf(), Rj)), 17).a, l = y.Math.min(l, a.i), v5(a, l, t); + for (h = 0, i = new ne(a); i.e != i.i.gc(); ) + t = u(ue(i), 27), ht(t, (Bf(), g1n), Y(h)), ++h; + e.Vg(); + } + function Xen(n, e, t) { + var i, r, c, s, f, h, l, a; + return y.Math.abs(e.s - e.c) < mh || y.Math.abs(t.s - t.c) < mh ? 0 : (i = oqn(n, e.j, t.e), r = oqn(n, t.j, e.e), c = i == -1 || r == -1, s = 0, c ? (i == -1 && (new td((af(), Ea), t, e, 1), ++s), r == -1 && (new td((af(), Ea), e, t, 1), ++s)) : (f = Fg(e.j, t.s, t.c), f += Fg(t.e, e.s, e.c), h = Fg(t.j, e.s, e.c), h += Fg(e.e, t.s, t.c), l = i + 16 * f, a = r + 16 * h, l < a ? new td((af(), Xw), e, t, a - l) : l > a ? new td((af(), Xw), t, e, l - a) : l > 0 && a > 0 && (new td((af(), Xw), e, t, 0), new td(Xw, t, e, 0))), s); + } + function aIe(n, e, t) { + var i, r, c; + for (n.a = new Z(), c = ge(e.b, 0); c.b != c.d.c; ) { + for (r = u(be(c), 40); u(v(r, (lc(), Ah)), 17).a > n.a.c.length - 1; ) + nn(n.a, new wi(i2, Arn)); + i = u(v(r, Ah), 17).a, t == (ui(), Fr) || t == Xr ? (r.e.a < $(R(u(sn(n.a, i), 42).a)) && QO(u(sn(n.a, i), 42), r.e.a), r.e.a + r.f.a > $(R(u(sn(n.a, i), 42).b)) && YO(u(sn(n.a, i), 42), r.e.a + r.f.a)) : (r.e.b < $(R(u(sn(n.a, i), 42).a)) && QO(u(sn(n.a, i), 42), r.e.b), r.e.b + r.f.b > $(R(u(sn(n.a, i), 42).b)) && YO(u(sn(n.a, i), 42), r.e.b + r.f.b)); + } + } + function eGn(n, e, t, i) { + var r, c, s, f, h, l, a; + if (c = KT(i), f = on(un(v(i, (cn(), uhn)))), (f || on(un(v(n, wI)))) && !mg(u(v(n, Ht), 101))) + r = zp(c), h = Nen(n, t, t == (pr(), Qc) ? r : xk(r)); + else + switch (h = new Ic(), ic(h, n), e ? (a = h.n, a.a = e.a - n.n.a, a.b = e.b - n.n.b, o_n(a, 0, 0, n.o.a, n.o.b), pi(h, jUn(h, c))) : (r = zp(c), pi(h, t == (pr(), Qc) ? r : xk(r))), s = u(v(i, (W(), qc)), 21), l = h.j, c.g) { + case 2: + case 1: + (l == (en(), Xn) || l == ae) && s.Fc((mr(), v2)); + break; + case 4: + case 3: + (l == (en(), Zn) || l == Wn) && s.Fc((mr(), v2)); + } + return h; + } + function tGn(n, e) { + var t, i, r, c, s, f; + for (s = new fd(new Ga(n.f.b).a); s.b; ) { + if (c = N0(s), r = u(c.ld(), 602), e == 1) { + if (r.Af() != (ui(), us) && r.Af() != Vf) + continue; + } else if (r.Af() != (ui(), Fr) && r.Af() != Xr) + continue; + switch (i = u(u(c.md(), 42).b, 86), f = u(u(c.md(), 42).a, 194), t = f.c, r.Af().g) { + case 2: + i.g.c = n.e.a, i.g.b = y.Math.max(1, i.g.b + t); + break; + case 1: + i.g.c = i.g.c + t, i.g.b = y.Math.max(1, i.g.b - t); + break; + case 4: + i.g.d = n.e.b, i.g.a = y.Math.max(1, i.g.a + t); + break; + case 3: + i.g.d = i.g.d + t, i.g.a = y.Math.max(1, i.g.a - t); + } + } + } + function dIe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k; + for (f = K(ye, _e, 28, e.b.c.length, 15, 1), l = K(D_, G, 273, e.b.c.length, 0, 1), h = K(Jh, w1, 10, e.b.c.length, 0, 1), d = n.a, g = 0, p = d.length; g < p; ++g) { + for (a = d[g], k = 0, s = new C(a.e); s.a < s.c.c.length; ) + r = u(E(s), 10), i = EX(r.c), ++f[i], m = $(R(v(e, (cn(), Ws)))), f[i] > 0 && h[i] && (m = jg(n.b, h[i], r)), k = y.Math.max(k, r.c.c.b + m); + for (c = new C(a.e); c.a < c.c.c.length; ) + r = u(E(c), 10), r.n.b = k + r.d.d, t = r.c, t.c.b = k + r.d.d + r.o.b + r.d.a, l[qr(t.b.b, t, 0)] = r.k, h[qr(t.b.b, t, 0)] = r; + } + } + function iGn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g; + for (i = new ie(ce(Al(e).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 74), D(L((!t.b && (t.b = new Nn(he, t, 4, 7)), t.b), 0), 193) || (h = Gr(u(L((!t.c && (t.c = new Nn(he, t, 5, 8)), t.c), 0), 84)), N5(t) || (s = e.i + e.g / 2, f = e.j + e.f / 2, a = h.i + h.g / 2, d = h.j + h.f / 2, g = new Ni(), g.a = a - s, g.b = d - f, c = new V(g.a, g.b), mm(c, e.g, e.f), g.a -= c.a, g.b -= c.b, s = a - g.a, f = d - g.b, l = new V(g.a, g.b), mm(l, h.g, h.f), g.a -= l.a, g.b -= l.b, a = s + g.a, d = f + g.b, r = Xg(t, !0, !0), _4(r, s), q4(r, f), K4(r, a), H4(r, d), iGn(n, h))); + } + function rGn(n) { + c0(n, new pd(t0(Zd(e0(n0(new _a(), Y0), "ELK SPOrE Compaction"), "ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree."), new dmn()))), Q(n, Y0, YR, rn(QI)), Q(n, Y0, scn, rn(Gq)), Q(n, Y0, fcn, rn(Uq)), Q(n, Y0, ZR, rn(U1n)), Q(n, Y0, nK, rn(qq)), Q(n, Y0, J0, q1n), Q(n, Y0, jw, 8), Q(n, Y0, eK, rn(Zce)), Q(n, Y0, hcn, rn(_1n)), Q(n, Y0, lcn, rn(H1n)), Q(n, Y0, Uy, (_n(), !1)); + } + function bIe(n, e) { + var t, i, r, c, s, f, h, l, a, d; + for (e.Ug("Simple node placement", 1), d = u(v(n, (W(), E2)), 312), f = 0, c = new C(n.b); c.a < c.c.c.length; ) { + for (i = u(E(c), 30), s = i.c, s.b = 0, t = null, l = new C(i.a); l.a < l.c.c.length; ) + h = u(E(l), 10), t && (s.b += nZ(h, t, d.c)), s.b += h.d.d + h.o.b + h.d.a, t = h; + f = y.Math.max(f, s.b); + } + for (r = new C(n.b); r.a < r.c.c.length; ) + for (i = u(E(r), 30), s = i.c, a = (f - s.b) / 2, t = null, l = new C(i.a); l.a < l.c.c.length; ) + h = u(E(l), 10), t && (a += nZ(h, t, d.c)), a += h.d.d, h.n.b = a, a += h.o.b + h.d.a, t = h; + e.Vg(); + } + function wIe(n, e) { + var t, i, r, c; + for (Eme(e.b.j), Ut(_r(new Tn(null, new In(e.d, 16)), new Opn()), new Dpn()), c = new C(e.d); c.a < c.c.c.length; ) { + switch (r = u(E(c), 105), r.e.g) { + case 0: + t = u(sn(r.j, 0), 113).d.j, gG(r, u(ho(Ap(u(ot(r.k, t), 15).Oc(), w2)), 113)), wG(r, u(ho(Hb(u(ot(r.k, t), 15).Oc(), w2)), 113)); + break; + case 1: + i = EZ(r), gG(r, u(ho(Ap(u(ot(r.k, i[0]), 15).Oc(), w2)), 113)), wG(r, u(ho(Hb(u(ot(r.k, i[1]), 15).Oc(), w2)), 113)); + break; + case 2: + eEe(n, r); + break; + case 3: + mTe(r); + break; + case 4: + jTe(n, r); + } + Cme(r); + } + n.a = null; + } + function KF(n, e, t) { + var i, r, c, s, f, h, l, a; + return i = n.a.o == (Sf(), zf) ? St : ai, f = PUn(n, new QCn(e, t)), !f.a && f.c ? (Fe(n.d, f), i) : f.a ? (r = f.a.c, h = f.a.d, t ? (l = n.a.c == (sh(), vb) ? h : r, c = n.a.c == vb ? r : h, s = n.a.g[c.i.p], a = $(n.a.p[s.p]) + $(n.a.d[c.i.p]) + c.n.b + c.a.b - $(n.a.d[l.i.p]) - l.n.b - l.a.b) : (l = n.a.c == (sh(), j1) ? h : r, c = n.a.c == j1 ? r : h, a = $(n.a.p[n.a.g[c.i.p].p]) + $(n.a.d[c.i.p]) + c.n.b + c.a.b - $(n.a.d[l.i.p]) - l.n.b - l.a.b), n.a.n[n.a.g[r.i.p].p] = (_n(), !0), n.a.n[n.a.g[h.i.p].p] = !0, a) : i; + } + function gIe(n, e, t, i) { + var r, c, s, f, h, l, a, d; + if (i.gc() == 0) + return !1; + if (h = (dr(), u(e, 69).xk()), s = h ? i : new P0(i.gc()), Sl(n.e, e)) { + if (e.Si()) + for (a = i.Kc(); a.Ob(); ) + l = a.Pb(), RA(n, e, l, D(e, 102) && (u(e, 19).Bb & fr) != 0) || (c = xh(e, l), s.Fc(c)); + else if (!h) + for (a = i.Kc(); a.Ob(); ) + l = a.Pb(), c = xh(e, l), s.Fc(c); + } else { + for (d = ru(n.e.Dh(), e), r = u(n.g, 124), f = 0; f < n.i; ++f) + if (c = r[f], d.am(c.Lk())) + throw M(new Gn(Zy)); + if (i.gc() > 1) + throw M(new Gn(Zy)); + h || (c = xh(e, i.Kc().Pb()), s.Fc(c)); + } + return JQ(n, pnn(n, e, t), s); + } + function HA(n, e, t) { + var i, r, c, s, f, h, l, a; + if (Sl(n.e, e)) + h = (dr(), u(e, 69).xk() ? new eM(e, n) : new k7(e, n)), jA(h.c, h.b), P6(h, u(t, 16)); + else { + for (a = ru(n.e.Dh(), e), i = u(n.g, 124), s = 0; s < n.i; ++s) + if (r = i[s], c = r.Lk(), a.am(c)) { + if (c == (n3(), _3) || c == K3) { + for (l = dZ(n, e, t), f = s, l ? bw(n, s) : ++s; s < n.i; ) + r = i[s], c = r.Lk(), c == _3 || c == K3 ? bw(n, s) : ++s; + l || u(Rg(n, f, xh(e, t)), 76); + } else + dZ(n, e, t) ? bw(n, s) : u(Rg(n, s, (dr(), u(e, 69).xk() ? u(t, 76) : xh(e, t))), 76); + return; + } + dZ(n, e, t) || ve(n, (dr(), u(e, 69).xk() ? u(t, 76) : xh(e, t))); + } + } + function cGn(n, e, t) { + var i, r, c, s, f, h, l, a; + return rt(t, n.b) || (n.b = t, c = new Dbn(), s = u(Wr(_r(new Tn(null, new In(t.f, 16)), c), Jb(new Y2(), new Z2(), new np(), new ep(), A(T($r, 1), G, 108, 0, [(qu(), Sw), Yr]))), 21), n.e = !0, n.f = !0, n.c = !0, n.d = !0, r = s.Hc((Vp(), uj)), i = s.Hc(oj), r && !i && (n.f = !1), !r && i && (n.d = !1), r = s.Hc(cj), i = s.Hc(sj), r && !i && (n.c = !1), !r && i && (n.e = !1)), a = u(n.a.Ve(e, t), 42), h = u(a.a, 17).a, l = u(a.b, 17).a, f = !1, h < 0 ? n.c || (f = !0) : n.e || (f = !0), l < 0 ? n.d || (f = !0) : n.f || (f = !0), f ? cGn(n, a, t) : a; + } + function pIe(n) { + var e, t, i, r; + r = n.o, Rb(), n.A.dc() || rt(n.A, ron) ? e = r.b : (e = ey(n.f), n.A.Hc((go(), iE)) && !n.B.Hc((to(), P9)) && (e = y.Math.max(e, ey(u(Mr(n.p, (en(), Zn)), 252))), e = y.Math.max(e, ey(u(Mr(n.p, Wn), 252)))), t = Bxn(n), t && (e = y.Math.max(e, t.b)), n.A.Hc(rE) && (n.q == (Li(), el) || n.q == Uc) && (e = y.Math.max(e, nM(u(Mr(n.b, (en(), Zn)), 127))), e = y.Math.max(e, nM(u(Mr(n.b, Wn), 127))))), on(un(n.e.Tf().of((He(), Ww)))) ? r.b = y.Math.max(r.b, e) : r.b = e, i = n.f.i, i.d = 0, i.a = e, NF(n.f); + } + function uGn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k; + for (d = 0; d < e.length; d++) { + for (f = n.Kc(); f.Ob(); ) + c = u(f.Pb(), 230), c.hg(d, e); + for (g = 0; g < e[d].length; g++) { + for (h = n.Kc(); h.Ob(); ) + c = u(h.Pb(), 230), c.ig(d, g, e); + for (k = e[d][g].j, p = 0; p < k.c.length; p++) { + for (l = n.Kc(); l.Ob(); ) + c = u(l.Pb(), 230), c.jg(d, g, p, e); + for (m = (Ln(p, k.c.length), u(k.c[p], 12)), t = 0, r = new Of(m.b); tc(r.a) || tc(r.b); ) + for (i = u(tc(r.a) ? E(r.a) : E(r.b), 18), a = n.Kc(); a.Ob(); ) + c = u(a.Pb(), 230), c.gg(d, g, p, t++, i, e); + } + } + } + for (s = n.Kc(); s.Ob(); ) + c = u(s.Pb(), 230), c.fg(); + } + function mIe(n, e) { + var t, i, r, c, s, f, h; + for (n.b = $(R(v(e, (cn(), M2)))), n.c = $(R(v(e, Rd))), n.d = u(v(e, MH), 350), n.a = u(v(e, fI), 282), r7e(e), f = u(Wr(ut(ut(rc(rc(new Tn(null, new In(e.b, 16)), new Vwn()), new Wwn()), new Jwn()), new Qwn()), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), r = f.Kc(); r.Ob(); ) + t = u(r.Pb(), 18), s = u(v(t, (W(), Ld)), 15), s.Jc(new Y9n(n)), U(t, Ld, null); + for (i = f.Kc(); i.Ob(); ) + t = u(i.Pb(), 18), h = u(v(t, (W(), ffn)), 18), c = u(v(t, C2), 15), DLe(n, c, h), U(t, C2, null); + } + function _F(n, e) { + var t, i, r, c, s, f, h; + if (n.a) { + if (f = n.a.xe(), h = null, f != null ? e.a += "" + f : (s = n.a.mk(), s != null && (c = th(s, bu(91)), c != -1 ? (h = (zn(c, s.length + 1), s.substr(c)), e.a += "" + qo(s == null ? wu : (Jn(s), s), 0, c)) : e.a += "" + s)), n.d && n.d.i != 0) { + for (r = !0, e.a += "<", i = new ne(n.d); i.e != i.i.gc(); ) + t = u(ue(i), 89), r ? r = !1 : e.a += cr, _F(t, e); + e.a += ">"; + } + h != null && (e.a += "" + h); + } else + n.e ? (f = n.e.zb, f != null && (e.a += "" + f)) : (e.a += "?", n.b ? (e.a += " super ", _F(n.b, e)) : n.f && (e.a += " extends ", _F(n.f, e))); + } + function vIe(n) { + n.b = null, n.a = null, n.o = null, n.q = null, n.v = null, n.w = null, n.B = null, n.p = null, n.Q = null, n.R = null, n.S = null, n.T = null, n.U = null, n.V = null, n.W = null, n.bb = null, n.eb = null, n.ab = null, n.H = null, n.db = null, n.c = null, n.d = null, n.f = null, n.n = null, n.r = null, n.s = null, n.u = null, n.G = null, n.J = null, n.e = null, n.j = null, n.i = null, n.g = null, n.k = null, n.t = null, n.F = null, n.I = null, n.L = null, n.M = null, n.O = null, n.P = null, n.$ = null, n.N = null, n.Z = null, n.cb = null, n.K = null, n.D = null, n.A = null, n.C = null, n._ = null, n.fb = null, n.X = null, n.Y = null, n.gb = !1, n.hb = !1; + } + function kIe(n) { + var e, t, i, r; + if (i = ZF((!n.c && (n.c = J7(vc(n.f))), n.c), 0), n.e == 0 || n.a == 0 && n.f != -1 && n.e < 0) + return i; + if (e = xQ(n) < 0 ? 1 : 0, t = n.e, r = (i.length + 1 + y.Math.abs(gi(n.e)), new fg()), e == 1 && (r.a += "-"), n.e > 0) + if (t -= i.length - e, t >= 0) { + for (r.a += "0."; t > Od.length; t -= Od.length) + QSn(r, Od); + $An(r, Od, gi(t)), Re(r, (zn(e, i.length + 1), i.substr(e))); + } else + t = e - t, Re(r, qo(i, e, gi(t))), r.a += ".", Re(r, $W(i, gi(t))); + else { + for (Re(r, (zn(e, i.length + 1), i.substr(e))); t < -Od.length; t += Od.length) + QSn(r, Od); + $An(r, Od, gi(-t)); + } + return r.a; + } + function HF(n) { + var e, t, i, r, c, s, f, h, l; + return !(n.k != (Vn(), Xt) || n.j.c.length <= 1 || (c = u(v(n, (cn(), Ht)), 101), c == (Li(), Uc)) || (r = (uw(), (n.q ? n.q : (Dn(), Dn(), Vh))._b(bb) ? i = u(v(n, bb), 203) : i = u(v(Hi(n), z8), 203), i), r == TI) || !(r == P2 || r == S2) && (s = $(R(cw(n, X8))), e = u(v(n, Aj), 140), !e && (e = new mV(s, s, s, s)), l = uc(n, (en(), Wn)), h = e.d + e.a + (l.gc() - 1) * s, h > n.o.b || (t = uc(n, Zn), f = e.d + e.a + (t.gc() - 1) * s, f > n.o.b))); + } + function yIe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j; + e.Ug("Orthogonal edge routing", 1), l = $(R(v(n, (cn(), A2)))), t = $(R(v(n, M2))), i = $(R(v(n, Rd))), g = new lN(0, t), j = 0, s = new Fi(n.b, 0), f = null, a = null, h = null, d = null; + do + a = s.b < s.d.gc() ? (oe(s.b < s.d.gc()), u(s.d.Xb(s.c = s.b++), 30)) : null, d = a ? a.a : null, f && (Wen(f, j), j += f.c.a), k = f ? j + i : j, m = ntn(g, n, h, d, k), r = !f || SC(h, (OA(), Dj)), c = !a || SC(d, (OA(), Dj)), m > 0 ? (p = (m - 1) * t, f && (p += i), a && (p += i), p < l && !r && !c && (p = l), j += p) : !r && !c && (j += l), f = a, h = d; + while (a); + n.f.a = j, e.Vg(); + } + function qA(n, e) { + var t, i, r, c, s, f, h, l, a, d; + if (a = null, n.d && (a = u($c(n.d, e), 142)), !a) { + if (c = n.a.vi(), d = c.i, !n.d || c6(n.d) != d) { + for (h = new de(), n.d && s5(h, n.d), l = h.f.c + h.i.c, f = l; f < d; ++f) + i = u(L(c, f), 142), r = c1(n.e, i).xe(), t = u(r == null ? Wc(h.f, null, i) : x0(h.i, r, i), 142), t && t != i && (r == null ? Wc(h.f, null, t) : x0(h.i, r, t)); + if (h.f.c + h.i.c != d) + for (s = 0; s < l; ++s) + i = u(L(c, s), 142), r = c1(n.e, i).xe(), t = u(r == null ? Wc(h.f, null, i) : x0(h.i, r, i), 142), t && t != i && (r == null ? Wc(h.f, null, t) : x0(h.i, r, t)); + n.d = h; + } + a = u($c(n.d, e), 142); + } + return a; + } + function qF(n, e, t, i, r, c, s) { + var f, h, l, a, d, g, p; + return d = on(un(v(e, (cn(), ohn)))), g = null, c == (pr(), zu) && i.c.i == t ? g = i.c : c == Qc && i.d.i == t && (g = i.d), l = s, !l || !d || g ? (a = (en(), sc), g ? a = g.j : mg(u(v(t, Ht), 101)) && (a = c == zu ? Wn : Zn), h = jIe(n, e, t, c, a, i), f = JN((Hi(t), i)), c == zu ? (Yi(f, u(sn(h.j, 0), 12)), Di(f, r)) : (Yi(f, r), Di(f, u(sn(h.j, 0), 12))), l = new aBn(i, f, h, u(v(h, (W(), st)), 12), c, !g)) : (nn(l.e, i), p = y.Math.max($(R(v(l.d, v1))), $(R(v(i, v1)))), U(l.d, v1, p)), Pn(n.a, i, new zC(l.d, e, c)), l; + } + function UF() { + UF = F; + var n; + Hdn = new sjn(), $oe = K(fn, J, 2, 0, 6, 1), Loe = lf(Up(33, 58), Up(1, 26)), Noe = lf(Up(97, 122), Up(65, 90)), Fdn = Up(48, 57), Ooe = lf(Loe, 0), Doe = lf(Noe, Fdn), Bdn = lf(lf(0, Up(1, 6)), Up(33, 38)), Rdn = lf(lf(Fdn, Up(65, 70)), Up(97, 102)), xoe = lf(Ooe, ZT("-_.!~*'()")), Foe = lf(Doe, GT("-_.!~*'()")), ZT(eJn), GT(eJn), lf(xoe, ZT(";:@&=+$,")), lf(Foe, GT(";:@&=+$,")), Kdn = ZT(":/?#"), _dn = GT(":/?#"), D9 = ZT("/?#"), L9 = GT("/?#"), n = new ei(), n.a.zc("jar", n), n.a.zc("zip", n), n.a.zc("archive", n), jO = (Dn(), new i4(n)); + } + function jIe(n, e, t, i, r, c) { + var s, f, h, l, a, d; + return s = null, l = i == (pr(), zu) ? c.c : c.d, h = KT(e), l.i == t ? (s = u(ee(n.b, l), 10), s || (s = my(l, u(v(t, (cn(), Ht)), 101), r, TSe(l), null, l.n, l.o, h, e), U(s, (W(), st), l), Xe(n.b, l, s))) : (s = my((a = new xO(), d = $(R(v(e, (cn(), Ws)))) / 2, Ak(a, _w, d), a), u(v(t, Ht), 101), r, i == zu ? -1 : 1, null, new Ni(), new V(0, 0), h, e), f = eye(s, t, i), U(s, (W(), st), f), Xe(n.b, f, s)), u(v(e, (W(), qc)), 21).Fc((mr(), cs)), mg(u(v(e, (cn(), Ht)), 101)) ? U(e, Ht, (Li(), Rv)) : U(e, Ht, (Li(), Jf)), s; + } + function Om(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m; + f = 0, m = 0, h = DM(n.g, n.g.length), c = n.e, s = n.j, i = n.b, r = n.c; + do { + for (p = 0, a = new C(n.q); a.a < a.c.c.length; ) + l = u(E(a), 10), g = TGn(n, l), t = !0, (n.r == (ps(), Sj) || n.r == Pj) && (t = on(un(g.b))), u(g.a, 17).a < 0 && t ? (++p, h = DM(n.g, n.g.length), n.e = n.e + u(g.a, 17).a, m += c - n.e, c = n.e + u(g.a, 17).a, s = n.j, i = A0(n.b), r = A0(n.c)) : (n.g = DM(h, h.length), n.e = c, n.b = (Se(i), i ? new Ru(i) : k4(new C(i))), n.c = (Se(r), r ? new Ru(r) : k4(new C(r))), n.j = s); + ++f, d = p != 0 && on(un(e.Kb(new wi(Y(m), Y(f))))); + } while (d); + } + function EIe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn; + return s = n.f, g = e.f, f = s == (x5(), D3) || s == a9, p = g == D3 || g == a9, h = s == N2 || s == d9, m = g == N2 || g == d9, l = s == N2 || s == D3, k = g == N2 || g == D3, f && p ? n.f == a9 ? n : e : h && m ? n.f == d9 ? n : e : l && k ? (s == N2 ? (d = n, a = e) : (d = e, a = n), c = (j = t.j + t.f, S = d.e + i.f, I = y.Math.max(j, S), O = I - y.Math.min(t.j, d.e), N = d.d + i.g - t.i, N * O), r = (_ = t.i + t.g, X = a.d + i.g, tn = y.Math.max(_, X), yn = tn - y.Math.min(t.i, a.d), kn = a.e + i.f - t.j, yn * kn), c <= r ? n.f == N2 ? n : e : n.f == D3 ? n : e) : n; + } + function oGn(n, e) { + var t, i, r, c, s, f, h, l, a, d; + if (U(e, (pt(), Dv), 0), h = u(v(e, $I), 40), e.d.b == 0) + h ? (a = $(R(v(h, E1))) + n.b + OY(n, h, e), U(e, E1, a)) : U(e, E1, 0); + else { + for (i = (c = ge(new sl(e).a.d, 0), new sg(c)); Q9(i.a); ) + t = u(be(i.a), 65).c, oGn(n, t); + f = u(NC((s = ge(new sl(e).a.d, 0), new sg(s))), 40), d = u(I1e((r = ge(new sl(e).a.d, 0), new sg(r))), 40), l = ($(R(v(d, E1))) + $(R(v(f, E1)))) / 2, h ? (a = $(R(v(h, E1))) + n.b + OY(n, h, e), U(e, E1, a), U(e, Dv, $(R(v(e, E1))) - l), $Oe(n, e)) : U(e, E1, l); + } + } + function CIe(n) { + var e, t, i, r, c, s, f, h, l, a, d; + for (a = n.e.a.c.length, s = new C(n.e.a); s.a < s.c.c.length; ) + c = u(E(s), 125), c.j = !1; + for (n.i = K(ye, _e, 28, a, 15, 1), n.g = K(ye, _e, 28, a, 15, 1), n.n = new Z(), r = 0, d = new Z(), h = new C(n.e.a); h.a < h.c.c.length; ) + f = u(E(h), 125), f.d = r++, f.b.a.c.length == 0 && nn(n.n, f), li(d, f.g); + for (e = 0, i = new C(d); i.a < i.c.c.length; ) + t = u(E(i), 218), t.c = e++, t.f = !1; + l = d.c.length, n.b == null || n.b.length < l ? (n.b = K(Oi, Ar, 28, l, 15, 1), n.c = K(oo, zh, 28, l, 16, 1)) : e6(n.c), n.d = d, n.p = new CL(Yb(n.d.c.length)), n.j = 1; + } + function MIe(n, e) { + var t, i, r, c, s, f, h, l, a; + if (!(e.e.c.length <= 1)) { + for (n.f = e, n.d = u(v(n.f, (Uk(), Eon)), 391), n.g = u(v(n.f, Aon), 17).a, n.e = $(R(v(n.f, Con))), n.c = $(R(v(n.f, EP))), RPn(n.b), r = new C(n.f.c); r.a < r.c.c.length; ) + i = u(E(r), 290), Pen(n.b, i.c, i, null), Pen(n.b, i.d, i, null); + for (f = n.f.e.c.length, n.a = Ja(Oi, [J, Ar], [109, 28], 15, [f, f], 2), l = new C(n.f.e); l.a < l.c.c.length; ) + h = u(E(l), 153), QPe(n, h, n.a[h.a]); + for (n.i = Ja(Oi, [J, Ar], [109, 28], 15, [f, f], 2), c = 0; c < f; ++c) + for (s = 0; s < f; ++s) + t = n.a[c][s], a = 1 / (t * t), n.i[c][s] = a; + } + } + function sGn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p; + if (f = e.ah(), f || e.Ug(CXn, 1), t = u(v(n, (W(), wH)), 15), s = 1 / t.gc(), e._g()) + for (e.bh("ELK Layered uses the following " + t.gc() + " modules:"), p = 0, g = t.Kc(); g.Ob(); ) + a = u(g.Pb(), 47), i = (p < 10 ? "0" : "") + p++, e.bh(" Slot " + i + ": " + Va(wo(a))); + for (d = t.Kc(); d.Ob(); ) { + if (a = u(d.Pb(), 47), e.$g()) + return; + a.Kf(n, e.eh(s)); + } + for (c = new C(n.b); c.a < c.c.c.length; ) + r = u(E(c), 30), li(n.a, r.a), r.a.c.length = 0; + for (l = new C(n.a); l.a < l.c.c.length; ) + h = u(E(l), 10), xi(h, null); + n.b.c.length = 0, f || e.Vg(); + } + function TIe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p; + if (l = new Z(), !kt(n, (W(), hH))) + return l; + for (i = u(v(n, hH), 15).Kc(); i.Ob(); ) + e = u(i.Pb(), 10), qIe(e, n), Kn(l.c, e); + for (c = new C(n.b); c.a < c.c.c.length; ) + for (r = u(E(c), 30), f = new C(r.a); f.a < f.c.c.length; ) + s = u(E(f), 10), s.k == (Vn(), ni) && (h = u(v(s, cI), 10), h && (a = new Ic(), ic(a, s), d = u(v(s, gc), 64), pi(a, d), g = u(sn(h.j, 0), 12), p = new C0(), Yi(p, a), Di(p, g))); + for (t = new C(l); t.a < t.c.c.length; ) + e = u(E(t), 10), xi(e, u(sn(n.b, n.b.c.length - 1), 30)); + return l; + } + function fGn(n, e, t) { + var i, r, c, s, f, h, l, a, d; + for (d = new Z(), a = new dJ(0, t), c = 0, wT(a, new U$(0, 0, a, t)), r = 0, l = new ne(n); l.e != l.i.gc(); ) + h = u(ue(l), 27), i = u(sn(a.a, a.a.c.length - 1), 172), f = r + h.g + (u(sn(a.a, 0), 172).b.c.length == 0 ? 0 : t), (f > e || on(un(z(h, (Bf(), Kj))))) && (r = 0, c += a.b + t, Kn(d.c, a), a = new dJ(c, t), i = new U$(0, a.f, a, t), wT(a, i), r = 0), i.b.c.length == 0 || !on(un(z(At(h), (Bf(), Lq)))) && (h.f >= i.o && h.f <= i.f || i.a * 0.5 <= h.f && i.a * 1.5 >= h.f) ? xY(i, h) : (s = new U$(i.s + i.r + t, a.f, a, t), wT(a, s), xY(s, h)), r = h.i + h.g; + return Kn(d.c, a), d; + } + function z5(n) { + var e, t, i, r; + if (!(n.b == null || n.b.length <= 2) && !n.a) { + for (e = 0, r = 0; r < n.b.length; ) { + for (e != r ? (n.b[e] = n.b[r++], n.b[e + 1] = n.b[r++]) : r += 2, t = n.b[e + 1]; r < n.b.length && !(t + 1 < n.b[r]); ) + if (t + 1 == n.b[r]) + n.b[e + 1] = n.b[r + 1], t = n.b[e + 1], r += 2; + else if (t >= n.b[r + 1]) + r += 2; + else if (t < n.b[r + 1]) + n.b[e + 1] = n.b[r + 1], t = n.b[e + 1], r += 2; + else + throw M(new ec("Token#compactRanges(): Internel Error: [" + n.b[e] + "," + n.b[e + 1] + "] [" + n.b[r] + "," + n.b[r + 1] + "]")); + e += 2; + } + e != n.b.length && (i = K(ye, _e, 28, e, 15, 1), Oc(n.b, 0, i, 0, e), n.b = i), n.a = !0; + } + } + function AIe(n, e) { + var t, i, r, c, s, f, h; + for (s = Tp(n.a).Kc(); s.Ob(); ) { + if (c = u(s.Pb(), 18), c.b.c.length > 0) + for (i = new Ru(u(ot(n.a, c), 21)), Dn(), Zt(i, new LG(e)), r = new Fi(c.b, 0); r.b < r.d.gc(); ) { + switch (t = (oe(r.b < r.d.gc()), u(r.d.Xb(r.c = r.b++), 72)), f = -1, u(v(t, (cn(), Th)), 278).g) { + case 1: + f = i.c.length - 1; + break; + case 0: + f = Nke(i); + break; + case 2: + f = 0; + } + f != -1 && (h = (Ln(f, i.c.length), u(i.c[f], 249)), nn(h.b.b, t), u(v(Hi(h.b.c.i), (W(), qc)), 21).Fc((mr(), vv)), u(v(Hi(h.b.c.i), qc), 21).Fc(mv), bo(r), U(t, ufn, c)); + } + Yi(c, null), Di(c, null); + } + } + function SIe(n, e) { + var t, i, r, c; + return t = new jbn(), i = u(Wr(_r(new Tn(null, new In(n.f, 16)), t), Jb(new Y2(), new Z2(), new np(), new ep(), A(T($r, 1), G, 108, 0, [(qu(), Sw), Yr]))), 21), r = i.gc(), r = r == 2 ? 1 : 0, r == 1 && s0(Bk(u(Wr(ut(i.Lc(), new Ebn()), Dxn(Ml(0), new RU())), 168).a, 2), 0) && (r = 0), i = u(Wr(_r(new Tn(null, new In(e.f, 16)), t), Jb(new Y2(), new Z2(), new np(), new ep(), A(T($r, 1), G, 108, 0, [Sw, Yr]))), 21), c = i.gc(), c = c == 2 ? 1 : 0, c == 1 && s0(Bk(u(Wr(ut(i.Lc(), new Cbn()), Dxn(Ml(0), new RU())), 168).a, 2), 0) && (c = 0), r < c ? -1 : r == c ? 0 : 1; + } + function hGn(n) { + var e, t, i, r, c, s, f, h, l, a, d, g; + for (e = Af(n), c = on(un(z(e, (cn(), Kw)))), a = 0, r = 0, l = new ne((!n.e && (n.e = new Nn(Wt, n, 7, 4)), n.e)); l.e != l.i.gc(); ) + h = u(ue(l), 74), f = H0(h), s = f && c && on(un(z(h, $d))), g = Gr(u(L((!h.c && (h.c = new Nn(he, h, 5, 8)), h.c), 0), 84)), f && s ? ++r : f && !s ? ++a : At(g) == e || g == e ? ++r : ++a; + for (i = new ne((!n.d && (n.d = new Nn(Wt, n, 8, 5)), n.d)); i.e != i.i.gc(); ) + t = u(ue(i), 74), f = H0(t), s = f && c && on(un(z(t, $d))), d = Gr(u(L((!t.b && (t.b = new Nn(he, t, 4, 7)), t.b), 0), 84)), f && s ? ++a : f && !s ? ++r : At(d) == e || d == e ? ++a : ++r; + return a - r; + } + function PIe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p; + if (e.Ug("Edge splitting", 1), n.b.c.length <= 2) { + e.Vg(); + return; + } + for (c = new Fi(n.b, 0), s = (oe(c.b < c.d.gc()), u(c.d.Xb(c.c = c.b++), 30)); c.b < c.d.gc(); ) + for (r = s, s = (oe(c.b < c.d.gc()), u(c.d.Xb(c.c = c.b++), 30)), h = new C(r.a); h.a < h.c.c.length; ) + for (f = u(E(h), 10), a = new C(f.j); a.a < a.c.c.length; ) + for (l = u(E(a), 12), i = new C(l.g); i.a < i.c.c.length; ) + t = u(E(i), 18), g = t.d, d = g.i.c, d != r && d != s && kqn(t, (p = new Tl(n), qa(p, (Vn(), Ti)), U(p, (W(), st), t), U(p, (cn(), Ht), (Li(), Uc)), xi(p, s), p)); + e.Vg(); + } + function IIe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g; + for (a = new Z(), g = new ei(), s = e.b, r = 0; r < s.c.length; r++) { + for (l = (Ln(r, s.c.length), u(s.c[r], 30)).a, a.c.length = 0, c = 0; c < l.c.length; c++) + f = n.a[r][c], f.p = c, f.k == (Vn(), Hc) && Kn(a.c, f), Go(u(sn(e.b, r), 30).a, c, f), f.j.c.length = 0, li(f.j, u(u(sn(n.b, r), 15).Xb(c), 16)), Ep(u(v(f, (cn(), Ht)), 101)) || U(f, Ht, (Li(), Gd)); + for (i = new C(a); i.a < i.c.c.length; ) + t = u(E(i), 10), d = cSe(t), g.a.zc(d, g), g.a.zc(t, g); + } + for (h = g.a.ec().Kc(); h.Ob(); ) + f = u(h.Pb(), 10), Dn(), Zt(f.j, (rm(), jsn)), f.i = !0, Snn(f); + } + function lGn(n) { + var e, t, i, r, c; + return n.g != null ? n.g : n.a < 32 ? (n.g = WDe(vc(n.f), gi(n.e)), n.g) : (r = ZF((!n.c && (n.c = J7(vc(n.f))), n.c), 0), n.e == 0 ? r : (e = (!n.c && (n.c = J7(vc(n.f))), n.c).e < 0 ? 2 : 1, t = r.length, i = -n.e + t - e, c = new x1(), c.a += "" + r, n.e > 0 && i >= -6 ? i >= 0 ? E7(c, t - gi(n.e), String.fromCharCode(46)) : (L$(c, e - 1, e - 1, "0."), E7(c, e + 1, ws(Od, 0, -gi(i) - 1))) : (t - e >= 1 && (E7(c, e, String.fromCharCode(46)), ++t), E7(c, t, String.fromCharCode(69)), i > 0 && E7(c, ++t, String.fromCharCode(43)), E7(c, ++t, "" + _6(vc(i)))), n.g = c.a, n.g)); + } + function OIe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn; + i = $(R(v(e, (cn(), fhn)))), _ = u(v(e, V8), 17).a, g = 4, r = 3, X = 20 / _, p = !1, h = 0, s = et; + do { + for (c = h != 1, d = h != 0, tn = 0, j = n.a, I = 0, N = j.length; I < N; ++I) + m = j[I], m.f = null, mDe(n, m, c, d, i), tn += y.Math.abs(m.a); + do + f = cPe(n, e); + while (f); + for (k = n.a, S = 0, O = k.length; S < O; ++S) + if (m = k[S], t = yW(m).a, t != 0) + for (a = new C(m.e); a.a < a.c.c.length; ) + l = u(E(a), 10), l.n.b += t; + h == 0 || h == 1 ? (--g, g <= 0 && (tn < s || -g > _) ? (h = 2, s = et) : h == 0 ? (h = 1, s = tn) : (h = 0, s = tn)) : (p = tn >= s || s - tn < X, s = tn, p && --r); + } while (!(p && r <= 0)); + } + function GF(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m; + for (m = new de(), c = n.a.ec().Kc(); c.Ob(); ) + i = u(c.Pb(), 177), Xe(m, i, t.af(i)); + for (s = (Se(n), n ? new Ru(n) : k4(n.a.ec().Kc())), Zt(s, new I9n(m)), f = HM(s), h = new LC(e), p = new de(), Wc(p.f, e, h); f.a.gc() != 0; ) { + for (l = null, a = null, d = null, r = f.a.ec().Kc(); r.Ob(); ) + if (i = u(r.Pb(), 177), $(R(Kr(gr(m.f, i)))) <= St) { + if (Zc(p, i.a) && !Zc(p, i.b)) { + a = i.b, d = i.a, l = i; + break; + } + if (Zc(p, i.b) && !Zc(p, i.a)) { + a = i.a, d = i.b, l = i; + break; + } + } + if (!l) + break; + g = new LC(a), nn(u(Kr(gr(p.f, d)), 225).a, g), Wc(p.f, a, g), f.a.Bc(l) != null; + } + return h; + } + function DIe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p; + for (t.Ug("Depth-first cycle removal", 1), d = e.a, a = d.c.length, n.c = new Z(), n.d = K(oo, zh, 28, a, 16, 1), n.a = K(oo, zh, 28, a, 16, 1), n.b = new Z(), s = 0, l = new C(d); l.a < l.c.c.length; ) + h = u(E(l), 10), h.p = s, L4(Ei(h)) && nn(n.c, h), ++s; + for (p = new C(n.c); p.a < p.c.c.length; ) + g = u(E(p), 10), ynn(n, g); + for (c = 0; c < a; c++) + n.d[c] || (f = (Ln(c, d.c.length), u(d.c[c], 10)), ynn(n, f)); + for (r = new C(n.b); r.a < r.c.c.length; ) + i = u(E(r), 18), G0(i, !0), U(e, (W(), kj), (_n(), !0)); + n.c = null, n.d = null, n.a = null, n.b = null, t.Vg(); + } + function LIe(n, e) { + Vg(); + var t, i, r, c, s, f; + return c = e.c - (n.c + n.b), r = n.c - (e.c + e.b), s = n.d - (e.d + e.a), t = e.d - (n.d + n.a), i = y.Math.max(r, c), f = y.Math.max(s, t), Mf(), Ks(yh), (y.Math.abs(i) <= yh || i == 0 || isNaN(i) && isNaN(0) ? 0 : i < 0 ? -1 : i > 0 ? 1 : f0(isNaN(i), isNaN(0))) >= 0 ^ (Ks(yh), (y.Math.abs(f) <= yh || f == 0 || isNaN(f) && isNaN(0) ? 0 : f < 0 ? -1 : f > 0 ? 1 : f0(isNaN(f), isNaN(0))) >= 0) ? y.Math.max(f, i) : (Ks(yh), (y.Math.abs(i) <= yh || i == 0 || isNaN(i) && isNaN(0) ? 0 : i < 0 ? -1 : i > 0 ? 1 : f0(isNaN(i), isNaN(0))) > 0 ? y.Math.sqrt(f * f + i * i) : -y.Math.sqrt(f * f + i * i)); + } + function md(n, e) { + var t, i, r, c, s, f; + if (e) { + if (!n.a && (n.a = new BE()), n.e == 2) { + FE(n.a, e); + return; + } + if (e.e == 1) { + for (r = 0; r < e.Pm(); r++) + md(n, e.Lm(r)); + return; + } + if (f = n.a.a.c.length, f == 0) { + FE(n.a, e); + return; + } + if (s = u(y0(n.a, f - 1), 122), !((s.e == 0 || s.e == 10) && (e.e == 0 || e.e == 10))) { + FE(n.a, e); + return; + } + c = e.e == 0 ? 2 : e.Mm().length, s.e == 0 ? (t = new i6(), i = s.Km(), i >= fr ? Cr(t, $Y(i)) : M4(t, i & oi), s = new IN(10, null, 0), wwe(n.a, s, f - 1)) : (t = (s.Mm().length + c, new i6()), Cr(t, s.Mm())), e.e == 0 ? (i = e.Km(), i >= fr ? Cr(t, $Y(i)) : M4(t, i & oi)) : Cr(t, e.Mm()), u(s, 530).b = t.a; + } + } + function NIe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j; + if (!t.dc()) { + for (f = 0, g = 0, i = t.Kc(), m = u(i.Pb(), 17).a; f < e.f; ) { + if (f == m && (g = 0, i.Ob() ? m = u(i.Pb(), 17).a : m = e.f + 1), f != g) { + for (j = u(sn(n.b, f), 30), p = u(sn(n.b, g), 30), k = A0(j.a), d = new C(k); d.a < d.c.c.length; ) + if (a = u(E(d), 10), ow(a, p.a.c.length, p), g == 0) + for (s = A0(Ei(a)), c = new C(s); c.a < c.c.c.length; ) + r = u(E(c), 18), G0(r, !0), U(n, (W(), kj), (_n(), !0)), gGn(n, r, 1); + } + ++g, ++f; + } + for (h = new Fi(n.b, 0); h.b < h.d.gc(); ) + l = (oe(h.b < h.d.gc()), u(h.d.Xb(h.c = h.b++), 30)), l.a.c.length == 0 && bo(h); + } + } + function $Ie(n, e, t) { + var i, r, c; + if (r = u(v(e, (cn(), fI)), 282), r != (ym(), x8)) { + switch (t.Ug("Horizontal Compaction", 1), n.a = e, c = new zNn(), i = new uHn((c.d = e, c.c = u(v(c.d, $l), 223), TAe(c), LOe(c), NAe(c), c.a)), yhe(i, n.b), u(v(e, Rfn), 431).g) { + case 1: + Gjn(i, new pxn(n.a)); + break; + default: + Gjn(i, (QW(), KQn)); + } + switch (r.g) { + case 1: + $5(i); + break; + case 2: + $5(UA(i, (ui(), Xr))); + break; + case 3: + $5(zjn(UA($5(i), (ui(), Xr)), new q2n())); + break; + case 4: + $5(zjn(UA($5(i), (ui(), Xr)), new g7n(c))); + break; + case 5: + $5(khe(i, QZn)); + } + UA(i, (ui(), Fr)), i.e = !0, sDe(c), t.Vg(); + } + } + function xIe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + for (s = e.b, a = s.o, h = s.d, i = $(R(nA(s, (cn(), Ws)))), r = $(R(nA(s, T2))), l = $(R(nA(s, OH))), f = new sD(), XV(f, h.d, h.c, h.a, h.b), g = zAe(e, i, r, l), S = new C(e.d); S.a < S.c.c.length; ) { + for (j = u(E(S), 105), m = j.f.a.ec().Kc(); m.Ob(); ) + p = u(m.Pb(), 340), c = p.a, d = Tye(p), t = (I = new Cu(), $Kn(p, p.c, g, I), Zye(p, d, g, I), $Kn(p, p.d, g, I), I), t = n.ng(p, d, t), vo(c.a), Ri(c.a, t), Ut(new Tn(null, new In(t, 16)), new KCn(a, f)); + k = j.i, k && (bye(j, k, g, r), O = new ir(k.g), uZ(a, f, O), tt(O, k.j), uZ(a, f, O)); + } + XV(h, f.d, f.c, f.a, f.b); + } + function FIe(n, e, t, i, r, c, s, f) { + var h, l, a, d; + switch (h = If(A(T(SNe, 1), Bn, 238, 0, [e, t, i, r])), d = null, n.b.g) { + case 1: + d = If(A(T(T1n, 1), Bn, 535, 0, [new KO(), new BO(), new RO()])); + break; + case 0: + d = If(A(T(T1n, 1), Bn, 535, 0, [new RO(), new BO(), new KO()])); + break; + case 2: + d = If(A(T(T1n, 1), Bn, 535, 0, [new BO(), new KO(), new RO()])); + } + for (a = new C(d); a.a < a.c.c.length; ) + l = u(E(a), 535), h.c.length > 1 && (h = l.Hg(h, n.a, f)); + return h.c.length == 1 ? u(sn(h, h.c.length - 1), 238) : h.c.length == 2 ? EIe((Ln(0, h.c.length), u(h.c[0], 238)), (Ln(1, h.c.length), u(h.c[1], 238)), s, c) : null; + } + function BIe(n, e, t) { + var i, r, c, s, f, h, l; + for (t.Ug("Find roots", 1), n.a.c.length = 0, r = ge(e.b, 0); r.b != r.d.c; ) + i = u(be(r), 40), i.b.b == 0 && (U(i, (pt(), Ma), (_n(), !0)), nn(n.a, i)); + switch (n.a.c.length) { + case 0: + c = new q$(0, e, "DUMMY_ROOT"), U(c, (pt(), Ma), (_n(), !0)), U(c, tq, !0), Fe(e.b, c); + break; + case 1: + break; + default: + for (s = new q$(0, e, IS), h = new C(n.a); h.a < h.c.c.length; ) + f = u(E(h), 40), l = new JW(s, f), U(l, (pt(), tq), (_n(), !0)), Fe(s.a.a, l), Fe(s.d, l), Fe(f.b, l), U(f, Ma, !1); + U(s, (pt(), Ma), (_n(), !0)), U(s, tq, !0), Fe(e.b, s); + } + t.Vg(); + } + function aGn(n) { + var e, t, i, r, c, s; + for (nu(n.a, new Lbn()), t = new C(n.a); t.a < t.c.c.length; ) + e = u(E(t), 225), i = vi(Ki(u(n.b, 68).c), u(e.b, 68).c), MYn ? (s = u(n.b, 68).b, c = u(e.b, 68).b, y.Math.abs(i.a) >= y.Math.abs(i.b) ? (i.b = 0, c.d + c.a > s.d && c.d < s.d + s.a && JC(i, y.Math.max(s.c - (c.c + c.b), c.c - (s.c + s.b)))) : (i.a = 0, c.c + c.b > s.c && c.c < s.c + s.b && JC(i, y.Math.max(s.d - (c.d + c.a), c.d - (s.d + s.a))))) : JC(i, xUn(u(n.b, 68), u(e.b, 68))), r = y.Math.sqrt(i.a * i.a + i.b * i.b), r = IKn(I8, e, r, i), JC(i, r), YL(u(e.b, 68), i), nu(e.a, new IG(i)), u(I8.b, 68), XJ(I8, con, e); + } + function RIe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m; + for (n.f = new oD(), l = 0, r = 0, s = new C(n.e.b); s.a < s.c.c.length; ) + for (c = u(E(s), 30), h = new C(c.a); h.a < h.c.c.length; ) { + for (f = u(E(h), 10), f.p = l++, i = new ie(ce(Qt(f).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 18), t.p = r++; + for (e = HF(f), g = new C(f.j); g.a < g.c.c.length; ) + d = u(E(g), 12), e && (m = d.a.b, m != y.Math.floor(m) && (a = m - rd(vc(y.Math.round(m))), d.a.b -= a)), p = d.n.b + d.a.b, p != y.Math.floor(p) && (a = p - rd(vc(y.Math.round(p))), d.n.b -= a); + } + n.g = l, n.b = r, n.i = K(CNe, Bn, 412, l, 0, 1), n.c = K(ENe, Bn, 655, r, 0, 1), n.d.a.$b(); + } + function me(n) { + var e, t, i, r, c, s, f, h, l; + if (n.Pj()) + if (h = n.Qj(), n.i > 0) { + if (e = new gX(n.i, n.g), t = n.i, c = t < 100 ? null : new F1(t), n.Tj()) + for (i = 0; i < n.i; ++i) + s = n.g[i], c = n.Vj(s, c); + if (e5(n), r = t == 1 ? n.Ij(4, L(e, 0), null, 0, h) : n.Ij(6, e, null, -1, h), n.Mj()) { + for (i = new yp(e); i.e != i.i.gc(); ) + c = n.Oj(Mx(i), c); + c ? (c.nj(r), c.oj()) : n.Jj(r); + } else + c ? (c.nj(r), c.oj()) : n.Jj(r); + } else + e5(n), n.Jj(n.Ij(6, (Dn(), or), null, -1, h)); + else if (n.Mj()) + if (n.i > 0) { + for (f = n.g, l = n.i, e5(n), c = l < 100 ? null : new F1(l), i = 0; i < l; ++i) + s = f[i], c = n.Oj(s, c); + c && c.oj(); + } else + e5(n); + else + e5(n); + } + function Ven(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + for (zxn(this), t == (T0(), Ca) ? hi(this.r, n) : hi(this.w, n), a = St, l = ai, s = e.a.ec().Kc(); s.Ob(); ) + r = u(s.Pb(), 42), f = u(r.a, 465), i = u(r.b, 18), h = i.c, h == n && (h = i.d), f == Ca ? hi(this.r, h) : hi(this.w, h), g = (en(), pu).Hc(h.j) ? $(R(v(h, (W(), yv)))) : cc(A(T(Ci, 1), J, 8, 0, [h.i.n, h.n, h.a])).b, a = y.Math.min(a, g), l = y.Math.max(l, g); + for (d = (en(), pu).Hc(n.j) ? $(R(v(n, (W(), yv)))) : cc(A(T(Ci, 1), J, 8, 0, [n.i.n, n.n, n.a])).b, ZKn(this, d, a, l), c = e.a.ec().Kc(); c.Ob(); ) + r = u(c.Pb(), 42), f_n(this, u(r.b, 18)); + this.o = !1; + } + function KIe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te; + return t = n.l & 8191, i = n.l >> 13 | (n.m & 15) << 9, r = n.m >> 4 & 8191, c = n.m >> 17 | (n.h & 255) << 5, s = (n.h & 1048320) >> 8, f = e.l & 8191, h = e.l >> 13 | (e.m & 15) << 9, l = e.m >> 4 & 8191, a = e.m >> 17 | (e.h & 255) << 5, d = (e.h & 1048320) >> 8, yn = t * f, kn = i * f, Fn = r * f, Rn = c * f, te = s * f, h != 0 && (kn += t * h, Fn += i * h, Rn += r * h, te += c * h), l != 0 && (Fn += t * l, Rn += i * l, te += r * l), a != 0 && (Rn += t * a, te += i * a), d != 0 && (te += t * d), p = yn & io, m = (kn & 511) << 13, g = p + m, j = yn >> 22, S = kn >> 9, I = (Fn & 262143) << 4, O = (Rn & 31) << 17, k = j + S + I + O, _ = Fn >> 18, X = Rn >> 5, tn = (te & 4095) << 8, N = _ + X + tn, k += g >> 22, g &= io, N += k >> 22, k &= io, N &= Il, Yc(g, k, N); + } + function dGn(n) { + var e, t, i, r, c, s, f; + if (f = u(sn(n.j, 0), 12), f.g.c.length != 0 && f.e.c.length != 0) + throw M(new Ir("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.")); + if (f.g.c.length != 0) { + for (c = St, t = new C(f.g); t.a < t.c.c.length; ) + e = u(E(t), 18), s = e.d.i, i = u(v(s, (cn(), pI)), 140), c = y.Math.min(c, s.n.a - i.b); + return new TE(Se(c)); + } + if (f.e.c.length != 0) { + for (r = ai, t = new C(f.e); t.a < t.c.c.length; ) + e = u(E(t), 18), s = e.c.i, i = u(v(s, (cn(), pI)), 140), r = y.Math.max(r, s.n.a + s.o.a + i.c); + return new TE(Se(r)); + } + return Zv(), Zv(), KK; + } + function bGn(n, e) { + var t, i, r, c, s, f, h; + if (n.ol()) { + if (n.i > 4) + if (n.fk(e)) { + if (n.al()) { + if (r = u(e, 54), i = r.Eh(), h = i == n.e && (n.ml() ? r.yh(r.Fh(), n.il()) == n.jl() : -1 - r.Fh() == n.Lj()), n.nl() && !h && !i && r.Jh()) { + for (c = 0; c < n.i; ++c) + if (t = n.pl(u(n.g[c], 58)), x(t) === x(e)) + return !0; + } + return h; + } else if (n.ml() && !n.ll()) { + if (s = u(e, 58).Mh(br(u(n.Lk(), 19))), x(s) === x(n.e)) + return !0; + if (s == null || !u(s, 58).Vh()) + return !1; + } + } else + return !1; + if (f = vm(n, e), n.nl() && !f) { + for (c = 0; c < n.i; ++c) + if (r = n.pl(u(n.g[c], 58)), x(r) === x(e)) + return !0; + } + return f; + } else + return vm(n, e); + } + function _Ie(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j; + for (t.Ug("Interactive cycle breaking", 1), d = new Z(), p = new C(e.a); p.a < p.c.c.length; ) + for (g = u(E(p), 10), g.p = 1, m = RZ(g).a, a = B0(g, (pr(), Qc)).Kc(); a.Ob(); ) + for (l = u(a.Pb(), 12), c = new C(l.g); c.a < c.c.c.length; ) + i = u(E(c), 18), k = i.d.i, k != g && (j = RZ(k).a, j < m && Kn(d.c, i)); + for (s = new C(d); s.a < s.c.c.length; ) + i = u(E(s), 18), G0(i, !0); + for (d.c.length = 0, h = new C(e.a); h.a < h.c.c.length; ) + f = u(E(h), 10), f.p > 0 && b_n(n, f, d); + for (r = new C(d); r.a < r.c.c.length; ) + i = u(E(r), 18), G0(i, !0); + d.c.length = 0, t.Vg(); + } + function HIe(n, e) { + var t, i, r, c, s, f, h, l, a; + for (t = 0, a = new Z(), f = new C(e); f.a < f.c.c.length; ) { + switch (s = u(E(f), 12), lY(n.b, n.d[s.p]), a.c.length = 0, s.i.k.g) { + case 0: + i = u(v(s, (W(), Gu)), 10), nu(i.j, new V7n(a)); + break; + case 1: + t1e(tm(ut(new Tn(null, new In(s.i.j, 16)), new W7n(s))), new J7n(a)); + break; + case 3: + r = u(v(s, (W(), st)), 12), nn(a, new wi(r, Y(s.e.c.length + s.g.c.length))); + } + for (l = new C(a); l.a < l.c.c.length; ) + h = u(E(l), 42), c = Sz(n, u(h.a, 12)), c > n.d[s.p] && (t += SJ(n.b, c) * u(h.b, 17).a, W1(n.a, Y(c))); + for (; !t6(n.a); ) + oQ(n.b, u(Sp(n.a), 17).a); + } + return t; + } + function qIe(n, e) { + var t, i, r, c, s, f, h, l, a, d; + if (a = u(v(n, (W(), gc)), 64), i = u(sn(n.j, 0), 12), a == (en(), Xn) ? pi(i, ae) : a == ae && pi(i, Xn), u(v(e, (cn(), Fd)), 181).Hc((go(), zd))) { + if (h = $(R(v(n, Tv))), l = $(R(v(n, Av))), s = $(R(v(n, Uw))), f = u(v(e, Hw), 21), f.Hc((Uu(), Fl))) + for (t = l, d = n.o.a / 2 - i.n.a, c = new C(i.f); c.a < c.c.c.length; ) + r = u(E(c), 72), r.n.b = t, r.n.a = d - r.o.a / 2, t += r.o.b + s; + else if (f.Hc(Ia)) + for (c = new C(i.f); c.a < c.c.c.length; ) + r = u(E(c), 72), r.n.a = h + n.o.a - i.n.a; + wpe(new IE((u6(), new kN(e, !1, !1, new qU()))), new XC(null, n, !1)); + } + } + function UIe(n, e) { + var t, i, r, c, s, f, h, l, a; + if (e.c.length != 0) { + for (Dn(), QL(e.c, e.c.length, null), r = new C(e), i = u(E(r), 154); r.a < r.c.c.length; ) + t = u(E(r), 154), aQ(i.e.c, t.e.c) && !(eZ(AAn(i.e).b, t.e.d) || eZ(AAn(t.e).b, i.e.d)) ? i = (li(i.k, t.k), li(i.b, t.b), li(i.c, t.c), Ri(i.i, t.i), li(i.d, t.d), li(i.j, t.j), c = y.Math.min(i.e.c, t.e.c), s = y.Math.min(i.e.d, t.e.d), f = y.Math.max(i.e.c + i.e.b, t.e.c + t.e.b), h = f - c, l = y.Math.max(i.e.d + i.e.a, t.e.d + t.e.a), a = l - s, DSn(i.e, c, s, h, a), bpe(i.f, t.f), !i.a && (i.a = t.a), li(i.g, t.g), nn(i.g, t), i) : (AUn(n, i), i = t); + AUn(n, i); + } + } + function GIe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _; + for (h = new Z(), c = new C(e.a); c.a < c.c.c.length; ) + for (r = u(E(c), 10), f = new C(r.j); f.a < f.c.c.length; ) { + for (s = u(E(f), 12), a = null, O = fh(s.g), N = 0, _ = O.length; N < _; ++N) + I = O[N], J4(I.d.i, t) || (S = qF(n, e, t, I, I.c, (pr(), Qc), a), S != a && Kn(h.c, S), S.c && (a = S)); + for (l = null, m = fh(s.e), k = 0, j = m.length; k < j; ++k) + p = m[k], J4(p.c.i, t) || (S = qF(n, e, t, p, p.d, (pr(), zu), l), S != l && Kn(h.c, S), S.c && (l = S)); + } + for (g = new C(h); g.a < g.c.c.length; ) + d = u(E(g), 453), qr(e.a, d.a, 0) != -1 || nn(e.a, d.a), d.c && Kn(i.c, d); + } + function zIe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j; + for (d = new ir(u(z(n, (mA(), dan)), 8)), d.a = y.Math.max(d.a - t.b - t.c, 0), d.b = y.Math.max(d.b - t.d - t.a, 0), r = R(z(n, han)), (r == null || (Jn(r), r <= 0)) && (r = 1.3), f = new Z(), m = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); m.e != m.i.gc(); ) + p = u(ue(m), 27), s = new mAn(p), Kn(f.c, s); + switch (g = u(z(n, Wq), 320), g.g) { + case 3: + j = DSe(f, e, d.a, d.b, (l = i, Jn(r), l)); + break; + case 1: + j = jPe(f, e, d.a, d.b, (a = i, Jn(r), a)); + break; + default: + j = VIe(f, e, d.a, d.b, (h = i, Jn(r), h)); + } + c = new hT(j), k = QF(c, e, t, d.a, d.b, i, (Jn(r), r)), z0(n, k.a, k.b, !1, !0); + } + function XIe(n, e, t, i) { + var r, c, s, f, h, l; + if (f = n.j, f == (en(), sc) && e != (Li(), Jf) && e != (Li(), Pa) && (f = jUn(n, t), pi(n, f), !(n.q ? n.q : (Dn(), Dn(), Vh))._b((cn(), _w)) && f != sc && (n.n.a != 0 || n.n.b != 0) && U(n, _w, X7e(n, f))), e == (Li(), el)) { + switch (l = 0, f.g) { + case 1: + case 3: + c = n.i.o.a, c > 0 && (l = n.n.a / c); + break; + case 2: + case 4: + r = n.i.o.b, r > 0 && (l = n.n.b / r); + } + U(n, (W(), hb), l); + } + if (h = n.o, s = n.a, i) + s.a = i.a, s.b = i.b, n.d = !0; + else if (e != Jf && e != Pa && f != sc) + switch (f.g) { + case 1: + s.a = h.a / 2; + break; + case 2: + s.a = h.a, s.b = h.b / 2; + break; + case 3: + s.a = h.a / 2, s.b = h.b; + break; + case 4: + s.b = h.b / 2; + } + else + s.a = h.a / 2, s.b = h.b / 2; + } + function X5(n) { + var e, t, i, r, c, s, f, h, l, a; + if (n.Pj()) + if (a = n.Ej(), h = n.Qj(), a > 0) + if (e = new KQ(n.pj()), t = a, c = t < 100 ? null : new F1(t), S7(n, t, e.g), r = t == 1 ? n.Ij(4, L(e, 0), null, 0, h) : n.Ij(6, e, null, -1, h), n.Mj()) { + for (i = new ne(e); i.e != i.i.gc(); ) + c = n.Oj(ue(i), c); + c ? (c.nj(r), c.oj()) : n.Jj(r); + } else + c ? (c.nj(r), c.oj()) : n.Jj(r); + else + S7(n, n.Ej(), n.Fj()), n.Jj(n.Ij(6, (Dn(), or), null, -1, h)); + else if (n.Mj()) + if (a = n.Ej(), a > 0) { + for (f = n.Fj(), l = a, S7(n, a, f), c = l < 100 ? null : new F1(l), i = 0; i < l; ++i) + s = f[i], c = n.Oj(s, c); + c && c.oj(); + } else + S7(n, n.Ej(), n.Fj()); + else + S7(n, n.Ej(), n.Fj()); + } + function VIe(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m, k, j; + for (f = K(Oi, Ar, 28, n.c.length, 15, 1), g = new dM(new Qmn()), CZ(g, n), l = 0, k = new Z(); g.b.c.length != 0; ) + if (s = u(g.b.c.length == 0 ? null : sn(g.b, 0), 163), l > 1 && Au(s) * ao(s) / 2 > f[0]) { + for (c = 0; c < k.c.length - 1 && Au(s) * ao(s) / 2 > f[c]; ) + ++c; + m = new Ql(k, 0, c + 1), d = new hT(m), a = Au(s) / ao(s), h = QF(d, e, new up(), t, i, r, a), tt(ff(d.e), h), Mp(km(g, d), Km), p = new Ql(k, c + 1, k.c.length), CZ(g, p), k.c.length = 0, l = 0, bPn(f, f.length, 0); + } else + j = g.b.c.length == 0 ? null : sn(g.b, 0), j != null && M$(g, 0), l > 0 && (f[l] = f[l - 1]), f[l] += Au(s) * ao(s), ++l, Kn(k.c, s); + return k; + } + function WIe(n, e) { + var t, i, r, c; + t = e.b, c = new Ru(t.j), r = 0, i = t.j, i.c.length = 0, p0(u(sd(n.b, (en(), Xn), (L0(), ob)), 15), t), r = _k(c, r, new bpn(), i), p0(u(sd(n.b, Xn, va), 15), t), r = _k(c, r, new opn(), i), p0(u(sd(n.b, Xn, ub), 15), t), p0(u(sd(n.b, Zn, ob), 15), t), p0(u(sd(n.b, Zn, va), 15), t), r = _k(c, r, new wpn(), i), p0(u(sd(n.b, Zn, ub), 15), t), p0(u(sd(n.b, ae, ob), 15), t), r = _k(c, r, new gpn(), i), p0(u(sd(n.b, ae, va), 15), t), r = _k(c, r, new ppn(), i), p0(u(sd(n.b, ae, ub), 15), t), p0(u(sd(n.b, Wn, ob), 15), t), r = _k(c, r, new hpn(), i), p0(u(sd(n.b, Wn, va), 15), t), p0(u(sd(n.b, Wn, ub), 15), t); + } + function JIe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p; + for (f = new C(e); f.a < f.c.c.length; ) + c = u(E(f), 239), c.e = null, c.c = 0; + for (h = null, s = new C(e); s.a < s.c.c.length; ) + if (c = u(E(s), 239), d = c.d[0], !(t && d.k != (Vn(), Xt))) { + for (p = u(v(d, (W(), T3)), 15).Kc(); p.Ob(); ) + g = u(p.Pb(), 10), (!t || g.k == (Vn(), Xt)) && ((!c.e && (c.e = new Z()), c.e).Fc(n.b[g.c.p][g.p]), ++n.b[g.c.p][g.p].c); + if (!t && d.k == (Vn(), Xt)) { + if (h) + for (a = u(ot(n.d, h), 21).Kc(); a.Ob(); ) + for (l = u(a.Pb(), 10), r = u(ot(n.d, d), 21).Kc(); r.Ob(); ) + i = u(r.Pb(), 10), ebe(n.b[l.c.p][l.p]).Fc(n.b[i.c.p][i.p]), ++n.b[i.c.p][i.p].c; + h = d; + } + } + } + function QIe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j; + for (t.Ug("Model order cycle breaking", 1), n.a = 0, n.b = 0, p = new Z(), a = e.a.c.length, l = new C(e.a); l.a < l.c.c.length; ) + h = u(E(l), 10), kt(h, (W(), dt)) && (a = y.Math.max(a, u(v(h, dt), 17).a + 1)); + for (k = new C(e.a); k.a < k.c.c.length; ) + for (m = u(E(k), 10), s = C_n(n, m, a), g = B0(m, (pr(), Qc)).Kc(); g.Ob(); ) + for (d = u(g.Pb(), 12), c = new C(d.g); c.a < c.c.c.length; ) + i = u(E(c), 18), j = i.d.i, f = C_n(n, j, a), f < s && Kn(p.c, i); + for (r = new C(p); r.a < r.c.c.length; ) + i = u(E(r), 18), G0(i, !0), U(e, (W(), kj), (_n(), !0)); + p.c.length = 0, t.Vg(); + } + function wGn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + for (s = e.d, f = t.d; s.a - f.a == 0 && s.b - f.b == 0; ) + h = !1, D(e, 250) && D(t, 250) && !h ? (l = u(e, 250).a, a = vi(new ir(vQ(l)), mQ(l)), i = 2, r = new V(a.a / y.Math.sqrt(a.a * a.a + a.b * a.b) * i, -a.b / y.Math.sqrt(a.a * a.a + a.b * a.b) * i), tt(s, r), d = u(t, 250).a, g = vi(new ir(vQ(d)), mQ(d)), i = a == g ? -2 : 2, c = new V(g.a / y.Math.sqrt(g.a * g.a + g.b * g.b) * i, -(g.b / y.Math.sqrt(g.a * g.a + g.b * g.b)) * i), tt(s, c), h = !0) : (s.a += eo(n, 26) * J5 + eo(n, 27) * Q5 - 0.5, s.b += eo(n, 26) * J5 + eo(n, 27) * Q5 - 0.5, f.a += eo(n, 26) * J5 + eo(n, 27) * Q5 - 0.5, f.b += eo(n, 26) * J5 + eo(n, 27) * Q5 - 0.5); + } + function YIe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j; + for (l = Pje(e), k = u(v(e, (cn(), U8)), 322), qi(l, new R9n(k)), j = u(v(e, Cj), 299), qi(l, new K9n(j)), m = 0, a = new Z(), c = new V6(l); c.a != c.b; ) + r = u(xT(c), 36), AGn(n.c, r), g = u(v(r, (W(), wH)), 15), m += g.gc(), i = g.Kc(), nn(a, new wi(r, i)); + for (t.Ug("Recursive hierarchical layout", m), p = u(u(sn(a, a.c.length - 1), 42).b, 51); p.Ob(); ) + for (h = new C(a); h.a < h.c.c.length; ) + for (f = u(E(h), 42), g = u(f.b, 51), s = u(f.a, 36); g.Ob(); ) + if (d = u(g.Pb(), 47), D(d, 514)) { + if (s.e) + break; + d.Kf(s, t.eh(1)); + break; + } else + d.Kf(s, t.eh(1)); + t.Vg(); + } + function ZIe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k; + for (e.Ug("Layer size calculation", 1), a = St, l = ai, r = !1, f = new C(n.b); f.a < f.c.c.length; ) + if (s = u(E(f), 30), h = s.c, h.a = 0, h.b = 0, s.a.c.length != 0) { + for (r = !0, g = new C(s.a); g.a < g.c.c.length; ) + d = u(E(g), 10), m = d.o, p = d.d, h.a = y.Math.max(h.a, m.a + p.b + p.c); + i = u(sn(s.a, 0), 10), k = i.n.b - i.d.d, i.k == (Vn(), ni) && (k -= u(v(n, (cn(), Aj)), 140).d), c = u(sn(s.a, s.a.c.length - 1), 10), t = c.n.b + c.o.b + c.d.a, c.k == ni && (t += u(v(n, (cn(), Aj)), 140).a), h.b = t - k, a = y.Math.min(a, k), l = y.Math.max(l, t); + } + r || (a = 0, l = 0), n.f.b = l - a, n.c.b -= a, e.Vg(); + } + function Wen(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S; + for (c = 0, s = 0, l = new C(n.a); l.a < l.c.c.length; ) + f = u(E(l), 10), c = y.Math.max(c, f.d.b), s = y.Math.max(s, f.d.c); + for (h = new C(n.a); h.a < h.c.c.length; ) { + switch (f = u(E(h), 10), t = u(v(f, (cn(), Mh)), 255), t.g) { + case 1: + m = 0; + break; + case 2: + m = 1; + break; + case 5: + m = 0.5; + break; + default: + for (i = 0, d = 0, p = new C(f.j); p.a < p.c.c.length; ) + g = u(E(p), 12), g.e.c.length == 0 || ++i, g.g.c.length == 0 || ++d; + i + d == 0 ? m = 0.5 : m = d / (i + d); + } + j = n.c, a = f.o.a, S = (j.a - a) * m, m > 0.5 ? S -= s * 2 * (m - 0.5) : m < 0.5 && (S += c * 2 * (0.5 - m)), r = f.d.b, S < r && (S = r), k = f.d.c, S > j.a - k - a && (S = j.a - k - a), f.n.a = e + S; + } + } + function nOe(n) { + var e, t, i, r, c; + if (i = u(v(n, (cn(), ou)), 171), i == (Yo(), ya)) { + for (t = new ie(ce(Ei(n).a.Kc(), new En())); pe(t); ) + if (e = u(fe(t), 18), !SLn(e)) + throw M(new Hl(oR + qk(n) + "' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges.")); + } else if (i == Fw) { + for (c = new ie(ce(Qt(n).a.Kc(), new En())); pe(c); ) + if (r = u(fe(c), 18), !SLn(r)) + throw M(new Hl(oR + qk(n) + "' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges.")); + } + } + function gy(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m; + if (n.e && n.c.c < n.f) + throw M(new Ir("Expected " + n.f + " phases to be configured; only found " + n.c.c)); + for (a = u(of(n.g), 9), p = Oh(n.f), c = a, f = 0, l = c.length; f < l; ++f) + i = c[f], d = u(lk(n, i.g), 188), d ? nn(p, u(jBn(n, d), 106)) : p.c.push(null); + for (m = new ri(), Ut(ut(_r(ut(new Tn(null, new In(p, 16)), new kmn()), new Ikn(e)), new ymn()), new Okn(m)), Mo(m, n.a), t = new Z(), r = a, s = 0, h = r.length; s < h; ++s) + i = r[s], li(t, iFn(n, SM(u(lk(m, i.g), 20)))), g = u(sn(p, i.g), 106), g && Kn(t.c, g); + return li(t, iFn(n, SM(u(lk(m, a[a.length - 1].g + 1), 20)))), t; + } + function eOe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + for (g = new Z(), r = new Z(), k = null, f = e.Kc(); f.Ob(); ) + s = u(f.Pb(), 17), c = new B7n(s.a), Kn(r.c, c), k && (c.d = k, k.e = c), k = c; + for (O = SPe(n), a = 0; a < r.c.length; ++a) { + for (p = null, j = qJ((Ln(0, r.c.length), u(r.c[0], 661))), t = null, i = St, d = 1; d < n.b.c.length; ++d) + S = j ? y.Math.abs(j.b - d) : y.Math.abs(d - p.b) + 1, m = p ? y.Math.abs(d - p.b) : S + 1, m < S ? (l = p, h = m) : (l = j, h = S), I = (N = $(R(v(n, (cn(), Ehn)))), O[d] + y.Math.pow(h, N)), I < i && (i = I, t = l, t.c = d), j && d == j.b && (p = j, j = hwe(j)); + t && (nn(g, Y(t.c)), t.a = !0, C5e(t)); + } + return Dn(), QL(g.c, g.c.length, null), g; + } + function Jen(n, e, t) { + var i, r, c, s, f, h; + if (e.l == 0 && e.m == 0 && e.h == 0) + throw M(new _E("divide by zero")); + if (n.l == 0 && n.m == 0 && n.h == 0) + return t && (wa = Yc(0, 0, 0)), Yc(0, 0, 0); + if (e.h == Ty && e.m == 0 && e.l == 0) + return W5e(n, t); + if (h = !1, e.h >> 19 && (e = em(e), h = !h), s = BMe(e), c = !1, r = !1, i = !1, n.h == Ty && n.m == 0 && n.l == 0) + if (r = !0, c = !0, s == -1) + n = nTn((B4(), hun)), i = !0, h = !h; + else + return f = Xnn(n, s), h && H$(f), t && (wa = Yc(0, 0, 0)), f; + else + n.h >> 19 && (c = !0, n = em(n), i = !0, h = !h); + return s != -1 ? d6e(n, s, h, c, t) : DZ(n, e) < 0 ? (t && (c ? wa = em(n) : wa = Yc(n.l, n.m, n.h)), Yc(0, 0, 0)) : xSe(i ? n : Yc(n.l, n.m, n.h), e, h, c, r, t); + } + function zF(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m; + if (s = n.e, h = e.e, s == 0) + return e; + if (h == 0) + return n; + if (c = n.d, f = e.d, c + f == 2) + return t = ki(n.a[0], vr), i = ki(e.a[0], vr), s == h ? (a = Zi(t, i), m = Ae(a), p = Ae(U1(a, 32)), p == 0 ? new gl(s, m) : new Za(s, 2, A(T(ye, 1), _e, 28, 15, [m, p]))) : (ah(), AC(s < 0 ? bs(i, t) : bs(t, i), 0) ? ia(s < 0 ? bs(i, t) : bs(t, i)) : U6(ia(e1(s < 0 ? bs(i, t) : bs(t, i))))); + if (s == h) + g = s, d = c >= f ? e$(n.a, c, e.a, f) : e$(e.a, f, n.a, c); + else { + if (r = c != f ? c > f ? 1 : -1 : hY(n.a, e.a, c), r == 0) + return ah(), S8; + r == 1 ? (g = s, d = ZN(n.a, c, e.a, f)) : (g = h, d = ZN(e.a, f, n.a, c)); + } + return l = new Za(g, d.length, d), J6(l), l; + } + function tOe(n, e) { + var t, i, r, c, s, f, h; + if (!(n.g > e.f || e.g > n.f)) { + for (t = 0, i = 0, s = n.w.a.ec().Kc(); s.Ob(); ) + r = u(s.Pb(), 12), nx(cc(A(T(Ci, 1), J, 8, 0, [r.i.n, r.n, r.a])).b, e.g, e.f) && ++t; + for (f = n.r.a.ec().Kc(); f.Ob(); ) + r = u(f.Pb(), 12), nx(cc(A(T(Ci, 1), J, 8, 0, [r.i.n, r.n, r.a])).b, e.g, e.f) && --t; + for (h = e.w.a.ec().Kc(); h.Ob(); ) + r = u(h.Pb(), 12), nx(cc(A(T(Ci, 1), J, 8, 0, [r.i.n, r.n, r.a])).b, n.g, n.f) && ++i; + for (c = e.r.a.ec().Kc(); c.Ob(); ) + r = u(c.Pb(), 12), nx(cc(A(T(Ci, 1), J, 8, 0, [r.i.n, r.n, r.a])).b, n.g, n.f) && --i; + t < i ? new XM(n, e, i - t) : i < t ? new XM(e, n, t - i) : (new XM(e, n, 0), new XM(n, e, 0)); + } + } + function iOe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I; + for (l = e.c, r = PX(n.e), d = rh(L6(Ki(SX(n.e)), n.d * n.a, n.c * n.b), -0.5), t = r.a - d.a, i = r.b - d.b, s = e.a, t = s.c - t, i = s.d - i, h = new C(l); h.a < h.c.c.length; ) { + switch (f = u(E(h), 407), g = f.b, p = t + g.a, j = i + g.b, m = gi(p / n.a), S = gi(j / n.b), c = f.a, c.g) { + case 0: + a = (Vp(), uj); + break; + case 1: + a = (Vp(), cj); + break; + case 2: + a = (Vp(), oj); + break; + default: + a = (Vp(), sj); + } + c.a ? (I = gi((j + f.c) / n.b), nn(n.f, new LV(a, Y(S), Y(I))), c == (T5(), hj) ? nm(n, 0, S, m, I) : nm(n, m, S, n.d - 1, I)) : (k = gi((p + f.c) / n.a), nn(n.f, new LV(a, Y(m), Y(k))), c == (T5(), fj) ? nm(n, m, 0, k, S) : nm(n, m, S, k, n.c - 1)); + } + } + function rOe(n) { + var e, t, i, r, c, s, f, h, l, a; + for (e = new qO(), t = new qO(), l = An(Jy, (r = _5(n.b, Be), r ? Oe(gf((!r.b && (r.b = new lo((On(), lr), pc, r)), r.b), vs)) : null)), h = 0; h < n.i; ++h) + f = u(n.g[h], 179), D(f, 102) ? (s = u(f, 19), s.Bb & kc ? (!(s.Bb & bh) || !l && (c = _5(s, Be), (c ? Oe(gf((!c.b && (c.b = new lo((On(), lr), pc, c)), c.b), KS)) : null) == null)) && ve(e, s) : (a = br(s), a && a.Bb & kc || (!(s.Bb & bh) || !l && (i = _5(s, Be), (i ? Oe(gf((!i.b && (i.b = new lo((On(), lr), pc, i)), i.b), KS)) : null) == null)) && ve(t, s))) : (dr(), u(f, 69).xk() && (f.sk() || (ve(e, f), ve(t, f)))); + tw(e), tw(t), n.a = u(e.g, 254), u(t.g, 254); + } + function Qg(n, e, t) { + var i, r, c, s, f, h, l, a, d; + if (Ot(e, t) >= 0) + return t; + switch (j0(Dr(n, t))) { + case 2: { + if (An("", c1(n, t.qk()).xe())) { + if (h = q7(Dr(n, t)), f = S4(Dr(n, t)), a = Qnn(n, e, h, f), a) + return a; + for (r = Aen(n, e), s = 0, d = r.gc(); s < d; ++s) + if (a = u(r.Xb(s), 179), ren(sN(Dr(n, a)), h)) + return a; + } + return null; + } + case 4: { + if (An("", c1(n, t.qk()).xe())) { + for (i = t; i; i = gpe(Dr(n, i))) + if (l = q7(Dr(n, i)), f = S4(Dr(n, i)), a = Ynn(n, e, l, f), a) + return a; + if (h = q7(Dr(n, t)), An(Pd, h)) + return xZ(n, e); + for (c = SF(n, e), s = 0, d = c.gc(); s < d; ++s) + if (a = u(c.Xb(s), 179), ren(sN(Dr(n, a)), h)) + return a; + } + return null; + } + default: + return null; + } + } + function cOe(n, e, t) { + var i, r, c, s, f, h, l, a; + if (t.gc() == 0) + return !1; + if (f = (dr(), u(e, 69).xk()), c = f ? t : new P0(t.gc()), Sl(n.e, e)) { + if (e.Si()) + for (l = t.Kc(); l.Ob(); ) + h = l.Pb(), RA(n, e, h, D(e, 102) && (u(e, 19).Bb & fr) != 0) || (r = xh(e, h), c.Hc(r) || c.Fc(r)); + else if (!f) + for (l = t.Kc(); l.Ob(); ) + h = l.Pb(), r = xh(e, h), c.Fc(r); + } else { + if (t.gc() > 1) + throw M(new Gn(Zy)); + for (a = ru(n.e.Dh(), e), i = u(n.g, 124), s = 0; s < n.i; ++s) + if (r = i[s], a.am(r.Lk())) { + if (t.Hc(f ? r : r.md())) + return !1; + for (l = t.Kc(); l.Ob(); ) + h = l.Pb(), u(Rg(n, s, f ? u(h, 76) : xh(e, h)), 76); + return !0; + } + f || (r = xh(e, t.Kc().Pb()), c.Fc(r)); + } + return Kt(n, c); + } + function uOe(n, e) { + var t, i, r, c, s, f, h, l, a; + for (a = new Ct(), f = (l = new ol(n.c).a.vc().Kc(), new Pb(l)); f.a.Ob(); ) + c = (r = u(f.a.Pb(), 44), u(r.md(), 467)), c.b == 0 && xt(a, c, a.c.b, a.c); + for (; a.b != 0; ) + for (c = u(a.b == 0 ? null : (oe(a.b != 0), Xo(a, a.a.a)), 467), c.a == null && (c.a = 0), i = new C(c.d); i.a < i.c.c.length; ) + t = u(E(i), 663), t.b.a == null ? t.b.a = $(c.a) + t.a : e.o == (Sf(), Kd) ? t.b.a = y.Math.min($(t.b.a), $(c.a) + t.a) : t.b.a = y.Math.max($(t.b.a), $(c.a) + t.a), --t.b.b, t.b.b == 0 && Fe(a, t.b); + for (s = (h = new ol(n.c).a.vc().Kc(), new Pb(h)); s.a.Ob(); ) + c = (r = u(s.a.Pb(), 44), u(r.md(), 467)), e.i[c.c.p] = c.a; + } + function oOe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m; + for (a = t + e.c.c.a, p = new C(e.j); p.a < p.c.c.length; ) { + if (g = u(E(p), 12), r = cc(A(T(Ci, 1), J, 8, 0, [g.i.n, g.n, g.a])), e.k == (Vn(), Hc) && (f = u(v(g, (W(), st)), 12), r.a = cc(A(T(Ci, 1), J, 8, 0, [f.i.n, f.n, f.a])).a, e.n.a = r.a), s = new V(0, r.b), g.j == (en(), Zn)) + s.a = a; + else if (g.j == Wn) + s.a = t; + else + continue; + if (m = y.Math.abs(r.a - s.a), !(m <= i && !Y7e(e))) + for (c = g.g.c.length + g.e.c.length > 1, l = new Of(g.b); tc(l.a) || tc(l.b); ) + h = u(tc(l.a) ? E(l.a) : E(l.b), 18), d = h.c == g ? h.d : h.c, y.Math.abs(cc(A(T(Ci, 1), J, 8, 0, [d.i.n, d.n, d.a])).b - s.b) > 1 && qTe(n, h, s, c, g); + } + } + function sOe(n) { + var e, t, i, r, c, s; + if (r = new Fi(n.e, 0), i = new Fi(n.a, 0), n.d) + for (t = 0; t < n.b; t++) + oe(r.b < r.d.gc()), r.d.Xb(r.c = r.b++); + else + for (t = 0; t < n.b - 1; t++) + oe(r.b < r.d.gc()), r.d.Xb(r.c = r.b++), bo(r); + for (e = $((oe(r.b < r.d.gc()), R(r.d.Xb(r.c = r.b++)))); n.f - e > _R; ) { + for (c = e, s = 0; y.Math.abs(e - c) < _R; ) + ++s, e = $((oe(r.b < r.d.gc()), R(r.d.Xb(r.c = r.b++)))), oe(i.b < i.d.gc()), i.d.Xb(i.c = i.b++); + s < n.b && (oe(r.b > 0), r.a.Xb(r.c = --r.b), EPe(n, n.b - s, c, i, r), oe(r.b < r.d.gc()), r.d.Xb(r.c = r.b++)), oe(i.b > 0), i.a.Xb(i.c = --i.b); + } + if (!n.d) + for (t = 0; t < n.b - 1; t++) + oe(r.b < r.d.gc()), r.d.Xb(r.c = r.b++), bo(r); + n.d = !0, n.c = !0; + } + function at() { + at = F, o0n = (Mz(), yc).b, cse = u(L(H(yc.b), 0), 35), Xd = u(L(H(yc.b), 1), 35), rse = u(L(H(yc.b), 2), 35), G2 = yc.bb, u(L(H(yc.bb), 0), 35), u(L(H(yc.bb), 1), 35), z2 = yc.fb, $9 = u(L(H(yc.fb), 0), 35), u(L(H(yc.fb), 1), 35), u(L(H(yc.fb), 2), 19), Mb = yc.qb, pse = u(L(H(yc.qb), 0), 35), u(L(H(yc.qb), 1), 19), u(L(H(yc.qb), 2), 19), gE = u(L(H(yc.qb), 3), 35), pE = u(L(H(yc.qb), 4), 35), F9 = u(L(H(yc.qb), 6), 35), x9 = u(L(H(yc.qb), 5), 19), use = yc.j, ose = yc.k, sse = yc.q, fse = yc.w, hse = yc.B, lse = yc.A, ase = yc.C, dse = yc.D, bse = yc._, wse = yc.cb, gse = yc.hb; + } + function fOe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p; + n.c = 0, n.b = 0, i = 2 * e.c.a.c.length + 1; + n: + for (d = t.Kc(); d.Ob(); ) { + if (a = u(d.Pb(), 12), f = a.j == (en(), Xn) || a.j == ae, p = 0, f) { + if (g = u(v(a, (W(), Gu)), 10), !g) + continue; + p += DAe(n, i, a, g); + } else { + for (l = new C(a.g); l.a < l.c.c.length; ) + if (h = u(E(l), 18), r = h.d, r.i.c == e.c) { + nn(n.a, a); + continue n; + } else + p += n.g[r.p]; + for (s = new C(a.e); s.a < s.c.c.length; ) + if (c = u(E(s), 18), r = c.c, r.i.c == e.c) { + nn(n.a, a); + continue n; + } else + p -= n.g[r.p]; + } + a.e.c.length + a.g.c.length > 0 ? (n.f[a.p] = p / (a.e.c.length + a.g.c.length), n.c = y.Math.min(n.c, n.f[a.p]), n.b = y.Math.max(n.b, n.f[a.p])) : f && (n.f[a.p] = p); + } + } + function hOe(n) { + n.b = null, n.bb = null, n.fb = null, n.qb = null, n.a = null, n.c = null, n.d = null, n.e = null, n.f = null, n.n = null, n.M = null, n.L = null, n.Q = null, n.R = null, n.K = null, n.db = null, n.eb = null, n.g = null, n.i = null, n.j = null, n.k = null, n.gb = null, n.o = null, n.p = null, n.q = null, n.r = null, n.$ = null, n.ib = null, n.S = null, n.T = null, n.t = null, n.s = null, n.u = null, n.v = null, n.w = null, n.B = null, n.A = null, n.C = null, n.D = null, n.F = null, n.G = null, n.H = null, n.I = null, n.J = null, n.P = null, n.Z = null, n.U = null, n.V = null, n.W = null, n.X = null, n.Y = null, n._ = null, n.ab = null, n.cb = null, n.hb = null, n.nb = null, n.lb = null, n.mb = null, n.ob = null, n.pb = null, n.jb = null, n.kb = null, n.N = !1, n.O = !1; + } + function lOe(n, e, t) { + var i, r, c, s; + for (t.Ug("Graph transformation (" + n.a + ")", 1), s = A0(e.a), c = new C(e.b); c.a < c.c.c.length; ) + r = u(E(c), 30), li(s, r.a); + if (i = u(v(e, (cn(), Ufn)), 428), i == (wk(), WP)) + switch (u(v(e, Do), 88).g) { + case 2: + Q6(e, s); + break; + case 3: + j5(e, s); + break; + case 4: + n.a == (X4(), dj) ? (j5(e, s), HN(e, s)) : (HN(e, s), j5(e, s)); + } + else if (n.a == (X4(), dj)) + switch (u(v(e, Do), 88).g) { + case 2: + Q6(e, s), HN(e, s); + break; + case 3: + j5(e, s), Q6(e, s); + break; + case 4: + Q6(e, s), j5(e, s); + } + else + switch (u(v(e, Do), 88).g) { + case 2: + Q6(e, s), HN(e, s); + break; + case 3: + Q6(e, s), j5(e, s); + break; + case 4: + j5(e, s), Q6(e, s); + } + t.Vg(); + } + function aOe(n) { + var e, t, i, r, c, s, f, h; + for (c = new C(n.a.b); c.a < c.c.c.length; ) + r = u(E(c), 86), r.b.c = r.g.c, r.b.d = r.g.d; + for (h = new V(St, St), e = new V(ai, ai), i = new C(n.a.b); i.a < i.c.c.length; ) + t = u(E(i), 86), h.a = y.Math.min(h.a, t.g.c), h.b = y.Math.min(h.b, t.g.d), e.a = y.Math.max(e.a, t.g.c + t.g.b), e.b = y.Math.max(e.b, t.g.d + t.g.a); + for (f = pM(n.c).a.nc(); f.Ob(); ) + s = u(f.Pb(), 42), t = u(s.b, 86), h.a = y.Math.min(h.a, t.g.c), h.b = y.Math.min(h.b, t.g.d), e.a = y.Math.max(e.a, t.g.c + t.g.b), e.b = y.Math.max(e.b, t.g.d + t.g.a); + n.d = HC(new V(h.a, h.b)), n.e = vi(new V(e.a, e.b), h), n.a.a.c.length = 0, n.a.b.c.length = 0; + } + function dOe(n) { + i5(); + var e, t, i, r, c, s, f; + for (f = new Hyn(), t = new C(n); t.a < t.c.c.length; ) + e = u(E(t), 148), (!f.b || e.c >= f.b.c) && (f.b = e), (!f.c || e.c <= f.c.c) && (f.d = f.c, f.c = e), (!f.e || e.d >= f.e.d) && (f.e = e), (!f.f || e.d <= f.f.d) && (f.f = e); + return i = new eA((Z4(), cb)), Q7(n, IZn, new Bu(A(T(aj, 1), Bn, 382, 0, [i]))), s = new eA(Ow), Q7(n, PZn, new Bu(A(T(aj, 1), Bn, 382, 0, [s]))), r = new eA(Iw), Q7(n, SZn, new Bu(A(T(aj, 1), Bn, 382, 0, [r]))), c = new eA(d2), Q7(n, AZn, new Bu(A(T(aj, 1), Bn, 382, 0, [c]))), pF(i.c, cb), pF(r.c, Iw), pF(c.c, d2), pF(s.c, Ow), f.a.c.length = 0, li(f.a, i.c), li(f.a, Qo(r.c)), li(f.a, c.c), li(f.a, Qo(s.c)), f; + } + function bOe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m; + for (e.Ug(SVn, 1), p = $(R(z(n, (Kh(), Vw)))), s = $(R(z(n, (Bf(), l9)))), f = u(z(n, h9), 107), NQ((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)), a = fGn((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a), p, s), !n.a && (n.a = new q(Ye, n, 10, 11)), l = new C(a); l.a < l.c.c.length; ) + for (h = u(E(l), 186), r = new C(h.a); r.a < r.c.c.length; ) + i = u(E(r), 172), g = new iJ(i.s, i.t, $(R(z(n, l9)))), _Q(g, i), nn(h.d, g); + d = cKn(a, s), m = y.Math.max(d.a, $(R(z(n, f9))) - (f.b + f.c)), c = y.Math.max(d.b, $(R(z(n, UI))) - (f.d + f.a)), t = c - d.b, ht(n, s9, t), ht(n, O3, m), ht(n, Lv, c + t), ht(n, GI, a), e.Vg(); + } + function wOe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k; + for (l = new ih(), a = new ih(), m = new ih(), k = new ih(), h = $(R(v(e, (cn(), pb)))), c = $(R(v(e, Ws))), f = new C(t); f.a < f.c.c.length; ) + if (s = u(E(f), 10), d = u(v(s, (W(), gc)), 64), d == (en(), Xn)) + for (a.a.zc(s, a), r = new ie(ce(Ei(s).a.Kc(), new En())); pe(r); ) + i = u(fe(r), 18), hi(l, i.c.i); + else if (d == ae) + for (k.a.zc(s, k), r = new ie(ce(Ei(s).a.Kc(), new En())); pe(r); ) + i = u(fe(r), 18), hi(m, i.c.i); + l.a.gc() != 0 && (g = new lN(2, c), p = ntn(g, e, l, a, -h - e.c.b), p > 0 && (n.a = h + (p - 1) * c, e.c.b += n.a, e.f.b += n.a)), m.a.gc() != 0 && (g = new lN(1, c), p = ntn(g, e, m, k, e.f.b + h - e.c.b), p > 0 && (e.f.b += h + (p - 1) * c)); + } + function gGn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + for (a = $(R(v(n, (cn(), gb)))), i = $(R(v(n, vhn))), g = new _O(), U(g, gb, a + i), l = e, S = l.d, k = l.c.i, I = l.d.i, j = EX(k.c), O = EX(I.c), r = new Z(), d = j; d <= O; d++) + f = new Tl(n), qa(f, (Vn(), Ti)), U(f, (W(), st), l), U(f, Ht, (Li(), Uc)), U(f, yI, g), p = u(sn(n.b, d), 30), d == j ? ow(f, p.a.c.length - t, p) : xi(f, p), N = $(R(v(l, v1))), N < 0 && (N = 0, U(l, v1, N)), f.o.b = N, m = y.Math.floor(N / 2), s = new Ic(), pi(s, (en(), Wn)), ic(s, f), s.n.b = m, h = new Ic(), pi(h, Zn), ic(h, f), h.n.b = m, Di(l, s), c = new C0(), Ur(c, l), U(c, xr, null), Yi(c, h), Di(c, S), ike(f, l, c), Kn(r.c, c), l = c; + return r; + } + function XF(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + for (h = u(l1(n, (en(), Wn)).Kc().Pb(), 12).e, p = u(l1(n, Zn).Kc().Pb(), 12).g, f = h.c.length, O = Pf(u(sn(n.j, 0), 12)); f-- > 0; ) { + for (k = (Ln(0, h.c.length), u(h.c[0], 18)), r = (Ln(0, p.c.length), u(p.c[0], 18)), I = r.d.e, c = qr(I, r, 0), Bpe(k, r.d, c), Yi(r, null), Di(r, null), m = k.a, e && Fe(m, new ir(O)), i = ge(r.a, 0); i.b != i.d.c; ) + t = u(be(i), 8), Fe(m, new ir(t)); + for (S = k.b, g = new C(r.b); g.a < g.c.c.length; ) + d = u(E(g), 72), Kn(S.c, d); + if (j = u(v(k, (cn(), xr)), 75), s = u(v(r, xr), 75), s) + for (j || (j = new Cu(), U(k, xr, j)), a = ge(s, 0); a.b != a.d.c; ) + l = u(be(a), 8), Fe(j, new ir(l)); + } + } + function gOe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + if (k = e.b.c.length, !(k < 3)) { + for (p = K(ye, _e, 28, k, 15, 1), d = 0, a = new C(e.b); a.a < a.c.c.length; ) + l = u(E(a), 30), p[d++] = l.a.c.length; + for (g = new Fi(e.b, 2), i = 1; i < k - 1; i++) + for (t = (oe(g.b < g.d.gc()), u(g.d.Xb(g.c = g.b++), 30)), m = new C(t.a), c = 0, f = 0, h = 0; h < p[i + 1]; h++) + if (O = u(E(m), 10), h == p[i + 1] - 1 || wnn(n, O, i + 1, i)) { + for (s = p[i] - 1, wnn(n, O, i + 1, i) && (s = n.c.e[u(u(u(sn(n.c.b, O.p), 15).Xb(0), 42).a, 10).p]); f <= h; ) { + if (I = u(sn(t.a, f), 10), !wnn(n, I, i + 1, i)) + for (S = u(sn(n.c.b, I.p), 15).Kc(); S.Ob(); ) + j = u(S.Pb(), 42), r = n.c.e[u(j.a, 10).p], (r < c || r > s) && hi(n.b, u(j.b, 18)); + ++f; + } + c = s; + } + } + } + function Qen(n, e) { + var t; + if (e == null || An(e, wu) || e.length == 0 && n.k != (a1(), L3)) + return null; + switch (n.k.g) { + case 1: + return JT(e, Zm) ? (_n(), uv) : JT(e, cK) ? (_n(), ga) : null; + case 2: + try { + return Y(Ao(e, Wi, et)); + } catch (i) { + if (i = It(i), D(i, 130)) + return null; + throw M(i); + } + case 4: + try { + return fw(e); + } catch (i) { + if (i = It(i), D(i, 130)) + return null; + throw M(i); + } + case 3: + return e; + case 5: + return FFn(n), J_n(n, e); + case 6: + return FFn(n), wMe(n, n.a, e); + case 7: + try { + return t = TCe(n), t.cg(e), t; + } catch (i) { + if (i = It(i), D(i, 33)) + return null; + throw M(i); + } + default: + throw M(new Ir("Invalid type set for this layout option.")); + } + } + function Yen(n) { + var e; + switch (n.d) { + case 1: { + if (n.Sj()) + return n.o != -2; + break; + } + case 2: { + if (n.Sj()) + return n.o == -2; + break; + } + case 3: + case 5: + case 4: + case 6: + case 7: + return n.o > -2; + default: + return !1; + } + switch (e = n.Rj(), n.p) { + case 0: + return e != null && on(un(e)) != C6(n.k, 0); + case 1: + return e != null && u(e, 222).a != Ae(n.k) << 24 >> 24; + case 2: + return e != null && u(e, 180).a != (Ae(n.k) & oi); + case 6: + return e != null && C6(u(e, 168).a, n.k); + case 5: + return e != null && u(e, 17).a != Ae(n.k); + case 7: + return e != null && u(e, 191).a != Ae(n.k) << 16 >> 16; + case 3: + return e != null && $(R(e)) != n.j; + case 4: + return e != null && u(e, 161).a != n.j; + default: + return e == null ? n.n != null : !rt(e, n.n); + } + } + function py(n, e, t) { + var i, r, c, s; + return n.ol() && n.nl() && (s = cN(n, u(t, 58)), x(s) !== x(t)) ? (n.xj(e), n.Dj(e, kNn(n, e, s)), n.al() && (c = (r = u(t, 54), n.ml() ? n.kl() ? r.Th(n.b, br(u($n(lu(n.b), n.Lj()), 19)).n, u($n(lu(n.b), n.Lj()).Hk(), 29).kk(), null) : r.Th(n.b, Ot(r.Dh(), br(u($n(lu(n.b), n.Lj()), 19))), null, null) : r.Th(n.b, -1 - n.Lj(), null, null)), !u(s, 54).Ph() && (c = (i = u(s, 54), n.ml() ? n.kl() ? i.Rh(n.b, br(u($n(lu(n.b), n.Lj()), 19)).n, u($n(lu(n.b), n.Lj()).Hk(), 29).kk(), c) : i.Rh(n.b, Ot(i.Dh(), br(u($n(lu(n.b), n.Lj()), 19))), null, c) : i.Rh(n.b, -1 - n.Lj(), null, c))), c && c.oj()), fo(n.b) && n.Jj(n.Ij(9, t, s, e, !1)), s) : t; + } + function pGn(n) { + var e, t, i, r, c, s, f, h, l, a; + for (i = new Z(), s = new C(n.e.a); s.a < s.c.c.length; ) { + for (r = u(E(s), 125), a = 0, r.k.c.length = 0, t = new C(xg(r)); t.a < t.c.c.length; ) + e = u(E(t), 218), e.f && (nn(r.k, e), ++a); + a == 1 && Kn(i.c, r); + } + for (c = new C(i); c.a < c.c.c.length; ) + for (r = u(E(c), 125); r.k.c.length == 1; ) { + for (l = u(E(new C(r.k)), 218), n.b[l.c] = l.g, f = l.d, h = l.e, t = new C(xg(r)); t.a < t.c.c.length; ) + e = u(E(t), 218), rt(e, l) || (e.f ? f == e.d || h == e.e ? n.b[l.c] -= n.b[e.c] - e.g : n.b[l.c] += n.b[e.c] - e.g : r == f ? e.d == r ? n.b[l.c] += e.g : n.b[l.c] -= e.g : e.d == r ? n.b[l.c] -= e.g : n.b[l.c] += e.g); + au(f.k, l), au(h.k, l), f == r ? r = l.e : r = l.d; + } + } + function mGn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p; + if (t = u(Mr(n.b, e), 127), h = u(u(ot(n.r, e), 21), 87), h.dc()) { + t.n.b = 0, t.n.c = 0; + return; + } + for (l = n.u.Hc((Uu(), Fl)), s = 0, f = h.Kc(), a = null, d = 0, g = 0; f.Ob(); ) + i = u(f.Pb(), 117), r = $(R(i.b.of((KC(), bP)))), c = i.b.Mf().a, n.A.Hc((go(), zd)) && Xqn(n, e), a ? (p = g + a.d.c + n.w + i.d.b, s = y.Math.max(s, (Mf(), Ks(Kf), y.Math.abs(d - r) <= Kf || d == r || isNaN(d) && isNaN(r) ? 0 : p / (r - d)))) : n.C && n.C.b > 0 && (s = y.Math.max(s, jxn(n.C.b + i.d.b, r))), a = i, d = r, g = c; + n.C && n.C.c > 0 && (p = g + n.C.c, l && (p += a.d.c), s = y.Math.max(s, (Mf(), Ks(Kf), y.Math.abs(d - 1) <= Kf || d == 1 || isNaN(d) && isNaN(1) ? 0 : p / (1 - d)))), t.n.b = 0, t.a.a = s; + } + function vGn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p; + if (t = u(Mr(n.b, e), 127), h = u(u(ot(n.r, e), 21), 87), h.dc()) { + t.n.d = 0, t.n.a = 0; + return; + } + for (l = n.u.Hc((Uu(), Fl)), s = 0, n.A.Hc((go(), zd)) && Vqn(n, e), f = h.Kc(), a = null, g = 0, d = 0; f.Ob(); ) + i = u(f.Pb(), 117), c = $(R(i.b.of((KC(), bP)))), r = i.b.Mf().b, a ? (p = d + a.d.a + n.w + i.d.d, s = y.Math.max(s, (Mf(), Ks(Kf), y.Math.abs(g - c) <= Kf || g == c || isNaN(g) && isNaN(c) ? 0 : p / (c - g)))) : n.C && n.C.d > 0 && (s = y.Math.max(s, jxn(n.C.d + i.d.d, c))), a = i, g = c, d = r; + n.C && n.C.a > 0 && (p = d + n.C.a, l && (p += a.d.a), s = y.Math.max(s, (Mf(), Ks(Kf), y.Math.abs(g - 1) <= Kf || g == 1 || isNaN(g) && isNaN(1) ? 0 : p / (1 - g)))), t.n.d = 0, t.a.b = s; + } + function pOe(n, e, t, i, r, c, s, f) { + var h, l, a, d, g, p, m, k, j, S; + if (m = !1, l = cen(t.q, e.f + e.b - t.q.f), p = i.f > e.b && f, S = r - (t.q.e + l - s), d = (h = G5(i, S, !1), h.a), p && d > i.f) + return !1; + if (p) { + for (g = 0, j = new C(e.d); j.a < j.c.c.length; ) + k = u(E(j), 315), g += cen(k, i.f) + s; + S = r - g; + } + return S < i.g || (a = c == n.c.length - 1 && S >= (Ln(c, n.c.length), u(n.c[c], 186)).e, !p && d > e.b && !a) ? !1 : ((a || p || d <= e.b) && (a && d > e.b ? (t.d = d, uk(t, c_n(t, d))) : (EKn(t.q, l), t.c = !0), uk(i, r - (t.s + t.r)), Hk(i, t.q.e + t.q.d, e.f), wT(e, i), n.c.length > c && (Gk((Ln(c, n.c.length), u(n.c[c], 186)), i), (Ln(c, n.c.length), u(n.c[c], 186)).a.c.length == 0 && Zl(n, c)), m = !0), m); + } + function kGn(n, e, t) { + var i, r, c, s, f, h; + for (this.g = n, f = e.d.length, h = t.d.length, this.d = K(Jh, w1, 10, f + h, 0, 1), s = 0; s < f; s++) + this.d[s] = e.d[s]; + for (c = 0; c < h; c++) + this.d[f + c] = t.d[c]; + if (e.e) { + if (this.e = $7(e.e), this.e.Mc(t), t.e) + for (r = t.e.Kc(); r.Ob(); ) + i = u(r.Pb(), 239), i != e && (this.e.Hc(i) ? --i.c : this.e.Fc(i)); + } else + t.e && (this.e = $7(t.e), this.e.Mc(e)); + this.f = e.f + t.f, this.a = e.a + t.a, this.a > 0 ? m$(this, this.f / this.a) : Tf(e.g, e.d[0]).a != null && Tf(t.g, t.d[0]).a != null ? m$(this, ($(Tf(e.g, e.d[0]).a) + $(Tf(t.g, t.d[0]).a)) / 2) : Tf(e.g, e.d[0]).a != null ? m$(this, Tf(e.g, e.d[0]).a) : Tf(t.g, t.d[0]).a != null && m$(this, Tf(t.g, t.d[0]).a); + } + function mOe(n, e) { + var t, i, r, c, s, f, h, l, a, d; + for (n.a = new ZPn(n6e(y9)), i = new C(e.a); i.a < i.c.c.length; ) { + for (t = u(E(i), 855), f = new vx(A(T(M_, 1), Bn, 86, 0, [])), nn(n.a.a, f), l = new C(t.d); l.a < l.c.c.length; ) + h = u(E(l), 116), a = new QX(n, h), etn(a, u(v(t.c, (W(), Nl)), 21)), Zc(n.g, t) || (Xe(n.g, t, new V(h.c, h.d)), Xe(n.f, t, a)), nn(n.a.b, a), _N(f, a); + for (s = new C(t.b); s.a < s.c.c.length; ) + c = u(E(s), 602), a = new QX(n, c.Df()), Xe(n.b, c, new wi(f, a)), etn(a, u(v(t.c, (W(), Nl)), 21)), c.Bf() && (d = new oZ(n, c.Bf(), 1), etn(d, u(v(t.c, Nl), 21)), r = new vx(A(T(M_, 1), Bn, 86, 0, [])), _N(r, d), Pn(n.c, c.Af(), new wi(f, d))); + } + return n.a; + } + function yGn(n) { + var e; + this.a = n, e = (Vn(), A(T(D_, 1), G, 273, 0, [Xt, Ti, ni, Hc, Sc, Uf])).length, this.b = Ja(Xq, [J, Ern], [601, 149], 0, [e, e], 2), this.c = Ja(Xq, [J, Ern], [601, 149], 0, [e, e], 2), SN(this, Xt, (cn(), pb), A2), h5(this, Xt, Ti, gb, Rd), U7(this, Xt, Hc, gb), U7(this, Xt, ni, gb), h5(this, Xt, Sc, pb, A2), SN(this, Ti, Ws, M2), U7(this, Ti, Hc, Ws), U7(this, Ti, ni, Ws), h5(this, Ti, Sc, gb, Rd), aTn(this, Hc, Ws), U7(this, Hc, ni, Ws), U7(this, Hc, Sc, IH), aTn(this, ni, X8), h5(this, ni, Sc, Av, Tv), SN(this, Sc, Ws, Ws), SN(this, Uf, Ws, M2), h5(this, Uf, Xt, gb, Rd), h5(this, Uf, Sc, gb, Rd), h5(this, Uf, Ti, gb, Rd); + } + function vOe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j; + if (s = t.Lk(), D(s, 102) && u(s, 19).Bb & fr && (g = u(t.md(), 54), k = ea(n.e, g), k != g)) { + if (a = xh(s, k), I6(n, e, Jx(n, e, a)), d = null, fo(n.e) && (i = Qg((Ou(), zi), n.e.Dh(), s), i != $n(n.e.Dh(), n.c))) { + for (j = ru(n.e.Dh(), s), f = 0, c = u(n.g, 124), h = 0; h < e; ++h) + r = c[h], j.am(r.Lk()) && ++f; + d = new GN(n.e, 9, i, g, k, f, !1), d.nj(new ml(n.e, 9, n.c, t, a, e, !1)); + } + return m = u(s, 19), p = br(m), p ? (d = g.Th(n.e, Ot(g.Dh(), p), null, d), d = u(k, 54).Rh(n.e, Ot(k.Dh(), p), null, d)) : m.Bb & kc && (l = -1 - Ot(n.e.Dh(), m), d = g.Th(n.e, l, null, null), !u(k, 54).Ph() && (d = u(k, 54).Rh(n.e, l, null, d))), d && d.oj(), a; + } + return t; + } + function kOe(n) { + var e, t, i; + for (Ng(Da, A(T(a2, 1), Bn, 134, 0, [new cG()])), t = new aG(n), i = 0; i < t.a.length; ++i) + e = Qb(t, i).te().a, An(e, "layered") ? Ng(Da, A(T(a2, 1), Bn, 134, 0, [new e8n()])) : An(e, "force") ? Ng(Da, A(T(a2, 1), Bn, 134, 0, [new N5n()])) : An(e, "stress") ? Ng(Da, A(T(a2, 1), Bn, 134, 0, [new x5n()])) : An(e, "mrtree") ? Ng(Da, A(T(a2, 1), Bn, 134, 0, [new f8n()])) : An(e, "radial") ? Ng(Da, A(T(a2, 1), Bn, 134, 0, [new w8n()])) : An(e, "disco") ? Ng(Da, A(T(a2, 1), Bn, 134, 0, [new O5n(), new D5n()])) : An(e, "sporeOverlap") || An(e, "sporeCompaction") ? Ng(Da, A(T(a2, 1), Bn, 134, 0, [new k8n()])) : An(e, "rectpacking") && Ng(Da, A(T(a2, 1), Bn, 134, 0, [new p8n()])); + } + function jGn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S; + if (g = new ir(n.o), S = e.a / g.a, f = e.b / g.b, k = e.a - g.a, c = e.b - g.b, t) + for (r = x(v(n, (cn(), Ht))) === x((Li(), Uc)), m = new C(n.j); m.a < m.c.c.length; ) + switch (p = u(E(m), 12), p.j.g) { + case 1: + r || (p.n.a *= S); + break; + case 2: + p.n.a += k, r || (p.n.b *= f); + break; + case 3: + r || (p.n.a *= S), p.n.b += c; + break; + case 4: + r || (p.n.b *= f); + } + for (l = new C(n.b); l.a < l.c.c.length; ) + h = u(E(l), 72), a = h.n.a + h.o.a / 2, d = h.n.b + h.o.b / 2, j = a / g.a, s = d / g.b, j + s >= 1 && (j - s > 0 && d >= 0 ? (h.n.a += k, h.n.b += c * s) : j - s < 0 && a >= 0 && (h.n.a += k * j, h.n.b += c)); + n.o.a = e.a, n.o.b = e.b, U(n, (cn(), Fd), (go(), i = u(of(S9), 9), new _o(i, u(xs(i, i.length), 9), 0))); + } + function yOe(n, e, t, i, r, c) { + var s; + if (!(e == null || !lx(e, Kdn, _dn))) + throw M(new Gn("invalid scheme: " + e)); + if (!n && !(t != null && th(t, bu(35)) == -1 && t.length > 0 && (zn(0, t.length), t.charCodeAt(0) != 47))) + throw M(new Gn("invalid opaquePart: " + t)); + if (n && !(e != null && t7(jO, e.toLowerCase())) && !(t == null || !lx(t, D9, L9))) + throw M(new Gn(tJn + t)); + if (n && e != null && t7(jO, e.toLowerCase()) && !nye(t)) + throw M(new Gn(tJn + t)); + if (!u8e(i)) + throw M(new Gn("invalid device: " + i)); + if (!U6e(r)) + throw s = r == null ? "invalid segments: null" : "invalid segment: " + K6e(r), M(new Gn(s)); + if (!(c == null || th(c, bu(35)) == -1)) + throw M(new Gn("invalid query: " + c)); + } + function jOe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S; + if (t.Ug("Network simplex layering", 1), n.b = e, S = u(v(e, (cn(), V8)), 17).a * 4, j = n.b.a, j.c.length < 1) { + t.Vg(); + return; + } + for (c = kSe(n, j), k = null, r = ge(c, 0); r.b != r.d.c; ) { + for (i = u(be(r), 15), f = S * gi(y.Math.sqrt(i.gc())), s = $Se(i), PF(mz(jhe(vz(BL(s), f), k), !0), t.eh(1)), g = n.b.b, m = new C(s.a); m.a < m.c.c.length; ) { + for (p = u(E(m), 125); g.c.length <= p.e; ) + w0(g, g.c.length, new Nc(n.b)); + a = u(p.f, 10), xi(a, u(sn(g, p.e), 30)); + } + if (c.b > 1) + for (k = K(ye, _e, 28, n.b.b.c.length, 15, 1), d = 0, l = new C(n.b.b); l.a < l.c.c.length; ) + h = u(E(l), 30), k[d++] = h.a.c.length; + } + j.c.length = 0, n.a = null, n.b = null, n.c = null, t.Vg(); + } + function EOe(n, e) { + var t, i, r, c, s, f, h, l, a, d; + for (a = new Z(), d = new Cg(), c = null, r = 0, i = 0; i < e.length; ++i) + switch (t = e[i], P6e(c, t) && (r = BY(n, d, a, II, r)), kt(t, (W(), fb)) && (c = u(v(t, fb), 10)), t.k.g) { + case 0: + for (h = TX(Cp(uc(t, (en(), Xn)), new YU())); E$(h); ) + s = u(iQ(h), 12), n.d[s.p] = r++, Kn(a.c, s); + for (r = BY(n, d, a, II, r), l = TX(Cp(uc(t, ae), new YU())); E$(l); ) + s = u(iQ(l), 12), n.d[s.p] = r++, Kn(a.c, s); + break; + case 3: + uc(t, tln).dc() || (s = u(uc(t, tln).Xb(0), 12), n.d[s.p] = r++, Kn(a.c, s)), uc(t, II).dc() || W1(d, t); + break; + case 1: + for (f = uc(t, (en(), Wn)).Kc(); f.Ob(); ) + s = u(f.Pb(), 12), n.d[s.p] = r++, Kn(a.c, s); + uc(t, Zn).Jc(new HCn(d, t)); + } + return BY(n, d, a, II, r), a; + } + function Zen(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m; + if (e == null || e.length == 0) + return null; + if (c = u($c(n.f, e), 23), !c) { + for (r = (p = new ol(n.d).a.vc().Kc(), new Pb(p)); r.a.Ob(); ) + if (t = (s = u(r.a.Pb(), 44), u(s.md(), 23)), f = t.f, m = e.length, An(f.substr(f.length - m, m), e) && (e.length == f.length || Xi(f, f.length - e.length - 1) == 46)) { + if (c) + return null; + c = t; + } + if (!c) { + for (i = (g = new ol(n.d).a.vc().Kc(), new Pb(g)); i.a.Ob(); ) + if (t = (s = u(i.a.Pb(), 44), u(s.md(), 23)), d = t.g, d != null) { + for (h = d, l = 0, a = h.length; l < a; ++l) + if (f = h[l], m = e.length, An(f.substr(f.length - m, m), e) && (e.length == f.length || Xi(f, f.length - e.length - 1) == 46)) { + if (c) + return null; + c = t; + } + } + } + c && Or(n.f, e, c); + } + return c; + } + function COe(n, e) { + var t, i, r, c, s; + for (t = new fg(), s = !1, c = 0; c < e.length; c++) { + if (i = (zn(c, e.length), e.charCodeAt(c)), i == 32) { + for (QT(n, t, 0), t.a += " ", QT(n, t, 0); c + 1 < e.length && (zn(c + 1, e.length), e.charCodeAt(c + 1) == 32); ) + ++c; + continue; + } + if (s) { + i == 39 ? c + 1 < e.length && (zn(c + 1, e.length), e.charCodeAt(c + 1) == 39) ? (t.a += String.fromCharCode(i), ++c) : s = !1 : t.a += String.fromCharCode(i); + continue; + } + if (th("GyMLdkHmsSEcDahKzZv", bu(i)) > 0) { + QT(n, t, 0), t.a += String.fromCharCode(i), r = U8e(e, c), QT(n, t, r), c += r - 1; + continue; + } + i == 39 ? c + 1 < e.length && (zn(c + 1, e.length), e.charCodeAt(c + 1) == 39) ? (t.a += "'", ++c) : s = !0 : t.a += String.fromCharCode(i); + } + QT(n, t, 0), jye(n); + } + function MOe(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + for (O = ASn(n), h = new Z(), c = n.c.length, l = c - 1, a = c + 1; O.a.gc() != 0; ) { + for (; t.b != 0; ) + S = (oe(t.b != 0), u(Xo(t, t.a.a), 118)), O.a.Bc(S) != null, S.g = l--, Ken(S, e, t, i); + for (; e.b != 0; ) + I = (oe(e.b != 0), u(Xo(e, e.a.a), 118)), O.a.Bc(I) != null, I.g = a++, Ken(I, e, t, i); + for (f = Wi, k = O.a.ec().Kc(); k.Ob(); ) { + if (m = u(k.Pb(), 118), !i && m.b > 0 && m.a <= 0) { + h.c.length = 0, Kn(h.c, m); + break; + } + p = m.i - m.d, p >= f && (p > f && (h.c.length = 0, f = p), Kn(h.c, m)); + } + h.c.length != 0 && (s = u(sn(h, cA(r, h.c.length)), 118), O.a.Bc(s) != null, s.g = a++, Ken(s, e, t, i), h.c.length = 0); + } + for (j = n.c.length + 1, g = new C(n); g.a < g.c.c.length; ) + d = u(E(g), 118), d.g < c && (d.g = d.g + j); + } + function EGn(n, e, t) { + var i, r, c, s; + this.j = n, this.e = VZ(n), this.o = this.j.e, this.i = !!this.o, this.p = this.i ? u(sn(t, Hi(this.o).p), 219) : null, r = u(v(n, (W(), qc)), 21), this.g = r.Hc((mr(), cs)), this.b = new Z(), this.d = new $Bn(this.e), s = u(v(this.j, S3), 234), this.q = Ave(e, s, this.e), this.k = new MOn(this), c = If(A(T(nne, 1), Bn, 230, 0, [this, this.d, this.k, this.q])), e == (D0(), Oj) && !on(un(v(n, (cn(), ab)))) ? (i = new QZ(this.e), Kn(c.c, i), this.c = new mJ(i, s, u(this.q, 413))) : e == Oj && on(un(v(n, (cn(), ab)))) ? (i = new QZ(this.e), Kn(c.c, i), this.c = new gxn(i, s, u(this.q, 413))) : this.c = new _Cn(e, this), nn(c, this.c), uGn(c, this.e), this.s = aLe(this.k); + } + function TOe(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m, k, j; + for (c = new Z(), l = new C(i); l.a < l.c.c.length; ) + if (f = u(E(l), 453), s = null, f.f == (pr(), Qc)) + for (m = new C(f.e); m.a < m.c.c.length; ) + p = u(E(m), 18), j = p.d.i, Hi(j) == e ? M$n(n, e, f, p, f.b, p.d) : !t || J4(j, t) ? tje(n, e, f, i, p) : (g = qF(n, e, t, p, f.b, Qc, s), g != s && Kn(c.c, g), g.c && (s = g)); + else + for (d = new C(f.e); d.a < d.c.c.length; ) + if (a = u(E(d), 18), k = a.c.i, Hi(k) == e) + M$n(n, e, f, a, a.c, f.b); + else { + if (!t || J4(k, t)) + continue; + g = qF(n, e, t, a, f.b, zu, s), g != s && Kn(c.c, g), g.c && (s = g); + } + for (h = new C(c); h.a < h.c.c.length; ) + f = u(E(h), 453), qr(e.a, f.a, 0) != -1 || nn(e.a, f.a), f.c && Kn(r.c, f); + } + function CGn(n) { + var e, t, i, r, c, s, f; + for (e = 0, c = new C(n.b.a); c.a < c.c.c.length; ) + i = u(E(c), 194), i.b = 0, i.c = 0; + for (i_n(n, 0), ax(n, n.g), PA(n.c), bz(n.c), t = (ui(), Fr), ay(nL(Yg(ay(nL(Yg(ay(Yg(n.c, t)), gBn(t)))), t))), Yg(n.c, Fr), ux(n, n.g), qKn(n, 0), tGn(n, 0), FHn(n, 1), i_n(n, 1), ax(n, n.d), PA(n.c), s = new C(n.b.a); s.a < s.c.c.length; ) + i = u(E(s), 194), e += y.Math.abs(i.c); + for (f = new C(n.b.a); f.a < f.c.c.length; ) + i = u(E(f), 194), i.b = 0, i.c = 0; + for (t = us, ay(nL(Yg(ay(nL(Yg(ay(bz(Yg(n.c, t))), gBn(t)))), t))), Yg(n.c, Fr), ux(n, n.d), qKn(n, 1), tGn(n, 1), FHn(n, 0), bz(n.c), r = new C(n.b.a); r.a < r.c.c.length; ) + i = u(E(r), 194), e += y.Math.abs(i.c); + return e; + } + function AOe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j; + if (on(un(v(t, (cn(), Kw))))) + for (f = new C(t.j); f.a < f.c.c.length; ) + for (s = u(E(f), 12), g = fh(s.g), l = g, a = 0, d = l.length; a < d; ++a) + h = l[a], c = h.d.i == t, r = c && on(un(v(h, $d))), r && (m = h.c, p = u(ee(n.b, m), 10), p || (p = my(m, (Li(), Jf), m.j, -1, null, null, m.o, u(v(e, Do), 88), e), U(p, (W(), st), m), Xe(n.b, m, p), nn(e.a, p)), j = h.d, k = u(ee(n.b, j), 10), k || (k = my(j, (Li(), Jf), j.j, 1, null, null, j.o, u(v(e, Do), 88), e), U(k, (W(), st), j), Xe(n.b, j, k), nn(e.a, k)), i = JN(h), Yi(i, u(sn(p.j, 0), 12)), Di(i, u(sn(k.j, 0), 12)), Pn(n.a, h, new zC(i, e, (pr(), Qc))), u(v(e, (W(), qc)), 21).Fc((mr(), cs))); + } + function SOe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g; + for (r = new C(n.a.b); r.a < r.c.c.length; ) + for (t = u(E(r), 30), h = new C(t.a); h.a < h.c.c.length; ) + f = u(E(h), 10), e.j[f.p] = f, e.i[f.p] = e.o == (Sf(), zf) ? ai : St; + for (Ku(n.c), s = n.a.b, e.c == (sh(), j1) && (s = Qo(s)), Ipe(n.e, e, n.b), u7(e.p, null), c = s.Kc(); c.Ob(); ) + for (t = u(c.Pb(), 30), l = t.a, e.o == (Sf(), zf) && (l = Qo(l)), g = l.Kc(); g.Ob(); ) + d = u(g.Pb(), 10), e.g[d.p] == d && ozn(n, d, e); + for (uOe(n, e), i = s.Kc(); i.Ob(); ) + for (t = u(i.Pb(), 30), g = new C(t.a); g.a < g.c.c.length; ) + d = u(E(g), 10), e.p[d.p] = e.p[e.g[d.p].p], d == e.g[d.p] && (a = $(e.i[e.j[d.p].p]), (e.o == (Sf(), zf) && a > ai || e.o == Kd && a < St) && (e.p[d.p] = $(e.p[d.p]) + a)); + n.e.xg(); + } + function POe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m; + for (t.Ug("Label dummy switching", 1), i = u(v(e, (cn(), dI)), 232), vve(e), r = sMe(e, i), n.a = K(Oi, Ar, 28, e.b.c.length, 15, 1), f = (Yp(), A(T(bv, 1), G, 232, 0, [dv, N8, av, $w, p2, g2])), a = 0, p = f.length; a < p; ++a) + if (c = f[a], (c == p2 || c == g2 || c == $w) && !u(Tu(r.a, c) ? r.b[c.g] : null, 15).dc()) { + Cve(n, e); + break; + } + for (h = A(T(bv, 1), G, 232, 0, [dv, N8, av, $w, p2, g2]), d = 0, m = h.length; d < m; ++d) + c = h[d], c == p2 || c == g2 || c == $w || hUn(n, u(Tu(r.a, c) ? r.b[c.g] : null, 15)); + for (s = A(T(bv, 1), G, 232, 0, [dv, N8, av, $w, p2, g2]), l = 0, g = s.length; l < g; ++l) + c = s[l], (c == p2 || c == g2 || c == $w) && hUn(n, u(Tu(r.a, c) ? r.b[c.g] : null, 15)); + n.a = null, t.Vg(); + } + function MGn(n, e) { + var t, i, r, c, s, f, h, l, a; + if (l = e, !(l.b == null || n.b == null)) { + for (Gg(n), z5(n), Gg(l), z5(l), t = K(ye, _e, 28, n.b.length + l.b.length, 15, 1), a = 0, i = 0, s = 0; i < n.b.length && s < l.b.length; ) + if (r = n.b[i], c = n.b[i + 1], f = l.b[s], h = l.b[s + 1], c < f) + i += 2; + else if (c >= f && r <= h) + f <= r && c <= h ? (t[a++] = r, t[a++] = c, i += 2) : f <= r ? (t[a++] = r, t[a++] = h, n.b[i] = h + 1, s += 2) : c <= h ? (t[a++] = f, t[a++] = c, i += 2) : (t[a++] = f, t[a++] = h, n.b[i] = h + 1); + else if (h < r) + s += 2; + else + throw M(new ec("Token#intersectRanges(): Internal Error: [" + n.b[i] + "," + n.b[i + 1] + "] & [" + l.b[s] + "," + l.b[s + 1] + "]")); + for (; i < n.b.length; ) + t[a++] = n.b[i++], t[a++] = n.b[i++]; + n.b = K(ye, _e, 28, a, 15, 1), Oc(t, 0, n.b, 0, a); + } + } + function IOe(n) { + var e, t, i, r, c, s, f; + for (e = new Z(), n.g = new Z(), n.d = new Z(), s = new fd(new Ga(n.f.b).a); s.b; ) + c = N0(s), nn(e, u(u(c.md(), 42).b, 86)), hl(u(c.ld(), 602).Af()) ? nn(n.d, u(c.md(), 42)) : nn(n.g, u(c.md(), 42)); + for (ax(n, n.d), ax(n, n.g), n.c = new Z_n(n.b), Che(n.c, (Lz(), jZn)), ux(n, n.d), ux(n, n.g), li(e, n.c.a.b), n.e = new V(St, St), n.a = new V(ai, ai), i = new C(e); i.a < i.c.c.length; ) + t = u(E(i), 86), n.e.a = y.Math.min(n.e.a, t.g.c), n.e.b = y.Math.min(n.e.b, t.g.d), n.a.a = y.Math.max(n.a.a, t.g.c + t.g.b), n.a.b = y.Math.max(n.a.b, t.g.d + t.g.a); + yz(n.c, new Qbn()), f = 0; + do + r = CGn(n), ++f; + while ((f < 2 || r > fa) && f < 10); + yz(n.c, new Ybn()), CGn(n), pwe(n.c), aOe(n.f); + } + function OOe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k; + for (t = u(v(n, (cn(), Ht)), 101), s = n.f, c = n.d, f = s.a + c.b + c.c, h = 0 - c.d - n.c.b, a = s.b + c.d + c.a - n.c.b, l = new Z(), d = new Z(), r = new C(e); r.a < r.c.c.length; ) { + switch (i = u(E(r), 10), t.g) { + case 1: + case 2: + case 3: + vTe(i); + break; + case 4: + g = u(v(i, wb), 8), p = g ? g.a : 0, i.n.a = f * $(R(v(i, (W(), hb)))) - p, IT(i, !0, !1); + break; + case 5: + m = u(v(i, wb), 8), k = m ? m.a : 0, i.n.a = $(R(v(i, (W(), hb)))) - k, IT(i, !0, !1), s.a = y.Math.max(s.a, i.n.a + i.o.a / 2); + } + switch (u(v(i, (W(), gc)), 64).g) { + case 1: + i.n.b = h, Kn(l.c, i); + break; + case 3: + i.n.b = a, Kn(d.c, i); + } + } + switch (t.g) { + case 1: + case 2: + cBn(l, n), cBn(d, n); + break; + case 3: + uBn(l, n), uBn(d, n); + } + } + function DOe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g; + switch (n.k.g) { + case 1: + if (i = u(v(n, (W(), st)), 18), t = u(v(i, rfn), 75), t ? on(un(v(i, Gf))) && (t = Sk(t)) : t = new Cu(), l = u(v(n, yf), 12), l) { + if (a = cc(A(T(Ci, 1), J, 8, 0, [l.i.n, l.n, l.a])), e <= a.a) + return a.b; + xt(t, a, t.a, t.a.a); + } + if (d = u(v(n, Es), 12), d) { + if (g = cc(A(T(Ci, 1), J, 8, 0, [d.i.n, d.n, d.a])), g.a <= e) + return g.b; + xt(t, g, t.c.b, t.c); + } + if (t.b >= 2) { + for (h = ge(t, 0), s = u(be(h), 8), f = u(be(h), 8); f.a < e && h.b != h.d.c; ) + s = f, f = u(be(h), 8); + return s.b + (e - s.a) / (f.a - s.a) * (f.b - s.b); + } + break; + case 3: + switch (c = u(v(u(sn(n.j, 0), 12), (W(), st)), 12), r = c.i, c.j.g) { + case 1: + return r.n.b; + case 3: + return r.n.b + r.o.b; + } + } + return RZ(n).b; + } + function LOe(n) { + var e, t, i, r, c, s, f, h, l, a, d; + for (s = new C(n.d.b); s.a < s.c.c.length; ) + for (c = u(E(s), 30), h = new C(c.a); h.a < h.c.c.length; ) { + if (f = u(E(h), 10), on(un(v(f, (cn(), q8)))) && !L4(Cl(f))) { + i = u(Tge(Cl(f)), 18), a = i.c.i, a == f && (a = i.d.i), d = new wi(a, vi(Ki(f.n), a.n)), Xe(n.b, f, d); + continue; + } + r = new Ho(f.n.a - f.d.b, f.n.b - f.d.d, f.o.a + f.d.b + f.d.c, f.o.b + f.d.d + f.d.a), e = eAn(sCn(uCn(oCn(new WG(), f), r), YZn), n.a), nAn(Jhe(z$n(new VG(), A(T(aP, 1), Bn, 60, 0, [e])), e), n.a), l = new rD(), Xe(n.e, e, l), t = wl(new ie(ce(Ei(f).a.Kc(), new En()))) - wl(new ie(ce(Qt(f).a.Kc(), new En()))), t < 0 ? Tk(l, !0, (ui(), Fr)) : t > 0 && Tk(l, !0, (ui(), Xr)), f.k == (Vn(), ni) && sIn(l), Xe(n.f, f, e); + } + } + function NOe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + for (r = u(v(n, (pt(), u9)), 27), l = et, a = et, f = Wi, h = Wi, O = ge(n.b, 0); O.b != O.d.c; ) + S = u(be(O), 40), p = S.e, m = S.f, l = y.Math.min(l, p.a - m.a / 2), a = y.Math.min(a, p.b - m.b / 2), f = y.Math.max(f, p.a + m.a / 2), h = y.Math.max(h, p.b + m.b / 2); + for (g = u(z(r, (lc(), Iln)), 107), I = ge(n.b, 0); I.b != I.d.c; ) + S = u(be(I), 40), d = v(S, u9), D(d, 207) && (c = u(d, 27), Ro(c, S.e.a, S.e.b), uy(c, S)); + for (j = ge(n.a, 0); j.b != j.d.c; ) + k = u(be(j), 65), i = u(v(k, u9), 74), i && (e = k.a, t = Xg(i, !0, !0), dy(e, t)); + N = f - l + (g.b + g.c), s = h - a + (g.d + g.a), on(un(z(r, (He(), Ww)))) || z0(r, N, s, !1, !1), ht(r, B2, N - (g.b + g.c)), ht(r, F2, s - (g.d + g.a)); + } + function TGn(n, e) { + var t, i, r, c, s, f, h, l, a, d; + for (h = !0, r = 0, l = n.g[e.p], a = e.o.b + n.o, t = n.d[e.p][2], Go(n.b, l, Y(u(sn(n.b, l), 17).a - 1 + t)), Go(n.c, l, $(R(sn(n.c, l))) - a + t * n.f), ++l, l >= n.j ? (++n.j, nn(n.b, Y(1)), nn(n.c, a)) : (i = n.d[e.p][1], Go(n.b, l, Y(u(sn(n.b, l), 17).a + 1 - i)), Go(n.c, l, $(R(sn(n.c, l))) + a - i * n.f)), (n.r == (ps(), Sj) && (u(sn(n.b, l), 17).a > n.k || u(sn(n.b, l - 1), 17).a > n.k) || n.r == Pj && ($(R(sn(n.c, l))) > n.n || $(R(sn(n.c, l - 1))) > n.n)) && (h = !1), s = new ie(ce(Ei(e).a.Kc(), new En())); pe(s); ) + c = u(fe(s), 18), f = c.c.i, n.g[f.p] == l && (d = TGn(n, f), r = r + u(d.a, 17).a, h = h && on(un(d.b))); + return n.g[e.p] = l, r = r + n.d[e.p][0], new wi(Y(r), (_n(), !!h)); + } + function AGn(n, e) { + var t, i, r, c, s; + t = $(R(v(e, (cn(), Ws)))), t < 2 && U(e, Ws, 2), i = u(v(e, Do), 88), i == (ui(), Wf) && U(e, Do, KT(e)), r = u(v(e, Ute), 17), r.a == 0 ? U(e, (W(), S3), new dx()) : U(e, (W(), S3), new qM(r.a)), c = un(v(e, G8)), c == null && U(e, G8, (_n(), x(v(e, $l)) === x((El(), Bv)))), Ut(new Tn(null, new In(e.a, 16)), new OG(n)), Ut(rc(new Tn(null, new In(e.b, 16)), new HU()), new DG(n)), s = new yGn(e), U(e, (W(), E2), s), H7(n.a), hf(n.a, (Vi(), Vs), u(v(e, Nd), 188)), hf(n.a, Wh, u(v(e, xd), 188)), hf(n.a, Dc, u(v(e, U8), 188)), hf(n.a, _c, u(v(e, vI), 188)), hf(n.a, zr, Nve(u(v(e, $l), 223))), MX(n.a, PLe(e)), U(e, wH, gy(n.a, e)); + } + function ntn(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m, k, j, S; + for (d = new de(), s = new Z(), T_n(n, t, n.d.Ag(), s, d), T_n(n, i, n.d.Bg(), s, d), n.b = 0.2 * (k = OHn(rc(new Tn(null, new In(s, 16)), new F3n())), j = OHn(rc(new Tn(null, new In(s, 16)), new B3n())), y.Math.min(k, j)), c = 0, f = 0; f < s.c.length - 1; f++) + for (h = (Ln(f, s.c.length), u(s.c[f], 118)), m = f + 1; m < s.c.length; m++) + c += Xen(n, h, (Ln(m, s.c.length), u(s.c[m], 118))); + for (g = u(v(e, (W(), S3)), 234), c >= 2 && (S = JHn(s, !0, g), !n.e && (n.e = new okn(n)), K8e(n.e, S, s, n.b)), LKn(s, g), KOe(s), p = -1, a = new C(s); a.a < a.c.c.length; ) + l = u(E(a), 118), !(y.Math.abs(l.s - l.c) < mh) && (p = y.Math.max(p, l.o), n.d.yg(l, r, n.c)); + return n.d.a.a.$b(), p + 1; + } + function $Oe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + for (d = u(NC((s = ge(new sl(e).a.d, 0), new sg(s))), 40), m = d ? u(v(d, (pt(), uq)), 40) : null, r = 1; d && m; ) { + for (h = 0, N = 0, t = d, i = m, f = 0; f < r; f++) + t = n$(t), i = n$(i), N += $(R(v(t, (pt(), Dv)))), h += $(R(v(i, Dv))); + if (O = $(R(v(m, (pt(), E1)))), I = $(R(v(d, E1))), g = OY(n, d, m), p = O + h + n.b + g - I - N, 0 < p) { + for (l = e, a = 0; l && l != i; ) + ++a, l = u(v(l, $I), 40); + if (l) + for (S = p / a, l = e; l != i; ) + j = $(R(v(l, E1))) + p, U(l, E1, j), k = $(R(v(l, Dv))) + p, U(l, Dv, k), p -= S, l = u(v(l, $I), 40); + else + return; + } + ++r, d.d.b == 0 ? d = Den(new sl(e), r) : d = u(NC((c = ge(new sl(d).a.d, 0), new sg(c))), 40), m = d ? u(v(d, uq), 40) : null; + } + } + function xOe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X; + return g = n.c[e], p = n.c[t], m = u(v(g, (W(), T3)), 15), !!m && m.gc() != 0 && m.Hc(p) || (k = g.k != (Vn(), Ti) && p.k != Ti, j = u(v(g, fb), 10), S = u(v(p, fb), 10), I = j != S, O = !!j && j != g || !!S && S != p, N = $x(g, (en(), Xn)), _ = $x(p, ae), O = O | ($x(g, ae) || $x(p, Xn)), X = O && I || N || _, k && X) || g.k == (Vn(), Hc) && p.k == Xt || p.k == (Vn(), Hc) && g.k == Xt ? !1 : (a = n.c[e], c = n.c[t], r = mKn(n.e, a, c, (en(), Wn)), h = mKn(n.i, a, c, Zn), aTe(n.f, a, c), l = DFn(n.b, a, c) + u(r.a, 17).a + u(h.a, 17).a + n.f.d, f = DFn(n.b, c, a) + u(r.b, 17).a + u(h.b, 17).a + n.f.b, n.a && (d = u(v(a, st), 12), s = u(v(c, st), 12), i = ZRn(n.g, d, s), l += u(i.a, 17).a, f += u(i.b, 17).a), l > f); + } + function SGn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I; + for (l = St, a = St, f = ai, h = ai, g = new C(e.i); g.a < g.c.c.length; ) + d = u(E(g), 68), r = u(u(ee(n.g, d.a), 42).b, 27), Ro(r, d.b.c, d.b.d), l = y.Math.min(l, r.i), a = y.Math.min(a, r.j), f = y.Math.max(f, r.i + r.g), h = y.Math.max(h, r.j + r.f); + for (p = u(z(n.c, (Wk(), Qce)), 107), z0(n.c, f - l + (p.b + p.c), h - a + (p.d + p.a), !0, !0), cnn(n.c, -l + p.b, -a + p.d), i = new ne($In(n.c)); i.e != i.i.gc(); ) + t = u(ue(i), 74), s = Xg(t, !0, !0), m = Rh(t), j = ra(t), k = new V(m.i + m.g / 2, m.j + m.f / 2), c = new V(j.i + j.g / 2, j.j + j.f / 2), S = vi(new V(c.a, c.b), k), mm(S, m.g, m.f), tt(k, S), I = vi(new V(k.a, k.b), c), mm(I, j.g, j.f), tt(c, I), j7(s, k.a, k.b), y7(s, c.a, c.b); + } + function FOe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m; + for (e.Ug("Label dummy removal", 1), i = $(R(v(n, (cn(), T2)))), r = $(R(v(n, Uw))), l = u(v(n, Do), 88), h = new C(n.b); h.a < h.c.c.length; ) + for (f = u(E(h), 30), d = new Fi(f.a, 0); d.b < d.d.gc(); ) + a = (oe(d.b < d.d.gc()), u(d.d.Xb(d.c = d.b++), 10)), a.k == (Vn(), Sc) && (g = u(v(a, (W(), st)), 18), m = $(R(v(g, v1))), s = x(v(a, A3)) === x((To(), Aa)), t = new ir(a.n), s && (t.b += m + i), c = new V(a.o.a, a.o.b + (a.k == Sc && !o4(ut(u(v(a, K8), 15).Oc(), new Y3(new UU()))).Bd((Wa(), v3)) ? 0 : -m - i)), p = u(v(a, K8), 15), l == (ui(), us) || l == Vf ? qCe(p, t, r, c, s, l) : Q6e(p, t, r, c), li(g.b, p), XF(a, x(v(n, $l)) === x((El(), Yj))), bo(d)); + e.Vg(); + } + function BOe(n) { + n.q || (n.q = !0, n.p = hc(n, 0), n.a = hc(n, 1), jt(n.a, 0), n.f = hc(n, 2), jt(n.f, 1), Ft(n.f, 2), n.n = hc(n, 3), Ft(n.n, 3), Ft(n.n, 4), Ft(n.n, 5), Ft(n.n, 6), n.g = hc(n, 4), jt(n.g, 7), Ft(n.g, 8), n.c = hc(n, 5), jt(n.c, 7), jt(n.c, 8), n.i = hc(n, 6), jt(n.i, 9), jt(n.i, 10), jt(n.i, 11), jt(n.i, 12), Ft(n.i, 13), n.j = hc(n, 7), jt(n.j, 9), n.d = hc(n, 8), jt(n.d, 3), jt(n.d, 4), jt(n.d, 5), jt(n.d, 6), Ft(n.d, 7), Ft(n.d, 8), Ft(n.d, 9), Ft(n.d, 10), n.b = hc(n, 9), Ft(n.b, 0), Ft(n.b, 1), n.e = hc(n, 10), Ft(n.e, 1), Ft(n.e, 2), Ft(n.e, 3), Ft(n.e, 4), jt(n.e, 5), jt(n.e, 6), jt(n.e, 7), jt(n.e, 8), jt(n.e, 9), jt(n.e, 10), Ft(n.e, 11), n.k = hc(n, 11), Ft(n.k, 0), Ft(n.k, 1), n.o = We(n, 12), n.s = We(n, 13)); + } + function etn(n, e) { + e.dc() && Dh(n.j, !0, !0, !0, !0), rt(e, (en(), ef)) && Dh(n.j, !0, !0, !0, !1), rt(e, os) && Dh(n.j, !1, !0, !0, !0), rt(e, No) && Dh(n.j, !0, !0, !1, !0), rt(e, Ts) && Dh(n.j, !0, !1, !0, !0), rt(e, Xu) && Dh(n.j, !1, !0, !0, !1), rt(e, ss) && Dh(n.j, !1, !0, !1, !0), rt(e, $o) && Dh(n.j, !0, !1, !1, !0), rt(e, tf) && Dh(n.j, !0, !1, !0, !1), rt(e, pu) && Dh(n.j, !0, !0, !0, !0), rt(e, su) && Dh(n.j, !0, !0, !0, !0), rt(e, pu) && Dh(n.j, !0, !0, !0, !0), rt(e, gu) && Dh(n.j, !0, !0, !0, !0), rt(e, mu) && Dh(n.j, !0, !0, !0, !0), rt(e, Vu) && Dh(n.j, !0, !0, !0, !0), rt(e, Gc) && Dh(n.j, !0, !0, !0, !0); + } + function PGn(n, e, t) { + var i, r, c, s, f, h, l, a, d; + if (n.a != e.jk()) + throw M(new Gn(nv + e.xe() + eb)); + if (i = c1((Ou(), zi), e).Jl(), i) + return i.jk().wi().ri(i, t); + if (s = c1(zi, e).Ll(), s) { + if (t == null) + return null; + if (f = u(t, 15), f.dc()) + return ""; + for (d = new ql(), c = f.Kc(); c.Ob(); ) + r = c.Pb(), Cr(d, s.jk().wi().ri(s, r)), d.a += " "; + return bL(d, d.a.length - 1); + } + if (a = c1(zi, e).Ml(), !a.dc()) { + for (l = a.Kc(); l.Ob(); ) + if (h = u(l.Pb(), 156), h.fk(t)) + try { + if (d = h.jk().wi().ri(h, t), d != null) + return d; + } catch (g) { + if (g = It(g), !D(g, 103)) + throw M(g); + } + throw M(new Gn("Invalid value: '" + t + "' for datatype :" + e.xe())); + } + return u(e, 847).ok(), t == null ? null : D(t, 180) ? "" + u(t, 180).a : wo(t) == oP ? MTn(O9[0], u(t, 206)) : Jr(t); + } + function ROe(n) { + var e, t, i, r, c, s, f, h, l, a; + for (l = new Ct(), f = new Ct(), c = new C(n); c.a < c.c.c.length; ) + i = u(E(c), 131), i.v = 0, i.n = i.i.c.length, i.u = i.t.c.length, i.n == 0 && xt(l, i, l.c.b, l.c), i.u == 0 && i.r.a.gc() == 0 && xt(f, i, f.c.b, f.c); + for (s = -1; l.b != 0; ) + for (i = u(Ux(l, 0), 131), t = new C(i.t); t.a < t.c.c.length; ) + e = u(E(t), 274), a = e.b, a.v = y.Math.max(a.v, i.v + 1), s = y.Math.max(s, a.v), --a.n, a.n == 0 && xt(l, a, l.c.b, l.c); + if (s > -1) { + for (r = ge(f, 0); r.b != r.d.c; ) + i = u(be(r), 131), i.v = s; + for (; f.b != 0; ) + for (i = u(Ux(f, 0), 131), t = new C(i.i); t.a < t.c.c.length; ) + e = u(E(t), 274), h = e.a, h.r.a.gc() == 0 && (h.v = y.Math.min(h.v, i.v - 1), --h.u, h.u == 0 && xt(f, h, f.c.b, f.c)); + } + } + function KOe(n) { + var e, t, i, r, c, s, f, h, l, a; + for (l = new Z(), f = new Z(), s = new C(n); s.a < s.c.c.length; ) + r = u(E(s), 118), JO(r, r.f.c.length), SE(r, r.k.c.length), r.d == 0 && Kn(l.c, r), r.i == 0 && r.e.b == 0 && Kn(f.c, r); + for (i = -1; l.c.length != 0; ) + for (r = u(Zl(l, 0), 118), t = new C(r.k); t.a < t.c.c.length; ) + e = u(E(t), 132), a = e.b, pG(a, y.Math.max(a.o, r.o + 1)), i = y.Math.max(i, a.o), JO(a, a.d - 1), a.d == 0 && Kn(l.c, a); + if (i > -1) { + for (c = new C(f); c.a < c.c.c.length; ) + r = u(E(c), 118), r.o = i; + for (; f.c.length != 0; ) + for (r = u(Zl(f, 0), 118), t = new C(r.f); t.a < t.c.c.length; ) + e = u(E(t), 132), h = e.a, !(h.e.b > 0) && (pG(h, y.Math.min(h.o, r.o - 1)), SE(h, h.i - 1), h.i == 0 && Kn(f.c, h)); + } + } + function IGn(n, e, t, i, r) { + var c, s, f, h; + return h = St, s = !1, f = Gen(n, vi(new V(e.a, e.b), n), tt(new V(t.a, t.b), r), vi(new V(i.a, i.b), t)), c = !!f && !(y.Math.abs(f.a - n.a) <= Z0 && y.Math.abs(f.b - n.b) <= Z0 || y.Math.abs(f.a - e.a) <= Z0 && y.Math.abs(f.b - e.b) <= Z0), f = Gen(n, vi(new V(e.a, e.b), n), t, r), f && ((y.Math.abs(f.a - n.a) <= Z0 && y.Math.abs(f.b - n.b) <= Z0) == (y.Math.abs(f.a - e.a) <= Z0 && y.Math.abs(f.b - e.b) <= Z0) || c ? h = y.Math.min(h, z6(vi(f, t))) : s = !0), f = Gen(n, vi(new V(e.a, e.b), n), i, r), f && (s || (y.Math.abs(f.a - n.a) <= Z0 && y.Math.abs(f.b - n.b) <= Z0) == (y.Math.abs(f.a - e.a) <= Z0 && y.Math.abs(f.b - e.b) <= Z0) || c) && (h = y.Math.min(h, z6(vi(f, i)))), h; + } + function OGn(n) { + c0(n, new pd(UE(t0(Zd(e0(n0(new _a(), la), SXn), "Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."), new Xbn()), cu))), Q(n, la, i8, rn(Ton)), Q(n, la, oS, (_n(), !0)), Q(n, la, r2, rn(dZn)), Q(n, la, d3, rn(bZn)), Q(n, la, a3, rn(wZn)), Q(n, la, zm, rn(aZn)), Q(n, la, r8, rn(Son)), Q(n, la, Xm, rn(gZn)), Q(n, la, Qtn, rn(Mon)), Q(n, la, Ztn, rn(Eon)), Q(n, la, nin, rn(Con)), Q(n, la, ein, rn(Aon)), Q(n, la, Ytn, rn(EP)); + } + function _Oe(n) { + var e, t, i, r, c, s, f, h; + for (e = null, i = new C(n); i.a < i.c.c.length; ) + t = u(E(i), 239), $(Tf(t.g, t.d[0]).a), t.b = null, t.e && t.e.gc() > 0 && t.c == 0 && (!e && (e = new Z()), Kn(e.c, t)); + if (e) + for (; e.c.length != 0; ) { + if (t = u(Zl(e, 0), 239), t.b && t.b.c.length > 0) { + for (c = (!t.b && (t.b = new Z()), new C(t.b)); c.a < c.c.c.length; ) + if (r = u(E(c), 239), J9(Tf(r.g, r.d[0]).a) == J9(Tf(t.g, t.d[0]).a)) { + if (qr(n, r, 0) > qr(n, t, 0)) + return new wi(r, t); + } else if ($(Tf(r.g, r.d[0]).a) > $(Tf(t.g, t.d[0]).a)) + return new wi(r, t); + } + for (f = (!t.e && (t.e = new Z()), t.e).Kc(); f.Ob(); ) + s = u(f.Pb(), 239), h = (!s.b && (s.b = new Z()), s.b), Xb(0, h.c.length), d6(h.c, 0, t), s.c == h.c.length && Kn(e.c, s); + } + return null; + } + function HOe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S; + for (e.Ug("Interactive crossing minimization", 1), s = 0, c = new C(n.b); c.a < c.c.c.length; ) + i = u(E(c), 30), i.p = s++; + for (g = VZ(n), j = new Ez(g.length), uGn(new Bu(A(T(nne, 1), Bn, 230, 0, [j])), g), k = 0, s = 0, r = new C(n.b); r.a < r.c.c.length; ) { + for (i = u(E(r), 30), t = 0, d = 0, a = new C(i.a); a.a < a.c.c.length; ) + for (h = u(E(a), 10), h.n.a > 0 && (t += h.n.a + h.o.a / 2, ++d), m = new C(h.j); m.a < m.c.c.length; ) + p = u(E(m), 12), p.p = k++; + for (d > 0 && (t /= d), S = K(Oi, Ar, 28, i.a.c.length, 15, 1), f = 0, l = new C(i.a); l.a < l.c.c.length; ) + h = u(E(l), 10), h.p = f++, S[h.p] = DOe(h, t), h.k == (Vn(), Ti) && U(h, (W(), cfn), S[h.p]); + Dn(), Zt(i.a, new R7n(S)), aUn(j, g, s, !0), ++s; + } + e.Vg(); + } + function V5(n, e) { + var t, i, r, c, s, f, h, l, a; + if (e.e == 5) { + MGn(n, e); + return; + } + if (l = e, !(l.b == null || n.b == null)) { + for (Gg(n), z5(n), Gg(l), z5(l), t = K(ye, _e, 28, n.b.length + l.b.length, 15, 1), a = 0, i = 0, s = 0; i < n.b.length && s < l.b.length; ) + if (r = n.b[i], c = n.b[i + 1], f = l.b[s], h = l.b[s + 1], c < f) + t[a++] = n.b[i++], t[a++] = n.b[i++]; + else if (c >= f && r <= h) + f <= r && c <= h ? i += 2 : f <= r ? (n.b[i] = h + 1, s += 2) : c <= h ? (t[a++] = r, t[a++] = f - 1, i += 2) : (t[a++] = r, t[a++] = f - 1, n.b[i] = h + 1, s += 2); + else if (h < r) + s += 2; + else + throw M(new ec("Token#subtractRanges(): Internal Error: [" + n.b[i] + "," + n.b[i + 1] + "] - [" + l.b[s] + "," + l.b[s + 1] + "]")); + for (; i < n.b.length; ) + t[a++] = n.b[i++], t[a++] = n.b[i++]; + n.b = K(ye, _e, 28, a, 15, 1), Oc(t, 0, n.b, 0, a); + } + } + function DGn(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + for (f = Xg(e, !1, !1), S = Qk(f), i && (S = Sk(S)), O = $(R(z(e, (C5(), g_)))), j = (oe(S.b != 0), u(S.a.a.c, 8)), d = u(Zo(S, 1), 8), S.b > 2 ? (a = new Z(), li(a, new Ql(S, 1, S.b)), c = mzn(a, O + n.a), I = new bF(c), Ur(I, e), Kn(t.c, I)) : i ? I = u(ee(n.b, Rh(e)), 272) : I = u(ee(n.b, ra(e)), 272), h = Rh(e), i && (h = ra(e)), s = _je(j, h), l = O + n.a, s.a ? (l += y.Math.abs(j.b - d.b), k = new V(d.a, (d.b + j.b) / 2)) : (l += y.Math.abs(j.a - d.a), k = new V((d.a + j.a) / 2, d.b)), i ? Xe(n.d, e, new mZ(I, s, k, l)) : Xe(n.c, e, new mZ(I, s, k, l)), Xe(n.b, e, I), m = (!e.n && (e.n = new q(Sr, e, 1, 7)), e.n), p = new ne(m); p.e != p.i.gc(); ) + g = u(ue(p), 135), r = fy(n, g, !0, 0, 0), Kn(t.c, r); + } + function qOe(n) { + var e, t, i, r, c, s, f; + if (!n.A.dc()) { + if (n.A.Hc((go(), rE)) && (u(Mr(n.b, (en(), Xn)), 127).k = !0, u(Mr(n.b, ae), 127).k = !0, e = n.q != (Li(), el) && n.q != Uc, bG(u(Mr(n.b, Zn), 127), e), bG(u(Mr(n.b, Wn), 127), e), bG(n.g, e), n.A.Hc(zd) && (u(Mr(n.b, Xn), 127).j = !0, u(Mr(n.b, ae), 127).j = !0, u(Mr(n.b, Zn), 127).k = !0, u(Mr(n.b, Wn), 127).k = !0, n.g.k = !0)), n.A.Hc(iE)) + for (n.a.j = !0, n.a.k = !0, n.g.j = !0, n.g.k = !0, f = n.B.Hc((to(), P9)), r = jx(), c = 0, s = r.length; c < s; ++c) + i = r[c], t = u(Mr(n.i, i), 314), t && (tZ(i) ? (t.j = !0, t.k = !0) : (t.j = !f, t.k = !f)); + n.A.Hc(Yw) && n.B.Hc((to(), uE)) && (n.g.j = !0, n.g.j = !0, n.a.j || (n.a.j = !0, n.a.k = !0, n.a.e = !0)); + } + } + function UOe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S; + for (i = new C(n.e.b); i.a < i.c.c.length; ) + for (t = u(E(i), 30), c = new C(t.a); c.a < c.c.c.length; ) + if (r = u(E(c), 10), p = n.i[r.p], l = p.a.e, h = p.d.e, r.n.b = l, S = h - l - r.o.b, e = HF(r), g = (uw(), (r.q ? r.q : (Dn(), Dn(), Vh))._b((cn(), bb)) ? d = u(v(r, bb), 203) : d = u(v(Hi(r), z8), 203), d), e && (g == P2 || g == S2) && (r.o.b += S), e && (g == BH || g == P2 || g == S2)) { + for (k = new C(r.j); k.a < k.c.c.length; ) + m = u(E(k), 12), (en(), su).Hc(m.j) && (a = u(ee(n.k, m), 125), m.n.b = a.e - l); + for (f = new C(r.b); f.a < f.c.c.length; ) + s = u(E(f), 72), j = u(v(r, db), 21), j.Hc((aw(), Ms)) ? s.n.b += S : j.Hc(nl) && (s.n.b += S / 2); + (g == P2 || g == S2) && uc(r, (en(), ae)).Jc(new ekn(S)); + } + } + function GOe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + for (l = new Z(), h = new C(e.a); h.a < h.c.c.length; ) + for (s = u(E(h), 10), g = uc(s, (en(), Zn)).Kc(); g.Ob(); ) + for (d = u(g.Pb(), 12), r = new C(d.g); r.a < r.c.c.length; ) + i = u(E(r), 18), !(!sr(i) && i.c.i.c == i.d.i.c || sr(i) || i.d.i.c != t) && Kn(l.c, i); + for (f = Qo(t.a).Kc(); f.Ob(); ) + for (s = u(f.Pb(), 10), g = uc(s, (en(), Wn)).Kc(); g.Ob(); ) + for (d = u(g.Pb(), 12), r = new C(d.e); r.a < r.c.c.length; ) + if (i = u(E(r), 18), !(!sr(i) && i.c.i.c == i.d.i.c || sr(i) || i.c.i.c != e) && l.c.length != 0) { + for (a = new Fi(l, l.c.length), c = (oe(a.b > 0), u(a.a.Xb(a.c = --a.b), 18)); c != i && a.b > 0; ) + n.a[c.p] = !0, n.a[i.p] = !0, c = (oe(a.b > 0), u(a.a.Xb(a.c = --a.b), 18)); + a.b > 0 && bo(a); + } + } + function LGn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p; + if (!n.b) + return !1; + for (s = null, g = null, h = new r$(null, null), r = 1, h.a[1] = n.b, d = h; d.a[r]; ) + l = r, f = g, g = d, d = d.a[r], i = n.a.Ne(e, d.d), r = i < 0 ? 0 : 1, i == 0 && (!t.c || mc(d.e, t.d)) && (s = d), !(d && d.b) && !Ob(d.a[r]) && (Ob(d.a[1 - r]) ? g = g.a[l] = jT(d, r) : Ob(d.a[1 - r]) || (p = g.a[1 - l], p && (!Ob(p.a[1 - l]) && !Ob(p.a[l]) ? (g.b = !1, p.b = !0, d.b = !0) : (c = f.a[1] == g ? 1 : 0, Ob(p.a[l]) ? f.a[c] = fDn(g, l) : Ob(p.a[1 - l]) && (f.a[c] = jT(g, l)), d.b = f.a[c].b = !0, f.a[c].a[0].b = !1, f.a[c].a[1].b = !1)))); + return s && (t.b = !0, t.d = s.e, d != s && (a = new r$(d.d, d.e), zye(n, h, s, a), g == s && (g = a)), g.a[g.a[1] == d ? 1 : 0] = d.a[d.a[0] ? 0 : 1], --n.c), n.b = h.a[1], n.b && (n.b.b = !1), t.b; + } + function zOe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g; + for (r = new C(n.a.a.b); r.a < r.c.c.length; ) + for (i = u(E(r), 60), h = i.c.Kc(); h.Ob(); ) + f = u(h.Pb(), 60), i.a != f.a && (hl(n.a.d) ? d = n.a.g.ff(i, f) : d = n.a.g.gf(i, f), c = i.b.a + i.d.b + d - f.b.a, c = y.Math.ceil(c), c = y.Math.max(0, c), rQ(i, f) ? (s = l0(new Xa(), n.d), l = gi(y.Math.ceil(f.b.a - i.b.a)), e = l - (f.b.a - i.b.a), a = xp(i).a, t = i, a || (a = xp(f).a, e = -e, t = f), a && (t.b.a -= e, a.n.a -= e), qs(Ls(Ds(Ns(Os(new hs(), y.Math.max(0, l)), 1), s), n.c[i.a.d])), qs(Ls(Ds(Ns(Os(new hs(), y.Math.max(0, -l)), 1), s), n.c[f.a.d]))) : (g = 1, (D(i.g, 154) && D(f.g, 10) || D(f.g, 154) && D(i.g, 10)) && (g = 2), qs(Ls(Ds(Ns(Os(new hs(), gi(c)), g), n.c[i.a.d]), n.c[f.a.d])))); + } + function NGn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + if (t) + for (i = -1, a = new Fi(e, 0); a.b < a.d.gc(); ) { + if (f = (oe(a.b < a.d.gc()), u(a.d.Xb(a.c = a.b++), 10)), d = n.c[f.c.p][f.p].a, d == null) { + for (s = i + 1, c = new Fi(e, a.b); c.b < c.d.gc(); ) + if (g = m1e(n, (oe(c.b < c.d.gc()), u(c.d.Xb(c.c = c.b++), 10))).a, g != null) { + s = (Jn(g), g); + break; + } + d = (i + s) / 2, n.c[f.c.p][f.p].a = d, n.c[f.c.p][f.p].d = (Jn(d), d), n.c[f.c.p][f.p].b = 1; + } + i = (Jn(d), d); + } + else { + for (r = 0, l = new C(e); l.a < l.c.c.length; ) + f = u(E(l), 10), n.c[f.c.p][f.p].a != null && (r = y.Math.max(r, $(n.c[f.c.p][f.p].a))); + for (r += 2, h = new C(e); h.a < h.c.c.length; ) + f = u(E(h), 10), n.c[f.c.p][f.p].a == null && (d = eo(n.i, 24) * Iy * r - 1, n.c[f.c.p][f.p].a = d, n.c[f.c.p][f.p].d = d, n.c[f.c.p][f.p].b = 1); + } + } + function XOe(n, e, t) { + var i, r, c, s, f, h, l, a, d; + for (!t && (t = t6e(e.q.getTimezoneOffset())), r = (e.q.getTimezoneOffset() - t.a) * 6e4, f = new fV(Zi(vc(e.q.getTime()), r)), h = f, f.q.getTimezoneOffset() != e.q.getTimezoneOffset() && (r > 0 ? r -= 864e5 : r += 864e5, h = new fV(Zi(vc(e.q.getTime()), r))), a = new fg(), l = n.a.length, c = 0; c < l; ) + if (i = Xi(n.a, c), i >= 97 && i <= 122 || i >= 65 && i <= 90) { + for (s = c + 1; s < l && Xi(n.a, s) == i; ++s) + ; + zLe(a, i, s - c, f, h, t), c = s; + } else if (i == 39) { + if (++c, c < l && Xi(n.a, c) == 39) { + a.a += "'", ++c; + continue; + } + for (d = !1; !d; ) { + for (s = c; s < l && Xi(n.a, s) != 39; ) + ++s; + if (s >= l) + throw M(new Gn("Missing trailing '")); + s + 1 < l && Xi(n.a, s + 1) == 39 ? ++s : d = !0, Re(a, qo(n.a, c, s)), c = s + 1; + } + } else + a.a += String.fromCharCode(i), ++c; + return a.a; + } + function VOe() { + Ge(eg, new Xvn()), Ge(Ue, new r6n()), Ge(As, new w6n()), Ge(Cf, new y6n()), Ge(EU, new j6n()), Ge(EO, new E6n()), Ge(Bl, new C6n()), Ge(I9, new M6n()), Ge(fE, new Fvn()), Ge(pU, new Bvn()), Ge(Oa, new Rvn()), Ge(Ss, new Kvn()), Ge(Ef, new _vn()), Ge(jb, new Hvn()), Ge(tg, new qvn()), Ge(vu, new Uvn()), Ge(ng, new Gvn()), Ge(pc, new zvn()), Ge(Er, new Vvn()), Ge(fu, new Wvn()), Ge(zt, new Jvn()), Ge(T(xu, 1), new Qvn()), Ge(p3, new Yvn()), Ge(A8, new Zvn()), Ge(oP, new n6n()), Ge(m0n, new e6n()), Ge(fi, new t6n()), Ge(Ldn, new i6n()), Ge(xdn, new c6n()), Ge(c0n, new u6n()), Ge(CO, new o6n()), Ge(ov, new s6n()), Ge(Gi, new f6n()), Ge(run, new h6n()), Ge(ib, new l6n()), Ge(cun, new a6n()), Ge(e0n, new d6n()), Ge(v0n, new b6n()), Ge(rb, new g6n()), Ge(fn, new p6n()), Ge($dn, new m6n()), Ge(k0n, new v6n()); + } + function $Gn(n, e) { + var t, i, r, c, s, f, h, l, a; + if (n == null) + return wu; + if (h = e.a.zc(n, e), h != null) + return "[...]"; + for (t = new hd(cr, "[", "]"), r = n, c = 0, s = r.length; c < s; ++c) + i = r[c], i != null && wo(i).i & 4 ? Array.isArray(i) && (a = bk(i), !(a >= 14 && a <= 16)) ? e.a._b(i) ? (t.a ? Re(t.a, t.b) : t.a = new mo(t.d), T6(t.a, "[...]")) : (f = ud(i), l = new F6(e), pl(t, $Gn(f, l))) : D(i, 183) ? pl(t, CEe(u(i, 183))) : D(i, 195) ? pl(t, fye(u(i, 195))) : D(i, 201) ? pl(t, vje(u(i, 201))) : D(i, 2111) ? pl(t, hye(u(i, 2111))) : D(i, 53) ? pl(t, EEe(u(i, 53))) : D(i, 376) ? pl(t, _Ee(u(i, 376))) : D(i, 846) ? pl(t, jEe(u(i, 846))) : D(i, 109) && pl(t, yEe(u(i, 109))) : pl(t, i == null ? wu : Jr(i)); + return t.a ? t.e.length == 0 ? t.a.a : t.a.a + ("" + t.e) : t.c; + } + function Dm(n, e) { + var t, i, r, c; + c = n.F, e == null ? (n.F = null, cm(n, null)) : (n.F = (Jn(e), e), i = th(e, bu(60)), i != -1 ? (r = (Bi(0, i, e.length), e.substr(0, i)), th(e, bu(46)) == -1 && !An(r, i3) && !An(r, m8) && !An(r, GS) && !An(r, v8) && !An(r, k8) && !An(r, y8) && !An(r, j8) && !An(r, E8) && (r = wJn), t = FC(e, bu(62)), t != -1 && (r += "" + (zn(t + 1, e.length + 1), e.substr(t + 1))), cm(n, r)) : (r = e, th(e, bu(46)) == -1 && (i = th(e, bu(91)), i != -1 && (r = (Bi(0, i, e.length), e.substr(0, i))), !An(r, i3) && !An(r, m8) && !An(r, GS) && !An(r, v8) && !An(r, k8) && !An(r, y8) && !An(r, j8) && !An(r, E8) ? (r = wJn, i != -1 && (r += "" + (zn(i, e.length + 1), e.substr(i)))) : r = e), cm(n, r), r == e && (n.F = n.D))), n.Db & 4 && !(n.Db & 1) && it(n, new Mi(n, 1, 5, c, e)); + } + function xGn(n, e) { + var t, i, r, c, s, f, h, l, a, d; + if (h = e.length - 1, f = (zn(h, e.length), e.charCodeAt(h)), f == 93) { + if (s = th(e, bu(91)), s >= 0) + return r = Q5e(n, (Bi(1, s, e.length), e.substr(1, s - 1))), a = (Bi(s + 1, h, e.length), e.substr(s + 1, h - (s + 1))), ELe(n, a, r); + } else { + if (t = -1, wun == null && (wun = new RegExp("\\d")), wun.test(String.fromCharCode(f)) && (t = AV(e, bu(46), h - 1), t >= 0)) { + i = u(YN(n, C$n(n, (Bi(1, t, e.length), e.substr(1, t - 1))), !1), 61), l = 0; + try { + l = Ao((zn(t + 1, e.length + 1), e.substr(t + 1)), Wi, et); + } catch (g) { + throw g = It(g), D(g, 130) ? (c = g, M(new eT(c))) : M(g); + } + if (l < i.gc()) + return d = i.Xb(l), D(d, 76) && (d = u(d, 76).md()), u(d, 58); + } + if (t < 0) + return u(YN(n, C$n(n, (zn(1, e.length + 1), e.substr(1))), !1), 58); + } + return null; + } + function WOe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k; + for (e.Ug("Label dummy insertions", 1), d = new Z(), s = $(R(v(n, (cn(), T2)))), l = $(R(v(n, Uw))), a = u(v(n, Do), 88), p = new C(n.a); p.a < p.c.c.length; ) + for (g = u(E(p), 10), c = new ie(ce(Qt(g).a.Kc(), new En())); pe(c); ) + if (r = u(fe(c), 18), r.c.i != r.d.i && yL(r.b, qZn)) { + for (k = gme(r), m = Oh(r.b.c.length), t = TMe(n, r, k, m), Kn(d.c, t), i = t.o, f = new Fi(r.b, 0); f.b < f.d.gc(); ) + h = (oe(f.b < f.d.gc()), u(f.d.Xb(f.c = f.b++), 72)), x(v(h, Th)) === x((Nf(), xv)) && (a == (ui(), us) || a == Vf ? (i.a += h.o.a + l, i.b = y.Math.max(i.b, h.o.b)) : (i.a = y.Math.max(i.a, h.o.a), i.b += h.o.b + l), Kn(m.c, h), bo(f)); + a == (ui(), us) || a == Vf ? (i.a -= l, i.b += s + k) : i.b += s - l + k; + } + li(n.a, d), e.Vg(); + } + function JOe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m; + if (n.c = n.e, m = un(v(e, (cn(), Gte))), p = m == null || (Jn(m), m), c = u(v(e, (W(), qc)), 21).Hc((mr(), cs)), r = u(v(e, Ht), 101), t = !(r == (Li(), Gd) || r == el || r == Uc), p && (t || !c)) { + for (d = new C(e.a); d.a < d.c.c.length; ) + l = u(E(d), 10), l.p = 0; + for (g = new Z(), a = new C(e.a); a.a < a.c.c.length; ) + if (l = u(E(a), 10), i = vUn(n, l, null), i) { + for (h = new EQ(), Ur(h, e), U(h, Nl, u(i.b, 21)), WW(h.d, e.d), U(h, jv, null), f = u(i.a, 15).Kc(); f.Ob(); ) + s = u(f.Pb(), 10), nn(h.a, s), s.a = h; + g.Fc(h); + } + c && (x(v(e, Bw)) === x((bd(), P_)) ? n.c = n.b : x(v(e, Bw)) === x(I_) ? n.c = n.d : n.c = n.a); + } else + g = new Bu(A(T(NZn, 1), IXn, 36, 0, [e])); + return x(v(e, Bw)) !== x((bd(), Dw)) && (Dn(), g.jd(new hwn())), g; + } + function Lm(n, e, t) { + var i, r, c, s, f, h, l; + if (l = n.c, !e && (e = Gdn), n.c = e, n.Db & 4 && !(n.Db & 1) && (h = new Mi(n, 1, 2, l, n.c), t ? t.nj(h) : t = h), l != e) { + if (D(n.Cb, 292)) + n.Db >> 16 == -10 ? t = u(n.Cb, 292).Yk(e, t) : n.Db >> 16 == -15 && (!e && (e = (On(), Yf)), !l && (l = (On(), Yf)), n.Cb.Yh() && (h = new ml(n.Cb, 1, 13, l, e, h1(Zu(u(n.Cb, 62)), n), !1), t ? t.nj(h) : t = h)); + else if (D(n.Cb, 90)) + n.Db >> 16 == -23 && (D(e, 90) || (e = (On(), Is)), D(l, 90) || (l = (On(), Is)), n.Cb.Yh() && (h = new ml(n.Cb, 1, 10, l, e, h1(Pc(u(n.Cb, 29)), n), !1), t ? t.nj(h) : t = h)); + else if (D(n.Cb, 457)) + for (f = u(n.Cb, 850), s = (!f.b && (f.b = new NE(new aD())), f.b), c = (i = new fd(new Ga(s.a).a), new $E(i)); c.a.b; ) + r = u(N0(c.a).ld(), 89), t = Lm(r, MA(r, f), t); + } + return t; + } + function QOe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g; + for (s = on(un(z(n, (cn(), Kw)))), g = u(z(n, Hw), 21), h = !1, l = !1, d = new ne((!n.c && (n.c = new q(Wu, n, 9, 9)), n.c)); d.e != d.i.gc() && (!h || !l); ) { + for (c = u(ue(d), 123), f = 0, r = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [(!c.d && (c.d = new Nn(Wt, c, 8, 5)), c.d), (!c.e && (c.e = new Nn(Wt, c, 7, 4)), c.e)]))); pe(r) && (i = u(fe(r), 74), a = s && H0(i) && on(un(z(i, $d))), t = bGn((!i.b && (i.b = new Nn(he, i, 4, 7)), i.b), c) ? n == At(Gr(u(L((!i.c && (i.c = new Nn(he, i, 5, 8)), i.c), 0), 84))) : n == At(Gr(u(L((!i.b && (i.b = new Nn(he, i, 4, 7)), i.b), 0), 84))), !((a || t) && (++f, f > 1))); ) + ; + (f > 0 || g.Hc((Uu(), Fl)) && (!c.n && (c.n = new q(Sr, c, 1, 7)), c.n).i > 0) && (h = !0), f > 1 && (l = !0); + } + h && e.Fc((mr(), cs)), l && e.Fc((mr(), F8)); + } + function FGn(n) { + var e, t, i, r, c, s, f, h, l, a, d, g; + if (g = u(z(n, (He(), qd)), 21), g.dc()) + return null; + if (f = 0, s = 0, g.Hc((go(), rE))) { + for (a = u(z(n, v9), 101), i = 2, t = 2, r = 2, c = 2, e = At(n) ? u(z(At(n), Hd), 88) : u(z(n, Hd), 88), l = new ne((!n.c && (n.c = new q(Wu, n, 9, 9)), n.c)); l.e != l.i.gc(); ) + if (h = u(ue(l), 123), d = u(z(h, H2), 64), d == (en(), sc) && (d = Ren(h, e), ht(h, H2, d)), a == (Li(), Uc)) + switch (d.g) { + case 1: + i = y.Math.max(i, h.i + h.g); + break; + case 2: + t = y.Math.max(t, h.j + h.f); + break; + case 3: + r = y.Math.max(r, h.i + h.g); + break; + case 4: + c = y.Math.max(c, h.j + h.f); + } + else + switch (d.g) { + case 1: + i += h.g + 2; + break; + case 2: + t += h.f + 2; + break; + case 3: + r += h.g + 2; + break; + case 4: + c += h.f + 2; + } + f = y.Math.max(i, r), s = y.Math.max(t, c); + } + return z0(n, f, s, !0, !0); + } + function VF(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + for (I = u(Wr(fT(ut(new Tn(null, new In(e.d, 16)), new A7n(t)), new S7n(t)), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), d = et, a = Wi, h = new C(e.b.j); h.a < h.c.c.length; ) + f = u(E(h), 12), f.j == t && (d = y.Math.min(d, f.p), a = y.Math.max(a, f.p)); + if (d == et) + for (s = 0; s < I.gc(); s++) + YJ(u(I.Xb(s), 105), t, s); + else + for (O = K(ye, _e, 28, r.length, 15, 1), Xbe(O, O.length), S = I.Kc(); S.Ob(); ) { + for (j = u(S.Pb(), 105), c = u(ee(n.b, j), 183), l = 0, k = d; k <= a; k++) + c[k] && (l = y.Math.max(l, i[k])); + if (j.i) { + for (p = j.i.c, N = new ei(), g = 0; g < r.length; g++) + r[p][g] && hi(N, Y(O[g])); + for (; sf(N, Y(l)); ) + ++l; + } + for (YJ(j, t, l), m = d; m <= a; m++) + c[m] && (i[m] = l + 1); + j.i && (O[j.i.c] = l); + } + } + function YOe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k; + for (r = null, i = new C(e.a); i.a < i.c.c.length; ) + t = u(E(i), 10), HF(t) ? c = (f = l0(i7(new Xa(), t), n.f), h = l0(i7(new Xa(), t), n.f), l = new XW(t, !0, f, h), a = t.o.b, d = (uw(), (t.q ? t.q : (Dn(), Dn(), Vh))._b((cn(), bb)) ? g = u(v(t, bb), 203) : g = u(v(Hi(t), z8), 203), g), p = 1e4, d == S2 && (p = 1), m = qs(Ls(Ds(Os(Ns(new hs(), p), gi(y.Math.ceil(a))), f), h)), d == P2 && hi(n.d, m), mUn(n, Qo(uc(t, (en(), Wn))), l), mUn(n, uc(t, Zn), l), l) : c = (k = l0(i7(new Xa(), t), n.f), Ut(ut(new Tn(null, new In(t.j, 16)), new c3n()), new UCn(n, k)), new XW(t, !1, k, k)), n.i[t.p] = c, r && (s = r.c.d.a + jg(n.n, r.c, t) + t.d.d, r.b || (s += r.c.o.b), qs(Ls(Ds(Ns(Os(new hs(), gi(y.Math.ceil(s))), 0), r.d), c.a))), r = c; + } + function ZOe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p; + for (c = new tHn(e), d = SAe(n, e, c), p = y.Math.max($(R(v(e, (cn(), v1)))), 1), a = new C(d.a); a.a < a.c.c.length; ) + l = u(E(a), 42), h = tRn(u(l.a, 8), u(l.b, 8), p), Bt = !0, Bt = Bt & b0(t, new V(h.c, h.d)), Bt = Bt & b0(t, d0(new V(h.c, h.d), h.b, 0)), Bt = Bt & b0(t, d0(new V(h.c, h.d), 0, h.a)), Bt & b0(t, d0(new V(h.c, h.d), h.b, h.a)); + switch (g = c.d, f = tRn(u(d.b.a, 8), u(d.b.b, 8), p), g == (en(), Wn) || g == Zn ? (i.c[g.g] = y.Math.min(i.c[g.g], f.d), i.b[g.g] = y.Math.max(i.b[g.g], f.d + f.a)) : (i.c[g.g] = y.Math.min(i.c[g.g], f.c), i.b[g.g] = y.Math.max(i.b[g.g], f.c + f.b)), r = ai, s = c.c.i.d, g.g) { + case 4: + r = s.c; + break; + case 2: + r = s.b; + break; + case 1: + r = s.a; + break; + case 3: + r = s.d; + } + return i.a[g.g] = y.Math.max(i.a[g.g], r), c; + } + function nDe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn; + f = u(ee(e.c, n), 468), I = e.a.c, h = e.a.c + e.a.b, kn = f.f, Fn = f.a, s = kn < Fn, k = new V(I, kn), O = new V(h, Fn), r = (I + h) / 2, j = new V(r, kn), N = new V(r, Fn), c = YMe(n, kn, Fn), X = Pf(e.B), tn = new V(r, c), yn = Pf(e.D), t = u6e(A(T(Ci, 1), J, 8, 0, [X, tn, yn])), p = !1, S = e.B.i, S && S.c && f.d && (l = s && S.p < S.c.a.c.length - 1 || !s && S.p > 0, l ? l && (g = S.p, s ? ++g : --g, d = u(sn(S.c.a, g), 10), i = oFn(d), p = !(mF(i, X, t[0]) || OPn(i, X, t[0]))) : p = !0), m = !1, _ = e.D.i, _ && _.c && f.e && (a = s && _.p > 0 || !s && _.p < _.c.a.c.length - 1, a ? (g = _.p, s ? --g : ++g, d = u(sn(_.c.a, g), 10), i = oFn(d), m = !(mF(i, t[0], yn) || OPn(i, t[0], yn))) : m = !0), p && m && Fe(n.a, tn), p || r5(n.a, A(T(Ci, 1), J, 8, 0, [k, j])), m || r5(n.a, A(T(Ci, 1), J, 8, 0, [N, O])); + } + function eDe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j, S, I; + for (p = e.c.length, g = 0, d = new C(n.b); d.a < d.c.c.length; ) + if (a = u(E(d), 30), S = a.a, S.c.length != 0) { + for (j = new C(S), l = 0, I = null, r = u(E(j), 10), c = null; r; ) { + if (c = u(sn(e, r.p), 261), c.c >= 0) { + for (h = null, f = new Fi(a.a, l + 1); f.b < f.d.gc() && (s = (oe(f.b < f.d.gc()), u(f.d.Xb(f.c = f.b++), 10)), h = u(sn(e, s.p), 261), !(h.d == c.d && h.c < c.c)); ) + h = null; + h && (I && (Go(i, r.p, Y(u(sn(i, r.p), 17).a - 1)), u(sn(t, I.p), 15).Mc(c)), c = vye(c, r, p++), Kn(e.c, c), nn(t, new Z()), I ? (u(sn(t, I.p), 15).Fc(c), nn(i, Y(1))) : nn(i, Y(0))); + } + m = null, j.a < j.c.c.length && (m = u(E(j), 10), k = u(sn(e, m.p), 261), u(sn(t, r.p), 15).Fc(k), Go(i, m.p, Y(u(sn(i, m.p), 17).a + 1))), c.d = g, c.c = l++, I = r, r = m; + } + ++g; + } + } + function tDe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p; + if (c = u(v(n, (W(), st)), 74), !!c) { + for (i = n.a, r = new ir(t), tt(r, Ake(n)), J4(n.d.i, n.c.i) ? (g = n.c, d = cc(A(T(Ci, 1), J, 8, 0, [g.n, g.a])), vi(d, t)) : d = Pf(n.c), xt(i, d, i.a, i.a.a), p = Pf(n.d), v(n, pH) != null && tt(p, u(v(n, pH), 8)), xt(i, p, i.c.b, i.c), ew(i, r), s = Xg(c, !0, !0), mT(s, u(L((!c.b && (c.b = new Nn(he, c, 4, 7)), c.b), 0), 84)), vT(s, u(L((!c.c && (c.c = new Nn(he, c, 5, 8)), c.c), 0), 84)), dy(i, s), a = new C(n.b); a.a < a.c.c.length; ) + l = u(E(a), 72), f = u(v(l, st), 135), O0(f, l.o.a), I0(f, l.o.b), Ro(f, l.n.a + r.a, l.n.b + r.b), ht(f, (Hp(), x_), un(v(l, x_))); + h = u(v(n, (cn(), xr)), 75), h ? (ew(h, r), ht(c, xr, h)) : ht(c, xr, null), e == (El(), F3) ? ht(c, $l, F3) : ht(c, $l, null); + } + } + function BGn(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn; + if (t.c.length != 0) { + for (m = new Z(), p = new C(t); p.a < p.c.c.length; ) + g = u(E(p), 27), nn(m, new V(g.i, g.j)); + for (i.dh(e, "Before removing overlaps"); snn(n, t); ) + EA(n, t, !1); + if (i.dh(e, "After removing overlaps"), f = 0, h = 0, r = null, t.c.length != 0 && (r = (Ln(0, t.c.length), u(t.c[0], 27)), f = r.i - (Ln(0, m.c.length), u(m.c[0], 8)).a, h = r.j - (Ln(0, m.c.length), u(m.c[0], 8)).b), s = y.Math.sqrt(f * f + h * h), d = V6e(t), c = 1, d.a.gc() != 0) { + for (a = d.a.ec().Kc(); a.Ob(); ) + l = u(a.Pb(), 27), k = n.f, j = k.i + k.g / 2, S = k.j + k.f / 2, I = l.i + l.g / 2, O = l.j + l.f / 2, N = I - j, _ = O - S, X = y.Math.sqrt(N * N + _ * _), tn = N / X, yn = _ / X, eu(l, l.i + tn * s), tu(l, l.j + yn * s); + i.dh(e, "Child movement " + c), ++c; + } + n.a && n.a.Gg(new Ru(d)), BGn(n, e, new Ru(d), i); + } + } + function WF(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + return h = n, a = vi(new V(e.a, e.b), n), l = t, d = vi(new V(i.a, i.b), t), g = h.a, j = h.b, m = l.a, I = l.b, p = a.a, S = a.b, k = d.a, O = d.b, r = k * S - p * O, Mf(), Ks(yh), y.Math.abs(0 - r) <= yh || r == 0 || isNaN(0) && isNaN(r) ? !1 : (s = 1 / r * ((g - m) * S - (j - I) * p), f = 1 / r * -(-(g - m) * O + (j - I) * k), c = (Ks(yh), (y.Math.abs(0 - s) <= yh || s == 0 || isNaN(0) && isNaN(s) ? 0 : 0 < s ? -1 : 0 > s ? 1 : f0(isNaN(0), isNaN(s))) < 0 && (Ks(yh), (y.Math.abs(s - 1) <= yh || s == 1 || isNaN(s) && isNaN(1) ? 0 : s < 1 ? -1 : s > 1 ? 1 : f0(isNaN(s), isNaN(1))) < 0) && (Ks(yh), (y.Math.abs(0 - f) <= yh || f == 0 || isNaN(0) && isNaN(f) ? 0 : 0 < f ? -1 : 0 > f ? 1 : f0(isNaN(0), isNaN(f))) < 0) && (Ks(yh), (y.Math.abs(f - 1) <= yh || f == 1 || isNaN(f) && isNaN(1) ? 0 : f < 1 ? -1 : f > 1 ? 1 : f0(isNaN(f), isNaN(1))) < 0)), c); + } + function iDe(n) { + var e, t, i, r; + if (t = n.D != null ? n.D : n.B, e = th(t, bu(91)), e != -1) { + i = (Bi(0, e, t.length), t.substr(0, e)), r = new ql(); + do + r.a += "["; + while ((e = b4(t, 91, ++e)) != -1); + An(i, i3) ? r.a += "Z" : An(i, m8) ? r.a += "B" : An(i, GS) ? r.a += "C" : An(i, v8) ? r.a += "D" : An(i, k8) ? r.a += "F" : An(i, y8) ? r.a += "I" : An(i, j8) ? r.a += "J" : An(i, E8) ? r.a += "S" : (r.a += "L", r.a += "" + i, r.a += ";"); + try { + return null; + } catch (c) { + if (c = It(c), !D(c, 63)) + throw M(c); + } + } else if (th(t, bu(46)) == -1) { + if (An(t, i3)) + return oo; + if (An(t, m8)) + return xu; + if (An(t, GS)) + return fs; + if (An(t, v8)) + return Oi; + if (An(t, k8)) + return ug; + if (An(t, y8)) + return ye; + if (An(t, j8)) + return Fa; + if (An(t, E8)) + return V2; + } + return null; + } + function rDe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn; + for (n.e = e, f = rCe(e), X = new Z(), i = new C(f); i.a < i.c.c.length; ) { + for (t = u(E(i), 15), tn = new Z(), Kn(X.c, tn), h = new ei(), m = t.Kc(); m.Ob(); ) { + for (p = u(m.Pb(), 27), c = fy(n, p, !0, 0, 0), Kn(tn.c, c), k = p.i, j = p.j, g = (!p.n && (p.n = new q(Sr, p, 1, 7)), p.n), d = new ne(g); d.e != d.i.gc(); ) + l = u(ue(d), 135), r = fy(n, l, !1, k, j), Kn(tn.c, r); + for (_ = (!p.c && (p.c = new q(Wu, p, 9, 9)), p.c), I = new ne(_); I.e != I.i.gc(); ) + for (S = u(ue(I), 123), s = fy(n, S, !1, k, j), Kn(tn.c, s), O = S.i + k, N = S.j + j, g = (!S.n && (S.n = new q(Sr, S, 1, 7)), S.n), a = new ne(g); a.e != a.i.gc(); ) + l = u(ue(a), 135), r = fy(n, l, !1, O, N), Kn(tn.c, r); + Ri(h, SM(Eo(A(T(Oo, 1), Bn, 20, 0, [Al(p), cy(p)])))); + } + GMe(n, h, tn); + } + return n.f = new Vjn(X), Ur(n.f, e), n.f; + } + function cDe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X; + for (d = new xW(new PG(n)); d.c != d.d.a.d; ) + for (a = WNn(d), f = u(a.d, 58), e = u(a.e, 58), s = f.Dh(), k = 0, N = (s.i == null && dh(s), s.i).length; k < N; ++k) + if (l = (c = (s.i == null && dh(s), s.i), k >= 0 && k < c.length ? c[k] : null), l.rk() && !l.sk()) { + if (D(l, 102)) + h = u(l, 19), !(h.Bb & kc) && (X = br(h), !(X && X.Bb & kc)) && qPe(n, h, f, e); + else if (dr(), u(l, 69).xk() && (t = (_ = l, u(_ ? u(e, 54).gi(_) : null, 160)), t)) + for (p = u(f.Mh(l), 160), i = t.gc(), j = 0, m = p.gc(); j < m; ++j) + if (g = p.Tl(j), D(g, 102)) { + if (O = p.Ul(j), r = Lf(n, O), r == null && O != null) { + if (I = u(g, 19), !n.b || I.Bb & kc || br(I)) + continue; + r = O; + } + if (!t.Ol(g, r)) { + for (S = 0; S < i; ++S) + if (t.Tl(S) == g && x(t.Ul(S)) === x(r)) { + t.Ti(t.gc() - 1, S), --i; + break; + } + } + } else + t.Ol(p.Tl(j), p.Ul(j)); + } + } + function uDe(n, e, t) { + var i; + if (t.Ug("StretchWidth layering", 1), e.a.c.length == 0) { + t.Vg(); + return; + } + for (n.c = e, n.t = 0, n.u = 0, n.i = St, n.g = ai, n.d = $(R(v(e, (cn(), Ws)))), T9e(n), LCe(n), DCe(n), Pke(n), I8e(n), n.i = y.Math.max(1, n.i), n.g = y.Math.max(1, n.g), n.d = n.d / n.i, n.f = n.g / n.i, n.s = _9e(n), i = new Nc(n.c), nn(n.c.b, i), n.r = A0(n.p), n.n = DM(n.k, n.k.length); n.r.c.length != 0; ) + n.o = W6e(n), !n.o || hFn(n) && n.b.a.gc() != 0 ? (tye(n, i), i = new Nc(n.c), nn(n.c.b, i), Ri(n.a, n.b), n.b.a.$b(), n.t = n.u, n.u = 0) : hFn(n) ? (n.c.b.c.length = 0, i = new Nc(n.c), nn(n.c.b, i), n.t = 0, n.u = 0, n.b.a.$b(), n.a.a.$b(), ++n.f, n.r = A0(n.p), n.n = DM(n.k, n.k.length)) : (xi(n.o, i), au(n.r, n.o), hi(n.b, n.o), n.t = n.t - n.k[n.o.p] * n.d + n.j[n.o.p], n.u += n.e[n.o.p] * n.d); + e.a.c.length = 0, Yk(e.b), t.Vg(); + } + function oDe(n) { + var e, t, i, r, c, s, f, h, l, a, d; + for (n.j = K(ye, _e, 28, n.g, 15, 1), n.o = new Z(), Ut(rc(new Tn(null, new In(n.e.b, 16)), new a3n()), new tkn(n)), n.a = K(oo, zh, 28, n.b, 16, 1), Lk(new Tn(null, new In(n.e.b, 16)), new rkn(n)), i = (d = new Z(), Ut(ut(rc(new Tn(null, new In(n.e.b, 16)), new b3n()), new ikn(n)), new GCn(n, d)), d), h = new C(i); h.a < h.c.c.length; ) + if (f = u(E(h), 515), !(f.c.length <= 1)) { + if (f.c.length == 2) { + GEe(f), HF((Ln(0, f.c.length), u(f.c[0], 18)).d.i) || nn(n.o, f); + continue; + } + if (!(oye(f) || Jje(f, new d3n()))) + for (l = new C(f), r = null; l.a < l.c.c.length; ) + e = u(E(l), 18), t = n.c[e.p], !r || l.a >= l.c.c.length ? a = MJ((Vn(), Xt), Ti) : a = MJ((Vn(), Ti), Ti), a *= 2, c = t.a.g, t.a.g = y.Math.max(c, c + (a - c)), s = t.b.g, t.b.g = y.Math.max(s, s + (a - s)), r = e; + } + } + function sDe(n) { + var e, t, i, r; + for (Ut(ut(new Tn(null, new In(n.a.b, 16)), new X2n()), new V2n()), qke(n), Ut(ut(new Tn(null, new In(n.a.b, 16)), new W2n()), new J2n()), n.c == (El(), F3) && (Ut(ut(rc(new Tn(null, new In(new Ua(n.f), 1)), new Q2n()), new Y2n()), new k7n(n)), Ut(ut(_r(rc(rc(new Tn(null, new In(n.d.b, 16)), new Z2n()), new npn()), new epn()), new tpn()), new j7n(n))), r = new V(St, St), e = new V(ai, ai), i = new C(n.a.b); i.a < i.c.c.length; ) + t = u(E(i), 60), r.a = y.Math.min(r.a, t.d.c), r.b = y.Math.min(r.b, t.d.d), e.a = y.Math.max(e.a, t.d.c + t.d.b), e.b = y.Math.max(e.b, t.d.d + t.d.a); + tt(ff(n.d.c), HC(new V(r.a, r.b))), tt(ff(n.d.f), vi(new V(e.a, e.b), r)), tTe(n, r, e), Ku(n.f), Ku(n.b), Ku(n.g), Ku(n.e), n.a.a.c.length = 0, n.a.b.c.length = 0, n.a = null, n.d = null; + } + function UA(n, e) { + var t; + if (n.e) + throw M(new Ir((ll(u_), FB + u_.k + BB))); + if (!dle(n.a, e)) + throw M(new ec(tXn + e + iXn)); + if (e == n.d) + return n; + switch (t = n.d, n.d = e, t.g) { + case 0: + switch (e.g) { + case 2: + K0(n); + break; + case 1: + Z1(n), K0(n); + break; + case 4: + Hg(n), K0(n); + break; + case 3: + Hg(n), Z1(n), K0(n); + } + break; + case 2: + switch (e.g) { + case 1: + Z1(n), CF(n); + break; + case 4: + Hg(n), K0(n); + break; + case 3: + Hg(n), Z1(n), K0(n); + } + break; + case 1: + switch (e.g) { + case 2: + Z1(n), CF(n); + break; + case 4: + Z1(n), Hg(n), K0(n); + break; + case 3: + Z1(n), Hg(n), Z1(n), K0(n); + } + break; + case 4: + switch (e.g) { + case 2: + Hg(n), K0(n); + break; + case 1: + Hg(n), Z1(n), K0(n); + break; + case 3: + Z1(n), CF(n); + } + break; + case 3: + switch (e.g) { + case 2: + Z1(n), Hg(n), K0(n); + break; + case 1: + Z1(n), Hg(n), Z1(n), K0(n); + break; + case 4: + Z1(n), CF(n); + } + } + return n; + } + function Yg(n, e) { + var t; + if (n.d) + throw M(new Ir((ll(S_), FB + S_.k + BB))); + if (!ale(n.a, e)) + throw M(new ec(tXn + e + iXn)); + if (e == n.c) + return n; + switch (t = n.c, n.c = e, t.g) { + case 0: + switch (e.g) { + case 2: + ad(n); + break; + case 1: + na(n), ad(n); + break; + case 4: + qg(n), ad(n); + break; + case 3: + qg(n), na(n), ad(n); + } + break; + case 2: + switch (e.g) { + case 1: + na(n), MF(n); + break; + case 4: + qg(n), ad(n); + break; + case 3: + qg(n), na(n), ad(n); + } + break; + case 1: + switch (e.g) { + case 2: + na(n), MF(n); + break; + case 4: + na(n), qg(n), ad(n); + break; + case 3: + na(n), qg(n), na(n), ad(n); + } + break; + case 4: + switch (e.g) { + case 2: + qg(n), ad(n); + break; + case 1: + qg(n), na(n), ad(n); + break; + case 3: + na(n), MF(n); + } + break; + case 3: + switch (e.g) { + case 2: + na(n), qg(n), ad(n); + break; + case 1: + na(n), qg(n), na(n), ad(n); + break; + case 4: + na(n), MF(n); + } + } + return n; + } + function GA(n, e) { + var t, i, r, c, s, f, h, l; + if (D(n.Eh(), 167) ? (GA(u(n.Eh(), 167), e), e.a += " > ") : e.a += "Root ", t = n.Dh().zb, An(t.substr(0, 3), "Elk") ? Re(e, (zn(3, t.length + 1), t.substr(3))) : e.a += "" + t, r = n.jh(), r) { + Re((e.a += " ", e), r); + return; + } + if (D(n, 366) && (l = u(n, 135).a, l)) { + Re((e.a += " ", e), l); + return; + } + for (s = new ne(n.kh()); s.e != s.i.gc(); ) + if (c = u(ue(s), 135), l = c.a, l) { + Re((e.a += " ", e), l); + return; + } + if (D(n, 326) && (i = u(n, 74), !i.b && (i.b = new Nn(he, i, 4, 7)), i.b.i != 0 && (!i.c && (i.c = new Nn(he, i, 5, 8)), i.c.i != 0))) { + for (e.a += " (", f = new kp((!i.b && (i.b = new Nn(he, i, 4, 7)), i.b)); f.e != f.i.gc(); ) + f.e > 0 && (e.a += cr), GA(u(ue(f), 167), e); + for (e.a += iR, h = new kp((!i.c && (i.c = new Nn(he, i, 5, 8)), i.c)); h.e != h.i.gc(); ) + h.e > 0 && (e.a += cr), GA(u(ue(h), 167), e); + e.a += ")"; + } + } + function fDe(n, e, t) { + var i, r, c, s, f, h, l, a; + for (h = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); h.e != h.i.gc(); ) + for (f = u(ue(h), 27), r = new ie(ce(Al(f).a.Kc(), new En())); pe(r); ) { + if (i = u(fe(r), 74), !i.b && (i.b = new Nn(he, i, 4, 7)), !(i.b.i <= 1 && (!i.c && (i.c = new Nn(he, i, 5, 8)), i.c.i <= 1))) + throw M(new hp("Graph must not contain hyperedges.")); + if (!N5(i) && f != Gr(u(L((!i.c && (i.c = new Nn(he, i, 5, 8)), i.c), 0), 84))) + for (l = new RAn(), Ur(l, i), U(l, (Q1(), y3), i), Jse(l, u(Kr(gr(t.f, f)), 153)), Zse(l, u(ee(t, Gr(u(L((!i.c && (i.c = new Nn(he, i, 5, 8)), i.c), 0), 84))), 153)), nn(e.c, l), s = new ne((!i.n && (i.n = new q(Sr, i, 1, 7)), i.n)); s.e != s.i.gc(); ) + c = u(ue(s), 135), a = new _Dn(l, c.a), Ur(a, c), U(a, y3, c), a.e.a = y.Math.max(c.g, 1), a.e.b = y.Math.max(c.f, 1), Uen(a), nn(e.d, a); + } + } + function hDe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + switch (t.Ug("Node promotion heuristic", 1), n.i = e, n.r = u(v(e, (cn(), ja)), 243), n.r != (ps(), mb) && n.r != Gw ? FDe(n) : fAe(n), a = u(v(n.i, chn), 17).a, c = new Bgn(), n.r.g) { + case 2: + case 1: + Om(n, c); + break; + case 3: + for (n.r = SI, Om(n, c), h = 0, f = new C(n.b); f.a < f.c.c.length; ) + s = u(E(f), 17), h = y.Math.max(h, s.a); + h > n.k && (n.r = Sj, Om(n, c)); + break; + case 4: + for (n.r = SI, Om(n, c), l = 0, r = new C(n.c); r.a < r.c.c.length; ) + i = R(E(r)), l = y.Math.max(l, (Jn(i), i)); + l > n.n && (n.r = Pj, Om(n, c)); + break; + case 6: + g = gi(y.Math.ceil(n.g.length * a / 100)), Om(n, new s7n(g)); + break; + case 5: + d = gi(y.Math.ceil(n.e * a / 100)), Om(n, new f7n(d)); + break; + case 8: + yzn(n, !0); + break; + case 9: + yzn(n, !1); + break; + default: + Om(n, c); + } + n.r != mb && n.r != Gw ? LTe(n, e) : ZAe(n, e), t.Vg(); + } + function lDe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + for (d = n.b, a = new Fi(d, 0), Kb(a, new Nc(n)), I = !1, s = 1; a.b < a.d.gc(); ) { + for (l = (oe(a.b < a.d.gc()), u(a.d.Xb(a.c = a.b++), 30)), k = (Ln(s, d.c.length), u(d.c[s], 30)), j = A0(l.a), S = j.c.length, m = new C(j); m.a < m.c.c.length; ) + g = u(E(m), 10), xi(g, k); + if (I) { + for (p = Qo(j).Kc(); p.Ob(); ) + for (g = u(p.Pb(), 10), c = new C(A0(Ei(g))); c.a < c.c.c.length; ) + r = u(E(c), 18), G0(r, !0), U(n, (W(), kj), (_n(), !0)), i = gGn(n, r, S), t = u(v(g, sb), 313), O = u(sn(i, i.c.length - 1), 18), t.k = O.c.i, t.n = O, t.b = r.d.i, t.c = r; + I = !1; + } else + j.c.length != 0 && (e = (Ln(0, j.c.length), u(j.c[0], 10)), e.k == (Vn(), Uf) && (I = !0, s = -1)); + ++s; + } + for (f = new Fi(n.b, 0); f.b < f.d.gc(); ) + h = (oe(f.b < f.d.gc()), u(f.d.Xb(f.c = f.b++), 30)), h.a.c.length == 0 && bo(f); + } + function aDe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + for (d = new itn(n), a2e(d, !(e == (ui(), us) || e == Vf)), a = d.a, g = new up(), r = (wf(), A(T(Pw, 1), G, 237, 0, [bc, Jc, wc])), s = 0, h = r.length; s < h; ++s) + t = r[s], l = jL(a, bc, t), l && (g.d = y.Math.max(g.d, l.jf())); + for (i = A(T(Pw, 1), G, 237, 0, [bc, Jc, wc]), c = 0, f = i.length; c < f; ++c) + t = i[c], l = jL(a, wc, t), l && (g.a = y.Math.max(g.a, l.jf())); + for (k = A(T(Pw, 1), G, 237, 0, [bc, Jc, wc]), S = 0, O = k.length; S < O; ++S) + p = k[S], l = jL(a, p, bc), l && (g.b = y.Math.max(g.b, l.kf())); + for (m = A(T(Pw, 1), G, 237, 0, [bc, Jc, wc]), j = 0, I = m.length; j < I; ++j) + p = m[j], l = jL(a, p, wc), l && (g.c = y.Math.max(g.c, l.kf())); + return g.d > 0 && (g.d += a.n.d, g.d += a.d), g.a > 0 && (g.a += a.n.a, g.a += a.d), g.b > 0 && (g.b += a.n.b, g.b += a.d), g.c > 0 && (g.c += a.n.c, g.c += a.d), g; + } + function RGn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m; + for (g = t.d, d = t.c, c = new V(t.f.a + t.d.b + t.d.c, t.f.b + t.d.d + t.d.a), s = c.b, l = new C(n.a); l.a < l.c.c.length; ) + if (f = u(E(l), 10), f.k == (Vn(), ni)) { + switch (i = u(v(f, (W(), gc)), 64), r = u(v(f, tfn), 8), a = f.n, i.g) { + case 2: + a.a = t.f.a + g.c - d.a; + break; + case 4: + a.a = -d.a - g.b; + } + switch (m = 0, i.g) { + case 2: + case 4: + e == (Li(), el) ? (p = $(R(v(f, hb))), a.b = c.b * p - u(v(f, (cn(), wb)), 8).b, m = a.b + r.b, IT(f, !1, !0)) : e == Uc && (a.b = $(R(v(f, hb))) - u(v(f, (cn(), wb)), 8).b, m = a.b + r.b, IT(f, !1, !0)); + } + s = y.Math.max(s, m); + } + for (t.f.b += s - c.b, h = new C(n.a); h.a < h.c.c.length; ) + if (f = u(E(h), 10), f.k == (Vn(), ni)) + switch (i = u(v(f, (W(), gc)), 64), a = f.n, i.g) { + case 1: + a.b = -d.b - g.d; + break; + case 3: + a.b = t.f.b + g.a - d.b; + } + } + function dDe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S; + if (a = u(u(ot(n.r, e), 21), 87), a.gc() <= 2 || e == (en(), Zn) || e == (en(), Wn)) { + czn(n, e); + return; + } + for (k = n.u.Hc((Uu(), B3)), t = e == (en(), Xn) ? ($0(), rj) : ($0(), ij), S = e == Xn ? (du(), Xs) : (du(), kf), i = kz(xV(t), n.s), j = e == Xn ? St : ai, l = a.Kc(); l.Ob(); ) + f = u(l.Pb(), 117), !(!f.c || f.c.d.c.length <= 0) && (m = f.b.Mf(), p = f.e, d = f.c, g = d.i, g.b = (c = d.n, d.e.a + c.b + c.c), g.a = (s = d.n, d.e.b + s.d + s.a), k ? (g.c = p.a - (r = d.n, d.e.a + r.b + r.c) - n.s, k = !1) : g.c = p.a + m.a + n.s, G7(S, xtn), d.f = S, df(d, (Hu(), zs)), nn(i.d, new ZL(g, AY(i, g))), j = e == Xn ? y.Math.min(j, p.b) : y.Math.max(j, p.b + f.b.Mf().b)); + for (j += e == Xn ? -n.t : n.t, zY((i.e = j, i)), h = a.Kc(); h.Ob(); ) + f = u(h.Pb(), 117), !(!f.c || f.c.d.c.length <= 0) && (g = f.c.i, g.c -= f.e.a, g.d -= f.e.b); + } + function KGn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + for (r = new Z(), k = new C(e.a); k.a < k.c.c.length; ) + if (m = u(E(k), 10), p = m.e, p && (i = KGn(n, p, m), li(r, i), AOe(n, p, m), u(v(p, (W(), qc)), 21).Hc((mr(), cs)))) + for (I = u(v(m, (cn(), Ht)), 101), g = u(v(m, Hw), 181).Hc((Uu(), Fl)), S = new C(m.j); S.a < S.c.c.length; ) + for (j = u(E(S), 12), c = u(ee(n.b, j), 10), c || (c = my(j, I, j.j, -(j.e.c.length - j.g.c.length), null, new Ni(), j.o, u(v(p, Do), 88), p), U(c, st, j), Xe(n.b, j, c), nn(p.a, c)), s = u(sn(c.j, 0), 12), a = new C(j.f); a.a < a.c.c.length; ) + l = u(E(a), 72), f = new Yjn(), f.o.a = l.o.a, f.o.b = l.o.b, nn(s.f, f), g || (O = j.j, d = 0, K6(u(v(m, Hw), 21)) && (d = Lnn(l.n, l.o, j.o, 0, O)), I == (Li(), Jf) || (en(), su).Hc(O) ? f.o.a = d : f.o.b = d); + return h = new Z(), TOe(n, e, t, r, h), t && GIe(n, e, t, h), h; + } + function ttn(n, e, t) { + var i, r, c, s, f, h, l, a, d; + if (!n.c[e.c.p][e.p].e) { + for (n.c[e.c.p][e.p].e = !0, n.c[e.c.p][e.p].b = 0, n.c[e.c.p][e.p].d = 0, n.c[e.c.p][e.p].a = null, a = new C(e.j); a.a < a.c.c.length; ) + for (l = u(E(a), 12), d = t ? new n4(l) : new ip(l), h = d.Kc(); h.Ob(); ) + f = u(h.Pb(), 12), s = f.i, s.c == e.c ? s != e && (ttn(n, s, t), n.c[e.c.p][e.p].b += n.c[s.c.p][s.p].b, n.c[e.c.p][e.p].d += n.c[s.c.p][s.p].d) : (n.c[e.c.p][e.p].d += n.g[f.p], ++n.c[e.c.p][e.p].b); + if (c = u(v(e, (W(), Ysn)), 15), c) + for (r = c.Kc(); r.Ob(); ) + i = u(r.Pb(), 10), e.c == i.c && (ttn(n, i, t), n.c[e.c.p][e.p].b += n.c[i.c.p][i.p].b, n.c[e.c.p][e.p].d += n.c[i.c.p][i.p].d); + n.c[e.c.p][e.p].b > 0 && (n.c[e.c.p][e.p].d += eo(n.i, 24) * Iy * 0.07000000029802322 - 0.03500000014901161, n.c[e.c.p][e.p].a = n.c[e.c.p][e.p].d / n.c[e.c.p][e.p].b); + } + } + function bDe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j; + for (m = new C(n); m.a < m.c.c.length; ) { + for (p = u(E(m), 10), Xl(p.n), Xl(p.o), UJ(p.f), Zqn(p), LAe(p), j = new C(p.j); j.a < j.c.c.length; ) { + for (k = u(E(j), 12), Xl(k.n), Xl(k.a), Xl(k.o), pi(k, DRn(k.j)), c = u(v(k, (cn(), k1)), 17), c && U(k, k1, Y(-c.a)), r = new C(k.g); r.a < r.c.c.length; ) { + for (i = u(E(r), 18), t = ge(i.a, 0); t.b != t.d.c; ) + e = u(be(t), 8), Xl(e); + if (h = u(v(i, xr), 75), h) + for (f = ge(h, 0); f.b != f.d.c; ) + s = u(be(f), 8), Xl(s); + for (d = new C(i.b); d.a < d.c.c.length; ) + l = u(E(d), 72), Xl(l.n), Xl(l.o); + } + for (g = new C(k.f); g.a < g.c.c.length; ) + l = u(E(g), 72), Xl(l.n), Xl(l.o); + } + for (p.k == (Vn(), ni) && (U(p, (W(), gc), DRn(u(v(p, gc), 64))), HTe(p)), a = new C(p.b); a.a < a.c.c.length; ) + l = u(E(a), 72), Zqn(l), Xl(l.o), Xl(l.n); + } + } + function wDe(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te; + Fn = ee(n.e, i), Fn == null && (Fn = new sp(), p = u(Fn, 190), I = e + "_s", O = I + r, g = new Ub(O), bf(p, jh, g)), kn = u(Fn, 190), Ip(t, kn), te = new sp(), ed(te, "x", i.j), ed(te, "y", i.k), bf(kn, mWn, te), tn = new sp(), ed(tn, "x", i.b), ed(tn, "y", i.c), bf(kn, "endPoint", tn), d = Z9((!i.a && (i.a = new ii(xo, i, 5)), i.a)), m = !d, m && (X = new Ha(), c = new eyn(X), qi((!i.a && (i.a = new ii(xo, i, 5)), i.a), c), bf(kn, RS, X)), h = Sx(i), N = !!h, N && rnn(n.a, kn, Icn, oF(n, Sx(i))), S = Px(i), _ = !!S, _ && rnn(n.a, kn, Pcn, oF(n, Px(i))), l = (!i.e && (i.e = new Nn(Mt, i, 10, 9)), i.e).i == 0, k = !l, k && (yn = new Ha(), s = new AMn(n, yn), qi((!i.e && (i.e = new Nn(Mt, i, 10, 9)), i.e), s), bf(kn, Dcn, yn)), a = (!i.g && (i.g = new Nn(Mt, i, 9, 10)), i.g).i == 0, j = !a, j && (Rn = new Ha(), f = new SMn(n, Rn), qi((!i.g && (i.g = new Nn(Mt, i, 9, 10)), i.g), f), bf(kn, Ocn, Rn)); + } + function gDe(n) { + Rb(); + var e, t, i, r, c, s, f; + for (i = n.f.n, s = DW(n.r).a.nc(); s.Ob(); ) { + if (c = u(s.Pb(), 117), r = 0, c.b.pf((He(), uo)) && (r = $(R(c.b.of(uo))), r < 0)) + switch (c.b.ag().g) { + case 1: + i.d = y.Math.max(i.d, -r); + break; + case 3: + i.a = y.Math.max(i.a, -r); + break; + case 2: + i.c = y.Math.max(i.c, -r); + break; + case 4: + i.b = y.Math.max(i.b, -r); + } + if (K6(n.u)) + switch (e = yve(c.b, r), f = !u(n.e.of(Ta), 181).Hc((to(), cE)), t = !1, c.b.ag().g) { + case 1: + t = e > i.d, i.d = y.Math.max(i.d, e), f && t && (i.d = y.Math.max(i.d, i.a), i.a = i.d + r); + break; + case 3: + t = e > i.a, i.a = y.Math.max(i.a, e), f && t && (i.a = y.Math.max(i.a, i.d), i.d = i.a + r); + break; + case 2: + t = e > i.c, i.c = y.Math.max(i.c, e), f && t && (i.c = y.Math.max(i.b, i.c), i.b = i.c + r); + break; + case 4: + t = e > i.b, i.b = y.Math.max(i.b, e), f && t && (i.b = y.Math.max(i.b, i.c), i.c = i.b + r); + } + } + } + function _Gn(n, e) { + var t, i, r, c, s, f, h, l, a; + return l = "", e.length == 0 ? n.ne(ktn, uB, -1, -1) : (a = hw(e), An(a.substr(0, 3), "at ") && (a = (zn(3, a.length + 1), a.substr(3))), a = a.replace(/\[.*?\]/g, ""), s = a.indexOf("("), s == -1 ? (s = a.indexOf("@"), s == -1 ? (l = a, a = "") : (l = hw((zn(s + 1, a.length + 1), a.substr(s + 1))), a = hw((Bi(0, s, a.length), a.substr(0, s))))) : (t = a.indexOf(")", s), l = (Bi(s + 1, t, a.length), a.substr(s + 1, t - (s + 1))), a = hw((Bi(0, s, a.length), a.substr(0, s)))), s = th(a, bu(46)), s != -1 && (a = (zn(s + 1, a.length + 1), a.substr(s + 1))), (a.length == 0 || An(a, "Anonymous function")) && (a = uB), f = FC(l, bu(58)), r = AV(l, bu(58), f - 1), h = -1, i = -1, c = ktn, f != -1 && r != -1 && (c = (Bi(0, r, l.length), l.substr(0, r)), h = rAn((Bi(r + 1, f, l.length), l.substr(r + 1, f - (r + 1)))), i = rAn((zn(f + 1, l.length + 1), l.substr(f + 1)))), n.ne(c, a, h, i)); + } + function pDe(n) { + var e, t, i, r, c, s, f, h, l, a, d; + for (l = new C(n); l.a < l.c.c.length; ) { + switch (h = u(E(l), 10), s = u(v(h, (cn(), ou)), 171), c = null, s.g) { + case 1: + case 2: + c = (ld(), m2); + break; + case 3: + case 4: + c = (ld(), pv); + } + if (c) + U(h, (W(), rI), (ld(), m2)), c == pv ? IA(h, s, (pr(), zu)) : c == m2 && IA(h, s, (pr(), Qc)); + else if (mg(u(v(h, Ht), 101)) && h.j.c.length != 0) { + for (e = !0, d = new C(h.j); d.a < d.c.c.length; ) { + if (a = u(E(d), 12), !(a.j == (en(), Zn) && a.e.c.length - a.g.c.length > 0 || a.j == Wn && a.e.c.length - a.g.c.length < 0)) { + e = !1; + break; + } + for (r = new C(a.g); r.a < r.c.c.length; ) + if (t = u(E(r), 18), f = u(v(t.d.i, ou), 171), f == (Yo(), H8) || f == Fw) { + e = !1; + break; + } + for (i = new C(a.e); i.a < i.c.c.length; ) + if (t = u(E(i), 18), f = u(v(t.c.i, ou), 171), f == (Yo(), _8) || f == ya) { + e = !1; + break; + } + } + e && IA(h, s, (pr(), Q8)); + } + } + } + function mDe(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X; + for (X = 0, p = 0, d = new C(e.e); d.a < d.c.c.length; ) { + for (a = u(E(d), 10), g = 0, f = 0, h = t ? u(v(a, OI), 17).a : Wi, S = i ? u(v(a, DI), 17).a : Wi, l = y.Math.max(h, S), O = new C(a.j); O.a < O.c.c.length; ) { + if (I = u(E(O), 12), N = a.n.b + I.n.b + I.a.b, i) + for (s = new C(I.g); s.a < s.c.c.length; ) + c = u(E(s), 18), k = c.d, m = k.i, e != n.a[m.p] && (j = y.Math.max(u(v(m, OI), 17).a, u(v(m, DI), 17).a), _ = u(v(c, (cn(), I3)), 17).a, _ >= l && _ >= j && (g += m.n.b + k.n.b + k.a.b - N, ++f)); + if (t) + for (s = new C(I.e); s.a < s.c.c.length; ) + c = u(E(s), 18), k = c.c, m = k.i, e != n.a[m.p] && (j = y.Math.max(u(v(m, OI), 17).a, u(v(m, DI), 17).a), _ = u(v(c, (cn(), I3)), 17).a, _ >= l && _ >= j && (g += m.n.b + k.n.b + k.a.b - N, ++f)); + } + f > 0 && (X += g / f, ++p); + } + p > 0 ? (e.a = r * X / p, e.g = p) : (e.a = 0, e.g = 0); + } + function vDe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn; + for (c = n.f.b, g = c.a, a = c.b, m = n.e.g, p = n.e.f, kg(n.e, c.a, c.b), X = g / m, tn = a / p, l = new ne(jM(n.e)); l.e != l.i.gc(); ) + h = u(ue(l), 135), eu(h, h.i * X), tu(h, h.j * tn); + for (I = new ne(mN(n.e)); I.e != I.i.gc(); ) + S = u(ue(I), 123), N = S.i, _ = S.j, N > 0 && eu(S, N * X), _ > 0 && tu(S, _ * tn); + for (f5(n.b, new Ubn()), e = new Z(), f = new fd(new Ga(n.c).a); f.b; ) + s = N0(f), i = u(s.ld(), 74), t = u(s.md(), 407).a, r = Xg(i, !1, !1), d = NKn(Rh(i), Qk(r), t), dy(d, r), O = XKn(i), O && qr(e, O, 0) == -1 && (Kn(e.c, O), jIn(O, (oe(d.b != 0), u(d.a.a.c, 8)), t)); + for (j = new fd(new Ga(n.d).a); j.b; ) + k = N0(j), i = u(k.ld(), 74), t = u(k.md(), 407).a, r = Xg(i, !1, !1), d = NKn(ra(i), Sk(Qk(r)), t), d = Sk(d), dy(d, r), O = VKn(i), O && qr(e, O, 0) == -1 && (Kn(e.c, O), jIn(O, (oe(d.b != 0), u(d.c.b.c, 8)), t)); + } + function HGn(n, e, t, i) { + var r, c, s, f, h; + return f = new itn(e), hTe(f, i), r = !0, n && n.pf((He(), Hd)) && (c = u(n.of((He(), Hd)), 88), r = c == (ui(), Wf) || c == Fr || c == Xr), _qn(f, !1), nu(f.e.Rf(), new NV(f, !1, r)), ON(f, f.f, (wf(), bc), (en(), Xn)), ON(f, f.f, wc, ae), ON(f, f.g, bc, Wn), ON(f, f.g, wc, Zn), gRn(f, Xn), gRn(f, ae), vIn(f, Zn), vIn(f, Wn), Rb(), s = f.A.Hc((go(), Yw)) && f.B.Hc((to(), uE)) ? NBn(f) : null, s && vhe(f.a, s), gDe(f), p7e(f), m7e(f), qOe(f), pSe(f), U7e(f), kx(f, Xn), kx(f, ae), VAe(f), pIe(f), t && (Y5e(f), G7e(f), kx(f, Zn), kx(f, Wn), h = f.B.Hc((to(), P9)), L_n(f, h, Xn), L_n(f, h, ae), N_n(f, h, Zn), N_n(f, h, Wn), Ut(new Tn(null, new In(new ol(f.i), 0)), new dbn()), Ut(ut(new Tn(null, DW(f.r).a.oc()), new bbn()), new wbn()), cye(f), f.e.Pf(f.o), Ut(new Tn(null, DW(f.r).a.oc()), new gbn())), f.o; + } + function kDe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k; + for (l = St, i = new C(n.a.b); i.a < i.c.c.length; ) + e = u(E(i), 86), l = y.Math.min(l, e.d.f.g.c + e.e.a); + for (p = new Ct(), s = new C(n.a.a); s.a < s.c.c.length; ) + c = u(E(s), 194), c.i = l, c.e == 0 && xt(p, c, p.c.b, p.c); + for (; p.b != 0; ) { + for (c = u(p.b == 0 ? null : (oe(p.b != 0), Xo(p, p.a.a)), 194), r = c.f.g.c, g = c.a.a.ec().Kc(); g.Ob(); ) + a = u(g.Pb(), 86), k = c.i + a.e.a, a.d.g || a.g.c < k ? a.o = k : a.o = a.g.c; + for (r -= c.f.o, c.b += r, n.c == (ui(), Xr) || n.c == Vf ? c.c += r : c.c -= r, d = c.a.a.ec().Kc(); d.Ob(); ) + for (a = u(d.Pb(), 86), h = a.f.Kc(); h.Ob(); ) + f = u(h.Pb(), 86), hl(n.c) ? m = n.f.yf(a, f) : m = n.f.zf(a, f), f.d.i = y.Math.max(f.d.i, a.o + a.g.b + m - f.e.a), f.k || (f.d.i = y.Math.max(f.d.i, f.g.c - f.e.a)), --f.d.e, f.d.e == 0 && Fe(p, f.d); + } + for (t = new C(n.a.b); t.a < t.c.c.length; ) + e = u(E(t), 86), e.g.c = e.o; + } + function yDe(n) { + var e, t, i, r, c, s, f, h; + switch (f = n.b, e = n.a, u(v(n, (aA(), Uun)), 435).g) { + case 0: + Zt(f, new Te(new Abn())); + break; + case 1: + default: + Zt(f, new Te(new Sbn())); + } + switch (u(v(n, Hun), 436).g) { + case 1: + Zt(f, new KU()), Zt(f, new Pbn()), Zt(f, new ybn()); + break; + case 0: + default: + Zt(f, new KU()), Zt(f, new Mbn()); + } + switch (u(v(n, zun), 257).g) { + case 0: + h = new Obn(); + break; + case 1: + h = new $O(); + break; + case 2: + h = new vE(); + break; + case 3: + h = new NO(); + break; + case 5: + h = new Z3(new vE()); + break; + case 4: + h = new Z3(new $O()); + break; + case 7: + h = new Gz(new Z3(new $O()), new Z3(new vE())); + break; + case 8: + h = new Gz(new Z3(new NO()), new Z3(new vE())); + break; + case 6: + default: + h = new Z3(new NO()); + } + for (s = new C(f); s.a < s.c.c.length; ) { + for (c = u(E(s), 176), i = 0, r = 0, t = new wi(Y(i), Y(r)); tPe(e, c, i, r); ) + t = u(h.Ve(t, c), 42), i = u(t.a, 17).a, r = u(t.b, 17).a; + YAe(e, c, i, r); + } + } + function qGn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X; + for (t.Ug(pVn, 1), g = (pt(), iq), n.a == (b5(), BI) && (g = mln), a = 0, Dn(), e.jd(new tD(g)), c = e.gc(), f = e.fd(e.gc()), l = !0; l && f.Sb(); ) + I = u(f.Ub(), 40), u(v(I, g), 17).a == 0 ? --c : l = !1; + if (X = e.kd(0, c), s = new $L(X), X = e.kd(c, e.gc()), h = new $L(X), s.b == 0) + for (k = ge(h, 0); k.b != k.d.c; ) + m = u(be(k), 40), U(m, o9, Y(a++)); + else + for (d = s.b, _ = ge(s, 0); _.b != _.d.c; ) { + for (N = u(be(_), 40), U(N, o9, Y(a++)), i = F$(N), qGn(n, i, t.eh(1 / d | 0)), od(i, qW(new tD(o9))), p = new Ct(), O = ge(i, 0); O.b != O.d.c; ) + for (I = u(be(O), 40), S = ge(N.d, 0); S.b != S.d.c; ) + j = u(be(S), 65), j.c == I && xt(p, j, p.c.b, p.c); + for (vo(N.d), Ri(N.d, p), f = ge(h, h.b), r = N.d.b, l = !0; 0 < r && l && f.Sb(); ) + I = u(f.Ub(), 40), u(v(I, g), 17).a == 0 ? (U(I, o9, Y(a++)), --r, f.Qb()) : l = !1; + } + t.Vg(); + } + function jDe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p; + for (d = $(R(z(n, (oa(), jq)))), on(un(z(n, Zln))) && (a = u(z(n, (Tg(), D2)), 27), c = u(L(UW(u(L((!a.e && (a.e = new Nn(Wt, a, 7, 4)), a.e), (!a.e && (a.e = new Nn(Wt, a, 7, 4)), a.e).i - 1), 74)), 0), 27), i = u(L(UW(u(L((!a.e && (a.e = new Nn(Wt, a, 7, 4)), a.e), 0), 74)), 0), 27), s = new V(c.i + c.g / 2, c.j + c.f / 2), r = new V(i.i + i.g / 2, i.j + i.f / 2), t = d, t <= 0 && (t += Md), g = y.Math.acos((s.a * r.a + s.b * r.b) / (y.Math.sqrt(s.a * s.a + s.b * s.b) * y.Math.sqrt(r.a * r.a + r.b * r.b))), g <= 0 && (g += Md), e = y.Math.atan2(s.b, s.a), e <= 0 && (e += Md), d = Trn - (e - t + g / 2)), h = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); h.e != h.i.gc(); ) + f = u(ue(h), 27), l = new V(f.i + f.g / 2, f.j + f.f / 2), p = l.a * y.Math.cos(d) - l.b * y.Math.sin(d), l.b = l.a * y.Math.sin(d) + l.b * y.Math.cos(d), l.a = p, Ro(f, l.a - f.g / 2, l.b - f.f / 2); + } + function EDe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + for (e.Ug("Inverted port preprocessing", 1), a = n.b, l = new Fi(a, 0), t = null, O = new Z(); l.b < l.d.gc(); ) { + for (I = t, t = (oe(l.b < l.d.gc()), u(l.d.Xb(l.c = l.b++), 30)), p = new C(O); p.a < p.c.c.length; ) + d = u(E(p), 10), xi(d, I); + for (O.c.length = 0, m = new C(t.a); m.a < m.c.c.length; ) + if (d = u(E(m), 10), d.k == (Vn(), Xt) && mg(u(v(d, (cn(), Ht)), 101))) { + for (S = ven(d, (pr(), zu), (en(), Zn)).Kc(); S.Ob(); ) + for (k = u(S.Pb(), 12), h = k.e, f = u(xf(h, K(O_, rR, 18, h.c.length, 0, 1)), 483), r = f, c = 0, s = r.length; c < s; ++c) + i = r[c], zPe(n, k, i, O); + for (j = ven(d, Qc, Wn).Kc(); j.Ob(); ) + for (k = u(j.Pb(), 12), h = k.g, f = u(xf(h, K(O_, rR, 18, h.c.length, 0, 1)), 483), r = f, c = 0, s = r.length; c < s; ++c) + i = r[c], GPe(n, k, i, O); + } + } + for (g = new C(O); g.a < g.c.c.length; ) + d = u(E(g), 10), xi(d, t); + e.Vg(); + } + function JF(n, e, t, i, r, c, s) { + var f, h, l, a, d, g, p, m, k, j, S, I, O; + for (g = null, i == (T0(), Ca) ? g = e : i == I2 && (g = t), k = g.a.ec().Kc(); k.Ob(); ) { + for (m = u(k.Pb(), 12), j = cc(A(T(Ci, 1), J, 8, 0, [m.i.n, m.n, m.a])).b, O = new ei(), f = new ei(), l = new Of(m.b); tc(l.a) || tc(l.b); ) + if (h = u(tc(l.a) ? E(l.a) : E(l.b), 18), on(un(v(h, (W(), Gf)))) == r && qr(c, h, 0) != -1) { + if (h.d == m ? S = h.c : S = h.d, I = cc(A(T(Ci, 1), J, 8, 0, [S.i.n, S.n, S.a])).b, y.Math.abs(I - j) < 0.2) + continue; + I < j ? e.a._b(S) ? hi(O, new wi(Ca, h)) : hi(O, new wi(I2, h)) : e.a._b(S) ? hi(f, new wi(Ca, h)) : hi(f, new wi(I2, h)); + } + if (O.a.gc() > 1) + for (p = new Ven(m, O, i), qi(O, new YCn(n, p)), Kn(s.c, p), d = O.a.ec().Kc(); d.Ob(); ) + a = u(d.Pb(), 42), au(c, a.b); + if (f.a.gc() > 1) + for (p = new Ven(m, f, i), qi(f, new ZCn(n, p)), Kn(s.c, p), d = f.a.ec().Kc(); d.Ob(); ) + a = u(d.Pb(), 42), au(c, a.b); + } + } + function CDe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S; + if (k = n.n, j = n.o, g = n.d, d = $(R(cw(n, (cn(), PH)))), e) { + for (a = d * (e.gc() - 1), p = 0, h = e.Kc(); h.Ob(); ) + s = u(h.Pb(), 10), a += s.o.a, p = y.Math.max(p, s.o.b); + for (S = k.a - (a - j.a) / 2, c = k.b - g.d + p, i = j.a / (e.gc() + 1), r = i, f = e.Kc(); f.Ob(); ) + s = u(f.Pb(), 10), s.n.a = S, s.n.b = c - s.o.b, S += s.o.a + d, l = QHn(s), l.n.a = s.o.a / 2 - l.a.a, l.n.b = s.o.b, m = u(v(s, (W(), tI)), 12), m.e.c.length + m.g.c.length == 1 && (m.n.a = r - m.a.a, m.n.b = 0, ic(m, n)), r += i; + } + if (t) { + for (a = d * (t.gc() - 1), p = 0, h = t.Kc(); h.Ob(); ) + s = u(h.Pb(), 10), a += s.o.a, p = y.Math.max(p, s.o.b); + for (S = k.a - (a - j.a) / 2, c = k.b + j.b + g.a - p, i = j.a / (t.gc() + 1), r = i, f = t.Kc(); f.Ob(); ) + s = u(f.Pb(), 10), s.n.a = S, s.n.b = c, S += s.o.a + d, l = QHn(s), l.n.a = s.o.a / 2 - l.a.a, l.n.b = 0, m = u(v(s, (W(), tI)), 12), m.e.c.length + m.g.c.length == 1 && (m.n.a = r - m.a.a, m.n.b = j.b, ic(m, n)), r += i; + } + } + function MDe(n, e) { + var t, i, r, c, s, f; + if (u(v(e, (W(), qc)), 21).Hc((mr(), cs))) { + for (f = new C(e.a); f.a < f.c.c.length; ) + c = u(E(f), 10), c.k == (Vn(), Xt) && (r = u(v(c, (cn(), pI)), 140), n.c = y.Math.min(n.c, c.n.a - r.b), n.a = y.Math.max(n.a, c.n.a + c.o.a + r.c), n.d = y.Math.min(n.d, c.n.b - r.d), n.b = y.Math.max(n.b, c.n.b + c.o.b + r.a)); + for (s = new C(e.a); s.a < s.c.c.length; ) + if (c = u(E(s), 10), c.k != (Vn(), Xt)) + switch (c.k.g) { + case 2: + if (i = u(v(c, (cn(), ou)), 171), i == (Yo(), ya)) { + c.n.a = n.c - 10, tKn(c, new mgn()).Jb(new Z9n(c)); + break; + } + if (i == Fw) { + c.n.a = n.a + 10, tKn(c, new vgn()).Jb(new n7n(c)); + break; + } + if (t = u(v(c, Dd), 311), t == (vl(), k2)) { + dGn(c).Jb(new e7n(c)), c.n.b = n.d - 10; + break; + } + if (t == E3) { + dGn(c).Jb(new t7n(c)), c.n.b = n.b + 10; + break; + } + break; + default: + throw M(new Gn("The node type " + c.k + " is not supported by the " + kNe)); + } + } + } + function TDe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j; + for (h = new V(i.i + i.g / 2, i.j + i.f / 2), p = hGn(i), m = u(z(e, (cn(), Ht)), 101), j = u(z(i, Cv), 64), IMn(aRn(i), _w) || (i.i == 0 && i.j == 0 ? k = 0 : k = Kye(i, j), ht(i, _w, k)), l = new V(e.g, e.f), r = my(i, m, j, p, l, h, new V(i.g, i.f), u(v(t, Do), 88), t), U(r, (W(), st), i), c = u(sn(r.j, 0), 12), nfe(c, USe(i)), U(r, Hw, (Uu(), jn(Ia))), d = u(z(e, Hw), 181).Hc(Fl), f = new ne((!i.n && (i.n = new q(Sr, i, 1, 7)), i.n)); f.e != f.i.gc(); ) + if (s = u(ue(f), 135), !on(un(z(s, Bd))) && s.a && (g = ex(s), nn(c.f, g), !d)) + switch (a = 0, K6(u(z(e, Hw), 21)) && (a = Lnn(new V(s.i, s.j), new V(s.g, s.f), new V(i.g, i.f), 0, j)), j.g) { + case 2: + case 4: + g.o.a = a; + break; + case 1: + case 3: + g.o.b = a; + } + U(r, Tv, R(z(At(e), Tv))), U(r, Av, R(z(At(e), Av))), U(r, Uw, R(z(At(e), Uw))), nn(t.a, r), Xe(n.a, i, r); + } + function ADe(n, e, t, i, r, c) { + var s, f, h, l, a, d; + for (l = new Ic(), Ur(l, e), pi(l, u(z(e, (cn(), Cv)), 64)), U(l, (W(), st), e), ic(l, t), d = l.o, d.a = e.g, d.b = e.f, a = l.n, a.a = e.i, a.b = e.j, Xe(n.a, e, l), s = Og(_r(rc(new Tn(null, (!e.e && (e.e = new Nn(Wt, e, 7, 4)), new In(e.e, 16))), new Ewn()), new ywn()), new U9n(e)), s || (s = Og(_r(rc(new Tn(null, (!e.d && (e.d = new Nn(Wt, e, 8, 5)), new In(e.d, 16))), new Cwn()), new jwn()), new G9n(e))), s || (s = Og(new Tn(null, (!e.e && (e.e = new Nn(Wt, e, 7, 4)), new In(e.e, 16))), new Mwn())), U(l, yj, (_n(), !!s)), XIe(l, c, r, u(z(e, wb), 8)), h = new ne((!e.n && (e.n = new q(Sr, e, 1, 7)), e.n)); h.e != h.i.gc(); ) + f = u(ue(h), 135), !on(un(z(f, Bd))) && f.a && nn(l.f, ex(f)); + switch (r.g) { + case 2: + case 1: + (l.j == (en(), Xn) || l.j == ae) && i.Fc((mr(), v2)); + break; + case 4: + case 3: + (l.j == (en(), Zn) || l.j == Wn) && i.Fc((mr(), v2)); + } + return l; + } + function SDe(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn; + for (O = 0, m = 0, p = 0, g = 1, I = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); I.e != I.i.gc(); ) + j = u(ue(I), 27), g += wl(new ie(ce(Al(j).a.Kc(), new En()))), yn = j.g, m = y.Math.max(m, yn), d = j.f, p = y.Math.max(p, d), O += yn * d; + for (k = (!n.a && (n.a = new q(Ye, n, 10, 11)), n.a).i, s = O + 2 * i * i * g * k, c = y.Math.sqrt(s), h = y.Math.max(c * t, m), f = y.Math.max(c / t, p), S = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); S.e != S.i.gc(); ) + j = u(ue(S), 27), kn = r.b + (eo(e, 26) * J5 + eo(e, 27) * Q5) * (h - j.g), Fn = r.b + (eo(e, 26) * J5 + eo(e, 27) * Q5) * (f - j.f), eu(j, kn), tu(j, Fn); + for (tn = h + (r.b + r.c), X = f + (r.d + r.a), _ = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); _.e != _.i.gc(); ) + for (N = u(ue(_), 27), a = new ie(ce(Al(N).a.Kc(), new En())); pe(a); ) + l = u(fe(a), 74), N5(l) || LLe(l, e, tn, X); + tn += r.b + r.c, X += r.d + r.a, z0(n, tn, X, !1, !0); + } + function itn(n) { + var e; + if (this.r = oge(new lbn(), new abn()), this.b = new y5(u(Se(hr), 297)), this.p = new y5(u(Se(hr), 297)), this.i = new y5(u(Se(vYn), 297)), this.e = n, this.o = new ir(n.Mf()), this.D = n.Yf() || on(un(n.of((He(), Xj)))), this.A = u(n.of((He(), qd)), 21), this.B = u(n.of(Ta), 21), this.q = u(n.of(v9), 101), this.u = u(n.of(Jw), 21), !Wye(this.u)) + throw M(new Hl("Invalid port label placement: " + this.u)); + if (this.v = on(un(n.of(_an))), this.j = u(n.of(K2), 21), !CMe(this.j)) + throw M(new Hl("Invalid node label placement: " + this.j)); + this.n = u(S5(n, San), 107), this.k = $(R(S5(n, iO))), this.d = $(R(S5(n, zan))), this.w = $(R(S5(n, Qan))), this.s = $(R(S5(n, Xan))), this.t = $(R(S5(n, Van))), this.C = u(S5(n, Wan), 140), this.c = 2 * this.d, e = !this.B.Hc((to(), cE)), this.f = new E5(0, e, 0), this.g = new E5(1, e, 0), mD(this.f, (wf(), Jc), this.g); + } + function PDe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S; + for (e.Ug("Comment pre-processing", 1), t = 0, h = new C(n.a); h.a < h.c.c.length; ) + if (f = u(E(h), 10), on(un(v(f, (cn(), q8))))) { + for (++t, r = 0, i = null, l = null, m = new C(f.j); m.a < m.c.c.length; ) + g = u(E(m), 12), r += g.e.c.length + g.g.c.length, g.e.c.length == 1 && (i = u(sn(g.e, 0), 18), l = i.c), g.g.c.length == 1 && (i = u(sn(g.g, 0), 18), l = i.d); + if (r == 1 && l.e.c.length + l.g.c.length == 1 && !on(un(v(l.i, q8)))) + oLe(f, i, l, l.i), q6(h); + else { + for (S = new Z(), p = new C(f.j); p.a < p.c.c.length; ) { + for (g = u(E(p), 12), d = new C(g.g); d.a < d.c.c.length; ) + a = u(E(d), 18), a.d.g.c.length == 0 || Kn(S.c, a); + for (s = new C(g.e); s.a < s.c.c.length; ) + c = u(E(s), 18), c.c.e.c.length == 0 || Kn(S.c, c); + } + for (j = new C(S); j.a < j.c.c.length; ) + k = u(E(j), 18), G0(k, !0); + } + } + e._g() && e.bh("Found " + t + " comment boxes"), e.Vg(); + } + function rtn(n, e) { + xSn(); + var t, i, r, c, s, f, h; + if (this.a = new NX(this), this.b = n, this.c = e, this.f = sN(Dr((Ou(), zi), e)), this.f.dc()) + if ((f = xZ(zi, n)) == e) + for (this.e = !0, this.d = new Z(), this.f = new avn(), this.f.Fc(Pd), u(qA(hk(zi, jo(n)), ""), 29) == n && this.f.Fc(R6(zi, jo(n))), r = SF(zi, n).Kc(); r.Ob(); ) + switch (i = u(r.Pb(), 179), j0(Dr(zi, i))) { + case 4: { + this.d.Fc(i); + break; + } + case 5: { + this.f.Gc(sN(Dr(zi, i))); + break; + } + } + else if (dr(), u(e, 69).xk()) + for (this.e = !0, this.f = null, this.d = new Z(), s = 0, h = (n.i == null && dh(n), n.i).length; s < h; ++s) + for (i = (t = (n.i == null && dh(n), n.i), s >= 0 && s < t.length ? t[s] : null), c = $p(Dr(zi, i)); c; c = $p(Dr(zi, c))) + c == e && this.d.Fc(i); + else + j0(Dr(zi, e)) == 1 && f ? (this.f = null, this.d = (n3(), tse)) : (this.f = null, this.e = !0, this.d = (Dn(), new nD(e))); + else + this.e = j0(Dr(zi, e)) == 5, this.f.Fb(AU) && (this.f = AU); + } + function UGn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m; + for (t = 0, i = o7e(n, e), g = n.s, p = n.t, l = u(u(ot(n.r, e), 21), 87).Kc(); l.Ob(); ) + if (h = u(l.Pb(), 117), !(!h.c || h.c.d.c.length <= 0)) { + switch (m = h.b.Mf(), f = h.b.pf((He(), uo)) ? $(R(h.b.of(uo))) : 0, a = h.c, d = a.i, d.b = (s = a.n, a.e.a + s.b + s.c), d.a = (c = a.n, a.e.b + c.d + c.a), e.g) { + case 1: + d.c = h.a ? (m.a - d.b) / 2 : m.a + g, d.d = m.b + f + i, df(a, (Hu(), pa)), ch(a, (du(), kf)); + break; + case 3: + d.c = h.a ? (m.a - d.b) / 2 : m.a + g, d.d = -f - i - d.a, df(a, (Hu(), pa)), ch(a, (du(), Xs)); + break; + case 2: + d.c = -f - i - d.b, h.a ? (r = n.v ? d.a : u(sn(a.d, 0), 187).Mf().b, d.d = (m.b - r) / 2) : d.d = m.b + p, df(a, (Hu(), zs)), ch(a, (du(), ma)); + break; + case 4: + d.c = m.a + f + i, h.a ? (r = n.v ? d.a : u(sn(a.d, 0), 187).Mf().b, d.d = (m.b - r) / 2) : d.d = m.b + p, df(a, (Hu(), Ch)), ch(a, (du(), ma)); + } + (e == (en(), Xn) || e == ae) && (t = y.Math.max(t, d.a)); + } + t > 0 && (u(Mr(n.b, e), 127).a.b = t); + } + function IDe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k; + if (g = $(R(v(n, (cn(), Tv)))), p = $(R(v(n, Av))), d = $(R(v(n, Uw))), f = n.o, c = u(sn(n.j, 0), 12), s = c.n, k = Xje(c, d), !!k) { + if (e.Hc((Uu(), Fl))) + switch (u(v(n, (W(), gc)), 64).g) { + case 1: + k.c = (f.a - k.b) / 2 - s.a, k.d = p; + break; + case 3: + k.c = (f.a - k.b) / 2 - s.a, k.d = -p - k.a; + break; + case 2: + t && c.e.c.length == 0 && c.g.c.length == 0 ? (a = i ? k.a : u(sn(c.f, 0), 72).o.b, k.d = (f.b - a) / 2 - s.b) : k.d = f.b + p - s.b, k.c = -g - k.b; + break; + case 4: + t && c.e.c.length == 0 && c.g.c.length == 0 ? (a = i ? k.a : u(sn(c.f, 0), 72).o.b, k.d = (f.b - a) / 2 - s.b) : k.d = f.b + p - s.b, k.c = g; + } + else if (e.Hc(Ia)) + switch (u(v(n, (W(), gc)), 64).g) { + case 1: + case 3: + k.c = s.a + g; + break; + case 2: + case 4: + t && !c.c ? (a = i ? k.a : u(sn(c.f, 0), 72).o.b, k.d = (f.b - a) / 2 - s.b) : k.d = s.b + p; + } + for (r = k.d, l = new C(c.f); l.a < l.c.c.length; ) + h = u(E(l), 72), m = h.n, m.a = k.c, m.b = r, r += h.o.b + d; + } + } + function ODe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn; + for (X = new Z(), m = new C(n.b); m.a < m.c.c.length; ) + for (p = u(E(m), 30), S = new C(p.a); S.a < S.c.c.length; ) + if (k = u(E(S), 10), k.k == (Vn(), ni) && kt(k, (W(), cI))) { + for (I = null, N = null, O = null, kn = new C(k.j); kn.a < kn.c.c.length; ) + switch (yn = u(E(kn), 12), yn.j.g) { + case 4: + I = yn; + break; + case 2: + N = yn; + break; + default: + O = yn; + } + for (_ = u(sn(O.g, 0), 18), a = new GE(_.a), l = new ir(O.n), tt(l, k.n), d = ge(a, 0), _7(d, l), tn = Sk(_.a), g = new ir(O.n), tt(g, k.n), xt(tn, g, tn.c.b, tn.c), Fn = u(v(k, cI), 10), Rn = u(sn(Fn.j, 0), 12), h = u(xf(I.e, K(O_, rR, 18, 0, 0, 1)), 483), i = h, c = 0, f = i.length; c < f; ++c) + e = i[c], Di(e, Rn), J$(e.a, e.a.b, a); + for (h = fh(N.g), t = h, r = 0, s = t.length; r < s; ++r) + e = t[r], Yi(e, Rn), J$(e.a, 0, tn); + Yi(_, null), Di(_, null), Kn(X.c, k); + } + for (j = new C(X); j.a < j.c.c.length; ) + k = u(E(j), 10), xi(k, null); + } + function DDe() { + Ge(bE, new _6n()), Ge(AO, new Y6n()), Ge(wE, new f5n()), Ge(u0n, new k5n()), Ge(fn, new C5n()), Ge(T(xu, 1), new M5n()), Ge(zt, new T5n()), Ge(p3, new A5n()), Ge(fn, new I6n()), Ge(fn, new O6n()), Ge(fn, new D6n()), Ge(fi, new L6n()), Ge(fn, new N6n()), Ge(rs, new $6n()), Ge(rs, new x6n()), Ge(fn, new F6n()), Ge(ov, new R6n()), Ge(fn, new K6n()), Ge(fn, new H6n()), Ge(fn, new q6n()), Ge(fn, new U6n()), Ge(fn, new G6n()), Ge(T(xu, 1), new z6n()), Ge(fn, new X6n()), Ge(fn, new V6n()), Ge(rs, new W6n()), Ge(rs, new J6n()), Ge(fn, new Q6n()), Ge(Gi, new Z6n()), Ge(fn, new n5n()), Ge(ib, new e5n()), Ge(fn, new t5n()), Ge(fn, new i5n()), Ge(fn, new r5n()), Ge(fn, new c5n()), Ge(rs, new u5n()), Ge(rs, new o5n()), Ge(fn, new s5n()), Ge(fn, new h5n()), Ge(fn, new l5n()), Ge(fn, new a5n()), Ge(fn, new d5n()), Ge(fn, new b5n()), Ge(rb, new w5n()), Ge(fn, new g5n()), Ge(fn, new p5n()), Ge(fn, new m5n()), Ge(rb, new v5n()), Ge(ib, new y5n()), Ge(fn, new j5n()), Ge(Gi, new E5n()); + } + function GGn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m; + switch (a = new Cu(), n.a.g) { + case 3: + g = u(v(e.e, (W(), Ld)), 15), p = u(v(e.j, Ld), 15), m = u(v(e.f, Ld), 15), t = u(v(e.e, C2), 15), i = u(v(e.j, C2), 15), r = u(v(e.f, C2), 15), s = new Z(), li(s, g), p.Jc(new _pn()), li(s, Qo(p)), li(s, m), c = new Z(), li(c, t), li(c, Qo(i)), li(c, r), U(e.f, Ld, s), U(e.f, C2, c), U(e.f, ffn, e.f), U(e.e, Ld, null), U(e.e, C2, null), U(e.j, Ld, null), U(e.j, C2, null); + break; + case 1: + Ri(a, e.e.a), Fe(a, e.i.n), Ri(a, Qo(e.j.a)), Fe(a, e.a.n), Ri(a, e.f.a); + break; + default: + Ri(a, e.e.a), Ri(a, Qo(e.j.a)), Ri(a, e.f.a); + } + vo(e.f.a), Ri(e.f.a, a), Yi(e.f, e.e.c), f = u(v(e.e, (cn(), xr)), 75), l = u(v(e.j, xr), 75), h = u(v(e.f, xr), 75), (f || l || h) && (d = new Cu(), IW(d, h), IW(d, l), IW(d, f), U(e.f, xr, d)), Yi(e.j, null), Di(e.j, null), Yi(e.e, null), Di(e.e, null), xi(e.a, null), xi(e.i, null), e.g && GGn(n, e.g); + } + function zGn() { + zGn = F; + var n, e, t; + for (new Nk(1, 0), new Nk(10, 0), new Nk(0, 0), mQn = K(QK, J, 247, 11, 0, 1), Od = K(fs, wh, 28, 100, 15, 1), Eun = A(T(Oi, 1), Ar, 28, 15, [1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125, 6103515625, 30517578125, 152587890625, 762939453125, 3814697265625, 19073486328125, 95367431640625, 476837158203125, 2384185791015625]), Cun = K(ye, _e, 28, Eun.length, 15, 1), Mun = A(T(Oi, 1), Ar, 28, 15, [1, 10, 100, b1, 1e4, PB, 1e6, 1e7, 1e8, QA, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16]), Tun = K(ye, _e, 28, Mun.length, 15, 1), Aun = K(QK, J, 247, 11, 0, 1), n = 0; n < Aun.length; n++) + mQn[n] = new Nk(n, 0), Aun[n] = new Nk(0, n), Od[n] = 48; + for (; n < Od.length; n++) + Od[n] = 48; + for (t = 0; t < Cun.length; t++) + Cun[t] = Inn(Eun[t]); + for (e = 0; e < Tun.length; e++) + Tun[e] = Inn(Mun[e]); + Tm(); + } + function LDe() { + function n() { + this.obj = this.createObject(); + } + return n.prototype.createObject = function(e) { + return /* @__PURE__ */ Object.create(null); + }, n.prototype.get = function(e) { + return this.obj[e]; + }, n.prototype.set = function(e, t) { + this.obj[e] = t; + }, n.prototype[DB] = function(e) { + delete this.obj[e]; + }, n.prototype.keys = function() { + return Object.getOwnPropertyNames(this.obj); + }, n.prototype.entries = function() { + var e = this.keys(), t = this, i = 0; + return { next: function() { + if (i >= e.length) + return { done: !0 }; + var r = e[i++]; + return { value: [r, t.get(r)], done: !1 }; + } }; + }, AAe() || (n.prototype.createObject = function() { + return {}; + }, n.prototype.get = function(e) { + return this.obj[":" + e]; + }, n.prototype.set = function(e, t) { + this.obj[":" + e] = t; + }, n.prototype[DB] = function(e) { + delete this.obj[":" + e]; + }, n.prototype.keys = function() { + var e = []; + for (var t in this.obj) + t.charCodeAt(0) == 58 && e.push(t.substring(1)); + return e; + }), n; + } + function pt() { + pt = F, u9 = new lt(Jtn), new Dt("DEPTH", Y(0)), iq = new Dt("FAN", Y(0)), mln = new Dt(bVn, Y(0)), Ma = new Dt("ROOT", (_n(), !1)), uq = new Dt("LEFTNEIGHBOR", null), dre = new Dt("RIGHTNEIGHBOR", null), $I = new Dt("LEFTSIBLING", null), oq = new Dt("RIGHTSIBLING", null), tq = new Dt("DUMMY", !1), new Dt("LEVEL", Y(0)), yln = new Dt("REMOVABLE_EDGES", new Ct()), $j = new Dt("XCOOR", Y(0)), xj = new Dt("YCOOR", Y(0)), xI = new Dt("LEVELHEIGHT", 0), jf = new Dt("LEVELMIN", 0), Js = new Dt("LEVELMAX", 0), rq = new Dt("GRAPH_XMIN", 0), cq = new Dt("GRAPH_YMIN", 0), vln = new Dt("GRAPH_XMAX", 0), kln = new Dt("GRAPH_YMAX", 0), pln = new Dt("COMPACT_LEVEL_ASCENSION", !1), eq = new Dt("COMPACT_CONSTRAINTS", new Z()), c9 = new Dt("ID", ""), o9 = new Dt("POSITION", Y(0)), E1 = new Dt("PRELIM", 0), Dv = new Dt("MODIFIER", 0), Ov = new lt(TXn), Nj = new lt(AXn); + } + function NDe(n) { + Ben(); + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j; + if (n == null) + return null; + if (d = n.length * 8, d == 0) + return ""; + for (f = d % 24, p = d / 24 | 0, g = f != 0 ? p + 1 : p, c = null, c = K(fs, wh, 28, g * 4, 15, 1), l = 0, a = 0, e = 0, t = 0, i = 0, s = 0, r = 0, h = 0; h < p; h++) + e = n[r++], t = n[r++], i = n[r++], a = (t & 15) << 24 >> 24, l = (e & 3) << 24 >> 24, m = e & -128 ? (e >> 2 ^ 192) << 24 >> 24 : e >> 2 << 24 >> 24, k = t & -128 ? (t >> 4 ^ 240) << 24 >> 24 : t >> 4 << 24 >> 24, j = i & -128 ? (i >> 6 ^ 252) << 24 >> 24 : i >> 6 << 24 >> 24, c[s++] = D1[m], c[s++] = D1[k | l << 4], c[s++] = D1[a << 2 | j], c[s++] = D1[i & 63]; + return f == 8 ? (e = n[r], l = (e & 3) << 24 >> 24, m = e & -128 ? (e >> 2 ^ 192) << 24 >> 24 : e >> 2 << 24 >> 24, c[s++] = D1[m], c[s++] = D1[l << 4], c[s++] = 61, c[s++] = 61) : f == 16 && (e = n[r], t = n[r + 1], a = (t & 15) << 24 >> 24, l = (e & 3) << 24 >> 24, m = e & -128 ? (e >> 2 ^ 192) << 24 >> 24 : e >> 2 << 24 >> 24, k = t & -128 ? (t >> 4 ^ 240) << 24 >> 24 : t >> 4 << 24 >> 24, c[s++] = D1[m], c[s++] = D1[k | l << 4], c[s++] = D1[a << 2], c[s++] = 61), ws(c, 0, c.length); + } + function $De(n, e) { + var t, i, r, c, s, f, h; + if (n.e == 0 && n.p > 0 && (n.p = -(n.p - 1)), n.p > Wi && CJ(e, n.p - ha), s = e.q.getDate(), W7(e, 1), n.k >= 0 && E2e(e, n.k), n.c >= 0 ? W7(e, n.c) : n.k >= 0 ? (h = new nY(e.q.getFullYear() - ha, e.q.getMonth(), 35), i = 35 - h.q.getDate(), W7(e, y.Math.min(i, s))) : W7(e, s), n.f < 0 && (n.f = e.q.getHours()), n.b > 0 && n.f < 12 && (n.f += 12), b1e(e, n.f == 24 && n.g ? 0 : n.f), n.j >= 0 && c4e(e, n.j), n.n >= 0 && p4e(e, n.n), n.i >= 0 && QMn(e, Zi(nr(Xk(vc(e.q.getTime()), b1), b1), n.i)), n.a && (r = new JE(), CJ(r, r.q.getFullYear() - ha - 80), ND(vc(e.q.getTime()), vc(r.q.getTime())) && CJ(e, r.q.getFullYear() - ha + 100)), n.d >= 0) { + if (n.c == -1) + t = (7 + n.d - e.q.getDay()) % 7, t > 3 && (t -= 7), f = e.q.getMonth(), W7(e, e.q.getDate() + t), e.q.getMonth() != f && W7(e, e.q.getDate() + (t > 0 ? -7 : 7)); + else if (e.q.getDay() != n.d) + return !1; + } + return n.o > Wi && (c = e.q.getTimezoneOffset(), QMn(e, Zi(vc(e.q.getTime()), (n.o - c) * 60 * b1))), !0; + } + function XGn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + if (r = v(e, (W(), st)), !!D(r, 207)) { + for (m = u(r, 27), k = e.e, g = new ir(e.c), c = e.d, g.a += c.b, g.b += c.d, N = u(z(m, (cn(), kI)), 181), Tu(N, (to(), sO)) && (p = u(z(m, hhn), 107), Use(p, c.a), Yse(p, c.d), Gse(p, c.b), Qse(p, c.c)), t = new Z(), a = new C(e.a); a.a < a.c.c.length; ) + for (h = u(E(a), 10), D(v(h, st), 207) ? _De(h, g) : D(v(h, st), 193) && !k && (i = u(v(h, st), 123), I = NUn(e, h, i.g, i.f), Ro(i, I.a, I.b)), S = new C(h.j); S.a < S.c.c.length; ) + j = u(E(S), 12), Ut(ut(new Tn(null, new In(j.g, 16)), new z9n(h)), new X9n(t)); + if (k) + for (S = new C(k.j); S.a < S.c.c.length; ) + j = u(E(S), 12), Ut(ut(new Tn(null, new In(j.g, 16)), new V9n(k)), new W9n(t)); + for (O = u(z(m, $l), 223), f = new C(t); f.a < f.c.c.length; ) + s = u(E(f), 18), tDe(s, O, g); + for (HSe(e), l = new C(e.a); l.a < l.c.c.length; ) + h = u(E(l), 10), d = h.e, d && XGn(n, d); + } + } + function VGn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p; + if (!u(u(ot(n.r, e), 21), 87).dc()) { + if (s = u(Mr(n.b, e), 127), h = s.i, f = s.n, a = kF(n, e), i = h.b - f.b - f.c, r = s.a.a, c = h.c + f.b, p = n.w, (a == (Bg(), Sa) || a == eE) && u(u(ot(n.r, e), 21), 87).gc() == 1 && (r = a == Sa ? r - 2 * n.w : r, a = C9), i < r && !n.B.Hc((to(), fO))) + a == Sa ? (p += (i - r) / (u(u(ot(n.r, e), 21), 87).gc() + 1), c += p) : p += (i - r) / (u(u(ot(n.r, e), 21), 87).gc() - 1); + else + switch (i < r && (r = a == Sa ? r - 2 * n.w : r, a = C9), a.g) { + case 3: + c += (i - r) / 2; + break; + case 4: + c += i - r; + break; + case 0: + t = (i - r) / (u(u(ot(n.r, e), 21), 87).gc() + 1), p += y.Math.max(0, t), c += p; + break; + case 1: + t = (i - r) / (u(u(ot(n.r, e), 21), 87).gc() - 1), p += y.Math.max(0, t); + } + for (g = u(u(ot(n.r, e), 21), 87).Kc(); g.Ob(); ) + d = u(g.Pb(), 117), d.e.a = c + d.d.b, d.e.b = (l = d.b, l.pf((He(), uo)) ? l.ag() == (en(), Xn) ? -l.Mf().b - $(R(l.of(uo))) : $(R(l.of(uo))) : l.ag() == (en(), Xn) ? -l.Mf().b : 0), c += d.d.b + d.b.Mf().a + d.d.c + p; + } + } + function WGn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m; + if (!u(u(ot(n.r, e), 21), 87).dc()) { + if (s = u(Mr(n.b, e), 127), h = s.i, f = s.n, d = kF(n, e), i = h.a - f.d - f.a, r = s.a.b, c = h.d + f.d, m = n.w, l = n.o.a, (d == (Bg(), Sa) || d == eE) && u(u(ot(n.r, e), 21), 87).gc() == 1 && (r = d == Sa ? r - 2 * n.w : r, d = C9), i < r && !n.B.Hc((to(), fO))) + d == Sa ? (m += (i - r) / (u(u(ot(n.r, e), 21), 87).gc() + 1), c += m) : m += (i - r) / (u(u(ot(n.r, e), 21), 87).gc() - 1); + else + switch (i < r && (r = d == Sa ? r - 2 * n.w : r, d = C9), d.g) { + case 3: + c += (i - r) / 2; + break; + case 4: + c += i - r; + break; + case 0: + t = (i - r) / (u(u(ot(n.r, e), 21), 87).gc() + 1), m += y.Math.max(0, t), c += m; + break; + case 1: + t = (i - r) / (u(u(ot(n.r, e), 21), 87).gc() - 1), m += y.Math.max(0, t); + } + for (p = u(u(ot(n.r, e), 21), 87).Kc(); p.Ob(); ) + g = u(p.Pb(), 117), g.e.a = (a = g.b, a.pf((He(), uo)) ? a.ag() == (en(), Wn) ? -a.Mf().a - $(R(a.of(uo))) : l + $(R(a.of(uo))) : a.ag() == (en(), Wn) ? -a.Mf().a : l), g.e.b = c + g.d.d, c += g.d.d + g.b.Mf().b + g.d.a + m; + } + } + function xDe(n, e) { + var t, i, r, c, s; + for (e.Ug("Processor determine the coords for each level", 1), i = new Z(), s = ge(n.b, 0); s.b != s.d.c; ) { + for (r = u(be(s), 40); u(v(r, (lc(), Ah)), 17).a > i.c.length - 1; ) + nn(i, new wi(i2, Arn)); + t = u(v(r, Ah), 17).a, hl(u(v(n, kb), 88)) ? (r.e.a < $(R((Ln(t, i.c.length), u(i.c[t], 42)).a)) && QO((Ln(t, i.c.length), u(i.c[t], 42)), r.e.a), r.e.a + r.f.a > $(R((Ln(t, i.c.length), u(i.c[t], 42)).b)) && YO((Ln(t, i.c.length), u(i.c[t], 42)), r.e.a + r.f.a)) : (r.e.b < $(R((Ln(t, i.c.length), u(i.c[t], 42)).a)) && QO((Ln(t, i.c.length), u(i.c[t], 42)), r.e.b), r.e.b + r.f.b > $(R((Ln(t, i.c.length), u(i.c[t], 42)).b)) && YO((Ln(t, i.c.length), u(i.c[t], 42)), r.e.b + r.f.b)); + } + for (c = ge(n.b, 0); c.b != c.d.c; ) + r = u(be(c), 40), t = u(v(r, (lc(), Ah)), 17).a, U(r, (pt(), jf), R((Ln(t, i.c.length), u(i.c[t], 42)).a)), U(r, Js, R((Ln(t, i.c.length), u(i.c[t], 42)).b)); + e.Vg(); + } + function FDe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k; + for (n.o = $(R(v(n.i, (cn(), pb)))), n.f = $(R(v(n.i, Rd))), n.j = n.i.b.c.length, f = n.j - 1, g = 0, n.k = 0, n.n = 0, n.b = If(K(Gi, J, 17, n.j, 0, 1)), n.c = If(K(fi, J, 345, n.j, 7, 1)), s = new C(n.i.b); s.a < s.c.c.length; ) { + for (r = u(E(s), 30), r.p = f, d = new C(r.a); d.a < d.c.c.length; ) + a = u(E(d), 10), a.p = g, ++g; + --f; + } + for (n.g = K(ye, _e, 28, g, 15, 1), n.d = Ja(ye, [J, _e], [53, 28], 15, [g, 3], 2), n.p = new Z(), n.q = new Z(), e = 0, n.e = 0, c = new C(n.i.b); c.a < c.c.c.length; ) { + for (r = u(E(c), 30), f = r.p, i = 0, k = 0, h = r.a.c.length, l = 0, d = new C(r.a); d.a < d.c.c.length; ) + a = u(E(d), 10), g = a.p, n.g[g] = a.c.p, l += a.o.b + n.o, t = wl(new ie(ce(Ei(a).a.Kc(), new En()))), m = wl(new ie(ce(Qt(a).a.Kc(), new En()))), n.d[g][0] = m - t, n.d[g][1] = t, n.d[g][2] = m, i += t, k += m, t > 0 && nn(n.q, a), nn(n.p, a); + e -= i, p = h + e, l += e * n.f, Go(n.b, f, Y(p)), Go(n.c, f, l), n.k = y.Math.max(n.k, p), n.n = y.Math.max(n.n, l), n.e += e, e += k; + } + } + function en() { + en = F; + var n; + sc = new v7(n8, 0), Xn = new v7(eS, 1), Zn = new v7(HB, 2), ae = new v7(qB, 3), Wn = new v7(UB, 4), Qf = (Dn(), new i4((n = u(of(hr), 9), new _o(n, u(xs(n, n.length), 9), 0)))), ef = r1(yt(Xn, A(T(hr, 1), Tc, 64, 0, []))), os = r1(yt(Zn, A(T(hr, 1), Tc, 64, 0, []))), No = r1(yt(ae, A(T(hr, 1), Tc, 64, 0, []))), Ts = r1(yt(Wn, A(T(hr, 1), Tc, 64, 0, []))), pu = r1(yt(Xn, A(T(hr, 1), Tc, 64, 0, [ae]))), su = r1(yt(Zn, A(T(hr, 1), Tc, 64, 0, [Wn]))), tf = r1(yt(Xn, A(T(hr, 1), Tc, 64, 0, [Wn]))), Xu = r1(yt(Xn, A(T(hr, 1), Tc, 64, 0, [Zn]))), $o = r1(yt(ae, A(T(hr, 1), Tc, 64, 0, [Wn]))), ss = r1(yt(Zn, A(T(hr, 1), Tc, 64, 0, [ae]))), Vu = r1(yt(Xn, A(T(hr, 1), Tc, 64, 0, [Zn, Wn]))), gu = r1(yt(Zn, A(T(hr, 1), Tc, 64, 0, [ae, Wn]))), mu = r1(yt(Xn, A(T(hr, 1), Tc, 64, 0, [ae, Wn]))), $u = r1(yt(Xn, A(T(hr, 1), Tc, 64, 0, [Zn, ae]))), Gc = r1(yt(Xn, A(T(hr, 1), Tc, 64, 0, [Zn, ae, Wn]))); + } + function BDe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn; + for (e.Ug(XXn, 1), k = new Z(), X = new Z(), l = new C(n.b); l.a < l.c.c.length; ) + for (h = u(E(l), 30), S = -1, m = Y7(h.a), d = m, g = 0, p = d.length; g < p; ++g) + if (a = d[g], ++S, !!(a.k == (Vn(), Xt) && mg(u(v(a, (cn(), Ht)), 101)))) { + for (Ep(u(v(a, (cn(), Ht)), 101)) || kTe(a), U(a, (W(), fb), a), k.c.length = 0, X.c.length = 0, t = new Z(), N = new Ct(), A$(N, l1(a, (en(), Xn))), fzn(n, N, k, X, t), f = S, tn = a, c = new C(k); c.a < c.c.c.length; ) + i = u(E(c), 10), ow(i, f, h), ++S, U(i, fb, a), s = u(sn(i.j, 0), 12), j = u(v(s, st), 12), on(un(v(j, mH))) || u(v(i, T3), 15).Fc(tn); + for (vo(N), O = l1(a, ae).Kc(); O.Ob(); ) + I = u(O.Pb(), 12), xt(N, I, N.a, N.a.a); + for (fzn(n, N, X, null, t), _ = a, r = new C(X); r.a < r.c.c.length; ) + i = u(E(r), 10), ow(i, ++S, h), U(i, fb, a), s = u(sn(i.j, 0), 12), j = u(v(s, st), 12), on(un(v(j, mH))) || u(v(_, T3), 15).Fc(i); + t.c.length == 0 || U(a, Ysn, t); + } + e.Vg(); + } + function JGn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + if (e.b != 0) { + for (p = new Ct(), f = null, m = null, i = gi(y.Math.floor(y.Math.log(e.b) * y.Math.LOG10E) + 1), h = 0, O = ge(e, 0); O.b != O.d.c; ) + for (S = u(be(O), 40), x(m) !== x(v(S, (pt(), c9))) && (m = Oe(v(S, c9)), h = 0), m != null ? f = m + UOn(h++, i) : f = UOn(h++, i), U(S, c9, f), j = (r = ge(new sl(S).a.d, 0), new sg(r)); Q9(j.a); ) + k = u(be(j.a), 65).c, xt(p, k, p.c.b, p.c), U(k, c9, f); + for (g = new de(), s = 0; s < f.length - i; s++) + for (I = ge(e, 0); I.b != I.d.c; ) + S = u(be(I), 40), l = qo(Oe(v(S, (pt(), c9))), 0, s + 1), t = (l == null ? Kr(gr(g.f, null)) : a6(g.i, l)) != null ? u(l == null ? Kr(gr(g.f, null)) : a6(g.i, l), 17).a + 1 : 1, Or(g, l, Y(t)); + for (d = new fd(new Ga(g).a); d.b; ) + a = N0(d), c = Y(ee(n.a, a.ld()) != null ? u(ee(n.a, a.ld()), 17).a : 0), Or(n.a, Oe(a.ld()), Y(u(a.md(), 17).a + c.a)), c = u(ee(n.b, a.ld()), 17), (!c || c.a < u(a.md(), 17).a) && Or(n.b, Oe(a.ld()), u(a.md(), 17)); + JGn(n, p); + } + } + function RDe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g; + for (t = null, h = null, r = u(v(n.b, (cn(), CH)), 349), r == (a5(), Ij) && (t = new Z(), h = new Z()), f = new C(n.d); f.a < f.c.c.length; ) + if (s = u(E(f), 105), c = s.i, !!c) + switch (s.e.g) { + case 0: + e = u(n5(new dp(s.b)), 64), r == Ij && e == (en(), Xn) ? Kn(t.c, s) : r == Ij && e == (en(), ae) ? Kn(h.c, s) : a7e(s, e); + break; + case 1: + l = s.a.d.j, a = s.c.d.j, l == (en(), Xn) ? Wl(s, Xn, ($f(), hv), s.a) : a == Xn ? Wl(s, Xn, ($f(), lv), s.c) : l == ae ? Wl(s, ae, ($f(), lv), s.a) : a == ae && Wl(s, ae, ($f(), hv), s.c); + break; + case 2: + case 3: + i = s.b, Tu(i, (en(), Xn)) ? Tu(i, ae) ? Tu(i, Wn) ? Tu(i, Zn) || Wl(s, Xn, ($f(), lv), s.c) : Wl(s, Xn, ($f(), hv), s.a) : Wl(s, Xn, ($f(), j3), null) : Wl(s, ae, ($f(), j3), null); + break; + case 4: + d = s.a.d.j, g = s.a.d.j, d == (en(), Xn) || g == Xn ? Wl(s, ae, ($f(), j3), null) : Wl(s, Xn, ($f(), j3), null); + } + t && (t.c.length == 0 || qUn(t, (en(), Xn)), h.c.length == 0 || qUn(h, (en(), ae))); + } + function KDe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S; + for (t.Ug("Breadth first model order layering", 1), n.a = e, j = new Z(), k = new C(n.a.a); k.a < k.c.c.length; ) + p = u(E(k), 10), p.k == (Vn(), Xt) && Kn(j.c, p); + for (Dn(), Zt(j, new Gpn()), h = !0, r = new Nc(n.a), i = null, nn(n.a.b, r), m = new C(j); m.a < m.c.c.length; ) + if (p = u(E(m), 10), h) + xi(p, r), h = !1; + else { + for (f = new ie(ce(Ei(p).a.Kc(), new En())); pe(f); ) + c = u(fe(f), 18), (c.c.i.k == (Vn(), Xt) && c.c.i.c == r || c.c.i.k == Sc && u(fe(new ie(ce(Ei(c.c.i).a.Kc(), new En()))), 18).c.i.c == r) && (i = new Nc(n.a), nn(n.a.b, i), r = new Nc(n.a), nn(n.a.b, r)); + for (s = new ie(ce(Ei(p).a.Kc(), new En())); pe(s); ) + c = u(fe(s), 18), c.c.i.k == (Vn(), Sc) && !c.c.i.c && xi(c.c.i, i); + xi(p, r); + } + for (n.a.a.c.length = 0, S = new Z(), d = new C(n.a.b); d.a < d.c.c.length; ) + l = u(E(d), 30), l.a.c.length == 0 && Kn(S.c, l); + for (IY(n.a.b, S), g = 0, a = new C(n.a.b); a.a < a.c.c.length; ) + l = u(E(a), 30), l.p = g, ++g; + t.Vg(); + } + function _De(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k; + for (i = u(v(n, (W(), st)), 27), m = u(v(n, (cn(), aI)), 17).a, c = u(v(n, gI), 17).a, ht(i, aI, Y(m)), ht(i, gI, Y(c)), eu(i, n.n.a + e.a), tu(i, n.n.b + e.b), (u(z(i, Fd), 181).gc() != 0 || n.e || x(v(Hi(n), vI)) === x((M5(), J8)) && oTn((uw(), (n.q ? n.q : (Dn(), Dn(), Vh))._b(bb) ? g = u(v(n, bb), 203) : g = u(v(Hi(n), z8), 203), g))) && (O0(i, n.o.a), I0(i, n.o.b)), d = new C(n.j); d.a < d.c.c.length; ) + l = u(E(d), 12), k = v(l, st), D(k, 193) && (r = u(k, 123), Ro(r, l.n.a, l.n.b), ht(r, Cv, l.j)); + for (p = u(v(n, db), 181).gc() != 0, h = new C(n.b); h.a < h.c.c.length; ) + s = u(E(h), 72), (p || u(v(s, db), 181).gc() != 0) && (t = u(v(s, st), 135), kg(t, s.o.a, s.o.b), Ro(t, s.n.a, s.n.b)); + if (!K6(u(v(n, Hw), 21))) + for (a = new C(n.j); a.a < a.c.c.length; ) + for (l = u(E(a), 12), f = new C(l.f); f.a < f.c.c.length; ) + s = u(E(f), 72), t = u(v(s, st), 135), O0(t, s.o.a), I0(t, s.o.b), Ro(t, s.n.a, s.n.b); + } + function HDe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn; + for (e.Ug("Calculate Graph Size", 1), e.dh(n, xrn), d = i2, g = i2, l = Frn, a = Frn, k = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); k.e != k.i.gc(); ) + p = u(ue(k), 27), I = p.i, O = p.j, kn = p.g, f = p.f, h = u(z(p, (He(), $v)), 140), d = y.Math.min(d, I - h.b), g = y.Math.min(g, O - h.d), l = y.Math.max(l, I + kn + h.c), a = y.Math.max(a, O + f + h.a); + for (S = u(z(n, (He(), M1)), 107), j = new V(d - S.b, g - S.d), yn = l - d + (S.b + S.c), s = a - g + (S.d + S.a), on(un(z(n, (oa(), Wln)))) && (N = u(z(n, (Tg(), D2)), 27), _ = u(z(N, $v), 140), X = N.i + N.g / 2 + (_.b + _.c) / 2 - j.a, tn = N.j + N.f / 2 + (_.d + _.a) / 2 - j.b, r = yn - X, c = s - tn, r < yn / 2 ? (t = r - X, yn += t, j.a -= t) : (t = X - r, yn += t), c < s / 2 ? (i = c - tn, s += i, j.b -= i) : (i = tn - c, s += i)), m = new ne((!n.a && (n.a = new q(Ye, n, 10, 11)), n.a)); m.e != m.i.gc(); ) + p = u(ue(m), 27), eu(p, p.i - j.a), tu(p, p.j - j.b); + on(un(z(n, Ww))) || (O0(n, yn), I0(n, s)), ht(n, B2, yn - (S.b + S.c)), ht(n, F2, s - (S.d + S.a)), e.dh(n, DS); + } + function qDe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p; + if (n.e.a.$b(), n.f.a.$b(), n.c.c.length = 0, n.i.c.length = 0, n.g.a.$b(), e) + for (s = new C(e.a); s.a < s.c.c.length; ) + for (c = u(E(s), 10), d = l1(c, (en(), Zn)).Kc(); d.Ob(); ) + for (a = u(d.Pb(), 12), hi(n.e, a), r = new C(a.g); r.a < r.c.c.length; ) + i = u(E(r), 18), !sr(i) && (nn(n.c, i), lRn(n, i), f = i.c.i.k, (f == (Vn(), Xt) || f == Hc || f == ni || f == Uf) && nn(n.j, i), p = i.d, g = p.i.c, g == t ? hi(n.f, p) : g == e ? hi(n.e, p) : au(n.c, i)); + if (t) + for (s = new C(t.a); s.a < s.c.c.length; ) { + for (c = u(E(s), 10), l = new C(c.j); l.a < l.c.c.length; ) + for (h = u(E(l), 12), r = new C(h.g); r.a < r.c.c.length; ) + i = u(E(r), 18), sr(i) && hi(n.g, i); + for (d = l1(c, (en(), Wn)).Kc(); d.Ob(); ) + for (a = u(d.Pb(), 12), hi(n.f, a), r = new C(a.g); r.a < r.c.c.length; ) + i = u(E(r), 18), !sr(i) && (nn(n.c, i), lRn(n, i), f = i.c.i.k, (f == (Vn(), Xt) || f == Hc || f == ni || f == Uf) && nn(n.j, i), p = i.d, g = p.i.c, g == t ? hi(n.f, p) : g == e ? hi(n.e, p) : au(n.c, i)); + } + } + function UDe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + for (t.Ug("Polyline edge routing", 1), j = $(R(v(e, (cn(), Xfn)))), p = $(R(v(e, A2))), r = $(R(v(e, M2))), i = y.Math.min(1, r / p), O = 0, h = 0, e.b.c.length != 0 && (N = XHn(u(sn(e.b, 0), 30)), O = 0.4 * i * N), f = new Fi(e.b, 0); f.b < f.d.gc(); ) { + for (s = (oe(f.b < f.d.gc()), u(f.d.Xb(f.c = f.b++), 30)), c = SC(s, Dj), c && O > 0 && (O -= p), Wen(s, O), a = 0, g = new C(s.a); g.a < g.c.c.length; ) { + for (d = u(E(g), 10), l = 0, k = new ie(ce(Qt(d).a.Kc(), new En())); pe(k); ) + m = u(fe(k), 18), S = Pf(m.c).b, I = Pf(m.d).b, s == m.d.i.c && !sr(m) && (iCe(m, O, 0.4 * i * y.Math.abs(S - I)), m.c.j == (en(), Wn) && (S = 0, I = 0)), l = y.Math.max(l, y.Math.abs(I - S)); + switch (d.k.g) { + case 0: + case 4: + case 1: + case 3: + case 5: + oOe(n, d, O, j); + } + a = y.Math.max(a, l); + } + f.b < f.d.gc() && (N = XHn((oe(f.b < f.d.gc()), u(f.d.Xb(f.c = f.b++), 30))), a = y.Math.max(a, N), oe(f.b > 0), f.a.Xb(f.c = --f.b)), h = 0.4 * i * a, !c && f.b < f.d.gc() && (h += p), O += s.c.a + h; + } + n.a.a.$b(), e.f.a = O, t.Vg(); + } + function GDe(n) { + var e, t, i, r, c; + switch (G7(n, MWn), (!n.b && (n.b = new Nn(he, n, 4, 7)), n.b).i + (!n.c && (n.c = new Nn(he, n, 5, 8)), n.c).i) { + case 0: + throw M(new Gn("The edge must have at least one source or target.")); + case 1: + return (!n.b && (n.b = new Nn(he, n, 4, 7)), n.b).i == 0 ? At(Gr(u(L((!n.c && (n.c = new Nn(he, n, 5, 8)), n.c), 0), 84))) : At(Gr(u(L((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b), 0), 84))); + } + if ((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b).i == 1 && (!n.c && (n.c = new Nn(he, n, 5, 8)), n.c).i == 1) { + if (r = Gr(u(L((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b), 0), 84)), c = Gr(u(L((!n.c && (n.c = new Nn(he, n, 5, 8)), n.c), 0), 84)), At(r) == At(c)) + return At(r); + if (r == At(c)) + return r; + if (c == At(r)) + return c; + } + for (i = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [(!n.b && (n.b = new Nn(he, n, 4, 7)), n.b), (!n.c && (n.c = new Nn(he, n, 5, 8)), n.c)]))), e = Gr(u(fe(i), 84)); pe(i); ) + if (t = Gr(u(fe(i), 84)), t != e && !Zb(t, e)) { + if (At(t) == At(e)) + e = At(t); + else if (e = mMe(e, t), !e) + return null; + } + return e; + } + function ctn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + if (g = e.length, g > 0 && (h = (zn(0, e.length), e.charCodeAt(0)), h != 64)) { + if (h == 37 && (d = e.lastIndexOf("%"), l = !1, d != 0 && (d == g - 1 || (l = (zn(d + 1, e.length), e.charCodeAt(d + 1) == 46))))) { + if (s = (Bi(1, d, e.length), e.substr(1, d - 1)), O = An("%", s) ? null : utn(s), i = 0, l) + try { + i = Ao((zn(d + 2, e.length + 1), e.substr(d + 2)), Wi, et); + } catch (N) { + throw N = It(N), D(N, 130) ? (f = N, M(new eT(f))) : M(N); + } + for (j = LQ(n.Gh()); j.Ob(); ) + if (m = PT(j), D(m, 519) && (r = u(m, 598), I = r.d, (O == null ? I == null : An(O, I)) && i-- == 0)) + return r; + return null; + } + if (a = e.lastIndexOf("."), p = a == -1 ? e : (Bi(0, a, e.length), e.substr(0, a)), t = 0, a != -1) + try { + t = Ao((zn(a + 1, e.length + 1), e.substr(a + 1)), Wi, et); + } catch (N) { + if (N = It(N), D(N, 130)) + p = e; + else + throw M(N); + } + for (p = An("%", p) ? null : utn(p), k = LQ(n.Gh()); k.Ob(); ) + if (m = PT(k), D(m, 197) && (c = u(m, 197), S = c.xe(), (p == null ? S == null : An(p, S)) && t-- == 0)) + return c; + return null; + } + return xGn(n, e); + } + function zDe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I; + for (a = new de(), h = new M0(), i = new C(n.a.a.b); i.a < i.c.c.length; ) + if (e = u(E(i), 60), l = Pg(e), l) + Wc(a.f, l, e); + else if (I = xp(e), I) + for (c = new C(I.k); c.a < c.c.c.length; ) + r = u(E(c), 18), Pn(h, r, e); + for (t = new C(n.a.a.b); t.a < t.c.c.length; ) + if (e = u(E(t), 60), l = Pg(e), l) { + for (f = new ie(ce(Qt(l).a.Kc(), new En())); pe(f); ) + if (s = u(fe(f), 18), !sr(s) && (m = s.c, S = s.d, !((en(), pu).Hc(s.c.j) && pu.Hc(s.d.j)))) { + if (k = u(ee(a, s.d.i), 60), qs(Ls(Ds(Ns(Os(new hs(), 0), 100), n.c[e.a.d]), n.c[k.a.d])), m.j == Wn && PPn((Iu(), m))) { + for (g = u(ot(h, s), 21).Kc(); g.Ob(); ) + if (d = u(g.Pb(), 60), d.d.c < e.d.c) { + if (p = n.c[d.a.d], j = n.c[e.a.d], p == j) + continue; + qs(Ls(Ds(Ns(Os(new hs(), 1), 100), p), j)); + } + } + if (S.j == Zn && IPn((Iu(), S))) { + for (g = u(ot(h, s), 21).Kc(); g.Ob(); ) + if (d = u(g.Pb(), 60), d.d.c > e.d.c) { + if (p = n.c[e.a.d], j = n.c[d.a.d], p == j) + continue; + qs(Ls(Ds(Ns(Os(new hs(), 1), 100), p), j)); + } + } + } + } + } + function XDe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X; + if (g = u(u(ot(n.r, e), 21), 87), e == (en(), Zn) || e == Wn) { + UGn(n, e); + return; + } + for (c = e == Xn ? ($0(), ij) : ($0(), rj), N = e == Xn ? (du(), kf) : (du(), Xs), t = u(Mr(n.b, e), 127), i = t.i, r = i.c + Dg(A(T(Oi, 1), Ar, 28, 15, [t.n.b, n.C.b, n.k])), S = i.c + i.b - Dg(A(T(Oi, 1), Ar, 28, 15, [t.n.c, n.C.c, n.k])), s = kz(xV(c), n.t), I = e == Xn ? ai : St, d = g.Kc(); d.Ob(); ) + l = u(d.Pb(), 117), !(!l.c || l.c.d.c.length <= 0) && (j = l.b.Mf(), k = l.e, p = l.c, m = p.i, m.b = (h = p.n, p.e.a + h.b + h.c), m.a = (f = p.n, p.e.b + f.d + f.a), G7(N, xtn), p.f = N, df(p, (Hu(), zs)), m.c = k.a - (m.b - j.a) / 2, _ = y.Math.min(r, k.a), X = y.Math.max(S, k.a + j.a), m.c < _ ? m.c = _ : m.c + m.b > X && (m.c = X - m.b), nn(s.d, new ZL(m, AY(s, m))), I = e == Xn ? y.Math.max(I, k.b + l.b.Mf().b) : y.Math.min(I, k.b)); + for (I += e == Xn ? n.t : -n.t, O = zY((s.e = I, s)), O > 0 && (u(Mr(n.b, e), 127).a.b = O), a = g.Kc(); a.Ob(); ) + l = u(a.Pb(), 117), !(!l.c || l.c.d.c.length <= 0) && (m = l.c.i, m.c -= l.e.a, m.d -= l.e.b); + } + function VDe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p; + for (e = new de(), h = new ne(n); h.e != h.i.gc(); ) { + for (f = u(ue(h), 27), t = new ei(), Xe(m_, f, t), p = new Rbn(), r = u(Wr(new Tn(null, new m0(new ie(ce(cy(f).a.Kc(), new En())))), dPn(p, _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)])))), 85), X$n(t, u(r.xc((_n(), !0)), 16), new Kbn()), i = u(Wr(ut(u(r.xc(!1), 15).Lc(), new _bn()), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [Yr]))), 15), s = i.Kc(); s.Ob(); ) + c = u(s.Pb(), 74), g = XKn(c), g && (l = u(Kr(gr(e.f, g)), 21), l || (l = gqn(g), Wc(e.f, g, l)), Ri(t, l)); + for (r = u(Wr(new Tn(null, new m0(new ie(ce(Al(f).a.Kc(), new En())))), dPn(p, _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [Yr])))), 85), X$n(t, u(r.xc(!0), 16), new Hbn()), i = u(Wr(ut(u(r.xc(!1), 15).Lc(), new qbn()), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [Yr]))), 15), d = i.Kc(); d.Ob(); ) + a = u(d.Pb(), 74), g = VKn(a), g && (l = u(Kr(gr(e.f, g)), 21), l || (l = gqn(g), Wc(e.f, g, l)), Ri(t, l)); + } + } + function WDe(n, e) { + BF(); + var t, i, r, c, s, f, h, l, a, d, g, p, m, k; + if (h = Cc(n, 0) < 0, h && (n = e1(n)), Cc(n, 0) == 0) + switch (e) { + case 0: + return "0"; + case 1: + return Rm; + case 2: + return "0.00"; + case 3: + return "0.000"; + case 4: + return "0.0000"; + case 5: + return "0.00000"; + case 6: + return "0.000000"; + default: + return p = new x1(), e < 0 ? p.a += "0E+" : p.a += "0E", p.a += e == Wi ? "2147483648" : "" + -e, p.a; + } + a = 18, d = K(fs, wh, 28, a + 1, 15, 1), t = a, k = n; + do + l = k, k = Xk(k, 10), d[--t] = Ae(Zi(48, bs(l, nr(k, 10)))) & oi; + while (Cc(k, 0) != 0); + if (r = bs(bs(bs(a, t), e), 1), e == 0) + return h && (d[--t] = 45), ws(d, t, a - t); + if (e > 0 && Cc(r, -6) >= 0) { + if (Cc(r, 0) >= 0) { + for (c = t + Ae(r), f = a - 1; f >= c; f--) + d[f + 1] = d[f]; + return d[++c] = 46, h && (d[--t] = 45), ws(d, t, a - t + 1); + } + for (s = 2; ND(s, Zi(e1(r), 1)); s++) + d[--t] = 48; + return d[--t] = 46, d[--t] = 48, h && (d[--t] = 45), ws(d, t, a - t); + } + return m = t + 1, i = a, g = new fg(), h && (g.a += "-"), i - m >= 1 ? (z1(g, d[t]), g.a += ".", g.a += ws(d, t + 1, a - t - 1)) : g.a += ws(d, t, a - t), g.a += "E", Cc(r, 0) > 0 && (g.a += "+"), g.a += "" + _6(r), g.a; + } + function z0(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X; + if (j = new V(n.g, n.f), k = jnn(n), k.a = y.Math.max(k.a, e), k.b = y.Math.max(k.b, t), X = k.a / j.a, a = k.b / j.b, N = k.a - j.a, h = k.b - j.b, i) + for (s = At(n) ? u(z(At(n), (He(), Hd)), 88) : u(z(n, (He(), Hd)), 88), f = x(z(n, (He(), v9))) === x((Li(), Uc)), I = new ne((!n.c && (n.c = new q(Wu, n, 9, 9)), n.c)); I.e != I.i.gc(); ) + switch (S = u(ue(I), 123), O = u(z(S, H2), 64), O == (en(), sc) && (O = Ren(S, s), ht(S, H2, O)), O.g) { + case 1: + f || eu(S, S.i * X); + break; + case 2: + eu(S, S.i + N), f || tu(S, S.j * a); + break; + case 3: + f || eu(S, S.i * X), tu(S, S.j + h); + break; + case 4: + f || tu(S, S.j * a); + } + if (kg(n, k.a, k.b), r) + for (g = new ne((!n.n && (n.n = new q(Sr, n, 1, 7)), n.n)); g.e != g.i.gc(); ) + d = u(ue(g), 135), p = d.i + d.g / 2, m = d.j + d.f / 2, _ = p / j.a, l = m / j.b, _ + l >= 1 && (_ - l > 0 && m >= 0 ? (eu(d, d.i + N), tu(d, d.j + h * l)) : _ - l < 0 && p >= 0 && (eu(d, d.i + N * _), tu(d, d.j + h))); + return ht(n, (He(), qd), (go(), c = u(of(S9), 9), new _o(c, u(xs(c, c.length), 9), 0))), new V(X, a); + } + function QGn(n) { + c0(n, new pd(UE(t0(Zd(e0(n0(new _a(), es), "ELK Radial"), 'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'), new V4n()), es))), Q(n, es, TS, rn(fce)), Q(n, es, jw, rn(hce)), Q(n, es, r2, rn(cce)), Q(n, es, d3, rn(uce)), Q(n, es, a3, rn(oce)), Q(n, es, zm, rn(rce)), Q(n, es, r8, rn(Jln)), Q(n, es, Xm, rn(sce)), Q(n, es, XR, rn(kq)), Q(n, es, zR, rn(yq)), Q(n, es, LS, rn(Yln)), Q(n, es, VR, rn(jq)), Q(n, es, WR, rn(Zln)), Q(n, es, zrn, rn(n1n)), Q(n, es, Grn, rn(Qln)), Q(n, es, _rn, rn(_I)), Q(n, es, Hrn, rn(HI)), Q(n, es, qrn, rn(Fj)), Q(n, es, Urn, rn(e1n)), Q(n, es, Krn, rn(Wln)); + } + function zA(n) { + var e, t, i, r, c, s, f, h, l, a, d; + if (n == null) + throw M(new eh(wu)); + if (l = n, c = n.length, h = !1, c > 0 && (e = (zn(0, n.length), n.charCodeAt(0)), (e == 45 || e == 43) && (n = (zn(1, n.length + 1), n.substr(1)), --c, h = e == 45)), c == 0) + throw M(new eh(W0 + l + '"')); + for (; n.length > 0 && (zn(0, n.length), n.charCodeAt(0) == 48); ) + n = (zn(1, n.length + 1), n.substr(1)), --c; + if (c > (SUn(), gQn)[10]) + throw M(new eh(W0 + l + '"')); + for (r = 0; r < c; r++) + if (VBn((zn(r, n.length), n.charCodeAt(r))) == -1) + throw M(new eh(W0 + l + '"')); + for (d = 0, s = vun[10], a = JK[10], f = e1(kun[10]), t = !0, i = c % s, i > 0 && (d = -parseInt((Bi(0, i, n.length), n.substr(0, i)), 10), n = (zn(i, n.length + 1), n.substr(i)), c -= i, t = !1); c >= s; ) { + if (i = parseInt((Bi(0, s, n.length), n.substr(0, s)), 10), n = (zn(s, n.length + 1), n.substr(s)), c -= s, t) + t = !1; + else { + if (Cc(d, f) < 0) + throw M(new eh(W0 + l + '"')); + d = nr(d, a); + } + d = bs(d, i); + } + if (Cc(d, 0) > 0) + throw M(new eh(W0 + l + '"')); + if (!h && (d = e1(d), Cc(d, 0) < 0)) + throw M(new eh(W0 + l + '"')); + return d; + } + function utn(n) { + UF(); + var e, t, i, r, c, s, f, h; + if (n == null) + return null; + if (r = th(n, bu(37)), r < 0) + return n; + for (h = new mo((Bi(0, r, n.length), n.substr(0, r))), e = K(xu, s2, 28, 4, 15, 1), f = 0, i = 0, s = n.length; r < s; r++) + if (zn(r, n.length), n.charCodeAt(r) == 37 && n.length > r + 2 && R$((zn(r + 1, n.length), n.charCodeAt(r + 1)), Bdn, Rdn) && R$((zn(r + 2, n.length), n.charCodeAt(r + 2)), Bdn, Rdn)) + if (t = gbe((zn(r + 1, n.length), n.charCodeAt(r + 1)), (zn(r + 2, n.length), n.charCodeAt(r + 2))), r += 2, i > 0 ? (t & 192) == 128 ? e[f++] = t << 24 >> 24 : i = 0 : t >= 128 && ((t & 224) == 192 ? (e[f++] = t << 24 >> 24, i = 2) : (t & 240) == 224 ? (e[f++] = t << 24 >> 24, i = 3) : (t & 248) == 240 && (e[f++] = t << 24 >> 24, i = 4)), i > 0) { + if (f == i) { + switch (f) { + case 2: { + z1(h, ((e[0] & 31) << 6 | e[1] & 63) & oi); + break; + } + case 3: { + z1(h, ((e[0] & 15) << 12 | (e[1] & 63) << 6 | e[2] & 63) & oi); + break; + } + } + f = 0, i = 0; + } + } else { + for (c = 0; c < f; ++c) + z1(h, e[c] & oi); + f = 0, h.a += String.fromCharCode(t); + } + else { + for (c = 0; c < f; ++c) + z1(h, e[c] & oi); + f = 0, z1(h, (zn(r, n.length), n.charCodeAt(r))); + } + return h.a; + } + function YGn(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m; + if (p = At(Gr(u(L((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b), 0), 84))), m = At(Gr(u(L((!n.c && (n.c = new Nn(he, n, 5, 8)), n.c), 0), 84))), d = p == m, f = new Ni(), e = u(z(n, (NT(), udn)), 75), e && e.b >= 2) { + if ((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a).i == 0) + t = (B1(), r = new jE(), r), ve((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a), t); + else if ((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a).i > 1) + for (g = new kp((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a)); g.e != g.i.gc(); ) + O5(g); + dy(e, u(L((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a), 0), 166)); + } + if (d) + for (i = new ne((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a)); i.e != i.i.gc(); ) + for (t = u(ue(i), 166), l = new ne((!t.a && (t.a = new ii(xo, t, 5)), t.a)); l.e != l.i.gc(); ) + h = u(ue(l), 377), f.a = y.Math.max(f.a, h.a), f.b = y.Math.max(f.b, h.b); + for (s = new ne((!n.n && (n.n = new q(Sr, n, 1, 7)), n.n)); s.e != s.i.gc(); ) + c = u(ue(s), 135), a = u(z(c, j9), 8), a && Ro(c, a.a, a.b), d && (f.a = y.Math.max(f.a, c.i + c.g), f.b = y.Math.max(f.b, c.j + c.f)); + return f; + } + function ZGn(n, e, t, i, r) { + var c, s, f; + if (n$n(n, e), s = e[0], c = Xi(t.c, 0), f = -1, iY(t)) + if (i > 0) { + if (s + i > n.length) + return !1; + f = yA((Bi(0, s + i, n.length), n.substr(0, s + i)), e); + } else + f = yA(n, e); + switch (c) { + case 71: + return f = Ug(n, s, A(T(fn, 1), J, 2, 6, [Bzn, Rzn]), e), r.e = f, !0; + case 77: + return lAe(n, e, r, f, s); + case 76: + return aAe(n, e, r, f, s); + case 69: + return iEe(n, e, s, r); + case 99: + return rEe(n, e, s, r); + case 97: + return f = Ug(n, s, A(T(fn, 1), J, 2, 6, ["AM", "PM"]), e), r.b = f, !0; + case 121: + return dAe(n, e, s, f, t, r); + case 100: + return f <= 0 ? !1 : (r.c = f, !0); + case 83: + return f < 0 ? !1 : v8e(f, s, e[0], r); + case 104: + f == 12 && (f = 0); + case 75: + case 72: + return f < 0 ? !1 : (r.f = f, r.g = !1, !0); + case 107: + return f < 0 ? !1 : (r.f = f, r.g = !0, !0); + case 109: + return f < 0 ? !1 : (r.j = f, !0); + case 115: + return f < 0 ? !1 : (r.n = f, !0); + case 90: + if (s < n.length && (zn(s, n.length), n.charCodeAt(s) == 90)) + return ++e[0], r.o = 0, !0; + case 122: + case 118: + return Aye(n, s, e, r); + default: + return !1; + } + } + function JDe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn; + for (O = e.c.length, r = new Wg(n.a, t, null, null), yn = K(Oi, Ar, 28, O, 15, 1), k = K(Oi, Ar, 28, O, 15, 1), m = K(Oi, Ar, 28, O, 15, 1), j = 0, f = 0; f < O; f++) + k[f] = et, m[f] = Wi; + for (h = 0; h < O; h++) + for (i = (Ln(h, e.c.length), u(e.c[h], 185)), yn[h] = gF(i), yn[j] > yn[h] && (j = h), d = new C(n.a.b); d.a < d.c.c.length; ) + for (a = u(E(d), 30), I = new C(a.a); I.a < I.c.c.length; ) + S = u(E(I), 10), X = $(i.p[S.p]) + $(i.d[S.p]), k[h] = y.Math.min(k[h], X), m[h] = y.Math.max(m[h], X + S.o.b); + for (tn = K(Oi, Ar, 28, O, 15, 1), l = 0; l < O; l++) + (Ln(l, e.c.length), u(e.c[l], 185)).o == (Sf(), Kd) ? tn[l] = k[j] - k[l] : tn[l] = m[j] - m[l]; + for (c = K(Oi, Ar, 28, O, 15, 1), p = new C(n.a.b); p.a < p.c.c.length; ) + for (g = u(E(p), 30), _ = new C(g.a); _.a < _.c.c.length; ) { + for (N = u(E(_), 10), s = 0; s < O; s++) + c[s] = $((Ln(s, e.c.length), u(e.c[s], 185)).p[N.p]) + $((Ln(s, e.c.length), u(e.c[s], 185)).d[N.p]) + tn[s]; + Pyn(c, I$n(mE.prototype.Me, mE, [])), r.p[N.p] = (c[1] + c[2]) / 2, r.d[N.p] = 0; + } + return r; + } + function QDe(n, e, t) { + var i, r, c, s, f; + switch (i = e.i, c = n.i.o, r = n.i.d, f = n.n, s = cc(A(T(Ci, 1), J, 8, 0, [f, n.a])), n.j.g) { + case 1: + ch(e, (du(), Xs)), i.d = -r.d - t - i.a, u(u(sn(e.d, 0), 187).of((W(), A3)), 291) == (To(), Zh) ? (df(e, (Hu(), zs)), i.c = s.a - $(R(v(n, y2))) - t - i.b) : (df(e, (Hu(), Ch)), i.c = s.a + $(R(v(n, y2))) + t); + break; + case 2: + df(e, (Hu(), Ch)), i.c = c.a + r.c + t, u(u(sn(e.d, 0), 187).of((W(), A3)), 291) == (To(), Zh) ? (ch(e, (du(), Xs)), i.d = s.b - $(R(v(n, y2))) - t - i.a) : (ch(e, (du(), kf)), i.d = s.b + $(R(v(n, y2))) + t); + break; + case 3: + ch(e, (du(), kf)), i.d = c.b + r.a + t, u(u(sn(e.d, 0), 187).of((W(), A3)), 291) == (To(), Zh) ? (df(e, (Hu(), zs)), i.c = s.a - $(R(v(n, y2))) - t - i.b) : (df(e, (Hu(), Ch)), i.c = s.a + $(R(v(n, y2))) + t); + break; + case 4: + df(e, (Hu(), zs)), i.c = -r.b - t - i.b, u(u(sn(e.d, 0), 187).of((W(), A3)), 291) == (To(), Zh) ? (ch(e, (du(), Xs)), i.d = s.b - $(R(v(n, y2))) - t - i.a) : (ch(e, (du(), kf)), i.d = s.b + $(R(v(n, y2))) + t); + } + } + function YDe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k; + for (t.Ug(kVn, 1), !e.a && (e.a = new q(Ye, e, 10, 11)), i = $(R(z(e, (Bf(), zI)))), a = $(R(z(e, l9))), g = u(z(e, h9), 107), p = new dX(i, a), c = vzn(p, e, g), T$n(e, p), f = u(z(e, m1n), 17).a; f > 1; ) { + if (r = rTe(e), d = c.g, m = u(z(e, h9), 107), k = $(R(z(e, zI))), (!e.a && (e.a = new q(Ye, e, 10, 11)), e.a).i > 1 && $(R(z(e, (Kh(), Iq)))) != St && (c.c + (m.b + m.c)) / (c.b + (m.d + m.a)) < k ? ht(r, (Kh(), Vw), $(R(z(e, Vw))) + $(R(z(e, Iq)))) : (!e.a && (e.a = new q(Ye, e, 10, 11)), e.a).i > 1 && $(R(z(e, (Kh(), Pq)))) != St && (c.c + (m.b + m.c)) / (c.b + (m.d + m.a)) > k && ht(r, (Kh(), Vw), y.Math.max($(R(z(e, f9))), $(R(z(r, Vw))) - $(R(z(e, Pq))))), p = new dX(i, a), h = vzn(p, r, g), l = h.g, l >= d && l == l) { + for (s = 0; s < (!r.a && (r.a = new q(Ye, r, 10, 11)), r.a).i; s++) + z_n(n, u(L((!r.a && (r.a = new q(Ye, r, 10, 11)), r.a), s), 27), u(L((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a), s), 27)); + T$n(e, p), s2e(c, h.c), o2e(c, h.b); + } + --f; + } + ht(e, (Kh(), Lv), c.b), ht(e, O3, c.c), t.Vg(); + } + function ZDe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I; + for (e.Ug("Interactive node layering", 1), t = new Z(), g = new C(n.a); g.a < g.c.c.length; ) { + for (a = u(E(g), 10), h = a.n.a, f = h + a.o.a, f = y.Math.max(h + 1, f), I = new Fi(t, 0), i = null; I.b < I.d.gc(); ) + if (j = (oe(I.b < I.d.gc()), u(I.d.Xb(I.c = I.b++), 578)), j.c >= f) { + oe(I.b > 0), I.a.Xb(I.c = --I.b); + break; + } else + j.a > h && (i ? (li(i.b, j.b), i.a = y.Math.max(i.a, j.a), bo(I)) : (nn(j.b, a), j.c = y.Math.min(j.c, h), j.a = y.Math.max(j.a, f), i = j)); + i || (i = new Vyn(), i.c = h, i.a = f, Kb(I, i), nn(i.b, a)); + } + for (s = n.b, l = 0, S = new C(t); S.a < S.c.c.length; ) + for (j = u(E(S), 578), r = new Nc(n), r.p = l++, Kn(s.c, r), p = new C(j.b); p.a < p.c.c.length; ) + a = u(E(p), 10), xi(a, r), a.p = 0; + for (d = new C(n.a); d.a < d.c.c.length; ) + if (a = u(E(d), 10), a.p == 0) + for (k = Hqn(a, n); k.a.gc() != 0; ) + m = u(k.a.ec().Kc().Pb(), 10), k.a.Bc(m) != null, Ri(k, Hqn(m, n)); + for (c = new Fi(s, 0); c.b < c.d.gc(); ) + (oe(c.b < c.d.gc()), u(c.d.Xb(c.c = c.b++), 30)).a.c.length == 0 && bo(c); + n.a.c.length = 0, e.Vg(); + } + function nLe(n, e, t, i, r, c, s) { + var f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te, xe, Lt; + for (p = 0, Fn = 0, h = new C(n); h.a < h.c.c.length; ) + f = u(E(h), 27), FGn(f), p = y.Math.max(p, f.g), Fn += f.g * f.f; + for (m = Fn / n.c.length, kn = F7e(n, m), Fn += n.c.length * kn, p = y.Math.max(p, y.Math.sqrt(Fn * s)) + t.b, xe = t.b, Lt = t.d, g = 0, a = t.b + t.c, yn = new Ct(), Fe(yn, Y(0)), X = new Ct(), l = new Fi(n, 0); l.b < l.d.gc(); ) + f = (oe(l.b < l.d.gc()), u(l.d.Xb(l.c = l.b++), 27)), te = f.g, d = f.f, xe + te > p && (c && (tr(X, g), tr(yn, Y(l.b - 1))), xe = t.b, Lt += g + e, g = 0, a = y.Math.max(a, t.b + t.c + te)), eu(f, xe), tu(f, Lt), a = y.Math.max(a, xe + te + t.c), g = y.Math.max(g, d), xe += te + e; + if (a = y.Math.max(a, i), Rn = Lt + g + t.a, Rn < r && (g += r - Rn, Rn = r), c) + for (xe = t.b, l = new Fi(n, 0), tr(yn, Y(n.c.length)), tn = ge(yn, 0), S = u(be(tn), 17).a, tr(X, g), _ = ge(X, 0), N = 0; l.b < l.d.gc(); ) + l.b == S && (xe = t.b, N = $(R(be(_))), S = u(be(tn), 17).a), f = (oe(l.b < l.d.gc()), u(l.d.Xb(l.c = l.b++), 27)), I = f.f, I0(f, N), k = N, l.b == S && (j = a - xe - t.c, O = f.g, O0(f, j), Cnn(f, new V(j, k), new V(O, I))), xe += f.g + e; + return new V(a, Rn); + } + function eLe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn; + for (e.Ug("Compound graph postprocessor", 1), t = on(un(v(n, (cn(), DH)))), f = u(v(n, (W(), efn)), 229), a = new ei(), S = f.ec().Kc(); S.Ob(); ) { + for (j = u(S.Pb(), 18), s = new Ru(f.cc(j)), Dn(), Zt(s, new LG(n)), _ = lve((Ln(0, s.c.length), u(s.c[0], 249))), tn = Mxn(u(sn(s, s.c.length - 1), 249)), O = _.i, J4(tn.i, O) ? I = O.e : I = Hi(O), d = w9e(j, s), vo(j.a), g = null, c = new C(s); c.a < c.c.c.length; ) + r = u(E(c), 249), k = new Ni(), mnn(k, r.a, I), p = r.b, i = new Cu(), J$(i, 0, p.a), ew(i, k), N = new ir(Pf(p.c)), X = new ir(Pf(p.d)), tt(N, k), tt(X, k), g && (i.b == 0 ? m = X : m = (oe(i.b != 0), u(i.a.a.c, 8)), yn = y.Math.abs(g.a - m.a) > mh, kn = y.Math.abs(g.b - m.b) > mh, (!t && yn && kn || t && (yn || kn)) && Fe(j.a, N)), Ri(j.a, i), i.b == 0 ? g = N : g = (oe(i.b != 0), u(i.c.b.c, 8)), Rve(p, d, k), Mxn(r) == tn && (Hi(tn.i) != r.a && (k = new Ni(), mnn(k, Hi(tn.i), I)), U(j, pH, k)), yje(p, j, I), a.a.zc(p, a); + Yi(j, _), Di(j, tn); + } + for (l = a.a.ec().Kc(); l.Ob(); ) + h = u(l.Pb(), 18), Yi(h, null), Di(h, null); + e.Vg(); + } + function tLe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g; + for (r = u(v(n, (lc(), kb)), 88), a = r == (ui(), Fr) || r == Xr ? Vf : Xr, t = u(Wr(ut(new Tn(null, new In(n.b, 16)), new n4n()), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), h = u(Wr(_r(t.Oc(), new wkn(e)), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [Yr]))), 15), h.Gc(u(Wr(_r(t.Oc(), new gkn(e)), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [Yr]))), 16)), h.jd(new pkn(a)), g = new Gl(new mkn(r)), i = new de(), f = h.Kc(); f.Ob(); ) + s = u(f.Pb(), 240), l = u(s.a, 40), on(un(s.c)) ? (g.a.zc(l, (_n(), ga)) == null, new Q3(g.a.Zc(l, !1)).a.gc() > 0 && Xe(i, l, u(new Q3(g.a.Zc(l, !1)).a.Vc(), 40)), new Q3(g.a.ad(l, !0)).a.gc() > 1 && Xe(i, PBn(g, l), l)) : (new Q3(g.a.Zc(l, !1)).a.gc() > 0 && (c = u(new Q3(g.a.Zc(l, !1)).a.Vc(), 40), x(c) === x(Kr(gr(i.f, l))) && u(v(l, (pt(), eq)), 15).Fc(c)), new Q3(g.a.ad(l, !0)).a.gc() > 1 && (d = PBn(g, l), x(Kr(gr(i.f, d))) === x(l) && u(v(d, (pt(), eq)), 15).Fc(l)), g.a.Bc(l) != null); + } + function nzn(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + if (n.gc() == 1) + return u(n.Xb(0), 235); + if (n.gc() <= 0) + return new zM(); + for (r = n.Kc(); r.Ob(); ) { + for (t = u(r.Pb(), 235), m = 0, a = et, d = et, h = Wi, l = Wi, p = new C(t.e); p.a < p.c.c.length; ) + g = u(E(p), 153), m += u(v(g, (Us(), k3)), 17).a, a = y.Math.min(a, g.d.a - g.e.a / 2), d = y.Math.min(d, g.d.b - g.e.b / 2), h = y.Math.max(h, g.d.a + g.e.a / 2), l = y.Math.max(l, g.d.b + g.e.b / 2); + U(t, (Us(), k3), Y(m)), U(t, (Q1(), D8), new V(a, d)), U(t, lj, new V(h, l)); + } + for (Dn(), n.jd(new Gbn()), k = new zM(), Ur(k, u(n.Xb(0), 96)), f = 0, I = 0, c = n.Kc(); c.Ob(); ) + t = u(c.Pb(), 235), j = vi(Ki(u(v(t, (Q1(), lj)), 8)), u(v(t, D8), 8)), f = y.Math.max(f, j.a), I += j.a * j.b; + for (f = y.Math.max(f, y.Math.sqrt(I) * $(R(v(k, (Us(), zYn))))), S = $(R(v(k, yP))), O = 0, N = 0, s = 0, e = S, i = n.Kc(); i.Ob(); ) + t = u(i.Pb(), 235), j = vi(Ki(u(v(t, (Q1(), lj)), 8)), u(v(t, D8), 8)), O + j.a > f && (O = 0, N += s + S, s = 0), PSe(k, t, O, N), e = y.Math.max(e, O + j.a), s = y.Math.max(s, j.b), O += j.a + S; + return k; + } + function iLe(n) { + Ben(); + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j; + if (n == null || (c = iT(n), m = O5e(c), m % 4 != 0)) + return null; + if (k = m / 4 | 0, k == 0) + return K(xu, s2, 28, 0, 15, 1); + for (d = null, e = 0, t = 0, i = 0, r = 0, s = 0, f = 0, h = 0, l = 0, p = 0, g = 0, a = 0, d = K(xu, s2, 28, k * 3, 15, 1); p < k - 1; p++) { + if (!n7(s = c[a++]) || !n7(f = c[a++]) || !n7(h = c[a++]) || !n7(l = c[a++])) + return null; + e = Zf[s], t = Zf[f], i = Zf[h], r = Zf[l], d[g++] = (e << 2 | t >> 4) << 24 >> 24, d[g++] = ((t & 15) << 4 | i >> 2 & 15) << 24 >> 24, d[g++] = (i << 6 | r) << 24 >> 24; + } + return !n7(s = c[a++]) || !n7(f = c[a++]) ? null : (e = Zf[s], t = Zf[f], h = c[a++], l = c[a++], Zf[h] == -1 || Zf[l] == -1 ? h == 61 && l == 61 ? t & 15 ? null : (j = K(xu, s2, 28, p * 3 + 1, 15, 1), Oc(d, 0, j, 0, p * 3), j[g] = (e << 2 | t >> 4) << 24 >> 24, j) : h != 61 && l == 61 ? (i = Zf[h], i & 3 ? null : (j = K(xu, s2, 28, p * 3 + 2, 15, 1), Oc(d, 0, j, 0, p * 3), j[g++] = (e << 2 | t >> 4) << 24 >> 24, j[g] = ((t & 15) << 4 | i >> 2 & 15) << 24 >> 24, j)) : null : (i = Zf[h], r = Zf[l], d[g++] = (e << 2 | t >> 4) << 24 >> 24, d[g++] = ((t & 15) << 4 | i >> 2 & 15) << 24 >> 24, d[g++] = (i << 6 | r) << 24 >> 24, d)); + } + function rLe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _; + for (e.Ug(XXn, 1), m = u(v(n, (cn(), $l)), 223), r = new C(n.b); r.a < r.c.c.length; ) + for (i = u(E(r), 30), l = Y7(i.a), s = l, f = 0, h = s.length; f < h; ++f) + if (c = s[f], c.k == (Vn(), Hc)) { + if (m == (El(), F3)) + for (d = new C(c.j); d.a < d.c.c.length; ) + a = u(E(d), 12), a.e.c.length == 0 || W8e(a), a.g.c.length == 0 || J8e(a); + else if (D(v(c, (W(), st)), 18)) + j = u(v(c, st), 18), S = u(l1(c, (en(), Wn)).Kc().Pb(), 12), I = u(l1(c, Zn).Kc().Pb(), 12), O = u(v(S, st), 12), N = u(v(I, st), 12), Yi(j, N), Di(j, O), _ = new ir(I.i.n), _.a = cc(A(T(Ci, 1), J, 8, 0, [N.i.n, N.n, N.a])).a, Fe(j.a, _), _ = new ir(S.i.n), _.a = cc(A(T(Ci, 1), J, 8, 0, [O.i.n, O.n, O.a])).a, Fe(j.a, _); + else { + if (c.j.c.length >= 2) { + for (k = !0, g = new C(c.j), t = u(E(g), 12), p = null; g.a < g.c.c.length; ) + if (p = t, t = u(E(g), 12), !rt(v(p, st), v(t, st))) { + k = !1; + break; + } + } else + k = !1; + for (d = new C(c.j); d.a < d.c.c.length; ) + a = u(E(d), 12), a.e.c.length == 0 || NTe(a, k), a.g.c.length == 0 || $Te(a, k); + } + xi(c, null); + } + e.Vg(); + } + function cLe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _; + for (f = new C(n.a.b); f.a < f.c.c.length; ) + for (c = u(E(f), 30), O = new C(c.a); O.a < O.c.c.length; ) + I = u(E(O), 10), e.g[I.p] = I, e.a[I.p] = I, e.d[I.p] = 0; + for (h = n.a.b, e.c == (sh(), j1) && (h = Qo(h)), s = h.Kc(); s.Ob(); ) + for (c = u(s.Pb(), 30), p = -1, g = c.a, e.o == (Sf(), zf) && (p = et, g = Qo(g)), _ = g.Kc(); _.Ob(); ) + if (N = u(_.Pb(), 10), d = null, e.c == j1 ? d = u(sn(n.b.f, N.p), 15) : d = u(sn(n.b.b, N.p), 15), d.gc() > 0) + if (i = d.gc(), l = gi(y.Math.floor((i + 1) / 2)) - 1, r = gi(y.Math.ceil((i + 1) / 2)) - 1, e.o == zf) + for (a = r; a >= l; a--) + e.a[N.p] == N && (k = u(d.Xb(a), 42), m = u(k.a, 10), !sf(t, k.b) && p > n.b.e[m.p] && (e.a[m.p] = N, e.g[N.p] = e.g[m.p], e.a[N.p] = e.g[N.p], e.f[e.g[N.p].p] = (_n(), !!(on(e.f[e.g[N.p].p]) & N.k == (Vn(), Ti))), p = n.b.e[m.p])); + else + for (a = l; a <= r; a++) + e.a[N.p] == N && (S = u(d.Xb(a), 42), j = u(S.a, 10), !sf(t, S.b) && p < n.b.e[j.p] && (e.a[j.p] = N, e.g[N.p] = e.g[j.p], e.a[N.p] = e.g[N.p], e.f[e.g[N.p].p] = (_n(), !!(on(e.f[e.g[N.p].p]) & N.k == (Vn(), Ti))), p = n.b.e[j.p])); + } + function ezn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn; + return O = n.c[(Ln(0, e.c.length), u(e.c[0], 18)).p], tn = n.c[(Ln(1, e.c.length), u(e.c[1], 18)).p], O.a.e.e - O.a.a - (O.b.e.e - O.b.a) == 0 && tn.a.e.e - tn.a.a - (tn.b.e.e - tn.b.a) == 0 || (S = O.b.e.f, !D(S, 10)) ? !1 : (j = u(S, 10), _ = n.i[j.p], X = j.c ? qr(j.c.a, j, 0) : -1, c = St, X > 0 && (r = u(sn(j.c.a, X - 1), 10), s = n.i[r.p], yn = y.Math.ceil(jg(n.n, r, j)), c = _.a.e - j.d.d - (s.a.e + r.o.b + r.d.a) - yn), l = St, X < j.c.a.c.length - 1 && (h = u(sn(j.c.a, X + 1), 10), a = n.i[h.p], yn = y.Math.ceil(jg(n.n, h, j)), l = a.a.e - h.d.d - (_.a.e + j.o.b + j.d.a) - yn), t && (Mf(), Ks(yh), y.Math.abs(c - l) <= yh || c == l || isNaN(c) && isNaN(l)) ? !0 : (i = fN(O.a), f = -fN(O.b), d = -fN(tn.a), I = fN(tn.b), k = O.a.e.e - O.a.a - (O.b.e.e - O.b.a) > 0 && tn.a.e.e - tn.a.a - (tn.b.e.e - tn.b.a) < 0, m = O.a.e.e - O.a.a - (O.b.e.e - O.b.a) < 0 && tn.a.e.e - tn.a.a - (tn.b.e.e - tn.b.a) > 0, p = O.a.e.e + O.b.a < tn.b.e.e + tn.a.a, g = O.a.e.e + O.b.a > tn.b.e.e + tn.a.a, N = 0, !k && !m && (g ? c + d > 0 ? N = d : l - i > 0 && (N = i) : p && (c + f > 0 ? N = f : l - I > 0 && (N = I))), _.a.e += N, _.b && (_.d.e += N), !1)); + } + function tzn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + if (i = new Ho(e.Lf().a, e.Lf().b, e.Mf().a, e.Mf().b), r = new mp(), n.c) + for (s = new C(e.Rf()); s.a < s.c.c.length; ) + c = u(E(s), 187), r.c = c.Lf().a + e.Lf().a, r.d = c.Lf().b + e.Lf().b, r.b = c.Mf().a, r.a = c.Mf().b, D5(i, r); + for (l = new C(e.Xf()); l.a < l.c.c.length; ) { + if (h = u(E(l), 852), a = h.Lf().a + e.Lf().a, d = h.Lf().b + e.Lf().b, n.e && (r.c = a, r.d = d, r.b = h.Mf().a, r.a = h.Mf().b, D5(i, r)), n.d) + for (s = new C(h.Rf()); s.a < s.c.c.length; ) + c = u(E(s), 187), r.c = c.Lf().a + a, r.d = c.Lf().b + d, r.b = c.Mf().a, r.a = c.Mf().b, D5(i, r); + if (n.b) { + if (g = new V(-t, -t), u(e.of((He(), Jw)), 181).Hc((Uu(), Ia))) + for (s = new C(h.Rf()); s.a < s.c.c.length; ) + c = u(E(s), 187), g.a += c.Mf().a + t, g.b += c.Mf().b + t; + g.a = y.Math.max(g.a, 0), g.b = y.Math.max(g.b, 0), EUn(i, h.Wf(), h.Uf(), e, h, g, t); + } + } + n.b && EUn(i, e.Wf(), e.Uf(), e, null, null, t), f = new qL(e.Vf()), f.d = y.Math.max(0, e.Lf().b - i.d), f.a = y.Math.max(0, i.d + i.a - (e.Lf().b + e.Mf().b)), f.b = y.Math.max(0, e.Lf().a - i.c), f.c = y.Math.max(0, i.c + i.b - (e.Lf().a + e.Mf().a)), e.Zf(f); + } + function uLe() { + var n = ["\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005", "\\u0006", "\\u0007", "\\b", "\\t", "\\n", "\\u000B", "\\f", "\\r", "\\u000E", "\\u000F", "\\u0010", "\\u0011", "\\u0012", "\\u0013", "\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019", "\\u001A", "\\u001B", "\\u001C", "\\u001D", "\\u001E", "\\u001F"]; + return n[34] = '\\"', n[92] = "\\\\", n[173] = "\\u00ad", n[1536] = "\\u0600", n[1537] = "\\u0601", n[1538] = "\\u0602", n[1539] = "\\u0603", n[1757] = "\\u06dd", n[1807] = "\\u070f", n[6068] = "\\u17b4", n[6069] = "\\u17b5", n[8203] = "\\u200b", n[8204] = "\\u200c", n[8205] = "\\u200d", n[8206] = "\\u200e", n[8207] = "\\u200f", n[8232] = "\\u2028", n[8233] = "\\u2029", n[8234] = "\\u202a", n[8235] = "\\u202b", n[8236] = "\\u202c", n[8237] = "\\u202d", n[8238] = "\\u202e", n[8288] = "\\u2060", n[8289] = "\\u2061", n[8290] = "\\u2062", n[8291] = "\\u2063", n[8292] = "\\u2064", n[8298] = "\\u206a", n[8299] = "\\u206b", n[8300] = "\\u206c", n[8301] = "\\u206d", n[8302] = "\\u206e", n[8303] = "\\u206f", n[65279] = "\\ufeff", n[65529] = "\\ufff9", n[65530] = "\\ufffa", n[65531] = "\\ufffb", n; + } + function izn(n) { + c0(n, new pd(jz(UE(t0(Zd(e0(n0(new _a(), cu), "ELK Force"), "Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported."), new Wbn()), cu), yt((Em(), vO), A(T(kO, 1), G, 245, 0, [pO]))))), Q(n, cu, Ny, Y(1)), Q(n, cu, jw, 80), Q(n, cu, eR, 5), Q(n, cu, l3, Um), Q(n, cu, uS, Y(1)), Q(n, cu, t8, (_n(), !0)), Q(n, cu, J0, mon), Q(n, cu, i8, rn(won)), Q(n, cu, tR, rn(von)), Q(n, cu, oS, !1), Q(n, cu, r8, rn(pon)), Q(n, cu, Gm, rn(JYn)), Q(n, cu, a3, rn(QYn)), Q(n, cu, r2, rn(WYn)), Q(n, cu, zm, rn(VYn)), Q(n, cu, Xm, rn(ZYn)), Q(n, cu, cS, rn(gon)), Q(n, cu, ZB, rn(y_)), Q(n, cu, Vtn, rn(kP)), Q(n, cu, nR, rn(k_)), Q(n, cu, Wtn, rn(kon)), Q(n, cu, $y, rn(cZn)), Q(n, cu, xy, rn(uZn)), Q(n, cu, Fy, rn(rZn)), Q(n, cu, By, rn(iZn)), Q(n, cu, Q0, yon); + } + function sa(n, e) { + nt(); + var t, i, r, c, s, f, h, l, a, d, g, p, m; + if (c6(qv) == 0) { + for (d = K(NNe, J, 122, yse.length, 0, 1), s = 0; s < d.length; s++) + d[s] = new yo(4); + for (i = new i6(), c = 0; c < h0n.length; c++) { + if (a = new yo(4), c < 84 ? (f = c * 2, p = (zn(f, BK.length), BK.charCodeAt(f)), g = (zn(f + 1, BK.length), BK.charCodeAt(f + 1)), Fc(a, p, g)) : (f = (c - 84) * 2, Fc(a, l0n[f], l0n[f + 1])), h = h0n[c], An(h, "Specials") && Fc(a, 65520, 65533), An(h, WJn) && (Fc(a, 983040, 1048573), Fc(a, 1048576, 1114109)), Or(qv, h, a), Or(R9, h, ww(a)), l = i.a.length, 0 < l ? i.a = qo(i.a, 0, 0) : 0 > l && (i.a += ITn(K(fs, wh, 28, -l, 15, 1))), i.a += "Is", th(h, bu(32)) >= 0) + for (r = 0; r < h.length; r++) + zn(r, h.length), h.charCodeAt(r) != 32 && M4(i, (zn(r, h.length), h.charCodeAt(r))); + else + i.a += "" + h; + ZY(i.a, h, !0); + } + ZY(FK, "Cn", !1), ZY(tun, "Cn", !0), t = new yo(4), Fc(t, 0, rv), Or(qv, "ALL", t), Or(R9, "ALL", ww(t)), !cg && (cg = new de()), Or(cg, FK, FK), !cg && (cg = new de()), Or(cg, tun, tun), !cg && (cg = new de()), Or(cg, "ALL", "ALL"); + } + return m = u($c(e ? qv : R9, n), 138), m; + } + function rzn(n) { + c0(n, new pd(jz(UE(t0(Zd(e0(n0(new _a(), uu), "ELK Mr. Tree"), "Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."), new g4n()), gVn), jn((Em(), mU))))), Q(n, uu, J0, Oln), Q(n, uu, jw, 20), Q(n, uu, $R, 3), Q(n, uu, l3, Um), Q(n, uu, Ny, Y(1)), Q(n, uu, t8, (_n(), !0)), Q(n, uu, Uy, rn(Tln)), Q(n, uu, xR, Aln), Q(n, uu, i8, rn(jre)), Q(n, uu, AS, rn(Ere)), Q(n, uu, r2, rn(Mre)), Q(n, uu, Gm, rn(Tre)), Q(n, uu, d3, rn(Are)), Q(n, uu, a3, rn(Sre)), Q(n, uu, zm, rn(Cre)), Q(n, uu, r8, rn(Pln)), Q(n, uu, Xm, rn(Pre)), Q(n, uu, Drn, rn($ln)), Q(n, uu, Nrn, rn(Dln)), Q(n, uu, $y, rn(Lre)), Q(n, uu, xy, rn(Nre)), Q(n, uu, Fy, rn(Dre)), Q(n, uu, By, rn(Ore)), Q(n, uu, Q0, Nln), Q(n, uu, Orn, rn(O2)), Q(n, uu, Lrn, rn(sq)), Q(n, uu, Irn, rn(Ah)), Q(n, uu, Srn, rn(Mln)), Q(n, uu, Prn, rn(Sln)); + } + function czn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g; + for (l = u(u(ot(n.r, e), 21), 87), s = Rye(n, e), t = n.u.Hc((Uu(), T9)), h = l.Kc(); h.Ob(); ) + if (f = u(h.Pb(), 117), !(!f.c || f.c.d.c.length <= 0)) { + switch (g = f.b.Mf(), a = f.c, d = a.i, d.b = (c = a.n, a.e.a + c.b + c.c), d.a = (r = a.n, a.e.b + r.d + r.a), e.g) { + case 1: + f.a ? (d.c = (g.a - d.b) / 2, df(a, (Hu(), pa))) : s || t ? (d.c = -d.b - n.s, df(a, (Hu(), zs))) : (d.c = g.a + n.s, df(a, (Hu(), Ch))), d.d = -d.a - n.t, ch(a, (du(), Xs)); + break; + case 3: + f.a ? (d.c = (g.a - d.b) / 2, df(a, (Hu(), pa))) : s || t ? (d.c = -d.b - n.s, df(a, (Hu(), zs))) : (d.c = g.a + n.s, df(a, (Hu(), Ch))), d.d = g.b + n.t, ch(a, (du(), kf)); + break; + case 2: + f.a ? (i = n.v ? d.a : u(sn(a.d, 0), 187).Mf().b, d.d = (g.b - i) / 2, ch(a, (du(), ma))) : s || t ? (d.d = -d.a - n.t, ch(a, (du(), Xs))) : (d.d = g.b + n.t, ch(a, (du(), kf))), d.c = g.a + n.s, df(a, (Hu(), Ch)); + break; + case 4: + f.a ? (i = n.v ? d.a : u(sn(a.d, 0), 187).Mf().b, d.d = (g.b - i) / 2, ch(a, (du(), ma))) : s || t ? (d.d = -d.a - n.t, ch(a, (du(), Xs))) : (d.d = g.b + n.t, ch(a, (du(), kf))), d.c = -d.b - n.s, df(a, (Hu(), zs)); + } + s = !1; + } + } + function oLe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j, S, I; + if (g = !1, d = !1, mg(u(v(i, (cn(), Ht)), 101))) { + s = !1, f = !1; + n: + for (m = new C(i.j); m.a < m.c.c.length; ) + for (p = u(E(m), 12), j = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [new n4(p), new ip(p)]))); pe(j); ) + if (k = u(fe(j), 12), !on(un(v(k.i, q8)))) { + if (p.j == (en(), Xn)) { + s = !0; + break n; + } + if (p.j == ae) { + f = !0; + break n; + } + } + g = f && !s, d = s && !f; + } + if (!g && !d && i.b.c.length != 0) { + for (a = 0, l = new C(i.b); l.a < l.c.c.length; ) + h = u(E(l), 72), a += h.n.b + h.o.b / 2; + a /= i.b.c.length, I = a >= i.o.b / 2; + } else + I = !d; + I ? (S = u(v(i, (W(), P3)), 15), S ? g ? c = S : (r = u(v(i, C3), 15), r ? S.gc() <= r.gc() ? c = S : c = r : (c = new Z(), U(i, C3, c))) : (c = new Z(), U(i, P3, c))) : (r = u(v(i, (W(), C3)), 15), r ? d ? c = r : (S = u(v(i, P3), 15), S ? r.gc() <= S.gc() ? c = r : c = S : (c = new Z(), U(i, P3, c))) : (c = new Z(), U(i, C3, c))), c.Fc(n), U(n, (W(), tI), t), e.d == t ? (Di(e, null), t.e.c.length + t.g.c.length == 0 && ic(t, null), j6e(t)) : (Yi(e, null), t.e.c.length + t.g.c.length == 0 && ic(t, null)), vo(e.a); + } + function sLe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te, xe, Lt; + for (t.Ug("MinWidth layering", 1), p = e.b, tn = e.a, Lt = u(v(e, (cn(), ihn)), 17).a, f = u(v(e, rhn), 17).a, n.b = $(R(v(e, Ws))), n.d = St, N = new C(tn); N.a < N.c.c.length; ) + I = u(E(N), 10), I.k == (Vn(), Xt) && (Fn = I.o.b, n.d = y.Math.min(n.d, Fn)); + for (n.d = y.Math.max(1, n.d), yn = tn.c.length, n.c = K(ye, _e, 28, yn, 15, 1), n.f = K(ye, _e, 28, yn, 15, 1), n.e = K(Oi, Ar, 28, yn, 15, 1), l = 0, n.a = 0, _ = new C(tn); _.a < _.c.c.length; ) + I = u(E(_), 10), I.p = l++, n.c[I.p] = KFn(Ei(I)), n.f[I.p] = KFn(Qt(I)), n.e[I.p] = I.o.b / n.d, n.a += n.e[I.p]; + for (n.b /= n.d, n.a /= yn, X = YEe(tn), Zt(tn, qW(new L7n(n))), k = St, m = et, s = null, xe = Lt, te = Lt, c = f, r = f, Lt < 0 && (xe = u(eln.a.Id(), 17).a, te = u(eln.b.Id(), 17).a), f < 0 && (c = u(nln.a.Id(), 17).a, r = u(nln.b.Id(), 17).a), Rn = xe; Rn <= te; Rn++) + for (i = c; i <= r; i++) + kn = HPe(n, Rn, i, tn, X), S = $(R(kn.a)), g = u(kn.b, 15), j = g.gc(), (S < k || S == k && j < m) && (k = S, m = j, s = g); + for (d = s.Kc(); d.Ob(); ) { + for (a = u(d.Pb(), 15), h = new Nc(e), O = a.Kc(); O.Ob(); ) + I = u(O.Pb(), 10), xi(I, h); + Kn(p.c, h); + } + Yk(p), tn.c.length = 0, t.Vg(); + } + function fLe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te; + if (t.Ug("Spline edge routing", 1), e.b.c.length == 0) { + e.f.a = 0, t.Vg(); + return; + } + I = $(R(v(e, (cn(), A2)))), f = $(R(v(e, Rd))), s = $(R(v(e, M2))), S = u(v(e, MH), 350), yn = S == (um(), Y8), tn = $(R(v(e, Wfn))), n.d = e, n.j.c.length = 0, n.a.c.length = 0, Ku(n.k), h = u(sn(e.b, 0), 30), a = SC(h.a, (OA(), Dj)), m = u(sn(e.b, e.b.c.length - 1), 30), d = SC(m.a, Dj), k = new C(e.b), j = null, te = 0; + do { + for (O = k.a < k.c.c.length ? u(E(k), 30) : null, qDe(n, j, O), gPe(n), kn = ghe(ave(EM(ut(new Tn(null, new In(n.i, 16)), new R3n()), new K3n()))), Rn = 0, N = te, g = !j || a && j == h, p = !O || d && O == m, kn > 0 ? (l = 0, j && (l += f), l += (kn - 1) * s, O && (l += f), yn && O && (l = y.Math.max(l, STe(O, s, I, tn))), l < I && !g && !p && (Rn = (I - l) / 2, l = I), N += l) : !g && !p && (N += I), O && Wen(O, N), X = new C(n.i); X.a < X.c.c.length; ) + _ = u(E(X), 131), _.a.c = te, _.a.b = N - te, _.F = Rn, _.p = !j; + li(n.a, n.i), te = N, O && (te += O.c.a), j = O, g = p; + } while (O); + for (r = new C(n.j); r.a < r.c.c.length; ) + i = u(E(r), 18), c = eve(n, i), U(i, (W(), C2), c), Fn = KTe(n, i), U(i, Ld, Fn); + e.f.a = te, n.d = null, t.Vg(); + } + function hLe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn; + for (n.b = e, n.a = u(v(e, (cn(), Qfn)), 17).a, n.c = u(v(e, Zfn), 17).a, n.c == 0 && (n.c = et), j = new Fi(e.b, 0); j.b < j.d.gc(); ) { + for (k = (oe(j.b < j.d.gc()), u(j.d.Xb(j.c = j.b++), 30)), f = new Z(), a = -1, N = -1, O = new C(k.a); O.a < O.c.c.length; ) + I = u(E(O), 10), wl((L7(), new ie(ce(Cl(I).a.Kc(), new En())))) >= n.a && (i = UPe(n, I), a = y.Math.max(a, i.b), N = y.Math.max(N, i.d), nn(f, new wi(I, i))); + for (yn = new Z(), l = 0; l < a; ++l) + w0(yn, 0, (oe(j.b > 0), j.a.Xb(j.c = --j.b), kn = new Nc(n.b), Kb(j, kn), oe(j.b < j.d.gc()), j.d.Xb(j.c = j.b++), kn)); + for (s = new C(f); s.a < s.c.c.length; ) + if (r = u(E(s), 42), p = u(r.b, 580).a, !!p) + for (g = new C(p); g.a < g.c.c.length; ) + d = u(E(g), 10), MZ(n, d, CP, yn); + for (t = new Z(), h = 0; h < N; ++h) + nn(t, (Fn = new Nc(n.b), Kb(j, Fn), Fn)); + for (c = new C(f); c.a < c.c.c.length; ) + if (r = u(E(c), 42), tn = u(r.b, 580).c, !!tn) + for (X = new C(tn); X.a < X.c.c.length; ) + _ = u(E(X), 10), MZ(n, _, MP, t); + } + for (S = new Fi(e.b, 0); S.b < S.d.gc(); ) + m = (oe(S.b < S.d.gc()), u(S.d.Xb(S.c = S.b++), 30)), m.a.c.length == 0 && bo(S); + } + function uzn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + if (k = n.i != 0, O = !1, S = null, fo(n.e)) { + if (a = e.gc(), a > 0) { + for (g = a < 100 ? null : new F1(a), l = new KQ(e), m = l.g, S = K(ye, _e, 28, a, 15, 1), i = 0, N = new P0(a), r = 0; r < n.i; ++r) { + f = n.g[r], p = f; + n: + for (I = 0; I < 2; ++I) { + for (h = a; --h >= 0; ) + if (p != null ? rt(p, m[h]) : x(p) === x(m[h])) { + S.length <= i && (j = S, S = K(ye, _e, 28, 2 * S.length, 15, 1), Oc(j, 0, S, 0, i)), S[i++] = r, ve(N, m[h]); + break n; + } + if (p = p, x(p) === x(f)) + break; + } + } + if (l = N, m = N.g, a = i, i > S.length && (j = S, S = K(ye, _e, 28, i, 15, 1), Oc(j, 0, S, 0, i)), i > 0) { + for (O = !0, c = 0; c < i; ++c) + p = m[c], g = fSn(n, u(p, 76), g); + for (s = i; --s >= 0; ) + Jp(n, S[s]); + if (i != a) { + for (r = a; --r >= i; ) + Jp(l, r); + j = S, S = K(ye, _e, 28, i, 15, 1), Oc(j, 0, S, 0, i); + } + e = l; + } + } + } else + for (e = M7e(n, e), r = n.i; --r >= 0; ) + e.Hc(n.g[r]) && (Jp(n, r), O = !0); + if (O) { + if (S != null) { + for (t = e.gc(), d = t == 1 ? W6(n, 4, e.Kc().Pb(), null, S[0], k) : W6(n, 6, e, S, S[0], k), g = t < 100 ? null : new F1(t), r = e.Kc(); r.Ob(); ) + p = r.Pb(), g = PV(n, u(p, 76), g); + g ? (g.nj(d), g.oj()) : it(n.e, d); + } else { + for (g = Oae(e.gc()), r = e.Kc(); r.Ob(); ) + p = r.Pb(), g = PV(n, u(p, 76), g); + g && g.oj(); + } + return !0; + } else + return !1; + } + function lLe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + for (t = new yRn(e), t.a || KSe(e), l = FAe(e), h = new M0(), j = new Eqn(), k = new C(e.a); k.a < k.c.c.length; ) + for (m = u(E(k), 10), r = new ie(ce(Qt(m).a.Kc(), new En())); pe(r); ) + i = u(fe(r), 18), (i.c.i.k == (Vn(), ni) || i.d.i.k == ni) && (a = ZOe(n, i, l, j), Pn(h, Ex(a.d), a.a)); + for (s = new Z(), O = u(v(t.c, (W(), Nl)), 21).Kc(); O.Ob(); ) { + switch (I = u(O.Pb(), 64), p = j.c[I.g], g = j.b[I.g], f = j.a[I.g], c = null, S = null, I.g) { + case 4: + c = new Ho(n.d.a, p, l.b.a - n.d.a, g - p), S = new Ho(n.d.a, p, f, g - p), b0(l, new V(c.c + c.b, c.d)), b0(l, new V(c.c + c.b, c.d + c.a)); + break; + case 2: + c = new Ho(l.a.a, p, n.c.a - l.a.a, g - p), S = new Ho(n.c.a - f, p, f, g - p), b0(l, new V(c.c, c.d)), b0(l, new V(c.c, c.d + c.a)); + break; + case 1: + c = new Ho(p, n.d.b, g - p, l.b.b - n.d.b), S = new Ho(p, n.d.b, g - p, f), b0(l, new V(c.c, c.d + c.a)), b0(l, new V(c.c + c.b, c.d + c.a)); + break; + case 3: + c = new Ho(p, l.a.b, g - p, n.c.b - l.a.b), S = new Ho(p, n.c.b - f, g - p, f), b0(l, new V(c.c, c.d)), b0(l, new V(c.c + c.b, c.d)); + } + c && (d = new Gyn(), d.d = I, d.b = c, d.c = S, d.a = SM(u(ot(h, Ex(I)), 21)), Kn(s.c, d)); + } + return li(t.b, s), t.d = H6e(dOe(l)), t; + } + function ozn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k; + if (t.p[e.p] == null) { + f = !0, t.p[e.p] = 0, s = e, k = t.o == (Sf(), Kd) ? ai : St; + do + r = n.b.e[s.p], c = s.c.a.c.length, t.o == Kd && r > 0 || t.o == zf && r < c - 1 ? (h = null, l = null, t.o == zf ? h = u(sn(s.c.a, r + 1), 10) : h = u(sn(s.c.a, r - 1), 10), l = t.g[h.p], ozn(n, l, t), k = n.e.wg(k, e, s), t.j[e.p] == e && (t.j[e.p] = t.j[l.p]), t.j[e.p] == t.j[l.p] ? (m = jg(n.d, s, h), t.o == zf ? (i = $(t.p[e.p]), d = $(t.p[l.p]) + $(t.d[h.p]) - h.d.d - m - s.d.a - s.o.b - $(t.d[s.p]), f ? (f = !1, t.p[e.p] = y.Math.min(d, k)) : t.p[e.p] = y.Math.min(i, y.Math.min(d, k))) : (i = $(t.p[e.p]), d = $(t.p[l.p]) + $(t.d[h.p]) + h.o.b + h.d.a + m + s.d.d - $(t.d[s.p]), f ? (f = !1, t.p[e.p] = y.Math.max(d, k)) : t.p[e.p] = y.Math.max(i, y.Math.max(d, k)))) : (m = $(R(v(n.a, (cn(), pb)))), p = dxn(n, t.j[e.p]), a = dxn(n, t.j[l.p]), t.o == zf ? (g = $(t.p[e.p]) + $(t.d[s.p]) + s.o.b + s.d.a + m - ($(t.p[l.p]) + $(t.d[h.p]) - h.d.d), KOn(p, a, g)) : (g = $(t.p[e.p]) + $(t.d[s.p]) - s.d.d - $(t.p[l.p]) - $(t.d[h.p]) - h.o.b - h.d.a - m, KOn(p, a, g)))) : k = n.e.wg(k, e, s), s = t.a[s.p]; + while (s != e); + qfe(n.e, e); + } + } + function aLe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn; + if (t = $(R(v(n.a.j, (cn(), qfn)))), t < -1 || !n.a.i || Ep(u(v(n.a.o, Ht), 101)) || uc(n.a.o, (en(), Zn)).gc() < 2 && uc(n.a.o, Wn).gc() < 2) + return !0; + if (n.a.c.kg()) + return !1; + for (_ = 0, N = 0, O = new Z(), h = n.a.e, l = 0, a = h.length; l < a; ++l) { + for (f = h[l], g = f, p = 0, k = g.length; p < k; ++p) { + if (d = g[p], d.k == (Vn(), Hc)) { + Kn(O.c, d); + continue; + } + for (i = n.b[d.c.p][d.p], d.k == ni ? (i.b = 1, u(v(d, (W(), st)), 12).j == (en(), Zn) && (N += i.a)) : (kn = uc(d, (en(), Wn)), kn.dc() || !yL(kn, new Zpn()) ? i.c = 1 : (r = uc(d, Zn), (r.dc() || !yL(r, new Ypn())) && (_ += i.a))), s = new ie(ce(Qt(d).a.Kc(), new En())); pe(s); ) + c = u(fe(s), 18), _ += i.c, N += i.b, yn = c.d.i, QJ(n, i, yn); + for (S = Eo(A(T(Oo, 1), Bn, 20, 0, [uc(d, (en(), Xn)), uc(d, ae)])), tn = new ie(new UX(S.a.length, S.a)); pe(tn); ) + X = u(fe(tn), 12), I = u(v(X, (W(), Gu)), 10), I && (_ += i.c, N += i.b, QJ(n, i, I)); + } + for (m = new C(O); m.a < m.c.c.length; ) + for (d = u(E(m), 10), i = n.b[d.c.p][d.p], s = new ie(ce(Qt(d).a.Kc(), new En())); pe(s); ) + c = u(fe(s), 18), _ += i.c, N += i.b, yn = c.d.i, QJ(n, i, yn); + O.c.length = 0; + } + return e = _ + N, j = e == 0 ? St : (_ - N) / e, j >= t; + } + function dLe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te; + for (O = e, I = new M0(), N = new M0(), a = S0(O, Scn), i = new IIn(n, t, I, N), Lje(i.a, i.b, i.c, i.d, a), h = (tn = I.i, tn || (I.i = new Mg(I, I.c))), kn = h.Kc(); kn.Ob(); ) + for (yn = u(kn.Pb(), 166), r = u(ot(I, yn), 21), k = r.Kc(); k.Ob(); ) + if (m = k.Pb(), _ = u(Lg(n.d, m), 166), _) + f = (!yn.e && (yn.e = new Nn(Mt, yn, 10, 9)), yn.e), ve(f, _); + else + throw s = bl(O, jh), g = kWn + m + yWn + s, p = g + tv, M(new nh(p)); + for (l = (X = N.i, X || (N.i = new Mg(N, N.c))), Rn = l.Kc(); Rn.Ob(); ) + for (Fn = u(Rn.Pb(), 166), c = u(ot(N, Fn), 21), S = c.Kc(); S.Ob(); ) + if (j = S.Pb(), _ = u(Lg(n.d, j), 166), _) + d = (!Fn.g && (Fn.g = new Nn(Mt, Fn, 9, 10)), Fn.g), ve(d, _); + else + throw s = bl(O, jh), g = kWn + j + yWn + s, p = g + tv, M(new nh(p)); + !t.b && (t.b = new Nn(he, t, 4, 7)), t.b.i != 0 && (!t.c && (t.c = new Nn(he, t, 5, 8)), t.c.i != 0) && (!t.b && (t.b = new Nn(he, t, 4, 7)), t.b.i <= 1 && (!t.c && (t.c = new Nn(he, t, 5, 8)), t.c.i <= 1)) && (!t.a && (t.a = new q(Mt, t, 6, 6)), t.a).i == 1 && (te = u(L((!t.a && (t.a = new q(Mt, t, 6, 6)), t.a), 0), 166), !Sx(te) && !Px(te) && (mT(te, u(L((!t.b && (t.b = new Nn(he, t, 4, 7)), t.b), 0), 84)), vT(te, u(L((!t.c && (t.c = new Nn(he, t, 5, 8)), t.c), 0), 84)))); + } + function bLe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn; + for (O = n.a, N = 0, _ = O.length; N < _; ++N) { + for (I = O[N], l = et, a = et, m = new C(I.e); m.a < m.c.c.length; ) + g = u(E(m), 10), s = g.c ? qr(g.c.a, g, 0) : -1, s > 0 ? (d = u(sn(g.c.a, s - 1), 10), yn = jg(n.b, g, d), j = g.n.b - g.d.d - (d.n.b + d.o.b + d.d.a + yn)) : j = g.n.b - g.d.d, l = y.Math.min(j, l), s < g.c.a.c.length - 1 ? (d = u(sn(g.c.a, s + 1), 10), yn = jg(n.b, g, d), S = d.n.b - d.d.d - (g.n.b + g.o.b + g.d.a + yn)) : S = 2 * g.n.b, a = y.Math.min(S, a); + for (h = et, c = !1, r = u(sn(I.e, 0), 10), Fn = new C(r.j); Fn.a < Fn.c.c.length; ) + for (kn = u(E(Fn), 12), k = r.n.b + kn.n.b + kn.a.b, i = new C(kn.e); i.a < i.c.c.length; ) + t = u(E(i), 18), X = t.c, e = X.i.n.b + X.n.b + X.a.b - k, y.Math.abs(e) < y.Math.abs(h) && y.Math.abs(e) < (e < 0 ? l : a) && (h = e, c = !0); + for (f = u(sn(I.e, I.e.c.length - 1), 10), tn = new C(f.j); tn.a < tn.c.c.length; ) + for (X = u(E(tn), 12), k = f.n.b + X.n.b + X.a.b, i = new C(X.g); i.a < i.c.c.length; ) + t = u(E(i), 18), kn = t.d, e = kn.i.n.b + kn.n.b + kn.a.b - k, y.Math.abs(e) < y.Math.abs(h) && y.Math.abs(e) < (e < 0 ? l : a) && (h = e, c = !0); + if (c && h != 0) + for (p = new C(I.e); p.a < p.c.c.length; ) + g = u(E(p), 10), g.n.b += h; + } + } + function wLe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S; + if (i = new Z(), r = et, c = et, s = et, t) + for (r = n.f.a, k = new C(e.j); k.a < k.c.c.length; ) + for (m = u(E(k), 12), h = new C(m.g); h.a < h.c.c.length; ) + f = u(E(h), 18), f.a.b != 0 && (a = u(g4(f.a), 8), a.a < r && (c = r - a.a, s = et, i.c.length = 0, r = a.a), a.a <= r && (Kn(i.c, f), f.a.b > 1 && (s = y.Math.min(s, y.Math.abs(u(Zo(f.a, 1), 8).b - a.b))))); + else + for (k = new C(e.j); k.a < k.c.c.length; ) + for (m = u(E(k), 12), h = new C(m.e); h.a < h.c.c.length; ) + f = u(E(h), 18), f.a.b != 0 && (g = u($s(f.a), 8), g.a > r && (c = g.a - r, s = et, i.c.length = 0, r = g.a), g.a >= r && (Kn(i.c, f), f.a.b > 1 && (s = y.Math.min(s, y.Math.abs(u(Zo(f.a, f.a.b - 2), 8).b - g.b))))); + if (i.c.length != 0 && c > e.o.a / 2 && s > e.o.b / 2) { + for (p = new Ic(), ic(p, e), pi(p, (en(), Xn)), p.n.a = e.o.a / 2, S = new Ic(), ic(S, e), pi(S, ae), S.n.a = e.o.a / 2, S.n.b = e.o.b, h = new C(i); h.a < h.c.c.length; ) + f = u(E(h), 18), t ? (l = u(UL(f.a), 8), j = f.a.b == 0 ? Pf(f.d) : u(g4(f.a), 8), j.b >= l.b ? Yi(f, S) : Yi(f, p)) : (l = u(cbe(f.a), 8), j = f.a.b == 0 ? Pf(f.c) : u($s(f.a), 8), j.b >= l.b ? Di(f, S) : Di(f, p)), d = u(v(f, (cn(), xr)), 75), d && rw(d, l, !0); + e.n.a = r - e.o.a / 2; + } + } + function gLe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + for (f = ge(n.b, 0); f.b != f.d.c; ) + if (s = u(be(f), 40), !An(s.c, IS)) + for (l = _Ce(s, n), e == (ui(), Fr) || e == Xr ? Zt(l, new M4n()) : Zt(l, new T4n()), h = l.c.length, i = 0; i < h; i++) + a = (Ln(i, l.c.length), u(l.c[i], 65)).c, An(a.c, "n11"), !(on(un(v(s, (pt(), pln)))) && !MFn((Ln(i, l.c.length), u(l.c[i], 65)), n)) && (r = h == 1 ? 0.5 : (i + 1) / (h + 1), e == Fr ? (c = $(R(v(s, jf))), g = s.e.b + s.f.b * r, gg((Ln(i, l.c.length), u(l.c[i], 65)).a, new V(y.Math.min(c, s.e.a - t), g)), gg((Ln(i, l.c.length), u(l.c[i], 65)).a, new V(s.e.a, g))) : e == Xr ? (c = $(R(v(s, Js))) + t, g = s.e.b + s.f.b * r, gg((Ln(i, l.c.length), u(l.c[i], 65)).a, new V(c, g)), gg((Ln(i, l.c.length), u(l.c[i], 65)).a, new V(s.e.a + s.f.a, g))) : e == us ? (c = $(R(v(s, jf))), d = s.e.a + s.f.a * r, gg((Ln(i, l.c.length), u(l.c[i], 65)).a, new V(d, y.Math.min(s.e.b - t, c))), gg((Ln(i, l.c.length), u(l.c[i], 65)).a, new V(d, s.e.b))) : (c = $(R(v(s, Js))) + t, d = s.e.a + s.f.a * r, gg((Ln(i, l.c.length), u(l.c[i], 65)).a, new V(d, c)), gg((Ln(i, l.c.length), u(l.c[i], 65)).a, new V(d, s.e.b + s.f.b)))); + } + function my(n, e, t, i, r, c, s, f, h) { + var l, a, d, g, p, m, k; + switch (p = t, a = new Tl(h), qa(a, (Vn(), ni)), U(a, (W(), tfn), s), U(a, (cn(), Ht), (Li(), Uc)), k = $(R(n.of(_w))), U(a, _w, k), d = new Ic(), ic(d, a), e != Jf && e != Pa || (i >= 0 ? p = zp(f) : p = xk(zp(f)), n.qf(Cv, p)), l = new Ni(), g = !1, n.pf(wb) ? (ZX(l, u(n.of(wb), 8)), g = !0) : T1e(l, s.a / 2, s.b / 2), p.g) { + case 4: + U(a, ou, (Yo(), ya)), U(a, rI, (ld(), m2)), a.o.b = s.b, k < 0 && (a.o.a = -k), pi(d, (en(), Zn)), g || (l.a = s.a), l.a -= s.a; + break; + case 2: + U(a, ou, (Yo(), Fw)), U(a, rI, (ld(), pv)), a.o.b = s.b, k < 0 && (a.o.a = -k), pi(d, (en(), Wn)), g || (l.a = 0); + break; + case 1: + U(a, Dd, (vl(), k2)), a.o.a = s.a, k < 0 && (a.o.b = -k), pi(d, (en(), ae)), g || (l.b = s.b), l.b -= s.b; + break; + case 3: + U(a, Dd, (vl(), E3)), a.o.a = s.a, k < 0 && (a.o.b = -k), pi(d, (en(), Xn)), g || (l.b = 0); + } + if (ZX(d.n, l), U(a, wb, l), e == Gd || e == el || e == Uc) { + if (m = 0, e == Gd && n.pf(k1)) + switch (p.g) { + case 1: + case 2: + m = u(n.of(k1), 17).a; + break; + case 3: + case 4: + m = -u(n.of(k1), 17).a; + } + else + switch (p.g) { + case 4: + case 2: + m = c.b, e == el && (m /= r.b); + break; + case 1: + case 3: + m = c.a, e == el && (m /= r.a); + } + U(a, hb, m); + } + return U(a, gc, p), a; + } + function pLe() { + Cz(); + function n(i) { + var r = this; + this.dispatch = function(c) { + var s = c.data; + switch (s.cmd) { + case "algorithms": + var f = GY((Dn(), new J3(new ol(Da.b)))); + i.postMessage({ id: s.id, data: f }); + break; + case "categories": + var h = GY((Dn(), new J3(new ol(Da.c)))); + i.postMessage({ id: s.id, data: h }); + break; + case "options": + var l = GY((Dn(), new J3(new ol(Da.d)))); + i.postMessage({ id: s.id, data: l }); + break; + case "register": + kOe(s.algorithms), i.postMessage({ id: s.id }); + break; + case "layout": + WPe(s.graph, s.layoutOptions || {}, s.options || {}), i.postMessage({ id: s.id, data: s.graph }); + break; + } + }, this.saveDispatch = function(c) { + try { + r.dispatch(c); + } catch (s) { + i.postMessage({ id: c.data.id, error: s }); + } + }; + } + function e(i) { + var r = this; + this.dispatcher = new n({ postMessage: function(c) { + r.onmessage({ data: c }); + } }), this.postMessage = function(c) { + setTimeout(function() { + r.dispatcher.saveDispatch({ data: c }); + }, 0); + }; + } + if (typeof document === xB && typeof self !== xB) { + var t = new n(self); + self.onmessage = t.saveDispatch; + } else + typeof gt !== xB && gt.exports && (Object.defineProperty(Rr, "__esModule", { value: !0 }), gt.exports = { default: e, Worker: e }); + } + function szn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + for (a = new Tl(t), Ur(a, e), U(a, (W(), st), e), a.o.a = e.g, a.o.b = e.f, a.n.a = e.i, a.n.b = e.j, nn(t.a, a), Xe(n.a, e, a), ((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a).i != 0 || on(un(z(e, (cn(), Kw))))) && U(a, Zsn, (_n(), !0)), l = u(v(t, qc), 21), d = u(v(a, (cn(), Ht)), 101), d == (Li(), Pa) ? U(a, Ht, Jf) : d != Jf && l.Fc((mr(), kv)), g = 0, i = u(v(t, Do), 88), h = new ne((!e.c && (e.c = new q(Wu, e, 9, 9)), e.c)); h.e != h.i.gc(); ) + f = u(ue(h), 123), r = At(e), (x(z(r, Qh)) !== x((hh(), y1)) || x(z(r, Nd)) === x((s1(), gv)) || x(z(r, Nd)) === x((s1(), wv)) || on(un(z(r, ab))) || x(z(r, Bw)) !== x((bd(), Dw)) || x(z(r, ja)) === x((ps(), mb)) || x(z(r, ja)) === x((ps(), Gw)) || x(z(r, xd)) === x((d1(), Sv)) || x(z(r, xd)) === x((d1(), Pv))) && !on(un(z(e, lI))) && ht(f, dt, Y(g++)), on(un(z(f, Bd))) || ADe(n, f, a, l, i, d); + for (s = new ne((!e.n && (e.n = new q(Sr, e, 1, 7)), e.n)); s.e != s.i.gc(); ) + c = u(ue(s), 135), !on(un(z(c, Bd))) && c.a && nn(a.b, ex(c)); + return on(un(v(a, q8))) && l.Fc((mr(), ZP)), on(un(v(a, wI))) && (l.Fc((mr(), nI)), l.Fc(F8), U(a, Ht, Jf)), a; + } + function QF(n, e, t, i, r, c, s) { + var f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te, xe, Lt; + for (k = 0, Fn = 0, l = new C(n.b); l.a < l.c.c.length; ) + h = u(E(l), 163), h.c && FGn(h.c), k = y.Math.max(k, Au(h)), Fn += Au(h) * ao(h); + for (j = Fn / n.b.c.length, kn = mke(n.b, j), Fn += n.b.c.length * kn, k = y.Math.max(k, y.Math.sqrt(Fn * s)) + t.b, xe = t.b, Lt = t.d, p = 0, d = t.b + t.c, yn = new Ct(), Fe(yn, Y(0)), X = new Ct(), a = new Fi(n.b, 0), m = null, f = new Z(); a.b < a.d.gc(); ) + h = (oe(a.b < a.d.gc()), u(a.d.Xb(a.c = a.b++), 163)), te = Au(h), g = ao(h), xe + te > k && (c && (tr(X, p), tr(yn, Y(a.b - 1)), nn(n.d, m), f.c.length = 0), xe = t.b, Lt += p + e, p = 0, d = y.Math.max(d, t.b + t.c + te)), Kn(f.c, h), dRn(h, xe, Lt), d = y.Math.max(d, xe + te + t.c), p = y.Math.max(p, g), xe += te + e, m = h; + if (li(n.a, f), nn(n.d, u(sn(f, f.c.length - 1), 163)), d = y.Math.max(d, i), Rn = Lt + p + t.a, Rn < r && (p += r - Rn, Rn = r), c) + for (xe = t.b, a = new Fi(n.b, 0), tr(yn, Y(n.b.c.length)), tn = ge(yn, 0), I = u(be(tn), 17).a, tr(X, p), _ = ge(X, 0), N = 0; a.b < a.d.gc(); ) + a.b == I && (xe = t.b, N = $(R(be(_))), I = u(be(tn), 17).a), h = (oe(a.b < a.d.gc()), u(a.d.Xb(a.c = a.b++), 163)), GBn(h, N), a.b == I && (S = d - xe - t.c, O = Au(h), zBn(h, S), mBn(h, (S - O) / 2, 0)), xe += Au(h) + e; + return new V(d, Rn); + } + function mLe(n) { + n.N || (n.N = !0, n.b = hc(n, 0), Ft(n.b, 0), Ft(n.b, 1), Ft(n.b, 2), n.bb = hc(n, 1), Ft(n.bb, 0), Ft(n.bb, 1), n.fb = hc(n, 2), Ft(n.fb, 3), Ft(n.fb, 4), jt(n.fb, 5), n.qb = hc(n, 3), Ft(n.qb, 0), jt(n.qb, 1), jt(n.qb, 2), Ft(n.qb, 3), Ft(n.qb, 4), jt(n.qb, 5), Ft(n.qb, 6), n.a = We(n, 4), n.c = We(n, 5), n.d = We(n, 6), n.e = We(n, 7), n.f = We(n, 8), n.g = We(n, 9), n.i = We(n, 10), n.j = We(n, 11), n.k = We(n, 12), n.n = We(n, 13), n.o = We(n, 14), n.p = We(n, 15), n.q = We(n, 16), n.s = We(n, 17), n.r = We(n, 18), n.t = We(n, 19), n.u = We(n, 20), n.v = We(n, 21), n.w = We(n, 22), n.B = We(n, 23), n.A = We(n, 24), n.C = We(n, 25), n.D = We(n, 26), n.F = We(n, 27), n.G = We(n, 28), n.H = We(n, 29), n.J = We(n, 30), n.I = We(n, 31), n.K = We(n, 32), n.M = We(n, 33), n.L = We(n, 34), n.P = We(n, 35), n.Q = We(n, 36), n.R = We(n, 37), n.S = We(n, 38), n.T = We(n, 39), n.U = We(n, 40), n.V = We(n, 41), n.X = We(n, 42), n.W = We(n, 43), n.Y = We(n, 44), n.Z = We(n, 45), n.$ = We(n, 46), n._ = We(n, 47), n.ab = We(n, 48), n.cb = We(n, 49), n.db = We(n, 50), n.eb = We(n, 51), n.gb = We(n, 52), n.hb = We(n, 53), n.ib = We(n, 54), n.jb = We(n, 55), n.kb = We(n, 56), n.lb = We(n, 57), n.mb = We(n, 58), n.nb = We(n, 59), n.ob = We(n, 60), n.pb = We(n, 61)); + } + function vLe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + if (I = 0, e.f.a == 0) + for (j = new C(n); j.a < j.c.c.length; ) + m = u(E(j), 10), I = y.Math.max(I, m.n.a + m.o.a + m.d.c); + else + I = e.f.a - e.c.a; + for (I -= e.c.a, k = new C(n); k.a < k.c.c.length; ) { + switch (m = u(E(k), 10), Jv(m.n, I - m.o.a), JV(m.f), URn(m), (m.q ? m.q : (Dn(), Dn(), Vh))._b((cn(), qw)) && Jv(u(v(m, qw), 8), I - m.o.a), u(v(m, Mh), 255).g) { + case 1: + U(m, Mh, (Bh(), Uj)); + break; + case 2: + U(m, Mh, (Bh(), qj)); + } + for (S = m.o, N = new C(m.j); N.a < N.c.c.length; ) { + for (O = u(E(N), 12), Jv(O.n, S.a - O.o.a), Jv(O.a, O.o.a), pi(O, Txn(O.j)), s = u(v(O, k1), 17), s && U(O, k1, Y(-s.a)), c = new C(O.g); c.a < c.c.c.length; ) { + for (r = u(E(c), 18), i = ge(r.a, 0); i.b != i.d.c; ) + t = u(be(i), 8), t.a = I - t.a; + if (l = u(v(r, xr), 75), l) + for (h = ge(l, 0); h.b != h.d.c; ) + f = u(be(h), 8), f.a = I - f.a; + for (g = new C(r.b); g.a < g.c.c.length; ) + a = u(E(g), 72), Jv(a.n, I - a.o.a); + } + for (p = new C(O.f); p.a < p.c.c.length; ) + a = u(E(p), 72), Jv(a.n, O.o.a - a.o.a); + } + for (m.k == (Vn(), ni) && (U(m, (W(), gc), Txn(u(v(m, gc), 64))), uje(m)), d = new C(m.b); d.a < d.c.c.length; ) + a = u(E(d), 72), URn(a), Jv(a.n, S.a - a.o.a); + } + } + function kLe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + if (I = 0, e.f.b == 0) + for (j = new C(n); j.a < j.c.c.length; ) + m = u(E(j), 10), I = y.Math.max(I, m.n.b + m.o.b + m.d.a); + else + I = e.f.b - e.c.b; + for (I -= e.c.b, k = new C(n); k.a < k.c.c.length; ) { + switch (m = u(E(k), 10), Wv(m.n, I - m.o.b), QV(m.f), GRn(m), (m.q ? m.q : (Dn(), Dn(), Vh))._b((cn(), qw)) && Wv(u(v(m, qw), 8), I - m.o.b), u(v(m, Mh), 255).g) { + case 3: + U(m, Mh, (Bh(), ZI)); + break; + case 4: + U(m, Mh, (Bh(), eO)); + } + for (S = m.o, N = new C(m.j); N.a < N.c.c.length; ) { + for (O = u(E(N), 12), Wv(O.n, S.b - O.o.b), Wv(O.a, O.o.b), pi(O, Axn(O.j)), s = u(v(O, k1), 17), s && U(O, k1, Y(-s.a)), c = new C(O.g); c.a < c.c.c.length; ) { + for (r = u(E(c), 18), i = ge(r.a, 0); i.b != i.d.c; ) + t = u(be(i), 8), t.b = I - t.b; + if (l = u(v(r, xr), 75), l) + for (h = ge(l, 0); h.b != h.d.c; ) + f = u(be(h), 8), f.b = I - f.b; + for (g = new C(r.b); g.a < g.c.c.length; ) + a = u(E(g), 72), Wv(a.n, I - a.o.b); + } + for (p = new C(O.f); p.a < p.c.c.length; ) + a = u(E(p), 72), Wv(a.n, O.o.b - a.o.b); + } + for (m.k == (Vn(), ni) && (U(m, (W(), gc), Axn(u(v(m, gc), 64))), y5e(m)), d = new C(m.b); d.a < d.c.c.length; ) + a = u(E(d), 72), GRn(a), Wv(a.n, S.b - a.o.b); + } + } + function yLe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te, xe; + for (I = new Fi(n.b, 0), a = e.Kc(), m = 0, l = u(a.Pb(), 17).a, _ = 0, t = new ei(), tn = new ih(); I.b < I.d.gc(); ) { + for (S = (oe(I.b < I.d.gc()), u(I.d.Xb(I.c = I.b++), 30)), N = new C(S.a); N.a < N.c.c.length; ) { + for (O = u(E(N), 10), p = new ie(ce(Qt(O).a.Kc(), new En())); pe(p); ) + d = u(fe(p), 18), tn.a.zc(d, tn); + for (g = new ie(ce(Ei(O).a.Kc(), new En())); pe(g); ) + d = u(fe(g), 18), tn.a.Bc(d) != null; + } + if (m + 1 == l) { + for (r = new Nc(n), Kb(I, r), c = new Nc(n), Kb(I, c), kn = tn.a.ec().Kc(); kn.Ob(); ) + yn = u(kn.Pb(), 18), t.a._b(yn) || (++_, t.a.zc(yn, t)), s = new Tl(n), U(s, (cn(), Ht), (Li(), Rv)), xi(s, r), qa(s, (Vn(), Uf)), k = new Ic(), ic(k, s), pi(k, (en(), Wn)), Fn = new Ic(), ic(Fn, s), pi(Fn, Zn), i = new Tl(n), U(i, Ht, Rv), xi(i, c), qa(i, Uf), j = new Ic(), ic(j, i), pi(j, Wn), Rn = new Ic(), ic(Rn, i), pi(Rn, Zn), X = new C0(), Yi(X, yn.c), Di(X, k), U(X, (W(), dt), u(v(yn, dt), 17)), xe = new C0(), Yi(xe, Fn), Di(xe, j), U(xe, dt, u(v(yn, dt), 17)), Yi(yn, Rn), f = new EJ(s, i, X, xe, yn), U(s, sb, f), U(i, sb, f), te = X.c.i, te.k == Uf && (h = u(v(te, sb), 313), h.d = f, f.g = h); + if (a.Ob()) + l = u(a.Pb(), 17).a; + else + break; + } + ++m; + } + return Y(_); + } + function jLe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j; + for (k = new Z(), g = new C(n.d.b); g.a < g.c.c.length; ) + for (d = u(E(g), 30), m = new C(d.a); m.a < m.c.c.length; ) { + for (p = u(E(m), 10), r = u(ee(n.f, p), 60), h = new ie(ce(Qt(p).a.Kc(), new En())); pe(h); ) + if (s = u(fe(h), 18), i = ge(s.a, 0), l = !0, a = null, i.b != i.d.c) { + for (e = u(be(i), 8), t = null, s.c.j == (en(), Xn) && (j = new q5(e, new V(e.a, r.d.d), r, s), j.f.a = !0, j.a = s.c, Kn(k.c, j)), s.c.j == ae && (j = new q5(e, new V(e.a, r.d.d + r.d.a), r, s), j.f.d = !0, j.a = s.c, Kn(k.c, j)); i.b != i.d.c; ) + t = u(be(i), 8), aQ(e.b, t.b) || (a = new q5(e, t, null, s), Kn(k.c, a), l && (l = !1, t.b < r.d.d ? a.f.a = !0 : t.b > r.d.d + r.d.a ? a.f.d = !0 : (a.f.d = !0, a.f.a = !0))), i.b != i.d.c && (e = t); + a && (c = u(ee(n.f, s.d.i), 60), e.b < c.d.d ? a.f.a = !0 : e.b > c.d.d + c.d.a ? a.f.d = !0 : (a.f.d = !0, a.f.a = !0)); + } + for (f = new ie(ce(Ei(p).a.Kc(), new En())); pe(f); ) + s = u(fe(f), 18), s.a.b != 0 && (e = u($s(s.a), 8), s.d.j == (en(), Xn) && (j = new q5(e, new V(e.a, r.d.d), r, s), j.f.a = !0, j.a = s.d, Kn(k.c, j)), s.d.j == ae && (j = new q5(e, new V(e.a, r.d.d + r.d.a), r, s), j.f.d = !0, j.a = s.d, Kn(k.c, j))); + } + return k; + } + function ELe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g; + for (h = new Z(), d = e.length, s = tY(t), l = 0; l < d; ++l) { + switch (a = GX(e, bu(61), l), i = v5e(s, (Bi(l, a, e.length), e.substr(l, a - l))), r = x$(i), c = r.jk().wi(), Xi(e, ++a)) { + case 39: { + f = b4(e, 39, ++a), nn(h, new MC(i, jN((Bi(a, f, e.length), e.substr(a, f - a)), c, r))), l = f + 1; + break; + } + case 34: { + f = b4(e, 34, ++a), nn(h, new MC(i, jN((Bi(a, f, e.length), e.substr(a, f - a)), c, r))), l = f + 1; + break; + } + case 91: { + g = new Z(), nn(h, new MC(i, g)); + n: + for (; ; ) { + switch (Xi(e, ++a)) { + case 39: { + f = b4(e, 39, ++a), nn(g, jN((Bi(a, f, e.length), e.substr(a, f - a)), c, r)), a = f + 1; + break; + } + case 34: { + f = b4(e, 34, ++a), nn(g, jN((Bi(a, f, e.length), e.substr(a, f - a)), c, r)), a = f + 1; + break; + } + case 110: { + if (++a, e.indexOf("ull", a) == a) + g.c.push(null); + else + throw M(new ec(lWn)); + a += 3; + break; + } + } + if (a < d) + switch (zn(a, e.length), e.charCodeAt(a)) { + case 44: + break; + case 93: + break n; + default: + throw M(new ec("Expecting , or ]")); + } + else + break; + } + l = a + 1; + break; + } + case 110: { + if (++a, e.indexOf("ull", a) == a) + nn(h, new MC(i, null)); + else + throw M(new ec(lWn)); + l = a + 3; + break; + } + } + if (l < d) { + if (zn(l, e.length), e.charCodeAt(l) != 44) + throw M(new ec("Expecting ,")); + } else + break; + } + return uAe(n, h, t); + } + function CLe(n) { + var e, t, i, r, c; + switch (e = n.c, c = null, e) { + case 6: + return n.Em(); + case 13: + return n.Fm(); + case 23: + return n.wm(); + case 22: + return n.Bm(); + case 18: + return n.ym(); + case 8: + Ze(n), c = (nt(), a0n); + break; + case 9: + return n.em(!0); + case 19: + return n.fm(); + case 10: + switch (n.a) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + return c = n.dm(n.a), Ze(n), c; + case 101: + case 102: + case 110: + case 114: + case 116: + case 117: + case 118: + case 120: + t = n.cm(), t < fr ? c = (nt(), nt(), new Lh(0, t)) : c = jPn($Y(t)); + break; + case 99: + return n.om(); + case 67: + return n.jm(); + case 105: + return n.rm(); + case 73: + return n.km(); + case 103: + return n.pm(); + case 88: + return n.lm(); + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + return n.gm(); + case 80: + case 112: + if (c = $nn(n, n.a), !c) + throw M(new Le($e((Ie(), EK)))); + break; + default: + c = $Sn(n.a); + } + Ze(n); + break; + case 0: + if (n.a == 93 || n.a == 123 || n.a == 125) + throw M(new Le($e((Ie(), Fcn)))); + c = $Sn(n.a), i = n.a, Ze(n), (i & 64512) == Sy && n.c == 0 && (n.a & 64512) == 56320 && (r = K(fs, wh, 28, 2, 15, 1), r[0] = i & oi, r[1] = n.a & oi, c = rN(jPn(ws(r, 0, r.length)), 0), Ze(n)); + break; + default: + throw M(new Le($e((Ie(), Fcn)))); + } + return c; + } + function MLe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn; + for (kn = new Ct(), X = new Ct(), j = -1, h = new C(n); h.a < h.c.c.length; ) { + for (s = u(E(h), 131), s.s = j--, a = 0, O = 0, c = new C(s.t); c.a < c.c.c.length; ) + i = u(E(c), 274), O += i.c; + for (r = new C(s.i); r.a < r.c.c.length; ) + i = u(E(r), 274), a += i.c; + s.n = a, s.u = O, O == 0 ? xt(X, s, X.c.b, X.c) : a == 0 && xt(kn, s, kn.c.b, kn.c); + } + for (Rn = HM(n), d = n.c.length, k = d + 1, S = d - 1, p = new Z(); Rn.a.gc() != 0; ) { + for (; X.b != 0; ) + _ = (oe(X.b != 0), u(Xo(X, X.a.a), 131)), Rn.a.Bc(_) != null, _.s = S--, nen(_, kn, X); + for (; kn.b != 0; ) + tn = (oe(kn.b != 0), u(Xo(kn, kn.a.a), 131)), Rn.a.Bc(tn) != null, tn.s = k++, nen(tn, kn, X); + for (m = Wi, l = Rn.a.ec().Kc(); l.Ob(); ) + s = u(l.Pb(), 131), I = s.u - s.n, I >= m && (I > m && (p.c.length = 0, m = I), Kn(p.c, s)); + p.c.length != 0 && (g = u(sn(p, cA(e, p.c.length)), 131), Rn.a.Bc(g) != null, g.s = k++, nen(g, kn, X), p.c.length = 0); + } + for (N = n.c.length + 1, f = new C(n); f.a < f.c.c.length; ) + s = u(E(f), 131), s.s < d && (s.s += N); + for (yn = new C(n); yn.a < yn.c.c.length; ) + for (tn = u(E(yn), 131), t = new Fi(tn.t, 0); t.b < t.d.gc(); ) + i = (oe(t.b < t.d.gc()), u(t.d.Xb(t.c = t.b++), 274)), Fn = i.b, tn.s > Fn.s && (bo(t), au(Fn.i, i), i.c > 0 && (i.a = Fn, nn(Fn.t, i), i.b = tn, nn(tn.i, i))); + } + function fzn(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn; + for (k = new zc(e.b), N = new zc(e.b), g = new zc(e.b), yn = new zc(e.b), j = new zc(e.b), tn = ge(e, 0); tn.b != tn.d.c; ) + for (_ = u(be(tn), 12), f = new C(_.g); f.a < f.c.c.length; ) + if (c = u(E(f), 18), c.c.i == c.d.i) { + if (_.j == c.d.j) { + Kn(yn.c, c); + continue; + } else if (_.j == (en(), Xn) && c.d.j == ae) { + Kn(j.c, c); + continue; + } + } + for (h = new C(j); h.a < h.c.c.length; ) + c = u(E(h), 18), QSe(n, c, t, i, (en(), Zn)); + for (s = new C(yn); s.a < s.c.c.length; ) + c = u(E(s), 18), kn = new Tl(n), qa(kn, (Vn(), Hc)), U(kn, (cn(), Ht), (Li(), Uc)), U(kn, (W(), st), c), Fn = new Ic(), U(Fn, st, c.d), pi(Fn, (en(), Wn)), ic(Fn, kn), Rn = new Ic(), U(Rn, st, c.c), pi(Rn, Zn), ic(Rn, kn), U(c.c, Gu, kn), U(c.d, Gu, kn), Yi(c, null), Di(c, null), Kn(t.c, kn), U(kn, iI, Y(2)); + for (X = ge(e, 0); X.b != X.d.c; ) + _ = u(be(X), 12), l = _.e.c.length > 0, S = _.g.c.length > 0, l && S ? Kn(g.c, _) : l ? Kn(k.c, _) : S && Kn(N.c, _); + for (m = new C(k); m.a < m.c.c.length; ) + p = u(E(m), 12), nn(r, qen(n, p, null, t)); + for (O = new C(N); O.a < O.c.c.length; ) + I = u(E(O), 12), nn(r, qen(n, null, I, t)); + for (d = new C(g); d.a < d.c.c.length; ) + a = u(E(d), 12), nn(r, qen(n, a, a, t)); + } + function otn(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + for (g = St, p = St, a = 0, d = 0, h = new Z(), f = new ne((!n.b && (n.b = new q(Wt, n, 12, 3)), n.b)); f.e != f.i.gc(); ) + c = u(ue(f), 74), h = Eo(A(T(Oo, 1), Bn, 20, 0, [h, (!c.n && (c.n = new q(Sr, c, 1, 7)), c.n)])); + for (O = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [(!n.n && (n.n = new q(Sr, n, 1, 7)), n.n), (!n.a && (n.a = new q(Ye, n, 10, 11)), n.a), h]))); pe(O); ) + I = u(fe(O), 422), l = u(I.of((He(), $v)), 140), g > I.nh() - l.b && (g = I.nh() - l.b), p > I.oh() - l.d && (p = I.oh() - l.d), a < I.nh() + I.mh() + l.c && (a = I.nh() + I.mh() + l.c), d < I.oh() + I.lh() + l.a && (d = I.oh() + I.lh() + l.a); + for (s = new ne((!n.b && (n.b = new q(Wt, n, 12, 3)), n.b)); s.e != s.i.gc(); ) + for (c = u(ue(s), 74), S = new ne((!c.a && (c.a = new q(Mt, c, 6, 6)), c.a)); S.e != S.i.gc(); ) + for (j = u(ue(S), 166), m = j.j, i = j.b, k = j.k, r = j.c, g = y.Math.min(g, m), g = y.Math.min(g, i), a = y.Math.max(a, m), a = y.Math.max(a, i), p = y.Math.min(p, k), p = y.Math.min(p, r), d = y.Math.max(d, k), d = y.Math.max(d, r), t = new ne((!j.a && (j.a = new ii(xo, j, 5)), j.a)); t.e != t.i.gc(); ) + e = u(ue(t), 377), g = y.Math.min(g, e.a), a = y.Math.max(a, e.a), p = y.Math.min(p, e.b), d = y.Math.max(d, e.b); + ht(n, (He(), B2), a - g), ht(n, F2, d - p); + } + function TLe(n, e, t) { + var i, r, c, s, f, h, l, a, d; + if (t.Ug("Network simplex node placement", 1), n.e = e, n.n = u(v(e, (W(), E2)), 312), RIe(n), iye(n), Ut(rc(new Tn(null, new In(n.e.b, 16)), new u3n()), new nkn(n)), Ut(ut(rc(ut(rc(new Tn(null, new In(n.e.b, 16)), new v3n()), new k3n()), new y3n()), new j3n()), new Z7n(n)), on(un(v(n.e, (cn(), G8)))) && (s = t.eh(1), s.Ug("Straight Edges Pre-Processing", 1), oDe(n), s.Vg()), B9e(n.f), c = u(v(e, V8), 17).a * n.f.a.c.length, PF(mz(vz(BL(n.f), c), !1), t.eh(1)), n.d.a.gc() != 0) { + for (s = t.eh(1), s.Ug("Flexible Where Space Processing", 1), f = u(ho(Ap(_r(new Tn(null, new In(n.f.a, 16)), new o3n()), new n3n())), 17).a, h = u(ho(Hb(_r(new Tn(null, new In(n.f.a, 16)), new s3n()), new e3n())), 17).a, l = h - f, a = l0(new Xa(), n.f), d = l0(new Xa(), n.f), qs(Ls(Ds(Os(Ns(new hs(), 2e4), l), a), d)), Ut(ut(ut(CW(n.i), new f3n()), new h3n()), new CIn(f, a, l, d)), r = n.d.a.ec().Kc(); r.Ob(); ) + i = u(r.Pb(), 218), i.g = 1; + PF(mz(vz(BL(n.f), c), !1), s.eh(1)), s.Vg(); + } + on(un(v(e, G8))) && (s = t.eh(1), s.Ug("Straight Edges Post-Processing", 1), Vje(n), s.Vg()), UOe(n), n.e = null, n.f = null, n.i = null, n.c = null, Ku(n.k), n.j = null, n.a = null, n.o = null, n.d.a.$b(), t.Vg(); + } + function ALe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + for (t.Ug("Depth first model order layering", 1), n.d = e, j = new Z(), k = new C(n.d.a); k.a < k.c.c.length; ) + p = u(E(k), 10), p.k == (Vn(), Xt) && Kn(j.c, p); + for (Dn(), Zt(j, new zpn()), s = !0, n.b = new Nc(n.d), n.a = null, nn(n.d.b, n.b), n.b.p = 0, n.c = 0, n.f = new Ct(), m = new C(j); m.a < m.c.c.length; ) + if (p = u(E(m), 10), s) + xi(p, n.b), s = !1; + else if (_Pe(n, p)) + if (g = n.c, g = mRn(g, p), i = g + 2, a = g - n.c, n.f.b == 0) + ben(n, i, p); + else if (a > 0) { + for (O = ge(n.f, 0); O.b != O.d.c; ) + I = u(be(O), 10), I.p += g - n.e; + vnn(n), vo(n.f), ben(n, i, p); + } else { + for (Fe(n.f, p), p.p = i, n.e = y.Math.max(n.e, i), c = new ie(ce(Ei(p).a.Kc(), new En())); pe(c); ) + r = u(fe(c), 18), !r.c.i.c && r.c.i.k == (Vn(), Sc) && (Fe(n.f, r.c.i), r.c.i.p = i - 1); + n.c = i; + } + else + vnn(n), vo(n.f), i = 0, pe(new ie(ce(Ei(p).a.Kc(), new En()))) ? (g = 0, g = mRn(g, p), i = g + 2, ben(n, i, p)) : (Fe(n.f, p), p.p = 0, n.e = y.Math.max(n.e, 0), n.b = u(sn(n.d.b, 0), 30), n.c = 0); + for (n.f.b == 0 || vnn(n), n.d.a.c.length = 0, S = new Z(), l = new C(n.d.b); l.a < l.c.c.length; ) + f = u(E(l), 30), f.a.c.length == 0 && Kn(S.c, f); + for (IY(n.d.b, S), d = 0, h = new C(n.d.b); h.a < h.c.c.length; ) + f = u(E(h), 30), f.p = d, ++d; + t.Vg(); + } + function SLe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te, xe, Lt, Ju, Br; + if (Fn = null, te = e, Rn = GDn(n, $Dn(t), te), z4(Rn, bl(te, jh)), xe = u(Lg(n.g, Zp(dl(te, lK))), 27), g = dl(te, "sourcePort"), i = null, g && (i = Zp(g)), Lt = u(Lg(n.j, i), 123), !xe) + throw f = bm(te), m = "An edge must have a source node (edge id: '" + f, k = m + tv, M(new nh(k)); + if (Lt && !oh(Af(Lt), xe)) + throw h = bl(te, jh), j = "The source port of an edge must be a port of the edge's source node (edge id: '" + h, S = j + tv, M(new nh(S)); + if (yn = (!Rn.b && (Rn.b = new Nn(he, Rn, 4, 7)), Rn.b), c = null, Lt ? c = Lt : c = xe, ve(yn, c), Ju = u(Lg(n.g, Zp(dl(te, $cn))), 27), p = dl(te, "targetPort"), r = null, p && (r = Zp(p)), Br = u(Lg(n.j, r), 123), !Ju) + throw d = bm(te), I = "An edge must have a target node (edge id: '" + d, O = I + tv, M(new nh(O)); + if (Br && !oh(Af(Br), Ju)) + throw l = bl(te, jh), N = "The target port of an edge must be a port of the edge's target node (edge id: '" + l, _ = N + tv, M(new nh(_)); + if (kn = (!Rn.c && (Rn.c = new Nn(he, Rn, 5, 8)), Rn.c), s = null, Br ? s = Br : s = Ju, ve(kn, s), (!Rn.b && (Rn.b = new Nn(he, Rn, 4, 7)), Rn.b).i == 0 || (!Rn.c && (Rn.c = new Nn(he, Rn, 5, 8)), Rn.c).i == 0) + throw a = bl(te, jh), X = vWn + a, tn = X + tv, M(new nh(tn)); + return gA(te, Rn), ZCe(te, Rn), Fn = _$(n, te, Rn), Fn; + } + function hzn(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te, xe, Lt; + for (p = u(v(n, (Q1(), y3)), 27), O = et, N = et, S = Wi, I = Wi, X = new C(n.e); X.a < X.c.c.length; ) + _ = u(E(X), 153), Rn = _.d, te = _.e, O = y.Math.min(O, Rn.a - te.a / 2), N = y.Math.min(N, Rn.b - te.b / 2), S = y.Math.max(S, Rn.a + te.a / 2), I = y.Math.max(I, Rn.b + te.b / 2); + for (t = new C(n.b); t.a < t.c.c.length; ) + e = u(E(t), 250), Rn = e.d, te = e.e, O = y.Math.min(O, Rn.a - te.a / 2), N = y.Math.min(N, Rn.b - te.b / 2), S = y.Math.max(S, Rn.a + te.a / 2), I = y.Math.max(I, Rn.b + te.b / 2); + for (Fn = u(z(p, (Us(), YYn)), 107), kn = new V(Fn.b - O, Fn.d - N), l = new C(n.e); l.a < l.c.c.length; ) + h = u(E(l), 153), yn = v(h, y3), D(yn, 207) && (k = u(yn, 27), tn = tt(new ir(h.d), kn), Ro(k, tn.a - k.g / 2, tn.b - k.f / 2)); + for (c = new C(n.c); c.a < c.c.c.length; ) + r = u(E(c), 290), d = u(v(r, y3), 74), g = Xg(d, !0, !0), xe = new ir(mQ(r)), tt(xe, kn), j7(g, xe.a, xe.b), nu(r.a, new ACn(kn, g)), i = new ir(vQ(r)), tt(i, kn), y7(g, i.a, i.b); + for (f = new C(n.d); f.a < f.c.c.length; ) + s = u(E(f), 454), m = u(v(s, y3), 135), j = tt(new ir(s.d), kn), Ro(m, j.a, j.b); + Lt = S - O + (Fn.b + Fn.c), a = I - N + (Fn.d + Fn.a), on(un(z(p, (He(), Ww)))) || z0(p, Lt, a, !1, !0), ht(p, B2, Lt - (Fn.b + Fn.c)), ht(p, F2, a - (Fn.d + Fn.a)); + } + function lzn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn; + return d = mPe(hu(n, (en(), Qf)), e), m = _g(hu(n, ef), e), N = _g(hu(n, No), e), yn = hA(hu(n, Ts), e), g = hA(hu(n, os), e), I = _g(hu(n, tf), e), k = _g(hu(n, Xu), e), X = _g(hu(n, $o), e), _ = _g(hu(n, ss), e), kn = hA(hu(n, su), e), S = _g(hu(n, pu), e), O = _g(hu(n, Vu), e), tn = _g(hu(n, gu), e), Fn = hA(hu(n, mu), e), p = hA(hu(n, $u), e), j = _g(hu(n, Gc), e), t = Dg(A(T(Oi, 1), Ar, 28, 15, [I.a, yn.a, X.a, Fn.a])), i = Dg(A(T(Oi, 1), Ar, 28, 15, [m.a, d.a, N.a, j.a])), r = S.a, c = Dg(A(T(Oi, 1), Ar, 28, 15, [k.a, g.a, _.a, p.a])), l = Dg(A(T(Oi, 1), Ar, 28, 15, [I.b, m.b, k.b, O.b])), h = Dg(A(T(Oi, 1), Ar, 28, 15, [yn.b, d.b, g.b, j.b])), a = kn.b, f = Dg(A(T(Oi, 1), Ar, 28, 15, [X.b, N.b, _.b, tn.b])), n1(hu(n, Qf), t + r, l + a), n1(hu(n, Gc), t + r, l + a), n1(hu(n, ef), t + r, 0), n1(hu(n, No), t + r, l + a + h), n1(hu(n, Ts), 0, l + a), n1(hu(n, os), t + r + i, l + a), n1(hu(n, Xu), t + r + i, 0), n1(hu(n, $o), 0, l + a + h), n1(hu(n, ss), t + r + i, l + a + h), n1(hu(n, su), 0, l), n1(hu(n, pu), t, 0), n1(hu(n, gu), 0, l + a + h), n1(hu(n, $u), t + r + i, 0), s = new Ni(), s.a = Dg(A(T(Oi, 1), Ar, 28, 15, [t + i + r + c, kn.a, O.a, tn.a])), s.b = Dg(A(T(Oi, 1), Ar, 28, 15, [l + h + a + f, S.b, Fn.b, p.b])), s; + } + function azn(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn; + for (I = new V(St, St), e = new V(ai, ai), yn = new C(n); yn.a < yn.c.c.length; ) + tn = u(E(yn), 8), I.a = y.Math.min(I.a, tn.a), I.b = y.Math.min(I.b, tn.b), e.a = y.Math.max(e.a, tn.a), e.b = y.Math.max(e.b, tn.b); + for (g = new V(e.a - I.a, e.b - I.b), l = new V(I.a - 50, I.b - g.a - 50), a = new V(I.a - 50, e.b + g.a + 50), d = new V(e.a + g.b / 2 + 50, I.b + g.b / 2), p = new _en(l, a, d), X = new ei(), c = new Z(), t = new Z(), X.a.zc(p, X), Fn = new C(n); Fn.a < Fn.c.c.length; ) { + for (kn = u(E(Fn), 8), c.c.length = 0, _ = X.a.ec().Kc(); _.Ob(); ) + O = u(_.Pb(), 317), i = O.d, J1(i, O.a), F0(J1(O.d, kn), J1(O.d, O.a)) < 0 && Kn(c.c, O); + for (t.c.length = 0, N = new C(c); N.a < N.c.c.length; ) + for (O = u(E(N), 317), j = new C(O.e); j.a < j.c.c.length; ) { + for (m = u(E(j), 177), s = !0, h = new C(c); h.a < h.c.c.length; ) + f = u(E(h), 317), f != O && (mc(m, sn(f.e, 0)) || mc(m, sn(f.e, 1)) || mc(m, sn(f.e, 2))) && (s = !1); + s && Kn(t.c, m); + } + for (_Kn(X, c), qi(X, new Q0n()), k = new C(t); k.a < k.c.c.length; ) + m = u(E(k), 177), hi(X, new _en(kn, m.a, m.b)); + } + for (S = new ei(), qi(X, new P9n(S)), r = S.a.ec().Kc(); r.Ob(); ) + m = u(r.Pb(), 177), (tT(p, m.a) || tT(p, m.b)) && r.Qb(); + return qi(S, new Y0n()), S; + } + function Mc() { + Mc = F, iEn(), Coe = Ai.a, u(L(H(Ai.a), 0), 19), joe = Ai.f, u(L(H(Ai.f), 0), 19), u(L(H(Ai.f), 1), 35), Eoe = Ai.n, u(L(H(Ai.n), 0), 35), u(L(H(Ai.n), 1), 35), u(L(H(Ai.n), 2), 35), u(L(H(Ai.n), 3), 35), Pdn = Ai.g, u(L(H(Ai.g), 0), 19), u(L(H(Ai.g), 1), 35), yoe = Ai.c, u(L(H(Ai.c), 0), 19), u(L(H(Ai.c), 1), 19), Idn = Ai.i, u(L(H(Ai.i), 0), 19), u(L(H(Ai.i), 1), 19), u(L(H(Ai.i), 2), 19), u(L(H(Ai.i), 3), 19), u(L(H(Ai.i), 4), 35), Odn = Ai.j, u(L(H(Ai.j), 0), 19), Sdn = Ai.d, u(L(H(Ai.d), 0), 19), u(L(H(Ai.d), 1), 19), u(L(H(Ai.d), 2), 19), u(L(H(Ai.d), 3), 19), u(L(H(Ai.d), 4), 35), u(L(H(Ai.d), 5), 35), u(L(H(Ai.d), 6), 35), u(L(H(Ai.d), 7), 35), koe = Ai.b, u(L(H(Ai.b), 0), 35), u(L(H(Ai.b), 1), 35), bO = Ai.e, u(L(H(Ai.e), 0), 35), u(L(H(Ai.e), 1), 35), u(L(H(Ai.e), 2), 35), u(L(H(Ai.e), 3), 35), u(L(H(Ai.e), 4), 19), u(L(H(Ai.e), 5), 19), u(L(H(Ai.e), 6), 19), u(L(H(Ai.e), 7), 19), u(L(H(Ai.e), 8), 19), u(L(H(Ai.e), 9), 19), u(L(H(Ai.e), 10), 35), tl = Ai.k, u(L(H(Ai.k), 0), 35), u(L(H(Ai.k), 1), 35); + } + function stn(n) { + var e, t, i, r, c; + switch (e = n.c, e) { + case 11: + return n.vm(); + case 12: + return n.xm(); + case 14: + return n.zm(); + case 15: + return n.Cm(); + case 16: + return n.Am(); + case 17: + return n.Dm(); + case 21: + return Ze(n), nt(), nt(), K9; + case 10: + switch (n.a) { + case 65: + return n.hm(); + case 90: + return n.mm(); + case 122: + return n.tm(); + case 98: + return n.nm(); + case 66: + return n.im(); + case 60: + return n.sm(); + case 62: + return n.qm(); + } + } + switch (c = CLe(n), e = n.c, e) { + case 3: + return n.Im(c); + case 4: + return n.Gm(c); + case 5: + return n.Hm(c); + case 0: + if (n.a == 123 && n.d < n.j) { + if (r = n.d, i = 0, t = -1, (e = Xi(n.i, r++)) >= 48 && e <= 57) { + for (i = e - 48; r < n.j && (e = Xi(n.i, r++)) >= 48 && e <= 57; ) + if (i = i * 10 + e - 48, i < 0) + throw M(new Le($e((Ie(), _cn)))); + } else + throw M(new Le($e((Ie(), XWn)))); + if (t = i, e == 44) { + if (r >= n.j) + throw M(new Le($e((Ie(), WWn)))); + if ((e = Xi(n.i, r++)) >= 48 && e <= 57) { + for (t = e - 48; r < n.j && (e = Xi(n.i, r++)) >= 48 && e <= 57; ) + if (t = t * 10 + e - 48, t < 0) + throw M(new Le($e((Ie(), _cn)))); + if (i > t) + throw M(new Le($e((Ie(), JWn)))); + } else + t = -1; + } + if (e != 125) + throw M(new Le($e((Ie(), VWn)))); + n.bm(r) ? (c = (nt(), nt(), new Vb(9, c)), n.d = r + 1) : (c = (nt(), nt(), new Vb(3, c)), n.d = r), c.Om(i), c.Nm(t), Ze(n); + } + } + return c; + } + function PLe(n) { + var e, t, i, r, c; + switch (t = u(v(n, (W(), qc)), 21), e = DC(mZn), r = u(v(n, (cn(), Rw)), 346), r == (jl(), T1) && Mo(e, vZn), on(un(v(n, TH))) ? Ke(e, (Vi(), Vs), (er(), $_)) : Ke(e, (Vi(), Dc), (er(), $_)), v(n, (JM(), b9)) != null && Mo(e, kZn), (on(un(v(n, nhn))) || on(un(v(n, Jfn)))) && Su(e, (Vi(), zr), (er(), Won)), u(v(n, Do), 88).g) { + case 2: + case 3: + case 4: + Su(Ke(e, (Vi(), Vs), (er(), Qon)), zr, Jon); + } + switch (t.Hc((mr(), ZP)) && Su(Ke(Ke(e, (Vi(), Vs), (er(), Von)), _c, zon), zr, Xon), x(v(n, ja)) !== x((ps(), AI)) && Ke(e, (Vi(), Dc), (er(), asn)), t.Hc(eI) && (Ke(e, (Vi(), Vs), (er(), gsn)), Ke(e, Wh, bsn), Ke(e, Dc, wsn)), x(v(n, fI)) !== x((ym(), x8)) && x(v(n, $l)) !== x((El(), Yj)) && Su(e, (Vi(), zr), (er(), usn)), on(un(v(n, Yfn))) && Ke(e, (Vi(), Dc), (er(), csn)), on(un(v(n, jH))) && Ke(e, (Vi(), Dc), (er(), psn)), HMe(n) && (x(v(n, Rw)) === x(T1) ? i = u(v(n, Cj), 299) : i = u(v(n, yH), 299), c = i == (Y4(), uH) ? (er(), dsn) : (er(), ksn), Ke(e, (Vi(), _c), c)), u(v(n, Thn), 388).g) { + case 1: + Ke(e, (Vi(), _c), (er(), msn)); + break; + case 2: + Su(Ke(Ke(e, (Vi(), Dc), (er(), Hon)), _c, qon), zr, Uon); + } + return x(v(n, Qh)) !== x((hh(), y1)) && Ke(e, (Vi(), Dc), (er(), vsn)), e; + } + function dzn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O; + if (Zc(n.a, e)) { + if (sf(u(ee(n.a, e), 49), t)) + return 1; + } else + Xe(n.a, e, new ei()); + if (Zc(n.a, t)) { + if (sf(u(ee(n.a, t), 49), e)) + return -1; + } else + Xe(n.a, t, new ei()); + if (Zc(n.e, e)) { + if (sf(u(ee(n.e, e), 49), t)) + return -1; + } else + Xe(n.e, e, new ei()); + if (Zc(n.e, t)) { + if (sf(u(ee(n.a, t), 49), e)) + return 1; + } else + Xe(n.e, t, new ei()); + if (n.c == (hh(), HH) || !kt(e, (W(), dt)) || !kt(t, (W(), dt))) { + for (d = null, l = new C(e.j); l.a < l.c.c.length; ) + f = u(E(l), 12), f.e.c.length == 0 || u(sn(f.e, 0), 18).c.i.c != e.c && (d = u(sn(f.e, 0), 18).c); + for (p = null, h = new C(t.j); h.a < h.c.c.length; ) + f = u(E(h), 12), f.e.c.length == 0 || u(sn(f.e, 0), 18).c.i.c != t.c && (p = u(sn(f.e, 0), 18).c); + if (d && p) { + if (a = d.i, g = p.i, a && a == g) { + for (k = new C(a.j); k.a < k.c.c.length; ) { + if (m = u(E(k), 12), m == d) + return Sm(n, t, e), -1; + if (m == p) + return Sm(n, e, t), 1; + } + return Ec(Vx(n, e), Vx(n, t)); + } + for (S = n.d, I = 0, O = S.length; I < O; ++I) { + if (j = S[I], j == a) + return Sm(n, t, e), -1; + if (j == g) + return Sm(n, e, t), 1; + } + } + if (!kt(e, (W(), dt)) || !kt(t, dt)) + return r = Vx(n, e), s = Vx(n, t), r > s ? Sm(n, e, t) : Sm(n, t, e), r < s ? -1 : r > s ? 1 : 0; + } + return i = u(v(e, (W(), dt)), 17).a, c = u(v(t, dt), 17).a, i > c ? Sm(n, e, t) : Sm(n, t, e), i < c ? -1 : i > c ? 1 : 0; + } + function X0(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j; + if (t == null) + return null; + if (n.a != e.jk()) + throw M(new Gn(nv + e.xe() + eb)); + if (D(e, 469)) { + if (j = kAe(u(e, 685), t), !j) + throw M(new Gn(fK + t + "' is not a valid enumerator of '" + e.xe() + "'")); + return j; + } + switch (c1((Ou(), zi), e).Nl()) { + case 2: { + t = Bc(t, !1); + break; + } + case 3: { + t = Bc(t, !0); + break; + } + } + if (i = c1(zi, e).Jl(), i) + return i.jk().wi().ti(i, t); + if (g = c1(zi, e).Ll(), g) { + for (j = new Z(), l = z$(t), a = 0, d = l.length; a < d; ++a) + h = l[a], nn(j, g.jk().wi().ti(g, h)); + return j; + } + if (k = c1(zi, e).Ml(), !k.dc()) { + for (m = k.Kc(); m.Ob(); ) { + p = u(m.Pb(), 156); + try { + if (j = p.jk().wi().ti(p, t), j != null) + return j; + } catch (S) { + if (S = It(S), !D(S, 63)) + throw M(S); + } + } + throw M(new Gn(fK + t + "' does not match any member types of the union datatype '" + e.xe() + "'")); + } + if (u(e, 847).ok(), r = F6e(e.kk()), !r) + return null; + if (r == A8) { + s = 0; + try { + s = Ao(t, Wi, et) & oi; + } catch (S) { + if (S = It(S), D(S, 130)) + c = iT(t), s = c[0]; + else + throw M(S); + } + return vk(s); + } + if (r == oP) { + for (f = 0; f < O9.length; ++f) + try { + return wCn(O9[f], t); + } catch (S) { + if (S = It(S), !D(S, 33)) + throw M(S); + } + throw M(new Gn(fK + t + "' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof")); + } + throw M(new Gn(fK + t + "' is invalid. ")); + } + function YF() { + YF = F, wt = new M0(), Pn(wt, (en(), Qf), Gc), Pn(wt, Ts, Gc), Pn(wt, Ts, mu), Pn(wt, os, $u), Pn(wt, os, Gc), Pn(wt, ef, Gc), Pn(wt, ef, Vu), Pn(wt, No, gu), Pn(wt, No, Gc), Pn(wt, pu, su), Pn(wt, pu, Gc), Pn(wt, pu, Vu), Pn(wt, pu, gu), Pn(wt, su, pu), Pn(wt, su, mu), Pn(wt, su, $u), Pn(wt, su, Gc), Pn(wt, tf, tf), Pn(wt, tf, Vu), Pn(wt, tf, mu), Pn(wt, Xu, Xu), Pn(wt, Xu, Vu), Pn(wt, Xu, $u), Pn(wt, $o, $o), Pn(wt, $o, gu), Pn(wt, $o, mu), Pn(wt, ss, ss), Pn(wt, ss, gu), Pn(wt, ss, $u), Pn(wt, Vu, ef), Pn(wt, Vu, pu), Pn(wt, Vu, tf), Pn(wt, Vu, Xu), Pn(wt, Vu, Gc), Pn(wt, Vu, Vu), Pn(wt, Vu, mu), Pn(wt, Vu, $u), Pn(wt, gu, No), Pn(wt, gu, pu), Pn(wt, gu, $o), Pn(wt, gu, ss), Pn(wt, gu, gu), Pn(wt, gu, mu), Pn(wt, gu, $u), Pn(wt, gu, Gc), Pn(wt, mu, Ts), Pn(wt, mu, su), Pn(wt, mu, tf), Pn(wt, mu, $o), Pn(wt, mu, Vu), Pn(wt, mu, gu), Pn(wt, mu, mu), Pn(wt, mu, Gc), Pn(wt, $u, os), Pn(wt, $u, su), Pn(wt, $u, Xu), Pn(wt, $u, ss), Pn(wt, $u, Vu), Pn(wt, $u, gu), Pn(wt, $u, $u), Pn(wt, $u, Gc), Pn(wt, Gc, Qf), Pn(wt, Gc, Ts), Pn(wt, Gc, os), Pn(wt, Gc, ef), Pn(wt, Gc, No), Pn(wt, Gc, pu), Pn(wt, Gc, su), Pn(wt, Gc, Vu), Pn(wt, Gc, gu), Pn(wt, Gc, mu), Pn(wt, Gc, $u), Pn(wt, Gc, Gc); + } + function ftn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn; + for (n.d = new V(St, St), n.c = new V(ai, ai), g = e.Kc(); g.Ob(); ) + for (a = u(g.Pb(), 36), O = new C(a.a); O.a < O.c.c.length; ) + I = u(E(O), 10), n.d.a = y.Math.min(n.d.a, I.n.a - I.d.b), n.d.b = y.Math.min(n.d.b, I.n.b - I.d.d), n.c.a = y.Math.max(n.c.a, I.n.a + I.o.a + I.d.c), n.c.b = y.Math.max(n.c.b, I.n.b + I.o.b + I.d.a); + for (f = new Kyn(), d = e.Kc(); d.Ob(); ) + a = u(d.Pb(), 36), i = lLe(n, a), nn(f.a, i), i.a = i.a | !u(v(i.c, (W(), Nl)), 21).dc(); + for (n.b = (Y$(), yn = new Jbn(), yn.f = new ixn(t), yn.b = mOe(yn.f, f), yn), IOe((m = n.b, new op(), m)), n.e = new Ni(), n.a = n.b.f.e, s = new C(f.a); s.a < s.c.c.length; ) + for (r = u(E(s), 855), N = l2e(n.b, r), uSe(r.c, N.a, N.b), j = new C(r.c.a); j.a < j.c.c.length; ) + k = u(E(j), 10), k.k == (Vn(), ni) && (S = een(n, k.n, u(v(k, (W(), gc)), 64)), tt(ff(k.n), S)); + for (c = new C(f.a); c.a < c.c.c.length; ) + for (r = u(E(c), 855), l = new C(S5e(r)); l.a < l.c.c.length; ) + for (h = u(E(l), 18), tn = new GE(h.a), w4(tn, 0, Pf(h.c)), Fe(tn, Pf(h.d)), p = null, X = ge(tn, 0); X.b != X.d.c; ) { + if (_ = u(be(X), 8), !p) { + p = _; + continue; + } + hQ(p.a, _.a) ? (n.e.a = y.Math.min(n.e.a, p.a), n.a.a = y.Math.max(n.a.a, p.a)) : hQ(p.b, _.b) && (n.e.b = y.Math.min(n.e.b, p.b), n.a.b = y.Math.max(n.a.b, p.b)), p = _; + } + HC(n.e), tt(n.a, n.e); + } + function ILe(n, e) { + var t, i, r, c, s, f, h, l; + if (t = 0, s = 0, c = e.length, f = null, l = new fg(), s < c && (zn(s, e.length), e.charCodeAt(s) == 43) && (++s, ++t, s < c && (zn(s, e.length), e.charCodeAt(s) == 43 || (zn(s, e.length), e.charCodeAt(s) == 45)))) + throw M(new eh(W0 + e + '"')); + for (; s < c && (zn(s, e.length), e.charCodeAt(s) != 46) && (zn(s, e.length), e.charCodeAt(s) != 101) && (zn(s, e.length), e.charCodeAt(s) != 69); ) + ++s; + if (l.a += "" + qo(e == null ? wu : (Jn(e), e), t, s), s < c && (zn(s, e.length), e.charCodeAt(s) == 46)) { + for (++s, t = s; s < c && (zn(s, e.length), e.charCodeAt(s) != 101) && (zn(s, e.length), e.charCodeAt(s) != 69); ) + ++s; + n.e = s - t, l.a += "" + qo(e == null ? wu : (Jn(e), e), t, s); + } else + n.e = 0; + if (s < c && (zn(s, e.length), e.charCodeAt(s) == 101 || (zn(s, e.length), e.charCodeAt(s) == 69)) && (++s, t = s, s < c && (zn(s, e.length), e.charCodeAt(s) == 43) && (++s, s < c && (zn(s, e.length), e.charCodeAt(s) != 45) && ++t), f = (Bi(t, c, e.length), e.substr(t, c - t)), n.e = n.e - Ao(f, Wi, et), n.e != gi(n.e))) + throw M(new eh("Scale out of range.")); + if (h = l.a, h.length < 16) { + if (n.f = (Sun == null && (Sun = new RegExp("^[+-]?\\d*$", "i")), Sun.test(h) ? parseInt(h, 10) : NaN), isNaN(n.f)) + throw M(new eh(W0 + e + '"')); + n.a = Inn(n.f); + } else + a5e(n, new H1(h)); + for (n.d = l.a.length, r = 0; r < l.a.length && (i = Xi(l.a, r), !(i != 45 && i != 48)); ++r) + --n.d; + n.d == 0 && (n.d = 1); + } + function OLe(n) { + Me(n.b, ks, A(T(fn, 1), J, 2, 6, [tb, "ConsistentTransient"])), Me(n.a, ks, A(T(fn, 1), J, 2, 6, [tb, "WellFormedSourceURI"])), Me(n.o, ks, A(T(fn, 1), J, 2, 6, [tb, "InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"])), Me(n.p, ks, A(T(fn, 1), J, 2, 6, [tb, "WellFormedInstanceTypeName UniqueTypeParameterNames"])), Me(n.v, ks, A(T(fn, 1), J, 2, 6, [tb, "UniqueEnumeratorNames UniqueEnumeratorLiterals"])), Me(n.R, ks, A(T(fn, 1), J, 2, 6, [tb, "WellFormedName"])), Me(n.T, ks, A(T(fn, 1), J, 2, 6, [tb, "UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"])), Me(n.U, ks, A(T(fn, 1), J, 2, 6, [tb, "WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"])), Me(n.W, ks, A(T(fn, 1), J, 2, 6, [tb, "ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"])), Me(n.bb, ks, A(T(fn, 1), J, 2, 6, [tb, "ValidDefaultValueLiteral"])), Me(n.eb, ks, A(T(fn, 1), J, 2, 6, [tb, "ValidLowerBound ValidUpperBound ConsistentBounds ValidType"])), Me(n.H, ks, A(T(fn, 1), J, 2, 6, [tb, "ConsistentType ConsistentBounds ConsistentArguments"])); + } + function DLe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn; + if (!e.dc()) { + if (r = new Cu(), f = t || u(e.Xb(0), 18), m = f.c, B5(), g = m.i.k, !(g == (Vn(), Xt) || g == Hc || g == ni || g == Uf)) + throw M(new Gn("The target node of the edge must be a normal node or a northSouthPort.")); + for (tr(r, cc(A(T(Ci, 1), J, 8, 0, [m.i.n, m.n, m.a]))), (en(), pu).Hc(m.j) && (j = $(R(v(m, (W(), yv)))), d = new V(cc(A(T(Ci, 1), J, 8, 0, [m.i.n, m.n, m.a])).a, j), xt(r, d, r.c.b, r.c)), a = null, i = !1, h = e.Kc(); h.Ob(); ) + s = u(h.Pb(), 18), c = s.a, c.b != 0 && (i ? (l = rh(tt(a, (oe(c.b != 0), u(c.a.a.c, 8))), 0.5), xt(r, l, r.c.b, r.c), i = !1) : i = !0, a = Ki((oe(c.b != 0), u(c.c.b.c, 8))), Ri(r, c), vo(c)); + k = f.d, pu.Hc(k.j) && (j = $(R(v(k, (W(), yv)))), d = new V(cc(A(T(Ci, 1), J, 8, 0, [k.i.n, k.n, k.a])).a, j), xt(r, d, r.c.b, r.c)), tr(r, cc(A(T(Ci, 1), J, 8, 0, [k.i.n, k.n, k.a]))), n.d == (um(), WH) && (S = (oe(r.b != 0), u(r.a.a.c, 8)), I = u(Zo(r, 1), 8), O = new BN(oY(m.j)), O.a *= 5, O.b *= 5, N = vi(new V(I.a, I.b), S), _ = new V(LN(O.a, N.a), LN(O.b, N.b)), tt(_, S), X = ge(r, 1), _7(X, _), tn = (oe(r.b != 0), u(r.c.b.c, 8)), yn = u(Zo(r, r.b - 2), 8), O = new BN(oY(k.j)), O.a *= 5, O.b *= 5, N = vi(new V(yn.a, yn.b), tn), kn = new V(LN(O.a, N.a), LN(O.b, N.b)), tt(kn, tn), w4(r, r.b - 1, kn)), p = new Hen(r), Ri(f.a, PRn(p)); + } + } + function LLe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te, xe, Lt, Ju, Br, Fo, W2, L1, rf, cf; + if (O = u(L((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b), 0), 84), _ = O.nh(), X = O.oh(), N = O.mh() / 2, k = O.lh() / 2, D(O, 193) && (I = u(O, 123), _ += Af(I).i, _ += Af(I).i), _ += N, X += k, Rn = u(L((!n.b && (n.b = new Nn(he, n, 4, 7)), n.b), 0), 84), xe = Rn.nh(), Lt = Rn.oh(), te = Rn.mh() / 2, tn = Rn.lh() / 2, D(Rn, 193) && (Fn = u(Rn, 123), xe += Af(Fn).i, xe += Af(Fn).i), xe += te, Lt += tn, (!n.a && (n.a = new q(Mt, n, 6, 6)), n.a).i == 0) + f = (B1(), l = new jE(), l), ve((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a), f); + else if ((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a).i > 1) + for (m = new kp((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a)); m.e != m.i.gc(); ) + O5(m); + for (s = u(L((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a), 0), 166), j = xe, xe > _ + N ? j = _ + N : xe < _ - N && (j = _ - N), S = Lt, Lt > X + k ? S = X + k : Lt < X - k && (S = X - k), j > _ - N && j < _ + N && S > X - k && S < X + k && (j = _ + N), _4(s, j), q4(s, S), yn = _, _ > xe + te ? yn = xe + te : _ < xe - te && (yn = xe - te), kn = X, X > Lt + tn ? kn = Lt + tn : X < Lt - tn && (kn = Lt - tn), yn > xe - te && yn < xe + te && kn > Lt - tn && kn < Lt + tn && (kn = Lt + tn), K4(s, yn), H4(s, kn), me((!s.a && (s.a = new ii(xo, s, 5)), s.a)), c = cA(e, 5), O == Rn && ++c, Fo = yn - j, rf = kn - S, Ju = y.Math.sqrt(Fo * Fo + rf * rf), d = Ju * 0.20000000298023224, W2 = Fo / (c + 1), cf = rf / (c + 1), Br = j, L1 = S, a = 0; a < c; a++) + Br += W2, L1 += cf, g = Br + eo(e, 24) * Iy * d - d / 2, g < 0 ? g = 1 : g > t && (g = t - 1), p = L1 + eo(e, 24) * Iy * d - d / 2, p < 0 ? p = 1 : p > i && (p = i - 1), r = (B1(), h = new yE(), h), aT(r, g), lT(r, p), ve((!s.a && (s.a = new ii(xo, s, 5)), s.a), r); + } + function bzn(n) { + c0(n, new pd(t0(Zd(e0(n0(new _a(), ro), "ELK Rectangle Packing"), "Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."), new rmn()))), Q(n, ro, l3, 1.3), Q(n, ro, Gm, (_n(), !1)), Q(n, ro, J0, k1n), Q(n, ro, jw, 15), Q(n, ro, MS, rn(Oce)), Q(n, ro, r2, rn(Nce)), Q(n, ro, d3, rn(xce)), Q(n, ro, a3, rn(Fce)), Q(n, ro, zm, rn(Lce)), Q(n, ro, r8, rn(Dq)), Q(n, ro, Xm, rn(Bce)), Q(n, ro, ecn, rn(C1n)), Q(n, ro, tcn, rn(E1n)), Q(n, ro, ncn, rn(Nq)), Q(n, ro, Zrn, rn(M1n)), Q(n, ro, icn, rn(v1n)), Q(n, ro, rcn, rn(Lq)), Q(n, ro, ccn, rn(m1n)), Q(n, ro, ucn, rn(j1n)), Q(n, ro, i8, rn(p1n)), Q(n, ro, AS, rn(Dce)), Q(n, ro, Qrn, rn(Rj)), Q(n, ro, Jrn, rn(g1n)), Q(n, ro, Yrn, rn(Kj)), Q(n, ro, Wrn, rn(y1n)); + } + function ZF(n, e) { + BF(); + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te, xe; + if (yn = n.e, m = n.d, r = n.a, yn == 0) + switch (e) { + case 0: + return "0"; + case 1: + return Rm; + case 2: + return "0.00"; + case 3: + return "0.000"; + case 4: + return "0.0000"; + case 5: + return "0.00000"; + case 6: + return "0.000000"; + default: + return X = new x1(), e < 0 ? X.a += "0E+" : X.a += "0E", X.a += -e, X.a; + } + if (O = m * 10 + 1 + 7, N = K(fs, wh, 28, O + 1, 15, 1), t = O, m == 1) + if (f = r[0], f < 0) { + xe = ki(f, vr); + do + k = xe, xe = Xk(xe, 10), N[--t] = 48 + Ae(bs(k, nr(xe, 10))) & oi; + while (Cc(xe, 0) != 0); + } else { + xe = f; + do + k = xe, xe = xe / 10 | 0, N[--t] = 48 + (k - xe * 10) & oi; + while (xe != 0); + } + else { + Fn = K(ye, _e, 28, m, 15, 1), te = m, Oc(r, 0, Fn, 0, te); + n: + for (; ; ) { + for (tn = 0, l = te - 1; l >= 0; l--) + Rn = Zi(Bs(tn, 32), ki(Fn[l], vr)), S = mye(Rn), Fn[l] = Ae(S), tn = Ae(g0(S, 32)); + I = Ae(tn), j = t; + do + N[--t] = 48 + I % 10 & oi; + while ((I = I / 10 | 0) != 0 && t != 0); + for (i = 9 - j + t, h = 0; h < i && t > 0; h++) + N[--t] = 48; + for (d = te - 1; Fn[d] == 0; d--) + if (d == 0) + break n; + te = d + 1; + } + for (; N[t] == 48; ) + ++t; + } + if (p = yn < 0, s = O - t - e - 1, e == 0) + return p && (N[--t] = 45), ws(N, t, O - t); + if (e > 0 && s >= -6) { + if (s >= 0) { + for (a = t + s, g = O - 1; g >= a; g--) + N[g + 1] = N[g]; + return N[++a] = 46, p && (N[--t] = 45), ws(N, t, O - t + 1); + } + for (d = 2; d < -s + 1; d++) + N[--t] = 48; + return N[--t] = 46, N[--t] = 48, p && (N[--t] = 45), ws(N, t, O - t); + } + return kn = t + 1, c = O, _ = new fg(), p && (_.a += "-"), c - kn >= 1 ? (z1(_, N[t]), _.a += ".", _.a += ws(N, t + 1, O - t - 1)) : _.a += ws(N, t, O - t), _.a += "E", s > 0 && (_.a += "+"), _.a += "" + s, _.a; + } + function wzn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X; + switch (n.c = e, n.g = new de(), t = (u0(), new Yd(n.c)), i = new IE(t), HY(i), O = Oe(z(n.c, (Wk(), U1n))), h = u(z(n.c, Uq), 324), _ = u(z(n.c, Gq), 437), s = u(z(n.c, _1n), 490), N = u(z(n.c, qq), 438), n.j = $(R(z(n.c, Yce))), f = n.a, h.g) { + case 0: + f = n.a; + break; + case 1: + f = n.b; + break; + case 2: + f = n.i; + break; + case 3: + f = n.e; + break; + case 4: + f = n.f; + break; + default: + throw M(new Gn(xS + (h.f != null ? h.f : "" + h.g))); + } + if (n.d = new sOn(f, _, s), U(n.d, (W4(), O8), un(z(n.c, Jce))), n.d.c = on(un(z(n.c, H1n))), AM(n.c).i == 0) + return n.d; + for (d = new ne(AM(n.c)); d.e != d.i.gc(); ) { + for (a = u(ue(d), 27), p = a.g / 2, g = a.f / 2, X = new V(a.i + p, a.j + g); Zc(n.g, X); ) + d0(X, (y.Math.random() - 0.5) * mh, (y.Math.random() - 0.5) * mh); + k = u(z(a, (He(), $v)), 140), j = new jOn(X, new Ho(X.a - p - n.j / 2 - k.b, X.b - g - n.j / 2 - k.d, a.g + n.j + (k.b + k.c), a.f + n.j + (k.d + k.a))), nn(n.d.i, j), Xe(n.g, X, new wi(j, a)); + } + switch (N.g) { + case 0: + if (O == null) + n.d.d = u(sn(n.d.i, 0), 68); + else + for (I = new C(n.d.i); I.a < I.c.c.length; ) + j = u(E(I), 68), m = u(u(ee(n.g, j.a), 42).b, 27).jh(), m != null && An(m, O) && (n.d.d = j); + break; + case 1: + for (r = new V(n.c.g, n.c.f), r.a *= 0.5, r.b *= 0.5, d0(r, n.c.i, n.c.j), c = St, S = new C(n.d.i); S.a < S.c.c.length; ) + j = u(E(S), 68), l = J1(j.a, r), l < c && (c = l, n.d.d = j); + break; + default: + throw M(new Gn(xS + (N.f != null ? N.f : "" + N.g))); + } + return n.d; + } + function NLe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j; + for (g = 0, r = new ne((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a)); r.e != r.i.gc(); ) + i = u(ue(r), 27), on(un(z(i, (cn(), Bd)))) || (a = At(i), (x(z(a, Qh)) !== x((hh(), y1)) || x(z(a, Nd)) === x((s1(), gv)) || x(z(a, Nd)) === x((s1(), wv)) || on(un(z(a, ab))) || x(z(a, Bw)) !== x((bd(), Dw)) || x(z(a, ja)) === x((ps(), mb)) || x(z(a, ja)) === x((ps(), Gw)) || x(z(a, xd)) === x((d1(), Sv)) || x(z(a, xd)) === x((d1(), Pv))) && !on(un(z(i, lI))) && (ht(i, (W(), dt), Y(g)), ++g), szn(n, i, t)); + for (g = 0, l = new ne((!e.b && (e.b = new q(Wt, e, 12, 3)), e.b)); l.e != l.i.gc(); ) + f = u(ue(l), 74), (x(z(e, (cn(), Qh))) !== x((hh(), y1)) || x(z(e, Nd)) === x((s1(), gv)) || x(z(e, Nd)) === x((s1(), wv)) || on(un(z(e, ab))) || x(z(e, Bw)) !== x((bd(), Dw)) || x(z(e, ja)) === x((ps(), mb)) || x(z(e, ja)) === x((ps(), Gw)) || x(z(e, xd)) === x((d1(), Sv)) || x(z(e, xd)) === x((d1(), Pv))) && (ht(f, (W(), dt), Y(g)), ++g), k = Rh(f), j = ra(f), d = on(un(z(k, Kw))), m = !on(un(z(f, Bd))), p = d && H0(f) && on(un(z(f, $d))), c = At(k) == e && At(k) == At(j), s = (At(k) == e && j == e) ^ (At(j) == e && k == e), m && !p && (s || c) && htn(n, f, e, t); + if (At(e)) + for (h = new ne($In(At(e))); h.e != h.i.gc(); ) + f = u(ue(h), 74), k = Rh(f), k == e && H0(f) && (p = on(un(z(k, (cn(), Kw)))) && on(un(z(f, $d))), p && htn(n, f, e, t)); + } + function $Le(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te, xe, Lt, Ju, Br, Fo; + for (t.Ug("Greedy cycle removal", 1), O = e.a, Fo = O.c.length, n.a = K(ye, _e, 28, Fo, 15, 1), n.c = K(ye, _e, 28, Fo, 15, 1), n.b = K(ye, _e, 28, Fo, 15, 1), l = 0, S = new C(O); S.a < S.c.c.length; ) { + for (k = u(E(S), 10), k.p = l, kn = new C(k.j); kn.a < kn.c.c.length; ) { + for (X = u(E(kn), 12), f = new C(X.e); f.a < f.c.c.length; ) + i = u(E(f), 18), i.c.i != k && (te = u(v(i, (cn(), Mv)), 17).a, n.a[l] += te > 0 ? te + 1 : 1); + for (s = new C(X.g); s.a < s.c.c.length; ) + i = u(E(s), 18), i.d.i != k && (te = u(v(i, (cn(), Mv)), 17).a, n.c[l] += te > 0 ? te + 1 : 1); + } + n.c[l] == 0 ? Fe(n.e, k) : n.a[l] == 0 && Fe(n.f, k), ++l; + } + for (m = -1, p = 1, d = new Z(), n.d = u(v(e, (W(), S3)), 234); Fo > 0; ) { + for (; n.e.b != 0; ) + Lt = u(UL(n.e), 10), n.b[Lt.p] = m--, Oen(n, Lt), --Fo; + for (; n.f.b != 0; ) + Ju = u(UL(n.f), 10), n.b[Ju.p] = p++, Oen(n, Ju), --Fo; + if (Fo > 0) { + for (g = Wi, I = new C(O); I.a < I.c.c.length; ) + k = u(E(I), 10), n.b[k.p] == 0 && (N = n.c[k.p] - n.a[k.p], N >= g && (N > g && (d.c.length = 0, g = N), Kn(d.c, k))); + a = n.sg(d), n.b[a.p] = p++, Oen(n, a), --Fo; + } + } + for (xe = O.c.length + 1, l = 0; l < O.c.length; l++) + n.b[l] < 0 && (n.b[l] += xe); + for (j = new C(O); j.a < j.c.c.length; ) + for (k = u(E(j), 10), Rn = CDn(k.j), tn = Rn, yn = 0, Fn = tn.length; yn < Fn; ++yn) + for (X = tn[yn], _ = fh(X.g), r = _, c = 0, h = r.length; c < h; ++c) + i = r[c], Br = i.d.i.p, n.b[k.p] > n.b[Br] && (G0(i, !0), U(e, kj, (_n(), !0))); + n.a = null, n.c = null, n.b = null, vo(n.f), vo(n.e), t.Vg(); + } + function gzn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X; + for (_ = u(L((!n.a && (n.a = new q(Mt, n, 6, 6)), n.a), 0), 166), a = new Cu(), N = new de(), X = MUn(_), Wc(N.f, _, X), g = new de(), i = new Ct(), m = Nh(Eo(A(T(Oo, 1), Bn, 20, 0, [(!e.d && (e.d = new Nn(Wt, e, 8, 5)), e.d), (!e.e && (e.e = new Nn(Wt, e, 7, 4)), e.e)]))); pe(m); ) { + if (p = u(fe(m), 74), (!n.a && (n.a = new q(Mt, n, 6, 6)), n.a).i != 1) + throw M(new Gn(tWn + (!n.a && (n.a = new q(Mt, n, 6, 6)), n.a).i)); + p != n && (j = u(L((!p.a && (p.a = new q(Mt, p, 6, 6)), p.a), 0), 166), xt(i, j, i.c.b, i.c), k = u(Kr(gr(N.f, j)), 13), k || (k = MUn(j), Wc(N.f, j, k)), d = t ? vi(new ir(u(sn(X, X.c.length - 1), 8)), u(sn(k, k.c.length - 1), 8)) : vi(new ir((Ln(0, X.c.length), u(X.c[0], 8))), (Ln(0, k.c.length), u(k.c[0], 8))), Wc(g.f, j, d)); + } + if (i.b != 0) + for (S = u(sn(X, t ? X.c.length - 1 : 0), 8), l = 1; l < X.c.length; l++) { + for (I = u(sn(X, t ? X.c.length - 1 - l : l), 8), r = ge(i, 0); r.b != r.d.c; ) + j = u(be(r), 166), k = u(Kr(gr(N.f, j)), 13), k.c.length <= l ? p$(r) : (O = tt(new ir(u(sn(k, t ? k.c.length - 1 - l : l), 8)), u(Kr(gr(g.f, j)), 8)), (I.a != O.a || I.b != O.b) && (c = I.a - S.a, f = I.b - S.b, s = O.a - S.a, h = O.b - S.b, s * f == h * c && (c == 0 || isNaN(c) ? c : c < 0 ? -1 : 1) == (s == 0 || isNaN(s) ? s : s < 0 ? -1 : 1) && (f == 0 || isNaN(f) ? f : f < 0 ? -1 : 1) == (h == 0 || isNaN(h) ? h : h < 0 ? -1 : 1) ? (y.Math.abs(c) < y.Math.abs(s) || y.Math.abs(f) < y.Math.abs(h)) && xt(a, I, a.c.b, a.c) : l > 1 && xt(a, S, a.c.b, a.c), p$(r))); + S = I; + } + return a; + } + function pzn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn; + for (t.Ug(pVn, 1), Fn = u(Wr(ut(new Tn(null, new In(e, 16)), new L4n()), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), a = u(Wr(ut(new Tn(null, new In(e, 16)), new kkn(e)), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [Yr]))), 15), m = u(Wr(ut(new Tn(null, new In(e, 16)), new vkn(e)), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [Yr]))), 15), k = K(NI, OS, 40, e.gc(), 0, 1), s = 0; s < a.gc(); s++) + r = u(a.Xb(s), 40), kn = u(v(r, (lc(), O2)), 17).a, kn >= 0 && kn < a.gc() && !k[kn] && (k[kn] = r, a.gd(s), --s); + for (f = 0; f < a.gc(); f++) + for (r = u(a.Xb(f), 40), kn = u(v(r, (lc(), O2)), 17).a, g = 0; ; g++) { + if (p = kn + g, p < k.length && p >= 0 && !k[p]) { + k[p] = r, a.gd(f), --f; + break; + } + if (p = kn - g, p < k.length && p >= 0 && !k[p]) { + k[p] = r, a.gd(f), --f; + break; + } + } + for (m.jd(new N4n()), h = k.length - 1; h >= 0; h--) + !k[h] && !m.dc() && (k[h] = u(m.Xb(0), 40), m.gd(0)); + for (l = 0; l < k.length; l++) + !k[l] && !Fn.dc() && (k[l] = u(Fn.Xb(0), 40), Fn.gd(0)); + for (c = 0; c < k.length; c++) + U(k[c], (pt(), o9), Y(c)); + for (d = u(E8e(ut(new Tn(null, new In(e, 16)), new $4n())), 534), X = d, tn = 0, yn = X.length; tn < yn; ++tn) { + for (_ = X[tn], i = F$(_), pzn(n, i, t.eh(1 / d.length | 0)), Dn(), od(i, new tD((pt(), o9))), j = new Ct(), N = ge(i, 0); N.b != N.d.c; ) + for (O = u(be(N), 40), I = ge(_.d, 0); I.b != I.d.c; ) + S = u(be(I), 65), S.c == O && xt(j, S, j.c.b, j.c); + vo(_.d), Ri(_.d, j); + } + t.Vg(); + } + function mzn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S; + for (i = new Z(), f = new Z(), j = e / 2, p = n.gc(), r = u(n.Xb(0), 8), S = u(n.Xb(1), 8), m = wF(r.a, r.b, S.a, S.b, j), nn(i, (Ln(0, m.c.length), u(m.c[0], 8))), nn(f, (Ln(1, m.c.length), u(m.c[1], 8))), l = 2; l < p; l++) + k = r, r = S, S = u(n.Xb(l), 8), m = wF(r.a, r.b, k.a, k.b, j), nn(i, (Ln(1, m.c.length), u(m.c[1], 8))), nn(f, (Ln(0, m.c.length), u(m.c[0], 8))), m = wF(r.a, r.b, S.a, S.b, j), nn(i, (Ln(0, m.c.length), u(m.c[0], 8))), nn(f, (Ln(1, m.c.length), u(m.c[1], 8))); + for (m = wF(S.a, S.b, r.a, r.b, j), nn(i, (Ln(1, m.c.length), u(m.c[1], 8))), nn(f, (Ln(0, m.c.length), u(m.c[0], 8))), t = new Cu(), s = new Z(), Fe(t, (Ln(0, i.c.length), u(i.c[0], 8))), a = 1; a < i.c.length - 2; a += 2) + c = (Ln(a, i.c.length), u(i.c[a], 8)), g = E_n((Ln(a - 1, i.c.length), u(i.c[a - 1], 8)), c, (Ln(a + 1, i.c.length), u(i.c[a + 1], 8)), (Ln(a + 2, i.c.length), u(i.c[a + 2], 8))), !isFinite(g.a) || !isFinite(g.b) ? xt(t, c, t.c.b, t.c) : xt(t, g, t.c.b, t.c); + for (Fe(t, u(sn(i, i.c.length - 1), 8)), nn(s, (Ln(0, f.c.length), u(f.c[0], 8))), d = 1; d < f.c.length - 2; d += 2) + c = (Ln(d, f.c.length), u(f.c[d], 8)), g = E_n((Ln(d - 1, f.c.length), u(f.c[d - 1], 8)), c, (Ln(d + 1, f.c.length), u(f.c[d + 1], 8)), (Ln(d + 2, f.c.length), u(f.c[d + 2], 8))), !isFinite(g.a) || !isFinite(g.b) ? Kn(s.c, c) : Kn(s.c, g); + for (nn(s, u(sn(f, f.c.length - 1), 8)), h = s.c.length - 1; h >= 0; h--) + Fe(t, (Ln(h, s.c.length), u(s.c[h], 8))); + return t; + } + function vzn(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + for (O = $(R(z(e, (Kh(), Vw)))), p = $(R(z(e, f9))), g = $(R(z(e, UI))), NQ((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a)), S = fGn((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a), O, n.b), j = 0; j < S.c.length; j++) + if (h = (Ln(j, S.c.length), u(S.c[j], 186)), j != 0 && (m = (Ln(j - 1, S.c.length), u(S.c[j - 1], 186)), _Fn(h, m.f + m.b + n.b)), k = BLe(j, S, O, n.b, on(un(z(e, (Bf(), Lq))))), on(un(k.b))) { + for (c = new C(h.a); c.a < c.c.c.length; ) + r = u(E(c), 172), r.c = !1, r.k = !1, ZUn(r); + h.d = new Z(), h.e = O, --j; + } else if (eke(n, h), j + 1 < S.c.length && (n.e = y.Math.max(h.e + n.b + u(sn((Ln(j + 1, S.c.length), u(S.c[j + 1], 186)).a, 0), 172).r - O, n.c), n.f = y.Math.min(h.e + n.b + u(sn((Ln(j + 1, S.c.length), u(S.c[j + 1], 186)).a, 0), 172).r - O, n.d), h.d.c.length != 0 && (n.c = y.Math.max(n.c, u(sn(h.d, h.d.c.length - 1), 315).d + (h.d.c.length <= 1 ? 0 : n.b)), n.d = y.Math.min(n.c, u(sn(h.d, h.d.c.length - 1), 315).d + (h.d.c.length <= 1 ? 0 : n.b)))), S.c.length == 1) + for (d = u(sn(h.d, h.d.c.length - 1), 315), a = u(sn(d.a, d.a.c.length - 1), 172), f = new C(a.n); f.a < f.c.c.length; ) + s = u(E(f), 209), n.c = y.Math.max(n.c, a.r - s.d), n.d = y.Math.min(n.d, a.r - s.d), n.e = y.Math.max(n.e, s.d + n.b), n.f = y.Math.min(n.f, s.d + n.b); + return I = cKn(S, n.b), N = y.Math.max(I.a, p - (t.b + t.c)), l = y.Math.max(I.b, g - (t.d + t.a)), i = l - I.b, ht(e, s9, i), ht(e, GI, S), new iW(n.a, N, I.b + i, (x5(), _j)); + } + function xLe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te; + if (tn = u(v(n, (cn(), Ht)), 101), tn != (Li(), Jf) && tn != Pa) { + for (m = n.b, p = m.c.length, a = new zc((Co(p + 2, cB), oT(Zi(Zi(5, p + 2), (p + 2) / 10 | 0)))), k = new zc((Co(p + 2, cB), oT(Zi(Zi(5, p + 2), (p + 2) / 10 | 0)))), nn(a, new de()), nn(a, new de()), nn(k, new Z()), nn(k, new Z()), X = new Z(), e = 0; e < p; e++) + for (t = (Ln(e, m.c.length), u(m.c[e], 30)), yn = (Ln(e, a.c.length), u(a.c[e], 85)), j = new de(), Kn(a.c, j), Fn = (Ln(e, k.c.length), u(k.c[e], 15)), I = new Z(), Kn(k.c, I), r = new C(t.a); r.a < r.c.c.length; ) { + if (i = u(E(r), 10), TY(i)) { + Kn(X.c, i); + continue; + } + for (l = new ie(ce(Ei(i).a.Kc(), new En())); pe(l); ) + f = u(fe(l), 18), Rn = f.c.i, TY(Rn) && (kn = u(yn.xc(v(Rn, (W(), st))), 10), kn || (kn = R_n(n, Rn), yn.zc(v(Rn, st), kn), Fn.Fc(kn)), Yi(f, u(sn(kn.j, 1), 12))); + for (h = new ie(ce(Qt(i).a.Kc(), new En())); pe(h); ) + f = u(fe(h), 18), te = f.d.i, TY(te) && (S = u(ee(j, v(te, (W(), st))), 10), S || (S = R_n(n, te), Xe(j, v(te, st), S), Kn(I.c, S)), Di(f, u(sn(S.j, 0), 12))); + } + for (d = 0; d < k.c.length; d++) + if (O = (Ln(d, k.c.length), u(k.c[d], 15)), !O.dc()) + for (g = null, d == 0 ? (g = new Nc(n), Xb(0, m.c.length), d6(m.c, 0, g)) : d == a.c.length - 1 ? (g = new Nc(n), Kn(m.c, g)) : g = (Ln(d - 1, m.c.length), u(m.c[d - 1], 30)), s = O.Kc(); s.Ob(); ) + c = u(s.Pb(), 10), xi(c, g); + for (_ = new C(X); _.a < _.c.c.length; ) + N = u(E(_), 10), xi(N, null); + U(n, (W(), hH), X); + } + } + function FLe(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te, xe, Lt, Ju, Br; + for (Lt = new Z(), m = new C(e.b); m.a < m.c.c.length; ) + for (g = u(E(m), 30), _ = new C(g.a); _.a < _.c.c.length; ) { + for (N = u(E(_), 10), N.p = -1, d = Wi, yn = Wi, Fn = new C(N.j); Fn.a < Fn.c.c.length; ) { + for (kn = u(E(Fn), 12), r = new C(kn.e); r.a < r.c.c.length; ) + t = u(E(r), 18), Rn = u(v(t, (cn(), I3)), 17).a, d = y.Math.max(d, Rn); + for (i = new C(kn.g); i.a < i.c.c.length; ) + t = u(E(i), 18), Rn = u(v(t, (cn(), I3)), 17).a, yn = y.Math.max(yn, Rn); + } + U(N, OI, Y(d)), U(N, DI, Y(yn)); + } + for (S = 0, p = new C(e.b); p.a < p.c.c.length; ) + for (g = u(E(p), 30), _ = new C(g.a); _.a < _.c.c.length; ) + N = u(E(_), 10), N.p < 0 && (xe = new QG(), xe.b = S++, Wqn(n, N, xe), Kn(Lt.c, xe)); + for (tn = Oh(Lt.c.length), a = Oh(Lt.c.length), s = 0; s < Lt.c.length; s++) + nn(tn, new Z()), nn(a, Y(0)); + for (eDe(e, Lt, tn, a), Ju = u(xf(Lt, K($ie, hVn, 261, Lt.c.length, 0, 1)), 854), X = u(xf(tn, K(rs, yw, 15, tn.c.length, 0, 1)), 198), l = K(ye, _e, 28, a.c.length, 15, 1), f = 0; f < l.length; f++) + l[f] = (Ln(f, a.c.length), u(a.c[f], 17)).a; + for (I = 0, O = new Z(), h = 0; h < Ju.length; h++) + l[h] == 0 && Kn(O.c, Ju[h]); + for (j = K(ye, _e, 28, Ju.length, 15, 1); O.c.length != 0; ) + for (xe = u(Zl(O, 0), 261), j[xe.b] = I++; !X[xe.b].dc(); ) + Br = u(X[xe.b].gd(0), 261), --l[Br.b], l[Br.b] == 0 && Kn(O.c, Br); + for (n.a = K($ie, hVn, 261, Ju.length, 0, 1), c = 0; c < Ju.length; c++) + for (k = Ju[c], te = j[c], n.a[te] = k, k.b = te, _ = new C(k.e); _.a < _.c.c.length; ) + N = u(E(_), 10), N.p = te; + return n.a; + } + function BLe(n, e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m, k, j, S; + for (k = !1, h = !1, g = n + 1, m = (Ln(n, e.c.length), u(e.c[n], 186)), f = m.a, l = null, s = 0; s < m.a.c.length; s++) + if (c = (Ln(s, f.c.length), u(f.c[s], 172)), !c.c) { + if (c.b.c.length == 0) { + fl(), Gk(m, c), --s, k = !0; + continue; + } + if (c.k || (l && fA(l), l = new iJ(l ? l.e + l.d + i : 0, m.f, i), Hk(c, l.e + l.d, m.f), nn(m.d, l), _Q(l, c), c.k = !0), a = null, a = (S = null, s < m.a.c.length - 1 ? S = u(sn(m.a, s + 1), 172) : g < e.c.length && (Ln(g, e.c.length), u(e.c[g], 186)).a.c.length != 0 && (S = u(sn((Ln(g, e.c.length), u(e.c[g], 186)).a, 0), 172)), S), j = !1, a && (j = !rt(a.j, m)), a) { + if (a.b.c.length != 0 && !on(un(u(sn(a.b, 0), 27).of((Bf(), Kj))))) + uk(c, t - c.s), fA(c.q), k = k | sje(m, c, a, t, i); + else { + Gk(m, a); + break; + } + if (a.b.c.length == 0) + for (e.c.length > g && Gk((Ln(g, e.c.length), u(e.c[g], 186)), a), a = null; e.c.length > g && (Ln(g, e.c.length), u(e.c[g], 186)).a.c.length == 0; ) + au(e, (Ln(g, e.c.length), e.c[g])); + if (!a) { + --s; + continue; + } + if (!on(un(u(sn(a.b, 0), 27).of((Bf(), Kj)))) && ZSe(e, m, c, a, j, t, g, i)) { + k = !0; + continue; + } + if (j) { + if (p = m.b, d = a.f, !on(un(u(sn(a.b, 0), 27).of(Kj))) && pOe(e, m, c, a, t, g, i, r)) { + if (k = !0, p < d) { + h = !0, a.j = m; + break; + } + continue; + } else if (gY(m, c)) { + c.c = !0, k = !0; + continue; + } + } else if (gY(m, c)) { + c.c = !0, k = !0; + continue; + } + if (k) + continue; + } + if (gY(m, c)) { + c.c = !0, k = !0, a && (a.k = !1); + continue; + } else + fA(c.q); + } + return new wi((_n(), !!k), !!h); + } + function cn() { + cn = F, PH = (He(), Bue), phn = Rue, Tj = qan, Ws = Kue, T2 = Uan, gb = Gan, Uw = zan, Tv = Xan, Av = Van, IH = iO, pb = Ud, OH = _ue, X8 = Qan, yI = $3, Mj = (ltn(), ete), M2 = tte, Rd = ite, A2 = rte, qte = new $i(Jj, Y(0)), Mv = Yee, ghn = Zee, I3 = nte, Thn = Tte, vhn = ote, khn = hte, LH = pte, yhn = dte, jhn = wte, jI = Ite, NH = Ate, Chn = jte, Ehn = kte, Mhn = Cte, bb = zee, z8 = Xee, MH = hee, Wfn = aee, Vte = k9, Wte = cO, Xte = Qj, zte = rO, mhn = (Gp(), Zw), new $i(x3, mhn), lhn = new h0(12), hhn = new $i(M1, lhn), zfn = (El(), Bv), $l = new $i(yan, zfn), _w = new $i(uo, 0), Ute = new $i(fU, Y(1)), oI = new $i(x2, Um), Bd = tO, Ht = v9, Cv = H2, xte = zj, Mh = Sue, Rw = R2, Gte = new $i(hU, (_n(), !0)), Kw = Xj, $d = eU, Fd = qd, kI = Ta, SH = Ww, Gfn = (ui(), Wf), Do = new $i(Hd, Gfn), db = K2, mI = San, Hw = Jw, Hte = sU, bhn = _an, dhn = (Bg(), eE), new $i(xan, dhn), Rte = rU, Kte = cU, _te = uU, Bte = iU, DH = ute, xd = Nee, ja = Lee, V8 = cte, ou = Tee, Nd = tee, U8 = eee, ab = Kne, Hfn = _ne, yH = Gne, Cj = Hne, jH = Zne, uhn = $ee, ohn = xee, ehn = kee, vI = Jee, AH = Ree, TH = wee, fhn = Uee, Vfn = see, CH = fee, kH = Gj, shn = Fee, fI = Dne, Rfn = One, sI = Ine, Yfn = mee, Qfn = pee, Zfn = vee, jv = _2, xr = yb, v1 = Ean, Th = nU, EH = Zq, qfn = Xne, k1 = oU, q8 = Oue, wI = Lue, wb = Ban, ahn = Nue, Ev = $ue, ihn = See, rhn = Iee, qw = N3, mH = Pne, chn = Dee, bI = cee, dI = ree, pI = $v, thn = Eee, G8 = _ee, Aj = Wan, Ufn = iee, whn = Qee, Xfn = uee, Lte = Wne, Nte = Jne, Fte = Mee, $te = Qne, nhn = tU, gI = Aee, aI = Yne, Qh = Rne, _fn = xne, hI = Nne, Kfn = $ne, lI = Fne, Bw = Lne, vH = Bne, Jfn = gee; + } + function Ze(n) { + var e, t, i; + if (n.d >= n.j) { + n.a = -1, n.c = 1; + return; + } + if (e = Xi(n.i, n.d++), n.a = e, n.b == 1) { + switch (e) { + case 92: + if (i = 10, n.d >= n.j) + throw M(new Le($e((Ie(), qS)))); + n.a = Xi(n.i, n.d++); + break; + case 45: + (n.e & 512) == 512 && n.d < n.j && Xi(n.i, n.d) == 91 ? (++n.d, i = 24) : i = 0; + break; + case 91: + if ((n.e & 512) != 512 && n.d < n.j && Xi(n.i, n.d) == 58) { + ++n.d, i = 20; + break; + } + default: + (e & 64512) == Sy && n.d < n.j && (t = Xi(n.i, n.d), (t & 64512) == 56320 && (n.a = fr + (e - Sy << 10) + t - 56320, ++n.d)), i = 0; + } + n.c = i; + return; + } + switch (e) { + case 124: + i = 2; + break; + case 42: + i = 3; + break; + case 43: + i = 4; + break; + case 63: + i = 5; + break; + case 41: + i = 7; + break; + case 46: + i = 8; + break; + case 91: + i = 9; + break; + case 94: + i = 11; + break; + case 36: + i = 12; + break; + case 40: + if (i = 6, n.d >= n.j || Xi(n.i, n.d) != 63) + break; + if (++n.d >= n.j) + throw M(new Le($e((Ie(), jK)))); + switch (e = Xi(n.i, n.d++), e) { + case 58: + i = 13; + break; + case 61: + i = 14; + break; + case 33: + i = 15; + break; + case 91: + i = 19; + break; + case 62: + i = 18; + break; + case 60: + if (n.d >= n.j) + throw M(new Le($e((Ie(), jK)))); + if (e = Xi(n.i, n.d++), e == 61) + i = 16; + else if (e == 33) + i = 17; + else + throw M(new Le($e((Ie(), PWn)))); + break; + case 35: + for (; n.d < n.j && (e = Xi(n.i, n.d++), e != 41); ) + ; + if (e != 41) + throw M(new Le($e((Ie(), IWn)))); + i = 21; + break; + default: + if (e == 45 || 97 <= e && e <= 122 || 65 <= e && e <= 90) { + --n.d, i = 22; + break; + } else if (e == 40) { + i = 23; + break; + } + throw M(new Le($e((Ie(), jK)))); + } + break; + case 92: + if (i = 10, n.d >= n.j) + throw M(new Le($e((Ie(), qS)))); + n.a = Xi(n.i, n.d++); + break; + default: + i = 0; + } + n.c = i; + } + function RLe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j; + if (t.Ug("Process compaction", 1), !!on(un(v(e, (lc(), Mln))))) { + for (r = u(v(e, kb), 88), p = $(R(v(e, fq))), aIe(n, e, r), tLe(e, p / 2 / 2), m = e.b, od(m, new akn(r)), l = ge(m, 0); l.b != l.d.c; ) + if (h = u(be(l), 40), !on(un(v(h, (pt(), Ma))))) { + if (i = BAe(h, r), k = LPe(h, e), d = 0, g = 0, i) + switch (j = i.e, r.g) { + case 2: + d = j.a - p - h.f.a, k.e.a - p - h.f.a < d && (d = k.e.a - p - h.f.a), g = d + h.f.a; + break; + case 1: + d = j.a + i.f.a + p, k.e.a + p > d && (d = k.e.a + k.f.a + p), g = d + h.f.a; + break; + case 4: + d = j.b - p - h.f.b, k.e.b - p - h.f.b < d && (d = k.e.b - p - h.f.b), g = d + h.f.b; + break; + case 3: + d = j.b + i.f.b + p, k.e.b + p > d && (d = k.e.b + k.f.b + p), g = d + h.f.b; + } + else if (k) + switch (r.g) { + case 2: + d = k.e.a - p - h.f.a, g = d + h.f.a; + break; + case 1: + d = k.e.a + k.f.a + p, g = d + h.f.a; + break; + case 4: + d = k.e.b - p - h.f.b, g = d + h.f.b; + break; + case 3: + d = k.e.b + k.f.b + p, g = d + h.f.b; + } + x(v(e, sq)) === x((d5(), Lj)) ? (c = d, s = g, f = tm(ut(new Tn(null, new In(n.a, 16)), new eMn(c, s))), f.a != null ? r == (ui(), Fr) || r == Xr ? h.e.a = d : h.e.b = d : (r == (ui(), Fr) || r == us ? f = tm(ut(O$n(new Tn(null, new In(n.a, 16))), new dkn(c))) : f = tm(ut(O$n(new Tn(null, new In(n.a, 16))), new bkn(c))), f.a != null && (r == Fr || r == Xr ? h.e.a = $(R((oe(f.a != null), u(f.a, 42)).a)) : h.e.b = $(R((oe(f.a != null), u(f.a, 42)).a)))), f.a != null && (a = qr(n.a, (oe(f.a != null), f.a), 0), a > 0 && a != u(v(h, Ah), 17).a && (U(h, pln, (_n(), !0)), U(h, Ah, Y(a))))) : r == (ui(), Fr) || r == Xr ? h.e.a = d : h.e.b = d; + } + t.Vg(); + } + } + function kzn(n) { + var e, t, i, r, c, s, f, h, l; + for (n.b = 1, Ze(n), e = null, n.c == 0 && n.a == 94 ? (Ze(n), e = (nt(), nt(), new yo(4)), Fc(e, 0, rv), f = new yo(4)) : f = (nt(), nt(), new yo(4)), r = !0; (l = n.c) != 1; ) { + if (l == 0 && n.a == 93 && !r) { + e && (V5(e, f), f = e); + break; + } + if (t = n.a, i = !1, l == 10) + switch (t) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + pw(f, Pm(t)), i = !0; + break; + case 105: + case 73: + case 99: + case 67: + t = (pw(f, Pm(t)), -1), t < 0 && (i = !0); + break; + case 112: + case 80: + if (h = $nn(n, t), !h) + throw M(new Le($e((Ie(), EK)))); + pw(f, h), i = !0; + break; + default: + t = gen(n); + } + else if (l == 24 && !r) { + if (e && (V5(e, f), f = e), c = kzn(n), V5(f, c), n.c != 0 || n.a != 93) + throw M(new Le($e((Ie(), RWn)))); + break; + } + if (Ze(n), !i) { + if (l == 0) { + if (t == 91) + throw M(new Le($e((Ie(), Rcn)))); + if (t == 93) + throw M(new Le($e((Ie(), Kcn)))); + if (t == 45 && !r && n.a != 93) + throw M(new Le($e((Ie(), CK)))); + } + if (n.c != 0 || n.a != 45 || t == 45 && r) + Fc(f, t, t); + else { + if (Ze(n), (l = n.c) == 1) + throw M(new Le($e((Ie(), US)))); + if (l == 0 && n.a == 93) + Fc(f, t, t), Fc(f, 45, 45); + else { + if (l == 0 && n.a == 93 || l == 24) + throw M(new Le($e((Ie(), CK)))); + if (s = n.a, l == 0) { + if (s == 91) + throw M(new Le($e((Ie(), Rcn)))); + if (s == 93) + throw M(new Le($e((Ie(), Kcn)))); + if (s == 45) + throw M(new Le($e((Ie(), CK)))); + } else + l == 10 && (s = gen(n)); + if (Ze(n), t > s) + throw M(new Le($e((Ie(), HWn)))); + Fc(f, t, s); + } + } + } + r = !1; + } + if (n.c == 1) + throw M(new Le($e((Ie(), US)))); + return Gg(f), z5(f), n.b = 0, Ze(n), f; + } + function KLe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _; + if (t.Ug("Coffman-Graham Layering", 1), e.a.c.length == 0) { + t.Vg(); + return; + } + for (_ = u(v(e, (cn(), thn)), 17).a, h = 0, s = 0, g = new C(e.a); g.a < g.c.c.length; ) + for (d = u(E(g), 10), d.p = h++, c = new ie(ce(Qt(d).a.Kc(), new En())); pe(c); ) + r = u(fe(c), 18), r.p = s++; + for (n.d = K(oo, zh, 28, h, 16, 1), n.a = K(oo, zh, 28, s, 16, 1), n.b = K(ye, _e, 28, h, 15, 1), n.e = K(ye, _e, 28, h, 15, 1), n.f = K(ye, _e, 28, h, 15, 1), gT(n.c), Fke(n, e), m = new dM(new O7n(n)), N = new C(e.a); N.a < N.c.c.length; ) { + for (I = u(E(N), 10), c = new ie(ce(Ei(I).a.Kc(), new En())); pe(c); ) + r = u(fe(c), 18), n.a[r.p] || ++n.b[I.p]; + n.b[I.p] == 0 && Mp(km(m, I), Km); + } + for (f = 0; m.b.c.length != 0; ) + for (I = u(w$(m), 10), n.f[I.p] = f++, c = new ie(ce(Qt(I).a.Kc(), new En())); pe(c); ) + r = u(fe(c), 18), !n.a[r.p] && (j = r.d.i, --n.b[j.p], Pn(n.c, j, Y(n.f[I.p])), n.b[j.p] == 0 && Mp(km(m, j), Km)); + for (p = new dM(new D7n(n)), O = new C(e.a); O.a < O.c.c.length; ) { + for (I = u(E(O), 10), c = new ie(ce(Qt(I).a.Kc(), new En())); pe(c); ) + r = u(fe(c), 18), n.a[r.p] || ++n.e[I.p]; + n.e[I.p] == 0 && Mp(km(p, I), Km); + } + for (a = new Z(), i = mIn(e, a); p.b.c.length != 0; ) + for (S = u(w$(p), 10), (i.a.c.length >= _ || !N8e(S, i)) && (i = mIn(e, a)), xi(S, i), c = new ie(ce(Ei(S).a.Kc(), new En())); pe(c); ) + r = u(fe(c), 18), !n.a[r.p] && (k = r.c.i, --n.e[k.p], n.e[k.p] == 0 && Mp(km(p, k), Km)); + for (l = a.c.length - 1; l >= 0; --l) + nn(e.b, (Ln(l, a.c.length), u(a.c[l], 30))); + e.a.c.length = 0, t.Vg(); + } + function yzn(n, e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + N = !1; + do + for (N = !1, c = e ? new Ua(n.a.b).a.gc() - 2 : 1; e ? c >= 0 : c < new Ua(n.a.b).a.gc(); c += e ? -1 : 1) + for (r = yJ(n.a, Y(c)), p = 0; p < r.b; p++) + if (d = u(Zo(r, p), 10), !!kt(d, (W(), dt)) && !(_ke(n.a, Y(c)) && n.r == (ps(), mb) || Hke(n.a, Y(c)) && n.r == (ps(), Gw))) { + for (O = !0, S = 0; S < r.b; S++) + j = u(Zo(r, S), 10), kt(j, dt) && (e && u(v(d, dt), 17).a < u(v(j, dt), 17).a || !e && u(v(d, dt), 17).a > u(v(j, dt), 17).a) && (O = !1); + if (O) { + for (h = e ? c + 1 : c - 1, f = yJ(n.a, Y(h)), s = !1, I = !0, i = !1, a = ge(f, 0); a.b != a.d.c; ) + l = u(be(a), 10), kt(l, dt) ? l.p != d.p && (s = s | (e ? u(v(l, dt), 17).a < u(v(d, dt), 17).a : u(v(l, dt), 17).a > u(v(d, dt), 17).a), I = !1) : !s && I && l.k == (Vn(), Sc) && (i = !0, e ? g = u(fe(new ie(ce(Ei(l).a.Kc(), new En()))), 18).c.i : g = u(fe(new ie(ce(Qt(l).a.Kc(), new En()))), 18).d.i, g == d && (e ? t = u(fe(new ie(ce(Qt(l).a.Kc(), new En()))), 18).d.i : t = u(fe(new ie(ce(Ei(l).a.Kc(), new En()))), 18).c.i, (e ? u(Fb(n.a, t), 17).a - u(Fb(n.a, g), 17).a : u(Fb(n.a, g), 17).a - u(Fb(n.a, t), 17).a) <= 2 && (I = !1))); + if (i && I && (e ? t = u(fe(new ie(ce(Qt(d).a.Kc(), new En()))), 18).d.i : t = u(fe(new ie(ce(Ei(d).a.Kc(), new En()))), 18).c.i, (e ? u(Fb(n.a, t), 17).a - u(Fb(n.a, d), 17).a : u(Fb(n.a, d), 17).a - u(Fb(n.a, t), 17).a) <= 2 && t.k == (Vn(), Xt) && (I = !1)), s || I) { + for (k = YHn(n, d, e); k.a.gc() != 0; ) + m = u(k.a.ec().Kc().Pb(), 10), k.a.Bc(m) != null, Ri(k, YHn(n, m, e)); + --p, N = !0; + } + } + } + while (N); + } + function _Le(n) { + Me(n.c, Be, A(T(fn, 1), J, 2, 6, [Ji, "http://www.w3.org/2001/XMLSchema#decimal"])), Me(n.d, Be, A(T(fn, 1), J, 2, 6, [Ji, "http://www.w3.org/2001/XMLSchema#integer"])), Me(n.e, Be, A(T(fn, 1), J, 2, 6, [Ji, "http://www.w3.org/2001/XMLSchema#boolean"])), Me(n.f, Be, A(T(fn, 1), J, 2, 6, [Ji, "EBoolean", Qe, "EBoolean:Object"])), Me(n.i, Be, A(T(fn, 1), J, 2, 6, [Ji, "http://www.w3.org/2001/XMLSchema#byte"])), Me(n.g, Be, A(T(fn, 1), J, 2, 6, [Ji, "http://www.w3.org/2001/XMLSchema#hexBinary"])), Me(n.j, Be, A(T(fn, 1), J, 2, 6, [Ji, "EByte", Qe, "EByte:Object"])), Me(n.n, Be, A(T(fn, 1), J, 2, 6, [Ji, "EChar", Qe, "EChar:Object"])), Me(n.t, Be, A(T(fn, 1), J, 2, 6, [Ji, "http://www.w3.org/2001/XMLSchema#double"])), Me(n.u, Be, A(T(fn, 1), J, 2, 6, [Ji, "EDouble", Qe, "EDouble:Object"])), Me(n.F, Be, A(T(fn, 1), J, 2, 6, [Ji, "http://www.w3.org/2001/XMLSchema#float"])), Me(n.G, Be, A(T(fn, 1), J, 2, 6, [Ji, "EFloat", Qe, "EFloat:Object"])), Me(n.I, Be, A(T(fn, 1), J, 2, 6, [Ji, "http://www.w3.org/2001/XMLSchema#int"])), Me(n.J, Be, A(T(fn, 1), J, 2, 6, [Ji, "EInt", Qe, "EInt:Object"])), Me(n.N, Be, A(T(fn, 1), J, 2, 6, [Ji, "http://www.w3.org/2001/XMLSchema#long"])), Me(n.O, Be, A(T(fn, 1), J, 2, 6, [Ji, "ELong", Qe, "ELong:Object"])), Me(n.Z, Be, A(T(fn, 1), J, 2, 6, [Ji, "http://www.w3.org/2001/XMLSchema#short"])), Me(n.$, Be, A(T(fn, 1), J, 2, 6, [Ji, "EShort", Qe, "EShort:Object"])), Me(n._, Be, A(T(fn, 1), J, 2, 6, [Ji, "http://www.w3.org/2001/XMLSchema#string"])); + } + function HLe(n, e, t, i, r, c, s) { + var f, h, l, a, d, g, p, m; + return g = u(i.a, 17).a, p = u(i.b, 17).a, d = n.b, m = n.c, f = 0, a = 0, e == (ui(), Fr) || e == Xr ? (a = a7(lBn(Gb(_r(new Tn(null, new In(t.b, 16)), new x4n()), new m4n()))), d.e.b + d.f.b / 2 > a ? (l = ++p, f = $(R(ho(Hb(_r(new Tn(null, new In(t.b, 16)), new rMn(r, l)), new v4n()))))) : (h = ++g, f = $(R(ho(Ap(_r(new Tn(null, new In(t.b, 16)), new cMn(r, h)), new k4n())))))) : (a = a7(lBn(Gb(_r(new Tn(null, new In(t.b, 16)), new C4n()), new p4n()))), d.e.a + d.f.a / 2 > a ? (l = ++p, f = $(R(ho(Hb(_r(new Tn(null, new In(t.b, 16)), new tMn(r, l)), new y4n()))))) : (h = ++g, f = $(R(ho(Ap(_r(new Tn(null, new In(t.b, 16)), new iMn(r, h)), new j4n())))))), e == Fr ? (tr(n.a, new V($(R(v(d, (pt(), jf)))) - r, f)), tr(n.a, new V(m.e.a + m.f.a + r + c, f)), tr(n.a, new V(m.e.a + m.f.a + r + c, m.e.b + m.f.b / 2)), tr(n.a, new V(m.e.a + m.f.a, m.e.b + m.f.b / 2))) : e == Xr ? (tr(n.a, new V($(R(v(d, (pt(), Js)))) + r, d.e.b + d.f.b / 2)), tr(n.a, new V(d.e.a + d.f.a + r, f)), tr(n.a, new V(m.e.a - r - c, f)), tr(n.a, new V(m.e.a - r - c, m.e.b + m.f.b / 2)), tr(n.a, new V(m.e.a, m.e.b + m.f.b / 2))) : e == us ? (tr(n.a, new V(f, $(R(v(d, (pt(), jf)))) - r)), tr(n.a, new V(f, m.e.b + m.f.b + r + c)), tr(n.a, new V(m.e.a + m.f.a / 2, m.e.b + m.f.b + r + c)), tr(n.a, new V(m.e.a + m.f.a / 2, m.e.b + m.f.b + r))) : (n.a.b == 0 || (u($s(n.a), 8).b = $(R(v(d, (pt(), Js)))) + r * u(s.b, 17).a), tr(n.a, new V(f, $(R(v(d, (pt(), Js)))) + r * u(s.b, 17).a)), tr(n.a, new V(f, m.e.b - r * u(s.a, 17).a - c))), new wi(Y(g), Y(p)); + } + function qLe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p; + if (s = !0, d = null, i = null, r = null, e = !1, p = $oe, l = null, c = null, f = 0, h = yx(n, f, Kdn, _dn), h < n.length && (zn(h, n.length), n.charCodeAt(h) == 58) && (d = (Bi(f, h, n.length), n.substr(f, h - f)), f = h + 1), t = d != null && t7(jO, d.toLowerCase()), t) { + if (h = n.lastIndexOf("!/"), h == -1) + throw M(new Gn("no archive separator")); + s = !0, i = qo(n, f, ++h), f = h; + } else + f >= 0 && An(n.substr(f, 2), "//") ? (f += 2, h = yx(n, f, D9, L9), i = (Bi(f, h, n.length), n.substr(f, h - f)), f = h) : d != null && (f == n.length || (zn(f, n.length), n.charCodeAt(f) != 47)) && (s = !1, h = GX(n, bu(35), f), h == -1 && (h = n.length), i = (Bi(f, h, n.length), n.substr(f, h - f)), f = h); + if (!t && f < n.length && (zn(f, n.length), n.charCodeAt(f) == 47) && (h = yx(n, f + 1, D9, L9), a = (Bi(f + 1, h, n.length), n.substr(f + 1, h - (f + 1))), a.length > 0 && Xi(a, a.length - 1) == 58 && (r = a, f = h)), f < n.length && (zn(f, n.length), n.charCodeAt(f) == 47) && (++f, e = !0), f < n.length && (zn(f, n.length), n.charCodeAt(f) != 63) && (zn(f, n.length), n.charCodeAt(f) != 35)) { + for (g = new Z(); f < n.length && (zn(f, n.length), n.charCodeAt(f) != 63) && (zn(f, n.length), n.charCodeAt(f) != 35); ) + h = yx(n, f, D9, L9), nn(g, (Bi(f, h, n.length), n.substr(f, h - f))), f = h, f < n.length && (zn(f, n.length), n.charCodeAt(f) == 47) && (q6e(n, ++f) || g.c.push("")); + p = K(fn, J, 2, g.c.length, 6, 1), xf(g, p); + } + return f < n.length && (zn(f, n.length), n.charCodeAt(f) == 63) && (h = b4(n, 35, ++f), h == -1 && (h = n.length), l = (Bi(f, h, n.length), n.substr(f, h - f)), f = h), f < n.length && (c = $W(n, ++f)), yOe(s, d, i, r, p, l), new jF(s, d, i, r, e, p, l, c); + } + function jzn() { + jzn = F, YF(), qe = new M0(), Pn(qe, (en(), ef), Qf), Pn(qe, Ts, Qf), Pn(qe, Xu, Qf), Pn(qe, tf, Qf), Pn(qe, mu, Qf), Pn(qe, Vu, Qf), Pn(qe, tf, ef), Pn(qe, Qf, os), Pn(qe, ef, os), Pn(qe, Ts, os), Pn(qe, Xu, os), Pn(qe, pu, os), Pn(qe, tf, os), Pn(qe, mu, os), Pn(qe, Vu, os), Pn(qe, su, os), Pn(qe, Qf, No), Pn(qe, ef, No), Pn(qe, os, No), Pn(qe, Ts, No), Pn(qe, Xu, No), Pn(qe, pu, No), Pn(qe, tf, No), Pn(qe, su, No), Pn(qe, $o, No), Pn(qe, mu, No), Pn(qe, $u, No), Pn(qe, Vu, No), Pn(qe, ef, Ts), Pn(qe, Xu, Ts), Pn(qe, tf, Ts), Pn(qe, Vu, Ts), Pn(qe, ef, Xu), Pn(qe, Ts, Xu), Pn(qe, tf, Xu), Pn(qe, Xu, Xu), Pn(qe, mu, Xu), Pn(qe, Qf, ss), Pn(qe, ef, ss), Pn(qe, os, ss), Pn(qe, No, ss), Pn(qe, Ts, ss), Pn(qe, Xu, ss), Pn(qe, pu, ss), Pn(qe, tf, ss), Pn(qe, $o, ss), Pn(qe, su, ss), Pn(qe, Vu, ss), Pn(qe, mu, ss), Pn(qe, Gc, ss), Pn(qe, Qf, $o), Pn(qe, ef, $o), Pn(qe, os, $o), Pn(qe, Ts, $o), Pn(qe, Xu, $o), Pn(qe, pu, $o), Pn(qe, tf, $o), Pn(qe, su, $o), Pn(qe, Vu, $o), Pn(qe, $u, $o), Pn(qe, Gc, $o), Pn(qe, ef, su), Pn(qe, Ts, su), Pn(qe, Xu, su), Pn(qe, tf, su), Pn(qe, $o, su), Pn(qe, Vu, su), Pn(qe, mu, su), Pn(qe, Qf, gu), Pn(qe, ef, gu), Pn(qe, os, gu), Pn(qe, Ts, gu), Pn(qe, Xu, gu), Pn(qe, pu, gu), Pn(qe, tf, gu), Pn(qe, su, gu), Pn(qe, Vu, gu), Pn(qe, ef, mu), Pn(qe, os, mu), Pn(qe, No, mu), Pn(qe, Xu, mu), Pn(qe, Qf, $u), Pn(qe, ef, $u), Pn(qe, No, $u), Pn(qe, Ts, $u), Pn(qe, Xu, $u), Pn(qe, pu, $u), Pn(qe, tf, $u), Pn(qe, tf, Gc), Pn(qe, Xu, Gc), Pn(qe, su, Qf), Pn(qe, su, Ts), Pn(qe, su, os), Pn(qe, pu, Qf), Pn(qe, pu, ef), Pn(qe, pu, No); + } + function ULe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X; + switch (t.Ug("Brandes & Koepf node placement", 1), n.a = e, n.c = TPe(e), i = u(v(e, (cn(), AH)), 281), p = on(un(v(e, G8))), n.d = i == (Vk(), YP) && !p || i == rH, gOe(n, e), _ = null, X = null, S = null, I = null, j = (Co(4, vw), new zc(4)), u(v(e, AH), 281).g) { + case 3: + S = new Wg(e, n.c.d, (Sf(), Kd), (sh(), j1)), Kn(j.c, S); + break; + case 1: + I = new Wg(e, n.c.d, (Sf(), zf), (sh(), j1)), Kn(j.c, I); + break; + case 4: + _ = new Wg(e, n.c.d, (Sf(), Kd), (sh(), vb)), Kn(j.c, _); + break; + case 2: + X = new Wg(e, n.c.d, (Sf(), zf), (sh(), vb)), Kn(j.c, X); + break; + default: + S = new Wg(e, n.c.d, (Sf(), Kd), (sh(), j1)), I = new Wg(e, n.c.d, zf, j1), _ = new Wg(e, n.c.d, Kd, vb), X = new Wg(e, n.c.d, zf, vb), Kn(j.c, _), Kn(j.c, X), Kn(j.c, S), Kn(j.c, I); + } + for (r = new zCn(e, n.c), f = new C(j); f.a < f.c.c.length; ) + c = u(E(f), 185), cLe(r, c, n.b), tIe(c); + for (g = new iKn(e, n.c), h = new C(j); h.a < h.c.c.length; ) + c = u(E(h), 185), SOe(g, c); + if (t._g()) + for (l = new C(j); l.a < l.c.c.length; ) + c = u(E(l), 185), t.bh(c + " size is " + gF(c)); + if (d = null, n.d && (a = JDe(n, j, n.c.d), JUn(e, a, t) && (d = a)), !d) + for (l = new C(j); l.a < l.c.c.length; ) + c = u(E(l), 185), JUn(e, c, t) && (!d || gF(d) > gF(c)) && (d = c); + for (!d && (d = (Ln(0, j.c.length), u(j.c[0], 185))), k = new C(e.b); k.a < k.c.c.length; ) + for (m = u(E(k), 30), N = new C(m.a); N.a < N.c.c.length; ) + O = u(E(N), 10), O.n.b = $(d.p[O.p]) + $(d.d[O.p]); + for (t._g() && (t.bh("Chosen node placement: " + d), t.bh("Blocks: " + aHn(d)), t.bh("Classes: " + KCe(d, t)), t.bh("Marked edges: " + n.b)), s = new C(j); s.a < s.c.c.length; ) + c = u(E(s), 185), c.g = null, c.b = null, c.a = null, c.d = null, c.j = null, c.i = null, c.p = null; + e3e(n.c), n.b.a.$b(), t.Vg(); + } + function GLe(n) { + var e, t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te; + if (n.c.length == 1) + return kKn((Ln(0, n.c.length), u(n.c[0], 121))), Ln(0, n.c.length), u(n.c[0], 121); + if (n.c.length <= 0) + return new tk(); + for (h = new C(n); h.a < h.c.c.length; ) { + for (s = u(E(h), 121), I = 0, m = et, k = et, g = Wi, p = Wi, S = ge(s.b, 0); S.b != S.d.c; ) + j = u(be(S), 40), I += u(v(j, (lc(), FI)), 17).a, m = y.Math.min(m, j.e.a), k = y.Math.min(k, j.e.b), g = y.Math.max(g, j.e.a + j.f.a), p = y.Math.max(p, j.e.b + j.f.b); + U(s, (lc(), FI), Y(I)), U(s, (pt(), Ov), new V(m, k)), U(s, Nj, new V(g, p)); + } + for (Dn(), Zt(n, new q3n()), _ = new tk(), Ur(_, (Ln(0, n.c.length), u(n.c[0], 96))), d = 0, Fn = 0, l = new C(n); l.a < l.c.c.length; ) + s = u(E(l), 121), X = vi(Ki(u(v(s, (pt(), Nj)), 8)), u(v(s, Ov), 8)), d = y.Math.max(d, X.a), Fn += X.a * X.b; + for (d = y.Math.max(d, y.Math.sqrt(Fn) * $(R(v(_, (lc(), yre))))), tn = $(R(v(_, fq))), Rn = 0, te = 0, a = 0, e = tn, f = new C(n); f.a < f.c.c.length; ) + s = u(E(f), 121), X = vi(Ki(u(v(s, (pt(), Nj)), 8)), u(v(s, Ov), 8)), Rn + X.a > d && (Rn = 0, te += a + tn, a = 0), lUn(_, s, Rn, te), e = y.Math.max(e, Rn + X.a), a = y.Math.max(a, X.b), Rn += X.a + tn; + for (N = new de(), t = new de(), kn = new C(n); kn.a < kn.c.c.length; ) + for (yn = u(E(kn), 121), i = on(un(v(yn, (He(), zj)))), O = yn.q ? yn.q : Vh, c = O.vc().Kc(); c.Ob(); ) + r = u(c.Pb(), 44), Zc(N, r.ld()) ? x(u(r.ld(), 149).Sg()) !== x(r.md()) && (i && Zc(t, r.ld()) ? (fl(), "" + u(r.ld(), 149).Pg()) : (Xe(N, u(r.ld(), 149), r.md()), U(_, u(r.ld(), 149), r.md()), i && Xe(t, u(r.ld(), 149), r.md()))) : (Xe(N, u(r.ld(), 149), r.md()), U(_, u(r.ld(), 149), r.md())); + return kKn(_), _; + } + function XA(n, e) { + switch (n.e) { + case 0: + case 2: + case 4: + case 6: + case 42: + case 44: + case 46: + case 48: + case 8: + case 10: + case 12: + case 14: + case 16: + case 18: + case 20: + case 22: + case 24: + case 26: + case 28: + case 30: + case 32: + case 34: + case 36: + case 38: + return new UIn(n.b, n.a, e, n.c); + case 1: + return new $C(n.a, e, Ot(e.Dh(), n.c)); + case 43: + return new xTn(n.a, e, Ot(e.Dh(), n.c)); + case 3: + return new ii(n.a, e, Ot(e.Dh(), n.c)); + case 45: + return new Mu(n.a, e, Ot(e.Dh(), n.c)); + case 41: + return new Pu(u(gs(n.c), 29), n.a, e, Ot(e.Dh(), n.c)); + case 50: + return new rxn(u(gs(n.c), 29), n.a, e, Ot(e.Dh(), n.c)); + case 5: + return new jV(n.a, e, Ot(e.Dh(), n.c), n.d.n); + case 47: + return new WAn(n.a, e, Ot(e.Dh(), n.c), n.d.n); + case 7: + return new q(n.a, e, Ot(e.Dh(), n.c), n.d.n); + case 49: + return new jp(n.a, e, Ot(e.Dh(), n.c), n.d.n); + case 9: + return new $Tn(n.a, e, Ot(e.Dh(), n.c)); + case 11: + return new NTn(n.a, e, Ot(e.Dh(), n.c)); + case 13: + return new xX(n.a, e, Ot(e.Dh(), n.c)); + case 15: + return new QC(n.a, e, Ot(e.Dh(), n.c)); + case 17: + return new FTn(n.a, e, Ot(e.Dh(), n.c)); + case 19: + return new Eg(n.a, e, Ot(e.Dh(), n.c)); + case 21: + return new FX(n.a, e, Ot(e.Dh(), n.c)); + case 23: + return new F7(n.a, e, Ot(e.Dh(), n.c)); + case 25: + return new YAn(n.a, e, Ot(e.Dh(), n.c), n.d.n); + case 27: + return new Nn(n.a, e, Ot(e.Dh(), n.c), n.d.n); + case 29: + return new QAn(n.a, e, Ot(e.Dh(), n.c), n.d.n); + case 31: + return new JAn(n.a, e, Ot(e.Dh(), n.c), n.d.n); + case 33: + return new CV(n.a, e, Ot(e.Dh(), n.c), n.d.n); + case 35: + return new EV(n.a, e, Ot(e.Dh(), n.c), n.d.n); + case 37: + return new NL(n.a, e, Ot(e.Dh(), n.c), n.d.n); + case 39: + return new bM(n.a, e, Ot(e.Dh(), n.c), n.d.n); + case 40: + return new _t(e, Ot(e.Dh(), n.c)); + default: + throw M(new ec("Unknown feature style: " + n.e)); + } + } + function Ezn(n) { + var e, t, i, r, c, s, f, h; + for (c = 0, r = n.a.b, h = ge(n.a, 0); h.b != h.d.c; ) { + if (f = u(be(h), 240), s = (c + 1) / (r + 1), !n.c && !n.d) + return; + n.c && !n.d ? (n.g = !0, n.b == (ui(), Fr) ? (i = n.c.e.b + n.c.f.b + n.e * (c + 1), e = new V($(R(v(n.c, (pt(), Js)))) + n.e, i), t = new V($(R(v(n.c, jf))) - n.e, i)) : n.b == Xr ? (i = n.c.e.b + n.c.f.b + n.e * (c + 1), e = new V($(R(v(n.c, (pt(), jf)))) - n.e, i), t = new V($(R(v(n.c, Js))) + n.e, i)) : n.b == us ? (i = n.c.e.a + n.c.f.a + n.e * (c + 1), e = new V(i, $(R(v(n.c, (pt(), Js)))) + n.e), t = new V(i, $(R(v(n.c, jf))) - n.e)) : (i = n.c.e.a + n.c.f.a + n.e * (c + 1), e = new V(i, $(R(v(n.c, (pt(), jf)))) - n.e), t = new V(i, $(R(v(n.c, Js))) + n.e))) : n.c && n.d ? n.b == (ui(), Fr) ? (i = n.d.e.b * s + (n.c.e.b + n.c.f.b) * (1 - s), e = new V($(R(v(n.c, (pt(), Js)))) + n.e, i), t = new V($(R(v(n.c, jf))) - n.e, i)) : n.b == Xr ? (i = n.d.e.b * s + (n.c.e.b + n.c.f.b) * (1 - s), e = new V($(R(v(n.c, (pt(), jf)))) - n.e, i), t = new V($(R(v(n.c, Js))) + n.e, i)) : n.b == us ? (i = n.d.e.a * s + (n.c.e.a + n.c.f.a) * (1 - s), e = new V(i, $(R(v(n.c, (pt(), Js)))) + n.e), t = new V(i, $(R(v(n.c, jf))) - n.e)) : (i = n.d.e.a * s + (n.c.e.a + n.c.f.a) * (1 - s), e = new V(i, $(R(v(n.c, (pt(), jf)))) - n.e), t = new V(i, $(R(v(n.c, Js))) + n.e)) : (n.f = !0, n.b == (ui(), Fr) ? (i = n.d.e.b - n.e * (c + 1), e = new V($(R(v(n.d, (pt(), Js)))) + n.e, i), t = new V($(R(v(n.d, jf))) - n.e, i)) : n.b == Xr ? (i = n.d.e.b - n.e * (c + 1), e = new V($(R(v(n.d, (pt(), jf)))) - n.e, i), t = new V($(R(v(n.d, Js))) + n.e, i)) : n.b == us ? (i = n.d.e.a - n.e * (c + 1), e = new V(i, $(R(v(n.d, (pt(), Js)))) + n.e), t = new V(i, $(R(v(n.d, jf))) - n.e)) : (i = n.d.e.a - n.e * (c + 1), e = new V(i, $(R(v(n.d, (pt(), jf)))) - n.e), t = new V(i, $(R(v(n.d, Js))) + n.e))), u(f.a, 8).a = e.a, u(f.a, 8).b = e.b, f.b.a = t.a, f.b.b = t.b, ++c; + } + } + function zLe(n, e, t, i, r, c) { + var s, f, h, l, a, d, g, p, m, k, j, S; + switch (e) { + case 71: + f = i.q.getFullYear() - ha >= -1900 ? 1 : 0, t >= 4 ? Re(n, A(T(fn, 1), J, 2, 6, [Bzn, Rzn])[f]) : Re(n, A(T(fn, 1), J, 2, 6, ["BC", "AD"])[f]); + break; + case 121: + f9e(n, t, i); + break; + case 77: + SSe(n, t, i); + break; + case 107: + h = r.q.getHours(), h == 0 ? Fh(n, 24, t) : Fh(n, h, t); + break; + case 83: + _Me(n, t, r); + break; + case 69: + a = i.q.getDay(), t == 5 ? Re(n, A(T(fn, 1), J, 2, 6, ["S", "M", "T", "W", "T", "F", "S"])[a]) : t == 4 ? Re(n, A(T(fn, 1), J, 2, 6, [vB, kB, yB, jB, EB, CB, MB])[a]) : Re(n, A(T(fn, 1), J, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[a]); + break; + case 97: + r.q.getHours() >= 12 && r.q.getHours() < 24 ? Re(n, A(T(fn, 1), J, 2, 6, ["AM", "PM"])[1]) : Re(n, A(T(fn, 1), J, 2, 6, ["AM", "PM"])[0]); + break; + case 104: + d = r.q.getHours() % 12, d == 0 ? Fh(n, 12, t) : Fh(n, d, t); + break; + case 75: + g = r.q.getHours() % 12, Fh(n, g, t); + break; + case 72: + p = r.q.getHours(), Fh(n, p, t); + break; + case 99: + m = i.q.getDay(), t == 5 ? Re(n, A(T(fn, 1), J, 2, 6, ["S", "M", "T", "W", "T", "F", "S"])[m]) : t == 4 ? Re(n, A(T(fn, 1), J, 2, 6, [vB, kB, yB, jB, EB, CB, MB])[m]) : t == 3 ? Re(n, A(T(fn, 1), J, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[m]) : Fh(n, m, 1); + break; + case 76: + k = i.q.getMonth(), t == 5 ? Re(n, A(T(fn, 1), J, 2, 6, ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"])[k]) : t == 4 ? Re(n, A(T(fn, 1), J, 2, 6, [sB, fB, hB, lB, c3, aB, dB, bB, wB, gB, pB, mB])[k]) : t == 3 ? Re(n, A(T(fn, 1), J, 2, 6, ["Jan", "Feb", "Mar", "Apr", c3, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[k]) : Fh(n, k + 1, t); + break; + case 81: + j = i.q.getMonth() / 3 | 0, t < 4 ? Re(n, A(T(fn, 1), J, 2, 6, ["Q1", "Q2", "Q3", "Q4"])[j]) : Re(n, A(T(fn, 1), J, 2, 6, ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"])[j]); + break; + case 100: + S = i.q.getDate(), Fh(n, S, t); + break; + case 109: + l = r.q.getMinutes(), Fh(n, l, t); + break; + case 115: + s = r.q.getSeconds(), Fh(n, s, t); + break; + case 122: + t < 4 ? Re(n, c.c[0]) : Re(n, c.c[1]); + break; + case 118: + Re(n, c.b); + break; + case 90: + t < 3 ? Re(n, NEe(c)) : t == 3 ? Re(n, REe(c)) : Re(n, KEe(c.a)); + break; + default: + return !1; + } + return !0; + } + function htn(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te, xe; + if (nUn(e), h = u(L((!e.b && (e.b = new Nn(he, e, 4, 7)), e.b), 0), 84), a = u(L((!e.c && (e.c = new Nn(he, e, 5, 8)), e.c), 0), 84), f = Gr(h), l = Gr(a), s = (!e.a && (e.a = new q(Mt, e, 6, 6)), e.a).i == 0 ? null : u(L((!e.a && (e.a = new q(Mt, e, 6, 6)), e.a), 0), 166), tn = u(ee(n.a, f), 10), Rn = u(ee(n.a, l), 10), yn = null, te = null, D(h, 193) && (X = u(ee(n.a, h), 305), D(X, 12) ? yn = u(X, 12) : D(X, 10) && (tn = u(X, 10), yn = u(sn(tn.j, 0), 12))), D(a, 193) && (Fn = u(ee(n.a, a), 305), D(Fn, 12) ? te = u(Fn, 12) : D(Fn, 10) && (Rn = u(Fn, 10), te = u(sn(Rn.j, 0), 12))), !tn || !Rn) + throw M(new hp("The source or the target of edge " + e + " could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN.")); + for (k = new C0(), Ur(k, e), U(k, (W(), st), e), U(k, (cn(), xr), null), p = u(v(i, qc), 21), tn == Rn && p.Fc((mr(), B8)), yn || (_ = (pr(), Qc), kn = null, s && mg(u(v(tn, Ht), 101)) && (kn = new V(s.j, s.k), UDn(kn, V7(e)), mLn(kn, t), Zb(l, f) && (_ = zu, tt(kn, tn.n))), yn = eGn(tn, kn, _, i)), te || (_ = (pr(), zu), xe = null, s && mg(u(v(Rn, Ht), 101)) && (xe = new V(s.b, s.c), UDn(xe, V7(e)), mLn(xe, t)), te = eGn(Rn, xe, _, Hi(Rn))), Yi(k, yn), Di(k, te), (yn.e.c.length > 1 || yn.g.c.length > 1 || te.e.c.length > 1 || te.g.c.length > 1) && p.Fc((mr(), F8)), g = new ne((!e.n && (e.n = new q(Sr, e, 1, 7)), e.n)); g.e != g.i.gc(); ) + if (d = u(ue(g), 135), !on(un(z(d, Bd))) && d.a) + switch (j = ex(d), nn(k.b, j), u(v(j, Th), 278).g) { + case 1: + case 2: + p.Fc((mr(), vv)); + break; + case 0: + p.Fc((mr(), mv)), U(j, Th, (Nf(), xv)); + } + if (c = u(v(i, U8), 322), S = u(v(i, vI), 323), r = c == (c5(), pj) || S == (M5(), KH), s && (!s.a && (s.a = new ii(xo, s, 5)), s.a).i != 0 && r) { + for (I = Qk(s), m = new Cu(), N = ge(I, 0); N.b != N.d.c; ) + O = u(be(N), 8), Fe(m, new ir(O)); + U(k, rfn, m); + } + return k; + } + function XLe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te, xe, Lt; + for (kn = 0, Fn = 0, tn = new de(), _ = u(ho(Hb(_r(new Tn(null, new In(n.b, 16)), new E4n()), new O4n())), 17).a + 1, yn = K(ye, _e, 28, _, 15, 1), j = K(ye, _e, 28, _, 15, 1), k = 0; k < _; k++) + yn[k] = 0, j[k] = 0; + for (h = u(Wr(uJ(new Tn(null, new In(n.a, 16))), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), a = h.Kc(); a.Ob(); ) + if (l = u(a.Pb(), 65), te = u(v(l.b, (lc(), Ah)), 17).a, Lt = u(v(l.c, Ah), 17).a, N = Lt - te, N > 1) + for (f = te + 1; f < Lt; f++) { + if (d = f, X = u(Wr(ut(new Tn(null, new In(n.b, 16)), new ykn(d)), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [Yr]))), 15), m = 0, e == (ui(), Fr) || e == Xr) { + for (X.jd(new P4n()), m = 0; m < X.gc() && (S = (f - te) / (Lt - te), !(u(X.Xb(m), 40).e.b > l.b.e.b * (1 - S) + l.c.e.b * S)); m++) + ; + if (X.gc() > 0 && (xe = l.a.b == 0 ? Ki(l.b.e) : u($s(l.a), 8), O = tt(Ki(u(X.Xb(X.gc() - 1), 40).e), u(X.Xb(X.gc() - 1), 40).f), g = tt(Ki(u(X.Xb(0), 40).e), u(X.Xb(0), 40).f), m >= X.gc() - 1 && xe.b > O.b && l.c.e.b > O.b || m <= 0 && xe.b < g.a && l.c.e.b < g.b)) + continue; + } else { + for (X.jd(new I4n()), m = 0; m < X.gc() && (S = (f - te) / (Lt - te), !(u(X.Xb(m), 40).e.a > l.b.e.a * (1 - S) + l.c.e.a * S)); m++) + ; + if (X.gc() > 0 && (xe = l.a.b == 0 ? Ki(l.b.e) : u($s(l.a), 8), O = tt(Ki(u(X.Xb(X.gc() - 1), 40).e), u(X.Xb(X.gc() - 1), 40).f), g = tt(Ki(u(X.Xb(0), 40).e), u(X.Xb(0), 40).f), m >= X.gc() - 1 && xe.a > O.a && l.c.e.a > O.a || m <= 0 && xe.a < g.a && l.c.e.a < g.a)) + continue; + } + r = new Ni(), c = new Ni(), Fe(l.a, r), Fe(l.a, c), s = new _L(r, c, l), I = lf(Bs(f, 32), ki(m, vr)), Zc(tn, Ml(I)) ? (p = u(ee(tn, Ml(I)), 675), Fe(p.a, s), hl(p.b) ? od(p.a, new F4n()) : od(p.a, new B4n()), Ezn(p)) : (p = new FRn(m == 0 ? null : u(X.Xb(m - 1), 40), m == X.gc() ? null : u(X.Xb(m), 40), s, n), Xe(tn, Ml(I), p)), e == Fr || e == Xr ? (p.f && p.d.e.b <= $(R(v(n, (pt(), cq)))) && ++kn, p.g && p.c.e.b + p.c.f.b >= $(R(v(n, (pt(), kln)))) && ++Fn) : (p.f && p.d.e.a <= $(R(v(n, (pt(), rq)))) && ++kn, p.g && p.c.e.a + p.c.f.a >= $(R(v(n, (pt(), vln)))) && ++Fn); + } + else + N == 0 ? Dnn(l) : N < 0 && (++yn[te], ++j[Lt], Rn = HLe(l, e, n, new wi(Y(kn), Y(Fn)), t, i, new wi(Y(j[Lt]), Y(yn[te]))), kn = u(Rn.a, 17).a, Fn = u(Rn.b, 17).a); + } + function VLe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I; + if (i = e, h = t, n.b && i.j == (en(), Wn) && h.j == (en(), Wn) && (I = i, i = h, h = I), Zc(n.a, i)) { + if (sf(u(ee(n.a, i), 49), h)) + return 1; + } else + Xe(n.a, i, new ei()); + if (Zc(n.a, h)) { + if (sf(u(ee(n.a, h), 49), i)) + return -1; + } else + Xe(n.a, h, new ei()); + if (Zc(n.d, i)) { + if (sf(u(ee(n.d, i), 49), h)) + return -1; + } else + Xe(n.d, i, new ei()); + if (Zc(n.d, h)) { + if (sf(u(ee(n.a, h), 49), i)) + return 1; + } else + Xe(n.d, h, new ei()); + if (i.j != h.j) + return S = xle(i.j, h.j), S == -1 ? ns(n, h, i) : ns(n, i, h), S; + if (i.e.c.length != 0 && h.e.c.length != 0) { + if (n.b && (S = RFn(i, h), S != 0)) + return S == -1 ? ns(n, h, i) : S == 1 && ns(n, i, h), S; + if (c = u(sn(i.e, 0), 18).c.i, a = u(sn(h.e, 0), 18).c.i, c == a) + return r = u(v(u(sn(i.e, 0), 18), (W(), dt)), 17).a, l = u(v(u(sn(h.e, 0), 18), dt), 17).a, r > l ? ns(n, i, h) : ns(n, h, i), r < l ? -1 : r > l ? 1 : 0; + for (m = n.c, k = 0, j = m.length; k < j; ++k) { + if (p = m[k], p == c) + return ns(n, i, h), 1; + if (p == a) + return ns(n, h, i), -1; + } + } + return i.g.c.length != 0 && h.g.c.length != 0 ? (f = u(v(i, (W(), dH)), 10), g = u(v(h, dH), 10), n.e == (hh(), qH) && f && g && kt(f, dt) && kt(g, dt) ? (r = u(v(f, dt), 17).a, l = u(v(g, dt), 17).a, r > l ? ns(n, i, h) : ns(n, h, i), r < l ? -1 : r > l ? 1 : 0) : n.b && (S = RFn(i, h), S != 0) ? (S == -1 ? ns(n, h, i) : S == 1 && ns(n, i, h), S) : (s = 0, d = 0, kt(u(sn(i.g, 0), 18), dt) && (s = u(v(u(sn(i.g, 0), 18), dt), 17).a), kt(u(sn(h.g, 0), 18), dt) && (d = u(v(u(sn(i.g, 0), 18), dt), 17).a), f && f == g ? on(un(v(u(sn(i.g, 0), 18), Gf))) && !on(un(v(u(sn(h.g, 0), 18), Gf))) ? (ns(n, i, h), 1) : !on(un(v(u(sn(i.g, 0), 18), Gf))) && on(un(v(u(sn(h.g, 0), 18), Gf))) ? (ns(n, h, i), -1) : (s > d ? ns(n, i, h) : ns(n, h, i), s < d ? -1 : s > d ? 1 : 0) : (n.f && (n.f._b(f) && (s = u(n.f.xc(f), 17).a), n.f._b(g) && (d = u(n.f.xc(g), 17).a)), s > d ? ns(n, i, h) : ns(n, h, i), s < d ? -1 : s > d ? 1 : 0))) : i.e.c.length != 0 && h.g.c.length != 0 ? (ns(n, i, h), 1) : i.g.c.length != 0 && h.e.c.length != 0 ? (ns(n, h, i), -1) : kt(i, (W(), dt)) && kt(h, dt) ? (r = u(v(i, dt), 17).a, l = u(v(h, dt), 17).a, r > l ? ns(n, i, h) : ns(n, h, i), r < l ? -1 : r > l ? 1 : 0) : (ns(n, h, i), -1); + } + function WLe(n) { + n.gb || (n.gb = !0, n.b = hc(n, 0), Ft(n.b, 18), jt(n.b, 19), n.a = hc(n, 1), Ft(n.a, 1), jt(n.a, 2), jt(n.a, 3), jt(n.a, 4), jt(n.a, 5), n.o = hc(n, 2), Ft(n.o, 8), Ft(n.o, 9), jt(n.o, 10), jt(n.o, 11), jt(n.o, 12), jt(n.o, 13), jt(n.o, 14), jt(n.o, 15), jt(n.o, 16), jt(n.o, 17), jt(n.o, 18), jt(n.o, 19), jt(n.o, 20), jt(n.o, 21), jt(n.o, 22), jt(n.o, 23), Lr(n.o), Lr(n.o), Lr(n.o), Lr(n.o), Lr(n.o), Lr(n.o), Lr(n.o), Lr(n.o), Lr(n.o), Lr(n.o), n.p = hc(n, 3), Ft(n.p, 2), Ft(n.p, 3), Ft(n.p, 4), Ft(n.p, 5), jt(n.p, 6), jt(n.p, 7), Lr(n.p), Lr(n.p), n.q = hc(n, 4), Ft(n.q, 8), n.v = hc(n, 5), jt(n.v, 9), Lr(n.v), Lr(n.v), Lr(n.v), n.w = hc(n, 6), Ft(n.w, 2), Ft(n.w, 3), Ft(n.w, 4), jt(n.w, 5), n.B = hc(n, 7), jt(n.B, 1), Lr(n.B), Lr(n.B), Lr(n.B), n.Q = hc(n, 8), jt(n.Q, 0), Lr(n.Q), n.R = hc(n, 9), Ft(n.R, 1), n.S = hc(n, 10), Lr(n.S), Lr(n.S), Lr(n.S), Lr(n.S), Lr(n.S), Lr(n.S), Lr(n.S), Lr(n.S), Lr(n.S), Lr(n.S), Lr(n.S), Lr(n.S), Lr(n.S), Lr(n.S), Lr(n.S), n.T = hc(n, 11), jt(n.T, 10), jt(n.T, 11), jt(n.T, 12), jt(n.T, 13), jt(n.T, 14), Lr(n.T), Lr(n.T), n.U = hc(n, 12), Ft(n.U, 2), Ft(n.U, 3), jt(n.U, 4), jt(n.U, 5), jt(n.U, 6), jt(n.U, 7), Lr(n.U), n.V = hc(n, 13), jt(n.V, 10), n.W = hc(n, 14), Ft(n.W, 18), Ft(n.W, 19), Ft(n.W, 20), jt(n.W, 21), jt(n.W, 22), jt(n.W, 23), n.bb = hc(n, 15), Ft(n.bb, 10), Ft(n.bb, 11), Ft(n.bb, 12), Ft(n.bb, 13), Ft(n.bb, 14), Ft(n.bb, 15), Ft(n.bb, 16), jt(n.bb, 17), Lr(n.bb), Lr(n.bb), n.eb = hc(n, 16), Ft(n.eb, 2), Ft(n.eb, 3), Ft(n.eb, 4), Ft(n.eb, 5), Ft(n.eb, 6), Ft(n.eb, 7), jt(n.eb, 8), jt(n.eb, 9), n.ab = hc(n, 17), Ft(n.ab, 0), Ft(n.ab, 1), n.H = hc(n, 18), jt(n.H, 0), jt(n.H, 1), jt(n.H, 2), jt(n.H, 3), jt(n.H, 4), jt(n.H, 5), Lr(n.H), n.db = hc(n, 19), jt(n.db, 2), n.c = We(n, 20), n.d = We(n, 21), n.e = We(n, 22), n.f = We(n, 23), n.i = We(n, 24), n.g = We(n, 25), n.j = We(n, 26), n.k = We(n, 27), n.n = We(n, 28), n.r = We(n, 29), n.s = We(n, 30), n.t = We(n, 31), n.u = We(n, 32), n.fb = We(n, 33), n.A = We(n, 34), n.C = We(n, 35), n.D = We(n, 36), n.F = We(n, 37), n.G = We(n, 38), n.I = We(n, 39), n.J = We(n, 40), n.L = We(n, 41), n.M = We(n, 42), n.N = We(n, 43), n.O = We(n, 44), n.P = We(n, 45), n.X = We(n, 46), n.Y = We(n, 47), n.Z = We(n, 48), n.$ = We(n, 49), n._ = We(n, 50), n.cb = We(n, 51), n.K = We(n, 52)); + } + function JLe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te; + for (s = new Ct(), X = u(v(t, (cn(), Do)), 88), k = 0, Ri(s, (!e.a && (e.a = new q(Ye, e, 10, 11)), e.a)); s.b != 0; ) + a = u(s.b == 0 ? null : (oe(s.b != 0), Xo(s, s.a.a)), 27), l = At(a), (x(z(l, Qh)) !== x((hh(), y1)) || x(z(l, Nd)) === x((s1(), gv)) || x(z(l, Nd)) === x((s1(), wv)) || on(un(z(l, ab))) || x(z(l, Bw)) !== x((bd(), Dw)) || x(z(l, ja)) === x((ps(), mb)) || x(z(l, ja)) === x((ps(), Gw)) || x(z(l, xd)) === x((d1(), Sv)) || x(z(l, xd)) === x((d1(), Pv))) && !on(un(z(a, lI))) && ht(a, (W(), dt), Y(k++)), S = !on(un(z(a, Bd))), S && (g = (!a.a && (a.a = new q(Ye, a, 10, 11)), a.a).i != 0, m = Mye(a), p = x(z(a, Rw)) === x((jl(), T1)), te = !Df(a, (He(), Nv)) || TLn(Oe(z(a, Nv))), N = null, te && p && (g || m) && (N = $Un(a), U(N, Do, X), kt(N, Mj) && xjn(new XY($(R(v(N, Mj)))), N), u(z(a, Fd), 181).gc() != 0 && (d = N, Ut(new Tn(null, (!a.c && (a.c = new q(Wu, a, 9, 9)), new In(a.c, 16))), new q9n(d)), Aqn(a, N))), tn = t, yn = u(ee(n.a, At(a)), 10), yn && (tn = yn.e), O = szn(n, a, tn), N && (O.e = N, N.e = O, Ri(s, (!a.a && (a.a = new q(Ye, a, 10, 11)), a.a)))); + for (k = 0, xt(s, e, s.c.b, s.c); s.b != 0; ) { + for (c = u(s.b == 0 ? null : (oe(s.b != 0), Xo(s, s.a.a)), 27), h = new ne((!c.b && (c.b = new q(Wt, c, 12, 3)), c.b)); h.e != h.i.gc(); ) + f = u(ue(h), 74), nUn(f), (x(z(e, Qh)) !== x((hh(), y1)) || x(z(e, Nd)) === x((s1(), gv)) || x(z(e, Nd)) === x((s1(), wv)) || on(un(z(e, ab))) || x(z(e, Bw)) !== x((bd(), Dw)) || x(z(e, ja)) === x((ps(), mb)) || x(z(e, ja)) === x((ps(), Gw)) || x(z(e, xd)) === x((d1(), Sv)) || x(z(e, xd)) === x((d1(), Pv))) && ht(f, (W(), dt), Y(k++)), Fn = Gr(u(L((!f.b && (f.b = new Nn(he, f, 4, 7)), f.b), 0), 84)), Rn = Gr(u(L((!f.c && (f.c = new Nn(he, f, 5, 8)), f.c), 0), 84)), !(on(un(z(f, Bd))) || on(un(z(Fn, Bd))) || on(un(z(Rn, Bd)))) && (j = H0(f) && on(un(z(Fn, Kw))) && on(un(z(f, $d))), _ = c, j || Zb(Rn, Fn) ? _ = Fn : Zb(Fn, Rn) && (_ = Rn), tn = t, yn = u(ee(n.a, _), 10), yn && (tn = yn.e), I = htn(n, f, _, tn), U(I, (W(), nfn), JTe(n, f, e, t))); + if (p = x(z(c, Rw)) === x((jl(), T1)), p) + for (r = new ne((!c.a && (c.a = new q(Ye, c, 10, 11)), c.a)); r.e != r.i.gc(); ) + i = u(ue(r), 27), te = !Df(i, (He(), Nv)) || TLn(Oe(z(i, Nv))), kn = x(z(i, Rw)) === x(T1), te && kn && xt(s, i, s.c.b, s.c); + } + } + function W() { + W = F; + var n, e; + st = new lt(Jtn), nfn = new lt("coordinateOrigin"), wH = new lt("processors"), Zsn = new Dt("compoundNode", (_n(), !1)), yj = new Dt("insideConnections", !1), rfn = new lt("originalBendpoints"), cfn = new lt("originalDummyNodePosition"), ufn = new lt("originalLabelEdge"), K8 = new lt("representedLabels"), R8 = new lt("endLabels"), M3 = new lt("endLabel.origin"), A3 = new Dt("labelSide", (To(), nE)), y2 = new Dt("maxEdgeThickness", 0), Gf = new Dt("reversed", !1), S3 = new lt(MXn), yf = new Dt("longEdgeSource", null), Es = new Dt("longEdgeTarget", null), xw = new Dt("longEdgeHasLabelDummies", !1), jj = new Dt("longEdgeBeforeLabelDummy", !1), rI = new Dt("edgeConstraint", (ld(), Y_)), fb = new lt("inLayerLayoutUnit"), Dd = new Dt("inLayerConstraint", (vl(), vj)), T3 = new Dt("inLayerSuccessorConstraint", new Z()), ifn = new Dt("inLayerSuccessorConstraintBetweenNonDummies", !1), Gu = new lt("portDummy"), iI = new Dt("crossingHint", Y(0)), qc = new Dt("graphProperties", (e = u(of(cH), 9), new _o(e, u(xs(e, e.length), 9), 0))), gc = new Dt("externalPortSide", (en(), sc)), tfn = new Dt("externalPortSize", new Ni()), hH = new lt("externalPortReplacedDummies"), cI = new lt("externalPortReplacedDummy"), Nl = new Dt("externalPortConnections", (n = u(of(hr), 9), new _o(n, u(xs(n, n.length), 9), 0))), hb = new Dt(gXn, 0), Ysn = new lt("barycenterAssociates"), P3 = new lt("TopSideComments"), C3 = new lt("BottomSideComments"), tI = new lt("CommentConnectionPort"), aH = new Dt("inputCollect", !1), bH = new Dt("outputCollect", !1), kj = new Dt("cyclic", !1), efn = new lt("crossHierarchyMap"), pH = new lt("targetOffset"), new Dt("splineLabelSize", new Ni()), E2 = new lt("spacings"), uI = new Dt("partitionConstraint", !1), sb = new lt("breakingPoint.info"), ffn = new lt("splines.survivingEdge"), Ld = new lt("splines.route.start"), C2 = new lt("splines.edgeChain"), sfn = new lt("originalPortConstraints"), lb = new lt("selfLoopHolder"), yv = new lt("splines.nsPortY"), dt = new lt("modelOrder"), dH = new lt("longEdgeTargetNode"), ka = new Dt(QXn, !1), j2 = new Dt(QXn, !1), lH = new lt("layerConstraints.hiddenNodes"), ofn = new lt("layerConstraints.opposidePort"), gH = new lt("targetNode.modelOrder"); + } + function QLe(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m; + for (d = ge(n.b, 0); d.b != d.d.c; ) + if (a = u(be(d), 40), !An(a.c, IS)) + for (c = u(Wr(new Tn(null, new In(uCe(a, n), 16)), _u(new yu(), new ku(), new ju(), A(T($r, 1), G, 108, 0, [(qu(), Yr)]))), 15), e == (ui(), Fr) || e == Xr ? c.jd(new A4n()) : c.jd(new S4n()), m = c.gc(), r = 0; r < m; r++) + s = m == 1 ? 0.5 : (1 + r) / (m + 1), e == Fr ? (l = $(R(v(a, (pt(), Js)))), a.e.a + a.f.a + i < l ? tr(u(c.Xb(r), 65).a, new V(l + t, a.e.b + a.f.b * s)) : u(c.Xb(r), 65).a.b > 0 && (f = u($s(u(c.Xb(r), 65).a), 8).a, g = a.e.a + a.f.a / 2, h = u($s(u(c.Xb(r), 65).a), 8).b, p = a.e.b + a.f.b / 2, i > 0 && y.Math.abs(h - p) / (y.Math.abs(f - g) / 40) > 50 && (p > h ? tr(u(c.Xb(r), 65).a, new V(a.e.a + a.f.a + i / 5.3, a.e.b + a.f.b * s - i / 2)) : tr(u(c.Xb(r), 65).a, new V(a.e.a + a.f.a + i / 5.3, a.e.b + a.f.b * s + i / 2)))), tr(u(c.Xb(r), 65).a, new V(a.e.a + a.f.a, a.e.b + a.f.b * s))) : e == Xr ? (l = $(R(v(a, (pt(), jf)))), a.e.a - i > l ? tr(u(c.Xb(r), 65).a, new V(l - t, a.e.b + a.f.b * s)) : u(c.Xb(r), 65).a.b > 0 && (f = u($s(u(c.Xb(r), 65).a), 8).a, g = a.e.a + a.f.a / 2, h = u($s(u(c.Xb(r), 65).a), 8).b, p = a.e.b + a.f.b / 2, i > 0 && y.Math.abs(h - p) / (y.Math.abs(f - g) / 40) > 50 && (p > h ? tr(u(c.Xb(r), 65).a, new V(a.e.a - i / 5.3, a.e.b + a.f.b * s - i / 2)) : tr(u(c.Xb(r), 65).a, new V(a.e.a - i / 5.3, a.e.b + a.f.b * s + i / 2)))), tr(u(c.Xb(r), 65).a, new V(a.e.a, a.e.b + a.f.b * s))) : e == us ? (l = $(R(v(a, (pt(), Js)))), a.e.b + a.f.b + i < l ? tr(u(c.Xb(r), 65).a, new V(a.e.a + a.f.a * s, l + t)) : u(c.Xb(r), 65).a.b > 0 && (f = u($s(u(c.Xb(r), 65).a), 8).a, g = a.e.a + a.f.a / 2, h = u($s(u(c.Xb(r), 65).a), 8).b, p = a.e.b + a.f.b / 2, i > 0 && y.Math.abs(f - g) / (y.Math.abs(h - p) / 40) > 50 && (g > f ? tr(u(c.Xb(r), 65).a, new V(a.e.a + a.f.a * s - i / 2, a.e.b + i / 5.3 + a.f.b)) : tr(u(c.Xb(r), 65).a, new V(a.e.a + a.f.a * s + i / 2, a.e.b + i / 5.3 + a.f.b)))), tr(u(c.Xb(r), 65).a, new V(a.e.a + a.f.a * s, a.e.b + a.f.b))) : (l = $(R(v(a, (pt(), jf)))), MFn(u(c.Xb(r), 65), n) ? tr(u(c.Xb(r), 65).a, new V(a.e.a + a.f.a * s, u($s(u(c.Xb(r), 65).a), 8).b)) : a.e.b - i > l ? tr(u(c.Xb(r), 65).a, new V(a.e.a + a.f.a * s, l - t)) : u(c.Xb(r), 65).a.b > 0 && (f = u($s(u(c.Xb(r), 65).a), 8).a, g = a.e.a + a.f.a / 2, h = u($s(u(c.Xb(r), 65).a), 8).b, p = a.e.b + a.f.b / 2, i > 0 && y.Math.abs(f - g) / (y.Math.abs(h - p) / 40) > 50 && (g > f ? tr(u(c.Xb(r), 65).a, new V(a.e.a + a.f.a * s - i / 2, a.e.b - i / 5.3)) : tr(u(c.Xb(r), 65).a, new V(a.e.a + a.f.a * s + i / 2, a.e.b - i / 5.3)))), tr(u(c.Xb(r), 65).a, new V(a.e.a + a.f.a * s, a.e.b))); + } + function He() { + He = F; + var n, e; + Nv = new lt(xVn), q2 = new lt(FVn), gan = (Bh(), Vq), Sue = new Mn(rrn, gan), x2 = new Mn(l3, null), Pue = new lt(pcn), man = (gd(), yt(Qq, A(T(Yq, 1), G, 298, 0, [Jq]))), Gj = new Mn(MS, man), zj = new Mn(Uy, (_n(), !1)), van = (ui(), Wf), Hd = new Mn(xR, van), jan = (El(), lU), yan = new Mn(qy, jan), Due = new Mn(wcn, !1), Man = (jl(), uO), R2 = new Mn(CS, Man), Nan = new h0(12), M1 = new Mn(J0, Nan), Vj = new Mn(i8, !1), tU = new Mn(AS, !1), Wj = new Mn(r8, !1), Ran = (Li(), Pa), v9 = new Mn(tR, Ran), N3 = new lt(TS), Jj = new lt(Ny), fU = new lt(uS), hU = new lt(t8), Tan = new Cu(), yb = new Mn(wrn, Tan), Oue = new Mn(mrn, !1), Lue = new Mn(vrn, !1), Aan = new Qv(), $v = new Mn(yrn, Aan), tO = new Mn(trn, !1), Fue = new Mn(BVn, 1), B2 = new lt(RVn), F2 = new lt(KVn), k9 = new Mn($y, !1), new Mn(_Vn, !0), Y(0), new Mn(HVn, Y(100)), new Mn(qVn, !1), Y(0), new Mn(UVn, Y(4e3)), Y(0), new Mn(GVn, Y(400)), new Mn(zVn, !1), new Mn(XVn, !1), new Mn(VVn, !0), new Mn(WVn, !1), pan = (qT(), wU), Iue = new Mn(gcn, pan), Bue = new Mn(Gin, 10), Rue = new Mn(zin, 10), qan = new Mn(WB, 20), Kue = new Mn(Xin, 10), Uan = new Mn(eR, 2), Gan = new Mn($R, 10), zan = new Mn(Vin, 0), iO = new Mn(Qin, 5), Xan = new Mn(Win, 1), Van = new Mn(Jin, 1), Ud = new Mn(jw, 20), _ue = new Mn(Yin, 10), Qan = new Mn(Zin, 10), $3 = new lt(nrn), Jan = new tTn(), Wan = new Mn(jrn, Jan), $ue = new lt(BR), $an = !1, Nue = new Mn(FR, $an), Pan = new h0(5), San = new Mn(orn, Pan), Ian = (aw(), e = u(of(jr), 9), new _o(e, u(xs(e, e.length), 9), 0)), K2 = new Mn(zm, Ian), Fan = (Bg(), Sa), xan = new Mn(hrn, Fan), rU = new lt(lrn), cU = new lt(arn), uU = new lt(drn), iU = new lt(brn), Oan = (n = u(of(S9), 9), new _o(n, u(xs(n, n.length), 9), 0)), qd = new Mn(r2, Oan), Lan = jn((to(), Kv)), Ta = new Mn(a3, Lan), Dan = new V(0, 0), _2 = new Mn(d3, Dan), Ww = new Mn(Gm, !1), kan = (Nf(), xv), nU = new Mn(grn, kan), Zq = new Mn(oS, !1), Y(1), new Mn(JVn, null), Ban = new lt(krn), oU = new lt(prn), Han = (en(), sc), H2 = new Mn(irn, Han), uo = new lt(ern), Kan = (Uu(), jn(Ia)), Jw = new Mn(Xm, Kan), sU = new Mn(srn, !1), _an = new Mn(frn, !0), cO = new Mn(xy, 1), Yan = new Mn(mcn, null), Qj = new Mn(Fy, 150), rO = new Mn(By, 1.414), x3 = new Mn(Q0, null), Hue = new Mn(vcn, 1), Xj = new Mn(crn, !1), eU = new Mn(urn, !1), Ean = new Mn(JB, 1), Can = (pA(), dU), new Mn(QVn, Can), xue = !0, Uue = (Gp(), Zw), Gue = Zw, que = Zw; + } + function er() { + er = F, Qon = new ti("DIRECTION_PREPROCESSOR", 0), Von = new ti("COMMENT_PREPROCESSOR", 1), b2 = new ti("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER", 2), N_ = new ti("INTERACTIVE_EXTERNAL_PORT_POSITIONER", 3), gsn = new ti("PARTITION_PREPROCESSOR", 4), IP = new ti("LABEL_DUMMY_INSERTER", 5), KP = new ti("SELF_LOOP_PREPROCESSOR", 6), Nw = new ti("LAYER_CONSTRAINT_PREPROCESSOR", 7), bsn = new ti("PARTITION_MIDPROCESSOR", 8), csn = new ti("HIGH_DEGREE_NODE_LAYER_PROCESSOR", 9), asn = new ti("NODE_PROMOTION", 10), Lw = new ti("LAYER_CONSTRAINT_POSTPROCESSOR", 11), wsn = new ti("PARTITION_POSTPROCESSOR", 12), tsn = new ti("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR", 13), psn = new ti("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR", 14), Hon = new ti("BREAKING_POINT_INSERTER", 15), NP = new ti("LONG_EDGE_SPLITTER", 16), $_ = new ti("PORT_SIDE_PROCESSOR", 17), SP = new ti("INVERTED_PORT_PROCESSOR", 18), FP = new ti("PORT_LIST_SORTER", 19), vsn = new ti("SORT_BY_INPUT_ORDER_OF_MODEL", 20), xP = new ti("NORTH_SOUTH_PORT_PREPROCESSOR", 21), qon = new ti("BREAKING_POINT_PROCESSOR", 22), dsn = new ti(qXn, 23), ksn = new ti(UXn, 24), BP = new ti("SELF_LOOP_PORT_RESTORER", 25), msn = new ti("SINGLE_EDGE_GRAPH_WRAPPER", 26), PP = new ti("IN_LAYER_CONSTRAINT_PROCESSOR", 27), Zon = new ti("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR", 28), hsn = new ti("LABEL_AND_NODE_SIZE_PROCESSOR", 29), fsn = new ti("INNERMOST_NODE_MARGIN_CALCULATOR", 30), _P = new ti("SELF_LOOP_ROUTER", 31), zon = new ti("COMMENT_NODE_MARGIN_CALCULATOR", 32), AP = new ti("END_LABEL_PREPROCESSOR", 33), DP = new ti("LABEL_DUMMY_SWITCHER", 34), Gon = new ti("CENTER_LABEL_MANAGEMENT_PROCESSOR", 35), fv = new ti("LABEL_SIDE_SELECTOR", 36), osn = new ti("HYPEREDGE_DUMMY_MERGER", 37), isn = new ti("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR", 38), lsn = new ti("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR", 39), L8 = new ti("HIERARCHICAL_PORT_POSITION_PROCESSOR", 40), Won = new ti("CONSTRAINTS_POSTPROCESSOR", 41), Xon = new ti("COMMENT_POSTPROCESSOR", 42), ssn = new ti("HYPERNODE_PROCESSOR", 43), rsn = new ti("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER", 44), LP = new ti("LONG_EDGE_JOINER", 45), RP = new ti("SELF_LOOP_POSTPROCESSOR", 46), Uon = new ti("BREAKING_POINT_REMOVER", 47), $P = new ti("NORTH_SOUTH_PORT_POSTPROCESSOR", 48), usn = new ti("HORIZONTAL_COMPACTOR", 49), OP = new ti("LABEL_DUMMY_REMOVER", 50), nsn = new ti("FINAL_SPLINE_BENDPOINTS_CALCULATOR", 51), Yon = new ti("END_LABEL_SORTER", 52), bj = new ti("REVERSED_EDGE_RESTORER", 53), TP = new ti("END_LABEL_POSTPROCESSOR", 54), esn = new ti("HIERARCHICAL_NODE_RESIZER", 55), Jon = new ti("DIRECTION_POSTPROCESSOR", 56); + } + function ltn() { + ltn = F, kfn = (wk(), WP), iee = new Mn(uin, kfn), wee = new Mn(oin, (_n(), !1)), Tfn = (KM(), fH), kee = new Mn(lS, Tfn), $ee = new Mn(sin, !1), xee = new Mn(fin, !0), Pne = new Mn(hin, !1), Nfn = (dk(), UH), Qee = new Mn(lin, Nfn), Y(1), cte = new Mn(ain, Y(7)), ute = new Mn(din, !1), gee = new Mn(bin, !1), vfn = (s1(), J_), tee = new Mn(fR, vfn), Pfn = (d1(), xH), Nee = new Mn(Hy, Pfn), Afn = (Yo(), Ej), Tee = new Mn(win, Afn), Y(-1), Mee = new Mn(gin, null), Y(-1), Aee = new Mn(pin, Y(-1)), Y(-1), See = new Mn(hR, Y(4)), Y(-1), Iee = new Mn(lR, Y(2)), Sfn = (ps(), AI), Lee = new Mn(aR, Sfn), Y(0), Dee = new Mn(dR, Y(0)), Eee = new Mn(bR, Y(et)), mfn = (c5(), $8), eee = new Mn(o8, mfn), Kne = new Mn(min, !1), Xne = new Mn(wR, 0.1), Zne = new Mn(gR, !1), Wne = new Mn(vin, null), Jne = new Mn(kin, null), Y(-1), Qne = new Mn(yin, null), Y(-1), Yne = new Mn(jin, Y(-1)), Y(0), _ne = new Mn(Ein, Y(40)), pfn = (Y4(), oH), Gne = new Mn(pR, pfn), gfn = mj, Hne = new Mn(aS, gfn), Lfn = (M5(), W8), Jee = new Mn(c2, Lfn), _ee = new lt(dS), Ifn = (sk(), QP), Fee = new Mn(mR, Ifn), Ofn = (Vk(), YP), Ree = new Mn(vR, Ofn), Uee = new Mn(kR, 0.3), zee = new lt(yR), Dfn = (uw(), TI), Xee = new Mn(jR, Dfn), Efn = (ST(), zH), see = new Mn(Cin, Efn), Cfn = (a5(), VH), fee = new Mn(Min, Cfn), Mfn = (um(), Y8), hee = new Mn(bS, Mfn), aee = new Mn(wS, 0.2), uee = new Mn(ER, 2), ete = new Mn(Tin, null), ite = new Mn(Ain, 10), tte = new Mn(Sin, 10), rte = new Mn(Pin, 20), Y(0), Yee = new Mn(Iin, Y(0)), Y(0), Zee = new Mn(Oin, Y(0)), Y(0), nte = new Mn(Din, Y(0)), Ine = new Mn(CR, !1), afn = (ym(), x8), Dne = new Mn(Lin, afn), lfn = (QM(), V_), One = new Mn(Nin, lfn), mee = new Mn(gS, !1), Y(0), pee = new Mn(MR, Y(16)), Y(0), vee = new Mn(TR, Y(5)), Ffn = (DT(), QH), Tte = new Mn(Ol, Ffn), ote = new Mn(pS, 10), hte = new Mn(mS, 1), xfn = (bT(), VP), pte = new Mn(s8, xfn), dte = new lt(AR), $fn = Y(1), Y(0), wte = new Mn(SR, $fn), Bfn = (dT(), JH), Ite = new Mn(vS, Bfn), Ate = new lt(kS), jte = new Mn(yS, !0), kte = new Mn(jS, 2), Cte = new Mn(PR, !0), jfn = (vA(), JP), cee = new Mn($in, jfn), yfn = (Yp(), dv), ree = new Mn(xin, yfn), wfn = (hh(), y1), Rne = new Mn(ES, wfn), Bne = new Mn(Fin, !1), Fne = new Mn(Bin, !1), dfn = (bd(), Dw), Lne = new Mn(IR, dfn), bfn = (w5(), FH), xne = new Mn(Rin, bfn), Nne = new Mn(OR, 0), $ne = new Mn(DR, 0), jee = Q_, yee = pj, Pee = CI, Oee = CI, Cee = $H, Vne = (jl(), T1), nee = $8, zne = $8, qne = $8, Une = T1, Hee = J8, qee = W8, Bee = W8, Kee = W8, Gee = _H, Wee = J8, Vee = J8, lee = (El(), F3), dee = F3, bee = Y8, oee = Yj, ste = Iv, fte = zw, lte = Iv, ate = zw, mte = Iv, vte = zw, bte = W_, gte = VP, Ote = Iv, Dte = zw, Ste = Iv, Pte = zw, Ete = zw, yte = zw, Mte = zw; + } + function YLe(n, e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te, xe, Lt, Ju, Br, Fo, W2, L1, rf, cf, Vd, q3, Ba, U3, Ph, rl, Tb, G3, J2, Ih, Wd, Rl, Dse, y0n, Ab, _9, DU, z3, H9, og, q9, LU, Lse; + for (y0n = 0, xe = e, Br = 0, L1 = xe.length; Br < L1; ++Br) + for (Rn = xe[Br], rl = new C(Rn.j); rl.a < rl.c.c.length; ) { + for (Ph = u(E(rl), 12), G3 = 0, f = new C(Ph.g); f.a < f.c.c.length; ) + s = u(E(f), 18), Rn.c != s.d.i.c && ++G3; + G3 > 0 && (n.a[Ph.p] = y0n++); + } + for (H9 = 0, Lt = t, Fo = 0, rf = Lt.length; Fo < rf; ++Fo) { + for (Rn = Lt[Fo], cf = 0, rl = new C(Rn.j); rl.a < rl.c.c.length && (Ph = u(E(rl), 12), Ph.j == (en(), Xn)); ) + for (f = new C(Ph.e); f.a < f.c.c.length; ) + if (s = u(E(f), 18), Rn.c != s.c.i.c) { + ++cf; + break; + } + for (q3 = 0, J2 = new Fi(Rn.j, Rn.j.c.length); J2.b > 0; ) { + for (Ph = (oe(J2.b > 0), u(J2.a.Xb(J2.c = --J2.b), 12)), G3 = 0, f = new C(Ph.e); f.a < f.c.c.length; ) + s = u(E(f), 18), Rn.c != s.c.i.c && ++G3; + G3 > 0 && (Ph.j == (en(), Xn) ? (n.a[Ph.p] = H9, ++H9) : (n.a[Ph.p] = H9 + cf + q3, ++q3)); + } + H9 += q3; + } + for (Tb = new de(), m = new ih(), te = e, Ju = 0, W2 = te.length; Ju < W2; ++Ju) + for (Rn = te[Ju], DU = new C(Rn.j); DU.a < DU.c.c.length; ) + for (_9 = u(E(DU), 12), f = new C(_9.g); f.a < f.c.c.length; ) + if (s = u(E(f), 18), q9 = s.d, Rn.c != q9.i.c) + if (Ab = u(Kr(gr(Tb.f, _9)), 478), og = u(Kr(gr(Tb.f, q9)), 478), !Ab && !og) + p = new GAn(), m.a.zc(p, m), nn(p.a, s), nn(p.d, _9), Wc(Tb.f, _9, p), nn(p.d, q9), Wc(Tb.f, q9, p); + else if (!Ab) + nn(og.a, s), nn(og.d, _9), Wc(Tb.f, _9, og); + else if (!og) + nn(Ab.a, s), nn(Ab.d, q9), Wc(Tb.f, q9, Ab); + else if (Ab == og) + nn(Ab.a, s); + else { + for (nn(Ab.a, s), U3 = new C(og.d); U3.a < U3.c.c.length; ) + Ba = u(E(U3), 12), Wc(Tb.f, Ba, Ab); + li(Ab.a, og.a), li(Ab.d, og.d), m.a.Bc(og) != null; + } + for (k = u(A5(m, K(jNe, { 3: 1, 4: 1, 5: 1, 2045: 1 }, 478, m.a.gc(), 0, 1)), 2045), Fn = e[0].c, Dse = t[0].c, a = k, d = 0, g = a.length; d < g; ++d) + for (l = a[d], l.e = y0n, l.f = H9, rl = new C(l.d); rl.a < rl.c.c.length; ) + Ph = u(E(rl), 12), Ih = n.a[Ph.p], Ph.i.c == Fn ? (Ih < l.e && (l.e = Ih), Ih > l.b && (l.b = Ih)) : Ph.i.c == Dse && (Ih < l.f && (l.f = Ih), Ih > l.c && (l.c = Ih)); + for (x4(k, 0, k.length, null), z3 = K(ye, _e, 28, k.length, 15, 1), i = K(ye, _e, 28, H9 + 1, 15, 1), S = 0; S < k.length; S++) + z3[S] = k[S].f, i[z3[S]] = 1; + for (c = 0, I = 0; I < i.length; I++) + i[I] == 1 ? i[I] = c : --c; + for (Wd = 0, O = 0; O < z3.length; O++) + z3[O] += i[z3[O]], Wd = y.Math.max(Wd, z3[O] + 1); + for (h = 1; h < Wd; ) + h *= 2; + for (Lse = 2 * h - 1, h -= 1, LU = K(ye, _e, 28, Lse, 15, 1), r = 0, yn = 0; yn < z3.length; yn++) + for (tn = z3[yn] + h, ++LU[tn]; tn > 0; ) + tn % 2 > 0 && (r += LU[tn + 1]), tn = (tn - 1) / 2 | 0, ++LU[tn]; + for (kn = K(Iie, Bn, 374, k.length * 2, 0, 1), N = 0; N < k.length; N++) + kn[2 * N] = new CM(k[N], k[N].e, k[N].b, (Z6(), e9)), kn[2 * N + 1] = new CM(k[N], k[N].b, k[N].e, n9); + for (x4(kn, 0, kn.length, null), Vd = 0, _ = 0; _ < kn.length; _++) + switch (kn[_].d.g) { + case 0: + ++Vd; + break; + case 1: + --Vd, r += Vd; + } + for (Rl = K(Iie, Bn, 374, k.length * 2, 0, 1), X = 0; X < k.length; X++) + Rl[2 * X] = new CM(k[X], k[X].f, k[X].c, (Z6(), e9)), Rl[2 * X + 1] = new CM(k[X], k[X].c, k[X].f, n9); + for (x4(Rl, 0, Rl.length, null), Vd = 0, j = 0; j < Rl.length; j++) + switch (Rl[j].d.g) { + case 0: + ++Vd; + break; + case 1: + --Vd, r += Vd; + } + return r; + } + function nt() { + nt = F, K9 = new Jd(7), d0n = new Lh(8, 94), new Lh(8, 64), b0n = new Lh(8, 36), Ese = new Lh(8, 65), Cse = new Lh(8, 122), Mse = new Lh(8, 90), Ase = new Lh(8, 98), jse = new Lh(8, 66), Tse = new Lh(8, 60), Sse = new Lh(8, 62), a0n = new Jd(11), PO = new yo(4), Fc(PO, 48, 57), Uv = new yo(4), Fc(Uv, 48, 57), Fc(Uv, 65, 90), Fc(Uv, 95, 95), Fc(Uv, 97, 122), H3 = new yo(4), Fc(H3, 9, 9), Fc(H3, 10, 10), Fc(H3, 12, 12), Fc(H3, 13, 13), Fc(H3, 32, 32), w0n = ww(PO), p0n = ww(Uv), g0n = ww(H3), qv = new de(), R9 = new de(), yse = A(T(fn, 1), J, 2, 6, ["Cn", "Lu", "Ll", "Lt", "Lm", "Lo", "Mn", "Me", "Mc", "Nd", "Nl", "No", "Zs", "Zl", "Zp", "Cc", "Cf", null, "Co", "Cs", "Pd", "Ps", "Pe", "Pc", "Po", "Sm", "Sc", "Sk", "So", "Pi", "Pf", "L", "M", "N", "Z", "C", "P", "S"]), h0n = A(T(fn, 1), J, 2, 6, ["Basic Latin", "Latin-1 Supplement", "Latin Extended-A", "Latin Extended-B", "IPA Extensions", "Spacing Modifier Letters", "Combining Diacritical Marks", "Greek", "Cyrillic", "Armenian", "Hebrew", "Arabic", "Syriac", "Thaana", "Devanagari", "Bengali", "Gurmukhi", "Gujarati", "Oriya", "Tamil", "Telugu", "Kannada", "Malayalam", "Sinhala", "Thai", "Lao", "Tibetan", "Myanmar", "Georgian", "Hangul Jamo", "Ethiopic", "Cherokee", "Unified Canadian Aboriginal Syllabics", "Ogham", "Runic", "Khmer", "Mongolian", "Latin Extended Additional", "Greek Extended", "General Punctuation", "Superscripts and Subscripts", "Currency Symbols", "Combining Marks for Symbols", "Letterlike Symbols", "Number Forms", "Arrows", "Mathematical Operators", "Miscellaneous Technical", "Control Pictures", "Optical Character Recognition", "Enclosed Alphanumerics", "Box Drawing", "Block Elements", "Geometric Shapes", "Miscellaneous Symbols", "Dingbats", "Braille Patterns", "CJK Radicals Supplement", "Kangxi Radicals", "Ideographic Description Characters", "CJK Symbols and Punctuation", "Hiragana", "Katakana", "Bopomofo", "Hangul Compatibility Jamo", "Kanbun", "Bopomofo Extended", "Enclosed CJK Letters and Months", "CJK Compatibility", "CJK Unified Ideographs Extension A", "CJK Unified Ideographs", "Yi Syllables", "Yi Radicals", "Hangul Syllables", WJn, "CJK Compatibility Ideographs", "Alphabetic Presentation Forms", "Arabic Presentation Forms-A", "Combining Half Marks", "CJK Compatibility Forms", "Small Form Variants", "Arabic Presentation Forms-B", "Specials", "Halfwidth and Fullwidth Forms", "Old Italic", "Gothic", "Deseret", "Byzantine Musical Symbols", "Musical Symbols", "Mathematical Alphanumeric Symbols", "CJK Unified Ideographs Extension B", "CJK Compatibility Ideographs Supplement", "Tags"]), l0n = A(T(ye, 1), _e, 28, 15, [66304, 66351, 66352, 66383, 66560, 66639, 118784, 119039, 119040, 119295, 119808, 120831, 131072, 173782, 194560, 195103, 917504, 917631]); + } + function VA() { + VA = F, pYn = new Vo("OUT_T_L", 0, (Hu(), Ch), (du(), Xs), (wf(), bc), bc, A(T(js, 1), Bn, 21, 0, [yt((aw(), Zs), A(T(jr, 1), G, 95, 0, [nf, Qs]))])), gYn = new Vo("OUT_T_C", 1, pa, Xs, bc, Jc, A(T(js, 1), Bn, 21, 0, [yt(Zs, A(T(jr, 1), G, 95, 0, [nf, xl])), yt(Zs, A(T(jr, 1), G, 95, 0, [nf, xl, Cs]))])), mYn = new Vo("OUT_T_R", 2, zs, Xs, bc, wc, A(T(js, 1), Bn, 21, 0, [yt(Zs, A(T(jr, 1), G, 95, 0, [nf, Ys]))])), sYn = new Vo("OUT_B_L", 3, Ch, kf, wc, bc, A(T(js, 1), Bn, 21, 0, [yt(Zs, A(T(jr, 1), G, 95, 0, [Ms, Qs]))])), oYn = new Vo("OUT_B_C", 4, pa, kf, wc, Jc, A(T(js, 1), Bn, 21, 0, [yt(Zs, A(T(jr, 1), G, 95, 0, [Ms, xl])), yt(Zs, A(T(jr, 1), G, 95, 0, [Ms, xl, Cs]))])), fYn = new Vo("OUT_B_R", 5, zs, kf, wc, wc, A(T(js, 1), Bn, 21, 0, [yt(Zs, A(T(jr, 1), G, 95, 0, [Ms, Ys]))])), aYn = new Vo("OUT_L_T", 6, zs, kf, bc, bc, A(T(js, 1), Bn, 21, 0, [yt(Zs, A(T(jr, 1), G, 95, 0, [Qs, nf, Cs]))])), lYn = new Vo("OUT_L_C", 7, zs, ma, Jc, bc, A(T(js, 1), Bn, 21, 0, [yt(Zs, A(T(jr, 1), G, 95, 0, [Qs, nl])), yt(Zs, A(T(jr, 1), G, 95, 0, [Qs, nl, Cs]))])), hYn = new Vo("OUT_L_B", 8, zs, Xs, wc, bc, A(T(js, 1), Bn, 21, 0, [yt(Zs, A(T(jr, 1), G, 95, 0, [Qs, Ms, Cs]))])), wYn = new Vo("OUT_R_T", 9, Ch, kf, bc, wc, A(T(js, 1), Bn, 21, 0, [yt(Zs, A(T(jr, 1), G, 95, 0, [Ys, nf, Cs]))])), bYn = new Vo("OUT_R_C", 10, Ch, ma, Jc, wc, A(T(js, 1), Bn, 21, 0, [yt(Zs, A(T(jr, 1), G, 95, 0, [Ys, nl])), yt(Zs, A(T(jr, 1), G, 95, 0, [Ys, nl, Cs]))])), dYn = new Vo("OUT_R_B", 11, Ch, Xs, wc, wc, A(T(js, 1), Bn, 21, 0, [yt(Zs, A(T(jr, 1), G, 95, 0, [Ys, Ms, Cs]))])), cYn = new Vo("IN_T_L", 12, Ch, kf, bc, bc, A(T(js, 1), Bn, 21, 0, [yt(Lo, A(T(jr, 1), G, 95, 0, [nf, Qs])), yt(Lo, A(T(jr, 1), G, 95, 0, [nf, Qs, Cs]))])), rYn = new Vo("IN_T_C", 13, pa, kf, bc, Jc, A(T(js, 1), Bn, 21, 0, [yt(Lo, A(T(jr, 1), G, 95, 0, [nf, xl])), yt(Lo, A(T(jr, 1), G, 95, 0, [nf, xl, Cs]))])), uYn = new Vo("IN_T_R", 14, zs, kf, bc, wc, A(T(js, 1), Bn, 21, 0, [yt(Lo, A(T(jr, 1), G, 95, 0, [nf, Ys])), yt(Lo, A(T(jr, 1), G, 95, 0, [nf, Ys, Cs]))])), tYn = new Vo("IN_C_L", 15, Ch, ma, Jc, bc, A(T(js, 1), Bn, 21, 0, [yt(Lo, A(T(jr, 1), G, 95, 0, [nl, Qs])), yt(Lo, A(T(jr, 1), G, 95, 0, [nl, Qs, Cs]))])), eYn = new Vo("IN_C_C", 16, pa, ma, Jc, Jc, A(T(js, 1), Bn, 21, 0, [yt(Lo, A(T(jr, 1), G, 95, 0, [nl, xl])), yt(Lo, A(T(jr, 1), G, 95, 0, [nl, xl, Cs]))])), iYn = new Vo("IN_C_R", 17, zs, ma, Jc, wc, A(T(js, 1), Bn, 21, 0, [yt(Lo, A(T(jr, 1), G, 95, 0, [nl, Ys])), yt(Lo, A(T(jr, 1), G, 95, 0, [nl, Ys, Cs]))])), ZQn = new Vo("IN_B_L", 18, Ch, Xs, wc, bc, A(T(js, 1), Bn, 21, 0, [yt(Lo, A(T(jr, 1), G, 95, 0, [Ms, Qs])), yt(Lo, A(T(jr, 1), G, 95, 0, [Ms, Qs, Cs]))])), YQn = new Vo("IN_B_C", 19, pa, Xs, wc, Jc, A(T(js, 1), Bn, 21, 0, [yt(Lo, A(T(jr, 1), G, 95, 0, [Ms, xl])), yt(Lo, A(T(jr, 1), G, 95, 0, [Ms, xl, Cs]))])), nYn = new Vo("IN_B_R", 20, zs, Xs, wc, wc, A(T(js, 1), Bn, 21, 0, [yt(Lo, A(T(jr, 1), G, 95, 0, [Ms, Ys])), yt(Lo, A(T(jr, 1), G, 95, 0, [Ms, Ys, Cs]))])), l_ = new Vo(n8, 21, null, null, null, null, A(T(js, 1), Bn, 21, 0, [])); + } + function On() { + On = F, ig = (G1(), Hn).b, u(L(H(Hn.b), 0), 35), u(L(H(Hn.b), 1), 19), S1 = Hn.a, u(L(H(Hn.a), 0), 35), u(L(H(Hn.a), 1), 19), u(L(H(Hn.a), 2), 19), u(L(H(Hn.a), 3), 19), u(L(H(Hn.a), 4), 19), La = Hn.o, u(L(H(Hn.o), 0), 35), u(L(H(Hn.o), 1), 35), _oe = u(L(H(Hn.o), 2), 19), u(L(H(Hn.o), 3), 19), u(L(H(Hn.o), 4), 19), u(L(H(Hn.o), 5), 19), u(L(H(Hn.o), 6), 19), u(L(H(Hn.o), 7), 19), u(L(H(Hn.o), 8), 19), u(L(H(Hn.o), 9), 19), u(L(H(Hn.o), 10), 19), u(L(H(Hn.o), 11), 19), u(L(H(Hn.o), 12), 19), u(L(H(Hn.o), 13), 19), u(L(H(Hn.o), 14), 19), u(L(H(Hn.o), 15), 19), u(L(ft(Hn.o), 0), 62), u(L(ft(Hn.o), 1), 62), u(L(ft(Hn.o), 2), 62), u(L(ft(Hn.o), 3), 62), u(L(ft(Hn.o), 4), 62), u(L(ft(Hn.o), 5), 62), u(L(ft(Hn.o), 6), 62), u(L(ft(Hn.o), 7), 62), u(L(ft(Hn.o), 8), 62), u(L(ft(Hn.o), 9), 62), Koe = Hn.p, u(L(H(Hn.p), 0), 35), u(L(H(Hn.p), 1), 35), u(L(H(Hn.p), 2), 35), u(L(H(Hn.p), 3), 35), u(L(H(Hn.p), 4), 19), u(L(H(Hn.p), 5), 19), u(L(ft(Hn.p), 0), 62), u(L(ft(Hn.p), 1), 62), Hoe = Hn.q, u(L(H(Hn.q), 0), 35), Na = Hn.v, u(L(H(Hn.v), 0), 19), u(L(ft(Hn.v), 0), 62), u(L(ft(Hn.v), 1), 62), u(L(ft(Hn.v), 2), 62), P1 = Hn.w, u(L(H(Hn.w), 0), 35), u(L(H(Hn.w), 1), 35), u(L(H(Hn.w), 2), 35), u(L(H(Hn.w), 3), 19), $a = Hn.B, u(L(H(Hn.B), 0), 19), u(L(ft(Hn.B), 0), 62), u(L(ft(Hn.B), 1), 62), u(L(ft(Hn.B), 2), 62), qoe = Hn.Q, u(L(H(Hn.Q), 0), 19), u(L(ft(Hn.Q), 0), 62), Uoe = Hn.R, u(L(H(Hn.R), 0), 35), Is = Hn.S, u(L(ft(Hn.S), 0), 62), u(L(ft(Hn.S), 1), 62), u(L(ft(Hn.S), 2), 62), u(L(ft(Hn.S), 3), 62), u(L(ft(Hn.S), 4), 62), u(L(ft(Hn.S), 5), 62), u(L(ft(Hn.S), 6), 62), u(L(ft(Hn.S), 7), 62), u(L(ft(Hn.S), 8), 62), u(L(ft(Hn.S), 9), 62), u(L(ft(Hn.S), 10), 62), u(L(ft(Hn.S), 11), 62), u(L(ft(Hn.S), 12), 62), u(L(ft(Hn.S), 13), 62), u(L(ft(Hn.S), 14), 62), I1 = Hn.T, u(L(H(Hn.T), 0), 19), u(L(H(Hn.T), 2), 19), Goe = u(L(H(Hn.T), 3), 19), u(L(H(Hn.T), 4), 19), u(L(ft(Hn.T), 0), 62), u(L(ft(Hn.T), 1), 62), u(L(H(Hn.T), 1), 19), O1 = Hn.U, u(L(H(Hn.U), 0), 35), u(L(H(Hn.U), 1), 35), u(L(H(Hn.U), 2), 19), u(L(H(Hn.U), 3), 19), u(L(H(Hn.U), 4), 19), u(L(H(Hn.U), 5), 19), u(L(ft(Hn.U), 0), 62), rg = Hn.V, u(L(H(Hn.V), 0), 19), U2 = Hn.W, u(L(H(Hn.W), 0), 35), u(L(H(Hn.W), 1), 35), u(L(H(Hn.W), 2), 35), u(L(H(Hn.W), 3), 19), u(L(H(Hn.W), 4), 19), u(L(H(Hn.W), 5), 19), zoe = Hn.bb, u(L(H(Hn.bb), 0), 35), u(L(H(Hn.bb), 1), 35), u(L(H(Hn.bb), 2), 35), u(L(H(Hn.bb), 3), 35), u(L(H(Hn.bb), 4), 35), u(L(H(Hn.bb), 5), 35), u(L(H(Hn.bb), 6), 35), u(L(H(Hn.bb), 7), 19), u(L(ft(Hn.bb), 0), 62), u(L(ft(Hn.bb), 1), 62), Xoe = Hn.eb, u(L(H(Hn.eb), 0), 35), u(L(H(Hn.eb), 1), 35), u(L(H(Hn.eb), 2), 35), u(L(H(Hn.eb), 3), 35), u(L(H(Hn.eb), 4), 35), u(L(H(Hn.eb), 5), 35), u(L(H(Hn.eb), 6), 19), u(L(H(Hn.eb), 7), 19), lr = Hn.ab, u(L(H(Hn.ab), 0), 35), u(L(H(Hn.ab), 1), 35), Eb = Hn.H, u(L(H(Hn.H), 0), 19), u(L(H(Hn.H), 1), 19), u(L(H(Hn.H), 2), 19), u(L(H(Hn.H), 3), 19), u(L(H(Hn.H), 4), 19), u(L(H(Hn.H), 5), 19), u(L(ft(Hn.H), 0), 62), Cb = Hn.db, u(L(H(Hn.db), 0), 19), Yf = Hn.M; + } + function ZLe(n) { + var e; + n.O || (n.O = !0, Xc(n, "type"), CT(n, "ecore.xml.type"), MT(n, Pd), e = u(Cm((R1(), Ps), Pd), 2044), ve(Hr(n.fb), n.b), fc(n.b, bE, "AnyType", !1, !1, !0), Gt(u(L(H(n.b), 0), 35), n.wb.D, Jy, null, 0, -1, bE, !1, !1, !0, !1, !1, !1), Gt(u(L(H(n.b), 1), 35), n.wb.D, "any", null, 0, -1, bE, !0, !0, !0, !1, !1, !0), Gt(u(L(H(n.b), 2), 35), n.wb.D, "anyAttribute", null, 0, -1, bE, !1, !1, !0, !1, !1, !1), fc(n.bb, AO, IJn, !1, !1, !0), Gt(u(L(H(n.bb), 0), 35), n.gb, "data", null, 0, 1, AO, !1, !1, !0, !1, !0, !1), Gt(u(L(H(n.bb), 1), 35), n.gb, $cn, null, 1, 1, AO, !1, !1, !0, !1, !0, !1), fc(n.fb, wE, OJn, !1, !1, !0), Gt(u(L(H(n.fb), 0), 35), e.gb, "rawValue", null, 0, 1, wE, !0, !0, !0, !1, !0, !0), Gt(u(L(H(n.fb), 1), 35), e.a, g8, null, 0, 1, wE, !0, !0, !0, !1, !0, !0), Et(u(L(H(n.fb), 2), 19), n.wb.q, null, "instanceType", 1, 1, wE, !1, !1, !0, !1, !1, !1, !1), fc(n.qb, u0n, DJn, !1, !1, !0), Gt(u(L(H(n.qb), 0), 35), n.wb.D, Jy, null, 0, -1, null, !1, !1, !0, !1, !1, !1), Et(u(L(H(n.qb), 1), 19), n.wb.ab, null, "xMLNSPrefixMap", 0, -1, null, !0, !1, !0, !0, !1, !1, !1), Et(u(L(H(n.qb), 2), 19), n.wb.ab, null, "xSISchemaLocation", 0, -1, null, !0, !1, !0, !0, !1, !1, !1), Gt(u(L(H(n.qb), 3), 35), n.gb, "cDATA", null, 0, -2, null, !0, !0, !0, !1, !1, !0), Gt(u(L(H(n.qb), 4), 35), n.gb, "comment", null, 0, -2, null, !0, !0, !0, !1, !1, !0), Et(u(L(H(n.qb), 5), 19), n.bb, null, GJn, 0, -2, null, !0, !0, !0, !0, !1, !1, !0), Gt(u(L(H(n.qb), 6), 35), n.gb, wK, null, 0, -2, null, !0, !0, !0, !1, !1, !0), Ve(n.a, yi, "AnySimpleType", !0), Ve(n.c, fn, "AnyURI", !0), Ve(n.d, T(xu, 1), "Base64Binary", !0), Ve(n.e, oo, "Boolean", !0), Ve(n.f, zt, "BooleanObject", !0), Ve(n.g, xu, "Byte", !0), Ve(n.i, p3, "ByteObject", !0), Ve(n.j, fn, "Date", !0), Ve(n.k, fn, "DateTime", !0), Ve(n.n, QK, "Decimal", !0), Ve(n.o, Oi, "Double", !0), Ve(n.p, fi, "DoubleObject", !0), Ve(n.q, fn, "Duration", !0), Ve(n.s, rs, "ENTITIES", !0), Ve(n.r, rs, "ENTITIESBase", !0), Ve(n.t, fn, Qcn, !0), Ve(n.u, ug, "Float", !0), Ve(n.v, ov, "FloatObject", !0), Ve(n.w, fn, "GDay", !0), Ve(n.B, fn, "GMonth", !0), Ve(n.A, fn, "GMonthDay", !0), Ve(n.C, fn, "GYear", !0), Ve(n.D, fn, "GYearMonth", !0), Ve(n.F, T(xu, 1), "HexBinary", !0), Ve(n.G, fn, "ID", !0), Ve(n.H, fn, "IDREF", !0), Ve(n.J, rs, "IDREFS", !0), Ve(n.I, rs, "IDREFSBase", !0), Ve(n.K, ye, "Int", !0), Ve(n.M, l2, "Integer", !0), Ve(n.L, Gi, "IntObject", !0), Ve(n.P, fn, "Language", !0), Ve(n.Q, Fa, "Long", !0), Ve(n.R, ib, "LongObject", !0), Ve(n.S, fn, "Name", !0), Ve(n.T, fn, tP, !0), Ve(n.U, l2, "NegativeInteger", !0), Ve(n.V, fn, nun, !0), Ve(n.X, rs, "NMTOKENS", !0), Ve(n.W, rs, "NMTOKENSBase", !0), Ve(n.Y, l2, "NonNegativeInteger", !0), Ve(n.Z, l2, "NonPositiveInteger", !0), Ve(n.$, fn, "NormalizedString", !0), Ve(n._, fn, "NOTATION", !0), Ve(n.ab, fn, "PositiveInteger", !0), Ve(n.cb, fn, "QName", !0), Ve(n.db, V2, "Short", !0), Ve(n.eb, rb, "ShortObject", !0), Ve(n.gb, fn, mtn, !0), Ve(n.hb, fn, "Time", !0), Ve(n.ib, fn, "Token", !0), Ve(n.jb, V2, "UnsignedByte", !0), Ve(n.kb, rb, "UnsignedByteObject", !0), Ve(n.lb, Fa, "UnsignedInt", !0), Ve(n.mb, ib, "UnsignedIntObject", !0), Ve(n.nb, l2, "UnsignedLong", !0), Ve(n.ob, ye, "UnsignedShort", !0), Ve(n.pb, Gi, "UnsignedShortObject", !0), pY(n, Pd), nNe(n)); + } + function atn(n, e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn, Rn, te, xe, Lt, Ju, Br, Fo, W2, L1, rf, cf, Vd, q3, Ba, U3, Ph, rl, Tb, G3, J2, Ih, Wd, Rl; + if (i.$g() || on(un(z(e, (He(), tO))))) + return Dn(), Dn(), or; + if (tn = (!e.a && (e.a = new q(Ye, e, 10, 11)), e.a).i != 0, kn = wEe(e), yn = !kn.dc(), tn || yn) { + if (r = u(z(e, q2), 143), !r) + throw M(new Hl("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.")); + if (J2 = bX(r, (Em(), mO)), eRn(e), !tn && yn && !J2) + return Dn(), Dn(), or; + if (O = new Z(), x(z(e, R2)) === x((jl(), T1)) && (bX(r, gO) || bX(r, wO))) { + if (on(un(z(e, k9)))) + throw M(new Hl("Topdown layout cannot be used together with hierarchy handling.")); + for (W2 = zqn(n, e), L1 = new Ct(), Ri(L1, (!e.a && (e.a = new q(Ye, e, 10, 11)), e.a)); L1.b != 0; ) + Br = u(L1.b == 0 ? null : (oe(L1.b != 0), Xo(L1, L1.a.a)), 27), eRn(Br), G3 = x(z(Br, R2)) === x(E9), G3 || Df(Br, Nv) && !IJ(r, z(Br, q2)) ? (j = atn(n, Br, t, i), li(O, j), ht(Br, R2, E9), fUn(Br)) : Ri(L1, (!Br.a && (Br.a = new q(Ye, Br, 10, 11)), Br.a)); + } else { + if (W2 = (!e.a && (e.a = new q(Ye, e, 10, 11)), e.a).i, on(un(z(e, k9)))) { + if (Ih = i.eh(1), Ih.Ug(OVn, 1), z(e, x3) == null) + throw M(new Hl(e.k + " has not been assigned a top-down node type.")); + if (u(z(e, x3), 280) == (Gp(), Zw) || u(z(e, x3), 280) == aO) + for (I = new ne((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a)); I.e != I.i.gc(); ) + S = u(ue(I), 27), Ju = u(z(S, q2), 143), (!S.a && (S.a = new q(Ye, S, 10, 11)), S.a).i > 0 && z7(Ju.f), z(S, Yan) != null && (f = u(z(S, Yan), 347), Tb = f.Tg(S), kg(S, y.Math.max(S.g, Tb.a), y.Math.max(S.f, Tb.b))); + if (rf = u(z(e, M1), 107), p = e.g - (rf.b + rf.c), g = e.f - (rf.d + rf.a), Ih.bh("Available Child Area: (" + p + "|" + g + ")"), ht(e, x2, p / g), cRn(e, r, i.eh(W2)), u(z(e, x3), 280) == aO && (otn(e), kg(e, rf.b + $(R(z(e, B2))) + rf.c, rf.d + $(R(z(e, F2))) + rf.a)), Ih.bh("Executed layout algorithm: " + Oe(z(e, Nv)) + " on node " + e.k), u(z(e, x3), 280) == Zw) { + if (p < 0 || g < 0) + throw M(new Hl("The size defined by the parent parallel node is too small for the space provided by the paddings of the child hierarchical node. " + e.k)); + for (Df(e, B2) || Df(e, F2) || otn(e), k = $(R(z(e, B2))), m = $(R(z(e, F2))), Ih.bh("Desired Child Area: (" + k + "|" + m + ")"), Vd = p / k, q3 = g / m, cf = y.Math.min(Vd, y.Math.min(q3, $(R(z(e, Hue))))), ht(e, cO, cf), Ih.bh(e.k + " -- Local Scale Factor (X|Y): (" + Vd + "|" + q3 + ")"), N = u(z(e, Gj), 21), c = 0, s = 0, cf < Vd && (N.Hc((gd(), w9)) ? c = (p / 2 - k * cf / 2) / cf : N.Hc(g9) && (c = (p - k * cf) / cf)), cf < q3 && (N.Hc((gd(), m9)) ? s = (g / 2 - m * cf / 2) / cf : N.Hc(p9) && (s = (g - m * cf) / cf)), Wd = c + (rf.b / cf - rf.b), Rl = s + (rf.d / cf - rf.d), Ih.bh("Shift: (" + Wd + "|" + Rl + ")"), Fo = new ne((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a)); Fo.e != Fo.i.gc(); ) + Br = u(ue(Fo), 27), eu(Br, Br.i + Wd), tu(Br, Br.j + Rl); + for (X = new ne((!e.b && (e.b = new q(Wt, e, 12, 3)), e.b)); X.e != X.i.gc(); ) { + for (_ = u(ue(X), 74), U3 = new ne((!_.a && (_.a = new q(Mt, _, 6, 6)), _.a)); U3.e != U3.i.gc(); ) + for (Ba = u(ue(U3), 166), j7(Ba, Ba.j + Wd, Ba.k + Rl), y7(Ba, Ba.b + Wd, Ba.c + Rl), l = new ne((!Ba.a && (Ba.a = new ii(xo, Ba, 5)), Ba.a)); l.e != l.i.gc(); ) + h = u(ue(l), 377), gL(h, h.a + Wd, h.b + Rl); + for (Lt = new ne((!_.n && (_.n = new q(Sr, _, 1, 7)), _.n)); Lt.e != Lt.i.gc(); ) + xe = u(ue(Lt), 135), Ro(xe, xe.i + Wd, xe.j + Rl); + for (te = u(z(_, yb), 75), Rn = ge(te, 0); Rn.b != Rn.d.c; ) + Fn = u(be(Rn), 8), Fn.a += Wd, Fn.b += Rl; + ht(_, yb, te); + } + } + Ih.Vg(); + } + for (d = new ne((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a)); d.e != d.i.gc(); ) + a = u(ue(d), 27), j = atn(n, a, t, i), li(O, j), fUn(a); + } + if (i.$g()) + return Dn(), Dn(), or; + for (rl = new C(O); rl.a < rl.c.c.length; ) + Ph = u(E(rl), 74), ht(Ph, tO, (_n(), !0)); + return on(un(z(e, k9))) || cRn(e, r, i.eh(W2)), RSe(O), yn && J2 ? kn : (Dn(), Dn(), or); + } else + return Dn(), Dn(), or; + } + function Zg(n, e) { + var t, i; + return X2 || (X2 = new de(), Hv = new de(), i = (nt(), nt(), new yo(4)), Rk(i, ` +\r\r `), Or(X2, NK, i), Or(Hv, NK, ww(i)), i = new yo(4), Rk(i, XJn), Or(X2, M8, i), Or(Hv, M8, ww(i)), i = new yo(4), Rk(i, XJn), Or(X2, M8, i), Or(Hv, M8, ww(i)), i = new yo(4), Rk(i, VJn), pw(i, u($c(X2, M8), 122)), Or(X2, LK, i), Or(Hv, LK, ww(i)), i = new yo(4), Rk(i, "-.0:AZ__az··ÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁːˑ̀͠͡ͅΆΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁ҃҆ҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆֹֻֽֿֿׁׂ֑֣֡ׄׄאתװײءغـْ٠٩ٰڷںھۀێېۓە۪ۭۨ۰۹ँःअह़्॑॔क़ॣ०९ঁঃঅঌএঐওনপরললশহ়়াৄেৈো্ৗৗড়ঢ়য়ৣ০ৱਂਂਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹ਼਼ਾੂੇੈੋ੍ਖ਼ੜਫ਼ਫ਼੦ੴઁઃઅઋઍઍએઑઓનપરલળવહ઼ૅેૉો્ૠૠ૦૯ଁଃଅଌଏଐଓନପରଲଳଶହ଼ୃେୈୋ୍ୖୗଡ଼ଢ଼ୟୡ୦୯ஂஃஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹாூெைொ்ௗௗ௧௯ఁఃఅఌఎఐఒనపళవహాౄెైొ్ౕౖౠౡ౦౯ಂಃಅಌಎಐಒನಪಳವಹಾೄೆೈೊ್ೕೖೞೞೠೡ೦೯ംഃഅഌഎഐഒനപഹാൃെൈൊ്ൗൗൠൡ൦൯กฮะฺเ๎๐๙ກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະູົຽເໄໆໆ່ໍ໐໙༘༙༠༩༹༹༵༵༷༷༾ཇཉཀྵ྄ཱ྆ྋྐྕྗྗྙྭྱྷྐྵྐྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼ⃐⃜⃡⃡ΩΩKÅ℮℮ↀↂ々々〇〇〡〯〱〵ぁゔ゙゚ゝゞァヺーヾㄅㄬ一龥가힣"), Or(X2, $K, i), Or(Hv, $K, ww(i)), i = new yo(4), Rk(i, VJn), Fc(i, 95, 95), Fc(i, 58, 58), Or(X2, xK, i), Or(Hv, xK, ww(i))), t = u($c(e ? X2 : Hv, n), 138), t; + } + function Czn(n) { + c0(n, new pd(jz(UE(t0(Zd(e0(n0(new _a(), Yn), "ELK Layered"), "Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level."), new Upn()), Yn), yt((Em(), kU), A(T(kO, 1), G, 245, 0, [mO, vO, pO, vU, gO, wO]))))), Q(n, Yn, Gin, rn(PH)), Q(n, Yn, zin, rn(phn)), Q(n, Yn, WB, rn(Tj)), Q(n, Yn, Xin, rn(Ws)), Q(n, Yn, eR, rn(T2)), Q(n, Yn, $R, rn(gb)), Q(n, Yn, Vin, rn(Uw)), Q(n, Yn, Win, rn(Tv)), Q(n, Yn, Jin, rn(Av)), Q(n, Yn, Qin, rn(IH)), Q(n, Yn, jw, rn(pb)), Q(n, Yn, Yin, rn(OH)), Q(n, Yn, Zin, rn(X8)), Q(n, Yn, nrn, rn(yI)), Q(n, Yn, Tin, rn(Mj)), Q(n, Yn, Sin, rn(M2)), Q(n, Yn, Ain, rn(Rd)), Q(n, Yn, Pin, rn(A2)), Q(n, Yn, Ny, Y(0)), Q(n, Yn, Iin, rn(Mv)), Q(n, Yn, Oin, rn(ghn)), Q(n, Yn, Din, rn(I3)), Q(n, Yn, Ol, rn(Thn)), Q(n, Yn, pS, rn(vhn)), Q(n, Yn, mS, rn(khn)), Q(n, Yn, s8, rn(LH)), Q(n, Yn, AR, rn(yhn)), Q(n, Yn, SR, rn(jhn)), Q(n, Yn, vS, rn(jI)), Q(n, Yn, kS, rn(NH)), Q(n, Yn, yS, rn(Chn)), Q(n, Yn, jS, rn(Ehn)), Q(n, Yn, PR, rn(Mhn)), Q(n, Yn, yR, rn(bb)), Q(n, Yn, jR, rn(z8)), Q(n, Yn, bS, rn(MH)), Q(n, Yn, wS, rn(Wfn)), Q(n, Yn, $y, rn(Vte)), Q(n, Yn, xy, rn(Wte)), Q(n, Yn, Fy, rn(Xte)), Q(n, Yn, By, rn(zte)), Q(n, Yn, Q0, mhn), Q(n, Yn, J0, lhn), Q(n, Yn, qy, zfn), Q(n, Yn, ern, 0), Q(n, Yn, uS, Y(1)), Q(n, Yn, l3, Um), Q(n, Yn, trn, rn(Bd)), Q(n, Yn, tR, rn(Ht)), Q(n, Yn, irn, rn(Cv)), Q(n, Yn, Uy, rn(xte)), Q(n, Yn, rrn, rn(Mh)), Q(n, Yn, CS, rn(Rw)), Q(n, Yn, t8, (_n(), !0)), Q(n, Yn, crn, rn(Kw)), Q(n, Yn, urn, rn($d)), Q(n, Yn, r2, rn(Fd)), Q(n, Yn, a3, rn(kI)), Q(n, Yn, Gm, rn(SH)), Q(n, Yn, xR, Gfn), Q(n, Yn, zm, rn(db)), Q(n, Yn, orn, rn(mI)), Q(n, Yn, Xm, rn(Hw)), Q(n, Yn, srn, rn(Hte)), Q(n, Yn, frn, rn(bhn)), Q(n, Yn, hrn, dhn), Q(n, Yn, lrn, rn(Rte)), Q(n, Yn, arn, rn(Kte)), Q(n, Yn, drn, rn(_te)), Q(n, Yn, brn, rn(Bte)), Q(n, Yn, din, rn(DH)), Q(n, Yn, Hy, rn(xd)), Q(n, Yn, aR, rn(ja)), Q(n, Yn, ain, rn(V8)), Q(n, Yn, win, rn(ou)), Q(n, Yn, fR, rn(Nd)), Q(n, Yn, o8, rn(U8)), Q(n, Yn, min, rn(ab)), Q(n, Yn, Ein, rn(Hfn)), Q(n, Yn, pR, rn(yH)), Q(n, Yn, aS, rn(Cj)), Q(n, Yn, gR, rn(jH)), Q(n, Yn, sin, rn(uhn)), Q(n, Yn, fin, rn(ohn)), Q(n, Yn, lS, rn(ehn)), Q(n, Yn, c2, rn(vI)), Q(n, Yn, vR, rn(AH)), Q(n, Yn, oin, rn(TH)), Q(n, Yn, kR, rn(fhn)), Q(n, Yn, Cin, rn(Vfn)), Q(n, Yn, Min, rn(CH)), Q(n, Yn, MS, rn(kH)), Q(n, Yn, mR, rn(shn)), Q(n, Yn, Lin, rn(fI)), Q(n, Yn, Nin, rn(Rfn)), Q(n, Yn, CR, rn(sI)), Q(n, Yn, gS, rn(Yfn)), Q(n, Yn, MR, rn(Qfn)), Q(n, Yn, TR, rn(Zfn)), Q(n, Yn, d3, rn(jv)), Q(n, Yn, wrn, rn(xr)), Q(n, Yn, JB, rn(v1)), Q(n, Yn, grn, rn(Th)), Q(n, Yn, oS, rn(EH)), Q(n, Yn, wR, rn(qfn)), Q(n, Yn, prn, rn(k1)), Q(n, Yn, mrn, rn(q8)), Q(n, Yn, vrn, rn(wI)), Q(n, Yn, krn, rn(wb)), Q(n, Yn, FR, rn(ahn)), Q(n, Yn, BR, rn(Ev)), Q(n, Yn, hR, rn(ihn)), Q(n, Yn, lR, rn(rhn)), Q(n, Yn, TS, rn(qw)), Q(n, Yn, hin, rn(mH)), Q(n, Yn, dR, rn(chn)), Q(n, Yn, $in, rn(bI)), Q(n, Yn, xin, rn(dI)), Q(n, Yn, yrn, rn(pI)), Q(n, Yn, bR, rn(thn)), Q(n, Yn, dS, rn(G8)), Q(n, Yn, jrn, rn(Aj)), Q(n, Yn, uin, rn(Ufn)), Q(n, Yn, lin, rn(whn)), Q(n, Yn, ER, rn(Xfn)), Q(n, Yn, vin, rn(Lte)), Q(n, Yn, kin, rn(Nte)), Q(n, Yn, gin, rn(Fte)), Q(n, Yn, yin, rn($te)), Q(n, Yn, AS, rn(nhn)), Q(n, Yn, pin, rn(gI)), Q(n, Yn, jin, rn(aI)), Q(n, Yn, ES, rn(Qh)), Q(n, Yn, Rin, rn(_fn)), Q(n, Yn, OR, rn(hI)), Q(n, Yn, DR, rn(Kfn)), Q(n, Yn, Bin, rn(lI)), Q(n, Yn, IR, rn(Bw)), Q(n, Yn, Fin, rn(vH)), Q(n, Yn, bin, rn(Jfn)); + } + function nNe(n) { + Me(n.a, Be, A(T(fn, 1), J, 2, 6, [Qe, "anySimpleType"])), Me(n.b, Be, A(T(fn, 1), J, 2, 6, [Qe, "anyType", vs, Jy])), Me(u(L(H(n.b), 0), 35), Be, A(T(fn, 1), J, 2, 6, [vs, SK, Qe, ":mixed"])), Me(u(L(H(n.b), 1), 35), Be, A(T(fn, 1), J, 2, 6, [vs, SK, Wcn, IK, Qe, ":1", LJn, "lax"])), Me(u(L(H(n.b), 2), 35), Be, A(T(fn, 1), J, 2, 6, [vs, PJn, Wcn, IK, Qe, ":2", LJn, "lax"])), Me(n.c, Be, A(T(fn, 1), J, 2, 6, [Qe, "anyURI", ys, vf])), Me(n.d, Be, A(T(fn, 1), J, 2, 6, [Qe, "base64Binary", ys, vf])), Me(n.e, Be, A(T(fn, 1), J, 2, 6, [Qe, i3, ys, vf])), Me(n.f, Be, A(T(fn, 1), J, 2, 6, [Qe, "boolean:Object", Ji, i3])), Me(n.g, Be, A(T(fn, 1), J, 2, 6, [Qe, m8])), Me(n.i, Be, A(T(fn, 1), J, 2, 6, [Qe, "byte:Object", Ji, m8])), Me(n.j, Be, A(T(fn, 1), J, 2, 6, [Qe, "date", ys, vf])), Me(n.k, Be, A(T(fn, 1), J, 2, 6, [Qe, "dateTime", ys, vf])), Me(n.n, Be, A(T(fn, 1), J, 2, 6, [Qe, "decimal", ys, vf])), Me(n.o, Be, A(T(fn, 1), J, 2, 6, [Qe, v8, ys, vf])), Me(n.p, Be, A(T(fn, 1), J, 2, 6, [Qe, "double:Object", Ji, v8])), Me(n.q, Be, A(T(fn, 1), J, 2, 6, [Qe, "duration", ys, vf])), Me(n.s, Be, A(T(fn, 1), J, 2, 6, [Qe, "ENTITIES", Ji, NJn, Jcn, "1"])), Me(n.r, Be, A(T(fn, 1), J, 2, 6, [Qe, NJn, PK, Qcn])), Me(n.t, Be, A(T(fn, 1), J, 2, 6, [Qe, Qcn, Ji, tP])), Me(n.u, Be, A(T(fn, 1), J, 2, 6, [Qe, k8, ys, vf])), Me(n.v, Be, A(T(fn, 1), J, 2, 6, [Qe, "float:Object", Ji, k8])), Me(n.w, Be, A(T(fn, 1), J, 2, 6, [Qe, "gDay", ys, vf])), Me(n.B, Be, A(T(fn, 1), J, 2, 6, [Qe, "gMonth", ys, vf])), Me(n.A, Be, A(T(fn, 1), J, 2, 6, [Qe, "gMonthDay", ys, vf])), Me(n.C, Be, A(T(fn, 1), J, 2, 6, [Qe, "gYear", ys, vf])), Me(n.D, Be, A(T(fn, 1), J, 2, 6, [Qe, "gYearMonth", ys, vf])), Me(n.F, Be, A(T(fn, 1), J, 2, 6, [Qe, "hexBinary", ys, vf])), Me(n.G, Be, A(T(fn, 1), J, 2, 6, [Qe, "ID", Ji, tP])), Me(n.H, Be, A(T(fn, 1), J, 2, 6, [Qe, "IDREF", Ji, tP])), Me(n.J, Be, A(T(fn, 1), J, 2, 6, [Qe, "IDREFS", Ji, $Jn, Jcn, "1"])), Me(n.I, Be, A(T(fn, 1), J, 2, 6, [Qe, $Jn, PK, "IDREF"])), Me(n.K, Be, A(T(fn, 1), J, 2, 6, [Qe, y8])), Me(n.M, Be, A(T(fn, 1), J, 2, 6, [Qe, Ycn])), Me(n.L, Be, A(T(fn, 1), J, 2, 6, [Qe, "int:Object", Ji, y8])), Me(n.P, Be, A(T(fn, 1), J, 2, 6, [Qe, "language", Ji, OK, DK, xJn])), Me(n.Q, Be, A(T(fn, 1), J, 2, 6, [Qe, j8])), Me(n.R, Be, A(T(fn, 1), J, 2, 6, [Qe, "long:Object", Ji, j8])), Me(n.S, Be, A(T(fn, 1), J, 2, 6, [Qe, "Name", Ji, OK, DK, Zcn])), Me(n.T, Be, A(T(fn, 1), J, 2, 6, [Qe, tP, Ji, "Name", DK, FJn])), Me(n.U, Be, A(T(fn, 1), J, 2, 6, [Qe, "negativeInteger", Ji, BJn, ej, "-1"])), Me(n.V, Be, A(T(fn, 1), J, 2, 6, [Qe, nun, Ji, OK, DK, "\\c+"])), Me(n.X, Be, A(T(fn, 1), J, 2, 6, [Qe, "NMTOKENS", Ji, RJn, Jcn, "1"])), Me(n.W, Be, A(T(fn, 1), J, 2, 6, [Qe, RJn, PK, nun])), Me(n.Y, Be, A(T(fn, 1), J, 2, 6, [Qe, eun, Ji, Ycn, tj, "0"])), Me(n.Z, Be, A(T(fn, 1), J, 2, 6, [Qe, BJn, Ji, Ycn, ej, "0"])), Me(n.$, Be, A(T(fn, 1), J, 2, 6, [Qe, KJn, Ji, nB, ys, "replace"])), Me(n._, Be, A(T(fn, 1), J, 2, 6, [Qe, "NOTATION", ys, vf])), Me(n.ab, Be, A(T(fn, 1), J, 2, 6, [Qe, "positiveInteger", Ji, eun, tj, "1"])), Me(n.bb, Be, A(T(fn, 1), J, 2, 6, [Qe, "processingInstruction_._type", vs, "empty"])), Me(u(L(H(n.bb), 0), 35), Be, A(T(fn, 1), J, 2, 6, [vs, YS, Qe, "data"])), Me(u(L(H(n.bb), 1), 35), Be, A(T(fn, 1), J, 2, 6, [vs, YS, Qe, $cn])), Me(n.cb, Be, A(T(fn, 1), J, 2, 6, [Qe, "QName", ys, vf])), Me(n.db, Be, A(T(fn, 1), J, 2, 6, [Qe, E8])), Me(n.eb, Be, A(T(fn, 1), J, 2, 6, [Qe, "short:Object", Ji, E8])), Me(n.fb, Be, A(T(fn, 1), J, 2, 6, [Qe, "simpleAnyType", vs, Qy])), Me(u(L(H(n.fb), 0), 35), Be, A(T(fn, 1), J, 2, 6, [Qe, ":3", vs, Qy])), Me(u(L(H(n.fb), 1), 35), Be, A(T(fn, 1), J, 2, 6, [Qe, ":4", vs, Qy])), Me(u(L(H(n.fb), 2), 19), Be, A(T(fn, 1), J, 2, 6, [Qe, ":5", vs, Qy])), Me(n.gb, Be, A(T(fn, 1), J, 2, 6, [Qe, nB, ys, "preserve"])), Me(n.hb, Be, A(T(fn, 1), J, 2, 6, [Qe, "time", ys, vf])), Me(n.ib, Be, A(T(fn, 1), J, 2, 6, [Qe, OK, Ji, KJn, ys, vf])), Me(n.jb, Be, A(T(fn, 1), J, 2, 6, [Qe, _Jn, ej, "255", tj, "0"])), Me(n.kb, Be, A(T(fn, 1), J, 2, 6, [Qe, "unsignedByte:Object", Ji, _Jn])), Me(n.lb, Be, A(T(fn, 1), J, 2, 6, [Qe, HJn, ej, "4294967295", tj, "0"])), Me(n.mb, Be, A(T(fn, 1), J, 2, 6, [Qe, "unsignedInt:Object", Ji, HJn])), Me(n.nb, Be, A(T(fn, 1), J, 2, 6, [Qe, "unsignedLong", Ji, eun, ej, qJn, tj, "0"])), Me(n.ob, Be, A(T(fn, 1), J, 2, 6, [Qe, UJn, ej, "65535", tj, "0"])), Me(n.pb, Be, A(T(fn, 1), J, 2, 6, [Qe, "unsignedShort:Object", Ji, UJn])), Me(n.qb, Be, A(T(fn, 1), J, 2, 6, [Qe, "", vs, Jy])), Me(u(L(H(n.qb), 0), 35), Be, A(T(fn, 1), J, 2, 6, [vs, SK, Qe, ":mixed"])), Me(u(L(H(n.qb), 1), 19), Be, A(T(fn, 1), J, 2, 6, [vs, YS, Qe, "xmlns:prefix"])), Me(u(L(H(n.qb), 2), 19), Be, A(T(fn, 1), J, 2, 6, [vs, YS, Qe, "xsi:schemaLocation"])), Me(u(L(H(n.qb), 3), 35), Be, A(T(fn, 1), J, 2, 6, [vs, ZS, Qe, "cDATA", nP, Yy])), Me(u(L(H(n.qb), 4), 35), Be, A(T(fn, 1), J, 2, 6, [vs, ZS, Qe, "comment", nP, Yy])), Me(u(L(H(n.qb), 5), 19), Be, A(T(fn, 1), J, 2, 6, [vs, ZS, Qe, GJn, nP, Yy])), Me(u(L(H(n.qb), 6), 35), Be, A(T(fn, 1), J, 2, 6, [vs, ZS, Qe, wK, nP, Yy])); + } + function $e(n) { + return An("_UI_EMFDiagnostic_marker", n) ? "EMF Problem" : An("_UI_CircularContainment_diagnostic", n) ? "An object may not circularly contain itself" : An(AWn, n) ? "Wrong character." : An(SWn, n) ? "Invalid reference number." : An(qS, n) ? "A character is required after \\." : An(jK, n) ? "'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?" : An(PWn, n) ? "'(?<' or '(? toIndex: ", Stn = ", toIndex: ", Ptn = "Index: ", Itn = ", Size: ", _m = "org.eclipse.elk.alg.common", Ne = { 50: 1 }, Yzn = "org.eclipse.elk.alg.common.compaction", Zzn = "Scanline/EventHandler", Gh = "org.eclipse.elk.alg.common.compaction.oned", nXn = "CNode belongs to another CGroup.", eXn = "ISpacingsHandler/1", FB = "The ", BB = " instance has been finished already.", tXn = "The direction ", iXn = " is not supported by the CGraph instance.", rXn = "OneDimensionalCompactor", cXn = "OneDimensionalCompactor/lambda$0$Type", uXn = "Quadruplet", oXn = "ScanlineConstraintCalculator", sXn = "ScanlineConstraintCalculator/ConstraintsScanlineHandler", fXn = "ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type", hXn = "ScanlineConstraintCalculator/Timestamp", lXn = "ScanlineConstraintCalculator/lambda$0$Type", gh = { 178: 1, 46: 1 }, RB = "org.eclipse.elk.alg.common.compaction.options", oc = "org.eclipse.elk.core.data", Otn = "org.eclipse.elk.polyomino.traversalStrategy", Dtn = "org.eclipse.elk.polyomino.lowLevelSort", Ltn = "org.eclipse.elk.polyomino.highLevelSort", Ntn = "org.eclipse.elk.polyomino.fill", ms = { 134: 1 }, KB = "polyomino", Z5 = "org.eclipse.elk.alg.common.networksimplex", zh = { 183: 1, 3: 1, 4: 1 }, aXn = "org.eclipse.elk.alg.common.nodespacing", yd = "org.eclipse.elk.alg.common.nodespacing.cellsystem", Hm = "CENTER", dXn = { 217: 1, 336: 1 }, $tn = { 3: 1, 4: 1, 5: 1, 603: 1 }, s3 = "LEFT", f3 = "RIGHT", xtn = "Vertical alignment cannot be null", Ftn = "BOTTOM", nS = "org.eclipse.elk.alg.common.nodespacing.internal", n8 = "UNDEFINED", Kf = 0.01, Oy = "org.eclipse.elk.alg.common.nodespacing.internal.algorithm", bXn = "LabelPlacer/lambda$0$Type", wXn = "LabelPlacer/lambda$1$Type", gXn = "portRatioOrPosition", qm = "org.eclipse.elk.alg.common.overlaps", _B = "DOWN", ph = "org.eclipse.elk.alg.common.polyomino", eS = "NORTH", HB = "EAST", qB = "SOUTH", UB = "WEST", tS = "org.eclipse.elk.alg.common.polyomino.structures", Btn = "Direction", GB = "Grid is only of size ", zB = ". Requested point (", XB = ") is out of bounds.", iS = " Given center based coordinates were (", Dy = "org.eclipse.elk.graph.properties", pXn = "IPropertyHolder", Rtn = { 3: 1, 96: 1, 137: 1 }, h3 = "org.eclipse.elk.alg.common.spore", mXn = "org.eclipse.elk.alg.common.utils", jd = { 205: 1 }, e2 = "org.eclipse.elk.core", vXn = "Connected Components Compaction", kXn = "org.eclipse.elk.alg.disco", rS = "org.eclipse.elk.alg.disco.graph", VB = "org.eclipse.elk.alg.disco.options", Ktn = "CompactionStrategy", _tn = "org.eclipse.elk.disco.componentCompaction.strategy", Htn = "org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm", qtn = "org.eclipse.elk.disco.debug.discoGraph", Utn = "org.eclipse.elk.disco.debug.discoPolys", yXn = "componentCompaction", Ed = "org.eclipse.elk.disco", WB = "org.eclipse.elk.spacing.componentComponent", JB = "org.eclipse.elk.edge.thickness", l3 = "org.eclipse.elk.aspectRatio", J0 = "org.eclipse.elk.padding", t2 = "org.eclipse.elk.alg.disco.transform", QB = 1.5707963267948966, i2 = 17976931348623157e292, yw = { 3: 1, 4: 1, 5: 1, 198: 1 }, jXn = { 3: 1, 6: 1, 4: 1, 5: 1, 100: 1, 115: 1 }, YB = "org.eclipse.elk.alg.force", Gtn = "ComponentsProcessor", EXn = "ComponentsProcessor/1", ztn = "ElkGraphImporter/lambda$0$Type", Ly = "org.eclipse.elk.alg.force.graph", CXn = "Component Layout", Xtn = "org.eclipse.elk.alg.force.model", cS = "org.eclipse.elk.force.model", Vtn = "org.eclipse.elk.force.iterations", Wtn = "org.eclipse.elk.force.repulsivePower", ZB = "org.eclipse.elk.force.temperature", mh = 1e-3, nR = "org.eclipse.elk.force.repulsion", e8 = "org.eclipse.elk.alg.force.options", Um = 1.600000023841858, cu = "org.eclipse.elk.force", Ny = "org.eclipse.elk.priority", jw = "org.eclipse.elk.spacing.nodeNode", eR = "org.eclipse.elk.spacing.edgeLabel", uS = "org.eclipse.elk.randomSeed", t8 = "org.eclipse.elk.separateConnectedComponents", i8 = "org.eclipse.elk.interactive", tR = "org.eclipse.elk.portConstraints", oS = "org.eclipse.elk.edgeLabels.inline", r8 = "org.eclipse.elk.omitNodeMicroLayout", Gm = "org.eclipse.elk.nodeSize.fixedGraphSize", a3 = "org.eclipse.elk.nodeSize.options", r2 = "org.eclipse.elk.nodeSize.constraints", zm = "org.eclipse.elk.nodeLabels.placement", Xm = "org.eclipse.elk.portLabels.placement", $y = "org.eclipse.elk.topdownLayout", xy = "org.eclipse.elk.topdown.scaleFactor", Fy = "org.eclipse.elk.topdown.hierarchicalNodeWidth", By = "org.eclipse.elk.topdown.hierarchicalNodeAspectRatio", Q0 = "org.eclipse.elk.topdown.nodeType", Jtn = "origin", MXn = "random", TXn = "boundingBox.upLeft", AXn = "boundingBox.lowRight", Qtn = "org.eclipse.elk.stress.fixed", Ytn = "org.eclipse.elk.stress.desiredEdgeLength", Ztn = "org.eclipse.elk.stress.dimension", nin = "org.eclipse.elk.stress.epsilon", ein = "org.eclipse.elk.stress.iterationLimit", la = "org.eclipse.elk.stress", SXn = "ELK Stress", d3 = "org.eclipse.elk.nodeSize.minimum", sS = "org.eclipse.elk.alg.force.stress", PXn = "Layered layout", b3 = "org.eclipse.elk.alg.layered", Ry = "org.eclipse.elk.alg.layered.compaction.components", c8 = "org.eclipse.elk.alg.layered.compaction.oned", fS = "org.eclipse.elk.alg.layered.compaction.oned.algs", Cd = "org.eclipse.elk.alg.layered.compaction.recthull", _f = "org.eclipse.elk.alg.layered.components", vh = "NONE", tin = "MODEL_ORDER", Tc = { 3: 1, 6: 1, 4: 1, 9: 1, 5: 1, 126: 1 }, IXn = { 3: 1, 6: 1, 4: 1, 5: 1, 150: 1, 100: 1, 115: 1 }, hS = "org.eclipse.elk.alg.layered.compound", vt = { 47: 1 }, Rc = "org.eclipse.elk.alg.layered.graph", iR = " -> ", OXn = "Not supported by LGraph", iin = "Port side is undefined", rR = { 3: 1, 6: 1, 4: 1, 5: 1, 483: 1, 150: 1, 100: 1, 115: 1 }, w1 = { 3: 1, 6: 1, 4: 1, 5: 1, 150: 1, 199: 1, 210: 1, 100: 1, 115: 1 }, DXn = { 3: 1, 6: 1, 4: 1, 5: 1, 150: 1, 2042: 1, 210: 1, 100: 1, 115: 1 }, LXn = `([{"' \r +`, NXn = `)]}"' \r +`, $Xn = "The given string contains parts that cannot be parsed as numbers.", Ky = "org.eclipse.elk.core.math", xXn = { 3: 1, 4: 1, 140: 1, 214: 1, 423: 1 }, FXn = { 3: 1, 4: 1, 107: 1, 214: 1, 423: 1 }, g1 = "org.eclipse.elk.alg.layered.graph.transform", BXn = "ElkGraphImporter", RXn = "ElkGraphImporter/lambda$1$Type", KXn = "ElkGraphImporter/lambda$2$Type", _Xn = "ElkGraphImporter/lambda$4$Type", Qn = "org.eclipse.elk.alg.layered.intermediate", HXn = "Node margin calculation", qXn = "ONE_SIDED_GREEDY_SWITCH", UXn = "TWO_SIDED_GREEDY_SWITCH", cR = "No implementation is available for the layout processor ", uR = "IntermediateProcessorStrategy", oR = "Node '", GXn = "FIRST_SEPARATE", zXn = "LAST_SEPARATE", XXn = "Odd port side processing", bi = "org.eclipse.elk.alg.layered.intermediate.compaction", u8 = "org.eclipse.elk.alg.layered.intermediate.greedyswitch", Xh = "org.eclipse.elk.alg.layered.p3order.counting", _y = { 230: 1 }, w3 = "org.eclipse.elk.alg.layered.intermediate.loops", Io = "org.eclipse.elk.alg.layered.intermediate.loops.ordering", aa = "org.eclipse.elk.alg.layered.intermediate.loops.routing", rin = "org.eclipse.elk.alg.layered.intermediate.preserveorder", kh = "org.eclipse.elk.alg.layered.intermediate.wrapping", Ac = "org.eclipse.elk.alg.layered.options", sR = "INTERACTIVE", cin = "GREEDY", VXn = "DEPTH_FIRST", WXn = "EDGE_LENGTH", JXn = "SELF_LOOPS", QXn = "firstTryWithInitialOrder", uin = "org.eclipse.elk.layered.directionCongruency", oin = "org.eclipse.elk.layered.feedbackEdges", lS = "org.eclipse.elk.layered.interactiveReferencePoint", sin = "org.eclipse.elk.layered.mergeEdges", fin = "org.eclipse.elk.layered.mergeHierarchyEdges", hin = "org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides", lin = "org.eclipse.elk.layered.portSortingStrategy", ain = "org.eclipse.elk.layered.thoroughness", din = "org.eclipse.elk.layered.unnecessaryBendpoints", bin = "org.eclipse.elk.layered.generatePositionAndLayerIds", fR = "org.eclipse.elk.layered.cycleBreaking.strategy", Hy = "org.eclipse.elk.layered.layering.strategy", win = "org.eclipse.elk.layered.layering.layerConstraint", gin = "org.eclipse.elk.layered.layering.layerChoiceConstraint", pin = "org.eclipse.elk.layered.layering.layerId", hR = "org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth", lR = "org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor", aR = "org.eclipse.elk.layered.layering.nodePromotion.strategy", dR = "org.eclipse.elk.layered.layering.nodePromotion.maxIterations", bR = "org.eclipse.elk.layered.layering.coffmanGraham.layerBound", o8 = "org.eclipse.elk.layered.crossingMinimization.strategy", min = "org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder", wR = "org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness", gR = "org.eclipse.elk.layered.crossingMinimization.semiInteractive", vin = "org.eclipse.elk.layered.crossingMinimization.inLayerPredOf", kin = "org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf", yin = "org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint", jin = "org.eclipse.elk.layered.crossingMinimization.positionId", Ein = "org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold", pR = "org.eclipse.elk.layered.crossingMinimization.greedySwitch.type", aS = "org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type", c2 = "org.eclipse.elk.layered.nodePlacement.strategy", dS = "org.eclipse.elk.layered.nodePlacement.favorStraightEdges", mR = "org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening", vR = "org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment", kR = "org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening", yR = "org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility", jR = "org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default", Cin = "org.eclipse.elk.layered.edgeRouting.selfLoopDistribution", Min = "org.eclipse.elk.layered.edgeRouting.selfLoopOrdering", bS = "org.eclipse.elk.layered.edgeRouting.splines.mode", wS = "org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor", ER = "org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth", Tin = "org.eclipse.elk.layered.spacing.baseValue", Ain = "org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers", Sin = "org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers", Pin = "org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers", Iin = "org.eclipse.elk.layered.priority.direction", Oin = "org.eclipse.elk.layered.priority.shortness", Din = "org.eclipse.elk.layered.priority.straightness", CR = "org.eclipse.elk.layered.compaction.connectedComponents", Lin = "org.eclipse.elk.layered.compaction.postCompaction.strategy", Nin = "org.eclipse.elk.layered.compaction.postCompaction.constraints", gS = "org.eclipse.elk.layered.highDegreeNodes.treatment", MR = "org.eclipse.elk.layered.highDegreeNodes.threshold", TR = "org.eclipse.elk.layered.highDegreeNodes.treeHeight", Ol = "org.eclipse.elk.layered.wrapping.strategy", pS = "org.eclipse.elk.layered.wrapping.additionalEdgeSpacing", mS = "org.eclipse.elk.layered.wrapping.correctionFactor", s8 = "org.eclipse.elk.layered.wrapping.cutting.strategy", AR = "org.eclipse.elk.layered.wrapping.cutting.cuts", SR = "org.eclipse.elk.layered.wrapping.cutting.msd.freedom", vS = "org.eclipse.elk.layered.wrapping.validify.strategy", kS = "org.eclipse.elk.layered.wrapping.validify.forbiddenIndices", yS = "org.eclipse.elk.layered.wrapping.multiEdge.improveCuts", jS = "org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty", PR = "org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges", $in = "org.eclipse.elk.layered.edgeLabels.sideSelection", xin = "org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy", ES = "org.eclipse.elk.layered.considerModelOrder.strategy", Fin = "org.eclipse.elk.layered.considerModelOrder.portModelOrder", Bin = "org.eclipse.elk.layered.considerModelOrder.noModelOrder", IR = "org.eclipse.elk.layered.considerModelOrder.components", Rin = "org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy", OR = "org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence", DR = "org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence", LR = "layering", YXn = "layering.minWidth", ZXn = "layering.nodePromotion", Vm = "crossingMinimization", CS = "org.eclipse.elk.hierarchyHandling", nVn = "crossingMinimization.greedySwitch", eVn = "nodePlacement", tVn = "nodePlacement.bk", iVn = "edgeRouting", qy = "org.eclipse.elk.edgeRouting", Hf = "spacing", Kin = "priority", _in = "compaction", rVn = "compaction.postCompaction", cVn = "Specifies whether and how post-process compaction is applied.", Hin = "highDegreeNodes", qin = "wrapping", uVn = "wrapping.cutting", oVn = "wrapping.validify", Uin = "wrapping.multiEdge", NR = "edgeLabels", f8 = "considerModelOrder", Gin = "org.eclipse.elk.spacing.commentComment", zin = "org.eclipse.elk.spacing.commentNode", Xin = "org.eclipse.elk.spacing.edgeEdge", $R = "org.eclipse.elk.spacing.edgeNode", Vin = "org.eclipse.elk.spacing.labelLabel", Win = "org.eclipse.elk.spacing.labelPortHorizontal", Jin = "org.eclipse.elk.spacing.labelPortVertical", Qin = "org.eclipse.elk.spacing.labelNode", Yin = "org.eclipse.elk.spacing.nodeSelfLoop", Zin = "org.eclipse.elk.spacing.portPort", nrn = "org.eclipse.elk.spacing.individual", ern = "org.eclipse.elk.port.borderOffset", trn = "org.eclipse.elk.noLayout", irn = "org.eclipse.elk.port.side", Uy = "org.eclipse.elk.debugMode", rrn = "org.eclipse.elk.alignment", crn = "org.eclipse.elk.insideSelfLoops.activate", urn = "org.eclipse.elk.insideSelfLoops.yo", xR = "org.eclipse.elk.direction", orn = "org.eclipse.elk.nodeLabels.padding", srn = "org.eclipse.elk.portLabels.nextToPortIfPossible", frn = "org.eclipse.elk.portLabels.treatAsGroup", hrn = "org.eclipse.elk.portAlignment.default", lrn = "org.eclipse.elk.portAlignment.north", arn = "org.eclipse.elk.portAlignment.south", drn = "org.eclipse.elk.portAlignment.west", brn = "org.eclipse.elk.portAlignment.east", MS = "org.eclipse.elk.contentAlignment", wrn = "org.eclipse.elk.junctionPoints", grn = "org.eclipse.elk.edgeLabels.placement", prn = "org.eclipse.elk.port.index", mrn = "org.eclipse.elk.commentBox", vrn = "org.eclipse.elk.hypernode", krn = "org.eclipse.elk.port.anchor", FR = "org.eclipse.elk.partitioning.activate", BR = "org.eclipse.elk.partitioning.partition", TS = "org.eclipse.elk.position", yrn = "org.eclipse.elk.margins", jrn = "org.eclipse.elk.spacing.portsSurrounding", AS = "org.eclipse.elk.interactiveLayout", dc = "org.eclipse.elk.core.util", Ern = { 3: 1, 4: 1, 5: 1, 601: 1 }, sVn = "NETWORK_SIMPLEX", Crn = "SIMPLE", kr = { 106: 1, 47: 1 }, SS = "org.eclipse.elk.alg.layered.p1cycles", Dl = "org.eclipse.elk.alg.layered.p2layers", Mrn = { 413: 1, 230: 1 }, fVn = { 846: 1, 3: 1, 4: 1 }, Lu = "org.eclipse.elk.alg.layered.p3order", yr = "org.eclipse.elk.alg.layered.p4nodes", hVn = { 3: 1, 4: 1, 5: 1, 854: 1 }, yh = 1e-5, da = "org.eclipse.elk.alg.layered.p4nodes.bk", RR = "org.eclipse.elk.alg.layered.p5edges", mf = "org.eclipse.elk.alg.layered.p5edges.orthogonal", KR = "org.eclipse.elk.alg.layered.p5edges.orthogonal.direction", _R = 1e-6, Ew = "org.eclipse.elk.alg.layered.p5edges.splines", HR = 0.09999999999999998, PS = 1e-8, lVn = 4.71238898038469, Trn = 3.141592653589793, Ll = "org.eclipse.elk.alg.mrtree", qR = 0.10000000149011612, IS = "SUPER_ROOT", h8 = "org.eclipse.elk.alg.mrtree.graph", Arn = -17976931348623157e292, Kc = "org.eclipse.elk.alg.mrtree.intermediate", aVn = "Processor compute fanout", OS = { 3: 1, 6: 1, 4: 1, 5: 1, 534: 1, 100: 1, 115: 1 }, dVn = "Set neighbors in level", Gy = "org.eclipse.elk.alg.mrtree.options", bVn = "DESCENDANTS", Srn = "org.eclipse.elk.mrtree.compaction", Prn = "org.eclipse.elk.mrtree.edgeEndTextureLength", Irn = "org.eclipse.elk.mrtree.treeLevel", Orn = "org.eclipse.elk.mrtree.positionConstraint", Drn = "org.eclipse.elk.mrtree.weighting", Lrn = "org.eclipse.elk.mrtree.edgeRoutingMode", Nrn = "org.eclipse.elk.mrtree.searchOrder", wVn = "Position Constraint", uu = "org.eclipse.elk.mrtree", gVn = "org.eclipse.elk.tree", pVn = "Processor arrange level", Wm = "org.eclipse.elk.alg.mrtree.p2order", po = "org.eclipse.elk.alg.mrtree.p4route", $rn = "org.eclipse.elk.alg.radial", Md = 6.283185307179586, xrn = "Before", Frn = 5e-324, DS = "After", Brn = "org.eclipse.elk.alg.radial.intermediate", mVn = "COMPACTION", UR = "org.eclipse.elk.alg.radial.intermediate.compaction", vVn = { 3: 1, 4: 1, 5: 1, 100: 1 }, Rrn = "org.eclipse.elk.alg.radial.intermediate.optimization", GR = "No implementation is available for the layout option ", l8 = "org.eclipse.elk.alg.radial.options", Krn = "org.eclipse.elk.radial.centerOnRoot", _rn = "org.eclipse.elk.radial.orderId", Hrn = "org.eclipse.elk.radial.radius", LS = "org.eclipse.elk.radial.rotate", zR = "org.eclipse.elk.radial.compactor", XR = "org.eclipse.elk.radial.compactionStepSize", qrn = "org.eclipse.elk.radial.sorter", Urn = "org.eclipse.elk.radial.wedgeCriteria", Grn = "org.eclipse.elk.radial.optimizationCriteria", VR = "org.eclipse.elk.radial.rotation.targetAngle", WR = "org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace", zrn = "org.eclipse.elk.radial.rotation.outgoingEdgeAngles", kVn = "Compaction", Xrn = "rotation", es = "org.eclipse.elk.radial", yVn = "org.eclipse.elk.alg.radial.p1position.wedge", Vrn = "org.eclipse.elk.alg.radial.sorting", jVn = 5.497787143782138, EVn = 3.9269908169872414, CVn = 2.356194490192345, MVn = "org.eclipse.elk.alg.rectpacking", NS = "org.eclipse.elk.alg.rectpacking.intermediate", JR = "org.eclipse.elk.alg.rectpacking.options", Wrn = "org.eclipse.elk.rectpacking.trybox", Jrn = "org.eclipse.elk.rectpacking.currentPosition", Qrn = "org.eclipse.elk.rectpacking.desiredPosition", Yrn = "org.eclipse.elk.rectpacking.inNewRow", Zrn = "org.eclipse.elk.rectpacking.widthApproximation.strategy", ncn = "org.eclipse.elk.rectpacking.widthApproximation.targetWidth", ecn = "org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal", tcn = "org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift", icn = "org.eclipse.elk.rectpacking.packing.strategy", rcn = "org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation", ccn = "org.eclipse.elk.rectpacking.packing.compaction.iterations", ucn = "org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy", QR = "widthApproximation", TVn = "Compaction Strategy", AVn = "packing.compaction", ro = "org.eclipse.elk.rectpacking", Jm = "org.eclipse.elk.alg.rectpacking.p1widthapproximation", $S = "org.eclipse.elk.alg.rectpacking.p2packing", SVn = "No Compaction", ocn = "org.eclipse.elk.alg.rectpacking.p3whitespaceelimination", zy = "org.eclipse.elk.alg.rectpacking.util", xS = "No implementation available for ", Cw = "org.eclipse.elk.alg.spore", Mw = "org.eclipse.elk.alg.spore.options", Y0 = "org.eclipse.elk.sporeCompaction", YR = "org.eclipse.elk.underlyingLayoutAlgorithm", scn = "org.eclipse.elk.processingOrder.treeConstruction", fcn = "org.eclipse.elk.processingOrder.spanningTreeCostFunction", ZR = "org.eclipse.elk.processingOrder.preferredRoot", nK = "org.eclipse.elk.processingOrder.rootSelection", eK = "org.eclipse.elk.structure.structureExtractionStrategy", hcn = "org.eclipse.elk.compaction.compactionStrategy", lcn = "org.eclipse.elk.compaction.orthogonal", acn = "org.eclipse.elk.overlapRemoval.maxIterations", dcn = "org.eclipse.elk.overlapRemoval.runScanline", tK = "processingOrder", PVn = "overlapRemoval", Qm = "org.eclipse.elk.sporeOverlap", IVn = "org.eclipse.elk.alg.spore.p1structure", iK = "org.eclipse.elk.alg.spore.p2processingorder", rK = "org.eclipse.elk.alg.spore.p3execution", OVn = "Topdown Layout", DVn = "Invalid index: ", Ym = "org.eclipse.elk.core.alg", u2 = { 341: 1 }, Tw = { 295: 1 }, LVn = "Make sure its type is registered with the ", bcn = " utility class.", Zm = "true", cK = "false", NVn = "Couldn't clone property '", Z0 = 0.05, co = "org.eclipse.elk.core.options", $Vn = 1.2999999523162842, nb = "org.eclipse.elk.box", wcn = "org.eclipse.elk.expandNodes", gcn = "org.eclipse.elk.box.packingMode", xVn = "org.eclipse.elk.algorithm", FVn = "org.eclipse.elk.resolvedAlgorithm", pcn = "org.eclipse.elk.bendPoints", iNe = "org.eclipse.elk.labelManager", BVn = "org.eclipse.elk.scaleFactor", RVn = "org.eclipse.elk.childAreaWidth", KVn = "org.eclipse.elk.childAreaHeight", _Vn = "org.eclipse.elk.animate", HVn = "org.eclipse.elk.animTimeFactor", qVn = "org.eclipse.elk.layoutAncestors", UVn = "org.eclipse.elk.maxAnimTime", GVn = "org.eclipse.elk.minAnimTime", zVn = "org.eclipse.elk.progressBar", XVn = "org.eclipse.elk.validateGraph", VVn = "org.eclipse.elk.validateOptions", WVn = "org.eclipse.elk.zoomToFit", rNe = "org.eclipse.elk.font.name", JVn = "org.eclipse.elk.font.size", mcn = "org.eclipse.elk.topdown.sizeApproximator", vcn = "org.eclipse.elk.topdown.scaleCap", QVn = "org.eclipse.elk.edge.type", YVn = "partitioning", ZVn = "nodeLabels", FS = "portAlignment", uK = "nodeSize", oK = "port", kcn = "portLabels", Xy = "topdown", nWn = "insideSelfLoops", a8 = "org.eclipse.elk.fixed", BS = "org.eclipse.elk.random", ycn = { 3: 1, 34: 1, 22: 1, 347: 1 }, eWn = "port must have a parent node to calculate the port side", tWn = "The edge needs to have exactly one edge section. Found: ", d8 = "org.eclipse.elk.core.util.adapters", ts = "org.eclipse.emf.ecore", o2 = "org.eclipse.elk.graph", iWn = "EMapPropertyHolder", rWn = "ElkBendPoint", cWn = "ElkGraphElement", uWn = "ElkConnectableShape", jcn = "ElkEdge", oWn = "ElkEdgeSection", sWn = "EModelElement", fWn = "ENamedElement", Ecn = "ElkLabel", Ccn = "ElkNode", Mcn = "ElkPort", hWn = { 94: 1, 93: 1 }, g3 = "org.eclipse.emf.common.notify.impl", ba = "The feature '", b8 = "' is not a valid changeable feature", lWn = "Expecting null", sK = "' is not a valid feature", aWn = "The feature ID", dWn = " is not a valid feature ID", kc = 32768, bWn = { 110: 1, 94: 1, 93: 1, 58: 1, 54: 1, 99: 1 }, qn = "org.eclipse.emf.ecore.impl", Td = "org.eclipse.elk.graph.impl", w8 = "Recursive containment not allowed for ", nv = "The datatype '", eb = "' is not a valid classifier", fK = "The value '", s2 = { 195: 1, 3: 1, 4: 1 }, hK = "The class '", ev = "http://www.eclipse.org/elk/ElkGraph", Tcn = "property", g8 = "value", lK = "source", wWn = "properties", gWn = "identifier", aK = "height", dK = "width", bK = "parent", wK = "text", gK = "children", pWn = "hierarchical", Acn = "sources", pK = "targets", Scn = "sections", RS = "bendPoints", Pcn = "outgoingShape", Icn = "incomingShape", Ocn = "outgoingSections", Dcn = "incomingSections", ur = "org.eclipse.emf.common.util", Lcn = "Severe implementation error in the Json to ElkGraph importer.", jh = "id", Ui = "org.eclipse.elk.graph.json", Ncn = "Unhandled parameter types: ", mWn = "startPoint", vWn = "An edge must have at least one source and one target (edge id: '", tv = "').", kWn = "Referenced edge section does not exist: ", yWn = " (edge id: '", $cn = "target", jWn = "sourcePoint", EWn = "targetPoint", KS = "group", Qe = "name", CWn = "connectableShape cannot be null", MWn = "edge cannot be null", mK = "Passed edge is not 'simple'.", _S = "org.eclipse.elk.graph.util", Vy = "The 'no duplicates' constraint is violated", vK = "targetIndex=", Ad = ", size=", kK = "sourceIndex=", Eh = { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 59: 1, 70: 1, 66: 1, 61: 1 }, yK = { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 51: 1, 15: 1, 59: 1, 70: 1, 66: 1, 61: 1, 596: 1 }, HS = "logging", TWn = "measureExecutionTime", AWn = "parser.parse.1", SWn = "parser.parse.2", qS = "parser.next.1", jK = "parser.next.2", PWn = "parser.next.3", IWn = "parser.next.4", Sd = "parser.factor.1", xcn = "parser.factor.2", OWn = "parser.factor.3", DWn = "parser.factor.4", LWn = "parser.factor.5", NWn = "parser.factor.6", $Wn = "parser.atom.1", xWn = "parser.atom.2", FWn = "parser.atom.3", Fcn = "parser.atom.4", EK = "parser.atom.5", Bcn = "parser.cc.1", US = "parser.cc.2", BWn = "parser.cc.3", RWn = "parser.cc.5", Rcn = "parser.cc.6", Kcn = "parser.cc.7", CK = "parser.cc.8", KWn = "parser.ope.1", _Wn = "parser.ope.2", HWn = "parser.ope.3", p1 = "parser.descape.1", qWn = "parser.descape.2", UWn = "parser.descape.3", GWn = "parser.descape.4", zWn = "parser.descape.5", is = "parser.process.1", XWn = "parser.quantifier.1", VWn = "parser.quantifier.2", WWn = "parser.quantifier.3", JWn = "parser.quantifier.4", _cn = "parser.quantifier.5", QWn = "org.eclipse.emf.common.notify", Hcn = { 424: 1, 686: 1 }, YWn = { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 70: 1, 61: 1 }, Wy = { 378: 1, 152: 1 }, p8 = "index=", MK = { 3: 1, 4: 1, 5: 1, 129: 1 }, ZWn = { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 59: 1, 70: 1, 61: 1 }, qcn = { 3: 1, 6: 1, 4: 1, 5: 1, 198: 1 }, nJn = { 3: 1, 4: 1, 5: 1, 173: 1, 379: 1 }, eJn = ";/?:@&=+$,", tJn = "invalid authority: ", iJn = "EAnnotation", rJn = "ETypedElement", cJn = "EStructuralFeature", uJn = "EAttribute", oJn = "EClassifier", sJn = "EEnumLiteral", fJn = "EGenericType", hJn = "EOperation", lJn = "EParameter", aJn = "EReference", dJn = "ETypeParameter", Tt = "org.eclipse.emf.ecore.util", TK = { 79: 1 }, Ucn = { 3: 1, 20: 1, 16: 1, 15: 1, 61: 1, 597: 1, 79: 1, 71: 1, 97: 1 }, bJn = "org.eclipse.emf.ecore.util.FeatureMap$Entry", Nu = 8192, Aw = 2048, m8 = "byte", GS = "char", v8 = "double", k8 = "float", y8 = "int", j8 = "long", E8 = "short", wJn = "java.lang.Object", f2 = { 3: 1, 4: 1, 5: 1, 254: 1 }, Gcn = { 3: 1, 4: 1, 5: 1, 688: 1 }, gJn = { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 59: 1, 70: 1, 66: 1, 61: 1, 71: 1 }, Qr = { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 59: 1, 70: 1, 66: 1, 61: 1, 79: 1, 71: 1, 97: 1 }, Jy = "mixed", Be = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData", vs = "kind", pJn = { 3: 1, 4: 1, 5: 1, 689: 1 }, zcn = { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 70: 1, 61: 1, 79: 1, 71: 1, 97: 1 }, zS = { 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 61: 1, 71: 1 }, XS = { 51: 1, 128: 1, 287: 1 }, VS = { 76: 1, 343: 1 }, WS = "The value of type '", JS = "' must be of type '", h2 = 1352, ks = "http://www.eclipse.org/emf/2002/Ecore", QS = -32768, tb = "constraints", Ji = "baseType", mJn = "getEStructuralFeature", vJn = "getFeatureID", C8 = "feature", kJn = "getOperationID", Xcn = "operation", yJn = "defaultValue", jJn = "eTypeParameters", EJn = "isInstance", CJn = "getEEnumLiteral", MJn = "eContainingClass", ze = { 57: 1 }, TJn = { 3: 1, 4: 1, 5: 1, 124: 1 }, AJn = "org.eclipse.emf.ecore.resource", SJn = { 94: 1, 93: 1, 599: 1, 2034: 1 }, AK = "org.eclipse.emf.ecore.resource.impl", Vcn = "unspecified", Qy = "simple", YS = "attribute", PJn = "attributeWildcard", ZS = "element", SK = "elementWildcard", vf = "collapse", PK = "itemType", nP = "namespace", Yy = "##targetNamespace", ys = "whiteSpace", Wcn = "wildcards", Pd = "http://www.eclipse.org/emf/2003/XMLType", IK = "##any", iv = "uninitialized", Zy = "The multiplicity constraint is violated", eP = "org.eclipse.emf.ecore.xml.type", IJn = "ProcessingInstruction", OJn = "SimpleAnyType", DJn = "XMLTypeDocumentRoot", si = "org.eclipse.emf.ecore.xml.type.impl", nj = "INF", LJn = "processing", NJn = "ENTITIES_._base", Jcn = "minLength", Qcn = "ENTITY", tP = "NCName", $Jn = "IDREFS_._base", Ycn = "integer", OK = "token", DK = "pattern", xJn = "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", Zcn = "\\i\\c*", FJn = "[\\i-[:]][\\c-[:]]*", BJn = "nonPositiveInteger", ej = "maxInclusive", nun = "NMTOKEN", RJn = "NMTOKENS_._base", eun = "nonNegativeInteger", tj = "minInclusive", KJn = "normalizedString", _Jn = "unsignedByte", HJn = "unsignedInt", qJn = "18446744073709551615", UJn = "unsignedShort", GJn = "processingInstruction", m1 = "org.eclipse.emf.ecore.xml.type.internal", rv = 1114111, zJn = "Internal Error: shorthands: \\u", M8 = "xml:isDigit", LK = "xml:isWord", NK = "xml:isSpace", $K = "xml:isNameChar", xK = "xml:isInitialNameChar", XJn = "09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩", VJn = "AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣", WJn = "Private Use", FK = "ASSIGNED", BK = "\0€ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\uFEFF\uFEFF＀￯", tun = "UNASSIGNED", cv = { 3: 1, 122: 1 }, JJn = "org.eclipse.emf.ecore.xml.type.util", iP = { 3: 1, 4: 1, 5: 1, 381: 1 }, iun = "org.eclipse.xtext.xbase.lib", QJn = "Cannot add elements to a Range", YJn = "Cannot set elements in a Range", ZJn = "Cannot remove elements from a Range", nQn = "user.agent", o, rP, RK; + y.goog = y.goog || {}, y.goog.global = y.goog.global || y, rP = {}, b(1, null, {}, Qu), o.Fb = function(e) { + return YMn(this, e); + }, o.Gb = function() { + return this.Rm; + }, o.Hb = function() { + return a0(this); + }, o.Ib = function() { + var e; + return Va(wo(this)) + "@" + (e = mt(this) >>> 0, e.toString(16)); + }, o.equals = function(n) { + return this.Fb(n); + }, o.hashCode = function() { + return this.Hb(); + }, o.toString = function() { + return this.Ib(); + }; + var eQn, tQn, iQn; + b(297, 1, { 297: 1, 2124: 1 }, YQ), o.ve = function(e) { + var t; + return t = new YQ(), t.i = 4, e > 1 ? t.c = kOn(this, e - 1) : t.c = this, t; + }, o.we = function() { + return ll(this), this.b; + }, o.xe = function() { + return Va(this); + }, o.ye = function() { + return ll(this), this.k; + }, o.ze = function() { + return (this.i & 4) != 0; + }, o.Ae = function() { + return (this.i & 1) != 0; + }, o.Ib = function() { + return fQ(this); + }, o.i = 0; + var yi = w(ac, "Object", 1), run = w(ac, "Class", 297); + b(2096, 1, ky), w(yy, "Optional", 2096), b(1191, 2096, ky, Rt), o.Fb = function(e) { + return e === this; + }, o.Hb = function() { + return 2040732332; + }, o.Ib = function() { + return "Optional.absent()"; + }, o.Jb = function(e) { + return Se(e), Zv(), KK; + }; + var KK; + w(yy, "Absent", 1191), b(636, 1, {}, yD), w(yy, "Joiner", 636); + var cNe = Nt(yy, "Predicate"); + b(589, 1, { 178: 1, 589: 1, 3: 1, 46: 1 }, A8n), o.Mb = function(e) { + return kFn(this, e); + }, o.Lb = function(e) { + return kFn(this, e); + }, o.Fb = function(e) { + var t; + return D(e, 589) ? (t = u(e, 589), Wnn(this.a, t.a)) : !1; + }, o.Hb = function() { + return rY(this.a) + 306654252; + }, o.Ib = function() { + return Gje(this.a); + }, w(yy, "Predicates/AndPredicate", 589), b(419, 2096, { 419: 1, 3: 1 }, TE), o.Fb = function(e) { + var t; + return D(e, 419) ? (t = u(e, 419), rt(this.a, t.a)) : !1; + }, o.Hb = function() { + return 1502476572 + mt(this.a); + }, o.Ib = function() { + return Szn + this.a + ")"; + }, o.Jb = function(e) { + return new TE(TM(e.Kb(this.a), "the Function passed to Optional.transform() must not return null.")); + }, w(yy, "Present", 419), b(204, 1, Nm), o.Nb = function(e) { + _i(this, e); + }, o.Qb = function() { + _jn(); + }, w(Cn, "UnmodifiableIterator", 204), b(2076, 204, $m), o.Qb = function() { + _jn(); + }, o.Rb = function(e) { + throw M(new Pe()); + }, o.Wb = function(e) { + throw M(new Pe()); + }, w(Cn, "UnmodifiableListIterator", 2076), b(399, 2076, $m), o.Ob = function() { + return this.c < this.d; + }, o.Sb = function() { + return this.c > 0; + }, o.Pb = function() { + if (this.c >= this.d) + throw M(new nc()); + return this.Xb(this.c++); + }, o.Tb = function() { + return this.c; + }, o.Ub = function() { + if (this.c <= 0) + throw M(new nc()); + return this.Xb(--this.c); + }, o.Vb = function() { + return this.c - 1; + }, o.c = 0, o.d = 0, w(Cn, "AbstractIndexedListIterator", 399), b(713, 204, Nm), o.Ob = function() { + return E$(this); + }, o.Pb = function() { + return iQ(this); + }, o.e = 1, w(Cn, "AbstractIterator", 713), b(2084, 1, { 229: 1 }), o.Zb = function() { + var e; + return e = this.f, e || (this.f = this.ac()); + }, o.Fb = function(e) { + return G$(this, e); + }, o.Hb = function() { + return mt(this.Zb()); + }, o.dc = function() { + return this.gc() == 0; + }, o.ec = function() { + return Tp(this); + }, o.Ib = function() { + return Jr(this.Zb()); + }, w(Cn, "AbstractMultimap", 2084), b(742, 2084, vd), o.$b = function() { + gT(this); + }, o._b = function(e) { + return uEn(this, e); + }, o.ac = function() { + return new f4(this, this.c); + }, o.ic = function(e) { + return this.hc(); + }, o.bc = function() { + return new Mg(this, this.c); + }, o.jc = function() { + return this.mc(this.hc()); + }, o.kc = function() { + return new Mjn(this); + }, o.lc = function() { + return nF(this.c.vc().Nc(), new Je(), 64, this.d); + }, o.cc = function(e) { + return ot(this, e); + }, o.fc = function(e) { + return Ok(this, e); + }, o.gc = function() { + return this.d; + }, o.mc = function(e) { + return Dn(), new J3(e); + }, o.nc = function() { + return new Cjn(this); + }, o.oc = function() { + return nF(this.c.Cc().Nc(), new Yt(), 64, this.d); + }, o.pc = function(e, t) { + return new VM(this, e, t, null); + }, o.d = 0, w(Cn, "AbstractMapBasedMultimap", 742), b(1696, 742, vd), o.hc = function() { + return new zc(this.a); + }, o.jc = function() { + return Dn(), Dn(), or; + }, o.cc = function(e) { + return u(ot(this, e), 15); + }, o.fc = function(e) { + return u(Ok(this, e), 15); + }, o.Zb = function() { + return Dp(this); + }, o.Fb = function(e) { + return G$(this, e); + }, o.qc = function(e) { + return u(ot(this, e), 15); + }, o.rc = function(e) { + return u(Ok(this, e), 15); + }, o.mc = function(e) { + return TN(u(e, 15)); + }, o.pc = function(e, t) { + return ADn(this, e, u(t, 15), null); + }, w(Cn, "AbstractListMultimap", 1696), b(748, 1, Ii), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return this.c.Ob() || this.e.Ob(); + }, o.Pb = function() { + var e; + return this.e.Ob() || (e = u(this.c.Pb(), 44), this.b = e.ld(), this.a = u(e.md(), 16), this.e = this.a.Kc()), this.sc(this.b, this.e.Pb()); + }, o.Qb = function() { + this.e.Qb(), u(as(this.a), 16).dc() && this.c.Qb(), --this.d.d; + }, w(Cn, "AbstractMapBasedMultimap/Itr", 748), b(1129, 748, Ii, Cjn), o.sc = function(e, t) { + return t; + }, w(Cn, "AbstractMapBasedMultimap/1", 1129), b(1130, 1, {}, Yt), o.Kb = function(e) { + return u(e, 16).Nc(); + }, w(Cn, "AbstractMapBasedMultimap/1methodref$spliterator$Type", 1130), b(1131, 748, Ii, Mjn), o.sc = function(e, t) { + return new r0(e, t); + }, w(Cn, "AbstractMapBasedMultimap/2", 1131); + var cun = Nt(le, "Map"); + b(2065, 1, V0), o.wc = function(e) { + f5(this, e); + }, o.yc = function(e, t, i) { + return hx(this, e, t, i); + }, o.$b = function() { + this.vc().$b(); + }, o.tc = function(e) { + return xx(this, e); + }, o._b = function(e) { + return !!XZ(this, e, !1); + }, o.uc = function(e) { + var t, i, r; + for (i = this.vc().Kc(); i.Ob(); ) + if (t = u(i.Pb(), 44), r = t.md(), x(e) === x(r) || e != null && rt(e, r)) + return !0; + return !1; + }, o.Fb = function(e) { + var t, i, r; + if (e === this) + return !0; + if (!D(e, 85) || (r = u(e, 85), this.gc() != r.gc())) + return !1; + for (i = r.vc().Kc(); i.Ob(); ) + if (t = u(i.Pb(), 44), !this.tc(t)) + return !1; + return !0; + }, o.xc = function(e) { + return Kr(XZ(this, e, !1)); + }, o.Hb = function() { + return VQ(this.vc()); + }, o.dc = function() { + return this.gc() == 0; + }, o.ec = function() { + return new Ua(this); + }, o.zc = function(e, t) { + throw M(new _l("Put not supported on this map")); + }, o.Ac = function(e) { + s5(this, e); + }, o.Bc = function(e) { + return Kr(XZ(this, e, !0)); + }, o.gc = function() { + return this.vc().gc(); + }, o.Ib = function() { + return DKn(this); + }, o.Cc = function() { + return new ol(this); + }, w(le, "AbstractMap", 2065), b(2085, 2065, V0), o.bc = function() { + return new VE(this); + }, o.vc = function() { + return EPn(this); + }, o.ec = function() { + var e; + return e = this.g, e || (this.g = this.bc()); + }, o.Cc = function() { + var e; + return e = this.i, e || (this.i = new JEn(this)); + }, w(Cn, "Maps/ViewCachingAbstractMap", 2085), b(402, 2085, V0, f4), o.xc = function(e) { + return hme(this, e); + }, o.Bc = function(e) { + return L6e(this, e); + }, o.$b = function() { + this.d == this.e.c ? this.e.$b() : iM(new uW(this)); + }, o._b = function(e) { + return rBn(this.d, e); + }, o.Ec = function() { + return new S8n(this); + }, o.Dc = function() { + return this.Ec(); + }, o.Fb = function(e) { + return this === e || rt(this.d, e); + }, o.Hb = function() { + return mt(this.d); + }, o.ec = function() { + return this.e.ec(); + }, o.gc = function() { + return this.d.gc(); + }, o.Ib = function() { + return Jr(this.d); + }, w(Cn, "AbstractMapBasedMultimap/AsMap", 402); + var Oo = Nt(ac, "Iterable"); + b(31, 1, mw), o.Jc = function(e) { + qi(this, e); + }, o.Lc = function() { + return this.Oc(); + }, o.Nc = function() { + return new In(this, 0); + }, o.Oc = function() { + return new Tn(null, this.Nc()); + }, o.Fc = function(e) { + throw M(new _l("Add not supported on this collection")); + }, o.Gc = function(e) { + return Ri(this, e); + }, o.$b = function() { + zW(this); + }, o.Hc = function(e) { + return rw(this, e, !1); + }, o.Ic = function(e) { + return Ek(this, e); + }, o.dc = function() { + return this.gc() == 0; + }, o.Mc = function(e) { + return rw(this, e, !0); + }, o.Pc = function() { + return gW(this); + }, o.Qc = function(e) { + return A5(this, e); + }, o.Ib = function() { + return ca(this); + }, w(le, "AbstractCollection", 31); + var js = Nt(le, "Set"); + b(Rf, 31, Du), o.Nc = function() { + return new In(this, 1); + }, o.Fb = function(e) { + return WBn(this, e); + }, o.Hb = function() { + return VQ(this); + }, w(le, "AbstractSet", Rf), b(2068, Rf, Du), w(Cn, "Sets/ImprovedAbstractSet", 2068), b(2069, 2068, Du), o.$b = function() { + this.Rc().$b(); + }, o.Hc = function(e) { + return LBn(this, e); + }, o.dc = function() { + return this.Rc().dc(); + }, o.Mc = function(e) { + var t; + return this.Hc(e) && D(e, 44) ? (t = u(e, 44), this.Rc().ec().Mc(t.ld())) : !1; + }, o.gc = function() { + return this.Rc().gc(); + }, w(Cn, "Maps/EntrySet", 2069), b(1127, 2069, Du, S8n), o.Hc = function(e) { + return yY(this.a.d.vc(), e); + }, o.Kc = function() { + return new uW(this.a); + }, o.Rc = function() { + return this.a; + }, o.Mc = function(e) { + var t; + return yY(this.a.d.vc(), e) ? (t = u(as(u(e, 44)), 44), Y3e(this.a.e, t.ld()), !0) : !1; + }, o.Nc = function() { + return N7(this.a.d.vc().Nc(), new P8n(this.a)); + }, w(Cn, "AbstractMapBasedMultimap/AsMap/AsMapEntries", 1127), b(1128, 1, {}, P8n), o.Kb = function(e) { + return MLn(this.a, u(e, 44)); + }, w(Cn, "AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type", 1128), b(746, 1, Ii, uW), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + var e; + return e = u(this.b.Pb(), 44), this.a = u(e.md(), 16), MLn(this.c, e); + }, o.Ob = function() { + return this.b.Ob(); + }, o.Qb = function() { + m4(!!this.a), this.b.Qb(), this.c.e.d -= this.a.gc(), this.a.$b(), this.a = null; + }, w(Cn, "AbstractMapBasedMultimap/AsMap/AsMapIterator", 746), b(542, 2068, Du, VE), o.$b = function() { + this.b.$b(); + }, o.Hc = function(e) { + return this.b._b(e); + }, o.Jc = function(e) { + Se(e), this.b.wc(new z8n(e)); + }, o.dc = function() { + return this.b.dc(); + }, o.Kc = function() { + return new n6(this.b.vc().Kc()); + }, o.Mc = function(e) { + return this.b._b(e) ? (this.b.Bc(e), !0) : !1; + }, o.gc = function() { + return this.b.gc(); + }, w(Cn, "Maps/KeySet", 542), b(327, 542, Du, Mg), o.$b = function() { + var e; + iM((e = this.b.vc().Kc(), new Iz(this, e))); + }, o.Ic = function(e) { + return this.b.ec().Ic(e); + }, o.Fb = function(e) { + return this === e || rt(this.b.ec(), e); + }, o.Hb = function() { + return mt(this.b.ec()); + }, o.Kc = function() { + var e; + return e = this.b.vc().Kc(), new Iz(this, e); + }, o.Mc = function(e) { + var t, i; + return i = 0, t = u(this.b.Bc(e), 16), t && (i = t.gc(), t.$b(), this.a.d -= i), i > 0; + }, o.Nc = function() { + return this.b.ec().Nc(); + }, w(Cn, "AbstractMapBasedMultimap/KeySet", 327), b(747, 1, Ii, Iz), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return this.c.Ob(); + }, o.Pb = function() { + return this.a = u(this.c.Pb(), 44), this.a.ld(); + }, o.Qb = function() { + var e; + m4(!!this.a), e = u(this.a.md(), 16), this.c.Qb(), this.b.a.d -= e.gc(), e.$b(), this.a = null; + }, w(Cn, "AbstractMapBasedMultimap/KeySet/1", 747), b(503, 402, { 85: 1, 133: 1 }, A7), o.bc = function() { + return this.Sc(); + }, o.ec = function() { + return this.Uc(); + }, o.Sc = function() { + return new e7(this.c, this.Wc()); + }, o.Tc = function() { + return this.Wc().Tc(); + }, o.Uc = function() { + var e; + return e = this.b, e || (this.b = this.Sc()); + }, o.Vc = function() { + return this.Wc().Vc(); + }, o.Wc = function() { + return u(this.d, 133); + }, w(Cn, "AbstractMapBasedMultimap/SortedAsMap", 503), b(446, 503, wtn, N6), o.bc = function() { + return new s4(this.a, u(u(this.d, 133), 139)); + }, o.Sc = function() { + return new s4(this.a, u(u(this.d, 133), 139)); + }, o.ec = function() { + var e; + return e = this.b, u(e || (this.b = new s4(this.a, u(u(this.d, 133), 139))), 277); + }, o.Uc = function() { + var e; + return e = this.b, u(e || (this.b = new s4(this.a, u(u(this.d, 133), 139))), 277); + }, o.Wc = function() { + return u(u(this.d, 133), 139); + }, o.Xc = function(e) { + return u(u(this.d, 133), 139).Xc(e); + }, o.Yc = function(e) { + return u(u(this.d, 133), 139).Yc(e); + }, o.Zc = function(e, t) { + return new N6(this.a, u(u(this.d, 133), 139).Zc(e, t)); + }, o.$c = function(e) { + return u(u(this.d, 133), 139).$c(e); + }, o._c = function(e) { + return u(u(this.d, 133), 139)._c(e); + }, o.ad = function(e, t) { + return new N6(this.a, u(u(this.d, 133), 139).ad(e, t)); + }, w(Cn, "AbstractMapBasedMultimap/NavigableAsMap", 446), b(502, 327, Pzn, e7), o.Nc = function() { + return this.b.ec().Nc(); + }, w(Cn, "AbstractMapBasedMultimap/SortedKeySet", 502), b(401, 502, gtn, s4), w(Cn, "AbstractMapBasedMultimap/NavigableKeySet", 401), b(551, 31, mw, VM), o.Fc = function(e) { + var t, i; + return no(this), i = this.d.dc(), t = this.d.Fc(e), t && (++this.f.d, i && O7(this)), t; + }, o.Gc = function(e) { + var t, i, r; + return e.dc() ? !1 : (r = (no(this), this.d.gc()), t = this.d.Gc(e), t && (i = this.d.gc(), this.f.d += i - r, r == 0 && O7(this)), t); + }, o.$b = function() { + var e; + e = (no(this), this.d.gc()), e != 0 && (this.d.$b(), this.f.d -= e, fM(this)); + }, o.Hc = function(e) { + return no(this), this.d.Hc(e); + }, o.Ic = function(e) { + return no(this), this.d.Ic(e); + }, o.Fb = function(e) { + return e === this ? !0 : (no(this), rt(this.d, e)); + }, o.Hb = function() { + return no(this), mt(this.d); + }, o.Kc = function() { + return no(this), new qV(this); + }, o.Mc = function(e) { + var t; + return no(this), t = this.d.Mc(e), t && (--this.f.d, fM(this)), t; + }, o.gc = function() { + return BMn(this); + }, o.Nc = function() { + return no(this), this.d.Nc(); + }, o.Ib = function() { + return no(this), Jr(this.d); + }, w(Cn, "AbstractMapBasedMultimap/WrappedCollection", 551); + var rs = Nt(le, "List"); + b(744, 551, { 20: 1, 31: 1, 16: 1, 15: 1 }, vW), o.jd = function(e) { + od(this, e); + }, o.Nc = function() { + return no(this), this.d.Nc(); + }, o.bd = function(e, t) { + var i; + no(this), i = this.d.dc(), u(this.d, 15).bd(e, t), ++this.a.d, i && O7(this); + }, o.cd = function(e, t) { + var i, r, c; + return t.dc() ? !1 : (c = (no(this), this.d.gc()), i = u(this.d, 15).cd(e, t), i && (r = this.d.gc(), this.a.d += r - c, c == 0 && O7(this)), i); + }, o.Xb = function(e) { + return no(this), u(this.d, 15).Xb(e); + }, o.dd = function(e) { + return no(this), u(this.d, 15).dd(e); + }, o.ed = function() { + return no(this), new bTn(this); + }, o.fd = function(e) { + return no(this), new FIn(this, e); + }, o.gd = function(e) { + var t; + return no(this), t = u(this.d, 15).gd(e), --this.a.d, fM(this), t; + }, o.hd = function(e, t) { + return no(this), u(this.d, 15).hd(e, t); + }, o.kd = function(e, t) { + return no(this), ADn(this.a, this.e, u(this.d, 15).kd(e, t), this.b ? this.b : this); + }, w(Cn, "AbstractMapBasedMultimap/WrappedList", 744), b(1126, 744, { 20: 1, 31: 1, 16: 1, 15: 1, 59: 1 }, iAn), w(Cn, "AbstractMapBasedMultimap/RandomAccessWrappedList", 1126), b(628, 1, Ii, qV), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return P4(this), this.b.Ob(); + }, o.Pb = function() { + return P4(this), this.b.Pb(); + }, o.Qb = function() { + _Tn(this); + }, w(Cn, "AbstractMapBasedMultimap/WrappedCollection/WrappedIterator", 628), b(745, 628, _h, bTn, FIn), o.Qb = function() { + _Tn(this); + }, o.Rb = function(e) { + var t; + t = BMn(this.a) == 0, (P4(this), u(this.b, 128)).Rb(e), ++this.a.a.d, t && O7(this.a); + }, o.Sb = function() { + return (P4(this), u(this.b, 128)).Sb(); + }, o.Tb = function() { + return (P4(this), u(this.b, 128)).Tb(); + }, o.Ub = function() { + return (P4(this), u(this.b, 128)).Ub(); + }, o.Vb = function() { + return (P4(this), u(this.b, 128)).Vb(); + }, o.Wb = function(e) { + (P4(this), u(this.b, 128)).Wb(e); + }, w(Cn, "AbstractMapBasedMultimap/WrappedList/WrappedListIterator", 745), b(743, 551, Pzn, sV), o.Nc = function() { + return no(this), this.d.Nc(); + }, w(Cn, "AbstractMapBasedMultimap/WrappedSortedSet", 743), b(1125, 743, gtn, fTn), w(Cn, "AbstractMapBasedMultimap/WrappedNavigableSet", 1125), b(1124, 551, Du, CAn), o.Nc = function() { + return no(this), this.d.Nc(); + }, w(Cn, "AbstractMapBasedMultimap/WrappedSet", 1124), b(1133, 1, {}, Je), o.Kb = function(e) { + return s4e(u(e, 44)); + }, w(Cn, "AbstractMapBasedMultimap/lambda$1$Type", 1133), b(1132, 1, {}, L8n), o.Kb = function(e) { + return new r0(this.a, e); + }, w(Cn, "AbstractMapBasedMultimap/lambda$2$Type", 1132); + var Id = Nt(le, "Map/Entry"); + b(358, 1, tB), o.Fb = function(e) { + var t; + return D(e, 44) ? (t = u(e, 44), oh(this.ld(), t.ld()) && oh(this.md(), t.md())) : !1; + }, o.Hb = function() { + var e, t; + return e = this.ld(), t = this.md(), (e == null ? 0 : mt(e)) ^ (t == null ? 0 : mt(t)); + }, o.nd = function(e) { + throw M(new Pe()); + }, o.Ib = function() { + return this.ld() + "=" + this.md(); + }, w(Cn, Izn, 358), b(2086, 31, mw), o.$b = function() { + this.od().$b(); + }, o.Hc = function(e) { + var t; + return D(e, 44) ? (t = u(e, 44), Ppe(this.od(), t.ld(), t.md())) : !1; + }, o.Mc = function(e) { + var t; + return D(e, 44) ? (t = u(e, 44), sDn(this.od(), t.ld(), t.md())) : !1; + }, o.gc = function() { + return this.od().d; + }, w(Cn, "Multimaps/Entries", 2086), b(749, 2086, mw, fG), o.Kc = function() { + return this.a.kc(); + }, o.od = function() { + return this.a; + }, o.Nc = function() { + return this.a.lc(); + }, w(Cn, "AbstractMultimap/Entries", 749), b(750, 749, Du, oz), o.Nc = function() { + return this.a.lc(); + }, o.Fb = function(e) { + return dnn(this, e); + }, o.Hb = function() { + return vxn(this); + }, w(Cn, "AbstractMultimap/EntrySet", 750), b(751, 31, mw, hG), o.$b = function() { + this.a.$b(); + }, o.Hc = function(e) { + return A6e(this.a, e); + }, o.Kc = function() { + return this.a.nc(); + }, o.gc = function() { + return this.a.d; + }, o.Nc = function() { + return this.a.oc(); + }, w(Cn, "AbstractMultimap/Values", 751), b(2087, 31, { 849: 1, 20: 1, 31: 1, 16: 1 }), o.Jc = function(e) { + Se(e), Ag(this).Jc(new Y8n(e)); + }, o.Nc = function() { + var e; + return e = Ag(this).Nc(), nF(e, new cl(), 64 | e.yd() & 1296, this.a.d); + }, o.Fc = function(e) { + return wz(), !0; + }, o.Gc = function(e) { + return Se(this), Se(e), D(e, 552) ? Dpe(u(e, 849)) : !e.dc() && b$(this, e.Kc()); + }, o.Hc = function(e) { + var t; + return t = u(iw(Dp(this.a), e), 16), (t ? t.gc() : 0) > 0; + }, o.Fb = function(e) { + return nMe(this, e); + }, o.Hb = function() { + return mt(Ag(this)); + }, o.dc = function() { + return Ag(this).dc(); + }, o.Mc = function(e) { + return G_n(this, e, 1) > 0; + }, o.Ib = function() { + return Jr(Ag(this)); + }, w(Cn, "AbstractMultiset", 2087), b(2089, 2068, Du), o.$b = function() { + gT(this.a.a); + }, o.Hc = function(e) { + var t, i; + return D(e, 504) ? (i = u(e, 425), u(i.a.md(), 16).gc() <= 0 ? !1 : (t = $On(this.a, i.a.ld()), t == u(i.a.md(), 16).gc())) : !1; + }, o.Mc = function(e) { + var t, i, r, c; + return D(e, 504) && (i = u(e, 425), t = i.a.ld(), r = u(i.a.md(), 16).gc(), r != 0) ? (c = this.a, UEe(c, t, r)) : !1; + }, w(Cn, "Multisets/EntrySet", 2089), b(1139, 2089, Du, N8n), o.Kc = function() { + return new Ijn(EPn(Dp(this.a.a)).Kc()); + }, o.gc = function() { + return Dp(this.a.a).gc(); + }, w(Cn, "AbstractMultiset/EntrySet", 1139), b(627, 742, vd), o.hc = function() { + return this.pd(); + }, o.jc = function() { + return this.qd(); + }, o.cc = function(e) { + return this.rd(e); + }, o.fc = function(e) { + return this.sd(e); + }, o.Zb = function() { + var e; + return e = this.f, e || (this.f = this.ac()); + }, o.qd = function() { + return Dn(), Dn(), hP; + }, o.Fb = function(e) { + return G$(this, e); + }, o.rd = function(e) { + return u(ot(this, e), 21); + }, o.sd = function(e) { + return u(Ok(this, e), 21); + }, o.mc = function(e) { + return Dn(), new i4(u(e, 21)); + }, o.pc = function(e, t) { + return new CAn(this, e, u(t, 21)); + }, w(Cn, "AbstractSetMultimap", 627), b(1723, 627, vd), o.hc = function() { + return new Gl(this.b); + }, o.pd = function() { + return new Gl(this.b); + }, o.jc = function() { + return KW(new Gl(this.b)); + }, o.qd = function() { + return KW(new Gl(this.b)); + }, o.cc = function(e) { + return u(u(ot(this, e), 21), 87); + }, o.rd = function(e) { + return u(u(ot(this, e), 21), 87); + }, o.fc = function(e) { + return u(u(Ok(this, e), 21), 87); + }, o.sd = function(e) { + return u(u(Ok(this, e), 21), 87); + }, o.mc = function(e) { + return D(e, 277) ? KW(u(e, 277)) : (Dn(), new XX(u(e, 87))); + }, o.Zb = function() { + var e; + return e = this.f, e || (this.f = D(this.c, 139) ? new N6(this, u(this.c, 139)) : D(this.c, 133) ? new A7(this, u(this.c, 133)) : new f4(this, this.c)); + }, o.pc = function(e, t) { + return D(t, 277) ? new fTn(this, e, u(t, 277)) : new sV(this, e, u(t, 87)); + }, w(Cn, "AbstractSortedSetMultimap", 1723), b(1724, 1723, vd), o.Zb = function() { + var e; + return e = this.f, u(u(e || (this.f = D(this.c, 139) ? new N6(this, u(this.c, 139)) : D(this.c, 133) ? new A7(this, u(this.c, 133)) : new f4(this, this.c)), 133), 139); + }, o.ec = function() { + var e; + return e = this.i, u(u(e || (this.i = D(this.c, 139) ? new s4(this, u(this.c, 139)) : D(this.c, 133) ? new e7(this, u(this.c, 133)) : new Mg(this, this.c)), 87), 277); + }, o.bc = function() { + return D(this.c, 139) ? new s4(this, u(this.c, 139)) : D(this.c, 133) ? new e7(this, u(this.c, 133)) : new Mg(this, this.c); + }, w(Cn, "AbstractSortedKeySortedSetMultimap", 1724), b(2109, 1, { 2046: 1 }), o.Fb = function(e) { + return Mke(this, e); + }, o.Hb = function() { + var e; + return VQ((e = this.g, e || (this.g = new zO(this)))); + }, o.Ib = function() { + var e; + return DKn((e = this.f, e || (this.f = new qX(this)))); + }, w(Cn, "AbstractTable", 2109), b(679, Rf, Du, zO), o.$b = function() { + Hjn(); + }, o.Hc = function(e) { + var t, i; + return D(e, 479) ? (t = u(e, 697), i = u(iw(XPn(this.a), _1(t.c.e, t.b)), 85), !!i && yY(i.vc(), new r0(_1(t.c.c, t.a), Rp(t.c, t.b, t.a)))) : !1; + }, o.Kc = function() { + return Pge(this.a); + }, o.Mc = function(e) { + var t, i; + return D(e, 479) ? (t = u(e, 697), i = u(iw(XPn(this.a), _1(t.c.e, t.b)), 85), !!i && u5e(i.vc(), new r0(_1(t.c.c, t.a), Rp(t.c, t.b, t.a)))) : !1; + }, o.gc = function() { + return JSn(this.a); + }, o.Nc = function() { + return $pe(this.a); + }, w(Cn, "AbstractTable/CellSet", 679), b(2025, 31, mw, x8n), o.$b = function() { + Hjn(); + }, o.Hc = function(e) { + return pye(this.a, e); + }, o.Kc = function() { + return Ige(this.a); + }, o.gc = function() { + return JSn(this.a); + }, o.Nc = function() { + return oDn(this.a); + }, w(Cn, "AbstractTable/Values", 2025), b(1697, 1696, vd), w(Cn, "ArrayListMultimapGwtSerializationDependencies", 1697), b(520, 1697, vd, CD, sJ), o.hc = function() { + return new zc(this.a); + }, o.a = 0, w(Cn, "ArrayListMultimap", 520), b(678, 2109, { 678: 1, 2046: 1, 3: 1 }, rHn), w(Cn, "ArrayTable", 678), b(2021, 399, $m, HTn), o.Xb = function(e) { + return new ZQ(this.a, e); + }, w(Cn, "ArrayTable/1", 2021), b(2022, 1, {}, I8n), o.td = function(e) { + return new ZQ(this.a, e); + }, w(Cn, "ArrayTable/1methodref$getCell$Type", 2022), b(2110, 1, { 697: 1 }), o.Fb = function(e) { + var t; + return e === this ? !0 : D(e, 479) ? (t = u(e, 697), oh(_1(this.c.e, this.b), _1(t.c.e, t.b)) && oh(_1(this.c.c, this.a), _1(t.c.c, t.a)) && oh(Rp(this.c, this.b, this.a), Rp(t.c, t.b, t.a))) : !1; + }, o.Hb = function() { + return Ik(A(T(yi, 1), Bn, 1, 5, [_1(this.c.e, this.b), _1(this.c.c, this.a), Rp(this.c, this.b, this.a)])); + }, o.Ib = function() { + return "(" + _1(this.c.e, this.b) + "," + _1(this.c.c, this.a) + ")=" + Rp(this.c, this.b, this.a); + }, w(Cn, "Tables/AbstractCell", 2110), b(479, 2110, { 479: 1, 697: 1 }, ZQ), o.a = 0, o.b = 0, o.d = 0, w(Cn, "ArrayTable/2", 479), b(2024, 1, {}, O8n), o.td = function(e) { + return DNn(this.a, e); + }, w(Cn, "ArrayTable/2methodref$getValue$Type", 2024), b(2023, 399, $m, qTn), o.Xb = function(e) { + return DNn(this.a, e); + }, w(Cn, "ArrayTable/3", 2023), b(2077, 2065, V0), o.$b = function() { + iM(this.kc()); + }, o.vc = function() { + return new G8n(this); + }, o.lc = function() { + return new AIn(this.kc(), this.gc()); + }, w(Cn, "Maps/IteratorBasedAbstractMap", 2077), b(842, 2077, V0), o.$b = function() { + throw M(new Pe()); + }, o._b = function(e) { + return oEn(this.c, e); + }, o.kc = function() { + return new UTn(this, this.c.b.c.gc()); + }, o.lc = function() { + return XL(this.c.b.c.gc(), 16, new D8n(this)); + }, o.xc = function(e) { + var t; + return t = u($6(this.c, e), 17), t ? this.vd(t.a) : null; + }, o.dc = function() { + return this.c.b.c.dc(); + }, o.ec = function() { + return eN(this.c); + }, o.zc = function(e, t) { + var i; + if (i = u($6(this.c, e), 17), !i) + throw M(new Gn(this.ud() + " " + e + " not in " + eN(this.c))); + return this.wd(i.a, t); + }, o.Bc = function(e) { + throw M(new Pe()); + }, o.gc = function() { + return this.c.b.c.gc(); + }, w(Cn, "ArrayTable/ArrayMap", 842), b(2020, 1, {}, D8n), o.td = function(e) { + return WPn(this.a, e); + }, w(Cn, "ArrayTable/ArrayMap/0methodref$getEntry$Type", 2020), b(2018, 358, tB, LEn), o.ld = function() { + return q1e(this.a, this.b); + }, o.md = function() { + return this.a.vd(this.b); + }, o.nd = function(e) { + return this.a.wd(this.b, e); + }, o.b = 0, w(Cn, "ArrayTable/ArrayMap/1", 2018), b(2019, 399, $m, UTn), o.Xb = function(e) { + return WPn(this.a, e); + }, w(Cn, "ArrayTable/ArrayMap/2", 2019), b(2017, 842, V0, xPn), o.ud = function() { + return "Column"; + }, o.vd = function(e) { + return Rp(this.b, this.a, e); + }, o.wd = function(e, t) { + return cFn(this.b, this.a, e, t); + }, o.a = 0, w(Cn, "ArrayTable/Row", 2017), b(843, 842, V0, qX), o.vd = function(e) { + return new xPn(this.a, e); + }, o.zc = function(e, t) { + return u(t, 85), hhe(); + }, o.wd = function(e, t) { + return u(t, 85), lhe(); + }, o.ud = function() { + return "Row"; + }, w(Cn, "ArrayTable/RowMap", 843), b(1157, 1, Po, NEn), o.Ad = function(e) { + return (this.a.yd() & -262 & e) != 0; + }, o.yd = function() { + return this.a.yd() & -262; + }, o.zd = function() { + return this.a.zd(); + }, o.Nb = function(e) { + this.a.Nb(new xEn(e, this.b)); + }, o.Bd = function(e) { + return this.a.Bd(new $En(e, this.b)); + }, w(Cn, "CollectSpliterators/1", 1157), b(1158, 1, re, $En), o.Cd = function(e) { + this.a.Cd(this.b.Kb(e)); + }, w(Cn, "CollectSpliterators/1/lambda$0$Type", 1158), b(1159, 1, re, xEn), o.Cd = function(e) { + this.a.Cd(this.b.Kb(e)); + }, w(Cn, "CollectSpliterators/1/lambda$1$Type", 1159), b(1154, 1, Po, cSn), o.Ad = function(e) { + return ((16464 | this.b) & e) != 0; + }, o.yd = function() { + return 16464 | this.b; + }, o.zd = function() { + return this.a.zd(); + }, o.Nb = function(e) { + this.a.Qe(new BEn(e, this.c)); + }, o.Bd = function(e) { + return this.a.Re(new FEn(e, this.c)); + }, o.b = 0, w(Cn, "CollectSpliterators/1WithCharacteristics", 1154), b(1155, 1, jy, FEn), o.Dd = function(e) { + this.a.Cd(this.b.td(e)); + }, w(Cn, "CollectSpliterators/1WithCharacteristics/lambda$0$Type", 1155), b(1156, 1, jy, BEn), o.Dd = function(e) { + this.a.Cd(this.b.td(e)); + }, w(Cn, "CollectSpliterators/1WithCharacteristics/lambda$1$Type", 1156), b(1150, 1, Po), o.Ad = function(e) { + return (this.a & e) != 0; + }, o.yd = function() { + return this.a; + }, o.zd = function() { + return this.e && (this.b = OX(this.b, this.e.zd())), OX(this.b, 0); + }, o.Nb = function(e) { + this.e && (this.e.Nb(e), this.e = null), this.c.Nb(new REn(this, e)), this.b = 0; + }, o.Bd = function(e) { + for (; ; ) { + if (this.e && this.e.Bd(e)) + return C6(this.b, Ey) && (this.b = bs(this.b, 1)), !0; + if (this.e = null, !this.c.Bd(new F8n(this))) + return !1; + } + }, o.a = 0, o.b = 0, w(Cn, "CollectSpliterators/FlatMapSpliterator", 1150), b(1152, 1, re, F8n), o.Cd = function(e) { + _ae(this.a, e); + }, w(Cn, "CollectSpliterators/FlatMapSpliterator/lambda$0$Type", 1152), b(1153, 1, re, REn), o.Cd = function(e) { + age(this.a, this.b, e); + }, w(Cn, "CollectSpliterators/FlatMapSpliterator/lambda$1$Type", 1153), b(1151, 1150, Po, MDn), w(Cn, "CollectSpliterators/FlatMapSpliteratorOfObject", 1151), b(253, 1, iB), o.Fd = function(e) { + return this.Ed(u(e, 253)); + }, o.Ed = function(e) { + var t; + return e == (bD(), HK) ? 1 : e == (dD(), _K) ? -1 : (t = (YC(), mk(this.a, e.a)), t != 0 ? t : D(this, 526) == D(e, 526) ? 0 : D(this, 526) ? 1 : -1); + }, o.Id = function() { + return this.a; + }, o.Fb = function(e) { + return vZ(this, e); + }, w(Cn, "Cut", 253), b(1823, 253, iB, Ejn), o.Ed = function(e) { + return e == this ? 0 : 1; + }, o.Gd = function(e) { + throw M(new HG()); + }, o.Hd = function(e) { + e.a += "+∞)"; + }, o.Id = function() { + throw M(new Ir(Dzn)); + }, o.Hb = function() { + return fl(), rZ(this); + }, o.Jd = function(e) { + return !1; + }, o.Ib = function() { + return "+∞"; + }; + var _K; + w(Cn, "Cut/AboveAll", 1823), b(526, 253, { 253: 1, 526: 1, 3: 1, 34: 1 }, JTn), o.Gd = function(e) { + Lc((e.a += "(", e), this.a); + }, o.Hd = function(e) { + z1(Lc(e, this.a), 93); + }, o.Hb = function() { + return ~mt(this.a); + }, o.Jd = function(e) { + return YC(), mk(this.a, e) < 0; + }, o.Ib = function() { + return "/" + this.a + "\\"; + }, w(Cn, "Cut/AboveValue", 526), b(1822, 253, iB, jjn), o.Ed = function(e) { + return e == this ? 0 : -1; + }, o.Gd = function(e) { + e.a += "(-∞"; + }, o.Hd = function(e) { + throw M(new HG()); + }, o.Id = function() { + throw M(new Ir(Dzn)); + }, o.Hb = function() { + return fl(), rZ(this); + }, o.Jd = function(e) { + return !0; + }, o.Ib = function() { + return "-∞"; + }; + var HK; + w(Cn, "Cut/BelowAll", 1822), b(1824, 253, iB, QTn), o.Gd = function(e) { + Lc((e.a += "[", e), this.a); + }, o.Hd = function(e) { + z1(Lc(e, this.a), 41); + }, o.Hb = function() { + return mt(this.a); + }, o.Jd = function(e) { + return YC(), mk(this.a, e) <= 0; + }, o.Ib = function() { + return "\\" + this.a + "/"; + }, w(Cn, "Cut/BelowValue", 1824), b(547, 1, Hh), o.Jc = function(e) { + qi(this, e); + }, o.Ib = function() { + return A5e(u(TM(this, "use Optional.orNull() instead of Optional.or(null)"), 20).Kc()); + }, w(Cn, "FluentIterable", 547), b(442, 547, Hh, A6), o.Kc = function() { + return new ie(ce(this.a.Kc(), new En())); + }, w(Cn, "FluentIterable/2", 442), b(1059, 547, Hh, cTn), o.Kc = function() { + return Nh(this); + }, w(Cn, "FluentIterable/3", 1059), b(724, 399, $m, UX), o.Xb = function(e) { + return this.a[e].Kc(); + }, w(Cn, "FluentIterable/3/1", 724), b(2070, 1, {}), o.Ib = function() { + return Jr(this.Kd().b); + }, w(Cn, "ForwardingObject", 2070), b(2071, 2070, Lzn), o.Kd = function() { + return this.Ld(); + }, o.Jc = function(e) { + qi(this, e); + }, o.Lc = function() { + return this.Oc(); + }, o.Nc = function() { + return new In(this, 0); + }, o.Oc = function() { + return new Tn(null, this.Nc()); + }, o.Fc = function(e) { + return this.Ld(), fEn(); + }, o.Gc = function(e) { + return this.Ld(), hEn(); + }, o.$b = function() { + this.Ld(), lEn(); + }, o.Hc = function(e) { + return this.Ld().Hc(e); + }, o.Ic = function(e) { + return this.Ld().Ic(e); + }, o.dc = function() { + return this.Ld().b.dc(); + }, o.Kc = function() { + return this.Ld().Kc(); + }, o.Mc = function(e) { + return this.Ld(), aEn(); + }, o.gc = function() { + return this.Ld().b.gc(); + }, o.Pc = function() { + return this.Ld().Pc(); + }, o.Qc = function(e) { + return this.Ld().Qc(e); + }, w(Cn, "ForwardingCollection", 2071), b(2078, 31, ptn), o.Kc = function() { + return this.Od(); + }, o.Fc = function(e) { + throw M(new Pe()); + }, o.Gc = function(e) { + throw M(new Pe()); + }, o.Md = function() { + var e; + return e = this.c, e || (this.c = this.Nd()); + }, o.$b = function() { + throw M(new Pe()); + }, o.Hc = function(e) { + return e != null && rw(this, e, !1); + }, o.Nd = function() { + switch (this.gc()) { + case 0: + return v0(), v0(), qK; + case 1: + return v0(), new VL(Se(this.Od().Pb())); + default: + return new EW(this, this.Pc()); + } + }, o.Mc = function(e) { + throw M(new Pe()); + }, w(Cn, "ImmutableCollection", 2078), b(727, 2078, ptn, KG), o.Kc = function() { + return Kp(this.a.Kc()); + }, o.Hc = function(e) { + return e != null && this.a.Hc(e); + }, o.Ic = function(e) { + return this.a.Ic(e); + }, o.dc = function() { + return this.a.dc(); + }, o.Od = function() { + return Kp(this.a.Kc()); + }, o.gc = function() { + return this.a.gc(); + }, o.Pc = function() { + return this.a.Pc(); + }, o.Qc = function(e) { + return this.a.Qc(e); + }, o.Ib = function() { + return Jr(this.a); + }, w(Cn, "ForwardingImmutableCollection", 727), b(307, 2078, xm), o.Kc = function() { + return this.Od(); + }, o.ed = function() { + return this.Pd(0); + }, o.fd = function(e) { + return this.Pd(e); + }, o.jd = function(e) { + od(this, e); + }, o.Nc = function() { + return new In(this, 16); + }, o.kd = function(e, t) { + return this.Qd(e, t); + }, o.bd = function(e, t) { + throw M(new Pe()); + }, o.cd = function(e, t) { + throw M(new Pe()); + }, o.Md = function() { + return this; + }, o.Fb = function(e) { + return HCe(this, e); + }, o.Hb = function() { + return xve(this); + }, o.dd = function(e) { + return e == null ? -1 : c7e(this, e); + }, o.Od = function() { + return this.Pd(0); + }, o.Pd = function(e) { + return TL(this, e); + }, o.gd = function(e) { + throw M(new Pe()); + }, o.hd = function(e, t) { + throw M(new Pe()); + }, o.Qd = function(e, t) { + var i; + return FT((i = new WEn(this), new Ql(i, e, t))); + }; + var qK; + w(Cn, "ImmutableList", 307), b(2105, 307, xm), o.Kc = function() { + return Kp(this.Rd().Kc()); + }, o.kd = function(e, t) { + return FT(this.Rd().kd(e, t)); + }, o.Hc = function(e) { + return e != null && this.Rd().Hc(e); + }, o.Ic = function(e) { + return this.Rd().Ic(e); + }, o.Fb = function(e) { + return rt(this.Rd(), e); + }, o.Xb = function(e) { + return _1(this, e); + }, o.Hb = function() { + return mt(this.Rd()); + }, o.dd = function(e) { + return this.Rd().dd(e); + }, o.dc = function() { + return this.Rd().dc(); + }, o.Od = function() { + return Kp(this.Rd().Kc()); + }, o.gc = function() { + return this.Rd().gc(); + }, o.Qd = function(e, t) { + return FT(this.Rd().kd(e, t)); + }, o.Pc = function() { + return this.Rd().Qc(K(yi, Bn, 1, this.Rd().gc(), 5, 1)); + }, o.Qc = function(e) { + return this.Rd().Qc(e); + }, o.Ib = function() { + return Jr(this.Rd()); + }, w(Cn, "ForwardingImmutableList", 2105), b(729, 1, Fm), o.vc = function() { + return Qa(this); + }, o.wc = function(e) { + f5(this, e); + }, o.ec = function() { + return eN(this); + }, o.yc = function(e, t, i) { + return hx(this, e, t, i); + }, o.Cc = function() { + return this.Vd(); + }, o.$b = function() { + throw M(new Pe()); + }, o._b = function(e) { + return this.xc(e) != null; + }, o.uc = function(e) { + return this.Vd().Hc(e); + }, o.Td = function() { + return new Oyn(this); + }, o.Ud = function() { + return new Dyn(this); + }, o.Fb = function(e) { + return S6e(this, e); + }, o.Hb = function() { + return Qa(this).Hb(); + }, o.dc = function() { + return this.gc() == 0; + }, o.zc = function(e, t) { + return fhe(); + }, o.Bc = function(e) { + throw M(new Pe()); + }, o.Ib = function() { + return wje(this); + }, o.Vd = function() { + return this.e ? this.e : this.e = this.Ud(); + }, o.c = null, o.d = null, o.e = null; + var rQn; + w(Cn, "ImmutableMap", 729), b(730, 729, Fm), o._b = function(e) { + return oEn(this, e); + }, o.uc = function(e) { + return eCn(this.b, e); + }, o.Sd = function() { + return eBn(new $8n(this)); + }, o.Td = function() { + return eBn(pIn(this.b)); + }, o.Ud = function() { + return uh(), new KG(gIn(this.b)); + }, o.Fb = function(e) { + return tCn(this.b, e); + }, o.xc = function(e) { + return $6(this, e); + }, o.Hb = function() { + return mt(this.b.c); + }, o.dc = function() { + return this.b.c.dc(); + }, o.gc = function() { + return this.b.c.gc(); + }, o.Ib = function() { + return Jr(this.b.c); + }, w(Cn, "ForwardingImmutableMap", 730), b(2072, 2071, rB), o.Kd = function() { + return this.Wd(); + }, o.Ld = function() { + return this.Wd(); + }, o.Nc = function() { + return new In(this, 1); + }, o.Fb = function(e) { + return e === this || this.Wd().Fb(e); + }, o.Hb = function() { + return this.Wd().Hb(); + }, w(Cn, "ForwardingSet", 2072), b(1085, 2072, rB, $8n), o.Kd = function() { + return A4(this.a.b); + }, o.Ld = function() { + return A4(this.a.b); + }, o.Hc = function(e) { + if (D(e, 44) && u(e, 44).ld() == null) + return !1; + try { + return nCn(A4(this.a.b), e); + } catch (t) { + if (t = It(t), D(t, 212)) + return !1; + throw M(t); + } + }, o.Wd = function() { + return A4(this.a.b); + }, o.Qc = function(e) { + var t; + return t = eOn(A4(this.a.b), e), A4(this.a.b).b.gc() < t.length && $t(t, A4(this.a.b).b.gc(), null), t; + }, w(Cn, "ForwardingImmutableMap/1", 1085), b(2079, 2078, r3), o.Kc = function() { + return this.Od(); + }, o.Nc = function() { + return new In(this, 1); + }, o.Fb = function(e) { + return dnn(this, e); + }, o.Hb = function() { + return vxn(this); + }, w(Cn, "ImmutableSet", 2079), b(719, 2079, r3), o.Kc = function() { + return Kp(new W3(this.a.b.Kc())); + }, o.Hc = function(e) { + return e != null && t7(this.a, e); + }, o.Ic = function(e) { + return YEn(this.a, e); + }, o.Hb = function() { + return mt(this.a.b); + }, o.dc = function() { + return this.a.b.dc(); + }, o.Od = function() { + return Kp(new W3(this.a.b.Kc())); + }, o.gc = function() { + return this.a.b.gc(); + }, o.Pc = function() { + return this.a.b.Pc(); + }, o.Qc = function(e) { + return ZEn(this.a, e); + }, o.Ib = function() { + return Jr(this.a.b); + }, w(Cn, "ForwardingImmutableSet", 719), b(2073, 2072, Nzn), o.Kd = function() { + return this.b; + }, o.Ld = function() { + return this.b; + }, o.Wd = function() { + return this.b; + }, o.Nc = function() { + return new cC(this); + }, w(Cn, "ForwardingSortedSet", 2073), b(543, 2077, Fm, oA), o.Ac = function(e) { + s5(this, e); + }, o.Cc = function() { + var e; + return e = this.d, new vL(e || (this.d = new VO(this))); + }, o.$b = function() { + nk(this); + }, o._b = function(e) { + return !!u5(this, e, Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15)))); + }, o.uc = function(e) { + return j$n(this, e); + }, o.kc = function() { + return new GTn(this, this); + }, o.wc = function(e) { + wOn(this, e); + }, o.xc = function(e) { + return Lg(this, e); + }, o.ec = function() { + return new kL(this); + }, o.zc = function(e, t) { + return FA(this, e, t); + }, o.Bc = function(e) { + var t; + return t = u5(this, e, Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15)))), t ? (zg(this, t), t.e = null, t.c = null, t.i) : null; + }, o.gc = function() { + return this.i; + }, o.xd = function() { + var e; + return e = this.d, new vL(e || (this.d = new VO(this))); + }, o.f = 0, o.g = 0, o.i = 0, w(Cn, "HashBiMap", 543), b(544, 1, Ii), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return SDn(this); + }, o.Pb = function() { + var e; + if (!SDn(this)) + throw M(new nc()); + return e = u(as(this.c), 303), this.c = e.c, this.f = e, --this.d, this.Xd(e); + }, o.Qb = function() { + if (this.e.g != this.b) + throw M(new Bo()); + if (!this.f) + throw M(new Ir(btn)); + zg(this.e, this.f), this.b = this.e.g, this.f = null; + }, o.b = 0, o.d = 0, o.f = null, w(Cn, "HashBiMap/Itr", 544), b(1023, 544, Ii, GTn), o.Xd = function(e) { + return new KEn(this, e); + }, w(Cn, "HashBiMap/1", 1023), b(Gs, 358, tB, KEn), o.ld = function() { + return this.a.g; + }, o.md = function() { + return this.a.i; + }, o.nd = function(e) { + var t, i, r; + return i = this.a.i, r = Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15))), r == this.a.f && (x(e) === x(i) || e != null && rt(e, i)) ? e : (tFn(!o5(this.b.a, e, r), e), zg(this.b.a, this.a), t = new kM(this.a.g, this.a.a, e, r), ny(this.b.a, t, this.a), this.a.e = null, this.a.c = null, this.b.b = this.b.a.g, this.b.f == this.a && (this.b.f = t), this.a = t, i); + }, w(Cn, "HashBiMap/1/MapEntry", Gs), b(246, 358, { 358: 1, 246: 1, 3: 1, 44: 1 }, r0), o.ld = function() { + return this.g; + }, o.md = function() { + return this.i; + }, o.nd = function(e) { + throw M(new Pe()); + }, w(Cn, "ImmutableEntry", 246), b(303, 246, { 358: 1, 303: 1, 246: 1, 3: 1, 44: 1 }, kM), o.a = 0, o.f = 0; + var UK = w(Cn, "HashBiMap/BiEntry", 303); + b(619, 2077, Fm, VO), o.Ac = function(e) { + s5(this, e); + }, o.Cc = function() { + return new kL(this.a); + }, o.$b = function() { + nk(this.a); + }, o._b = function(e) { + return j$n(this.a, e); + }, o.kc = function() { + return new zTn(this, this.a); + }, o.wc = function(e) { + Se(e), wOn(this.a, new B8n(e)); + }, o.xc = function(e) { + return pT(this, e); + }, o.ec = function() { + return new vL(this); + }, o.zc = function(e, t) { + return YSe(this.a, e, t, !1); + }, o.Bc = function(e) { + var t; + return t = o5(this.a, e, Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15)))), t ? (zg(this.a, t), t.e = null, t.c = null, t.g) : null; + }, o.gc = function() { + return this.a.i; + }, o.xd = function() { + return new kL(this.a); + }, w(Cn, "HashBiMap/Inverse", 619), b(1020, 544, Ii, zTn), o.Xd = function(e) { + return new _En(this, e); + }, w(Cn, "HashBiMap/Inverse/1", 1020), b(1021, 358, tB, _En), o.ld = function() { + return this.a.i; + }, o.md = function() { + return this.a.g; + }, o.nd = function(e) { + var t, i, r; + return r = this.a.g, t = Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15))), t == this.a.a && (x(e) === x(r) || e != null && rt(e, r)) ? e : (tFn(!u5(this.b.a.a, e, t), e), zg(this.b.a.a, this.a), i = new kM(e, t, this.a.i, this.a.f), this.a = i, ny(this.b.a.a, i, null), this.b.b = this.b.a.a.g, r); + }, w(Cn, "HashBiMap/Inverse/1/InverseEntry", 1021), b(620, 542, Du, vL), o.Kc = function() { + return new Tjn(this.a.a); + }, o.Mc = function(e) { + var t; + return t = o5(this.a.a, e, Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15)))), t ? (zg(this.a.a, t), !0) : !1; + }, w(Cn, "HashBiMap/Inverse/InverseKeySet", 620), b(1019, 544, Ii, Tjn), o.Xd = function(e) { + return e.i; + }, w(Cn, "HashBiMap/Inverse/InverseKeySet/1", 1019), b(1022, 1, {}, B8n), o.Yd = function(e, t) { + _fe(this.a, e, t); + }, w(Cn, "HashBiMap/Inverse/lambda$0$Type", 1022), b(618, 542, Du, kL), o.Kc = function() { + return new Ajn(this.a); + }, o.Mc = function(e) { + var t; + return t = u5(this.a, e, Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15)))), t ? (zg(this.a, t), t.e = null, t.c = null, !0) : !1; + }, w(Cn, "HashBiMap/KeySet", 618), b(1018, 544, Ii, Ajn), o.Xd = function(e) { + return e.g; + }, w(Cn, "HashBiMap/KeySet/1", 1018), b(1123, 627, vd), w(Cn, "HashMultimapGwtSerializationDependencies", 1123), b(271, 1123, vd, M0), o.hc = function() { + return new zE(Yb(this.a)); + }, o.pd = function() { + return new zE(Yb(this.a)); + }, o.a = 2, w(Cn, "HashMultimap", 271), b(2097, 307, xm), o.Hc = function(e) { + return this.Zd().Hc(e); + }, o.dc = function() { + return this.Zd().dc(); + }, o.gc = function() { + return this.Zd().gc(); + }, w(Cn, "ImmutableAsList", 2097), b(2030, 730, Fm), o.Vd = function() { + return uh(), new lp(this.a); + }, o.Cc = function() { + return uh(), new lp(this.a); + }, o.xd = function() { + return uh(), new lp(this.a); + }, w(Cn, "ImmutableBiMap", 2030), b(2075, 1, {}), w(Cn, "ImmutableCollection/Builder", 2075), b(1035, 719, r3, Sjn), w(Cn, "ImmutableEnumSet", 1035), b(980, 399, $m, iSn), o.Xb = function(e) { + return this.a.Xb(e); + }, w(Cn, "ImmutableList/1", 980), b(979, 2075, {}, zAn), w(Cn, "ImmutableList/Builder", 979), b(623, 204, Nm, WO), o.Ob = function() { + return this.a.Ob(); + }, o.Pb = function() { + return u(this.a.Pb(), 44).ld(); + }, w(Cn, "ImmutableMap/1", 623), b(1054, 1, {}, Si), o.Kb = function(e) { + return u(e, 44).ld(); + }, w(Cn, "ImmutableMap/2methodref$getKey$Type", 1054), b(1053, 1, {}, XAn), w(Cn, "ImmutableMap/Builder", 1053), b(2098, 2079, r3), o.Md = function() { + var e; + return e = this.b, e || (this.b = new cD(this)); + }, o.Nd = function() { + return new EW(this, A5(this, K(yi, Bn, 1, this.gc(), 5, 1))); + }, w(Cn, "ImmutableSet/CachingAsList", 2098), b(2099, 2098, r3), o.Kc = function() { + var e; + return e = Qa(this.a).Od(), new WO(e); + }, o.Nd = function() { + return new cD(this); + }, o.Jc = function(e) { + var t, i; + for (Se(e), i = this.gc(), t = 0; t < i; t++) + e.Cd(u(Qa(this.a).Md().Xb(t), 44).ld()); + }, o.Od = function() { + var e; + return e = this.b, TL(e || (this.b = new cD(this)), 0); + }, o.Nc = function() { + return XL(this.gc(), 1296, new K8n(this)); + }, w(Cn, "IndexedImmutableSet", 2099), b(1230, 2099, r3, Oyn), o.Kc = function() { + var e; + return e = Qa(this.a).Od(), new WO(e); + }, o.Hc = function(e) { + return this.a._b(e); + }, o.Jc = function(e) { + Se(e), f5(this.a, new R8n(e)); + }, o.Od = function() { + var e; + return e = Qa(this.a).Od(), new WO(e); + }, o.gc = function() { + return this.a.gc(); + }, o.Nc = function() { + return N7(Qa(this.a).Nc(), new Si()); + }, w(Cn, "ImmutableMapKeySet", 1230), b(1231, 1, {}, R8n), o.Yd = function(e, t) { + uh(), this.a.Cd(e); + }, w(Cn, "ImmutableMapKeySet/lambda$0$Type", 1231), b(1227, 2078, ptn, Dyn), o.Kc = function() { + return new GL(this); + }, o.Md = function() { + var e; + return e = Qa(this.a).Md(), new pTn(this, e); + }, o.Hc = function(e) { + return e != null && Cke(new GL(this), e); + }, o.Od = function() { + return new GL(this); + }, o.gc = function() { + return this.a.gc(); + }, o.Nc = function() { + return N7(Qa(this.a).Nc(), new wr()); + }, w(Cn, "ImmutableMapValues", 1227), b(1228, 1, {}, wr), o.Kb = function(e) { + return u(e, 44).md(); + }, w(Cn, "ImmutableMapValues/0methodref$getValue$Type", 1228), b(637, 204, Nm, GL), o.Ob = function() { + return this.a.Ob(); + }, o.Pb = function() { + return u(this.a.Pb(), 44).md(); + }, w(Cn, "ImmutableMapValues/1", 637), b(1229, 2097, xm, pTn), o.Zd = function() { + return this.a; + }, o.Xb = function(e) { + return u(this.b.Xb(e), 44).md(); + }, w(Cn, "ImmutableMapValues/2", 1229), b(1232, 1, {}, K8n), o.td = function(e) { + return QPn(this.a, e); + }, w(Cn, "IndexedImmutableSet/0methodref$get$Type", 1232), b(638, 2097, xm, cD), o.Zd = function() { + return this.a; + }, o.Xb = function(e) { + return QPn(this.a, e); + }, o.gc = function() { + return this.a.a.gc(); + }, w(Cn, "IndexedImmutableSet/1", 638), b(43, 1, {}, En), o.Kb = function(e) { + return u(e, 20).Kc(); + }, o.Fb = function(e) { + return this === e; + }, w(Cn, "Iterables/10", 43), b(1055, 547, Hh, RSn), o.Jc = function(e) { + Se(e), this.b.Jc(new HEn(this.a, e)); + }, o.Kc = function() { + return TX(this); + }, w(Cn, "Iterables/4", 1055), b(1056, 1, re, HEn), o.Cd = function(e) { + sle(this.b, this.a, e); + }, w(Cn, "Iterables/4/lambda$0$Type", 1056), b(1057, 547, Hh, KSn), o.Jc = function(e) { + Se(e), qi(this.a, new UEn(e, this.b)); + }, o.Kc = function() { + return ce(new ne(this.a), this.b); + }, w(Cn, "Iterables/5", 1057), b(1058, 1, re, UEn), o.Cd = function(e) { + this.a.Cd(uTn(e)); + }, w(Cn, "Iterables/5/lambda$0$Type", 1058), b(1087, 204, Nm, _8n), o.Ob = function() { + return this.a.Ob(); + }, o.Pb = function() { + return this.a.Pb(); + }, w(Cn, "Iterators/1", 1087), b(1088, 713, Nm, qEn), o.Yb = function() { + for (var e; this.b.Ob(); ) + if (e = this.b.Pb(), this.a.Lb(e)) + return e; + return this.e = 2, null; + }, w(Cn, "Iterators/5", 1088), b(497, 1, Ii), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return this.b.Ob(); + }, o.Pb = function() { + return this.$d(this.b.Pb()); + }, o.Qb = function() { + this.b.Qb(); + }, w(Cn, "TransformedIterator", 497), b(1089, 497, Ii, XTn), o.$d = function(e) { + return this.a.Kb(e); + }, w(Cn, "Iterators/6", 1089), b(732, 204, Nm, lG), o.Ob = function() { + return !this.a; + }, o.Pb = function() { + if (this.a) + throw M(new nc()); + return this.a = !0, this.b; + }, o.a = !1, w(Cn, "Iterators/9", 732), b(1086, 399, $m, lPn), o.Xb = function(e) { + return this.a[this.b + e]; + }, o.b = 0; + var cQn; + w(Cn, "Iterators/ArrayItr", 1086), b(38, 1, { 38: 1, 51: 1 }, ie), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return pe(this); + }, o.Pb = function() { + return fe(this); + }, o.Qb = function() { + if (!this.c) + throw M(new Ir(btn)); + this.c.Qb(), this.c = null; + }, w(Cn, "Iterators/ConcatenatedIterator", 38), b(22, 1, { 3: 1, 34: 1, 22: 1 }), o.Fd = function(e) { + return Fjn(this, u(e, 22)); + }, o.Fb = function(e) { + return this === e; + }, o.Hb = function() { + return a0(this); + }, o.Ib = function() { + return SL(this); + }, o.g = 0; + var ke = w(ac, "Enum", 22); + b(549, 22, { 549: 1, 3: 1, 34: 1, 22: 1, 51: 1 }, STn), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return !1; + }, o.Pb = function() { + throw M(new nc()); + }, o.Qb = function() { + m4(!1); + }; + var GK, uQn = we(Cn, "Iterators/EmptyModifiableIterator", 549, ke, kwe, H1e), oQn; + b(1907, 627, vd), w(Cn, "LinkedHashMultimapGwtSerializationDependencies", 1907), b(1908, 1907, vd, zFn), o.hc = function() { + return new CL(Yb(this.b)); + }, o.$b = function() { + gT(this), V9(this.a, this.a); + }, o.pd = function() { + return new CL(Yb(this.b)); + }, o.ic = function(e) { + return new SFn(this, e, this.b); + }, o.kc = function() { + return new NW(this); + }, o.lc = function() { + var e; + return new In((e = this.g, u(e || (this.g = new oz(this)), 21)), 17); + }, o.ec = function() { + var e; + return e = this.i, e || (this.i = new Mg(this, this.c)); + }, o.nc = function() { + return new fz(new NW(this)); + }, o.oc = function() { + var e; + return N7(new In((e = this.g, u(e || (this.g = new oz(this)), 21)), 17), new jc()); + }, o.b = 2, w(Cn, "LinkedHashMultimap", 1908), b(1911, 1, {}, jc), o.Kb = function(e) { + return u(e, 44).md(); + }, w(Cn, "LinkedHashMultimap/0methodref$getValue$Type", 1911), b(834, 1, Ii, NW), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return Lve(this); + }, o.Ob = function() { + return this.a != this.b.a; + }, o.Qb = function() { + m4(!!this.c), sDn(this.b, this.c.g, this.c.i), this.c = null; + }, w(Cn, "LinkedHashMultimap/1", 834), b(227, 246, { 358: 1, 246: 1, 227: 1, 604: 1, 3: 1, 44: 1 }, HW), o._d = function() { + return u(as(this.f), 604); + }, o.ae = function(e) { + this.c = e; + }, o.be = function(e) { + this.f = e; + }, o.d = 0; + var sQn = w(Cn, "LinkedHashMultimap/ValueEntry", 227); + b(1909, 2068, { 604: 1, 20: 1, 31: 1, 16: 1, 21: 1 }, SFn), o.Fc = function(e) { + var t, i, r, c, s; + for (s = Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15))), t = s & this.b.length - 1, c = this.b[t], i = c; i; i = i.a) + if (i.d == s && oh(i.i, e)) + return !1; + return r = new HW(this.c, e, s, c), Kjn(this.d, r), r.f = this, this.d = r, V9(u(as(this.g.a.b), 227), r), V9(r, this.g.a), this.b[t] = r, ++this.f, ++this.e, jke(this), !0; + }, o.$b = function() { + var e, t; + for (u7(this.b, null), this.f = 0, e = this.a; e != this; e = e._d()) + t = u(e, 227), V9(u(as(t.b), 227), u(as(t.e), 227)); + this.a = this, this.d = this, ++this.e; + }, o.Hc = function(e) { + var t, i; + for (i = Ae(nr(qh, $h(Ae(nr(e == null ? 0 : mt(e), Uh)), 15))), t = this.b[i & this.b.length - 1]; t; t = t.a) + if (t.d == i && oh(t.i, e)) + return !0; + return !1; + }, o.Jc = function(e) { + var t; + for (Se(e), t = this.a; t != this; t = t._d()) + e.Cd(u(t, 227).i); + }, o._d = function() { + return this.a; + }, o.Kc = function() { + return new iIn(this); + }, o.Mc = function(e) { + return fqn(this, e); + }, o.ae = function(e) { + this.d = e; + }, o.be = function(e) { + this.a = e; + }, o.gc = function() { + return this.f; + }, o.e = 0, o.f = 0, w(Cn, "LinkedHashMultimap/ValueSet", 1909), b(1910, 1, Ii, iIn), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return rW(this), this.b != this.c; + }, o.Pb = function() { + var e, t; + if (rW(this), this.b == this.c) + throw M(new nc()); + return e = u(this.b, 227), t = e.i, this.d = e, this.b = u(as(e.f), 604), t; + }, o.Qb = function() { + rW(this), m4(!!this.d), fqn(this.c, this.d.i), this.a = this.c.e, this.d = null; + }, o.a = 0, w(Cn, "LinkedHashMultimap/ValueSet/1", 1910), b(780, 2084, vd, GMn), o.Zb = function() { + var e; + return e = this.f, e || (this.f = new _z(this)); + }, o.Fb = function(e) { + return G$(this, e); + }, o.cc = function(e) { + return new AD(this, e); + }, o.fc = function(e) { + return zJ(this, e); + }, o.$b = function() { + RPn(this); + }, o._b = function(e) { + return QEn(this, e); + }, o.ac = function() { + return new _z(this); + }, o.bc = function() { + return new q8n(this); + }, o.qc = function(e) { + return new AD(this, e); + }, o.dc = function() { + return !this.a; + }, o.rc = function(e) { + return zJ(this, e); + }, o.gc = function() { + return this.d; + }, o.c = 0, o.d = 0, w(Cn, "LinkedListMultimap", 780), b(56, 31, Bm), o.jd = function(e) { + od(this, e); + }, o.Nc = function() { + return new In(this, 16); + }, o.bd = function(e, t) { + throw M(new _l("Add not supported on this list")); + }, o.Fc = function(e) { + return this.bd(this.gc(), e), !0; + }, o.cd = function(e, t) { + var i, r, c; + for (Jn(t), i = !1, c = t.Kc(); c.Ob(); ) + r = c.Pb(), this.bd(e++, r), i = !0; + return i; + }, o.$b = function() { + this.ce(0, this.gc()); + }, o.Fb = function(e) { + return Wnn(this, e); + }, o.Hb = function() { + return rY(this); + }, o.dd = function(e) { + return J$n(this, e); + }, o.Kc = function() { + return new zv(this); + }, o.ed = function() { + return this.fd(0); + }, o.fd = function(e) { + return new Fi(this, e); + }, o.gd = function(e) { + throw M(new _l("Remove not supported on this list")); + }, o.ce = function(e, t) { + var i, r; + for (r = this.fd(e), i = e; i < t; ++i) + r.Pb(), r.Qb(); + }, o.hd = function(e, t) { + throw M(new _l("Set not supported on this list")); + }, o.kd = function(e, t) { + return new Ql(this, e, t); + }, o.j = 0, w(le, "AbstractList", 56), b(2062, 56, Bm), o.bd = function(e, t) { + w4(this, e, t); + }, o.cd = function(e, t) { + return PFn(this, e, t); + }, o.Xb = function(e) { + return Zo(this, e); + }, o.Kc = function() { + return this.fd(0); + }, o.gd = function(e) { + return Ux(this, e); + }, o.hd = function(e, t) { + var i, r; + i = this.fd(e); + try { + return r = i.Pb(), i.Wb(t), r; + } catch (c) { + throw c = It(c), D(c, 112) ? M(new Pr("Can't set element " + e)) : M(c); + } + }, w(le, "AbstractSequentialList", 2062), b(646, 2062, Bm, AD), o.fd = function(e) { + return WTn(this, e); + }, o.gc = function() { + var e; + return e = u(ee(this.a.b, this.b), 260), e ? e.a : 0; + }, w(Cn, "LinkedListMultimap/1", 646), b(1316, 2068, Du, q8n), o.Hc = function(e) { + return QEn(this.a, e); + }, o.Kc = function() { + return new bxn(this.a); + }, o.Mc = function(e) { + return !zJ(this.a, e).a.dc(); + }, o.gc = function() { + return c6(this.a.b); + }, w(Cn, "LinkedListMultimap/1KeySetImpl", 1316), b(1315, 1, Ii, bxn), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return cW(this), !!this.c; + }, o.Pb = function() { + if (cW(this), !this.c) + throw M(new nc()); + this.a = this.c, hi(this.d, this.a.a); + do + this.c = this.c.b; + while (this.c && !hi(this.d, this.c.a)); + return this.a.a; + }, o.Qb = function() { + cW(this), m4(!!this.a), iM(new f$(this.e, this.a.a)), this.a = null, this.b = this.e.c; + }, o.b = 0, w(Cn, "LinkedListMultimap/DistinctKeyIterator", 1315), b(260, 1, { 260: 1 }, YW), o.a = 0, w(Cn, "LinkedListMultimap/KeyList", 260), b(511, 358, { 358: 1, 511: 1, 44: 1 }, GEn), o.ld = function() { + return this.a; + }, o.md = function() { + return this.f; + }, o.nd = function(e) { + var t; + return t = this.f, this.f = e, t; + }, w(Cn, "LinkedListMultimap/Node", 511), b(566, 1, _h, f$, k_n), o.Nb = function(e) { + _i(this, e); + }, o.Rb = function(e) { + this.e = Pen(this.f, this.b, e, this.c), ++this.d, this.a = null; + }, o.Ob = function() { + return !!this.c; + }, o.Sb = function() { + return !!this.e; + }, o.Pb = function() { + return sQ(this); + }, o.Tb = function() { + return this.d; + }, o.Ub = function() { + return t$n(this); + }, o.Vb = function() { + return this.d - 1; + }, o.Qb = function() { + m4(!!this.a), this.a != this.c ? (this.e = this.a.e, --this.d) : this.c = this.a.c, RMe(this.f, this.a), this.a = null; + }, o.Wb = function(e) { + _X(!!this.a), this.a.f = e; + }, o.d = 0, w(Cn, "LinkedListMultimap/ValueForKeyIterator", 566), b(1031, 56, Bm), o.bd = function(e, t) { + this.a.bd(e, t); + }, o.cd = function(e, t) { + return this.a.cd(e, t); + }, o.Hc = function(e) { + return this.a.Hc(e); + }, o.Xb = function(e) { + return this.a.Xb(e); + }, o.gd = function(e) { + return this.a.gd(e); + }, o.hd = function(e, t) { + return this.a.hd(e, t); + }, o.gc = function() { + return this.a.gc(); + }, w(Cn, "Lists/AbstractListWrapper", 1031), b(1032, 1031, xzn), w(Cn, "Lists/RandomAccessListWrapper", 1032), b(1034, 1032, xzn, WEn), o.fd = function(e) { + return this.a.fd(e); + }, w(Cn, "Lists/1", 1034), b(441, 56, { 441: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1 }, Oz), o.bd = function(e, t) { + this.a.bd(E4(this, e), t); + }, o.$b = function() { + this.a.$b(); + }, o.Xb = function(e) { + return this.a.Xb(LW(this, e)); + }, o.Kc = function() { + return _On(this, 0); + }, o.fd = function(e) { + return _On(this, e); + }, o.gd = function(e) { + return this.a.gd(LW(this, e)); + }, o.ce = function(e, t) { + (pDn(e, t, this.a.gc()), Qo(this.a.kd(E4(this, t), E4(this, e)))).$b(); + }, o.hd = function(e, t) { + return this.a.hd(LW(this, e), t); + }, o.gc = function() { + return this.a.gc(); + }, o.kd = function(e, t) { + return pDn(e, t, this.a.gc()), Qo(this.a.kd(E4(this, t), E4(this, e))); + }, w(Cn, "Lists/ReverseList", 441), b(1030, 441, { 441: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 59: 1 }, Pjn), w(Cn, "Lists/RandomAccessReverseList", 1030), b(1033, 1, _h, zEn), o.Nb = function(e) { + _i(this, e); + }, o.Rb = function(e) { + this.c.Rb(e), this.c.Ub(), this.a = !1; + }, o.Ob = function() { + return this.c.Sb(); + }, o.Sb = function() { + return this.c.Ob(); + }, o.Pb = function() { + if (!this.c.Sb()) + throw M(new nc()); + return this.a = !0, this.c.Ub(); + }, o.Tb = function() { + return E4(this.b, this.c.Tb()); + }, o.Ub = function() { + if (!this.c.Ob()) + throw M(new nc()); + return this.a = !0, this.c.Pb(); + }, o.Vb = function() { + return E4(this.b, this.c.Tb()) - 1; + }, o.Qb = function() { + m4(this.a), this.c.Qb(), this.a = !1; + }, o.Wb = function(e) { + _X(this.a), this.c.Wb(e); + }, o.a = !1, w(Cn, "Lists/ReverseList/1", 1033), b(440, 497, Ii, n6), o.$d = function(e) { + return rC(e); + }, w(Cn, "Maps/1", 440), b(712, 497, Ii, fz), o.$d = function(e) { + return u(e, 44).md(); + }, w(Cn, "Maps/2", 712), b(975, 497, Ii, VTn), o.$d = function(e) { + return new r0(e, ZMn(this.a, e)); + }, w(Cn, "Maps/3", 975), b(972, 2069, Du, G8n), o.Jc = function(e) { + zfe(this.a, e); + }, o.Kc = function() { + return this.a.kc(); + }, o.Rc = function() { + return this.a; + }, o.Nc = function() { + return this.a.lc(); + }, w(Cn, "Maps/IteratorBasedAbstractMap/1", 972), b(973, 1, {}, z8n), o.Yd = function(e, t) { + this.a.Cd(e); + }, w(Cn, "Maps/KeySet/lambda$0$Type", 973), b(971, 31, mw, JEn), o.$b = function() { + this.a.$b(); + }, o.Hc = function(e) { + return this.a.uc(e); + }, o.Jc = function(e) { + Se(e), this.a.wc(new U8n(e)); + }, o.dc = function() { + return this.a.dc(); + }, o.Kc = function() { + return new fz(this.a.vc().Kc()); + }, o.Mc = function(e) { + var t, i; + try { + return rw(this, e, !0); + } catch (r) { + if (r = It(r), D(r, 48)) { + for (i = this.a.vc().Kc(); i.Ob(); ) + if (t = u(i.Pb(), 44), oh(e, t.md())) + return this.a.Bc(t.ld()), !0; + return !1; + } else + throw M(r); + } + }, o.gc = function() { + return this.a.gc(); + }, w(Cn, "Maps/Values", 971), b(974, 1, {}, U8n), o.Yd = function(e, t) { + this.a.Cd(t); + }, w(Cn, "Maps/Values/lambda$0$Type", 974), b(752, 2085, V0, _z), o.xc = function(e) { + return this.a._b(e) ? this.a.cc(e) : null; + }, o.Bc = function(e) { + return this.a._b(e) ? this.a.fc(e) : null; + }, o.$b = function() { + this.a.$b(); + }, o._b = function(e) { + return this.a._b(e); + }, o.Ec = function() { + return new X8n(this); + }, o.Dc = function() { + return this.Ec(); + }, o.dc = function() { + return this.a.dc(); + }, o.ec = function() { + return this.a.ec(); + }, o.gc = function() { + return this.a.ec().gc(); + }, w(Cn, "Multimaps/AsMap", 752), b(1134, 2069, Du, X8n), o.Kc = function() { + return l1e(this.a.a.ec(), new V8n(this)); + }, o.Rc = function() { + return this.a; + }, o.Mc = function(e) { + var t; + return LBn(this, e) ? (t = u(as(u(e, 44)), 44), ehe(this.a, t.ld()), !0) : !1; + }, w(Cn, "Multimaps/AsMap/EntrySet", 1134), b(1138, 1, {}, V8n), o.Kb = function(e) { + return ZMn(this, e); + }, o.Fb = function(e) { + return this === e; + }, w(Cn, "Multimaps/AsMap/EntrySet/1", 1138), b(552, 2087, { 552: 1, 849: 1, 20: 1, 31: 1, 16: 1 }, W8n), o.$b = function() { + gT(this.a); + }, o.Hc = function(e) { + return uEn(this.a, e); + }, o.Jc = function(e) { + Se(e), qi(G6(this.a), new Q8n(e)); + }, o.Kc = function() { + return new n6(G6(this.a).a.kc()); + }, o.gc = function() { + return this.a.d; + }, o.Nc = function() { + return N7(G6(this.a).Nc(), new Fu()); + }, w(Cn, "Multimaps/Keys", 552), b(1136, 1, {}, Fu), o.Kb = function(e) { + return u(e, 44).ld(); + }, w(Cn, "Multimaps/Keys/0methodref$getKey$Type", 1136), b(1135, 497, Ii, Ijn), o.$d = function(e) { + return new J8n(u(e, 44)); + }, w(Cn, "Multimaps/Keys/1", 1135), b(2088, 1, { 425: 1 }), o.Fb = function(e) { + var t; + return D(e, 504) ? (t = u(e, 425), u(this.a.md(), 16).gc() == u(t.a.md(), 16).gc() && oh(this.a.ld(), t.a.ld())) : !1; + }, o.Hb = function() { + var e; + return e = this.a.ld(), (e == null ? 0 : mt(e)) ^ u(this.a.md(), 16).gc(); + }, o.Ib = function() { + var e, t; + return t = O6(this.a.ld()), e = u(this.a.md(), 16).gc(), e == 1 ? t : t + " x " + e; + }, w(Cn, "Multisets/AbstractEntry", 2088), b(504, 2088, { 504: 1, 425: 1 }, J8n), w(Cn, "Multimaps/Keys/1/1", 504), b(1137, 1, re, Q8n), o.Cd = function(e) { + this.a.Cd(u(e, 44).ld()); + }, w(Cn, "Multimaps/Keys/lambda$1$Type", 1137), b(1140, 1, re, so), o.Cd = function(e) { + Nbe(u(e, 425)); + }, w(Cn, "Multiset/lambda$0$Type", 1140), b(753, 1, re, Y8n), o.Cd = function(e) { + vme(this.a, u(e, 425)); + }, w(Cn, "Multiset/lambda$1$Type", 753), b(1141, 1, {}, ar), w(Cn, "Multisets/0methodref$add$Type", 1141), b(754, 1, {}, cl), o.Kb = function(e) { + return Hpe(u(e, 425)); + }, w(Cn, "Multisets/lambda$1$Type", 754), b(2106, 1, ky), w(Cn, "RangeGwtSerializationDependencies", 2106), b(521, 2106, { 178: 1, 521: 1, 3: 1, 46: 1 }, hZ), o.Lb = function(e) { + return MPn(this, u(e, 34)); + }, o.Mb = function(e) { + return MPn(this, u(e, 34)); + }, o.Fb = function(e) { + var t; + return D(e, 521) ? (t = u(e, 521), vZ(this.a, t.a) && vZ(this.b, t.b)) : !1; + }, o.Hb = function() { + return this.a.Hb() * 31 + this.b.Hb(); + }, o.Ib = function() { + return qDn(this.a, this.b); + }, w(Cn, "Range", 521), b(654, 2097, xm, EW), o.fd = function(e) { + return TL(this.b, e); + }, o.Zd = function() { + return this.a; + }, o.Xb = function(e) { + return _1(this.b, e); + }, o.Pd = function(e) { + return TL(this.b, e); + }, w(Cn, "RegularImmutableAsList", 654), b(656, 2105, xm, PN), o.Rd = function() { + return this.a; + }, w(Cn, "RegularImmutableList", 656), b(548, 730, Fm, hz, lz), w(Cn, "RegularImmutableMap", 548), b(731, 719, r3, Bz); + var uun; + w(Cn, "RegularImmutableSet", 731), b(2074, Rf, Du), o.Kc = function() { + return new GW(this.a, this.b); + }, o.Fc = function(e) { + throw M(new Pe()); + }, o.Gc = function(e) { + throw M(new Pe()); + }, o.$b = function() { + throw M(new Pe()); + }, o.Mc = function(e) { + throw M(new Pe()); + }, w(Cn, "Sets/SetView", 2074), b(976, 2074, Du, VEn), o.Kc = function() { + return new GW(this.a, this.b); + }, o.Hc = function(e) { + return JL(this.a, e) && this.b.Hc(e); + }, o.Ic = function(e) { + return Ek(this.a, e) && this.b.Ic(e); + }, o.dc = function() { + return pRn(this.b, this.a); + }, o.Lc = function() { + return ut(new Tn(null, new In(this.a, 1)), new n9n(this.b)); + }, o.gc = function() { + return kk(this); + }, o.Oc = function() { + return ut(new Tn(null, new In(this.a, 1)), new Z8n(this.b)); + }, w(Cn, "Sets/2", 976), b(977, 1, De, Z8n), o.Mb = function(e) { + return this.a.Hc(e); + }, w(Cn, "Sets/2/0methodref$contains$Type", 977), b(714, 713, Nm, GW), o.Yb = function() { + for (var e; IX(this.a); ) + if (e = n5(this.a), this.c.Hc(e)) + return e; + return this.e = 2, null; + }, w(Cn, "Sets/2/1", 714), b(978, 1, De, n9n), o.Mb = function(e) { + return this.a.Hc(e); + }, w(Cn, "Sets/2/1methodref$contains$Type", 978), b(616, 2073, { 616: 1, 3: 1, 20: 1, 16: 1, 277: 1, 21: 1, 87: 1 }, oOn), o.Kd = function() { + return this.b; + }, o.Ld = function() { + return this.b; + }, o.Wd = function() { + return this.b; + }, o.Jc = function(e) { + this.a.Jc(e); + }, o.Lc = function() { + return this.a.Lc(); + }, o.Oc = function() { + return this.a.Oc(); + }, w(Cn, "Sets/UnmodifiableNavigableSet", 616), b(2031, 2030, Fm, lIn), o.Vd = function() { + return uh(), new lp(this.a); + }, o.Cc = function() { + return uh(), new lp(this.a); + }, o.xd = function() { + return uh(), new lp(this.a); + }, w(Cn, "SingletonImmutableBiMap", 2031), b(657, 2105, xm, VL), o.Rd = function() { + return this.a; + }, w(Cn, "SingletonImmutableList", 657), b(363, 2079, r3, lp), o.Kc = function() { + return new lG(this.a); + }, o.Hc = function(e) { + return rt(this.a, e); + }, o.Od = function() { + return new lG(this.a); + }, o.gc = function() { + return 1; + }, w(Cn, "SingletonImmutableSet", 363), b(1148, 1, {}, N1), o.Kb = function(e) { + return u(e, 159); + }, w(Cn, "Streams/lambda$0$Type", 1148), b(1149, 1, JA, e9n), o.de = function() { + Q3e(this.a); + }, w(Cn, "Streams/lambda$1$Type", 1149), b(1725, 1724, vd, GIn), o.Zb = function() { + var e; + return e = this.f, u(u(e || (this.f = D(this.c, 139) ? new N6(this, u(this.c, 139)) : D(this.c, 133) ? new A7(this, u(this.c, 133)) : new f4(this, this.c)), 133), 139); + }, o.hc = function() { + return new Gl(this.b); + }, o.pd = function() { + return new Gl(this.b); + }, o.ec = function() { + var e; + return e = this.i, u(u(e || (this.i = D(this.c, 139) ? new s4(this, u(this.c, 139)) : D(this.c, 133) ? new e7(this, u(this.c, 133)) : new Mg(this, this.c)), 87), 277); + }, o.ac = function() { + return D(this.c, 139) ? new N6(this, u(this.c, 139)) : D(this.c, 133) ? new A7(this, u(this.c, 133)) : new f4(this, this.c); + }, o.ic = function(e) { + return e == null && this.a.Ne(e, e), new Gl(this.b); + }, w(Cn, "TreeMultimap", 1725), b(82, 1, { 3: 1, 82: 1 }), o.ee = function(e) { + return new Error(e); + }, o.fe = function() { + return this.e; + }, o.ge = function() { + var e, t, i; + for (i = (this.k == null && (this.k = K(zK, J, 82, 0, 0, 1)), this.k), t = K(yi, Bn, 1, i.length, 5, 1), e = 0; e < i.length; e++) + t[e] = i[e].e; + return t; + }, o.he = function() { + return this.f; + }, o.ie = function() { + return this.g; + }, o.je = function() { + Qfe(this, Ope(this.ee(IM(this, this.g)))), Lyn(this); + }, o.Ib = function() { + return IM(this, this.ie()); + }, o.e = Fzn, o.i = !1, o.n = !0; + var zK = w(ac, "Throwable", 82); + b(103, 82, { 3: 1, 103: 1, 82: 1 }), w(ac, "Exception", 103), b(63, 103, Pl, za, ec), w(ac, "RuntimeException", 63), b(607, 63, Pl), w(ac, "JsException", 607), b(875, 607, Pl), w(My, "JavaScriptExceptionBase", 875), b(486, 875, { 486: 1, 3: 1, 103: 1, 63: 1, 82: 1 }, GFn), o.ie = function() { + return zke(this), this.c; + }, o.ke = function() { + return x(this.b) === x(oun) ? null : this.b; + }; + var oun; + w(vtn, "JavaScriptException", 486); + var fQn = w(vtn, "JavaScriptObject$", 0), XK; + b(2047, 1, {}), w(vtn, "Scheduler", 2047); + var cP = 0, hQn = 0, uP = -1; + b(902, 2047, {}, Kl); + var sun; + w(My, "SchedulerImpl", 902); + var VK; + b(2058, 1, {}), w(My, "StackTraceCreator/Collector", 2058), b(876, 2058, {}, Ka), o.le = function(e) { + var t = {}, i = []; + e[oB] = i; + for (var r = arguments.callee.caller; r; ) { + var c = (I4(), r.name || (r.name = Dme(r.toString()))); + i.push(c); + var s = ":" + c, f = t[s]; + if (f) { + var h, l; + for (h = 0, l = f.length; h < l; h++) + if (f[h] === r) + return; + } + (f || (t[s] = [])).push(r), r = r.caller; + } + }, o.me = function(e) { + var t, i, r, c; + for (r = (I4(), e && e[oB] ? e[oB] : []), i = r.length, c = K(jun, J, 319, i, 0, 1), t = 0; t < i; t++) + c[t] = new yN(r[t], null, -1); + return c; + }, w(My, "StackTraceCreator/CollectorLegacy", 876), b(2059, 2058, {}), o.le = function(e) { + }, o.ne = function(e, t, i, r) { + return new yN(t, e + "@" + r, i < 0 ? -1 : i); + }, o.me = function(e) { + var t, i, r, c, s, f; + if (c = v7e(e), s = K(jun, J, 319, 0, 0, 1), t = 0, r = c.length, r == 0) + return s; + for (f = _Gn(this, c[0]), An(f.d, uB) || (s[t++] = f), i = 1; i < r; i++) + s[t++] = _Gn(this, c[i]); + return s; + }, w(My, "StackTraceCreator/CollectorModern", 2059), b(877, 2059, {}, Gv), o.ne = function(e, t, i, r) { + return new yN(t, e, -1); + }, w(My, "StackTraceCreator/CollectorModernNoSourceMap", 877), b(1064, 1, {}), w(ytn, Kzn, 1064), b(624, 1064, { 624: 1 }, JPn); + var fun; + w(TB, Kzn, 624), b(2101, 1, {}), w(ytn, _zn, 2101), b(2102, 2101, {}), w(TB, _zn, 2102), b(1120, 1, {}, $1); + var T8; + w(TB, "LocaleInfo", 1120), b(2027, 1, {}, ul), o.a = 0, w(TB, "TimeZone", 2027), b(1293, 2102, {}, C0n), w("com.google.gwt.i18n.client.impl.cldr", "DateTimeFormatInfoImpl", 1293), b(443, 1, { 443: 1 }, SSn), o.a = !1, o.b = 0, w(ytn, "DateTimeFormat/PatternPart", 443), b(206, 1, Hzn, JE, nY, fV), o.Fd = function(e) { + return Tpe(this, u(e, 206)); + }, o.Fb = function(e) { + return D(e, 206) && s0(vc(this.q.getTime()), vc(u(e, 206).q.getTime())); + }, o.Hb = function() { + var e; + return e = vc(this.q.getTime()), Ae(RN(e, U1(e, 32))); + }, o.Ib = function() { + var e, t, i; + return i = -this.q.getTimezoneOffset(), e = (i >= 0 ? "+" : "") + (i / 60 | 0), t = OC(y.Math.abs(i) % 60), (UKn(), EQn)[this.q.getDay()] + " " + CQn[this.q.getMonth()] + " " + OC(this.q.getDate()) + " " + OC(this.q.getHours()) + ":" + OC(this.q.getMinutes()) + ":" + OC(this.q.getSeconds()) + " GMT" + e + t + " " + this.q.getFullYear(); + }; + var oP = w(le, "Date", 206); + b(2015, 206, Hzn, dKn), o.a = !1, o.b = 0, o.c = 0, o.d = 0, o.e = 0, o.f = 0, o.g = !1, o.i = 0, o.j = 0, o.k = 0, o.n = 0, o.o = 0, o.p = 0, w("com.google.gwt.i18n.shared.impl", "DateRecord", 2015), b(2064, 1, {}), o.pe = function() { + return null; + }, o.qe = function() { + return null; + }, o.re = function() { + return null; + }, o.se = function() { + return null; + }, o.te = function() { + return null; + }, w(u3, "JSONValue", 2064), b(221, 2064, { 221: 1 }, Ha, aG), o.Fb = function(e) { + return D(e, 221) ? hJ(this.a, u(e, 221).a) : !1; + }, o.oe = function() { + return Nfe; + }, o.Hb = function() { + return ZW(this.a); + }, o.pe = function() { + return this; + }, o.Ib = function() { + var e, t, i; + for (i = new mo("["), t = 0, e = this.a.length; t < e; t++) + t > 0 && (i.a += ","), Lc(i, Qb(this, t)); + return i.a += "]", i.a; + }, w(u3, "JSONArray", 221), b(493, 2064, { 493: 1 }, dG), o.oe = function() { + return $fe; + }, o.qe = function() { + return this; + }, o.Ib = function() { + return _n(), "" + this.a; + }, o.a = !1; + var lQn, aQn; + w(u3, "JSONBoolean", 493), b(997, 63, Pl, Ojn), w(u3, "JSONException", 997), b(1036, 2064, {}, M0n), o.oe = function() { + return xfe; + }, o.Ib = function() { + return wu; + }; + var dQn; + w(u3, "JSONNull", 1036), b(263, 2064, { 263: 1 }, AE), o.Fb = function(e) { + return D(e, 263) ? this.a == u(e, 263).a : !1; + }, o.oe = function() { + return Dfe; + }, o.Hb = function() { + return pp(this.a); + }, o.re = function() { + return this; + }, o.Ib = function() { + return this.a + ""; + }, o.a = 0, w(u3, "JSONNumber", 263), b(190, 2064, { 190: 1 }, sp, U9), o.Fb = function(e) { + return D(e, 190) ? hJ(this.a, u(e, 190).a) : !1; + }, o.oe = function() { + return Lfe; + }, o.Hb = function() { + return ZW(this.a); + }, o.se = function() { + return this; + }, o.Ib = function() { + var e, t, i, r, c, s, f; + for (f = new mo("{"), e = !0, s = S$(this, K(fn, J, 2, 0, 6, 1)), i = s, r = 0, c = i.length; r < c; ++r) + t = i[r], e ? e = !1 : f.a += cr, Re(f, cHn(t)), f.a += ":", Lc(f, dl(this, t)); + return f.a += "}", f.a; + }, w(u3, "JSONObject", 190), b(605, Rf, Du, SD), o.Hc = function(e) { + return Pi(e) && whe(this.a, Oe(e)); + }, o.Kc = function() { + return new zv(new Bu(this.b)); + }, o.gc = function() { + return this.b.length; + }, w(u3, "JSONObject/1", 605); + var WK; + b(211, 2064, { 211: 1 }, Ub), o.Fb = function(e) { + return D(e, 211) ? An(this.a, u(e, 211).a) : !1; + }, o.oe = function() { + return Ofe; + }, o.Hb = function() { + return i1(this.a); + }, o.te = function() { + return this; + }, o.Ib = function() { + return cHn(this.a); + }, w(u3, "JSONString", 211); + var wa, hun, bQn, lun, aun; + b(2060, 1, { 533: 1 }), w(jtn, "OutputStream", 2060), b(2061, 2060, { 533: 1 }), w(jtn, "FilterOutputStream", 2061), b(878, 2061, { 533: 1 }, T0n), w(jtn, "PrintStream", 878), b(427, 1, { 484: 1 }), o.Ib = function() { + return this.a; + }, w(ac, "AbstractStringBuilder", 427), b(538, 63, Pl, _E), w(ac, "ArithmeticException", 538), b(77, 63, AB, qG, Pr), w(ac, "IndexOutOfBoundsException", 77), b(333, 77, { 3: 1, 333: 1, 103: 1, 77: 1, 63: 1, 82: 1 }, YG, pz), w(ac, "ArrayIndexOutOfBoundsException", 333), b(537, 63, Pl, uD, Bjn), w(ac, "ArrayStoreException", 537), b(296, 82, qzn, vD), w(ac, "Error", 296), b(200, 296, qzn, HG, $J), w(ac, "AssertionError", 200), eQn = { 3: 1, 485: 1, 34: 1 }; + var ga, uv, zt = w(ac, "Boolean", 485); + b(242, 1, { 3: 1, 242: 1 }); + var dun; + w(ac, "Number", 242), b(222, 242, { 3: 1, 222: 1, 34: 1, 242: 1 }, u9n), o.Fd = function(e) { + return ahe(this, u(e, 222)); + }, o.ue = function() { + return this.a; + }, o.Fb = function(e) { + return D(e, 222) && u(e, 222).a == this.a; + }, o.Hb = function() { + return this.a; + }, o.Ib = function() { + return "" + this.a; + }, o.a = 0; + var p3 = w(ac, "Byte", 222), bun; + b(180, 1, { 3: 1, 180: 1, 34: 1 }, jG), o.Fd = function(e) { + return dhe(this, u(e, 180)); + }, o.Fb = function(e) { + return D(e, 180) && u(e, 180).a == this.a; + }, o.Hb = function() { + return this.a; + }, o.Ib = function() { + return String.fromCharCode(this.a); + }, o.a = 0; + var wun, A8 = w(ac, "Character", 180), gun; + b(212, 63, { 3: 1, 212: 1, 103: 1, 63: 1, 82: 1 }, Nyn, t4), w(ac, "ClassCastException", 212), tQn = { 3: 1, 34: 1, 345: 1, 242: 1 }; + var fi = w(ac, "Double", 345); + b(161, 242, { 3: 1, 34: 1, 161: 1, 242: 1 }, z9, UG), o.Fd = function(e) { + return Ale(this, u(e, 161)); + }, o.ue = function() { + return this.a; + }, o.Fb = function(e) { + return D(e, 161) && nSn(this.a, u(e, 161).a); + }, o.Hb = function() { + return gi(this.a); + }, o.Ib = function() { + return "" + this.a; + }, o.a = 0; + var ov = w(ac, "Float", 161); + b(33, 63, { 3: 1, 103: 1, 33: 1, 63: 1, 82: 1 }, W9, Gn, NFn), w(ac, "IllegalArgumentException", 33), b(73, 63, Pl, Eu, Ir), w(ac, "IllegalStateException", 73), b(17, 242, { 3: 1, 34: 1, 17: 1, 242: 1 }, vG), o.Fd = function(e) { + return jX(this, u(e, 17)); + }, o.ue = function() { + return this.a; + }, o.Fb = function(e) { + return D(e, 17) && u(e, 17).a == this.a; + }, o.Hb = function() { + return this.a; + }, o.Ib = function() { + return "" + this.a; + }, o.a = 0; + var Gi = w(ac, "Integer", 17), pun, wQn; + b(168, 242, { 3: 1, 34: 1, 168: 1, 242: 1 }, kG), o.Fd = function(e) { + return Tle(this, u(e, 168)); + }, o.ue = function() { + return rd(this.a); + }, o.Fb = function(e) { + return D(e, 168) && s0(u(e, 168).a, this.a); + }, o.Hb = function() { + return Mae(this.a); + }, o.Ib = function() { + return "" + _6(this.a); + }, o.a = 0; + var ib = w(ac, "Long", 168), mun; + b(2140, 1, {}), b(1904, 63, Pl, Rjn), w(ac, "NegativeArraySizeException", 1904), b(169, 607, { 3: 1, 103: 1, 169: 1, 63: 1, 82: 1 }, rp, fp), o.ee = function(e) { + return new TypeError(e); + }, w(ac, "NullPointerException", 169); + var vun, JK, gQn, kun; + b(130, 33, { 3: 1, 103: 1, 33: 1, 130: 1, 63: 1, 82: 1 }, eh), w(ac, "NumberFormatException", 130), b(191, 242, { 3: 1, 34: 1, 242: 1, 191: 1 }, yG), o.Fd = function(e) { + return bhe(this, u(e, 191)); + }, o.ue = function() { + return this.a; + }, o.Fb = function(e) { + return D(e, 191) && u(e, 191).a == this.a; + }, o.Hb = function() { + return this.a; + }, o.Ib = function() { + return "" + this.a; + }, o.a = 0; + var rb = w(ac, "Short", 191), yun; + b(319, 1, { 3: 1, 319: 1 }, yN), o.Fb = function(e) { + var t; + return D(e, 319) ? (t = u(e, 319), this.c == t.c && this.d == t.d && this.a == t.a && this.b == t.b) : !1; + }, o.Hb = function() { + return Ik(A(T(yi, 1), Bn, 1, 5, [Y(this.c), this.a, this.d, this.b])); + }, o.Ib = function() { + return this.a + "." + this.d + "(" + (this.b != null ? this.b : "Unknown Source") + (this.c >= 0 ? ":" + this.c : "") + ")"; + }, o.c = 0; + var jun = w(ac, "StackTraceElement", 319); + iQn = { 3: 1, 484: 1, 34: 1, 2: 1 }; + var fn = w(ac, mtn, 2); + b(111, 427, { 484: 1 }, ql, i6, ls), w(ac, "StringBuffer", 111), b(104, 427, { 484: 1 }, x1, fg, mo), w(ac, "StringBuilder", 104), b(702, 77, AB, gz), w(ac, "StringIndexOutOfBoundsException", 702), b(2145, 1, {}); + var pQn; + b(48, 63, { 3: 1, 103: 1, 63: 1, 82: 1, 48: 1 }, Pe, _l), w(ac, "UnsupportedOperationException", 48), b(247, 242, { 3: 1, 34: 1, 242: 1, 247: 1 }, Nk, Az), o.Fd = function(e) { + return FUn(this, u(e, 247)); + }, o.ue = function() { + return fw(lGn(this)); + }, o.Fb = function(e) { + var t; + return this === e ? !0 : D(e, 247) ? (t = u(e, 247), this.e == t.e && FUn(this, t) == 0) : !1; + }, o.Hb = function() { + var e; + return this.b != 0 ? this.b : this.a < 54 ? (e = vc(this.f), this.b = Ae(ki(e, -1)), this.b = 33 * this.b + Ae(ki(g0(e, 32), -1)), this.b = 17 * this.b + gi(this.e), this.b) : (this.b = 17 * JFn(this.c) + gi(this.e), this.b); + }, o.Ib = function() { + return lGn(this); + }, o.a = 0, o.b = 0, o.d = 0, o.e = 0, o.f = 0; + var mQn, Od, Eun, Cun, Mun, Tun, Aun, Sun, QK = w("java.math", "BigDecimal", 247); + b(92, 242, { 3: 1, 34: 1, 242: 1, 92: 1 }, gl, HOn, Za, QBn, H1), o.Fd = function(e) { + return XBn(this, u(e, 92)); + }, o.ue = function() { + return fw(ZF(this, 0)); + }, o.Fb = function(e) { + return _Y(this, e); + }, o.Hb = function() { + return JFn(this); + }, o.Ib = function() { + return ZF(this, 0); + }, o.b = -2, o.c = 0, o.d = 0, o.e = 0; + var vQn, sP, kQn, YK, fP, S8, l2 = w("java.math", "BigInteger", 92), yQn, jQn, m3, P8; + b(498, 2065, V0), o.$b = function() { + Ku(this); + }, o._b = function(e) { + return Zc(this, e); + }, o.uc = function(e) { + return OFn(this, e, this.i) || OFn(this, e, this.f); + }, o.vc = function() { + return new Ga(this); + }, o.xc = function(e) { + return ee(this, e); + }, o.zc = function(e, t) { + return Xe(this, e, t); + }, o.Bc = function(e) { + return Bp(this, e); + }, o.gc = function() { + return c6(this); + }, o.g = 0, w(le, "AbstractHashMap", 498), b(267, Rf, Du, Ga), o.$b = function() { + this.a.$b(); + }, o.Hc = function(e) { + return mDn(this, e); + }, o.Kc = function() { + return new fd(this.a); + }, o.Mc = function(e) { + var t; + return mDn(this, e) ? (t = u(e, 44).ld(), this.a.Bc(t), !0) : !1; + }, o.gc = function() { + return this.a.gc(); + }, w(le, "AbstractHashMap/EntrySet", 267), b(268, 1, Ii, fd), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return N0(this); + }, o.Ob = function() { + return this.b; + }, o.Qb = function() { + XNn(this); + }, o.b = !1, o.d = 0, w(le, "AbstractHashMap/EntrySetIterator", 268), b(426, 1, Ii, zv), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return DD(this); + }, o.Pb = function() { + return VW(this); + }, o.Qb = function() { + bo(this); + }, o.b = 0, o.c = -1, w(le, "AbstractList/IteratorImpl", 426), b(98, 426, _h, Fi), o.Qb = function() { + bo(this); + }, o.Rb = function(e) { + Kb(this, e); + }, o.Sb = function() { + return this.b > 0; + }, o.Tb = function() { + return this.b; + }, o.Ub = function() { + return oe(this.b > 0), this.a.Xb(this.c = --this.b); + }, o.Vb = function() { + return this.b - 1; + }, o.Wb = function(e) { + Bb(this.c != -1), this.a.hd(this.c, e); + }, w(le, "AbstractList/ListIteratorImpl", 98), b(244, 56, Bm, Ql), o.bd = function(e, t) { + Xb(e, this.b), this.c.bd(this.a + e, t), ++this.b; + }, o.Xb = function(e) { + return Ln(e, this.b), this.c.Xb(this.a + e); + }, o.gd = function(e) { + var t; + return Ln(e, this.b), t = this.c.gd(this.a + e), --this.b, t; + }, o.hd = function(e, t) { + return Ln(e, this.b), this.c.hd(this.a + e, t); + }, o.gc = function() { + return this.b; + }, o.a = 0, o.b = 0, w(le, "AbstractList/SubList", 244), b(266, Rf, Du, Ua), o.$b = function() { + this.a.$b(); + }, o.Hc = function(e) { + return this.a._b(e); + }, o.Kc = function() { + var e; + return e = this.a.vc().Kc(), new PE(e); + }, o.Mc = function(e) { + return this.a._b(e) ? (this.a.Bc(e), !0) : !1; + }, o.gc = function() { + return this.a.gc(); + }, w(le, "AbstractMap/1", 266), b(541, 1, Ii, PE), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return this.a.Ob(); + }, o.Pb = function() { + var e; + return e = u(this.a.Pb(), 44), e.ld(); + }, o.Qb = function() { + this.a.Qb(); + }, w(le, "AbstractMap/1/1", 541), b(231, 31, mw, ol), o.$b = function() { + this.a.$b(); + }, o.Hc = function(e) { + return this.a.uc(e); + }, o.Kc = function() { + var e; + return e = this.a.vc().Kc(), new Pb(e); + }, o.gc = function() { + return this.a.gc(); + }, w(le, "AbstractMap/2", 231), b(301, 1, Ii, Pb), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return this.a.Ob(); + }, o.Pb = function() { + var e; + return e = u(this.a.Pb(), 44), e.md(); + }, o.Qb = function() { + this.a.Qb(); + }, w(le, "AbstractMap/2/1", 301), b(494, 1, { 494: 1, 44: 1 }), o.Fb = function(e) { + var t; + return D(e, 44) ? (t = u(e, 44), mc(this.d, t.ld()) && mc(this.e, t.md())) : !1; + }, o.ld = function() { + return this.d; + }, o.md = function() { + return this.e; + }, o.Hb = function() { + return yg(this.d) ^ yg(this.e); + }, o.nd = function(e) { + return wV(this, e); + }, o.Ib = function() { + return this.d + "=" + this.e; + }, w(le, "AbstractMap/AbstractEntry", 494), b(397, 494, { 494: 1, 397: 1, 44: 1 }, oC), w(le, "AbstractMap/SimpleEntry", 397), b(2082, 1, IB), o.Fb = function(e) { + var t; + return D(e, 44) ? (t = u(e, 44), mc(this.ld(), t.ld()) && mc(this.md(), t.md())) : !1; + }, o.Hb = function() { + return yg(this.ld()) ^ yg(this.md()); + }, o.Ib = function() { + return this.ld() + "=" + this.md(); + }, w(le, Izn, 2082), b(2090, 2065, wtn), o.Xc = function(e) { + return MD(this.Ee(e)); + }, o.tc = function(e) { + return CLn(this, e); + }, o._b = function(e) { + return gV(this, e); + }, o.vc = function() { + return new ZO(this); + }, o.Tc = function() { + return BPn(this.Ge()); + }, o.Yc = function(e) { + return MD(this.He(e)); + }, o.xc = function(e) { + var t; + return t = e, Kr(this.Fe(t)); + }, o.$c = function(e) { + return MD(this.Ie(e)); + }, o.ec = function() { + return new o9n(this); + }, o.Vc = function() { + return BPn(this.Je()); + }, o._c = function(e) { + return MD(this.Ke(e)); + }, w(le, "AbstractNavigableMap", 2090), b(629, Rf, Du, ZO), o.Hc = function(e) { + return D(e, 44) && CLn(this.b, u(e, 44)); + }, o.Kc = function() { + return this.b.De(); + }, o.Mc = function(e) { + var t; + return D(e, 44) ? (t = u(e, 44), this.b.Le(t)) : !1; + }, o.gc = function() { + return this.b.gc(); + }, w(le, "AbstractNavigableMap/EntrySet", 629), b(1146, Rf, gtn, o9n), o.Nc = function() { + return new cC(this); + }, o.$b = function() { + this.a.$b(); + }, o.Hc = function(e) { + return gV(this.a, e); + }, o.Kc = function() { + var e; + return e = this.a.vc().b.De(), new s9n(e); + }, o.Mc = function(e) { + return gV(this.a, e) ? (this.a.Bc(e), !0) : !1; + }, o.gc = function() { + return this.a.gc(); + }, w(le, "AbstractNavigableMap/NavigableKeySet", 1146), b(1147, 1, Ii, s9n), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return DD(this.a.a); + }, o.Pb = function() { + var e; + return e = oAn(this.a), e.ld(); + }, o.Qb = function() { + dSn(this.a); + }, w(le, "AbstractNavigableMap/NavigableKeySet/1", 1147), b(2103, 31, mw), o.Fc = function(e) { + return Mp(km(this, e), Km), !0; + }, o.Gc = function(e) { + return Jn(e), x7(e != this, "Can't add a queue to itself"), Ri(this, e); + }, o.$b = function() { + for (; w$(this) != null; ) + ; + }, w(le, "AbstractQueue", 2103), b(310, 31, { 4: 1, 20: 1, 31: 1, 16: 1 }, Cg, dDn), o.Fc = function(e) { + return kJ(this, e), !0; + }, o.$b = function() { + TJ(this); + }, o.Hc = function(e) { + return Zxn(new V6(this), e); + }, o.dc = function() { + return t6(this); + }, o.Kc = function() { + return new V6(this); + }, o.Mc = function(e) { + return p2e(new V6(this), e); + }, o.gc = function() { + return this.c - this.b & this.a.length - 1; + }, o.Nc = function() { + return new In(this, 272); + }, o.Qc = function(e) { + var t; + return t = this.c - this.b & this.a.length - 1, e.length < t && (e = qE(new Array(t), e)), axn(this, e, t), e.length > t && $t(e, t, null), e; + }, o.b = 0, o.c = 0, w(le, "ArrayDeque", 310), b(459, 1, Ii, V6), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return this.a != this.b; + }, o.Pb = function() { + return xT(this); + }, o.Qb = function() { + W$n(this); + }, o.a = 0, o.b = 0, o.c = -1, w(le, "ArrayDeque/IteratorImpl", 459), b(13, 56, Gzn, Z, zc, Ru), o.bd = function(e, t) { + w0(this, e, t); + }, o.Fc = function(e) { + return nn(this, e); + }, o.cd = function(e, t) { + return dY(this, e, t); + }, o.Gc = function(e) { + return li(this, e); + }, o.$b = function() { + Ib(this.c, 0); + }, o.Hc = function(e) { + return qr(this, e, 0) != -1; + }, o.Jc = function(e) { + nu(this, e); + }, o.Xb = function(e) { + return sn(this, e); + }, o.dd = function(e) { + return qr(this, e, 0); + }, o.dc = function() { + return this.c.length == 0; + }, o.Kc = function() { + return new C(this); + }, o.gd = function(e) { + return Zl(this, e); + }, o.Mc = function(e) { + return au(this, e); + }, o.ce = function(e, t) { + xOn(this, e, t); + }, o.hd = function(e, t) { + return Go(this, e, t); + }, o.gc = function() { + return this.c.length; + }, o.jd = function(e) { + Zt(this, e); + }, o.Pc = function() { + return ZC(this.c); + }, o.Qc = function(e) { + return xf(this, e); + }; + var uNe = w(le, "ArrayList", 13); + b(7, 1, Ii, C), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return tc(this); + }, o.Pb = function() { + return E(this); + }, o.Qb = function() { + q6(this); + }, o.a = 0, o.b = -1, w(le, "ArrayList/1", 7), b(2112, y.Function, {}, mE), o.Me = function(e, t) { + return bt(e, t); + }, b(151, 56, zzn, Bu), o.Hc = function(e) { + return J$n(this, e) != -1; + }, o.Jc = function(e) { + var t, i, r, c; + for (Jn(e), i = this.a, r = 0, c = i.length; r < c; ++r) + t = i[r], e.Cd(t); + }, o.Xb = function(e) { + return YSn(this, e); + }, o.hd = function(e, t) { + var i; + return i = (Ln(e, this.a.length), this.a[e]), $t(this.a, e, t), i; + }, o.gc = function() { + return this.a.length; + }, o.jd = function(e) { + QL(this.a, this.a.length, e); + }, o.Pc = function() { + return oRn(this, K(yi, Bn, 1, this.a.length, 5, 1)); + }, o.Qc = function(e) { + return oRn(this, e); + }, w(le, "Arrays/ArrayList", 151); + var or, Vh, hP; + b(953, 56, zzn, A0n), o.Hc = function(e) { + return !1; + }, o.Xb = function(e) { + return vX(e); + }, o.Kc = function() { + return Dn(), h4(), sv; + }, o.ed = function() { + return Dn(), h4(), sv; + }, o.gc = function() { + return 0; + }, w(le, "Collections/EmptyList", 953), b(954, 1, _h, S0n), o.Nb = function(e) { + _i(this, e); + }, o.Rb = function(e) { + throw M(new Pe()); + }, o.Ob = function() { + return !1; + }, o.Sb = function() { + return !1; + }, o.Pb = function() { + throw M(new nc()); + }, o.Tb = function() { + return 0; + }, o.Ub = function() { + throw M(new nc()); + }, o.Vb = function() { + return -1; + }, o.Qb = function() { + throw M(new Eu()); + }, o.Wb = function(e) { + throw M(new Eu()); + }; + var sv; + w(le, "Collections/EmptyListIterator", 954), b(956, 2065, Fm, P0n), o._b = function(e) { + return !1; + }, o.uc = function(e) { + return !1; + }, o.vc = function() { + return Dn(), hP; + }, o.xc = function(e) { + return null; + }, o.ec = function() { + return Dn(), hP; + }, o.gc = function() { + return 0; + }, o.Cc = function() { + return Dn(), or; + }, w(le, "Collections/EmptyMap", 956), b(955, Rf, r3, I0n), o.Hc = function(e) { + return !1; + }, o.Kc = function() { + return Dn(), h4(), sv; + }, o.gc = function() { + return 0; + }, w(le, "Collections/EmptySet", 955), b(608, 56, { 3: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1 }, nD), o.Hc = function(e) { + return mc(this.a, e); + }, o.Xb = function(e) { + return Ln(e, 1), this.a; + }, o.gc = function() { + return 1; + }, w(le, "Collections/SingletonList", 608), b(384, 1, Lzn, J3), o.Jc = function(e) { + qi(this, e); + }, o.Lc = function() { + return new Tn(null, this.Nc()); + }, o.Nc = function() { + return new In(this, 0); + }, o.Oc = function() { + return new Tn(null, this.Nc()); + }, o.Fc = function(e) { + return fEn(); + }, o.Gc = function(e) { + return hEn(); + }, o.$b = function() { + lEn(); + }, o.Hc = function(e) { + return t7(this, e); + }, o.Ic = function(e) { + return YEn(this, e); + }, o.dc = function() { + return this.b.dc(); + }, o.Kc = function() { + return new W3(this.b.Kc()); + }, o.Mc = function(e) { + return aEn(); + }, o.gc = function() { + return this.b.gc(); + }, o.Pc = function() { + return this.b.Pc(); + }, o.Qc = function(e) { + return ZEn(this, e); + }, o.Ib = function() { + return Jr(this.b); + }, w(le, "Collections/UnmodifiableCollection", 384), b(383, 1, Ii, W3), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return this.b.Ob(); + }, o.Pb = function() { + return this.b.Pb(); + }, o.Qb = function() { + dEn(); + }, w(le, "Collections/UnmodifiableCollectionIterator", 383), b(540, 384, Xzn, BC), o.Nc = function() { + return new In(this, 16); + }, o.bd = function(e, t) { + throw M(new Pe()); + }, o.cd = function(e, t) { + throw M(new Pe()); + }, o.Fb = function(e) { + return rt(this.a, e); + }, o.Xb = function(e) { + return this.a.Xb(e); + }, o.Hb = function() { + return mt(this.a); + }, o.dd = function(e) { + return this.a.dd(e); + }, o.dc = function() { + return this.a.dc(); + }, o.ed = function() { + return new zX(this.a.fd(0)); + }, o.fd = function(e) { + return new zX(this.a.fd(e)); + }, o.gd = function(e) { + throw M(new Pe()); + }, o.hd = function(e, t) { + throw M(new Pe()); + }, o.jd = function(e) { + throw M(new Pe()); + }, o.kd = function(e, t) { + return new BC(this.a.kd(e, t)); + }, w(le, "Collections/UnmodifiableList", 540), b(705, 383, _h, zX), o.Qb = function() { + dEn(); + }, o.Rb = function(e) { + throw M(new Pe()); + }, o.Sb = function() { + return this.a.Sb(); + }, o.Tb = function() { + return this.a.Tb(); + }, o.Ub = function() { + return this.a.Ub(); + }, o.Vb = function() { + return this.a.Vb(); + }, o.Wb = function(e) { + throw M(new Pe()); + }, w(le, "Collections/UnmodifiableListIterator", 705), b(609, 1, V0, eD), o.wc = function(e) { + f5(this, e); + }, o.yc = function(e, t, i) { + return hx(this, e, t, i); + }, o.$b = function() { + throw M(new Pe()); + }, o._b = function(e) { + return this.c._b(e); + }, o.uc = function(e) { + return eCn(this, e); + }, o.vc = function() { + return A4(this); + }, o.Fb = function(e) { + return tCn(this, e); + }, o.xc = function(e) { + return this.c.xc(e); + }, o.Hb = function() { + return mt(this.c); + }, o.dc = function() { + return this.c.dc(); + }, o.ec = function() { + return pIn(this); + }, o.zc = function(e, t) { + throw M(new Pe()); + }, o.Bc = function(e) { + throw M(new Pe()); + }, o.gc = function() { + return this.c.gc(); + }, o.Ib = function() { + return Jr(this.c); + }, o.Cc = function() { + return gIn(this); + }, w(le, "Collections/UnmodifiableMap", 609), b(396, 384, rB, i4), o.Nc = function() { + return new In(this, 1); + }, o.Fb = function(e) { + return rt(this.b, e); + }, o.Hb = function() { + return mt(this.b); + }, w(le, "Collections/UnmodifiableSet", 396), b(957, 396, rB, qjn), o.Hc = function(e) { + return nCn(this, e); + }, o.Ic = function(e) { + return this.b.Ic(e); + }, o.Kc = function() { + var e; + return e = this.b.Kc(), new f9n(e); + }, o.Pc = function() { + var e; + return e = this.b.Pc(), WDn(e, e.length), e; + }, o.Qc = function(e) { + return eOn(this, e); + }, w(le, "Collections/UnmodifiableMap/UnmodifiableEntrySet", 957), b(958, 1, Ii, f9n), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return new EG(u(this.a.Pb(), 44)); + }, o.Ob = function() { + return this.a.Ob(); + }, o.Qb = function() { + throw M(new Pe()); + }, w(le, "Collections/UnmodifiableMap/UnmodifiableEntrySet/1", 958), b(703, 1, IB, EG), o.Fb = function(e) { + return this.a.Fb(e); + }, o.ld = function() { + return this.a.ld(); + }, o.md = function() { + return this.a.md(); + }, o.Hb = function() { + return this.a.Hb(); + }, o.nd = function(e) { + throw M(new Pe()); + }, o.Ib = function() { + return Jr(this.a); + }, w(le, "Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry", 703), b(610, 540, { 20: 1, 16: 1, 15: 1, 59: 1 }, jD), w(le, "Collections/UnmodifiableRandomAccessList", 610), b(704, 396, Nzn, XX), o.Nc = function() { + return new cC(this); + }, o.Fb = function(e) { + return rt(this.a, e); + }, o.Hb = function() { + return mt(this.a); + }, w(le, "Collections/UnmodifiableSortedSet", 704), b(858, 1, OB, O0n), o.Ne = function(e, t) { + var i; + return i = XDn(u(e, 12), u(t, 12)), i != 0 ? i : TUn(u(e, 12), u(t, 12)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(le, "Comparator/lambda$0$Type", 858); + var Pun, ZK, Iun; + b(769, 1, OB, FU), o.Ne = function(e, t) { + return xbe(u(e, 34), u(t, 34)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return E0(), Iun; + }, w(le, "Comparators/NaturalOrderComparator", 769), b(1226, 1, OB, D0n), o.Ne = function(e, t) { + return $be(u(e, 34), u(t, 34)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return E0(), ZK; + }, w(le, "Comparators/ReverseNaturalOrderComparator", 1226), b(52, 1, OB, Te), o.Fb = function(e) { + return this === e; + }, o.Ne = function(e, t) { + return this.a.Ne(t, e); + }, o.Oe = function() { + return this.a; + }, w(le, "Comparators/ReversedComparator", 52), b(175, 63, Pl, Bo), w(le, "ConcurrentModificationException", 175); + var EQn, CQn; + b(1948, 1, Py, L0n), o.Pe = function(e) { + IBn(this, e); + }, o.Ib = function() { + return "DoubleSummaryStatistics[count = " + _6(this.a) + ", avg = " + (LD(this.a, 0) ? KJ(this) / rd(this.a) : 0) + ", min = " + this.c + ", max = " + this.b + ", sum = " + KJ(this) + "]"; + }, o.a = 0, o.b = ai, o.c = St, o.d = 0, o.e = 0, o.f = 0, w(le, "DoubleSummaryStatistics", 1948), b(1868, 63, Pl, $yn), w(le, "EmptyStackException", 1868), b(461, 2065, V0, y5), o.zc = function(e, t) { + return pV(this, e, t); + }, o.$b = function() { + rIn(this); + }, o._b = function(e) { + return vCn(this, e); + }, o.uc = function(e) { + var t, i; + for (i = new dp(this.a); i.a < i.c.a.length; ) + if (t = n5(i), mc(e, this.b[t.g])) + return !0; + return !1; + }, o.vc = function() { + return new l9n(this); + }, o.xc = function(e) { + return Mr(this, e); + }, o.Bc = function(e) { + return lJ(this, e); + }, o.gc = function() { + return this.a.c; + }, w(le, "EnumMap", 461), b(1340, Rf, Du, l9n), o.$b = function() { + rIn(this.a); + }, o.Hc = function(e) { + return vDn(this, e); + }, o.Kc = function() { + return new iPn(this.a); + }, o.Mc = function(e) { + var t; + return vDn(this, e) ? (t = u(e, 44).ld(), lJ(this.a, t), !0) : !1; + }, o.gc = function() { + return this.a.a.c; + }, w(le, "EnumMap/EntrySet", 1340), b(1341, 1, Ii, iPn), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return this.b = n5(this.a), new yCn(this.c, this.b); + }, o.Ob = function() { + return IX(this.a); + }, o.Qb = function() { + Bb(!!this.b), lJ(this.c, this.b), this.b = null; + }, w(le, "EnumMap/EntrySetIterator", 1341), b(1342, 2082, IB, yCn), o.ld = function() { + return this.a; + }, o.md = function() { + return this.b.b[this.a.g]; + }, o.nd = function(e) { + return nW(this.b.b, this.a.g, e); + }, w(le, "EnumMap/MapEntry", 1342), b(181, Rf, { 20: 1, 31: 1, 16: 1, 181: 1, 21: 1 }); + var MQn = w(le, "EnumSet", 181); + b(162, 181, { 20: 1, 31: 1, 16: 1, 181: 1, 162: 1, 21: 1 }, _o), o.Fc = function(e) { + return _s(this, u(e, 22)); + }, o.Hc = function(e) { + return JL(this, e); + }, o.Kc = function() { + return new dp(this); + }, o.Mc = function(e) { + return aPn(this, e); + }, o.gc = function() { + return this.c; + }, o.c = 0, w(le, "EnumSet/EnumSetImpl", 162), b(356, 1, Ii, dp), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return n5(this); + }, o.Ob = function() { + return IX(this); + }, o.Qb = function() { + Bb(this.b != -1), $t(this.c.b, this.b, null), --this.c.c, this.b = -1; + }, o.a = -1, o.b = -1, w(le, "EnumSet/EnumSetImpl/IteratorImpl", 356), b(45, 498, n2, de, ap, RMn), o.Be = function(e, t) { + return x(e) === x(t) || e != null && rt(e, t); + }, o.Ce = function(e) { + var t; + return e == null ? 0 : (t = mt(e), t | 0); + }, w(le, "HashMap", 45), b(49, Rf, Etn, ei, zE, F6), o.Fc = function(e) { + return hi(this, e); + }, o.$b = function() { + this.a.$b(); + }, o.Hc = function(e) { + return sf(this, e); + }, o.dc = function() { + return this.a.gc() == 0; + }, o.Kc = function() { + return this.a.ec().Kc(); + }, o.Mc = function(e) { + return $X(this, e); + }, o.gc = function() { + return this.a.gc(); + }; + var oNe = w(le, "HashSet", 49); + b(1897, 1, jy, N0n), o.Dd = function(e) { + Kxn(this, e); + }, o.Ib = function() { + return "IntSummaryStatistics[count = " + _6(this.a) + ", avg = " + (LD(this.a, 0) ? rd(this.d) / rd(this.a) : 0) + ", min = " + this.c + ", max = " + this.b + ", sum = " + _6(this.d) + "]"; + }, o.a = 0, o.b = Wi, o.c = et, o.d = 0, w(le, "IntSummaryStatistics", 1897), b(1062, 1, Hh, iTn), o.Jc = function(e) { + qi(this, e); + }, o.Kc = function() { + return new WJ(this); + }, o.c = 0, w(le, "InternalHashCodeMap", 1062), b(726, 1, Ii, WJ), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return this.d = this.a[this.c++], this.d; + }, o.Ob = function() { + var e; + return this.c < this.a.length ? !0 : (e = this.b.next(), e.done ? !1 : (this.a = e.value[1], this.c = 0, !0)); + }, o.Qb = function() { + Hnn(this.e, this.d.ld()), this.c != 0 && --this.c; + }, o.c = 0, o.d = null, w(le, "InternalHashCodeMap/1", 726); + var TQn; + b(1060, 1, Hh, rTn), o.Jc = function(e) { + qi(this, e); + }, o.Kc = function() { + return new AJ(this); + }, o.c = 0, o.d = 0, w(le, "InternalStringMap", 1060), b(725, 1, Ii, AJ), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return this.c = this.a, this.a = this.b.next(), new hSn(this.d, this.c, this.d.d); + }, o.Ob = function() { + return !this.a.done; + }, o.Qb = function() { + Gxn(this.d, this.c.value[0]); + }, w(le, "InternalStringMap/1", 725), b(1061, 2082, IB, hSn), o.ld = function() { + return this.b.value[0]; + }, o.md = function() { + return this.a.d != this.c ? a6(this.a, this.b.value[0]) : this.b.value[1]; + }, o.nd = function(e) { + return x0(this.a, this.b.value[0], e); + }, o.c = 0, w(le, "InternalStringMap/2", 1061), b(215, 45, n2, Yl, VJ), o.$b = function() { + xAn(this); + }, o._b = function(e) { + return kCn(this, e); + }, o.uc = function(e) { + var t; + for (t = this.d.a; t != this.d; ) { + if (mc(t.e, e)) + return !0; + t = t.a; + } + return !1; + }, o.vc = function() { + return new PG(this); + }, o.xc = function(e) { + return Lf(this, e); + }, o.zc = function(e, t) { + return f1(this, e, t); + }, o.Bc = function(e) { + return UNn(this, e); + }, o.gc = function() { + return c6(this.e); + }, o.c = !1, w(le, "LinkedHashMap", 215), b(400, 397, { 494: 1, 397: 1, 400: 1, 44: 1 }, cAn, UV), w(le, "LinkedHashMap/ChainEntry", 400), b(715, Rf, Du, PG), o.$b = function() { + xAn(this.a); + }, o.Hc = function(e) { + return kDn(this, e); + }, o.Kc = function() { + return new xW(this); + }, o.Mc = function(e) { + var t; + return kDn(this, e) ? (t = u(e, 44).ld(), UNn(this.a, t), !0) : !1; + }, o.gc = function() { + return c6(this.a.e); + }, w(le, "LinkedHashMap/EntrySet", 715), b(716, 1, Ii, xW), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return WNn(this); + }, o.Ob = function() { + return this.c != this.d.a.d; + }, o.Qb = function() { + Bb(!!this.a), FL(this.d.a.e.g, this.b), tW(this.a), Bp(this.d.a.e, this.a.d), this.b = this.d.a.e.g, this.a = null; + }, o.b = 0, w(le, "LinkedHashMap/EntrySet/EntryIterator", 716), b(174, 49, Etn, ih, CL, fW); + var sNe = w(le, "LinkedHashSet", 174); + b(67, 2062, { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 67: 1, 15: 1 }, Ct, $L), o.Fc = function(e) { + return Fe(this, e); + }, o.$b = function() { + vo(this); + }, o.fd = function(e) { + return ge(this, e); + }, o.gc = function() { + return this.b; + }, o.b = 0; + var fNe = w(le, "LinkedList", 67); + b(981, 1, _h, lSn), o.Nb = function(e) { + _i(this, e); + }, o.Rb = function(e) { + _7(this, e); + }, o.Ob = function() { + return Q9(this); + }, o.Sb = function() { + return this.b.b != this.d.a; + }, o.Pb = function() { + return be(this); + }, o.Tb = function() { + return this.a; + }, o.Ub = function() { + return wDn(this); + }, o.Vb = function() { + return this.a - 1; + }, o.Qb = function() { + p$(this); + }, o.Wb = function(e) { + Bb(!!this.c), this.c.c = e; + }, o.a = 0, o.c = null, w(le, "LinkedList/ListIteratorImpl", 981), b(617, 1, {}, OO), w(le, "LinkedList/Node", 617), b(2057, 1, {}); + var Oun, AQn; + w(le, "Locale", 2057), b(873, 2057, {}, $0n), o.Ib = function() { + return ""; + }, w(le, "Locale/1", 873), b(874, 2057, {}, x0n), o.Ib = function() { + return "unknown"; + }, w(le, "Locale/4", 874), b(112, 63, { 3: 1, 103: 1, 63: 1, 82: 1, 112: 1 }, nc, PIn), w(le, "NoSuchElementException", 112), b(475, 1, { 475: 1 }, wD), o.Fb = function(e) { + var t; + return e === this ? !0 : D(e, 475) ? (t = u(e, 475), mc(this.a, t.a)) : !1; + }, o.Hb = function() { + return yg(this.a); + }, o.Ib = function() { + return this.a != null ? Szn + O6(this.a) + ")" : "Optional.empty()"; + }; + var Dun; + w(le, "Optional", 475), b(414, 1, { 414: 1 }, qMn, AL), o.Fb = function(e) { + var t; + return e === this ? !0 : D(e, 414) ? (t = u(e, 414), this.a == t.a && bt(this.b, t.b) == 0) : !1; + }, o.Hb = function() { + return this.a ? gi(this.b) : 0; + }, o.Ib = function() { + return this.a ? "OptionalDouble.of(" + ("" + this.b) + ")" : "OptionalDouble.empty()"; + }, o.a = !1, o.b = 0; + var n_; + w(le, "OptionalDouble", 414), b(524, 1, { 524: 1 }, UMn, uAn), o.Fb = function(e) { + var t; + return e === this ? !0 : D(e, 524) ? (t = u(e, 524), this.a == t.a && Ec(this.b, t.b) == 0) : !1; + }, o.Hb = function() { + return this.a ? this.b : 0; + }, o.Ib = function() { + return this.a ? "OptionalInt.of(" + ("" + this.b) + ")" : "OptionalInt.empty()"; + }, o.a = !1, o.b = 0; + var SQn; + w(le, "OptionalInt", 524), b(510, 2103, mw, dM), o.Gc = function(e) { + return CZ(this, e); + }, o.$b = function() { + Ib(this.b.c, 0); + }, o.Hc = function(e) { + return (e == null ? -1 : qr(this.b, e, 0)) != -1; + }, o.Kc = function() { + return new h9n(this); + }, o.Mc = function(e) { + return lxn(this, e); + }, o.gc = function() { + return this.b.c.length; + }, o.Nc = function() { + return new In(this, 256); + }, o.Pc = function() { + return ZC(this.b.c); + }, o.Qc = function(e) { + return xf(this.b, e); + }, w(le, "PriorityQueue", 510), b(1296, 1, Ii, h9n), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return this.a < this.c.b.c.length; + }, o.Pb = function() { + return oe(this.a < this.c.b.c.length), this.b = this.a++, sn(this.c.b, this.b); + }, o.Qb = function() { + Bb(this.b != -1), M$(this.c, this.a = this.b), this.b = -1; + }, o.a = 0, o.b = -1, w(le, "PriorityQueue/1", 1296), b(234, 1, { 234: 1 }, dx, qM), o.a = 0, o.b = 0; + var Lun, Nun, hNe = 0; + w(le, "Random", 234), b(25, 1, Po, In, m0, AIn), o.Ad = function(e) { + return (this.a & e) != 0; + }, o.yd = function() { + return this.a; + }, o.zd = function() { + return kW(this), this.c; + }, o.Nb = function(e) { + kW(this), this.d.Nb(e); + }, o.Bd = function(e) { + return y$n(this, e); + }, o.a = 0, o.c = 0, w(le, "Spliterators/IteratorSpliterator", 25), b(495, 25, Po, cC), w(le, "SortedSet/1", 495), b(611, 1, Py, TG), o.Pe = function(e) { + this.a.Cd(e); + }, w(le, "Spliterator/OfDouble/0methodref$accept$Type", 611), b(612, 1, Py, MG), o.Pe = function(e) { + this.a.Cd(e); + }, w(le, "Spliterator/OfDouble/1methodref$accept$Type", 612), b(613, 1, jy, AG), o.Dd = function(e) { + this.a.Cd(Y(e)); + }, w(le, "Spliterator/OfInt/2methodref$accept$Type", 613), b(614, 1, jy, SG), o.Dd = function(e) { + this.a.Cd(Y(e)); + }, w(le, "Spliterator/OfInt/3methodref$accept$Type", 614), b(625, 1, Po), o.Nb = function(e) { + Tz(this, e); + }, o.Ad = function(e) { + return (this.d & e) != 0; + }, o.yd = function() { + return this.d; + }, o.zd = function() { + return this.e; + }, o.d = 0, o.e = 0, w(le, "Spliterators/BaseSpliterator", 625), b(736, 625, Po), o.Qe = function(e) { + lg(this, e); + }, o.Nb = function(e) { + D(e, 189) ? lg(this, u(e, 189)) : lg(this, new MG(e)); + }, o.Bd = function(e) { + return D(e, 189) ? this.Re(u(e, 189)) : this.Re(new TG(e)); + }, w(le, "Spliterators/AbstractDoubleSpliterator", 736), b(735, 625, Po), o.Qe = function(e) { + lg(this, e); + }, o.Nb = function(e) { + D(e, 202) ? lg(this, u(e, 202)) : lg(this, new SG(e)); + }, o.Bd = function(e) { + return D(e, 202) ? this.Re(u(e, 202)) : this.Re(new AG(e)); + }, w(le, "Spliterators/AbstractIntSpliterator", 735), b(500, 625, Po), w(le, "Spliterators/AbstractSpliterator", 500), b(706, 1, Po), o.Nb = function(e) { + Tz(this, e); + }, o.Ad = function(e) { + return (this.b & e) != 0; + }, o.yd = function() { + return this.b; + }, o.zd = function() { + return this.d - this.c; + }, o.b = 0, o.c = 0, o.d = 0, w(le, "Spliterators/BaseArraySpliterator", 706), b(960, 706, Po, XSn), o.Se = function(e, t) { + phe(this, u(e, 41), t); + }, o.Nb = function(e) { + gN(this, e); + }, o.Bd = function(e) { + return WM(this, e); + }, w(le, "Spliterators/ArraySpliterator", 960), b(707, 706, Po, oSn), o.Se = function(e, t) { + mhe(this, u(e, 189), t); + }, o.Qe = function(e) { + gN(this, e); + }, o.Nb = function(e) { + D(e, 189) ? gN(this, u(e, 189)) : gN(this, new MG(e)); + }, o.Re = function(e) { + return WM(this, e); + }, o.Bd = function(e) { + return D(e, 189) ? WM(this, u(e, 189)) : WM(this, new TG(e)); + }, w(le, "Spliterators/DoubleArraySpliterator", 707), b(2066, 1, Po), o.Nb = function(e) { + Tz(this, e); + }, o.Ad = function(e) { + return (16448 & e) != 0; + }, o.yd = function() { + return 16448; + }, o.zd = function() { + return 0; + }; + var PQn; + w(le, "Spliterators/EmptySpliterator", 2066), b(959, 2066, Po, F0n), o.Qe = function(e) { + sG(e); + }, o.Nb = function(e) { + D(e, 202) ? sG(u(e, 202)) : sG(new SG(e)); + }, o.Re = function(e) { + return Kz(e); + }, o.Bd = function(e) { + return D(e, 202) ? Kz(u(e, 202)) : Kz(new AG(e)); + }, w(le, "Spliterators/EmptySpliterator/OfInt", 959), b(588, 56, Vzn, BE), o.bd = function(e, t) { + j4(e, this.a.c.length + 1), w0(this.a, e, t); + }, o.Fc = function(e) { + return nn(this.a, e); + }, o.cd = function(e, t) { + return j4(e, this.a.c.length + 1), dY(this.a, e, t); + }, o.Gc = function(e) { + return li(this.a, e); + }, o.$b = function() { + Ib(this.a.c, 0); + }, o.Hc = function(e) { + return qr(this.a, e, 0) != -1; + }, o.Ic = function(e) { + return Ek(this.a, e); + }, o.Jc = function(e) { + nu(this.a, e); + }, o.Xb = function(e) { + return j4(e, this.a.c.length), sn(this.a, e); + }, o.dd = function(e) { + return qr(this.a, e, 0); + }, o.dc = function() { + return this.a.c.length == 0; + }, o.Kc = function() { + return new C(this.a); + }, o.gd = function(e) { + return j4(e, this.a.c.length), Zl(this.a, e); + }, o.ce = function(e, t) { + xOn(this.a, e, t); + }, o.hd = function(e, t) { + return j4(e, this.a.c.length), Go(this.a, e, t); + }, o.gc = function() { + return this.a.c.length; + }, o.jd = function(e) { + Zt(this.a, e); + }, o.kd = function(e, t) { + return new Ql(this.a, e, t); + }, o.Pc = function() { + return ZC(this.a.c); + }, o.Qc = function(e) { + return xf(this.a, e); + }, o.Ib = function() { + return ca(this.a); + }, w(le, "Vector", 588), b(824, 588, Vzn, ZG), w(le, "Stack", 824), b(213, 1, { 213: 1 }, hd), o.Ib = function() { + return bDn(this); + }, w(le, "StringJoiner", 213), b(553, 2090, { 3: 1, 85: 1, 139: 1, 133: 1 }, rCn, iN), o.$b = function() { + $jn(this); + }, o.De = function() { + return new yDn(this); + }, o.vc = function() { + return new ZTn(this); + }, o.Ee = function(e) { + return dm(this, e, !0); + }, o.Fe = function(e) { + return TFn(this, e); + }, o.Ge = function() { + return eQ(this); + }, o.He = function(e) { + return Kk(this, e, !0); + }, o.Ie = function(e) { + return dm(this, e, !1); + }, o.Je = function() { + return NNn(this); + }, o.Ke = function(e) { + return Kk(this, e, !1); + }, o.Zc = function(e, t) { + return FOn(this, e, t); + }, o.zc = function(e, t) { + return gFn(this, e, t); + }, o.Bc = function(e) { + return uOn(this, e); + }, o.Le = function(e) { + return GJ(this, e); + }, o.gc = function() { + return this.c; + }, o.ad = function(e, t) { + return BOn(this, e, t); + }, o.c = 0, w(le, "TreeMap", 553), b(554, 1, Ii, yDn, P$), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return oAn(this); + }, o.Ob = function() { + return DD(this.a); + }, o.Qb = function() { + dSn(this); + }, w(le, "TreeMap/EntryIterator", 554), b(1142, 629, Du, ZTn), o.$b = function() { + $jn(this.a); + }, w(le, "TreeMap/EntrySet", 1142), b(447, 397, { 494: 1, 397: 1, 44: 1, 447: 1 }, r$), o.b = !1; + var lNe = w(le, "TreeMap/Node", 447); + b(630, 1, {}, DO), o.Ib = function() { + return "State: mv=" + this.c + " value=" + this.d + " done=" + this.a + " found=" + this.b; + }, o.a = !1, o.b = !1, o.c = !1, w(le, "TreeMap/State", 630), b(631, 2090, wtn, rF), o.De = function() { + return new P$(this.c, this.f, this.b, this.a, this.e, this.d); + }, o.vc = function() { + return new ZO(this); + }, o.Ee = function(e) { + return WC(this, dm(this.c, e, !0)); + }, o.Fe = function(e) { + return WC(this, TFn(this.c, e)); + }, o.Ge = function() { + var e; + return this.f.Te() ? this.a ? e = dm(this.c, this.b, !0) : e = dm(this.c, this.b, !1) : e = eQ(this.c), e && vM(this, e.d) ? e : null; + }, o.He = function(e) { + return WC(this, Kk(this.c, e, !0)); + }, o.Ie = function(e) { + return WC(this, dm(this.c, e, !1)); + }, o.Je = function() { + var e; + return this.f.Ue() ? this.d ? e = Kk(this.c, this.e, !0) : e = Kk(this.c, this.e, !1) : e = NNn(this.c), e && vM(this, e.d) ? e : null; + }, o.Ke = function(e) { + return WC(this, Kk(this.c, e, !1)); + }, o.Zc = function(e, t) { + if (this.f.Ue() && this.c.a.Ne(e, this.e) > 0) + throw M(new Gn(Ttn + e + " greater than " + this.e)); + return this.f.Te() ? cOn(this.c, this.b, this.a, e, t) : FOn(this.c, e, t); + }, o.zc = function(e, t) { + if (!qx(this.c, this.f, e, this.b, this.a, this.e, this.d)) + throw M(new Gn(e + " outside the range " + this.b + " to " + this.e)); + return gFn(this.c, e, t); + }, o.Bc = function(e) { + var t; + return t = e, qx(this.c, this.f, t, this.b, this.a, this.e, this.d) ? uOn(this.c, t) : null; + }, o.Le = function(e) { + return vM(this, e.ld()) && GJ(this.c, e); + }, o.gc = function() { + var e, t, i; + if (this.f.Te() ? this.a ? t = dm(this.c, this.b, !0) : t = dm(this.c, this.b, !1) : t = eQ(this.c), !(t && vM(this, t.d) && t)) + return 0; + for (e = 0, i = new P$(this.c, this.f, this.b, this.a, this.e, this.d); DD(i.a); i.b = u(VW(i.a), 44)) + ++e; + return e; + }, o.ad = function(e, t) { + if (this.f.Te() && this.c.a.Ne(e, this.b) < 0) + throw M(new Gn(Ttn + e + Wzn + this.b)); + return this.f.Ue() ? cOn(this.c, e, t, this.e, this.d) : BOn(this.c, e, t); + }, o.a = !1, o.d = !1, w(le, "TreeMap/SubMap", 631), b(304, 22, NB, uC), o.Te = function() { + return !1; + }, o.Ue = function() { + return !1; + }; + var e_, t_, i_, r_, lP = we(le, "TreeMap/SubMapType", 304, ke, Upe, nde); + b(1143, 304, NB, lTn), o.Ue = function() { + return !0; + }, we(le, "TreeMap/SubMapType/1", 1143, lP, null, null), b(1144, 304, NB, kTn), o.Te = function() { + return !0; + }, o.Ue = function() { + return !0; + }, we(le, "TreeMap/SubMapType/2", 1144, lP, null, null), b(1145, 304, NB, hTn), o.Te = function() { + return !0; + }, we(le, "TreeMap/SubMapType/3", 1145, lP, null, null); + var IQn; + b(157, Rf, { 3: 1, 20: 1, 31: 1, 16: 1, 277: 1, 21: 1, 87: 1, 157: 1 }, GG, Gl, Q3), o.Nc = function() { + return new cC(this); + }, o.Fc = function(e) { + return R7(this, e); + }, o.$b = function() { + this.a.$b(); + }, o.Hc = function(e) { + return this.a._b(e); + }, o.Kc = function() { + return this.a.ec().Kc(); + }, o.Mc = function(e) { + return EL(this, e); + }, o.gc = function() { + return this.a.gc(); + }; + var aNe = w(le, "TreeSet", 157); + b(1082, 1, {}, a9n), o.Ve = function(e, t) { + return pae(this.a, e, t); + }, w($B, "BinaryOperator/lambda$0$Type", 1082), b(1083, 1, {}, d9n), o.Ve = function(e, t) { + return mae(this.a, e, t); + }, w($B, "BinaryOperator/lambda$1$Type", 1083), b(952, 1, {}, B0n), o.Kb = function(e) { + return e; + }, w($B, "Function/lambda$0$Type", 952), b(395, 1, De, Y3), o.Mb = function(e) { + return !this.a.Mb(e); + }, w($B, "Predicate/lambda$2$Type", 395), b(581, 1, { 581: 1 }); + var OQn = w(Y5, "Handler", 581); + b(2107, 1, ky), o.xe = function() { + return "DUMMY"; + }, o.Ib = function() { + return this.xe(); + }; + var $un; + w(Y5, "Level", 2107), b(1706, 2107, ky, R0n), o.xe = function() { + return "INFO"; + }, w(Y5, "Level/LevelInfo", 1706), b(1843, 1, {}, Ryn); + var c_; + w(Y5, "LogManager", 1843), b(1896, 1, ky, aSn), o.b = null, w(Y5, "LogRecord", 1896), b(525, 1, { 525: 1 }, VN), o.e = !1; + var DQn = !1, LQn = !1, qf = !1, NQn = !1, $Qn = !1; + w(Y5, "Logger", 525), b(835, 581, { 581: 1 }, BU), w(Y5, "SimpleConsoleLogHandler", 835), b(108, 22, { 3: 1, 34: 1, 22: 1, 108: 1 }, $D); + var xun, Yr, Sw, $r = we(di, "Collector/Characteristics", 108, ke, O2e, ede), xQn; + b(758, 1, {}, AW), w(di, "CollectorImpl", 758), b(1074, 1, {}, K0n), o.Ve = function(e, t) { + return l5e(u(e, 213), u(t, 213)); + }, w(di, "Collectors/10methodref$merge$Type", 1074), b(1075, 1, {}, _0n), o.Kb = function(e) { + return bDn(u(e, 213)); + }, w(di, "Collectors/11methodref$toString$Type", 1075), b(1076, 1, {}, b9n), o.Kb = function(e) { + return _n(), !!yX(e); + }, w(di, "Collectors/12methodref$test$Type", 1076), b(144, 1, {}, ku), o.Yd = function(e, t) { + u(e, 16).Fc(t); + }, w(di, "Collectors/20methodref$add$Type", 144), b(146, 1, {}, yu), o.Xe = function() { + return new Z(); + }, w(di, "Collectors/21methodref$ctor$Type", 146), b(359, 1, {}, Y2), o.Xe = function() { + return new ei(); + }, w(di, "Collectors/23methodref$ctor$Type", 359), b(360, 1, {}, Z2), o.Yd = function(e, t) { + hi(u(e, 49), t); + }, w(di, "Collectors/24methodref$add$Type", 360), b(1069, 1, {}, H0n), o.Ve = function(e, t) { + return cCn(u(e, 15), u(t, 16)); + }, w(di, "Collectors/4methodref$addAll$Type", 1069), b(1073, 1, {}, q0n), o.Yd = function(e, t) { + pl(u(e, 213), u(t, 484)); + }, w(di, "Collectors/9methodref$add$Type", 1073), b(1072, 1, {}, PSn), o.Xe = function() { + return new hd(this.a, this.b, this.c); + }, w(di, "Collectors/lambda$15$Type", 1072), b(1077, 1, {}, U0n), o.Xe = function() { + var e; + return e = new Yl(), f1(e, (_n(), !1), new Z()), f1(e, !0, new Z()), e; + }, w(di, "Collectors/lambda$22$Type", 1077), b(1078, 1, {}, w9n), o.Xe = function() { + return A(T(yi, 1), Bn, 1, 5, [this.a]); + }, w(di, "Collectors/lambda$25$Type", 1078), b(1079, 1, {}, g9n), o.Yd = function(e, t) { + Fbe(this.a, ud(e)); + }, w(di, "Collectors/lambda$26$Type", 1079), b(1080, 1, {}, p9n), o.Ve = function(e, t) { + return lwe(this.a, ud(e), ud(t)); + }, w(di, "Collectors/lambda$27$Type", 1080), b(1081, 1, {}, G0n), o.Kb = function(e) { + return ud(e)[0]; + }, w(di, "Collectors/lambda$28$Type", 1081), b(728, 1, {}, RU), o.Ve = function(e, t) { + return oW(e, t); + }, w(di, "Collectors/lambda$4$Type", 728), b(145, 1, {}, ju), o.Ve = function(e, t) { + return zhe(u(e, 16), u(t, 16)); + }, w(di, "Collectors/lambda$42$Type", 145), b(361, 1, {}, np), o.Ve = function(e, t) { + return Xhe(u(e, 49), u(t, 49)); + }, w(di, "Collectors/lambda$50$Type", 361), b(362, 1, {}, ep), o.Kb = function(e) { + return u(e, 49); + }, w(di, "Collectors/lambda$51$Type", 362), b(1068, 1, {}, m9n), o.Yd = function(e, t) { + p6e(this.a, u(e, 85), t); + }, w(di, "Collectors/lambda$7$Type", 1068), b(1070, 1, {}, z0n), o.Ve = function(e, t) { + return Xve(u(e, 85), u(t, 85), new H0n()); + }, w(di, "Collectors/lambda$8$Type", 1070), b(1071, 1, {}, v9n), o.Kb = function(e) { + return U5e(this.a, u(e, 85)); + }, w(di, "Collectors/lambda$9$Type", 1071), b(550, 1, {}), o.$e = function() { + X6(this); + }, o.d = !1, w(di, "TerminatableStream", 550), b(827, 550, Atn, uV), o.$e = function() { + X6(this); + }, w(di, "DoubleStreamImpl", 827), b(1847, 736, Po, ISn), o.Re = function(e) { + return X9e(this, u(e, 189)); + }, o.a = null, w(di, "DoubleStreamImpl/2", 1847), b(1848, 1, Py, k9n), o.Pe = function(e) { + Kle(this.a, e); + }, w(di, "DoubleStreamImpl/2/lambda$0$Type", 1848), b(1845, 1, Py, y9n), o.Pe = function(e) { + Rle(this.a, e); + }, w(di, "DoubleStreamImpl/lambda$0$Type", 1845), b(1846, 1, Py, j9n), o.Pe = function(e) { + IBn(this.a, e); + }, w(di, "DoubleStreamImpl/lambda$2$Type", 1846), b(1397, 735, Po, vLn), o.Re = function(e) { + return Lpe(this, u(e, 202)); + }, o.a = 0, o.b = 0, o.c = 0, w(di, "IntStream/5", 1397), b(806, 550, Atn, oV), o.$e = function() { + X6(this); + }, o._e = function() { + return X1(this), this.a; + }, w(di, "IntStreamImpl", 806), b(807, 550, Atn, Dz), o.$e = function() { + X6(this); + }, o._e = function() { + return X1(this), HX(), PQn; + }, w(di, "IntStreamImpl/Empty", 807), b(1687, 1, jy, E9n), o.Dd = function(e) { + Kxn(this.a, e); + }, w(di, "IntStreamImpl/lambda$4$Type", 1687); + var dNe = Nt(di, "Stream"); + b(26, 550, { 533: 1, 687: 1, 848: 1 }, Tn), o.$e = function() { + X6(this); + }; + var v3; + w(di, "StreamImpl", 26), b(1102, 500, Po, rSn), o.Bd = function(e) { + for (; x4e(this); ) { + if (this.a.Bd(e)) + return !0; + X6(this.b), this.b = null, this.a = null; + } + return !1; + }, w(di, "StreamImpl/1", 1102), b(1103, 1, re, C9n), o.Cd = function(e) { + fbe(this.a, u(e, 848)); + }, w(di, "StreamImpl/1/lambda$0$Type", 1103), b(1104, 1, De, M9n), o.Mb = function(e) { + return hi(this.a, e); + }, w(di, "StreamImpl/1methodref$add$Type", 1104), b(1105, 500, Po, BIn), o.Bd = function(e) { + var t; + return this.a || (t = new Z(), this.b.a.Nb(new T9n(t)), Dn(), Zt(t, this.c), this.a = new In(t, 16)), y$n(this.a, e); + }, o.a = null, w(di, "StreamImpl/5", 1105), b(1106, 1, re, T9n), o.Cd = function(e) { + nn(this.a, e); + }, w(di, "StreamImpl/5/2methodref$add$Type", 1106), b(737, 500, Po, tQ), o.Bd = function(e) { + for (this.b = !1; !this.b && this.c.Bd(new jCn(this, e)); ) + ; + return this.b; + }, o.b = !1, w(di, "StreamImpl/FilterSpliterator", 737), b(1096, 1, re, jCn), o.Cd = function(e) { + cwe(this.a, this.b, e); + }, w(di, "StreamImpl/FilterSpliterator/lambda$0$Type", 1096), b(1091, 736, Po, ILn), o.Re = function(e) { + return Rae(this, u(e, 189)); + }, w(di, "StreamImpl/MapToDoubleSpliterator", 1091), b(1095, 1, re, ECn), o.Cd = function(e) { + fle(this.a, this.b, e); + }, w(di, "StreamImpl/MapToDoubleSpliterator/lambda$0$Type", 1095), b(1090, 735, Po, OLn), o.Re = function(e) { + return Kae(this, u(e, 202)); + }, w(di, "StreamImpl/MapToIntSpliterator", 1090), b(1094, 1, re, CCn), o.Cd = function(e) { + hle(this.a, this.b, e); + }, w(di, "StreamImpl/MapToIntSpliterator/lambda$0$Type", 1094), b(734, 500, Po, _J), o.Bd = function(e) { + return eSn(this, e); + }, w(di, "StreamImpl/MapToObjSpliterator", 734), b(1093, 1, re, MCn), o.Cd = function(e) { + lle(this.a, this.b, e); + }, w(di, "StreamImpl/MapToObjSpliterator/lambda$0$Type", 1093), b(1092, 500, Po, uxn), o.Bd = function(e) { + for (; LD(this.b, 0); ) { + if (!this.a.Bd(new X0n())) + return !1; + this.b = bs(this.b, 1); + } + return this.a.Bd(e); + }, o.b = 0, w(di, "StreamImpl/SkipSpliterator", 1092), b(1097, 1, re, X0n), o.Cd = function(e) { + }, w(di, "StreamImpl/SkipSpliterator/lambda$0$Type", 1097), b(626, 1, re, LO), o.Cd = function(e) { + t9n(this, e); + }, w(di, "StreamImpl/ValueConsumer", 626), b(1098, 1, re, V0n), o.Cd = function(e) { + Wa(); + }, w(di, "StreamImpl/lambda$0$Type", 1098), b(1099, 1, re, W0n), o.Cd = function(e) { + Wa(); + }, w(di, "StreamImpl/lambda$1$Type", 1099), b(1100, 1, {}, A9n), o.Ve = function(e, t) { + return mde(this.a, e, t); + }, w(di, "StreamImpl/lambda$4$Type", 1100), b(1101, 1, re, TCn), o.Cd = function(e) { + Cae(this.b, this.a, e); + }, w(di, "StreamImpl/lambda$5$Type", 1101), b(1107, 1, re, S9n), o.Cd = function(e) { + $ve(this.a, u(e, 380)); + }, w(di, "TerminatableStream/lambda$0$Type", 1107), b(2142, 1, {}), b(2014, 1, {}, J0n), w("javaemul.internal", "ConsoleLogger", 2014); + var bNe = 0; + b(2134, 1, {}), b(1830, 1, re, Q0n), o.Cd = function(e) { + u(e, 317); + }, w(_m, "BowyerWatsonTriangulation/lambda$0$Type", 1830), b(1831, 1, re, P9n), o.Cd = function(e) { + Ri(this.a, u(e, 317).e); + }, w(_m, "BowyerWatsonTriangulation/lambda$1$Type", 1831), b(1832, 1, re, Y0n), o.Cd = function(e) { + u(e, 177); + }, w(_m, "BowyerWatsonTriangulation/lambda$2$Type", 1832), b(1827, 1, Ne, I9n), o.Ne = function(e, t) { + return m3e(this.a, u(e, 177), u(t, 177)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(_m, "NaiveMinST/lambda$0$Type", 1827), b(449, 1, {}, Xv), w(_m, "NodeMicroLayout", 449), b(177, 1, { 177: 1 }, bp), o.Fb = function(e) { + var t; + return D(e, 177) ? (t = u(e, 177), mc(this.a, t.a) && mc(this.b, t.b) || mc(this.a, t.b) && mc(this.b, t.a)) : !1; + }, o.Hb = function() { + return yg(this.a) + yg(this.b); + }; + var wNe = w(_m, "TEdge", 177); + b(317, 1, { 317: 1 }, _en), o.Fb = function(e) { + var t; + return D(e, 317) ? (t = u(e, 317), tT(this, t.a) && tT(this, t.b) && tT(this, t.c)) : !1; + }, o.Hb = function() { + return yg(this.a) + yg(this.b) + yg(this.c); + }, w(_m, "TTriangle", 317), b(225, 1, { 225: 1 }, LC), w(_m, "Tree", 225), b(1218, 1, {}, EOn), w(Yzn, "Scanline", 1218); + var FQn = Nt(Yzn, Zzn); + b(1758, 1, {}, m$n), w(Gh, "CGraph", 1758), b(316, 1, { 316: 1 }, TOn), o.b = 0, o.c = 0, o.d = 0, o.g = 0, o.i = 0, o.k = ai, w(Gh, "CGroup", 316), b(830, 1, {}, VG), w(Gh, "CGroup/CGroupBuilder", 830), b(60, 1, { 60: 1 }, BAn), o.Ib = function() { + var e; + return this.j ? Oe(this.j.Kb(this)) : (ll(aP), aP.o + "@" + (e = a0(this) >>> 0, e.toString(16))); + }, o.f = 0, o.i = ai; + var aP = w(Gh, "CNode", 60); + b(829, 1, {}, WG), w(Gh, "CNode/CNodeBuilder", 829); + var BQn; + b(1590, 1, {}, Z0n), o.ff = function(e, t) { + return 0; + }, o.gf = function(e, t) { + return 0; + }, w(Gh, eXn, 1590), b(1853, 1, {}, nbn), o.cf = function(e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j; + for (a = St, r = new C(e.a.b); r.a < r.c.c.length; ) + t = u(E(r), 60), a = y.Math.min(a, t.a.j.d.c + t.b.a); + for (m = new Ct(), f = new C(e.a.a); f.a < f.c.c.length; ) + s = u(E(f), 316), s.k = a, s.g == 0 && xt(m, s, m.c.b, m.c); + for (; m.b != 0; ) { + for (s = u(m.b == 0 ? null : (oe(m.b != 0), Xo(m, m.a.a)), 316), c = s.j.d.c, p = s.a.a.ec().Kc(); p.Ob(); ) + d = u(p.Pb(), 60), j = s.k + d.b.a, !J6e(e, s, e.d) || d.d.c < j ? d.i = j : d.i = d.d.c; + for (c -= s.j.i, s.b += c, e.d == (ui(), Xr) || e.d == Vf ? s.c += c : s.c -= c, g = s.a.a.ec().Kc(); g.Ob(); ) + for (d = u(g.Pb(), 60), l = d.c.Kc(); l.Ob(); ) + h = u(l.Pb(), 60), hl(e.d) ? k = e.g.ff(d, h) : k = e.g.gf(d, h), h.a.k = y.Math.max(h.a.k, d.i + d.d.b + k - h.b.a), zIn(e, h, e.d) && (h.a.k = y.Math.max(h.a.k, h.d.c - h.b.a)), --h.a.g, h.a.g == 0 && Fe(m, h.a); + } + for (i = new C(e.a.b); i.a < i.c.c.length; ) + t = u(E(i), 60), t.d.c = t.i; + }, w(Gh, "LongestPathCompaction", 1853), b(1756, 1, {}, uHn), o.e = !1; + var RQn, KQn, _Qn, u_ = w(Gh, rXn, 1756); + b(1757, 1, re, O9n), o.Cd = function(e) { + Qve(this.a, u(e, 42)); + }, w(Gh, cXn, 1757), b(1854, 1, {}, ebn), o.df = function(e) { + var t, i, r, c, s, f, h; + for (i = new C(e.a.b); i.a < i.c.c.length; ) + t = u(E(i), 60), t.c.$b(); + for (c = new C(e.a.b); c.a < c.c.c.length; ) + for (r = u(E(c), 60), f = new C(e.a.b); f.a < f.c.c.length; ) + s = u(E(f), 60), r != s && (r.a && r.a == s.a || (hl(e.d) ? h = e.g.gf(r, s) : h = e.g.ff(r, s), (s.d.c > r.d.c || r.d.c == s.d.c && r.d.b < s.d.b) && x8e(s.d.d + s.d.a + h, r.d.d) && eZ(s.d.d, r.d.d + r.d.a + h) && r.c.Fc(s))); + }, w(Gh, "QuadraticConstraintCalculation", 1854), b(529, 1, { 529: 1 }, rD), o.a = !1, o.b = !1, o.c = !1, o.d = !1, w(Gh, uXn, 529), b(817, 1, {}, aW), o.df = function(e) { + this.c = e, Zk(this, new rbn()); + }, w(Gh, oXn, 817), b(1784, 1, { 693: 1 }, VIn), o.bf = function(e) { + Qje(this, u(e, 473)); + }, w(Gh, sXn, 1784), b(1785, 1, Ne, tbn), o.Ne = function(e, t) { + return sge(u(e, 60), u(t, 60)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Gh, fXn, 1785), b(473, 1, { 473: 1 }, Hz), o.a = !1, w(Gh, hXn, 473), b(1786, 1, Ne, ibn), o.Ne = function(e, t) { + return ske(u(e, 473), u(t, 473)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Gh, lXn, 1786), b(1787, 1, gh, rbn), o.Lb = function(e) { + return u(e, 60), !0; + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return u(e, 60), !0; + }, w(Gh, "ScanlineConstraintCalculator/lambda$1$Type", 1787), b(436, 22, { 3: 1, 34: 1, 22: 1, 436: 1 }, qz); + var Fun, o_, Bun = we(RB, "HighLevelSortingCriterion", 436, ke, Fge, tde), HQn; + b(435, 22, { 3: 1, 34: 1, 22: 1, 435: 1 }, Uz); + var Run, s_, Kun = we(RB, "LowLevelSortingCriterion", 435, ke, Bge, ide), qQn, a2 = Nt(oc, "ILayoutMetaDataProvider"); + b(864, 1, ms, O5n), o.hf = function(e) { + vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Otn), KB), "Polyomino Traversal Strategy"), "Traversal strategy for trying different candidate positions for polyominoes."), Xun), (a1(), Pt)), ton), jn((pf(), xn))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Dtn), KB), "Polyomino Secondary Sorting Criterion"), "Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion."), Gun), Pt), Kun), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Ltn), KB), "Polyomino Primary Sorting Criterion"), "Possible primary sorting criteria for the processing order of polyominoes."), qun), Pt), Bun), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Ntn), KB), "Fill Polyominoes"), "Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area."), (_n(), !0)), ji), zt), jn(xn)))); + }; + var _un, Hun, qun, Uun, Gun, zun, Xun; + w(RB, "PolyominoOptions", 864), b(257, 22, { 3: 1, 34: 1, 22: 1, 257: 1 }, ag); + var Vun, Wun, Jun, Qun, Yun, Zun, f_, non, eon, ton = we(RB, "TraversalStrategy", 257, ke, $me, rde), UQn; + b(218, 1, { 218: 1 }, cbn), o.Ib = function() { + return "NEdge[id=" + this.b + " w=" + this.g + " d=" + this.a + "]"; + }, o.a = 1, o.b = 0, o.c = 0, o.f = !1, o.g = 0; + var GQn = w(Z5, "NEdge", 218); + b(182, 1, {}, hs), w(Z5, "NEdge/NEdgeBuilder", 182), b(662, 1, {}, oD), w(Z5, "NGraph", 662), b(125, 1, { 125: 1 }, NLn), o.c = -1, o.d = 0, o.e = 0, o.i = -1, o.j = !1; + var ion = w(Z5, "NNode", 125); + b(808, 1, Xzn, zG), o.Jc = function(e) { + qi(this, e); + }, o.Lc = function() { + return new Tn(null, new In(this, 16)); + }, o.jd = function(e) { + od(this, e); + }, o.Nc = function() { + return new In(this, 16); + }, o.Oc = function() { + return new Tn(null, new In(this, 16)); + }, o.bd = function(e, t) { + ++this.b, w0(this.a, e, t); + }, o.Fc = function(e) { + return RC(this, e); + }, o.cd = function(e, t) { + return ++this.b, dY(this.a, e, t); + }, o.Gc = function(e) { + return ++this.b, li(this.a, e); + }, o.$b = function() { + ++this.b, Ib(this.a.c, 0); + }, o.Hc = function(e) { + return qr(this.a, e, 0) != -1; + }, o.Ic = function(e) { + return Ek(this.a, e); + }, o.Xb = function(e) { + return sn(this.a, e); + }, o.dd = function(e) { + return qr(this.a, e, 0); + }, o.dc = function() { + return this.a.c.length == 0; + }, o.Kc = function() { + return Kp(new C(this.a)); + }, o.ed = function() { + throw M(new Pe()); + }, o.fd = function(e) { + throw M(new Pe()); + }, o.gd = function(e) { + return ++this.b, Zl(this.a, e); + }, o.Mc = function(e) { + return VX(this, e); + }, o.hd = function(e, t) { + return ++this.b, Go(this.a, e, t); + }, o.gc = function() { + return this.a.c.length; + }, o.kd = function(e, t) { + return new Ql(this.a, e, t); + }, o.Pc = function() { + return ZC(this.a.c); + }, o.Qc = function(e) { + return xf(this.a, e); + }, o.b = 0, w(Z5, "NNode/ChangeAwareArrayList", 808), b(275, 1, {}, Xa), w(Z5, "NNode/NNodeBuilder", 275), b(1695, 1, {}, ubn), o.a = !1, o.f = et, o.j = 0, w(Z5, "NetworkSimplex", 1695), b(1314, 1, re, D9n), o.Cd = function(e) { + HGn(this.a, u(e, 695), !0, !1); + }, w(aXn, "NodeLabelAndSizeCalculator/lambda$0$Type", 1314), b(565, 1, {}, IE), o.b = !0, o.c = !0, o.d = !0, o.e = !0, w(aXn, "NodeMarginCalculator", 565), b(217, 1, { 217: 1 }), o.j = !1, o.k = !1; + var zQn = w(yd, "Cell", 217); + b(127, 217, { 127: 1, 217: 1 }, FAn), o.jf = function() { + return nM(this); + }, o.kf = function() { + var e; + return e = this.n, this.a.a + e.b + e.c; + }, w(yd, "AtomicCell", 127), b(237, 22, { 3: 1, 34: 1, 22: 1, 237: 1 }, xD); + var bc, Jc, wc, Pw = we(yd, "ContainerArea", 237, ke, N2e, cde), XQn; + b(336, 217, dXn), w(yd, "ContainerCell", 336), b(1538, 336, dXn, ABn), o.jf = function() { + var e; + return e = 0, this.e ? this.b ? e = this.b.b : this.a[1][1] && (e = this.a[1][1].jf()) : e = RY(this, qRn(this, !0)), e > 0 ? e + this.n.d + this.n.a : 0; + }, o.kf = function() { + var e, t, i, r, c; + if (c = 0, this.e) + this.b ? c = this.b.a : this.a[1][1] && (c = this.a[1][1].kf()); + else if (this.g) + c = RY(this, Gx(this, null, !0)); + else + for (t = (wf(), A(T(Pw, 1), G, 237, 0, [bc, Jc, wc])), i = 0, r = t.length; i < r; ++i) + e = t[i], c = y.Math.max(c, RY(this, Gx(this, e, !0))); + return c > 0 ? c + this.n.b + this.n.c : 0; + }, o.lf = function() { + var e, t, i, r, c; + if (this.g) + for (e = Gx(this, null, !1), i = (wf(), A(T(Pw, 1), G, 237, 0, [bc, Jc, wc])), r = 0, c = i.length; r < c; ++r) + t = i[r], jqn(this, t, e); + else + for (i = (wf(), A(T(Pw, 1), G, 237, 0, [bc, Jc, wc])), r = 0, c = i.length; r < c; ++r) + t = i[r], e = Gx(this, t, !1), jqn(this, t, e); + }, o.mf = function() { + var e, t, i, r; + t = this.i, e = this.n, r = qRn(this, !1), FJ(this, (wf(), bc), t.d + e.d, r), FJ(this, wc, t.d + t.a - e.a - r[2], r), i = t.a - e.d - e.a, r[0] > 0 && (r[0] += this.d, i -= r[0]), r[2] > 0 && (r[2] += this.d, i -= r[2]), this.c.a = y.Math.max(0, i), this.c.d = t.d + e.d + (this.c.a - i) / 2, r[1] = y.Math.max(r[1], i), FJ(this, Jc, t.d + e.d + r[0] - (r[1] - i) / 2, r); + }, o.b = null, o.d = 0, o.e = !1, o.f = !1, o.g = !1; + var h_ = 0, dP = 0; + w(yd, "GridContainerCell", 1538), b(471, 22, { 3: 1, 34: 1, 22: 1, 471: 1 }, FD); + var pa, Ch, zs, VQn = we(yd, "HorizontalLabelAlignment", 471, ke, L2e, ude), WQn; + b(314, 217, { 217: 1, 314: 1 }, fOn, k$n, tOn), o.jf = function() { + return qSn(this); + }, o.kf = function() { + return eW(this); + }, o.a = 0, o.c = !1; + var gNe = w(yd, "LabelCell", 314); + b(252, 336, { 217: 1, 336: 1, 252: 1 }, E5), o.jf = function() { + return ey(this); + }, o.kf = function() { + return ty(this); + }, o.lf = function() { + LF(this); + }, o.mf = function() { + NF(this); + }, o.b = 0, o.c = 0, o.d = !1, w(yd, "StripContainerCell", 252), b(1691, 1, De, obn), o.Mb = function(e) { + return uhe(u(e, 217)); + }, w(yd, "StripContainerCell/lambda$0$Type", 1691), b(1692, 1, {}, sbn), o.Ye = function(e) { + return u(e, 217).kf(); + }, w(yd, "StripContainerCell/lambda$1$Type", 1692), b(1693, 1, De, fbn), o.Mb = function(e) { + return ohe(u(e, 217)); + }, w(yd, "StripContainerCell/lambda$2$Type", 1693), b(1694, 1, {}, hbn), o.Ye = function(e) { + return u(e, 217).jf(); + }, w(yd, "StripContainerCell/lambda$3$Type", 1694), b(472, 22, { 3: 1, 34: 1, 22: 1, 472: 1 }, BD); + var Xs, ma, kf, JQn = we(yd, "VerticalLabelAlignment", 472, ke, D2e, ode), QQn; + b(800, 1, {}, itn), o.c = 0, o.d = 0, o.k = 0, o.s = 0, o.t = 0, o.v = !1, o.w = 0, o.D = !1, w(nS, "NodeContext", 800), b(1536, 1, Ne, lbn), o.Ne = function(e, t) { + return eTn(u(e, 64), u(t, 64)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(nS, "NodeContext/0methodref$comparePortSides$Type", 1536), b(1537, 1, Ne, abn), o.Ne = function(e, t) { + return xye(u(e, 117), u(t, 117)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(nS, "NodeContext/1methodref$comparePortContexts$Type", 1537), b(164, 22, { 3: 1, 34: 1, 22: 1, 164: 1 }, Vo); + var YQn, ZQn, nYn, eYn, tYn, iYn, rYn, cYn, uYn, oYn, sYn, fYn, hYn, lYn, aYn, dYn, bYn, wYn, gYn, pYn, mYn, l_, vYn = we(nS, "NodeLabelLocation", 164, ke, jx, sde), kYn; + b(117, 1, { 117: 1 }, sHn), o.a = !1, w(nS, "PortContext", 117), b(1541, 1, re, dbn), o.Cd = function(e) { + kEn(u(e, 314)); + }, w(Oy, bXn, 1541), b(1542, 1, De, bbn), o.Mb = function(e) { + return !!u(e, 117).c; + }, w(Oy, wXn, 1542), b(1543, 1, re, wbn), o.Cd = function(e) { + kEn(u(e, 117).c); + }, w(Oy, "LabelPlacer/lambda$2$Type", 1543); + var ron; + b(1540, 1, re, gbn), o.Cd = function(e) { + Rb(), Rfe(u(e, 117)); + }, w(Oy, "NodeLabelAndSizeUtilities/lambda$0$Type", 1540), b(801, 1, re, NV), o.Cd = function(e) { + Zhe(this.b, this.c, this.a, u(e, 187)); + }, o.a = !1, o.c = !1, w(Oy, "NodeLabelCellCreator/lambda$0$Type", 801), b(1539, 1, re, L9n), o.Cd = function(e) { + Hfe(this.a, u(e, 187)); + }, w(Oy, "PortContextCreator/lambda$0$Type", 1539); + var bP; + b(1902, 1, {}, pbn), w(qm, "GreedyRectangleStripOverlapRemover", 1902), b(1903, 1, Ne, mbn), o.Ne = function(e, t) { + return O1e(u(e, 226), u(t, 226)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(qm, "GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type", 1903), b(1849, 1, {}, qyn), o.a = 5, o.e = 0, w(qm, "RectangleStripOverlapRemover", 1849), b(1850, 1, Ne, vbn), o.Ne = function(e, t) { + return D1e(u(e, 226), u(t, 226)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(qm, "RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type", 1850), b(1852, 1, Ne, kbn), o.Ne = function(e, t) { + return ywe(u(e, 226), u(t, 226)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(qm, "RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type", 1852), b(417, 22, { 3: 1, 34: 1, 22: 1, 417: 1 }, sC); + var ij, a_, d_, rj, yYn = we(qm, "RectangleStripOverlapRemover/OverlapRemovalDirection", 417, ke, Xpe, fde), jYn; + b(226, 1, { 226: 1 }, ZL), w(qm, "RectangleStripOverlapRemover/RectangleNode", 226), b(1851, 1, re, N9n), o.Cd = function(e) { + s7e(this.a, u(e, 226)); + }, w(qm, "RectangleStripOverlapRemover/lambda$1$Type", 1851), b(1323, 1, Ne, ybn), o.Ne = function(e, t) { + return SIe(u(e, 176), u(t, 176)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(ph, "PolyominoCompactor/CornerCasesGreaterThanRestComparator", 1323), b(1326, 1, {}, jbn), o.Kb = function(e) { + return u(e, 334).a; + }, w(ph, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type", 1326), b(1327, 1, De, Ebn), o.Mb = function(e) { + return u(e, 332).a; + }, w(ph, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type", 1327), b(1328, 1, De, Cbn), o.Mb = function(e) { + return u(e, 332).a; + }, w(ph, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type", 1328), b(1321, 1, Ne, Mbn), o.Ne = function(e, t) { + return rSe(u(e, 176), u(t, 176)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(ph, "PolyominoCompactor/MinNumOfExtensionDirectionsComparator", 1321), b(1324, 1, {}, Tbn), o.Kb = function(e) { + return u(e, 334).a; + }, w(ph, "PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type", 1324), b(781, 1, Ne, KU), o.Ne = function(e, t) { + return Kve(u(e, 176), u(t, 176)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(ph, "PolyominoCompactor/MinNumOfExtensionsComparator", 781), b(1319, 1, Ne, Abn), o.Ne = function(e, t) { + return Vme(u(e, 330), u(t, 330)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(ph, "PolyominoCompactor/MinPerimeterComparator", 1319), b(1320, 1, Ne, Sbn), o.Ne = function(e, t) { + return D9e(u(e, 330), u(t, 330)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(ph, "PolyominoCompactor/MinPerimeterComparatorWithShape", 1320), b(1322, 1, Ne, Pbn), o.Ne = function(e, t) { + return MSe(u(e, 176), u(t, 176)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(ph, "PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator", 1322), b(1325, 1, {}, Ibn), o.Kb = function(e) { + return u(e, 334).a; + }, w(ph, "PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type", 1325), b(782, 1, {}, Gz), o.Ve = function(e, t) { + return Rpe(this, u(e, 42), u(t, 176)); + }, w(ph, "SuccessorCombination", 782), b(649, 1, {}, NO), o.Ve = function(e, t) { + var i; + return eCe((i = u(e, 42), u(t, 176), i)); + }, w(ph, "SuccessorJitter", 649), b(648, 1, {}, $O), o.Ve = function(e, t) { + var i; + return _Te((i = u(e, 42), u(t, 176), i)); + }, w(ph, "SuccessorLineByLine", 648), b(573, 1, {}, vE), o.Ve = function(e, t) { + var i; + return eMe((i = u(e, 42), u(t, 176), i)); + }, w(ph, "SuccessorManhattan", 573), b(1344, 1, {}, Obn), o.Ve = function(e, t) { + var i; + return lTe((i = u(e, 42), u(t, 176), i)); + }, w(ph, "SuccessorMaxNormWindingInMathPosSense", 1344), b(409, 1, {}, Z3), o.Ve = function(e, t) { + return MW(this, e, t); + }, o.c = !1, o.d = !1, o.e = !1, o.f = !1, w(ph, "SuccessorQuadrantsGeneric", 409), b(1345, 1, {}, Dbn), o.Kb = function(e) { + return u(e, 334).a; + }, w(ph, "SuccessorQuadrantsGeneric/lambda$0$Type", 1345), b(332, 22, { 3: 1, 34: 1, 22: 1, 332: 1 }, fC), o.a = !1; + var cj, uj, oj, sj, EYn = we(tS, Btn, 332, ke, Gpe, hde), CYn; + b(1317, 1, {}), o.Ib = function() { + var e, t, i, r, c, s; + for (i = " ", e = Y(0), c = 0; c < this.o; c++) + i += "" + e.a, e = Y(MAn(e.a)); + for (i += ` +`, e = Y(0), s = 0; s < this.p; s++) { + for (i += "" + e.a, e = Y(MAn(e.a)), r = 0; r < this.o; r++) + t = C$(this, r, s), Cc(t, 0) == 0 ? i += "_" : Cc(t, 1) == 0 ? i += "X" : i += "0"; + i += ` +`; + } + return qo(i, 0, i.length - 1); + }, o.o = 0, o.p = 0, w(tS, "TwoBitGrid", 1317), b(330, 1317, { 330: 1 }, VY), o.j = 0, o.k = 0, w(tS, "PlanarGrid", 330), b(176, 330, { 330: 1, 176: 1 }), o.g = 0, o.i = 0, w(tS, "Polyomino", 176); + var pNe = Nt(Dy, pXn); + b(137, 1, Rtn, xO), o.qf = function(e, t) { + return Ak(this, e, t); + }, o.nf = function() { + return oPn(this); + }, o.of = function(e) { + return v(this, e); + }, o.pf = function(e) { + return kt(this, e); + }, w(Dy, "MapPropertyHolder", 137), b(1318, 137, Rtn, hqn), w(tS, "Polyominoes", 1318); + var MYn = !1, I8, con; + b(1828, 1, re, Lbn), o.Cd = function(e) { + aGn(u(e, 225)); + }, w(h3, "DepthFirstCompaction/0methodref$compactTree$Type", 1828), b(825, 1, re, IG), o.Cd = function(e) { + qwe(this.a, u(e, 225)); + }, w(h3, "DepthFirstCompaction/lambda$1$Type", 825), b(1829, 1, re, gSn), o.Cd = function(e) { + z8e(this.a, this.b, this.c, u(e, 225)); + }, w(h3, "DepthFirstCompaction/lambda$2$Type", 1829); + var O8, uon; + b(68, 1, { 68: 1 }, jOn), w(h3, "Node", 68), b(1214, 1, {}, yTn), w(h3, "ScanlineOverlapCheck", 1214), b(1215, 1, { 693: 1 }, JIn), o.bf = function(e) { + yae(this, u(e, 451)); + }, w(h3, "ScanlineOverlapCheck/OverlapsScanlineHandler", 1215), b(1216, 1, Ne, Nbn), o.Ne = function(e, t) { + return P5e(u(e, 68), u(t, 68)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(h3, "ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type", 1216), b(451, 1, { 451: 1 }, zz), o.a = !1, w(h3, "ScanlineOverlapCheck/Timestamp", 451), b(1217, 1, Ne, $bn), o.Ne = function(e, t) { + return fke(u(e, 451), u(t, 451)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(h3, "ScanlineOverlapCheck/lambda$0$Type", 1217), b(557, 1, {}, kE), w(mXn, "SVGImage", 557), b(334, 1, { 334: 1 }, LV), o.Ib = function() { + return "(" + this.a + cr + this.b + cr + this.c + ")"; + }, w(mXn, "UniqueTriple", 334), b(205, 1, jd), w(e2, "AbstractLayoutProvider", 205), b(1114, 205, jd, xbn), o.rf = function(e, t) { + var i, r, c, s; + switch (t.Ug(vXn, 1), this.a = $(R(z(e, (C5(), aon)))), Df(e, w_) && (c = Oe(z(e, w_)), i = TF(G4(), c), i && (r = u(z7(i.f), 205), r.rf(e, t.eh(1)))), s = new HDn(this.a), this.b = rDe(s, e), u(z(e, (Q$(), son)), 489).g) { + case 0: + kCe(new Fbn(), this.b), ht(e, pP, v(this.b, pP)); + break; + default: + fl(); + } + vDe(s), ht(e, hon, this.b), t.Vg(); + }, o.a = 0, w(kXn, "DisCoLayoutProvider", 1114), b(1208, 1, {}, Fbn), o.c = !1, o.e = 0, o.f = 0, w(kXn, "DisCoPolyominoCompactor", 1208), b(567, 1, { 567: 1 }, cPn), o.b = !0, w(rS, "DCComponent", 567), b(406, 22, { 3: 1, 34: 1, 22: 1, 406: 1 }, hC), o.a = !1; + var wP, fj, gP, hj, TYn = we(rS, "DCDirection", 406, ke, zpe, lde), AYn; + b(272, 137, { 3: 1, 272: 1, 96: 1, 137: 1 }, bF), w(rS, "DCElement", 272), b(407, 1, { 407: 1 }, mZ), o.c = 0, w(rS, "DCExtension", 407), b(762, 137, Rtn, Vjn), w(rS, "DCGraph", 762), b(489, 22, { 3: 1, 34: 1, 22: 1, 489: 1 }, bAn); + var b_, oon = we(VB, Ktn, 489, ke, nge, ade), SYn; + b(865, 1, ms, D5n), o.hf = function(e) { + vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), _tn), yXn), "Connected Components Compaction Strategy"), "Strategy for packing different connected components in order to save space and enhance readability of a graph."), fon), (a1(), Pt)), oon), jn((pf(), xn))))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), Htn), yXn), "Connected Components Layout Algorithm"), "A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."), $2), fn), jn(xn)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), qtn), "debug"), "DCGraph"), "Access to the DCGraph is intended for the debug view,"), Xf), yi), jn(xn)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), Utn), "debug"), "List of Polyominoes"), "Access to the polyominoes is intended for the debug view,"), Xf), yi), jn(xn)))), QUn((new L5n(), e)); + }; + var PYn, son, fon, IYn, OYn; + w(VB, "DisCoMetaDataProvider", 865), b(1010, 1, ms, L5n), o.hf = function(e) { + QUn(e); + }; + var DYn, w_, LYn, hon, pP, g_, lon, NYn, $Yn, xYn, FYn, aon; + w(VB, "DisCoOptions", 1010), b(1011, 1, {}, Bbn), o.sf = function() { + var e; + return e = new xbn(), e; + }, o.tf = function(e) { + }, w(VB, "DisCoOptions/DiscoFactory", 1011), b(568, 176, { 330: 1, 176: 1, 568: 1 }, zHn), o.a = 0, o.b = 0, o.c = 0, o.d = 0, w("org.eclipse.elk.alg.disco.structures", "DCPolyomino", 568); + var p_, m_, mP; + b(1286, 1, De, Rbn), o.Mb = function(e) { + return yX(e); + }, w(t2, "ElkGraphComponentsProcessor/lambda$0$Type", 1286), b(1287, 1, {}, Kbn), o.Kb = function(e) { + return Lp(), Rh(u(e, 74)); + }, w(t2, "ElkGraphComponentsProcessor/lambda$1$Type", 1287), b(1288, 1, De, _bn), o.Mb = function(e) { + return vbe(u(e, 74)); + }, w(t2, "ElkGraphComponentsProcessor/lambda$2$Type", 1288), b(1289, 1, {}, Hbn), o.Kb = function(e) { + return Lp(), ra(u(e, 74)); + }, w(t2, "ElkGraphComponentsProcessor/lambda$3$Type", 1289), b(1290, 1, De, qbn), o.Mb = function(e) { + return kbe(u(e, 74)); + }, w(t2, "ElkGraphComponentsProcessor/lambda$4$Type", 1290), b(1291, 1, De, $9n), o.Mb = function(e) { + return d2e(this.a, u(e, 74)); + }, w(t2, "ElkGraphComponentsProcessor/lambda$5$Type", 1291), b(1292, 1, {}, x9n), o.Kb = function(e) { + return Lwe(this.a, u(e, 74)); + }, w(t2, "ElkGraphComponentsProcessor/lambda$6$Type", 1292), b(1205, 1, {}, HDn), o.a = 0, w(t2, "ElkGraphTransformer", 1205), b(1206, 1, {}, Ubn), o.Yd = function(e, t) { + cCe(this, u(e, 167), u(t, 272)); + }, w(t2, "ElkGraphTransformer/OffsetApplier", 1206), b(1207, 1, re, F9n), o.Cd = function(e) { + w1e(this, u(e, 8)); + }, w(t2, "ElkGraphTransformer/OffsetApplier/OffSetToChainApplier", 1207), b(760, 1, {}, _U), w(YB, Gtn, 760), b(1195, 1, Ne, Gbn), o.Ne = function(e, t) { + return XEe(u(e, 235), u(t, 235)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(YB, EXn, 1195), b(1196, 1, re, ACn), o.Cd = function(e) { + Q2e(this.b, this.a, u(e, 250)); + }, w(YB, ztn, 1196), b(738, 205, jd, XG), o.rf = function(e, t) { + VHn(this, e, t); + }, w(YB, "ForceLayoutProvider", 738), b(309, 137, { 3: 1, 309: 1, 96: 1, 137: 1 }), w(Ly, "FParticle", 309), b(250, 309, { 3: 1, 250: 1, 309: 1, 96: 1, 137: 1 }, UPn), o.Ib = function() { + var e; + return this.a ? (e = qr(this.a.a, this, 0), e >= 0 ? "b" + e + "[" + XN(this.a) + "]" : "b[" + XN(this.a) + "]") : "b_" + a0(this); + }, w(Ly, "FBendpoint", 250), b(290, 137, { 3: 1, 290: 1, 96: 1, 137: 1 }, RAn), o.Ib = function() { + return XN(this); + }, w(Ly, "FEdge", 290), b(235, 137, { 3: 1, 235: 1, 96: 1, 137: 1 }, zM); + var mNe = w(Ly, "FGraph", 235); + b(454, 309, { 3: 1, 454: 1, 309: 1, 96: 1, 137: 1 }, _Dn), o.Ib = function() { + return this.b == null || this.b.length == 0 ? "l[" + XN(this.a) + "]" : "l_" + this.b; + }, w(Ly, "FLabel", 454), b(153, 309, { 3: 1, 153: 1, 309: 1, 96: 1, 137: 1 }, vTn), o.Ib = function() { + return aJ(this); + }, o.a = 0, w(Ly, "FNode", 153), b(2100, 1, {}), o.vf = function(e) { + xen(this, e); + }, o.wf = function() { + HRn(this); + }, o.d = 0, w(Xtn, "AbstractForceModel", 2100), b(641, 2100, { 641: 1 }, Rxn), o.uf = function(e, t) { + var i, r, c, s, f; + return wGn(this.f, e, t), c = vi(Ki(t.d), e.d), f = y.Math.sqrt(c.a * c.a + c.b * c.b), r = y.Math.max(0, f - z6(e.e) / 2 - z6(t.e) / 2), i = Q_n(this.e, e, t), i > 0 ? s = -mwe(r, this.c) * i : s = X1e(r, this.b) * u(v(e, (Us(), k3)), 17).a, rh(c, s / f), c; + }, o.vf = function(e) { + xen(this, e), this.a = u(v(e, (Us(), kP)), 17).a, this.c = $(R(v(e, yP))), this.b = $(R(v(e, k_))); + }, o.xf = function(e) { + return e < this.a; + }, o.a = 0, o.b = 0, o.c = 0, w(Xtn, "EadesModel", 641), b(642, 2100, { 642: 1 }, BSn), o.uf = function(e, t) { + var i, r, c, s, f; + return wGn(this.f, e, t), c = vi(Ki(t.d), e.d), f = y.Math.sqrt(c.a * c.a + c.b * c.b), r = y.Math.max(0, f - z6(e.e) / 2 - z6(t.e) / 2), s = V1e(r, this.a) * u(v(e, (Us(), k3)), 17).a, i = Q_n(this.e, e, t), i > 0 && (s -= the(r, this.a) * i), rh(c, s * this.b / f), c; + }, o.vf = function(e) { + var t, i, r, c, s, f, h; + for (xen(this, e), this.b = $(R(v(e, (Us(), y_)))), this.c = this.b / u(v(e, kP), 17).a, r = e.e.c.length, s = 0, c = 0, h = new C(e.e); h.a < h.c.c.length; ) + f = u(E(h), 153), s += f.e.a, c += f.e.b; + t = s * c, i = $(R(v(e, yP))) * Kf, this.a = y.Math.sqrt(t / (2 * r)) * i; + }, o.wf = function() { + HRn(this), this.b -= this.c; + }, o.xf = function(e) { + return this.b > 0; + }, o.a = 0, o.b = 0, o.c = 0, w(Xtn, "FruchtermanReingoldModel", 642), b(860, 1, ms, N5n), o.hf = function(e) { + vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), cS), ""), "Force Model"), "Determines the model for force calculation."), don), (a1(), Pt)), bon), jn((pf(), xn))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Vtn), ""), "Iterations"), "The number of iterations on the force model."), Y(300)), Zr), Gi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Wtn), ""), "Repulsive Power"), "Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"), Y(0)), Zr), Gi), jn(Sh)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), ZB), ""), "FR Temperature"), "The temperature is used as a scaling factor for particle displacements."), mh), Qi), fi), jn(xn)))), ci(e, ZB, cS, UYn), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), nR), ""), "Eades Repulsion"), "Factor for repulsive forces in Eades' model."), 5), Qi), fi), jn(xn)))), ci(e, nR, cS, _Yn), izn((new $5n(), e)); + }; + var BYn, RYn, don, KYn, _Yn, HYn, qYn, UYn; + w(e8, "ForceMetaDataProvider", 860), b(432, 22, { 3: 1, 34: 1, 22: 1, 432: 1 }, Xz); + var v_, vP, bon = we(e8, "ForceModelStrategy", 432, ke, Rge, dde), GYn; + b(b1, 1, ms, $5n), o.hf = function(e) { + izn(e); + }; + var zYn, XYn, won, kP, gon, VYn, WYn, JYn, QYn, pon, YYn, mon, von, ZYn, k3, nZn, k_, kon, eZn, tZn, yP, y_, iZn, rZn, cZn, yon, uZn; + w(e8, "ForceOptions", b1), b(1001, 1, {}, Wbn), o.sf = function() { + var e; + return e = new XG(), e; + }, o.tf = function(e) { + }, w(e8, "ForceOptions/ForceFactory", 1001); + var lj, D8, y3, jP; + b(861, 1, ms, x5n), o.hf = function(e) { + vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Qtn), ""), "Fixed Position"), "Prevent that the node is moved by the layout algorithm."), (_n(), !1)), (a1(), ji)), zt), jn((pf(), mi))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Ytn), ""), "Desired Edge Length"), "Either specified for parent nodes or for individual edges, where the latter takes higher precedence."), 100), Qi), fi), yt(xn, A(T(Yh, 1), G, 170, 0, [Sh]))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Ztn), ""), "Layout Dimension"), "Dimensions that are permitted to be altered during layout."), jon), Pt), Pon), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), nin), ""), "Stress Epsilon"), "Termination criterion for the iterative process."), mh), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), ein), ""), "Iteration Limit"), "Maximum number of performed iterations. Takes higher precedence than 'epsilon'."), Y(et)), Zr), Gi), jn(xn)))), OGn((new F5n(), e)); + }; + var oZn, sZn, jon, fZn, hZn, lZn; + w(e8, "StressMetaDataProvider", 861), b(1004, 1, ms, F5n), o.hf = function(e) { + OGn(e); + }; + var EP, Eon, Con, Mon, Ton, Aon, aZn, dZn, bZn, wZn, Son, gZn; + w(e8, "StressOptions", 1004), b(1005, 1, {}, Xbn), o.sf = function() { + var e; + return e = new KAn(), e; + }, o.tf = function(e) { + }, w(e8, "StressOptions/StressFactory", 1005), b(1110, 205, jd, KAn), o.rf = function(e, t) { + var i, r, c, s, f; + for (t.Ug(SXn, 1), on(un(z(e, (Uk(), Ton)))) ? on(un(z(e, Son))) || X7((i = new Xv((u0(), new Yd(e))), i)) : VHn(new XG(), e, t.eh(1)), c = fFn(e), r = KUn(this.a, c), f = r.Kc(); f.Ob(); ) + s = u(f.Pb(), 235), !(s.e.c.length <= 1) && (MIe(this.b, s), JCe(this.b), nu(s.d, new Vbn())); + c = nzn(r), hzn(c), t.Vg(); + }, w(sS, "StressLayoutProvider", 1110), b(1111, 1, re, Vbn), o.Cd = function(e) { + Uen(u(e, 454)); + }, w(sS, "StressLayoutProvider/lambda$0$Type", 1111), b(1002, 1, {}, Byn), o.c = 0, o.e = 0, o.g = 0, w(sS, "StressMajorization", 1002), b(391, 22, { 3: 1, 34: 1, 22: 1, 391: 1 }, RD); + var j_, E_, C_, Pon = we(sS, "StressMajorization/Dimension", 391, ke, $2e, bde), pZn; + b(1003, 1, Ne, B9n), o.Ne = function(e, t) { + return Hae(this.a, u(e, 153), u(t, 153)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(sS, "StressMajorization/lambda$0$Type", 1003), b(1192, 1, {}, zOn), w(b3, "ElkLayered", 1192), b(1193, 1, re, R9n), o.Cd = function(e) { + MEe(this.a, u(e, 36)); + }, w(b3, "ElkLayered/lambda$0$Type", 1193), b(1194, 1, re, K9n), o.Cd = function(e) { + qae(this.a, u(e, 36)); + }, w(b3, "ElkLayered/lambda$1$Type", 1194), b(1281, 1, {}, PTn); + var mZn, vZn, kZn; + w(b3, "GraphConfigurator", 1281), b(770, 1, re, OG), o.Cd = function(e) { + e_n(this.a, u(e, 10)); + }, w(b3, "GraphConfigurator/lambda$0$Type", 770), b(771, 1, {}, HU), o.Kb = function(e) { + return LZ(), new Tn(null, new In(u(e, 30).a, 16)); + }, w(b3, "GraphConfigurator/lambda$1$Type", 771), b(772, 1, re, DG), o.Cd = function(e) { + e_n(this.a, u(e, 10)); + }, w(b3, "GraphConfigurator/lambda$2$Type", 772), b(1109, 205, jd, Uyn), o.rf = function(e, t) { + var i; + i = cIe(new zyn(), e), x(z(e, (cn(), Rw))) === x((jl(), T1)) ? F5e(this.a, i, t) : zCe(this.a, i, t), t.$g() || XGn(new B5n(), i); + }, w(b3, "LayeredLayoutProvider", 1109), b(367, 22, { 3: 1, 34: 1, 22: 1, 367: 1 }, o7); + var Vs, Wh, Dc, _c, zr, Ion = we(b3, "LayeredPhases", 367, ke, R3e, wde), yZn; + b(1717, 1, {}, ixn), o.i = 0; + var jZn; + w(Ry, "ComponentsToCGraphTransformer", 1717); + var EZn; + b(1718, 1, {}, zbn), o.yf = function(e, t) { + return y.Math.min(e.a != null ? $(e.a) : e.c.i, t.a != null ? $(t.a) : t.c.i); + }, o.zf = function(e, t) { + return y.Math.min(e.a != null ? $(e.a) : e.c.i, t.a != null ? $(t.a) : t.c.i); + }, w(Ry, "ComponentsToCGraphTransformer/1", 1718), b(86, 1, { 86: 1 }), o.i = 0, o.k = !0, o.o = ai; + var M_ = w(c8, "CNode", 86); + b(470, 86, { 470: 1, 86: 1 }, QX, oZ), o.Ib = function() { + return ""; + }, w(Ry, "ComponentsToCGraphTransformer/CRectNode", 470), b(1688, 1, {}, Jbn); + var T_, A_; + w(Ry, "OneDimensionalComponentsCompaction", 1688), b(1689, 1, {}, Qbn), o.Kb = function(e) { + return T2e(u(e, 42)); + }, o.Fb = function(e) { + return this === e; + }, w(Ry, "OneDimensionalComponentsCompaction/lambda$0$Type", 1689), b(1690, 1, {}, Ybn), o.Kb = function(e) { + return R5e(u(e, 42)); + }, o.Fb = function(e) { + return this === e; + }, w(Ry, "OneDimensionalComponentsCompaction/lambda$1$Type", 1690), b(1720, 1, {}, ZPn), w(c8, "CGraph", 1720), b(194, 1, { 194: 1 }, vx), o.b = 0, o.c = 0, o.e = 0, o.g = !0, o.i = ai, w(c8, "CGroup", 194), b(1719, 1, {}, Zbn), o.yf = function(e, t) { + return y.Math.max(e.a != null ? $(e.a) : e.c.i, t.a != null ? $(t.a) : t.c.i); + }, o.zf = function(e, t) { + return y.Math.max(e.a != null ? $(e.a) : e.c.i, t.a != null ? $(t.a) : t.c.i); + }, w(c8, eXn, 1719), b(1721, 1, {}, Z_n), o.d = !1; + var CZn, S_ = w(c8, rXn, 1721); + b(1722, 1, {}, nwn), o.Kb = function(e) { + return Nz(), _n(), u(u(e, 42).a, 86).d.e != 0; + }, o.Fb = function(e) { + return this === e; + }, w(c8, cXn, 1722), b(833, 1, {}, sW), o.a = !1, o.b = !1, o.c = !1, o.d = !1, w(c8, uXn, 833), b(1898, 1, {}, wPn), w(fS, oXn, 1898); + var aj = Nt(Cd, Zzn); + b(1899, 1, { 382: 1 }, WIn), o.bf = function(e) { + nAe(this, u(e, 476)); + }, w(fS, sXn, 1899), b(ha, 1, Ne, ewn), o.Ne = function(e, t) { + return fge(u(e, 86), u(t, 86)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(fS, fXn, ha), b(476, 1, { 476: 1 }, Wz), o.a = !1, w(fS, hXn, 476), b(1901, 1, Ne, twn), o.Ne = function(e, t) { + return hke(u(e, 476), u(t, 476)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(fS, lXn, 1901), b(148, 1, { 148: 1 }, a4, GV), o.Fb = function(e) { + var t; + return e == null || vNe != wo(e) ? !1 : (t = u(e, 148), mc(this.c, t.c) && mc(this.d, t.d)); + }, o.Hb = function() { + return Ik(A(T(yi, 1), Bn, 1, 5, [this.c, this.d])); + }, o.Ib = function() { + return "(" + this.c + cr + this.d + (this.a ? "cx" : "") + this.b + ")"; + }, o.a = !0, o.c = 0, o.d = 0; + var vNe = w(Cd, "Point", 148); + b(416, 22, { 3: 1, 34: 1, 22: 1, 416: 1 }, lC); + var cb, Iw, d2, Ow, MZn = we(Cd, "Point/Quadrant", 416, ke, Vpe, gde), TZn; + b(1708, 1, {}, Hyn), o.b = null, o.c = null, o.d = null, o.e = null, o.f = null; + var AZn, SZn, PZn, IZn, OZn; + w(Cd, "RectilinearConvexHull", 1708), b(583, 1, { 382: 1 }, eA), o.bf = function(e) { + B4e(this, u(e, 148)); + }, o.b = 0; + var Oon; + w(Cd, "RectilinearConvexHull/MaximalElementsEventHandler", 583), b(1710, 1, Ne, iwn), o.Ne = function(e, t) { + return hge(R(e), R(t)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Cd, "RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type", 1710), b(1709, 1, { 382: 1 }, v$n), o.bf = function(e) { + wTe(this, u(e, 148)); + }, o.a = 0, o.b = null, o.c = null, o.d = null, o.e = null, w(Cd, "RectilinearConvexHull/RectangleEventHandler", 1709), b(1711, 1, Ne, rwn), o.Ne = function(e, t) { + return mpe(u(e, 148), u(t, 148)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Cd, "RectilinearConvexHull/lambda$0$Type", 1711), b(1712, 1, Ne, own), o.Ne = function(e, t) { + return vpe(u(e, 148), u(t, 148)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Cd, "RectilinearConvexHull/lambda$1$Type", 1712), b(1713, 1, Ne, swn), o.Ne = function(e, t) { + return ppe(u(e, 148), u(t, 148)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Cd, "RectilinearConvexHull/lambda$2$Type", 1713), b(1714, 1, Ne, uwn), o.Ne = function(e, t) { + return kpe(u(e, 148), u(t, 148)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Cd, "RectilinearConvexHull/lambda$3$Type", 1714), b(1715, 1, Ne, fwn), o.Ne = function(e, t) { + return Qye(u(e, 148), u(t, 148)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Cd, "RectilinearConvexHull/lambda$4$Type", 1715), b(1716, 1, {}, COn), w(Cd, "Scanline", 1716), b(2104, 1, {}), w(_f, "AbstractGraphPlacer", 2104), b(335, 1, { 335: 1 }, lAn), o.Ff = function(e) { + return this.Gf(e) ? (Pn(this.b, u(v(e, (W(), Nl)), 21), e), !0) : !1; + }, o.Gf = function(e) { + var t, i, r, c; + for (t = u(v(e, (W(), Nl)), 21), c = u(ot(wt, t), 21), r = c.Kc(); r.Ob(); ) + if (i = u(r.Pb(), 21), !u(ot(this.b, i), 15).dc()) + return !1; + return !0; + }; + var wt; + w(_f, "ComponentGroup", 335), b(779, 2104, {}, JG), o.Hf = function(e) { + var t, i; + for (i = new C(this.a); i.a < i.c.c.length; ) + if (t = u(E(i), 335), t.Ff(e)) + return; + nn(this.a, new lAn(e)); + }, o.Ef = function(e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k; + if (this.a.c.length = 0, t.a.c.length = 0, e.dc()) { + t.f.a = 0, t.f.b = 0; + return; + } + for (f = u(e.Xb(0), 36), Ur(t, f), c = e.Kc(); c.Ob(); ) + r = u(c.Pb(), 36), this.Hf(r); + for (k = new Ni(), s = $(R(v(f, (cn(), Tj)))), a = new C(this.a); a.a < a.c.c.length; ) + h = u(E(a), 335), d = lzn(h, s), n1(pM(h.b), k.a, k.b), k.a += d.a, k.b += d.b; + if (t.f.a = k.a - s, t.f.b = k.b - s, on(un(v(f, sI))) && x(v(f, $l)) === x((El(), Bv))) { + for (m = e.Kc(); m.Ob(); ) + g = u(m.Pb(), 36), Am(g, g.c.a, g.c.b); + for (i = new FO(), ftn(i, e, s), p = e.Kc(); p.Ob(); ) + g = u(p.Pb(), 36), tt(ff(g.c), i.e); + tt(ff(t.f), i.a); + } + for (l = new C(this.a); l.a < l.c.c.length; ) + h = u(E(l), 335), ZJ(t, pM(h.b)); + }, w(_f, "ComponentGroupGraphPlacer", 779), b(1312, 779, {}, ejn), o.Hf = function(e) { + tBn(this, e); + }, o.Ef = function(e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N; + if (this.a.c.length = 0, t.a.c.length = 0, e.dc()) { + t.f.a = 0, t.f.b = 0; + return; + } + for (f = u(e.Xb(0), 36), Ur(t, f), c = e.Kc(); c.Ob(); ) + r = u(c.Pb(), 36), tBn(this, r); + for (N = new Ni(), O = new Ni(), j = new Ni(), k = new Ni(), s = $(R(v(f, (cn(), Tj)))), a = new C(this.a); a.a < a.c.c.length; ) { + if (h = u(E(a), 335), hl(u(v(t, (He(), Hd)), 88))) { + for (j.a = N.a, I = new n6(G6(aN(h.b).a).a.kc()); I.b.Ob(); ) + if (S = u(rC(I.b.Pb()), 21), S.Hc((en(), Xn))) { + j.a = O.a; + break; + } + } else if (vg(u(v(t, Hd), 88))) { + for (j.b = N.b, I = new n6(G6(aN(h.b).a).a.kc()); I.b.Ob(); ) + if (S = u(rC(I.b.Pb()), 21), S.Hc((en(), Wn))) { + j.b = O.b; + break; + } + } + if (d = lzn(u(h, 579), s), n1(pM(h.b), j.a, j.b), hl(u(v(t, Hd), 88))) { + for (O.a = j.a + d.a, k.a = y.Math.max(k.a, O.a), I = new n6(G6(aN(h.b).a).a.kc()); I.b.Ob(); ) + if (S = u(rC(I.b.Pb()), 21), S.Hc((en(), ae))) { + N.a = j.a + d.a; + break; + } + O.b = j.b + d.b, j.b = O.b, k.b = y.Math.max(k.b, j.b); + } else if (vg(u(v(t, Hd), 88))) { + for (O.b = j.b + d.b, k.b = y.Math.max(k.b, O.b), I = new n6(G6(aN(h.b).a).a.kc()); I.b.Ob(); ) + if (S = u(rC(I.b.Pb()), 21), S.Hc((en(), Zn))) { + N.b = j.b + d.b; + break; + } + O.a = j.a + d.a, j.a = O.a, k.a = y.Math.max(k.a, j.a); + } + } + if (t.f.a = k.a - s, t.f.b = k.b - s, on(un(v(f, sI))) && x(v(f, $l)) === x((El(), Bv))) { + for (m = e.Kc(); m.Ob(); ) + g = u(m.Pb(), 36), Am(g, g.c.a, g.c.b); + for (i = new FO(), ftn(i, e, s), p = e.Kc(); p.Ob(); ) + g = u(p.Pb(), 36), tt(ff(g.c), i.e); + tt(ff(t.f), i.a); + } + for (l = new C(this.a); l.a < l.c.c.length; ) + h = u(E(l), 335), ZJ(t, pM(h.b)); + }, w(_f, "ComponentGroupModelOrderGraphPlacer", 1312), b(389, 22, { 3: 1, 34: 1, 22: 1, 389: 1 }, aC); + var P_, Don, I_, Dw, Lon = we(_f, "ComponentOrderingStrategy", 389, ke, qpe, pde), DZn; + b(659, 1, {}, FO), w(_f, "ComponentsCompactor", 659), b(1533, 13, Gzn, yLn), o.Fc = function(e) { + return I5(this, u(e, 148)); + }, w(_f, "ComponentsCompactor/Hullpoints", 1533), b(1530, 1, { 855: 1 }, yRn), o.a = !1, w(_f, "ComponentsCompactor/InternalComponent", 1530), b(1529, 1, Hh, Kyn), o.Jc = function(e) { + qi(this, e); + }, o.Kc = function() { + return new C(this.a); + }, w(_f, "ComponentsCompactor/InternalConnectedComponents", 1529), b(1532, 1, { 602: 1 }, tHn), o.Bf = function() { + return null; + }, o.Cf = function() { + return this.a; + }, o.Af = function() { + return Ex(this.d); + }, o.Df = function() { + return this.b; + }, w(_f, "ComponentsCompactor/InternalExternalExtension", 1532), b(1531, 1, { 602: 1 }, Gyn), o.Cf = function() { + return this.a; + }, o.Af = function() { + return Ex(this.d); + }, o.Bf = function() { + return this.c; + }, o.Df = function() { + return this.b; + }, w(_f, "ComponentsCompactor/InternalUnionExternalExtension", 1531), b(1535, 1, {}, Eqn), w(_f, "ComponentsCompactor/OuterSegments", 1535), b(1534, 1, {}, _yn), w(_f, "ComponentsCompactor/Segments", 1534), b(1282, 1, {}, $Ln), w(_f, Gtn, 1282), b(1283, 1, Ne, hwn), o.Ne = function(e, t) { + return Epe(u(e, 36), u(t, 36)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(_f, "ComponentsProcessor/lambda$0$Type", 1283), b(579, 335, { 335: 1, 579: 1 }, kLn), o.Ff = function(e) { + return sY(this, e); + }, o.Gf = function(e) { + return tqn(this, e); + }; + var qe; + w(_f, "ModelOrderComponentGroup", 579), b(1310, 2104, {}, lwn), o.Ef = function(e, t) { + var i, r, c, s, f, h, l, a, d, g, p; + if (e.gc() == 1) { + g = u(e.Xb(0), 36), g != t && (t.a.c.length = 0, sUn(t, g, 0, 0), Ur(t, g), WW(t.d, g.d), t.f.a = g.f.a, t.f.b = g.f.b); + return; + } else if (e.dc()) { + t.a.c.length = 0, t.f.a = 0, t.f.b = 0; + return; + } + for (this.Jf(e, t), c = u(e.Xb(0), 36), t.a.c.length = 0, Ur(t, c), a = 0, p = 0, f = e.Kc(); f.Ob(); ) + s = u(f.Pb(), 36), d = s.f, a = y.Math.max(a, d.a), p += d.a * d.b; + if (a = y.Math.max(a, y.Math.sqrt(p) * $(R(v(t, (cn(), oI))))), r = $(R(v(t, Tj))), this.If(e, t, a, r), on(un(v(c, sI)))) { + for (i = new FO(), ftn(i, e, r), l = e.Kc(); l.Ob(); ) + h = u(l.Pb(), 36), tt(ff(h.c), i.e); + tt(ff(t.f), i.a); + } + ZJ(t, e); + }, o.If = function(e, t, i, r) { + var c, s, f, h, l, a, d, g; + for (d = 0, g = 0, h = 0, c = r, f = e.Kc(); f.Ob(); ) + s = u(f.Pb(), 36), a = s.f, d + a.a > i && (d = 0, g += h + r, h = 0), l = s.c, Am(s, d + l.a, g + l.b), ff(l), c = y.Math.max(c, d + a.a), h = y.Math.max(h, a.b), d += a.a + r; + t.f.a = c, t.f.b = g + h; + }, o.Jf = function(e, t) { + var i, r, c, s, f; + if (x(v(t, (cn(), Bw))) === x((bd(), Dw))) { + for (r = e.Kc(); r.Ob(); ) { + for (i = u(r.Pb(), 36), f = 0, s = new C(i.a); s.a < s.c.c.length; ) + c = u(E(s), 10), f += u(v(c, qte), 17).a; + i.p = f; + } + Dn(), e.jd(new awn()); + } + }, w(_f, "SimpleRowGraphPlacer", 1310), b(1313, 1310, {}, cwn), o.If = function(e, t, i, r) { + var c, s, f, h, l, a, d, g, p, m; + for (p = 0, m = 0, h = 0, c = r, l = null, g = 0, f = e.Kc(); f.Ob(); ) + s = u(f.Pb(), 36), d = s.f, (p + d.a > i && !u(v(s, (W(), Nl)), 21).Hc((en(), Xn)) || l && u(v(l, (W(), Nl)), 21).Hc((en(), Zn)) || u(v(s, (W(), Nl)), 21).Hc((en(), Wn))) && (p = g, m += h + r, h = 0), a = s.c, u(v(s, (W(), Nl)), 21).Hc((en(), Xn)) && (p = c + r), Am(s, p + a.a, m + a.b), c = y.Math.max(c, p + d.a), u(v(s, Nl), 21).Hc(ae) && (g = y.Math.max(g, p + d.a + r)), ff(a), h = y.Math.max(h, d.b), p += d.a + r, l = s; + t.f.a = c, t.f.b = m + h; + }, o.Jf = function(e, t) { + }, w(_f, "ModelOrderRowGraphPlacer", 1313), b(1311, 1, Ne, awn), o.Ne = function(e, t) { + return Fve(u(e, 36), u(t, 36)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(_f, "SimpleRowGraphPlacer/1", 1311); + var LZn; + b(1280, 1, gh, dwn), o.Lb = function(e) { + var t; + return t = u(v(u(e, 249).b, (cn(), xr)), 75), !!t && t.b != 0; + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + var t; + return t = u(v(u(e, 249).b, (cn(), xr)), 75), !!t && t.b != 0; + }, w(hS, "CompoundGraphPostprocessor/1", 1280), b(1279, 1, vt, Xyn), o.Kf = function(e, t) { + jRn(this, u(e, 36), t); + }, w(hS, "CompoundGraphPreprocessor", 1279), b(453, 1, { 453: 1 }, aBn), o.c = !1, w(hS, "CompoundGraphPreprocessor/ExternalPort", 453), b(249, 1, { 249: 1 }, zC), o.Ib = function() { + return SL(this.c) + ":" + X_n(this.b); + }, w(hS, "CrossHierarchyEdge", 249), b(777, 1, Ne, LG), o.Ne = function(e, t) { + return B7e(this, u(e, 249), u(t, 249)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(hS, "CrossHierarchyEdgeComparator", 777), b(305, 137, { 3: 1, 305: 1, 96: 1, 137: 1 }), o.p = 0, w(Rc, "LGraphElement", 305), b(18, 305, { 3: 1, 18: 1, 305: 1, 96: 1, 137: 1 }, C0), o.Ib = function() { + return X_n(this); + }; + var O_ = w(Rc, "LEdge", 18); + b(36, 305, { 3: 1, 20: 1, 36: 1, 305: 1, 96: 1, 137: 1 }, EQ), o.Jc = function(e) { + qi(this, e); + }, o.Kc = function() { + return new C(this.b); + }, o.Ib = function() { + return this.b.c.length == 0 ? "G-unlayered" + ca(this.a) : this.a.c.length == 0 ? "G-layered" + ca(this.b) : "G[layerless" + ca(this.a) + ", layers" + ca(this.b) + "]"; + }; + var NZn = w(Rc, "LGraph", 36), $Zn; + b(666, 1, {}), o.Lf = function() { + return this.e.n; + }, o.of = function(e) { + return v(this.e, e); + }, o.Mf = function() { + return this.e.o; + }, o.Nf = function() { + return this.e.p; + }, o.pf = function(e) { + return kt(this.e, e); + }, o.Of = function(e) { + this.e.n.a = e.a, this.e.n.b = e.b; + }, o.Pf = function(e) { + this.e.o.a = e.a, this.e.o.b = e.b; + }, o.Qf = function(e) { + this.e.p = e; + }, w(Rc, "LGraphAdapters/AbstractLShapeAdapter", 666), b(474, 1, { 853: 1 }, Vv), o.Rf = function() { + var e, t; + if (!this.b) + for (this.b = Oh(this.a.b.c.length), t = new C(this.a.b); t.a < t.c.c.length; ) + e = u(E(t), 72), nn(this.b, new OE(e)); + return this.b; + }, o.b = null, w(Rc, "LGraphAdapters/LEdgeAdapter", 474), b(665, 1, {}, kN), o.Sf = function() { + var e, t, i, r, c, s; + if (!this.b) { + for (this.b = new Z(), r = new C(this.a.b); r.a < r.c.c.length; ) + for (i = u(E(r), 30), s = new C(i.a); s.a < s.c.c.length; ) + if (c = u(E(s), 10), this.c.Mb(c) && (nn(this.b, new XC(this, c, this.e)), this.d)) { + if (kt(c, (W(), P3))) + for (t = u(v(c, P3), 15).Kc(); t.Ob(); ) + e = u(t.Pb(), 10), nn(this.b, new XC(this, e, !1)); + if (kt(c, C3)) + for (t = u(v(c, C3), 15).Kc(); t.Ob(); ) + e = u(t.Pb(), 10), nn(this.b, new XC(this, e, !1)); + } + } + return this.b; + }, o.Lf = function() { + throw M(new _l(OXn)); + }, o.of = function(e) { + return v(this.a, e); + }, o.Mf = function() { + return this.a.f; + }, o.Nf = function() { + return this.a.p; + }, o.pf = function(e) { + return kt(this.a, e); + }, o.Of = function(e) { + throw M(new _l(OXn)); + }, o.Pf = function(e) { + this.a.f.a = e.a, this.a.f.b = e.b; + }, o.Qf = function(e) { + this.a.p = e; + }, o.b = null, o.d = !1, o.e = !1, w(Rc, "LGraphAdapters/LGraphAdapter", 665), b(585, 666, { 187: 1 }, OE), w(Rc, "LGraphAdapters/LLabelAdapter", 585), b(584, 666, { 695: 1 }, XC), o.Tf = function() { + return this.b; + }, o.Uf = function() { + return Dn(), Dn(), or; + }, o.Rf = function() { + var e, t; + if (!this.a) + for (this.a = Oh(u(this.e, 10).b.c.length), t = new C(u(this.e, 10).b); t.a < t.c.c.length; ) + e = u(E(t), 72), nn(this.a, new OE(e)); + return this.a; + }, o.Vf = function() { + var e; + return e = u(this.e, 10).d, new mV(e.d, e.c, e.a, e.b); + }, o.Wf = function() { + return Dn(), Dn(), or; + }, o.Xf = function() { + var e, t; + if (!this.c) + for (this.c = Oh(u(this.e, 10).j.c.length), t = new C(u(this.e, 10).j); t.a < t.c.c.length; ) + e = u(E(t), 12), nn(this.c, new xCn(e, this.d)); + return this.c; + }, o.Yf = function() { + return on(un(v(u(this.e, 10), (W(), Zsn)))); + }, o.Zf = function(e) { + u(this.e, 10).d.b = e.b, u(this.e, 10).d.d = e.d, u(this.e, 10).d.c = e.c, u(this.e, 10).d.a = e.a; + }, o.$f = function(e) { + u(this.e, 10).f.b = e.b, u(this.e, 10).f.d = e.d, u(this.e, 10).f.c = e.c, u(this.e, 10).f.a = e.a; + }, o._f = function() { + Nme(this, (u6(), $Zn)); + }, o.a = null, o.b = null, o.c = null, o.d = !1, w(Rc, "LGraphAdapters/LNodeAdapter", 584), b(1788, 666, { 852: 1 }, xCn), o.Uf = function() { + var e, t, i, r, c, s, f, h; + if (this.d && u(this.e, 12).i.k == (Vn(), Hc)) + return Dn(), Dn(), or; + if (!this.a) { + for (this.a = new Z(), i = new C(u(this.e, 12).e); i.a < i.c.c.length; ) + e = u(E(i), 18), nn(this.a, new Vv(e)); + if (this.d && (r = u(v(u(this.e, 12), (W(), Gu)), 10), r)) + for (t = new ie(ce(Ei(r).a.Kc(), new En())); pe(t); ) + e = u(fe(t), 18), nn(this.a, new Vv(e)); + if (kt(u(this.e, 12).i, (W(), lb)) && (f = u(v(u(this.e, 12).i, lb), 337), h = u(Lf(f.e, this.e), 113), h)) + for (s = new C(h.b); s.a < s.c.c.length; ) + c = u(E(s), 340), nn(this.a, new Vv(c.a)); + } + return this.a; + }, o.Rf = function() { + var e, t; + if (!this.b) + for (this.b = Oh(u(this.e, 12).f.c.length), t = new C(u(this.e, 12).f); t.a < t.c.c.length; ) + e = u(E(t), 72), nn(this.b, new OE(e)); + return this.b; + }, o.Wf = function() { + var e, t, i, r, c, s, f, h; + if (this.d && u(this.e, 12).i.k == (Vn(), Hc)) + return Dn(), Dn(), or; + if (!this.c) { + for (this.c = new Z(), i = new C(u(this.e, 12).g); i.a < i.c.c.length; ) + e = u(E(i), 18), nn(this.c, new Vv(e)); + if (this.d && (r = u(v(u(this.e, 12), (W(), Gu)), 10), r)) + for (t = new ie(ce(Qt(r).a.Kc(), new En())); pe(t); ) + e = u(fe(t), 18), nn(this.c, new Vv(e)); + if (kt(u(this.e, 12).i, (W(), lb)) && (f = u(v(u(this.e, 12).i, lb), 337), h = u(Lf(f.e, this.e), 113), h)) + for (s = new C(h.e); s.a < s.c.c.length; ) + c = u(E(s), 340), nn(this.c, new Vv(c.a)); + } + return this.c; + }, o.ag = function() { + return u(this.e, 12).j; + }, o.bg = function() { + return on(un(v(u(this.e, 12), (W(), yj)))); + }, o.a = null, o.b = null, o.c = null, o.d = !1, w(Rc, "LGraphAdapters/LPortAdapter", 1788), b(1789, 1, Ne, bwn), o.Ne = function(e, t) { + return PAe(u(e, 12), u(t, 12)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Rc, "LGraphAdapters/PortComparator", 1789), b(818, 1, De, qU), o.Mb = function(e) { + return u(e, 10), u6(), !0; + }, w(Rc, "LGraphAdapters/lambda$0$Type", 818), b(404, 305, { 3: 1, 305: 1, 404: 1, 96: 1, 137: 1 }), w(Rc, "LShape", 404), b(72, 404, { 3: 1, 305: 1, 72: 1, 404: 1, 96: 1, 137: 1 }, Yjn, DX), o.Ib = function() { + var e; + return e = mbe(this), e == null ? "label" : "l_" + e; + }, w(Rc, "LLabel", 72), b(214, 1, { 3: 1, 4: 1, 214: 1, 423: 1 }), o.Fb = function(e) { + var t; + return D(e, 214) ? (t = u(e, 214), this.d == t.d && this.a == t.a && this.b == t.b && this.c == t.c) : !1; + }, o.Hb = function() { + var e, t; + return e = pp(this.b) << 16, e |= pp(this.a) & oi, t = pp(this.c) << 16, t |= pp(this.d) & oi, e ^ t; + }, o.cg = function(e) { + var t, i, r, c, s, f, h, l, a, d, g; + for (s = 0; s < e.length && qFn((zn(s, e.length), e.charCodeAt(s)), LXn); ) + ++s; + for (t = e.length; t > 0 && qFn((zn(t - 1, e.length), e.charCodeAt(t - 1)), NXn); ) + --t; + if (s < t) { + d = gw((Bi(s, t, e.length), e.substr(s, t - s)), ",|;"); + try { + for (h = d, l = 0, a = h.length; l < a; ++l) { + if (f = h[l], c = gw(f, "="), c.length != 2) + throw M(new Gn("Expecting a list of key-value pairs.")); + r = hw(c[0]), g = fw(hw(c[1])), An(r, "top") ? this.d = g : An(r, "left") ? this.b = g : An(r, "bottom") ? this.a = g : An(r, "right") && (this.c = g); + } + } catch (p) { + throw p = It(p), D(p, 130) ? (i = p, M(new Gn($Xn + i))) : M(p); + } + } + }, o.Ib = function() { + return "[top=" + this.d + ",left=" + this.b + ",bottom=" + this.a + ",right=" + this.c + "]"; + }, o.a = 0, o.b = 0, o.c = 0, o.d = 0, w(Ky, "Spacing", 214), b(140, 214, xXn, Qv, tTn, mV, qL); + var Non = w(Ky, "ElkMargin", 140); + b(660, 140, xXn, sD), w(Rc, "LMargin", 660), b(10, 404, { 3: 1, 305: 1, 10: 1, 404: 1, 96: 1, 137: 1 }, Tl), o.Ib = function() { + return wRn(this); + }, o.i = !1; + var Jh = w(Rc, "LNode", 10); + b(273, 22, { 3: 1, 34: 1, 22: 1, 273: 1 }, b6); + var Uf, ni, Sc, Ti, Xt, Hc, D_ = we(Rc, "LNode/NodeType", 273, ke, C4e, j0e), xZn; + b(775, 1, De, UU), o.Mb = function(e) { + return on(un(v(u(e, 72), (cn(), EH)))); + }, w(Rc, "LNode/lambda$0$Type", 775), b(107, 214, FXn, up, h0, HV); + var $on = w(Ky, "ElkPadding", 107); + b(778, 107, FXn, nz), w(Rc, "LPadding", 778), b(12, 404, { 3: 1, 305: 1, 12: 1, 404: 1, 96: 1, 137: 1 }, Ic), o.Ib = function() { + var e, t, i; + return e = new x1(), Re((e.a += "p_", e), lA(this)), this.i && Re(Lc((e.a += "[", e), this.i), "]"), this.e.c.length == 1 && this.g.c.length == 0 && u(sn(this.e, 0), 18).c != this && (t = u(sn(this.e, 0), 18).c, Re((e.a += " << ", e), lA(t)), Re(Lc((e.a += "[", e), t.i), "]")), this.e.c.length == 0 && this.g.c.length == 1 && u(sn(this.g, 0), 18).d != this && (i = u(sn(this.g, 0), 18).d, Re((e.a += " >> ", e), lA(i)), Re(Lc((e.a += "[", e), i.i), "]")), e.a; + }, o.c = !0, o.d = !1; + var xon, Fon, Bon, Ron, Kon, _on, FZn = w(Rc, "LPort", 12); + b(408, 1, Hh, n4), o.Jc = function(e) { + qi(this, e); + }, o.Kc = function() { + var e; + return e = new C(this.a.e), new _9n(e); + }, w(Rc, "LPort/1", 408), b(1309, 1, Ii, _9n), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return u(E(this.a), 18).c; + }, o.Ob = function() { + return tc(this.a); + }, o.Qb = function() { + q6(this.a); + }, w(Rc, "LPort/1/1", 1309), b(369, 1, Hh, ip), o.Jc = function(e) { + qi(this, e); + }, o.Kc = function() { + var e; + return e = new C(this.a.g), new NG(e); + }, w(Rc, "LPort/2", 369), b(776, 1, Ii, NG), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return u(E(this.a), 18).d; + }, o.Ob = function() { + return tc(this.a); + }, o.Qb = function() { + q6(this.a); + }, w(Rc, "LPort/2/1", 776), b(1302, 1, Hh, ICn), o.Jc = function(e) { + qi(this, e); + }, o.Kc = function() { + return new Of(this); + }, w(Rc, "LPort/CombineIter", 1302), b(208, 1, Ii, Of), o.Nb = function(e) { + _i(this, e); + }, o.Qb = function() { + sEn(); + }, o.Ob = function() { + return D6(this); + }, o.Pb = function() { + return tc(this.a) ? E(this.a) : E(this.b); + }, w(Rc, "LPort/CombineIter/1", 208), b(1303, 1, gh, wwn), o.Lb = function(e) { + return PPn(e); + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return Iu(), u(e, 12).g.c.length != 0; + }, w(Rc, "LPort/lambda$0$Type", 1303), b(1304, 1, gh, gwn), o.Lb = function(e) { + return IPn(e); + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return Iu(), u(e, 12).e.c.length != 0; + }, w(Rc, "LPort/lambda$1$Type", 1304), b(1305, 1, gh, pwn), o.Lb = function(e) { + return Iu(), u(e, 12).j == (en(), Xn); + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return Iu(), u(e, 12).j == (en(), Xn); + }, w(Rc, "LPort/lambda$2$Type", 1305), b(1306, 1, gh, mwn), o.Lb = function(e) { + return Iu(), u(e, 12).j == (en(), Zn); + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return Iu(), u(e, 12).j == (en(), Zn); + }, w(Rc, "LPort/lambda$3$Type", 1306), b(1307, 1, gh, vwn), o.Lb = function(e) { + return Iu(), u(e, 12).j == (en(), ae); + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return Iu(), u(e, 12).j == (en(), ae); + }, w(Rc, "LPort/lambda$4$Type", 1307), b(1308, 1, gh, kwn), o.Lb = function(e) { + return Iu(), u(e, 12).j == (en(), Wn); + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return Iu(), u(e, 12).j == (en(), Wn); + }, w(Rc, "LPort/lambda$5$Type", 1308), b(30, 305, { 3: 1, 20: 1, 305: 1, 30: 1, 96: 1, 137: 1 }, Nc), o.Jc = function(e) { + qi(this, e); + }, o.Kc = function() { + return new C(this.a); + }, o.Ib = function() { + return "L_" + qr(this.b.b, this, 0) + ca(this.a); + }, w(Rc, "Layer", 30), b(1330, 1, {}, zyn), w(g1, BXn, 1330), b(1334, 1, {}, ywn), o.Kb = function(e) { + return Gr(u(e, 84)); + }, w(g1, "ElkGraphImporter/0methodref$connectableShapeToNode$Type", 1334), b(1337, 1, {}, jwn), o.Kb = function(e) { + return Gr(u(e, 84)); + }, w(g1, "ElkGraphImporter/1methodref$connectableShapeToNode$Type", 1337), b(1331, 1, re, H9n), o.Cd = function(e) { + hHn(this.a, u(e, 123)); + }, w(g1, ztn, 1331), b(1332, 1, re, q9n), o.Cd = function(e) { + hHn(this.a, u(e, 123)); + }, w(g1, RXn, 1332), b(1333, 1, {}, Ewn), o.Kb = function(e) { + return new Tn(null, new In(UW(u(e, 74)), 16)); + }, w(g1, KXn, 1333), b(1335, 1, De, U9n), o.Mb = function(e) { + return _le(this.a, u(e, 27)); + }, w(g1, _Xn, 1335), b(1336, 1, {}, Cwn), o.Kb = function(e) { + return new Tn(null, new In(rge(u(e, 74)), 16)); + }, w(g1, "ElkGraphImporter/lambda$5$Type", 1336), b(1338, 1, De, G9n), o.Mb = function(e) { + return Hle(this.a, u(e, 27)); + }, w(g1, "ElkGraphImporter/lambda$7$Type", 1338), b(1339, 1, De, Mwn), o.Mb = function(e) { + return mge(u(e, 74)); + }, w(g1, "ElkGraphImporter/lambda$8$Type", 1339), b(1297, 1, {}, B5n); + var BZn; + w(g1, "ElkGraphLayoutTransferrer", 1297), b(1298, 1, De, z9n), o.Mb = function(e) { + return Iae(this.a, u(e, 18)); + }, w(g1, "ElkGraphLayoutTransferrer/lambda$0$Type", 1298), b(1299, 1, re, X9n), o.Cd = function(e) { + c7(), nn(this.a, u(e, 18)); + }, w(g1, "ElkGraphLayoutTransferrer/lambda$1$Type", 1299), b(1300, 1, De, V9n), o.Mb = function(e) { + return wae(this.a, u(e, 18)); + }, w(g1, "ElkGraphLayoutTransferrer/lambda$2$Type", 1300), b(1301, 1, re, W9n), o.Cd = function(e) { + c7(), nn(this.a, u(e, 18)); + }, w(g1, "ElkGraphLayoutTransferrer/lambda$3$Type", 1301), b(819, 1, {}, kV), w(Qn, "BiLinkedHashMultiMap", 819), b(1550, 1, vt, Twn), o.Kf = function(e, t) { + ive(u(e, 36), t); + }, w(Qn, "CommentNodeMarginCalculator", 1550), b(1551, 1, {}, Awn), o.Kb = function(e) { + return new Tn(null, new In(u(e, 30).a, 16)); + }, w(Qn, "CommentNodeMarginCalculator/lambda$0$Type", 1551), b(1552, 1, re, Swn), o.Cd = function(e) { + iIe(u(e, 10)); + }, w(Qn, "CommentNodeMarginCalculator/lambda$1$Type", 1552), b(1553, 1, vt, Pwn), o.Kf = function(e, t) { + oAe(u(e, 36), t); + }, w(Qn, "CommentPostprocessor", 1553), b(1554, 1, vt, Iwn), o.Kf = function(e, t) { + PDe(u(e, 36), t); + }, w(Qn, "CommentPreprocessor", 1554), b(1555, 1, vt, Own), o.Kf = function(e, t) { + CTe(u(e, 36), t); + }, w(Qn, "ConstraintsPostprocessor", 1555), b(1556, 1, vt, Dwn), o.Kf = function(e, t) { + Ove(u(e, 36), t); + }, w(Qn, "EdgeAndLayerConstraintEdgeReverser", 1556), b(1557, 1, vt, Lwn), o.Kf = function(e, t) { + y8e(u(e, 36), t); + }, w(Qn, "EndLabelPostprocessor", 1557), b(1558, 1, {}, Nwn), o.Kb = function(e) { + return new Tn(null, new In(u(e, 30).a, 16)); + }, w(Qn, "EndLabelPostprocessor/lambda$0$Type", 1558), b(1559, 1, De, $wn), o.Mb = function(e) { + return x3e(u(e, 10)); + }, w(Qn, "EndLabelPostprocessor/lambda$1$Type", 1559), b(1560, 1, re, xwn), o.Cd = function(e) { + lke(u(e, 10)); + }, w(Qn, "EndLabelPostprocessor/lambda$2$Type", 1560), b(1561, 1, vt, Fwn), o.Kf = function(e, t) { + Zje(u(e, 36), t); + }, w(Qn, "EndLabelPreprocessor", 1561), b(1562, 1, {}, Bwn), o.Kb = function(e) { + return new Tn(null, new In(u(e, 30).a, 16)); + }, w(Qn, "EndLabelPreprocessor/lambda$0$Type", 1562), b(1563, 1, re, pSn), o.Cd = function(e) { + nle(this.a, this.b, this.c, u(e, 10)); + }, o.a = 0, o.b = 0, o.c = !1, w(Qn, "EndLabelPreprocessor/lambda$1$Type", 1563), b(1564, 1, De, Rwn), o.Mb = function(e) { + return x(v(u(e, 72), (cn(), Th))) === x((Nf(), Fv)); + }, w(Qn, "EndLabelPreprocessor/lambda$2$Type", 1564), b(1565, 1, re, J9n), o.Cd = function(e) { + Fe(this.a, u(e, 72)); + }, w(Qn, "EndLabelPreprocessor/lambda$3$Type", 1565), b(1566, 1, De, Kwn), o.Mb = function(e) { + return x(v(u(e, 72), (cn(), Th))) === x((Nf(), Qw)); + }, w(Qn, "EndLabelPreprocessor/lambda$4$Type", 1566), b(1567, 1, re, Q9n), o.Cd = function(e) { + Fe(this.a, u(e, 72)); + }, w(Qn, "EndLabelPreprocessor/lambda$5$Type", 1567), b(1615, 1, vt, I5n), o.Kf = function(e, t) { + k5e(u(e, 36), t); + }; + var RZn; + w(Qn, "EndLabelSorter", 1615), b(1616, 1, Ne, _wn), o.Ne = function(e, t) { + return Z8e(u(e, 466), u(t, 466)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Qn, "EndLabelSorter/1", 1616), b(466, 1, { 466: 1 }, qIn), w(Qn, "EndLabelSorter/LabelGroup", 466), b(1617, 1, {}, Hwn), o.Kb = function(e) { + return r7(), new Tn(null, new In(u(e, 30).a, 16)); + }, w(Qn, "EndLabelSorter/lambda$0$Type", 1617), b(1618, 1, De, qwn), o.Mb = function(e) { + return r7(), u(e, 10).k == (Vn(), Xt); + }, w(Qn, "EndLabelSorter/lambda$1$Type", 1618), b(1619, 1, re, Uwn), o.Cd = function(e) { + dje(u(e, 10)); + }, w(Qn, "EndLabelSorter/lambda$2$Type", 1619), b(1620, 1, De, Gwn), o.Mb = function(e) { + return r7(), x(v(u(e, 72), (cn(), Th))) === x((Nf(), Qw)); + }, w(Qn, "EndLabelSorter/lambda$3$Type", 1620), b(1621, 1, De, zwn), o.Mb = function(e) { + return r7(), x(v(u(e, 72), (cn(), Th))) === x((Nf(), Fv)); + }, w(Qn, "EndLabelSorter/lambda$4$Type", 1621), b(1568, 1, vt, Xwn), o.Kf = function(e, t) { + mIe(this, u(e, 36)); + }, o.b = 0, o.c = 0, w(Qn, "FinalSplineBendpointsCalculator", 1568), b(1569, 1, {}, Vwn), o.Kb = function(e) { + return new Tn(null, new In(u(e, 30).a, 16)); + }, w(Qn, "FinalSplineBendpointsCalculator/lambda$0$Type", 1569), b(1570, 1, {}, Wwn), o.Kb = function(e) { + return new Tn(null, new m0(new ie(ce(Qt(u(e, 10)).a.Kc(), new En())))); + }, w(Qn, "FinalSplineBendpointsCalculator/lambda$1$Type", 1570), b(1571, 1, De, Jwn), o.Mb = function(e) { + return !sr(u(e, 18)); + }, w(Qn, "FinalSplineBendpointsCalculator/lambda$2$Type", 1571), b(1572, 1, De, Qwn), o.Mb = function(e) { + return kt(u(e, 18), (W(), Ld)); + }, w(Qn, "FinalSplineBendpointsCalculator/lambda$3$Type", 1572), b(1573, 1, re, Y9n), o.Cd = function(e) { + ASe(this.a, u(e, 131)); + }, w(Qn, "FinalSplineBendpointsCalculator/lambda$4$Type", 1573), b(1574, 1, re, Ywn), o.Cd = function(e) { + Yk(u(e, 18).a); + }, w(Qn, "FinalSplineBendpointsCalculator/lambda$5$Type", 1574), b(803, 1, vt, $G), o.Kf = function(e, t) { + lOe(this, u(e, 36), t); + }, w(Qn, "GraphTransformer", 803), b(517, 22, { 3: 1, 34: 1, 22: 1, 517: 1 }, Vz); + var L_, dj, KZn = we(Qn, "GraphTransformer/Mode", 517, ke, Kge, y0e), _Zn; + b(1575, 1, vt, Zwn), o.Kf = function(e, t) { + LMe(u(e, 36), t); + }, w(Qn, "HierarchicalNodeResizingProcessor", 1575), b(1576, 1, vt, ngn), o.Kf = function(e, t) { + Yme(u(e, 36), t); + }, w(Qn, "HierarchicalPortConstraintProcessor", 1576), b(1577, 1, Ne, egn), o.Ne = function(e, t) { + return k9e(u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Qn, "HierarchicalPortConstraintProcessor/NodeComparator", 1577), b(1578, 1, vt, tgn), o.Kf = function(e, t) { + yPe(u(e, 36), t); + }, w(Qn, "HierarchicalPortDummySizeProcessor", 1578), b(1579, 1, vt, ign), o.Kf = function(e, t) { + OAe(this, u(e, 36), t); + }, o.a = 0, w(Qn, "HierarchicalPortOrthogonalEdgeRouter", 1579), b(1580, 1, Ne, rgn), o.Ne = function(e, t) { + return L1e(u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Qn, "HierarchicalPortOrthogonalEdgeRouter/1", 1580), b(1581, 1, Ne, cgn), o.Ne = function(e, t) { + return R4e(u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Qn, "HierarchicalPortOrthogonalEdgeRouter/2", 1581), b(1582, 1, vt, ugn), o.Kf = function(e, t) { + Vye(u(e, 36), t); + }, w(Qn, "HierarchicalPortPositionProcessor", 1582), b(1583, 1, vt, R5n), o.Kf = function(e, t) { + hLe(this, u(e, 36)); + }, o.a = 0, o.c = 0; + var CP, MP; + w(Qn, "HighDegreeNodeLayeringProcessor", 1583), b(580, 1, { 580: 1 }, ogn), o.b = -1, o.d = -1, w(Qn, "HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation", 580), b(1584, 1, {}, sgn), o.Kb = function(e) { + return L7(), Ei(u(e, 10)); + }, o.Fb = function(e) { + return this === e; + }, w(Qn, "HighDegreeNodeLayeringProcessor/lambda$0$Type", 1584), b(1585, 1, {}, fgn), o.Kb = function(e) { + return L7(), Qt(u(e, 10)); + }, o.Fb = function(e) { + return this === e; + }, w(Qn, "HighDegreeNodeLayeringProcessor/lambda$1$Type", 1585), b(1591, 1, vt, hgn), o.Kf = function(e, t) { + dPe(this, u(e, 36), t); + }, w(Qn, "HyperedgeDummyMerger", 1591), b(804, 1, {}, $V), o.a = !1, o.b = !1, o.c = !1, w(Qn, "HyperedgeDummyMerger/MergeState", 804), b(1592, 1, {}, lgn), o.Kb = function(e) { + return new Tn(null, new In(u(e, 30).a, 16)); + }, w(Qn, "HyperedgeDummyMerger/lambda$0$Type", 1592), b(1593, 1, {}, agn), o.Kb = function(e) { + return new Tn(null, new In(u(e, 10).j, 16)); + }, w(Qn, "HyperedgeDummyMerger/lambda$1$Type", 1593), b(1594, 1, re, dgn), o.Cd = function(e) { + u(e, 12).p = -1; + }, w(Qn, "HyperedgeDummyMerger/lambda$2$Type", 1594), b(1595, 1, vt, bgn), o.Kf = function(e, t) { + lPe(u(e, 36), t); + }, w(Qn, "HypernodesProcessor", 1595), b(1596, 1, vt, wgn), o.Kf = function(e, t) { + kPe(u(e, 36), t); + }, w(Qn, "InLayerConstraintProcessor", 1596), b(1597, 1, vt, ggn), o.Kf = function(e, t) { + dve(u(e, 36), t); + }, w(Qn, "InnermostNodeMarginCalculator", 1597), b(1598, 1, vt, pgn), o.Kf = function(e, t) { + MDe(this, u(e, 36)); + }, o.a = ai, o.b = ai, o.c = St, o.d = St; + var kNe = w(Qn, "InteractiveExternalPortPositioner", 1598); + b(1599, 1, {}, mgn), o.Kb = function(e) { + return u(e, 18).d.i; + }, o.Fb = function(e) { + return this === e; + }, w(Qn, "InteractiveExternalPortPositioner/lambda$0$Type", 1599), b(1600, 1, {}, Z9n), o.Kb = function(e) { + return N1e(this.a, R(e)); + }, o.Fb = function(e) { + return this === e; + }, w(Qn, "InteractiveExternalPortPositioner/lambda$1$Type", 1600), b(1601, 1, {}, vgn), o.Kb = function(e) { + return u(e, 18).c.i; + }, o.Fb = function(e) { + return this === e; + }, w(Qn, "InteractiveExternalPortPositioner/lambda$2$Type", 1601), b(1602, 1, {}, n7n), o.Kb = function(e) { + return $1e(this.a, R(e)); + }, o.Fb = function(e) { + return this === e; + }, w(Qn, "InteractiveExternalPortPositioner/lambda$3$Type", 1602), b(1603, 1, {}, e7n), o.Kb = function(e) { + return Dae(this.a, R(e)); + }, o.Fb = function(e) { + return this === e; + }, w(Qn, "InteractiveExternalPortPositioner/lambda$4$Type", 1603), b(1604, 1, {}, t7n), o.Kb = function(e) { + return Lae(this.a, R(e)); + }, o.Fb = function(e) { + return this === e; + }, w(Qn, "InteractiveExternalPortPositioner/lambda$5$Type", 1604), b(81, 22, { 3: 1, 34: 1, 22: 1, 81: 1, 196: 1 }, ti), o.dg = function() { + switch (this.g) { + case 15: + return new xpn(); + case 22: + return new Fpn(); + case 47: + return new Kpn(); + case 28: + case 35: + return new Ign(); + case 32: + return new Twn(); + case 42: + return new Pwn(); + case 1: + return new Iwn(); + case 41: + return new Own(); + case 56: + return new $G((X4(), dj)); + case 0: + return new $G((X4(), L_)); + case 2: + return new Dwn(); + case 54: + return new Lwn(); + case 33: + return new Fwn(); + case 51: + return new Xwn(); + case 55: + return new Zwn(); + case 13: + return new ngn(); + case 38: + return new tgn(); + case 44: + return new ign(); + case 40: + return new ugn(); + case 9: + return new R5n(); + case 49: + return new tAn(); + case 37: + return new hgn(); + case 43: + return new bgn(); + case 27: + return new wgn(); + case 30: + return new ggn(); + case 3: + return new pgn(); + case 18: + return new ygn(); + case 29: + return new jgn(); + case 5: + return new K5n(); + case 50: + return new kgn(); + case 34: + return new _5n(); + case 36: + return new Ogn(); + case 52: + return new I5n(); + case 11: + return new Dgn(); + case 7: + return new H5n(); + case 39: + return new Lgn(); + case 45: + return new Ngn(); + case 16: + return new $gn(); + case 10: + return new VCn(); + case 48: + return new Rgn(); + case 21: + return new Kgn(); + case 23: + return new gD((D0(), Z8)); + case 8: + return new Hgn(); + case 12: + return new Ugn(); + case 4: + return new Ggn(); + case 19: + return new V5n(); + case 17: + return new e2n(); + case 53: + return new t2n(); + case 6: + return new b2n(); + case 25: + return new Wyn(); + case 46: + return new o2n(); + case 31: + return new UAn(); + case 14: + return new j2n(); + case 26: + return new qpn(); + case 20: + return new A2n(); + case 24: + return new gD((D0(), PI)); + default: + throw M(new Gn(cR + (this.f != null ? this.f : "" + this.g))); + } + }; + var Hon, qon, Uon, Gon, zon, Xon, Von, Won, Jon, Qon, b2, TP, AP, Yon, Zon, nsn, esn, tsn, isn, rsn, L8, csn, usn, osn, ssn, fsn, N_, SP, PP, hsn, IP, OP, DP, fv, Lw, Nw, lsn, LP, NP, asn, $P, xP, dsn, bsn, wsn, gsn, FP, $_, bj, BP, RP, KP, _P, psn, msn, vsn, ksn, yNe = we(Qn, uR, 81, ke, iqn, kde), HZn; + b(1605, 1, vt, ygn), o.Kf = function(e, t) { + EDe(u(e, 36), t); + }, w(Qn, "InvertedPortProcessor", 1605), b(1606, 1, vt, jgn), o.Kf = function(e, t) { + vSe(u(e, 36), t); + }, w(Qn, "LabelAndNodeSizeProcessor", 1606), b(1607, 1, De, Egn), o.Mb = function(e) { + return u(e, 10).k == (Vn(), Xt); + }, w(Qn, "LabelAndNodeSizeProcessor/lambda$0$Type", 1607), b(1608, 1, De, Cgn), o.Mb = function(e) { + return u(e, 10).k == (Vn(), ni); + }, w(Qn, "LabelAndNodeSizeProcessor/lambda$1$Type", 1608), b(1609, 1, re, mSn), o.Cd = function(e) { + ele(this.b, this.a, this.c, u(e, 10)); + }, o.a = !1, o.c = !1, w(Qn, "LabelAndNodeSizeProcessor/lambda$2$Type", 1609), b(1610, 1, vt, K5n), o.Kf = function(e, t) { + WOe(u(e, 36), t); + }; + var qZn; + w(Qn, "LabelDummyInserter", 1610), b(1611, 1, gh, Mgn), o.Lb = function(e) { + return x(v(u(e, 72), (cn(), Th))) === x((Nf(), xv)); + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return x(v(u(e, 72), (cn(), Th))) === x((Nf(), xv)); + }, w(Qn, "LabelDummyInserter/1", 1611), b(1612, 1, vt, kgn), o.Kf = function(e, t) { + FOe(u(e, 36), t); + }, w(Qn, "LabelDummyRemover", 1612), b(1613, 1, De, Tgn), o.Mb = function(e) { + return on(un(v(u(e, 72), (cn(), EH)))); + }, w(Qn, "LabelDummyRemover/lambda$0$Type", 1613), b(1378, 1, vt, _5n), o.Kf = function(e, t) { + POe(this, u(e, 36), t); + }, o.a = null; + var x_; + w(Qn, "LabelDummySwitcher", 1378), b(293, 1, { 293: 1 }, tUn), o.c = 0, o.d = null, o.f = 0, w(Qn, "LabelDummySwitcher/LabelDummyInfo", 293), b(1379, 1, {}, Agn), o.Kb = function(e) { + return Hp(), new Tn(null, new In(u(e, 30).a, 16)); + }, w(Qn, "LabelDummySwitcher/lambda$0$Type", 1379), b(1380, 1, De, Sgn), o.Mb = function(e) { + return Hp(), u(e, 10).k == (Vn(), Sc); + }, w(Qn, "LabelDummySwitcher/lambda$1$Type", 1380), b(1381, 1, {}, i7n), o.Kb = function(e) { + return gae(this.a, u(e, 10)); + }, w(Qn, "LabelDummySwitcher/lambda$2$Type", 1381), b(1382, 1, re, r7n), o.Cd = function(e) { + xwe(this.a, u(e, 293)); + }, w(Qn, "LabelDummySwitcher/lambda$3$Type", 1382), b(1383, 1, Ne, Pgn), o.Ne = function(e, t) { + return uwe(u(e, 293), u(t, 293)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Qn, "LabelDummySwitcher/lambda$4$Type", 1383), b(802, 1, vt, Ign), o.Kf = function(e, t) { + m4e(u(e, 36), t); + }, w(Qn, "LabelManagementProcessor", 802), b(1614, 1, vt, Ogn), o.Kf = function(e, t) { + WTe(u(e, 36), t); + }, w(Qn, "LabelSideSelector", 1614), b(1622, 1, vt, Dgn), o.Kf = function(e, t) { + xPe(u(e, 36), t); + }, w(Qn, "LayerConstraintPostprocessor", 1622), b(1623, 1, vt, H5n), o.Kf = function(e, t) { + OCe(u(e, 36), t); + }; + var ysn; + w(Qn, "LayerConstraintPreprocessor", 1623), b(371, 22, { 3: 1, 34: 1, 22: 1, 371: 1 }, dC); + var wj, HP, qP, F_, UZn = we(Qn, "LayerConstraintPreprocessor/HiddenNodeConnections", 371, ke, Jpe, yde), GZn; + b(1624, 1, vt, Lgn), o.Kf = function(e, t) { + ZIe(u(e, 36), t); + }, w(Qn, "LayerSizeAndGraphHeightCalculator", 1624), b(1625, 1, vt, Ngn), o.Kf = function(e, t) { + NMe(u(e, 36), t); + }, w(Qn, "LongEdgeJoiner", 1625), b(1626, 1, vt, $gn), o.Kf = function(e, t) { + PIe(u(e, 36), t); + }, w(Qn, "LongEdgeSplitter", 1626), b(1627, 1, vt, VCn), o.Kf = function(e, t) { + hDe(this, u(e, 36), t); + }, o.e = 0, o.f = 0, o.j = 0, o.k = 0, o.n = 0, o.o = 0; + var zZn, XZn; + w(Qn, "NodePromotion", 1627), b(1628, 1, Ne, xgn), o.Ne = function(e, t) { + return E6e(u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Qn, "NodePromotion/1", 1628), b(1629, 1, Ne, Fgn), o.Ne = function(e, t) { + return C6e(u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Qn, "NodePromotion/2", 1629), b(1630, 1, {}, Bgn), o.Kb = function(e) { + return u(e, 42), VC(), _n(), !0; + }, o.Fb = function(e) { + return this === e; + }, w(Qn, "NodePromotion/lambda$0$Type", 1630), b(1631, 1, {}, s7n), o.Kb = function(e) { + return v2e(this.a, u(e, 42)); + }, o.Fb = function(e) { + return this === e; + }, o.a = 0, w(Qn, "NodePromotion/lambda$1$Type", 1631), b(1632, 1, {}, f7n), o.Kb = function(e) { + return m2e(this.a, u(e, 42)); + }, o.Fb = function(e) { + return this === e; + }, o.a = 0, w(Qn, "NodePromotion/lambda$2$Type", 1632), b(1633, 1, vt, Rgn), o.Kf = function(e, t) { + rLe(u(e, 36), t); + }, w(Qn, "NorthSouthPortPostprocessor", 1633), b(1634, 1, vt, Kgn), o.Kf = function(e, t) { + BDe(u(e, 36), t); + }, w(Qn, "NorthSouthPortPreprocessor", 1634), b(1635, 1, Ne, _gn), o.Ne = function(e, t) { + return Bve(u(e, 12), u(t, 12)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Qn, "NorthSouthPortPreprocessor/lambda$0$Type", 1635), b(1636, 1, vt, Hgn), o.Kf = function(e, t) { + nPe(u(e, 36), t); + }, w(Qn, "PartitionMidprocessor", 1636), b(1637, 1, De, qgn), o.Mb = function(e) { + return kt(u(e, 10), (cn(), Ev)); + }, w(Qn, "PartitionMidprocessor/lambda$0$Type", 1637), b(1638, 1, re, h7n), o.Cd = function(e) { + vge(this.a, u(e, 10)); + }, w(Qn, "PartitionMidprocessor/lambda$1$Type", 1638), b(1639, 1, vt, Ugn), o.Kf = function(e, t) { + eTe(u(e, 36), t); + }, w(Qn, "PartitionPostprocessor", 1639), b(1640, 1, vt, Ggn), o.Kf = function(e, t) { + wCe(u(e, 36), t); + }, w(Qn, "PartitionPreprocessor", 1640), b(1641, 1, De, zgn), o.Mb = function(e) { + return kt(u(e, 10), (cn(), Ev)); + }, w(Qn, "PartitionPreprocessor/lambda$0$Type", 1641), b(1642, 1, {}, Xgn), o.Kb = function(e) { + return new Tn(null, new m0(new ie(ce(Qt(u(e, 10)).a.Kc(), new En())))); + }, w(Qn, "PartitionPreprocessor/lambda$1$Type", 1642), b(1643, 1, De, Vgn), o.Mb = function(e) { + return c9e(u(e, 18)); + }, w(Qn, "PartitionPreprocessor/lambda$2$Type", 1643), b(1644, 1, re, Wgn), o.Cd = function(e) { + e6e(u(e, 18)); + }, w(Qn, "PartitionPreprocessor/lambda$3$Type", 1644), b(1645, 1, vt, V5n), o.Kf = function(e, t) { + NSe(u(e, 36), t); + }; + var jsn, VZn, WZn, JZn, Esn, Csn; + w(Qn, "PortListSorter", 1645), b(1648, 1, Ne, Jgn), o.Ne = function(e, t) { + return XDn(u(e, 12), u(t, 12)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Qn, "PortListSorter/lambda$0$Type", 1648), b(1650, 1, Ne, Qgn), o.Ne = function(e, t) { + return TUn(u(e, 12), u(t, 12)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Qn, "PortListSorter/lambda$1$Type", 1650), b(1646, 1, {}, Ygn), o.Kb = function(e) { + return rm(), u(e, 12).e; + }, w(Qn, "PortListSorter/lambda$2$Type", 1646), b(1647, 1, {}, Zgn), o.Kb = function(e) { + return rm(), u(e, 12).g; + }, w(Qn, "PortListSorter/lambda$3$Type", 1647), b(1649, 1, Ne, n2n), o.Ne = function(e, t) { + return P7e(u(e, 12), u(t, 12)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Qn, "PortListSorter/lambda$4$Type", 1649), b(1651, 1, vt, e2n), o.Kf = function(e, t) { + UCe(u(e, 36), t); + }, w(Qn, "PortSideProcessor", 1651), b(1652, 1, vt, t2n), o.Kf = function(e, t) { + GAe(u(e, 36), t); + }, w(Qn, "ReversedEdgeRestorer", 1652), b(1657, 1, vt, Wyn), o.Kf = function(e, t) { + l7e(this, u(e, 36), t); + }, w(Qn, "SelfLoopPortRestorer", 1657), b(1658, 1, {}, i2n), o.Kb = function(e) { + return new Tn(null, new In(u(e, 30).a, 16)); + }, w(Qn, "SelfLoopPortRestorer/lambda$0$Type", 1658), b(1659, 1, De, r2n), o.Mb = function(e) { + return u(e, 10).k == (Vn(), Xt); + }, w(Qn, "SelfLoopPortRestorer/lambda$1$Type", 1659), b(1660, 1, De, c2n), o.Mb = function(e) { + return kt(u(e, 10), (W(), lb)); + }, w(Qn, "SelfLoopPortRestorer/lambda$2$Type", 1660), b(1661, 1, {}, u2n), o.Kb = function(e) { + return u(v(u(e, 10), (W(), lb)), 337); + }, w(Qn, "SelfLoopPortRestorer/lambda$3$Type", 1661), b(1662, 1, re, u7n), o.Cd = function(e) { + Tje(this.a, u(e, 337)); + }, w(Qn, "SelfLoopPortRestorer/lambda$4$Type", 1662), b(805, 1, re, GU), o.Cd = function(e) { + Rje(u(e, 105)); + }, w(Qn, "SelfLoopPortRestorer/lambda$5$Type", 805), b(1663, 1, vt, o2n), o.Kf = function(e, t) { + p9e(u(e, 36), t); + }, w(Qn, "SelfLoopPostProcessor", 1663), b(1664, 1, {}, s2n), o.Kb = function(e) { + return new Tn(null, new In(u(e, 30).a, 16)); + }, w(Qn, "SelfLoopPostProcessor/lambda$0$Type", 1664), b(1665, 1, De, f2n), o.Mb = function(e) { + return u(e, 10).k == (Vn(), Xt); + }, w(Qn, "SelfLoopPostProcessor/lambda$1$Type", 1665), b(1666, 1, De, h2n), o.Mb = function(e) { + return kt(u(e, 10), (W(), lb)); + }, w(Qn, "SelfLoopPostProcessor/lambda$2$Type", 1666), b(1667, 1, re, l2n), o.Cd = function(e) { + Ske(u(e, 10)); + }, w(Qn, "SelfLoopPostProcessor/lambda$3$Type", 1667), b(1668, 1, {}, a2n), o.Kb = function(e) { + return new Tn(null, new In(u(e, 105).f, 1)); + }, w(Qn, "SelfLoopPostProcessor/lambda$4$Type", 1668), b(1669, 1, re, c7n), o.Cd = function(e) { + n3e(this.a, u(e, 340)); + }, w(Qn, "SelfLoopPostProcessor/lambda$5$Type", 1669), b(1670, 1, De, d2n), o.Mb = function(e) { + return !!u(e, 105).i; + }, w(Qn, "SelfLoopPostProcessor/lambda$6$Type", 1670), b(1671, 1, re, o7n), o.Cd = function(e) { + nhe(this.a, u(e, 105)); + }, w(Qn, "SelfLoopPostProcessor/lambda$7$Type", 1671), b(1653, 1, vt, b2n), o.Kf = function(e, t) { + vMe(u(e, 36), t); + }, w(Qn, "SelfLoopPreProcessor", 1653), b(1654, 1, {}, w2n), o.Kb = function(e) { + return new Tn(null, new In(u(e, 105).f, 1)); + }, w(Qn, "SelfLoopPreProcessor/lambda$0$Type", 1654), b(1655, 1, {}, g2n), o.Kb = function(e) { + return u(e, 340).a; + }, w(Qn, "SelfLoopPreProcessor/lambda$1$Type", 1655), b(1656, 1, re, p2n), o.Cd = function(e) { + i1e(u(e, 18)); + }, w(Qn, "SelfLoopPreProcessor/lambda$2$Type", 1656), b(1672, 1, vt, UAn), o.Kf = function(e, t) { + oje(this, u(e, 36), t); + }, w(Qn, "SelfLoopRouter", 1672), b(1673, 1, {}, m2n), o.Kb = function(e) { + return new Tn(null, new In(u(e, 30).a, 16)); + }, w(Qn, "SelfLoopRouter/lambda$0$Type", 1673), b(1674, 1, De, v2n), o.Mb = function(e) { + return u(e, 10).k == (Vn(), Xt); + }, w(Qn, "SelfLoopRouter/lambda$1$Type", 1674), b(1675, 1, De, k2n), o.Mb = function(e) { + return kt(u(e, 10), (W(), lb)); + }, w(Qn, "SelfLoopRouter/lambda$2$Type", 1675), b(1676, 1, {}, y2n), o.Kb = function(e) { + return u(v(u(e, 10), (W(), lb)), 337); + }, w(Qn, "SelfLoopRouter/lambda$3$Type", 1676), b(1677, 1, re, SCn), o.Cd = function(e) { + dge(this.a, this.b, u(e, 337)); + }, w(Qn, "SelfLoopRouter/lambda$4$Type", 1677), b(1678, 1, vt, j2n), o.Kf = function(e, t) { + FTe(u(e, 36), t); + }, w(Qn, "SemiInteractiveCrossMinProcessor", 1678), b(1679, 1, De, E2n), o.Mb = function(e) { + return u(e, 10).k == (Vn(), Xt); + }, w(Qn, "SemiInteractiveCrossMinProcessor/lambda$0$Type", 1679), b(1680, 1, De, C2n), o.Mb = function(e) { + return oPn(u(e, 10))._b((cn(), qw)); + }, w(Qn, "SemiInteractiveCrossMinProcessor/lambda$1$Type", 1680), b(1681, 1, Ne, M2n), o.Ne = function(e, t) { + return nve(u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Qn, "SemiInteractiveCrossMinProcessor/lambda$2$Type", 1681), b(1682, 1, {}, T2n), o.Ve = function(e, t) { + return kge(u(e, 10), u(t, 10)); + }, w(Qn, "SemiInteractiveCrossMinProcessor/lambda$3$Type", 1682), b(1684, 1, vt, A2n), o.Kf = function(e, t) { + oIe(u(e, 36), t); + }, w(Qn, "SortByInputModelProcessor", 1684), b(1685, 1, De, S2n), o.Mb = function(e) { + return u(e, 12).g.c.length != 0; + }, w(Qn, "SortByInputModelProcessor/lambda$0$Type", 1685), b(1686, 1, re, l7n), o.Cd = function(e) { + Uje(this.a, u(e, 12)); + }, w(Qn, "SortByInputModelProcessor/lambda$1$Type", 1686), b(1759, 817, {}, pxn), o.df = function(e) { + var t, i, r, c; + switch (this.c = e, this.a.g) { + case 2: + t = new Z(), Ut(ut(new Tn(null, new In(this.c.a.b, 16)), new H2n()), new FCn(this, t)), Zk(this, new I2n()), nu(t, new O2n()), t.c.length = 0, Ut(ut(new Tn(null, new In(this.c.a.b, 16)), new D2n()), new d7n(t)), Zk(this, new L2n()), nu(t, new N2n()), t.c.length = 0, i = mTn(O$(Gb(new Tn(null, new In(this.c.a.b, 16)), new b7n(this))), new $2n()), Ut(new Tn(null, new In(this.c.a.a, 16)), new OCn(i, t)), Zk(this, new F2n()), nu(t, new B2n()), t.c.length = 0; + break; + case 3: + r = new Z(), Zk(this, new P2n()), c = mTn(O$(Gb(new Tn(null, new In(this.c.a.b, 16)), new a7n(this))), new x2n()), Ut(ut(new Tn(null, new In(this.c.a.b, 16)), new R2n()), new LCn(c, r)), Zk(this, new K2n()), nu(r, new _2n()), r.c.length = 0; + break; + default: + throw M(new xyn()); + } + }, o.b = 0, w(bi, "EdgeAwareScanlineConstraintCalculation", 1759), b(1760, 1, gh, P2n), o.Lb = function(e) { + return D(u(e, 60).g, 154); + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return D(u(e, 60).g, 154); + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$0$Type", 1760), b(1761, 1, {}, a7n), o.Ye = function(e) { + return AEe(this.a, u(e, 60)); + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$1$Type", 1761), b(1769, 1, JA, PCn), o.de = function() { + P5(this.a, this.b, -1); + }, o.b = 0, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$10$Type", 1769), b(1771, 1, gh, I2n), o.Lb = function(e) { + return D(u(e, 60).g, 154); + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return D(u(e, 60).g, 154); + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$11$Type", 1771), b(1772, 1, re, O2n), o.Cd = function(e) { + u(e, 380).de(); + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$12$Type", 1772), b(1773, 1, De, D2n), o.Mb = function(e) { + return D(u(e, 60).g, 10); + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$13$Type", 1773), b(1775, 1, re, d7n), o.Cd = function(e) { + X5e(this.a, u(e, 60)); + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$14$Type", 1775), b(1774, 1, JA, NCn), o.de = function() { + P5(this.b, this.a, -1); + }, o.a = 0, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$15$Type", 1774), b(1776, 1, gh, L2n), o.Lb = function(e) { + return D(u(e, 60).g, 10); + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return D(u(e, 60).g, 10); + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$16$Type", 1776), b(1777, 1, re, N2n), o.Cd = function(e) { + u(e, 380).de(); + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$17$Type", 1777), b(1778, 1, {}, b7n), o.Ye = function(e) { + return SEe(this.a, u(e, 60)); + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$18$Type", 1778), b(1779, 1, {}, $2n), o.We = function() { + return 0; + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$19$Type", 1779), b(1762, 1, {}, x2n), o.We = function() { + return 0; + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$2$Type", 1762), b(1781, 1, re, OCn), o.Cd = function(e) { + Ybe(this.a, this.b, u(e, 316)); + }, o.a = 0, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$20$Type", 1781), b(1780, 1, JA, DCn), o.de = function() { + DHn(this.a, this.b, -1); + }, o.b = 0, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$21$Type", 1780), b(1782, 1, gh, F2n), o.Lb = function(e) { + return u(e, 60), !0; + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return u(e, 60), !0; + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$22$Type", 1782), b(1783, 1, re, B2n), o.Cd = function(e) { + u(e, 380).de(); + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$23$Type", 1783), b(1763, 1, De, R2n), o.Mb = function(e) { + return D(u(e, 60).g, 10); + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$3$Type", 1763), b(1765, 1, re, LCn), o.Cd = function(e) { + Zbe(this.a, this.b, u(e, 60)); + }, o.a = 0, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$4$Type", 1765), b(1764, 1, JA, $Cn), o.de = function() { + P5(this.b, this.a, -1); + }, o.a = 0, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$5$Type", 1764), b(1766, 1, gh, K2n), o.Lb = function(e) { + return u(e, 60), !0; + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return u(e, 60), !0; + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$6$Type", 1766), b(1767, 1, re, _2n), o.Cd = function(e) { + u(e, 380).de(); + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$7$Type", 1767), b(1768, 1, De, H2n), o.Mb = function(e) { + return D(u(e, 60).g, 154); + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$8$Type", 1768), b(1770, 1, re, FCn), o.Cd = function(e) { + pme(this.a, this.b, u(e, 60)); + }, w(bi, "EdgeAwareScanlineConstraintCalculation/lambda$9$Type", 1770), b(1586, 1, vt, tAn), o.Kf = function(e, t) { + $Ie(this, u(e, 36), t); + }; + var QZn; + w(bi, "HorizontalGraphCompactor", 1586), b(1587, 1, {}, w7n), o.ff = function(e, t) { + var i, r, c; + return rQ(e, t) || (i = Pg(e), r = Pg(t), i && i.k == (Vn(), ni) || r && r.k == (Vn(), ni)) ? 0 : (c = u(v(this.a.a, (W(), E2)), 312), R1e(c, i ? i.k : (Vn(), Ti), r ? r.k : (Vn(), Ti))); + }, o.gf = function(e, t) { + var i, r, c; + return rQ(e, t) ? 1 : (i = Pg(e), r = Pg(t), c = u(v(this.a.a, (W(), E2)), 312), WX(c, i ? i.k : (Vn(), Ti), r ? r.k : (Vn(), Ti))); + }, w(bi, "HorizontalGraphCompactor/1", 1587), b(1588, 1, {}, q2n), o.ef = function(e, t) { + return o6(), e.a.i == 0; + }, w(bi, "HorizontalGraphCompactor/lambda$0$Type", 1588), b(1589, 1, {}, g7n), o.ef = function(e, t) { + return Ege(this.a, e, t); + }, w(bi, "HorizontalGraphCompactor/lambda$1$Type", 1589), b(1730, 1, {}, zNn); + var YZn, ZZn; + w(bi, "LGraphToCGraphTransformer", 1730), b(1738, 1, De, U2n), o.Mb = function(e) { + return e != null; + }, w(bi, "LGraphToCGraphTransformer/0methodref$nonNull$Type", 1738), b(1731, 1, {}, G2n), o.Kb = function(e) { + return Fs(), Jr(v(u(u(e, 60).g, 10), (W(), st))); + }, w(bi, "LGraphToCGraphTransformer/lambda$0$Type", 1731), b(1732, 1, {}, z2n), o.Kb = function(e) { + return Fs(), iBn(u(u(e, 60).g, 154)); + }, w(bi, "LGraphToCGraphTransformer/lambda$1$Type", 1732), b(1741, 1, De, X2n), o.Mb = function(e) { + return Fs(), D(u(e, 60).g, 10); + }, w(bi, "LGraphToCGraphTransformer/lambda$10$Type", 1741), b(1742, 1, re, V2n), o.Cd = function(e) { + Sge(u(e, 60)); + }, w(bi, "LGraphToCGraphTransformer/lambda$11$Type", 1742), b(1743, 1, De, W2n), o.Mb = function(e) { + return Fs(), D(u(e, 60).g, 154); + }, w(bi, "LGraphToCGraphTransformer/lambda$12$Type", 1743), b(1747, 1, re, J2n), o.Cd = function(e) { + c5e(u(e, 60)); + }, w(bi, "LGraphToCGraphTransformer/lambda$13$Type", 1747), b(1744, 1, re, p7n), o.Cd = function(e) { + Dle(this.a, u(e, 8)); + }, o.a = 0, w(bi, "LGraphToCGraphTransformer/lambda$14$Type", 1744), b(1745, 1, re, m7n), o.Cd = function(e) { + Nle(this.a, u(e, 116)); + }, o.a = 0, w(bi, "LGraphToCGraphTransformer/lambda$15$Type", 1745), b(1746, 1, re, v7n), o.Cd = function(e) { + Lle(this.a, u(e, 8)); + }, o.a = 0, w(bi, "LGraphToCGraphTransformer/lambda$16$Type", 1746), b(1748, 1, {}, Q2n), o.Kb = function(e) { + return Fs(), new Tn(null, new m0(new ie(ce(Qt(u(e, 10)).a.Kc(), new En())))); + }, w(bi, "LGraphToCGraphTransformer/lambda$17$Type", 1748), b(1749, 1, De, Y2n), o.Mb = function(e) { + return Fs(), sr(u(e, 18)); + }, w(bi, "LGraphToCGraphTransformer/lambda$18$Type", 1749), b(1750, 1, re, k7n), o.Cd = function(e) { + W4e(this.a, u(e, 18)); + }, w(bi, "LGraphToCGraphTransformer/lambda$19$Type", 1750), b(1734, 1, re, y7n), o.Cd = function(e) { + jpe(this.a, u(e, 154)); + }, w(bi, "LGraphToCGraphTransformer/lambda$2$Type", 1734), b(1751, 1, {}, Z2n), o.Kb = function(e) { + return Fs(), new Tn(null, new In(u(e, 30).a, 16)); + }, w(bi, "LGraphToCGraphTransformer/lambda$20$Type", 1751), b(1752, 1, {}, npn), o.Kb = function(e) { + return Fs(), new Tn(null, new m0(new ie(ce(Qt(u(e, 10)).a.Kc(), new En())))); + }, w(bi, "LGraphToCGraphTransformer/lambda$21$Type", 1752), b(1753, 1, {}, epn), o.Kb = function(e) { + return Fs(), u(v(u(e, 18), (W(), Ld)), 15); + }, w(bi, "LGraphToCGraphTransformer/lambda$22$Type", 1753), b(1754, 1, De, tpn), o.Mb = function(e) { + return K1e(u(e, 15)); + }, w(bi, "LGraphToCGraphTransformer/lambda$23$Type", 1754), b(1755, 1, re, j7n), o.Cd = function(e) { + gEe(this.a, u(e, 15)); + }, w(bi, "LGraphToCGraphTransformer/lambda$24$Type", 1755), b(1733, 1, re, BCn), o.Cd = function(e) { + v3e(this.a, this.b, u(e, 154)); + }, w(bi, "LGraphToCGraphTransformer/lambda$3$Type", 1733), b(1735, 1, {}, ipn), o.Kb = function(e) { + return Fs(), new Tn(null, new In(u(e, 30).a, 16)); + }, w(bi, "LGraphToCGraphTransformer/lambda$4$Type", 1735), b(1736, 1, {}, rpn), o.Kb = function(e) { + return Fs(), new Tn(null, new m0(new ie(ce(Qt(u(e, 10)).a.Kc(), new En())))); + }, w(bi, "LGraphToCGraphTransformer/lambda$5$Type", 1736), b(1737, 1, {}, cpn), o.Kb = function(e) { + return Fs(), u(v(u(e, 18), (W(), Ld)), 15); + }, w(bi, "LGraphToCGraphTransformer/lambda$6$Type", 1737), b(1739, 1, re, E7n), o.Cd = function(e) { + PEe(this.a, u(e, 15)); + }, w(bi, "LGraphToCGraphTransformer/lambda$8$Type", 1739), b(1740, 1, re, RCn), o.Cd = function(e) { + r1e(this.a, this.b, u(e, 154)); + }, w(bi, "LGraphToCGraphTransformer/lambda$9$Type", 1740), b(1729, 1, {}, upn), o.cf = function(e) { + var t, i, r, c, s; + for (this.a = e, this.d = new oD(), this.c = K(ion, Bn, 125, this.a.a.a.c.length, 0, 1), this.b = 0, i = new C(this.a.a.a); i.a < i.c.c.length; ) + t = u(E(i), 316), t.d = this.b, s = l0(i7(new Xa(), t), this.d), this.c[this.b] = s, ++this.b; + for (zOe(this), zDe(this), WMe(this), PF(BL(this.d), new op()), c = new C(this.a.a.b); c.a < c.c.c.length; ) + r = u(E(c), 60), r.d.c = this.c[r.a.d].e + r.b.a; + }, o.b = 0, w(bi, "NetworkSimplexCompaction", 1729), b(154, 1, { 34: 1, 154: 1 }, q5), o.Fd = function(e) { + return ume(this, u(e, 154)); + }, o.Ib = function() { + return iBn(this); + }, w(bi, "VerticalSegment", 154), b(841, 1, {}, JZ), o.c = 0, o.e = 0, o.i = 0, w(u8, "BetweenLayerEdgeTwoNodeCrossingsCounter", 841), b(677, 1, { 677: 1 }, Oxn), o.Ib = function() { + return "AdjacencyList [node=" + this.d + ", adjacencies= " + this.a + "]"; + }, o.b = 0, o.c = 0, o.f = 0, w(u8, "BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList", 677), b(294, 1, { 34: 1, 294: 1 }, hAn), o.Fd = function(e) { + return jbe(this, u(e, 294)); + }, o.Ib = function() { + return "Adjacency [position=" + this.c + ", cardinality=" + this.a + ", currentCardinality=" + this.b + "]"; + }, o.a = 0, o.b = 0, o.c = 0, w(u8, "BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency", 294), b(2026, 1, {}, s_n), o.b = 0, o.e = !1, w(u8, "CrossingMatrixFiller", 2026); + var nne = Nt(Xh, "IInitializable"); + b(1867, 1, _y, _Cn), o.gg = function(e, t, i, r, c, s) { + }, o.ig = function(e, t, i) { + }, o.eg = function() { + return this.c != (D0(), Z8); + }, o.fg = function() { + this.e = K(ye, _e, 28, this.d, 15, 1); + }, o.hg = function(e, t) { + t[e][0].c.p = e; + }, o.jg = function(e, t, i, r) { + ++this.d; + }, o.kg = function() { + return !0; + }, o.lg = function(e, t, i, r) { + return WFn(this, e, t, i), O3e(this, t); + }, o.mg = function(e, t) { + var i; + return i = She(t, e.length), WFn(this, e, i, t), lFn(this, i); + }, o.d = 0, w(u8, "GreedySwitchHeuristic", 1867), b(2029, 1, {}, rPn), o.b = 0, o.d = 0, w(u8, "NorthSouthEdgeNeighbouringNodeCrossingsCounter", 2029), b(2016, 1, {}, Kqn), o.a = !1, w(u8, "SwitchDecider", 2016), b(105, 1, { 105: 1 }, g_n), o.a = null, o.c = null, o.i = null, w(w3, "SelfHyperLoop", 105), b(2013, 1, {}, iRn), o.c = 0, o.e = 0, w(w3, "SelfHyperLoopLabels", 2013), b(421, 22, { 3: 1, 34: 1, 22: 1, 421: 1 }, bC); + var j3, hv, lv, B_, ene = we(w3, "SelfHyperLoopLabels/Alignment", 421, ke, Wpe, jde), tne; + b(340, 1, { 340: 1 }, xLn), w(w3, "SelfLoopEdge", 340), b(337, 1, { 337: 1 }, rRn), o.a = !1, w(w3, "SelfLoopHolder", 337), b(1790, 1, De, mpn), o.Mb = function(e) { + return sr(u(e, 18)); + }, w(w3, "SelfLoopHolder/lambda$0$Type", 1790), b(113, 1, { 113: 1 }, fRn), o.a = !1, o.c = !1, w(w3, "SelfLoopPort", 113), b(1855, 1, De, vpn), o.Mb = function(e) { + return sr(u(e, 18)); + }, w(w3, "SelfLoopPort/lambda$0$Type", 1855), b(375, 22, { 3: 1, 34: 1, 22: 1, 375: 1 }, s7); + var UP, gj, GP, zP, XP, ine = we(w3, "SelfLoopType", 375, ke, K3e, Ede), rne; + b(1798, 1, {}, Z5n); + var cne, une, one, sne; + w(Io, "PortRestorer", 1798), b(372, 22, { 3: 1, 34: 1, 22: 1, 372: 1 }, KD); + var ub, va, ob, R_ = we(Io, "PortRestorer/PortSideArea", 372, ke, x2e, vde), fne; + b(1799, 1, {}, spn), o.Kb = function(e) { + return ua(), u(e, 15).Oc(); + }, w(Io, "PortRestorer/lambda$0$Type", 1799), b(1800, 1, re, fpn), o.Cd = function(e) { + ua(), u(e, 113).c = !1; + }, w(Io, "PortRestorer/lambda$1$Type", 1800), b(1809, 1, De, hpn), o.Mb = function(e) { + return ua(), u(e, 12).j == (en(), Wn); + }, w(Io, "PortRestorer/lambda$10$Type", 1809), b(1810, 1, {}, lpn), o.Kb = function(e) { + return ua(), u(e, 113).d; + }, w(Io, "PortRestorer/lambda$11$Type", 1810), b(1811, 1, re, C7n), o.Cd = function(e) { + Lhe(this.a, u(e, 12)); + }, w(Io, "PortRestorer/lambda$12$Type", 1811), b(1801, 1, re, M7n), o.Cd = function(e) { + W1e(this.a, u(e, 105)); + }, w(Io, "PortRestorer/lambda$2$Type", 1801), b(1802, 1, Ne, apn), o.Ne = function(e, t) { + return Pme(u(e, 113), u(t, 113)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Io, "PortRestorer/lambda$3$Type", 1802), b(1803, 1, De, dpn), o.Mb = function(e) { + return ua(), u(e, 113).c; + }, w(Io, "PortRestorer/lambda$4$Type", 1803), b(1804, 1, De, bpn), o.Mb = function(e) { + return kve(u(e, 12)); + }, w(Io, "PortRestorer/lambda$5$Type", 1804), b(1805, 1, De, opn), o.Mb = function(e) { + return ua(), u(e, 12).j == (en(), Xn); + }, w(Io, "PortRestorer/lambda$6$Type", 1805), b(1806, 1, De, wpn), o.Mb = function(e) { + return ua(), u(e, 12).j == (en(), Zn); + }, w(Io, "PortRestorer/lambda$7$Type", 1806), b(1807, 1, De, gpn), o.Mb = function(e) { + return Zpe(u(e, 12)); + }, w(Io, "PortRestorer/lambda$8$Type", 1807), b(1808, 1, De, ppn), o.Mb = function(e) { + return ua(), u(e, 12).j == (en(), ae); + }, w(Io, "PortRestorer/lambda$9$Type", 1808), b(276, 22, { 3: 1, 34: 1, 22: 1, 276: 1 }, Op); + var K_, __, H_, q_, U_, G_, z_, X_, Msn = we(Io, "PortSideAssigner/Target", 276, ke, wme, Cde), hne; + b(1791, 1, {}, ypn), o.Kb = function(e) { + return ut(new Tn(null, new In(u(e, 105).j, 16)), new zU()); + }, w(Io, "PortSideAssigner/lambda$1$Type", 1791), b(1792, 1, {}, jpn), o.Kb = function(e) { + return u(e, 113).d; + }, w(Io, "PortSideAssigner/lambda$2$Type", 1792), b(1793, 1, re, Epn), o.Cd = function(e) { + pi(u(e, 12), (en(), Xn)); + }, w(Io, "PortSideAssigner/lambda$3$Type", 1793), b(1794, 1, {}, Cpn), o.Kb = function(e) { + return u(e, 113).d; + }, w(Io, "PortSideAssigner/lambda$4$Type", 1794), b(1795, 1, re, T7n), o.Cd = function(e) { + Kfe(this.a, u(e, 12)); + }, w(Io, "PortSideAssigner/lambda$5$Type", 1795), b(1796, 1, Ne, kpn), o.Ne = function(e, t) { + return Uwe(u(e, 105), u(t, 105)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Io, "PortSideAssigner/lambda$6$Type", 1796), b(1797, 1, Ne, Mpn), o.Ne = function(e, t) { + return dbe(u(e, 113), u(t, 113)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Io, "PortSideAssigner/lambda$7$Type", 1797), b(820, 1, De, zU), o.Mb = function(e) { + return u(e, 113).c; + }, w(Io, "PortSideAssigner/lambda$8$Type", 820), b(2108, 1, {}), w(aa, "AbstractSelfLoopRouter", 2108), b(1816, 1, Ne, Tpn), o.Ne = function(e, t) { + return Gae(u(e, 105), u(t, 105)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(aa, bXn, 1816), b(1817, 1, Ne, Apn), o.Ne = function(e, t) { + return Uae(u(e, 105), u(t, 105)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(aa, wXn, 1817), b(1856, 2108, {}, Spn), o.ng = function(e, t, i) { + return i; + }, w(aa, "OrthogonalSelfLoopRouter", 1856), b(1858, 1, re, KCn), o.Cd = function(e) { + uZ(this.b, this.a, u(e, 8)); + }, w(aa, "OrthogonalSelfLoopRouter/lambda$0$Type", 1858), b(1857, 1856, {}, Ppn), o.ng = function(e, t, i) { + var r, c; + return r = e.c.d, w4(i, 0, tt(Ki(r.n), r.a)), c = e.d.d, Fe(i, tt(Ki(c.n), c.a)), VSe(i); + }, w(aa, "PolylineSelfLoopRouter", 1857), b(1812, 1, {}, n8n), o.a = null; + var w2; + w(aa, "RoutingDirector", 1812), b(1813, 1, Ne, Ipn), o.Ne = function(e, t) { + return hbe(u(e, 113), u(t, 113)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(aa, "RoutingDirector/lambda$0$Type", 1813), b(1814, 1, {}, Opn), o.Kb = function(e) { + return ZE(), u(e, 105).j; + }, w(aa, "RoutingDirector/lambda$1$Type", 1814), b(1815, 1, re, Dpn), o.Cd = function(e) { + ZE(), u(e, 15).jd(w2); + }, w(aa, "RoutingDirector/lambda$2$Type", 1815), b(1818, 1, {}, Lpn), w(aa, "RoutingSlotAssigner", 1818), b(1819, 1, De, A7n), o.Mb = function(e) { + return wle(this.a, u(e, 105)); + }, w(aa, "RoutingSlotAssigner/lambda$0$Type", 1819), b(1820, 1, Ne, S7n), o.Ne = function(e, t) { + return Rbe(this.a, u(e, 105), u(t, 105)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(aa, "RoutingSlotAssigner/lambda$1$Type", 1820), b(1859, 1856, {}, Npn), o.ng = function(e, t, i) { + var r, c, s, f; + return r = $(R(nA(e.b.g.b, (cn(), T2)))), f = new aAn(A(T(Ci, 1), J, 8, 0, [(s = e.c.d, tt(new ir(s.n), s.a))])), EMe(e, t, i, f, r), Fe(f, (c = e.d.d, tt(new ir(c.n), c.a))), PRn(new Hen(f)); + }, w(aa, "SplineSelfLoopRouter", 1859), b(586, 1, Ne, wxn, LSn), o.Ne = function(e, t) { + return dzn(this, u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(rin, "ModelOrderNodeComparator", 586), b(1821, 1, De, $pn), o.Mb = function(e) { + return u(e, 12).e.c.length != 0; + }, w(rin, "ModelOrderNodeComparator/lambda$0$Type", 1821), b(821, 1, Ne, UFn, TDn), o.Ne = function(e, t) { + return SPn(this, e, t); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, o.b = !1, w(rin, "ModelOrderPortComparator", 821), b(815, 1, {}, XU), o.og = function(e, t) { + var i, r, c, s; + for (c = r_n(t), i = new Z(), s = t.f / c, r = 1; r < c; ++r) + nn(i, Y(Ae(vc(y.Math.round(r * s))))); + return i; + }, o.pg = function() { + return !1; + }, w(kh, "ARDCutIndexHeuristic", 815), b(1544, 1, vt, xpn), o.Kf = function(e, t) { + aSe(u(e, 36), t); + }, w(kh, "BreakingPointInserter", 1544), b(313, 1, { 313: 1 }, EJ), o.Ib = function() { + var e; + return e = new x1(), e.a += "BPInfo[", e.a += ` + start=`, Lc(e, this.i), e.a += ` + end=`, Lc(e, this.a), e.a += ` + nodeStartEdge=`, Lc(e, this.e), e.a += ` + startEndEdge=`, Lc(e, this.j), e.a += ` + originalEdge=`, Lc(e, this.f), e.a += ` + startInLayerDummy=`, Lc(e, this.k), e.a += ` + startInLayerEdge=`, Lc(e, this.n), e.a += ` + endInLayerDummy=`, Lc(e, this.b), e.a += ` + endInLayerEdge=`, Lc(e, this.c), e.a; + }, w(kh, "BreakingPointInserter/BPInfo", 313), b(661, 1, { 661: 1 }, B7n), o.a = !1, o.b = 0, o.c = 0, w(kh, "BreakingPointInserter/Cut", 661), b(1545, 1, vt, Fpn), o.Kf = function(e, t) { + SMe(u(e, 36), t); + }, w(kh, "BreakingPointProcessor", 1545), b(1546, 1, De, Bpn), o.Mb = function(e) { + return r$n(u(e, 10)); + }, w(kh, "BreakingPointProcessor/0methodref$isEnd$Type", 1546), b(1547, 1, De, Rpn), o.Mb = function(e) { + return c$n(u(e, 10)); + }, w(kh, "BreakingPointProcessor/1methodref$isStart$Type", 1547), b(1548, 1, vt, Kpn), o.Kf = function(e, t) { + JMe(this, u(e, 36), t); + }, w(kh, "BreakingPointRemover", 1548), b(1549, 1, re, _pn), o.Cd = function(e) { + u(e, 131).k = !0; + }, w(kh, "BreakingPointRemover/lambda$0$Type", 1549), b(811, 1, {}, znn), o.b = 0, o.e = 0, o.f = 0, o.j = 0, w(kh, "GraphStats", 811), b(812, 1, {}, VU), o.Ve = function(e, t) { + return y.Math.max($(R(e)), $(R(t))); + }, w(kh, "GraphStats/0methodref$max$Type", 812), b(813, 1, {}, WU), o.Ve = function(e, t) { + return y.Math.max($(R(e)), $(R(t))); + }, w(kh, "GraphStats/2methodref$max$Type", 813), b(1726, 1, {}, Hpn), o.Ve = function(e, t) { + return Q0e(R(e), R(t)); + }, w(kh, "GraphStats/lambda$1$Type", 1726), b(1727, 1, {}, P7n), o.Kb = function(e) { + return hRn(this.a, u(e, 30)); + }, w(kh, "GraphStats/lambda$2$Type", 1727), b(1728, 1, {}, I7n), o.Kb = function(e) { + return eqn(this.a, u(e, 30)); + }, w(kh, "GraphStats/lambda$6$Type", 1728), b(814, 1, {}, JU), o.og = function(e, t) { + var i; + return i = u(v(e, (cn(), yhn)), 15), i || (Dn(), Dn(), or); + }, o.pg = function() { + return !1; + }, w(kh, "ICutIndexCalculator/ManualCutIndexCalculator", 814), b(816, 1, {}, QU), o.og = function(e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _; + for (_ = (t.n == null && BRn(t), t.n), l = (t.d == null && BRn(t), t.d), N = K(Oi, Ar, 28, _.length, 15, 1), N[0] = _[0], I = _[0], a = 1; a < _.length; a++) + N[a] = N[a - 1] + _[a], I += _[a]; + for (c = r_n(t) - 1, f = u(v(e, (cn(), jhn)), 17).a, r = ai, i = new Z(), p = y.Math.max(0, c - f); p <= y.Math.min(t.f - 1, c + f); p++) { + if (j = I / (p + 1), S = 0, d = 1, s = new Z(), O = ai, g = 0, h = 0, k = l[0], p == 0) + O = I, h = (t.g == null && (t.g = Exn(t, new WU())), $(t.g)); + else { + for (; d < t.f; ) + N[d - 1] - S >= j && (nn(s, Y(d)), O = y.Math.max(O, N[d - 1] - g), h += k, S += N[d - 1] - S, g = N[d - 1], k = l[d]), k = y.Math.max(k, l[d]), ++d; + h += k; + } + m = y.Math.min(1 / O, 1 / t.b / h), m > r && (r = m, i = s); + } + return i; + }, o.pg = function() { + return !1; + }, w(kh, "MSDCutIndexHeuristic", 816), b(1683, 1, vt, qpn), o.Kf = function(e, t) { + BPe(u(e, 36), t); + }, w(kh, "SingleEdgeGraphWrapper", 1683), b(232, 22, { 3: 1, 34: 1, 22: 1, 232: 1 }, w6); + var g2, av, dv, $w, N8, p2, bv = we(Ac, "CenterEdgeLabelPlacementStrategy", 232, ke, E4e, Mde), lne; + b(431, 22, { 3: 1, 34: 1, 22: 1, 431: 1 }, Jz); + var Tsn, V_, Asn = we(Ac, "ConstraintCalculationStrategy", 431, ke, qge, Tde), ane; + b(322, 22, { 3: 1, 34: 1, 22: 1, 322: 1, 188: 1, 196: 1 }, _D), o.dg = function() { + return K_n(this); + }, o.qg = function() { + return K_n(this); + }; + var pj, $8, Ssn, Psn = we(Ac, "CrossingMinimizationStrategy", 322, ke, F2e, Ade), dne; + b(351, 22, { 3: 1, 34: 1, 22: 1, 351: 1 }, HD); + var Isn, W_, VP, Osn = we(Ac, "CuttingStrategy", 351, ke, B2e, Sde), bne; + b(348, 22, { 3: 1, 34: 1, 22: 1, 348: 1, 188: 1, 196: 1 }, f7), o.dg = function() { + return IHn(this); + }, o.qg = function() { + return IHn(this); + }; + var Dsn, J_, wv, Q_, gv, Lsn = we(Ac, "CycleBreakingStrategy", 348, ke, _3e, Pde), wne; + b(428, 22, { 3: 1, 34: 1, 22: 1, 428: 1 }, Qz); + var WP, Nsn, $sn = we(Ac, "DirectionCongruency", 428, ke, Hge, Ide), gne; + b(460, 22, { 3: 1, 34: 1, 22: 1, 460: 1 }, qD); + var pv, Y_, m2, pne = we(Ac, "EdgeConstraint", 460, ke, R2e, Fde), mne; + b(283, 22, { 3: 1, 34: 1, 22: 1, 283: 1 }, g6); + var Z_, nH, eH, tH, JP, iH, xsn = we(Ac, "EdgeLabelSideSelection", 283, ke, k4e, Bde), vne; + b(488, 22, { 3: 1, 34: 1, 22: 1, 488: 1 }, Yz); + var QP, Fsn, Bsn = we(Ac, "EdgeStraighteningStrategy", 488, ke, Jge, Rde), kne; + b(281, 22, { 3: 1, 34: 1, 22: 1, 281: 1 }, p6); + var rH, Rsn, Ksn, YP, _sn, Hsn, qsn = we(Ac, "FixedAlignment", 281, ke, y4e, xde), yne; + b(282, 22, { 3: 1, 34: 1, 22: 1, 282: 1 }, m6); + var Usn, Gsn, zsn, Xsn, x8, Vsn, Wsn = we(Ac, "GraphCompactionStrategy", 282, ke, j4e, Ode), jne; + b(259, 22, { 3: 1, 34: 1, 22: 1, 259: 1 }, Lb); + var mv, ZP, vv, cs, F8, nI, kv, v2, eI, B8, cH = we(Ac, "GraphProperties", 259, ke, uve, Dde), Ene; + b(299, 22, { 3: 1, 34: 1, 22: 1, 299: 1 }, UD); + var mj, uH, oH, sH = we(Ac, "GreedySwitchType", 299, ke, K2e, Lde), Cne; + b(311, 22, { 3: 1, 34: 1, 22: 1, 311: 1 }, GD); + var E3, vj, k2, Mne = we(Ac, "InLayerConstraint", 311, ke, _2e, Nde), Tne; + b(429, 22, { 3: 1, 34: 1, 22: 1, 429: 1 }, Zz); + var fH, Jsn, Qsn = we(Ac, "InteractiveReferencePoint", 429, ke, _ge, $de), Ane, Ysn, C3, sb, tI, Zsn, nfn, iI, efn, kj, rI, R8, M3, Nl, hH, cI, gc, tfn, ka, qc, lH, aH, yj, Dd, fb, T3, ifn, A3, jj, xw, yf, Es, dH, y2, dt, st, rfn, cfn, ufn, ofn, sfn, bH, uI, Gu, hb, wH, S3, K8, Gf, j2, lb, E2, C2, yv, Ld, ffn, gH, pH, P3; + b(171, 22, { 3: 1, 34: 1, 22: 1, 171: 1 }, h7); + var _8, ya, H8, Fw, Ej, hfn = we(Ac, "LayerConstraint", 171, ke, q3e, Kde), Sne; + b(859, 1, ms, e8n), o.hf = function(e) { + vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), uin), ""), "Direction Congruency"), "Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."), kfn), (a1(), Pt)), $sn), jn((pf(), xn))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), oin), ""), "Feedback Edges"), "Whether feedback edges should be highlighted by routing around the nodes."), (_n(), !1)), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), lS), ""), "Interactive Reference Point"), "Determines which point of a node is considered by interactive layout phases."), Tfn), Pt), Qsn), jn(xn)))), ci(e, lS, fR, jee), ci(e, lS, o8, yee), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), sin), ""), "Merge Edges"), "Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), fin), ""), "Merge Hierarchy-Crossing Edges"), "If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."), !0), ji), zt), jn(xn)))), vn(e, new ln(Dhe(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), hin), ""), "Allow Non-Flow Ports To Switch Sides"), "Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."), !1), ji), zt), jn(_d)), A(T(fn, 1), J, 2, 6, ["org.eclipse.elk.layered.northOrSouthPort"])))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), lin), ""), "Port Sorting Strategy"), "Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."), Nfn), Pt), qhn), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), ain), ""), "Thoroughness"), "How much effort should be spent to produce a nice layout."), Y(7)), Zr), Gi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), din), ""), "Add Unnecessary Bendpoints"), "Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), bin), ""), "Generate Position and Layer IDs"), "If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), fR), "cycleBreaking"), "Cycle Breaking Strategy"), "Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."), vfn), Pt), Lsn), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Hy), LR), "Node Layering Strategy"), "Strategy for node layering."), Pfn), Pt), Ohn), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), win), LR), "Layer Constraint"), "Determines a constraint on the placement of the node regarding the layering."), Afn), Pt), hfn), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), gin), LR), "Layer Choice Constraint"), "Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), null), Zr), Gi), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), pin), LR), "Layer ID"), "Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."), Y(-1)), Zr), Gi), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), hR), YXn), "Upper Bound On Width [MinWidth Layerer]"), "Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."), Y(4)), Zr), Gi), jn(xn)))), ci(e, hR, Hy, Pee), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), lR), YXn), "Upper Layer Estimation Scaling Factor [MinWidth Layerer]"), "Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."), Y(2)), Zr), Gi), jn(xn)))), ci(e, lR, Hy, Oee), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), aR), ZXn), "Node Promotion Strategy"), "Reduces number of dummy nodes after layering phase (if possible)."), Sfn), Pt), Khn), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), dR), ZXn), "Max Node Promotion Iterations"), "Limits the number of iterations for node promotion."), Y(0)), Zr), Gi), jn(xn)))), ci(e, dR, aR, null), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), bR), "layering.coffmanGraham"), "Layer Bound"), "The maximum number of nodes allowed per layer."), Y(et)), Zr), Gi), jn(xn)))), ci(e, bR, Hy, Cee), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), o8), Vm), "Crossing Minimization Strategy"), "Strategy for crossing minimization."), mfn), Pt), Psn), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), min), Vm), "Force Node Model Order"), "The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), wR), Vm), "Hierarchical Sweepiness"), "How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."), 0.1), Qi), fi), jn(xn)))), ci(e, wR, CS, Vne), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), gR), Vm), "Semi-Interactive Crossing Minimization"), "Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."), !1), ji), zt), jn(xn)))), ci(e, gR, o8, nee), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), vin), Vm), "In Layer Predecessor of"), "Allows to set a constraint which specifies of which node the current node is the predecessor. If set to 's' then the node is the predecessor of 's' and is in the same layer"), null), $2), fn), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), kin), Vm), "In Layer Successor of"), "Allows to set a constraint which specifies of which node the current node is the successor. If set to 's' then the node is the successor of 's' and is in the same layer"), null), $2), fn), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), yin), Vm), "Position Choice Constraint"), "Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), null), Zr), Gi), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), jin), Vm), "Position ID"), "Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."), Y(-1)), Zr), Gi), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Ein), nVn), "Greedy Switch Activation Threshold"), "By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."), Y(40)), Zr), Gi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), pR), nVn), "Greedy Switch Crossing Minimization"), "Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."), pfn), Pt), sH), jn(xn)))), ci(e, pR, o8, zne), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), aS), "crossingMinimization.greedySwitchHierarchical"), "Greedy Switch Crossing Minimization (hierarchical)"), "Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."), gfn), Pt), sH), jn(xn)))), ci(e, aS, o8, qne), ci(e, aS, CS, Une), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), c2), eVn), "Node Placement Strategy"), "Strategy for node placement."), Lfn), Pt), $hn), jn(xn)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), dS), eVn), "Favor Straight Edges Over Balancing"), "Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."), ji), zt), jn(xn)))), ci(e, dS, c2, Hee), ci(e, dS, c2, qee), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), mR), tVn), "BK Edge Straightening"), "Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."), Ifn), Pt), Bsn), jn(xn)))), ci(e, mR, c2, Bee), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), vR), tVn), "BK Fixed Alignment"), "Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."), Ofn), Pt), qsn), jn(xn)))), ci(e, vR, c2, Kee), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), kR), "nodePlacement.linearSegments"), "Linear Segments Deflection Dampening"), "Dampens the movement of nodes to keep the diagram from getting too large."), 0.3), Qi), fi), jn(xn)))), ci(e, kR, c2, Gee), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), yR), "nodePlacement.networkSimplex"), "Node Flexibility"), "Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."), Pt), RH), jn(mi)))), ci(e, yR, c2, Wee), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), jR), "nodePlacement.networkSimplex.nodeFlexibility"), "Node Flexibility Default"), "Default value of the 'nodeFlexibility' option for the children of a hierarchical node."), Dfn), Pt), RH), jn(xn)))), ci(e, jR, c2, Vee), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Cin), iVn), "Self-Loop Distribution"), "Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."), Efn), Pt), zhn), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Min), iVn), "Self-Loop Ordering"), "Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."), Cfn), Pt), Xhn), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), bS), "edgeRouting.splines"), "Spline Routing Mode"), "Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."), Mfn), Pt), Whn), jn(xn)))), ci(e, bS, qy, lee), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), wS), "edgeRouting.splines.sloppy"), "Sloppy Spline Layer Spacing Factor"), "Spacing factor for routing area between layers when using sloppy spline routing."), 0.2), Qi), fi), jn(xn)))), ci(e, wS, qy, dee), ci(e, wS, bS, bee), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), ER), "edgeRouting.polyline"), "Sloped Edge Zone Width"), "Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."), 2), Qi), fi), jn(xn)))), ci(e, ER, qy, oee), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), Tin), Hf), "Spacing Base Value"), "An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Ain), Hf), "Edge Node Between Layers Spacing"), "The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."), 10), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Sin), Hf), "Edge Edge Between Layer Spacing"), "Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."), 10), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Pin), Hf), "Node Node Between Layers Spacing"), "The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."), 20), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Iin), Kin), "Direction Priority"), "Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."), Y(0)), Zr), Gi), jn(Sh)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Oin), Kin), "Shortness Priority"), "Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."), Y(0)), Zr), Gi), jn(Sh)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Din), Kin), "Straightness Priority"), "Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."), Y(0)), Zr), Gi), jn(Sh)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), CR), _in), vXn), "Tries to further compact components (disconnected sub-graphs)."), !1), ji), zt), jn(xn)))), ci(e, CR, t8, !0), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Lin), rVn), "Post Compaction Strategy"), cVn), afn), Pt), Wsn), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Nin), rVn), "Post Compaction Constraint Calculation"), cVn), lfn), Pt), Asn), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), gS), Hin), "High Degree Node Treatment"), "Makes room around high degree nodes to place leafs and trees."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), MR), Hin), "High Degree Node Threshold"), "Whether a node is considered to have a high degree."), Y(16)), Zr), Gi), jn(xn)))), ci(e, MR, gS, !0), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), TR), Hin), "High Degree Node Maximum Tree Height"), "Maximum height of a subtree connected to a high degree node to be moved to separate layers."), Y(5)), Zr), Gi), jn(xn)))), ci(e, TR, gS, !0), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Ol), qin), "Graph Wrapping Strategy"), "For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."), Ffn), Pt), Zhn), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), pS), qin), "Additional Wrapped Edges Spacing"), "To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."), 10), Qi), fi), jn(xn)))), ci(e, pS, Ol, ste), ci(e, pS, Ol, fte), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), mS), qin), "Correction Factor for Wrapping"), "At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."), 1), Qi), fi), jn(xn)))), ci(e, mS, Ol, lte), ci(e, mS, Ol, ate), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), s8), uVn), "Cutting Strategy"), "The strategy by which the layer indexes are determined at which the layering crumbles into chunks."), xfn), Pt), Osn), jn(xn)))), ci(e, s8, Ol, mte), ci(e, s8, Ol, vte), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), AR), uVn), "Manually Specified Cuts"), "Allows the user to specify her own cuts for a certain graph."), Xf), rs), jn(xn)))), ci(e, AR, s8, bte), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), SR), "wrapping.cutting.msd"), "MSD Freedom"), "The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."), $fn), Zr), Gi), jn(xn)))), ci(e, SR, s8, gte), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), vS), oVn), "Validification Strategy"), "When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."), Bfn), Pt), Yhn), jn(xn)))), ci(e, vS, Ol, Ote), ci(e, vS, Ol, Dte), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), kS), oVn), "Valid Indices for Wrapping"), null), Xf), rs), jn(xn)))), ci(e, kS, Ol, Ste), ci(e, kS, Ol, Pte), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), yS), Uin), "Improve Cuts"), "For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."), !0), ji), zt), jn(xn)))), ci(e, yS, Ol, Ete), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), jS), Uin), "Distance Penalty When Improving Cuts"), null), 2), Qi), fi), jn(xn)))), ci(e, jS, Ol, yte), ci(e, jS, yS, !0), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), PR), Uin), "Improve Wrapped Edges"), "The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."), !0), ji), zt), jn(xn)))), ci(e, PR, Ol, Mte), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), $in), NR), "Edge Label Side Selection"), "Method to decide on edge label sides."), jfn), Pt), xsn), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), xin), NR), "Edge Center Label Placement Strategy"), "Determines in which layer center labels of long edges should be placed."), yfn), Pt), bv), yt(xn, A(T(Yh, 1), G, 170, 0, [C1]))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), ES), f8), "Consider Model Order"), "Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."), wfn), Pt), Hhn), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Fin), f8), "Consider Port Order"), "If disabled the port order of output ports is derived from the edge order and input ports are ordered by their incoming connections. If enabled all ports are ordered by the port model order."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Bin), f8), "No Model Order"), "Set on a node to not set a model order for this node even though it is a real node."), !1), ji), zt), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), IR), f8), "Consider Model Order for Components"), "If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."), dfn), Pt), Lon), jn(xn)))), ci(e, IR, t8, null), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Rin), f8), "Long Edge Ordering Strategy"), "Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."), bfn), Pt), Lhn), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), OR), f8), "Crossing Counter Node Order Influence"), "Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."), 0), Qi), fi), jn(xn)))), ci(e, OR, ES, null), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), DR), f8), "Crossing Counter Port Order Influence"), "Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."), 0), Qi), fi), jn(xn)))), ci(e, DR, ES, null), Czn((new t8n(), e)); + }; + var Pne, Ine, One, lfn, Dne, afn, Lne, dfn, Nne, $ne, xne, bfn, Fne, Bne, Rne, wfn, Kne, _ne, Hne, gfn, qne, Une, Gne, pfn, zne, Xne, Vne, Wne, Jne, Qne, Yne, Zne, nee, eee, mfn, tee, vfn, iee, kfn, ree, yfn, cee, jfn, uee, oee, see, Efn, fee, Cfn, hee, Mfn, lee, aee, dee, bee, wee, gee, pee, mee, vee, kee, Tfn, yee, jee, Eee, Cee, Mee, Tee, Afn, Aee, See, Pee, Iee, Oee, Dee, Lee, Sfn, Nee, Pfn, $ee, xee, Fee, Ifn, Bee, Ree, Ofn, Kee, _ee, Hee, qee, Uee, Gee, zee, Xee, Dfn, Vee, Wee, Jee, Lfn, Qee, Nfn, Yee, Zee, nte, ete, tte, ite, rte, cte, ute, ote, ste, fte, hte, lte, ate, dte, bte, wte, $fn, gte, pte, xfn, mte, vte, kte, yte, jte, Ete, Cte, Mte, Tte, Ffn, Ate, Ste, Pte, Ite, Bfn, Ote, Dte; + w(Ac, "LayeredMetaDataProvider", 859), b(998, 1, ms, t8n), o.hf = function(e) { + Czn(e); + }; + var Mh, mH, oI, q8, sI, Rfn, fI, Bw, hI, Kfn, _fn, lI, vH, Qh, kH, ab, Hfn, Cj, yH, qfn, Lte, Nte, $te, aI, jH, U8, Nd, xte, Do, Ufn, Gfn, dI, EH, Th, bI, $l, zfn, Xfn, Vfn, CH, MH, Wfn, v1, TH, Jfn, Rw, Qfn, Yfn, Zfn, wI, Kw, $d, nhn, ehn, xr, thn, Fte, ou, gI, ihn, rhn, chn, ja, xd, pI, uhn, ohn, mI, db, shn, AH, G8, fhn, bb, z8, vI, Fd, SH, jv, kI, Bd, hhn, lhn, ahn, Ev, dhn, Bte, Rte, Kte, _te, wb, _w, Ht, k1, Hte, Hw, bhn, Cv, whn, qw, qte, Mv, ghn, I3, Ute, Gte, Mj, PH, phn, Tj, Ws, M2, T2, gb, Rd, yI, Uw, IH, Tv, Av, pb, A2, OH, Aj, X8, V8, zte, Xte, Vte, mhn, Wte, DH, vhn, khn, yhn, jhn, LH, Ehn, Chn, Mhn, Thn, NH, jI; + w(Ac, "LayeredOptions", 998), b(999, 1, {}, Upn), o.sf = function() { + var e; + return e = new Uyn(), e; + }, o.tf = function(e) { + }, w(Ac, "LayeredOptions/LayeredFactory", 999), b(1391, 1, {}), o.a = 0; + var Jte; + w(dc, "ElkSpacings/AbstractSpacingsBuilder", 1391), b(792, 1391, {}, XY); + var EI, Qte; + w(Ac, "LayeredSpacings/LayeredSpacingsBuilder", 792), b(265, 22, { 3: 1, 34: 1, 22: 1, 265: 1, 188: 1, 196: 1 }, dg), o.dg = function() { + return Rqn(this); + }, o.qg = function() { + return Rqn(this); + }; + var Sv, $H, Pv, Ahn, Shn, Phn, CI, xH, Ihn, Ohn = we(Ac, "LayeringStrategy", 265, ke, xme, _de), Yte; + b(390, 22, { 3: 1, 34: 1, 22: 1, 390: 1 }, zD); + var FH, Dhn, MI, Lhn = we(Ac, "LongEdgeOrderingStrategy", 390, ke, H2e, Hde), Zte; + b(203, 22, { 3: 1, 34: 1, 22: 1, 203: 1 }, wC); + var S2, P2, TI, BH, RH = we(Ac, "NodeFlexibility", 203, ke, Qpe, qde), nie; + b(323, 22, { 3: 1, 34: 1, 22: 1, 323: 1, 188: 1, 196: 1 }, l7), o.dg = function() { + return PHn(this); + }, o.qg = function() { + return PHn(this); + }; + var W8, KH, _H, J8, Nhn, $hn = we(Ac, "NodePlacementStrategy", 323, ke, H3e, Ude), eie; + b(243, 22, { 3: 1, 34: 1, 22: 1, 243: 1 }, Nb); + var xhn, mb, Gw, Sj, Fhn, Bhn, Pj, Rhn, AI, SI, Khn = we(Ac, "NodePromotionStrategy", 243, ke, ove, Gde), tie; + b(284, 22, { 3: 1, 34: 1, 22: 1, 284: 1 }, gC); + var _hn, y1, HH, qH, Hhn = we(Ac, "OrderingStrategy", 284, ke, Ype, zde), iie; + b(430, 22, { 3: 1, 34: 1, 22: 1, 430: 1 }, nX); + var UH, GH, qhn = we(Ac, "PortSortingStrategy", 430, ke, Uge, Xde), rie; + b(463, 22, { 3: 1, 34: 1, 22: 1, 463: 1 }, XD); + var zu, Qc, Q8, cie = we(Ac, "PortType", 463, ke, q2e, Vde), uie; + b(387, 22, { 3: 1, 34: 1, 22: 1, 387: 1 }, VD); + var Uhn, zH, Ghn, zhn = we(Ac, "SelfLoopDistributionStrategy", 387, ke, U2e, Wde), oie; + b(349, 22, { 3: 1, 34: 1, 22: 1, 349: 1 }, WD); + var XH, Ij, VH, Xhn = we(Ac, "SelfLoopOrderingStrategy", 349, ke, G2e, Jde), sie; + b(312, 1, { 312: 1 }, yGn), w(Ac, "Spacings", 312), b(350, 22, { 3: 1, 34: 1, 22: 1, 350: 1 }, JD); + var WH, Vhn, Y8, Whn = we(Ac, "SplineRoutingMode", 350, ke, z2e, Qde), fie; + b(352, 22, { 3: 1, 34: 1, 22: 1, 352: 1 }, QD); + var JH, Jhn, Qhn, Yhn = we(Ac, "ValidifyStrategy", 352, ke, X2e, Yde), hie; + b(388, 22, { 3: 1, 34: 1, 22: 1, 388: 1 }, YD); + var zw, QH, Iv, Zhn = we(Ac, "WrappingStrategy", 388, ke, V2e, Zde), lie; + b(1398, 1, kr, X5n), o.rg = function(e) { + return u(e, 36), aie; + }, o.Kf = function(e, t) { + DIe(this, u(e, 36), t); + }; + var aie; + w(SS, "DepthFirstCycleBreaker", 1398), b(793, 1, kr, dW), o.rg = function(e) { + return u(e, 36), die; + }, o.Kf = function(e, t) { + $Le(this, u(e, 36), t); + }, o.sg = function(e) { + return u(sn(e, cA(this.d, e.c.length)), 10); + }; + var die; + w(SS, "GreedyCycleBreaker", 793), b(1401, 793, kr, KMn), o.sg = function(e) { + var t, i, r, c; + for (c = null, t = et, r = new C(e); r.a < r.c.c.length; ) + i = u(E(r), 10), kt(i, (W(), dt)) && u(v(i, dt), 17).a < t && (t = u(v(i, dt), 17).a, c = i); + return c || u(sn(e, cA(this.d, e.c.length)), 10); + }, w(SS, "GreedyModelOrderCycleBreaker", 1401), b(1399, 1, kr, z5n), o.rg = function(e) { + return u(e, 36), bie; + }, o.Kf = function(e, t) { + _Ie(this, u(e, 36), t); + }; + var bie; + w(SS, "InteractiveCycleBreaker", 1399), b(1400, 1, kr, U5n), o.rg = function(e) { + return u(e, 36), wie; + }, o.Kf = function(e, t) { + QIe(this, u(e, 36), t); + }, o.a = 0, o.b = 0; + var wie; + w(SS, "ModelOrderCycleBreaker", 1400), b(1413, 1, kr, q5n), o.rg = function(e) { + return u(e, 36), gie; + }, o.Kf = function(e, t) { + KDe(this, u(e, 36), t); + }; + var gie; + w(Dl, "BreadthFirstModelOrderLayerer", 1413), b(1414, 1, Ne, Gpn), o.Ne = function(e, t) { + return lEe(u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Dl, "BreadthFirstModelOrderLayerer/lambda$0$Type", 1414), b(1404, 1, kr, dCn), o.rg = function(e) { + return u(e, 36), pie; + }, o.Kf = function(e, t) { + KLe(this, u(e, 36), t); + }; + var pie; + w(Dl, "CoffmanGrahamLayerer", 1404), b(1405, 1, Ne, O7n), o.Ne = function(e, t) { + return QEe(this.a, u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Dl, "CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type", 1405), b(1406, 1, Ne, D7n), o.Ne = function(e, t) { + return Qbe(this.a, u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Dl, "CoffmanGrahamLayerer/lambda$1$Type", 1406), b(1415, 1, kr, G5n), o.rg = function(e) { + return u(e, 36), mie; + }, o.Kf = function(e, t) { + ALe(this, u(e, 36), t); + }, o.c = 0, o.e = 0; + var mie; + w(Dl, "DepthFirstModelOrderLayerer", 1415), b(1416, 1, Ne, zpn), o.Ne = function(e, t) { + return aEe(u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Dl, "DepthFirstModelOrderLayerer/lambda$0$Type", 1416), b(1407, 1, kr, Xpn), o.rg = function(e) { + return u(e, 36), Ke(Ke(Ke(new ri(), (Vi(), Vs), (er(), N_)), Wh, Nw), Dc, Lw); + }, o.Kf = function(e, t) { + ZDe(u(e, 36), t); + }, w(Dl, "InteractiveLayerer", 1407), b(578, 1, { 578: 1 }, Vyn), o.a = 0, o.c = 0, w(Dl, "InteractiveLayerer/LayerSpan", 578), b(1403, 1, kr, J5n), o.rg = function(e) { + return u(e, 36), vie; + }, o.Kf = function(e, t) { + ATe(this, u(e, 36), t); + }; + var vie; + w(Dl, "LongestPathLayerer", 1403), b(1412, 1, kr, W5n), o.rg = function(e) { + return u(e, 36), kie; + }, o.Kf = function(e, t) { + QTe(this, u(e, 36), t); + }; + var kie; + w(Dl, "LongestPathSourceLayerer", 1412), b(1410, 1, kr, Q5n), o.rg = function(e) { + return u(e, 36), Ke(Ke(Ke(new ri(), (Vi(), Vs), (er(), b2)), Wh, Nw), Dc, Lw); + }, o.Kf = function(e, t) { + sLe(this, u(e, 36), t); + }, o.a = 0, o.b = 0, o.d = 0; + var nln, eln; + w(Dl, "MinWidthLayerer", 1410), b(1411, 1, Ne, L7n), o.Ne = function(e, t) { + return Pve(this, u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Dl, "MinWidthLayerer/MinOutgoingEdgesComparator", 1411), b(1402, 1, kr, Y5n), o.rg = function(e) { + return u(e, 36), yie; + }, o.Kf = function(e, t) { + jOe(this, u(e, 36), t); + }; + var yie; + w(Dl, "NetworkSimplexLayerer", 1402), b(1408, 1, kr, _An), o.rg = function(e) { + return u(e, 36), Ke(Ke(Ke(new ri(), (Vi(), Vs), (er(), b2)), Wh, Nw), Dc, Lw); + }, o.Kf = function(e, t) { + uDe(this, u(e, 36), t); + }, o.d = 0, o.f = 0, o.g = 0, o.i = 0, o.s = 0, o.t = 0, o.u = 0, w(Dl, "StretchWidthLayerer", 1408), b(1409, 1, Ne, Vpn), o.Ne = function(e, t) { + return u4e(u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Dl, "StretchWidthLayerer/1", 1409), b(413, 1, Mrn), o.gg = function(e, t, i, r, c, s) { + }, o.ug = function(e, t, i) { + return aUn(this, e, t, i); + }, o.fg = function() { + this.g = K(ug, fVn, 28, this.d, 15, 1), this.f = K(ug, fVn, 28, this.d, 15, 1); + }, o.hg = function(e, t) { + this.e[e] = K(ye, _e, 28, t[e].length, 15, 1); + }, o.ig = function(e, t, i) { + var r; + r = i[e][t], r.p = t, this.e[e][t] = t; + }, o.jg = function(e, t, i, r) { + u(sn(r[e][t].j, i), 12).p = this.d++; + }, o.b = 0, o.c = 0, o.d = 0, w(Lu, "AbstractBarycenterPortDistributor", 413), b(1698, 1, Ne, N7n), o.Ne = function(e, t) { + return t9e(this.a, u(e, 12), u(t, 12)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Lu, "AbstractBarycenterPortDistributor/lambda$0$Type", 1698), b(832, 1, _y, mJ), o.gg = function(e, t, i, r, c, s) { + }, o.ig = function(e, t, i) { + }, o.jg = function(e, t, i, r) { + }, o.eg = function() { + return !1; + }, o.fg = function() { + this.c = this.e.a, this.g = this.f.g; + }, o.hg = function(e, t) { + t[e][0].c.p = e; + }, o.kg = function() { + return !1; + }, o.vg = function(e, t, i, r) { + i ? wKn(this, e) : (vKn(this, e, r), NGn(this, e, t)), e.c.length > 1 && (on(un(v(Hi((Ln(0, e.c.length), u(e.c[0], 10))), (cn(), ab)))) ? HHn(e, this.d, u(this, 669)) : (Dn(), Zt(e, this.d)), qxn(this.e, e)); + }, o.lg = function(e, t, i, r) { + var c, s, f, h, l, a, d; + for (t != uPn(i, e.length) && (s = e[t - (i ? 1 : -1)], HJ(this.f, s, i ? (pr(), Qc) : (pr(), zu))), c = e[t][0], d = !r || c.k == (Vn(), ni), a = If(e[t]), this.vg(a, d, !1, i), f = 0, l = new C(a); l.a < l.c.c.length; ) + h = u(E(l), 10), e[t][f++] = h; + return !1; + }, o.mg = function(e, t) { + var i, r, c, s, f; + for (f = uPn(t, e.length), s = If(e[f]), this.vg(s, !1, !0, t), i = 0, c = new C(s); c.a < c.c.c.length; ) + r = u(E(c), 10), e[f][i++] = r; + return !1; + }, w(Lu, "BarycenterHeuristic", 832), b(667, 1, { 667: 1 }, F7n), o.Ib = function() { + return "BarycenterState [node=" + this.c + ", summedWeight=" + this.d + ", degree=" + this.b + ", barycenter=" + this.a + ", visited=" + this.e + "]"; + }, o.b = 0, o.d = 0, o.e = !1; + var jie = w(Lu, "BarycenterHeuristic/BarycenterState", 667); + b(1865, 1, Ne, $7n), o.Ne = function(e, t) { + return Jke(this.a, u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Lu, "BarycenterHeuristic/lambda$0$Type", 1865), b(831, 1, _y, QZ), o.fg = function() { + }, o.gg = function(e, t, i, r, c, s) { + }, o.jg = function(e, t, i, r) { + }, o.hg = function(e, t) { + this.a[e] = K(jie, { 3: 1, 4: 1, 5: 1, 2117: 1 }, 667, t[e].length, 0, 1), this.b[e] = K(Eie, { 3: 1, 4: 1, 5: 1, 2118: 1 }, 239, t[e].length, 0, 1); + }, o.ig = function(e, t, i) { + nRn(this, i[e][t], !0); + }, o.c = !1, w(Lu, "ForsterConstraintResolver", 831), b(239, 1, { 239: 1 }, XIn, kGn), o.Ib = function() { + var e, t; + for (t = new x1(), t.a += "[", e = 0; e < this.d.length; e++) + Re(t, wRn(this.d[e])), Tf(this.g, this.d[0]).a != null && Re(Re((t.a += "<", t), jle(Tf(this.g, this.d[0]).a)), ">"), e < this.d.length - 1 && (t.a += cr); + return (t.a += "]", t).a; + }, o.a = 0, o.c = 0, o.f = 0; + var Eie = w(Lu, "ForsterConstraintResolver/ConstraintGroup", 239); + b(1860, 1, re, x7n), o.Cd = function(e) { + nRn(this.a, u(e, 10), !1); + }, w(Lu, "ForsterConstraintResolver/lambda$0$Type", 1860), b(219, 1, { 219: 1, 230: 1 }, EGn), o.gg = function(e, t, i, r, c, s) { + }, o.hg = function(e, t) { + }, o.fg = function() { + this.r = K(ye, _e, 28, this.n, 15, 1); + }, o.ig = function(e, t, i) { + var r, c; + c = i[e][t], r = c.e, r && nn(this.b, r); + }, o.jg = function(e, t, i, r) { + ++this.n; + }, o.Ib = function() { + return $Gn(this.e, new ei()); + }, o.g = !1, o.i = !1, o.n = 0, o.s = !1, w(Lu, "GraphInfoHolder", 219), b(1905, 1, _y, Wpn), o.gg = function(e, t, i, r, c, s) { + }, o.hg = function(e, t) { + }, o.jg = function(e, t, i, r) { + }, o.ug = function(e, t, i) { + return i && t > 0 ? DN(this.a, e[t - 1], e[t]) : !i && t < e.length - 1 ? DN(this.a, e[t], e[t + 1]) : T$(this.a, e[t], i ? (en(), Wn) : (en(), Zn)), PMe(this, e, t, i); + }, o.fg = function() { + this.d = K(ye, _e, 28, this.c, 15, 1), this.a = new D7(this.d); + }, o.ig = function(e, t, i) { + var r; + r = i[e][t], this.c += r.j.c.length; + }, o.c = 0, w(Lu, "GreedyPortDistributor", 1905), b(1421, 1, kr, i8n), o.rg = function(e) { + return X6e(u(e, 36)); + }, o.Kf = function(e, t) { + HOe(u(e, 36), t); + }; + var Cie; + w(Lu, "InteractiveCrossingMinimizer", 1421), b(1422, 1, Ne, R7n), o.Ne = function(e, t) { + return Oke(this, u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Lu, "InteractiveCrossingMinimizer/1", 1422), b(514, 1, { 514: 1, 106: 1, 47: 1 }, gD), o.rg = function(e) { + var t; + return u(e, 36), t = DC(Mie), Ke(t, (Vi(), Dc), (er(), FP)), t; + }, o.Kf = function(e, t) { + WSe(this, u(e, 36), t); + }, o.e = 0; + var Mie; + w(Lu, "LayerSweepCrossingMinimizer", 514), b(1418, 1, re, K7n), o.Cd = function(e) { + RPe(this.a, u(e, 219)); + }, w(Lu, "LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type", 1418), b(1419, 1, re, _7n), o.Cd = function(e) { + G6e(this.a, u(e, 219)); + }, w(Lu, "LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type", 1419), b(1420, 1, re, H7n), o.Cd = function(e) { + YUn(this.a, u(e, 219)); + }, w(Lu, "LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type", 1420), b(464, 22, { 3: 1, 34: 1, 22: 1, 464: 1 }, ZD); + var Oj, Z8, PI, Tie = we(Lu, "LayerSweepCrossingMinimizer/CrossMinType", 464, ke, W2e, n0e), Aie; + b(1417, 1, De, Jpn), o.Mb = function(e) { + return RQ(), u(e, 30).a.c.length == 0; + }, w(Lu, "LayerSweepCrossingMinimizer/lambda$0$Type", 1417), b(1862, 1, _y, MOn), o.fg = function() { + }, o.gg = function(e, t, i, r, c, s) { + }, o.jg = function(e, t, i, r) { + }, o.hg = function(e, t) { + t[e][0].c.p = e, this.b[e] = K(Sie, { 3: 1, 4: 1, 5: 1, 2043: 1 }, 668, t[e].length, 0, 1); + }, o.ig = function(e, t, i) { + var r; + r = i[e][t], r.p = t, $t(this.b[e], t, new Qpn()); + }, w(Lu, "LayerSweepTypeDecider", 1862), b(668, 1, { 668: 1 }, Qpn), o.Ib = function() { + return "NodeInfo [connectedEdges=" + this.a + ", hierarchicalInfluence=" + this.b + ", randomInfluence=" + this.c + "]"; + }, o.a = 0, o.b = 0, o.c = 0; + var Sie = w(Lu, "LayerSweepTypeDecider/NodeInfo", 668); + b(1863, 1, gh, Ypn), o.Lb = function(e) { + return D6(new Of(u(e, 12).b)); + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return D6(new Of(u(e, 12).b)); + }, w(Lu, "LayerSweepTypeDecider/lambda$0$Type", 1863), b(1864, 1, gh, Zpn), o.Lb = function(e) { + return D6(new Of(u(e, 12).b)); + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return D6(new Of(u(e, 12).b)); + }, w(Lu, "LayerSweepTypeDecider/lambda$1$Type", 1864), b(1906, 413, Mrn, Wjn), o.tg = function(e, t, i) { + var r, c, s, f, h, l, a, d, g; + switch (a = this.g, i.g) { + case 1: { + for (r = 0, c = 0, l = new C(e.j); l.a < l.c.c.length; ) + f = u(E(l), 12), f.e.c.length != 0 && (++r, f.j == (en(), Xn) && ++c); + for (s = t + c, g = t + r, h = B0(e, (pr(), zu)).Kc(); h.Ob(); ) + f = u(h.Pb(), 12), f.j == (en(), Xn) ? (a[f.p] = s, --s) : (a[f.p] = g, --g); + return r; + } + case 2: { + for (d = 0, h = B0(e, (pr(), Qc)).Kc(); h.Ob(); ) + f = u(h.Pb(), 12), ++d, a[f.p] = t + d; + return d; + } + default: + throw M(new W9()); + } + }, w(Lu, "LayerTotalPortDistributor", 1906), b(669, 832, { 669: 1, 230: 1 }, gxn), o.vg = function(e, t, i, r) { + i ? wKn(this, e) : (vKn(this, e, r), NGn(this, e, t)), e.c.length > 1 && (on(un(v(Hi((Ln(0, e.c.length), u(e.c[0], 10))), (cn(), ab)))) ? HHn(e, this.d, this) : (Dn(), Zt(e, this.d)), on(un(v(Hi((Ln(0, e.c.length), u(e.c[0], 10))), ab))) || qxn(this.e, e)); + }, w(Lu, "ModelOrderBarycenterHeuristic", 669), b(1866, 1, Ne, q7n), o.Ne = function(e, t) { + return Oje(this.a, u(e, 10), u(t, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Lu, "ModelOrderBarycenterHeuristic/lambda$0$Type", 1866), b(1423, 1, kr, r8n), o.rg = function(e) { + var t; + return u(e, 36), t = DC(Pie), Ke(t, (Vi(), Dc), (er(), FP)), t; + }, o.Kf = function(e, t) { + bge((u(e, 36), t)); + }; + var Pie; + w(Lu, "NoCrossingMinimizer", 1423), b(809, 413, Mrn, Ez), o.tg = function(e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m; + switch (g = this.g, i.g) { + case 1: { + for (c = 0, s = 0, d = new C(e.j); d.a < d.c.c.length; ) + l = u(E(d), 12), l.e.c.length != 0 && (++c, l.j == (en(), Xn) && ++s); + for (r = 1 / (c + 1), f = t + s * r, m = t + 1 - r, a = B0(e, (pr(), zu)).Kc(); a.Ob(); ) + l = u(a.Pb(), 12), l.j == (en(), Xn) ? (g[l.p] = f, f -= r) : (g[l.p] = m, m -= r); + break; + } + case 2: { + for (h = 0, d = new C(e.j); d.a < d.c.c.length; ) + l = u(E(d), 12), l.g.c.length == 0 || ++h; + for (r = 1 / (h + 1), p = t + r, a = B0(e, (pr(), Qc)).Kc(); a.Ob(); ) + l = u(a.Pb(), 12), g[l.p] = p, p += r; + break; + } + default: + throw M(new Gn("Port type is undefined")); + } + return 1; + }, w(Lu, "NodeRelativePortDistributor", 809), b(822, 1, {}, FPn, QKn), w(Lu, "SweepCopy", 822), b(1861, 1, _y, $Bn), o.hg = function(e, t) { + }, o.fg = function() { + var e; + e = K(ye, _e, 28, this.f, 15, 1), this.d = new Q7n(e), this.a = new D7(e); + }, o.gg = function(e, t, i, r, c, s) { + var f; + f = u(sn(s[e][t].j, i), 12), c.c == f && c.c.i.c == c.d.i.c && ++this.e[e]; + }, o.ig = function(e, t, i) { + var r; + r = i[e][t], this.c[e] = this.c[e] | r.k == (Vn(), Hc); + }, o.jg = function(e, t, i, r) { + var c; + c = u(sn(r[e][t].j, i), 12), c.p = this.f++, c.g.c.length + c.e.c.length > 1 && (c.j == (en(), Zn) ? this.b[e] = !0 : c.j == Wn && e > 0 && (this.b[e - 1] = !0)); + }, o.f = 0, w(Xh, "AllCrossingsCounter", 1861), b(595, 1, {}, ET), o.b = 0, o.d = 0, w(Xh, "BinaryIndexedTree", 595), b(532, 1, {}, D7); + var tln, II; + w(Xh, "CrossingsCounter", 532), b(1950, 1, Ne, U7n), o.Ne = function(e, t) { + return Kbe(this.a, u(e, 12), u(t, 12)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Xh, "CrossingsCounter/lambda$0$Type", 1950), b(1951, 1, Ne, G7n), o.Ne = function(e, t) { + return _be(this.a, u(e, 12), u(t, 12)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Xh, "CrossingsCounter/lambda$1$Type", 1951), b(1952, 1, Ne, z7n), o.Ne = function(e, t) { + return Hbe(this.a, u(e, 12), u(t, 12)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Xh, "CrossingsCounter/lambda$2$Type", 1952), b(1953, 1, Ne, X7n), o.Ne = function(e, t) { + return qbe(this.a, u(e, 12), u(t, 12)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Xh, "CrossingsCounter/lambda$3$Type", 1953), b(1954, 1, re, V7n), o.Cd = function(e) { + q4e(this.a, u(e, 12)); + }, w(Xh, "CrossingsCounter/lambda$4$Type", 1954), b(1955, 1, De, W7n), o.Mb = function(e) { + return ble(this.a, u(e, 12)); + }, w(Xh, "CrossingsCounter/lambda$5$Type", 1955), b(1956, 1, re, J7n), o.Cd = function(e) { + OMn(this, e); + }, w(Xh, "CrossingsCounter/lambda$6$Type", 1956), b(1957, 1, re, HCn), o.Cd = function(e) { + var t; + v4(), W1(this.b, (t = this.a, u(e, 12), t)); + }, w(Xh, "CrossingsCounter/lambda$7$Type", 1957), b(839, 1, gh, YU), o.Lb = function(e) { + return v4(), kt(u(e, 12), (W(), Gu)); + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return v4(), kt(u(e, 12), (W(), Gu)); + }, w(Xh, "CrossingsCounter/lambda$8$Type", 839), b(1949, 1, {}, Q7n), w(Xh, "HyperedgeCrossingsCounter", 1949), b(478, 1, { 34: 1, 478: 1 }, GAn), o.Fd = function(e) { + return H8e(this, u(e, 478)); + }, o.b = 0, o.c = 0, o.e = 0, o.f = 0; + var jNe = w(Xh, "HyperedgeCrossingsCounter/Hyperedge", 478); + b(374, 1, { 34: 1, 374: 1 }, CM), o.Fd = function(e) { + return tMe(this, u(e, 374)); + }, o.b = 0, o.c = 0; + var Iie = w(Xh, "HyperedgeCrossingsCounter/HyperedgeCorner", 374); + b(531, 22, { 3: 1, 34: 1, 22: 1, 531: 1 }, eX); + var n9, e9, Oie = we(Xh, "HyperedgeCrossingsCounter/HyperedgeCorner/Type", 531, ke, Gge, e0e), Die; + b(1425, 1, kr, c8n), o.rg = function(e) { + return u(v(u(e, 36), (W(), qc)), 21).Hc((mr(), cs)) ? Lie : null; + }, o.Kf = function(e, t) { + dke(this, u(e, 36), t); + }; + var Lie; + w(yr, "InteractiveNodePlacer", 1425), b(1426, 1, kr, u8n), o.rg = function(e) { + return u(v(u(e, 36), (W(), qc)), 21).Hc((mr(), cs)) ? Nie : null; + }, o.Kf = function(e, t) { + Q9e(this, u(e, 36), t); + }; + var Nie, OI, DI; + w(yr, "LinearSegmentsNodePlacer", 1426), b(261, 1, { 34: 1, 261: 1 }, QG), o.Fd = function(e) { + return The(this, u(e, 261)); + }, o.Fb = function(e) { + var t; + return D(e, 261) ? (t = u(e, 261), this.b == t.b) : !1; + }, o.Hb = function() { + return this.b; + }, o.Ib = function() { + return "ls" + ca(this.e); + }, o.a = 0, o.b = 0, o.c = -1, o.d = -1, o.g = 0; + var $ie = w(yr, "LinearSegmentsNodePlacer/LinearSegment", 261); + b(1428, 1, kr, gPn), o.rg = function(e) { + return u(v(u(e, 36), (W(), qc)), 21).Hc((mr(), cs)) ? xie : null; + }, o.Kf = function(e, t) { + TLe(this, u(e, 36), t); + }, o.b = 0, o.g = 0; + var xie; + w(yr, "NetworkSimplexPlacer", 1428), b(1447, 1, Ne, n3n), o.Ne = function(e, t) { + return Ec(u(e, 17).a, u(t, 17).a); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(yr, "NetworkSimplexPlacer/0methodref$compare$Type", 1447), b(1449, 1, Ne, e3n), o.Ne = function(e, t) { + return Ec(u(e, 17).a, u(t, 17).a); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(yr, "NetworkSimplexPlacer/1methodref$compare$Type", 1449), b(655, 1, { 655: 1 }, qCn); + var ENe = w(yr, "NetworkSimplexPlacer/EdgeRep", 655); + b(412, 1, { 412: 1 }, XW), o.b = !1; + var CNe = w(yr, "NetworkSimplexPlacer/NodeRep", 412); + b(515, 13, { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 13: 1, 16: 1, 15: 1, 59: 1, 515: 1 }, Zyn), w(yr, "NetworkSimplexPlacer/Path", 515), b(1429, 1, {}, t3n), o.Kb = function(e) { + return u(e, 18).d.i.k; + }, w(yr, "NetworkSimplexPlacer/Path/lambda$0$Type", 1429), b(1430, 1, De, i3n), o.Mb = function(e) { + return u(e, 273) == (Vn(), Ti); + }, w(yr, "NetworkSimplexPlacer/Path/lambda$1$Type", 1430), b(1431, 1, {}, r3n), o.Kb = function(e) { + return u(e, 18).d.i; + }, w(yr, "NetworkSimplexPlacer/Path/lambda$2$Type", 1431), b(1432, 1, De, Y7n), o.Mb = function(e) { + return PAn(DBn(u(e, 10))); + }, w(yr, "NetworkSimplexPlacer/Path/lambda$3$Type", 1432), b(1433, 1, De, c3n), o.Mb = function(e) { + return Cbe(u(e, 12)); + }, w(yr, "NetworkSimplexPlacer/lambda$0$Type", 1433), b(1434, 1, re, UCn), o.Cd = function(e) { + c1e(this.a, this.b, u(e, 12)); + }, w(yr, "NetworkSimplexPlacer/lambda$1$Type", 1434), b(1443, 1, re, Z7n), o.Cd = function(e) { + OEe(this.a, u(e, 18)); + }, w(yr, "NetworkSimplexPlacer/lambda$10$Type", 1443), b(1444, 1, {}, u3n), o.Kb = function(e) { + return ko(), new Tn(null, new In(u(e, 30).a, 16)); + }, w(yr, "NetworkSimplexPlacer/lambda$11$Type", 1444), b(1445, 1, re, nkn), o.Cd = function(e) { + MAe(this.a, u(e, 10)); + }, w(yr, "NetworkSimplexPlacer/lambda$12$Type", 1445), b(1446, 1, {}, o3n), o.Kb = function(e) { + return ko(), Y(u(e, 125).e); + }, w(yr, "NetworkSimplexPlacer/lambda$13$Type", 1446), b(1448, 1, {}, s3n), o.Kb = function(e) { + return ko(), Y(u(e, 125).e); + }, w(yr, "NetworkSimplexPlacer/lambda$15$Type", 1448), b(1450, 1, De, f3n), o.Mb = function(e) { + return ko(), u(e, 412).c.k == (Vn(), Xt); + }, w(yr, "NetworkSimplexPlacer/lambda$17$Type", 1450), b(1451, 1, De, h3n), o.Mb = function(e) { + return ko(), u(e, 412).c.j.c.length > 1; + }, w(yr, "NetworkSimplexPlacer/lambda$18$Type", 1451), b(1452, 1, re, CIn), o.Cd = function(e) { + h8e(this.c, this.b, this.d, this.a, u(e, 412)); + }, o.c = 0, o.d = 0, w(yr, "NetworkSimplexPlacer/lambda$19$Type", 1452), b(1435, 1, {}, l3n), o.Kb = function(e) { + return ko(), new Tn(null, new In(u(e, 30).a, 16)); + }, w(yr, "NetworkSimplexPlacer/lambda$2$Type", 1435), b(1453, 1, re, ekn), o.Cd = function(e) { + o1e(this.a, u(e, 12)); + }, o.a = 0, w(yr, "NetworkSimplexPlacer/lambda$20$Type", 1453), b(1454, 1, {}, a3n), o.Kb = function(e) { + return ko(), new Tn(null, new In(u(e, 30).a, 16)); + }, w(yr, "NetworkSimplexPlacer/lambda$21$Type", 1454), b(1455, 1, re, tkn), o.Cd = function(e) { + v1e(this.a, u(e, 10)); + }, w(yr, "NetworkSimplexPlacer/lambda$22$Type", 1455), b(1456, 1, De, d3n), o.Mb = function(e) { + return PAn(e); + }, w(yr, "NetworkSimplexPlacer/lambda$23$Type", 1456), b(1457, 1, {}, b3n), o.Kb = function(e) { + return ko(), new Tn(null, new In(u(e, 30).a, 16)); + }, w(yr, "NetworkSimplexPlacer/lambda$24$Type", 1457), b(1458, 1, De, ikn), o.Mb = function(e) { + return Sle(this.a, u(e, 10)); + }, w(yr, "NetworkSimplexPlacer/lambda$25$Type", 1458), b(1459, 1, re, GCn), o.Cd = function(e) { + $je(this.a, this.b, u(e, 10)); + }, w(yr, "NetworkSimplexPlacer/lambda$26$Type", 1459), b(1460, 1, De, w3n), o.Mb = function(e) { + return ko(), !sr(u(e, 18)); + }, w(yr, "NetworkSimplexPlacer/lambda$27$Type", 1460), b(1461, 1, De, g3n), o.Mb = function(e) { + return ko(), !sr(u(e, 18)); + }, w(yr, "NetworkSimplexPlacer/lambda$28$Type", 1461), b(1462, 1, {}, rkn), o.Ve = function(e, t) { + return u1e(this.a, u(e, 30), u(t, 30)); + }, w(yr, "NetworkSimplexPlacer/lambda$29$Type", 1462), b(1436, 1, {}, p3n), o.Kb = function(e) { + return ko(), new Tn(null, new m0(new ie(ce(Qt(u(e, 10)).a.Kc(), new En())))); + }, w(yr, "NetworkSimplexPlacer/lambda$3$Type", 1436), b(1437, 1, De, m3n), o.Mb = function(e) { + return ko(), xpe(u(e, 18)); + }, w(yr, "NetworkSimplexPlacer/lambda$4$Type", 1437), b(1438, 1, re, ckn), o.Cd = function(e) { + NPe(this.a, u(e, 18)); + }, w(yr, "NetworkSimplexPlacer/lambda$5$Type", 1438), b(1439, 1, {}, v3n), o.Kb = function(e) { + return ko(), new Tn(null, new In(u(e, 30).a, 16)); + }, w(yr, "NetworkSimplexPlacer/lambda$6$Type", 1439), b(1440, 1, De, k3n), o.Mb = function(e) { + return ko(), u(e, 10).k == (Vn(), Xt); + }, w(yr, "NetworkSimplexPlacer/lambda$7$Type", 1440), b(1441, 1, {}, y3n), o.Kb = function(e) { + return ko(), new Tn(null, new m0(new ie(ce(Cl(u(e, 10)).a.Kc(), new En())))); + }, w(yr, "NetworkSimplexPlacer/lambda$8$Type", 1441), b(1442, 1, De, j3n), o.Mb = function(e) { + return ko(), Ebe(u(e, 18)); + }, w(yr, "NetworkSimplexPlacer/lambda$9$Type", 1442), b(1424, 1, kr, o8n), o.rg = function(e) { + return u(v(u(e, 36), (W(), qc)), 21).Hc((mr(), cs)) ? Fie : null; + }, o.Kf = function(e, t) { + bIe(u(e, 36), t); + }; + var Fie; + w(yr, "SimpleNodePlacer", 1424), b(185, 1, { 185: 1 }, Wg), o.Ib = function() { + var e; + return e = "", this.c == (sh(), vb) ? e += f3 : this.c == j1 && (e += s3), this.o == (Sf(), Kd) ? e += _B : this.o == zf ? e += "UP" : e += "BALANCED", e; + }, w(da, "BKAlignedLayout", 185), b(523, 22, { 3: 1, 34: 1, 22: 1, 523: 1 }, tX); + var j1, vb, Bie = we(da, "BKAlignedLayout/HDirection", 523, ke, Xge, t0e), Rie; + b(522, 22, { 3: 1, 34: 1, 22: 1, 522: 1 }, iX); + var Kd, zf, Kie = we(da, "BKAlignedLayout/VDirection", 522, ke, Vge, i0e), _ie; + b(1699, 1, {}, zCn), w(da, "BKAligner", 1699), b(1702, 1, {}, iKn), w(da, "BKCompactor", 1702), b(663, 1, { 663: 1 }, E3n), o.a = 0, w(da, "BKCompactor/ClassEdge", 663), b(467, 1, { 467: 1 }, Jyn), o.a = null, o.b = 0, w(da, "BKCompactor/ClassNode", 467), b(1427, 1, kr, JCn), o.rg = function(e) { + return u(v(u(e, 36), (W(), qc)), 21).Hc((mr(), cs)) ? Hie : null; + }, o.Kf = function(e, t) { + ULe(this, u(e, 36), t); + }, o.d = !1; + var Hie; + w(da, "BKNodePlacer", 1427), b(1700, 1, {}, C3n), o.d = 0, w(da, "NeighborhoodInformation", 1700), b(1701, 1, Ne, ukn), o.Ne = function(e, t) { + return mme(this, u(e, 42), u(t, 42)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(da, "NeighborhoodInformation/NeighborComparator", 1701), b(823, 1, {}), w(da, "ThresholdStrategy", 823), b(1825, 823, {}, Qyn), o.wg = function(e, t, i) { + return this.a.o == (Sf(), zf) ? St : ai; + }, o.xg = function() { + }, w(da, "ThresholdStrategy/NullThresholdStrategy", 1825), b(587, 1, { 587: 1 }, QCn), o.c = !1, o.d = !1, w(da, "ThresholdStrategy/Postprocessable", 587), b(1826, 823, {}, Yyn), o.wg = function(e, t, i) { + var r, c, s; + return c = t == i, r = this.a.a[i.p] == t, c || r ? (s = e, this.a.c == (sh(), vb) ? (c && (s = KF(this, t, !0)), !isNaN(s) && !isFinite(s) && r && (s = KF(this, i, !1))) : (c && (s = KF(this, t, !0)), !isNaN(s) && !isFinite(s) && r && (s = KF(this, i, !1))), s) : e; + }, o.xg = function() { + for (var e, t, i, r, c; this.d.b != 0; ) + c = u(f2e(this.d), 587), r = PUn(this, c), r.a && (e = r.a, i = on(this.a.f[this.a.g[c.b.p].p]), !(!i && !sr(e) && e.c.i.c == e.d.i.c) && (t = NHn(this, c), t || Ole(this.e, c))); + for (; this.e.a.c.length != 0; ) + NHn(this, u($Fn(this.e), 587)); + }, w(da, "ThresholdStrategy/SimpleThresholdStrategy", 1826), b(645, 1, { 645: 1, 188: 1, 196: 1 }, M3n), o.dg = function() { + return Uxn(this); + }, o.qg = function() { + return Uxn(this); + }; + var YH; + w(RR, "EdgeRouterFactory", 645), b(1485, 1, kr, s8n), o.rg = function(e) { + return eAe(u(e, 36)); + }, o.Kf = function(e, t) { + yIe(u(e, 36), t); + }; + var qie, Uie, Gie, zie, Xie, iln, Vie, Wie; + w(RR, "OrthogonalEdgeRouter", 1485), b(1478, 1, kr, WCn), o.rg = function(e) { + return Eke(u(e, 36)); + }, o.Kf = function(e, t) { + UDe(this, u(e, 36), t); + }; + var Jie, Qie, Yie, Zie, Dj, nre; + w(RR, "PolylineEdgeRouter", 1478), b(1479, 1, gh, A3n), o.Lb = function(e) { + return UQ(u(e, 10)); + }, o.Fb = function(e) { + return this === e; + }, o.Mb = function(e) { + return UQ(u(e, 10)); + }, w(RR, "PolylineEdgeRouter/1", 1479), b(1872, 1, De, S3n), o.Mb = function(e) { + return u(e, 132).c == (af(), Ea); + }, w(mf, "HyperEdgeCycleDetector/lambda$0$Type", 1872), b(1873, 1, {}, P3n), o.Ze = function(e) { + return u(e, 132).d; + }, w(mf, "HyperEdgeCycleDetector/lambda$1$Type", 1873), b(1874, 1, De, I3n), o.Mb = function(e) { + return u(e, 132).c == (af(), Ea); + }, w(mf, "HyperEdgeCycleDetector/lambda$2$Type", 1874), b(1875, 1, {}, O3n), o.Ze = function(e) { + return u(e, 132).d; + }, w(mf, "HyperEdgeCycleDetector/lambda$3$Type", 1875), b(1876, 1, {}, D3n), o.Ze = function(e) { + return u(e, 132).d; + }, w(mf, "HyperEdgeCycleDetector/lambda$4$Type", 1876), b(1877, 1, {}, T3n), o.Ze = function(e) { + return u(e, 132).d; + }, w(mf, "HyperEdgeCycleDetector/lambda$5$Type", 1877), b(118, 1, { 34: 1, 118: 1 }, yk), o.Fd = function(e) { + return Ahe(this, u(e, 118)); + }, o.Fb = function(e) { + var t; + return D(e, 118) ? (t = u(e, 118), this.g == t.g) : !1; + }, o.Hb = function() { + return this.g; + }, o.Ib = function() { + var e, t, i, r; + for (e = new mo("{"), r = new C(this.n); r.a < r.c.c.length; ) + i = u(E(r), 12), t = qk(i.i), t == null && (t = "n" + tSn(i.i)), e.a += "" + t, r.a < r.c.c.length && (e.a += ","); + return e.a += "}", e.a; + }, o.a = 0, o.b = 0, o.c = NaN, o.d = 0, o.g = 0, o.i = 0, o.o = 0, o.s = NaN, w(mf, "HyperEdgeSegment", 118), b(132, 1, { 132: 1 }, td), o.Ib = function() { + return this.a + "->" + this.b + " (" + z1e(this.c) + ")"; + }, o.d = 0, w(mf, "HyperEdgeSegmentDependency", 132), b(528, 22, { 3: 1, 34: 1, 22: 1, 528: 1 }, rX); + var Ea, Xw, ere = we(mf, "HyperEdgeSegmentDependency/DependencyType", 528, ke, Wge, r0e), tre; + b(1878, 1, {}, okn), w(mf, "HyperEdgeSegmentSplitter", 1878), b(1879, 1, {}, Zjn), o.a = 0, o.b = 0, w(mf, "HyperEdgeSegmentSplitter/AreaRating", 1879), b(339, 1, { 339: 1 }, KL), o.a = 0, o.b = 0, o.c = 0, w(mf, "HyperEdgeSegmentSplitter/FreeArea", 339), b(1880, 1, Ne, L3n), o.Ne = function(e, t) { + return zae(u(e, 118), u(t, 118)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(mf, "HyperEdgeSegmentSplitter/lambda$0$Type", 1880), b(1881, 1, re, MIn), o.Cd = function(e) { + k3e(this.a, this.d, this.c, this.b, u(e, 118)); + }, o.b = 0, w(mf, "HyperEdgeSegmentSplitter/lambda$1$Type", 1881), b(1882, 1, {}, N3n), o.Kb = function(e) { + return new Tn(null, new In(u(e, 118).e, 16)); + }, w(mf, "HyperEdgeSegmentSplitter/lambda$2$Type", 1882), b(1883, 1, {}, $3n), o.Kb = function(e) { + return new Tn(null, new In(u(e, 118).j, 16)); + }, w(mf, "HyperEdgeSegmentSplitter/lambda$3$Type", 1883), b(1884, 1, {}, x3n), o.Ye = function(e) { + return $(R(e)); + }, w(mf, "HyperEdgeSegmentSplitter/lambda$4$Type", 1884), b(664, 1, {}, lN), o.a = 0, o.b = 0, o.c = 0, w(mf, "OrthogonalRoutingGenerator", 664), b(1703, 1, {}, F3n), o.Kb = function(e) { + return new Tn(null, new In(u(e, 118).e, 16)); + }, w(mf, "OrthogonalRoutingGenerator/lambda$0$Type", 1703), b(1704, 1, {}, B3n), o.Kb = function(e) { + return new Tn(null, new In(u(e, 118).j, 16)); + }, w(mf, "OrthogonalRoutingGenerator/lambda$1$Type", 1704), b(670, 1, {}), w(KR, "BaseRoutingDirectionStrategy", 670), b(1870, 670, {}, tjn), o.yg = function(e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j; + if (!(e.r && !e.q)) + for (d = t + e.o * i, a = new C(e.n); a.a < a.c.c.length; ) + for (l = u(E(a), 12), g = cc(A(T(Ci, 1), J, 8, 0, [l.i.n, l.n, l.a])).a, h = new C(l.g); h.a < h.c.c.length; ) + f = u(E(h), 18), sr(f) || (k = f.d, j = cc(A(T(Ci, 1), J, 8, 0, [k.i.n, k.n, k.a])).a, y.Math.abs(g - j) > mh && (s = d, c = e, r = new V(g, s), Fe(f.a, r), U0(this, f, c, r, !1), p = e.r, p && (m = $(R(Zo(p.e, 0))), r = new V(m, s), Fe(f.a, r), U0(this, f, c, r, !1), s = t + p.o * i, c = p, r = new V(m, s), Fe(f.a, r), U0(this, f, c, r, !1)), r = new V(j, s), Fe(f.a, r), U0(this, f, c, r, !1))); + }, o.zg = function(e) { + return e.i.n.a + e.n.a + e.a.a; + }, o.Ag = function() { + return en(), ae; + }, o.Bg = function() { + return en(), Xn; + }, w(KR, "NorthToSouthRoutingStrategy", 1870), b(1871, 670, {}, ijn), o.yg = function(e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j; + if (!(e.r && !e.q)) + for (d = t - e.o * i, a = new C(e.n); a.a < a.c.c.length; ) + for (l = u(E(a), 12), g = cc(A(T(Ci, 1), J, 8, 0, [l.i.n, l.n, l.a])).a, h = new C(l.g); h.a < h.c.c.length; ) + f = u(E(h), 18), sr(f) || (k = f.d, j = cc(A(T(Ci, 1), J, 8, 0, [k.i.n, k.n, k.a])).a, y.Math.abs(g - j) > mh && (s = d, c = e, r = new V(g, s), Fe(f.a, r), U0(this, f, c, r, !1), p = e.r, p && (m = $(R(Zo(p.e, 0))), r = new V(m, s), Fe(f.a, r), U0(this, f, c, r, !1), s = t - p.o * i, c = p, r = new V(m, s), Fe(f.a, r), U0(this, f, c, r, !1)), r = new V(j, s), Fe(f.a, r), U0(this, f, c, r, !1))); + }, o.zg = function(e) { + return e.i.n.a + e.n.a + e.a.a; + }, o.Ag = function() { + return en(), Xn; + }, o.Bg = function() { + return en(), ae; + }, w(KR, "SouthToNorthRoutingStrategy", 1871), b(1869, 670, {}, rjn), o.yg = function(e, t, i) { + var r, c, s, f, h, l, a, d, g, p, m, k, j; + if (!(e.r && !e.q)) + for (d = t + e.o * i, a = new C(e.n); a.a < a.c.c.length; ) + for (l = u(E(a), 12), g = cc(A(T(Ci, 1), J, 8, 0, [l.i.n, l.n, l.a])).b, h = new C(l.g); h.a < h.c.c.length; ) + f = u(E(h), 18), sr(f) || (k = f.d, j = cc(A(T(Ci, 1), J, 8, 0, [k.i.n, k.n, k.a])).b, y.Math.abs(g - j) > mh && (s = d, c = e, r = new V(s, g), Fe(f.a, r), U0(this, f, c, r, !0), p = e.r, p && (m = $(R(Zo(p.e, 0))), r = new V(s, m), Fe(f.a, r), U0(this, f, c, r, !0), s = t + p.o * i, c = p, r = new V(s, m), Fe(f.a, r), U0(this, f, c, r, !0)), r = new V(s, j), Fe(f.a, r), U0(this, f, c, r, !0))); + }, o.zg = function(e) { + return e.i.n.b + e.n.b + e.a.b; + }, o.Ag = function() { + return en(), Zn; + }, o.Bg = function() { + return en(), Wn; + }, w(KR, "WestToEastRoutingStrategy", 1869), b(828, 1, {}, Hen), o.Ib = function() { + return ca(this.a); + }, o.b = 0, o.c = !1, o.d = !1, o.f = 0, w(Ew, "NubSpline", 828), b(418, 1, { 418: 1 }, dqn, iOn), w(Ew, "NubSpline/PolarCP", 418), b(1480, 1, kr, WRn), o.rg = function(e) { + return aye(u(e, 36)); + }, o.Kf = function(e, t) { + fLe(this, u(e, 36), t); + }; + var ire, rre, cre, ure, ore; + w(Ew, "SplineEdgeRouter", 1480), b(274, 1, { 274: 1 }, XM), o.Ib = function() { + return this.a + " ->(" + this.c + ") " + this.b; + }, o.c = 0, w(Ew, "SplineEdgeRouter/Dependency", 274), b(465, 22, { 3: 1, 34: 1, 22: 1, 465: 1 }, cX); + var Ca, I2, sre = we(Ew, "SplineEdgeRouter/SideToProcess", 465, ke, e2e, c0e), fre; + b(1481, 1, De, R3n), o.Mb = function(e) { + return B5(), !u(e, 131).o; + }, w(Ew, "SplineEdgeRouter/lambda$0$Type", 1481), b(1482, 1, {}, K3n), o.Ze = function(e) { + return B5(), u(e, 131).v + 1; + }, w(Ew, "SplineEdgeRouter/lambda$1$Type", 1482), b(1483, 1, re, YCn), o.Cd = function(e) { + Abe(this.a, this.b, u(e, 42)); + }, w(Ew, "SplineEdgeRouter/lambda$2$Type", 1483), b(1484, 1, re, ZCn), o.Cd = function(e) { + Sbe(this.a, this.b, u(e, 42)); + }, w(Ew, "SplineEdgeRouter/lambda$3$Type", 1484), b(131, 1, { 34: 1, 131: 1 }, A_n, Ven), o.Fd = function(e) { + return Ihe(this, u(e, 131)); + }, o.b = 0, o.e = !1, o.f = 0, o.g = 0, o.j = !1, o.k = !1, o.n = 0, o.o = !1, o.p = !1, o.q = !1, o.s = 0, o.u = 0, o.v = 0, o.F = 0, w(Ew, "SplineSegment", 131), b(468, 1, { 468: 1 }, _3n), o.a = 0, o.b = !1, o.c = !1, o.d = !1, o.e = !1, o.f = 0, w(Ew, "SplineSegment/EdgeInformation", 468), b(1198, 1, {}, H3n), w(Ll, Gtn, 1198), b(1199, 1, Ne, q3n), o.Ne = function(e, t) { + return VEe(u(e, 121), u(t, 121)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Ll, EXn, 1199), b(1197, 1, {}, wEn), w(Ll, "MrTree", 1197), b(405, 22, { 3: 1, 34: 1, 22: 1, 405: 1, 188: 1, 196: 1 }, pC), o.dg = function() { + return V_n(this); + }, o.qg = function() { + return V_n(this); + }; + var LI, t9, i9, r9, rln = we(Ll, "TreeLayoutPhases", 405, ke, i3e, u0e), hre; + b(1112, 205, jd, qAn), o.rf = function(e, t) { + var i, r, c, s, f, h, l, a; + for (on(un(z(e, (lc(), Pln)))) || X7((i = new Xv((u0(), new Yd(e))), i)), f = t.eh(qR), f.Ug("build tGraph", 1), h = (l = new tk(), Ur(l, e), U(l, (pt(), u9), e), a = new de(), _Se(e, l, a), uPe(e, l, a), l), f.Vg(), f = t.eh(qR), f.Ug("Split graph", 1), s = XSe(this.a, h), f.Vg(), c = new C(s); c.a < c.c.c.length; ) + r = u(E(c), 121), Qke(this.b, r, t.eh(0.5999999940395355 / s.c.length)); + f = t.eh(qR), f.Ug("Pack components", 1), h = GLe(s), f.Vg(), f = t.eh(qR), f.Ug("Apply layout results", 1), NOe(h), f.Vg(); + }, w(Ll, "TreeLayoutProvider", 1112), b(1894, 1, Hh, G3n), o.Jc = function(e) { + qi(this, e); + }, o.Kc = function() { + return Dn(), h4(), sv; + }, w(Ll, "TreeUtil/1", 1894), b(1895, 1, Hh, z3n), o.Jc = function(e) { + qi(this, e); + }, o.Kc = function() { + return Dn(), h4(), sv; + }, w(Ll, "TreeUtil/2", 1895), b(1885, 1, De, X3n), o.Mb = function(e) { + return on(un(v(u(e, 40), (pt(), Ma)))); + }, w(Ll, "TreeUtil/lambda$0$Type", 1885), b(1891, 1, De, skn), o.Mb = function(e) { + return this.a.Hc(u(e, 40)); + }, w(Ll, "TreeUtil/lambda$10$Type", 1891), b(1892, 1, {}, fkn), o.Kb = function(e) { + return t3e(this.a, u(e, 40)); + }, w(Ll, "TreeUtil/lambda$11$Type", 1892), b(1893, 1, De, nMn), o.Mb = function(e) { + return nme(this.a, this.b, u(e, 40)); + }, w(Ll, "TreeUtil/lambda$12$Type", 1893), b(1886, 1, De, hkn), o.Mb = function(e) { + return K5e(this.a, u(e, 65)); + }, w(Ll, "TreeUtil/lambda$3$Type", 1886), b(1887, 1, Ne, U3n), o.Ne = function(e, t) { + return Xae(u(e, 65), u(t, 65)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Ll, "TreeUtil/lambda$4$Type", 1887), b(1888, 1, De, lkn), o.Mb = function(e) { + return _5e(this.a, u(e, 65)); + }, w(Ll, "TreeUtil/lambda$7$Type", 1888), b(1889, 1, Ne, V3n), o.Ne = function(e, t) { + return Vae(u(e, 65), u(t, 65)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Ll, "TreeUtil/lambda$8$Type", 1889), b(1890, 1, {}, W3n), o.Kb = function(e) { + return u(e, 65).b; + }, w(Ll, "TreeUtil/lambda$9$Type", 1890), b(508, 137, { 3: 1, 508: 1, 96: 1, 137: 1 }), o.g = 0, w(h8, "TGraphElement", 508), b(65, 508, { 3: 1, 65: 1, 508: 1, 96: 1, 137: 1 }, JW), o.Ib = function() { + return this.b && this.c ? id(this.b) + "->" + id(this.c) : "e_" + mt(this); + }, w(h8, "TEdge", 65), b(121, 137, { 3: 1, 121: 1, 96: 1, 137: 1 }, tk), o.Ib = function() { + var e, t, i, r, c; + for (c = null, r = ge(this.b, 0); r.b != r.d.c; ) + i = u(be(r), 40), c += (i.c == null || i.c.length == 0 ? "n_" + i.g : "n_" + i.c) + ` +`; + for (t = ge(this.a, 0); t.b != t.d.c; ) + e = u(be(t), 65), c += (e.b && e.c ? id(e.b) + "->" + id(e.c) : "e_" + mt(e)) + ` +`; + return c; + }; + var MNe = w(h8, "TGraph", 121); + b(643, 508, { 3: 1, 508: 1, 643: 1, 96: 1, 137: 1 }), w(h8, "TShape", 643), b(40, 643, { 3: 1, 508: 1, 40: 1, 643: 1, 96: 1, 137: 1 }, q$), o.Ib = function() { + return id(this); + }; + var NI = w(h8, "TNode", 40); + b(236, 1, Hh, sl), o.Jc = function(e) { + qi(this, e); + }, o.Kc = function() { + var e; + return e = ge(this.a.d, 0), new sg(e); + }, w(h8, "TNode/2", 236), b(329, 1, Ii, sg), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return u(be(this.a), 65).c; + }, o.Ob = function() { + return Q9(this.a); + }, o.Qb = function() { + p$(this.a); + }, w(h8, "TNode/2/1", 329), b(1923, 1, vt, J3n), o.Kf = function(e, t) { + RLe(this, u(e, 121), t); + }, w(Kc, "CompactionProcessor", 1923), b(1924, 1, Ne, akn), o.Ne = function(e, t) { + return Tve(this.a, u(e, 40), u(t, 40)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Kc, "CompactionProcessor/lambda$0$Type", 1924), b(1925, 1, De, eMn), o.Mb = function(e) { + return Dge(this.b, this.a, u(e, 42)); + }, o.a = 0, o.b = 0, w(Kc, "CompactionProcessor/lambda$1$Type", 1925), b(1934, 1, Ne, Q3n), o.Ne = function(e, t) { + return Ewe(u(e, 40), u(t, 40)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Kc, "CompactionProcessor/lambda$10$Type", 1934), b(1935, 1, Ne, Y3n), o.Ne = function(e, t) { + return F1e(u(e, 40), u(t, 40)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Kc, "CompactionProcessor/lambda$11$Type", 1935), b(1936, 1, Ne, Z3n), o.Ne = function(e, t) { + return Cwe(u(e, 40), u(t, 40)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Kc, "CompactionProcessor/lambda$12$Type", 1936), b(1926, 1, De, dkn), o.Mb = function(e) { + return k1e(this.a, u(e, 42)); + }, o.a = 0, w(Kc, "CompactionProcessor/lambda$2$Type", 1926), b(1927, 1, De, bkn), o.Mb = function(e) { + return y1e(this.a, u(e, 42)); + }, o.a = 0, w(Kc, "CompactionProcessor/lambda$3$Type", 1927), b(1928, 1, De, n4n), o.Mb = function(e) { + return u(e, 40).c.indexOf(IS) == -1; + }, w(Kc, "CompactionProcessor/lambda$4$Type", 1928), b(1929, 1, {}, wkn), o.Kb = function(e) { + return Npe(this.a, u(e, 40)); + }, o.a = 0, w(Kc, "CompactionProcessor/lambda$5$Type", 1929), b(1930, 1, {}, gkn), o.Kb = function(e) { + return H4e(this.a, u(e, 40)); + }, o.a = 0, w(Kc, "CompactionProcessor/lambda$6$Type", 1930), b(1931, 1, Ne, pkn), o.Ne = function(e, t) { + return Z3e(this.a, u(e, 240), u(t, 240)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Kc, "CompactionProcessor/lambda$7$Type", 1931), b(1932, 1, Ne, mkn), o.Ne = function(e, t) { + return n4e(this.a, u(e, 40), u(t, 40)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Kc, "CompactionProcessor/lambda$8$Type", 1932), b(1933, 1, Ne, e4n), o.Ne = function(e, t) { + return B1e(u(e, 40), u(t, 40)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Kc, "CompactionProcessor/lambda$9$Type", 1933), b(1921, 1, vt, t4n), o.Kf = function(e, t) { + $Ae(u(e, 121), t); + }, w(Kc, "DirectionProcessor", 1921), b(1913, 1, vt, HAn), o.Kf = function(e, t) { + rPe(this, u(e, 121), t); + }, w(Kc, "FanProcessor", 1913), b(1937, 1, vt, i4n), o.Kf = function(e, t) { + EAe(u(e, 121), t); + }, w(Kc, "GraphBoundsProcessor", 1937), b(1938, 1, {}, r4n), o.Ye = function(e) { + return u(e, 40).e.a; + }, w(Kc, "GraphBoundsProcessor/lambda$0$Type", 1938), b(1939, 1, {}, c4n), o.Ye = function(e) { + return u(e, 40).e.b; + }, w(Kc, "GraphBoundsProcessor/lambda$1$Type", 1939), b(1940, 1, {}, u4n), o.Ye = function(e) { + return ile(u(e, 40)); + }, w(Kc, "GraphBoundsProcessor/lambda$2$Type", 1940), b(1941, 1, {}, o4n), o.Ye = function(e) { + return tle(u(e, 40)); + }, w(Kc, "GraphBoundsProcessor/lambda$3$Type", 1941), b(262, 22, { 3: 1, 34: 1, 22: 1, 262: 1, 196: 1 }, o0), o.dg = function() { + switch (this.g) { + case 0: + return new mjn(); + case 1: + return new HAn(); + case 2: + return new pjn(); + case 3: + return new a4n(); + case 4: + return new f4n(); + case 8: + return new s4n(); + case 5: + return new t4n(); + case 6: + return new b4n(); + case 7: + return new J3n(); + case 9: + return new i4n(); + case 10: + return new w4n(); + default: + throw M(new Gn(cR + (this.f != null ? this.f : "" + this.g))); + } + }; + var cln, uln, oln, sln, fln, hln, lln, aln, dln, bln, ZH, TNe = we(Kc, uR, 262, ke, xxn, o0e), lre; + b(1920, 1, vt, s4n), o.Kf = function(e, t) { + xDe(u(e, 121), t); + }, w(Kc, "LevelCoordinatesProcessor", 1920), b(1918, 1, vt, f4n), o.Kf = function(e, t) { + iTe(this, u(e, 121), t); + }, o.a = 0, w(Kc, "LevelHeightProcessor", 1918), b(1919, 1, Hh, h4n), o.Jc = function(e) { + qi(this, e); + }, o.Kc = function() { + return Dn(), h4(), sv; + }, w(Kc, "LevelHeightProcessor/1", 1919), b(1914, 1, vt, pjn), o.Kf = function(e, t) { + pAe(this, u(e, 121), t); + }, w(Kc, "LevelProcessor", 1914), b(1915, 1, De, l4n), o.Mb = function(e) { + return on(un(v(u(e, 40), (pt(), Ma)))); + }, w(Kc, "LevelProcessor/lambda$0$Type", 1915), b(1916, 1, vt, a4n), o.Kf = function(e, t) { + nEe(this, u(e, 121), t); + }, o.a = 0, w(Kc, "NeighborsProcessor", 1916), b(1917, 1, Hh, d4n), o.Jc = function(e) { + qi(this, e); + }, o.Kc = function() { + return Dn(), h4(), sv; + }, w(Kc, "NeighborsProcessor/1", 1917), b(1922, 1, vt, b4n), o.Kf = function(e, t) { + iPe(this, u(e, 121), t); + }, o.a = 0, w(Kc, "NodePositionProcessor", 1922), b(1912, 1, vt, mjn), o.Kf = function(e, t) { + BIe(this, u(e, 121), t); + }, w(Kc, "RootProcessor", 1912), b(1942, 1, vt, w4n), o.Kf = function(e, t) { + N9e(u(e, 121), t); + }, w(Kc, "Untreeifyer", 1942), b(392, 22, { 3: 1, 34: 1, 22: 1, 392: 1 }, eL); + var Lj, nq, wln, gln = we(Gy, "EdgeRoutingMode", 392, ke, J2e, s0e), are, Nj, Ov, eq, pln, mln, tq, iq, vln, rq, kln, cq, c9, uq, $I, xI, Js, jf, Dv, u9, o9, E1, yln, dre, oq, Ma, $j, xj; + b(862, 1, ms, f8n), o.hf = function(e) { + vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Srn), ""), wVn), "Turns on Tree compaction which decreases the size of the whole tree by placing nodes of multiple levels in one large level"), (_n(), !1)), (a1(), ji)), zt), jn((pf(), xn))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Prn), ""), "Edge End Texture Length"), "Should be set to the length of the texture at the end of an edge. This value can be used to improve the Edge Routing."), 7), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Irn), ""), "Tree Level"), "The index for the tree level the node is in"), Y(0)), Zr), Gi), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Orn), ""), wVn), "When set to a positive number this option will force the algorithm to place the node to the specified position within the trees layer if weighting is set to constraint"), Y(-1)), Zr), Gi), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Drn), ""), "Weighting of Nodes"), "Which weighting to use when computing a node order."), Cln), Pt), xln), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Lrn), ""), "Edge Routing Mode"), "Chooses an Edge Routing algorithm."), jln), Pt), gln), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Nrn), ""), "Search Order"), "Which search order to use when computing a spanning tree."), Eln), Pt), Bln), jn(xn)))), rzn((new a8n(), e)); + }; + var bre, wre, gre, jln, pre, mre, Eln, vre, kre, Cln; + w(Gy, "MrTreeMetaDataProvider", 862), b(1006, 1, ms, a8n), o.hf = function(e) { + rzn(e); + }; + var yre, Mln, Tln, kb, Aln, Sln, sq, jre, Ere, Cre, Mre, Tre, Are, Sre, Pln, Iln, Oln, Pre, O2, FI, Dln, Ire, Lln, fq, Ore, Dre, Lre, Nln, Nre, Ah, $ln; + w(Gy, "MrTreeOptions", 1006), b(1007, 1, {}, g4n), o.sf = function() { + var e; + return e = new qAn(), e; + }, o.tf = function(e) { + }, w(Gy, "MrTreeOptions/MrtreeFactory", 1007), b(353, 22, { 3: 1, 34: 1, 22: 1, 353: 1 }, mC); + var hq, BI, lq, aq, xln = we(Gy, "OrderWeighting", 353, ke, r3e, f0e), $re; + b(433, 22, { 3: 1, 34: 1, 22: 1, 433: 1 }, uX); + var Fln, dq, Bln = we(Gy, "TreeifyingOrder", 433, ke, Zge, h0e), xre; + b(1486, 1, kr, d8n), o.rg = function(e) { + return u(e, 121), Fre; + }, o.Kf = function(e, t) { + bve(this, u(e, 121), t); + }; + var Fre; + w("org.eclipse.elk.alg.mrtree.p1treeify", "DFSTreeifyer", 1486), b(1487, 1, kr, b8n), o.rg = function(e) { + return u(e, 121), Bre; + }, o.Kf = function(e, t) { + yAe(this, u(e, 121), t); + }; + var Bre; + w(Wm, "NodeOrderer", 1487), b(1494, 1, {}, _se), o.td = function(e) { + return WSn(e); + }, w(Wm, "NodeOrderer/0methodref$lambda$6$Type", 1494), b(1488, 1, De, D4n), o.Mb = function(e) { + return _p(), on(un(v(u(e, 40), (pt(), Ma)))); + }, w(Wm, "NodeOrderer/lambda$0$Type", 1488), b(1489, 1, De, L4n), o.Mb = function(e) { + return _p(), u(v(u(e, 40), (lc(), O2)), 17).a < 0; + }, w(Wm, "NodeOrderer/lambda$1$Type", 1489), b(1490, 1, De, kkn), o.Mb = function(e) { + return qme(this.a, u(e, 40)); + }, w(Wm, "NodeOrderer/lambda$2$Type", 1490), b(1491, 1, De, vkn), o.Mb = function(e) { + return Fpe(this.a, u(e, 40)); + }, w(Wm, "NodeOrderer/lambda$3$Type", 1491), b(1492, 1, Ne, N4n), o.Ne = function(e, t) { + return ame(u(e, 40), u(t, 40)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Wm, "NodeOrderer/lambda$4$Type", 1492), b(1493, 1, De, $4n), o.Mb = function(e) { + return _p(), u(v(u(e, 40), (pt(), iq)), 17).a != 0; + }, w(Wm, "NodeOrderer/lambda$5$Type", 1493), b(1495, 1, kr, l8n), o.rg = function(e) { + return u(e, 121), Rre; + }, o.Kf = function(e, t) { + ISe(this, u(e, 121), t); + }, o.b = 0; + var Rre; + w("org.eclipse.elk.alg.mrtree.p3place", "NodePlacer", 1495), b(1496, 1, kr, h8n), o.rg = function(e) { + return u(e, 121), Kre; + }, o.Kf = function(e, t) { + lSe(u(e, 121), t); + }; + var Kre, ANe = w(po, "EdgeRouter", 1496); + b(1498, 1, Ne, O4n), o.Ne = function(e, t) { + return Ec(u(e, 17).a, u(t, 17).a); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(po, "EdgeRouter/0methodref$compare$Type", 1498), b(1503, 1, {}, m4n), o.Ye = function(e) { + return $(R(e)); + }, w(po, "EdgeRouter/1methodref$doubleValue$Type", 1503), b(1505, 1, Ne, v4n), o.Ne = function(e, t) { + return bt($(R(e)), $(R(t))); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(po, "EdgeRouter/2methodref$compare$Type", 1505), b(1507, 1, Ne, k4n), o.Ne = function(e, t) { + return bt($(R(e)), $(R(t))); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(po, "EdgeRouter/3methodref$compare$Type", 1507), b(1509, 1, {}, p4n), o.Ye = function(e) { + return $(R(e)); + }, w(po, "EdgeRouter/4methodref$doubleValue$Type", 1509), b(1511, 1, Ne, y4n), o.Ne = function(e, t) { + return bt($(R(e)), $(R(t))); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(po, "EdgeRouter/5methodref$compare$Type", 1511), b(1513, 1, Ne, j4n), o.Ne = function(e, t) { + return bt($(R(e)), $(R(t))); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(po, "EdgeRouter/6methodref$compare$Type", 1513), b(1497, 1, {}, E4n), o.Kb = function(e) { + return kl(), u(v(u(e, 40), (lc(), Ah)), 17); + }, w(po, "EdgeRouter/lambda$0$Type", 1497), b(1508, 1, {}, C4n), o.Kb = function(e) { + return Q1e(u(e, 40)); + }, w(po, "EdgeRouter/lambda$11$Type", 1508), b(1510, 1, {}, tMn), o.Kb = function(e) { + return Mbe(this.b, this.a, u(e, 40)); + }, o.a = 0, o.b = 0, w(po, "EdgeRouter/lambda$13$Type", 1510), b(1512, 1, {}, iMn), o.Kb = function(e) { + return Y1e(this.b, this.a, u(e, 40)); + }, o.a = 0, o.b = 0, w(po, "EdgeRouter/lambda$15$Type", 1512), b(1514, 1, Ne, M4n), o.Ne = function(e, t) { + return h9e(u(e, 65), u(t, 65)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(po, "EdgeRouter/lambda$17$Type", 1514), b(1515, 1, Ne, T4n), o.Ne = function(e, t) { + return l9e(u(e, 65), u(t, 65)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(po, "EdgeRouter/lambda$18$Type", 1515), b(1516, 1, Ne, A4n), o.Ne = function(e, t) { + return d9e(u(e, 65), u(t, 65)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(po, "EdgeRouter/lambda$19$Type", 1516), b(1499, 1, De, ykn), o.Mb = function(e) { + return b2e(this.a, u(e, 40)); + }, o.a = 0, w(po, "EdgeRouter/lambda$2$Type", 1499), b(1517, 1, Ne, S4n), o.Ne = function(e, t) { + return a9e(u(e, 65), u(t, 65)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(po, "EdgeRouter/lambda$20$Type", 1517), b(1500, 1, Ne, P4n), o.Ne = function(e, t) { + return lbe(u(e, 40), u(t, 40)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(po, "EdgeRouter/lambda$3$Type", 1500), b(1501, 1, Ne, I4n), o.Ne = function(e, t) { + return abe(u(e, 40), u(t, 40)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(po, "EdgeRouter/lambda$4$Type", 1501), b(1502, 1, {}, x4n), o.Kb = function(e) { + return Z1e(u(e, 40)); + }, w(po, "EdgeRouter/lambda$5$Type", 1502), b(1504, 1, {}, rMn), o.Kb = function(e) { + return Tbe(this.b, this.a, u(e, 40)); + }, o.a = 0, o.b = 0, w(po, "EdgeRouter/lambda$7$Type", 1504), b(1506, 1, {}, cMn), o.Kb = function(e) { + return nae(this.b, this.a, u(e, 40)); + }, o.a = 0, o.b = 0, w(po, "EdgeRouter/lambda$9$Type", 1506), b(675, 1, { 675: 1 }, FRn), o.e = 0, o.f = !1, o.g = !1, w(po, "MultiLevelEdgeNodeNodeGap", 675), b(1943, 1, Ne, F4n), o.Ne = function(e, t) { + return C2e(u(e, 240), u(t, 240)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(po, "MultiLevelEdgeNodeNodeGap/lambda$0$Type", 1943), b(1944, 1, Ne, B4n), o.Ne = function(e, t) { + return M2e(u(e, 240), u(t, 240)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(po, "MultiLevelEdgeNodeNodeGap/lambda$1$Type", 1944); + var D2; + b(501, 22, { 3: 1, 34: 1, 22: 1, 501: 1, 188: 1, 196: 1 }, oX), o.dg = function() { + return EBn(this); + }, o.qg = function() { + return EBn(this); + }; + var RI, L2, Rln = we($rn, "RadialLayoutPhases", 501, ke, zge, l0e), _re; + b(1113, 205, jd, bEn), o.rf = function(e, t) { + var i, r, c, s, f, h; + if (i = sqn(this, e), t.Ug("Radial layout", i.c.length), on(un(z(e, (oa(), Jln)))) || X7((r = new Xv((u0(), new Yd(e))), r)), h = wye(e), ht(e, (Tg(), D2), h), !h) + throw M(new Gn("The given graph is not a tree!")); + for (c = $(R(z(e, HI))), c == 0 && (c = H_n(e)), ht(e, HI, c), f = new C(sqn(this, e)); f.a < f.c.c.length; ) + s = u(E(f), 47), s.Kf(e, t.eh(1)); + t.Vg(); + }, w($rn, "RadialLayoutProvider", 1113), b(556, 1, Ne, XE), o.Ne = function(e, t) { + return QAe(this.a, this.b, u(e, 27), u(t, 27)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, o.a = 0, o.b = 0, w($rn, "RadialUtil/lambda$0$Type", 556), b(1395, 1, vt, R4n), o.Kf = function(e, t) { + HDe(u(e, 27), t); + }, w(Brn, "CalculateGraphSize", 1395), b(1396, 1, vt, K4n), o.Kf = function(e, t) { + hIe(u(e, 27)); + }, w(Brn, "EdgeAngleCalculator", 1396), b(368, 22, { 3: 1, 34: 1, 22: 1, 368: 1, 196: 1 }, d7), o.dg = function() { + switch (this.g) { + case 0: + return new z4n(); + case 1: + return new _4n(); + case 2: + return new X4n(); + case 3: + return new R4n(); + case 4: + return new K4n(); + default: + throw M(new Gn(cR + (this.f != null ? this.f : "" + this.g))); + } + }; + var bq, wq, gq, pq, mq, Hre = we(Brn, uR, 368, ke, U3e, a0e), qre; + b(653, 1, {}), o.e = 1, o.g = 0, w(UR, "AbstractRadiusExtensionCompaction", 653), b(1834, 653, {}, fAn), o.Cg = function(e) { + var t, i, r, c, s, f, h, l, a; + for (this.c = u(z(e, (Tg(), D2)), 27), sfe(this, this.c), this.d = Ax(u(z(e, (oa(), Fj)), 300)), l = u(z(e, kq), 17), l && i9n(this, l.a), h = R(z(e, (He(), Ud))), mG(this, (Jn(h), h)), a = dw(this.c), this.d && this.d.Gg(a), wSe(this, a), f = new Bu(A(T(Ye, 1), vVn, 27, 0, [this.c])), i = 0; i < 2; i++) + for (t = 0; t < a.c.length; t++) + c = new Bu(A(T(Ye, 1), vVn, 27, 0, [(Ln(t, a.c.length), u(a.c[t], 27))])), s = t < a.c.length - 1 ? (Ln(t + 1, a.c.length), u(a.c[t + 1], 27)) : (Ln(0, a.c.length), u(a.c[0], 27)), r = t == 0 ? u(sn(a, a.c.length - 1), 27) : (Ln(t - 1, a.c.length), u(a.c[t - 1], 27)), RKn(this, (Ln(t, a.c.length), u(a.c[t], 27), f), r, s, c); + }, w(UR, "AnnulusWedgeCompaction", 1834), b(1393, 1, vt, _4n), o.Kf = function(e, t) { + sve(u(e, 27), t); + }, w(UR, "GeneralCompactor", 1393), b(1833, 653, {}, H4n), o.Cg = function(e) { + var t, i, r, c; + i = u(z(e, (Tg(), D2)), 27), this.f = i, this.b = Ax(u(z(e, (oa(), Fj)), 300)), c = u(z(e, kq), 17), c && i9n(this, c.a), r = R(z(e, (He(), Ud))), mG(this, (Jn(r), r)), t = dw(i), this.b && this.b.Gg(t), p_n(this, t); + }, o.a = 0, w(UR, "RadialCompaction", 1833), b(1842, 1, {}, q4n), o.Dg = function(e) { + var t, i, r, c, s, f; + for (this.a = e, t = 0, f = dw(e), r = 0, s = new C(f); s.a < s.c.c.length; ) + for (c = u(E(s), 27), ++r, i = r; i < f.c.length; i++) + OPe(this, c, (Ln(i, f.c.length), u(f.c[i], 27))) && (t += 1); + return t; + }, w(Rrn, "CrossingMinimizationPosition", 1842), b(1840, 1, {}, U4n), o.Dg = function(e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m; + for (r = 0, i = new ie(ce(Al(e).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 74), h = Gr(u(L((!t.c && (t.c = new Nn(he, t, 5, 8)), t.c), 0), 84)), a = h.i + h.g / 2, d = h.j + h.f / 2, c = e.i + e.g / 2, s = e.j + e.f / 2, g = new Ni(), g.a = a - c, g.b = d - s, f = new V(g.a, g.b), mm(f, e.g, e.f), g.a -= f.a, g.b -= f.b, c = a - g.a, s = d - g.b, l = new V(g.a, g.b), mm(l, h.g, h.f), g.a -= l.a, g.b -= l.b, a = c + g.a, d = s + g.b, p = a - c, m = d - s, r += y.Math.sqrt(p * p + m * m); + return r; + }, w(Rrn, "EdgeLengthOptimization", 1840), b(1841, 1, {}, G4n), o.Dg = function(e) { + var t, i, r, c, s, f, h, l, a, d, g; + for (r = 0, i = new ie(ce(Al(e).a.Kc(), new En())); pe(i); ) + t = u(fe(i), 74), h = Gr(u(L((!t.c && (t.c = new Nn(he, t, 5, 8)), t.c), 0), 84)), l = h.i + h.g / 2, a = h.j + h.f / 2, c = u(z(h, (He(), N3)), 8), s = e.i + c.a + e.g / 2, f = e.j + c.b + e.f, d = l - s, g = a - f, r += y.Math.sqrt(d * d + g * g); + return r; + }, w(Rrn, "EdgeLengthPositionOptimization", 1841), b(1392, 653, vt, z4n), o.Kf = function(e, t) { + bEe(this, u(e, 27), t); + }, w("org.eclipse.elk.alg.radial.intermediate.overlaps", "RadiusExtensionOverlapRemoval", 1392), b(1394, 1, vt, X4n), o.Kf = function(e, t) { + swe(u(e, 27), t); + }, w("org.eclipse.elk.alg.radial.intermediate.rotation", "GeneralRotator", 1394), b(434, 22, { 3: 1, 34: 1, 22: 1, 434: 1 }, sX); + var Kln, vq, _ln = we(l8, "AnnulusWedgeCriteria", 434, ke, n2e, b0e), Ure; + b(393, 22, { 3: 1, 34: 1, 22: 1, 393: 1 }, tL); + var KI, Hln, qln, Uln = we(l8, Ktn, 393, ke, rpe, d0e), Gre; + b(863, 1, ms, w8n), o.hf = function(e) { + vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Krn), ""), "Center On Root"), "Centers the layout on the root of the tree i.e. so that the central node is also the center node of the final layout. This introduces additional whitespace."), (_n(), !1)), (a1(), ji)), zt), jn((pf(), xn))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), _rn), ""), "Order ID"), "The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly."), Y(0)), Zr), Gi), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Hrn), ""), "Radius"), "The radius option can be used to set the initial radius for the radial layouter."), 0), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), LS), ""), "Rotate"), "The rotate option determines whether a rotation of the layout should be performed."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), zR), ""), kVn), "With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately."), Gln), Pt), Uln), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), XR), ""), "Compaction Step Size"), "Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration."), Y(1)), Zr), Gi), jn(xn)))), ci(e, XR, zR, null), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), qrn), ""), "Sorter"), "Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates."), Xln), Pt), s1n), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Urn), ""), "Annulus Wedge Criteria"), "Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals."), Vln), Pt), _ln), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Grn), ""), "Translation Optimization"), "Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized."), zln), Pt), c1n), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), VR), Xrn), "Target Angle"), "The angle in radians that the layout should be rotated to after layout."), 0), Qi), fi), jn(xn)))), ci(e, VR, LS, null), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), WR), Xrn), "Additional Wedge Space"), "If set to true, modifies the target angle by rotating further such that space is left for an edge to pass in between the nodes. This option should only be used in conjunction with top-down layout."), !1), ji), zt), jn(xn)))), ci(e, WR, LS, null), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), zrn), Xrn), "Outgoing Edge Angles"), "Calculate the required angle of connected nodes to leave space for an incoming edge. This option should only be used in conjunction with top-down layout."), !1), ji), zt), jn(xn)))), QGn((new g8n(), e)); + }; + var zre, Xre, Vre, Gln, Wre, zln, Jre, Qre, Yre, Zre, nce, ece, tce, Xln, ice, Vln; + w(l8, "RadialMetaDataProvider", 863), b(1008, 1, ms, g8n), o.hf = function(e) { + QGn(e); + }; + var Wln, kq, yq, rce, cce, uce, oce, Jln, Qln, _I, sce, fce, HI, Yln, Zln, n1n, jq, Fj, hce, e1n; + w(l8, "RadialOptions", 1008), b(1009, 1, {}, V4n), o.sf = function() { + var e; + return e = new bEn(), e; + }, o.tf = function(e) { + }, w(l8, "RadialOptions/RadialFactory", 1009), b(354, 22, { 3: 1, 34: 1, 22: 1, 354: 1 }, vC); + var t1n, i1n, r1n, Eq, c1n = we(l8, "RadialTranslationStrategy", 354, ke, c3e, w0e), lce; + b(300, 22, { 3: 1, 34: 1, 22: 1, 300: 1 }, iL); + var u1n, Cq, o1n, s1n = we(l8, "SortingStrategy", 300, ke, cpe, g0e), ace; + b(1476, 1, kr, W4n), o.rg = function(e) { + return u(e, 27), null; + }, o.Kf = function(e, t) { + FEe(this, u(e, 27), t); + }, o.c = 0, w("org.eclipse.elk.alg.radial.p1position", "EadesRadial", 1476), b(1838, 1, {}, J4n), o.Eg = function(e) { + return vRn(e); + }, w(yVn, "AnnulusWedgeByLeafs", 1838), b(1839, 1, {}, Q4n), o.Eg = function(e) { + return OKn(this, e); + }, w(yVn, "AnnulusWedgeByNodeSpace", 1839), b(1477, 1, kr, Y4n), o.rg = function(e) { + return u(e, 27), null; + }, o.Kf = function(e, t) { + V5e(this, u(e, 27), t); + }, w("org.eclipse.elk.alg.radial.p2routing", "StraightLineEdgeRouter", 1477), b(826, 1, {}, uz), o.Fg = function(e) { + }, o.Gg = function(e) { + Iyn(this, e); + }, w(Vrn, "IDSorter", 826), b(1837, 1, Ne, Z4n), o.Ne = function(e, t) { + return fve(u(e, 27), u(t, 27)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Vrn, "IDSorter/lambda$0$Type", 1837), b(1836, 1, {}, Cxn), o.Fg = function(e) { + gDn(this, e); + }, o.Gg = function(e) { + var t; + e.dc() || (this.e || (t = fPn(u(e.Xb(0), 27)), gDn(this, t)), Iyn(this.e, e)); + }, w(Vrn, "PolarCoordinateSorter", 1836), b(445, 22, { 3: 1, 34: 1, 22: 1, 445: 1 }, rL); + var Bj, qI, Mq, f1n = we(MVn, "RectPackingLayoutPhases", 445, ke, tpe, p0e), dce; + b(1118, 205, jd, gEn), o.rf = function(e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn; + if (t.Ug("Rectangle Packing", 1), g = u(z(e, (Bf(), h9)), 107), l = on(un(z(e, $ce))), d = $(R(z(e, l9))), kn = on(un(z(e, y1n))), N = (!e.a && (e.a = new q(Ye, e, 10, 11)), e.a), on(un(z(e, Dq))) || X7((c = new Xv((u0(), new Yd(e))), c)), yn = !1, kn && N.i >= 3) + for (X = u(L(N, 0), 27), tn = u(L(N, 1), 27), s = 0; s + 2 < N.i; ) + if (_ = X, X = tn, tn = u(L(N, s + 2), 27), _.f >= X.f + tn.f + d || tn.f >= _.f + X.f + d) { + yn = !0; + break; + } else + ++s; + else + yn = !0; + if (!yn) { + for (p = N.i, h = new ne(N); h.e != h.i.gc(); ) + f = u(ue(h), 27), ht(f, (He(), Jj), Y(p)), --p; + BUn(e, new op()), t.Vg(); + return; + } + for (i = (H7(this.a), hf(this.a, (XT(), Bj), u(z(e, M1n), 188)), hf(this.a, qI, u(z(e, v1n), 188)), hf(this.a, Mq, u(z(e, j1n), 188)), MX(this.a, (Fn = new ri(), Ke(Fn, Bj, (rA(), Sq)), Ke(Fn, qI, Aq), on(un(z(e, p1n))) && Ke(Fn, Bj, Tq), Fn)), gy(this.a, e)), a = 1 / i.c.length, k = new C(i); k.a < k.c.c.length; ) { + if (m = u(E(k), 47), t.$g()) + return; + m.Kf(e, t.eh(a)); + } + for (S = 0, j = 0, O = new ne(N); O.e != O.i.gc(); ) + I = u(ue(O), 27), S = y.Math.max(S, I.i + I.g), j = y.Math.max(j, I.j + I.f); + Cnn(e, new V($(R(z(e, (Kh(), O3)))), $(R(z(e, Lv)))), new V(S, j)), Dve(N, g), l || z0(e, $(R(z(e, O3))) + (g.b + g.c), $(R(z(e, Lv))) + (g.d + g.a), !1, !0), on(un(z(e, Dq))) || X7((r = new Xv((u0(), new Yd(e))), r)), t.Vg(); + }, w(MVn, "RectPackingLayoutProvider", 1118), b(1518, 1, vt, nmn), o.Kf = function(e, t) { + lIe(u(e, 27), t); + }, w(NS, "InteractiveNodeReorderer", 1518), b(1519, 1, Ne, emn), o.Ne = function(e, t) { + return m6e(u(e, 27), u(t, 27)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(NS, "InteractiveNodeReorderer/lambda$0$Type", 1519), b(456, 22, { 3: 1, 34: 1, 22: 1, 456: 1, 196: 1 }, cL), o.dg = function() { + switch (this.g) { + case 0: + return new nmn(); + case 1: + return new imn(); + case 2: + return new tmn(); + } + return null; + }; + var Tq, Aq, Sq, bce = we(NS, uR, 456, ke, ipe, m0e), wce; + b(1521, 1, vt, tmn), o.Kf = function(e, t) { + D8e(u(e, 27), t); + }, w(NS, "MinSizePostProcessor", 1521), b(1520, 1, vt, imn), o.Kf = function(e, t) { + I6e(u(e, 27), t); + }, w(NS, "MinSizePreProcessor", 1520); + var s9, Lv, O3, gce, pce, UI, Pq, Iq, f9, GI, Vw; + b(394, 22, { 3: 1, 34: 1, 22: 1, 394: 1 }, uL); + var h1n, l1n, Oq, a1n = we(JR, "OptimizationGoal", 394, ke, epe, v0e), mce; + b(867, 1, ms, p8n), o.hf = function(e) { + vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Wrn), ""), "Try box layout first"), "Whether one should check whether the regions are stackable to see whether box layout would do the job. For example, nodes with the same height are not stackable inside a row. Therefore, box layout will perform better and faster."), (_n(), !1)), (a1(), ji)), zt), jn((pf(), xn))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Jrn), ""), "Current position of a node in the order of nodes"), "The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node."), Y(-1)), Zr), Gi), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Qrn), ""), "Desired index of node"), "The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position."), Y(-1)), Zr), Gi), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Yrn), ""), "In new Row"), "If set to true this node begins in a new row. Consequently this node cannot be moved in a previous layer during compaction. Width approximation does does not take this into account."), !1), ji), zt), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Zrn), QR), "Width Approximation Strategy"), "Strategy for finding an initial width of the drawing."), w1n), Pt), S1n), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), ncn), QR), "Target Width"), "Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding."), -1), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), ecn), QR), "Optimization Goal"), "Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored."), b1n), Pt), a1n), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), tcn), QR), "Shift Last Placed."), "When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces."), !0), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), icn), "packing"), TVn), "Strategy for finding an initial placement on nodes."), d1n), Pt), O1n), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), rcn), AVn), "Row Height Reevaluation"), "During the compaction step the height of a row is normally not changed. If this options is set, the blocks of other rows might be added if they exceed the row height. If this is the case the whole row has to be packed again to be optimal regarding the new row height. This option should, therefore, be used with care since it might be computation heavy."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), ccn), AVn), "Compaction iterations"), "Defines the number of compaction iterations. E.g. if set to 2 the width is initially approximated, then the drawing is compacted and based on the resulting drawing the target width is decreased or increased and a second compaction step is executed and the result compared to the first one. The best run is used based on the scale measure."), Y(1)), Zr), Gi), jn(xn)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), ucn), "whiteSpaceElimination"), "White Space Approximation Strategy"), "Strategy for expanding nodes such that whitespace in the parent is eliminated."), Pt), N1n), jn(xn)))), bzn((new m8n(), e)); + }; + var vce, kce, yce, jce, Ece, Cce, d1n, Mce, Tce, Ace, Sce, b1n, Pce, w1n, Ice; + w(JR, "RectPackingMetaDataProvider", 867), b(1016, 1, ms, m8n), o.hf = function(e) { + bzn(e); + }; + var zI, Oce, g1n, Rj, p1n, Dce, Kj, Lce, Nce, $ce, xce, Fce, Dq, m1n, Lq, v1n, h9, k1n, Bce, l9, y1n, j1n, E1n, C1n, M1n, Nq; + w(JR, "RectPackingOptions", 1016), b(1017, 1, {}, rmn), o.sf = function() { + var e; + return e = new gEn(), e; + }, o.tf = function(e) { + }, w(JR, "RectPackingOptions/RectpackingFactory", 1017), b(1705, 1, {}, vSn), o.a = 0, o.c = !1, w(Jm, "AreaApproximation", 1705); + var T1n = Nt(Jm, "BestCandidateFilter"); + b(673, 1, { 535: 1 }, BO), o.Hg = function(e, t, i) { + var r, c, s, f, h, l; + for (l = new Z(), s = St, h = new C(e); h.a < h.c.c.length; ) + f = u(E(h), 238), s = y.Math.min(s, (f.c + (i.b + i.c)) * (f.b + (i.d + i.a))); + for (c = new C(e); c.a < c.c.c.length; ) + r = u(E(c), 238), (r.c + (i.b + i.c)) * (r.b + (i.d + i.a)) == s && Kn(l.c, r); + return l; + }, w(Jm, "AreaFilter", 673), b(674, 1, { 535: 1 }, RO), o.Hg = function(e, t, i) { + var r, c, s, f, h, l; + for (h = new Z(), l = St, f = new C(e); f.a < f.c.c.length; ) + s = u(E(f), 238), l = y.Math.min(l, y.Math.abs((s.c + (i.b + i.c)) / (s.b + (i.d + i.a)) - t)); + for (c = new C(e); c.a < c.c.c.length; ) + r = u(E(c), 238), y.Math.abs((r.c + (i.b + i.c)) / (r.b + (i.d + i.a)) - t) == l && Kn(h.c, r); + return h; + }, w(Jm, "AspectRatioFilter", 674), b(1469, 1, kr, cmn), o.rg = function(e) { + return u(e, 27), null; + }, o.Kf = function(e, t) { + YTe(u(e, 27), t); + }, w(Jm, "GreedyWidthApproximator", 1469), b(672, 1, { 535: 1 }, KO), o.Hg = function(e, t, i) { + var r, c, s, f, h, l; + for (l = new Z(), s = ai, h = new C(e); h.a < h.c.c.length; ) + f = u(E(h), 238), s = y.Math.max(s, cM(f.c + (i.b + i.c), f.b + (i.d + i.a), f.a)); + for (c = new C(e); c.a < c.c.c.length; ) + r = u(E(c), 238), cM(r.c + (i.b + i.c), r.b + (i.d + i.a), r.a) == s && Kn(l.c, r); + return l; + }, w(Jm, "ScaleMeasureFilter", 672), b(1470, 1, kr, umn), o.rg = function(e) { + return u(e, 27), null; + }, o.Kf = function(e, t) { + BEe(u(e, 27), t); + }, w(Jm, "TargetWidthWidthApproximator", 1470), b(491, 22, { 3: 1, 34: 1, 22: 1, 491: 1, 188: 1, 196: 1 }, fX), o.dg = function() { + return KKn(this); + }, o.qg = function() { + return KKn(this); + }; + var $q, A1n, S1n = we(Jm, "WidthApproximationStrategy", 491, ke, Qge, k0e), Rce; + b(1471, 1, kr, omn), o.rg = function(e) { + return u(e, 27), null; + }, o.Kf = function(e, t) { + YDe(this, u(e, 27), t); + }, w($S, "Compactor", 1471), b(1473, 1, kr, smn), o.rg = function(e) { + return u(e, 27), null; + }, o.Kf = function(e, t) { + ITe(u(e, 27), t); + }, w($S, "NoPlacement", 1473), b(439, 22, { 3: 1, 34: 1, 22: 1, 439: 1, 188: 1, 196: 1 }, oL), o.dg = function() { + return nBn(this); + }, o.qg = function() { + return nBn(this); + }; + var xq, P1n, I1n, O1n = we($S, "PackingStrategy", 439, ke, npe, E0e), Kce; + b(810, 1, {}, dX), o.a = 0, o.b = 0, o.c = 0, o.d = St, o.e = 0, o.f = St, w($S, "RowFillingAndCompaction", 810), b(1472, 1, kr, fmn), o.rg = function(e) { + return u(e, 27), null; + }, o.Kf = function(e, t) { + bOe(u(e, 27), t); + }, w($S, "SimplePlacement", 1472), b(1474, 1, kr, hmn), o.rg = function(e) { + return u(e, 27), null; + }, o.Kf = function(e, t) { + this.Ig(u(e, 27), t); + }, o.Ig = function(e, t) { + LHn(e, t); + }, w(ocn, "EqualWhitespaceEliminator", 1474), b(1475, 1474, kr, lmn), o.Ig = function(e, t) { + var i, r, c, s, f; + t.Ug("To Aspect Ratio Whitesapce Eliminator", 1), f = $(R(z(e, (Kh(), O3)))), s = $(R(z(e, Lv))), c = $(R(z(e, (Bf(), zI)))), i = $(R(z(e, s9))), r = f / s, r < c ? (f = s * c, ht(e, O3, f)) : (i += f / c - s, ht(e, s9, i), ht(e, Lv, s + i)), LHn(e, t), t.Vg(); + }, w(ocn, "ToAspectratioNodeExpander", 1475), b(492, 22, { 3: 1, 34: 1, 22: 1, 492: 1, 188: 1, 196: 1 }, hX), o.dg = function() { + return Sxn(this); + }, o.qg = function() { + return Sxn(this); + }; + var D1n, L1n, N1n = we(ocn, "WhiteSpaceEliminationStrategy", 492, ke, Yge, C0e), _ce; + b(172, 1, { 172: 1 }, U$), o.a = 0, o.c = !1, o.d = 0, o.e = 0, o.f = 0, o.g = 0, o.i = 0, o.k = !1, o.o = St, o.p = St, o.r = 0, o.s = 0, o.t = 0, w(zy, "Block", 172), b(209, 1, { 209: 1 }, NM), o.a = 0, o.b = 0, o.d = 0, o.e = 0, o.f = 0, w(zy, "BlockRow", 209), b(315, 1, { 315: 1 }, iJ), o.b = 0, o.c = 0, o.d = 0, o.e = 0, o.f = 0, w(zy, "BlockStack", 315), b(238, 1, { 238: 1 }, iW, iZ), o.a = 0, o.b = 0, o.c = 0, o.d = 0, o.e = 0, o.g = 0; + var SNe = w(zy, "DrawingData", 238); + b(373, 22, { 3: 1, 34: 1, 22: 1, 373: 1 }, b7); + var D3, N2, a9, d9, _j, Hce = we(zy, "DrawingDataDescriptor", 373, ke, G3e, M0e), qce; + b(186, 1, { 186: 1 }, dJ), o.b = 0, o.c = 0, o.e = 0, o.f = 0, w(zy, "RectRow", 186), b(763, 1, {}, bY), o.j = 0, w(Cw, BXn, 763), b(1209, 1, {}, amn), o.af = function(e) { + return J1(e.a, e.b); + }, w(Cw, ztn, 1209), b(1210, 1, {}, jkn), o.af = function(e) { + return e4e(this.a, e); + }, w(Cw, RXn, 1210), b(1211, 1, {}, Ekn), o.af = function(e) { + return y9e(this.a, e); + }, w(Cw, KXn, 1211), b(1212, 1, {}, Ckn), o.af = function(e) { + return c6e(this.a, e); + }, w(Cw, "ElkGraphImporter/lambda$3$Type", 1212), b(1213, 1, {}, Mkn), o.af = function(e) { + return oCe(this.a, e); + }, w(Cw, _Xn, 1213), b(1115, 205, jd, pEn), o.rf = function(e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m; + for (Df(e, (Wk(), QI)) && (m = Oe(z(e, (Dx(), ean))), s = TF(G4(), m), s && (f = u(z7(s.f), 205), f.rf(e, t.eh(1)))), ht(e, qq, (ik(), JI)), ht(e, Uq, (Jk(), Hq)), ht(e, Gq, (Mk(), YI)), h = u(z(e, (Dx(), Y1n)), 17).a, t.Ug("Overlap removal", 1), on(un(z(e, fue))), l = new ei(), a = new Tkn(l), r = new bY(), i = wzn(r, e), d = !0, c = 0; c < h && d; ) { + if (on(un(z(e, Z1n)))) { + if (l.a.$b(), Yje(new yTn(a), i.i), l.a.gc() == 0) + break; + i.e = l; + } + for (H7(this.b), hf(this.b, ($k(), XI), (s6(), Hj)), hf(this.b, VI, i.g), hf(this.b, WI, (tC(), Rq)), this.a = gy(this.b, i), p = new C(this.a); p.a < p.c.c.length; ) + g = u(E(p), 47), g.Kf(i, t.eh(1)); + wke(r, i), d = on(un(v(i, (W4(), uon)))), ++c; + } + SGn(r, i), t.Vg(); + }, w(Cw, "OverlapRemovalLayoutProvider", 1115), b(1116, 1, {}, Tkn), w(Cw, "OverlapRemovalLayoutProvider/lambda$0$Type", 1116), b(444, 22, { 3: 1, 34: 1, 22: 1, 444: 1 }, sL); + var XI, VI, WI, Fq = we(Cw, "SPOrEPhases", 444, ke, ope, A0e), Uce; + b(1219, 1, {}, mEn), w(Cw, "ShrinkTree", 1219), b(1117, 205, jd, kjn), o.rf = function(e, t) { + var i, r, c, s, f; + Df(e, (Wk(), QI)) && (f = Oe(z(e, QI)), c = TF(G4(), f), c && (s = u(z7(c.f), 205), s.rf(e, t.eh(1)))), r = new bY(), i = wzn(r, e), DMe(this.a, i, t.eh(1)), SGn(r, i); + }, w(Cw, "ShrinkTreeLayoutProvider", 1117), b(306, 137, { 3: 1, 306: 1, 96: 1, 137: 1 }, sOn), o.c = !1, w("org.eclipse.elk.alg.spore.graph", "Graph", 306), b(490, 22, { 3: 1, 34: 1, 22: 1, 490: 1, 188: 1, 196: 1 }, bCn), o.dg = function() { + return EFn(this); + }, o.qg = function() { + return EFn(this); + }; + var Bq, $1n = we(Mw, Ktn, 490, ke, ege, T0e), Gce; + b(558, 22, { 3: 1, 34: 1, 22: 1, 558: 1, 188: 1, 196: 1 }, dAn), o.dg = function() { + return new ZU(); + }, o.qg = function() { + return new ZU(); + }; + var Rq, zce = we(Mw, "OverlapRemovalStrategy", 558, ke, tge, S0e), Xce; + b(438, 22, { 3: 1, 34: 1, 22: 1, 438: 1 }, lX); + var JI, Kq, x1n = we(Mw, "RootSelection", 438, ke, t2e, P0e), Vce; + b(324, 22, { 3: 1, 34: 1, 22: 1, 324: 1 }, w7); + var F1n, _q, Hq, B1n, R1n, K1n = we(Mw, "SpanningTreeCostFunction", 324, ke, z3e, I0e), Wce; + b(1014, 1, ms, v8n), o.hf = function(e) { + rGn(e); + }; + var _1n, H1n, Jce, Qce, q1n, U1n, qq, Uq, Gq, Yce, Zce, QI; + w(Mw, "SporeCompactionOptions", 1014), b(1015, 1, {}, dmn), o.sf = function() { + var e; + return e = new kjn(), e; + }, o.tf = function(e) { + }, w(Mw, "SporeCompactionOptions/SporeCompactionFactory", 1015), b(866, 1, ms, k8n), o.hf = function(e) { + vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), YR), ""), "Underlying Layout Algorithm"), "A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction."), (a1(), $2)), fn), jn((pf(), xn))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), eK), "structure"), "Structure Extraction Strategy"), "This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices."), J1n), Pt), tan), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), scn), tK), "Tree Construction Strategy"), "Whether a minimum spanning tree or a maximum spanning tree should be constructed."), V1n), Pt), ran), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), fcn), tK), "Cost Function for Spanning Tree"), "The cost function is used in the creation of the spanning tree."), X1n), Pt), K1n), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), ZR), tK), "Root node for spanning tree construction"), "The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen."), null), $2), fn), jn(xn)))), ci(e, ZR, nK, cue), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), nK), tK), "Root selection for spanning tree"), "This sets the method used to select a root node for the construction of a spanning tree"), z1n), Pt), x1n), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), hcn), _in), TVn), "This option defines how the compaction is applied."), G1n), Pt), $1n), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), lcn), _in), "Orthogonal Compaction"), "Restricts the translation of nodes to orthogonal directions in the compaction phase."), (_n(), !1)), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), acn), PVn), "Upper limit for iterations of overlap removal"), null), Y(64)), Zr), Gi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), dcn), PVn), "Whether to run a supplementary scanline overlap check."), null), !0), ji), zt), jn(xn)))), oUn((new y8n(), e)), rGn((new v8n(), e)); + }; + var nue, G1n, eue, tue, iue, rue, cue, uue, z1n, oue, X1n, sue, V1n, W1n, J1n, Q1n; + w(Mw, "SporeMetaDataProvider", 866), b(1012, 1, ms, y8n), o.hf = function(e) { + oUn(e); + }; + var fue, Y1n, Z1n, nan, hue, ean; + w(Mw, "SporeOverlapRemovalOptions", 1012), b(1013, 1, {}, bmn), o.sf = function() { + var e; + return e = new pEn(), e; + }, o.tf = function(e) { + }, w(Mw, "SporeOverlapRemovalOptions/SporeOverlapFactory", 1013), b(539, 22, { 3: 1, 34: 1, 22: 1, 539: 1, 188: 1, 196: 1 }, bIn), o.dg = function() { + return CFn(this); + }, o.qg = function() { + return CFn(this); + }; + var Hj, tan = we(Mw, "StructureExtractionStrategy", 539, ke, ige, O0e), lue; + b(437, 22, { 3: 1, 34: 1, 22: 1, 437: 1, 188: 1, 196: 1 }, aX), o.dg = function() { + return CBn(this); + }, o.qg = function() { + return CBn(this); + }; + var ian, YI, ran = we(Mw, "TreeConstructionStrategy", 437, ke, i2e, D0e), aue; + b(1463, 1, kr, wmn), o.rg = function(e) { + return u(e, 306), new ri(); + }, o.Kf = function(e, t) { + vke(u(e, 306), t); + }, w(IVn, "DelaunayTriangulationPhase", 1463), b(1464, 1, re, Akn), o.Cd = function(e) { + nn(this.a, u(e, 68).a); + }, w(IVn, "DelaunayTriangulationPhase/lambda$0$Type", 1464), b(794, 1, kr, cz), o.rg = function(e) { + return u(e, 306), new ri(); + }, o.Kf = function(e, t) { + this.Jg(u(e, 306), t); + }, o.Jg = function(e, t) { + var i, r, c; + t.Ug("Minimum spanning tree construction", 1), e.d ? r = e.d.a : r = u(sn(e.i, 0), 68).a, on(un(v(e, (W4(), O8)))) ? c = GF(e.e, r, (i = e.b, i)) : c = GF(e.e, r, e.b), uFn(this, c, e), t.Vg(); + }, w(iK, "MinSTPhase", 794), b(1466, 794, kr, cjn), o.Jg = function(e, t) { + var i, r, c, s; + t.Ug("Maximum spanning tree construction", 1), i = new Skn(e), e.d ? c = e.d.c : c = u(sn(e.i, 0), 68).c, on(un(v(e, (W4(), O8)))) ? s = GF(e.e, c, (r = i, r)) : s = GF(e.e, c, i), uFn(this, s, e), t.Vg(); + }, w(iK, "MaxSTPhase", 1466), b(1467, 1, {}, Skn), o.af = function(e) { + return gle(this.a, e); + }, w(iK, "MaxSTPhase/lambda$0$Type", 1467), b(1465, 1, re, Pkn), o.Cd = function(e) { + s1e(this.a, u(e, 68)); + }, w(iK, "MinSTPhase/lambda$0$Type", 1465), b(796, 1, kr, ZU), o.rg = function(e) { + return u(e, 306), new ri(); + }, o.Kf = function(e, t) { + Nye(this, u(e, 306), t); + }, o.a = !1, w(rK, "GrowTreePhase", 796), b(797, 1, re, FV), o.Cd = function(e) { + Jve(this.a, this.b, this.c, u(e, 225)); + }, w(rK, "GrowTreePhase/lambda$0$Type", 797), b(1468, 1, kr, gmn), o.rg = function(e) { + return u(e, 306), new ri(); + }, o.Kf = function(e, t) { + H9e(this, u(e, 306), t); + }, w(rK, "ShrinkTreeCompactionPhase", 1468), b(795, 1, re, BV), o.Cd = function(e) { + PCe(this.a, this.b, this.c, u(e, 225)); + }, w(rK, "ShrinkTreeCompactionPhase/lambda$0$Type", 795); + var can = Nt(dc, "IGraphElementVisitor"); + b(872, 1, { 536: 1 }, XOn), o.Kg = function(e) { + var t; + t = xAe(this, e), Ur(t, u(ee(this.b, e), 96)), OMe(this, e, t); + }; + var due, bue; + w(e2, "LayoutConfigurator", 872); + var PNe = Nt(e2, "LayoutConfigurator/IPropertyHolderOptionFilter"); + b(944, 1, { 2032: 1 }, pmn), o.Lg = function(e, t) { + return qp(), !e.pf(t); + }, w(e2, "LayoutConfigurator/lambda$0$Type", 944), b(943, 1, { 845: 1 }, mmn), o.Mg = function(e, t) { + return qp(), !e.pf(t); + }, w(e2, "LayoutConfigurator/lambda$1$Type", 943), b(945, 1, { 2032: 1 }, Hse), o.Lg = function(e, t) { + return vEn(e, t); + }, w(e2, "LayoutConfigurator/lambda$2$Type", 945), b(946, 1, De, uMn), o.Mb = function(e) { + return Gwe(this.a, this.b, u(e, 2032)); + }, w(e2, "LayoutConfigurator/lambda$3$Type", 946), b(869, 1, {}, vmn), w(e2, "RecursiveGraphLayoutEngine", 869), b(224, 63, Pl, xyn, Hl), w(e2, "UnsupportedConfigurationException", 224), b(370, 63, Pl, hp), w(e2, "UnsupportedGraphException", 370), b(761, 1, {}), w(dc, "AbstractRandomListAccessor", 761), b(450, 761, {}, F5), o.Ng = function() { + return null; + }, o.d = !0, o.e = !0, o.f = 0, w(Ym, "AlgorithmAssembler", 450), b(1200, 1, De, kmn), o.Mb = function(e) { + return !!u(e, 106); + }, w(Ym, "AlgorithmAssembler/lambda$0$Type", 1200), b(1201, 1, {}, Ikn), o.Kb = function(e) { + return Ohe(this.a, u(e, 106)); + }, w(Ym, "AlgorithmAssembler/lambda$1$Type", 1201), b(1202, 1, De, ymn), o.Mb = function(e) { + return !!u(e, 80); + }, w(Ym, "AlgorithmAssembler/lambda$2$Type", 1202), b(1203, 1, re, Okn), o.Cd = function(e) { + Mo(this.a, u(e, 80)); + }, w(Ym, "AlgorithmAssembler/lambda$3$Type", 1203), b(1204, 1, re, oMn), o.Cd = function(e) { + tae(this.a, this.b, u(e, 196)); + }, w(Ym, "AlgorithmAssembler/lambda$4$Type", 1204), b(1343, 1, Ne, jmn), o.Ne = function(e, t) { + return Age(u(e, 196), u(t, 196)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Ym, "EnumBasedFactoryComparator", 1343), b(80, 761, { 80: 1 }, ri), o.Ng = function() { + return new ei(); + }, o.a = 0, w(Ym, "LayoutProcessorConfiguration", 80), b(1025, 1, { 536: 1 }, j8n), o.Kg = function(e) { + f5(gue, new Dkn(e)); + }; + var wue, gue, pue; + w(oc, "DeprecatedLayoutOptionReplacer", 1025), b(1026, 1, re, Emn), o.Cd = function(e) { + F4e(u(e, 167)); + }, w(oc, "DeprecatedLayoutOptionReplacer/lambda$0$Type", 1026), b(1027, 1, re, Cmn), o.Cd = function(e) { + j8e(u(e, 167)); + }, w(oc, "DeprecatedLayoutOptionReplacer/lambda$1$Type", 1027), b(1028, 1, {}, Dkn), o.Yd = function(e, t) { + eae(this.a, u(e, 149), u(t, 41)); + }, w(oc, "DeprecatedLayoutOptionReplacer/lambda$2$Type", 1028), b(143, 1, { 701: 1, 143: 1 }, pd), o.Fb = function(e) { + return IJ(this, e); + }, o.Og = function() { + return this.b; + }, o.Pg = function() { + return this.c; + }, o.xe = function() { + return this.e; + }, o.Hb = function() { + return i1(this.c); + }, o.Ib = function() { + return "Layout Algorithm: " + this.c; + }; + var INe = w(oc, "LayoutAlgorithmData", 143); + b(269, 1, {}, _a), w(oc, "LayoutAlgorithmData/Builder", 269), b(1029, 1, { 536: 1 }, Tmn), o.Kg = function(e) { + D(e, 207) && !on(un(e.of((He(), tO)))) && MPe(u(e, 27)); + }, w(oc, "LayoutAlgorithmResolver", 1029), b(233, 1, { 701: 1, 233: 1 }, Np), o.Fb = function(e) { + return D(e, 233) ? An(this.b, u(e, 233).b) : !1; + }, o.Og = function() { + return this.a; + }, o.Pg = function() { + return this.b; + }, o.xe = function() { + return this.d; + }, o.Hb = function() { + return i1(this.b); + }, o.Ib = function() { + return "Layout Type: " + this.b; + }, w(oc, "LayoutCategoryData", 233), b(357, 1, {}, tp), w(oc, "LayoutCategoryData/Builder", 357), b(879, 1, {}, Jqn); + var zq; + w(oc, "LayoutMetaDataService", 879), b(880, 1, {}, YPn), w(oc, "LayoutMetaDataService/Registry", 880), b(487, 1, { 487: 1 }, nG), w(oc, "LayoutMetaDataService/Registry/Triple", 487), b(881, 1, u2, Mmn), o.Qg = function() { + return new Ni(); + }, w(oc, "LayoutMetaDataService/lambda$0$Type", 881), b(882, 1, Tw, Amn), o.Rg = function(e) { + return Ki(u(e, 8)); + }, w(oc, "LayoutMetaDataService/lambda$1$Type", 882), b(891, 1, u2, Smn), o.Qg = function() { + return new Z(); + }, w(oc, "LayoutMetaDataService/lambda$10$Type", 891), b(892, 1, Tw, Pmn), o.Rg = function(e) { + return new Ru(u(e, 13)); + }, w(oc, "LayoutMetaDataService/lambda$11$Type", 892), b(893, 1, u2, Imn), o.Qg = function() { + return new Ct(); + }, w(oc, "LayoutMetaDataService/lambda$12$Type", 893), b(894, 1, Tw, Omn), o.Rg = function(e) { + return $7(u(e, 67)); + }, w(oc, "LayoutMetaDataService/lambda$13$Type", 894), b(895, 1, u2, Dmn), o.Qg = function() { + return new ei(); + }, w(oc, "LayoutMetaDataService/lambda$14$Type", 895), b(896, 1, Tw, Lmn), o.Rg = function(e) { + return SM(u(e, 49)); + }, w(oc, "LayoutMetaDataService/lambda$15$Type", 896), b(897, 1, u2, Nmn), o.Qg = function() { + return new ih(); + }, w(oc, "LayoutMetaDataService/lambda$16$Type", 897), b(898, 1, Tw, $mn), o.Rg = function(e) { + return HM(u(e, 49)); + }, w(oc, "LayoutMetaDataService/lambda$17$Type", 898), b(899, 1, u2, xmn), o.Qg = function() { + return new GG(); + }, w(oc, "LayoutMetaDataService/lambda$18$Type", 899), b(900, 1, Tw, Fmn), o.Rg = function(e) { + return ASn(u(e, 157)); + }, w(oc, "LayoutMetaDataService/lambda$19$Type", 900), b(883, 1, u2, Bmn), o.Qg = function() { + return new Cu(); + }, w(oc, "LayoutMetaDataService/lambda$2$Type", 883), b(884, 1, Tw, Rmn), o.Rg = function(e) { + return new GE(u(e, 75)); + }, w(oc, "LayoutMetaDataService/lambda$3$Type", 884), b(885, 1, u2, Kmn), o.Qg = function() { + return new Qv(); + }, w(oc, "LayoutMetaDataService/lambda$4$Type", 885), b(886, 1, Tw, _mn), o.Rg = function(e) { + return new qL(u(e, 140)); + }, w(oc, "LayoutMetaDataService/lambda$5$Type", 886), b(887, 1, u2, Hmn), o.Qg = function() { + return new up(); + }, w(oc, "LayoutMetaDataService/lambda$6$Type", 887), b(888, 1, Tw, qmn), o.Rg = function(e) { + return new HV(u(e, 107)); + }, w(oc, "LayoutMetaDataService/lambda$7$Type", 888), b(889, 1, u2, Umn), o.Qg = function() { + return new _O(); + }, w(oc, "LayoutMetaDataService/lambda$8$Type", 889), b(890, 1, Tw, Gmn), o.Rg = function(e) { + return new JNn(u(e, 385)); + }, w(oc, "LayoutMetaDataService/lambda$9$Type", 890); + var Xq = Nt(Dy, "IProperty"); + b(23, 1, { 34: 1, 701: 1, 23: 1, 149: 1 }, ln), o.Fd = function(e) { + return j1e(this, u(e, 149)); + }, o.Fb = function(e) { + return D(e, 23) ? An(this.f, u(e, 23).f) : D(e, 149) && An(this.f, u(e, 149).Pg()); + }, o.Sg = function() { + var e; + if (D(this.b, 4)) { + if (e = cZ(this.b), e == null) + throw M(new Ir(NVn + this.f + "'. Make sure it's type is registered with the " + (ll(lE), lE.k) + bcn)); + return e; + } else + return this.b; + }, o.Og = function() { + return this.d; + }, o.Pg = function() { + return this.f; + }, o.xe = function() { + return this.i; + }, o.Hb = function() { + return i1(this.f); + }, o.Ib = function() { + return "Layout Option: " + this.f; + }, w(oc, "LayoutOptionData", 23), b(24, 1, {}, hn), w(oc, "LayoutOptionData/Builder", 24), b(170, 22, { 3: 1, 34: 1, 22: 1, 170: 1 }, g7); + var Sh, C1, mi, xn, _d, Yh = we(oc, "LayoutOptionData/Target", 170, ke, X3e, L0e), mue; + b(285, 22, { 3: 1, 34: 1, 22: 1, 285: 1 }, wp); + var ji, Qi, Pt, L3, Zr, Xf, $2, uan, vue = we(oc, "LayoutOptionData/Type", 285, ke, bme, N0e), kue, b9, oan; + b(116, 1, { 116: 1 }, mp, Ho, PM), o.Fb = function(e) { + var t; + return e == null || !D(e, 116) ? !1 : (t = u(e, 116), mc(this.c, t.c) && mc(this.d, t.d) && mc(this.b, t.b) && mc(this.a, t.a)); + }, o.Hb = function() { + return Ik(A(T(yi, 1), Bn, 1, 5, [this.c, this.d, this.b, this.a])); + }, o.Ib = function() { + return "Rect[x=" + this.c + ",y=" + this.d + ",w=" + this.b + ",h=" + this.a + "]"; + }, o.a = 0, o.b = 0, o.c = 0, o.d = 0, w(Ky, "ElkRectangle", 116), b(8, 1, { 3: 1, 4: 1, 8: 1, 423: 1 }, Ni, BN, V, ir), o.Fb = function(e) { + return fxn(this, e); + }, o.Hb = function() { + return pp(this.a) + k7e(pp(this.b)); + }, o.cg = function(e) { + var t, i, r, c; + for (r = 0; r < e.length && XFn((zn(r, e.length), e.charCodeAt(r)), LXn); ) + ++r; + for (t = e.length; t > 0 && XFn((zn(t - 1, e.length), e.charCodeAt(t - 1)), NXn); ) + --t; + if (r >= t) + throw M(new Gn("The given string does not contain any numbers.")); + if (c = gw((Bi(r, t, e.length), e.substr(r, t - r)), `,|;|\r| +`), c.length != 2) + throw M(new Gn("Exactly two numbers are expected, " + c.length + " were found.")); + try { + this.a = fw(hw(c[0])), this.b = fw(hw(c[1])); + } catch (s) { + throw s = It(s), D(s, 130) ? (i = s, M(new Gn($Xn + i))) : M(s); + } + }, o.Ib = function() { + return "(" + this.a + "," + this.b + ")"; + }, o.a = 0, o.b = 0; + var Ci = w(Ky, "KVector", 8); + b(75, 67, { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 67: 1, 15: 1, 75: 1, 423: 1 }, Cu, GE, aAn), o.Pc = function() { + return O6e(this); + }, o.cg = function(e) { + var t, i, r, c, s, f; + r = gw(e, `,|;|\\(|\\)|\\[|\\]|\\{|\\}| | | +`), vo(this); + try { + for (i = 0, s = 0, c = 0, f = 0; i < r.length; ) + r[i] != null && hw(r[i]).length > 0 && (s % 2 == 0 ? c = fw(r[i]) : f = fw(r[i]), s > 0 && s % 2 != 0 && Fe(this, new V(c, f)), ++s), ++i; + } catch (h) { + throw h = It(h), D(h, 130) ? (t = h, M(new Gn("The given string does not match the expected format for vectors." + t))) : M(h); + } + }, o.Ib = function() { + var e, t, i; + for (e = new mo("("), t = ge(this, 0); t.b != t.d.c; ) + i = u(be(t), 8), Re(e, i.a + "," + i.b), t.b != t.d.c && (e.a += "; "); + return (e.a += ")", e).a; + }; + var san = w(Ky, "KVectorChain", 75); + b(255, 22, { 3: 1, 34: 1, 22: 1, 255: 1 }, v6); + var Vq, ZI, nO, qj, Uj, eO, fan = we(co, "Alignment", 255, ke, S4e, $0e), yue; + b(991, 1, ms, E8n), o.hf = function(e) { + yUn(e); + }; + var han, Wq, jue, lan, aan, Eue, dan, Cue, Mue, ban, wan, Tue; + w(co, "BoxLayouterOptions", 991), b(992, 1, {}, zmn), o.sf = function() { + var e; + return e = new Wmn(), e; + }, o.tf = function(e) { + }, w(co, "BoxLayouterOptions/BoxFactory", 992), b(298, 22, { 3: 1, 34: 1, 22: 1, 298: 1 }, k6); + var w9, Jq, g9, p9, m9, Qq, Yq = we(co, "ContentAlignment", 298, ke, P4e, x0e), Aue; + b(699, 1, ms, cG), o.hf = function(e) { + vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), xVn), ""), "Layout Algorithm"), "Select a specific layout algorithm."), (a1(), $2)), fn), jn((pf(), xn))))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), FVn), ""), "Resolved Layout Algorithm"), "Meta data associated with the selected algorithm."), Xf), INe), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), rrn), ""), "Alignment"), "Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."), gan), Pt), fan), jn(mi)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), l3), ""), "Aspect Ratio"), "The desired aspect ratio of the drawing, that is the quotient of width by height."), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), pcn), ""), "Bend Points"), "A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."), Xf), san), jn(Sh)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), MS), ""), "Content Alignment"), "Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."), man), L3), Yq), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Uy), ""), "Debug Mode"), "Whether additional debug information shall be generated."), (_n(), !1)), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), xR), ""), Btn), "Overall direction of edges: horizontal (right / left) or vertical (down / up)."), van), Pt), y9), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), qy), ""), "Edge Routing"), "What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."), jan), Pt), aU), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), wcn), ""), "Expand Nodes"), "If active, nodes are expanded to fill the area of their parent."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), CS), ""), "Hierarchy Handling"), "Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."), Man), Pt), ldn), yt(xn, A(T(Yh, 1), G, 170, 0, [mi]))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), J0), ""), "Padding"), "The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."), Nan), Xf), $on), yt(xn, A(T(Yh, 1), G, 170, 0, [mi]))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), i8), ""), "Interactive"), "Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), AS), ""), "interactive Layout"), "Whether the graph should be changeable interactively and by setting constraints"), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), r8), ""), "Omit Node Micro Layout"), "Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), tR), ""), "Port Constraints"), "Defines constraints of the position of the ports of a node."), Ran), Pt), bdn), jn(mi)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), TS), ""), "Position"), "The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."), Xf), Ci), yt(mi, A(T(Yh, 1), G, 170, 0, [_d, C1]))))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), Ny), ""), "Priority"), "Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."), Zr), Gi), yt(mi, A(T(Yh, 1), G, 170, 0, [Sh]))))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), uS), ""), "Randomization Seed"), "Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."), Zr), Gi), jn(xn)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), t8), ""), "Separate Connected Components"), "Whether each connected component should be processed separately."), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), wrn), ""), "Junction Points"), "This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."), Tan), Xf), san), jn(Sh)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), mrn), ""), "Comment Box"), "Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."), !1), ji), zt), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), vrn), ""), "Hypernode"), "Whether the node should be handled as a hypernode."), !1), ji), zt), jn(mi)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), iNe), ""), "Label Manager"), "Label managers can shorten labels upon a layout algorithm's request."), Xf), $Ne), yt(xn, A(T(Yh, 1), G, 170, 0, [C1]))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), yrn), ""), "Margins"), "Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."), Aan), Xf), Non), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), trn), ""), "No Layout"), "No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."), !1), ji), zt), yt(mi, A(T(Yh, 1), G, 170, 0, [Sh, _d, C1]))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), BVn), ""), "Scale Factor"), "The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."), 1), Qi), fi), jn(mi)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), RVn), ""), "Child Area Width"), "The width of the area occupied by the laid out children of a node."), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), KVn), ""), "Child Area Height"), "The height of the area occupied by the laid out children of a node."), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), $y), ""), OVn), "Turns topdown layout on and off. If this option is enabled, hierarchical layout will be computed first for the root node and then for its children recursively. Layouts are then scaled down to fit the area provided by their parents. Graphs must follow a certain structure for topdown layout to work properly. {@link TopdownNodeTypes.PARALLEL_NODE} nodes must have children of type {@link TopdownNodeTypes.HIERARCHICAL_NODE} and must define {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} for their children. Furthermore they need to be laid out using an algorithm that is a {@link TopdownLayoutProvider}. Hierarchical nodes can also be parents of other hierarchical nodes and can optionally use a {@link TopdownSizeApproximator} to dynamically set sizes during topdown layout. In this case {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} should be set on the node itself rather than the parent. The values are then used by the size approximator as base values. Hierarchical nodes require the layout option {@link nodeSize.fixedGraphSize} to be true to prevent the algorithm used there from resizing the hierarchical node. This option is not supported if 'Hierarchy Handling' is set to 'INCLUDE_CHILDREN'"), !1), ji), zt), jn(xn)))), ci(e, $y, Q0, null), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), _Vn), ""), "Animate"), "Whether the shift from the old layout to the new computed layout shall be animated."), !0), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), HVn), ""), "Animation Time Factor"), "Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."), Y(100)), Zr), Gi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), qVn), ""), "Layout Ancestors"), "Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), UVn), ""), "Maximal Animation Time"), "The maximal time for animations, in milliseconds."), Y(4e3)), Zr), Gi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), GVn), ""), "Minimal Animation Time"), "The minimal time for animations, in milliseconds."), Y(400)), Zr), Gi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), zVn), ""), "Progress Bar"), "Whether a progress bar shall be displayed during layout computations."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), XVn), ""), "Validate Graph"), "Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), VVn), ""), "Validate Options"), "Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."), !0), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), WVn), ""), "Zoom to Fit"), "Whether the zoom level shall be set to view the whole diagram after layout."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), gcn), "box"), "Box Layout Mode"), "Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."), pan), Pt), Cdn), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Gin), Hf), "Comment Comment Spacing"), "Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."), 10), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), zin), Hf), "Comment Node Spacing"), "Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."), 10), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), WB), Hf), "Components Spacing"), "Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."), 20), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Xin), Hf), "Edge Spacing"), "Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."), 10), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), eR), Hf), "Edge Label Spacing"), "The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."), 2), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), $R), Hf), "Edge Node Spacing"), "Spacing to be preserved between nodes and edges."), 10), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Vin), Hf), "Label Spacing"), "Determines the amount of space to be left between two labels of the same graph element."), 0), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Qin), Hf), "Label Node Spacing"), "Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."), 5), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Win), Hf), "Horizontal spacing between Label and Port"), "Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Jin), Hf), "Vertical spacing between Label and Port"), "Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), jw), Hf), "Node Spacing"), "The minimal distance to be preserved between each two nodes."), 20), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Yin), Hf), "Node Self Loop Spacing"), "Spacing to be preserved between a node and its self loops."), 10), Qi), fi), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Zin), Hf), "Port Spacing"), "Spacing between pairs of ports of the same node."), 10), Qi), fi), yt(xn, A(T(Yh, 1), G, 170, 0, [mi]))))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), nrn), Hf), "Individual Spacing"), "Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."), Xf), boe), yt(mi, A(T(Yh, 1), G, 170, 0, [Sh, _d, C1]))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), jrn), Hf), "Additional Port Space"), "Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."), Jan), Xf), Non), jn(xn)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), BR), YVn), "Layout Partition"), "Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."), Zr), Gi), yt(xn, A(T(Yh, 1), G, 170, 0, [mi]))))), ci(e, BR, FR, xue), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), FR), YVn), "Layout Partitioning"), "Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."), $an), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), orn), ZVn), "Node Label Padding"), "Define padding for node labels that are placed inside of a node."), Pan), Xf), $on), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), zm), ZVn), "Node Label Placement"), "Hints for where node labels are to be placed; if empty, the node label's position is not modified."), Ian), L3), jr), yt(mi, A(T(Yh, 1), G, 170, 0, [C1]))))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), hrn), FS), "Port Alignment"), "Defines the default port distribution for a node. May be overridden for each side individually."), Fan), Pt), M9), jn(mi)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), lrn), FS), "Port Alignment (North)"), "Defines how ports on the northern side are placed, overriding the node's general port alignment."), Pt), M9), jn(mi)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), arn), FS), "Port Alignment (South)"), "Defines how ports on the southern side are placed, overriding the node's general port alignment."), Pt), M9), jn(mi)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), drn), FS), "Port Alignment (West)"), "Defines how ports on the western side are placed, overriding the node's general port alignment."), Pt), M9), jn(mi)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), brn), FS), "Port Alignment (East)"), "Defines how ports on the eastern side are placed, overriding the node's general port alignment."), Pt), M9), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), r2), uK), "Node Size Constraints"), "What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."), Oan), L3), S9), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), a3), uK), "Node Size Options"), "Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."), Lan), L3), gdn), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), d3), uK), "Node Size Minimum"), "The minimal size to which a node can be reduced."), Dan), Xf), Ci), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Gm), uK), "Fixed Graph Size"), "By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."), !1), ji), zt), jn(xn)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), grn), NR), "Edge Label Placement"), "Gives a hint on where to put edge labels."), kan), Pt), Zan), jn(C1)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), oS), NR), "Inline Edge Labels"), "If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."), !1), ji), zt), jn(C1)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), rNe), "font"), "Font Name"), "Font name used for a label."), $2), fn), jn(C1)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), JVn), "font"), "Font Size"), "Font size used for a label."), Zr), Gi), jn(C1)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), krn), oK), "Port Anchor Offset"), "The offset to the port position where connections shall be attached."), Xf), Ci), jn(_d)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), prn), oK), "Port Index"), "The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."), Zr), Gi), jn(_d)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), irn), oK), "Port Side"), "The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."), Han), Pt), hr), jn(_d)))), vn(e, new ln(pn(gn(mn(an(wn(dn(bn(new hn(), ern), oK), "Port Border Offset"), "The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."), Qi), fi), jn(_d)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Xm), kcn), "Port Label Placement"), "Decides on a placement method for port labels; if empty, the node label's position is not modified."), Kan), L3), oO), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), srn), kcn), "Port Labels Next to Port"), "Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."), !1), ji), zt), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), frn), kcn), "Treat Port Labels as Group"), "If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."), !0), ji), zt), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), xy), Xy), "Topdown Scale Factor"), "The scaling factor to be applied to the nodes laid out within the node in recursive topdown layout. The difference to 'Scale Factor' is that the node itself is not scaled. This value has to be set on hierarchical nodes."), 1), Qi), fi), jn(xn)))), ci(e, xy, Q0, Uue), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), mcn), Xy), "Topdown Size Approximator"), "The size approximator to be used to set sizes of hierarchical nodes during topdown layout. The default value is null, which results in nodes keeping whatever size is defined for them e.g. through parent parallel node or by manually setting the size."), null), Pt), dO), jn(mi)))), ci(e, mcn, Q0, Gue), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Fy), Xy), "Topdown Hierarchical Node Width"), "The fixed size of a hierarchical node when using topdown layout. If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."), 150), Qi), fi), yt(xn, A(T(Yh, 1), G, 170, 0, [mi]))))), ci(e, Fy, Q0, null), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), By), Xy), "Topdown Hierarchical Node Aspect Ratio"), "The fixed aspect ratio of a hierarchical node when using topdown layout. Default is 1/sqrt(2). If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."), 1.414), Qi), fi), yt(xn, A(T(Yh, 1), G, 170, 0, [mi]))))), ci(e, By, Q0, null), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), Q0), Xy), "Topdown Node Type"), "The different node types used for topdown layout. If the node type is set to {@link TopdownNodeTypes.PARALLEL_NODE} the algorithm must be set to a {@link TopdownLayoutProvider} such as {@link TopdownPacking}. The {@link nodeSize.fixedGraphSize} option is technically only required for hierarchical nodes."), null), Pt), mdn), jn(mi)))), ci(e, Q0, Gm, null), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), vcn), Xy), "Topdown Scale Cap"), "Determines the upper limit for the topdown scale factor. The default value is 1.0 which ensures that nested children never end up appearing larger than their parents in terms of unit sizes such as the font size. If the limit is larger, nodes will fully utilize the available space, but it is counteriniuitive for inner nodes to have a larger scale than outer nodes."), 1), Qi), fi), jn(xn)))), ci(e, vcn, Q0, que), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), crn), nWn), "Activate Inside Self Loops"), "Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."), !1), ji), zt), jn(mi)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), urn), nWn), "Inside Self Loop"), "Whether a self loop should be routed inside a node instead of around that node."), !1), ji), zt), jn(Sh)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), JB), "edge"), "Edge Thickness"), "The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."), 1), Qi), fi), jn(Sh)))), vn(e, new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn(), QVn), "edge"), "Edge Type"), "The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."), Can), Pt), cdn), jn(Sh)))), f6(e, new Np(r6(c4(r4(new tp(), Yn), "Layered"), 'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))), f6(e, new Np(r6(c4(r4(new tp(), "org.eclipse.elk.orthogonal"), "Orthogonal"), `Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`))), f6(e, new Np(r6(c4(r4(new tp(), cu), "Force"), "Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))), f6(e, new Np(r6(c4(r4(new tp(), "org.eclipse.elk.circle"), "Circle"), "Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))), f6(e, new Np(r6(c4(r4(new tp(), gVn), "Tree"), "Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))), f6(e, new Np(r6(c4(r4(new tp(), "org.eclipse.elk.planar"), "Planar"), "Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))), f6(e, new Np(r6(c4(r4(new tp(), es), "Radial"), "Radial layout algorithms usually position the nodes of the graph on concentric circles."))), uUn((new C8n(), e)), yUn((new E8n(), e)), Nqn((new M8n(), e)); + }; + var Nv, Sue, gan, x2, Pue, Iue, pan, F2, B2, Oue, Gj, man, zj, Hd, van, Zq, nU, kan, yan, jan, Ean, Can, Due, R2, Man, Lue, Xj, eU, Vj, tU, yb, Tan, $v, Aan, San, Pan, K2, Ian, qd, Oan, Ww, _2, Dan, Ta, Lan, tO, Wj, M1, Nan, Nue, $an, $ue, xue, xan, Fan, iU, rU, cU, uU, Ban, uo, v9, Ran, oU, sU, Jw, Kan, _an, H2, Han, N3, Jj, fU, q2, Fue, hU, Bue, Rue, qan, Kue, Uan, Gan, $3, zan, iO, Xan, Van, Ud, _ue, Wan, Jan, Qan, rO, Qj, k9, x3, Hue, que, cO, Uue, Yan, Gue; + w(co, "CoreOptions", 699), b(88, 22, { 3: 1, 34: 1, 22: 1, 88: 1 }, p7); + var Vf, Fr, Xr, Wf, us, y9 = we(co, Btn, 88, ke, L3e, F0e), zue; + b(278, 22, { 3: 1, 34: 1, 22: 1, 278: 1 }, fL); + var xv, Qw, Fv, Zan = we(co, "EdgeLabelPlacement", 278, ke, spe, B0e), Xue; + b(223, 22, { 3: 1, 34: 1, 22: 1, 223: 1 }, kC); + var Bv, Yj, F3, lU, aU = we(co, "EdgeRouting", 223, ke, s3e, R0e), Vue; + b(321, 22, { 3: 1, 34: 1, 22: 1, 321: 1 }, y6); + var ndn, edn, tdn, idn, dU, rdn, cdn = we(co, "EdgeType", 321, ke, A4e, K0e), Wue; + b(989, 1, ms, C8n), o.hf = function(e) { + uUn(e); + }; + var udn, odn, sdn, fdn, Jue, hdn, j9; + w(co, "FixedLayouterOptions", 989), b(990, 1, {}, Xmn), o.sf = function() { + var e; + return e = new rvn(), e; + }, o.tf = function(e) { + }, w(co, "FixedLayouterOptions/FixedFactory", 990), b(346, 22, { 3: 1, 34: 1, 22: 1, 346: 1 }, hL); + var T1, uO, E9, ldn = we(co, "HierarchyHandling", 346, ke, upe, _0e), Que; + b(291, 22, { 3: 1, 34: 1, 22: 1, 291: 1 }, yC); + var Zh, Aa, Zj, nE, Yue = we(co, "LabelSide", 291, ke, o3e, H0e), Zue; + b(95, 22, { 3: 1, 34: 1, 22: 1, 95: 1 }, bg); + var xl, Qs, Cs, Ys, Lo, Zs, Ms, nl, nf, jr = we(co, "NodeLabelPlacement", 95, ke, Sme, q0e), noe; + b(256, 22, { 3: 1, 34: 1, 22: 1, 256: 1 }, m7); + var adn, C9, Sa, ddn, eE, M9 = we(co, "PortAlignment", 256, ke, V3e, U0e), eoe; + b(101, 22, { 3: 1, 34: 1, 22: 1, 101: 1 }, j6); + var Gd, Uc, el, Rv, Jf, Pa, bdn = we(co, "PortConstraints", 101, ke, T4e, G0e), toe; + b(279, 22, { 3: 1, 34: 1, 22: 1, 279: 1 }, E6); + var T9, A9, Fl, tE, Ia, B3, oO = we(co, "PortLabelPlacement", 279, ke, M4e, z0e), ioe; + b(64, 22, { 3: 1, 34: 1, 22: 1, 64: 1 }, v7); + var Zn, Xn, os, ss, gu, su, Qf, ef, Xu, $u, Gc, Vu, pu, mu, tf, No, $o, Ts, ae, sc, Wn, hr = we(co, "PortSide", 64, ke, N3e, X0e), roe; + b(993, 1, ms, M8n), o.hf = function(e) { + Nqn(e); + }; + var coe, uoe, wdn, ooe, soe; + w(co, "RandomLayouterOptions", 993), b(994, 1, {}, Vmn), o.sf = function() { + var e; + return e = new evn(), e; + }, o.tf = function(e) { + }, w(co, "RandomLayouterOptions/RandomFactory", 994), b(386, 22, { 3: 1, 34: 1, 22: 1, 386: 1 }, jC); + var Yw, iE, rE, zd, S9 = we(co, "SizeConstraint", 386, ke, u3e, V0e), foe; + b(264, 22, { 3: 1, 34: 1, 22: 1, 264: 1 }, wg); + var cE, sO, Kv, bU, uE, P9, fO, hO, lO, gdn = we(co, "SizeOptions", 264, ke, Kme, W0e), hoe; + b(280, 22, { 3: 1, 34: 1, 22: 1, 280: 1 }, lL); + var Zw, pdn, aO, mdn = we(co, "TopdownNodeTypes", 280, ke, fpe, J0e), loe; + b(347, 22, ycn); + var vdn, kdn, dO = we(co, "TopdownSizeApproximator", 347, ke, r2e, Y0e); + b(987, 347, ycn, VSn), o.Tg = function(e) { + return CRn(e); + }, we(co, "TopdownSizeApproximator/1", 987, dO, null, null), b(988, 347, ycn, LPn), o.Tg = function(e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn, Fn; + for (t = u(z(e, (He(), q2)), 143), tn = (B1(), m = new Yv(), m), uy(tn, e), yn = new de(), s = new ne((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a)); s.e != s.i.gc(); ) + r = u(ue(s), 27), O = (p = new Yv(), p), SA(O, tn), uy(O, r), Fn = CRn(r), kg(O, y.Math.max(r.g, Fn.a), y.Math.max(r.f, Fn.b)), Wc(yn.f, r, O); + for (c = new ne((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a)); c.e != c.i.gc(); ) + for (r = u(ue(c), 27), d = new ne((!r.e && (r.e = new Nn(Wt, r, 7, 4)), r.e)); d.e != d.i.gc(); ) + a = u(ue(d), 74), _ = u(Kr(gr(yn.f, r)), 27), X = u(ee(yn, L((!a.c && (a.c = new Nn(he, a, 5, 8)), a.c), 0)), 27), N = (g = new HO(), g), ve((!N.b && (N.b = new Nn(he, N, 4, 7)), N.b), _), ve((!N.c && (N.c = new Nn(he, N, 5, 8)), N.c), X), AA(N, At(_)), uy(N, a); + j = u(z7(t.f), 205); + try { + j.rf(tn, new ovn()), hIn(t.f, j); + } catch (Rn) { + throw Rn = It(Rn), D(Rn, 103) ? (k = Rn, M(k)) : M(Rn); + } + return Df(tn, B2) || Df(tn, F2) || otn(tn), l = $(R(z(tn, B2))), h = $(R(z(tn, F2))), f = l / h, i = $(R(z(tn, Qj))) * y.Math.sqrt((!tn.a && (tn.a = new q(Ye, tn, 10, 11)), tn.a).i), kn = u(z(tn, M1), 107), I = kn.b + kn.c + 1, S = kn.d + kn.a + 1, new V(y.Math.max(I, i), y.Math.max(S, i / f)); + }, we(co, "TopdownSizeApproximator/2", 988, dO, null, null); + var aoe; + b(344, 1, { 871: 1 }, op), o.Ug = function(e, t) { + return FKn(this, e, t); + }, o.Vg = function() { + u_n(this); + }, o.Wg = function() { + return this.q; + }, o.Xg = function() { + return this.f ? TN(this.f) : null; + }, o.Yg = function() { + return TN(this.a); + }, o.Zg = function() { + return this.p; + }, o.$g = function() { + return !1; + }, o._g = function() { + return this.n; + }, o.ah = function() { + return this.p != null && !this.b; + }, o.bh = function(e) { + var t; + this.n && (t = e, nn(this.f, t)); + }, o.dh = function(e, t) { + var i, r; + this.n && e && Cpe(this, (i = new GPn(), r = IF(i, e), cDe(i), r), (LT(), gU)); + }, o.eh = function(e) { + var t; + return this.b ? null : (t = fme(this, this.g), Fe(this.a, t), t.i = this, this.d = e, t); + }, o.fh = function(e) { + e > 0 && !this.b && CQ(this, e); + }, o.b = !1, o.c = 0, o.d = -1, o.e = null, o.f = null, o.g = -1, o.j = !1, o.k = !1, o.n = !1, o.o = 0, o.q = 0, o.r = 0, w(dc, "BasicProgressMonitor", 344), b(717, 205, jd, Wmn), o.rf = function(e, t) { + BUn(e, t); + }, w(dc, "BoxLayoutProvider", 717), b(983, 1, Ne, Lkn), o.Ne = function(e, t) { + return cTe(this, u(e, 27), u(t, 27)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, o.a = !1, w(dc, "BoxLayoutProvider/1", 983), b(163, 1, { 163: 1 }, hT, mAn), o.Ib = function() { + return this.c ? Een(this.c) : ca(this.b); + }, w(dc, "BoxLayoutProvider/Group", 163), b(320, 22, { 3: 1, 34: 1, 22: 1, 320: 1 }, EC); + var ydn, jdn, Edn, wU, Cdn = we(dc, "BoxLayoutProvider/PackingMode", 320, ke, f3e, Z0e), doe; + b(984, 1, Ne, Jmn), o.Ne = function(e, t) { + return Cge(u(e, 163), u(t, 163)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(dc, "BoxLayoutProvider/lambda$0$Type", 984), b(985, 1, Ne, Qmn), o.Ne = function(e, t) { + return gge(u(e, 163), u(t, 163)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(dc, "BoxLayoutProvider/lambda$1$Type", 985), b(986, 1, Ne, Ymn), o.Ne = function(e, t) { + return pge(u(e, 163), u(t, 163)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(dc, "BoxLayoutProvider/lambda$2$Type", 986), b(1384, 1, { 845: 1 }, Zmn), o.Mg = function(e, t) { + return nC(), !D(t, 167) || vEn((qp(), u(e, 167)), t); + }, w(dc, "ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type", 1384), b(1385, 1, re, Nkn), o.Cd = function(e) { + N6e(this.a, u(e, 149)); + }, w(dc, "ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type", 1385), b(1386, 1, re, tvn), o.Cd = function(e) { + u(e, 96), nC(); + }, w(dc, "ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type", 1386), b(1390, 1, re, $kn), o.Cd = function(e) { + tve(this.a, u(e, 96)); + }, w(dc, "ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type", 1390), b(1388, 1, De, fMn), o.Mb = function(e) { + return w6e(this.a, this.b, u(e, 149)); + }, w(dc, "ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type", 1388), b(1387, 1, De, hMn), o.Mb = function(e) { + return J1e(this.a, this.b, u(e, 845)); + }, w(dc, "ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type", 1387), b(1389, 1, re, lMn), o.Cd = function(e) { + fwe(this.a, this.b, u(e, 149)); + }, w(dc, "ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type", 1389), b(947, 1, {}, ivn), o.Kb = function(e) { + return uTn(e); + }, o.Fb = function(e) { + return this === e; + }, w(dc, "ElkUtil/lambda$0$Type", 947), b(948, 1, re, aMn), o.Cd = function(e) { + sCe(this.a, this.b, u(e, 74)); + }, o.a = 0, o.b = 0, w(dc, "ElkUtil/lambda$1$Type", 948), b(949, 1, re, dMn), o.Cd = function(e) { + Zfe(this.a, this.b, u(e, 166)); + }, o.a = 0, o.b = 0, w(dc, "ElkUtil/lambda$2$Type", 949), b(950, 1, re, bMn), o.Cd = function(e) { + Vle(this.a, this.b, u(e, 135)); + }, o.a = 0, o.b = 0, w(dc, "ElkUtil/lambda$3$Type", 950), b(951, 1, re, xkn), o.Cd = function(e) { + Ibe(this.a, u(e, 377)); + }, w(dc, "ElkUtil/lambda$4$Type", 951), b(325, 1, { 34: 1, 325: 1 }, Pfe), o.Fd = function(e) { + return E1e(this, u(e, 242)); + }, o.Fb = function(e) { + var t; + return D(e, 325) ? (t = u(e, 325), this.a == t.a) : !1; + }, o.Hb = function() { + return gi(this.a); + }, o.Ib = function() { + return this.a + " (exclusive)"; + }, o.a = 0, w(dc, "ExclusiveBounds/ExclusiveLowerBound", 325), b(1119, 205, jd, rvn), o.rf = function(e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I, O, N, _, X, tn, yn, kn; + for (t.Ug("Fixed Layout", 1), s = u(z(e, (He(), yan)), 223), g = 0, p = 0, O = new ne((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a)); O.e != O.i.gc(); ) { + for (S = u(ue(O), 27), kn = u(z(S, (NT(), j9)), 8), kn && (Ro(S, kn.a, kn.b), u(z(S, odn), 181).Hc((go(), Yw)) && (m = u(z(S, fdn), 8), m.a > 0 && m.b > 0 && z0(S, m.a, m.b, !0, !0))), g = y.Math.max(g, S.i + S.g), p = y.Math.max(p, S.j + S.f), a = new ne((!S.n && (S.n = new q(Sr, S, 1, 7)), S.n)); a.e != a.i.gc(); ) + h = u(ue(a), 135), kn = u(z(h, j9), 8), kn && Ro(h, kn.a, kn.b), g = y.Math.max(g, S.i + h.i + h.g), p = y.Math.max(p, S.j + h.j + h.f); + for (X = new ne((!S.c && (S.c = new q(Wu, S, 9, 9)), S.c)); X.e != X.i.gc(); ) + for (_ = u(ue(X), 123), kn = u(z(_, j9), 8), kn && Ro(_, kn.a, kn.b), tn = S.i + _.i, yn = S.j + _.j, g = y.Math.max(g, tn + _.g), p = y.Math.max(p, yn + _.f), l = new ne((!_.n && (_.n = new q(Sr, _, 1, 7)), _.n)); l.e != l.i.gc(); ) + h = u(ue(l), 135), kn = u(z(h, j9), 8), kn && Ro(h, kn.a, kn.b), g = y.Math.max(g, tn + h.i + h.g), p = y.Math.max(p, yn + h.j + h.f); + for (c = new ie(ce(Al(S).a.Kc(), new En())); pe(c); ) + i = u(fe(c), 74), d = YGn(i), g = y.Math.max(g, d.a), p = y.Math.max(p, d.b); + for (r = new ie(ce(cy(S).a.Kc(), new En())); pe(r); ) + i = u(fe(r), 74), At(Rh(i)) != e && (d = YGn(i), g = y.Math.max(g, d.a), p = y.Math.max(p, d.b)); + } + if (s == (El(), Bv)) + for (I = new ne((!e.a && (e.a = new q(Ye, e, 10, 11)), e.a)); I.e != I.i.gc(); ) + for (S = u(ue(I), 27), r = new ie(ce(Al(S).a.Kc(), new En())); pe(r); ) + i = u(fe(r), 74), f = hPe(i), f.b == 0 ? ht(i, yb, null) : ht(i, yb, f); + on(un(z(e, (NT(), sdn)))) || (N = u(z(e, Jue), 107), j = g + N.b + N.c, k = p + N.d + N.a, z0(e, j, k, !0, !0)), t.Vg(); + }, w(dc, "FixedLayoutProvider", 1119), b(385, 137, { 3: 1, 423: 1, 385: 1, 96: 1, 137: 1 }, _O, JNn), o.cg = function(e) { + var t, i, r, c, s, f, h, l, a; + if (e) + try { + for (l = gw(e, ";,;"), s = l, f = 0, h = s.length; f < h; ++f) { + if (c = s[f], i = gw(c, "\\:"), r = Zen(G4(), i[0]), !r) + throw M(new Gn("Invalid option id: " + i[0])); + if (a = Qen(r, i[1]), a == null) + throw M(new Gn("Invalid option value: " + i[1])); + a == null ? (!this.q && (this.q = new de()), Bp(this.q, r)) : (!this.q && (this.q = new de()), Xe(this.q, r, a)); + } + } catch (d) { + throw d = It(d), D(d, 103) ? (t = d, M(new NFn(t))) : M(d); + } + }, o.Ib = function() { + var e; + return e = Oe(Wr(_r((this.q ? this.q : (Dn(), Dn(), Vh)).vc().Oc(), new cvn()), Jb(new PSn(), new q0n(), new K0n(), new _0n(), A(T($r, 1), G, 108, 0, [])))), e; + }; + var boe = w(dc, "IndividualSpacings", 385); + b(982, 1, {}, cvn), o.Kb = function(e) { + return Mge(u(e, 44)); + }, w(dc, "IndividualSpacings/lambda$0$Type", 982), b(718, 1, {}, hPn), o.c = 0, w(dc, "InstancePool", 718), b(1835, 1, {}, uvn), w(dc, "LoggedGraph", 1835), b(415, 22, { 3: 1, 34: 1, 22: 1, 415: 1 }, CC); + var Mdn, gU, Tdn, Adn, woe = we(dc, "LoggedGraph/Type", 415, ke, h3e, nbe), goe; + b(1063, 1, { 871: 1 }, ovn), o.Ug = function(e, t) { + return !1; + }, o.Vg = function() { + }, o.Wg = function() { + return 0; + }, o.Xg = function() { + return null; + }, o.Yg = function() { + return null; + }, o.Zg = function() { + return null; + }, o.$g = function() { + return !1; + }, o._g = function() { + return !1; + }, o.ah = function() { + return !1; + }, o.bh = function(e) { + }, o.dh = function(e, t) { + }, o.eh = function(e) { + return this; + }, o.fh = function(e) { + }, w(dc, "NullElkProgressMonitor", 1063), b(42, 1, { 20: 1, 42: 1 }, wi), o.Jc = function(e) { + qi(this, e); + }, o.Fb = function(e) { + var t, i, r; + return D(e, 42) ? (i = u(e, 42), t = this.a == null ? i.a == null : rt(this.a, i.a), r = this.b == null ? i.b == null : rt(this.b, i.b), t && r) : !1; + }, o.Hb = function() { + var e, t, i, r, c, s; + return i = this.a == null ? 0 : mt(this.a), e = i & oi, t = i & -65536, s = this.b == null ? 0 : mt(this.b), r = s & oi, c = s & -65536, e ^ c >> 16 & oi | t ^ r << 16; + }, o.Kc = function() { + return new Fkn(this); + }, o.Ib = function() { + return this.a == null && this.b == null ? "pair(null,null)" : this.a == null ? "pair(null," + Jr(this.b) + ")" : this.b == null ? "pair(" + Jr(this.a) + ",null)" : "pair(" + Jr(this.a) + "," + Jr(this.b) + ")"; + }, w(dc, "Pair", 42), b(995, 1, Ii, Fkn), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return !this.c && (!this.b && this.a.a != null || this.a.b != null); + }, o.Pb = function() { + if (!this.c && !this.b && this.a.a != null) + return this.b = !0, this.a.a; + if (!this.c && this.a.b != null) + return this.c = !0, this.a.b; + throw M(new nc()); + }, o.Qb = function() { + throw this.c && this.a.b != null ? this.a.b = null : this.b && this.a.a != null && (this.a.a = null), M(new Eu()); + }, o.b = !1, o.c = !1, w(dc, "Pair/1", 995), b(455, 1, { 455: 1 }, TIn), o.Fb = function(e) { + return mc(this.a, u(e, 455).a) && mc(this.c, u(e, 455).c) && mc(this.d, u(e, 455).d) && mc(this.b, u(e, 455).b); + }, o.Hb = function() { + return Ik(A(T(yi, 1), Bn, 1, 5, [this.a, this.c, this.d, this.b])); + }, o.Ib = function() { + return "(" + this.a + cr + this.c + cr + this.d + cr + this.b + ")"; + }, w(dc, "Quadruple", 455), b(1108, 205, jd, evn), o.rf = function(e, t) { + var i, r, c, s, f; + if (t.Ug("Random Layout", 1), (!e.a && (e.a = new q(Ye, e, 10, 11)), e.a).i == 0) { + t.Vg(); + return; + } + s = u(z(e, (YY(), ooe)), 17), s && s.a != 0 ? c = new qM(s.a) : c = new dx(), i = J9(R(z(e, coe))), f = J9(R(z(e, soe))), r = u(z(e, uoe), 107), SDe(e, c, i, f, r), t.Vg(); + }, w(dc, "RandomLayoutProvider", 1108), b(240, 1, { 240: 1 }, _L), o.Fb = function(e) { + return mc(this.a, u(e, 240).a) && mc(this.b, u(e, 240).b) && mc(this.c, u(e, 240).c); + }, o.Hb = function() { + return Ik(A(T(yi, 1), Bn, 1, 5, [this.a, this.b, this.c])); + }, o.Ib = function() { + return "(" + this.a + cr + this.b + cr + this.c + ")"; + }, w(dc, "Triple", 240); + var poe; + b(562, 1, {}), o.Lf = function() { + return new V(this.f.i, this.f.j); + }, o.of = function(e) { + return nOn(e, (He(), uo)) ? z(this.f, moe) : z(this.f, e); + }, o.Mf = function() { + return new V(this.f.g, this.f.f); + }, o.Nf = function() { + return this.g; + }, o.pf = function(e) { + return Df(this.f, e); + }, o.Of = function(e) { + eu(this.f, e.a), tu(this.f, e.b); + }, o.Pf = function(e) { + O0(this.f, e.a), I0(this.f, e.b); + }, o.Qf = function(e) { + this.g = e; + }, o.g = 0; + var moe; + w(d8, "ElkGraphAdapters/AbstractElkGraphElementAdapter", 562), b(563, 1, { 853: 1 }, DE), o.Rf = function() { + var e, t; + if (!this.b) + for (this.b = RM(jM(this.a).i), t = new ne(jM(this.a)); t.e != t.i.gc(); ) + e = u(ue(t), 135), nn(this.b, new pD(e)); + return this.b; + }, o.b = null, w(d8, "ElkGraphAdapters/ElkEdgeAdapter", 563), b(289, 562, {}, Yd), o.Sf = function() { + return zRn(this); + }, o.a = null, w(d8, "ElkGraphAdapters/ElkGraphAdapter", 289), b(640, 562, { 187: 1 }, pD), w(d8, "ElkGraphAdapters/ElkLabelAdapter", 640), b(639, 562, { 695: 1 }, ML), o.Rf = function() { + return w7e(this); + }, o.Vf = function() { + var e; + return e = u(z(this.f, (He(), $v)), 140), !e && (e = new Qv()), e; + }, o.Xf = function() { + return g7e(this); + }, o.Zf = function(e) { + var t; + t = new qL(e), ht(this.f, (He(), $v), t); + }, o.$f = function(e) { + ht(this.f, (He(), M1), new HV(e)); + }, o.Tf = function() { + return this.d; + }, o.Uf = function() { + var e, t; + if (!this.a) + for (this.a = new Z(), t = new ie(ce(cy(u(this.f, 27)).a.Kc(), new En())); pe(t); ) + e = u(fe(t), 74), nn(this.a, new DE(e)); + return this.a; + }, o.Wf = function() { + var e, t; + if (!this.c) + for (this.c = new Z(), t = new ie(ce(Al(u(this.f, 27)).a.Kc(), new En())); pe(t); ) + e = u(fe(t), 74), nn(this.c, new DE(e)); + return this.c; + }, o.Yf = function() { + return AM(u(this.f, 27)).i != 0 || on(un(u(this.f, 27).of((He(), Xj)))); + }, o._f = function() { + V4e(this, (u0(), poe)); + }, o.a = null, o.b = null, o.c = null, o.d = null, o.e = null, w(d8, "ElkGraphAdapters/ElkNodeAdapter", 639), b(1284, 562, { 852: 1 }, Bkn), o.Rf = function() { + return C7e(this); + }, o.Uf = function() { + var e, t; + if (!this.a) + for (this.a = Oh(u(this.f, 123).hh().i), t = new ne(u(this.f, 123).hh()); t.e != t.i.gc(); ) + e = u(ue(t), 74), nn(this.a, new DE(e)); + return this.a; + }, o.Wf = function() { + var e, t; + if (!this.c) + for (this.c = Oh(u(this.f, 123).ih().i), t = new ne(u(this.f, 123).ih()); t.e != t.i.gc(); ) + e = u(ue(t), 74), nn(this.c, new DE(e)); + return this.c; + }, o.ag = function() { + return u(u(this.f, 123).of((He(), H2)), 64); + }, o.bg = function() { + var e, t, i, r, c, s, f, h; + for (r = Af(u(this.f, 123)), i = new ne(u(this.f, 123).ih()); i.e != i.i.gc(); ) + for (e = u(ue(i), 74), h = new ne((!e.c && (e.c = new Nn(he, e, 5, 8)), e.c)); h.e != h.i.gc(); ) { + if (f = u(ue(h), 84), Zb(Gr(f), r)) + return !0; + if (Gr(f) == r && on(un(z(e, (He(), eU))))) + return !0; + } + for (t = new ne(u(this.f, 123).hh()); t.e != t.i.gc(); ) + for (e = u(ue(t), 74), s = new ne((!e.b && (e.b = new Nn(he, e, 4, 7)), e.b)); s.e != s.i.gc(); ) + if (c = u(ue(s), 84), Zb(Gr(c), r)) + return !0; + return !1; + }, o.a = null, o.b = null, o.c = null, w(d8, "ElkGraphAdapters/ElkPortAdapter", 1284), b(1285, 1, Ne, nvn), o.Ne = function(e, t) { + return tSe(u(e, 123), u(t, 123)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(d8, "ElkGraphAdapters/PortComparator", 1285); + var Oa = Nt(ts, "EObject"), _v = Nt(o2, iWn), xo = Nt(o2, rWn), oE = Nt(o2, cWn), sE = Nt(o2, "ElkShape"), he = Nt(o2, uWn), Wt = Nt(o2, jcn), Mt = Nt(o2, oWn), fE = Nt(ts, sWn), I9 = Nt(ts, "EFactory"), voe, pU = Nt(ts, fWn), Ef = Nt(ts, "EPackage"), Ai, koe, yoe, Sdn, bO, joe, Pdn, Idn, Odn, tl, Eoe, Coe, Sr = Nt(o2, Ecn), Ye = Nt(o2, Ccn), Wu = Nt(o2, Mcn); + b(93, 1, hWn), o.th = function() { + return this.uh(), null; + }, o.uh = function() { + return null; + }, o.vh = function() { + return this.uh(), !1; + }, o.wh = function() { + return !1; + }, o.xh = function(e) { + it(this, e); + }, w(g3, "BasicNotifierImpl", 93), b(99, 93, bWn), o.Yh = function() { + return fo(this); + }, o.yh = function(e, t) { + return e; + }, o.zh = function() { + throw M(new Pe()); + }, o.Ah = function(e) { + var t; + return t = br(u($n(this.Dh(), this.Fh()), 19)), this.Ph().Th(this, t.n, t.f, e); + }, o.Bh = function(e, t) { + throw M(new Pe()); + }, o.Ch = function(e, t, i) { + return So(this, e, t, i); + }, o.Dh = function() { + var e; + return this.zh() && (e = this.zh().Nk(), e) ? e : this.ii(); + }, o.Eh = function() { + return dF(this); + }, o.Fh = function() { + throw M(new Pe()); + }, o.Gh = function() { + var e, t; + return t = this.$h().Ok(), !t && this.zh().Tk(t = (l6(), e = eJ(dh(this.Dh())), e == null ? MU : new C7(this, e))), t; + }, o.Hh = function(e, t) { + return e; + }, o.Ih = function(e) { + var t; + return t = e.pk(), t ? e.Lj() : Ot(this.Dh(), e); + }, o.Jh = function() { + var e; + return e = this.zh(), e ? e.Qk() : null; + }, o.Kh = function() { + return this.zh() ? this.zh().Nk() : null; + }, o.Lh = function(e, t, i) { + return tA(this, e, t, i); + }, o.Mh = function(e) { + return $4(this, e); + }, o.Nh = function(e, t) { + return YN(this, e, t); + }, o.Oh = function() { + var e; + return e = this.zh(), !!e && e.Rk(); + }, o.Ph = function() { + throw M(new Pe()); + }, o.Qh = function() { + return WT(this); + }, o.Rh = function(e, t, i, r) { + return Wp(this, e, t, r); + }, o.Sh = function(e, t, i) { + var r; + return r = u($n(this.Dh(), t), 69), r.wk().zk(this, this.hi(), t - this.ji(), e, i); + }, o.Th = function(e, t, i, r) { + return OM(this, e, t, r); + }, o.Uh = function(e, t, i) { + var r; + return r = u($n(this.Dh(), t), 69), r.wk().Ak(this, this.hi(), t - this.ji(), e, i); + }, o.Vh = function() { + return !!this.zh() && !!this.zh().Pk(); + }, o.Wh = function(e) { + return Cx(this, e); + }, o.Xh = function(e) { + return bOn(this, e); + }, o.Zh = function(e) { + return xGn(this, e); + }, o.$h = function() { + throw M(new Pe()); + }, o._h = function() { + return this.zh() ? this.zh().Pk() : null; + }, o.ai = function() { + return WT(this); + }, o.bi = function(e, t) { + sF(this, e, t); + }, o.ci = function(e) { + this.$h().Sk(e); + }, o.di = function(e) { + this.$h().Vk(e); + }, o.ei = function(e) { + this.$h().Uk(e); + }, o.fi = function(e, t) { + var i, r, c, s; + return s = this.Jh(), s && e && (t = rr(s.El(), this, t), s.Il(this)), r = this.Ph(), r && (AF(this, this.Ph(), this.Fh()).Bb & fr ? (c = r.Qh(), c && (e ? !s && c.Il(this) : c.Hl(this))) : (t = (i = this.Fh(), i >= 0 ? this.Ah(t) : this.Ph().Th(this, -1 - i, null, t)), t = this.Ch(null, -1, t))), this.di(e), t; + }, o.gi = function(e) { + var t, i, r, c, s, f, h, l; + if (i = this.Dh(), s = Ot(i, e), t = this.ji(), s >= t) + return u(e, 69).wk().Dk(this, this.hi(), s - t); + if (s <= -1) + if (f = Qg((Ou(), zi), i, e), f) { + if (dr(), u(f, 69).xk() || (f = $p(Dr(zi, f))), c = (r = this.Ih(f), u(r >= 0 ? this.Lh(r, !0, !0) : q0(this, f, !0), 160)), l = f.Ik(), l > 1 || l == -1) + return u(u(c, 220).Sl(e, !1), 79); + } else + throw M(new Gn(ba + e.xe() + sK)); + else if (e.Jk()) + return r = this.Ih(e), u(r >= 0 ? this.Lh(r, !1, !0) : q0(this, e, !1), 79); + return h = new DMn(this, e), h; + }, o.hi = function() { + return uQ(this); + }, o.ii = function() { + return (G1(), Hn).S; + }, o.ji = function() { + return se(this.ii()); + }, o.ki = function(e) { + cF(this, e); + }, o.Ib = function() { + return Hs(this); + }, w(qn, "BasicEObjectImpl", 99); + var Moe; + b(119, 99, { 110: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1 }), o.li = function(e) { + var t; + return t = cQ(this), t[e]; + }, o.mi = function(e, t) { + var i; + i = cQ(this), $t(i, e, t); + }, o.ni = function(e) { + var t; + t = cQ(this), $t(t, e, null); + }, o.th = function() { + return u(Un(this, 4), 129); + }, o.uh = function() { + throw M(new Pe()); + }, o.vh = function() { + return (this.Db & 4) != 0; + }, o.zh = function() { + throw M(new Pe()); + }, o.oi = function(e) { + Xp(this, 2, e); + }, o.Bh = function(e, t) { + this.Db = t << 16 | this.Db & 255, this.oi(e); + }, o.Dh = function() { + return lu(this); + }, o.Fh = function() { + return this.Db >> 16; + }, o.Gh = function() { + var e, t; + return l6(), t = eJ(dh((e = u(Un(this, 16), 29), e || this.ii()))), t == null ? MU : new C7(this, t); + }, o.wh = function() { + return (this.Db & 1) == 0; + }, o.Jh = function() { + return u(Un(this, 128), 2034); + }, o.Kh = function() { + return u(Un(this, 16), 29); + }, o.Oh = function() { + return (this.Db & 32) != 0; + }, o.Ph = function() { + return u(Un(this, 2), 54); + }, o.Vh = function() { + return (this.Db & 64) != 0; + }, o.$h = function() { + throw M(new Pe()); + }, o._h = function() { + return u(Un(this, 64), 288); + }, o.ci = function(e) { + Xp(this, 16, e); + }, o.di = function(e) { + Xp(this, 128, e); + }, o.ei = function(e) { + Xp(this, 64, e); + }, o.hi = function() { + return iu(this); + }, o.Db = 0, w(qn, "MinimalEObjectImpl", 119), b(120, 119, { 110: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }), o.oi = function(e) { + this.Cb = e; + }, o.Ph = function() { + return this.Cb; + }, w(qn, "MinimalEObjectImpl/Container", 120), b(2083, 120, { 110: 1, 342: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }), o.Lh = function(e, t, i) { + return yZ(this, e, t, i); + }, o.Uh = function(e, t, i) { + return hnn(this, e, t, i); + }, o.Wh = function(e) { + return wJ(this, e); + }, o.bi = function(e, t) { + uY(this, e, t); + }, o.ii = function() { + return Mc(), Coe; + }, o.ki = function(e) { + WQ(this, e); + }, o.nf = function() { + return aRn(this); + }, o.gh = function() { + return !this.o && (this.o = new Pu((Mc(), tl), A1, this, 0)), this.o; + }, o.of = function(e) { + return z(this, e); + }, o.pf = function(e) { + return Df(this, e); + }, o.qf = function(e, t) { + return ht(this, e, t); + }, w(Td, "EMapPropertyHolderImpl", 2083), b(572, 120, { 110: 1, 377: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }, yE), o.Lh = function(e, t, i) { + switch (e) { + case 0: + return this.a; + case 1: + return this.b; + } + return tA(this, e, t, i); + }, o.Wh = function(e) { + switch (e) { + case 0: + return this.a != 0; + case 1: + return this.b != 0; + } + return Cx(this, e); + }, o.bi = function(e, t) { + switch (e) { + case 0: + aT(this, $(R(t))); + return; + case 1: + lT(this, $(R(t))); + return; + } + sF(this, e, t); + }, o.ii = function() { + return Mc(), koe; + }, o.ki = function(e) { + switch (e) { + case 0: + aT(this, 0); + return; + case 1: + lT(this, 0); + return; + } + cF(this, e); + }, o.Ib = function() { + var e; + return this.Db & 64 ? Hs(this) : (e = new ls(Hs(this)), e.a += " (x: ", hg(e, this.a), e.a += ", y: ", hg(e, this.b), e.a += ")", e.a); + }, o.a = 0, o.b = 0, w(Td, "ElkBendPointImpl", 572), b(739, 2083, { 110: 1, 342: 1, 167: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }), o.Lh = function(e, t, i) { + return PY(this, e, t, i); + }, o.Sh = function(e, t, i) { + return Yx(this, e, t, i); + }, o.Uh = function(e, t, i) { + return $$(this, e, t, i); + }, o.Wh = function(e) { + return qQ(this, e); + }, o.bi = function(e, t) { + KZ(this, e, t); + }, o.ii = function() { + return Mc(), joe; + }, o.ki = function(e) { + kY(this, e); + }, o.jh = function() { + return this.k; + }, o.kh = function() { + return jM(this); + }, o.Ib = function() { + return ox(this); + }, o.k = null, w(Td, "ElkGraphElementImpl", 739), b(740, 739, { 110: 1, 342: 1, 167: 1, 422: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }), o.Lh = function(e, t, i) { + return FY(this, e, t, i); + }, o.Wh = function(e) { + return qY(this, e); + }, o.bi = function(e, t) { + _Z(this, e, t); + }, o.ii = function() { + return Mc(), Eoe; + }, o.ki = function(e) { + JY(this, e); + }, o.lh = function() { + return this.f; + }, o.mh = function() { + return this.g; + }, o.nh = function() { + return this.i; + }, o.oh = function() { + return this.j; + }, o.ph = function(e, t) { + kg(this, e, t); + }, o.qh = function(e, t) { + Ro(this, e, t); + }, o.rh = function(e) { + eu(this, e); + }, o.sh = function(e) { + tu(this, e); + }, o.Ib = function() { + return iF(this); + }, o.f = 0, o.g = 0, o.i = 0, o.j = 0, w(Td, "ElkShapeImpl", 740), b(741, 740, { 110: 1, 342: 1, 84: 1, 167: 1, 422: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }), o.Lh = function(e, t, i) { + return bZ(this, e, t, i); + }, o.Sh = function(e, t, i) { + return NZ(this, e, t, i); + }, o.Uh = function(e, t, i) { + return $Z(this, e, t, i); + }, o.Wh = function(e) { + return cY(this, e); + }, o.bi = function(e, t) { + Vnn(this, e, t); + }, o.ii = function() { + return Mc(), yoe; + }, o.ki = function(e) { + fZ(this, e); + }, o.hh = function() { + return !this.d && (this.d = new Nn(Wt, this, 8, 5)), this.d; + }, o.ih = function() { + return !this.e && (this.e = new Nn(Wt, this, 7, 4)), this.e; + }, w(Td, "ElkConnectableShapeImpl", 741), b(326, 739, { 110: 1, 342: 1, 74: 1, 167: 1, 326: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }, HO), o.Ah = function(e) { + return IZ(this, e); + }, o.Lh = function(e, t, i) { + switch (e) { + case 3: + return V7(this); + case 4: + return !this.b && (this.b = new Nn(he, this, 4, 7)), this.b; + case 5: + return !this.c && (this.c = new Nn(he, this, 5, 8)), this.c; + case 6: + return !this.a && (this.a = new q(Mt, this, 6, 6)), this.a; + case 7: + return _n(), !this.b && (this.b = new Nn(he, this, 4, 7)), !(this.b.i <= 1 && (!this.c && (this.c = new Nn(he, this, 5, 8)), this.c.i <= 1)); + case 8: + return _n(), !!N5(this); + case 9: + return _n(), !!H0(this); + case 10: + return _n(), !this.b && (this.b = new Nn(he, this, 4, 7)), this.b.i != 0 && (!this.c && (this.c = new Nn(he, this, 5, 8)), this.c.i != 0); + } + return PY(this, e, t, i); + }, o.Sh = function(e, t, i) { + var r; + switch (t) { + case 3: + return this.Cb && (i = (r = this.Db >> 16, r >= 0 ? IZ(this, i) : this.Cb.Th(this, -1 - r, null, i))), lV(this, u(e, 27), i); + case 4: + return !this.b && (this.b = new Nn(he, this, 4, 7)), Vc(this.b, e, i); + case 5: + return !this.c && (this.c = new Nn(he, this, 5, 8)), Vc(this.c, e, i); + case 6: + return !this.a && (this.a = new q(Mt, this, 6, 6)), Vc(this.a, e, i); + } + return Yx(this, e, t, i); + }, o.Uh = function(e, t, i) { + switch (t) { + case 3: + return lV(this, null, i); + case 4: + return !this.b && (this.b = new Nn(he, this, 4, 7)), rr(this.b, e, i); + case 5: + return !this.c && (this.c = new Nn(he, this, 5, 8)), rr(this.c, e, i); + case 6: + return !this.a && (this.a = new q(Mt, this, 6, 6)), rr(this.a, e, i); + } + return $$(this, e, t, i); + }, o.Wh = function(e) { + switch (e) { + case 3: + return !!V7(this); + case 4: + return !!this.b && this.b.i != 0; + case 5: + return !!this.c && this.c.i != 0; + case 6: + return !!this.a && this.a.i != 0; + case 7: + return !this.b && (this.b = new Nn(he, this, 4, 7)), !(this.b.i <= 1 && (!this.c && (this.c = new Nn(he, this, 5, 8)), this.c.i <= 1)); + case 8: + return N5(this); + case 9: + return H0(this); + case 10: + return !this.b && (this.b = new Nn(he, this, 4, 7)), this.b.i != 0 && (!this.c && (this.c = new Nn(he, this, 5, 8)), this.c.i != 0); + } + return qQ(this, e); + }, o.bi = function(e, t) { + switch (e) { + case 3: + AA(this, u(t, 27)); + return; + case 4: + !this.b && (this.b = new Nn(he, this, 4, 7)), me(this.b), !this.b && (this.b = new Nn(he, this, 4, 7)), Kt(this.b, u(t, 16)); + return; + case 5: + !this.c && (this.c = new Nn(he, this, 5, 8)), me(this.c), !this.c && (this.c = new Nn(he, this, 5, 8)), Kt(this.c, u(t, 16)); + return; + case 6: + !this.a && (this.a = new q(Mt, this, 6, 6)), me(this.a), !this.a && (this.a = new q(Mt, this, 6, 6)), Kt(this.a, u(t, 16)); + return; + } + KZ(this, e, t); + }, o.ii = function() { + return Mc(), Sdn; + }, o.ki = function(e) { + switch (e) { + case 3: + AA(this, null); + return; + case 4: + !this.b && (this.b = new Nn(he, this, 4, 7)), me(this.b); + return; + case 5: + !this.c && (this.c = new Nn(he, this, 5, 8)), me(this.c); + return; + case 6: + !this.a && (this.a = new q(Mt, this, 6, 6)), me(this.a); + return; + } + kY(this, e); + }, o.Ib = function() { + return nGn(this); + }, w(Td, "ElkEdgeImpl", 326), b(452, 2083, { 110: 1, 342: 1, 166: 1, 452: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }, jE), o.Ah = function(e) { + return TZ(this, e); + }, o.Lh = function(e, t, i) { + switch (e) { + case 1: + return this.j; + case 2: + return this.k; + case 3: + return this.b; + case 4: + return this.c; + case 5: + return !this.a && (this.a = new ii(xo, this, 5)), this.a; + case 6: + return hOn(this); + case 7: + return t ? Px(this) : this.i; + case 8: + return t ? Sx(this) : this.f; + case 9: + return !this.g && (this.g = new Nn(Mt, this, 9, 10)), this.g; + case 10: + return !this.e && (this.e = new Nn(Mt, this, 10, 9)), this.e; + case 11: + return this.d; + } + return yZ(this, e, t, i); + }, o.Sh = function(e, t, i) { + var r, c, s; + switch (t) { + case 6: + return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? TZ(this, i) : this.Cb.Th(this, -1 - c, null, i))), hV(this, u(e, 74), i); + case 9: + return !this.g && (this.g = new Nn(Mt, this, 9, 10)), Vc(this.g, e, i); + case 10: + return !this.e && (this.e = new Nn(Mt, this, 10, 9)), Vc(this.e, e, i); + } + return s = u($n((r = u(Un(this, 16), 29), r || (Mc(), bO)), t), 69), s.wk().zk(this, iu(this), t - se((Mc(), bO)), e, i); + }, o.Uh = function(e, t, i) { + switch (t) { + case 5: + return !this.a && (this.a = new ii(xo, this, 5)), rr(this.a, e, i); + case 6: + return hV(this, null, i); + case 9: + return !this.g && (this.g = new Nn(Mt, this, 9, 10)), rr(this.g, e, i); + case 10: + return !this.e && (this.e = new Nn(Mt, this, 10, 9)), rr(this.e, e, i); + } + return hnn(this, e, t, i); + }, o.Wh = function(e) { + switch (e) { + case 1: + return this.j != 0; + case 2: + return this.k != 0; + case 3: + return this.b != 0; + case 4: + return this.c != 0; + case 5: + return !!this.a && this.a.i != 0; + case 6: + return !!hOn(this); + case 7: + return !!this.i; + case 8: + return !!this.f; + case 9: + return !!this.g && this.g.i != 0; + case 10: + return !!this.e && this.e.i != 0; + case 11: + return this.d != null; + } + return wJ(this, e); + }, o.bi = function(e, t) { + switch (e) { + case 1: + _4(this, $(R(t))); + return; + case 2: + q4(this, $(R(t))); + return; + case 3: + K4(this, $(R(t))); + return; + case 4: + H4(this, $(R(t))); + return; + case 5: + !this.a && (this.a = new ii(xo, this, 5)), me(this.a), !this.a && (this.a = new ii(xo, this, 5)), Kt(this.a, u(t, 16)); + return; + case 6: + ZHn(this, u(t, 74)); + return; + case 7: + vT(this, u(t, 84)); + return; + case 8: + mT(this, u(t, 84)); + return; + case 9: + !this.g && (this.g = new Nn(Mt, this, 9, 10)), me(this.g), !this.g && (this.g = new Nn(Mt, this, 9, 10)), Kt(this.g, u(t, 16)); + return; + case 10: + !this.e && (this.e = new Nn(Mt, this, 10, 9)), me(this.e), !this.e && (this.e = new Nn(Mt, this, 10, 9)), Kt(this.e, u(t, 16)); + return; + case 11: + OQ(this, Oe(t)); + return; + } + uY(this, e, t); + }, o.ii = function() { + return Mc(), bO; + }, o.ki = function(e) { + switch (e) { + case 1: + _4(this, 0); + return; + case 2: + q4(this, 0); + return; + case 3: + K4(this, 0); + return; + case 4: + H4(this, 0); + return; + case 5: + !this.a && (this.a = new ii(xo, this, 5)), me(this.a); + return; + case 6: + ZHn(this, null); + return; + case 7: + vT(this, null); + return; + case 8: + mT(this, null); + return; + case 9: + !this.g && (this.g = new Nn(Mt, this, 9, 10)), me(this.g); + return; + case 10: + !this.e && (this.e = new Nn(Mt, this, 10, 9)), me(this.e); + return; + case 11: + OQ(this, null); + return; + } + WQ(this, e); + }, o.Ib = function() { + return dHn(this); + }, o.b = 0, o.c = 0, o.d = null, o.j = 0, o.k = 0, w(Td, "ElkEdgeSectionImpl", 452), b(158, 120, { 110: 1, 94: 1, 93: 1, 155: 1, 58: 1, 114: 1, 54: 1, 99: 1, 158: 1, 119: 1, 120: 1 }), o.Lh = function(e, t, i) { + var r; + return e == 0 ? (!this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab) : zo(this, e - se(this.ii()), $n((r = u(Un(this, 16), 29), r || this.ii()), e), t, i); + }, o.Sh = function(e, t, i) { + var r, c; + return t == 0 ? (!this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Vc(this.Ab, e, i)) : (c = u($n((r = u(Un(this, 16), 29), r || this.ii()), t), 69), c.wk().zk(this, iu(this), t - se(this.ii()), e, i)); + }, o.Uh = function(e, t, i) { + var r, c; + return t == 0 ? (!this.Ab && (this.Ab = new q(Ue, this, 0, 3)), rr(this.Ab, e, i)) : (c = u($n((r = u(Un(this, 16), 29), r || this.ii()), t), 69), c.wk().Ak(this, iu(this), t - se(this.ii()), e, i)); + }, o.Wh = function(e) { + var t; + return e == 0 ? !!this.Ab && this.Ab.i != 0 : Uo(this, e - se(this.ii()), $n((t = u(Un(this, 16), 29), t || this.ii()), e)); + }, o.Zh = function(e) { + return ctn(this, e); + }, o.bi = function(e, t) { + var i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + } + Jo(this, e - se(this.ii()), $n((i = u(Un(this, 16), 29), i || this.ii()), e), t); + }, o.di = function(e) { + Xp(this, 128, e); + }, o.ii = function() { + return On(), qoe; + }, o.ki = function(e) { + var t; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + } + Wo(this, e - se(this.ii()), $n((t = u(Un(this, 16), 29), t || this.ii()), e)); + }, o.pi = function() { + this.Bb |= 1; + }, o.qi = function(e) { + return _5(this, e); + }, o.Bb = 0, w(qn, "EModelElementImpl", 158), b(720, 158, { 110: 1, 94: 1, 93: 1, 480: 1, 155: 1, 58: 1, 114: 1, 54: 1, 99: 1, 158: 1, 119: 1, 120: 1 }, oG), o.ri = function(e, t) { + return PGn(this, e, t); + }, o.si = function(e) { + var t, i, r, c, s; + if (this.a != jo(e) || e.Bb & 256) + throw M(new Gn(hK + e.zb + eb)); + for (r = Hr(e); Pc(r.a).i != 0; ) { + if (i = u(py(r, 0, (t = u(L(Pc(r.a), 0), 89), s = t.c, D(s, 90) ? u(s, 29) : (On(), Is))), 29), _0(i)) + return c = jo(i).wi().si(i), u(c, 54).ci(e), c; + r = Hr(i); + } + return (e.D != null ? e.D : e.B) == "java.util.Map$Entry" ? new zSn(e) : new ZV(e); + }, o.ti = function(e, t) { + return X0(this, e, t); + }, o.Lh = function(e, t, i) { + var r; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.a; + } + return zo(this, e - se((On(), $a)), $n((r = u(Un(this, 16), 29), r || $a), e), t, i); + }, o.Sh = function(e, t, i) { + var r, c; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Vc(this.Ab, e, i); + case 1: + return this.a && (i = u(this.a, 54).Th(this, 4, Ef, i)), vY(this, u(e, 241), i); + } + return c = u($n((r = u(Un(this, 16), 29), r || (On(), $a)), t), 69), c.wk().zk(this, iu(this), t - se((On(), $a)), e, i); + }, o.Uh = function(e, t, i) { + var r, c; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), rr(this.Ab, e, i); + case 1: + return vY(this, null, i); + } + return c = u($n((r = u(Un(this, 16), 29), r || (On(), $a)), t), 69), c.wk().Ak(this, iu(this), t - se((On(), $a)), e, i); + }, o.Wh = function(e) { + var t; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return !!this.a; + } + return Uo(this, e - se((On(), $a)), $n((t = u(Un(this, 16), 29), t || $a), e)); + }, o.bi = function(e, t) { + var i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + JKn(this, u(t, 241)); + return; + } + Jo(this, e - se((On(), $a)), $n((i = u(Un(this, 16), 29), i || $a), e), t); + }, o.ii = function() { + return On(), $a; + }, o.ki = function(e) { + var t; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + JKn(this, null); + return; + } + Wo(this, e - se((On(), $a)), $n((t = u(Un(this, 16), 29), t || $a), e)); + }; + var O9, Ddn, Toe; + w(qn, "EFactoryImpl", 720), b(1037, 720, { 110: 1, 2113: 1, 94: 1, 93: 1, 480: 1, 155: 1, 58: 1, 114: 1, 54: 1, 99: 1, 158: 1, 119: 1, 120: 1 }, fvn), o.ri = function(e, t) { + switch (e.hk()) { + case 12: + return u(t, 149).Pg(); + case 13: + return Jr(t); + default: + throw M(new Gn(nv + e.xe() + eb)); + } + }, o.si = function(e) { + var t, i, r, c, s, f, h, l; + switch (e.G == -1 && (e.G = (t = jo(e), t ? h1(t.vi(), e) : -1)), e.G) { + case 4: + return s = new eG(), s; + case 6: + return f = new Yv(), f; + case 7: + return h = new ez(), h; + case 8: + return r = new HO(), r; + case 9: + return i = new yE(), i; + case 10: + return c = new jE(), c; + case 11: + return l = new hvn(), l; + default: + throw M(new Gn(hK + e.zb + eb)); + } + }, o.ti = function(e, t) { + switch (e.hk()) { + case 13: + case 12: + return null; + default: + throw M(new Gn(nv + e.xe() + eb)); + } + }, w(Td, "ElkGraphFactoryImpl", 1037), b(448, 158, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 114: 1, 54: 1, 99: 1, 158: 1, 119: 1, 120: 1 }), o.Gh = function() { + var e, t; + return t = (e = u(Un(this, 16), 29), eJ(dh(e || this.ii()))), t == null ? (l6(), l6(), MU) : new wAn(this, t); + }, o.Lh = function(e, t, i) { + var r; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.xe(); + } + return zo(this, e - se(this.ii()), $n((r = u(Un(this, 16), 29), r || this.ii()), e), t, i); + }, o.Wh = function(e) { + var t; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + } + return Uo(this, e - se(this.ii()), $n((t = u(Un(this, 16), 29), t || this.ii()), e)); + }, o.bi = function(e, t) { + var i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + this.ui(Oe(t)); + return; + } + Jo(this, e - se(this.ii()), $n((i = u(Un(this, 16), 29), i || this.ii()), e), t); + }, o.ii = function() { + return On(), Uoe; + }, o.ki = function(e) { + var t; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + this.ui(null); + return; + } + Wo(this, e - se(this.ii()), $n((t = u(Un(this, 16), 29), t || this.ii()), e)); + }, o.xe = function() { + return this.zb; + }, o.ui = function(e) { + Xc(this, e); + }, o.Ib = function() { + return p5(this); + }, o.zb = null, w(qn, "ENamedElementImpl", 448), b(184, 448, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 241: 1, 114: 1, 54: 1, 99: 1, 158: 1, 184: 1, 119: 1, 120: 1, 690: 1 }, HIn), o.Ah = function(e) { + return oKn(this, e); + }, o.Lh = function(e, t, i) { + var r; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return this.yb; + case 3: + return this.xb; + case 4: + return this.sb; + case 5: + return !this.rb && (this.rb = new qb(this, Cf, this)), this.rb; + case 6: + return !this.vb && (this.vb = new jp(Ef, this, 6, 7)), this.vb; + case 7: + return t ? this.Db >> 16 == 7 ? u(this.Cb, 241) : null : pOn(this); + } + return zo(this, e - se((On(), O1)), $n((r = u(Un(this, 16), 29), r || O1), e), t, i); + }, o.Sh = function(e, t, i) { + var r, c, s; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Vc(this.Ab, e, i); + case 4: + return this.sb && (i = u(this.sb, 54).Th(this, 1, I9, i)), jY(this, u(e, 480), i); + case 5: + return !this.rb && (this.rb = new qb(this, Cf, this)), Vc(this.rb, e, i); + case 6: + return !this.vb && (this.vb = new jp(Ef, this, 6, 7)), Vc(this.vb, e, i); + case 7: + return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? oKn(this, i) : this.Cb.Th(this, -1 - c, null, i))), So(this, e, 7, i); + } + return s = u($n((r = u(Un(this, 16), 29), r || (On(), O1)), t), 69), s.wk().zk(this, iu(this), t - se((On(), O1)), e, i); + }, o.Uh = function(e, t, i) { + var r, c; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), rr(this.Ab, e, i); + case 4: + return jY(this, null, i); + case 5: + return !this.rb && (this.rb = new qb(this, Cf, this)), rr(this.rb, e, i); + case 6: + return !this.vb && (this.vb = new jp(Ef, this, 6, 7)), rr(this.vb, e, i); + case 7: + return So(this, null, 7, i); + } + return c = u($n((r = u(Un(this, 16), 29), r || (On(), O1)), t), 69), c.wk().Ak(this, iu(this), t - se((On(), O1)), e, i); + }, o.Wh = function(e) { + var t; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return this.yb != null; + case 3: + return this.xb != null; + case 4: + return !!this.sb; + case 5: + return !!this.rb && this.rb.i != 0; + case 6: + return !!this.vb && this.vb.i != 0; + case 7: + return !!pOn(this); + } + return Uo(this, e - se((On(), O1)), $n((t = u(Un(this, 16), 29), t || O1), e)); + }, o.Zh = function(e) { + var t; + return t = pTe(this, e), t || ctn(this, e); + }, o.bi = function(e, t) { + var i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + Xc(this, Oe(t)); + return; + case 2: + MT(this, Oe(t)); + return; + case 3: + CT(this, Oe(t)); + return; + case 4: + tF(this, u(t, 480)); + return; + case 5: + !this.rb && (this.rb = new qb(this, Cf, this)), me(this.rb), !this.rb && (this.rb = new qb(this, Cf, this)), Kt(this.rb, u(t, 16)); + return; + case 6: + !this.vb && (this.vb = new jp(Ef, this, 6, 7)), me(this.vb), !this.vb && (this.vb = new jp(Ef, this, 6, 7)), Kt(this.vb, u(t, 16)); + return; + } + Jo(this, e - se((On(), O1)), $n((i = u(Un(this, 16), 29), i || O1), e), t); + }, o.ei = function(e) { + var t, i; + if (e && this.rb) + for (i = new ne(this.rb); i.e != i.i.gc(); ) + t = ue(i), D(t, 364) && (u(t, 364).w = null); + Xp(this, 64, e); + }, o.ii = function() { + return On(), O1; + }, o.ki = function(e) { + var t; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + Xc(this, null); + return; + case 2: + MT(this, null); + return; + case 3: + CT(this, null); + return; + case 4: + tF(this, null); + return; + case 5: + !this.rb && (this.rb = new qb(this, Cf, this)), me(this.rb); + return; + case 6: + !this.vb && (this.vb = new jp(Ef, this, 6, 7)), me(this.vb); + return; + } + Wo(this, e - se((On(), O1)), $n((t = u(Un(this, 16), 29), t || O1), e)); + }, o.pi = function() { + Hx(this); + }, o.vi = function() { + return !this.rb && (this.rb = new qb(this, Cf, this)), this.rb; + }, o.wi = function() { + return this.sb; + }, o.xi = function() { + return this.ub; + }, o.yi = function() { + return this.xb; + }, o.zi = function() { + return this.yb; + }, o.Ai = function(e) { + this.ub = e; + }, o.Ib = function() { + var e; + return this.Db & 64 ? p5(this) : (e = new ls(p5(this)), e.a += " (nsURI: ", Cr(e, this.yb), e.a += ", nsPrefix: ", Cr(e, this.xb), e.a += ")", e.a); + }, o.xb = null, o.yb = null, w(qn, "EPackageImpl", 184), b(569, 184, { 110: 1, 2115: 1, 569: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 241: 1, 114: 1, 54: 1, 99: 1, 158: 1, 184: 1, 119: 1, 120: 1, 690: 1 }, jHn), o.q = !1, o.r = !1; + var Aoe = !1; + w(Td, "ElkGraphPackageImpl", 569), b(366, 740, { 110: 1, 342: 1, 167: 1, 135: 1, 422: 1, 366: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }, eG), o.Ah = function(e) { + return AZ(this, e); + }, o.Lh = function(e, t, i) { + switch (e) { + case 7: + return mOn(this); + case 8: + return this.a; + } + return FY(this, e, t, i); + }, o.Sh = function(e, t, i) { + var r; + switch (t) { + case 7: + return this.Cb && (i = (r = this.Db >> 16, r >= 0 ? AZ(this, i) : this.Cb.Th(this, -1 - r, null, i))), bW(this, u(e, 167), i); + } + return Yx(this, e, t, i); + }, o.Uh = function(e, t, i) { + return t == 7 ? bW(this, null, i) : $$(this, e, t, i); + }, o.Wh = function(e) { + switch (e) { + case 7: + return !!mOn(this); + case 8: + return !An("", this.a); + } + return qY(this, e); + }, o.bi = function(e, t) { + switch (e) { + case 7: + oen(this, u(t, 167)); + return; + case 8: + TQ(this, Oe(t)); + return; + } + _Z(this, e, t); + }, o.ii = function() { + return Mc(), Pdn; + }, o.ki = function(e) { + switch (e) { + case 7: + oen(this, null); + return; + case 8: + TQ(this, ""); + return; + } + JY(this, e); + }, o.Ib = function() { + return h_n(this); + }, o.a = "", w(Td, "ElkLabelImpl", 366), b(207, 741, { 110: 1, 342: 1, 84: 1, 167: 1, 27: 1, 422: 1, 207: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }, Yv), o.Ah = function(e) { + return OZ(this, e); + }, o.Lh = function(e, t, i) { + switch (e) { + case 9: + return !this.c && (this.c = new q(Wu, this, 9, 9)), this.c; + case 10: + return !this.a && (this.a = new q(Ye, this, 10, 11)), this.a; + case 11: + return At(this); + case 12: + return !this.b && (this.b = new q(Wt, this, 12, 3)), this.b; + case 13: + return _n(), !this.a && (this.a = new q(Ye, this, 10, 11)), this.a.i > 0; + } + return bZ(this, e, t, i); + }, o.Sh = function(e, t, i) { + var r; + switch (t) { + case 9: + return !this.c && (this.c = new q(Wu, this, 9, 9)), Vc(this.c, e, i); + case 10: + return !this.a && (this.a = new q(Ye, this, 10, 11)), Vc(this.a, e, i); + case 11: + return this.Cb && (i = (r = this.Db >> 16, r >= 0 ? OZ(this, i) : this.Cb.Th(this, -1 - r, null, i))), yV(this, u(e, 27), i); + case 12: + return !this.b && (this.b = new q(Wt, this, 12, 3)), Vc(this.b, e, i); + } + return NZ(this, e, t, i); + }, o.Uh = function(e, t, i) { + switch (t) { + case 9: + return !this.c && (this.c = new q(Wu, this, 9, 9)), rr(this.c, e, i); + case 10: + return !this.a && (this.a = new q(Ye, this, 10, 11)), rr(this.a, e, i); + case 11: + return yV(this, null, i); + case 12: + return !this.b && (this.b = new q(Wt, this, 12, 3)), rr(this.b, e, i); + } + return $Z(this, e, t, i); + }, o.Wh = function(e) { + switch (e) { + case 9: + return !!this.c && this.c.i != 0; + case 10: + return !!this.a && this.a.i != 0; + case 11: + return !!At(this); + case 12: + return !!this.b && this.b.i != 0; + case 13: + return !this.a && (this.a = new q(Ye, this, 10, 11)), this.a.i > 0; + } + return cY(this, e); + }, o.bi = function(e, t) { + switch (e) { + case 9: + !this.c && (this.c = new q(Wu, this, 9, 9)), me(this.c), !this.c && (this.c = new q(Wu, this, 9, 9)), Kt(this.c, u(t, 16)); + return; + case 10: + !this.a && (this.a = new q(Ye, this, 10, 11)), me(this.a), !this.a && (this.a = new q(Ye, this, 10, 11)), Kt(this.a, u(t, 16)); + return; + case 11: + SA(this, u(t, 27)); + return; + case 12: + !this.b && (this.b = new q(Wt, this, 12, 3)), me(this.b), !this.b && (this.b = new q(Wt, this, 12, 3)), Kt(this.b, u(t, 16)); + return; + } + Vnn(this, e, t); + }, o.ii = function() { + return Mc(), Idn; + }, o.ki = function(e) { + switch (e) { + case 9: + !this.c && (this.c = new q(Wu, this, 9, 9)), me(this.c); + return; + case 10: + !this.a && (this.a = new q(Ye, this, 10, 11)), me(this.a); + return; + case 11: + SA(this, null); + return; + case 12: + !this.b && (this.b = new q(Wt, this, 12, 3)), me(this.b); + return; + } + fZ(this, e); + }, o.Ib = function() { + return Een(this); + }, w(Td, "ElkNodeImpl", 207), b(193, 741, { 110: 1, 342: 1, 84: 1, 167: 1, 123: 1, 422: 1, 193: 1, 96: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }, ez), o.Ah = function(e) { + return SZ(this, e); + }, o.Lh = function(e, t, i) { + return e == 9 ? Af(this) : bZ(this, e, t, i); + }, o.Sh = function(e, t, i) { + var r; + switch (t) { + case 9: + return this.Cb && (i = (r = this.Db >> 16, r >= 0 ? SZ(this, i) : this.Cb.Th(this, -1 - r, null, i))), aV(this, u(e, 27), i); + } + return NZ(this, e, t, i); + }, o.Uh = function(e, t, i) { + return t == 9 ? aV(this, null, i) : $Z(this, e, t, i); + }, o.Wh = function(e) { + return e == 9 ? !!Af(this) : cY(this, e); + }, o.bi = function(e, t) { + switch (e) { + case 9: + ien(this, u(t, 27)); + return; + } + Vnn(this, e, t); + }, o.ii = function() { + return Mc(), Odn; + }, o.ki = function(e) { + switch (e) { + case 9: + ien(this, null); + return; + } + fZ(this, e); + }, o.Ib = function() { + return Yqn(this); + }, w(Td, "ElkPortImpl", 193); + var Soe = Nt(ur, "BasicEMap/Entry"); + b(1122, 120, { 110: 1, 44: 1, 94: 1, 93: 1, 136: 1, 58: 1, 114: 1, 54: 1, 99: 1, 119: 1, 120: 1 }, hvn), o.Fb = function(e) { + return this === e; + }, o.ld = function() { + return this.b; + }, o.Hb = function() { + return a0(this); + }, o.Di = function(e) { + AQ(this, u(e, 149)); + }, o.Lh = function(e, t, i) { + switch (e) { + case 0: + return this.b; + case 1: + return this.c; + } + return tA(this, e, t, i); + }, o.Wh = function(e) { + switch (e) { + case 0: + return !!this.b; + case 1: + return this.c != null; + } + return Cx(this, e); + }, o.bi = function(e, t) { + switch (e) { + case 0: + AQ(this, u(t, 149)); + return; + case 1: + MQ(this, t); + return; + } + sF(this, e, t); + }, o.ii = function() { + return Mc(), tl; + }, o.ki = function(e) { + switch (e) { + case 0: + AQ(this, null); + return; + case 1: + MQ(this, null); + return; + } + cF(this, e); + }, o.Bi = function() { + var e; + return this.a == -1 && (e = this.b, this.a = e ? mt(e) : 0), this.a; + }, o.md = function() { + return this.c; + }, o.Ci = function(e) { + this.a = e; + }, o.nd = function(e) { + var t; + return t = this.c, MQ(this, e), t; + }, o.Ib = function() { + var e; + return this.Db & 64 ? Hs(this) : (e = new x1(), Re(Re(Re(e, this.b ? this.b.Pg() : wu), iR), O6(this.c)), e.a); + }, o.a = -1, o.c = null; + var A1 = w(Td, "ElkPropertyToValueMapEntryImpl", 1122); + b(996, 1, {}, dvn), w(Ui, "JsonAdapter", 996), b(216, 63, Pl, nh), w(Ui, "JsonImportException", 216), b(868, 1, {}, sKn), w(Ui, "JsonImporter", 868), b(903, 1, {}, wMn), w(Ui, "JsonImporter/lambda$0$Type", 903), b(904, 1, {}, gMn), w(Ui, "JsonImporter/lambda$1$Type", 904), b(912, 1, {}, Rkn), w(Ui, "JsonImporter/lambda$10$Type", 912), b(914, 1, {}, pMn), w(Ui, "JsonImporter/lambda$11$Type", 914), b(915, 1, {}, mMn), w(Ui, "JsonImporter/lambda$12$Type", 915), b(921, 1, {}, IIn), w(Ui, "JsonImporter/lambda$13$Type", 921), b(920, 1, {}, OIn), w(Ui, "JsonImporter/lambda$14$Type", 920), b(916, 1, {}, vMn), w(Ui, "JsonImporter/lambda$15$Type", 916), b(917, 1, {}, kMn), w(Ui, "JsonImporter/lambda$16$Type", 917), b(918, 1, {}, yMn), w(Ui, "JsonImporter/lambda$17$Type", 918), b(919, 1, {}, jMn), w(Ui, "JsonImporter/lambda$18$Type", 919), b(924, 1, {}, Kkn), w(Ui, "JsonImporter/lambda$19$Type", 924), b(905, 1, {}, _kn), w(Ui, "JsonImporter/lambda$2$Type", 905), b(922, 1, {}, Hkn), w(Ui, "JsonImporter/lambda$20$Type", 922), b(923, 1, {}, qkn), w(Ui, "JsonImporter/lambda$21$Type", 923), b(927, 1, {}, Ukn), w(Ui, "JsonImporter/lambda$22$Type", 927), b(925, 1, {}, Gkn), w(Ui, "JsonImporter/lambda$23$Type", 925), b(926, 1, {}, zkn), w(Ui, "JsonImporter/lambda$24$Type", 926), b(929, 1, {}, Xkn), w(Ui, "JsonImporter/lambda$25$Type", 929), b(928, 1, {}, Vkn), w(Ui, "JsonImporter/lambda$26$Type", 928), b(930, 1, re, EMn), o.Cd = function(e) { + O4e(this.b, this.a, Oe(e)); + }, w(Ui, "JsonImporter/lambda$27$Type", 930), b(931, 1, re, CMn), o.Cd = function(e) { + D4e(this.b, this.a, Oe(e)); + }, w(Ui, "JsonImporter/lambda$28$Type", 931), b(932, 1, {}, MMn), w(Ui, "JsonImporter/lambda$29$Type", 932), b(908, 1, {}, Wkn), w(Ui, "JsonImporter/lambda$3$Type", 908), b(933, 1, {}, TMn), w(Ui, "JsonImporter/lambda$30$Type", 933), b(934, 1, {}, Jkn), w(Ui, "JsonImporter/lambda$31$Type", 934), b(935, 1, {}, Qkn), w(Ui, "JsonImporter/lambda$32$Type", 935), b(936, 1, {}, Ykn), w(Ui, "JsonImporter/lambda$33$Type", 936), b(937, 1, {}, Zkn), w(Ui, "JsonImporter/lambda$34$Type", 937), b(870, 1, {}, nyn), w(Ui, "JsonImporter/lambda$35$Type", 870), b(941, 1, {}, kSn), w(Ui, "JsonImporter/lambda$36$Type", 941), b(938, 1, re, eyn), o.Cd = function(e) { + F3e(this.a, u(e, 377)); + }, w(Ui, "JsonImporter/lambda$37$Type", 938), b(939, 1, re, AMn), o.Cd = function(e) { + mle(this.a, this.b, u(e, 166)); + }, w(Ui, "JsonImporter/lambda$38$Type", 939), b(940, 1, re, SMn), o.Cd = function(e) { + vle(this.a, this.b, u(e, 166)); + }, w(Ui, "JsonImporter/lambda$39$Type", 940), b(906, 1, {}, tyn), w(Ui, "JsonImporter/lambda$4$Type", 906), b(942, 1, re, iyn), o.Cd = function(e) { + B3e(this.a, u(e, 8)); + }, w(Ui, "JsonImporter/lambda$40$Type", 942), b(907, 1, {}, ryn), w(Ui, "JsonImporter/lambda$5$Type", 907), b(911, 1, {}, cyn), w(Ui, "JsonImporter/lambda$6$Type", 911), b(909, 1, {}, uyn), w(Ui, "JsonImporter/lambda$7$Type", 909), b(910, 1, {}, oyn), w(Ui, "JsonImporter/lambda$8$Type", 910), b(913, 1, {}, syn), w(Ui, "JsonImporter/lambda$9$Type", 913), b(961, 1, re, fyn), o.Cd = function(e) { + Ip(this.a, new Ub(Oe(e))); + }, w(Ui, "JsonMetaDataConverter/lambda$0$Type", 961), b(962, 1, re, hyn), o.Cd = function(e) { + Pwe(this.a, u(e, 245)); + }, w(Ui, "JsonMetaDataConverter/lambda$1$Type", 962), b(963, 1, re, lyn), o.Cd = function(e) { + S2e(this.a, u(e, 143)); + }, w(Ui, "JsonMetaDataConverter/lambda$2$Type", 963), b(964, 1, re, ayn), o.Cd = function(e) { + Iwe(this.a, u(e, 170)); + }, w(Ui, "JsonMetaDataConverter/lambda$3$Type", 964), b(245, 22, { 3: 1, 34: 1, 22: 1, 245: 1 }, gp); + var wO, gO, mU, pO, mO, vO, vU, kU, kO = we(Dy, "GraphFeature", 245, ke, dme, tbe), Poe; + b(11, 1, { 34: 1, 149: 1 }, lt, Dt, Mn, $i), o.Fd = function(e) { + return C1e(this, u(e, 149)); + }, o.Fb = function(e) { + return nOn(this, e); + }, o.Sg = function() { + return rn(this); + }, o.Pg = function() { + return this.b; + }, o.Hb = function() { + return i1(this.b); + }, o.Ib = function() { + return this.b; + }, w(Dy, "Property", 11), b(671, 1, Ne, tD), o.Ne = function(e, t) { + return N5e(this, u(e, 96), u(t, 96)); + }, o.Fb = function(e) { + return this === e; + }, o.Oe = function() { + return new Te(this); + }, w(Dy, "PropertyHolderComparator", 671), b(709, 1, Ii, xG), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return $4e(this); + }, o.Qb = function() { + sEn(); + }, o.Ob = function() { + return !!this.a; + }, w(_S, "ElkGraphUtil/AncestorIterator", 709); + var Ldn = Nt(ur, "EList"); + b(70, 56, { 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 70: 1, 61: 1 }), o.bd = function(e, t) { + v5(this, e, t); + }, o.Fc = function(e) { + return ve(this, e); + }, o.cd = function(e, t) { + return JQ(this, e, t); + }, o.Gc = function(e) { + return Kt(this, e); + }, o.Ii = function() { + return new yp(this); + }, o.Ji = function() { + return new M7(this); + }, o.Ki = function(e) { + return pk(this, e); + }, o.Li = function() { + return !0; + }, o.Mi = function(e, t) { + }, o.Ni = function() { + }, o.Oi = function(e, t) { + t$(this, e, t); + }, o.Pi = function(e, t, i) { + }, o.Qi = function(e, t) { + }, o.Ri = function(e, t, i) { + }, o.Fb = function(e) { + return xqn(this, e); + }, o.Hb = function() { + return zQ(this); + }, o.Si = function() { + return !1; + }, o.Kc = function() { + return new ne(this); + }, o.ed = function() { + return new kp(this); + }, o.fd = function(e) { + var t; + if (t = this.gc(), e < 0 || e > t) + throw M(new _b(e, t)); + return new oN(this, e); + }, o.Ui = function(e, t) { + this.Ti(e, this.dd(t)); + }, o.Mc = function(e) { + return rT(this, e); + }, o.Wi = function(e, t) { + return t; + }, o.hd = function(e, t) { + return Rg(this, e, t); + }, o.Ib = function() { + return KY(this); + }, o.Yi = function() { + return !0; + }, o.Zi = function(e, t) { + return im(this, t); + }, w(ur, "AbstractEList", 70), b(66, 70, Eh, EE, P0, KQ), o.Ei = function(e, t) { + return Zx(this, e, t); + }, o.Fi = function(e) { + return LRn(this, e); + }, o.Gi = function(e, t) { + Dk(this, e, t); + }, o.Hi = function(e) { + ek(this, e); + }, o.$i = function(e) { + return nQ(this, e); + }, o.$b = function() { + e5(this); + }, o.Hc = function(e) { + return vm(this, e); + }, o.Xb = function(e) { + return L(this, e); + }, o._i = function(e) { + var t, i, r; + ++this.j, i = this.g == null ? 0 : this.g.length, e > i && (r = this.g, t = i + (i / 2 | 0) + 4, t < e && (t = e), this.g = this.aj(t), r != null && Oc(r, 0, this.g, 0, this.i)); + }, o.dd = function(e) { + return eKn(this, e); + }, o.dc = function() { + return this.i == 0; + }, o.Ti = function(e, t) { + return lF(this, e, t); + }, o.aj = function(e) { + return K(yi, Bn, 1, e, 5, 1); + }, o.Vi = function(e) { + return this.g[e]; + }, o.gd = function(e) { + return Jp(this, e); + }, o.Xi = function(e, t) { + return d$(this, e, t); + }, o.gc = function() { + return this.i; + }, o.Pc = function() { + return jJ(this); + }, o.Qc = function(e) { + return WY(this, e); + }, o.i = 0; + var Ndn = w(ur, "BasicEList", 66), $dn = Nt(ur, "TreeIterator"); + b(708, 66, yK), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return this.g == null && !this.c ? cJ(this) : this.g == null || this.i != 0 && u(this.g[this.i - 1], 51).Ob(); + }, o.Pb = function() { + return CA(this); + }, o.Qb = function() { + if (!this.e) + throw M(new Ir("There is no valid object to remove.")); + this.e.Qb(); + }, o.c = !1, w(ur, "AbstractTreeIterator", 708), b(700, 708, yK, AX), o.bj = function(e) { + var t; + return t = u(e, 58).Gh().Kc(), D(t, 287) && u(t, 287).wl(new bvn()), t; + }, w(_S, "ElkGraphUtil/PropertiesSkippingTreeIterator", 700), b(965, 1, {}, bvn), w(_S, "ElkGraphUtil/PropertiesSkippingTreeIterator/1", 965); + var hE, yU, lE = w(_S, "ElkReflect", null); + b(901, 1, Tw, wvn), o.Rg = function(e) { + return $M(), I2e(u(e, 181)); + }, w(_S, "ElkReflect/lambda$0$Type", 901); + var Da; + Nt(ur, "ResourceLocator"), b(1065, 1, {}), w(ur, "DelegatingResourceLocator", 1065), b(1066, 1065, {}), w("org.eclipse.emf.common", "EMFPlugin", 1066); + var jU = Nt(QWn, "Adapter"), ONe = Nt(QWn, "Notification"); + b(1174, 1, Hcn), o.cj = function() { + return this.d; + }, o.dj = function(e) { + }, o.ej = function(e) { + this.d = e; + }, o.fj = function(e) { + this.d == e && (this.d = null); + }, o.d = null, w(g3, "AdapterImpl", 1174), b(2093, 70, YWn), o.Ei = function(e, t) { + return UY(this, e, t); + }, o.Fi = function(e) { + var t, i, r; + if (++this.j, e.dc()) + return !1; + for (t = this.Ej(), r = e.Kc(); r.Ob(); ) + i = r.Pb(), this.rj(this.Zi(t, i)), ++t; + return !0; + }, o.Gi = function(e, t) { + IAn(this, e, t); + }, o.Hi = function(e) { + eIn(this, e); + }, o.pj = function() { + return this.sj(); + }, o.$b = function() { + S7(this, this.Ej(), this.Fj()); + }, o.Hc = function(e) { + return this.uj(e); + }, o.Ic = function(e) { + return this.vj(e); + }, o.qj = function(e, t) { + this.Bj().Um(); + }, o.rj = function(e) { + this.Bj().Um(); + }, o.sj = function() { + return this.Bj(); + }, o.tj = function() { + this.Bj().Um(); + }, o.uj = function(e) { + return this.Bj().Um(); + }, o.vj = function(e) { + return this.Bj().Um(); + }, o.wj = function(e) { + return this.Bj().Um(); + }, o.xj = function(e) { + return this.Bj().Um(); + }, o.yj = function() { + return this.Bj().Um(); + }, o.zj = function(e) { + return this.Bj().Um(); + }, o.Aj = function() { + return this.Bj().Um(); + }, o.Cj = function(e) { + return this.Bj().Um(); + }, o.Dj = function(e, t) { + return this.Bj().Um(); + }, o.Ej = function() { + return this.Bj().Um(); + }, o.Fj = function() { + return this.Bj().Um(); + }, o.Gj = function(e) { + return this.Bj().Um(); + }, o.Hj = function() { + return this.Bj().Um(); + }, o.Fb = function(e) { + return this.wj(e); + }, o.Xb = function(e) { + return this.Wi(e, this.xj(e)); + }, o.Hb = function() { + return this.yj(); + }, o.dd = function(e) { + return this.zj(e); + }, o.dc = function() { + return this.Aj(); + }, o.Ti = function(e, t) { + return onn(this, e, t); + }, o.Vi = function(e) { + return this.xj(e); + }, o.gd = function(e) { + return tM(this, e); + }, o.Mc = function(e) { + var t; + return t = this.dd(e), t >= 0 ? (this.gd(t), !0) : !1; + }, o.Xi = function(e, t) { + return this.Dj(e, this.Zi(e, t)); + }, o.gc = function() { + return this.Ej(); + }, o.Pc = function() { + return this.Fj(); + }, o.Qc = function(e) { + return this.Gj(e); + }, o.Ib = function() { + return this.Hj(); + }, w(ur, "DelegatingEList", 2093), b(2094, 2093, YWn), o.Ei = function(e, t) { + return $en(this, e, t); + }, o.Fi = function(e) { + return this.Ei(this.Ej(), e); + }, o.Gi = function(e, t) { + EHn(this, e, t); + }, o.Hi = function(e) { + lHn(this, e); + }, o.Li = function() { + return !this.Mj(); + }, o.$b = function() { + X5(this); + }, o.Ij = function(e, t, i, r, c) { + return new ZIn(this, e, t, i, r, c); + }, o.Jj = function(e) { + it(this.jj(), e); + }, o.Kj = function() { + return null; + }, o.Lj = function() { + return -1; + }, o.jj = function() { + return null; + }, o.Mj = function() { + return !1; + }, o.Nj = function(e, t) { + return t; + }, o.Oj = function(e, t) { + return t; + }, o.Pj = function() { + return !1; + }, o.Qj = function() { + return !this.Aj(); + }, o.Ti = function(e, t) { + var i, r; + return this.Pj() ? (r = this.Qj(), i = onn(this, e, t), this.Jj(this.Ij(7, Y(t), i, e, r)), i) : onn(this, e, t); + }, o.gd = function(e) { + var t, i, r, c; + return this.Pj() ? (i = null, r = this.Qj(), t = this.Ij(4, c = tM(this, e), null, e, r), this.Mj() && c ? (i = this.Oj(c, i), i ? (i.nj(t), i.oj()) : this.Jj(t)) : i ? (i.nj(t), i.oj()) : this.Jj(t), c) : (c = tM(this, e), this.Mj() && c && (i = this.Oj(c, null), i && i.oj()), c); + }, o.Xi = function(e, t) { + return IUn(this, e, t); + }, w(g3, "DelegatingNotifyingListImpl", 2094), b(152, 1, Wy), o.nj = function(e) { + return zZ(this, e); + }, o.oj = function() { + h$(this); + }, o.gj = function() { + return this.d; + }, o.Kj = function() { + return null; + }, o.Rj = function() { + return null; + }, o.hj = function(e) { + return -1; + }, o.ij = function() { + return pqn(this); + }, o.jj = function() { + return null; + }, o.kj = function() { + return aen(this); + }, o.lj = function() { + return this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o; + }, o.Sj = function() { + return !1; + }, o.mj = function(e) { + var t, i, r, c, s, f, h, l, a, d, g; + switch (this.d) { + case 1: + case 2: + switch (c = e.gj(), c) { + case 1: + case 2: + if (s = e.jj(), x(s) === x(this.jj()) && this.hj(null) == e.hj(null)) + return this.g = e.ij(), e.gj() == 1 && (this.d = 1), !0; + } + case 4: { + switch (c = e.gj(), c) { + case 4: { + if (s = e.jj(), x(s) === x(this.jj()) && this.hj(null) == e.hj(null)) + return a = Yen(this), l = this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o, f = e.lj(), this.d = 6, g = new P0(2), l <= f ? (ve(g, this.n), ve(g, e.kj()), this.g = A(T(ye, 1), _e, 28, 15, [this.o = l, f + 1])) : (ve(g, e.kj()), ve(g, this.n), this.g = A(T(ye, 1), _e, 28, 15, [this.o = f, l])), this.n = g, a || (this.o = -2 - this.o - 1), !0; + break; + } + } + break; + } + case 6: { + switch (c = e.gj(), c) { + case 4: { + if (s = e.jj(), x(s) === x(this.jj()) && this.hj(null) == e.hj(null)) { + for (a = Yen(this), f = e.lj(), d = u(this.g, 53), r = K(ye, _e, 28, d.length + 1, 15, 1), t = 0; t < d.length && (h = d[t], h <= f); ) + r[t++] = h, ++f; + for (i = u(this.n, 15), i.bd(t, e.kj()), r[t] = f; ++t < r.length; ) + r[t] = d[t - 1]; + return this.g = r, a || (this.o = -2 - r[0]), !0; + } + break; + } + } + break; + } + } + return !1; + }, o.Ib = function() { + var e, t, i, r; + switch (r = new ls(Va(this.Rm) + "@" + (t = mt(this) >>> 0, t.toString(16))), r.a += " (eventType: ", this.d) { + case 1: { + r.a += "SET"; + break; + } + case 2: { + r.a += "UNSET"; + break; + } + case 3: { + r.a += "ADD"; + break; + } + case 5: { + r.a += "ADD_MANY"; + break; + } + case 4: { + r.a += "REMOVE"; + break; + } + case 6: { + r.a += "REMOVE_MANY"; + break; + } + case 7: { + r.a += "MOVE"; + break; + } + case 8: { + r.a += "REMOVING_ADAPTER"; + break; + } + case 9: { + r.a += "RESOLVE"; + break; + } + default: { + TD(r, this.d); + break; + } + } + if (rUn(this) && (r.a += ", touch: true"), r.a += ", position: ", TD(r, this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o), r.a += ", notifier: ", M6(r, this.jj()), r.a += ", feature: ", M6(r, this.Kj()), r.a += ", oldValue: ", M6(r, aen(this)), r.a += ", newValue: ", this.d == 6 && D(this.g, 53)) { + for (i = u(this.g, 53), r.a += "[", e = 0; e < i.length; ) + r.a += i[e], ++e < i.length && (r.a += cr); + r.a += "]"; + } else + M6(r, pqn(this)); + return r.a += ", isTouch: ", Ul(r, rUn(this)), r.a += ", wasSet: ", Ul(r, Yen(this)), r.a += ")", r.a; + }, o.d = 0, o.e = 0, o.f = 0, o.j = 0, o.k = 0, o.o = 0, o.p = 0, w(g3, "NotificationImpl", 152), b(1188, 152, Wy, ZIn), o.Kj = function() { + return this.a.Kj(); + }, o.hj = function(e) { + return this.a.Lj(); + }, o.jj = function() { + return this.a.jj(); + }, w(g3, "DelegatingNotifyingListImpl/1", 1188), b(251, 66, Eh, gvn, F1), o.Fc = function(e) { + return TBn(this, u(e, 378)); + }, o.nj = function(e) { + return TBn(this, e); + }, o.oj = function() { + var e, t, i; + for (e = 0; e < this.i; ++e) + t = u(this.g[e], 378), i = t.jj(), i != null && t.gj() != -1 && u(i, 94).xh(t); + }, o.aj = function(e) { + return K(ONe, Bn, 378, e, 0, 1); + }, w(g3, "NotificationChainImpl", 251), b(1524, 93, hWn), o.uh = function() { + return this.e; + }, o.wh = function() { + return (this.f & 1) != 0; + }, o.f = 1, w(g3, "NotifierImpl", 1524), b(2091, 66, Eh), o.Ei = function(e, t) { + return DF(this, e, t); + }, o.Fi = function(e) { + return this.Ei(this.i, e); + }, o.Gi = function(e, t) { + Rnn(this, e, t); + }, o.Hi = function(e) { + aF(this, e); + }, o.Li = function() { + return !this.Mj(); + }, o.$b = function() { + me(this); + }, o.Ij = function(e, t, i, r, c) { + return new YIn(this, e, t, i, r, c); + }, o.Jj = function(e) { + it(this.jj(), e); + }, o.Kj = function() { + return null; + }, o.Lj = function() { + return -1; + }, o.jj = function() { + return null; + }, o.Mj = function() { + return !1; + }, o.Tj = function() { + return !1; + }, o.Nj = function(e, t) { + return t; + }, o.Oj = function(e, t) { + return t; + }, o.Pj = function() { + return !1; + }, o.Qj = function() { + return this.i != 0; + }, o.Ti = function(e, t) { + return k5(this, e, t); + }, o.gd = function(e) { + return bw(this, e); + }, o.Xi = function(e, t) { + return XUn(this, e, t); + }, o.Uj = function(e, t) { + return t; + }, o.Vj = function(e, t) { + return t; + }, o.Wj = function(e, t, i) { + return i; + }, w(g3, "NotifyingListImpl", 2091), b(1187, 152, Wy, YIn), o.Kj = function() { + return this.a.Kj(); + }, o.hj = function(e) { + return this.a.Lj(); + }, o.jj = function() { + return this.a.jj(); + }, w(g3, "NotifyingListImpl/1", 1187), b(966, 66, Eh, LAn), o.Hc = function(e) { + return this.i > 10 ? ((!this.b || this.c.j != this.a) && (this.b = new F6(this), this.a = this.j), sf(this.b, e)) : vm(this, e); + }, o.Yi = function() { + return !0; + }, o.a = 0, w(ur, "AbstractEList/1", 966), b(302, 77, AB, _b), w(ur, "AbstractEList/BasicIndexOutOfBoundsException", 302), b(37, 1, Ii, ne), o.Nb = function(e) { + _i(this, e); + }, o.Xj = function() { + if (this.i.j != this.f) + throw M(new Bo()); + }, o.Yj = function() { + return ue(this); + }, o.Ob = function() { + return this.e != this.i.gc(); + }, o.Pb = function() { + return this.Yj(); + }, o.Qb = function() { + O5(this); + }, o.e = 0, o.f = 0, o.g = -1, w(ur, "AbstractEList/EIterator", 37), b(286, 37, _h, kp, oN), o.Qb = function() { + O5(this); + }, o.Rb = function(e) { + OBn(this, e); + }, o.Zj = function() { + var e; + try { + return e = this.d.Xb(--this.e), this.Xj(), this.g = this.e, e; + } catch (t) { + throw t = It(t), D(t, 77) ? (this.Xj(), M(new nc())) : M(t); + } + }, o.$j = function(e) { + xRn(this, e); + }, o.Sb = function() { + return this.e != 0; + }, o.Tb = function() { + return this.e; + }, o.Ub = function() { + return this.Zj(); + }, o.Vb = function() { + return this.e - 1; + }, o.Wb = function(e) { + this.$j(e); + }, w(ur, "AbstractEList/EListIterator", 286), b(355, 37, Ii, yp), o.Yj = function() { + return Mx(this); + }, o.Qb = function() { + throw M(new Pe()); + }, w(ur, "AbstractEList/NonResolvingEIterator", 355), b(398, 286, _h, M7, SV), o.Rb = function(e) { + throw M(new Pe()); + }, o.Yj = function() { + var e; + try { + return e = this.c.Vi(this.e), this.Xj(), this.g = this.e++, e; + } catch (t) { + throw t = It(t), D(t, 77) ? (this.Xj(), M(new nc())) : M(t); + } + }, o.Zj = function() { + var e; + try { + return e = this.c.Vi(--this.e), this.Xj(), this.g = this.e, e; + } catch (t) { + throw t = It(t), D(t, 77) ? (this.Xj(), M(new nc())) : M(t); + } + }, o.Qb = function() { + throw M(new Pe()); + }, o.Wb = function(e) { + throw M(new Pe()); + }, w(ur, "AbstractEList/NonResolvingEListIterator", 398), b(2080, 70, ZWn), o.Ei = function(e, t) { + var i, r, c, s, f, h, l, a, d, g, p; + if (c = t.gc(), c != 0) { + for (a = u(Un(this.a, 4), 129), d = a == null ? 0 : a.length, p = d + c, r = V$(this, p), g = d - e, g > 0 && Oc(a, e, r, e + c, g), l = t.Kc(), f = 0; f < c; ++f) + h = l.Pb(), i = e + f, mL(r, i, im(this, h)); + for (wm(this, r), s = 0; s < c; ++s) + h = r[e], this.Mi(e, h), ++e; + return !0; + } else + return ++this.j, !1; + }, o.Fi = function(e) { + var t, i, r, c, s, f, h, l, a; + if (r = e.gc(), r != 0) { + for (l = (i = u(Un(this.a, 4), 129), i == null ? 0 : i.length), a = l + r, t = V$(this, a), h = e.Kc(), s = l; s < a; ++s) + f = h.Pb(), mL(t, s, im(this, f)); + for (wm(this, t), c = l; c < a; ++c) + f = t[c], this.Mi(c, f); + return !0; + } else + return ++this.j, !1; + }, o.Gi = function(e, t) { + var i, r, c, s; + r = u(Un(this.a, 4), 129), c = r == null ? 0 : r.length, i = V$(this, c + 1), s = im(this, t), e != c && Oc(r, e, i, e + 1, c - e), $t(i, e, s), wm(this, i), this.Mi(e, t); + }, o.Hi = function(e) { + var t, i, r; + r = (i = u(Un(this.a, 4), 129), i == null ? 0 : i.length), t = V$(this, r + 1), mL(t, r, im(this, e)), wm(this, t), this.Mi(r, e); + }, o.Ii = function() { + return new ELn(this); + }, o.Ji = function() { + return new $Pn(this); + }, o.Ki = function(e) { + var t, i; + if (i = (t = u(Un(this.a, 4), 129), t == null ? 0 : t.length), e < 0 || e > i) + throw M(new _b(e, i)); + return new yIn(this, e); + }, o.$b = function() { + var e, t; + ++this.j, e = u(Un(this.a, 4), 129), t = e == null ? 0 : e.length, wm(this, null), t$(this, t, e); + }, o.Hc = function(e) { + var t, i, r, c, s; + if (t = u(Un(this.a, 4), 129), t != null) { + if (e != null) { + for (r = t, c = 0, s = r.length; c < s; ++c) + if (i = r[c], rt(e, i)) + return !0; + } else + for (r = t, c = 0, s = r.length; c < s; ++c) + if (i = r[c], x(i) === x(e)) + return !0; + } + return !1; + }, o.Xb = function(e) { + var t, i; + if (t = u(Un(this.a, 4), 129), i = t == null ? 0 : t.length, e >= i) + throw M(new _b(e, i)); + return t[e]; + }, o.dd = function(e) { + var t, i, r; + if (t = u(Un(this.a, 4), 129), t != null) { + if (e != null) { + for (i = 0, r = t.length; i < r; ++i) + if (rt(e, t[i])) + return i; + } else + for (i = 0, r = t.length; i < r; ++i) + if (x(t[i]) === x(e)) + return i; + } + return -1; + }, o.dc = function() { + return u(Un(this.a, 4), 129) == null; + }, o.Kc = function() { + return new jLn(this); + }, o.ed = function() { + return new NPn(this); + }, o.fd = function(e) { + var t, i; + if (i = (t = u(Un(this.a, 4), 129), t == null ? 0 : t.length), e < 0 || e > i) + throw M(new _b(e, i)); + return new kIn(this, e); + }, o.Ti = function(e, t) { + var i, r, c; + if (i = _Bn(this), c = i == null ? 0 : i.length, e >= c) + throw M(new Pr(vK + e + Ad + c)); + if (t >= c) + throw M(new Pr(kK + t + Ad + c)); + return r = i[t], e != t && (e < t ? Oc(i, e, i, e + 1, t - e) : Oc(i, t + 1, i, t, e - t), $t(i, e, r), wm(this, i)), r; + }, o.Vi = function(e) { + return u(Un(this.a, 4), 129)[e]; + }, o.gd = function(e) { + return bCe(this, e); + }, o.Xi = function(e, t) { + var i, r; + return i = _Bn(this), r = i[e], mL(i, e, im(this, t)), wm(this, i), r; + }, o.gc = function() { + var e; + return e = u(Un(this.a, 4), 129), e == null ? 0 : e.length; + }, o.Pc = function() { + var e, t, i; + return e = u(Un(this.a, 4), 129), i = e == null ? 0 : e.length, t = K(jU, MK, 424, i, 0, 1), i > 0 && Oc(e, 0, t, 0, i), t; + }, o.Qc = function(e) { + var t, i, r; + return t = u(Un(this.a, 4), 129), r = t == null ? 0 : t.length, r > 0 && (e.length < r && (i = gk(wo(e).c, r), e = i), Oc(t, 0, e, 0, r)), e.length > r && $t(e, r, null), e; + }; + var Ioe; + w(ur, "ArrayDelegatingEList", 2080), b(1051, 37, Ii, jLn), o.Xj = function() { + if (this.b.j != this.f || x(u(Un(this.b.a, 4), 129)) !== x(this.a)) + throw M(new Bo()); + }, o.Qb = function() { + O5(this), this.a = u(Un(this.b.a, 4), 129); + }, w(ur, "ArrayDelegatingEList/EIterator", 1051), b(722, 286, _h, NPn, kIn), o.Xj = function() { + if (this.b.j != this.f || x(u(Un(this.b.a, 4), 129)) !== x(this.a)) + throw M(new Bo()); + }, o.$j = function(e) { + xRn(this, e), this.a = u(Un(this.b.a, 4), 129); + }, o.Qb = function() { + O5(this), this.a = u(Un(this.b.a, 4), 129); + }, w(ur, "ArrayDelegatingEList/EListIterator", 722), b(1052, 355, Ii, ELn), o.Xj = function() { + if (this.b.j != this.f || x(u(Un(this.b.a, 4), 129)) !== x(this.a)) + throw M(new Bo()); + }, w(ur, "ArrayDelegatingEList/NonResolvingEIterator", 1052), b(723, 398, _h, $Pn, yIn), o.Xj = function() { + if (this.b.j != this.f || x(u(Un(this.b.a, 4), 129)) !== x(this.a)) + throw M(new Bo()); + }, w(ur, "ArrayDelegatingEList/NonResolvingEListIterator", 723), b(615, 302, AB, aL), w(ur, "BasicEList/BasicIndexOutOfBoundsException", 615), b(710, 66, Eh, gX), o.bd = function(e, t) { + throw M(new Pe()); + }, o.Fc = function(e) { + throw M(new Pe()); + }, o.cd = function(e, t) { + throw M(new Pe()); + }, o.Gc = function(e) { + throw M(new Pe()); + }, o.$b = function() { + throw M(new Pe()); + }, o._i = function(e) { + throw M(new Pe()); + }, o.Kc = function() { + return this.Ii(); + }, o.ed = function() { + return this.Ji(); + }, o.fd = function(e) { + return this.Ki(e); + }, o.Ti = function(e, t) { + throw M(new Pe()); + }, o.Ui = function(e, t) { + throw M(new Pe()); + }, o.gd = function(e) { + throw M(new Pe()); + }, o.Mc = function(e) { + throw M(new Pe()); + }, o.hd = function(e, t) { + throw M(new Pe()); + }, w(ur, "BasicEList/UnmodifiableEList", 710), b(721, 1, { 3: 1, 20: 1, 16: 1, 15: 1, 61: 1, 597: 1 }), o.bd = function(e, t) { + a1e(this, e, u(t, 44)); + }, o.Fc = function(e) { + return cae(this, u(e, 44)); + }, o.Jc = function(e) { + qi(this, e); + }, o.Xb = function(e) { + return u(L(this.c, e), 136); + }, o.Ti = function(e, t) { + return u(this.c.Ti(e, t), 44); + }, o.Ui = function(e, t) { + d1e(this, e, u(t, 44)); + }, o.Lc = function() { + return new Tn(null, new In(this, 16)); + }, o.gd = function(e) { + return u(this.c.gd(e), 44); + }, o.hd = function(e, t) { + return Swe(this, e, u(t, 44)); + }, o.jd = function(e) { + od(this, e); + }, o.Nc = function() { + return new In(this, 16); + }, o.Oc = function() { + return new Tn(null, new In(this, 16)); + }, o.cd = function(e, t) { + return this.c.cd(e, t); + }, o.Gc = function(e) { + return this.c.Gc(e); + }, o.$b = function() { + this.c.$b(); + }, o.Hc = function(e) { + return this.c.Hc(e); + }, o.Ic = function(e) { + return Ek(this.c, e); + }, o._j = function() { + var e, t, i; + if (this.d == null) { + for (this.d = K(Ndn, qcn, 66, 2 * this.f + 1, 0, 1), i = this.e, this.f = 0, t = this.c.Kc(); t.e != t.i.gc(); ) + e = u(t.Yj(), 136), uA(this, e); + this.e = i; + } + }, o.Fb = function(e) { + return sSn(this, e); + }, o.Hb = function() { + return zQ(this.c); + }, o.dd = function(e) { + return this.c.dd(e); + }, o.ak = function() { + this.c = new dyn(this); + }, o.dc = function() { + return this.f == 0; + }, o.Kc = function() { + return this.c.Kc(); + }, o.ed = function() { + return this.c.ed(); + }, o.fd = function(e) { + return this.c.fd(e); + }, o.bk = function() { + return rk(this); + }, o.ck = function(e, t, i) { + return new ySn(e, t, i); + }, o.dk = function() { + return new pvn(); + }, o.Mc = function(e) { + return V$n(this, e); + }, o.gc = function() { + return this.f; + }, o.kd = function(e, t) { + return new Ql(this.c, e, t); + }, o.Pc = function() { + return this.c.Pc(); + }, o.Qc = function(e) { + return this.c.Qc(e); + }, o.Ib = function() { + return KY(this.c); + }, o.e = 0, o.f = 0, w(ur, "BasicEMap", 721), b(1046, 66, Eh, dyn), o.Mi = function(e, t) { + Ufe(this, u(t, 136)); + }, o.Pi = function(e, t, i) { + var r; + ++(r = this, u(t, 136), r).a.e; + }, o.Qi = function(e, t) { + Gfe(this, u(t, 136)); + }, o.Ri = function(e, t, i) { + U1e(this, u(t, 136), u(i, 136)); + }, o.Oi = function(e, t) { + _xn(this.a); + }, w(ur, "BasicEMap/1", 1046), b(1047, 66, Eh, pvn), o.aj = function(e) { + return K(DNe, nJn, 621, e, 0, 1); + }, w(ur, "BasicEMap/2", 1047), b(1048, Rf, Du, byn), o.$b = function() { + this.a.c.$b(); + }, o.Hc = function(e) { + return wx(this.a, e); + }, o.Kc = function() { + return this.a.f == 0 ? (p4(), aE.a) : new Jjn(this.a); + }, o.Mc = function(e) { + var t; + return t = this.a.f, VT(this.a, e), this.a.f != t; + }, o.gc = function() { + return this.a.f; + }, w(ur, "BasicEMap/3", 1048), b(1049, 31, mw, wyn), o.$b = function() { + this.a.c.$b(); + }, o.Hc = function(e) { + return Fqn(this.a, e); + }, o.Kc = function() { + return this.a.f == 0 ? (p4(), aE.a) : new Qjn(this.a); + }, o.gc = function() { + return this.a.f; + }, w(ur, "BasicEMap/4", 1049), b(1050, Rf, Du, gyn), o.$b = function() { + this.a.c.$b(); + }, o.Hc = function(e) { + var t, i, r, c, s, f, h, l, a; + if (this.a.f > 0 && D(e, 44) && (this.a._j(), l = u(e, 44), h = l.ld(), c = h == null ? 0 : mt(h), s = dV(this.a, c), t = this.a.d[s], t)) { + for (i = u(t.g, 379), a = t.i, f = 0; f < a; ++f) + if (r = i[f], r.Bi() == c && r.Fb(l)) + return !0; + } + return !1; + }, o.Kc = function() { + return this.a.f == 0 ? (p4(), aE.a) : new CN(this.a); + }, o.Mc = function(e) { + return SHn(this, e); + }, o.gc = function() { + return this.a.f; + }, w(ur, "BasicEMap/5", 1050), b(622, 1, Ii, CN), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return this.b != -1; + }, o.Pb = function() { + var e; + if (this.f.e != this.c) + throw M(new Bo()); + if (this.b == -1) + throw M(new nc()); + return this.d = this.a, this.e = this.b, bKn(this), e = u(this.f.d[this.d].g[this.e], 136), this.ek(e); + }, o.Qb = function() { + if (this.f.e != this.c) + throw M(new Bo()); + if (this.e == -1) + throw M(new Eu()); + this.f.c.Mc(L(this.f.d[this.d], this.e)), this.c = this.f.e, this.e = -1, this.a == this.d && this.b != -1 && --this.b; + }, o.ek = function(e) { + return e; + }, o.a = 0, o.b = -1, o.c = 0, o.d = 0, o.e = 0, w(ur, "BasicEMap/BasicEMapIterator", 622), b(1044, 622, Ii, Jjn), o.ek = function(e) { + return e.ld(); + }, w(ur, "BasicEMap/BasicEMapKeyIterator", 1044), b(1045, 622, Ii, Qjn), o.ek = function(e) { + return e.md(); + }, w(ur, "BasicEMap/BasicEMapValueIterator", 1045), b(1043, 1, V0, pyn), o.wc = function(e) { + f5(this, e); + }, o.yc = function(e, t, i) { + return hx(this, e, t, i); + }, o.$b = function() { + this.a.c.$b(); + }, o._b = function(e) { + return IMn(this, e); + }, o.uc = function(e) { + return Fqn(this.a, e); + }, o.vc = function() { + return d4e(this.a); + }, o.Fb = function(e) { + return sSn(this.a, e); + }, o.xc = function(e) { + return gf(this.a, e); + }, o.Hb = function() { + return zQ(this.a.c); + }, o.dc = function() { + return this.a.f == 0; + }, o.ec = function() { + return l4e(this.a); + }, o.zc = function(e, t) { + return zk(this.a, e, t); + }, o.Bc = function(e) { + return VT(this.a, e); + }, o.gc = function() { + return this.a.f; + }, o.Ib = function() { + return KY(this.a.c); + }, o.Cc = function() { + return a4e(this.a); + }, w(ur, "BasicEMap/DelegatingMap", 1043), b(621, 1, { 44: 1, 136: 1, 621: 1 }, ySn), o.Fb = function(e) { + var t; + return D(e, 44) ? (t = u(e, 44), (this.b != null ? rt(this.b, t.ld()) : x(this.b) === x(t.ld())) && (this.c != null ? rt(this.c, t.md()) : x(this.c) === x(t.md()))) : !1; + }, o.Bi = function() { + return this.a; + }, o.ld = function() { + return this.b; + }, o.md = function() { + return this.c; + }, o.Hb = function() { + return this.a ^ (this.c == null ? 0 : mt(this.c)); + }, o.Ci = function(e) { + this.a = e; + }, o.Di = function(e) { + throw M(new za()); + }, o.nd = function(e) { + var t; + return t = this.c, this.c = e, t; + }, o.Ib = function() { + return this.b + "->" + this.c; + }, o.a = 0; + var DNe = w(ur, "BasicEMap/EntryImpl", 621); + b(546, 1, {}, CE), w(ur, "BasicEMap/View", 546); + var aE; + b(783, 1, {}), o.Fb = function(e) { + return Wnn((Dn(), or), e); + }, o.Hb = function() { + return rY((Dn(), or)); + }, o.Ib = function() { + return ca((Dn(), or)); + }, w(ur, "ECollections/BasicEmptyUnmodifiableEList", 783), b(1348, 1, _h, mvn), o.Nb = function(e) { + _i(this, e); + }, o.Rb = function(e) { + throw M(new Pe()); + }, o.Ob = function() { + return !1; + }, o.Sb = function() { + return !1; + }, o.Pb = function() { + throw M(new nc()); + }, o.Tb = function() { + return 0; + }, o.Ub = function() { + throw M(new nc()); + }, o.Vb = function() { + return -1; + }, o.Qb = function() { + throw M(new Pe()); + }, o.Wb = function(e) { + throw M(new Pe()); + }, w(ur, "ECollections/BasicEmptyUnmodifiableEList/1", 1348), b(1346, 783, { 20: 1, 16: 1, 15: 1, 61: 1 }, ujn), o.bd = function(e, t) { + yEn(); + }, o.Fc = function(e) { + return jEn(); + }, o.cd = function(e, t) { + return EEn(); + }, o.Gc = function(e) { + return CEn(); + }, o.$b = function() { + MEn(); + }, o.Hc = function(e) { + return !1; + }, o.Ic = function(e) { + return !1; + }, o.Jc = function(e) { + qi(this, e); + }, o.Xb = function(e) { + return vX((Dn(), e)), null; + }, o.dd = function(e) { + return -1; + }, o.dc = function() { + return !0; + }, o.Kc = function() { + return this.a; + }, o.ed = function() { + return this.a; + }, o.fd = function(e) { + return this.a; + }, o.Ti = function(e, t) { + return TEn(); + }, o.Ui = function(e, t) { + AEn(); + }, o.Lc = function() { + return new Tn(null, new In(this, 16)); + }, o.gd = function(e) { + return SEn(); + }, o.Mc = function(e) { + return PEn(); + }, o.hd = function(e, t) { + return IEn(); + }, o.gc = function() { + return 0; + }, o.jd = function(e) { + od(this, e); + }, o.Nc = function() { + return new In(this, 16); + }, o.Oc = function() { + return new Tn(null, new In(this, 16)); + }, o.kd = function(e, t) { + return Dn(), new Ql(or, e, t); + }, o.Pc = function() { + return gW((Dn(), or)); + }, o.Qc = function(e) { + return Dn(), A5(or, e); + }, w(ur, "ECollections/EmptyUnmodifiableEList", 1346), b(1347, 783, { 20: 1, 16: 1, 15: 1, 61: 1, 597: 1 }, ojn), o.bd = function(e, t) { + yEn(); + }, o.Fc = function(e) { + return jEn(); + }, o.cd = function(e, t) { + return EEn(); + }, o.Gc = function(e) { + return CEn(); + }, o.$b = function() { + MEn(); + }, o.Hc = function(e) { + return !1; + }, o.Ic = function(e) { + return !1; + }, o.Jc = function(e) { + qi(this, e); + }, o.Xb = function(e) { + return vX((Dn(), e)), null; + }, o.dd = function(e) { + return -1; + }, o.dc = function() { + return !0; + }, o.Kc = function() { + return this.a; + }, o.ed = function() { + return this.a; + }, o.fd = function(e) { + return this.a; + }, o.Ti = function(e, t) { + return TEn(); + }, o.Ui = function(e, t) { + AEn(); + }, o.Lc = function() { + return new Tn(null, new In(this, 16)); + }, o.gd = function(e) { + return SEn(); + }, o.Mc = function(e) { + return PEn(); + }, o.hd = function(e, t) { + return IEn(); + }, o.gc = function() { + return 0; + }, o.jd = function(e) { + od(this, e); + }, o.Nc = function() { + return new In(this, 16); + }, o.Oc = function() { + return new Tn(null, new In(this, 16)); + }, o.kd = function(e, t) { + return Dn(), new Ql(or, e, t); + }, o.Pc = function() { + return gW((Dn(), or)); + }, o.Qc = function(e) { + return Dn(), A5(or, e); + }, o.bk = function() { + return Dn(), Dn(), Vh; + }, w(ur, "ECollections/EmptyUnmodifiableEMap", 1347); + var xdn = Nt(ur, "Enumerator"), yO; + b(288, 1, { 288: 1 }, jF), o.Fb = function(e) { + var t; + return this === e ? !0 : D(e, 288) ? (t = u(e, 288), this.f == t.f && Ube(this.i, t.i) && WL(this.a, this.f & 256 ? t.f & 256 ? t.a : null : t.f & 256 ? null : t.a) && WL(this.d, t.d) && WL(this.g, t.g) && WL(this.e, t.e) && b9e(this, t)) : !1; + }, o.Hb = function() { + return this.f; + }, o.Ib = function() { + return gUn(this); + }, o.f = 0; + var Ooe = 0, Doe = 0, Loe = 0, Noe = 0, Fdn = 0, Bdn = 0, Rdn = 0, Kdn = 0, _dn = 0, $oe, D9 = 0, L9 = 0, xoe = 0, Foe = 0, jO, Hdn; + w(ur, "URI", 288), b(1121, 45, n2, sjn), o.zc = function(e, t) { + return u(Or(this, Oe(e), u(t, 288)), 288); + }, w(ur, "URI/URICache", 1121), b(506, 66, Eh, avn, sM), o.Si = function() { + return !0; + }, w(ur, "UniqueEList", 506), b(590, 63, Pl, eT), w(ur, "WrappedException", 590); + var Ue = Nt(ts, iJn), ng = Nt(ts, rJn), vu = Nt(ts, cJn), eg = Nt(ts, uJn), Cf = Nt(ts, oJn), As = Nt(ts, "EClass"), EU = Nt(ts, "EDataType"), Boe; + b(1233, 45, n2, fjn), o.xc = function(e) { + return Pi(e) ? $c(this, e) : Kr(gr(this.f, e)); + }, w(ts, "EDataType/Internal/ConversionDelegate/Factory/Registry/Impl", 1233); + var EO = Nt(ts, "EEnum"), Bl = Nt(ts, sJn), Er = Nt(ts, fJn), Ss = Nt(ts, hJn), Ps, jb = Nt(ts, lJn), tg = Nt(ts, aJn); + b(1042, 1, {}, lvn), o.Ib = function() { + return "NIL"; + }, w(ts, "EStructuralFeature/Internal/DynamicValueHolder/1", 1042); + var Roe; + b(1041, 45, n2, hjn), o.xc = function(e) { + return Pi(e) ? $c(this, e) : Kr(gr(this.f, e)); + }, w(ts, "EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl", 1041); + var fu = Nt(ts, dJn), R3 = Nt(ts, "EValidator/PatternMatcher"), qdn, Udn, Hn, S1, ig, La, Koe, _oe, Hoe, Na, P1, $a, Eb, Yf, qoe, Uoe, Is, I1, Goe, O1, rg, U2, lr, zoe, Xoe, Cb, CO = Nt(Tt, "FeatureMap/Entry"); + b(545, 1, { 76: 1 }, MC), o.Lk = function() { + return this.a; + }, o.md = function() { + return this.b; + }, w(qn, "BasicEObjectImpl/1", 545), b(1040, 1, TK, DMn), o.Fk = function(e) { + return YN(this.a, this.b, e); + }, o.Qj = function() { + return bOn(this.a, this.b); + }, o.Wb = function(e) { + rJ(this.a, this.b, e); + }, o.Gk = function() { + _we(this.a, this.b); + }, w(qn, "BasicEObjectImpl/4", 1040), b(2081, 1, { 114: 1 }), o.Mk = function(e) { + this.e = e == 0 ? Voe : K(yi, Bn, 1, e, 5, 1); + }, o.li = function(e) { + return this.e[e]; + }, o.mi = function(e, t) { + this.e[e] = t; + }, o.ni = function(e) { + this.e[e] = null; + }, o.Nk = function() { + return this.c; + }, o.Ok = function() { + throw M(new Pe()); + }, o.Pk = function() { + throw M(new Pe()); + }, o.Qk = function() { + return this.d; + }, o.Rk = function() { + return this.e != null; + }, o.Sk = function(e) { + this.c = e; + }, o.Tk = function(e) { + throw M(new Pe()); + }, o.Uk = function(e) { + throw M(new Pe()); + }, o.Vk = function(e) { + this.d = e; + }; + var Voe; + w(qn, "BasicEObjectImpl/EPropertiesHolderBaseImpl", 2081), b(192, 2081, { 114: 1 }, uf), o.Ok = function() { + return this.a; + }, o.Pk = function() { + return this.b; + }, o.Tk = function(e) { + this.a = e; + }, o.Uk = function(e) { + this.b = e; + }, w(qn, "BasicEObjectImpl/EPropertiesHolderImpl", 192), b(516, 99, bWn, ME), o.uh = function() { + return this.f; + }, o.zh = function() { + return this.k; + }, o.Bh = function(e, t) { + this.g = e, this.i = t; + }, o.Dh = function() { + return this.j & 2 ? this.$h().Nk() : this.ii(); + }, o.Fh = function() { + return this.i; + }, o.wh = function() { + return (this.j & 1) != 0; + }, o.Ph = function() { + return this.g; + }, o.Vh = function() { + return (this.j & 4) != 0; + }, o.$h = function() { + return !this.k && (this.k = new uf()), this.k; + }, o.ci = function(e) { + this.$h().Sk(e), e ? this.j |= 2 : this.j &= -3; + }, o.ei = function(e) { + this.$h().Uk(e), e ? this.j |= 4 : this.j &= -5; + }, o.ii = function() { + return (G1(), Hn).S; + }, o.i = 0, o.j = 1, w(qn, "EObjectImpl", 516), b(798, 516, { 110: 1, 94: 1, 93: 1, 58: 1, 114: 1, 54: 1, 99: 1 }, ZV), o.li = function(e) { + return this.e[e]; + }, o.mi = function(e, t) { + this.e[e] = t; + }, o.ni = function(e) { + this.e[e] = null; + }, o.Dh = function() { + return this.d; + }, o.Ih = function(e) { + return Ot(this.d, e); + }, o.Kh = function() { + return this.d; + }, o.Oh = function() { + return this.e != null; + }, o.$h = function() { + return !this.k && (this.k = new vvn()), this.k; + }, o.ci = function(e) { + this.d = e; + }, o.hi = function() { + var e; + return this.e == null && (e = se(this.d), this.e = e == 0 ? Woe : K(yi, Bn, 1, e, 5, 1)), this; + }, o.ji = function() { + return 0; + }; + var Woe; + w(qn, "DynamicEObjectImpl", 798), b(1522, 798, { 110: 1, 44: 1, 94: 1, 93: 1, 136: 1, 58: 1, 114: 1, 54: 1, 99: 1 }, zSn), o.Fb = function(e) { + return this === e; + }, o.Hb = function() { + return a0(this); + }, o.ci = function(e) { + this.d = e, this.b = oy(e, "key"), this.c = oy(e, g8); + }, o.Bi = function() { + var e; + return this.a == -1 && (e = l$(this, this.b), this.a = e == null ? 0 : mt(e)), this.a; + }, o.ld = function() { + return l$(this, this.b); + }, o.md = function() { + return l$(this, this.c); + }, o.Ci = function(e) { + this.a = e; + }, o.Di = function(e) { + rJ(this, this.b, e); + }, o.nd = function(e) { + var t; + return t = l$(this, this.c), rJ(this, this.c, e), t; + }, o.a = 0, w(qn, "DynamicEObjectImpl/BasicEMapEntry", 1522), b(1523, 1, { 114: 1 }, vvn), o.Mk = function(e) { + throw M(new Pe()); + }, o.li = function(e) { + throw M(new Pe()); + }, o.mi = function(e, t) { + throw M(new Pe()); + }, o.ni = function(e) { + throw M(new Pe()); + }, o.Nk = function() { + throw M(new Pe()); + }, o.Ok = function() { + return this.a; + }, o.Pk = function() { + return this.b; + }, o.Qk = function() { + return this.c; + }, o.Rk = function() { + throw M(new Pe()); + }, o.Sk = function(e) { + throw M(new Pe()); + }, o.Tk = function(e) { + this.a = e; + }, o.Uk = function(e) { + this.b = e; + }, o.Vk = function(e) { + this.c = e; + }, w(qn, "DynamicEObjectImpl/DynamicEPropertiesHolderImpl", 1523), b(519, 158, { 110: 1, 94: 1, 93: 1, 598: 1, 155: 1, 58: 1, 114: 1, 54: 1, 99: 1, 519: 1, 158: 1, 119: 1, 120: 1 }, tG), o.Ah = function(e) { + return PZ(this, e); + }, o.Lh = function(e, t, i) { + var r; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.d; + case 2: + return i ? (!this.b && (this.b = new lo((On(), lr), pc, this)), this.b) : (!this.b && (this.b = new lo((On(), lr), pc, this)), rk(this.b)); + case 3: + return vOn(this); + case 4: + return !this.a && (this.a = new ii(Oa, this, 4)), this.a; + case 5: + return !this.c && (this.c = new Eg(Oa, this, 5)), this.c; + } + return zo(this, e - se((On(), S1)), $n((r = u(Un(this, 16), 29), r || S1), e), t, i); + }, o.Sh = function(e, t, i) { + var r, c, s; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Vc(this.Ab, e, i); + case 3: + return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? PZ(this, i) : this.Cb.Th(this, -1 - c, null, i))), wW(this, u(e, 155), i); + } + return s = u($n((r = u(Un(this, 16), 29), r || (On(), S1)), t), 69), s.wk().zk(this, iu(this), t - se((On(), S1)), e, i); + }, o.Uh = function(e, t, i) { + var r, c; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), rr(this.Ab, e, i); + case 2: + return !this.b && (this.b = new lo((On(), lr), pc, this)), UC(this.b, e, i); + case 3: + return wW(this, null, i); + case 4: + return !this.a && (this.a = new ii(Oa, this, 4)), rr(this.a, e, i); + } + return c = u($n((r = u(Un(this, 16), 29), r || (On(), S1)), t), 69), c.wk().Ak(this, iu(this), t - se((On(), S1)), e, i); + }, o.Wh = function(e) { + var t; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.d != null; + case 2: + return !!this.b && this.b.f != 0; + case 3: + return !!vOn(this); + case 4: + return !!this.a && this.a.i != 0; + case 5: + return !!this.c && this.c.i != 0; + } + return Uo(this, e - se((On(), S1)), $n((t = u(Un(this, 16), 29), t || S1), e)); + }, o.bi = function(e, t) { + var i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + Obe(this, Oe(t)); + return; + case 2: + !this.b && (this.b = new lo((On(), lr), pc, this)), TT(this.b, t); + return; + case 3: + rqn(this, u(t, 155)); + return; + case 4: + !this.a && (this.a = new ii(Oa, this, 4)), me(this.a), !this.a && (this.a = new ii(Oa, this, 4)), Kt(this.a, u(t, 16)); + return; + case 5: + !this.c && (this.c = new Eg(Oa, this, 5)), me(this.c), !this.c && (this.c = new Eg(Oa, this, 5)), Kt(this.c, u(t, 16)); + return; + } + Jo(this, e - se((On(), S1)), $n((i = u(Un(this, 16), 29), i || S1), e), t); + }, o.ii = function() { + return On(), S1; + }, o.ki = function(e) { + var t; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + IQ(this, null); + return; + case 2: + !this.b && (this.b = new lo((On(), lr), pc, this)), this.b.c.$b(); + return; + case 3: + rqn(this, null); + return; + case 4: + !this.a && (this.a = new ii(Oa, this, 4)), me(this.a); + return; + case 5: + !this.c && (this.c = new Eg(Oa, this, 5)), me(this.c); + return; + } + Wo(this, e - se((On(), S1)), $n((t = u(Un(this, 16), 29), t || S1), e)); + }, o.Ib = function() { + return sBn(this); + }, o.d = null, w(qn, "EAnnotationImpl", 519), b(141, 721, Ucn, Pu), o.Gi = function(e, t) { + Wle(this, e, u(t, 44)); + }, o.Wk = function(e, t) { + return Qae(this, u(e, 44), t); + }, o.$i = function(e) { + return u(u(this.c, 71).$i(e), 136); + }, o.Ii = function() { + return u(this.c, 71).Ii(); + }, o.Ji = function() { + return u(this.c, 71).Ji(); + }, o.Ki = function(e) { + return u(this.c, 71).Ki(e); + }, o.Xk = function(e, t) { + return UC(this, e, t); + }, o.Fk = function(e) { + return u(this.c, 79).Fk(e); + }, o.ak = function() { + }, o.Qj = function() { + return u(this.c, 79).Qj(); + }, o.ck = function(e, t, i) { + var r; + return r = u(jo(this.b).wi().si(this.b), 136), r.Ci(e), r.Di(t), r.nd(i), r; + }, o.dk = function() { + return new BG(this); + }, o.Wb = function(e) { + TT(this, e); + }, o.Gk = function() { + u(this.c, 79).Gk(); + }, w(Tt, "EcoreEMap", 141), b(165, 141, Ucn, lo), o._j = function() { + var e, t, i, r, c, s; + if (this.d == null) { + for (s = K(Ndn, qcn, 66, 2 * this.f + 1, 0, 1), i = this.c.Kc(); i.e != i.i.gc(); ) + t = u(i.Yj(), 136), r = t.Bi(), c = (r & et) % s.length, e = s[c], !e && (e = s[c] = new BG(this)), e.Fc(t); + this.d = s; + } + }, w(qn, "EAnnotationImpl/1", 165), b(292, 448, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 114: 1, 481: 1, 54: 1, 99: 1, 158: 1, 292: 1, 119: 1, 120: 1 }), o.Lh = function(e, t, i) { + var r, c; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return _n(), !!(this.Bb & 256); + case 3: + return _n(), !!(this.Bb & 512); + case 4: + return Y(this.s); + case 5: + return Y(this.t); + case 6: + return _n(), !!this.Jk(); + case 7: + return _n(), c = this.s, c >= 1; + case 8: + return t ? gs(this) : this.r; + case 9: + return this.q; + } + return zo(this, e - se(this.ii()), $n((r = u(Un(this, 16), 29), r || this.ii()), e), t, i); + }, o.Uh = function(e, t, i) { + var r, c; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), rr(this.Ab, e, i); + case 9: + return hN(this, i); + } + return c = u($n((r = u(Un(this, 16), 29), r || this.ii()), t), 69), c.wk().Ak(this, iu(this), t - se(this.ii()), e, i); + }, o.Wh = function(e) { + var t, i; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return (this.Bb & 256) == 0; + case 3: + return (this.Bb & 512) == 0; + case 4: + return this.s != 0; + case 5: + return this.t != 1; + case 6: + return this.Jk(); + case 7: + return i = this.s, i >= 1; + case 8: + return !!this.r && !this.q.e && k0(this.q).i == 0; + case 9: + return !!this.q && !(this.r && !this.q.e && k0(this.q).i == 0); + } + return Uo(this, e - se(this.ii()), $n((t = u(Un(this, 16), 29), t || this.ii()), e)); + }, o.bi = function(e, t) { + var i, r; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + this.ui(Oe(t)); + return; + case 2: + u1(this, on(un(t))); + return; + case 3: + o1(this, on(un(t))); + return; + case 4: + t1(this, u(t, 17).a); + return; + case 5: + this.Zk(u(t, 17).a); + return; + case 8: + dd(this, u(t, 142)); + return; + case 9: + r = Ff(this, u(t, 89), null), r && r.oj(); + return; + } + Jo(this, e - se(this.ii()), $n((i = u(Un(this, 16), 29), i || this.ii()), e), t); + }, o.ii = function() { + return On(), Xoe; + }, o.ki = function(e) { + var t, i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + this.ui(null); + return; + case 2: + u1(this, !0); + return; + case 3: + o1(this, !0); + return; + case 4: + t1(this, 0); + return; + case 5: + this.Zk(1); + return; + case 8: + dd(this, null); + return; + case 9: + i = Ff(this, null, null), i && i.oj(); + return; + } + Wo(this, e - se(this.ii()), $n((t = u(Un(this, 16), 29), t || this.ii()), e)); + }, o.pi = function() { + gs(this), this.Bb |= 1; + }, o.Hk = function() { + return gs(this); + }, o.Ik = function() { + return this.t; + }, o.Jk = function() { + var e; + return e = this.t, e > 1 || e == -1; + }, o.Si = function() { + return (this.Bb & 512) != 0; + }, o.Yk = function(e, t) { + return EY(this, e, t); + }, o.Zk = function(e) { + nw(this, e); + }, o.Ib = function() { + return Knn(this); + }, o.s = 0, o.t = 1, w(qn, "ETypedElementImpl", 292), b(462, 292, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 179: 1, 69: 1, 114: 1, 481: 1, 54: 1, 99: 1, 158: 1, 462: 1, 292: 1, 119: 1, 120: 1, 692: 1 }), o.Ah = function(e) { + return QRn(this, e); + }, o.Lh = function(e, t, i) { + var r, c; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return _n(), !!(this.Bb & 256); + case 3: + return _n(), !!(this.Bb & 512); + case 4: + return Y(this.s); + case 5: + return Y(this.t); + case 6: + return _n(), !!this.Jk(); + case 7: + return _n(), c = this.s, c >= 1; + case 8: + return t ? gs(this) : this.r; + case 9: + return this.q; + case 10: + return _n(), !!(this.Bb & Gs); + case 11: + return _n(), !!(this.Bb & Aw); + case 12: + return _n(), !!(this.Bb & kw); + case 13: + return this.j; + case 14: + return Mm(this); + case 15: + return _n(), !!(this.Bb & Nu); + case 16: + return _n(), !!(this.Bb & bh); + case 17: + return zb(this); + } + return zo(this, e - se(this.ii()), $n((r = u(Un(this, 16), 29), r || this.ii()), e), t, i); + }, o.Sh = function(e, t, i) { + var r, c, s; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Vc(this.Ab, e, i); + case 17: + return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? QRn(this, i) : this.Cb.Th(this, -1 - c, null, i))), So(this, e, 17, i); + } + return s = u($n((r = u(Un(this, 16), 29), r || this.ii()), t), 69), s.wk().zk(this, iu(this), t - se(this.ii()), e, i); + }, o.Uh = function(e, t, i) { + var r, c; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), rr(this.Ab, e, i); + case 9: + return hN(this, i); + case 17: + return So(this, null, 17, i); + } + return c = u($n((r = u(Un(this, 16), 29), r || this.ii()), t), 69), c.wk().Ak(this, iu(this), t - se(this.ii()), e, i); + }, o.Wh = function(e) { + var t, i; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return (this.Bb & 256) == 0; + case 3: + return (this.Bb & 512) == 0; + case 4: + return this.s != 0; + case 5: + return this.t != 1; + case 6: + return this.Jk(); + case 7: + return i = this.s, i >= 1; + case 8: + return !!this.r && !this.q.e && k0(this.q).i == 0; + case 9: + return !!this.q && !(this.r && !this.q.e && k0(this.q).i == 0); + case 10: + return (this.Bb & Gs) == 0; + case 11: + return (this.Bb & Aw) != 0; + case 12: + return (this.Bb & kw) != 0; + case 13: + return this.j != null; + case 14: + return Mm(this) != null; + case 15: + return (this.Bb & Nu) != 0; + case 16: + return (this.Bb & bh) != 0; + case 17: + return !!zb(this); + } + return Uo(this, e - se(this.ii()), $n((t = u(Un(this, 16), 29), t || this.ii()), e)); + }, o.bi = function(e, t) { + var i, r; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + FN(this, Oe(t)); + return; + case 2: + u1(this, on(un(t))); + return; + case 3: + o1(this, on(un(t))); + return; + case 4: + t1(this, u(t, 17).a); + return; + case 5: + this.Zk(u(t, 17).a); + return; + case 8: + dd(this, u(t, 142)); + return; + case 9: + r = Ff(this, u(t, 89), null), r && r.oj(); + return; + case 10: + sm(this, on(un(t))); + return; + case 11: + lm(this, on(un(t))); + return; + case 12: + fm(this, on(un(t))); + return; + case 13: + wX(this, Oe(t)); + return; + case 15: + hm(this, on(un(t))); + return; + case 16: + am(this, on(un(t))); + return; + } + Jo(this, e - se(this.ii()), $n((i = u(Un(this, 16), 29), i || this.ii()), e), t); + }, o.ii = function() { + return On(), zoe; + }, o.ki = function(e) { + var t, i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + D(this.Cb, 90) && lw(Yu(u(this.Cb, 90)), 4), Xc(this, null); + return; + case 2: + u1(this, !0); + return; + case 3: + o1(this, !0); + return; + case 4: + t1(this, 0); + return; + case 5: + this.Zk(1); + return; + case 8: + dd(this, null); + return; + case 9: + i = Ff(this, null, null), i && i.oj(); + return; + case 10: + sm(this, !0); + return; + case 11: + lm(this, !1); + return; + case 12: + fm(this, !1); + return; + case 13: + this.i = null, kT(this, null); + return; + case 15: + hm(this, !1); + return; + case 16: + am(this, !1); + return; + } + Wo(this, e - se(this.ii()), $n((t = u(Un(this, 16), 29), t || this.ii()), e)); + }, o.pi = function() { + S4(Dr((Ou(), zi), this)), gs(this), this.Bb |= 1; + }, o.pk = function() { + return this.f; + }, o.ik = function() { + return Mm(this); + }, o.qk = function() { + return zb(this); + }, o.uk = function() { + return null; + }, o.$k = function() { + return this.k; + }, o.Lj = function() { + return this.n; + }, o.vk = function() { + return bA(this); + }, o.wk = function() { + var e, t, i, r, c, s, f, h, l; + return this.p || (i = zb(this), (i.i == null && dh(i), i.i).length, r = this.uk(), r && se(zb(r)), c = gs(this), f = c.kk(), e = f ? f.i & 1 ? f == oo ? zt : f == ye ? Gi : f == ug ? ov : f == Oi ? fi : f == Fa ? ib : f == V2 ? rb : f == xu ? p3 : A8 : f : null, t = Mm(this), h = c.ik(), G5e(this), this.Bb & bh && ((s = xZ((Ou(), zi), i)) && s != this || (s = $p(Dr(zi, this)))) ? this.p = new NMn(this, s) : this.Jk() ? this.al() ? r ? this.Bb & Nu ? e ? this.bl() ? this.p = new nd(47, e, this, r) : this.p = new nd(5, e, this, r) : this.bl() ? this.p = new cd(46, this, r) : this.p = new cd(4, this, r) : e ? this.bl() ? this.p = new nd(49, e, this, r) : this.p = new nd(7, e, this, r) : this.bl() ? this.p = new cd(48, this, r) : this.p = new cd(6, this, r) : this.Bb & Nu ? e ? e == Id ? this.p = new Vl(50, Soe, this) : this.bl() ? this.p = new Vl(43, e, this) : this.p = new Vl(1, e, this) : this.bl() ? this.p = new Jl(42, this) : this.p = new Jl(0, this) : e ? e == Id ? this.p = new Vl(41, Soe, this) : this.bl() ? this.p = new Vl(45, e, this) : this.p = new Vl(3, e, this) : this.bl() ? this.p = new Jl(44, this) : this.p = new Jl(2, this) : D(c, 156) ? e == CO ? this.p = new Jl(40, this) : this.Bb & 512 ? this.Bb & Nu ? e ? this.p = new Vl(9, e, this) : this.p = new Jl(8, this) : e ? this.p = new Vl(11, e, this) : this.p = new Jl(10, this) : this.Bb & Nu ? e ? this.p = new Vl(13, e, this) : this.p = new Jl(12, this) : e ? this.p = new Vl(15, e, this) : this.p = new Jl(14, this) : r ? (l = r.t, l > 1 || l == -1 ? this.bl() ? this.Bb & Nu ? e ? this.p = new nd(25, e, this, r) : this.p = new cd(24, this, r) : e ? this.p = new nd(27, e, this, r) : this.p = new cd(26, this, r) : this.Bb & Nu ? e ? this.p = new nd(29, e, this, r) : this.p = new cd(28, this, r) : e ? this.p = new nd(31, e, this, r) : this.p = new cd(30, this, r) : this.bl() ? this.Bb & Nu ? e ? this.p = new nd(33, e, this, r) : this.p = new cd(32, this, r) : e ? this.p = new nd(35, e, this, r) : this.p = new cd(34, this, r) : this.Bb & Nu ? e ? this.p = new nd(37, e, this, r) : this.p = new cd(36, this, r) : e ? this.p = new nd(39, e, this, r) : this.p = new cd(38, this, r)) : this.bl() ? this.Bb & Nu ? e ? this.p = new Vl(17, e, this) : this.p = new Jl(16, this) : e ? this.p = new Vl(19, e, this) : this.p = new Jl(18, this) : this.Bb & Nu ? e ? this.p = new Vl(21, e, this) : this.p = new Jl(20, this) : e ? this.p = new Vl(23, e, this) : this.p = new Jl(22, this) : this._k() ? this.bl() ? this.p = new jSn(u(c, 29), this, r) : this.p = new tJ(u(c, 29), this, r) : D(c, 156) ? e == CO ? this.p = new Jl(40, this) : this.Bb & Nu ? e ? this.p = new yPn(t, h, this, (gx(), f == ye ? Qdn : f == oo ? zdn : f == Fa ? Ydn : f == ug ? Jdn : f == Oi ? Wdn : f == V2 ? Zdn : f == xu ? Xdn : f == fs ? Vdn : TU)) : this.p = new NIn(u(c, 156), t, h, this) : e ? this.p = new kPn(t, h, this, (gx(), f == ye ? Qdn : f == oo ? zdn : f == Fa ? Ydn : f == ug ? Jdn : f == Oi ? Wdn : f == V2 ? Zdn : f == xu ? Xdn : f == fs ? Vdn : TU)) : this.p = new LIn(u(c, 156), t, h, this) : this.al() ? r ? this.Bb & Nu ? this.bl() ? this.p = new CSn(u(c, 29), this, r) : this.p = new _V(u(c, 29), this, r) : this.bl() ? this.p = new ESn(u(c, 29), this, r) : this.p = new HL(u(c, 29), this, r) : this.Bb & Nu ? this.bl() ? this.p = new kAn(u(c, 29), this) : this.p = new eV(u(c, 29), this) : this.bl() ? this.p = new vAn(u(c, 29), this) : this.p = new PL(u(c, 29), this) : this.bl() ? r ? this.Bb & Nu ? this.p = new MSn(u(c, 29), this, r) : this.p = new RV(u(c, 29), this, r) : this.Bb & Nu ? this.p = new yAn(u(c, 29), this) : this.p = new tV(u(c, 29), this) : r ? this.Bb & Nu ? this.p = new TSn(u(c, 29), this, r) : this.p = new KV(u(c, 29), this, r) : this.Bb & Nu ? this.p = new jAn(u(c, 29), this) : this.p = new oM(u(c, 29), this)), this.p; + }, o.rk = function() { + return (this.Bb & Gs) != 0; + }, o._k = function() { + return !1; + }, o.al = function() { + return !1; + }, o.sk = function() { + return (this.Bb & bh) != 0; + }, o.xk = function() { + return a$(this); + }, o.bl = function() { + return !1; + }, o.tk = function() { + return (this.Bb & Nu) != 0; + }, o.cl = function(e) { + this.k = e; + }, o.ui = function(e) { + FN(this, e); + }, o.Ib = function() { + return $A(this); + }, o.e = !1, o.n = 0, w(qn, "EStructuralFeatureImpl", 462), b(331, 462, { 110: 1, 94: 1, 93: 1, 35: 1, 155: 1, 197: 1, 58: 1, 179: 1, 69: 1, 114: 1, 481: 1, 54: 1, 99: 1, 331: 1, 158: 1, 462: 1, 292: 1, 119: 1, 120: 1, 692: 1 }, fD), o.Lh = function(e, t, i) { + var r, c; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return _n(), !!(this.Bb & 256); + case 3: + return _n(), !!(this.Bb & 512); + case 4: + return Y(this.s); + case 5: + return Y(this.t); + case 6: + return _n(), !!Nnn(this); + case 7: + return _n(), c = this.s, c >= 1; + case 8: + return t ? gs(this) : this.r; + case 9: + return this.q; + case 10: + return _n(), !!(this.Bb & Gs); + case 11: + return _n(), !!(this.Bb & Aw); + case 12: + return _n(), !!(this.Bb & kw); + case 13: + return this.j; + case 14: + return Mm(this); + case 15: + return _n(), !!(this.Bb & Nu); + case 16: + return _n(), !!(this.Bb & bh); + case 17: + return zb(this); + case 18: + return _n(), !!(this.Bb & kc); + case 19: + return t ? x$(this) : FLn(this); + } + return zo(this, e - se((On(), ig)), $n((r = u(Un(this, 16), 29), r || ig), e), t, i); + }, o.Wh = function(e) { + var t, i; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return (this.Bb & 256) == 0; + case 3: + return (this.Bb & 512) == 0; + case 4: + return this.s != 0; + case 5: + return this.t != 1; + case 6: + return Nnn(this); + case 7: + return i = this.s, i >= 1; + case 8: + return !!this.r && !this.q.e && k0(this.q).i == 0; + case 9: + return !!this.q && !(this.r && !this.q.e && k0(this.q).i == 0); + case 10: + return (this.Bb & Gs) == 0; + case 11: + return (this.Bb & Aw) != 0; + case 12: + return (this.Bb & kw) != 0; + case 13: + return this.j != null; + case 14: + return Mm(this) != null; + case 15: + return (this.Bb & Nu) != 0; + case 16: + return (this.Bb & bh) != 0; + case 17: + return !!zb(this); + case 18: + return (this.Bb & kc) != 0; + case 19: + return !!FLn(this); + } + return Uo(this, e - se((On(), ig)), $n((t = u(Un(this, 16), 29), t || ig), e)); + }, o.bi = function(e, t) { + var i, r; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + FN(this, Oe(t)); + return; + case 2: + u1(this, on(un(t))); + return; + case 3: + o1(this, on(un(t))); + return; + case 4: + t1(this, u(t, 17).a); + return; + case 5: + nEn(this, u(t, 17).a); + return; + case 8: + dd(this, u(t, 142)); + return; + case 9: + r = Ff(this, u(t, 89), null), r && r.oj(); + return; + case 10: + sm(this, on(un(t))); + return; + case 11: + lm(this, on(un(t))); + return; + case 12: + fm(this, on(un(t))); + return; + case 13: + wX(this, Oe(t)); + return; + case 15: + hm(this, on(un(t))); + return; + case 16: + am(this, on(un(t))); + return; + case 18: + sx(this, on(un(t))); + return; + } + Jo(this, e - se((On(), ig)), $n((i = u(Un(this, 16), 29), i || ig), e), t); + }, o.ii = function() { + return On(), ig; + }, o.ki = function(e) { + var t, i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + D(this.Cb, 90) && lw(Yu(u(this.Cb, 90)), 4), Xc(this, null); + return; + case 2: + u1(this, !0); + return; + case 3: + o1(this, !0); + return; + case 4: + t1(this, 0); + return; + case 5: + this.b = 0, nw(this, 1); + return; + case 8: + dd(this, null); + return; + case 9: + i = Ff(this, null, null), i && i.oj(); + return; + case 10: + sm(this, !0); + return; + case 11: + lm(this, !1); + return; + case 12: + fm(this, !1); + return; + case 13: + this.i = null, kT(this, null); + return; + case 15: + hm(this, !1); + return; + case 16: + am(this, !1); + return; + case 18: + sx(this, !1); + return; + } + Wo(this, e - se((On(), ig)), $n((t = u(Un(this, 16), 29), t || ig), e)); + }, o.pi = function() { + x$(this), S4(Dr((Ou(), zi), this)), gs(this), this.Bb |= 1; + }, o.Jk = function() { + return Nnn(this); + }, o.Yk = function(e, t) { + return this.b = 0, this.a = null, EY(this, e, t); + }, o.Zk = function(e) { + nEn(this, e); + }, o.Ib = function() { + var e; + return this.Db & 64 ? $A(this) : (e = new ls($A(this)), e.a += " (iD: ", Ul(e, (this.Bb & kc) != 0), e.a += ")", e.a); + }, o.b = 0, w(qn, "EAttributeImpl", 331), b(364, 448, { 110: 1, 94: 1, 93: 1, 142: 1, 155: 1, 197: 1, 58: 1, 114: 1, 54: 1, 99: 1, 364: 1, 158: 1, 119: 1, 120: 1, 691: 1 }), o.dl = function(e) { + return e.Dh() == this; + }, o.Ah = function(e) { + return _x(this, e); + }, o.Bh = function(e, t) { + this.w = null, this.Db = t << 16 | this.Db & 255, this.Cb = e; + }, o.Lh = function(e, t, i) { + var r; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return this.D != null ? this.D : this.B; + case 3: + return _0(this); + case 4: + return this.ik(); + case 5: + return this.F; + case 6: + return t ? jo(this) : O4(this); + case 7: + return !this.A && (this.A = new Mu(fu, this, 7)), this.A; + } + return zo(this, e - se(this.ii()), $n((r = u(Un(this, 16), 29), r || this.ii()), e), t, i); + }, o.Sh = function(e, t, i) { + var r, c, s; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Vc(this.Ab, e, i); + case 6: + return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? _x(this, i) : this.Cb.Th(this, -1 - c, null, i))), So(this, e, 6, i); + } + return s = u($n((r = u(Un(this, 16), 29), r || this.ii()), t), 69), s.wk().zk(this, iu(this), t - se(this.ii()), e, i); + }, o.Uh = function(e, t, i) { + var r, c; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), rr(this.Ab, e, i); + case 6: + return So(this, null, 6, i); + case 7: + return !this.A && (this.A = new Mu(fu, this, 7)), rr(this.A, e, i); + } + return c = u($n((r = u(Un(this, 16), 29), r || this.ii()), t), 69), c.wk().Ak(this, iu(this), t - se(this.ii()), e, i); + }, o.Wh = function(e) { + var t; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return this.D != null && this.D == this.F; + case 3: + return !!_0(this); + case 4: + return this.ik() != null; + case 5: + return this.F != null && this.F != this.D && this.F != this.B; + case 6: + return !!O4(this); + case 7: + return !!this.A && this.A.i != 0; + } + return Uo(this, e - se(this.ii()), $n((t = u(Un(this, 16), 29), t || this.ii()), e)); + }, o.bi = function(e, t) { + var i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + xM(this, Oe(t)); + return; + case 2: + wL(this, Oe(t)); + return; + case 5: + Dm(this, Oe(t)); + return; + case 7: + !this.A && (this.A = new Mu(fu, this, 7)), me(this.A), !this.A && (this.A = new Mu(fu, this, 7)), Kt(this.A, u(t, 16)); + return; + } + Jo(this, e - se(this.ii()), $n((i = u(Un(this, 16), 29), i || this.ii()), e), t); + }, o.ii = function() { + return On(), Koe; + }, o.ki = function(e) { + var t; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + D(this.Cb, 184) && (u(this.Cb, 184).tb = null), Xc(this, null); + return; + case 2: + cm(this, null), U4(this, this.D); + return; + case 5: + Dm(this, null); + return; + case 7: + !this.A && (this.A = new Mu(fu, this, 7)), me(this.A); + return; + } + Wo(this, e - se(this.ii()), $n((t = u(Un(this, 16), 29), t || this.ii()), e)); + }, o.hk = function() { + var e; + return this.G == -1 && (this.G = (e = jo(this), e ? h1(e.vi(), this) : -1)), this.G; + }, o.ik = function() { + return null; + }, o.jk = function() { + return jo(this); + }, o.el = function() { + return this.v; + }, o.kk = function() { + return _0(this); + }, o.lk = function() { + return this.D != null ? this.D : this.B; + }, o.mk = function() { + return this.F; + }, o.fk = function(e) { + return OF(this, e); + }, o.fl = function(e) { + this.v = e; + }, o.gl = function(e) { + yxn(this, e); + }, o.hl = function(e) { + this.C = e; + }, o.ui = function(e) { + xM(this, e); + }, o.Ib = function() { + return UT(this); + }, o.C = null, o.D = null, o.G = -1, w(qn, "EClassifierImpl", 364), b(90, 364, { 110: 1, 94: 1, 93: 1, 29: 1, 142: 1, 155: 1, 197: 1, 58: 1, 114: 1, 54: 1, 99: 1, 90: 1, 364: 1, 158: 1, 482: 1, 119: 1, 120: 1, 691: 1 }, uG), o.dl = function(e) { + return Nae(this, e.Dh()); + }, o.Lh = function(e, t, i) { + var r; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return this.D != null ? this.D : this.B; + case 3: + return _0(this); + case 4: + return null; + case 5: + return this.F; + case 6: + return t ? jo(this) : O4(this); + case 7: + return !this.A && (this.A = new Mu(fu, this, 7)), this.A; + case 8: + return _n(), !!(this.Bb & 256); + case 9: + return _n(), !!(this.Bb & 512); + case 10: + return Hr(this); + case 11: + return !this.q && (this.q = new q(Ss, this, 11, 10)), this.q; + case 12: + return Jg(this); + case 13: + return U5(this); + case 14: + return U5(this), this.r; + case 15: + return Jg(this), this.k; + case 16: + return Enn(this); + case 17: + return $F(this); + case 18: + return dh(this); + case 19: + return TA(this); + case 20: + return Jg(this), this.o; + case 21: + return !this.s && (this.s = new q(vu, this, 21, 17)), this.s; + case 22: + return Pc(this); + case 23: + return yF(this); + } + return zo(this, e - se((On(), La)), $n((r = u(Un(this, 16), 29), r || La), e), t, i); + }, o.Sh = function(e, t, i) { + var r, c, s; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Vc(this.Ab, e, i); + case 6: + return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? _x(this, i) : this.Cb.Th(this, -1 - c, null, i))), So(this, e, 6, i); + case 11: + return !this.q && (this.q = new q(Ss, this, 11, 10)), Vc(this.q, e, i); + case 21: + return !this.s && (this.s = new q(vu, this, 21, 17)), Vc(this.s, e, i); + } + return s = u($n((r = u(Un(this, 16), 29), r || (On(), La)), t), 69), s.wk().zk(this, iu(this), t - se((On(), La)), e, i); + }, o.Uh = function(e, t, i) { + var r, c; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), rr(this.Ab, e, i); + case 6: + return So(this, null, 6, i); + case 7: + return !this.A && (this.A = new Mu(fu, this, 7)), rr(this.A, e, i); + case 11: + return !this.q && (this.q = new q(Ss, this, 11, 10)), rr(this.q, e, i); + case 21: + return !this.s && (this.s = new q(vu, this, 21, 17)), rr(this.s, e, i); + case 22: + return rr(Pc(this), e, i); + } + return c = u($n((r = u(Un(this, 16), 29), r || (On(), La)), t), 69), c.wk().Ak(this, iu(this), t - se((On(), La)), e, i); + }, o.Wh = function(e) { + var t; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return this.D != null && this.D == this.F; + case 3: + return !!_0(this); + case 4: + return !1; + case 5: + return this.F != null && this.F != this.D && this.F != this.B; + case 6: + return !!O4(this); + case 7: + return !!this.A && this.A.i != 0; + case 8: + return (this.Bb & 256) != 0; + case 9: + return (this.Bb & 512) != 0; + case 10: + return !!this.u && Pc(this.u.a).i != 0 && !(this.n && Ix(this.n)); + case 11: + return !!this.q && this.q.i != 0; + case 12: + return Jg(this).i != 0; + case 13: + return U5(this).i != 0; + case 14: + return U5(this), this.r.i != 0; + case 15: + return Jg(this), this.k.i != 0; + case 16: + return Enn(this).i != 0; + case 17: + return $F(this).i != 0; + case 18: + return dh(this).i != 0; + case 19: + return TA(this).i != 0; + case 20: + return Jg(this), !!this.o; + case 21: + return !!this.s && this.s.i != 0; + case 22: + return !!this.n && Ix(this.n); + case 23: + return yF(this).i != 0; + } + return Uo(this, e - se((On(), La)), $n((t = u(Un(this, 16), 29), t || La), e)); + }, o.Zh = function(e) { + var t; + return t = this.i == null || this.q && this.q.i != 0 ? null : oy(this, e), t || ctn(this, e); + }, o.bi = function(e, t) { + var i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + xM(this, Oe(t)); + return; + case 2: + wL(this, Oe(t)); + return; + case 5: + Dm(this, Oe(t)); + return; + case 7: + !this.A && (this.A = new Mu(fu, this, 7)), me(this.A), !this.A && (this.A = new Mu(fu, this, 7)), Kt(this.A, u(t, 16)); + return; + case 8: + CY(this, on(un(t))); + return; + case 9: + MY(this, on(un(t))); + return; + case 10: + X5(Hr(this)), Kt(Hr(this), u(t, 16)); + return; + case 11: + !this.q && (this.q = new q(Ss, this, 11, 10)), me(this.q), !this.q && (this.q = new q(Ss, this, 11, 10)), Kt(this.q, u(t, 16)); + return; + case 21: + !this.s && (this.s = new q(vu, this, 21, 17)), me(this.s), !this.s && (this.s = new q(vu, this, 21, 17)), Kt(this.s, u(t, 16)); + return; + case 22: + me(Pc(this)), Kt(Pc(this), u(t, 16)); + return; + } + Jo(this, e - se((On(), La)), $n((i = u(Un(this, 16), 29), i || La), e), t); + }, o.ii = function() { + return On(), La; + }, o.ki = function(e) { + var t; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + D(this.Cb, 184) && (u(this.Cb, 184).tb = null), Xc(this, null); + return; + case 2: + cm(this, null), U4(this, this.D); + return; + case 5: + Dm(this, null); + return; + case 7: + !this.A && (this.A = new Mu(fu, this, 7)), me(this.A); + return; + case 8: + CY(this, !1); + return; + case 9: + MY(this, !1); + return; + case 10: + this.u && X5(this.u); + return; + case 11: + !this.q && (this.q = new q(Ss, this, 11, 10)), me(this.q); + return; + case 21: + !this.s && (this.s = new q(vu, this, 21, 17)), me(this.s); + return; + case 22: + this.n && me(this.n); + return; + } + Wo(this, e - se((On(), La)), $n((t = u(Un(this, 16), 29), t || La), e)); + }, o.pi = function() { + var e, t; + if (Jg(this), U5(this), Enn(this), $F(this), dh(this), TA(this), yF(this), e5(ube(Yu(this))), this.s) + for (e = 0, t = this.s.i; e < t; ++e) + T7(L(this.s, e)); + if (this.q) + for (e = 0, t = this.q.i; e < t; ++e) + T7(L(this.q, e)); + c1((Ou(), zi), this).xe(), this.Bb |= 1; + }, o.Ib = function() { + return qZ(this); + }, o.k = null, o.r = null; + var N9, Joe, CU; + w(qn, "EClassImpl", 90), b(2092, 2091, gJn), o.Ei = function(e, t) { + return DF(this, e, t); + }, o.Fi = function(e) { + return DF(this, this.i, e); + }, o.Gi = function(e, t) { + Rnn(this, e, t); + }, o.Hi = function(e) { + aF(this, e); + }, o.Wk = function(e, t) { + return Vc(this, e, t); + }, o.$i = function(e) { + return nQ(this, e); + }, o.Xk = function(e, t) { + return rr(this, e, t); + }, o.Xi = function(e, t) { + return XUn(this, e, t); + }, o.Ii = function() { + return new yp(this); + }, o.Ji = function() { + return new M7(this); + }, o.Ki = function(e) { + return pk(this, e); + }, w(Tt, "NotifyingInternalEListImpl", 2092), b(632, 2092, Qr), o.Hc = function(e) { + return bGn(this, e); + }, o.Ij = function(e, t, i, r, c) { + return W6(this, e, t, i, r, c); + }, o.Jj = function(e) { + e4(this, e); + }, o.Fk = function(e) { + return this; + }, o.Lk = function() { + return $n(this.e.Dh(), this.Lj()); + }, o.Kj = function() { + return this.Lk(); + }, o.Lj = function() { + return Ot(this.e.Dh(), this.Lk()); + }, o.il = function() { + return u(this.Lk().Hk(), 29).kk(); + }, o.jl = function() { + return br(u(this.Lk(), 19)).n; + }, o.jj = function() { + return this.e; + }, o.kl = function() { + return !0; + }, o.ll = function() { + return !1; + }, o.ml = function() { + return !1; + }, o.nl = function() { + return !1; + }, o.dd = function(e) { + return h1(this, e); + }, o.Nj = function(e, t) { + var i; + return i = u(e, 54), this.ml() ? this.kl() ? i.Rh(this.e, this.jl(), this.il(), t) : i.Rh(this.e, Ot(i.Dh(), br(u(this.Lk(), 19))), null, t) : i.Rh(this.e, -1 - this.Lj(), null, t); + }, o.Oj = function(e, t) { + var i; + return i = u(e, 54), this.ml() ? this.kl() ? i.Th(this.e, this.jl(), this.il(), t) : i.Th(this.e, Ot(i.Dh(), br(u(this.Lk(), 19))), null, t) : i.Th(this.e, -1 - this.Lj(), null, t); + }, o.al = function() { + return !1; + }, o.ol = function() { + return !0; + }, o.fk = function(e) { + return BDn(this.d, e); + }, o.Pj = function() { + return fo(this.e); + }, o.Qj = function() { + return this.i != 0; + }, o.aj = function(e) { + return gk(this.d, e); + }, o.Wi = function(e, t) { + return this.ol() && this.nl() ? e3(this, e, u(t, 58)) : t; + }, o.pl = function(e) { + return e.Vh() ? ea(this.e, u(e, 54)) : e; + }, o.Wb = function(e) { + OTn(this, e); + }, o.Pc = function() { + return LNn(this); + }, o.Qc = function(e) { + var t; + if (this.nl()) + for (t = this.i - 1; t >= 0; --t) + L(this, t); + return WY(this, e); + }, o.Gk = function() { + me(this); + }, o.Zi = function(e, t) { + return q$n(this, e, t); + }, w(Tt, "EcoreEList", 632), b(505, 632, Qr, F7), o.Li = function() { + return !1; + }, o.Lj = function() { + return this.c; + }, o.Mj = function() { + return !1; + }, o.ol = function() { + return !0; + }, o.Si = function() { + return !0; + }, o.Wi = function(e, t) { + return t; + }, o.Yi = function() { + return !1; + }, o.c = 0, w(Tt, "EObjectEList", 505), b(83, 505, Qr, ii), o.Mj = function() { + return !0; + }, o.ml = function() { + return !1; + }, o.al = function() { + return !0; + }, w(Tt, "EObjectContainmentEList", 83), b(555, 83, Qr, $C), o.Ni = function() { + this.b = !0; + }, o.Qj = function() { + return this.b; + }, o.Gk = function() { + var e; + me(this), fo(this.e) ? (e = this.b, this.b = !1, it(this.e, new Rs(this.e, 2, this.c, e, !1))) : this.b = !1; + }, o.b = !1, w(Tt, "EObjectContainmentEList/Unsettable", 555), b(1161, 555, Qr, mPn), o.Ti = function(e, t) { + var i, r; + return i = u(k5(this, e, t), 89), fo(this.e) && e4(this, new ck(this.a, 7, (On(), _oe), Y(t), (r = i.c, D(r, 90) ? u(r, 29) : Is), e)), i; + }, o.Uj = function(e, t) { + return A8e(this, u(e, 89), t); + }, o.Vj = function(e, t) { + return T8e(this, u(e, 89), t); + }, o.Wj = function(e, t, i) { + return Ike(this, u(e, 89), u(t, 89), i); + }, o.Ij = function(e, t, i, r, c) { + switch (e) { + case 3: + return W6(this, e, t, i, r, this.i > 1); + case 5: + return W6(this, e, t, i, r, this.i - u(i, 15).gc() > 0); + default: + return new ml(this.e, e, this.c, t, i, r, !0); + } + }, o.Tj = function() { + return !0; + }, o.Qj = function() { + return Ix(this); + }, o.Gk = function() { + me(this); + }, w(qn, "EClassImpl/1", 1161), b(1175, 1174, Hcn), o.dj = function(e) { + var t, i, r, c, s, f, h; + if (i = e.gj(), i != 8) { + if (r = s9e(e), r == 0) + switch (i) { + case 1: + case 9: { + h = e.kj(), h != null && (t = Yu(u(h, 482)), !t.c && (t.c = new V3()), rT(t.c, e.jj())), f = e.ij(), f != null && (c = u(f, 482), c.Bb & 1 || (t = Yu(c), !t.c && (t.c = new V3()), ve(t.c, u(e.jj(), 29)))); + break; + } + case 3: { + f = e.ij(), f != null && (c = u(f, 482), c.Bb & 1 || (t = Yu(c), !t.c && (t.c = new V3()), ve(t.c, u(e.jj(), 29)))); + break; + } + case 5: { + if (f = e.ij(), f != null) + for (s = u(f, 16).Kc(); s.Ob(); ) + c = u(s.Pb(), 482), c.Bb & 1 || (t = Yu(c), !t.c && (t.c = new V3()), ve(t.c, u(e.jj(), 29))); + break; + } + case 4: { + h = e.kj(), h != null && (c = u(h, 482), c.Bb & 1 || (t = Yu(c), !t.c && (t.c = new V3()), rT(t.c, e.jj()))); + break; + } + case 6: { + if (h = e.kj(), h != null) + for (s = u(h, 16).Kc(); s.Ob(); ) + c = u(s.Pb(), 482), c.Bb & 1 || (t = Yu(c), !t.c && (t.c = new V3()), rT(t.c, e.jj())); + break; + } + } + this.ql(r); + } + }, o.ql = function(e) { + Uqn(this, e); + }, o.b = 63, w(qn, "ESuperAdapter", 1175), b(1176, 1175, Hcn, myn), o.ql = function(e) { + lw(this, e); + }, w(qn, "EClassImpl/10", 1176), b(1165, 710, Qr), o.Ei = function(e, t) { + return Zx(this, e, t); + }, o.Fi = function(e) { + return LRn(this, e); + }, o.Gi = function(e, t) { + Dk(this, e, t); + }, o.Hi = function(e) { + ek(this, e); + }, o.$i = function(e) { + return nQ(this, e); + }, o.Xi = function(e, t) { + return d$(this, e, t); + }, o.Wk = function(e, t) { + throw M(new Pe()); + }, o.Ii = function() { + return new yp(this); + }, o.Ji = function() { + return new M7(this); + }, o.Ki = function(e) { + return pk(this, e); + }, o.Xk = function(e, t) { + throw M(new Pe()); + }, o.Fk = function(e) { + return this; + }, o.Qj = function() { + return this.i != 0; + }, o.Wb = function(e) { + throw M(new Pe()); + }, o.Gk = function() { + throw M(new Pe()); + }, w(Tt, "EcoreEList/UnmodifiableEList", 1165), b(328, 1165, Qr, pg), o.Yi = function() { + return !1; + }, w(Tt, "EcoreEList/UnmodifiableEList/FastCompare", 328), b(1168, 328, Qr, bFn), o.dd = function(e) { + var t, i, r; + if (D(e, 179) && (t = u(e, 179), i = t.Lj(), i != -1)) { + for (r = this.i; i < r; ++i) + if (x(this.g[i]) === x(e)) + return i; + } + return -1; + }, w(qn, "EClassImpl/1EAllStructuralFeaturesList", 1168), b(1162, 506, Eh, kvn), o.aj = function(e) { + return K(Er, pJn, 89, e, 0, 1); + }, o.Yi = function() { + return !1; + }, w(qn, "EClassImpl/1EGenericSuperTypeEList", 1162), b(633, 506, Eh, qO), o.aj = function(e) { + return K(vu, f2, 179, e, 0, 1); + }, o.Yi = function() { + return !1; + }, w(qn, "EClassImpl/1EStructuralFeatureUniqueEList", 633), b(755, 506, Eh, iG), o.aj = function(e) { + return K(tg, f2, 19, e, 0, 1); + }, o.Yi = function() { + return !1; + }, w(qn, "EClassImpl/1ReferenceList", 755), b(1163, 506, Eh, vyn), o.Mi = function(e, t) { + owe(this, u(t, 35)); + }, o.aj = function(e) { + return K(eg, f2, 35, e, 0, 1); + }, o.Yi = function() { + return !1; + }, w(qn, "EClassImpl/2", 1163), b(1164, 506, Eh, yvn), o.aj = function(e) { + return K(eg, f2, 35, e, 0, 1); + }, o.Yi = function() { + return !1; + }, w(qn, "EClassImpl/3", 1164), b(1166, 328, Qr, HSn), o.Fc = function(e) { + return M3e(this, u(e, 35)); + }, o.Hi = function(e) { + Vhe(this, u(e, 35)); + }, w(qn, "EClassImpl/4", 1166), b(1167, 328, Qr, _Sn), o.Fc = function(e) { + return T3e(this, u(e, 19)); + }, o.Hi = function(e) { + Whe(this, u(e, 19)); + }, w(qn, "EClassImpl/5", 1167), b(1169, 506, Eh, jvn), o.aj = function(e) { + return K(Ss, Gcn, 62, e, 0, 1); + }, o.Yi = function() { + return !1; + }, w(qn, "EClassImpl/6", 1169), b(1170, 506, Eh, Evn), o.aj = function(e) { + return K(tg, f2, 19, e, 0, 1); + }, o.Yi = function() { + return !1; + }, w(qn, "EClassImpl/7", 1170), b(2095, 2094, { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 70: 1, 61: 1, 71: 1 }), o.Ei = function(e, t) { + return $en(this, e, t); + }, o.Fi = function(e) { + return $en(this, this.Ej(), e); + }, o.Gi = function(e, t) { + EHn(this, e, t); + }, o.Hi = function(e) { + lHn(this, e); + }, o.Wk = function(e, t) { + return n7e(this, e, t); + }, o.Xk = function(e, t) { + return A9e(this, e, t); + }, o.Xi = function(e, t) { + return IUn(this, e, t); + }, o.$i = function(e) { + return this.xj(e); + }, o.Ii = function() { + return new yp(this); + }, o.pj = function() { + return this.sj(); + }, o.Ji = function() { + return new M7(this); + }, o.Ki = function(e) { + return pk(this, e); + }, w(Tt, "DelegatingNotifyingInternalEListImpl", 2095), b(756, 2095, zcn), o.Li = function() { + var e; + return e = $n(lu(this.b), this.Lj()).Hk(), D(e, 156) && !D(e, 469) && (e.kk().i & 1) == 0; + }, o.Hc = function(e) { + var t, i, r, c, s, f, h, l; + if (this.ol()) { + if (l = this.Ej(), l > 4) + if (this.fk(e)) { + if (this.al()) { + if (r = u(e, 54), i = r.Eh(), h = i == this.b && (this.ml() ? r.yh(r.Fh(), u($n(lu(this.b), this.Lj()).Hk(), 29).kk()) == br(u($n(lu(this.b), this.Lj()), 19)).n : -1 - r.Fh() == this.Lj()), this.nl() && !h && !i && r.Jh()) { + for (c = 0; c < l; ++c) + if (t = cN(this, this.xj(c)), x(t) === x(e)) + return !0; + } + return h; + } else if (this.ml() && !this.ll()) { + if (s = u(e, 58).Mh(br(u($n(lu(this.b), this.Lj()), 19))), x(s) === x(this.b)) + return !0; + if (s == null || !u(s, 58).Vh()) + return !1; + } + } else + return !1; + if (f = this.uj(e), this.nl() && !f) { + for (c = 0; c < l; ++c) + if (r = cN(this, this.xj(c)), x(r) === x(e)) + return !0; + } + return f; + } else + return this.uj(e); + }, o.Ij = function(e, t, i, r, c) { + return new ml(this.b, e, this.Lj(), t, i, r, c); + }, o.Jj = function(e) { + it(this.b, e); + }, o.Fk = function(e) { + return this; + }, o.Kj = function() { + return $n(lu(this.b), this.Lj()); + }, o.Lj = function() { + return Ot(lu(this.b), $n(lu(this.b), this.Lj())); + }, o.jj = function() { + return this.b; + }, o.kl = function() { + return !!$n(lu(this.b), this.Lj()).Hk().kk(); + }, o.Mj = function() { + var e, t; + return t = $n(lu(this.b), this.Lj()), D(t, 102) ? (e = u(t, 19), (e.Bb & kc) != 0 || !!br(u(t, 19))) : !1; + }, o.ll = function() { + var e, t, i, r; + return t = $n(lu(this.b), this.Lj()), D(t, 102) ? (e = u(t, 19), i = br(e), !!i && (r = i.t, r > 1 || r == -1)) : !1; + }, o.ml = function() { + var e, t, i; + return t = $n(lu(this.b), this.Lj()), D(t, 102) ? (e = u(t, 19), i = br(e), !!i) : !1; + }, o.nl = function() { + var e, t; + return t = $n(lu(this.b), this.Lj()), D(t, 102) ? (e = u(t, 19), (e.Bb & fr) != 0) : !1; + }, o.dd = function(e) { + var t, i, r, c; + if (r = this.zj(e), r >= 0) + return r; + if (this.ol()) { + for (i = 0, c = this.Ej(); i < c; ++i) + if (t = cN(this, this.xj(i)), x(t) === x(e)) + return i; + } + return -1; + }, o.Nj = function(e, t) { + var i; + return i = u(e, 54), this.ml() ? this.kl() ? i.Rh(this.b, br(u($n(lu(this.b), this.Lj()), 19)).n, u($n(lu(this.b), this.Lj()).Hk(), 29).kk(), t) : i.Rh(this.b, Ot(i.Dh(), br(u($n(lu(this.b), this.Lj()), 19))), null, t) : i.Rh(this.b, -1 - this.Lj(), null, t); + }, o.Oj = function(e, t) { + var i; + return i = u(e, 54), this.ml() ? this.kl() ? i.Th(this.b, br(u($n(lu(this.b), this.Lj()), 19)).n, u($n(lu(this.b), this.Lj()).Hk(), 29).kk(), t) : i.Th(this.b, Ot(i.Dh(), br(u($n(lu(this.b), this.Lj()), 19))), null, t) : i.Th(this.b, -1 - this.Lj(), null, t); + }, o.al = function() { + var e, t; + return t = $n(lu(this.b), this.Lj()), D(t, 102) ? (e = u(t, 19), (e.Bb & kc) != 0) : !1; + }, o.ol = function() { + return D($n(lu(this.b), this.Lj()).Hk(), 90); + }, o.fk = function(e) { + return $n(lu(this.b), this.Lj()).Hk().fk(e); + }, o.Pj = function() { + return fo(this.b); + }, o.Qj = function() { + return !this.Aj(); + }, o.Si = function() { + return $n(lu(this.b), this.Lj()).Si(); + }, o.Wi = function(e, t) { + return py(this, e, t); + }, o.Wb = function(e) { + X5(this), Kt(this, u(e, 15)); + }, o.Pc = function() { + var e; + if (this.nl()) + for (e = this.Ej() - 1; e >= 0; --e) + py(this, e, this.xj(e)); + return this.Fj(); + }, o.Qc = function(e) { + var t; + if (this.nl()) + for (t = this.Ej() - 1; t >= 0; --t) + py(this, t, this.xj(t)); + return this.Gj(e); + }, o.Gk = function() { + X5(this); + }, o.Zi = function(e, t) { + return kNn(this, e, t); + }, w(Tt, "DelegatingEcoreEList", 756), b(1171, 756, zcn, NAn), o.qj = function(e, t) { + rae(this, e, u(t, 29)); + }, o.rj = function(e) { + zle(this, u(e, 29)); + }, o.xj = function(e) { + var t, i; + return t = u(L(Pc(this.a), e), 89), i = t.c, D(i, 90) ? u(i, 29) : (On(), Is); + }, o.Cj = function(e) { + var t, i; + return t = u(bw(Pc(this.a), e), 89), i = t.c, D(i, 90) ? u(i, 29) : (On(), Is); + }, o.Dj = function(e, t) { + return e7e(this, e, u(t, 29)); + }, o.Li = function() { + return !1; + }, o.Ij = function(e, t, i, r, c) { + return null; + }, o.sj = function() { + return new yyn(this); + }, o.tj = function() { + me(Pc(this.a)); + }, o.uj = function(e) { + return hBn(this, e); + }, o.vj = function(e) { + var t, i; + for (i = e.Kc(); i.Ob(); ) + if (t = i.Pb(), !hBn(this, t)) + return !1; + return !0; + }, o.wj = function(e) { + var t, i, r; + if (D(e, 15) && (r = u(e, 15), r.gc() == Pc(this.a).i)) { + for (t = r.Kc(), i = new ne(this); t.Ob(); ) + if (x(t.Pb()) !== x(ue(i))) + return !1; + return !0; + } + return !1; + }, o.yj = function() { + var e, t, i, r, c; + for (i = 1, t = new ne(Pc(this.a)); t.e != t.i.gc(); ) + e = u(ue(t), 89), r = (c = e.c, D(c, 90) ? u(c, 29) : (On(), Is)), i = 31 * i + (r ? a0(r) : 0); + return i; + }, o.zj = function(e) { + var t, i, r, c; + for (r = 0, i = new ne(Pc(this.a)); i.e != i.i.gc(); ) { + if (t = u(ue(i), 89), x(e) === x((c = t.c, D(c, 90) ? u(c, 29) : (On(), Is)))) + return r; + ++r; + } + return -1; + }, o.Aj = function() { + return Pc(this.a).i == 0; + }, o.Bj = function() { + return null; + }, o.Ej = function() { + return Pc(this.a).i; + }, o.Fj = function() { + var e, t, i, r, c, s; + for (s = Pc(this.a).i, c = K(yi, Bn, 1, s, 5, 1), i = 0, t = new ne(Pc(this.a)); t.e != t.i.gc(); ) + e = u(ue(t), 89), c[i++] = (r = e.c, D(r, 90) ? u(r, 29) : (On(), Is)); + return c; + }, o.Gj = function(e) { + var t, i, r, c, s, f, h; + for (h = Pc(this.a).i, e.length < h && (c = gk(wo(e).c, h), e = c), e.length > h && $t(e, h, null), r = 0, i = new ne(Pc(this.a)); i.e != i.i.gc(); ) + t = u(ue(i), 89), s = (f = t.c, D(f, 90) ? u(f, 29) : (On(), Is)), $t(e, r++, s); + return e; + }, o.Hj = function() { + var e, t, i, r, c; + for (c = new ql(), c.a += "[", e = Pc(this.a), t = 0, r = Pc(this.a).i; t < r; ) + Cr(c, O6((i = u(L(e, t), 89).c, D(i, 90) ? u(i, 29) : (On(), Is)))), ++t < r && (c.a += cr); + return c.a += "]", c.a; + }, o.Jj = function(e) { + }, o.Lj = function() { + return 10; + }, o.kl = function() { + return !0; + }, o.Mj = function() { + return !1; + }, o.ll = function() { + return !1; + }, o.ml = function() { + return !1; + }, o.nl = function() { + return !0; + }, o.al = function() { + return !1; + }, o.ol = function() { + return !0; + }, o.fk = function(e) { + return D(e, 90); + }, o.Qj = function() { + return Ape(this.a); + }, o.Si = function() { + return !0; + }, o.Yi = function() { + return !0; + }, w(qn, "EClassImpl/8", 1171), b(1172, 2062, Bm, yyn), o.fd = function(e) { + return pk(this.a, e); + }, o.gc = function() { + return Pc(this.a.a).i; + }, w(qn, "EClassImpl/8/1", 1172), b(1173, 506, Eh, Cvn), o.aj = function(e) { + return K(Cf, Bn, 142, e, 0, 1); + }, o.Yi = function() { + return !1; + }, w(qn, "EClassImpl/9", 1173), b(1160, 49, Etn, ljn), w(qn, "EClassImpl/MyHashSet", 1160), b(577, 364, { 110: 1, 94: 1, 93: 1, 142: 1, 156: 1, 847: 1, 155: 1, 197: 1, 58: 1, 114: 1, 54: 1, 99: 1, 364: 1, 158: 1, 119: 1, 120: 1, 691: 1 }, xE), o.Lh = function(e, t, i) { + var r; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return this.D != null ? this.D : this.B; + case 3: + return _0(this); + case 4: + return this.ik(); + case 5: + return this.F; + case 6: + return t ? jo(this) : O4(this); + case 7: + return !this.A && (this.A = new Mu(fu, this, 7)), this.A; + case 8: + return _n(), !!(this.Bb & 256); + } + return zo(this, e - se(this.ii()), $n((r = u(Un(this, 16), 29), r || this.ii()), e), t, i); + }, o.Wh = function(e) { + var t; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return this.D != null && this.D == this.F; + case 3: + return !!_0(this); + case 4: + return this.ik() != null; + case 5: + return this.F != null && this.F != this.D && this.F != this.B; + case 6: + return !!O4(this); + case 7: + return !!this.A && this.A.i != 0; + case 8: + return (this.Bb & 256) == 0; + } + return Uo(this, e - se(this.ii()), $n((t = u(Un(this, 16), 29), t || this.ii()), e)); + }, o.bi = function(e, t) { + var i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + xM(this, Oe(t)); + return; + case 2: + wL(this, Oe(t)); + return; + case 5: + Dm(this, Oe(t)); + return; + case 7: + !this.A && (this.A = new Mu(fu, this, 7)), me(this.A), !this.A && (this.A = new Mu(fu, this, 7)), Kt(this.A, u(t, 16)); + return; + case 8: + BT(this, on(un(t))); + return; + } + Jo(this, e - se(this.ii()), $n((i = u(Un(this, 16), 29), i || this.ii()), e), t); + }, o.ii = function() { + return On(), Hoe; + }, o.ki = function(e) { + var t; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + D(this.Cb, 184) && (u(this.Cb, 184).tb = null), Xc(this, null); + return; + case 2: + cm(this, null), U4(this, this.D); + return; + case 5: + Dm(this, null); + return; + case 7: + !this.A && (this.A = new Mu(fu, this, 7)), me(this.A); + return; + case 8: + BT(this, !0); + return; + } + Wo(this, e - se(this.ii()), $n((t = u(Un(this, 16), 29), t || this.ii()), e)); + }, o.pi = function() { + c1((Ou(), zi), this).xe(), this.Bb |= 1; + }, o.ok = function() { + var e, t, i; + if (!this.c && (e = xHn(jo(this)), !e.dc())) + for (i = e.Kc(); i.Ob(); ) + t = Oe(i.Pb()), _5(this, t) && T5e(this); + return this.b; + }, o.ik = function() { + var e; + if (!this.e) { + e = null; + try { + e = _0(this); + } catch (t) { + if (t = It(t), !D(t, 103)) + throw M(t); + } + this.d = null, e && e.i & 1 && (e == oo ? this.d = (_n(), ga) : e == ye ? this.d = Y(0) : e == ug ? this.d = new z9(0) : e == Oi ? this.d = 0 : e == Fa ? this.d = Ml(0) : e == V2 ? this.d = om(0) : e == xu ? this.d = ak(0) : this.d = vk(0)), this.e = !0; + } + return this.d; + }, o.nk = function() { + return (this.Bb & 256) != 0; + }, o.rl = function(e) { + e && (this.D = "org.eclipse.emf.common.util.AbstractEnumerator"); + }, o.gl = function(e) { + yxn(this, e), this.rl(e); + }, o.hl = function(e) { + this.C = e, this.e = !1; + }, o.Ib = function() { + var e; + return this.Db & 64 ? UT(this) : (e = new ls(UT(this)), e.a += " (serializable: ", Ul(e, (this.Bb & 256) != 0), e.a += ")", e.a); + }, o.c = !1, o.d = null, o.e = !1, w(qn, "EDataTypeImpl", 577), b(469, 577, { 110: 1, 94: 1, 93: 1, 142: 1, 156: 1, 847: 1, 685: 1, 155: 1, 197: 1, 58: 1, 114: 1, 54: 1, 99: 1, 364: 1, 469: 1, 158: 1, 119: 1, 120: 1, 691: 1 }, ajn), o.Lh = function(e, t, i) { + var r; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return this.D != null ? this.D : this.B; + case 3: + return _0(this); + case 4: + return aY(this); + case 5: + return this.F; + case 6: + return t ? jo(this) : O4(this); + case 7: + return !this.A && (this.A = new Mu(fu, this, 7)), this.A; + case 8: + return _n(), !!(this.Bb & 256); + case 9: + return !this.a && (this.a = new q(Bl, this, 9, 5)), this.a; + } + return zo(this, e - se((On(), Na)), $n((r = u(Un(this, 16), 29), r || Na), e), t, i); + }, o.Sh = function(e, t, i) { + var r, c, s; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Vc(this.Ab, e, i); + case 6: + return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? _x(this, i) : this.Cb.Th(this, -1 - c, null, i))), So(this, e, 6, i); + case 9: + return !this.a && (this.a = new q(Bl, this, 9, 5)), Vc(this.a, e, i); + } + return s = u($n((r = u(Un(this, 16), 29), r || (On(), Na)), t), 69), s.wk().zk(this, iu(this), t - se((On(), Na)), e, i); + }, o.Uh = function(e, t, i) { + var r, c; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), rr(this.Ab, e, i); + case 6: + return So(this, null, 6, i); + case 7: + return !this.A && (this.A = new Mu(fu, this, 7)), rr(this.A, e, i); + case 9: + return !this.a && (this.a = new q(Bl, this, 9, 5)), rr(this.a, e, i); + } + return c = u($n((r = u(Un(this, 16), 29), r || (On(), Na)), t), 69), c.wk().Ak(this, iu(this), t - se((On(), Na)), e, i); + }, o.Wh = function(e) { + var t; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return this.D != null && this.D == this.F; + case 3: + return !!_0(this); + case 4: + return !!aY(this); + case 5: + return this.F != null && this.F != this.D && this.F != this.B; + case 6: + return !!O4(this); + case 7: + return !!this.A && this.A.i != 0; + case 8: + return (this.Bb & 256) == 0; + case 9: + return !!this.a && this.a.i != 0; + } + return Uo(this, e - se((On(), Na)), $n((t = u(Un(this, 16), 29), t || Na), e)); + }, o.bi = function(e, t) { + var i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + xM(this, Oe(t)); + return; + case 2: + wL(this, Oe(t)); + return; + case 5: + Dm(this, Oe(t)); + return; + case 7: + !this.A && (this.A = new Mu(fu, this, 7)), me(this.A), !this.A && (this.A = new Mu(fu, this, 7)), Kt(this.A, u(t, 16)); + return; + case 8: + BT(this, on(un(t))); + return; + case 9: + !this.a && (this.a = new q(Bl, this, 9, 5)), me(this.a), !this.a && (this.a = new q(Bl, this, 9, 5)), Kt(this.a, u(t, 16)); + return; + } + Jo(this, e - se((On(), Na)), $n((i = u(Un(this, 16), 29), i || Na), e), t); + }, o.ii = function() { + return On(), Na; + }, o.ki = function(e) { + var t; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + D(this.Cb, 184) && (u(this.Cb, 184).tb = null), Xc(this, null); + return; + case 2: + cm(this, null), U4(this, this.D); + return; + case 5: + Dm(this, null); + return; + case 7: + !this.A && (this.A = new Mu(fu, this, 7)), me(this.A); + return; + case 8: + BT(this, !0); + return; + case 9: + !this.a && (this.a = new q(Bl, this, 9, 5)), me(this.a); + return; + } + Wo(this, e - se((On(), Na)), $n((t = u(Un(this, 16), 29), t || Na), e)); + }, o.pi = function() { + var e, t; + if (this.a) + for (e = 0, t = this.a.i; e < t; ++e) + T7(L(this.a, e)); + c1((Ou(), zi), this).xe(), this.Bb |= 1; + }, o.ik = function() { + return aY(this); + }, o.fk = function(e) { + return e != null; + }, o.rl = function(e) { + }, w(qn, "EEnumImpl", 469), b(582, 448, { 110: 1, 94: 1, 93: 1, 2039: 1, 694: 1, 155: 1, 197: 1, 58: 1, 114: 1, 54: 1, 99: 1, 582: 1, 158: 1, 119: 1, 120: 1 }, Fyn), o.xe = function() { + return this.zb; + }, o.Ah = function(e) { + return uKn(this, e); + }, o.Lh = function(e, t, i) { + var r, c; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return Y(this.d); + case 3: + return this.b ? this.b : this.a; + case 4: + return c = this.c, c ?? this.zb; + case 5: + return this.Db >> 16 == 5 ? u(this.Cb, 685) : null; + } + return zo(this, e - se((On(), P1)), $n((r = u(Un(this, 16), 29), r || P1), e), t, i); + }, o.Sh = function(e, t, i) { + var r, c, s; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Vc(this.Ab, e, i); + case 5: + return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? uKn(this, i) : this.Cb.Th(this, -1 - c, null, i))), So(this, e, 5, i); + } + return s = u($n((r = u(Un(this, 16), 29), r || (On(), P1)), t), 69), s.wk().zk(this, iu(this), t - se((On(), P1)), e, i); + }, o.Uh = function(e, t, i) { + var r, c; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), rr(this.Ab, e, i); + case 5: + return So(this, null, 5, i); + } + return c = u($n((r = u(Un(this, 16), 29), r || (On(), P1)), t), 69), c.wk().Ak(this, iu(this), t - se((On(), P1)), e, i); + }, o.Wh = function(e) { + var t; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return this.d != 0; + case 3: + return !!this.b; + case 4: + return this.c != null; + case 5: + return !!(this.Db >> 16 == 5 && u(this.Cb, 685)); + } + return Uo(this, e - se((On(), P1)), $n((t = u(Un(this, 16), 29), t || P1), e)); + }, o.bi = function(e, t) { + var i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + Xc(this, Oe(t)); + return; + case 2: + v$(this, u(t, 17).a); + return; + case 3: + iHn(this, u(t, 2039)); + return; + case 4: + y$(this, Oe(t)); + return; + } + Jo(this, e - se((On(), P1)), $n((i = u(Un(this, 16), 29), i || P1), e), t); + }, o.ii = function() { + return On(), P1; + }, o.ki = function(e) { + var t; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + Xc(this, null); + return; + case 2: + v$(this, 0); + return; + case 3: + iHn(this, null); + return; + case 4: + y$(this, null); + return; + } + Wo(this, e - se((On(), P1)), $n((t = u(Un(this, 16), 29), t || P1), e)); + }, o.Ib = function() { + var e; + return e = this.c, e ?? this.zb; + }, o.b = null, o.c = null, o.d = 0, w(qn, "EEnumLiteralImpl", 582); + var LNe = Nt(qn, "EFactoryImpl/InternalEDateTimeFormat"); + b(499, 1, { 2114: 1 }, X9), w(qn, "EFactoryImpl/1ClientInternalEDateTimeFormat", 499), b(248, 120, { 110: 1, 94: 1, 93: 1, 89: 1, 58: 1, 114: 1, 54: 1, 99: 1, 248: 1, 119: 1, 120: 1 }, Qd), o.Ch = function(e, t, i) { + var r; + return i = So(this, e, t, i), this.e && D(e, 179) && (r = MA(this, this.e), r != this.c && (i = Lm(this, r, i))), i; + }, o.Lh = function(e, t, i) { + var r; + switch (e) { + case 0: + return this.f; + case 1: + return !this.d && (this.d = new ii(Er, this, 1)), this.d; + case 2: + return t ? BA(this) : this.c; + case 3: + return this.b; + case 4: + return this.e; + case 5: + return t ? Lx(this) : this.a; + } + return zo(this, e - se((On(), Eb)), $n((r = u(Un(this, 16), 29), r || Eb), e), t, i); + }, o.Uh = function(e, t, i) { + var r, c; + switch (t) { + case 0: + return QFn(this, null, i); + case 1: + return !this.d && (this.d = new ii(Er, this, 1)), rr(this.d, e, i); + case 3: + return YFn(this, null, i); + } + return c = u($n((r = u(Un(this, 16), 29), r || (On(), Eb)), t), 69), c.wk().Ak(this, iu(this), t - se((On(), Eb)), e, i); + }, o.Wh = function(e) { + var t; + switch (e) { + case 0: + return !!this.f; + case 1: + return !!this.d && this.d.i != 0; + case 2: + return !!this.c; + case 3: + return !!this.b; + case 4: + return !!this.e; + case 5: + return !!this.a; + } + return Uo(this, e - se((On(), Eb)), $n((t = u(Un(this, 16), 29), t || Eb), e)); + }, o.bi = function(e, t) { + var i; + switch (e) { + case 0: + MKn(this, u(t, 89)); + return; + case 1: + !this.d && (this.d = new ii(Er, this, 1)), me(this.d), !this.d && (this.d = new ii(Er, this, 1)), Kt(this.d, u(t, 16)); + return; + case 3: + UZ(this, u(t, 89)); + return; + case 4: + fnn(this, u(t, 850)); + return; + case 5: + R4(this, u(t, 142)); + return; + } + Jo(this, e - se((On(), Eb)), $n((i = u(Un(this, 16), 29), i || Eb), e), t); + }, o.ii = function() { + return On(), Eb; + }, o.ki = function(e) { + var t; + switch (e) { + case 0: + MKn(this, null); + return; + case 1: + !this.d && (this.d = new ii(Er, this, 1)), me(this.d); + return; + case 3: + UZ(this, null); + return; + case 4: + fnn(this, null); + return; + case 5: + R4(this, null); + return; + } + Wo(this, e - se((On(), Eb)), $n((t = u(Un(this, 16), 29), t || Eb), e)); + }, o.Ib = function() { + var e; + return e = new mo(Hs(this)), e.a += " (expression: ", _F(this, e), e.a += ")", e.a; + }; + var Gdn; + w(qn, "EGenericTypeImpl", 248), b(2067, 2062, zS), o.Gi = function(e, t) { + OAn(this, e, t); + }, o.Wk = function(e, t) { + return OAn(this, this.gc(), e), t; + }, o.$i = function(e) { + return Zo(this.pj(), e); + }, o.Ii = function() { + return this.Ji(); + }, o.pj = function() { + return new Myn(this); + }, o.Ji = function() { + return this.Ki(0); + }, o.Ki = function(e) { + return this.pj().fd(e); + }, o.Xk = function(e, t) { + return rw(this, e, !0), t; + }, o.Ti = function(e, t) { + var i, r; + return r = Ux(this, t), i = this.fd(e), i.Rb(r), r; + }, o.Ui = function(e, t) { + var i; + rw(this, t, !0), i = this.fd(e), i.Rb(t); + }, w(Tt, "AbstractSequentialInternalEList", 2067), b(496, 2067, zS, C7), o.$i = function(e) { + return Zo(this.pj(), e); + }, o.Ii = function() { + return this.b == null ? (zl(), zl(), dE) : this.sl(); + }, o.pj = function() { + return new JMn(this.a, this.b); + }, o.Ji = function() { + return this.b == null ? (zl(), zl(), dE) : this.sl(); + }, o.Ki = function(e) { + var t, i; + if (this.b == null) { + if (e < 0 || e > 1) + throw M(new Pr(p8 + e + ", size=0")); + return zl(), zl(), dE; + } + for (i = this.sl(), t = 0; t < e; ++t) + PT(i); + return i; + }, o.dc = function() { + var e, t, i, r, c, s; + if (this.b != null) { + for (i = 0; i < this.b.length; ++i) + if (e = this.b[i], !this.vl() || this.a.Xh(e)) { + if (s = this.a.Nh(e, !1), dr(), u(e, 69).xk()) { + for (t = u(s, 160), r = 0, c = t.gc(); r < c; ++r) + if (cIn(t.Tl(r)) && t.Ul(r) != null) + return !1; + } else if (e.Jk()) { + if (!u(s, 16).dc()) + return !1; + } else if (s != null) + return !1; + } + } + return !0; + }, o.Kc = function() { + return LQ(this); + }, o.fd = function(e) { + var t, i; + if (this.b == null) { + if (e != 0) + throw M(new Pr(p8 + e + ", size=0")); + return zl(), zl(), dE; + } + for (i = this.ul() ? this.tl() : this.sl(), t = 0; t < e; ++t) + PT(i); + return i; + }, o.Ti = function(e, t) { + throw M(new Pe()); + }, o.Ui = function(e, t) { + throw M(new Pe()); + }, o.sl = function() { + return new _C(this.a, this.b); + }, o.tl = function() { + return new nV(this.a, this.b); + }, o.ul = function() { + return !0; + }, o.gc = function() { + var e, t, i, r, c, s, f; + if (c = 0, this.b != null) { + for (i = 0; i < this.b.length; ++i) + if (e = this.b[i], !this.vl() || this.a.Xh(e)) + if (f = this.a.Nh(e, !1), dr(), u(e, 69).xk()) + for (t = u(f, 160), r = 0, s = t.gc(); r < s; ++r) + cIn(t.Tl(r)) && t.Ul(r) != null && ++c; + else + e.Jk() ? c += u(f, 16).gc() : f != null && ++c; + } + return c; + }, o.vl = function() { + return !0; + }; + var MU; + w(Tt, "EContentsEList", 496), b(1177, 496, zS, wAn), o.sl = function() { + return new pAn(this.a, this.b); + }, o.tl = function() { + return new gAn(this.a, this.b); + }, o.vl = function() { + return !1; + }, w(qn, "ENamedElementImpl/1", 1177), b(287, 1, XS, _C), o.Nb = function(e) { + _i(this, e); + }, o.Rb = function(e) { + throw M(new Pe()); + }, o.wl = function(e) { + if (this.g != 0 || this.e) + throw M(new Ir("Iterator already in use or already filtered")); + this.e = e; + }, o.Ob = function() { + var e, t, i, r, c, s; + switch (this.g) { + case 3: + case 2: + return !0; + case 1: + return !1; + case -3: + this.p ? this.p.Pb() : ++this.n; + default: + if (!this.k || (this.p ? !m_n(this, this.p) : !oHn(this))) { + for (; this.d < this.c.length; ) + if (t = this.c[this.d++], (!this.e || t.pk() != _v || t.Lj() != 0) && (!this.vl() || this.b.Xh(t))) { + if (s = this.b.Nh(t, this.ul()), this.f = (dr(), u(t, 69).xk()), this.f || t.Jk()) { + if (this.ul() ? (r = u(s, 15), this.k = r) : (r = u(s, 71), this.k = this.j = r), D(this.k, 59) ? (this.p = null, this.o = this.k.gc(), this.n = 0) : this.p = this.j ? this.j.Ji() : this.k.ed(), this.p ? m_n(this, this.p) : oHn(this)) + return c = this.p ? this.p.Pb() : this.j ? this.j.$i(this.n++) : this.k.Xb(this.n++), this.f ? (e = u(c, 76), e.Lk(), i = e.md(), this.i = i) : (i = c, this.i = i), this.g = 3, !0; + } else if (s != null) + return this.k = null, this.p = null, i = s, this.i = i, this.g = 2, !0; + } + return this.k = null, this.p = null, this.f = !1, this.g = 1, !1; + } else + return c = this.p ? this.p.Pb() : this.j ? this.j.$i(this.n++) : this.k.Xb(this.n++), this.f ? (e = u(c, 76), e.Lk(), i = e.md(), this.i = i) : (i = c, this.i = i), this.g = 3, !0; + } + }, o.Sb = function() { + var e, t, i, r, c, s; + switch (this.g) { + case -3: + case -2: + return !0; + case -1: + return !1; + case 3: + this.p ? this.p.Ub() : --this.n; + default: + if (!this.k || (this.p ? !v_n(this, this.p) : !I_n(this))) { + for (; this.d > 0; ) + if (t = this.c[--this.d], (!this.e || t.pk() != _v || t.Lj() != 0) && (!this.vl() || this.b.Xh(t))) { + if (s = this.b.Nh(t, this.ul()), this.f = (dr(), u(t, 69).xk()), this.f || t.Jk()) { + if (this.ul() ? (r = u(s, 15), this.k = r) : (r = u(s, 71), this.k = this.j = r), D(this.k, 59) ? (this.o = this.k.gc(), this.n = this.o) : this.p = this.j ? this.j.Ki(this.k.gc()) : this.k.fd(this.k.gc()), this.p ? v_n(this, this.p) : I_n(this)) + return c = this.p ? this.p.Ub() : this.j ? this.j.$i(--this.n) : this.k.Xb(--this.n), this.f ? (e = u(c, 76), e.Lk(), i = e.md(), this.i = i) : (i = c, this.i = i), this.g = -3, !0; + } else if (s != null) + return this.k = null, this.p = null, i = s, this.i = i, this.g = -2, !0; + } + return this.k = null, this.p = null, this.g = -1, !1; + } else + return c = this.p ? this.p.Ub() : this.j ? this.j.$i(--this.n) : this.k.Xb(--this.n), this.f ? (e = u(c, 76), e.Lk(), i = e.md(), this.i = i) : (i = c, this.i = i), this.g = -3, !0; + } + }, o.Pb = function() { + return PT(this); + }, o.Tb = function() { + return this.a; + }, o.Ub = function() { + var e; + if (this.g < -1 || this.Sb()) + return --this.a, this.g = 0, e = this.i, this.Sb(), e; + throw M(new nc()); + }, o.Vb = function() { + return this.a - 1; + }, o.Qb = function() { + throw M(new Pe()); + }, o.ul = function() { + return !1; + }, o.Wb = function(e) { + throw M(new Pe()); + }, o.vl = function() { + return !0; + }, o.a = 0, o.d = 0, o.f = !1, o.g = 0, o.n = 0, o.o = 0; + var dE; + w(Tt, "EContentsEList/FeatureIteratorImpl", 287), b(711, 287, XS, nV), o.ul = function() { + return !0; + }, w(Tt, "EContentsEList/ResolvingFeatureIteratorImpl", 711), b(1178, 711, XS, gAn), o.vl = function() { + return !1; + }, w(qn, "ENamedElementImpl/1/1", 1178), b(1179, 287, XS, pAn), o.vl = function() { + return !1; + }, w(qn, "ENamedElementImpl/1/2", 1179), b(39, 152, Wy, Wb, UN, Mi, c$, ml, Rs, dQ, JOn, bQ, QOn, OJ, YOn, pQ, ZOn, DJ, nDn, wQ, eDn, H6, ck, MN, gQ, tDn, LJ, iDn), o.Kj = function() { + return JJ(this); + }, o.Rj = function() { + var e; + return e = JJ(this), e ? e.ik() : null; + }, o.hj = function(e) { + return this.b == -1 && this.a && (this.b = this.c.Hh(this.a.Lj(), this.a.pk())), this.c.yh(this.b, e); + }, o.jj = function() { + return this.c; + }, o.Sj = function() { + var e; + return e = JJ(this), e ? e.tk() : !1; + }, o.b = -1, w(qn, "ENotificationImpl", 39), b(411, 292, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 62: 1, 114: 1, 481: 1, 54: 1, 99: 1, 158: 1, 411: 1, 292: 1, 119: 1, 120: 1 }, hD), o.Ah = function(e) { + return fKn(this, e); + }, o.Lh = function(e, t, i) { + var r, c, s; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return _n(), !!(this.Bb & 256); + case 3: + return _n(), !!(this.Bb & 512); + case 4: + return Y(this.s); + case 5: + return Y(this.t); + case 6: + return _n(), s = this.t, s > 1 || s == -1; + case 7: + return _n(), c = this.s, c >= 1; + case 8: + return t ? gs(this) : this.r; + case 9: + return this.q; + case 10: + return this.Db >> 16 == 10 ? u(this.Cb, 29) : null; + case 11: + return !this.d && (this.d = new Mu(fu, this, 11)), this.d; + case 12: + return !this.c && (this.c = new q(jb, this, 12, 10)), this.c; + case 13: + return !this.a && (this.a = new P7(this, this)), this.a; + case 14: + return Zu(this); + } + return zo(this, e - se((On(), I1)), $n((r = u(Un(this, 16), 29), r || I1), e), t, i); + }, o.Sh = function(e, t, i) { + var r, c, s; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Vc(this.Ab, e, i); + case 10: + return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? fKn(this, i) : this.Cb.Th(this, -1 - c, null, i))), So(this, e, 10, i); + case 12: + return !this.c && (this.c = new q(jb, this, 12, 10)), Vc(this.c, e, i); + } + return s = u($n((r = u(Un(this, 16), 29), r || (On(), I1)), t), 69), s.wk().zk(this, iu(this), t - se((On(), I1)), e, i); + }, o.Uh = function(e, t, i) { + var r, c; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), rr(this.Ab, e, i); + case 9: + return hN(this, i); + case 10: + return So(this, null, 10, i); + case 11: + return !this.d && (this.d = new Mu(fu, this, 11)), rr(this.d, e, i); + case 12: + return !this.c && (this.c = new q(jb, this, 12, 10)), rr(this.c, e, i); + case 14: + return rr(Zu(this), e, i); + } + return c = u($n((r = u(Un(this, 16), 29), r || (On(), I1)), t), 69), c.wk().Ak(this, iu(this), t - se((On(), I1)), e, i); + }, o.Wh = function(e) { + var t, i, r; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return (this.Bb & 256) == 0; + case 3: + return (this.Bb & 512) == 0; + case 4: + return this.s != 0; + case 5: + return this.t != 1; + case 6: + return r = this.t, r > 1 || r == -1; + case 7: + return i = this.s, i >= 1; + case 8: + return !!this.r && !this.q.e && k0(this.q).i == 0; + case 9: + return !!this.q && !(this.r && !this.q.e && k0(this.q).i == 0); + case 10: + return !!(this.Db >> 16 == 10 && u(this.Cb, 29)); + case 11: + return !!this.d && this.d.i != 0; + case 12: + return !!this.c && this.c.i != 0; + case 13: + return !!this.a && Zu(this.a.a).i != 0 && !(this.b && Ox(this.b)); + case 14: + return !!this.b && Ox(this.b); + } + return Uo(this, e - se((On(), I1)), $n((t = u(Un(this, 16), 29), t || I1), e)); + }, o.bi = function(e, t) { + var i, r; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + Xc(this, Oe(t)); + return; + case 2: + u1(this, on(un(t))); + return; + case 3: + o1(this, on(un(t))); + return; + case 4: + t1(this, u(t, 17).a); + return; + case 5: + nw(this, u(t, 17).a); + return; + case 8: + dd(this, u(t, 142)); + return; + case 9: + r = Ff(this, u(t, 89), null), r && r.oj(); + return; + case 11: + !this.d && (this.d = new Mu(fu, this, 11)), me(this.d), !this.d && (this.d = new Mu(fu, this, 11)), Kt(this.d, u(t, 16)); + return; + case 12: + !this.c && (this.c = new q(jb, this, 12, 10)), me(this.c), !this.c && (this.c = new q(jb, this, 12, 10)), Kt(this.c, u(t, 16)); + return; + case 13: + !this.a && (this.a = new P7(this, this)), X5(this.a), !this.a && (this.a = new P7(this, this)), Kt(this.a, u(t, 16)); + return; + case 14: + me(Zu(this)), Kt(Zu(this), u(t, 16)); + return; + } + Jo(this, e - se((On(), I1)), $n((i = u(Un(this, 16), 29), i || I1), e), t); + }, o.ii = function() { + return On(), I1; + }, o.ki = function(e) { + var t, i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + Xc(this, null); + return; + case 2: + u1(this, !0); + return; + case 3: + o1(this, !0); + return; + case 4: + t1(this, 0); + return; + case 5: + nw(this, 1); + return; + case 8: + dd(this, null); + return; + case 9: + i = Ff(this, null, null), i && i.oj(); + return; + case 11: + !this.d && (this.d = new Mu(fu, this, 11)), me(this.d); + return; + case 12: + !this.c && (this.c = new q(jb, this, 12, 10)), me(this.c); + return; + case 13: + this.a && X5(this.a); + return; + case 14: + this.b && me(this.b); + return; + } + Wo(this, e - se((On(), I1)), $n((t = u(Un(this, 16), 29), t || I1), e)); + }, o.pi = function() { + var e, t; + if (this.c) + for (e = 0, t = this.c.i; e < t; ++e) + T7(L(this.c, e)); + gs(this), this.Bb |= 1; + }, w(qn, "EOperationImpl", 411), b(513, 756, zcn, P7), o.qj = function(e, t) { + uae(this, e, u(t, 142)); + }, o.rj = function(e) { + Xle(this, u(e, 142)); + }, o.xj = function(e) { + var t, i; + return t = u(L(Zu(this.a), e), 89), i = t.c, i || (On(), Yf); + }, o.Cj = function(e) { + var t, i; + return t = u(bw(Zu(this.a), e), 89), i = t.c, i || (On(), Yf); + }, o.Dj = function(e, t) { + return V8e(this, e, u(t, 142)); + }, o.Li = function() { + return !1; + }, o.Ij = function(e, t, i, r, c) { + return null; + }, o.sj = function() { + return new jyn(this); + }, o.tj = function() { + me(Zu(this.a)); + }, o.uj = function(e) { + return bBn(this, e); + }, o.vj = function(e) { + var t, i; + for (i = e.Kc(); i.Ob(); ) + if (t = i.Pb(), !bBn(this, t)) + return !1; + return !0; + }, o.wj = function(e) { + var t, i, r; + if (D(e, 15) && (r = u(e, 15), r.gc() == Zu(this.a).i)) { + for (t = r.Kc(), i = new ne(this); t.Ob(); ) + if (x(t.Pb()) !== x(ue(i))) + return !1; + return !0; + } + return !1; + }, o.yj = function() { + var e, t, i, r, c; + for (i = 1, t = new ne(Zu(this.a)); t.e != t.i.gc(); ) + e = u(ue(t), 89), r = (c = e.c, c || (On(), Yf)), i = 31 * i + (r ? mt(r) : 0); + return i; + }, o.zj = function(e) { + var t, i, r, c; + for (r = 0, i = new ne(Zu(this.a)); i.e != i.i.gc(); ) { + if (t = u(ue(i), 89), x(e) === x((c = t.c, c || (On(), Yf)))) + return r; + ++r; + } + return -1; + }, o.Aj = function() { + return Zu(this.a).i == 0; + }, o.Bj = function() { + return null; + }, o.Ej = function() { + return Zu(this.a).i; + }, o.Fj = function() { + var e, t, i, r, c, s; + for (s = Zu(this.a).i, c = K(yi, Bn, 1, s, 5, 1), i = 0, t = new ne(Zu(this.a)); t.e != t.i.gc(); ) + e = u(ue(t), 89), c[i++] = (r = e.c, r || (On(), Yf)); + return c; + }, o.Gj = function(e) { + var t, i, r, c, s, f, h; + for (h = Zu(this.a).i, e.length < h && (c = gk(wo(e).c, h), e = c), e.length > h && $t(e, h, null), r = 0, i = new ne(Zu(this.a)); i.e != i.i.gc(); ) + t = u(ue(i), 89), s = (f = t.c, f || (On(), Yf)), $t(e, r++, s); + return e; + }, o.Hj = function() { + var e, t, i, r, c; + for (c = new ql(), c.a += "[", e = Zu(this.a), t = 0, r = Zu(this.a).i; t < r; ) + Cr(c, O6((i = u(L(e, t), 89).c, i || (On(), Yf)))), ++t < r && (c.a += cr); + return c.a += "]", c.a; + }, o.Jj = function(e) { + }, o.Lj = function() { + return 13; + }, o.kl = function() { + return !0; + }, o.Mj = function() { + return !1; + }, o.ll = function() { + return !1; + }, o.ml = function() { + return !1; + }, o.nl = function() { + return !0; + }, o.al = function() { + return !1; + }, o.ol = function() { + return !0; + }, o.fk = function(e) { + return D(e, 142); + }, o.Qj = function() { + return Spe(this.a); + }, o.Si = function() { + return !0; + }, o.Yi = function() { + return !0; + }, w(qn, "EOperationImpl/1", 513), b(1376, 2062, Bm, jyn), o.fd = function(e) { + return pk(this.a, e); + }, o.gc = function() { + return Zu(this.a.a).i; + }, w(qn, "EOperationImpl/1/1", 1376), b(1377, 555, Qr, vPn), o.Ti = function(e, t) { + var i, r; + return i = u(k5(this, e, t), 89), fo(this.e) && e4(this, new ck(this.a, 7, (On(), Goe), Y(t), (r = i.c, r || Yf), e)), i; + }, o.Uj = function(e, t) { + return h5e(this, u(e, 89), t); + }, o.Vj = function(e, t) { + return f5e(this, u(e, 89), t); + }, o.Wj = function(e, t, i) { + return o9e(this, u(e, 89), u(t, 89), i); + }, o.Ij = function(e, t, i, r, c) { + switch (e) { + case 3: + return W6(this, e, t, i, r, this.i > 1); + case 5: + return W6(this, e, t, i, r, this.i - u(i, 15).gc() > 0); + default: + return new ml(this.e, e, this.c, t, i, r, !0); + } + }, o.Tj = function() { + return !0; + }, o.Qj = function() { + return Ox(this); + }, o.Gk = function() { + me(this); + }, w(qn, "EOperationImpl/2", 1377), b(507, 1, { 2037: 1, 507: 1 }, LMn), w(qn, "EPackageImpl/1", 507), b(14, 83, Qr, q), o.il = function() { + return this.d; + }, o.jl = function() { + return this.b; + }, o.ml = function() { + return !0; + }, o.b = 0, w(Tt, "EObjectContainmentWithInverseEList", 14), b(365, 14, Qr, jp), o.nl = function() { + return !0; + }, o.Wi = function(e, t) { + return e3(this, e, u(t, 58)); + }, w(Tt, "EObjectContainmentWithInverseEList/Resolving", 365), b(308, 365, Qr, qb), o.Ni = function() { + this.a.tb = null; + }, w(qn, "EPackageImpl/2", 308), b(1278, 1, {}, qse), w(qn, "EPackageImpl/3", 1278), b(733, 45, n2, tz), o._b = function(e) { + return Pi(e) ? AN(this, e) : !!gr(this.f, e); + }, w(qn, "EPackageRegistryImpl", 733), b(518, 292, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 2116: 1, 114: 1, 481: 1, 54: 1, 99: 1, 158: 1, 518: 1, 292: 1, 119: 1, 120: 1 }, lD), o.Ah = function(e) { + return hKn(this, e); + }, o.Lh = function(e, t, i) { + var r, c, s; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return _n(), !!(this.Bb & 256); + case 3: + return _n(), !!(this.Bb & 512); + case 4: + return Y(this.s); + case 5: + return Y(this.t); + case 6: + return _n(), s = this.t, s > 1 || s == -1; + case 7: + return _n(), c = this.s, c >= 1; + case 8: + return t ? gs(this) : this.r; + case 9: + return this.q; + case 10: + return this.Db >> 16 == 10 ? u(this.Cb, 62) : null; + } + return zo(this, e - se((On(), rg)), $n((r = u(Un(this, 16), 29), r || rg), e), t, i); + }, o.Sh = function(e, t, i) { + var r, c, s; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Vc(this.Ab, e, i); + case 10: + return this.Cb && (i = (c = this.Db >> 16, c >= 0 ? hKn(this, i) : this.Cb.Th(this, -1 - c, null, i))), So(this, e, 10, i); + } + return s = u($n((r = u(Un(this, 16), 29), r || (On(), rg)), t), 69), s.wk().zk(this, iu(this), t - se((On(), rg)), e, i); + }, o.Uh = function(e, t, i) { + var r, c; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), rr(this.Ab, e, i); + case 9: + return hN(this, i); + case 10: + return So(this, null, 10, i); + } + return c = u($n((r = u(Un(this, 16), 29), r || (On(), rg)), t), 69), c.wk().Ak(this, iu(this), t - se((On(), rg)), e, i); + }, o.Wh = function(e) { + var t, i, r; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return (this.Bb & 256) == 0; + case 3: + return (this.Bb & 512) == 0; + case 4: + return this.s != 0; + case 5: + return this.t != 1; + case 6: + return r = this.t, r > 1 || r == -1; + case 7: + return i = this.s, i >= 1; + case 8: + return !!this.r && !this.q.e && k0(this.q).i == 0; + case 9: + return !!this.q && !(this.r && !this.q.e && k0(this.q).i == 0); + case 10: + return !!(this.Db >> 16 == 10 && u(this.Cb, 62)); + } + return Uo(this, e - se((On(), rg)), $n((t = u(Un(this, 16), 29), t || rg), e)); + }, o.ii = function() { + return On(), rg; + }, w(qn, "EParameterImpl", 518), b(102, 462, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 19: 1, 179: 1, 69: 1, 114: 1, 481: 1, 54: 1, 99: 1, 158: 1, 102: 1, 462: 1, 292: 1, 119: 1, 120: 1, 692: 1 }, cV), o.Lh = function(e, t, i) { + var r, c, s, f; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return _n(), !!(this.Bb & 256); + case 3: + return _n(), !!(this.Bb & 512); + case 4: + return Y(this.s); + case 5: + return Y(this.t); + case 6: + return _n(), f = this.t, f > 1 || f == -1; + case 7: + return _n(), c = this.s, c >= 1; + case 8: + return t ? gs(this) : this.r; + case 9: + return this.q; + case 10: + return _n(), !!(this.Bb & Gs); + case 11: + return _n(), !!(this.Bb & Aw); + case 12: + return _n(), !!(this.Bb & kw); + case 13: + return this.j; + case 14: + return Mm(this); + case 15: + return _n(), !!(this.Bb & Nu); + case 16: + return _n(), !!(this.Bb & bh); + case 17: + return zb(this); + case 18: + return _n(), !!(this.Bb & kc); + case 19: + return _n(), s = br(this), !!(s && s.Bb & kc); + case 20: + return _n(), !!(this.Bb & fr); + case 21: + return t ? br(this) : this.b; + case 22: + return t ? tY(this) : ALn(this); + case 23: + return !this.a && (this.a = new Eg(eg, this, 23)), this.a; + } + return zo(this, e - se((On(), U2)), $n((r = u(Un(this, 16), 29), r || U2), e), t, i); + }, o.Wh = function(e) { + var t, i, r, c; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return (this.Bb & 256) == 0; + case 3: + return (this.Bb & 512) == 0; + case 4: + return this.s != 0; + case 5: + return this.t != 1; + case 6: + return c = this.t, c > 1 || c == -1; + case 7: + return i = this.s, i >= 1; + case 8: + return !!this.r && !this.q.e && k0(this.q).i == 0; + case 9: + return !!this.q && !(this.r && !this.q.e && k0(this.q).i == 0); + case 10: + return (this.Bb & Gs) == 0; + case 11: + return (this.Bb & Aw) != 0; + case 12: + return (this.Bb & kw) != 0; + case 13: + return this.j != null; + case 14: + return Mm(this) != null; + case 15: + return (this.Bb & Nu) != 0; + case 16: + return (this.Bb & bh) != 0; + case 17: + return !!zb(this); + case 18: + return (this.Bb & kc) != 0; + case 19: + return r = br(this), !!r && (r.Bb & kc) != 0; + case 20: + return (this.Bb & fr) == 0; + case 21: + return !!this.b; + case 22: + return !!ALn(this); + case 23: + return !!this.a && this.a.i != 0; + } + return Uo(this, e - se((On(), U2)), $n((t = u(Un(this, 16), 29), t || U2), e)); + }, o.bi = function(e, t) { + var i, r; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + FN(this, Oe(t)); + return; + case 2: + u1(this, on(un(t))); + return; + case 3: + o1(this, on(un(t))); + return; + case 4: + t1(this, u(t, 17).a); + return; + case 5: + nw(this, u(t, 17).a); + return; + case 8: + dd(this, u(t, 142)); + return; + case 9: + r = Ff(this, u(t, 89), null), r && r.oj(); + return; + case 10: + sm(this, on(un(t))); + return; + case 11: + lm(this, on(un(t))); + return; + case 12: + fm(this, on(un(t))); + return; + case 13: + wX(this, Oe(t)); + return; + case 15: + hm(this, on(un(t))); + return; + case 16: + am(this, on(un(t))); + return; + case 18: + A2e(this, on(un(t))); + return; + case 20: + NY(this, on(un(t))); + return; + case 21: + DQ(this, u(t, 19)); + return; + case 23: + !this.a && (this.a = new Eg(eg, this, 23)), me(this.a), !this.a && (this.a = new Eg(eg, this, 23)), Kt(this.a, u(t, 16)); + return; + } + Jo(this, e - se((On(), U2)), $n((i = u(Un(this, 16), 29), i || U2), e), t); + }, o.ii = function() { + return On(), U2; + }, o.ki = function(e) { + var t, i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + D(this.Cb, 90) && lw(Yu(u(this.Cb, 90)), 4), Xc(this, null); + return; + case 2: + u1(this, !0); + return; + case 3: + o1(this, !0); + return; + case 4: + t1(this, 0); + return; + case 5: + nw(this, 1); + return; + case 8: + dd(this, null); + return; + case 9: + i = Ff(this, null, null), i && i.oj(); + return; + case 10: + sm(this, !0); + return; + case 11: + lm(this, !1); + return; + case 12: + fm(this, !1); + return; + case 13: + this.i = null, kT(this, null); + return; + case 15: + hm(this, !1); + return; + case 16: + am(this, !1); + return; + case 18: + LY(this, !1), D(this.Cb, 90) && lw(Yu(u(this.Cb, 90)), 2); + return; + case 20: + NY(this, !0); + return; + case 21: + DQ(this, null); + return; + case 23: + !this.a && (this.a = new Eg(eg, this, 23)), me(this.a); + return; + } + Wo(this, e - se((On(), U2)), $n((t = u(Un(this, 16), 29), t || U2), e)); + }, o.pi = function() { + tY(this), S4(Dr((Ou(), zi), this)), gs(this), this.Bb |= 1; + }, o.uk = function() { + return br(this); + }, o._k = function() { + var e; + return e = br(this), !!e && (e.Bb & kc) != 0; + }, o.al = function() { + return (this.Bb & kc) != 0; + }, o.bl = function() { + return (this.Bb & fr) != 0; + }, o.Yk = function(e, t) { + return this.c = null, EY(this, e, t); + }, o.Ib = function() { + var e; + return this.Db & 64 ? $A(this) : (e = new ls($A(this)), e.a += " (containment: ", Ul(e, (this.Bb & kc) != 0), e.a += ", resolveProxies: ", Ul(e, (this.Bb & fr) != 0), e.a += ")", e.a); + }, w(qn, "EReferenceImpl", 102), b(561, 120, { 110: 1, 44: 1, 94: 1, 93: 1, 136: 1, 58: 1, 114: 1, 54: 1, 99: 1, 561: 1, 119: 1, 120: 1 }, Mvn), o.Fb = function(e) { + return this === e; + }, o.ld = function() { + return this.b; + }, o.md = function() { + return this.c; + }, o.Hb = function() { + return a0(this); + }, o.Di = function(e) { + Dbe(this, Oe(e)); + }, o.nd = function(e) { + return pbe(this, Oe(e)); + }, o.Lh = function(e, t, i) { + var r; + switch (e) { + case 0: + return this.b; + case 1: + return this.c; + } + return zo(this, e - se((On(), lr)), $n((r = u(Un(this, 16), 29), r || lr), e), t, i); + }, o.Wh = function(e) { + var t; + switch (e) { + case 0: + return this.b != null; + case 1: + return this.c != null; + } + return Uo(this, e - se((On(), lr)), $n((t = u(Un(this, 16), 29), t || lr), e)); + }, o.bi = function(e, t) { + var i; + switch (e) { + case 0: + Lbe(this, Oe(t)); + return; + case 1: + PQ(this, Oe(t)); + return; + } + Jo(this, e - se((On(), lr)), $n((i = u(Un(this, 16), 29), i || lr), e), t); + }, o.ii = function() { + return On(), lr; + }, o.ki = function(e) { + var t; + switch (e) { + case 0: + SQ(this, null); + return; + case 1: + PQ(this, null); + return; + } + Wo(this, e - se((On(), lr)), $n((t = u(Un(this, 16), 29), t || lr), e)); + }, o.Bi = function() { + var e; + return this.a == -1 && (e = this.b, this.a = e == null ? 0 : i1(e)), this.a; + }, o.Ci = function(e) { + this.a = e; + }, o.Ib = function() { + var e; + return this.Db & 64 ? Hs(this) : (e = new ls(Hs(this)), e.a += " (key: ", Cr(e, this.b), e.a += ", value: ", Cr(e, this.c), e.a += ")", e.a); + }, o.a = -1, o.b = null, o.c = null; + var pc = w(qn, "EStringToStringMapEntryImpl", 561), Qoe = Nt(Tt, "FeatureMap/Entry/Internal"); + b(576, 1, VS), o.xl = function(e) { + return this.yl(u(e, 54)); + }, o.yl = function(e) { + return this.xl(e); + }, o.Fb = function(e) { + var t, i; + return this === e ? !0 : D(e, 76) ? (t = u(e, 76), t.Lk() == this.c ? (i = this.md(), i == null ? t.md() == null : rt(i, t.md())) : !1) : !1; + }, o.Lk = function() { + return this.c; + }, o.Hb = function() { + var e; + return e = this.md(), mt(this.c) ^ (e == null ? 0 : mt(e)); + }, o.Ib = function() { + var e, t; + return e = this.c, t = jo(e.qk()).yi(), e.xe(), (t != null && t.length != 0 ? t + ":" + e.xe() : e.xe()) + "=" + this.md(); + }, w(qn, "EStructuralFeatureImpl/BasicFeatureMapEntry", 576), b(791, 576, VS, bV), o.yl = function(e) { + return new bV(this.c, e); + }, o.md = function() { + return this.a; + }, o.zl = function(e, t, i) { + return gve(this, e, this.a, t, i); + }, o.Al = function(e, t, i) { + return pve(this, e, this.a, t, i); + }, w(qn, "EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry", 791), b(1350, 1, {}, NMn), o.yk = function(e, t, i, r, c) { + var s; + return s = u($4(e, this.b), 220), s.Yl(this.a).Fk(r); + }, o.zk = function(e, t, i, r, c) { + var s; + return s = u($4(e, this.b), 220), s.Pl(this.a, r, c); + }, o.Ak = function(e, t, i, r, c) { + var s; + return s = u($4(e, this.b), 220), s.Ql(this.a, r, c); + }, o.Bk = function(e, t, i) { + var r; + return r = u($4(e, this.b), 220), r.Yl(this.a).Qj(); + }, o.Ck = function(e, t, i, r) { + var c; + c = u($4(e, this.b), 220), c.Yl(this.a).Wb(r); + }, o.Dk = function(e, t, i) { + return u($4(e, this.b), 220).Yl(this.a); + }, o.Ek = function(e, t, i) { + var r; + r = u($4(e, this.b), 220), r.Yl(this.a).Gk(); + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator", 1350), b(91, 1, {}, Vl, nd, Jl, cd), o.yk = function(e, t, i, r, c) { + var s; + if (s = t.li(i), s == null && t.mi(i, s = XA(this, e)), !c) + switch (this.e) { + case 50: + case 41: + return u(s, 597).bk(); + case 40: + return u(s, 220).Vl(); + } + return s; + }, o.zk = function(e, t, i, r, c) { + var s, f; + return f = t.li(i), f == null && t.mi(i, f = XA(this, e)), s = u(f, 71).Wk(r, c), s; + }, o.Ak = function(e, t, i, r, c) { + var s; + return s = t.li(i), s != null && (c = u(s, 71).Xk(r, c)), c; + }, o.Bk = function(e, t, i) { + var r; + return r = t.li(i), r != null && u(r, 79).Qj(); + }, o.Ck = function(e, t, i, r) { + var c; + c = u(t.li(i), 79), !c && t.mi(i, c = XA(this, e)), c.Wb(r); + }, o.Dk = function(e, t, i) { + var r, c; + return c = t.li(i), c == null && t.mi(i, c = XA(this, e)), D(c, 79) ? u(c, 79) : (r = u(t.li(i), 15), new Eyn(r)); + }, o.Ek = function(e, t, i) { + var r; + r = u(t.li(i), 79), !r && t.mi(i, r = XA(this, e)), r.Gk(); + }, o.b = 0, o.e = 0, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateMany", 91), b(512, 1, {}), o.zk = function(e, t, i, r, c) { + throw M(new Pe()); + }, o.Ak = function(e, t, i, r, c) { + throw M(new Pe()); + }, o.Dk = function(e, t, i) { + return new DIn(this, e, t, i); + }; + var il; + w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingle", 512), b(1367, 1, TK, DIn), o.Fk = function(e) { + return this.a.yk(this.c, this.d, this.b, e, !0); + }, o.Qj = function() { + return this.a.Bk(this.c, this.d, this.b); + }, o.Wb = function(e) { + this.a.Ck(this.c, this.d, this.b, e); + }, o.Gk = function() { + this.a.Ek(this.c, this.d, this.b); + }, o.b = 0, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingle/1", 1367), b(784, 512, {}, tJ), o.yk = function(e, t, i, r, c) { + return AF(e, e.Ph(), e.Fh()) == this.b ? this.bl() && r ? dF(e) : e.Ph() : null; + }, o.zk = function(e, t, i, r, c) { + var s, f; + return e.Ph() && (c = (s = e.Fh(), s >= 0 ? e.Ah(c) : e.Ph().Th(e, -1 - s, null, c))), f = Ot(e.Dh(), this.e), e.Ch(r, f, c); + }, o.Ak = function(e, t, i, r, c) { + var s; + return s = Ot(e.Dh(), this.e), e.Ch(null, s, c); + }, o.Bk = function(e, t, i) { + var r; + return r = Ot(e.Dh(), this.e), !!e.Ph() && e.Fh() == r; + }, o.Ck = function(e, t, i, r) { + var c, s, f, h, l; + if (r != null && !OF(this.a, r)) + throw M(new t4(WS + (D(r, 58) ? qZ(u(r, 58).Dh()) : fQ(wo(r))) + JS + this.a + "'")); + if (c = e.Ph(), f = Ot(e.Dh(), this.e), x(r) !== x(c) || e.Fh() != f && r != null) { + if (pm(e, u(r, 58))) + throw M(new Gn(w8 + e.Ib())); + l = null, c && (l = (s = e.Fh(), s >= 0 ? e.Ah(l) : e.Ph().Th(e, -1 - s, null, l))), h = u(r, 54), h && (l = h.Rh(e, Ot(h.Dh(), this.b), null, l)), l = e.Ch(h, f, l), l && l.oj(); + } else + e.vh() && e.wh() && it(e, new Mi(e, 1, f, r, r)); + }, o.Ek = function(e, t, i) { + var r, c, s, f; + r = e.Ph(), r ? (f = (c = e.Fh(), c >= 0 ? e.Ah(null) : e.Ph().Th(e, -1 - c, null, null)), s = Ot(e.Dh(), this.e), f = e.Ch(null, s, f), f && f.oj()) : e.vh() && e.wh() && it(e, new H6(e, 1, this.e, null, null)); + }, o.bl = function() { + return !1; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleContainer", 784), b(1351, 784, {}, jSn), o.bl = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving", 1351), b(574, 512, {}), o.yk = function(e, t, i, r, c) { + var s; + return s = t.li(i), s == null ? this.b : x(s) === x(il) ? null : s; + }, o.Bk = function(e, t, i) { + var r; + return r = t.li(i), r != null && (x(r) === x(il) || !rt(r, this.b)); + }, o.Ck = function(e, t, i, r) { + var c, s; + e.vh() && e.wh() ? (c = (s = t.li(i), s == null ? this.b : x(s) === x(il) ? null : s), r == null ? this.c != null ? (t.mi(i, null), r = this.b) : this.b != null ? t.mi(i, il) : t.mi(i, null) : (this.Bl(r), t.mi(i, r)), it(e, this.d.Cl(e, 1, this.e, c, r))) : r == null ? this.c != null ? t.mi(i, null) : this.b != null ? t.mi(i, il) : t.mi(i, null) : (this.Bl(r), t.mi(i, r)); + }, o.Ek = function(e, t, i) { + var r, c; + e.vh() && e.wh() ? (r = (c = t.li(i), c == null ? this.b : x(c) === x(il) ? null : c), t.ni(i), it(e, this.d.Cl(e, 1, this.e, r, this.b))) : t.ni(i); + }, o.Bl = function(e) { + throw M(new Nyn()); + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData", 574), b(h2, 1, {}, Tvn), o.Cl = function(e, t, i, r, c) { + return new H6(e, t, i, r, c); + }, o.Dl = function(e, t, i, r, c, s) { + return new MN(e, t, i, r, c, s); + }; + var zdn, Xdn, Vdn, Wdn, Jdn, Qdn, Ydn, TU, Zdn; + w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator", h2), b(1368, h2, {}, Avn), o.Cl = function(e, t, i, r, c) { + return new LJ(e, t, i, on(un(r)), on(un(c))); + }, o.Dl = function(e, t, i, r, c, s) { + return new iDn(e, t, i, on(un(r)), on(un(c)), s); + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1", 1368), b(1369, h2, {}, Svn), o.Cl = function(e, t, i, r, c) { + return new dQ(e, t, i, u(r, 222).a, u(c, 222).a); + }, o.Dl = function(e, t, i, r, c, s) { + return new JOn(e, t, i, u(r, 222).a, u(c, 222).a, s); + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2", 1369), b(1370, h2, {}, Pvn), o.Cl = function(e, t, i, r, c) { + return new bQ(e, t, i, u(r, 180).a, u(c, 180).a); + }, o.Dl = function(e, t, i, r, c, s) { + return new QOn(e, t, i, u(r, 180).a, u(c, 180).a, s); + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3", 1370), b(1371, h2, {}, Ivn), o.Cl = function(e, t, i, r, c) { + return new OJ(e, t, i, $(R(r)), $(R(c))); + }, o.Dl = function(e, t, i, r, c, s) { + return new YOn(e, t, i, $(R(r)), $(R(c)), s); + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4", 1371), b(1372, h2, {}, Ovn), o.Cl = function(e, t, i, r, c) { + return new pQ(e, t, i, u(r, 161).a, u(c, 161).a); + }, o.Dl = function(e, t, i, r, c, s) { + return new ZOn(e, t, i, u(r, 161).a, u(c, 161).a, s); + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5", 1372), b(1373, h2, {}, Dvn), o.Cl = function(e, t, i, r, c) { + return new DJ(e, t, i, u(r, 17).a, u(c, 17).a); + }, o.Dl = function(e, t, i, r, c, s) { + return new nDn(e, t, i, u(r, 17).a, u(c, 17).a, s); + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6", 1373), b(1374, h2, {}, Lvn), o.Cl = function(e, t, i, r, c) { + return new wQ(e, t, i, u(r, 168).a, u(c, 168).a); + }, o.Dl = function(e, t, i, r, c, s) { + return new eDn(e, t, i, u(r, 168).a, u(c, 168).a, s); + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7", 1374), b(1375, h2, {}, Nvn), o.Cl = function(e, t, i, r, c) { + return new gQ(e, t, i, u(r, 191).a, u(c, 191).a); + }, o.Dl = function(e, t, i, r, c, s) { + return new tDn(e, t, i, u(r, 191).a, u(c, 191).a, s); + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8", 1375), b(1353, 574, {}, LIn), o.Bl = function(e) { + if (!this.a.fk(e)) + throw M(new t4(WS + wo(e) + JS + this.a + "'")); + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic", 1353), b(1354, 574, {}, kPn), o.Bl = function(e) { + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic", 1354), b(785, 574, {}), o.Bk = function(e, t, i) { + var r; + return r = t.li(i), r != null; + }, o.Ck = function(e, t, i, r) { + var c, s; + e.vh() && e.wh() ? (c = !0, s = t.li(i), s == null ? (c = !1, s = this.b) : x(s) === x(il) && (s = null), r == null ? this.c != null ? (t.mi(i, null), r = this.b) : t.mi(i, il) : (this.Bl(r), t.mi(i, r)), it(e, this.d.Dl(e, 1, this.e, s, r, !c))) : r == null ? this.c != null ? t.mi(i, null) : t.mi(i, il) : (this.Bl(r), t.mi(i, r)); + }, o.Ek = function(e, t, i) { + var r, c; + e.vh() && e.wh() ? (r = !0, c = t.li(i), c == null ? (r = !1, c = this.b) : x(c) === x(il) && (c = null), t.ni(i), it(e, this.d.Dl(e, 2, this.e, c, this.b, r))) : t.ni(i); + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable", 785), b(1355, 785, {}, NIn), o.Bl = function(e) { + if (!this.a.fk(e)) + throw M(new t4(WS + wo(e) + JS + this.a + "'")); + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic", 1355), b(1356, 785, {}, yPn), o.Bl = function(e) { + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic", 1356), b(410, 512, {}, oM), o.yk = function(e, t, i, r, c) { + var s, f, h, l, a; + if (a = t.li(i), this.tk() && x(a) === x(il)) + return null; + if (this.bl() && r && a != null) { + if (h = u(a, 54), h.Vh() && (l = ea(e, h), h != l)) { + if (!OF(this.a, l)) + throw M(new t4(WS + wo(l) + JS + this.a + "'")); + t.mi(i, a = l), this.al() && (s = u(l, 54), f = h.Th(e, this.b ? Ot(h.Dh(), this.b) : -1 - Ot(e.Dh(), this.e), null, null), !s.Ph() && (f = s.Rh(e, this.b ? Ot(s.Dh(), this.b) : -1 - Ot(e.Dh(), this.e), null, f)), f && f.oj()), e.vh() && e.wh() && it(e, new H6(e, 9, this.e, h, l)); + } + return a; + } else + return a; + }, o.zk = function(e, t, i, r, c) { + var s, f; + return f = t.li(i), x(f) === x(il) && (f = null), t.mi(i, r), this.Mj() ? x(f) !== x(r) && f != null && (s = u(f, 54), c = s.Th(e, Ot(s.Dh(), this.b), null, c)) : this.al() && f != null && (c = u(f, 54).Th(e, -1 - Ot(e.Dh(), this.e), null, c)), e.vh() && e.wh() && (!c && (c = new F1(4)), c.nj(new H6(e, 1, this.e, f, r))), c; + }, o.Ak = function(e, t, i, r, c) { + var s; + return s = t.li(i), x(s) === x(il) && (s = null), t.ni(i), e.vh() && e.wh() && (!c && (c = new F1(4)), this.tk() ? c.nj(new H6(e, 2, this.e, s, null)) : c.nj(new H6(e, 1, this.e, s, null))), c; + }, o.Bk = function(e, t, i) { + var r; + return r = t.li(i), r != null; + }, o.Ck = function(e, t, i, r) { + var c, s, f, h, l; + if (r != null && !OF(this.a, r)) + throw M(new t4(WS + (D(r, 58) ? qZ(u(r, 58).Dh()) : fQ(wo(r))) + JS + this.a + "'")); + l = t.li(i), h = l != null, this.tk() && x(l) === x(il) && (l = null), f = null, this.Mj() ? x(l) !== x(r) && (l != null && (c = u(l, 54), f = c.Th(e, Ot(c.Dh(), this.b), null, f)), r != null && (c = u(r, 54), f = c.Rh(e, Ot(c.Dh(), this.b), null, f))) : this.al() && x(l) !== x(r) && (l != null && (f = u(l, 54).Th(e, -1 - Ot(e.Dh(), this.e), null, f)), r != null && (f = u(r, 54).Rh(e, -1 - Ot(e.Dh(), this.e), null, f))), r == null && this.tk() ? t.mi(i, il) : t.mi(i, r), e.vh() && e.wh() ? (s = new MN(e, 1, this.e, l, r, this.tk() && !h), f ? (f.nj(s), f.oj()) : it(e, s)) : f && f.oj(); + }, o.Ek = function(e, t, i) { + var r, c, s, f, h; + h = t.li(i), f = h != null, this.tk() && x(h) === x(il) && (h = null), s = null, h != null && (this.Mj() ? (r = u(h, 54), s = r.Th(e, Ot(r.Dh(), this.b), null, s)) : this.al() && (s = u(h, 54).Th(e, -1 - Ot(e.Dh(), this.e), null, s))), t.ni(i), e.vh() && e.wh() ? (c = new MN(e, this.tk() ? 2 : 1, this.e, h, null, f), s ? (s.nj(c), s.oj()) : it(e, c)) : s && s.oj(); + }, o.Mj = function() { + return !1; + }, o.al = function() { + return !1; + }, o.bl = function() { + return !1; + }, o.tk = function() { + return !1; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObject", 410), b(575, 410, {}, PL), o.al = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment", 575), b(1359, 575, {}, vAn), o.bl = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving", 1359), b(787, 575, {}, eV), o.tk = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable", 787), b(1361, 787, {}, kAn), o.bl = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving", 1361), b(650, 575, {}, HL), o.Mj = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse", 650), b(1360, 650, {}, ESn), o.bl = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving", 1360), b(788, 650, {}, _V), o.tk = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable", 788), b(1362, 788, {}, CSn), o.bl = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving", 1362), b(651, 410, {}, tV), o.bl = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving", 651), b(1363, 651, {}, yAn), o.tk = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable", 1363), b(789, 651, {}, RV), o.Mj = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse", 789), b(1364, 789, {}, MSn), o.tk = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable", 1364), b(1357, 410, {}, jAn), o.tk = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable", 1357), b(786, 410, {}, KV), o.Mj = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse", 786), b(1358, 786, {}, TSn), o.tk = function() { + return !0; + }, w(qn, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable", 1358), b(790, 576, VS, FW), o.yl = function(e) { + return new FW(this.a, this.c, e); + }, o.md = function() { + return this.b; + }, o.zl = function(e, t, i) { + return b4e(this, e, this.b, i); + }, o.Al = function(e, t, i) { + return w4e(this, e, this.b, i); + }, w(qn, "EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry", 790), b(1365, 1, TK, Eyn), o.Fk = function(e) { + return this.a; + }, o.Qj = function() { + return D(this.a, 97) ? u(this.a, 97).Qj() : !this.a.dc(); + }, o.Wb = function(e) { + this.a.$b(), this.a.Gc(u(e, 15)); + }, o.Gk = function() { + D(this.a, 97) ? u(this.a, 97).Gk() : this.a.$b(); + }, w(qn, "EStructuralFeatureImpl/SettingMany", 1365), b(1366, 576, VS, VDn), o.xl = function(e) { + return new DL((at(), F9), this.b.ri(this.a, e)); + }, o.md = function() { + return null; + }, o.zl = function(e, t, i) { + return i; + }, o.Al = function(e, t, i) { + return i; + }, w(qn, "EStructuralFeatureImpl/SimpleContentFeatureMapEntry", 1366), b(652, 576, VS, DL), o.xl = function(e) { + return new DL(this.c, e); + }, o.md = function() { + return this.a; + }, o.zl = function(e, t, i) { + return i; + }, o.Al = function(e, t, i) { + return i; + }, w(qn, "EStructuralFeatureImpl/SimpleFeatureMapEntry", 652), b(403, 506, Eh, V3), o.aj = function(e) { + return K(As, Bn, 29, e, 0, 1); + }, o.Yi = function() { + return !1; + }, w(qn, "ESuperAdapter/1", 403), b(457, 448, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 114: 1, 850: 1, 54: 1, 99: 1, 158: 1, 457: 1, 119: 1, 120: 1 }, UO), o.Lh = function(e, t, i) { + var r; + switch (e) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), this.Ab; + case 1: + return this.zb; + case 2: + return !this.a && (this.a = new B6(this, Er, this)), this.a; + } + return zo(this, e - se((On(), Cb)), $n((r = u(Un(this, 16), 29), r || Cb), e), t, i); + }, o.Uh = function(e, t, i) { + var r, c; + switch (t) { + case 0: + return !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), rr(this.Ab, e, i); + case 2: + return !this.a && (this.a = new B6(this, Er, this)), rr(this.a, e, i); + } + return c = u($n((r = u(Un(this, 16), 29), r || (On(), Cb)), t), 69), c.wk().Ak(this, iu(this), t - se((On(), Cb)), e, i); + }, o.Wh = function(e) { + var t; + switch (e) { + case 0: + return !!this.Ab && this.Ab.i != 0; + case 1: + return this.zb != null; + case 2: + return !!this.a && this.a.i != 0; + } + return Uo(this, e - se((On(), Cb)), $n((t = u(Un(this, 16), 29), t || Cb), e)); + }, o.bi = function(e, t) { + var i; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab), !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), Kt(this.Ab, u(t, 16)); + return; + case 1: + Xc(this, Oe(t)); + return; + case 2: + !this.a && (this.a = new B6(this, Er, this)), me(this.a), !this.a && (this.a = new B6(this, Er, this)), Kt(this.a, u(t, 16)); + return; + } + Jo(this, e - se((On(), Cb)), $n((i = u(Un(this, 16), 29), i || Cb), e), t); + }, o.ii = function() { + return On(), Cb; + }, o.ki = function(e) { + var t; + switch (e) { + case 0: + !this.Ab && (this.Ab = new q(Ue, this, 0, 3)), me(this.Ab); + return; + case 1: + Xc(this, null); + return; + case 2: + !this.a && (this.a = new B6(this, Er, this)), me(this.a); + return; + } + Wo(this, e - se((On(), Cb)), $n((t = u(Un(this, 16), 29), t || Cb), e)); + }, w(qn, "ETypeParameterImpl", 457), b(458, 83, Qr, B6), o.Nj = function(e, t) { + return Pye(this, u(e, 89), t); + }, o.Oj = function(e, t) { + return Iye(this, u(e, 89), t); + }, w(qn, "ETypeParameterImpl/1", 458), b(647, 45, n2, aD), o.ec = function() { + return new NE(this); + }, w(qn, "ETypeParameterImpl/2", 647), b(570, Rf, Du, NE), o.Fc = function(e) { + return VAn(this, u(e, 89)); + }, o.Gc = function(e) { + var t, i, r; + for (r = !1, i = e.Kc(); i.Ob(); ) + t = u(i.Pb(), 89), Xe(this.a, t, "") == null && (r = !0); + return r; + }, o.$b = function() { + Ku(this.a); + }, o.Hc = function(e) { + return Zc(this.a, e); + }, o.Kc = function() { + var e; + return e = new fd(new Ga(this.a).a), new $E(e); + }, o.Mc = function(e) { + return BLn(this, e); + }, o.gc = function() { + return c6(this.a); + }, w(qn, "ETypeParameterImpl/2/1", 570), b(571, 1, Ii, $E), o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return u(N0(this.a).ld(), 89); + }, o.Ob = function() { + return this.a.b; + }, o.Qb = function() { + XNn(this.a); + }, w(qn, "ETypeParameterImpl/2/1/1", 571), b(1329, 45, n2, djn), o._b = function(e) { + return Pi(e) ? AN(this, e) : !!gr(this.f, e); + }, o.xc = function(e) { + var t, i; + return t = Pi(e) ? $c(this, e) : Kr(gr(this.f, e)), D(t, 851) ? (i = u(t, 851), t = i.Kk(), Xe(this, u(e, 241), t), t) : t ?? (e == null ? (OD(), Zoe) : null); + }, w(qn, "EValidatorRegistryImpl", 1329), b(1349, 720, { 110: 1, 94: 1, 93: 1, 480: 1, 155: 1, 58: 1, 114: 1, 2040: 1, 54: 1, 99: 1, 158: 1, 119: 1, 120: 1 }, $vn), o.ri = function(e, t) { + switch (e.hk()) { + case 21: + case 22: + case 23: + case 24: + case 26: + case 31: + case 32: + case 37: + case 38: + case 39: + case 40: + case 43: + case 44: + case 48: + case 49: + case 20: + return t == null ? null : Jr(t); + case 25: + return Tme(t); + case 27: + return K4e(t); + case 28: + return _4e(t); + case 29: + return t == null ? null : MTn(O9[0], u(t, 206)); + case 41: + return t == null ? "" : Va(u(t, 297)); + case 42: + return Jr(t); + case 50: + return Oe(t); + default: + throw M(new Gn(nv + e.xe() + eb)); + } + }, o.si = function(e) { + var t, i, r, c, s, f, h, l, a, d, g, p, m, k, j, S; + switch (e.G == -1 && (e.G = (p = jo(e), p ? h1(p.vi(), e) : -1)), e.G) { + case 0: + return i = new fD(), i; + case 1: + return t = new tG(), t; + case 2: + return r = new uG(), r; + case 4: + return c = new xE(), c; + case 5: + return s = new ajn(), s; + case 6: + return f = new Fyn(), f; + case 7: + return h = new oG(), h; + case 10: + return a = new ME(), a; + case 11: + return d = new hD(), d; + case 12: + return g = new HIn(), g; + case 13: + return m = new lD(), m; + case 14: + return k = new cV(), k; + case 17: + return j = new Mvn(), j; + case 18: + return l = new Qd(), l; + case 19: + return S = new UO(), S; + default: + throw M(new Gn(hK + e.zb + eb)); + } + }, o.ti = function(e, t) { + switch (e.hk()) { + case 20: + return t == null ? null : new Az(t); + case 21: + return t == null ? null : new H1(t); + case 23: + case 22: + return t == null ? null : R8e(t); + case 26: + case 24: + return t == null ? null : ak(Ao(t, -128, 127) << 24 >> 24); + case 25: + return rMe(t); + case 27: + return T7e(t); + case 28: + return A7e(t); + case 29: + return Jye(t); + case 32: + case 31: + return t == null ? null : fw(t); + case 38: + case 37: + return t == null ? null : new UG(t); + case 40: + case 39: + return t == null ? null : Y(Ao(t, Wi, et)); + case 41: + return null; + case 42: + return t == null, null; + case 44: + case 43: + return t == null ? null : Ml(zA(t)); + case 49: + case 48: + return t == null ? null : om(Ao(t, QS, 32767) << 16 >> 16); + case 50: + return t; + default: + throw M(new Gn(nv + e.xe() + eb)); + } + }, w(qn, "EcoreFactoryImpl", 1349), b(560, 184, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 241: 1, 114: 1, 2038: 1, 54: 1, 99: 1, 158: 1, 184: 1, 560: 1, 119: 1, 120: 1, 690: 1 }, aIn), o.gb = !1, o.hb = !1; + var n0n, Yoe = !1; + w(qn, "EcorePackageImpl", 560), b(1234, 1, { 851: 1 }, xvn), o.Kk = function() { + return BTn(), nse; + }, w(qn, "EcorePackageImpl/1", 1234), b(1243, 1, ze, Fvn), o.fk = function(e) { + return D(e, 155); + }, o.gk = function(e) { + return K(fE, Bn, 155, e, 0, 1); + }, w(qn, "EcorePackageImpl/10", 1243), b(1244, 1, ze, Bvn), o.fk = function(e) { + return D(e, 197); + }, o.gk = function(e) { + return K(pU, Bn, 197, e, 0, 1); + }, w(qn, "EcorePackageImpl/11", 1244), b(1245, 1, ze, Rvn), o.fk = function(e) { + return D(e, 58); + }, o.gk = function(e) { + return K(Oa, Bn, 58, e, 0, 1); + }, w(qn, "EcorePackageImpl/12", 1245), b(1246, 1, ze, Kvn), o.fk = function(e) { + return D(e, 411); + }, o.gk = function(e) { + return K(Ss, Gcn, 62, e, 0, 1); + }, w(qn, "EcorePackageImpl/13", 1246), b(1247, 1, ze, _vn), o.fk = function(e) { + return D(e, 241); + }, o.gk = function(e) { + return K(Ef, Bn, 241, e, 0, 1); + }, w(qn, "EcorePackageImpl/14", 1247), b(1248, 1, ze, Hvn), o.fk = function(e) { + return D(e, 518); + }, o.gk = function(e) { + return K(jb, Bn, 2116, e, 0, 1); + }, w(qn, "EcorePackageImpl/15", 1248), b(1249, 1, ze, qvn), o.fk = function(e) { + return D(e, 102); + }, o.gk = function(e) { + return K(tg, f2, 19, e, 0, 1); + }, w(qn, "EcorePackageImpl/16", 1249), b(1250, 1, ze, Uvn), o.fk = function(e) { + return D(e, 179); + }, o.gk = function(e) { + return K(vu, f2, 179, e, 0, 1); + }, w(qn, "EcorePackageImpl/17", 1250), b(1251, 1, ze, Gvn), o.fk = function(e) { + return D(e, 481); + }, o.gk = function(e) { + return K(ng, Bn, 481, e, 0, 1); + }, w(qn, "EcorePackageImpl/18", 1251), b(1252, 1, ze, zvn), o.fk = function(e) { + return D(e, 561); + }, o.gk = function(e) { + return K(pc, nJn, 561, e, 0, 1); + }, w(qn, "EcorePackageImpl/19", 1252), b(1235, 1, ze, Xvn), o.fk = function(e) { + return D(e, 331); + }, o.gk = function(e) { + return K(eg, f2, 35, e, 0, 1); + }, w(qn, "EcorePackageImpl/2", 1235), b(1253, 1, ze, Vvn), o.fk = function(e) { + return D(e, 248); + }, o.gk = function(e) { + return K(Er, pJn, 89, e, 0, 1); + }, w(qn, "EcorePackageImpl/20", 1253), b(1254, 1, ze, Wvn), o.fk = function(e) { + return D(e, 457); + }, o.gk = function(e) { + return K(fu, Bn, 850, e, 0, 1); + }, w(qn, "EcorePackageImpl/21", 1254), b(1255, 1, ze, Jvn), o.fk = function(e) { + return $b(e); + }, o.gk = function(e) { + return K(zt, J, 485, e, 8, 1); + }, w(qn, "EcorePackageImpl/22", 1255), b(1256, 1, ze, Qvn), o.fk = function(e) { + return D(e, 195); + }, o.gk = function(e) { + return K(xu, J, 195, e, 0, 2); + }, w(qn, "EcorePackageImpl/23", 1256), b(1257, 1, ze, Yvn), o.fk = function(e) { + return D(e, 222); + }, o.gk = function(e) { + return K(p3, J, 222, e, 0, 1); + }, w(qn, "EcorePackageImpl/24", 1257), b(1258, 1, ze, Zvn), o.fk = function(e) { + return D(e, 180); + }, o.gk = function(e) { + return K(A8, J, 180, e, 0, 1); + }, w(qn, "EcorePackageImpl/25", 1258), b(1259, 1, ze, n6n), o.fk = function(e) { + return D(e, 206); + }, o.gk = function(e) { + return K(oP, J, 206, e, 0, 1); + }, w(qn, "EcorePackageImpl/26", 1259), b(1260, 1, ze, e6n), o.fk = function(e) { + return !1; + }, o.gk = function(e) { + return K(m0n, Bn, 2215, e, 0, 1); + }, w(qn, "EcorePackageImpl/27", 1260), b(1261, 1, ze, t6n), o.fk = function(e) { + return xb(e); + }, o.gk = function(e) { + return K(fi, J, 345, e, 7, 1); + }, w(qn, "EcorePackageImpl/28", 1261), b(1262, 1, ze, i6n), o.fk = function(e) { + return D(e, 61); + }, o.gk = function(e) { + return K(Ldn, yw, 61, e, 0, 1); + }, w(qn, "EcorePackageImpl/29", 1262), b(1236, 1, ze, r6n), o.fk = function(e) { + return D(e, 519); + }, o.gk = function(e) { + return K(Ue, { 3: 1, 4: 1, 5: 1, 2033: 1 }, 598, e, 0, 1); + }, w(qn, "EcorePackageImpl/3", 1236), b(1263, 1, ze, c6n), o.fk = function(e) { + return D(e, 582); + }, o.gk = function(e) { + return K(xdn, Bn, 2039, e, 0, 1); + }, w(qn, "EcorePackageImpl/30", 1263), b(1264, 1, ze, u6n), o.fk = function(e) { + return D(e, 160); + }, o.gk = function(e) { + return K(c0n, yw, 160, e, 0, 1); + }, w(qn, "EcorePackageImpl/31", 1264), b(1265, 1, ze, o6n), o.fk = function(e) { + return D(e, 76); + }, o.gk = function(e) { + return K(CO, TJn, 76, e, 0, 1); + }, w(qn, "EcorePackageImpl/32", 1265), b(1266, 1, ze, s6n), o.fk = function(e) { + return D(e, 161); + }, o.gk = function(e) { + return K(ov, J, 161, e, 0, 1); + }, w(qn, "EcorePackageImpl/33", 1266), b(1267, 1, ze, f6n), o.fk = function(e) { + return D(e, 17); + }, o.gk = function(e) { + return K(Gi, J, 17, e, 0, 1); + }, w(qn, "EcorePackageImpl/34", 1267), b(1268, 1, ze, h6n), o.fk = function(e) { + return D(e, 297); + }, o.gk = function(e) { + return K(run, Bn, 297, e, 0, 1); + }, w(qn, "EcorePackageImpl/35", 1268), b(1269, 1, ze, l6n), o.fk = function(e) { + return D(e, 168); + }, o.gk = function(e) { + return K(ib, J, 168, e, 0, 1); + }, w(qn, "EcorePackageImpl/36", 1269), b(1270, 1, ze, a6n), o.fk = function(e) { + return D(e, 85); + }, o.gk = function(e) { + return K(cun, Bn, 85, e, 0, 1); + }, w(qn, "EcorePackageImpl/37", 1270), b(1271, 1, ze, d6n), o.fk = function(e) { + return D(e, 599); + }, o.gk = function(e) { + return K(e0n, Bn, 599, e, 0, 1); + }, w(qn, "EcorePackageImpl/38", 1271), b(1272, 1, ze, b6n), o.fk = function(e) { + return !1; + }, o.gk = function(e) { + return K(v0n, Bn, 2216, e, 0, 1); + }, w(qn, "EcorePackageImpl/39", 1272), b(1237, 1, ze, w6n), o.fk = function(e) { + return D(e, 90); + }, o.gk = function(e) { + return K(As, Bn, 29, e, 0, 1); + }, w(qn, "EcorePackageImpl/4", 1237), b(1273, 1, ze, g6n), o.fk = function(e) { + return D(e, 191); + }, o.gk = function(e) { + return K(rb, J, 191, e, 0, 1); + }, w(qn, "EcorePackageImpl/40", 1273), b(1274, 1, ze, p6n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(qn, "EcorePackageImpl/41", 1274), b(1275, 1, ze, m6n), o.fk = function(e) { + return D(e, 596); + }, o.gk = function(e) { + return K($dn, Bn, 596, e, 0, 1); + }, w(qn, "EcorePackageImpl/42", 1275), b(1276, 1, ze, v6n), o.fk = function(e) { + return !1; + }, o.gk = function(e) { + return K(k0n, J, 2217, e, 0, 1); + }, w(qn, "EcorePackageImpl/43", 1276), b(1277, 1, ze, k6n), o.fk = function(e) { + return D(e, 44); + }, o.gk = function(e) { + return K(Id, WA, 44, e, 0, 1); + }, w(qn, "EcorePackageImpl/44", 1277), b(1238, 1, ze, y6n), o.fk = function(e) { + return D(e, 142); + }, o.gk = function(e) { + return K(Cf, Bn, 142, e, 0, 1); + }, w(qn, "EcorePackageImpl/5", 1238), b(1239, 1, ze, j6n), o.fk = function(e) { + return D(e, 156); + }, o.gk = function(e) { + return K(EU, Bn, 156, e, 0, 1); + }, w(qn, "EcorePackageImpl/6", 1239), b(1240, 1, ze, E6n), o.fk = function(e) { + return D(e, 469); + }, o.gk = function(e) { + return K(EO, Bn, 685, e, 0, 1); + }, w(qn, "EcorePackageImpl/7", 1240), b(1241, 1, ze, C6n), o.fk = function(e) { + return D(e, 582); + }, o.gk = function(e) { + return K(Bl, Bn, 694, e, 0, 1); + }, w(qn, "EcorePackageImpl/8", 1241), b(1242, 1, ze, M6n), o.fk = function(e) { + return D(e, 480); + }, o.gk = function(e) { + return K(I9, Bn, 480, e, 0, 1); + }, w(qn, "EcorePackageImpl/9", 1242), b(1038, 2080, ZWn, Njn), o.Mi = function(e, t) { + b5e(this, u(t, 424)); + }, o.Qi = function(e, t) { + S_n(this, e, u(t, 424)); + }, w(qn, "MinimalEObjectImpl/1ArrayDelegatingAdapterList", 1038), b(1039, 152, Wy, tIn), o.jj = function() { + return this.a.a; + }, w(qn, "MinimalEObjectImpl/1ArrayDelegatingAdapterList/1", 1039), b(1067, 1066, {}, gTn), w("org.eclipse.emf.ecore.plugin", "EcorePlugin", 1067); + var e0n = Nt(AJn, "Resource"); + b(799, 1524, SJn), o.Hl = function(e) { + }, o.Il = function(e) { + }, o.El = function() { + return !this.a && (this.a = new iD(this)), this.a; + }, o.Fl = function(e) { + var t, i, r, c, s; + if (r = e.length, r > 0) + if (zn(0, e.length), e.charCodeAt(0) == 47) { + for (s = new zc(4), c = 1, t = 1; t < r; ++t) + zn(t, e.length), e.charCodeAt(t) == 47 && (nn(s, c == t ? "" : (Bi(c, t, e.length), e.substr(c, t - c))), c = t + 1); + return nn(s, (zn(c, e.length + 1), e.substr(c))), pke(this, s); + } else + zn(r - 1, e.length), e.charCodeAt(r - 1) == 63 && (i = AV(e, bu(63), r - 2), i > 0 && (e = (Bi(0, i, e.length), e.substr(0, i)))); + return qEe(this, e); + }, o.Gl = function() { + return this.c; + }, o.Ib = function() { + var e; + return Va(this.Rm) + "@" + (e = mt(this) >>> 0, e.toString(16)) + " uri='" + this.d + "'"; + }, o.b = !1, w(AK, "ResourceImpl", 799), b(1525, 799, SJn, Cyn), w(AK, "BinaryResourceImpl", 1525), b(1190, 708, yK), o.bj = function(e) { + return D(e, 58) ? Nge(this, u(e, 58)) : D(e, 599) ? new ne(u(e, 599).El()) : x(e) === x(this.f) ? u(e, 16).Kc() : (p4(), aE.a); + }, o.Ob = function() { + return Fnn(this); + }, o.a = !1, w(Tt, "EcoreUtil/ContentTreeIterator", 1190), b(1526, 1190, yK, DPn), o.bj = function(e) { + return x(e) === x(this.f) ? u(e, 15).Kc() : new PDn(u(e, 58)); + }, w(AK, "ResourceImpl/5", 1526), b(658, 2092, gJn, iD), o.Hc = function(e) { + return this.i <= 4 ? vm(this, e) : D(e, 54) && u(e, 54).Jh() == this.a; + }, o.Mi = function(e, t) { + e == this.i - 1 && (this.a.b || (this.a.b = !0)); + }, o.Oi = function(e, t) { + e == 0 ? this.a.b || (this.a.b = !0) : t$(this, e, t); + }, o.Qi = function(e, t) { + }, o.Ri = function(e, t, i) { + }, o.Lj = function() { + return 2; + }, o.jj = function() { + return this.a; + }, o.Mj = function() { + return !0; + }, o.Nj = function(e, t) { + var i; + return i = u(e, 54), t = i.fi(this.a, t), t; + }, o.Oj = function(e, t) { + var i; + return i = u(e, 54), i.fi(null, t); + }, o.Pj = function() { + return !1; + }, o.Si = function() { + return !0; + }, o.aj = function(e) { + return K(Oa, Bn, 58, e, 0, 1); + }, o.Yi = function() { + return !1; + }, w(AK, "ResourceImpl/ContentsEList", 658), b(970, 2062, Bm, Myn), o.fd = function(e) { + return this.a.Ki(e); + }, o.gc = function() { + return this.a.gc(); + }, w(Tt, "AbstractSequentialInternalEList/1", 970); + var t0n, i0n, zi, r0n; + b(634, 1, {}, NSn); + var MO, TO; + w(Tt, "BasicExtendedMetaData", 634), b(1181, 1, {}, xMn), o.Jl = function() { + return null; + }, o.Kl = function() { + return this.a == -2 && dfe(this, qye(this.d, this.b)), this.a; + }, o.Ll = function() { + return null; + }, o.Ml = function() { + return Dn(), Dn(), or; + }, o.xe = function() { + return this.c == iv && bfe(this, YBn(this.d, this.b)), this.c; + }, o.Nl = function() { + return 0; + }, o.a = -2, o.c = iv, w(Tt, "BasicExtendedMetaData/EClassExtendedMetaDataImpl", 1181), b(1182, 1, {}, cDn), o.Jl = function() { + return this.a == (N4(), MO) && pfe(this, HAe(this.f, this.b)), this.a; + }, o.Kl = function() { + return 0; + }, o.Ll = function() { + return this.c == (N4(), MO) && wfe(this, qAe(this.f, this.b)), this.c; + }, o.Ml = function() { + return !this.d && vfe(this, APe(this.f, this.b)), this.d; + }, o.xe = function() { + return this.e == iv && yfe(this, YBn(this.f, this.b)), this.e; + }, o.Nl = function() { + return this.g == -2 && Efe(this, sye(this.f, this.b)), this.g; + }, o.e = iv, o.g = -2, w(Tt, "BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl", 1182), b(1180, 1, {}, FMn), o.b = !1, o.c = !1, w(Tt, "BasicExtendedMetaData/EPackageExtendedMetaDataImpl", 1180), b(1183, 1, {}, uDn), o.c = -2, o.e = iv, o.f = iv, w(Tt, "BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl", 1183), b(593, 632, Qr, QC), o.Lj = function() { + return this.c; + }, o.ol = function() { + return !1; + }, o.Wi = function(e, t) { + return t; + }, o.c = 0, w(Tt, "EDataTypeEList", 593); + var c0n = Nt(Tt, "FeatureMap"); + b(78, 593, { 3: 1, 4: 1, 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 59: 1, 70: 1, 66: 1, 61: 1, 79: 1, 160: 1, 220: 1, 2036: 1, 71: 1, 97: 1 }, _t), o.bd = function(e, t) { + oTe(this, e, u(t, 76)); + }, o.Fc = function(e) { + return MMe(this, u(e, 76)); + }, o.Hi = function(e) { + Owe(this, u(e, 76)); + }, o.Nj = function(e, t) { + return Yae(this, u(e, 76), t); + }, o.Oj = function(e, t) { + return PV(this, u(e, 76), t); + }, o.Ti = function(e, t) { + return LSe(this, e, t); + }, o.Wi = function(e, t) { + return vOe(this, e, u(t, 76)); + }, o.hd = function(e, t) { + return VTe(this, e, u(t, 76)); + }, o.Uj = function(e, t) { + return Zae(this, u(e, 76), t); + }, o.Vj = function(e, t) { + return fSn(this, u(e, 76), t); + }, o.Wj = function(e, t, i) { + return Wke(this, u(e, 76), u(t, 76), i); + }, o.Zi = function(e, t) { + return Jx(this, e, u(t, 76)); + }, o.Ol = function(e, t) { + return Sen(this, e, t); + }, o.cd = function(e, t) { + var i, r, c, s, f, h, l, a, d; + for (a = new P0(t.gc()), c = t.Kc(); c.Ob(); ) + if (r = u(c.Pb(), 76), s = r.Lk(), Sl(this.e, s)) + (!s.Si() || !_M(this, s, r.md()) && !vm(a, r)) && ve(a, r); + else { + for (d = ru(this.e.Dh(), s), i = u(this.g, 124), f = !0, h = 0; h < this.i; ++h) + if (l = i[h], d.am(l.Lk())) { + u(Rg(this, h, r), 76), f = !1; + break; + } + f && ve(a, r); + } + return JQ(this, e, a); + }, o.Gc = function(e) { + var t, i, r, c, s, f, h, l, a; + for (l = new P0(e.gc()), r = e.Kc(); r.Ob(); ) + if (i = u(r.Pb(), 76), c = i.Lk(), Sl(this.e, c)) + (!c.Si() || !_M(this, c, i.md()) && !vm(l, i)) && ve(l, i); + else { + for (a = ru(this.e.Dh(), c), t = u(this.g, 124), s = !0, f = 0; f < this.i; ++f) + if (h = t[f], a.am(h.Lk())) { + u(Rg(this, f, i), 76), s = !1; + break; + } + s && ve(l, i); + } + return Kt(this, l); + }, o.Fi = function(e) { + return this.j = -1, DF(this, this.i, e); + }, o.Pl = function(e, t, i) { + return ken(this, e, t, i); + }, o.Xk = function(e, t) { + return ly(this, e, t); + }, o.Ql = function(e, t, i) { + return zen(this, e, t, i); + }, o.Rl = function() { + return this; + }, o.Sl = function(e, t) { + return wy(this, e, t); + }, o.Tl = function(e) { + return u(L(this, e), 76).Lk(); + }, o.Ul = function(e) { + return u(L(this, e), 76).md(); + }, o.Vl = function() { + return this.b; + }, o.Mj = function() { + return !0; + }, o.Tj = function() { + return !0; + }, o.Wl = function(e) { + return !Fk(this, e); + }, o.aj = function(e) { + return K(Qoe, TJn, 343, e, 0, 1); + }, o.pl = function(e) { + return IL(this, e); + }, o.Wb = function(e) { + K7(this, e); + }, o.Xl = function(e, t) { + HA(this, e, t); + }, o.Yl = function(e) { + return oxn(this, e); + }, o.Zl = function(e) { + RRn(this, e); + }, w(Tt, "BasicFeatureMap", 78), b(1960, 1, _h), o.Nb = function(e) { + _i(this, e); + }, o.Rb = function(e) { + if (this.g == -1) + throw M(new Eu()); + aM(this); + try { + mqn(this.e, this.b, this.a, e), this.d = this.e.j, iA(this); + } catch (t) { + throw t = It(t), D(t, 77) ? M(new Bo()) : M(t); + } + }, o.Ob = function() { + return W$(this); + }, o.Sb = function() { + return LFn(this); + }, o.Pb = function() { + return iA(this); + }, o.Tb = function() { + return this.a; + }, o.Ub = function() { + var e; + if (LFn(this)) + return aM(this), this.g = --this.a, this.ul() && (e = L5(this.e, this.b, this.c, this.a, this.j), this.j = e), this.i = 0, this.j; + throw M(new nc()); + }, o.Vb = function() { + return this.a - 1; + }, o.Qb = function() { + if (this.g == -1) + throw M(new Eu()); + aM(this); + try { + l_n(this.e, this.b, this.g), this.d = this.e.j, this.g < this.a && (--this.a, --this.c), --this.g; + } catch (e) { + throw e = It(e), D(e, 77) ? M(new Bo()) : M(e); + } + }, o.ul = function() { + return !1; + }, o.Wb = function(e) { + if (this.g == -1) + throw M(new Eu()); + aM(this); + try { + HUn(this.e, this.b, this.g, e), this.d = this.e.j; + } catch (t) { + throw t = It(t), D(t, 77) ? M(new Bo()) : M(t); + } + }, o.a = 0, o.c = 0, o.d = 0, o.f = !1, o.g = 0, o.i = 0, w(Tt, "FeatureMapUtil/BasicFeatureEIterator", 1960), b(420, 1960, _h, Q4), o.$l = function() { + var e, t, i; + for (i = this.e.i, e = u(this.e.g, 124); this.c < i; ) { + if (t = e[this.c], this.k.am(t.Lk())) + return this.j = this.f ? t : t.md(), this.i = 2, !0; + ++this.c; + } + return this.i = 1, this.g = -1, !1; + }, o._l = function() { + var e, t; + for (e = u(this.e.g, 124); --this.c >= 0; ) + if (t = e[this.c], this.k.am(t.Lk())) + return this.j = this.f ? t : t.md(), this.i = -2, !0; + return this.i = -1, this.g = -1, !1; + }, w(Tt, "BasicFeatureMap/FeatureEIterator", 420), b(676, 420, _h, dL), o.ul = function() { + return !0; + }, w(Tt, "BasicFeatureMap/ResolvingFeatureEIterator", 676), b(968, 496, zS, TTn), o.pj = function() { + return this; + }, w(Tt, "EContentsEList/1", 968), b(969, 496, zS, JMn), o.ul = function() { + return !1; + }, w(Tt, "EContentsEList/2", 969), b(967, 287, XS, ATn), o.wl = function(e) { + }, o.Ob = function() { + return !1; + }, o.Sb = function() { + return !1; + }, w(Tt, "EContentsEList/FeatureIteratorImpl/1", 967), b(840, 593, Qr, xX), o.Ni = function() { + this.a = !0; + }, o.Qj = function() { + return this.a; + }, o.Gk = function() { + var e; + me(this), fo(this.e) ? (e = this.a, this.a = !1, it(this.e, new Rs(this.e, 2, this.c, e, !1))) : this.a = !1; + }, o.a = !1, w(Tt, "EDataTypeEList/Unsettable", 840), b(1958, 593, Qr, NTn), o.Si = function() { + return !0; + }, w(Tt, "EDataTypeUniqueEList", 1958), b(1959, 840, Qr, $Tn), o.Si = function() { + return !0; + }, w(Tt, "EDataTypeUniqueEList/Unsettable", 1959), b(147, 83, Qr, Mu), o.nl = function() { + return !0; + }, o.Wi = function(e, t) { + return e3(this, e, u(t, 58)); + }, w(Tt, "EObjectContainmentEList/Resolving", 147), b(1184, 555, Qr, xTn), o.nl = function() { + return !0; + }, o.Wi = function(e, t) { + return e3(this, e, u(t, 58)); + }, w(Tt, "EObjectContainmentEList/Unsettable/Resolving", 1184), b(766, 14, Qr, jV), o.Ni = function() { + this.a = !0; + }, o.Qj = function() { + return this.a; + }, o.Gk = function() { + var e; + me(this), fo(this.e) ? (e = this.a, this.a = !1, it(this.e, new Rs(this.e, 2, this.c, e, !1))) : this.a = !1; + }, o.a = !1, w(Tt, "EObjectContainmentWithInverseEList/Unsettable", 766), b(1222, 766, Qr, WAn), o.nl = function() { + return !0; + }, o.Wi = function(e, t) { + return e3(this, e, u(t, 58)); + }, w(Tt, "EObjectContainmentWithInverseEList/Unsettable/Resolving", 1222), b(757, 505, Qr, FX), o.Ni = function() { + this.a = !0; + }, o.Qj = function() { + return this.a; + }, o.Gk = function() { + var e; + me(this), fo(this.e) ? (e = this.a, this.a = !1, it(this.e, new Rs(this.e, 2, this.c, e, !1))) : this.a = !1; + }, o.a = !1, w(Tt, "EObjectEList/Unsettable", 757), b(338, 505, Qr, Eg), o.nl = function() { + return !0; + }, o.Wi = function(e, t) { + return e3(this, e, u(t, 58)); + }, w(Tt, "EObjectResolvingEList", 338), b(1844, 757, Qr, FTn), o.nl = function() { + return !0; + }, o.Wi = function(e, t) { + return e3(this, e, u(t, 58)); + }, w(Tt, "EObjectResolvingEList/Unsettable", 1844), b(1527, 1, {}, T6n); + var Zoe; + w(Tt, "EObjectValidator", 1527), b(559, 505, Qr, bM), o.il = function() { + return this.d; + }, o.jl = function() { + return this.b; + }, o.Mj = function() { + return !0; + }, o.ml = function() { + return !0; + }, o.b = 0, w(Tt, "EObjectWithInverseEList", 559), b(1225, 559, Qr, JAn), o.ll = function() { + return !0; + }, w(Tt, "EObjectWithInverseEList/ManyInverse", 1225), b(635, 559, Qr, NL), o.Ni = function() { + this.a = !0; + }, o.Qj = function() { + return this.a; + }, o.Gk = function() { + var e; + me(this), fo(this.e) ? (e = this.a, this.a = !1, it(this.e, new Rs(this.e, 2, this.c, e, !1))) : this.a = !1; + }, o.a = !1, w(Tt, "EObjectWithInverseEList/Unsettable", 635), b(1224, 635, Qr, QAn), o.ll = function() { + return !0; + }, w(Tt, "EObjectWithInverseEList/Unsettable/ManyInverse", 1224), b(767, 559, Qr, EV), o.nl = function() { + return !0; + }, o.Wi = function(e, t) { + return e3(this, e, u(t, 58)); + }, w(Tt, "EObjectWithInverseResolvingEList", 767), b(32, 767, Qr, Nn), o.ll = function() { + return !0; + }, w(Tt, "EObjectWithInverseResolvingEList/ManyInverse", 32), b(768, 635, Qr, CV), o.nl = function() { + return !0; + }, o.Wi = function(e, t) { + return e3(this, e, u(t, 58)); + }, w(Tt, "EObjectWithInverseResolvingEList/Unsettable", 768), b(1223, 768, Qr, YAn), o.ll = function() { + return !0; + }, w(Tt, "EObjectWithInverseResolvingEList/Unsettable/ManyInverse", 1223), b(1185, 632, Qr), o.Li = function() { + return (this.b & 1792) == 0; + }, o.Ni = function() { + this.b |= 1; + }, o.kl = function() { + return (this.b & 4) != 0; + }, o.Mj = function() { + return (this.b & 40) != 0; + }, o.ll = function() { + return (this.b & 16) != 0; + }, o.ml = function() { + return (this.b & 8) != 0; + }, o.nl = function() { + return (this.b & Aw) != 0; + }, o.al = function() { + return (this.b & 32) != 0; + }, o.ol = function() { + return (this.b & Gs) != 0; + }, o.fk = function(e) { + return this.d ? BDn(this.d, e) : this.Lk().Hk().fk(e); + }, o.Qj = function() { + return this.b & 2 ? (this.b & 1) != 0 : this.i != 0; + }, o.Si = function() { + return (this.b & 128) != 0; + }, o.Gk = function() { + var e; + me(this), this.b & 2 && (fo(this.e) ? (e = (this.b & 1) != 0, this.b &= -2, e4(this, new Rs(this.e, 2, Ot(this.e.Dh(), this.Lk()), e, !1))) : this.b &= -2); + }, o.Yi = function() { + return (this.b & 1536) == 0; + }, o.b = 0, w(Tt, "EcoreEList/Generic", 1185), b(1186, 1185, Qr, UIn), o.Lk = function() { + return this.a; + }, w(Tt, "EcoreEList/Dynamic", 1186), b(765, 66, Eh, BG), o.aj = function(e) { + return gk(this.a.a, e); + }, w(Tt, "EcoreEMap/1", 765), b(764, 83, Qr, jW), o.Mi = function(e, t) { + uA(this.b, u(t, 136)); + }, o.Oi = function(e, t) { + _xn(this.b); + }, o.Pi = function(e, t, i) { + var r; + ++(r = this.b, u(t, 136), r).e; + }, o.Qi = function(e, t) { + cx(this.b, u(t, 136)); + }, o.Ri = function(e, t, i) { + cx(this.b, u(i, 136)), x(i) === x(t) && u(i, 136).Ci(Jle(u(t, 136).ld())), uA(this.b, u(t, 136)); + }, w(Tt, "EcoreEMap/DelegateEObjectContainmentEList", 764), b(1220, 141, Ucn, rxn), w(Tt, "EcoreEMap/Unsettable", 1220), b(1221, 764, Qr, ZAn), o.Ni = function() { + this.a = !0; + }, o.Qj = function() { + return this.a; + }, o.Gk = function() { + var e; + me(this), fo(this.e) ? (e = this.a, this.a = !1, it(this.e, new Rs(this.e, 2, this.c, e, !1))) : this.a = !1; + }, o.a = !1, w(Tt, "EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList", 1221), b(1189, 215, n2, GPn), o.a = !1, o.b = !1, w(Tt, "EcoreUtil/Copier", 1189), b(759, 1, Ii, PDn), o.Nb = function(e) { + _i(this, e); + }, o.Ob = function() { + return FBn(this); + }, o.Pb = function() { + var e; + return FBn(this), e = this.b, this.b = null, e; + }, o.Qb = function() { + this.a.Qb(); + }, w(Tt, "EcoreUtil/ProperContentIterator", 759), b(1528, 1527, {}, T8n); + var nse; + w(Tt, "EcoreValidator", 1528); + var ese; + Nt(Tt, "FeatureMapUtil/Validator"), b(1295, 1, { 2041: 1 }, A6n), o.am = function(e) { + return !0; + }, w(Tt, "FeatureMapUtil/1", 1295), b(773, 1, { 2041: 1 }, rtn), o.am = function(e) { + var t; + return this.c == e ? !0 : (t = un(ee(this.a, e)), t == null ? WAe(this, e) ? (PLn(this.a, e, (_n(), uv)), !0) : (PLn(this.a, e, (_n(), ga)), !1) : t == (_n(), uv)); + }, o.e = !1; + var AU; + w(Tt, "FeatureMapUtil/BasicValidator", 773), b(774, 45, n2, NX), w(Tt, "FeatureMapUtil/BasicValidator/Cache", 774), b(509, 56, { 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 61: 1, 79: 1, 71: 1, 97: 1 }, k7), o.bd = function(e, t) { + mqn(this.c, this.b, e, t); + }, o.Fc = function(e) { + return Sen(this.c, this.b, e); + }, o.cd = function(e, t) { + return gIe(this.c, this.b, e, t); + }, o.Gc = function(e) { + return P6(this, e); + }, o.Gi = function(e, t) { + lme(this.c, this.b, e, t); + }, o.Wk = function(e, t) { + return ken(this.c, this.b, e, t); + }, o.$i = function(e) { + return _A(this.c, this.b, e, !1); + }, o.Ii = function() { + return sTn(this.c, this.b); + }, o.Ji = function() { + return Fle(this.c, this.b); + }, o.Ki = function(e) { + return g4e(this.c, this.b, e); + }, o.Xk = function(e, t) { + return DAn(this, e, t); + }, o.$b = function() { + cp(this); + }, o.Hc = function(e) { + return _M(this.c, this.b, e); + }, o.Ic = function(e) { + return wve(this.c, this.b, e); + }, o.Xb = function(e) { + return _A(this.c, this.b, e, !0); + }, o.Fk = function(e) { + return this; + }, o.dd = function(e) { + return E3e(this.c, this.b, e); + }, o.dc = function() { + return TC(this); + }, o.Qj = function() { + return !Fk(this.c, this.b); + }, o.Kc = function() { + return eme(this.c, this.b); + }, o.ed = function() { + return tme(this.c, this.b); + }, o.fd = function(e) { + return L5e(this.c, this.b, e); + }, o.Ti = function(e, t) { + return LUn(this.c, this.b, e, t); + }, o.Ui = function(e, t) { + v4e(this.c, this.b, e, t); + }, o.gd = function(e) { + return l_n(this.c, this.b, e); + }, o.Mc = function(e) { + return mSe(this.c, this.b, e); + }, o.hd = function(e, t) { + return HUn(this.c, this.b, e, t); + }, o.Wb = function(e) { + jA(this.c, this.b), P6(this, u(e, 15)); + }, o.gc = function() { + return D5e(this.c, this.b); + }, o.Pc = function() { + return Mpe(this.c, this.b); + }, o.Qc = function(e) { + return C3e(this.c, this.b, e); + }, o.Ib = function() { + var e, t; + for (t = new ql(), t.a += "[", e = sTn(this.c, this.b); W$(e); ) + Cr(t, O6(iA(e))), W$(e) && (t.a += cr); + return t.a += "]", t.a; + }, o.Gk = function() { + jA(this.c, this.b); + }, w(Tt, "FeatureMapUtil/FeatureEList", 509), b(644, 39, Wy, GN), o.hj = function(e) { + return m5(this, e); + }, o.mj = function(e) { + var t, i, r, c, s, f, h; + switch (this.d) { + case 1: + case 2: { + if (s = e.jj(), x(s) === x(this.c) && m5(this, null) == e.hj(null)) + return this.g = e.ij(), e.gj() == 1 && (this.d = 1), !0; + break; + } + case 3: { + switch (c = e.gj(), c) { + case 3: { + if (s = e.jj(), x(s) === x(this.c) && m5(this, null) == e.hj(null)) + return this.d = 5, t = new P0(2), ve(t, this.g), ve(t, e.ij()), this.g = t, !0; + break; + } + } + break; + } + case 5: { + switch (c = e.gj(), c) { + case 3: { + if (s = e.jj(), x(s) === x(this.c) && m5(this, null) == e.hj(null)) + return i = u(this.g, 16), i.Fc(e.ij()), !0; + break; + } + } + break; + } + case 4: { + switch (c = e.gj(), c) { + case 3: { + if (s = e.jj(), x(s) === x(this.c) && m5(this, null) == e.hj(null)) + return this.d = 1, this.g = e.ij(), !0; + break; + } + case 4: { + if (s = e.jj(), x(s) === x(this.c) && m5(this, null) == e.hj(null)) + return this.d = 6, h = new P0(2), ve(h, this.n), ve(h, e.kj()), this.n = h, f = A(T(ye, 1), _e, 28, 15, [this.o, e.lj()]), this.g = f, !0; + break; + } + } + break; + } + case 6: { + switch (c = e.gj(), c) { + case 4: { + if (s = e.jj(), x(s) === x(this.c) && m5(this, null) == e.hj(null)) + return i = u(this.n, 16), i.Fc(e.kj()), f = u(this.g, 53), r = K(ye, _e, 28, f.length + 1, 15, 1), Oc(f, 0, r, 0, f.length), r[f.length] = e.lj(), this.g = r, !0; + break; + } + } + break; + } + } + return !1; + }, w(Tt, "FeatureMapUtil/FeatureENotificationImpl", 644), b(564, 509, { 20: 1, 31: 1, 56: 1, 16: 1, 15: 1, 61: 1, 79: 1, 160: 1, 220: 1, 2036: 1, 71: 1, 97: 1 }, eM), o.Ol = function(e, t) { + return Sen(this.c, e, t); + }, o.Pl = function(e, t, i) { + return ken(this.c, e, t, i); + }, o.Ql = function(e, t, i) { + return zen(this.c, e, t, i); + }, o.Rl = function() { + return this; + }, o.Sl = function(e, t) { + return wy(this.c, e, t); + }, o.Tl = function(e) { + return u(_A(this.c, this.b, e, !1), 76).Lk(); + }, o.Ul = function(e) { + return u(_A(this.c, this.b, e, !1), 76).md(); + }, o.Vl = function() { + return this.a; + }, o.Wl = function(e) { + return !Fk(this.c, e); + }, o.Xl = function(e, t) { + HA(this.c, e, t); + }, o.Yl = function(e) { + return oxn(this.c, e); + }, o.Zl = function(e) { + RRn(this.c, e); + }, w(Tt, "FeatureMapUtil/FeatureFeatureMap", 564), b(1294, 1, TK, $Mn), o.Fk = function(e) { + return _A(this.b, this.a, -1, e); + }, o.Qj = function() { + return !Fk(this.b, this.a); + }, o.Wb = function(e) { + HA(this.b, this.a, e); + }, o.Gk = function() { + jA(this.b, this.a); + }, w(Tt, "FeatureMapUtil/FeatureValue", 1294); + var K3, SU, PU, _3, tse, bE = Nt(eP, "AnyType"); + b(680, 63, Pl, kD), w(eP, "InvalidDatatypeValueException", 680); + var AO = Nt(eP, IJn), wE = Nt(eP, OJn), u0n = Nt(eP, DJn), ise, yc, o0n, Xd, rse, cse, use, ose, sse, fse, hse, lse, ase, dse, bse, G2, wse, z2, $9, gse, Mb, gE, pE, pse, x9, F9; + b(844, 516, { 110: 1, 94: 1, 93: 1, 58: 1, 54: 1, 99: 1, 857: 1 }, iz), o.Lh = function(e, t, i) { + switch (e) { + case 0: + return i ? (!this.c && (this.c = new _t(this, 0)), this.c) : (!this.c && (this.c = new _t(this, 0)), this.c.b); + case 1: + return i ? (!this.c && (this.c = new _t(this, 0)), u(xc(this.c, (at(), Xd)), 160)) : (!this.c && (this.c = new _t(this, 0)), u(u(xc(this.c, (at(), Xd)), 160), 220)).Vl(); + case 2: + return i ? (!this.b && (this.b = new _t(this, 2)), this.b) : (!this.b && (this.b = new _t(this, 2)), this.b.b); + } + return zo(this, e - se(this.ii()), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : this.ii(), e), t, i); + }, o.Uh = function(e, t, i) { + var r; + switch (t) { + case 0: + return !this.c && (this.c = new _t(this, 0)), ly(this.c, e, i); + case 1: + return (!this.c && (this.c = new _t(this, 0)), u(u(xc(this.c, (at(), Xd)), 160), 71)).Xk(e, i); + case 2: + return !this.b && (this.b = new _t(this, 2)), ly(this.b, e, i); + } + return r = u($n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : this.ii(), t), 69), r.wk().Ak(this, uQ(this), t - se(this.ii()), e, i); + }, o.Wh = function(e) { + switch (e) { + case 0: + return !!this.c && this.c.i != 0; + case 1: + return !(!this.c && (this.c = new _t(this, 0)), u(xc(this.c, (at(), Xd)), 160)).dc(); + case 2: + return !!this.b && this.b.i != 0; + } + return Uo(this, e - se(this.ii()), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : this.ii(), e)); + }, o.bi = function(e, t) { + switch (e) { + case 0: + !this.c && (this.c = new _t(this, 0)), K7(this.c, t); + return; + case 1: + (!this.c && (this.c = new _t(this, 0)), u(u(xc(this.c, (at(), Xd)), 160), 220)).Wb(t); + return; + case 2: + !this.b && (this.b = new _t(this, 2)), K7(this.b, t); + return; + } + Jo(this, e - se(this.ii()), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : this.ii(), e), t); + }, o.ii = function() { + return at(), o0n; + }, o.ki = function(e) { + switch (e) { + case 0: + !this.c && (this.c = new _t(this, 0)), me(this.c); + return; + case 1: + (!this.c && (this.c = new _t(this, 0)), u(xc(this.c, (at(), Xd)), 160)).$b(); + return; + case 2: + !this.b && (this.b = new _t(this, 2)), me(this.b); + return; + } + Wo(this, e - se(this.ii()), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : this.ii(), e)); + }, o.Ib = function() { + var e; + return this.j & 4 ? Hs(this) : (e = new ls(Hs(this)), e.a += " (mixed: ", M6(e, this.c), e.a += ", anyAttribute: ", M6(e, this.b), e.a += ")", e.a); + }, w(si, "AnyTypeImpl", 844), b(681, 516, { 110: 1, 94: 1, 93: 1, 58: 1, 54: 1, 99: 1, 2119: 1, 681: 1 }, B6n), o.Lh = function(e, t, i) { + switch (e) { + case 0: + return this.a; + case 1: + return this.b; + } + return zo(this, e - se((at(), G2)), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : G2, e), t, i); + }, o.Wh = function(e) { + switch (e) { + case 0: + return this.a != null; + case 1: + return this.b != null; + } + return Uo(this, e - se((at(), G2)), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : G2, e)); + }, o.bi = function(e, t) { + switch (e) { + case 0: + Tfe(this, Oe(t)); + return; + case 1: + Sfe(this, Oe(t)); + return; + } + Jo(this, e - se((at(), G2)), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : G2, e), t); + }, o.ii = function() { + return at(), G2; + }, o.ki = function(e) { + switch (e) { + case 0: + this.a = null; + return; + case 1: + this.b = null; + return; + } + Wo(this, e - se((at(), G2)), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : G2, e)); + }, o.Ib = function() { + var e; + return this.j & 4 ? Hs(this) : (e = new ls(Hs(this)), e.a += " (data: ", Cr(e, this.a), e.a += ", target: ", Cr(e, this.b), e.a += ")", e.a); + }, o.a = null, o.b = null, w(si, "ProcessingInstructionImpl", 681), b(682, 844, { 110: 1, 94: 1, 93: 1, 58: 1, 54: 1, 99: 1, 857: 1, 2120: 1, 682: 1 }, bjn), o.Lh = function(e, t, i) { + switch (e) { + case 0: + return i ? (!this.c && (this.c = new _t(this, 0)), this.c) : (!this.c && (this.c = new _t(this, 0)), this.c.b); + case 1: + return i ? (!this.c && (this.c = new _t(this, 0)), u(xc(this.c, (at(), Xd)), 160)) : (!this.c && (this.c = new _t(this, 0)), u(u(xc(this.c, (at(), Xd)), 160), 220)).Vl(); + case 2: + return i ? (!this.b && (this.b = new _t(this, 2)), this.b) : (!this.b && (this.b = new _t(this, 2)), this.b.b); + case 3: + return !this.c && (this.c = new _t(this, 0)), Oe(wy(this.c, (at(), $9), !0)); + case 4: + return TV(this.a, (!this.c && (this.c = new _t(this, 0)), Oe(wy(this.c, (at(), $9), !0)))); + case 5: + return this.a; + } + return zo(this, e - se((at(), z2)), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : z2, e), t, i); + }, o.Wh = function(e) { + switch (e) { + case 0: + return !!this.c && this.c.i != 0; + case 1: + return !(!this.c && (this.c = new _t(this, 0)), u(xc(this.c, (at(), Xd)), 160)).dc(); + case 2: + return !!this.b && this.b.i != 0; + case 3: + return !this.c && (this.c = new _t(this, 0)), Oe(wy(this.c, (at(), $9), !0)) != null; + case 4: + return TV(this.a, (!this.c && (this.c = new _t(this, 0)), Oe(wy(this.c, (at(), $9), !0)))) != null; + case 5: + return !!this.a; + } + return Uo(this, e - se((at(), z2)), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : z2, e)); + }, o.bi = function(e, t) { + switch (e) { + case 0: + !this.c && (this.c = new _t(this, 0)), K7(this.c, t); + return; + case 1: + (!this.c && (this.c = new _t(this, 0)), u(u(xc(this.c, (at(), Xd)), 160), 220)).Wb(t); + return; + case 2: + !this.b && (this.b = new _t(this, 2)), K7(this.b, t); + return; + case 3: + bJ(this, Oe(t)); + return; + case 4: + bJ(this, MV(this.a, t)); + return; + case 5: + Afe(this, u(t, 156)); + return; + } + Jo(this, e - se((at(), z2)), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : z2, e), t); + }, o.ii = function() { + return at(), z2; + }, o.ki = function(e) { + switch (e) { + case 0: + !this.c && (this.c = new _t(this, 0)), me(this.c); + return; + case 1: + (!this.c && (this.c = new _t(this, 0)), u(xc(this.c, (at(), Xd)), 160)).$b(); + return; + case 2: + !this.b && (this.b = new _t(this, 2)), me(this.b); + return; + case 3: + !this.c && (this.c = new _t(this, 0)), HA(this.c, (at(), $9), null); + return; + case 4: + bJ(this, MV(this.a, null)); + return; + case 5: + this.a = null; + return; + } + Wo(this, e - se((at(), z2)), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : z2, e)); + }, w(si, "SimpleAnyTypeImpl", 682), b(683, 516, { 110: 1, 94: 1, 93: 1, 58: 1, 54: 1, 99: 1, 2121: 1, 683: 1 }, wjn), o.Lh = function(e, t, i) { + switch (e) { + case 0: + return i ? (!this.a && (this.a = new _t(this, 0)), this.a) : (!this.a && (this.a = new _t(this, 0)), this.a.b); + case 1: + return i ? (!this.b && (this.b = new Pu((On(), lr), pc, this, 1)), this.b) : (!this.b && (this.b = new Pu((On(), lr), pc, this, 1)), rk(this.b)); + case 2: + return i ? (!this.c && (this.c = new Pu((On(), lr), pc, this, 2)), this.c) : (!this.c && (this.c = new Pu((On(), lr), pc, this, 2)), rk(this.c)); + case 3: + return !this.a && (this.a = new _t(this, 0)), xc(this.a, (at(), gE)); + case 4: + return !this.a && (this.a = new _t(this, 0)), xc(this.a, (at(), pE)); + case 5: + return !this.a && (this.a = new _t(this, 0)), xc(this.a, (at(), x9)); + case 6: + return !this.a && (this.a = new _t(this, 0)), xc(this.a, (at(), F9)); + } + return zo(this, e - se((at(), Mb)), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : Mb, e), t, i); + }, o.Uh = function(e, t, i) { + var r; + switch (t) { + case 0: + return !this.a && (this.a = new _t(this, 0)), ly(this.a, e, i); + case 1: + return !this.b && (this.b = new Pu((On(), lr), pc, this, 1)), UC(this.b, e, i); + case 2: + return !this.c && (this.c = new Pu((On(), lr), pc, this, 2)), UC(this.c, e, i); + case 5: + return !this.a && (this.a = new _t(this, 0)), DAn(xc(this.a, (at(), x9)), e, i); + } + return r = u($n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : (at(), Mb), t), 69), r.wk().Ak(this, uQ(this), t - se((at(), Mb)), e, i); + }, o.Wh = function(e) { + switch (e) { + case 0: + return !!this.a && this.a.i != 0; + case 1: + return !!this.b && this.b.f != 0; + case 2: + return !!this.c && this.c.f != 0; + case 3: + return !this.a && (this.a = new _t(this, 0)), !TC(xc(this.a, (at(), gE))); + case 4: + return !this.a && (this.a = new _t(this, 0)), !TC(xc(this.a, (at(), pE))); + case 5: + return !this.a && (this.a = new _t(this, 0)), !TC(xc(this.a, (at(), x9))); + case 6: + return !this.a && (this.a = new _t(this, 0)), !TC(xc(this.a, (at(), F9))); + } + return Uo(this, e - se((at(), Mb)), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : Mb, e)); + }, o.bi = function(e, t) { + switch (e) { + case 0: + !this.a && (this.a = new _t(this, 0)), K7(this.a, t); + return; + case 1: + !this.b && (this.b = new Pu((On(), lr), pc, this, 1)), TT(this.b, t); + return; + case 2: + !this.c && (this.c = new Pu((On(), lr), pc, this, 2)), TT(this.c, t); + return; + case 3: + !this.a && (this.a = new _t(this, 0)), cp(xc(this.a, (at(), gE))), !this.a && (this.a = new _t(this, 0)), P6(xc(this.a, gE), u(t, 16)); + return; + case 4: + !this.a && (this.a = new _t(this, 0)), cp(xc(this.a, (at(), pE))), !this.a && (this.a = new _t(this, 0)), P6(xc(this.a, pE), u(t, 16)); + return; + case 5: + !this.a && (this.a = new _t(this, 0)), cp(xc(this.a, (at(), x9))), !this.a && (this.a = new _t(this, 0)), P6(xc(this.a, x9), u(t, 16)); + return; + case 6: + !this.a && (this.a = new _t(this, 0)), cp(xc(this.a, (at(), F9))), !this.a && (this.a = new _t(this, 0)), P6(xc(this.a, F9), u(t, 16)); + return; + } + Jo(this, e - se((at(), Mb)), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : Mb, e), t); + }, o.ii = function() { + return at(), Mb; + }, o.ki = function(e) { + switch (e) { + case 0: + !this.a && (this.a = new _t(this, 0)), me(this.a); + return; + case 1: + !this.b && (this.b = new Pu((On(), lr), pc, this, 1)), this.b.c.$b(); + return; + case 2: + !this.c && (this.c = new Pu((On(), lr), pc, this, 2)), this.c.c.$b(); + return; + case 3: + !this.a && (this.a = new _t(this, 0)), cp(xc(this.a, (at(), gE))); + return; + case 4: + !this.a && (this.a = new _t(this, 0)), cp(xc(this.a, (at(), pE))); + return; + case 5: + !this.a && (this.a = new _t(this, 0)), cp(xc(this.a, (at(), x9))); + return; + case 6: + !this.a && (this.a = new _t(this, 0)), cp(xc(this.a, (at(), F9))); + return; + } + Wo(this, e - se((at(), Mb)), $n(this.j & 2 ? (!this.k && (this.k = new uf()), this.k).Nk() : Mb, e)); + }, o.Ib = function() { + var e; + return this.j & 4 ? Hs(this) : (e = new ls(Hs(this)), e.a += " (mixed: ", M6(e, this.a), e.a += ")", e.a); + }, w(si, "XMLTypeDocumentRootImpl", 683), b(2028, 720, { 110: 1, 94: 1, 93: 1, 480: 1, 155: 1, 58: 1, 114: 1, 54: 1, 99: 1, 158: 1, 119: 1, 120: 1, 2122: 1 }, S6n), o.ri = function(e, t) { + switch (e.hk()) { + case 7: + case 8: + case 9: + case 10: + case 16: + case 22: + case 23: + case 24: + case 25: + case 26: + case 32: + case 33: + case 34: + case 36: + case 37: + case 44: + case 45: + case 50: + case 51: + case 53: + case 55: + case 56: + case 57: + case 58: + case 60: + case 61: + case 4: + return t == null ? null : Jr(t); + case 19: + case 28: + case 29: + case 35: + case 38: + case 39: + case 41: + case 46: + case 52: + case 54: + case 5: + return Oe(t); + case 6: + return fae(u(t, 195)); + case 12: + case 47: + case 49: + case 11: + return PGn(this, e, t); + case 13: + return t == null ? null : kIe(u(t, 247)); + case 15: + case 14: + return t == null ? null : Mwe($(R(t))); + case 17: + return TKn((at(), t)); + case 18: + return TKn(t); + case 21: + case 20: + return t == null ? null : Twe(u(t, 161).a); + case 27: + return hae(u(t, 195)); + case 30: + return KRn((at(), u(t, 15))); + case 31: + return KRn(u(t, 15)); + case 40: + return aae((at(), t)); + case 42: + return AKn((at(), t)); + case 43: + return AKn(t); + case 59: + case 48: + return lae((at(), t)); + default: + throw M(new Gn(nv + e.xe() + eb)); + } + }, o.si = function(e) { + var t, i, r, c, s; + switch (e.G == -1 && (e.G = (i = jo(e), i ? h1(i.vi(), e) : -1)), e.G) { + case 0: + return t = new iz(), t; + case 1: + return r = new B6n(), r; + case 2: + return c = new bjn(), c; + case 3: + return s = new wjn(), s; + default: + throw M(new Gn(hK + e.zb + eb)); + } + }, o.ti = function(e, t) { + var i, r, c, s, f, h, l, a, d, g, p, m, k, j, S, I; + switch (e.hk()) { + case 5: + case 52: + case 4: + return t; + case 6: + return m9e(t); + case 8: + case 7: + return t == null ? null : rye(t); + case 9: + return t == null ? null : ak(Ao((r = Bc(t, !0), r.length > 0 && (zn(0, r.length), r.charCodeAt(0) == 43) ? (zn(1, r.length + 1), r.substr(1)) : r), -128, 127) << 24 >> 24); + case 10: + return t == null ? null : ak(Ao((c = Bc(t, !0), c.length > 0 && (zn(0, c.length), c.charCodeAt(0) == 43) ? (zn(1, c.length + 1), c.substr(1)) : c), -128, 127) << 24 >> 24); + case 11: + return Oe(X0(this, (at(), use), t)); + case 12: + return Oe(X0(this, (at(), ose), t)); + case 13: + return t == null ? null : new Az(Bc(t, !0)); + case 15: + case 14: + return AMe(t); + case 16: + return Oe(X0(this, (at(), sse), t)); + case 17: + return HBn((at(), t)); + case 18: + return HBn(t); + case 28: + case 29: + case 35: + case 38: + case 39: + case 41: + case 54: + case 19: + return Bc(t, !0); + case 21: + case 20: + return FMe(t); + case 22: + return Oe(X0(this, (at(), fse), t)); + case 23: + return Oe(X0(this, (at(), hse), t)); + case 24: + return Oe(X0(this, (at(), lse), t)); + case 25: + return Oe(X0(this, (at(), ase), t)); + case 26: + return Oe(X0(this, (at(), dse), t)); + case 27: + return u9e(t); + case 30: + return qBn((at(), t)); + case 31: + return qBn(t); + case 32: + return t == null ? null : Y(Ao((d = Bc(t, !0), d.length > 0 && (zn(0, d.length), d.charCodeAt(0) == 43) ? (zn(1, d.length + 1), d.substr(1)) : d), Wi, et)); + case 33: + return t == null ? null : new H1((g = Bc(t, !0), g.length > 0 && (zn(0, g.length), g.charCodeAt(0) == 43) ? (zn(1, g.length + 1), g.substr(1)) : g)); + case 34: + return t == null ? null : Y(Ao((p = Bc(t, !0), p.length > 0 && (zn(0, p.length), p.charCodeAt(0) == 43) ? (zn(1, p.length + 1), p.substr(1)) : p), Wi, et)); + case 36: + return t == null ? null : Ml(zA((m = Bc(t, !0), m.length > 0 && (zn(0, m.length), m.charCodeAt(0) == 43) ? (zn(1, m.length + 1), m.substr(1)) : m))); + case 37: + return t == null ? null : Ml(zA((k = Bc(t, !0), k.length > 0 && (zn(0, k.length), k.charCodeAt(0) == 43) ? (zn(1, k.length + 1), k.substr(1)) : k))); + case 40: + return i7e((at(), t)); + case 42: + return UBn((at(), t)); + case 43: + return UBn(t); + case 44: + return t == null ? null : new H1((j = Bc(t, !0), j.length > 0 && (zn(0, j.length), j.charCodeAt(0) == 43) ? (zn(1, j.length + 1), j.substr(1)) : j)); + case 45: + return t == null ? null : new H1((S = Bc(t, !0), S.length > 0 && (zn(0, S.length), S.charCodeAt(0) == 43) ? (zn(1, S.length + 1), S.substr(1)) : S)); + case 46: + return Bc(t, !1); + case 47: + return Oe(X0(this, (at(), bse), t)); + case 59: + case 48: + return t7e((at(), t)); + case 49: + return Oe(X0(this, (at(), wse), t)); + case 50: + return t == null ? null : om(Ao((I = Bc(t, !0), I.length > 0 && (zn(0, I.length), I.charCodeAt(0) == 43) ? (zn(1, I.length + 1), I.substr(1)) : I), QS, 32767) << 16 >> 16); + case 51: + return t == null ? null : om(Ao((s = Bc(t, !0), s.length > 0 && (zn(0, s.length), s.charCodeAt(0) == 43) ? (zn(1, s.length + 1), s.substr(1)) : s), QS, 32767) << 16 >> 16); + case 53: + return Oe(X0(this, (at(), gse), t)); + case 55: + return t == null ? null : om(Ao((f = Bc(t, !0), f.length > 0 && (zn(0, f.length), f.charCodeAt(0) == 43) ? (zn(1, f.length + 1), f.substr(1)) : f), QS, 32767) << 16 >> 16); + case 56: + return t == null ? null : om(Ao((h = Bc(t, !0), h.length > 0 && (zn(0, h.length), h.charCodeAt(0) == 43) ? (zn(1, h.length + 1), h.substr(1)) : h), QS, 32767) << 16 >> 16); + case 57: + return t == null ? null : Ml(zA((l = Bc(t, !0), l.length > 0 && (zn(0, l.length), l.charCodeAt(0) == 43) ? (zn(1, l.length + 1), l.substr(1)) : l))); + case 58: + return t == null ? null : Ml(zA((a = Bc(t, !0), a.length > 0 && (zn(0, a.length), a.charCodeAt(0) == 43) ? (zn(1, a.length + 1), a.substr(1)) : a))); + case 60: + return t == null ? null : Y(Ao((i = Bc(t, !0), i.length > 0 && (zn(0, i.length), i.charCodeAt(0) == 43) ? (zn(1, i.length + 1), i.substr(1)) : i), Wi, et)); + case 61: + return t == null ? null : Y(Ao(Bc(t, !0), Wi, et)); + default: + throw M(new Gn(nv + e.xe() + eb)); + } + }; + var mse, s0n, vse, f0n; + w(si, "XMLTypeFactoryImpl", 2028), b(594, 184, { 110: 1, 94: 1, 93: 1, 155: 1, 197: 1, 58: 1, 241: 1, 114: 1, 54: 1, 99: 1, 158: 1, 184: 1, 119: 1, 120: 1, 690: 1, 2044: 1, 594: 1 }, dIn), o.N = !1, o.O = !1; + var kse = !1; + w(si, "XMLTypePackageImpl", 594), b(1961, 1, { 851: 1 }, P6n), o.Kk = function() { + return Fen(), Pse; + }, w(si, "XMLTypePackageImpl/1", 1961), b(1970, 1, ze, I6n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/10", 1970), b(1971, 1, ze, O6n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/11", 1971), b(1972, 1, ze, D6n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/12", 1972), b(1973, 1, ze, L6n), o.fk = function(e) { + return xb(e); + }, o.gk = function(e) { + return K(fi, J, 345, e, 7, 1); + }, w(si, "XMLTypePackageImpl/13", 1973), b(1974, 1, ze, N6n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/14", 1974), b(1975, 1, ze, $6n), o.fk = function(e) { + return D(e, 15); + }, o.gk = function(e) { + return K(rs, yw, 15, e, 0, 1); + }, w(si, "XMLTypePackageImpl/15", 1975), b(1976, 1, ze, x6n), o.fk = function(e) { + return D(e, 15); + }, o.gk = function(e) { + return K(rs, yw, 15, e, 0, 1); + }, w(si, "XMLTypePackageImpl/16", 1976), b(1977, 1, ze, F6n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/17", 1977), b(1978, 1, ze, R6n), o.fk = function(e) { + return D(e, 161); + }, o.gk = function(e) { + return K(ov, J, 161, e, 0, 1); + }, w(si, "XMLTypePackageImpl/18", 1978), b(1979, 1, ze, K6n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/19", 1979), b(1962, 1, ze, _6n), o.fk = function(e) { + return D(e, 857); + }, o.gk = function(e) { + return K(bE, Bn, 857, e, 0, 1); + }, w(si, "XMLTypePackageImpl/2", 1962), b(1980, 1, ze, H6n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/20", 1980), b(1981, 1, ze, q6n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/21", 1981), b(1982, 1, ze, U6n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/22", 1982), b(1983, 1, ze, G6n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/23", 1983), b(1984, 1, ze, z6n), o.fk = function(e) { + return D(e, 195); + }, o.gk = function(e) { + return K(xu, J, 195, e, 0, 2); + }, w(si, "XMLTypePackageImpl/24", 1984), b(1985, 1, ze, X6n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/25", 1985), b(1986, 1, ze, V6n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/26", 1986), b(1987, 1, ze, W6n), o.fk = function(e) { + return D(e, 15); + }, o.gk = function(e) { + return K(rs, yw, 15, e, 0, 1); + }, w(si, "XMLTypePackageImpl/27", 1987), b(1988, 1, ze, J6n), o.fk = function(e) { + return D(e, 15); + }, o.gk = function(e) { + return K(rs, yw, 15, e, 0, 1); + }, w(si, "XMLTypePackageImpl/28", 1988), b(1989, 1, ze, Q6n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/29", 1989), b(1963, 1, ze, Y6n), o.fk = function(e) { + return D(e, 681); + }, o.gk = function(e) { + return K(AO, Bn, 2119, e, 0, 1); + }, w(si, "XMLTypePackageImpl/3", 1963), b(1990, 1, ze, Z6n), o.fk = function(e) { + return D(e, 17); + }, o.gk = function(e) { + return K(Gi, J, 17, e, 0, 1); + }, w(si, "XMLTypePackageImpl/30", 1990), b(1991, 1, ze, n5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/31", 1991), b(1992, 1, ze, e5n), o.fk = function(e) { + return D(e, 168); + }, o.gk = function(e) { + return K(ib, J, 168, e, 0, 1); + }, w(si, "XMLTypePackageImpl/32", 1992), b(1993, 1, ze, t5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/33", 1993), b(1994, 1, ze, i5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/34", 1994), b(1995, 1, ze, r5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/35", 1995), b(1996, 1, ze, c5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/36", 1996), b(1997, 1, ze, u5n), o.fk = function(e) { + return D(e, 15); + }, o.gk = function(e) { + return K(rs, yw, 15, e, 0, 1); + }, w(si, "XMLTypePackageImpl/37", 1997), b(1998, 1, ze, o5n), o.fk = function(e) { + return D(e, 15); + }, o.gk = function(e) { + return K(rs, yw, 15, e, 0, 1); + }, w(si, "XMLTypePackageImpl/38", 1998), b(1999, 1, ze, s5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/39", 1999), b(1964, 1, ze, f5n), o.fk = function(e) { + return D(e, 682); + }, o.gk = function(e) { + return K(wE, Bn, 2120, e, 0, 1); + }, w(si, "XMLTypePackageImpl/4", 1964), b(2e3, 1, ze, h5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/40", 2e3), b(2001, 1, ze, l5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/41", 2001), b(2002, 1, ze, a5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/42", 2002), b(2003, 1, ze, d5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/43", 2003), b(2004, 1, ze, b5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/44", 2004), b(2005, 1, ze, w5n), o.fk = function(e) { + return D(e, 191); + }, o.gk = function(e) { + return K(rb, J, 191, e, 0, 1); + }, w(si, "XMLTypePackageImpl/45", 2005), b(2006, 1, ze, g5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/46", 2006), b(2007, 1, ze, p5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/47", 2007), b(2008, 1, ze, m5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/48", 2008), b(2009, 1, ze, v5n), o.fk = function(e) { + return D(e, 191); + }, o.gk = function(e) { + return K(rb, J, 191, e, 0, 1); + }, w(si, "XMLTypePackageImpl/49", 2009), b(1965, 1, ze, k5n), o.fk = function(e) { + return D(e, 683); + }, o.gk = function(e) { + return K(u0n, Bn, 2121, e, 0, 1); + }, w(si, "XMLTypePackageImpl/5", 1965), b(2010, 1, ze, y5n), o.fk = function(e) { + return D(e, 168); + }, o.gk = function(e) { + return K(ib, J, 168, e, 0, 1); + }, w(si, "XMLTypePackageImpl/50", 2010), b(2011, 1, ze, j5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/51", 2011), b(2012, 1, ze, E5n), o.fk = function(e) { + return D(e, 17); + }, o.gk = function(e) { + return K(Gi, J, 17, e, 0, 1); + }, w(si, "XMLTypePackageImpl/52", 2012), b(1966, 1, ze, C5n), o.fk = function(e) { + return Pi(e); + }, o.gk = function(e) { + return K(fn, J, 2, e, 6, 1); + }, w(si, "XMLTypePackageImpl/6", 1966), b(1967, 1, ze, M5n), o.fk = function(e) { + return D(e, 195); + }, o.gk = function(e) { + return K(xu, J, 195, e, 0, 2); + }, w(si, "XMLTypePackageImpl/7", 1967), b(1968, 1, ze, T5n), o.fk = function(e) { + return $b(e); + }, o.gk = function(e) { + return K(zt, J, 485, e, 8, 1); + }, w(si, "XMLTypePackageImpl/8", 1968), b(1969, 1, ze, A5n), o.fk = function(e) { + return D(e, 222); + }, o.gk = function(e) { + return K(p3, J, 222, e, 0, 1); + }, w(si, "XMLTypePackageImpl/9", 1969); + var Zf, D1, B9, SO, P; + b(55, 63, Pl, Le), w(m1, "RegEx/ParseException", 55), b(836, 1, {}, rG), o.bm = function(e) { + return e < this.j && Xi(this.i, e) == 63; + }, o.cm = function() { + var e, t, i, r, c; + if (this.c != 10) + throw M(new Le($e((Ie(), qS)))); + switch (e = this.a, e) { + case 101: + e = 27; + break; + case 102: + e = 12; + break; + case 110: + e = 10; + break; + case 114: + e = 13; + break; + case 116: + e = 9; + break; + case 120: + if (Ze(this), this.c != 0) + throw M(new Le($e((Ie(), p1)))); + if (this.a == 123) { + c = 0, i = 0; + do { + if (Ze(this), this.c != 0) + throw M(new Le($e((Ie(), p1)))); + if ((c = wd(this.a)) < 0) + break; + if (i > i * 16) + throw M(new Le($e((Ie(), qWn)))); + i = i * 16 + c; + } while (!0); + if (this.a != 125) + throw M(new Le($e((Ie(), UWn)))); + if (i > rv) + throw M(new Le($e((Ie(), GWn)))); + e = i; + } else { + if (c = 0, this.c != 0 || (c = wd(this.a)) < 0) + throw M(new Le($e((Ie(), p1)))); + if (i = c, Ze(this), this.c != 0 || (c = wd(this.a)) < 0) + throw M(new Le($e((Ie(), p1)))); + i = i * 16 + c, e = i; + } + break; + case 117: + if (r = 0, Ze(this), this.c != 0 || (r = wd(this.a)) < 0) + throw M(new Le($e((Ie(), p1)))); + if (t = r, Ze(this), this.c != 0 || (r = wd(this.a)) < 0) + throw M(new Le($e((Ie(), p1)))); + if (t = t * 16 + r, Ze(this), this.c != 0 || (r = wd(this.a)) < 0) + throw M(new Le($e((Ie(), p1)))); + if (t = t * 16 + r, Ze(this), this.c != 0 || (r = wd(this.a)) < 0) + throw M(new Le($e((Ie(), p1)))); + t = t * 16 + r, e = t; + break; + case 118: + if (Ze(this), this.c != 0 || (r = wd(this.a)) < 0) + throw M(new Le($e((Ie(), p1)))); + if (t = r, Ze(this), this.c != 0 || (r = wd(this.a)) < 0) + throw M(new Le($e((Ie(), p1)))); + if (t = t * 16 + r, Ze(this), this.c != 0 || (r = wd(this.a)) < 0) + throw M(new Le($e((Ie(), p1)))); + if (t = t * 16 + r, Ze(this), this.c != 0 || (r = wd(this.a)) < 0) + throw M(new Le($e((Ie(), p1)))); + if (t = t * 16 + r, Ze(this), this.c != 0 || (r = wd(this.a)) < 0) + throw M(new Le($e((Ie(), p1)))); + if (t = t * 16 + r, Ze(this), this.c != 0 || (r = wd(this.a)) < 0) + throw M(new Le($e((Ie(), p1)))); + if (t = t * 16 + r, t > rv) + throw M(new Le($e((Ie(), "parser.descappe.4")))); + e = t; + break; + case 65: + case 90: + case 122: + throw M(new Le($e((Ie(), zWn)))); + } + return e; + }, o.dm = function(e) { + var t, i; + switch (e) { + case 100: + i = (this.e & 32) == 32 ? sa("Nd", !0) : (nt(), PO); + break; + case 68: + i = (this.e & 32) == 32 ? sa("Nd", !1) : (nt(), w0n); + break; + case 119: + i = (this.e & 32) == 32 ? sa("IsWord", !0) : (nt(), Uv); + break; + case 87: + i = (this.e & 32) == 32 ? sa("IsWord", !1) : (nt(), p0n); + break; + case 115: + i = (this.e & 32) == 32 ? sa("IsSpace", !0) : (nt(), H3); + break; + case 83: + i = (this.e & 32) == 32 ? sa("IsSpace", !1) : (nt(), g0n); + break; + default: + throw M(new ec((t = e, zJn + t.toString(16)))); + } + return i; + }, o.em = function(e) { + var t, i, r, c, s, f, h, l, a, d, g, p; + for (this.b = 1, Ze(this), t = null, this.c == 0 && this.a == 94 ? (Ze(this), e ? d = (nt(), nt(), new yo(5)) : (t = (nt(), nt(), new yo(4)), Fc(t, 0, rv), d = new yo(4))) : d = (nt(), nt(), new yo(4)), c = !0; (p = this.c) != 1 && !(p == 0 && this.a == 93 && !c); ) { + if (c = !1, i = this.a, r = !1, p == 10) + switch (i) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + pw(d, this.dm(i)), r = !0; + break; + case 105: + case 73: + case 99: + case 67: + i = this.um(d, i), i < 0 && (r = !0); + break; + case 112: + case 80: + if (g = $nn(this, i), !g) + throw M(new Le($e((Ie(), EK)))); + pw(d, g), r = !0; + break; + default: + i = this.cm(); + } + else if (p == 20) { + if (f = b4(this.i, 58, this.d), f < 0) + throw M(new Le($e((Ie(), Bcn)))); + if (h = !0, Xi(this.i, this.d) == 94 && (++this.d, h = !1), s = qo(this.i, this.d, f), l = mNn(s, h, (this.e & 512) == 512), !l) + throw M(new Le($e((Ie(), BWn)))); + if (pw(d, l), r = !0, f + 1 >= this.j || Xi(this.i, f + 1) != 93) + throw M(new Le($e((Ie(), Bcn)))); + this.d = f + 2; + } + if (Ze(this), !r) + if (this.c != 0 || this.a != 45) + Fc(d, i, i); + else { + if (Ze(this), (p = this.c) == 1) + throw M(new Le($e((Ie(), US)))); + p == 0 && this.a == 93 ? (Fc(d, i, i), Fc(d, 45, 45)) : (a = this.a, p == 10 && (a = this.cm()), Ze(this), Fc(d, i, a)); + } + (this.e & Gs) == Gs && this.c == 0 && this.a == 44 && Ze(this); + } + if (this.c == 1) + throw M(new Le($e((Ie(), US)))); + return t && (V5(t, d), d = t), Gg(d), z5(d), this.b = 0, Ze(this), d; + }, o.fm = function() { + var e, t, i, r; + for (i = this.em(!1); (r = this.c) != 7; ) + if (e = this.a, r == 0 && (e == 45 || e == 38) || r == 4) { + if (Ze(this), this.c != 9) + throw M(new Le($e((Ie(), KWn)))); + if (t = this.em(!1), r == 4) + pw(i, t); + else if (e == 45) + V5(i, t); + else if (e == 38) + MGn(i, t); + else + throw M(new ec("ASSERT")); + } else + throw M(new Le($e((Ie(), _Wn)))); + return Ze(this), i; + }, o.gm = function() { + var e, t; + return e = this.a - 48, t = (nt(), nt(), new IN(12, null, e)), !this.g && (this.g = new BE()), FE(this.g, new RG(e)), Ze(this), t; + }, o.hm = function() { + return Ze(this), nt(), Ese; + }, o.im = function() { + return Ze(this), nt(), jse; + }, o.jm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.km = function() { + throw M(new Le($e((Ie(), is)))); + }, o.lm = function() { + return Ze(this), y6e(); + }, o.mm = function() { + return Ze(this), nt(), Mse; + }, o.nm = function() { + return Ze(this), nt(), Ase; + }, o.om = function() { + var e; + if (this.d >= this.j || ((e = Xi(this.i, this.d++)) & 65504) != 64) + throw M(new Le($e((Ie(), $Wn)))); + return Ze(this), nt(), nt(), new Lh(0, e - 64); + }, o.pm = function() { + return Ze(this), CPe(); + }, o.qm = function() { + return Ze(this), nt(), Sse; + }, o.rm = function() { + var e; + return e = (nt(), nt(), new Lh(0, 105)), Ze(this), e; + }, o.sm = function() { + return Ze(this), nt(), Tse; + }, o.tm = function() { + return Ze(this), nt(), Cse; + }, o.um = function(e, t) { + return this.cm(); + }, o.vm = function() { + return Ze(this), nt(), d0n; + }, o.wm = function() { + var e, t, i, r, c; + if (this.d + 1 >= this.j) + throw M(new Le($e((Ie(), DWn)))); + if (r = -1, t = null, e = Xi(this.i, this.d), 49 <= e && e <= 57) { + if (r = e - 48, !this.g && (this.g = new BE()), FE(this.g, new RG(r)), ++this.d, Xi(this.i, this.d) != 41) + throw M(new Le($e((Ie(), Sd)))); + ++this.d; + } else + switch (e == 63 && --this.d, Ze(this), t = stn(this), t.e) { + case 20: + case 21: + case 22: + case 23: + break; + case 8: + if (this.c != 7) + throw M(new Le($e((Ie(), Sd)))); + break; + default: + throw M(new Le($e((Ie(), LWn)))); + } + if (Ze(this), c = R0(this), i = null, c.e == 2) { + if (c.Pm() != 2) + throw M(new Le($e((Ie(), NWn)))); + i = c.Lm(1), c = c.Lm(0); + } + if (this.c != 7) + throw M(new Le($e((Ie(), Sd)))); + return Ze(this), nt(), nt(), new ZNn(r, t, c, i); + }, o.xm = function() { + return Ze(this), nt(), b0n; + }, o.ym = function() { + var e; + if (Ze(this), e = wM(24, R0(this)), this.c != 7) + throw M(new Le($e((Ie(), Sd)))); + return Ze(this), e; + }, o.zm = function() { + var e; + if (Ze(this), e = wM(20, R0(this)), this.c != 7) + throw M(new Le($e((Ie(), Sd)))); + return Ze(this), e; + }, o.Am = function() { + var e; + if (Ze(this), e = wM(22, R0(this)), this.c != 7) + throw M(new Le($e((Ie(), Sd)))); + return Ze(this), e; + }, o.Bm = function() { + var e, t, i, r, c; + for (e = 0, i = 0, t = -1; this.d < this.j && (t = Xi(this.i, this.d), c = _nn(t), c != 0); ) + e |= c, ++this.d; + if (this.d >= this.j) + throw M(new Le($e((Ie(), xcn)))); + if (t == 45) { + for (++this.d; this.d < this.j && (t = Xi(this.i, this.d), c = _nn(t), c != 0); ) + i |= c, ++this.d; + if (this.d >= this.j) + throw M(new Le($e((Ie(), xcn)))); + } + if (t == 58) { + if (++this.d, Ze(this), r = VPn(R0(this), e, i), this.c != 7) + throw M(new Le($e((Ie(), Sd)))); + Ze(this); + } else if (t == 41) + ++this.d, Ze(this), r = VPn(R0(this), e, i); + else + throw M(new Le($e((Ie(), OWn)))); + return r; + }, o.Cm = function() { + var e; + if (Ze(this), e = wM(21, R0(this)), this.c != 7) + throw M(new Le($e((Ie(), Sd)))); + return Ze(this), e; + }, o.Dm = function() { + var e; + if (Ze(this), e = wM(23, R0(this)), this.c != 7) + throw M(new Le($e((Ie(), Sd)))); + return Ze(this), e; + }, o.Em = function() { + var e, t; + if (Ze(this), e = this.f++, t = rN(R0(this), e), this.c != 7) + throw M(new Le($e((Ie(), Sd)))); + return Ze(this), t; + }, o.Fm = function() { + var e; + if (Ze(this), e = rN(R0(this), 0), this.c != 7) + throw M(new Le($e((Ie(), Sd)))); + return Ze(this), e; + }, o.Gm = function(e) { + return Ze(this), this.c == 5 ? (Ze(this), uM(e, (nt(), nt(), new Vb(9, e)))) : uM(e, (nt(), nt(), new Vb(3, e))); + }, o.Hm = function(e) { + var t; + return Ze(this), t = (nt(), nt(), new S6(2)), this.c == 5 ? (Ze(this), md(t, K9), md(t, e)) : (md(t, e), md(t, K9)), t; + }, o.Im = function(e) { + return Ze(this), this.c == 5 ? (Ze(this), nt(), nt(), new Vb(9, e)) : (nt(), nt(), new Vb(3, e)); + }, o.a = 0, o.b = 0, o.c = 0, o.d = 0, o.e = 0, o.f = 1, o.g = null, o.j = 0, w(m1, "RegEx/RegexParser", 836), b(1947, 836, {}, gjn), o.bm = function(e) { + return !1; + }, o.cm = function() { + return gen(this); + }, o.dm = function(e) { + return Pm(e); + }, o.em = function(e) { + return kzn(this); + }, o.fm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.gm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.hm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.im = function() { + throw M(new Le($e((Ie(), is)))); + }, o.jm = function() { + return Ze(this), Pm(67); + }, o.km = function() { + return Ze(this), Pm(73); + }, o.lm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.mm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.nm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.om = function() { + return Ze(this), Pm(99); + }, o.pm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.qm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.rm = function() { + return Ze(this), Pm(105); + }, o.sm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.tm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.um = function(e, t) { + return pw(e, Pm(t)), -1; + }, o.vm = function() { + return Ze(this), nt(), nt(), new Lh(0, 94); + }, o.wm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.xm = function() { + return Ze(this), nt(), nt(), new Lh(0, 36); + }, o.ym = function() { + throw M(new Le($e((Ie(), is)))); + }, o.zm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.Am = function() { + throw M(new Le($e((Ie(), is)))); + }, o.Bm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.Cm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.Dm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.Em = function() { + var e; + if (Ze(this), e = rN(R0(this), 0), this.c != 7) + throw M(new Le($e((Ie(), Sd)))); + return Ze(this), e; + }, o.Fm = function() { + throw M(new Le($e((Ie(), is)))); + }, o.Gm = function(e) { + return Ze(this), uM(e, (nt(), nt(), new Vb(3, e))); + }, o.Hm = function(e) { + var t; + return Ze(this), t = (nt(), nt(), new S6(2)), md(t, e), md(t, K9), t; + }, o.Im = function(e) { + return Ze(this), nt(), nt(), new Vb(3, e); + }; + var X2 = null, Hv = null; + w(m1, "RegEx/ParserForXMLSchema", 1947), b(122, 1, cv, Jd), o.Jm = function(e) { + throw M(new ec("Not supported.")); + }, o.Km = function() { + return -1; + }, o.Lm = function(e) { + return null; + }, o.Mm = function() { + return null; + }, o.Nm = function(e) { + }, o.Om = function(e) { + }, o.Pm = function() { + return 0; + }, o.Ib = function() { + return this.Qm(0); + }, o.Qm = function(e) { + return this.e == 11 ? "." : ""; + }, o.e = 0; + var h0n, qv, R9, yse, l0n, cg = null, PO, IU = null, a0n, K9, OU = null, d0n, b0n, w0n, g0n, p0n, jse, H3, Ese, Cse, Mse, Tse, Uv, Ase, Sse, NNe = w(m1, "RegEx/Token", 122); + b(138, 122, { 3: 1, 138: 1, 122: 1 }, yo), o.Qm = function(e) { + var t, i, r; + if (this.e == 4) + if (this == a0n) + i = "."; + else if (this == PO) + i = "\\d"; + else if (this == Uv) + i = "\\w"; + else if (this == H3) + i = "\\s"; + else { + for (r = new ql(), r.a += "[", t = 0; t < this.b.length; t += 2) + e & Gs && t > 0 && (r.a += ","), this.b[t] === this.b[t + 1] ? Cr(r, by(this.b[t])) : (Cr(r, by(this.b[t])), r.a += "-", Cr(r, by(this.b[t + 1]))); + r.a += "]", i = r.a; + } + else if (this == w0n) + i = "\\D"; + else if (this == p0n) + i = "\\W"; + else if (this == g0n) + i = "\\S"; + else { + for (r = new ql(), r.a += "[^", t = 0; t < this.b.length; t += 2) + e & Gs && t > 0 && (r.a += ","), this.b[t] === this.b[t + 1] ? Cr(r, by(this.b[t])) : (Cr(r, by(this.b[t])), r.a += "-", Cr(r, by(this.b[t + 1]))); + r.a += "]", i = r.a; + } + return i; + }, o.a = !1, o.c = !1, w(m1, "RegEx/RangeToken", 138), b(592, 1, { 592: 1 }, RG), o.a = 0, w(m1, "RegEx/RegexParser/ReferencePosition", 592), b(591, 1, { 3: 1, 591: 1 }, OEn), o.Fb = function(e) { + var t; + return e == null || !D(e, 591) ? !1 : (t = u(e, 591), An(this.b, t.b) && this.a == t.a); + }, o.Hb = function() { + return i1(this.b + "/" + fen(this.a)); + }, o.Ib = function() { + return this.c.Qm(this.a); + }, o.a = 0, w(m1, "RegEx/RegularExpression", 591), b(228, 122, cv, Lh), o.Km = function() { + return this.a; + }, o.Qm = function(e) { + var t, i, r; + switch (this.e) { + case 0: + switch (this.a) { + case 124: + case 42: + case 43: + case 63: + case 40: + case 41: + case 46: + case 91: + case 123: + case 92: + r = "\\" + LL(this.a & oi); + break; + case 12: + r = "\\f"; + break; + case 10: + r = "\\n"; + break; + case 13: + r = "\\r"; + break; + case 9: + r = "\\t"; + break; + case 27: + r = "\\e"; + break; + default: + this.a >= fr ? (i = (t = this.a >>> 0, "0" + t.toString(16)), r = "\\v" + qo(i, i.length - 6, i.length)) : r = "" + LL(this.a & oi); + } + break; + case 8: + this == d0n || this == b0n ? r = "" + LL(this.a & oi) : r = "\\" + LL(this.a & oi); + break; + default: + r = null; + } + return r; + }, o.a = 0, w(m1, "RegEx/Token/CharToken", 228), b(318, 122, cv, Vb), o.Lm = function(e) { + return this.a; + }, o.Nm = function(e) { + this.b = e; + }, o.Om = function(e) { + this.c = e; + }, o.Pm = function() { + return 1; + }, o.Qm = function(e) { + var t; + if (this.e == 3) + if (this.c < 0 && this.b < 0) + t = this.a.Qm(e) + "*"; + else if (this.c == this.b) + t = this.a.Qm(e) + "{" + this.c + "}"; + else if (this.c >= 0 && this.b >= 0) + t = this.a.Qm(e) + "{" + this.c + "," + this.b + "}"; + else if (this.c >= 0 && this.b < 0) + t = this.a.Qm(e) + "{" + this.c + ",}"; + else + throw M(new ec("Token#toString(): CLOSURE " + this.c + cr + this.b)); + else if (this.c < 0 && this.b < 0) + t = this.a.Qm(e) + "*?"; + else if (this.c == this.b) + t = this.a.Qm(e) + "{" + this.c + "}?"; + else if (this.c >= 0 && this.b >= 0) + t = this.a.Qm(e) + "{" + this.c + "," + this.b + "}?"; + else if (this.c >= 0 && this.b < 0) + t = this.a.Qm(e) + "{" + this.c + ",}?"; + else + throw M(new ec("Token#toString(): NONGREEDYCLOSURE " + this.c + cr + this.b)); + return t; + }, o.b = 0, o.c = 0, w(m1, "RegEx/Token/ClosureToken", 318), b(837, 122, cv, SW), o.Lm = function(e) { + return e == 0 ? this.a : this.b; + }, o.Pm = function() { + return 2; + }, o.Qm = function(e) { + var t; + return this.b.e == 3 && this.b.Lm(0) == this.a ? t = this.a.Qm(e) + "+" : this.b.e == 9 && this.b.Lm(0) == this.a ? t = this.a.Qm(e) + "+?" : t = this.a.Qm(e) + ("" + this.b.Qm(e)), t; + }, w(m1, "RegEx/Token/ConcatToken", 837), b(1945, 122, cv, ZNn), o.Lm = function(e) { + if (e == 0) + return this.d; + if (e == 1) + return this.b; + throw M(new ec("Internal Error: " + e)); + }, o.Pm = function() { + return this.b ? 2 : 1; + }, o.Qm = function(e) { + var t; + return this.c > 0 ? t = "(?(" + this.c + ")" : this.a.e == 8 ? t = "(?(" + this.a + ")" : t = "(?" + this.a, this.b ? t += this.d + "|" + this.b + ")" : t += this.d + ")", t; + }, o.c = 0, w(m1, "RegEx/Token/ConditionToken", 1945), b(1946, 122, cv, qOn), o.Lm = function(e) { + return this.b; + }, o.Pm = function() { + return 1; + }, o.Qm = function(e) { + return "(?" + (this.a == 0 ? "" : fen(this.a)) + (this.c == 0 ? "" : fen(this.c)) + ":" + this.b.Qm(e) + ")"; + }, o.a = 0, o.c = 0, w(m1, "RegEx/Token/ModifierToken", 1946), b(838, 122, cv, BW), o.Lm = function(e) { + return this.a; + }, o.Pm = function() { + return 1; + }, o.Qm = function(e) { + var t; + switch (t = null, this.e) { + case 6: + this.b == 0 ? t = "(?:" + this.a.Qm(e) + ")" : t = "(" + this.a.Qm(e) + ")"; + break; + case 20: + t = "(?=" + this.a.Qm(e) + ")"; + break; + case 21: + t = "(?!" + this.a.Qm(e) + ")"; + break; + case 22: + t = "(?<=" + this.a.Qm(e) + ")"; + break; + case 23: + t = "(?" + this.a.Qm(e) + ")"; + } + return t; + }, o.b = 0, w(m1, "RegEx/Token/ParenToken", 838), b(530, 122, { 3: 1, 122: 1, 530: 1 }, IN), o.Mm = function() { + return this.b; + }, o.Qm = function(e) { + return this.e == 12 ? "\\" + this.a : gMe(this.b); + }, o.a = 0, w(m1, "RegEx/Token/StringToken", 530), b(477, 122, cv, S6), o.Jm = function(e) { + md(this, e); + }, o.Lm = function(e) { + return u(y0(this.a, e), 122); + }, o.Pm = function() { + return this.a ? this.a.a.c.length : 0; + }, o.Qm = function(e) { + var t, i, r, c, s; + if (this.e == 1) { + if (this.a.a.c.length == 2) + t = u(y0(this.a, 0), 122), i = u(y0(this.a, 1), 122), i.e == 3 && i.Lm(0) == t ? c = t.Qm(e) + "+" : i.e == 9 && i.Lm(0) == t ? c = t.Qm(e) + "+?" : c = t.Qm(e) + ("" + i.Qm(e)); + else { + for (s = new ql(), r = 0; r < this.a.a.c.length; r++) + Cr(s, u(y0(this.a, r), 122).Qm(e)); + c = s.a; + } + return c; + } + if (this.a.a.c.length == 2 && u(y0(this.a, 1), 122).e == 7) + c = u(y0(this.a, 0), 122).Qm(e) + "?"; + else if (this.a.a.c.length == 2 && u(y0(this.a, 0), 122).e == 7) + c = u(y0(this.a, 1), 122).Qm(e) + "??"; + else { + for (s = new ql(), Cr(s, u(y0(this.a, 0), 122).Qm(e)), r = 1; r < this.a.a.c.length; r++) + s.a += "|", Cr(s, u(y0(this.a, r), 122).Qm(e)); + c = s.a; + } + return c; + }, w(m1, "RegEx/Token/UnionToken", 477), b(527, 1, { 600: 1 }, Y9), o.Ib = function() { + return this.a.b; + }, w(JJn, "XMLTypeUtil/PatternMatcherImpl", 527), b(1707, 1527, {}, S5n); + var Pse; + w(JJn, "XMLTypeValidator", 1707), b(270, 1, Hh, Ya), o.Jc = function(e) { + qi(this, e); + }, o.Kc = function() { + return (this.b - this.a) * this.c < 0 ? xa : new q1(this); + }, o.a = 0, o.b = 0, o.c = 0; + var xa; + w(iun, "ExclusiveRange", 270), b(1084, 1, _h, P5n), o.Rb = function(e) { + u(e, 17), Qle(); + }, o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return Rhe(); + }, o.Ub = function() { + return Khe(); + }, o.Wb = function(e) { + u(e, 17), Zle(); + }, o.Ob = function() { + return !1; + }, o.Sb = function() { + return !1; + }, o.Tb = function() { + return -1; + }, o.Vb = function() { + return -1; + }, o.Qb = function() { + throw M(new _l(ZJn)); + }, w(iun, "ExclusiveRange/1", 1084), b(258, 1, _h, q1), o.Rb = function(e) { + u(e, 17), Yle(); + }, o.Nb = function(e) { + _i(this, e); + }, o.Pb = function() { + return z6e(this); + }, o.Ub = function() { + return N4e(this); + }, o.Wb = function(e) { + u(e, 17), n1e(); + }, o.Ob = function() { + return this.c.c < 0 ? this.a >= this.c.b : this.a <= this.c.b; + }, o.Sb = function() { + return this.b > 0; + }, o.Tb = function() { + return this.b; + }, o.Vb = function() { + return this.b - 1; + }, o.Qb = function() { + throw M(new _l(ZJn)); + }, o.a = 0, o.b = 0, w(iun, "ExclusiveRange/RangeIterator", 258); + var fs = T4(GS, "C"), ye = T4(y8, "I"), oo = T4(i3, "Z"), Fa = T4(j8, "J"), xu = T4(m8, "B"), Oi = T4(v8, "D"), ug = T4(k8, "F"), V2 = T4(E8, "S"), $Ne = Nt("org.eclipse.elk.core.labels", "ILabelManager"), m0n = Nt(ur, "DiagnosticChain"), v0n = Nt(AJn, "ResourceSet"), k0n = w(ur, "InvocationTargetException", null), Ise = (HE(), W3e), Ose = Ose = Kke; + Hme(Bfe), Bme("permProps", [[["locale", "default"], [nQn, "gecko1_8"]], [["locale", "default"], [nQn, "safari"]]]), Ose(null, "elk", null); + }).call(this); + }).call(this, typeof Nse < "u" ? Nse : typeof self < "u" ? self : typeof window < "u" ? window : {}); + }, {}], 3: [function(Vt, gt, Rr) { + function Jt(Yt, Je) { + if (!(Yt instanceof Je)) + throw new TypeError("Cannot call a class as a function"); + } + function y(Yt, Je) { + if (!Yt) + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return Je && (typeof Je == "object" || typeof Je == "function") ? Je : Yt; + } + function Bt(Yt, Je) { + if (typeof Je != "function" && Je !== null) + throw new TypeError("Super expression must either be null or a function, not " + typeof Je); + Yt.prototype = Object.create(Je && Je.prototype, { constructor: { value: Yt, enumerable: !1, writable: !0, configurable: !0 } }), Je && (Object.setPrototypeOf ? Object.setPrototypeOf(Yt, Je) : Yt.__proto__ = Je); + } + var Qu = Vt("./elk-api.js").default, Rt = function(Yt) { + Bt(Je, Yt); + function Je() { + var Si = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + Jt(this, Je); + var wr = Object.assign({}, Si), En = !1; + try { + Vt.resolve("web-worker"), En = !0; + } catch { + } + if (Si.workerUrl) + if (En) { + var jc = Vt("web-worker"); + wr.workerFactory = function(ar) { + return new jc(ar); + }; + } else + console.warn(`Web worker requested but 'web-worker' package not installed. +Consider installing the package or pass your own 'workerFactory' to ELK's constructor. +... Falling back to non-web worker version.`); + if (!wr.workerFactory) { + var Fu = Vt("./elk-worker.min.js"), so = Fu.Worker; + wr.workerFactory = function(ar) { + return new so(ar); + }; + } + return y(this, (Je.__proto__ || Object.getPrototypeOf(Je)).call(this, wr)); + } + return Je; + }(Qu); + Object.defineProperty(gt.exports, "__esModule", { + value: !0 + }), gt.exports = Rt, Rt.default = Rt; + }, { "./elk-api.js": 1, "./elk-worker.min.js": 2, "web-worker": 4 }], 4: [function(Vt, gt, Rr) { + gt.exports = Worker; + }, {}] }, {}, [3])(3); + }); +})(Bse); +var WNe = Bse.exports; +const JNe = /* @__PURE__ */ BNe(WNe), $se = new JNe(); +let Sb = {}; +const QNe = {}; +let X3 = {}; +const YNe = async function(ct, qt, Vt, gt, Rr, Jt, y) { + const Qu = Vt.select(`[id="${qt}"]`).insert("g").attr("class", "nodes"), Rt = Object.keys(ct); + return await Promise.all( + Rt.map(async function(Yt) { + const Je = ct[Yt]; + let Si = "default"; + Je.classes.length > 0 && (Si = Je.classes.join(" ")), Si = Si + " flowchart-label"; + const wr = E0n(Je.styles); + let En = Je.text !== void 0 ? Je.text : Je.id; + const jc = { width: 0, height: 0 }, Fu = [ + { + id: Je.id + "-west", + layoutOptions: { + "port.side": "WEST" + } + }, + { + id: Je.id + "-east", + layoutOptions: { + "port.side": "EAST" + } + }, + { + id: Je.id + "-south", + layoutOptions: { + "port.side": "SOUTH" + } + }, + { + id: Je.id + "-north", + layoutOptions: { + "port.side": "NORTH" + } + } + ]; + let so = 0, ar = "", cl = {}; + switch (Je.type) { + case "round": + so = 5, ar = "rect"; + break; + case "square": + ar = "rect"; + break; + case "diamond": + ar = "question", cl = { + portConstraints: "FIXED_SIDE" + }; + break; + case "hexagon": + ar = "hexagon"; + break; + case "odd": + ar = "rect_left_inv_arrow"; + break; + case "lean_right": + ar = "lean_right"; + break; + case "lean_left": + ar = "lean_left"; + break; + case "trapezoid": + ar = "trapezoid"; + break; + case "inv_trapezoid": + ar = "inv_trapezoid"; + break; + case "odd_right": + ar = "rect_left_inv_arrow"; + break; + case "circle": + ar = "circle"; + break; + case "ellipse": + ar = "ellipse"; + break; + case "stadium": + ar = "stadium"; + break; + case "subroutine": + ar = "subroutine"; + break; + case "cylinder": + ar = "cylinder"; + break; + case "group": + ar = "rect"; + break; + case "doublecircle": + ar = "doublecircle"; + break; + default: + ar = "rect"; + } + const N1 = { + labelStyle: wr.labelStyle, + shape: ar, + labelText: En, + labelType: Je.labelType, + rx: so, + ry: so, + class: Si, + style: wr.style, + id: Je.id, + link: Je.link, + linkTarget: Je.linkTarget, + tooltip: Rr.db.getTooltip(Je.id) || "", + domId: Rr.db.lookUpDomId(Je.id), + haveCallback: Je.haveCallback, + width: Je.type === "group" ? 500 : void 0, + dir: Je.dir, + type: Je.type, + props: Je.props, + padding: xU().flowchart.padding + }; + let Kl, Ka; + if (N1.type !== "group") + Ka = await HNe(Qu, N1, Je.dir), Kl = Ka.node().getBBox(); + else { + gt.createElementNS("http://www.w3.org/2000/svg", "text"); + const { shapeSvg: $1, bbox: ul } = await qNe(Qu, N1, void 0, !0); + jc.width = ul.width, jc.wrappingWidth = xU().flowchart.wrappingWidth, jc.height = ul.height, jc.labelNode = $1.node(), N1.labelData = jc; + } + const Gv = { + id: Je.id, + ports: Je.type === "diamond" ? Fu : [], + // labelStyle: styles.labelStyle, + // shape: _shape, + layoutOptions: cl, + labelText: En, + labelData: jc, + // labels: [{ text: vertexText }], + // rx: radius, + // ry: radius, + // class: classStr, + // style: styles.style, + // link: vertex.link, + // linkTarget: vertex.linkTarget, + // tooltip: diagObj.db.getTooltip(vertex.id) || '', + domId: Rr.db.lookUpDomId(Je.id), + // haveCallback: vertex.haveCallback, + width: Kl == null ? void 0 : Kl.width, + height: Kl == null ? void 0 : Kl.height, + // dir: vertex.dir, + type: Je.type, + // props: vertex.props, + // padding: getConfig().flowchart.padding, + // boundingBox, + el: Ka, + parent: Jt.parentById[Je.id] + }; + X3[N1.id] = Gv; + }) + ), y; +}, xse = (ct, qt, Vt) => { + const gt = { + TB: { + in: { + north: "north" + }, + out: { + south: "west", + west: "east", + east: "south" + } + }, + LR: { + in: { + west: "west" + }, + out: { + east: "south", + south: "north", + north: "east" + } + }, + RL: { + in: { + east: "east" + }, + out: { + west: "north", + north: "south", + south: "west" + } + }, + BT: { + in: { + south: "south" + }, + out: { + north: "east", + east: "west", + west: "north" + } + } + }; + return gt.TD = gt.TB, gt[Vt][qt][ct]; +}, Fse = (ct, qt, Vt) => { + if (Ra.info("getNextPort", { node: ct, edgeDirection: qt, graphDirection: Vt }), !Sb[ct]) + switch (Vt) { + case "TB": + case "TD": + Sb[ct] = { + inPosition: "north", + outPosition: "south" + }; + break; + case "BT": + Sb[ct] = { + inPosition: "south", + outPosition: "north" + }; + break; + case "RL": + Sb[ct] = { + inPosition: "east", + outPosition: "west" + }; + break; + case "LR": + Sb[ct] = { + inPosition: "west", + outPosition: "east" + }; + break; + } + const gt = qt === "in" ? Sb[ct].inPosition : Sb[ct].outPosition; + return qt === "in" ? Sb[ct].inPosition = xse( + Sb[ct].inPosition, + qt, + Vt + ) : Sb[ct].outPosition = xse( + Sb[ct].outPosition, + qt, + Vt + ), gt; +}, ZNe = (ct, qt) => { + let Vt = ct.start, gt = ct.end; + const Rr = Vt, Jt = gt, y = X3[Vt], Bt = X3[gt]; + return !y || !Bt ? { source: Vt, target: gt } : (y.type === "diamond" && (Vt = `${Vt}-${Fse(Vt, "out", qt)}`), Bt.type === "diamond" && (gt = `${gt}-${Fse(gt, "in", qt)}`), { source: Vt, target: gt, sourceId: Rr, targetId: Jt }); +}, n$e = function(ct, qt, Vt, gt) { + Ra.info("abc78 edges = ", ct); + const Rr = gt.insert("g").attr("class", "edgeLabels"); + let Jt = {}, y = qt.db.getDirection(), Bt, Qu; + if (ct.defaultStyle !== void 0) { + const Rt = E0n(ct.defaultStyle); + Bt = Rt.style, Qu = Rt.labelStyle; + } + return ct.forEach(function(Rt) { + const Yt = "L-" + Rt.start + "-" + Rt.end; + Jt[Yt] === void 0 ? (Jt[Yt] = 0, Ra.info("abc78 new entry", Yt, Jt[Yt])) : (Jt[Yt]++, Ra.info("abc78 new entry", Yt, Jt[Yt])); + let Je = Yt + "-" + Jt[Yt]; + Ra.info("abc78 new link id to be used is", Yt, Je, Jt[Yt]); + const Si = "LS-" + Rt.start, wr = "LE-" + Rt.end, En = { style: "", labelStyle: "" }; + switch (En.minlen = Rt.length || 1, Rt.type === "arrow_open" ? En.arrowhead = "none" : En.arrowhead = "normal", En.arrowTypeStart = "arrow_open", En.arrowTypeEnd = "arrow_open", Rt.type) { + case "double_arrow_cross": + En.arrowTypeStart = "arrow_cross"; + case "arrow_cross": + En.arrowTypeEnd = "arrow_cross"; + break; + case "double_arrow_point": + En.arrowTypeStart = "arrow_point"; + case "arrow_point": + En.arrowTypeEnd = "arrow_point"; + break; + case "double_arrow_circle": + En.arrowTypeStart = "arrow_circle"; + case "arrow_circle": + En.arrowTypeEnd = "arrow_circle"; + break; + } + let jc = "", Fu = ""; + switch (Rt.stroke) { + case "normal": + jc = "fill:none;", Bt !== void 0 && (jc = Bt), Qu !== void 0 && (Fu = Qu), En.thickness = "normal", En.pattern = "solid"; + break; + case "dotted": + En.thickness = "normal", En.pattern = "dotted", En.style = "fill:none;stroke-width:2px;stroke-dasharray:3;"; + break; + case "thick": + En.thickness = "thick", En.pattern = "solid", En.style = "stroke-width: 3.5px;fill:none;"; + break; + } + if (Rt.style !== void 0) { + const Ka = E0n(Rt.style); + jc = Ka.style, Fu = Ka.labelStyle; + } + En.style = En.style += jc, En.labelStyle = En.labelStyle += Fu, Rt.interpolate !== void 0 ? En.curve = j0n(Rt.interpolate, $U) : ct.defaultInterpolate !== void 0 ? En.curve = j0n(ct.defaultInterpolate, $U) : En.curve = j0n(QNe.curve, $U), Rt.text === void 0 ? Rt.style !== void 0 && (En.arrowheadStyle = "fill: #333") : (En.arrowheadStyle = "fill: #333", En.labelpos = "c"), En.labelType = Rt.labelType, En.label = Rt.text.replace(KNe.lineBreakRegex, ` +`), Rt.style === void 0 && (En.style = En.style || "stroke: #333; stroke-width: 1.5px;fill:none;"), En.labelStyle = En.labelStyle.replace("color:", "fill:"), En.id = Je, En.classes = "flowchart-link " + Si + " " + wr; + const so = UNe(Rr, En), { source: ar, target: cl, sourceId: N1, targetId: Kl } = ZNe(Rt, y); + Ra.debug("abc78 source and target", ar, cl), Vt.edges.push({ + id: "e" + Rt.start + Rt.end, + sources: [ar], + targets: [cl], + sourceId: N1, + targetId: Kl, + labelEl: so, + labels: [ + { + width: En.width, + height: En.height, + orgWidth: En.width, + orgHeight: En.height, + text: En.label, + layoutOptions: { + "edgeLabels.inline": "true", + "edgeLabels.placement": "CENTER" + } + } + ], + edgeData: En + }); + }), Vt; +}, e$e = function(ct, qt, Vt, gt, Rr) { + let Jt = ""; + gt && (Jt = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, Jt = Jt.replace(/\(/g, "\\("), Jt = Jt.replace(/\)/g, "\\)")), zNe(ct, qt, Jt, Rr, Vt); +}, t$e = function(ct, qt) { + return Ra.info("Extracting classes"), qt.db.getClasses(); +}, i$e = function(ct) { + const qt = { parentById: {}, childrenById: {} }, Vt = ct.getSubGraphs(); + return Ra.info("Subgraphs - ", Vt), Vt.forEach(function(gt) { + gt.nodes.forEach(function(Rr) { + qt.parentById[Rr] = gt.id, qt.childrenById[gt.id] === void 0 && (qt.childrenById[gt.id] = []), qt.childrenById[gt.id].push(Rr); + }); + }), Vt.forEach(function(gt) { + gt.id, qt.parentById[gt.id] !== void 0 && qt.parentById[gt.id]; + }), qt; +}, r$e = function(ct, qt, Vt) { + const gt = VNe(ct, qt, Vt); + if (gt === void 0 || gt === "root") + return { x: 0, y: 0 }; + const Rr = X3[gt].offset; + return { x: Rr.posX, y: Rr.posY }; +}, c$e = function(ct, qt, Vt, gt, Rr, Jt) { + const y = r$e(qt.sourceId, qt.targetId, Rr), Bt = qt.sections[0].startPoint, Qu = qt.sections[0].endPoint, Yt = (qt.sections[0].bendPoints ? qt.sections[0].bendPoints : []).map((cl) => [cl.x + y.x, cl.y + y.y]), Je = [ + [Bt.x + y.x, Bt.y + y.y], + ...Yt, + [Qu.x + y.x, Qu.y + y.y] + ], { x: Si, y: wr } = GNe(qt.edgeData), En = XNe().x(Si).y(wr).curve($U), jc = ct.insert("path").attr("d", En(Je)).attr("class", "path " + Vt.classes).attr("fill", "none"), Fu = ct.insert("g").attr("class", "edgeLabel"), so = IO(Fu.node().appendChild(qt.labelEl)), ar = so.node().firstChild.getBoundingClientRect(); + so.attr("width", ar.width), so.attr("height", ar.height), Fu.attr( + "transform", + `translate(${qt.labels[0].x + y.x}, ${qt.labels[0].y + y.y})` + ), e$e(jc, Vt, gt.type, gt.arrowMarkerAbsolute, Jt); +}, Rse = (ct, qt) => { + ct.forEach((Vt) => { + Vt.children || (Vt.children = []); + const gt = qt.childrenById[Vt.id]; + gt && gt.forEach((Rr) => { + Vt.children.push(X3[Rr]); + }), Rse(Vt.children, qt); + }); +}, u$e = async function(ct, qt, Vt, gt) { + var Gv; + gt.db.clear(), X3 = {}, Sb = {}, gt.db.setGen("gen-2"), gt.parser.parse(ct); + const Rr = IO("body").append("div").attr("style", "height:400px").attr("id", "cy"); + let Jt = { + id: "root", + layoutOptions: { + "elk.hierarchyHandling": "INCLUDE_CHILDREN", + "org.eclipse.elk.padding": "[top=100, left=100, bottom=110, right=110]", + "elk.layered.spacing.edgeNodeBetweenLayers": "30", + // 'elk.layered.mergeEdges': 'true', + "elk.direction": "DOWN" + // 'elk.ports.sameLayerEdges': true, + // 'nodePlacement.strategy': 'SIMPLE', + }, + children: [], + edges: [] + }; + switch (Ra.info("Drawing flowchart using v3 renderer", $se), gt.db.getDirection()) { + case "BT": + Jt.layoutOptions["elk.direction"] = "UP"; + break; + case "TB": + Jt.layoutOptions["elk.direction"] = "DOWN"; + break; + case "LR": + Jt.layoutOptions["elk.direction"] = "RIGHT"; + break; + case "RL": + Jt.layoutOptions["elk.direction"] = "LEFT"; + break; + } + const { securityLevel: Bt, flowchart: Qu } = xU(); + let Rt; + Bt === "sandbox" && (Rt = IO("#i" + qt)); + const Yt = Bt === "sandbox" ? IO(Rt.nodes()[0].contentDocument.body) : IO("body"), Je = Bt === "sandbox" ? Rt.nodes()[0].contentDocument : document, Si = Yt.select(`[id="${qt}"]`); + _Ne(Si, ["point", "circle", "cross"], gt.type, qt); + const En = gt.db.getVertices(); + let jc; + const Fu = gt.db.getSubGraphs(); + Ra.info("Subgraphs - ", Fu); + for (let $1 = Fu.length - 1; $1 >= 0; $1--) + jc = Fu[$1], gt.db.addVertex( + jc.id, + { text: jc.title, type: jc.labelType }, + "group", + void 0, + jc.classes, + jc.dir + ); + const so = Si.insert("g").attr("class", "subgraphs"), ar = i$e(gt.db); + Jt = await YNe(En, qt, Yt, Je, gt, ar, Jt); + const cl = Si.insert("g").attr("class", "edges edgePath"), N1 = gt.db.getEdges(); + Jt = n$e(N1, gt, Jt, Si), Object.keys(X3).forEach(($1) => { + const ul = X3[$1]; + ul.parent || Jt.children.push(ul), ar.childrenById[$1] !== void 0 && (ul.labels = [ + { + text: ul.labelText, + layoutOptions: { + "nodeLabels.placement": "[H_CENTER, V_TOP, INSIDE]" + }, + width: ul.labelData.width, + height: ul.labelData.height + // width: 100, + // height: 100, + } + ], delete ul.x, delete ul.y, delete ul.width, delete ul.height); + }), Rse(Jt.children, ar), Ra.info("after layout", JSON.stringify(Jt, null, 2)); + const Ka = await $se.layout(Jt); + Kse(0, 0, Ka.children, Si, so, gt, 0), Ra.info("after layout", Ka), (Gv = Ka.edges) == null || Gv.map(($1) => { + c$e(cl, $1, $1.edgeData, gt, ar, qt); + }), RNe({}, Si, Qu.diagramPadding, Qu.useMaxWidth), Rr.remove(); +}, Kse = (ct, qt, Vt, gt, Rr, Jt, y) => { + Vt.forEach(function(Bt) { + if (Bt) + if (X3[Bt.id].offset = { + posX: Bt.x + ct, + posY: Bt.y + qt, + x: ct, + y: qt, + depth: y, + width: Bt.width, + height: Bt.height + }, Bt.type === "group") { + const Qu = Rr.insert("g").attr("class", "subgraph"); + Qu.insert("rect").attr("class", "subgraph subgraph-lvl-" + y % 5 + " node").attr("x", Bt.x + ct).attr("y", Bt.y + qt).attr("width", Bt.width).attr("height", Bt.height); + const Rt = Qu.insert("g").attr("class", "label"), Yt = xU().flowchart.htmlLabels ? Bt.labelData.width / 2 : 0; + Rt.attr( + "transform", + `translate(${Bt.labels[0].x + ct + Bt.x + Yt}, ${Bt.labels[0].y + qt + Bt.y + 3})` + ), Rt.node().appendChild(Bt.labelData.labelNode), Ra.info("Id (UGH)= ", Bt.type, Bt.labels); + } else + Ra.info("Id (UGH)= ", Bt.id), Bt.el.attr( + "transform", + `translate(${Bt.x + ct + Bt.width / 2}, ${Bt.y + qt + Bt.height / 2})` + ); + }), Vt.forEach(function(Bt) { + Bt && Bt.type === "group" && Kse(ct + Bt.x, qt + Bt.y, Bt.children, gt, Rr, Jt, y + 1); + }); +}, o$e = { + getClasses: t$e, + draw: u$e +}, s$e = (ct) => { + let qt = ""; + for (let Vt = 0; Vt < 5; Vt++) + qt += ` + .subgraph-lvl-${Vt} { + fill: ${ct[`surface${Vt}`]}; + stroke: ${ct[`surfacePeer${Vt}`]}; + } + `; + return qt; +}, f$e = (ct) => `.label { + font-family: ${ct.fontFamily}; + color: ${ct.nodeTextColor || ct.textColor}; + } + .cluster-label text { + fill: ${ct.titleColor}; + } + .cluster-label span { + color: ${ct.titleColor}; + } + + .label text,span { + fill: ${ct.nodeTextColor || ct.textColor}; + color: ${ct.nodeTextColor || ct.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${ct.mainBkg}; + stroke: ${ct.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${ct.arrowheadColor}; + } + + .edgePath .path { + stroke: ${ct.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${ct.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${ct.edgeLabelBackground}; + rect { + opacity: 0.85; + background-color: ${ct.edgeLabelBackground}; + fill: ${ct.edgeLabelBackground}; + } + text-align: center; + } + + .cluster rect { + fill: ${ct.clusterBkg}; + stroke: ${ct.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${ct.titleColor}; + } + + .cluster span { + color: ${ct.titleColor}; + } + /* .cluster div { + color: ${ct.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${ct.fontFamily}; + font-size: 12px; + background: ${ct.tertiaryColor}; + border: 1px solid ${ct.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${ct.textColor}; + } + .subgraph { + stroke-width:2; + rx:3; + } + // .subgraph-lvl-1 { + // fill:#ccc; + // // stroke:black; + // } + + .flowchart-label text { + text-anchor: middle; + } + + ${s$e(ct)} +`, h$e = f$e, m$e = { + db: xNe, + renderer: o$e, + parser: FNe, + styles: h$e +}; +export { + m$e as diagram +}; diff --git a/assets/lib/mermaid/ganttDiagram-12cf43db.js b/assets/lib/mermaid/ganttDiagram-12cf43db.js new file mode 100644 index 000000000..1defe8b60 --- /dev/null +++ b/assets/lib/mermaid/ganttDiagram-12cf43db.js @@ -0,0 +1,3445 @@ +import { J as define, K as extend, R as Rgb, L as Color, M as rgbConvert, N as nogamma, O as hue, P as commonjsGlobal, Q as getDefaultExportFromCjs, c as getConfig, s as setAccTitle, g as getAccTitle, C as setDiagramTitle, D as getDiagramTitle, b as setAccDescription, a as getAccDescription, T as dayjs, E as clear$1, e as dist, A as utils, l as log, j as d3select, k as configureSvgSize, f as common } from "./mermaid-dcacb631.js"; +import { b as bisector, t as tickStep, c as continuous, a as copy, l as linear } from "./linear-0ad15847.js"; +import { i as initRange } from "./init-cc95ec8e.js"; +function max(values, valueof) { + let max2; + if (valueof === void 0) { + for (const value of values) { + if (value != null && (max2 < value || max2 === void 0 && value >= value)) { + max2 = value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (max2 < value || max2 === void 0 && value >= value)) { + max2 = value; + } + } + } + return max2; +} +function min(values, valueof) { + let min2; + if (valueof === void 0) { + for (const value of values) { + if (value != null && (min2 > value || min2 === void 0 && value >= value)) { + min2 = value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (min2 > value || min2 === void 0 && value >= value)) { + min2 = value; + } + } + } + return min2; +} +function identity(x) { + return x; +} +var top = 1, right = 2, bottom = 3, left = 4, epsilon = 1e-6; +function translateX(x) { + return "translate(" + x + ",0)"; +} +function translateY(y) { + return "translate(0," + y + ")"; +} +function number$1(scale) { + return (d) => +scale(d); +} +function center(scale, offset) { + offset = Math.max(0, scale.bandwidth() - offset * 2) / 2; + if (scale.round()) + offset = Math.round(offset); + return (d) => +scale(d) + offset; +} +function entering() { + return !this.__axis; +} +function axis(orient, scale) { + var tickArguments = [], tickValues = null, tickFormat = null, tickSizeInner = 6, tickSizeOuter = 6, tickPadding = 3, offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5, k = orient === top || orient === left ? -1 : 1, x = orient === left || orient === right ? "x" : "y", transform = orient === top || orient === bottom ? translateX : translateY; + function axis2(context) { + var values = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain() : tickValues, format = tickFormat == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity : tickFormat, spacing = Math.max(tickSizeInner, 0) + tickPadding, range = scale.range(), range0 = +range[0] + offset, range1 = +range[range.length - 1] + offset, position = (scale.bandwidth ? center : number$1)(scale.copy(), offset), selection = context.selection ? context.selection() : context, path = selection.selectAll(".domain").data([null]), tick = selection.selectAll(".tick").data(values, scale).order(), tickExit = tick.exit(), tickEnter = tick.enter().append("g").attr("class", "tick"), line = tick.select("line"), text = tick.select("text"); + path = path.merge(path.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "currentColor")); + tick = tick.merge(tickEnter); + line = line.merge(tickEnter.append("line").attr("stroke", "currentColor").attr(x + "2", k * tickSizeInner)); + text = text.merge(tickEnter.append("text").attr("fill", "currentColor").attr(x, k * spacing).attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em")); + if (context !== selection) { + path = path.transition(context); + tick = tick.transition(context); + line = line.transition(context); + text = text.transition(context); + tickExit = tickExit.transition(context).attr("opacity", epsilon).attr("transform", function(d) { + return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute("transform"); + }); + tickEnter.attr("opacity", epsilon).attr("transform", function(d) { + var p = this.parentNode.__axis; + return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); + }); + } + tickExit.remove(); + path.attr("d", orient === left || orient === right ? tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1 : tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1); + tick.attr("opacity", 1).attr("transform", function(d) { + return transform(position(d) + offset); + }); + line.attr(x + "2", k * tickSizeInner); + text.attr(x, k * spacing).text(format); + selection.filter(entering).attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle"); + selection.each(function() { + this.__axis = position; + }); + } + axis2.scale = function(_) { + return arguments.length ? (scale = _, axis2) : scale; + }; + axis2.ticks = function() { + return tickArguments = Array.from(arguments), axis2; + }; + axis2.tickArguments = function(_) { + return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis2) : tickArguments.slice(); + }; + axis2.tickValues = function(_) { + return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis2) : tickValues && tickValues.slice(); + }; + axis2.tickFormat = function(_) { + return arguments.length ? (tickFormat = _, axis2) : tickFormat; + }; + axis2.tickSize = function(_) { + return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis2) : tickSizeInner; + }; + axis2.tickSizeInner = function(_) { + return arguments.length ? (tickSizeInner = +_, axis2) : tickSizeInner; + }; + axis2.tickSizeOuter = function(_) { + return arguments.length ? (tickSizeOuter = +_, axis2) : tickSizeOuter; + }; + axis2.tickPadding = function(_) { + return arguments.length ? (tickPadding = +_, axis2) : tickPadding; + }; + axis2.offset = function(_) { + return arguments.length ? (offset = +_, axis2) : offset; + }; + return axis2; +} +function axisTop(scale) { + return axis(top, scale); +} +function axisBottom(scale) { + return axis(bottom, scale); +} +const radians = Math.PI / 180; +const degrees = 180 / Math.PI; +const K = 18, Xn = 0.96422, Yn = 1, Zn = 0.82521, t0$1 = 4 / 29, t1$1 = 6 / 29, t2 = 3 * t1$1 * t1$1, t3 = t1$1 * t1$1 * t1$1; +function labConvert(o) { + if (o instanceof Lab) + return new Lab(o.l, o.a, o.b, o.opacity); + if (o instanceof Hcl) + return hcl2lab(o); + if (!(o instanceof Rgb)) + o = rgbConvert(o); + var r = rgb2lrgb(o.r), g = rgb2lrgb(o.g), b = rgb2lrgb(o.b), y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z; + if (r === g && g === b) + x = z = y; + else { + x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn); + z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn); + } + return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity); +} +function lab(l, a, b, opacity) { + return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity); +} +function Lab(l, a, b, opacity) { + this.l = +l; + this.a = +a; + this.b = +b; + this.opacity = +opacity; +} +define(Lab, lab, extend(Color, { + brighter(k) { + return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity); + }, + darker(k) { + return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity); + }, + rgb() { + var y = (this.l + 16) / 116, x = isNaN(this.a) ? y : y + this.a / 500, z = isNaN(this.b) ? y : y - this.b / 200; + x = Xn * lab2xyz(x); + y = Yn * lab2xyz(y); + z = Zn * lab2xyz(z); + return new Rgb( + lrgb2rgb(3.1338561 * x - 1.6168667 * y - 0.4906146 * z), + lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.033454 * z), + lrgb2rgb(0.0719453 * x - 0.2289914 * y + 1.4052427 * z), + this.opacity + ); + } +})); +function xyz2lab(t) { + return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0$1; +} +function lab2xyz(t) { + return t > t1$1 ? t * t * t : t2 * (t - t0$1); +} +function lrgb2rgb(x) { + return 255 * (x <= 31308e-7 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055); +} +function rgb2lrgb(x) { + return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4); +} +function hclConvert(o) { + if (o instanceof Hcl) + return new Hcl(o.h, o.c, o.l, o.opacity); + if (!(o instanceof Lab)) + o = labConvert(o); + if (o.a === 0 && o.b === 0) + return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity); + var h = Math.atan2(o.b, o.a) * degrees; + return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity); +} +function hcl$1(h, c, l, opacity) { + return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity); +} +function Hcl(h, c, l, opacity) { + this.h = +h; + this.c = +c; + this.l = +l; + this.opacity = +opacity; +} +function hcl2lab(o) { + if (isNaN(o.h)) + return new Lab(o.l, 0, 0, o.opacity); + var h = o.h * radians; + return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity); +} +define(Hcl, hcl$1, extend(Color, { + brighter(k) { + return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity); + }, + darker(k) { + return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity); + }, + rgb() { + return hcl2lab(this).rgb(); + } +})); +function hcl(hue2) { + return function(start, end) { + var h = hue2((start = hcl$1(start)).h, (end = hcl$1(end)).h), c = nogamma(start.c, end.c), l = nogamma(start.l, end.l), opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.h = h(t); + start.c = c(t); + start.l = l(t); + start.opacity = opacity(t); + return start + ""; + }; + }; +} +const interpolateHcl = hcl(hue); +function nice(domain, interval) { + domain = domain.slice(); + var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], t; + if (x1 < x0) { + t = i0, i0 = i1, i1 = t; + t = x0, x0 = x1, x1 = t; + } + domain[i0] = interval.floor(x0); + domain[i1] = interval.ceil(x1); + return domain; +} +const t0 = /* @__PURE__ */ new Date(), t1 = /* @__PURE__ */ new Date(); +function timeInterval(floori, offseti, count, field) { + function interval(date2) { + return floori(date2 = arguments.length === 0 ? /* @__PURE__ */ new Date() : /* @__PURE__ */ new Date(+date2)), date2; + } + interval.floor = (date2) => { + return floori(date2 = /* @__PURE__ */ new Date(+date2)), date2; + }; + interval.ceil = (date2) => { + return floori(date2 = new Date(date2 - 1)), offseti(date2, 1), floori(date2), date2; + }; + interval.round = (date2) => { + const d0 = interval(date2), d1 = interval.ceil(date2); + return date2 - d0 < d1 - date2 ? d0 : d1; + }; + interval.offset = (date2, step) => { + return offseti(date2 = /* @__PURE__ */ new Date(+date2), step == null ? 1 : Math.floor(step)), date2; + }; + interval.range = (start, stop, step) => { + const range = []; + start = interval.ceil(start); + step = step == null ? 1 : Math.floor(step); + if (!(start < stop) || !(step > 0)) + return range; + let previous; + do + range.push(previous = /* @__PURE__ */ new Date(+start)), offseti(start, step), floori(start); + while (previous < start && start < stop); + return range; + }; + interval.filter = (test) => { + return timeInterval((date2) => { + if (date2 >= date2) + while (floori(date2), !test(date2)) + date2.setTime(date2 - 1); + }, (date2, step) => { + if (date2 >= date2) { + if (step < 0) + while (++step <= 0) { + while (offseti(date2, -1), !test(date2)) { + } + } + else + while (--step >= 0) { + while (offseti(date2, 1), !test(date2)) { + } + } + } + }); + }; + if (count) { + interval.count = (start, end) => { + t0.setTime(+start), t1.setTime(+end); + floori(t0), floori(t1); + return Math.floor(count(t0, t1)); + }; + interval.every = (step) => { + step = Math.floor(step); + return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? (d) => field(d) % step === 0 : (d) => interval.count(0, d) % step === 0); + }; + } + return interval; +} +const millisecond = timeInterval(() => { +}, (date2, step) => { + date2.setTime(+date2 + step); +}, (start, end) => { + return end - start; +}); +millisecond.every = (k) => { + k = Math.floor(k); + if (!isFinite(k) || !(k > 0)) + return null; + if (!(k > 1)) + return millisecond; + return timeInterval((date2) => { + date2.setTime(Math.floor(date2 / k) * k); + }, (date2, step) => { + date2.setTime(+date2 + step * k); + }, (start, end) => { + return (end - start) / k; + }); +}; +millisecond.range; +const durationSecond = 1e3; +const durationMinute = durationSecond * 60; +const durationHour = durationMinute * 60; +const durationDay = durationHour * 24; +const durationWeek = durationDay * 7; +const durationMonth = durationDay * 30; +const durationYear = durationDay * 365; +const second = timeInterval((date2) => { + date2.setTime(date2 - date2.getMilliseconds()); +}, (date2, step) => { + date2.setTime(+date2 + step * durationSecond); +}, (start, end) => { + return (end - start) / durationSecond; +}, (date2) => { + return date2.getUTCSeconds(); +}); +second.range; +const timeMinute = timeInterval((date2) => { + date2.setTime(date2 - date2.getMilliseconds() - date2.getSeconds() * durationSecond); +}, (date2, step) => { + date2.setTime(+date2 + step * durationMinute); +}, (start, end) => { + return (end - start) / durationMinute; +}, (date2) => { + return date2.getMinutes(); +}); +timeMinute.range; +const utcMinute = timeInterval((date2) => { + date2.setUTCSeconds(0, 0); +}, (date2, step) => { + date2.setTime(+date2 + step * durationMinute); +}, (start, end) => { + return (end - start) / durationMinute; +}, (date2) => { + return date2.getUTCMinutes(); +}); +utcMinute.range; +const timeHour = timeInterval((date2) => { + date2.setTime(date2 - date2.getMilliseconds() - date2.getSeconds() * durationSecond - date2.getMinutes() * durationMinute); +}, (date2, step) => { + date2.setTime(+date2 + step * durationHour); +}, (start, end) => { + return (end - start) / durationHour; +}, (date2) => { + return date2.getHours(); +}); +timeHour.range; +const utcHour = timeInterval((date2) => { + date2.setUTCMinutes(0, 0, 0); +}, (date2, step) => { + date2.setTime(+date2 + step * durationHour); +}, (start, end) => { + return (end - start) / durationHour; +}, (date2) => { + return date2.getUTCHours(); +}); +utcHour.range; +const timeDay = timeInterval( + (date2) => date2.setHours(0, 0, 0, 0), + (date2, step) => date2.setDate(date2.getDate() + step), + (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay, + (date2) => date2.getDate() - 1 +); +timeDay.range; +const utcDay = timeInterval((date2) => { + date2.setUTCHours(0, 0, 0, 0); +}, (date2, step) => { + date2.setUTCDate(date2.getUTCDate() + step); +}, (start, end) => { + return (end - start) / durationDay; +}, (date2) => { + return date2.getUTCDate() - 1; +}); +utcDay.range; +const unixDay = timeInterval((date2) => { + date2.setUTCHours(0, 0, 0, 0); +}, (date2, step) => { + date2.setUTCDate(date2.getUTCDate() + step); +}, (start, end) => { + return (end - start) / durationDay; +}, (date2) => { + return Math.floor(date2 / durationDay); +}); +unixDay.range; +function timeWeekday(i) { + return timeInterval((date2) => { + date2.setDate(date2.getDate() - (date2.getDay() + 7 - i) % 7); + date2.setHours(0, 0, 0, 0); + }, (date2, step) => { + date2.setDate(date2.getDate() + step * 7); + }, (start, end) => { + return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek; + }); +} +const timeSunday = timeWeekday(0); +const timeMonday = timeWeekday(1); +const timeTuesday = timeWeekday(2); +const timeWednesday = timeWeekday(3); +const timeThursday = timeWeekday(4); +const timeFriday = timeWeekday(5); +const timeSaturday = timeWeekday(6); +timeSunday.range; +timeMonday.range; +timeTuesday.range; +timeWednesday.range; +timeThursday.range; +timeFriday.range; +timeSaturday.range; +function utcWeekday(i) { + return timeInterval((date2) => { + date2.setUTCDate(date2.getUTCDate() - (date2.getUTCDay() + 7 - i) % 7); + date2.setUTCHours(0, 0, 0, 0); + }, (date2, step) => { + date2.setUTCDate(date2.getUTCDate() + step * 7); + }, (start, end) => { + return (end - start) / durationWeek; + }); +} +const utcSunday = utcWeekday(0); +const utcMonday = utcWeekday(1); +const utcTuesday = utcWeekday(2); +const utcWednesday = utcWeekday(3); +const utcThursday = utcWeekday(4); +const utcFriday = utcWeekday(5); +const utcSaturday = utcWeekday(6); +utcSunday.range; +utcMonday.range; +utcTuesday.range; +utcWednesday.range; +utcThursday.range; +utcFriday.range; +utcSaturday.range; +const timeMonth = timeInterval((date2) => { + date2.setDate(1); + date2.setHours(0, 0, 0, 0); +}, (date2, step) => { + date2.setMonth(date2.getMonth() + step); +}, (start, end) => { + return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12; +}, (date2) => { + return date2.getMonth(); +}); +timeMonth.range; +const utcMonth = timeInterval((date2) => { + date2.setUTCDate(1); + date2.setUTCHours(0, 0, 0, 0); +}, (date2, step) => { + date2.setUTCMonth(date2.getUTCMonth() + step); +}, (start, end) => { + return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12; +}, (date2) => { + return date2.getUTCMonth(); +}); +utcMonth.range; +const timeYear = timeInterval((date2) => { + date2.setMonth(0, 1); + date2.setHours(0, 0, 0, 0); +}, (date2, step) => { + date2.setFullYear(date2.getFullYear() + step); +}, (start, end) => { + return end.getFullYear() - start.getFullYear(); +}, (date2) => { + return date2.getFullYear(); +}); +timeYear.every = (k) => { + return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date2) => { + date2.setFullYear(Math.floor(date2.getFullYear() / k) * k); + date2.setMonth(0, 1); + date2.setHours(0, 0, 0, 0); + }, (date2, step) => { + date2.setFullYear(date2.getFullYear() + step * k); + }); +}; +timeYear.range; +const utcYear = timeInterval((date2) => { + date2.setUTCMonth(0, 1); + date2.setUTCHours(0, 0, 0, 0); +}, (date2, step) => { + date2.setUTCFullYear(date2.getUTCFullYear() + step); +}, (start, end) => { + return end.getUTCFullYear() - start.getUTCFullYear(); +}, (date2) => { + return date2.getUTCFullYear(); +}); +utcYear.every = (k) => { + return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date2) => { + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / k) * k); + date2.setUTCMonth(0, 1); + date2.setUTCHours(0, 0, 0, 0); + }, (date2, step) => { + date2.setUTCFullYear(date2.getUTCFullYear() + step * k); + }); +}; +utcYear.range; +function ticker(year, month, week, day, hour, minute) { + const tickIntervals = [ + [second, 1, durationSecond], + [second, 5, 5 * durationSecond], + [second, 15, 15 * durationSecond], + [second, 30, 30 * durationSecond], + [minute, 1, durationMinute], + [minute, 5, 5 * durationMinute], + [minute, 15, 15 * durationMinute], + [minute, 30, 30 * durationMinute], + [hour, 1, durationHour], + [hour, 3, 3 * durationHour], + [hour, 6, 6 * durationHour], + [hour, 12, 12 * durationHour], + [day, 1, durationDay], + [day, 2, 2 * durationDay], + [week, 1, durationWeek], + [month, 1, durationMonth], + [month, 3, 3 * durationMonth], + [year, 1, durationYear] + ]; + function ticks(start, stop, count) { + const reverse = stop < start; + if (reverse) + [start, stop] = [stop, start]; + const interval = count && typeof count.range === "function" ? count : tickInterval2(start, stop, count); + const ticks2 = interval ? interval.range(start, +stop + 1) : []; + return reverse ? ticks2.reverse() : ticks2; + } + function tickInterval2(start, stop, count) { + const target = Math.abs(stop - start) / count; + const i = bisector(([, , step2]) => step2).right(tickIntervals, target); + if (i === tickIntervals.length) + return year.every(tickStep(start / durationYear, stop / durationYear, count)); + if (i === 0) + return millisecond.every(Math.max(tickStep(start, stop, count), 1)); + const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i]; + return t.every(step); + } + return [ticks, tickInterval2]; +} +const [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute); +function localDate(d) { + if (0 <= d.y && d.y < 100) { + var date2 = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L); + date2.setFullYear(d.y); + return date2; + } + return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L); +} +function utcDate(d) { + if (0 <= d.y && d.y < 100) { + var date2 = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L)); + date2.setUTCFullYear(d.y); + return date2; + } + return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L)); +} +function newDate(y, m, d) { + return { y, m, d, H: 0, M: 0, S: 0, L: 0 }; +} +function formatLocale(locale2) { + var locale_dateTime = locale2.dateTime, locale_date = locale2.date, locale_time = locale2.time, locale_periods = locale2.periods, locale_weekdays = locale2.days, locale_shortWeekdays = locale2.shortDays, locale_months = locale2.months, locale_shortMonths = locale2.shortMonths; + var periodRe = formatRe(locale_periods), periodLookup = formatLookup(locale_periods), weekdayRe = formatRe(locale_weekdays), weekdayLookup = formatLookup(locale_weekdays), shortWeekdayRe = formatRe(locale_shortWeekdays), shortWeekdayLookup = formatLookup(locale_shortWeekdays), monthRe = formatRe(locale_months), monthLookup = formatLookup(locale_months), shortMonthRe = formatRe(locale_shortMonths), shortMonthLookup = formatLookup(locale_shortMonths); + var formats = { + "a": formatShortWeekday, + "A": formatWeekday, + "b": formatShortMonth, + "B": formatMonth, + "c": null, + "d": formatDayOfMonth, + "e": formatDayOfMonth, + "f": formatMicroseconds, + "g": formatYearISO, + "G": formatFullYearISO, + "H": formatHour24, + "I": formatHour12, + "j": formatDayOfYear, + "L": formatMilliseconds, + "m": formatMonthNumber, + "M": formatMinutes, + "p": formatPeriod, + "q": formatQuarter, + "Q": formatUnixTimestamp, + "s": formatUnixTimestampSeconds, + "S": formatSeconds, + "u": formatWeekdayNumberMonday, + "U": formatWeekNumberSunday, + "V": formatWeekNumberISO, + "w": formatWeekdayNumberSunday, + "W": formatWeekNumberMonday, + "x": null, + "X": null, + "y": formatYear, + "Y": formatFullYear, + "Z": formatZone, + "%": formatLiteralPercent + }; + var utcFormats = { + "a": formatUTCShortWeekday, + "A": formatUTCWeekday, + "b": formatUTCShortMonth, + "B": formatUTCMonth, + "c": null, + "d": formatUTCDayOfMonth, + "e": formatUTCDayOfMonth, + "f": formatUTCMicroseconds, + "g": formatUTCYearISO, + "G": formatUTCFullYearISO, + "H": formatUTCHour24, + "I": formatUTCHour12, + "j": formatUTCDayOfYear, + "L": formatUTCMilliseconds, + "m": formatUTCMonthNumber, + "M": formatUTCMinutes, + "p": formatUTCPeriod, + "q": formatUTCQuarter, + "Q": formatUnixTimestamp, + "s": formatUnixTimestampSeconds, + "S": formatUTCSeconds, + "u": formatUTCWeekdayNumberMonday, + "U": formatUTCWeekNumberSunday, + "V": formatUTCWeekNumberISO, + "w": formatUTCWeekdayNumberSunday, + "W": formatUTCWeekNumberMonday, + "x": null, + "X": null, + "y": formatUTCYear, + "Y": formatUTCFullYear, + "Z": formatUTCZone, + "%": formatLiteralPercent + }; + var parses = { + "a": parseShortWeekday, + "A": parseWeekday, + "b": parseShortMonth, + "B": parseMonth, + "c": parseLocaleDateTime, + "d": parseDayOfMonth, + "e": parseDayOfMonth, + "f": parseMicroseconds, + "g": parseYear, + "G": parseFullYear, + "H": parseHour24, + "I": parseHour24, + "j": parseDayOfYear, + "L": parseMilliseconds, + "m": parseMonthNumber, + "M": parseMinutes, + "p": parsePeriod, + "q": parseQuarter, + "Q": parseUnixTimestamp, + "s": parseUnixTimestampSeconds, + "S": parseSeconds, + "u": parseWeekdayNumberMonday, + "U": parseWeekNumberSunday, + "V": parseWeekNumberISO, + "w": parseWeekdayNumberSunday, + "W": parseWeekNumberMonday, + "x": parseLocaleDate, + "X": parseLocaleTime, + "y": parseYear, + "Y": parseFullYear, + "Z": parseZone, + "%": parseLiteralPercent + }; + formats.x = newFormat(locale_date, formats); + formats.X = newFormat(locale_time, formats); + formats.c = newFormat(locale_dateTime, formats); + utcFormats.x = newFormat(locale_date, utcFormats); + utcFormats.X = newFormat(locale_time, utcFormats); + utcFormats.c = newFormat(locale_dateTime, utcFormats); + function newFormat(specifier, formats2) { + return function(date2) { + var string = [], i = -1, j = 0, n = specifier.length, c, pad2, format; + if (!(date2 instanceof Date)) + date2 = /* @__PURE__ */ new Date(+date2); + while (++i < n) { + if (specifier.charCodeAt(i) === 37) { + string.push(specifier.slice(j, i)); + if ((pad2 = pads[c = specifier.charAt(++i)]) != null) + c = specifier.charAt(++i); + else + pad2 = c === "e" ? " " : "0"; + if (format = formats2[c]) + c = format(date2, pad2); + string.push(c); + j = i + 1; + } + } + string.push(specifier.slice(j, i)); + return string.join(""); + }; + } + function newParse(specifier, Z) { + return function(string) { + var d = newDate(1900, void 0, 1), i = parseSpecifier(d, specifier, string += "", 0), week, day; + if (i != string.length) + return null; + if ("Q" in d) + return new Date(d.Q); + if ("s" in d) + return new Date(d.s * 1e3 + ("L" in d ? d.L : 0)); + if (Z && !("Z" in d)) + d.Z = 0; + if ("p" in d) + d.H = d.H % 12 + d.p * 12; + if (d.m === void 0) + d.m = "q" in d ? d.q : 0; + if ("V" in d) { + if (d.V < 1 || d.V > 53) + return null; + if (!("w" in d)) + d.w = 1; + if ("Z" in d) { + week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay(); + week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week); + week = utcDay.offset(week, (d.V - 1) * 7); + d.y = week.getUTCFullYear(); + d.m = week.getUTCMonth(); + d.d = week.getUTCDate() + (d.w + 6) % 7; + } else { + week = localDate(newDate(d.y, 0, 1)), day = week.getDay(); + week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week); + week = timeDay.offset(week, (d.V - 1) * 7); + d.y = week.getFullYear(); + d.m = week.getMonth(); + d.d = week.getDate() + (d.w + 6) % 7; + } + } else if ("W" in d || "U" in d) { + if (!("w" in d)) + d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0; + day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay(); + d.m = 0; + d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7; + } + if ("Z" in d) { + d.H += d.Z / 100 | 0; + d.M += d.Z % 100; + return utcDate(d); + } + return localDate(d); + }; + } + function parseSpecifier(d, specifier, string, j) { + var i = 0, n = specifier.length, m = string.length, c, parse; + while (i < n) { + if (j >= m) + return -1; + c = specifier.charCodeAt(i++); + if (c === 37) { + c = specifier.charAt(i++); + parse = parses[c in pads ? specifier.charAt(i++) : c]; + if (!parse || (j = parse(d, string, j)) < 0) + return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + return j; + } + function parsePeriod(d, string, i) { + var n = periodRe.exec(string.slice(i)); + return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function parseShortWeekday(d, string, i) { + var n = shortWeekdayRe.exec(string.slice(i)); + return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function parseWeekday(d, string, i) { + var n = weekdayRe.exec(string.slice(i)); + return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function parseShortMonth(d, string, i) { + var n = shortMonthRe.exec(string.slice(i)); + return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function parseMonth(d, string, i) { + var n = monthRe.exec(string.slice(i)); + return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function parseLocaleDateTime(d, string, i) { + return parseSpecifier(d, locale_dateTime, string, i); + } + function parseLocaleDate(d, string, i) { + return parseSpecifier(d, locale_date, string, i); + } + function parseLocaleTime(d, string, i) { + return parseSpecifier(d, locale_time, string, i); + } + function formatShortWeekday(d) { + return locale_shortWeekdays[d.getDay()]; + } + function formatWeekday(d) { + return locale_weekdays[d.getDay()]; + } + function formatShortMonth(d) { + return locale_shortMonths[d.getMonth()]; + } + function formatMonth(d) { + return locale_months[d.getMonth()]; + } + function formatPeriod(d) { + return locale_periods[+(d.getHours() >= 12)]; + } + function formatQuarter(d) { + return 1 + ~~(d.getMonth() / 3); + } + function formatUTCShortWeekday(d) { + return locale_shortWeekdays[d.getUTCDay()]; + } + function formatUTCWeekday(d) { + return locale_weekdays[d.getUTCDay()]; + } + function formatUTCShortMonth(d) { + return locale_shortMonths[d.getUTCMonth()]; + } + function formatUTCMonth(d) { + return locale_months[d.getUTCMonth()]; + } + function formatUTCPeriod(d) { + return locale_periods[+(d.getUTCHours() >= 12)]; + } + function formatUTCQuarter(d) { + return 1 + ~~(d.getUTCMonth() / 3); + } + return { + format: function(specifier) { + var f = newFormat(specifier += "", formats); + f.toString = function() { + return specifier; + }; + return f; + }, + parse: function(specifier) { + var p = newParse(specifier += "", false); + p.toString = function() { + return specifier; + }; + return p; + }, + utcFormat: function(specifier) { + var f = newFormat(specifier += "", utcFormats); + f.toString = function() { + return specifier; + }; + return f; + }, + utcParse: function(specifier) { + var p = newParse(specifier += "", true); + p.toString = function() { + return specifier; + }; + return p; + } + }; +} +var pads = { "-": "", "_": " ", "0": "0" }, numberRe = /^\s*\d+/, percentRe = /^%/, requoteRe = /[\\^$*+?|[\]().{}]/g; +function pad(value, fill, width) { + var sign = value < 0 ? "-" : "", string = (sign ? -value : value) + "", length = string.length; + return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); +} +function requote(s) { + return s.replace(requoteRe, "\\$&"); +} +function formatRe(names) { + return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i"); +} +function formatLookup(names) { + return new Map(names.map((name, i) => [name.toLowerCase(), i])); +} +function parseWeekdayNumberSunday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.w = +n[0], i + n[0].length) : -1; +} +function parseWeekdayNumberMonday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.u = +n[0], i + n[0].length) : -1; +} +function parseWeekNumberSunday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.U = +n[0], i + n[0].length) : -1; +} +function parseWeekNumberISO(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.V = +n[0], i + n[0].length) : -1; +} +function parseWeekNumberMonday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.W = +n[0], i + n[0].length) : -1; +} +function parseFullYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 4)); + return n ? (d.y = +n[0], i + n[0].length) : -1; +} +function parseYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2e3), i + n[0].length) : -1; +} +function parseZone(d, string, i) { + var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6)); + return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1; +} +function parseQuarter(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1; +} +function parseMonthNumber(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.m = n[0] - 1, i + n[0].length) : -1; +} +function parseDayOfMonth(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.d = +n[0], i + n[0].length) : -1; +} +function parseDayOfYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 3)); + return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1; +} +function parseHour24(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.H = +n[0], i + n[0].length) : -1; +} +function parseMinutes(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.M = +n[0], i + n[0].length) : -1; +} +function parseSeconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.S = +n[0], i + n[0].length) : -1; +} +function parseMilliseconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 3)); + return n ? (d.L = +n[0], i + n[0].length) : -1; +} +function parseMicroseconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 6)); + return n ? (d.L = Math.floor(n[0] / 1e3), i + n[0].length) : -1; +} +function parseLiteralPercent(d, string, i) { + var n = percentRe.exec(string.slice(i, i + 1)); + return n ? i + n[0].length : -1; +} +function parseUnixTimestamp(d, string, i) { + var n = numberRe.exec(string.slice(i)); + return n ? (d.Q = +n[0], i + n[0].length) : -1; +} +function parseUnixTimestampSeconds(d, string, i) { + var n = numberRe.exec(string.slice(i)); + return n ? (d.s = +n[0], i + n[0].length) : -1; +} +function formatDayOfMonth(d, p) { + return pad(d.getDate(), p, 2); +} +function formatHour24(d, p) { + return pad(d.getHours(), p, 2); +} +function formatHour12(d, p) { + return pad(d.getHours() % 12 || 12, p, 2); +} +function formatDayOfYear(d, p) { + return pad(1 + timeDay.count(timeYear(d), d), p, 3); +} +function formatMilliseconds(d, p) { + return pad(d.getMilliseconds(), p, 3); +} +function formatMicroseconds(d, p) { + return formatMilliseconds(d, p) + "000"; +} +function formatMonthNumber(d, p) { + return pad(d.getMonth() + 1, p, 2); +} +function formatMinutes(d, p) { + return pad(d.getMinutes(), p, 2); +} +function formatSeconds(d, p) { + return pad(d.getSeconds(), p, 2); +} +function formatWeekdayNumberMonday(d) { + var day = d.getDay(); + return day === 0 ? 7 : day; +} +function formatWeekNumberSunday(d, p) { + return pad(timeSunday.count(timeYear(d) - 1, d), p, 2); +} +function dISO(d) { + var day = d.getDay(); + return day >= 4 || day === 0 ? timeThursday(d) : timeThursday.ceil(d); +} +function formatWeekNumberISO(d, p) { + d = dISO(d); + return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2); +} +function formatWeekdayNumberSunday(d) { + return d.getDay(); +} +function formatWeekNumberMonday(d, p) { + return pad(timeMonday.count(timeYear(d) - 1, d), p, 2); +} +function formatYear(d, p) { + return pad(d.getFullYear() % 100, p, 2); +} +function formatYearISO(d, p) { + d = dISO(d); + return pad(d.getFullYear() % 100, p, 2); +} +function formatFullYear(d, p) { + return pad(d.getFullYear() % 1e4, p, 4); +} +function formatFullYearISO(d, p) { + var day = d.getDay(); + d = day >= 4 || day === 0 ? timeThursday(d) : timeThursday.ceil(d); + return pad(d.getFullYear() % 1e4, p, 4); +} +function formatZone(d) { + var z = d.getTimezoneOffset(); + return (z > 0 ? "-" : (z *= -1, "+")) + pad(z / 60 | 0, "0", 2) + pad(z % 60, "0", 2); +} +function formatUTCDayOfMonth(d, p) { + return pad(d.getUTCDate(), p, 2); +} +function formatUTCHour24(d, p) { + return pad(d.getUTCHours(), p, 2); +} +function formatUTCHour12(d, p) { + return pad(d.getUTCHours() % 12 || 12, p, 2); +} +function formatUTCDayOfYear(d, p) { + return pad(1 + utcDay.count(utcYear(d), d), p, 3); +} +function formatUTCMilliseconds(d, p) { + return pad(d.getUTCMilliseconds(), p, 3); +} +function formatUTCMicroseconds(d, p) { + return formatUTCMilliseconds(d, p) + "000"; +} +function formatUTCMonthNumber(d, p) { + return pad(d.getUTCMonth() + 1, p, 2); +} +function formatUTCMinutes(d, p) { + return pad(d.getUTCMinutes(), p, 2); +} +function formatUTCSeconds(d, p) { + return pad(d.getUTCSeconds(), p, 2); +} +function formatUTCWeekdayNumberMonday(d) { + var dow = d.getUTCDay(); + return dow === 0 ? 7 : dow; +} +function formatUTCWeekNumberSunday(d, p) { + return pad(utcSunday.count(utcYear(d) - 1, d), p, 2); +} +function UTCdISO(d) { + var day = d.getUTCDay(); + return day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d); +} +function formatUTCWeekNumberISO(d, p) { + d = UTCdISO(d); + return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2); +} +function formatUTCWeekdayNumberSunday(d) { + return d.getUTCDay(); +} +function formatUTCWeekNumberMonday(d, p) { + return pad(utcMonday.count(utcYear(d) - 1, d), p, 2); +} +function formatUTCYear(d, p) { + return pad(d.getUTCFullYear() % 100, p, 2); +} +function formatUTCYearISO(d, p) { + d = UTCdISO(d); + return pad(d.getUTCFullYear() % 100, p, 2); +} +function formatUTCFullYear(d, p) { + return pad(d.getUTCFullYear() % 1e4, p, 4); +} +function formatUTCFullYearISO(d, p) { + var day = d.getUTCDay(); + d = day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d); + return pad(d.getUTCFullYear() % 1e4, p, 4); +} +function formatUTCZone() { + return "+0000"; +} +function formatLiteralPercent() { + return "%"; +} +function formatUnixTimestamp(d) { + return +d; +} +function formatUnixTimestampSeconds(d) { + return Math.floor(+d / 1e3); +} +var locale; +var timeFormat; +defaultLocale({ + dateTime: "%x, %X", + date: "%-m/%-d/%Y", + time: "%-I:%M:%S %p", + periods: ["AM", "PM"], + days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] +}); +function defaultLocale(definition) { + locale = formatLocale(definition); + timeFormat = locale.format; + locale.parse; + locale.utcFormat; + locale.utcParse; + return locale; +} +function date(t) { + return new Date(t); +} +function number(t) { + return t instanceof Date ? +t : +/* @__PURE__ */ new Date(+t); +} +function calendar(ticks, tickInterval2, year, month, week, day, hour, minute, second2, format) { + var scale = continuous(), invert = scale.invert, domain = scale.domain; + var formatMillisecond = format(".%L"), formatSecond = format(":%S"), formatMinute = format("%I:%M"), formatHour = format("%I %p"), formatDay = format("%a %d"), formatWeek = format("%b %d"), formatMonth = format("%B"), formatYear2 = format("%Y"); + function tickFormat(date2) { + return (second2(date2) < date2 ? formatMillisecond : minute(date2) < date2 ? formatSecond : hour(date2) < date2 ? formatMinute : day(date2) < date2 ? formatHour : month(date2) < date2 ? week(date2) < date2 ? formatDay : formatWeek : year(date2) < date2 ? formatMonth : formatYear2)(date2); + } + scale.invert = function(y) { + return new Date(invert(y)); + }; + scale.domain = function(_) { + return arguments.length ? domain(Array.from(_, number)) : domain().map(date); + }; + scale.ticks = function(interval) { + var d = domain(); + return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval); + }; + scale.tickFormat = function(count, specifier) { + return specifier == null ? tickFormat : format(specifier); + }; + scale.nice = function(interval) { + var d = domain(); + if (!interval || typeof interval.range !== "function") + interval = tickInterval2(d[0], d[d.length - 1], interval == null ? 10 : interval); + return interval ? domain(nice(d, interval)) : scale; + }; + scale.copy = function() { + return copy(scale, calendar(ticks, tickInterval2, year, month, week, day, hour, minute, second2, format)); + }; + return scale; +} +function time() { + return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute, second, timeFormat).domain([new Date(2e3, 0, 1), new Date(2e3, 0, 2)]), arguments); +} +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [6, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33, 35, 37], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 29], $V6 = [1, 30], $V7 = [1, 31], $V8 = [1, 9], $V9 = [1, 10], $Va = [1, 11], $Vb = [1, 12], $Vc = [1, 13], $Vd = [1, 14], $Ve = [1, 15], $Vf = [1, 16], $Vg = [1, 18], $Vh = [1, 19], $Vi = [1, 20], $Vj = [1, 21], $Vk = [1, 22], $Vl = [1, 24], $Vm = [1, 32]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "gantt": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NL": 10, "weekday": 11, "weekday_monday": 12, "weekday_tuesday": 13, "weekday_wednesday": 14, "weekday_thursday": 15, "weekday_friday": 16, "weekday_saturday": 17, "weekday_sunday": 18, "dateFormat": 19, "inclusiveEndDates": 20, "topAxis": 21, "axisFormat": 22, "tickInterval": 23, "excludes": 24, "includes": 25, "todayMarker": 26, "title": 27, "acc_title": 28, "acc_title_value": 29, "acc_descr": 30, "acc_descr_value": 31, "acc_descr_multiline_value": 32, "section": 33, "clickStatement": 34, "taskTxt": 35, "taskData": 36, "click": 37, "callbackname": 38, "callbackargs": 39, "href": 40, "clickStatementDebug": 41, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "gantt", 6: "EOF", 8: "SPACE", 10: "NL", 12: "weekday_monday", 13: "weekday_tuesday", 14: "weekday_wednesday", 15: "weekday_thursday", 16: "weekday_friday", 17: "weekday_saturday", 18: "weekday_sunday", 19: "dateFormat", 20: "inclusiveEndDates", 21: "topAxis", 22: "axisFormat", 23: "tickInterval", 24: "excludes", 25: "includes", 26: "todayMarker", 27: "title", 28: "acc_title", 29: "acc_title_value", 30: "acc_descr", 31: "acc_descr_value", 32: "acc_descr_multiline_value", 33: "section", 35: "taskTxt", 36: "taskData", 37: "click", 38: "callbackname", 39: "callbackargs", 40: "href" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [34, 2], [34, 3], [34, 3], [34, 4], [34, 3], [34, 4], [34, 2], [41, 2], [41, 3], [41, 3], [41, 4], [41, 3], [41, 4], [41, 2]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 1: + return $$[$0 - 1]; + case 2: + this.$ = []; + break; + case 3: + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + break; + case 4: + case 5: + this.$ = $$[$0]; + break; + case 6: + case 7: + this.$ = []; + break; + case 8: + yy.setWeekday("monday"); + break; + case 9: + yy.setWeekday("tuesday"); + break; + case 10: + yy.setWeekday("wednesday"); + break; + case 11: + yy.setWeekday("thursday"); + break; + case 12: + yy.setWeekday("friday"); + break; + case 13: + yy.setWeekday("saturday"); + break; + case 14: + yy.setWeekday("sunday"); + break; + case 15: + yy.setDateFormat($$[$0].substr(11)); + this.$ = $$[$0].substr(11); + break; + case 16: + yy.enableInclusiveEndDates(); + this.$ = $$[$0].substr(18); + break; + case 17: + yy.TopAxis(); + this.$ = $$[$0].substr(8); + break; + case 18: + yy.setAxisFormat($$[$0].substr(11)); + this.$ = $$[$0].substr(11); + break; + case 19: + yy.setTickInterval($$[$0].substr(13)); + this.$ = $$[$0].substr(13); + break; + case 20: + yy.setExcludes($$[$0].substr(9)); + this.$ = $$[$0].substr(9); + break; + case 21: + yy.setIncludes($$[$0].substr(9)); + this.$ = $$[$0].substr(9); + break; + case 22: + yy.setTodayMarker($$[$0].substr(12)); + this.$ = $$[$0].substr(12); + break; + case 24: + yy.setDiagramTitle($$[$0].substr(6)); + this.$ = $$[$0].substr(6); + break; + case 25: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 26: + case 27: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 28: + yy.addSection($$[$0].substr(8)); + this.$ = $$[$0].substr(8); + break; + case 30: + yy.addTask($$[$0 - 1], $$[$0]); + this.$ = "task"; + break; + case 31: + this.$ = $$[$0 - 1]; + yy.setClickEvent($$[$0 - 1], $$[$0], null); + break; + case 32: + this.$ = $$[$0 - 2]; + yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]); + break; + case 33: + this.$ = $$[$0 - 2]; + yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null); + yy.setLink($$[$0 - 2], $$[$0]); + break; + case 34: + this.$ = $$[$0 - 3]; + yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]); + yy.setLink($$[$0 - 3], $$[$0]); + break; + case 35: + this.$ = $$[$0 - 2]; + yy.setClickEvent($$[$0 - 2], $$[$0], null); + yy.setLink($$[$0 - 2], $$[$0 - 1]); + break; + case 36: + this.$ = $$[$0 - 3]; + yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]); + yy.setLink($$[$0 - 3], $$[$0 - 2]); + break; + case 37: + this.$ = $$[$0 - 1]; + yy.setLink($$[$0 - 1], $$[$0]); + break; + case 38: + case 44: + this.$ = $$[$0 - 1] + " " + $$[$0]; + break; + case 39: + case 40: + case 42: + this.$ = $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0]; + break; + case 41: + case 43: + this.$ = $$[$0 - 3] + " " + $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0]; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 33, 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), o($V0, [2, 18]), o($V0, [2, 19]), o($V0, [2, 20]), o($V0, [2, 21]), o($V0, [2, 22]), o($V0, [2, 23]), o($V0, [2, 24]), { 29: [1, 34] }, { 31: [1, 35] }, o($V0, [2, 27]), o($V0, [2, 28]), o($V0, [2, 29]), { 36: [1, 36] }, o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), { 38: [1, 37], 40: [1, 38] }, o($V0, [2, 4]), o($V0, [2, 25]), o($V0, [2, 26]), o($V0, [2, 30]), o($V0, [2, 31], { 39: [1, 39], 40: [1, 40] }), o($V0, [2, 37], { 38: [1, 41] }), o($V0, [2, 32], { 40: [1, 42] }), o($V0, [2, 33]), o($V0, [2, 35], { 39: [1, 43] }), o($V0, [2, 34]), o($V0, [2, 36])], + defaultActions: {}, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + this.begin("open_directive"); + return "open_directive"; + case 1: + this.begin("acc_title"); + return 28; + case 2: + this.popState(); + return "acc_title_value"; + case 3: + this.begin("acc_descr"); + return 30; + case 4: + this.popState(); + return "acc_descr_value"; + case 5: + this.begin("acc_descr_multiline"); + break; + case 6: + this.popState(); + break; + case 7: + return "acc_descr_multiline_value"; + case 8: + break; + case 9: + break; + case 10: + break; + case 11: + return 10; + case 12: + break; + case 13: + break; + case 14: + this.begin("href"); + break; + case 15: + this.popState(); + break; + case 16: + return 40; + case 17: + this.begin("callbackname"); + break; + case 18: + this.popState(); + break; + case 19: + this.popState(); + this.begin("callbackargs"); + break; + case 20: + return 38; + case 21: + this.popState(); + break; + case 22: + return 39; + case 23: + this.begin("click"); + break; + case 24: + this.popState(); + break; + case 25: + return 37; + case 26: + return 4; + case 27: + return 19; + case 28: + return 20; + case 29: + return 21; + case 30: + return 22; + case 31: + return 23; + case 32: + return 25; + case 33: + return 24; + case 34: + return 26; + case 35: + return 12; + case 36: + return 13; + case 37: + return 14; + case 38: + return 15; + case 39: + return 16; + case 40: + return 17; + case 41: + return 18; + case 42: + return "date"; + case 43: + return 27; + case 44: + return "accDescription"; + case 45: + return 33; + case 46: + return 35; + case 47: + return 36; + case 48: + return ":"; + case 49: + return 6; + case 50: + return "INVALID"; + } + }, + rules: [/^(?:%%\{)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%(?!\{)*[^\n]*)/i, /^(?:[^\}]%%*[^\n]*)/i, /^(?:%%*[^\n]*[\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:%[^\n]*)/i, /^(?:href[\s]+["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:call[\s]+)/i, /^(?:\([\s]*\))/i, /^(?:\()/i, /^(?:[^(]*)/i, /^(?:\))/i, /^(?:[^)]*)/i, /^(?:click[\s]+)/i, /^(?:[\s\n])/i, /^(?:[^\s\n]*)/i, /^(?:gantt\b)/i, /^(?:dateFormat\s[^#\n;]+)/i, /^(?:inclusiveEndDates\b)/i, /^(?:topAxis\b)/i, /^(?:axisFormat\s[^#\n;]+)/i, /^(?:tickInterval\s[^#\n;]+)/i, /^(?:includes\s[^#\n;]+)/i, /^(?:excludes\s[^#\n;]+)/i, /^(?:todayMarker\s[^\n;]+)/i, /^(?:weekday\s+monday\b)/i, /^(?:weekday\s+tuesday\b)/i, /^(?:weekday\s+wednesday\b)/i, /^(?:weekday\s+thursday\b)/i, /^(?:weekday\s+friday\b)/i, /^(?:weekday\s+saturday\b)/i, /^(?:weekday\s+sunday\b)/i, /^(?:\d\d\d\d-\d\d-\d\d\b)/i, /^(?:title\s[^\n]+)/i, /^(?:accDescription\s[^#\n;]+)/i, /^(?:section\s[^\n]+)/i, /^(?:[^:\n]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { "acc_descr_multiline": { "rules": [6, 7], "inclusive": false }, "acc_descr": { "rules": [4], "inclusive": false }, "acc_title": { "rules": [2], "inclusive": false }, "callbackargs": { "rules": [21, 22], "inclusive": false }, "callbackname": { "rules": [18, 19, 20], "inclusive": false }, "href": { "rules": [15, 16], "inclusive": false }, "click": { "rules": [24, 25], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 17, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const ganttParser = parser; +var isoWeek = { exports: {} }; +(function(module, exports) { + !function(e, t) { + module.exports = t(); + }(commonjsGlobal, function() { + var e = "day"; + return function(t, i, s) { + var a = function(t4) { + return t4.add(4 - t4.isoWeekday(), e); + }, d = i.prototype; + d.isoWeekYear = function() { + return a(this).year(); + }, d.isoWeek = function(t4) { + if (!this.$utils().u(t4)) + return this.add(7 * (t4 - this.isoWeek()), e); + var i2, d2, n2, o, r = a(this), u = (i2 = this.isoWeekYear(), d2 = this.$u, n2 = (d2 ? s.utc : s)().year(i2).startOf("year"), o = 4 - n2.isoWeekday(), n2.isoWeekday() > 4 && (o += 7), n2.add(o, e)); + return r.diff(u, "week") + 1; + }, d.isoWeekday = function(e2) { + return this.$utils().u(e2) ? this.day() || 7 : this.day(this.day() % 7 ? e2 : e2 - 7); + }; + var n = d.startOf; + d.startOf = function(e2, t4) { + var i2 = this.$utils(), s2 = !!i2.u(t4) || t4; + return "isoweek" === i2.p(e2) ? s2 ? this.date(this.date() - (this.isoWeekday() - 1)).startOf("day") : this.date(this.date() - 1 - (this.isoWeekday() - 1) + 7).endOf("day") : n.bind(this)(e2, t4); + }; + }; + }); +})(isoWeek); +var isoWeekExports = isoWeek.exports; +const dayjsIsoWeek = /* @__PURE__ */ getDefaultExportFromCjs(isoWeekExports); +var customParseFormat = { exports: {} }; +(function(module, exports) { + !function(e, t) { + module.exports = t(); + }(commonjsGlobal, function() { + var e = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }, t = /(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g, n = /\d\d/, r = /\d\d?/, i = /\d*[^-_:/,()\s\d]+/, o = {}, s = function(e2) { + return (e2 = +e2) + (e2 > 68 ? 1900 : 2e3); + }; + var a = function(e2) { + return function(t4) { + this[e2] = +t4; + }; + }, f = [/[+-]\d\d:?(\d\d)?|Z/, function(e2) { + (this.zone || (this.zone = {})).offset = function(e3) { + if (!e3) + return 0; + if ("Z" === e3) + return 0; + var t4 = e3.match(/([+-]|\d\d)/g), n2 = 60 * t4[1] + (+t4[2] || 0); + return 0 === n2 ? 0 : "+" === t4[0] ? -n2 : n2; + }(e2); + }], h = function(e2) { + var t4 = o[e2]; + return t4 && (t4.indexOf ? t4 : t4.s.concat(t4.f)); + }, u = function(e2, t4) { + var n2, r2 = o.meridiem; + if (r2) { + for (var i2 = 1; i2 <= 24; i2 += 1) + if (e2.indexOf(r2(i2, 0, t4)) > -1) { + n2 = i2 > 12; + break; + } + } else + n2 = e2 === (t4 ? "pm" : "PM"); + return n2; + }, d = { A: [i, function(e2) { + this.afternoon = u(e2, false); + }], a: [i, function(e2) { + this.afternoon = u(e2, true); + }], S: [/\d/, function(e2) { + this.milliseconds = 100 * +e2; + }], SS: [n, function(e2) { + this.milliseconds = 10 * +e2; + }], SSS: [/\d{3}/, function(e2) { + this.milliseconds = +e2; + }], s: [r, a("seconds")], ss: [r, a("seconds")], m: [r, a("minutes")], mm: [r, a("minutes")], H: [r, a("hours")], h: [r, a("hours")], HH: [r, a("hours")], hh: [r, a("hours")], D: [r, a("day")], DD: [n, a("day")], Do: [i, function(e2) { + var t4 = o.ordinal, n2 = e2.match(/\d+/); + if (this.day = n2[0], t4) + for (var r2 = 1; r2 <= 31; r2 += 1) + t4(r2).replace(/\[|\]/g, "") === e2 && (this.day = r2); + }], M: [r, a("month")], MM: [n, a("month")], MMM: [i, function(e2) { + var t4 = h("months"), n2 = (h("monthsShort") || t4.map(function(e3) { + return e3.slice(0, 3); + })).indexOf(e2) + 1; + if (n2 < 1) + throw new Error(); + this.month = n2 % 12 || n2; + }], MMMM: [i, function(e2) { + var t4 = h("months").indexOf(e2) + 1; + if (t4 < 1) + throw new Error(); + this.month = t4 % 12 || t4; + }], Y: [/[+-]?\d+/, a("year")], YY: [n, function(e2) { + this.year = s(e2); + }], YYYY: [/\d{4}/, a("year")], Z: f, ZZ: f }; + function c(n2) { + var r2, i2; + r2 = n2, i2 = o && o.formats; + for (var s2 = (n2 = r2.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, function(t4, n3, r3) { + var o2 = r3 && r3.toUpperCase(); + return n3 || i2[r3] || e[r3] || i2[o2].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, function(e2, t5, n4) { + return t5 || n4.slice(1); + }); + })).match(t), a2 = s2.length, f2 = 0; f2 < a2; f2 += 1) { + var h2 = s2[f2], u2 = d[h2], c2 = u2 && u2[0], l = u2 && u2[1]; + s2[f2] = l ? { regex: c2, parser: l } : h2.replace(/^\[|\]$/g, ""); + } + return function(e2) { + for (var t4 = {}, n3 = 0, r3 = 0; n3 < a2; n3 += 1) { + var i3 = s2[n3]; + if ("string" == typeof i3) + r3 += i3.length; + else { + var o2 = i3.regex, f3 = i3.parser, h3 = e2.slice(r3), u3 = o2.exec(h3)[0]; + f3.call(t4, u3), e2 = e2.replace(u3, ""); + } + } + return function(e3) { + var t5 = e3.afternoon; + if (void 0 !== t5) { + var n4 = e3.hours; + t5 ? n4 < 12 && (e3.hours += 12) : 12 === n4 && (e3.hours = 0), delete e3.afternoon; + } + }(t4), t4; + }; + } + return function(e2, t4, n2) { + n2.p.customParseFormat = true, e2 && e2.parseTwoDigitYear && (s = e2.parseTwoDigitYear); + var r2 = t4.prototype, i2 = r2.parse; + r2.parse = function(e3) { + var t5 = e3.date, r3 = e3.utc, s2 = e3.args; + this.$u = r3; + var a2 = s2[1]; + if ("string" == typeof a2) { + var f2 = true === s2[2], h2 = true === s2[3], u2 = f2 || h2, d2 = s2[2]; + h2 && (d2 = s2[2]), o = this.$locale(), !f2 && d2 && (o = n2.Ls[d2]), this.$d = function(e4, t6, n3) { + try { + if (["x", "X"].indexOf(t6) > -1) + return new Date(("X" === t6 ? 1e3 : 1) * e4); + var r4 = c(t6)(e4), i3 = r4.year, o2 = r4.month, s3 = r4.day, a3 = r4.hours, f3 = r4.minutes, h3 = r4.seconds, u3 = r4.milliseconds, d3 = r4.zone, l2 = /* @__PURE__ */ new Date(), m2 = s3 || (i3 || o2 ? 1 : l2.getDate()), M2 = i3 || l2.getFullYear(), Y = 0; + i3 && !o2 || (Y = o2 > 0 ? o2 - 1 : l2.getMonth()); + var p = a3 || 0, v = f3 || 0, D = h3 || 0, g = u3 || 0; + return d3 ? new Date(Date.UTC(M2, Y, m2, p, v, D, g + 60 * d3.offset * 1e3)) : n3 ? new Date(Date.UTC(M2, Y, m2, p, v, D, g)) : new Date(M2, Y, m2, p, v, D, g); + } catch (e5) { + return /* @__PURE__ */ new Date(""); + } + }(t5, a2, r3), this.init(), d2 && true !== d2 && (this.$L = this.locale(d2).$L), u2 && t5 != this.format(a2) && (this.$d = /* @__PURE__ */ new Date("")), o = {}; + } else if (a2 instanceof Array) + for (var l = a2.length, m = 1; m <= l; m += 1) { + s2[1] = a2[m - 1]; + var M = n2.apply(this, s2); + if (M.isValid()) { + this.$d = M.$d, this.$L = M.$L, this.init(); + break; + } + m === l && (this.$d = /* @__PURE__ */ new Date("")); + } + else + i2.call(this, e3); + }; + }; + }); +})(customParseFormat); +var customParseFormatExports = customParseFormat.exports; +const dayjsCustomParseFormat = /* @__PURE__ */ getDefaultExportFromCjs(customParseFormatExports); +var advancedFormat = { exports: {} }; +(function(module, exports) { + !function(e, t) { + module.exports = t(); + }(commonjsGlobal, function() { + return function(e, t) { + var r = t.prototype, n = r.format; + r.format = function(e2) { + var t4 = this, r2 = this.$locale(); + if (!this.isValid()) + return n.bind(this)(e2); + var s = this.$utils(), a = (e2 || "YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g, function(e3) { + switch (e3) { + case "Q": + return Math.ceil((t4.$M + 1) / 3); + case "Do": + return r2.ordinal(t4.$D); + case "gggg": + return t4.weekYear(); + case "GGGG": + return t4.isoWeekYear(); + case "wo": + return r2.ordinal(t4.week(), "W"); + case "w": + case "ww": + return s.s(t4.week(), "w" === e3 ? 1 : 2, "0"); + case "W": + case "WW": + return s.s(t4.isoWeek(), "W" === e3 ? 1 : 2, "0"); + case "k": + case "kk": + return s.s(String(0 === t4.$H ? 24 : t4.$H), "k" === e3 ? 1 : 2, "0"); + case "X": + return Math.floor(t4.$d.getTime() / 1e3); + case "x": + return t4.$d.getTime(); + case "z": + return "[" + t4.offsetName() + "]"; + case "zzz": + return "[" + t4.offsetName("long") + "]"; + default: + return e3; + } + }); + return n.bind(this)(a); + }; + }; + }); +})(advancedFormat); +var advancedFormatExports = advancedFormat.exports; +const dayjsAdvancedFormat = /* @__PURE__ */ getDefaultExportFromCjs(advancedFormatExports); +dayjs.extend(dayjsIsoWeek); +dayjs.extend(dayjsCustomParseFormat); +dayjs.extend(dayjsAdvancedFormat); +let dateFormat = ""; +let axisFormat = ""; +let tickInterval = void 0; +let todayMarker = ""; +let includes = []; +let excludes = []; +let links = {}; +let sections = []; +let tasks = []; +let currentSection = ""; +let displayMode = ""; +const tags = ["active", "done", "crit", "milestone"]; +let funs = []; +let inclusiveEndDates = false; +let topAxis = false; +let weekday = "sunday"; +let lastOrder = 0; +const clear = function() { + sections = []; + tasks = []; + currentSection = ""; + funs = []; + taskCnt = 0; + lastTask = void 0; + lastTaskID = void 0; + rawTasks = []; + dateFormat = ""; + axisFormat = ""; + displayMode = ""; + tickInterval = void 0; + todayMarker = ""; + includes = []; + excludes = []; + inclusiveEndDates = false; + topAxis = false; + lastOrder = 0; + links = {}; + clear$1(); + weekday = "sunday"; +}; +const setAxisFormat = function(txt) { + axisFormat = txt; +}; +const getAxisFormat = function() { + return axisFormat; +}; +const setTickInterval = function(txt) { + tickInterval = txt; +}; +const getTickInterval = function() { + return tickInterval; +}; +const setTodayMarker = function(txt) { + todayMarker = txt; +}; +const getTodayMarker = function() { + return todayMarker; +}; +const setDateFormat = function(txt) { + dateFormat = txt; +}; +const enableInclusiveEndDates = function() { + inclusiveEndDates = true; +}; +const endDatesAreInclusive = function() { + return inclusiveEndDates; +}; +const enableTopAxis = function() { + topAxis = true; +}; +const topAxisEnabled = function() { + return topAxis; +}; +const setDisplayMode = function(txt) { + displayMode = txt; +}; +const getDisplayMode = function() { + return displayMode; +}; +const getDateFormat = function() { + return dateFormat; +}; +const setIncludes = function(txt) { + includes = txt.toLowerCase().split(/[\s,]+/); +}; +const getIncludes = function() { + return includes; +}; +const setExcludes = function(txt) { + excludes = txt.toLowerCase().split(/[\s,]+/); +}; +const getExcludes = function() { + return excludes; +}; +const getLinks = function() { + return links; +}; +const addSection = function(txt) { + currentSection = txt; + sections.push(txt); +}; +const getSections = function() { + return sections; +}; +const getTasks = function() { + let allItemsProcessed = compileTasks(); + const maxDepth = 10; + let iterationCount = 0; + while (!allItemsProcessed && iterationCount < maxDepth) { + allItemsProcessed = compileTasks(); + iterationCount++; + } + tasks = rawTasks; + return tasks; +}; +const isInvalidDate = function(date2, dateFormat2, excludes2, includes2) { + if (includes2.includes(date2.format(dateFormat2.trim()))) { + return false; + } + if (date2.isoWeekday() >= 6 && excludes2.includes("weekends")) { + return true; + } + if (excludes2.includes(date2.format("dddd").toLowerCase())) { + return true; + } + return excludes2.includes(date2.format(dateFormat2.trim())); +}; +const setWeekday = function(txt) { + weekday = txt; +}; +const getWeekday = function() { + return weekday; +}; +const checkTaskDates = function(task, dateFormat2, excludes2, includes2) { + if (!excludes2.length || task.manualEndTime) { + return; + } + let startTime; + if (task.startTime instanceof Date) { + startTime = dayjs(task.startTime); + } else { + startTime = dayjs(task.startTime, dateFormat2, true); + } + startTime = startTime.add(1, "d"); + let originalEndTime; + if (task.endTime instanceof Date) { + originalEndTime = dayjs(task.endTime); + } else { + originalEndTime = dayjs(task.endTime, dateFormat2, true); + } + const [fixedEndTime, renderEndTime] = fixTaskDates( + startTime, + originalEndTime, + dateFormat2, + excludes2, + includes2 + ); + task.endTime = fixedEndTime.toDate(); + task.renderEndTime = renderEndTime; +}; +const fixTaskDates = function(startTime, endTime, dateFormat2, excludes2, includes2) { + let invalid = false; + let renderEndTime = null; + while (startTime <= endTime) { + if (!invalid) { + renderEndTime = endTime.toDate(); + } + invalid = isInvalidDate(startTime, dateFormat2, excludes2, includes2); + if (invalid) { + endTime = endTime.add(1, "d"); + } + startTime = startTime.add(1, "d"); + } + return [endTime, renderEndTime]; +}; +const getStartDate = function(prevTime, dateFormat2, str) { + str = str.trim(); + const afterRePattern = /^after\s+(?[\d\w- ]+)/; + const afterStatement = afterRePattern.exec(str); + if (afterStatement !== null) { + let latestTask = null; + for (const id of afterStatement.groups.ids.split(" ")) { + let task = findTaskById(id); + if (task !== void 0 && (!latestTask || task.endTime > latestTask.endTime)) { + latestTask = task; + } + } + if (latestTask) { + return latestTask.endTime; + } + const today = /* @__PURE__ */ new Date(); + today.setHours(0, 0, 0, 0); + return today; + } + let mDate = dayjs(str, dateFormat2.trim(), true); + if (mDate.isValid()) { + return mDate.toDate(); + } else { + log.debug("Invalid date:" + str); + log.debug("With date format:" + dateFormat2.trim()); + const d = new Date(str); + if (d === void 0 || isNaN(d.getTime()) || // WebKit browsers can mis-parse invalid dates to be ridiculously + // huge numbers, e.g. new Date('202304') gets parsed as January 1, 202304. + // This can cause virtually infinite loops while rendering, so for the + // purposes of Gantt charts we'll just treat any date beyond 10,000 AD/BC as + // invalid. + d.getFullYear() < -1e4 || d.getFullYear() > 1e4) { + throw new Error("Invalid date:" + str); + } + return d; + } +}; +const parseDuration = function(str) { + const statement = /^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(str.trim()); + if (statement !== null) { + return [Number.parseFloat(statement[1]), statement[2]]; + } + return [NaN, "ms"]; +}; +const getEndDate = function(prevTime, dateFormat2, str, inclusive = false) { + str = str.trim(); + const untilRePattern = /^until\s+(?[\d\w- ]+)/; + const untilStatement = untilRePattern.exec(str); + if (untilStatement !== null) { + let earliestTask = null; + for (const id of untilStatement.groups.ids.split(" ")) { + let task = findTaskById(id); + if (task !== void 0 && (!earliestTask || task.startTime < earliestTask.startTime)) { + earliestTask = task; + } + } + if (earliestTask) { + return earliestTask.startTime; + } + const today = /* @__PURE__ */ new Date(); + today.setHours(0, 0, 0, 0); + return today; + } + let parsedDate = dayjs(str, dateFormat2.trim(), true); + if (parsedDate.isValid()) { + if (inclusive) { + parsedDate = parsedDate.add(1, "d"); + } + return parsedDate.toDate(); + } + let endTime = dayjs(prevTime); + const [durationValue, durationUnit] = parseDuration(str); + if (!Number.isNaN(durationValue)) { + const newEndTime = endTime.add(durationValue, durationUnit); + if (newEndTime.isValid()) { + endTime = newEndTime; + } + } + return endTime.toDate(); +}; +let taskCnt = 0; +const parseId = function(idStr) { + if (idStr === void 0) { + taskCnt = taskCnt + 1; + return "task" + taskCnt; + } + return idStr; +}; +const compileData = function(prevTask, dataStr) { + let ds; + if (dataStr.substr(0, 1) === ":") { + ds = dataStr.substr(1, dataStr.length); + } else { + ds = dataStr; + } + const data = ds.split(","); + const task = {}; + getTaskTags(data, task, tags); + for (let i = 0; i < data.length; i++) { + data[i] = data[i].trim(); + } + let endTimeData = ""; + switch (data.length) { + case 1: + task.id = parseId(); + task.startTime = prevTask.endTime; + endTimeData = data[0]; + break; + case 2: + task.id = parseId(); + task.startTime = getStartDate(void 0, dateFormat, data[0]); + endTimeData = data[1]; + break; + case 3: + task.id = parseId(data[0]); + task.startTime = getStartDate(void 0, dateFormat, data[1]); + endTimeData = data[2]; + break; + } + if (endTimeData) { + task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates); + task.manualEndTime = dayjs(endTimeData, "YYYY-MM-DD", true).isValid(); + checkTaskDates(task, dateFormat, excludes, includes); + } + return task; +}; +const parseData = function(prevTaskId, dataStr) { + let ds; + if (dataStr.substr(0, 1) === ":") { + ds = dataStr.substr(1, dataStr.length); + } else { + ds = dataStr; + } + const data = ds.split(","); + const task = {}; + getTaskTags(data, task, tags); + for (let i = 0; i < data.length; i++) { + data[i] = data[i].trim(); + } + switch (data.length) { + case 1: + task.id = parseId(); + task.startTime = { + type: "prevTaskEnd", + id: prevTaskId + }; + task.endTime = { + data: data[0] + }; + break; + case 2: + task.id = parseId(); + task.startTime = { + type: "getStartDate", + startData: data[0] + }; + task.endTime = { + data: data[1] + }; + break; + case 3: + task.id = parseId(data[0]); + task.startTime = { + type: "getStartDate", + startData: data[1] + }; + task.endTime = { + data: data[2] + }; + break; + } + return task; +}; +let lastTask; +let lastTaskID; +let rawTasks = []; +const taskDb = {}; +const addTask = function(descr, data) { + const rawTask = { + section: currentSection, + type: currentSection, + processed: false, + manualEndTime: false, + renderEndTime: null, + raw: { data }, + task: descr, + classes: [] + }; + const taskInfo = parseData(lastTaskID, data); + rawTask.raw.startTime = taskInfo.startTime; + rawTask.raw.endTime = taskInfo.endTime; + rawTask.id = taskInfo.id; + rawTask.prevTaskId = lastTaskID; + rawTask.active = taskInfo.active; + rawTask.done = taskInfo.done; + rawTask.crit = taskInfo.crit; + rawTask.milestone = taskInfo.milestone; + rawTask.order = lastOrder; + lastOrder++; + const pos = rawTasks.push(rawTask); + lastTaskID = rawTask.id; + taskDb[rawTask.id] = pos - 1; +}; +const findTaskById = function(id) { + const pos = taskDb[id]; + return rawTasks[pos]; +}; +const addTaskOrg = function(descr, data) { + const newTask = { + section: currentSection, + type: currentSection, + description: descr, + task: descr, + classes: [] + }; + const taskInfo = compileData(lastTask, data); + newTask.startTime = taskInfo.startTime; + newTask.endTime = taskInfo.endTime; + newTask.id = taskInfo.id; + newTask.active = taskInfo.active; + newTask.done = taskInfo.done; + newTask.crit = taskInfo.crit; + newTask.milestone = taskInfo.milestone; + lastTask = newTask; + tasks.push(newTask); +}; +const compileTasks = function() { + const compileTask = function(pos) { + const task = rawTasks[pos]; + let startTime = ""; + switch (rawTasks[pos].raw.startTime.type) { + case "prevTaskEnd": { + const prevTask = findTaskById(task.prevTaskId); + task.startTime = prevTask.endTime; + break; + } + case "getStartDate": + startTime = getStartDate(void 0, dateFormat, rawTasks[pos].raw.startTime.startData); + if (startTime) { + rawTasks[pos].startTime = startTime; + } + break; + } + if (rawTasks[pos].startTime) { + rawTasks[pos].endTime = getEndDate( + rawTasks[pos].startTime, + dateFormat, + rawTasks[pos].raw.endTime.data, + inclusiveEndDates + ); + if (rawTasks[pos].endTime) { + rawTasks[pos].processed = true; + rawTasks[pos].manualEndTime = dayjs( + rawTasks[pos].raw.endTime.data, + "YYYY-MM-DD", + true + ).isValid(); + checkTaskDates(rawTasks[pos], dateFormat, excludes, includes); + } + } + return rawTasks[pos].processed; + }; + let allProcessed = true; + for (const [i, rawTask] of rawTasks.entries()) { + compileTask(i); + allProcessed = allProcessed && rawTask.processed; + } + return allProcessed; +}; +const setLink = function(ids, _linkStr) { + let linkStr = _linkStr; + if (getConfig().securityLevel !== "loose") { + linkStr = dist.sanitizeUrl(_linkStr); + } + ids.split(",").forEach(function(id) { + let rawTask = findTaskById(id); + if (rawTask !== void 0) { + pushFun(id, () => { + window.open(linkStr, "_self"); + }); + links[id] = linkStr; + } + }); + setClass(ids, "clickable"); +}; +const setClass = function(ids, className) { + ids.split(",").forEach(function(id) { + let rawTask = findTaskById(id); + if (rawTask !== void 0) { + rawTask.classes.push(className); + } + }); +}; +const setClickFun = function(id, functionName, functionArgs) { + if (getConfig().securityLevel !== "loose") { + return; + } + if (functionName === void 0) { + return; + } + let argList = []; + if (typeof functionArgs === "string") { + argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/); + for (let i = 0; i < argList.length; i++) { + let item = argList[i].trim(); + if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') { + item = item.substr(1, item.length - 2); + } + argList[i] = item; + } + } + if (argList.length === 0) { + argList.push(id); + } + let rawTask = findTaskById(id); + if (rawTask !== void 0) { + pushFun(id, () => { + utils.runFunc(functionName, ...argList); + }); + } +}; +const pushFun = function(id, callbackFunction) { + funs.push( + function() { + const elem = document.querySelector(`[id="${id}"]`); + if (elem !== null) { + elem.addEventListener("click", function() { + callbackFunction(); + }); + } + }, + function() { + const elem = document.querySelector(`[id="${id}-text"]`); + if (elem !== null) { + elem.addEventListener("click", function() { + callbackFunction(); + }); + } + } + ); +}; +const setClickEvent = function(ids, functionName, functionArgs) { + ids.split(",").forEach(function(id) { + setClickFun(id, functionName, functionArgs); + }); + setClass(ids, "clickable"); +}; +const bindFunctions = function(element) { + funs.forEach(function(fun) { + fun(element); + }); +}; +const ganttDb = { + getConfig: () => getConfig().gantt, + clear, + setDateFormat, + getDateFormat, + enableInclusiveEndDates, + endDatesAreInclusive, + enableTopAxis, + topAxisEnabled, + setAxisFormat, + getAxisFormat, + setTickInterval, + getTickInterval, + setTodayMarker, + getTodayMarker, + setAccTitle, + getAccTitle, + setDiagramTitle, + getDiagramTitle, + setDisplayMode, + getDisplayMode, + setAccDescription, + getAccDescription, + addSection, + getSections, + getTasks, + addTask, + findTaskById, + addTaskOrg, + setIncludes, + getIncludes, + setExcludes, + getExcludes, + setClickEvent, + setLink, + getLinks, + bindFunctions, + parseDuration, + isInvalidDate, + setWeekday, + getWeekday +}; +function getTaskTags(data, task, tags2) { + let matchFound = true; + while (matchFound) { + matchFound = false; + tags2.forEach(function(t) { + const pattern = "^\\s*" + t + "\\s*$"; + const regex = new RegExp(pattern); + if (data[0].match(regex)) { + task[t] = true; + data.shift(1); + matchFound = true; + } + }); + } +} +const setConf = function() { + log.debug("Something is calling, setConf, remove the call"); +}; +const mapWeekdayToTimeFunction = { + monday: timeMonday, + tuesday: timeTuesday, + wednesday: timeWednesday, + thursday: timeThursday, + friday: timeFriday, + saturday: timeSaturday, + sunday: timeSunday +}; +const getMaxIntersections = (tasks2, orderOffset) => { + let timeline = [...tasks2].map(() => -Infinity); + let sorted = [...tasks2].sort((a, b) => a.startTime - b.startTime || a.order - b.order); + let maxIntersections = 0; + for (const element of sorted) { + for (let j = 0; j < timeline.length; j++) { + if (element.startTime >= timeline[j]) { + timeline[j] = element.endTime; + element.order = j + orderOffset; + if (j > maxIntersections) { + maxIntersections = j; + } + break; + } + } + } + return maxIntersections; +}; +let w; +const draw = function(text, id, version, diagObj) { + const conf = getConfig().gantt; + const securityLevel = getConfig().securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + const elem = doc.getElementById(id); + w = elem.parentElement.offsetWidth; + if (w === void 0) { + w = 1200; + } + if (conf.useWidth !== void 0) { + w = conf.useWidth; + } + const taskArray = diagObj.db.getTasks(); + let categories = []; + for (const element of taskArray) { + categories.push(element.type); + } + categories = checkUnique(categories); + const categoryHeights = {}; + let h = 2 * conf.topPadding; + if (diagObj.db.getDisplayMode() === "compact" || conf.displayMode === "compact") { + const categoryElements = {}; + for (const element of taskArray) { + if (categoryElements[element.section] === void 0) { + categoryElements[element.section] = [element]; + } else { + categoryElements[element.section].push(element); + } + } + let intersections = 0; + for (const category of Object.keys(categoryElements)) { + const categoryHeight = getMaxIntersections(categoryElements[category], intersections) + 1; + intersections += categoryHeight; + h += categoryHeight * (conf.barHeight + conf.barGap); + categoryHeights[category] = categoryHeight; + } + } else { + h += taskArray.length * (conf.barHeight + conf.barGap); + for (const category of categories) { + categoryHeights[category] = taskArray.filter((task) => task.type === category).length; + } + } + elem.setAttribute("viewBox", "0 0 " + w + " " + h); + const svg = root.select(`[id="${id}"]`); + const timeScale = time().domain([ + min(taskArray, function(d) { + return d.startTime; + }), + max(taskArray, function(d) { + return d.endTime; + }) + ]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]); + function taskCompare(a, b) { + const taskA = a.startTime; + const taskB = b.startTime; + let result = 0; + if (taskA > taskB) { + result = 1; + } else if (taskA < taskB) { + result = -1; + } + return result; + } + taskArray.sort(taskCompare); + makeGantt(taskArray, w, h); + configureSvgSize(svg, h, w, conf.useMaxWidth); + svg.append("text").text(diagObj.db.getDiagramTitle()).attr("x", w / 2).attr("y", conf.titleTopMargin).attr("class", "titleText"); + function makeGantt(tasks2, pageWidth, pageHeight) { + const barHeight = conf.barHeight; + const gap = barHeight + conf.barGap; + const topPadding = conf.topPadding; + const leftPadding = conf.leftPadding; + const colorScale = linear().domain([0, categories.length]).range(["#00B9FA", "#F95002"]).interpolate(interpolateHcl); + drawExcludeDays( + gap, + topPadding, + leftPadding, + pageWidth, + pageHeight, + tasks2, + diagObj.db.getExcludes(), + diagObj.db.getIncludes() + ); + makeGrid(leftPadding, topPadding, pageWidth, pageHeight); + drawRects(tasks2, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth); + vertLabels(gap, topPadding); + drawToday(leftPadding, topPadding, pageWidth, pageHeight); + } + function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w2) { + const uniqueTaskOrderIds = [...new Set(theArray.map((item) => item.order))]; + const uniqueTasks = uniqueTaskOrderIds.map((id2) => theArray.find((item) => item.order === id2)); + svg.append("g").selectAll("rect").data(uniqueTasks).enter().append("rect").attr("x", 0).attr("y", function(d, i) { + i = d.order; + return i * theGap + theTopPad - 2; + }).attr("width", function() { + return w2 - conf.rightPadding / 2; + }).attr("height", theGap).attr("class", function(d) { + for (const [i, category] of categories.entries()) { + if (d.type === category) { + return "section section" + i % conf.numberSectionStyles; + } + } + return "section section0"; + }); + const rectangles = svg.append("g").selectAll("rect").data(theArray).enter(); + const links2 = diagObj.db.getLinks(); + rectangles.append("rect").attr("id", function(d) { + return d.id; + }).attr("rx", 3).attr("ry", 3).attr("x", function(d) { + if (d.milestone) { + return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight; + } + return timeScale(d.startTime) + theSidePad; + }).attr("y", function(d, i) { + i = d.order; + return i * theGap + theTopPad; + }).attr("width", function(d) { + if (d.milestone) { + return theBarHeight; + } + return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime); + }).attr("height", theBarHeight).attr("transform-origin", function(d, i) { + i = d.order; + return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + "px " + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + "px"; + }).attr("class", function(d) { + const res = "task"; + let classStr = ""; + if (d.classes.length > 0) { + classStr = d.classes.join(" "); + } + let secNum = 0; + for (const [i, category] of categories.entries()) { + if (d.type === category) { + secNum = i % conf.numberSectionStyles; + } + } + let taskClass = ""; + if (d.active) { + if (d.crit) { + taskClass += " activeCrit"; + } else { + taskClass = " active"; + } + } else if (d.done) { + if (d.crit) { + taskClass = " doneCrit"; + } else { + taskClass = " done"; + } + } else { + if (d.crit) { + taskClass += " crit"; + } + } + if (taskClass.length === 0) { + taskClass = " task"; + } + if (d.milestone) { + taskClass = " milestone " + taskClass; + } + taskClass += secNum; + taskClass += " " + classStr; + return res + taskClass; + }); + rectangles.append("text").attr("id", function(d) { + return d.id + "-text"; + }).text(function(d) { + return d.task; + }).attr("font-size", conf.fontSize).attr("x", function(d) { + let startX = timeScale(d.startTime); + let endX = timeScale(d.renderEndTime || d.endTime); + if (d.milestone) { + startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight; + } + if (d.milestone) { + endX = startX + theBarHeight; + } + const textWidth = this.getBBox().width; + if (textWidth > endX - startX) { + if (endX + textWidth + 1.5 * conf.leftPadding > w2) { + return startX + theSidePad - 5; + } else { + return endX + theSidePad + 5; + } + } else { + return (endX - startX) / 2 + startX + theSidePad; + } + }).attr("y", function(d, i) { + i = d.order; + return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad; + }).attr("text-height", theBarHeight).attr("class", function(d) { + const startX = timeScale(d.startTime); + let endX = timeScale(d.endTime); + if (d.milestone) { + endX = startX + theBarHeight; + } + const textWidth = this.getBBox().width; + let classStr = ""; + if (d.classes.length > 0) { + classStr = d.classes.join(" "); + } + let secNum = 0; + for (const [i, category] of categories.entries()) { + if (d.type === category) { + secNum = i % conf.numberSectionStyles; + } + } + let taskType = ""; + if (d.active) { + if (d.crit) { + taskType = "activeCritText" + secNum; + } else { + taskType = "activeText" + secNum; + } + } + if (d.done) { + if (d.crit) { + taskType = taskType + " doneCritText" + secNum; + } else { + taskType = taskType + " doneText" + secNum; + } + } else { + if (d.crit) { + taskType = taskType + " critText" + secNum; + } + } + if (d.milestone) { + taskType += " milestoneText"; + } + if (textWidth > endX - startX) { + if (endX + textWidth + 1.5 * conf.leftPadding > w2) { + return classStr + " taskTextOutsideLeft taskTextOutside" + secNum + " " + taskType; + } else { + return classStr + " taskTextOutsideRight taskTextOutside" + secNum + " " + taskType + " width-" + textWidth; + } + } else { + return classStr + " taskText taskText" + secNum + " " + taskType + " width-" + textWidth; + } + }); + const securityLevel2 = getConfig().securityLevel; + if (securityLevel2 === "sandbox") { + let sandboxElement2; + sandboxElement2 = d3select("#i" + id); + const doc2 = sandboxElement2.nodes()[0].contentDocument; + rectangles.filter(function(d) { + return links2[d.id] !== void 0; + }).each(function(o) { + var taskRect = doc2.querySelector("#" + o.id); + var taskText = doc2.querySelector("#" + o.id + "-text"); + const oldParent = taskRect.parentNode; + var Link = doc2.createElement("a"); + Link.setAttribute("xlink:href", links2[o.id]); + Link.setAttribute("target", "_top"); + oldParent.appendChild(Link); + Link.appendChild(taskRect); + Link.appendChild(taskText); + }); + } + } + function drawExcludeDays(theGap, theTopPad, theSidePad, w2, h2, tasks2, excludes2, includes2) { + if (excludes2.length === 0 && includes2.length === 0) { + return; + } + let minTime; + let maxTime; + for (const { startTime, endTime } of tasks2) { + if (minTime === void 0 || startTime < minTime) { + minTime = startTime; + } + if (maxTime === void 0 || endTime > maxTime) { + maxTime = endTime; + } + } + if (!minTime || !maxTime) { + return; + } + if (dayjs(maxTime).diff(dayjs(minTime), "year") > 5) { + log.warn( + "The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days." + ); + return; + } + const dateFormat2 = diagObj.db.getDateFormat(); + const excludeRanges = []; + let range = null; + let d = dayjs(minTime); + while (d.valueOf() <= maxTime) { + if (diagObj.db.isInvalidDate(d, dateFormat2, excludes2, includes2)) { + if (!range) { + range = { + start: d, + end: d + }; + } else { + range.end = d; + } + } else { + if (range) { + excludeRanges.push(range); + range = null; + } + } + d = d.add(1, "d"); + } + const rectangles = svg.append("g").selectAll("rect").data(excludeRanges).enter(); + rectangles.append("rect").attr("id", function(d2) { + return "exclude-" + d2.start.format("YYYY-MM-DD"); + }).attr("x", function(d2) { + return timeScale(d2.start) + theSidePad; + }).attr("y", conf.gridLineStartPadding).attr("width", function(d2) { + const renderEnd = d2.end.add(1, "day"); + return timeScale(renderEnd) - timeScale(d2.start); + }).attr("height", h2 - theTopPad - conf.gridLineStartPadding).attr("transform-origin", function(d2, i) { + return (timeScale(d2.start) + theSidePad + 0.5 * (timeScale(d2.end) - timeScale(d2.start))).toString() + "px " + (i * theGap + 0.5 * h2).toString() + "px"; + }).attr("class", "exclude-range"); + } + function makeGrid(theSidePad, theTopPad, w2, h2) { + let bottomXAxis = axisBottom(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || "%Y-%m-%d")); + const reTickInterval = /^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/; + const resultTickInterval = reTickInterval.exec( + diagObj.db.getTickInterval() || conf.tickInterval + ); + if (resultTickInterval !== null) { + const every = resultTickInterval[1]; + const interval = resultTickInterval[2]; + const weekday2 = diagObj.db.getWeekday() || conf.weekday; + switch (interval) { + case "millisecond": + bottomXAxis.ticks(millisecond.every(every)); + break; + case "second": + bottomXAxis.ticks(second.every(every)); + break; + case "minute": + bottomXAxis.ticks(timeMinute.every(every)); + break; + case "hour": + bottomXAxis.ticks(timeHour.every(every)); + break; + case "day": + bottomXAxis.ticks(timeDay.every(every)); + break; + case "week": + bottomXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every)); + break; + case "month": + bottomXAxis.ticks(timeMonth.every(every)); + break; + } + } + svg.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + (h2 - 50) + ")").call(bottomXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10).attr("dy", "1em"); + if (diagObj.db.topAxisEnabled() || conf.topAxis) { + let topXAxis = axisTop(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || "%Y-%m-%d")); + if (resultTickInterval !== null) { + const every = resultTickInterval[1]; + const interval = resultTickInterval[2]; + const weekday2 = diagObj.db.getWeekday() || conf.weekday; + switch (interval) { + case "millisecond": + topXAxis.ticks(millisecond.every(every)); + break; + case "second": + topXAxis.ticks(second.every(every)); + break; + case "minute": + topXAxis.ticks(timeMinute.every(every)); + break; + case "hour": + topXAxis.ticks(timeHour.every(every)); + break; + case "day": + topXAxis.ticks(timeDay.every(every)); + break; + case "week": + topXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every)); + break; + case "month": + topXAxis.ticks(timeMonth.every(every)); + break; + } + } + svg.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + theTopPad + ")").call(topXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10); + } + } + function vertLabels(theGap, theTopPad) { + let prevGap = 0; + const numOccurrences = Object.keys(categoryHeights).map((d) => [d, categoryHeights[d]]); + svg.append("g").selectAll("text").data(numOccurrences).enter().append(function(d) { + const rows = d[0].split(common.lineBreakRegex); + const dy = -(rows.length - 1) / 2; + const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text"); + svgLabel.setAttribute("dy", dy + "em"); + for (const [j, row] of rows.entries()) { + const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan"); + tspan.setAttribute("alignment-baseline", "central"); + tspan.setAttribute("x", "10"); + if (j > 0) { + tspan.setAttribute("dy", "1em"); + } + tspan.textContent = row; + svgLabel.appendChild(tspan); + } + return svgLabel; + }).attr("x", 10).attr("y", function(d, i) { + if (i > 0) { + for (let j = 0; j < i; j++) { + prevGap += numOccurrences[i - 1][1]; + return d[1] * theGap / 2 + prevGap * theGap + theTopPad; + } + } else { + return d[1] * theGap / 2 + theTopPad; + } + }).attr("font-size", conf.sectionFontSize).attr("class", function(d) { + for (const [i, category] of categories.entries()) { + if (d[0] === category) { + return "sectionTitle sectionTitle" + i % conf.numberSectionStyles; + } + } + return "sectionTitle"; + }); + } + function drawToday(theSidePad, theTopPad, w2, h2) { + const todayMarker2 = diagObj.db.getTodayMarker(); + if (todayMarker2 === "off") { + return; + } + const todayG = svg.append("g").attr("class", "today"); + const today = /* @__PURE__ */ new Date(); + const todayLine = todayG.append("line"); + todayLine.attr("x1", timeScale(today) + theSidePad).attr("x2", timeScale(today) + theSidePad).attr("y1", conf.titleTopMargin).attr("y2", h2 - conf.titleTopMargin).attr("class", "today"); + if (todayMarker2 !== "") { + todayLine.attr("style", todayMarker2.replace(/,/g, ";")); + } + } + function checkUnique(arr) { + const hash = {}; + const result = []; + for (let i = 0, l = arr.length; i < l; ++i) { + if (!Object.prototype.hasOwnProperty.call(hash, arr[i])) { + hash[arr[i]] = true; + result.push(arr[i]); + } + } + return result; + } +}; +const ganttRenderer = { + setConf, + draw +}; +const getStyles = (options) => ` + .mermaid-main-font { + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .exclude-range { + fill: ${options.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${options.sectionBkgColor}; + } + + .section2 { + fill: ${options.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${options.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${options.titleColor}; + } + + .sectionTitle1 { + fill: ${options.titleColor}; + } + + .sectionTitle2 { + fill: ${options.titleColor}; + } + + .sectionTitle3 { + fill: ${options.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${options.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${options.fontFamily}; + fill: ${options.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${options.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideRight { + fill: ${options.taskTextDarkColor}; + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideLeft { + fill: ${options.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${options.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${options.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${options.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${options.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${options.taskBkgColor}; + stroke: ${options.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${options.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${options.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${options.activeTaskBkgColor}; + stroke: ${options.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${options.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${options.doneTaskBorderColor}; + fill: ${options.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${options.taskTextDarkColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${options.critBorderColor}; + fill: ${options.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${options.critBorderColor}; + fill: ${options.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${options.critBorderColor}; + fill: ${options.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${options.taskTextDarkColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${options.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.titleColor || options.textColor}; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } +`; +const ganttStyles = getStyles; +const diagram = { + parser: ganttParser, + db: ganttDb, + renderer: ganttRenderer, + styles: ganttStyles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/ganttDiagram-3c2fde2b.js b/assets/lib/mermaid/ganttDiagram-3c2fde2b.js new file mode 100644 index 000000000..32f883415 --- /dev/null +++ b/assets/lib/mermaid/ganttDiagram-3c2fde2b.js @@ -0,0 +1,2501 @@ +import { J as Be, K as Ze, R as Xe, L as qe, M as Dn, N as $t, O as Mn, P as ye, Q as ke, c as wt, s as Sn, g as _n, C as Un, D as Yn, b as Fn, a as Ln, T as nt, E as En, e as An, A as In, l as qt, j as zt, k as Wn, f as On } from "./mermaid-9f2aa176.js"; +import { b as Hn, t as Ue, c as Nn, a as Vn, l as Pn } from "./linear-9bcf74c4.js"; +import { i as zn } from "./init-f9637058.js"; +function Rn(t, e) { + let n; + if (e === void 0) + for (const r of t) + r != null && (n < r || n === void 0 && r >= r) && (n = r); + else { + let r = -1; + for (let i of t) + (i = e(i, ++r, t)) != null && (n < i || n === void 0 && i >= i) && (n = i); + } + return n; +} +function Bn(t, e) { + let n; + if (e === void 0) + for (const r of t) + r != null && (n > r || n === void 0 && r >= r) && (n = r); + else { + let r = -1; + for (let i of t) + (i = e(i, ++r, t)) != null && (n > i || n === void 0 && i >= i) && (n = i); + } + return n; +} +function Zn(t) { + return t; +} +var Bt = 1, te = 2, ue = 3, Rt = 4, Ye = 1e-6; +function Xn(t) { + return "translate(" + t + ",0)"; +} +function qn(t) { + return "translate(0," + t + ")"; +} +function Gn(t) { + return (e) => +t(e); +} +function jn(t, e) { + return e = Math.max(0, t.bandwidth() - e * 2) / 2, t.round() && (e = Math.round(e)), (n) => +t(n) + e; +} +function Qn() { + return !this.__axis; +} +function Ge(t, e) { + var n = [], r = null, i = null, s = 6, a = 6, k = 3, Y = typeof window < "u" && window.devicePixelRatio > 1 ? 0 : 0.5, g = t === Bt || t === Rt ? -1 : 1, v = t === Rt || t === te ? "x" : "y", U = t === Bt || t === ue ? Xn : qn; + function C(b) { + var q = r ?? (e.ticks ? e.ticks.apply(e, n) : e.domain()), y = i ?? (e.tickFormat ? e.tickFormat.apply(e, n) : Zn), L = Math.max(s, 0) + k, O = e.range(), W = +O[0] + Y, B = +O[O.length - 1] + Y, Z = (e.bandwidth ? jn : Gn)(e.copy(), Y), Q = b.selection ? b.selection() : b, x = Q.selectAll(".domain").data([null]), A = Q.selectAll(".tick").data(q, e).order(), T = A.exit(), F = A.enter().append("g").attr("class", "tick"), D = A.select("line"), w = A.select("text"); + x = x.merge(x.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "currentColor")), A = A.merge(F), D = D.merge(F.append("line").attr("stroke", "currentColor").attr(v + "2", g * s)), w = w.merge(F.append("text").attr("fill", "currentColor").attr(v, g * L).attr("dy", t === Bt ? "0em" : t === ue ? "0.71em" : "0.32em")), b !== Q && (x = x.transition(b), A = A.transition(b), D = D.transition(b), w = w.transition(b), T = T.transition(b).attr("opacity", Ye).attr("transform", function(o) { + return isFinite(o = Z(o)) ? U(o + Y) : this.getAttribute("transform"); + }), F.attr("opacity", Ye).attr("transform", function(o) { + var d = this.parentNode.__axis; + return U((d && isFinite(d = d(o)) ? d : Z(o)) + Y); + })), T.remove(), x.attr("d", t === Rt || t === te ? a ? "M" + g * a + "," + W + "H" + Y + "V" + B + "H" + g * a : "M" + Y + "," + W + "V" + B : a ? "M" + W + "," + g * a + "V" + Y + "H" + B + "V" + g * a : "M" + W + "," + Y + "H" + B), A.attr("opacity", 1).attr("transform", function(o) { + return U(Z(o) + Y); + }), D.attr(v + "2", g * s), w.attr(v, g * L).text(y), Q.filter(Qn).attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr("text-anchor", t === te ? "start" : t === Rt ? "end" : "middle"), Q.each(function() { + this.__axis = Z; + }); + } + return C.scale = function(b) { + return arguments.length ? (e = b, C) : e; + }, C.ticks = function() { + return n = Array.from(arguments), C; + }, C.tickArguments = function(b) { + return arguments.length ? (n = b == null ? [] : Array.from(b), C) : n.slice(); + }, C.tickValues = function(b) { + return arguments.length ? (r = b == null ? null : Array.from(b), C) : r && r.slice(); + }, C.tickFormat = function(b) { + return arguments.length ? (i = b, C) : i; + }, C.tickSize = function(b) { + return arguments.length ? (s = a = +b, C) : s; + }, C.tickSizeInner = function(b) { + return arguments.length ? (s = +b, C) : s; + }, C.tickSizeOuter = function(b) { + return arguments.length ? (a = +b, C) : a; + }, C.tickPadding = function(b) { + return arguments.length ? (k = +b, C) : k; + }, C.offset = function(b) { + return arguments.length ? (Y = +b, C) : Y; + }, C; +} +function Jn(t) { + return Ge(Bt, t); +} +function Kn(t) { + return Ge(ue, t); +} +const $n = Math.PI / 180, tr = 180 / Math.PI, Gt = 18, je = 0.96422, Qe = 1, Je = 0.82521, Ke = 4 / 29, Ct = 6 / 29, $e = 3 * Ct * Ct, er = Ct * Ct * Ct; +function tn(t) { + if (t instanceof ot) + return new ot(t.l, t.a, t.b, t.opacity); + if (t instanceof ut) + return en(t); + t instanceof Xe || (t = Dn(t)); + var e = ie(t.r), n = ie(t.g), r = ie(t.b), i = ee((0.2225045 * e + 0.7168786 * n + 0.0606169 * r) / Qe), s, a; + return e === n && n === r ? s = a = i : (s = ee((0.4360747 * e + 0.3850649 * n + 0.1430804 * r) / je), a = ee((0.0139322 * e + 0.0971045 * n + 0.7141733 * r) / Je)), new ot(116 * i - 16, 500 * (s - i), 200 * (i - a), t.opacity); +} +function nr(t, e, n, r) { + return arguments.length === 1 ? tn(t) : new ot(t, e, n, r ?? 1); +} +function ot(t, e, n, r) { + this.l = +t, this.a = +e, this.b = +n, this.opacity = +r; +} +Be(ot, nr, Ze(qe, { + brighter(t) { + return new ot(this.l + Gt * (t ?? 1), this.a, this.b, this.opacity); + }, + darker(t) { + return new ot(this.l - Gt * (t ?? 1), this.a, this.b, this.opacity); + }, + rgb() { + var t = (this.l + 16) / 116, e = isNaN(this.a) ? t : t + this.a / 500, n = isNaN(this.b) ? t : t - this.b / 200; + return e = je * ne(e), t = Qe * ne(t), n = Je * ne(n), new Xe( + re(3.1338561 * e - 1.6168667 * t - 0.4906146 * n), + re(-0.9787684 * e + 1.9161415 * t + 0.033454 * n), + re(0.0719453 * e - 0.2289914 * t + 1.4052427 * n), + this.opacity + ); + } +})); +function ee(t) { + return t > er ? Math.pow(t, 1 / 3) : t / $e + Ke; +} +function ne(t) { + return t > Ct ? t * t * t : $e * (t - Ke); +} +function re(t) { + return 255 * (t <= 31308e-7 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - 0.055); +} +function ie(t) { + return (t /= 255) <= 0.04045 ? t / 12.92 : Math.pow((t + 0.055) / 1.055, 2.4); +} +function rr(t) { + if (t instanceof ut) + return new ut(t.h, t.c, t.l, t.opacity); + if (t instanceof ot || (t = tn(t)), t.a === 0 && t.b === 0) + return new ut(NaN, 0 < t.l && t.l < 100 ? 0 : NaN, t.l, t.opacity); + var e = Math.atan2(t.b, t.a) * tr; + return new ut(e < 0 ? e + 360 : e, Math.sqrt(t.a * t.a + t.b * t.b), t.l, t.opacity); +} +function fe(t, e, n, r) { + return arguments.length === 1 ? rr(t) : new ut(t, e, n, r ?? 1); +} +function ut(t, e, n, r) { + this.h = +t, this.c = +e, this.l = +n, this.opacity = +r; +} +function en(t) { + if (isNaN(t.h)) + return new ot(t.l, 0, 0, t.opacity); + var e = t.h * $n; + return new ot(t.l, Math.cos(e) * t.c, Math.sin(e) * t.c, t.opacity); +} +Be(ut, fe, Ze(qe, { + brighter(t) { + return new ut(this.h, this.c, this.l + Gt * (t ?? 1), this.opacity); + }, + darker(t) { + return new ut(this.h, this.c, this.l - Gt * (t ?? 1), this.opacity); + }, + rgb() { + return en(this).rgb(); + } +})); +function ir(t) { + return function(e, n) { + var r = t((e = fe(e)).h, (n = fe(n)).h), i = $t(e.c, n.c), s = $t(e.l, n.l), a = $t(e.opacity, n.opacity); + return function(k) { + return e.h = r(k), e.c = i(k), e.l = s(k), e.opacity = a(k), e + ""; + }; + }; +} +const sr = ir(Mn); +function ar(t, e) { + t = t.slice(); + var n = 0, r = t.length - 1, i = t[n], s = t[r], a; + return s < i && (a = n, n = r, r = a, a = i, i = s, s = a), t[n] = e.floor(i), t[r] = e.ceil(s), t; +} +const se = /* @__PURE__ */ new Date(), ae = /* @__PURE__ */ new Date(); +function $(t, e, n, r) { + function i(s) { + return t(s = arguments.length === 0 ? /* @__PURE__ */ new Date() : /* @__PURE__ */ new Date(+s)), s; + } + return i.floor = (s) => (t(s = /* @__PURE__ */ new Date(+s)), s), i.ceil = (s) => (t(s = new Date(s - 1)), e(s, 1), t(s), s), i.round = (s) => { + const a = i(s), k = i.ceil(s); + return s - a < k - s ? a : k; + }, i.offset = (s, a) => (e(s = /* @__PURE__ */ new Date(+s), a == null ? 1 : Math.floor(a)), s), i.range = (s, a, k) => { + const Y = []; + if (s = i.ceil(s), k = k == null ? 1 : Math.floor(k), !(s < a) || !(k > 0)) + return Y; + let g; + do + Y.push(g = /* @__PURE__ */ new Date(+s)), e(s, k), t(s); + while (g < s && s < a); + return Y; + }, i.filter = (s) => $((a) => { + if (a >= a) + for (; t(a), !s(a); ) + a.setTime(a - 1); + }, (a, k) => { + if (a >= a) + if (k < 0) + for (; ++k <= 0; ) + for (; e(a, -1), !s(a); ) + ; + else + for (; --k >= 0; ) + for (; e(a, 1), !s(a); ) + ; + }), n && (i.count = (s, a) => (se.setTime(+s), ae.setTime(+a), t(se), t(ae), Math.floor(n(se, ae))), i.every = (s) => (s = Math.floor(s), !isFinite(s) || !(s > 0) ? null : s > 1 ? i.filter(r ? (a) => r(a) % s === 0 : (a) => i.count(0, a) % s === 0) : i)), i; +} +const Mt = $(() => { +}, (t, e) => { + t.setTime(+t + e); +}, (t, e) => e - t); +Mt.every = (t) => (t = Math.floor(t), !isFinite(t) || !(t > 0) ? null : t > 1 ? $((e) => { + e.setTime(Math.floor(e / t) * t); +}, (e, n) => { + e.setTime(+e + n * t); +}, (e, n) => (n - e) / t) : Mt); +Mt.range; +const ft = 1e3, rt = ft * 60, ht = rt * 60, dt = ht * 24, pe = dt * 7, Fe = dt * 30, oe = dt * 365, gt = $((t) => { + t.setTime(t - t.getMilliseconds()); +}, (t, e) => { + t.setTime(+t + e * ft); +}, (t, e) => (e - t) / ft, (t) => t.getUTCSeconds()); +gt.range; +const Et = $((t) => { + t.setTime(t - t.getMilliseconds() - t.getSeconds() * ft); +}, (t, e) => { + t.setTime(+t + e * rt); +}, (t, e) => (e - t) / rt, (t) => t.getMinutes()); +Et.range; +const or = $((t) => { + t.setUTCSeconds(0, 0); +}, (t, e) => { + t.setTime(+t + e * rt); +}, (t, e) => (e - t) / rt, (t) => t.getUTCMinutes()); +or.range; +const At = $((t) => { + t.setTime(t - t.getMilliseconds() - t.getSeconds() * ft - t.getMinutes() * rt); +}, (t, e) => { + t.setTime(+t + e * ht); +}, (t, e) => (e - t) / ht, (t) => t.getHours()); +At.range; +const cr = $((t) => { + t.setUTCMinutes(0, 0, 0); +}, (t, e) => { + t.setTime(+t + e * ht); +}, (t, e) => (e - t) / ht, (t) => t.getUTCHours()); +cr.range; +const yt = $( + (t) => t.setHours(0, 0, 0, 0), + (t, e) => t.setDate(t.getDate() + e), + (t, e) => (e - t - (e.getTimezoneOffset() - t.getTimezoneOffset()) * rt) / dt, + (t) => t.getDate() - 1 +); +yt.range; +const Te = $((t) => { + t.setUTCHours(0, 0, 0, 0); +}, (t, e) => { + t.setUTCDate(t.getUTCDate() + e); +}, (t, e) => (e - t) / dt, (t) => t.getUTCDate() - 1); +Te.range; +const lr = $((t) => { + t.setUTCHours(0, 0, 0, 0); +}, (t, e) => { + t.setUTCDate(t.getUTCDate() + e); +}, (t, e) => (e - t) / dt, (t) => Math.floor(t / dt)); +lr.range; +function Tt(t) { + return $((e) => { + e.setDate(e.getDate() - (e.getDay() + 7 - t) % 7), e.setHours(0, 0, 0, 0); + }, (e, n) => { + e.setDate(e.getDate() + n * 7); + }, (e, n) => (n - e - (n.getTimezoneOffset() - e.getTimezoneOffset()) * rt) / pe); +} +const Ot = Tt(0), It = Tt(1), nn = Tt(2), rn = Tt(3), kt = Tt(4), sn = Tt(5), an = Tt(6); +Ot.range; +It.range; +nn.range; +rn.range; +kt.range; +sn.range; +an.range; +function bt(t) { + return $((e) => { + e.setUTCDate(e.getUTCDate() - (e.getUTCDay() + 7 - t) % 7), e.setUTCHours(0, 0, 0, 0); + }, (e, n) => { + e.setUTCDate(e.getUTCDate() + n * 7); + }, (e, n) => (n - e) / pe); +} +const on = bt(0), jt = bt(1), ur = bt(2), fr = bt(3), St = bt(4), hr = bt(5), dr = bt(6); +on.range; +jt.range; +ur.range; +fr.range; +St.range; +hr.range; +dr.range; +const Wt = $((t) => { + t.setDate(1), t.setHours(0, 0, 0, 0); +}, (t, e) => { + t.setMonth(t.getMonth() + e); +}, (t, e) => e.getMonth() - t.getMonth() + (e.getFullYear() - t.getFullYear()) * 12, (t) => t.getMonth()); +Wt.range; +const mr = $((t) => { + t.setUTCDate(1), t.setUTCHours(0, 0, 0, 0); +}, (t, e) => { + t.setUTCMonth(t.getUTCMonth() + e); +}, (t, e) => e.getUTCMonth() - t.getUTCMonth() + (e.getUTCFullYear() - t.getUTCFullYear()) * 12, (t) => t.getUTCMonth()); +mr.range; +const mt = $((t) => { + t.setMonth(0, 1), t.setHours(0, 0, 0, 0); +}, (t, e) => { + t.setFullYear(t.getFullYear() + e); +}, (t, e) => e.getFullYear() - t.getFullYear(), (t) => t.getFullYear()); +mt.every = (t) => !isFinite(t = Math.floor(t)) || !(t > 0) ? null : $((e) => { + e.setFullYear(Math.floor(e.getFullYear() / t) * t), e.setMonth(0, 1), e.setHours(0, 0, 0, 0); +}, (e, n) => { + e.setFullYear(e.getFullYear() + n * t); +}); +mt.range; +const pt = $((t) => { + t.setUTCMonth(0, 1), t.setUTCHours(0, 0, 0, 0); +}, (t, e) => { + t.setUTCFullYear(t.getUTCFullYear() + e); +}, (t, e) => e.getUTCFullYear() - t.getUTCFullYear(), (t) => t.getUTCFullYear()); +pt.every = (t) => !isFinite(t = Math.floor(t)) || !(t > 0) ? null : $((e) => { + e.setUTCFullYear(Math.floor(e.getUTCFullYear() / t) * t), e.setUTCMonth(0, 1), e.setUTCHours(0, 0, 0, 0); +}, (e, n) => { + e.setUTCFullYear(e.getUTCFullYear() + n * t); +}); +pt.range; +function gr(t, e, n, r, i, s) { + const a = [ + [gt, 1, ft], + [gt, 5, 5 * ft], + [gt, 15, 15 * ft], + [gt, 30, 30 * ft], + [s, 1, rt], + [s, 5, 5 * rt], + [s, 15, 15 * rt], + [s, 30, 30 * rt], + [i, 1, ht], + [i, 3, 3 * ht], + [i, 6, 6 * ht], + [i, 12, 12 * ht], + [r, 1, dt], + [r, 2, 2 * dt], + [n, 1, pe], + [e, 1, Fe], + [e, 3, 3 * Fe], + [t, 1, oe] + ]; + function k(g, v, U) { + const C = v < g; + C && ([g, v] = [v, g]); + const b = U && typeof U.range == "function" ? U : Y(g, v, U), q = b ? b.range(g, +v + 1) : []; + return C ? q.reverse() : q; + } + function Y(g, v, U) { + const C = Math.abs(v - g) / U, b = Hn(([, , L]) => L).right(a, C); + if (b === a.length) + return t.every(Ue(g / oe, v / oe, U)); + if (b === 0) + return Mt.every(Math.max(Ue(g, v, U), 1)); + const [q, y] = a[C / a[b - 1][2] < a[b][2] / C ? b - 1 : b]; + return q.every(y); + } + return [k, Y]; +} +const [yr, kr] = gr(mt, Wt, Ot, yt, At, Et); +function ce(t) { + if (0 <= t.y && t.y < 100) { + var e = new Date(-1, t.m, t.d, t.H, t.M, t.S, t.L); + return e.setFullYear(t.y), e; + } + return new Date(t.y, t.m, t.d, t.H, t.M, t.S, t.L); +} +function le(t) { + if (0 <= t.y && t.y < 100) { + var e = new Date(Date.UTC(-1, t.m, t.d, t.H, t.M, t.S, t.L)); + return e.setUTCFullYear(t.y), e; + } + return new Date(Date.UTC(t.y, t.m, t.d, t.H, t.M, t.S, t.L)); +} +function Yt(t, e, n) { + return { y: t, m: e, d: n, H: 0, M: 0, S: 0, L: 0 }; +} +function pr(t) { + var e = t.dateTime, n = t.date, r = t.time, i = t.periods, s = t.days, a = t.shortDays, k = t.months, Y = t.shortMonths, g = Ft(i), v = Lt(i), U = Ft(s), C = Lt(s), b = Ft(a), q = Lt(a), y = Ft(k), L = Lt(k), O = Ft(Y), W = Lt(Y), B = { + a: c, + A: X, + b: f, + B: h, + c: null, + d: Oe, + e: Oe, + f: Pr, + g: Jr, + G: $r, + H: Hr, + I: Nr, + j: Vr, + L: cn, + m: zr, + M: Rr, + p: _, + q: G, + Q: Ve, + s: Pe, + S: Br, + u: Zr, + U: Xr, + V: qr, + w: Gr, + W: jr, + x: null, + X: null, + y: Qr, + Y: Kr, + Z: ti, + "%": Ne + }, Z = { + a: H, + A: V, + b: I, + B: P, + c: null, + d: He, + e: He, + f: ii, + g: mi, + G: yi, + H: ei, + I: ni, + j: ri, + L: un, + m: si, + M: ai, + p: st, + q: it, + Q: Ve, + s: Pe, + S: oi, + u: ci, + U: li, + V: ui, + w: fi, + W: hi, + x: null, + X: null, + y: di, + Y: gi, + Z: ki, + "%": Ne + }, Q = { + a: D, + A: w, + b: o, + B: d, + c: m, + d: Ie, + e: Ie, + f: Ar, + g: Ae, + G: Ee, + H: We, + I: We, + j: Yr, + L: Er, + m: Ur, + M: Fr, + p: F, + q: _r, + Q: Wr, + s: Or, + S: Lr, + u: wr, + U: Cr, + V: Dr, + w: xr, + W: Mr, + x: u, + X: S, + y: Ae, + Y: Ee, + Z: Sr, + "%": Ir + }; + B.x = x(n, B), B.X = x(r, B), B.c = x(e, B), Z.x = x(n, Z), Z.X = x(r, Z), Z.c = x(e, Z); + function x(p, E) { + return function(M) { + var l = [], R = -1, N = 0, j = p.length, J, et, Ut; + for (M instanceof Date || (M = /* @__PURE__ */ new Date(+M)); ++R < j; ) + p.charCodeAt(R) === 37 && (l.push(p.slice(N, R)), (et = Le[J = p.charAt(++R)]) != null ? J = p.charAt(++R) : et = J === "e" ? " " : "0", (Ut = E[J]) && (J = Ut(M, et)), l.push(J), N = R + 1); + return l.push(p.slice(N, R)), l.join(""); + }; + } + function A(p, E) { + return function(M) { + var l = Yt(1900, void 0, 1), R = T(l, p, M += "", 0), N, j; + if (R != M.length) + return null; + if ("Q" in l) + return new Date(l.Q); + if ("s" in l) + return new Date(l.s * 1e3 + ("L" in l ? l.L : 0)); + if (E && !("Z" in l) && (l.Z = 0), "p" in l && (l.H = l.H % 12 + l.p * 12), l.m === void 0 && (l.m = "q" in l ? l.q : 0), "V" in l) { + if (l.V < 1 || l.V > 53) + return null; + "w" in l || (l.w = 1), "Z" in l ? (N = le(Yt(l.y, 0, 1)), j = N.getUTCDay(), N = j > 4 || j === 0 ? jt.ceil(N) : jt(N), N = Te.offset(N, (l.V - 1) * 7), l.y = N.getUTCFullYear(), l.m = N.getUTCMonth(), l.d = N.getUTCDate() + (l.w + 6) % 7) : (N = ce(Yt(l.y, 0, 1)), j = N.getDay(), N = j > 4 || j === 0 ? It.ceil(N) : It(N), N = yt.offset(N, (l.V - 1) * 7), l.y = N.getFullYear(), l.m = N.getMonth(), l.d = N.getDate() + (l.w + 6) % 7); + } else + ("W" in l || "U" in l) && ("w" in l || (l.w = "u" in l ? l.u % 7 : "W" in l ? 1 : 0), j = "Z" in l ? le(Yt(l.y, 0, 1)).getUTCDay() : ce(Yt(l.y, 0, 1)).getDay(), l.m = 0, l.d = "W" in l ? (l.w + 6) % 7 + l.W * 7 - (j + 5) % 7 : l.w + l.U * 7 - (j + 6) % 7); + return "Z" in l ? (l.H += l.Z / 100 | 0, l.M += l.Z % 100, le(l)) : ce(l); + }; + } + function T(p, E, M, l) { + for (var R = 0, N = E.length, j = M.length, J, et; R < N; ) { + if (l >= j) + return -1; + if (J = E.charCodeAt(R++), J === 37) { + if (J = E.charAt(R++), et = Q[J in Le ? E.charAt(R++) : J], !et || (l = et(p, M, l)) < 0) + return -1; + } else if (J != M.charCodeAt(l++)) + return -1; + } + return l; + } + function F(p, E, M) { + var l = g.exec(E.slice(M)); + return l ? (p.p = v.get(l[0].toLowerCase()), M + l[0].length) : -1; + } + function D(p, E, M) { + var l = b.exec(E.slice(M)); + return l ? (p.w = q.get(l[0].toLowerCase()), M + l[0].length) : -1; + } + function w(p, E, M) { + var l = U.exec(E.slice(M)); + return l ? (p.w = C.get(l[0].toLowerCase()), M + l[0].length) : -1; + } + function o(p, E, M) { + var l = O.exec(E.slice(M)); + return l ? (p.m = W.get(l[0].toLowerCase()), M + l[0].length) : -1; + } + function d(p, E, M) { + var l = y.exec(E.slice(M)); + return l ? (p.m = L.get(l[0].toLowerCase()), M + l[0].length) : -1; + } + function m(p, E, M) { + return T(p, e, E, M); + } + function u(p, E, M) { + return T(p, n, E, M); + } + function S(p, E, M) { + return T(p, r, E, M); + } + function c(p) { + return a[p.getDay()]; + } + function X(p) { + return s[p.getDay()]; + } + function f(p) { + return Y[p.getMonth()]; + } + function h(p) { + return k[p.getMonth()]; + } + function _(p) { + return i[+(p.getHours() >= 12)]; + } + function G(p) { + return 1 + ~~(p.getMonth() / 3); + } + function H(p) { + return a[p.getUTCDay()]; + } + function V(p) { + return s[p.getUTCDay()]; + } + function I(p) { + return Y[p.getUTCMonth()]; + } + function P(p) { + return k[p.getUTCMonth()]; + } + function st(p) { + return i[+(p.getUTCHours() >= 12)]; + } + function it(p) { + return 1 + ~~(p.getUTCMonth() / 3); + } + return { + format: function(p) { + var E = x(p += "", B); + return E.toString = function() { + return p; + }, E; + }, + parse: function(p) { + var E = A(p += "", !1); + return E.toString = function() { + return p; + }, E; + }, + utcFormat: function(p) { + var E = x(p += "", Z); + return E.toString = function() { + return p; + }, E; + }, + utcParse: function(p) { + var E = A(p += "", !0); + return E.toString = function() { + return p; + }, E; + } + }; +} +var Le = { "-": "", _: " ", 0: "0" }, tt = /^\s*\d+/, Tr = /^%/, br = /[\\^$*+?|[\]().{}]/g; +function z(t, e, n) { + var r = t < 0 ? "-" : "", i = (r ? -t : t) + "", s = i.length; + return r + (s < n ? new Array(n - s + 1).join(e) + i : i); +} +function vr(t) { + return t.replace(br, "\\$&"); +} +function Ft(t) { + return new RegExp("^(?:" + t.map(vr).join("|") + ")", "i"); +} +function Lt(t) { + return new Map(t.map((e, n) => [e.toLowerCase(), n])); +} +function xr(t, e, n) { + var r = tt.exec(e.slice(n, n + 1)); + return r ? (t.w = +r[0], n + r[0].length) : -1; +} +function wr(t, e, n) { + var r = tt.exec(e.slice(n, n + 1)); + return r ? (t.u = +r[0], n + r[0].length) : -1; +} +function Cr(t, e, n) { + var r = tt.exec(e.slice(n, n + 2)); + return r ? (t.U = +r[0], n + r[0].length) : -1; +} +function Dr(t, e, n) { + var r = tt.exec(e.slice(n, n + 2)); + return r ? (t.V = +r[0], n + r[0].length) : -1; +} +function Mr(t, e, n) { + var r = tt.exec(e.slice(n, n + 2)); + return r ? (t.W = +r[0], n + r[0].length) : -1; +} +function Ee(t, e, n) { + var r = tt.exec(e.slice(n, n + 4)); + return r ? (t.y = +r[0], n + r[0].length) : -1; +} +function Ae(t, e, n) { + var r = tt.exec(e.slice(n, n + 2)); + return r ? (t.y = +r[0] + (+r[0] > 68 ? 1900 : 2e3), n + r[0].length) : -1; +} +function Sr(t, e, n) { + var r = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n, n + 6)); + return r ? (t.Z = r[1] ? 0 : -(r[2] + (r[3] || "00")), n + r[0].length) : -1; +} +function _r(t, e, n) { + var r = tt.exec(e.slice(n, n + 1)); + return r ? (t.q = r[0] * 3 - 3, n + r[0].length) : -1; +} +function Ur(t, e, n) { + var r = tt.exec(e.slice(n, n + 2)); + return r ? (t.m = r[0] - 1, n + r[0].length) : -1; +} +function Ie(t, e, n) { + var r = tt.exec(e.slice(n, n + 2)); + return r ? (t.d = +r[0], n + r[0].length) : -1; +} +function Yr(t, e, n) { + var r = tt.exec(e.slice(n, n + 3)); + return r ? (t.m = 0, t.d = +r[0], n + r[0].length) : -1; +} +function We(t, e, n) { + var r = tt.exec(e.slice(n, n + 2)); + return r ? (t.H = +r[0], n + r[0].length) : -1; +} +function Fr(t, e, n) { + var r = tt.exec(e.slice(n, n + 2)); + return r ? (t.M = +r[0], n + r[0].length) : -1; +} +function Lr(t, e, n) { + var r = tt.exec(e.slice(n, n + 2)); + return r ? (t.S = +r[0], n + r[0].length) : -1; +} +function Er(t, e, n) { + var r = tt.exec(e.slice(n, n + 3)); + return r ? (t.L = +r[0], n + r[0].length) : -1; +} +function Ar(t, e, n) { + var r = tt.exec(e.slice(n, n + 6)); + return r ? (t.L = Math.floor(r[0] / 1e3), n + r[0].length) : -1; +} +function Ir(t, e, n) { + var r = Tr.exec(e.slice(n, n + 1)); + return r ? n + r[0].length : -1; +} +function Wr(t, e, n) { + var r = tt.exec(e.slice(n)); + return r ? (t.Q = +r[0], n + r[0].length) : -1; +} +function Or(t, e, n) { + var r = tt.exec(e.slice(n)); + return r ? (t.s = +r[0], n + r[0].length) : -1; +} +function Oe(t, e) { + return z(t.getDate(), e, 2); +} +function Hr(t, e) { + return z(t.getHours(), e, 2); +} +function Nr(t, e) { + return z(t.getHours() % 12 || 12, e, 2); +} +function Vr(t, e) { + return z(1 + yt.count(mt(t), t), e, 3); +} +function cn(t, e) { + return z(t.getMilliseconds(), e, 3); +} +function Pr(t, e) { + return cn(t, e) + "000"; +} +function zr(t, e) { + return z(t.getMonth() + 1, e, 2); +} +function Rr(t, e) { + return z(t.getMinutes(), e, 2); +} +function Br(t, e) { + return z(t.getSeconds(), e, 2); +} +function Zr(t) { + var e = t.getDay(); + return e === 0 ? 7 : e; +} +function Xr(t, e) { + return z(Ot.count(mt(t) - 1, t), e, 2); +} +function ln(t) { + var e = t.getDay(); + return e >= 4 || e === 0 ? kt(t) : kt.ceil(t); +} +function qr(t, e) { + return t = ln(t), z(kt.count(mt(t), t) + (mt(t).getDay() === 4), e, 2); +} +function Gr(t) { + return t.getDay(); +} +function jr(t, e) { + return z(It.count(mt(t) - 1, t), e, 2); +} +function Qr(t, e) { + return z(t.getFullYear() % 100, e, 2); +} +function Jr(t, e) { + return t = ln(t), z(t.getFullYear() % 100, e, 2); +} +function Kr(t, e) { + return z(t.getFullYear() % 1e4, e, 4); +} +function $r(t, e) { + var n = t.getDay(); + return t = n >= 4 || n === 0 ? kt(t) : kt.ceil(t), z(t.getFullYear() % 1e4, e, 4); +} +function ti(t) { + var e = t.getTimezoneOffset(); + return (e > 0 ? "-" : (e *= -1, "+")) + z(e / 60 | 0, "0", 2) + z(e % 60, "0", 2); +} +function He(t, e) { + return z(t.getUTCDate(), e, 2); +} +function ei(t, e) { + return z(t.getUTCHours(), e, 2); +} +function ni(t, e) { + return z(t.getUTCHours() % 12 || 12, e, 2); +} +function ri(t, e) { + return z(1 + Te.count(pt(t), t), e, 3); +} +function un(t, e) { + return z(t.getUTCMilliseconds(), e, 3); +} +function ii(t, e) { + return un(t, e) + "000"; +} +function si(t, e) { + return z(t.getUTCMonth() + 1, e, 2); +} +function ai(t, e) { + return z(t.getUTCMinutes(), e, 2); +} +function oi(t, e) { + return z(t.getUTCSeconds(), e, 2); +} +function ci(t) { + var e = t.getUTCDay(); + return e === 0 ? 7 : e; +} +function li(t, e) { + return z(on.count(pt(t) - 1, t), e, 2); +} +function fn(t) { + var e = t.getUTCDay(); + return e >= 4 || e === 0 ? St(t) : St.ceil(t); +} +function ui(t, e) { + return t = fn(t), z(St.count(pt(t), t) + (pt(t).getUTCDay() === 4), e, 2); +} +function fi(t) { + return t.getUTCDay(); +} +function hi(t, e) { + return z(jt.count(pt(t) - 1, t), e, 2); +} +function di(t, e) { + return z(t.getUTCFullYear() % 100, e, 2); +} +function mi(t, e) { + return t = fn(t), z(t.getUTCFullYear() % 100, e, 2); +} +function gi(t, e) { + return z(t.getUTCFullYear() % 1e4, e, 4); +} +function yi(t, e) { + var n = t.getUTCDay(); + return t = n >= 4 || n === 0 ? St(t) : St.ceil(t), z(t.getUTCFullYear() % 1e4, e, 4); +} +function ki() { + return "+0000"; +} +function Ne() { + return "%"; +} +function Ve(t) { + return +t; +} +function Pe(t) { + return Math.floor(+t / 1e3); +} +var xt, Qt; +pi({ + dateTime: "%x, %X", + date: "%-m/%-d/%Y", + time: "%-I:%M:%S %p", + periods: ["AM", "PM"], + days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] +}); +function pi(t) { + return xt = pr(t), Qt = xt.format, xt.parse, xt.utcFormat, xt.utcParse, xt; +} +function Ti(t) { + return new Date(t); +} +function bi(t) { + return t instanceof Date ? +t : +/* @__PURE__ */ new Date(+t); +} +function hn(t, e, n, r, i, s, a, k, Y, g) { + var v = Nn(), U = v.invert, C = v.domain, b = g(".%L"), q = g(":%S"), y = g("%I:%M"), L = g("%I %p"), O = g("%a %d"), W = g("%b %d"), B = g("%B"), Z = g("%Y"); + function Q(x) { + return (Y(x) < x ? b : k(x) < x ? q : a(x) < x ? y : s(x) < x ? L : r(x) < x ? i(x) < x ? O : W : n(x) < x ? B : Z)(x); + } + return v.invert = function(x) { + return new Date(U(x)); + }, v.domain = function(x) { + return arguments.length ? C(Array.from(x, bi)) : C().map(Ti); + }, v.ticks = function(x) { + var A = C(); + return t(A[0], A[A.length - 1], x ?? 10); + }, v.tickFormat = function(x, A) { + return A == null ? Q : g(A); + }, v.nice = function(x) { + var A = C(); + return (!x || typeof x.range != "function") && (x = e(A[0], A[A.length - 1], x ?? 10)), x ? C(ar(A, x)) : v; + }, v.copy = function() { + return Vn(v, hn(t, e, n, r, i, s, a, k, Y, g)); + }, v; +} +function vi() { + return zn.apply(hn(yr, kr, mt, Wt, Ot, yt, At, Et, gt, Qt).domain([new Date(2e3, 0, 1), new Date(2e3, 0, 2)]), arguments); +} +var he = function() { + var t = function(w, o, d, m) { + for (d = d || {}, m = w.length; m--; d[w[m]] = o) + ; + return d; + }, e = [6, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33, 35, 37], n = [1, 25], r = [1, 26], i = [1, 27], s = [1, 28], a = [1, 29], k = [1, 30], Y = [1, 31], g = [1, 9], v = [1, 10], U = [1, 11], C = [1, 12], b = [1, 13], q = [1, 14], y = [1, 15], L = [1, 16], O = [1, 18], W = [1, 19], B = [1, 20], Z = [1, 21], Q = [1, 22], x = [1, 24], A = [1, 32], T = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, gantt: 4, document: 5, EOF: 6, line: 7, SPACE: 8, statement: 9, NL: 10, weekday: 11, weekday_monday: 12, weekday_tuesday: 13, weekday_wednesday: 14, weekday_thursday: 15, weekday_friday: 16, weekday_saturday: 17, weekday_sunday: 18, dateFormat: 19, inclusiveEndDates: 20, topAxis: 21, axisFormat: 22, tickInterval: 23, excludes: 24, includes: 25, todayMarker: 26, title: 27, acc_title: 28, acc_title_value: 29, acc_descr: 30, acc_descr_value: 31, acc_descr_multiline_value: 32, section: 33, clickStatement: 34, taskTxt: 35, taskData: 36, click: 37, callbackname: 38, callbackargs: 39, href: 40, clickStatementDebug: 41, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 4: "gantt", 6: "EOF", 8: "SPACE", 10: "NL", 12: "weekday_monday", 13: "weekday_tuesday", 14: "weekday_wednesday", 15: "weekday_thursday", 16: "weekday_friday", 17: "weekday_saturday", 18: "weekday_sunday", 19: "dateFormat", 20: "inclusiveEndDates", 21: "topAxis", 22: "axisFormat", 23: "tickInterval", 24: "excludes", 25: "includes", 26: "todayMarker", 27: "title", 28: "acc_title", 29: "acc_title_value", 30: "acc_descr", 31: "acc_descr_value", 32: "acc_descr_multiline_value", 33: "section", 35: "taskTxt", 36: "taskData", 37: "click", 38: "callbackname", 39: "callbackargs", 40: "href" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [34, 2], [34, 3], [34, 3], [34, 4], [34, 3], [34, 4], [34, 2], [41, 2], [41, 3], [41, 3], [41, 4], [41, 3], [41, 4], [41, 2]], + performAction: function(o, d, m, u, S, c, X) { + var f = c.length - 1; + switch (S) { + case 1: + return c[f - 1]; + case 2: + this.$ = []; + break; + case 3: + c[f - 1].push(c[f]), this.$ = c[f - 1]; + break; + case 4: + case 5: + this.$ = c[f]; + break; + case 6: + case 7: + this.$ = []; + break; + case 8: + u.setWeekday("monday"); + break; + case 9: + u.setWeekday("tuesday"); + break; + case 10: + u.setWeekday("wednesday"); + break; + case 11: + u.setWeekday("thursday"); + break; + case 12: + u.setWeekday("friday"); + break; + case 13: + u.setWeekday("saturday"); + break; + case 14: + u.setWeekday("sunday"); + break; + case 15: + u.setDateFormat(c[f].substr(11)), this.$ = c[f].substr(11); + break; + case 16: + u.enableInclusiveEndDates(), this.$ = c[f].substr(18); + break; + case 17: + u.TopAxis(), this.$ = c[f].substr(8); + break; + case 18: + u.setAxisFormat(c[f].substr(11)), this.$ = c[f].substr(11); + break; + case 19: + u.setTickInterval(c[f].substr(13)), this.$ = c[f].substr(13); + break; + case 20: + u.setExcludes(c[f].substr(9)), this.$ = c[f].substr(9); + break; + case 21: + u.setIncludes(c[f].substr(9)), this.$ = c[f].substr(9); + break; + case 22: + u.setTodayMarker(c[f].substr(12)), this.$ = c[f].substr(12); + break; + case 24: + u.setDiagramTitle(c[f].substr(6)), this.$ = c[f].substr(6); + break; + case 25: + this.$ = c[f].trim(), u.setAccTitle(this.$); + break; + case 26: + case 27: + this.$ = c[f].trim(), u.setAccDescription(this.$); + break; + case 28: + u.addSection(c[f].substr(8)), this.$ = c[f].substr(8); + break; + case 30: + u.addTask(c[f - 1], c[f]), this.$ = "task"; + break; + case 31: + this.$ = c[f - 1], u.setClickEvent(c[f - 1], c[f], null); + break; + case 32: + this.$ = c[f - 2], u.setClickEvent(c[f - 2], c[f - 1], c[f]); + break; + case 33: + this.$ = c[f - 2], u.setClickEvent(c[f - 2], c[f - 1], null), u.setLink(c[f - 2], c[f]); + break; + case 34: + this.$ = c[f - 3], u.setClickEvent(c[f - 3], c[f - 2], c[f - 1]), u.setLink(c[f - 3], c[f]); + break; + case 35: + this.$ = c[f - 2], u.setClickEvent(c[f - 2], c[f], null), u.setLink(c[f - 2], c[f - 1]); + break; + case 36: + this.$ = c[f - 3], u.setClickEvent(c[f - 3], c[f - 1], c[f]), u.setLink(c[f - 3], c[f - 2]); + break; + case 37: + this.$ = c[f - 1], u.setLink(c[f - 1], c[f]); + break; + case 38: + case 44: + this.$ = c[f - 1] + " " + c[f]; + break; + case 39: + case 40: + case 42: + this.$ = c[f - 2] + " " + c[f - 1] + " " + c[f]; + break; + case 41: + case 43: + this.$ = c[f - 3] + " " + c[f - 2] + " " + c[f - 1] + " " + c[f]; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, t(e, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 17, 12: n, 13: r, 14: i, 15: s, 16: a, 17: k, 18: Y, 19: g, 20: v, 21: U, 22: C, 23: b, 24: q, 25: y, 26: L, 27: O, 28: W, 30: B, 32: Z, 33: Q, 34: 23, 35: x, 37: A }, t(e, [2, 7], { 1: [2, 1] }), t(e, [2, 3]), { 9: 33, 11: 17, 12: n, 13: r, 14: i, 15: s, 16: a, 17: k, 18: Y, 19: g, 20: v, 21: U, 22: C, 23: b, 24: q, 25: y, 26: L, 27: O, 28: W, 30: B, 32: Z, 33: Q, 34: 23, 35: x, 37: A }, t(e, [2, 5]), t(e, [2, 6]), t(e, [2, 15]), t(e, [2, 16]), t(e, [2, 17]), t(e, [2, 18]), t(e, [2, 19]), t(e, [2, 20]), t(e, [2, 21]), t(e, [2, 22]), t(e, [2, 23]), t(e, [2, 24]), { 29: [1, 34] }, { 31: [1, 35] }, t(e, [2, 27]), t(e, [2, 28]), t(e, [2, 29]), { 36: [1, 36] }, t(e, [2, 8]), t(e, [2, 9]), t(e, [2, 10]), t(e, [2, 11]), t(e, [2, 12]), t(e, [2, 13]), t(e, [2, 14]), { 38: [1, 37], 40: [1, 38] }, t(e, [2, 4]), t(e, [2, 25]), t(e, [2, 26]), t(e, [2, 30]), t(e, [2, 31], { 39: [1, 39], 40: [1, 40] }), t(e, [2, 37], { 38: [1, 41] }), t(e, [2, 32], { 40: [1, 42] }), t(e, [2, 33]), t(e, [2, 35], { 39: [1, 43] }), t(e, [2, 34]), t(e, [2, 36])], + defaultActions: {}, + parseError: function(o, d) { + if (d.recoverable) + this.trace(o); + else { + var m = new Error(o); + throw m.hash = d, m; + } + }, + parse: function(o) { + var d = this, m = [0], u = [], S = [null], c = [], X = this.table, f = "", h = 0, _ = 0, G = 2, H = 1, V = c.slice.call(arguments, 1), I = Object.create(this.lexer), P = { yy: {} }; + for (var st in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, st) && (P.yy[st] = this.yy[st]); + I.setInput(o, P.yy), P.yy.lexer = I, P.yy.parser = this, typeof I.yylloc > "u" && (I.yylloc = {}); + var it = I.yylloc; + c.push(it); + var p = I.options && I.options.ranges; + typeof P.yy.parseError == "function" ? this.parseError = P.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function E() { + var ct; + return ct = u.pop() || I.lex() || H, typeof ct != "number" && (ct instanceof Array && (u = ct, ct = u.pop()), ct = d.symbols_[ct] || ct), ct; + } + for (var M, l, R, N, j = {}, J, et, Ut, Pt; ; ) { + if (l = m[m.length - 1], this.defaultActions[l] ? R = this.defaultActions[l] : ((M === null || typeof M > "u") && (M = E()), R = X[l] && X[l][M]), typeof R > "u" || !R.length || !R[0]) { + var Kt = ""; + Pt = []; + for (J in X[l]) + this.terminals_[J] && J > G && Pt.push("'" + this.terminals_[J] + "'"); + I.showPosition ? Kt = "Parse error on line " + (h + 1) + `: +` + I.showPosition() + ` +Expecting ` + Pt.join(", ") + ", got '" + (this.terminals_[M] || M) + "'" : Kt = "Parse error on line " + (h + 1) + ": Unexpected " + (M == H ? "end of input" : "'" + (this.terminals_[M] || M) + "'"), this.parseError(Kt, { + text: I.match, + token: this.terminals_[M] || M, + line: I.yylineno, + loc: it, + expected: Pt + }); + } + if (R[0] instanceof Array && R.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + l + ", token: " + M); + switch (R[0]) { + case 1: + m.push(M), S.push(I.yytext), c.push(I.yylloc), m.push(R[1]), M = null, _ = I.yyleng, f = I.yytext, h = I.yylineno, it = I.yylloc; + break; + case 2: + if (et = this.productions_[R[1]][1], j.$ = S[S.length - et], j._$ = { + first_line: c[c.length - (et || 1)].first_line, + last_line: c[c.length - 1].last_line, + first_column: c[c.length - (et || 1)].first_column, + last_column: c[c.length - 1].last_column + }, p && (j._$.range = [ + c[c.length - (et || 1)].range[0], + c[c.length - 1].range[1] + ]), N = this.performAction.apply(j, [ + f, + _, + h, + P.yy, + R[1], + S, + c + ].concat(V)), typeof N < "u") + return N; + et && (m = m.slice(0, -1 * et * 2), S = S.slice(0, -1 * et), c = c.slice(0, -1 * et)), m.push(this.productions_[R[1]][0]), S.push(j.$), c.push(j._$), Ut = X[m[m.length - 2]][m[m.length - 1]], m.push(Ut); + break; + case 3: + return !0; + } + } + return !0; + } + }, F = function() { + var w = { + EOF: 1, + parseError: function(d, m) { + if (this.yy.parser) + this.yy.parser.parseError(d, m); + else + throw new Error(d); + }, + // resets the lexer, sets new input + setInput: function(o, d) { + return this.yy = d || this.yy || {}, this._input = o, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var o = this._input[0]; + this.yytext += o, this.yyleng++, this.offset++, this.match += o, this.matched += o; + var d = o.match(/(?:\r\n?|\n).*/g); + return d ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), o; + }, + // unshifts one char (or a string) into the input + unput: function(o) { + var d = o.length, m = o.split(/(?:\r\n?|\n)/g); + this._input = o + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - d), this.offset -= d; + var u = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), m.length - 1 && (this.yylineno -= m.length - 1); + var S = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: m ? (m.length === u.length ? this.yylloc.first_column : 0) + u[u.length - m.length].length - m[0].length : this.yylloc.first_column - d + }, this.options.ranges && (this.yylloc.range = [S[0], S[0] + this.yyleng - d]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(o) { + this.unput(this.match.slice(o)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var o = this.matched.substr(0, this.matched.length - this.match.length); + return (o.length > 20 ? "..." : "") + o.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var o = this.match; + return o.length < 20 && (o += this._input.substr(0, 20 - o.length)), (o.substr(0, 20) + (o.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var o = this.pastInput(), d = new Array(o.length + 1).join("-"); + return o + this.upcomingInput() + ` +` + d + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(o, d) { + var m, u, S; + if (this.options.backtrack_lexer && (S = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (S.yylloc.range = this.yylloc.range.slice(0))), u = o[0].match(/(?:\r\n?|\n).*/g), u && (this.yylineno += u.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: u ? u[u.length - 1].length - u[u.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + o[0].length + }, this.yytext += o[0], this.match += o[0], this.matches = o, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(o[0].length), this.matched += o[0], m = this.performAction.call(this, this.yy, this, d, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), m) + return m; + if (this._backtrack) { + for (var c in S) + this[c] = S[c]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var o, d, m, u; + this._more || (this.yytext = "", this.match = ""); + for (var S = this._currentRules(), c = 0; c < S.length; c++) + if (m = this._input.match(this.rules[S[c]]), m && (!d || m[0].length > d[0].length)) { + if (d = m, u = c, this.options.backtrack_lexer) { + if (o = this.test_match(m, S[c]), o !== !1) + return o; + if (this._backtrack) { + d = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return d ? (o = this.test_match(d, S[u]), o !== !1 ? o : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var d = this.next(); + return d || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(d) { + this.conditionStack.push(d); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var d = this.conditionStack.length - 1; + return d > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(d) { + return d = this.conditionStack.length - 1 - Math.abs(d || 0), d >= 0 ? this.conditionStack[d] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(d) { + this.begin(d); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: { "case-insensitive": !0 }, + performAction: function(d, m, u, S) { + switch (u) { + case 0: + return this.begin("open_directive"), "open_directive"; + case 1: + return this.begin("acc_title"), 28; + case 2: + return this.popState(), "acc_title_value"; + case 3: + return this.begin("acc_descr"), 30; + case 4: + return this.popState(), "acc_descr_value"; + case 5: + this.begin("acc_descr_multiline"); + break; + case 6: + this.popState(); + break; + case 7: + return "acc_descr_multiline_value"; + case 8: + break; + case 9: + break; + case 10: + break; + case 11: + return 10; + case 12: + break; + case 13: + break; + case 14: + this.begin("href"); + break; + case 15: + this.popState(); + break; + case 16: + return 40; + case 17: + this.begin("callbackname"); + break; + case 18: + this.popState(); + break; + case 19: + this.popState(), this.begin("callbackargs"); + break; + case 20: + return 38; + case 21: + this.popState(); + break; + case 22: + return 39; + case 23: + this.begin("click"); + break; + case 24: + this.popState(); + break; + case 25: + return 37; + case 26: + return 4; + case 27: + return 19; + case 28: + return 20; + case 29: + return 21; + case 30: + return 22; + case 31: + return 23; + case 32: + return 25; + case 33: + return 24; + case 34: + return 26; + case 35: + return 12; + case 36: + return 13; + case 37: + return 14; + case 38: + return 15; + case 39: + return 16; + case 40: + return 17; + case 41: + return 18; + case 42: + return "date"; + case 43: + return 27; + case 44: + return "accDescription"; + case 45: + return 33; + case 46: + return 35; + case 47: + return 36; + case 48: + return ":"; + case 49: + return 6; + case 50: + return "INVALID"; + } + }, + rules: [/^(?:%%\{)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%(?!\{)*[^\n]*)/i, /^(?:[^\}]%%*[^\n]*)/i, /^(?:%%*[^\n]*[\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:%[^\n]*)/i, /^(?:href[\s]+["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:call[\s]+)/i, /^(?:\([\s]*\))/i, /^(?:\()/i, /^(?:[^(]*)/i, /^(?:\))/i, /^(?:[^)]*)/i, /^(?:click[\s]+)/i, /^(?:[\s\n])/i, /^(?:[^\s\n]*)/i, /^(?:gantt\b)/i, /^(?:dateFormat\s[^#\n;]+)/i, /^(?:inclusiveEndDates\b)/i, /^(?:topAxis\b)/i, /^(?:axisFormat\s[^#\n;]+)/i, /^(?:tickInterval\s[^#\n;]+)/i, /^(?:includes\s[^#\n;]+)/i, /^(?:excludes\s[^#\n;]+)/i, /^(?:todayMarker\s[^\n;]+)/i, /^(?:weekday\s+monday\b)/i, /^(?:weekday\s+tuesday\b)/i, /^(?:weekday\s+wednesday\b)/i, /^(?:weekday\s+thursday\b)/i, /^(?:weekday\s+friday\b)/i, /^(?:weekday\s+saturday\b)/i, /^(?:weekday\s+sunday\b)/i, /^(?:\d\d\d\d-\d\d-\d\d\b)/i, /^(?:title\s[^\n]+)/i, /^(?:accDescription\s[^#\n;]+)/i, /^(?:section\s[^\n]+)/i, /^(?:[^:\n]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { acc_descr_multiline: { rules: [6, 7], inclusive: !1 }, acc_descr: { rules: [4], inclusive: !1 }, acc_title: { rules: [2], inclusive: !1 }, callbackargs: { rules: [21, 22], inclusive: !1 }, callbackname: { rules: [18, 19, 20], inclusive: !1 }, href: { rules: [15, 16], inclusive: !1 }, click: { rules: [24, 25], inclusive: !1 }, INITIAL: { rules: [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 17, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], inclusive: !0 } } + }; + return w; + }(); + T.lexer = F; + function D() { + this.yy = {}; + } + return D.prototype = T, T.Parser = D, new D(); +}(); +he.parser = he; +const xi = he; +var dn = { exports: {} }; +(function(t, e) { + (function(n, r) { + t.exports = r(); + })(ye, function() { + var n = "day"; + return function(r, i, s) { + var a = function(g) { + return g.add(4 - g.isoWeekday(), n); + }, k = i.prototype; + k.isoWeekYear = function() { + return a(this).year(); + }, k.isoWeek = function(g) { + if (!this.$utils().u(g)) + return this.add(7 * (g - this.isoWeek()), n); + var v, U, C, b, q = a(this), y = (v = this.isoWeekYear(), U = this.$u, C = (U ? s.utc : s)().year(v).startOf("year"), b = 4 - C.isoWeekday(), C.isoWeekday() > 4 && (b += 7), C.add(b, n)); + return q.diff(y, "week") + 1; + }, k.isoWeekday = function(g) { + return this.$utils().u(g) ? this.day() || 7 : this.day(this.day() % 7 ? g : g - 7); + }; + var Y = k.startOf; + k.startOf = function(g, v) { + var U = this.$utils(), C = !!U.u(v) || v; + return U.p(g) === "isoweek" ? C ? this.date(this.date() - (this.isoWeekday() - 1)).startOf("day") : this.date(this.date() - 1 - (this.isoWeekday() - 1) + 7).endOf("day") : Y.bind(this)(g, v); + }; + }; + }); +})(dn); +var wi = dn.exports; +const Ci = /* @__PURE__ */ ke(wi); +var mn = { exports: {} }; +(function(t, e) { + (function(n, r) { + t.exports = r(); + })(ye, function() { + var n = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }, r = /(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g, i = /\d\d/, s = /\d\d?/, a = /\d*[^-_:/,()\s\d]+/, k = {}, Y = function(y) { + return (y = +y) + (y > 68 ? 1900 : 2e3); + }, g = function(y) { + return function(L) { + this[y] = +L; + }; + }, v = [/[+-]\d\d:?(\d\d)?|Z/, function(y) { + (this.zone || (this.zone = {})).offset = function(L) { + if (!L || L === "Z") + return 0; + var O = L.match(/([+-]|\d\d)/g), W = 60 * O[1] + (+O[2] || 0); + return W === 0 ? 0 : O[0] === "+" ? -W : W; + }(y); + }], U = function(y) { + var L = k[y]; + return L && (L.indexOf ? L : L.s.concat(L.f)); + }, C = function(y, L) { + var O, W = k.meridiem; + if (W) { + for (var B = 1; B <= 24; B += 1) + if (y.indexOf(W(B, 0, L)) > -1) { + O = B > 12; + break; + } + } else + O = y === (L ? "pm" : "PM"); + return O; + }, b = { A: [a, function(y) { + this.afternoon = C(y, !1); + }], a: [a, function(y) { + this.afternoon = C(y, !0); + }], S: [/\d/, function(y) { + this.milliseconds = 100 * +y; + }], SS: [i, function(y) { + this.milliseconds = 10 * +y; + }], SSS: [/\d{3}/, function(y) { + this.milliseconds = +y; + }], s: [s, g("seconds")], ss: [s, g("seconds")], m: [s, g("minutes")], mm: [s, g("minutes")], H: [s, g("hours")], h: [s, g("hours")], HH: [s, g("hours")], hh: [s, g("hours")], D: [s, g("day")], DD: [i, g("day")], Do: [a, function(y) { + var L = k.ordinal, O = y.match(/\d+/); + if (this.day = O[0], L) + for (var W = 1; W <= 31; W += 1) + L(W).replace(/\[|\]/g, "") === y && (this.day = W); + }], M: [s, g("month")], MM: [i, g("month")], MMM: [a, function(y) { + var L = U("months"), O = (U("monthsShort") || L.map(function(W) { + return W.slice(0, 3); + })).indexOf(y) + 1; + if (O < 1) + throw new Error(); + this.month = O % 12 || O; + }], MMMM: [a, function(y) { + var L = U("months").indexOf(y) + 1; + if (L < 1) + throw new Error(); + this.month = L % 12 || L; + }], Y: [/[+-]?\d+/, g("year")], YY: [i, function(y) { + this.year = Y(y); + }], YYYY: [/\d{4}/, g("year")], Z: v, ZZ: v }; + function q(y) { + var L, O; + L = y, O = k && k.formats; + for (var W = (y = L.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, function(F, D, w) { + var o = w && w.toUpperCase(); + return D || O[w] || n[w] || O[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, function(d, m, u) { + return m || u.slice(1); + }); + })).match(r), B = W.length, Z = 0; Z < B; Z += 1) { + var Q = W[Z], x = b[Q], A = x && x[0], T = x && x[1]; + W[Z] = T ? { regex: A, parser: T } : Q.replace(/^\[|\]$/g, ""); + } + return function(F) { + for (var D = {}, w = 0, o = 0; w < B; w += 1) { + var d = W[w]; + if (typeof d == "string") + o += d.length; + else { + var m = d.regex, u = d.parser, S = F.slice(o), c = m.exec(S)[0]; + u.call(D, c), F = F.replace(c, ""); + } + } + return function(X) { + var f = X.afternoon; + if (f !== void 0) { + var h = X.hours; + f ? h < 12 && (X.hours += 12) : h === 12 && (X.hours = 0), delete X.afternoon; + } + }(D), D; + }; + } + return function(y, L, O) { + O.p.customParseFormat = !0, y && y.parseTwoDigitYear && (Y = y.parseTwoDigitYear); + var W = L.prototype, B = W.parse; + W.parse = function(Z) { + var Q = Z.date, x = Z.utc, A = Z.args; + this.$u = x; + var T = A[1]; + if (typeof T == "string") { + var F = A[2] === !0, D = A[3] === !0, w = F || D, o = A[2]; + D && (o = A[2]), k = this.$locale(), !F && o && (k = O.Ls[o]), this.$d = function(S, c, X) { + try { + if (["x", "X"].indexOf(c) > -1) + return new Date((c === "X" ? 1e3 : 1) * S); + var f = q(c)(S), h = f.year, _ = f.month, G = f.day, H = f.hours, V = f.minutes, I = f.seconds, P = f.milliseconds, st = f.zone, it = /* @__PURE__ */ new Date(), p = G || (h || _ ? 1 : it.getDate()), E = h || it.getFullYear(), M = 0; + h && !_ || (M = _ > 0 ? _ - 1 : it.getMonth()); + var l = H || 0, R = V || 0, N = I || 0, j = P || 0; + return st ? new Date(Date.UTC(E, M, p, l, R, N, j + 60 * st.offset * 1e3)) : X ? new Date(Date.UTC(E, M, p, l, R, N, j)) : new Date(E, M, p, l, R, N, j); + } catch { + return /* @__PURE__ */ new Date(""); + } + }(Q, T, x), this.init(), o && o !== !0 && (this.$L = this.locale(o).$L), w && Q != this.format(T) && (this.$d = /* @__PURE__ */ new Date("")), k = {}; + } else if (T instanceof Array) + for (var d = T.length, m = 1; m <= d; m += 1) { + A[1] = T[m - 1]; + var u = O.apply(this, A); + if (u.isValid()) { + this.$d = u.$d, this.$L = u.$L, this.init(); + break; + } + m === d && (this.$d = /* @__PURE__ */ new Date("")); + } + else + B.call(this, Z); + }; + }; + }); +})(mn); +var Di = mn.exports; +const Mi = /* @__PURE__ */ ke(Di); +var gn = { exports: {} }; +(function(t, e) { + (function(n, r) { + t.exports = r(); + })(ye, function() { + return function(n, r) { + var i = r.prototype, s = i.format; + i.format = function(a) { + var k = this, Y = this.$locale(); + if (!this.isValid()) + return s.bind(this)(a); + var g = this.$utils(), v = (a || "YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g, function(U) { + switch (U) { + case "Q": + return Math.ceil((k.$M + 1) / 3); + case "Do": + return Y.ordinal(k.$D); + case "gggg": + return k.weekYear(); + case "GGGG": + return k.isoWeekYear(); + case "wo": + return Y.ordinal(k.week(), "W"); + case "w": + case "ww": + return g.s(k.week(), U === "w" ? 1 : 2, "0"); + case "W": + case "WW": + return g.s(k.isoWeek(), U === "W" ? 1 : 2, "0"); + case "k": + case "kk": + return g.s(String(k.$H === 0 ? 24 : k.$H), U === "k" ? 1 : 2, "0"); + case "X": + return Math.floor(k.$d.getTime() / 1e3); + case "x": + return k.$d.getTime(); + case "z": + return "[" + k.offsetName() + "]"; + case "zzz": + return "[" + k.offsetName("long") + "]"; + default: + return U; + } + }); + return s.bind(this)(v); + }; + }; + }); +})(gn); +var Si = gn.exports; +const _i = /* @__PURE__ */ ke(Si); +nt.extend(Ci); +nt.extend(Mi); +nt.extend(_i); +let at = "", be = "", ve, xe = "", Ht = [], Nt = [], we = {}, Ce = [], Jt = [], _t = "", De = ""; +const yn = ["active", "done", "crit", "milestone"]; +let Me = [], Vt = !1, Se = !1, _e = "sunday", de = 0; +const Ui = function() { + Ce = [], Jt = [], _t = "", Me = [], Zt = 0, ge = void 0, Xt = void 0, K = [], at = "", be = "", De = "", ve = void 0, xe = "", Ht = [], Nt = [], Vt = !1, Se = !1, de = 0, we = {}, En(), _e = "sunday"; +}, Yi = function(t) { + be = t; +}, Fi = function() { + return be; +}, Li = function(t) { + ve = t; +}, Ei = function() { + return ve; +}, Ai = function(t) { + xe = t; +}, Ii = function() { + return xe; +}, Wi = function(t) { + at = t; +}, Oi = function() { + Vt = !0; +}, Hi = function() { + return Vt; +}, Ni = function() { + Se = !0; +}, Vi = function() { + return Se; +}, Pi = function(t) { + De = t; +}, zi = function() { + return De; +}, Ri = function() { + return at; +}, Bi = function(t) { + Ht = t.toLowerCase().split(/[\s,]+/); +}, Zi = function() { + return Ht; +}, Xi = function(t) { + Nt = t.toLowerCase().split(/[\s,]+/); +}, qi = function() { + return Nt; +}, Gi = function() { + return we; +}, ji = function(t) { + _t = t, Ce.push(t); +}, Qi = function() { + return Ce; +}, Ji = function() { + let t = ze(); + const e = 10; + let n = 0; + for (; !t && n < e; ) + t = ze(), n++; + return Jt = K, Jt; +}, kn = function(t, e, n, r) { + return r.includes(t.format(e.trim())) ? !1 : t.isoWeekday() >= 6 && n.includes("weekends") || n.includes(t.format("dddd").toLowerCase()) ? !0 : n.includes(t.format(e.trim())); +}, Ki = function(t) { + _e = t; +}, $i = function() { + return _e; +}, pn = function(t, e, n, r) { + if (!n.length || t.manualEndTime) + return; + let i; + t.startTime instanceof Date ? i = nt(t.startTime) : i = nt(t.startTime, e, !0), i = i.add(1, "d"); + let s; + t.endTime instanceof Date ? s = nt(t.endTime) : s = nt(t.endTime, e, !0); + const [a, k] = ts( + i, + s, + e, + n, + r + ); + t.endTime = a.toDate(), t.renderEndTime = k; +}, ts = function(t, e, n, r, i) { + let s = !1, a = null; + for (; t <= e; ) + s || (a = e.toDate()), s = kn(t, n, r, i), s && (e = e.add(1, "d")), t = t.add(1, "d"); + return [e, a]; +}, me = function(t, e, n) { + n = n.trim(); + const i = /^after\s+(?[\d\w- ]+)/.exec(n); + if (i !== null) { + let a = null; + for (const Y of i.groups.ids.split(" ")) { + let g = vt(Y); + g !== void 0 && (!a || g.endTime > a.endTime) && (a = g); + } + if (a) + return a.endTime; + const k = /* @__PURE__ */ new Date(); + return k.setHours(0, 0, 0, 0), k; + } + let s = nt(n, e.trim(), !0); + if (s.isValid()) + return s.toDate(); + { + qt.debug("Invalid date:" + n), qt.debug("With date format:" + e.trim()); + const a = new Date(n); + if (a === void 0 || isNaN(a.getTime()) || // WebKit browsers can mis-parse invalid dates to be ridiculously + // huge numbers, e.g. new Date('202304') gets parsed as January 1, 202304. + // This can cause virtually infinite loops while rendering, so for the + // purposes of Gantt charts we'll just treat any date beyond 10,000 AD/BC as + // invalid. + a.getFullYear() < -1e4 || a.getFullYear() > 1e4) + throw new Error("Invalid date:" + n); + return a; + } +}, Tn = function(t) { + const e = /^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim()); + return e !== null ? [Number.parseFloat(e[1]), e[2]] : [NaN, "ms"]; +}, bn = function(t, e, n, r = !1) { + n = n.trim(); + const s = /^until\s+(?[\d\w- ]+)/.exec(n); + if (s !== null) { + let v = null; + for (const C of s.groups.ids.split(" ")) { + let b = vt(C); + b !== void 0 && (!v || b.startTime < v.startTime) && (v = b); + } + if (v) + return v.startTime; + const U = /* @__PURE__ */ new Date(); + return U.setHours(0, 0, 0, 0), U; + } + let a = nt(n, e.trim(), !0); + if (a.isValid()) + return r && (a = a.add(1, "d")), a.toDate(); + let k = nt(t); + const [Y, g] = Tn(n); + if (!Number.isNaN(Y)) { + const v = k.add(Y, g); + v.isValid() && (k = v); + } + return k.toDate(); +}; +let Zt = 0; +const Dt = function(t) { + return t === void 0 ? (Zt = Zt + 1, "task" + Zt) : t; +}, es = function(t, e) { + let n; + e.substr(0, 1) === ":" ? n = e.substr(1, e.length) : n = e; + const r = n.split(","), i = {}; + Cn(r, i, yn); + for (let a = 0; a < r.length; a++) + r[a] = r[a].trim(); + let s = ""; + switch (r.length) { + case 1: + i.id = Dt(), i.startTime = t.endTime, s = r[0]; + break; + case 2: + i.id = Dt(), i.startTime = me(void 0, at, r[0]), s = r[1]; + break; + case 3: + i.id = Dt(r[0]), i.startTime = me(void 0, at, r[1]), s = r[2]; + break; + } + return s && (i.endTime = bn(i.startTime, at, s, Vt), i.manualEndTime = nt(s, "YYYY-MM-DD", !0).isValid(), pn(i, at, Nt, Ht)), i; +}, ns = function(t, e) { + let n; + e.substr(0, 1) === ":" ? n = e.substr(1, e.length) : n = e; + const r = n.split(","), i = {}; + Cn(r, i, yn); + for (let s = 0; s < r.length; s++) + r[s] = r[s].trim(); + switch (r.length) { + case 1: + i.id = Dt(), i.startTime = { + type: "prevTaskEnd", + id: t + }, i.endTime = { + data: r[0] + }; + break; + case 2: + i.id = Dt(), i.startTime = { + type: "getStartDate", + startData: r[0] + }, i.endTime = { + data: r[1] + }; + break; + case 3: + i.id = Dt(r[0]), i.startTime = { + type: "getStartDate", + startData: r[1] + }, i.endTime = { + data: r[2] + }; + break; + } + return i; +}; +let ge, Xt, K = []; +const vn = {}, rs = function(t, e) { + const n = { + section: _t, + type: _t, + processed: !1, + manualEndTime: !1, + renderEndTime: null, + raw: { data: e }, + task: t, + classes: [] + }, r = ns(Xt, e); + n.raw.startTime = r.startTime, n.raw.endTime = r.endTime, n.id = r.id, n.prevTaskId = Xt, n.active = r.active, n.done = r.done, n.crit = r.crit, n.milestone = r.milestone, n.order = de, de++; + const i = K.push(n); + Xt = n.id, vn[n.id] = i - 1; +}, vt = function(t) { + const e = vn[t]; + return K[e]; +}, is = function(t, e) { + const n = { + section: _t, + type: _t, + description: t, + task: t, + classes: [] + }, r = es(ge, e); + n.startTime = r.startTime, n.endTime = r.endTime, n.id = r.id, n.active = r.active, n.done = r.done, n.crit = r.crit, n.milestone = r.milestone, ge = n, Jt.push(n); +}, ze = function() { + const t = function(n) { + const r = K[n]; + let i = ""; + switch (K[n].raw.startTime.type) { + case "prevTaskEnd": { + const s = vt(r.prevTaskId); + r.startTime = s.endTime; + break; + } + case "getStartDate": + i = me(void 0, at, K[n].raw.startTime.startData), i && (K[n].startTime = i); + break; + } + return K[n].startTime && (K[n].endTime = bn( + K[n].startTime, + at, + K[n].raw.endTime.data, + Vt + ), K[n].endTime && (K[n].processed = !0, K[n].manualEndTime = nt( + K[n].raw.endTime.data, + "YYYY-MM-DD", + !0 + ).isValid(), pn(K[n], at, Nt, Ht))), K[n].processed; + }; + let e = !0; + for (const [n, r] of K.entries()) + t(n), e = e && r.processed; + return e; +}, ss = function(t, e) { + let n = e; + wt().securityLevel !== "loose" && (n = An.sanitizeUrl(e)), t.split(",").forEach(function(r) { + vt(r) !== void 0 && (wn(r, () => { + window.open(n, "_self"); + }), we[r] = n); + }), xn(t, "clickable"); +}, xn = function(t, e) { + t.split(",").forEach(function(n) { + let r = vt(n); + r !== void 0 && r.classes.push(e); + }); +}, as = function(t, e, n) { + if (wt().securityLevel !== "loose" || e === void 0) + return; + let r = []; + if (typeof n == "string") { + r = n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/); + for (let s = 0; s < r.length; s++) { + let a = r[s].trim(); + a.charAt(0) === '"' && a.charAt(a.length - 1) === '"' && (a = a.substr(1, a.length - 2)), r[s] = a; + } + } + r.length === 0 && r.push(t), vt(t) !== void 0 && wn(t, () => { + In.runFunc(e, ...r); + }); +}, wn = function(t, e) { + Me.push( + function() { + const n = document.querySelector(`[id="${t}"]`); + n !== null && n.addEventListener("click", function() { + e(); + }); + }, + function() { + const n = document.querySelector(`[id="${t}-text"]`); + n !== null && n.addEventListener("click", function() { + e(); + }); + } + ); +}, os = function(t, e, n) { + t.split(",").forEach(function(r) { + as(r, e, n); + }), xn(t, "clickable"); +}, cs = function(t) { + Me.forEach(function(e) { + e(t); + }); +}, ls = { + getConfig: () => wt().gantt, + clear: Ui, + setDateFormat: Wi, + getDateFormat: Ri, + enableInclusiveEndDates: Oi, + endDatesAreInclusive: Hi, + enableTopAxis: Ni, + topAxisEnabled: Vi, + setAxisFormat: Yi, + getAxisFormat: Fi, + setTickInterval: Li, + getTickInterval: Ei, + setTodayMarker: Ai, + getTodayMarker: Ii, + setAccTitle: Sn, + getAccTitle: _n, + setDiagramTitle: Un, + getDiagramTitle: Yn, + setDisplayMode: Pi, + getDisplayMode: zi, + setAccDescription: Fn, + getAccDescription: Ln, + addSection: ji, + getSections: Qi, + getTasks: Ji, + addTask: rs, + findTaskById: vt, + addTaskOrg: is, + setIncludes: Bi, + getIncludes: Zi, + setExcludes: Xi, + getExcludes: qi, + setClickEvent: os, + setLink: ss, + getLinks: Gi, + bindFunctions: cs, + parseDuration: Tn, + isInvalidDate: kn, + setWeekday: Ki, + getWeekday: $i +}; +function Cn(t, e, n) { + let r = !0; + for (; r; ) + r = !1, n.forEach(function(i) { + const s = "^\\s*" + i + "\\s*$", a = new RegExp(s); + t[0].match(a) && (e[i] = !0, t.shift(1), r = !0); + }); +} +const us = function() { + qt.debug("Something is calling, setConf, remove the call"); +}, Re = { + monday: It, + tuesday: nn, + wednesday: rn, + thursday: kt, + friday: sn, + saturday: an, + sunday: Ot +}, fs = (t, e) => { + let n = [...t].map(() => -1 / 0), r = [...t].sort((s, a) => s.startTime - a.startTime || s.order - a.order), i = 0; + for (const s of r) + for (let a = 0; a < n.length; a++) + if (s.startTime >= n[a]) { + n[a] = s.endTime, s.order = a + e, a > i && (i = a); + break; + } + return i; +}; +let lt; +const hs = function(t, e, n, r) { + const i = wt().gantt, s = wt().securityLevel; + let a; + s === "sandbox" && (a = zt("#i" + e)); + const k = s === "sandbox" ? zt(a.nodes()[0].contentDocument.body) : zt("body"), Y = s === "sandbox" ? a.nodes()[0].contentDocument : document, g = Y.getElementById(e); + lt = g.parentElement.offsetWidth, lt === void 0 && (lt = 1200), i.useWidth !== void 0 && (lt = i.useWidth); + const v = r.db.getTasks(); + let U = []; + for (const T of v) + U.push(T.type); + U = A(U); + const C = {}; + let b = 2 * i.topPadding; + if (r.db.getDisplayMode() === "compact" || i.displayMode === "compact") { + const T = {}; + for (const D of v) + T[D.section] === void 0 ? T[D.section] = [D] : T[D.section].push(D); + let F = 0; + for (const D of Object.keys(T)) { + const w = fs(T[D], F) + 1; + F += w, b += w * (i.barHeight + i.barGap), C[D] = w; + } + } else { + b += v.length * (i.barHeight + i.barGap); + for (const T of U) + C[T] = v.filter((F) => F.type === T).length; + } + g.setAttribute("viewBox", "0 0 " + lt + " " + b); + const q = k.select(`[id="${e}"]`), y = vi().domain([ + Bn(v, function(T) { + return T.startTime; + }), + Rn(v, function(T) { + return T.endTime; + }) + ]).rangeRound([0, lt - i.leftPadding - i.rightPadding]); + function L(T, F) { + const D = T.startTime, w = F.startTime; + let o = 0; + return D > w ? o = 1 : D < w && (o = -1), o; + } + v.sort(L), O(v, lt, b), Wn(q, b, lt, i.useMaxWidth), q.append("text").text(r.db.getDiagramTitle()).attr("x", lt / 2).attr("y", i.titleTopMargin).attr("class", "titleText"); + function O(T, F, D) { + const w = i.barHeight, o = w + i.barGap, d = i.topPadding, m = i.leftPadding, u = Pn().domain([0, U.length]).range(["#00B9FA", "#F95002"]).interpolate(sr); + B( + o, + d, + m, + F, + D, + T, + r.db.getExcludes(), + r.db.getIncludes() + ), Z(m, d, F, D), W(T, o, d, m, w, u, F), Q(o, d), x(m, d, F, D); + } + function W(T, F, D, w, o, d, m) { + const S = [...new Set(T.map((h) => h.order))].map((h) => T.find((_) => _.order === h)); + q.append("g").selectAll("rect").data(S).enter().append("rect").attr("x", 0).attr("y", function(h, _) { + return _ = h.order, _ * F + D - 2; + }).attr("width", function() { + return m - i.rightPadding / 2; + }).attr("height", F).attr("class", function(h) { + for (const [_, G] of U.entries()) + if (h.type === G) + return "section section" + _ % i.numberSectionStyles; + return "section section0"; + }); + const c = q.append("g").selectAll("rect").data(T).enter(), X = r.db.getLinks(); + if (c.append("rect").attr("id", function(h) { + return h.id; + }).attr("rx", 3).attr("ry", 3).attr("x", function(h) { + return h.milestone ? y(h.startTime) + w + 0.5 * (y(h.endTime) - y(h.startTime)) - 0.5 * o : y(h.startTime) + w; + }).attr("y", function(h, _) { + return _ = h.order, _ * F + D; + }).attr("width", function(h) { + return h.milestone ? o : y(h.renderEndTime || h.endTime) - y(h.startTime); + }).attr("height", o).attr("transform-origin", function(h, _) { + return _ = h.order, (y(h.startTime) + w + 0.5 * (y(h.endTime) - y(h.startTime))).toString() + "px " + (_ * F + D + 0.5 * o).toString() + "px"; + }).attr("class", function(h) { + const _ = "task"; + let G = ""; + h.classes.length > 0 && (G = h.classes.join(" ")); + let H = 0; + for (const [I, P] of U.entries()) + h.type === P && (H = I % i.numberSectionStyles); + let V = ""; + return h.active ? h.crit ? V += " activeCrit" : V = " active" : h.done ? h.crit ? V = " doneCrit" : V = " done" : h.crit && (V += " crit"), V.length === 0 && (V = " task"), h.milestone && (V = " milestone " + V), V += H, V += " " + G, _ + V; + }), c.append("text").attr("id", function(h) { + return h.id + "-text"; + }).text(function(h) { + return h.task; + }).attr("font-size", i.fontSize).attr("x", function(h) { + let _ = y(h.startTime), G = y(h.renderEndTime || h.endTime); + h.milestone && (_ += 0.5 * (y(h.endTime) - y(h.startTime)) - 0.5 * o), h.milestone && (G = _ + o); + const H = this.getBBox().width; + return H > G - _ ? G + H + 1.5 * i.leftPadding > m ? _ + w - 5 : G + w + 5 : (G - _) / 2 + _ + w; + }).attr("y", function(h, _) { + return _ = h.order, _ * F + i.barHeight / 2 + (i.fontSize / 2 - 2) + D; + }).attr("text-height", o).attr("class", function(h) { + const _ = y(h.startTime); + let G = y(h.endTime); + h.milestone && (G = _ + o); + const H = this.getBBox().width; + let V = ""; + h.classes.length > 0 && (V = h.classes.join(" ")); + let I = 0; + for (const [st, it] of U.entries()) + h.type === it && (I = st % i.numberSectionStyles); + let P = ""; + return h.active && (h.crit ? P = "activeCritText" + I : P = "activeText" + I), h.done ? h.crit ? P = P + " doneCritText" + I : P = P + " doneText" + I : h.crit && (P = P + " critText" + I), h.milestone && (P += " milestoneText"), H > G - _ ? G + H + 1.5 * i.leftPadding > m ? V + " taskTextOutsideLeft taskTextOutside" + I + " " + P : V + " taskTextOutsideRight taskTextOutside" + I + " " + P + " width-" + H : V + " taskText taskText" + I + " " + P + " width-" + H; + }), wt().securityLevel === "sandbox") { + let h; + h = zt("#i" + e); + const _ = h.nodes()[0].contentDocument; + c.filter(function(G) { + return X[G.id] !== void 0; + }).each(function(G) { + var H = _.querySelector("#" + G.id), V = _.querySelector("#" + G.id + "-text"); + const I = H.parentNode; + var P = _.createElement("a"); + P.setAttribute("xlink:href", X[G.id]), P.setAttribute("target", "_top"), I.appendChild(P), P.appendChild(H), P.appendChild(V); + }); + } + } + function B(T, F, D, w, o, d, m, u) { + if (m.length === 0 && u.length === 0) + return; + let S, c; + for (const { startTime: H, endTime: V } of d) + (S === void 0 || H < S) && (S = H), (c === void 0 || V > c) && (c = V); + if (!S || !c) + return; + if (nt(c).diff(nt(S), "year") > 5) { + qt.warn( + "The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days." + ); + return; + } + const X = r.db.getDateFormat(), f = []; + let h = null, _ = nt(S); + for (; _.valueOf() <= c; ) + r.db.isInvalidDate(_, X, m, u) ? h ? h.end = _ : h = { + start: _, + end: _ + } : h && (f.push(h), h = null), _ = _.add(1, "d"); + q.append("g").selectAll("rect").data(f).enter().append("rect").attr("id", function(H) { + return "exclude-" + H.start.format("YYYY-MM-DD"); + }).attr("x", function(H) { + return y(H.start) + D; + }).attr("y", i.gridLineStartPadding).attr("width", function(H) { + const V = H.end.add(1, "day"); + return y(V) - y(H.start); + }).attr("height", o - F - i.gridLineStartPadding).attr("transform-origin", function(H, V) { + return (y(H.start) + D + 0.5 * (y(H.end) - y(H.start))).toString() + "px " + (V * T + 0.5 * o).toString() + "px"; + }).attr("class", "exclude-range"); + } + function Z(T, F, D, w) { + let o = Kn(y).tickSize(-w + F + i.gridLineStartPadding).tickFormat(Qt(r.db.getAxisFormat() || i.axisFormat || "%Y-%m-%d")); + const m = /^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec( + r.db.getTickInterval() || i.tickInterval + ); + if (m !== null) { + const u = m[1], S = m[2], c = r.db.getWeekday() || i.weekday; + switch (S) { + case "millisecond": + o.ticks(Mt.every(u)); + break; + case "second": + o.ticks(gt.every(u)); + break; + case "minute": + o.ticks(Et.every(u)); + break; + case "hour": + o.ticks(At.every(u)); + break; + case "day": + o.ticks(yt.every(u)); + break; + case "week": + o.ticks(Re[c].every(u)); + break; + case "month": + o.ticks(Wt.every(u)); + break; + } + } + if (q.append("g").attr("class", "grid").attr("transform", "translate(" + T + ", " + (w - 50) + ")").call(o).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10).attr("dy", "1em"), r.db.topAxisEnabled() || i.topAxis) { + let u = Jn(y).tickSize(-w + F + i.gridLineStartPadding).tickFormat(Qt(r.db.getAxisFormat() || i.axisFormat || "%Y-%m-%d")); + if (m !== null) { + const S = m[1], c = m[2], X = r.db.getWeekday() || i.weekday; + switch (c) { + case "millisecond": + u.ticks(Mt.every(S)); + break; + case "second": + u.ticks(gt.every(S)); + break; + case "minute": + u.ticks(Et.every(S)); + break; + case "hour": + u.ticks(At.every(S)); + break; + case "day": + u.ticks(yt.every(S)); + break; + case "week": + u.ticks(Re[X].every(S)); + break; + case "month": + u.ticks(Wt.every(S)); + break; + } + } + q.append("g").attr("class", "grid").attr("transform", "translate(" + T + ", " + F + ")").call(u).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10); + } + } + function Q(T, F) { + let D = 0; + const w = Object.keys(C).map((o) => [o, C[o]]); + q.append("g").selectAll("text").data(w).enter().append(function(o) { + const d = o[0].split(On.lineBreakRegex), m = -(d.length - 1) / 2, u = Y.createElementNS("http://www.w3.org/2000/svg", "text"); + u.setAttribute("dy", m + "em"); + for (const [S, c] of d.entries()) { + const X = Y.createElementNS("http://www.w3.org/2000/svg", "tspan"); + X.setAttribute("alignment-baseline", "central"), X.setAttribute("x", "10"), S > 0 && X.setAttribute("dy", "1em"), X.textContent = c, u.appendChild(X); + } + return u; + }).attr("x", 10).attr("y", function(o, d) { + if (d > 0) + for (let m = 0; m < d; m++) + return D += w[d - 1][1], o[1] * T / 2 + D * T + F; + else + return o[1] * T / 2 + F; + }).attr("font-size", i.sectionFontSize).attr("class", function(o) { + for (const [d, m] of U.entries()) + if (o[0] === m) + return "sectionTitle sectionTitle" + d % i.numberSectionStyles; + return "sectionTitle"; + }); + } + function x(T, F, D, w) { + const o = r.db.getTodayMarker(); + if (o === "off") + return; + const d = q.append("g").attr("class", "today"), m = /* @__PURE__ */ new Date(), u = d.append("line"); + u.attr("x1", y(m) + T).attr("x2", y(m) + T).attr("y1", i.titleTopMargin).attr("y2", w - i.titleTopMargin).attr("class", "today"), o !== "" && u.attr("style", o.replace(/,/g, ";")); + } + function A(T) { + const F = {}, D = []; + for (let w = 0, o = T.length; w < o; ++w) + Object.prototype.hasOwnProperty.call(F, T[w]) || (F[T[w]] = !0, D.push(T[w])); + return D; + } +}, ds = { + setConf: us, + draw: hs +}, ms = (t) => ` + .mermaid-main-font { + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .exclude-range { + fill: ${t.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${t.sectionBkgColor}; + } + + .section2 { + fill: ${t.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${t.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${t.titleColor}; + } + + .sectionTitle1 { + fill: ${t.titleColor}; + } + + .sectionTitle2 { + fill: ${t.titleColor}; + } + + .sectionTitle3 { + fill: ${t.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${t.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${t.fontFamily}; + fill: ${t.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${t.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideRight { + fill: ${t.taskTextDarkColor}; + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideLeft { + fill: ${t.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${t.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${t.taskBkgColor}; + stroke: ${t.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${t.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${t.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${t.activeTaskBkgColor}; + stroke: ${t.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${t.doneTaskBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${t.critBorderColor}; + fill: ${t.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.titleColor || t.textColor}; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } +`, gs = ms, Ts = { + parser: xi, + db: ls, + renderer: ds, + styles: gs +}; +export { + Ts as diagram +}; diff --git a/assets/lib/mermaid/ganttDiagram-b62c793e.js b/assets/lib/mermaid/ganttDiagram-b62c793e.js new file mode 100644 index 000000000..4abe26397 --- /dev/null +++ b/assets/lib/mermaid/ganttDiagram-b62c793e.js @@ -0,0 +1,2061 @@ +import { sanitizeUrl } from "@braintree/sanitize-url"; +import dayjs from "dayjs"; +import dayjsIsoWeek from "dayjs/plugin/isoWeek.js"; +import dayjsCustomParseFormat from "dayjs/plugin/customParseFormat.js"; +import dayjsAdvancedFormat from "dayjs/plugin/advancedFormat.js"; +import { c as getConfig, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, t as getDiagramTitle, b as setAccDescription, a as getAccDescription, v as clear$1, u as utils, l as log, i as configureSvgSize, e as common } from "./mermaid-6dc72991.js"; +import { select, scaleTime, min, max, scaleLinear, interpolateHcl, axisBottom, timeFormat, timeMonth, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, axisTop, timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday } from "d3"; +import "ts-dedent"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [6, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33, 35, 37], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 29], $V6 = [1, 30], $V7 = [1, 31], $V8 = [1, 9], $V9 = [1, 10], $Va = [1, 11], $Vb = [1, 12], $Vc = [1, 13], $Vd = [1, 14], $Ve = [1, 15], $Vf = [1, 16], $Vg = [1, 18], $Vh = [1, 19], $Vi = [1, 20], $Vj = [1, 21], $Vk = [1, 22], $Vl = [1, 24], $Vm = [1, 32]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "gantt": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NL": 10, "weekday": 11, "weekday_monday": 12, "weekday_tuesday": 13, "weekday_wednesday": 14, "weekday_thursday": 15, "weekday_friday": 16, "weekday_saturday": 17, "weekday_sunday": 18, "dateFormat": 19, "inclusiveEndDates": 20, "topAxis": 21, "axisFormat": 22, "tickInterval": 23, "excludes": 24, "includes": 25, "todayMarker": 26, "title": 27, "acc_title": 28, "acc_title_value": 29, "acc_descr": 30, "acc_descr_value": 31, "acc_descr_multiline_value": 32, "section": 33, "clickStatement": 34, "taskTxt": 35, "taskData": 36, "click": 37, "callbackname": 38, "callbackargs": 39, "href": 40, "clickStatementDebug": 41, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "gantt", 6: "EOF", 8: "SPACE", 10: "NL", 12: "weekday_monday", 13: "weekday_tuesday", 14: "weekday_wednesday", 15: "weekday_thursday", 16: "weekday_friday", 17: "weekday_saturday", 18: "weekday_sunday", 19: "dateFormat", 20: "inclusiveEndDates", 21: "topAxis", 22: "axisFormat", 23: "tickInterval", 24: "excludes", 25: "includes", 26: "todayMarker", 27: "title", 28: "acc_title", 29: "acc_title_value", 30: "acc_descr", 31: "acc_descr_value", 32: "acc_descr_multiline_value", 33: "section", 35: "taskTxt", 36: "taskData", 37: "click", 38: "callbackname", 39: "callbackargs", 40: "href" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [34, 2], [34, 3], [34, 3], [34, 4], [34, 3], [34, 4], [34, 2], [41, 2], [41, 3], [41, 3], [41, 4], [41, 3], [41, 4], [41, 2]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 1: + return $$[$0 - 1]; + case 2: + this.$ = []; + break; + case 3: + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + break; + case 4: + case 5: + this.$ = $$[$0]; + break; + case 6: + case 7: + this.$ = []; + break; + case 8: + yy.setWeekday("monday"); + break; + case 9: + yy.setWeekday("tuesday"); + break; + case 10: + yy.setWeekday("wednesday"); + break; + case 11: + yy.setWeekday("thursday"); + break; + case 12: + yy.setWeekday("friday"); + break; + case 13: + yy.setWeekday("saturday"); + break; + case 14: + yy.setWeekday("sunday"); + break; + case 15: + yy.setDateFormat($$[$0].substr(11)); + this.$ = $$[$0].substr(11); + break; + case 16: + yy.enableInclusiveEndDates(); + this.$ = $$[$0].substr(18); + break; + case 17: + yy.TopAxis(); + this.$ = $$[$0].substr(8); + break; + case 18: + yy.setAxisFormat($$[$0].substr(11)); + this.$ = $$[$0].substr(11); + break; + case 19: + yy.setTickInterval($$[$0].substr(13)); + this.$ = $$[$0].substr(13); + break; + case 20: + yy.setExcludes($$[$0].substr(9)); + this.$ = $$[$0].substr(9); + break; + case 21: + yy.setIncludes($$[$0].substr(9)); + this.$ = $$[$0].substr(9); + break; + case 22: + yy.setTodayMarker($$[$0].substr(12)); + this.$ = $$[$0].substr(12); + break; + case 24: + yy.setDiagramTitle($$[$0].substr(6)); + this.$ = $$[$0].substr(6); + break; + case 25: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 26: + case 27: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 28: + yy.addSection($$[$0].substr(8)); + this.$ = $$[$0].substr(8); + break; + case 30: + yy.addTask($$[$0 - 1], $$[$0]); + this.$ = "task"; + break; + case 31: + this.$ = $$[$0 - 1]; + yy.setClickEvent($$[$0 - 1], $$[$0], null); + break; + case 32: + this.$ = $$[$0 - 2]; + yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]); + break; + case 33: + this.$ = $$[$0 - 2]; + yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null); + yy.setLink($$[$0 - 2], $$[$0]); + break; + case 34: + this.$ = $$[$0 - 3]; + yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]); + yy.setLink($$[$0 - 3], $$[$0]); + break; + case 35: + this.$ = $$[$0 - 2]; + yy.setClickEvent($$[$0 - 2], $$[$0], null); + yy.setLink($$[$0 - 2], $$[$0 - 1]); + break; + case 36: + this.$ = $$[$0 - 3]; + yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]); + yy.setLink($$[$0 - 3], $$[$0 - 2]); + break; + case 37: + this.$ = $$[$0 - 1]; + yy.setLink($$[$0 - 1], $$[$0]); + break; + case 38: + case 44: + this.$ = $$[$0 - 1] + " " + $$[$0]; + break; + case 39: + case 40: + case 42: + this.$ = $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0]; + break; + case 41: + case 43: + this.$ = $$[$0 - 3] + " " + $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0]; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 33, 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), o($V0, [2, 18]), o($V0, [2, 19]), o($V0, [2, 20]), o($V0, [2, 21]), o($V0, [2, 22]), o($V0, [2, 23]), o($V0, [2, 24]), { 29: [1, 34] }, { 31: [1, 35] }, o($V0, [2, 27]), o($V0, [2, 28]), o($V0, [2, 29]), { 36: [1, 36] }, o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), { 38: [1, 37], 40: [1, 38] }, o($V0, [2, 4]), o($V0, [2, 25]), o($V0, [2, 26]), o($V0, [2, 30]), o($V0, [2, 31], { 39: [1, 39], 40: [1, 40] }), o($V0, [2, 37], { 38: [1, 41] }), o($V0, [2, 32], { 40: [1, 42] }), o($V0, [2, 33]), o($V0, [2, 35], { 39: [1, 43] }), o($V0, [2, 34]), o($V0, [2, 36])], + defaultActions: {}, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + this.begin("open_directive"); + return "open_directive"; + case 1: + this.begin("acc_title"); + return 28; + case 2: + this.popState(); + return "acc_title_value"; + case 3: + this.begin("acc_descr"); + return 30; + case 4: + this.popState(); + return "acc_descr_value"; + case 5: + this.begin("acc_descr_multiline"); + break; + case 6: + this.popState(); + break; + case 7: + return "acc_descr_multiline_value"; + case 8: + break; + case 9: + break; + case 10: + break; + case 11: + return 10; + case 12: + break; + case 13: + break; + case 14: + this.begin("href"); + break; + case 15: + this.popState(); + break; + case 16: + return 40; + case 17: + this.begin("callbackname"); + break; + case 18: + this.popState(); + break; + case 19: + this.popState(); + this.begin("callbackargs"); + break; + case 20: + return 38; + case 21: + this.popState(); + break; + case 22: + return 39; + case 23: + this.begin("click"); + break; + case 24: + this.popState(); + break; + case 25: + return 37; + case 26: + return 4; + case 27: + return 19; + case 28: + return 20; + case 29: + return 21; + case 30: + return 22; + case 31: + return 23; + case 32: + return 25; + case 33: + return 24; + case 34: + return 26; + case 35: + return 12; + case 36: + return 13; + case 37: + return 14; + case 38: + return 15; + case 39: + return 16; + case 40: + return 17; + case 41: + return 18; + case 42: + return "date"; + case 43: + return 27; + case 44: + return "accDescription"; + case 45: + return 33; + case 46: + return 35; + case 47: + return 36; + case 48: + return ":"; + case 49: + return 6; + case 50: + return "INVALID"; + } + }, + rules: [/^(?:%%\{)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%(?!\{)*[^\n]*)/i, /^(?:[^\}]%%*[^\n]*)/i, /^(?:%%*[^\n]*[\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:%[^\n]*)/i, /^(?:href[\s]+["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:call[\s]+)/i, /^(?:\([\s]*\))/i, /^(?:\()/i, /^(?:[^(]*)/i, /^(?:\))/i, /^(?:[^)]*)/i, /^(?:click[\s]+)/i, /^(?:[\s\n])/i, /^(?:[^\s\n]*)/i, /^(?:gantt\b)/i, /^(?:dateFormat\s[^#\n;]+)/i, /^(?:inclusiveEndDates\b)/i, /^(?:topAxis\b)/i, /^(?:axisFormat\s[^#\n;]+)/i, /^(?:tickInterval\s[^#\n;]+)/i, /^(?:includes\s[^#\n;]+)/i, /^(?:excludes\s[^#\n;]+)/i, /^(?:todayMarker\s[^\n;]+)/i, /^(?:weekday\s+monday\b)/i, /^(?:weekday\s+tuesday\b)/i, /^(?:weekday\s+wednesday\b)/i, /^(?:weekday\s+thursday\b)/i, /^(?:weekday\s+friday\b)/i, /^(?:weekday\s+saturday\b)/i, /^(?:weekday\s+sunday\b)/i, /^(?:\d\d\d\d-\d\d-\d\d\b)/i, /^(?:title\s[^\n]+)/i, /^(?:accDescription\s[^#\n;]+)/i, /^(?:section\s[^\n]+)/i, /^(?:[^:\n]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { "acc_descr_multiline": { "rules": [6, 7], "inclusive": false }, "acc_descr": { "rules": [4], "inclusive": false }, "acc_title": { "rules": [2], "inclusive": false }, "callbackargs": { "rules": [21, 22], "inclusive": false }, "callbackname": { "rules": [18, 19, 20], "inclusive": false }, "href": { "rules": [15, 16], "inclusive": false }, "click": { "rules": [24, 25], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 17, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const ganttParser = parser; +dayjs.extend(dayjsIsoWeek); +dayjs.extend(dayjsCustomParseFormat); +dayjs.extend(dayjsAdvancedFormat); +let dateFormat = ""; +let axisFormat = ""; +let tickInterval = void 0; +let todayMarker = ""; +let includes = []; +let excludes = []; +let links = {}; +let sections = []; +let tasks = []; +let currentSection = ""; +let displayMode = ""; +const tags = ["active", "done", "crit", "milestone"]; +let funs = []; +let inclusiveEndDates = false; +let topAxis = false; +let weekday = "sunday"; +let lastOrder = 0; +const clear = function() { + sections = []; + tasks = []; + currentSection = ""; + funs = []; + taskCnt = 0; + lastTask = void 0; + lastTaskID = void 0; + rawTasks = []; + dateFormat = ""; + axisFormat = ""; + displayMode = ""; + tickInterval = void 0; + todayMarker = ""; + includes = []; + excludes = []; + inclusiveEndDates = false; + topAxis = false; + lastOrder = 0; + links = {}; + clear$1(); + weekday = "sunday"; +}; +const setAxisFormat = function(txt) { + axisFormat = txt; +}; +const getAxisFormat = function() { + return axisFormat; +}; +const setTickInterval = function(txt) { + tickInterval = txt; +}; +const getTickInterval = function() { + return tickInterval; +}; +const setTodayMarker = function(txt) { + todayMarker = txt; +}; +const getTodayMarker = function() { + return todayMarker; +}; +const setDateFormat = function(txt) { + dateFormat = txt; +}; +const enableInclusiveEndDates = function() { + inclusiveEndDates = true; +}; +const endDatesAreInclusive = function() { + return inclusiveEndDates; +}; +const enableTopAxis = function() { + topAxis = true; +}; +const topAxisEnabled = function() { + return topAxis; +}; +const setDisplayMode = function(txt) { + displayMode = txt; +}; +const getDisplayMode = function() { + return displayMode; +}; +const getDateFormat = function() { + return dateFormat; +}; +const setIncludes = function(txt) { + includes = txt.toLowerCase().split(/[\s,]+/); +}; +const getIncludes = function() { + return includes; +}; +const setExcludes = function(txt) { + excludes = txt.toLowerCase().split(/[\s,]+/); +}; +const getExcludes = function() { + return excludes; +}; +const getLinks = function() { + return links; +}; +const addSection = function(txt) { + currentSection = txt; + sections.push(txt); +}; +const getSections = function() { + return sections; +}; +const getTasks = function() { + let allItemsProcessed = compileTasks(); + const maxDepth = 10; + let iterationCount = 0; + while (!allItemsProcessed && iterationCount < maxDepth) { + allItemsProcessed = compileTasks(); + iterationCount++; + } + tasks = rawTasks; + return tasks; +}; +const isInvalidDate = function(date, dateFormat2, excludes2, includes2) { + if (includes2.includes(date.format(dateFormat2.trim()))) { + return false; + } + if (date.isoWeekday() >= 6 && excludes2.includes("weekends")) { + return true; + } + if (excludes2.includes(date.format("dddd").toLowerCase())) { + return true; + } + return excludes2.includes(date.format(dateFormat2.trim())); +}; +const setWeekday = function(txt) { + weekday = txt; +}; +const getWeekday = function() { + return weekday; +}; +const checkTaskDates = function(task, dateFormat2, excludes2, includes2) { + if (!excludes2.length || task.manualEndTime) { + return; + } + let startTime; + if (task.startTime instanceof Date) { + startTime = dayjs(task.startTime); + } else { + startTime = dayjs(task.startTime, dateFormat2, true); + } + startTime = startTime.add(1, "d"); + let originalEndTime; + if (task.endTime instanceof Date) { + originalEndTime = dayjs(task.endTime); + } else { + originalEndTime = dayjs(task.endTime, dateFormat2, true); + } + const [fixedEndTime, renderEndTime] = fixTaskDates( + startTime, + originalEndTime, + dateFormat2, + excludes2, + includes2 + ); + task.endTime = fixedEndTime.toDate(); + task.renderEndTime = renderEndTime; +}; +const fixTaskDates = function(startTime, endTime, dateFormat2, excludes2, includes2) { + let invalid = false; + let renderEndTime = null; + while (startTime <= endTime) { + if (!invalid) { + renderEndTime = endTime.toDate(); + } + invalid = isInvalidDate(startTime, dateFormat2, excludes2, includes2); + if (invalid) { + endTime = endTime.add(1, "d"); + } + startTime = startTime.add(1, "d"); + } + return [endTime, renderEndTime]; +}; +const getStartDate = function(prevTime, dateFormat2, str) { + str = str.trim(); + const afterRePattern = /^after\s+(?[\d\w- ]+)/; + const afterStatement = afterRePattern.exec(str); + if (afterStatement !== null) { + let latestTask = null; + for (const id of afterStatement.groups.ids.split(" ")) { + let task = findTaskById(id); + if (task !== void 0 && (!latestTask || task.endTime > latestTask.endTime)) { + latestTask = task; + } + } + if (latestTask) { + return latestTask.endTime; + } + const today = /* @__PURE__ */ new Date(); + today.setHours(0, 0, 0, 0); + return today; + } + let mDate = dayjs(str, dateFormat2.trim(), true); + if (mDate.isValid()) { + return mDate.toDate(); + } else { + log.debug("Invalid date:" + str); + log.debug("With date format:" + dateFormat2.trim()); + const d = new Date(str); + if (d === void 0 || isNaN(d.getTime()) || // WebKit browsers can mis-parse invalid dates to be ridiculously + // huge numbers, e.g. new Date('202304') gets parsed as January 1, 202304. + // This can cause virtually infinite loops while rendering, so for the + // purposes of Gantt charts we'll just treat any date beyond 10,000 AD/BC as + // invalid. + d.getFullYear() < -1e4 || d.getFullYear() > 1e4) { + throw new Error("Invalid date:" + str); + } + return d; + } +}; +const parseDuration = function(str) { + const statement = /^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(str.trim()); + if (statement !== null) { + return [Number.parseFloat(statement[1]), statement[2]]; + } + return [NaN, "ms"]; +}; +const getEndDate = function(prevTime, dateFormat2, str, inclusive = false) { + str = str.trim(); + const untilRePattern = /^until\s+(?[\d\w- ]+)/; + const untilStatement = untilRePattern.exec(str); + if (untilStatement !== null) { + let earliestTask = null; + for (const id of untilStatement.groups.ids.split(" ")) { + let task = findTaskById(id); + if (task !== void 0 && (!earliestTask || task.startTime < earliestTask.startTime)) { + earliestTask = task; + } + } + if (earliestTask) { + return earliestTask.startTime; + } + const today = /* @__PURE__ */ new Date(); + today.setHours(0, 0, 0, 0); + return today; + } + let parsedDate = dayjs(str, dateFormat2.trim(), true); + if (parsedDate.isValid()) { + if (inclusive) { + parsedDate = parsedDate.add(1, "d"); + } + return parsedDate.toDate(); + } + let endTime = dayjs(prevTime); + const [durationValue, durationUnit] = parseDuration(str); + if (!Number.isNaN(durationValue)) { + const newEndTime = endTime.add(durationValue, durationUnit); + if (newEndTime.isValid()) { + endTime = newEndTime; + } + } + return endTime.toDate(); +}; +let taskCnt = 0; +const parseId = function(idStr) { + if (idStr === void 0) { + taskCnt = taskCnt + 1; + return "task" + taskCnt; + } + return idStr; +}; +const compileData = function(prevTask, dataStr) { + let ds; + if (dataStr.substr(0, 1) === ":") { + ds = dataStr.substr(1, dataStr.length); + } else { + ds = dataStr; + } + const data = ds.split(","); + const task = {}; + getTaskTags(data, task, tags); + for (let i = 0; i < data.length; i++) { + data[i] = data[i].trim(); + } + let endTimeData = ""; + switch (data.length) { + case 1: + task.id = parseId(); + task.startTime = prevTask.endTime; + endTimeData = data[0]; + break; + case 2: + task.id = parseId(); + task.startTime = getStartDate(void 0, dateFormat, data[0]); + endTimeData = data[1]; + break; + case 3: + task.id = parseId(data[0]); + task.startTime = getStartDate(void 0, dateFormat, data[1]); + endTimeData = data[2]; + break; + } + if (endTimeData) { + task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates); + task.manualEndTime = dayjs(endTimeData, "YYYY-MM-DD", true).isValid(); + checkTaskDates(task, dateFormat, excludes, includes); + } + return task; +}; +const parseData = function(prevTaskId, dataStr) { + let ds; + if (dataStr.substr(0, 1) === ":") { + ds = dataStr.substr(1, dataStr.length); + } else { + ds = dataStr; + } + const data = ds.split(","); + const task = {}; + getTaskTags(data, task, tags); + for (let i = 0; i < data.length; i++) { + data[i] = data[i].trim(); + } + switch (data.length) { + case 1: + task.id = parseId(); + task.startTime = { + type: "prevTaskEnd", + id: prevTaskId + }; + task.endTime = { + data: data[0] + }; + break; + case 2: + task.id = parseId(); + task.startTime = { + type: "getStartDate", + startData: data[0] + }; + task.endTime = { + data: data[1] + }; + break; + case 3: + task.id = parseId(data[0]); + task.startTime = { + type: "getStartDate", + startData: data[1] + }; + task.endTime = { + data: data[2] + }; + break; + } + return task; +}; +let lastTask; +let lastTaskID; +let rawTasks = []; +const taskDb = {}; +const addTask = function(descr, data) { + const rawTask = { + section: currentSection, + type: currentSection, + processed: false, + manualEndTime: false, + renderEndTime: null, + raw: { data }, + task: descr, + classes: [] + }; + const taskInfo = parseData(lastTaskID, data); + rawTask.raw.startTime = taskInfo.startTime; + rawTask.raw.endTime = taskInfo.endTime; + rawTask.id = taskInfo.id; + rawTask.prevTaskId = lastTaskID; + rawTask.active = taskInfo.active; + rawTask.done = taskInfo.done; + rawTask.crit = taskInfo.crit; + rawTask.milestone = taskInfo.milestone; + rawTask.order = lastOrder; + lastOrder++; + const pos = rawTasks.push(rawTask); + lastTaskID = rawTask.id; + taskDb[rawTask.id] = pos - 1; +}; +const findTaskById = function(id) { + const pos = taskDb[id]; + return rawTasks[pos]; +}; +const addTaskOrg = function(descr, data) { + const newTask = { + section: currentSection, + type: currentSection, + description: descr, + task: descr, + classes: [] + }; + const taskInfo = compileData(lastTask, data); + newTask.startTime = taskInfo.startTime; + newTask.endTime = taskInfo.endTime; + newTask.id = taskInfo.id; + newTask.active = taskInfo.active; + newTask.done = taskInfo.done; + newTask.crit = taskInfo.crit; + newTask.milestone = taskInfo.milestone; + lastTask = newTask; + tasks.push(newTask); +}; +const compileTasks = function() { + const compileTask = function(pos) { + const task = rawTasks[pos]; + let startTime = ""; + switch (rawTasks[pos].raw.startTime.type) { + case "prevTaskEnd": { + const prevTask = findTaskById(task.prevTaskId); + task.startTime = prevTask.endTime; + break; + } + case "getStartDate": + startTime = getStartDate(void 0, dateFormat, rawTasks[pos].raw.startTime.startData); + if (startTime) { + rawTasks[pos].startTime = startTime; + } + break; + } + if (rawTasks[pos].startTime) { + rawTasks[pos].endTime = getEndDate( + rawTasks[pos].startTime, + dateFormat, + rawTasks[pos].raw.endTime.data, + inclusiveEndDates + ); + if (rawTasks[pos].endTime) { + rawTasks[pos].processed = true; + rawTasks[pos].manualEndTime = dayjs( + rawTasks[pos].raw.endTime.data, + "YYYY-MM-DD", + true + ).isValid(); + checkTaskDates(rawTasks[pos], dateFormat, excludes, includes); + } + } + return rawTasks[pos].processed; + }; + let allProcessed = true; + for (const [i, rawTask] of rawTasks.entries()) { + compileTask(i); + allProcessed = allProcessed && rawTask.processed; + } + return allProcessed; +}; +const setLink = function(ids, _linkStr) { + let linkStr = _linkStr; + if (getConfig().securityLevel !== "loose") { + linkStr = sanitizeUrl(_linkStr); + } + ids.split(",").forEach(function(id) { + let rawTask = findTaskById(id); + if (rawTask !== void 0) { + pushFun(id, () => { + window.open(linkStr, "_self"); + }); + links[id] = linkStr; + } + }); + setClass(ids, "clickable"); +}; +const setClass = function(ids, className) { + ids.split(",").forEach(function(id) { + let rawTask = findTaskById(id); + if (rawTask !== void 0) { + rawTask.classes.push(className); + } + }); +}; +const setClickFun = function(id, functionName, functionArgs) { + if (getConfig().securityLevel !== "loose") { + return; + } + if (functionName === void 0) { + return; + } + let argList = []; + if (typeof functionArgs === "string") { + argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/); + for (let i = 0; i < argList.length; i++) { + let item = argList[i].trim(); + if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') { + item = item.substr(1, item.length - 2); + } + argList[i] = item; + } + } + if (argList.length === 0) { + argList.push(id); + } + let rawTask = findTaskById(id); + if (rawTask !== void 0) { + pushFun(id, () => { + utils.runFunc(functionName, ...argList); + }); + } +}; +const pushFun = function(id, callbackFunction) { + funs.push( + function() { + const elem = document.querySelector(`[id="${id}"]`); + if (elem !== null) { + elem.addEventListener("click", function() { + callbackFunction(); + }); + } + }, + function() { + const elem = document.querySelector(`[id="${id}-text"]`); + if (elem !== null) { + elem.addEventListener("click", function() { + callbackFunction(); + }); + } + } + ); +}; +const setClickEvent = function(ids, functionName, functionArgs) { + ids.split(",").forEach(function(id) { + setClickFun(id, functionName, functionArgs); + }); + setClass(ids, "clickable"); +}; +const bindFunctions = function(element) { + funs.forEach(function(fun) { + fun(element); + }); +}; +const ganttDb = { + getConfig: () => getConfig().gantt, + clear, + setDateFormat, + getDateFormat, + enableInclusiveEndDates, + endDatesAreInclusive, + enableTopAxis, + topAxisEnabled, + setAxisFormat, + getAxisFormat, + setTickInterval, + getTickInterval, + setTodayMarker, + getTodayMarker, + setAccTitle, + getAccTitle, + setDiagramTitle, + getDiagramTitle, + setDisplayMode, + getDisplayMode, + setAccDescription, + getAccDescription, + addSection, + getSections, + getTasks, + addTask, + findTaskById, + addTaskOrg, + setIncludes, + getIncludes, + setExcludes, + getExcludes, + setClickEvent, + setLink, + getLinks, + bindFunctions, + parseDuration, + isInvalidDate, + setWeekday, + getWeekday +}; +function getTaskTags(data, task, tags2) { + let matchFound = true; + while (matchFound) { + matchFound = false; + tags2.forEach(function(t) { + const pattern = "^\\s*" + t + "\\s*$"; + const regex = new RegExp(pattern); + if (data[0].match(regex)) { + task[t] = true; + data.shift(1); + matchFound = true; + } + }); + } +} +const setConf = function() { + log.debug("Something is calling, setConf, remove the call"); +}; +const mapWeekdayToTimeFunction = { + monday: timeMonday, + tuesday: timeTuesday, + wednesday: timeWednesday, + thursday: timeThursday, + friday: timeFriday, + saturday: timeSaturday, + sunday: timeSunday +}; +const getMaxIntersections = (tasks2, orderOffset) => { + let timeline = [...tasks2].map(() => -Infinity); + let sorted = [...tasks2].sort((a, b) => a.startTime - b.startTime || a.order - b.order); + let maxIntersections = 0; + for (const element of sorted) { + for (let j = 0; j < timeline.length; j++) { + if (element.startTime >= timeline[j]) { + timeline[j] = element.endTime; + element.order = j + orderOffset; + if (j > maxIntersections) { + maxIntersections = j; + } + break; + } + } + } + return maxIntersections; +}; +let w; +const draw = function(text, id, version, diagObj) { + const conf = getConfig().gantt; + const securityLevel = getConfig().securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + const elem = doc.getElementById(id); + w = elem.parentElement.offsetWidth; + if (w === void 0) { + w = 1200; + } + if (conf.useWidth !== void 0) { + w = conf.useWidth; + } + const taskArray = diagObj.db.getTasks(); + let categories = []; + for (const element of taskArray) { + categories.push(element.type); + } + categories = checkUnique(categories); + const categoryHeights = {}; + let h = 2 * conf.topPadding; + if (diagObj.db.getDisplayMode() === "compact" || conf.displayMode === "compact") { + const categoryElements = {}; + for (const element of taskArray) { + if (categoryElements[element.section] === void 0) { + categoryElements[element.section] = [element]; + } else { + categoryElements[element.section].push(element); + } + } + let intersections = 0; + for (const category of Object.keys(categoryElements)) { + const categoryHeight = getMaxIntersections(categoryElements[category], intersections) + 1; + intersections += categoryHeight; + h += categoryHeight * (conf.barHeight + conf.barGap); + categoryHeights[category] = categoryHeight; + } + } else { + h += taskArray.length * (conf.barHeight + conf.barGap); + for (const category of categories) { + categoryHeights[category] = taskArray.filter((task) => task.type === category).length; + } + } + elem.setAttribute("viewBox", "0 0 " + w + " " + h); + const svg = root.select(`[id="${id}"]`); + const timeScale = scaleTime().domain([ + min(taskArray, function(d) { + return d.startTime; + }), + max(taskArray, function(d) { + return d.endTime; + }) + ]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]); + function taskCompare(a, b) { + const taskA = a.startTime; + const taskB = b.startTime; + let result = 0; + if (taskA > taskB) { + result = 1; + } else if (taskA < taskB) { + result = -1; + } + return result; + } + taskArray.sort(taskCompare); + makeGantt(taskArray, w, h); + configureSvgSize(svg, h, w, conf.useMaxWidth); + svg.append("text").text(diagObj.db.getDiagramTitle()).attr("x", w / 2).attr("y", conf.titleTopMargin).attr("class", "titleText"); + function makeGantt(tasks2, pageWidth, pageHeight) { + const barHeight = conf.barHeight; + const gap = barHeight + conf.barGap; + const topPadding = conf.topPadding; + const leftPadding = conf.leftPadding; + const colorScale = scaleLinear().domain([0, categories.length]).range(["#00B9FA", "#F95002"]).interpolate(interpolateHcl); + drawExcludeDays( + gap, + topPadding, + leftPadding, + pageWidth, + pageHeight, + tasks2, + diagObj.db.getExcludes(), + diagObj.db.getIncludes() + ); + makeGrid(leftPadding, topPadding, pageWidth, pageHeight); + drawRects(tasks2, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth); + vertLabels(gap, topPadding); + drawToday(leftPadding, topPadding, pageWidth, pageHeight); + } + function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w2) { + const uniqueTaskOrderIds = [...new Set(theArray.map((item) => item.order))]; + const uniqueTasks = uniqueTaskOrderIds.map((id2) => theArray.find((item) => item.order === id2)); + svg.append("g").selectAll("rect").data(uniqueTasks).enter().append("rect").attr("x", 0).attr("y", function(d, i) { + i = d.order; + return i * theGap + theTopPad - 2; + }).attr("width", function() { + return w2 - conf.rightPadding / 2; + }).attr("height", theGap).attr("class", function(d) { + for (const [i, category] of categories.entries()) { + if (d.type === category) { + return "section section" + i % conf.numberSectionStyles; + } + } + return "section section0"; + }); + const rectangles = svg.append("g").selectAll("rect").data(theArray).enter(); + const links2 = diagObj.db.getLinks(); + rectangles.append("rect").attr("id", function(d) { + return d.id; + }).attr("rx", 3).attr("ry", 3).attr("x", function(d) { + if (d.milestone) { + return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight; + } + return timeScale(d.startTime) + theSidePad; + }).attr("y", function(d, i) { + i = d.order; + return i * theGap + theTopPad; + }).attr("width", function(d) { + if (d.milestone) { + return theBarHeight; + } + return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime); + }).attr("height", theBarHeight).attr("transform-origin", function(d, i) { + i = d.order; + return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + "px " + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + "px"; + }).attr("class", function(d) { + const res = "task"; + let classStr = ""; + if (d.classes.length > 0) { + classStr = d.classes.join(" "); + } + let secNum = 0; + for (const [i, category] of categories.entries()) { + if (d.type === category) { + secNum = i % conf.numberSectionStyles; + } + } + let taskClass = ""; + if (d.active) { + if (d.crit) { + taskClass += " activeCrit"; + } else { + taskClass = " active"; + } + } else if (d.done) { + if (d.crit) { + taskClass = " doneCrit"; + } else { + taskClass = " done"; + } + } else { + if (d.crit) { + taskClass += " crit"; + } + } + if (taskClass.length === 0) { + taskClass = " task"; + } + if (d.milestone) { + taskClass = " milestone " + taskClass; + } + taskClass += secNum; + taskClass += " " + classStr; + return res + taskClass; + }); + rectangles.append("text").attr("id", function(d) { + return d.id + "-text"; + }).text(function(d) { + return d.task; + }).attr("font-size", conf.fontSize).attr("x", function(d) { + let startX = timeScale(d.startTime); + let endX = timeScale(d.renderEndTime || d.endTime); + if (d.milestone) { + startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight; + } + if (d.milestone) { + endX = startX + theBarHeight; + } + const textWidth = this.getBBox().width; + if (textWidth > endX - startX) { + if (endX + textWidth + 1.5 * conf.leftPadding > w2) { + return startX + theSidePad - 5; + } else { + return endX + theSidePad + 5; + } + } else { + return (endX - startX) / 2 + startX + theSidePad; + } + }).attr("y", function(d, i) { + i = d.order; + return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad; + }).attr("text-height", theBarHeight).attr("class", function(d) { + const startX = timeScale(d.startTime); + let endX = timeScale(d.endTime); + if (d.milestone) { + endX = startX + theBarHeight; + } + const textWidth = this.getBBox().width; + let classStr = ""; + if (d.classes.length > 0) { + classStr = d.classes.join(" "); + } + let secNum = 0; + for (const [i, category] of categories.entries()) { + if (d.type === category) { + secNum = i % conf.numberSectionStyles; + } + } + let taskType = ""; + if (d.active) { + if (d.crit) { + taskType = "activeCritText" + secNum; + } else { + taskType = "activeText" + secNum; + } + } + if (d.done) { + if (d.crit) { + taskType = taskType + " doneCritText" + secNum; + } else { + taskType = taskType + " doneText" + secNum; + } + } else { + if (d.crit) { + taskType = taskType + " critText" + secNum; + } + } + if (d.milestone) { + taskType += " milestoneText"; + } + if (textWidth > endX - startX) { + if (endX + textWidth + 1.5 * conf.leftPadding > w2) { + return classStr + " taskTextOutsideLeft taskTextOutside" + secNum + " " + taskType; + } else { + return classStr + " taskTextOutsideRight taskTextOutside" + secNum + " " + taskType + " width-" + textWidth; + } + } else { + return classStr + " taskText taskText" + secNum + " " + taskType + " width-" + textWidth; + } + }); + const securityLevel2 = getConfig().securityLevel; + if (securityLevel2 === "sandbox") { + let sandboxElement2; + sandboxElement2 = select("#i" + id); + const doc2 = sandboxElement2.nodes()[0].contentDocument; + rectangles.filter(function(d) { + return links2[d.id] !== void 0; + }).each(function(o) { + var taskRect = doc2.querySelector("#" + o.id); + var taskText = doc2.querySelector("#" + o.id + "-text"); + const oldParent = taskRect.parentNode; + var Link = doc2.createElement("a"); + Link.setAttribute("xlink:href", links2[o.id]); + Link.setAttribute("target", "_top"); + oldParent.appendChild(Link); + Link.appendChild(taskRect); + Link.appendChild(taskText); + }); + } + } + function drawExcludeDays(theGap, theTopPad, theSidePad, w2, h2, tasks2, excludes2, includes2) { + if (excludes2.length === 0 && includes2.length === 0) { + return; + } + let minTime; + let maxTime; + for (const { startTime, endTime } of tasks2) { + if (minTime === void 0 || startTime < minTime) { + minTime = startTime; + } + if (maxTime === void 0 || endTime > maxTime) { + maxTime = endTime; + } + } + if (!minTime || !maxTime) { + return; + } + if (dayjs(maxTime).diff(dayjs(minTime), "year") > 5) { + log.warn( + "The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days." + ); + return; + } + const dateFormat2 = diagObj.db.getDateFormat(); + const excludeRanges = []; + let range = null; + let d = dayjs(minTime); + while (d.valueOf() <= maxTime) { + if (diagObj.db.isInvalidDate(d, dateFormat2, excludes2, includes2)) { + if (!range) { + range = { + start: d, + end: d + }; + } else { + range.end = d; + } + } else { + if (range) { + excludeRanges.push(range); + range = null; + } + } + d = d.add(1, "d"); + } + const rectangles = svg.append("g").selectAll("rect").data(excludeRanges).enter(); + rectangles.append("rect").attr("id", function(d2) { + return "exclude-" + d2.start.format("YYYY-MM-DD"); + }).attr("x", function(d2) { + return timeScale(d2.start) + theSidePad; + }).attr("y", conf.gridLineStartPadding).attr("width", function(d2) { + const renderEnd = d2.end.add(1, "day"); + return timeScale(renderEnd) - timeScale(d2.start); + }).attr("height", h2 - theTopPad - conf.gridLineStartPadding).attr("transform-origin", function(d2, i) { + return (timeScale(d2.start) + theSidePad + 0.5 * (timeScale(d2.end) - timeScale(d2.start))).toString() + "px " + (i * theGap + 0.5 * h2).toString() + "px"; + }).attr("class", "exclude-range"); + } + function makeGrid(theSidePad, theTopPad, w2, h2) { + let bottomXAxis = axisBottom(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || "%Y-%m-%d")); + const reTickInterval = /^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/; + const resultTickInterval = reTickInterval.exec( + diagObj.db.getTickInterval() || conf.tickInterval + ); + if (resultTickInterval !== null) { + const every = resultTickInterval[1]; + const interval = resultTickInterval[2]; + const weekday2 = diagObj.db.getWeekday() || conf.weekday; + switch (interval) { + case "millisecond": + bottomXAxis.ticks(timeMillisecond.every(every)); + break; + case "second": + bottomXAxis.ticks(timeSecond.every(every)); + break; + case "minute": + bottomXAxis.ticks(timeMinute.every(every)); + break; + case "hour": + bottomXAxis.ticks(timeHour.every(every)); + break; + case "day": + bottomXAxis.ticks(timeDay.every(every)); + break; + case "week": + bottomXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every)); + break; + case "month": + bottomXAxis.ticks(timeMonth.every(every)); + break; + } + } + svg.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + (h2 - 50) + ")").call(bottomXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10).attr("dy", "1em"); + if (diagObj.db.topAxisEnabled() || conf.topAxis) { + let topXAxis = axisTop(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || "%Y-%m-%d")); + if (resultTickInterval !== null) { + const every = resultTickInterval[1]; + const interval = resultTickInterval[2]; + const weekday2 = diagObj.db.getWeekday() || conf.weekday; + switch (interval) { + case "millisecond": + topXAxis.ticks(timeMillisecond.every(every)); + break; + case "second": + topXAxis.ticks(timeSecond.every(every)); + break; + case "minute": + topXAxis.ticks(timeMinute.every(every)); + break; + case "hour": + topXAxis.ticks(timeHour.every(every)); + break; + case "day": + topXAxis.ticks(timeDay.every(every)); + break; + case "week": + topXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every)); + break; + case "month": + topXAxis.ticks(timeMonth.every(every)); + break; + } + } + svg.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + theTopPad + ")").call(topXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10); + } + } + function vertLabels(theGap, theTopPad) { + let prevGap = 0; + const numOccurrences = Object.keys(categoryHeights).map((d) => [d, categoryHeights[d]]); + svg.append("g").selectAll("text").data(numOccurrences).enter().append(function(d) { + const rows = d[0].split(common.lineBreakRegex); + const dy = -(rows.length - 1) / 2; + const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text"); + svgLabel.setAttribute("dy", dy + "em"); + for (const [j, row] of rows.entries()) { + const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan"); + tspan.setAttribute("alignment-baseline", "central"); + tspan.setAttribute("x", "10"); + if (j > 0) { + tspan.setAttribute("dy", "1em"); + } + tspan.textContent = row; + svgLabel.appendChild(tspan); + } + return svgLabel; + }).attr("x", 10).attr("y", function(d, i) { + if (i > 0) { + for (let j = 0; j < i; j++) { + prevGap += numOccurrences[i - 1][1]; + return d[1] * theGap / 2 + prevGap * theGap + theTopPad; + } + } else { + return d[1] * theGap / 2 + theTopPad; + } + }).attr("font-size", conf.sectionFontSize).attr("class", function(d) { + for (const [i, category] of categories.entries()) { + if (d[0] === category) { + return "sectionTitle sectionTitle" + i % conf.numberSectionStyles; + } + } + return "sectionTitle"; + }); + } + function drawToday(theSidePad, theTopPad, w2, h2) { + const todayMarker2 = diagObj.db.getTodayMarker(); + if (todayMarker2 === "off") { + return; + } + const todayG = svg.append("g").attr("class", "today"); + const today = /* @__PURE__ */ new Date(); + const todayLine = todayG.append("line"); + todayLine.attr("x1", timeScale(today) + theSidePad).attr("x2", timeScale(today) + theSidePad).attr("y1", conf.titleTopMargin).attr("y2", h2 - conf.titleTopMargin).attr("class", "today"); + if (todayMarker2 !== "") { + todayLine.attr("style", todayMarker2.replace(/,/g, ";")); + } + } + function checkUnique(arr) { + const hash = {}; + const result = []; + for (let i = 0, l = arr.length; i < l; ++i) { + if (!Object.prototype.hasOwnProperty.call(hash, arr[i])) { + hash[arr[i]] = true; + result.push(arr[i]); + } + } + return result; + } +}; +const ganttRenderer = { + setConf, + draw +}; +const getStyles = (options) => ` + .mermaid-main-font { + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .exclude-range { + fill: ${options.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${options.sectionBkgColor}; + } + + .section2 { + fill: ${options.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${options.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${options.titleColor}; + } + + .sectionTitle1 { + fill: ${options.titleColor}; + } + + .sectionTitle2 { + fill: ${options.titleColor}; + } + + .sectionTitle3 { + fill: ${options.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${options.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${options.fontFamily}; + fill: ${options.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${options.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideRight { + fill: ${options.taskTextDarkColor}; + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideLeft { + fill: ${options.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${options.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${options.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${options.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${options.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${options.taskBkgColor}; + stroke: ${options.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${options.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${options.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${options.activeTaskBkgColor}; + stroke: ${options.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${options.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${options.doneTaskBorderColor}; + fill: ${options.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${options.taskTextDarkColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${options.critBorderColor}; + fill: ${options.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${options.critBorderColor}; + fill: ${options.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${options.critBorderColor}; + fill: ${options.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${options.taskTextDarkColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${options.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.titleColor || options.textColor}; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } +`; +const ganttStyles = getStyles; +const diagram = { + parser: ganttParser, + db: ganttDb, + renderer: ganttRenderer, + styles: ganttStyles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/gitGraphDiagram-942e62fe.js b/assets/lib/mermaid/gitGraphDiagram-942e62fe.js new file mode 100644 index 000000000..9c5d3ac83 --- /dev/null +++ b/assets/lib/mermaid/gitGraphDiagram-942e62fe.js @@ -0,0 +1,1800 @@ +import { c as getConfig, s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, q as setDiagramTitle, t as getDiagramTitle, l as log, e as common, v as clear$2, y as random, u as utils, z as setupGraphViewbox } from "./mermaid-6dc72991.js"; +import { select } from "d3"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 3], $V1 = [1, 6], $V2 = [1, 4], $V3 = [1, 5], $V4 = [2, 5], $V5 = [1, 12], $V6 = [5, 7, 13, 19, 21, 23, 24, 26, 28, 31, 37, 40, 47], $V7 = [7, 13, 19, 21, 23, 24, 26, 28, 31, 37, 40], $V8 = [7, 12, 13, 19, 21, 23, 24, 26, 28, 31, 37, 40], $V9 = [7, 13, 47], $Va = [1, 42], $Vb = [1, 41], $Vc = [7, 13, 29, 32, 35, 38, 47], $Vd = [1, 55], $Ve = [1, 56], $Vf = [1, 57], $Vg = [7, 13, 32, 35, 42, 47]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "eol": 4, "GG": 5, "document": 6, "EOF": 7, ":": 8, "DIR": 9, "options": 10, "body": 11, "OPT": 12, "NL": 13, "line": 14, "statement": 15, "commitStatement": 16, "mergeStatement": 17, "cherryPickStatement": 18, "acc_title": 19, "acc_title_value": 20, "acc_descr": 21, "acc_descr_value": 22, "acc_descr_multiline_value": 23, "section": 24, "branchStatement": 25, "CHECKOUT": 26, "ref": 27, "BRANCH": 28, "ORDER": 29, "NUM": 30, "CHERRY_PICK": 31, "COMMIT_ID": 32, "STR": 33, "PARENT_COMMIT": 34, "COMMIT_TAG": 35, "EMPTYSTR": 36, "MERGE": 37, "COMMIT_TYPE": 38, "commitType": 39, "COMMIT": 40, "commit_arg": 41, "COMMIT_MSG": 42, "NORMAL": 43, "REVERSE": 44, "HIGHLIGHT": 45, "ID": 46, ";": 47, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 5: "GG", 7: "EOF", 8: ":", 9: "DIR", 12: "OPT", 13: "NL", 19: "acc_title", 20: "acc_title_value", 21: "acc_descr", 22: "acc_descr_value", 23: "acc_descr_multiline_value", 24: "section", 26: "CHECKOUT", 28: "BRANCH", 29: "ORDER", 30: "NUM", 31: "CHERRY_PICK", 32: "COMMIT_ID", 33: "STR", 34: "PARENT_COMMIT", 35: "COMMIT_TAG", 36: "EMPTYSTR", 37: "MERGE", 38: "COMMIT_TYPE", 40: "COMMIT", 42: "COMMIT_MSG", 43: "NORMAL", 44: "REVERSE", 45: "HIGHLIGHT", 46: "ID", 47: ";" }, + productions_: [0, [3, 2], [3, 3], [3, 4], [3, 5], [6, 0], [6, 2], [10, 2], [10, 1], [11, 0], [11, 2], [14, 2], [14, 1], [15, 1], [15, 1], [15, 1], [15, 2], [15, 2], [15, 1], [15, 1], [15, 1], [15, 2], [25, 2], [25, 4], [18, 3], [18, 5], [18, 5], [18, 7], [18, 7], [18, 5], [18, 5], [18, 5], [18, 7], [18, 7], [18, 7], [18, 7], [17, 2], [17, 4], [17, 4], [17, 4], [17, 6], [17, 6], [17, 6], [17, 6], [17, 6], [17, 6], [17, 8], [17, 8], [17, 8], [17, 8], [17, 8], [17, 8], [16, 2], [16, 3], [16, 3], [16, 5], [16, 5], [16, 3], [16, 5], [16, 5], [16, 5], [16, 5], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 3], [16, 5], [16, 5], [16, 5], [16, 5], [16, 5], [16, 5], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [41, 0], [41, 1], [39, 1], [39, 1], [39, 1], [27, 1], [27, 1], [4, 1], [4, 1], [4, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 2: + return $$[$0]; + case 3: + return $$[$0 - 1]; + case 4: + yy.setDirection($$[$0 - 3]); + return $$[$0 - 1]; + case 6: + yy.setOptions($$[$0 - 1]); + this.$ = $$[$0]; + break; + case 7: + $$[$0 - 1] += $$[$0]; + this.$ = $$[$0 - 1]; + break; + case 9: + this.$ = []; + break; + case 10: + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + break; + case 11: + this.$ = $$[$0 - 1]; + break; + case 16: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 17: + case 18: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 19: + yy.addSection($$[$0].substr(8)); + this.$ = $$[$0].substr(8); + break; + case 21: + yy.checkout($$[$0]); + break; + case 22: + yy.branch($$[$0]); + break; + case 23: + yy.branch($$[$0 - 2], $$[$0]); + break; + case 24: + yy.cherryPick($$[$0], "", void 0); + break; + case 25: + yy.cherryPick($$[$0 - 2], "", void 0, $$[$0]); + break; + case 26: + yy.cherryPick($$[$0 - 2], "", $$[$0]); + break; + case 27: + yy.cherryPick($$[$0 - 4], "", $$[$0], $$[$0 - 2]); + break; + case 28: + yy.cherryPick($$[$0 - 4], "", $$[$0 - 2], $$[$0]); + break; + case 29: + yy.cherryPick($$[$0], "", $$[$0 - 2]); + break; + case 30: + yy.cherryPick($$[$0], "", ""); + break; + case 31: + yy.cherryPick($$[$0 - 2], "", ""); + break; + case 32: + yy.cherryPick($$[$0 - 4], "", "", $$[$0 - 2]); + break; + case 33: + yy.cherryPick($$[$0 - 4], "", "", $$[$0]); + break; + case 34: + yy.cherryPick($$[$0 - 2], "", $$[$0 - 4], $$[$0]); + break; + case 35: + yy.cherryPick($$[$0 - 2], "", "", $$[$0]); + break; + case 36: + yy.merge($$[$0], "", "", ""); + break; + case 37: + yy.merge($$[$0 - 2], $$[$0], "", ""); + break; + case 38: + yy.merge($$[$0 - 2], "", $$[$0], ""); + break; + case 39: + yy.merge($$[$0 - 2], "", "", $$[$0]); + break; + case 40: + yy.merge($$[$0 - 4], $$[$0], "", $$[$0 - 2]); + break; + case 41: + yy.merge($$[$0 - 4], "", $$[$0], $$[$0 - 2]); + break; + case 42: + yy.merge($$[$0 - 4], "", $$[$0 - 2], $$[$0]); + break; + case 43: + yy.merge($$[$0 - 4], $$[$0 - 2], $$[$0], ""); + break; + case 44: + yy.merge($$[$0 - 4], $$[$0 - 2], "", $$[$0]); + break; + case 45: + yy.merge($$[$0 - 4], $$[$0], $$[$0 - 2], ""); + break; + case 46: + yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]); + break; + case 47: + yy.merge($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]); + break; + case 48: + yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]); + break; + case 49: + yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]); + break; + case 50: + yy.merge($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]); + break; + case 51: + yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]); + break; + case 52: + yy.commit($$[$0]); + break; + case 53: + yy.commit("", "", yy.commitType.NORMAL, $$[$0]); + break; + case 54: + yy.commit("", "", $$[$0], ""); + break; + case 55: + yy.commit("", "", $$[$0], $$[$0 - 2]); + break; + case 56: + yy.commit("", "", $$[$0 - 2], $$[$0]); + break; + case 57: + yy.commit("", $$[$0], yy.commitType.NORMAL, ""); + break; + case 58: + yy.commit("", $$[$0 - 2], yy.commitType.NORMAL, $$[$0]); + break; + case 59: + yy.commit("", $$[$0], yy.commitType.NORMAL, $$[$0 - 2]); + break; + case 60: + yy.commit("", $$[$0 - 2], $$[$0], ""); + break; + case 61: + yy.commit("", $$[$0], $$[$0 - 2], ""); + break; + case 62: + yy.commit("", $$[$0 - 4], $$[$0 - 2], $$[$0]); + break; + case 63: + yy.commit("", $$[$0 - 4], $$[$0], $$[$0 - 2]); + break; + case 64: + yy.commit("", $$[$0 - 2], $$[$0 - 4], $$[$0]); + break; + case 65: + yy.commit("", $$[$0], $$[$0 - 4], $$[$0 - 2]); + break; + case 66: + yy.commit("", $$[$0], $$[$0 - 2], $$[$0 - 4]); + break; + case 67: + yy.commit("", $$[$0 - 2], $$[$0], $$[$0 - 4]); + break; + case 68: + yy.commit($$[$0], "", yy.commitType.NORMAL, ""); + break; + case 69: + yy.commit($$[$0], "", yy.commitType.NORMAL, $$[$0 - 2]); + break; + case 70: + yy.commit($$[$0 - 2], "", yy.commitType.NORMAL, $$[$0]); + break; + case 71: + yy.commit($$[$0 - 2], "", $$[$0], ""); + break; + case 72: + yy.commit($$[$0], "", $$[$0 - 2], ""); + break; + case 73: + yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, ""); + break; + case 74: + yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, ""); + break; + case 75: + yy.commit($$[$0 - 4], "", $$[$0 - 2], $$[$0]); + break; + case 76: + yy.commit($$[$0 - 4], "", $$[$0], $$[$0 - 2]); + break; + case 77: + yy.commit($$[$0 - 2], "", $$[$0 - 4], $$[$0]); + break; + case 78: + yy.commit($$[$0], "", $$[$0 - 4], $$[$0 - 2]); + break; + case 79: + yy.commit($$[$0], "", $$[$0 - 2], $$[$0 - 4]); + break; + case 80: + yy.commit($$[$0 - 2], "", $$[$0], $$[$0 - 4]); + break; + case 81: + yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], ""); + break; + case 82: + yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], ""); + break; + case 83: + yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], ""); + break; + case 84: + yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], ""); + break; + case 85: + yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], ""); + break; + case 86: + yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], ""); + break; + case 87: + yy.commit($$[$0 - 4], $$[$0], yy.commitType.NORMAL, $$[$0 - 2]); + break; + case 88: + yy.commit($$[$0 - 4], $$[$0 - 2], yy.commitType.NORMAL, $$[$0]); + break; + case 89: + yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, $$[$0 - 4]); + break; + case 90: + yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, $$[$0 - 4]); + break; + case 91: + yy.commit($$[$0], $$[$0 - 4], yy.commitType.NORMAL, $$[$0 - 2]); + break; + case 92: + yy.commit($$[$0 - 2], $$[$0 - 4], yy.commitType.NORMAL, $$[$0]); + break; + case 93: + yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]); + break; + case 94: + yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]); + break; + case 95: + yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]); + break; + case 96: + yy.commit($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]); + break; + case 97: + yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]); + break; + case 98: + yy.commit($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]); + break; + case 99: + yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0 - 2], $$[$0]); + break; + case 100: + yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0], $$[$0 - 2]); + break; + case 101: + yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0 - 4], $$[$0]); + break; + case 102: + yy.commit($$[$0], $$[$0 - 6], $$[$0 - 4], $$[$0 - 2]); + break; + case 103: + yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0], $$[$0 - 4]); + break; + case 104: + yy.commit($$[$0], $$[$0 - 6], $$[$0 - 2], $$[$0 - 4]); + break; + case 105: + yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], $$[$0 - 6]); + break; + case 106: + yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], $$[$0 - 6]); + break; + case 107: + yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], $$[$0 - 6]); + break; + case 108: + yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], $$[$0 - 6]); + break; + case 109: + yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], $$[$0 - 6]); + break; + case 110: + yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 6]); + break; + case 111: + yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0 - 6], $$[$0]); + break; + case 112: + yy.commit($$[$0], $$[$0 - 4], $$[$0 - 6], $$[$0 - 2]); + break; + case 113: + yy.commit($$[$0 - 2], $$[$0], $$[$0 - 6], $$[$0 - 4]); + break; + case 114: + yy.commit($$[$0], $$[$0 - 2], $$[$0 - 6], $$[$0 - 4]); + break; + case 115: + yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0 - 6], $$[$0]); + break; + case 116: + yy.commit($$[$0 - 4], $$[$0], $$[$0 - 6], $$[$0 - 2]); + break; + case 117: + this.$ = ""; + break; + case 118: + this.$ = $$[$0]; + break; + case 119: + this.$ = yy.commitType.NORMAL; + break; + case 120: + this.$ = yy.commitType.REVERSE; + break; + case 121: + this.$ = yy.commitType.HIGHLIGHT; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: $V0, 7: $V1, 13: $V2, 47: $V3 }, { 1: [3] }, { 3: 7, 4: 2, 5: $V0, 7: $V1, 13: $V2, 47: $V3 }, { 6: 8, 7: $V4, 8: [1, 9], 9: [1, 10], 10: 11, 13: $V5 }, o($V6, [2, 124]), o($V6, [2, 125]), o($V6, [2, 126]), { 1: [2, 1] }, { 7: [1, 13] }, { 6: 14, 7: $V4, 10: 11, 13: $V5 }, { 8: [1, 15] }, o($V7, [2, 9], { 11: 16, 12: [1, 17] }), o($V8, [2, 8]), { 1: [2, 2] }, { 7: [1, 18] }, { 6: 19, 7: $V4, 10: 11, 13: $V5 }, { 7: [2, 6], 13: [1, 22], 14: 20, 15: 21, 16: 23, 17: 24, 18: 25, 19: [1, 26], 21: [1, 27], 23: [1, 28], 24: [1, 29], 25: 30, 26: [1, 31], 28: [1, 35], 31: [1, 34], 37: [1, 33], 40: [1, 32] }, o($V8, [2, 7]), { 1: [2, 3] }, { 7: [1, 36] }, o($V7, [2, 10]), { 4: 37, 7: $V1, 13: $V2, 47: $V3 }, o($V7, [2, 12]), o($V9, [2, 13]), o($V9, [2, 14]), o($V9, [2, 15]), { 20: [1, 38] }, { 22: [1, 39] }, o($V9, [2, 18]), o($V9, [2, 19]), o($V9, [2, 20]), { 27: 40, 33: $Va, 46: $Vb }, o($V9, [2, 117], { 41: 43, 32: [1, 46], 33: [1, 48], 35: [1, 44], 38: [1, 45], 42: [1, 47] }), { 27: 49, 33: $Va, 46: $Vb }, { 32: [1, 50], 35: [1, 51] }, { 27: 52, 33: $Va, 46: $Vb }, { 1: [2, 4] }, o($V7, [2, 11]), o($V9, [2, 16]), o($V9, [2, 17]), o($V9, [2, 21]), o($Vc, [2, 122]), o($Vc, [2, 123]), o($V9, [2, 52]), { 33: [1, 53] }, { 39: 54, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 58] }, { 33: [1, 59] }, o($V9, [2, 118]), o($V9, [2, 36], { 32: [1, 60], 35: [1, 62], 38: [1, 61] }), { 33: [1, 63] }, { 33: [1, 64], 36: [1, 65] }, o($V9, [2, 22], { 29: [1, 66] }), o($V9, [2, 53], { 32: [1, 68], 38: [1, 67], 42: [1, 69] }), o($V9, [2, 54], { 32: [1, 71], 35: [1, 70], 42: [1, 72] }), o($Vg, [2, 119]), o($Vg, [2, 120]), o($Vg, [2, 121]), o($V9, [2, 57], { 35: [1, 73], 38: [1, 74], 42: [1, 75] }), o($V9, [2, 68], { 32: [1, 78], 35: [1, 76], 38: [1, 77] }), { 33: [1, 79] }, { 39: 80, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 81] }, o($V9, [2, 24], { 34: [1, 82], 35: [1, 83] }), { 32: [1, 84] }, { 32: [1, 85] }, { 30: [1, 86] }, { 39: 87, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 88] }, { 33: [1, 89] }, { 33: [1, 90] }, { 33: [1, 91] }, { 33: [1, 92] }, { 33: [1, 93] }, { 39: 94, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 95] }, { 33: [1, 96] }, { 39: 97, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 98] }, o($V9, [2, 37], { 35: [1, 100], 38: [1, 99] }), o($V9, [2, 38], { 32: [1, 102], 35: [1, 101] }), o($V9, [2, 39], { 32: [1, 103], 38: [1, 104] }), { 33: [1, 105] }, { 33: [1, 106], 36: [1, 107] }, { 33: [1, 108] }, { 33: [1, 109] }, o($V9, [2, 23]), o($V9, [2, 55], { 32: [1, 110], 42: [1, 111] }), o($V9, [2, 59], { 38: [1, 112], 42: [1, 113] }), o($V9, [2, 69], { 32: [1, 115], 38: [1, 114] }), o($V9, [2, 56], { 32: [1, 116], 42: [1, 117] }), o($V9, [2, 61], { 35: [1, 118], 42: [1, 119] }), o($V9, [2, 72], { 32: [1, 121], 35: [1, 120] }), o($V9, [2, 58], { 38: [1, 122], 42: [1, 123] }), o($V9, [2, 60], { 35: [1, 124], 42: [1, 125] }), o($V9, [2, 73], { 35: [1, 127], 38: [1, 126] }), o($V9, [2, 70], { 32: [1, 129], 38: [1, 128] }), o($V9, [2, 71], { 32: [1, 131], 35: [1, 130] }), o($V9, [2, 74], { 35: [1, 133], 38: [1, 132] }), { 39: 134, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 135] }, { 33: [1, 136] }, { 33: [1, 137] }, { 33: [1, 138] }, { 39: 139, 43: $Vd, 44: $Ve, 45: $Vf }, o($V9, [2, 25], { 35: [1, 140] }), o($V9, [2, 26], { 34: [1, 141] }), o($V9, [2, 31], { 34: [1, 142] }), o($V9, [2, 29], { 34: [1, 143] }), o($V9, [2, 30], { 34: [1, 144] }), { 33: [1, 145] }, { 33: [1, 146] }, { 39: 147, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 148] }, { 39: 149, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 150] }, { 33: [1, 151] }, { 33: [1, 152] }, { 33: [1, 153] }, { 33: [1, 154] }, { 33: [1, 155] }, { 33: [1, 156] }, { 39: 157, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 158] }, { 33: [1, 159] }, { 33: [1, 160] }, { 39: 161, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 162] }, { 39: 163, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 164] }, { 33: [1, 165] }, { 33: [1, 166] }, { 39: 167, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 168] }, o($V9, [2, 43], { 35: [1, 169] }), o($V9, [2, 44], { 38: [1, 170] }), o($V9, [2, 42], { 32: [1, 171] }), o($V9, [2, 45], { 35: [1, 172] }), o($V9, [2, 40], { 38: [1, 173] }), o($V9, [2, 41], { 32: [1, 174] }), { 33: [1, 175], 36: [1, 176] }, { 33: [1, 177] }, { 33: [1, 178] }, { 33: [1, 179] }, { 33: [1, 180] }, o($V9, [2, 66], { 42: [1, 181] }), o($V9, [2, 79], { 32: [1, 182] }), o($V9, [2, 67], { 42: [1, 183] }), o($V9, [2, 90], { 38: [1, 184] }), o($V9, [2, 80], { 32: [1, 185] }), o($V9, [2, 89], { 38: [1, 186] }), o($V9, [2, 65], { 42: [1, 187] }), o($V9, [2, 78], { 32: [1, 188] }), o($V9, [2, 64], { 42: [1, 189] }), o($V9, [2, 84], { 35: [1, 190] }), o($V9, [2, 77], { 32: [1, 191] }), o($V9, [2, 83], { 35: [1, 192] }), o($V9, [2, 63], { 42: [1, 193] }), o($V9, [2, 91], { 38: [1, 194] }), o($V9, [2, 62], { 42: [1, 195] }), o($V9, [2, 85], { 35: [1, 196] }), o($V9, [2, 86], { 35: [1, 197] }), o($V9, [2, 92], { 38: [1, 198] }), o($V9, [2, 76], { 32: [1, 199] }), o($V9, [2, 87], { 38: [1, 200] }), o($V9, [2, 75], { 32: [1, 201] }), o($V9, [2, 81], { 35: [1, 202] }), o($V9, [2, 82], { 35: [1, 203] }), o($V9, [2, 88], { 38: [1, 204] }), { 33: [1, 205] }, { 39: 206, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 207] }, { 33: [1, 208] }, { 39: 209, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 210] }, o($V9, [2, 27]), o($V9, [2, 32]), o($V9, [2, 28]), o($V9, [2, 33]), o($V9, [2, 34]), o($V9, [2, 35]), { 33: [1, 211] }, { 33: [1, 212] }, { 33: [1, 213] }, { 39: 214, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 215] }, { 39: 216, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 217] }, { 33: [1, 218] }, { 33: [1, 219] }, { 33: [1, 220] }, { 33: [1, 221] }, { 33: [1, 222] }, { 33: [1, 223] }, { 39: 224, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 225] }, { 33: [1, 226] }, { 33: [1, 227] }, { 39: 228, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 229] }, { 39: 230, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 231] }, { 33: [1, 232] }, { 33: [1, 233] }, { 39: 234, 43: $Vd, 44: $Ve, 45: $Vf }, o($V9, [2, 46]), o($V9, [2, 48]), o($V9, [2, 47]), o($V9, [2, 49]), o($V9, [2, 51]), o($V9, [2, 50]), o($V9, [2, 107]), o($V9, [2, 108]), o($V9, [2, 105]), o($V9, [2, 106]), o($V9, [2, 110]), o($V9, [2, 109]), o($V9, [2, 114]), o($V9, [2, 113]), o($V9, [2, 112]), o($V9, [2, 111]), o($V9, [2, 116]), o($V9, [2, 115]), o($V9, [2, 104]), o($V9, [2, 103]), o($V9, [2, 102]), o($V9, [2, 101]), o($V9, [2, 99]), o($V9, [2, 100]), o($V9, [2, 98]), o($V9, [2, 97]), o($V9, [2, 96]), o($V9, [2, 95]), o($V9, [2, 93]), o($V9, [2, 94])], + defaultActions: { 7: [2, 1], 13: [2, 2], 18: [2, 3], 36: [2, 4] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + this.begin("acc_title"); + return 19; + case 1: + this.popState(); + return "acc_title_value"; + case 2: + this.begin("acc_descr"); + return 21; + case 3: + this.popState(); + return "acc_descr_value"; + case 4: + this.begin("acc_descr_multiline"); + break; + case 5: + this.popState(); + break; + case 6: + return "acc_descr_multiline_value"; + case 7: + return 13; + case 8: + break; + case 9: + break; + case 10: + return 5; + case 11: + return 40; + case 12: + return 32; + case 13: + return 38; + case 14: + return 42; + case 15: + return 43; + case 16: + return 44; + case 17: + return 45; + case 18: + return 35; + case 19: + return 28; + case 20: + return 29; + case 21: + return 37; + case 22: + return 31; + case 23: + return 34; + case 24: + return 26; + case 25: + return 9; + case 26: + return 9; + case 27: + return 8; + case 28: + return "CARET"; + case 29: + this.begin("options"); + break; + case 30: + this.popState(); + break; + case 31: + return 12; + case 32: + return 36; + case 33: + this.begin("string"); + break; + case 34: + this.popState(); + break; + case 35: + return 33; + case 36: + return 30; + case 37: + return 46; + case 38: + return 7; + } + }, + rules: [/^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:gitGraph\b)/i, /^(?:commit(?=\s|$))/i, /^(?:id:)/i, /^(?:type:)/i, /^(?:msg:)/i, /^(?:NORMAL\b)/i, /^(?:REVERSE\b)/i, /^(?:HIGHLIGHT\b)/i, /^(?:tag:)/i, /^(?:branch(?=\s|$))/i, /^(?:order:)/i, /^(?:merge(?=\s|$))/i, /^(?:cherry-pick(?=\s|$))/i, /^(?:parent:)/i, /^(?:checkout(?=\s|$))/i, /^(?:LR\b)/i, /^(?:TB\b)/i, /^(?::)/i, /^(?:\^)/i, /^(?:options\r?\n)/i, /^(?:[ \r\n\t]+end\b)/i, /^(?:[\s\S]+(?=[ \r\n\t]+end))/i, /^(?:["]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[0-9]+(?=\s|$))/i, /^(?:\w([-\./\w]*[-\w])?)/i, /^(?:$)/i, /^(?:\s+)/i], + conditions: { "acc_descr_multiline": { "rules": [5, 6], "inclusive": false }, "acc_descr": { "rules": [3], "inclusive": false }, "acc_title": { "rules": [1], "inclusive": false }, "options": { "rules": [30, 31], "inclusive": false }, "string": { "rules": [34, 35], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 36, 37, 38, 39], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const gitGraphParser = parser; +let mainBranchName = getConfig().gitGraph.mainBranchName; +let mainBranchOrder = getConfig().gitGraph.mainBranchOrder; +let commits = {}; +let head = null; +let branchesConfig = {}; +branchesConfig[mainBranchName] = { name: mainBranchName, order: mainBranchOrder }; +let branches = {}; +branches[mainBranchName] = head; +let curBranch = mainBranchName; +let direction = "LR"; +let seq = 0; +function getId() { + return random({ length: 7 }); +} +function uniqBy(list, fn) { + const recordMap = /* @__PURE__ */ Object.create(null); + return list.reduce((out, item) => { + const key = fn(item); + if (!recordMap[key]) { + recordMap[key] = true; + out.push(item); + } + return out; + }, []); +} +const setDirection = function(dir2) { + direction = dir2; +}; +let options = {}; +const setOptions = function(rawOptString) { + log.debug("options str", rawOptString); + rawOptString = rawOptString && rawOptString.trim(); + rawOptString = rawOptString || "{}"; + try { + options = JSON.parse(rawOptString); + } catch (e) { + log.error("error while parsing gitGraph options", e.message); + } +}; +const getOptions = function() { + return options; +}; +const commit = function(msg, id, type, tag) { + log.debug("Entering commit:", msg, id, type, tag); + id = common.sanitizeText(id, getConfig()); + msg = common.sanitizeText(msg, getConfig()); + tag = common.sanitizeText(tag, getConfig()); + const commit2 = { + id: id ? id : seq + "-" + getId(), + message: msg, + seq: seq++, + type: type ? type : commitType$1.NORMAL, + tag: tag ? tag : "", + parents: head == null ? [] : [head.id], + branch: curBranch + }; + head = commit2; + commits[commit2.id] = commit2; + branches[curBranch] = commit2.id; + log.debug("in pushCommit " + commit2.id); +}; +const branch = function(name, order) { + name = common.sanitizeText(name, getConfig()); + if (branches[name] === void 0) { + branches[name] = head != null ? head.id : null; + branchesConfig[name] = { name, order: order ? parseInt(order, 10) : null }; + checkout(name); + log.debug("in createBranch"); + } else { + let error = new Error( + 'Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ' + name + '")' + ); + error.hash = { + text: "branch " + name, + token: "branch " + name, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ['"checkout ' + name + '"'] + }; + throw error; + } +}; +const merge = function(otherBranch, custom_id, override_type, custom_tag) { + otherBranch = common.sanitizeText(otherBranch, getConfig()); + custom_id = common.sanitizeText(custom_id, getConfig()); + const currentCommit = commits[branches[curBranch]]; + const otherCommit = commits[branches[otherBranch]]; + if (curBranch === otherBranch) { + let error = new Error('Incorrect usage of "merge". Cannot merge a branch to itself'); + error.hash = { + text: "merge " + otherBranch, + token: "merge " + otherBranch, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["branch abc"] + }; + throw error; + } else if (currentCommit === void 0 || !currentCommit) { + let error = new Error( + 'Incorrect usage of "merge". Current branch (' + curBranch + ")has no commits" + ); + error.hash = { + text: "merge " + otherBranch, + token: "merge " + otherBranch, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["commit"] + }; + throw error; + } else if (branches[otherBranch] === void 0) { + let error = new Error( + 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") does not exist" + ); + error.hash = { + text: "merge " + otherBranch, + token: "merge " + otherBranch, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["branch " + otherBranch] + }; + throw error; + } else if (otherCommit === void 0 || !otherCommit) { + let error = new Error( + 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") has no commits" + ); + error.hash = { + text: "merge " + otherBranch, + token: "merge " + otherBranch, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ['"commit"'] + }; + throw error; + } else if (currentCommit === otherCommit) { + let error = new Error('Incorrect usage of "merge". Both branches have same head'); + error.hash = { + text: "merge " + otherBranch, + token: "merge " + otherBranch, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["branch abc"] + }; + throw error; + } else if (custom_id && commits[custom_id] !== void 0) { + let error = new Error( + 'Incorrect usage of "merge". Commit with id:' + custom_id + " already exists, use different custom Id" + ); + error.hash = { + text: "merge " + otherBranch + custom_id + override_type + custom_tag, + token: "merge " + otherBranch + custom_id + override_type + custom_tag, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: [ + "merge " + otherBranch + " " + custom_id + "_UNIQUE " + override_type + " " + custom_tag + ] + }; + throw error; + } + const commit2 = { + id: custom_id ? custom_id : seq + "-" + getId(), + message: "merged branch " + otherBranch + " into " + curBranch, + seq: seq++, + parents: [head == null ? null : head.id, branches[otherBranch]], + branch: curBranch, + type: commitType$1.MERGE, + customType: override_type, + customId: custom_id ? true : false, + tag: custom_tag ? custom_tag : "" + }; + head = commit2; + commits[commit2.id] = commit2; + branches[curBranch] = commit2.id; + log.debug(branches); + log.debug("in mergeBranch"); +}; +const cherryPick = function(sourceId, targetId, tag, parentCommitId) { + log.debug("Entering cherryPick:", sourceId, targetId, tag); + sourceId = common.sanitizeText(sourceId, getConfig()); + targetId = common.sanitizeText(targetId, getConfig()); + tag = common.sanitizeText(tag, getConfig()); + parentCommitId = common.sanitizeText(parentCommitId, getConfig()); + if (!sourceId || commits[sourceId] === void 0) { + let error = new Error( + 'Incorrect usage of "cherryPick". Source commit id should exist and provided' + ); + error.hash = { + text: "cherryPick " + sourceId + " " + targetId, + token: "cherryPick " + sourceId + " " + targetId, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["cherry-pick abc"] + }; + throw error; + } + let sourceCommit = commits[sourceId]; + let sourceCommitBranch = sourceCommit.branch; + if (parentCommitId && !(Array.isArray(sourceCommit.parents) && sourceCommit.parents.includes(parentCommitId))) { + let error = new Error( + "Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit." + ); + throw error; + } + if (sourceCommit.type === commitType$1.MERGE && !parentCommitId) { + let error = new Error( + "Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified." + ); + throw error; + } + if (!targetId || commits[targetId] === void 0) { + if (sourceCommitBranch === curBranch) { + let error = new Error( + 'Incorrect usage of "cherryPick". Source commit is already on current branch' + ); + error.hash = { + text: "cherryPick " + sourceId + " " + targetId, + token: "cherryPick " + sourceId + " " + targetId, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["cherry-pick abc"] + }; + throw error; + } + const currentCommit = commits[branches[curBranch]]; + if (currentCommit === void 0 || !currentCommit) { + let error = new Error( + 'Incorrect usage of "cherry-pick". Current branch (' + curBranch + ")has no commits" + ); + error.hash = { + text: "cherryPick " + sourceId + " " + targetId, + token: "cherryPick " + sourceId + " " + targetId, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["cherry-pick abc"] + }; + throw error; + } + const commit2 = { + id: seq + "-" + getId(), + message: "cherry-picked " + sourceCommit + " into " + curBranch, + seq: seq++, + parents: [head == null ? null : head.id, sourceCommit.id], + branch: curBranch, + type: commitType$1.CHERRY_PICK, + tag: tag ?? `cherry-pick:${sourceCommit.id}${sourceCommit.type === commitType$1.MERGE ? `|parent:${parentCommitId}` : ""}` + }; + head = commit2; + commits[commit2.id] = commit2; + branches[curBranch] = commit2.id; + log.debug(branches); + log.debug("in cherryPick"); + } +}; +const checkout = function(branch2) { + branch2 = common.sanitizeText(branch2, getConfig()); + if (branches[branch2] === void 0) { + let error = new Error( + 'Trying to checkout branch which is not yet created. (Help try using "branch ' + branch2 + '")' + ); + error.hash = { + text: "checkout " + branch2, + token: "checkout " + branch2, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ['"branch ' + branch2 + '"'] + }; + throw error; + } else { + curBranch = branch2; + const id = branches[curBranch]; + head = commits[id]; + } +}; +function upsert(arr, key, newVal) { + const index = arr.indexOf(key); + if (index === -1) { + arr.push(newVal); + } else { + arr.splice(index, 1, newVal); + } +} +function prettyPrintCommitHistory(commitArr) { + const commit2 = commitArr.reduce((out, commit3) => { + if (out.seq > commit3.seq) { + return out; + } + return commit3; + }, commitArr[0]); + let line = ""; + commitArr.forEach(function(c) { + if (c === commit2) { + line += " *"; + } else { + line += " |"; + } + }); + const label = [line, commit2.id, commit2.seq]; + for (let branch2 in branches) { + if (branches[branch2] === commit2.id) { + label.push(branch2); + } + } + log.debug(label.join(" ")); + if (commit2.parents && commit2.parents.length == 2) { + const newCommit = commits[commit2.parents[0]]; + upsert(commitArr, commit2, newCommit); + commitArr.push(commits[commit2.parents[1]]); + } else if (commit2.parents.length == 0) { + return; + } else { + const nextCommit = commits[commit2.parents]; + upsert(commitArr, commit2, nextCommit); + } + commitArr = uniqBy(commitArr, (c) => c.id); + prettyPrintCommitHistory(commitArr); +} +const prettyPrint = function() { + log.debug(commits); + const node = getCommitsArray()[0]; + prettyPrintCommitHistory([node]); +}; +const clear$1 = function() { + commits = {}; + head = null; + let mainBranch = getConfig().gitGraph.mainBranchName; + let mainBranchOrder2 = getConfig().gitGraph.mainBranchOrder; + branches = {}; + branches[mainBranch] = null; + branchesConfig = {}; + branchesConfig[mainBranch] = { name: mainBranch, order: mainBranchOrder2 }; + curBranch = mainBranch; + seq = 0; + clear$2(); +}; +const getBranchesAsObjArray = function() { + const branchesArray = Object.values(branchesConfig).map((branchConfig, i) => { + if (branchConfig.order !== null) { + return branchConfig; + } + return { + ...branchConfig, + order: parseFloat(`0.${i}`, 10) + }; + }).sort((a, b) => a.order - b.order).map(({ name }) => ({ name })); + return branchesArray; +}; +const getBranches = function() { + return branches; +}; +const getCommits = function() { + return commits; +}; +const getCommitsArray = function() { + const commitArr = Object.keys(commits).map(function(key) { + return commits[key]; + }); + commitArr.forEach(function(o) { + log.debug(o.id); + }); + commitArr.sort((a, b) => a.seq - b.seq); + return commitArr; +}; +const getCurrentBranch = function() { + return curBranch; +}; +const getDirection = function() { + return direction; +}; +const getHead = function() { + return head; +}; +const commitType$1 = { + NORMAL: 0, + REVERSE: 1, + HIGHLIGHT: 2, + MERGE: 3, + CHERRY_PICK: 4 +}; +const gitGraphDb = { + getConfig: () => getConfig().gitGraph, + setDirection, + setOptions, + getOptions, + commit, + branch, + merge, + cherryPick, + checkout, + //reset, + prettyPrint, + clear: clear$1, + getBranchesAsObjArray, + getBranches, + getCommits, + getCommitsArray, + getCurrentBranch, + getDirection, + getHead, + setAccTitle, + getAccTitle, + getAccDescription, + setAccDescription, + setDiagramTitle, + getDiagramTitle, + commitType: commitType$1 +}; +let allCommitsDict = {}; +const commitType = { + NORMAL: 0, + REVERSE: 1, + HIGHLIGHT: 2, + MERGE: 3, + CHERRY_PICK: 4 +}; +const THEME_COLOR_LIMIT = 8; +let branchPos = {}; +let commitPos = {}; +let lanes = []; +let maxPos = 0; +let dir = "LR"; +const clear = () => { + branchPos = {}; + commitPos = {}; + allCommitsDict = {}; + maxPos = 0; + lanes = []; + dir = "LR"; +}; +const drawText = (txt) => { + const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text"); + let rows = []; + if (typeof txt === "string") { + rows = txt.split(/\\n|\n|/gi); + } else if (Array.isArray(txt)) { + rows = txt; + } else { + rows = []; + } + for (const row of rows) { + const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"); + tspan.setAttribute("dy", "1em"); + tspan.setAttribute("x", "0"); + tspan.setAttribute("class", "row"); + tspan.textContent = row.trim(); + svgLabel.appendChild(tspan); + } + return svgLabel; +}; +const findClosestParent = (parents) => { + let closestParent = ""; + let maxPosition = 0; + parents.forEach((parent) => { + const parentPosition = dir === "TB" ? commitPos[parent].y : commitPos[parent].x; + if (parentPosition >= maxPosition) { + closestParent = parent; + maxPosition = parentPosition; + } + }); + return closestParent || void 0; +}; +const drawCommits = (svg, commits2, modifyGraph) => { + const gitGraphConfig = getConfig().gitGraph; + const gBullets = svg.append("g").attr("class", "commit-bullets"); + const gLabels = svg.append("g").attr("class", "commit-labels"); + let pos = 0; + if (dir === "TB") { + pos = 30; + } + const keys = Object.keys(commits2); + const sortedKeys = keys.sort((a, b) => { + return commits2[a].seq - commits2[b].seq; + }); + const isParallelCommits = gitGraphConfig.parallelCommits; + const layoutOffset = 10; + const commitStep = 40; + sortedKeys.forEach((key) => { + const commit2 = commits2[key]; + if (isParallelCommits) { + if (commit2.parents.length) { + const closestParent = findClosestParent(commit2.parents); + pos = dir === "TB" ? commitPos[closestParent].y + commitStep : commitPos[closestParent].x + commitStep; + } else { + pos = 0; + if (dir === "TB") { + pos = 30; + } + } + } + const posWithOffset = pos + layoutOffset; + const y = dir === "TB" ? posWithOffset : branchPos[commit2.branch].pos; + const x = dir === "TB" ? branchPos[commit2.branch].pos : posWithOffset; + if (modifyGraph) { + let typeClass; + let commitSymbolType = commit2.customType !== void 0 && commit2.customType !== "" ? commit2.customType : commit2.type; + switch (commitSymbolType) { + case commitType.NORMAL: + typeClass = "commit-normal"; + break; + case commitType.REVERSE: + typeClass = "commit-reverse"; + break; + case commitType.HIGHLIGHT: + typeClass = "commit-highlight"; + break; + case commitType.MERGE: + typeClass = "commit-merge"; + break; + case commitType.CHERRY_PICK: + typeClass = "commit-cherry-pick"; + break; + default: + typeClass = "commit-normal"; + } + if (commitSymbolType === commitType.HIGHLIGHT) { + const circle = gBullets.append("rect"); + circle.attr("x", x - 10); + circle.attr("y", y - 10); + circle.attr("height", 20); + circle.attr("width", 20); + circle.attr( + "class", + `commit ${commit2.id} commit-highlight${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-outer` + ); + gBullets.append("rect").attr("x", x - 6).attr("y", y - 6).attr("height", 12).attr("width", 12).attr( + "class", + `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-inner` + ); + } else if (commitSymbolType === commitType.CHERRY_PICK) { + gBullets.append("circle").attr("cx", x).attr("cy", y).attr("r", 10).attr("class", `commit ${commit2.id} ${typeClass}`); + gBullets.append("circle").attr("cx", x - 3).attr("cy", y + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`); + gBullets.append("circle").attr("cx", x + 3).attr("cy", y + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`); + gBullets.append("line").attr("x1", x + 3).attr("y1", y + 1).attr("x2", x).attr("y2", y - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`); + gBullets.append("line").attr("x1", x - 3).attr("y1", y + 1).attr("x2", x).attr("y2", y - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`); + } else { + const circle = gBullets.append("circle"); + circle.attr("cx", x); + circle.attr("cy", y); + circle.attr("r", commit2.type === commitType.MERGE ? 9 : 10); + circle.attr( + "class", + `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}` + ); + if (commitSymbolType === commitType.MERGE) { + const circle2 = gBullets.append("circle"); + circle2.attr("cx", x); + circle2.attr("cy", y); + circle2.attr("r", 6); + circle2.attr( + "class", + `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}` + ); + } + if (commitSymbolType === commitType.REVERSE) { + const cross = gBullets.append("path"); + cross.attr("d", `M ${x - 5},${y - 5}L${x + 5},${y + 5}M${x - 5},${y + 5}L${x + 5},${y - 5}`).attr( + "class", + `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}` + ); + } + } + } + if (dir === "TB") { + commitPos[commit2.id] = { x, y: posWithOffset }; + } else { + commitPos[commit2.id] = { x: posWithOffset, y }; + } + if (modifyGraph) { + const px = 4; + const py = 2; + if (commit2.type !== commitType.CHERRY_PICK && (commit2.customId && commit2.type === commitType.MERGE || commit2.type !== commitType.MERGE) && gitGraphConfig.showCommitLabel) { + const wrapper = gLabels.append("g"); + const labelBkg = wrapper.insert("rect").attr("class", "commit-label-bkg"); + const text = wrapper.append("text").attr("x", pos).attr("y", y + 25).attr("class", "commit-label").text(commit2.id); + let bbox = text.node().getBBox(); + labelBkg.attr("x", posWithOffset - bbox.width / 2 - py).attr("y", y + 13.5).attr("width", bbox.width + 2 * py).attr("height", bbox.height + 2 * py); + if (dir === "TB") { + labelBkg.attr("x", x - (bbox.width + 4 * px + 5)).attr("y", y - 12); + text.attr("x", x - (bbox.width + 4 * px)).attr("y", y + bbox.height - 12); + } + if (dir !== "TB") { + text.attr("x", posWithOffset - bbox.width / 2); + } + if (gitGraphConfig.rotateCommitLabel) { + if (dir === "TB") { + text.attr("transform", "rotate(-45, " + x + ", " + y + ")"); + labelBkg.attr("transform", "rotate(-45, " + x + ", " + y + ")"); + } else { + let r_x = -7.5 - (bbox.width + 10) / 25 * 9.5; + let r_y = 10 + bbox.width / 25 * 8.5; + wrapper.attr( + "transform", + "translate(" + r_x + ", " + r_y + ") rotate(-45, " + pos + ", " + y + ")" + ); + } + } + } + if (commit2.tag) { + const rect = gLabels.insert("polygon"); + const hole = gLabels.append("circle"); + const tag = gLabels.append("text").attr("y", y - 16).attr("class", "tag-label").text(commit2.tag); + let tagBbox = tag.node().getBBox(); + tag.attr("x", posWithOffset - tagBbox.width / 2); + const h2 = tagBbox.height / 2; + const ly = y - 19.2; + rect.attr("class", "tag-label-bkg").attr( + "points", + ` + ${pos - tagBbox.width / 2 - px / 2},${ly + py} + ${pos - tagBbox.width / 2 - px / 2},${ly - py} + ${posWithOffset - tagBbox.width / 2 - px},${ly - h2 - py} + ${posWithOffset + tagBbox.width / 2 + px},${ly - h2 - py} + ${posWithOffset + tagBbox.width / 2 + px},${ly + h2 + py} + ${posWithOffset - tagBbox.width / 2 - px},${ly + h2 + py}` + ); + hole.attr("cx", pos - tagBbox.width / 2 + px / 2).attr("cy", ly).attr("r", 1.5).attr("class", "tag-hole"); + if (dir === "TB") { + rect.attr("class", "tag-label-bkg").attr( + "points", + ` + ${x},${pos + py} + ${x},${pos - py} + ${x + layoutOffset},${pos - h2 - py} + ${x + layoutOffset + tagBbox.width + px},${pos - h2 - py} + ${x + layoutOffset + tagBbox.width + px},${pos + h2 + py} + ${x + layoutOffset},${pos + h2 + py}` + ).attr("transform", "translate(12,12) rotate(45, " + x + "," + pos + ")"); + hole.attr("cx", x + px / 2).attr("cy", pos).attr("transform", "translate(12,12) rotate(45, " + x + "," + pos + ")"); + tag.attr("x", x + 5).attr("y", pos + 3).attr("transform", "translate(14,14) rotate(45, " + x + "," + pos + ")"); + } + } + } + pos += commitStep + layoutOffset; + if (pos > maxPos) { + maxPos = pos; + } + }); +}; +const shouldRerouteArrow = (commitA, commitB, p1, p2, allCommits) => { + const commitBIsFurthest = dir === "TB" ? p1.x < p2.x : p1.y < p2.y; + const branchToGetCurve = commitBIsFurthest ? commitB.branch : commitA.branch; + const isOnBranchToGetCurve = (x) => x.branch === branchToGetCurve; + const isBetweenCommits = (x) => x.seq > commitA.seq && x.seq < commitB.seq; + return Object.values(allCommits).some((commitX) => { + return isBetweenCommits(commitX) && isOnBranchToGetCurve(commitX); + }); +}; +const findLane = (y1, y2, depth = 0) => { + const candidate = y1 + Math.abs(y1 - y2) / 2; + if (depth > 5) { + return candidate; + } + let ok = lanes.every((lane) => Math.abs(lane - candidate) >= 10); + if (ok) { + lanes.push(candidate); + return candidate; + } + const diff = Math.abs(y1 - y2); + return findLane(y1, y2 - diff / 5, depth + 1); +}; +const drawArrow = (svg, commitA, commitB, allCommits) => { + const p1 = commitPos[commitA.id]; + const p2 = commitPos[commitB.id]; + const arrowNeedsRerouting = shouldRerouteArrow(commitA, commitB, p1, p2, allCommits); + let arc = ""; + let arc2 = ""; + let radius = 0; + let offset = 0; + let colorClassNum = branchPos[commitB.branch].index; + if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) { + colorClassNum = branchPos[commitA.branch].index; + } + let lineDef; + if (arrowNeedsRerouting) { + arc = "A 10 10, 0, 0, 0,"; + arc2 = "A 10 10, 0, 0, 1,"; + radius = 10; + offset = 10; + const lineY = p1.y < p2.y ? findLane(p1.y, p2.y) : findLane(p2.y, p1.y); + const lineX = p1.x < p2.x ? findLane(p1.x, p2.x) : findLane(p2.x, p1.x); + if (dir === "TB") { + if (p1.x < p2.x) { + lineDef = `M ${p1.x} ${p1.y} L ${lineX - radius} ${p1.y} ${arc2} ${lineX} ${p1.y + offset} L ${lineX} ${p2.y - radius} ${arc} ${lineX + offset} ${p2.y} L ${p2.x} ${p2.y}`; + } else { + colorClassNum = branchPos[commitA.branch].index; + lineDef = `M ${p1.x} ${p1.y} L ${lineX + radius} ${p1.y} ${arc} ${lineX} ${p1.y + offset} L ${lineX} ${p2.y - radius} ${arc2} ${lineX - offset} ${p2.y} L ${p2.x} ${p2.y}`; + } + } else { + if (p1.y < p2.y) { + lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY - radius} ${arc} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc2} ${p2.x} ${lineY + offset} L ${p2.x} ${p2.y}`; + } else { + colorClassNum = branchPos[commitA.branch].index; + lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY + radius} ${arc2} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc} ${p2.x} ${lineY - offset} L ${p2.x} ${p2.y}`; + } + } + } else { + arc = "A 20 20, 0, 0, 0,"; + arc2 = "A 20 20, 0, 0, 1,"; + radius = 20; + offset = 20; + if (dir === "TB") { + if (p1.x < p2.x) { + if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) { + lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`; + } else { + lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc2} ${p2.x} ${p1.y + offset} L ${p2.x} ${p2.y}`; + } + } + if (p1.x > p2.x) { + arc = "A 20 20, 0, 0, 0,"; + arc2 = "A 20 20, 0, 0, 1,"; + radius = 20; + offset = 20; + if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) { + lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc2} ${p1.x - offset} ${p2.y} L ${p2.x} ${p2.y}`; + } else { + lineDef = `M ${p1.x} ${p1.y} L ${p2.x + radius} ${p1.y} ${arc} ${p2.x} ${p1.y + offset} L ${p2.x} ${p2.y}`; + } + } + if (p1.x === p2.x) { + lineDef = `M ${p1.x} ${p1.y} L ${p2.x} ${p2.y}`; + } + } else { + if (p1.y < p2.y) { + if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) { + lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc2} ${p2.x} ${p1.y + offset} L ${p2.x} ${p2.y}`; + } else { + lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`; + } + } + if (p1.y > p2.y) { + if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) { + lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc} ${p2.x} ${p1.y - offset} L ${p2.x} ${p2.y}`; + } else { + lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y + radius} ${arc2} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`; + } + } + if (p1.y === p2.y) { + lineDef = `M ${p1.x} ${p1.y} L ${p2.x} ${p2.y}`; + } + } + } + svg.append("path").attr("d", lineDef).attr("class", "arrow arrow" + colorClassNum % THEME_COLOR_LIMIT); +}; +const drawArrows = (svg, commits2) => { + const gArrows = svg.append("g").attr("class", "commit-arrows"); + Object.keys(commits2).forEach((key) => { + const commit2 = commits2[key]; + if (commit2.parents && commit2.parents.length > 0) { + commit2.parents.forEach((parent) => { + drawArrow(gArrows, commits2[parent], commit2, commits2); + }); + } + }); +}; +const drawBranches = (svg, branches2) => { + const gitGraphConfig = getConfig().gitGraph; + const g = svg.append("g"); + branches2.forEach((branch2, index) => { + const adjustIndexForTheme = index % THEME_COLOR_LIMIT; + const pos = branchPos[branch2.name].pos; + const line = g.append("line"); + line.attr("x1", 0); + line.attr("y1", pos); + line.attr("x2", maxPos); + line.attr("y2", pos); + line.attr("class", "branch branch" + adjustIndexForTheme); + if (dir === "TB") { + line.attr("y1", 30); + line.attr("x1", pos); + line.attr("y2", maxPos); + line.attr("x2", pos); + } + lanes.push(pos); + let name = branch2.name; + const labelElement = drawText(name); + const bkg = g.insert("rect"); + const branchLabel = g.insert("g").attr("class", "branchLabel"); + const label = branchLabel.insert("g").attr("class", "label branch-label" + adjustIndexForTheme); + label.node().appendChild(labelElement); + let bbox = labelElement.getBBox(); + bkg.attr("class", "branchLabelBkg label" + adjustIndexForTheme).attr("rx", 4).attr("ry", 4).attr("x", -bbox.width - 4 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)).attr("y", -bbox.height / 2 + 8).attr("width", bbox.width + 18).attr("height", bbox.height + 4); + label.attr( + "transform", + "translate(" + (-bbox.width - 14 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)) + ", " + (pos - bbox.height / 2 - 1) + ")" + ); + if (dir === "TB") { + bkg.attr("x", pos - bbox.width / 2 - 10).attr("y", 0); + label.attr("transform", "translate(" + (pos - bbox.width / 2 - 5) + ", 0)"); + } + if (dir !== "TB") { + bkg.attr("transform", "translate(-19, " + (pos - bbox.height / 2) + ")"); + } + }); +}; +const draw = function(txt, id, ver, diagObj) { + clear(); + const conf = getConfig(); + const gitGraphConfig = conf.gitGraph; + log.debug("in gitgraph renderer", txt + "\n", "id:", id, ver); + allCommitsDict = diagObj.db.getCommits(); + const branches2 = diagObj.db.getBranchesAsObjArray(); + dir = diagObj.db.getDirection(); + const diagram2 = select(`[id="${id}"]`); + let pos = 0; + branches2.forEach((branch2, index) => { + const labelElement = drawText(branch2.name); + const g = diagram2.append("g"); + const branchLabel = g.insert("g").attr("class", "branchLabel"); + const label = branchLabel.insert("g").attr("class", "label branch-label"); + label.node().appendChild(labelElement); + let bbox = labelElement.getBBox(); + branchPos[branch2.name] = { pos, index }; + pos += 50 + (gitGraphConfig.rotateCommitLabel ? 40 : 0) + (dir === "TB" ? bbox.width / 2 : 0); + label.remove(); + branchLabel.remove(); + g.remove(); + }); + drawCommits(diagram2, allCommitsDict, false); + if (gitGraphConfig.showBranches) { + drawBranches(diagram2, branches2); + } + drawArrows(diagram2, allCommitsDict); + drawCommits(diagram2, allCommitsDict, true); + utils.insertTitle( + diagram2, + "gitTitleText", + gitGraphConfig.titleTopMargin, + diagObj.db.getDiagramTitle() + ); + setupGraphViewbox( + void 0, + diagram2, + gitGraphConfig.diagramPadding, + gitGraphConfig.useMaxWidth ?? conf.useMaxWidth + ); +}; +const gitGraphRenderer = { + draw +}; +const getStyles = (options2) => ` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0, 1, 2, 3, 4, 5, 6, 7].map( + (i) => ` + .branch-label${i} { fill: ${options2["gitBranchLabel" + i]}; } + .commit${i} { stroke: ${options2["git" + i]}; fill: ${options2["git" + i]}; } + .commit-highlight${i} { stroke: ${options2["gitInv" + i]}; fill: ${options2["gitInv" + i]}; } + .label${i} { fill: ${options2["git" + i]}; } + .arrow${i} { stroke: ${options2["git" + i]}; } + ` +).join("\n")} + + .branch { + stroke-width: 1; + stroke: ${options2.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelColor};} + .commit-label-bkg { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${options2.tagLabelFontSize}; fill: ${options2.tagLabelColor};} + .tag-label-bkg { fill: ${options2.tagLabelBackground}; stroke: ${options2.tagLabelBorder}; } + .tag-hole { fill: ${options2.textColor}; } + + .commit-merge { + stroke: ${options2.primaryColor}; + fill: ${options2.primaryColor}; + } + .commit-reverse { + stroke: ${options2.primaryColor}; + fill: ${options2.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${options2.primaryColor}; + fill: ${options2.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options2.textColor}; + } +`; +const gitGraphStyles = getStyles; +const diagram = { + parser: gitGraphParser, + db: gitGraphDb, + renderer: gitGraphRenderer, + styles: gitGraphStyles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/gitGraphDiagram-b9392a12.js b/assets/lib/mermaid/gitGraphDiagram-b9392a12.js new file mode 100644 index 000000000..b1049bd97 --- /dev/null +++ b/assets/lib/mermaid/gitGraphDiagram-b9392a12.js @@ -0,0 +1,1790 @@ +import { c as getConfig, s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, C as setDiagramTitle, D as getDiagramTitle, l as log, f as common, E as clear$2, H as random, j as d3select, A as utils, I as setupGraphViewbox } from "./mermaid-dcacb631.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 3], $V1 = [1, 6], $V2 = [1, 4], $V3 = [1, 5], $V4 = [2, 5], $V5 = [1, 12], $V6 = [5, 7, 13, 19, 21, 23, 24, 26, 28, 31, 37, 40, 47], $V7 = [7, 13, 19, 21, 23, 24, 26, 28, 31, 37, 40], $V8 = [7, 12, 13, 19, 21, 23, 24, 26, 28, 31, 37, 40], $V9 = [7, 13, 47], $Va = [1, 42], $Vb = [1, 41], $Vc = [7, 13, 29, 32, 35, 38, 47], $Vd = [1, 55], $Ve = [1, 56], $Vf = [1, 57], $Vg = [7, 13, 32, 35, 42, 47]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "eol": 4, "GG": 5, "document": 6, "EOF": 7, ":": 8, "DIR": 9, "options": 10, "body": 11, "OPT": 12, "NL": 13, "line": 14, "statement": 15, "commitStatement": 16, "mergeStatement": 17, "cherryPickStatement": 18, "acc_title": 19, "acc_title_value": 20, "acc_descr": 21, "acc_descr_value": 22, "acc_descr_multiline_value": 23, "section": 24, "branchStatement": 25, "CHECKOUT": 26, "ref": 27, "BRANCH": 28, "ORDER": 29, "NUM": 30, "CHERRY_PICK": 31, "COMMIT_ID": 32, "STR": 33, "PARENT_COMMIT": 34, "COMMIT_TAG": 35, "EMPTYSTR": 36, "MERGE": 37, "COMMIT_TYPE": 38, "commitType": 39, "COMMIT": 40, "commit_arg": 41, "COMMIT_MSG": 42, "NORMAL": 43, "REVERSE": 44, "HIGHLIGHT": 45, "ID": 46, ";": 47, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 5: "GG", 7: "EOF", 8: ":", 9: "DIR", 12: "OPT", 13: "NL", 19: "acc_title", 20: "acc_title_value", 21: "acc_descr", 22: "acc_descr_value", 23: "acc_descr_multiline_value", 24: "section", 26: "CHECKOUT", 28: "BRANCH", 29: "ORDER", 30: "NUM", 31: "CHERRY_PICK", 32: "COMMIT_ID", 33: "STR", 34: "PARENT_COMMIT", 35: "COMMIT_TAG", 36: "EMPTYSTR", 37: "MERGE", 38: "COMMIT_TYPE", 40: "COMMIT", 42: "COMMIT_MSG", 43: "NORMAL", 44: "REVERSE", 45: "HIGHLIGHT", 46: "ID", 47: ";" }, + productions_: [0, [3, 2], [3, 3], [3, 4], [3, 5], [6, 0], [6, 2], [10, 2], [10, 1], [11, 0], [11, 2], [14, 2], [14, 1], [15, 1], [15, 1], [15, 1], [15, 2], [15, 2], [15, 1], [15, 1], [15, 1], [15, 2], [25, 2], [25, 4], [18, 3], [18, 5], [18, 5], [18, 7], [18, 7], [18, 5], [18, 5], [18, 5], [18, 7], [18, 7], [18, 7], [18, 7], [17, 2], [17, 4], [17, 4], [17, 4], [17, 6], [17, 6], [17, 6], [17, 6], [17, 6], [17, 6], [17, 8], [17, 8], [17, 8], [17, 8], [17, 8], [17, 8], [16, 2], [16, 3], [16, 3], [16, 5], [16, 5], [16, 3], [16, 5], [16, 5], [16, 5], [16, 5], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 3], [16, 5], [16, 5], [16, 5], [16, 5], [16, 5], [16, 5], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [41, 0], [41, 1], [39, 1], [39, 1], [39, 1], [27, 1], [27, 1], [4, 1], [4, 1], [4, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 2: + return $$[$0]; + case 3: + return $$[$0 - 1]; + case 4: + yy.setDirection($$[$0 - 3]); + return $$[$0 - 1]; + case 6: + yy.setOptions($$[$0 - 1]); + this.$ = $$[$0]; + break; + case 7: + $$[$0 - 1] += $$[$0]; + this.$ = $$[$0 - 1]; + break; + case 9: + this.$ = []; + break; + case 10: + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + break; + case 11: + this.$ = $$[$0 - 1]; + break; + case 16: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 17: + case 18: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 19: + yy.addSection($$[$0].substr(8)); + this.$ = $$[$0].substr(8); + break; + case 21: + yy.checkout($$[$0]); + break; + case 22: + yy.branch($$[$0]); + break; + case 23: + yy.branch($$[$0 - 2], $$[$0]); + break; + case 24: + yy.cherryPick($$[$0], "", void 0); + break; + case 25: + yy.cherryPick($$[$0 - 2], "", void 0, $$[$0]); + break; + case 26: + yy.cherryPick($$[$0 - 2], "", $$[$0]); + break; + case 27: + yy.cherryPick($$[$0 - 4], "", $$[$0], $$[$0 - 2]); + break; + case 28: + yy.cherryPick($$[$0 - 4], "", $$[$0 - 2], $$[$0]); + break; + case 29: + yy.cherryPick($$[$0], "", $$[$0 - 2]); + break; + case 30: + yy.cherryPick($$[$0], "", ""); + break; + case 31: + yy.cherryPick($$[$0 - 2], "", ""); + break; + case 32: + yy.cherryPick($$[$0 - 4], "", "", $$[$0 - 2]); + break; + case 33: + yy.cherryPick($$[$0 - 4], "", "", $$[$0]); + break; + case 34: + yy.cherryPick($$[$0 - 2], "", $$[$0 - 4], $$[$0]); + break; + case 35: + yy.cherryPick($$[$0 - 2], "", "", $$[$0]); + break; + case 36: + yy.merge($$[$0], "", "", ""); + break; + case 37: + yy.merge($$[$0 - 2], $$[$0], "", ""); + break; + case 38: + yy.merge($$[$0 - 2], "", $$[$0], ""); + break; + case 39: + yy.merge($$[$0 - 2], "", "", $$[$0]); + break; + case 40: + yy.merge($$[$0 - 4], $$[$0], "", $$[$0 - 2]); + break; + case 41: + yy.merge($$[$0 - 4], "", $$[$0], $$[$0 - 2]); + break; + case 42: + yy.merge($$[$0 - 4], "", $$[$0 - 2], $$[$0]); + break; + case 43: + yy.merge($$[$0 - 4], $$[$0 - 2], $$[$0], ""); + break; + case 44: + yy.merge($$[$0 - 4], $$[$0 - 2], "", $$[$0]); + break; + case 45: + yy.merge($$[$0 - 4], $$[$0], $$[$0 - 2], ""); + break; + case 46: + yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]); + break; + case 47: + yy.merge($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]); + break; + case 48: + yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]); + break; + case 49: + yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]); + break; + case 50: + yy.merge($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]); + break; + case 51: + yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]); + break; + case 52: + yy.commit($$[$0]); + break; + case 53: + yy.commit("", "", yy.commitType.NORMAL, $$[$0]); + break; + case 54: + yy.commit("", "", $$[$0], ""); + break; + case 55: + yy.commit("", "", $$[$0], $$[$0 - 2]); + break; + case 56: + yy.commit("", "", $$[$0 - 2], $$[$0]); + break; + case 57: + yy.commit("", $$[$0], yy.commitType.NORMAL, ""); + break; + case 58: + yy.commit("", $$[$0 - 2], yy.commitType.NORMAL, $$[$0]); + break; + case 59: + yy.commit("", $$[$0], yy.commitType.NORMAL, $$[$0 - 2]); + break; + case 60: + yy.commit("", $$[$0 - 2], $$[$0], ""); + break; + case 61: + yy.commit("", $$[$0], $$[$0 - 2], ""); + break; + case 62: + yy.commit("", $$[$0 - 4], $$[$0 - 2], $$[$0]); + break; + case 63: + yy.commit("", $$[$0 - 4], $$[$0], $$[$0 - 2]); + break; + case 64: + yy.commit("", $$[$0 - 2], $$[$0 - 4], $$[$0]); + break; + case 65: + yy.commit("", $$[$0], $$[$0 - 4], $$[$0 - 2]); + break; + case 66: + yy.commit("", $$[$0], $$[$0 - 2], $$[$0 - 4]); + break; + case 67: + yy.commit("", $$[$0 - 2], $$[$0], $$[$0 - 4]); + break; + case 68: + yy.commit($$[$0], "", yy.commitType.NORMAL, ""); + break; + case 69: + yy.commit($$[$0], "", yy.commitType.NORMAL, $$[$0 - 2]); + break; + case 70: + yy.commit($$[$0 - 2], "", yy.commitType.NORMAL, $$[$0]); + break; + case 71: + yy.commit($$[$0 - 2], "", $$[$0], ""); + break; + case 72: + yy.commit($$[$0], "", $$[$0 - 2], ""); + break; + case 73: + yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, ""); + break; + case 74: + yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, ""); + break; + case 75: + yy.commit($$[$0 - 4], "", $$[$0 - 2], $$[$0]); + break; + case 76: + yy.commit($$[$0 - 4], "", $$[$0], $$[$0 - 2]); + break; + case 77: + yy.commit($$[$0 - 2], "", $$[$0 - 4], $$[$0]); + break; + case 78: + yy.commit($$[$0], "", $$[$0 - 4], $$[$0 - 2]); + break; + case 79: + yy.commit($$[$0], "", $$[$0 - 2], $$[$0 - 4]); + break; + case 80: + yy.commit($$[$0 - 2], "", $$[$0], $$[$0 - 4]); + break; + case 81: + yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], ""); + break; + case 82: + yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], ""); + break; + case 83: + yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], ""); + break; + case 84: + yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], ""); + break; + case 85: + yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], ""); + break; + case 86: + yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], ""); + break; + case 87: + yy.commit($$[$0 - 4], $$[$0], yy.commitType.NORMAL, $$[$0 - 2]); + break; + case 88: + yy.commit($$[$0 - 4], $$[$0 - 2], yy.commitType.NORMAL, $$[$0]); + break; + case 89: + yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, $$[$0 - 4]); + break; + case 90: + yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, $$[$0 - 4]); + break; + case 91: + yy.commit($$[$0], $$[$0 - 4], yy.commitType.NORMAL, $$[$0 - 2]); + break; + case 92: + yy.commit($$[$0 - 2], $$[$0 - 4], yy.commitType.NORMAL, $$[$0]); + break; + case 93: + yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]); + break; + case 94: + yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]); + break; + case 95: + yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]); + break; + case 96: + yy.commit($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]); + break; + case 97: + yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]); + break; + case 98: + yy.commit($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]); + break; + case 99: + yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0 - 2], $$[$0]); + break; + case 100: + yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0], $$[$0 - 2]); + break; + case 101: + yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0 - 4], $$[$0]); + break; + case 102: + yy.commit($$[$0], $$[$0 - 6], $$[$0 - 4], $$[$0 - 2]); + break; + case 103: + yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0], $$[$0 - 4]); + break; + case 104: + yy.commit($$[$0], $$[$0 - 6], $$[$0 - 2], $$[$0 - 4]); + break; + case 105: + yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], $$[$0 - 6]); + break; + case 106: + yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], $$[$0 - 6]); + break; + case 107: + yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], $$[$0 - 6]); + break; + case 108: + yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], $$[$0 - 6]); + break; + case 109: + yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], $$[$0 - 6]); + break; + case 110: + yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 6]); + break; + case 111: + yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0 - 6], $$[$0]); + break; + case 112: + yy.commit($$[$0], $$[$0 - 4], $$[$0 - 6], $$[$0 - 2]); + break; + case 113: + yy.commit($$[$0 - 2], $$[$0], $$[$0 - 6], $$[$0 - 4]); + break; + case 114: + yy.commit($$[$0], $$[$0 - 2], $$[$0 - 6], $$[$0 - 4]); + break; + case 115: + yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0 - 6], $$[$0]); + break; + case 116: + yy.commit($$[$0 - 4], $$[$0], $$[$0 - 6], $$[$0 - 2]); + break; + case 117: + this.$ = ""; + break; + case 118: + this.$ = $$[$0]; + break; + case 119: + this.$ = yy.commitType.NORMAL; + break; + case 120: + this.$ = yy.commitType.REVERSE; + break; + case 121: + this.$ = yy.commitType.HIGHLIGHT; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: $V0, 7: $V1, 13: $V2, 47: $V3 }, { 1: [3] }, { 3: 7, 4: 2, 5: $V0, 7: $V1, 13: $V2, 47: $V3 }, { 6: 8, 7: $V4, 8: [1, 9], 9: [1, 10], 10: 11, 13: $V5 }, o($V6, [2, 124]), o($V6, [2, 125]), o($V6, [2, 126]), { 1: [2, 1] }, { 7: [1, 13] }, { 6: 14, 7: $V4, 10: 11, 13: $V5 }, { 8: [1, 15] }, o($V7, [2, 9], { 11: 16, 12: [1, 17] }), o($V8, [2, 8]), { 1: [2, 2] }, { 7: [1, 18] }, { 6: 19, 7: $V4, 10: 11, 13: $V5 }, { 7: [2, 6], 13: [1, 22], 14: 20, 15: 21, 16: 23, 17: 24, 18: 25, 19: [1, 26], 21: [1, 27], 23: [1, 28], 24: [1, 29], 25: 30, 26: [1, 31], 28: [1, 35], 31: [1, 34], 37: [1, 33], 40: [1, 32] }, o($V8, [2, 7]), { 1: [2, 3] }, { 7: [1, 36] }, o($V7, [2, 10]), { 4: 37, 7: $V1, 13: $V2, 47: $V3 }, o($V7, [2, 12]), o($V9, [2, 13]), o($V9, [2, 14]), o($V9, [2, 15]), { 20: [1, 38] }, { 22: [1, 39] }, o($V9, [2, 18]), o($V9, [2, 19]), o($V9, [2, 20]), { 27: 40, 33: $Va, 46: $Vb }, o($V9, [2, 117], { 41: 43, 32: [1, 46], 33: [1, 48], 35: [1, 44], 38: [1, 45], 42: [1, 47] }), { 27: 49, 33: $Va, 46: $Vb }, { 32: [1, 50], 35: [1, 51] }, { 27: 52, 33: $Va, 46: $Vb }, { 1: [2, 4] }, o($V7, [2, 11]), o($V9, [2, 16]), o($V9, [2, 17]), o($V9, [2, 21]), o($Vc, [2, 122]), o($Vc, [2, 123]), o($V9, [2, 52]), { 33: [1, 53] }, { 39: 54, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 58] }, { 33: [1, 59] }, o($V9, [2, 118]), o($V9, [2, 36], { 32: [1, 60], 35: [1, 62], 38: [1, 61] }), { 33: [1, 63] }, { 33: [1, 64], 36: [1, 65] }, o($V9, [2, 22], { 29: [1, 66] }), o($V9, [2, 53], { 32: [1, 68], 38: [1, 67], 42: [1, 69] }), o($V9, [2, 54], { 32: [1, 71], 35: [1, 70], 42: [1, 72] }), o($Vg, [2, 119]), o($Vg, [2, 120]), o($Vg, [2, 121]), o($V9, [2, 57], { 35: [1, 73], 38: [1, 74], 42: [1, 75] }), o($V9, [2, 68], { 32: [1, 78], 35: [1, 76], 38: [1, 77] }), { 33: [1, 79] }, { 39: 80, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 81] }, o($V9, [2, 24], { 34: [1, 82], 35: [1, 83] }), { 32: [1, 84] }, { 32: [1, 85] }, { 30: [1, 86] }, { 39: 87, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 88] }, { 33: [1, 89] }, { 33: [1, 90] }, { 33: [1, 91] }, { 33: [1, 92] }, { 33: [1, 93] }, { 39: 94, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 95] }, { 33: [1, 96] }, { 39: 97, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 98] }, o($V9, [2, 37], { 35: [1, 100], 38: [1, 99] }), o($V9, [2, 38], { 32: [1, 102], 35: [1, 101] }), o($V9, [2, 39], { 32: [1, 103], 38: [1, 104] }), { 33: [1, 105] }, { 33: [1, 106], 36: [1, 107] }, { 33: [1, 108] }, { 33: [1, 109] }, o($V9, [2, 23]), o($V9, [2, 55], { 32: [1, 110], 42: [1, 111] }), o($V9, [2, 59], { 38: [1, 112], 42: [1, 113] }), o($V9, [2, 69], { 32: [1, 115], 38: [1, 114] }), o($V9, [2, 56], { 32: [1, 116], 42: [1, 117] }), o($V9, [2, 61], { 35: [1, 118], 42: [1, 119] }), o($V9, [2, 72], { 32: [1, 121], 35: [1, 120] }), o($V9, [2, 58], { 38: [1, 122], 42: [1, 123] }), o($V9, [2, 60], { 35: [1, 124], 42: [1, 125] }), o($V9, [2, 73], { 35: [1, 127], 38: [1, 126] }), o($V9, [2, 70], { 32: [1, 129], 38: [1, 128] }), o($V9, [2, 71], { 32: [1, 131], 35: [1, 130] }), o($V9, [2, 74], { 35: [1, 133], 38: [1, 132] }), { 39: 134, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 135] }, { 33: [1, 136] }, { 33: [1, 137] }, { 33: [1, 138] }, { 39: 139, 43: $Vd, 44: $Ve, 45: $Vf }, o($V9, [2, 25], { 35: [1, 140] }), o($V9, [2, 26], { 34: [1, 141] }), o($V9, [2, 31], { 34: [1, 142] }), o($V9, [2, 29], { 34: [1, 143] }), o($V9, [2, 30], { 34: [1, 144] }), { 33: [1, 145] }, { 33: [1, 146] }, { 39: 147, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 148] }, { 39: 149, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 150] }, { 33: [1, 151] }, { 33: [1, 152] }, { 33: [1, 153] }, { 33: [1, 154] }, { 33: [1, 155] }, { 33: [1, 156] }, { 39: 157, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 158] }, { 33: [1, 159] }, { 33: [1, 160] }, { 39: 161, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 162] }, { 39: 163, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 164] }, { 33: [1, 165] }, { 33: [1, 166] }, { 39: 167, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 168] }, o($V9, [2, 43], { 35: [1, 169] }), o($V9, [2, 44], { 38: [1, 170] }), o($V9, [2, 42], { 32: [1, 171] }), o($V9, [2, 45], { 35: [1, 172] }), o($V9, [2, 40], { 38: [1, 173] }), o($V9, [2, 41], { 32: [1, 174] }), { 33: [1, 175], 36: [1, 176] }, { 33: [1, 177] }, { 33: [1, 178] }, { 33: [1, 179] }, { 33: [1, 180] }, o($V9, [2, 66], { 42: [1, 181] }), o($V9, [2, 79], { 32: [1, 182] }), o($V9, [2, 67], { 42: [1, 183] }), o($V9, [2, 90], { 38: [1, 184] }), o($V9, [2, 80], { 32: [1, 185] }), o($V9, [2, 89], { 38: [1, 186] }), o($V9, [2, 65], { 42: [1, 187] }), o($V9, [2, 78], { 32: [1, 188] }), o($V9, [2, 64], { 42: [1, 189] }), o($V9, [2, 84], { 35: [1, 190] }), o($V9, [2, 77], { 32: [1, 191] }), o($V9, [2, 83], { 35: [1, 192] }), o($V9, [2, 63], { 42: [1, 193] }), o($V9, [2, 91], { 38: [1, 194] }), o($V9, [2, 62], { 42: [1, 195] }), o($V9, [2, 85], { 35: [1, 196] }), o($V9, [2, 86], { 35: [1, 197] }), o($V9, [2, 92], { 38: [1, 198] }), o($V9, [2, 76], { 32: [1, 199] }), o($V9, [2, 87], { 38: [1, 200] }), o($V9, [2, 75], { 32: [1, 201] }), o($V9, [2, 81], { 35: [1, 202] }), o($V9, [2, 82], { 35: [1, 203] }), o($V9, [2, 88], { 38: [1, 204] }), { 33: [1, 205] }, { 39: 206, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 207] }, { 33: [1, 208] }, { 39: 209, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 210] }, o($V9, [2, 27]), o($V9, [2, 32]), o($V9, [2, 28]), o($V9, [2, 33]), o($V9, [2, 34]), o($V9, [2, 35]), { 33: [1, 211] }, { 33: [1, 212] }, { 33: [1, 213] }, { 39: 214, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 215] }, { 39: 216, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 217] }, { 33: [1, 218] }, { 33: [1, 219] }, { 33: [1, 220] }, { 33: [1, 221] }, { 33: [1, 222] }, { 33: [1, 223] }, { 39: 224, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 225] }, { 33: [1, 226] }, { 33: [1, 227] }, { 39: 228, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 229] }, { 39: 230, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 231] }, { 33: [1, 232] }, { 33: [1, 233] }, { 39: 234, 43: $Vd, 44: $Ve, 45: $Vf }, o($V9, [2, 46]), o($V9, [2, 48]), o($V9, [2, 47]), o($V9, [2, 49]), o($V9, [2, 51]), o($V9, [2, 50]), o($V9, [2, 107]), o($V9, [2, 108]), o($V9, [2, 105]), o($V9, [2, 106]), o($V9, [2, 110]), o($V9, [2, 109]), o($V9, [2, 114]), o($V9, [2, 113]), o($V9, [2, 112]), o($V9, [2, 111]), o($V9, [2, 116]), o($V9, [2, 115]), o($V9, [2, 104]), o($V9, [2, 103]), o($V9, [2, 102]), o($V9, [2, 101]), o($V9, [2, 99]), o($V9, [2, 100]), o($V9, [2, 98]), o($V9, [2, 97]), o($V9, [2, 96]), o($V9, [2, 95]), o($V9, [2, 93]), o($V9, [2, 94])], + defaultActions: { 7: [2, 1], 13: [2, 2], 18: [2, 3], 36: [2, 4] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + this.begin("acc_title"); + return 19; + case 1: + this.popState(); + return "acc_title_value"; + case 2: + this.begin("acc_descr"); + return 21; + case 3: + this.popState(); + return "acc_descr_value"; + case 4: + this.begin("acc_descr_multiline"); + break; + case 5: + this.popState(); + break; + case 6: + return "acc_descr_multiline_value"; + case 7: + return 13; + case 8: + break; + case 9: + break; + case 10: + return 5; + case 11: + return 40; + case 12: + return 32; + case 13: + return 38; + case 14: + return 42; + case 15: + return 43; + case 16: + return 44; + case 17: + return 45; + case 18: + return 35; + case 19: + return 28; + case 20: + return 29; + case 21: + return 37; + case 22: + return 31; + case 23: + return 34; + case 24: + return 26; + case 25: + return 9; + case 26: + return 9; + case 27: + return 8; + case 28: + return "CARET"; + case 29: + this.begin("options"); + break; + case 30: + this.popState(); + break; + case 31: + return 12; + case 32: + return 36; + case 33: + this.begin("string"); + break; + case 34: + this.popState(); + break; + case 35: + return 33; + case 36: + return 30; + case 37: + return 46; + case 38: + return 7; + } + }, + rules: [/^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:gitGraph\b)/i, /^(?:commit(?=\s|$))/i, /^(?:id:)/i, /^(?:type:)/i, /^(?:msg:)/i, /^(?:NORMAL\b)/i, /^(?:REVERSE\b)/i, /^(?:HIGHLIGHT\b)/i, /^(?:tag:)/i, /^(?:branch(?=\s|$))/i, /^(?:order:)/i, /^(?:merge(?=\s|$))/i, /^(?:cherry-pick(?=\s|$))/i, /^(?:parent:)/i, /^(?:checkout(?=\s|$))/i, /^(?:LR\b)/i, /^(?:TB\b)/i, /^(?::)/i, /^(?:\^)/i, /^(?:options\r?\n)/i, /^(?:[ \r\n\t]+end\b)/i, /^(?:[\s\S]+(?=[ \r\n\t]+end))/i, /^(?:["]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[0-9]+(?=\s|$))/i, /^(?:\w([-\./\w]*[-\w])?)/i, /^(?:$)/i, /^(?:\s+)/i], + conditions: { "acc_descr_multiline": { "rules": [5, 6], "inclusive": false }, "acc_descr": { "rules": [3], "inclusive": false }, "acc_title": { "rules": [1], "inclusive": false }, "options": { "rules": [30, 31], "inclusive": false }, "string": { "rules": [34, 35], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 36, 37, 38, 39], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const gitGraphParser = parser; +let mainBranchName = getConfig().gitGraph.mainBranchName; +let mainBranchOrder = getConfig().gitGraph.mainBranchOrder; +let commits = {}; +let head = null; +let branchesConfig = {}; +branchesConfig[mainBranchName] = { name: mainBranchName, order: mainBranchOrder }; +let branches = {}; +branches[mainBranchName] = head; +let curBranch = mainBranchName; +let direction = "LR"; +let seq = 0; +function getId() { + return random({ length: 7 }); +} +function uniqBy(list, fn) { + const recordMap = /* @__PURE__ */ Object.create(null); + return list.reduce((out, item) => { + const key = fn(item); + if (!recordMap[key]) { + recordMap[key] = true; + out.push(item); + } + return out; + }, []); +} +const setDirection = function(dir2) { + direction = dir2; +}; +let options = {}; +const setOptions = function(rawOptString) { + log.debug("options str", rawOptString); + rawOptString = rawOptString && rawOptString.trim(); + rawOptString = rawOptString || "{}"; + try { + options = JSON.parse(rawOptString); + } catch (e) { + log.error("error while parsing gitGraph options", e.message); + } +}; +const getOptions = function() { + return options; +}; +const commit = function(msg, id, type, tag) { + log.debug("Entering commit:", msg, id, type, tag); + id = common.sanitizeText(id, getConfig()); + msg = common.sanitizeText(msg, getConfig()); + tag = common.sanitizeText(tag, getConfig()); + const commit2 = { + id: id ? id : seq + "-" + getId(), + message: msg, + seq: seq++, + type: type ? type : commitType$1.NORMAL, + tag: tag ? tag : "", + parents: head == null ? [] : [head.id], + branch: curBranch + }; + head = commit2; + commits[commit2.id] = commit2; + branches[curBranch] = commit2.id; + log.debug("in pushCommit " + commit2.id); +}; +const branch = function(name, order) { + name = common.sanitizeText(name, getConfig()); + if (branches[name] === void 0) { + branches[name] = head != null ? head.id : null; + branchesConfig[name] = { name, order: order ? parseInt(order, 10) : null }; + checkout(name); + log.debug("in createBranch"); + } else { + let error = new Error( + 'Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ' + name + '")' + ); + error.hash = { + text: "branch " + name, + token: "branch " + name, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ['"checkout ' + name + '"'] + }; + throw error; + } +}; +const merge = function(otherBranch, custom_id, override_type, custom_tag) { + otherBranch = common.sanitizeText(otherBranch, getConfig()); + custom_id = common.sanitizeText(custom_id, getConfig()); + const currentCommit = commits[branches[curBranch]]; + const otherCommit = commits[branches[otherBranch]]; + if (curBranch === otherBranch) { + let error = new Error('Incorrect usage of "merge". Cannot merge a branch to itself'); + error.hash = { + text: "merge " + otherBranch, + token: "merge " + otherBranch, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["branch abc"] + }; + throw error; + } else if (currentCommit === void 0 || !currentCommit) { + let error = new Error( + 'Incorrect usage of "merge". Current branch (' + curBranch + ")has no commits" + ); + error.hash = { + text: "merge " + otherBranch, + token: "merge " + otherBranch, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["commit"] + }; + throw error; + } else if (branches[otherBranch] === void 0) { + let error = new Error( + 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") does not exist" + ); + error.hash = { + text: "merge " + otherBranch, + token: "merge " + otherBranch, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["branch " + otherBranch] + }; + throw error; + } else if (otherCommit === void 0 || !otherCommit) { + let error = new Error( + 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") has no commits" + ); + error.hash = { + text: "merge " + otherBranch, + token: "merge " + otherBranch, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ['"commit"'] + }; + throw error; + } else if (currentCommit === otherCommit) { + let error = new Error('Incorrect usage of "merge". Both branches have same head'); + error.hash = { + text: "merge " + otherBranch, + token: "merge " + otherBranch, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["branch abc"] + }; + throw error; + } else if (custom_id && commits[custom_id] !== void 0) { + let error = new Error( + 'Incorrect usage of "merge". Commit with id:' + custom_id + " already exists, use different custom Id" + ); + error.hash = { + text: "merge " + otherBranch + custom_id + override_type + custom_tag, + token: "merge " + otherBranch + custom_id + override_type + custom_tag, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: [ + "merge " + otherBranch + " " + custom_id + "_UNIQUE " + override_type + " " + custom_tag + ] + }; + throw error; + } + const commit2 = { + id: custom_id ? custom_id : seq + "-" + getId(), + message: "merged branch " + otherBranch + " into " + curBranch, + seq: seq++, + parents: [head == null ? null : head.id, branches[otherBranch]], + branch: curBranch, + type: commitType$1.MERGE, + customType: override_type, + customId: custom_id ? true : false, + tag: custom_tag ? custom_tag : "" + }; + head = commit2; + commits[commit2.id] = commit2; + branches[curBranch] = commit2.id; + log.debug(branches); + log.debug("in mergeBranch"); +}; +const cherryPick = function(sourceId, targetId, tag, parentCommitId) { + log.debug("Entering cherryPick:", sourceId, targetId, tag); + sourceId = common.sanitizeText(sourceId, getConfig()); + targetId = common.sanitizeText(targetId, getConfig()); + tag = common.sanitizeText(tag, getConfig()); + parentCommitId = common.sanitizeText(parentCommitId, getConfig()); + if (!sourceId || commits[sourceId] === void 0) { + let error = new Error( + 'Incorrect usage of "cherryPick". Source commit id should exist and provided' + ); + error.hash = { + text: "cherryPick " + sourceId + " " + targetId, + token: "cherryPick " + sourceId + " " + targetId, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["cherry-pick abc"] + }; + throw error; + } + let sourceCommit = commits[sourceId]; + let sourceCommitBranch = sourceCommit.branch; + if (parentCommitId && !(Array.isArray(sourceCommit.parents) && sourceCommit.parents.includes(parentCommitId))) { + let error = new Error( + "Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit." + ); + throw error; + } + if (sourceCommit.type === commitType$1.MERGE && !parentCommitId) { + let error = new Error( + "Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified." + ); + throw error; + } + if (!targetId || commits[targetId] === void 0) { + if (sourceCommitBranch === curBranch) { + let error = new Error( + 'Incorrect usage of "cherryPick". Source commit is already on current branch' + ); + error.hash = { + text: "cherryPick " + sourceId + " " + targetId, + token: "cherryPick " + sourceId + " " + targetId, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["cherry-pick abc"] + }; + throw error; + } + const currentCommit = commits[branches[curBranch]]; + if (currentCommit === void 0 || !currentCommit) { + let error = new Error( + 'Incorrect usage of "cherry-pick". Current branch (' + curBranch + ")has no commits" + ); + error.hash = { + text: "cherryPick " + sourceId + " " + targetId, + token: "cherryPick " + sourceId + " " + targetId, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["cherry-pick abc"] + }; + throw error; + } + const commit2 = { + id: seq + "-" + getId(), + message: "cherry-picked " + sourceCommit + " into " + curBranch, + seq: seq++, + parents: [head == null ? null : head.id, sourceCommit.id], + branch: curBranch, + type: commitType$1.CHERRY_PICK, + tag: tag ?? `cherry-pick:${sourceCommit.id}${sourceCommit.type === commitType$1.MERGE ? `|parent:${parentCommitId}` : ""}` + }; + head = commit2; + commits[commit2.id] = commit2; + branches[curBranch] = commit2.id; + log.debug(branches); + log.debug("in cherryPick"); + } +}; +const checkout = function(branch2) { + branch2 = common.sanitizeText(branch2, getConfig()); + if (branches[branch2] === void 0) { + let error = new Error( + 'Trying to checkout branch which is not yet created. (Help try using "branch ' + branch2 + '")' + ); + error.hash = { + text: "checkout " + branch2, + token: "checkout " + branch2, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ['"branch ' + branch2 + '"'] + }; + throw error; + } else { + curBranch = branch2; + const id = branches[curBranch]; + head = commits[id]; + } +}; +function upsert(arr, key, newVal) { + const index = arr.indexOf(key); + if (index === -1) { + arr.push(newVal); + } else { + arr.splice(index, 1, newVal); + } +} +function prettyPrintCommitHistory(commitArr) { + const commit2 = commitArr.reduce((out, commit3) => { + if (out.seq > commit3.seq) { + return out; + } + return commit3; + }, commitArr[0]); + let line = ""; + commitArr.forEach(function(c) { + if (c === commit2) { + line += " *"; + } else { + line += " |"; + } + }); + const label = [line, commit2.id, commit2.seq]; + for (let branch2 in branches) { + if (branches[branch2] === commit2.id) { + label.push(branch2); + } + } + log.debug(label.join(" ")); + if (commit2.parents && commit2.parents.length == 2) { + const newCommit = commits[commit2.parents[0]]; + upsert(commitArr, commit2, newCommit); + commitArr.push(commits[commit2.parents[1]]); + } else if (commit2.parents.length == 0) { + return; + } else { + const nextCommit = commits[commit2.parents]; + upsert(commitArr, commit2, nextCommit); + } + commitArr = uniqBy(commitArr, (c) => c.id); + prettyPrintCommitHistory(commitArr); +} +const prettyPrint = function() { + log.debug(commits); + const node = getCommitsArray()[0]; + prettyPrintCommitHistory([node]); +}; +const clear$1 = function() { + commits = {}; + head = null; + let mainBranch = getConfig().gitGraph.mainBranchName; + let mainBranchOrder2 = getConfig().gitGraph.mainBranchOrder; + branches = {}; + branches[mainBranch] = null; + branchesConfig = {}; + branchesConfig[mainBranch] = { name: mainBranch, order: mainBranchOrder2 }; + curBranch = mainBranch; + seq = 0; + clear$2(); +}; +const getBranchesAsObjArray = function() { + const branchesArray = Object.values(branchesConfig).map((branchConfig, i) => { + if (branchConfig.order !== null) { + return branchConfig; + } + return { + ...branchConfig, + order: parseFloat(`0.${i}`, 10) + }; + }).sort((a, b) => a.order - b.order).map(({ name }) => ({ name })); + return branchesArray; +}; +const getBranches = function() { + return branches; +}; +const getCommits = function() { + return commits; +}; +const getCommitsArray = function() { + const commitArr = Object.keys(commits).map(function(key) { + return commits[key]; + }); + commitArr.forEach(function(o) { + log.debug(o.id); + }); + commitArr.sort((a, b) => a.seq - b.seq); + return commitArr; +}; +const getCurrentBranch = function() { + return curBranch; +}; +const getDirection = function() { + return direction; +}; +const getHead = function() { + return head; +}; +const commitType$1 = { + NORMAL: 0, + REVERSE: 1, + HIGHLIGHT: 2, + MERGE: 3, + CHERRY_PICK: 4 +}; +const gitGraphDb = { + getConfig: () => getConfig().gitGraph, + setDirection, + setOptions, + getOptions, + commit, + branch, + merge, + cherryPick, + checkout, + //reset, + prettyPrint, + clear: clear$1, + getBranchesAsObjArray, + getBranches, + getCommits, + getCommitsArray, + getCurrentBranch, + getDirection, + getHead, + setAccTitle, + getAccTitle, + getAccDescription, + setAccDescription, + setDiagramTitle, + getDiagramTitle, + commitType: commitType$1 +}; +let allCommitsDict = {}; +const commitType = { + NORMAL: 0, + REVERSE: 1, + HIGHLIGHT: 2, + MERGE: 3, + CHERRY_PICK: 4 +}; +const THEME_COLOR_LIMIT = 8; +let branchPos = {}; +let commitPos = {}; +let lanes = []; +let maxPos = 0; +let dir = "LR"; +const clear = () => { + branchPos = {}; + commitPos = {}; + allCommitsDict = {}; + maxPos = 0; + lanes = []; + dir = "LR"; +}; +const drawText = (txt) => { + const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text"); + let rows = []; + if (typeof txt === "string") { + rows = txt.split(/\\n|\n|/gi); + } else if (Array.isArray(txt)) { + rows = txt; + } else { + rows = []; + } + for (const row of rows) { + const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"); + tspan.setAttribute("dy", "1em"); + tspan.setAttribute("x", "0"); + tspan.setAttribute("class", "row"); + tspan.textContent = row.trim(); + svgLabel.appendChild(tspan); + } + return svgLabel; +}; +const findClosestParent = (parents) => { + let closestParent = ""; + let maxPosition = 0; + parents.forEach((parent) => { + const parentPosition = dir === "TB" ? commitPos[parent].y : commitPos[parent].x; + if (parentPosition >= maxPosition) { + closestParent = parent; + maxPosition = parentPosition; + } + }); + return closestParent || void 0; +}; +const drawCommits = (svg, commits2, modifyGraph) => { + const gitGraphConfig = getConfig().gitGraph; + const gBullets = svg.append("g").attr("class", "commit-bullets"); + const gLabels = svg.append("g").attr("class", "commit-labels"); + let pos = 0; + if (dir === "TB") { + pos = 30; + } + const keys = Object.keys(commits2); + const sortedKeys = keys.sort((a, b) => { + return commits2[a].seq - commits2[b].seq; + }); + const isParallelCommits = gitGraphConfig.parallelCommits; + const layoutOffset = 10; + const commitStep = 40; + sortedKeys.forEach((key) => { + const commit2 = commits2[key]; + if (isParallelCommits) { + if (commit2.parents.length) { + const closestParent = findClosestParent(commit2.parents); + pos = dir === "TB" ? commitPos[closestParent].y + commitStep : commitPos[closestParent].x + commitStep; + } else { + pos = 0; + if (dir === "TB") { + pos = 30; + } + } + } + const posWithOffset = pos + layoutOffset; + const y = dir === "TB" ? posWithOffset : branchPos[commit2.branch].pos; + const x = dir === "TB" ? branchPos[commit2.branch].pos : posWithOffset; + if (modifyGraph) { + let typeClass; + let commitSymbolType = commit2.customType !== void 0 && commit2.customType !== "" ? commit2.customType : commit2.type; + switch (commitSymbolType) { + case commitType.NORMAL: + typeClass = "commit-normal"; + break; + case commitType.REVERSE: + typeClass = "commit-reverse"; + break; + case commitType.HIGHLIGHT: + typeClass = "commit-highlight"; + break; + case commitType.MERGE: + typeClass = "commit-merge"; + break; + case commitType.CHERRY_PICK: + typeClass = "commit-cherry-pick"; + break; + default: + typeClass = "commit-normal"; + } + if (commitSymbolType === commitType.HIGHLIGHT) { + const circle = gBullets.append("rect"); + circle.attr("x", x - 10); + circle.attr("y", y - 10); + circle.attr("height", 20); + circle.attr("width", 20); + circle.attr( + "class", + `commit ${commit2.id} commit-highlight${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-outer` + ); + gBullets.append("rect").attr("x", x - 6).attr("y", y - 6).attr("height", 12).attr("width", 12).attr( + "class", + `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-inner` + ); + } else if (commitSymbolType === commitType.CHERRY_PICK) { + gBullets.append("circle").attr("cx", x).attr("cy", y).attr("r", 10).attr("class", `commit ${commit2.id} ${typeClass}`); + gBullets.append("circle").attr("cx", x - 3).attr("cy", y + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`); + gBullets.append("circle").attr("cx", x + 3).attr("cy", y + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`); + gBullets.append("line").attr("x1", x + 3).attr("y1", y + 1).attr("x2", x).attr("y2", y - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`); + gBullets.append("line").attr("x1", x - 3).attr("y1", y + 1).attr("x2", x).attr("y2", y - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`); + } else { + const circle = gBullets.append("circle"); + circle.attr("cx", x); + circle.attr("cy", y); + circle.attr("r", commit2.type === commitType.MERGE ? 9 : 10); + circle.attr( + "class", + `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}` + ); + if (commitSymbolType === commitType.MERGE) { + const circle2 = gBullets.append("circle"); + circle2.attr("cx", x); + circle2.attr("cy", y); + circle2.attr("r", 6); + circle2.attr( + "class", + `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}` + ); + } + if (commitSymbolType === commitType.REVERSE) { + const cross = gBullets.append("path"); + cross.attr("d", `M ${x - 5},${y - 5}L${x + 5},${y + 5}M${x - 5},${y + 5}L${x + 5},${y - 5}`).attr( + "class", + `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}` + ); + } + } + } + if (dir === "TB") { + commitPos[commit2.id] = { x, y: posWithOffset }; + } else { + commitPos[commit2.id] = { x: posWithOffset, y }; + } + if (modifyGraph) { + const px = 4; + const py = 2; + if (commit2.type !== commitType.CHERRY_PICK && (commit2.customId && commit2.type === commitType.MERGE || commit2.type !== commitType.MERGE) && gitGraphConfig.showCommitLabel) { + const wrapper = gLabels.append("g"); + const labelBkg = wrapper.insert("rect").attr("class", "commit-label-bkg"); + const text = wrapper.append("text").attr("x", pos).attr("y", y + 25).attr("class", "commit-label").text(commit2.id); + let bbox = text.node().getBBox(); + labelBkg.attr("x", posWithOffset - bbox.width / 2 - py).attr("y", y + 13.5).attr("width", bbox.width + 2 * py).attr("height", bbox.height + 2 * py); + if (dir === "TB") { + labelBkg.attr("x", x - (bbox.width + 4 * px + 5)).attr("y", y - 12); + text.attr("x", x - (bbox.width + 4 * px)).attr("y", y + bbox.height - 12); + } + if (dir !== "TB") { + text.attr("x", posWithOffset - bbox.width / 2); + } + if (gitGraphConfig.rotateCommitLabel) { + if (dir === "TB") { + text.attr("transform", "rotate(-45, " + x + ", " + y + ")"); + labelBkg.attr("transform", "rotate(-45, " + x + ", " + y + ")"); + } else { + let r_x = -7.5 - (bbox.width + 10) / 25 * 9.5; + let r_y = 10 + bbox.width / 25 * 8.5; + wrapper.attr( + "transform", + "translate(" + r_x + ", " + r_y + ") rotate(-45, " + pos + ", " + y + ")" + ); + } + } + } + if (commit2.tag) { + const rect = gLabels.insert("polygon"); + const hole = gLabels.append("circle"); + const tag = gLabels.append("text").attr("y", y - 16).attr("class", "tag-label").text(commit2.tag); + let tagBbox = tag.node().getBBox(); + tag.attr("x", posWithOffset - tagBbox.width / 2); + const h2 = tagBbox.height / 2; + const ly = y - 19.2; + rect.attr("class", "tag-label-bkg").attr( + "points", + ` + ${pos - tagBbox.width / 2 - px / 2},${ly + py} + ${pos - tagBbox.width / 2 - px / 2},${ly - py} + ${posWithOffset - tagBbox.width / 2 - px},${ly - h2 - py} + ${posWithOffset + tagBbox.width / 2 + px},${ly - h2 - py} + ${posWithOffset + tagBbox.width / 2 + px},${ly + h2 + py} + ${posWithOffset - tagBbox.width / 2 - px},${ly + h2 + py}` + ); + hole.attr("cx", pos - tagBbox.width / 2 + px / 2).attr("cy", ly).attr("r", 1.5).attr("class", "tag-hole"); + if (dir === "TB") { + rect.attr("class", "tag-label-bkg").attr( + "points", + ` + ${x},${pos + py} + ${x},${pos - py} + ${x + layoutOffset},${pos - h2 - py} + ${x + layoutOffset + tagBbox.width + px},${pos - h2 - py} + ${x + layoutOffset + tagBbox.width + px},${pos + h2 + py} + ${x + layoutOffset},${pos + h2 + py}` + ).attr("transform", "translate(12,12) rotate(45, " + x + "," + pos + ")"); + hole.attr("cx", x + px / 2).attr("cy", pos).attr("transform", "translate(12,12) rotate(45, " + x + "," + pos + ")"); + tag.attr("x", x + 5).attr("y", pos + 3).attr("transform", "translate(14,14) rotate(45, " + x + "," + pos + ")"); + } + } + } + pos += commitStep + layoutOffset; + if (pos > maxPos) { + maxPos = pos; + } + }); +}; +const shouldRerouteArrow = (commitA, commitB, p1, p2, allCommits) => { + const commitBIsFurthest = dir === "TB" ? p1.x < p2.x : p1.y < p2.y; + const branchToGetCurve = commitBIsFurthest ? commitB.branch : commitA.branch; + const isOnBranchToGetCurve = (x) => x.branch === branchToGetCurve; + const isBetweenCommits = (x) => x.seq > commitA.seq && x.seq < commitB.seq; + return Object.values(allCommits).some((commitX) => { + return isBetweenCommits(commitX) && isOnBranchToGetCurve(commitX); + }); +}; +const findLane = (y1, y2, depth = 0) => { + const candidate = y1 + Math.abs(y1 - y2) / 2; + if (depth > 5) { + return candidate; + } + let ok = lanes.every((lane) => Math.abs(lane - candidate) >= 10); + if (ok) { + lanes.push(candidate); + return candidate; + } + const diff = Math.abs(y1 - y2); + return findLane(y1, y2 - diff / 5, depth + 1); +}; +const drawArrow = (svg, commitA, commitB, allCommits) => { + const p1 = commitPos[commitA.id]; + const p2 = commitPos[commitB.id]; + const arrowNeedsRerouting = shouldRerouteArrow(commitA, commitB, p1, p2, allCommits); + let arc = ""; + let arc2 = ""; + let radius = 0; + let offset = 0; + let colorClassNum = branchPos[commitB.branch].index; + if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) { + colorClassNum = branchPos[commitA.branch].index; + } + let lineDef; + if (arrowNeedsRerouting) { + arc = "A 10 10, 0, 0, 0,"; + arc2 = "A 10 10, 0, 0, 1,"; + radius = 10; + offset = 10; + const lineY = p1.y < p2.y ? findLane(p1.y, p2.y) : findLane(p2.y, p1.y); + const lineX = p1.x < p2.x ? findLane(p1.x, p2.x) : findLane(p2.x, p1.x); + if (dir === "TB") { + if (p1.x < p2.x) { + lineDef = `M ${p1.x} ${p1.y} L ${lineX - radius} ${p1.y} ${arc2} ${lineX} ${p1.y + offset} L ${lineX} ${p2.y - radius} ${arc} ${lineX + offset} ${p2.y} L ${p2.x} ${p2.y}`; + } else { + colorClassNum = branchPos[commitA.branch].index; + lineDef = `M ${p1.x} ${p1.y} L ${lineX + radius} ${p1.y} ${arc} ${lineX} ${p1.y + offset} L ${lineX} ${p2.y - radius} ${arc2} ${lineX - offset} ${p2.y} L ${p2.x} ${p2.y}`; + } + } else { + if (p1.y < p2.y) { + lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY - radius} ${arc} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc2} ${p2.x} ${lineY + offset} L ${p2.x} ${p2.y}`; + } else { + colorClassNum = branchPos[commitA.branch].index; + lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY + radius} ${arc2} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc} ${p2.x} ${lineY - offset} L ${p2.x} ${p2.y}`; + } + } + } else { + arc = "A 20 20, 0, 0, 0,"; + arc2 = "A 20 20, 0, 0, 1,"; + radius = 20; + offset = 20; + if (dir === "TB") { + if (p1.x < p2.x) { + if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) { + lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`; + } else { + lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc2} ${p2.x} ${p1.y + offset} L ${p2.x} ${p2.y}`; + } + } + if (p1.x > p2.x) { + arc = "A 20 20, 0, 0, 0,"; + arc2 = "A 20 20, 0, 0, 1,"; + radius = 20; + offset = 20; + if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) { + lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc2} ${p1.x - offset} ${p2.y} L ${p2.x} ${p2.y}`; + } else { + lineDef = `M ${p1.x} ${p1.y} L ${p2.x + radius} ${p1.y} ${arc} ${p2.x} ${p1.y + offset} L ${p2.x} ${p2.y}`; + } + } + if (p1.x === p2.x) { + lineDef = `M ${p1.x} ${p1.y} L ${p2.x} ${p2.y}`; + } + } else { + if (p1.y < p2.y) { + if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) { + lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc2} ${p2.x} ${p1.y + offset} L ${p2.x} ${p2.y}`; + } else { + lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`; + } + } + if (p1.y > p2.y) { + if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) { + lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc} ${p2.x} ${p1.y - offset} L ${p2.x} ${p2.y}`; + } else { + lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y + radius} ${arc2} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`; + } + } + if (p1.y === p2.y) { + lineDef = `M ${p1.x} ${p1.y} L ${p2.x} ${p2.y}`; + } + } + } + svg.append("path").attr("d", lineDef).attr("class", "arrow arrow" + colorClassNum % THEME_COLOR_LIMIT); +}; +const drawArrows = (svg, commits2) => { + const gArrows = svg.append("g").attr("class", "commit-arrows"); + Object.keys(commits2).forEach((key) => { + const commit2 = commits2[key]; + if (commit2.parents && commit2.parents.length > 0) { + commit2.parents.forEach((parent) => { + drawArrow(gArrows, commits2[parent], commit2, commits2); + }); + } + }); +}; +const drawBranches = (svg, branches2) => { + const gitGraphConfig = getConfig().gitGraph; + const g = svg.append("g"); + branches2.forEach((branch2, index) => { + const adjustIndexForTheme = index % THEME_COLOR_LIMIT; + const pos = branchPos[branch2.name].pos; + const line = g.append("line"); + line.attr("x1", 0); + line.attr("y1", pos); + line.attr("x2", maxPos); + line.attr("y2", pos); + line.attr("class", "branch branch" + adjustIndexForTheme); + if (dir === "TB") { + line.attr("y1", 30); + line.attr("x1", pos); + line.attr("y2", maxPos); + line.attr("x2", pos); + } + lanes.push(pos); + let name = branch2.name; + const labelElement = drawText(name); + const bkg = g.insert("rect"); + const branchLabel = g.insert("g").attr("class", "branchLabel"); + const label = branchLabel.insert("g").attr("class", "label branch-label" + adjustIndexForTheme); + label.node().appendChild(labelElement); + let bbox = labelElement.getBBox(); + bkg.attr("class", "branchLabelBkg label" + adjustIndexForTheme).attr("rx", 4).attr("ry", 4).attr("x", -bbox.width - 4 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)).attr("y", -bbox.height / 2 + 8).attr("width", bbox.width + 18).attr("height", bbox.height + 4); + label.attr( + "transform", + "translate(" + (-bbox.width - 14 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)) + ", " + (pos - bbox.height / 2 - 1) + ")" + ); + if (dir === "TB") { + bkg.attr("x", pos - bbox.width / 2 - 10).attr("y", 0); + label.attr("transform", "translate(" + (pos - bbox.width / 2 - 5) + ", 0)"); + } + if (dir !== "TB") { + bkg.attr("transform", "translate(-19, " + (pos - bbox.height / 2) + ")"); + } + }); +}; +const draw = function(txt, id, ver, diagObj) { + clear(); + const conf = getConfig(); + const gitGraphConfig = conf.gitGraph; + log.debug("in gitgraph renderer", txt + "\n", "id:", id, ver); + allCommitsDict = diagObj.db.getCommits(); + const branches2 = diagObj.db.getBranchesAsObjArray(); + dir = diagObj.db.getDirection(); + const diagram2 = d3select(`[id="${id}"]`); + let pos = 0; + branches2.forEach((branch2, index) => { + const labelElement = drawText(branch2.name); + const g = diagram2.append("g"); + const branchLabel = g.insert("g").attr("class", "branchLabel"); + const label = branchLabel.insert("g").attr("class", "label branch-label"); + label.node().appendChild(labelElement); + let bbox = labelElement.getBBox(); + branchPos[branch2.name] = { pos, index }; + pos += 50 + (gitGraphConfig.rotateCommitLabel ? 40 : 0) + (dir === "TB" ? bbox.width / 2 : 0); + label.remove(); + branchLabel.remove(); + g.remove(); + }); + drawCommits(diagram2, allCommitsDict, false); + if (gitGraphConfig.showBranches) { + drawBranches(diagram2, branches2); + } + drawArrows(diagram2, allCommitsDict); + drawCommits(diagram2, allCommitsDict, true); + utils.insertTitle( + diagram2, + "gitTitleText", + gitGraphConfig.titleTopMargin, + diagObj.db.getDiagramTitle() + ); + setupGraphViewbox( + void 0, + diagram2, + gitGraphConfig.diagramPadding, + gitGraphConfig.useMaxWidth ?? conf.useMaxWidth + ); +}; +const gitGraphRenderer = { + draw +}; +const getStyles = (options2) => ` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0, 1, 2, 3, 4, 5, 6, 7].map( + (i) => ` + .branch-label${i} { fill: ${options2["gitBranchLabel" + i]}; } + .commit${i} { stroke: ${options2["git" + i]}; fill: ${options2["git" + i]}; } + .commit-highlight${i} { stroke: ${options2["gitInv" + i]}; fill: ${options2["gitInv" + i]}; } + .label${i} { fill: ${options2["git" + i]}; } + .arrow${i} { stroke: ${options2["git" + i]}; } + ` +).join("\n")} + + .branch { + stroke-width: 1; + stroke: ${options2.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelColor};} + .commit-label-bkg { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${options2.tagLabelFontSize}; fill: ${options2.tagLabelColor};} + .tag-label-bkg { fill: ${options2.tagLabelBackground}; stroke: ${options2.tagLabelBorder}; } + .tag-hole { fill: ${options2.textColor}; } + + .commit-merge { + stroke: ${options2.primaryColor}; + fill: ${options2.primaryColor}; + } + .commit-reverse { + stroke: ${options2.primaryColor}; + fill: ${options2.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${options2.primaryColor}; + fill: ${options2.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options2.textColor}; + } +`; +const gitGraphStyles = getStyles; +const diagram = { + parser: gitGraphParser, + db: gitGraphDb, + renderer: gitGraphRenderer, + styles: gitGraphStyles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/gitGraphDiagram-c3a0619c.js b/assets/lib/mermaid/gitGraphDiagram-c3a0619c.js new file mode 100644 index 000000000..7713689b1 --- /dev/null +++ b/assets/lib/mermaid/gitGraphDiagram-c3a0619c.js @@ -0,0 +1,1264 @@ +import { c as v, s as Ce, g as ve, a as Oe, b as Pe, C as Ae, D as Ge, l as B, f as D, E as Ie, H as Se, j as Ne, A as He, I as Be } from "./mermaid-9f2aa176.js"; +var me = function() { + var r = function(G, o, u, d) { + for (u = u || {}, d = G.length; d--; u[G[d]] = o) + ; + return u; + }, n = [1, 3], l = [1, 6], h = [1, 4], i = [1, 5], c = [2, 5], p = [1, 12], m = [5, 7, 13, 19, 21, 23, 24, 26, 28, 31, 37, 40, 47], x = [7, 13, 19, 21, 23, 24, 26, 28, 31, 37, 40], y = [7, 12, 13, 19, 21, 23, 24, 26, 28, 31, 37, 40], a = [7, 13, 47], R = [1, 42], _ = [1, 41], b = [7, 13, 29, 32, 35, 38, 47], f = [1, 55], k = [1, 56], g = [1, 57], E = [7, 13, 32, 35, 42, 47], z = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, eol: 4, GG: 5, document: 6, EOF: 7, ":": 8, DIR: 9, options: 10, body: 11, OPT: 12, NL: 13, line: 14, statement: 15, commitStatement: 16, mergeStatement: 17, cherryPickStatement: 18, acc_title: 19, acc_title_value: 20, acc_descr: 21, acc_descr_value: 22, acc_descr_multiline_value: 23, section: 24, branchStatement: 25, CHECKOUT: 26, ref: 27, BRANCH: 28, ORDER: 29, NUM: 30, CHERRY_PICK: 31, COMMIT_ID: 32, STR: 33, PARENT_COMMIT: 34, COMMIT_TAG: 35, EMPTYSTR: 36, MERGE: 37, COMMIT_TYPE: 38, commitType: 39, COMMIT: 40, commit_arg: 41, COMMIT_MSG: 42, NORMAL: 43, REVERSE: 44, HIGHLIGHT: 45, ID: 46, ";": 47, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 5: "GG", 7: "EOF", 8: ":", 9: "DIR", 12: "OPT", 13: "NL", 19: "acc_title", 20: "acc_title_value", 21: "acc_descr", 22: "acc_descr_value", 23: "acc_descr_multiline_value", 24: "section", 26: "CHECKOUT", 28: "BRANCH", 29: "ORDER", 30: "NUM", 31: "CHERRY_PICK", 32: "COMMIT_ID", 33: "STR", 34: "PARENT_COMMIT", 35: "COMMIT_TAG", 36: "EMPTYSTR", 37: "MERGE", 38: "COMMIT_TYPE", 40: "COMMIT", 42: "COMMIT_MSG", 43: "NORMAL", 44: "REVERSE", 45: "HIGHLIGHT", 46: "ID", 47: ";" }, + productions_: [0, [3, 2], [3, 3], [3, 4], [3, 5], [6, 0], [6, 2], [10, 2], [10, 1], [11, 0], [11, 2], [14, 2], [14, 1], [15, 1], [15, 1], [15, 1], [15, 2], [15, 2], [15, 1], [15, 1], [15, 1], [15, 2], [25, 2], [25, 4], [18, 3], [18, 5], [18, 5], [18, 7], [18, 7], [18, 5], [18, 5], [18, 5], [18, 7], [18, 7], [18, 7], [18, 7], [17, 2], [17, 4], [17, 4], [17, 4], [17, 6], [17, 6], [17, 6], [17, 6], [17, 6], [17, 6], [17, 8], [17, 8], [17, 8], [17, 8], [17, 8], [17, 8], [16, 2], [16, 3], [16, 3], [16, 5], [16, 5], [16, 3], [16, 5], [16, 5], [16, 5], [16, 5], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 3], [16, 5], [16, 5], [16, 5], [16, 5], [16, 5], [16, 5], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [41, 0], [41, 1], [39, 1], [39, 1], [39, 1], [27, 1], [27, 1], [4, 1], [4, 1], [4, 1]], + performAction: function(o, u, d, s, T, e, X) { + var t = e.length - 1; + switch (T) { + case 2: + return e[t]; + case 3: + return e[t - 1]; + case 4: + return s.setDirection(e[t - 3]), e[t - 1]; + case 6: + s.setOptions(e[t - 1]), this.$ = e[t]; + break; + case 7: + e[t - 1] += e[t], this.$ = e[t - 1]; + break; + case 9: + this.$ = []; + break; + case 10: + e[t - 1].push(e[t]), this.$ = e[t - 1]; + break; + case 11: + this.$ = e[t - 1]; + break; + case 16: + this.$ = e[t].trim(), s.setAccTitle(this.$); + break; + case 17: + case 18: + this.$ = e[t].trim(), s.setAccDescription(this.$); + break; + case 19: + s.addSection(e[t].substr(8)), this.$ = e[t].substr(8); + break; + case 21: + s.checkout(e[t]); + break; + case 22: + s.branch(e[t]); + break; + case 23: + s.branch(e[t - 2], e[t]); + break; + case 24: + s.cherryPick(e[t], "", void 0); + break; + case 25: + s.cherryPick(e[t - 2], "", void 0, e[t]); + break; + case 26: + s.cherryPick(e[t - 2], "", e[t]); + break; + case 27: + s.cherryPick(e[t - 4], "", e[t], e[t - 2]); + break; + case 28: + s.cherryPick(e[t - 4], "", e[t - 2], e[t]); + break; + case 29: + s.cherryPick(e[t], "", e[t - 2]); + break; + case 30: + s.cherryPick(e[t], "", ""); + break; + case 31: + s.cherryPick(e[t - 2], "", ""); + break; + case 32: + s.cherryPick(e[t - 4], "", "", e[t - 2]); + break; + case 33: + s.cherryPick(e[t - 4], "", "", e[t]); + break; + case 34: + s.cherryPick(e[t - 2], "", e[t - 4], e[t]); + break; + case 35: + s.cherryPick(e[t - 2], "", "", e[t]); + break; + case 36: + s.merge(e[t], "", "", ""); + break; + case 37: + s.merge(e[t - 2], e[t], "", ""); + break; + case 38: + s.merge(e[t - 2], "", e[t], ""); + break; + case 39: + s.merge(e[t - 2], "", "", e[t]); + break; + case 40: + s.merge(e[t - 4], e[t], "", e[t - 2]); + break; + case 41: + s.merge(e[t - 4], "", e[t], e[t - 2]); + break; + case 42: + s.merge(e[t - 4], "", e[t - 2], e[t]); + break; + case 43: + s.merge(e[t - 4], e[t - 2], e[t], ""); + break; + case 44: + s.merge(e[t - 4], e[t - 2], "", e[t]); + break; + case 45: + s.merge(e[t - 4], e[t], e[t - 2], ""); + break; + case 46: + s.merge(e[t - 6], e[t - 4], e[t - 2], e[t]); + break; + case 47: + s.merge(e[t - 6], e[t], e[t - 4], e[t - 2]); + break; + case 48: + s.merge(e[t - 6], e[t - 4], e[t], e[t - 2]); + break; + case 49: + s.merge(e[t - 6], e[t - 2], e[t - 4], e[t]); + break; + case 50: + s.merge(e[t - 6], e[t], e[t - 2], e[t - 4]); + break; + case 51: + s.merge(e[t - 6], e[t - 2], e[t], e[t - 4]); + break; + case 52: + s.commit(e[t]); + break; + case 53: + s.commit("", "", s.commitType.NORMAL, e[t]); + break; + case 54: + s.commit("", "", e[t], ""); + break; + case 55: + s.commit("", "", e[t], e[t - 2]); + break; + case 56: + s.commit("", "", e[t - 2], e[t]); + break; + case 57: + s.commit("", e[t], s.commitType.NORMAL, ""); + break; + case 58: + s.commit("", e[t - 2], s.commitType.NORMAL, e[t]); + break; + case 59: + s.commit("", e[t], s.commitType.NORMAL, e[t - 2]); + break; + case 60: + s.commit("", e[t - 2], e[t], ""); + break; + case 61: + s.commit("", e[t], e[t - 2], ""); + break; + case 62: + s.commit("", e[t - 4], e[t - 2], e[t]); + break; + case 63: + s.commit("", e[t - 4], e[t], e[t - 2]); + break; + case 64: + s.commit("", e[t - 2], e[t - 4], e[t]); + break; + case 65: + s.commit("", e[t], e[t - 4], e[t - 2]); + break; + case 66: + s.commit("", e[t], e[t - 2], e[t - 4]); + break; + case 67: + s.commit("", e[t - 2], e[t], e[t - 4]); + break; + case 68: + s.commit(e[t], "", s.commitType.NORMAL, ""); + break; + case 69: + s.commit(e[t], "", s.commitType.NORMAL, e[t - 2]); + break; + case 70: + s.commit(e[t - 2], "", s.commitType.NORMAL, e[t]); + break; + case 71: + s.commit(e[t - 2], "", e[t], ""); + break; + case 72: + s.commit(e[t], "", e[t - 2], ""); + break; + case 73: + s.commit(e[t], e[t - 2], s.commitType.NORMAL, ""); + break; + case 74: + s.commit(e[t - 2], e[t], s.commitType.NORMAL, ""); + break; + case 75: + s.commit(e[t - 4], "", e[t - 2], e[t]); + break; + case 76: + s.commit(e[t - 4], "", e[t], e[t - 2]); + break; + case 77: + s.commit(e[t - 2], "", e[t - 4], e[t]); + break; + case 78: + s.commit(e[t], "", e[t - 4], e[t - 2]); + break; + case 79: + s.commit(e[t], "", e[t - 2], e[t - 4]); + break; + case 80: + s.commit(e[t - 2], "", e[t], e[t - 4]); + break; + case 81: + s.commit(e[t - 4], e[t], e[t - 2], ""); + break; + case 82: + s.commit(e[t - 4], e[t - 2], e[t], ""); + break; + case 83: + s.commit(e[t - 2], e[t], e[t - 4], ""); + break; + case 84: + s.commit(e[t], e[t - 2], e[t - 4], ""); + break; + case 85: + s.commit(e[t], e[t - 4], e[t - 2], ""); + break; + case 86: + s.commit(e[t - 2], e[t - 4], e[t], ""); + break; + case 87: + s.commit(e[t - 4], e[t], s.commitType.NORMAL, e[t - 2]); + break; + case 88: + s.commit(e[t - 4], e[t - 2], s.commitType.NORMAL, e[t]); + break; + case 89: + s.commit(e[t - 2], e[t], s.commitType.NORMAL, e[t - 4]); + break; + case 90: + s.commit(e[t], e[t - 2], s.commitType.NORMAL, e[t - 4]); + break; + case 91: + s.commit(e[t], e[t - 4], s.commitType.NORMAL, e[t - 2]); + break; + case 92: + s.commit(e[t - 2], e[t - 4], s.commitType.NORMAL, e[t]); + break; + case 93: + s.commit(e[t - 6], e[t - 4], e[t - 2], e[t]); + break; + case 94: + s.commit(e[t - 6], e[t - 4], e[t], e[t - 2]); + break; + case 95: + s.commit(e[t - 6], e[t - 2], e[t - 4], e[t]); + break; + case 96: + s.commit(e[t - 6], e[t], e[t - 4], e[t - 2]); + break; + case 97: + s.commit(e[t - 6], e[t - 2], e[t], e[t - 4]); + break; + case 98: + s.commit(e[t - 6], e[t], e[t - 2], e[t - 4]); + break; + case 99: + s.commit(e[t - 4], e[t - 6], e[t - 2], e[t]); + break; + case 100: + s.commit(e[t - 4], e[t - 6], e[t], e[t - 2]); + break; + case 101: + s.commit(e[t - 2], e[t - 6], e[t - 4], e[t]); + break; + case 102: + s.commit(e[t], e[t - 6], e[t - 4], e[t - 2]); + break; + case 103: + s.commit(e[t - 2], e[t - 6], e[t], e[t - 4]); + break; + case 104: + s.commit(e[t], e[t - 6], e[t - 2], e[t - 4]); + break; + case 105: + s.commit(e[t], e[t - 4], e[t - 2], e[t - 6]); + break; + case 106: + s.commit(e[t - 2], e[t - 4], e[t], e[t - 6]); + break; + case 107: + s.commit(e[t], e[t - 2], e[t - 4], e[t - 6]); + break; + case 108: + s.commit(e[t - 2], e[t], e[t - 4], e[t - 6]); + break; + case 109: + s.commit(e[t - 4], e[t - 2], e[t], e[t - 6]); + break; + case 110: + s.commit(e[t - 4], e[t], e[t - 2], e[t - 6]); + break; + case 111: + s.commit(e[t - 2], e[t - 4], e[t - 6], e[t]); + break; + case 112: + s.commit(e[t], e[t - 4], e[t - 6], e[t - 2]); + break; + case 113: + s.commit(e[t - 2], e[t], e[t - 6], e[t - 4]); + break; + case 114: + s.commit(e[t], e[t - 2], e[t - 6], e[t - 4]); + break; + case 115: + s.commit(e[t - 4], e[t - 2], e[t - 6], e[t]); + break; + case 116: + s.commit(e[t - 4], e[t], e[t - 6], e[t - 2]); + break; + case 117: + this.$ = ""; + break; + case 118: + this.$ = e[t]; + break; + case 119: + this.$ = s.commitType.NORMAL; + break; + case 120: + this.$ = s.commitType.REVERSE; + break; + case 121: + this.$ = s.commitType.HIGHLIGHT; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: n, 7: l, 13: h, 47: i }, { 1: [3] }, { 3: 7, 4: 2, 5: n, 7: l, 13: h, 47: i }, { 6: 8, 7: c, 8: [1, 9], 9: [1, 10], 10: 11, 13: p }, r(m, [2, 124]), r(m, [2, 125]), r(m, [2, 126]), { 1: [2, 1] }, { 7: [1, 13] }, { 6: 14, 7: c, 10: 11, 13: p }, { 8: [1, 15] }, r(x, [2, 9], { 11: 16, 12: [1, 17] }), r(y, [2, 8]), { 1: [2, 2] }, { 7: [1, 18] }, { 6: 19, 7: c, 10: 11, 13: p }, { 7: [2, 6], 13: [1, 22], 14: 20, 15: 21, 16: 23, 17: 24, 18: 25, 19: [1, 26], 21: [1, 27], 23: [1, 28], 24: [1, 29], 25: 30, 26: [1, 31], 28: [1, 35], 31: [1, 34], 37: [1, 33], 40: [1, 32] }, r(y, [2, 7]), { 1: [2, 3] }, { 7: [1, 36] }, r(x, [2, 10]), { 4: 37, 7: l, 13: h, 47: i }, r(x, [2, 12]), r(a, [2, 13]), r(a, [2, 14]), r(a, [2, 15]), { 20: [1, 38] }, { 22: [1, 39] }, r(a, [2, 18]), r(a, [2, 19]), r(a, [2, 20]), { 27: 40, 33: R, 46: _ }, r(a, [2, 117], { 41: 43, 32: [1, 46], 33: [1, 48], 35: [1, 44], 38: [1, 45], 42: [1, 47] }), { 27: 49, 33: R, 46: _ }, { 32: [1, 50], 35: [1, 51] }, { 27: 52, 33: R, 46: _ }, { 1: [2, 4] }, r(x, [2, 11]), r(a, [2, 16]), r(a, [2, 17]), r(a, [2, 21]), r(b, [2, 122]), r(b, [2, 123]), r(a, [2, 52]), { 33: [1, 53] }, { 39: 54, 43: f, 44: k, 45: g }, { 33: [1, 58] }, { 33: [1, 59] }, r(a, [2, 118]), r(a, [2, 36], { 32: [1, 60], 35: [1, 62], 38: [1, 61] }), { 33: [1, 63] }, { 33: [1, 64], 36: [1, 65] }, r(a, [2, 22], { 29: [1, 66] }), r(a, [2, 53], { 32: [1, 68], 38: [1, 67], 42: [1, 69] }), r(a, [2, 54], { 32: [1, 71], 35: [1, 70], 42: [1, 72] }), r(E, [2, 119]), r(E, [2, 120]), r(E, [2, 121]), r(a, [2, 57], { 35: [1, 73], 38: [1, 74], 42: [1, 75] }), r(a, [2, 68], { 32: [1, 78], 35: [1, 76], 38: [1, 77] }), { 33: [1, 79] }, { 39: 80, 43: f, 44: k, 45: g }, { 33: [1, 81] }, r(a, [2, 24], { 34: [1, 82], 35: [1, 83] }), { 32: [1, 84] }, { 32: [1, 85] }, { 30: [1, 86] }, { 39: 87, 43: f, 44: k, 45: g }, { 33: [1, 88] }, { 33: [1, 89] }, { 33: [1, 90] }, { 33: [1, 91] }, { 33: [1, 92] }, { 33: [1, 93] }, { 39: 94, 43: f, 44: k, 45: g }, { 33: [1, 95] }, { 33: [1, 96] }, { 39: 97, 43: f, 44: k, 45: g }, { 33: [1, 98] }, r(a, [2, 37], { 35: [1, 100], 38: [1, 99] }), r(a, [2, 38], { 32: [1, 102], 35: [1, 101] }), r(a, [2, 39], { 32: [1, 103], 38: [1, 104] }), { 33: [1, 105] }, { 33: [1, 106], 36: [1, 107] }, { 33: [1, 108] }, { 33: [1, 109] }, r(a, [2, 23]), r(a, [2, 55], { 32: [1, 110], 42: [1, 111] }), r(a, [2, 59], { 38: [1, 112], 42: [1, 113] }), r(a, [2, 69], { 32: [1, 115], 38: [1, 114] }), r(a, [2, 56], { 32: [1, 116], 42: [1, 117] }), r(a, [2, 61], { 35: [1, 118], 42: [1, 119] }), r(a, [2, 72], { 32: [1, 121], 35: [1, 120] }), r(a, [2, 58], { 38: [1, 122], 42: [1, 123] }), r(a, [2, 60], { 35: [1, 124], 42: [1, 125] }), r(a, [2, 73], { 35: [1, 127], 38: [1, 126] }), r(a, [2, 70], { 32: [1, 129], 38: [1, 128] }), r(a, [2, 71], { 32: [1, 131], 35: [1, 130] }), r(a, [2, 74], { 35: [1, 133], 38: [1, 132] }), { 39: 134, 43: f, 44: k, 45: g }, { 33: [1, 135] }, { 33: [1, 136] }, { 33: [1, 137] }, { 33: [1, 138] }, { 39: 139, 43: f, 44: k, 45: g }, r(a, [2, 25], { 35: [1, 140] }), r(a, [2, 26], { 34: [1, 141] }), r(a, [2, 31], { 34: [1, 142] }), r(a, [2, 29], { 34: [1, 143] }), r(a, [2, 30], { 34: [1, 144] }), { 33: [1, 145] }, { 33: [1, 146] }, { 39: 147, 43: f, 44: k, 45: g }, { 33: [1, 148] }, { 39: 149, 43: f, 44: k, 45: g }, { 33: [1, 150] }, { 33: [1, 151] }, { 33: [1, 152] }, { 33: [1, 153] }, { 33: [1, 154] }, { 33: [1, 155] }, { 33: [1, 156] }, { 39: 157, 43: f, 44: k, 45: g }, { 33: [1, 158] }, { 33: [1, 159] }, { 33: [1, 160] }, { 39: 161, 43: f, 44: k, 45: g }, { 33: [1, 162] }, { 39: 163, 43: f, 44: k, 45: g }, { 33: [1, 164] }, { 33: [1, 165] }, { 33: [1, 166] }, { 39: 167, 43: f, 44: k, 45: g }, { 33: [1, 168] }, r(a, [2, 43], { 35: [1, 169] }), r(a, [2, 44], { 38: [1, 170] }), r(a, [2, 42], { 32: [1, 171] }), r(a, [2, 45], { 35: [1, 172] }), r(a, [2, 40], { 38: [1, 173] }), r(a, [2, 41], { 32: [1, 174] }), { 33: [1, 175], 36: [1, 176] }, { 33: [1, 177] }, { 33: [1, 178] }, { 33: [1, 179] }, { 33: [1, 180] }, r(a, [2, 66], { 42: [1, 181] }), r(a, [2, 79], { 32: [1, 182] }), r(a, [2, 67], { 42: [1, 183] }), r(a, [2, 90], { 38: [1, 184] }), r(a, [2, 80], { 32: [1, 185] }), r(a, [2, 89], { 38: [1, 186] }), r(a, [2, 65], { 42: [1, 187] }), r(a, [2, 78], { 32: [1, 188] }), r(a, [2, 64], { 42: [1, 189] }), r(a, [2, 84], { 35: [1, 190] }), r(a, [2, 77], { 32: [1, 191] }), r(a, [2, 83], { 35: [1, 192] }), r(a, [2, 63], { 42: [1, 193] }), r(a, [2, 91], { 38: [1, 194] }), r(a, [2, 62], { 42: [1, 195] }), r(a, [2, 85], { 35: [1, 196] }), r(a, [2, 86], { 35: [1, 197] }), r(a, [2, 92], { 38: [1, 198] }), r(a, [2, 76], { 32: [1, 199] }), r(a, [2, 87], { 38: [1, 200] }), r(a, [2, 75], { 32: [1, 201] }), r(a, [2, 81], { 35: [1, 202] }), r(a, [2, 82], { 35: [1, 203] }), r(a, [2, 88], { 38: [1, 204] }), { 33: [1, 205] }, { 39: 206, 43: f, 44: k, 45: g }, { 33: [1, 207] }, { 33: [1, 208] }, { 39: 209, 43: f, 44: k, 45: g }, { 33: [1, 210] }, r(a, [2, 27]), r(a, [2, 32]), r(a, [2, 28]), r(a, [2, 33]), r(a, [2, 34]), r(a, [2, 35]), { 33: [1, 211] }, { 33: [1, 212] }, { 33: [1, 213] }, { 39: 214, 43: f, 44: k, 45: g }, { 33: [1, 215] }, { 39: 216, 43: f, 44: k, 45: g }, { 33: [1, 217] }, { 33: [1, 218] }, { 33: [1, 219] }, { 33: [1, 220] }, { 33: [1, 221] }, { 33: [1, 222] }, { 33: [1, 223] }, { 39: 224, 43: f, 44: k, 45: g }, { 33: [1, 225] }, { 33: [1, 226] }, { 33: [1, 227] }, { 39: 228, 43: f, 44: k, 45: g }, { 33: [1, 229] }, { 39: 230, 43: f, 44: k, 45: g }, { 33: [1, 231] }, { 33: [1, 232] }, { 33: [1, 233] }, { 39: 234, 43: f, 44: k, 45: g }, r(a, [2, 46]), r(a, [2, 48]), r(a, [2, 47]), r(a, [2, 49]), r(a, [2, 51]), r(a, [2, 50]), r(a, [2, 107]), r(a, [2, 108]), r(a, [2, 105]), r(a, [2, 106]), r(a, [2, 110]), r(a, [2, 109]), r(a, [2, 114]), r(a, [2, 113]), r(a, [2, 112]), r(a, [2, 111]), r(a, [2, 116]), r(a, [2, 115]), r(a, [2, 104]), r(a, [2, 103]), r(a, [2, 102]), r(a, [2, 101]), r(a, [2, 99]), r(a, [2, 100]), r(a, [2, 98]), r(a, [2, 97]), r(a, [2, 96]), r(a, [2, 95]), r(a, [2, 93]), r(a, [2, 94])], + defaultActions: { 7: [2, 1], 13: [2, 2], 18: [2, 3], 36: [2, 4] }, + parseError: function(o, u) { + if (u.recoverable) + this.trace(o); + else { + var d = new Error(o); + throw d.hash = u, d; + } + }, + parse: function(o) { + var u = this, d = [0], s = [], T = [null], e = [], X = this.table, t = "", re = 0, fe = 0, we = 2, pe = 1, Le = e.slice.call(arguments, 1), O = Object.create(this.lexer), F = { yy: {} }; + for (var ce in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, ce) && (F.yy[ce] = this.yy[ce]); + O.setInput(o, F.yy), F.yy.lexer = O, F.yy.parser = this, typeof O.yylloc > "u" && (O.yylloc = {}); + var oe = O.yylloc; + e.push(oe); + var Re = O.options && O.options.ranges; + typeof F.yy.parseError == "function" ? this.parseError = F.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function Me() { + var q; + return q = s.pop() || O.lex() || pe, typeof q != "number" && (q instanceof Array && (s = q, q = s.pop()), q = u.symbols_[q] || q), q; + } + for (var N, K, V, le, J = {}, ie, j, be, se; ; ) { + if (K = d[d.length - 1], this.defaultActions[K] ? V = this.defaultActions[K] : ((N === null || typeof N > "u") && (N = Me()), V = X[K] && X[K][N]), typeof V > "u" || !V.length || !V[0]) { + var he = ""; + se = []; + for (ie in X[K]) + this.terminals_[ie] && ie > we && se.push("'" + this.terminals_[ie] + "'"); + O.showPosition ? he = "Parse error on line " + (re + 1) + `: +` + O.showPosition() + ` +Expecting ` + se.join(", ") + ", got '" + (this.terminals_[N] || N) + "'" : he = "Parse error on line " + (re + 1) + ": Unexpected " + (N == pe ? "end of input" : "'" + (this.terminals_[N] || N) + "'"), this.parseError(he, { + text: O.match, + token: this.terminals_[N] || N, + line: O.yylineno, + loc: oe, + expected: se + }); + } + if (V[0] instanceof Array && V.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + K + ", token: " + N); + switch (V[0]) { + case 1: + d.push(N), T.push(O.yytext), e.push(O.yylloc), d.push(V[1]), N = null, fe = O.yyleng, t = O.yytext, re = O.yylineno, oe = O.yylloc; + break; + case 2: + if (j = this.productions_[V[1]][1], J.$ = T[T.length - j], J._$ = { + first_line: e[e.length - (j || 1)].first_line, + last_line: e[e.length - 1].last_line, + first_column: e[e.length - (j || 1)].first_column, + last_column: e[e.length - 1].last_column + }, Re && (J._$.range = [ + e[e.length - (j || 1)].range[0], + e[e.length - 1].range[1] + ]), le = this.performAction.apply(J, [ + t, + fe, + re, + F.yy, + V[1], + T, + e + ].concat(Le)), typeof le < "u") + return le; + j && (d = d.slice(0, -1 * j * 2), T = T.slice(0, -1 * j), e = e.slice(0, -1 * j)), d.push(this.productions_[V[1]][0]), T.push(J.$), e.push(J._$), be = X[d[d.length - 2]][d[d.length - 1]], d.push(be); + break; + case 3: + return !0; + } + } + return !0; + } + }, M = function() { + var G = { + EOF: 1, + parseError: function(u, d) { + if (this.yy.parser) + this.yy.parser.parseError(u, d); + else + throw new Error(u); + }, + // resets the lexer, sets new input + setInput: function(o, u) { + return this.yy = u || this.yy || {}, this._input = o, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var o = this._input[0]; + this.yytext += o, this.yyleng++, this.offset++, this.match += o, this.matched += o; + var u = o.match(/(?:\r\n?|\n).*/g); + return u ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), o; + }, + // unshifts one char (or a string) into the input + unput: function(o) { + var u = o.length, d = o.split(/(?:\r\n?|\n)/g); + this._input = o + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - u), this.offset -= u; + var s = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), d.length - 1 && (this.yylineno -= d.length - 1); + var T = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: d ? (d.length === s.length ? this.yylloc.first_column : 0) + s[s.length - d.length].length - d[0].length : this.yylloc.first_column - u + }, this.options.ranges && (this.yylloc.range = [T[0], T[0] + this.yyleng - u]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(o) { + this.unput(this.match.slice(o)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var o = this.matched.substr(0, this.matched.length - this.match.length); + return (o.length > 20 ? "..." : "") + o.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var o = this.match; + return o.length < 20 && (o += this._input.substr(0, 20 - o.length)), (o.substr(0, 20) + (o.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var o = this.pastInput(), u = new Array(o.length + 1).join("-"); + return o + this.upcomingInput() + ` +` + u + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(o, u) { + var d, s, T; + if (this.options.backtrack_lexer && (T = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (T.yylloc.range = this.yylloc.range.slice(0))), s = o[0].match(/(?:\r\n?|\n).*/g), s && (this.yylineno += s.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: s ? s[s.length - 1].length - s[s.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + o[0].length + }, this.yytext += o[0], this.match += o[0], this.matches = o, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(o[0].length), this.matched += o[0], d = this.performAction.call(this, this.yy, this, u, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), d) + return d; + if (this._backtrack) { + for (var e in T) + this[e] = T[e]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var o, u, d, s; + this._more || (this.yytext = "", this.match = ""); + for (var T = this._currentRules(), e = 0; e < T.length; e++) + if (d = this._input.match(this.rules[T[e]]), d && (!u || d[0].length > u[0].length)) { + if (u = d, s = e, this.options.backtrack_lexer) { + if (o = this.test_match(d, T[e]), o !== !1) + return o; + if (this._backtrack) { + u = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return u ? (o = this.test_match(u, T[s]), o !== !1 ? o : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var u = this.next(); + return u || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(u) { + this.conditionStack.push(u); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var u = this.conditionStack.length - 1; + return u > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(u) { + return u = this.conditionStack.length - 1 - Math.abs(u || 0), u >= 0 ? this.conditionStack[u] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(u) { + this.begin(u); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: { "case-insensitive": !0 }, + performAction: function(u, d, s, T) { + switch (s) { + case 0: + return this.begin("acc_title"), 19; + case 1: + return this.popState(), "acc_title_value"; + case 2: + return this.begin("acc_descr"), 21; + case 3: + return this.popState(), "acc_descr_value"; + case 4: + this.begin("acc_descr_multiline"); + break; + case 5: + this.popState(); + break; + case 6: + return "acc_descr_multiline_value"; + case 7: + return 13; + case 8: + break; + case 9: + break; + case 10: + return 5; + case 11: + return 40; + case 12: + return 32; + case 13: + return 38; + case 14: + return 42; + case 15: + return 43; + case 16: + return 44; + case 17: + return 45; + case 18: + return 35; + case 19: + return 28; + case 20: + return 29; + case 21: + return 37; + case 22: + return 31; + case 23: + return 34; + case 24: + return 26; + case 25: + return 9; + case 26: + return 9; + case 27: + return 8; + case 28: + return "CARET"; + case 29: + this.begin("options"); + break; + case 30: + this.popState(); + break; + case 31: + return 12; + case 32: + return 36; + case 33: + this.begin("string"); + break; + case 34: + this.popState(); + break; + case 35: + return 33; + case 36: + return 30; + case 37: + return 46; + case 38: + return 7; + } + }, + rules: [/^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:gitGraph\b)/i, /^(?:commit(?=\s|$))/i, /^(?:id:)/i, /^(?:type:)/i, /^(?:msg:)/i, /^(?:NORMAL\b)/i, /^(?:REVERSE\b)/i, /^(?:HIGHLIGHT\b)/i, /^(?:tag:)/i, /^(?:branch(?=\s|$))/i, /^(?:order:)/i, /^(?:merge(?=\s|$))/i, /^(?:cherry-pick(?=\s|$))/i, /^(?:parent:)/i, /^(?:checkout(?=\s|$))/i, /^(?:LR\b)/i, /^(?:TB\b)/i, /^(?::)/i, /^(?:\^)/i, /^(?:options\r?\n)/i, /^(?:[ \r\n\t]+end\b)/i, /^(?:[\s\S]+(?=[ \r\n\t]+end))/i, /^(?:["]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[0-9]+(?=\s|$))/i, /^(?:\w([-\./\w]*[-\w])?)/i, /^(?:$)/i, /^(?:\s+)/i], + conditions: { acc_descr_multiline: { rules: [5, 6], inclusive: !1 }, acc_descr: { rules: [3], inclusive: !1 }, acc_title: { rules: [1], inclusive: !1 }, options: { rules: [30, 31], inclusive: !1 }, string: { rules: [34, 35], inclusive: !1 }, INITIAL: { rules: [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 36, 37, 38, 39], inclusive: !0 } } + }; + return G; + }(); + z.lexer = M; + function I() { + this.yy = {}; + } + return I.prototype = z, z.Parser = I, new I(); +}(); +me.parser = me; +const Ve = me; +let ae = v().gitGraph.mainBranchName, De = v().gitGraph.mainBranchOrder, C = {}, S = null, ee = {}; +ee[ae] = { name: ae, order: De }; +let L = {}; +L[ae] = S; +let A = ae, ke = "LR", W = 0; +function ue() { + return Se({ length: 7 }); +} +function ze(r, n) { + const l = /* @__PURE__ */ Object.create(null); + return r.reduce((h, i) => { + const c = n(i); + return l[c] || (l[c] = !0, h.push(i)), h; + }, []); +} +const je = function(r) { + ke = r; +}; +let xe = {}; +const qe = function(r) { + B.debug("options str", r), r = r && r.trim(), r = r || "{}"; + try { + xe = JSON.parse(r); + } catch (n) { + B.error("error while parsing gitGraph options", n.message); + } +}, Ye = function() { + return xe; +}, Fe = function(r, n, l, h) { + B.debug("Entering commit:", r, n, l, h), n = D.sanitizeText(n, v()), r = D.sanitizeText(r, v()), h = D.sanitizeText(h, v()); + const i = { + id: n || W + "-" + ue(), + message: r, + seq: W++, + type: l || Q.NORMAL, + tag: h || "", + parents: S == null ? [] : [S.id], + branch: A + }; + S = i, C[i.id] = i, L[A] = i.id, B.debug("in pushCommit " + i.id); +}, Ke = function(r, n) { + if (r = D.sanitizeText(r, v()), L[r] === void 0) + L[r] = S != null ? S.id : null, ee[r] = { name: r, order: n ? parseInt(n, 10) : null }, ye(r), B.debug("in createBranch"); + else { + let l = new Error( + 'Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ' + r + '")' + ); + throw l.hash = { + text: "branch " + r, + token: "branch " + r, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ['"checkout ' + r + '"'] + }, l; + } +}, Ue = function(r, n, l, h) { + r = D.sanitizeText(r, v()), n = D.sanitizeText(n, v()); + const i = C[L[A]], c = C[L[r]]; + if (A === r) { + let m = new Error('Incorrect usage of "merge". Cannot merge a branch to itself'); + throw m.hash = { + text: "merge " + r, + token: "merge " + r, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["branch abc"] + }, m; + } else if (i === void 0 || !i) { + let m = new Error( + 'Incorrect usage of "merge". Current branch (' + A + ")has no commits" + ); + throw m.hash = { + text: "merge " + r, + token: "merge " + r, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["commit"] + }, m; + } else if (L[r] === void 0) { + let m = new Error( + 'Incorrect usage of "merge". Branch to be merged (' + r + ") does not exist" + ); + throw m.hash = { + text: "merge " + r, + token: "merge " + r, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["branch " + r] + }, m; + } else if (c === void 0 || !c) { + let m = new Error( + 'Incorrect usage of "merge". Branch to be merged (' + r + ") has no commits" + ); + throw m.hash = { + text: "merge " + r, + token: "merge " + r, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ['"commit"'] + }, m; + } else if (i === c) { + let m = new Error('Incorrect usage of "merge". Both branches have same head'); + throw m.hash = { + text: "merge " + r, + token: "merge " + r, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["branch abc"] + }, m; + } else if (n && C[n] !== void 0) { + let m = new Error( + 'Incorrect usage of "merge". Commit with id:' + n + " already exists, use different custom Id" + ); + throw m.hash = { + text: "merge " + r + n + l + h, + token: "merge " + r + n + l + h, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: [ + "merge " + r + " " + n + "_UNIQUE " + l + " " + h + ] + }, m; + } + const p = { + id: n || W + "-" + ue(), + message: "merged branch " + r + " into " + A, + seq: W++, + parents: [S == null ? null : S.id, L[r]], + branch: A, + type: Q.MERGE, + customType: l, + customId: !!n, + tag: h || "" + }; + S = p, C[p.id] = p, L[A] = p.id, B.debug(L), B.debug("in mergeBranch"); +}, We = function(r, n, l, h) { + if (B.debug("Entering cherryPick:", r, n, l), r = D.sanitizeText(r, v()), n = D.sanitizeText(n, v()), l = D.sanitizeText(l, v()), h = D.sanitizeText(h, v()), !r || C[r] === void 0) { + let p = new Error( + 'Incorrect usage of "cherryPick". Source commit id should exist and provided' + ); + throw p.hash = { + text: "cherryPick " + r + " " + n, + token: "cherryPick " + r + " " + n, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["cherry-pick abc"] + }, p; + } + let i = C[r], c = i.branch; + if (h && !(Array.isArray(i.parents) && i.parents.includes(h))) + throw new Error( + "Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit." + ); + if (i.type === Q.MERGE && !h) + throw new Error( + "Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified." + ); + if (!n || C[n] === void 0) { + if (c === A) { + let x = new Error( + 'Incorrect usage of "cherryPick". Source commit is already on current branch' + ); + throw x.hash = { + text: "cherryPick " + r + " " + n, + token: "cherryPick " + r + " " + n, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["cherry-pick abc"] + }, x; + } + const p = C[L[A]]; + if (p === void 0 || !p) { + let x = new Error( + 'Incorrect usage of "cherry-pick". Current branch (' + A + ")has no commits" + ); + throw x.hash = { + text: "cherryPick " + r + " " + n, + token: "cherryPick " + r + " " + n, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["cherry-pick abc"] + }, x; + } + const m = { + id: W + "-" + ue(), + message: "cherry-picked " + i + " into " + A, + seq: W++, + parents: [S == null ? null : S.id, i.id], + branch: A, + type: Q.CHERRY_PICK, + tag: l ?? `cherry-pick:${i.id}${i.type === Q.MERGE ? `|parent:${h}` : ""}` + }; + S = m, C[m.id] = m, L[A] = m.id, B.debug(L), B.debug("in cherryPick"); + } +}, ye = function(r) { + if (r = D.sanitizeText(r, v()), L[r] === void 0) { + let n = new Error( + 'Trying to checkout branch which is not yet created. (Help try using "branch ' + r + '")' + ); + throw n.hash = { + text: "checkout " + r, + token: "checkout " + r, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ['"branch ' + r + '"'] + }, n; + } else { + A = r; + const n = L[A]; + S = C[n]; + } +}; +function ge(r, n, l) { + const h = r.indexOf(n); + h === -1 ? r.push(l) : r.splice(h, 1, l); +} +function _e(r) { + const n = r.reduce((i, c) => i.seq > c.seq ? i : c, r[0]); + let l = ""; + r.forEach(function(i) { + i === n ? l += " *" : l += " |"; + }); + const h = [l, n.id, n.seq]; + for (let i in L) + L[i] === n.id && h.push(i); + if (B.debug(h.join(" ")), n.parents && n.parents.length == 2) { + const i = C[n.parents[0]]; + ge(r, n, i), r.push(C[n.parents[1]]); + } else { + if (n.parents.length == 0) + return; + { + const i = C[n.parents]; + ge(r, n, i); + } + } + r = ze(r, (i) => i.id), _e(r); +} +const Je = function() { + B.debug(C); + const r = Ee()[0]; + _e([r]); +}, Qe = function() { + C = {}, S = null; + let r = v().gitGraph.mainBranchName, n = v().gitGraph.mainBranchOrder; + L = {}, L[r] = null, ee = {}, ee[r] = { name: r, order: n }, A = r, W = 0, Ie(); +}, Xe = function() { + return Object.values(ee).map((n, l) => n.order !== null ? n : { + ...n, + order: parseFloat(`0.${l}`, 10) + }).sort((n, l) => n.order - l.order).map(({ name: n }) => ({ name: n })); +}, Ze = function() { + return L; +}, $e = function() { + return C; +}, Ee = function() { + const r = Object.keys(C).map(function(n) { + return C[n]; + }); + return r.forEach(function(n) { + B.debug(n.id); + }), r.sort((n, l) => n.seq - l.seq), r; +}, et = function() { + return A; +}, tt = function() { + return ke; +}, rt = function() { + return S; +}, Q = { + NORMAL: 0, + REVERSE: 1, + HIGHLIGHT: 2, + MERGE: 3, + CHERRY_PICK: 4 +}, it = { + getConfig: () => v().gitGraph, + setDirection: je, + setOptions: qe, + getOptions: Ye, + commit: Fe, + branch: Ke, + merge: Ue, + cherryPick: We, + checkout: ye, + //reset, + prettyPrint: Je, + clear: Qe, + getBranchesAsObjArray: Xe, + getBranches: Ze, + getCommits: $e, + getCommitsArray: Ee, + getCurrentBranch: et, + getDirection: tt, + getHead: rt, + setAccTitle: Ce, + getAccTitle: ve, + getAccDescription: Oe, + setAccDescription: Pe, + setDiagramTitle: Ae, + getDiagramTitle: Ge, + commitType: Q +}; +let Z = {}; +const P = { + NORMAL: 0, + REVERSE: 1, + HIGHLIGHT: 2, + MERGE: 3, + CHERRY_PICK: 4 +}, U = 8; +let H = {}, Y = {}, ne = [], te = 0, w = "LR"; +const st = () => { + H = {}, Y = {}, Z = {}, te = 0, ne = [], w = "LR"; +}, Te = (r) => { + const n = document.createElementNS("http://www.w3.org/2000/svg", "text"); + let l = []; + typeof r == "string" ? l = r.split(/\\n|\n|/gi) : Array.isArray(r) ? l = r : l = []; + for (const h of l) { + const i = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + i.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), i.setAttribute("dy", "1em"), i.setAttribute("x", "0"), i.setAttribute("class", "row"), i.textContent = h.trim(), n.appendChild(i); + } + return n; +}, at = (r) => { + let n = "", l = 0; + return r.forEach((h) => { + const i = w === "TB" ? Y[h].y : Y[h].x; + i >= l && (n = h, l = i); + }), n || void 0; +}, de = (r, n, l) => { + const h = v().gitGraph, i = r.append("g").attr("class", "commit-bullets"), c = r.append("g").attr("class", "commit-labels"); + let p = 0; + w === "TB" && (p = 30); + const x = Object.keys(n).sort((_, b) => n[_].seq - n[b].seq), y = h.parallelCommits, a = 10, R = 40; + x.forEach((_) => { + const b = n[_]; + if (y) + if (b.parents.length) { + const E = at(b.parents); + p = w === "TB" ? Y[E].y + R : Y[E].x + R; + } else + p = 0, w === "TB" && (p = 30); + const f = p + a, k = w === "TB" ? f : H[b.branch].pos, g = w === "TB" ? H[b.branch].pos : f; + if (l) { + let E, z = b.customType !== void 0 && b.customType !== "" ? b.customType : b.type; + switch (z) { + case P.NORMAL: + E = "commit-normal"; + break; + case P.REVERSE: + E = "commit-reverse"; + break; + case P.HIGHLIGHT: + E = "commit-highlight"; + break; + case P.MERGE: + E = "commit-merge"; + break; + case P.CHERRY_PICK: + E = "commit-cherry-pick"; + break; + default: + E = "commit-normal"; + } + if (z === P.HIGHLIGHT) { + const M = i.append("rect"); + M.attr("x", g - 10), M.attr("y", k - 10), M.attr("height", 20), M.attr("width", 20), M.attr( + "class", + `commit ${b.id} commit-highlight${H[b.branch].index % U} ${E}-outer` + ), i.append("rect").attr("x", g - 6).attr("y", k - 6).attr("height", 12).attr("width", 12).attr( + "class", + `commit ${b.id} commit${H[b.branch].index % U} ${E}-inner` + ); + } else if (z === P.CHERRY_PICK) + i.append("circle").attr("cx", g).attr("cy", k).attr("r", 10).attr("class", `commit ${b.id} ${E}`), i.append("circle").attr("cx", g - 3).attr("cy", k + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${b.id} ${E}`), i.append("circle").attr("cx", g + 3).attr("cy", k + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${b.id} ${E}`), i.append("line").attr("x1", g + 3).attr("y1", k + 1).attr("x2", g).attr("y2", k - 5).attr("stroke", "#fff").attr("class", `commit ${b.id} ${E}`), i.append("line").attr("x1", g - 3).attr("y1", k + 1).attr("x2", g).attr("y2", k - 5).attr("stroke", "#fff").attr("class", `commit ${b.id} ${E}`); + else { + const M = i.append("circle"); + if (M.attr("cx", g), M.attr("cy", k), M.attr("r", b.type === P.MERGE ? 9 : 10), M.attr( + "class", + `commit ${b.id} commit${H[b.branch].index % U}` + ), z === P.MERGE) { + const I = i.append("circle"); + I.attr("cx", g), I.attr("cy", k), I.attr("r", 6), I.attr( + "class", + `commit ${E} ${b.id} commit${H[b.branch].index % U}` + ); + } + z === P.REVERSE && i.append("path").attr("d", `M ${g - 5},${k - 5}L${g + 5},${k + 5}M${g - 5},${k + 5}L${g + 5},${k - 5}`).attr( + "class", + `commit ${E} ${b.id} commit${H[b.branch].index % U}` + ); + } + } + if (w === "TB" ? Y[b.id] = { x: g, y: f } : Y[b.id] = { x: f, y: k }, l) { + if (b.type !== P.CHERRY_PICK && (b.customId && b.type === P.MERGE || b.type !== P.MERGE) && h.showCommitLabel) { + const M = c.append("g"), I = M.insert("rect").attr("class", "commit-label-bkg"), G = M.append("text").attr("x", p).attr("y", k + 25).attr("class", "commit-label").text(b.id); + let o = G.node().getBBox(); + if (I.attr("x", f - o.width / 2 - 2).attr("y", k + 13.5).attr("width", o.width + 2 * 2).attr("height", o.height + 2 * 2), w === "TB" && (I.attr("x", g - (o.width + 4 * 4 + 5)).attr("y", k - 12), G.attr("x", g - (o.width + 4 * 4)).attr("y", k + o.height - 12)), w !== "TB" && G.attr("x", f - o.width / 2), h.rotateCommitLabel) + if (w === "TB") + G.attr("transform", "rotate(-45, " + g + ", " + k + ")"), I.attr("transform", "rotate(-45, " + g + ", " + k + ")"); + else { + let u = -7.5 - (o.width + 10) / 25 * 9.5, d = 10 + o.width / 25 * 8.5; + M.attr( + "transform", + "translate(" + u + ", " + d + ") rotate(-45, " + p + ", " + k + ")" + ); + } + } + if (b.tag) { + const M = c.insert("polygon"), I = c.append("circle"), G = c.append("text").attr("y", k - 16).attr("class", "tag-label").text(b.tag); + let o = G.node().getBBox(); + G.attr("x", f - o.width / 2); + const u = o.height / 2, d = k - 19.2; + M.attr("class", "tag-label-bkg").attr( + "points", + ` + ${p - o.width / 2 - 4 / 2},${d + 2} + ${p - o.width / 2 - 4 / 2},${d - 2} + ${f - o.width / 2 - 4},${d - u - 2} + ${f + o.width / 2 + 4},${d - u - 2} + ${f + o.width / 2 + 4},${d + u + 2} + ${f - o.width / 2 - 4},${d + u + 2}` + ), I.attr("cx", p - o.width / 2 + 4 / 2).attr("cy", d).attr("r", 1.5).attr("class", "tag-hole"), w === "TB" && (M.attr("class", "tag-label-bkg").attr( + "points", + ` + ${g},${p + 2} + ${g},${p - 2} + ${g + a},${p - u - 2} + ${g + a + o.width + 4},${p - u - 2} + ${g + a + o.width + 4},${p + u + 2} + ${g + a},${p + u + 2}` + ).attr("transform", "translate(12,12) rotate(45, " + g + "," + p + ")"), I.attr("cx", g + 4 / 2).attr("cy", p).attr("transform", "translate(12,12) rotate(45, " + g + "," + p + ")"), G.attr("x", g + 5).attr("y", p + 3).attr("transform", "translate(14,14) rotate(45, " + g + "," + p + ")")); + } + } + p += R + a, p > te && (te = p); + }); +}, nt = (r, n, l, h, i) => { + const p = (w === "TB" ? l.x < h.x : l.y < h.y) ? n.branch : r.branch, m = (y) => y.branch === p, x = (y) => y.seq > r.seq && y.seq < n.seq; + return Object.values(i).some((y) => x(y) && m(y)); +}, $ = (r, n, l = 0) => { + const h = r + Math.abs(r - n) / 2; + if (l > 5) + return h; + if (ne.every((p) => Math.abs(p - h) >= 10)) + return ne.push(h), h; + const c = Math.abs(r - n); + return $(r, n - c / 5, l + 1); +}, ct = (r, n, l, h) => { + const i = Y[n.id], c = Y[l.id], p = nt(n, l, i, c, h); + let m = "", x = "", y = 0, a = 0, R = H[l.branch].index; + l.type === P.MERGE && n.id !== l.parents[0] && (R = H[n.branch].index); + let _; + if (p) { + m = "A 10 10, 0, 0, 0,", x = "A 10 10, 0, 0, 1,", y = 10, a = 10; + const b = i.y < c.y ? $(i.y, c.y) : $(c.y, i.y), f = i.x < c.x ? $(i.x, c.x) : $(c.x, i.x); + w === "TB" ? i.x < c.x ? _ = `M ${i.x} ${i.y} L ${f - y} ${i.y} ${x} ${f} ${i.y + a} L ${f} ${c.y - y} ${m} ${f + a} ${c.y} L ${c.x} ${c.y}` : (R = H[n.branch].index, _ = `M ${i.x} ${i.y} L ${f + y} ${i.y} ${m} ${f} ${i.y + a} L ${f} ${c.y - y} ${x} ${f - a} ${c.y} L ${c.x} ${c.y}`) : i.y < c.y ? _ = `M ${i.x} ${i.y} L ${i.x} ${b - y} ${m} ${i.x + a} ${b} L ${c.x - y} ${b} ${x} ${c.x} ${b + a} L ${c.x} ${c.y}` : (R = H[n.branch].index, _ = `M ${i.x} ${i.y} L ${i.x} ${b + y} ${x} ${i.x + a} ${b} L ${c.x - y} ${b} ${m} ${c.x} ${b - a} L ${c.x} ${c.y}`); + } else + m = "A 20 20, 0, 0, 0,", x = "A 20 20, 0, 0, 1,", y = 20, a = 20, w === "TB" ? (i.x < c.x && (l.type === P.MERGE && n.id !== l.parents[0] ? _ = `M ${i.x} ${i.y} L ${i.x} ${c.y - y} ${m} ${i.x + a} ${c.y} L ${c.x} ${c.y}` : _ = `M ${i.x} ${i.y} L ${c.x - y} ${i.y} ${x} ${c.x} ${i.y + a} L ${c.x} ${c.y}`), i.x > c.x && (m = "A 20 20, 0, 0, 0,", x = "A 20 20, 0, 0, 1,", y = 20, a = 20, l.type === P.MERGE && n.id !== l.parents[0] ? _ = `M ${i.x} ${i.y} L ${i.x} ${c.y - y} ${x} ${i.x - a} ${c.y} L ${c.x} ${c.y}` : _ = `M ${i.x} ${i.y} L ${c.x + y} ${i.y} ${m} ${c.x} ${i.y + a} L ${c.x} ${c.y}`), i.x === c.x && (_ = `M ${i.x} ${i.y} L ${c.x} ${c.y}`)) : (i.y < c.y && (l.type === P.MERGE && n.id !== l.parents[0] ? _ = `M ${i.x} ${i.y} L ${c.x - y} ${i.y} ${x} ${c.x} ${i.y + a} L ${c.x} ${c.y}` : _ = `M ${i.x} ${i.y} L ${i.x} ${c.y - y} ${m} ${i.x + a} ${c.y} L ${c.x} ${c.y}`), i.y > c.y && (l.type === P.MERGE && n.id !== l.parents[0] ? _ = `M ${i.x} ${i.y} L ${c.x - y} ${i.y} ${m} ${c.x} ${i.y - a} L ${c.x} ${c.y}` : _ = `M ${i.x} ${i.y} L ${i.x} ${c.y + y} ${x} ${i.x + a} ${c.y} L ${c.x} ${c.y}`), i.y === c.y && (_ = `M ${i.x} ${i.y} L ${c.x} ${c.y}`)); + r.append("path").attr("d", _).attr("class", "arrow arrow" + R % U); +}, ot = (r, n) => { + const l = r.append("g").attr("class", "commit-arrows"); + Object.keys(n).forEach((h) => { + const i = n[h]; + i.parents && i.parents.length > 0 && i.parents.forEach((c) => { + ct(l, n[c], i, n); + }); + }); +}, lt = (r, n) => { + const l = v().gitGraph, h = r.append("g"); + n.forEach((i, c) => { + const p = c % U, m = H[i.name].pos, x = h.append("line"); + x.attr("x1", 0), x.attr("y1", m), x.attr("x2", te), x.attr("y2", m), x.attr("class", "branch branch" + p), w === "TB" && (x.attr("y1", 30), x.attr("x1", m), x.attr("y2", te), x.attr("x2", m)), ne.push(m); + let y = i.name; + const a = Te(y), R = h.insert("rect"), b = h.insert("g").attr("class", "branchLabel").insert("g").attr("class", "label branch-label" + p); + b.node().appendChild(a); + let f = a.getBBox(); + R.attr("class", "branchLabelBkg label" + p).attr("rx", 4).attr("ry", 4).attr("x", -f.width - 4 - (l.rotateCommitLabel === !0 ? 30 : 0)).attr("y", -f.height / 2 + 8).attr("width", f.width + 18).attr("height", f.height + 4), b.attr( + "transform", + "translate(" + (-f.width - 14 - (l.rotateCommitLabel === !0 ? 30 : 0)) + ", " + (m - f.height / 2 - 1) + ")" + ), w === "TB" && (R.attr("x", m - f.width / 2 - 10).attr("y", 0), b.attr("transform", "translate(" + (m - f.width / 2 - 5) + ", 0)")), w !== "TB" && R.attr("transform", "translate(-19, " + (m - f.height / 2) + ")"); + }); +}, ht = function(r, n, l, h) { + st(); + const i = v(), c = i.gitGraph; + B.debug("in gitgraph renderer", r + ` +`, "id:", n, l), Z = h.db.getCommits(); + const p = h.db.getBranchesAsObjArray(); + w = h.db.getDirection(); + const m = Ne(`[id="${n}"]`); + let x = 0; + p.forEach((y, a) => { + const R = Te(y.name), _ = m.append("g"), b = _.insert("g").attr("class", "branchLabel"), f = b.insert("g").attr("class", "label branch-label"); + f.node().appendChild(R); + let k = R.getBBox(); + H[y.name] = { pos: x, index: a }, x += 50 + (c.rotateCommitLabel ? 40 : 0) + (w === "TB" ? k.width / 2 : 0), f.remove(), b.remove(), _.remove(); + }), de(m, Z, !1), c.showBranches && lt(m, p), ot(m, Z), de(m, Z, !0), He.insertTitle( + m, + "gitTitleText", + c.titleTopMargin, + h.db.getDiagramTitle() + ), Be( + void 0, + m, + c.diagramPadding, + c.useMaxWidth ?? i.useMaxWidth + ); +}, mt = { + draw: ht +}, ut = (r) => ` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0, 1, 2, 3, 4, 5, 6, 7].map( + (n) => ` + .branch-label${n} { fill: ${r["gitBranchLabel" + n]}; } + .commit${n} { stroke: ${r["git" + n]}; fill: ${r["git" + n]}; } + .commit-highlight${n} { stroke: ${r["gitInv" + n]}; fill: ${r["gitInv" + n]}; } + .label${n} { fill: ${r["git" + n]}; } + .arrow${n} { stroke: ${r["git" + n]}; } + ` +).join(` +`)} + + .branch { + stroke-width: 1; + stroke: ${r.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${r.commitLabelFontSize}; fill: ${r.commitLabelColor};} + .commit-label-bkg { font-size: ${r.commitLabelFontSize}; fill: ${r.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${r.tagLabelFontSize}; fill: ${r.tagLabelColor};} + .tag-label-bkg { fill: ${r.tagLabelBackground}; stroke: ${r.tagLabelBorder}; } + .tag-hole { fill: ${r.textColor}; } + + .commit-merge { + stroke: ${r.primaryColor}; + fill: ${r.primaryColor}; + } + .commit-reverse { + stroke: ${r.primaryColor}; + fill: ${r.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${r.primaryColor}; + fill: ${r.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${r.textColor}; + } +`, ft = ut, bt = { + parser: Ve, + db: it, + renderer: mt, + styles: ft +}; +export { + bt as diagram +}; diff --git a/assets/lib/mermaid/graph-0ee63739.js b/assets/lib/mermaid/graph-0ee63739.js new file mode 100644 index 000000000..7629d610c --- /dev/null +++ b/assets/lib/mermaid/graph-0ee63739.js @@ -0,0 +1,881 @@ +import { aK as I, aL as qe, aM as O, ah as y, ag as Te, aN as Xe, aO as Qe, aP as We, aQ as Ee, aR as G, ae as X, aS as Je, aT as Oe, aU as ze, aV as C, aW as R, an as $e, a8 as me, aX as Ve, aY as Z, aZ as ke, a_ as en, a$ as L, am as nn, b0 as rn, af as tn, b1 as re, b2 as sn, b3 as an, al as un, ak as we, ai as fn, b4 as B, ac as on, b5 as dn, ao as M, z as te, b6 as ie } from "./mermaid-9f2aa176.js"; +var hn = "[object Symbol]"; +function Q(e) { + return typeof e == "symbol" || I(e) && qe(e) == hn; +} +function ve(e, n) { + for (var r = -1, t = e == null ? 0 : e.length, i = Array(t); ++r < t; ) + i[r] = n(e[r], r, e); + return i; +} +var ln = 1 / 0, se = O ? O.prototype : void 0, ae = se ? se.toString : void 0; +function Pe(e) { + if (typeof e == "string") + return e; + if (y(e)) + return ve(e, Pe) + ""; + if (Q(e)) + return ae ? ae.call(e) : ""; + var n = e + ""; + return n == "0" && 1 / e == -ln ? "-0" : n; +} +function gn() { +} +function Le(e, n) { + for (var r = -1, t = e == null ? 0 : e.length; ++r < t && n(e[r], r, e) !== !1; ) + ; + return e; +} +function cn(e, n, r, t) { + for (var i = e.length, s = r + (t ? 1 : -1); t ? s-- : ++s < i; ) + if (n(e[s], s, e)) + return s; + return -1; +} +function _n(e) { + return e !== e; +} +function pn(e, n, r) { + for (var t = r - 1, i = e.length; ++t < i; ) + if (e[t] === n) + return t; + return -1; +} +function bn(e, n, r) { + return n === n ? pn(e, n, r) : cn(e, _n, r); +} +function yn(e, n) { + var r = e == null ? 0 : e.length; + return !!r && bn(e, n, 0) > -1; +} +function T(e) { + return Te(e) ? Xe(e) : Qe(e); +} +var An = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, Tn = /^\w*$/; +function W(e, n) { + if (y(e)) + return !1; + var r = typeof e; + return r == "number" || r == "symbol" || r == "boolean" || e == null || Q(e) ? !0 : Tn.test(e) || !An.test(e) || n != null && e in Object(n); +} +var En = 500; +function On(e) { + var n = We(e, function(t) { + return r.size === En && r.clear(), t; + }), r = n.cache; + return n; +} +var $n = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, mn = /\\(\\)?/g, wn = On(function(e) { + var n = []; + return e.charCodeAt(0) === 46 && n.push(""), e.replace($n, function(r, t, i, s) { + n.push(i ? s.replace(mn, "$1") : t || r); + }), n; +}); +const vn = wn; +function Pn(e) { + return e == null ? "" : Pe(e); +} +function Ie(e, n) { + return y(e) ? e : W(e, n) ? [e] : vn(Pn(e)); +} +var Ln = 1 / 0; +function U(e) { + if (typeof e == "string" || Q(e)) + return e; + var n = e + ""; + return n == "0" && 1 / e == -Ln ? "-0" : n; +} +function Ce(e, n) { + n = Ie(n, e); + for (var r = 0, t = n.length; e != null && r < t; ) + e = e[U(n[r++])]; + return r && r == t ? e : void 0; +} +function In(e, n, r) { + var t = e == null ? void 0 : Ce(e, n); + return t === void 0 ? r : t; +} +function J(e, n) { + for (var r = -1, t = n.length, i = e.length; ++r < t; ) + e[i + r] = n[r]; + return e; +} +var ue = O ? O.isConcatSpreadable : void 0; +function Cn(e) { + return y(e) || Ee(e) || !!(ue && e && e[ue]); +} +function Se(e, n, r, t, i) { + var s = -1, a = e.length; + for (r || (r = Cn), i || (i = []); ++s < a; ) { + var u = e[s]; + n > 0 && r(u) ? n > 1 ? Se(u, n - 1, r, t, i) : J(i, u) : t || (i[i.length] = u); + } + return i; +} +function Sn(e, n, r, t) { + var i = -1, s = e == null ? 0 : e.length; + for (t && s && (r = e[++i]); ++i < s; ) + r = n(r, e[i], i, e); + return r; +} +function Nn(e, n) { + return e && G(n, T(n), e); +} +function Fn(e, n) { + return e && G(n, X(n), e); +} +function Ne(e, n) { + for (var r = -1, t = e == null ? 0 : e.length, i = 0, s = []; ++r < t; ) { + var a = e[r]; + n(a, r, e) && (s[i++] = a); + } + return s; +} +function Fe() { + return []; +} +var Mn = Object.prototype, xn = Mn.propertyIsEnumerable, fe = Object.getOwnPropertySymbols, Dn = fe ? function(e) { + return e == null ? [] : (e = Object(e), Ne(fe(e), function(n) { + return xn.call(e, n); + })); +} : Fe; +const z = Dn; +function Rn(e, n) { + return G(e, z(e), n); +} +var Gn = Object.getOwnPropertySymbols, Un = Gn ? function(e) { + for (var n = []; e; ) + J(n, z(e)), e = Je(e); + return n; +} : Fe; +const Me = Un; +function Bn(e, n) { + return G(e, Me(e), n); +} +function xe(e, n, r) { + var t = n(e); + return y(e) ? t : J(t, r(e)); +} +function q(e) { + return xe(e, T, z); +} +function jn(e) { + return xe(e, X, Me); +} +var Kn = Object.prototype, Hn = Kn.hasOwnProperty; +function Yn(e) { + var n = e.length, r = new e.constructor(n); + return n && typeof e[0] == "string" && Hn.call(e, "index") && (r.index = e.index, r.input = e.input), r; +} +function Zn(e, n) { + var r = n ? Oe(e.buffer) : e.buffer; + return new e.constructor(r, e.byteOffset, e.byteLength); +} +var qn = /\w*$/; +function Xn(e) { + var n = new e.constructor(e.source, qn.exec(e)); + return n.lastIndex = e.lastIndex, n; +} +var oe = O ? O.prototype : void 0, de = oe ? oe.valueOf : void 0; +function Qn(e) { + return de ? Object(de.call(e)) : {}; +} +var Wn = "[object Boolean]", Jn = "[object Date]", zn = "[object Map]", Vn = "[object Number]", kn = "[object RegExp]", er = "[object Set]", nr = "[object String]", rr = "[object Symbol]", tr = "[object ArrayBuffer]", ir = "[object DataView]", sr = "[object Float32Array]", ar = "[object Float64Array]", ur = "[object Int8Array]", fr = "[object Int16Array]", or = "[object Int32Array]", dr = "[object Uint8Array]", hr = "[object Uint8ClampedArray]", lr = "[object Uint16Array]", gr = "[object Uint32Array]"; +function cr(e, n, r) { + var t = e.constructor; + switch (n) { + case tr: + return Oe(e); + case Wn: + case Jn: + return new t(+e); + case ir: + return Zn(e, r); + case sr: + case ar: + case ur: + case fr: + case or: + case dr: + case hr: + case lr: + case gr: + return ze(e, r); + case zn: + return new t(); + case Vn: + case nr: + return new t(e); + case kn: + return Xn(e); + case er: + return new t(); + case rr: + return Qn(e); + } +} +var _r = "[object Map]"; +function pr(e) { + return I(e) && C(e) == _r; +} +var he = R && R.isMap, br = he ? $e(he) : pr; +const yr = br; +var Ar = "[object Set]"; +function Tr(e) { + return I(e) && C(e) == Ar; +} +var le = R && R.isSet, Er = le ? $e(le) : Tr; +const Or = Er; +var $r = 1, mr = 2, wr = 4, De = "[object Arguments]", vr = "[object Array]", Pr = "[object Boolean]", Lr = "[object Date]", Ir = "[object Error]", Re = "[object Function]", Cr = "[object GeneratorFunction]", Sr = "[object Map]", Nr = "[object Number]", Ge = "[object Object]", Fr = "[object RegExp]", Mr = "[object Set]", xr = "[object String]", Dr = "[object Symbol]", Rr = "[object WeakMap]", Gr = "[object ArrayBuffer]", Ur = "[object DataView]", Br = "[object Float32Array]", jr = "[object Float64Array]", Kr = "[object Int8Array]", Hr = "[object Int16Array]", Yr = "[object Int32Array]", Zr = "[object Uint8Array]", qr = "[object Uint8ClampedArray]", Xr = "[object Uint16Array]", Qr = "[object Uint32Array]", h = {}; +h[De] = h[vr] = h[Gr] = h[Ur] = h[Pr] = h[Lr] = h[Br] = h[jr] = h[Kr] = h[Hr] = h[Yr] = h[Sr] = h[Nr] = h[Ge] = h[Fr] = h[Mr] = h[xr] = h[Dr] = h[Zr] = h[qr] = h[Xr] = h[Qr] = !0; +h[Ir] = h[Re] = h[Rr] = !1; +function j(e, n, r, t, i, s) { + var a, u = n & $r, f = n & mr, g = n & wr; + if (r && (a = i ? r(e, t, i, s) : r(e)), a !== void 0) + return a; + if (!me(e)) + return e; + var l = y(e); + if (l) { + if (a = Yn(e), !u) + return Ve(e, a); + } else { + var o = C(e), d = o == Re || o == Cr; + if (Z(e)) + return ke(e, u); + if (o == Ge || o == De || d && !i) { + if (a = f || d ? {} : en(e), !u) + return f ? Bn(e, Fn(a, e)) : Rn(e, Nn(a, e)); + } else { + if (!h[o]) + return i ? e : {}; + a = cr(e, o, u); + } + } + s || (s = new L()); + var A = s.get(e); + if (A) + return A; + s.set(e, a), Or(e) ? e.forEach(function(c) { + a.add(j(c, n, r, c, e, s)); + }) : yr(e) && e.forEach(function(c, _) { + a.set(_, j(c, n, r, _, e, s)); + }); + var p = g ? f ? jn : q : f ? X : T, b = l ? void 0 : p(e); + return Le(b || e, function(c, _) { + b && (_ = c, c = e[_]), nn(a, _, j(c, n, r, _, e, s)); + }), a; +} +var Wr = "__lodash_hash_undefined__"; +function Jr(e) { + return this.__data__.set(e, Wr), this; +} +function zr(e) { + return this.__data__.has(e); +} +function S(e) { + var n = -1, r = e == null ? 0 : e.length; + for (this.__data__ = new rn(); ++n < r; ) + this.add(e[n]); +} +S.prototype.add = S.prototype.push = Jr; +S.prototype.has = zr; +function Vr(e, n) { + for (var r = -1, t = e == null ? 0 : e.length; ++r < t; ) + if (n(e[r], r, e)) + return !0; + return !1; +} +function Ue(e, n) { + return e.has(n); +} +var kr = 1, et = 2; +function Be(e, n, r, t, i, s) { + var a = r & kr, u = e.length, f = n.length; + if (u != f && !(a && f > u)) + return !1; + var g = s.get(e), l = s.get(n); + if (g && l) + return g == n && l == e; + var o = -1, d = !0, A = r & et ? new S() : void 0; + for (s.set(e, n), s.set(n, e); ++o < u; ) { + var p = e[o], b = n[o]; + if (t) + var c = a ? t(b, p, o, n, e, s) : t(p, b, o, e, n, s); + if (c !== void 0) { + if (c) + continue; + d = !1; + break; + } + if (A) { + if (!Vr(n, function(_, $) { + if (!Ue(A, $) && (p === _ || i(p, _, r, t, s))) + return A.push($); + })) { + d = !1; + break; + } + } else if (!(p === b || i(p, b, r, t, s))) { + d = !1; + break; + } + } + return s.delete(e), s.delete(n), d; +} +function nt(e) { + var n = -1, r = Array(e.size); + return e.forEach(function(t, i) { + r[++n] = [i, t]; + }), r; +} +function V(e) { + var n = -1, r = Array(e.size); + return e.forEach(function(t) { + r[++n] = t; + }), r; +} +var rt = 1, tt = 2, it = "[object Boolean]", st = "[object Date]", at = "[object Error]", ut = "[object Map]", ft = "[object Number]", ot = "[object RegExp]", dt = "[object Set]", ht = "[object String]", lt = "[object Symbol]", gt = "[object ArrayBuffer]", ct = "[object DataView]", ge = O ? O.prototype : void 0, K = ge ? ge.valueOf : void 0; +function _t(e, n, r, t, i, s, a) { + switch (r) { + case ct: + if (e.byteLength != n.byteLength || e.byteOffset != n.byteOffset) + return !1; + e = e.buffer, n = n.buffer; + case gt: + return !(e.byteLength != n.byteLength || !s(new re(e), new re(n))); + case it: + case st: + case ft: + return tn(+e, +n); + case at: + return e.name == n.name && e.message == n.message; + case ot: + case ht: + return e == n + ""; + case ut: + var u = nt; + case dt: + var f = t & rt; + if (u || (u = V), e.size != n.size && !f) + return !1; + var g = a.get(e); + if (g) + return g == n; + t |= tt, a.set(e, n); + var l = Be(u(e), u(n), t, i, s, a); + return a.delete(e), l; + case lt: + if (K) + return K.call(e) == K.call(n); + } + return !1; +} +var pt = 1, bt = Object.prototype, yt = bt.hasOwnProperty; +function At(e, n, r, t, i, s) { + var a = r & pt, u = q(e), f = u.length, g = q(n), l = g.length; + if (f != l && !a) + return !1; + for (var o = f; o--; ) { + var d = u[o]; + if (!(a ? d in n : yt.call(n, d))) + return !1; + } + var A = s.get(e), p = s.get(n); + if (A && p) + return A == n && p == e; + var b = !0; + s.set(e, n), s.set(n, e); + for (var c = a; ++o < f; ) { + d = u[o]; + var _ = e[d], $ = n[d]; + if (t) + var ne = a ? t($, _, d, n, e, s) : t(_, $, d, e, n, s); + if (!(ne === void 0 ? _ === $ || i(_, $, r, t, s) : ne)) { + b = !1; + break; + } + c || (c = d == "constructor"); + } + if (b && !c) { + var N = e.constructor, F = n.constructor; + N != F && "constructor" in e && "constructor" in n && !(typeof N == "function" && N instanceof N && typeof F == "function" && F instanceof F) && (b = !1); + } + return s.delete(e), s.delete(n), b; +} +var Tt = 1, ce = "[object Arguments]", _e = "[object Array]", x = "[object Object]", Et = Object.prototype, pe = Et.hasOwnProperty; +function Ot(e, n, r, t, i, s) { + var a = y(e), u = y(n), f = a ? _e : C(e), g = u ? _e : C(n); + f = f == ce ? x : f, g = g == ce ? x : g; + var l = f == x, o = g == x, d = f == g; + if (d && Z(e)) { + if (!Z(n)) + return !1; + a = !0, l = !1; + } + if (d && !l) + return s || (s = new L()), a || sn(e) ? Be(e, n, r, t, i, s) : _t(e, n, f, r, t, i, s); + if (!(r & Tt)) { + var A = l && pe.call(e, "__wrapped__"), p = o && pe.call(n, "__wrapped__"); + if (A || p) { + var b = A ? e.value() : e, c = p ? n.value() : n; + return s || (s = new L()), i(b, c, r, t, s); + } + } + return d ? (s || (s = new L()), At(e, n, r, t, i, s)) : !1; +} +function k(e, n, r, t, i) { + return e === n ? !0 : e == null || n == null || !I(e) && !I(n) ? e !== e && n !== n : Ot(e, n, r, t, k, i); +} +var $t = 1, mt = 2; +function wt(e, n, r, t) { + var i = r.length, s = i, a = !t; + if (e == null) + return !s; + for (e = Object(e); i--; ) { + var u = r[i]; + if (a && u[2] ? u[1] !== e[u[0]] : !(u[0] in e)) + return !1; + } + for (; ++i < s; ) { + u = r[i]; + var f = u[0], g = e[f], l = u[1]; + if (a && u[2]) { + if (g === void 0 && !(f in e)) + return !1; + } else { + var o = new L(); + if (t) + var d = t(g, l, f, e, n, o); + if (!(d === void 0 ? k(l, g, $t | mt, t, o) : d)) + return !1; + } + } + return !0; +} +function je(e) { + return e === e && !me(e); +} +function vt(e) { + for (var n = T(e), r = n.length; r--; ) { + var t = n[r], i = e[t]; + n[r] = [t, i, je(i)]; + } + return n; +} +function Ke(e, n) { + return function(r) { + return r == null ? !1 : r[e] === n && (n !== void 0 || e in Object(r)); + }; +} +function Pt(e) { + var n = vt(e); + return n.length == 1 && n[0][2] ? Ke(n[0][0], n[0][1]) : function(r) { + return r === e || wt(r, e, n); + }; +} +function Lt(e, n) { + return e != null && n in Object(e); +} +function He(e, n, r) { + n = Ie(n, e); + for (var t = -1, i = n.length, s = !1; ++t < i; ) { + var a = U(n[t]); + if (!(s = e != null && r(e, a))) + break; + e = e[a]; + } + return s || ++t != i ? s : (i = e == null ? 0 : e.length, !!i && an(i) && un(a, i) && (y(e) || Ee(e))); +} +function It(e, n) { + return e != null && He(e, n, Lt); +} +var Ct = 1, St = 2; +function Nt(e, n) { + return W(e) && je(n) ? Ke(U(e), n) : function(r) { + var t = In(r, e); + return t === void 0 && t === n ? It(r, e) : k(n, t, Ct | St); + }; +} +function Ft(e) { + return function(n) { + return n == null ? void 0 : n[e]; + }; +} +function Mt(e) { + return function(n) { + return Ce(n, e); + }; +} +function xt(e) { + return W(e) ? Ft(U(e)) : Mt(e); +} +function Ye(e) { + return typeof e == "function" ? e : e == null ? we : typeof e == "object" ? y(e) ? Nt(e[0], e[1]) : Pt(e) : xt(e); +} +function Dt(e, n) { + return e && fn(e, n, T); +} +function Rt(e, n) { + return function(r, t) { + if (r == null) + return r; + if (!Te(r)) + return e(r, t); + for (var i = r.length, s = n ? i : -1, a = Object(r); (n ? s-- : ++s < i) && t(a[s], s, a) !== !1; ) + ; + return r; + }; +} +var Gt = Rt(Dt); +const ee = Gt; +function Ut(e, n, r) { + for (var t = -1, i = e == null ? 0 : e.length; ++t < i; ) + if (r(n, e[t])) + return !0; + return !1; +} +function Bt(e) { + return typeof e == "function" ? e : we; +} +function m(e, n) { + var r = y(e) ? Le : ee; + return r(e, Bt(n)); +} +function jt(e, n) { + var r = []; + return ee(e, function(t, i, s) { + n(t, i, s) && r.push(t); + }), r; +} +function D(e, n) { + var r = y(e) ? Ne : jt; + return r(e, Ye(n)); +} +var Kt = Object.prototype, Ht = Kt.hasOwnProperty; +function Yt(e, n) { + return e != null && Ht.call(e, n); +} +function E(e, n) { + return e != null && He(e, n, Yt); +} +function Zt(e, n) { + return ve(n, function(r) { + return e[r]; + }); +} +function H(e) { + return e == null ? [] : Zt(e, T(e)); +} +function v(e) { + return e === void 0; +} +function qt(e, n, r, t, i) { + return i(e, function(s, a, u) { + r = t ? (t = !1, s) : n(r, s, a, u); + }), r; +} +function Xt(e, n, r) { + var t = y(e) ? Sn : qt, i = arguments.length < 3; + return t(e, Ye(n), r, i, ee); +} +var Qt = 1 / 0, Wt = B && 1 / V(new B([, -0]))[1] == Qt ? function(e) { + return new B(e); +} : gn; +const Jt = Wt; +var zt = 200; +function Vt(e, n, r) { + var t = -1, i = yn, s = e.length, a = !0, u = [], f = u; + if (r) + a = !1, i = Ut; + else if (s >= zt) { + var g = n ? null : Jt(e); + if (g) + return V(g); + a = !1, i = Ue, f = new S(); + } else + f = n ? [] : u; + e: + for (; ++t < s; ) { + var l = e[t], o = n ? n(l) : l; + if (l = r || l !== 0 ? l : 0, a && o === o) { + for (var d = f.length; d--; ) + if (f[d] === o) + continue e; + n && f.push(o), u.push(l); + } else + i(f, o, r) || (f !== u && f.push(o), u.push(l)); + } + return u; +} +var kt = on(function(e) { + return Vt(Se(e, 1, dn, !0)); +}); +const ei = kt; +var ni = "\0", w = "\0", be = ""; +class Ze { + constructor(n = {}) { + this._isDirected = E(n, "directed") ? n.directed : !0, this._isMultigraph = E(n, "multigraph") ? n.multigraph : !1, this._isCompound = E(n, "compound") ? n.compound : !1, this._label = void 0, this._defaultNodeLabelFn = M(void 0), this._defaultEdgeLabelFn = M(void 0), this._nodes = {}, this._isCompound && (this._parent = {}, this._children = {}, this._children[w] = {}), this._in = {}, this._preds = {}, this._out = {}, this._sucs = {}, this._edgeObjs = {}, this._edgeLabels = {}; + } + /* === Graph functions ========= */ + isDirected() { + return this._isDirected; + } + isMultigraph() { + return this._isMultigraph; + } + isCompound() { + return this._isCompound; + } + setGraph(n) { + return this._label = n, this; + } + graph() { + return this._label; + } + /* === Node functions ========== */ + setDefaultNodeLabel(n) { + return te(n) || (n = M(n)), this._defaultNodeLabelFn = n, this; + } + nodeCount() { + return this._nodeCount; + } + nodes() { + return T(this._nodes); + } + sources() { + var n = this; + return D(this.nodes(), function(r) { + return ie(n._in[r]); + }); + } + sinks() { + var n = this; + return D(this.nodes(), function(r) { + return ie(n._out[r]); + }); + } + setNodes(n, r) { + var t = arguments, i = this; + return m(n, function(s) { + t.length > 1 ? i.setNode(s, r) : i.setNode(s); + }), this; + } + setNode(n, r) { + return E(this._nodes, n) ? (arguments.length > 1 && (this._nodes[n] = r), this) : (this._nodes[n] = arguments.length > 1 ? r : this._defaultNodeLabelFn(n), this._isCompound && (this._parent[n] = w, this._children[n] = {}, this._children[w][n] = !0), this._in[n] = {}, this._preds[n] = {}, this._out[n] = {}, this._sucs[n] = {}, ++this._nodeCount, this); + } + node(n) { + return this._nodes[n]; + } + hasNode(n) { + return E(this._nodes, n); + } + removeNode(n) { + var r = this; + if (E(this._nodes, n)) { + var t = function(i) { + r.removeEdge(r._edgeObjs[i]); + }; + delete this._nodes[n], this._isCompound && (this._removeFromParentsChildList(n), delete this._parent[n], m(this.children(n), function(i) { + r.setParent(i); + }), delete this._children[n]), m(T(this._in[n]), t), delete this._in[n], delete this._preds[n], m(T(this._out[n]), t), delete this._out[n], delete this._sucs[n], --this._nodeCount; + } + return this; + } + setParent(n, r) { + if (!this._isCompound) + throw new Error("Cannot set parent in a non-compound graph"); + if (v(r)) + r = w; + else { + r += ""; + for (var t = r; !v(t); t = this.parent(t)) + if (t === n) + throw new Error("Setting " + r + " as parent of " + n + " would create a cycle"); + this.setNode(r); + } + return this.setNode(n), this._removeFromParentsChildList(n), this._parent[n] = r, this._children[r][n] = !0, this; + } + _removeFromParentsChildList(n) { + delete this._children[this._parent[n]][n]; + } + parent(n) { + if (this._isCompound) { + var r = this._parent[n]; + if (r !== w) + return r; + } + } + children(n) { + if (v(n) && (n = w), this._isCompound) { + var r = this._children[n]; + if (r) + return T(r); + } else { + if (n === w) + return this.nodes(); + if (this.hasNode(n)) + return []; + } + } + predecessors(n) { + var r = this._preds[n]; + if (r) + return T(r); + } + successors(n) { + var r = this._sucs[n]; + if (r) + return T(r); + } + neighbors(n) { + var r = this.predecessors(n); + if (r) + return ei(r, this.successors(n)); + } + isLeaf(n) { + var r; + return this.isDirected() ? r = this.successors(n) : r = this.neighbors(n), r.length === 0; + } + filterNodes(n) { + var r = new this.constructor({ + directed: this._isDirected, + multigraph: this._isMultigraph, + compound: this._isCompound + }); + r.setGraph(this.graph()); + var t = this; + m(this._nodes, function(a, u) { + n(u) && r.setNode(u, a); + }), m(this._edgeObjs, function(a) { + r.hasNode(a.v) && r.hasNode(a.w) && r.setEdge(a, t.edge(a)); + }); + var i = {}; + function s(a) { + var u = t.parent(a); + return u === void 0 || r.hasNode(u) ? (i[a] = u, u) : u in i ? i[u] : s(u); + } + return this._isCompound && m(r.nodes(), function(a) { + r.setParent(a, s(a)); + }), r; + } + /* === Edge functions ========== */ + setDefaultEdgeLabel(n) { + return te(n) || (n = M(n)), this._defaultEdgeLabelFn = n, this; + } + edgeCount() { + return this._edgeCount; + } + edges() { + return H(this._edgeObjs); + } + setPath(n, r) { + var t = this, i = arguments; + return Xt(n, function(s, a) { + return i.length > 1 ? t.setEdge(s, a, r) : t.setEdge(s, a), a; + }), this; + } + /* + * setEdge(v, w, [value, [name]]) + * setEdge({ v, w, [name] }, [value]) + */ + setEdge() { + var n, r, t, i, s = !1, a = arguments[0]; + typeof a == "object" && a !== null && "v" in a ? (n = a.v, r = a.w, t = a.name, arguments.length === 2 && (i = arguments[1], s = !0)) : (n = a, r = arguments[1], t = arguments[3], arguments.length > 2 && (i = arguments[2], s = !0)), n = "" + n, r = "" + r, v(t) || (t = "" + t); + var u = P(this._isDirected, n, r, t); + if (E(this._edgeLabels, u)) + return s && (this._edgeLabels[u] = i), this; + if (!v(t) && !this._isMultigraph) + throw new Error("Cannot set a named edge when isMultigraph = false"); + this.setNode(n), this.setNode(r), this._edgeLabels[u] = s ? i : this._defaultEdgeLabelFn(n, r, t); + var f = ri(this._isDirected, n, r, t); + return n = f.v, r = f.w, Object.freeze(f), this._edgeObjs[u] = f, ye(this._preds[r], n), ye(this._sucs[n], r), this._in[r][u] = f, this._out[n][u] = f, this._edgeCount++, this; + } + edge(n, r, t) { + var i = arguments.length === 1 ? Y(this._isDirected, arguments[0]) : P(this._isDirected, n, r, t); + return this._edgeLabels[i]; + } + hasEdge(n, r, t) { + var i = arguments.length === 1 ? Y(this._isDirected, arguments[0]) : P(this._isDirected, n, r, t); + return E(this._edgeLabels, i); + } + removeEdge(n, r, t) { + var i = arguments.length === 1 ? Y(this._isDirected, arguments[0]) : P(this._isDirected, n, r, t), s = this._edgeObjs[i]; + return s && (n = s.v, r = s.w, delete this._edgeLabels[i], delete this._edgeObjs[i], Ae(this._preds[r], n), Ae(this._sucs[n], r), delete this._in[r][i], delete this._out[n][i], this._edgeCount--), this; + } + inEdges(n, r) { + var t = this._in[n]; + if (t) { + var i = H(t); + return r ? D(i, function(s) { + return s.v === r; + }) : i; + } + } + outEdges(n, r) { + var t = this._out[n]; + if (t) { + var i = H(t); + return r ? D(i, function(s) { + return s.w === r; + }) : i; + } + } + nodeEdges(n, r) { + var t = this.inEdges(n, r); + if (t) + return t.concat(this.outEdges(n, r)); + } +} +Ze.prototype._nodeCount = 0; +Ze.prototype._edgeCount = 0; +function ye(e, n) { + e[n] ? e[n]++ : e[n] = 1; +} +function Ae(e, n) { + --e[n] || delete e[n]; +} +function P(e, n, r, t) { + var i = "" + n, s = "" + r; + if (!e && i > s) { + var a = i; + i = s, s = a; + } + return i + be + s + be + (v(t) ? ni : t); +} +function ri(e, n, r, t) { + var i = "" + n, s = "" + r; + if (!e && i > s) { + var a = i; + i = s, s = a; + } + var u = { v: i, w: s }; + return t && (u.name = t), u; +} +function Y(e, n) { + return P(e, n.v, n.w, n.name); +} +export { + Ze as G, + Q as a, + Se as b, + j as c, + Ye as d, + cn as e, + m as f, + ee as g, + E as h, + v as i, + ve as j, + T as k, + Bt as l, + Dt as m, + Ie as n, + Ce as o, + It as p, + Pn as q, + D as r, + Xt as s, + U as t, + H as v +}; diff --git a/assets/lib/mermaid/graph-fe24fab6.js b/assets/lib/mermaid/graph-fe24fab6.js new file mode 100644 index 000000000..e4586432c --- /dev/null +++ b/assets/lib/mermaid/graph-fe24fab6.js @@ -0,0 +1,1285 @@ +import { aK as isObjectLike, aL as baseGetTag, aM as Symbol$1, ah as isArray, ag as isArrayLike, aN as arrayLikeKeys, aO as baseKeys, aP as memoize, aQ as isArguments, aR as copyObject, ae as keysIn, aS as getPrototype, aT as cloneArrayBuffer, aU as cloneTypedArray, aV as getTag, aW as nodeUtil, an as baseUnary, a8 as isObject, aX as copyArray, aY as isBuffer, aZ as cloneBuffer, a_ as initCloneObject, a$ as Stack, am as assignValue, b0 as MapCache, af as eq, b1 as Uint8Array, b2 as isTypedArray, b3 as isLength, al as isIndex, ak as identity, ai as baseFor, b4 as Set, ac as baseRest, b5 as isArrayLikeObject, ao as constant, z as isFunction, b6 as isEmpty } from "./mermaid-dcacb631.js"; +var symbolTag$3 = "[object Symbol]"; +function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$3; +} +function arrayMap(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length, result = Array(length); + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} +var INFINITY$2 = 1 / 0; +var symbolProto$2 = Symbol$1 ? Symbol$1.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0; +function baseToString(value) { + if (typeof value == "string") { + return value; + } + if (isArray(value)) { + return arrayMap(value, baseToString) + ""; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ""; + } + var result = value + ""; + return result == "0" && 1 / value == -INFINITY$2 ? "-0" : result; +} +function noop() { +} +function arrayEach(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; +} +function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, index = fromIndex + (fromRight ? 1 : -1); + while (fromRight ? index-- : ++index < length) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; +} +function baseIsNaN(value) { + return value !== value; +} +function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, length = array.length; + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; +} +function baseIndexOf(array, value, fromIndex) { + return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); +} +function arrayIncludes(array, value) { + var length = array == null ? 0 : array.length; + return !!length && baseIndexOf(array, value, 0) > -1; +} +function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); +} +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/; +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); +} +var MAX_MEMOIZE_SIZE = 500; +function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + var cache = result.cache; + return result; +} +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; +var reEscapeChar = /\\(\\)?/g; +var stringToPath = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46) { + result.push(""); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, "$1") : number || match); + }); + return result; +}); +const stringToPath$1 = stringToPath; +function toString(value) { + return value == null ? "" : baseToString(value); +} +function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath$1(toString(value)); +} +var INFINITY$1 = 1 / 0; +function toKey(value) { + if (typeof value == "string" || isSymbol(value)) { + return value; + } + var result = value + ""; + return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result; +} +function baseGet(object, path) { + path = castPath(path, object); + var index = 0, length = path.length; + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return index && index == length ? object : void 0; +} +function get(object, path, defaultValue) { + var result = object == null ? void 0 : baseGet(object, path); + return result === void 0 ? defaultValue : result; +} +function arrayPush(array, values2) { + var index = -1, length = values2.length, offset = array.length; + while (++index < length) { + array[offset + index] = values2[index]; + } + return array; +} +var spreadableSymbol = Symbol$1 ? Symbol$1.isConcatSpreadable : void 0; +function isFlattenable(value) { + return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); +} +function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, length = array.length; + predicate || (predicate = isFlattenable); + result || (result = []); + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; +} +function arrayReduce(array, iteratee, accumulator, initAccum) { + var index = -1, length = array == null ? 0 : array.length; + if (initAccum && length) { + accumulator = array[++index]; + } + while (++index < length) { + accumulator = iteratee(accumulator, array[index], index, array); + } + return accumulator; +} +function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); +} +function baseAssignIn(object, source) { + return object && copyObject(source, keysIn(source), object); +} +function arrayFilter(array, predicate) { + var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; +} +function stubArray() { + return []; +} +var objectProto$4 = Object.prototype; +var propertyIsEnumerable = objectProto$4.propertyIsEnumerable; +var nativeGetSymbols$1 = Object.getOwnPropertySymbols; +var getSymbols = !nativeGetSymbols$1 ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols$1(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); +}; +const getSymbols$1 = getSymbols; +function copySymbols(source, object) { + return copyObject(source, getSymbols$1(source), object); +} +var nativeGetSymbols = Object.getOwnPropertySymbols; +var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { + var result = []; + while (object) { + arrayPush(result, getSymbols$1(object)); + object = getPrototype(object); + } + return result; +}; +const getSymbolsIn$1 = getSymbolsIn; +function copySymbolsIn(source, object) { + return copyObject(source, getSymbolsIn$1(source), object); +} +function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); +} +function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols$1); +} +function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn$1); +} +var objectProto$3 = Object.prototype; +var hasOwnProperty$3 = objectProto$3.hasOwnProperty; +function initCloneArray(array) { + var length = array.length, result = new array.constructor(length); + if (length && typeof array[0] == "string" && hasOwnProperty$3.call(array, "index")) { + result.index = array.index; + result.input = array.input; + } + return result; +} +function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); +} +var reFlags = /\w*$/; +function cloneRegExp(regexp) { + var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result.lastIndex = regexp.lastIndex; + return result; +} +var symbolProto$1 = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : void 0; +function cloneSymbol(symbol) { + return symbolValueOf$1 ? Object(symbolValueOf$1.call(symbol)) : {}; +} +var boolTag$2 = "[object Boolean]", dateTag$2 = "[object Date]", mapTag$3 = "[object Map]", numberTag$2 = "[object Number]", regexpTag$2 = "[object RegExp]", setTag$3 = "[object Set]", stringTag$2 = "[object String]", symbolTag$2 = "[object Symbol]"; +var arrayBufferTag$2 = "[object ArrayBuffer]", dataViewTag$2 = "[object DataView]", float32Tag$1 = "[object Float32Array]", float64Tag$1 = "[object Float64Array]", int8Tag$1 = "[object Int8Array]", int16Tag$1 = "[object Int16Array]", int32Tag$1 = "[object Int32Array]", uint8Tag$1 = "[object Uint8Array]", uint8ClampedTag$1 = "[object Uint8ClampedArray]", uint16Tag$1 = "[object Uint16Array]", uint32Tag$1 = "[object Uint32Array]"; +function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag$2: + return cloneArrayBuffer(object); + case boolTag$2: + case dateTag$2: + return new Ctor(+object); + case dataViewTag$2: + return cloneDataView(object, isDeep); + case float32Tag$1: + case float64Tag$1: + case int8Tag$1: + case int16Tag$1: + case int32Tag$1: + case uint8Tag$1: + case uint8ClampedTag$1: + case uint16Tag$1: + case uint32Tag$1: + return cloneTypedArray(object, isDeep); + case mapTag$3: + return new Ctor(); + case numberTag$2: + case stringTag$2: + return new Ctor(object); + case regexpTag$2: + return cloneRegExp(object); + case setTag$3: + return new Ctor(); + case symbolTag$2: + return cloneSymbol(object); + } +} +var mapTag$2 = "[object Map]"; +function baseIsMap(value) { + return isObjectLike(value) && getTag(value) == mapTag$2; +} +var nodeIsMap = nodeUtil && nodeUtil.isMap; +var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; +const isMap$1 = isMap; +var setTag$2 = "[object Set]"; +function baseIsSet(value) { + return isObjectLike(value) && getTag(value) == setTag$2; +} +var nodeIsSet = nodeUtil && nodeUtil.isSet; +var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; +const isSet$1 = isSet; +var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4; +var argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$1 = "[object Boolean]", dateTag$1 = "[object Date]", errorTag$1 = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag$1 = "[object Map]", numberTag$1 = "[object Number]", objectTag$1 = "[object Object]", regexpTag$1 = "[object RegExp]", setTag$1 = "[object Set]", stringTag$1 = "[object String]", symbolTag$1 = "[object Symbol]", weakMapTag = "[object WeakMap]"; +var arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$1 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]"; +var cloneableTags = {}; +cloneableTags[argsTag$1] = cloneableTags[arrayTag$1] = cloneableTags[arrayBufferTag$1] = cloneableTags[dataViewTag$1] = cloneableTags[boolTag$1] = cloneableTags[dateTag$1] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag$1] = cloneableTags[numberTag$1] = cloneableTags[objectTag$1] = cloneableTags[regexpTag$1] = cloneableTags[setTag$1] = cloneableTags[stringTag$1] = cloneableTags[symbolTag$1] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; +cloneableTags[errorTag$1] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; +function baseClone(value, bitmask, customizer, key, object, stack) { + var result, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG; + if (customizer) { + result = object ? customizer(value, key, object, stack) : customizer(value); + } + if (result !== void 0) { + return result; + } + if (!isObject(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result = initCloneArray(value); + if (!isDeep) { + return copyArray(value, result); + } + } else { + var tag = getTag(value), isFunc = tag == funcTag || tag == genTag; + if (isBuffer(value)) { + return cloneBuffer(value, isDeep); + } + if (tag == objectTag$1 || tag == argsTag$1 || isFunc && !object) { + result = isFlat || isFunc ? {} : initCloneObject(value); + if (!isDeep) { + return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value)); + } + } else { + if (!cloneableTags[tag]) { + return object ? value : {}; + } + result = initCloneByTag(value, tag, isDeep); + } + } + stack || (stack = new Stack()); + var stacked = stack.get(value); + if (stacked) { + return stacked; + } + stack.set(value, result); + if (isSet$1(value)) { + value.forEach(function(subValue) { + result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); + }); + } else if (isMap$1(value)) { + value.forEach(function(subValue, key2) { + result.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); + }); + } + var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys; + var props = isArr ? void 0 : keysFunc(value); + arrayEach(props || value, function(subValue, key2) { + if (props) { + key2 = subValue; + subValue = value[key2]; + } + assignValue(result, key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); + }); + return result; +} +var HASH_UNDEFINED = "__lodash_hash_undefined__"; +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; +} +function setCacheHas(value) { + return this.__data__.has(value); +} +function SetCache(values2) { + var index = -1, length = values2 == null ? 0 : values2.length; + this.__data__ = new MapCache(); + while (++index < length) { + this.add(values2[index]); + } +} +SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; +SetCache.prototype.has = setCacheHas; +function arraySome(array, predicate) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} +function cacheHas(cache, key) { + return cache.has(key); +} +var COMPARE_PARTIAL_FLAG$5 = 1, COMPARE_UNORDERED_FLAG$3 = 2; +function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, arrLength = array.length, othLength = other.length; + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new SetCache() : void 0; + stack.set(array, other); + stack.set(other, array); + while (++index < arrLength) { + var arrValue = array[index], othValue = other[index]; + if (customizer) { + var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== void 0) { + if (compared) { + continue; + } + result = false; + break; + } + if (seen) { + if (!arraySome(other, function(othValue2, othIndex) { + if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + result = false; + break; + } + } + stack["delete"](array); + stack["delete"](other); + return result; +} +function mapToArray(map) { + var index = -1, result = Array(map.size); + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; +} +function setToArray(set) { + var index = -1, result = Array(set.size); + set.forEach(function(value) { + result[++index] = value; + }); + return result; +} +var COMPARE_PARTIAL_FLAG$4 = 1, COMPARE_UNORDERED_FLAG$2 = 2; +var boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", mapTag = "[object Map]", numberTag = "[object Number]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]"; +var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]"; +var symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; +function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { + return false; + } + object = object.buffer; + other = other.buffer; + case arrayBufferTag: + if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) { + return false; + } + return true; + case boolTag: + case dateTag: + case numberTag: + return eq(+object, +other); + case errorTag: + return object.name == other.name && object.message == other.message; + case regexpTag: + case stringTag: + return object == other + ""; + case mapTag: + var convert = mapToArray; + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4; + convert || (convert = setToArray); + if (object.size != other.size && !isPartial) { + return false; + } + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG$2; + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack["delete"](object); + return result; + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; +} +var COMPARE_PARTIAL_FLAG$3 = 1; +var objectProto$2 = Object.prototype; +var hasOwnProperty$2 = objectProto$2.hasOwnProperty; +function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty$2.call(other, key))) { + return false; + } + } + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], othValue = other[key]; + if (customizer) { + var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); + } + if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { + result = false; + break; + } + skipCtor || (skipCtor = key == "constructor"); + } + if (result && !skipCtor) { + var objCtor = object.constructor, othCtor = other.constructor; + if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { + result = false; + } + } + stack["delete"](object); + stack["delete"](other); + return result; +} +var COMPARE_PARTIAL_FLAG$2 = 1; +var argsTag = "[object Arguments]", arrayTag = "[object Array]", objectTag = "[object Object]"; +var objectProto$1 = Object.prototype; +var hasOwnProperty$1 = objectProto$1.hasOwnProperty; +function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack()); + return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) { + var objIsWrapped = objIsObj && hasOwnProperty$1.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty$1.call(other, "__wrapped__"); + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; + stack || (stack = new Stack()); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack()); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); +} +function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); +} +var COMPARE_PARTIAL_FLAG$1 = 1, COMPARE_UNORDERED_FLAG$1 = 2; +function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, length = index, noCustomizer = !customizer; + if (object == null) { + return !length; + } + object = Object(object); + while (index--) { + var data = matchData[index]; + if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], objValue = object[key], srcValue = data[1]; + if (noCustomizer && data[2]) { + if (objValue === void 0 && !(key in object)) { + return false; + } + } else { + var stack = new Stack(); + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result === void 0 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) { + return false; + } + } + } + return true; +} +function isStrictComparable(value) { + return value === value && !isObject(value); +} +function getMatchData(object) { + var result = keys(object), length = result.length; + while (length--) { + var key = result[length], value = object[key]; + result[length] = [key, value, isStrictComparable(value)]; + } + return result; +} +function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && (srcValue !== void 0 || key in Object(object)); + }; +} +function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; +} +function baseHasIn(object, key) { + return object != null && key in Object(object); +} +function hasPath(object, path, hasFunc) { + path = castPath(path, object); + var index = -1, length = path.length, result = false; + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); +} +function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); +} +var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; +function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); + } + return function(object) { + var objValue = get(object, path); + return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; +} +function baseProperty(key) { + return function(object) { + return object == null ? void 0 : object[key]; + }; +} +function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; +} +function property(path) { + return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); +} +function baseIteratee(value) { + if (typeof value == "function") { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == "object") { + return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); + } + return property(value); +} +function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); +} +function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee); + } + var length = collection.length, index = fromRight ? length : -1, iterable = Object(collection); + while (fromRight ? index-- : ++index < length) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; +} +var baseEach = createBaseEach(baseForOwn); +const baseEach$1 = baseEach; +function arrayIncludesWith(array, value, comparator) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (comparator(value, array[index])) { + return true; + } + } + return false; +} +function castFunction(value) { + return typeof value == "function" ? value : identity; +} +function forEach(collection, iteratee) { + var func = isArray(collection) ? arrayEach : baseEach$1; + return func(collection, castFunction(iteratee)); +} +function baseFilter(collection, predicate) { + var result = []; + baseEach$1(collection, function(value, index, collection2) { + if (predicate(value, index, collection2)) { + result.push(value); + } + }); + return result; +} +function filter(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, baseIteratee(predicate)); +} +var objectProto = Object.prototype; +var hasOwnProperty = objectProto.hasOwnProperty; +function baseHas(object, key) { + return object != null && hasOwnProperty.call(object, key); +} +function has(object, path) { + return object != null && hasPath(object, path, baseHas); +} +function baseValues(object, props) { + return arrayMap(props, function(key) { + return object[key]; + }); +} +function values(object) { + return object == null ? [] : baseValues(object, keys(object)); +} +function isUndefined(value) { + return value === void 0; +} +function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { + eachFunc(collection, function(value, index, collection2) { + accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2); + }); + return accumulator; +} +function reduce(collection, iteratee, accumulator) { + var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3; + return func(collection, baseIteratee(iteratee), accumulator, initAccum, baseEach$1); +} +var INFINITY = 1 / 0; +var createSet = !(Set && 1 / setToArray(new Set([, -0]))[1] == INFINITY) ? noop : function(values2) { + return new Set(values2); +}; +const createSet$1 = createSet; +var LARGE_ARRAY_SIZE = 200; +function baseUniq(array, iteratee, comparator) { + var index = -1, includes = arrayIncludes, length = array.length, isCommon = true, result = [], seen = result; + if (comparator) { + isCommon = false; + includes = arrayIncludesWith; + } else if (length >= LARGE_ARRAY_SIZE) { + var set = iteratee ? null : createSet$1(array); + if (set) { + return setToArray(set); + } + isCommon = false; + includes = cacheHas; + seen = new SetCache(); + } else { + seen = iteratee ? [] : result; + } + outer: + while (++index < length) { + var value = array[index], computed = iteratee ? iteratee(value) : value; + value = comparator || value !== 0 ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + if (iteratee) { + seen.push(computed); + } + result.push(value); + } else if (!includes(seen, computed, comparator)) { + if (seen !== result) { + seen.push(computed); + } + result.push(value); + } + } + return result; +} +var union = baseRest(function(arrays) { + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); +}); +const union$1 = union; +var DEFAULT_EDGE_NAME = "\0"; +var GRAPH_NODE = "\0"; +var EDGE_KEY_DELIM = ""; +class Graph { + constructor(opts = {}) { + this._isDirected = has(opts, "directed") ? opts.directed : true; + this._isMultigraph = has(opts, "multigraph") ? opts.multigraph : false; + this._isCompound = has(opts, "compound") ? opts.compound : false; + this._label = void 0; + this._defaultNodeLabelFn = constant(void 0); + this._defaultEdgeLabelFn = constant(void 0); + this._nodes = {}; + if (this._isCompound) { + this._parent = {}; + this._children = {}; + this._children[GRAPH_NODE] = {}; + } + this._in = {}; + this._preds = {}; + this._out = {}; + this._sucs = {}; + this._edgeObjs = {}; + this._edgeLabels = {}; + } + /* === Graph functions ========= */ + isDirected() { + return this._isDirected; + } + isMultigraph() { + return this._isMultigraph; + } + isCompound() { + return this._isCompound; + } + setGraph(label) { + this._label = label; + return this; + } + graph() { + return this._label; + } + /* === Node functions ========== */ + setDefaultNodeLabel(newDefault) { + if (!isFunction(newDefault)) { + newDefault = constant(newDefault); + } + this._defaultNodeLabelFn = newDefault; + return this; + } + nodeCount() { + return this._nodeCount; + } + nodes() { + return keys(this._nodes); + } + sources() { + var self = this; + return filter(this.nodes(), function(v) { + return isEmpty(self._in[v]); + }); + } + sinks() { + var self = this; + return filter(this.nodes(), function(v) { + return isEmpty(self._out[v]); + }); + } + setNodes(vs, value) { + var args = arguments; + var self = this; + forEach(vs, function(v) { + if (args.length > 1) { + self.setNode(v, value); + } else { + self.setNode(v); + } + }); + return this; + } + setNode(v, value) { + if (has(this._nodes, v)) { + if (arguments.length > 1) { + this._nodes[v] = value; + } + return this; + } + this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v); + if (this._isCompound) { + this._parent[v] = GRAPH_NODE; + this._children[v] = {}; + this._children[GRAPH_NODE][v] = true; + } + this._in[v] = {}; + this._preds[v] = {}; + this._out[v] = {}; + this._sucs[v] = {}; + ++this._nodeCount; + return this; + } + node(v) { + return this._nodes[v]; + } + hasNode(v) { + return has(this._nodes, v); + } + removeNode(v) { + var self = this; + if (has(this._nodes, v)) { + var removeEdge = function(e) { + self.removeEdge(self._edgeObjs[e]); + }; + delete this._nodes[v]; + if (this._isCompound) { + this._removeFromParentsChildList(v); + delete this._parent[v]; + forEach(this.children(v), function(child) { + self.setParent(child); + }); + delete this._children[v]; + } + forEach(keys(this._in[v]), removeEdge); + delete this._in[v]; + delete this._preds[v]; + forEach(keys(this._out[v]), removeEdge); + delete this._out[v]; + delete this._sucs[v]; + --this._nodeCount; + } + return this; + } + setParent(v, parent) { + if (!this._isCompound) { + throw new Error("Cannot set parent in a non-compound graph"); + } + if (isUndefined(parent)) { + parent = GRAPH_NODE; + } else { + parent += ""; + for (var ancestor = parent; !isUndefined(ancestor); ancestor = this.parent(ancestor)) { + if (ancestor === v) { + throw new Error("Setting " + parent + " as parent of " + v + " would create a cycle"); + } + } + this.setNode(parent); + } + this.setNode(v); + this._removeFromParentsChildList(v); + this._parent[v] = parent; + this._children[parent][v] = true; + return this; + } + _removeFromParentsChildList(v) { + delete this._children[this._parent[v]][v]; + } + parent(v) { + if (this._isCompound) { + var parent = this._parent[v]; + if (parent !== GRAPH_NODE) { + return parent; + } + } + } + children(v) { + if (isUndefined(v)) { + v = GRAPH_NODE; + } + if (this._isCompound) { + var children = this._children[v]; + if (children) { + return keys(children); + } + } else if (v === GRAPH_NODE) { + return this.nodes(); + } else if (this.hasNode(v)) { + return []; + } + } + predecessors(v) { + var predsV = this._preds[v]; + if (predsV) { + return keys(predsV); + } + } + successors(v) { + var sucsV = this._sucs[v]; + if (sucsV) { + return keys(sucsV); + } + } + neighbors(v) { + var preds = this.predecessors(v); + if (preds) { + return union$1(preds, this.successors(v)); + } + } + isLeaf(v) { + var neighbors; + if (this.isDirected()) { + neighbors = this.successors(v); + } else { + neighbors = this.neighbors(v); + } + return neighbors.length === 0; + } + filterNodes(filter2) { + var copy = new this.constructor({ + directed: this._isDirected, + multigraph: this._isMultigraph, + compound: this._isCompound + }); + copy.setGraph(this.graph()); + var self = this; + forEach(this._nodes, function(value, v) { + if (filter2(v)) { + copy.setNode(v, value); + } + }); + forEach(this._edgeObjs, function(e) { + if (copy.hasNode(e.v) && copy.hasNode(e.w)) { + copy.setEdge(e, self.edge(e)); + } + }); + var parents = {}; + function findParent(v) { + var parent = self.parent(v); + if (parent === void 0 || copy.hasNode(parent)) { + parents[v] = parent; + return parent; + } else if (parent in parents) { + return parents[parent]; + } else { + return findParent(parent); + } + } + if (this._isCompound) { + forEach(copy.nodes(), function(v) { + copy.setParent(v, findParent(v)); + }); + } + return copy; + } + /* === Edge functions ========== */ + setDefaultEdgeLabel(newDefault) { + if (!isFunction(newDefault)) { + newDefault = constant(newDefault); + } + this._defaultEdgeLabelFn = newDefault; + return this; + } + edgeCount() { + return this._edgeCount; + } + edges() { + return values(this._edgeObjs); + } + setPath(vs, value) { + var self = this; + var args = arguments; + reduce(vs, function(v, w) { + if (args.length > 1) { + self.setEdge(v, w, value); + } else { + self.setEdge(v, w); + } + return w; + }); + return this; + } + /* + * setEdge(v, w, [value, [name]]) + * setEdge({ v, w, [name] }, [value]) + */ + setEdge() { + var v, w, name, value; + var valueSpecified = false; + var arg0 = arguments[0]; + if (typeof arg0 === "object" && arg0 !== null && "v" in arg0) { + v = arg0.v; + w = arg0.w; + name = arg0.name; + if (arguments.length === 2) { + value = arguments[1]; + valueSpecified = true; + } + } else { + v = arg0; + w = arguments[1]; + name = arguments[3]; + if (arguments.length > 2) { + value = arguments[2]; + valueSpecified = true; + } + } + v = "" + v; + w = "" + w; + if (!isUndefined(name)) { + name = "" + name; + } + var e = edgeArgsToId(this._isDirected, v, w, name); + if (has(this._edgeLabels, e)) { + if (valueSpecified) { + this._edgeLabels[e] = value; + } + return this; + } + if (!isUndefined(name) && !this._isMultigraph) { + throw new Error("Cannot set a named edge when isMultigraph = false"); + } + this.setNode(v); + this.setNode(w); + this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name); + var edgeObj = edgeArgsToObj(this._isDirected, v, w, name); + v = edgeObj.v; + w = edgeObj.w; + Object.freeze(edgeObj); + this._edgeObjs[e] = edgeObj; + incrementOrInitEntry(this._preds[w], v); + incrementOrInitEntry(this._sucs[v], w); + this._in[w][e] = edgeObj; + this._out[v][e] = edgeObj; + this._edgeCount++; + return this; + } + edge(v, w, name) { + var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name); + return this._edgeLabels[e]; + } + hasEdge(v, w, name) { + var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name); + return has(this._edgeLabels, e); + } + removeEdge(v, w, name) { + var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name); + var edge = this._edgeObjs[e]; + if (edge) { + v = edge.v; + w = edge.w; + delete this._edgeLabels[e]; + delete this._edgeObjs[e]; + decrementOrRemoveEntry(this._preds[w], v); + decrementOrRemoveEntry(this._sucs[v], w); + delete this._in[w][e]; + delete this._out[v][e]; + this._edgeCount--; + } + return this; + } + inEdges(v, u) { + var inV = this._in[v]; + if (inV) { + var edges = values(inV); + if (!u) { + return edges; + } + return filter(edges, function(edge) { + return edge.v === u; + }); + } + } + outEdges(v, w) { + var outV = this._out[v]; + if (outV) { + var edges = values(outV); + if (!w) { + return edges; + } + return filter(edges, function(edge) { + return edge.w === w; + }); + } + } + nodeEdges(v, w) { + var inEdges = this.inEdges(v, w); + if (inEdges) { + return inEdges.concat(this.outEdges(v, w)); + } + } +} +Graph.prototype._nodeCount = 0; +Graph.prototype._edgeCount = 0; +function incrementOrInitEntry(map, k) { + if (map[k]) { + map[k]++; + } else { + map[k] = 1; + } +} +function decrementOrRemoveEntry(map, k) { + if (!--map[k]) { + delete map[k]; + } +} +function edgeArgsToId(isDirected, v_, w_, name) { + var v = "" + v_; + var w = "" + w_; + if (!isDirected && v > w) { + var tmp = v; + v = w; + w = tmp; + } + return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (isUndefined(name) ? DEFAULT_EDGE_NAME : name); +} +function edgeArgsToObj(isDirected, v_, w_, name) { + var v = "" + v_; + var w = "" + w_; + if (!isDirected && v > w) { + var tmp = v; + v = w; + w = tmp; + } + var edgeObj = { v, w }; + if (name) { + edgeObj.name = name; + } + return edgeObj; +} +function edgeObjToId(isDirected, edgeObj) { + return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name); +} +export { + Graph as G, + isSymbol as a, + baseFlatten as b, + baseClone as c, + baseIteratee as d, + baseFindIndex as e, + forEach as f, + baseEach$1 as g, + has as h, + isUndefined as i, + arrayMap as j, + keys as k, + castFunction as l, + baseForOwn as m, + castPath as n, + baseGet as o, + hasIn as p, + toString as q, + filter as r, + reduce as s, + toKey as t, + values as v +}; diff --git a/assets/lib/mermaid/index-01f381cb.js b/assets/lib/mermaid/index-01f381cb.js new file mode 100644 index 000000000..b5eb653fb --- /dev/null +++ b/assets/lib/mermaid/index-01f381cb.js @@ -0,0 +1,622 @@ +import { layout } from "dagre-d3-es/src/dagre/index.js"; +import * as graphlibJson from "dagre-d3-es/src/graphlib/json.js"; +import { c as createLabel, g as getSubGraphTitleMargins, i as intersectRect, a as insertMarkers, b as clear$2, d as clear$3, u as updateNodeBounds, s as setNodeElem, e as insertNode, f as insertEdgeLabel, p as positionNode, h as insertEdge, j as positionEdgeLabel } from "./edges-066a5561.js"; +import { l as log, c as getConfig, m as evaluate } from "./mermaid-6dc72991.js"; +import * as graphlib from "dagre-d3-es/src/graphlib/index.js"; +import { a as createText } from "./createText-ca0c5216.js"; +import { select } from "d3"; +let clusterDb = {}; +let descendants = {}; +let parents = {}; +const clear$1 = () => { + descendants = {}; + parents = {}; + clusterDb = {}; +}; +const isDescendant = (id, ancestorId) => { + log.trace("In isDescendant", ancestorId, " ", id, " = ", descendants[ancestorId].includes(id)); + if (descendants[ancestorId].includes(id)) { + return true; + } + return false; +}; +const edgeInCluster = (edge, clusterId) => { + log.info("Descendants of ", clusterId, " is ", descendants[clusterId]); + log.info("Edge is ", edge); + if (edge.v === clusterId) { + return false; + } + if (edge.w === clusterId) { + return false; + } + if (!descendants[clusterId]) { + log.debug("Tilt, ", clusterId, ",not in descendants"); + return false; + } + return descendants[clusterId].includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || descendants[clusterId].includes(edge.w); +}; +const copy = (clusterId, graph, newGraph, rootId) => { + log.warn( + "Copying children of ", + clusterId, + "root", + rootId, + "data", + graph.node(clusterId), + rootId + ); + const nodes = graph.children(clusterId) || []; + if (clusterId !== rootId) { + nodes.push(clusterId); + } + log.warn("Copying (nodes) clusterId", clusterId, "nodes", nodes); + nodes.forEach((node) => { + if (graph.children(node).length > 0) { + copy(node, graph, newGraph, rootId); + } else { + const data = graph.node(node); + log.info("cp ", node, " to ", rootId, " with parent ", clusterId); + newGraph.setNode(node, data); + if (rootId !== graph.parent(node)) { + log.warn("Setting parent", node, graph.parent(node)); + newGraph.setParent(node, graph.parent(node)); + } + if (clusterId !== rootId && node !== clusterId) { + log.debug("Setting parent", node, clusterId); + newGraph.setParent(node, clusterId); + } else { + log.info("In copy ", clusterId, "root", rootId, "data", graph.node(clusterId), rootId); + log.debug( + "Not Setting parent for node=", + node, + "cluster!==rootId", + clusterId !== rootId, + "node!==clusterId", + node !== clusterId + ); + } + const edges = graph.edges(node); + log.debug("Copying Edges", edges); + edges.forEach((edge) => { + log.info("Edge", edge); + const data2 = graph.edge(edge.v, edge.w, edge.name); + log.info("Edge data", data2, rootId); + try { + if (edgeInCluster(edge, rootId)) { + log.info("Copying as ", edge.v, edge.w, data2, edge.name); + newGraph.setEdge(edge.v, edge.w, data2, edge.name); + log.info("newGraph edges ", newGraph.edges(), newGraph.edge(newGraph.edges()[0])); + } else { + log.info( + "Skipping copy of edge ", + edge.v, + "-->", + edge.w, + " rootId: ", + rootId, + " clusterId:", + clusterId + ); + } + } catch (e) { + log.error(e); + } + }); + } + log.debug("Removing node", node); + graph.removeNode(node); + }); +}; +const extractDescendants = (id, graph) => { + const children = graph.children(id); + let res = [...children]; + for (const child of children) { + parents[child] = id; + res = [...res, ...extractDescendants(child, graph)]; + } + return res; +}; +const findNonClusterChild = (id, graph) => { + log.trace("Searching", id); + const children = graph.children(id); + log.trace("Searching children of id ", id, children); + if (children.length < 1) { + log.trace("This is a valid node", id); + return id; + } + for (const child of children) { + const _id = findNonClusterChild(child, graph); + if (_id) { + log.trace("Found replacement for", id, " => ", _id); + return _id; + } + } +}; +const getAnchorId = (id) => { + if (!clusterDb[id]) { + return id; + } + if (!clusterDb[id].externalConnections) { + return id; + } + if (clusterDb[id]) { + return clusterDb[id].id; + } + return id; +}; +const adjustClustersAndEdges = (graph, depth) => { + if (!graph || depth > 10) { + log.debug("Opting out, no graph "); + return; + } else { + log.debug("Opting in, graph "); + } + graph.nodes().forEach(function(id) { + const children = graph.children(id); + if (children.length > 0) { + log.warn( + "Cluster identified", + id, + " Replacement id in edges: ", + findNonClusterChild(id, graph) + ); + descendants[id] = extractDescendants(id, graph); + clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) }; + } + }); + graph.nodes().forEach(function(id) { + const children = graph.children(id); + const edges = graph.edges(); + if (children.length > 0) { + log.debug("Cluster identified", id, descendants); + edges.forEach((edge) => { + if (edge.v !== id && edge.w !== id) { + const d1 = isDescendant(edge.v, id); + const d2 = isDescendant(edge.w, id); + if (d1 ^ d2) { + log.warn("Edge: ", edge, " leaves cluster ", id); + log.warn("Descendants of XXX ", id, ": ", descendants[id]); + clusterDb[id].externalConnections = true; + } + } + }); + } else { + log.debug("Not a cluster ", id, descendants); + } + }); + for (let id of Object.keys(clusterDb)) { + const nonClusterChild = clusterDb[id].id; + const parent = graph.parent(nonClusterChild); + if (parent !== id && clusterDb[parent] && !clusterDb[parent].externalConnections) { + clusterDb[id].id = parent; + } + } + graph.edges().forEach(function(e) { + const edge = graph.edge(e); + log.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e)); + log.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e))); + let v = e.v; + let w = e.w; + log.warn( + "Fix XXX", + clusterDb, + "ids:", + e.v, + e.w, + "Translating: ", + clusterDb[e.v], + " --- ", + clusterDb[e.w] + ); + if (clusterDb[e.v] && clusterDb[e.w] && clusterDb[e.v] === clusterDb[e.w]) { + log.warn("Fixing and trixing link to self - removing XXX", e.v, e.w, e.name); + log.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name); + v = getAnchorId(e.v); + w = getAnchorId(e.w); + graph.removeEdge(e.v, e.w, e.name); + const specialId = e.w + "---" + e.v; + graph.setNode(specialId, { + domId: specialId, + id: specialId, + labelStyle: "", + labelText: edge.label, + padding: 0, + shape: "labelRect", + style: "" + }); + const edge1 = structuredClone(edge); + const edge2 = structuredClone(edge); + edge1.label = ""; + edge1.arrowTypeEnd = "none"; + edge2.label = ""; + edge1.fromCluster = e.v; + edge2.toCluster = e.v; + graph.setEdge(v, specialId, edge1, e.name + "-cyclic-special"); + graph.setEdge(specialId, w, edge2, e.name + "-cyclic-special"); + } else if (clusterDb[e.v] || clusterDb[e.w]) { + log.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name); + v = getAnchorId(e.v); + w = getAnchorId(e.w); + graph.removeEdge(e.v, e.w, e.name); + if (v !== e.v) { + const parent = graph.parent(v); + clusterDb[parent].externalConnections = true; + edge.fromCluster = e.v; + } + if (w !== e.w) { + const parent = graph.parent(w); + clusterDb[parent].externalConnections = true; + edge.toCluster = e.w; + } + log.warn("Fix Replacing with XXX", v, w, e.name); + graph.setEdge(v, w, edge, e.name); + } + }); + log.warn("Adjusted Graph", graphlibJson.write(graph)); + extractor(graph, 0); + log.trace(clusterDb); +}; +const extractor = (graph, depth) => { + log.warn("extractor - ", depth, graphlibJson.write(graph), graph.children("D")); + if (depth > 10) { + log.error("Bailing out"); + return; + } + let nodes = graph.nodes(); + let hasChildren = false; + for (const node of nodes) { + const children = graph.children(node); + hasChildren = hasChildren || children.length > 0; + } + if (!hasChildren) { + log.debug("Done, no node has children", graph.nodes()); + return; + } + log.debug("Nodes = ", nodes, depth); + for (const node of nodes) { + log.debug( + "Extracting node", + node, + clusterDb, + clusterDb[node] && !clusterDb[node].externalConnections, + !graph.parent(node), + graph.node(node), + graph.children("D"), + " Depth ", + depth + ); + if (!clusterDb[node]) { + log.debug("Not a cluster", node, depth); + } else if (!clusterDb[node].externalConnections && // !graph.parent(node) && + graph.children(node) && graph.children(node).length > 0) { + log.warn( + "Cluster without external connections, without a parent and with children", + node, + depth + ); + const graphSettings = graph.graph(); + let dir = graphSettings.rankdir === "TB" ? "LR" : "TB"; + if (clusterDb[node] && clusterDb[node].clusterData && clusterDb[node].clusterData.dir) { + dir = clusterDb[node].clusterData.dir; + log.warn("Fixing dir", clusterDb[node].clusterData.dir, dir); + } + const clusterGraph = new graphlib.Graph({ + multigraph: true, + compound: true + }).setGraph({ + rankdir: dir, + // Todo: set proper spacing + nodesep: 50, + ranksep: 50, + marginx: 8, + marginy: 8 + }).setDefaultEdgeLabel(function() { + return {}; + }); + log.warn("Old graph before copy", graphlibJson.write(graph)); + copy(node, graph, clusterGraph, node); + graph.setNode(node, { + clusterNode: true, + id: node, + clusterData: clusterDb[node].clusterData, + labelText: clusterDb[node].labelText, + graph: clusterGraph + }); + log.warn("New graph after copy node: (", node, ")", graphlibJson.write(clusterGraph)); + log.debug("Old graph after copy", graphlibJson.write(graph)); + } else { + log.warn( + "Cluster ** ", + node, + " **not meeting the criteria !externalConnections:", + !clusterDb[node].externalConnections, + " no parent: ", + !graph.parent(node), + " children ", + graph.children(node) && graph.children(node).length > 0, + graph.children("D"), + depth + ); + log.debug(clusterDb); + } + } + nodes = graph.nodes(); + log.warn("New list of nodes", nodes); + for (const node of nodes) { + const data = graph.node(node); + log.warn(" Now next level", node, data); + if (data.clusterNode) { + extractor(data.graph, depth + 1); + } + } +}; +const sorter = (graph, nodes) => { + if (nodes.length === 0) { + return []; + } + let result = Object.assign(nodes); + nodes.forEach((node) => { + const children = graph.children(node); + const sorted = sorter(graph, children); + result = [...result, ...sorted]; + }); + return result; +}; +const sortNodesByHierarchy = (graph) => sorter(graph, graph.children()); +const rect = (parent, node) => { + log.info("Creating subgraph rect for ", node.id, node); + const siteConfig = getConfig(); + const shapeSvg = parent.insert("g").attr("class", "cluster" + (node.class ? " " + node.class : "")).attr("id", node.id); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const useHtmlLabels = evaluate(siteConfig.flowchart.htmlLabels); + const label = shapeSvg.insert("g").attr("class", "cluster-label"); + const text = node.labelType === "markdown" ? createText(label, node.labelText, { style: node.labelStyle, useHtmlLabels }) : label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true)); + let bbox = text.getBBox(); + if (evaluate(siteConfig.flowchart.htmlLabels)) { + const div = text.children[0]; + const dv = select(text); + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + const padding = 0 * node.padding; + const halfPadding = padding / 2; + const width = node.width <= bbox.width + padding ? bbox.width + padding : node.width; + if (node.width <= bbox.width + padding) { + node.diff = (bbox.width - node.width) / 2 - node.padding / 2; + } else { + node.diff = -node.padding / 2; + } + log.trace("Data ", node, JSON.stringify(node)); + rect2.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("x", node.x - width / 2).attr("y", node.y - node.height / 2 - halfPadding).attr("width", width).attr("height", node.height + padding); + const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig); + if (useHtmlLabels) { + label.attr( + "transform", + // This puts the label on top of the box instead of inside it + `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 + subGraphTitleTopMargin})` + ); + } else { + label.attr( + "transform", + // This puts the label on top of the box instead of inside it + `translate(${node.x}, ${node.y - node.height / 2 + subGraphTitleTopMargin})` + ); + } + const rectBox = rect2.node().getBBox(); + node.width = rectBox.width; + node.height = rectBox.height; + node.intersect = function(point) { + return intersectRect(node, point); + }; + return shapeSvg; +}; +const noteGroup = (parent, node) => { + const shapeSvg = parent.insert("g").attr("class", "note-cluster").attr("id", node.id); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const padding = 0 * node.padding; + const halfPadding = padding / 2; + rect2.attr("rx", node.rx).attr("ry", node.ry).attr("x", node.x - node.width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding).attr("width", node.width + padding).attr("height", node.height + padding).attr("fill", "none"); + const rectBox = rect2.node().getBBox(); + node.width = rectBox.width; + node.height = rectBox.height; + node.intersect = function(point) { + return intersectRect(node, point); + }; + return shapeSvg; +}; +const roundedWithTitle = (parent, node) => { + const siteConfig = getConfig(); + const shapeSvg = parent.insert("g").attr("class", node.classes).attr("id", node.id); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const label = shapeSvg.insert("g").attr("class", "cluster-label"); + const innerRect = shapeSvg.append("rect"); + const text = label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true)); + let bbox = text.getBBox(); + if (evaluate(siteConfig.flowchart.htmlLabels)) { + const div = text.children[0]; + const dv = select(text); + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + bbox = text.getBBox(); + const padding = 0 * node.padding; + const halfPadding = padding / 2; + const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width; + if (node.width <= bbox.width + node.padding) { + node.diff = (bbox.width + node.padding * 0 - node.width) / 2; + } else { + node.diff = -node.padding / 2; + } + rect2.attr("class", "outer").attr("x", node.x - width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding).attr("width", width + padding).attr("height", node.height + padding); + innerRect.attr("class", "inner").attr("x", node.x - width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding + bbox.height - 1).attr("width", width + padding).attr("height", node.height + padding - bbox.height - 3); + const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig); + label.attr( + "transform", + `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 - node.padding / 3 + (evaluate(siteConfig.flowchart.htmlLabels) ? 5 : 3) + subGraphTitleTopMargin})` + ); + const rectBox = rect2.node().getBBox(); + node.height = rectBox.height; + node.intersect = function(point) { + return intersectRect(node, point); + }; + return shapeSvg; +}; +const divider = (parent, node) => { + const shapeSvg = parent.insert("g").attr("class", node.classes).attr("id", node.id); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const padding = 0 * node.padding; + const halfPadding = padding / 2; + rect2.attr("class", "divider").attr("x", node.x - node.width / 2 - halfPadding).attr("y", node.y - node.height / 2).attr("width", node.width + padding).attr("height", node.height + padding); + const rectBox = rect2.node().getBBox(); + node.width = rectBox.width; + node.height = rectBox.height; + node.diff = -node.padding / 2; + node.intersect = function(point) { + return intersectRect(node, point); + }; + return shapeSvg; +}; +const shapes = { rect, roundedWithTitle, noteGroup, divider }; +let clusterElems = {}; +const insertCluster = (elem, node) => { + log.trace("Inserting cluster"); + const shape = node.shape || "rect"; + clusterElems[node.id] = shapes[shape](elem, node); +}; +const clear = () => { + clusterElems = {}; +}; +const recursiveRender = async (_elem, graph, diagramType, id, parentCluster, siteConfig) => { + log.info("Graph in recursive render: XXX", graphlibJson.write(graph), parentCluster); + const dir = graph.graph().rankdir; + log.trace("Dir in recursive render - dir:", dir); + const elem = _elem.insert("g").attr("class", "root"); + if (!graph.nodes()) { + log.info("No nodes found for", graph); + } else { + log.info("Recursive render XXX", graph.nodes()); + } + if (graph.edges().length > 0) { + log.trace("Recursive edges", graph.edge(graph.edges()[0])); + } + const clusters = elem.insert("g").attr("class", "clusters"); + const edgePaths = elem.insert("g").attr("class", "edgePaths"); + const edgeLabels = elem.insert("g").attr("class", "edgeLabels"); + const nodes = elem.insert("g").attr("class", "nodes"); + await Promise.all( + graph.nodes().map(async function(v) { + const node = graph.node(v); + if (parentCluster !== void 0) { + const data = JSON.parse(JSON.stringify(parentCluster.clusterData)); + log.info("Setting data for cluster XXX (", v, ") ", data, parentCluster); + graph.setNode(parentCluster.id, data); + if (!graph.parent(v)) { + log.trace("Setting parent", v, parentCluster.id); + graph.setParent(v, parentCluster.id, data); + } + } + log.info("(Insert) Node XXX" + v + ": " + JSON.stringify(graph.node(v))); + if (node && node.clusterNode) { + log.info("Cluster identified", v, node.width, graph.node(v)); + const o = await recursiveRender( + nodes, + node.graph, + diagramType, + id, + graph.node(v), + siteConfig + ); + const newEl = o.elem; + updateNodeBounds(node, newEl); + node.diff = o.diff || 0; + log.info("Node bounds (abc123)", v, node, node.width, node.x, node.y); + setNodeElem(newEl, node); + log.warn("Recursive render complete ", newEl, node); + } else { + if (graph.children(v).length > 0) { + log.info("Cluster - the non recursive path XXX", v, node.id, node, graph); + log.info(findNonClusterChild(node.id, graph)); + clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node }; + } else { + log.info("Node - the non recursive path", v, node.id, node); + await insertNode(nodes, graph.node(v), dir); + } + } + }) + ); + graph.edges().forEach(function(e) { + const edge = graph.edge(e.v, e.w, e.name); + log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e)); + log.info("Edge " + e.v + " -> " + e.w + ": ", e, " ", JSON.stringify(graph.edge(e))); + log.info("Fix", clusterDb, "ids:", e.v, e.w, "Translating: ", clusterDb[e.v], clusterDb[e.w]); + insertEdgeLabel(edgeLabels, edge); + }); + graph.edges().forEach(function(e) { + log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e)); + }); + log.info("#############################################"); + log.info("### Layout ###"); + log.info("#############################################"); + log.info(graph); + layout(graph); + log.info("Graph after layout:", graphlibJson.write(graph)); + let diff = 0; + const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig); + sortNodesByHierarchy(graph).forEach(function(v) { + const node = graph.node(v); + log.info("Position " + v + ": " + JSON.stringify(graph.node(v))); + log.info( + "Position " + v + ": (" + node.x, + "," + node.y, + ") width: ", + node.width, + " height: ", + node.height + ); + if (node && node.clusterNode) { + node.y += subGraphTitleTotalMargin; + positionNode(node); + } else { + if (graph.children(v).length > 0) { + node.height += subGraphTitleTotalMargin; + insertCluster(clusters, node); + clusterDb[node.id].node = node; + } else { + node.y += subGraphTitleTotalMargin / 2; + positionNode(node); + } + } + }); + graph.edges().forEach(function(e) { + const edge = graph.edge(e); + log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(edge), edge); + edge.points.forEach((point) => point.y += subGraphTitleTotalMargin / 2); + const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramType, graph, id); + positionEdgeLabel(edge, paths); + }); + graph.nodes().forEach(function(v) { + const n = graph.node(v); + log.info(v, n.type, n.diff); + if (n.type === "group") { + diff = n.diff; + } + }); + return { elem, diff }; +}; +const render = async (elem, graph, markers, diagramType, id) => { + insertMarkers(elem, markers, diagramType, id); + clear$2(); + clear$3(); + clear(); + clear$1(); + log.warn("Graph at first:", JSON.stringify(graphlibJson.write(graph))); + adjustClustersAndEdges(graph); + log.warn("Graph after:", JSON.stringify(graphlibJson.write(graph))); + const siteConfig = getConfig(); + await recursiveRender(elem, graph, diagramType, id, void 0, siteConfig); +}; +export { + render as r +}; diff --git a/assets/lib/mermaid/index-bb6d8841.js b/assets/lib/mermaid/index-bb6d8841.js new file mode 100644 index 000000000..6af6c3926 --- /dev/null +++ b/assets/lib/mermaid/index-bb6d8841.js @@ -0,0 +1,373 @@ +import { i as N, G as A } from "./graph-0ee63739.js"; +import { m as J, l as H } from "./layout-fd473db2.js"; +import { c as V } from "./clone-afc2f047.js"; +import { c as L, g as D, i as p, a as U, b as W, d as _, u as q, s as z, e as K, f as Q, p as O, h as Y, j as Z } from "./edges-16357fde.js"; +import { l as s, c as T, p as S, j as R } from "./mermaid-9f2aa176.js"; +import { a as I } from "./createText-03b82060.js"; +function m(e) { + var t = { + options: { + directed: e.isDirected(), + multigraph: e.isMultigraph(), + compound: e.isCompound() + }, + nodes: tt(e), + edges: et(e) + }; + return N(e.graph()) || (t.value = V(e.graph())), t; +} +function tt(e) { + return J(e.nodes(), function(t) { + var n = e.node(t), r = e.parent(t), i = { v: t }; + return N(n) || (i.value = n), N(r) || (i.parent = r), i; + }); +} +function et(e) { + return J(e.edges(), function(t) { + var n = e.edge(t), r = { v: t.v, w: t.w }; + return N(t.name) || (r.name = t.name), N(n) || (r.value = n), r; + }); +} +let l = {}, g = {}, P = {}; +const nt = () => { + g = {}, P = {}, l = {}; +}, B = (e, t) => (s.trace("In isDescendant", t, " ", e, " = ", g[t].includes(e)), !!g[t].includes(e)), it = (e, t) => (s.info("Descendants of ", t, " is ", g[t]), s.info("Edge is ", e), e.v === t || e.w === t ? !1 : g[t] ? g[t].includes(e.v) || B(e.v, t) || B(e.w, t) || g[t].includes(e.w) : (s.debug("Tilt, ", t, ",not in descendants"), !1)), k = (e, t, n, r) => { + s.warn( + "Copying children of ", + e, + "root", + r, + "data", + t.node(e), + r + ); + const i = t.children(e) || []; + e !== r && i.push(e), s.warn("Copying (nodes) clusterId", e, "nodes", i), i.forEach((a) => { + if (t.children(a).length > 0) + k(a, t, n, r); + else { + const d = t.node(a); + s.info("cp ", a, " to ", r, " with parent ", e), n.setNode(a, d), r !== t.parent(a) && (s.warn("Setting parent", a, t.parent(a)), n.setParent(a, t.parent(a))), e !== r && a !== e ? (s.debug("Setting parent", a, e), n.setParent(a, e)) : (s.info("In copy ", e, "root", r, "data", t.node(e), r), s.debug( + "Not Setting parent for node=", + a, + "cluster!==rootId", + e !== r, + "node!==clusterId", + a !== e + )); + const u = t.edges(a); + s.debug("Copying Edges", u), u.forEach((f) => { + s.info("Edge", f); + const h = t.edge(f.v, f.w, f.name); + s.info("Edge data", h, r); + try { + it(f, r) ? (s.info("Copying as ", f.v, f.w, h, f.name), n.setEdge(f.v, f.w, h, f.name), s.info("newGraph edges ", n.edges(), n.edge(n.edges()[0]))) : s.info( + "Skipping copy of edge ", + f.v, + "-->", + f.w, + " rootId: ", + r, + " clusterId:", + e + ); + } catch (w) { + s.error(w); + } + }); + } + s.debug("Removing node", a), t.removeNode(a); + }); +}, $ = (e, t) => { + const n = t.children(e); + let r = [...n]; + for (const i of n) + P[i] = e, r = [...r, ...$(i, t)]; + return r; +}, C = (e, t) => { + s.trace("Searching", e); + const n = t.children(e); + if (s.trace("Searching children of id ", e, n), n.length < 1) + return s.trace("This is a valid node", e), e; + for (const r of n) { + const i = C(r, t); + if (i) + return s.trace("Found replacement for", e, " => ", i), i; + } +}, X = (e) => !l[e] || !l[e].externalConnections ? e : l[e] ? l[e].id : e, st = (e, t) => { + if (!e || t > 10) { + s.debug("Opting out, no graph "); + return; + } else + s.debug("Opting in, graph "); + e.nodes().forEach(function(n) { + e.children(n).length > 0 && (s.warn( + "Cluster identified", + n, + " Replacement id in edges: ", + C(n, e) + ), g[n] = $(n, e), l[n] = { id: C(n, e), clusterData: e.node(n) }); + }), e.nodes().forEach(function(n) { + const r = e.children(n), i = e.edges(); + r.length > 0 ? (s.debug("Cluster identified", n, g), i.forEach((a) => { + if (a.v !== n && a.w !== n) { + const d = B(a.v, n), u = B(a.w, n); + d ^ u && (s.warn("Edge: ", a, " leaves cluster ", n), s.warn("Descendants of XXX ", n, ": ", g[n]), l[n].externalConnections = !0); + } + })) : s.debug("Not a cluster ", n, g); + }); + for (let n of Object.keys(l)) { + const r = l[n].id, i = e.parent(r); + i !== n && l[i] && !l[i].externalConnections && (l[n].id = i); + } + e.edges().forEach(function(n) { + const r = e.edge(n); + s.warn("Edge " + n.v + " -> " + n.w + ": " + JSON.stringify(n)), s.warn("Edge " + n.v + " -> " + n.w + ": " + JSON.stringify(e.edge(n))); + let i = n.v, a = n.w; + if (s.warn( + "Fix XXX", + l, + "ids:", + n.v, + n.w, + "Translating: ", + l[n.v], + " --- ", + l[n.w] + ), l[n.v] && l[n.w] && l[n.v] === l[n.w]) { + s.warn("Fixing and trixing link to self - removing XXX", n.v, n.w, n.name), s.warn("Fixing and trixing - removing XXX", n.v, n.w, n.name), i = X(n.v), a = X(n.w), e.removeEdge(n.v, n.w, n.name); + const d = n.w + "---" + n.v; + e.setNode(d, { + domId: d, + id: d, + labelStyle: "", + labelText: r.label, + padding: 0, + shape: "labelRect", + style: "" + }); + const u = structuredClone(r), f = structuredClone(r); + u.label = "", u.arrowTypeEnd = "none", f.label = "", u.fromCluster = n.v, f.toCluster = n.v, e.setEdge(i, d, u, n.name + "-cyclic-special"), e.setEdge(d, a, f, n.name + "-cyclic-special"); + } else if (l[n.v] || l[n.w]) { + if (s.warn("Fixing and trixing - removing XXX", n.v, n.w, n.name), i = X(n.v), a = X(n.w), e.removeEdge(n.v, n.w, n.name), i !== n.v) { + const d = e.parent(i); + l[d].externalConnections = !0, r.fromCluster = n.v; + } + if (a !== n.w) { + const d = e.parent(a); + l[d].externalConnections = !0, r.toCluster = n.w; + } + s.warn("Fix Replacing with XXX", i, a, n.name), e.setEdge(i, a, r, n.name); + } + }), s.warn("Adjusted Graph", m(e)), F(e, 0), s.trace(l); +}, F = (e, t) => { + if (s.warn("extractor - ", t, m(e), e.children("D")), t > 10) { + s.error("Bailing out"); + return; + } + let n = e.nodes(), r = !1; + for (const i of n) { + const a = e.children(i); + r = r || a.length > 0; + } + if (!r) { + s.debug("Done, no node has children", e.nodes()); + return; + } + s.debug("Nodes = ", n, t); + for (const i of n) + if (s.debug( + "Extracting node", + i, + l, + l[i] && !l[i].externalConnections, + !e.parent(i), + e.node(i), + e.children("D"), + " Depth ", + t + ), !l[i]) + s.debug("Not a cluster", i, t); + else if (!l[i].externalConnections && // !graph.parent(node) && + e.children(i) && e.children(i).length > 0) { + s.warn( + "Cluster without external connections, without a parent and with children", + i, + t + ); + let d = e.graph().rankdir === "TB" ? "LR" : "TB"; + l[i] && l[i].clusterData && l[i].clusterData.dir && (d = l[i].clusterData.dir, s.warn("Fixing dir", l[i].clusterData.dir, d)); + const u = new A({ + multigraph: !0, + compound: !0 + }).setGraph({ + rankdir: d, + // Todo: set proper spacing + nodesep: 50, + ranksep: 50, + marginx: 8, + marginy: 8 + }).setDefaultEdgeLabel(function() { + return {}; + }); + s.warn("Old graph before copy", m(e)), k(i, e, u, i), e.setNode(i, { + clusterNode: !0, + id: i, + clusterData: l[i].clusterData, + labelText: l[i].labelText, + graph: u + }), s.warn("New graph after copy node: (", i, ")", m(u)), s.debug("Old graph after copy", m(e)); + } else + s.warn( + "Cluster ** ", + i, + " **not meeting the criteria !externalConnections:", + !l[i].externalConnections, + " no parent: ", + !e.parent(i), + " children ", + e.children(i) && e.children(i).length > 0, + e.children("D"), + t + ), s.debug(l); + n = e.nodes(), s.warn("New list of nodes", n); + for (const i of n) { + const a = e.node(i); + s.warn(" Now next level", i, a), a.clusterNode && F(a.graph, t + 1); + } +}, G = (e, t) => { + if (t.length === 0) + return []; + let n = Object.assign(t); + return t.forEach((r) => { + const i = e.children(r), a = G(e, i); + n = [...n, ...a]; + }), n; +}, rt = (e) => G(e, e.children()), at = (e, t) => { + s.info("Creating subgraph rect for ", t.id, t); + const n = T(), r = e.insert("g").attr("class", "cluster" + (t.class ? " " + t.class : "")).attr("id", t.id), i = r.insert("rect", ":first-child"), a = S(n.flowchart.htmlLabels), d = r.insert("g").attr("class", "cluster-label"), u = t.labelType === "markdown" ? I(d, t.labelText, { style: t.labelStyle, useHtmlLabels: a }) : d.node().appendChild(L(t.labelText, t.labelStyle, void 0, !0)); + let f = u.getBBox(); + if (S(n.flowchart.htmlLabels)) { + const c = u.children[0], o = R(u); + f = c.getBoundingClientRect(), o.attr("width", f.width), o.attr("height", f.height); + } + const h = 0 * t.padding, w = h / 2, x = t.width <= f.width + h ? f.width + h : t.width; + t.width <= f.width + h ? t.diff = (f.width - t.width) / 2 - t.padding / 2 : t.diff = -t.padding / 2, s.trace("Data ", t, JSON.stringify(t)), i.attr("style", t.style).attr("rx", t.rx).attr("ry", t.ry).attr("x", t.x - x / 2).attr("y", t.y - t.height / 2 - w).attr("width", x).attr("height", t.height + h); + const { subGraphTitleTopMargin: v } = D(n); + a ? d.attr( + "transform", + // This puts the label on top of the box instead of inside it + `translate(${t.x - f.width / 2}, ${t.y - t.height / 2 + v})` + ) : d.attr( + "transform", + // This puts the label on top of the box instead of inside it + `translate(${t.x}, ${t.y - t.height / 2 + v})` + ); + const y = i.node().getBBox(); + return t.width = y.width, t.height = y.height, t.intersect = function(c) { + return p(t, c); + }, r; +}, ct = (e, t) => { + const n = e.insert("g").attr("class", "note-cluster").attr("id", t.id), r = n.insert("rect", ":first-child"), i = 0 * t.padding, a = i / 2; + r.attr("rx", t.rx).attr("ry", t.ry).attr("x", t.x - t.width / 2 - a).attr("y", t.y - t.height / 2 - a).attr("width", t.width + i).attr("height", t.height + i).attr("fill", "none"); + const d = r.node().getBBox(); + return t.width = d.width, t.height = d.height, t.intersect = function(u) { + return p(t, u); + }, n; +}, ot = (e, t) => { + const n = T(), r = e.insert("g").attr("class", t.classes).attr("id", t.id), i = r.insert("rect", ":first-child"), a = r.insert("g").attr("class", "cluster-label"), d = r.append("rect"), u = a.node().appendChild(L(t.labelText, t.labelStyle, void 0, !0)); + let f = u.getBBox(); + if (S(n.flowchart.htmlLabels)) { + const c = u.children[0], o = R(u); + f = c.getBoundingClientRect(), o.attr("width", f.width), o.attr("height", f.height); + } + f = u.getBBox(); + const h = 0 * t.padding, w = h / 2, x = t.width <= f.width + t.padding ? f.width + t.padding : t.width; + t.width <= f.width + t.padding ? t.diff = (f.width + t.padding * 0 - t.width) / 2 : t.diff = -t.padding / 2, i.attr("class", "outer").attr("x", t.x - x / 2 - w).attr("y", t.y - t.height / 2 - w).attr("width", x + h).attr("height", t.height + h), d.attr("class", "inner").attr("x", t.x - x / 2 - w).attr("y", t.y - t.height / 2 - w + f.height - 1).attr("width", x + h).attr("height", t.height + h - f.height - 3); + const { subGraphTitleTopMargin: v } = D(n); + a.attr( + "transform", + `translate(${t.x - f.width / 2}, ${t.y - t.height / 2 - t.padding / 3 + (S(n.flowchart.htmlLabels) ? 5 : 3) + v})` + ); + const y = i.node().getBBox(); + return t.height = y.height, t.intersect = function(c) { + return p(t, c); + }, r; +}, lt = (e, t) => { + const n = e.insert("g").attr("class", t.classes).attr("id", t.id), r = n.insert("rect", ":first-child"), i = 0 * t.padding, a = i / 2; + r.attr("class", "divider").attr("x", t.x - t.width / 2 - a).attr("y", t.y - t.height / 2).attr("width", t.width + i).attr("height", t.height + i); + const d = r.node().getBBox(); + return t.width = d.width, t.height = d.height, t.diff = -t.padding / 2, t.intersect = function(u) { + return p(t, u); + }, n; +}, ft = { rect: at, roundedWithTitle: ot, noteGroup: ct, divider: lt }; +let j = {}; +const dt = (e, t) => { + s.trace("Inserting cluster"); + const n = t.shape || "rect"; + j[t.id] = ft[n](e, t); +}, ut = () => { + j = {}; +}, M = async (e, t, n, r, i, a) => { + s.info("Graph in recursive render: XXX", m(t), i); + const d = t.graph().rankdir; + s.trace("Dir in recursive render - dir:", d); + const u = e.insert("g").attr("class", "root"); + t.nodes() ? s.info("Recursive render XXX", t.nodes()) : s.info("No nodes found for", t), t.edges().length > 0 && s.trace("Recursive edges", t.edge(t.edges()[0])); + const f = u.insert("g").attr("class", "clusters"), h = u.insert("g").attr("class", "edgePaths"), w = u.insert("g").attr("class", "edgeLabels"), x = u.insert("g").attr("class", "nodes"); + await Promise.all( + t.nodes().map(async function(c) { + const o = t.node(c); + if (i !== void 0) { + const b = JSON.parse(JSON.stringify(i.clusterData)); + s.info("Setting data for cluster XXX (", c, ") ", b, i), t.setNode(i.id, b), t.parent(c) || (s.trace("Setting parent", c, i.id), t.setParent(c, i.id, b)); + } + if (s.info("(Insert) Node XXX" + c + ": " + JSON.stringify(t.node(c))), o && o.clusterNode) { + s.info("Cluster identified", c, o.width, t.node(c)); + const b = await M( + x, + o.graph, + n, + r, + t.node(c), + a + ), E = b.elem; + q(o, E), o.diff = b.diff || 0, s.info("Node bounds (abc123)", c, o, o.width, o.x, o.y), z(E, o), s.warn("Recursive render complete ", E, o); + } else + t.children(c).length > 0 ? (s.info("Cluster - the non recursive path XXX", c, o.id, o, t), s.info(C(o.id, t)), l[o.id] = { id: C(o.id, t), node: o }) : (s.info("Node - the non recursive path", c, o.id, o), await K(x, t.node(c), d)); + }) + ), t.edges().forEach(function(c) { + const o = t.edge(c.v, c.w, c.name); + s.info("Edge " + c.v + " -> " + c.w + ": " + JSON.stringify(c)), s.info("Edge " + c.v + " -> " + c.w + ": ", c, " ", JSON.stringify(t.edge(c))), s.info("Fix", l, "ids:", c.v, c.w, "Translating: ", l[c.v], l[c.w]), Q(w, o); + }), t.edges().forEach(function(c) { + s.info("Edge " + c.v + " -> " + c.w + ": " + JSON.stringify(c)); + }), s.info("#############################################"), s.info("### Layout ###"), s.info("#############################################"), s.info(t), H(t), s.info("Graph after layout:", m(t)); + let v = 0; + const { subGraphTitleTotalMargin: y } = D(a); + return rt(t).forEach(function(c) { + const o = t.node(c); + s.info("Position " + c + ": " + JSON.stringify(t.node(c))), s.info( + "Position " + c + ": (" + o.x, + "," + o.y, + ") width: ", + o.width, + " height: ", + o.height + ), o && o.clusterNode ? (o.y += y, O(o)) : t.children(c).length > 0 ? (o.height += y, dt(f, o), l[o.id].node = o) : (o.y += y / 2, O(o)); + }), t.edges().forEach(function(c) { + const o = t.edge(c); + s.info("Edge " + c.v + " -> " + c.w + ": " + JSON.stringify(o), o), o.points.forEach((E) => E.y += y / 2); + const b = Y(h, c, o, l, n, t, r); + Z(o, b); + }), t.nodes().forEach(function(c) { + const o = t.node(c); + s.info(c, o.type, o.diff), o.type === "group" && (v = o.diff); + }), { elem: u, diff: v }; +}, bt = async (e, t, n, r, i) => { + U(e, n, r, i), W(), _(), ut(), nt(), s.warn("Graph at first:", JSON.stringify(m(t))), st(t), s.warn("Graph after:", JSON.stringify(m(t))); + const a = T(); + await M(e, t, r, i, void 0, a); +}; +export { + bt as r +}; diff --git a/assets/lib/mermaid/index-fc479858.js b/assets/lib/mermaid/index-fc479858.js new file mode 100644 index 000000000..869fb7dbd --- /dev/null +++ b/assets/lib/mermaid/index-fc479858.js @@ -0,0 +1,663 @@ +import { i as isUndefined, G as Graph } from "./graph-fe24fab6.js"; +import { m as map, l as layout } from "./layout-163b9689.js"; +import { c as clone } from "./clone-9ea6bfeb.js"; +import { c as createLabel, g as getSubGraphTitleMargins, i as intersectRect, a as insertMarkers, b as clear$2, d as clear$3, u as updateNodeBounds, s as setNodeElem, e as insertNode, f as insertEdgeLabel, p as positionNode, h as insertEdge, j as positionEdgeLabel } from "./edges-ce5cfb7c.js"; +import { l as log, c as getConfig, p as evaluate, j as d3select } from "./mermaid-dcacb631.js"; +import { a as createText } from "./createText-b70fe78a.js"; +function write(g) { + var json = { + options: { + directed: g.isDirected(), + multigraph: g.isMultigraph(), + compound: g.isCompound() + }, + nodes: writeNodes(g), + edges: writeEdges(g) + }; + if (!isUndefined(g.graph())) { + json.value = clone(g.graph()); + } + return json; +} +function writeNodes(g) { + return map(g.nodes(), function(v) { + var nodeValue = g.node(v); + var parent = g.parent(v); + var node = { v }; + if (!isUndefined(nodeValue)) { + node.value = nodeValue; + } + if (!isUndefined(parent)) { + node.parent = parent; + } + return node; + }); +} +function writeEdges(g) { + return map(g.edges(), function(e) { + var edgeValue = g.edge(e); + var edge = { v: e.v, w: e.w }; + if (!isUndefined(e.name)) { + edge.name = e.name; + } + if (!isUndefined(edgeValue)) { + edge.value = edgeValue; + } + return edge; + }); +} +let clusterDb = {}; +let descendants = {}; +let parents = {}; +const clear$1 = () => { + descendants = {}; + parents = {}; + clusterDb = {}; +}; +const isDescendant = (id, ancestorId) => { + log.trace("In isDescendant", ancestorId, " ", id, " = ", descendants[ancestorId].includes(id)); + if (descendants[ancestorId].includes(id)) { + return true; + } + return false; +}; +const edgeInCluster = (edge, clusterId) => { + log.info("Descendants of ", clusterId, " is ", descendants[clusterId]); + log.info("Edge is ", edge); + if (edge.v === clusterId) { + return false; + } + if (edge.w === clusterId) { + return false; + } + if (!descendants[clusterId]) { + log.debug("Tilt, ", clusterId, ",not in descendants"); + return false; + } + return descendants[clusterId].includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || descendants[clusterId].includes(edge.w); +}; +const copy = (clusterId, graph, newGraph, rootId) => { + log.warn( + "Copying children of ", + clusterId, + "root", + rootId, + "data", + graph.node(clusterId), + rootId + ); + const nodes = graph.children(clusterId) || []; + if (clusterId !== rootId) { + nodes.push(clusterId); + } + log.warn("Copying (nodes) clusterId", clusterId, "nodes", nodes); + nodes.forEach((node) => { + if (graph.children(node).length > 0) { + copy(node, graph, newGraph, rootId); + } else { + const data = graph.node(node); + log.info("cp ", node, " to ", rootId, " with parent ", clusterId); + newGraph.setNode(node, data); + if (rootId !== graph.parent(node)) { + log.warn("Setting parent", node, graph.parent(node)); + newGraph.setParent(node, graph.parent(node)); + } + if (clusterId !== rootId && node !== clusterId) { + log.debug("Setting parent", node, clusterId); + newGraph.setParent(node, clusterId); + } else { + log.info("In copy ", clusterId, "root", rootId, "data", graph.node(clusterId), rootId); + log.debug( + "Not Setting parent for node=", + node, + "cluster!==rootId", + clusterId !== rootId, + "node!==clusterId", + node !== clusterId + ); + } + const edges = graph.edges(node); + log.debug("Copying Edges", edges); + edges.forEach((edge) => { + log.info("Edge", edge); + const data2 = graph.edge(edge.v, edge.w, edge.name); + log.info("Edge data", data2, rootId); + try { + if (edgeInCluster(edge, rootId)) { + log.info("Copying as ", edge.v, edge.w, data2, edge.name); + newGraph.setEdge(edge.v, edge.w, data2, edge.name); + log.info("newGraph edges ", newGraph.edges(), newGraph.edge(newGraph.edges()[0])); + } else { + log.info( + "Skipping copy of edge ", + edge.v, + "-->", + edge.w, + " rootId: ", + rootId, + " clusterId:", + clusterId + ); + } + } catch (e) { + log.error(e); + } + }); + } + log.debug("Removing node", node); + graph.removeNode(node); + }); +}; +const extractDescendants = (id, graph) => { + const children = graph.children(id); + let res = [...children]; + for (const child of children) { + parents[child] = id; + res = [...res, ...extractDescendants(child, graph)]; + } + return res; +}; +const findNonClusterChild = (id, graph) => { + log.trace("Searching", id); + const children = graph.children(id); + log.trace("Searching children of id ", id, children); + if (children.length < 1) { + log.trace("This is a valid node", id); + return id; + } + for (const child of children) { + const _id = findNonClusterChild(child, graph); + if (_id) { + log.trace("Found replacement for", id, " => ", _id); + return _id; + } + } +}; +const getAnchorId = (id) => { + if (!clusterDb[id]) { + return id; + } + if (!clusterDb[id].externalConnections) { + return id; + } + if (clusterDb[id]) { + return clusterDb[id].id; + } + return id; +}; +const adjustClustersAndEdges = (graph, depth) => { + if (!graph || depth > 10) { + log.debug("Opting out, no graph "); + return; + } else { + log.debug("Opting in, graph "); + } + graph.nodes().forEach(function(id) { + const children = graph.children(id); + if (children.length > 0) { + log.warn( + "Cluster identified", + id, + " Replacement id in edges: ", + findNonClusterChild(id, graph) + ); + descendants[id] = extractDescendants(id, graph); + clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) }; + } + }); + graph.nodes().forEach(function(id) { + const children = graph.children(id); + const edges = graph.edges(); + if (children.length > 0) { + log.debug("Cluster identified", id, descendants); + edges.forEach((edge) => { + if (edge.v !== id && edge.w !== id) { + const d1 = isDescendant(edge.v, id); + const d2 = isDescendant(edge.w, id); + if (d1 ^ d2) { + log.warn("Edge: ", edge, " leaves cluster ", id); + log.warn("Descendants of XXX ", id, ": ", descendants[id]); + clusterDb[id].externalConnections = true; + } + } + }); + } else { + log.debug("Not a cluster ", id, descendants); + } + }); + for (let id of Object.keys(clusterDb)) { + const nonClusterChild = clusterDb[id].id; + const parent = graph.parent(nonClusterChild); + if (parent !== id && clusterDb[parent] && !clusterDb[parent].externalConnections) { + clusterDb[id].id = parent; + } + } + graph.edges().forEach(function(e) { + const edge = graph.edge(e); + log.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e)); + log.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e))); + let v = e.v; + let w = e.w; + log.warn( + "Fix XXX", + clusterDb, + "ids:", + e.v, + e.w, + "Translating: ", + clusterDb[e.v], + " --- ", + clusterDb[e.w] + ); + if (clusterDb[e.v] && clusterDb[e.w] && clusterDb[e.v] === clusterDb[e.w]) { + log.warn("Fixing and trixing link to self - removing XXX", e.v, e.w, e.name); + log.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name); + v = getAnchorId(e.v); + w = getAnchorId(e.w); + graph.removeEdge(e.v, e.w, e.name); + const specialId = e.w + "---" + e.v; + graph.setNode(specialId, { + domId: specialId, + id: specialId, + labelStyle: "", + labelText: edge.label, + padding: 0, + shape: "labelRect", + style: "" + }); + const edge1 = structuredClone(edge); + const edge2 = structuredClone(edge); + edge1.label = ""; + edge1.arrowTypeEnd = "none"; + edge2.label = ""; + edge1.fromCluster = e.v; + edge2.toCluster = e.v; + graph.setEdge(v, specialId, edge1, e.name + "-cyclic-special"); + graph.setEdge(specialId, w, edge2, e.name + "-cyclic-special"); + } else if (clusterDb[e.v] || clusterDb[e.w]) { + log.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name); + v = getAnchorId(e.v); + w = getAnchorId(e.w); + graph.removeEdge(e.v, e.w, e.name); + if (v !== e.v) { + const parent = graph.parent(v); + clusterDb[parent].externalConnections = true; + edge.fromCluster = e.v; + } + if (w !== e.w) { + const parent = graph.parent(w); + clusterDb[parent].externalConnections = true; + edge.toCluster = e.w; + } + log.warn("Fix Replacing with XXX", v, w, e.name); + graph.setEdge(v, w, edge, e.name); + } + }); + log.warn("Adjusted Graph", write(graph)); + extractor(graph, 0); + log.trace(clusterDb); +}; +const extractor = (graph, depth) => { + log.warn("extractor - ", depth, write(graph), graph.children("D")); + if (depth > 10) { + log.error("Bailing out"); + return; + } + let nodes = graph.nodes(); + let hasChildren = false; + for (const node of nodes) { + const children = graph.children(node); + hasChildren = hasChildren || children.length > 0; + } + if (!hasChildren) { + log.debug("Done, no node has children", graph.nodes()); + return; + } + log.debug("Nodes = ", nodes, depth); + for (const node of nodes) { + log.debug( + "Extracting node", + node, + clusterDb, + clusterDb[node] && !clusterDb[node].externalConnections, + !graph.parent(node), + graph.node(node), + graph.children("D"), + " Depth ", + depth + ); + if (!clusterDb[node]) { + log.debug("Not a cluster", node, depth); + } else if (!clusterDb[node].externalConnections && // !graph.parent(node) && + graph.children(node) && graph.children(node).length > 0) { + log.warn( + "Cluster without external connections, without a parent and with children", + node, + depth + ); + const graphSettings = graph.graph(); + let dir = graphSettings.rankdir === "TB" ? "LR" : "TB"; + if (clusterDb[node] && clusterDb[node].clusterData && clusterDb[node].clusterData.dir) { + dir = clusterDb[node].clusterData.dir; + log.warn("Fixing dir", clusterDb[node].clusterData.dir, dir); + } + const clusterGraph = new Graph({ + multigraph: true, + compound: true + }).setGraph({ + rankdir: dir, + // Todo: set proper spacing + nodesep: 50, + ranksep: 50, + marginx: 8, + marginy: 8 + }).setDefaultEdgeLabel(function() { + return {}; + }); + log.warn("Old graph before copy", write(graph)); + copy(node, graph, clusterGraph, node); + graph.setNode(node, { + clusterNode: true, + id: node, + clusterData: clusterDb[node].clusterData, + labelText: clusterDb[node].labelText, + graph: clusterGraph + }); + log.warn("New graph after copy node: (", node, ")", write(clusterGraph)); + log.debug("Old graph after copy", write(graph)); + } else { + log.warn( + "Cluster ** ", + node, + " **not meeting the criteria !externalConnections:", + !clusterDb[node].externalConnections, + " no parent: ", + !graph.parent(node), + " children ", + graph.children(node) && graph.children(node).length > 0, + graph.children("D"), + depth + ); + log.debug(clusterDb); + } + } + nodes = graph.nodes(); + log.warn("New list of nodes", nodes); + for (const node of nodes) { + const data = graph.node(node); + log.warn(" Now next level", node, data); + if (data.clusterNode) { + extractor(data.graph, depth + 1); + } + } +}; +const sorter = (graph, nodes) => { + if (nodes.length === 0) { + return []; + } + let result = Object.assign(nodes); + nodes.forEach((node) => { + const children = graph.children(node); + const sorted = sorter(graph, children); + result = [...result, ...sorted]; + }); + return result; +}; +const sortNodesByHierarchy = (graph) => sorter(graph, graph.children()); +const rect = (parent, node) => { + log.info("Creating subgraph rect for ", node.id, node); + const siteConfig = getConfig(); + const shapeSvg = parent.insert("g").attr("class", "cluster" + (node.class ? " " + node.class : "")).attr("id", node.id); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const useHtmlLabels = evaluate(siteConfig.flowchart.htmlLabels); + const label = shapeSvg.insert("g").attr("class", "cluster-label"); + const text = node.labelType === "markdown" ? createText(label, node.labelText, { style: node.labelStyle, useHtmlLabels }) : label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true)); + let bbox = text.getBBox(); + if (evaluate(siteConfig.flowchart.htmlLabels)) { + const div = text.children[0]; + const dv = d3select(text); + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + const padding = 0 * node.padding; + const halfPadding = padding / 2; + const width = node.width <= bbox.width + padding ? bbox.width + padding : node.width; + if (node.width <= bbox.width + padding) { + node.diff = (bbox.width - node.width) / 2 - node.padding / 2; + } else { + node.diff = -node.padding / 2; + } + log.trace("Data ", node, JSON.stringify(node)); + rect2.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("x", node.x - width / 2).attr("y", node.y - node.height / 2 - halfPadding).attr("width", width).attr("height", node.height + padding); + const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig); + if (useHtmlLabels) { + label.attr( + "transform", + // This puts the label on top of the box instead of inside it + `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 + subGraphTitleTopMargin})` + ); + } else { + label.attr( + "transform", + // This puts the label on top of the box instead of inside it + `translate(${node.x}, ${node.y - node.height / 2 + subGraphTitleTopMargin})` + ); + } + const rectBox = rect2.node().getBBox(); + node.width = rectBox.width; + node.height = rectBox.height; + node.intersect = function(point) { + return intersectRect(node, point); + }; + return shapeSvg; +}; +const noteGroup = (parent, node) => { + const shapeSvg = parent.insert("g").attr("class", "note-cluster").attr("id", node.id); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const padding = 0 * node.padding; + const halfPadding = padding / 2; + rect2.attr("rx", node.rx).attr("ry", node.ry).attr("x", node.x - node.width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding).attr("width", node.width + padding).attr("height", node.height + padding).attr("fill", "none"); + const rectBox = rect2.node().getBBox(); + node.width = rectBox.width; + node.height = rectBox.height; + node.intersect = function(point) { + return intersectRect(node, point); + }; + return shapeSvg; +}; +const roundedWithTitle = (parent, node) => { + const siteConfig = getConfig(); + const shapeSvg = parent.insert("g").attr("class", node.classes).attr("id", node.id); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const label = shapeSvg.insert("g").attr("class", "cluster-label"); + const innerRect = shapeSvg.append("rect"); + const text = label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true)); + let bbox = text.getBBox(); + if (evaluate(siteConfig.flowchart.htmlLabels)) { + const div = text.children[0]; + const dv = d3select(text); + bbox = div.getBoundingClientRect(); + dv.attr("width", bbox.width); + dv.attr("height", bbox.height); + } + bbox = text.getBBox(); + const padding = 0 * node.padding; + const halfPadding = padding / 2; + const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width; + if (node.width <= bbox.width + node.padding) { + node.diff = (bbox.width + node.padding * 0 - node.width) / 2; + } else { + node.diff = -node.padding / 2; + } + rect2.attr("class", "outer").attr("x", node.x - width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding).attr("width", width + padding).attr("height", node.height + padding); + innerRect.attr("class", "inner").attr("x", node.x - width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding + bbox.height - 1).attr("width", width + padding).attr("height", node.height + padding - bbox.height - 3); + const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig); + label.attr( + "transform", + `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 - node.padding / 3 + (evaluate(siteConfig.flowchart.htmlLabels) ? 5 : 3) + subGraphTitleTopMargin})` + ); + const rectBox = rect2.node().getBBox(); + node.height = rectBox.height; + node.intersect = function(point) { + return intersectRect(node, point); + }; + return shapeSvg; +}; +const divider = (parent, node) => { + const shapeSvg = parent.insert("g").attr("class", node.classes).attr("id", node.id); + const rect2 = shapeSvg.insert("rect", ":first-child"); + const padding = 0 * node.padding; + const halfPadding = padding / 2; + rect2.attr("class", "divider").attr("x", node.x - node.width / 2 - halfPadding).attr("y", node.y - node.height / 2).attr("width", node.width + padding).attr("height", node.height + padding); + const rectBox = rect2.node().getBBox(); + node.width = rectBox.width; + node.height = rectBox.height; + node.diff = -node.padding / 2; + node.intersect = function(point) { + return intersectRect(node, point); + }; + return shapeSvg; +}; +const shapes = { rect, roundedWithTitle, noteGroup, divider }; +let clusterElems = {}; +const insertCluster = (elem, node) => { + log.trace("Inserting cluster"); + const shape = node.shape || "rect"; + clusterElems[node.id] = shapes[shape](elem, node); +}; +const clear = () => { + clusterElems = {}; +}; +const recursiveRender = async (_elem, graph, diagramType, id, parentCluster, siteConfig) => { + log.info("Graph in recursive render: XXX", write(graph), parentCluster); + const dir = graph.graph().rankdir; + log.trace("Dir in recursive render - dir:", dir); + const elem = _elem.insert("g").attr("class", "root"); + if (!graph.nodes()) { + log.info("No nodes found for", graph); + } else { + log.info("Recursive render XXX", graph.nodes()); + } + if (graph.edges().length > 0) { + log.trace("Recursive edges", graph.edge(graph.edges()[0])); + } + const clusters = elem.insert("g").attr("class", "clusters"); + const edgePaths = elem.insert("g").attr("class", "edgePaths"); + const edgeLabels = elem.insert("g").attr("class", "edgeLabels"); + const nodes = elem.insert("g").attr("class", "nodes"); + await Promise.all( + graph.nodes().map(async function(v) { + const node = graph.node(v); + if (parentCluster !== void 0) { + const data = JSON.parse(JSON.stringify(parentCluster.clusterData)); + log.info("Setting data for cluster XXX (", v, ") ", data, parentCluster); + graph.setNode(parentCluster.id, data); + if (!graph.parent(v)) { + log.trace("Setting parent", v, parentCluster.id); + graph.setParent(v, parentCluster.id, data); + } + } + log.info("(Insert) Node XXX" + v + ": " + JSON.stringify(graph.node(v))); + if (node && node.clusterNode) { + log.info("Cluster identified", v, node.width, graph.node(v)); + const o = await recursiveRender( + nodes, + node.graph, + diagramType, + id, + graph.node(v), + siteConfig + ); + const newEl = o.elem; + updateNodeBounds(node, newEl); + node.diff = o.diff || 0; + log.info("Node bounds (abc123)", v, node, node.width, node.x, node.y); + setNodeElem(newEl, node); + log.warn("Recursive render complete ", newEl, node); + } else { + if (graph.children(v).length > 0) { + log.info("Cluster - the non recursive path XXX", v, node.id, node, graph); + log.info(findNonClusterChild(node.id, graph)); + clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node }; + } else { + log.info("Node - the non recursive path", v, node.id, node); + await insertNode(nodes, graph.node(v), dir); + } + } + }) + ); + graph.edges().forEach(function(e) { + const edge = graph.edge(e.v, e.w, e.name); + log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e)); + log.info("Edge " + e.v + " -> " + e.w + ": ", e, " ", JSON.stringify(graph.edge(e))); + log.info("Fix", clusterDb, "ids:", e.v, e.w, "Translating: ", clusterDb[e.v], clusterDb[e.w]); + insertEdgeLabel(edgeLabels, edge); + }); + graph.edges().forEach(function(e) { + log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e)); + }); + log.info("#############################################"); + log.info("### Layout ###"); + log.info("#############################################"); + log.info(graph); + layout(graph); + log.info("Graph after layout:", write(graph)); + let diff = 0; + const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig); + sortNodesByHierarchy(graph).forEach(function(v) { + const node = graph.node(v); + log.info("Position " + v + ": " + JSON.stringify(graph.node(v))); + log.info( + "Position " + v + ": (" + node.x, + "," + node.y, + ") width: ", + node.width, + " height: ", + node.height + ); + if (node && node.clusterNode) { + node.y += subGraphTitleTotalMargin; + positionNode(node); + } else { + if (graph.children(v).length > 0) { + node.height += subGraphTitleTotalMargin; + insertCluster(clusters, node); + clusterDb[node.id].node = node; + } else { + node.y += subGraphTitleTotalMargin / 2; + positionNode(node); + } + } + }); + graph.edges().forEach(function(e) { + const edge = graph.edge(e); + log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(edge), edge); + edge.points.forEach((point) => point.y += subGraphTitleTotalMargin / 2); + const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramType, graph, id); + positionEdgeLabel(edge, paths); + }); + graph.nodes().forEach(function(v) { + const n = graph.node(v); + log.info(v, n.type, n.diff); + if (n.type === "group") { + diff = n.diff; + } + }); + return { elem, diff }; +}; +const render = async (elem, graph, markers, diagramType, id) => { + insertMarkers(elem, markers, diagramType, id); + clear$2(); + clear$3(); + clear(); + clear$1(); + log.warn("Graph at first:", JSON.stringify(write(graph))); + adjustClustersAndEdges(graph); + log.warn("Graph after:", JSON.stringify(write(graph))); + const siteConfig = getConfig(); + await recursiveRender(elem, graph, diagramType, id, void 0, siteConfig); +}; +export { + render as r +}; diff --git a/assets/lib/mermaid/infoDiagram-2f5c50c0.js b/assets/lib/mermaid/infoDiagram-2f5c50c0.js new file mode 100644 index 000000000..fcde243e3 --- /dev/null +++ b/assets/lib/mermaid/infoDiagram-2f5c50c0.js @@ -0,0 +1,319 @@ +import { l as Y, U as D, k as M } from "./mermaid-9f2aa176.js"; +var O = function() { + var a = function(u, t, e, n) { + for (e = e || {}, n = u.length; n--; e[u[n]] = t) + ; + return e; + }, f = [6, 9, 10], m = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, info: 4, document: 5, EOF: 6, line: 7, statement: 8, NL: 9, showInfo: 10, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 4: "info", 6: "EOF", 9: "NL", 10: "showInfo" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 1], [7, 1], [8, 1]], + performAction: function(t, e, n, s, r, i, d) { + switch (i.length - 1, r) { + case 1: + return s; + case 4: + break; + case 6: + s.setInfo(!0); + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, a(f, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] }, { 1: [2, 1] }, a(f, [2, 3]), a(f, [2, 4]), a(f, [2, 5]), a(f, [2, 6])], + defaultActions: { 4: [2, 1] }, + parseError: function(t, e) { + if (e.recoverable) + this.trace(t); + else { + var n = new Error(t); + throw n.hash = e, n; + } + }, + parse: function(t) { + var e = this, n = [0], s = [], r = [null], i = [], d = this.table, $ = "", v = 0, L = 0, N = 2, T = 1, R = i.slice.call(arguments, 1), o = Object.create(this.lexer), p = { yy: {} }; + for (var E in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, E) && (p.yy[E] = this.yy[E]); + o.setInput(t, p.yy), p.yy.lexer = o, p.yy.parser = this, typeof o.yylloc > "u" && (o.yylloc = {}); + var I = o.yylloc; + i.push(I); + var z = o.options && o.options.ranges; + typeof p.yy.parseError == "function" ? this.parseError = p.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function U() { + var y; + return y = s.pop() || o.lex() || T, typeof y != "number" && (y instanceof Array && (s = y, y = s.pop()), y = e.symbols_[y] || y), y; + } + for (var l, g, h, w, _ = {}, b, c, F, S; ; ) { + if (g = n[n.length - 1], this.defaultActions[g] ? h = this.defaultActions[g] : ((l === null || typeof l > "u") && (l = U()), h = d[g] && d[g][l]), typeof h > "u" || !h.length || !h[0]) { + var A = ""; + S = []; + for (b in d[g]) + this.terminals_[b] && b > N && S.push("'" + this.terminals_[b] + "'"); + o.showPosition ? A = "Parse error on line " + (v + 1) + `: +` + o.showPosition() + ` +Expecting ` + S.join(", ") + ", got '" + (this.terminals_[l] || l) + "'" : A = "Parse error on line " + (v + 1) + ": Unexpected " + (l == T ? "end of input" : "'" + (this.terminals_[l] || l) + "'"), this.parseError(A, { + text: o.match, + token: this.terminals_[l] || l, + line: o.yylineno, + loc: I, + expected: S + }); + } + if (h[0] instanceof Array && h.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + g + ", token: " + l); + switch (h[0]) { + case 1: + n.push(l), r.push(o.yytext), i.push(o.yylloc), n.push(h[1]), l = null, L = o.yyleng, $ = o.yytext, v = o.yylineno, I = o.yylloc; + break; + case 2: + if (c = this.productions_[h[1]][1], _.$ = r[r.length - c], _._$ = { + first_line: i[i.length - (c || 1)].first_line, + last_line: i[i.length - 1].last_line, + first_column: i[i.length - (c || 1)].first_column, + last_column: i[i.length - 1].last_column + }, z && (_._$.range = [ + i[i.length - (c || 1)].range[0], + i[i.length - 1].range[1] + ]), w = this.performAction.apply(_, [ + $, + L, + v, + p.yy, + h[1], + r, + i + ].concat(R)), typeof w < "u") + return w; + c && (n = n.slice(0, -1 * c * 2), r = r.slice(0, -1 * c), i = i.slice(0, -1 * c)), n.push(this.productions_[h[1]][0]), r.push(_.$), i.push(_._$), F = d[n[n.length - 2]][n[n.length - 1]], n.push(F); + break; + case 3: + return !0; + } + } + return !0; + } + }, k = function() { + var u = { + EOF: 1, + parseError: function(e, n) { + if (this.yy.parser) + this.yy.parser.parseError(e, n); + else + throw new Error(e); + }, + // resets the lexer, sets new input + setInput: function(t, e) { + return this.yy = e || this.yy || {}, this._input = t, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var t = this._input[0]; + this.yytext += t, this.yyleng++, this.offset++, this.match += t, this.matched += t; + var e = t.match(/(?:\r\n?|\n).*/g); + return e ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), t; + }, + // unshifts one char (or a string) into the input + unput: function(t) { + var e = t.length, n = t.split(/(?:\r\n?|\n)/g); + this._input = t + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - e), this.offset -= e; + var s = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), n.length - 1 && (this.yylineno -= n.length - 1); + var r = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: n ? (n.length === s.length ? this.yylloc.first_column : 0) + s[s.length - n.length].length - n[0].length : this.yylloc.first_column - e + }, this.options.ranges && (this.yylloc.range = [r[0], r[0] + this.yyleng - e]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(t) { + this.unput(this.match.slice(t)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var t = this.matched.substr(0, this.matched.length - this.match.length); + return (t.length > 20 ? "..." : "") + t.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var t = this.match; + return t.length < 20 && (t += this._input.substr(0, 20 - t.length)), (t.substr(0, 20) + (t.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var t = this.pastInput(), e = new Array(t.length + 1).join("-"); + return t + this.upcomingInput() + ` +` + e + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(t, e) { + var n, s, r; + if (this.options.backtrack_lexer && (r = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (r.yylloc.range = this.yylloc.range.slice(0))), s = t[0].match(/(?:\r\n?|\n).*/g), s && (this.yylineno += s.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: s ? s[s.length - 1].length - s[s.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + t[0].length + }, this.yytext += t[0], this.match += t[0], this.matches = t, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(t[0].length), this.matched += t[0], n = this.performAction.call(this, this.yy, this, e, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), n) + return n; + if (this._backtrack) { + for (var i in r) + this[i] = r[i]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var t, e, n, s; + this._more || (this.yytext = "", this.match = ""); + for (var r = this._currentRules(), i = 0; i < r.length; i++) + if (n = this._input.match(this.rules[r[i]]), n && (!e || n[0].length > e[0].length)) { + if (e = n, s = i, this.options.backtrack_lexer) { + if (t = this.test_match(n, r[i]), t !== !1) + return t; + if (this._backtrack) { + e = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return e ? (t = this.test_match(e, r[s]), t !== !1 ? t : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var e = this.next(); + return e || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(e) { + this.conditionStack.push(e); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var e = this.conditionStack.length - 1; + return e > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(e) { + return e = this.conditionStack.length - 1 - Math.abs(e || 0), e >= 0 ? this.conditionStack[e] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(e) { + this.begin(e); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: { "case-insensitive": !0 }, + performAction: function(e, n, s, r) { + switch (s) { + case 0: + return 4; + case 1: + return 9; + case 2: + return "space"; + case 3: + return 10; + case 4: + return 6; + case 5: + return "TXT"; + } + }, + rules: [/^(?:info\b)/i, /^(?:[\s\n\r]+)/i, /^(?:[\s]+)/i, /^(?:showInfo\b)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { INITIAL: { rules: [0, 1, 2, 3, 4, 5], inclusive: !0 } } + }; + return u; + }(); + m.lexer = k; + function x() { + this.yy = {}; + } + return x.prototype = m, m.Parser = x, new x(); +}(); +O.parser = O; +const B = O, j = { + info: !1 +}; +let P = j.info; +const V = (a) => { + P = a; +}, X = () => P, q = () => { + P = j.info; +}, C = { + clear: q, + setInfo: V, + getInfo: X +}, G = (a, f, m) => { + Y.debug(`rendering info diagram +` + a); + const k = D(f); + M(k, 100, 400, !0), k.append("g").append("text").attr("x", 100).attr("y", 40).attr("class", "version").attr("font-size", 32).style("text-anchor", "middle").text(`v${m}`); +}, H = { draw: G }, K = { + parser: B, + db: C, + renderer: H +}; +export { + K as diagram +}; diff --git a/assets/lib/mermaid/infoDiagram-94cd232f.js b/assets/lib/mermaid/infoDiagram-94cd232f.js new file mode 100644 index 000000000..410cd72c6 --- /dev/null +++ b/assets/lib/mermaid/infoDiagram-94cd232f.js @@ -0,0 +1,520 @@ +import { l as log, A as selectSvgElement, i as configureSvgSize } from "./mermaid-6dc72991.js"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "d3"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [6, 9, 10]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "info": 4, "document": 5, "EOF": 6, "line": 7, "statement": 8, "NL": 9, "showInfo": 10, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "info", 6: "EOF", 9: "NL", 10: "showInfo" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 1], [7, 1], [8, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + $$.length - 1; + switch (yystate) { + case 1: + return yy; + case 4: + break; + case 6: + yy.setInfo(true); + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] }, { 1: [2, 1] }, o($V0, [2, 3]), o($V0, [2, 4]), o($V0, [2, 5]), o($V0, [2, 6])], + defaultActions: { 4: [2, 1] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + return 4; + case 1: + return 9; + case 2: + return "space"; + case 3: + return 10; + case 4: + return 6; + case 5: + return "TXT"; + } + }, + rules: [/^(?:info\b)/i, /^(?:[\s\n\r]+)/i, /^(?:[\s]+)/i, /^(?:showInfo\b)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { "INITIAL": { "rules": [0, 1, 2, 3, 4, 5], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +const DEFAULT_INFO_DB = { + info: false +}; +let info = DEFAULT_INFO_DB.info; +const setInfo = (toggle) => { + info = toggle; +}; +const getInfo = () => info; +const clear = () => { + info = DEFAULT_INFO_DB.info; +}; +const db = { + clear, + setInfo, + getInfo +}; +const draw = (text, id, version) => { + log.debug("rendering info diagram\n" + text); + const svg = selectSvgElement(id); + configureSvgSize(svg, 100, 400, true); + const group = svg.append("g"); + group.append("text").attr("x", 100).attr("y", 40).attr("class", "version").attr("font-size", 32).style("text-anchor", "middle").text(`v${version}`); +}; +const renderer = { draw }; +const diagram = { + parser: parser$1, + db, + renderer +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/infoDiagram-d0d5c9bd.js b/assets/lib/mermaid/infoDiagram-d0d5c9bd.js new file mode 100644 index 000000000..443bd25d0 --- /dev/null +++ b/assets/lib/mermaid/infoDiagram-d0d5c9bd.js @@ -0,0 +1,510 @@ +import { l as log, U as selectSvgElement, k as configureSvgSize } from "./mermaid-dcacb631.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [6, 9, 10]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "info": 4, "document": 5, "EOF": 6, "line": 7, "statement": 8, "NL": 9, "showInfo": 10, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "info", 6: "EOF", 9: "NL", 10: "showInfo" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 1], [7, 1], [8, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + $$.length - 1; + switch (yystate) { + case 1: + return yy; + case 4: + break; + case 6: + yy.setInfo(true); + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] }, { 1: [2, 1] }, o($V0, [2, 3]), o($V0, [2, 4]), o($V0, [2, 5]), o($V0, [2, 6])], + defaultActions: { 4: [2, 1] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + return 4; + case 1: + return 9; + case 2: + return "space"; + case 3: + return 10; + case 4: + return 6; + case 5: + return "TXT"; + } + }, + rules: [/^(?:info\b)/i, /^(?:[\s\n\r]+)/i, /^(?:[\s]+)/i, /^(?:showInfo\b)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { "INITIAL": { "rules": [0, 1, 2, 3, 4, 5], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +const DEFAULT_INFO_DB = { + info: false +}; +let info = DEFAULT_INFO_DB.info; +const setInfo = (toggle) => { + info = toggle; +}; +const getInfo = () => info; +const clear = () => { + info = DEFAULT_INFO_DB.info; +}; +const db = { + clear, + setInfo, + getInfo +}; +const draw = (text, id, version) => { + log.debug("rendering info diagram\n" + text); + const svg = selectSvgElement(id); + configureSvgSize(svg, 100, 400, true); + const group = svg.append("g"); + group.append("text").attr("x", 100).attr("y", 40).attr("class", "version").attr("font-size", 32).style("text-anchor", "middle").text(`v${version}`); +}; +const renderer = { draw }; +const diagram = { + parser: parser$1, + db, + renderer +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/journeyDiagram-14fe341a.js b/assets/lib/mermaid/journeyDiagram-14fe341a.js new file mode 100644 index 000000000..cad3792fe --- /dev/null +++ b/assets/lib/mermaid/journeyDiagram-14fe341a.js @@ -0,0 +1,804 @@ +import { c as C, C as yt, D as dt, s as ft, g as pt, b as gt, a as mt, E as xt, j as W, k as kt } from "./mermaid-9f2aa176.js"; +import { d as _t, f as bt, a as vt, g as it } from "./svgDrawCommon-ecc5f780.js"; +import { d as Q } from "./arc-d1f6357e.js"; +import "./path-428ebac9.js"; +var G = function() { + var t = function(p, s, r, a) { + for (r = r || {}, a = p.length; a--; r[p[a]] = s) + ; + return r; + }, e = [6, 8, 10, 11, 12, 14, 16, 17, 18], i = [1, 9], o = [1, 10], n = [1, 11], h = [1, 12], c = [1, 13], d = [1, 14], y = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, journey: 4, document: 5, EOF: 6, line: 7, SPACE: 8, statement: 9, NEWLINE: 10, title: 11, acc_title: 12, acc_title_value: 13, acc_descr: 14, acc_descr_value: 15, acc_descr_multiline_value: 16, section: 17, taskName: 18, taskData: 19, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 4: "journey", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 11: "title", 12: "acc_title", 13: "acc_title_value", 14: "acc_descr", 15: "acc_descr_value", 16: "acc_descr_multiline_value", 17: "section", 18: "taskName", 19: "taskData" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2]], + performAction: function(s, r, a, u, f, l, w) { + var k = l.length - 1; + switch (f) { + case 1: + return l[k - 1]; + case 2: + this.$ = []; + break; + case 3: + l[k - 1].push(l[k]), this.$ = l[k - 1]; + break; + case 4: + case 5: + this.$ = l[k]; + break; + case 6: + case 7: + this.$ = []; + break; + case 8: + u.setDiagramTitle(l[k].substr(6)), this.$ = l[k].substr(6); + break; + case 9: + this.$ = l[k].trim(), u.setAccTitle(this.$); + break; + case 10: + case 11: + this.$ = l[k].trim(), u.setAccDescription(this.$); + break; + case 12: + u.addSection(l[k].substr(8)), this.$ = l[k].substr(8); + break; + case 13: + u.addTask(l[k - 1], l[k]), this.$ = "task"; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, t(e, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: i, 12: o, 14: n, 16: h, 17: c, 18: d }, t(e, [2, 7], { 1: [2, 1] }), t(e, [2, 3]), { 9: 15, 11: i, 12: o, 14: n, 16: h, 17: c, 18: d }, t(e, [2, 5]), t(e, [2, 6]), t(e, [2, 8]), { 13: [1, 16] }, { 15: [1, 17] }, t(e, [2, 11]), t(e, [2, 12]), { 19: [1, 18] }, t(e, [2, 4]), t(e, [2, 9]), t(e, [2, 10]), t(e, [2, 13])], + defaultActions: {}, + parseError: function(s, r) { + if (r.recoverable) + this.trace(s); + else { + var a = new Error(s); + throw a.hash = r, a; + } + }, + parse: function(s) { + var r = this, a = [0], u = [], f = [null], l = [], w = this.table, k = "", R = 0, Z = 0, ot = 2, J = 1, ct = l.slice.call(arguments, 1), x = Object.create(this.lexer), S = { yy: {} }; + for (var z in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, z) && (S.yy[z] = this.yy[z]); + x.setInput(s, S.yy), S.yy.lexer = x, S.yy.parser = this, typeof x.yylloc > "u" && (x.yylloc = {}); + var Y = x.yylloc; + l.push(Y); + var ht = x.options && x.options.ranges; + typeof S.yy.parseError == "function" ? this.parseError = S.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function ut() { + var $; + return $ = u.pop() || x.lex() || J, typeof $ != "number" && ($ instanceof Array && (u = $, $ = u.pop()), $ = r.symbols_[$] || $), $; + } + for (var _, E, b, O, I = {}, N, T, K, B; ; ) { + if (E = a[a.length - 1], this.defaultActions[E] ? b = this.defaultActions[E] : ((_ === null || typeof _ > "u") && (_ = ut()), b = w[E] && w[E][_]), typeof b > "u" || !b.length || !b[0]) { + var q = ""; + B = []; + for (N in w[E]) + this.terminals_[N] && N > ot && B.push("'" + this.terminals_[N] + "'"); + x.showPosition ? q = "Parse error on line " + (R + 1) + `: +` + x.showPosition() + ` +Expecting ` + B.join(", ") + ", got '" + (this.terminals_[_] || _) + "'" : q = "Parse error on line " + (R + 1) + ": Unexpected " + (_ == J ? "end of input" : "'" + (this.terminals_[_] || _) + "'"), this.parseError(q, { + text: x.match, + token: this.terminals_[_] || _, + line: x.yylineno, + loc: Y, + expected: B + }); + } + if (b[0] instanceof Array && b.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + E + ", token: " + _); + switch (b[0]) { + case 1: + a.push(_), f.push(x.yytext), l.push(x.yylloc), a.push(b[1]), _ = null, Z = x.yyleng, k = x.yytext, R = x.yylineno, Y = x.yylloc; + break; + case 2: + if (T = this.productions_[b[1]][1], I.$ = f[f.length - T], I._$ = { + first_line: l[l.length - (T || 1)].first_line, + last_line: l[l.length - 1].last_line, + first_column: l[l.length - (T || 1)].first_column, + last_column: l[l.length - 1].last_column + }, ht && (I._$.range = [ + l[l.length - (T || 1)].range[0], + l[l.length - 1].range[1] + ]), O = this.performAction.apply(I, [ + k, + Z, + R, + S.yy, + b[1], + f, + l + ].concat(ct)), typeof O < "u") + return O; + T && (a = a.slice(0, -1 * T * 2), f = f.slice(0, -1 * T), l = l.slice(0, -1 * T)), a.push(this.productions_[b[1]][0]), f.push(I.$), l.push(I._$), K = w[a[a.length - 2]][a[a.length - 1]], a.push(K); + break; + case 3: + return !0; + } + } + return !0; + } + }, m = function() { + var p = { + EOF: 1, + parseError: function(r, a) { + if (this.yy.parser) + this.yy.parser.parseError(r, a); + else + throw new Error(r); + }, + // resets the lexer, sets new input + setInput: function(s, r) { + return this.yy = r || this.yy || {}, this._input = s, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var s = this._input[0]; + this.yytext += s, this.yyleng++, this.offset++, this.match += s, this.matched += s; + var r = s.match(/(?:\r\n?|\n).*/g); + return r ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), s; + }, + // unshifts one char (or a string) into the input + unput: function(s) { + var r = s.length, a = s.split(/(?:\r\n?|\n)/g); + this._input = s + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - r), this.offset -= r; + var u = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), a.length - 1 && (this.yylineno -= a.length - 1); + var f = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: a ? (a.length === u.length ? this.yylloc.first_column : 0) + u[u.length - a.length].length - a[0].length : this.yylloc.first_column - r + }, this.options.ranges && (this.yylloc.range = [f[0], f[0] + this.yyleng - r]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(s) { + this.unput(this.match.slice(s)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var s = this.matched.substr(0, this.matched.length - this.match.length); + return (s.length > 20 ? "..." : "") + s.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var s = this.match; + return s.length < 20 && (s += this._input.substr(0, 20 - s.length)), (s.substr(0, 20) + (s.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var s = this.pastInput(), r = new Array(s.length + 1).join("-"); + return s + this.upcomingInput() + ` +` + r + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(s, r) { + var a, u, f; + if (this.options.backtrack_lexer && (f = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (f.yylloc.range = this.yylloc.range.slice(0))), u = s[0].match(/(?:\r\n?|\n).*/g), u && (this.yylineno += u.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: u ? u[u.length - 1].length - u[u.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + s[0].length + }, this.yytext += s[0], this.match += s[0], this.matches = s, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(s[0].length), this.matched += s[0], a = this.performAction.call(this, this.yy, this, r, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), a) + return a; + if (this._backtrack) { + for (var l in f) + this[l] = f[l]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var s, r, a, u; + this._more || (this.yytext = "", this.match = ""); + for (var f = this._currentRules(), l = 0; l < f.length; l++) + if (a = this._input.match(this.rules[f[l]]), a && (!r || a[0].length > r[0].length)) { + if (r = a, u = l, this.options.backtrack_lexer) { + if (s = this.test_match(a, f[l]), s !== !1) + return s; + if (this._backtrack) { + r = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return r ? (s = this.test_match(r, f[u]), s !== !1 ? s : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var r = this.next(); + return r || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(r) { + this.conditionStack.push(r); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var r = this.conditionStack.length - 1; + return r > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(r) { + return r = this.conditionStack.length - 1 - Math.abs(r || 0), r >= 0 ? this.conditionStack[r] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(r) { + this.begin(r); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: { "case-insensitive": !0 }, + performAction: function(r, a, u, f) { + switch (u) { + case 0: + break; + case 1: + break; + case 2: + return 10; + case 3: + break; + case 4: + break; + case 5: + return 4; + case 6: + return 11; + case 7: + return this.begin("acc_title"), 12; + case 8: + return this.popState(), "acc_title_value"; + case 9: + return this.begin("acc_descr"), 14; + case 10: + return this.popState(), "acc_descr_value"; + case 11: + this.begin("acc_descr_multiline"); + break; + case 12: + this.popState(); + break; + case 13: + return "acc_descr_multiline_value"; + case 14: + return 17; + case 15: + return 18; + case 16: + return 19; + case 17: + return ":"; + case 18: + return 6; + case 19: + return "INVALID"; + } + }, + rules: [/^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:journey\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { acc_descr_multiline: { rules: [12, 13], inclusive: !1 }, acc_descr: { rules: [10], inclusive: !1 }, acc_title: { rules: [8], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19], inclusive: !0 } } + }; + return p; + }(); + y.lexer = m; + function g() { + this.yy = {}; + } + return g.prototype = y, y.Parser = g, new g(); +}(); +G.parser = G; +const wt = G; +let A = ""; +const H = [], V = [], F = [], Tt = function() { + H.length = 0, V.length = 0, A = "", F.length = 0, xt(); +}, $t = function(t) { + A = t, H.push(t); +}, Mt = function() { + return H; +}, St = function() { + let t = D(); + const e = 100; + let i = 0; + for (; !t && i < e; ) + t = D(), i++; + return V.push(...F), V; +}, Et = function() { + const t = []; + return V.forEach((i) => { + i.people && t.push(...i.people); + }), [...new Set(t)].sort(); +}, Pt = function(t, e) { + const i = e.substr(1).split(":"); + let o = 0, n = []; + i.length === 1 ? (o = Number(i[0]), n = []) : (o = Number(i[0]), n = i[1].split(",")); + const h = n.map((d) => d.trim()), c = { + section: A, + type: A, + people: h, + task: t, + score: o + }; + F.push(c); +}, Ct = function(t) { + const e = { + section: A, + type: A, + description: t, + task: t, + classes: [] + }; + V.push(e); +}, D = function() { + const t = function(i) { + return F[i].processed; + }; + let e = !0; + for (const [i, o] of F.entries()) + t(i), e = e && o.processed; + return e; +}, It = function() { + return Et(); +}, tt = { + getConfig: () => C().journey, + clear: Tt, + setDiagramTitle: yt, + getDiagramTitle: dt, + setAccTitle: ft, + getAccTitle: pt, + setAccDescription: gt, + getAccDescription: mt, + addSection: $t, + getSections: Mt, + getTasks: St, + addTask: Pt, + addTaskOrg: Ct, + getActors: It +}, At = (t) => `.label { + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + color: ${t.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${t.textColor} + } + + .legend { + fill: ${t.textColor}; + } + + .label text { + fill: #333; + } + .label { + color: ${t.textColor} + } + + .face { + ${t.faceColor ? `fill: ${t.faceColor}` : "fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${t.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${t.fillType0 ? `fill: ${t.fillType0}` : ""}; + } + .task-type-1, .section-type-1 { + ${t.fillType0 ? `fill: ${t.fillType1}` : ""}; + } + .task-type-2, .section-type-2 { + ${t.fillType0 ? `fill: ${t.fillType2}` : ""}; + } + .task-type-3, .section-type-3 { + ${t.fillType0 ? `fill: ${t.fillType3}` : ""}; + } + .task-type-4, .section-type-4 { + ${t.fillType0 ? `fill: ${t.fillType4}` : ""}; + } + .task-type-5, .section-type-5 { + ${t.fillType0 ? `fill: ${t.fillType5}` : ""}; + } + .task-type-6, .section-type-6 { + ${t.fillType0 ? `fill: ${t.fillType6}` : ""}; + } + .task-type-7, .section-type-7 { + ${t.fillType0 ? `fill: ${t.fillType7}` : ""}; + } + + .actor-0 { + ${t.actor0 ? `fill: ${t.actor0}` : ""}; + } + .actor-1 { + ${t.actor1 ? `fill: ${t.actor1}` : ""}; + } + .actor-2 { + ${t.actor2 ? `fill: ${t.actor2}` : ""}; + } + .actor-3 { + ${t.actor3 ? `fill: ${t.actor3}` : ""}; + } + .actor-4 { + ${t.actor4 ? `fill: ${t.actor4}` : ""}; + } + .actor-5 { + ${t.actor5 ? `fill: ${t.actor5}` : ""}; + } +`, Vt = At, U = function(t, e) { + return _t(t, e); +}, Ft = function(t, e) { + const o = t.append("circle").attr("cx", e.cx).attr("cy", e.cy).attr("class", "face").attr("r", 15).attr("stroke-width", 2).attr("overflow", "visible"), n = t.append("g"); + n.append("circle").attr("cx", e.cx - 15 / 3).attr("cy", e.cy - 15 / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"), n.append("circle").attr("cx", e.cx + 15 / 3).attr("cy", e.cy - 15 / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); + function h(y) { + const m = Q().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(7.5).outerRadius(6.8181818181818175); + y.append("path").attr("class", "mouth").attr("d", m).attr("transform", "translate(" + e.cx + "," + (e.cy + 2) + ")"); + } + function c(y) { + const m = Q().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(7.5).outerRadius(6.8181818181818175); + y.append("path").attr("class", "mouth").attr("d", m).attr("transform", "translate(" + e.cx + "," + (e.cy + 7) + ")"); + } + function d(y) { + y.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", e.cx - 5).attr("y1", e.cy + 7).attr("x2", e.cx + 5).attr("y2", e.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666"); + } + return e.score > 3 ? h(n) : e.score < 3 ? c(n) : d(n), o; +}, rt = function(t, e) { + const i = t.append("circle"); + return i.attr("cx", e.cx), i.attr("cy", e.cy), i.attr("class", "actor-" + e.pos), i.attr("fill", e.fill), i.attr("stroke", e.stroke), i.attr("r", e.r), i.class !== void 0 && i.attr("class", i.class), e.title !== void 0 && i.append("title").text(e.title), i; +}, at = function(t, e) { + return bt(t, e); +}, Lt = function(t, e) { + function i(n, h, c, d, y) { + return n + "," + h + " " + (n + c) + "," + h + " " + (n + c) + "," + (h + d - y) + " " + (n + c - y * 1.2) + "," + (h + d) + " " + n + "," + (h + d); + } + const o = t.append("polygon"); + o.attr("points", i(e.x, e.y, 50, 20, 7)), o.attr("class", "labelBox"), e.y = e.y + e.labelMargin, e.x = e.x + 0.5 * e.labelMargin, at(t, e); +}, Rt = function(t, e, i) { + const o = t.append("g"), n = it(); + n.x = e.x, n.y = e.y, n.fill = e.fill, n.width = i.width * e.taskCount + // width of the tasks + i.diagramMarginX * (e.taskCount - 1), n.height = i.height, n.class = "journey-section section-type-" + e.num, n.rx = 3, n.ry = 3, U(o, n), lt(i)( + e.text, + o, + n.x, + n.y, + n.width, + n.height, + { class: "journey-section section-type-" + e.num }, + i, + e.colour + ); +}; +let et = -1; +const Nt = function(t, e, i) { + const o = e.x + i.width / 2, n = t.append("g"); + et++; + const h = 300 + 5 * 30; + n.append("line").attr("id", "task" + et).attr("x1", o).attr("y1", e.y).attr("x2", o).attr("y2", h).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666"), Ft(n, { + cx: o, + cy: 300 + (5 - e.score) * 30, + score: e.score + }); + const c = it(); + c.x = e.x, c.y = e.y, c.fill = e.fill, c.width = i.width, c.height = i.height, c.class = "task task-type-" + e.num, c.rx = 3, c.ry = 3, U(n, c); + let d = e.x + 14; + e.people.forEach((y) => { + const m = e.actors[y].color, g = { + cx: d, + cy: e.y, + r: 7, + fill: m, + stroke: "#000", + title: y, + pos: e.actors[y].position + }; + rt(n, g), d += 10; + }), lt(i)( + e.task, + n, + c.x, + c.y, + c.width, + c.height, + { class: "task" }, + i, + e.colour + ); +}, Bt = function(t, e) { + vt(t, e); +}, lt = function() { + function t(n, h, c, d, y, m, g, p) { + const s = h.append("text").attr("x", c + y / 2).attr("y", d + m / 2 + 5).style("font-color", p).style("text-anchor", "middle").text(n); + o(s, g); + } + function e(n, h, c, d, y, m, g, p, s) { + const { taskFontSize: r, taskFontFamily: a } = p, u = n.split(//gi); + for (let f = 0; f < u.length; f++) { + const l = f * r - r * (u.length - 1) / 2, w = h.append("text").attr("x", c + y / 2).attr("y", d).attr("fill", s).style("text-anchor", "middle").style("font-size", r).style("font-family", a); + w.append("tspan").attr("x", c + y / 2).attr("dy", l).text(u[f]), w.attr("y", d + m / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"), o(w, g); + } + } + function i(n, h, c, d, y, m, g, p) { + const s = h.append("switch"), a = s.append("foreignObject").attr("x", c).attr("y", d).attr("width", y).attr("height", m).attr("position", "fixed").append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + a.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(n), e(n, s, c, d, y, m, g, p), o(a, g); + } + function o(n, h) { + for (const c in h) + c in h && n.attr(c, h[c]); + } + return function(n) { + return n.textPlacement === "fo" ? i : n.textPlacement === "old" ? t : e; + }; +}(), jt = function(t) { + t.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z"); +}, L = { + drawRect: U, + drawCircle: rt, + drawSection: Rt, + drawText: at, + drawLabel: Lt, + drawTask: Nt, + drawBackgroundRect: Bt, + initGraphics: jt +}, zt = function(t) { + Object.keys(t).forEach(function(i) { + j[i] = t[i]; + }); +}, M = {}; +function Yt(t) { + const e = C().journey; + let i = 60; + Object.keys(M).forEach((o) => { + const n = M[o].color, h = { + cx: 20, + cy: i, + r: 7, + fill: n, + stroke: "#000", + pos: M[o].position + }; + L.drawCircle(t, h); + const c = { + x: 40, + y: i + 7, + fill: "#666", + text: o, + textMargin: e.boxTextMargin | 5 + }; + L.drawText(t, c), i += 20; + }); +} +const j = C().journey, P = j.leftMargin, Ot = function(t, e, i, o) { + const n = C().journey, h = C().securityLevel; + let c; + h === "sandbox" && (c = W("#i" + e)); + const d = h === "sandbox" ? W(c.nodes()[0].contentDocument.body) : W("body"); + v.init(); + const y = d.select("#" + e); + L.initGraphics(y); + const m = o.db.getTasks(), g = o.db.getDiagramTitle(), p = o.db.getActors(); + for (const l in M) + delete M[l]; + let s = 0; + p.forEach((l) => { + M[l] = { + color: n.actorColours[s % n.actorColours.length], + position: s + }, s++; + }), Yt(y), v.insert(0, 0, P, Object.keys(M).length * 50), qt(y, m, 0); + const r = v.getBounds(); + g && y.append("text").text(g).attr("x", P).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 25); + const a = r.stopy - r.starty + 2 * n.diagramMarginY, u = P + r.stopx + 2 * n.diagramMarginX; + kt(y, a, u, n.useMaxWidth), y.append("line").attr("x1", P).attr("y1", n.height * 4).attr("x2", u - P - 4).attr("y2", n.height * 4).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)"); + const f = g ? 70 : 0; + y.attr("viewBox", `${r.startx} -25 ${u} ${a + f}`), y.attr("preserveAspectRatio", "xMinYMin meet"), y.attr("height", a + f + 25); +}, v = { + data: { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0 + }, + verticalPos: 0, + sequenceItems: [], + init: function() { + this.sequenceItems = [], this.data = { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0 + }, this.verticalPos = 0; + }, + updateVal: function(t, e, i, o) { + t[e] === void 0 ? t[e] = i : t[e] = o(i, t[e]); + }, + updateBounds: function(t, e, i, o) { + const n = C().journey, h = this; + let c = 0; + function d(y) { + return function(g) { + c++; + const p = h.sequenceItems.length - c + 1; + h.updateVal(g, "starty", e - p * n.boxMargin, Math.min), h.updateVal(g, "stopy", o + p * n.boxMargin, Math.max), h.updateVal(v.data, "startx", t - p * n.boxMargin, Math.min), h.updateVal(v.data, "stopx", i + p * n.boxMargin, Math.max), y !== "activation" && (h.updateVal(g, "startx", t - p * n.boxMargin, Math.min), h.updateVal(g, "stopx", i + p * n.boxMargin, Math.max), h.updateVal(v.data, "starty", e - p * n.boxMargin, Math.min), h.updateVal(v.data, "stopy", o + p * n.boxMargin, Math.max)); + }; + } + this.sequenceItems.forEach(d()); + }, + insert: function(t, e, i, o) { + const n = Math.min(t, i), h = Math.max(t, i), c = Math.min(e, o), d = Math.max(e, o); + this.updateVal(v.data, "startx", n, Math.min), this.updateVal(v.data, "starty", c, Math.min), this.updateVal(v.data, "stopx", h, Math.max), this.updateVal(v.data, "stopy", d, Math.max), this.updateBounds(n, c, h, d); + }, + bumpVerticalPos: function(t) { + this.verticalPos = this.verticalPos + t, this.data.stopy = this.verticalPos; + }, + getVerticalPos: function() { + return this.verticalPos; + }, + getBounds: function() { + return this.data; + } +}, X = j.sectionFills, st = j.sectionColours, qt = function(t, e, i) { + const o = C().journey; + let n = ""; + const h = o.height * 2 + o.diagramMarginY, c = i + h; + let d = 0, y = "#CCC", m = "black", g = 0; + for (const [p, s] of e.entries()) { + if (n !== s.section) { + y = X[d % X.length], g = d % X.length, m = st[d % st.length]; + let a = 0; + const u = s.section; + for (let l = p; l < e.length && e[l].section == u; l++) + a = a + 1; + const f = { + x: p * o.taskMargin + p * o.width + P, + y: 50, + text: s.section, + fill: y, + num: g, + colour: m, + taskCount: a + }; + L.drawSection(t, f, o), n = s.section, d++; + } + const r = s.people.reduce((a, u) => (M[u] && (a[u] = M[u]), a), {}); + s.x = p * o.taskMargin + p * o.width + P, s.y = c, s.width = o.diagramMarginX, s.height = o.diagramMarginY, s.colour = m, s.fill = y, s.num = g, s.actors = r, L.drawTask(t, s, o), v.insert(s.x, s.y, s.x + s.width + o.taskMargin, 300 + 5 * 30); + } +}, nt = { + setConf: zt, + draw: Ot +}, Ut = { + parser: wt, + db: tt, + renderer: nt, + styles: Vt, + init: (t) => { + nt.setConf(t.journey), tt.clear(); + } +}; +export { + Ut as diagram +}; diff --git a/assets/lib/mermaid/journeyDiagram-6625b456.js b/assets/lib/mermaid/journeyDiagram-6625b456.js new file mode 100644 index 000000000..5f8b0a5f6 --- /dev/null +++ b/assets/lib/mermaid/journeyDiagram-6625b456.js @@ -0,0 +1,1191 @@ +import { c as getConfig, q as setDiagramTitle, t as getDiagramTitle, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, v as clear$1, i as configureSvgSize } from "./mermaid-6dc72991.js"; +import { arc, select } from "d3"; +import { d as drawRect$1, f as drawText$1, a as drawBackgroundRect$1, g as getNoteRect } from "./svgDrawCommon-5e1cfd1d.js"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 18], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 14]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "journey": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "title": 11, "acc_title": 12, "acc_title_value": 13, "acc_descr": 14, "acc_descr_value": 15, "acc_descr_multiline_value": 16, "section": 17, "taskName": 18, "taskData": 19, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "journey", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 11: "title", 12: "acc_title", 13: "acc_title_value", 14: "acc_descr", 15: "acc_descr_value", 16: "acc_descr_multiline_value", 17: "section", 18: "taskName", 19: "taskData" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 1: + return $$[$0 - 1]; + case 2: + this.$ = []; + break; + case 3: + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + break; + case 4: + case 5: + this.$ = $$[$0]; + break; + case 6: + case 7: + this.$ = []; + break; + case 8: + yy.setDiagramTitle($$[$0].substr(6)); + this.$ = $$[$0].substr(6); + break; + case 9: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 10: + case 11: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 12: + yy.addSection($$[$0].substr(8)); + this.$ = $$[$0].substr(8); + break; + case 13: + yy.addTask($$[$0 - 1], $$[$0]); + this.$ = "task"; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 15, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 16] }, { 15: [1, 17] }, o($V0, [2, 11]), o($V0, [2, 12]), { 19: [1, 18] }, o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 13])], + defaultActions: {}, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + break; + case 1: + break; + case 2: + return 10; + case 3: + break; + case 4: + break; + case 5: + return 4; + case 6: + return 11; + case 7: + this.begin("acc_title"); + return 12; + case 8: + this.popState(); + return "acc_title_value"; + case 9: + this.begin("acc_descr"); + return 14; + case 10: + this.popState(); + return "acc_descr_value"; + case 11: + this.begin("acc_descr_multiline"); + break; + case 12: + this.popState(); + break; + case 13: + return "acc_descr_multiline_value"; + case 14: + return 17; + case 15: + return 18; + case 16: + return 19; + case 17: + return ":"; + case 18: + return 6; + case 19: + return "INVALID"; + } + }, + rules: [/^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:journey\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let currentSection = ""; +const sections = []; +const tasks = []; +const rawTasks = []; +const clear = function() { + sections.length = 0; + tasks.length = 0; + currentSection = ""; + rawTasks.length = 0; + clear$1(); +}; +const addSection = function(txt) { + currentSection = txt; + sections.push(txt); +}; +const getSections = function() { + return sections; +}; +const getTasks = function() { + let allItemsProcessed = compileTasks(); + const maxDepth = 100; + let iterationCount = 0; + while (!allItemsProcessed && iterationCount < maxDepth) { + allItemsProcessed = compileTasks(); + iterationCount++; + } + tasks.push(...rawTasks); + return tasks; +}; +const updateActors = function() { + const tempActors = []; + tasks.forEach((task) => { + if (task.people) { + tempActors.push(...task.people); + } + }); + const unique = new Set(tempActors); + return [...unique].sort(); +}; +const addTask = function(descr, taskData) { + const pieces = taskData.substr(1).split(":"); + let score = 0; + let peeps = []; + if (pieces.length === 1) { + score = Number(pieces[0]); + peeps = []; + } else { + score = Number(pieces[0]); + peeps = pieces[1].split(","); + } + const peopleList = peeps.map((s) => s.trim()); + const rawTask = { + section: currentSection, + type: currentSection, + people: peopleList, + task: descr, + score + }; + rawTasks.push(rawTask); +}; +const addTaskOrg = function(descr) { + const newTask = { + section: currentSection, + type: currentSection, + description: descr, + task: descr, + classes: [] + }; + tasks.push(newTask); +}; +const compileTasks = function() { + const compileTask = function(pos) { + return rawTasks[pos].processed; + }; + let allProcessed = true; + for (const [i, rawTask] of rawTasks.entries()) { + compileTask(i); + allProcessed = allProcessed && rawTask.processed; + } + return allProcessed; +}; +const getActors = function() { + return updateActors(); +}; +const db = { + getConfig: () => getConfig().journey, + clear, + setDiagramTitle, + getDiagramTitle, + setAccTitle, + getAccTitle, + setAccDescription, + getAccDescription, + addSection, + getSections, + getTasks, + addTask, + addTaskOrg, + getActors +}; +const getStyles = (options) => `.label { + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + color: ${options.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${options.textColor} + } + + .legend { + fill: ${options.textColor}; + } + + .label text { + fill: #333; + } + .label { + color: ${options.textColor} + } + + .face { + ${options.faceColor ? `fill: ${options.faceColor}` : "fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${options.arrowheadColor}; + } + + .edgePath .path { + stroke: ${options.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${options.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${options.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${options.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + font-size: 12px; + background: ${options.tertiaryColor}; + border: 1px solid ${options.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${options.fillType0 ? `fill: ${options.fillType0}` : ""}; + } + .task-type-1, .section-type-1 { + ${options.fillType0 ? `fill: ${options.fillType1}` : ""}; + } + .task-type-2, .section-type-2 { + ${options.fillType0 ? `fill: ${options.fillType2}` : ""}; + } + .task-type-3, .section-type-3 { + ${options.fillType0 ? `fill: ${options.fillType3}` : ""}; + } + .task-type-4, .section-type-4 { + ${options.fillType0 ? `fill: ${options.fillType4}` : ""}; + } + .task-type-5, .section-type-5 { + ${options.fillType0 ? `fill: ${options.fillType5}` : ""}; + } + .task-type-6, .section-type-6 { + ${options.fillType0 ? `fill: ${options.fillType6}` : ""}; + } + .task-type-7, .section-type-7 { + ${options.fillType0 ? `fill: ${options.fillType7}` : ""}; + } + + .actor-0 { + ${options.actor0 ? `fill: ${options.actor0}` : ""}; + } + .actor-1 { + ${options.actor1 ? `fill: ${options.actor1}` : ""}; + } + .actor-2 { + ${options.actor2 ? `fill: ${options.actor2}` : ""}; + } + .actor-3 { + ${options.actor3 ? `fill: ${options.actor3}` : ""}; + } + .actor-4 { + ${options.actor4 ? `fill: ${options.actor4}` : ""}; + } + .actor-5 { + ${options.actor5 ? `fill: ${options.actor5}` : ""}; + } +`; +const styles = getStyles; +const drawRect = function(elem, rectData) { + return drawRect$1(elem, rectData); +}; +const drawFace = function(element, faceData) { + const radius = 15; + const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible"); + const face = element.append("g"); + face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); + face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); + function smile(face2) { + const arc$1 = arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); + face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")"); + } + function sad(face2) { + const arc$1 = arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); + face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")"); + } + function ambivalent(face2) { + face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666"); + } + if (faceData.score > 3) { + smile(face); + } else if (faceData.score < 3) { + sad(face); + } else { + ambivalent(face); + } + return circleElement; +}; +const drawCircle = function(element, circleData) { + const circleElement = element.append("circle"); + circleElement.attr("cx", circleData.cx); + circleElement.attr("cy", circleData.cy); + circleElement.attr("class", "actor-" + circleData.pos); + circleElement.attr("fill", circleData.fill); + circleElement.attr("stroke", circleData.stroke); + circleElement.attr("r", circleData.r); + if (circleElement.class !== void 0) { + circleElement.attr("class", circleElement.class); + } + if (circleData.title !== void 0) { + circleElement.append("title").text(circleData.title); + } + return circleElement; +}; +const drawText = function(elem, textData) { + return drawText$1(elem, textData); +}; +const drawLabel = function(elem, txtObject) { + function genPoints(x, y, width, height, cut) { + return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height); + } + const polygon = elem.append("polygon"); + polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7)); + polygon.attr("class", "labelBox"); + txtObject.y = txtObject.y + txtObject.labelMargin; + txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin; + drawText(elem, txtObject); +}; +const drawSection = function(elem, section, conf2) { + const g = elem.append("g"); + const rect = getNoteRect(); + rect.x = section.x; + rect.y = section.y; + rect.fill = section.fill; + rect.width = conf2.width * section.taskCount + // width of the tasks + conf2.diagramMarginX * (section.taskCount - 1); + rect.height = conf2.height; + rect.class = "journey-section section-type-" + section.num; + rect.rx = 3; + rect.ry = 3; + drawRect(g, rect); + _drawTextCandidateFunc(conf2)( + section.text, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: "journey-section section-type-" + section.num }, + conf2, + section.colour + ); +}; +let taskCount = -1; +const drawTask = function(elem, task, conf2) { + const center = task.x + conf2.width / 2; + const g = elem.append("g"); + taskCount++; + const maxHeight = 300 + 5 * 30; + g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666"); + drawFace(g, { + cx: center, + cy: 300 + (5 - task.score) * 30, + score: task.score + }); + const rect = getNoteRect(); + rect.x = task.x; + rect.y = task.y; + rect.fill = task.fill; + rect.width = conf2.width; + rect.height = conf2.height; + rect.class = "task task-type-" + task.num; + rect.rx = 3; + rect.ry = 3; + drawRect(g, rect); + let xPos = task.x + 14; + task.people.forEach((person) => { + const colour = task.actors[person].color; + const circle = { + cx: xPos, + cy: task.y, + r: 7, + fill: colour, + stroke: "#000", + title: person, + pos: task.actors[person].position + }; + drawCircle(g, circle); + xPos += 10; + }); + _drawTextCandidateFunc(conf2)( + task.task, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: "task" }, + conf2, + task.colour + ); +}; +const drawBackgroundRect = function(elem, bounds2) { + drawBackgroundRect$1(elem, bounds2); +}; +const _drawTextCandidateFunc = function() { + function byText(content, g, x, y, width, height, textAttrs, colour) { + const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content); + _setTextAttrs(text, textAttrs); + } + function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) { + const { taskFontSize, taskFontFamily } = conf2; + const lines = content.split(//gi); + for (let i = 0; i < lines.length; i++) { + const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2; + const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily); + text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]); + text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"); + _setTextAttrs(text, textAttrs); + } + } + function byFo(content, g, x, y, width, height, textAttrs, conf2) { + const body = g.append("switch"); + const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed"); + const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); + byTspan(content, body, x, y, width, height, textAttrs, conf2); + _setTextAttrs(text, textAttrs); + } + function _setTextAttrs(toText, fromTextAttrsDict) { + for (const key in fromTextAttrsDict) { + if (key in fromTextAttrsDict) { + toText.attr(key, fromTextAttrsDict[key]); + } + } + } + return function(conf2) { + return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan; + }; +}(); +const initGraphics = function(graphics) { + graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z"); +}; +const svgDraw = { + drawRect, + drawCircle, + drawSection, + drawText, + drawLabel, + drawTask, + drawBackgroundRect, + initGraphics +}; +const setConf = function(cnf) { + const keys = Object.keys(cnf); + keys.forEach(function(key) { + conf[key] = cnf[key]; + }); +}; +const actors = {}; +function drawActorLegend(diagram2) { + const conf2 = getConfig().journey; + let yPos = 60; + Object.keys(actors).forEach((person) => { + const colour = actors[person].color; + const circleData = { + cx: 20, + cy: yPos, + r: 7, + fill: colour, + stroke: "#000", + pos: actors[person].position + }; + svgDraw.drawCircle(diagram2, circleData); + const labelData = { + x: 40, + y: yPos + 7, + fill: "#666", + text: person, + textMargin: conf2.boxTextMargin | 5 + }; + svgDraw.drawText(diagram2, labelData); + yPos += 20; + }); +} +const conf = getConfig().journey; +const LEFT_MARGIN = conf.leftMargin; +const draw = function(text, id, version, diagObj) { + const conf2 = getConfig().journey; + const securityLevel = getConfig().securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + bounds.init(); + const diagram2 = root.select("#" + id); + svgDraw.initGraphics(diagram2); + const tasks2 = diagObj.db.getTasks(); + const title = diagObj.db.getDiagramTitle(); + const actorNames = diagObj.db.getActors(); + for (const member in actors) { + delete actors[member]; + } + let actorPos = 0; + actorNames.forEach((actorName) => { + actors[actorName] = { + color: conf2.actorColours[actorPos % conf2.actorColours.length], + position: actorPos + }; + actorPos++; + }); + drawActorLegend(diagram2); + bounds.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50); + drawTasks(diagram2, tasks2, 0); + const box = bounds.getBounds(); + if (title) { + diagram2.append("text").text(title).attr("x", LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 25); + } + const height = box.stopy - box.starty + 2 * conf2.diagramMarginY; + const width = LEFT_MARGIN + box.stopx + 2 * conf2.diagramMarginX; + configureSvgSize(diagram2, height, width, conf2.useMaxWidth); + diagram2.append("line").attr("x1", LEFT_MARGIN).attr("y1", conf2.height * 4).attr("x2", width - LEFT_MARGIN - 4).attr("y2", conf2.height * 4).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)"); + const extraVertForTitle = title ? 70 : 0; + diagram2.attr("viewBox", `${box.startx} -25 ${width} ${height + extraVertForTitle}`); + diagram2.attr("preserveAspectRatio", "xMinYMin meet"); + diagram2.attr("height", height + extraVertForTitle + 25); +}; +const bounds = { + data: { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0 + }, + verticalPos: 0, + sequenceItems: [], + init: function() { + this.sequenceItems = []; + this.data = { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0 + }; + this.verticalPos = 0; + }, + updateVal: function(obj, key, val, fun) { + if (obj[key] === void 0) { + obj[key] = val; + } else { + obj[key] = fun(val, obj[key]); + } + }, + updateBounds: function(startx, starty, stopx, stopy) { + const conf2 = getConfig().journey; + const _self = this; + let cnt = 0; + function updateFn(type) { + return function updateItemBounds(item) { + cnt++; + const n = _self.sequenceItems.length - cnt + 1; + _self.updateVal(item, "starty", starty - n * conf2.boxMargin, Math.min); + _self.updateVal(item, "stopy", stopy + n * conf2.boxMargin, Math.max); + _self.updateVal(bounds.data, "startx", startx - n * conf2.boxMargin, Math.min); + _self.updateVal(bounds.data, "stopx", stopx + n * conf2.boxMargin, Math.max); + if (!(type === "activation")) { + _self.updateVal(item, "startx", startx - n * conf2.boxMargin, Math.min); + _self.updateVal(item, "stopx", stopx + n * conf2.boxMargin, Math.max); + _self.updateVal(bounds.data, "starty", starty - n * conf2.boxMargin, Math.min); + _self.updateVal(bounds.data, "stopy", stopy + n * conf2.boxMargin, Math.max); + } + }; + } + this.sequenceItems.forEach(updateFn()); + }, + insert: function(startx, starty, stopx, stopy) { + const _startx = Math.min(startx, stopx); + const _stopx = Math.max(startx, stopx); + const _starty = Math.min(starty, stopy); + const _stopy = Math.max(starty, stopy); + this.updateVal(bounds.data, "startx", _startx, Math.min); + this.updateVal(bounds.data, "starty", _starty, Math.min); + this.updateVal(bounds.data, "stopx", _stopx, Math.max); + this.updateVal(bounds.data, "stopy", _stopy, Math.max); + this.updateBounds(_startx, _starty, _stopx, _stopy); + }, + bumpVerticalPos: function(bump) { + this.verticalPos = this.verticalPos + bump; + this.data.stopy = this.verticalPos; + }, + getVerticalPos: function() { + return this.verticalPos; + }, + getBounds: function() { + return this.data; + } +}; +const fills = conf.sectionFills; +const textColours = conf.sectionColours; +const drawTasks = function(diagram2, tasks2, verticalPos) { + const conf2 = getConfig().journey; + let lastSection = ""; + const sectionVHeight = conf2.height * 2 + conf2.diagramMarginY; + const taskPos = verticalPos + sectionVHeight; + let sectionNumber = 0; + let fill = "#CCC"; + let colour = "black"; + let num = 0; + for (const [i, task] of tasks2.entries()) { + if (lastSection !== task.section) { + fill = fills[sectionNumber % fills.length]; + num = sectionNumber % fills.length; + colour = textColours[sectionNumber % textColours.length]; + let taskInSectionCount = 0; + const currentSection2 = task.section; + for (let taskIndex = i; taskIndex < tasks2.length; taskIndex++) { + if (tasks2[taskIndex].section == currentSection2) { + taskInSectionCount = taskInSectionCount + 1; + } else { + break; + } + } + const section = { + x: i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN, + y: 50, + text: task.section, + fill, + num, + colour, + taskCount: taskInSectionCount + }; + svgDraw.drawSection(diagram2, section, conf2); + lastSection = task.section; + sectionNumber++; + } + const taskActors = task.people.reduce((acc, actorName) => { + if (actors[actorName]) { + acc[actorName] = actors[actorName]; + } + return acc; + }, {}); + task.x = i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN; + task.y = taskPos; + task.width = conf2.diagramMarginX; + task.height = conf2.diagramMarginY; + task.colour = colour; + task.fill = fill; + task.num = num; + task.actors = taskActors; + svgDraw.drawTask(diagram2, task, conf2); + bounds.insert(task.x, task.y, task.x + task.width + conf2.taskMargin, 300 + 5 * 30); + } +}; +const renderer = { + setConf, + draw +}; +const diagram = { + parser: parser$1, + db, + renderer, + styles, + init: (cnf) => { + renderer.setConf(cnf.journey); + db.clear(); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/journeyDiagram-b56e6921.js b/assets/lib/mermaid/journeyDiagram-b56e6921.js new file mode 100644 index 000000000..72590a0fa --- /dev/null +++ b/assets/lib/mermaid/journeyDiagram-b56e6921.js @@ -0,0 +1,1183 @@ +import { c as getConfig, C as setDiagramTitle, D as getDiagramTitle, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, E as clear$1, j as d3select, k as configureSvgSize } from "./mermaid-dcacb631.js"; +import { d as drawRect$1, f as drawText$1, a as drawBackgroundRect$1, g as getNoteRect } from "./svgDrawCommon-d6ab583c.js"; +import { d as d3arc } from "./arc-c0f908ab.js"; +import "./path-39bad7e2.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 18], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 14]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "journey": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "title": 11, "acc_title": 12, "acc_title_value": 13, "acc_descr": 14, "acc_descr_value": 15, "acc_descr_multiline_value": 16, "section": 17, "taskName": 18, "taskData": 19, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "journey", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 11: "title", 12: "acc_title", 13: "acc_title_value", 14: "acc_descr", 15: "acc_descr_value", 16: "acc_descr_multiline_value", 17: "section", 18: "taskName", 19: "taskData" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 1: + return $$[$0 - 1]; + case 2: + this.$ = []; + break; + case 3: + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + break; + case 4: + case 5: + this.$ = $$[$0]; + break; + case 6: + case 7: + this.$ = []; + break; + case 8: + yy.setDiagramTitle($$[$0].substr(6)); + this.$ = $$[$0].substr(6); + break; + case 9: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 10: + case 11: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 12: + yy.addSection($$[$0].substr(8)); + this.$ = $$[$0].substr(8); + break; + case 13: + yy.addTask($$[$0 - 1], $$[$0]); + this.$ = "task"; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 15, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 16] }, { 15: [1, 17] }, o($V0, [2, 11]), o($V0, [2, 12]), { 19: [1, 18] }, o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 13])], + defaultActions: {}, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + break; + case 1: + break; + case 2: + return 10; + case 3: + break; + case 4: + break; + case 5: + return 4; + case 6: + return 11; + case 7: + this.begin("acc_title"); + return 12; + case 8: + this.popState(); + return "acc_title_value"; + case 9: + this.begin("acc_descr"); + return 14; + case 10: + this.popState(); + return "acc_descr_value"; + case 11: + this.begin("acc_descr_multiline"); + break; + case 12: + this.popState(); + break; + case 13: + return "acc_descr_multiline_value"; + case 14: + return 17; + case 15: + return 18; + case 16: + return 19; + case 17: + return ":"; + case 18: + return 6; + case 19: + return "INVALID"; + } + }, + rules: [/^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:journey\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let currentSection = ""; +const sections = []; +const tasks = []; +const rawTasks = []; +const clear = function() { + sections.length = 0; + tasks.length = 0; + currentSection = ""; + rawTasks.length = 0; + clear$1(); +}; +const addSection = function(txt) { + currentSection = txt; + sections.push(txt); +}; +const getSections = function() { + return sections; +}; +const getTasks = function() { + let allItemsProcessed = compileTasks(); + const maxDepth = 100; + let iterationCount = 0; + while (!allItemsProcessed && iterationCount < maxDepth) { + allItemsProcessed = compileTasks(); + iterationCount++; + } + tasks.push(...rawTasks); + return tasks; +}; +const updateActors = function() { + const tempActors = []; + tasks.forEach((task) => { + if (task.people) { + tempActors.push(...task.people); + } + }); + const unique = new Set(tempActors); + return [...unique].sort(); +}; +const addTask = function(descr, taskData) { + const pieces = taskData.substr(1).split(":"); + let score = 0; + let peeps = []; + if (pieces.length === 1) { + score = Number(pieces[0]); + peeps = []; + } else { + score = Number(pieces[0]); + peeps = pieces[1].split(","); + } + const peopleList = peeps.map((s) => s.trim()); + const rawTask = { + section: currentSection, + type: currentSection, + people: peopleList, + task: descr, + score + }; + rawTasks.push(rawTask); +}; +const addTaskOrg = function(descr) { + const newTask = { + section: currentSection, + type: currentSection, + description: descr, + task: descr, + classes: [] + }; + tasks.push(newTask); +}; +const compileTasks = function() { + const compileTask = function(pos) { + return rawTasks[pos].processed; + }; + let allProcessed = true; + for (const [i, rawTask] of rawTasks.entries()) { + compileTask(i); + allProcessed = allProcessed && rawTask.processed; + } + return allProcessed; +}; +const getActors = function() { + return updateActors(); +}; +const db = { + getConfig: () => getConfig().journey, + clear, + setDiagramTitle, + getDiagramTitle, + setAccTitle, + getAccTitle, + setAccDescription, + getAccDescription, + addSection, + getSections, + getTasks, + addTask, + addTaskOrg, + getActors +}; +const getStyles = (options) => `.label { + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + color: ${options.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${options.textColor} + } + + .legend { + fill: ${options.textColor}; + } + + .label text { + fill: #333; + } + .label { + color: ${options.textColor} + } + + .face { + ${options.faceColor ? `fill: ${options.faceColor}` : "fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${options.arrowheadColor}; + } + + .edgePath .path { + stroke: ${options.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${options.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${options.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${options.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + font-size: 12px; + background: ${options.tertiaryColor}; + border: 1px solid ${options.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${options.fillType0 ? `fill: ${options.fillType0}` : ""}; + } + .task-type-1, .section-type-1 { + ${options.fillType0 ? `fill: ${options.fillType1}` : ""}; + } + .task-type-2, .section-type-2 { + ${options.fillType0 ? `fill: ${options.fillType2}` : ""}; + } + .task-type-3, .section-type-3 { + ${options.fillType0 ? `fill: ${options.fillType3}` : ""}; + } + .task-type-4, .section-type-4 { + ${options.fillType0 ? `fill: ${options.fillType4}` : ""}; + } + .task-type-5, .section-type-5 { + ${options.fillType0 ? `fill: ${options.fillType5}` : ""}; + } + .task-type-6, .section-type-6 { + ${options.fillType0 ? `fill: ${options.fillType6}` : ""}; + } + .task-type-7, .section-type-7 { + ${options.fillType0 ? `fill: ${options.fillType7}` : ""}; + } + + .actor-0 { + ${options.actor0 ? `fill: ${options.actor0}` : ""}; + } + .actor-1 { + ${options.actor1 ? `fill: ${options.actor1}` : ""}; + } + .actor-2 { + ${options.actor2 ? `fill: ${options.actor2}` : ""}; + } + .actor-3 { + ${options.actor3 ? `fill: ${options.actor3}` : ""}; + } + .actor-4 { + ${options.actor4 ? `fill: ${options.actor4}` : ""}; + } + .actor-5 { + ${options.actor5 ? `fill: ${options.actor5}` : ""}; + } +`; +const styles = getStyles; +const drawRect = function(elem, rectData) { + return drawRect$1(elem, rectData); +}; +const drawFace = function(element, faceData) { + const radius = 15; + const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible"); + const face = element.append("g"); + face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); + face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); + function smile(face2) { + const arc = d3arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); + face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")"); + } + function sad(face2) { + const arc = d3arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); + face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")"); + } + function ambivalent(face2) { + face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666"); + } + if (faceData.score > 3) { + smile(face); + } else if (faceData.score < 3) { + sad(face); + } else { + ambivalent(face); + } + return circleElement; +}; +const drawCircle = function(element, circleData) { + const circleElement = element.append("circle"); + circleElement.attr("cx", circleData.cx); + circleElement.attr("cy", circleData.cy); + circleElement.attr("class", "actor-" + circleData.pos); + circleElement.attr("fill", circleData.fill); + circleElement.attr("stroke", circleData.stroke); + circleElement.attr("r", circleData.r); + if (circleElement.class !== void 0) { + circleElement.attr("class", circleElement.class); + } + if (circleData.title !== void 0) { + circleElement.append("title").text(circleData.title); + } + return circleElement; +}; +const drawText = function(elem, textData) { + return drawText$1(elem, textData); +}; +const drawLabel = function(elem, txtObject) { + function genPoints(x, y, width, height, cut) { + return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height); + } + const polygon = elem.append("polygon"); + polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7)); + polygon.attr("class", "labelBox"); + txtObject.y = txtObject.y + txtObject.labelMargin; + txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin; + drawText(elem, txtObject); +}; +const drawSection = function(elem, section, conf2) { + const g = elem.append("g"); + const rect = getNoteRect(); + rect.x = section.x; + rect.y = section.y; + rect.fill = section.fill; + rect.width = conf2.width * section.taskCount + // width of the tasks + conf2.diagramMarginX * (section.taskCount - 1); + rect.height = conf2.height; + rect.class = "journey-section section-type-" + section.num; + rect.rx = 3; + rect.ry = 3; + drawRect(g, rect); + _drawTextCandidateFunc(conf2)( + section.text, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: "journey-section section-type-" + section.num }, + conf2, + section.colour + ); +}; +let taskCount = -1; +const drawTask = function(elem, task, conf2) { + const center = task.x + conf2.width / 2; + const g = elem.append("g"); + taskCount++; + const maxHeight = 300 + 5 * 30; + g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666"); + drawFace(g, { + cx: center, + cy: 300 + (5 - task.score) * 30, + score: task.score + }); + const rect = getNoteRect(); + rect.x = task.x; + rect.y = task.y; + rect.fill = task.fill; + rect.width = conf2.width; + rect.height = conf2.height; + rect.class = "task task-type-" + task.num; + rect.rx = 3; + rect.ry = 3; + drawRect(g, rect); + let xPos = task.x + 14; + task.people.forEach((person) => { + const colour = task.actors[person].color; + const circle = { + cx: xPos, + cy: task.y, + r: 7, + fill: colour, + stroke: "#000", + title: person, + pos: task.actors[person].position + }; + drawCircle(g, circle); + xPos += 10; + }); + _drawTextCandidateFunc(conf2)( + task.task, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: "task" }, + conf2, + task.colour + ); +}; +const drawBackgroundRect = function(elem, bounds2) { + drawBackgroundRect$1(elem, bounds2); +}; +const _drawTextCandidateFunc = function() { + function byText(content, g, x, y, width, height, textAttrs, colour) { + const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content); + _setTextAttrs(text, textAttrs); + } + function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) { + const { taskFontSize, taskFontFamily } = conf2; + const lines = content.split(//gi); + for (let i = 0; i < lines.length; i++) { + const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2; + const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily); + text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]); + text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"); + _setTextAttrs(text, textAttrs); + } + } + function byFo(content, g, x, y, width, height, textAttrs, conf2) { + const body = g.append("switch"); + const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed"); + const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); + byTspan(content, body, x, y, width, height, textAttrs, conf2); + _setTextAttrs(text, textAttrs); + } + function _setTextAttrs(toText, fromTextAttrsDict) { + for (const key in fromTextAttrsDict) { + if (key in fromTextAttrsDict) { + toText.attr(key, fromTextAttrsDict[key]); + } + } + } + return function(conf2) { + return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan; + }; +}(); +const initGraphics = function(graphics) { + graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z"); +}; +const svgDraw = { + drawRect, + drawCircle, + drawSection, + drawText, + drawLabel, + drawTask, + drawBackgroundRect, + initGraphics +}; +const setConf = function(cnf) { + const keys = Object.keys(cnf); + keys.forEach(function(key) { + conf[key] = cnf[key]; + }); +}; +const actors = {}; +function drawActorLegend(diagram2) { + const conf2 = getConfig().journey; + let yPos = 60; + Object.keys(actors).forEach((person) => { + const colour = actors[person].color; + const circleData = { + cx: 20, + cy: yPos, + r: 7, + fill: colour, + stroke: "#000", + pos: actors[person].position + }; + svgDraw.drawCircle(diagram2, circleData); + const labelData = { + x: 40, + y: yPos + 7, + fill: "#666", + text: person, + textMargin: conf2.boxTextMargin | 5 + }; + svgDraw.drawText(diagram2, labelData); + yPos += 20; + }); +} +const conf = getConfig().journey; +const LEFT_MARGIN = conf.leftMargin; +const draw = function(text, id, version, diagObj) { + const conf2 = getConfig().journey; + const securityLevel = getConfig().securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + bounds.init(); + const diagram2 = root.select("#" + id); + svgDraw.initGraphics(diagram2); + const tasks2 = diagObj.db.getTasks(); + const title = diagObj.db.getDiagramTitle(); + const actorNames = diagObj.db.getActors(); + for (const member in actors) { + delete actors[member]; + } + let actorPos = 0; + actorNames.forEach((actorName) => { + actors[actorName] = { + color: conf2.actorColours[actorPos % conf2.actorColours.length], + position: actorPos + }; + actorPos++; + }); + drawActorLegend(diagram2); + bounds.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50); + drawTasks(diagram2, tasks2, 0); + const box = bounds.getBounds(); + if (title) { + diagram2.append("text").text(title).attr("x", LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 25); + } + const height = box.stopy - box.starty + 2 * conf2.diagramMarginY; + const width = LEFT_MARGIN + box.stopx + 2 * conf2.diagramMarginX; + configureSvgSize(diagram2, height, width, conf2.useMaxWidth); + diagram2.append("line").attr("x1", LEFT_MARGIN).attr("y1", conf2.height * 4).attr("x2", width - LEFT_MARGIN - 4).attr("y2", conf2.height * 4).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)"); + const extraVertForTitle = title ? 70 : 0; + diagram2.attr("viewBox", `${box.startx} -25 ${width} ${height + extraVertForTitle}`); + diagram2.attr("preserveAspectRatio", "xMinYMin meet"); + diagram2.attr("height", height + extraVertForTitle + 25); +}; +const bounds = { + data: { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0 + }, + verticalPos: 0, + sequenceItems: [], + init: function() { + this.sequenceItems = []; + this.data = { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0 + }; + this.verticalPos = 0; + }, + updateVal: function(obj, key, val, fun) { + if (obj[key] === void 0) { + obj[key] = val; + } else { + obj[key] = fun(val, obj[key]); + } + }, + updateBounds: function(startx, starty, stopx, stopy) { + const conf2 = getConfig().journey; + const _self = this; + let cnt = 0; + function updateFn(type) { + return function updateItemBounds(item) { + cnt++; + const n = _self.sequenceItems.length - cnt + 1; + _self.updateVal(item, "starty", starty - n * conf2.boxMargin, Math.min); + _self.updateVal(item, "stopy", stopy + n * conf2.boxMargin, Math.max); + _self.updateVal(bounds.data, "startx", startx - n * conf2.boxMargin, Math.min); + _self.updateVal(bounds.data, "stopx", stopx + n * conf2.boxMargin, Math.max); + if (!(type === "activation")) { + _self.updateVal(item, "startx", startx - n * conf2.boxMargin, Math.min); + _self.updateVal(item, "stopx", stopx + n * conf2.boxMargin, Math.max); + _self.updateVal(bounds.data, "starty", starty - n * conf2.boxMargin, Math.min); + _self.updateVal(bounds.data, "stopy", stopy + n * conf2.boxMargin, Math.max); + } + }; + } + this.sequenceItems.forEach(updateFn()); + }, + insert: function(startx, starty, stopx, stopy) { + const _startx = Math.min(startx, stopx); + const _stopx = Math.max(startx, stopx); + const _starty = Math.min(starty, stopy); + const _stopy = Math.max(starty, stopy); + this.updateVal(bounds.data, "startx", _startx, Math.min); + this.updateVal(bounds.data, "starty", _starty, Math.min); + this.updateVal(bounds.data, "stopx", _stopx, Math.max); + this.updateVal(bounds.data, "stopy", _stopy, Math.max); + this.updateBounds(_startx, _starty, _stopx, _stopy); + }, + bumpVerticalPos: function(bump) { + this.verticalPos = this.verticalPos + bump; + this.data.stopy = this.verticalPos; + }, + getVerticalPos: function() { + return this.verticalPos; + }, + getBounds: function() { + return this.data; + } +}; +const fills = conf.sectionFills; +const textColours = conf.sectionColours; +const drawTasks = function(diagram2, tasks2, verticalPos) { + const conf2 = getConfig().journey; + let lastSection = ""; + const sectionVHeight = conf2.height * 2 + conf2.diagramMarginY; + const taskPos = verticalPos + sectionVHeight; + let sectionNumber = 0; + let fill = "#CCC"; + let colour = "black"; + let num = 0; + for (const [i, task] of tasks2.entries()) { + if (lastSection !== task.section) { + fill = fills[sectionNumber % fills.length]; + num = sectionNumber % fills.length; + colour = textColours[sectionNumber % textColours.length]; + let taskInSectionCount = 0; + const currentSection2 = task.section; + for (let taskIndex = i; taskIndex < tasks2.length; taskIndex++) { + if (tasks2[taskIndex].section == currentSection2) { + taskInSectionCount = taskInSectionCount + 1; + } else { + break; + } + } + const section = { + x: i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN, + y: 50, + text: task.section, + fill, + num, + colour, + taskCount: taskInSectionCount + }; + svgDraw.drawSection(diagram2, section, conf2); + lastSection = task.section; + sectionNumber++; + } + const taskActors = task.people.reduce((acc, actorName) => { + if (actors[actorName]) { + acc[actorName] = actors[actorName]; + } + return acc; + }, {}); + task.x = i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN; + task.y = taskPos; + task.width = conf2.diagramMarginX; + task.height = conf2.diagramMarginY; + task.colour = colour; + task.fill = fill; + task.num = num; + task.actors = taskActors; + svgDraw.drawTask(diagram2, task, conf2); + bounds.insert(task.x, task.y, task.x + task.width + conf2.taskMargin, 300 + 5 * 30); + } +}; +const renderer = { + setConf, + draw +}; +const diagram = { + parser: parser$1, + db, + renderer, + styles, + init: (cnf) => { + renderer.setConf(cnf.journey); + db.clear(); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/layout-163b9689.js b/assets/lib/mermaid/layout-163b9689.js new file mode 100644 index 000000000..5781ad28c --- /dev/null +++ b/assets/lib/mermaid/layout-163b9689.js @@ -0,0 +1,2314 @@ +import { a as isSymbol, b as baseFlatten, c as baseClone, d as baseIteratee, k as keys, e as baseFindIndex, g as baseEach, j as arrayMap, l as castFunction, m as baseForOwn, n as castPath, t as toKey, o as baseGet, p as hasIn, q as toString, f as forEach, G as Graph, h as has, i as isUndefined, r as filter, v as values, s as reduce } from "./graph-fe24fab6.js"; +import { a8 as isObject, a9 as setToString, aa as overRest, ab as root, ac as baseRest, ad as isIterateeCall, ae as keysIn, af as eq, ag as isArrayLike, ah as isArray, ai as baseFor, aj as baseAssignValue, ak as identity, al as isIndex, am as assignValue, an as baseUnary, ao as constant, ap as merge } from "./mermaid-dcacb631.js"; +var reWhitespace = /\s/; +function trimmedEndIndex(string) { + var index = string.length; + while (index-- && reWhitespace.test(string.charAt(index))) { + } + return index; +} +var reTrimStart = /^\s+/; +function baseTrim(string) { + return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string; +} +var NAN = 0 / 0; +var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; +var reIsBinary = /^0b[01]+$/i; +var reIsOctal = /^0o[0-7]+$/i; +var freeParseInt = parseInt; +function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = baseTrim(value); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; +} +var INFINITY = 1 / 0, MAX_INTEGER = 17976931348623157e292; +function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = value < 0 ? -1 : 1; + return sign * MAX_INTEGER; + } + return value === value ? value : 0; +} +function toInteger(value) { + var result = toFinite(value), remainder = result % 1; + return result === result ? remainder ? result - remainder : result : 0; +} +function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; +} +function flatRest(func) { + return setToString(overRest(func, void 0, flatten), func + ""); +} +var CLONE_DEEP_FLAG = 1, CLONE_SYMBOLS_FLAG = 4; +function cloneDeep(value) { + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); +} +var now = function() { + return root.Date.now(); +}; +const now$1 = now; +var objectProto = Object.prototype; +var hasOwnProperty = objectProto.hasOwnProperty; +var defaults = baseRest(function(object, sources) { + object = Object(object); + var index = -1; + var length = sources.length; + var guard = length > 2 ? sources[2] : void 0; + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + length = 1; + } + while (++index < length) { + var source = sources[index]; + var props = keysIn(source); + var propsIndex = -1; + var propsLength = props.length; + while (++propsIndex < propsLength) { + var key = props[propsIndex]; + var value = object[key]; + if (value === void 0 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) { + object[key] = source[key]; + } + } + } + return object; +}); +const defaults$1 = defaults; +function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : void 0; +} +function createFind(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object(collection); + if (!isArrayLike(collection)) { + var iteratee = baseIteratee(predicate); + collection = keys(collection); + predicate = function(key) { + return iteratee(iterable[key], key, iterable); + }; + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee ? collection[index] : index] : void 0; + }; +} +var nativeMax$1 = Math.max; +function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax$1(length + index, 0); + } + return baseFindIndex(array, baseIteratee(predicate), index); +} +var find = createFind(findIndex); +const find$1 = find; +function baseMap(collection, iteratee) { + var index = -1, result = isArrayLike(collection) ? Array(collection.length) : []; + baseEach(collection, function(value, key, collection2) { + result[++index] = iteratee(value, key, collection2); + }); + return result; +} +function map(collection, iteratee) { + var func = isArray(collection) ? arrayMap : baseMap; + return func(collection, baseIteratee(iteratee)); +} +function forIn(object, iteratee) { + return object == null ? object : baseFor(object, castFunction(iteratee), keysIn); +} +function forOwn(object, iteratee) { + return object && baseForOwn(object, castFunction(iteratee)); +} +function baseGt(value, other) { + return value > other; +} +function baseLt(value, other) { + return value < other; +} +function mapValues(object, iteratee) { + var result = {}; + iteratee = baseIteratee(iteratee); + baseForOwn(object, function(value, key, object2) { + baseAssignValue(result, key, iteratee(value, key, object2)); + }); + return result; +} +function baseExtremum(array, iteratee, comparator) { + var index = -1, length = array.length; + while (++index < length) { + var value = array[index], current = iteratee(value); + if (current != null && (computed === void 0 ? current === current && !isSymbol(current) : comparator(current, computed))) { + var computed = current, result = value; + } + } + return result; +} +function max(array) { + return array && array.length ? baseExtremum(array, identity, baseGt) : void 0; +} +function min(array) { + return array && array.length ? baseExtremum(array, identity, baseLt) : void 0; +} +function minBy(array, iteratee) { + return array && array.length ? baseExtremum(array, baseIteratee(iteratee), baseLt) : void 0; +} +function baseSet(object, path, value, customizer) { + if (!isObject(object)) { + return object; + } + path = castPath(path, object); + var index = -1, length = path.length, lastIndex = length - 1, nested = object; + while (nested != null && ++index < length) { + var key = toKey(path[index]), newValue = value; + if (key === "__proto__" || key === "constructor" || key === "prototype") { + return object; + } + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : void 0; + if (newValue === void 0) { + newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {}; + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; +} +function basePickBy(object, paths, predicate) { + var index = -1, length = paths.length, result = {}; + while (++index < length) { + var path = paths[index], value = baseGet(object, path); + if (predicate(value, path)) { + baseSet(result, castPath(path, object), value); + } + } + return result; +} +function baseSortBy(array, comparer) { + var length = array.length; + array.sort(comparer); + while (length--) { + array[length] = array[length].value; + } + return array; +} +function compareAscending(value, other) { + if (value !== other) { + var valIsDefined = value !== void 0, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value); + var othIsDefined = other !== void 0, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other); + if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) { + return 1; + } + if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) { + return -1; + } + } + return 0; +} +function compareMultiple(object, other, orders) { + var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length; + while (++index < length) { + var result = compareAscending(objCriteria[index], othCriteria[index]); + if (result) { + if (index >= ordersLength) { + return result; + } + var order2 = orders[index]; + return result * (order2 == "desc" ? -1 : 1); + } + } + return object.index - other.index; +} +function baseOrderBy(collection, iteratees, orders) { + if (iteratees.length) { + iteratees = arrayMap(iteratees, function(iteratee) { + if (isArray(iteratee)) { + return function(value) { + return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee); + }; + } + return iteratee; + }); + } else { + iteratees = [identity]; + } + var index = -1; + iteratees = arrayMap(iteratees, baseUnary(baseIteratee)); + var result = baseMap(collection, function(value, key, collection2) { + var criteria = arrayMap(iteratees, function(iteratee) { + return iteratee(value); + }); + return { "criteria": criteria, "index": ++index, "value": value }; + }); + return baseSortBy(result, function(object, other) { + return compareMultiple(object, other, orders); + }); +} +function basePick(object, paths) { + return basePickBy(object, paths, function(value, path) { + return hasIn(object, path); + }); +} +var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); +}); +const pick$1 = pick; +var nativeCeil = Math.ceil, nativeMax = Math.max; +function baseRange(start, end, step, fromRight) { + var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result = Array(length); + while (length--) { + result[fromRight ? length : ++index] = start; + start += step; + } + return result; +} +function createRange(fromRight) { + return function(start, end, step) { + if (step && typeof step != "number" && isIterateeCall(start, end, step)) { + end = step = void 0; + } + start = toFinite(start); + if (end === void 0) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + step = step === void 0 ? start < end ? 1 : -1 : toFinite(step); + return baseRange(start, end, step, fromRight); + }; +} +var range = createRange(); +const range$1 = range; +var sortBy = baseRest(function(collection, iteratees) { + if (collection == null) { + return []; + } + var length = iteratees.length; + if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { + iteratees = []; + } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { + iteratees = [iteratees[0]]; + } + return baseOrderBy(collection, baseFlatten(iteratees, 1), []); +}); +const sortBy$1 = sortBy; +var idCounter = 0; +function uniqueId(prefix) { + var id = ++idCounter; + return toString(prefix) + id; +} +function baseZipObject(props, values2, assignFunc) { + var index = -1, length = props.length, valsLength = values2.length, result = {}; + while (++index < length) { + var value = index < valsLength ? values2[index] : void 0; + assignFunc(result, props[index], value); + } + return result; +} +function zipObject(props, values2) { + return baseZipObject(props || [], values2 || [], assignValue); +} +class List { + constructor() { + var sentinel = {}; + sentinel._next = sentinel._prev = sentinel; + this._sentinel = sentinel; + } + dequeue() { + var sentinel = this._sentinel; + var entry = sentinel._prev; + if (entry !== sentinel) { + unlink(entry); + return entry; + } + } + enqueue(entry) { + var sentinel = this._sentinel; + if (entry._prev && entry._next) { + unlink(entry); + } + entry._next = sentinel._next; + sentinel._next._prev = entry; + sentinel._next = entry; + entry._prev = sentinel; + } + toString() { + var strs = []; + var sentinel = this._sentinel; + var curr = sentinel._prev; + while (curr !== sentinel) { + strs.push(JSON.stringify(curr, filterOutLinks)); + curr = curr._prev; + } + return "[" + strs.join(", ") + "]"; + } +} +function unlink(entry) { + entry._prev._next = entry._next; + entry._next._prev = entry._prev; + delete entry._next; + delete entry._prev; +} +function filterOutLinks(k, v) { + if (k !== "_next" && k !== "_prev") { + return v; + } +} +var DEFAULT_WEIGHT_FN = constant(1); +function greedyFAS(g, weightFn) { + if (g.nodeCount() <= 1) { + return []; + } + var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN); + var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx); + return flatten( + map(results, function(e) { + return g.outEdges(e.v, e.w); + }) + ); +} +function doGreedyFAS(g, buckets, zeroIdx) { + var results = []; + var sources = buckets[buckets.length - 1]; + var sinks = buckets[0]; + var entry; + while (g.nodeCount()) { + while (entry = sinks.dequeue()) { + removeNode(g, buckets, zeroIdx, entry); + } + while (entry = sources.dequeue()) { + removeNode(g, buckets, zeroIdx, entry); + } + if (g.nodeCount()) { + for (var i = buckets.length - 2; i > 0; --i) { + entry = buckets[i].dequeue(); + if (entry) { + results = results.concat(removeNode(g, buckets, zeroIdx, entry, true)); + break; + } + } + } + } + return results; +} +function removeNode(g, buckets, zeroIdx, entry, collectPredecessors) { + var results = collectPredecessors ? [] : void 0; + forEach(g.inEdges(entry.v), function(edge) { + var weight = g.edge(edge); + var uEntry = g.node(edge.v); + if (collectPredecessors) { + results.push({ v: edge.v, w: edge.w }); + } + uEntry.out -= weight; + assignBucket(buckets, zeroIdx, uEntry); + }); + forEach(g.outEdges(entry.v), function(edge) { + var weight = g.edge(edge); + var w = edge.w; + var wEntry = g.node(w); + wEntry["in"] -= weight; + assignBucket(buckets, zeroIdx, wEntry); + }); + g.removeNode(entry.v); + return results; +} +function buildState(g, weightFn) { + var fasGraph = new Graph(); + var maxIn = 0; + var maxOut = 0; + forEach(g.nodes(), function(v) { + fasGraph.setNode(v, { v, in: 0, out: 0 }); + }); + forEach(g.edges(), function(e) { + var prevWeight = fasGraph.edge(e.v, e.w) || 0; + var weight = weightFn(e); + var edgeWeight = prevWeight + weight; + fasGraph.setEdge(e.v, e.w, edgeWeight); + maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight); + maxIn = Math.max(maxIn, fasGraph.node(e.w)["in"] += weight); + }); + var buckets = range$1(maxOut + maxIn + 3).map(function() { + return new List(); + }); + var zeroIdx = maxIn + 1; + forEach(fasGraph.nodes(), function(v) { + assignBucket(buckets, zeroIdx, fasGraph.node(v)); + }); + return { graph: fasGraph, buckets, zeroIdx }; +} +function assignBucket(buckets, zeroIdx, entry) { + if (!entry.out) { + buckets[0].enqueue(entry); + } else if (!entry["in"]) { + buckets[buckets.length - 1].enqueue(entry); + } else { + buckets[entry.out - entry["in"] + zeroIdx].enqueue(entry); + } +} +function run$2(g) { + var fas = g.graph().acyclicer === "greedy" ? greedyFAS(g, weightFn(g)) : dfsFAS(g); + forEach(fas, function(e) { + var label = g.edge(e); + g.removeEdge(e); + label.forwardName = e.name; + label.reversed = true; + g.setEdge(e.w, e.v, label, uniqueId("rev")); + }); + function weightFn(g2) { + return function(e) { + return g2.edge(e).weight; + }; + } +} +function dfsFAS(g) { + var fas = []; + var stack = {}; + var visited = {}; + function dfs2(v) { + if (has(visited, v)) { + return; + } + visited[v] = true; + stack[v] = true; + forEach(g.outEdges(v), function(e) { + if (has(stack, e.w)) { + fas.push(e); + } else { + dfs2(e.w); + } + }); + delete stack[v]; + } + forEach(g.nodes(), dfs2); + return fas; +} +function undo$2(g) { + forEach(g.edges(), function(e) { + var label = g.edge(e); + if (label.reversed) { + g.removeEdge(e); + var forwardName = label.forwardName; + delete label.reversed; + delete label.forwardName; + g.setEdge(e.w, e.v, label, forwardName); + } + }); +} +function addDummyNode(g, type, attrs, name) { + var v; + do { + v = uniqueId(name); + } while (g.hasNode(v)); + attrs.dummy = type; + g.setNode(v, attrs); + return v; +} +function simplify(g) { + var simplified = new Graph().setGraph(g.graph()); + forEach(g.nodes(), function(v) { + simplified.setNode(v, g.node(v)); + }); + forEach(g.edges(), function(e) { + var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 }; + var label = g.edge(e); + simplified.setEdge(e.v, e.w, { + weight: simpleLabel.weight + label.weight, + minlen: Math.max(simpleLabel.minlen, label.minlen) + }); + }); + return simplified; +} +function asNonCompoundGraph(g) { + var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph()); + forEach(g.nodes(), function(v) { + if (!g.children(v).length) { + simplified.setNode(v, g.node(v)); + } + }); + forEach(g.edges(), function(e) { + simplified.setEdge(e, g.edge(e)); + }); + return simplified; +} +function intersectRect(rect, point) { + var x = rect.x; + var y = rect.y; + var dx = point.x - x; + var dy = point.y - y; + var w = rect.width / 2; + var h = rect.height / 2; + if (!dx && !dy) { + throw new Error("Not possible to find intersection inside of the rectangle"); + } + var sx, sy; + if (Math.abs(dy) * w > Math.abs(dx) * h) { + if (dy < 0) { + h = -h; + } + sx = h * dx / dy; + sy = h; + } else { + if (dx < 0) { + w = -w; + } + sx = w; + sy = w * dy / dx; + } + return { x: x + sx, y: y + sy }; +} +function buildLayerMatrix(g) { + var layering = map(range$1(maxRank(g) + 1), function() { + return []; + }); + forEach(g.nodes(), function(v) { + var node = g.node(v); + var rank2 = node.rank; + if (!isUndefined(rank2)) { + layering[rank2][node.order] = v; + } + }); + return layering; +} +function normalizeRanks(g) { + var min$1 = min( + map(g.nodes(), function(v) { + return g.node(v).rank; + }) + ); + forEach(g.nodes(), function(v) { + var node = g.node(v); + if (has(node, "rank")) { + node.rank -= min$1; + } + }); +} +function removeEmptyRanks(g) { + var offset = min( + map(g.nodes(), function(v) { + return g.node(v).rank; + }) + ); + var layers = []; + forEach(g.nodes(), function(v) { + var rank2 = g.node(v).rank - offset; + if (!layers[rank2]) { + layers[rank2] = []; + } + layers[rank2].push(v); + }); + var delta = 0; + var nodeRankFactor = g.graph().nodeRankFactor; + forEach(layers, function(vs, i) { + if (isUndefined(vs) && i % nodeRankFactor !== 0) { + --delta; + } else if (delta) { + forEach(vs, function(v) { + g.node(v).rank += delta; + }); + } + }); +} +function addBorderNode$1(g, prefix, rank2, order2) { + var node = { + width: 0, + height: 0 + }; + if (arguments.length >= 4) { + node.rank = rank2; + node.order = order2; + } + return addDummyNode(g, "border", node, prefix); +} +function maxRank(g) { + return max( + map(g.nodes(), function(v) { + var rank2 = g.node(v).rank; + if (!isUndefined(rank2)) { + return rank2; + } + }) + ); +} +function partition(collection, fn) { + var result = { lhs: [], rhs: [] }; + forEach(collection, function(value) { + if (fn(value)) { + result.lhs.push(value); + } else { + result.rhs.push(value); + } + }); + return result; +} +function time(name, fn) { + var start = now$1(); + try { + return fn(); + } finally { + console.log(name + " time: " + (now$1() - start) + "ms"); + } +} +function notime(name, fn) { + return fn(); +} +function addBorderSegments(g) { + function dfs2(v) { + var children = g.children(v); + var node = g.node(v); + if (children.length) { + forEach(children, dfs2); + } + if (has(node, "minRank")) { + node.borderLeft = []; + node.borderRight = []; + for (var rank2 = node.minRank, maxRank2 = node.maxRank + 1; rank2 < maxRank2; ++rank2) { + addBorderNode(g, "borderLeft", "_bl", v, node, rank2); + addBorderNode(g, "borderRight", "_br", v, node, rank2); + } + } + } + forEach(g.children(), dfs2); +} +function addBorderNode(g, prop, prefix, sg, sgNode, rank2) { + var label = { width: 0, height: 0, rank: rank2, borderType: prop }; + var prev = sgNode[prop][rank2 - 1]; + var curr = addDummyNode(g, "border", label, prefix); + sgNode[prop][rank2] = curr; + g.setParent(curr, sg); + if (prev) { + g.setEdge(prev, curr, { weight: 1 }); + } +} +function adjust(g) { + var rankDir = g.graph().rankdir.toLowerCase(); + if (rankDir === "lr" || rankDir === "rl") { + swapWidthHeight(g); + } +} +function undo$1(g) { + var rankDir = g.graph().rankdir.toLowerCase(); + if (rankDir === "bt" || rankDir === "rl") { + reverseY(g); + } + if (rankDir === "lr" || rankDir === "rl") { + swapXY(g); + swapWidthHeight(g); + } +} +function swapWidthHeight(g) { + forEach(g.nodes(), function(v) { + swapWidthHeightOne(g.node(v)); + }); + forEach(g.edges(), function(e) { + swapWidthHeightOne(g.edge(e)); + }); +} +function swapWidthHeightOne(attrs) { + var w = attrs.width; + attrs.width = attrs.height; + attrs.height = w; +} +function reverseY(g) { + forEach(g.nodes(), function(v) { + reverseYOne(g.node(v)); + }); + forEach(g.edges(), function(e) { + var edge = g.edge(e); + forEach(edge.points, reverseYOne); + if (has(edge, "y")) { + reverseYOne(edge); + } + }); +} +function reverseYOne(attrs) { + attrs.y = -attrs.y; +} +function swapXY(g) { + forEach(g.nodes(), function(v) { + swapXYOne(g.node(v)); + }); + forEach(g.edges(), function(e) { + var edge = g.edge(e); + forEach(edge.points, swapXYOne); + if (has(edge, "x")) { + swapXYOne(edge); + } + }); +} +function swapXYOne(attrs) { + var x = attrs.x; + attrs.x = attrs.y; + attrs.y = x; +} +function run$1(g) { + g.graph().dummyChains = []; + forEach(g.edges(), function(edge) { + normalizeEdge(g, edge); + }); +} +function normalizeEdge(g, e) { + var v = e.v; + var vRank = g.node(v).rank; + var w = e.w; + var wRank = g.node(w).rank; + var name = e.name; + var edgeLabel = g.edge(e); + var labelRank = edgeLabel.labelRank; + if (wRank === vRank + 1) + return; + g.removeEdge(e); + var dummy, attrs, i; + for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) { + edgeLabel.points = []; + attrs = { + width: 0, + height: 0, + edgeLabel, + edgeObj: e, + rank: vRank + }; + dummy = addDummyNode(g, "edge", attrs, "_d"); + if (vRank === labelRank) { + attrs.width = edgeLabel.width; + attrs.height = edgeLabel.height; + attrs.dummy = "edge-label"; + attrs.labelpos = edgeLabel.labelpos; + } + g.setEdge(v, dummy, { weight: edgeLabel.weight }, name); + if (i === 0) { + g.graph().dummyChains.push(dummy); + } + v = dummy; + } + g.setEdge(v, w, { weight: edgeLabel.weight }, name); +} +function undo(g) { + forEach(g.graph().dummyChains, function(v) { + var node = g.node(v); + var origLabel = node.edgeLabel; + var w; + g.setEdge(node.edgeObj, origLabel); + while (node.dummy) { + w = g.successors(v)[0]; + g.removeNode(v); + origLabel.points.push({ x: node.x, y: node.y }); + if (node.dummy === "edge-label") { + origLabel.x = node.x; + origLabel.y = node.y; + origLabel.width = node.width; + origLabel.height = node.height; + } + v = w; + node = g.node(v); + } + }); +} +function longestPath(g) { + var visited = {}; + function dfs2(v) { + var label = g.node(v); + if (has(visited, v)) { + return label.rank; + } + visited[v] = true; + var rank2 = min( + map(g.outEdges(v), function(e) { + return dfs2(e.w) - g.edge(e).minlen; + }) + ); + if (rank2 === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3 + rank2 === void 0 || // return value of _.map([]) for Lodash 4 + rank2 === null) { + rank2 = 0; + } + return label.rank = rank2; + } + forEach(g.sources(), dfs2); +} +function slack(g, e) { + return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen; +} +function feasibleTree(g) { + var t = new Graph({ directed: false }); + var start = g.nodes()[0]; + var size = g.nodeCount(); + t.setNode(start, {}); + var edge, delta; + while (tightTree(t, g) < size) { + edge = findMinSlackEdge(t, g); + delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge); + shiftRanks(t, g, delta); + } + return t; +} +function tightTree(t, g) { + function dfs2(v) { + forEach(g.nodeEdges(v), function(e) { + var edgeV = e.v, w = v === edgeV ? e.w : edgeV; + if (!t.hasNode(w) && !slack(g, e)) { + t.setNode(w, {}); + t.setEdge(v, w, {}); + dfs2(w); + } + }); + } + forEach(t.nodes(), dfs2); + return t.nodeCount(); +} +function findMinSlackEdge(t, g) { + return minBy(g.edges(), function(e) { + if (t.hasNode(e.v) !== t.hasNode(e.w)) { + return slack(g, e); + } + }); +} +function shiftRanks(t, g, delta) { + forEach(t.nodes(), function(v) { + g.node(v).rank += delta; + }); +} +function CycleException() { +} +CycleException.prototype = new Error(); +function dfs$1(g, vs, order2) { + if (!isArray(vs)) { + vs = [vs]; + } + var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g); + var acc = []; + var visited = {}; + forEach(vs, function(v) { + if (!g.hasNode(v)) { + throw new Error("Graph does not have node: " + v); + } + doDfs(g, v, order2 === "post", visited, navigation, acc); + }); + return acc; +} +function doDfs(g, v, postorder2, visited, navigation, acc) { + if (!has(visited, v)) { + visited[v] = true; + if (!postorder2) { + acc.push(v); + } + forEach(navigation(v), function(w) { + doDfs(g, w, postorder2, visited, navigation, acc); + }); + if (postorder2) { + acc.push(v); + } + } +} +function postorder$1(g, vs) { + return dfs$1(g, vs, "post"); +} +function preorder(g, vs) { + return dfs$1(g, vs, "pre"); +} +networkSimplex.initLowLimValues = initLowLimValues; +networkSimplex.initCutValues = initCutValues; +networkSimplex.calcCutValue = calcCutValue; +networkSimplex.leaveEdge = leaveEdge; +networkSimplex.enterEdge = enterEdge; +networkSimplex.exchangeEdges = exchangeEdges; +function networkSimplex(g) { + g = simplify(g); + longestPath(g); + var t = feasibleTree(g); + initLowLimValues(t); + initCutValues(t, g); + var e, f; + while (e = leaveEdge(t)) { + f = enterEdge(t, g, e); + exchangeEdges(t, g, e, f); + } +} +function initCutValues(t, g) { + var vs = postorder$1(t, t.nodes()); + vs = vs.slice(0, vs.length - 1); + forEach(vs, function(v) { + assignCutValue(t, g, v); + }); +} +function assignCutValue(t, g, child) { + var childLab = t.node(child); + var parent = childLab.parent; + t.edge(child, parent).cutvalue = calcCutValue(t, g, child); +} +function calcCutValue(t, g, child) { + var childLab = t.node(child); + var parent = childLab.parent; + var childIsTail = true; + var graphEdge = g.edge(child, parent); + var cutValue = 0; + if (!graphEdge) { + childIsTail = false; + graphEdge = g.edge(parent, child); + } + cutValue = graphEdge.weight; + forEach(g.nodeEdges(child), function(e) { + var isOutEdge = e.v === child, other = isOutEdge ? e.w : e.v; + if (other !== parent) { + var pointsToHead = isOutEdge === childIsTail, otherWeight = g.edge(e).weight; + cutValue += pointsToHead ? otherWeight : -otherWeight; + if (isTreeEdge(t, child, other)) { + var otherCutValue = t.edge(child, other).cutvalue; + cutValue += pointsToHead ? -otherCutValue : otherCutValue; + } + } + }); + return cutValue; +} +function initLowLimValues(tree, root2) { + if (arguments.length < 2) { + root2 = tree.nodes()[0]; + } + dfsAssignLowLim(tree, {}, 1, root2); +} +function dfsAssignLowLim(tree, visited, nextLim, v, parent) { + var low = nextLim; + var label = tree.node(v); + visited[v] = true; + forEach(tree.neighbors(v), function(w) { + if (!has(visited, w)) { + nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v); + } + }); + label.low = low; + label.lim = nextLim++; + if (parent) { + label.parent = parent; + } else { + delete label.parent; + } + return nextLim; +} +function leaveEdge(tree) { + return find$1(tree.edges(), function(e) { + return tree.edge(e).cutvalue < 0; + }); +} +function enterEdge(t, g, edge) { + var v = edge.v; + var w = edge.w; + if (!g.hasEdge(v, w)) { + v = edge.w; + w = edge.v; + } + var vLabel = t.node(v); + var wLabel = t.node(w); + var tailLabel = vLabel; + var flip = false; + if (vLabel.lim > wLabel.lim) { + tailLabel = wLabel; + flip = true; + } + var candidates = filter(g.edges(), function(edge2) { + return flip === isDescendant(t, t.node(edge2.v), tailLabel) && flip !== isDescendant(t, t.node(edge2.w), tailLabel); + }); + return minBy(candidates, function(edge2) { + return slack(g, edge2); + }); +} +function exchangeEdges(t, g, e, f) { + var v = e.v; + var w = e.w; + t.removeEdge(v, w); + t.setEdge(f.v, f.w, {}); + initLowLimValues(t); + initCutValues(t, g); + updateRanks(t, g); +} +function updateRanks(t, g) { + var root2 = find$1(t.nodes(), function(v) { + return !g.node(v).parent; + }); + var vs = preorder(t, root2); + vs = vs.slice(1); + forEach(vs, function(v) { + var parent = t.node(v).parent, edge = g.edge(v, parent), flipped = false; + if (!edge) { + edge = g.edge(parent, v); + flipped = true; + } + g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen); + }); +} +function isTreeEdge(tree, u, v) { + return tree.hasEdge(u, v); +} +function isDescendant(tree, vLabel, rootLabel) { + return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim; +} +function rank(g) { + switch (g.graph().ranker) { + case "network-simplex": + networkSimplexRanker(g); + break; + case "tight-tree": + tightTreeRanker(g); + break; + case "longest-path": + longestPathRanker(g); + break; + default: + networkSimplexRanker(g); + } +} +var longestPathRanker = longestPath; +function tightTreeRanker(g) { + longestPath(g); + feasibleTree(g); +} +function networkSimplexRanker(g) { + networkSimplex(g); +} +function run(g) { + var root2 = addDummyNode(g, "root", {}, "_root"); + var depths = treeDepths(g); + var height = max(values(depths)) - 1; + var nodeSep = 2 * height + 1; + g.graph().nestingRoot = root2; + forEach(g.edges(), function(e) { + g.edge(e).minlen *= nodeSep; + }); + var weight = sumWeights(g) + 1; + forEach(g.children(), function(child) { + dfs(g, root2, nodeSep, weight, height, depths, child); + }); + g.graph().nodeRankFactor = nodeSep; +} +function dfs(g, root2, nodeSep, weight, height, depths, v) { + var children = g.children(v); + if (!children.length) { + if (v !== root2) { + g.setEdge(root2, v, { weight: 0, minlen: nodeSep }); + } + return; + } + var top = addBorderNode$1(g, "_bt"); + var bottom = addBorderNode$1(g, "_bb"); + var label = g.node(v); + g.setParent(top, v); + label.borderTop = top; + g.setParent(bottom, v); + label.borderBottom = bottom; + forEach(children, function(child) { + dfs(g, root2, nodeSep, weight, height, depths, child); + var childNode = g.node(child); + var childTop = childNode.borderTop ? childNode.borderTop : child; + var childBottom = childNode.borderBottom ? childNode.borderBottom : child; + var thisWeight = childNode.borderTop ? weight : 2 * weight; + var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1; + g.setEdge(top, childTop, { + weight: thisWeight, + minlen, + nestingEdge: true + }); + g.setEdge(childBottom, bottom, { + weight: thisWeight, + minlen, + nestingEdge: true + }); + }); + if (!g.parent(v)) { + g.setEdge(root2, top, { weight: 0, minlen: height + depths[v] }); + } +} +function treeDepths(g) { + var depths = {}; + function dfs2(v, depth) { + var children = g.children(v); + if (children && children.length) { + forEach(children, function(child) { + dfs2(child, depth + 1); + }); + } + depths[v] = depth; + } + forEach(g.children(), function(v) { + dfs2(v, 1); + }); + return depths; +} +function sumWeights(g) { + return reduce( + g.edges(), + function(acc, e) { + return acc + g.edge(e).weight; + }, + 0 + ); +} +function cleanup(g) { + var graphLabel = g.graph(); + g.removeNode(graphLabel.nestingRoot); + delete graphLabel.nestingRoot; + forEach(g.edges(), function(e) { + var edge = g.edge(e); + if (edge.nestingEdge) { + g.removeEdge(e); + } + }); +} +function addSubgraphConstraints(g, cg, vs) { + var prev = {}, rootPrev; + forEach(vs, function(v) { + var child = g.parent(v), parent, prevChild; + while (child) { + parent = g.parent(child); + if (parent) { + prevChild = prev[parent]; + prev[parent] = child; + } else { + prevChild = rootPrev; + rootPrev = child; + } + if (prevChild && prevChild !== child) { + cg.setEdge(prevChild, child); + return; + } + child = parent; + } + }); +} +function buildLayerGraph(g, rank2, relationship) { + var root2 = createRootNode(g), result = new Graph({ compound: true }).setGraph({ root: root2 }).setDefaultNodeLabel(function(v) { + return g.node(v); + }); + forEach(g.nodes(), function(v) { + var node = g.node(v), parent = g.parent(v); + if (node.rank === rank2 || node.minRank <= rank2 && rank2 <= node.maxRank) { + result.setNode(v); + result.setParent(v, parent || root2); + forEach(g[relationship](v), function(e) { + var u = e.v === v ? e.w : e.v, edge = result.edge(u, v), weight = !isUndefined(edge) ? edge.weight : 0; + result.setEdge(u, v, { weight: g.edge(e).weight + weight }); + }); + if (has(node, "minRank")) { + result.setNode(v, { + borderLeft: node.borderLeft[rank2], + borderRight: node.borderRight[rank2] + }); + } + } + }); + return result; +} +function createRootNode(g) { + var v; + while (g.hasNode(v = uniqueId("_root"))) + ; + return v; +} +function crossCount(g, layering) { + var cc = 0; + for (var i = 1; i < layering.length; ++i) { + cc += twoLayerCrossCount(g, layering[i - 1], layering[i]); + } + return cc; +} +function twoLayerCrossCount(g, northLayer, southLayer) { + var southPos = zipObject( + southLayer, + map(southLayer, function(v, i) { + return i; + }) + ); + var southEntries = flatten( + map(northLayer, function(v) { + return sortBy$1( + map(g.outEdges(v), function(e) { + return { pos: southPos[e.w], weight: g.edge(e).weight }; + }), + "pos" + ); + }) + ); + var firstIndex = 1; + while (firstIndex < southLayer.length) + firstIndex <<= 1; + var treeSize = 2 * firstIndex - 1; + firstIndex -= 1; + var tree = map(new Array(treeSize), function() { + return 0; + }); + var cc = 0; + forEach( + // @ts-expect-error + southEntries.forEach(function(entry) { + var index = entry.pos + firstIndex; + tree[index] += entry.weight; + var weightSum = 0; + while (index > 0) { + if (index % 2) { + weightSum += tree[index + 1]; + } + index = index - 1 >> 1; + tree[index] += entry.weight; + } + cc += entry.weight * weightSum; + }) + ); + return cc; +} +function initOrder(g) { + var visited = {}; + var simpleNodes = filter(g.nodes(), function(v) { + return !g.children(v).length; + }); + var maxRank2 = max( + map(simpleNodes, function(v) { + return g.node(v).rank; + }) + ); + var layers = map(range$1(maxRank2 + 1), function() { + return []; + }); + function dfs2(v) { + if (has(visited, v)) + return; + visited[v] = true; + var node = g.node(v); + layers[node.rank].push(v); + forEach(g.successors(v), dfs2); + } + var orderedVs = sortBy$1(simpleNodes, function(v) { + return g.node(v).rank; + }); + forEach(orderedVs, dfs2); + return layers; +} +function barycenter(g, movable) { + return map(movable, function(v) { + var inV = g.inEdges(v); + if (!inV.length) { + return { v }; + } else { + var result = reduce( + inV, + function(acc, e) { + var edge = g.edge(e), nodeU = g.node(e.v); + return { + sum: acc.sum + edge.weight * nodeU.order, + weight: acc.weight + edge.weight + }; + }, + { sum: 0, weight: 0 } + ); + return { + v, + barycenter: result.sum / result.weight, + weight: result.weight + }; + } + }); +} +function resolveConflicts(entries, cg) { + var mappedEntries = {}; + forEach(entries, function(entry, i) { + var tmp = mappedEntries[entry.v] = { + indegree: 0, + in: [], + out: [], + vs: [entry.v], + i + }; + if (!isUndefined(entry.barycenter)) { + tmp.barycenter = entry.barycenter; + tmp.weight = entry.weight; + } + }); + forEach(cg.edges(), function(e) { + var entryV = mappedEntries[e.v]; + var entryW = mappedEntries[e.w]; + if (!isUndefined(entryV) && !isUndefined(entryW)) { + entryW.indegree++; + entryV.out.push(mappedEntries[e.w]); + } + }); + var sourceSet = filter(mappedEntries, function(entry) { + return !entry.indegree; + }); + return doResolveConflicts(sourceSet); +} +function doResolveConflicts(sourceSet) { + var entries = []; + function handleIn(vEntry) { + return function(uEntry) { + if (uEntry.merged) { + return; + } + if (isUndefined(uEntry.barycenter) || isUndefined(vEntry.barycenter) || uEntry.barycenter >= vEntry.barycenter) { + mergeEntries(vEntry, uEntry); + } + }; + } + function handleOut(vEntry) { + return function(wEntry) { + wEntry["in"].push(vEntry); + if (--wEntry.indegree === 0) { + sourceSet.push(wEntry); + } + }; + } + while (sourceSet.length) { + var entry = sourceSet.pop(); + entries.push(entry); + forEach(entry["in"].reverse(), handleIn(entry)); + forEach(entry.out, handleOut(entry)); + } + return map( + filter(entries, function(entry2) { + return !entry2.merged; + }), + function(entry2) { + return pick$1(entry2, ["vs", "i", "barycenter", "weight"]); + } + ); +} +function mergeEntries(target, source) { + var sum = 0; + var weight = 0; + if (target.weight) { + sum += target.barycenter * target.weight; + weight += target.weight; + } + if (source.weight) { + sum += source.barycenter * source.weight; + weight += source.weight; + } + target.vs = source.vs.concat(target.vs); + target.barycenter = sum / weight; + target.weight = weight; + target.i = Math.min(source.i, target.i); + source.merged = true; +} +function sort(entries, biasRight) { + var parts = partition(entries, function(entry) { + return has(entry, "barycenter"); + }); + var sortable = parts.lhs, unsortable = sortBy$1(parts.rhs, function(entry) { + return -entry.i; + }), vs = [], sum = 0, weight = 0, vsIndex = 0; + sortable.sort(compareWithBias(!!biasRight)); + vsIndex = consumeUnsortable(vs, unsortable, vsIndex); + forEach(sortable, function(entry) { + vsIndex += entry.vs.length; + vs.push(entry.vs); + sum += entry.barycenter * entry.weight; + weight += entry.weight; + vsIndex = consumeUnsortable(vs, unsortable, vsIndex); + }); + var result = { vs: flatten(vs) }; + if (weight) { + result.barycenter = sum / weight; + result.weight = weight; + } + return result; +} +function consumeUnsortable(vs, unsortable, index) { + var last$1; + while (unsortable.length && (last$1 = last(unsortable)).i <= index) { + unsortable.pop(); + vs.push(last$1.vs); + index++; + } + return index; +} +function compareWithBias(bias) { + return function(entryV, entryW) { + if (entryV.barycenter < entryW.barycenter) { + return -1; + } else if (entryV.barycenter > entryW.barycenter) { + return 1; + } + return !bias ? entryV.i - entryW.i : entryW.i - entryV.i; + }; +} +function sortSubgraph(g, v, cg, biasRight) { + var movable = g.children(v); + var node = g.node(v); + var bl = node ? node.borderLeft : void 0; + var br = node ? node.borderRight : void 0; + var subgraphs = {}; + if (bl) { + movable = filter(movable, function(w) { + return w !== bl && w !== br; + }); + } + var barycenters = barycenter(g, movable); + forEach(barycenters, function(entry) { + if (g.children(entry.v).length) { + var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight); + subgraphs[entry.v] = subgraphResult; + if (has(subgraphResult, "barycenter")) { + mergeBarycenters(entry, subgraphResult); + } + } + }); + var entries = resolveConflicts(barycenters, cg); + expandSubgraphs(entries, subgraphs); + var result = sort(entries, biasRight); + if (bl) { + result.vs = flatten([bl, result.vs, br]); + if (g.predecessors(bl).length) { + var blPred = g.node(g.predecessors(bl)[0]), brPred = g.node(g.predecessors(br)[0]); + if (!has(result, "barycenter")) { + result.barycenter = 0; + result.weight = 0; + } + result.barycenter = (result.barycenter * result.weight + blPred.order + brPred.order) / (result.weight + 2); + result.weight += 2; + } + } + return result; +} +function expandSubgraphs(entries, subgraphs) { + forEach(entries, function(entry) { + entry.vs = flatten( + entry.vs.map(function(v) { + if (subgraphs[v]) { + return subgraphs[v].vs; + } + return v; + }) + ); + }); +} +function mergeBarycenters(target, other) { + if (!isUndefined(target.barycenter)) { + target.barycenter = (target.barycenter * target.weight + other.barycenter * other.weight) / (target.weight + other.weight); + target.weight += other.weight; + } else { + target.barycenter = other.barycenter; + target.weight = other.weight; + } +} +function order(g) { + var maxRank$1 = maxRank(g), downLayerGraphs = buildLayerGraphs(g, range$1(1, maxRank$1 + 1), "inEdges"), upLayerGraphs = buildLayerGraphs(g, range$1(maxRank$1 - 1, -1, -1), "outEdges"); + var layering = initOrder(g); + assignOrder(g, layering); + var bestCC = Number.POSITIVE_INFINITY, best; + for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) { + sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2); + layering = buildLayerMatrix(g); + var cc = crossCount(g, layering); + if (cc < bestCC) { + lastBest = 0; + best = cloneDeep(layering); + bestCC = cc; + } + } + assignOrder(g, best); +} +function buildLayerGraphs(g, ranks, relationship) { + return map(ranks, function(rank2) { + return buildLayerGraph(g, rank2, relationship); + }); +} +function sweepLayerGraphs(layerGraphs, biasRight) { + var cg = new Graph(); + forEach(layerGraphs, function(lg) { + var root2 = lg.graph().root; + var sorted = sortSubgraph(lg, root2, cg, biasRight); + forEach(sorted.vs, function(v, i) { + lg.node(v).order = i; + }); + addSubgraphConstraints(lg, cg, sorted.vs); + }); +} +function assignOrder(g, layering) { + forEach(layering, function(layer) { + forEach(layer, function(v, i) { + g.node(v).order = i; + }); + }); +} +function parentDummyChains(g) { + var postorderNums = postorder(g); + forEach(g.graph().dummyChains, function(v) { + var node = g.node(v); + var edgeObj = node.edgeObj; + var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w); + var path = pathData.path; + var lca = pathData.lca; + var pathIdx = 0; + var pathV = path[pathIdx]; + var ascending = true; + while (v !== edgeObj.w) { + node = g.node(v); + if (ascending) { + while ((pathV = path[pathIdx]) !== lca && g.node(pathV).maxRank < node.rank) { + pathIdx++; + } + if (pathV === lca) { + ascending = false; + } + } + if (!ascending) { + while (pathIdx < path.length - 1 && g.node(pathV = path[pathIdx + 1]).minRank <= node.rank) { + pathIdx++; + } + pathV = path[pathIdx]; + } + g.setParent(v, pathV); + v = g.successors(v)[0]; + } + }); +} +function findPath(g, postorderNums, v, w) { + var vPath = []; + var wPath = []; + var low = Math.min(postorderNums[v].low, postorderNums[w].low); + var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim); + var parent; + var lca; + parent = v; + do { + parent = g.parent(parent); + vPath.push(parent); + } while (parent && (postorderNums[parent].low > low || lim > postorderNums[parent].lim)); + lca = parent; + parent = w; + while ((parent = g.parent(parent)) !== lca) { + wPath.push(parent); + } + return { path: vPath.concat(wPath.reverse()), lca }; +} +function postorder(g) { + var result = {}; + var lim = 0; + function dfs2(v) { + var low = lim; + forEach(g.children(v), dfs2); + result[v] = { low, lim: lim++ }; + } + forEach(g.children(), dfs2); + return result; +} +function findType1Conflicts(g, layering) { + var conflicts = {}; + function visitLayer(prevLayer, layer) { + var k0 = 0, scanPos = 0, prevLayerLength = prevLayer.length, lastNode = last(layer); + forEach(layer, function(v, i) { + var w = findOtherInnerSegmentNode(g, v), k1 = w ? g.node(w).order : prevLayerLength; + if (w || v === lastNode) { + forEach(layer.slice(scanPos, i + 1), function(scanNode) { + forEach(g.predecessors(scanNode), function(u) { + var uLabel = g.node(u), uPos = uLabel.order; + if ((uPos < k0 || k1 < uPos) && !(uLabel.dummy && g.node(scanNode).dummy)) { + addConflict(conflicts, u, scanNode); + } + }); + }); + scanPos = i + 1; + k0 = k1; + } + }); + return layer; + } + reduce(layering, visitLayer); + return conflicts; +} +function findType2Conflicts(g, layering) { + var conflicts = {}; + function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) { + var v; + forEach(range$1(southPos, southEnd), function(i) { + v = south[i]; + if (g.node(v).dummy) { + forEach(g.predecessors(v), function(u) { + var uNode = g.node(u); + if (uNode.dummy && (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) { + addConflict(conflicts, u, v); + } + }); + } + }); + } + function visitLayer(north, south) { + var prevNorthPos = -1, nextNorthPos, southPos = 0; + forEach(south, function(v, southLookahead) { + if (g.node(v).dummy === "border") { + var predecessors = g.predecessors(v); + if (predecessors.length) { + nextNorthPos = g.node(predecessors[0]).order; + scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos); + southPos = southLookahead; + prevNorthPos = nextNorthPos; + } + } + scan(south, southPos, south.length, nextNorthPos, north.length); + }); + return south; + } + reduce(layering, visitLayer); + return conflicts; +} +function findOtherInnerSegmentNode(g, v) { + if (g.node(v).dummy) { + return find$1(g.predecessors(v), function(u) { + return g.node(u).dummy; + }); + } +} +function addConflict(conflicts, v, w) { + if (v > w) { + var tmp = v; + v = w; + w = tmp; + } + var conflictsV = conflicts[v]; + if (!conflictsV) { + conflicts[v] = conflictsV = {}; + } + conflictsV[w] = true; +} +function hasConflict(conflicts, v, w) { + if (v > w) { + var tmp = v; + v = w; + w = tmp; + } + return has(conflicts[v], w); +} +function verticalAlignment(g, layering, conflicts, neighborFn) { + var root2 = {}, align = {}, pos = {}; + forEach(layering, function(layer) { + forEach(layer, function(v, order2) { + root2[v] = v; + align[v] = v; + pos[v] = order2; + }); + }); + forEach(layering, function(layer) { + var prevIdx = -1; + forEach(layer, function(v) { + var ws = neighborFn(v); + if (ws.length) { + ws = sortBy$1(ws, function(w2) { + return pos[w2]; + }); + var mp = (ws.length - 1) / 2; + for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) { + var w = ws[i]; + if (align[v] === v && prevIdx < pos[w] && !hasConflict(conflicts, v, w)) { + align[w] = v; + align[v] = root2[v] = root2[w]; + prevIdx = pos[w]; + } + } + } + }); + }); + return { root: root2, align }; +} +function horizontalCompaction(g, layering, root2, align, reverseSep) { + var xs = {}, blockG = buildBlockGraph(g, layering, root2, reverseSep), borderType = reverseSep ? "borderLeft" : "borderRight"; + function iterate(setXsFunc, nextNodesFunc) { + var stack = blockG.nodes(); + var elem = stack.pop(); + var visited = {}; + while (elem) { + if (visited[elem]) { + setXsFunc(elem); + } else { + visited[elem] = true; + stack.push(elem); + stack = stack.concat(nextNodesFunc(elem)); + } + elem = stack.pop(); + } + } + function pass1(elem) { + xs[elem] = blockG.inEdges(elem).reduce(function(acc, e) { + return Math.max(acc, xs[e.v] + blockG.edge(e)); + }, 0); + } + function pass2(elem) { + var min2 = blockG.outEdges(elem).reduce(function(acc, e) { + return Math.min(acc, xs[e.w] - blockG.edge(e)); + }, Number.POSITIVE_INFINITY); + var node = g.node(elem); + if (min2 !== Number.POSITIVE_INFINITY && node.borderType !== borderType) { + xs[elem] = Math.max(xs[elem], min2); + } + } + iterate(pass1, blockG.predecessors.bind(blockG)); + iterate(pass2, blockG.successors.bind(blockG)); + forEach(align, function(v) { + xs[v] = xs[root2[v]]; + }); + return xs; +} +function buildBlockGraph(g, layering, root2, reverseSep) { + var blockGraph = new Graph(), graphLabel = g.graph(), sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep); + forEach(layering, function(layer) { + var u; + forEach(layer, function(v) { + var vRoot = root2[v]; + blockGraph.setNode(vRoot); + if (u) { + var uRoot = root2[u], prevMax = blockGraph.edge(uRoot, vRoot); + blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0)); + } + u = v; + }); + }); + return blockGraph; +} +function findSmallestWidthAlignment(g, xss) { + return minBy(values(xss), function(xs) { + var max2 = Number.NEGATIVE_INFINITY; + var min2 = Number.POSITIVE_INFINITY; + forIn(xs, function(x, v) { + var halfWidth = width(g, v) / 2; + max2 = Math.max(x + halfWidth, max2); + min2 = Math.min(x - halfWidth, min2); + }); + return max2 - min2; + }); +} +function alignCoordinates(xss, alignTo) { + var alignToVals = values(alignTo), alignToMin = min(alignToVals), alignToMax = max(alignToVals); + forEach(["u", "d"], function(vert) { + forEach(["l", "r"], function(horiz) { + var alignment = vert + horiz, xs = xss[alignment], delta; + if (xs === alignTo) + return; + var xsVals = values(xs); + delta = horiz === "l" ? alignToMin - min(xsVals) : alignToMax - max(xsVals); + if (delta) { + xss[alignment] = mapValues(xs, function(x) { + return x + delta; + }); + } + }); + }); +} +function balance(xss, align) { + return mapValues(xss.ul, function(ignore, v) { + if (align) { + return xss[align.toLowerCase()][v]; + } else { + var xs = sortBy$1(map(xss, v)); + return (xs[1] + xs[2]) / 2; + } + }); +} +function positionX(g) { + var layering = buildLayerMatrix(g); + var conflicts = merge(findType1Conflicts(g, layering), findType2Conflicts(g, layering)); + var xss = {}; + var adjustedLayering; + forEach(["u", "d"], function(vert) { + adjustedLayering = vert === "u" ? layering : values(layering).reverse(); + forEach(["l", "r"], function(horiz) { + if (horiz === "r") { + adjustedLayering = map(adjustedLayering, function(inner) { + return values(inner).reverse(); + }); + } + var neighborFn = (vert === "u" ? g.predecessors : g.successors).bind(g); + var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn); + var xs = horizontalCompaction(g, adjustedLayering, align.root, align.align, horiz === "r"); + if (horiz === "r") { + xs = mapValues(xs, function(x) { + return -x; + }); + } + xss[vert + horiz] = xs; + }); + }); + var smallestWidth = findSmallestWidthAlignment(g, xss); + alignCoordinates(xss, smallestWidth); + return balance(xss, g.graph().align); +} +function sep(nodeSep, edgeSep, reverseSep) { + return function(g, v, w) { + var vLabel = g.node(v); + var wLabel = g.node(w); + var sum = 0; + var delta; + sum += vLabel.width / 2; + if (has(vLabel, "labelpos")) { + switch (vLabel.labelpos.toLowerCase()) { + case "l": + delta = -vLabel.width / 2; + break; + case "r": + delta = vLabel.width / 2; + break; + } + } + if (delta) { + sum += reverseSep ? delta : -delta; + } + delta = 0; + sum += (vLabel.dummy ? edgeSep : nodeSep) / 2; + sum += (wLabel.dummy ? edgeSep : nodeSep) / 2; + sum += wLabel.width / 2; + if (has(wLabel, "labelpos")) { + switch (wLabel.labelpos.toLowerCase()) { + case "l": + delta = wLabel.width / 2; + break; + case "r": + delta = -wLabel.width / 2; + break; + } + } + if (delta) { + sum += reverseSep ? delta : -delta; + } + delta = 0; + return sum; + }; +} +function width(g, v) { + return g.node(v).width; +} +function position(g) { + g = asNonCompoundGraph(g); + positionY(g); + forOwn(positionX(g), function(x, v) { + g.node(v).x = x; + }); +} +function positionY(g) { + var layering = buildLayerMatrix(g); + var rankSep = g.graph().ranksep; + var prevY = 0; + forEach(layering, function(layer) { + var maxHeight = max( + map(layer, function(v) { + return g.node(v).height; + }) + ); + forEach(layer, function(v) { + g.node(v).y = prevY + maxHeight / 2; + }); + prevY += maxHeight + rankSep; + }); +} +function layout(g, opts) { + var time$1 = opts && opts.debugTiming ? time : notime; + time$1("layout", function() { + var layoutGraph = time$1(" buildLayoutGraph", function() { + return buildLayoutGraph(g); + }); + time$1(" runLayout", function() { + runLayout(layoutGraph, time$1); + }); + time$1(" updateInputGraph", function() { + updateInputGraph(g, layoutGraph); + }); + }); +} +function runLayout(g, time2) { + time2(" makeSpaceForEdgeLabels", function() { + makeSpaceForEdgeLabels(g); + }); + time2(" removeSelfEdges", function() { + removeSelfEdges(g); + }); + time2(" acyclic", function() { + run$2(g); + }); + time2(" nestingGraph.run", function() { + run(g); + }); + time2(" rank", function() { + rank(asNonCompoundGraph(g)); + }); + time2(" injectEdgeLabelProxies", function() { + injectEdgeLabelProxies(g); + }); + time2(" removeEmptyRanks", function() { + removeEmptyRanks(g); + }); + time2(" nestingGraph.cleanup", function() { + cleanup(g); + }); + time2(" normalizeRanks", function() { + normalizeRanks(g); + }); + time2(" assignRankMinMax", function() { + assignRankMinMax(g); + }); + time2(" removeEdgeLabelProxies", function() { + removeEdgeLabelProxies(g); + }); + time2(" normalize.run", function() { + run$1(g); + }); + time2(" parentDummyChains", function() { + parentDummyChains(g); + }); + time2(" addBorderSegments", function() { + addBorderSegments(g); + }); + time2(" order", function() { + order(g); + }); + time2(" insertSelfEdges", function() { + insertSelfEdges(g); + }); + time2(" adjustCoordinateSystem", function() { + adjust(g); + }); + time2(" position", function() { + position(g); + }); + time2(" positionSelfEdges", function() { + positionSelfEdges(g); + }); + time2(" removeBorderNodes", function() { + removeBorderNodes(g); + }); + time2(" normalize.undo", function() { + undo(g); + }); + time2(" fixupEdgeLabelCoords", function() { + fixupEdgeLabelCoords(g); + }); + time2(" undoCoordinateSystem", function() { + undo$1(g); + }); + time2(" translateGraph", function() { + translateGraph(g); + }); + time2(" assignNodeIntersects", function() { + assignNodeIntersects(g); + }); + time2(" reversePoints", function() { + reversePointsForReversedEdges(g); + }); + time2(" acyclic.undo", function() { + undo$2(g); + }); +} +function updateInputGraph(inputGraph, layoutGraph) { + forEach(inputGraph.nodes(), function(v) { + var inputLabel = inputGraph.node(v); + var layoutLabel = layoutGraph.node(v); + if (inputLabel) { + inputLabel.x = layoutLabel.x; + inputLabel.y = layoutLabel.y; + if (layoutGraph.children(v).length) { + inputLabel.width = layoutLabel.width; + inputLabel.height = layoutLabel.height; + } + } + }); + forEach(inputGraph.edges(), function(e) { + var inputLabel = inputGraph.edge(e); + var layoutLabel = layoutGraph.edge(e); + inputLabel.points = layoutLabel.points; + if (has(layoutLabel, "x")) { + inputLabel.x = layoutLabel.x; + inputLabel.y = layoutLabel.y; + } + }); + inputGraph.graph().width = layoutGraph.graph().width; + inputGraph.graph().height = layoutGraph.graph().height; +} +var graphNumAttrs = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"]; +var graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" }; +var graphAttrs = ["acyclicer", "ranker", "rankdir", "align"]; +var nodeNumAttrs = ["width", "height"]; +var nodeDefaults = { width: 0, height: 0 }; +var edgeNumAttrs = ["minlen", "weight", "width", "height", "labeloffset"]; +var edgeDefaults = { + minlen: 1, + weight: 1, + width: 0, + height: 0, + labeloffset: 10, + labelpos: "r" +}; +var edgeAttrs = ["labelpos"]; +function buildLayoutGraph(inputGraph) { + var g = new Graph({ multigraph: true, compound: true }); + var graph = canonicalize(inputGraph.graph()); + g.setGraph( + merge({}, graphDefaults, selectNumberAttrs(graph, graphNumAttrs), pick$1(graph, graphAttrs)) + ); + forEach(inputGraph.nodes(), function(v) { + var node = canonicalize(inputGraph.node(v)); + g.setNode(v, defaults$1(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults)); + g.setParent(v, inputGraph.parent(v)); + }); + forEach(inputGraph.edges(), function(e) { + var edge = canonicalize(inputGraph.edge(e)); + g.setEdge( + e, + merge({}, edgeDefaults, selectNumberAttrs(edge, edgeNumAttrs), pick$1(edge, edgeAttrs)) + ); + }); + return g; +} +function makeSpaceForEdgeLabels(g) { + var graph = g.graph(); + graph.ranksep /= 2; + forEach(g.edges(), function(e) { + var edge = g.edge(e); + edge.minlen *= 2; + if (edge.labelpos.toLowerCase() !== "c") { + if (graph.rankdir === "TB" || graph.rankdir === "BT") { + edge.width += edge.labeloffset; + } else { + edge.height += edge.labeloffset; + } + } + }); +} +function injectEdgeLabelProxies(g) { + forEach(g.edges(), function(e) { + var edge = g.edge(e); + if (edge.width && edge.height) { + var v = g.node(e.v); + var w = g.node(e.w); + var label = { rank: (w.rank - v.rank) / 2 + v.rank, e }; + addDummyNode(g, "edge-proxy", label, "_ep"); + } + }); +} +function assignRankMinMax(g) { + var maxRank2 = 0; + forEach(g.nodes(), function(v) { + var node = g.node(v); + if (node.borderTop) { + node.minRank = g.node(node.borderTop).rank; + node.maxRank = g.node(node.borderBottom).rank; + maxRank2 = max(maxRank2, node.maxRank); + } + }); + g.graph().maxRank = maxRank2; +} +function removeEdgeLabelProxies(g) { + forEach(g.nodes(), function(v) { + var node = g.node(v); + if (node.dummy === "edge-proxy") { + g.edge(node.e).labelRank = node.rank; + g.removeNode(v); + } + }); +} +function translateGraph(g) { + var minX = Number.POSITIVE_INFINITY; + var maxX = 0; + var minY = Number.POSITIVE_INFINITY; + var maxY = 0; + var graphLabel = g.graph(); + var marginX = graphLabel.marginx || 0; + var marginY = graphLabel.marginy || 0; + function getExtremes(attrs) { + var x = attrs.x; + var y = attrs.y; + var w = attrs.width; + var h = attrs.height; + minX = Math.min(minX, x - w / 2); + maxX = Math.max(maxX, x + w / 2); + minY = Math.min(minY, y - h / 2); + maxY = Math.max(maxY, y + h / 2); + } + forEach(g.nodes(), function(v) { + getExtremes(g.node(v)); + }); + forEach(g.edges(), function(e) { + var edge = g.edge(e); + if (has(edge, "x")) { + getExtremes(edge); + } + }); + minX -= marginX; + minY -= marginY; + forEach(g.nodes(), function(v) { + var node = g.node(v); + node.x -= minX; + node.y -= minY; + }); + forEach(g.edges(), function(e) { + var edge = g.edge(e); + forEach(edge.points, function(p) { + p.x -= minX; + p.y -= minY; + }); + if (has(edge, "x")) { + edge.x -= minX; + } + if (has(edge, "y")) { + edge.y -= minY; + } + }); + graphLabel.width = maxX - minX + marginX; + graphLabel.height = maxY - minY + marginY; +} +function assignNodeIntersects(g) { + forEach(g.edges(), function(e) { + var edge = g.edge(e); + var nodeV = g.node(e.v); + var nodeW = g.node(e.w); + var p1, p2; + if (!edge.points) { + edge.points = []; + p1 = nodeW; + p2 = nodeV; + } else { + p1 = edge.points[0]; + p2 = edge.points[edge.points.length - 1]; + } + edge.points.unshift(intersectRect(nodeV, p1)); + edge.points.push(intersectRect(nodeW, p2)); + }); +} +function fixupEdgeLabelCoords(g) { + forEach(g.edges(), function(e) { + var edge = g.edge(e); + if (has(edge, "x")) { + if (edge.labelpos === "l" || edge.labelpos === "r") { + edge.width -= edge.labeloffset; + } + switch (edge.labelpos) { + case "l": + edge.x -= edge.width / 2 + edge.labeloffset; + break; + case "r": + edge.x += edge.width / 2 + edge.labeloffset; + break; + } + } + }); +} +function reversePointsForReversedEdges(g) { + forEach(g.edges(), function(e) { + var edge = g.edge(e); + if (edge.reversed) { + edge.points.reverse(); + } + }); +} +function removeBorderNodes(g) { + forEach(g.nodes(), function(v) { + if (g.children(v).length) { + var node = g.node(v); + var t = g.node(node.borderTop); + var b = g.node(node.borderBottom); + var l = g.node(last(node.borderLeft)); + var r = g.node(last(node.borderRight)); + node.width = Math.abs(r.x - l.x); + node.height = Math.abs(b.y - t.y); + node.x = l.x + node.width / 2; + node.y = t.y + node.height / 2; + } + }); + forEach(g.nodes(), function(v) { + if (g.node(v).dummy === "border") { + g.removeNode(v); + } + }); +} +function removeSelfEdges(g) { + forEach(g.edges(), function(e) { + if (e.v === e.w) { + var node = g.node(e.v); + if (!node.selfEdges) { + node.selfEdges = []; + } + node.selfEdges.push({ e, label: g.edge(e) }); + g.removeEdge(e); + } + }); +} +function insertSelfEdges(g) { + var layers = buildLayerMatrix(g); + forEach(layers, function(layer) { + var orderShift = 0; + forEach(layer, function(v, i) { + var node = g.node(v); + node.order = i + orderShift; + forEach(node.selfEdges, function(selfEdge) { + addDummyNode( + g, + "selfedge", + { + width: selfEdge.label.width, + height: selfEdge.label.height, + rank: node.rank, + order: i + ++orderShift, + e: selfEdge.e, + label: selfEdge.label + }, + "_se" + ); + }); + delete node.selfEdges; + }); + }); +} +function positionSelfEdges(g) { + forEach(g.nodes(), function(v) { + var node = g.node(v); + if (node.dummy === "selfedge") { + var selfNode = g.node(node.e.v); + var x = selfNode.x + selfNode.width / 2; + var y = selfNode.y; + var dx = node.x - x; + var dy = selfNode.height / 2; + g.setEdge(node.e, node.label); + g.removeNode(v); + node.label.points = [ + { x: x + 2 * dx / 3, y: y - dy }, + { x: x + 5 * dx / 6, y: y - dy }, + { x: x + dx, y }, + { x: x + 5 * dx / 6, y: y + dy }, + { x: x + 2 * dx / 3, y: y + dy } + ]; + node.label.x = node.x; + node.label.y = node.y; + } + }); +} +function selectNumberAttrs(obj, attrs) { + return mapValues(pick$1(obj, attrs), Number); +} +function canonicalize(attrs) { + var newAttrs = {}; + forEach(attrs, function(v, k) { + newAttrs[k.toLowerCase()] = v; + }); + return newAttrs; +} +export { + defaults$1 as d, + layout as l, + map as m, + pick$1 as p, + range$1 as r, + uniqueId as u +}; diff --git a/assets/lib/mermaid/layout-fd473db2.js b/assets/lib/mermaid/layout-fd473db2.js new file mode 100644 index 000000000..41292de04 --- /dev/null +++ b/assets/lib/mermaid/layout-fd473db2.js @@ -0,0 +1,1536 @@ +import { a as F, b as xn, c as zn, d as L, k as Un, e as Hn, g as jn, j as P, l as En, m as kn, n as yn, t as Jn, o as Nn, p as Kn, q as Zn, f as s, G as x, h as w, i as g, r as M, v as y, s as V } from "./graph-0ee63739.js"; +import { a8 as A, a9 as Qn, aa as ne, ab as ee, ac as Ln, ad as B, ae as _n, af as re, ag as Cn, ah as J, ai as te, aj as ie, ak as K, al as ae, am as In, an as oe, ao as ue, ap as H } from "./mermaid-9f2aa176.js"; +var de = /\s/; +function fe(n) { + for (var e = n.length; e-- && de.test(n.charAt(e)); ) + ; + return e; +} +var se = /^\s+/; +function ce(n) { + return n && n.slice(0, fe(n) + 1).replace(se, ""); +} +var un = 0 / 0, he = /^[-+]0x[0-9a-f]+$/i, le = /^0b[01]+$/i, ve = /^0o[0-7]+$/i, pe = parseInt; +function we(n) { + if (typeof n == "number") + return n; + if (F(n)) + return un; + if (A(n)) { + var e = typeof n.valueOf == "function" ? n.valueOf() : n; + n = A(e) ? e + "" : e; + } + if (typeof n != "string") + return n === 0 ? n : +n; + n = ce(n); + var r = le.test(n); + return r || ve.test(n) ? pe(n.slice(2), r ? 2 : 8) : he.test(n) ? un : +n; +} +var dn = 1 / 0, me = 17976931348623157e292; +function S(n) { + if (!n) + return n === 0 ? n : 0; + if (n = we(n), n === dn || n === -dn) { + var e = n < 0 ? -1 : 1; + return e * me; + } + return n === n ? n : 0; +} +function be(n) { + var e = S(n), r = e % 1; + return e === e ? r ? e - r : e : 0; +} +function _(n) { + var e = n == null ? 0 : n.length; + return e ? xn(n, 1) : []; +} +function ge(n) { + return Qn(ne(n, void 0, _), n + ""); +} +var xe = 1, Ee = 4; +function ke(n) { + return zn(n, xe | Ee); +} +var ye = function() { + return ee.Date.now(); +}; +const fn = ye; +var Rn = Object.prototype, Ne = Rn.hasOwnProperty, Le = Ln(function(n, e) { + n = Object(n); + var r = -1, t = e.length, i = t > 2 ? e[2] : void 0; + for (i && B(e[0], e[1], i) && (t = 1); ++r < t; ) + for (var o = e[r], a = _n(o), u = -1, d = a.length; ++u < d; ) { + var f = a[u], c = n[f]; + (c === void 0 || re(c, Rn[f]) && !Ne.call(n, f)) && (n[f] = o[f]); + } + return n; +}); +const _e = Le; +function $(n) { + var e = n == null ? 0 : n.length; + return e ? n[e - 1] : void 0; +} +function Ce(n) { + return function(e, r, t) { + var i = Object(e); + if (!Cn(e)) { + var o = L(r); + e = Un(e), r = function(u) { + return o(i[u], u, i); + }; + } + var a = n(e, r, t); + return a > -1 ? i[o ? e[a] : a] : void 0; + }; +} +var Ie = Math.max; +function Re(n, e, r) { + var t = n == null ? 0 : n.length; + if (!t) + return -1; + var i = r == null ? 0 : be(r); + return i < 0 && (i = Ie(t + i, 0)), Hn(n, L(e), i); +} +var Te = Ce(Re); +const Z = Te; +function Tn(n, e) { + var r = -1, t = Cn(n) ? Array(n.length) : []; + return jn(n, function(i, o, a) { + t[++r] = e(i, o, a); + }), t; +} +function m(n, e) { + var r = J(n) ? P : Tn; + return r(n, L(e)); +} +function Me(n, e) { + return n == null ? n : te(n, En(e), _n); +} +function Oe(n, e) { + return n && kn(n, En(e)); +} +function Pe(n, e) { + return n > e; +} +function Mn(n, e) { + return n < e; +} +function Y(n, e) { + var r = {}; + return e = L(e), kn(n, function(t, i, o) { + ie(r, i, e(t, i, o)); + }), r; +} +function Q(n, e, r) { + for (var t = -1, i = n.length; ++t < i; ) { + var o = n[t], a = e(o); + if (a != null && (u === void 0 ? a === a && !F(a) : r(a, u))) + var u = a, d = o; + } + return d; +} +function E(n) { + return n && n.length ? Q(n, K, Pe) : void 0; +} +function R(n) { + return n && n.length ? Q(n, K, Mn) : void 0; +} +function nn(n, e) { + return n && n.length ? Q(n, L(e), Mn) : void 0; +} +function Se(n, e, r, t) { + if (!A(n)) + return n; + e = yn(e, n); + for (var i = -1, o = e.length, a = o - 1, u = n; u != null && ++i < o; ) { + var d = Jn(e[i]), f = r; + if (d === "__proto__" || d === "constructor" || d === "prototype") + return n; + if (i != a) { + var c = u[d]; + f = t ? t(c, d, u) : void 0, f === void 0 && (f = A(c) ? c : ae(e[i + 1]) ? [] : {}); + } + In(u, d, f), u = u[d]; + } + return n; +} +function Fe(n, e, r) { + for (var t = -1, i = e.length, o = {}; ++t < i; ) { + var a = e[t], u = Nn(n, a); + r(u, a) && Se(o, yn(a, n), u); + } + return o; +} +function Ae(n, e) { + var r = n.length; + for (n.sort(e); r--; ) + n[r] = n[r].value; + return n; +} +function Be(n, e) { + if (n !== e) { + var r = n !== void 0, t = n === null, i = n === n, o = F(n), a = e !== void 0, u = e === null, d = e === e, f = F(e); + if (!u && !f && !o && n > e || o && a && d && !u && !f || t && a && d || !r && d || !i) + return 1; + if (!t && !o && !f && n < e || f && r && i && !t && !o || u && r && i || !a && i || !d) + return -1; + } + return 0; +} +function $e(n, e, r) { + for (var t = -1, i = n.criteria, o = e.criteria, a = i.length, u = r.length; ++t < a; ) { + var d = Be(i[t], o[t]); + if (d) { + if (t >= u) + return d; + var f = r[t]; + return d * (f == "desc" ? -1 : 1); + } + } + return n.index - e.index; +} +function Ge(n, e, r) { + e.length ? e = P(e, function(o) { + return J(o) ? function(a) { + return Nn(a, o.length === 1 ? o[0] : o); + } : o; + }) : e = [K]; + var t = -1; + e = P(e, oe(L)); + var i = Tn(n, function(o, a, u) { + var d = P(e, function(f) { + return f(o); + }); + return { criteria: d, index: ++t, value: o }; + }); + return Ae(i, function(o, a) { + return $e(o, a, r); + }); +} +function Ve(n, e) { + return Fe(n, e, function(r, t) { + return Kn(n, t); + }); +} +var Ye = ge(function(n, e) { + return n == null ? {} : Ve(n, e); +}); +const G = Ye; +var De = Math.ceil, qe = Math.max; +function We(n, e, r, t) { + for (var i = -1, o = qe(De((e - n) / (r || 1)), 0), a = Array(o); o--; ) + a[t ? o : ++i] = n, n += r; + return a; +} +function Xe(n) { + return function(e, r, t) { + return t && typeof t != "number" && B(e, r, t) && (r = t = void 0), e = S(e), r === void 0 ? (r = e, e = 0) : r = S(r), t = t === void 0 ? e < r ? 1 : -1 : S(t), We(e, r, t, n); + }; +} +var ze = Xe(); +const N = ze; +var Ue = Ln(function(n, e) { + if (n == null) + return []; + var r = e.length; + return r > 1 && B(n, e[0], e[1]) ? e = [] : r > 2 && B(e[0], e[1], e[2]) && (e = [e[0]]), Ge(n, xn(e, 1), []); +}); +const O = Ue; +var He = 0; +function en(n) { + var e = ++He; + return Zn(n) + e; +} +function je(n, e, r) { + for (var t = -1, i = n.length, o = e.length, a = {}; ++t < i; ) { + var u = t < o ? e[t] : void 0; + r(a, n[t], u); + } + return a; +} +function Je(n, e) { + return je(n || [], e || [], In); +} +class Ke { + constructor() { + var e = {}; + e._next = e._prev = e, this._sentinel = e; + } + dequeue() { + var e = this._sentinel, r = e._prev; + if (r !== e) + return sn(r), r; + } + enqueue(e) { + var r = this._sentinel; + e._prev && e._next && sn(e), e._next = r._next, r._next._prev = e, r._next = e, e._prev = r; + } + toString() { + for (var e = [], r = this._sentinel, t = r._prev; t !== r; ) + e.push(JSON.stringify(t, Ze)), t = t._prev; + return "[" + e.join(", ") + "]"; + } +} +function sn(n) { + n._prev._next = n._next, n._next._prev = n._prev, delete n._next, delete n._prev; +} +function Ze(n, e) { + if (n !== "_next" && n !== "_prev") + return e; +} +var Qe = ue(1); +function nr(n, e) { + if (n.nodeCount() <= 1) + return []; + var r = rr(n, e || Qe), t = er(r.graph, r.buckets, r.zeroIdx); + return _( + m(t, function(i) { + return n.outEdges(i.v, i.w); + }) + ); +} +function er(n, e, r) { + for (var t = [], i = e[e.length - 1], o = e[0], a; n.nodeCount(); ) { + for (; a = o.dequeue(); ) + q(n, e, r, a); + for (; a = i.dequeue(); ) + q(n, e, r, a); + if (n.nodeCount()) { + for (var u = e.length - 2; u > 0; --u) + if (a = e[u].dequeue(), a) { + t = t.concat(q(n, e, r, a, !0)); + break; + } + } + } + return t; +} +function q(n, e, r, t, i) { + var o = i ? [] : void 0; + return s(n.inEdges(t.v), function(a) { + var u = n.edge(a), d = n.node(a.v); + i && o.push({ v: a.v, w: a.w }), d.out -= u, j(e, r, d); + }), s(n.outEdges(t.v), function(a) { + var u = n.edge(a), d = a.w, f = n.node(d); + f.in -= u, j(e, r, f); + }), n.removeNode(t.v), o; +} +function rr(n, e) { + var r = new x(), t = 0, i = 0; + s(n.nodes(), function(u) { + r.setNode(u, { v: u, in: 0, out: 0 }); + }), s(n.edges(), function(u) { + var d = r.edge(u.v, u.w) || 0, f = e(u), c = d + f; + r.setEdge(u.v, u.w, c), i = Math.max(i, r.node(u.v).out += f), t = Math.max(t, r.node(u.w).in += f); + }); + var o = N(i + t + 3).map(function() { + return new Ke(); + }), a = t + 1; + return s(r.nodes(), function(u) { + j(o, a, r.node(u)); + }), { graph: r, buckets: o, zeroIdx: a }; +} +function j(n, e, r) { + r.out ? r.in ? n[r.out - r.in + e].enqueue(r) : n[n.length - 1].enqueue(r) : n[0].enqueue(r); +} +function tr(n) { + var e = n.graph().acyclicer === "greedy" ? nr(n, r(n)) : ir(n); + s(e, function(t) { + var i = n.edge(t); + n.removeEdge(t), i.forwardName = t.name, i.reversed = !0, n.setEdge(t.w, t.v, i, en("rev")); + }); + function r(t) { + return function(i) { + return t.edge(i).weight; + }; + } +} +function ir(n) { + var e = [], r = {}, t = {}; + function i(o) { + w(t, o) || (t[o] = !0, r[o] = !0, s(n.outEdges(o), function(a) { + w(r, a.w) ? e.push(a) : i(a.w); + }), delete r[o]); + } + return s(n.nodes(), i), e; +} +function ar(n) { + s(n.edges(), function(e) { + var r = n.edge(e); + if (r.reversed) { + n.removeEdge(e); + var t = r.forwardName; + delete r.reversed, delete r.forwardName, n.setEdge(e.w, e.v, r, t); + } + }); +} +function C(n, e, r, t) { + var i; + do + i = en(t); + while (n.hasNode(i)); + return r.dummy = e, n.setNode(i, r), i; +} +function or(n) { + var e = new x().setGraph(n.graph()); + return s(n.nodes(), function(r) { + e.setNode(r, n.node(r)); + }), s(n.edges(), function(r) { + var t = e.edge(r.v, r.w) || { weight: 0, minlen: 1 }, i = n.edge(r); + e.setEdge(r.v, r.w, { + weight: t.weight + i.weight, + minlen: Math.max(t.minlen, i.minlen) + }); + }), e; +} +function On(n) { + var e = new x({ multigraph: n.isMultigraph() }).setGraph(n.graph()); + return s(n.nodes(), function(r) { + n.children(r).length || e.setNode(r, n.node(r)); + }), s(n.edges(), function(r) { + e.setEdge(r, n.edge(r)); + }), e; +} +function cn(n, e) { + var r = n.x, t = n.y, i = e.x - r, o = e.y - t, a = n.width / 2, u = n.height / 2; + if (!i && !o) + throw new Error("Not possible to find intersection inside of the rectangle"); + var d, f; + return Math.abs(o) * a > Math.abs(i) * u ? (o < 0 && (u = -u), d = u * i / o, f = u) : (i < 0 && (a = -a), d = a, f = a * o / i), { x: r + d, y: t + f }; +} +function D(n) { + var e = m(N(Pn(n) + 1), function() { + return []; + }); + return s(n.nodes(), function(r) { + var t = n.node(r), i = t.rank; + g(i) || (e[i][t.order] = r); + }), e; +} +function ur(n) { + var e = R( + m(n.nodes(), function(r) { + return n.node(r).rank; + }) + ); + s(n.nodes(), function(r) { + var t = n.node(r); + w(t, "rank") && (t.rank -= e); + }); +} +function dr(n) { + var e = R( + m(n.nodes(), function(o) { + return n.node(o).rank; + }) + ), r = []; + s(n.nodes(), function(o) { + var a = n.node(o).rank - e; + r[a] || (r[a] = []), r[a].push(o); + }); + var t = 0, i = n.graph().nodeRankFactor; + s(r, function(o, a) { + g(o) && a % i !== 0 ? --t : t && s(o, function(u) { + n.node(u).rank += t; + }); + }); +} +function hn(n, e, r, t) { + var i = { + width: 0, + height: 0 + }; + return arguments.length >= 4 && (i.rank = r, i.order = t), C(n, "border", i, e); +} +function Pn(n) { + return E( + m(n.nodes(), function(e) { + var r = n.node(e).rank; + if (!g(r)) + return r; + }) + ); +} +function fr(n, e) { + var r = { lhs: [], rhs: [] }; + return s(n, function(t) { + e(t) ? r.lhs.push(t) : r.rhs.push(t); + }), r; +} +function sr(n, e) { + var r = fn(); + try { + return e(); + } finally { + console.log(n + " time: " + (fn() - r) + "ms"); + } +} +function cr(n, e) { + return e(); +} +function hr(n) { + function e(r) { + var t = n.children(r), i = n.node(r); + if (t.length && s(t, e), w(i, "minRank")) { + i.borderLeft = [], i.borderRight = []; + for (var o = i.minRank, a = i.maxRank + 1; o < a; ++o) + ln(n, "borderLeft", "_bl", r, i, o), ln(n, "borderRight", "_br", r, i, o); + } + } + s(n.children(), e); +} +function ln(n, e, r, t, i, o) { + var a = { width: 0, height: 0, rank: o, borderType: e }, u = i[e][o - 1], d = C(n, "border", a, r); + i[e][o] = d, n.setParent(d, t), u && n.setEdge(u, d, { weight: 1 }); +} +function lr(n) { + var e = n.graph().rankdir.toLowerCase(); + (e === "lr" || e === "rl") && Sn(n); +} +function vr(n) { + var e = n.graph().rankdir.toLowerCase(); + (e === "bt" || e === "rl") && pr(n), (e === "lr" || e === "rl") && (wr(n), Sn(n)); +} +function Sn(n) { + s(n.nodes(), function(e) { + vn(n.node(e)); + }), s(n.edges(), function(e) { + vn(n.edge(e)); + }); +} +function vn(n) { + var e = n.width; + n.width = n.height, n.height = e; +} +function pr(n) { + s(n.nodes(), function(e) { + W(n.node(e)); + }), s(n.edges(), function(e) { + var r = n.edge(e); + s(r.points, W), w(r, "y") && W(r); + }); +} +function W(n) { + n.y = -n.y; +} +function wr(n) { + s(n.nodes(), function(e) { + X(n.node(e)); + }), s(n.edges(), function(e) { + var r = n.edge(e); + s(r.points, X), w(r, "x") && X(r); + }); +} +function X(n) { + var e = n.x; + n.x = n.y, n.y = e; +} +function mr(n) { + n.graph().dummyChains = [], s(n.edges(), function(e) { + br(n, e); + }); +} +function br(n, e) { + var r = e.v, t = n.node(r).rank, i = e.w, o = n.node(i).rank, a = e.name, u = n.edge(e), d = u.labelRank; + if (o !== t + 1) { + n.removeEdge(e); + var f, c, h; + for (h = 0, ++t; t < o; ++h, ++t) + u.points = [], c = { + width: 0, + height: 0, + edgeLabel: u, + edgeObj: e, + rank: t + }, f = C(n, "edge", c, "_d"), t === d && (c.width = u.width, c.height = u.height, c.dummy = "edge-label", c.labelpos = u.labelpos), n.setEdge(r, f, { weight: u.weight }, a), h === 0 && n.graph().dummyChains.push(f), r = f; + n.setEdge(r, i, { weight: u.weight }, a); + } +} +function gr(n) { + s(n.graph().dummyChains, function(e) { + var r = n.node(e), t = r.edgeLabel, i; + for (n.setEdge(r.edgeObj, t); r.dummy; ) + i = n.successors(e)[0], n.removeNode(e), t.points.push({ x: r.x, y: r.y }), r.dummy === "edge-label" && (t.x = r.x, t.y = r.y, t.width = r.width, t.height = r.height), e = i, r = n.node(e); + }); +} +function rn(n) { + var e = {}; + function r(t) { + var i = n.node(t); + if (w(e, t)) + return i.rank; + e[t] = !0; + var o = R( + m(n.outEdges(t), function(a) { + return r(a.w) - n.edge(a).minlen; + }) + ); + return (o === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3 + o === void 0 || // return value of _.map([]) for Lodash 4 + o === null) && (o = 0), i.rank = o; + } + s(n.sources(), r); +} +function T(n, e) { + return n.node(e.w).rank - n.node(e.v).rank - n.edge(e).minlen; +} +function Fn(n) { + var e = new x({ directed: !1 }), r = n.nodes()[0], t = n.nodeCount(); + e.setNode(r, {}); + for (var i, o; xr(e, n) < t; ) + i = Er(e, n), o = e.hasNode(i.v) ? T(n, i) : -T(n, i), kr(e, n, o); + return e; +} +function xr(n, e) { + function r(t) { + s(e.nodeEdges(t), function(i) { + var o = i.v, a = t === o ? i.w : o; + !n.hasNode(a) && !T(e, i) && (n.setNode(a, {}), n.setEdge(t, a, {}), r(a)); + }); + } + return s(n.nodes(), r), n.nodeCount(); +} +function Er(n, e) { + return nn(e.edges(), function(r) { + if (n.hasNode(r.v) !== n.hasNode(r.w)) + return T(e, r); + }); +} +function kr(n, e, r) { + s(n.nodes(), function(t) { + e.node(t).rank += r; + }); +} +function yr() { +} +yr.prototype = new Error(); +function An(n, e, r) { + J(e) || (e = [e]); + var t = (n.isDirected() ? n.successors : n.neighbors).bind(n), i = [], o = {}; + return s(e, function(a) { + if (!n.hasNode(a)) + throw new Error("Graph does not have node: " + a); + Bn(n, a, r === "post", o, t, i); + }), i; +} +function Bn(n, e, r, t, i, o) { + w(t, e) || (t[e] = !0, r || o.push(e), s(i(e), function(a) { + Bn(n, a, r, t, i, o); + }), r && o.push(e)); +} +function Nr(n, e) { + return An(n, e, "post"); +} +function Lr(n, e) { + return An(n, e, "pre"); +} +k.initLowLimValues = an; +k.initCutValues = tn; +k.calcCutValue = $n; +k.leaveEdge = Vn; +k.enterEdge = Yn; +k.exchangeEdges = Dn; +function k(n) { + n = or(n), rn(n); + var e = Fn(n); + an(e), tn(e, n); + for (var r, t; r = Vn(e); ) + t = Yn(e, n, r), Dn(e, n, r, t); +} +function tn(n, e) { + var r = Nr(n, n.nodes()); + r = r.slice(0, r.length - 1), s(r, function(t) { + _r(n, e, t); + }); +} +function _r(n, e, r) { + var t = n.node(r), i = t.parent; + n.edge(r, i).cutvalue = $n(n, e, r); +} +function $n(n, e, r) { + var t = n.node(r), i = t.parent, o = !0, a = e.edge(r, i), u = 0; + return a || (o = !1, a = e.edge(i, r)), u = a.weight, s(e.nodeEdges(r), function(d) { + var f = d.v === r, c = f ? d.w : d.v; + if (c !== i) { + var h = f === o, l = e.edge(d).weight; + if (u += h ? l : -l, Ir(n, r, c)) { + var v = n.edge(r, c).cutvalue; + u += h ? -v : v; + } + } + }), u; +} +function an(n, e) { + arguments.length < 2 && (e = n.nodes()[0]), Gn(n, {}, 1, e); +} +function Gn(n, e, r, t, i) { + var o = r, a = n.node(t); + return e[t] = !0, s(n.neighbors(t), function(u) { + w(e, u) || (r = Gn(n, e, r, u, t)); + }), a.low = o, a.lim = r++, i ? a.parent = i : delete a.parent, r; +} +function Vn(n) { + return Z(n.edges(), function(e) { + return n.edge(e).cutvalue < 0; + }); +} +function Yn(n, e, r) { + var t = r.v, i = r.w; + e.hasEdge(t, i) || (t = r.w, i = r.v); + var o = n.node(t), a = n.node(i), u = o, d = !1; + o.lim > a.lim && (u = a, d = !0); + var f = M(e.edges(), function(c) { + return d === pn(n, n.node(c.v), u) && d !== pn(n, n.node(c.w), u); + }); + return nn(f, function(c) { + return T(e, c); + }); +} +function Dn(n, e, r, t) { + var i = r.v, o = r.w; + n.removeEdge(i, o), n.setEdge(t.v, t.w, {}), an(n), tn(n, e), Cr(n, e); +} +function Cr(n, e) { + var r = Z(n.nodes(), function(i) { + return !e.node(i).parent; + }), t = Lr(n, r); + t = t.slice(1), s(t, function(i) { + var o = n.node(i).parent, a = e.edge(i, o), u = !1; + a || (a = e.edge(o, i), u = !0), e.node(i).rank = e.node(o).rank + (u ? a.minlen : -a.minlen); + }); +} +function Ir(n, e, r) { + return n.hasEdge(e, r); +} +function pn(n, e, r) { + return r.low <= e.lim && e.lim <= r.lim; +} +function Rr(n) { + switch (n.graph().ranker) { + case "network-simplex": + wn(n); + break; + case "tight-tree": + Mr(n); + break; + case "longest-path": + Tr(n); + break; + default: + wn(n); + } +} +var Tr = rn; +function Mr(n) { + rn(n), Fn(n); +} +function wn(n) { + k(n); +} +function Or(n) { + var e = C(n, "root", {}, "_root"), r = Pr(n), t = E(y(r)) - 1, i = 2 * t + 1; + n.graph().nestingRoot = e, s(n.edges(), function(a) { + n.edge(a).minlen *= i; + }); + var o = Sr(n) + 1; + s(n.children(), function(a) { + qn(n, e, i, o, t, r, a); + }), n.graph().nodeRankFactor = i; +} +function qn(n, e, r, t, i, o, a) { + var u = n.children(a); + if (!u.length) { + a !== e && n.setEdge(e, a, { weight: 0, minlen: r }); + return; + } + var d = hn(n, "_bt"), f = hn(n, "_bb"), c = n.node(a); + n.setParent(d, a), c.borderTop = d, n.setParent(f, a), c.borderBottom = f, s(u, function(h) { + qn(n, e, r, t, i, o, h); + var l = n.node(h), v = l.borderTop ? l.borderTop : h, p = l.borderBottom ? l.borderBottom : h, b = l.borderTop ? t : 2 * t, I = v !== p ? 1 : i - o[a] + 1; + n.setEdge(d, v, { + weight: b, + minlen: I, + nestingEdge: !0 + }), n.setEdge(p, f, { + weight: b, + minlen: I, + nestingEdge: !0 + }); + }), n.parent(a) || n.setEdge(e, d, { weight: 0, minlen: i + o[a] }); +} +function Pr(n) { + var e = {}; + function r(t, i) { + var o = n.children(t); + o && o.length && s(o, function(a) { + r(a, i + 1); + }), e[t] = i; + } + return s(n.children(), function(t) { + r(t, 1); + }), e; +} +function Sr(n) { + return V( + n.edges(), + function(e, r) { + return e + n.edge(r).weight; + }, + 0 + ); +} +function Fr(n) { + var e = n.graph(); + n.removeNode(e.nestingRoot), delete e.nestingRoot, s(n.edges(), function(r) { + var t = n.edge(r); + t.nestingEdge && n.removeEdge(r); + }); +} +function Ar(n, e, r) { + var t = {}, i; + s(r, function(o) { + for (var a = n.parent(o), u, d; a; ) { + if (u = n.parent(a), u ? (d = t[u], t[u] = a) : (d = i, i = a), d && d !== a) { + e.setEdge(d, a); + return; + } + a = u; + } + }); +} +function Br(n, e, r) { + var t = $r(n), i = new x({ compound: !0 }).setGraph({ root: t }).setDefaultNodeLabel(function(o) { + return n.node(o); + }); + return s(n.nodes(), function(o) { + var a = n.node(o), u = n.parent(o); + (a.rank === e || a.minRank <= e && e <= a.maxRank) && (i.setNode(o), i.setParent(o, u || t), s(n[r](o), function(d) { + var f = d.v === o ? d.w : d.v, c = i.edge(f, o), h = g(c) ? 0 : c.weight; + i.setEdge(f, o, { weight: n.edge(d).weight + h }); + }), w(a, "minRank") && i.setNode(o, { + borderLeft: a.borderLeft[e], + borderRight: a.borderRight[e] + })); + }), i; +} +function $r(n) { + for (var e; n.hasNode(e = en("_root")); ) + ; + return e; +} +function Gr(n, e) { + for (var r = 0, t = 1; t < e.length; ++t) + r += Vr(n, e[t - 1], e[t]); + return r; +} +function Vr(n, e, r) { + for (var t = Je( + r, + m(r, function(f, c) { + return c; + }) + ), i = _( + m(e, function(f) { + return O( + m(n.outEdges(f), function(c) { + return { pos: t[c.w], weight: n.edge(c).weight }; + }), + "pos" + ); + }) + ), o = 1; o < r.length; ) + o <<= 1; + var a = 2 * o - 1; + o -= 1; + var u = m(new Array(a), function() { + return 0; + }), d = 0; + return s( + // @ts-expect-error + i.forEach(function(f) { + var c = f.pos + o; + u[c] += f.weight; + for (var h = 0; c > 0; ) + c % 2 && (h += u[c + 1]), c = c - 1 >> 1, u[c] += f.weight; + d += f.weight * h; + }) + ), d; +} +function Yr(n) { + var e = {}, r = M(n.nodes(), function(u) { + return !n.children(u).length; + }), t = E( + m(r, function(u) { + return n.node(u).rank; + }) + ), i = m(N(t + 1), function() { + return []; + }); + function o(u) { + if (!w(e, u)) { + e[u] = !0; + var d = n.node(u); + i[d.rank].push(u), s(n.successors(u), o); + } + } + var a = O(r, function(u) { + return n.node(u).rank; + }); + return s(a, o), i; +} +function Dr(n, e) { + return m(e, function(r) { + var t = n.inEdges(r); + if (t.length) { + var i = V( + t, + function(o, a) { + var u = n.edge(a), d = n.node(a.v); + return { + sum: o.sum + u.weight * d.order, + weight: o.weight + u.weight + }; + }, + { sum: 0, weight: 0 } + ); + return { + v: r, + barycenter: i.sum / i.weight, + weight: i.weight + }; + } else + return { v: r }; + }); +} +function qr(n, e) { + var r = {}; + s(n, function(i, o) { + var a = r[i.v] = { + indegree: 0, + in: [], + out: [], + vs: [i.v], + i: o + }; + g(i.barycenter) || (a.barycenter = i.barycenter, a.weight = i.weight); + }), s(e.edges(), function(i) { + var o = r[i.v], a = r[i.w]; + !g(o) && !g(a) && (a.indegree++, o.out.push(r[i.w])); + }); + var t = M(r, function(i) { + return !i.indegree; + }); + return Wr(t); +} +function Wr(n) { + var e = []; + function r(o) { + return function(a) { + a.merged || (g(a.barycenter) || g(o.barycenter) || a.barycenter >= o.barycenter) && Xr(o, a); + }; + } + function t(o) { + return function(a) { + a.in.push(o), --a.indegree === 0 && n.push(a); + }; + } + for (; n.length; ) { + var i = n.pop(); + e.push(i), s(i.in.reverse(), r(i)), s(i.out, t(i)); + } + return m( + M(e, function(o) { + return !o.merged; + }), + function(o) { + return G(o, ["vs", "i", "barycenter", "weight"]); + } + ); +} +function Xr(n, e) { + var r = 0, t = 0; + n.weight && (r += n.barycenter * n.weight, t += n.weight), e.weight && (r += e.barycenter * e.weight, t += e.weight), n.vs = e.vs.concat(n.vs), n.barycenter = r / t, n.weight = t, n.i = Math.min(e.i, n.i), e.merged = !0; +} +function zr(n, e) { + var r = fr(n, function(c) { + return w(c, "barycenter"); + }), t = r.lhs, i = O(r.rhs, function(c) { + return -c.i; + }), o = [], a = 0, u = 0, d = 0; + t.sort(Ur(!!e)), d = mn(o, i, d), s(t, function(c) { + d += c.vs.length, o.push(c.vs), a += c.barycenter * c.weight, u += c.weight, d = mn(o, i, d); + }); + var f = { vs: _(o) }; + return u && (f.barycenter = a / u, f.weight = u), f; +} +function mn(n, e, r) { + for (var t; e.length && (t = $(e)).i <= r; ) + e.pop(), n.push(t.vs), r++; + return r; +} +function Ur(n) { + return function(e, r) { + return e.barycenter < r.barycenter ? -1 : e.barycenter > r.barycenter ? 1 : n ? r.i - e.i : e.i - r.i; + }; +} +function Wn(n, e, r, t) { + var i = n.children(e), o = n.node(e), a = o ? o.borderLeft : void 0, u = o ? o.borderRight : void 0, d = {}; + a && (i = M(i, function(p) { + return p !== a && p !== u; + })); + var f = Dr(n, i); + s(f, function(p) { + if (n.children(p.v).length) { + var b = Wn(n, p.v, r, t); + d[p.v] = b, w(b, "barycenter") && jr(p, b); + } + }); + var c = qr(f, r); + Hr(c, d); + var h = zr(c, t); + if (a && (h.vs = _([a, h.vs, u]), n.predecessors(a).length)) { + var l = n.node(n.predecessors(a)[0]), v = n.node(n.predecessors(u)[0]); + w(h, "barycenter") || (h.barycenter = 0, h.weight = 0), h.barycenter = (h.barycenter * h.weight + l.order + v.order) / (h.weight + 2), h.weight += 2; + } + return h; +} +function Hr(n, e) { + s(n, function(r) { + r.vs = _( + r.vs.map(function(t) { + return e[t] ? e[t].vs : t; + }) + ); + }); +} +function jr(n, e) { + g(n.barycenter) ? (n.barycenter = e.barycenter, n.weight = e.weight) : (n.barycenter = (n.barycenter * n.weight + e.barycenter * e.weight) / (n.weight + e.weight), n.weight += e.weight); +} +function Jr(n) { + var e = Pn(n), r = bn(n, N(1, e + 1), "inEdges"), t = bn(n, N(e - 1, -1, -1), "outEdges"), i = Yr(n); + gn(n, i); + for (var o = Number.POSITIVE_INFINITY, a, u = 0, d = 0; d < 4; ++u, ++d) { + Kr(u % 2 ? r : t, u % 4 >= 2), i = D(n); + var f = Gr(n, i); + f < o && (d = 0, a = ke(i), o = f); + } + gn(n, a); +} +function bn(n, e, r) { + return m(e, function(t) { + return Br(n, t, r); + }); +} +function Kr(n, e) { + var r = new x(); + s(n, function(t) { + var i = t.graph().root, o = Wn(t, i, r, e); + s(o.vs, function(a, u) { + t.node(a).order = u; + }), Ar(t, r, o.vs); + }); +} +function gn(n, e) { + s(e, function(r) { + s(r, function(t, i) { + n.node(t).order = i; + }); + }); +} +function Zr(n) { + var e = nt(n); + s(n.graph().dummyChains, function(r) { + for (var t = n.node(r), i = t.edgeObj, o = Qr(n, e, i.v, i.w), a = o.path, u = o.lca, d = 0, f = a[d], c = !0; r !== i.w; ) { + if (t = n.node(r), c) { + for (; (f = a[d]) !== u && n.node(f).maxRank < t.rank; ) + d++; + f === u && (c = !1); + } + if (!c) { + for (; d < a.length - 1 && n.node(f = a[d + 1]).minRank <= t.rank; ) + d++; + f = a[d]; + } + n.setParent(r, f), r = n.successors(r)[0]; + } + }); +} +function Qr(n, e, r, t) { + var i = [], o = [], a = Math.min(e[r].low, e[t].low), u = Math.max(e[r].lim, e[t].lim), d, f; + d = r; + do + d = n.parent(d), i.push(d); + while (d && (e[d].low > a || u > e[d].lim)); + for (f = d, d = t; (d = n.parent(d)) !== f; ) + o.push(d); + return { path: i.concat(o.reverse()), lca: f }; +} +function nt(n) { + var e = {}, r = 0; + function t(i) { + var o = r; + s(n.children(i), t), e[i] = { low: o, lim: r++ }; + } + return s(n.children(), t), e; +} +function et(n, e) { + var r = {}; + function t(i, o) { + var a = 0, u = 0, d = i.length, f = $(o); + return s(o, function(c, h) { + var l = tt(n, c), v = l ? n.node(l).order : d; + (l || c === f) && (s(o.slice(u, h + 1), function(p) { + s(n.predecessors(p), function(b) { + var I = n.node(b), on = I.order; + (on < a || v < on) && !(I.dummy && n.node(p).dummy) && Xn(r, b, p); + }); + }), u = h + 1, a = v); + }), o; + } + return V(e, t), r; +} +function rt(n, e) { + var r = {}; + function t(o, a, u, d, f) { + var c; + s(N(a, u), function(h) { + c = o[h], n.node(c).dummy && s(n.predecessors(c), function(l) { + var v = n.node(l); + v.dummy && (v.order < d || v.order > f) && Xn(r, l, c); + }); + }); + } + function i(o, a) { + var u = -1, d, f = 0; + return s(a, function(c, h) { + if (n.node(c).dummy === "border") { + var l = n.predecessors(c); + l.length && (d = n.node(l[0]).order, t(a, f, h, u, d), f = h, u = d); + } + t(a, f, a.length, d, o.length); + }), a; + } + return V(e, i), r; +} +function tt(n, e) { + if (n.node(e).dummy) + return Z(n.predecessors(e), function(r) { + return n.node(r).dummy; + }); +} +function Xn(n, e, r) { + if (e > r) { + var t = e; + e = r, r = t; + } + var i = n[e]; + i || (n[e] = i = {}), i[r] = !0; +} +function it(n, e, r) { + if (e > r) { + var t = e; + e = r, r = t; + } + return w(n[e], r); +} +function at(n, e, r, t) { + var i = {}, o = {}, a = {}; + return s(e, function(u) { + s(u, function(d, f) { + i[d] = d, o[d] = d, a[d] = f; + }); + }), s(e, function(u) { + var d = -1; + s(u, function(f) { + var c = t(f); + if (c.length) { + c = O(c, function(b) { + return a[b]; + }); + for (var h = (c.length - 1) / 2, l = Math.floor(h), v = Math.ceil(h); l <= v; ++l) { + var p = c[l]; + o[f] === f && d < a[p] && !it(r, f, p) && (o[p] = f, o[f] = i[f] = i[p], d = a[p]); + } + } + }); + }), { root: i, align: o }; +} +function ot(n, e, r, t, i) { + var o = {}, a = ut(n, e, r, i), u = i ? "borderLeft" : "borderRight"; + function d(h, l) { + for (var v = a.nodes(), p = v.pop(), b = {}; p; ) + b[p] ? h(p) : (b[p] = !0, v.push(p), v = v.concat(l(p))), p = v.pop(); + } + function f(h) { + o[h] = a.inEdges(h).reduce(function(l, v) { + return Math.max(l, o[v.v] + a.edge(v)); + }, 0); + } + function c(h) { + var l = a.outEdges(h).reduce(function(p, b) { + return Math.min(p, o[b.w] - a.edge(b)); + }, Number.POSITIVE_INFINITY), v = n.node(h); + l !== Number.POSITIVE_INFINITY && v.borderType !== u && (o[h] = Math.max(o[h], l)); + } + return d(f, a.predecessors.bind(a)), d(c, a.successors.bind(a)), s(t, function(h) { + o[h] = o[r[h]]; + }), o; +} +function ut(n, e, r, t) { + var i = new x(), o = n.graph(), a = ht(o.nodesep, o.edgesep, t); + return s(e, function(u) { + var d; + s(u, function(f) { + var c = r[f]; + if (i.setNode(c), d) { + var h = r[d], l = i.edge(h, c); + i.setEdge(h, c, Math.max(a(n, f, d), l || 0)); + } + d = f; + }); + }), i; +} +function dt(n, e) { + return nn(y(e), function(r) { + var t = Number.NEGATIVE_INFINITY, i = Number.POSITIVE_INFINITY; + return Me(r, function(o, a) { + var u = lt(n, a) / 2; + t = Math.max(o + u, t), i = Math.min(o - u, i); + }), t - i; + }); +} +function ft(n, e) { + var r = y(e), t = R(r), i = E(r); + s(["u", "d"], function(o) { + s(["l", "r"], function(a) { + var u = o + a, d = n[u], f; + if (d !== e) { + var c = y(d); + f = a === "l" ? t - R(c) : i - E(c), f && (n[u] = Y(d, function(h) { + return h + f; + })); + } + }); + }); +} +function st(n, e) { + return Y(n.ul, function(r, t) { + if (e) + return n[e.toLowerCase()][t]; + var i = O(m(n, t)); + return (i[1] + i[2]) / 2; + }); +} +function ct(n) { + var e = D(n), r = H(et(n, e), rt(n, e)), t = {}, i; + s(["u", "d"], function(a) { + i = a === "u" ? e : y(e).reverse(), s(["l", "r"], function(u) { + u === "r" && (i = m(i, function(h) { + return y(h).reverse(); + })); + var d = (a === "u" ? n.predecessors : n.successors).bind(n), f = at(n, i, r, d), c = ot(n, i, f.root, f.align, u === "r"); + u === "r" && (c = Y(c, function(h) { + return -h; + })), t[a + u] = c; + }); + }); + var o = dt(n, t); + return ft(t, o), st(t, n.graph().align); +} +function ht(n, e, r) { + return function(t, i, o) { + var a = t.node(i), u = t.node(o), d = 0, f; + if (d += a.width / 2, w(a, "labelpos")) + switch (a.labelpos.toLowerCase()) { + case "l": + f = -a.width / 2; + break; + case "r": + f = a.width / 2; + break; + } + if (f && (d += r ? f : -f), f = 0, d += (a.dummy ? e : n) / 2, d += (u.dummy ? e : n) / 2, d += u.width / 2, w(u, "labelpos")) + switch (u.labelpos.toLowerCase()) { + case "l": + f = u.width / 2; + break; + case "r": + f = -u.width / 2; + break; + } + return f && (d += r ? f : -f), f = 0, d; + }; +} +function lt(n, e) { + return n.node(e).width; +} +function vt(n) { + n = On(n), pt(n), Oe(ct(n), function(e, r) { + n.node(r).x = e; + }); +} +function pt(n) { + var e = D(n), r = n.graph().ranksep, t = 0; + s(e, function(i) { + var o = E( + m(i, function(a) { + return n.node(a).height; + }) + ); + s(i, function(a) { + n.node(a).y = t + o / 2; + }), t += o + r; + }); +} +function Yt(n, e) { + var r = e && e.debugTiming ? sr : cr; + r("layout", function() { + var t = r(" buildLayoutGraph", function() { + return _t(n); + }); + r(" runLayout", function() { + wt(t, r); + }), r(" updateInputGraph", function() { + mt(n, t); + }); + }); +} +function wt(n, e) { + e(" makeSpaceForEdgeLabels", function() { + Ct(n); + }), e(" removeSelfEdges", function() { + At(n); + }), e(" acyclic", function() { + tr(n); + }), e(" nestingGraph.run", function() { + Or(n); + }), e(" rank", function() { + Rr(On(n)); + }), e(" injectEdgeLabelProxies", function() { + It(n); + }), e(" removeEmptyRanks", function() { + dr(n); + }), e(" nestingGraph.cleanup", function() { + Fr(n); + }), e(" normalizeRanks", function() { + ur(n); + }), e(" assignRankMinMax", function() { + Rt(n); + }), e(" removeEdgeLabelProxies", function() { + Tt(n); + }), e(" normalize.run", function() { + mr(n); + }), e(" parentDummyChains", function() { + Zr(n); + }), e(" addBorderSegments", function() { + hr(n); + }), e(" order", function() { + Jr(n); + }), e(" insertSelfEdges", function() { + Bt(n); + }), e(" adjustCoordinateSystem", function() { + lr(n); + }), e(" position", function() { + vt(n); + }), e(" positionSelfEdges", function() { + $t(n); + }), e(" removeBorderNodes", function() { + Ft(n); + }), e(" normalize.undo", function() { + gr(n); + }), e(" fixupEdgeLabelCoords", function() { + Pt(n); + }), e(" undoCoordinateSystem", function() { + vr(n); + }), e(" translateGraph", function() { + Mt(n); + }), e(" assignNodeIntersects", function() { + Ot(n); + }), e(" reversePoints", function() { + St(n); + }), e(" acyclic.undo", function() { + ar(n); + }); +} +function mt(n, e) { + s(n.nodes(), function(r) { + var t = n.node(r), i = e.node(r); + t && (t.x = i.x, t.y = i.y, e.children(r).length && (t.width = i.width, t.height = i.height)); + }), s(n.edges(), function(r) { + var t = n.edge(r), i = e.edge(r); + t.points = i.points, w(i, "x") && (t.x = i.x, t.y = i.y); + }), n.graph().width = e.graph().width, n.graph().height = e.graph().height; +} +var bt = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"], gt = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" }, xt = ["acyclicer", "ranker", "rankdir", "align"], Et = ["width", "height"], kt = { width: 0, height: 0 }, yt = ["minlen", "weight", "width", "height", "labeloffset"], Nt = { + minlen: 1, + weight: 1, + width: 0, + height: 0, + labeloffset: 10, + labelpos: "r" +}, Lt = ["labelpos"]; +function _t(n) { + var e = new x({ multigraph: !0, compound: !0 }), r = U(n.graph()); + return e.setGraph( + H({}, gt, z(r, bt), G(r, xt)) + ), s(n.nodes(), function(t) { + var i = U(n.node(t)); + e.setNode(t, _e(z(i, Et), kt)), e.setParent(t, n.parent(t)); + }), s(n.edges(), function(t) { + var i = U(n.edge(t)); + e.setEdge( + t, + H({}, Nt, z(i, yt), G(i, Lt)) + ); + }), e; +} +function Ct(n) { + var e = n.graph(); + e.ranksep /= 2, s(n.edges(), function(r) { + var t = n.edge(r); + t.minlen *= 2, t.labelpos.toLowerCase() !== "c" && (e.rankdir === "TB" || e.rankdir === "BT" ? t.width += t.labeloffset : t.height += t.labeloffset); + }); +} +function It(n) { + s(n.edges(), function(e) { + var r = n.edge(e); + if (r.width && r.height) { + var t = n.node(e.v), i = n.node(e.w), o = { rank: (i.rank - t.rank) / 2 + t.rank, e }; + C(n, "edge-proxy", o, "_ep"); + } + }); +} +function Rt(n) { + var e = 0; + s(n.nodes(), function(r) { + var t = n.node(r); + t.borderTop && (t.minRank = n.node(t.borderTop).rank, t.maxRank = n.node(t.borderBottom).rank, e = E(e, t.maxRank)); + }), n.graph().maxRank = e; +} +function Tt(n) { + s(n.nodes(), function(e) { + var r = n.node(e); + r.dummy === "edge-proxy" && (n.edge(r.e).labelRank = r.rank, n.removeNode(e)); + }); +} +function Mt(n) { + var e = Number.POSITIVE_INFINITY, r = 0, t = Number.POSITIVE_INFINITY, i = 0, o = n.graph(), a = o.marginx || 0, u = o.marginy || 0; + function d(f) { + var c = f.x, h = f.y, l = f.width, v = f.height; + e = Math.min(e, c - l / 2), r = Math.max(r, c + l / 2), t = Math.min(t, h - v / 2), i = Math.max(i, h + v / 2); + } + s(n.nodes(), function(f) { + d(n.node(f)); + }), s(n.edges(), function(f) { + var c = n.edge(f); + w(c, "x") && d(c); + }), e -= a, t -= u, s(n.nodes(), function(f) { + var c = n.node(f); + c.x -= e, c.y -= t; + }), s(n.edges(), function(f) { + var c = n.edge(f); + s(c.points, function(h) { + h.x -= e, h.y -= t; + }), w(c, "x") && (c.x -= e), w(c, "y") && (c.y -= t); + }), o.width = r - e + a, o.height = i - t + u; +} +function Ot(n) { + s(n.edges(), function(e) { + var r = n.edge(e), t = n.node(e.v), i = n.node(e.w), o, a; + r.points ? (o = r.points[0], a = r.points[r.points.length - 1]) : (r.points = [], o = i, a = t), r.points.unshift(cn(t, o)), r.points.push(cn(i, a)); + }); +} +function Pt(n) { + s(n.edges(), function(e) { + var r = n.edge(e); + if (w(r, "x")) + switch ((r.labelpos === "l" || r.labelpos === "r") && (r.width -= r.labeloffset), r.labelpos) { + case "l": + r.x -= r.width / 2 + r.labeloffset; + break; + case "r": + r.x += r.width / 2 + r.labeloffset; + break; + } + }); +} +function St(n) { + s(n.edges(), function(e) { + var r = n.edge(e); + r.reversed && r.points.reverse(); + }); +} +function Ft(n) { + s(n.nodes(), function(e) { + if (n.children(e).length) { + var r = n.node(e), t = n.node(r.borderTop), i = n.node(r.borderBottom), o = n.node($(r.borderLeft)), a = n.node($(r.borderRight)); + r.width = Math.abs(a.x - o.x), r.height = Math.abs(i.y - t.y), r.x = o.x + r.width / 2, r.y = t.y + r.height / 2; + } + }), s(n.nodes(), function(e) { + n.node(e).dummy === "border" && n.removeNode(e); + }); +} +function At(n) { + s(n.edges(), function(e) { + if (e.v === e.w) { + var r = n.node(e.v); + r.selfEdges || (r.selfEdges = []), r.selfEdges.push({ e, label: n.edge(e) }), n.removeEdge(e); + } + }); +} +function Bt(n) { + var e = D(n); + s(e, function(r) { + var t = 0; + s(r, function(i, o) { + var a = n.node(i); + a.order = o + t, s(a.selfEdges, function(u) { + C( + n, + "selfedge", + { + width: u.label.width, + height: u.label.height, + rank: a.rank, + order: o + ++t, + e: u.e, + label: u.label + }, + "_se" + ); + }), delete a.selfEdges; + }); + }); +} +function $t(n) { + s(n.nodes(), function(e) { + var r = n.node(e); + if (r.dummy === "selfedge") { + var t = n.node(r.e.v), i = t.x + t.width / 2, o = t.y, a = r.x - i, u = t.height / 2; + n.setEdge(r.e, r.label), n.removeNode(e), r.label.points = [ + { x: i + 2 * a / 3, y: o - u }, + { x: i + 5 * a / 6, y: o - u }, + { x: i + a, y: o }, + { x: i + 5 * a / 6, y: o + u }, + { x: i + 2 * a / 3, y: o + u } + ], r.label.x = r.x, r.label.y = r.y; + } + }); +} +function z(n, e) { + return Y(G(n, e), Number); +} +function U(n) { + var e = {}; + return s(n, function(r, t) { + e[t.toLowerCase()] = r; + }), e; +} +export { + _e as d, + Yt as l, + m, + G as p, + N as r, + en as u +}; diff --git a/assets/lib/mermaid/line-24d93f1b.js b/assets/lib/mermaid/line-24d93f1b.js new file mode 100644 index 000000000..f0389835b --- /dev/null +++ b/assets/lib/mermaid/line-24d93f1b.js @@ -0,0 +1,34 @@ +import { a as h } from "./array-2ff2c7a6.js"; +import { w as d, c as o } from "./path-428ebac9.js"; +import { n as v } from "./mermaid-9f2aa176.js"; +function w(t) { + return t[0]; +} +function b(t) { + return t[1]; +} +function P(t, u) { + var s = o(!0), i = null, l = v, r = null, m = d(e); + t = typeof t == "function" ? t : t === void 0 ? w : o(t), u = typeof u == "function" ? u : u === void 0 ? b : o(u); + function e(n) { + var f, g = (n = h(n)).length, p, c = !1, a; + for (i == null && (r = l(a = m())), f = 0; f <= g; ++f) + !(f < g && s(p = n[f], f, n)) === c && ((c = !c) ? r.lineStart() : r.lineEnd()), c && r.point(+t(p, f, n), +u(p, f, n)); + if (a) + return r = null, a + "" || null; + } + return e.x = function(n) { + return arguments.length ? (t = typeof n == "function" ? n : o(+n), e) : t; + }, e.y = function(n) { + return arguments.length ? (u = typeof n == "function" ? n : o(+n), e) : u; + }, e.defined = function(n) { + return arguments.length ? (s = typeof n == "function" ? n : o(!!n), e) : s; + }, e.curve = function(n) { + return arguments.length ? (l = n, i != null && (r = l(i)), e) : l; + }, e.context = function(n) { + return arguments.length ? (n == null ? i = r = null : r = l(i = n), e) : i; + }, e; +} +export { + P as l +}; diff --git a/assets/lib/mermaid/line-87f517ef.js b/assets/lib/mermaid/line-87f517ef.js new file mode 100644 index 000000000..8e82b21bc --- /dev/null +++ b/assets/lib/mermaid/line-87f517ef.js @@ -0,0 +1,50 @@ +import { a as array } from "./array-b7dcf730.js"; +import { w as withPath, c as constant } from "./path-39bad7e2.js"; +import { n as curveLinear } from "./mermaid-dcacb631.js"; +function x(p) { + return p[0]; +} +function y(p) { + return p[1]; +} +function line(x$1, y$1) { + var defined = constant(true), context = null, curve = curveLinear, output = null, path = withPath(line2); + x$1 = typeof x$1 === "function" ? x$1 : x$1 === void 0 ? x : constant(x$1); + y$1 = typeof y$1 === "function" ? y$1 : y$1 === void 0 ? y : constant(y$1); + function line2(data) { + var i, n = (data = array(data)).length, d, defined0 = false, buffer; + if (context == null) + output = curve(buffer = path()); + for (i = 0; i <= n; ++i) { + if (!(i < n && defined(d = data[i], i, data)) === defined0) { + if (defined0 = !defined0) + output.lineStart(); + else + output.lineEnd(); + } + if (defined0) + output.point(+x$1(d, i, data), +y$1(d, i, data)); + } + if (buffer) + return output = null, buffer + "" || null; + } + line2.x = function(_) { + return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant(+_), line2) : x$1; + }; + line2.y = function(_) { + return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant(+_), line2) : y$1; + }; + line2.defined = function(_) { + return arguments.length ? (defined = typeof _ === "function" ? _ : constant(!!_), line2) : defined; + }; + line2.curve = function(_) { + return arguments.length ? (curve = _, context != null && (output = curve(context)), line2) : curve; + }; + line2.context = function(_) { + return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line2) : context; + }; + return line2; +} +export { + line as l +}; diff --git a/assets/lib/mermaid/linear-0ad15847.js b/assets/lib/mermaid/linear-0ad15847.js new file mode 100644 index 000000000..e062524b8 --- /dev/null +++ b/assets/lib/mermaid/linear-0ad15847.js @@ -0,0 +1,595 @@ +import { $ as constant, a0 as interpolateNumber, a1 as color, a2 as interpolateRgb, a3 as interpolateString } from "./mermaid-dcacb631.js"; +import { i as initRange } from "./init-cc95ec8e.js"; +function ascending(a, b) { + return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} +function descending(a, b) { + return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} +function bisector(f) { + let compare1, compare2, delta; + if (f.length !== 2) { + compare1 = ascending; + compare2 = (d, x) => ascending(f(d), x); + delta = (d, x) => f(d) - x; + } else { + compare1 = f === ascending || f === descending ? f : zero; + compare2 = f; + delta = f; + } + function left(a, x, lo = 0, hi = a.length) { + if (lo < hi) { + if (compare1(x, x) !== 0) + return hi; + do { + const mid = lo + hi >>> 1; + if (compare2(a[mid], x) < 0) + lo = mid + 1; + else + hi = mid; + } while (lo < hi); + } + return lo; + } + function right(a, x, lo = 0, hi = a.length) { + if (lo < hi) { + if (compare1(x, x) !== 0) + return hi; + do { + const mid = lo + hi >>> 1; + if (compare2(a[mid], x) <= 0) + lo = mid + 1; + else + hi = mid; + } while (lo < hi); + } + return lo; + } + function center(a, x, lo = 0, hi = a.length) { + const i = left(a, x, lo, hi - 1); + return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i; + } + return { left, center, right }; +} +function zero() { + return 0; +} +function number$1(x) { + return x === null ? NaN : +x; +} +const ascendingBisect = bisector(ascending); +const bisectRight = ascendingBisect.right; +bisector(number$1).center; +const bisect = bisectRight; +const e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2); +function tickSpec(start, stop, count) { + const step = (stop - start) / Math.max(0, count), power = Math.floor(Math.log10(step)), error = step / Math.pow(10, power), factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1; + let i1, i2, inc; + if (power < 0) { + inc = Math.pow(10, -power) / factor; + i1 = Math.round(start * inc); + i2 = Math.round(stop * inc); + if (i1 / inc < start) + ++i1; + if (i2 / inc > stop) + --i2; + inc = -inc; + } else { + inc = Math.pow(10, power) * factor; + i1 = Math.round(start / inc); + i2 = Math.round(stop / inc); + if (i1 * inc < start) + ++i1; + if (i2 * inc > stop) + --i2; + } + if (i2 < i1 && 0.5 <= count && count < 2) + return tickSpec(start, stop, count * 2); + return [i1, i2, inc]; +} +function ticks(start, stop, count) { + stop = +stop, start = +start, count = +count; + if (!(count > 0)) + return []; + if (start === stop) + return [start]; + const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count); + if (!(i2 >= i1)) + return []; + const n = i2 - i1 + 1, ticks2 = new Array(n); + if (reverse) { + if (inc < 0) + for (let i = 0; i < n; ++i) + ticks2[i] = (i2 - i) / -inc; + else + for (let i = 0; i < n; ++i) + ticks2[i] = (i2 - i) * inc; + } else { + if (inc < 0) + for (let i = 0; i < n; ++i) + ticks2[i] = (i1 + i) / -inc; + else + for (let i = 0; i < n; ++i) + ticks2[i] = (i1 + i) * inc; + } + return ticks2; +} +function tickIncrement(start, stop, count) { + stop = +stop, start = +start, count = +count; + return tickSpec(start, stop, count)[2]; +} +function tickStep(start, stop, count) { + stop = +stop, start = +start, count = +count; + const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count); + return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc); +} +function numberArray(a, b) { + if (!b) + b = []; + var n = a ? Math.min(b.length, a.length) : 0, c = b.slice(), i; + return function(t) { + for (i = 0; i < n; ++i) + c[i] = a[i] * (1 - t) + b[i] * t; + return c; + }; +} +function isNumberArray(x) { + return ArrayBuffer.isView(x) && !(x instanceof DataView); +} +function genericArray(a, b) { + var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x = new Array(na), c = new Array(nb), i; + for (i = 0; i < na; ++i) + x[i] = interpolate(a[i], b[i]); + for (; i < nb; ++i) + c[i] = b[i]; + return function(t) { + for (i = 0; i < na; ++i) + c[i] = x[i](t); + return c; + }; +} +function date(a, b) { + var d = /* @__PURE__ */ new Date(); + return a = +a, b = +b, function(t) { + return d.setTime(a * (1 - t) + b * t), d; + }; +} +function object(a, b) { + var i = {}, c = {}, k; + if (a === null || typeof a !== "object") + a = {}; + if (b === null || typeof b !== "object") + b = {}; + for (k in b) { + if (k in a) { + i[k] = interpolate(a[k], b[k]); + } else { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) + c[k] = i[k](t); + return c; + }; +} +function interpolate(a, b) { + var t = typeof b, c; + return b == null || t === "boolean" ? constant(b) : (t === "number" ? interpolateNumber : t === "string" ? (c = color(b)) ? (b = c, interpolateRgb) : interpolateString : b instanceof color ? interpolateRgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object : interpolateNumber)(a, b); +} +function interpolateRound(a, b) { + return a = +a, b = +b, function(t) { + return Math.round(a * (1 - t) + b * t); + }; +} +function formatDecimal(x) { + return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString("en").replace(/,/g, "") : x.toString(10); +} +function formatDecimalParts(x, p) { + if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) + return null; + var i, coefficient = x.slice(0, i); + return [ + coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, + +x.slice(i + 1) + ]; +} +function exponent(x) { + return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN; +} +function formatGroup(grouping, thousands) { + return function(value, width) { + var i = value.length, t = [], j = 0, g = grouping[0], length = 0; + while (i > 0 && g > 0) { + if (length + g + 1 > width) + g = Math.max(1, width - length); + t.push(value.substring(i -= g, i + g)); + if ((length += g + 1) > width) + break; + g = grouping[j = (j + 1) % grouping.length]; + } + return t.reverse().join(thousands); + }; +} +function formatNumerals(numerals) { + return function(value) { + return value.replace(/[0-9]/g, function(i) { + return numerals[+i]; + }); + }; +} +var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i; +function formatSpecifier(specifier) { + if (!(match = re.exec(specifier))) + throw new Error("invalid format: " + specifier); + var match; + return new FormatSpecifier({ + fill: match[1], + align: match[2], + sign: match[3], + symbol: match[4], + zero: match[5], + width: match[6], + comma: match[7], + precision: match[8] && match[8].slice(1), + trim: match[9], + type: match[10] + }); +} +formatSpecifier.prototype = FormatSpecifier.prototype; +function FormatSpecifier(specifier) { + this.fill = specifier.fill === void 0 ? " " : specifier.fill + ""; + this.align = specifier.align === void 0 ? ">" : specifier.align + ""; + this.sign = specifier.sign === void 0 ? "-" : specifier.sign + ""; + this.symbol = specifier.symbol === void 0 ? "" : specifier.symbol + ""; + this.zero = !!specifier.zero; + this.width = specifier.width === void 0 ? void 0 : +specifier.width; + this.comma = !!specifier.comma; + this.precision = specifier.precision === void 0 ? void 0 : +specifier.precision; + this.trim = !!specifier.trim; + this.type = specifier.type === void 0 ? "" : specifier.type + ""; +} +FormatSpecifier.prototype.toString = function() { + return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === void 0 ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === void 0 ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type; +}; +function formatTrim(s) { + out: + for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) { + switch (s[i]) { + case ".": + i0 = i1 = i; + break; + case "0": + if (i0 === 0) + i0 = i; + i1 = i; + break; + default: + if (!+s[i]) + break out; + if (i0 > 0) + i0 = 0; + break; + } + } + return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s; +} +var prefixExponent; +function formatPrefixAuto(x, p) { + var d = formatDecimalParts(x, p); + if (!d) + return x + ""; + var coefficient = d[0], exponent2 = d[1], i = exponent2 - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent2 / 3))) * 3) + 1, n = coefficient.length; + return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join("0") : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i) : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; +} +function formatRounded(x, p) { + var d = formatDecimalParts(x, p); + if (!d) + return x + ""; + var coefficient = d[0], exponent2 = d[1]; + return exponent2 < 0 ? "0." + new Array(-exponent2).join("0") + coefficient : coefficient.length > exponent2 + 1 ? coefficient.slice(0, exponent2 + 1) + "." + coefficient.slice(exponent2 + 1) : coefficient + new Array(exponent2 - coefficient.length + 2).join("0"); +} +const formatTypes = { + "%": (x, p) => (x * 100).toFixed(p), + "b": (x) => Math.round(x).toString(2), + "c": (x) => x + "", + "d": formatDecimal, + "e": (x, p) => x.toExponential(p), + "f": (x, p) => x.toFixed(p), + "g": (x, p) => x.toPrecision(p), + "o": (x) => Math.round(x).toString(8), + "p": (x, p) => formatRounded(x * 100, p), + "r": formatRounded, + "s": formatPrefixAuto, + "X": (x) => Math.round(x).toString(16).toUpperCase(), + "x": (x) => Math.round(x).toString(16) +}; +function identity$1(x) { + return x; +} +var map = Array.prototype.map, prefixes = ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"]; +function formatLocale(locale2) { + var group = locale2.grouping === void 0 || locale2.thousands === void 0 ? identity$1 : formatGroup(map.call(locale2.grouping, Number), locale2.thousands + ""), currencyPrefix = locale2.currency === void 0 ? "" : locale2.currency[0] + "", currencySuffix = locale2.currency === void 0 ? "" : locale2.currency[1] + "", decimal = locale2.decimal === void 0 ? "." : locale2.decimal + "", numerals = locale2.numerals === void 0 ? identity$1 : formatNumerals(map.call(locale2.numerals, String)), percent = locale2.percent === void 0 ? "%" : locale2.percent + "", minus = locale2.minus === void 0 ? "−" : locale2.minus + "", nan = locale2.nan === void 0 ? "NaN" : locale2.nan + ""; + function newFormat(specifier) { + specifier = formatSpecifier(specifier); + var fill = specifier.fill, align = specifier.align, sign = specifier.sign, symbol = specifier.symbol, zero2 = specifier.zero, width = specifier.width, comma = specifier.comma, precision = specifier.precision, trim = specifier.trim, type = specifier.type; + if (type === "n") + comma = true, type = "g"; + else if (!formatTypes[type]) + precision === void 0 && (precision = 12), trim = true, type = "g"; + if (zero2 || fill === "0" && align === "=") + zero2 = true, fill = "0", align = "="; + var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "", suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : ""; + var formatType = formatTypes[type], maybeSuffix = /[defgprs%]/.test(type); + precision = precision === void 0 ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision)); + function format2(value) { + var valuePrefix = prefix, valueSuffix = suffix, i, n, c; + if (type === "c") { + valueSuffix = formatType(value) + valueSuffix; + value = ""; + } else { + value = +value; + var valueNegative = value < 0 || 1 / value < 0; + value = isNaN(value) ? nan : formatType(Math.abs(value), precision); + if (trim) + value = formatTrim(value); + if (valueNegative && +value === 0 && sign !== "+") + valueNegative = false; + valuePrefix = (valueNegative ? sign === "(" ? sign : minus : sign === "-" || sign === "(" ? "" : sign) + valuePrefix; + valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : ""); + if (maybeSuffix) { + i = -1, n = value.length; + while (++i < n) { + if (c = value.charCodeAt(i), 48 > c || c > 57) { + valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix; + value = value.slice(0, i); + break; + } + } + } + } + if (comma && !zero2) + value = group(value, Infinity); + var length = valuePrefix.length + value.length + valueSuffix.length, padding = length < width ? new Array(width - length + 1).join(fill) : ""; + if (comma && zero2) + value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = ""; + switch (align) { + case "<": + value = valuePrefix + value + valueSuffix + padding; + break; + case "=": + value = valuePrefix + padding + value + valueSuffix; + break; + case "^": + value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); + break; + default: + value = padding + valuePrefix + value + valueSuffix; + break; + } + return numerals(value); + } + format2.toString = function() { + return specifier + ""; + }; + return format2; + } + function formatPrefix2(specifier, value) { + var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)), e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3, k = Math.pow(10, -e), prefix = prefixes[8 + e / 3]; + return function(value2) { + return f(k * value2) + prefix; + }; + } + return { + format: newFormat, + formatPrefix: formatPrefix2 + }; +} +var locale; +var format; +var formatPrefix; +defaultLocale({ + thousands: ",", + grouping: [3], + currency: ["$", ""] +}); +function defaultLocale(definition) { + locale = formatLocale(definition); + format = locale.format; + formatPrefix = locale.formatPrefix; + return locale; +} +function precisionFixed(step) { + return Math.max(0, -exponent(Math.abs(step))); +} +function precisionPrefix(step, value) { + return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step))); +} +function precisionRound(step, max) { + step = Math.abs(step), max = Math.abs(max) - step; + return Math.max(0, exponent(max) - exponent(step)) + 1; +} +function constants(x) { + return function() { + return x; + }; +} +function number(x) { + return +x; +} +var unit = [0, 1]; +function identity(x) { + return x; +} +function normalize(a, b) { + return (b -= a = +a) ? function(x) { + return (x - a) / b; + } : constants(isNaN(b) ? NaN : 0.5); +} +function clamper(a, b) { + var t; + if (a > b) + t = a, a = b, b = t; + return function(x) { + return Math.max(a, Math.min(b, x)); + }; +} +function bimap(domain, range, interpolate2) { + var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1]; + if (d1 < d0) + d0 = normalize(d1, d0), r0 = interpolate2(r1, r0); + else + d0 = normalize(d0, d1), r0 = interpolate2(r0, r1); + return function(x) { + return r0(d0(x)); + }; +} +function polymap(domain, range, interpolate2) { + var j = Math.min(domain.length, range.length) - 1, d = new Array(j), r = new Array(j), i = -1; + if (domain[j] < domain[0]) { + domain = domain.slice().reverse(); + range = range.slice().reverse(); + } + while (++i < j) { + d[i] = normalize(domain[i], domain[i + 1]); + r[i] = interpolate2(range[i], range[i + 1]); + } + return function(x) { + var i2 = bisect(domain, x, 1, j) - 1; + return r[i2](d[i2](x)); + }; +} +function copy(source, target) { + return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown()); +} +function transformer() { + var domain = unit, range = unit, interpolate$1 = interpolate, transform, untransform, unknown, clamp = identity, piecewise, output, input; + function rescale() { + var n = Math.min(domain.length, range.length); + if (clamp !== identity) + clamp = clamper(domain[0], domain[n - 1]); + piecewise = n > 2 ? polymap : bimap; + output = input = null; + return scale; + } + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate$1)))(transform(clamp(x))); + } + scale.invert = function(y) { + return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y))); + }; + scale.domain = function(_) { + return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice(); + }; + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), rescale()) : range.slice(); + }; + scale.rangeRound = function(_) { + return range = Array.from(_), interpolate$1 = interpolateRound, rescale(); + }; + scale.clamp = function(_) { + return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity; + }; + scale.interpolate = function(_) { + return arguments.length ? (interpolate$1 = _, rescale()) : interpolate$1; + }; + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + return function(t, u) { + transform = t, untransform = u; + return rescale(); + }; +} +function continuous() { + return transformer()(identity, identity); +} +function tickFormat(start, stop, count, specifier) { + var step = tickStep(start, stop, count), precision; + specifier = formatSpecifier(specifier == null ? ",f" : specifier); + switch (specifier.type) { + case "s": { + var value = Math.max(Math.abs(start), Math.abs(stop)); + if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) + specifier.precision = precision; + return formatPrefix(specifier, value); + } + case "": + case "e": + case "g": + case "p": + case "r": { + if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) + specifier.precision = precision - (specifier.type === "e"); + break; + } + case "f": + case "%": { + if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) + specifier.precision = precision - (specifier.type === "%") * 2; + break; + } + } + return format(specifier); +} +function linearish(scale) { + var domain = scale.domain; + scale.ticks = function(count) { + var d = domain(); + return ticks(d[0], d[d.length - 1], count == null ? 10 : count); + }; + scale.tickFormat = function(count, specifier) { + var d = domain(); + return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier); + }; + scale.nice = function(count) { + if (count == null) + count = 10; + var d = domain(); + var i0 = 0; + var i1 = d.length - 1; + var start = d[i0]; + var stop = d[i1]; + var prestep; + var step; + var maxIter = 10; + if (stop < start) { + step = start, start = stop, stop = step; + step = i0, i0 = i1, i1 = step; + } + while (maxIter-- > 0) { + step = tickIncrement(start, stop, count); + if (step === prestep) { + d[i0] = start; + d[i1] = stop; + return domain(d); + } else if (step > 0) { + start = Math.floor(start / step) * step; + stop = Math.ceil(stop / step) * step; + } else if (step < 0) { + start = Math.ceil(start * step) / step; + stop = Math.floor(stop * step) / step; + } else { + break; + } + prestep = step; + } + return scale; + }; + return scale; +} +function linear() { + var scale = continuous(); + scale.copy = function() { + return copy(scale, linear()); + }; + initRange.apply(scale, arguments); + return linearish(scale); +} +export { + copy as a, + bisector as b, + continuous as c, + linear as l, + tickStep as t +}; diff --git a/assets/lib/mermaid/linear-9bcf74c4.js b/assets/lib/mermaid/linear-9bcf74c4.js new file mode 100644 index 000000000..5f2df05db --- /dev/null +++ b/assets/lib/mermaid/linear-9bcf74c4.js @@ -0,0 +1,447 @@ +import { $ as un, a0 as I, a1 as U, a2 as Y, a3 as fn } from "./mermaid-9f2aa176.js"; +import { i as cn } from "./init-f9637058.js"; +function F(n, t) { + return n == null || t == null ? NaN : n < t ? -1 : n > t ? 1 : n >= t ? 0 : NaN; +} +function hn(n, t) { + return n == null || t == null ? NaN : t < n ? -1 : t > n ? 1 : t >= n ? 0 : NaN; +} +function _(n) { + let t, e, r; + n.length !== 2 ? (t = F, e = (u, c) => F(n(u), c), r = (u, c) => n(u) - c) : (t = n === F || n === hn ? n : mn, e = n, r = n); + function i(u, c, o = 0, l = u.length) { + if (o < l) { + if (t(c, c) !== 0) + return l; + do { + const h = o + l >>> 1; + e(u[h], c) < 0 ? o = h + 1 : l = h; + } while (o < l); + } + return o; + } + function f(u, c, o = 0, l = u.length) { + if (o < l) { + if (t(c, c) !== 0) + return l; + do { + const h = o + l >>> 1; + e(u[h], c) <= 0 ? o = h + 1 : l = h; + } while (o < l); + } + return o; + } + function a(u, c, o = 0, l = u.length) { + const h = i(u, c, o, l - 1); + return h > o && r(u[h - 1], c) > -r(u[h], c) ? h - 1 : h; + } + return { left: i, center: a, right: f }; +} +function mn() { + return 0; +} +function sn(n) { + return n === null ? NaN : +n; +} +const ln = _(F), dn = ln.right; +_(sn).center; +const gn = dn, yn = Math.sqrt(50), Mn = Math.sqrt(10), pn = Math.sqrt(2); +function R(n, t, e) { + const r = (t - n) / Math.max(0, e), i = Math.floor(Math.log10(r)), f = r / Math.pow(10, i), a = f >= yn ? 10 : f >= Mn ? 5 : f >= pn ? 2 : 1; + let u, c, o; + return i < 0 ? (o = Math.pow(10, -i) / a, u = Math.round(n * o), c = Math.round(t * o), u / o < n && ++u, c / o > t && --c, o = -o) : (o = Math.pow(10, i) * a, u = Math.round(n / o), c = Math.round(t / o), u * o < n && ++u, c * o > t && --c), c < u && 0.5 <= e && e < 2 ? R(n, t, e * 2) : [u, c, o]; +} +function wn(n, t, e) { + if (t = +t, n = +n, e = +e, !(e > 0)) + return []; + if (n === t) + return [n]; + const r = t < n, [i, f, a] = r ? R(t, n, e) : R(n, t, e); + if (!(f >= i)) + return []; + const u = f - i + 1, c = new Array(u); + if (r) + if (a < 0) + for (let o = 0; o < u; ++o) + c[o] = (f - o) / -a; + else + for (let o = 0; o < u; ++o) + c[o] = (f - o) * a; + else if (a < 0) + for (let o = 0; o < u; ++o) + c[o] = (i + o) / -a; + else + for (let o = 0; o < u; ++o) + c[o] = (i + o) * a; + return c; +} +function L(n, t, e) { + return t = +t, n = +n, e = +e, R(n, t, e)[2]; +} +function Nn(n, t, e) { + t = +t, n = +n, e = +e; + const r = t < n, i = r ? L(t, n, e) : L(n, t, e); + return (r ? -1 : 1) * (i < 0 ? 1 / -i : i); +} +function kn(n, t) { + t || (t = []); + var e = n ? Math.min(t.length, n.length) : 0, r = t.slice(), i; + return function(f) { + for (i = 0; i < e; ++i) + r[i] = n[i] * (1 - f) + t[i] * f; + return r; + }; +} +function xn(n) { + return ArrayBuffer.isView(n) && !(n instanceof DataView); +} +function An(n, t) { + var e = t ? t.length : 0, r = n ? Math.min(e, n.length) : 0, i = new Array(r), f = new Array(e), a; + for (a = 0; a < r; ++a) + i[a] = C(n[a], t[a]); + for (; a < e; ++a) + f[a] = t[a]; + return function(u) { + for (a = 0; a < r; ++a) + f[a] = i[a](u); + return f; + }; +} +function vn(n, t) { + var e = /* @__PURE__ */ new Date(); + return n = +n, t = +t, function(r) { + return e.setTime(n * (1 - r) + t * r), e; + }; +} +function Sn(n, t) { + var e = {}, r = {}, i; + (n === null || typeof n != "object") && (n = {}), (t === null || typeof t != "object") && (t = {}); + for (i in t) + i in n ? e[i] = C(n[i], t[i]) : r[i] = t[i]; + return function(f) { + for (i in e) + r[i] = e[i](f); + return r; + }; +} +function C(n, t) { + var e = typeof t, r; + return t == null || e === "boolean" ? un(t) : (e === "number" ? I : e === "string" ? (r = U(t)) ? (t = r, Y) : fn : t instanceof U ? Y : t instanceof Date ? vn : xn(t) ? kn : Array.isArray(t) ? An : typeof t.valueOf != "function" && typeof t.toString != "function" || isNaN(t) ? Sn : I)(n, t); +} +function bn(n, t) { + return n = +n, t = +t, function(e) { + return Math.round(n * (1 - e) + t * e); + }; +} +function jn(n) { + return Math.abs(n = Math.round(n)) >= 1e21 ? n.toLocaleString("en").replace(/,/g, "") : n.toString(10); +} +function E(n, t) { + if ((e = (n = t ? n.toExponential(t - 1) : n.toExponential()).indexOf("e")) < 0) + return null; + var e, r = n.slice(0, e); + return [ + r.length > 1 ? r[0] + r.slice(2) : r, + +n.slice(e + 1) + ]; +} +function v(n) { + return n = E(Math.abs(n)), n ? n[1] : NaN; +} +function Pn(n, t) { + return function(e, r) { + for (var i = e.length, f = [], a = 0, u = n[0], c = 0; i > 0 && u > 0 && (c + u + 1 > r && (u = Math.max(1, r - c)), f.push(e.substring(i -= u, i + u)), !((c += u + 1) > r)); ) + u = n[a = (a + 1) % n.length]; + return f.reverse().join(t); + }; +} +function zn(n) { + return function(t) { + return t.replace(/[0-9]/g, function(e) { + return n[+e]; + }); + }; +} +var $n = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i; +function D(n) { + if (!(t = $n.exec(n))) + throw new Error("invalid format: " + n); + var t; + return new B({ + fill: t[1], + align: t[2], + sign: t[3], + symbol: t[4], + zero: t[5], + width: t[6], + comma: t[7], + precision: t[8] && t[8].slice(1), + trim: t[9], + type: t[10] + }); +} +D.prototype = B.prototype; +function B(n) { + this.fill = n.fill === void 0 ? " " : n.fill + "", this.align = n.align === void 0 ? ">" : n.align + "", this.sign = n.sign === void 0 ? "-" : n.sign + "", this.symbol = n.symbol === void 0 ? "" : n.symbol + "", this.zero = !!n.zero, this.width = n.width === void 0 ? void 0 : +n.width, this.comma = !!n.comma, this.precision = n.precision === void 0 ? void 0 : +n.precision, this.trim = !!n.trim, this.type = n.type === void 0 ? "" : n.type + ""; +} +B.prototype.toString = function() { + return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === void 0 ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === void 0 ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type; +}; +function Fn(n) { + n: + for (var t = n.length, e = 1, r = -1, i; e < t; ++e) + switch (n[e]) { + case ".": + r = i = e; + break; + case "0": + r === 0 && (r = e), i = e; + break; + default: + if (!+n[e]) + break n; + r > 0 && (r = 0); + break; + } + return r > 0 ? n.slice(0, r) + n.slice(i + 1) : n; +} +var nn; +function Rn(n, t) { + var e = E(n, t); + if (!e) + return n + ""; + var r = e[0], i = e[1], f = i - (nn = Math.max(-8, Math.min(8, Math.floor(i / 3))) * 3) + 1, a = r.length; + return f === a ? r : f > a ? r + new Array(f - a + 1).join("0") : f > 0 ? r.slice(0, f) + "." + r.slice(f) : "0." + new Array(1 - f).join("0") + E(n, Math.max(0, t + f - 1))[0]; +} +function Z(n, t) { + var e = E(n, t); + if (!e) + return n + ""; + var r = e[0], i = e[1]; + return i < 0 ? "0." + new Array(-i).join("0") + r : r.length > i + 1 ? r.slice(0, i + 1) + "." + r.slice(i + 1) : r + new Array(i - r.length + 2).join("0"); +} +const H = { + "%": (n, t) => (n * 100).toFixed(t), + b: (n) => Math.round(n).toString(2), + c: (n) => n + "", + d: jn, + e: (n, t) => n.toExponential(t), + f: (n, t) => n.toFixed(t), + g: (n, t) => n.toPrecision(t), + o: (n) => Math.round(n).toString(8), + p: (n, t) => Z(n * 100, t), + r: Z, + s: Rn, + X: (n) => Math.round(n).toString(16).toUpperCase(), + x: (n) => Math.round(n).toString(16) +}; +function J(n) { + return n; +} +var K = Array.prototype.map, Q = ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"]; +function En(n) { + var t = n.grouping === void 0 || n.thousands === void 0 ? J : Pn(K.call(n.grouping, Number), n.thousands + ""), e = n.currency === void 0 ? "" : n.currency[0] + "", r = n.currency === void 0 ? "" : n.currency[1] + "", i = n.decimal === void 0 ? "." : n.decimal + "", f = n.numerals === void 0 ? J : zn(K.call(n.numerals, String)), a = n.percent === void 0 ? "%" : n.percent + "", u = n.minus === void 0 ? "−" : n.minus + "", c = n.nan === void 0 ? "NaN" : n.nan + ""; + function o(h) { + h = D(h); + var s = h.fill, p = h.align, y = h.sign, S = h.symbol, k = h.zero, b = h.width, T = h.comma, w = h.precision, G = h.trim, d = h.type; + d === "n" ? (T = !0, d = "g") : H[d] || (w === void 0 && (w = 12), G = !0, d = "g"), (k || s === "0" && p === "=") && (k = !0, s = "0", p = "="); + var en = S === "$" ? e : S === "#" && /[boxX]/.test(d) ? "0" + d.toLowerCase() : "", on = S === "$" ? r : /[%p]/.test(d) ? a : "", O = H[d], an = /[defgprs%]/.test(d); + w = w === void 0 ? 6 : /[gprs]/.test(d) ? Math.max(1, Math.min(21, w)) : Math.max(0, Math.min(20, w)); + function V(m) { + var N = en, g = on, x, X, j; + if (d === "c") + g = O(m) + g, m = ""; + else { + m = +m; + var P = m < 0 || 1 / m < 0; + if (m = isNaN(m) ? c : O(Math.abs(m), w), G && (m = Fn(m)), P && +m == 0 && y !== "+" && (P = !1), N = (P ? y === "(" ? y : u : y === "-" || y === "(" ? "" : y) + N, g = (d === "s" ? Q[8 + nn / 3] : "") + g + (P && y === "(" ? ")" : ""), an) { + for (x = -1, X = m.length; ++x < X; ) + if (j = m.charCodeAt(x), 48 > j || j > 57) { + g = (j === 46 ? i + m.slice(x + 1) : m.slice(x)) + g, m = m.slice(0, x); + break; + } + } + } + T && !k && (m = t(m, 1 / 0)); + var z = N.length + m.length + g.length, M = z < b ? new Array(b - z + 1).join(s) : ""; + switch (T && k && (m = t(M + m, M.length ? b - g.length : 1 / 0), M = ""), p) { + case "<": + m = N + m + g + M; + break; + case "=": + m = N + M + m + g; + break; + case "^": + m = M.slice(0, z = M.length >> 1) + N + m + g + M.slice(z); + break; + default: + m = M + N + m + g; + break; + } + return f(m); + } + return V.toString = function() { + return h + ""; + }, V; + } + function l(h, s) { + var p = o((h = D(h), h.type = "f", h)), y = Math.max(-8, Math.min(8, Math.floor(v(s) / 3))) * 3, S = Math.pow(10, -y), k = Q[8 + y / 3]; + return function(b) { + return p(S * b) + k; + }; + } + return { + format: o, + formatPrefix: l + }; +} +var $, tn, rn; +Dn({ + thousands: ",", + grouping: [3], + currency: ["$", ""] +}); +function Dn(n) { + return $ = En(n), tn = $.format, rn = $.formatPrefix, $; +} +function Tn(n) { + return Math.max(0, -v(Math.abs(n))); +} +function In(n, t) { + return Math.max(0, Math.max(-8, Math.min(8, Math.floor(v(t) / 3))) * 3 - v(Math.abs(n))); +} +function Ln(n, t) { + return n = Math.abs(n), t = Math.abs(t) - n, Math.max(0, v(t) - v(n)) + 1; +} +function qn(n) { + return function() { + return n; + }; +} +function Cn(n) { + return +n; +} +var W = [0, 1]; +function A(n) { + return n; +} +function q(n, t) { + return (t -= n = +n) ? function(e) { + return (e - n) / t; + } : qn(isNaN(t) ? NaN : 0.5); +} +function Bn(n, t) { + var e; + return n > t && (e = n, n = t, t = e), function(r) { + return Math.max(n, Math.min(t, r)); + }; +} +function Gn(n, t, e) { + var r = n[0], i = n[1], f = t[0], a = t[1]; + return i < r ? (r = q(i, r), f = e(a, f)) : (r = q(r, i), f = e(f, a)), function(u) { + return f(r(u)); + }; +} +function On(n, t, e) { + var r = Math.min(n.length, t.length) - 1, i = new Array(r), f = new Array(r), a = -1; + for (n[r] < n[0] && (n = n.slice().reverse(), t = t.slice().reverse()); ++a < r; ) + i[a] = q(n[a], n[a + 1]), f[a] = e(t[a], t[a + 1]); + return function(u) { + var c = gn(n, u, 1, r) - 1; + return f[c](i[c](u)); + }; +} +function Vn(n, t) { + return t.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown()); +} +function Xn() { + var n = W, t = W, e = C, r, i, f, a = A, u, c, o; + function l() { + var s = Math.min(n.length, t.length); + return a !== A && (a = Bn(n[0], n[s - 1])), u = s > 2 ? On : Gn, c = o = null, h; + } + function h(s) { + return s == null || isNaN(s = +s) ? f : (c || (c = u(n.map(r), t, e)))(r(a(s))); + } + return h.invert = function(s) { + return a(i((o || (o = u(t, n.map(r), I)))(s))); + }, h.domain = function(s) { + return arguments.length ? (n = Array.from(s, Cn), l()) : n.slice(); + }, h.range = function(s) { + return arguments.length ? (t = Array.from(s), l()) : t.slice(); + }, h.rangeRound = function(s) { + return t = Array.from(s), e = bn, l(); + }, h.clamp = function(s) { + return arguments.length ? (a = s ? !0 : A, l()) : a !== A; + }, h.interpolate = function(s) { + return arguments.length ? (e = s, l()) : e; + }, h.unknown = function(s) { + return arguments.length ? (f = s, h) : f; + }, function(s, p) { + return r = s, i = p, l(); + }; +} +function Un() { + return Xn()(A, A); +} +function Yn(n, t, e, r) { + var i = Nn(n, t, e), f; + switch (r = D(r ?? ",f"), r.type) { + case "s": { + var a = Math.max(Math.abs(n), Math.abs(t)); + return r.precision == null && !isNaN(f = In(i, a)) && (r.precision = f), rn(r, a); + } + case "": + case "e": + case "g": + case "p": + case "r": { + r.precision == null && !isNaN(f = Ln(i, Math.max(Math.abs(n), Math.abs(t)))) && (r.precision = f - (r.type === "e")); + break; + } + case "f": + case "%": { + r.precision == null && !isNaN(f = Tn(i)) && (r.precision = f - (r.type === "%") * 2); + break; + } + } + return tn(r); +} +function Zn(n) { + var t = n.domain; + return n.ticks = function(e) { + var r = t(); + return wn(r[0], r[r.length - 1], e ?? 10); + }, n.tickFormat = function(e, r) { + var i = t(); + return Yn(i[0], i[i.length - 1], e ?? 10, r); + }, n.nice = function(e) { + e == null && (e = 10); + var r = t(), i = 0, f = r.length - 1, a = r[i], u = r[f], c, o, l = 10; + for (u < a && (o = a, a = u, u = o, o = i, i = f, f = o); l-- > 0; ) { + if (o = L(a, u, e), o === c) + return r[i] = a, r[f] = u, t(r); + if (o > 0) + a = Math.floor(a / o) * o, u = Math.ceil(u / o) * o; + else if (o < 0) + a = Math.ceil(a * o) / o, u = Math.floor(u * o) / o; + else + break; + c = o; + } + return n; + }, n; +} +function Hn() { + var n = Un(); + return n.copy = function() { + return Vn(n, Hn()); + }, cn.apply(n, arguments), Zn(n); +} +export { + Vn as a, + _ as b, + Un as c, + Hn as l, + Nn as t +}; diff --git a/assets/lib/mermaid/mermaid-6dc72991.js b/assets/lib/mermaid/mermaid-6dc72991.js new file mode 100644 index 000000000..38dfe8410 --- /dev/null +++ b/assets/lib/mermaid/mermaid-6dc72991.js @@ -0,0 +1,6461 @@ +import { dedent } from "ts-dedent"; +import dayjs from "dayjs"; +import { sanitizeUrl } from "@braintree/sanitize-url"; +import { select, curveBasis, curveBasisClosed, curveBasisOpen, curveBumpX, curveBumpY, curveBundle, curveCardinalClosed, curveCardinalOpen, curveCardinal, curveCatmullRomClosed, curveCatmullRomOpen, curveCatmullRom, curveLinear, curveLinearClosed, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from "d3"; +import DOMPurify from "dompurify"; +import { adjust, invert, darken, lighten, isDark, rgba } from "khroma"; +import memoize from "lodash-es/memoize.js"; +import merge$1 from "lodash-es/merge.js"; +import { serialize, compile, stringify } from "stylis"; +import isEmpty from "lodash-es/isEmpty.js"; +const LEVELS = { + trace: 0, + debug: 1, + info: 2, + warn: 3, + error: 4, + fatal: 5 +}; +const log$1 = { + trace: (..._args) => { + }, + debug: (..._args) => { + }, + info: (..._args) => { + }, + warn: (..._args) => { + }, + error: (..._args) => { + }, + fatal: (..._args) => { + } +}; +const setLogLevel$1 = function(level = "fatal") { + let numericLevel = LEVELS.fatal; + if (typeof level === "string") { + level = level.toLowerCase(); + if (level in LEVELS) { + numericLevel = LEVELS[level]; + } + } else if (typeof level === "number") { + numericLevel = level; + } + log$1.trace = () => { + }; + log$1.debug = () => { + }; + log$1.info = () => { + }; + log$1.warn = () => { + }; + log$1.error = () => { + }; + log$1.fatal = () => { + }; + if (numericLevel <= LEVELS.fatal) { + log$1.fatal = console.error ? console.error.bind(console, format("FATAL"), "color: orange") : console.log.bind(console, "\x1B[35m", format("FATAL")); + } + if (numericLevel <= LEVELS.error) { + log$1.error = console.error ? console.error.bind(console, format("ERROR"), "color: orange") : console.log.bind(console, "\x1B[31m", format("ERROR")); + } + if (numericLevel <= LEVELS.warn) { + log$1.warn = console.warn ? console.warn.bind(console, format("WARN"), "color: orange") : console.log.bind(console, `\x1B[33m`, format("WARN")); + } + if (numericLevel <= LEVELS.info) { + log$1.info = console.info ? console.info.bind(console, format("INFO"), "color: lightblue") : console.log.bind(console, "\x1B[34m", format("INFO")); + } + if (numericLevel <= LEVELS.debug) { + log$1.debug = console.debug ? console.debug.bind(console, format("DEBUG"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format("DEBUG")); + } + if (numericLevel <= LEVELS.trace) { + log$1.trace = console.debug ? console.debug.bind(console, format("TRACE"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format("TRACE")); + } +}; +const format = (level) => { + const time = dayjs().format("ss.SSS"); + return `%c${time} : ${level} : `; +}; +const lineBreakRegex = //gi; +const getRows = (s) => { + if (!s) { + return [""]; + } + const str2 = breakToPlaceholder(s).replace(/\\n/g, "#br#"); + return str2.split("#br#"); +}; +const setupDompurifyHooksIfNotSetup = (() => { + let setup = false; + return () => { + if (!setup) { + setupDompurifyHooks(); + setup = true; + } + }; +})(); +function setupDompurifyHooks() { + const TEMPORARY_ATTRIBUTE = "data-temp-href-target"; + DOMPurify.addHook("beforeSanitizeAttributes", (node) => { + if (node.tagName === "A" && node.hasAttribute("target")) { + node.setAttribute(TEMPORARY_ATTRIBUTE, node.getAttribute("target") || ""); + } + }); + DOMPurify.addHook("afterSanitizeAttributes", (node) => { + if (node.tagName === "A" && node.hasAttribute(TEMPORARY_ATTRIBUTE)) { + node.setAttribute("target", node.getAttribute(TEMPORARY_ATTRIBUTE) || ""); + node.removeAttribute(TEMPORARY_ATTRIBUTE); + if (node.getAttribute("target") === "_blank") { + node.setAttribute("rel", "noopener"); + } + } + }); +} +const removeScript = (txt) => { + setupDompurifyHooksIfNotSetup(); + const sanitizedText = DOMPurify.sanitize(txt); + return sanitizedText; +}; +const sanitizeMore = (text, config2) => { + var _a; + if (((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels) !== false) { + const level = config2.securityLevel; + if (level === "antiscript" || level === "strict") { + text = removeScript(text); + } else if (level !== "loose") { + text = breakToPlaceholder(text); + text = text.replace(//g, ">"); + text = text.replace(/=/g, "="); + text = placeholderToBreak(text); + } + } + return text; +}; +const sanitizeText$2 = (text, config2) => { + if (!text) { + return text; + } + if (config2.dompurifyConfig) { + text = DOMPurify.sanitize(sanitizeMore(text, config2), config2.dompurifyConfig).toString(); + } else { + text = DOMPurify.sanitize(sanitizeMore(text, config2), { + FORBID_TAGS: ["style"] + }).toString(); + } + return text; +}; +const sanitizeTextOrArray = (a, config2) => { + if (typeof a === "string") { + return sanitizeText$2(a, config2); + } + return a.flat().map((x) => sanitizeText$2(x, config2)); +}; +const hasBreaks = (text) => { + return lineBreakRegex.test(text); +}; +const splitBreaks = (text) => { + return text.split(lineBreakRegex); +}; +const placeholderToBreak = (s) => { + return s.replace(/#br#/g, "
"); +}; +const breakToPlaceholder = (s) => { + return s.replace(lineBreakRegex, "#br#"); +}; +const getUrl = (useAbsolute) => { + let url = ""; + if (useAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replaceAll(/\(/g, "\\("); + url = url.replaceAll(/\)/g, "\\)"); + } + return url; +}; +const evaluate = (val) => val === false || ["false", "null", "0"].includes(String(val).trim().toLowerCase()) ? false : true; +const getMax = function(...values) { + const newValues = values.filter((value) => { + return !isNaN(value); + }); + return Math.max(...newValues); +}; +const getMin = function(...values) { + const newValues = values.filter((value) => { + return !isNaN(value); + }); + return Math.min(...newValues); +}; +const parseGenericTypes = function(input) { + const inputSets = input.split(/(,)/); + const output = []; + for (let i = 0; i < inputSets.length; i++) { + let thisSet = inputSets[i]; + if (thisSet === "," && i > 0 && i + 1 < inputSets.length) { + const previousSet = inputSets[i - 1]; + const nextSet = inputSets[i + 1]; + if (shouldCombineSets(previousSet, nextSet)) { + thisSet = previousSet + "," + nextSet; + i++; + output.pop(); + } + } + output.push(processSet(thisSet)); + } + return output.join(""); +}; +const countOccurrence = (string, substring) => { + return Math.max(0, string.split(substring).length - 1); +}; +const shouldCombineSets = (previousSet, nextSet) => { + const prevCount = countOccurrence(previousSet, "~"); + const nextCount = countOccurrence(nextSet, "~"); + return prevCount === 1 && nextCount === 1; +}; +const processSet = (input) => { + const tildeCount = countOccurrence(input, "~"); + let hasStartingTilde = false; + if (tildeCount <= 1) { + return input; + } + if (tildeCount % 2 !== 0 && input.startsWith("~")) { + input = input.substring(1); + hasStartingTilde = true; + } + const chars = [...input]; + let first = chars.indexOf("~"); + let last = chars.lastIndexOf("~"); + while (first !== -1 && last !== -1 && first !== last) { + chars[first] = "<"; + chars[last] = ">"; + first = chars.indexOf("~"); + last = chars.lastIndexOf("~"); + } + if (hasStartingTilde) { + chars.unshift("~"); + } + return chars.join(""); +}; +const isMathMLSupported = () => window.MathMLElement !== void 0; +const katexRegex = /\$\$(.*)\$\$/g; +const hasKatex = (text) => { + var _a; + return (((_a = text.match(katexRegex)) == null ? void 0 : _a.length) ?? 0) > 0; +}; +const calculateMathMLDimensions = async (text, config2) => { + text = await renderKatex(text, config2); + const divElem = document.createElement("div"); + divElem.innerHTML = text; + divElem.id = "katex-temp"; + divElem.style.visibility = "hidden"; + divElem.style.position = "absolute"; + divElem.style.top = "0"; + const body = document.querySelector("body"); + body == null ? void 0 : body.insertAdjacentElement("beforeend", divElem); + const dim = { width: divElem.clientWidth, height: divElem.clientHeight }; + divElem.remove(); + return dim; +}; +const renderKatex = async (text, config2) => { + if (!hasKatex(text)) { + return text; + } + if (!isMathMLSupported() && !config2.legacyMathML) { + return text.replace(katexRegex, "MathML is unsupported in this environment."); + } + const { default: katex } = await import("katex"); + return text.split(lineBreakRegex).map( + (line) => hasKatex(line) ? ` +
+ ${line} +
+ ` : `
${line}
` + ).join("").replace( + katexRegex, + (_, c) => katex.renderToString(c, { + throwOnError: true, + displayMode: true, + output: isMathMLSupported() ? "mathml" : "htmlAndMathml" + }).replace(/\n/g, " ").replace(//g, "") + ); +}; +const common$1 = { + getRows, + sanitizeText: sanitizeText$2, + sanitizeTextOrArray, + hasBreaks, + splitBreaks, + lineBreakRegex, + removeScript, + getUrl, + evaluate, + getMax, + getMin +}; +const mkBorder = (col, darkMode) => darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 }); +const oldAttributeBackgroundColorOdd = "#ffffff"; +const oldAttributeBackgroundColorEven = "#f2f2f2"; +let Theme$4 = class Theme { + constructor() { + this.background = "#f4f4f4"; + this.primaryColor = "#fff4dd"; + this.noteBkgColor = "#fff5ad"; + this.noteTextColor = "#333"; + this.THEME_COLOR_LIMIT = 12; + this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif'; + this.fontSize = "16px"; + } + updateColors() { + var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; + this.primaryTextColor = this.primaryTextColor || (this.darkMode ? "#eee" : "#333"); + this.secondaryColor = this.secondaryColor || adjust(this.primaryColor, { h: -120 }); + this.tertiaryColor = this.tertiaryColor || adjust(this.primaryColor, { h: 180, l: 5 }); + this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode); + this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode); + this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode); + this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode); + this.noteBkgColor = this.noteBkgColor || "#fff5ad"; + this.noteTextColor = this.noteTextColor || "#333"; + this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor); + this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor); + this.lineColor = this.lineColor || invert(this.background); + this.arrowheadColor = this.arrowheadColor || invert(this.background); + this.textColor = this.textColor || this.primaryTextColor; + this.border2 = this.border2 || this.tertiaryBorderColor; + this.nodeBkg = this.nodeBkg || this.primaryColor; + this.mainBkg = this.mainBkg || this.primaryColor; + this.nodeBorder = this.nodeBorder || this.primaryBorderColor; + this.clusterBkg = this.clusterBkg || this.tertiaryColor; + this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor; + this.defaultLinkColor = this.defaultLinkColor || this.lineColor; + this.titleColor = this.titleColor || this.tertiaryTextColor; + this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor); + this.nodeTextColor = this.nodeTextColor || this.primaryTextColor; + this.actorBorder = this.actorBorder || this.primaryBorderColor; + this.actorBkg = this.actorBkg || this.mainBkg; + this.actorTextColor = this.actorTextColor || this.primaryTextColor; + this.actorLineColor = this.actorLineColor || "grey"; + this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg; + this.signalColor = this.signalColor || this.textColor; + this.signalTextColor = this.signalTextColor || this.textColor; + this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder; + this.labelTextColor = this.labelTextColor || this.actorTextColor; + this.loopTextColor = this.loopTextColor || this.actorTextColor; + this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10); + this.activationBkgColor = this.activationBkgColor || this.secondaryColor; + this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor); + this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor; + this.altSectionBkgColor = this.altSectionBkgColor || "white"; + this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor; + this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor; + this.excludeBkgColor = this.excludeBkgColor || "#eeeeee"; + this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor; + this.taskBkgColor = this.taskBkgColor || this.primaryColor; + this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor; + this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23); + this.gridColor = this.gridColor || "lightgrey"; + this.doneTaskBkgColor = this.doneTaskBkgColor || "lightgrey"; + this.doneTaskBorderColor = this.doneTaskBorderColor || "grey"; + this.critBorderColor = this.critBorderColor || "#ff8888"; + this.critBkgColor = this.critBkgColor || "red"; + this.todayLineColor = this.todayLineColor || "red"; + this.taskTextColor = this.taskTextColor || this.textColor; + this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor; + this.taskTextLightColor = this.taskTextLightColor || this.textColor; + this.taskTextColor = this.taskTextColor || this.primaryTextColor; + this.taskTextDarkColor = this.taskTextDarkColor || this.textColor; + this.taskTextClickableColor = this.taskTextClickableColor || "#003163"; + this.personBorder = this.personBorder || this.primaryBorderColor; + this.personBkg = this.personBkg || this.mainBkg; + this.transitionColor = this.transitionColor || this.lineColor; + this.transitionLabelColor = this.transitionLabelColor || this.textColor; + this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor; + this.stateBkg = this.stateBkg || this.mainBkg; + this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg; + this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor; + this.altBackground = this.altBackground || this.tertiaryColor; + this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg; + this.compositeBorder = this.compositeBorder || this.nodeBorder; + this.innerEndBackground = this.nodeBorder; + this.errorBkgColor = this.errorBkgColor || this.tertiaryColor; + this.errorTextColor = this.errorTextColor || this.tertiaryTextColor; + this.transitionColor = this.transitionColor || this.lineColor; + this.specialStateColor = this.lineColor; + this.cScale0 = this.cScale0 || this.primaryColor; + this.cScale1 = this.cScale1 || this.secondaryColor; + this.cScale2 = this.cScale2 || this.tertiaryColor; + this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 }); + this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 }); + this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 }); + this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 }); + this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 }); + this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210, l: 150 }); + this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 }); + this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 }); + this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 }); + if (this.darkMode) { + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScale" + i] = darken(this["cScale" + i], 75); + } + } else { + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScale" + i] = darken(this["cScale" + i], 25); + } + } + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleInv" + i] = this["cScaleInv" + i] || invert(this["cScale" + i]); + } + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + if (this.darkMode) { + this["cScalePeer" + i] = this["cScalePeer" + i] || lighten(this["cScale" + i], 10); + } else { + this["cScalePeer" + i] = this["cScalePeer" + i] || darken(this["cScale" + i], 10); + } + } + this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor; + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor; + } + const multiplier = this.darkMode ? -4 : -1; + for (let i = 0; i < 5; i++) { + this["surface" + i] = this["surface" + i] || adjust(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i * 3) }); + this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i * 3) }); + } + this.classText = this.classText || this.textColor; + this.fillType0 = this.fillType0 || this.primaryColor; + this.fillType1 = this.fillType1 || this.secondaryColor; + this.fillType2 = this.fillType2 || adjust(this.primaryColor, { h: 64 }); + this.fillType3 = this.fillType3 || adjust(this.secondaryColor, { h: 64 }); + this.fillType4 = this.fillType4 || adjust(this.primaryColor, { h: -64 }); + this.fillType5 = this.fillType5 || adjust(this.secondaryColor, { h: -64 }); + this.fillType6 = this.fillType6 || adjust(this.primaryColor, { h: 128 }); + this.fillType7 = this.fillType7 || adjust(this.secondaryColor, { h: 128 }); + this.pie1 = this.pie1 || this.primaryColor; + this.pie2 = this.pie2 || this.secondaryColor; + this.pie3 = this.pie3 || this.tertiaryColor; + this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 }); + this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -10 }); + this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -10 }); + this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -10 }); + this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 }); + this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 }); + this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -20 }); + this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -20 }); + this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -10 }); + this.pieTitleTextSize = this.pieTitleTextSize || "25px"; + this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor; + this.pieSectionTextSize = this.pieSectionTextSize || "17px"; + this.pieSectionTextColor = this.pieSectionTextColor || this.textColor; + this.pieLegendTextSize = this.pieLegendTextSize || "17px"; + this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor; + this.pieStrokeColor = this.pieStrokeColor || "black"; + this.pieStrokeWidth = this.pieStrokeWidth || "2px"; + this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px"; + this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black"; + this.pieOpacity = this.pieOpacity || "0.7"; + this.quadrant1Fill = this.quadrant1Fill || this.primaryColor; + this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 }); + this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 }); + this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 }); + this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; + this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 }); + this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 }); + this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 }); + this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill); + this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor; + this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor; + this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor; + this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor; + this.xyChart = { + backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, + titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || "#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0" + }; + this.requirementBackground = this.requirementBackground || this.primaryColor; + this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor; + this.requirementBorderSize = this.requirementBorderSize || "1"; + this.requirementTextColor = this.requirementTextColor || this.primaryTextColor; + this.relationColor = this.relationColor || this.lineColor; + this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor); + this.relationLabelColor = this.relationLabelColor || this.actorTextColor; + this.git0 = this.git0 || this.primaryColor; + this.git1 = this.git1 || this.secondaryColor; + this.git2 = this.git2 || this.tertiaryColor; + this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 }); + this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 }); + this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 }); + this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 }); + this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 }); + if (this.darkMode) { + this.git0 = lighten(this.git0, 25); + this.git1 = lighten(this.git1, 25); + this.git2 = lighten(this.git2, 25); + this.git3 = lighten(this.git3, 25); + this.git4 = lighten(this.git4, 25); + this.git5 = lighten(this.git5, 25); + this.git6 = lighten(this.git6, 25); + this.git7 = lighten(this.git7, 25); + } else { + this.git0 = darken(this.git0, 25); + this.git1 = darken(this.git1, 25); + this.git2 = darken(this.git2, 25); + this.git3 = darken(this.git3, 25); + this.git4 = darken(this.git4, 25); + this.git5 = darken(this.git5, 25); + this.git6 = darken(this.git6, 25); + this.git7 = darken(this.git7, 25); + } + this.gitInv0 = this.gitInv0 || invert(this.git0); + this.gitInv1 = this.gitInv1 || invert(this.git1); + this.gitInv2 = this.gitInv2 || invert(this.git2); + this.gitInv3 = this.gitInv3 || invert(this.git3); + this.gitInv4 = this.gitInv4 || invert(this.git4); + this.gitInv5 = this.gitInv5 || invert(this.git5); + this.gitInv6 = this.gitInv6 || invert(this.git6); + this.gitInv7 = this.gitInv7 || invert(this.git7); + this.branchLabelColor = this.branchLabelColor || (this.darkMode ? "black" : this.labelTextColor); + this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor; + this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor; + this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor; + this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor; + this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor; + this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor; + this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor; + this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor; + this.tagLabelColor = this.tagLabelColor || this.primaryTextColor; + this.tagLabelBackground = this.tagLabelBackground || this.primaryColor; + this.tagLabelBorder = this.tagBorder || this.primaryBorderColor; + this.tagLabelFontSize = this.tagLabelFontSize || "10px"; + this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor; + this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor; + this.commitLabelFontSize = this.commitLabelFontSize || "10px"; + this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd; + this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven; + } + calculate(overrides) { + if (typeof overrides !== "object") { + this.updateColors(); + return; + } + const keys = Object.keys(overrides); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + this.updateColors(); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + } +}; +const getThemeVariables$4 = (userOverrides) => { + const theme2 = new Theme$4(); + theme2.calculate(userOverrides); + return theme2; +}; +let Theme$3 = class Theme2 { + constructor() { + this.background = "#333"; + this.primaryColor = "#1f2020"; + this.secondaryColor = lighten(this.primaryColor, 16); + this.tertiaryColor = adjust(this.primaryColor, { h: -160 }); + this.primaryBorderColor = invert(this.background); + this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode); + this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode); + this.primaryTextColor = invert(this.primaryColor); + this.secondaryTextColor = invert(this.secondaryColor); + this.tertiaryTextColor = invert(this.tertiaryColor); + this.lineColor = invert(this.background); + this.textColor = invert(this.background); + this.mainBkg = "#1f2020"; + this.secondBkg = "calculated"; + this.mainContrastColor = "lightgrey"; + this.darkTextColor = lighten(invert("#323D47"), 10); + this.lineColor = "calculated"; + this.border1 = "#81B1DB"; + this.border2 = rgba(255, 255, 255, 0.25); + this.arrowheadColor = "calculated"; + this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif'; + this.fontSize = "16px"; + this.labelBackground = "#181818"; + this.textColor = "#ccc"; + this.THEME_COLOR_LIMIT = 12; + this.nodeBkg = "calculated"; + this.nodeBorder = "calculated"; + this.clusterBkg = "calculated"; + this.clusterBorder = "calculated"; + this.defaultLinkColor = "calculated"; + this.titleColor = "#F9FFFE"; + this.edgeLabelBackground = "calculated"; + this.actorBorder = "calculated"; + this.actorBkg = "calculated"; + this.actorTextColor = "calculated"; + this.actorLineColor = "calculated"; + this.signalColor = "calculated"; + this.signalTextColor = "calculated"; + this.labelBoxBkgColor = "calculated"; + this.labelBoxBorderColor = "calculated"; + this.labelTextColor = "calculated"; + this.loopTextColor = "calculated"; + this.noteBorderColor = "calculated"; + this.noteBkgColor = "#fff5ad"; + this.noteTextColor = "calculated"; + this.activationBorderColor = "calculated"; + this.activationBkgColor = "calculated"; + this.sequenceNumberColor = "black"; + this.sectionBkgColor = darken("#EAE8D9", 30); + this.altSectionBkgColor = "calculated"; + this.sectionBkgColor2 = "#EAE8D9"; + this.excludeBkgColor = darken(this.sectionBkgColor, 10); + this.taskBorderColor = rgba(255, 255, 255, 70); + this.taskBkgColor = "calculated"; + this.taskTextColor = "calculated"; + this.taskTextLightColor = "calculated"; + this.taskTextOutsideColor = "calculated"; + this.taskTextClickableColor = "#003163"; + this.activeTaskBorderColor = rgba(255, 255, 255, 50); + this.activeTaskBkgColor = "#81B1DB"; + this.gridColor = "calculated"; + this.doneTaskBkgColor = "calculated"; + this.doneTaskBorderColor = "grey"; + this.critBorderColor = "#E83737"; + this.critBkgColor = "#E83737"; + this.taskTextDarkColor = "calculated"; + this.todayLineColor = "#DB5757"; + this.personBorder = this.primaryBorderColor; + this.personBkg = this.mainBkg; + this.labelColor = "calculated"; + this.errorBkgColor = "#a44141"; + this.errorTextColor = "#ddd"; + } + updateColors() { + var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; + this.secondBkg = lighten(this.mainBkg, 16); + this.lineColor = this.mainContrastColor; + this.arrowheadColor = this.mainContrastColor; + this.nodeBkg = this.mainBkg; + this.nodeBorder = this.border1; + this.clusterBkg = this.secondBkg; + this.clusterBorder = this.border2; + this.defaultLinkColor = this.lineColor; + this.edgeLabelBackground = lighten(this.labelBackground, 25); + this.actorBorder = this.border1; + this.actorBkg = this.mainBkg; + this.actorTextColor = this.mainContrastColor; + this.actorLineColor = this.mainContrastColor; + this.signalColor = this.mainContrastColor; + this.signalTextColor = this.mainContrastColor; + this.labelBoxBkgColor = this.actorBkg; + this.labelBoxBorderColor = this.actorBorder; + this.labelTextColor = this.mainContrastColor; + this.loopTextColor = this.mainContrastColor; + this.noteBorderColor = this.secondaryBorderColor; + this.noteBkgColor = this.secondBkg; + this.noteTextColor = this.secondaryTextColor; + this.activationBorderColor = this.border1; + this.activationBkgColor = this.secondBkg; + this.altSectionBkgColor = this.background; + this.taskBkgColor = lighten(this.mainBkg, 23); + this.taskTextColor = this.darkTextColor; + this.taskTextLightColor = this.mainContrastColor; + this.taskTextOutsideColor = this.taskTextLightColor; + this.gridColor = this.mainContrastColor; + this.doneTaskBkgColor = this.mainContrastColor; + this.taskTextDarkColor = this.darkTextColor; + this.transitionColor = this.transitionColor || this.lineColor; + this.transitionLabelColor = this.transitionLabelColor || this.textColor; + this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor; + this.stateBkg = this.stateBkg || this.mainBkg; + this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg; + this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor; + this.altBackground = this.altBackground || "#555"; + this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg; + this.compositeBorder = this.compositeBorder || this.nodeBorder; + this.innerEndBackground = this.primaryBorderColor; + this.specialStateColor = "#f4f4f4"; + this.errorBkgColor = this.errorBkgColor || this.tertiaryColor; + this.errorTextColor = this.errorTextColor || this.tertiaryTextColor; + this.fillType0 = this.primaryColor; + this.fillType1 = this.secondaryColor; + this.fillType2 = adjust(this.primaryColor, { h: 64 }); + this.fillType3 = adjust(this.secondaryColor, { h: 64 }); + this.fillType4 = adjust(this.primaryColor, { h: -64 }); + this.fillType5 = adjust(this.secondaryColor, { h: -64 }); + this.fillType6 = adjust(this.primaryColor, { h: 128 }); + this.fillType7 = adjust(this.secondaryColor, { h: 128 }); + this.cScale1 = this.cScale1 || "#0b0000"; + this.cScale2 = this.cScale2 || "#4d1037"; + this.cScale3 = this.cScale3 || "#3f5258"; + this.cScale4 = this.cScale4 || "#4f2f1b"; + this.cScale5 = this.cScale5 || "#6e0a0a"; + this.cScale6 = this.cScale6 || "#3b0048"; + this.cScale7 = this.cScale7 || "#995a01"; + this.cScale8 = this.cScale8 || "#154706"; + this.cScale9 = this.cScale9 || "#161722"; + this.cScale10 = this.cScale10 || "#00296f"; + this.cScale11 = this.cScale11 || "#01629c"; + this.cScale12 = this.cScale12 || "#010029"; + this.cScale0 = this.cScale0 || this.primaryColor; + this.cScale1 = this.cScale1 || this.secondaryColor; + this.cScale2 = this.cScale2 || this.tertiaryColor; + this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 }); + this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 }); + this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 }); + this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 }); + this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 }); + this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 }); + this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 }); + this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 }); + this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 }); + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleInv" + i] = this["cScaleInv" + i] || invert(this["cScale" + i]); + } + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScalePeer" + i] = this["cScalePeer" + i] || lighten(this["cScale" + i], 10); + } + for (let i = 0; i < 5; i++) { + this["surface" + i] = this["surface" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(-10 + i * 4) }); + this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(-7 + i * 4) }); + } + this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor); + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor; + } + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["pie" + i] = this["cScale" + i]; + } + this.pieTitleTextSize = this.pieTitleTextSize || "25px"; + this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor; + this.pieSectionTextSize = this.pieSectionTextSize || "17px"; + this.pieSectionTextColor = this.pieSectionTextColor || this.textColor; + this.pieLegendTextSize = this.pieLegendTextSize || "17px"; + this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor; + this.pieStrokeColor = this.pieStrokeColor || "black"; + this.pieStrokeWidth = this.pieStrokeWidth || "2px"; + this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px"; + this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black"; + this.pieOpacity = this.pieOpacity || "0.7"; + this.quadrant1Fill = this.quadrant1Fill || this.primaryColor; + this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 }); + this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 }); + this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 }); + this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; + this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 }); + this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 }); + this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 }); + this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill); + this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor; + this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor; + this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor; + this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor; + this.xyChart = { + backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, + titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || "#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22" + }; + this.classText = this.primaryTextColor; + this.requirementBackground = this.requirementBackground || this.primaryColor; + this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor; + this.requirementBorderSize = this.requirementBorderSize || "1"; + this.requirementTextColor = this.requirementTextColor || this.primaryTextColor; + this.relationColor = this.relationColor || this.lineColor; + this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor); + this.relationLabelColor = this.relationLabelColor || this.actorTextColor; + this.git0 = lighten(this.secondaryColor, 20); + this.git1 = lighten(this.pie2 || this.secondaryColor, 20); + this.git2 = lighten(this.pie3 || this.tertiaryColor, 20); + this.git3 = lighten(this.pie4 || adjust(this.primaryColor, { h: -30 }), 20); + this.git4 = lighten(this.pie5 || adjust(this.primaryColor, { h: -60 }), 20); + this.git5 = lighten(this.pie6 || adjust(this.primaryColor, { h: -90 }), 10); + this.git6 = lighten(this.pie7 || adjust(this.primaryColor, { h: 60 }), 10); + this.git7 = lighten(this.pie8 || adjust(this.primaryColor, { h: 120 }), 20); + this.gitInv0 = this.gitInv0 || invert(this.git0); + this.gitInv1 = this.gitInv1 || invert(this.git1); + this.gitInv2 = this.gitInv2 || invert(this.git2); + this.gitInv3 = this.gitInv3 || invert(this.git3); + this.gitInv4 = this.gitInv4 || invert(this.git4); + this.gitInv5 = this.gitInv5 || invert(this.git5); + this.gitInv6 = this.gitInv6 || invert(this.git6); + this.gitInv7 = this.gitInv7 || invert(this.git7); + this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor); + this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor; + this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor; + this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor); + this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor; + this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor; + this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor; + this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor; + this.tagLabelColor = this.tagLabelColor || this.primaryTextColor; + this.tagLabelBackground = this.tagLabelBackground || this.primaryColor; + this.tagLabelBorder = this.tagBorder || this.primaryBorderColor; + this.tagLabelFontSize = this.tagLabelFontSize || "10px"; + this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor; + this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor; + this.commitLabelFontSize = this.commitLabelFontSize || "10px"; + this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten(this.background, 12); + this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten(this.background, 2); + } + calculate(overrides) { + if (typeof overrides !== "object") { + this.updateColors(); + return; + } + const keys = Object.keys(overrides); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + this.updateColors(); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + } +}; +const getThemeVariables$3 = (userOverrides) => { + const theme2 = new Theme$3(); + theme2.calculate(userOverrides); + return theme2; +}; +let Theme$2 = class Theme3 { + constructor() { + this.background = "#f4f4f4"; + this.primaryColor = "#ECECFF"; + this.secondaryColor = adjust(this.primaryColor, { h: 120 }); + this.secondaryColor = "#ffffde"; + this.tertiaryColor = adjust(this.primaryColor, { h: -160 }); + this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode); + this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode); + this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode); + this.primaryTextColor = invert(this.primaryColor); + this.secondaryTextColor = invert(this.secondaryColor); + this.tertiaryTextColor = invert(this.tertiaryColor); + this.lineColor = invert(this.background); + this.textColor = invert(this.background); + this.background = "white"; + this.mainBkg = "#ECECFF"; + this.secondBkg = "#ffffde"; + this.lineColor = "#333333"; + this.border1 = "#9370DB"; + this.border2 = "#aaaa33"; + this.arrowheadColor = "#333333"; + this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif'; + this.fontSize = "16px"; + this.labelBackground = "#e8e8e8"; + this.textColor = "#333"; + this.THEME_COLOR_LIMIT = 12; + this.nodeBkg = "calculated"; + this.nodeBorder = "calculated"; + this.clusterBkg = "calculated"; + this.clusterBorder = "calculated"; + this.defaultLinkColor = "calculated"; + this.titleColor = "calculated"; + this.edgeLabelBackground = "calculated"; + this.actorBorder = "calculated"; + this.actorBkg = "calculated"; + this.actorTextColor = "black"; + this.actorLineColor = "grey"; + this.signalColor = "calculated"; + this.signalTextColor = "calculated"; + this.labelBoxBkgColor = "calculated"; + this.labelBoxBorderColor = "calculated"; + this.labelTextColor = "calculated"; + this.loopTextColor = "calculated"; + this.noteBorderColor = "calculated"; + this.noteBkgColor = "#fff5ad"; + this.noteTextColor = "calculated"; + this.activationBorderColor = "#666"; + this.activationBkgColor = "#f4f4f4"; + this.sequenceNumberColor = "white"; + this.sectionBkgColor = "calculated"; + this.altSectionBkgColor = "calculated"; + this.sectionBkgColor2 = "calculated"; + this.excludeBkgColor = "#eeeeee"; + this.taskBorderColor = "calculated"; + this.taskBkgColor = "calculated"; + this.taskTextLightColor = "calculated"; + this.taskTextColor = this.taskTextLightColor; + this.taskTextDarkColor = "calculated"; + this.taskTextOutsideColor = this.taskTextDarkColor; + this.taskTextClickableColor = "calculated"; + this.activeTaskBorderColor = "calculated"; + this.activeTaskBkgColor = "calculated"; + this.gridColor = "calculated"; + this.doneTaskBkgColor = "calculated"; + this.doneTaskBorderColor = "calculated"; + this.critBorderColor = "calculated"; + this.critBkgColor = "calculated"; + this.todayLineColor = "calculated"; + this.sectionBkgColor = rgba(102, 102, 255, 0.49); + this.altSectionBkgColor = "white"; + this.sectionBkgColor2 = "#fff400"; + this.taskBorderColor = "#534fbc"; + this.taskBkgColor = "#8a90dd"; + this.taskTextLightColor = "white"; + this.taskTextColor = "calculated"; + this.taskTextDarkColor = "black"; + this.taskTextOutsideColor = "calculated"; + this.taskTextClickableColor = "#003163"; + this.activeTaskBorderColor = "#534fbc"; + this.activeTaskBkgColor = "#bfc7ff"; + this.gridColor = "lightgrey"; + this.doneTaskBkgColor = "lightgrey"; + this.doneTaskBorderColor = "grey"; + this.critBorderColor = "#ff8888"; + this.critBkgColor = "red"; + this.todayLineColor = "red"; + this.personBorder = this.primaryBorderColor; + this.personBkg = this.mainBkg; + this.labelColor = "black"; + this.errorBkgColor = "#552222"; + this.errorTextColor = "#552222"; + this.updateColors(); + } + updateColors() { + var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; + this.cScale0 = this.cScale0 || this.primaryColor; + this.cScale1 = this.cScale1 || this.secondaryColor; + this.cScale2 = this.cScale2 || this.tertiaryColor; + this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 }); + this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 }); + this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 }); + this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 }); + this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 }); + this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 }); + this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 }); + this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 }); + this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 }); + this["cScalePeer1"] = this["cScalePeer1"] || darken(this.secondaryColor, 45); + this["cScalePeer2"] = this["cScalePeer2"] || darken(this.tertiaryColor, 40); + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScale" + i] = darken(this["cScale" + i], 10); + this["cScalePeer" + i] = this["cScalePeer" + i] || darken(this["cScale" + i], 25); + } + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleInv" + i] = this["cScaleInv" + i] || adjust(this["cScale" + i], { h: 180 }); + } + for (let i = 0; i < 5; i++) { + this["surface" + i] = this["surface" + i] || adjust(this.mainBkg, { h: 30, l: -(5 + i * 5) }); + this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(this.mainBkg, { h: 30, l: -(7 + i * 5) }); + } + this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor; + if (this.labelTextColor !== "calculated") { + this.cScaleLabel0 = this.cScaleLabel0 || invert(this.labelTextColor); + this.cScaleLabel3 = this.cScaleLabel3 || invert(this.labelTextColor); + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.labelTextColor; + } + } + this.nodeBkg = this.mainBkg; + this.nodeBorder = this.border1; + this.clusterBkg = this.secondBkg; + this.clusterBorder = this.border2; + this.defaultLinkColor = this.lineColor; + this.titleColor = this.textColor; + this.edgeLabelBackground = this.labelBackground; + this.actorBorder = lighten(this.border1, 23); + this.actorBkg = this.mainBkg; + this.labelBoxBkgColor = this.actorBkg; + this.signalColor = this.textColor; + this.signalTextColor = this.textColor; + this.labelBoxBorderColor = this.actorBorder; + this.labelTextColor = this.actorTextColor; + this.loopTextColor = this.actorTextColor; + this.noteBorderColor = this.border2; + this.noteTextColor = this.actorTextColor; + this.taskTextColor = this.taskTextLightColor; + this.taskTextOutsideColor = this.taskTextDarkColor; + this.transitionColor = this.transitionColor || this.lineColor; + this.transitionLabelColor = this.transitionLabelColor || this.textColor; + this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor; + this.stateBkg = this.stateBkg || this.mainBkg; + this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg; + this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor; + this.altBackground = this.altBackground || "#f0f0f0"; + this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg; + this.compositeBorder = this.compositeBorder || this.nodeBorder; + this.innerEndBackground = this.nodeBorder; + this.specialStateColor = this.lineColor; + this.errorBkgColor = this.errorBkgColor || this.tertiaryColor; + this.errorTextColor = this.errorTextColor || this.tertiaryTextColor; + this.transitionColor = this.transitionColor || this.lineColor; + this.classText = this.primaryTextColor; + this.fillType0 = this.primaryColor; + this.fillType1 = this.secondaryColor; + this.fillType2 = adjust(this.primaryColor, { h: 64 }); + this.fillType3 = adjust(this.secondaryColor, { h: 64 }); + this.fillType4 = adjust(this.primaryColor, { h: -64 }); + this.fillType5 = adjust(this.secondaryColor, { h: -64 }); + this.fillType6 = adjust(this.primaryColor, { h: 128 }); + this.fillType7 = adjust(this.secondaryColor, { h: 128 }); + this.pie1 = this.pie1 || this.primaryColor; + this.pie2 = this.pie2 || this.secondaryColor; + this.pie3 = this.pie3 || adjust(this.tertiaryColor, { l: -40 }); + this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 }); + this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 }); + this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -20 }); + this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -20 }); + this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -40 }); + this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: -40 }); + this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -40 }); + this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -90, l: -40 }); + this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -30 }); + this.pieTitleTextSize = this.pieTitleTextSize || "25px"; + this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor; + this.pieSectionTextSize = this.pieSectionTextSize || "17px"; + this.pieSectionTextColor = this.pieSectionTextColor || this.textColor; + this.pieLegendTextSize = this.pieLegendTextSize || "17px"; + this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor; + this.pieStrokeColor = this.pieStrokeColor || "black"; + this.pieStrokeWidth = this.pieStrokeWidth || "2px"; + this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px"; + this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black"; + this.pieOpacity = this.pieOpacity || "0.7"; + this.quadrant1Fill = this.quadrant1Fill || this.primaryColor; + this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 }); + this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 }); + this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 }); + this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; + this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 }); + this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 }); + this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 }); + this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill); + this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor; + this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor; + this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor; + this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor; + this.xyChart = { + backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, + titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || "#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3" + }; + this.requirementBackground = this.requirementBackground || this.primaryColor; + this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor; + this.requirementBorderSize = this.requirementBorderSize || "1"; + this.requirementTextColor = this.requirementTextColor || this.primaryTextColor; + this.relationColor = this.relationColor || this.lineColor; + this.relationLabelBackground = this.relationLabelBackground || this.labelBackground; + this.relationLabelColor = this.relationLabelColor || this.actorTextColor; + this.git0 = this.git0 || this.primaryColor; + this.git1 = this.git1 || this.secondaryColor; + this.git2 = this.git2 || this.tertiaryColor; + this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 }); + this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 }); + this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 }); + this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 }); + this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 }); + if (this.darkMode) { + this.git0 = lighten(this.git0, 25); + this.git1 = lighten(this.git1, 25); + this.git2 = lighten(this.git2, 25); + this.git3 = lighten(this.git3, 25); + this.git4 = lighten(this.git4, 25); + this.git5 = lighten(this.git5, 25); + this.git6 = lighten(this.git6, 25); + this.git7 = lighten(this.git7, 25); + } else { + this.git0 = darken(this.git0, 25); + this.git1 = darken(this.git1, 25); + this.git2 = darken(this.git2, 25); + this.git3 = darken(this.git3, 25); + this.git4 = darken(this.git4, 25); + this.git5 = darken(this.git5, 25); + this.git6 = darken(this.git6, 25); + this.git7 = darken(this.git7, 25); + } + this.gitInv0 = this.gitInv0 || darken(invert(this.git0), 25); + this.gitInv1 = this.gitInv1 || invert(this.git1); + this.gitInv2 = this.gitInv2 || invert(this.git2); + this.gitInv3 = this.gitInv3 || invert(this.git3); + this.gitInv4 = this.gitInv4 || invert(this.git4); + this.gitInv5 = this.gitInv5 || invert(this.git5); + this.gitInv6 = this.gitInv6 || invert(this.git6); + this.gitInv7 = this.gitInv7 || invert(this.git7); + this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor); + this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor; + this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor; + this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor); + this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor; + this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor; + this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor; + this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor; + this.tagLabelColor = this.tagLabelColor || this.primaryTextColor; + this.tagLabelBackground = this.tagLabelBackground || this.primaryColor; + this.tagLabelBorder = this.tagBorder || this.primaryBorderColor; + this.tagLabelFontSize = this.tagLabelFontSize || "10px"; + this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor; + this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor; + this.commitLabelFontSize = this.commitLabelFontSize || "10px"; + this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd; + this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven; + } + calculate(overrides) { + if (typeof overrides !== "object") { + this.updateColors(); + return; + } + const keys = Object.keys(overrides); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + this.updateColors(); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + } +}; +const getThemeVariables$2 = (userOverrides) => { + const theme2 = new Theme$2(); + theme2.calculate(userOverrides); + return theme2; +}; +let Theme$1 = class Theme4 { + constructor() { + this.background = "#f4f4f4"; + this.primaryColor = "#cde498"; + this.secondaryColor = "#cdffb2"; + this.background = "white"; + this.mainBkg = "#cde498"; + this.secondBkg = "#cdffb2"; + this.lineColor = "green"; + this.border1 = "#13540c"; + this.border2 = "#6eaa49"; + this.arrowheadColor = "green"; + this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif'; + this.fontSize = "16px"; + this.tertiaryColor = lighten("#cde498", 10); + this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode); + this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode); + this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode); + this.primaryTextColor = invert(this.primaryColor); + this.secondaryTextColor = invert(this.secondaryColor); + this.tertiaryTextColor = invert(this.primaryColor); + this.lineColor = invert(this.background); + this.textColor = invert(this.background); + this.THEME_COLOR_LIMIT = 12; + this.nodeBkg = "calculated"; + this.nodeBorder = "calculated"; + this.clusterBkg = "calculated"; + this.clusterBorder = "calculated"; + this.defaultLinkColor = "calculated"; + this.titleColor = "#333"; + this.edgeLabelBackground = "#e8e8e8"; + this.actorBorder = "calculated"; + this.actorBkg = "calculated"; + this.actorTextColor = "black"; + this.actorLineColor = "grey"; + this.signalColor = "#333"; + this.signalTextColor = "#333"; + this.labelBoxBkgColor = "calculated"; + this.labelBoxBorderColor = "#326932"; + this.labelTextColor = "calculated"; + this.loopTextColor = "calculated"; + this.noteBorderColor = "calculated"; + this.noteBkgColor = "#fff5ad"; + this.noteTextColor = "calculated"; + this.activationBorderColor = "#666"; + this.activationBkgColor = "#f4f4f4"; + this.sequenceNumberColor = "white"; + this.sectionBkgColor = "#6eaa49"; + this.altSectionBkgColor = "white"; + this.sectionBkgColor2 = "#6eaa49"; + this.excludeBkgColor = "#eeeeee"; + this.taskBorderColor = "calculated"; + this.taskBkgColor = "#487e3a"; + this.taskTextLightColor = "white"; + this.taskTextColor = "calculated"; + this.taskTextDarkColor = "black"; + this.taskTextOutsideColor = "calculated"; + this.taskTextClickableColor = "#003163"; + this.activeTaskBorderColor = "calculated"; + this.activeTaskBkgColor = "calculated"; + this.gridColor = "lightgrey"; + this.doneTaskBkgColor = "lightgrey"; + this.doneTaskBorderColor = "grey"; + this.critBorderColor = "#ff8888"; + this.critBkgColor = "red"; + this.todayLineColor = "red"; + this.personBorder = this.primaryBorderColor; + this.personBkg = this.mainBkg; + this.labelColor = "black"; + this.errorBkgColor = "#552222"; + this.errorTextColor = "#552222"; + } + updateColors() { + var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; + this.actorBorder = darken(this.mainBkg, 20); + this.actorBkg = this.mainBkg; + this.labelBoxBkgColor = this.actorBkg; + this.labelTextColor = this.actorTextColor; + this.loopTextColor = this.actorTextColor; + this.noteBorderColor = this.border2; + this.noteTextColor = this.actorTextColor; + this.cScale0 = this.cScale0 || this.primaryColor; + this.cScale1 = this.cScale1 || this.secondaryColor; + this.cScale2 = this.cScale2 || this.tertiaryColor; + this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 }); + this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 }); + this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 }); + this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 }); + this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 }); + this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 }); + this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 }); + this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 }); + this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 }); + this["cScalePeer1"] = this["cScalePeer1"] || darken(this.secondaryColor, 45); + this["cScalePeer2"] = this["cScalePeer2"] || darken(this.tertiaryColor, 40); + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScale" + i] = darken(this["cScale" + i], 10); + this["cScalePeer" + i] = this["cScalePeer" + i] || darken(this["cScale" + i], 25); + } + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleInv" + i] = this["cScaleInv" + i] || adjust(this["cScale" + i], { h: 180 }); + } + this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor; + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor; + } + for (let i = 0; i < 5; i++) { + this["surface" + i] = this["surface" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(5 + i * 5) }); + this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(8 + i * 5) }); + } + this.nodeBkg = this.mainBkg; + this.nodeBorder = this.border1; + this.clusterBkg = this.secondBkg; + this.clusterBorder = this.border2; + this.defaultLinkColor = this.lineColor; + this.taskBorderColor = this.border1; + this.taskTextColor = this.taskTextLightColor; + this.taskTextOutsideColor = this.taskTextDarkColor; + this.activeTaskBorderColor = this.taskBorderColor; + this.activeTaskBkgColor = this.mainBkg; + this.transitionColor = this.transitionColor || this.lineColor; + this.transitionLabelColor = this.transitionLabelColor || this.textColor; + this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor; + this.stateBkg = this.stateBkg || this.mainBkg; + this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg; + this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor; + this.altBackground = this.altBackground || "#f0f0f0"; + this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg; + this.compositeBorder = this.compositeBorder || this.nodeBorder; + this.innerEndBackground = this.primaryBorderColor; + this.specialStateColor = this.lineColor; + this.errorBkgColor = this.errorBkgColor || this.tertiaryColor; + this.errorTextColor = this.errorTextColor || this.tertiaryTextColor; + this.transitionColor = this.transitionColor || this.lineColor; + this.classText = this.primaryTextColor; + this.fillType0 = this.primaryColor; + this.fillType1 = this.secondaryColor; + this.fillType2 = adjust(this.primaryColor, { h: 64 }); + this.fillType3 = adjust(this.secondaryColor, { h: 64 }); + this.fillType4 = adjust(this.primaryColor, { h: -64 }); + this.fillType5 = adjust(this.secondaryColor, { h: -64 }); + this.fillType6 = adjust(this.primaryColor, { h: 128 }); + this.fillType7 = adjust(this.secondaryColor, { h: 128 }); + this.pie1 = this.pie1 || this.primaryColor; + this.pie2 = this.pie2 || this.secondaryColor; + this.pie3 = this.pie3 || this.tertiaryColor; + this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -30 }); + this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 }); + this.pie6 = this.pie6 || adjust(this.tertiaryColor, { h: 40, l: -40 }); + this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -10 }); + this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 }); + this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 }); + this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -50 }); + this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -50 }); + this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -50 }); + this.pieTitleTextSize = this.pieTitleTextSize || "25px"; + this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor; + this.pieSectionTextSize = this.pieSectionTextSize || "17px"; + this.pieSectionTextColor = this.pieSectionTextColor || this.textColor; + this.pieLegendTextSize = this.pieLegendTextSize || "17px"; + this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor; + this.pieStrokeColor = this.pieStrokeColor || "black"; + this.pieStrokeWidth = this.pieStrokeWidth || "2px"; + this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px"; + this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black"; + this.pieOpacity = this.pieOpacity || "0.7"; + this.quadrant1Fill = this.quadrant1Fill || this.primaryColor; + this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 }); + this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 }); + this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 }); + this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; + this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 }); + this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 }); + this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 }); + this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill); + this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor; + this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor; + this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor; + this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor; + this.xyChart = { + backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, + titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || "#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176" + }; + this.requirementBackground = this.requirementBackground || this.primaryColor; + this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor; + this.requirementBorderSize = this.requirementBorderSize || "1"; + this.requirementTextColor = this.requirementTextColor || this.primaryTextColor; + this.relationColor = this.relationColor || this.lineColor; + this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground; + this.relationLabelColor = this.relationLabelColor || this.actorTextColor; + this.git0 = this.git0 || this.primaryColor; + this.git1 = this.git1 || this.secondaryColor; + this.git2 = this.git2 || this.tertiaryColor; + this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 }); + this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 }); + this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 }); + this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 }); + this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 }); + if (this.darkMode) { + this.git0 = lighten(this.git0, 25); + this.git1 = lighten(this.git1, 25); + this.git2 = lighten(this.git2, 25); + this.git3 = lighten(this.git3, 25); + this.git4 = lighten(this.git4, 25); + this.git5 = lighten(this.git5, 25); + this.git6 = lighten(this.git6, 25); + this.git7 = lighten(this.git7, 25); + } else { + this.git0 = darken(this.git0, 25); + this.git1 = darken(this.git1, 25); + this.git2 = darken(this.git2, 25); + this.git3 = darken(this.git3, 25); + this.git4 = darken(this.git4, 25); + this.git5 = darken(this.git5, 25); + this.git6 = darken(this.git6, 25); + this.git7 = darken(this.git7, 25); + } + this.gitInv0 = this.gitInv0 || invert(this.git0); + this.gitInv1 = this.gitInv1 || invert(this.git1); + this.gitInv2 = this.gitInv2 || invert(this.git2); + this.gitInv3 = this.gitInv3 || invert(this.git3); + this.gitInv4 = this.gitInv4 || invert(this.git4); + this.gitInv5 = this.gitInv5 || invert(this.git5); + this.gitInv6 = this.gitInv6 || invert(this.git6); + this.gitInv7 = this.gitInv7 || invert(this.git7); + this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor); + this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor; + this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor; + this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor); + this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor; + this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor; + this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor; + this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor; + this.tagLabelColor = this.tagLabelColor || this.primaryTextColor; + this.tagLabelBackground = this.tagLabelBackground || this.primaryColor; + this.tagLabelBorder = this.tagBorder || this.primaryBorderColor; + this.tagLabelFontSize = this.tagLabelFontSize || "10px"; + this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor; + this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor; + this.commitLabelFontSize = this.commitLabelFontSize || "10px"; + this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd; + this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven; + } + calculate(overrides) { + if (typeof overrides !== "object") { + this.updateColors(); + return; + } + const keys = Object.keys(overrides); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + this.updateColors(); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + } +}; +const getThemeVariables$1 = (userOverrides) => { + const theme2 = new Theme$1(); + theme2.calculate(userOverrides); + return theme2; +}; +class Theme5 { + constructor() { + this.primaryColor = "#eee"; + this.contrast = "#707070"; + this.secondaryColor = lighten(this.contrast, 55); + this.background = "#ffffff"; + this.tertiaryColor = adjust(this.primaryColor, { h: -160 }); + this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode); + this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode); + this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode); + this.primaryTextColor = invert(this.primaryColor); + this.secondaryTextColor = invert(this.secondaryColor); + this.tertiaryTextColor = invert(this.tertiaryColor); + this.lineColor = invert(this.background); + this.textColor = invert(this.background); + this.mainBkg = "#eee"; + this.secondBkg = "calculated"; + this.lineColor = "#666"; + this.border1 = "#999"; + this.border2 = "calculated"; + this.note = "#ffa"; + this.text = "#333"; + this.critical = "#d42"; + this.done = "#bbb"; + this.arrowheadColor = "#333333"; + this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif'; + this.fontSize = "16px"; + this.THEME_COLOR_LIMIT = 12; + this.nodeBkg = "calculated"; + this.nodeBorder = "calculated"; + this.clusterBkg = "calculated"; + this.clusterBorder = "calculated"; + this.defaultLinkColor = "calculated"; + this.titleColor = "calculated"; + this.edgeLabelBackground = "white"; + this.actorBorder = "calculated"; + this.actorBkg = "calculated"; + this.actorTextColor = "calculated"; + this.actorLineColor = "calculated"; + this.signalColor = "calculated"; + this.signalTextColor = "calculated"; + this.labelBoxBkgColor = "calculated"; + this.labelBoxBorderColor = "calculated"; + this.labelTextColor = "calculated"; + this.loopTextColor = "calculated"; + this.noteBorderColor = "calculated"; + this.noteBkgColor = "calculated"; + this.noteTextColor = "calculated"; + this.activationBorderColor = "#666"; + this.activationBkgColor = "#f4f4f4"; + this.sequenceNumberColor = "white"; + this.sectionBkgColor = "calculated"; + this.altSectionBkgColor = "white"; + this.sectionBkgColor2 = "calculated"; + this.excludeBkgColor = "#eeeeee"; + this.taskBorderColor = "calculated"; + this.taskBkgColor = "calculated"; + this.taskTextLightColor = "white"; + this.taskTextColor = "calculated"; + this.taskTextDarkColor = "calculated"; + this.taskTextOutsideColor = "calculated"; + this.taskTextClickableColor = "#003163"; + this.activeTaskBorderColor = "calculated"; + this.activeTaskBkgColor = "calculated"; + this.gridColor = "calculated"; + this.doneTaskBkgColor = "calculated"; + this.doneTaskBorderColor = "calculated"; + this.critBkgColor = "calculated"; + this.critBorderColor = "calculated"; + this.todayLineColor = "calculated"; + this.personBorder = this.primaryBorderColor; + this.personBkg = this.mainBkg; + this.labelColor = "black"; + this.errorBkgColor = "#552222"; + this.errorTextColor = "#552222"; + } + updateColors() { + var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; + this.secondBkg = lighten(this.contrast, 55); + this.border2 = this.contrast; + this.actorBorder = lighten(this.border1, 23); + this.actorBkg = this.mainBkg; + this.actorTextColor = this.text; + this.actorLineColor = this.lineColor; + this.signalColor = this.text; + this.signalTextColor = this.text; + this.labelBoxBkgColor = this.actorBkg; + this.labelBoxBorderColor = this.actorBorder; + this.labelTextColor = this.text; + this.loopTextColor = this.text; + this.noteBorderColor = "#999"; + this.noteBkgColor = "#666"; + this.noteTextColor = "#fff"; + this.cScale0 = this.cScale0 || "#555"; + this.cScale1 = this.cScale1 || "#F4F4F4"; + this.cScale2 = this.cScale2 || "#555"; + this.cScale3 = this.cScale3 || "#BBB"; + this.cScale4 = this.cScale4 || "#777"; + this.cScale5 = this.cScale5 || "#999"; + this.cScale6 = this.cScale6 || "#DDD"; + this.cScale7 = this.cScale7 || "#FFF"; + this.cScale8 = this.cScale8 || "#DDD"; + this.cScale9 = this.cScale9 || "#BBB"; + this.cScale10 = this.cScale10 || "#999"; + this.cScale11 = this.cScale11 || "#777"; + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleInv" + i] = this["cScaleInv" + i] || invert(this["cScale" + i]); + } + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + if (this.darkMode) { + this["cScalePeer" + i] = this["cScalePeer" + i] || lighten(this["cScale" + i], 10); + } else { + this["cScalePeer" + i] = this["cScalePeer" + i] || darken(this["cScale" + i], 10); + } + } + this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor); + this["cScaleLabel0"] = this["cScaleLabel0"] || this.cScale1; + this["cScaleLabel2"] = this["cScaleLabel2"] || this.cScale1; + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor; + } + for (let i = 0; i < 5; i++) { + this["surface" + i] = this["surface" + i] || adjust(this.mainBkg, { l: -(5 + i * 5) }); + this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(this.mainBkg, { l: -(8 + i * 5) }); + } + this.nodeBkg = this.mainBkg; + this.nodeBorder = this.border1; + this.clusterBkg = this.secondBkg; + this.clusterBorder = this.border2; + this.defaultLinkColor = this.lineColor; + this.titleColor = this.text; + this.sectionBkgColor = lighten(this.contrast, 30); + this.sectionBkgColor2 = lighten(this.contrast, 30); + this.taskBorderColor = darken(this.contrast, 10); + this.taskBkgColor = this.contrast; + this.taskTextColor = this.taskTextLightColor; + this.taskTextDarkColor = this.text; + this.taskTextOutsideColor = this.taskTextDarkColor; + this.activeTaskBorderColor = this.taskBorderColor; + this.activeTaskBkgColor = this.mainBkg; + this.gridColor = lighten(this.border1, 30); + this.doneTaskBkgColor = this.done; + this.doneTaskBorderColor = this.lineColor; + this.critBkgColor = this.critical; + this.critBorderColor = darken(this.critBkgColor, 10); + this.todayLineColor = this.critBkgColor; + this.transitionColor = this.transitionColor || "#000"; + this.transitionLabelColor = this.transitionLabelColor || this.textColor; + this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor; + this.stateBkg = this.stateBkg || this.mainBkg; + this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg; + this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor; + this.altBackground = this.altBackground || "#f4f4f4"; + this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg; + this.stateBorder = this.stateBorder || "#000"; + this.innerEndBackground = this.primaryBorderColor; + this.specialStateColor = "#222"; + this.errorBkgColor = this.errorBkgColor || this.tertiaryColor; + this.errorTextColor = this.errorTextColor || this.tertiaryTextColor; + this.classText = this.primaryTextColor; + this.fillType0 = this.primaryColor; + this.fillType1 = this.secondaryColor; + this.fillType2 = adjust(this.primaryColor, { h: 64 }); + this.fillType3 = adjust(this.secondaryColor, { h: 64 }); + this.fillType4 = adjust(this.primaryColor, { h: -64 }); + this.fillType5 = adjust(this.secondaryColor, { h: -64 }); + this.fillType6 = adjust(this.primaryColor, { h: 128 }); + this.fillType7 = adjust(this.secondaryColor, { h: 128 }); + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["pie" + i] = this["cScale" + i]; + } + this.pie12 = this.pie0; + this.pieTitleTextSize = this.pieTitleTextSize || "25px"; + this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor; + this.pieSectionTextSize = this.pieSectionTextSize || "17px"; + this.pieSectionTextColor = this.pieSectionTextColor || this.textColor; + this.pieLegendTextSize = this.pieLegendTextSize || "17px"; + this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor; + this.pieStrokeColor = this.pieStrokeColor || "black"; + this.pieStrokeWidth = this.pieStrokeWidth || "2px"; + this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px"; + this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black"; + this.pieOpacity = this.pieOpacity || "0.7"; + this.quadrant1Fill = this.quadrant1Fill || this.primaryColor; + this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 }); + this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 }); + this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 }); + this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; + this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 }); + this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 }); + this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 }); + this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill); + this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor; + this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor; + this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor; + this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor; + this.xyChart = { + backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, + titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || "#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0" + }; + this.requirementBackground = this.requirementBackground || this.primaryColor; + this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor; + this.requirementBorderSize = this.requirementBorderSize || "1"; + this.requirementTextColor = this.requirementTextColor || this.primaryTextColor; + this.relationColor = this.relationColor || this.lineColor; + this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground; + this.relationLabelColor = this.relationLabelColor || this.actorTextColor; + this.git0 = darken(this.pie1, 25) || this.primaryColor; + this.git1 = this.pie2 || this.secondaryColor; + this.git2 = this.pie3 || this.tertiaryColor; + this.git3 = this.pie4 || adjust(this.primaryColor, { h: -30 }); + this.git4 = this.pie5 || adjust(this.primaryColor, { h: -60 }); + this.git5 = this.pie6 || adjust(this.primaryColor, { h: -90 }); + this.git6 = this.pie7 || adjust(this.primaryColor, { h: 60 }); + this.git7 = this.pie8 || adjust(this.primaryColor, { h: 120 }); + this.gitInv0 = this.gitInv0 || invert(this.git0); + this.gitInv1 = this.gitInv1 || invert(this.git1); + this.gitInv2 = this.gitInv2 || invert(this.git2); + this.gitInv3 = this.gitInv3 || invert(this.git3); + this.gitInv4 = this.gitInv4 || invert(this.git4); + this.gitInv5 = this.gitInv5 || invert(this.git5); + this.gitInv6 = this.gitInv6 || invert(this.git6); + this.gitInv7 = this.gitInv7 || invert(this.git7); + this.branchLabelColor = this.branchLabelColor || this.labelTextColor; + this.gitBranchLabel0 = this.branchLabelColor; + this.gitBranchLabel1 = "white"; + this.gitBranchLabel2 = this.branchLabelColor; + this.gitBranchLabel3 = "white"; + this.gitBranchLabel4 = this.branchLabelColor; + this.gitBranchLabel5 = this.branchLabelColor; + this.gitBranchLabel6 = this.branchLabelColor; + this.gitBranchLabel7 = this.branchLabelColor; + this.tagLabelColor = this.tagLabelColor || this.primaryTextColor; + this.tagLabelBackground = this.tagLabelBackground || this.primaryColor; + this.tagLabelBorder = this.tagBorder || this.primaryBorderColor; + this.tagLabelFontSize = this.tagLabelFontSize || "10px"; + this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor; + this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor; + this.commitLabelFontSize = this.commitLabelFontSize || "10px"; + this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd; + this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven; + } + calculate(overrides) { + if (typeof overrides !== "object") { + this.updateColors(); + return; + } + const keys = Object.keys(overrides); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + this.updateColors(); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + } +} +const getThemeVariables = (userOverrides) => { + const theme2 = new Theme5(); + theme2.calculate(userOverrides); + return theme2; +}; +const theme = { + base: { + getThemeVariables: getThemeVariables$4 + }, + dark: { + getThemeVariables: getThemeVariables$3 + }, + default: { + getThemeVariables: getThemeVariables$2 + }, + forest: { + getThemeVariables: getThemeVariables$1 + }, + neutral: { + getThemeVariables + } +}; +const defaultConfigJson = { + "flowchart": { + "useMaxWidth": true, + "titleTopMargin": 25, + "subGraphTitleMargin": { + "top": 0, + "bottom": 0 + }, + "diagramPadding": 8, + "htmlLabels": true, + "nodeSpacing": 50, + "rankSpacing": 50, + "curve": "basis", + "padding": 15, + "defaultRenderer": "dagre-wrapper", + "wrappingWidth": 200 + }, + "sequence": { + "useMaxWidth": true, + "hideUnusedParticipants": false, + "activationWidth": 10, + "diagramMarginX": 50, + "diagramMarginY": 10, + "actorMargin": 50, + "width": 150, + "height": 65, + "boxMargin": 10, + "boxTextMargin": 5, + "noteMargin": 10, + "messageMargin": 35, + "messageAlign": "center", + "mirrorActors": true, + "forceMenus": false, + "bottomMarginAdj": 1, + "rightAngles": false, + "showSequenceNumbers": false, + "actorFontSize": 14, + "actorFontFamily": '"Open Sans", sans-serif', + "actorFontWeight": 400, + "noteFontSize": 14, + "noteFontFamily": '"trebuchet ms", verdana, arial, sans-serif', + "noteFontWeight": 400, + "noteAlign": "center", + "messageFontSize": 16, + "messageFontFamily": '"trebuchet ms", verdana, arial, sans-serif', + "messageFontWeight": 400, + "wrap": false, + "wrapPadding": 10, + "labelBoxWidth": 50, + "labelBoxHeight": 20 + }, + "gantt": { + "useMaxWidth": true, + "titleTopMargin": 25, + "barHeight": 20, + "barGap": 4, + "topPadding": 50, + "rightPadding": 75, + "leftPadding": 75, + "gridLineStartPadding": 35, + "fontSize": 11, + "sectionFontSize": 11, + "numberSectionStyles": 4, + "axisFormat": "%Y-%m-%d", + "topAxis": false, + "displayMode": "", + "weekday": "sunday" + }, + "journey": { + "useMaxWidth": true, + "diagramMarginX": 50, + "diagramMarginY": 10, + "leftMargin": 150, + "width": 150, + "height": 50, + "boxMargin": 10, + "boxTextMargin": 5, + "noteMargin": 10, + "messageMargin": 35, + "messageAlign": "center", + "bottomMarginAdj": 1, + "rightAngles": false, + "taskFontSize": 14, + "taskFontFamily": '"Open Sans", sans-serif', + "taskMargin": 50, + "activationWidth": 10, + "textPlacement": "fo", + "actorColours": [ + "#8FBC8F", + "#7CFC00", + "#00FFFF", + "#20B2AA", + "#B0E0E6", + "#FFFFE0" + ], + "sectionFills": [ + "#191970", + "#8B008B", + "#4B0082", + "#2F4F4F", + "#800000", + "#8B4513", + "#00008B" + ], + "sectionColours": [ + "#fff" + ] + }, + "class": { + "useMaxWidth": true, + "titleTopMargin": 25, + "arrowMarkerAbsolute": false, + "dividerMargin": 10, + "padding": 5, + "textHeight": 10, + "defaultRenderer": "dagre-wrapper", + "htmlLabels": false + }, + "state": { + "useMaxWidth": true, + "titleTopMargin": 25, + "dividerMargin": 10, + "sizeUnit": 5, + "padding": 8, + "textHeight": 10, + "titleShift": -15, + "noteMargin": 10, + "forkWidth": 70, + "forkHeight": 7, + "miniPadding": 2, + "fontSizeFactor": 5.02, + "fontSize": 24, + "labelHeight": 16, + "edgeLengthFactor": "20", + "compositTitleSize": 35, + "radius": 5, + "defaultRenderer": "dagre-wrapper" + }, + "er": { + "useMaxWidth": true, + "titleTopMargin": 25, + "diagramPadding": 20, + "layoutDirection": "TB", + "minEntityWidth": 100, + "minEntityHeight": 75, + "entityPadding": 15, + "stroke": "gray", + "fill": "honeydew", + "fontSize": 12 + }, + "pie": { + "useMaxWidth": true, + "textPosition": 0.75 + }, + "quadrantChart": { + "useMaxWidth": true, + "chartWidth": 500, + "chartHeight": 500, + "titleFontSize": 20, + "titlePadding": 10, + "quadrantPadding": 5, + "xAxisLabelPadding": 5, + "yAxisLabelPadding": 5, + "xAxisLabelFontSize": 16, + "yAxisLabelFontSize": 16, + "quadrantLabelFontSize": 16, + "quadrantTextTopPadding": 5, + "pointTextPadding": 5, + "pointLabelFontSize": 12, + "pointRadius": 5, + "xAxisPosition": "top", + "yAxisPosition": "left", + "quadrantInternalBorderStrokeWidth": 1, + "quadrantExternalBorderStrokeWidth": 2 + }, + "xyChart": { + "useMaxWidth": true, + "width": 700, + "height": 500, + "titleFontSize": 20, + "titlePadding": 10, + "showTitle": true, + "xAxis": { + "$ref": "#/$defs/XYChartAxisConfig", + "showLabel": true, + "labelFontSize": 14, + "labelPadding": 5, + "showTitle": true, + "titleFontSize": 16, + "titlePadding": 5, + "showTick": true, + "tickLength": 5, + "tickWidth": 2, + "showAxisLine": true, + "axisLineWidth": 2 + }, + "yAxis": { + "$ref": "#/$defs/XYChartAxisConfig", + "showLabel": true, + "labelFontSize": 14, + "labelPadding": 5, + "showTitle": true, + "titleFontSize": 16, + "titlePadding": 5, + "showTick": true, + "tickLength": 5, + "tickWidth": 2, + "showAxisLine": true, + "axisLineWidth": 2 + }, + "chartOrientation": "vertical", + "plotReservedSpacePercent": 50 + }, + "requirement": { + "useMaxWidth": true, + "rect_fill": "#f9f9f9", + "text_color": "#333", + "rect_border_size": "0.5px", + "rect_border_color": "#bbb", + "rect_min_width": 200, + "rect_min_height": 200, + "fontSize": 14, + "rect_padding": 10, + "line_height": 20 + }, + "mindmap": { + "useMaxWidth": true, + "padding": 10, + "maxNodeWidth": 200 + }, + "timeline": { + "useMaxWidth": true, + "diagramMarginX": 50, + "diagramMarginY": 10, + "leftMargin": 150, + "width": 150, + "height": 50, + "boxMargin": 10, + "boxTextMargin": 5, + "noteMargin": 10, + "messageMargin": 35, + "messageAlign": "center", + "bottomMarginAdj": 1, + "rightAngles": false, + "taskFontSize": 14, + "taskFontFamily": '"Open Sans", sans-serif', + "taskMargin": 50, + "activationWidth": 10, + "textPlacement": "fo", + "actorColours": [ + "#8FBC8F", + "#7CFC00", + "#00FFFF", + "#20B2AA", + "#B0E0E6", + "#FFFFE0" + ], + "sectionFills": [ + "#191970", + "#8B008B", + "#4B0082", + "#2F4F4F", + "#800000", + "#8B4513", + "#00008B" + ], + "sectionColours": [ + "#fff" + ], + "disableMulticolor": false + }, + "gitGraph": { + "useMaxWidth": true, + "titleTopMargin": 25, + "diagramPadding": 8, + "nodeLabel": { + "width": 75, + "height": 100, + "x": -25, + "y": 0 + }, + "mainBranchName": "main", + "mainBranchOrder": 0, + "showCommitLabel": true, + "showBranches": true, + "rotateCommitLabel": true, + "parallelCommits": false, + "arrowMarkerAbsolute": false + }, + "c4": { + "useMaxWidth": true, + "diagramMarginX": 50, + "diagramMarginY": 10, + "c4ShapeMargin": 50, + "c4ShapePadding": 20, + "width": 216, + "height": 60, + "boxMargin": 10, + "c4ShapeInRow": 4, + "nextLinePaddingX": 0, + "c4BoundaryInRow": 2, + "personFontSize": 14, + "personFontFamily": '"Open Sans", sans-serif', + "personFontWeight": "normal", + "external_personFontSize": 14, + "external_personFontFamily": '"Open Sans", sans-serif', + "external_personFontWeight": "normal", + "systemFontSize": 14, + "systemFontFamily": '"Open Sans", sans-serif', + "systemFontWeight": "normal", + "external_systemFontSize": 14, + "external_systemFontFamily": '"Open Sans", sans-serif', + "external_systemFontWeight": "normal", + "system_dbFontSize": 14, + "system_dbFontFamily": '"Open Sans", sans-serif', + "system_dbFontWeight": "normal", + "external_system_dbFontSize": 14, + "external_system_dbFontFamily": '"Open Sans", sans-serif', + "external_system_dbFontWeight": "normal", + "system_queueFontSize": 14, + "system_queueFontFamily": '"Open Sans", sans-serif', + "system_queueFontWeight": "normal", + "external_system_queueFontSize": 14, + "external_system_queueFontFamily": '"Open Sans", sans-serif', + "external_system_queueFontWeight": "normal", + "boundaryFontSize": 14, + "boundaryFontFamily": '"Open Sans", sans-serif', + "boundaryFontWeight": "normal", + "messageFontSize": 12, + "messageFontFamily": '"Open Sans", sans-serif', + "messageFontWeight": "normal", + "containerFontSize": 14, + "containerFontFamily": '"Open Sans", sans-serif', + "containerFontWeight": "normal", + "external_containerFontSize": 14, + "external_containerFontFamily": '"Open Sans", sans-serif', + "external_containerFontWeight": "normal", + "container_dbFontSize": 14, + "container_dbFontFamily": '"Open Sans", sans-serif', + "container_dbFontWeight": "normal", + "external_container_dbFontSize": 14, + "external_container_dbFontFamily": '"Open Sans", sans-serif', + "external_container_dbFontWeight": "normal", + "container_queueFontSize": 14, + "container_queueFontFamily": '"Open Sans", sans-serif', + "container_queueFontWeight": "normal", + "external_container_queueFontSize": 14, + "external_container_queueFontFamily": '"Open Sans", sans-serif', + "external_container_queueFontWeight": "normal", + "componentFontSize": 14, + "componentFontFamily": '"Open Sans", sans-serif', + "componentFontWeight": "normal", + "external_componentFontSize": 14, + "external_componentFontFamily": '"Open Sans", sans-serif', + "external_componentFontWeight": "normal", + "component_dbFontSize": 14, + "component_dbFontFamily": '"Open Sans", sans-serif', + "component_dbFontWeight": "normal", + "external_component_dbFontSize": 14, + "external_component_dbFontFamily": '"Open Sans", sans-serif', + "external_component_dbFontWeight": "normal", + "component_queueFontSize": 14, + "component_queueFontFamily": '"Open Sans", sans-serif', + "component_queueFontWeight": "normal", + "external_component_queueFontSize": 14, + "external_component_queueFontFamily": '"Open Sans", sans-serif', + "external_component_queueFontWeight": "normal", + "wrap": true, + "wrapPadding": 10, + "person_bg_color": "#08427B", + "person_border_color": "#073B6F", + "external_person_bg_color": "#686868", + "external_person_border_color": "#8A8A8A", + "system_bg_color": "#1168BD", + "system_border_color": "#3C7FC0", + "system_db_bg_color": "#1168BD", + "system_db_border_color": "#3C7FC0", + "system_queue_bg_color": "#1168BD", + "system_queue_border_color": "#3C7FC0", + "external_system_bg_color": "#999999", + "external_system_border_color": "#8A8A8A", + "external_system_db_bg_color": "#999999", + "external_system_db_border_color": "#8A8A8A", + "external_system_queue_bg_color": "#999999", + "external_system_queue_border_color": "#8A8A8A", + "container_bg_color": "#438DD5", + "container_border_color": "#3C7FC0", + "container_db_bg_color": "#438DD5", + "container_db_border_color": "#3C7FC0", + "container_queue_bg_color": "#438DD5", + "container_queue_border_color": "#3C7FC0", + "external_container_bg_color": "#B3B3B3", + "external_container_border_color": "#A6A6A6", + "external_container_db_bg_color": "#B3B3B3", + "external_container_db_border_color": "#A6A6A6", + "external_container_queue_bg_color": "#B3B3B3", + "external_container_queue_border_color": "#A6A6A6", + "component_bg_color": "#85BBF0", + "component_border_color": "#78A8D8", + "component_db_bg_color": "#85BBF0", + "component_db_border_color": "#78A8D8", + "component_queue_bg_color": "#85BBF0", + "component_queue_border_color": "#78A8D8", + "external_component_bg_color": "#CCCCCC", + "external_component_border_color": "#BFBFBF", + "external_component_db_bg_color": "#CCCCCC", + "external_component_db_border_color": "#BFBFBF", + "external_component_queue_bg_color": "#CCCCCC", + "external_component_queue_border_color": "#BFBFBF" + }, + "sankey": { + "useMaxWidth": true, + "width": 600, + "height": 400, + "linkColor": "gradient", + "nodeAlignment": "justify", + "showValues": true, + "prefix": "", + "suffix": "" + }, + "block": { + "useMaxWidth": true, + "padding": 8 + }, + "theme": "default", + "maxTextSize": 5e4, + "maxEdges": 500, + "darkMode": false, + "fontFamily": '"trebuchet ms", verdana, arial, sans-serif;', + "logLevel": 5, + "securityLevel": "strict", + "startOnLoad": true, + "arrowMarkerAbsolute": false, + "secure": [ + "secure", + "securityLevel", + "startOnLoad", + "maxTextSize", + "maxEdges" + ], + "legacyMathML": false, + "deterministicIds": false, + "fontSize": 16 +}; +const config = { + ...defaultConfigJson, + // Set, even though they're `undefined` so that `configKeys` finds these keys + // TODO: Should we replace these with `null` so that they can go in the JSON Schema? + deterministicIDSeed: void 0, + themeCSS: void 0, + // add non-JSON default config values + themeVariables: theme["default"].getThemeVariables(), + sequence: { + ...defaultConfigJson.sequence, + messageFont: function() { + return { + fontFamily: this.messageFontFamily, + fontSize: this.messageFontSize, + fontWeight: this.messageFontWeight + }; + }, + noteFont: function() { + return { + fontFamily: this.noteFontFamily, + fontSize: this.noteFontSize, + fontWeight: this.noteFontWeight + }; + }, + actorFont: function() { + return { + fontFamily: this.actorFontFamily, + fontSize: this.actorFontSize, + fontWeight: this.actorFontWeight + }; + } + }, + gantt: { + ...defaultConfigJson.gantt, + tickInterval: void 0, + useWidth: void 0 + // can probably be removed since `configKeys` already includes this + }, + c4: { + ...defaultConfigJson.c4, + useWidth: void 0, + personFont: function() { + return { + fontFamily: this.personFontFamily, + fontSize: this.personFontSize, + fontWeight: this.personFontWeight + }; + }, + external_personFont: function() { + return { + fontFamily: this.external_personFontFamily, + fontSize: this.external_personFontSize, + fontWeight: this.external_personFontWeight + }; + }, + systemFont: function() { + return { + fontFamily: this.systemFontFamily, + fontSize: this.systemFontSize, + fontWeight: this.systemFontWeight + }; + }, + external_systemFont: function() { + return { + fontFamily: this.external_systemFontFamily, + fontSize: this.external_systemFontSize, + fontWeight: this.external_systemFontWeight + }; + }, + system_dbFont: function() { + return { + fontFamily: this.system_dbFontFamily, + fontSize: this.system_dbFontSize, + fontWeight: this.system_dbFontWeight + }; + }, + external_system_dbFont: function() { + return { + fontFamily: this.external_system_dbFontFamily, + fontSize: this.external_system_dbFontSize, + fontWeight: this.external_system_dbFontWeight + }; + }, + system_queueFont: function() { + return { + fontFamily: this.system_queueFontFamily, + fontSize: this.system_queueFontSize, + fontWeight: this.system_queueFontWeight + }; + }, + external_system_queueFont: function() { + return { + fontFamily: this.external_system_queueFontFamily, + fontSize: this.external_system_queueFontSize, + fontWeight: this.external_system_queueFontWeight + }; + }, + containerFont: function() { + return { + fontFamily: this.containerFontFamily, + fontSize: this.containerFontSize, + fontWeight: this.containerFontWeight + }; + }, + external_containerFont: function() { + return { + fontFamily: this.external_containerFontFamily, + fontSize: this.external_containerFontSize, + fontWeight: this.external_containerFontWeight + }; + }, + container_dbFont: function() { + return { + fontFamily: this.container_dbFontFamily, + fontSize: this.container_dbFontSize, + fontWeight: this.container_dbFontWeight + }; + }, + external_container_dbFont: function() { + return { + fontFamily: this.external_container_dbFontFamily, + fontSize: this.external_container_dbFontSize, + fontWeight: this.external_container_dbFontWeight + }; + }, + container_queueFont: function() { + return { + fontFamily: this.container_queueFontFamily, + fontSize: this.container_queueFontSize, + fontWeight: this.container_queueFontWeight + }; + }, + external_container_queueFont: function() { + return { + fontFamily: this.external_container_queueFontFamily, + fontSize: this.external_container_queueFontSize, + fontWeight: this.external_container_queueFontWeight + }; + }, + componentFont: function() { + return { + fontFamily: this.componentFontFamily, + fontSize: this.componentFontSize, + fontWeight: this.componentFontWeight + }; + }, + external_componentFont: function() { + return { + fontFamily: this.external_componentFontFamily, + fontSize: this.external_componentFontSize, + fontWeight: this.external_componentFontWeight + }; + }, + component_dbFont: function() { + return { + fontFamily: this.component_dbFontFamily, + fontSize: this.component_dbFontSize, + fontWeight: this.component_dbFontWeight + }; + }, + external_component_dbFont: function() { + return { + fontFamily: this.external_component_dbFontFamily, + fontSize: this.external_component_dbFontSize, + fontWeight: this.external_component_dbFontWeight + }; + }, + component_queueFont: function() { + return { + fontFamily: this.component_queueFontFamily, + fontSize: this.component_queueFontSize, + fontWeight: this.component_queueFontWeight + }; + }, + external_component_queueFont: function() { + return { + fontFamily: this.external_component_queueFontFamily, + fontSize: this.external_component_queueFontSize, + fontWeight: this.external_component_queueFontWeight + }; + }, + boundaryFont: function() { + return { + fontFamily: this.boundaryFontFamily, + fontSize: this.boundaryFontSize, + fontWeight: this.boundaryFontWeight + }; + }, + messageFont: function() { + return { + fontFamily: this.messageFontFamily, + fontSize: this.messageFontSize, + fontWeight: this.messageFontWeight + }; + } + }, + pie: { + ...defaultConfigJson.pie, + useWidth: 984 + }, + xyChart: { + ...defaultConfigJson.xyChart, + useWidth: void 0 + }, + requirement: { + ...defaultConfigJson.requirement, + useWidth: void 0 + }, + gitGraph: { + ...defaultConfigJson.gitGraph, + // TODO: This is a temporary override for `gitGraph`, since every other + // diagram does have `useMaxWidth`, but instead sets it to `true`. + // Should we set this to `true` instead? + useMaxWidth: false + }, + sankey: { + ...defaultConfigJson.sankey, + // this is false, unlike every other diagram (other than gitGraph) + // TODO: can we make this default to `true` instead? + useMaxWidth: false + } +}; +const keyify = (obj, prefix = "") => Object.keys(obj).reduce((res, el) => { + if (Array.isArray(obj[el])) { + return res; + } else if (typeof obj[el] === "object" && obj[el] !== null) { + return [...res, prefix + el, ...keyify(obj[el], "")]; + } + return [...res, prefix + el]; +}, []); +const configKeys = new Set(keyify(config, "")); +const defaultConfig$2 = config; +const sanitizeDirective = (args) => { + log$1.debug("sanitizeDirective called with", args); + if (typeof args !== "object" || args == null) { + return; + } + if (Array.isArray(args)) { + args.forEach((arg) => sanitizeDirective(arg)); + return; + } + for (const key of Object.keys(args)) { + log$1.debug("Checking key", key); + if (key.startsWith("__") || key.includes("proto") || key.includes("constr") || !configKeys.has(key) || args[key] == null) { + log$1.debug("sanitize deleting key: ", key); + delete args[key]; + continue; + } + if (typeof args[key] === "object") { + log$1.debug("sanitizing object", key); + sanitizeDirective(args[key]); + continue; + } + const cssMatchers = ["themeCSS", "fontFamily", "altFontFamily"]; + for (const cssKey of cssMatchers) { + if (key.includes(cssKey)) { + log$1.debug("sanitizing css option", key); + args[key] = sanitizeCss(args[key]); + } + } + } + if (args.themeVariables) { + for (const k of Object.keys(args.themeVariables)) { + const val = args.themeVariables[k]; + if ((val == null ? void 0 : val.match) && !val.match(/^[\d "#%(),.;A-Za-z]+$/)) { + args.themeVariables[k] = ""; + } + } + } + log$1.debug("After sanitization", args); +}; +const sanitizeCss = (str2) => { + let startCnt = 0; + let endCnt = 0; + for (const element of str2) { + if (startCnt < endCnt) { + return "{ /* ERROR: Unbalanced CSS */ }"; + } + if (element === "{") { + startCnt++; + } else if (element === "}") { + endCnt++; + } + } + if (startCnt !== endCnt) { + return "{ /* ERROR: Unbalanced CSS */ }"; + } + return str2; +}; +const frontMatterRegex = /^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s; +const directiveRegex = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi; +const anyCommentRegex = /\s*%%.*\n/gm; +class UnknownDiagramError extends Error { + constructor(message) { + super(message); + this.name = "UnknownDiagramError"; + } +} +const detectors = {}; +const detectType = function(text, config2) { + text = text.replace(frontMatterRegex, "").replace(directiveRegex, "").replace(anyCommentRegex, "\n"); + for (const [key, { detector: detector2 }] of Object.entries(detectors)) { + const diagram2 = detector2(text, config2); + if (diagram2) { + return key; + } + } + throw new UnknownDiagramError( + `No diagram type detected matching given configuration for text: ${text}` + ); +}; +const registerLazyLoadedDiagrams = (...diagrams2) => { + for (const { id: id2, detector: detector2, loader: loader2 } of diagrams2) { + addDetector(id2, detector2, loader2); + } +}; +const addDetector = (key, detector2, loader2) => { + if (detectors[key]) { + log$1.error(`Detector with key ${key} already exists`); + } else { + detectors[key] = { detector: detector2, loader: loader2 }; + } + log$1.debug(`Detector with key ${key} added${loader2 ? " with loader" : ""}`); +}; +const getDiagramLoader = (key) => { + return detectors[key].loader; +}; +const assignWithDepth = (dst, src, { depth = 2, clobber = false } = {}) => { + const config2 = { depth, clobber }; + if (Array.isArray(src) && !Array.isArray(dst)) { + src.forEach((s) => assignWithDepth(dst, s, config2)); + return dst; + } else if (Array.isArray(src) && Array.isArray(dst)) { + src.forEach((s) => { + if (!dst.includes(s)) { + dst.push(s); + } + }); + return dst; + } + if (dst === void 0 || depth <= 0) { + if (dst !== void 0 && dst !== null && typeof dst === "object" && typeof src === "object") { + return Object.assign(dst, src); + } else { + return src; + } + } + if (src !== void 0 && typeof dst === "object" && typeof src === "object") { + Object.keys(src).forEach((key) => { + if (typeof src[key] === "object" && (dst[key] === void 0 || typeof dst[key] === "object")) { + if (dst[key] === void 0) { + dst[key] = Array.isArray(src[key]) ? [] : {}; + } + dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber }); + } else if (clobber || typeof dst[key] !== "object" && typeof src[key] !== "object") { + dst[key] = src[key]; + } + }); + } + return dst; +}; +const assignWithDepth$1 = assignWithDepth; +const ZERO_WIDTH_SPACE = "​"; +const d3CurveTypes = { + curveBasis, + curveBasisClosed, + curveBasisOpen, + curveBumpX, + curveBumpY, + curveBundle, + curveCardinalClosed, + curveCardinalOpen, + curveCardinal, + curveCatmullRomClosed, + curveCatmullRomOpen, + curveCatmullRom, + curveLinear, + curveLinearClosed, + curveMonotoneX, + curveMonotoneY, + curveNatural, + curveStep, + curveStepAfter, + curveStepBefore +}; +const directiveWithoutOpen = /\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi; +const detectInit = function(text, config2) { + const inits = detectDirective(text, /(?:init\b)|(?:initialize\b)/); + let results = {}; + if (Array.isArray(inits)) { + const args = inits.map((init2) => init2.args); + sanitizeDirective(args); + results = assignWithDepth$1(results, [...args]); + } else { + results = inits.args; + } + if (!results) { + return; + } + let type2 = detectType(text, config2); + const prop = "config"; + if (results[prop] !== void 0) { + if (type2 === "flowchart-v2") { + type2 = "flowchart"; + } + results[type2] = results[prop]; + delete results[prop]; + } + return results; +}; +const detectDirective = function(text, type2 = null) { + try { + const commentWithoutDirectives = new RegExp( + `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).* +`, + "ig" + ); + text = text.trim().replace(commentWithoutDirectives, "").replace(/'/gm, '"'); + log$1.debug( + `Detecting diagram directive${type2 !== null ? " type:" + type2 : ""} based on the text:${text}` + ); + let match; + const result = []; + while ((match = directiveRegex.exec(text)) !== null) { + if (match.index === directiveRegex.lastIndex) { + directiveRegex.lastIndex++; + } + if (match && !type2 || type2 && match[1] && match[1].match(type2) || type2 && match[2] && match[2].match(type2)) { + const type22 = match[1] ? match[1] : match[2]; + const args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null; + result.push({ type: type22, args }); + } + } + if (result.length === 0) { + return { type: text, args: null }; + } + return result.length === 1 ? result[0] : result; + } catch (error) { + log$1.error( + `ERROR: ${error.message} - Unable to parse directive type: '${type2}' based on the text: '${text}'` + ); + return { type: void 0, args: null }; + } +}; +const removeDirectives = function(text) { + return text.replace(directiveRegex, ""); +}; +const isSubstringInArray = function(str2, arr) { + for (const [i, element] of arr.entries()) { + if (element.match(str2)) { + return i; + } + } + return -1; +}; +function interpolateToCurve(interpolate, defaultCurve) { + if (!interpolate) { + return defaultCurve; + } + const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`; + return d3CurveTypes[curveName] ?? defaultCurve; +} +function formatUrl(linkStr, config2) { + const url = linkStr.trim(); + if (!url) { + return void 0; + } + if (config2.securityLevel !== "loose") { + return sanitizeUrl(url); + } + return url; +} +const runFunc = (functionName, ...params) => { + const arrPaths = functionName.split("."); + const len = arrPaths.length - 1; + const fnName = arrPaths[len]; + let obj = window; + for (let i = 0; i < len; i++) { + obj = obj[arrPaths[i]]; + if (!obj) { + log$1.error(`Function name: ${functionName} not found in window`); + return; + } + } + obj[fnName](...params); +}; +function distance(p1, p2) { + if (!p1 || !p2) { + return 0; + } + return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)); +} +function traverseEdge(points) { + let prevPoint; + let totalDistance = 0; + points.forEach((point) => { + totalDistance += distance(point, prevPoint); + prevPoint = point; + }); + const remainingDistance = totalDistance / 2; + return calculatePoint(points, remainingDistance); +} +function calcLabelPosition(points) { + if (points.length === 1) { + return points[0]; + } + return traverseEdge(points); +} +const roundNumber = (num, precision = 2) => { + const factor = Math.pow(10, precision); + return Math.round(num * factor) / factor; +}; +const calculatePoint = (points, distanceToTraverse) => { + let prevPoint = void 0; + let remainingDistance = distanceToTraverse; + for (const point of points) { + if (prevPoint) { + const vectorDistance = distance(point, prevPoint); + if (vectorDistance < remainingDistance) { + remainingDistance -= vectorDistance; + } else { + const distanceRatio = remainingDistance / vectorDistance; + if (distanceRatio <= 0) { + return prevPoint; + } + if (distanceRatio >= 1) { + return { x: point.x, y: point.y }; + } + if (distanceRatio > 0 && distanceRatio < 1) { + return { + x: roundNumber((1 - distanceRatio) * prevPoint.x + distanceRatio * point.x, 5), + y: roundNumber((1 - distanceRatio) * prevPoint.y + distanceRatio * point.y, 5) + }; + } + } + } + prevPoint = point; + } + throw new Error("Could not find a suitable point for the given distance"); +}; +const calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => { + log$1.info(`our points ${JSON.stringify(points)}`); + if (points[0] !== initialPosition) { + points = points.reverse(); + } + const distanceToCardinalityPoint = 25; + const center = calculatePoint(points, distanceToCardinalityPoint); + const d = isRelationTypePresent ? 10 : 5; + const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x); + const cardinalityPosition = { x: 0, y: 0 }; + cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2; + cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2; + return cardinalityPosition; +}; +function calcTerminalLabelPosition(terminalMarkerSize, position, _points) { + const points = structuredClone(_points); + log$1.info("our points", points); + if (position !== "start_left" && position !== "start_right") { + points.reverse(); + } + const distanceToCardinalityPoint = 25 + terminalMarkerSize; + const center = calculatePoint(points, distanceToCardinalityPoint); + const d = 10 + terminalMarkerSize * 0.5; + const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x); + const cardinalityPosition = { x: 0, y: 0 }; + if (position === "start_left") { + cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2; + cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2; + } else if (position === "end_right") { + cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5; + cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5; + } else if (position === "end_left") { + cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5; + cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5; + } else { + cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2; + cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2; + } + return cardinalityPosition; +} +function getStylesFromArray(arr) { + let style = ""; + let labelStyle = ""; + for (const element of arr) { + if (element !== void 0) { + if (element.startsWith("color:") || element.startsWith("text-align:")) { + labelStyle = labelStyle + element + ";"; + } else { + style = style + element + ";"; + } + } + } + return { style, labelStyle }; +} +let cnt = 0; +const generateId = () => { + cnt++; + return "id-" + Math.random().toString(36).substr(2, 12) + "-" + cnt; +}; +function makeRandomHex(length) { + let result = ""; + const characters = "0123456789abcdef"; + const charactersLength = characters.length; + for (let i = 0; i < length; i++) { + result += characters.charAt(Math.floor(Math.random() * charactersLength)); + } + return result; +} +const random = (options) => { + return makeRandomHex(options.length); +}; +const getTextObj = function() { + return { + x: 0, + y: 0, + fill: void 0, + anchor: "start", + style: "#666", + width: 100, + height: 100, + textMargin: 0, + rx: 0, + ry: 0, + valign: void 0, + text: "" + }; +}; +const drawSimpleText = function(elem, textData) { + const nText = textData.text.replace(common$1.lineBreakRegex, " "); + const [, _fontSizePx] = parseFontSize(textData.fontSize); + const textElem = elem.append("text"); + textElem.attr("x", textData.x); + textElem.attr("y", textData.y); + textElem.style("text-anchor", textData.anchor); + textElem.style("font-family", textData.fontFamily); + textElem.style("font-size", _fontSizePx); + textElem.style("font-weight", textData.fontWeight); + textElem.attr("fill", textData.fill); + if (textData.class !== void 0) { + textElem.attr("class", textData.class); + } + const span = textElem.append("tspan"); + span.attr("x", textData.x + textData.textMargin * 2); + span.attr("fill", textData.fill); + span.text(nText); + return textElem; +}; +const wrapLabel = memoize( + (label, maxWidth, config2) => { + if (!label) { + return label; + } + config2 = Object.assign( + { fontSize: 12, fontWeight: 400, fontFamily: "Arial", joinWith: "
" }, + config2 + ); + if (common$1.lineBreakRegex.test(label)) { + return label; + } + const words = label.split(" "); + const completedLines = []; + let nextLine = ""; + words.forEach((word, index) => { + const wordLength = calculateTextWidth(`${word} `, config2); + const nextLineLength = calculateTextWidth(nextLine, config2); + if (wordLength > maxWidth) { + const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, "-", config2); + completedLines.push(nextLine, ...hyphenatedStrings); + nextLine = remainingWord; + } else if (nextLineLength + wordLength >= maxWidth) { + completedLines.push(nextLine); + nextLine = word; + } else { + nextLine = [nextLine, word].filter(Boolean).join(" "); + } + const currentWord = index + 1; + const isLastWord = currentWord === words.length; + if (isLastWord) { + completedLines.push(nextLine); + } + }); + return completedLines.filter((line) => line !== "").join(config2.joinWith); + }, + (label, maxWidth, config2) => `${label}${maxWidth}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}${config2.joinWith}` +); +const breakString = memoize( + (word, maxWidth, hyphenCharacter = "-", config2) => { + config2 = Object.assign( + { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 0 }, + config2 + ); + const characters = [...word]; + const lines = []; + let currentLine = ""; + characters.forEach((character, index) => { + const nextLine = `${currentLine}${character}`; + const lineWidth = calculateTextWidth(nextLine, config2); + if (lineWidth >= maxWidth) { + const currentCharacter = index + 1; + const isLastLine = characters.length === currentCharacter; + const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`; + lines.push(isLastLine ? nextLine : hyphenatedNextLine); + currentLine = ""; + } else { + currentLine = nextLine; + } + }); + return { hyphenatedStrings: lines, remainingWord: currentLine }; + }, + (word, maxWidth, hyphenCharacter = "-", config2) => `${word}${maxWidth}${hyphenCharacter}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}` +); +function calculateTextHeight(text, config2) { + return calculateTextDimensions(text, config2).height; +} +function calculateTextWidth(text, config2) { + return calculateTextDimensions(text, config2).width; +} +const calculateTextDimensions = memoize( + (text, config2) => { + const { fontSize = 12, fontFamily = "Arial", fontWeight = 400 } = config2; + if (!text) { + return { width: 0, height: 0 }; + } + const [, _fontSizePx] = parseFontSize(fontSize); + const fontFamilies = ["sans-serif", fontFamily]; + const lines = text.split(common$1.lineBreakRegex); + const dims = []; + const body = select("body"); + if (!body.remove) { + return { width: 0, height: 0, lineHeight: 0 }; + } + const g = body.append("svg"); + for (const fontFamily2 of fontFamilies) { + let cHeight = 0; + const dim = { width: 0, height: 0, lineHeight: 0 }; + for (const line of lines) { + const textObj = getTextObj(); + textObj.text = line || ZERO_WIDTH_SPACE; + const textElem = drawSimpleText(g, textObj).style("font-size", _fontSizePx).style("font-weight", fontWeight).style("font-family", fontFamily2); + const bBox = (textElem._groups || textElem)[0][0].getBBox(); + if (bBox.width === 0 && bBox.height === 0) { + throw new Error("svg element not in render tree"); + } + dim.width = Math.round(Math.max(dim.width, bBox.width)); + cHeight = Math.round(bBox.height); + dim.height += cHeight; + dim.lineHeight = Math.round(Math.max(dim.lineHeight, cHeight)); + } + dims.push(dim); + } + g.remove(); + const index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1; + return dims[index]; + }, + (text, config2) => `${text}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}` +); +class InitIDGenerator { + constructor(deterministic = false, seed) { + this.count = 0; + this.count = seed ? seed.length : 0; + this.next = deterministic ? () => this.count++ : () => Date.now(); + } +} +let decoder; +const entityDecode = function(html) { + decoder = decoder || document.createElement("div"); + html = escape(html).replace(/%26/g, "&").replace(/%23/g, "#").replace(/%3B/g, ";"); + decoder.innerHTML = html; + return unescape(decoder.textContent); +}; +function isDetailedError(error) { + return "str" in error; +} +const insertTitle = (parent, cssClass, titleTopMargin, title) => { + var _a; + if (!title) { + return; + } + const bounds = (_a = parent.node()) == null ? void 0 : _a.getBBox(); + if (!bounds) { + return; + } + parent.append("text").text(title).attr("x", bounds.x + bounds.width / 2).attr("y", -titleTopMargin).attr("class", cssClass); +}; +const parseFontSize = (fontSize) => { + if (typeof fontSize === "number") { + return [fontSize, fontSize + "px"]; + } + const fontSizeNumber = parseInt(fontSize ?? "", 10); + if (Number.isNaN(fontSizeNumber)) { + return [void 0, void 0]; + } else if (fontSize === String(fontSizeNumber)) { + return [fontSizeNumber, fontSize + "px"]; + } else { + return [fontSizeNumber, fontSize]; + } +}; +function cleanAndMerge(defaultData, data) { + return merge$1({}, defaultData, data); +} +const utils = { + assignWithDepth: assignWithDepth$1, + wrapLabel, + calculateTextHeight, + calculateTextWidth, + calculateTextDimensions, + cleanAndMerge, + detectInit, + detectDirective, + isSubstringInArray, + interpolateToCurve, + calcLabelPosition, + calcCardinalityPosition, + calcTerminalLabelPosition, + formatUrl, + getStylesFromArray, + generateId, + random, + runFunc, + entityDecode, + insertTitle, + parseFontSize, + InitIDGenerator +}; +const encodeEntities = function(text) { + let txt = text; + txt = txt.replace(/style.*:\S*#.*;/g, function(s) { + return s.substring(0, s.length - 1); + }); + txt = txt.replace(/classDef.*:\S*#.*;/g, function(s) { + return s.substring(0, s.length - 1); + }); + txt = txt.replace(/#\w+;/g, function(s) { + const innerTxt = s.substring(1, s.length - 1); + const isInt = /^\+?\d+$/.test(innerTxt); + if (isInt) { + return "fl°°" + innerTxt + "¶ß"; + } else { + return "fl°" + innerTxt + "¶ß"; + } + }); + return txt; +}; +const decodeEntities = function(text) { + return text.replace(/fl°°/g, "&#").replace(/fl°/g, "&").replace(/¶ß/g, ";"); +}; +const version = "10.9.1"; +const defaultConfig$1 = Object.freeze(defaultConfig$2); +let siteConfig = assignWithDepth$1({}, defaultConfig$1); +let configFromInitialize; +let directives = []; +let currentConfig = assignWithDepth$1({}, defaultConfig$1); +const updateCurrentConfig = (siteCfg, _directives) => { + let cfg = assignWithDepth$1({}, siteCfg); + let sumOfDirectives = {}; + for (const d of _directives) { + sanitize(d); + sumOfDirectives = assignWithDepth$1(sumOfDirectives, d); + } + cfg = assignWithDepth$1(cfg, sumOfDirectives); + if (sumOfDirectives.theme && sumOfDirectives.theme in theme) { + const tmpConfigFromInitialize = assignWithDepth$1({}, configFromInitialize); + const themeVariables = assignWithDepth$1( + tmpConfigFromInitialize.themeVariables || {}, + sumOfDirectives.themeVariables + ); + if (cfg.theme && cfg.theme in theme) { + cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables); + } + } + currentConfig = cfg; + checkConfig(currentConfig); + return currentConfig; +}; +const setSiteConfig = (conf) => { + siteConfig = assignWithDepth$1({}, defaultConfig$1); + siteConfig = assignWithDepth$1(siteConfig, conf); + if (conf.theme && theme[conf.theme]) { + siteConfig.themeVariables = theme[conf.theme].getThemeVariables(conf.themeVariables); + } + updateCurrentConfig(siteConfig, directives); + return siteConfig; +}; +const saveConfigFromInitialize = (conf) => { + configFromInitialize = assignWithDepth$1({}, conf); +}; +const updateSiteConfig = (conf) => { + siteConfig = assignWithDepth$1(siteConfig, conf); + updateCurrentConfig(siteConfig, directives); + return siteConfig; +}; +const getSiteConfig = () => { + return assignWithDepth$1({}, siteConfig); +}; +const setConfig$1 = (conf) => { + checkConfig(conf); + assignWithDepth$1(currentConfig, conf); + return getConfig$1(); +}; +const getConfig$1 = () => { + return assignWithDepth$1({}, currentConfig); +}; +const sanitize = (options) => { + if (!options) { + return; + } + ["secure", ...siteConfig.secure ?? []].forEach((key) => { + if (Object.hasOwn(options, key)) { + log$1.debug(`Denied attempt to modify a secure key ${key}`, options[key]); + delete options[key]; + } + }); + Object.keys(options).forEach((key) => { + if (key.startsWith("__")) { + delete options[key]; + } + }); + Object.keys(options).forEach((key) => { + if (typeof options[key] === "string" && (options[key].includes("<") || options[key].includes(">") || options[key].includes("url(data:"))) { + delete options[key]; + } + if (typeof options[key] === "object") { + sanitize(options[key]); + } + }); +}; +const addDirective = (directive) => { + sanitizeDirective(directive); + if (directive.fontFamily && (!directive.themeVariables || !directive.themeVariables.fontFamily)) { + directive.themeVariables = { fontFamily: directive.fontFamily }; + } + directives.push(directive); + updateCurrentConfig(siteConfig, directives); +}; +const reset = (config2 = siteConfig) => { + directives = []; + updateCurrentConfig(config2, directives); +}; +const ConfigWarning = { + LAZY_LOAD_DEPRECATED: "The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead." +}; +const issuedWarnings = {}; +const issueWarning = (warning) => { + if (issuedWarnings[warning]) { + return; + } + log$1.warn(ConfigWarning[warning]); + issuedWarnings[warning] = true; +}; +const checkConfig = (config2) => { + if (!config2) { + return; + } + if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) { + issueWarning("LAZY_LOAD_DEPRECATED"); + } +}; +const id$l = "c4"; +const detector$l = (txt) => { + return /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt); +}; +const loader$m = async () => { + const { diagram: diagram2 } = await import("./c4Diagram-ae766693.js"); + return { id: id$l, diagram: diagram2 }; +}; +const plugin$j = { + id: id$l, + detector: detector$l, + loader: loader$m +}; +const c4 = plugin$j; +const id$k = "flowchart"; +const detector$k = (txt, config2) => { + var _a, _b; + if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === "elk") { + return false; + } + return /^\s*graph/.test(txt); +}; +const loader$l = async () => { + const { diagram: diagram2 } = await import("./flowDiagram-b222e15a.js"); + return { id: id$k, diagram: diagram2 }; +}; +const plugin$i = { + id: id$k, + detector: detector$k, + loader: loader$l +}; +const flowchart = plugin$i; +const id$j = "flowchart-v2"; +const detector$j = (txt, config2) => { + var _a, _b, _c; + if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "dagre-d3" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === "elk") { + return false; + } + if (/^\s*graph/.test(txt) && ((_c = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _c.defaultRenderer) === "dagre-wrapper") { + return true; + } + return /^\s*flowchart/.test(txt); +}; +const loader$k = async () => { + const { diagram: diagram2 } = await import("./flowDiagram-v2-13329dc7.js"); + return { id: id$j, diagram: diagram2 }; +}; +const plugin$h = { + id: id$j, + detector: detector$j, + loader: loader$k +}; +const flowchartV2 = plugin$h; +const id$i = "er"; +const detector$i = (txt) => { + return /^\s*erDiagram/.test(txt); +}; +const loader$j = async () => { + const { diagram: diagram2 } = await import("./erDiagram-09d1c15f.js"); + return { id: id$i, diagram: diagram2 }; +}; +const plugin$g = { + id: id$i, + detector: detector$i, + loader: loader$j +}; +const er = plugin$g; +const id$h = "gitGraph"; +const detector$h = (txt) => { + return /^\s*gitGraph/.test(txt); +}; +const loader$i = async () => { + const { diagram: diagram2 } = await import("./gitGraphDiagram-942e62fe.js"); + return { id: id$h, diagram: diagram2 }; +}; +const plugin$f = { + id: id$h, + detector: detector$h, + loader: loader$i +}; +const git = plugin$f; +const id$g = "gantt"; +const detector$g = (txt) => { + return /^\s*gantt/.test(txt); +}; +const loader$h = async () => { + const { diagram: diagram2 } = await import("./ganttDiagram-b62c793e.js"); + return { id: id$g, diagram: diagram2 }; +}; +const plugin$e = { + id: id$g, + detector: detector$g, + loader: loader$h +}; +const gantt = plugin$e; +const id$f = "info"; +const detector$f = (txt) => { + return /^\s*info/.test(txt); +}; +const loader$g = async () => { + const { diagram: diagram2 } = await import("./infoDiagram-94cd232f.js"); + return { id: id$f, diagram: diagram2 }; +}; +const info = { + id: id$f, + detector: detector$f, + loader: loader$g +}; +const id$e = "pie"; +const detector$e = (txt) => { + return /^\s*pie/.test(txt); +}; +const loader$f = async () => { + const { diagram: diagram2 } = await import("./pieDiagram-bb1d19e5.js"); + return { id: id$e, diagram: diagram2 }; +}; +const pie = { + id: id$e, + detector: detector$e, + loader: loader$f +}; +const id$d = "quadrantChart"; +const detector$d = (txt) => { + return /^\s*quadrantChart/.test(txt); +}; +const loader$e = async () => { + const { diagram: diagram2 } = await import("./quadrantDiagram-c759a472.js"); + return { id: id$d, diagram: diagram2 }; +}; +const plugin$d = { + id: id$d, + detector: detector$d, + loader: loader$e +}; +const quadrantChart = plugin$d; +const id$c = "xychart"; +const detector$c = (txt) => { + return /^\s*xychart-beta/.test(txt); +}; +const loader$d = async () => { + const { diagram: diagram2 } = await import("./xychartDiagram-f11f50a6.js"); + return { id: id$c, diagram: diagram2 }; +}; +const plugin$c = { + id: id$c, + detector: detector$c, + loader: loader$d +}; +const xychart = plugin$c; +const id$b = "requirement"; +const detector$b = (txt) => { + return /^\s*requirement(Diagram)?/.test(txt); +}; +const loader$c = async () => { + const { diagram: diagram2 } = await import("./requirementDiagram-87253d64.js"); + return { id: id$b, diagram: diagram2 }; +}; +const plugin$b = { + id: id$b, + detector: detector$b, + loader: loader$c +}; +const requirement = plugin$b; +const id$a = "sequence"; +const detector$a = (txt) => { + return /^\s*sequenceDiagram/.test(txt); +}; +const loader$b = async () => { + const { diagram: diagram2 } = await import("./sequenceDiagram-6894f283.js"); + return { id: id$a, diagram: diagram2 }; +}; +const plugin$a = { + id: id$a, + detector: detector$a, + loader: loader$b +}; +const sequence = plugin$a; +const id$9 = "class"; +const detector$9 = (txt, config2) => { + var _a; + if (((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") { + return false; + } + return /^\s*classDiagram/.test(txt); +}; +const loader$a = async () => { + const { diagram: diagram2 } = await import("./classDiagram-fb54d2a0.js"); + return { id: id$9, diagram: diagram2 }; +}; +const plugin$9 = { + id: id$9, + detector: detector$9, + loader: loader$a +}; +const classDiagram = plugin$9; +const id$8 = "classDiagram"; +const detector$8 = (txt, config2) => { + var _a; + if (/^\s*classDiagram/.test(txt) && ((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") { + return true; + } + return /^\s*classDiagram-v2/.test(txt); +}; +const loader$9 = async () => { + const { diagram: diagram2 } = await import("./classDiagram-v2-a2b738ad.js"); + return { id: id$8, diagram: diagram2 }; +}; +const plugin$8 = { + id: id$8, + detector: detector$8, + loader: loader$9 +}; +const classDiagramV2 = plugin$8; +const id$7 = "state"; +const detector$7 = (txt, config2) => { + var _a; + if (((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") { + return false; + } + return /^\s*stateDiagram/.test(txt); +}; +const loader$8 = async () => { + const { diagram: diagram2 } = await import("./stateDiagram-5dee940d.js"); + return { id: id$7, diagram: diagram2 }; +}; +const plugin$7 = { + id: id$7, + detector: detector$7, + loader: loader$8 +}; +const state = plugin$7; +const id$6 = "stateDiagram"; +const detector$6 = (txt, config2) => { + var _a; + if (/^\s*stateDiagram-v2/.test(txt)) { + return true; + } + if (/^\s*stateDiagram/.test(txt) && ((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") { + return true; + } + return false; +}; +const loader$7 = async () => { + const { diagram: diagram2 } = await import("./stateDiagram-v2-1992cada.js"); + return { id: id$6, diagram: diagram2 }; +}; +const plugin$6 = { + id: id$6, + detector: detector$6, + loader: loader$7 +}; +const stateV2 = plugin$6; +const id$5 = "journey"; +const detector$5 = (txt) => { + return /^\s*journey/.test(txt); +}; +const loader$6 = async () => { + const { diagram: diagram2 } = await import("./journeyDiagram-6625b456.js"); + return { id: id$5, diagram: diagram2 }; +}; +const plugin$5 = { + id: id$5, + detector: detector$5, + loader: loader$6 +}; +const journey = plugin$5; +const d3Attrs = function(d3Elem, attrs) { + for (let attr of attrs) { + d3Elem.attr(attr[0], attr[1]); + } +}; +const calculateSvgSizeAttrs = function(height, width, useMaxWidth) { + let attrs = /* @__PURE__ */ new Map(); + if (useMaxWidth) { + attrs.set("width", "100%"); + attrs.set("style", `max-width: ${width}px;`); + } else { + attrs.set("height", height); + attrs.set("width", width); + } + return attrs; +}; +const configureSvgSize = function(svgElem, height, width, useMaxWidth) { + const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth); + d3Attrs(svgElem, attrs); +}; +const setupGraphViewbox$1 = function(graph, svgElem, padding, useMaxWidth) { + const svgBounds = svgElem.node().getBBox(); + const sWidth = svgBounds.width; + const sHeight = svgBounds.height; + log$1.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds); + let width = 0; + let height = 0; + log$1.info(`Graph bounds: ${width}x${height}`, graph); + width = sWidth + padding * 2; + height = sHeight + padding * 2; + log$1.info(`Calculated bounds: ${width}x${height}`); + configureSvgSize(svgElem, height, width, useMaxWidth); + const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${svgBounds.width + 2 * padding} ${svgBounds.height + 2 * padding}`; + svgElem.attr("viewBox", vBox); +}; +const themes = {}; +const getStyles = (type2, userStyles, options) => { + let diagramStyles = ""; + if (type2 in themes && themes[type2]) { + diagramStyles = themes[type2](options); + } else { + log$1.warn(`No theme found for ${type2}`); + } + return ` & { + font-family: ${options.fontFamily}; + font-size: ${options.fontSize}; + fill: ${options.textColor} + } + + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${options.errorBkgColor}; + } + & .error-text { + fill: ${options.errorTextColor}; + stroke: ${options.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 2px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${options.lineColor}; + stroke: ${options.lineColor}; + } + & .marker.cross { + stroke: ${options.lineColor}; + } + + & svg { + font-family: ${options.fontFamily}; + font-size: ${options.fontSize}; + } + + ${diagramStyles} + + ${userStyles} +`; +}; +const addStylesForDiagram = (type2, diagramTheme) => { + if (diagramTheme !== void 0) { + themes[type2] = diagramTheme; + } +}; +const getStyles$1 = getStyles; +let accTitle = ""; +let diagramTitle = ""; +let accDescription = ""; +const sanitizeText$1 = (txt) => sanitizeText$2(txt, getConfig$1()); +const clear = () => { + accTitle = ""; + accDescription = ""; + diagramTitle = ""; +}; +const setAccTitle = (txt) => { + accTitle = sanitizeText$1(txt).replace(/^\s+/g, ""); +}; +const getAccTitle = () => accTitle; +const setAccDescription = (txt) => { + accDescription = sanitizeText$1(txt).replace(/\n\s+/g, "\n"); +}; +const getAccDescription = () => accDescription; +const setDiagramTitle = (txt) => { + diagramTitle = sanitizeText$1(txt); +}; +const getDiagramTitle = () => diagramTitle; +const commonDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + clear, + getAccDescription, + getAccTitle, + getDiagramTitle, + setAccDescription, + setAccTitle, + setDiagramTitle +}, Symbol.toStringTag, { value: "Module" })); +const log = log$1; +const setLogLevel = setLogLevel$1; +const getConfig = getConfig$1; +const setConfig = setConfig$1; +const defaultConfig = defaultConfig$1; +const sanitizeText = (text) => sanitizeText$2(text, getConfig()); +const setupGraphViewbox = setupGraphViewbox$1; +const getCommonDb = () => { + return commonDb; +}; +const diagrams = {}; +const registerDiagram = (id2, diagram2, detector2) => { + var _a; + if (diagrams[id2]) { + throw new Error(`Diagram ${id2} already registered.`); + } + diagrams[id2] = diagram2; + if (detector2) { + addDetector(id2, detector2); + } + addStylesForDiagram(id2, diagram2.styles); + (_a = diagram2.injectUtils) == null ? void 0 : _a.call( + diagram2, + log, + setLogLevel, + getConfig, + sanitizeText, + setupGraphViewbox, + getCommonDb(), + () => { + } + ); +}; +const getDiagram = (name) => { + if (name in diagrams) { + return diagrams[name]; + } + throw new DiagramNotFoundError(name); +}; +class DiagramNotFoundError extends Error { + constructor(name) { + super(`Diagram ${name} not found.`); + } +} +const selectSvgElement = (id2) => { + var _a; + const { securityLevel } = getConfig(); + let root = select("body"); + if (securityLevel === "sandbox") { + const sandboxElement = select(`#i${id2}`); + const doc = ((_a = sandboxElement.node()) == null ? void 0 : _a.contentDocument) ?? document; + root = select(doc.body); + } + const svg = root.select(`#${id2}`); + return svg; +}; +const draw = (_text, id2, version2) => { + log$1.debug("rendering svg for syntax error\n"); + const svg = selectSvgElement(id2); + const g = svg.append("g"); + svg.attr("viewBox", "0 0 2412 512"); + configureSvgSize(svg, 100, 512, true); + g.append("path").attr("class", "error-icon").attr( + "d", + "m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z" + ); + g.append("path").attr("class", "error-icon").attr( + "d", + "m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z" + ); + g.append("path").attr("class", "error-icon").attr( + "d", + "m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z" + ); + g.append("path").attr("class", "error-icon").attr( + "d", + "m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z" + ); + g.append("path").attr("class", "error-icon").attr( + "d", + "m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z" + ); + g.append("path").attr("class", "error-icon").attr( + "d", + "m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z" + ); + g.append("text").attr("class", "error-text").attr("x", 1440).attr("y", 250).attr("font-size", "150px").style("text-anchor", "middle").text("Syntax error in text"); + g.append("text").attr("class", "error-text").attr("x", 1250).attr("y", 400).attr("font-size", "100px").style("text-anchor", "middle").text(`mermaid version ${version2}`); +}; +const renderer = { draw }; +const errorRenderer = renderer; +const diagram = { + db: {}, + renderer, + parser: { + parser: { yy: {} }, + parse: () => { + return; + } + } +}; +const errorDiagram = diagram; +const id$4 = "flowchart-elk"; +const detector$4 = (txt, config2) => { + var _a; + if ( + // If diagram explicitly states flowchart-elk + /^\s*flowchart-elk/.test(txt) || // If a flowchart/graph diagram has their default renderer set to elk + /^\s*flowchart|graph/.test(txt) && ((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "elk" + ) { + return true; + } + return false; +}; +const loader$5 = async () => { + const { diagram: diagram2 } = await import("./flowchart-elk-definition-ae0efee6.js"); + return { id: id$4, diagram: diagram2 }; +}; +const plugin$4 = { + id: id$4, + detector: detector$4, + loader: loader$5 +}; +const flowchartElk = plugin$4; +const id$3 = "timeline"; +const detector$3 = (txt) => { + return /^\s*timeline/.test(txt); +}; +const loader$4 = async () => { + const { diagram: diagram2 } = await import("./timeline-definition-bf702344.js"); + return { id: id$3, diagram: diagram2 }; +}; +const plugin$3 = { + id: id$3, + detector: detector$3, + loader: loader$4 +}; +const timeline = plugin$3; +const id$2 = "mindmap"; +const detector$2 = (txt) => { + return /^\s*mindmap/.test(txt); +}; +const loader$3 = async () => { + const { diagram: diagram2 } = await import("./mindmap-definition-307c710a.js"); + return { id: id$2, diagram: diagram2 }; +}; +const plugin$2 = { + id: id$2, + detector: detector$2, + loader: loader$3 +}; +const mindmap = plugin$2; +const id$1 = "sankey"; +const detector$1 = (txt) => { + return /^\s*sankey-beta/.test(txt); +}; +const loader$2 = async () => { + const { diagram: diagram2 } = await import("./sankeyDiagram-707fac0f.js"); + return { id: id$1, diagram: diagram2 }; +}; +const plugin$1 = { + id: id$1, + detector: detector$1, + loader: loader$2 +}; +const sankey = plugin$1; +const id = "block"; +const detector = (txt) => { + return /^\s*block-beta/.test(txt); +}; +const loader$1 = async () => { + const { diagram: diagram2 } = await import("./blockDiagram-9f4a6865.js"); + return { id, diagram: diagram2 }; +}; +const plugin = { + id, + detector, + loader: loader$1 +}; +const block = plugin; +let hasLoadedDiagrams = false; +const addDiagrams = () => { + if (hasLoadedDiagrams) { + return; + } + hasLoadedDiagrams = true; + registerDiagram("error", errorDiagram, (text) => { + return text.toLowerCase().trim() === "error"; + }); + registerDiagram( + "---", + // --- diagram type may appear if YAML front-matter is not parsed correctly + { + db: { + clear: () => { + } + }, + styles: {}, + // should never be used + renderer: { + draw: () => { + } + }, + parser: { + parser: { yy: {} }, + parse: () => { + throw new Error( + "Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks" + ); + } + }, + init: () => null + // no op + }, + (text) => { + return text.toLowerCase().trimStart().startsWith("---"); + } + ); + registerLazyLoadedDiagrams( + c4, + classDiagramV2, + classDiagram, + er, + gantt, + info, + pie, + requirement, + sequence, + flowchartElk, + flowchartV2, + flowchart, + mindmap, + timeline, + git, + stateV2, + state, + journey, + quadrantChart, + sankey, + xychart, + block + ); +}; +class Diagram { + constructor(text, metadata = {}) { + this.text = text; + this.metadata = metadata; + this.type = "graph"; + this.text = encodeEntities(text); + this.text += "\n"; + const cnf = getConfig$1(); + try { + this.type = detectType(text, cnf); + } catch (e) { + this.type = "error"; + this.detectError = e; + } + const diagram2 = getDiagram(this.type); + log$1.debug("Type " + this.type); + this.db = diagram2.db; + this.renderer = diagram2.renderer; + this.parser = diagram2.parser; + this.parser.parser.yy = this.db; + this.init = diagram2.init; + this.parse(); + } + parse() { + var _a, _b, _c, _d, _e; + if (this.detectError) { + throw this.detectError; + } + (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a); + const config2 = getConfig$1(); + (_c = this.init) == null ? void 0 : _c.call(this, config2); + if (this.metadata.title) { + (_e = (_d = this.db).setDiagramTitle) == null ? void 0 : _e.call(_d, this.metadata.title); + } + this.parser.parse(this.text); + } + async render(id2, version2) { + await this.renderer.draw(this.text, id2, version2, this); + } + getParser() { + return this.parser; + } + getType() { + return this.type; + } +} +const getDiagramFromText$1 = async (text, metadata = {}) => { + const type2 = detectType(text, getConfig$1()); + try { + getDiagram(type2); + } catch (error) { + const loader2 = getDiagramLoader(type2); + if (!loader2) { + throw new UnknownDiagramError(`Diagram ${type2} not found.`); + } + const { id: id2, diagram: diagram2 } = await loader2(); + registerDiagram(id2, diagram2); + } + return new Diagram(text, metadata); +}; +let interactionFunctions = []; +const attachFunctions = () => { + interactionFunctions.forEach((f) => { + f(); + }); + interactionFunctions = []; +}; +const SVG_ROLE = "graphics-document document"; +function setA11yDiagramInfo(svg, diagramType) { + svg.attr("role", SVG_ROLE); + if (diagramType !== "") { + svg.attr("aria-roledescription", diagramType); + } +} +function addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, baseId) { + if (svg.insert === void 0) { + return; + } + if (a11yDesc) { + const descId = `chart-desc-${baseId}`; + svg.attr("aria-describedby", descId); + svg.insert("desc", ":first-child").attr("id", descId).text(a11yDesc); + } + if (a11yTitle) { + const titleId = `chart-title-${baseId}`; + svg.attr("aria-labelledby", titleId); + svg.insert("title", ":first-child").attr("id", titleId).text(a11yTitle); + } +} +const cleanupComments = (text) => { + return text.replace(/^\s*%%(?!{)[^\n]+\n?/gm, "").trimStart(); +}; +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ +function isNothing(subject) { + return typeof subject === "undefined" || subject === null; +} +function isObject(subject) { + return typeof subject === "object" && subject !== null; +} +function toArray(sequence2) { + if (Array.isArray(sequence2)) + return sequence2; + else if (isNothing(sequence2)) + return []; + return [sequence2]; +} +function extend(target, source) { + var index, length, key, sourceKeys; + if (source) { + sourceKeys = Object.keys(source); + for (index = 0, length = sourceKeys.length; index < length; index += 1) { + key = sourceKeys[index]; + target[key] = source[key]; + } + } + return target; +} +function repeat(string, count) { + var result = "", cycle; + for (cycle = 0; cycle < count; cycle += 1) { + result += string; + } + return result; +} +function isNegativeZero(number) { + return number === 0 && Number.NEGATIVE_INFINITY === 1 / number; +} +var isNothing_1 = isNothing; +var isObject_1 = isObject; +var toArray_1 = toArray; +var repeat_1 = repeat; +var isNegativeZero_1 = isNegativeZero; +var extend_1 = extend; +var common = { + isNothing: isNothing_1, + isObject: isObject_1, + toArray: toArray_1, + repeat: repeat_1, + isNegativeZero: isNegativeZero_1, + extend: extend_1 +}; +function formatError(exception2, compact) { + var where = "", message = exception2.reason || "(unknown reason)"; + if (!exception2.mark) + return message; + if (exception2.mark.name) { + where += 'in "' + exception2.mark.name + '" '; + } + where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")"; + if (!compact && exception2.mark.snippet) { + where += "\n\n" + exception2.mark.snippet; + } + return message + " " + where; +} +function YAMLException$1(reason, mark) { + Error.call(this); + this.name = "YAMLException"; + this.reason = reason; + this.mark = mark; + this.message = formatError(this, false); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = new Error().stack || ""; + } +} +YAMLException$1.prototype = Object.create(Error.prototype); +YAMLException$1.prototype.constructor = YAMLException$1; +YAMLException$1.prototype.toString = function toString(compact) { + return this.name + ": " + formatError(this, compact); +}; +var exception = YAMLException$1; +function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { + var head = ""; + var tail = ""; + var maxHalfLength = Math.floor(maxLineLength / 2) - 1; + if (position - lineStart > maxHalfLength) { + head = " ... "; + lineStart = position - maxHalfLength + head.length; + } + if (lineEnd - position > maxHalfLength) { + tail = " ..."; + lineEnd = position + maxHalfLength - tail.length; + } + return { + str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, "→") + tail, + pos: position - lineStart + head.length + // relative position + }; +} +function padStart(string, max) { + return common.repeat(" ", max - string.length) + string; +} +function makeSnippet(mark, options) { + options = Object.create(options || null); + if (!mark.buffer) + return null; + if (!options.maxLength) + options.maxLength = 79; + if (typeof options.indent !== "number") + options.indent = 1; + if (typeof options.linesBefore !== "number") + options.linesBefore = 3; + if (typeof options.linesAfter !== "number") + options.linesAfter = 2; + var re = /\r?\n|\r|\0/g; + var lineStarts = [0]; + var lineEnds = []; + var match; + var foundLineNo = -1; + while (match = re.exec(mark.buffer)) { + lineEnds.push(match.index); + lineStarts.push(match.index + match[0].length); + if (mark.position <= match.index && foundLineNo < 0) { + foundLineNo = lineStarts.length - 2; + } + } + if (foundLineNo < 0) + foundLineNo = lineStarts.length - 1; + var result = "", i, line; + var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; + var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); + for (i = 1; i <= options.linesBefore; i++) { + if (foundLineNo - i < 0) + break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo - i], + lineEnds[foundLineNo - i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), + maxLineLength + ); + result = common.repeat(" ", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + " | " + line.str + "\n" + result; + } + line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); + result += common.repeat(" ", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line.str + "\n"; + result += common.repeat("-", options.indent + lineNoLength + 3 + line.pos) + "^\n"; + for (i = 1; i <= options.linesAfter; i++) { + if (foundLineNo + i >= lineEnds.length) + break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo + i], + lineEnds[foundLineNo + i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), + maxLineLength + ); + result += common.repeat(" ", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + " | " + line.str + "\n"; + } + return result.replace(/\n$/, ""); +} +var snippet = makeSnippet; +var TYPE_CONSTRUCTOR_OPTIONS = [ + "kind", + "multi", + "resolve", + "construct", + "instanceOf", + "predicate", + "represent", + "representName", + "defaultStyle", + "styleAliases" +]; +var YAML_NODE_KINDS = [ + "scalar", + "sequence", + "mapping" +]; +function compileStyleAliases(map2) { + var result = {}; + if (map2 !== null) { + Object.keys(map2).forEach(function(style) { + map2[style].forEach(function(alias) { + result[String(alias)] = style; + }); + }); + } + return result; +} +function Type$1(tag, options) { + options = options || {}; + Object.keys(options).forEach(function(name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + this.options = options; + this.tag = tag; + this.kind = options["kind"] || null; + this.resolve = options["resolve"] || function() { + return true; + }; + this.construct = options["construct"] || function(data) { + return data; + }; + this.instanceOf = options["instanceOf"] || null; + this.predicate = options["predicate"] || null; + this.represent = options["represent"] || null; + this.representName = options["representName"] || null; + this.defaultStyle = options["defaultStyle"] || null; + this.multi = options["multi"] || false; + this.styleAliases = compileStyleAliases(options["styleAliases"] || null); + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } +} +var type = Type$1; +function compileList(schema2, name) { + var result = []; + schema2[name].forEach(function(currentType) { + var newIndex = result.length; + result.forEach(function(previousType, previousIndex) { + if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) { + newIndex = previousIndex; + } + }); + result[newIndex] = currentType; + }); + return result; +} +function compileMap() { + var result = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {}, + multi: { + scalar: [], + sequence: [], + mapping: [], + fallback: [] + } + }, index, length; + function collectType(type2) { + if (type2.multi) { + result.multi[type2.kind].push(type2); + result.multi["fallback"].push(type2); + } else { + result[type2.kind][type2.tag] = result["fallback"][type2.tag] = type2; + } + } + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType); + } + return result; +} +function Schema$1(definition) { + return this.extend(definition); +} +Schema$1.prototype.extend = function extend2(definition) { + var implicit = []; + var explicit = []; + if (definition instanceof type) { + explicit.push(definition); + } else if (Array.isArray(definition)) { + explicit = explicit.concat(definition); + } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { + if (definition.implicit) + implicit = implicit.concat(definition.implicit); + if (definition.explicit) + explicit = explicit.concat(definition.explicit); + } else { + throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })"); + } + implicit.forEach(function(type$1) { + if (!(type$1 instanceof type)) { + throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); + } + if (type$1.loadKind && type$1.loadKind !== "scalar") { + throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported."); + } + if (type$1.multi) { + throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit."); + } + }); + explicit.forEach(function(type$1) { + if (!(type$1 instanceof type)) { + throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); + } + }); + var result = Object.create(Schema$1.prototype); + result.implicit = (this.implicit || []).concat(implicit); + result.explicit = (this.explicit || []).concat(explicit); + result.compiledImplicit = compileList(result, "implicit"); + result.compiledExplicit = compileList(result, "explicit"); + result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); + return result; +}; +var schema = Schema$1; +var str = new type("tag:yaml.org,2002:str", { + kind: "scalar", + construct: function(data) { + return data !== null ? data : ""; + } +}); +var seq = new type("tag:yaml.org,2002:seq", { + kind: "sequence", + construct: function(data) { + return data !== null ? data : []; + } +}); +var map = new type("tag:yaml.org,2002:map", { + kind: "mapping", + construct: function(data) { + return data !== null ? data : {}; + } +}); +var failsafe = new schema({ + explicit: [ + str, + seq, + map + ] +}); +function resolveYamlNull(data) { + if (data === null) + return true; + var max = data.length; + return max === 1 && data === "~" || max === 4 && (data === "null" || data === "Null" || data === "NULL"); +} +function constructYamlNull() { + return null; +} +function isNull(object) { + return object === null; +} +var _null = new type("tag:yaml.org,2002:null", { + kind: "scalar", + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function() { + return "~"; + }, + lowercase: function() { + return "null"; + }, + uppercase: function() { + return "NULL"; + }, + camelcase: function() { + return "Null"; + }, + empty: function() { + return ""; + } + }, + defaultStyle: "lowercase" +}); +function resolveYamlBoolean(data) { + if (data === null) + return false; + var max = data.length; + return max === 4 && (data === "true" || data === "True" || data === "TRUE") || max === 5 && (data === "false" || data === "False" || data === "FALSE"); +} +function constructYamlBoolean(data) { + return data === "true" || data === "True" || data === "TRUE"; +} +function isBoolean(object) { + return Object.prototype.toString.call(object) === "[object Boolean]"; +} +var bool = new type("tag:yaml.org,2002:bool", { + kind: "scalar", + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function(object) { + return object ? "true" : "false"; + }, + uppercase: function(object) { + return object ? "TRUE" : "FALSE"; + }, + camelcase: function(object) { + return object ? "True" : "False"; + } + }, + defaultStyle: "lowercase" +}); +function isHexCode(c) { + return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102; +} +function isOctCode(c) { + return 48 <= c && c <= 55; +} +function isDecCode(c) { + return 48 <= c && c <= 57; +} +function resolveYamlInteger(data) { + if (data === null) + return false; + var max = data.length, index = 0, hasDigits = false, ch; + if (!max) + return false; + ch = data[index]; + if (ch === "-" || ch === "+") { + ch = data[++index]; + } + if (ch === "0") { + if (index + 1 === max) + return true; + ch = data[++index]; + if (ch === "b") { + index++; + for (; index < max; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (ch !== "0" && ch !== "1") + return false; + hasDigits = true; + } + return hasDigits && ch !== "_"; + } + if (ch === "x") { + index++; + for (; index < max; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (!isHexCode(data.charCodeAt(index))) + return false; + hasDigits = true; + } + return hasDigits && ch !== "_"; + } + if (ch === "o") { + index++; + for (; index < max; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (!isOctCode(data.charCodeAt(index))) + return false; + hasDigits = true; + } + return hasDigits && ch !== "_"; + } + } + if (ch === "_") + return false; + for (; index < max; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (!isDecCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + if (!hasDigits || ch === "_") + return false; + return true; +} +function constructYamlInteger(data) { + var value = data, sign = 1, ch; + if (value.indexOf("_") !== -1) { + value = value.replace(/_/g, ""); + } + ch = value[0]; + if (ch === "-" || ch === "+") { + if (ch === "-") + sign = -1; + value = value.slice(1); + ch = value[0]; + } + if (value === "0") + return 0; + if (ch === "0") { + if (value[1] === "b") + return sign * parseInt(value.slice(2), 2); + if (value[1] === "x") + return sign * parseInt(value.slice(2), 16); + if (value[1] === "o") + return sign * parseInt(value.slice(2), 8); + } + return sign * parseInt(value, 10); +} +function isInteger(object) { + return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common.isNegativeZero(object)); +} +var int = new type("tag:yaml.org,2002:int", { + kind: "scalar", + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function(obj) { + return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1); + }, + octal: function(obj) { + return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1); + }, + decimal: function(obj) { + return obj.toString(10); + }, + /* eslint-disable max-len */ + hexadecimal: function(obj) { + return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1); + } + }, + defaultStyle: "decimal", + styleAliases: { + binary: [2, "bin"], + octal: [8, "oct"], + decimal: [10, "dec"], + hexadecimal: [16, "hex"] + } +}); +var YAML_FLOAT_PATTERN = new RegExp( + // 2.5e4, 2.5 and integers + "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$" +); +function resolveYamlFloat(data) { + if (data === null) + return false; + if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + data[data.length - 1] === "_") { + return false; + } + return true; +} +function constructYamlFloat(data) { + var value, sign; + value = data.replace(/_/g, "").toLowerCase(); + sign = value[0] === "-" ? -1 : 1; + if ("+-".indexOf(value[0]) >= 0) { + value = value.slice(1); + } + if (value === ".inf") { + return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + } else if (value === ".nan") { + return NaN; + } + return sign * parseFloat(value, 10); +} +var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; +function representYamlFloat(object, style) { + var res; + if (isNaN(object)) { + switch (style) { + case "lowercase": + return ".nan"; + case "uppercase": + return ".NAN"; + case "camelcase": + return ".NaN"; + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case "lowercase": + return ".inf"; + case "uppercase": + return ".INF"; + case "camelcase": + return ".Inf"; + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case "lowercase": + return "-.inf"; + case "uppercase": + return "-.INF"; + case "camelcase": + return "-.Inf"; + } + } else if (common.isNegativeZero(object)) { + return "-0.0"; + } + res = object.toString(10); + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res; +} +function isFloat(object) { + return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common.isNegativeZero(object)); +} +var float = new type("tag:yaml.org,2002:float", { + kind: "scalar", + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: "lowercase" +}); +var json = failsafe.extend({ + implicit: [ + _null, + bool, + int, + float + ] +}); +var core = json; +var YAML_DATE_REGEXP = new RegExp( + "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$" +); +var YAML_TIMESTAMP_REGEXP = new RegExp( + "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$" +); +function resolveYamlTimestamp(data) { + if (data === null) + return false; + if (YAML_DATE_REGEXP.exec(data) !== null) + return true; + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) + return true; + return false; +} +function constructYamlTimestamp(data) { + var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date; + match = YAML_DATE_REGEXP.exec(data); + if (match === null) + match = YAML_TIMESTAMP_REGEXP.exec(data); + if (match === null) + throw new Error("Date resolve error"); + year = +match[1]; + month = +match[2] - 1; + day = +match[3]; + if (!match[4]) { + return new Date(Date.UTC(year, month, day)); + } + hour = +match[4]; + minute = +match[5]; + second = +match[6]; + if (match[7]) { + fraction = match[7].slice(0, 3); + while (fraction.length < 3) { + fraction += "0"; + } + fraction = +fraction; + } + if (match[9]) { + tz_hour = +match[10]; + tz_minute = +(match[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 6e4; + if (match[9] === "-") + delta = -delta; + } + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + if (delta) + date.setTime(date.getTime() - delta); + return date; +} +function representYamlTimestamp(object) { + return object.toISOString(); +} +var timestamp = new type("tag:yaml.org,2002:timestamp", { + kind: "scalar", + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp +}); +function resolveYamlMerge(data) { + return data === "<<" || data === null; +} +var merge = new type("tag:yaml.org,2002:merge", { + kind: "scalar", + resolve: resolveYamlMerge +}); +var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"; +function resolveYamlBinary(data) { + if (data === null) + return false; + var code, idx, bitlen = 0, max = data.length, map2 = BASE64_MAP; + for (idx = 0; idx < max; idx++) { + code = map2.indexOf(data.charAt(idx)); + if (code > 64) + continue; + if (code < 0) + return false; + bitlen += 6; + } + return bitlen % 8 === 0; +} +function constructYamlBinary(data) { + var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max = input.length, map2 = BASE64_MAP, bits = 0, result = []; + for (idx = 0; idx < max; idx++) { + if (idx % 4 === 0 && idx) { + result.push(bits >> 16 & 255); + result.push(bits >> 8 & 255); + result.push(bits & 255); + } + bits = bits << 6 | map2.indexOf(input.charAt(idx)); + } + tailbits = max % 4 * 6; + if (tailbits === 0) { + result.push(bits >> 16 & 255); + result.push(bits >> 8 & 255); + result.push(bits & 255); + } else if (tailbits === 18) { + result.push(bits >> 10 & 255); + result.push(bits >> 2 & 255); + } else if (tailbits === 12) { + result.push(bits >> 4 & 255); + } + return new Uint8Array(result); +} +function representYamlBinary(object) { + var result = "", bits = 0, idx, tail, max = object.length, map2 = BASE64_MAP; + for (idx = 0; idx < max; idx++) { + if (idx % 3 === 0 && idx) { + result += map2[bits >> 18 & 63]; + result += map2[bits >> 12 & 63]; + result += map2[bits >> 6 & 63]; + result += map2[bits & 63]; + } + bits = (bits << 8) + object[idx]; + } + tail = max % 3; + if (tail === 0) { + result += map2[bits >> 18 & 63]; + result += map2[bits >> 12 & 63]; + result += map2[bits >> 6 & 63]; + result += map2[bits & 63]; + } else if (tail === 2) { + result += map2[bits >> 10 & 63]; + result += map2[bits >> 4 & 63]; + result += map2[bits << 2 & 63]; + result += map2[64]; + } else if (tail === 1) { + result += map2[bits >> 2 & 63]; + result += map2[bits << 4 & 63]; + result += map2[64]; + result += map2[64]; + } + return result; +} +function isBinary(obj) { + return Object.prototype.toString.call(obj) === "[object Uint8Array]"; +} +var binary = new type("tag:yaml.org,2002:binary", { + kind: "scalar", + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary +}); +var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; +var _toString$2 = Object.prototype.toString; +function resolveYamlOmap(data) { + if (data === null) + return true; + var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data; + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + pairHasKey = false; + if (_toString$2.call(pair) !== "[object Object]") + return false; + for (pairKey in pair) { + if (_hasOwnProperty$3.call(pair, pairKey)) { + if (!pairHasKey) + pairHasKey = true; + else + return false; + } + } + if (!pairHasKey) + return false; + if (objectKeys.indexOf(pairKey) === -1) + objectKeys.push(pairKey); + else + return false; + } + return true; +} +function constructYamlOmap(data) { + return data !== null ? data : []; +} +var omap = new type("tag:yaml.org,2002:omap", { + kind: "sequence", + resolve: resolveYamlOmap, + construct: constructYamlOmap +}); +var _toString$1 = Object.prototype.toString; +function resolveYamlPairs(data) { + if (data === null) + return true; + var index, length, pair, keys, result, object = data; + result = new Array(object.length); + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + if (_toString$1.call(pair) !== "[object Object]") + return false; + keys = Object.keys(pair); + if (keys.length !== 1) + return false; + result[index] = [keys[0], pair[keys[0]]]; + } + return true; +} +function constructYamlPairs(data) { + if (data === null) + return []; + var index, length, pair, keys, result, object = data; + result = new Array(object.length); + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + keys = Object.keys(pair); + result[index] = [keys[0], pair[keys[0]]]; + } + return result; +} +var pairs = new type("tag:yaml.org,2002:pairs", { + kind: "sequence", + resolve: resolveYamlPairs, + construct: constructYamlPairs +}); +var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; +function resolveYamlSet(data) { + if (data === null) + return true; + var key, object = data; + for (key in object) { + if (_hasOwnProperty$2.call(object, key)) { + if (object[key] !== null) + return false; + } + } + return true; +} +function constructYamlSet(data) { + return data !== null ? data : {}; +} +var set = new type("tag:yaml.org,2002:set", { + kind: "mapping", + resolve: resolveYamlSet, + construct: constructYamlSet +}); +var _default = core.extend({ + implicit: [ + timestamp, + merge + ], + explicit: [ + binary, + omap, + pairs, + set + ] +}); +var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; +var CONTEXT_FLOW_IN = 1; +var CONTEXT_FLOW_OUT = 2; +var CONTEXT_BLOCK_IN = 3; +var CONTEXT_BLOCK_OUT = 4; +var CHOMPING_CLIP = 1; +var CHOMPING_STRIP = 2; +var CHOMPING_KEEP = 3; +var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; +var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; +var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; +function _class(obj) { + return Object.prototype.toString.call(obj); +} +function is_EOL(c) { + return c === 10 || c === 13; +} +function is_WHITE_SPACE(c) { + return c === 9 || c === 32; +} +function is_WS_OR_EOL(c) { + return c === 9 || c === 32 || c === 10 || c === 13; +} +function is_FLOW_INDICATOR(c) { + return c === 44 || c === 91 || c === 93 || c === 123 || c === 125; +} +function fromHexCode(c) { + var lc; + if (48 <= c && c <= 57) { + return c - 48; + } + lc = c | 32; + if (97 <= lc && lc <= 102) { + return lc - 97 + 10; + } + return -1; +} +function escapedHexLen(c) { + if (c === 120) { + return 2; + } + if (c === 117) { + return 4; + } + if (c === 85) { + return 8; + } + return 0; +} +function fromDecimalCode(c) { + if (48 <= c && c <= 57) { + return c - 48; + } + return -1; +} +function simpleEscapeSequence(c) { + return c === 48 ? "\0" : c === 97 ? "\x07" : c === 98 ? "\b" : c === 116 ? " " : c === 9 ? " " : c === 110 ? "\n" : c === 118 ? "\v" : c === 102 ? "\f" : c === 114 ? "\r" : c === 101 ? "\x1B" : c === 32 ? " " : c === 34 ? '"' : c === 47 ? "/" : c === 92 ? "\\" : c === 78 ? "…" : c === 95 ? " " : c === 76 ? "\u2028" : c === 80 ? "\u2029" : ""; +} +function charFromCodepoint(c) { + if (c <= 65535) { + return String.fromCharCode(c); + } + return String.fromCharCode( + (c - 65536 >> 10) + 55296, + (c - 65536 & 1023) + 56320 + ); +} +var simpleEscapeCheck = new Array(256); +var simpleEscapeMap = new Array(256); +for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); +} +function State$1(input, options) { + this.input = input; + this.filename = options["filename"] || null; + this.schema = options["schema"] || _default; + this.onWarning = options["onWarning"] || null; + this.legacy = options["legacy"] || false; + this.json = options["json"] || false; + this.listener = options["listener"] || null; + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; + this.firstTabInLine = -1; + this.documents = []; +} +function generateError(state2, message) { + var mark = { + name: state2.filename, + buffer: state2.input.slice(0, -1), + // omit trailing \0 + position: state2.position, + line: state2.line, + column: state2.position - state2.lineStart + }; + mark.snippet = snippet(mark); + return new exception(message, mark); +} +function throwError(state2, message) { + throw generateError(state2, message); +} +function throwWarning(state2, message) { + if (state2.onWarning) { + state2.onWarning.call(null, generateError(state2, message)); + } +} +var directiveHandlers = { + YAML: function handleYamlDirective(state2, name, args) { + var match, major, minor; + if (state2.version !== null) { + throwError(state2, "duplication of %YAML directive"); + } + if (args.length !== 1) { + throwError(state2, "YAML directive accepts exactly one argument"); + } + match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + if (match === null) { + throwError(state2, "ill-formed argument of the YAML directive"); + } + major = parseInt(match[1], 10); + minor = parseInt(match[2], 10); + if (major !== 1) { + throwError(state2, "unacceptable YAML version of the document"); + } + state2.version = args[0]; + state2.checkLineBreaks = minor < 2; + if (minor !== 1 && minor !== 2) { + throwWarning(state2, "unsupported YAML version of the document"); + } + }, + TAG: function handleTagDirective(state2, name, args) { + var handle, prefix; + if (args.length !== 2) { + throwError(state2, "TAG directive accepts exactly two arguments"); + } + handle = args[0]; + prefix = args[1]; + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state2, "ill-formed tag handle (first argument) of the TAG directive"); + } + if (_hasOwnProperty$1.call(state2.tagMap, handle)) { + throwError(state2, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state2, "ill-formed tag prefix (second argument) of the TAG directive"); + } + try { + prefix = decodeURIComponent(prefix); + } catch (err) { + throwError(state2, "tag prefix is malformed: " + prefix); + } + state2.tagMap[handle] = prefix; + } +}; +function captureSegment(state2, start, end, checkJson) { + var _position, _length, _character, _result; + if (start < end) { + _result = state2.input.slice(start, end); + if (checkJson) { + for (_position = 0, _length = _result.length; _position < _length; _position += 1) { + _character = _result.charCodeAt(_position); + if (!(_character === 9 || 32 <= _character && _character <= 1114111)) { + throwError(state2, "expected valid JSON character"); + } + } + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError(state2, "the stream contains non-printable characters"); + } + state2.result += _result; + } +} +function mergeMappings(state2, destination, source, overridableKeys) { + var sourceKeys, key, index, quantity; + if (!common.isObject(source)) { + throwError(state2, "cannot merge mappings; the provided source object is unacceptable"); + } + sourceKeys = Object.keys(source); + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; + if (!_hasOwnProperty$1.call(destination, key)) { + destination[key] = source[key]; + overridableKeys[key] = true; + } + } +} +function storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) { + var index, quantity; + if (Array.isArray(keyNode)) { + keyNode = Array.prototype.slice.call(keyNode); + for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { + if (Array.isArray(keyNode[index])) { + throwError(state2, "nested arrays are not supported inside keys"); + } + if (typeof keyNode === "object" && _class(keyNode[index]) === "[object Object]") { + keyNode[index] = "[object Object]"; + } + } + } + if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") { + keyNode = "[object Object]"; + } + keyNode = String(keyNode); + if (_result === null) { + _result = {}; + } + if (keyTag === "tag:yaml.org,2002:merge") { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state2, _result, valueNode[index], overridableKeys); + } + } else { + mergeMappings(state2, _result, valueNode, overridableKeys); + } + } else { + if (!state2.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) { + state2.line = startLine || state2.line; + state2.lineStart = startLineStart || state2.lineStart; + state2.position = startPos || state2.position; + throwError(state2, "duplicated mapping key"); + } + if (keyNode === "__proto__") { + Object.defineProperty(_result, keyNode, { + configurable: true, + enumerable: true, + writable: true, + value: valueNode + }); + } else { + _result[keyNode] = valueNode; + } + delete overridableKeys[keyNode]; + } + return _result; +} +function readLineBreak(state2) { + var ch; + ch = state2.input.charCodeAt(state2.position); + if (ch === 10) { + state2.position++; + } else if (ch === 13) { + state2.position++; + if (state2.input.charCodeAt(state2.position) === 10) { + state2.position++; + } + } else { + throwError(state2, "a line break is expected"); + } + state2.line += 1; + state2.lineStart = state2.position; + state2.firstTabInLine = -1; +} +function skipSeparationSpace(state2, allowComments, checkIndent) { + var lineBreaks = 0, ch = state2.input.charCodeAt(state2.position); + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + if (ch === 9 && state2.firstTabInLine === -1) { + state2.firstTabInLine = state2.position; + } + ch = state2.input.charCodeAt(++state2.position); + } + if (allowComments && ch === 35) { + do { + ch = state2.input.charCodeAt(++state2.position); + } while (ch !== 10 && ch !== 13 && ch !== 0); + } + if (is_EOL(ch)) { + readLineBreak(state2); + ch = state2.input.charCodeAt(state2.position); + lineBreaks++; + state2.lineIndent = 0; + while (ch === 32) { + state2.lineIndent++; + ch = state2.input.charCodeAt(++state2.position); + } + } else { + break; + } + } + if (checkIndent !== -1 && lineBreaks !== 0 && state2.lineIndent < checkIndent) { + throwWarning(state2, "deficient indentation"); + } + return lineBreaks; +} +function testDocumentSeparator(state2) { + var _position = state2.position, ch; + ch = state2.input.charCodeAt(_position); + if ((ch === 45 || ch === 46) && ch === state2.input.charCodeAt(_position + 1) && ch === state2.input.charCodeAt(_position + 2)) { + _position += 3; + ch = state2.input.charCodeAt(_position); + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } + return false; +} +function writeFoldedLines(state2, count) { + if (count === 1) { + state2.result += " "; + } else if (count > 1) { + state2.result += common.repeat("\n", count - 1); + } +} +function readPlainScalar(state2, nodeIndent, withinFlowCollection) { + var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state2.kind, _result = state2.result, ch; + ch = state2.input.charCodeAt(state2.position); + if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) { + return false; + } + if (ch === 63 || ch === 45) { + following = state2.input.charCodeAt(state2.position + 1); + if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { + return false; + } + } + state2.kind = "scalar"; + state2.result = ""; + captureStart = captureEnd = state2.position; + hasPendingContent = false; + while (ch !== 0) { + if (ch === 58) { + following = state2.input.charCodeAt(state2.position + 1); + if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } + } else if (ch === 35) { + preceding = state2.input.charCodeAt(state2.position - 1); + if (is_WS_OR_EOL(preceding)) { + break; + } + } else if (state2.position === state2.lineStart && testDocumentSeparator(state2) || withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; + } else if (is_EOL(ch)) { + _line = state2.line; + _lineStart = state2.lineStart; + _lineIndent = state2.lineIndent; + skipSeparationSpace(state2, false, -1); + if (state2.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state2.input.charCodeAt(state2.position); + continue; + } else { + state2.position = captureEnd; + state2.line = _line; + state2.lineStart = _lineStart; + state2.lineIndent = _lineIndent; + break; + } + } + if (hasPendingContent) { + captureSegment(state2, captureStart, captureEnd, false); + writeFoldedLines(state2, state2.line - _line); + captureStart = captureEnd = state2.position; + hasPendingContent = false; + } + if (!is_WHITE_SPACE(ch)) { + captureEnd = state2.position + 1; + } + ch = state2.input.charCodeAt(++state2.position); + } + captureSegment(state2, captureStart, captureEnd, false); + if (state2.result) { + return true; + } + state2.kind = _kind; + state2.result = _result; + return false; +} +function readSingleQuotedScalar(state2, nodeIndent) { + var ch, captureStart, captureEnd; + ch = state2.input.charCodeAt(state2.position); + if (ch !== 39) { + return false; + } + state2.kind = "scalar"; + state2.result = ""; + state2.position++; + captureStart = captureEnd = state2.position; + while ((ch = state2.input.charCodeAt(state2.position)) !== 0) { + if (ch === 39) { + captureSegment(state2, captureStart, state2.position, true); + ch = state2.input.charCodeAt(++state2.position); + if (ch === 39) { + captureStart = state2.position; + state2.position++; + captureEnd = state2.position; + } else { + return true; + } + } else if (is_EOL(ch)) { + captureSegment(state2, captureStart, captureEnd, true); + writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent)); + captureStart = captureEnd = state2.position; + } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) { + throwError(state2, "unexpected end of the document within a single quoted scalar"); + } else { + state2.position++; + captureEnd = state2.position; + } + } + throwError(state2, "unexpected end of the stream within a single quoted scalar"); +} +function readDoubleQuotedScalar(state2, nodeIndent) { + var captureStart, captureEnd, hexLength, hexResult, tmp, ch; + ch = state2.input.charCodeAt(state2.position); + if (ch !== 34) { + return false; + } + state2.kind = "scalar"; + state2.result = ""; + state2.position++; + captureStart = captureEnd = state2.position; + while ((ch = state2.input.charCodeAt(state2.position)) !== 0) { + if (ch === 34) { + captureSegment(state2, captureStart, state2.position, true); + state2.position++; + return true; + } else if (ch === 92) { + captureSegment(state2, captureStart, state2.position, true); + ch = state2.input.charCodeAt(++state2.position); + if (is_EOL(ch)) { + skipSeparationSpace(state2, false, nodeIndent); + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state2.result += simpleEscapeMap[ch]; + state2.position++; + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; + for (; hexLength > 0; hexLength--) { + ch = state2.input.charCodeAt(++state2.position); + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; + } else { + throwError(state2, "expected hexadecimal character"); + } + } + state2.result += charFromCodepoint(hexResult); + state2.position++; + } else { + throwError(state2, "unknown escape sequence"); + } + captureStart = captureEnd = state2.position; + } else if (is_EOL(ch)) { + captureSegment(state2, captureStart, captureEnd, true); + writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent)); + captureStart = captureEnd = state2.position; + } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) { + throwError(state2, "unexpected end of the document within a double quoted scalar"); + } else { + state2.position++; + captureEnd = state2.position; + } + } + throwError(state2, "unexpected end of the stream within a double quoted scalar"); +} +function readFlowCollection(state2, nodeIndent) { + var readNext = true, _line, _lineStart, _pos, _tag = state2.tag, _result, _anchor = state2.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch; + ch = state2.input.charCodeAt(state2.position); + if (ch === 91) { + terminator = 93; + isMapping = false; + _result = []; + } else if (ch === 123) { + terminator = 125; + isMapping = true; + _result = {}; + } else { + return false; + } + if (state2.anchor !== null) { + state2.anchorMap[state2.anchor] = _result; + } + ch = state2.input.charCodeAt(++state2.position); + while (ch !== 0) { + skipSeparationSpace(state2, true, nodeIndent); + ch = state2.input.charCodeAt(state2.position); + if (ch === terminator) { + state2.position++; + state2.tag = _tag; + state2.anchor = _anchor; + state2.kind = isMapping ? "mapping" : "sequence"; + state2.result = _result; + return true; + } else if (!readNext) { + throwError(state2, "missed comma between flow collection entries"); + } else if (ch === 44) { + throwError(state2, "expected the node content, but found ','"); + } + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; + if (ch === 63) { + following = state2.input.charCodeAt(state2.position + 1); + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state2.position++; + skipSeparationSpace(state2, true, nodeIndent); + } + } + _line = state2.line; + _lineStart = state2.lineStart; + _pos = state2.position; + composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state2.tag; + keyNode = state2.result; + skipSeparationSpace(state2, true, nodeIndent); + ch = state2.input.charCodeAt(state2.position); + if ((isExplicitPair || state2.line === _line) && ch === 58) { + isPair = true; + ch = state2.input.charCodeAt(++state2.position); + skipSeparationSpace(state2, true, nodeIndent); + composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state2.result; + } + if (isMapping) { + storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); + } else if (isPair) { + _result.push(storeMappingPair(state2, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); + } else { + _result.push(keyNode); + } + skipSeparationSpace(state2, true, nodeIndent); + ch = state2.input.charCodeAt(state2.position); + if (ch === 44) { + readNext = true; + ch = state2.input.charCodeAt(++state2.position); + } else { + readNext = false; + } + } + throwError(state2, "unexpected end of the stream within a flow collection"); +} +function readBlockScalar(state2, nodeIndent) { + var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch; + ch = state2.input.charCodeAt(state2.position); + if (ch === 124) { + folding = false; + } else if (ch === 62) { + folding = true; + } else { + return false; + } + state2.kind = "scalar"; + state2.result = ""; + while (ch !== 0) { + ch = state2.input.charCodeAt(++state2.position); + if (ch === 43 || ch === 45) { + if (CHOMPING_CLIP === chomping) { + chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP; + } else { + throwError(state2, "repeat of a chomping mode identifier"); + } + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError(state2, "bad explicit indentation width of a block scalar; it cannot be less than one"); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError(state2, "repeat of an indentation width identifier"); + } + } else { + break; + } + } + if (is_WHITE_SPACE(ch)) { + do { + ch = state2.input.charCodeAt(++state2.position); + } while (is_WHITE_SPACE(ch)); + if (ch === 35) { + do { + ch = state2.input.charCodeAt(++state2.position); + } while (!is_EOL(ch) && ch !== 0); + } + } + while (ch !== 0) { + readLineBreak(state2); + state2.lineIndent = 0; + ch = state2.input.charCodeAt(state2.position); + while ((!detectedIndent || state2.lineIndent < textIndent) && ch === 32) { + state2.lineIndent++; + ch = state2.input.charCodeAt(++state2.position); + } + if (!detectedIndent && state2.lineIndent > textIndent) { + textIndent = state2.lineIndent; + } + if (is_EOL(ch)) { + emptyLines++; + continue; + } + if (state2.lineIndent < textIndent) { + if (chomping === CHOMPING_KEEP) { + state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (didReadContent) { + state2.result += "\n"; + } + } + break; + } + if (folding) { + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); + } else if (atMoreIndented) { + atMoreIndented = false; + state2.result += common.repeat("\n", emptyLines + 1); + } else if (emptyLines === 0) { + if (didReadContent) { + state2.result += " "; + } + } else { + state2.result += common.repeat("\n", emptyLines); + } + } else { + state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); + } + didReadContent = true; + detectedIndent = true; + emptyLines = 0; + captureStart = state2.position; + while (!is_EOL(ch) && ch !== 0) { + ch = state2.input.charCodeAt(++state2.position); + } + captureSegment(state2, captureStart, state2.position, false); + } + return true; +} +function readBlockSequence(state2, nodeIndent) { + var _line, _tag = state2.tag, _anchor = state2.anchor, _result = [], following, detected = false, ch; + if (state2.firstTabInLine !== -1) + return false; + if (state2.anchor !== null) { + state2.anchorMap[state2.anchor] = _result; + } + ch = state2.input.charCodeAt(state2.position); + while (ch !== 0) { + if (state2.firstTabInLine !== -1) { + state2.position = state2.firstTabInLine; + throwError(state2, "tab characters must not be used in indentation"); + } + if (ch !== 45) { + break; + } + following = state2.input.charCodeAt(state2.position + 1); + if (!is_WS_OR_EOL(following)) { + break; + } + detected = true; + state2.position++; + if (skipSeparationSpace(state2, true, -1)) { + if (state2.lineIndent <= nodeIndent) { + _result.push(null); + ch = state2.input.charCodeAt(state2.position); + continue; + } + } + _line = state2.line; + composeNode(state2, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state2.result); + skipSeparationSpace(state2, true, -1); + ch = state2.input.charCodeAt(state2.position); + if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) { + throwError(state2, "bad indentation of a sequence entry"); + } else if (state2.lineIndent < nodeIndent) { + break; + } + } + if (detected) { + state2.tag = _tag; + state2.anchor = _anchor; + state2.kind = "sequence"; + state2.result = _result; + return true; + } + return false; +} +function readBlockMapping(state2, nodeIndent, flowIndent) { + var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state2.tag, _anchor = state2.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch; + if (state2.firstTabInLine !== -1) + return false; + if (state2.anchor !== null) { + state2.anchorMap[state2.anchor] = _result; + } + ch = state2.input.charCodeAt(state2.position); + while (ch !== 0) { + if (!atExplicitKey && state2.firstTabInLine !== -1) { + state2.position = state2.firstTabInLine; + throwError(state2, "tab characters must not be used in indentation"); + } + following = state2.input.charCodeAt(state2.position + 1); + _line = state2.line; + if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) { + if (ch === 63) { + if (atExplicitKey) { + storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + detected = true; + atExplicitKey = true; + allowCompact = true; + } else if (atExplicitKey) { + atExplicitKey = false; + allowCompact = true; + } else { + throwError(state2, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"); + } + state2.position += 1; + ch = following; + } else { + _keyLine = state2.line; + _keyLineStart = state2.lineStart; + _keyPos = state2.position; + if (!composeNode(state2, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + break; + } + if (state2.line === _line) { + ch = state2.input.charCodeAt(state2.position); + while (is_WHITE_SPACE(ch)) { + ch = state2.input.charCodeAt(++state2.position); + } + if (ch === 58) { + ch = state2.input.charCodeAt(++state2.position); + if (!is_WS_OR_EOL(ch)) { + throwError(state2, "a whitespace character is expected after the key-value separator within a block mapping"); + } + if (atExplicitKey) { + storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state2.tag; + keyNode = state2.result; + } else if (detected) { + throwError(state2, "can not read an implicit mapping pair; a colon is missed"); + } else { + state2.tag = _tag; + state2.anchor = _anchor; + return true; + } + } else if (detected) { + throwError(state2, "can not read a block mapping entry; a multiline key may not be an implicit key"); + } else { + state2.tag = _tag; + state2.anchor = _anchor; + return true; + } + } + if (state2.line === _line || state2.lineIndent > nodeIndent) { + if (atExplicitKey) { + _keyLine = state2.line; + _keyLineStart = state2.lineStart; + _keyPos = state2.position; + } + if (composeNode(state2, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state2.result; + } else { + valueNode = state2.result; + } + } + if (!atExplicitKey) { + storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + skipSeparationSpace(state2, true, -1); + ch = state2.input.charCodeAt(state2.position); + } + if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) { + throwError(state2, "bad indentation of a mapping entry"); + } else if (state2.lineIndent < nodeIndent) { + break; + } + } + if (atExplicitKey) { + storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + } + if (detected) { + state2.tag = _tag; + state2.anchor = _anchor; + state2.kind = "mapping"; + state2.result = _result; + } + return detected; +} +function readTagProperty(state2) { + var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch; + ch = state2.input.charCodeAt(state2.position); + if (ch !== 33) + return false; + if (state2.tag !== null) { + throwError(state2, "duplication of a tag property"); + } + ch = state2.input.charCodeAt(++state2.position); + if (ch === 60) { + isVerbatim = true; + ch = state2.input.charCodeAt(++state2.position); + } else if (ch === 33) { + isNamed = true; + tagHandle = "!!"; + ch = state2.input.charCodeAt(++state2.position); + } else { + tagHandle = "!"; + } + _position = state2.position; + if (isVerbatim) { + do { + ch = state2.input.charCodeAt(++state2.position); + } while (ch !== 0 && ch !== 62); + if (state2.position < state2.length) { + tagName = state2.input.slice(_position, state2.position); + ch = state2.input.charCodeAt(++state2.position); + } else { + throwError(state2, "unexpected end of the stream within a verbatim tag"); + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + if (ch === 33) { + if (!isNamed) { + tagHandle = state2.input.slice(_position - 1, state2.position + 1); + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state2, "named tag handle cannot contain such characters"); + } + isNamed = true; + _position = state2.position + 1; + } else { + throwError(state2, "tag suffix cannot contain exclamation marks"); + } + } + ch = state2.input.charCodeAt(++state2.position); + } + tagName = state2.input.slice(_position, state2.position); + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state2, "tag suffix cannot contain flow indicator characters"); + } + } + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state2, "tag name cannot contain such characters: " + tagName); + } + try { + tagName = decodeURIComponent(tagName); + } catch (err) { + throwError(state2, "tag name is malformed: " + tagName); + } + if (isVerbatim) { + state2.tag = tagName; + } else if (_hasOwnProperty$1.call(state2.tagMap, tagHandle)) { + state2.tag = state2.tagMap[tagHandle] + tagName; + } else if (tagHandle === "!") { + state2.tag = "!" + tagName; + } else if (tagHandle === "!!") { + state2.tag = "tag:yaml.org,2002:" + tagName; + } else { + throwError(state2, 'undeclared tag handle "' + tagHandle + '"'); + } + return true; +} +function readAnchorProperty(state2) { + var _position, ch; + ch = state2.input.charCodeAt(state2.position); + if (ch !== 38) + return false; + if (state2.anchor !== null) { + throwError(state2, "duplication of an anchor property"); + } + ch = state2.input.charCodeAt(++state2.position); + _position = state2.position; + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state2.input.charCodeAt(++state2.position); + } + if (state2.position === _position) { + throwError(state2, "name of an anchor node must contain at least one character"); + } + state2.anchor = state2.input.slice(_position, state2.position); + return true; +} +function readAlias(state2) { + var _position, alias, ch; + ch = state2.input.charCodeAt(state2.position); + if (ch !== 42) + return false; + ch = state2.input.charCodeAt(++state2.position); + _position = state2.position; + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state2.input.charCodeAt(++state2.position); + } + if (state2.position === _position) { + throwError(state2, "name of an alias node must contain at least one character"); + } + alias = state2.input.slice(_position, state2.position); + if (!_hasOwnProperty$1.call(state2.anchorMap, alias)) { + throwError(state2, 'unidentified alias "' + alias + '"'); + } + state2.result = state2.anchorMap[alias]; + skipSeparationSpace(state2, true, -1); + return true; +} +function composeNode(state2, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent; + if (state2.listener !== null) { + state2.listener("open", state2); + } + state2.tag = null; + state2.anchor = null; + state2.kind = null; + state2.result = null; + allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext; + if (allowToSeek) { + if (skipSeparationSpace(state2, true, -1)) { + atNewLine = true; + if (state2.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state2.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state2.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } + if (indentStatus === 1) { + while (readTagProperty(state2) || readAnchorProperty(state2)) { + if (skipSeparationSpace(state2, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + if (state2.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state2.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state2.lineIndent < parentIndent) { + indentStatus = -1; + } + } else { + allowBlockCollections = false; + } + } + } + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + blockIndent = state2.position - state2.lineStart; + if (indentStatus === 1) { + if (allowBlockCollections && (readBlockSequence(state2, blockIndent) || readBlockMapping(state2, blockIndent, flowIndent)) || readFlowCollection(state2, flowIndent)) { + hasContent = true; + } else { + if (allowBlockScalars && readBlockScalar(state2, flowIndent) || readSingleQuotedScalar(state2, flowIndent) || readDoubleQuotedScalar(state2, flowIndent)) { + hasContent = true; + } else if (readAlias(state2)) { + hasContent = true; + if (state2.tag !== null || state2.anchor !== null) { + throwError(state2, "alias node should not have any properties"); + } + } else if (readPlainScalar(state2, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + if (state2.tag === null) { + state2.tag = "?"; + } + } + if (state2.anchor !== null) { + state2.anchorMap[state2.anchor] = state2.result; + } + } + } else if (indentStatus === 0) { + hasContent = allowBlockCollections && readBlockSequence(state2, blockIndent); + } + } + if (state2.tag === null) { + if (state2.anchor !== null) { + state2.anchorMap[state2.anchor] = state2.result; + } + } else if (state2.tag === "?") { + if (state2.result !== null && state2.kind !== "scalar") { + throwError(state2, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state2.kind + '"'); + } + for (typeIndex = 0, typeQuantity = state2.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { + type2 = state2.implicitTypes[typeIndex]; + if (type2.resolve(state2.result)) { + state2.result = type2.construct(state2.result); + state2.tag = type2.tag; + if (state2.anchor !== null) { + state2.anchorMap[state2.anchor] = state2.result; + } + break; + } + } + } else if (state2.tag !== "!") { + if (_hasOwnProperty$1.call(state2.typeMap[state2.kind || "fallback"], state2.tag)) { + type2 = state2.typeMap[state2.kind || "fallback"][state2.tag]; + } else { + type2 = null; + typeList = state2.typeMap.multi[state2.kind || "fallback"]; + for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { + if (state2.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { + type2 = typeList[typeIndex]; + break; + } + } + } + if (!type2) { + throwError(state2, "unknown tag !<" + state2.tag + ">"); + } + if (state2.result !== null && type2.kind !== state2.kind) { + throwError(state2, "unacceptable node kind for !<" + state2.tag + '> tag; it should be "' + type2.kind + '", not "' + state2.kind + '"'); + } + if (!type2.resolve(state2.result, state2.tag)) { + throwError(state2, "cannot resolve a node with !<" + state2.tag + "> explicit tag"); + } else { + state2.result = type2.construct(state2.result, state2.tag); + if (state2.anchor !== null) { + state2.anchorMap[state2.anchor] = state2.result; + } + } + } + if (state2.listener !== null) { + state2.listener("close", state2); + } + return state2.tag !== null || state2.anchor !== null || hasContent; +} +function readDocument(state2) { + var documentStart = state2.position, _position, directiveName, directiveArgs, hasDirectives = false, ch; + state2.version = null; + state2.checkLineBreaks = state2.legacy; + state2.tagMap = /* @__PURE__ */ Object.create(null); + state2.anchorMap = /* @__PURE__ */ Object.create(null); + while ((ch = state2.input.charCodeAt(state2.position)) !== 0) { + skipSeparationSpace(state2, true, -1); + ch = state2.input.charCodeAt(state2.position); + if (state2.lineIndent > 0 || ch !== 37) { + break; + } + hasDirectives = true; + ch = state2.input.charCodeAt(++state2.position); + _position = state2.position; + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state2.input.charCodeAt(++state2.position); + } + directiveName = state2.input.slice(_position, state2.position); + directiveArgs = []; + if (directiveName.length < 1) { + throwError(state2, "directive name must not be less than one character in length"); + } + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state2.input.charCodeAt(++state2.position); + } + if (ch === 35) { + do { + ch = state2.input.charCodeAt(++state2.position); + } while (ch !== 0 && !is_EOL(ch)); + break; + } + if (is_EOL(ch)) + break; + _position = state2.position; + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state2.input.charCodeAt(++state2.position); + } + directiveArgs.push(state2.input.slice(_position, state2.position)); + } + if (ch !== 0) + readLineBreak(state2); + if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state2, directiveName, directiveArgs); + } else { + throwWarning(state2, 'unknown document directive "' + directiveName + '"'); + } + } + skipSeparationSpace(state2, true, -1); + if (state2.lineIndent === 0 && state2.input.charCodeAt(state2.position) === 45 && state2.input.charCodeAt(state2.position + 1) === 45 && state2.input.charCodeAt(state2.position + 2) === 45) { + state2.position += 3; + skipSeparationSpace(state2, true, -1); + } else if (hasDirectives) { + throwError(state2, "directives end mark is expected"); + } + composeNode(state2, state2.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state2, true, -1); + if (state2.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state2.input.slice(documentStart, state2.position))) { + throwWarning(state2, "non-ASCII line breaks are interpreted as content"); + } + state2.documents.push(state2.result); + if (state2.position === state2.lineStart && testDocumentSeparator(state2)) { + if (state2.input.charCodeAt(state2.position) === 46) { + state2.position += 3; + skipSeparationSpace(state2, true, -1); + } + return; + } + if (state2.position < state2.length - 1) { + throwError(state2, "end of the stream or a document separator is expected"); + } else { + return; + } +} +function loadDocuments(input, options) { + input = String(input); + options = options || {}; + if (input.length !== 0) { + if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) { + input += "\n"; + } + if (input.charCodeAt(0) === 65279) { + input = input.slice(1); + } + } + var state2 = new State$1(input, options); + var nullpos = input.indexOf("\0"); + if (nullpos !== -1) { + state2.position = nullpos; + throwError(state2, "null byte is not allowed in input"); + } + state2.input += "\0"; + while (state2.input.charCodeAt(state2.position) === 32) { + state2.lineIndent += 1; + state2.position += 1; + } + while (state2.position < state2.length - 1) { + readDocument(state2); + } + return state2.documents; +} +function loadAll$1(input, iterator, options) { + if (iterator !== null && typeof iterator === "object" && typeof options === "undefined") { + options = iterator; + iterator = null; + } + var documents = loadDocuments(input, options); + if (typeof iterator !== "function") { + return documents; + } + for (var index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } +} +function load$1(input, options) { + var documents = loadDocuments(input, options); + if (documents.length === 0) { + return void 0; + } else if (documents.length === 1) { + return documents[0]; + } + throw new exception("expected a single document in the stream, but found more"); +} +var loadAll_1 = loadAll$1; +var load_1 = load$1; +var loader = { + loadAll: loadAll_1, + load: load_1 +}; +var JSON_SCHEMA = json; +var load = loader.load; +function extractFrontMatter(text) { + const matches = text.match(frontMatterRegex); + if (!matches) { + return { + text, + metadata: {} + }; + } + let parsed = load(matches[1], { + // To support config, we need JSON schema. + // https://www.yaml.org/spec/1.2/spec.html#id2803231 + schema: JSON_SCHEMA + }) ?? {}; + parsed = typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {}; + const metadata = {}; + if (parsed.displayMode) { + metadata.displayMode = parsed.displayMode.toString(); + } + if (parsed.title) { + metadata.title = parsed.title.toString(); + } + if (parsed.config) { + metadata.config = parsed.config; + } + return { + text: text.slice(matches[0].length), + metadata + }; +} +const cleanupText = (code) => { + return code.replace(/\r\n?/g, "\n").replace( + /<(\w+)([^>]*)>/g, + (match, tag, attributes) => "<" + tag + attributes.replace(/="([^"]*)"/g, "='$1'") + ">" + ); +}; +const processFrontmatter = (code) => { + const { text, metadata } = extractFrontMatter(code); + const { displayMode, title, config: config2 = {} } = metadata; + if (displayMode) { + if (!config2.gantt) { + config2.gantt = {}; + } + config2.gantt.displayMode = displayMode; + } + return { title, config: config2, text }; +}; +const processDirectives = (code) => { + const initDirective = utils.detectInit(code) ?? {}; + const wrapDirectives = utils.detectDirective(code, "wrap"); + if (Array.isArray(wrapDirectives)) { + initDirective.wrap = wrapDirectives.some(({ type: type2 }) => { + }); + } else if ((wrapDirectives == null ? void 0 : wrapDirectives.type) === "wrap") { + initDirective.wrap = true; + } + return { + text: removeDirectives(code), + directive: initDirective + }; +}; +function preprocessDiagram(code) { + const cleanedCode = cleanupText(code); + const frontMatterResult = processFrontmatter(cleanedCode); + const directiveResult = processDirectives(frontMatterResult.text); + const config2 = cleanAndMerge(frontMatterResult.config, directiveResult.directive); + code = cleanupComments(directiveResult.text); + return { + code, + title: frontMatterResult.title, + config: config2 + }; +} +const MAX_TEXTLENGTH = 5e4; +const MAX_TEXTLENGTH_EXCEEDED_MSG = "graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa"; +const SECURITY_LVL_SANDBOX = "sandbox"; +const SECURITY_LVL_LOOSE = "loose"; +const XMLNS_SVG_STD = "http://www.w3.org/2000/svg"; +const XMLNS_XLINK_STD = "http://www.w3.org/1999/xlink"; +const XMLNS_XHTML_STD = "http://www.w3.org/1999/xhtml"; +const IFRAME_WIDTH = "100%"; +const IFRAME_HEIGHT = "100%"; +const IFRAME_STYLES = "border:0;margin:0;"; +const IFRAME_BODY_STYLE = "margin:0"; +const IFRAME_SANDBOX_OPTS = "allow-top-navigation-by-user-activation allow-popups"; +const IFRAME_NOT_SUPPORTED_MSG = 'The "iframe" tag is not supported by your browser.'; +const DOMPURIFY_TAGS = ["foreignobject"]; +const DOMPURIFY_ATTR = ["dominant-baseline"]; +function processAndSetConfigs(text) { + const processed = preprocessDiagram(text); + reset(); + addDirective(processed.config ?? {}); + return processed; +} +async function parse$1(text, parseOptions) { + addDiagrams(); + text = processAndSetConfigs(text).code; + try { + await getDiagramFromText(text); + } catch (error) { + if (parseOptions == null ? void 0 : parseOptions.suppressErrors) { + return false; + } + throw error; + } + return true; +} +const cssImportantStyles = (cssClass, element, cssClasses = []) => { + return ` +.${cssClass} ${element} { ${cssClasses.join(" !important; ")} !important; }`; +}; +const createCssStyles = (config2, classDefs = {}) => { + var _a; + let cssStyles = ""; + if (config2.themeCSS !== void 0) { + cssStyles += ` +${config2.themeCSS}`; + } + if (config2.fontFamily !== void 0) { + cssStyles += ` +:root { --mermaid-font-family: ${config2.fontFamily}}`; + } + if (config2.altFontFamily !== void 0) { + cssStyles += ` +:root { --mermaid-alt-font-family: ${config2.altFontFamily}}`; + } + if (!isEmpty(classDefs)) { + const htmlLabels = config2.htmlLabels || ((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels); + const cssHtmlElements = ["> *", "span"]; + const cssShapeElements = ["rect", "polygon", "ellipse", "circle", "path"]; + const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements; + for (const classId in classDefs) { + const styleClassDef = classDefs[classId]; + if (!isEmpty(styleClassDef.styles)) { + cssElements.forEach((cssElement) => { + cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles); + }); + } + if (!isEmpty(styleClassDef.textStyles)) { + cssStyles += cssImportantStyles(styleClassDef.id, "tspan", styleClassDef.textStyles); + } + } + } + return cssStyles; +}; +const createUserStyles = (config2, graphType, classDefs, svgId) => { + const userCSSstyles = createCssStyles(config2, classDefs); + const allStyles = getStyles$1(graphType, userCSSstyles, config2.themeVariables); + return serialize(compile(`${svgId}{${allStyles}}`), stringify); +}; +const cleanUpSvgCode = (svgCode = "", inSandboxMode, useArrowMarkerUrls) => { + let cleanedUpSvg = svgCode; + if (!useArrowMarkerUrls && !inSandboxMode) { + cleanedUpSvg = cleanedUpSvg.replace( + /marker-end="url\([\d+./:=?A-Za-z-]*?#/g, + 'marker-end="url(#' + ); + } + cleanedUpSvg = decodeEntities(cleanedUpSvg); + cleanedUpSvg = cleanedUpSvg.replace(/
/g, "
"); + return cleanedUpSvg; +}; +const putIntoIFrame = (svgCode = "", svgElement) => { + var _a, _b; + const height = ((_b = (_a = svgElement == null ? void 0 : svgElement.viewBox) == null ? void 0 : _a.baseVal) == null ? void 0 : _b.height) ? svgElement.viewBox.baseVal.height + "px" : IFRAME_HEIGHT; + const base64encodedSrc = btoa('' + svgCode + ""); + return ``; +}; +const appendDivSvgG = (parentRoot, id2, enclosingDivId, divStyle, svgXlink) => { + const enclosingDiv = parentRoot.append("div"); + enclosingDiv.attr("id", enclosingDivId); + if (divStyle) { + enclosingDiv.attr("style", divStyle); + } + const svgNode = enclosingDiv.append("svg").attr("id", id2).attr("width", "100%").attr("xmlns", XMLNS_SVG_STD); + if (svgXlink) { + svgNode.attr("xmlns:xlink", svgXlink); + } + svgNode.append("g"); + return parentRoot; +}; +function sandboxedIframe(parentNode, iFrameId) { + return parentNode.append("iframe").attr("id", iFrameId).attr("style", "width: 100%; height: 100%;").attr("sandbox", ""); +} +const removeExistingElements = (doc, id2, divId, iFrameId) => { + var _a, _b, _c; + (_a = doc.getElementById(id2)) == null ? void 0 : _a.remove(); + (_b = doc.getElementById(divId)) == null ? void 0 : _b.remove(); + (_c = doc.getElementById(iFrameId)) == null ? void 0 : _c.remove(); +}; +const render$1 = async function(id2, text, svgContainingElement) { + var _a, _b, _c, _d, _e, _f; + addDiagrams(); + const processed = processAndSetConfigs(text); + text = processed.code; + const config2 = getConfig$1(); + log$1.debug(config2); + if (text.length > ((config2 == null ? void 0 : config2.maxTextSize) ?? MAX_TEXTLENGTH)) { + text = MAX_TEXTLENGTH_EXCEEDED_MSG; + } + const idSelector = "#" + id2; + const iFrameID = "i" + id2; + const iFrameID_selector = "#" + iFrameID; + const enclosingDivID = "d" + id2; + const enclosingDivID_selector = "#" + enclosingDivID; + let root = select("body"); + const isSandboxed = config2.securityLevel === SECURITY_LVL_SANDBOX; + const isLooseSecurityLevel = config2.securityLevel === SECURITY_LVL_LOOSE; + const fontFamily = config2.fontFamily; + if (svgContainingElement !== void 0) { + if (svgContainingElement) { + svgContainingElement.innerHTML = ""; + } + if (isSandboxed) { + const iframe = sandboxedIframe(select(svgContainingElement), iFrameID); + root = select(iframe.nodes()[0].contentDocument.body); + root.node().style.margin = 0; + } else { + root = select(svgContainingElement); + } + appendDivSvgG(root, id2, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD); + } else { + removeExistingElements(document, id2, enclosingDivID, iFrameID); + if (isSandboxed) { + const iframe = sandboxedIframe(select("body"), iFrameID); + root = select(iframe.nodes()[0].contentDocument.body); + root.node().style.margin = 0; + } else { + root = select("body"); + } + appendDivSvgG(root, id2, enclosingDivID); + } + let diag; + let parseEncounteredException; + try { + diag = await getDiagramFromText(text, { title: processed.title }); + } catch (error) { + diag = new Diagram("error"); + parseEncounteredException = error; + } + const element = root.select(enclosingDivID_selector).node(); + const diagramType = diag.type; + const svg = element.firstChild; + const firstChild = svg.firstChild; + const diagramClassDefs = (_b = (_a = diag.renderer).getClasses) == null ? void 0 : _b.call(_a, text, diag); + const rules = createUserStyles(config2, diagramType, diagramClassDefs, idSelector); + const style1 = document.createElement("style"); + style1.innerHTML = rules; + svg.insertBefore(style1, firstChild); + try { + await diag.renderer.draw(text, id2, version, diag); + } catch (e) { + errorRenderer.draw(text, id2, version); + throw e; + } + const svgNode = root.select(`${enclosingDivID_selector} svg`); + const a11yTitle = (_d = (_c = diag.db).getAccTitle) == null ? void 0 : _d.call(_c); + const a11yDescr = (_f = (_e = diag.db).getAccDescription) == null ? void 0 : _f.call(_e); + addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr); + root.select(`[id="${id2}"]`).selectAll("foreignobject > *").attr("xmlns", XMLNS_XHTML_STD); + let svgCode = root.select(enclosingDivID_selector).node().innerHTML; + log$1.debug("config.arrowMarkerAbsolute", config2.arrowMarkerAbsolute); + svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config2.arrowMarkerAbsolute)); + if (isSandboxed) { + const svgEl = root.select(enclosingDivID_selector + " svg").node(); + svgCode = putIntoIFrame(svgCode, svgEl); + } else if (!isLooseSecurityLevel) { + svgCode = DOMPurify.sanitize(svgCode, { + ADD_TAGS: DOMPURIFY_TAGS, + ADD_ATTR: DOMPURIFY_ATTR + }); + } + attachFunctions(); + if (parseEncounteredException) { + throw parseEncounteredException; + } + const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector; + const node = select(tmpElementSelector).node(); + if (node && "remove" in node) { + node.remove(); + } + return { + svg: svgCode, + bindFunctions: diag.db.bindFunctions + }; +}; +function initialize$1(options = {}) { + var _a; + if ((options == null ? void 0 : options.fontFamily) && !((_a = options.themeVariables) == null ? void 0 : _a.fontFamily)) { + if (!options.themeVariables) { + options.themeVariables = {}; + } + options.themeVariables.fontFamily = options.fontFamily; + } + saveConfigFromInitialize(options); + if ((options == null ? void 0 : options.theme) && options.theme in theme) { + options.themeVariables = theme[options.theme].getThemeVariables( + options.themeVariables + ); + } else if (options) { + options.themeVariables = theme.default.getThemeVariables(options.themeVariables); + } + const config2 = typeof options === "object" ? setSiteConfig(options) : getSiteConfig(); + setLogLevel$1(config2.logLevel); + addDiagrams(); +} +const getDiagramFromText = (text, metadata = {}) => { + const { code } = preprocessDiagram(text); + return getDiagramFromText$1(code, metadata); +}; +function addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr) { + setA11yDiagramInfo(svgNode, diagramType); + addSVGa11yTitleDescription(svgNode, a11yTitle, a11yDescr, svgNode.attr("id")); +} +const mermaidAPI = Object.freeze({ + render: render$1, + parse: parse$1, + getDiagramFromText, + initialize: initialize$1, + getConfig: getConfig$1, + setConfig: setConfig$1, + getSiteConfig, + updateSiteConfig, + reset: () => { + reset(); + }, + globalReset: () => { + reset(defaultConfig$1); + }, + defaultConfig: defaultConfig$1 +}); +setLogLevel$1(getConfig$1().logLevel); +reset(getConfig$1()); +const loadRegisteredDiagrams = async () => { + log$1.debug(`Loading registered diagrams`); + const results = await Promise.allSettled( + Object.entries(detectors).map(async ([key, { detector: detector2, loader: loader2 }]) => { + if (loader2) { + try { + getDiagram(key); + } catch (error) { + try { + const { diagram: diagram2, id: id2 } = await loader2(); + registerDiagram(id2, diagram2, detector2); + } catch (err) { + log$1.error(`Failed to load external diagram with key ${key}. Removing from detectors.`); + delete detectors[key]; + throw err; + } + } + } + }) + ); + const failed = results.filter((result) => result.status === "rejected"); + if (failed.length > 0) { + log$1.error(`Failed to load ${failed.length} external diagrams`); + for (const res of failed) { + log$1.error(res); + } + throw new Error(`Failed to load ${failed.length} external diagrams`); + } +}; +const handleError = (error, errors, parseError) => { + log$1.warn(error); + if (isDetailedError(error)) { + if (parseError) { + parseError(error.str, error.hash); + } + errors.push({ ...error, message: error.str, error }); + } else { + if (parseError) { + parseError(error); + } + if (error instanceof Error) { + errors.push({ + str: error.message, + message: error.message, + hash: error.name, + error + }); + } + } +}; +const run = async function(options = { + querySelector: ".mermaid" +}) { + try { + await runThrowsErrors(options); + } catch (e) { + if (isDetailedError(e)) { + log$1.error(e.str); + } + if (mermaid.parseError) { + mermaid.parseError(e); + } + if (!options.suppressErrors) { + log$1.error("Use the suppressErrors option to suppress these errors"); + throw e; + } + } +}; +const runThrowsErrors = async function({ postRenderCallback, querySelector, nodes } = { + querySelector: ".mermaid" +}) { + const conf = mermaidAPI.getConfig(); + log$1.debug(`${!postRenderCallback ? "No " : ""}Callback function found`); + let nodesToProcess; + if (nodes) { + nodesToProcess = nodes; + } else if (querySelector) { + nodesToProcess = document.querySelectorAll(querySelector); + } else { + throw new Error("Nodes and querySelector are both undefined"); + } + log$1.debug(`Found ${nodesToProcess.length} diagrams`); + if ((conf == null ? void 0 : conf.startOnLoad) !== void 0) { + log$1.debug("Start On Load: " + (conf == null ? void 0 : conf.startOnLoad)); + mermaidAPI.updateSiteConfig({ startOnLoad: conf == null ? void 0 : conf.startOnLoad }); + } + const idGenerator = new utils.InitIDGenerator(conf.deterministicIds, conf.deterministicIDSeed); + let txt; + const errors = []; + for (const element of Array.from(nodesToProcess)) { + log$1.info("Rendering diagram: " + element.id); + /*! Check if previously processed */ + if (element.getAttribute("data-processed")) { + continue; + } + element.setAttribute("data-processed", "true"); + const id2 = `mermaid-${idGenerator.next()}`; + txt = element.innerHTML; + txt = dedent(utils.entityDecode(txt)).trim().replace(//gi, "
"); + const init2 = utils.detectInit(txt); + if (init2) { + log$1.debug("Detected early reinit: ", init2); + } + try { + const { svg, bindFunctions } = await render(id2, txt, element); + element.innerHTML = svg; + if (postRenderCallback) { + await postRenderCallback(id2); + } + if (bindFunctions) { + bindFunctions(element); + } + } catch (error) { + handleError(error, errors, mermaid.parseError); + } + } + if (errors.length > 0) { + throw errors[0]; + } +}; +const initialize = function(config2) { + mermaidAPI.initialize(config2); +}; +const init = async function(config2, nodes, callback) { + log$1.warn("mermaid.init is deprecated. Please use run instead."); + if (config2) { + initialize(config2); + } + const runOptions = { postRenderCallback: callback, querySelector: ".mermaid" }; + if (typeof nodes === "string") { + runOptions.querySelector = nodes; + } else if (nodes) { + if (nodes instanceof HTMLElement) { + runOptions.nodes = [nodes]; + } else { + runOptions.nodes = nodes; + } + } + await run(runOptions); +}; +const registerExternalDiagrams = async (diagrams2, { + lazyLoad = true +} = {}) => { + registerLazyLoadedDiagrams(...diagrams2); + if (lazyLoad === false) { + await loadRegisteredDiagrams(); + } +}; +const contentLoaded = function() { + if (mermaid.startOnLoad) { + const { startOnLoad } = mermaidAPI.getConfig(); + if (startOnLoad) { + mermaid.run().catch((err) => log$1.error("Mermaid failed to initialize", err)); + } + } +}; +if (typeof document !== "undefined") { + /*! + * Wait for document loaded before starting the execution + */ + window.addEventListener("load", contentLoaded, false); +} +const setParseErrorHandler = function(parseErrorHandler) { + mermaid.parseError = parseErrorHandler; +}; +const executionQueue = []; +let executionQueueRunning = false; +const executeQueue = async () => { + if (executionQueueRunning) { + return; + } + executionQueueRunning = true; + while (executionQueue.length > 0) { + const f = executionQueue.shift(); + if (f) { + try { + await f(); + } catch (e) { + log$1.error("Error executing queue", e); + } + } + } + executionQueueRunning = false; +}; +const parse = async (text, parseOptions) => { + return new Promise((resolve, reject) => { + const performCall = () => new Promise((res, rej) => { + mermaidAPI.parse(text, parseOptions).then( + (r) => { + res(r); + resolve(r); + }, + (e) => { + var _a; + log$1.error("Error parsing", e); + (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e); + rej(e); + reject(e); + } + ); + }); + executionQueue.push(performCall); + executeQueue().catch(reject); + }); +}; +const render = (id2, text, container) => { + return new Promise((resolve, reject) => { + const performCall = () => new Promise((res, rej) => { + mermaidAPI.render(id2, text, container).then( + (r) => { + res(r); + resolve(r); + }, + (e) => { + var _a; + log$1.error("Error parsing", e); + (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e); + rej(e); + reject(e); + } + ); + }); + executionQueue.push(performCall); + executeQueue().catch(reject); + }); +}; +const mermaid = { + startOnLoad: true, + mermaidAPI, + parse, + render, + init, + run, + registerExternalDiagrams, + initialize, + parseError: void 0, + contentLoaded, + setParseErrorHandler, + detectType +}; +export { + selectSvgElement as A, + defaultConfig$2 as B, + cleanAndMerge as C, + parseFontSize as D, + getThemeVariables$2 as E, + getConfig$1 as F, + hasKatex as G, + calculateMathMLDimensions as H, + generateId as I, + lineBreakRegex as J, + defaultConfig as K, + commonDb as L, + decodeEntities as M, + mermaid as N, + ZERO_WIDTH_SPACE as Z, + getAccDescription as a, + setAccDescription as b, + getConfig as c, + sanitizeText$2 as d, + common$1 as e, + assignWithDepth$1 as f, + getAccTitle as g, + calculateTextWidth as h, + configureSvgSize as i, + calculateTextHeight as j, + getStylesFromArray as k, + log$1 as l, + evaluate as m, + interpolateToCurve as n, + setupGraphViewbox$1 as o, + setConfig as p, + setDiagramTitle as q, + renderKatex as r, + setAccTitle as s, + getDiagramTitle as t, + utils as u, + clear as v, + wrapLabel as w, + parseGenericTypes as x, + random as y, + setupGraphViewbox as z +}; diff --git a/assets/lib/mermaid/mermaid-9f2aa176.js b/assets/lib/mermaid/mermaid-9f2aa176.js new file mode 100644 index 000000000..7d41da37f --- /dev/null +++ b/assets/lib/mermaid/mermaid-9f2aa176.js @@ -0,0 +1,8112 @@ +function mh(t) { + for (var e = [], i = 1; i < arguments.length; i++) + e[i - 1] = arguments[i]; + var r = Array.from(typeof t == "string" ? [t] : t); + r[r.length - 1] = r[r.length - 1].replace(/\r?\n([\t ]*)$/, ""); + var n = r.reduce(function(a, l) { + var h = l.match(/\n([\t ]+|(?!\s).)/g); + return h ? a.concat(h.map(function(u) { + var f, c; + return (c = (f = u.match(/[\t ]/g)) === null || f === void 0 ? void 0 : f.length) !== null && c !== void 0 ? c : 0; + })) : a; + }, []); + if (n.length) { + var o = new RegExp(` +[ ]{` + Math.min.apply(Math, n) + "}", "g"); + r = r.map(function(a) { + return a.replace(o, ` +`); + }); + } + r[0] = r[0].replace(/^\r?\n/, ""); + var s = r[0]; + return e.forEach(function(a, l) { + var h = s.match(/(?:^|\n)( *)$/), u = h ? h[1] : "", f = a; + typeof a == "string" && a.includes(` +`) && (f = String(a).split(` +`).map(function(c, d) { + return d === 0 ? c : "" + u + c; + }).join(` +`)), s += f + r[l + 1]; + }), s; +} +var yh = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}; +function _h(t) { + return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t; +} +var Ns = { exports: {} }; +(function(t, e) { + (function(i, r) { + t.exports = r(); + })(yh, function() { + var i = 1e3, r = 6e4, n = 36e5, o = "millisecond", s = "second", a = "minute", l = "hour", h = "day", u = "week", f = "month", c = "quarter", d = "year", m = "date", S = "Invalid Date", O = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, z = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, T = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(M) { + var k = ["th", "st", "nd", "rd"], C = M % 100; + return "[" + M + (k[(C - 20) % 10] || k[C] || k[0]) + "]"; + } }, R = function(M, k, C) { + var w = String(M); + return !w || w.length >= k ? M : "" + Array(k + 1 - w.length).join(C) + M; + }, X = { s: R, z: function(M) { + var k = -M.utcOffset(), C = Math.abs(k), w = Math.floor(C / 60), x = C % 60; + return (k <= 0 ? "+" : "-") + R(w, 2, "0") + ":" + R(x, 2, "0"); + }, m: function M(k, C) { + if (k.date() < C.date()) + return -M(C, k); + var w = 12 * (C.year() - k.year()) + (C.month() - k.month()), x = k.clone().add(w, f), b = C - x < 0, D = k.clone().add(w + (b ? -1 : 1), f); + return +(-(w + (C - x) / (b ? x - D : D - x)) || 0); + }, a: function(M) { + return M < 0 ? Math.ceil(M) || 0 : Math.floor(M); + }, p: function(M) { + return { M: f, y: d, w: u, d: h, D: m, h: l, m: a, s, ms: o, Q: c }[M] || String(M || "").toLowerCase().replace(/s$/, ""); + }, u: function(M) { + return M === void 0; + } }, G = "en", V = {}; + V[G] = T; + var H = "$isDayjsObject", oe = function(M) { + return M instanceof Ct || !(!M || !M[H]); + }, Kt = function M(k, C, w) { + var x; + if (!k) + return G; + if (typeof k == "string") { + var b = k.toLowerCase(); + V[b] && (x = b), C && (V[b] = C, x = b); + var D = k.split("-"); + if (!x && D.length > 1) + return M(D[0]); + } else { + var I = k.name; + V[I] = k, x = I; + } + return !w && x && (G = x), x || !w && G; + }, P = function(M, k) { + if (oe(M)) + return M.clone(); + var C = typeof k == "object" ? k : {}; + return C.date = M, C.args = arguments, new Ct(C); + }, W = X; + W.l = Kt, W.i = oe, W.w = function(M, k) { + return P(M, { locale: k.$L, utc: k.$u, x: k.$x, $offset: k.$offset }); + }; + var Ct = function() { + function M(C) { + this.$L = Kt(C.locale, null, !0), this.parse(C), this.$x = this.$x || C.x || {}, this[H] = !0; + } + var k = M.prototype; + return k.parse = function(C) { + this.$d = function(w) { + var x = w.date, b = w.utc; + if (x === null) + return /* @__PURE__ */ new Date(NaN); + if (W.u(x)) + return /* @__PURE__ */ new Date(); + if (x instanceof Date) + return new Date(x); + if (typeof x == "string" && !/Z$/i.test(x)) { + var D = x.match(O); + if (D) { + var I = D[2] - 1 || 0, Y = (D[7] || "0").substring(0, 3); + return b ? new Date(Date.UTC(D[1], I, D[3] || 1, D[4] || 0, D[5] || 0, D[6] || 0, Y)) : new Date(D[1], I, D[3] || 1, D[4] || 0, D[5] || 0, D[6] || 0, Y); + } + } + return new Date(x); + }(C), this.init(); + }, k.init = function() { + var C = this.$d; + this.$y = C.getFullYear(), this.$M = C.getMonth(), this.$D = C.getDate(), this.$W = C.getDay(), this.$H = C.getHours(), this.$m = C.getMinutes(), this.$s = C.getSeconds(), this.$ms = C.getMilliseconds(); + }, k.$utils = function() { + return W; + }, k.isValid = function() { + return this.$d.toString() !== S; + }, k.isSame = function(C, w) { + var x = P(C); + return this.startOf(w) <= x && x <= this.endOf(w); + }, k.isAfter = function(C, w) { + return P(C) < this.startOf(w); + }, k.isBefore = function(C, w) { + return this.endOf(w) < P(C); + }, k.$g = function(C, w, x) { + return W.u(C) ? this[w] : this.set(x, C); + }, k.unix = function() { + return Math.floor(this.valueOf() / 1e3); + }, k.valueOf = function() { + return this.$d.getTime(); + }, k.startOf = function(C, w) { + var x = this, b = !!W.u(w) || w, D = W.p(C), I = function(Lt, Z) { + var it = W.w(x.$u ? Date.UTC(x.$y, Z, Lt) : new Date(x.$y, Z, Lt), x); + return b ? it : it.endOf(h); + }, Y = function(Lt, Z) { + return W.w(x.toDate()[Lt].apply(x.toDate("s"), (b ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(Z)), x); + }, N = this.$W, K = this.$M, et = this.$D, Rt = "set" + (this.$u ? "UTC" : ""); + switch (D) { + case d: + return b ? I(1, 0) : I(31, 11); + case f: + return b ? I(1, K) : I(0, K + 1); + case u: + var St = this.$locale().weekStart || 0, Zt = (N < St ? N + 7 : N) - St; + return I(b ? et - Zt : et + (6 - Zt), K); + case h: + case m: + return Y(Rt + "Hours", 0); + case l: + return Y(Rt + "Minutes", 1); + case a: + return Y(Rt + "Seconds", 2); + case s: + return Y(Rt + "Milliseconds", 3); + default: + return this.clone(); + } + }, k.endOf = function(C) { + return this.startOf(C, !1); + }, k.$set = function(C, w) { + var x, b = W.p(C), D = "set" + (this.$u ? "UTC" : ""), I = (x = {}, x[h] = D + "Date", x[m] = D + "Date", x[f] = D + "Month", x[d] = D + "FullYear", x[l] = D + "Hours", x[a] = D + "Minutes", x[s] = D + "Seconds", x[o] = D + "Milliseconds", x)[b], Y = b === h ? this.$D + (w - this.$W) : w; + if (b === f || b === d) { + var N = this.clone().set(m, 1); + N.$d[I](Y), N.init(), this.$d = N.set(m, Math.min(this.$D, N.daysInMonth())).$d; + } else + I && this.$d[I](Y); + return this.init(), this; + }, k.set = function(C, w) { + return this.clone().$set(C, w); + }, k.get = function(C) { + return this[W.p(C)](); + }, k.add = function(C, w) { + var x, b = this; + C = Number(C); + var D = W.p(w), I = function(K) { + var et = P(b); + return W.w(et.date(et.date() + Math.round(K * C)), b); + }; + if (D === f) + return this.set(f, this.$M + C); + if (D === d) + return this.set(d, this.$y + C); + if (D === h) + return I(1); + if (D === u) + return I(7); + var Y = (x = {}, x[a] = r, x[l] = n, x[s] = i, x)[D] || 1, N = this.$d.getTime() + C * Y; + return W.w(N, this); + }, k.subtract = function(C, w) { + return this.add(-1 * C, w); + }, k.format = function(C) { + var w = this, x = this.$locale(); + if (!this.isValid()) + return x.invalidDate || S; + var b = C || "YYYY-MM-DDTHH:mm:ssZ", D = W.z(this), I = this.$H, Y = this.$m, N = this.$M, K = x.weekdays, et = x.months, Rt = x.meridiem, St = function(Z, it, Pt, Jt) { + return Z && (Z[it] || Z(w, b)) || Pt[it].slice(0, Jt); + }, Zt = function(Z) { + return W.s(I % 12 || 12, Z, "0"); + }, Lt = Rt || function(Z, it, Pt) { + var Jt = Z < 12 ? "AM" : "PM"; + return Pt ? Jt.toLowerCase() : Jt; + }; + return b.replace(z, function(Z, it) { + return it || function(Pt) { + switch (Pt) { + case "YY": + return String(w.$y).slice(-2); + case "YYYY": + return W.s(w.$y, 4, "0"); + case "M": + return N + 1; + case "MM": + return W.s(N + 1, 2, "0"); + case "MMM": + return St(x.monthsShort, N, et, 3); + case "MMMM": + return St(et, N); + case "D": + return w.$D; + case "DD": + return W.s(w.$D, 2, "0"); + case "d": + return String(w.$W); + case "dd": + return St(x.weekdaysMin, w.$W, K, 2); + case "ddd": + return St(x.weekdaysShort, w.$W, K, 3); + case "dddd": + return K[w.$W]; + case "H": + return String(I); + case "HH": + return W.s(I, 2, "0"); + case "h": + return Zt(1); + case "hh": + return Zt(2); + case "a": + return Lt(I, Y, !0); + case "A": + return Lt(I, Y, !1); + case "m": + return String(Y); + case "mm": + return W.s(Y, 2, "0"); + case "s": + return String(w.$s); + case "ss": + return W.s(w.$s, 2, "0"); + case "SSS": + return W.s(w.$ms, 3, "0"); + case "Z": + return D; + } + return null; + }(Z) || D.replace(":", ""); + }); + }, k.utcOffset = function() { + return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); + }, k.diff = function(C, w, x) { + var b, D = this, I = W.p(w), Y = P(C), N = (Y.utcOffset() - this.utcOffset()) * r, K = this - Y, et = function() { + return W.m(D, Y); + }; + switch (I) { + case d: + b = et() / 12; + break; + case f: + b = et(); + break; + case c: + b = et() / 3; + break; + case u: + b = (K - N) / 6048e5; + break; + case h: + b = (K - N) / 864e5; + break; + case l: + b = K / n; + break; + case a: + b = K / r; + break; + case s: + b = K / i; + break; + default: + b = K; + } + return x ? b : W.a(b); + }, k.daysInMonth = function() { + return this.endOf(f).$D; + }, k.$locale = function() { + return V[this.$L]; + }, k.locale = function(C, w) { + if (!C) + return this.$L; + var x = this.clone(), b = Kt(C, w, !0); + return b && (x.$L = b), x; + }, k.clone = function() { + return W.w(this.$d, this); + }, k.toDate = function() { + return new Date(this.valueOf()); + }, k.toJSON = function() { + return this.isValid() ? this.toISOString() : null; + }, k.toISOString = function() { + return this.$d.toISOString(); + }, k.toString = function() { + return this.$d.toUTCString(); + }, M; + }(), Nt = Ct.prototype; + return P.prototype = Nt, [["$ms", o], ["$s", s], ["$m", a], ["$H", l], ["$W", h], ["$M", f], ["$y", d], ["$D", m]].forEach(function(M) { + Nt[M[1]] = function(k) { + return this.$g(k, M[0], M[1]); + }; + }), P.extend = function(M, k) { + return M.$i || (M(k, Ct, P), M.$i = !0), P; + }, P.locale = Kt, P.isDayjs = oe, P.unix = function(M) { + return P(1e3 * M); + }, P.en = V[G], P.Ls = V, P.p = {}, P; + }); +})(Ns); +var Ch = Ns.exports; +const xh = /* @__PURE__ */ _h(Ch), Wt = { + trace: 0, + debug: 1, + info: 2, + warn: 3, + error: 4, + fatal: 5 +}, L = { + trace: (...t) => { + }, + debug: (...t) => { + }, + info: (...t) => { + }, + warn: (...t) => { + }, + error: (...t) => { + }, + fatal: (...t) => { + } +}, bn = function(t = "fatal") { + let e = Wt.fatal; + typeof t == "string" ? (t = t.toLowerCase(), t in Wt && (e = Wt[t])) : typeof t == "number" && (e = t), L.trace = () => { + }, L.debug = () => { + }, L.info = () => { + }, L.warn = () => { + }, L.error = () => { + }, L.fatal = () => { + }, e <= Wt.fatal && (L.fatal = console.error ? console.error.bind(console, xt("FATAL"), "color: orange") : console.log.bind(console, "\x1B[35m", xt("FATAL"))), e <= Wt.error && (L.error = console.error ? console.error.bind(console, xt("ERROR"), "color: orange") : console.log.bind(console, "\x1B[31m", xt("ERROR"))), e <= Wt.warn && (L.warn = console.warn ? console.warn.bind(console, xt("WARN"), "color: orange") : console.log.bind(console, "\x1B[33m", xt("WARN"))), e <= Wt.info && (L.info = console.info ? console.info.bind(console, xt("INFO"), "color: lightblue") : console.log.bind(console, "\x1B[34m", xt("INFO"))), e <= Wt.debug && (L.debug = console.debug ? console.debug.bind(console, xt("DEBUG"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", xt("DEBUG"))), e <= Wt.trace && (L.trace = console.debug ? console.debug.bind(console, xt("TRACE"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", xt("TRACE"))); +}, xt = (t) => `%c${xh().format("ss.SSS")} : ${t} : `; +var Rs = {}; +(function(t) { + Object.defineProperty(t, "__esModule", { value: !0 }), t.sanitizeUrl = t.BLANK_URL = void 0; + var e = /^([^\w]*)(javascript|data|vbscript)/im, i = /&#(\w+)(^\w|;)?/g, r = /&(newline|tab);/gi, n = /[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim, o = /^.+(:|:)/gim, s = [".", "/"]; + t.BLANK_URL = "about:blank"; + function a(u) { + return s.indexOf(u[0]) > -1; + } + function l(u) { + var f = u.replace(n, ""); + return f.replace(i, function(c, d) { + return String.fromCharCode(d); + }); + } + function h(u) { + if (!u) + return t.BLANK_URL; + var f = l(u).replace(r, "").replace(n, "").trim(); + if (!f) + return t.BLANK_URL; + if (a(f)) + return f; + var c = f.match(o); + if (!c) + return f; + var d = c[0]; + return e.test(d) ? t.BLANK_URL : f; + } + t.sanitizeUrl = h; +})(Rs); +var bh = { value: () => { +} }; +function Ps() { + for (var t = 0, e = arguments.length, i = {}, r; t < e; ++t) { + if (!(r = arguments[t] + "") || r in i || /[\s.]/.test(r)) + throw new Error("illegal type: " + r); + i[r] = []; + } + return new Oi(i); +} +function Oi(t) { + this._ = t; +} +function Th(t, e) { + return t.trim().split(/^|\s+/).map(function(i) { + var r = "", n = i.indexOf("."); + if (n >= 0 && (r = i.slice(n + 1), i = i.slice(0, n)), i && !e.hasOwnProperty(i)) + throw new Error("unknown type: " + i); + return { type: i, name: r }; + }); +} +Oi.prototype = Ps.prototype = { + constructor: Oi, + on: function(t, e) { + var i = this._, r = Th(t + "", i), n, o = -1, s = r.length; + if (arguments.length < 2) { + for (; ++o < s; ) + if ((n = (t = r[o]).type) && (n = kh(i[n], t.name))) + return n; + return; + } + if (e != null && typeof e != "function") + throw new Error("invalid callback: " + e); + for (; ++o < s; ) + if (n = (t = r[o]).type) + i[n] = To(i[n], t.name, e); + else if (e == null) + for (n in i) + i[n] = To(i[n], t.name, null); + return this; + }, + copy: function() { + var t = {}, e = this._; + for (var i in e) + t[i] = e[i].slice(); + return new Oi(t); + }, + call: function(t, e) { + if ((n = arguments.length - 2) > 0) + for (var i = new Array(n), r = 0, n, o; r < n; ++r) + i[r] = arguments[r + 2]; + if (!this._.hasOwnProperty(t)) + throw new Error("unknown type: " + t); + for (o = this._[t], r = 0, n = o.length; r < n; ++r) + o[r].value.apply(e, i); + }, + apply: function(t, e, i) { + if (!this._.hasOwnProperty(t)) + throw new Error("unknown type: " + t); + for (var r = this._[t], n = 0, o = r.length; n < o; ++n) + r[n].value.apply(e, i); + } +}; +function kh(t, e) { + for (var i = 0, r = t.length, n; i < r; ++i) + if ((n = t[i]).name === e) + return n.value; +} +function To(t, e, i) { + for (var r = 0, n = t.length; r < n; ++r) + if (t[r].name === e) { + t[r] = bh, t = t.slice(0, r).concat(t.slice(r + 1)); + break; + } + return i != null && t.push({ name: e, value: i }), t; +} +var Jr = "http://www.w3.org/1999/xhtml"; +const ko = { + svg: "http://www.w3.org/2000/svg", + xhtml: Jr, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" +}; +function fr(t) { + var e = t += "", i = e.indexOf(":"); + return i >= 0 && (e = t.slice(0, i)) !== "xmlns" && (t = t.slice(i + 1)), ko.hasOwnProperty(e) ? { space: ko[e], local: t } : t; +} +function Sh(t) { + return function() { + var e = this.ownerDocument, i = this.namespaceURI; + return i === Jr && e.documentElement.namespaceURI === Jr ? e.createElement(t) : e.createElementNS(i, t); + }; +} +function vh(t) { + return function() { + return this.ownerDocument.createElementNS(t.space, t.local); + }; +} +function qs(t) { + var e = fr(t); + return (e.local ? vh : Sh)(e); +} +function wh() { +} +function Tn(t) { + return t == null ? wh : function() { + return this.querySelector(t); + }; +} +function Bh(t) { + typeof t != "function" && (t = Tn(t)); + for (var e = this._groups, i = e.length, r = new Array(i), n = 0; n < i; ++n) + for (var o = e[n], s = o.length, a = r[n] = new Array(s), l, h, u = 0; u < s; ++u) + (l = o[u]) && (h = t.call(l, l.__data__, u, o)) && ("__data__" in l && (h.__data__ = l.__data__), a[u] = h); + return new yt(r, this._parents); +} +function Fh(t) { + return t == null ? [] : Array.isArray(t) ? t : Array.from(t); +} +function Ah() { + return []; +} +function zs(t) { + return t == null ? Ah : function() { + return this.querySelectorAll(t); + }; +} +function Lh(t) { + return function() { + return Fh(t.apply(this, arguments)); + }; +} +function Eh(t) { + typeof t == "function" ? t = Lh(t) : t = zs(t); + for (var e = this._groups, i = e.length, r = [], n = [], o = 0; o < i; ++o) + for (var s = e[o], a = s.length, l, h = 0; h < a; ++h) + (l = s[h]) && (r.push(t.call(l, l.__data__, h, s)), n.push(l)); + return new yt(r, n); +} +function Ws(t) { + return function() { + return this.matches(t); + }; +} +function Hs(t) { + return function(e) { + return e.matches(t); + }; +} +var Mh = Array.prototype.find; +function Oh(t) { + return function() { + return Mh.call(this.children, t); + }; +} +function $h() { + return this.firstElementChild; +} +function Ih(t) { + return this.select(t == null ? $h : Oh(typeof t == "function" ? t : Hs(t))); +} +var Dh = Array.prototype.filter; +function Nh() { + return Array.from(this.children); +} +function Rh(t) { + return function() { + return Dh.call(this.children, t); + }; +} +function Ph(t) { + return this.selectAll(t == null ? Nh : Rh(typeof t == "function" ? t : Hs(t))); +} +function qh(t) { + typeof t != "function" && (t = Ws(t)); + for (var e = this._groups, i = e.length, r = new Array(i), n = 0; n < i; ++n) + for (var o = e[n], s = o.length, a = r[n] = [], l, h = 0; h < s; ++h) + (l = o[h]) && t.call(l, l.__data__, h, o) && a.push(l); + return new yt(r, this._parents); +} +function js(t) { + return new Array(t.length); +} +function zh() { + return new yt(this._enter || this._groups.map(js), this._parents); +} +function ji(t, e) { + this.ownerDocument = t.ownerDocument, this.namespaceURI = t.namespaceURI, this._next = null, this._parent = t, this.__data__ = e; +} +ji.prototype = { + constructor: ji, + appendChild: function(t) { + return this._parent.insertBefore(t, this._next); + }, + insertBefore: function(t, e) { + return this._parent.insertBefore(t, e); + }, + querySelector: function(t) { + return this._parent.querySelector(t); + }, + querySelectorAll: function(t) { + return this._parent.querySelectorAll(t); + } +}; +function Wh(t) { + return function() { + return t; + }; +} +function Hh(t, e, i, r, n, o) { + for (var s = 0, a, l = e.length, h = o.length; s < h; ++s) + (a = e[s]) ? (a.__data__ = o[s], r[s] = a) : i[s] = new ji(t, o[s]); + for (; s < l; ++s) + (a = e[s]) && (n[s] = a); +} +function jh(t, e, i, r, n, o, s) { + var a, l, h = /* @__PURE__ */ new Map(), u = e.length, f = o.length, c = new Array(u), d; + for (a = 0; a < u; ++a) + (l = e[a]) && (c[a] = d = s.call(l, l.__data__, a, e) + "", h.has(d) ? n[a] = l : h.set(d, l)); + for (a = 0; a < f; ++a) + d = s.call(t, o[a], a, o) + "", (l = h.get(d)) ? (r[a] = l, l.__data__ = o[a], h.delete(d)) : i[a] = new ji(t, o[a]); + for (a = 0; a < u; ++a) + (l = e[a]) && h.get(c[a]) === l && (n[a] = l); +} +function Uh(t) { + return t.__data__; +} +function Yh(t, e) { + if (!arguments.length) + return Array.from(this, Uh); + var i = e ? jh : Hh, r = this._parents, n = this._groups; + typeof t != "function" && (t = Wh(t)); + for (var o = n.length, s = new Array(o), a = new Array(o), l = new Array(o), h = 0; h < o; ++h) { + var u = r[h], f = n[h], c = f.length, d = Gh(t.call(u, u && u.__data__, h, r)), m = d.length, S = a[h] = new Array(m), O = s[h] = new Array(m), z = l[h] = new Array(c); + i(u, f, S, O, z, d, e); + for (var T = 0, R = 0, X, G; T < m; ++T) + if (X = S[T]) { + for (T >= R && (R = T + 1); !(G = O[R]) && ++R < m; ) + ; + X._next = G || null; + } + } + return s = new yt(s, r), s._enter = a, s._exit = l, s; +} +function Gh(t) { + return typeof t == "object" && "length" in t ? t : Array.from(t); +} +function Vh() { + return new yt(this._exit || this._groups.map(js), this._parents); +} +function Xh(t, e, i) { + var r = this.enter(), n = this, o = this.exit(); + return typeof t == "function" ? (r = t(r), r && (r = r.selection())) : r = r.append(t + ""), e != null && (n = e(n), n && (n = n.selection())), i == null ? o.remove() : i(o), r && n ? r.merge(n).order() : n; +} +function Kh(t) { + for (var e = t.selection ? t.selection() : t, i = this._groups, r = e._groups, n = i.length, o = r.length, s = Math.min(n, o), a = new Array(n), l = 0; l < s; ++l) + for (var h = i[l], u = r[l], f = h.length, c = a[l] = new Array(f), d, m = 0; m < f; ++m) + (d = h[m] || u[m]) && (c[m] = d); + for (; l < n; ++l) + a[l] = i[l]; + return new yt(a, this._parents); +} +function Zh() { + for (var t = this._groups, e = -1, i = t.length; ++e < i; ) + for (var r = t[e], n = r.length - 1, o = r[n], s; --n >= 0; ) + (s = r[n]) && (o && s.compareDocumentPosition(o) ^ 4 && o.parentNode.insertBefore(s, o), o = s); + return this; +} +function Jh(t) { + t || (t = Qh); + function e(f, c) { + return f && c ? t(f.__data__, c.__data__) : !f - !c; + } + for (var i = this._groups, r = i.length, n = new Array(r), o = 0; o < r; ++o) { + for (var s = i[o], a = s.length, l = n[o] = new Array(a), h, u = 0; u < a; ++u) + (h = s[u]) && (l[u] = h); + l.sort(e); + } + return new yt(n, this._parents).order(); +} +function Qh(t, e) { + return t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN; +} +function tc() { + var t = arguments[0]; + return arguments[0] = this, t.apply(null, arguments), this; +} +function ec() { + return Array.from(this); +} +function ic() { + for (var t = this._groups, e = 0, i = t.length; e < i; ++e) + for (var r = t[e], n = 0, o = r.length; n < o; ++n) { + var s = r[n]; + if (s) + return s; + } + return null; +} +function rc() { + let t = 0; + for (const e of this) + ++t; + return t; +} +function nc() { + return !this.node(); +} +function oc(t) { + for (var e = this._groups, i = 0, r = e.length; i < r; ++i) + for (var n = e[i], o = 0, s = n.length, a; o < s; ++o) + (a = n[o]) && t.call(a, a.__data__, o, n); + return this; +} +function sc(t) { + return function() { + this.removeAttribute(t); + }; +} +function ac(t) { + return function() { + this.removeAttributeNS(t.space, t.local); + }; +} +function lc(t, e) { + return function() { + this.setAttribute(t, e); + }; +} +function hc(t, e) { + return function() { + this.setAttributeNS(t.space, t.local, e); + }; +} +function cc(t, e) { + return function() { + var i = e.apply(this, arguments); + i == null ? this.removeAttribute(t) : this.setAttribute(t, i); + }; +} +function uc(t, e) { + return function() { + var i = e.apply(this, arguments); + i == null ? this.removeAttributeNS(t.space, t.local) : this.setAttributeNS(t.space, t.local, i); + }; +} +function fc(t, e) { + var i = fr(t); + if (arguments.length < 2) { + var r = this.node(); + return i.local ? r.getAttributeNS(i.space, i.local) : r.getAttribute(i); + } + return this.each((e == null ? i.local ? ac : sc : typeof e == "function" ? i.local ? uc : cc : i.local ? hc : lc)(i, e)); +} +function Us(t) { + return t.ownerDocument && t.ownerDocument.defaultView || t.document && t || t.defaultView; +} +function dc(t) { + return function() { + this.style.removeProperty(t); + }; +} +function pc(t, e, i) { + return function() { + this.style.setProperty(t, e, i); + }; +} +function gc(t, e, i) { + return function() { + var r = e.apply(this, arguments); + r == null ? this.style.removeProperty(t) : this.style.setProperty(t, r, i); + }; +} +function mc(t, e, i) { + return arguments.length > 1 ? this.each((e == null ? dc : typeof e == "function" ? gc : pc)(t, e, i ?? "")) : Ae(this.node(), t); +} +function Ae(t, e) { + return t.style.getPropertyValue(e) || Us(t).getComputedStyle(t, null).getPropertyValue(e); +} +function yc(t) { + return function() { + delete this[t]; + }; +} +function _c(t, e) { + return function() { + this[t] = e; + }; +} +function Cc(t, e) { + return function() { + var i = e.apply(this, arguments); + i == null ? delete this[t] : this[t] = i; + }; +} +function xc(t, e) { + return arguments.length > 1 ? this.each((e == null ? yc : typeof e == "function" ? Cc : _c)(t, e)) : this.node()[t]; +} +function Ys(t) { + return t.trim().split(/^|\s+/); +} +function kn(t) { + return t.classList || new Gs(t); +} +function Gs(t) { + this._node = t, this._names = Ys(t.getAttribute("class") || ""); +} +Gs.prototype = { + add: function(t) { + var e = this._names.indexOf(t); + e < 0 && (this._names.push(t), this._node.setAttribute("class", this._names.join(" "))); + }, + remove: function(t) { + var e = this._names.indexOf(t); + e >= 0 && (this._names.splice(e, 1), this._node.setAttribute("class", this._names.join(" "))); + }, + contains: function(t) { + return this._names.indexOf(t) >= 0; + } +}; +function Vs(t, e) { + for (var i = kn(t), r = -1, n = e.length; ++r < n; ) + i.add(e[r]); +} +function Xs(t, e) { + for (var i = kn(t), r = -1, n = e.length; ++r < n; ) + i.remove(e[r]); +} +function bc(t) { + return function() { + Vs(this, t); + }; +} +function Tc(t) { + return function() { + Xs(this, t); + }; +} +function kc(t, e) { + return function() { + (e.apply(this, arguments) ? Vs : Xs)(this, t); + }; +} +function Sc(t, e) { + var i = Ys(t + ""); + if (arguments.length < 2) { + for (var r = kn(this.node()), n = -1, o = i.length; ++n < o; ) + if (!r.contains(i[n])) + return !1; + return !0; + } + return this.each((typeof e == "function" ? kc : e ? bc : Tc)(i, e)); +} +function vc() { + this.textContent = ""; +} +function wc(t) { + return function() { + this.textContent = t; + }; +} +function Bc(t) { + return function() { + var e = t.apply(this, arguments); + this.textContent = e ?? ""; + }; +} +function Fc(t) { + return arguments.length ? this.each(t == null ? vc : (typeof t == "function" ? Bc : wc)(t)) : this.node().textContent; +} +function Ac() { + this.innerHTML = ""; +} +function Lc(t) { + return function() { + this.innerHTML = t; + }; +} +function Ec(t) { + return function() { + var e = t.apply(this, arguments); + this.innerHTML = e ?? ""; + }; +} +function Mc(t) { + return arguments.length ? this.each(t == null ? Ac : (typeof t == "function" ? Ec : Lc)(t)) : this.node().innerHTML; +} +function Oc() { + this.nextSibling && this.parentNode.appendChild(this); +} +function $c() { + return this.each(Oc); +} +function Ic() { + this.previousSibling && this.parentNode.insertBefore(this, this.parentNode.firstChild); +} +function Dc() { + return this.each(Ic); +} +function Nc(t) { + var e = typeof t == "function" ? t : qs(t); + return this.select(function() { + return this.appendChild(e.apply(this, arguments)); + }); +} +function Rc() { + return null; +} +function Pc(t, e) { + var i = typeof t == "function" ? t : qs(t), r = e == null ? Rc : typeof e == "function" ? e : Tn(e); + return this.select(function() { + return this.insertBefore(i.apply(this, arguments), r.apply(this, arguments) || null); + }); +} +function qc() { + var t = this.parentNode; + t && t.removeChild(this); +} +function zc() { + return this.each(qc); +} +function Wc() { + var t = this.cloneNode(!1), e = this.parentNode; + return e ? e.insertBefore(t, this.nextSibling) : t; +} +function Hc() { + var t = this.cloneNode(!0), e = this.parentNode; + return e ? e.insertBefore(t, this.nextSibling) : t; +} +function jc(t) { + return this.select(t ? Hc : Wc); +} +function Uc(t) { + return arguments.length ? this.property("__data__", t) : this.node().__data__; +} +function Yc(t) { + return function(e) { + t.call(this, e, this.__data__); + }; +} +function Gc(t) { + return t.trim().split(/^|\s+/).map(function(e) { + var i = "", r = e.indexOf("."); + return r >= 0 && (i = e.slice(r + 1), e = e.slice(0, r)), { type: e, name: i }; + }); +} +function Vc(t) { + return function() { + var e = this.__on; + if (e) { + for (var i = 0, r = -1, n = e.length, o; i < n; ++i) + o = e[i], (!t.type || o.type === t.type) && o.name === t.name ? this.removeEventListener(o.type, o.listener, o.options) : e[++r] = o; + ++r ? e.length = r : delete this.__on; + } + }; +} +function Xc(t, e, i) { + return function() { + var r = this.__on, n, o = Yc(e); + if (r) { + for (var s = 0, a = r.length; s < a; ++s) + if ((n = r[s]).type === t.type && n.name === t.name) { + this.removeEventListener(n.type, n.listener, n.options), this.addEventListener(n.type, n.listener = o, n.options = i), n.value = e; + return; + } + } + this.addEventListener(t.type, o, i), n = { type: t.type, name: t.name, value: e, listener: o, options: i }, r ? r.push(n) : this.__on = [n]; + }; +} +function Kc(t, e, i) { + var r = Gc(t + ""), n, o = r.length, s; + if (arguments.length < 2) { + var a = this.node().__on; + if (a) { + for (var l = 0, h = a.length, u; l < h; ++l) + for (n = 0, u = a[l]; n < o; ++n) + if ((s = r[n]).type === u.type && s.name === u.name) + return u.value; + } + return; + } + for (a = e ? Xc : Vc, n = 0; n < o; ++n) + this.each(a(r[n], e, i)); + return this; +} +function Ks(t, e, i) { + var r = Us(t), n = r.CustomEvent; + typeof n == "function" ? n = new n(e, i) : (n = r.document.createEvent("Event"), i ? (n.initEvent(e, i.bubbles, i.cancelable), n.detail = i.detail) : n.initEvent(e, !1, !1)), t.dispatchEvent(n); +} +function Zc(t, e) { + return function() { + return Ks(this, t, e); + }; +} +function Jc(t, e) { + return function() { + return Ks(this, t, e.apply(this, arguments)); + }; +} +function Qc(t, e) { + return this.each((typeof e == "function" ? Jc : Zc)(t, e)); +} +function* tu() { + for (var t = this._groups, e = 0, i = t.length; e < i; ++e) + for (var r = t[e], n = 0, o = r.length, s; n < o; ++n) + (s = r[n]) && (yield s); +} +var Zs = [null]; +function yt(t, e) { + this._groups = t, this._parents = e; +} +function di() { + return new yt([[document.documentElement]], Zs); +} +function eu() { + return this; +} +yt.prototype = di.prototype = { + constructor: yt, + select: Bh, + selectAll: Eh, + selectChild: Ih, + selectChildren: Ph, + filter: qh, + data: Yh, + enter: zh, + exit: Vh, + join: Xh, + merge: Kh, + selection: eu, + order: Zh, + sort: Jh, + call: tc, + nodes: ec, + node: ic, + size: rc, + empty: nc, + each: oc, + attr: fc, + style: mc, + property: xc, + classed: Sc, + text: Fc, + html: Mc, + raise: $c, + lower: Dc, + append: Nc, + insert: Pc, + remove: zc, + clone: jc, + datum: Uc, + on: Kc, + dispatch: Qc, + [Symbol.iterator]: tu +}; +function bt(t) { + return typeof t == "string" ? new yt([[document.querySelector(t)]], [document.documentElement]) : new yt([[t]], Zs); +} +function Sn(t, e, i) { + t.prototype = e.prototype = i, i.constructor = t; +} +function Js(t, e) { + var i = Object.create(t.prototype); + for (var r in e) + i[r] = e[r]; + return i; +} +function pi() { +} +var ri = 0.7, Ui = 1 / ri, Fe = "\\s*([+-]?\\d+)\\s*", ni = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", Et = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", iu = /^#([0-9a-f]{3,8})$/, ru = new RegExp(`^rgb\\(${Fe},${Fe},${Fe}\\)$`), nu = new RegExp(`^rgb\\(${Et},${Et},${Et}\\)$`), ou = new RegExp(`^rgba\\(${Fe},${Fe},${Fe},${ni}\\)$`), su = new RegExp(`^rgba\\(${Et},${Et},${Et},${ni}\\)$`), au = new RegExp(`^hsl\\(${ni},${Et},${Et}\\)$`), lu = new RegExp(`^hsla\\(${ni},${Et},${Et},${ni}\\)$`), So = { + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + rebeccapurple: 6697881, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 +}; +Sn(pi, oi, { + copy(t) { + return Object.assign(new this.constructor(), this, t); + }, + displayable() { + return this.rgb().displayable(); + }, + hex: vo, + // Deprecated! Use color.formatHex. + formatHex: vo, + formatHex8: hu, + formatHsl: cu, + formatRgb: wo, + toString: wo +}); +function vo() { + return this.rgb().formatHex(); +} +function hu() { + return this.rgb().formatHex8(); +} +function cu() { + return Qs(this).formatHsl(); +} +function wo() { + return this.rgb().formatRgb(); +} +function oi(t) { + var e, i; + return t = (t + "").trim().toLowerCase(), (e = iu.exec(t)) ? (i = e[1].length, e = parseInt(e[1], 16), i === 6 ? Bo(e) : i === 3 ? new pt(e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | e & 240, (e & 15) << 4 | e & 15, 1) : i === 8 ? ki(e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, (e & 255) / 255) : i === 4 ? ki(e >> 12 & 15 | e >> 8 & 240, e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | e & 240, ((e & 15) << 4 | e & 15) / 255) : null) : (e = ru.exec(t)) ? new pt(e[1], e[2], e[3], 1) : (e = nu.exec(t)) ? new pt(e[1] * 255 / 100, e[2] * 255 / 100, e[3] * 255 / 100, 1) : (e = ou.exec(t)) ? ki(e[1], e[2], e[3], e[4]) : (e = su.exec(t)) ? ki(e[1] * 255 / 100, e[2] * 255 / 100, e[3] * 255 / 100, e[4]) : (e = au.exec(t)) ? Lo(e[1], e[2] / 100, e[3] / 100, 1) : (e = lu.exec(t)) ? Lo(e[1], e[2] / 100, e[3] / 100, e[4]) : So.hasOwnProperty(t) ? Bo(So[t]) : t === "transparent" ? new pt(NaN, NaN, NaN, 0) : null; +} +function Bo(t) { + return new pt(t >> 16 & 255, t >> 8 & 255, t & 255, 1); +} +function ki(t, e, i, r) { + return r <= 0 && (t = e = i = NaN), new pt(t, e, i, r); +} +function uu(t) { + return t instanceof pi || (t = oi(t)), t ? (t = t.rgb(), new pt(t.r, t.g, t.b, t.opacity)) : new pt(); +} +function Qr(t, e, i, r) { + return arguments.length === 1 ? uu(t) : new pt(t, e, i, r ?? 1); +} +function pt(t, e, i, r) { + this.r = +t, this.g = +e, this.b = +i, this.opacity = +r; +} +Sn(pt, Qr, Js(pi, { + brighter(t) { + return t = t == null ? Ui : Math.pow(Ui, t), new pt(this.r * t, this.g * t, this.b * t, this.opacity); + }, + darker(t) { + return t = t == null ? ri : Math.pow(ri, t), new pt(this.r * t, this.g * t, this.b * t, this.opacity); + }, + rgb() { + return this; + }, + clamp() { + return new pt(ue(this.r), ue(this.g), ue(this.b), Yi(this.opacity)); + }, + displayable() { + return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1; + }, + hex: Fo, + // Deprecated! Use color.formatHex. + formatHex: Fo, + formatHex8: fu, + formatRgb: Ao, + toString: Ao +})); +function Fo() { + return `#${ce(this.r)}${ce(this.g)}${ce(this.b)}`; +} +function fu() { + return `#${ce(this.r)}${ce(this.g)}${ce(this.b)}${ce((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; +} +function Ao() { + const t = Yi(this.opacity); + return `${t === 1 ? "rgb(" : "rgba("}${ue(this.r)}, ${ue(this.g)}, ${ue(this.b)}${t === 1 ? ")" : `, ${t})`}`; +} +function Yi(t) { + return isNaN(t) ? 1 : Math.max(0, Math.min(1, t)); +} +function ue(t) { + return Math.max(0, Math.min(255, Math.round(t) || 0)); +} +function ce(t) { + return t = ue(t), (t < 16 ? "0" : "") + t.toString(16); +} +function Lo(t, e, i, r) { + return r <= 0 ? t = e = i = NaN : i <= 0 || i >= 1 ? t = e = NaN : e <= 0 && (t = NaN), new wt(t, e, i, r); +} +function Qs(t) { + if (t instanceof wt) + return new wt(t.h, t.s, t.l, t.opacity); + if (t instanceof pi || (t = oi(t)), !t) + return new wt(); + if (t instanceof wt) + return t; + t = t.rgb(); + var e = t.r / 255, i = t.g / 255, r = t.b / 255, n = Math.min(e, i, r), o = Math.max(e, i, r), s = NaN, a = o - n, l = (o + n) / 2; + return a ? (e === o ? s = (i - r) / a + (i < r) * 6 : i === o ? s = (r - e) / a + 2 : s = (e - i) / a + 4, a /= l < 0.5 ? o + n : 2 - o - n, s *= 60) : a = l > 0 && l < 1 ? 0 : s, new wt(s, a, l, t.opacity); +} +function du(t, e, i, r) { + return arguments.length === 1 ? Qs(t) : new wt(t, e, i, r ?? 1); +} +function wt(t, e, i, r) { + this.h = +t, this.s = +e, this.l = +i, this.opacity = +r; +} +Sn(wt, du, Js(pi, { + brighter(t) { + return t = t == null ? Ui : Math.pow(Ui, t), new wt(this.h, this.s, this.l * t, this.opacity); + }, + darker(t) { + return t = t == null ? ri : Math.pow(ri, t), new wt(this.h, this.s, this.l * t, this.opacity); + }, + rgb() { + var t = this.h % 360 + (this.h < 0) * 360, e = isNaN(t) || isNaN(this.s) ? 0 : this.s, i = this.l, r = i + (i < 0.5 ? i : 1 - i) * e, n = 2 * i - r; + return new pt( + Dr(t >= 240 ? t - 240 : t + 120, n, r), + Dr(t, n, r), + Dr(t < 120 ? t + 240 : t - 120, n, r), + this.opacity + ); + }, + clamp() { + return new wt(Eo(this.h), Si(this.s), Si(this.l), Yi(this.opacity)); + }, + displayable() { + return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1; + }, + formatHsl() { + const t = Yi(this.opacity); + return `${t === 1 ? "hsl(" : "hsla("}${Eo(this.h)}, ${Si(this.s) * 100}%, ${Si(this.l) * 100}%${t === 1 ? ")" : `, ${t})`}`; + } +})); +function Eo(t) { + return t = (t || 0) % 360, t < 0 ? t + 360 : t; +} +function Si(t) { + return Math.max(0, Math.min(1, t || 0)); +} +function Dr(t, e, i) { + return (t < 60 ? e + (i - e) * t / 60 : t < 180 ? i : t < 240 ? e + (i - e) * (240 - t) / 60 : e) * 255; +} +const vn = (t) => () => t; +function ta(t, e) { + return function(i) { + return t + i * e; + }; +} +function pu(t, e, i) { + return t = Math.pow(t, i), e = Math.pow(e, i) - t, i = 1 / i, function(r) { + return Math.pow(t + r * e, i); + }; +} +function l1(t, e) { + var i = e - t; + return i ? ta(t, i > 180 || i < -180 ? i - 360 * Math.round(i / 360) : i) : vn(isNaN(t) ? e : t); +} +function gu(t) { + return (t = +t) == 1 ? ea : function(e, i) { + return i - e ? pu(e, i, t) : vn(isNaN(e) ? i : e); + }; +} +function ea(t, e) { + var i = e - t; + return i ? ta(t, i) : vn(isNaN(t) ? e : t); +} +const Mo = function t(e) { + var i = gu(e); + function r(n, o) { + var s = i((n = Qr(n)).r, (o = Qr(o)).r), a = i(n.g, o.g), l = i(n.b, o.b), h = ea(n.opacity, o.opacity); + return function(u) { + return n.r = s(u), n.g = a(u), n.b = l(u), n.opacity = h(u), n + ""; + }; + } + return r.gamma = t, r; +}(1); +function te(t, e) { + return t = +t, e = +e, function(i) { + return t * (1 - i) + e * i; + }; +} +var tn = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, Nr = new RegExp(tn.source, "g"); +function mu(t) { + return function() { + return t; + }; +} +function yu(t) { + return function(e) { + return t(e) + ""; + }; +} +function _u(t, e) { + var i = tn.lastIndex = Nr.lastIndex = 0, r, n, o, s = -1, a = [], l = []; + for (t = t + "", e = e + ""; (r = tn.exec(t)) && (n = Nr.exec(e)); ) + (o = n.index) > i && (o = e.slice(i, o), a[s] ? a[s] += o : a[++s] = o), (r = r[0]) === (n = n[0]) ? a[s] ? a[s] += n : a[++s] = n : (a[++s] = null, l.push({ i: s, x: te(r, n) })), i = Nr.lastIndex; + return i < e.length && (o = e.slice(i), a[s] ? a[s] += o : a[++s] = o), a.length < 2 ? l[0] ? yu(l[0].x) : mu(e) : (e = l.length, function(h) { + for (var u = 0, f; u < e; ++u) + a[(f = l[u]).i] = f.x(h); + return a.join(""); + }); +} +var Oo = 180 / Math.PI, en = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 +}; +function ia(t, e, i, r, n, o) { + var s, a, l; + return (s = Math.sqrt(t * t + e * e)) && (t /= s, e /= s), (l = t * i + e * r) && (i -= t * l, r -= e * l), (a = Math.sqrt(i * i + r * r)) && (i /= a, r /= a, l /= a), t * r < e * i && (t = -t, e = -e, l = -l, s = -s), { + translateX: n, + translateY: o, + rotate: Math.atan2(e, t) * Oo, + skewX: Math.atan(l) * Oo, + scaleX: s, + scaleY: a + }; +} +var vi; +function Cu(t) { + const e = new (typeof DOMMatrix == "function" ? DOMMatrix : WebKitCSSMatrix)(t + ""); + return e.isIdentity ? en : ia(e.a, e.b, e.c, e.d, e.e, e.f); +} +function xu(t) { + return t == null || (vi || (vi = document.createElementNS("http://www.w3.org/2000/svg", "g")), vi.setAttribute("transform", t), !(t = vi.transform.baseVal.consolidate())) ? en : (t = t.matrix, ia(t.a, t.b, t.c, t.d, t.e, t.f)); +} +function ra(t, e, i, r) { + function n(h) { + return h.length ? h.pop() + " " : ""; + } + function o(h, u, f, c, d, m) { + if (h !== f || u !== c) { + var S = d.push("translate(", null, e, null, i); + m.push({ i: S - 4, x: te(h, f) }, { i: S - 2, x: te(u, c) }); + } else + (f || c) && d.push("translate(" + f + e + c + i); + } + function s(h, u, f, c) { + h !== u ? (h - u > 180 ? u += 360 : u - h > 180 && (h += 360), c.push({ i: f.push(n(f) + "rotate(", null, r) - 2, x: te(h, u) })) : u && f.push(n(f) + "rotate(" + u + r); + } + function a(h, u, f, c) { + h !== u ? c.push({ i: f.push(n(f) + "skewX(", null, r) - 2, x: te(h, u) }) : u && f.push(n(f) + "skewX(" + u + r); + } + function l(h, u, f, c, d, m) { + if (h !== f || u !== c) { + var S = d.push(n(d) + "scale(", null, ",", null, ")"); + m.push({ i: S - 4, x: te(h, f) }, { i: S - 2, x: te(u, c) }); + } else + (f !== 1 || c !== 1) && d.push(n(d) + "scale(" + f + "," + c + ")"); + } + return function(h, u) { + var f = [], c = []; + return h = t(h), u = t(u), o(h.translateX, h.translateY, u.translateX, u.translateY, f, c), s(h.rotate, u.rotate, f, c), a(h.skewX, u.skewX, f, c), l(h.scaleX, h.scaleY, u.scaleX, u.scaleY, f, c), h = u = null, function(d) { + for (var m = -1, S = c.length, O; ++m < S; ) + f[(O = c[m]).i] = O.x(d); + return f.join(""); + }; + }; +} +var bu = ra(Cu, "px, ", "px)", "deg)"), Tu = ra(xu, ", ", ")", ")"), Le = 0, Ve = 0, He = 0, na = 1e3, Gi, Xe, Vi = 0, pe = 0, dr = 0, si = typeof performance == "object" && performance.now ? performance : Date, oa = typeof window == "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(t) { + setTimeout(t, 17); +}; +function wn() { + return pe || (oa(ku), pe = si.now() + dr); +} +function ku() { + pe = 0; +} +function Xi() { + this._call = this._time = this._next = null; +} +Xi.prototype = sa.prototype = { + constructor: Xi, + restart: function(t, e, i) { + if (typeof t != "function") + throw new TypeError("callback is not a function"); + i = (i == null ? wn() : +i) + (e == null ? 0 : +e), !this._next && Xe !== this && (Xe ? Xe._next = this : Gi = this, Xe = this), this._call = t, this._time = i, rn(); + }, + stop: function() { + this._call && (this._call = null, this._time = 1 / 0, rn()); + } +}; +function sa(t, e, i) { + var r = new Xi(); + return r.restart(t, e, i), r; +} +function Su() { + wn(), ++Le; + for (var t = Gi, e; t; ) + (e = pe - t._time) >= 0 && t._call.call(void 0, e), t = t._next; + --Le; +} +function $o() { + pe = (Vi = si.now()) + dr, Le = Ve = 0; + try { + Su(); + } finally { + Le = 0, wu(), pe = 0; + } +} +function vu() { + var t = si.now(), e = t - Vi; + e > na && (dr -= e, Vi = t); +} +function wu() { + for (var t, e = Gi, i, r = 1 / 0; e; ) + e._call ? (r > e._time && (r = e._time), t = e, e = e._next) : (i = e._next, e._next = null, e = t ? t._next = i : Gi = i); + Xe = t, rn(r); +} +function rn(t) { + if (!Le) { + Ve && (Ve = clearTimeout(Ve)); + var e = t - pe; + e > 24 ? (t < 1 / 0 && (Ve = setTimeout($o, t - si.now() - dr)), He && (He = clearInterval(He))) : (He || (Vi = si.now(), He = setInterval(vu, na)), Le = 1, oa($o)); + } +} +function Io(t, e, i) { + var r = new Xi(); + return e = e == null ? 0 : +e, r.restart((n) => { + r.stop(), t(n + e); + }, e, i), r; +} +var Bu = Ps("start", "end", "cancel", "interrupt"), Fu = [], aa = 0, Do = 1, nn = 2, $i = 3, No = 4, on = 5, Ii = 6; +function pr(t, e, i, r, n, o) { + var s = t.__transition; + if (!s) + t.__transition = {}; + else if (i in s) + return; + Au(t, i, { + name: e, + index: r, + // For context during callback. + group: n, + // For context during callback. + on: Bu, + tween: Fu, + time: o.time, + delay: o.delay, + duration: o.duration, + ease: o.ease, + timer: null, + state: aa + }); +} +function Bn(t, e) { + var i = At(t, e); + if (i.state > aa) + throw new Error("too late; already scheduled"); + return i; +} +function It(t, e) { + var i = At(t, e); + if (i.state > $i) + throw new Error("too late; already running"); + return i; +} +function At(t, e) { + var i = t.__transition; + if (!i || !(i = i[e])) + throw new Error("transition not found"); + return i; +} +function Au(t, e, i) { + var r = t.__transition, n; + r[e] = i, i.timer = sa(o, 0, i.time); + function o(h) { + i.state = Do, i.timer.restart(s, i.delay, i.time), i.delay <= h && s(h - i.delay); + } + function s(h) { + var u, f, c, d; + if (i.state !== Do) + return l(); + for (u in r) + if (d = r[u], d.name === i.name) { + if (d.state === $i) + return Io(s); + d.state === No ? (d.state = Ii, d.timer.stop(), d.on.call("interrupt", t, t.__data__, d.index, d.group), delete r[u]) : +u < e && (d.state = Ii, d.timer.stop(), d.on.call("cancel", t, t.__data__, d.index, d.group), delete r[u]); + } + if (Io(function() { + i.state === $i && (i.state = No, i.timer.restart(a, i.delay, i.time), a(h)); + }), i.state = nn, i.on.call("start", t, t.__data__, i.index, i.group), i.state === nn) { + for (i.state = $i, n = new Array(c = i.tween.length), u = 0, f = -1; u < c; ++u) + (d = i.tween[u].value.call(t, t.__data__, i.index, i.group)) && (n[++f] = d); + n.length = f + 1; + } + } + function a(h) { + for (var u = h < i.duration ? i.ease.call(null, h / i.duration) : (i.timer.restart(l), i.state = on, 1), f = -1, c = n.length; ++f < c; ) + n[f].call(t, u); + i.state === on && (i.on.call("end", t, t.__data__, i.index, i.group), l()); + } + function l() { + i.state = Ii, i.timer.stop(), delete r[e]; + for (var h in r) + return; + delete t.__transition; + } +} +function Lu(t, e) { + var i = t.__transition, r, n, o = !0, s; + if (i) { + e = e == null ? null : e + ""; + for (s in i) { + if ((r = i[s]).name !== e) { + o = !1; + continue; + } + n = r.state > nn && r.state < on, r.state = Ii, r.timer.stop(), r.on.call(n ? "interrupt" : "cancel", t, t.__data__, r.index, r.group), delete i[s]; + } + o && delete t.__transition; + } +} +function Eu(t) { + return this.each(function() { + Lu(this, t); + }); +} +function Mu(t, e) { + var i, r; + return function() { + var n = It(this, t), o = n.tween; + if (o !== i) { + r = i = o; + for (var s = 0, a = r.length; s < a; ++s) + if (r[s].name === e) { + r = r.slice(), r.splice(s, 1); + break; + } + } + n.tween = r; + }; +} +function Ou(t, e, i) { + var r, n; + if (typeof i != "function") + throw new Error(); + return function() { + var o = It(this, t), s = o.tween; + if (s !== r) { + n = (r = s).slice(); + for (var a = { name: e, value: i }, l = 0, h = n.length; l < h; ++l) + if (n[l].name === e) { + n[l] = a; + break; + } + l === h && n.push(a); + } + o.tween = n; + }; +} +function $u(t, e) { + var i = this._id; + if (t += "", arguments.length < 2) { + for (var r = At(this.node(), i).tween, n = 0, o = r.length, s; n < o; ++n) + if ((s = r[n]).name === t) + return s.value; + return null; + } + return this.each((e == null ? Mu : Ou)(i, t, e)); +} +function Fn(t, e, i) { + var r = t._id; + return t.each(function() { + var n = It(this, r); + (n.value || (n.value = {}))[e] = i.apply(this, arguments); + }), function(n) { + return At(n, r).value[e]; + }; +} +function la(t, e) { + var i; + return (typeof e == "number" ? te : e instanceof oi ? Mo : (i = oi(e)) ? (e = i, Mo) : _u)(t, e); +} +function Iu(t) { + return function() { + this.removeAttribute(t); + }; +} +function Du(t) { + return function() { + this.removeAttributeNS(t.space, t.local); + }; +} +function Nu(t, e, i) { + var r, n = i + "", o; + return function() { + var s = this.getAttribute(t); + return s === n ? null : s === r ? o : o = e(r = s, i); + }; +} +function Ru(t, e, i) { + var r, n = i + "", o; + return function() { + var s = this.getAttributeNS(t.space, t.local); + return s === n ? null : s === r ? o : o = e(r = s, i); + }; +} +function Pu(t, e, i) { + var r, n, o; + return function() { + var s, a = i(this), l; + return a == null ? void this.removeAttribute(t) : (s = this.getAttribute(t), l = a + "", s === l ? null : s === r && l === n ? o : (n = l, o = e(r = s, a))); + }; +} +function qu(t, e, i) { + var r, n, o; + return function() { + var s, a = i(this), l; + return a == null ? void this.removeAttributeNS(t.space, t.local) : (s = this.getAttributeNS(t.space, t.local), l = a + "", s === l ? null : s === r && l === n ? o : (n = l, o = e(r = s, a))); + }; +} +function zu(t, e) { + var i = fr(t), r = i === "transform" ? Tu : la; + return this.attrTween(t, typeof e == "function" ? (i.local ? qu : Pu)(i, r, Fn(this, "attr." + t, e)) : e == null ? (i.local ? Du : Iu)(i) : (i.local ? Ru : Nu)(i, r, e)); +} +function Wu(t, e) { + return function(i) { + this.setAttribute(t, e.call(this, i)); + }; +} +function Hu(t, e) { + return function(i) { + this.setAttributeNS(t.space, t.local, e.call(this, i)); + }; +} +function ju(t, e) { + var i, r; + function n() { + var o = e.apply(this, arguments); + return o !== r && (i = (r = o) && Hu(t, o)), i; + } + return n._value = e, n; +} +function Uu(t, e) { + var i, r; + function n() { + var o = e.apply(this, arguments); + return o !== r && (i = (r = o) && Wu(t, o)), i; + } + return n._value = e, n; +} +function Yu(t, e) { + var i = "attr." + t; + if (arguments.length < 2) + return (i = this.tween(i)) && i._value; + if (e == null) + return this.tween(i, null); + if (typeof e != "function") + throw new Error(); + var r = fr(t); + return this.tween(i, (r.local ? ju : Uu)(r, e)); +} +function Gu(t, e) { + return function() { + Bn(this, t).delay = +e.apply(this, arguments); + }; +} +function Vu(t, e) { + return e = +e, function() { + Bn(this, t).delay = e; + }; +} +function Xu(t) { + var e = this._id; + return arguments.length ? this.each((typeof t == "function" ? Gu : Vu)(e, t)) : At(this.node(), e).delay; +} +function Ku(t, e) { + return function() { + It(this, t).duration = +e.apply(this, arguments); + }; +} +function Zu(t, e) { + return e = +e, function() { + It(this, t).duration = e; + }; +} +function Ju(t) { + var e = this._id; + return arguments.length ? this.each((typeof t == "function" ? Ku : Zu)(e, t)) : At(this.node(), e).duration; +} +function Qu(t, e) { + if (typeof e != "function") + throw new Error(); + return function() { + It(this, t).ease = e; + }; +} +function tf(t) { + var e = this._id; + return arguments.length ? this.each(Qu(e, t)) : At(this.node(), e).ease; +} +function ef(t, e) { + return function() { + var i = e.apply(this, arguments); + if (typeof i != "function") + throw new Error(); + It(this, t).ease = i; + }; +} +function rf(t) { + if (typeof t != "function") + throw new Error(); + return this.each(ef(this._id, t)); +} +function nf(t) { + typeof t != "function" && (t = Ws(t)); + for (var e = this._groups, i = e.length, r = new Array(i), n = 0; n < i; ++n) + for (var o = e[n], s = o.length, a = r[n] = [], l, h = 0; h < s; ++h) + (l = o[h]) && t.call(l, l.__data__, h, o) && a.push(l); + return new Vt(r, this._parents, this._name, this._id); +} +function of(t) { + if (t._id !== this._id) + throw new Error(); + for (var e = this._groups, i = t._groups, r = e.length, n = i.length, o = Math.min(r, n), s = new Array(r), a = 0; a < o; ++a) + for (var l = e[a], h = i[a], u = l.length, f = s[a] = new Array(u), c, d = 0; d < u; ++d) + (c = l[d] || h[d]) && (f[d] = c); + for (; a < r; ++a) + s[a] = e[a]; + return new Vt(s, this._parents, this._name, this._id); +} +function sf(t) { + return (t + "").trim().split(/^|\s+/).every(function(e) { + var i = e.indexOf("."); + return i >= 0 && (e = e.slice(0, i)), !e || e === "start"; + }); +} +function af(t, e, i) { + var r, n, o = sf(e) ? Bn : It; + return function() { + var s = o(this, t), a = s.on; + a !== r && (n = (r = a).copy()).on(e, i), s.on = n; + }; +} +function lf(t, e) { + var i = this._id; + return arguments.length < 2 ? At(this.node(), i).on.on(t) : this.each(af(i, t, e)); +} +function hf(t) { + return function() { + var e = this.parentNode; + for (var i in this.__transition) + if (+i !== t) + return; + e && e.removeChild(this); + }; +} +function cf() { + return this.on("end.remove", hf(this._id)); +} +function uf(t) { + var e = this._name, i = this._id; + typeof t != "function" && (t = Tn(t)); + for (var r = this._groups, n = r.length, o = new Array(n), s = 0; s < n; ++s) + for (var a = r[s], l = a.length, h = o[s] = new Array(l), u, f, c = 0; c < l; ++c) + (u = a[c]) && (f = t.call(u, u.__data__, c, a)) && ("__data__" in u && (f.__data__ = u.__data__), h[c] = f, pr(h[c], e, i, c, h, At(u, i))); + return new Vt(o, this._parents, e, i); +} +function ff(t) { + var e = this._name, i = this._id; + typeof t != "function" && (t = zs(t)); + for (var r = this._groups, n = r.length, o = [], s = [], a = 0; a < n; ++a) + for (var l = r[a], h = l.length, u, f = 0; f < h; ++f) + if (u = l[f]) { + for (var c = t.call(u, u.__data__, f, l), d, m = At(u, i), S = 0, O = c.length; S < O; ++S) + (d = c[S]) && pr(d, e, i, S, c, m); + o.push(c), s.push(u); + } + return new Vt(o, s, e, i); +} +var df = di.prototype.constructor; +function pf() { + return new df(this._groups, this._parents); +} +function gf(t, e) { + var i, r, n; + return function() { + var o = Ae(this, t), s = (this.style.removeProperty(t), Ae(this, t)); + return o === s ? null : o === i && s === r ? n : n = e(i = o, r = s); + }; +} +function ha(t) { + return function() { + this.style.removeProperty(t); + }; +} +function mf(t, e, i) { + var r, n = i + "", o; + return function() { + var s = Ae(this, t); + return s === n ? null : s === r ? o : o = e(r = s, i); + }; +} +function yf(t, e, i) { + var r, n, o; + return function() { + var s = Ae(this, t), a = i(this), l = a + ""; + return a == null && (l = a = (this.style.removeProperty(t), Ae(this, t))), s === l ? null : s === r && l === n ? o : (n = l, o = e(r = s, a)); + }; +} +function _f(t, e) { + var i, r, n, o = "style." + e, s = "end." + o, a; + return function() { + var l = It(this, t), h = l.on, u = l.value[o] == null ? a || (a = ha(e)) : void 0; + (h !== i || n !== u) && (r = (i = h).copy()).on(s, n = u), l.on = r; + }; +} +function Cf(t, e, i) { + var r = (t += "") == "transform" ? bu : la; + return e == null ? this.styleTween(t, gf(t, r)).on("end.style." + t, ha(t)) : typeof e == "function" ? this.styleTween(t, yf(t, r, Fn(this, "style." + t, e))).each(_f(this._id, t)) : this.styleTween(t, mf(t, r, e), i).on("end.style." + t, null); +} +function xf(t, e, i) { + return function(r) { + this.style.setProperty(t, e.call(this, r), i); + }; +} +function bf(t, e, i) { + var r, n; + function o() { + var s = e.apply(this, arguments); + return s !== n && (r = (n = s) && xf(t, s, i)), r; + } + return o._value = e, o; +} +function Tf(t, e, i) { + var r = "style." + (t += ""); + if (arguments.length < 2) + return (r = this.tween(r)) && r._value; + if (e == null) + return this.tween(r, null); + if (typeof e != "function") + throw new Error(); + return this.tween(r, bf(t, e, i ?? "")); +} +function kf(t) { + return function() { + this.textContent = t; + }; +} +function Sf(t) { + return function() { + var e = t(this); + this.textContent = e ?? ""; + }; +} +function vf(t) { + return this.tween("text", typeof t == "function" ? Sf(Fn(this, "text", t)) : kf(t == null ? "" : t + "")); +} +function wf(t) { + return function(e) { + this.textContent = t.call(this, e); + }; +} +function Bf(t) { + var e, i; + function r() { + var n = t.apply(this, arguments); + return n !== i && (e = (i = n) && wf(n)), e; + } + return r._value = t, r; +} +function Ff(t) { + var e = "text"; + if (arguments.length < 1) + return (e = this.tween(e)) && e._value; + if (t == null) + return this.tween(e, null); + if (typeof t != "function") + throw new Error(); + return this.tween(e, Bf(t)); +} +function Af() { + for (var t = this._name, e = this._id, i = ca(), r = this._groups, n = r.length, o = 0; o < n; ++o) + for (var s = r[o], a = s.length, l, h = 0; h < a; ++h) + if (l = s[h]) { + var u = At(l, e); + pr(l, t, i, h, s, { + time: u.time + u.delay + u.duration, + delay: 0, + duration: u.duration, + ease: u.ease + }); + } + return new Vt(r, this._parents, t, i); +} +function Lf() { + var t, e, i = this, r = i._id, n = i.size(); + return new Promise(function(o, s) { + var a = { value: s }, l = { value: function() { + --n === 0 && o(); + } }; + i.each(function() { + var h = It(this, r), u = h.on; + u !== t && (e = (t = u).copy(), e._.cancel.push(a), e._.interrupt.push(a), e._.end.push(l)), h.on = e; + }), n === 0 && o(); + }); +} +var Ef = 0; +function Vt(t, e, i, r) { + this._groups = t, this._parents = e, this._name = i, this._id = r; +} +function ca() { + return ++Ef; +} +var Ht = di.prototype; +Vt.prototype = { + constructor: Vt, + select: uf, + selectAll: ff, + selectChild: Ht.selectChild, + selectChildren: Ht.selectChildren, + filter: nf, + merge: of, + selection: pf, + transition: Af, + call: Ht.call, + nodes: Ht.nodes, + node: Ht.node, + size: Ht.size, + empty: Ht.empty, + each: Ht.each, + on: lf, + attr: zu, + attrTween: Yu, + style: Cf, + styleTween: Tf, + text: vf, + textTween: Ff, + remove: cf, + tween: $u, + delay: Xu, + duration: Ju, + ease: tf, + easeVarying: rf, + end: Lf, + [Symbol.iterator]: Ht[Symbol.iterator] +}; +function Mf(t) { + return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; +} +var Of = { + time: null, + // Set on use. + delay: 0, + duration: 250, + ease: Mf +}; +function $f(t, e) { + for (var i; !(i = t.__transition) || !(i = i[e]); ) + if (!(t = t.parentNode)) + throw new Error(`transition ${e} not found`); + return i; +} +function If(t) { + var e, i; + t instanceof Vt ? (e = t._id, t = t._name) : (e = ca(), (i = Of).time = wn(), t = t == null ? null : t + ""); + for (var r = this._groups, n = r.length, o = 0; o < n; ++o) + for (var s = r[o], a = s.length, l, h = 0; h < a; ++h) + (l = s[h]) && pr(l, t, e, h, s, i || $f(l, e)); + return new Vt(r, this._parents, t, e); +} +di.prototype.interrupt = Eu; +di.prototype.transition = If; +const h1 = Math.abs, c1 = Math.atan2, u1 = Math.cos, f1 = Math.max, d1 = Math.min, p1 = Math.sin, g1 = Math.sqrt, Ro = 1e-12, An = Math.PI, Po = An / 2, m1 = 2 * An; +function y1(t) { + return t > 1 ? 0 : t < -1 ? An : Math.acos(t); +} +function _1(t) { + return t >= 1 ? Po : t <= -1 ? -Po : Math.asin(t); +} +function ua(t) { + this._context = t; +} +ua.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line; + }, + point: function(t, e) { + switch (t = +t, e = +e, this._point) { + case 0: + this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); + break; + case 1: + this._point = 2; + default: + this._context.lineTo(t, e); + break; + } + } +}; +function Df(t) { + return new ua(t); +} +class fa { + constructor(e, i) { + this._context = e, this._x = i; + } + areaStart() { + this._line = 0; + } + areaEnd() { + this._line = NaN; + } + lineStart() { + this._point = 0; + } + lineEnd() { + (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line; + } + point(e, i) { + switch (e = +e, i = +i, this._point) { + case 0: { + this._point = 1, this._line ? this._context.lineTo(e, i) : this._context.moveTo(e, i); + break; + } + case 1: + this._point = 2; + default: { + this._x ? this._context.bezierCurveTo(this._x0 = (this._x0 + e) / 2, this._y0, this._x0, i, e, i) : this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + i) / 2, e, this._y0, e, i); + break; + } + } + this._x0 = e, this._y0 = i; + } +} +function Nf(t) { + return new fa(t, !0); +} +function Rf(t) { + return new fa(t, !1); +} +function ie() { +} +function Ki(t, e, i) { + t._context.bezierCurveTo( + (2 * t._x0 + t._x1) / 3, + (2 * t._y0 + t._y1) / 3, + (t._x0 + 2 * t._x1) / 3, + (t._y0 + 2 * t._y1) / 3, + (t._x0 + 4 * t._x1 + e) / 6, + (t._y0 + 4 * t._y1 + i) / 6 + ); +} +function gr(t) { + this._context = t; +} +gr.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._y0 = this._y1 = NaN, this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 3: + Ki(this, this._x1, this._y1); + case 2: + this._context.lineTo(this._x1, this._y1); + break; + } + (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line; + }, + point: function(t, e) { + switch (t = +t, e = +e, this._point) { + case 0: + this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3, this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); + default: + Ki(this, t, e); + break; + } + this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e; + } +}; +function Pf(t) { + return new gr(t); +} +function da(t) { + this._context = t; +} +da.prototype = { + areaStart: ie, + areaEnd: ie, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN, this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x2, this._y2), this._context.closePath(); + break; + } + case 2: { + this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3), this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3), this._context.closePath(); + break; + } + case 3: { + this.point(this._x2, this._y2), this.point(this._x3, this._y3), this.point(this._x4, this._y4); + break; + } + } + }, + point: function(t, e) { + switch (t = +t, e = +e, this._point) { + case 0: + this._point = 1, this._x2 = t, this._y2 = e; + break; + case 1: + this._point = 2, this._x3 = t, this._y3 = e; + break; + case 2: + this._point = 3, this._x4 = t, this._y4 = e, this._context.moveTo((this._x0 + 4 * this._x1 + t) / 6, (this._y0 + 4 * this._y1 + e) / 6); + break; + default: + Ki(this, t, e); + break; + } + this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e; + } +}; +function qf(t) { + return new da(t); +} +function pa(t) { + this._context = t; +} +pa.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._y0 = this._y1 = NaN, this._point = 0; + }, + lineEnd: function() { + (this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line; + }, + point: function(t, e) { + switch (t = +t, e = +e, this._point) { + case 0: + this._point = 1; + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + var i = (this._x0 + 4 * this._x1 + t) / 6, r = (this._y0 + 4 * this._y1 + e) / 6; + this._line ? this._context.lineTo(i, r) : this._context.moveTo(i, r); + break; + case 3: + this._point = 4; + default: + Ki(this, t, e); + break; + } + this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e; + } +}; +function zf(t) { + return new pa(t); +} +function ga(t, e) { + this._basis = new gr(t), this._beta = e; +} +ga.prototype = { + lineStart: function() { + this._x = [], this._y = [], this._basis.lineStart(); + }, + lineEnd: function() { + var t = this._x, e = this._y, i = t.length - 1; + if (i > 0) + for (var r = t[0], n = e[0], o = t[i] - r, s = e[i] - n, a = -1, l; ++a <= i; ) + l = a / i, this._basis.point( + this._beta * t[a] + (1 - this._beta) * (r + l * o), + this._beta * e[a] + (1 - this._beta) * (n + l * s) + ); + this._x = this._y = null, this._basis.lineEnd(); + }, + point: function(t, e) { + this._x.push(+t), this._y.push(+e); + } +}; +const Wf = function t(e) { + function i(r) { + return e === 1 ? new gr(r) : new ga(r, e); + } + return i.beta = function(r) { + return t(+r); + }, i; +}(0.85); +function Zi(t, e, i) { + t._context.bezierCurveTo( + t._x1 + t._k * (t._x2 - t._x0), + t._y1 + t._k * (t._y2 - t._y0), + t._x2 + t._k * (t._x1 - e), + t._y2 + t._k * (t._y1 - i), + t._x2, + t._y2 + ); +} +function Ln(t, e) { + this._context = t, this._k = (1 - e) / 6; +} +Ln.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: + this._context.lineTo(this._x2, this._y2); + break; + case 3: + Zi(this, this._x1, this._y1); + break; + } + (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line; + }, + point: function(t, e) { + switch (t = +t, e = +e, this._point) { + case 0: + this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); + break; + case 1: + this._point = 2, this._x1 = t, this._y1 = e; + break; + case 2: + this._point = 3; + default: + Zi(this, t, e); + break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e; + } +}; +const Hf = function t(e) { + function i(r) { + return new Ln(r, e); + } + return i.tension = function(r) { + return t(+r); + }, i; +}(0); +function En(t, e) { + this._context = t, this._k = (1 - e) / 6; +} +En.prototype = { + areaStart: ie, + areaEnd: ie, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN, this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x3, this._y3), this._context.closePath(); + break; + } + case 2: { + this._context.lineTo(this._x3, this._y3), this._context.closePath(); + break; + } + case 3: { + this.point(this._x3, this._y3), this.point(this._x4, this._y4), this.point(this._x5, this._y5); + break; + } + } + }, + point: function(t, e) { + switch (t = +t, e = +e, this._point) { + case 0: + this._point = 1, this._x3 = t, this._y3 = e; + break; + case 1: + this._point = 2, this._context.moveTo(this._x4 = t, this._y4 = e); + break; + case 2: + this._point = 3, this._x5 = t, this._y5 = e; + break; + default: + Zi(this, t, e); + break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e; + } +}; +const jf = function t(e) { + function i(r) { + return new En(r, e); + } + return i.tension = function(r) { + return t(+r); + }, i; +}(0); +function Mn(t, e) { + this._context = t, this._k = (1 - e) / 6; +} +Mn.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._point = 0; + }, + lineEnd: function() { + (this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line; + }, + point: function(t, e) { + switch (t = +t, e = +e, this._point) { + case 0: + this._point = 1; + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3, this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); + break; + case 3: + this._point = 4; + default: + Zi(this, t, e); + break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e; + } +}; +const Uf = function t(e) { + function i(r) { + return new Mn(r, e); + } + return i.tension = function(r) { + return t(+r); + }, i; +}(0); +function On(t, e, i) { + var r = t._x1, n = t._y1, o = t._x2, s = t._y2; + if (t._l01_a > Ro) { + var a = 2 * t._l01_2a + 3 * t._l01_a * t._l12_a + t._l12_2a, l = 3 * t._l01_a * (t._l01_a + t._l12_a); + r = (r * a - t._x0 * t._l12_2a + t._x2 * t._l01_2a) / l, n = (n * a - t._y0 * t._l12_2a + t._y2 * t._l01_2a) / l; + } + if (t._l23_a > Ro) { + var h = 2 * t._l23_2a + 3 * t._l23_a * t._l12_a + t._l12_2a, u = 3 * t._l23_a * (t._l23_a + t._l12_a); + o = (o * h + t._x1 * t._l23_2a - e * t._l12_2a) / u, s = (s * h + t._y1 * t._l23_2a - i * t._l12_2a) / u; + } + t._context.bezierCurveTo(r, n, o, s, t._x2, t._y2); +} +function ma(t, e) { + this._context = t, this._alpha = e; +} +ma.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: + this._context.lineTo(this._x2, this._y2); + break; + case 3: + this.point(this._x2, this._y2); + break; + } + (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line; + }, + point: function(t, e) { + if (t = +t, e = +e, this._point) { + var i = this._x2 - t, r = this._y2 - e; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(i * i + r * r, this._alpha)); + } + switch (this._point) { + case 0: + this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + default: + On(this, t, e); + break; + } + this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e; + } +}; +const Yf = function t(e) { + function i(r) { + return e ? new ma(r, e) : new Ln(r, 0); + } + return i.alpha = function(r) { + return t(+r); + }, i; +}(0.5); +function ya(t, e) { + this._context = t, this._alpha = e; +} +ya.prototype = { + areaStart: ie, + areaEnd: ie, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x3, this._y3), this._context.closePath(); + break; + } + case 2: { + this._context.lineTo(this._x3, this._y3), this._context.closePath(); + break; + } + case 3: { + this.point(this._x3, this._y3), this.point(this._x4, this._y4), this.point(this._x5, this._y5); + break; + } + } + }, + point: function(t, e) { + if (t = +t, e = +e, this._point) { + var i = this._x2 - t, r = this._y2 - e; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(i * i + r * r, this._alpha)); + } + switch (this._point) { + case 0: + this._point = 1, this._x3 = t, this._y3 = e; + break; + case 1: + this._point = 2, this._context.moveTo(this._x4 = t, this._y4 = e); + break; + case 2: + this._point = 3, this._x5 = t, this._y5 = e; + break; + default: + On(this, t, e); + break; + } + this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e; + } +}; +const Gf = function t(e) { + function i(r) { + return e ? new ya(r, e) : new En(r, 0); + } + return i.alpha = function(r) { + return t(+r); + }, i; +}(0.5); +function _a(t, e) { + this._context = t, this._alpha = e; +} +_a.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0; + }, + lineEnd: function() { + (this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line; + }, + point: function(t, e) { + if (t = +t, e = +e, this._point) { + var i = this._x2 - t, r = this._y2 - e; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(i * i + r * r, this._alpha)); + } + switch (this._point) { + case 0: + this._point = 1; + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3, this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); + break; + case 3: + this._point = 4; + default: + On(this, t, e); + break; + } + this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e; + } +}; +const Vf = function t(e) { + function i(r) { + return e ? new _a(r, e) : new Mn(r, 0); + } + return i.alpha = function(r) { + return t(+r); + }, i; +}(0.5); +function Ca(t) { + this._context = t; +} +Ca.prototype = { + areaStart: ie, + areaEnd: ie, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + this._point && this._context.closePath(); + }, + point: function(t, e) { + t = +t, e = +e, this._point ? this._context.lineTo(t, e) : (this._point = 1, this._context.moveTo(t, e)); + } +}; +function Xf(t) { + return new Ca(t); +} +function qo(t) { + return t < 0 ? -1 : 1; +} +function zo(t, e, i) { + var r = t._x1 - t._x0, n = e - t._x1, o = (t._y1 - t._y0) / (r || n < 0 && -0), s = (i - t._y1) / (n || r < 0 && -0), a = (o * n + s * r) / (r + n); + return (qo(o) + qo(s)) * Math.min(Math.abs(o), Math.abs(s), 0.5 * Math.abs(a)) || 0; +} +function Wo(t, e) { + var i = t._x1 - t._x0; + return i ? (3 * (t._y1 - t._y0) / i - e) / 2 : e; +} +function Rr(t, e, i) { + var r = t._x0, n = t._y0, o = t._x1, s = t._y1, a = (o - r) / 3; + t._context.bezierCurveTo(r + a, n + a * e, o - a, s - a * i, o, s); +} +function Ji(t) { + this._context = t; +} +Ji.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN, this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: + this._context.lineTo(this._x1, this._y1); + break; + case 3: + Rr(this, this._t0, Wo(this, this._t0)); + break; + } + (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line; + }, + point: function(t, e) { + var i = NaN; + if (t = +t, e = +e, !(t === this._x1 && e === this._y1)) { + switch (this._point) { + case 0: + this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3, Rr(this, Wo(this, i = zo(this, t, e)), i); + break; + default: + Rr(this, this._t0, i = zo(this, t, e)); + break; + } + this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e, this._t0 = i; + } + } +}; +function xa(t) { + this._context = new ba(t); +} +(xa.prototype = Object.create(Ji.prototype)).point = function(t, e) { + Ji.prototype.point.call(this, e, t); +}; +function ba(t) { + this._context = t; +} +ba.prototype = { + moveTo: function(t, e) { + this._context.moveTo(e, t); + }, + closePath: function() { + this._context.closePath(); + }, + lineTo: function(t, e) { + this._context.lineTo(e, t); + }, + bezierCurveTo: function(t, e, i, r, n, o) { + this._context.bezierCurveTo(e, t, r, i, o, n); + } +}; +function Kf(t) { + return new Ji(t); +} +function Zf(t) { + return new xa(t); +} +function Ta(t) { + this._context = t; +} +Ta.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = [], this._y = []; + }, + lineEnd: function() { + var t = this._x, e = this._y, i = t.length; + if (i) + if (this._line ? this._context.lineTo(t[0], e[0]) : this._context.moveTo(t[0], e[0]), i === 2) + this._context.lineTo(t[1], e[1]); + else + for (var r = Ho(t), n = Ho(e), o = 0, s = 1; s < i; ++o, ++s) + this._context.bezierCurveTo(r[0][o], n[0][o], r[1][o], n[1][o], t[s], e[s]); + (this._line || this._line !== 0 && i === 1) && this._context.closePath(), this._line = 1 - this._line, this._x = this._y = null; + }, + point: function(t, e) { + this._x.push(+t), this._y.push(+e); + } +}; +function Ho(t) { + var e, i = t.length - 1, r, n = new Array(i), o = new Array(i), s = new Array(i); + for (n[0] = 0, o[0] = 2, s[0] = t[0] + 2 * t[1], e = 1; e < i - 1; ++e) + n[e] = 1, o[e] = 4, s[e] = 4 * t[e] + 2 * t[e + 1]; + for (n[i - 1] = 2, o[i - 1] = 7, s[i - 1] = 8 * t[i - 1] + t[i], e = 1; e < i; ++e) + r = n[e] / o[e - 1], o[e] -= r, s[e] -= r * s[e - 1]; + for (n[i - 1] = s[i - 1] / o[i - 1], e = i - 2; e >= 0; --e) + n[e] = (s[e] - n[e + 1]) / o[e]; + for (o[i - 1] = (t[i] + n[i - 1]) / 2, e = 0; e < i - 1; ++e) + o[e] = 2 * t[e + 1] - n[e + 1]; + return [n, o]; +} +function Jf(t) { + return new Ta(t); +} +function mr(t, e) { + this._context = t, this._t = e; +} +mr.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = this._y = NaN, this._point = 0; + }, + lineEnd: function() { + 0 < this._t && this._t < 1 && this._point === 2 && this._context.lineTo(this._x, this._y), (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line >= 0 && (this._t = 1 - this._t, this._line = 1 - this._line); + }, + point: function(t, e) { + switch (t = +t, e = +e, this._point) { + case 0: + this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); + break; + case 1: + this._point = 2; + default: { + if (this._t <= 0) + this._context.lineTo(this._x, e), this._context.lineTo(t, e); + else { + var i = this._x * (1 - this._t) + t * this._t; + this._context.lineTo(i, this._y), this._context.lineTo(i, e); + } + break; + } + } + this._x = t, this._y = e; + } +}; +function Qf(t) { + return new mr(t, 0.5); +} +function td(t) { + return new mr(t, 0); +} +function ed(t) { + return new mr(t, 1); +} +function Ke(t, e, i) { + this.k = t, this.x = e, this.y = i; +} +Ke.prototype = { + constructor: Ke, + scale: function(t) { + return t === 1 ? this : new Ke(this.k * t, this.x, this.y); + }, + translate: function(t, e) { + return t === 0 & e === 0 ? this : new Ke(this.k, this.x + this.k * t, this.y + this.k * e); + }, + apply: function(t) { + return [t[0] * this.k + this.x, t[1] * this.k + this.y]; + }, + applyX: function(t) { + return t * this.k + this.x; + }, + applyY: function(t) { + return t * this.k + this.y; + }, + invert: function(t) { + return [(t[0] - this.x) / this.k, (t[1] - this.y) / this.k]; + }, + invertX: function(t) { + return (t - this.x) / this.k; + }, + invertY: function(t) { + return (t - this.y) / this.k; + }, + rescaleX: function(t) { + return t.copy().domain(t.range().map(this.invertX, this).map(t.invert, t)); + }, + rescaleY: function(t) { + return t.copy().domain(t.range().map(this.invertY, this).map(t.invert, t)); + }, + toString: function() { + return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")"; + } +}; +Ke.prototype; +/*! @license DOMPurify 3.0.9 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.9/LICENSE */ +const { + entries: ka, + setPrototypeOf: jo, + isFrozen: id, + getPrototypeOf: rd, + getOwnPropertyDescriptor: nd +} = Object; +let { + freeze: ct, + seal: Ft, + create: Sa +} = Object, { + apply: sn, + construct: an +} = typeof Reflect < "u" && Reflect; +ct || (ct = function(e) { + return e; +}); +Ft || (Ft = function(e) { + return e; +}); +sn || (sn = function(e, i, r) { + return e.apply(i, r); +}); +an || (an = function(e, i) { + return new e(...i); +}); +const wi = _t(Array.prototype.forEach), Uo = _t(Array.prototype.pop), je = _t(Array.prototype.push), Di = _t(String.prototype.toLowerCase), Pr = _t(String.prototype.toString), od = _t(String.prototype.match), Ue = _t(String.prototype.replace), sd = _t(String.prototype.indexOf), ad = _t(String.prototype.trim), vt = _t(Object.prototype.hasOwnProperty), mt = _t(RegExp.prototype.test), Ye = ld(TypeError); +function _t(t) { + return function(e) { + for (var i = arguments.length, r = new Array(i > 1 ? i - 1 : 0), n = 1; n < i; n++) + r[n - 1] = arguments[n]; + return sn(t, e, r); + }; +} +function ld(t) { + return function() { + for (var e = arguments.length, i = new Array(e), r = 0; r < e; r++) + i[r] = arguments[r]; + return an(t, i); + }; +} +function q(t, e) { + let i = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Di; + jo && jo(t, null); + let r = e.length; + for (; r--; ) { + let n = e[r]; + if (typeof n == "string") { + const o = i(n); + o !== n && (id(e) || (e[r] = o), n = o); + } + t[n] = !0; + } + return t; +} +function hd(t) { + for (let e = 0; e < t.length; e++) + vt(t, e) || (t[e] = null); + return t; +} +function le(t) { + const e = Sa(null); + for (const [i, r] of ka(t)) + vt(t, i) && (Array.isArray(r) ? e[i] = hd(r) : r && typeof r == "object" && r.constructor === Object ? e[i] = le(r) : e[i] = r); + return e; +} +function Bi(t, e) { + for (; t !== null; ) { + const r = nd(t, e); + if (r) { + if (r.get) + return _t(r.get); + if (typeof r.value == "function") + return _t(r.value); + } + t = rd(t); + } + function i() { + return null; + } + return i; +} +const Yo = ct(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]), qr = ct(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]), zr = ct(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]), cd = ct(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]), Wr = ct(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]), ud = ct(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), Go = ct(["#text"]), Vo = ct(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "xmlns", "slot"]), Hr = ct(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]), Xo = ct(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]), Fi = ct(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), fd = Ft(/\{\{[\w\W]*|[\w\W]*\}\}/gm), dd = Ft(/<%[\w\W]*|[\w\W]*%>/gm), pd = Ft(/\${[\w\W]*}/gm), gd = Ft(/^data-[\-\w.\u00B7-\uFFFF]/), md = Ft(/^aria-[\-\w]+$/), va = Ft( + /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i + // eslint-disable-line no-useless-escape +), yd = Ft(/^(?:\w+script|data):/i), _d = Ft( + /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g + // eslint-disable-line no-control-regex +), wa = Ft(/^html$/i); +var Ko = /* @__PURE__ */ Object.freeze({ + __proto__: null, + MUSTACHE_EXPR: fd, + ERB_EXPR: dd, + TMPLIT_EXPR: pd, + DATA_ATTR: gd, + ARIA_ATTR: md, + IS_ALLOWED_URI: va, + IS_SCRIPT_OR_DATA: yd, + ATTR_WHITESPACE: _d, + DOCTYPE_NAME: wa +}); +const Cd = function() { + return typeof window > "u" ? null : window; +}, xd = function(e, i) { + if (typeof e != "object" || typeof e.createPolicy != "function") + return null; + let r = null; + const n = "data-tt-policy-suffix"; + i && i.hasAttribute(n) && (r = i.getAttribute(n)); + const o = "dompurify" + (r ? "#" + r : ""); + try { + return e.createPolicy(o, { + createHTML(s) { + return s; + }, + createScriptURL(s) { + return s; + } + }); + } catch { + return console.warn("TrustedTypes policy " + o + " could not be created."), null; + } +}; +function Ba() { + let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Cd(); + const e = (B) => Ba(B); + if (e.version = "3.0.9", e.removed = [], !t || !t.document || t.document.nodeType !== 9) + return e.isSupported = !1, e; + let { + document: i + } = t; + const r = i, n = r.currentScript, { + DocumentFragment: o, + HTMLTemplateElement: s, + Node: a, + Element: l, + NodeFilter: h, + NamedNodeMap: u = t.NamedNodeMap || t.MozNamedAttrMap, + HTMLFormElement: f, + DOMParser: c, + trustedTypes: d + } = t, m = l.prototype, S = Bi(m, "cloneNode"), O = Bi(m, "nextSibling"), z = Bi(m, "childNodes"), T = Bi(m, "parentNode"); + if (typeof s == "function") { + const B = i.createElement("template"); + B.content && B.content.ownerDocument && (i = B.content.ownerDocument); + } + let R, X = ""; + const { + implementation: G, + createNodeIterator: V, + createDocumentFragment: H, + getElementsByTagName: oe + } = i, { + importNode: Kt + } = r; + let P = {}; + e.isSupported = typeof ka == "function" && typeof T == "function" && G && G.createHTMLDocument !== void 0; + const { + MUSTACHE_EXPR: W, + ERB_EXPR: Ct, + TMPLIT_EXPR: Nt, + DATA_ATTR: M, + ARIA_ATTR: k, + IS_SCRIPT_OR_DATA: C, + ATTR_WHITESPACE: w + } = Ko; + let { + IS_ALLOWED_URI: x + } = Ko, b = null; + const D = q({}, [...Yo, ...qr, ...zr, ...Wr, ...Go]); + let I = null; + const Y = q({}, [...Vo, ...Hr, ...Xo, ...Fi]); + let N = Object.seal(Sa(null, { + tagNameCheck: { + writable: !0, + configurable: !1, + enumerable: !0, + value: null + }, + attributeNameCheck: { + writable: !0, + configurable: !1, + enumerable: !0, + value: null + }, + allowCustomizedBuiltInElements: { + writable: !0, + configurable: !1, + enumerable: !0, + value: !1 + } + })), K = null, et = null, Rt = !0, St = !0, Zt = !1, Lt = !0, Z = !1, it = !1, Pt = !1, Jt = !1, xe = !1, Ci = !1, xi = !1, eo = !0, io = !1; + const ah = "user-content-"; + let Lr = !0, qe = !1, be = {}, Te = null; + const ro = q({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]); + let no = null; + const oo = q({}, ["audio", "video", "img", "source", "image", "track"]); + let Er = null; + const so = q({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), bi = "http://www.w3.org/1998/Math/MathML", Ti = "http://www.w3.org/2000/svg", qt = "http://www.w3.org/1999/xhtml"; + let ke = qt, Mr = !1, Or = null; + const lh = q({}, [bi, Ti, qt], Pr); + let ze = null; + const hh = ["application/xhtml+xml", "text/html"], ch = "text/html"; + let tt = null, Se = null; + const uh = i.createElement("form"), ao = function(p) { + return p instanceof RegExp || p instanceof Function; + }, $r = function() { + let p = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + if (!(Se && Se === p)) { + if ((!p || typeof p != "object") && (p = {}), p = le(p), ze = // eslint-disable-next-line unicorn/prefer-includes + hh.indexOf(p.PARSER_MEDIA_TYPE) === -1 ? ch : p.PARSER_MEDIA_TYPE, tt = ze === "application/xhtml+xml" ? Pr : Di, b = vt(p, "ALLOWED_TAGS") ? q({}, p.ALLOWED_TAGS, tt) : D, I = vt(p, "ALLOWED_ATTR") ? q({}, p.ALLOWED_ATTR, tt) : Y, Or = vt(p, "ALLOWED_NAMESPACES") ? q({}, p.ALLOWED_NAMESPACES, Pr) : lh, Er = vt(p, "ADD_URI_SAFE_ATTR") ? q( + le(so), + // eslint-disable-line indent + p.ADD_URI_SAFE_ATTR, + // eslint-disable-line indent + tt + // eslint-disable-line indent + ) : so, no = vt(p, "ADD_DATA_URI_TAGS") ? q( + le(oo), + // eslint-disable-line indent + p.ADD_DATA_URI_TAGS, + // eslint-disable-line indent + tt + // eslint-disable-line indent + ) : oo, Te = vt(p, "FORBID_CONTENTS") ? q({}, p.FORBID_CONTENTS, tt) : ro, K = vt(p, "FORBID_TAGS") ? q({}, p.FORBID_TAGS, tt) : {}, et = vt(p, "FORBID_ATTR") ? q({}, p.FORBID_ATTR, tt) : {}, be = vt(p, "USE_PROFILES") ? p.USE_PROFILES : !1, Rt = p.ALLOW_ARIA_ATTR !== !1, St = p.ALLOW_DATA_ATTR !== !1, Zt = p.ALLOW_UNKNOWN_PROTOCOLS || !1, Lt = p.ALLOW_SELF_CLOSE_IN_ATTR !== !1, Z = p.SAFE_FOR_TEMPLATES || !1, it = p.WHOLE_DOCUMENT || !1, xe = p.RETURN_DOM || !1, Ci = p.RETURN_DOM_FRAGMENT || !1, xi = p.RETURN_TRUSTED_TYPE || !1, Jt = p.FORCE_BODY || !1, eo = p.SANITIZE_DOM !== !1, io = p.SANITIZE_NAMED_PROPS || !1, Lr = p.KEEP_CONTENT !== !1, qe = p.IN_PLACE || !1, x = p.ALLOWED_URI_REGEXP || va, ke = p.NAMESPACE || qt, N = p.CUSTOM_ELEMENT_HANDLING || {}, p.CUSTOM_ELEMENT_HANDLING && ao(p.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (N.tagNameCheck = p.CUSTOM_ELEMENT_HANDLING.tagNameCheck), p.CUSTOM_ELEMENT_HANDLING && ao(p.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (N.attributeNameCheck = p.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), p.CUSTOM_ELEMENT_HANDLING && typeof p.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (N.allowCustomizedBuiltInElements = p.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), Z && (St = !1), Ci && (xe = !0), be && (b = q({}, Go), I = [], be.html === !0 && (q(b, Yo), q(I, Vo)), be.svg === !0 && (q(b, qr), q(I, Hr), q(I, Fi)), be.svgFilters === !0 && (q(b, zr), q(I, Hr), q(I, Fi)), be.mathMl === !0 && (q(b, Wr), q(I, Xo), q(I, Fi))), p.ADD_TAGS && (b === D && (b = le(b)), q(b, p.ADD_TAGS, tt)), p.ADD_ATTR && (I === Y && (I = le(I)), q(I, p.ADD_ATTR, tt)), p.ADD_URI_SAFE_ATTR && q(Er, p.ADD_URI_SAFE_ATTR, tt), p.FORBID_CONTENTS && (Te === ro && (Te = le(Te)), q(Te, p.FORBID_CONTENTS, tt)), Lr && (b["#text"] = !0), it && q(b, ["html", "head", "body"]), b.table && (q(b, ["tbody"]), delete K.tbody), p.TRUSTED_TYPES_POLICY) { + if (typeof p.TRUSTED_TYPES_POLICY.createHTML != "function") + throw Ye('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.'); + if (typeof p.TRUSTED_TYPES_POLICY.createScriptURL != "function") + throw Ye('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.'); + R = p.TRUSTED_TYPES_POLICY, X = R.createHTML(""); + } else + R === void 0 && (R = xd(d, n)), R !== null && typeof X == "string" && (X = R.createHTML("")); + ct && ct(p), Se = p; + } + }, lo = q({}, ["mi", "mo", "mn", "ms", "mtext"]), ho = q({}, ["foreignobject", "desc", "title", "annotation-xml"]), fh = q({}, ["title", "style", "font", "a", "script"]), co = q({}, [...qr, ...zr, ...cd]), uo = q({}, [...Wr, ...ud]), dh = function(p) { + let y = T(p); + (!y || !y.tagName) && (y = { + namespaceURI: ke, + tagName: "template" + }); + const v = Di(p.tagName), j = Di(y.tagName); + return Or[p.namespaceURI] ? p.namespaceURI === Ti ? y.namespaceURI === qt ? v === "svg" : y.namespaceURI === bi ? v === "svg" && (j === "annotation-xml" || lo[j]) : !!co[v] : p.namespaceURI === bi ? y.namespaceURI === qt ? v === "math" : y.namespaceURI === Ti ? v === "math" && ho[j] : !!uo[v] : p.namespaceURI === qt ? y.namespaceURI === Ti && !ho[j] || y.namespaceURI === bi && !lo[j] ? !1 : !uo[v] && (fh[v] || !co[v]) : !!(ze === "application/xhtml+xml" && Or[p.namespaceURI]) : !1; + }, se = function(p) { + je(e.removed, { + element: p + }); + try { + p.parentNode.removeChild(p); + } catch { + p.remove(); + } + }, Ir = function(p, y) { + try { + je(e.removed, { + attribute: y.getAttributeNode(p), + from: y + }); + } catch { + je(e.removed, { + attribute: null, + from: y + }); + } + if (y.removeAttribute(p), p === "is" && !I[p]) + if (xe || Ci) + try { + se(y); + } catch { + } + else + try { + y.setAttribute(p, ""); + } catch { + } + }, fo = function(p) { + let y = null, v = null; + if (Jt) + p = "" + p; + else { + const nt = od(p, /^[\r\n\t ]+/); + v = nt && nt[0]; + } + ze === "application/xhtml+xml" && ke === qt && (p = '' + p + ""); + const j = R ? R.createHTML(p) : p; + if (ke === qt) + try { + y = new c().parseFromString(j, ze); + } catch { + } + if (!y || !y.documentElement) { + y = G.createDocument(ke, "template", null); + try { + y.documentElement.innerHTML = Mr ? X : j; + } catch { + } + } + const rt = y.body || y.documentElement; + return p && v && rt.insertBefore(i.createTextNode(v), rt.childNodes[0] || null), ke === qt ? oe.call(y, it ? "html" : "body")[0] : it ? y.documentElement : rt; + }, po = function(p) { + return V.call( + p.ownerDocument || p, + p, + // eslint-disable-next-line no-bitwise + h.SHOW_ELEMENT | h.SHOW_COMMENT | h.SHOW_TEXT, + null + ); + }, ph = function(p) { + return p instanceof f && (typeof p.nodeName != "string" || typeof p.textContent != "string" || typeof p.removeChild != "function" || !(p.attributes instanceof u) || typeof p.removeAttribute != "function" || typeof p.setAttribute != "function" || typeof p.namespaceURI != "string" || typeof p.insertBefore != "function" || typeof p.hasChildNodes != "function"); + }, go = function(p) { + return typeof a == "function" && p instanceof a; + }, zt = function(p, y, v) { + P[p] && wi(P[p], (j) => { + j.call(e, y, v, Se); + }); + }, mo = function(p) { + let y = null; + if (zt("beforeSanitizeElements", p, null), ph(p)) + return se(p), !0; + const v = tt(p.nodeName); + if (zt("uponSanitizeElement", p, { + tagName: v, + allowedTags: b + }), p.hasChildNodes() && !go(p.firstElementChild) && mt(/<[/\w]/g, p.innerHTML) && mt(/<[/\w]/g, p.textContent)) + return se(p), !0; + if (!b[v] || K[v]) { + if (!K[v] && _o(v) && (N.tagNameCheck instanceof RegExp && mt(N.tagNameCheck, v) || N.tagNameCheck instanceof Function && N.tagNameCheck(v))) + return !1; + if (Lr && !Te[v]) { + const j = T(p) || p.parentNode, rt = z(p) || p.childNodes; + if (rt && j) { + const nt = rt.length; + for (let ut = nt - 1; ut >= 0; --ut) + j.insertBefore(S(rt[ut], !0), O(p)); + } + } + return se(p), !0; + } + return p instanceof l && !dh(p) || (v === "noscript" || v === "noembed" || v === "noframes") && mt(/<\/no(script|embed|frames)/i, p.innerHTML) ? (se(p), !0) : (Z && p.nodeType === 3 && (y = p.textContent, wi([W, Ct, Nt], (j) => { + y = Ue(y, j, " "); + }), p.textContent !== y && (je(e.removed, { + element: p.cloneNode() + }), p.textContent = y)), zt("afterSanitizeElements", p, null), !1); + }, yo = function(p, y, v) { + if (eo && (y === "id" || y === "name") && (v in i || v in uh)) + return !1; + if (!(St && !et[y] && mt(M, y))) { + if (!(Rt && mt(k, y))) { + if (!I[y] || et[y]) { + if ( + // First condition does a very basic check if a) it's basically a valid custom element tagname AND + // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck + // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck + !(_o(p) && (N.tagNameCheck instanceof RegExp && mt(N.tagNameCheck, p) || N.tagNameCheck instanceof Function && N.tagNameCheck(p)) && (N.attributeNameCheck instanceof RegExp && mt(N.attributeNameCheck, y) || N.attributeNameCheck instanceof Function && N.attributeNameCheck(y)) || // Alternative, second condition checks if it's an `is`-attribute, AND + // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck + y === "is" && N.allowCustomizedBuiltInElements && (N.tagNameCheck instanceof RegExp && mt(N.tagNameCheck, v) || N.tagNameCheck instanceof Function && N.tagNameCheck(v))) + ) + return !1; + } else if (!Er[y]) { + if (!mt(x, Ue(v, w, ""))) { + if (!((y === "src" || y === "xlink:href" || y === "href") && p !== "script" && sd(v, "data:") === 0 && no[p])) { + if (!(Zt && !mt(C, Ue(v, w, "")))) { + if (v) + return !1; + } + } + } + } + } + } + return !0; + }, _o = function(p) { + return p !== "annotation-xml" && p.indexOf("-") > 0; + }, Co = function(p) { + zt("beforeSanitizeAttributes", p, null); + const { + attributes: y + } = p; + if (!y) + return; + const v = { + attrName: "", + attrValue: "", + keepAttr: !0, + allowedAttributes: I + }; + let j = y.length; + for (; j--; ) { + const rt = y[j], { + name: nt, + namespaceURI: ut, + value: ae + } = rt, We = tt(nt); + let ft = nt === "value" ? ae : ad(ae); + if (v.attrName = We, v.attrValue = ft, v.keepAttr = !0, v.forceKeepAttr = void 0, zt("uponSanitizeAttribute", p, v), ft = v.attrValue, v.forceKeepAttr || (Ir(nt, p), !v.keepAttr)) + continue; + if (!Lt && mt(/\/>/i, ft)) { + Ir(nt, p); + continue; + } + Z && wi([W, Ct, Nt], (bo) => { + ft = Ue(ft, bo, " "); + }); + const xo = tt(p.nodeName); + if (yo(xo, We, ft)) { + if (io && (We === "id" || We === "name") && (Ir(nt, p), ft = ah + ft), R && typeof d == "object" && typeof d.getAttributeType == "function" && !ut) + switch (d.getAttributeType(xo, We)) { + case "TrustedHTML": { + ft = R.createHTML(ft); + break; + } + case "TrustedScriptURL": { + ft = R.createScriptURL(ft); + break; + } + } + try { + ut ? p.setAttributeNS(ut, nt, ft) : p.setAttribute(nt, ft), Uo(e.removed); + } catch { + } + } + } + zt("afterSanitizeAttributes", p, null); + }, gh = function B(p) { + let y = null; + const v = po(p); + for (zt("beforeSanitizeShadowDOM", p, null); y = v.nextNode(); ) + zt("uponSanitizeShadowNode", y, null), !mo(y) && (y.content instanceof o && B(y.content), Co(y)); + zt("afterSanitizeShadowDOM", p, null); + }; + return e.sanitize = function(B) { + let p = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, y = null, v = null, j = null, rt = null; + if (Mr = !B, Mr && (B = ""), typeof B != "string" && !go(B)) + if (typeof B.toString == "function") { + if (B = B.toString(), typeof B != "string") + throw Ye("dirty is not a string, aborting"); + } else + throw Ye("toString is not a function"); + if (!e.isSupported) + return B; + if (Pt || $r(p), e.removed = [], typeof B == "string" && (qe = !1), qe) { + if (B.nodeName) { + const ae = tt(B.nodeName); + if (!b[ae] || K[ae]) + throw Ye("root node is forbidden and cannot be sanitized in-place"); + } + } else if (B instanceof a) + y = fo(""), v = y.ownerDocument.importNode(B, !0), v.nodeType === 1 && v.nodeName === "BODY" || v.nodeName === "HTML" ? y = v : y.appendChild(v); + else { + if (!xe && !Z && !it && // eslint-disable-next-line unicorn/prefer-includes + B.indexOf("<") === -1) + return R && xi ? R.createHTML(B) : B; + if (y = fo(B), !y) + return xe ? null : xi ? X : ""; + } + y && Jt && se(y.firstChild); + const nt = po(qe ? B : y); + for (; j = nt.nextNode(); ) + mo(j) || (j.content instanceof o && gh(j.content), Co(j)); + if (qe) + return B; + if (xe) { + if (Ci) + for (rt = H.call(y.ownerDocument); y.firstChild; ) + rt.appendChild(y.firstChild); + else + rt = y; + return (I.shadowroot || I.shadowrootmode) && (rt = Kt.call(r, rt, !0)), rt; + } + let ut = it ? y.outerHTML : y.innerHTML; + return it && b["!doctype"] && y.ownerDocument && y.ownerDocument.doctype && y.ownerDocument.doctype.name && mt(wa, y.ownerDocument.doctype.name) && (ut = " +` + ut), Z && wi([W, Ct, Nt], (ae) => { + ut = Ue(ut, ae, " "); + }), R && xi ? R.createHTML(ut) : ut; + }, e.setConfig = function() { + let B = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + $r(B), Pt = !0; + }, e.clearConfig = function() { + Se = null, Pt = !1; + }, e.isValidAttribute = function(B, p, y) { + Se || $r({}); + const v = tt(B), j = tt(p); + return yo(v, j, y); + }, e.addHook = function(B, p) { + typeof p == "function" && (P[B] = P[B] || [], je(P[B], p)); + }, e.removeHook = function(B) { + if (P[B]) + return Uo(P[B]); + }, e.removeHooks = function(B) { + P[B] && (P[B] = []); + }, e.removeAllHooks = function() { + P = {}; + }, e; +} +var Ee = Ba(); +const gi = //gi, bd = (t) => t ? Aa(t).replace(/\\n/g, "#br#").split("#br#") : [""], Td = (() => { + let t = !1; + return () => { + t || (kd(), t = !0); + }; +})(); +function kd() { + const t = "data-temp-href-target"; + Ee.addHook("beforeSanitizeAttributes", (e) => { + e.tagName === "A" && e.hasAttribute("target") && e.setAttribute(t, e.getAttribute("target") || ""); + }), Ee.addHook("afterSanitizeAttributes", (e) => { + e.tagName === "A" && e.hasAttribute(t) && (e.setAttribute("target", e.getAttribute(t) || ""), e.removeAttribute(t), e.getAttribute("target") === "_blank" && e.setAttribute("rel", "noopener")); + }); +} +const Fa = (t) => (Td(), Ee.sanitize(t)), Zo = (t, e) => { + var i; + if (((i = e.flowchart) == null ? void 0 : i.htmlLabels) !== !1) { + const r = e.securityLevel; + r === "antiscript" || r === "strict" ? t = Fa(t) : r !== "loose" && (t = Aa(t), t = t.replace(//g, ">"), t = t.replace(/=/g, "="), t = Bd(t)); + } + return t; +}, ai = (t, e) => t && (e.dompurifyConfig ? t = Ee.sanitize(Zo(t, e), e.dompurifyConfig).toString() : t = Ee.sanitize(Zo(t, e), { + FORBID_TAGS: ["style"] +}).toString(), t), Sd = (t, e) => typeof t == "string" ? ai(t, e) : t.flat().map((i) => ai(i, e)), vd = (t) => gi.test(t), wd = (t) => t.split(gi), Bd = (t) => t.replace(/#br#/g, "
"), Aa = (t) => t.replace(gi, "#br#"), Fd = (t) => { + let e = ""; + return t && (e = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, e = e.replaceAll(/\(/g, "\\("), e = e.replaceAll(/\)/g, "\\)")), e; +}, La = (t) => !(t === !1 || ["false", "null", "0"].includes(String(t).trim().toLowerCase())), Ad = function(...t) { + const e = t.filter((i) => !isNaN(i)); + return Math.max(...e); +}, Ld = function(...t) { + const e = t.filter((i) => !isNaN(i)); + return Math.min(...e); +}, C1 = function(t) { + const e = t.split(/(,)/), i = []; + for (let r = 0; r < e.length; r++) { + let n = e[r]; + if (n === "," && r > 0 && r + 1 < e.length) { + const o = e[r - 1], s = e[r + 1]; + Ed(o, s) && (n = o + "," + s, r++, i.pop()); + } + i.push(Md(n)); + } + return i.join(""); +}, ln = (t, e) => Math.max(0, t.split(e).length - 1), Ed = (t, e) => { + const i = ln(t, "~"), r = ln(e, "~"); + return i === 1 && r === 1; +}, Md = (t) => { + const e = ln(t, "~"); + let i = !1; + if (e <= 1) + return t; + e % 2 !== 0 && t.startsWith("~") && (t = t.substring(1), i = !0); + const r = [...t]; + let n = r.indexOf("~"), o = r.lastIndexOf("~"); + for (; n !== -1 && o !== -1 && n !== o; ) + r[n] = "<", r[o] = ">", n = r.indexOf("~"), o = r.lastIndexOf("~"); + return i && r.unshift("~"), r.join(""); +}, Jo = () => window.MathMLElement !== void 0, hn = /\$\$(.*)\$\$/g, Qo = (t) => { + var e; + return (((e = t.match(hn)) == null ? void 0 : e.length) ?? 0) > 0; +}, x1 = async (t, e) => { + t = await Od(t, e); + const i = document.createElement("div"); + i.innerHTML = t, i.id = "katex-temp", i.style.visibility = "hidden", i.style.position = "absolute", i.style.top = "0"; + const r = document.querySelector("body"); + r == null || r.insertAdjacentElement("beforeend", i); + const n = { width: i.clientWidth, height: i.clientHeight }; + return i.remove(), n; +}, Od = async (t, e) => { + if (!Qo(t)) + return t; + if (!Jo() && !e.legacyMathML) + return t.replace(hn, "MathML is unsupported in this environment."); + const { default: i } = await import("./katex-d90b6d29.js"); + return t.split(gi).map( + (r) => Qo(r) ? ` +
+ ${r} +
+ ` : `
${r}
` + ).join("").replace( + hn, + (r, n) => i.renderToString(n, { + throwOnError: !0, + displayMode: !0, + output: Jo() ? "mathml" : "htmlAndMathml" + }).replace(/\n/g, " ").replace(//g, "") + ); +}, $n = { + getRows: bd, + sanitizeText: ai, + sanitizeTextOrArray: Sd, + hasBreaks: vd, + splitBreaks: wd, + lineBreakRegex: gi, + removeScript: Fa, + getUrl: Fd, + evaluate: La, + getMax: Ad, + getMin: Ld +}, Ni = { + /* CLAMP */ + min: { + r: 0, + g: 0, + b: 0, + s: 0, + l: 0, + a: 0 + }, + max: { + r: 255, + g: 255, + b: 255, + h: 360, + s: 100, + l: 100, + a: 1 + }, + clamp: { + r: (t) => t >= 255 ? 255 : t < 0 ? 0 : t, + g: (t) => t >= 255 ? 255 : t < 0 ? 0 : t, + b: (t) => t >= 255 ? 255 : t < 0 ? 0 : t, + h: (t) => t % 360, + s: (t) => t >= 100 ? 100 : t < 0 ? 0 : t, + l: (t) => t >= 100 ? 100 : t < 0 ? 0 : t, + a: (t) => t >= 1 ? 1 : t < 0 ? 0 : t + }, + /* CONVERSION */ + //SOURCE: https://planetcalc.com/7779 + toLinear: (t) => { + const e = t / 255; + return t > 0.03928 ? Math.pow((e + 0.055) / 1.055, 2.4) : e / 12.92; + }, + //SOURCE: https://gist.github.com/mjackson/5311256 + hue2rgb: (t, e, i) => (i < 0 && (i += 1), i > 1 && (i -= 1), i < 1 / 6 ? t + (e - t) * 6 * i : i < 1 / 2 ? e : i < 2 / 3 ? t + (e - t) * (2 / 3 - i) * 6 : t), + hsl2rgb: ({ h: t, s: e, l: i }, r) => { + if (!e) + return i * 2.55; + t /= 360, e /= 100, i /= 100; + const n = i < 0.5 ? i * (1 + e) : i + e - i * e, o = 2 * i - n; + switch (r) { + case "r": + return Ni.hue2rgb(o, n, t + 1 / 3) * 255; + case "g": + return Ni.hue2rgb(o, n, t) * 255; + case "b": + return Ni.hue2rgb(o, n, t - 1 / 3) * 255; + } + }, + rgb2hsl: ({ r: t, g: e, b: i }, r) => { + t /= 255, e /= 255, i /= 255; + const n = Math.max(t, e, i), o = Math.min(t, e, i), s = (n + o) / 2; + if (r === "l") + return s * 100; + if (n === o) + return 0; + const a = n - o, l = s > 0.5 ? a / (2 - n - o) : a / (n + o); + if (r === "s") + return l * 100; + switch (n) { + case t: + return ((e - i) / a + (e < i ? 6 : 0)) * 60; + case e: + return ((i - t) / a + 2) * 60; + case i: + return ((t - e) / a + 4) * 60; + default: + return -1; + } + } +}, $d = Ni, Id = { + /* API */ + clamp: (t, e, i) => e > i ? Math.min(e, Math.max(i, t)) : Math.min(i, Math.max(e, t)), + round: (t) => Math.round(t * 1e10) / 1e10 +}, Dd = Id, Nd = { + /* API */ + dec2hex: (t) => { + const e = Math.round(t).toString(16); + return e.length > 1 ? e : `0${e}`; + } +}, Rd = Nd, Pd = { + channel: $d, + lang: Dd, + unit: Rd +}, $ = Pd, Qt = {}; +for (let t = 0; t <= 255; t++) + Qt[t] = $.unit.dec2hex(t); +const ot = { + ALL: 0, + RGB: 1, + HSL: 2 +}; +class qd { + constructor() { + this.type = ot.ALL; + } + /* API */ + get() { + return this.type; + } + set(e) { + if (this.type && this.type !== e) + throw new Error("Cannot change both RGB and HSL channels at the same time"); + this.type = e; + } + reset() { + this.type = ot.ALL; + } + is(e) { + return this.type === e; + } +} +const zd = qd; +class Wd { + /* CONSTRUCTOR */ + constructor(e, i) { + this.color = i, this.changed = !1, this.data = e, this.type = new zd(); + } + /* API */ + set(e, i) { + return this.color = i, this.changed = !1, this.data = e, this.type.type = ot.ALL, this; + } + /* HELPERS */ + _ensureHSL() { + const e = this.data, { h: i, s: r, l: n } = e; + i === void 0 && (e.h = $.channel.rgb2hsl(e, "h")), r === void 0 && (e.s = $.channel.rgb2hsl(e, "s")), n === void 0 && (e.l = $.channel.rgb2hsl(e, "l")); + } + _ensureRGB() { + const e = this.data, { r: i, g: r, b: n } = e; + i === void 0 && (e.r = $.channel.hsl2rgb(e, "r")), r === void 0 && (e.g = $.channel.hsl2rgb(e, "g")), n === void 0 && (e.b = $.channel.hsl2rgb(e, "b")); + } + /* GETTERS */ + get r() { + const e = this.data, i = e.r; + return !this.type.is(ot.HSL) && i !== void 0 ? i : (this._ensureHSL(), $.channel.hsl2rgb(e, "r")); + } + get g() { + const e = this.data, i = e.g; + return !this.type.is(ot.HSL) && i !== void 0 ? i : (this._ensureHSL(), $.channel.hsl2rgb(e, "g")); + } + get b() { + const e = this.data, i = e.b; + return !this.type.is(ot.HSL) && i !== void 0 ? i : (this._ensureHSL(), $.channel.hsl2rgb(e, "b")); + } + get h() { + const e = this.data, i = e.h; + return !this.type.is(ot.RGB) && i !== void 0 ? i : (this._ensureRGB(), $.channel.rgb2hsl(e, "h")); + } + get s() { + const e = this.data, i = e.s; + return !this.type.is(ot.RGB) && i !== void 0 ? i : (this._ensureRGB(), $.channel.rgb2hsl(e, "s")); + } + get l() { + const e = this.data, i = e.l; + return !this.type.is(ot.RGB) && i !== void 0 ? i : (this._ensureRGB(), $.channel.rgb2hsl(e, "l")); + } + get a() { + return this.data.a; + } + /* SETTERS */ + set r(e) { + this.type.set(ot.RGB), this.changed = !0, this.data.r = e; + } + set g(e) { + this.type.set(ot.RGB), this.changed = !0, this.data.g = e; + } + set b(e) { + this.type.set(ot.RGB), this.changed = !0, this.data.b = e; + } + set h(e) { + this.type.set(ot.HSL), this.changed = !0, this.data.h = e; + } + set s(e) { + this.type.set(ot.HSL), this.changed = !0, this.data.s = e; + } + set l(e) { + this.type.set(ot.HSL), this.changed = !0, this.data.l = e; + } + set a(e) { + this.changed = !0, this.data.a = e; + } +} +const Hd = Wd, jd = new Hd({ r: 0, g: 0, b: 0, a: 0 }, "transparent"), yr = jd, Ea = { + /* VARIABLES */ + re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i, + /* API */ + parse: (t) => { + if (t.charCodeAt(0) !== 35) + return; + const e = t.match(Ea.re); + if (!e) + return; + const i = e[1], r = parseInt(i, 16), n = i.length, o = n % 4 === 0, s = n > 4, a = s ? 1 : 17, l = s ? 8 : 4, h = o ? 0 : -1, u = s ? 255 : 15; + return yr.set({ + r: (r >> l * (h + 3) & u) * a, + g: (r >> l * (h + 2) & u) * a, + b: (r >> l * (h + 1) & u) * a, + a: o ? (r & u) * a / 255 : 1 + }, t); + }, + stringify: (t) => { + const { r: e, g: i, b: r, a: n } = t; + return n < 1 ? `#${Qt[Math.round(e)]}${Qt[Math.round(i)]}${Qt[Math.round(r)]}${Qt[Math.round(n * 255)]}` : `#${Qt[Math.round(e)]}${Qt[Math.round(i)]}${Qt[Math.round(r)]}`; + } +}, Ze = Ea, Ri = { + /* VARIABLES */ + re: /^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i, + hueRe: /^(.+?)(deg|grad|rad|turn)$/i, + /* HELPERS */ + _hue2deg: (t) => { + const e = t.match(Ri.hueRe); + if (e) { + const [, i, r] = e; + switch (r) { + case "grad": + return $.channel.clamp.h(parseFloat(i) * 0.9); + case "rad": + return $.channel.clamp.h(parseFloat(i) * 180 / Math.PI); + case "turn": + return $.channel.clamp.h(parseFloat(i) * 360); + } + } + return $.channel.clamp.h(parseFloat(t)); + }, + /* API */ + parse: (t) => { + const e = t.charCodeAt(0); + if (e !== 104 && e !== 72) + return; + const i = t.match(Ri.re); + if (!i) + return; + const [, r, n, o, s, a] = i; + return yr.set({ + h: Ri._hue2deg(r), + s: $.channel.clamp.s(parseFloat(n)), + l: $.channel.clamp.l(parseFloat(o)), + a: s ? $.channel.clamp.a(a ? parseFloat(s) / 100 : parseFloat(s)) : 1 + }, t); + }, + stringify: (t) => { + const { h: e, s: i, l: r, a: n } = t; + return n < 1 ? `hsla(${$.lang.round(e)}, ${$.lang.round(i)}%, ${$.lang.round(r)}%, ${n})` : `hsl(${$.lang.round(e)}, ${$.lang.round(i)}%, ${$.lang.round(r)}%)`; + } +}, Ai = Ri, Pi = { + /* VARIABLES */ + colors: { + aliceblue: "#f0f8ff", + antiquewhite: "#faebd7", + aqua: "#00ffff", + aquamarine: "#7fffd4", + azure: "#f0ffff", + beige: "#f5f5dc", + bisque: "#ffe4c4", + black: "#000000", + blanchedalmond: "#ffebcd", + blue: "#0000ff", + blueviolet: "#8a2be2", + brown: "#a52a2a", + burlywood: "#deb887", + cadetblue: "#5f9ea0", + chartreuse: "#7fff00", + chocolate: "#d2691e", + coral: "#ff7f50", + cornflowerblue: "#6495ed", + cornsilk: "#fff8dc", + crimson: "#dc143c", + cyanaqua: "#00ffff", + darkblue: "#00008b", + darkcyan: "#008b8b", + darkgoldenrod: "#b8860b", + darkgray: "#a9a9a9", + darkgreen: "#006400", + darkgrey: "#a9a9a9", + darkkhaki: "#bdb76b", + darkmagenta: "#8b008b", + darkolivegreen: "#556b2f", + darkorange: "#ff8c00", + darkorchid: "#9932cc", + darkred: "#8b0000", + darksalmon: "#e9967a", + darkseagreen: "#8fbc8f", + darkslateblue: "#483d8b", + darkslategray: "#2f4f4f", + darkslategrey: "#2f4f4f", + darkturquoise: "#00ced1", + darkviolet: "#9400d3", + deeppink: "#ff1493", + deepskyblue: "#00bfff", + dimgray: "#696969", + dimgrey: "#696969", + dodgerblue: "#1e90ff", + firebrick: "#b22222", + floralwhite: "#fffaf0", + forestgreen: "#228b22", + fuchsia: "#ff00ff", + gainsboro: "#dcdcdc", + ghostwhite: "#f8f8ff", + gold: "#ffd700", + goldenrod: "#daa520", + gray: "#808080", + green: "#008000", + greenyellow: "#adff2f", + grey: "#808080", + honeydew: "#f0fff0", + hotpink: "#ff69b4", + indianred: "#cd5c5c", + indigo: "#4b0082", + ivory: "#fffff0", + khaki: "#f0e68c", + lavender: "#e6e6fa", + lavenderblush: "#fff0f5", + lawngreen: "#7cfc00", + lemonchiffon: "#fffacd", + lightblue: "#add8e6", + lightcoral: "#f08080", + lightcyan: "#e0ffff", + lightgoldenrodyellow: "#fafad2", + lightgray: "#d3d3d3", + lightgreen: "#90ee90", + lightgrey: "#d3d3d3", + lightpink: "#ffb6c1", + lightsalmon: "#ffa07a", + lightseagreen: "#20b2aa", + lightskyblue: "#87cefa", + lightslategray: "#778899", + lightslategrey: "#778899", + lightsteelblue: "#b0c4de", + lightyellow: "#ffffe0", + lime: "#00ff00", + limegreen: "#32cd32", + linen: "#faf0e6", + magenta: "#ff00ff", + maroon: "#800000", + mediumaquamarine: "#66cdaa", + mediumblue: "#0000cd", + mediumorchid: "#ba55d3", + mediumpurple: "#9370db", + mediumseagreen: "#3cb371", + mediumslateblue: "#7b68ee", + mediumspringgreen: "#00fa9a", + mediumturquoise: "#48d1cc", + mediumvioletred: "#c71585", + midnightblue: "#191970", + mintcream: "#f5fffa", + mistyrose: "#ffe4e1", + moccasin: "#ffe4b5", + navajowhite: "#ffdead", + navy: "#000080", + oldlace: "#fdf5e6", + olive: "#808000", + olivedrab: "#6b8e23", + orange: "#ffa500", + orangered: "#ff4500", + orchid: "#da70d6", + palegoldenrod: "#eee8aa", + palegreen: "#98fb98", + paleturquoise: "#afeeee", + palevioletred: "#db7093", + papayawhip: "#ffefd5", + peachpuff: "#ffdab9", + peru: "#cd853f", + pink: "#ffc0cb", + plum: "#dda0dd", + powderblue: "#b0e0e6", + purple: "#800080", + rebeccapurple: "#663399", + red: "#ff0000", + rosybrown: "#bc8f8f", + royalblue: "#4169e1", + saddlebrown: "#8b4513", + salmon: "#fa8072", + sandybrown: "#f4a460", + seagreen: "#2e8b57", + seashell: "#fff5ee", + sienna: "#a0522d", + silver: "#c0c0c0", + skyblue: "#87ceeb", + slateblue: "#6a5acd", + slategray: "#708090", + slategrey: "#708090", + snow: "#fffafa", + springgreen: "#00ff7f", + tan: "#d2b48c", + teal: "#008080", + thistle: "#d8bfd8", + transparent: "#00000000", + turquoise: "#40e0d0", + violet: "#ee82ee", + wheat: "#f5deb3", + white: "#ffffff", + whitesmoke: "#f5f5f5", + yellow: "#ffff00", + yellowgreen: "#9acd32" + }, + /* API */ + parse: (t) => { + t = t.toLowerCase(); + const e = Pi.colors[t]; + if (e) + return Ze.parse(e); + }, + stringify: (t) => { + const e = Ze.stringify(t); + for (const i in Pi.colors) + if (Pi.colors[i] === e) + return i; + } +}, ts = Pi, Ma = { + /* VARIABLES */ + re: /^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i, + /* API */ + parse: (t) => { + const e = t.charCodeAt(0); + if (e !== 114 && e !== 82) + return; + const i = t.match(Ma.re); + if (!i) + return; + const [, r, n, o, s, a, l, h, u] = i; + return yr.set({ + r: $.channel.clamp.r(n ? parseFloat(r) * 2.55 : parseFloat(r)), + g: $.channel.clamp.g(s ? parseFloat(o) * 2.55 : parseFloat(o)), + b: $.channel.clamp.b(l ? parseFloat(a) * 2.55 : parseFloat(a)), + a: h ? $.channel.clamp.a(u ? parseFloat(h) / 100 : parseFloat(h)) : 1 + }, t); + }, + stringify: (t) => { + const { r: e, g: i, b: r, a: n } = t; + return n < 1 ? `rgba(${$.lang.round(e)}, ${$.lang.round(i)}, ${$.lang.round(r)}, ${$.lang.round(n)})` : `rgb(${$.lang.round(e)}, ${$.lang.round(i)}, ${$.lang.round(r)})`; + } +}, Li = Ma, Ud = { + /* VARIABLES */ + format: { + keyword: ts, + hex: Ze, + rgb: Li, + rgba: Li, + hsl: Ai, + hsla: Ai + }, + /* API */ + parse: (t) => { + if (typeof t != "string") + return t; + const e = Ze.parse(t) || Li.parse(t) || Ai.parse(t) || ts.parse(t); + if (e) + return e; + throw new Error(`Unsupported color format: "${t}"`); + }, + stringify: (t) => !t.changed && t.color ? t.color : t.type.is(ot.HSL) || t.data.r === void 0 ? Ai.stringify(t) : t.a < 1 || !Number.isInteger(t.r) || !Number.isInteger(t.g) || !Number.isInteger(t.b) ? Li.stringify(t) : Ze.stringify(t) +}, Ot = Ud, Yd = (t, e) => { + const i = Ot.parse(t); + for (const r in e) + i[r] = $.channel.clamp[r](e[r]); + return Ot.stringify(i); +}, Oa = Yd, Gd = (t, e, i = 0, r = 1) => { + if (typeof t != "number") + return Oa(t, { a: e }); + const n = yr.set({ + r: $.channel.clamp.r(t), + g: $.channel.clamp.g(e), + b: $.channel.clamp.b(i), + a: $.channel.clamp.a(r) + }); + return Ot.stringify(n); +}, Je = Gd, Vd = (t) => { + const { r: e, g: i, b: r } = Ot.parse(t), n = 0.2126 * $.channel.toLinear(e) + 0.7152 * $.channel.toLinear(i) + 0.0722 * $.channel.toLinear(r); + return $.lang.round(n); +}, Xd = Vd, Kd = (t) => Xd(t) >= 0.5, Zd = Kd, Jd = (t) => !Zd(t), mi = Jd, Qd = (t, e, i) => { + const r = Ot.parse(t), n = r[e], o = $.channel.clamp[e](n + i); + return n !== o && (r[e] = o), Ot.stringify(r); +}, $a = Qd, tp = (t, e) => $a(t, "l", e), F = tp, ep = (t, e) => $a(t, "l", -e), E = ep, ip = (t, e) => { + const i = Ot.parse(t), r = {}; + for (const n in e) + e[n] && (r[n] = i[n] + e[n]); + return Oa(t, r); +}, g = ip, rp = (t, e, i = 50) => { + const { r, g: n, b: o, a: s } = Ot.parse(t), { r: a, g: l, b: h, a: u } = Ot.parse(e), f = i / 100, c = f * 2 - 1, d = s - u, S = ((c * d === -1 ? c : (c + d) / (1 + c * d)) + 1) / 2, O = 1 - S, z = r * S + a * O, T = n * S + l * O, R = o * S + h * O, X = s * f + u * (1 - f); + return Je(z, T, R, X); +}, np = rp, op = (t, e = 100) => { + const i = Ot.parse(t); + return i.r = 255 - i.r, i.g = 255 - i.g, i.b = 255 - i.b, np(i, t, e); +}, _ = op, ht = (t, e) => e ? g(t, { s: -40, l: 10 }) : g(t, { s: -40, l: -10 }), _r = "#ffffff", Cr = "#f2f2f2"; +let sp = class { + constructor() { + this.background = "#f4f4f4", this.primaryColor = "#fff4dd", this.noteBkgColor = "#fff5ad", this.noteTextColor = "#333", this.THEME_COLOR_LIMIT = 12, this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif', this.fontSize = "16px"; + } + updateColors() { + var i, r, n, o, s, a, l, h, u, f, c; + if (this.primaryTextColor = this.primaryTextColor || (this.darkMode ? "#eee" : "#333"), this.secondaryColor = this.secondaryColor || g(this.primaryColor, { h: -120 }), this.tertiaryColor = this.tertiaryColor || g(this.primaryColor, { h: 180, l: 5 }), this.primaryBorderColor = this.primaryBorderColor || ht(this.primaryColor, this.darkMode), this.secondaryBorderColor = this.secondaryBorderColor || ht(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = this.tertiaryBorderColor || ht(this.tertiaryColor, this.darkMode), this.noteBorderColor = this.noteBorderColor || ht(this.noteBkgColor, this.darkMode), this.noteBkgColor = this.noteBkgColor || "#fff5ad", this.noteTextColor = this.noteTextColor || "#333", this.secondaryTextColor = this.secondaryTextColor || _(this.secondaryColor), this.tertiaryTextColor = this.tertiaryTextColor || _(this.tertiaryColor), this.lineColor = this.lineColor || _(this.background), this.arrowheadColor = this.arrowheadColor || _(this.background), this.textColor = this.textColor || this.primaryTextColor, this.border2 = this.border2 || this.tertiaryBorderColor, this.nodeBkg = this.nodeBkg || this.primaryColor, this.mainBkg = this.mainBkg || this.primaryColor, this.nodeBorder = this.nodeBorder || this.primaryBorderColor, this.clusterBkg = this.clusterBkg || this.tertiaryColor, this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor, this.defaultLinkColor = this.defaultLinkColor || this.lineColor, this.titleColor = this.titleColor || this.tertiaryTextColor, this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? E(this.secondaryColor, 30) : this.secondaryColor), this.nodeTextColor = this.nodeTextColor || this.primaryTextColor, this.actorBorder = this.actorBorder || this.primaryBorderColor, this.actorBkg = this.actorBkg || this.mainBkg, this.actorTextColor = this.actorTextColor || this.primaryTextColor, this.actorLineColor = this.actorLineColor || "grey", this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg, this.signalColor = this.signalColor || this.textColor, this.signalTextColor = this.signalTextColor || this.textColor, this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder, this.labelTextColor = this.labelTextColor || this.actorTextColor, this.loopTextColor = this.loopTextColor || this.actorTextColor, this.activationBorderColor = this.activationBorderColor || E(this.secondaryColor, 10), this.activationBkgColor = this.activationBkgColor || this.secondaryColor, this.sequenceNumberColor = this.sequenceNumberColor || _(this.lineColor), this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor, this.altSectionBkgColor = this.altSectionBkgColor || "white", this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor, this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor, this.excludeBkgColor = this.excludeBkgColor || "#eeeeee", this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor, this.taskBkgColor = this.taskBkgColor || this.primaryColor, this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor, this.activeTaskBkgColor = this.activeTaskBkgColor || F(this.primaryColor, 23), this.gridColor = this.gridColor || "lightgrey", this.doneTaskBkgColor = this.doneTaskBkgColor || "lightgrey", this.doneTaskBorderColor = this.doneTaskBorderColor || "grey", this.critBorderColor = this.critBorderColor || "#ff8888", this.critBkgColor = this.critBkgColor || "red", this.todayLineColor = this.todayLineColor || "red", this.taskTextColor = this.taskTextColor || this.textColor, this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor, this.taskTextLightColor = this.taskTextLightColor || this.textColor, this.taskTextColor = this.taskTextColor || this.primaryTextColor, this.taskTextDarkColor = this.taskTextDarkColor || this.textColor, this.taskTextClickableColor = this.taskTextClickableColor || "#003163", this.personBorder = this.personBorder || this.primaryBorderColor, this.personBkg = this.personBkg || this.mainBkg, this.transitionColor = this.transitionColor || this.lineColor, this.transitionLabelColor = this.transitionLabelColor || this.textColor, this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor, this.stateBkg = this.stateBkg || this.mainBkg, this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg, this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor, this.altBackground = this.altBackground || this.tertiaryColor, this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg, this.compositeBorder = this.compositeBorder || this.nodeBorder, this.innerEndBackground = this.nodeBorder, this.errorBkgColor = this.errorBkgColor || this.tertiaryColor, this.errorTextColor = this.errorTextColor || this.tertiaryTextColor, this.transitionColor = this.transitionColor || this.lineColor, this.specialStateColor = this.lineColor, this.cScale0 = this.cScale0 || this.primaryColor, this.cScale1 = this.cScale1 || this.secondaryColor, this.cScale2 = this.cScale2 || this.tertiaryColor, this.cScale3 = this.cScale3 || g(this.primaryColor, { h: 30 }), this.cScale4 = this.cScale4 || g(this.primaryColor, { h: 60 }), this.cScale5 = this.cScale5 || g(this.primaryColor, { h: 90 }), this.cScale6 = this.cScale6 || g(this.primaryColor, { h: 120 }), this.cScale7 = this.cScale7 || g(this.primaryColor, { h: 150 }), this.cScale8 = this.cScale8 || g(this.primaryColor, { h: 210, l: 150 }), this.cScale9 = this.cScale9 || g(this.primaryColor, { h: 270 }), this.cScale10 = this.cScale10 || g(this.primaryColor, { h: 300 }), this.cScale11 = this.cScale11 || g(this.primaryColor, { h: 330 }), this.darkMode) + for (let d = 0; d < this.THEME_COLOR_LIMIT; d++) + this["cScale" + d] = E(this["cScale" + d], 75); + else + for (let d = 0; d < this.THEME_COLOR_LIMIT; d++) + this["cScale" + d] = E(this["cScale" + d], 25); + for (let d = 0; d < this.THEME_COLOR_LIMIT; d++) + this["cScaleInv" + d] = this["cScaleInv" + d] || _(this["cScale" + d]); + for (let d = 0; d < this.THEME_COLOR_LIMIT; d++) + this.darkMode ? this["cScalePeer" + d] = this["cScalePeer" + d] || F(this["cScale" + d], 10) : this["cScalePeer" + d] = this["cScalePeer" + d] || E(this["cScale" + d], 10); + this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor; + for (let d = 0; d < this.THEME_COLOR_LIMIT; d++) + this["cScaleLabel" + d] = this["cScaleLabel" + d] || this.scaleLabelColor; + const e = this.darkMode ? -4 : -1; + for (let d = 0; d < 5; d++) + this["surface" + d] = this["surface" + d] || g(this.mainBkg, { h: 180, s: -15, l: e * (5 + d * 3) }), this["surfacePeer" + d] = this["surfacePeer" + d] || g(this.mainBkg, { h: 180, s: -15, l: e * (8 + d * 3) }); + this.classText = this.classText || this.textColor, this.fillType0 = this.fillType0 || this.primaryColor, this.fillType1 = this.fillType1 || this.secondaryColor, this.fillType2 = this.fillType2 || g(this.primaryColor, { h: 64 }), this.fillType3 = this.fillType3 || g(this.secondaryColor, { h: 64 }), this.fillType4 = this.fillType4 || g(this.primaryColor, { h: -64 }), this.fillType5 = this.fillType5 || g(this.secondaryColor, { h: -64 }), this.fillType6 = this.fillType6 || g(this.primaryColor, { h: 128 }), this.fillType7 = this.fillType7 || g(this.secondaryColor, { h: 128 }), this.pie1 = this.pie1 || this.primaryColor, this.pie2 = this.pie2 || this.secondaryColor, this.pie3 = this.pie3 || this.tertiaryColor, this.pie4 = this.pie4 || g(this.primaryColor, { l: -10 }), this.pie5 = this.pie5 || g(this.secondaryColor, { l: -10 }), this.pie6 = this.pie6 || g(this.tertiaryColor, { l: -10 }), this.pie7 = this.pie7 || g(this.primaryColor, { h: 60, l: -10 }), this.pie8 = this.pie8 || g(this.primaryColor, { h: -60, l: -10 }), this.pie9 = this.pie9 || g(this.primaryColor, { h: 120, l: 0 }), this.pie10 = this.pie10 || g(this.primaryColor, { h: 60, l: -20 }), this.pie11 = this.pie11 || g(this.primaryColor, { h: -60, l: -20 }), this.pie12 = this.pie12 || g(this.primaryColor, { h: 120, l: -10 }), this.pieTitleTextSize = this.pieTitleTextSize || "25px", this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor, this.pieSectionTextSize = this.pieSectionTextSize || "17px", this.pieSectionTextColor = this.pieSectionTextColor || this.textColor, this.pieLegendTextSize = this.pieLegendTextSize || "17px", this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor, this.pieStrokeColor = this.pieStrokeColor || "black", this.pieStrokeWidth = this.pieStrokeWidth || "2px", this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px", this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black", this.pieOpacity = this.pieOpacity || "0.7", this.quadrant1Fill = this.quadrant1Fill || this.primaryColor, this.quadrant2Fill = this.quadrant2Fill || g(this.primaryColor, { r: 5, g: 5, b: 5 }), this.quadrant3Fill = this.quadrant3Fill || g(this.primaryColor, { r: 10, g: 10, b: 10 }), this.quadrant4Fill = this.quadrant4Fill || g(this.primaryColor, { r: 15, g: 15, b: 15 }), this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor, this.quadrant2TextFill = this.quadrant2TextFill || g(this.primaryTextColor, { r: -5, g: -5, b: -5 }), this.quadrant3TextFill = this.quadrant3TextFill || g(this.primaryTextColor, { r: -10, g: -10, b: -10 }), this.quadrant4TextFill = this.quadrant4TextFill || g(this.primaryTextColor, { r: -15, g: -15, b: -15 }), this.quadrantPointFill = this.quadrantPointFill || mi(this.quadrant1Fill) ? F(this.quadrant1Fill) : E(this.quadrant1Fill), this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor, this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor, this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor, this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor, this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor, this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor, this.xyChart = { + backgroundColor: ((i = this.xyChart) == null ? void 0 : i.backgroundColor) || this.background, + titleColor: ((r = this.xyChart) == null ? void 0 : r.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((n = this.xyChart) == null ? void 0 : n.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((o = this.xyChart) == null ? void 0 : o.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((s = this.xyChart) == null ? void 0 : s.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((a = this.xyChart) == null ? void 0 : a.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((l = this.xyChart) == null ? void 0 : l.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((h = this.xyChart) == null ? void 0 : h.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((u = this.xyChart) == null ? void 0 : u.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((f = this.xyChart) == null ? void 0 : f.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((c = this.xyChart) == null ? void 0 : c.plotColorPalette) || "#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0" + }, this.requirementBackground = this.requirementBackground || this.primaryColor, this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor, this.requirementBorderSize = this.requirementBorderSize || "1", this.requirementTextColor = this.requirementTextColor || this.primaryTextColor, this.relationColor = this.relationColor || this.lineColor, this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? E(this.secondaryColor, 30) : this.secondaryColor), this.relationLabelColor = this.relationLabelColor || this.actorTextColor, this.git0 = this.git0 || this.primaryColor, this.git1 = this.git1 || this.secondaryColor, this.git2 = this.git2 || this.tertiaryColor, this.git3 = this.git3 || g(this.primaryColor, { h: -30 }), this.git4 = this.git4 || g(this.primaryColor, { h: -60 }), this.git5 = this.git5 || g(this.primaryColor, { h: -90 }), this.git6 = this.git6 || g(this.primaryColor, { h: 60 }), this.git7 = this.git7 || g(this.primaryColor, { h: 120 }), this.darkMode ? (this.git0 = F(this.git0, 25), this.git1 = F(this.git1, 25), this.git2 = F(this.git2, 25), this.git3 = F(this.git3, 25), this.git4 = F(this.git4, 25), this.git5 = F(this.git5, 25), this.git6 = F(this.git6, 25), this.git7 = F(this.git7, 25)) : (this.git0 = E(this.git0, 25), this.git1 = E(this.git1, 25), this.git2 = E(this.git2, 25), this.git3 = E(this.git3, 25), this.git4 = E(this.git4, 25), this.git5 = E(this.git5, 25), this.git6 = E(this.git6, 25), this.git7 = E(this.git7, 25)), this.gitInv0 = this.gitInv0 || _(this.git0), this.gitInv1 = this.gitInv1 || _(this.git1), this.gitInv2 = this.gitInv2 || _(this.git2), this.gitInv3 = this.gitInv3 || _(this.git3), this.gitInv4 = this.gitInv4 || _(this.git4), this.gitInv5 = this.gitInv5 || _(this.git5), this.gitInv6 = this.gitInv6 || _(this.git6), this.gitInv7 = this.gitInv7 || _(this.git7), this.branchLabelColor = this.branchLabelColor || (this.darkMode ? "black" : this.labelTextColor), this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor, this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor, this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor, this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor, this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor, this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor, this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor, this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor, this.tagLabelColor = this.tagLabelColor || this.primaryTextColor, this.tagLabelBackground = this.tagLabelBackground || this.primaryColor, this.tagLabelBorder = this.tagBorder || this.primaryBorderColor, this.tagLabelFontSize = this.tagLabelFontSize || "10px", this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor, this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor, this.commitLabelFontSize = this.commitLabelFontSize || "10px", this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || _r, this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || Cr; + } + calculate(e) { + if (typeof e != "object") { + this.updateColors(); + return; + } + const i = Object.keys(e); + i.forEach((r) => { + this[r] = e[r]; + }), this.updateColors(), i.forEach((r) => { + this[r] = e[r]; + }); + } +}; +const ap = (t) => { + const e = new sp(); + return e.calculate(t), e; +}; +let lp = class { + constructor() { + this.background = "#333", this.primaryColor = "#1f2020", this.secondaryColor = F(this.primaryColor, 16), this.tertiaryColor = g(this.primaryColor, { h: -160 }), this.primaryBorderColor = _(this.background), this.secondaryBorderColor = ht(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = ht(this.tertiaryColor, this.darkMode), this.primaryTextColor = _(this.primaryColor), this.secondaryTextColor = _(this.secondaryColor), this.tertiaryTextColor = _(this.tertiaryColor), this.lineColor = _(this.background), this.textColor = _(this.background), this.mainBkg = "#1f2020", this.secondBkg = "calculated", this.mainContrastColor = "lightgrey", this.darkTextColor = F(_("#323D47"), 10), this.lineColor = "calculated", this.border1 = "#81B1DB", this.border2 = Je(255, 255, 255, 0.25), this.arrowheadColor = "calculated", this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif', this.fontSize = "16px", this.labelBackground = "#181818", this.textColor = "#ccc", this.THEME_COLOR_LIMIT = 12, this.nodeBkg = "calculated", this.nodeBorder = "calculated", this.clusterBkg = "calculated", this.clusterBorder = "calculated", this.defaultLinkColor = "calculated", this.titleColor = "#F9FFFE", this.edgeLabelBackground = "calculated", this.actorBorder = "calculated", this.actorBkg = "calculated", this.actorTextColor = "calculated", this.actorLineColor = "calculated", this.signalColor = "calculated", this.signalTextColor = "calculated", this.labelBoxBkgColor = "calculated", this.labelBoxBorderColor = "calculated", this.labelTextColor = "calculated", this.loopTextColor = "calculated", this.noteBorderColor = "calculated", this.noteBkgColor = "#fff5ad", this.noteTextColor = "calculated", this.activationBorderColor = "calculated", this.activationBkgColor = "calculated", this.sequenceNumberColor = "black", this.sectionBkgColor = E("#EAE8D9", 30), this.altSectionBkgColor = "calculated", this.sectionBkgColor2 = "#EAE8D9", this.excludeBkgColor = E(this.sectionBkgColor, 10), this.taskBorderColor = Je(255, 255, 255, 70), this.taskBkgColor = "calculated", this.taskTextColor = "calculated", this.taskTextLightColor = "calculated", this.taskTextOutsideColor = "calculated", this.taskTextClickableColor = "#003163", this.activeTaskBorderColor = Je(255, 255, 255, 50), this.activeTaskBkgColor = "#81B1DB", this.gridColor = "calculated", this.doneTaskBkgColor = "calculated", this.doneTaskBorderColor = "grey", this.critBorderColor = "#E83737", this.critBkgColor = "#E83737", this.taskTextDarkColor = "calculated", this.todayLineColor = "#DB5757", this.personBorder = this.primaryBorderColor, this.personBkg = this.mainBkg, this.labelColor = "calculated", this.errorBkgColor = "#a44141", this.errorTextColor = "#ddd"; + } + updateColors() { + var e, i, r, n, o, s, a, l, h, u, f; + this.secondBkg = F(this.mainBkg, 16), this.lineColor = this.mainContrastColor, this.arrowheadColor = this.mainContrastColor, this.nodeBkg = this.mainBkg, this.nodeBorder = this.border1, this.clusterBkg = this.secondBkg, this.clusterBorder = this.border2, this.defaultLinkColor = this.lineColor, this.edgeLabelBackground = F(this.labelBackground, 25), this.actorBorder = this.border1, this.actorBkg = this.mainBkg, this.actorTextColor = this.mainContrastColor, this.actorLineColor = this.mainContrastColor, this.signalColor = this.mainContrastColor, this.signalTextColor = this.mainContrastColor, this.labelBoxBkgColor = this.actorBkg, this.labelBoxBorderColor = this.actorBorder, this.labelTextColor = this.mainContrastColor, this.loopTextColor = this.mainContrastColor, this.noteBorderColor = this.secondaryBorderColor, this.noteBkgColor = this.secondBkg, this.noteTextColor = this.secondaryTextColor, this.activationBorderColor = this.border1, this.activationBkgColor = this.secondBkg, this.altSectionBkgColor = this.background, this.taskBkgColor = F(this.mainBkg, 23), this.taskTextColor = this.darkTextColor, this.taskTextLightColor = this.mainContrastColor, this.taskTextOutsideColor = this.taskTextLightColor, this.gridColor = this.mainContrastColor, this.doneTaskBkgColor = this.mainContrastColor, this.taskTextDarkColor = this.darkTextColor, this.transitionColor = this.transitionColor || this.lineColor, this.transitionLabelColor = this.transitionLabelColor || this.textColor, this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor, this.stateBkg = this.stateBkg || this.mainBkg, this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg, this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor, this.altBackground = this.altBackground || "#555", this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg, this.compositeBorder = this.compositeBorder || this.nodeBorder, this.innerEndBackground = this.primaryBorderColor, this.specialStateColor = "#f4f4f4", this.errorBkgColor = this.errorBkgColor || this.tertiaryColor, this.errorTextColor = this.errorTextColor || this.tertiaryTextColor, this.fillType0 = this.primaryColor, this.fillType1 = this.secondaryColor, this.fillType2 = g(this.primaryColor, { h: 64 }), this.fillType3 = g(this.secondaryColor, { h: 64 }), this.fillType4 = g(this.primaryColor, { h: -64 }), this.fillType5 = g(this.secondaryColor, { h: -64 }), this.fillType6 = g(this.primaryColor, { h: 128 }), this.fillType7 = g(this.secondaryColor, { h: 128 }), this.cScale1 = this.cScale1 || "#0b0000", this.cScale2 = this.cScale2 || "#4d1037", this.cScale3 = this.cScale3 || "#3f5258", this.cScale4 = this.cScale4 || "#4f2f1b", this.cScale5 = this.cScale5 || "#6e0a0a", this.cScale6 = this.cScale6 || "#3b0048", this.cScale7 = this.cScale7 || "#995a01", this.cScale8 = this.cScale8 || "#154706", this.cScale9 = this.cScale9 || "#161722", this.cScale10 = this.cScale10 || "#00296f", this.cScale11 = this.cScale11 || "#01629c", this.cScale12 = this.cScale12 || "#010029", this.cScale0 = this.cScale0 || this.primaryColor, this.cScale1 = this.cScale1 || this.secondaryColor, this.cScale2 = this.cScale2 || this.tertiaryColor, this.cScale3 = this.cScale3 || g(this.primaryColor, { h: 30 }), this.cScale4 = this.cScale4 || g(this.primaryColor, { h: 60 }), this.cScale5 = this.cScale5 || g(this.primaryColor, { h: 90 }), this.cScale6 = this.cScale6 || g(this.primaryColor, { h: 120 }), this.cScale7 = this.cScale7 || g(this.primaryColor, { h: 150 }), this.cScale8 = this.cScale8 || g(this.primaryColor, { h: 210 }), this.cScale9 = this.cScale9 || g(this.primaryColor, { h: 270 }), this.cScale10 = this.cScale10 || g(this.primaryColor, { h: 300 }), this.cScale11 = this.cScale11 || g(this.primaryColor, { h: 330 }); + for (let c = 0; c < this.THEME_COLOR_LIMIT; c++) + this["cScaleInv" + c] = this["cScaleInv" + c] || _(this["cScale" + c]); + for (let c = 0; c < this.THEME_COLOR_LIMIT; c++) + this["cScalePeer" + c] = this["cScalePeer" + c] || F(this["cScale" + c], 10); + for (let c = 0; c < 5; c++) + this["surface" + c] = this["surface" + c] || g(this.mainBkg, { h: 30, s: -30, l: -(-10 + c * 4) }), this["surfacePeer" + c] = this["surfacePeer" + c] || g(this.mainBkg, { h: 30, s: -30, l: -(-7 + c * 4) }); + this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor); + for (let c = 0; c < this.THEME_COLOR_LIMIT; c++) + this["cScaleLabel" + c] = this["cScaleLabel" + c] || this.scaleLabelColor; + for (let c = 0; c < this.THEME_COLOR_LIMIT; c++) + this["pie" + c] = this["cScale" + c]; + this.pieTitleTextSize = this.pieTitleTextSize || "25px", this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor, this.pieSectionTextSize = this.pieSectionTextSize || "17px", this.pieSectionTextColor = this.pieSectionTextColor || this.textColor, this.pieLegendTextSize = this.pieLegendTextSize || "17px", this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor, this.pieStrokeColor = this.pieStrokeColor || "black", this.pieStrokeWidth = this.pieStrokeWidth || "2px", this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px", this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black", this.pieOpacity = this.pieOpacity || "0.7", this.quadrant1Fill = this.quadrant1Fill || this.primaryColor, this.quadrant2Fill = this.quadrant2Fill || g(this.primaryColor, { r: 5, g: 5, b: 5 }), this.quadrant3Fill = this.quadrant3Fill || g(this.primaryColor, { r: 10, g: 10, b: 10 }), this.quadrant4Fill = this.quadrant4Fill || g(this.primaryColor, { r: 15, g: 15, b: 15 }), this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor, this.quadrant2TextFill = this.quadrant2TextFill || g(this.primaryTextColor, { r: -5, g: -5, b: -5 }), this.quadrant3TextFill = this.quadrant3TextFill || g(this.primaryTextColor, { r: -10, g: -10, b: -10 }), this.quadrant4TextFill = this.quadrant4TextFill || g(this.primaryTextColor, { r: -15, g: -15, b: -15 }), this.quadrantPointFill = this.quadrantPointFill || mi(this.quadrant1Fill) ? F(this.quadrant1Fill) : E(this.quadrant1Fill), this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor, this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor, this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor, this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor, this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor, this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor, this.xyChart = { + backgroundColor: ((e = this.xyChart) == null ? void 0 : e.backgroundColor) || this.background, + titleColor: ((i = this.xyChart) == null ? void 0 : i.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((r = this.xyChart) == null ? void 0 : r.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((n = this.xyChart) == null ? void 0 : n.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((o = this.xyChart) == null ? void 0 : o.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((s = this.xyChart) == null ? void 0 : s.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((a = this.xyChart) == null ? void 0 : a.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((l = this.xyChart) == null ? void 0 : l.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((h = this.xyChart) == null ? void 0 : h.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((u = this.xyChart) == null ? void 0 : u.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((f = this.xyChart) == null ? void 0 : f.plotColorPalette) || "#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22" + }, this.classText = this.primaryTextColor, this.requirementBackground = this.requirementBackground || this.primaryColor, this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor, this.requirementBorderSize = this.requirementBorderSize || "1", this.requirementTextColor = this.requirementTextColor || this.primaryTextColor, this.relationColor = this.relationColor || this.lineColor, this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? E(this.secondaryColor, 30) : this.secondaryColor), this.relationLabelColor = this.relationLabelColor || this.actorTextColor, this.git0 = F(this.secondaryColor, 20), this.git1 = F(this.pie2 || this.secondaryColor, 20), this.git2 = F(this.pie3 || this.tertiaryColor, 20), this.git3 = F(this.pie4 || g(this.primaryColor, { h: -30 }), 20), this.git4 = F(this.pie5 || g(this.primaryColor, { h: -60 }), 20), this.git5 = F(this.pie6 || g(this.primaryColor, { h: -90 }), 10), this.git6 = F(this.pie7 || g(this.primaryColor, { h: 60 }), 10), this.git7 = F(this.pie8 || g(this.primaryColor, { h: 120 }), 20), this.gitInv0 = this.gitInv0 || _(this.git0), this.gitInv1 = this.gitInv1 || _(this.git1), this.gitInv2 = this.gitInv2 || _(this.git2), this.gitInv3 = this.gitInv3 || _(this.git3), this.gitInv4 = this.gitInv4 || _(this.git4), this.gitInv5 = this.gitInv5 || _(this.git5), this.gitInv6 = this.gitInv6 || _(this.git6), this.gitInv7 = this.gitInv7 || _(this.git7), this.gitBranchLabel0 = this.gitBranchLabel0 || _(this.labelTextColor), this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor, this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor, this.gitBranchLabel3 = this.gitBranchLabel3 || _(this.labelTextColor), this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor, this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor, this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor, this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor, this.tagLabelColor = this.tagLabelColor || this.primaryTextColor, this.tagLabelBackground = this.tagLabelBackground || this.primaryColor, this.tagLabelBorder = this.tagBorder || this.primaryBorderColor, this.tagLabelFontSize = this.tagLabelFontSize || "10px", this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor, this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor, this.commitLabelFontSize = this.commitLabelFontSize || "10px", this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || F(this.background, 12), this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || F(this.background, 2); + } + calculate(e) { + if (typeof e != "object") { + this.updateColors(); + return; + } + const i = Object.keys(e); + i.forEach((r) => { + this[r] = e[r]; + }), this.updateColors(), i.forEach((r) => { + this[r] = e[r]; + }); + } +}; +const hp = (t) => { + const e = new lp(); + return e.calculate(t), e; +}; +let cp = class { + constructor() { + this.background = "#f4f4f4", this.primaryColor = "#ECECFF", this.secondaryColor = g(this.primaryColor, { h: 120 }), this.secondaryColor = "#ffffde", this.tertiaryColor = g(this.primaryColor, { h: -160 }), this.primaryBorderColor = ht(this.primaryColor, this.darkMode), this.secondaryBorderColor = ht(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = ht(this.tertiaryColor, this.darkMode), this.primaryTextColor = _(this.primaryColor), this.secondaryTextColor = _(this.secondaryColor), this.tertiaryTextColor = _(this.tertiaryColor), this.lineColor = _(this.background), this.textColor = _(this.background), this.background = "white", this.mainBkg = "#ECECFF", this.secondBkg = "#ffffde", this.lineColor = "#333333", this.border1 = "#9370DB", this.border2 = "#aaaa33", this.arrowheadColor = "#333333", this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif', this.fontSize = "16px", this.labelBackground = "#e8e8e8", this.textColor = "#333", this.THEME_COLOR_LIMIT = 12, this.nodeBkg = "calculated", this.nodeBorder = "calculated", this.clusterBkg = "calculated", this.clusterBorder = "calculated", this.defaultLinkColor = "calculated", this.titleColor = "calculated", this.edgeLabelBackground = "calculated", this.actorBorder = "calculated", this.actorBkg = "calculated", this.actorTextColor = "black", this.actorLineColor = "grey", this.signalColor = "calculated", this.signalTextColor = "calculated", this.labelBoxBkgColor = "calculated", this.labelBoxBorderColor = "calculated", this.labelTextColor = "calculated", this.loopTextColor = "calculated", this.noteBorderColor = "calculated", this.noteBkgColor = "#fff5ad", this.noteTextColor = "calculated", this.activationBorderColor = "#666", this.activationBkgColor = "#f4f4f4", this.sequenceNumberColor = "white", this.sectionBkgColor = "calculated", this.altSectionBkgColor = "calculated", this.sectionBkgColor2 = "calculated", this.excludeBkgColor = "#eeeeee", this.taskBorderColor = "calculated", this.taskBkgColor = "calculated", this.taskTextLightColor = "calculated", this.taskTextColor = this.taskTextLightColor, this.taskTextDarkColor = "calculated", this.taskTextOutsideColor = this.taskTextDarkColor, this.taskTextClickableColor = "calculated", this.activeTaskBorderColor = "calculated", this.activeTaskBkgColor = "calculated", this.gridColor = "calculated", this.doneTaskBkgColor = "calculated", this.doneTaskBorderColor = "calculated", this.critBorderColor = "calculated", this.critBkgColor = "calculated", this.todayLineColor = "calculated", this.sectionBkgColor = Je(102, 102, 255, 0.49), this.altSectionBkgColor = "white", this.sectionBkgColor2 = "#fff400", this.taskBorderColor = "#534fbc", this.taskBkgColor = "#8a90dd", this.taskTextLightColor = "white", this.taskTextColor = "calculated", this.taskTextDarkColor = "black", this.taskTextOutsideColor = "calculated", this.taskTextClickableColor = "#003163", this.activeTaskBorderColor = "#534fbc", this.activeTaskBkgColor = "#bfc7ff", this.gridColor = "lightgrey", this.doneTaskBkgColor = "lightgrey", this.doneTaskBorderColor = "grey", this.critBorderColor = "#ff8888", this.critBkgColor = "red", this.todayLineColor = "red", this.personBorder = this.primaryBorderColor, this.personBkg = this.mainBkg, this.labelColor = "black", this.errorBkgColor = "#552222", this.errorTextColor = "#552222", this.updateColors(); + } + updateColors() { + var e, i, r, n, o, s, a, l, h, u, f; + this.cScale0 = this.cScale0 || this.primaryColor, this.cScale1 = this.cScale1 || this.secondaryColor, this.cScale2 = this.cScale2 || this.tertiaryColor, this.cScale3 = this.cScale3 || g(this.primaryColor, { h: 30 }), this.cScale4 = this.cScale4 || g(this.primaryColor, { h: 60 }), this.cScale5 = this.cScale5 || g(this.primaryColor, { h: 90 }), this.cScale6 = this.cScale6 || g(this.primaryColor, { h: 120 }), this.cScale7 = this.cScale7 || g(this.primaryColor, { h: 150 }), this.cScale8 = this.cScale8 || g(this.primaryColor, { h: 210 }), this.cScale9 = this.cScale9 || g(this.primaryColor, { h: 270 }), this.cScale10 = this.cScale10 || g(this.primaryColor, { h: 300 }), this.cScale11 = this.cScale11 || g(this.primaryColor, { h: 330 }), this["cScalePeer1"] = this["cScalePeer1"] || E(this.secondaryColor, 45), this["cScalePeer2"] = this["cScalePeer2"] || E(this.tertiaryColor, 40); + for (let c = 0; c < this.THEME_COLOR_LIMIT; c++) + this["cScale" + c] = E(this["cScale" + c], 10), this["cScalePeer" + c] = this["cScalePeer" + c] || E(this["cScale" + c], 25); + for (let c = 0; c < this.THEME_COLOR_LIMIT; c++) + this["cScaleInv" + c] = this["cScaleInv" + c] || g(this["cScale" + c], { h: 180 }); + for (let c = 0; c < 5; c++) + this["surface" + c] = this["surface" + c] || g(this.mainBkg, { h: 30, l: -(5 + c * 5) }), this["surfacePeer" + c] = this["surfacePeer" + c] || g(this.mainBkg, { h: 30, l: -(7 + c * 5) }); + if (this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor, this.labelTextColor !== "calculated") { + this.cScaleLabel0 = this.cScaleLabel0 || _(this.labelTextColor), this.cScaleLabel3 = this.cScaleLabel3 || _(this.labelTextColor); + for (let c = 0; c < this.THEME_COLOR_LIMIT; c++) + this["cScaleLabel" + c] = this["cScaleLabel" + c] || this.labelTextColor; + } + this.nodeBkg = this.mainBkg, this.nodeBorder = this.border1, this.clusterBkg = this.secondBkg, this.clusterBorder = this.border2, this.defaultLinkColor = this.lineColor, this.titleColor = this.textColor, this.edgeLabelBackground = this.labelBackground, this.actorBorder = F(this.border1, 23), this.actorBkg = this.mainBkg, this.labelBoxBkgColor = this.actorBkg, this.signalColor = this.textColor, this.signalTextColor = this.textColor, this.labelBoxBorderColor = this.actorBorder, this.labelTextColor = this.actorTextColor, this.loopTextColor = this.actorTextColor, this.noteBorderColor = this.border2, this.noteTextColor = this.actorTextColor, this.taskTextColor = this.taskTextLightColor, this.taskTextOutsideColor = this.taskTextDarkColor, this.transitionColor = this.transitionColor || this.lineColor, this.transitionLabelColor = this.transitionLabelColor || this.textColor, this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor, this.stateBkg = this.stateBkg || this.mainBkg, this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg, this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor, this.altBackground = this.altBackground || "#f0f0f0", this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg, this.compositeBorder = this.compositeBorder || this.nodeBorder, this.innerEndBackground = this.nodeBorder, this.specialStateColor = this.lineColor, this.errorBkgColor = this.errorBkgColor || this.tertiaryColor, this.errorTextColor = this.errorTextColor || this.tertiaryTextColor, this.transitionColor = this.transitionColor || this.lineColor, this.classText = this.primaryTextColor, this.fillType0 = this.primaryColor, this.fillType1 = this.secondaryColor, this.fillType2 = g(this.primaryColor, { h: 64 }), this.fillType3 = g(this.secondaryColor, { h: 64 }), this.fillType4 = g(this.primaryColor, { h: -64 }), this.fillType5 = g(this.secondaryColor, { h: -64 }), this.fillType6 = g(this.primaryColor, { h: 128 }), this.fillType7 = g(this.secondaryColor, { h: 128 }), this.pie1 = this.pie1 || this.primaryColor, this.pie2 = this.pie2 || this.secondaryColor, this.pie3 = this.pie3 || g(this.tertiaryColor, { l: -40 }), this.pie4 = this.pie4 || g(this.primaryColor, { l: -10 }), this.pie5 = this.pie5 || g(this.secondaryColor, { l: -30 }), this.pie6 = this.pie6 || g(this.tertiaryColor, { l: -20 }), this.pie7 = this.pie7 || g(this.primaryColor, { h: 60, l: -20 }), this.pie8 = this.pie8 || g(this.primaryColor, { h: -60, l: -40 }), this.pie9 = this.pie9 || g(this.primaryColor, { h: 120, l: -40 }), this.pie10 = this.pie10 || g(this.primaryColor, { h: 60, l: -40 }), this.pie11 = this.pie11 || g(this.primaryColor, { h: -90, l: -40 }), this.pie12 = this.pie12 || g(this.primaryColor, { h: 120, l: -30 }), this.pieTitleTextSize = this.pieTitleTextSize || "25px", this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor, this.pieSectionTextSize = this.pieSectionTextSize || "17px", this.pieSectionTextColor = this.pieSectionTextColor || this.textColor, this.pieLegendTextSize = this.pieLegendTextSize || "17px", this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor, this.pieStrokeColor = this.pieStrokeColor || "black", this.pieStrokeWidth = this.pieStrokeWidth || "2px", this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px", this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black", this.pieOpacity = this.pieOpacity || "0.7", this.quadrant1Fill = this.quadrant1Fill || this.primaryColor, this.quadrant2Fill = this.quadrant2Fill || g(this.primaryColor, { r: 5, g: 5, b: 5 }), this.quadrant3Fill = this.quadrant3Fill || g(this.primaryColor, { r: 10, g: 10, b: 10 }), this.quadrant4Fill = this.quadrant4Fill || g(this.primaryColor, { r: 15, g: 15, b: 15 }), this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor, this.quadrant2TextFill = this.quadrant2TextFill || g(this.primaryTextColor, { r: -5, g: -5, b: -5 }), this.quadrant3TextFill = this.quadrant3TextFill || g(this.primaryTextColor, { r: -10, g: -10, b: -10 }), this.quadrant4TextFill = this.quadrant4TextFill || g(this.primaryTextColor, { r: -15, g: -15, b: -15 }), this.quadrantPointFill = this.quadrantPointFill || mi(this.quadrant1Fill) ? F(this.quadrant1Fill) : E(this.quadrant1Fill), this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor, this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor, this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor, this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor, this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor, this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor, this.xyChart = { + backgroundColor: ((e = this.xyChart) == null ? void 0 : e.backgroundColor) || this.background, + titleColor: ((i = this.xyChart) == null ? void 0 : i.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((r = this.xyChart) == null ? void 0 : r.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((n = this.xyChart) == null ? void 0 : n.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((o = this.xyChart) == null ? void 0 : o.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((s = this.xyChart) == null ? void 0 : s.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((a = this.xyChart) == null ? void 0 : a.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((l = this.xyChart) == null ? void 0 : l.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((h = this.xyChart) == null ? void 0 : h.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((u = this.xyChart) == null ? void 0 : u.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((f = this.xyChart) == null ? void 0 : f.plotColorPalette) || "#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3" + }, this.requirementBackground = this.requirementBackground || this.primaryColor, this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor, this.requirementBorderSize = this.requirementBorderSize || "1", this.requirementTextColor = this.requirementTextColor || this.primaryTextColor, this.relationColor = this.relationColor || this.lineColor, this.relationLabelBackground = this.relationLabelBackground || this.labelBackground, this.relationLabelColor = this.relationLabelColor || this.actorTextColor, this.git0 = this.git0 || this.primaryColor, this.git1 = this.git1 || this.secondaryColor, this.git2 = this.git2 || this.tertiaryColor, this.git3 = this.git3 || g(this.primaryColor, { h: -30 }), this.git4 = this.git4 || g(this.primaryColor, { h: -60 }), this.git5 = this.git5 || g(this.primaryColor, { h: -90 }), this.git6 = this.git6 || g(this.primaryColor, { h: 60 }), this.git7 = this.git7 || g(this.primaryColor, { h: 120 }), this.darkMode ? (this.git0 = F(this.git0, 25), this.git1 = F(this.git1, 25), this.git2 = F(this.git2, 25), this.git3 = F(this.git3, 25), this.git4 = F(this.git4, 25), this.git5 = F(this.git5, 25), this.git6 = F(this.git6, 25), this.git7 = F(this.git7, 25)) : (this.git0 = E(this.git0, 25), this.git1 = E(this.git1, 25), this.git2 = E(this.git2, 25), this.git3 = E(this.git3, 25), this.git4 = E(this.git4, 25), this.git5 = E(this.git5, 25), this.git6 = E(this.git6, 25), this.git7 = E(this.git7, 25)), this.gitInv0 = this.gitInv0 || E(_(this.git0), 25), this.gitInv1 = this.gitInv1 || _(this.git1), this.gitInv2 = this.gitInv2 || _(this.git2), this.gitInv3 = this.gitInv3 || _(this.git3), this.gitInv4 = this.gitInv4 || _(this.git4), this.gitInv5 = this.gitInv5 || _(this.git5), this.gitInv6 = this.gitInv6 || _(this.git6), this.gitInv7 = this.gitInv7 || _(this.git7), this.gitBranchLabel0 = this.gitBranchLabel0 || _(this.labelTextColor), this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor, this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor, this.gitBranchLabel3 = this.gitBranchLabel3 || _(this.labelTextColor), this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor, this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor, this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor, this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor, this.tagLabelColor = this.tagLabelColor || this.primaryTextColor, this.tagLabelBackground = this.tagLabelBackground || this.primaryColor, this.tagLabelBorder = this.tagBorder || this.primaryBorderColor, this.tagLabelFontSize = this.tagLabelFontSize || "10px", this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor, this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor, this.commitLabelFontSize = this.commitLabelFontSize || "10px", this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || _r, this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || Cr; + } + calculate(e) { + if (typeof e != "object") { + this.updateColors(); + return; + } + const i = Object.keys(e); + i.forEach((r) => { + this[r] = e[r]; + }), this.updateColors(), i.forEach((r) => { + this[r] = e[r]; + }); + } +}; +const up = (t) => { + const e = new cp(); + return e.calculate(t), e; +}; +let fp = class { + constructor() { + this.background = "#f4f4f4", this.primaryColor = "#cde498", this.secondaryColor = "#cdffb2", this.background = "white", this.mainBkg = "#cde498", this.secondBkg = "#cdffb2", this.lineColor = "green", this.border1 = "#13540c", this.border2 = "#6eaa49", this.arrowheadColor = "green", this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif', this.fontSize = "16px", this.tertiaryColor = F("#cde498", 10), this.primaryBorderColor = ht(this.primaryColor, this.darkMode), this.secondaryBorderColor = ht(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = ht(this.tertiaryColor, this.darkMode), this.primaryTextColor = _(this.primaryColor), this.secondaryTextColor = _(this.secondaryColor), this.tertiaryTextColor = _(this.primaryColor), this.lineColor = _(this.background), this.textColor = _(this.background), this.THEME_COLOR_LIMIT = 12, this.nodeBkg = "calculated", this.nodeBorder = "calculated", this.clusterBkg = "calculated", this.clusterBorder = "calculated", this.defaultLinkColor = "calculated", this.titleColor = "#333", this.edgeLabelBackground = "#e8e8e8", this.actorBorder = "calculated", this.actorBkg = "calculated", this.actorTextColor = "black", this.actorLineColor = "grey", this.signalColor = "#333", this.signalTextColor = "#333", this.labelBoxBkgColor = "calculated", this.labelBoxBorderColor = "#326932", this.labelTextColor = "calculated", this.loopTextColor = "calculated", this.noteBorderColor = "calculated", this.noteBkgColor = "#fff5ad", this.noteTextColor = "calculated", this.activationBorderColor = "#666", this.activationBkgColor = "#f4f4f4", this.sequenceNumberColor = "white", this.sectionBkgColor = "#6eaa49", this.altSectionBkgColor = "white", this.sectionBkgColor2 = "#6eaa49", this.excludeBkgColor = "#eeeeee", this.taskBorderColor = "calculated", this.taskBkgColor = "#487e3a", this.taskTextLightColor = "white", this.taskTextColor = "calculated", this.taskTextDarkColor = "black", this.taskTextOutsideColor = "calculated", this.taskTextClickableColor = "#003163", this.activeTaskBorderColor = "calculated", this.activeTaskBkgColor = "calculated", this.gridColor = "lightgrey", this.doneTaskBkgColor = "lightgrey", this.doneTaskBorderColor = "grey", this.critBorderColor = "#ff8888", this.critBkgColor = "red", this.todayLineColor = "red", this.personBorder = this.primaryBorderColor, this.personBkg = this.mainBkg, this.labelColor = "black", this.errorBkgColor = "#552222", this.errorTextColor = "#552222"; + } + updateColors() { + var e, i, r, n, o, s, a, l, h, u, f; + this.actorBorder = E(this.mainBkg, 20), this.actorBkg = this.mainBkg, this.labelBoxBkgColor = this.actorBkg, this.labelTextColor = this.actorTextColor, this.loopTextColor = this.actorTextColor, this.noteBorderColor = this.border2, this.noteTextColor = this.actorTextColor, this.cScale0 = this.cScale0 || this.primaryColor, this.cScale1 = this.cScale1 || this.secondaryColor, this.cScale2 = this.cScale2 || this.tertiaryColor, this.cScale3 = this.cScale3 || g(this.primaryColor, { h: 30 }), this.cScale4 = this.cScale4 || g(this.primaryColor, { h: 60 }), this.cScale5 = this.cScale5 || g(this.primaryColor, { h: 90 }), this.cScale6 = this.cScale6 || g(this.primaryColor, { h: 120 }), this.cScale7 = this.cScale7 || g(this.primaryColor, { h: 150 }), this.cScale8 = this.cScale8 || g(this.primaryColor, { h: 210 }), this.cScale9 = this.cScale9 || g(this.primaryColor, { h: 270 }), this.cScale10 = this.cScale10 || g(this.primaryColor, { h: 300 }), this.cScale11 = this.cScale11 || g(this.primaryColor, { h: 330 }), this["cScalePeer1"] = this["cScalePeer1"] || E(this.secondaryColor, 45), this["cScalePeer2"] = this["cScalePeer2"] || E(this.tertiaryColor, 40); + for (let c = 0; c < this.THEME_COLOR_LIMIT; c++) + this["cScale" + c] = E(this["cScale" + c], 10), this["cScalePeer" + c] = this["cScalePeer" + c] || E(this["cScale" + c], 25); + for (let c = 0; c < this.THEME_COLOR_LIMIT; c++) + this["cScaleInv" + c] = this["cScaleInv" + c] || g(this["cScale" + c], { h: 180 }); + this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor; + for (let c = 0; c < this.THEME_COLOR_LIMIT; c++) + this["cScaleLabel" + c] = this["cScaleLabel" + c] || this.scaleLabelColor; + for (let c = 0; c < 5; c++) + this["surface" + c] = this["surface" + c] || g(this.mainBkg, { h: 30, s: -30, l: -(5 + c * 5) }), this["surfacePeer" + c] = this["surfacePeer" + c] || g(this.mainBkg, { h: 30, s: -30, l: -(8 + c * 5) }); + this.nodeBkg = this.mainBkg, this.nodeBorder = this.border1, this.clusterBkg = this.secondBkg, this.clusterBorder = this.border2, this.defaultLinkColor = this.lineColor, this.taskBorderColor = this.border1, this.taskTextColor = this.taskTextLightColor, this.taskTextOutsideColor = this.taskTextDarkColor, this.activeTaskBorderColor = this.taskBorderColor, this.activeTaskBkgColor = this.mainBkg, this.transitionColor = this.transitionColor || this.lineColor, this.transitionLabelColor = this.transitionLabelColor || this.textColor, this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor, this.stateBkg = this.stateBkg || this.mainBkg, this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg, this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor, this.altBackground = this.altBackground || "#f0f0f0", this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg, this.compositeBorder = this.compositeBorder || this.nodeBorder, this.innerEndBackground = this.primaryBorderColor, this.specialStateColor = this.lineColor, this.errorBkgColor = this.errorBkgColor || this.tertiaryColor, this.errorTextColor = this.errorTextColor || this.tertiaryTextColor, this.transitionColor = this.transitionColor || this.lineColor, this.classText = this.primaryTextColor, this.fillType0 = this.primaryColor, this.fillType1 = this.secondaryColor, this.fillType2 = g(this.primaryColor, { h: 64 }), this.fillType3 = g(this.secondaryColor, { h: 64 }), this.fillType4 = g(this.primaryColor, { h: -64 }), this.fillType5 = g(this.secondaryColor, { h: -64 }), this.fillType6 = g(this.primaryColor, { h: 128 }), this.fillType7 = g(this.secondaryColor, { h: 128 }), this.pie1 = this.pie1 || this.primaryColor, this.pie2 = this.pie2 || this.secondaryColor, this.pie3 = this.pie3 || this.tertiaryColor, this.pie4 = this.pie4 || g(this.primaryColor, { l: -30 }), this.pie5 = this.pie5 || g(this.secondaryColor, { l: -30 }), this.pie6 = this.pie6 || g(this.tertiaryColor, { h: 40, l: -40 }), this.pie7 = this.pie7 || g(this.primaryColor, { h: 60, l: -10 }), this.pie8 = this.pie8 || g(this.primaryColor, { h: -60, l: -10 }), this.pie9 = this.pie9 || g(this.primaryColor, { h: 120, l: 0 }), this.pie10 = this.pie10 || g(this.primaryColor, { h: 60, l: -50 }), this.pie11 = this.pie11 || g(this.primaryColor, { h: -60, l: -50 }), this.pie12 = this.pie12 || g(this.primaryColor, { h: 120, l: -50 }), this.pieTitleTextSize = this.pieTitleTextSize || "25px", this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor, this.pieSectionTextSize = this.pieSectionTextSize || "17px", this.pieSectionTextColor = this.pieSectionTextColor || this.textColor, this.pieLegendTextSize = this.pieLegendTextSize || "17px", this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor, this.pieStrokeColor = this.pieStrokeColor || "black", this.pieStrokeWidth = this.pieStrokeWidth || "2px", this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px", this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black", this.pieOpacity = this.pieOpacity || "0.7", this.quadrant1Fill = this.quadrant1Fill || this.primaryColor, this.quadrant2Fill = this.quadrant2Fill || g(this.primaryColor, { r: 5, g: 5, b: 5 }), this.quadrant3Fill = this.quadrant3Fill || g(this.primaryColor, { r: 10, g: 10, b: 10 }), this.quadrant4Fill = this.quadrant4Fill || g(this.primaryColor, { r: 15, g: 15, b: 15 }), this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor, this.quadrant2TextFill = this.quadrant2TextFill || g(this.primaryTextColor, { r: -5, g: -5, b: -5 }), this.quadrant3TextFill = this.quadrant3TextFill || g(this.primaryTextColor, { r: -10, g: -10, b: -10 }), this.quadrant4TextFill = this.quadrant4TextFill || g(this.primaryTextColor, { r: -15, g: -15, b: -15 }), this.quadrantPointFill = this.quadrantPointFill || mi(this.quadrant1Fill) ? F(this.quadrant1Fill) : E(this.quadrant1Fill), this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor, this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor, this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor, this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor, this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor, this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor, this.xyChart = { + backgroundColor: ((e = this.xyChart) == null ? void 0 : e.backgroundColor) || this.background, + titleColor: ((i = this.xyChart) == null ? void 0 : i.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((r = this.xyChart) == null ? void 0 : r.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((n = this.xyChart) == null ? void 0 : n.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((o = this.xyChart) == null ? void 0 : o.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((s = this.xyChart) == null ? void 0 : s.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((a = this.xyChart) == null ? void 0 : a.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((l = this.xyChart) == null ? void 0 : l.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((h = this.xyChart) == null ? void 0 : h.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((u = this.xyChart) == null ? void 0 : u.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((f = this.xyChart) == null ? void 0 : f.plotColorPalette) || "#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176" + }, this.requirementBackground = this.requirementBackground || this.primaryColor, this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor, this.requirementBorderSize = this.requirementBorderSize || "1", this.requirementTextColor = this.requirementTextColor || this.primaryTextColor, this.relationColor = this.relationColor || this.lineColor, this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground, this.relationLabelColor = this.relationLabelColor || this.actorTextColor, this.git0 = this.git0 || this.primaryColor, this.git1 = this.git1 || this.secondaryColor, this.git2 = this.git2 || this.tertiaryColor, this.git3 = this.git3 || g(this.primaryColor, { h: -30 }), this.git4 = this.git4 || g(this.primaryColor, { h: -60 }), this.git5 = this.git5 || g(this.primaryColor, { h: -90 }), this.git6 = this.git6 || g(this.primaryColor, { h: 60 }), this.git7 = this.git7 || g(this.primaryColor, { h: 120 }), this.darkMode ? (this.git0 = F(this.git0, 25), this.git1 = F(this.git1, 25), this.git2 = F(this.git2, 25), this.git3 = F(this.git3, 25), this.git4 = F(this.git4, 25), this.git5 = F(this.git5, 25), this.git6 = F(this.git6, 25), this.git7 = F(this.git7, 25)) : (this.git0 = E(this.git0, 25), this.git1 = E(this.git1, 25), this.git2 = E(this.git2, 25), this.git3 = E(this.git3, 25), this.git4 = E(this.git4, 25), this.git5 = E(this.git5, 25), this.git6 = E(this.git6, 25), this.git7 = E(this.git7, 25)), this.gitInv0 = this.gitInv0 || _(this.git0), this.gitInv1 = this.gitInv1 || _(this.git1), this.gitInv2 = this.gitInv2 || _(this.git2), this.gitInv3 = this.gitInv3 || _(this.git3), this.gitInv4 = this.gitInv4 || _(this.git4), this.gitInv5 = this.gitInv5 || _(this.git5), this.gitInv6 = this.gitInv6 || _(this.git6), this.gitInv7 = this.gitInv7 || _(this.git7), this.gitBranchLabel0 = this.gitBranchLabel0 || _(this.labelTextColor), this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor, this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor, this.gitBranchLabel3 = this.gitBranchLabel3 || _(this.labelTextColor), this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor, this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor, this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor, this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor, this.tagLabelColor = this.tagLabelColor || this.primaryTextColor, this.tagLabelBackground = this.tagLabelBackground || this.primaryColor, this.tagLabelBorder = this.tagBorder || this.primaryBorderColor, this.tagLabelFontSize = this.tagLabelFontSize || "10px", this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor, this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor, this.commitLabelFontSize = this.commitLabelFontSize || "10px", this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || _r, this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || Cr; + } + calculate(e) { + if (typeof e != "object") { + this.updateColors(); + return; + } + const i = Object.keys(e); + i.forEach((r) => { + this[r] = e[r]; + }), this.updateColors(), i.forEach((r) => { + this[r] = e[r]; + }); + } +}; +const dp = (t) => { + const e = new fp(); + return e.calculate(t), e; +}; +class pp { + constructor() { + this.primaryColor = "#eee", this.contrast = "#707070", this.secondaryColor = F(this.contrast, 55), this.background = "#ffffff", this.tertiaryColor = g(this.primaryColor, { h: -160 }), this.primaryBorderColor = ht(this.primaryColor, this.darkMode), this.secondaryBorderColor = ht(this.secondaryColor, this.darkMode), this.tertiaryBorderColor = ht(this.tertiaryColor, this.darkMode), this.primaryTextColor = _(this.primaryColor), this.secondaryTextColor = _(this.secondaryColor), this.tertiaryTextColor = _(this.tertiaryColor), this.lineColor = _(this.background), this.textColor = _(this.background), this.mainBkg = "#eee", this.secondBkg = "calculated", this.lineColor = "#666", this.border1 = "#999", this.border2 = "calculated", this.note = "#ffa", this.text = "#333", this.critical = "#d42", this.done = "#bbb", this.arrowheadColor = "#333333", this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif', this.fontSize = "16px", this.THEME_COLOR_LIMIT = 12, this.nodeBkg = "calculated", this.nodeBorder = "calculated", this.clusterBkg = "calculated", this.clusterBorder = "calculated", this.defaultLinkColor = "calculated", this.titleColor = "calculated", this.edgeLabelBackground = "white", this.actorBorder = "calculated", this.actorBkg = "calculated", this.actorTextColor = "calculated", this.actorLineColor = "calculated", this.signalColor = "calculated", this.signalTextColor = "calculated", this.labelBoxBkgColor = "calculated", this.labelBoxBorderColor = "calculated", this.labelTextColor = "calculated", this.loopTextColor = "calculated", this.noteBorderColor = "calculated", this.noteBkgColor = "calculated", this.noteTextColor = "calculated", this.activationBorderColor = "#666", this.activationBkgColor = "#f4f4f4", this.sequenceNumberColor = "white", this.sectionBkgColor = "calculated", this.altSectionBkgColor = "white", this.sectionBkgColor2 = "calculated", this.excludeBkgColor = "#eeeeee", this.taskBorderColor = "calculated", this.taskBkgColor = "calculated", this.taskTextLightColor = "white", this.taskTextColor = "calculated", this.taskTextDarkColor = "calculated", this.taskTextOutsideColor = "calculated", this.taskTextClickableColor = "#003163", this.activeTaskBorderColor = "calculated", this.activeTaskBkgColor = "calculated", this.gridColor = "calculated", this.doneTaskBkgColor = "calculated", this.doneTaskBorderColor = "calculated", this.critBkgColor = "calculated", this.critBorderColor = "calculated", this.todayLineColor = "calculated", this.personBorder = this.primaryBorderColor, this.personBkg = this.mainBkg, this.labelColor = "black", this.errorBkgColor = "#552222", this.errorTextColor = "#552222"; + } + updateColors() { + var e, i, r, n, o, s, a, l, h, u, f; + this.secondBkg = F(this.contrast, 55), this.border2 = this.contrast, this.actorBorder = F(this.border1, 23), this.actorBkg = this.mainBkg, this.actorTextColor = this.text, this.actorLineColor = this.lineColor, this.signalColor = this.text, this.signalTextColor = this.text, this.labelBoxBkgColor = this.actorBkg, this.labelBoxBorderColor = this.actorBorder, this.labelTextColor = this.text, this.loopTextColor = this.text, this.noteBorderColor = "#999", this.noteBkgColor = "#666", this.noteTextColor = "#fff", this.cScale0 = this.cScale0 || "#555", this.cScale1 = this.cScale1 || "#F4F4F4", this.cScale2 = this.cScale2 || "#555", this.cScale3 = this.cScale3 || "#BBB", this.cScale4 = this.cScale4 || "#777", this.cScale5 = this.cScale5 || "#999", this.cScale6 = this.cScale6 || "#DDD", this.cScale7 = this.cScale7 || "#FFF", this.cScale8 = this.cScale8 || "#DDD", this.cScale9 = this.cScale9 || "#BBB", this.cScale10 = this.cScale10 || "#999", this.cScale11 = this.cScale11 || "#777"; + for (let c = 0; c < this.THEME_COLOR_LIMIT; c++) + this["cScaleInv" + c] = this["cScaleInv" + c] || _(this["cScale" + c]); + for (let c = 0; c < this.THEME_COLOR_LIMIT; c++) + this.darkMode ? this["cScalePeer" + c] = this["cScalePeer" + c] || F(this["cScale" + c], 10) : this["cScalePeer" + c] = this["cScalePeer" + c] || E(this["cScale" + c], 10); + this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor), this.cScaleLabel0 = this.cScaleLabel0 || this.cScale1, this.cScaleLabel2 = this.cScaleLabel2 || this.cScale1; + for (let c = 0; c < this.THEME_COLOR_LIMIT; c++) + this["cScaleLabel" + c] = this["cScaleLabel" + c] || this.scaleLabelColor; + for (let c = 0; c < 5; c++) + this["surface" + c] = this["surface" + c] || g(this.mainBkg, { l: -(5 + c * 5) }), this["surfacePeer" + c] = this["surfacePeer" + c] || g(this.mainBkg, { l: -(8 + c * 5) }); + this.nodeBkg = this.mainBkg, this.nodeBorder = this.border1, this.clusterBkg = this.secondBkg, this.clusterBorder = this.border2, this.defaultLinkColor = this.lineColor, this.titleColor = this.text, this.sectionBkgColor = F(this.contrast, 30), this.sectionBkgColor2 = F(this.contrast, 30), this.taskBorderColor = E(this.contrast, 10), this.taskBkgColor = this.contrast, this.taskTextColor = this.taskTextLightColor, this.taskTextDarkColor = this.text, this.taskTextOutsideColor = this.taskTextDarkColor, this.activeTaskBorderColor = this.taskBorderColor, this.activeTaskBkgColor = this.mainBkg, this.gridColor = F(this.border1, 30), this.doneTaskBkgColor = this.done, this.doneTaskBorderColor = this.lineColor, this.critBkgColor = this.critical, this.critBorderColor = E(this.critBkgColor, 10), this.todayLineColor = this.critBkgColor, this.transitionColor = this.transitionColor || "#000", this.transitionLabelColor = this.transitionLabelColor || this.textColor, this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor, this.stateBkg = this.stateBkg || this.mainBkg, this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg, this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor, this.altBackground = this.altBackground || "#f4f4f4", this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg, this.stateBorder = this.stateBorder || "#000", this.innerEndBackground = this.primaryBorderColor, this.specialStateColor = "#222", this.errorBkgColor = this.errorBkgColor || this.tertiaryColor, this.errorTextColor = this.errorTextColor || this.tertiaryTextColor, this.classText = this.primaryTextColor, this.fillType0 = this.primaryColor, this.fillType1 = this.secondaryColor, this.fillType2 = g(this.primaryColor, { h: 64 }), this.fillType3 = g(this.secondaryColor, { h: 64 }), this.fillType4 = g(this.primaryColor, { h: -64 }), this.fillType5 = g(this.secondaryColor, { h: -64 }), this.fillType6 = g(this.primaryColor, { h: 128 }), this.fillType7 = g(this.secondaryColor, { h: 128 }); + for (let c = 0; c < this.THEME_COLOR_LIMIT; c++) + this["pie" + c] = this["cScale" + c]; + this.pie12 = this.pie0, this.pieTitleTextSize = this.pieTitleTextSize || "25px", this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor, this.pieSectionTextSize = this.pieSectionTextSize || "17px", this.pieSectionTextColor = this.pieSectionTextColor || this.textColor, this.pieLegendTextSize = this.pieLegendTextSize || "17px", this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor, this.pieStrokeColor = this.pieStrokeColor || "black", this.pieStrokeWidth = this.pieStrokeWidth || "2px", this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px", this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black", this.pieOpacity = this.pieOpacity || "0.7", this.quadrant1Fill = this.quadrant1Fill || this.primaryColor, this.quadrant2Fill = this.quadrant2Fill || g(this.primaryColor, { r: 5, g: 5, b: 5 }), this.quadrant3Fill = this.quadrant3Fill || g(this.primaryColor, { r: 10, g: 10, b: 10 }), this.quadrant4Fill = this.quadrant4Fill || g(this.primaryColor, { r: 15, g: 15, b: 15 }), this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor, this.quadrant2TextFill = this.quadrant2TextFill || g(this.primaryTextColor, { r: -5, g: -5, b: -5 }), this.quadrant3TextFill = this.quadrant3TextFill || g(this.primaryTextColor, { r: -10, g: -10, b: -10 }), this.quadrant4TextFill = this.quadrant4TextFill || g(this.primaryTextColor, { r: -15, g: -15, b: -15 }), this.quadrantPointFill = this.quadrantPointFill || mi(this.quadrant1Fill) ? F(this.quadrant1Fill) : E(this.quadrant1Fill), this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor, this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor, this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor, this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor, this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor, this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor, this.xyChart = { + backgroundColor: ((e = this.xyChart) == null ? void 0 : e.backgroundColor) || this.background, + titleColor: ((i = this.xyChart) == null ? void 0 : i.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((r = this.xyChart) == null ? void 0 : r.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((n = this.xyChart) == null ? void 0 : n.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((o = this.xyChart) == null ? void 0 : o.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((s = this.xyChart) == null ? void 0 : s.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((a = this.xyChart) == null ? void 0 : a.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((l = this.xyChart) == null ? void 0 : l.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((h = this.xyChart) == null ? void 0 : h.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((u = this.xyChart) == null ? void 0 : u.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((f = this.xyChart) == null ? void 0 : f.plotColorPalette) || "#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0" + }, this.requirementBackground = this.requirementBackground || this.primaryColor, this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor, this.requirementBorderSize = this.requirementBorderSize || "1", this.requirementTextColor = this.requirementTextColor || this.primaryTextColor, this.relationColor = this.relationColor || this.lineColor, this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground, this.relationLabelColor = this.relationLabelColor || this.actorTextColor, this.git0 = E(this.pie1, 25) || this.primaryColor, this.git1 = this.pie2 || this.secondaryColor, this.git2 = this.pie3 || this.tertiaryColor, this.git3 = this.pie4 || g(this.primaryColor, { h: -30 }), this.git4 = this.pie5 || g(this.primaryColor, { h: -60 }), this.git5 = this.pie6 || g(this.primaryColor, { h: -90 }), this.git6 = this.pie7 || g(this.primaryColor, { h: 60 }), this.git7 = this.pie8 || g(this.primaryColor, { h: 120 }), this.gitInv0 = this.gitInv0 || _(this.git0), this.gitInv1 = this.gitInv1 || _(this.git1), this.gitInv2 = this.gitInv2 || _(this.git2), this.gitInv3 = this.gitInv3 || _(this.git3), this.gitInv4 = this.gitInv4 || _(this.git4), this.gitInv5 = this.gitInv5 || _(this.git5), this.gitInv6 = this.gitInv6 || _(this.git6), this.gitInv7 = this.gitInv7 || _(this.git7), this.branchLabelColor = this.branchLabelColor || this.labelTextColor, this.gitBranchLabel0 = this.branchLabelColor, this.gitBranchLabel1 = "white", this.gitBranchLabel2 = this.branchLabelColor, this.gitBranchLabel3 = "white", this.gitBranchLabel4 = this.branchLabelColor, this.gitBranchLabel5 = this.branchLabelColor, this.gitBranchLabel6 = this.branchLabelColor, this.gitBranchLabel7 = this.branchLabelColor, this.tagLabelColor = this.tagLabelColor || this.primaryTextColor, this.tagLabelBackground = this.tagLabelBackground || this.primaryColor, this.tagLabelBorder = this.tagBorder || this.primaryBorderColor, this.tagLabelFontSize = this.tagLabelFontSize || "10px", this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor, this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor, this.commitLabelFontSize = this.commitLabelFontSize || "10px", this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || _r, this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || Cr; + } + calculate(e) { + if (typeof e != "object") { + this.updateColors(); + return; + } + const i = Object.keys(e); + i.forEach((r) => { + this[r] = e[r]; + }), this.updateColors(), i.forEach((r) => { + this[r] = e[r]; + }); + } +} +const gp = (t) => { + const e = new pp(); + return e.calculate(t), e; +}, Gt = { + base: { + getThemeVariables: ap + }, + dark: { + getThemeVariables: hp + }, + default: { + getThemeVariables: up + }, + forest: { + getThemeVariables: dp + }, + neutral: { + getThemeVariables: gp + } +}, jt = { + flowchart: { + useMaxWidth: !0, + titleTopMargin: 25, + subGraphTitleMargin: { + top: 0, + bottom: 0 + }, + diagramPadding: 8, + htmlLabels: !0, + nodeSpacing: 50, + rankSpacing: 50, + curve: "basis", + padding: 15, + defaultRenderer: "dagre-wrapper", + wrappingWidth: 200 + }, + sequence: { + useMaxWidth: !0, + hideUnusedParticipants: !1, + activationWidth: 10, + diagramMarginX: 50, + diagramMarginY: 10, + actorMargin: 50, + width: 150, + height: 65, + boxMargin: 10, + boxTextMargin: 5, + noteMargin: 10, + messageMargin: 35, + messageAlign: "center", + mirrorActors: !0, + forceMenus: !1, + bottomMarginAdj: 1, + rightAngles: !1, + showSequenceNumbers: !1, + actorFontSize: 14, + actorFontFamily: '"Open Sans", sans-serif', + actorFontWeight: 400, + noteFontSize: 14, + noteFontFamily: '"trebuchet ms", verdana, arial, sans-serif', + noteFontWeight: 400, + noteAlign: "center", + messageFontSize: 16, + messageFontFamily: '"trebuchet ms", verdana, arial, sans-serif', + messageFontWeight: 400, + wrap: !1, + wrapPadding: 10, + labelBoxWidth: 50, + labelBoxHeight: 20 + }, + gantt: { + useMaxWidth: !0, + titleTopMargin: 25, + barHeight: 20, + barGap: 4, + topPadding: 50, + rightPadding: 75, + leftPadding: 75, + gridLineStartPadding: 35, + fontSize: 11, + sectionFontSize: 11, + numberSectionStyles: 4, + axisFormat: "%Y-%m-%d", + topAxis: !1, + displayMode: "", + weekday: "sunday" + }, + journey: { + useMaxWidth: !0, + diagramMarginX: 50, + diagramMarginY: 10, + leftMargin: 150, + width: 150, + height: 50, + boxMargin: 10, + boxTextMargin: 5, + noteMargin: 10, + messageMargin: 35, + messageAlign: "center", + bottomMarginAdj: 1, + rightAngles: !1, + taskFontSize: 14, + taskFontFamily: '"Open Sans", sans-serif', + taskMargin: 50, + activationWidth: 10, + textPlacement: "fo", + actorColours: [ + "#8FBC8F", + "#7CFC00", + "#00FFFF", + "#20B2AA", + "#B0E0E6", + "#FFFFE0" + ], + sectionFills: [ + "#191970", + "#8B008B", + "#4B0082", + "#2F4F4F", + "#800000", + "#8B4513", + "#00008B" + ], + sectionColours: [ + "#fff" + ] + }, + class: { + useMaxWidth: !0, + titleTopMargin: 25, + arrowMarkerAbsolute: !1, + dividerMargin: 10, + padding: 5, + textHeight: 10, + defaultRenderer: "dagre-wrapper", + htmlLabels: !1 + }, + state: { + useMaxWidth: !0, + titleTopMargin: 25, + dividerMargin: 10, + sizeUnit: 5, + padding: 8, + textHeight: 10, + titleShift: -15, + noteMargin: 10, + forkWidth: 70, + forkHeight: 7, + miniPadding: 2, + fontSizeFactor: 5.02, + fontSize: 24, + labelHeight: 16, + edgeLengthFactor: "20", + compositTitleSize: 35, + radius: 5, + defaultRenderer: "dagre-wrapper" + }, + er: { + useMaxWidth: !0, + titleTopMargin: 25, + diagramPadding: 20, + layoutDirection: "TB", + minEntityWidth: 100, + minEntityHeight: 75, + entityPadding: 15, + stroke: "gray", + fill: "honeydew", + fontSize: 12 + }, + pie: { + useMaxWidth: !0, + textPosition: 0.75 + }, + quadrantChart: { + useMaxWidth: !0, + chartWidth: 500, + chartHeight: 500, + titleFontSize: 20, + titlePadding: 10, + quadrantPadding: 5, + xAxisLabelPadding: 5, + yAxisLabelPadding: 5, + xAxisLabelFontSize: 16, + yAxisLabelFontSize: 16, + quadrantLabelFontSize: 16, + quadrantTextTopPadding: 5, + pointTextPadding: 5, + pointLabelFontSize: 12, + pointRadius: 5, + xAxisPosition: "top", + yAxisPosition: "left", + quadrantInternalBorderStrokeWidth: 1, + quadrantExternalBorderStrokeWidth: 2 + }, + xyChart: { + useMaxWidth: !0, + width: 700, + height: 500, + titleFontSize: 20, + titlePadding: 10, + showTitle: !0, + xAxis: { + $ref: "#/$defs/XYChartAxisConfig", + showLabel: !0, + labelFontSize: 14, + labelPadding: 5, + showTitle: !0, + titleFontSize: 16, + titlePadding: 5, + showTick: !0, + tickLength: 5, + tickWidth: 2, + showAxisLine: !0, + axisLineWidth: 2 + }, + yAxis: { + $ref: "#/$defs/XYChartAxisConfig", + showLabel: !0, + labelFontSize: 14, + labelPadding: 5, + showTitle: !0, + titleFontSize: 16, + titlePadding: 5, + showTick: !0, + tickLength: 5, + tickWidth: 2, + showAxisLine: !0, + axisLineWidth: 2 + }, + chartOrientation: "vertical", + plotReservedSpacePercent: 50 + }, + requirement: { + useMaxWidth: !0, + rect_fill: "#f9f9f9", + text_color: "#333", + rect_border_size: "0.5px", + rect_border_color: "#bbb", + rect_min_width: 200, + rect_min_height: 200, + fontSize: 14, + rect_padding: 10, + line_height: 20 + }, + mindmap: { + useMaxWidth: !0, + padding: 10, + maxNodeWidth: 200 + }, + timeline: { + useMaxWidth: !0, + diagramMarginX: 50, + diagramMarginY: 10, + leftMargin: 150, + width: 150, + height: 50, + boxMargin: 10, + boxTextMargin: 5, + noteMargin: 10, + messageMargin: 35, + messageAlign: "center", + bottomMarginAdj: 1, + rightAngles: !1, + taskFontSize: 14, + taskFontFamily: '"Open Sans", sans-serif', + taskMargin: 50, + activationWidth: 10, + textPlacement: "fo", + actorColours: [ + "#8FBC8F", + "#7CFC00", + "#00FFFF", + "#20B2AA", + "#B0E0E6", + "#FFFFE0" + ], + sectionFills: [ + "#191970", + "#8B008B", + "#4B0082", + "#2F4F4F", + "#800000", + "#8B4513", + "#00008B" + ], + sectionColours: [ + "#fff" + ], + disableMulticolor: !1 + }, + gitGraph: { + useMaxWidth: !0, + titleTopMargin: 25, + diagramPadding: 8, + nodeLabel: { + width: 75, + height: 100, + x: -25, + y: 0 + }, + mainBranchName: "main", + mainBranchOrder: 0, + showCommitLabel: !0, + showBranches: !0, + rotateCommitLabel: !0, + parallelCommits: !1, + arrowMarkerAbsolute: !1 + }, + c4: { + useMaxWidth: !0, + diagramMarginX: 50, + diagramMarginY: 10, + c4ShapeMargin: 50, + c4ShapePadding: 20, + width: 216, + height: 60, + boxMargin: 10, + c4ShapeInRow: 4, + nextLinePaddingX: 0, + c4BoundaryInRow: 2, + personFontSize: 14, + personFontFamily: '"Open Sans", sans-serif', + personFontWeight: "normal", + external_personFontSize: 14, + external_personFontFamily: '"Open Sans", sans-serif', + external_personFontWeight: "normal", + systemFontSize: 14, + systemFontFamily: '"Open Sans", sans-serif', + systemFontWeight: "normal", + external_systemFontSize: 14, + external_systemFontFamily: '"Open Sans", sans-serif', + external_systemFontWeight: "normal", + system_dbFontSize: 14, + system_dbFontFamily: '"Open Sans", sans-serif', + system_dbFontWeight: "normal", + external_system_dbFontSize: 14, + external_system_dbFontFamily: '"Open Sans", sans-serif', + external_system_dbFontWeight: "normal", + system_queueFontSize: 14, + system_queueFontFamily: '"Open Sans", sans-serif', + system_queueFontWeight: "normal", + external_system_queueFontSize: 14, + external_system_queueFontFamily: '"Open Sans", sans-serif', + external_system_queueFontWeight: "normal", + boundaryFontSize: 14, + boundaryFontFamily: '"Open Sans", sans-serif', + boundaryFontWeight: "normal", + messageFontSize: 12, + messageFontFamily: '"Open Sans", sans-serif', + messageFontWeight: "normal", + containerFontSize: 14, + containerFontFamily: '"Open Sans", sans-serif', + containerFontWeight: "normal", + external_containerFontSize: 14, + external_containerFontFamily: '"Open Sans", sans-serif', + external_containerFontWeight: "normal", + container_dbFontSize: 14, + container_dbFontFamily: '"Open Sans", sans-serif', + container_dbFontWeight: "normal", + external_container_dbFontSize: 14, + external_container_dbFontFamily: '"Open Sans", sans-serif', + external_container_dbFontWeight: "normal", + container_queueFontSize: 14, + container_queueFontFamily: '"Open Sans", sans-serif', + container_queueFontWeight: "normal", + external_container_queueFontSize: 14, + external_container_queueFontFamily: '"Open Sans", sans-serif', + external_container_queueFontWeight: "normal", + componentFontSize: 14, + componentFontFamily: '"Open Sans", sans-serif', + componentFontWeight: "normal", + external_componentFontSize: 14, + external_componentFontFamily: '"Open Sans", sans-serif', + external_componentFontWeight: "normal", + component_dbFontSize: 14, + component_dbFontFamily: '"Open Sans", sans-serif', + component_dbFontWeight: "normal", + external_component_dbFontSize: 14, + external_component_dbFontFamily: '"Open Sans", sans-serif', + external_component_dbFontWeight: "normal", + component_queueFontSize: 14, + component_queueFontFamily: '"Open Sans", sans-serif', + component_queueFontWeight: "normal", + external_component_queueFontSize: 14, + external_component_queueFontFamily: '"Open Sans", sans-serif', + external_component_queueFontWeight: "normal", + wrap: !0, + wrapPadding: 10, + person_bg_color: "#08427B", + person_border_color: "#073B6F", + external_person_bg_color: "#686868", + external_person_border_color: "#8A8A8A", + system_bg_color: "#1168BD", + system_border_color: "#3C7FC0", + system_db_bg_color: "#1168BD", + system_db_border_color: "#3C7FC0", + system_queue_bg_color: "#1168BD", + system_queue_border_color: "#3C7FC0", + external_system_bg_color: "#999999", + external_system_border_color: "#8A8A8A", + external_system_db_bg_color: "#999999", + external_system_db_border_color: "#8A8A8A", + external_system_queue_bg_color: "#999999", + external_system_queue_border_color: "#8A8A8A", + container_bg_color: "#438DD5", + container_border_color: "#3C7FC0", + container_db_bg_color: "#438DD5", + container_db_border_color: "#3C7FC0", + container_queue_bg_color: "#438DD5", + container_queue_border_color: "#3C7FC0", + external_container_bg_color: "#B3B3B3", + external_container_border_color: "#A6A6A6", + external_container_db_bg_color: "#B3B3B3", + external_container_db_border_color: "#A6A6A6", + external_container_queue_bg_color: "#B3B3B3", + external_container_queue_border_color: "#A6A6A6", + component_bg_color: "#85BBF0", + component_border_color: "#78A8D8", + component_db_bg_color: "#85BBF0", + component_db_border_color: "#78A8D8", + component_queue_bg_color: "#85BBF0", + component_queue_border_color: "#78A8D8", + external_component_bg_color: "#CCCCCC", + external_component_border_color: "#BFBFBF", + external_component_db_bg_color: "#CCCCCC", + external_component_db_border_color: "#BFBFBF", + external_component_queue_bg_color: "#CCCCCC", + external_component_queue_border_color: "#BFBFBF" + }, + sankey: { + useMaxWidth: !0, + width: 600, + height: 400, + linkColor: "gradient", + nodeAlignment: "justify", + showValues: !0, + prefix: "", + suffix: "" + }, + block: { + useMaxWidth: !0, + padding: 8 + }, + theme: "default", + maxTextSize: 5e4, + maxEdges: 500, + darkMode: !1, + fontFamily: '"trebuchet ms", verdana, arial, sans-serif;', + logLevel: 5, + securityLevel: "strict", + startOnLoad: !0, + arrowMarkerAbsolute: !1, + secure: [ + "secure", + "securityLevel", + "startOnLoad", + "maxTextSize", + "maxEdges" + ], + legacyMathML: !1, + deterministicIds: !1, + fontSize: 16 +}, Ia = { + ...jt, + // Set, even though they're `undefined` so that `configKeys` finds these keys + // TODO: Should we replace these with `null` so that they can go in the JSON Schema? + deterministicIDSeed: void 0, + themeCSS: void 0, + // add non-JSON default config values + themeVariables: Gt.default.getThemeVariables(), + sequence: { + ...jt.sequence, + messageFont: function() { + return { + fontFamily: this.messageFontFamily, + fontSize: this.messageFontSize, + fontWeight: this.messageFontWeight + }; + }, + noteFont: function() { + return { + fontFamily: this.noteFontFamily, + fontSize: this.noteFontSize, + fontWeight: this.noteFontWeight + }; + }, + actorFont: function() { + return { + fontFamily: this.actorFontFamily, + fontSize: this.actorFontSize, + fontWeight: this.actorFontWeight + }; + } + }, + gantt: { + ...jt.gantt, + tickInterval: void 0, + useWidth: void 0 + // can probably be removed since `configKeys` already includes this + }, + c4: { + ...jt.c4, + useWidth: void 0, + personFont: function() { + return { + fontFamily: this.personFontFamily, + fontSize: this.personFontSize, + fontWeight: this.personFontWeight + }; + }, + external_personFont: function() { + return { + fontFamily: this.external_personFontFamily, + fontSize: this.external_personFontSize, + fontWeight: this.external_personFontWeight + }; + }, + systemFont: function() { + return { + fontFamily: this.systemFontFamily, + fontSize: this.systemFontSize, + fontWeight: this.systemFontWeight + }; + }, + external_systemFont: function() { + return { + fontFamily: this.external_systemFontFamily, + fontSize: this.external_systemFontSize, + fontWeight: this.external_systemFontWeight + }; + }, + system_dbFont: function() { + return { + fontFamily: this.system_dbFontFamily, + fontSize: this.system_dbFontSize, + fontWeight: this.system_dbFontWeight + }; + }, + external_system_dbFont: function() { + return { + fontFamily: this.external_system_dbFontFamily, + fontSize: this.external_system_dbFontSize, + fontWeight: this.external_system_dbFontWeight + }; + }, + system_queueFont: function() { + return { + fontFamily: this.system_queueFontFamily, + fontSize: this.system_queueFontSize, + fontWeight: this.system_queueFontWeight + }; + }, + external_system_queueFont: function() { + return { + fontFamily: this.external_system_queueFontFamily, + fontSize: this.external_system_queueFontSize, + fontWeight: this.external_system_queueFontWeight + }; + }, + containerFont: function() { + return { + fontFamily: this.containerFontFamily, + fontSize: this.containerFontSize, + fontWeight: this.containerFontWeight + }; + }, + external_containerFont: function() { + return { + fontFamily: this.external_containerFontFamily, + fontSize: this.external_containerFontSize, + fontWeight: this.external_containerFontWeight + }; + }, + container_dbFont: function() { + return { + fontFamily: this.container_dbFontFamily, + fontSize: this.container_dbFontSize, + fontWeight: this.container_dbFontWeight + }; + }, + external_container_dbFont: function() { + return { + fontFamily: this.external_container_dbFontFamily, + fontSize: this.external_container_dbFontSize, + fontWeight: this.external_container_dbFontWeight + }; + }, + container_queueFont: function() { + return { + fontFamily: this.container_queueFontFamily, + fontSize: this.container_queueFontSize, + fontWeight: this.container_queueFontWeight + }; + }, + external_container_queueFont: function() { + return { + fontFamily: this.external_container_queueFontFamily, + fontSize: this.external_container_queueFontSize, + fontWeight: this.external_container_queueFontWeight + }; + }, + componentFont: function() { + return { + fontFamily: this.componentFontFamily, + fontSize: this.componentFontSize, + fontWeight: this.componentFontWeight + }; + }, + external_componentFont: function() { + return { + fontFamily: this.external_componentFontFamily, + fontSize: this.external_componentFontSize, + fontWeight: this.external_componentFontWeight + }; + }, + component_dbFont: function() { + return { + fontFamily: this.component_dbFontFamily, + fontSize: this.component_dbFontSize, + fontWeight: this.component_dbFontWeight + }; + }, + external_component_dbFont: function() { + return { + fontFamily: this.external_component_dbFontFamily, + fontSize: this.external_component_dbFontSize, + fontWeight: this.external_component_dbFontWeight + }; + }, + component_queueFont: function() { + return { + fontFamily: this.component_queueFontFamily, + fontSize: this.component_queueFontSize, + fontWeight: this.component_queueFontWeight + }; + }, + external_component_queueFont: function() { + return { + fontFamily: this.external_component_queueFontFamily, + fontSize: this.external_component_queueFontSize, + fontWeight: this.external_component_queueFontWeight + }; + }, + boundaryFont: function() { + return { + fontFamily: this.boundaryFontFamily, + fontSize: this.boundaryFontSize, + fontWeight: this.boundaryFontWeight + }; + }, + messageFont: function() { + return { + fontFamily: this.messageFontFamily, + fontSize: this.messageFontSize, + fontWeight: this.messageFontWeight + }; + } + }, + pie: { + ...jt.pie, + useWidth: 984 + }, + xyChart: { + ...jt.xyChart, + useWidth: void 0 + }, + requirement: { + ...jt.requirement, + useWidth: void 0 + }, + gitGraph: { + ...jt.gitGraph, + // TODO: This is a temporary override for `gitGraph`, since every other + // diagram does have `useMaxWidth`, but instead sets it to `true`. + // Should we set this to `true` instead? + useMaxWidth: !1 + }, + sankey: { + ...jt.sankey, + // this is false, unlike every other diagram (other than gitGraph) + // TODO: can we make this default to `true` instead? + useMaxWidth: !1 + } +}, Da = (t, e = "") => Object.keys(t).reduce((i, r) => Array.isArray(t[r]) ? i : typeof t[r] == "object" && t[r] !== null ? [...i, e + r, ...Da(t[r], "")] : [...i, e + r], []), mp = new Set(Da(Ia, "")), yp = Ia, Qi = (t) => { + if (L.debug("sanitizeDirective called with", t), !(typeof t != "object" || t == null)) { + if (Array.isArray(t)) { + t.forEach((e) => Qi(e)); + return; + } + for (const e of Object.keys(t)) { + if (L.debug("Checking key", e), e.startsWith("__") || e.includes("proto") || e.includes("constr") || !mp.has(e) || t[e] == null) { + L.debug("sanitize deleting key: ", e), delete t[e]; + continue; + } + if (typeof t[e] == "object") { + L.debug("sanitizing object", e), Qi(t[e]); + continue; + } + const i = ["themeCSS", "fontFamily", "altFontFamily"]; + for (const r of i) + e.includes(r) && (L.debug("sanitizing css option", e), t[e] = _p(t[e])); + } + if (t.themeVariables) + for (const e of Object.keys(t.themeVariables)) { + const i = t.themeVariables[e]; + i != null && i.match && !i.match(/^[\d "#%(),.;A-Za-z]+$/) && (t.themeVariables[e] = ""); + } + L.debug("After sanitization", t); + } +}, _p = (t) => { + let e = 0, i = 0; + for (const r of t) { + if (e < i) + return "{ /* ERROR: Unbalanced CSS */ }"; + r === "{" ? e++ : r === "}" && i++; + } + return e !== i ? "{ /* ERROR: Unbalanced CSS */ }" : t; +}, Na = /^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s, Qe = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi, Cp = /\s*%%.*\n/gm; +class Ra extends Error { + constructor(e) { + super(e), this.name = "UnknownDiagramError"; + } +} +const Me = {}, xr = function(t, e) { + t = t.replace(Na, "").replace(Qe, "").replace(Cp, ` +`); + for (const [i, { detector: r }] of Object.entries(Me)) + if (r(t, e)) + return i; + throw new Ra( + `No diagram type detected matching given configuration for text: ${t}` + ); +}, Pa = (...t) => { + for (const { id: e, detector: i, loader: r } of t) + qa(e, i, r); +}, qa = (t, e, i) => { + Me[t] ? L.error(`Detector with key ${t} already exists`) : Me[t] = { detector: e, loader: i }, L.debug(`Detector with key ${t} added${i ? " with loader" : ""}`); +}, xp = (t) => Me[t].loader, cn = (t, e, { depth: i = 2, clobber: r = !1 } = {}) => { + const n = { depth: i, clobber: r }; + return Array.isArray(e) && !Array.isArray(t) ? (e.forEach((o) => cn(t, o, n)), t) : Array.isArray(e) && Array.isArray(t) ? (e.forEach((o) => { + t.includes(o) || t.push(o); + }), t) : t === void 0 || i <= 0 ? t != null && typeof t == "object" && typeof e == "object" ? Object.assign(t, e) : e : (e !== void 0 && typeof t == "object" && typeof e == "object" && Object.keys(e).forEach((o) => { + typeof e[o] == "object" && (t[o] === void 0 || typeof t[o] == "object") ? (t[o] === void 0 && (t[o] = Array.isArray(e[o]) ? [] : {}), t[o] = cn(t[o], e[o], { depth: i - 1, clobber: r })) : (r || typeof t[o] != "object" && typeof e[o] != "object") && (t[o] = e[o]); + }), t); +}, st = cn; +var bp = typeof global == "object" && global && global.Object === Object && global; +const za = bp; +var Tp = typeof self == "object" && self && self.Object === Object && self, kp = za || Tp || Function("return this")(); +const Dt = kp; +var Sp = Dt.Symbol; +const tr = Sp; +var Wa = Object.prototype, vp = Wa.hasOwnProperty, wp = Wa.toString, Ge = tr ? tr.toStringTag : void 0; +function Bp(t) { + var e = vp.call(t, Ge), i = t[Ge]; + try { + t[Ge] = void 0; + var r = !0; + } catch { + } + var n = wp.call(t); + return r && (e ? t[Ge] = i : delete t[Ge]), n; +} +var Fp = Object.prototype, Ap = Fp.toString; +function Lp(t) { + return Ap.call(t); +} +var Ep = "[object Null]", Mp = "[object Undefined]", es = tr ? tr.toStringTag : void 0; +function Ne(t) { + return t == null ? t === void 0 ? Mp : Ep : es && es in Object(t) ? Bp(t) : Lp(t); +} +function ye(t) { + var e = typeof t; + return t != null && (e == "object" || e == "function"); +} +var Op = "[object AsyncFunction]", $p = "[object Function]", Ip = "[object GeneratorFunction]", Dp = "[object Proxy]"; +function In(t) { + if (!ye(t)) + return !1; + var e = Ne(t); + return e == $p || e == Ip || e == Op || e == Dp; +} +var Np = Dt["__core-js_shared__"]; +const jr = Np; +var is = function() { + var t = /[^.]+$/.exec(jr && jr.keys && jr.keys.IE_PROTO || ""); + return t ? "Symbol(src)_1." + t : ""; +}(); +function Rp(t) { + return !!is && is in t; +} +var Pp = Function.prototype, qp = Pp.toString; +function _e(t) { + if (t != null) { + try { + return qp.call(t); + } catch { + } + try { + return t + ""; + } catch { + } + } + return ""; +} +var zp = /[\\^$.*+?()[\]{}|]/g, Wp = /^\[object .+?Constructor\]$/, Hp = Function.prototype, jp = Object.prototype, Up = Hp.toString, Yp = jp.hasOwnProperty, Gp = RegExp( + "^" + Up.call(Yp).replace(zp, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" +); +function Vp(t) { + if (!ye(t) || Rp(t)) + return !1; + var e = In(t) ? Gp : Wp; + return e.test(_e(t)); +} +function Xp(t, e) { + return t == null ? void 0 : t[e]; +} +function Ce(t, e) { + var i = Xp(t, e); + return Vp(i) ? i : void 0; +} +var Kp = Ce(Object, "create"); +const li = Kp; +function Zp() { + this.__data__ = li ? li(null) : {}, this.size = 0; +} +function Jp(t) { + var e = this.has(t) && delete this.__data__[t]; + return this.size -= e ? 1 : 0, e; +} +var Qp = "__lodash_hash_undefined__", tg = Object.prototype, eg = tg.hasOwnProperty; +function ig(t) { + var e = this.__data__; + if (li) { + var i = e[t]; + return i === Qp ? void 0 : i; + } + return eg.call(e, t) ? e[t] : void 0; +} +var rg = Object.prototype, ng = rg.hasOwnProperty; +function og(t) { + var e = this.__data__; + return li ? e[t] !== void 0 : ng.call(e, t); +} +var sg = "__lodash_hash_undefined__"; +function ag(t, e) { + var i = this.__data__; + return this.size += this.has(t) ? 0 : 1, i[t] = li && e === void 0 ? sg : e, this; +} +function ge(t) { + var e = -1, i = t == null ? 0 : t.length; + for (this.clear(); ++e < i; ) { + var r = t[e]; + this.set(r[0], r[1]); + } +} +ge.prototype.clear = Zp; +ge.prototype.delete = Jp; +ge.prototype.get = ig; +ge.prototype.has = og; +ge.prototype.set = ag; +function lg() { + this.__data__ = [], this.size = 0; +} +function br(t, e) { + return t === e || t !== t && e !== e; +} +function Tr(t, e) { + for (var i = t.length; i--; ) + if (br(t[i][0], e)) + return i; + return -1; +} +var hg = Array.prototype, cg = hg.splice; +function ug(t) { + var e = this.__data__, i = Tr(e, t); + if (i < 0) + return !1; + var r = e.length - 1; + return i == r ? e.pop() : cg.call(e, i, 1), --this.size, !0; +} +function fg(t) { + var e = this.__data__, i = Tr(e, t); + return i < 0 ? void 0 : e[i][1]; +} +function dg(t) { + return Tr(this.__data__, t) > -1; +} +function pg(t, e) { + var i = this.__data__, r = Tr(i, t); + return r < 0 ? (++this.size, i.push([t, e])) : i[r][1] = e, this; +} +function Xt(t) { + var e = -1, i = t == null ? 0 : t.length; + for (this.clear(); ++e < i; ) { + var r = t[e]; + this.set(r[0], r[1]); + } +} +Xt.prototype.clear = lg; +Xt.prototype.delete = ug; +Xt.prototype.get = fg; +Xt.prototype.has = dg; +Xt.prototype.set = pg; +var gg = Ce(Dt, "Map"); +const hi = gg; +function mg() { + this.size = 0, this.__data__ = { + hash: new ge(), + map: new (hi || Xt)(), + string: new ge() + }; +} +function yg(t) { + var e = typeof t; + return e == "string" || e == "number" || e == "symbol" || e == "boolean" ? t !== "__proto__" : t === null; +} +function kr(t, e) { + var i = t.__data__; + return yg(e) ? i[typeof e == "string" ? "string" : "hash"] : i.map; +} +function _g(t) { + var e = kr(this, t).delete(t); + return this.size -= e ? 1 : 0, e; +} +function Cg(t) { + return kr(this, t).get(t); +} +function xg(t) { + return kr(this, t).has(t); +} +function bg(t, e) { + var i = kr(this, t), r = i.size; + return i.set(t, e), this.size += i.size == r ? 0 : 1, this; +} +function ne(t) { + var e = -1, i = t == null ? 0 : t.length; + for (this.clear(); ++e < i; ) { + var r = t[e]; + this.set(r[0], r[1]); + } +} +ne.prototype.clear = mg; +ne.prototype.delete = _g; +ne.prototype.get = Cg; +ne.prototype.has = xg; +ne.prototype.set = bg; +var Tg = "Expected a function"; +function yi(t, e) { + if (typeof t != "function" || e != null && typeof e != "function") + throw new TypeError(Tg); + var i = function() { + var r = arguments, n = e ? e.apply(this, r) : r[0], o = i.cache; + if (o.has(n)) + return o.get(n); + var s = t.apply(this, r); + return i.cache = o.set(n, s) || o, s; + }; + return i.cache = new (yi.Cache || ne)(), i; +} +yi.Cache = ne; +function kg() { + this.__data__ = new Xt(), this.size = 0; +} +function Sg(t) { + var e = this.__data__, i = e.delete(t); + return this.size = e.size, i; +} +function vg(t) { + return this.__data__.get(t); +} +function wg(t) { + return this.__data__.has(t); +} +var Bg = 200; +function Fg(t, e) { + var i = this.__data__; + if (i instanceof Xt) { + var r = i.__data__; + if (!hi || r.length < Bg - 1) + return r.push([t, e]), this.size = ++i.size, this; + i = this.__data__ = new ne(r); + } + return i.set(t, e), this.size = i.size, this; +} +function Re(t) { + var e = this.__data__ = new Xt(t); + this.size = e.size; +} +Re.prototype.clear = kg; +Re.prototype.delete = Sg; +Re.prototype.get = vg; +Re.prototype.has = wg; +Re.prototype.set = Fg; +var Ag = function() { + try { + var t = Ce(Object, "defineProperty"); + return t({}, "", {}), t; + } catch { + } +}(); +const er = Ag; +function Dn(t, e, i) { + e == "__proto__" && er ? er(t, e, { + configurable: !0, + enumerable: !0, + value: i, + writable: !0 + }) : t[e] = i; +} +function un(t, e, i) { + (i !== void 0 && !br(t[e], i) || i === void 0 && !(e in t)) && Dn(t, e, i); +} +function Lg(t) { + return function(e, i, r) { + for (var n = -1, o = Object(e), s = r(e), a = s.length; a--; ) { + var l = s[t ? a : ++n]; + if (i(o[l], l, o) === !1) + break; + } + return e; + }; +} +var Eg = Lg(); +const Mg = Eg; +var Ha = typeof exports == "object" && exports && !exports.nodeType && exports, rs = Ha && typeof module == "object" && module && !module.nodeType && module, Og = rs && rs.exports === Ha, ns = Og ? Dt.Buffer : void 0, os = ns ? ns.allocUnsafe : void 0; +function $g(t, e) { + if (e) + return t.slice(); + var i = t.length, r = os ? os(i) : new t.constructor(i); + return t.copy(r), r; +} +var Ig = Dt.Uint8Array; +const ss = Ig; +function Dg(t) { + var e = new t.constructor(t.byteLength); + return new ss(e).set(new ss(t)), e; +} +function Ng(t, e) { + var i = e ? Dg(t.buffer) : t.buffer; + return new t.constructor(i, t.byteOffset, t.length); +} +function Rg(t, e) { + var i = -1, r = t.length; + for (e || (e = Array(r)); ++i < r; ) + e[i] = t[i]; + return e; +} +var as = Object.create, Pg = function() { + function t() { + } + return function(e) { + if (!ye(e)) + return {}; + if (as) + return as(e); + t.prototype = e; + var i = new t(); + return t.prototype = void 0, i; + }; +}(); +const qg = Pg; +function ja(t, e) { + return function(i) { + return t(e(i)); + }; +} +var zg = ja(Object.getPrototypeOf, Object); +const Ua = zg; +var Wg = Object.prototype; +function Sr(t) { + var e = t && t.constructor, i = typeof e == "function" && e.prototype || Wg; + return t === i; +} +function Hg(t) { + return typeof t.constructor == "function" && !Sr(t) ? qg(Ua(t)) : {}; +} +function _i(t) { + return t != null && typeof t == "object"; +} +var jg = "[object Arguments]"; +function ls(t) { + return _i(t) && Ne(t) == jg; +} +var Ya = Object.prototype, Ug = Ya.hasOwnProperty, Yg = Ya.propertyIsEnumerable, Gg = ls(function() { + return arguments; +}()) ? ls : function(t) { + return _i(t) && Ug.call(t, "callee") && !Yg.call(t, "callee"); +}; +const ir = Gg; +var Vg = Array.isArray; +const rr = Vg; +var Xg = 9007199254740991; +function Ga(t) { + return typeof t == "number" && t > -1 && t % 1 == 0 && t <= Xg; +} +function vr(t) { + return t != null && Ga(t.length) && !In(t); +} +function Kg(t) { + return _i(t) && vr(t); +} +function Zg() { + return !1; +} +var Va = typeof exports == "object" && exports && !exports.nodeType && exports, hs = Va && typeof module == "object" && module && !module.nodeType && module, Jg = hs && hs.exports === Va, cs = Jg ? Dt.Buffer : void 0, Qg = cs ? cs.isBuffer : void 0, tm = Qg || Zg; +const Nn = tm; +var em = "[object Object]", im = Function.prototype, rm = Object.prototype, Xa = im.toString, nm = rm.hasOwnProperty, om = Xa.call(Object); +function sm(t) { + if (!_i(t) || Ne(t) != em) + return !1; + var e = Ua(t); + if (e === null) + return !0; + var i = nm.call(e, "constructor") && e.constructor; + return typeof i == "function" && i instanceof i && Xa.call(i) == om; +} +var am = "[object Arguments]", lm = "[object Array]", hm = "[object Boolean]", cm = "[object Date]", um = "[object Error]", fm = "[object Function]", dm = "[object Map]", pm = "[object Number]", gm = "[object Object]", mm = "[object RegExp]", ym = "[object Set]", _m = "[object String]", Cm = "[object WeakMap]", xm = "[object ArrayBuffer]", bm = "[object DataView]", Tm = "[object Float32Array]", km = "[object Float64Array]", Sm = "[object Int8Array]", vm = "[object Int16Array]", wm = "[object Int32Array]", Bm = "[object Uint8Array]", Fm = "[object Uint8ClampedArray]", Am = "[object Uint16Array]", Lm = "[object Uint32Array]", U = {}; +U[Tm] = U[km] = U[Sm] = U[vm] = U[wm] = U[Bm] = U[Fm] = U[Am] = U[Lm] = !0; +U[am] = U[lm] = U[xm] = U[hm] = U[bm] = U[cm] = U[um] = U[fm] = U[dm] = U[pm] = U[gm] = U[mm] = U[ym] = U[_m] = U[Cm] = !1; +function Em(t) { + return _i(t) && Ga(t.length) && !!U[Ne(t)]; +} +function Mm(t) { + return function(e) { + return t(e); + }; +} +var Ka = typeof exports == "object" && exports && !exports.nodeType && exports, ti = Ka && typeof module == "object" && module && !module.nodeType && module, Om = ti && ti.exports === Ka, Ur = Om && za.process, $m = function() { + try { + var t = ti && ti.require && ti.require("util").types; + return t || Ur && Ur.binding && Ur.binding("util"); + } catch { + } +}(); +const us = $m; +var fs = us && us.isTypedArray, Im = fs ? Mm(fs) : Em; +const Rn = Im; +function fn(t, e) { + if (!(e === "constructor" && typeof t[e] == "function") && e != "__proto__") + return t[e]; +} +var Dm = Object.prototype, Nm = Dm.hasOwnProperty; +function Rm(t, e, i) { + var r = t[e]; + (!(Nm.call(t, e) && br(r, i)) || i === void 0 && !(e in t)) && Dn(t, e, i); +} +function Pm(t, e, i, r) { + var n = !i; + i || (i = {}); + for (var o = -1, s = e.length; ++o < s; ) { + var a = e[o], l = r ? r(i[a], t[a], a, i, t) : void 0; + l === void 0 && (l = t[a]), n ? Dn(i, a, l) : Rm(i, a, l); + } + return i; +} +function qm(t, e) { + for (var i = -1, r = Array(t); ++i < t; ) + r[i] = e(i); + return r; +} +var zm = 9007199254740991, Wm = /^(?:0|[1-9]\d*)$/; +function Za(t, e) { + var i = typeof t; + return e = e ?? zm, !!e && (i == "number" || i != "symbol" && Wm.test(t)) && t > -1 && t % 1 == 0 && t < e; +} +var Hm = Object.prototype, jm = Hm.hasOwnProperty; +function Um(t, e) { + var i = rr(t), r = !i && ir(t), n = !i && !r && Nn(t), o = !i && !r && !n && Rn(t), s = i || r || n || o, a = s ? qm(t.length, String) : [], l = a.length; + for (var h in t) + (e || jm.call(t, h)) && !(s && // Safari 9 has enumerable `arguments.length` in strict mode. + (h == "length" || // Node.js 0.10 has enumerable non-index properties on buffers. + n && (h == "offset" || h == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays. + o && (h == "buffer" || h == "byteLength" || h == "byteOffset") || // Skip index properties. + Za(h, l))) && a.push(h); + return a; +} +function Ym(t) { + var e = []; + if (t != null) + for (var i in Object(t)) + e.push(i); + return e; +} +var Gm = Object.prototype, Vm = Gm.hasOwnProperty; +function Xm(t) { + if (!ye(t)) + return Ym(t); + var e = Sr(t), i = []; + for (var r in t) + r == "constructor" && (e || !Vm.call(t, r)) || i.push(r); + return i; +} +function Ja(t) { + return vr(t) ? Um(t, !0) : Xm(t); +} +function Km(t) { + return Pm(t, Ja(t)); +} +function Zm(t, e, i, r, n, o, s) { + var a = fn(t, i), l = fn(e, i), h = s.get(l); + if (h) { + un(t, i, h); + return; + } + var u = o ? o(a, l, i + "", t, e, s) : void 0, f = u === void 0; + if (f) { + var c = rr(l), d = !c && Nn(l), m = !c && !d && Rn(l); + u = l, c || d || m ? rr(a) ? u = a : Kg(a) ? u = Rg(a) : d ? (f = !1, u = $g(l, !0)) : m ? (f = !1, u = Ng(l, !0)) : u = [] : sm(l) || ir(l) ? (u = a, ir(a) ? u = Km(a) : (!ye(a) || In(a)) && (u = Hg(l))) : f = !1; + } + f && (s.set(l, u), n(u, l, r, o, s), s.delete(l)), un(t, i, u); +} +function Qa(t, e, i, r, n) { + t !== e && Mg(e, function(o, s) { + if (n || (n = new Re()), ye(o)) + Zm(t, e, s, i, Qa, r, n); + else { + var a = r ? r(fn(t, s), o, s + "", t, e, n) : void 0; + a === void 0 && (a = o), un(t, s, a); + } + }, Ja); +} +function tl(t) { + return t; +} +function Jm(t, e, i) { + switch (i.length) { + case 0: + return t.call(e); + case 1: + return t.call(e, i[0]); + case 2: + return t.call(e, i[0], i[1]); + case 3: + return t.call(e, i[0], i[1], i[2]); + } + return t.apply(e, i); +} +var ds = Math.max; +function Qm(t, e, i) { + return e = ds(e === void 0 ? t.length - 1 : e, 0), function() { + for (var r = arguments, n = -1, o = ds(r.length - e, 0), s = Array(o); ++n < o; ) + s[n] = r[e + n]; + n = -1; + for (var a = Array(e + 1); ++n < e; ) + a[n] = r[n]; + return a[e] = i(s), Jm(t, this, a); + }; +} +function t0(t) { + return function() { + return t; + }; +} +var e0 = er ? function(t, e) { + return er(t, "toString", { + configurable: !0, + enumerable: !1, + value: t0(e), + writable: !0 + }); +} : tl; +const i0 = e0; +var r0 = 800, n0 = 16, o0 = Date.now; +function s0(t) { + var e = 0, i = 0; + return function() { + var r = o0(), n = n0 - (r - i); + if (i = r, n > 0) { + if (++e >= r0) + return arguments[0]; + } else + e = 0; + return t.apply(void 0, arguments); + }; +} +var a0 = s0(i0); +const l0 = a0; +function h0(t, e) { + return l0(Qm(t, e, tl), t + ""); +} +function c0(t, e, i) { + if (!ye(i)) + return !1; + var r = typeof e; + return (r == "number" ? vr(i) && Za(e, i.length) : r == "string" && e in i) ? br(i[e], t) : !1; +} +function u0(t) { + return h0(function(e, i) { + var r = -1, n = i.length, o = n > 1 ? i[n - 1] : void 0, s = n > 2 ? i[2] : void 0; + for (o = t.length > 3 && typeof o == "function" ? (n--, o) : void 0, s && c0(i[0], i[1], s) && (o = n < 3 ? void 0 : o, n = 1), e = Object(e); ++r < n; ) { + var a = i[r]; + a && t(e, a, r, o); + } + return e; + }); +} +var f0 = u0(function(t, e, i) { + Qa(t, e, i); +}); +const d0 = f0, p0 = "​", g0 = { + curveBasis: Pf, + curveBasisClosed: qf, + curveBasisOpen: zf, + curveBumpX: Nf, + curveBumpY: Rf, + curveBundle: Wf, + curveCardinalClosed: jf, + curveCardinalOpen: Uf, + curveCardinal: Hf, + curveCatmullRomClosed: Gf, + curveCatmullRomOpen: Vf, + curveCatmullRom: Yf, + curveLinear: Df, + curveLinearClosed: Xf, + curveMonotoneX: Kf, + curveMonotoneY: Zf, + curveNatural: Jf, + curveStep: Qf, + curveStepAfter: ed, + curveStepBefore: td +}, m0 = /\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi, y0 = function(t, e) { + const i = el(t, /(?:init\b)|(?:initialize\b)/); + let r = {}; + if (Array.isArray(i)) { + const s = i.map((a) => a.args); + Qi(s), r = st(r, [...s]); + } else + r = i.args; + if (!r) + return; + let n = xr(t, e); + const o = "config"; + return r[o] !== void 0 && (n === "flowchart-v2" && (n = "flowchart"), r[n] = r[o], delete r[o]), r; +}, el = function(t, e = null) { + try { + const i = new RegExp( + `[%]{2}(?![{]${m0.source})(?=[}][%]{2}).* +`, + "ig" + ); + t = t.trim().replace(i, "").replace(/'/gm, '"'), L.debug( + `Detecting diagram directive${e !== null ? " type:" + e : ""} based on the text:${t}` + ); + let r; + const n = []; + for (; (r = Qe.exec(t)) !== null; ) + if (r.index === Qe.lastIndex && Qe.lastIndex++, r && !e || e && r[1] && r[1].match(e) || e && r[2] && r[2].match(e)) { + const o = r[1] ? r[1] : r[2], s = r[3] ? r[3].trim() : r[4] ? JSON.parse(r[4].trim()) : null; + n.push({ type: o, args: s }); + } + return n.length === 0 ? { type: t, args: null } : n.length === 1 ? n[0] : n; + } catch (i) { + return L.error( + `ERROR: ${i.message} - Unable to parse directive type: '${e}' based on the text: '${t}'` + ), { type: void 0, args: null }; + } +}, _0 = function(t) { + return t.replace(Qe, ""); +}, C0 = function(t, e) { + for (const [i, r] of e.entries()) + if (r.match(t)) + return i; + return -1; +}; +function x0(t, e) { + if (!t) + return e; + const i = `curve${t.charAt(0).toUpperCase() + t.slice(1)}`; + return g0[i] ?? e; +} +function b0(t, e) { + const i = t.trim(); + if (i) + return e.securityLevel !== "loose" ? Rs.sanitizeUrl(i) : i; +} +const T0 = (t, ...e) => { + const i = t.split("."), r = i.length - 1, n = i[r]; + let o = window; + for (let s = 0; s < r; s++) + if (o = o[i[s]], !o) { + L.error(`Function name: ${t} not found in window`); + return; + } + o[n](...e); +}; +function il(t, e) { + return !t || !e ? 0 : Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2)); +} +function k0(t) { + let e, i = 0; + t.forEach((n) => { + i += il(n, e), e = n; + }); + const r = i / 2; + return Pn(t, r); +} +function S0(t) { + return t.length === 1 ? t[0] : k0(t); +} +const ps = (t, e = 2) => { + const i = Math.pow(10, e); + return Math.round(t * i) / i; +}, Pn = (t, e) => { + let i, r = e; + for (const n of t) { + if (i) { + const o = il(n, i); + if (o < r) + r -= o; + else { + const s = r / o; + if (s <= 0) + return i; + if (s >= 1) + return { x: n.x, y: n.y }; + if (s > 0 && s < 1) + return { + x: ps((1 - s) * i.x + s * n.x, 5), + y: ps((1 - s) * i.y + s * n.y, 5) + }; + } + } + i = n; + } + throw new Error("Could not find a suitable point for the given distance"); +}, v0 = (t, e, i) => { + L.info(`our points ${JSON.stringify(e)}`), e[0] !== i && (e = e.reverse()); + const n = Pn(e, 25), o = t ? 10 : 5, s = Math.atan2(e[0].y - n.y, e[0].x - n.x), a = { x: 0, y: 0 }; + return a.x = Math.sin(s) * o + (e[0].x + n.x) / 2, a.y = -Math.cos(s) * o + (e[0].y + n.y) / 2, a; +}; +function w0(t, e, i) { + const r = structuredClone(i); + L.info("our points", r), e !== "start_left" && e !== "start_right" && r.reverse(); + const n = 25 + t, o = Pn(r, n), s = 10 + t * 0.5, a = Math.atan2(r[0].y - o.y, r[0].x - o.x), l = { x: 0, y: 0 }; + return e === "start_left" ? (l.x = Math.sin(a + Math.PI) * s + (r[0].x + o.x) / 2, l.y = -Math.cos(a + Math.PI) * s + (r[0].y + o.y) / 2) : e === "end_right" ? (l.x = Math.sin(a - Math.PI) * s + (r[0].x + o.x) / 2 - 5, l.y = -Math.cos(a - Math.PI) * s + (r[0].y + o.y) / 2 - 5) : e === "end_left" ? (l.x = Math.sin(a) * s + (r[0].x + o.x) / 2 - 5, l.y = -Math.cos(a) * s + (r[0].y + o.y) / 2 - 5) : (l.x = Math.sin(a) * s + (r[0].x + o.x) / 2, l.y = -Math.cos(a) * s + (r[0].y + o.y) / 2), l; +} +function B0(t) { + let e = "", i = ""; + for (const r of t) + r !== void 0 && (r.startsWith("color:") || r.startsWith("text-align:") ? i = i + r + ";" : e = e + r + ";"); + return { style: e, labelStyle: i }; +} +let gs = 0; +const F0 = () => (gs++, "id-" + Math.random().toString(36).substr(2, 12) + "-" + gs); +function A0(t) { + let e = ""; + const i = "0123456789abcdef", r = i.length; + for (let n = 0; n < t; n++) + e += i.charAt(Math.floor(Math.random() * r)); + return e; +} +const L0 = (t) => A0(t.length), E0 = function() { + return { + x: 0, + y: 0, + fill: void 0, + anchor: "start", + style: "#666", + width: 100, + height: 100, + textMargin: 0, + rx: 0, + ry: 0, + valign: void 0, + text: "" + }; +}, M0 = function(t, e) { + const i = e.text.replace($n.lineBreakRegex, " "), [, r] = zn(e.fontSize), n = t.append("text"); + n.attr("x", e.x), n.attr("y", e.y), n.style("text-anchor", e.anchor), n.style("font-family", e.fontFamily), n.style("font-size", r), n.style("font-weight", e.fontWeight), n.attr("fill", e.fill), e.class !== void 0 && n.attr("class", e.class); + const o = n.append("tspan"); + return o.attr("x", e.x + e.textMargin * 2), o.attr("fill", e.fill), o.text(i), n; +}, O0 = yi( + (t, e, i) => { + if (!t || (i = Object.assign( + { fontSize: 12, fontWeight: 400, fontFamily: "Arial", joinWith: "
" }, + i + ), $n.lineBreakRegex.test(t))) + return t; + const r = t.split(" "), n = []; + let o = ""; + return r.forEach((s, a) => { + const l = nr(`${s} `, i), h = nr(o, i); + if (l > e) { + const { hyphenatedStrings: c, remainingWord: d } = $0(s, e, "-", i); + n.push(o, ...c), o = d; + } else + h + l >= e ? (n.push(o), o = s) : o = [o, s].filter(Boolean).join(" "); + a + 1 === r.length && n.push(o); + }), n.filter((s) => s !== "").join(i.joinWith); + }, + (t, e, i) => `${t}${e}${i.fontSize}${i.fontWeight}${i.fontFamily}${i.joinWith}` +), $0 = yi( + (t, e, i = "-", r) => { + r = Object.assign( + { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 0 }, + r + ); + const n = [...t], o = []; + let s = ""; + return n.forEach((a, l) => { + const h = `${s}${a}`; + if (nr(h, r) >= e) { + const f = l + 1, c = n.length === f, d = `${h}${i}`; + o.push(c ? h : d), s = ""; + } else + s = h; + }), { hyphenatedStrings: o, remainingWord: s }; + }, + (t, e, i = "-", r) => `${t}${e}${i}${r.fontSize}${r.fontWeight}${r.fontFamily}` +); +function I0(t, e) { + return qn(t, e).height; +} +function nr(t, e) { + return qn(t, e).width; +} +const qn = yi( + (t, e) => { + const { fontSize: i = 12, fontFamily: r = "Arial", fontWeight: n = 400 } = e; + if (!t) + return { width: 0, height: 0 }; + const [, o] = zn(i), s = ["sans-serif", r], a = t.split($n.lineBreakRegex), l = [], h = bt("body"); + if (!h.remove) + return { width: 0, height: 0, lineHeight: 0 }; + const u = h.append("svg"); + for (const c of s) { + let d = 0; + const m = { width: 0, height: 0, lineHeight: 0 }; + for (const S of a) { + const O = E0(); + O.text = S || p0; + const z = M0(u, O).style("font-size", o).style("font-weight", n).style("font-family", c), T = (z._groups || z)[0][0].getBBox(); + if (T.width === 0 && T.height === 0) + throw new Error("svg element not in render tree"); + m.width = Math.round(Math.max(m.width, T.width)), d = Math.round(T.height), m.height += d, m.lineHeight = Math.round(Math.max(m.lineHeight, d)); + } + l.push(m); + } + u.remove(); + const f = isNaN(l[1].height) || isNaN(l[1].width) || isNaN(l[1].lineHeight) || l[0].height > l[1].height && l[0].width > l[1].width && l[0].lineHeight > l[1].lineHeight ? 0 : 1; + return l[f]; + }, + (t, e) => `${t}${e.fontSize}${e.fontWeight}${e.fontFamily}` +); +class D0 { + constructor(e = !1, i) { + this.count = 0, this.count = i ? i.length : 0, this.next = e ? () => this.count++ : () => Date.now(); + } +} +let Ei; +const N0 = function(t) { + return Ei = Ei || document.createElement("div"), t = escape(t).replace(/%26/g, "&").replace(/%23/g, "#").replace(/%3B/g, ";"), Ei.innerHTML = t, unescape(Ei.textContent); +}; +function rl(t) { + return "str" in t; +} +const R0 = (t, e, i, r) => { + var o; + if (!r) + return; + const n = (o = t.node()) == null ? void 0 : o.getBBox(); + n && t.append("text").text(r).attr("x", n.x + n.width / 2).attr("y", -i).attr("class", e); +}, zn = (t) => { + if (typeof t == "number") + return [t, t + "px"]; + const e = parseInt(t ?? "", 10); + return Number.isNaN(e) ? [void 0, void 0] : t === String(e) ? [e, t + "px"] : [e, t]; +}; +function nl(t, e) { + return d0({}, t, e); +} +const ei = { + assignWithDepth: st, + wrapLabel: O0, + calculateTextHeight: I0, + calculateTextWidth: nr, + calculateTextDimensions: qn, + cleanAndMerge: nl, + detectInit: y0, + detectDirective: el, + isSubstringInArray: C0, + interpolateToCurve: x0, + calcLabelPosition: S0, + calcCardinalityPosition: v0, + calcTerminalLabelPosition: w0, + formatUrl: b0, + getStylesFromArray: B0, + generateId: F0, + random: L0, + runFunc: T0, + entityDecode: N0, + insertTitle: R0, + parseFontSize: zn, + InitIDGenerator: D0 +}, P0 = function(t) { + let e = t; + return e = e.replace(/style.*:\S*#.*;/g, function(i) { + return i.substring(0, i.length - 1); + }), e = e.replace(/classDef.*:\S*#.*;/g, function(i) { + return i.substring(0, i.length - 1); + }), e = e.replace(/#\w+;/g, function(i) { + const r = i.substring(1, i.length - 1); + return /^\+?\d+$/.test(r) ? "fl°°" + r + "¶ß" : "fl°" + r + "¶ß"; + }), e; +}, q0 = function(t) { + return t.replace(/fl°°/g, "&#").replace(/fl°/g, "&").replace(/¶ß/g, ";"); +}; +var ol = "comm", sl = "rule", al = "decl", z0 = "@import", W0 = "@keyframes", H0 = "@layer", ll = Math.abs, Wn = String.fromCharCode; +function hl(t) { + return t.trim(); +} +function qi(t, e, i) { + return t.replace(e, i); +} +function j0(t, e, i) { + return t.indexOf(e, i); +} +function ci(t, e) { + return t.charCodeAt(e) | 0; +} +function ui(t, e, i) { + return t.slice(e, i); +} +function Ut(t) { + return t.length; +} +function U0(t) { + return t.length; +} +function Mi(t, e) { + return e.push(t), t; +} +var wr = 1, Oe = 1, cl = 0, kt = 0, J = 0, Pe = ""; +function Hn(t, e, i, r, n, o, s, a) { + return { value: t, root: e, parent: i, type: r, props: n, children: o, line: wr, column: Oe, length: s, return: "", siblings: a }; +} +function Y0() { + return J; +} +function G0() { + return J = kt > 0 ? ci(Pe, --kt) : 0, Oe--, J === 10 && (Oe = 1, wr--), J; +} +function Bt() { + return J = kt < cl ? ci(Pe, kt++) : 0, Oe++, J === 10 && (Oe = 1, wr++), J; +} +function fe() { + return ci(Pe, kt); +} +function zi() { + return kt; +} +function Br(t, e) { + return ui(Pe, t, e); +} +function dn(t) { + switch (t) { + case 0: + case 9: + case 10: + case 13: + case 32: + return 5; + case 33: + case 43: + case 44: + case 47: + case 62: + case 64: + case 126: + case 59: + case 123: + case 125: + return 4; + case 58: + return 3; + case 34: + case 39: + case 40: + case 91: + return 2; + case 41: + case 93: + return 1; + } + return 0; +} +function V0(t) { + return wr = Oe = 1, cl = Ut(Pe = t), kt = 0, []; +} +function X0(t) { + return Pe = "", t; +} +function Yr(t) { + return hl(Br(kt - 1, pn(t === 91 ? t + 2 : t === 40 ? t + 1 : t))); +} +function K0(t) { + for (; (J = fe()) && J < 33; ) + Bt(); + return dn(t) > 2 || dn(J) > 3 ? "" : " "; +} +function Z0(t, e) { + for (; --e && Bt() && !(J < 48 || J > 102 || J > 57 && J < 65 || J > 70 && J < 97); ) + ; + return Br(t, zi() + (e < 6 && fe() == 32 && Bt() == 32)); +} +function pn(t) { + for (; Bt(); ) + switch (J) { + case t: + return kt; + case 34: + case 39: + t !== 34 && t !== 39 && pn(J); + break; + case 40: + t === 41 && pn(t); + break; + case 92: + Bt(); + break; + } + return kt; +} +function J0(t, e) { + for (; Bt() && t + J !== 47 + 10; ) + if (t + J === 42 + 42 && fe() === 47) + break; + return "/*" + Br(e, kt - 1) + "*" + Wn(t === 47 ? t : Bt()); +} +function Q0(t) { + for (; !dn(fe()); ) + Bt(); + return Br(t, kt); +} +function ty(t) { + return X0(Wi("", null, null, null, [""], t = V0(t), 0, [0], t)); +} +function Wi(t, e, i, r, n, o, s, a, l) { + for (var h = 0, u = 0, f = s, c = 0, d = 0, m = 0, S = 1, O = 1, z = 1, T = 0, R = "", X = n, G = o, V = r, H = R; O; ) + switch (m = T, T = Bt()) { + case 40: + if (m != 108 && ci(H, f - 1) == 58) { + j0(H += qi(Yr(T), "&", "&\f"), "&\f", ll(h ? a[h - 1] : 0)) != -1 && (z = -1); + break; + } + case 34: + case 39: + case 91: + H += Yr(T); + break; + case 9: + case 10: + case 13: + case 32: + H += K0(m); + break; + case 92: + H += Z0(zi() - 1, 7); + continue; + case 47: + switch (fe()) { + case 42: + case 47: + Mi(ey(J0(Bt(), zi()), e, i, l), l); + break; + default: + H += "/"; + } + break; + case 123 * S: + a[h++] = Ut(H) * z; + case 125 * S: + case 59: + case 0: + switch (T) { + case 0: + case 125: + O = 0; + case 59 + u: + z == -1 && (H = qi(H, /\f/g, "")), d > 0 && Ut(H) - f && Mi(d > 32 ? ys(H + ";", r, i, f - 1, l) : ys(qi(H, " ", "") + ";", r, i, f - 2, l), l); + break; + case 59: + H += ";"; + default: + if (Mi(V = ms(H, e, i, h, u, n, a, R, X = [], G = [], f, o), o), T === 123) + if (u === 0) + Wi(H, e, V, V, X, o, f, a, G); + else + switch (c === 99 && ci(H, 3) === 110 ? 100 : c) { + case 100: + case 108: + case 109: + case 115: + Wi(t, V, V, r && Mi(ms(t, V, V, 0, 0, n, a, R, n, X = [], f, G), G), n, G, f, a, r ? X : G); + break; + default: + Wi(H, V, V, V, [""], G, 0, a, G); + } + } + h = u = d = 0, S = z = 1, R = H = "", f = s; + break; + case 58: + f = 1 + Ut(H), d = m; + default: + if (S < 1) { + if (T == 123) + --S; + else if (T == 125 && S++ == 0 && G0() == 125) + continue; + } + switch (H += Wn(T), T * S) { + case 38: + z = u > 0 ? 1 : (H += "\f", -1); + break; + case 44: + a[h++] = (Ut(H) - 1) * z, z = 1; + break; + case 64: + fe() === 45 && (H += Yr(Bt())), c = fe(), u = f = Ut(R = H += Q0(zi())), T++; + break; + case 45: + m === 45 && Ut(H) == 2 && (S = 0); + } + } + return o; +} +function ms(t, e, i, r, n, o, s, a, l, h, u, f) { + for (var c = n - 1, d = n === 0 ? o : [""], m = U0(d), S = 0, O = 0, z = 0; S < r; ++S) + for (var T = 0, R = ui(t, c + 1, c = ll(O = s[S])), X = t; T < m; ++T) + (X = hl(O > 0 ? d[T] + " " + R : qi(R, /&\f/g, d[T]))) && (l[z++] = X); + return Hn(t, e, i, n === 0 ? sl : a, l, h, u, f); +} +function ey(t, e, i, r) { + return Hn(t, e, i, ol, Wn(Y0()), ui(t, 2, -2), 0, r); +} +function ys(t, e, i, r, n) { + return Hn(t, e, i, al, ui(t, 0, r), ui(t, r + 1, -1), r, n); +} +function gn(t, e) { + for (var i = "", r = 0; r < t.length; r++) + i += e(t[r], r, t, e) || ""; + return i; +} +function iy(t, e, i, r) { + switch (t.type) { + case H0: + if (t.children.length) + break; + case z0: + case al: + return t.return = t.return || t.value; + case ol: + return ""; + case W0: + return t.return = t.value + "{" + gn(t.children, r) + "}"; + case sl: + if (!Ut(t.value = t.props.join(","))) + return ""; + } + return Ut(i = gn(t.children, r)) ? t.return = t.value + "{" + i + "}" : ""; +} +const _s = "10.9.1", $e = Object.freeze(yp); +let dt = st({}, $e), ul, Ie = [], ii = st({}, $e); +const Fr = (t, e) => { + let i = st({}, t), r = {}; + for (const n of e) + pl(n), r = st(r, n); + if (i = st(i, r), r.theme && r.theme in Gt) { + const n = st({}, ul), o = st( + n.themeVariables || {}, + r.themeVariables + ); + i.theme && i.theme in Gt && (i.themeVariables = Gt[i.theme].getThemeVariables(o)); + } + return ii = i, gl(ii), ii; +}, ry = (t) => (dt = st({}, $e), dt = st(dt, t), t.theme && Gt[t.theme] && (dt.themeVariables = Gt[t.theme].getThemeVariables(t.themeVariables)), Fr(dt, Ie), dt), ny = (t) => { + ul = st({}, t); +}, oy = (t) => (dt = st(dt, t), Fr(dt, Ie), dt), fl = () => st({}, dt), dl = (t) => (gl(t), st(ii, t), $t()), $t = () => st({}, ii), pl = (t) => { + t && (["secure", ...dt.secure ?? []].forEach((e) => { + Object.hasOwn(t, e) && (L.debug(`Denied attempt to modify a secure key ${e}`, t[e]), delete t[e]); + }), Object.keys(t).forEach((e) => { + e.startsWith("__") && delete t[e]; + }), Object.keys(t).forEach((e) => { + typeof t[e] == "string" && (t[e].includes("<") || t[e].includes(">") || t[e].includes("url(data:")) && delete t[e], typeof t[e] == "object" && pl(t[e]); + })); +}, sy = (t) => { + Qi(t), t.fontFamily && (!t.themeVariables || !t.themeVariables.fontFamily) && (t.themeVariables = { fontFamily: t.fontFamily }), Ie.push(t), Fr(dt, Ie); +}, or = (t = dt) => { + Ie = [], Fr(t, Ie); +}, ay = { + LAZY_LOAD_DEPRECATED: "The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead." +}, Cs = {}, ly = (t) => { + Cs[t] || (L.warn(ay[t]), Cs[t] = !0); +}, gl = (t) => { + t && (t.lazyLoadedDiagrams || t.loadExternalDiagramsAtStartup) && ly("LAZY_LOAD_DEPRECATED"); +}, ml = "c4", hy = (t) => /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t), cy = async () => { + const { diagram: t } = await import("./c4Diagram-1e775db3.js"); + return { id: ml, diagram: t }; +}, uy = { + id: ml, + detector: hy, + loader: cy +}, fy = uy, yl = "flowchart", dy = (t, e) => { + var i, r; + return ((i = e == null ? void 0 : e.flowchart) == null ? void 0 : i.defaultRenderer) === "dagre-wrapper" || ((r = e == null ? void 0 : e.flowchart) == null ? void 0 : r.defaultRenderer) === "elk" ? !1 : /^\s*graph/.test(t); +}, py = async () => { + const { diagram: t } = await import("./flowDiagram-aadb13b0.js"); + return { id: yl, diagram: t }; +}, gy = { + id: yl, + detector: dy, + loader: py +}, my = gy, _l = "flowchart-v2", yy = (t, e) => { + var i, r, n; + return ((i = e == null ? void 0 : e.flowchart) == null ? void 0 : i.defaultRenderer) === "dagre-d3" || ((r = e == null ? void 0 : e.flowchart) == null ? void 0 : r.defaultRenderer) === "elk" ? !1 : /^\s*graph/.test(t) && ((n = e == null ? void 0 : e.flowchart) == null ? void 0 : n.defaultRenderer) === "dagre-wrapper" ? !0 : /^\s*flowchart/.test(t); +}, _y = async () => { + const { diagram: t } = await import("./flowDiagram-v2-f2119625.js"); + return { id: _l, diagram: t }; +}, Cy = { + id: _l, + detector: yy, + loader: _y +}, xy = Cy, Cl = "er", by = (t) => /^\s*erDiagram/.test(t), Ty = async () => { + const { diagram: t } = await import("./erDiagram-c7ff1bec.js"); + return { id: Cl, diagram: t }; +}, ky = { + id: Cl, + detector: by, + loader: Ty +}, Sy = ky, xl = "gitGraph", vy = (t) => /^\s*gitGraph/.test(t), wy = async () => { + const { diagram: t } = await import("./gitGraphDiagram-c3a0619c.js"); + return { id: xl, diagram: t }; +}, By = { + id: xl, + detector: vy, + loader: wy +}, Fy = By, bl = "gantt", Ay = (t) => /^\s*gantt/.test(t), Ly = async () => { + const { diagram: t } = await import("./ganttDiagram-3c2fde2b.js"); + return { id: bl, diagram: t }; +}, Ey = { + id: bl, + detector: Ay, + loader: Ly +}, My = Ey, Tl = "info", Oy = (t) => /^\s*info/.test(t), $y = async () => { + const { diagram: t } = await import("./infoDiagram-2f5c50c0.js"); + return { id: Tl, diagram: t }; +}, Iy = { + id: Tl, + detector: Oy, + loader: $y +}, kl = "pie", Dy = (t) => /^\s*pie/.test(t), Ny = async () => { + const { diagram: t } = await import("./pieDiagram-828dae43.js"); + return { id: kl, diagram: t }; +}, Ry = { + id: kl, + detector: Dy, + loader: Ny +}, Sl = "quadrantChart", Py = (t) => /^\s*quadrantChart/.test(t), qy = async () => { + const { diagram: t } = await import("./quadrantDiagram-5fa00455.js"); + return { id: Sl, diagram: t }; +}, zy = { + id: Sl, + detector: Py, + loader: qy +}, Wy = zy, vl = "xychart", Hy = (t) => /^\s*xychart-beta/.test(t), jy = async () => { + const { diagram: t } = await import("./xychartDiagram-e5e6b652.js"); + return { id: vl, diagram: t }; +}, Uy = { + id: vl, + detector: Hy, + loader: jy +}, Yy = Uy, wl = "requirement", Gy = (t) => /^\s*requirement(Diagram)?/.test(t), Vy = async () => { + const { diagram: t } = await import("./requirementDiagram-03163dc4.js"); + return { id: wl, diagram: t }; +}, Xy = { + id: wl, + detector: Gy, + loader: Vy +}, Ky = Xy, Bl = "sequence", Zy = (t) => /^\s*sequenceDiagram/.test(t), Jy = async () => { + const { diagram: t } = await import("./sequenceDiagram-b517d154.js"); + return { id: Bl, diagram: t }; +}, Qy = { + id: Bl, + detector: Zy, + loader: Jy +}, t_ = Qy, Fl = "class", e_ = (t, e) => { + var i; + return ((i = e == null ? void 0 : e.class) == null ? void 0 : i.defaultRenderer) === "dagre-wrapper" ? !1 : /^\s*classDiagram/.test(t); +}, i_ = async () => { + const { diagram: t } = await import("./classDiagram-f52caa06.js"); + return { id: Fl, diagram: t }; +}, r_ = { + id: Fl, + detector: e_, + loader: i_ +}, n_ = r_, Al = "classDiagram", o_ = (t, e) => { + var i; + return /^\s*classDiagram/.test(t) && ((i = e == null ? void 0 : e.class) == null ? void 0 : i.defaultRenderer) === "dagre-wrapper" ? !0 : /^\s*classDiagram-v2/.test(t); +}, s_ = async () => { + const { diagram: t } = await import("./classDiagram-v2-640c694e.js"); + return { id: Al, diagram: t }; +}, a_ = { + id: Al, + detector: o_, + loader: s_ +}, l_ = a_, Ll = "state", h_ = (t, e) => { + var i; + return ((i = e == null ? void 0 : e.state) == null ? void 0 : i.defaultRenderer) === "dagre-wrapper" ? !1 : /^\s*stateDiagram/.test(t); +}, c_ = async () => { + const { diagram: t } = await import("./stateDiagram-fca82b5b.js"); + return { id: Ll, diagram: t }; +}, u_ = { + id: Ll, + detector: h_, + loader: c_ +}, f_ = u_, El = "stateDiagram", d_ = (t, e) => { + var i; + return !!(/^\s*stateDiagram-v2/.test(t) || /^\s*stateDiagram/.test(t) && ((i = e == null ? void 0 : e.state) == null ? void 0 : i.defaultRenderer) === "dagre-wrapper"); +}, p_ = async () => { + const { diagram: t } = await import("./stateDiagram-v2-ed04200a.js"); + return { id: El, diagram: t }; +}, g_ = { + id: El, + detector: d_, + loader: p_ +}, m_ = g_, Ml = "journey", y_ = (t) => /^\s*journey/.test(t), __ = async () => { + const { diagram: t } = await import("./journeyDiagram-14fe341a.js"); + return { id: Ml, diagram: t }; +}, C_ = { + id: Ml, + detector: y_, + loader: __ +}, x_ = C_, b_ = function(t, e) { + for (let i of e) + t.attr(i[0], i[1]); +}, T_ = function(t, e, i) { + let r = /* @__PURE__ */ new Map(); + return i ? (r.set("width", "100%"), r.set("style", `max-width: ${e}px;`)) : (r.set("height", t), r.set("width", e)), r; +}, Ol = function(t, e, i, r) { + const n = T_(e, i, r); + b_(t, n); +}, k_ = function(t, e, i, r) { + const n = e.node().getBBox(), o = n.width, s = n.height; + L.info(`SVG bounds: ${o}x${s}`, n); + let a = 0, l = 0; + L.info(`Graph bounds: ${a}x${l}`, t), a = o + i * 2, l = s + i * 2, L.info(`Calculated bounds: ${a}x${l}`), Ol(e, l, a, r); + const h = `${n.x - i} ${n.y - i} ${n.width + 2 * i} ${n.height + 2 * i}`; + e.attr("viewBox", h); +}, Hi = {}, S_ = (t, e, i) => { + let r = ""; + return t in Hi && Hi[t] ? r = Hi[t](i) : L.warn(`No theme found for ${t}`), ` & { + font-family: ${i.fontFamily}; + font-size: ${i.fontSize}; + fill: ${i.textColor} + } + + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${i.errorBkgColor}; + } + & .error-text { + fill: ${i.errorTextColor}; + stroke: ${i.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 2px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${i.lineColor}; + stroke: ${i.lineColor}; + } + & .marker.cross { + stroke: ${i.lineColor}; + } + + & svg { + font-family: ${i.fontFamily}; + font-size: ${i.fontSize}; + } + + ${r} + + ${e} +`; +}, v_ = (t, e) => { + e !== void 0 && (Hi[t] = e); +}, w_ = S_; +let jn = "", Un = "", Yn = ""; +const Gn = (t) => ai(t, $t()), B_ = () => { + jn = "", Yn = "", Un = ""; +}, F_ = (t) => { + jn = Gn(t).replace(/^\s+/g, ""); +}, A_ = () => jn, L_ = (t) => { + Yn = Gn(t).replace(/\n\s+/g, ` +`); +}, E_ = () => Yn, M_ = (t) => { + Un = Gn(t); +}, O_ = () => Un, $_ = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + clear: B_, + getAccDescription: E_, + getAccTitle: A_, + getDiagramTitle: O_, + setAccDescription: L_, + setAccTitle: F_, + setDiagramTitle: M_ +}, Symbol.toStringTag, { value: "Module" })), I_ = L, D_ = bn, Vn = $t, v1 = dl, w1 = $e, N_ = (t) => ai(t, Vn()), R_ = k_, P_ = () => $_, sr = {}, ar = (t, e, i) => { + var r; + if (sr[t]) + throw new Error(`Diagram ${t} already registered.`); + sr[t] = e, i && qa(t, i), v_(t, e.styles), (r = e.injectUtils) == null || r.call( + e, + I_, + D_, + Vn, + N_, + R_, + P_(), + () => { + } + ); +}, Xn = (t) => { + if (t in sr) + return sr[t]; + throw new q_(t); +}; +class q_ extends Error { + constructor(e) { + super(`Diagram ${e} not found.`); + } +} +const z_ = (t) => { + var n; + const { securityLevel: e } = Vn(); + let i = bt("body"); + if (e === "sandbox") { + const s = ((n = bt(`#i${t}`).node()) == null ? void 0 : n.contentDocument) ?? document; + i = bt(s.body); + } + return i.select(`#${t}`); +}, W_ = (t, e, i) => { + L.debug(`rendering svg for syntax error +`); + const r = z_(e), n = r.append("g"); + r.attr("viewBox", "0 0 2412 512"), Ol(r, 100, 512, !0), n.append("path").attr("class", "error-icon").attr( + "d", + "m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z" + ), n.append("path").attr("class", "error-icon").attr( + "d", + "m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z" + ), n.append("path").attr("class", "error-icon").attr( + "d", + "m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z" + ), n.append("path").attr("class", "error-icon").attr( + "d", + "m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z" + ), n.append("path").attr("class", "error-icon").attr( + "d", + "m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z" + ), n.append("path").attr("class", "error-icon").attr( + "d", + "m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z" + ), n.append("text").attr("class", "error-text").attr("x", 1440).attr("y", 250).attr("font-size", "150px").style("text-anchor", "middle").text("Syntax error in text"), n.append("text").attr("class", "error-text").attr("x", 1250).attr("y", 400).attr("font-size", "100px").style("text-anchor", "middle").text(`mermaid version ${i}`); +}, $l = { draw: W_ }, H_ = $l, j_ = { + db: {}, + renderer: $l, + parser: { + parser: { yy: {} }, + parse: () => { + } + } +}, U_ = j_, Il = "flowchart-elk", Y_ = (t, e) => { + var i; + return ( + // If diagram explicitly states flowchart-elk + !!(/^\s*flowchart-elk/.test(t) || // If a flowchart/graph diagram has their default renderer set to elk + /^\s*flowchart|graph/.test(t) && ((i = e == null ? void 0 : e.flowchart) == null ? void 0 : i.defaultRenderer) === "elk") + ); +}, G_ = async () => { + const { diagram: t } = await import("./flowchart-elk-definition-cf813a97.js"); + return { id: Il, diagram: t }; +}, V_ = { + id: Il, + detector: Y_, + loader: G_ +}, X_ = V_, Dl = "timeline", K_ = (t) => /^\s*timeline/.test(t), Z_ = async () => { + const { diagram: t } = await import("./timeline-definition-4ee9bff4.js"); + return { id: Dl, diagram: t }; +}, J_ = { + id: Dl, + detector: K_, + loader: Z_ +}, Q_ = J_, Nl = "mindmap", tC = (t) => /^\s*mindmap/.test(t), eC = async () => { + const { diagram: t } = await import("./mindmap-definition-9399c7e6.js"); + return { id: Nl, diagram: t }; +}, iC = { + id: Nl, + detector: tC, + loader: eC +}, rC = iC, Rl = "sankey", nC = (t) => /^\s*sankey-beta/.test(t), oC = async () => { + const { diagram: t } = await import("./sankeyDiagram-52ec8976.js"); + return { id: Rl, diagram: t }; +}, sC = { + id: Rl, + detector: nC, + loader: oC +}, aC = sC, Pl = "block", lC = (t) => /^\s*block-beta/.test(t), hC = async () => { + const { diagram: t } = await import("./blockDiagram-5dc23a45.js"); + return { id: Pl, diagram: t }; +}, cC = { + id: Pl, + detector: lC, + loader: hC +}, uC = cC; +let xs = !1; +const Kn = () => { + xs || (xs = !0, ar("error", U_, (t) => t.toLowerCase().trim() === "error"), ar( + "---", + // --- diagram type may appear if YAML front-matter is not parsed correctly + { + db: { + clear: () => { + } + }, + styles: {}, + // should never be used + renderer: { + draw: () => { + } + }, + parser: { + parser: { yy: {} }, + parse: () => { + throw new Error( + "Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks" + ); + } + }, + init: () => null + // no op + }, + (t) => t.toLowerCase().trimStart().startsWith("---") + ), Pa( + fy, + l_, + n_, + Sy, + My, + Iy, + Ry, + Ky, + t_, + X_, + xy, + my, + rC, + Q_, + Fy, + m_, + f_, + x_, + Wy, + aC, + Yy, + uC + )); +}; +class ql { + constructor(e, i = {}) { + this.text = e, this.metadata = i, this.type = "graph", this.text = P0(e), this.text += ` +`; + const r = $t(); + try { + this.type = xr(e, r); + } catch (o) { + this.type = "error", this.detectError = o; + } + const n = Xn(this.type); + L.debug("Type " + this.type), this.db = n.db, this.renderer = n.renderer, this.parser = n.parser, this.parser.parser.yy = this.db, this.init = n.init, this.parse(); + } + parse() { + var i, r, n, o, s; + if (this.detectError) + throw this.detectError; + (r = (i = this.db).clear) == null || r.call(i); + const e = $t(); + (n = this.init) == null || n.call(this, e), this.metadata.title && ((s = (o = this.db).setDiagramTitle) == null || s.call(o, this.metadata.title)), this.parser.parse(this.text); + } + async render(e, i) { + await this.renderer.draw(this.text, e, i, this); + } + getParser() { + return this.parser; + } + getType() { + return this.type; + } +} +const fC = async (t, e = {}) => { + const i = xr(t, $t()); + try { + Xn(i); + } catch { + const n = xp(i); + if (!n) + throw new Ra(`Diagram ${i} not found.`); + const { id: o, diagram: s } = await n(); + ar(o, s); + } + return new ql(t, e); +}; +let bs = []; +const dC = () => { + bs.forEach((t) => { + t(); + }), bs = []; +}; +var pC = ja(Object.keys, Object); +const gC = pC; +var mC = Object.prototype, yC = mC.hasOwnProperty; +function _C(t) { + if (!Sr(t)) + return gC(t); + var e = []; + for (var i in Object(t)) + yC.call(t, i) && i != "constructor" && e.push(i); + return e; +} +var CC = Ce(Dt, "DataView"); +const mn = CC; +var xC = Ce(Dt, "Promise"); +const yn = xC; +var bC = Ce(Dt, "Set"); +const _n = bC; +var TC = Ce(Dt, "WeakMap"); +const Cn = TC; +var Ts = "[object Map]", kC = "[object Object]", ks = "[object Promise]", Ss = "[object Set]", vs = "[object WeakMap]", ws = "[object DataView]", SC = _e(mn), vC = _e(hi), wC = _e(yn), BC = _e(_n), FC = _e(Cn), he = Ne; +(mn && he(new mn(new ArrayBuffer(1))) != ws || hi && he(new hi()) != Ts || yn && he(yn.resolve()) != ks || _n && he(new _n()) != Ss || Cn && he(new Cn()) != vs) && (he = function(t) { + var e = Ne(t), i = e == kC ? t.constructor : void 0, r = i ? _e(i) : ""; + if (r) + switch (r) { + case SC: + return ws; + case vC: + return Ts; + case wC: + return ks; + case BC: + return Ss; + case FC: + return vs; + } + return e; +}); +const AC = he; +var LC = "[object Map]", EC = "[object Set]", MC = Object.prototype, OC = MC.hasOwnProperty; +function Gr(t) { + if (t == null) + return !0; + if (vr(t) && (rr(t) || typeof t == "string" || typeof t.splice == "function" || Nn(t) || Rn(t) || ir(t))) + return !t.length; + var e = AC(t); + if (e == LC || e == EC) + return !t.size; + if (Sr(t)) + return !_C(t).length; + for (var i in t) + if (OC.call(t, i)) + return !1; + return !0; +} +const $C = "graphics-document document"; +function IC(t, e) { + t.attr("role", $C), e !== "" && t.attr("aria-roledescription", e); +} +function DC(t, e, i, r) { + if (t.insert !== void 0) { + if (i) { + const n = `chart-desc-${r}`; + t.attr("aria-describedby", n), t.insert("desc", ":first-child").attr("id", n).text(i); + } + if (e) { + const n = `chart-title-${r}`; + t.attr("aria-labelledby", n), t.insert("title", ":first-child").attr("id", n).text(e); + } + } +} +const NC = (t) => t.replace(/^\s*%%(?!{)[^\n]+\n?/gm, "").trimStart(); +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ +function zl(t) { + return typeof t > "u" || t === null; +} +function RC(t) { + return typeof t == "object" && t !== null; +} +function PC(t) { + return Array.isArray(t) ? t : zl(t) ? [] : [t]; +} +function qC(t, e) { + var i, r, n, o; + if (e) + for (o = Object.keys(e), i = 0, r = o.length; i < r; i += 1) + n = o[i], t[n] = e[n]; + return t; +} +function zC(t, e) { + var i = "", r; + for (r = 0; r < e; r += 1) + i += t; + return i; +} +function WC(t) { + return t === 0 && Number.NEGATIVE_INFINITY === 1 / t; +} +var HC = zl, jC = RC, UC = PC, YC = zC, GC = WC, VC = qC, lt = { + isNothing: HC, + isObject: jC, + toArray: UC, + repeat: YC, + isNegativeZero: GC, + extend: VC +}; +function Wl(t, e) { + var i = "", r = t.reason || "(unknown reason)"; + return t.mark ? (t.mark.name && (i += 'in "' + t.mark.name + '" '), i += "(" + (t.mark.line + 1) + ":" + (t.mark.column + 1) + ")", !e && t.mark.snippet && (i += ` + +` + t.mark.snippet), r + " " + i) : r; +} +function fi(t, e) { + Error.call(this), this.name = "YAMLException", this.reason = t, this.mark = e, this.message = Wl(this, !1), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error().stack || ""; +} +fi.prototype = Object.create(Error.prototype); +fi.prototype.constructor = fi; +fi.prototype.toString = function(e) { + return this.name + ": " + Wl(this, e); +}; +var Yt = fi; +function Vr(t, e, i, r, n) { + var o = "", s = "", a = Math.floor(n / 2) - 1; + return r - e > a && (o = " ... ", e = r - a + o.length), i - r > a && (s = " ...", i = r + a - s.length), { + str: o + t.slice(e, i).replace(/\t/g, "→") + s, + pos: r - e + o.length + // relative position + }; +} +function Xr(t, e) { + return lt.repeat(" ", e - t.length) + t; +} +function XC(t, e) { + if (e = Object.create(e || null), !t.buffer) + return null; + e.maxLength || (e.maxLength = 79), typeof e.indent != "number" && (e.indent = 1), typeof e.linesBefore != "number" && (e.linesBefore = 3), typeof e.linesAfter != "number" && (e.linesAfter = 2); + for (var i = /\r?\n|\r|\0/g, r = [0], n = [], o, s = -1; o = i.exec(t.buffer); ) + n.push(o.index), r.push(o.index + o[0].length), t.position <= o.index && s < 0 && (s = r.length - 2); + s < 0 && (s = r.length - 1); + var a = "", l, h, u = Math.min(t.line + e.linesAfter, n.length).toString().length, f = e.maxLength - (e.indent + u + 3); + for (l = 1; l <= e.linesBefore && !(s - l < 0); l++) + h = Vr( + t.buffer, + r[s - l], + n[s - l], + t.position - (r[s] - r[s - l]), + f + ), a = lt.repeat(" ", e.indent) + Xr((t.line - l + 1).toString(), u) + " | " + h.str + ` +` + a; + for (h = Vr(t.buffer, r[s], n[s], t.position, f), a += lt.repeat(" ", e.indent) + Xr((t.line + 1).toString(), u) + " | " + h.str + ` +`, a += lt.repeat("-", e.indent + u + 3 + h.pos) + `^ +`, l = 1; l <= e.linesAfter && !(s + l >= n.length); l++) + h = Vr( + t.buffer, + r[s + l], + n[s + l], + t.position - (r[s] - r[s + l]), + f + ), a += lt.repeat(" ", e.indent) + Xr((t.line + l + 1).toString(), u) + " | " + h.str + ` +`; + return a.replace(/\n$/, ""); +} +var KC = XC, ZC = [ + "kind", + "multi", + "resolve", + "construct", + "instanceOf", + "predicate", + "represent", + "representName", + "defaultStyle", + "styleAliases" +], JC = [ + "scalar", + "sequence", + "mapping" +]; +function QC(t) { + var e = {}; + return t !== null && Object.keys(t).forEach(function(i) { + t[i].forEach(function(r) { + e[String(r)] = i; + }); + }), e; +} +function tx(t, e) { + if (e = e || {}, Object.keys(e).forEach(function(i) { + if (ZC.indexOf(i) === -1) + throw new Yt('Unknown option "' + i + '" is met in definition of "' + t + '" YAML type.'); + }), this.options = e, this.tag = t, this.kind = e.kind || null, this.resolve = e.resolve || function() { + return !0; + }, this.construct = e.construct || function(i) { + return i; + }, this.instanceOf = e.instanceOf || null, this.predicate = e.predicate || null, this.represent = e.represent || null, this.representName = e.representName || null, this.defaultStyle = e.defaultStyle || null, this.multi = e.multi || !1, this.styleAliases = QC(e.styleAliases || null), JC.indexOf(this.kind) === -1) + throw new Yt('Unknown kind "' + this.kind + '" is specified for "' + t + '" YAML type.'); +} +var at = tx; +function Bs(t, e) { + var i = []; + return t[e].forEach(function(r) { + var n = i.length; + i.forEach(function(o, s) { + o.tag === r.tag && o.kind === r.kind && o.multi === r.multi && (n = s); + }), i[n] = r; + }), i; +} +function ex() { + var t = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {}, + multi: { + scalar: [], + sequence: [], + mapping: [], + fallback: [] + } + }, e, i; + function r(n) { + n.multi ? (t.multi[n.kind].push(n), t.multi.fallback.push(n)) : t[n.kind][n.tag] = t.fallback[n.tag] = n; + } + for (e = 0, i = arguments.length; e < i; e += 1) + arguments[e].forEach(r); + return t; +} +function xn(t) { + return this.extend(t); +} +xn.prototype.extend = function(e) { + var i = [], r = []; + if (e instanceof at) + r.push(e); + else if (Array.isArray(e)) + r = r.concat(e); + else if (e && (Array.isArray(e.implicit) || Array.isArray(e.explicit))) + e.implicit && (i = i.concat(e.implicit)), e.explicit && (r = r.concat(e.explicit)); + else + throw new Yt("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })"); + i.forEach(function(o) { + if (!(o instanceof at)) + throw new Yt("Specified list of YAML types (or a single Type object) contains a non-Type object."); + if (o.loadKind && o.loadKind !== "scalar") + throw new Yt("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported."); + if (o.multi) + throw new Yt("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit."); + }), r.forEach(function(o) { + if (!(o instanceof at)) + throw new Yt("Specified list of YAML types (or a single Type object) contains a non-Type object."); + }); + var n = Object.create(xn.prototype); + return n.implicit = (this.implicit || []).concat(i), n.explicit = (this.explicit || []).concat(r), n.compiledImplicit = Bs(n, "implicit"), n.compiledExplicit = Bs(n, "explicit"), n.compiledTypeMap = ex(n.compiledImplicit, n.compiledExplicit), n; +}; +var ix = xn, rx = new at("tag:yaml.org,2002:str", { + kind: "scalar", + construct: function(t) { + return t !== null ? t : ""; + } +}), nx = new at("tag:yaml.org,2002:seq", { + kind: "sequence", + construct: function(t) { + return t !== null ? t : []; + } +}), ox = new at("tag:yaml.org,2002:map", { + kind: "mapping", + construct: function(t) { + return t !== null ? t : {}; + } +}), sx = new ix({ + explicit: [ + rx, + nx, + ox + ] +}); +function ax(t) { + if (t === null) + return !0; + var e = t.length; + return e === 1 && t === "~" || e === 4 && (t === "null" || t === "Null" || t === "NULL"); +} +function lx() { + return null; +} +function hx(t) { + return t === null; +} +var cx = new at("tag:yaml.org,2002:null", { + kind: "scalar", + resolve: ax, + construct: lx, + predicate: hx, + represent: { + canonical: function() { + return "~"; + }, + lowercase: function() { + return "null"; + }, + uppercase: function() { + return "NULL"; + }, + camelcase: function() { + return "Null"; + }, + empty: function() { + return ""; + } + }, + defaultStyle: "lowercase" +}); +function ux(t) { + if (t === null) + return !1; + var e = t.length; + return e === 4 && (t === "true" || t === "True" || t === "TRUE") || e === 5 && (t === "false" || t === "False" || t === "FALSE"); +} +function fx(t) { + return t === "true" || t === "True" || t === "TRUE"; +} +function dx(t) { + return Object.prototype.toString.call(t) === "[object Boolean]"; +} +var px = new at("tag:yaml.org,2002:bool", { + kind: "scalar", + resolve: ux, + construct: fx, + predicate: dx, + represent: { + lowercase: function(t) { + return t ? "true" : "false"; + }, + uppercase: function(t) { + return t ? "TRUE" : "FALSE"; + }, + camelcase: function(t) { + return t ? "True" : "False"; + } + }, + defaultStyle: "lowercase" +}); +function gx(t) { + return 48 <= t && t <= 57 || 65 <= t && t <= 70 || 97 <= t && t <= 102; +} +function mx(t) { + return 48 <= t && t <= 55; +} +function yx(t) { + return 48 <= t && t <= 57; +} +function _x(t) { + if (t === null) + return !1; + var e = t.length, i = 0, r = !1, n; + if (!e) + return !1; + if (n = t[i], (n === "-" || n === "+") && (n = t[++i]), n === "0") { + if (i + 1 === e) + return !0; + if (n = t[++i], n === "b") { + for (i++; i < e; i++) + if (n = t[i], n !== "_") { + if (n !== "0" && n !== "1") + return !1; + r = !0; + } + return r && n !== "_"; + } + if (n === "x") { + for (i++; i < e; i++) + if (n = t[i], n !== "_") { + if (!gx(t.charCodeAt(i))) + return !1; + r = !0; + } + return r && n !== "_"; + } + if (n === "o") { + for (i++; i < e; i++) + if (n = t[i], n !== "_") { + if (!mx(t.charCodeAt(i))) + return !1; + r = !0; + } + return r && n !== "_"; + } + } + if (n === "_") + return !1; + for (; i < e; i++) + if (n = t[i], n !== "_") { + if (!yx(t.charCodeAt(i))) + return !1; + r = !0; + } + return !(!r || n === "_"); +} +function Cx(t) { + var e = t, i = 1, r; + if (e.indexOf("_") !== -1 && (e = e.replace(/_/g, "")), r = e[0], (r === "-" || r === "+") && (r === "-" && (i = -1), e = e.slice(1), r = e[0]), e === "0") + return 0; + if (r === "0") { + if (e[1] === "b") + return i * parseInt(e.slice(2), 2); + if (e[1] === "x") + return i * parseInt(e.slice(2), 16); + if (e[1] === "o") + return i * parseInt(e.slice(2), 8); + } + return i * parseInt(e, 10); +} +function xx(t) { + return Object.prototype.toString.call(t) === "[object Number]" && t % 1 === 0 && !lt.isNegativeZero(t); +} +var bx = new at("tag:yaml.org,2002:int", { + kind: "scalar", + resolve: _x, + construct: Cx, + predicate: xx, + represent: { + binary: function(t) { + return t >= 0 ? "0b" + t.toString(2) : "-0b" + t.toString(2).slice(1); + }, + octal: function(t) { + return t >= 0 ? "0o" + t.toString(8) : "-0o" + t.toString(8).slice(1); + }, + decimal: function(t) { + return t.toString(10); + }, + /* eslint-disable max-len */ + hexadecimal: function(t) { + return t >= 0 ? "0x" + t.toString(16).toUpperCase() : "-0x" + t.toString(16).toUpperCase().slice(1); + } + }, + defaultStyle: "decimal", + styleAliases: { + binary: [2, "bin"], + octal: [8, "oct"], + decimal: [10, "dec"], + hexadecimal: [16, "hex"] + } +}), Tx = new RegExp( + // 2.5e4, 2.5 and integers + "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$" +); +function kx(t) { + return !(t === null || !Tx.test(t) || // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + t[t.length - 1] === "_"); +} +function Sx(t) { + var e, i; + return e = t.replace(/_/g, "").toLowerCase(), i = e[0] === "-" ? -1 : 1, "+-".indexOf(e[0]) >= 0 && (e = e.slice(1)), e === ".inf" ? i === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY : e === ".nan" ? NaN : i * parseFloat(e, 10); +} +var vx = /^[-+]?[0-9]+e/; +function wx(t, e) { + var i; + if (isNaN(t)) + switch (e) { + case "lowercase": + return ".nan"; + case "uppercase": + return ".NAN"; + case "camelcase": + return ".NaN"; + } + else if (Number.POSITIVE_INFINITY === t) + switch (e) { + case "lowercase": + return ".inf"; + case "uppercase": + return ".INF"; + case "camelcase": + return ".Inf"; + } + else if (Number.NEGATIVE_INFINITY === t) + switch (e) { + case "lowercase": + return "-.inf"; + case "uppercase": + return "-.INF"; + case "camelcase": + return "-.Inf"; + } + else if (lt.isNegativeZero(t)) + return "-0.0"; + return i = t.toString(10), vx.test(i) ? i.replace("e", ".e") : i; +} +function Bx(t) { + return Object.prototype.toString.call(t) === "[object Number]" && (t % 1 !== 0 || lt.isNegativeZero(t)); +} +var Fx = new at("tag:yaml.org,2002:float", { + kind: "scalar", + resolve: kx, + construct: Sx, + predicate: Bx, + represent: wx, + defaultStyle: "lowercase" +}), Hl = sx.extend({ + implicit: [ + cx, + px, + bx, + Fx + ] +}), Ax = Hl, jl = new RegExp( + "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$" +), Ul = new RegExp( + "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$" +); +function Lx(t) { + return t === null ? !1 : jl.exec(t) !== null || Ul.exec(t) !== null; +} +function Ex(t) { + var e, i, r, n, o, s, a, l = 0, h = null, u, f, c; + if (e = jl.exec(t), e === null && (e = Ul.exec(t)), e === null) + throw new Error("Date resolve error"); + if (i = +e[1], r = +e[2] - 1, n = +e[3], !e[4]) + return new Date(Date.UTC(i, r, n)); + if (o = +e[4], s = +e[5], a = +e[6], e[7]) { + for (l = e[7].slice(0, 3); l.length < 3; ) + l += "0"; + l = +l; + } + return e[9] && (u = +e[10], f = +(e[11] || 0), h = (u * 60 + f) * 6e4, e[9] === "-" && (h = -h)), c = new Date(Date.UTC(i, r, n, o, s, a, l)), h && c.setTime(c.getTime() - h), c; +} +function Mx(t) { + return t.toISOString(); +} +var Ox = new at("tag:yaml.org,2002:timestamp", { + kind: "scalar", + resolve: Lx, + construct: Ex, + instanceOf: Date, + represent: Mx +}); +function $x(t) { + return t === "<<" || t === null; +} +var Ix = new at("tag:yaml.org,2002:merge", { + kind: "scalar", + resolve: $x +}), Zn = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`; +function Dx(t) { + if (t === null) + return !1; + var e, i, r = 0, n = t.length, o = Zn; + for (i = 0; i < n; i++) + if (e = o.indexOf(t.charAt(i)), !(e > 64)) { + if (e < 0) + return !1; + r += 6; + } + return r % 8 === 0; +} +function Nx(t) { + var e, i, r = t.replace(/[\r\n=]/g, ""), n = r.length, o = Zn, s = 0, a = []; + for (e = 0; e < n; e++) + e % 4 === 0 && e && (a.push(s >> 16 & 255), a.push(s >> 8 & 255), a.push(s & 255)), s = s << 6 | o.indexOf(r.charAt(e)); + return i = n % 4 * 6, i === 0 ? (a.push(s >> 16 & 255), a.push(s >> 8 & 255), a.push(s & 255)) : i === 18 ? (a.push(s >> 10 & 255), a.push(s >> 2 & 255)) : i === 12 && a.push(s >> 4 & 255), new Uint8Array(a); +} +function Rx(t) { + var e = "", i = 0, r, n, o = t.length, s = Zn; + for (r = 0; r < o; r++) + r % 3 === 0 && r && (e += s[i >> 18 & 63], e += s[i >> 12 & 63], e += s[i >> 6 & 63], e += s[i & 63]), i = (i << 8) + t[r]; + return n = o % 3, n === 0 ? (e += s[i >> 18 & 63], e += s[i >> 12 & 63], e += s[i >> 6 & 63], e += s[i & 63]) : n === 2 ? (e += s[i >> 10 & 63], e += s[i >> 4 & 63], e += s[i << 2 & 63], e += s[64]) : n === 1 && (e += s[i >> 2 & 63], e += s[i << 4 & 63], e += s[64], e += s[64]), e; +} +function Px(t) { + return Object.prototype.toString.call(t) === "[object Uint8Array]"; +} +var qx = new at("tag:yaml.org,2002:binary", { + kind: "scalar", + resolve: Dx, + construct: Nx, + predicate: Px, + represent: Rx +}), zx = Object.prototype.hasOwnProperty, Wx = Object.prototype.toString; +function Hx(t) { + if (t === null) + return !0; + var e = [], i, r, n, o, s, a = t; + for (i = 0, r = a.length; i < r; i += 1) { + if (n = a[i], s = !1, Wx.call(n) !== "[object Object]") + return !1; + for (o in n) + if (zx.call(n, o)) + if (!s) + s = !0; + else + return !1; + if (!s) + return !1; + if (e.indexOf(o) === -1) + e.push(o); + else + return !1; + } + return !0; +} +function jx(t) { + return t !== null ? t : []; +} +var Ux = new at("tag:yaml.org,2002:omap", { + kind: "sequence", + resolve: Hx, + construct: jx +}), Yx = Object.prototype.toString; +function Gx(t) { + if (t === null) + return !0; + var e, i, r, n, o, s = t; + for (o = new Array(s.length), e = 0, i = s.length; e < i; e += 1) { + if (r = s[e], Yx.call(r) !== "[object Object]" || (n = Object.keys(r), n.length !== 1)) + return !1; + o[e] = [n[0], r[n[0]]]; + } + return !0; +} +function Vx(t) { + if (t === null) + return []; + var e, i, r, n, o, s = t; + for (o = new Array(s.length), e = 0, i = s.length; e < i; e += 1) + r = s[e], n = Object.keys(r), o[e] = [n[0], r[n[0]]]; + return o; +} +var Xx = new at("tag:yaml.org,2002:pairs", { + kind: "sequence", + resolve: Gx, + construct: Vx +}), Kx = Object.prototype.hasOwnProperty; +function Zx(t) { + if (t === null) + return !0; + var e, i = t; + for (e in i) + if (Kx.call(i, e) && i[e] !== null) + return !1; + return !0; +} +function Jx(t) { + return t !== null ? t : {}; +} +var Qx = new at("tag:yaml.org,2002:set", { + kind: "mapping", + resolve: Zx, + construct: Jx +}), tb = Ax.extend({ + implicit: [ + Ox, + Ix + ], + explicit: [ + qx, + Ux, + Xx, + Qx + ] +}), re = Object.prototype.hasOwnProperty, lr = 1, Yl = 2, Gl = 3, hr = 4, Kr = 1, eb = 2, Fs = 3, ib = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/, rb = /[\x85\u2028\u2029]/, nb = /[,\[\]\{\}]/, Vl = /^(?:!|!!|![a-z\-]+!)$/i, Xl = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; +function As(t) { + return Object.prototype.toString.call(t); +} +function Mt(t) { + return t === 10 || t === 13; +} +function de(t) { + return t === 9 || t === 32; +} +function gt(t) { + return t === 9 || t === 32 || t === 10 || t === 13; +} +function we(t) { + return t === 44 || t === 91 || t === 93 || t === 123 || t === 125; +} +function ob(t) { + var e; + return 48 <= t && t <= 57 ? t - 48 : (e = t | 32, 97 <= e && e <= 102 ? e - 97 + 10 : -1); +} +function sb(t) { + return t === 120 ? 2 : t === 117 ? 4 : t === 85 ? 8 : 0; +} +function ab(t) { + return 48 <= t && t <= 57 ? t - 48 : -1; +} +function Ls(t) { + return t === 48 ? "\0" : t === 97 ? "\x07" : t === 98 ? "\b" : t === 116 || t === 9 ? " " : t === 110 ? ` +` : t === 118 ? "\v" : t === 102 ? "\f" : t === 114 ? "\r" : t === 101 ? "\x1B" : t === 32 ? " " : t === 34 ? '"' : t === 47 ? "/" : t === 92 ? "\\" : t === 78 ? "…" : t === 95 ? " " : t === 76 ? "\u2028" : t === 80 ? "\u2029" : ""; +} +function lb(t) { + return t <= 65535 ? String.fromCharCode(t) : String.fromCharCode( + (t - 65536 >> 10) + 55296, + (t - 65536 & 1023) + 56320 + ); +} +var Kl = new Array(256), Zl = new Array(256); +for (var ve = 0; ve < 256; ve++) + Kl[ve] = Ls(ve) ? 1 : 0, Zl[ve] = Ls(ve); +function hb(t, e) { + this.input = t, this.filename = e.filename || null, this.schema = e.schema || tb, this.onWarning = e.onWarning || null, this.legacy = e.legacy || !1, this.json = e.json || !1, this.listener = e.listener || null, this.implicitTypes = this.schema.compiledImplicit, this.typeMap = this.schema.compiledTypeMap, this.length = t.length, this.position = 0, this.line = 0, this.lineStart = 0, this.lineIndent = 0, this.firstTabInLine = -1, this.documents = []; +} +function Jl(t, e) { + var i = { + name: t.filename, + buffer: t.input.slice(0, -1), + // omit trailing \0 + position: t.position, + line: t.line, + column: t.position - t.lineStart + }; + return i.snippet = KC(i), new Yt(e, i); +} +function A(t, e) { + throw Jl(t, e); +} +function cr(t, e) { + t.onWarning && t.onWarning.call(null, Jl(t, e)); +} +var Es = { + YAML: function(e, i, r) { + var n, o, s; + e.version !== null && A(e, "duplication of %YAML directive"), r.length !== 1 && A(e, "YAML directive accepts exactly one argument"), n = /^([0-9]+)\.([0-9]+)$/.exec(r[0]), n === null && A(e, "ill-formed argument of the YAML directive"), o = parseInt(n[1], 10), s = parseInt(n[2], 10), o !== 1 && A(e, "unacceptable YAML version of the document"), e.version = r[0], e.checkLineBreaks = s < 2, s !== 1 && s !== 2 && cr(e, "unsupported YAML version of the document"); + }, + TAG: function(e, i, r) { + var n, o; + r.length !== 2 && A(e, "TAG directive accepts exactly two arguments"), n = r[0], o = r[1], Vl.test(n) || A(e, "ill-formed tag handle (first argument) of the TAG directive"), re.call(e.tagMap, n) && A(e, 'there is a previously declared suffix for "' + n + '" tag handle'), Xl.test(o) || A(e, "ill-formed tag prefix (second argument) of the TAG directive"); + try { + o = decodeURIComponent(o); + } catch { + A(e, "tag prefix is malformed: " + o); + } + e.tagMap[n] = o; + } +}; +function ee(t, e, i, r) { + var n, o, s, a; + if (e < i) { + if (a = t.input.slice(e, i), r) + for (n = 0, o = a.length; n < o; n += 1) + s = a.charCodeAt(n), s === 9 || 32 <= s && s <= 1114111 || A(t, "expected valid JSON character"); + else + ib.test(a) && A(t, "the stream contains non-printable characters"); + t.result += a; + } +} +function Ms(t, e, i, r) { + var n, o, s, a; + for (lt.isObject(i) || A(t, "cannot merge mappings; the provided source object is unacceptable"), n = Object.keys(i), s = 0, a = n.length; s < a; s += 1) + o = n[s], re.call(e, o) || (e[o] = i[o], r[o] = !0); +} +function Be(t, e, i, r, n, o, s, a, l) { + var h, u; + if (Array.isArray(n)) + for (n = Array.prototype.slice.call(n), h = 0, u = n.length; h < u; h += 1) + Array.isArray(n[h]) && A(t, "nested arrays are not supported inside keys"), typeof n == "object" && As(n[h]) === "[object Object]" && (n[h] = "[object Object]"); + if (typeof n == "object" && As(n) === "[object Object]" && (n = "[object Object]"), n = String(n), e === null && (e = {}), r === "tag:yaml.org,2002:merge") + if (Array.isArray(o)) + for (h = 0, u = o.length; h < u; h += 1) + Ms(t, e, o[h], i); + else + Ms(t, e, o, i); + else + !t.json && !re.call(i, n) && re.call(e, n) && (t.line = s || t.line, t.lineStart = a || t.lineStart, t.position = l || t.position, A(t, "duplicated mapping key")), n === "__proto__" ? Object.defineProperty(e, n, { + configurable: !0, + enumerable: !0, + writable: !0, + value: o + }) : e[n] = o, delete i[n]; + return e; +} +function Jn(t) { + var e; + e = t.input.charCodeAt(t.position), e === 10 ? t.position++ : e === 13 ? (t.position++, t.input.charCodeAt(t.position) === 10 && t.position++) : A(t, "a line break is expected"), t.line += 1, t.lineStart = t.position, t.firstTabInLine = -1; +} +function Q(t, e, i) { + for (var r = 0, n = t.input.charCodeAt(t.position); n !== 0; ) { + for (; de(n); ) + n === 9 && t.firstTabInLine === -1 && (t.firstTabInLine = t.position), n = t.input.charCodeAt(++t.position); + if (e && n === 35) + do + n = t.input.charCodeAt(++t.position); + while (n !== 10 && n !== 13 && n !== 0); + if (Mt(n)) + for (Jn(t), n = t.input.charCodeAt(t.position), r++, t.lineIndent = 0; n === 32; ) + t.lineIndent++, n = t.input.charCodeAt(++t.position); + else + break; + } + return i !== -1 && r !== 0 && t.lineIndent < i && cr(t, "deficient indentation"), r; +} +function Ar(t) { + var e = t.position, i; + return i = t.input.charCodeAt(e), !!((i === 45 || i === 46) && i === t.input.charCodeAt(e + 1) && i === t.input.charCodeAt(e + 2) && (e += 3, i = t.input.charCodeAt(e), i === 0 || gt(i))); +} +function Qn(t, e) { + e === 1 ? t.result += " " : e > 1 && (t.result += lt.repeat(` +`, e - 1)); +} +function cb(t, e, i) { + var r, n, o, s, a, l, h, u, f = t.kind, c = t.result, d; + if (d = t.input.charCodeAt(t.position), gt(d) || we(d) || d === 35 || d === 38 || d === 42 || d === 33 || d === 124 || d === 62 || d === 39 || d === 34 || d === 37 || d === 64 || d === 96 || (d === 63 || d === 45) && (n = t.input.charCodeAt(t.position + 1), gt(n) || i && we(n))) + return !1; + for (t.kind = "scalar", t.result = "", o = s = t.position, a = !1; d !== 0; ) { + if (d === 58) { + if (n = t.input.charCodeAt(t.position + 1), gt(n) || i && we(n)) + break; + } else if (d === 35) { + if (r = t.input.charCodeAt(t.position - 1), gt(r)) + break; + } else { + if (t.position === t.lineStart && Ar(t) || i && we(d)) + break; + if (Mt(d)) + if (l = t.line, h = t.lineStart, u = t.lineIndent, Q(t, !1, -1), t.lineIndent >= e) { + a = !0, d = t.input.charCodeAt(t.position); + continue; + } else { + t.position = s, t.line = l, t.lineStart = h, t.lineIndent = u; + break; + } + } + a && (ee(t, o, s, !1), Qn(t, t.line - l), o = s = t.position, a = !1), de(d) || (s = t.position + 1), d = t.input.charCodeAt(++t.position); + } + return ee(t, o, s, !1), t.result ? !0 : (t.kind = f, t.result = c, !1); +} +function ub(t, e) { + var i, r, n; + if (i = t.input.charCodeAt(t.position), i !== 39) + return !1; + for (t.kind = "scalar", t.result = "", t.position++, r = n = t.position; (i = t.input.charCodeAt(t.position)) !== 0; ) + if (i === 39) + if (ee(t, r, t.position, !0), i = t.input.charCodeAt(++t.position), i === 39) + r = t.position, t.position++, n = t.position; + else + return !0; + else + Mt(i) ? (ee(t, r, n, !0), Qn(t, Q(t, !1, e)), r = n = t.position) : t.position === t.lineStart && Ar(t) ? A(t, "unexpected end of the document within a single quoted scalar") : (t.position++, n = t.position); + A(t, "unexpected end of the stream within a single quoted scalar"); +} +function fb(t, e) { + var i, r, n, o, s, a; + if (a = t.input.charCodeAt(t.position), a !== 34) + return !1; + for (t.kind = "scalar", t.result = "", t.position++, i = r = t.position; (a = t.input.charCodeAt(t.position)) !== 0; ) { + if (a === 34) + return ee(t, i, t.position, !0), t.position++, !0; + if (a === 92) { + if (ee(t, i, t.position, !0), a = t.input.charCodeAt(++t.position), Mt(a)) + Q(t, !1, e); + else if (a < 256 && Kl[a]) + t.result += Zl[a], t.position++; + else if ((s = sb(a)) > 0) { + for (n = s, o = 0; n > 0; n--) + a = t.input.charCodeAt(++t.position), (s = ob(a)) >= 0 ? o = (o << 4) + s : A(t, "expected hexadecimal character"); + t.result += lb(o), t.position++; + } else + A(t, "unknown escape sequence"); + i = r = t.position; + } else + Mt(a) ? (ee(t, i, r, !0), Qn(t, Q(t, !1, e)), i = r = t.position) : t.position === t.lineStart && Ar(t) ? A(t, "unexpected end of the document within a double quoted scalar") : (t.position++, r = t.position); + } + A(t, "unexpected end of the stream within a double quoted scalar"); +} +function db(t, e) { + var i = !0, r, n, o, s = t.tag, a, l = t.anchor, h, u, f, c, d, m = /* @__PURE__ */ Object.create(null), S, O, z, T; + if (T = t.input.charCodeAt(t.position), T === 91) + u = 93, d = !1, a = []; + else if (T === 123) + u = 125, d = !0, a = {}; + else + return !1; + for (t.anchor !== null && (t.anchorMap[t.anchor] = a), T = t.input.charCodeAt(++t.position); T !== 0; ) { + if (Q(t, !0, e), T = t.input.charCodeAt(t.position), T === u) + return t.position++, t.tag = s, t.anchor = l, t.kind = d ? "mapping" : "sequence", t.result = a, !0; + i ? T === 44 && A(t, "expected the node content, but found ','") : A(t, "missed comma between flow collection entries"), O = S = z = null, f = c = !1, T === 63 && (h = t.input.charCodeAt(t.position + 1), gt(h) && (f = c = !0, t.position++, Q(t, !0, e))), r = t.line, n = t.lineStart, o = t.position, De(t, e, lr, !1, !0), O = t.tag, S = t.result, Q(t, !0, e), T = t.input.charCodeAt(t.position), (c || t.line === r) && T === 58 && (f = !0, T = t.input.charCodeAt(++t.position), Q(t, !0, e), De(t, e, lr, !1, !0), z = t.result), d ? Be(t, a, m, O, S, z, r, n, o) : f ? a.push(Be(t, null, m, O, S, z, r, n, o)) : a.push(S), Q(t, !0, e), T = t.input.charCodeAt(t.position), T === 44 ? (i = !0, T = t.input.charCodeAt(++t.position)) : i = !1; + } + A(t, "unexpected end of the stream within a flow collection"); +} +function pb(t, e) { + var i, r, n = Kr, o = !1, s = !1, a = e, l = 0, h = !1, u, f; + if (f = t.input.charCodeAt(t.position), f === 124) + r = !1; + else if (f === 62) + r = !0; + else + return !1; + for (t.kind = "scalar", t.result = ""; f !== 0; ) + if (f = t.input.charCodeAt(++t.position), f === 43 || f === 45) + Kr === n ? n = f === 43 ? Fs : eb : A(t, "repeat of a chomping mode identifier"); + else if ((u = ab(f)) >= 0) + u === 0 ? A(t, "bad explicit indentation width of a block scalar; it cannot be less than one") : s ? A(t, "repeat of an indentation width identifier") : (a = e + u - 1, s = !0); + else + break; + if (de(f)) { + do + f = t.input.charCodeAt(++t.position); + while (de(f)); + if (f === 35) + do + f = t.input.charCodeAt(++t.position); + while (!Mt(f) && f !== 0); + } + for (; f !== 0; ) { + for (Jn(t), t.lineIndent = 0, f = t.input.charCodeAt(t.position); (!s || t.lineIndent < a) && f === 32; ) + t.lineIndent++, f = t.input.charCodeAt(++t.position); + if (!s && t.lineIndent > a && (a = t.lineIndent), Mt(f)) { + l++; + continue; + } + if (t.lineIndent < a) { + n === Fs ? t.result += lt.repeat(` +`, o ? 1 + l : l) : n === Kr && o && (t.result += ` +`); + break; + } + for (r ? de(f) ? (h = !0, t.result += lt.repeat(` +`, o ? 1 + l : l)) : h ? (h = !1, t.result += lt.repeat(` +`, l + 1)) : l === 0 ? o && (t.result += " ") : t.result += lt.repeat(` +`, l) : t.result += lt.repeat(` +`, o ? 1 + l : l), o = !0, s = !0, l = 0, i = t.position; !Mt(f) && f !== 0; ) + f = t.input.charCodeAt(++t.position); + ee(t, i, t.position, !1); + } + return !0; +} +function Os(t, e) { + var i, r = t.tag, n = t.anchor, o = [], s, a = !1, l; + if (t.firstTabInLine !== -1) + return !1; + for (t.anchor !== null && (t.anchorMap[t.anchor] = o), l = t.input.charCodeAt(t.position); l !== 0 && (t.firstTabInLine !== -1 && (t.position = t.firstTabInLine, A(t, "tab characters must not be used in indentation")), !(l !== 45 || (s = t.input.charCodeAt(t.position + 1), !gt(s)))); ) { + if (a = !0, t.position++, Q(t, !0, -1) && t.lineIndent <= e) { + o.push(null), l = t.input.charCodeAt(t.position); + continue; + } + if (i = t.line, De(t, e, Gl, !1, !0), o.push(t.result), Q(t, !0, -1), l = t.input.charCodeAt(t.position), (t.line === i || t.lineIndent > e) && l !== 0) + A(t, "bad indentation of a sequence entry"); + else if (t.lineIndent < e) + break; + } + return a ? (t.tag = r, t.anchor = n, t.kind = "sequence", t.result = o, !0) : !1; +} +function gb(t, e, i) { + var r, n, o, s, a, l, h = t.tag, u = t.anchor, f = {}, c = /* @__PURE__ */ Object.create(null), d = null, m = null, S = null, O = !1, z = !1, T; + if (t.firstTabInLine !== -1) + return !1; + for (t.anchor !== null && (t.anchorMap[t.anchor] = f), T = t.input.charCodeAt(t.position); T !== 0; ) { + if (!O && t.firstTabInLine !== -1 && (t.position = t.firstTabInLine, A(t, "tab characters must not be used in indentation")), r = t.input.charCodeAt(t.position + 1), o = t.line, (T === 63 || T === 58) && gt(r)) + T === 63 ? (O && (Be(t, f, c, d, m, null, s, a, l), d = m = S = null), z = !0, O = !0, n = !0) : O ? (O = !1, n = !0) : A(t, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"), t.position += 1, T = r; + else { + if (s = t.line, a = t.lineStart, l = t.position, !De(t, i, Yl, !1, !0)) + break; + if (t.line === o) { + for (T = t.input.charCodeAt(t.position); de(T); ) + T = t.input.charCodeAt(++t.position); + if (T === 58) + T = t.input.charCodeAt(++t.position), gt(T) || A(t, "a whitespace character is expected after the key-value separator within a block mapping"), O && (Be(t, f, c, d, m, null, s, a, l), d = m = S = null), z = !0, O = !1, n = !1, d = t.tag, m = t.result; + else if (z) + A(t, "can not read an implicit mapping pair; a colon is missed"); + else + return t.tag = h, t.anchor = u, !0; + } else if (z) + A(t, "can not read a block mapping entry; a multiline key may not be an implicit key"); + else + return t.tag = h, t.anchor = u, !0; + } + if ((t.line === o || t.lineIndent > e) && (O && (s = t.line, a = t.lineStart, l = t.position), De(t, e, hr, !0, n) && (O ? m = t.result : S = t.result), O || (Be(t, f, c, d, m, S, s, a, l), d = m = S = null), Q(t, !0, -1), T = t.input.charCodeAt(t.position)), (t.line === o || t.lineIndent > e) && T !== 0) + A(t, "bad indentation of a mapping entry"); + else if (t.lineIndent < e) + break; + } + return O && Be(t, f, c, d, m, null, s, a, l), z && (t.tag = h, t.anchor = u, t.kind = "mapping", t.result = f), z; +} +function mb(t) { + var e, i = !1, r = !1, n, o, s; + if (s = t.input.charCodeAt(t.position), s !== 33) + return !1; + if (t.tag !== null && A(t, "duplication of a tag property"), s = t.input.charCodeAt(++t.position), s === 60 ? (i = !0, s = t.input.charCodeAt(++t.position)) : s === 33 ? (r = !0, n = "!!", s = t.input.charCodeAt(++t.position)) : n = "!", e = t.position, i) { + do + s = t.input.charCodeAt(++t.position); + while (s !== 0 && s !== 62); + t.position < t.length ? (o = t.input.slice(e, t.position), s = t.input.charCodeAt(++t.position)) : A(t, "unexpected end of the stream within a verbatim tag"); + } else { + for (; s !== 0 && !gt(s); ) + s === 33 && (r ? A(t, "tag suffix cannot contain exclamation marks") : (n = t.input.slice(e - 1, t.position + 1), Vl.test(n) || A(t, "named tag handle cannot contain such characters"), r = !0, e = t.position + 1)), s = t.input.charCodeAt(++t.position); + o = t.input.slice(e, t.position), nb.test(o) && A(t, "tag suffix cannot contain flow indicator characters"); + } + o && !Xl.test(o) && A(t, "tag name cannot contain such characters: " + o); + try { + o = decodeURIComponent(o); + } catch { + A(t, "tag name is malformed: " + o); + } + return i ? t.tag = o : re.call(t.tagMap, n) ? t.tag = t.tagMap[n] + o : n === "!" ? t.tag = "!" + o : n === "!!" ? t.tag = "tag:yaml.org,2002:" + o : A(t, 'undeclared tag handle "' + n + '"'), !0; +} +function yb(t) { + var e, i; + if (i = t.input.charCodeAt(t.position), i !== 38) + return !1; + for (t.anchor !== null && A(t, "duplication of an anchor property"), i = t.input.charCodeAt(++t.position), e = t.position; i !== 0 && !gt(i) && !we(i); ) + i = t.input.charCodeAt(++t.position); + return t.position === e && A(t, "name of an anchor node must contain at least one character"), t.anchor = t.input.slice(e, t.position), !0; +} +function _b(t) { + var e, i, r; + if (r = t.input.charCodeAt(t.position), r !== 42) + return !1; + for (r = t.input.charCodeAt(++t.position), e = t.position; r !== 0 && !gt(r) && !we(r); ) + r = t.input.charCodeAt(++t.position); + return t.position === e && A(t, "name of an alias node must contain at least one character"), i = t.input.slice(e, t.position), re.call(t.anchorMap, i) || A(t, 'unidentified alias "' + i + '"'), t.result = t.anchorMap[i], Q(t, !0, -1), !0; +} +function De(t, e, i, r, n) { + var o, s, a, l = 1, h = !1, u = !1, f, c, d, m, S, O; + if (t.listener !== null && t.listener("open", t), t.tag = null, t.anchor = null, t.kind = null, t.result = null, o = s = a = hr === i || Gl === i, r && Q(t, !0, -1) && (h = !0, t.lineIndent > e ? l = 1 : t.lineIndent === e ? l = 0 : t.lineIndent < e && (l = -1)), l === 1) + for (; mb(t) || yb(t); ) + Q(t, !0, -1) ? (h = !0, a = o, t.lineIndent > e ? l = 1 : t.lineIndent === e ? l = 0 : t.lineIndent < e && (l = -1)) : a = !1; + if (a && (a = h || n), (l === 1 || hr === i) && (lr === i || Yl === i ? S = e : S = e + 1, O = t.position - t.lineStart, l === 1 ? a && (Os(t, O) || gb(t, O, S)) || db(t, S) ? u = !0 : (s && pb(t, S) || ub(t, S) || fb(t, S) ? u = !0 : _b(t) ? (u = !0, (t.tag !== null || t.anchor !== null) && A(t, "alias node should not have any properties")) : cb(t, S, lr === i) && (u = !0, t.tag === null && (t.tag = "?")), t.anchor !== null && (t.anchorMap[t.anchor] = t.result)) : l === 0 && (u = a && Os(t, O))), t.tag === null) + t.anchor !== null && (t.anchorMap[t.anchor] = t.result); + else if (t.tag === "?") { + for (t.result !== null && t.kind !== "scalar" && A(t, 'unacceptable node kind for ! tag; it should be "scalar", not "' + t.kind + '"'), f = 0, c = t.implicitTypes.length; f < c; f += 1) + if (m = t.implicitTypes[f], m.resolve(t.result)) { + t.result = m.construct(t.result), t.tag = m.tag, t.anchor !== null && (t.anchorMap[t.anchor] = t.result); + break; + } + } else if (t.tag !== "!") { + if (re.call(t.typeMap[t.kind || "fallback"], t.tag)) + m = t.typeMap[t.kind || "fallback"][t.tag]; + else + for (m = null, d = t.typeMap.multi[t.kind || "fallback"], f = 0, c = d.length; f < c; f += 1) + if (t.tag.slice(0, d[f].tag.length) === d[f].tag) { + m = d[f]; + break; + } + m || A(t, "unknown tag !<" + t.tag + ">"), t.result !== null && m.kind !== t.kind && A(t, "unacceptable node kind for !<" + t.tag + '> tag; it should be "' + m.kind + '", not "' + t.kind + '"'), m.resolve(t.result, t.tag) ? (t.result = m.construct(t.result, t.tag), t.anchor !== null && (t.anchorMap[t.anchor] = t.result)) : A(t, "cannot resolve a node with !<" + t.tag + "> explicit tag"); + } + return t.listener !== null && t.listener("close", t), t.tag !== null || t.anchor !== null || u; +} +function Cb(t) { + var e = t.position, i, r, n, o = !1, s; + for (t.version = null, t.checkLineBreaks = t.legacy, t.tagMap = /* @__PURE__ */ Object.create(null), t.anchorMap = /* @__PURE__ */ Object.create(null); (s = t.input.charCodeAt(t.position)) !== 0 && (Q(t, !0, -1), s = t.input.charCodeAt(t.position), !(t.lineIndent > 0 || s !== 37)); ) { + for (o = !0, s = t.input.charCodeAt(++t.position), i = t.position; s !== 0 && !gt(s); ) + s = t.input.charCodeAt(++t.position); + for (r = t.input.slice(i, t.position), n = [], r.length < 1 && A(t, "directive name must not be less than one character in length"); s !== 0; ) { + for (; de(s); ) + s = t.input.charCodeAt(++t.position); + if (s === 35) { + do + s = t.input.charCodeAt(++t.position); + while (s !== 0 && !Mt(s)); + break; + } + if (Mt(s)) + break; + for (i = t.position; s !== 0 && !gt(s); ) + s = t.input.charCodeAt(++t.position); + n.push(t.input.slice(i, t.position)); + } + s !== 0 && Jn(t), re.call(Es, r) ? Es[r](t, r, n) : cr(t, 'unknown document directive "' + r + '"'); + } + if (Q(t, !0, -1), t.lineIndent === 0 && t.input.charCodeAt(t.position) === 45 && t.input.charCodeAt(t.position + 1) === 45 && t.input.charCodeAt(t.position + 2) === 45 ? (t.position += 3, Q(t, !0, -1)) : o && A(t, "directives end mark is expected"), De(t, t.lineIndent - 1, hr, !1, !0), Q(t, !0, -1), t.checkLineBreaks && rb.test(t.input.slice(e, t.position)) && cr(t, "non-ASCII line breaks are interpreted as content"), t.documents.push(t.result), t.position === t.lineStart && Ar(t)) { + t.input.charCodeAt(t.position) === 46 && (t.position += 3, Q(t, !0, -1)); + return; + } + if (t.position < t.length - 1) + A(t, "end of the stream or a document separator is expected"); + else + return; +} +function Ql(t, e) { + t = String(t), e = e || {}, t.length !== 0 && (t.charCodeAt(t.length - 1) !== 10 && t.charCodeAt(t.length - 1) !== 13 && (t += ` +`), t.charCodeAt(0) === 65279 && (t = t.slice(1))); + var i = new hb(t, e), r = t.indexOf("\0"); + for (r !== -1 && (i.position = r, A(i, "null byte is not allowed in input")), i.input += "\0"; i.input.charCodeAt(i.position) === 32; ) + i.lineIndent += 1, i.position += 1; + for (; i.position < i.length - 1; ) + Cb(i); + return i.documents; +} +function xb(t, e, i) { + e !== null && typeof e == "object" && typeof i > "u" && (i = e, e = null); + var r = Ql(t, i); + if (typeof e != "function") + return r; + for (var n = 0, o = r.length; n < o; n += 1) + e(r[n]); +} +function bb(t, e) { + var i = Ql(t, e); + if (i.length !== 0) { + if (i.length === 1) + return i[0]; + throw new Yt("expected a single document in the stream, but found more"); + } +} +var Tb = xb, kb = bb, Sb = { + loadAll: Tb, + load: kb +}, vb = Hl, wb = Sb.load; +function Bb(t) { + const e = t.match(Na); + if (!e) + return { + text: t, + metadata: {} + }; + let i = wb(e[1], { + // To support config, we need JSON schema. + // https://www.yaml.org/spec/1.2/spec.html#id2803231 + schema: vb + }) ?? {}; + i = typeof i == "object" && !Array.isArray(i) ? i : {}; + const r = {}; + return i.displayMode && (r.displayMode = i.displayMode.toString()), i.title && (r.title = i.title.toString()), i.config && (r.config = i.config), { + text: t.slice(e[0].length), + metadata: r + }; +} +const Fb = (t) => t.replace(/\r\n?/g, ` +`).replace( + /<(\w+)([^>]*)>/g, + (e, i, r) => "<" + i + r.replace(/="([^"]*)"/g, "='$1'") + ">" +), Ab = (t) => { + const { text: e, metadata: i } = Bb(t), { displayMode: r, title: n, config: o = {} } = i; + return r && (o.gantt || (o.gantt = {}), o.gantt.displayMode = r), { title: n, config: o, text: e }; +}, Lb = (t) => { + const e = ei.detectInit(t) ?? {}, i = ei.detectDirective(t, "wrap"); + return Array.isArray(i) ? e.wrap = i.some(({ type: r }) => { + }) : (i == null ? void 0 : i.type) === "wrap" && (e.wrap = !0), { + text: _0(t), + directive: e + }; +}; +function th(t) { + const e = Fb(t), i = Ab(e), r = Lb(i.text), n = nl(i.config, r.directive); + return t = NC(r.text), { + code: t, + title: i.title, + config: n + }; +} +const Eb = 5e4, Mb = "graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa", Ob = "sandbox", $b = "loose", Ib = "http://www.w3.org/2000/svg", Db = "http://www.w3.org/1999/xlink", Nb = "http://www.w3.org/1999/xhtml", Rb = "100%", Pb = "100%", qb = "border:0;margin:0;", zb = "margin:0", Wb = "allow-top-navigation-by-user-activation allow-popups", Hb = 'The "iframe" tag is not supported by your browser.', jb = ["foreignobject"], Ub = ["dominant-baseline"]; +function eh(t) { + const e = th(t); + return or(), sy(e.config ?? {}), e; +} +async function Yb(t, e) { + Kn(), t = eh(t).code; + try { + await to(t); + } catch (i) { + if (e != null && e.suppressErrors) + return !1; + throw i; + } + return !0; +} +const $s = (t, e, i = []) => ` +.${t} ${e} { ${i.join(" !important; ")} !important; }`, Gb = (t, e = {}) => { + var r; + let i = ""; + if (t.themeCSS !== void 0 && (i += ` +${t.themeCSS}`), t.fontFamily !== void 0 && (i += ` +:root { --mermaid-font-family: ${t.fontFamily}}`), t.altFontFamily !== void 0 && (i += ` +:root { --mermaid-alt-font-family: ${t.altFontFamily}}`), !Gr(e)) { + const a = t.htmlLabels || ((r = t.flowchart) == null ? void 0 : r.htmlLabels) ? ["> *", "span"] : ["rect", "polygon", "ellipse", "circle", "path"]; + for (const l in e) { + const h = e[l]; + Gr(h.styles) || a.forEach((u) => { + i += $s(h.id, u, h.styles); + }), Gr(h.textStyles) || (i += $s(h.id, "tspan", h.textStyles)); + } + } + return i; +}, Vb = (t, e, i, r) => { + const n = Gb(t, i), o = w_(e, n, t.themeVariables); + return gn(ty(`${r}{${o}}`), iy); +}, Xb = (t = "", e, i) => { + let r = t; + return !i && !e && (r = r.replace( + /marker-end="url\([\d+./:=?A-Za-z-]*?#/g, + 'marker-end="url(#' + )), r = q0(r), r = r.replace(/
/g, "
"), r; +}, Kb = (t = "", e) => { + var n, o; + const i = (o = (n = e == null ? void 0 : e.viewBox) == null ? void 0 : n.baseVal) != null && o.height ? e.viewBox.baseVal.height + "px" : Pb, r = btoa('' + t + ""); + return ``; +}, Is = (t, e, i, r, n) => { + const o = t.append("div"); + o.attr("id", i), r && o.attr("style", r); + const s = o.append("svg").attr("id", e).attr("width", "100%").attr("xmlns", Ib); + return n && s.attr("xmlns:xlink", n), s.append("g"), t; +}; +function Ds(t, e) { + return t.append("iframe").attr("id", e).attr("style", "width: 100%; height: 100%;").attr("sandbox", ""); +} +const Zb = (t, e, i, r) => { + var n, o, s; + (n = t.getElementById(e)) == null || n.remove(), (o = t.getElementById(i)) == null || o.remove(), (s = t.getElementById(r)) == null || s.remove(); +}, Jb = async function(t, e, i) { + var Nt, M, k, C, w, x; + Kn(); + const r = eh(e); + e = r.code; + const n = $t(); + L.debug(n), e.length > ((n == null ? void 0 : n.maxTextSize) ?? Eb) && (e = Mb); + const o = "#" + t, s = "i" + t, a = "#" + s, l = "d" + t, h = "#" + l; + let u = bt("body"); + const f = n.securityLevel === Ob, c = n.securityLevel === $b, d = n.fontFamily; + if (i !== void 0) { + if (i && (i.innerHTML = ""), f) { + const b = Ds(bt(i), s); + u = bt(b.nodes()[0].contentDocument.body), u.node().style.margin = 0; + } else + u = bt(i); + Is(u, t, l, `font-family: ${d}`, Db); + } else { + if (Zb(document, t, l, s), f) { + const b = Ds(bt("body"), s); + u = bt(b.nodes()[0].contentDocument.body), u.node().style.margin = 0; + } else + u = bt("body"); + Is(u, t, l); + } + let m, S; + try { + m = await to(e, { title: r.title }); + } catch (b) { + m = new ql("error"), S = b; + } + const O = u.select(h).node(), z = m.type, T = O.firstChild, R = T.firstChild, X = (M = (Nt = m.renderer).getClasses) == null ? void 0 : M.call(Nt, e, m), G = Vb(n, z, X, o), V = document.createElement("style"); + V.innerHTML = G, T.insertBefore(V, R); + try { + await m.renderer.draw(e, t, _s, m); + } catch (b) { + throw H_.draw(e, t, _s), b; + } + const H = u.select(`${h} svg`), oe = (C = (k = m.db).getAccTitle) == null ? void 0 : C.call(k), Kt = (x = (w = m.db).getAccDescription) == null ? void 0 : x.call(w); + t1(z, H, oe, Kt), u.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns", Nb); + let P = u.select(h).node().innerHTML; + if (L.debug("config.arrowMarkerAbsolute", n.arrowMarkerAbsolute), P = Xb(P, f, La(n.arrowMarkerAbsolute)), f) { + const b = u.select(h + " svg").node(); + P = Kb(P, b); + } else + c || (P = Ee.sanitize(P, { + ADD_TAGS: jb, + ADD_ATTR: Ub + })); + if (dC(), S) + throw S; + const Ct = bt(f ? a : h).node(); + return Ct && "remove" in Ct && Ct.remove(), { + svg: P, + bindFunctions: m.db.bindFunctions + }; +}; +function Qb(t = {}) { + var i; + t != null && t.fontFamily && !((i = t.themeVariables) != null && i.fontFamily) && (t.themeVariables || (t.themeVariables = {}), t.themeVariables.fontFamily = t.fontFamily), ny(t), t != null && t.theme && t.theme in Gt ? t.themeVariables = Gt[t.theme].getThemeVariables( + t.themeVariables + ) : t && (t.themeVariables = Gt.default.getThemeVariables(t.themeVariables)); + const e = typeof t == "object" ? ry(t) : fl(); + bn(e.logLevel), Kn(); +} +const to = (t, e = {}) => { + const { code: i } = th(t); + return fC(i, e); +}; +function t1(t, e, i, r) { + IC(e, t), DC(e, i, r, e.attr("id")); +} +const me = Object.freeze({ + render: Jb, + parse: Yb, + getDiagramFromText: to, + initialize: Qb, + getConfig: $t, + setConfig: dl, + getSiteConfig: fl, + updateSiteConfig: oy, + reset: () => { + or(); + }, + globalReset: () => { + or($e); + }, + defaultConfig: $e +}); +bn($t().logLevel); +or($t()); +const e1 = async () => { + L.debug("Loading registered diagrams"); + const e = (await Promise.allSettled( + Object.entries(Me).map(async ([i, { detector: r, loader: n }]) => { + if (n) + try { + Xn(i); + } catch { + try { + const { diagram: s, id: a } = await n(); + ar(a, s, r); + } catch (s) { + throw L.error(`Failed to load external diagram with key ${i}. Removing from detectors.`), delete Me[i], s; + } + } + }) + )).filter((i) => i.status === "rejected"); + if (e.length > 0) { + L.error(`Failed to load ${e.length} external diagrams`); + for (const i of e) + L.error(i); + throw new Error(`Failed to load ${e.length} external diagrams`); + } +}, i1 = (t, e, i) => { + L.warn(t), rl(t) ? (i && i(t.str, t.hash), e.push({ ...t, message: t.str, error: t })) : (i && i(t), t instanceof Error && e.push({ + str: t.message, + message: t.message, + hash: t.name, + error: t + })); +}, ih = async function(t = { + querySelector: ".mermaid" +}) { + try { + await r1(t); + } catch (e) { + if (rl(e) && L.error(e.str), Tt.parseError && Tt.parseError(e), !t.suppressErrors) + throw L.error("Use the suppressErrors option to suppress these errors"), e; + } +}, r1 = async function({ postRenderCallback: t, querySelector: e, nodes: i } = { + querySelector: ".mermaid" +}) { + const r = me.getConfig(); + L.debug(`${t ? "" : "No "}Callback function found`); + let n; + if (i) + n = i; + else if (e) + n = document.querySelectorAll(e); + else + throw new Error("Nodes and querySelector are both undefined"); + L.debug(`Found ${n.length} diagrams`), (r == null ? void 0 : r.startOnLoad) !== void 0 && (L.debug("Start On Load: " + (r == null ? void 0 : r.startOnLoad)), me.updateSiteConfig({ startOnLoad: r == null ? void 0 : r.startOnLoad })); + const o = new ei.InitIDGenerator(r.deterministicIds, r.deterministicIDSeed); + let s; + const a = []; + for (const l of Array.from(n)) { + L.info("Rendering diagram: " + l.id); + /*! Check if previously processed */ + if (l.getAttribute("data-processed")) + continue; + l.setAttribute("data-processed", "true"); + const h = `mermaid-${o.next()}`; + s = l.innerHTML, s = mh(ei.entityDecode(s)).trim().replace(//gi, "
"); + const u = ei.detectInit(s); + u && L.debug("Detected early reinit: ", u); + try { + const { svg: f, bindFunctions: c } = await sh(h, s, l); + l.innerHTML = f, t && await t(h), c && c(l); + } catch (f) { + i1(f, a, Tt.parseError); + } + } + if (a.length > 0) + throw a[0]; +}, rh = function(t) { + me.initialize(t); +}, n1 = async function(t, e, i) { + L.warn("mermaid.init is deprecated. Please use run instead."), t && rh(t); + const r = { postRenderCallback: i, querySelector: ".mermaid" }; + typeof e == "string" ? r.querySelector = e : e && (e instanceof HTMLElement ? r.nodes = [e] : r.nodes = e), await ih(r); +}, o1 = async (t, { + lazyLoad: e = !0 +} = {}) => { + Pa(...t), e === !1 && await e1(); +}, nh = function() { + if (Tt.startOnLoad) { + const { startOnLoad: t } = me.getConfig(); + t && Tt.run().catch((e) => L.error("Mermaid failed to initialize", e)); + } +}; +if (typeof document < "u") { + /*! + * Wait for document loaded before starting the execution + */ + window.addEventListener("load", nh, !1); +} +const s1 = function(t) { + Tt.parseError = t; +}, ur = []; +let Zr = !1; +const oh = async () => { + if (!Zr) { + for (Zr = !0; ur.length > 0; ) { + const t = ur.shift(); + if (t) + try { + await t(); + } catch (e) { + L.error("Error executing queue", e); + } + } + Zr = !1; + } +}, a1 = async (t, e) => new Promise((i, r) => { + const n = () => new Promise((o, s) => { + me.parse(t, e).then( + (a) => { + o(a), i(a); + }, + (a) => { + var l; + L.error("Error parsing", a), (l = Tt.parseError) == null || l.call(Tt, a), s(a), r(a); + } + ); + }); + ur.push(n), oh().catch(r); +}), sh = (t, e, i) => new Promise((r, n) => { + const o = () => new Promise((s, a) => { + me.render(t, e, i).then( + (l) => { + s(l), r(l); + }, + (l) => { + var h; + L.error("Error parsing", l), (h = Tt.parseError) == null || h.call(Tt, l), a(l), n(l); + } + ); + }); + ur.push(o), oh().catch(n); +}), Tt = { + startOnLoad: !0, + mermaidAPI: me, + parse: a1, + render: sh, + init: n1, + run: ih, + registerExternalDiagrams: o1, + initialize: rh, + parseError: void 0, + contentLoaded: nh, + setParseErrorHandler: s1, + detectType: xr +}; +export { + vn as $, + ei as A, + Je as B, + M_ as C, + O_ as D, + B_ as E, + Pf as F, + C1 as G, + L0 as H, + R_ as I, + Sn as J, + Js as K, + pi as L, + uu as M, + ea as N, + l1 as O, + yh as P, + _h as Q, + pt as R, + yt as S, + xh as T, + z_ as U, + m1 as V, + yp as W, + nl as X, + zn as Y, + up as Z, + $t as _, + E_ as a, + Re as a$, + te as a0, + oi as a1, + Mo as a2, + _u as a3, + Qo as a4, + p0 as a5, + x1 as a6, + F0 as a7, + ye as a8, + l0 as a9, + Ro as aA, + g1 as aB, + d1 as aC, + h1 as aD, + c1 as aE, + _1 as aF, + y1 as aG, + f1 as aH, + $ as aI, + Ot as aJ, + _i as aK, + Ne as aL, + tr as aM, + Um as aN, + _C as aO, + yi as aP, + ir as aQ, + Pm as aR, + Ua as aS, + Dg as aT, + Ng as aU, + AC as aV, + us as aW, + Rg as aX, + Nn as aY, + $g as aZ, + Hg as a_, + Qm as aa, + Dt as ab, + h0 as ac, + c0 as ad, + Ja as ae, + br as af, + vr as ag, + rr as ah, + Mg as ai, + Dn as aj, + tl as ak, + Za as al, + Rm as am, + Mm as an, + t0 as ao, + d0 as ap, + gi as aq, + w1 as ar, + $_ as as, + mi as at, + F as au, + E as av, + An as aw, + u1 as ax, + p1 as ay, + Po as az, + L_ as b, + ne as b0, + ss as b1, + Rn as b2, + Ga as b3, + _n as b4, + Kg as b5, + Gr as b6, + q0 as b7, + mh as b8, + Tt as b9, + Vn as c, + ai as d, + Rs as e, + $n as f, + A_ as g, + st as h, + nr as i, + bt as j, + Ol as k, + L as l, + I0 as m, + Df as n, + B0 as o, + La as p, + x0 as q, + Od as r, + F_ as s, + k_ as t, + v1 as u, + Zs as v, + O0 as w, + Fh as x, + sm as y, + In as z +}; diff --git a/assets/lib/mermaid/mermaid-dcacb631.js b/assets/lib/mermaid/mermaid-dcacb631.js new file mode 100644 index 000000000..d10cc9a0e --- /dev/null +++ b/assets/lib/mermaid/mermaid-dcacb631.js @@ -0,0 +1,12793 @@ +function dedent(templ) { + var values = []; + for (var _i = 1; _i < arguments.length; _i++) { + values[_i - 1] = arguments[_i]; + } + var strings = Array.from(typeof templ === "string" ? [templ] : templ); + strings[strings.length - 1] = strings[strings.length - 1].replace(/\r?\n([\t ]*)$/, ""); + var indentLengths = strings.reduce(function(arr, str2) { + var matches = str2.match(/\n([\t ]+|(?!\s).)/g); + if (matches) { + return arr.concat(matches.map(function(match) { + var _a, _b; + return (_b = (_a = match.match(/[\t ]/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0; + })); + } + return arr; + }, []); + if (indentLengths.length) { + var pattern_1 = new RegExp("\n[ ]{" + Math.min.apply(Math, indentLengths) + "}", "g"); + strings = strings.map(function(str2) { + return str2.replace(pattern_1, "\n"); + }); + } + strings[0] = strings[0].replace(/^\r?\n/, ""); + var string = strings[0]; + values.forEach(function(value, i) { + var endentations = string.match(/(?:^|\n)( *)$/); + var endentation = endentations ? endentations[1] : ""; + var indentedValue = value; + if (typeof value === "string" && value.includes("\n")) { + indentedValue = String(value).split("\n").map(function(str2, i2) { + return i2 === 0 ? str2 : "" + endentation + str2; + }).join("\n"); + } + string += indentedValue + strings[i + 1]; + }); + return string; +} +var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; +function getDefaultExportFromCjs(x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; +} +var dayjs_min = { exports: {} }; +(function(module2, exports2) { + !function(t, e) { + module2.exports = e(); + }(commonjsGlobal, function() { + var t = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", c = "month", f = "quarter", h = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t2) { + var e2 = ["th", "st", "nd", "rd"], n2 = t2 % 100; + return "[" + t2 + (e2[(n2 - 20) % 10] || e2[n2] || e2[0]) + "]"; + } }, m = function(t2, e2, n2) { + var r2 = String(t2); + return !r2 || r2.length >= e2 ? t2 : "" + Array(e2 + 1 - r2.length).join(n2) + t2; + }, v = { s: m, z: function(t2) { + var e2 = -t2.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60; + return (e2 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0"); + }, m: function t2(e2, n2) { + if (e2.date() < n2.date()) + return -t2(n2, e2); + var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), i2 = e2.clone().add(r2, c), s2 = n2 - i2 < 0, u2 = e2.clone().add(r2 + (s2 ? -1 : 1), c); + return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0); + }, a: function(t2) { + return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2); + }, p: function(t2) { + return { M: c, y: h, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: f }[t2] || String(t2 || "").toLowerCase().replace(/s$/, ""); + }, u: function(t2) { + return void 0 === t2; + } }, g = "en", D = {}; + D[g] = M; + var p = "$isDayjsObject", S = function(t2) { + return t2 instanceof _2 || !(!t2 || !t2[p]); + }, w = function t2(e2, n2, r2) { + var i2; + if (!e2) + return g; + if ("string" == typeof e2) { + var s2 = e2.toLowerCase(); + D[s2] && (i2 = s2), n2 && (D[s2] = n2, i2 = s2); + var u2 = e2.split("-"); + if (!i2 && u2.length > 1) + return t2(u2[0]); + } else { + var a2 = e2.name; + D[a2] = e2, i2 = a2; + } + return !r2 && i2 && (g = i2), i2 || !r2 && g; + }, O = function(t2, e2) { + if (S(t2)) + return t2.clone(); + var n2 = "object" == typeof e2 ? e2 : {}; + return n2.date = t2, n2.args = arguments, new _2(n2); + }, b = v; + b.l = w, b.i = S, b.w = function(t2, e2) { + return O(t2, { locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset }); + }; + var _2 = function() { + function M2(t2) { + this.$L = w(t2.locale, null, true), this.parse(t2), this.$x = this.$x || t2.x || {}, this[p] = true; + } + var m2 = M2.prototype; + return m2.parse = function(t2) { + this.$d = function(t3) { + var e2 = t3.date, n2 = t3.utc; + if (null === e2) + return /* @__PURE__ */ new Date(NaN); + if (b.u(e2)) + return /* @__PURE__ */ new Date(); + if (e2 instanceof Date) + return new Date(e2); + if ("string" == typeof e2 && !/Z$/i.test(e2)) { + var r2 = e2.match($); + if (r2) { + var i2 = r2[2] - 1 || 0, s2 = (r2[7] || "0").substring(0, 3); + return n2 ? new Date(Date.UTC(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2)) : new Date(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2); + } + } + return new Date(e2); + }(t2), this.init(); + }, m2.init = function() { + var t2 = this.$d; + this.$y = t2.getFullYear(), this.$M = t2.getMonth(), this.$D = t2.getDate(), this.$W = t2.getDay(), this.$H = t2.getHours(), this.$m = t2.getMinutes(), this.$s = t2.getSeconds(), this.$ms = t2.getMilliseconds(); + }, m2.$utils = function() { + return b; + }, m2.isValid = function() { + return !(this.$d.toString() === l); + }, m2.isSame = function(t2, e2) { + var n2 = O(t2); + return this.startOf(e2) <= n2 && n2 <= this.endOf(e2); + }, m2.isAfter = function(t2, e2) { + return O(t2) < this.startOf(e2); + }, m2.isBefore = function(t2, e2) { + return this.endOf(e2) < O(t2); + }, m2.$g = function(t2, e2, n2) { + return b.u(t2) ? this[e2] : this.set(n2, t2); + }, m2.unix = function() { + return Math.floor(this.valueOf() / 1e3); + }, m2.valueOf = function() { + return this.$d.getTime(); + }, m2.startOf = function(t2, e2) { + var n2 = this, r2 = !!b.u(e2) || e2, f2 = b.p(t2), l2 = function(t3, e3) { + var i2 = b.w(n2.$u ? Date.UTC(n2.$y, e3, t3) : new Date(n2.$y, e3, t3), n2); + return r2 ? i2 : i2.endOf(a); + }, $2 = function(t3, e3) { + return b.w(n2.toDate()[t3].apply(n2.toDate("s"), (r2 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e3)), n2); + }, y2 = this.$W, M3 = this.$M, m3 = this.$D, v2 = "set" + (this.$u ? "UTC" : ""); + switch (f2) { + case h: + return r2 ? l2(1, 0) : l2(31, 11); + case c: + return r2 ? l2(1, M3) : l2(0, M3 + 1); + case o: + var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2; + return l2(r2 ? m3 - D2 : m3 + (6 - D2), M3); + case a: + case d: + return $2(v2 + "Hours", 0); + case u: + return $2(v2 + "Minutes", 1); + case s: + return $2(v2 + "Seconds", 2); + case i: + return $2(v2 + "Milliseconds", 3); + default: + return this.clone(); + } + }, m2.endOf = function(t2) { + return this.startOf(t2, false); + }, m2.$set = function(t2, e2) { + var n2, o2 = b.p(t2), f2 = "set" + (this.$u ? "UTC" : ""), l2 = (n2 = {}, n2[a] = f2 + "Date", n2[d] = f2 + "Date", n2[c] = f2 + "Month", n2[h] = f2 + "FullYear", n2[u] = f2 + "Hours", n2[s] = f2 + "Minutes", n2[i] = f2 + "Seconds", n2[r] = f2 + "Milliseconds", n2)[o2], $2 = o2 === a ? this.$D + (e2 - this.$W) : e2; + if (o2 === c || o2 === h) { + var y2 = this.clone().set(d, 1); + y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d; + } else + l2 && this.$d[l2]($2); + return this.init(), this; + }, m2.set = function(t2, e2) { + return this.clone().$set(t2, e2); + }, m2.get = function(t2) { + return this[b.p(t2)](); + }, m2.add = function(r2, f2) { + var d2, l2 = this; + r2 = Number(r2); + var $2 = b.p(f2), y2 = function(t2) { + var e2 = O(l2); + return b.w(e2.date(e2.date() + Math.round(t2 * r2)), l2); + }; + if ($2 === c) + return this.set(c, this.$M + r2); + if ($2 === h) + return this.set(h, this.$y + r2); + if ($2 === a) + return y2(1); + if ($2 === o) + return y2(7); + var M3 = (d2 = {}, d2[s] = e, d2[u] = n, d2[i] = t, d2)[$2] || 1, m3 = this.$d.getTime() + r2 * M3; + return b.w(m3, this); + }, m2.subtract = function(t2, e2) { + return this.add(-1 * t2, e2); + }, m2.format = function(t2) { + var e2 = this, n2 = this.$locale(); + if (!this.isValid()) + return n2.invalidDate || l; + var r2 = t2 || "YYYY-MM-DDTHH:mm:ssZ", i2 = b.z(this), s2 = this.$H, u2 = this.$m, a2 = this.$M, o2 = n2.weekdays, c2 = n2.months, f2 = n2.meridiem, h2 = function(t3, n3, i3, s3) { + return t3 && (t3[n3] || t3(e2, r2)) || i3[n3].slice(0, s3); + }, d2 = function(t3) { + return b.s(s2 % 12 || 12, t3, "0"); + }, $2 = f2 || function(t3, e3, n3) { + var r3 = t3 < 12 ? "AM" : "PM"; + return n3 ? r3.toLowerCase() : r3; + }; + return r2.replace(y, function(t3, r3) { + return r3 || function(t4) { + switch (t4) { + case "YY": + return String(e2.$y).slice(-2); + case "YYYY": + return b.s(e2.$y, 4, "0"); + case "M": + return a2 + 1; + case "MM": + return b.s(a2 + 1, 2, "0"); + case "MMM": + return h2(n2.monthsShort, a2, c2, 3); + case "MMMM": + return h2(c2, a2); + case "D": + return e2.$D; + case "DD": + return b.s(e2.$D, 2, "0"); + case "d": + return String(e2.$W); + case "dd": + return h2(n2.weekdaysMin, e2.$W, o2, 2); + case "ddd": + return h2(n2.weekdaysShort, e2.$W, o2, 3); + case "dddd": + return o2[e2.$W]; + case "H": + return String(s2); + case "HH": + return b.s(s2, 2, "0"); + case "h": + return d2(1); + case "hh": + return d2(2); + case "a": + return $2(s2, u2, true); + case "A": + return $2(s2, u2, false); + case "m": + return String(u2); + case "mm": + return b.s(u2, 2, "0"); + case "s": + return String(e2.$s); + case "ss": + return b.s(e2.$s, 2, "0"); + case "SSS": + return b.s(e2.$ms, 3, "0"); + case "Z": + return i2; + } + return null; + }(t3) || i2.replace(":", ""); + }); + }, m2.utcOffset = function() { + return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); + }, m2.diff = function(r2, d2, l2) { + var $2, y2 = this, M3 = b.p(d2), m3 = O(r2), v2 = (m3.utcOffset() - this.utcOffset()) * e, g2 = this - m3, D2 = function() { + return b.m(y2, m3); + }; + switch (M3) { + case h: + $2 = D2() / 12; + break; + case c: + $2 = D2(); + break; + case f: + $2 = D2() / 3; + break; + case o: + $2 = (g2 - v2) / 6048e5; + break; + case a: + $2 = (g2 - v2) / 864e5; + break; + case u: + $2 = g2 / n; + break; + case s: + $2 = g2 / e; + break; + case i: + $2 = g2 / t; + break; + default: + $2 = g2; + } + return l2 ? $2 : b.a($2); + }, m2.daysInMonth = function() { + return this.endOf(c).$D; + }, m2.$locale = function() { + return D[this.$L]; + }, m2.locale = function(t2, e2) { + if (!t2) + return this.$L; + var n2 = this.clone(), r2 = w(t2, e2, true); + return r2 && (n2.$L = r2), n2; + }, m2.clone = function() { + return b.w(this.$d, this); + }, m2.toDate = function() { + return new Date(this.valueOf()); + }, m2.toJSON = function() { + return this.isValid() ? this.toISOString() : null; + }, m2.toISOString = function() { + return this.$d.toISOString(); + }, m2.toString = function() { + return this.$d.toUTCString(); + }, M2; + }(), k = _2.prototype; + return O.prototype = k, [["$ms", r], ["$s", i], ["$m", s], ["$H", u], ["$W", a], ["$M", c], ["$y", h], ["$D", d]].forEach(function(t2) { + k[t2[1]] = function(e2) { + return this.$g(e2, t2[0], t2[1]); + }; + }), O.extend = function(t2, e2) { + return t2.$i || (t2(e2, _2, O), t2.$i = true), O; + }, O.locale = w, O.isDayjs = S, O.unix = function(t2) { + return O(1e3 * t2); + }, O.en = D[g], O.Ls = D, O.p = {}, O; + }); +})(dayjs_min); +var dayjs_minExports = dayjs_min.exports; +const dayjs = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports); +const LEVELS = { + trace: 0, + debug: 1, + info: 2, + warn: 3, + error: 4, + fatal: 5 +}; +const log$1 = { + trace: (..._args) => { + }, + debug: (..._args) => { + }, + info: (..._args) => { + }, + warn: (..._args) => { + }, + error: (..._args) => { + }, + fatal: (..._args) => { + } +}; +const setLogLevel$1 = function(level = "fatal") { + let numericLevel = LEVELS.fatal; + if (typeof level === "string") { + level = level.toLowerCase(); + if (level in LEVELS) { + numericLevel = LEVELS[level]; + } + } else if (typeof level === "number") { + numericLevel = level; + } + log$1.trace = () => { + }; + log$1.debug = () => { + }; + log$1.info = () => { + }; + log$1.warn = () => { + }; + log$1.error = () => { + }; + log$1.fatal = () => { + }; + if (numericLevel <= LEVELS.fatal) { + log$1.fatal = console.error ? console.error.bind(console, format("FATAL"), "color: orange") : console.log.bind(console, "\x1B[35m", format("FATAL")); + } + if (numericLevel <= LEVELS.error) { + log$1.error = console.error ? console.error.bind(console, format("ERROR"), "color: orange") : console.log.bind(console, "\x1B[31m", format("ERROR")); + } + if (numericLevel <= LEVELS.warn) { + log$1.warn = console.warn ? console.warn.bind(console, format("WARN"), "color: orange") : console.log.bind(console, `\x1B[33m`, format("WARN")); + } + if (numericLevel <= LEVELS.info) { + log$1.info = console.info ? console.info.bind(console, format("INFO"), "color: lightblue") : console.log.bind(console, "\x1B[34m", format("INFO")); + } + if (numericLevel <= LEVELS.debug) { + log$1.debug = console.debug ? console.debug.bind(console, format("DEBUG"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format("DEBUG")); + } + if (numericLevel <= LEVELS.trace) { + log$1.trace = console.debug ? console.debug.bind(console, format("TRACE"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format("TRACE")); + } +}; +const format = (level) => { + const time = dayjs().format("ss.SSS"); + return `%c${time} : ${level} : `; +}; +var dist = {}; +(function(exports2) { + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.sanitizeUrl = exports2.BLANK_URL = void 0; + var invalidProtocolRegex = /^([^\w]*)(javascript|data|vbscript)/im; + var htmlEntitiesRegex = /&#(\w+)(^\w|;)?/g; + var htmlCtrlEntityRegex = /&(newline|tab);/gi; + var ctrlCharactersRegex = /[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim; + var urlSchemeRegex = /^.+(:|:)/gim; + var relativeFirstCharacters = [".", "/"]; + exports2.BLANK_URL = "about:blank"; + function isRelativeUrlWithoutProtocol(url) { + return relativeFirstCharacters.indexOf(url[0]) > -1; + } + function decodeHtmlCharacters(str2) { + var removedNullByte = str2.replace(ctrlCharactersRegex, ""); + return removedNullByte.replace(htmlEntitiesRegex, function(match, dec) { + return String.fromCharCode(dec); + }); + } + function sanitizeUrl(url) { + if (!url) { + return exports2.BLANK_URL; + } + var sanitizedUrl = decodeHtmlCharacters(url).replace(htmlCtrlEntityRegex, "").replace(ctrlCharactersRegex, "").trim(); + if (!sanitizedUrl) { + return exports2.BLANK_URL; + } + if (isRelativeUrlWithoutProtocol(sanitizedUrl)) { + return sanitizedUrl; + } + var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex); + if (!urlSchemeParseResults) { + return sanitizedUrl; + } + var urlScheme = urlSchemeParseResults[0]; + if (invalidProtocolRegex.test(urlScheme)) { + return exports2.BLANK_URL; + } + return sanitizedUrl; + } + exports2.sanitizeUrl = sanitizeUrl; +})(dist); +var noop$1 = { value: () => { +} }; +function dispatch() { + for (var i = 0, n = arguments.length, _2 = {}, t; i < n; ++i) { + if (!(t = arguments[i] + "") || t in _2 || /[\s.]/.test(t)) + throw new Error("illegal type: " + t); + _2[t] = []; + } + return new Dispatch(_2); +} +function Dispatch(_2) { + this._ = _2; +} +function parseTypenames$1(typenames, types) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) + name = t.slice(i + 1), t = t.slice(0, i); + if (t && !types.hasOwnProperty(t)) + throw new Error("unknown type: " + t); + return { type: t, name }; + }); +} +Dispatch.prototype = dispatch.prototype = { + constructor: Dispatch, + on: function(typename, callback) { + var _2 = this._, T = parseTypenames$1(typename + "", _2), t, i = -1, n = T.length; + if (arguments.length < 2) { + while (++i < n) + if ((t = (typename = T[i]).type) && (t = get$1(_2[t], typename.name))) + return t; + return; + } + if (callback != null && typeof callback !== "function") + throw new Error("invalid callback: " + callback); + while (++i < n) { + if (t = (typename = T[i]).type) + _2[t] = set$2(_2[t], typename.name, callback); + else if (callback == null) + for (t in _2) + _2[t] = set$2(_2[t], typename.name, null); + } + return this; + }, + copy: function() { + var copy = {}, _2 = this._; + for (var t in _2) + copy[t] = _2[t].slice(); + return new Dispatch(copy); + }, + call: function(type2, that) { + if ((n = arguments.length - 2) > 0) + for (var args = new Array(n), i = 0, n, t; i < n; ++i) + args[i] = arguments[i + 2]; + if (!this._.hasOwnProperty(type2)) + throw new Error("unknown type: " + type2); + for (t = this._[type2], i = 0, n = t.length; i < n; ++i) + t[i].value.apply(that, args); + }, + apply: function(type2, that, args) { + if (!this._.hasOwnProperty(type2)) + throw new Error("unknown type: " + type2); + for (var t = this._[type2], i = 0, n = t.length; i < n; ++i) + t[i].value.apply(that, args); + } +}; +function get$1(type2, name) { + for (var i = 0, n = type2.length, c; i < n; ++i) { + if ((c = type2[i]).name === name) { + return c.value; + } + } +} +function set$2(type2, name, callback) { + for (var i = 0, n = type2.length; i < n; ++i) { + if (type2[i].name === name) { + type2[i] = noop$1, type2 = type2.slice(0, i).concat(type2.slice(i + 1)); + break; + } + } + if (callback != null) + type2.push({ name, value: callback }); + return type2; +} +var xhtml = "http://www.w3.org/1999/xhtml"; +const namespaces = { + svg: "http://www.w3.org/2000/svg", + xhtml, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" +}; +function namespace(name) { + var prefix = name += "", i = prefix.indexOf(":"); + if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") + name = name.slice(i + 1); + return namespaces.hasOwnProperty(prefix) ? { space: namespaces[prefix], local: name } : name; +} +function creatorInherit(name) { + return function() { + var document2 = this.ownerDocument, uri = this.namespaceURI; + return uri === xhtml && document2.documentElement.namespaceURI === xhtml ? document2.createElement(name) : document2.createElementNS(uri, name); + }; +} +function creatorFixed(fullname) { + return function() { + return this.ownerDocument.createElementNS(fullname.space, fullname.local); + }; +} +function creator(name) { + var fullname = namespace(name); + return (fullname.local ? creatorFixed : creatorInherit)(fullname); +} +function none() { +} +function selector(selector2) { + return selector2 == null ? none : function() { + return this.querySelector(selector2); + }; +} +function selection_select(select) { + if (typeof select !== "function") + select = selector(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node2, subnode, i = 0; i < n; ++i) { + if ((node2 = group[i]) && (subnode = select.call(node2, node2.__data__, i, group))) { + if ("__data__" in node2) + subnode.__data__ = node2.__data__; + subgroup[i] = subnode; + } + } + } + return new Selection$1(subgroups, this._parents); +} +function array(x) { + return x == null ? [] : Array.isArray(x) ? x : Array.from(x); +} +function empty() { + return []; +} +function selectorAll(selector2) { + return selector2 == null ? empty : function() { + return this.querySelectorAll(selector2); + }; +} +function arrayAll(select) { + return function() { + return array(select.apply(this, arguments)); + }; +} +function selection_selectAll(select) { + if (typeof select === "function") + select = arrayAll(select); + else + select = selectorAll(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node2, i = 0; i < n; ++i) { + if (node2 = group[i]) { + subgroups.push(select.call(node2, node2.__data__, i, group)); + parents.push(node2); + } + } + } + return new Selection$1(subgroups, parents); +} +function matcher(selector2) { + return function() { + return this.matches(selector2); + }; +} +function childMatcher(selector2) { + return function(node2) { + return node2.matches(selector2); + }; +} +var find = Array.prototype.find; +function childFind(match) { + return function() { + return find.call(this.children, match); + }; +} +function childFirst() { + return this.firstElementChild; +} +function selection_selectChild(match) { + return this.select(match == null ? childFirst : childFind(typeof match === "function" ? match : childMatcher(match))); +} +var filter = Array.prototype.filter; +function children() { + return Array.from(this.children); +} +function childrenFilter(match) { + return function() { + return filter.call(this.children, match); + }; +} +function selection_selectChildren(match) { + return this.selectAll(match == null ? children : childrenFilter(typeof match === "function" ? match : childMatcher(match))); +} +function selection_filter(match) { + if (typeof match !== "function") + match = matcher(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node2, i = 0; i < n; ++i) { + if ((node2 = group[i]) && match.call(node2, node2.__data__, i, group)) { + subgroup.push(node2); + } + } + } + return new Selection$1(subgroups, this._parents); +} +function sparse(update) { + return new Array(update.length); +} +function selection_enter() { + return new Selection$1(this._enter || this._groups.map(sparse), this._parents); +} +function EnterNode(parent, datum2) { + this.ownerDocument = parent.ownerDocument; + this.namespaceURI = parent.namespaceURI; + this._next = null; + this._parent = parent; + this.__data__ = datum2; +} +EnterNode.prototype = { + constructor: EnterNode, + appendChild: function(child) { + return this._parent.insertBefore(child, this._next); + }, + insertBefore: function(child, next2) { + return this._parent.insertBefore(child, next2); + }, + querySelector: function(selector2) { + return this._parent.querySelector(selector2); + }, + querySelectorAll: function(selector2) { + return this._parent.querySelectorAll(selector2); + } +}; +function constant$2(x) { + return function() { + return x; + }; +} +function bindIndex(parent, group, enter, update, exit, data) { + var i = 0, node2, groupLength = group.length, dataLength = data.length; + for (; i < dataLength; ++i) { + if (node2 = group[i]) { + node2.__data__ = data[i]; + update[i] = node2; + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (; i < groupLength; ++i) { + if (node2 = group[i]) { + exit[i] = node2; + } + } +} +function bindKey(parent, group, enter, update, exit, data, key) { + var i, node2, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue; + for (i = 0; i < groupLength; ++i) { + if (node2 = group[i]) { + keyValues[i] = keyValue = key.call(node2, node2.__data__, i, group) + ""; + if (nodeByKeyValue.has(keyValue)) { + exit[i] = node2; + } else { + nodeByKeyValue.set(keyValue, node2); + } + } + } + for (i = 0; i < dataLength; ++i) { + keyValue = key.call(parent, data[i], i, data) + ""; + if (node2 = nodeByKeyValue.get(keyValue)) { + update[i] = node2; + node2.__data__ = data[i]; + nodeByKeyValue.delete(keyValue); + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (i = 0; i < groupLength; ++i) { + if ((node2 = group[i]) && nodeByKeyValue.get(keyValues[i]) === node2) { + exit[i] = node2; + } + } +} +function datum(node2) { + return node2.__data__; +} +function selection_data(value, key) { + if (!arguments.length) + return Array.from(this, datum); + var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups; + if (typeof value !== "function") + value = constant$2(value); + for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { + var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength); + bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); + for (var i0 = 0, i1 = 0, previous, next2; i0 < dataLength; ++i0) { + if (previous = enterGroup[i0]) { + if (i0 >= i1) + i1 = i0 + 1; + while (!(next2 = updateGroup[i1]) && ++i1 < dataLength) + ; + previous._next = next2 || null; + } + } + } + update = new Selection$1(update, parents); + update._enter = enter; + update._exit = exit; + return update; +} +function arraylike(data) { + return typeof data === "object" && "length" in data ? data : Array.from(data); +} +function selection_exit() { + return new Selection$1(this._exit || this._groups.map(sparse), this._parents); +} +function selection_join(onenter, onupdate, onexit) { + var enter = this.enter(), update = this, exit = this.exit(); + if (typeof onenter === "function") { + enter = onenter(enter); + if (enter) + enter = enter.selection(); + } else { + enter = enter.append(onenter + ""); + } + if (onupdate != null) { + update = onupdate(update); + if (update) + update = update.selection(); + } + if (onexit == null) + exit.remove(); + else + onexit(exit); + return enter && update ? enter.merge(update).order() : update; +} +function selection_merge(context) { + var selection2 = context.selection ? context.selection() : context; + for (var groups0 = this._groups, groups1 = selection2._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge2 = merges[j] = new Array(n), node2, i = 0; i < n; ++i) { + if (node2 = group0[i] || group1[i]) { + merge2[i] = node2; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Selection$1(merges, this._parents); +} +function selection_order() { + for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) { + for (var group = groups[j], i = group.length - 1, next2 = group[i], node2; --i >= 0; ) { + if (node2 = group[i]) { + if (next2 && node2.compareDocumentPosition(next2) ^ 4) + next2.parentNode.insertBefore(node2, next2); + next2 = node2; + } + } + } + return this; +} +function selection_sort(compare) { + if (!compare) + compare = ascending; + function compareNode(a, b) { + return a && b ? compare(a.__data__, b.__data__) : !a - !b; + } + for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node2, i = 0; i < n; ++i) { + if (node2 = group[i]) { + sortgroup[i] = node2; + } + } + sortgroup.sort(compareNode); + } + return new Selection$1(sortgroups, this._parents).order(); +} +function ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} +function selection_call() { + var callback = arguments[0]; + arguments[0] = this; + callback.apply(null, arguments); + return this; +} +function selection_nodes() { + return Array.from(this); +} +function selection_node() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { + var node2 = group[i]; + if (node2) + return node2; + } + } + return null; +} +function selection_size() { + let size = 0; + for (const node2 of this) + ++size; + return size; +} +function selection_empty() { + return !this.node(); +} +function selection_each(callback) { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node2; i < n; ++i) { + if (node2 = group[i]) + callback.call(node2, node2.__data__, i, group); + } + } + return this; +} +function attrRemove$1(name) { + return function() { + this.removeAttribute(name); + }; +} +function attrRemoveNS$1(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} +function attrConstant$1(name, value) { + return function() { + this.setAttribute(name, value); + }; +} +function attrConstantNS$1(fullname, value) { + return function() { + this.setAttributeNS(fullname.space, fullname.local, value); + }; +} +function attrFunction$1(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.removeAttribute(name); + else + this.setAttribute(name, v); + }; +} +function attrFunctionNS$1(fullname, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.removeAttributeNS(fullname.space, fullname.local); + else + this.setAttributeNS(fullname.space, fullname.local, v); + }; +} +function selection_attr(name, value) { + var fullname = namespace(name); + if (arguments.length < 2) { + var node2 = this.node(); + return fullname.local ? node2.getAttributeNS(fullname.space, fullname.local) : node2.getAttribute(fullname); + } + return this.each((value == null ? fullname.local ? attrRemoveNS$1 : attrRemove$1 : typeof value === "function" ? fullname.local ? attrFunctionNS$1 : attrFunction$1 : fullname.local ? attrConstantNS$1 : attrConstant$1)(fullname, value)); +} +function defaultView(node2) { + return node2.ownerDocument && node2.ownerDocument.defaultView || node2.document && node2 || node2.defaultView; +} +function styleRemove$1(name) { + return function() { + this.style.removeProperty(name); + }; +} +function styleConstant$1(name, value, priority) { + return function() { + this.style.setProperty(name, value, priority); + }; +} +function styleFunction$1(name, value, priority) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.style.removeProperty(name); + else + this.style.setProperty(name, v, priority); + }; +} +function selection_style(name, value, priority) { + return arguments.length > 1 ? this.each((value == null ? styleRemove$1 : typeof value === "function" ? styleFunction$1 : styleConstant$1)(name, value, priority == null ? "" : priority)) : styleValue(this.node(), name); +} +function styleValue(node2, name) { + return node2.style.getPropertyValue(name) || defaultView(node2).getComputedStyle(node2, null).getPropertyValue(name); +} +function propertyRemove(name) { + return function() { + delete this[name]; + }; +} +function propertyConstant(name, value) { + return function() { + this[name] = value; + }; +} +function propertyFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + delete this[name]; + else + this[name] = v; + }; +} +function selection_property(name, value) { + return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name]; +} +function classArray(string) { + return string.trim().split(/^|\s+/); +} +function classList(node2) { + return node2.classList || new ClassList(node2); +} +function ClassList(node2) { + this._node = node2; + this._names = classArray(node2.getAttribute("class") || ""); +} +ClassList.prototype = { + add: function(name) { + var i = this._names.indexOf(name); + if (i < 0) { + this._names.push(name); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + remove: function(name) { + var i = this._names.indexOf(name); + if (i >= 0) { + this._names.splice(i, 1); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + contains: function(name) { + return this._names.indexOf(name) >= 0; + } +}; +function classedAdd(node2, names) { + var list = classList(node2), i = -1, n = names.length; + while (++i < n) + list.add(names[i]); +} +function classedRemove(node2, names) { + var list = classList(node2), i = -1, n = names.length; + while (++i < n) + list.remove(names[i]); +} +function classedTrue(names) { + return function() { + classedAdd(this, names); + }; +} +function classedFalse(names) { + return function() { + classedRemove(this, names); + }; +} +function classedFunction(names, value) { + return function() { + (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); + }; +} +function selection_classed(name, value) { + var names = classArray(name + ""); + if (arguments.length < 2) { + var list = classList(this.node()), i = -1, n = names.length; + while (++i < n) + if (!list.contains(names[i])) + return false; + return true; + } + return this.each((typeof value === "function" ? classedFunction : value ? classedTrue : classedFalse)(names, value)); +} +function textRemove() { + this.textContent = ""; +} +function textConstant$1(value) { + return function() { + this.textContent = value; + }; +} +function textFunction$1(value) { + return function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + }; +} +function selection_text(value) { + return arguments.length ? this.each(value == null ? textRemove : (typeof value === "function" ? textFunction$1 : textConstant$1)(value)) : this.node().textContent; +} +function htmlRemove() { + this.innerHTML = ""; +} +function htmlConstant(value) { + return function() { + this.innerHTML = value; + }; +} +function htmlFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + }; +} +function selection_html(value) { + return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === "function" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML; +} +function raise() { + if (this.nextSibling) + this.parentNode.appendChild(this); +} +function selection_raise() { + return this.each(raise); +} +function lower() { + if (this.previousSibling) + this.parentNode.insertBefore(this, this.parentNode.firstChild); +} +function selection_lower() { + return this.each(lower); +} +function selection_append(name) { + var create2 = typeof name === "function" ? name : creator(name); + return this.select(function() { + return this.appendChild(create2.apply(this, arguments)); + }); +} +function constantNull() { + return null; +} +function selection_insert(name, before) { + var create2 = typeof name === "function" ? name : creator(name), select = before == null ? constantNull : typeof before === "function" ? before : selector(before); + return this.select(function() { + return this.insertBefore(create2.apply(this, arguments), select.apply(this, arguments) || null); + }); +} +function remove() { + var parent = this.parentNode; + if (parent) + parent.removeChild(this); +} +function selection_remove() { + return this.each(remove); +} +function selection_cloneShallow() { + var clone2 = this.cloneNode(false), parent = this.parentNode; + return parent ? parent.insertBefore(clone2, this.nextSibling) : clone2; +} +function selection_cloneDeep() { + var clone2 = this.cloneNode(true), parent = this.parentNode; + return parent ? parent.insertBefore(clone2, this.nextSibling) : clone2; +} +function selection_clone(deep) { + return this.select(deep ? selection_cloneDeep : selection_cloneShallow); +} +function selection_datum(value) { + return arguments.length ? this.property("__data__", value) : this.node().__data__; +} +function contextListener(listener) { + return function(event) { + listener.call(this, event, this.__data__); + }; +} +function parseTypenames(typenames) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) + name = t.slice(i + 1), t = t.slice(0, i); + return { type: t, name }; + }); +} +function onRemove(typename) { + return function() { + var on = this.__on; + if (!on) + return; + for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { + if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + } else { + on[++i] = o; + } + } + if (++i) + on.length = i; + else + delete this.__on; + }; +} +function onAdd(typename, value, options) { + return function() { + var on = this.__on, o, listener = contextListener(value); + if (on) + for (var j = 0, m = on.length; j < m; ++j) { + if ((o = on[j]).type === typename.type && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + this.addEventListener(o.type, o.listener = listener, o.options = options); + o.value = value; + return; + } + } + this.addEventListener(typename.type, listener, options); + o = { type: typename.type, name: typename.name, value, listener, options }; + if (!on) + this.__on = [o]; + else + on.push(o); + }; +} +function selection_on(typename, value, options) { + var typenames = parseTypenames(typename + ""), i, n = typenames.length, t; + if (arguments.length < 2) { + var on = this.node().__on; + if (on) + for (var j = 0, m = on.length, o; j < m; ++j) { + for (i = 0, o = on[j]; i < n; ++i) { + if ((t = typenames[i]).type === o.type && t.name === o.name) { + return o.value; + } + } + } + return; + } + on = value ? onAdd : onRemove; + for (i = 0; i < n; ++i) + this.each(on(typenames[i], value, options)); + return this; +} +function dispatchEvent(node2, type2, params) { + var window2 = defaultView(node2), event = window2.CustomEvent; + if (typeof event === "function") { + event = new event(type2, params); + } else { + event = window2.document.createEvent("Event"); + if (params) + event.initEvent(type2, params.bubbles, params.cancelable), event.detail = params.detail; + else + event.initEvent(type2, false, false); + } + node2.dispatchEvent(event); +} +function dispatchConstant(type2, params) { + return function() { + return dispatchEvent(this, type2, params); + }; +} +function dispatchFunction(type2, params) { + return function() { + return dispatchEvent(this, type2, params.apply(this, arguments)); + }; +} +function selection_dispatch(type2, params) { + return this.each((typeof params === "function" ? dispatchFunction : dispatchConstant)(type2, params)); +} +function* selection_iterator() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node2; i < n; ++i) { + if (node2 = group[i]) + yield node2; + } + } +} +var root$2 = [null]; +function Selection$1(groups, parents) { + this._groups = groups; + this._parents = parents; +} +function selection() { + return new Selection$1([[document.documentElement]], root$2); +} +function selection_selection() { + return this; +} +Selection$1.prototype = selection.prototype = { + constructor: Selection$1, + select: selection_select, + selectAll: selection_selectAll, + selectChild: selection_selectChild, + selectChildren: selection_selectChildren, + filter: selection_filter, + data: selection_data, + enter: selection_enter, + exit: selection_exit, + join: selection_join, + merge: selection_merge, + selection: selection_selection, + order: selection_order, + sort: selection_sort, + call: selection_call, + nodes: selection_nodes, + node: selection_node, + size: selection_size, + empty: selection_empty, + each: selection_each, + attr: selection_attr, + style: selection_style, + property: selection_property, + classed: selection_classed, + text: selection_text, + html: selection_html, + raise: selection_raise, + lower: selection_lower, + append: selection_append, + insert: selection_insert, + remove: selection_remove, + clone: selection_clone, + datum: selection_datum, + on: selection_on, + dispatch: selection_dispatch, + [Symbol.iterator]: selection_iterator +}; +function d3select(selector2) { + return typeof selector2 === "string" ? new Selection$1([[document.querySelector(selector2)]], [document.documentElement]) : new Selection$1([[selector2]], root$2); +} +function define(constructor, factory, prototype) { + constructor.prototype = factory.prototype = prototype; + prototype.constructor = constructor; +} +function extend$1(parent, definition) { + var prototype = Object.create(parent.prototype); + for (var key in definition) + prototype[key] = definition[key]; + return prototype; +} +function Color$2() { +} +var darker = 0.7; +var brighter = 1 / darker; +var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`), reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`), reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`), reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`), reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`), reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`); +var named = { + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + rebeccapurple: 6697881, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 +}; +define(Color$2, color, { + copy(channels2) { + return Object.assign(new this.constructor(), this, channels2); + }, + displayable() { + return this.rgb().displayable(); + }, + hex: color_formatHex, + // Deprecated! Use color.formatHex. + formatHex: color_formatHex, + formatHex8: color_formatHex8, + formatHsl: color_formatHsl, + formatRgb: color_formatRgb, + toString: color_formatRgb +}); +function color_formatHex() { + return this.rgb().formatHex(); +} +function color_formatHex8() { + return this.rgb().formatHex8(); +} +function color_formatHsl() { + return hslConvert(this).formatHsl(); +} +function color_formatRgb() { + return this.rgb().formatRgb(); +} +function color(format2) { + var m, l; + format2 = (format2 + "").trim().toLowerCase(); + return (m = reHex.exec(format2)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba$2(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba$2(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format2)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format2)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format2)) ? rgba$2(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format2)) ? rgba$2(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format2)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format2)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format2) ? rgbn(named[format2]) : format2 === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null; +} +function rgbn(n) { + return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1); +} +function rgba$2(r, g, b, a) { + if (a <= 0) + r = g = b = NaN; + return new Rgb(r, g, b, a); +} +function rgbConvert(o) { + if (!(o instanceof Color$2)) + o = color(o); + if (!o) + return new Rgb(); + o = o.rgb(); + return new Rgb(o.r, o.g, o.b, o.opacity); +} +function rgb(r, g, b, opacity) { + return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); +} +function Rgb(r, g, b, opacity) { + this.r = +r; + this.g = +g; + this.b = +b; + this.opacity = +opacity; +} +define(Rgb, rgb, extend$1(Color$2, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + rgb() { + return this; + }, + clamp() { + return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity)); + }, + displayable() { + return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1); + }, + hex: rgb_formatHex, + // Deprecated! Use color.formatHex. + formatHex: rgb_formatHex, + formatHex8: rgb_formatHex8, + formatRgb: rgb_formatRgb, + toString: rgb_formatRgb +})); +function rgb_formatHex() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`; +} +function rgb_formatHex8() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; +} +function rgb_formatRgb() { + const a = clampa(this.opacity); + return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`; +} +function clampa(opacity) { + return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity)); +} +function clampi(value) { + return Math.max(0, Math.min(255, Math.round(value) || 0)); +} +function hex(value) { + value = clampi(value); + return (value < 16 ? "0" : "") + value.toString(16); +} +function hsla(h, s, l, a) { + if (a <= 0) + h = s = l = NaN; + else if (l <= 0 || l >= 1) + h = s = NaN; + else if (s <= 0) + h = NaN; + return new Hsl(h, s, l, a); +} +function hslConvert(o) { + if (o instanceof Hsl) + return new Hsl(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Color$2)) + o = color(o); + if (!o) + return new Hsl(); + if (o instanceof Hsl) + return o; + o = o.rgb(); + var r = o.r / 255, g = o.g / 255, b = o.b / 255, min2 = Math.min(r, g, b), max2 = Math.max(r, g, b), h = NaN, s = max2 - min2, l = (max2 + min2) / 2; + if (s) { + if (r === max2) + h = (g - b) / s + (g < b) * 6; + else if (g === max2) + h = (b - r) / s + 2; + else + h = (r - g) / s + 4; + s /= l < 0.5 ? max2 + min2 : 2 - max2 - min2; + h *= 60; + } else { + s = l > 0 && l < 1 ? 0 : h; + } + return new Hsl(h, s, l, o.opacity); +} +function hsl(h, s, l, opacity) { + return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); +} +function Hsl(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; +} +define(Hsl, hsl, extend$1(Color$2, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + rgb() { + var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2; + return new Rgb( + hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), + hsl2rgb(h, m1, m2), + hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), + this.opacity + ); + }, + clamp() { + return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity)); + }, + displayable() { + return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1); + }, + formatHsl() { + const a = clampa(this.opacity); + return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`; + } +})); +function clamph(value) { + value = (value || 0) % 360; + return value < 0 ? value + 360 : value; +} +function clampt(value) { + return Math.max(0, Math.min(1, value || 0)); +} +function hsl2rgb(h, m1, m2) { + return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255; +} +const constant$1 = (x) => () => x; +function linear(a, d) { + return function(t) { + return a + t * d; + }; +} +function exponential(a, b, y) { + return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { + return Math.pow(a + t * b, y); + }; +} +function hue(a, b) { + var d = b - a; + return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant$1(isNaN(a) ? b : a); +} +function gamma(y) { + return (y = +y) === 1 ? nogamma : function(a, b) { + return b - a ? exponential(a, b, y) : constant$1(isNaN(a) ? b : a); + }; +} +function nogamma(a, b) { + var d = b - a; + return d ? linear(a, d) : constant$1(isNaN(a) ? b : a); +} +const interpolateRgb = function rgbGamma(y) { + var color2 = gamma(y); + function rgb$1(start2, end) { + var r = color2((start2 = rgb(start2)).r, (end = rgb(end)).r), g = color2(start2.g, end.g), b = color2(start2.b, end.b), opacity = nogamma(start2.opacity, end.opacity); + return function(t) { + start2.r = r(t); + start2.g = g(t); + start2.b = b(t); + start2.opacity = opacity(t); + return start2 + ""; + }; + } + rgb$1.gamma = rgbGamma; + return rgb$1; +}(1); +function interpolateNumber(a, b) { + return a = +a, b = +b, function(t) { + return a * (1 - t) + b * t; + }; +} +var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, reB = new RegExp(reA.source, "g"); +function zero(b) { + return function() { + return b; + }; +} +function one(b) { + return function(t) { + return b(t) + ""; + }; +} +function interpolateString(a, b) { + var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = []; + a = a + "", b = b + ""; + while ((am = reA.exec(a)) && (bm = reB.exec(b))) { + if ((bs = bm.index) > bi) { + bs = b.slice(bi, bs); + if (s[i]) + s[i] += bs; + else + s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { + if (s[i]) + s[i] += bm; + else + s[++i] = bm; + } else { + s[++i] = null; + q.push({ i, x: interpolateNumber(am, bm) }); + } + bi = reB.lastIndex; + } + if (bi < b.length) { + bs = b.slice(bi); + if (s[i]) + s[i] += bs; + else + s[++i] = bs; + } + return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) { + for (var i2 = 0, o; i2 < b; ++i2) + s[(o = q[i2]).i] = o.x(t); + return s.join(""); + }); +} +var degrees = 180 / Math.PI; +var identity$1 = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 +}; +function decompose(a, b, c, d, e, f) { + var scaleX, scaleY, skewX; + if (scaleX = Math.sqrt(a * a + b * b)) + a /= scaleX, b /= scaleX; + if (skewX = a * c + b * d) + c -= a * skewX, d -= b * skewX; + if (scaleY = Math.sqrt(c * c + d * d)) + c /= scaleY, d /= scaleY, skewX /= scaleY; + if (a * d < b * c) + a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; + return { + translateX: e, + translateY: f, + rotate: Math.atan2(b, a) * degrees, + skewX: Math.atan(skewX) * degrees, + scaleX, + scaleY + }; +} +var svgNode; +function parseCss(value) { + const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + ""); + return m.isIdentity ? identity$1 : decompose(m.a, m.b, m.c, m.d, m.e, m.f); +} +function parseSvg(value) { + if (value == null) + return identity$1; + if (!svgNode) + svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); + svgNode.setAttribute("transform", value); + if (!(value = svgNode.transform.baseVal.consolidate())) + return identity$1; + value = value.matrix; + return decompose(value.a, value.b, value.c, value.d, value.e, value.f); +} +function interpolateTransform(parse2, pxComma, pxParen, degParen) { + function pop(s) { + return s.length ? s.pop() + " " : ""; + } + function translate(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push("translate(", null, pxComma, null, pxParen); + q.push({ i: i - 4, x: interpolateNumber(xa, xb) }, { i: i - 2, x: interpolateNumber(ya, yb) }); + } else if (xb || yb) { + s.push("translate(" + xb + pxComma + yb + pxParen); + } + } + function rotate(a, b, s, q) { + if (a !== b) { + if (a - b > 180) + b += 360; + else if (b - a > 180) + a += 360; + q.push({ i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: interpolateNumber(a, b) }); + } else if (b) { + s.push(pop(s) + "rotate(" + b + degParen); + } + } + function skewX(a, b, s, q) { + if (a !== b) { + q.push({ i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: interpolateNumber(a, b) }); + } else if (b) { + s.push(pop(s) + "skewX(" + b + degParen); + } + } + function scale(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push(pop(s) + "scale(", null, ",", null, ")"); + q.push({ i: i - 4, x: interpolateNumber(xa, xb) }, { i: i - 2, x: interpolateNumber(ya, yb) }); + } else if (xb !== 1 || yb !== 1) { + s.push(pop(s) + "scale(" + xb + "," + yb + ")"); + } + } + return function(a, b) { + var s = [], q = []; + a = parse2(a), b = parse2(b); + translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); + rotate(a.rotate, b.rotate, s, q); + skewX(a.skewX, b.skewX, s, q); + scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); + a = b = null; + return function(t) { + var i = -1, n = q.length, o; + while (++i < n) + s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + }; +} +var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); +var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); +var frame = 0, timeout$1 = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === "object" && performance.now ? performance : Date, setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { + setTimeout(f, 17); +}; +function now() { + return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); +} +function clearNow() { + clockNow = 0; +} +function Timer() { + this._call = this._time = this._next = null; +} +Timer.prototype = timer.prototype = { + constructor: Timer, + restart: function(callback, delay, time) { + if (typeof callback !== "function") + throw new TypeError("callback is not a function"); + time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); + if (!this._next && taskTail !== this) { + if (taskTail) + taskTail._next = this; + else + taskHead = this; + taskTail = this; + } + this._call = callback; + this._time = time; + sleep(); + }, + stop: function() { + if (this._call) { + this._call = null; + this._time = Infinity; + sleep(); + } + } +}; +function timer(callback, delay, time) { + var t = new Timer(); + t.restart(callback, delay, time); + return t; +} +function timerFlush() { + now(); + ++frame; + var t = taskHead, e; + while (t) { + if ((e = clockNow - t._time) >= 0) + t._call.call(void 0, e); + t = t._next; + } + --frame; +} +function wake() { + clockNow = (clockLast = clock.now()) + clockSkew; + frame = timeout$1 = 0; + try { + timerFlush(); + } finally { + frame = 0; + nap(); + clockNow = 0; + } +} +function poke() { + var now2 = clock.now(), delay = now2 - clockLast; + if (delay > pokeDelay) + clockSkew -= delay, clockLast = now2; +} +function nap() { + var t0, t1 = taskHead, t2, time = Infinity; + while (t1) { + if (t1._call) { + if (time > t1._time) + time = t1._time; + t0 = t1, t1 = t1._next; + } else { + t2 = t1._next, t1._next = null; + t1 = t0 ? t0._next = t2 : taskHead = t2; + } + } + taskTail = t0; + sleep(time); +} +function sleep(time) { + if (frame) + return; + if (timeout$1) + timeout$1 = clearTimeout(timeout$1); + var delay = time - clockNow; + if (delay > 24) { + if (time < Infinity) + timeout$1 = setTimeout(wake, time - clock.now() - clockSkew); + if (interval) + interval = clearInterval(interval); + } else { + if (!interval) + clockLast = clock.now(), interval = setInterval(poke, pokeDelay); + frame = 1, setFrame(wake); + } +} +function timeout(callback, delay, time) { + var t = new Timer(); + delay = delay == null ? 0 : +delay; + t.restart((elapsed) => { + t.stop(); + callback(elapsed + delay); + }, delay, time); + return t; +} +var emptyOn = dispatch("start", "end", "cancel", "interrupt"); +var emptyTween = []; +var CREATED = 0; +var SCHEDULED = 1; +var STARTING = 2; +var STARTED = 3; +var RUNNING = 4; +var ENDING = 5; +var ENDED = 6; +function schedule(node2, name, id2, index, group, timing) { + var schedules = node2.__transition; + if (!schedules) + node2.__transition = {}; + else if (id2 in schedules) + return; + create$1(node2, id2, { + name, + index, + // For context during callback. + group, + // For context during callback. + on: emptyOn, + tween: emptyTween, + time: timing.time, + delay: timing.delay, + duration: timing.duration, + ease: timing.ease, + timer: null, + state: CREATED + }); +} +function init$1(node2, id2) { + var schedule2 = get(node2, id2); + if (schedule2.state > CREATED) + throw new Error("too late; already scheduled"); + return schedule2; +} +function set$1(node2, id2) { + var schedule2 = get(node2, id2); + if (schedule2.state > STARTED) + throw new Error("too late; already running"); + return schedule2; +} +function get(node2, id2) { + var schedule2 = node2.__transition; + if (!schedule2 || !(schedule2 = schedule2[id2])) + throw new Error("transition not found"); + return schedule2; +} +function create$1(node2, id2, self2) { + var schedules = node2.__transition, tween; + schedules[id2] = self2; + self2.timer = timer(schedule2, 0, self2.time); + function schedule2(elapsed) { + self2.state = SCHEDULED; + self2.timer.restart(start2, self2.delay, self2.time); + if (self2.delay <= elapsed) + start2(elapsed - self2.delay); + } + function start2(elapsed) { + var i, j, n, o; + if (self2.state !== SCHEDULED) + return stop(); + for (i in schedules) { + o = schedules[i]; + if (o.name !== self2.name) + continue; + if (o.state === STARTED) + return timeout(start2); + if (o.state === RUNNING) { + o.state = ENDED; + o.timer.stop(); + o.on.call("interrupt", node2, node2.__data__, o.index, o.group); + delete schedules[i]; + } else if (+i < id2) { + o.state = ENDED; + o.timer.stop(); + o.on.call("cancel", node2, node2.__data__, o.index, o.group); + delete schedules[i]; + } + } + timeout(function() { + if (self2.state === STARTED) { + self2.state = RUNNING; + self2.timer.restart(tick, self2.delay, self2.time); + tick(elapsed); + } + }); + self2.state = STARTING; + self2.on.call("start", node2, node2.__data__, self2.index, self2.group); + if (self2.state !== STARTING) + return; + self2.state = STARTED; + tween = new Array(n = self2.tween.length); + for (i = 0, j = -1; i < n; ++i) { + if (o = self2.tween[i].value.call(node2, node2.__data__, self2.index, self2.group)) { + tween[++j] = o; + } + } + tween.length = j + 1; + } + function tick(elapsed) { + var t = elapsed < self2.duration ? self2.ease.call(null, elapsed / self2.duration) : (self2.timer.restart(stop), self2.state = ENDING, 1), i = -1, n = tween.length; + while (++i < n) { + tween[i].call(node2, t); + } + if (self2.state === ENDING) { + self2.on.call("end", node2, node2.__data__, self2.index, self2.group); + stop(); + } + } + function stop() { + self2.state = ENDED; + self2.timer.stop(); + delete schedules[id2]; + for (var i in schedules) + return; + delete node2.__transition; + } +} +function interrupt(node2, name) { + var schedules = node2.__transition, schedule2, active, empty2 = true, i; + if (!schedules) + return; + name = name == null ? null : name + ""; + for (i in schedules) { + if ((schedule2 = schedules[i]).name !== name) { + empty2 = false; + continue; + } + active = schedule2.state > STARTING && schedule2.state < ENDING; + schedule2.state = ENDED; + schedule2.timer.stop(); + schedule2.on.call(active ? "interrupt" : "cancel", node2, node2.__data__, schedule2.index, schedule2.group); + delete schedules[i]; + } + if (empty2) + delete node2.__transition; +} +function selection_interrupt(name) { + return this.each(function() { + interrupt(this, name); + }); +} +function tweenRemove(id2, name) { + var tween0, tween1; + return function() { + var schedule2 = set$1(this, id2), tween = schedule2.tween; + if (tween !== tween0) { + tween1 = tween0 = tween; + for (var i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1 = tween1.slice(); + tween1.splice(i, 1); + break; + } + } + } + schedule2.tween = tween1; + }; +} +function tweenFunction(id2, name, value) { + var tween0, tween1; + if (typeof value !== "function") + throw new Error(); + return function() { + var schedule2 = set$1(this, id2), tween = schedule2.tween; + if (tween !== tween0) { + tween1 = (tween0 = tween).slice(); + for (var t = { name, value }, i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1[i] = t; + break; + } + } + if (i === n) + tween1.push(t); + } + schedule2.tween = tween1; + }; +} +function transition_tween(name, value) { + var id2 = this._id; + name += ""; + if (arguments.length < 2) { + var tween = get(this.node(), id2).tween; + for (var i = 0, n = tween.length, t; i < n; ++i) { + if ((t = tween[i]).name === name) { + return t.value; + } + } + return null; + } + return this.each((value == null ? tweenRemove : tweenFunction)(id2, name, value)); +} +function tweenValue(transition, name, value) { + var id2 = transition._id; + transition.each(function() { + var schedule2 = set$1(this, id2); + (schedule2.value || (schedule2.value = {}))[name] = value.apply(this, arguments); + }); + return function(node2) { + return get(node2, id2).value[name]; + }; +} +function interpolate(a, b) { + var c; + return (typeof b === "number" ? interpolateNumber : b instanceof color ? interpolateRgb : (c = color(b)) ? (b = c, interpolateRgb) : interpolateString)(a, b); +} +function attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} +function attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} +function attrConstant(name, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = this.getAttribute(name); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function attrConstantNS(fullname, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = this.getAttributeNS(fullname.space, fullname.local); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function attrFunction(name, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) + return void this.removeAttribute(name); + string0 = this.getAttribute(name); + string1 = value1 + ""; + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +function attrFunctionNS(fullname, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) + return void this.removeAttributeNS(fullname.space, fullname.local); + string0 = this.getAttributeNS(fullname.space, fullname.local); + string1 = value1 + ""; + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +function transition_attr(name, value) { + var fullname = namespace(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate; + return this.attrTween(name, typeof value === "function" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, "attr." + name, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value)); +} +function attrInterpolate(name, i) { + return function(t) { + this.setAttribute(name, i.call(this, t)); + }; +} +function attrInterpolateNS(fullname, i) { + return function(t) { + this.setAttributeNS(fullname.space, fullname.local, i.call(this, t)); + }; +} +function attrTweenNS(fullname, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && attrInterpolateNS(fullname, i); + return t0; + } + tween._value = value; + return tween; +} +function attrTween(name, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && attrInterpolate(name, i); + return t0; + } + tween._value = value; + return tween; +} +function transition_attrTween(name, value) { + var key = "attr." + name; + if (arguments.length < 2) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + var fullname = namespace(name); + return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value)); +} +function delayFunction(id2, value) { + return function() { + init$1(this, id2).delay = +value.apply(this, arguments); + }; +} +function delayConstant(id2, value) { + return value = +value, function() { + init$1(this, id2).delay = value; + }; +} +function transition_delay(value) { + var id2 = this._id; + return arguments.length ? this.each((typeof value === "function" ? delayFunction : delayConstant)(id2, value)) : get(this.node(), id2).delay; +} +function durationFunction(id2, value) { + return function() { + set$1(this, id2).duration = +value.apply(this, arguments); + }; +} +function durationConstant(id2, value) { + return value = +value, function() { + set$1(this, id2).duration = value; + }; +} +function transition_duration(value) { + var id2 = this._id; + return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id2, value)) : get(this.node(), id2).duration; +} +function easeConstant(id2, value) { + if (typeof value !== "function") + throw new Error(); + return function() { + set$1(this, id2).ease = value; + }; +} +function transition_ease(value) { + var id2 = this._id; + return arguments.length ? this.each(easeConstant(id2, value)) : get(this.node(), id2).ease; +} +function easeVarying(id2, value) { + return function() { + var v = value.apply(this, arguments); + if (typeof v !== "function") + throw new Error(); + set$1(this, id2).ease = v; + }; +} +function transition_easeVarying(value) { + if (typeof value !== "function") + throw new Error(); + return this.each(easeVarying(this._id, value)); +} +function transition_filter(match) { + if (typeof match !== "function") + match = matcher(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node2, i = 0; i < n; ++i) { + if ((node2 = group[i]) && match.call(node2, node2.__data__, i, group)) { + subgroup.push(node2); + } + } + } + return new Transition(subgroups, this._parents, this._name, this._id); +} +function transition_merge(transition) { + if (transition._id !== this._id) + throw new Error(); + for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge2 = merges[j] = new Array(n), node2, i = 0; i < n; ++i) { + if (node2 = group0[i] || group1[i]) { + merge2[i] = node2; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Transition(merges, this._parents, this._name, this._id); +} +function start(name) { + return (name + "").trim().split(/^|\s+/).every(function(t) { + var i = t.indexOf("."); + if (i >= 0) + t = t.slice(0, i); + return !t || t === "start"; + }); +} +function onFunction(id2, name, listener) { + var on0, on1, sit = start(name) ? init$1 : set$1; + return function() { + var schedule2 = sit(this, id2), on = schedule2.on; + if (on !== on0) + (on1 = (on0 = on).copy()).on(name, listener); + schedule2.on = on1; + }; +} +function transition_on(name, listener) { + var id2 = this._id; + return arguments.length < 2 ? get(this.node(), id2).on.on(name) : this.each(onFunction(id2, name, listener)); +} +function removeFunction(id2) { + return function() { + var parent = this.parentNode; + for (var i in this.__transition) + if (+i !== id2) + return; + if (parent) + parent.removeChild(this); + }; +} +function transition_remove() { + return this.on("end.remove", removeFunction(this._id)); +} +function transition_select(select) { + var name = this._name, id2 = this._id; + if (typeof select !== "function") + select = selector(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node2, subnode, i = 0; i < n; ++i) { + if ((node2 = group[i]) && (subnode = select.call(node2, node2.__data__, i, group))) { + if ("__data__" in node2) + subnode.__data__ = node2.__data__; + subgroup[i] = subnode; + schedule(subgroup[i], name, id2, i, subgroup, get(node2, id2)); + } + } + } + return new Transition(subgroups, this._parents, name, id2); +} +function transition_selectAll(select) { + var name = this._name, id2 = this._id; + if (typeof select !== "function") + select = selectorAll(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node2, i = 0; i < n; ++i) { + if (node2 = group[i]) { + for (var children2 = select.call(node2, node2.__data__, i, group), child, inherit2 = get(node2, id2), k = 0, l = children2.length; k < l; ++k) { + if (child = children2[k]) { + schedule(child, name, id2, k, children2, inherit2); + } + } + subgroups.push(children2); + parents.push(node2); + } + } + } + return new Transition(subgroups, parents, name, id2); +} +var Selection = selection.prototype.constructor; +function transition_selection() { + return new Selection(this._groups, this._parents); +} +function styleNull(name, interpolate2) { + var string00, string10, interpolate0; + return function() { + var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, string10 = string1); + }; +} +function styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} +function styleConstant(name, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = styleValue(this, name); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function styleFunction(name, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0 = styleValue(this, name), value1 = value(this), string1 = value1 + ""; + if (value1 == null) + string1 = value1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +function styleMaybeRemove(id2, name) { + var on0, on1, listener0, key = "style." + name, event = "end." + key, remove2; + return function() { + var schedule2 = set$1(this, id2), on = schedule2.on, listener = schedule2.value[key] == null ? remove2 || (remove2 = styleRemove(name)) : void 0; + if (on !== on0 || listener0 !== listener) + (on1 = (on0 = on).copy()).on(event, listener0 = listener); + schedule2.on = on1; + }; +} +function transition_style(name, value, priority) { + var i = (name += "") === "transform" ? interpolateTransformCss : interpolate; + return value == null ? this.styleTween(name, styleNull(name, i)).on("end.style." + name, styleRemove(name)) : typeof value === "function" ? this.styleTween(name, styleFunction(name, i, tweenValue(this, "style." + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant(name, i, value), priority).on("end.style." + name, null); +} +function styleInterpolate(name, i, priority) { + return function(t) { + this.style.setProperty(name, i.call(this, t), priority); + }; +} +function styleTween(name, value, priority) { + var t, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t = (i0 = i) && styleInterpolate(name, i, priority); + return t; + } + tween._value = value; + return tween; +} +function transition_styleTween(name, value, priority) { + var key = "style." + (name += ""); + if (arguments.length < 2) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + return this.tween(key, styleTween(name, value, priority == null ? "" : priority)); +} +function textConstant(value) { + return function() { + this.textContent = value; + }; +} +function textFunction(value) { + return function() { + var value1 = value(this); + this.textContent = value1 == null ? "" : value1; + }; +} +function transition_text(value) { + return this.tween("text", typeof value === "function" ? textFunction(tweenValue(this, "text", value)) : textConstant(value == null ? "" : value + "")); +} +function textInterpolate(i) { + return function(t) { + this.textContent = i.call(this, t); + }; +} +function textTween(value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && textInterpolate(i); + return t0; + } + tween._value = value; + return tween; +} +function transition_textTween(value) { + var key = "text"; + if (arguments.length < 1) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + return this.tween(key, textTween(value)); +} +function transition_transition() { + var name = this._name, id0 = this._id, id1 = newId(); + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node2, i = 0; i < n; ++i) { + if (node2 = group[i]) { + var inherit2 = get(node2, id0); + schedule(node2, name, id1, i, group, { + time: inherit2.time + inherit2.delay + inherit2.duration, + delay: 0, + duration: inherit2.duration, + ease: inherit2.ease + }); + } + } + } + return new Transition(groups, this._parents, name, id1); +} +function transition_end() { + var on0, on1, that = this, id2 = that._id, size = that.size(); + return new Promise(function(resolve, reject) { + var cancel = { value: reject }, end = { value: function() { + if (--size === 0) + resolve(); + } }; + that.each(function() { + var schedule2 = set$1(this, id2), on = schedule2.on; + if (on !== on0) { + on1 = (on0 = on).copy(); + on1._.cancel.push(cancel); + on1._.interrupt.push(cancel); + on1._.end.push(end); + } + schedule2.on = on1; + }); + if (size === 0) + resolve(); + }); +} +var id$m = 0; +function Transition(groups, parents, name, id2) { + this._groups = groups; + this._parents = parents; + this._name = name; + this._id = id2; +} +function newId() { + return ++id$m; +} +var selection_prototype = selection.prototype; +Transition.prototype = { + constructor: Transition, + select: transition_select, + selectAll: transition_selectAll, + selectChild: selection_prototype.selectChild, + selectChildren: selection_prototype.selectChildren, + filter: transition_filter, + merge: transition_merge, + selection: transition_selection, + transition: transition_transition, + call: selection_prototype.call, + nodes: selection_prototype.nodes, + node: selection_prototype.node, + size: selection_prototype.size, + empty: selection_prototype.empty, + each: selection_prototype.each, + on: transition_on, + attr: transition_attr, + attrTween: transition_attrTween, + style: transition_style, + styleTween: transition_styleTween, + text: transition_text, + textTween: transition_textTween, + remove: transition_remove, + tween: transition_tween, + delay: transition_delay, + duration: transition_duration, + ease: transition_ease, + easeVarying: transition_easeVarying, + end: transition_end, + [Symbol.iterator]: selection_prototype[Symbol.iterator] +}; +function cubicInOut(t) { + return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; +} +var defaultTiming = { + time: null, + // Set on use. + delay: 0, + duration: 250, + ease: cubicInOut +}; +function inherit(node2, id2) { + var timing; + while (!(timing = node2.__transition) || !(timing = timing[id2])) { + if (!(node2 = node2.parentNode)) { + throw new Error(`transition ${id2} not found`); + } + } + return timing; +} +function selection_transition(name) { + var id2, timing; + if (name instanceof Transition) { + id2 = name._id, name = name._name; + } else { + id2 = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + ""; + } + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node2, i = 0; i < n; ++i) { + if (node2 = group[i]) { + schedule(node2, name, id2, i, group, timing || inherit(node2, id2)); + } + } + } + return new Transition(groups, this._parents, name, id2); +} +selection.prototype.interrupt = selection_interrupt; +selection.prototype.transition = selection_transition; +const abs$1 = Math.abs; +const atan2 = Math.atan2; +const cos = Math.cos; +const max = Math.max; +const min = Math.min; +const sin = Math.sin; +const sqrt = Math.sqrt; +const epsilon = 1e-12; +const pi = Math.PI; +const halfPi = pi / 2; +const tau = 2 * pi; +function acos(x) { + return x > 1 ? 0 : x < -1 ? pi : Math.acos(x); +} +function asin(x) { + return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x); +} +function Linear(context) { + this._context = context; +} +Linear.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._line || this._line !== 0 && this._point === 1) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); + break; + case 1: + this._point = 2; + default: + this._context.lineTo(x, y); + break; + } + } +}; +function curveLinear(context) { + return new Linear(context); +} +class Bump { + constructor(context, x) { + this._context = context; + this._x = x; + } + areaStart() { + this._line = 0; + } + areaEnd() { + this._line = NaN; + } + lineStart() { + this._point = 0; + } + lineEnd() { + if (this._line || this._line !== 0 && this._point === 1) + this._context.closePath(); + this._line = 1 - this._line; + } + point(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: { + this._point = 1; + if (this._line) + this._context.lineTo(x, y); + else + this._context.moveTo(x, y); + break; + } + case 1: + this._point = 2; + default: { + if (this._x) + this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y); + else + this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y); + break; + } + } + this._x0 = x, this._y0 = y; + } +} +function bumpX(context) { + return new Bump(context, true); +} +function bumpY(context) { + return new Bump(context, false); +} +function noop() { +} +function point$3(that, x, y) { + that._context.bezierCurveTo( + (2 * that._x0 + that._x1) / 3, + (2 * that._y0 + that._y1) / 3, + (that._x0 + 2 * that._x1) / 3, + (that._y0 + 2 * that._y1) / 3, + (that._x0 + 4 * that._x1 + x) / 6, + (that._y0 + 4 * that._y1 + y) / 6 + ); +} +function Basis(context) { + this._context = context; +} +Basis.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._y0 = this._y1 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 3: + point$3(this, this._x1, this._y1); + case 2: + this._context.lineTo(this._x1, this._y1); + break; + } + if (this._line || this._line !== 0 && this._point === 1) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); + default: + point$3(this, x, y); + break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; +function curveBasis(context) { + return new Basis(context); +} +function BasisClosed(context) { + this._context = context; +} +BasisClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x2, this._y2); + this._context.closePath(); + break; + } + case 2: { + this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3); + this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x2, this._y2); + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + this._x2 = x, this._y2 = y; + break; + case 1: + this._point = 2; + this._x3 = x, this._y3 = y; + break; + case 2: + this._point = 3; + this._x4 = x, this._y4 = y; + this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); + break; + default: + point$3(this, x, y); + break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; +function curveBasisClosed(context) { + return new BasisClosed(context); +} +function BasisOpen(context) { + this._context = context; +} +BasisOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._y0 = this._y1 = NaN; + this._point = 0; + }, + lineEnd: function() { + if (this._line || this._line !== 0 && this._point === 3) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; + this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); + break; + case 3: + this._point = 4; + default: + point$3(this, x, y); + break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; +function curveBasisOpen(context) { + return new BasisOpen(context); +} +function Bundle(context, beta) { + this._basis = new Basis(context); + this._beta = beta; +} +Bundle.prototype = { + lineStart: function() { + this._x = []; + this._y = []; + this._basis.lineStart(); + }, + lineEnd: function() { + var x = this._x, y = this._y, j = x.length - 1; + if (j > 0) { + var x0 = x[0], y0 = y[0], dx = x[j] - x0, dy = y[j] - y0, i = -1, t; + while (++i <= j) { + t = i / j; + this._basis.point( + this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), + this._beta * y[i] + (1 - this._beta) * (y0 + t * dy) + ); + } + } + this._x = this._y = null; + this._basis.lineEnd(); + }, + point: function(x, y) { + this._x.push(+x); + this._y.push(+y); + } +}; +const curveBundle = function custom(beta) { + function bundle(context) { + return beta === 1 ? new Basis(context) : new Bundle(context, beta); + } + bundle.beta = function(beta2) { + return custom(+beta2); + }; + return bundle; +}(0.85); +function point$2(that, x, y) { + that._context.bezierCurveTo( + that._x1 + that._k * (that._x2 - that._x0), + that._y1 + that._k * (that._y2 - that._y0), + that._x2 + that._k * (that._x1 - x), + that._y2 + that._k * (that._y1 - y), + that._x2, + that._y2 + ); +} +function Cardinal(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} +Cardinal.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: + this._context.lineTo(this._x2, this._y2); + break; + case 3: + point$2(this, this._x1, this._y1); + break; + } + if (this._line || this._line !== 0 && this._point === 1) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); + break; + case 1: + this._point = 2; + this._x1 = x, this._y1 = y; + break; + case 2: + this._point = 3; + default: + point$2(this, x, y); + break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; +const curveCardinal = function custom2(tension) { + function cardinal(context) { + return new Cardinal(context, tension); + } + cardinal.tension = function(tension2) { + return custom2(+tension2); + }; + return cardinal; +}(0); +function CardinalClosed(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} +CardinalClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 2: { + this._context.lineTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + this.point(this._x5, this._y5); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + this._x3 = x, this._y3 = y; + break; + case 1: + this._point = 2; + this._context.moveTo(this._x4 = x, this._y4 = y); + break; + case 2: + this._point = 3; + this._x5 = x, this._y5 = y; + break; + default: + point$2(this, x, y); + break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; +const curveCardinalClosed = function custom3(tension) { + function cardinal(context) { + return new CardinalClosed(context, tension); + } + cardinal.tension = function(tension2) { + return custom3(+tension2); + }; + return cardinal; +}(0); +function CardinalOpen(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} +CardinalOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN; + this._point = 0; + }, + lineEnd: function() { + if (this._line || this._line !== 0 && this._point === 3) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); + break; + case 3: + this._point = 4; + default: + point$2(this, x, y); + break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; +const curveCardinalOpen = function custom4(tension) { + function cardinal(context) { + return new CardinalOpen(context, tension); + } + cardinal.tension = function(tension2) { + return custom4(+tension2); + }; + return cardinal; +}(0); +function point$1(that, x, y) { + var x1 = that._x1, y1 = that._y1, x2 = that._x2, y2 = that._y2; + if (that._l01_a > epsilon) { + var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, n = 3 * that._l01_a * (that._l01_a + that._l12_a); + x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n; + y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n; + } + if (that._l23_a > epsilon) { + var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, m = 3 * that._l23_a * (that._l23_a + that._l12_a); + x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m; + y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m; + } + that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2); +} +function CatmullRom(context, alpha) { + this._context = context; + this._alpha = alpha; +} +CatmullRom.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN; + this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: + this._context.lineTo(this._x2, this._y2); + break; + case 3: + this.point(this._x2, this._y2); + break; + } + if (this._line || this._line !== 0 && this._point === 1) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + if (this._point) { + var x23 = this._x2 - x, y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + switch (this._point) { + case 0: + this._point = 1; + this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + default: + point$1(this, x, y); + break; + } + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; +const curveCatmullRom = function custom5(alpha) { + function catmullRom(context) { + return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0); + } + catmullRom.alpha = function(alpha2) { + return custom5(+alpha2); + }; + return catmullRom; +}(0.5); +function CatmullRomClosed(context, alpha) { + this._context = context; + this._alpha = alpha; +} +CatmullRomClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; + this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 2: { + this._context.lineTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + this.point(this._x5, this._y5); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + if (this._point) { + var x23 = this._x2 - x, y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + switch (this._point) { + case 0: + this._point = 1; + this._x3 = x, this._y3 = y; + break; + case 1: + this._point = 2; + this._context.moveTo(this._x4 = x, this._y4 = y); + break; + case 2: + this._point = 3; + this._x5 = x, this._y5 = y; + break; + default: + point$1(this, x, y); + break; + } + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; +const curveCatmullRomClosed = function custom6(alpha) { + function catmullRom(context) { + return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0); + } + catmullRom.alpha = function(alpha2) { + return custom6(+alpha2); + }; + return catmullRom; +}(0.5); +function CatmullRomOpen(context, alpha) { + this._context = context; + this._alpha = alpha; +} +CatmullRomOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN; + this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0; + }, + lineEnd: function() { + if (this._line || this._line !== 0 && this._point === 3) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + if (this._point) { + var x23 = this._x2 - x, y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + switch (this._point) { + case 0: + this._point = 1; + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); + break; + case 3: + this._point = 4; + default: + point$1(this, x, y); + break; + } + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; +const curveCatmullRomOpen = function custom7(alpha) { + function catmullRom(context) { + return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0); + } + catmullRom.alpha = function(alpha2) { + return custom7(+alpha2); + }; + return catmullRom; +}(0.5); +function LinearClosed(context) { + this._context = context; +} +LinearClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._point) + this._context.closePath(); + }, + point: function(x, y) { + x = +x, y = +y; + if (this._point) + this._context.lineTo(x, y); + else + this._point = 1, this._context.moveTo(x, y); + } +}; +function curveLinearClosed(context) { + return new LinearClosed(context); +} +function sign(x) { + return x < 0 ? -1 : 1; +} +function slope3(that, x2, y2) { + var h0 = that._x1 - that._x0, h1 = x2 - that._x1, s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), p = (s0 * h1 + s1 * h0) / (h0 + h1); + return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0; +} +function slope2(that, t) { + var h = that._x1 - that._x0; + return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t; +} +function point(that, t0, t1) { + var x0 = that._x0, y0 = that._y0, x1 = that._x1, y1 = that._y1, dx = (x1 - x0) / 3; + that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1); +} +function MonotoneX(context) { + this._context = context; +} +MonotoneX.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: + this._context.lineTo(this._x1, this._y1); + break; + case 3: + point(this, this._t0, slope2(this, this._t0)); + break; + } + if (this._line || this._line !== 0 && this._point === 1) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + var t1 = NaN; + x = +x, y = +y; + if (x === this._x1 && y === this._y1) + return; + switch (this._point) { + case 0: + this._point = 1; + this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + point(this, slope2(this, t1 = slope3(this, x, y)), t1); + break; + default: + point(this, this._t0, t1 = slope3(this, x, y)); + break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + this._t0 = t1; + } +}; +function MonotoneY(context) { + this._context = new ReflectContext(context); +} +(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) { + MonotoneX.prototype.point.call(this, y, x); +}; +function ReflectContext(context) { + this._context = context; +} +ReflectContext.prototype = { + moveTo: function(x, y) { + this._context.moveTo(y, x); + }, + closePath: function() { + this._context.closePath(); + }, + lineTo: function(x, y) { + this._context.lineTo(y, x); + }, + bezierCurveTo: function(x1, y1, x2, y2, x, y) { + this._context.bezierCurveTo(y1, x1, y2, x2, y, x); + } +}; +function monotoneX(context) { + return new MonotoneX(context); +} +function monotoneY(context) { + return new MonotoneY(context); +} +function Natural(context) { + this._context = context; +} +Natural.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = []; + this._y = []; + }, + lineEnd: function() { + var x = this._x, y = this._y, n = x.length; + if (n) { + this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]); + if (n === 2) { + this._context.lineTo(x[1], y[1]); + } else { + var px = controlPoints(x), py = controlPoints(y); + for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) { + this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]); + } + } + } + if (this._line || this._line !== 0 && n === 1) + this._context.closePath(); + this._line = 1 - this._line; + this._x = this._y = null; + }, + point: function(x, y) { + this._x.push(+x); + this._y.push(+y); + } +}; +function controlPoints(x) { + var i, n = x.length - 1, m, a = new Array(n), b = new Array(n), r = new Array(n); + a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1]; + for (i = 1; i < n - 1; ++i) + a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1]; + a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n]; + for (i = 1; i < n; ++i) + m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1]; + a[n - 1] = r[n - 1] / b[n - 1]; + for (i = n - 2; i >= 0; --i) + a[i] = (r[i] - a[i + 1]) / b[i]; + b[n - 1] = (x[n] + a[n - 1]) / 2; + for (i = 0; i < n - 1; ++i) + b[i] = 2 * x[i + 1] - a[i + 1]; + return [a, b]; +} +function curveNatural(context) { + return new Natural(context); +} +function Step(context, t) { + this._context = context; + this._t = t; +} +Step.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = this._y = NaN; + this._point = 0; + }, + lineEnd: function() { + if (0 < this._t && this._t < 1 && this._point === 2) + this._context.lineTo(this._x, this._y); + if (this._line || this._line !== 0 && this._point === 1) + this._context.closePath(); + if (this._line >= 0) + this._t = 1 - this._t, this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); + break; + case 1: + this._point = 2; + default: { + if (this._t <= 0) { + this._context.lineTo(this._x, y); + this._context.lineTo(x, y); + } else { + var x1 = this._x * (1 - this._t) + x * this._t; + this._context.lineTo(x1, this._y); + this._context.lineTo(x1, y); + } + break; + } + } + this._x = x, this._y = y; + } +}; +function curveStep(context) { + return new Step(context, 0.5); +} +function stepBefore(context) { + return new Step(context, 0); +} +function stepAfter(context) { + return new Step(context, 1); +} +function Transform(k, x, y) { + this.k = k; + this.x = x; + this.y = y; +} +Transform.prototype = { + constructor: Transform, + scale: function(k) { + return k === 1 ? this : new Transform(this.k * k, this.x, this.y); + }, + translate: function(x, y) { + return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y); + }, + apply: function(point2) { + return [point2[0] * this.k + this.x, point2[1] * this.k + this.y]; + }, + applyX: function(x) { + return x * this.k + this.x; + }, + applyY: function(y) { + return y * this.k + this.y; + }, + invert: function(location) { + return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k]; + }, + invertX: function(x) { + return (x - this.x) / this.k; + }, + invertY: function(y) { + return (y - this.y) / this.k; + }, + rescaleX: function(x) { + return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x)); + }, + rescaleY: function(y) { + return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y)); + }, + toString: function() { + return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")"; + } +}; +Transform.prototype; +/*! @license DOMPurify 3.0.9 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.9/LICENSE */ +const { + entries, + setPrototypeOf, + isFrozen, + getPrototypeOf, + getOwnPropertyDescriptor +} = Object; +let { + freeze, + seal, + create +} = Object; +let { + apply: apply$1, + construct +} = typeof Reflect !== "undefined" && Reflect; +if (!freeze) { + freeze = function freeze2(x) { + return x; + }; +} +if (!seal) { + seal = function seal2(x) { + return x; + }; +} +if (!apply$1) { + apply$1 = function apply2(fun, thisValue, args) { + return fun.apply(thisValue, args); + }; +} +if (!construct) { + construct = function construct2(Func, args) { + return new Func(...args); + }; +} +const arrayForEach = unapply(Array.prototype.forEach); +const arrayPop = unapply(Array.prototype.pop); +const arrayPush = unapply(Array.prototype.push); +const stringToLowerCase = unapply(String.prototype.toLowerCase); +const stringToString = unapply(String.prototype.toString); +const stringMatch = unapply(String.prototype.match); +const stringReplace = unapply(String.prototype.replace); +const stringIndexOf = unapply(String.prototype.indexOf); +const stringTrim = unapply(String.prototype.trim); +const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty); +const regExpTest = unapply(RegExp.prototype.test); +const typeErrorCreate = unconstruct(TypeError); +function unapply(func) { + return function(thisArg) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + return apply$1(func, thisArg, args); + }; +} +function unconstruct(func) { + return function() { + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + return construct(func, args); + }; +} +function addToSet(set2, array2) { + let transformCaseFunc = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : stringToLowerCase; + if (setPrototypeOf) { + setPrototypeOf(set2, null); + } + let l = array2.length; + while (l--) { + let element = array2[l]; + if (typeof element === "string") { + const lcElement = transformCaseFunc(element); + if (lcElement !== element) { + if (!isFrozen(array2)) { + array2[l] = lcElement; + } + element = lcElement; + } + } + set2[element] = true; + } + return set2; +} +function cleanArray(array2) { + for (let index = 0; index < array2.length; index++) { + const isPropertyExist = objectHasOwnProperty(array2, index); + if (!isPropertyExist) { + array2[index] = null; + } + } + return array2; +} +function clone(object) { + const newObject = create(null); + for (const [property, value] of entries(object)) { + const isPropertyExist = objectHasOwnProperty(object, property); + if (isPropertyExist) { + if (Array.isArray(value)) { + newObject[property] = cleanArray(value); + } else if (value && typeof value === "object" && value.constructor === Object) { + newObject[property] = clone(value); + } else { + newObject[property] = value; + } + } + } + return newObject; +} +function lookupGetter(object, prop) { + while (object !== null) { + const desc = getOwnPropertyDescriptor(object, prop); + if (desc) { + if (desc.get) { + return unapply(desc.get); + } + if (typeof desc.value === "function") { + return unapply(desc.value); + } + } + object = getPrototypeOf(object); + } + function fallbackValue() { + return null; + } + return fallbackValue; +} +const html$1 = freeze(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]); +const svg$1 = freeze(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]); +const svgFilters = freeze(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]); +const svgDisallowed = freeze(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]); +const mathMl$1 = freeze(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]); +const mathMlDisallowed = freeze(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]); +const text = freeze(["#text"]); +const html = freeze(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "xmlns", "slot"]); +const svg = freeze(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]); +const mathMl = freeze(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]); +const xml = freeze(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]); +const MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm); +const ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm); +const TMPLIT_EXPR = seal(/\${[\w\W]*}/gm); +const DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]/); +const ARIA_ATTR = seal(/^aria-[\-\w]+$/); +const IS_ALLOWED_URI = seal( + /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i + // eslint-disable-line no-useless-escape +); +const IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i); +const ATTR_WHITESPACE = seal( + /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g + // eslint-disable-line no-control-regex +); +const DOCTYPE_NAME = seal(/^html$/i); +var EXPRESSIONS = /* @__PURE__ */ Object.freeze({ + __proto__: null, + MUSTACHE_EXPR, + ERB_EXPR, + TMPLIT_EXPR, + DATA_ATTR, + ARIA_ATTR, + IS_ALLOWED_URI, + IS_SCRIPT_OR_DATA, + ATTR_WHITESPACE, + DOCTYPE_NAME +}); +const getGlobal = function getGlobal2() { + return typeof window === "undefined" ? null : window; +}; +const _createTrustedTypesPolicy = function _createTrustedTypesPolicy2(trustedTypes, purifyHostElement) { + if (typeof trustedTypes !== "object" || typeof trustedTypes.createPolicy !== "function") { + return null; + } + let suffix = null; + const ATTR_NAME = "data-tt-policy-suffix"; + if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) { + suffix = purifyHostElement.getAttribute(ATTR_NAME); + } + const policyName = "dompurify" + (suffix ? "#" + suffix : ""); + try { + return trustedTypes.createPolicy(policyName, { + createHTML(html2) { + return html2; + }, + createScriptURL(scriptUrl) { + return scriptUrl; + } + }); + } catch (_2) { + console.warn("TrustedTypes policy " + policyName + " could not be created."); + return null; + } +}; +function createDOMPurify() { + let window2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal(); + const DOMPurify = (root2) => createDOMPurify(root2); + DOMPurify.version = "3.0.9"; + DOMPurify.removed = []; + if (!window2 || !window2.document || window2.document.nodeType !== 9) { + DOMPurify.isSupported = false; + return DOMPurify; + } + let { + document: document2 + } = window2; + const originalDocument = document2; + const currentScript = originalDocument.currentScript; + const { + DocumentFragment, + HTMLTemplateElement, + Node, + Element, + NodeFilter, + NamedNodeMap = window2.NamedNodeMap || window2.MozNamedAttrMap, + HTMLFormElement, + DOMParser, + trustedTypes + } = window2; + const ElementPrototype = Element.prototype; + const cloneNode = lookupGetter(ElementPrototype, "cloneNode"); + const getNextSibling = lookupGetter(ElementPrototype, "nextSibling"); + const getChildNodes = lookupGetter(ElementPrototype, "childNodes"); + const getParentNode = lookupGetter(ElementPrototype, "parentNode"); + if (typeof HTMLTemplateElement === "function") { + const template = document2.createElement("template"); + if (template.content && template.content.ownerDocument) { + document2 = template.content.ownerDocument; + } + } + let trustedTypesPolicy; + let emptyHTML = ""; + const { + implementation, + createNodeIterator, + createDocumentFragment, + getElementsByTagName + } = document2; + const { + importNode + } = originalDocument; + let hooks = {}; + DOMPurify.isSupported = typeof entries === "function" && typeof getParentNode === "function" && implementation && implementation.createHTMLDocument !== void 0; + const { + MUSTACHE_EXPR: MUSTACHE_EXPR2, + ERB_EXPR: ERB_EXPR2, + TMPLIT_EXPR: TMPLIT_EXPR2, + DATA_ATTR: DATA_ATTR2, + ARIA_ATTR: ARIA_ATTR2, + IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA2, + ATTR_WHITESPACE: ATTR_WHITESPACE2 + } = EXPRESSIONS; + let { + IS_ALLOWED_URI: IS_ALLOWED_URI$1 + } = EXPRESSIONS; + let ALLOWED_TAGS = null; + const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]); + let ALLOWED_ATTR = null; + const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]); + let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, { + tagNameCheck: { + writable: true, + configurable: false, + enumerable: true, + value: null + }, + attributeNameCheck: { + writable: true, + configurable: false, + enumerable: true, + value: null + }, + allowCustomizedBuiltInElements: { + writable: true, + configurable: false, + enumerable: true, + value: false + } + })); + let FORBID_TAGS = null; + let FORBID_ATTR = null; + let ALLOW_ARIA_ATTR = true; + let ALLOW_DATA_ATTR = true; + let ALLOW_UNKNOWN_PROTOCOLS = false; + let ALLOW_SELF_CLOSE_IN_ATTR = true; + let SAFE_FOR_TEMPLATES = false; + let WHOLE_DOCUMENT = false; + let SET_CONFIG = false; + let FORCE_BODY = false; + let RETURN_DOM = false; + let RETURN_DOM_FRAGMENT = false; + let RETURN_TRUSTED_TYPE = false; + let SANITIZE_DOM = true; + let SANITIZE_NAMED_PROPS = false; + const SANITIZE_NAMED_PROPS_PREFIX = "user-content-"; + let KEEP_CONTENT = true; + let IN_PLACE = false; + let USE_PROFILES = {}; + let FORBID_CONTENTS = null; + const DEFAULT_FORBID_CONTENTS = addToSet({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]); + let DATA_URI_TAGS = null; + const DEFAULT_DATA_URI_TAGS = addToSet({}, ["audio", "video", "img", "source", "image", "track"]); + let URI_SAFE_ATTRIBUTES = null; + const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]); + const MATHML_NAMESPACE = "http://www.w3.org/1998/Math/MathML"; + const SVG_NAMESPACE = "http://www.w3.org/2000/svg"; + const HTML_NAMESPACE = "http://www.w3.org/1999/xhtml"; + let NAMESPACE = HTML_NAMESPACE; + let IS_EMPTY_INPUT = false; + let ALLOWED_NAMESPACES = null; + const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString); + let PARSER_MEDIA_TYPE = null; + const SUPPORTED_PARSER_MEDIA_TYPES = ["application/xhtml+xml", "text/html"]; + const DEFAULT_PARSER_MEDIA_TYPE = "text/html"; + let transformCaseFunc = null; + let CONFIG = null; + const formElement = document2.createElement("form"); + const isRegexOrFunction = function isRegexOrFunction2(testValue) { + return testValue instanceof RegExp || testValue instanceof Function; + }; + const _parseConfig = function _parseConfig2() { + let cfg = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + if (CONFIG && CONFIG === cfg) { + return; + } + if (!cfg || typeof cfg !== "object") { + cfg = {}; + } + cfg = clone(cfg); + PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes + SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE; + transformCaseFunc = PARSER_MEDIA_TYPE === "application/xhtml+xml" ? stringToString : stringToLowerCase; + ALLOWED_TAGS = objectHasOwnProperty(cfg, "ALLOWED_TAGS") ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS; + ALLOWED_ATTR = objectHasOwnProperty(cfg, "ALLOWED_ATTR") ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR; + ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, "ALLOWED_NAMESPACES") ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES; + URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, "ADD_URI_SAFE_ATTR") ? addToSet( + clone(DEFAULT_URI_SAFE_ATTRIBUTES), + // eslint-disable-line indent + cfg.ADD_URI_SAFE_ATTR, + // eslint-disable-line indent + transformCaseFunc + // eslint-disable-line indent + ) : DEFAULT_URI_SAFE_ATTRIBUTES; + DATA_URI_TAGS = objectHasOwnProperty(cfg, "ADD_DATA_URI_TAGS") ? addToSet( + clone(DEFAULT_DATA_URI_TAGS), + // eslint-disable-line indent + cfg.ADD_DATA_URI_TAGS, + // eslint-disable-line indent + transformCaseFunc + // eslint-disable-line indent + ) : DEFAULT_DATA_URI_TAGS; + FORBID_CONTENTS = objectHasOwnProperty(cfg, "FORBID_CONTENTS") ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS; + FORBID_TAGS = objectHasOwnProperty(cfg, "FORBID_TAGS") ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {}; + FORBID_ATTR = objectHasOwnProperty(cfg, "FORBID_ATTR") ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {}; + USE_PROFILES = objectHasOwnProperty(cfg, "USE_PROFILES") ? cfg.USE_PROFILES : false; + ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; + ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; + ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; + ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; + SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; + WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; + RETURN_DOM = cfg.RETURN_DOM || false; + RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; + RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; + FORCE_BODY = cfg.FORCE_BODY || false; + SANITIZE_DOM = cfg.SANITIZE_DOM !== false; + SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; + KEEP_CONTENT = cfg.KEEP_CONTENT !== false; + IN_PLACE = cfg.IN_PLACE || false; + IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI; + NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE; + CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {}; + if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) { + CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck; + } + if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) { + CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck; + } + if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === "boolean") { + CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements; + } + if (SAFE_FOR_TEMPLATES) { + ALLOW_DATA_ATTR = false; + } + if (RETURN_DOM_FRAGMENT) { + RETURN_DOM = true; + } + if (USE_PROFILES) { + ALLOWED_TAGS = addToSet({}, text); + ALLOWED_ATTR = []; + if (USE_PROFILES.html === true) { + addToSet(ALLOWED_TAGS, html$1); + addToSet(ALLOWED_ATTR, html); + } + if (USE_PROFILES.svg === true) { + addToSet(ALLOWED_TAGS, svg$1); + addToSet(ALLOWED_ATTR, svg); + addToSet(ALLOWED_ATTR, xml); + } + if (USE_PROFILES.svgFilters === true) { + addToSet(ALLOWED_TAGS, svgFilters); + addToSet(ALLOWED_ATTR, svg); + addToSet(ALLOWED_ATTR, xml); + } + if (USE_PROFILES.mathMl === true) { + addToSet(ALLOWED_TAGS, mathMl$1); + addToSet(ALLOWED_ATTR, mathMl); + addToSet(ALLOWED_ATTR, xml); + } + } + if (cfg.ADD_TAGS) { + if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) { + ALLOWED_TAGS = clone(ALLOWED_TAGS); + } + addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc); + } + if (cfg.ADD_ATTR) { + if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) { + ALLOWED_ATTR = clone(ALLOWED_ATTR); + } + addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc); + } + if (cfg.ADD_URI_SAFE_ATTR) { + addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc); + } + if (cfg.FORBID_CONTENTS) { + if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) { + FORBID_CONTENTS = clone(FORBID_CONTENTS); + } + addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc); + } + if (KEEP_CONTENT) { + ALLOWED_TAGS["#text"] = true; + } + if (WHOLE_DOCUMENT) { + addToSet(ALLOWED_TAGS, ["html", "head", "body"]); + } + if (ALLOWED_TAGS.table) { + addToSet(ALLOWED_TAGS, ["tbody"]); + delete FORBID_TAGS.tbody; + } + if (cfg.TRUSTED_TYPES_POLICY) { + if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== "function") { + throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.'); + } + if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== "function") { + throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.'); + } + trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY; + emptyHTML = trustedTypesPolicy.createHTML(""); + } else { + if (trustedTypesPolicy === void 0) { + trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript); + } + if (trustedTypesPolicy !== null && typeof emptyHTML === "string") { + emptyHTML = trustedTypesPolicy.createHTML(""); + } + } + if (freeze) { + freeze(cfg); + } + CONFIG = cfg; + }; + const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ["mi", "mo", "mn", "ms", "mtext"]); + const HTML_INTEGRATION_POINTS = addToSet({}, ["foreignobject", "desc", "title", "annotation-xml"]); + const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ["title", "style", "font", "a", "script"]); + const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]); + const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]); + const _checkValidNamespace = function _checkValidNamespace2(element) { + let parent = getParentNode(element); + if (!parent || !parent.tagName) { + parent = { + namespaceURI: NAMESPACE, + tagName: "template" + }; + } + const tagName = stringToLowerCase(element.tagName); + const parentTagName = stringToLowerCase(parent.tagName); + if (!ALLOWED_NAMESPACES[element.namespaceURI]) { + return false; + } + if (element.namespaceURI === SVG_NAMESPACE) { + if (parent.namespaceURI === HTML_NAMESPACE) { + return tagName === "svg"; + } + if (parent.namespaceURI === MATHML_NAMESPACE) { + return tagName === "svg" && (parentTagName === "annotation-xml" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]); + } + return Boolean(ALL_SVG_TAGS[tagName]); + } + if (element.namespaceURI === MATHML_NAMESPACE) { + if (parent.namespaceURI === HTML_NAMESPACE) { + return tagName === "math"; + } + if (parent.namespaceURI === SVG_NAMESPACE) { + return tagName === "math" && HTML_INTEGRATION_POINTS[parentTagName]; + } + return Boolean(ALL_MATHML_TAGS[tagName]); + } + if (element.namespaceURI === HTML_NAMESPACE) { + if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) { + return false; + } + if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) { + return false; + } + return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]); + } + if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && ALLOWED_NAMESPACES[element.namespaceURI]) { + return true; + } + return false; + }; + const _forceRemove = function _forceRemove2(node2) { + arrayPush(DOMPurify.removed, { + element: node2 + }); + try { + node2.parentNode.removeChild(node2); + } catch (_2) { + node2.remove(); + } + }; + const _removeAttribute = function _removeAttribute2(name, node2) { + try { + arrayPush(DOMPurify.removed, { + attribute: node2.getAttributeNode(name), + from: node2 + }); + } catch (_2) { + arrayPush(DOMPurify.removed, { + attribute: null, + from: node2 + }); + } + node2.removeAttribute(name); + if (name === "is" && !ALLOWED_ATTR[name]) { + if (RETURN_DOM || RETURN_DOM_FRAGMENT) { + try { + _forceRemove(node2); + } catch (_2) { + } + } else { + try { + node2.setAttribute(name, ""); + } catch (_2) { + } + } + } + }; + const _initDocument = function _initDocument2(dirty) { + let doc = null; + let leadingWhitespace = null; + if (FORCE_BODY) { + dirty = "" + dirty; + } else { + const matches = stringMatch(dirty, /^[\r\n\t ]+/); + leadingWhitespace = matches && matches[0]; + } + if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && NAMESPACE === HTML_NAMESPACE) { + dirty = '' + dirty + ""; + } + const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty; + if (NAMESPACE === HTML_NAMESPACE) { + try { + doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE); + } catch (_2) { + } + } + if (!doc || !doc.documentElement) { + doc = implementation.createDocument(NAMESPACE, "template", null); + try { + doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload; + } catch (_2) { + } + } + const body = doc.body || doc.documentElement; + if (dirty && leadingWhitespace) { + body.insertBefore(document2.createTextNode(leadingWhitespace), body.childNodes[0] || null); + } + if (NAMESPACE === HTML_NAMESPACE) { + return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? "html" : "body")[0]; + } + return WHOLE_DOCUMENT ? doc.documentElement : body; + }; + const _createNodeIterator = function _createNodeIterator2(root2) { + return createNodeIterator.call( + root2.ownerDocument || root2, + root2, + // eslint-disable-next-line no-bitwise + NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, + null + ); + }; + const _isClobbered = function _isClobbered2(elm) { + return elm instanceof HTMLFormElement && (typeof elm.nodeName !== "string" || typeof elm.textContent !== "string" || typeof elm.removeChild !== "function" || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== "function" || typeof elm.setAttribute !== "function" || typeof elm.namespaceURI !== "string" || typeof elm.insertBefore !== "function" || typeof elm.hasChildNodes !== "function"); + }; + const _isNode = function _isNode2(object) { + return typeof Node === "function" && object instanceof Node; + }; + const _executeHook = function _executeHook2(entryPoint, currentNode, data) { + if (!hooks[entryPoint]) { + return; + } + arrayForEach(hooks[entryPoint], (hook) => { + hook.call(DOMPurify, currentNode, data, CONFIG); + }); + }; + const _sanitizeElements = function _sanitizeElements2(currentNode) { + let content = null; + _executeHook("beforeSanitizeElements", currentNode, null); + if (_isClobbered(currentNode)) { + _forceRemove(currentNode); + return true; + } + const tagName = transformCaseFunc(currentNode.nodeName); + _executeHook("uponSanitizeElement", currentNode, { + tagName, + allowedTags: ALLOWED_TAGS + }); + if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) { + _forceRemove(currentNode); + return true; + } + if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) { + if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) { + if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) { + return false; + } + if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) { + return false; + } + } + if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) { + const parentNode = getParentNode(currentNode) || currentNode.parentNode; + const childNodes = getChildNodes(currentNode) || currentNode.childNodes; + if (childNodes && parentNode) { + const childCount = childNodes.length; + for (let i = childCount - 1; i >= 0; --i) { + parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode)); + } + } + } + _forceRemove(currentNode); + return true; + } + if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) { + _forceRemove(currentNode); + return true; + } + if ((tagName === "noscript" || tagName === "noembed" || tagName === "noframes") && regExpTest(/<\/no(script|embed|frames)/i, currentNode.innerHTML)) { + _forceRemove(currentNode); + return true; + } + if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) { + content = currentNode.textContent; + arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) => { + content = stringReplace(content, expr, " "); + }); + if (currentNode.textContent !== content) { + arrayPush(DOMPurify.removed, { + element: currentNode.cloneNode() + }); + currentNode.textContent = content; + } + } + _executeHook("afterSanitizeElements", currentNode, null); + return false; + }; + const _isValidAttribute = function _isValidAttribute2(lcTag, lcName, value) { + if (SANITIZE_DOM && (lcName === "id" || lcName === "name") && (value in document2 || value in formElement)) { + return false; + } + if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR2, lcName)) + ; + else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR2, lcName)) + ; + else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) { + if ( + // First condition does a very basic check if a) it's basically a valid custom element tagname AND + // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck + // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck + _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND + // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck + lcName === "is" && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value)) + ) + ; + else { + return false; + } + } else if (URI_SAFE_ATTRIBUTES[lcName]) + ; + else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE2, ""))) + ; + else if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value, "data:") === 0 && DATA_URI_TAGS[lcTag]) + ; + else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA2, stringReplace(value, ATTR_WHITESPACE2, ""))) + ; + else if (value) { + return false; + } else + ; + return true; + }; + const _isBasicCustomElement = function _isBasicCustomElement2(tagName) { + return tagName !== "annotation-xml" && tagName.indexOf("-") > 0; + }; + const _sanitizeAttributes = function _sanitizeAttributes2(currentNode) { + _executeHook("beforeSanitizeAttributes", currentNode, null); + const { + attributes + } = currentNode; + if (!attributes) { + return; + } + const hookEvent = { + attrName: "", + attrValue: "", + keepAttr: true, + allowedAttributes: ALLOWED_ATTR + }; + let l = attributes.length; + while (l--) { + const attr = attributes[l]; + const { + name, + namespaceURI, + value: attrValue + } = attr; + const lcName = transformCaseFunc(name); + let value = name === "value" ? attrValue : stringTrim(attrValue); + hookEvent.attrName = lcName; + hookEvent.attrValue = value; + hookEvent.keepAttr = true; + hookEvent.forceKeepAttr = void 0; + _executeHook("uponSanitizeAttribute", currentNode, hookEvent); + value = hookEvent.attrValue; + if (hookEvent.forceKeepAttr) { + continue; + } + _removeAttribute(name, currentNode); + if (!hookEvent.keepAttr) { + continue; + } + if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value)) { + _removeAttribute(name, currentNode); + continue; + } + if (SAFE_FOR_TEMPLATES) { + arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) => { + value = stringReplace(value, expr, " "); + }); + } + const lcTag = transformCaseFunc(currentNode.nodeName); + if (!_isValidAttribute(lcTag, lcName, value)) { + continue; + } + if (SANITIZE_NAMED_PROPS && (lcName === "id" || lcName === "name")) { + _removeAttribute(name, currentNode); + value = SANITIZE_NAMED_PROPS_PREFIX + value; + } + if (trustedTypesPolicy && typeof trustedTypes === "object" && typeof trustedTypes.getAttributeType === "function") { + if (namespaceURI) + ; + else { + switch (trustedTypes.getAttributeType(lcTag, lcName)) { + case "TrustedHTML": { + value = trustedTypesPolicy.createHTML(value); + break; + } + case "TrustedScriptURL": { + value = trustedTypesPolicy.createScriptURL(value); + break; + } + } + } + } + try { + if (namespaceURI) { + currentNode.setAttributeNS(namespaceURI, name, value); + } else { + currentNode.setAttribute(name, value); + } + arrayPop(DOMPurify.removed); + } catch (_2) { + } + } + _executeHook("afterSanitizeAttributes", currentNode, null); + }; + const _sanitizeShadowDOM = function _sanitizeShadowDOM2(fragment) { + let shadowNode = null; + const shadowIterator = _createNodeIterator(fragment); + _executeHook("beforeSanitizeShadowDOM", fragment, null); + while (shadowNode = shadowIterator.nextNode()) { + _executeHook("uponSanitizeShadowNode", shadowNode, null); + if (_sanitizeElements(shadowNode)) { + continue; + } + if (shadowNode.content instanceof DocumentFragment) { + _sanitizeShadowDOM2(shadowNode.content); + } + _sanitizeAttributes(shadowNode); + } + _executeHook("afterSanitizeShadowDOM", fragment, null); + }; + DOMPurify.sanitize = function(dirty) { + let cfg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + let body = null; + let importedNode = null; + let currentNode = null; + let returnNode = null; + IS_EMPTY_INPUT = !dirty; + if (IS_EMPTY_INPUT) { + dirty = ""; + } + if (typeof dirty !== "string" && !_isNode(dirty)) { + if (typeof dirty.toString === "function") { + dirty = dirty.toString(); + if (typeof dirty !== "string") { + throw typeErrorCreate("dirty is not a string, aborting"); + } + } else { + throw typeErrorCreate("toString is not a function"); + } + } + if (!DOMPurify.isSupported) { + return dirty; + } + if (!SET_CONFIG) { + _parseConfig(cfg); + } + DOMPurify.removed = []; + if (typeof dirty === "string") { + IN_PLACE = false; + } + if (IN_PLACE) { + if (dirty.nodeName) { + const tagName = transformCaseFunc(dirty.nodeName); + if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) { + throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place"); + } + } + } else if (dirty instanceof Node) { + body = _initDocument(""); + importedNode = body.ownerDocument.importNode(dirty, true); + if (importedNode.nodeType === 1 && importedNode.nodeName === "BODY") { + body = importedNode; + } else if (importedNode.nodeName === "HTML") { + body = importedNode; + } else { + body.appendChild(importedNode); + } + } else { + if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes + dirty.indexOf("<") === -1) { + return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty; + } + body = _initDocument(dirty); + if (!body) { + return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : ""; + } + } + if (body && FORCE_BODY) { + _forceRemove(body.firstChild); + } + const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body); + while (currentNode = nodeIterator.nextNode()) { + if (_sanitizeElements(currentNode)) { + continue; + } + if (currentNode.content instanceof DocumentFragment) { + _sanitizeShadowDOM(currentNode.content); + } + _sanitizeAttributes(currentNode); + } + if (IN_PLACE) { + return dirty; + } + if (RETURN_DOM) { + if (RETURN_DOM_FRAGMENT) { + returnNode = createDocumentFragment.call(body.ownerDocument); + while (body.firstChild) { + returnNode.appendChild(body.firstChild); + } + } else { + returnNode = body; + } + if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) { + returnNode = importNode.call(originalDocument, returnNode, true); + } + return returnNode; + } + let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML; + if (WHOLE_DOCUMENT && ALLOWED_TAGS["!doctype"] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) { + serializedHTML = "\n" + serializedHTML; + } + if (SAFE_FOR_TEMPLATES) { + arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) => { + serializedHTML = stringReplace(serializedHTML, expr, " "); + }); + } + return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML; + }; + DOMPurify.setConfig = function() { + let cfg = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + _parseConfig(cfg); + SET_CONFIG = true; + }; + DOMPurify.clearConfig = function() { + CONFIG = null; + SET_CONFIG = false; + }; + DOMPurify.isValidAttribute = function(tag, attr, value) { + if (!CONFIG) { + _parseConfig({}); + } + const lcTag = transformCaseFunc(tag); + const lcName = transformCaseFunc(attr); + return _isValidAttribute(lcTag, lcName, value); + }; + DOMPurify.addHook = function(entryPoint, hookFunction) { + if (typeof hookFunction !== "function") { + return; + } + hooks[entryPoint] = hooks[entryPoint] || []; + arrayPush(hooks[entryPoint], hookFunction); + }; + DOMPurify.removeHook = function(entryPoint) { + if (hooks[entryPoint]) { + return arrayPop(hooks[entryPoint]); + } + }; + DOMPurify.removeHooks = function(entryPoint) { + if (hooks[entryPoint]) { + hooks[entryPoint] = []; + } + }; + DOMPurify.removeAllHooks = function() { + hooks = {}; + }; + return DOMPurify; +} +var purify = createDOMPurify(); +const lineBreakRegex = //gi; +const getRows = (s) => { + if (!s) { + return [""]; + } + const str2 = breakToPlaceholder(s).replace(/\\n/g, "#br#"); + return str2.split("#br#"); +}; +const setupDompurifyHooksIfNotSetup = (() => { + let setup = false; + return () => { + if (!setup) { + setupDompurifyHooks(); + setup = true; + } + }; +})(); +function setupDompurifyHooks() { + const TEMPORARY_ATTRIBUTE = "data-temp-href-target"; + purify.addHook("beforeSanitizeAttributes", (node2) => { + if (node2.tagName === "A" && node2.hasAttribute("target")) { + node2.setAttribute(TEMPORARY_ATTRIBUTE, node2.getAttribute("target") || ""); + } + }); + purify.addHook("afterSanitizeAttributes", (node2) => { + if (node2.tagName === "A" && node2.hasAttribute(TEMPORARY_ATTRIBUTE)) { + node2.setAttribute("target", node2.getAttribute(TEMPORARY_ATTRIBUTE) || ""); + node2.removeAttribute(TEMPORARY_ATTRIBUTE); + if (node2.getAttribute("target") === "_blank") { + node2.setAttribute("rel", "noopener"); + } + } + }); +} +const removeScript = (txt) => { + setupDompurifyHooksIfNotSetup(); + const sanitizedText = purify.sanitize(txt); + return sanitizedText; +}; +const sanitizeMore = (text2, config2) => { + var _a; + if (((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels) !== false) { + const level = config2.securityLevel; + if (level === "antiscript" || level === "strict") { + text2 = removeScript(text2); + } else if (level !== "loose") { + text2 = breakToPlaceholder(text2); + text2 = text2.replace(//g, ">"); + text2 = text2.replace(/=/g, "="); + text2 = placeholderToBreak(text2); + } + } + return text2; +}; +const sanitizeText$2 = (text2, config2) => { + if (!text2) { + return text2; + } + if (config2.dompurifyConfig) { + text2 = purify.sanitize(sanitizeMore(text2, config2), config2.dompurifyConfig).toString(); + } else { + text2 = purify.sanitize(sanitizeMore(text2, config2), { + FORBID_TAGS: ["style"] + }).toString(); + } + return text2; +}; +const sanitizeTextOrArray = (a, config2) => { + if (typeof a === "string") { + return sanitizeText$2(a, config2); + } + return a.flat().map((x) => sanitizeText$2(x, config2)); +}; +const hasBreaks = (text2) => { + return lineBreakRegex.test(text2); +}; +const splitBreaks = (text2) => { + return text2.split(lineBreakRegex); +}; +const placeholderToBreak = (s) => { + return s.replace(/#br#/g, "
"); +}; +const breakToPlaceholder = (s) => { + return s.replace(lineBreakRegex, "#br#"); +}; +const getUrl = (useAbsolute) => { + let url = ""; + if (useAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replaceAll(/\(/g, "\\("); + url = url.replaceAll(/\)/g, "\\)"); + } + return url; +}; +const evaluate = (val) => val === false || ["false", "null", "0"].includes(String(val).trim().toLowerCase()) ? false : true; +const getMax = function(...values) { + const newValues = values.filter((value) => { + return !isNaN(value); + }); + return Math.max(...newValues); +}; +const getMin = function(...values) { + const newValues = values.filter((value) => { + return !isNaN(value); + }); + return Math.min(...newValues); +}; +const parseGenericTypes = function(input) { + const inputSets = input.split(/(,)/); + const output = []; + for (let i = 0; i < inputSets.length; i++) { + let thisSet = inputSets[i]; + if (thisSet === "," && i > 0 && i + 1 < inputSets.length) { + const previousSet = inputSets[i - 1]; + const nextSet = inputSets[i + 1]; + if (shouldCombineSets(previousSet, nextSet)) { + thisSet = previousSet + "," + nextSet; + i++; + output.pop(); + } + } + output.push(processSet(thisSet)); + } + return output.join(""); +}; +const countOccurrence = (string, substring) => { + return Math.max(0, string.split(substring).length - 1); +}; +const shouldCombineSets = (previousSet, nextSet) => { + const prevCount = countOccurrence(previousSet, "~"); + const nextCount = countOccurrence(nextSet, "~"); + return prevCount === 1 && nextCount === 1; +}; +const processSet = (input) => { + const tildeCount = countOccurrence(input, "~"); + let hasStartingTilde = false; + if (tildeCount <= 1) { + return input; + } + if (tildeCount % 2 !== 0 && input.startsWith("~")) { + input = input.substring(1); + hasStartingTilde = true; + } + const chars = [...input]; + let first = chars.indexOf("~"); + let last = chars.lastIndexOf("~"); + while (first !== -1 && last !== -1 && first !== last) { + chars[first] = "<"; + chars[last] = ">"; + first = chars.indexOf("~"); + last = chars.lastIndexOf("~"); + } + if (hasStartingTilde) { + chars.unshift("~"); + } + return chars.join(""); +}; +const isMathMLSupported = () => window.MathMLElement !== void 0; +const katexRegex = /\$\$(.*)\$\$/g; +const hasKatex = (text2) => { + var _a; + return (((_a = text2.match(katexRegex)) == null ? void 0 : _a.length) ?? 0) > 0; +}; +const calculateMathMLDimensions = async (text2, config2) => { + text2 = await renderKatex(text2, config2); + const divElem = document.createElement("div"); + divElem.innerHTML = text2; + divElem.id = "katex-temp"; + divElem.style.visibility = "hidden"; + divElem.style.position = "absolute"; + divElem.style.top = "0"; + const body = document.querySelector("body"); + body == null ? void 0 : body.insertAdjacentElement("beforeend", divElem); + const dim = { width: divElem.clientWidth, height: divElem.clientHeight }; + divElem.remove(); + return dim; +}; +const renderKatex = async (text2, config2) => { + if (!hasKatex(text2)) { + return text2; + } + if (!isMathMLSupported() && !config2.legacyMathML) { + return text2.replace(katexRegex, "MathML is unsupported in this environment."); + } + const { default: katex } = await import("./katex-ffb0e8f1.js"); + return text2.split(lineBreakRegex).map( + (line2) => hasKatex(line2) ? ` +
+ ${line2} +
+ ` : `
${line2}
` + ).join("").replace( + katexRegex, + (_2, c) => katex.renderToString(c, { + throwOnError: true, + displayMode: true, + output: isMathMLSupported() ? "mathml" : "htmlAndMathml" + }).replace(/\n/g, " ").replace(//g, "") + ); +}; +const common$1 = { + getRows, + sanitizeText: sanitizeText$2, + sanitizeTextOrArray, + hasBreaks, + splitBreaks, + lineBreakRegex, + removeScript, + getUrl, + evaluate, + getMax, + getMin +}; +const Channel = { + /* CLAMP */ + min: { + r: 0, + g: 0, + b: 0, + s: 0, + l: 0, + a: 0 + }, + max: { + r: 255, + g: 255, + b: 255, + h: 360, + s: 100, + l: 100, + a: 1 + }, + clamp: { + r: (r) => r >= 255 ? 255 : r < 0 ? 0 : r, + g: (g) => g >= 255 ? 255 : g < 0 ? 0 : g, + b: (b) => b >= 255 ? 255 : b < 0 ? 0 : b, + h: (h) => h % 360, + s: (s) => s >= 100 ? 100 : s < 0 ? 0 : s, + l: (l) => l >= 100 ? 100 : l < 0 ? 0 : l, + a: (a) => a >= 1 ? 1 : a < 0 ? 0 : a + }, + /* CONVERSION */ + //SOURCE: https://planetcalc.com/7779 + toLinear: (c) => { + const n = c / 255; + return c > 0.03928 ? Math.pow((n + 0.055) / 1.055, 2.4) : n / 12.92; + }, + //SOURCE: https://gist.github.com/mjackson/5311256 + hue2rgb: (p, q, t) => { + if (t < 0) + t += 1; + if (t > 1) + t -= 1; + if (t < 1 / 6) + return p + (q - p) * 6 * t; + if (t < 1 / 2) + return q; + if (t < 2 / 3) + return p + (q - p) * (2 / 3 - t) * 6; + return p; + }, + hsl2rgb: ({ h, s, l }, channel2) => { + if (!s) + return l * 2.55; + h /= 360; + s /= 100; + l /= 100; + const q = l < 0.5 ? l * (1 + s) : l + s - l * s; + const p = 2 * l - q; + switch (channel2) { + case "r": + return Channel.hue2rgb(p, q, h + 1 / 3) * 255; + case "g": + return Channel.hue2rgb(p, q, h) * 255; + case "b": + return Channel.hue2rgb(p, q, h - 1 / 3) * 255; + } + }, + rgb2hsl: ({ r, g, b }, channel2) => { + r /= 255; + g /= 255; + b /= 255; + const max2 = Math.max(r, g, b); + const min2 = Math.min(r, g, b); + const l = (max2 + min2) / 2; + if (channel2 === "l") + return l * 100; + if (max2 === min2) + return 0; + const d = max2 - min2; + const s = l > 0.5 ? d / (2 - max2 - min2) : d / (max2 + min2); + if (channel2 === "s") + return s * 100; + switch (max2) { + case r: + return ((g - b) / d + (g < b ? 6 : 0)) * 60; + case g: + return ((b - r) / d + 2) * 60; + case b: + return ((r - g) / d + 4) * 60; + default: + return -1; + } + } +}; +const channel = Channel; +const Lang = { + /* API */ + clamp: (number, lower2, upper) => { + if (lower2 > upper) + return Math.min(lower2, Math.max(upper, number)); + return Math.min(upper, Math.max(lower2, number)); + }, + round: (number) => { + return Math.round(number * 1e10) / 1e10; + } +}; +const lang = Lang; +const Unit = { + /* API */ + dec2hex: (dec) => { + const hex2 = Math.round(dec).toString(16); + return hex2.length > 1 ? hex2 : `0${hex2}`; + } +}; +const unit = Unit; +const Utils = { + channel, + lang, + unit +}; +const _ = Utils; +const DEC2HEX = {}; +for (let i = 0; i <= 255; i++) + DEC2HEX[i] = _.unit.dec2hex(i); +const TYPE = { + ALL: 0, + RGB: 1, + HSL: 2 +}; +class Type { + constructor() { + this.type = TYPE.ALL; + } + /* API */ + get() { + return this.type; + } + set(type2) { + if (this.type && this.type !== type2) + throw new Error("Cannot change both RGB and HSL channels at the same time"); + this.type = type2; + } + reset() { + this.type = TYPE.ALL; + } + is(type2) { + return this.type === type2; + } +} +const Type$2 = Type; +class Channels { + /* CONSTRUCTOR */ + constructor(data, color2) { + this.color = color2; + this.changed = false; + this.data = data; + this.type = new Type$2(); + } + /* API */ + set(data, color2) { + this.color = color2; + this.changed = false; + this.data = data; + this.type.type = TYPE.ALL; + return this; + } + /* HELPERS */ + _ensureHSL() { + const data = this.data; + const { h, s, l } = data; + if (h === void 0) + data.h = _.channel.rgb2hsl(data, "h"); + if (s === void 0) + data.s = _.channel.rgb2hsl(data, "s"); + if (l === void 0) + data.l = _.channel.rgb2hsl(data, "l"); + } + _ensureRGB() { + const data = this.data; + const { r, g, b } = data; + if (r === void 0) + data.r = _.channel.hsl2rgb(data, "r"); + if (g === void 0) + data.g = _.channel.hsl2rgb(data, "g"); + if (b === void 0) + data.b = _.channel.hsl2rgb(data, "b"); + } + /* GETTERS */ + get r() { + const data = this.data; + const r = data.r; + if (!this.type.is(TYPE.HSL) && r !== void 0) + return r; + this._ensureHSL(); + return _.channel.hsl2rgb(data, "r"); + } + get g() { + const data = this.data; + const g = data.g; + if (!this.type.is(TYPE.HSL) && g !== void 0) + return g; + this._ensureHSL(); + return _.channel.hsl2rgb(data, "g"); + } + get b() { + const data = this.data; + const b = data.b; + if (!this.type.is(TYPE.HSL) && b !== void 0) + return b; + this._ensureHSL(); + return _.channel.hsl2rgb(data, "b"); + } + get h() { + const data = this.data; + const h = data.h; + if (!this.type.is(TYPE.RGB) && h !== void 0) + return h; + this._ensureRGB(); + return _.channel.rgb2hsl(data, "h"); + } + get s() { + const data = this.data; + const s = data.s; + if (!this.type.is(TYPE.RGB) && s !== void 0) + return s; + this._ensureRGB(); + return _.channel.rgb2hsl(data, "s"); + } + get l() { + const data = this.data; + const l = data.l; + if (!this.type.is(TYPE.RGB) && l !== void 0) + return l; + this._ensureRGB(); + return _.channel.rgb2hsl(data, "l"); + } + get a() { + return this.data.a; + } + /* SETTERS */ + set r(r) { + this.type.set(TYPE.RGB); + this.changed = true; + this.data.r = r; + } + set g(g) { + this.type.set(TYPE.RGB); + this.changed = true; + this.data.g = g; + } + set b(b) { + this.type.set(TYPE.RGB); + this.changed = true; + this.data.b = b; + } + set h(h) { + this.type.set(TYPE.HSL); + this.changed = true; + this.data.h = h; + } + set s(s) { + this.type.set(TYPE.HSL); + this.changed = true; + this.data.s = s; + } + set l(l) { + this.type.set(TYPE.HSL); + this.changed = true; + this.data.l = l; + } + set a(a) { + this.changed = true; + this.data.a = a; + } +} +const Channels$1 = Channels; +const channels = new Channels$1({ r: 0, g: 0, b: 0, a: 0 }, "transparent"); +const ChannelsReusable = channels; +const Hex = { + /* VARIABLES */ + re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i, + /* API */ + parse: (color2) => { + if (color2.charCodeAt(0) !== 35) + return; + const match = color2.match(Hex.re); + if (!match) + return; + const hex2 = match[1]; + const dec = parseInt(hex2, 16); + const length2 = hex2.length; + const hasAlpha = length2 % 4 === 0; + const isFullLength = length2 > 4; + const multiplier = isFullLength ? 1 : 17; + const bits = isFullLength ? 8 : 4; + const bitsOffset = hasAlpha ? 0 : -1; + const mask = isFullLength ? 255 : 15; + return ChannelsReusable.set({ + r: (dec >> bits * (bitsOffset + 3) & mask) * multiplier, + g: (dec >> bits * (bitsOffset + 2) & mask) * multiplier, + b: (dec >> bits * (bitsOffset + 1) & mask) * multiplier, + a: hasAlpha ? (dec & mask) * multiplier / 255 : 1 + }, color2); + }, + stringify: (channels2) => { + const { r, g, b, a } = channels2; + if (a < 1) { + return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}${DEC2HEX[Math.round(a * 255)]}`; + } else { + return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}`; + } + } +}; +const Hex$1 = Hex; +const HSL = { + /* VARIABLES */ + re: /^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i, + hueRe: /^(.+?)(deg|grad|rad|turn)$/i, + /* HELPERS */ + _hue2deg: (hue2) => { + const match = hue2.match(HSL.hueRe); + if (match) { + const [, number, unit2] = match; + switch (unit2) { + case "grad": + return _.channel.clamp.h(parseFloat(number) * 0.9); + case "rad": + return _.channel.clamp.h(parseFloat(number) * 180 / Math.PI); + case "turn": + return _.channel.clamp.h(parseFloat(number) * 360); + } + } + return _.channel.clamp.h(parseFloat(hue2)); + }, + /* API */ + parse: (color2) => { + const charCode = color2.charCodeAt(0); + if (charCode !== 104 && charCode !== 72) + return; + const match = color2.match(HSL.re); + if (!match) + return; + const [, h, s, l, a, isAlphaPercentage] = match; + return ChannelsReusable.set({ + h: HSL._hue2deg(h), + s: _.channel.clamp.s(parseFloat(s)), + l: _.channel.clamp.l(parseFloat(l)), + a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1 + }, color2); + }, + stringify: (channels2) => { + const { h, s, l, a } = channels2; + if (a < 1) { + return `hsla(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%, ${a})`; + } else { + return `hsl(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%)`; + } + } +}; +const HSL$1 = HSL; +const Keyword = { + /* VARIABLES */ + colors: { + aliceblue: "#f0f8ff", + antiquewhite: "#faebd7", + aqua: "#00ffff", + aquamarine: "#7fffd4", + azure: "#f0ffff", + beige: "#f5f5dc", + bisque: "#ffe4c4", + black: "#000000", + blanchedalmond: "#ffebcd", + blue: "#0000ff", + blueviolet: "#8a2be2", + brown: "#a52a2a", + burlywood: "#deb887", + cadetblue: "#5f9ea0", + chartreuse: "#7fff00", + chocolate: "#d2691e", + coral: "#ff7f50", + cornflowerblue: "#6495ed", + cornsilk: "#fff8dc", + crimson: "#dc143c", + cyanaqua: "#00ffff", + darkblue: "#00008b", + darkcyan: "#008b8b", + darkgoldenrod: "#b8860b", + darkgray: "#a9a9a9", + darkgreen: "#006400", + darkgrey: "#a9a9a9", + darkkhaki: "#bdb76b", + darkmagenta: "#8b008b", + darkolivegreen: "#556b2f", + darkorange: "#ff8c00", + darkorchid: "#9932cc", + darkred: "#8b0000", + darksalmon: "#e9967a", + darkseagreen: "#8fbc8f", + darkslateblue: "#483d8b", + darkslategray: "#2f4f4f", + darkslategrey: "#2f4f4f", + darkturquoise: "#00ced1", + darkviolet: "#9400d3", + deeppink: "#ff1493", + deepskyblue: "#00bfff", + dimgray: "#696969", + dimgrey: "#696969", + dodgerblue: "#1e90ff", + firebrick: "#b22222", + floralwhite: "#fffaf0", + forestgreen: "#228b22", + fuchsia: "#ff00ff", + gainsboro: "#dcdcdc", + ghostwhite: "#f8f8ff", + gold: "#ffd700", + goldenrod: "#daa520", + gray: "#808080", + green: "#008000", + greenyellow: "#adff2f", + grey: "#808080", + honeydew: "#f0fff0", + hotpink: "#ff69b4", + indianred: "#cd5c5c", + indigo: "#4b0082", + ivory: "#fffff0", + khaki: "#f0e68c", + lavender: "#e6e6fa", + lavenderblush: "#fff0f5", + lawngreen: "#7cfc00", + lemonchiffon: "#fffacd", + lightblue: "#add8e6", + lightcoral: "#f08080", + lightcyan: "#e0ffff", + lightgoldenrodyellow: "#fafad2", + lightgray: "#d3d3d3", + lightgreen: "#90ee90", + lightgrey: "#d3d3d3", + lightpink: "#ffb6c1", + lightsalmon: "#ffa07a", + lightseagreen: "#20b2aa", + lightskyblue: "#87cefa", + lightslategray: "#778899", + lightslategrey: "#778899", + lightsteelblue: "#b0c4de", + lightyellow: "#ffffe0", + lime: "#00ff00", + limegreen: "#32cd32", + linen: "#faf0e6", + magenta: "#ff00ff", + maroon: "#800000", + mediumaquamarine: "#66cdaa", + mediumblue: "#0000cd", + mediumorchid: "#ba55d3", + mediumpurple: "#9370db", + mediumseagreen: "#3cb371", + mediumslateblue: "#7b68ee", + mediumspringgreen: "#00fa9a", + mediumturquoise: "#48d1cc", + mediumvioletred: "#c71585", + midnightblue: "#191970", + mintcream: "#f5fffa", + mistyrose: "#ffe4e1", + moccasin: "#ffe4b5", + navajowhite: "#ffdead", + navy: "#000080", + oldlace: "#fdf5e6", + olive: "#808000", + olivedrab: "#6b8e23", + orange: "#ffa500", + orangered: "#ff4500", + orchid: "#da70d6", + palegoldenrod: "#eee8aa", + palegreen: "#98fb98", + paleturquoise: "#afeeee", + palevioletred: "#db7093", + papayawhip: "#ffefd5", + peachpuff: "#ffdab9", + peru: "#cd853f", + pink: "#ffc0cb", + plum: "#dda0dd", + powderblue: "#b0e0e6", + purple: "#800080", + rebeccapurple: "#663399", + red: "#ff0000", + rosybrown: "#bc8f8f", + royalblue: "#4169e1", + saddlebrown: "#8b4513", + salmon: "#fa8072", + sandybrown: "#f4a460", + seagreen: "#2e8b57", + seashell: "#fff5ee", + sienna: "#a0522d", + silver: "#c0c0c0", + skyblue: "#87ceeb", + slateblue: "#6a5acd", + slategray: "#708090", + slategrey: "#708090", + snow: "#fffafa", + springgreen: "#00ff7f", + tan: "#d2b48c", + teal: "#008080", + thistle: "#d8bfd8", + transparent: "#00000000", + turquoise: "#40e0d0", + violet: "#ee82ee", + wheat: "#f5deb3", + white: "#ffffff", + whitesmoke: "#f5f5f5", + yellow: "#ffff00", + yellowgreen: "#9acd32" + }, + /* API */ + parse: (color2) => { + color2 = color2.toLowerCase(); + const hex2 = Keyword.colors[color2]; + if (!hex2) + return; + return Hex$1.parse(hex2); + }, + stringify: (channels2) => { + const hex2 = Hex$1.stringify(channels2); + for (const name in Keyword.colors) { + if (Keyword.colors[name] === hex2) + return name; + } + return; + } +}; +const Keyword$1 = Keyword; +const RGB = { + /* VARIABLES */ + re: /^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i, + /* API */ + parse: (color2) => { + const charCode = color2.charCodeAt(0); + if (charCode !== 114 && charCode !== 82) + return; + const match = color2.match(RGB.re); + if (!match) + return; + const [, r, isRedPercentage, g, isGreenPercentage, b, isBluePercentage, a, isAlphaPercentage] = match; + return ChannelsReusable.set({ + r: _.channel.clamp.r(isRedPercentage ? parseFloat(r) * 2.55 : parseFloat(r)), + g: _.channel.clamp.g(isGreenPercentage ? parseFloat(g) * 2.55 : parseFloat(g)), + b: _.channel.clamp.b(isBluePercentage ? parseFloat(b) * 2.55 : parseFloat(b)), + a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1 + }, color2); + }, + stringify: (channels2) => { + const { r, g, b, a } = channels2; + if (a < 1) { + return `rgba(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)}, ${_.lang.round(a)})`; + } else { + return `rgb(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)})`; + } + } +}; +const RGB$1 = RGB; +const Color = { + /* VARIABLES */ + format: { + keyword: Keyword$1, + hex: Hex$1, + rgb: RGB$1, + rgba: RGB$1, + hsl: HSL$1, + hsla: HSL$1 + }, + /* API */ + parse: (color2) => { + if (typeof color2 !== "string") + return color2; + const channels2 = Hex$1.parse(color2) || RGB$1.parse(color2) || HSL$1.parse(color2) || Keyword$1.parse(color2); + if (channels2) + return channels2; + throw new Error(`Unsupported color format: "${color2}"`); + }, + stringify: (channels2) => { + if (!channels2.changed && channels2.color) + return channels2.color; + if (channels2.type.is(TYPE.HSL) || channels2.data.r === void 0) { + return HSL$1.stringify(channels2); + } else if (channels2.a < 1 || !Number.isInteger(channels2.r) || !Number.isInteger(channels2.g) || !Number.isInteger(channels2.b)) { + return RGB$1.stringify(channels2); + } else { + return Hex$1.stringify(channels2); + } + } +}; +const Color$1 = Color; +const change = (color2, channels2) => { + const ch = Color$1.parse(color2); + for (const c in channels2) { + ch[c] = _.channel.clamp[c](channels2[c]); + } + return Color$1.stringify(ch); +}; +const change$1 = change; +const rgba = (r, g, b = 0, a = 1) => { + if (typeof r !== "number") + return change$1(r, { a: g }); + const channels2 = ChannelsReusable.set({ + r: _.channel.clamp.r(r), + g: _.channel.clamp.g(g), + b: _.channel.clamp.b(b), + a: _.channel.clamp.a(a) + }); + return Color$1.stringify(channels2); +}; +const rgba$1 = rgba; +const luminance = (color2) => { + const { r, g, b } = Color$1.parse(color2); + const luminance2 = 0.2126 * _.channel.toLinear(r) + 0.7152 * _.channel.toLinear(g) + 0.0722 * _.channel.toLinear(b); + return _.lang.round(luminance2); +}; +const luminance$1 = luminance; +const isLight = (color2) => { + return luminance$1(color2) >= 0.5; +}; +const isLight$1 = isLight; +const isDark = (color2) => { + return !isLight$1(color2); +}; +const isDark$1 = isDark; +const adjustChannel = (color2, channel2, amount) => { + const channels2 = Color$1.parse(color2); + const amountCurrent = channels2[channel2]; + const amountNext = _.channel.clamp[channel2](amountCurrent + amount); + if (amountCurrent !== amountNext) + channels2[channel2] = amountNext; + return Color$1.stringify(channels2); +}; +const adjustChannel$1 = adjustChannel; +const lighten = (color2, amount) => { + return adjustChannel$1(color2, "l", amount); +}; +const lighten$1 = lighten; +const darken = (color2, amount) => { + return adjustChannel$1(color2, "l", -amount); +}; +const darken$1 = darken; +const adjust = (color2, channels2) => { + const ch = Color$1.parse(color2); + const changes = {}; + for (const c in channels2) { + if (!channels2[c]) + continue; + changes[c] = ch[c] + channels2[c]; + } + return change$1(color2, changes); +}; +const adjust$1 = adjust; +const mix = (color1, color2, weight = 50) => { + const { r: r1, g: g1, b: b1, a: a1 } = Color$1.parse(color1); + const { r: r2, g: g2, b: b2, a: a2 } = Color$1.parse(color2); + const weightScale = weight / 100; + const weightNormalized = weightScale * 2 - 1; + const alphaDelta = a1 - a2; + const weight1combined = weightNormalized * alphaDelta === -1 ? weightNormalized : (weightNormalized + alphaDelta) / (1 + weightNormalized * alphaDelta); + const weight1 = (weight1combined + 1) / 2; + const weight2 = 1 - weight1; + const r = r1 * weight1 + r2 * weight2; + const g = g1 * weight1 + g2 * weight2; + const b = b1 * weight1 + b2 * weight2; + const a = a1 * weightScale + a2 * (1 - weightScale); + return rgba$1(r, g, b, a); +}; +const mix$1 = mix; +const invert = (color2, weight = 100) => { + const inverse = Color$1.parse(color2); + inverse.r = 255 - inverse.r; + inverse.g = 255 - inverse.g; + inverse.b = 255 - inverse.b; + return mix$1(inverse, color2, weight); +}; +const invert$1 = invert; +const mkBorder = (col, darkMode) => darkMode ? adjust$1(col, { s: -40, l: 10 }) : adjust$1(col, { s: -40, l: -10 }); +const oldAttributeBackgroundColorOdd = "#ffffff"; +const oldAttributeBackgroundColorEven = "#f2f2f2"; +let Theme$4 = class Theme { + constructor() { + this.background = "#f4f4f4"; + this.primaryColor = "#fff4dd"; + this.noteBkgColor = "#fff5ad"; + this.noteTextColor = "#333"; + this.THEME_COLOR_LIMIT = 12; + this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif'; + this.fontSize = "16px"; + } + updateColors() { + var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; + this.primaryTextColor = this.primaryTextColor || (this.darkMode ? "#eee" : "#333"); + this.secondaryColor = this.secondaryColor || adjust$1(this.primaryColor, { h: -120 }); + this.tertiaryColor = this.tertiaryColor || adjust$1(this.primaryColor, { h: 180, l: 5 }); + this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode); + this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode); + this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode); + this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode); + this.noteBkgColor = this.noteBkgColor || "#fff5ad"; + this.noteTextColor = this.noteTextColor || "#333"; + this.secondaryTextColor = this.secondaryTextColor || invert$1(this.secondaryColor); + this.tertiaryTextColor = this.tertiaryTextColor || invert$1(this.tertiaryColor); + this.lineColor = this.lineColor || invert$1(this.background); + this.arrowheadColor = this.arrowheadColor || invert$1(this.background); + this.textColor = this.textColor || this.primaryTextColor; + this.border2 = this.border2 || this.tertiaryBorderColor; + this.nodeBkg = this.nodeBkg || this.primaryColor; + this.mainBkg = this.mainBkg || this.primaryColor; + this.nodeBorder = this.nodeBorder || this.primaryBorderColor; + this.clusterBkg = this.clusterBkg || this.tertiaryColor; + this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor; + this.defaultLinkColor = this.defaultLinkColor || this.lineColor; + this.titleColor = this.titleColor || this.tertiaryTextColor; + this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken$1(this.secondaryColor, 30) : this.secondaryColor); + this.nodeTextColor = this.nodeTextColor || this.primaryTextColor; + this.actorBorder = this.actorBorder || this.primaryBorderColor; + this.actorBkg = this.actorBkg || this.mainBkg; + this.actorTextColor = this.actorTextColor || this.primaryTextColor; + this.actorLineColor = this.actorLineColor || "grey"; + this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg; + this.signalColor = this.signalColor || this.textColor; + this.signalTextColor = this.signalTextColor || this.textColor; + this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder; + this.labelTextColor = this.labelTextColor || this.actorTextColor; + this.loopTextColor = this.loopTextColor || this.actorTextColor; + this.activationBorderColor = this.activationBorderColor || darken$1(this.secondaryColor, 10); + this.activationBkgColor = this.activationBkgColor || this.secondaryColor; + this.sequenceNumberColor = this.sequenceNumberColor || invert$1(this.lineColor); + this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor; + this.altSectionBkgColor = this.altSectionBkgColor || "white"; + this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor; + this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor; + this.excludeBkgColor = this.excludeBkgColor || "#eeeeee"; + this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor; + this.taskBkgColor = this.taskBkgColor || this.primaryColor; + this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor; + this.activeTaskBkgColor = this.activeTaskBkgColor || lighten$1(this.primaryColor, 23); + this.gridColor = this.gridColor || "lightgrey"; + this.doneTaskBkgColor = this.doneTaskBkgColor || "lightgrey"; + this.doneTaskBorderColor = this.doneTaskBorderColor || "grey"; + this.critBorderColor = this.critBorderColor || "#ff8888"; + this.critBkgColor = this.critBkgColor || "red"; + this.todayLineColor = this.todayLineColor || "red"; + this.taskTextColor = this.taskTextColor || this.textColor; + this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor; + this.taskTextLightColor = this.taskTextLightColor || this.textColor; + this.taskTextColor = this.taskTextColor || this.primaryTextColor; + this.taskTextDarkColor = this.taskTextDarkColor || this.textColor; + this.taskTextClickableColor = this.taskTextClickableColor || "#003163"; + this.personBorder = this.personBorder || this.primaryBorderColor; + this.personBkg = this.personBkg || this.mainBkg; + this.transitionColor = this.transitionColor || this.lineColor; + this.transitionLabelColor = this.transitionLabelColor || this.textColor; + this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor; + this.stateBkg = this.stateBkg || this.mainBkg; + this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg; + this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor; + this.altBackground = this.altBackground || this.tertiaryColor; + this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg; + this.compositeBorder = this.compositeBorder || this.nodeBorder; + this.innerEndBackground = this.nodeBorder; + this.errorBkgColor = this.errorBkgColor || this.tertiaryColor; + this.errorTextColor = this.errorTextColor || this.tertiaryTextColor; + this.transitionColor = this.transitionColor || this.lineColor; + this.specialStateColor = this.lineColor; + this.cScale0 = this.cScale0 || this.primaryColor; + this.cScale1 = this.cScale1 || this.secondaryColor; + this.cScale2 = this.cScale2 || this.tertiaryColor; + this.cScale3 = this.cScale3 || adjust$1(this.primaryColor, { h: 30 }); + this.cScale4 = this.cScale4 || adjust$1(this.primaryColor, { h: 60 }); + this.cScale5 = this.cScale5 || adjust$1(this.primaryColor, { h: 90 }); + this.cScale6 = this.cScale6 || adjust$1(this.primaryColor, { h: 120 }); + this.cScale7 = this.cScale7 || adjust$1(this.primaryColor, { h: 150 }); + this.cScale8 = this.cScale8 || adjust$1(this.primaryColor, { h: 210, l: 150 }); + this.cScale9 = this.cScale9 || adjust$1(this.primaryColor, { h: 270 }); + this.cScale10 = this.cScale10 || adjust$1(this.primaryColor, { h: 300 }); + this.cScale11 = this.cScale11 || adjust$1(this.primaryColor, { h: 330 }); + if (this.darkMode) { + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScale" + i] = darken$1(this["cScale" + i], 75); + } + } else { + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScale" + i] = darken$1(this["cScale" + i], 25); + } + } + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleInv" + i] = this["cScaleInv" + i] || invert$1(this["cScale" + i]); + } + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + if (this.darkMode) { + this["cScalePeer" + i] = this["cScalePeer" + i] || lighten$1(this["cScale" + i], 10); + } else { + this["cScalePeer" + i] = this["cScalePeer" + i] || darken$1(this["cScale" + i], 10); + } + } + this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor; + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor; + } + const multiplier = this.darkMode ? -4 : -1; + for (let i = 0; i < 5; i++) { + this["surface" + i] = this["surface" + i] || adjust$1(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i * 3) }); + this["surfacePeer" + i] = this["surfacePeer" + i] || adjust$1(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i * 3) }); + } + this.classText = this.classText || this.textColor; + this.fillType0 = this.fillType0 || this.primaryColor; + this.fillType1 = this.fillType1 || this.secondaryColor; + this.fillType2 = this.fillType2 || adjust$1(this.primaryColor, { h: 64 }); + this.fillType3 = this.fillType3 || adjust$1(this.secondaryColor, { h: 64 }); + this.fillType4 = this.fillType4 || adjust$1(this.primaryColor, { h: -64 }); + this.fillType5 = this.fillType5 || adjust$1(this.secondaryColor, { h: -64 }); + this.fillType6 = this.fillType6 || adjust$1(this.primaryColor, { h: 128 }); + this.fillType7 = this.fillType7 || adjust$1(this.secondaryColor, { h: 128 }); + this.pie1 = this.pie1 || this.primaryColor; + this.pie2 = this.pie2 || this.secondaryColor; + this.pie3 = this.pie3 || this.tertiaryColor; + this.pie4 = this.pie4 || adjust$1(this.primaryColor, { l: -10 }); + this.pie5 = this.pie5 || adjust$1(this.secondaryColor, { l: -10 }); + this.pie6 = this.pie6 || adjust$1(this.tertiaryColor, { l: -10 }); + this.pie7 = this.pie7 || adjust$1(this.primaryColor, { h: 60, l: -10 }); + this.pie8 = this.pie8 || adjust$1(this.primaryColor, { h: -60, l: -10 }); + this.pie9 = this.pie9 || adjust$1(this.primaryColor, { h: 120, l: 0 }); + this.pie10 = this.pie10 || adjust$1(this.primaryColor, { h: 60, l: -20 }); + this.pie11 = this.pie11 || adjust$1(this.primaryColor, { h: -60, l: -20 }); + this.pie12 = this.pie12 || adjust$1(this.primaryColor, { h: 120, l: -10 }); + this.pieTitleTextSize = this.pieTitleTextSize || "25px"; + this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor; + this.pieSectionTextSize = this.pieSectionTextSize || "17px"; + this.pieSectionTextColor = this.pieSectionTextColor || this.textColor; + this.pieLegendTextSize = this.pieLegendTextSize || "17px"; + this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor; + this.pieStrokeColor = this.pieStrokeColor || "black"; + this.pieStrokeWidth = this.pieStrokeWidth || "2px"; + this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px"; + this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black"; + this.pieOpacity = this.pieOpacity || "0.7"; + this.quadrant1Fill = this.quadrant1Fill || this.primaryColor; + this.quadrant2Fill = this.quadrant2Fill || adjust$1(this.primaryColor, { r: 5, g: 5, b: 5 }); + this.quadrant3Fill = this.quadrant3Fill || adjust$1(this.primaryColor, { r: 10, g: 10, b: 10 }); + this.quadrant4Fill = this.quadrant4Fill || adjust$1(this.primaryColor, { r: 15, g: 15, b: 15 }); + this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; + this.quadrant2TextFill = this.quadrant2TextFill || adjust$1(this.primaryTextColor, { r: -5, g: -5, b: -5 }); + this.quadrant3TextFill = this.quadrant3TextFill || adjust$1(this.primaryTextColor, { r: -10, g: -10, b: -10 }); + this.quadrant4TextFill = this.quadrant4TextFill || adjust$1(this.primaryTextColor, { r: -15, g: -15, b: -15 }); + this.quadrantPointFill = this.quadrantPointFill || isDark$1(this.quadrant1Fill) ? lighten$1(this.quadrant1Fill) : darken$1(this.quadrant1Fill); + this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor; + this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor; + this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor; + this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor; + this.xyChart = { + backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, + titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || "#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0" + }; + this.requirementBackground = this.requirementBackground || this.primaryColor; + this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor; + this.requirementBorderSize = this.requirementBorderSize || "1"; + this.requirementTextColor = this.requirementTextColor || this.primaryTextColor; + this.relationColor = this.relationColor || this.lineColor; + this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken$1(this.secondaryColor, 30) : this.secondaryColor); + this.relationLabelColor = this.relationLabelColor || this.actorTextColor; + this.git0 = this.git0 || this.primaryColor; + this.git1 = this.git1 || this.secondaryColor; + this.git2 = this.git2 || this.tertiaryColor; + this.git3 = this.git3 || adjust$1(this.primaryColor, { h: -30 }); + this.git4 = this.git4 || adjust$1(this.primaryColor, { h: -60 }); + this.git5 = this.git5 || adjust$1(this.primaryColor, { h: -90 }); + this.git6 = this.git6 || adjust$1(this.primaryColor, { h: 60 }); + this.git7 = this.git7 || adjust$1(this.primaryColor, { h: 120 }); + if (this.darkMode) { + this.git0 = lighten$1(this.git0, 25); + this.git1 = lighten$1(this.git1, 25); + this.git2 = lighten$1(this.git2, 25); + this.git3 = lighten$1(this.git3, 25); + this.git4 = lighten$1(this.git4, 25); + this.git5 = lighten$1(this.git5, 25); + this.git6 = lighten$1(this.git6, 25); + this.git7 = lighten$1(this.git7, 25); + } else { + this.git0 = darken$1(this.git0, 25); + this.git1 = darken$1(this.git1, 25); + this.git2 = darken$1(this.git2, 25); + this.git3 = darken$1(this.git3, 25); + this.git4 = darken$1(this.git4, 25); + this.git5 = darken$1(this.git5, 25); + this.git6 = darken$1(this.git6, 25); + this.git7 = darken$1(this.git7, 25); + } + this.gitInv0 = this.gitInv0 || invert$1(this.git0); + this.gitInv1 = this.gitInv1 || invert$1(this.git1); + this.gitInv2 = this.gitInv2 || invert$1(this.git2); + this.gitInv3 = this.gitInv3 || invert$1(this.git3); + this.gitInv4 = this.gitInv4 || invert$1(this.git4); + this.gitInv5 = this.gitInv5 || invert$1(this.git5); + this.gitInv6 = this.gitInv6 || invert$1(this.git6); + this.gitInv7 = this.gitInv7 || invert$1(this.git7); + this.branchLabelColor = this.branchLabelColor || (this.darkMode ? "black" : this.labelTextColor); + this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor; + this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor; + this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor; + this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor; + this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor; + this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor; + this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor; + this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor; + this.tagLabelColor = this.tagLabelColor || this.primaryTextColor; + this.tagLabelBackground = this.tagLabelBackground || this.primaryColor; + this.tagLabelBorder = this.tagBorder || this.primaryBorderColor; + this.tagLabelFontSize = this.tagLabelFontSize || "10px"; + this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor; + this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor; + this.commitLabelFontSize = this.commitLabelFontSize || "10px"; + this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd; + this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven; + } + calculate(overrides) { + if (typeof overrides !== "object") { + this.updateColors(); + return; + } + const keys = Object.keys(overrides); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + this.updateColors(); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + } +}; +const getThemeVariables$4 = (userOverrides) => { + const theme2 = new Theme$4(); + theme2.calculate(userOverrides); + return theme2; +}; +let Theme$3 = class Theme2 { + constructor() { + this.background = "#333"; + this.primaryColor = "#1f2020"; + this.secondaryColor = lighten$1(this.primaryColor, 16); + this.tertiaryColor = adjust$1(this.primaryColor, { h: -160 }); + this.primaryBorderColor = invert$1(this.background); + this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode); + this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode); + this.primaryTextColor = invert$1(this.primaryColor); + this.secondaryTextColor = invert$1(this.secondaryColor); + this.tertiaryTextColor = invert$1(this.tertiaryColor); + this.lineColor = invert$1(this.background); + this.textColor = invert$1(this.background); + this.mainBkg = "#1f2020"; + this.secondBkg = "calculated"; + this.mainContrastColor = "lightgrey"; + this.darkTextColor = lighten$1(invert$1("#323D47"), 10); + this.lineColor = "calculated"; + this.border1 = "#81B1DB"; + this.border2 = rgba$1(255, 255, 255, 0.25); + this.arrowheadColor = "calculated"; + this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif'; + this.fontSize = "16px"; + this.labelBackground = "#181818"; + this.textColor = "#ccc"; + this.THEME_COLOR_LIMIT = 12; + this.nodeBkg = "calculated"; + this.nodeBorder = "calculated"; + this.clusterBkg = "calculated"; + this.clusterBorder = "calculated"; + this.defaultLinkColor = "calculated"; + this.titleColor = "#F9FFFE"; + this.edgeLabelBackground = "calculated"; + this.actorBorder = "calculated"; + this.actorBkg = "calculated"; + this.actorTextColor = "calculated"; + this.actorLineColor = "calculated"; + this.signalColor = "calculated"; + this.signalTextColor = "calculated"; + this.labelBoxBkgColor = "calculated"; + this.labelBoxBorderColor = "calculated"; + this.labelTextColor = "calculated"; + this.loopTextColor = "calculated"; + this.noteBorderColor = "calculated"; + this.noteBkgColor = "#fff5ad"; + this.noteTextColor = "calculated"; + this.activationBorderColor = "calculated"; + this.activationBkgColor = "calculated"; + this.sequenceNumberColor = "black"; + this.sectionBkgColor = darken$1("#EAE8D9", 30); + this.altSectionBkgColor = "calculated"; + this.sectionBkgColor2 = "#EAE8D9"; + this.excludeBkgColor = darken$1(this.sectionBkgColor, 10); + this.taskBorderColor = rgba$1(255, 255, 255, 70); + this.taskBkgColor = "calculated"; + this.taskTextColor = "calculated"; + this.taskTextLightColor = "calculated"; + this.taskTextOutsideColor = "calculated"; + this.taskTextClickableColor = "#003163"; + this.activeTaskBorderColor = rgba$1(255, 255, 255, 50); + this.activeTaskBkgColor = "#81B1DB"; + this.gridColor = "calculated"; + this.doneTaskBkgColor = "calculated"; + this.doneTaskBorderColor = "grey"; + this.critBorderColor = "#E83737"; + this.critBkgColor = "#E83737"; + this.taskTextDarkColor = "calculated"; + this.todayLineColor = "#DB5757"; + this.personBorder = this.primaryBorderColor; + this.personBkg = this.mainBkg; + this.labelColor = "calculated"; + this.errorBkgColor = "#a44141"; + this.errorTextColor = "#ddd"; + } + updateColors() { + var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; + this.secondBkg = lighten$1(this.mainBkg, 16); + this.lineColor = this.mainContrastColor; + this.arrowheadColor = this.mainContrastColor; + this.nodeBkg = this.mainBkg; + this.nodeBorder = this.border1; + this.clusterBkg = this.secondBkg; + this.clusterBorder = this.border2; + this.defaultLinkColor = this.lineColor; + this.edgeLabelBackground = lighten$1(this.labelBackground, 25); + this.actorBorder = this.border1; + this.actorBkg = this.mainBkg; + this.actorTextColor = this.mainContrastColor; + this.actorLineColor = this.mainContrastColor; + this.signalColor = this.mainContrastColor; + this.signalTextColor = this.mainContrastColor; + this.labelBoxBkgColor = this.actorBkg; + this.labelBoxBorderColor = this.actorBorder; + this.labelTextColor = this.mainContrastColor; + this.loopTextColor = this.mainContrastColor; + this.noteBorderColor = this.secondaryBorderColor; + this.noteBkgColor = this.secondBkg; + this.noteTextColor = this.secondaryTextColor; + this.activationBorderColor = this.border1; + this.activationBkgColor = this.secondBkg; + this.altSectionBkgColor = this.background; + this.taskBkgColor = lighten$1(this.mainBkg, 23); + this.taskTextColor = this.darkTextColor; + this.taskTextLightColor = this.mainContrastColor; + this.taskTextOutsideColor = this.taskTextLightColor; + this.gridColor = this.mainContrastColor; + this.doneTaskBkgColor = this.mainContrastColor; + this.taskTextDarkColor = this.darkTextColor; + this.transitionColor = this.transitionColor || this.lineColor; + this.transitionLabelColor = this.transitionLabelColor || this.textColor; + this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor; + this.stateBkg = this.stateBkg || this.mainBkg; + this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg; + this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor; + this.altBackground = this.altBackground || "#555"; + this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg; + this.compositeBorder = this.compositeBorder || this.nodeBorder; + this.innerEndBackground = this.primaryBorderColor; + this.specialStateColor = "#f4f4f4"; + this.errorBkgColor = this.errorBkgColor || this.tertiaryColor; + this.errorTextColor = this.errorTextColor || this.tertiaryTextColor; + this.fillType0 = this.primaryColor; + this.fillType1 = this.secondaryColor; + this.fillType2 = adjust$1(this.primaryColor, { h: 64 }); + this.fillType3 = adjust$1(this.secondaryColor, { h: 64 }); + this.fillType4 = adjust$1(this.primaryColor, { h: -64 }); + this.fillType5 = adjust$1(this.secondaryColor, { h: -64 }); + this.fillType6 = adjust$1(this.primaryColor, { h: 128 }); + this.fillType7 = adjust$1(this.secondaryColor, { h: 128 }); + this.cScale1 = this.cScale1 || "#0b0000"; + this.cScale2 = this.cScale2 || "#4d1037"; + this.cScale3 = this.cScale3 || "#3f5258"; + this.cScale4 = this.cScale4 || "#4f2f1b"; + this.cScale5 = this.cScale5 || "#6e0a0a"; + this.cScale6 = this.cScale6 || "#3b0048"; + this.cScale7 = this.cScale7 || "#995a01"; + this.cScale8 = this.cScale8 || "#154706"; + this.cScale9 = this.cScale9 || "#161722"; + this.cScale10 = this.cScale10 || "#00296f"; + this.cScale11 = this.cScale11 || "#01629c"; + this.cScale12 = this.cScale12 || "#010029"; + this.cScale0 = this.cScale0 || this.primaryColor; + this.cScale1 = this.cScale1 || this.secondaryColor; + this.cScale2 = this.cScale2 || this.tertiaryColor; + this.cScale3 = this.cScale3 || adjust$1(this.primaryColor, { h: 30 }); + this.cScale4 = this.cScale4 || adjust$1(this.primaryColor, { h: 60 }); + this.cScale5 = this.cScale5 || adjust$1(this.primaryColor, { h: 90 }); + this.cScale6 = this.cScale6 || adjust$1(this.primaryColor, { h: 120 }); + this.cScale7 = this.cScale7 || adjust$1(this.primaryColor, { h: 150 }); + this.cScale8 = this.cScale8 || adjust$1(this.primaryColor, { h: 210 }); + this.cScale9 = this.cScale9 || adjust$1(this.primaryColor, { h: 270 }); + this.cScale10 = this.cScale10 || adjust$1(this.primaryColor, { h: 300 }); + this.cScale11 = this.cScale11 || adjust$1(this.primaryColor, { h: 330 }); + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleInv" + i] = this["cScaleInv" + i] || invert$1(this["cScale" + i]); + } + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScalePeer" + i] = this["cScalePeer" + i] || lighten$1(this["cScale" + i], 10); + } + for (let i = 0; i < 5; i++) { + this["surface" + i] = this["surface" + i] || adjust$1(this.mainBkg, { h: 30, s: -30, l: -(-10 + i * 4) }); + this["surfacePeer" + i] = this["surfacePeer" + i] || adjust$1(this.mainBkg, { h: 30, s: -30, l: -(-7 + i * 4) }); + } + this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor); + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor; + } + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["pie" + i] = this["cScale" + i]; + } + this.pieTitleTextSize = this.pieTitleTextSize || "25px"; + this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor; + this.pieSectionTextSize = this.pieSectionTextSize || "17px"; + this.pieSectionTextColor = this.pieSectionTextColor || this.textColor; + this.pieLegendTextSize = this.pieLegendTextSize || "17px"; + this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor; + this.pieStrokeColor = this.pieStrokeColor || "black"; + this.pieStrokeWidth = this.pieStrokeWidth || "2px"; + this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px"; + this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black"; + this.pieOpacity = this.pieOpacity || "0.7"; + this.quadrant1Fill = this.quadrant1Fill || this.primaryColor; + this.quadrant2Fill = this.quadrant2Fill || adjust$1(this.primaryColor, { r: 5, g: 5, b: 5 }); + this.quadrant3Fill = this.quadrant3Fill || adjust$1(this.primaryColor, { r: 10, g: 10, b: 10 }); + this.quadrant4Fill = this.quadrant4Fill || adjust$1(this.primaryColor, { r: 15, g: 15, b: 15 }); + this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; + this.quadrant2TextFill = this.quadrant2TextFill || adjust$1(this.primaryTextColor, { r: -5, g: -5, b: -5 }); + this.quadrant3TextFill = this.quadrant3TextFill || adjust$1(this.primaryTextColor, { r: -10, g: -10, b: -10 }); + this.quadrant4TextFill = this.quadrant4TextFill || adjust$1(this.primaryTextColor, { r: -15, g: -15, b: -15 }); + this.quadrantPointFill = this.quadrantPointFill || isDark$1(this.quadrant1Fill) ? lighten$1(this.quadrant1Fill) : darken$1(this.quadrant1Fill); + this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor; + this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor; + this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor; + this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor; + this.xyChart = { + backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, + titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || "#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22" + }; + this.classText = this.primaryTextColor; + this.requirementBackground = this.requirementBackground || this.primaryColor; + this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor; + this.requirementBorderSize = this.requirementBorderSize || "1"; + this.requirementTextColor = this.requirementTextColor || this.primaryTextColor; + this.relationColor = this.relationColor || this.lineColor; + this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken$1(this.secondaryColor, 30) : this.secondaryColor); + this.relationLabelColor = this.relationLabelColor || this.actorTextColor; + this.git0 = lighten$1(this.secondaryColor, 20); + this.git1 = lighten$1(this.pie2 || this.secondaryColor, 20); + this.git2 = lighten$1(this.pie3 || this.tertiaryColor, 20); + this.git3 = lighten$1(this.pie4 || adjust$1(this.primaryColor, { h: -30 }), 20); + this.git4 = lighten$1(this.pie5 || adjust$1(this.primaryColor, { h: -60 }), 20); + this.git5 = lighten$1(this.pie6 || adjust$1(this.primaryColor, { h: -90 }), 10); + this.git6 = lighten$1(this.pie7 || adjust$1(this.primaryColor, { h: 60 }), 10); + this.git7 = lighten$1(this.pie8 || adjust$1(this.primaryColor, { h: 120 }), 20); + this.gitInv0 = this.gitInv0 || invert$1(this.git0); + this.gitInv1 = this.gitInv1 || invert$1(this.git1); + this.gitInv2 = this.gitInv2 || invert$1(this.git2); + this.gitInv3 = this.gitInv3 || invert$1(this.git3); + this.gitInv4 = this.gitInv4 || invert$1(this.git4); + this.gitInv5 = this.gitInv5 || invert$1(this.git5); + this.gitInv6 = this.gitInv6 || invert$1(this.git6); + this.gitInv7 = this.gitInv7 || invert$1(this.git7); + this.gitBranchLabel0 = this.gitBranchLabel0 || invert$1(this.labelTextColor); + this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor; + this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor; + this.gitBranchLabel3 = this.gitBranchLabel3 || invert$1(this.labelTextColor); + this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor; + this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor; + this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor; + this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor; + this.tagLabelColor = this.tagLabelColor || this.primaryTextColor; + this.tagLabelBackground = this.tagLabelBackground || this.primaryColor; + this.tagLabelBorder = this.tagBorder || this.primaryBorderColor; + this.tagLabelFontSize = this.tagLabelFontSize || "10px"; + this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor; + this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor; + this.commitLabelFontSize = this.commitLabelFontSize || "10px"; + this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten$1(this.background, 12); + this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten$1(this.background, 2); + } + calculate(overrides) { + if (typeof overrides !== "object") { + this.updateColors(); + return; + } + const keys = Object.keys(overrides); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + this.updateColors(); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + } +}; +const getThemeVariables$3 = (userOverrides) => { + const theme2 = new Theme$3(); + theme2.calculate(userOverrides); + return theme2; +}; +let Theme$2 = class Theme3 { + constructor() { + this.background = "#f4f4f4"; + this.primaryColor = "#ECECFF"; + this.secondaryColor = adjust$1(this.primaryColor, { h: 120 }); + this.secondaryColor = "#ffffde"; + this.tertiaryColor = adjust$1(this.primaryColor, { h: -160 }); + this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode); + this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode); + this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode); + this.primaryTextColor = invert$1(this.primaryColor); + this.secondaryTextColor = invert$1(this.secondaryColor); + this.tertiaryTextColor = invert$1(this.tertiaryColor); + this.lineColor = invert$1(this.background); + this.textColor = invert$1(this.background); + this.background = "white"; + this.mainBkg = "#ECECFF"; + this.secondBkg = "#ffffde"; + this.lineColor = "#333333"; + this.border1 = "#9370DB"; + this.border2 = "#aaaa33"; + this.arrowheadColor = "#333333"; + this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif'; + this.fontSize = "16px"; + this.labelBackground = "#e8e8e8"; + this.textColor = "#333"; + this.THEME_COLOR_LIMIT = 12; + this.nodeBkg = "calculated"; + this.nodeBorder = "calculated"; + this.clusterBkg = "calculated"; + this.clusterBorder = "calculated"; + this.defaultLinkColor = "calculated"; + this.titleColor = "calculated"; + this.edgeLabelBackground = "calculated"; + this.actorBorder = "calculated"; + this.actorBkg = "calculated"; + this.actorTextColor = "black"; + this.actorLineColor = "grey"; + this.signalColor = "calculated"; + this.signalTextColor = "calculated"; + this.labelBoxBkgColor = "calculated"; + this.labelBoxBorderColor = "calculated"; + this.labelTextColor = "calculated"; + this.loopTextColor = "calculated"; + this.noteBorderColor = "calculated"; + this.noteBkgColor = "#fff5ad"; + this.noteTextColor = "calculated"; + this.activationBorderColor = "#666"; + this.activationBkgColor = "#f4f4f4"; + this.sequenceNumberColor = "white"; + this.sectionBkgColor = "calculated"; + this.altSectionBkgColor = "calculated"; + this.sectionBkgColor2 = "calculated"; + this.excludeBkgColor = "#eeeeee"; + this.taskBorderColor = "calculated"; + this.taskBkgColor = "calculated"; + this.taskTextLightColor = "calculated"; + this.taskTextColor = this.taskTextLightColor; + this.taskTextDarkColor = "calculated"; + this.taskTextOutsideColor = this.taskTextDarkColor; + this.taskTextClickableColor = "calculated"; + this.activeTaskBorderColor = "calculated"; + this.activeTaskBkgColor = "calculated"; + this.gridColor = "calculated"; + this.doneTaskBkgColor = "calculated"; + this.doneTaskBorderColor = "calculated"; + this.critBorderColor = "calculated"; + this.critBkgColor = "calculated"; + this.todayLineColor = "calculated"; + this.sectionBkgColor = rgba$1(102, 102, 255, 0.49); + this.altSectionBkgColor = "white"; + this.sectionBkgColor2 = "#fff400"; + this.taskBorderColor = "#534fbc"; + this.taskBkgColor = "#8a90dd"; + this.taskTextLightColor = "white"; + this.taskTextColor = "calculated"; + this.taskTextDarkColor = "black"; + this.taskTextOutsideColor = "calculated"; + this.taskTextClickableColor = "#003163"; + this.activeTaskBorderColor = "#534fbc"; + this.activeTaskBkgColor = "#bfc7ff"; + this.gridColor = "lightgrey"; + this.doneTaskBkgColor = "lightgrey"; + this.doneTaskBorderColor = "grey"; + this.critBorderColor = "#ff8888"; + this.critBkgColor = "red"; + this.todayLineColor = "red"; + this.personBorder = this.primaryBorderColor; + this.personBkg = this.mainBkg; + this.labelColor = "black"; + this.errorBkgColor = "#552222"; + this.errorTextColor = "#552222"; + this.updateColors(); + } + updateColors() { + var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; + this.cScale0 = this.cScale0 || this.primaryColor; + this.cScale1 = this.cScale1 || this.secondaryColor; + this.cScale2 = this.cScale2 || this.tertiaryColor; + this.cScale3 = this.cScale3 || adjust$1(this.primaryColor, { h: 30 }); + this.cScale4 = this.cScale4 || adjust$1(this.primaryColor, { h: 60 }); + this.cScale5 = this.cScale5 || adjust$1(this.primaryColor, { h: 90 }); + this.cScale6 = this.cScale6 || adjust$1(this.primaryColor, { h: 120 }); + this.cScale7 = this.cScale7 || adjust$1(this.primaryColor, { h: 150 }); + this.cScale8 = this.cScale8 || adjust$1(this.primaryColor, { h: 210 }); + this.cScale9 = this.cScale9 || adjust$1(this.primaryColor, { h: 270 }); + this.cScale10 = this.cScale10 || adjust$1(this.primaryColor, { h: 300 }); + this.cScale11 = this.cScale11 || adjust$1(this.primaryColor, { h: 330 }); + this["cScalePeer1"] = this["cScalePeer1"] || darken$1(this.secondaryColor, 45); + this["cScalePeer2"] = this["cScalePeer2"] || darken$1(this.tertiaryColor, 40); + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScale" + i] = darken$1(this["cScale" + i], 10); + this["cScalePeer" + i] = this["cScalePeer" + i] || darken$1(this["cScale" + i], 25); + } + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleInv" + i] = this["cScaleInv" + i] || adjust$1(this["cScale" + i], { h: 180 }); + } + for (let i = 0; i < 5; i++) { + this["surface" + i] = this["surface" + i] || adjust$1(this.mainBkg, { h: 30, l: -(5 + i * 5) }); + this["surfacePeer" + i] = this["surfacePeer" + i] || adjust$1(this.mainBkg, { h: 30, l: -(7 + i * 5) }); + } + this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor; + if (this.labelTextColor !== "calculated") { + this.cScaleLabel0 = this.cScaleLabel0 || invert$1(this.labelTextColor); + this.cScaleLabel3 = this.cScaleLabel3 || invert$1(this.labelTextColor); + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.labelTextColor; + } + } + this.nodeBkg = this.mainBkg; + this.nodeBorder = this.border1; + this.clusterBkg = this.secondBkg; + this.clusterBorder = this.border2; + this.defaultLinkColor = this.lineColor; + this.titleColor = this.textColor; + this.edgeLabelBackground = this.labelBackground; + this.actorBorder = lighten$1(this.border1, 23); + this.actorBkg = this.mainBkg; + this.labelBoxBkgColor = this.actorBkg; + this.signalColor = this.textColor; + this.signalTextColor = this.textColor; + this.labelBoxBorderColor = this.actorBorder; + this.labelTextColor = this.actorTextColor; + this.loopTextColor = this.actorTextColor; + this.noteBorderColor = this.border2; + this.noteTextColor = this.actorTextColor; + this.taskTextColor = this.taskTextLightColor; + this.taskTextOutsideColor = this.taskTextDarkColor; + this.transitionColor = this.transitionColor || this.lineColor; + this.transitionLabelColor = this.transitionLabelColor || this.textColor; + this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor; + this.stateBkg = this.stateBkg || this.mainBkg; + this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg; + this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor; + this.altBackground = this.altBackground || "#f0f0f0"; + this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg; + this.compositeBorder = this.compositeBorder || this.nodeBorder; + this.innerEndBackground = this.nodeBorder; + this.specialStateColor = this.lineColor; + this.errorBkgColor = this.errorBkgColor || this.tertiaryColor; + this.errorTextColor = this.errorTextColor || this.tertiaryTextColor; + this.transitionColor = this.transitionColor || this.lineColor; + this.classText = this.primaryTextColor; + this.fillType0 = this.primaryColor; + this.fillType1 = this.secondaryColor; + this.fillType2 = adjust$1(this.primaryColor, { h: 64 }); + this.fillType3 = adjust$1(this.secondaryColor, { h: 64 }); + this.fillType4 = adjust$1(this.primaryColor, { h: -64 }); + this.fillType5 = adjust$1(this.secondaryColor, { h: -64 }); + this.fillType6 = adjust$1(this.primaryColor, { h: 128 }); + this.fillType7 = adjust$1(this.secondaryColor, { h: 128 }); + this.pie1 = this.pie1 || this.primaryColor; + this.pie2 = this.pie2 || this.secondaryColor; + this.pie3 = this.pie3 || adjust$1(this.tertiaryColor, { l: -40 }); + this.pie4 = this.pie4 || adjust$1(this.primaryColor, { l: -10 }); + this.pie5 = this.pie5 || adjust$1(this.secondaryColor, { l: -30 }); + this.pie6 = this.pie6 || adjust$1(this.tertiaryColor, { l: -20 }); + this.pie7 = this.pie7 || adjust$1(this.primaryColor, { h: 60, l: -20 }); + this.pie8 = this.pie8 || adjust$1(this.primaryColor, { h: -60, l: -40 }); + this.pie9 = this.pie9 || adjust$1(this.primaryColor, { h: 120, l: -40 }); + this.pie10 = this.pie10 || adjust$1(this.primaryColor, { h: 60, l: -40 }); + this.pie11 = this.pie11 || adjust$1(this.primaryColor, { h: -90, l: -40 }); + this.pie12 = this.pie12 || adjust$1(this.primaryColor, { h: 120, l: -30 }); + this.pieTitleTextSize = this.pieTitleTextSize || "25px"; + this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor; + this.pieSectionTextSize = this.pieSectionTextSize || "17px"; + this.pieSectionTextColor = this.pieSectionTextColor || this.textColor; + this.pieLegendTextSize = this.pieLegendTextSize || "17px"; + this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor; + this.pieStrokeColor = this.pieStrokeColor || "black"; + this.pieStrokeWidth = this.pieStrokeWidth || "2px"; + this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px"; + this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black"; + this.pieOpacity = this.pieOpacity || "0.7"; + this.quadrant1Fill = this.quadrant1Fill || this.primaryColor; + this.quadrant2Fill = this.quadrant2Fill || adjust$1(this.primaryColor, { r: 5, g: 5, b: 5 }); + this.quadrant3Fill = this.quadrant3Fill || adjust$1(this.primaryColor, { r: 10, g: 10, b: 10 }); + this.quadrant4Fill = this.quadrant4Fill || adjust$1(this.primaryColor, { r: 15, g: 15, b: 15 }); + this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; + this.quadrant2TextFill = this.quadrant2TextFill || adjust$1(this.primaryTextColor, { r: -5, g: -5, b: -5 }); + this.quadrant3TextFill = this.quadrant3TextFill || adjust$1(this.primaryTextColor, { r: -10, g: -10, b: -10 }); + this.quadrant4TextFill = this.quadrant4TextFill || adjust$1(this.primaryTextColor, { r: -15, g: -15, b: -15 }); + this.quadrantPointFill = this.quadrantPointFill || isDark$1(this.quadrant1Fill) ? lighten$1(this.quadrant1Fill) : darken$1(this.quadrant1Fill); + this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor; + this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor; + this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor; + this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor; + this.xyChart = { + backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, + titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || "#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3" + }; + this.requirementBackground = this.requirementBackground || this.primaryColor; + this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor; + this.requirementBorderSize = this.requirementBorderSize || "1"; + this.requirementTextColor = this.requirementTextColor || this.primaryTextColor; + this.relationColor = this.relationColor || this.lineColor; + this.relationLabelBackground = this.relationLabelBackground || this.labelBackground; + this.relationLabelColor = this.relationLabelColor || this.actorTextColor; + this.git0 = this.git0 || this.primaryColor; + this.git1 = this.git1 || this.secondaryColor; + this.git2 = this.git2 || this.tertiaryColor; + this.git3 = this.git3 || adjust$1(this.primaryColor, { h: -30 }); + this.git4 = this.git4 || adjust$1(this.primaryColor, { h: -60 }); + this.git5 = this.git5 || adjust$1(this.primaryColor, { h: -90 }); + this.git6 = this.git6 || adjust$1(this.primaryColor, { h: 60 }); + this.git7 = this.git7 || adjust$1(this.primaryColor, { h: 120 }); + if (this.darkMode) { + this.git0 = lighten$1(this.git0, 25); + this.git1 = lighten$1(this.git1, 25); + this.git2 = lighten$1(this.git2, 25); + this.git3 = lighten$1(this.git3, 25); + this.git4 = lighten$1(this.git4, 25); + this.git5 = lighten$1(this.git5, 25); + this.git6 = lighten$1(this.git6, 25); + this.git7 = lighten$1(this.git7, 25); + } else { + this.git0 = darken$1(this.git0, 25); + this.git1 = darken$1(this.git1, 25); + this.git2 = darken$1(this.git2, 25); + this.git3 = darken$1(this.git3, 25); + this.git4 = darken$1(this.git4, 25); + this.git5 = darken$1(this.git5, 25); + this.git6 = darken$1(this.git6, 25); + this.git7 = darken$1(this.git7, 25); + } + this.gitInv0 = this.gitInv0 || darken$1(invert$1(this.git0), 25); + this.gitInv1 = this.gitInv1 || invert$1(this.git1); + this.gitInv2 = this.gitInv2 || invert$1(this.git2); + this.gitInv3 = this.gitInv3 || invert$1(this.git3); + this.gitInv4 = this.gitInv4 || invert$1(this.git4); + this.gitInv5 = this.gitInv5 || invert$1(this.git5); + this.gitInv6 = this.gitInv6 || invert$1(this.git6); + this.gitInv7 = this.gitInv7 || invert$1(this.git7); + this.gitBranchLabel0 = this.gitBranchLabel0 || invert$1(this.labelTextColor); + this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor; + this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor; + this.gitBranchLabel3 = this.gitBranchLabel3 || invert$1(this.labelTextColor); + this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor; + this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor; + this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor; + this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor; + this.tagLabelColor = this.tagLabelColor || this.primaryTextColor; + this.tagLabelBackground = this.tagLabelBackground || this.primaryColor; + this.tagLabelBorder = this.tagBorder || this.primaryBorderColor; + this.tagLabelFontSize = this.tagLabelFontSize || "10px"; + this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor; + this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor; + this.commitLabelFontSize = this.commitLabelFontSize || "10px"; + this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd; + this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven; + } + calculate(overrides) { + if (typeof overrides !== "object") { + this.updateColors(); + return; + } + const keys = Object.keys(overrides); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + this.updateColors(); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + } +}; +const getThemeVariables$2 = (userOverrides) => { + const theme2 = new Theme$2(); + theme2.calculate(userOverrides); + return theme2; +}; +let Theme$1 = class Theme4 { + constructor() { + this.background = "#f4f4f4"; + this.primaryColor = "#cde498"; + this.secondaryColor = "#cdffb2"; + this.background = "white"; + this.mainBkg = "#cde498"; + this.secondBkg = "#cdffb2"; + this.lineColor = "green"; + this.border1 = "#13540c"; + this.border2 = "#6eaa49"; + this.arrowheadColor = "green"; + this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif'; + this.fontSize = "16px"; + this.tertiaryColor = lighten$1("#cde498", 10); + this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode); + this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode); + this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode); + this.primaryTextColor = invert$1(this.primaryColor); + this.secondaryTextColor = invert$1(this.secondaryColor); + this.tertiaryTextColor = invert$1(this.primaryColor); + this.lineColor = invert$1(this.background); + this.textColor = invert$1(this.background); + this.THEME_COLOR_LIMIT = 12; + this.nodeBkg = "calculated"; + this.nodeBorder = "calculated"; + this.clusterBkg = "calculated"; + this.clusterBorder = "calculated"; + this.defaultLinkColor = "calculated"; + this.titleColor = "#333"; + this.edgeLabelBackground = "#e8e8e8"; + this.actorBorder = "calculated"; + this.actorBkg = "calculated"; + this.actorTextColor = "black"; + this.actorLineColor = "grey"; + this.signalColor = "#333"; + this.signalTextColor = "#333"; + this.labelBoxBkgColor = "calculated"; + this.labelBoxBorderColor = "#326932"; + this.labelTextColor = "calculated"; + this.loopTextColor = "calculated"; + this.noteBorderColor = "calculated"; + this.noteBkgColor = "#fff5ad"; + this.noteTextColor = "calculated"; + this.activationBorderColor = "#666"; + this.activationBkgColor = "#f4f4f4"; + this.sequenceNumberColor = "white"; + this.sectionBkgColor = "#6eaa49"; + this.altSectionBkgColor = "white"; + this.sectionBkgColor2 = "#6eaa49"; + this.excludeBkgColor = "#eeeeee"; + this.taskBorderColor = "calculated"; + this.taskBkgColor = "#487e3a"; + this.taskTextLightColor = "white"; + this.taskTextColor = "calculated"; + this.taskTextDarkColor = "black"; + this.taskTextOutsideColor = "calculated"; + this.taskTextClickableColor = "#003163"; + this.activeTaskBorderColor = "calculated"; + this.activeTaskBkgColor = "calculated"; + this.gridColor = "lightgrey"; + this.doneTaskBkgColor = "lightgrey"; + this.doneTaskBorderColor = "grey"; + this.critBorderColor = "#ff8888"; + this.critBkgColor = "red"; + this.todayLineColor = "red"; + this.personBorder = this.primaryBorderColor; + this.personBkg = this.mainBkg; + this.labelColor = "black"; + this.errorBkgColor = "#552222"; + this.errorTextColor = "#552222"; + } + updateColors() { + var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; + this.actorBorder = darken$1(this.mainBkg, 20); + this.actorBkg = this.mainBkg; + this.labelBoxBkgColor = this.actorBkg; + this.labelTextColor = this.actorTextColor; + this.loopTextColor = this.actorTextColor; + this.noteBorderColor = this.border2; + this.noteTextColor = this.actorTextColor; + this.cScale0 = this.cScale0 || this.primaryColor; + this.cScale1 = this.cScale1 || this.secondaryColor; + this.cScale2 = this.cScale2 || this.tertiaryColor; + this.cScale3 = this.cScale3 || adjust$1(this.primaryColor, { h: 30 }); + this.cScale4 = this.cScale4 || adjust$1(this.primaryColor, { h: 60 }); + this.cScale5 = this.cScale5 || adjust$1(this.primaryColor, { h: 90 }); + this.cScale6 = this.cScale6 || adjust$1(this.primaryColor, { h: 120 }); + this.cScale7 = this.cScale7 || adjust$1(this.primaryColor, { h: 150 }); + this.cScale8 = this.cScale8 || adjust$1(this.primaryColor, { h: 210 }); + this.cScale9 = this.cScale9 || adjust$1(this.primaryColor, { h: 270 }); + this.cScale10 = this.cScale10 || adjust$1(this.primaryColor, { h: 300 }); + this.cScale11 = this.cScale11 || adjust$1(this.primaryColor, { h: 330 }); + this["cScalePeer1"] = this["cScalePeer1"] || darken$1(this.secondaryColor, 45); + this["cScalePeer2"] = this["cScalePeer2"] || darken$1(this.tertiaryColor, 40); + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScale" + i] = darken$1(this["cScale" + i], 10); + this["cScalePeer" + i] = this["cScalePeer" + i] || darken$1(this["cScale" + i], 25); + } + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleInv" + i] = this["cScaleInv" + i] || adjust$1(this["cScale" + i], { h: 180 }); + } + this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor; + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor; + } + for (let i = 0; i < 5; i++) { + this["surface" + i] = this["surface" + i] || adjust$1(this.mainBkg, { h: 30, s: -30, l: -(5 + i * 5) }); + this["surfacePeer" + i] = this["surfacePeer" + i] || adjust$1(this.mainBkg, { h: 30, s: -30, l: -(8 + i * 5) }); + } + this.nodeBkg = this.mainBkg; + this.nodeBorder = this.border1; + this.clusterBkg = this.secondBkg; + this.clusterBorder = this.border2; + this.defaultLinkColor = this.lineColor; + this.taskBorderColor = this.border1; + this.taskTextColor = this.taskTextLightColor; + this.taskTextOutsideColor = this.taskTextDarkColor; + this.activeTaskBorderColor = this.taskBorderColor; + this.activeTaskBkgColor = this.mainBkg; + this.transitionColor = this.transitionColor || this.lineColor; + this.transitionLabelColor = this.transitionLabelColor || this.textColor; + this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor; + this.stateBkg = this.stateBkg || this.mainBkg; + this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg; + this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor; + this.altBackground = this.altBackground || "#f0f0f0"; + this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg; + this.compositeBorder = this.compositeBorder || this.nodeBorder; + this.innerEndBackground = this.primaryBorderColor; + this.specialStateColor = this.lineColor; + this.errorBkgColor = this.errorBkgColor || this.tertiaryColor; + this.errorTextColor = this.errorTextColor || this.tertiaryTextColor; + this.transitionColor = this.transitionColor || this.lineColor; + this.classText = this.primaryTextColor; + this.fillType0 = this.primaryColor; + this.fillType1 = this.secondaryColor; + this.fillType2 = adjust$1(this.primaryColor, { h: 64 }); + this.fillType3 = adjust$1(this.secondaryColor, { h: 64 }); + this.fillType4 = adjust$1(this.primaryColor, { h: -64 }); + this.fillType5 = adjust$1(this.secondaryColor, { h: -64 }); + this.fillType6 = adjust$1(this.primaryColor, { h: 128 }); + this.fillType7 = adjust$1(this.secondaryColor, { h: 128 }); + this.pie1 = this.pie1 || this.primaryColor; + this.pie2 = this.pie2 || this.secondaryColor; + this.pie3 = this.pie3 || this.tertiaryColor; + this.pie4 = this.pie4 || adjust$1(this.primaryColor, { l: -30 }); + this.pie5 = this.pie5 || adjust$1(this.secondaryColor, { l: -30 }); + this.pie6 = this.pie6 || adjust$1(this.tertiaryColor, { h: 40, l: -40 }); + this.pie7 = this.pie7 || adjust$1(this.primaryColor, { h: 60, l: -10 }); + this.pie8 = this.pie8 || adjust$1(this.primaryColor, { h: -60, l: -10 }); + this.pie9 = this.pie9 || adjust$1(this.primaryColor, { h: 120, l: 0 }); + this.pie10 = this.pie10 || adjust$1(this.primaryColor, { h: 60, l: -50 }); + this.pie11 = this.pie11 || adjust$1(this.primaryColor, { h: -60, l: -50 }); + this.pie12 = this.pie12 || adjust$1(this.primaryColor, { h: 120, l: -50 }); + this.pieTitleTextSize = this.pieTitleTextSize || "25px"; + this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor; + this.pieSectionTextSize = this.pieSectionTextSize || "17px"; + this.pieSectionTextColor = this.pieSectionTextColor || this.textColor; + this.pieLegendTextSize = this.pieLegendTextSize || "17px"; + this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor; + this.pieStrokeColor = this.pieStrokeColor || "black"; + this.pieStrokeWidth = this.pieStrokeWidth || "2px"; + this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px"; + this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black"; + this.pieOpacity = this.pieOpacity || "0.7"; + this.quadrant1Fill = this.quadrant1Fill || this.primaryColor; + this.quadrant2Fill = this.quadrant2Fill || adjust$1(this.primaryColor, { r: 5, g: 5, b: 5 }); + this.quadrant3Fill = this.quadrant3Fill || adjust$1(this.primaryColor, { r: 10, g: 10, b: 10 }); + this.quadrant4Fill = this.quadrant4Fill || adjust$1(this.primaryColor, { r: 15, g: 15, b: 15 }); + this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; + this.quadrant2TextFill = this.quadrant2TextFill || adjust$1(this.primaryTextColor, { r: -5, g: -5, b: -5 }); + this.quadrant3TextFill = this.quadrant3TextFill || adjust$1(this.primaryTextColor, { r: -10, g: -10, b: -10 }); + this.quadrant4TextFill = this.quadrant4TextFill || adjust$1(this.primaryTextColor, { r: -15, g: -15, b: -15 }); + this.quadrantPointFill = this.quadrantPointFill || isDark$1(this.quadrant1Fill) ? lighten$1(this.quadrant1Fill) : darken$1(this.quadrant1Fill); + this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor; + this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor; + this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor; + this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor; + this.xyChart = { + backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, + titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || "#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176" + }; + this.requirementBackground = this.requirementBackground || this.primaryColor; + this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor; + this.requirementBorderSize = this.requirementBorderSize || "1"; + this.requirementTextColor = this.requirementTextColor || this.primaryTextColor; + this.relationColor = this.relationColor || this.lineColor; + this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground; + this.relationLabelColor = this.relationLabelColor || this.actorTextColor; + this.git0 = this.git0 || this.primaryColor; + this.git1 = this.git1 || this.secondaryColor; + this.git2 = this.git2 || this.tertiaryColor; + this.git3 = this.git3 || adjust$1(this.primaryColor, { h: -30 }); + this.git4 = this.git4 || adjust$1(this.primaryColor, { h: -60 }); + this.git5 = this.git5 || adjust$1(this.primaryColor, { h: -90 }); + this.git6 = this.git6 || adjust$1(this.primaryColor, { h: 60 }); + this.git7 = this.git7 || adjust$1(this.primaryColor, { h: 120 }); + if (this.darkMode) { + this.git0 = lighten$1(this.git0, 25); + this.git1 = lighten$1(this.git1, 25); + this.git2 = lighten$1(this.git2, 25); + this.git3 = lighten$1(this.git3, 25); + this.git4 = lighten$1(this.git4, 25); + this.git5 = lighten$1(this.git5, 25); + this.git6 = lighten$1(this.git6, 25); + this.git7 = lighten$1(this.git7, 25); + } else { + this.git0 = darken$1(this.git0, 25); + this.git1 = darken$1(this.git1, 25); + this.git2 = darken$1(this.git2, 25); + this.git3 = darken$1(this.git3, 25); + this.git4 = darken$1(this.git4, 25); + this.git5 = darken$1(this.git5, 25); + this.git6 = darken$1(this.git6, 25); + this.git7 = darken$1(this.git7, 25); + } + this.gitInv0 = this.gitInv0 || invert$1(this.git0); + this.gitInv1 = this.gitInv1 || invert$1(this.git1); + this.gitInv2 = this.gitInv2 || invert$1(this.git2); + this.gitInv3 = this.gitInv3 || invert$1(this.git3); + this.gitInv4 = this.gitInv4 || invert$1(this.git4); + this.gitInv5 = this.gitInv5 || invert$1(this.git5); + this.gitInv6 = this.gitInv6 || invert$1(this.git6); + this.gitInv7 = this.gitInv7 || invert$1(this.git7); + this.gitBranchLabel0 = this.gitBranchLabel0 || invert$1(this.labelTextColor); + this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor; + this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor; + this.gitBranchLabel3 = this.gitBranchLabel3 || invert$1(this.labelTextColor); + this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor; + this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor; + this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor; + this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor; + this.tagLabelColor = this.tagLabelColor || this.primaryTextColor; + this.tagLabelBackground = this.tagLabelBackground || this.primaryColor; + this.tagLabelBorder = this.tagBorder || this.primaryBorderColor; + this.tagLabelFontSize = this.tagLabelFontSize || "10px"; + this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor; + this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor; + this.commitLabelFontSize = this.commitLabelFontSize || "10px"; + this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd; + this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven; + } + calculate(overrides) { + if (typeof overrides !== "object") { + this.updateColors(); + return; + } + const keys = Object.keys(overrides); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + this.updateColors(); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + } +}; +const getThemeVariables$1 = (userOverrides) => { + const theme2 = new Theme$1(); + theme2.calculate(userOverrides); + return theme2; +}; +class Theme5 { + constructor() { + this.primaryColor = "#eee"; + this.contrast = "#707070"; + this.secondaryColor = lighten$1(this.contrast, 55); + this.background = "#ffffff"; + this.tertiaryColor = adjust$1(this.primaryColor, { h: -160 }); + this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode); + this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode); + this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode); + this.primaryTextColor = invert$1(this.primaryColor); + this.secondaryTextColor = invert$1(this.secondaryColor); + this.tertiaryTextColor = invert$1(this.tertiaryColor); + this.lineColor = invert$1(this.background); + this.textColor = invert$1(this.background); + this.mainBkg = "#eee"; + this.secondBkg = "calculated"; + this.lineColor = "#666"; + this.border1 = "#999"; + this.border2 = "calculated"; + this.note = "#ffa"; + this.text = "#333"; + this.critical = "#d42"; + this.done = "#bbb"; + this.arrowheadColor = "#333333"; + this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif'; + this.fontSize = "16px"; + this.THEME_COLOR_LIMIT = 12; + this.nodeBkg = "calculated"; + this.nodeBorder = "calculated"; + this.clusterBkg = "calculated"; + this.clusterBorder = "calculated"; + this.defaultLinkColor = "calculated"; + this.titleColor = "calculated"; + this.edgeLabelBackground = "white"; + this.actorBorder = "calculated"; + this.actorBkg = "calculated"; + this.actorTextColor = "calculated"; + this.actorLineColor = "calculated"; + this.signalColor = "calculated"; + this.signalTextColor = "calculated"; + this.labelBoxBkgColor = "calculated"; + this.labelBoxBorderColor = "calculated"; + this.labelTextColor = "calculated"; + this.loopTextColor = "calculated"; + this.noteBorderColor = "calculated"; + this.noteBkgColor = "calculated"; + this.noteTextColor = "calculated"; + this.activationBorderColor = "#666"; + this.activationBkgColor = "#f4f4f4"; + this.sequenceNumberColor = "white"; + this.sectionBkgColor = "calculated"; + this.altSectionBkgColor = "white"; + this.sectionBkgColor2 = "calculated"; + this.excludeBkgColor = "#eeeeee"; + this.taskBorderColor = "calculated"; + this.taskBkgColor = "calculated"; + this.taskTextLightColor = "white"; + this.taskTextColor = "calculated"; + this.taskTextDarkColor = "calculated"; + this.taskTextOutsideColor = "calculated"; + this.taskTextClickableColor = "#003163"; + this.activeTaskBorderColor = "calculated"; + this.activeTaskBkgColor = "calculated"; + this.gridColor = "calculated"; + this.doneTaskBkgColor = "calculated"; + this.doneTaskBorderColor = "calculated"; + this.critBkgColor = "calculated"; + this.critBorderColor = "calculated"; + this.todayLineColor = "calculated"; + this.personBorder = this.primaryBorderColor; + this.personBkg = this.mainBkg; + this.labelColor = "black"; + this.errorBkgColor = "#552222"; + this.errorTextColor = "#552222"; + } + updateColors() { + var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; + this.secondBkg = lighten$1(this.contrast, 55); + this.border2 = this.contrast; + this.actorBorder = lighten$1(this.border1, 23); + this.actorBkg = this.mainBkg; + this.actorTextColor = this.text; + this.actorLineColor = this.lineColor; + this.signalColor = this.text; + this.signalTextColor = this.text; + this.labelBoxBkgColor = this.actorBkg; + this.labelBoxBorderColor = this.actorBorder; + this.labelTextColor = this.text; + this.loopTextColor = this.text; + this.noteBorderColor = "#999"; + this.noteBkgColor = "#666"; + this.noteTextColor = "#fff"; + this.cScale0 = this.cScale0 || "#555"; + this.cScale1 = this.cScale1 || "#F4F4F4"; + this.cScale2 = this.cScale2 || "#555"; + this.cScale3 = this.cScale3 || "#BBB"; + this.cScale4 = this.cScale4 || "#777"; + this.cScale5 = this.cScale5 || "#999"; + this.cScale6 = this.cScale6 || "#DDD"; + this.cScale7 = this.cScale7 || "#FFF"; + this.cScale8 = this.cScale8 || "#DDD"; + this.cScale9 = this.cScale9 || "#BBB"; + this.cScale10 = this.cScale10 || "#999"; + this.cScale11 = this.cScale11 || "#777"; + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleInv" + i] = this["cScaleInv" + i] || invert$1(this["cScale" + i]); + } + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + if (this.darkMode) { + this["cScalePeer" + i] = this["cScalePeer" + i] || lighten$1(this["cScale" + i], 10); + } else { + this["cScalePeer" + i] = this["cScalePeer" + i] || darken$1(this["cScale" + i], 10); + } + } + this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor); + this["cScaleLabel0"] = this["cScaleLabel0"] || this.cScale1; + this["cScaleLabel2"] = this["cScaleLabel2"] || this.cScale1; + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor; + } + for (let i = 0; i < 5; i++) { + this["surface" + i] = this["surface" + i] || adjust$1(this.mainBkg, { l: -(5 + i * 5) }); + this["surfacePeer" + i] = this["surfacePeer" + i] || adjust$1(this.mainBkg, { l: -(8 + i * 5) }); + } + this.nodeBkg = this.mainBkg; + this.nodeBorder = this.border1; + this.clusterBkg = this.secondBkg; + this.clusterBorder = this.border2; + this.defaultLinkColor = this.lineColor; + this.titleColor = this.text; + this.sectionBkgColor = lighten$1(this.contrast, 30); + this.sectionBkgColor2 = lighten$1(this.contrast, 30); + this.taskBorderColor = darken$1(this.contrast, 10); + this.taskBkgColor = this.contrast; + this.taskTextColor = this.taskTextLightColor; + this.taskTextDarkColor = this.text; + this.taskTextOutsideColor = this.taskTextDarkColor; + this.activeTaskBorderColor = this.taskBorderColor; + this.activeTaskBkgColor = this.mainBkg; + this.gridColor = lighten$1(this.border1, 30); + this.doneTaskBkgColor = this.done; + this.doneTaskBorderColor = this.lineColor; + this.critBkgColor = this.critical; + this.critBorderColor = darken$1(this.critBkgColor, 10); + this.todayLineColor = this.critBkgColor; + this.transitionColor = this.transitionColor || "#000"; + this.transitionLabelColor = this.transitionLabelColor || this.textColor; + this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor; + this.stateBkg = this.stateBkg || this.mainBkg; + this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg; + this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor; + this.altBackground = this.altBackground || "#f4f4f4"; + this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg; + this.stateBorder = this.stateBorder || "#000"; + this.innerEndBackground = this.primaryBorderColor; + this.specialStateColor = "#222"; + this.errorBkgColor = this.errorBkgColor || this.tertiaryColor; + this.errorTextColor = this.errorTextColor || this.tertiaryTextColor; + this.classText = this.primaryTextColor; + this.fillType0 = this.primaryColor; + this.fillType1 = this.secondaryColor; + this.fillType2 = adjust$1(this.primaryColor, { h: 64 }); + this.fillType3 = adjust$1(this.secondaryColor, { h: 64 }); + this.fillType4 = adjust$1(this.primaryColor, { h: -64 }); + this.fillType5 = adjust$1(this.secondaryColor, { h: -64 }); + this.fillType6 = adjust$1(this.primaryColor, { h: 128 }); + this.fillType7 = adjust$1(this.secondaryColor, { h: 128 }); + for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { + this["pie" + i] = this["cScale" + i]; + } + this.pie12 = this.pie0; + this.pieTitleTextSize = this.pieTitleTextSize || "25px"; + this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor; + this.pieSectionTextSize = this.pieSectionTextSize || "17px"; + this.pieSectionTextColor = this.pieSectionTextColor || this.textColor; + this.pieLegendTextSize = this.pieLegendTextSize || "17px"; + this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor; + this.pieStrokeColor = this.pieStrokeColor || "black"; + this.pieStrokeWidth = this.pieStrokeWidth || "2px"; + this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px"; + this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black"; + this.pieOpacity = this.pieOpacity || "0.7"; + this.quadrant1Fill = this.quadrant1Fill || this.primaryColor; + this.quadrant2Fill = this.quadrant2Fill || adjust$1(this.primaryColor, { r: 5, g: 5, b: 5 }); + this.quadrant3Fill = this.quadrant3Fill || adjust$1(this.primaryColor, { r: 10, g: 10, b: 10 }); + this.quadrant4Fill = this.quadrant4Fill || adjust$1(this.primaryColor, { r: 15, g: 15, b: 15 }); + this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; + this.quadrant2TextFill = this.quadrant2TextFill || adjust$1(this.primaryTextColor, { r: -5, g: -5, b: -5 }); + this.quadrant3TextFill = this.quadrant3TextFill || adjust$1(this.primaryTextColor, { r: -10, g: -10, b: -10 }); + this.quadrant4TextFill = this.quadrant4TextFill || adjust$1(this.primaryTextColor, { r: -15, g: -15, b: -15 }); + this.quadrantPointFill = this.quadrantPointFill || isDark$1(this.quadrant1Fill) ? lighten$1(this.quadrant1Fill) : darken$1(this.quadrant1Fill); + this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor; + this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor; + this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor; + this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor; + this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor; + this.xyChart = { + backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, + titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, + xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, + xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, + xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, + xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, + yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, + yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, + yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, + yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, + plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || "#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0" + }; + this.requirementBackground = this.requirementBackground || this.primaryColor; + this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor; + this.requirementBorderSize = this.requirementBorderSize || "1"; + this.requirementTextColor = this.requirementTextColor || this.primaryTextColor; + this.relationColor = this.relationColor || this.lineColor; + this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground; + this.relationLabelColor = this.relationLabelColor || this.actorTextColor; + this.git0 = darken$1(this.pie1, 25) || this.primaryColor; + this.git1 = this.pie2 || this.secondaryColor; + this.git2 = this.pie3 || this.tertiaryColor; + this.git3 = this.pie4 || adjust$1(this.primaryColor, { h: -30 }); + this.git4 = this.pie5 || adjust$1(this.primaryColor, { h: -60 }); + this.git5 = this.pie6 || adjust$1(this.primaryColor, { h: -90 }); + this.git6 = this.pie7 || adjust$1(this.primaryColor, { h: 60 }); + this.git7 = this.pie8 || adjust$1(this.primaryColor, { h: 120 }); + this.gitInv0 = this.gitInv0 || invert$1(this.git0); + this.gitInv1 = this.gitInv1 || invert$1(this.git1); + this.gitInv2 = this.gitInv2 || invert$1(this.git2); + this.gitInv3 = this.gitInv3 || invert$1(this.git3); + this.gitInv4 = this.gitInv4 || invert$1(this.git4); + this.gitInv5 = this.gitInv5 || invert$1(this.git5); + this.gitInv6 = this.gitInv6 || invert$1(this.git6); + this.gitInv7 = this.gitInv7 || invert$1(this.git7); + this.branchLabelColor = this.branchLabelColor || this.labelTextColor; + this.gitBranchLabel0 = this.branchLabelColor; + this.gitBranchLabel1 = "white"; + this.gitBranchLabel2 = this.branchLabelColor; + this.gitBranchLabel3 = "white"; + this.gitBranchLabel4 = this.branchLabelColor; + this.gitBranchLabel5 = this.branchLabelColor; + this.gitBranchLabel6 = this.branchLabelColor; + this.gitBranchLabel7 = this.branchLabelColor; + this.tagLabelColor = this.tagLabelColor || this.primaryTextColor; + this.tagLabelBackground = this.tagLabelBackground || this.primaryColor; + this.tagLabelBorder = this.tagBorder || this.primaryBorderColor; + this.tagLabelFontSize = this.tagLabelFontSize || "10px"; + this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor; + this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor; + this.commitLabelFontSize = this.commitLabelFontSize || "10px"; + this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd; + this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven; + } + calculate(overrides) { + if (typeof overrides !== "object") { + this.updateColors(); + return; + } + const keys = Object.keys(overrides); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + this.updateColors(); + keys.forEach((k) => { + this[k] = overrides[k]; + }); + } +} +const getThemeVariables = (userOverrides) => { + const theme2 = new Theme5(); + theme2.calculate(userOverrides); + return theme2; +}; +const theme = { + base: { + getThemeVariables: getThemeVariables$4 + }, + dark: { + getThemeVariables: getThemeVariables$3 + }, + default: { + getThemeVariables: getThemeVariables$2 + }, + forest: { + getThemeVariables: getThemeVariables$1 + }, + neutral: { + getThemeVariables + } +}; +const defaultConfigJson = { + "flowchart": { + "useMaxWidth": true, + "titleTopMargin": 25, + "subGraphTitleMargin": { + "top": 0, + "bottom": 0 + }, + "diagramPadding": 8, + "htmlLabels": true, + "nodeSpacing": 50, + "rankSpacing": 50, + "curve": "basis", + "padding": 15, + "defaultRenderer": "dagre-wrapper", + "wrappingWidth": 200 + }, + "sequence": { + "useMaxWidth": true, + "hideUnusedParticipants": false, + "activationWidth": 10, + "diagramMarginX": 50, + "diagramMarginY": 10, + "actorMargin": 50, + "width": 150, + "height": 65, + "boxMargin": 10, + "boxTextMargin": 5, + "noteMargin": 10, + "messageMargin": 35, + "messageAlign": "center", + "mirrorActors": true, + "forceMenus": false, + "bottomMarginAdj": 1, + "rightAngles": false, + "showSequenceNumbers": false, + "actorFontSize": 14, + "actorFontFamily": '"Open Sans", sans-serif', + "actorFontWeight": 400, + "noteFontSize": 14, + "noteFontFamily": '"trebuchet ms", verdana, arial, sans-serif', + "noteFontWeight": 400, + "noteAlign": "center", + "messageFontSize": 16, + "messageFontFamily": '"trebuchet ms", verdana, arial, sans-serif', + "messageFontWeight": 400, + "wrap": false, + "wrapPadding": 10, + "labelBoxWidth": 50, + "labelBoxHeight": 20 + }, + "gantt": { + "useMaxWidth": true, + "titleTopMargin": 25, + "barHeight": 20, + "barGap": 4, + "topPadding": 50, + "rightPadding": 75, + "leftPadding": 75, + "gridLineStartPadding": 35, + "fontSize": 11, + "sectionFontSize": 11, + "numberSectionStyles": 4, + "axisFormat": "%Y-%m-%d", + "topAxis": false, + "displayMode": "", + "weekday": "sunday" + }, + "journey": { + "useMaxWidth": true, + "diagramMarginX": 50, + "diagramMarginY": 10, + "leftMargin": 150, + "width": 150, + "height": 50, + "boxMargin": 10, + "boxTextMargin": 5, + "noteMargin": 10, + "messageMargin": 35, + "messageAlign": "center", + "bottomMarginAdj": 1, + "rightAngles": false, + "taskFontSize": 14, + "taskFontFamily": '"Open Sans", sans-serif', + "taskMargin": 50, + "activationWidth": 10, + "textPlacement": "fo", + "actorColours": [ + "#8FBC8F", + "#7CFC00", + "#00FFFF", + "#20B2AA", + "#B0E0E6", + "#FFFFE0" + ], + "sectionFills": [ + "#191970", + "#8B008B", + "#4B0082", + "#2F4F4F", + "#800000", + "#8B4513", + "#00008B" + ], + "sectionColours": [ + "#fff" + ] + }, + "class": { + "useMaxWidth": true, + "titleTopMargin": 25, + "arrowMarkerAbsolute": false, + "dividerMargin": 10, + "padding": 5, + "textHeight": 10, + "defaultRenderer": "dagre-wrapper", + "htmlLabels": false + }, + "state": { + "useMaxWidth": true, + "titleTopMargin": 25, + "dividerMargin": 10, + "sizeUnit": 5, + "padding": 8, + "textHeight": 10, + "titleShift": -15, + "noteMargin": 10, + "forkWidth": 70, + "forkHeight": 7, + "miniPadding": 2, + "fontSizeFactor": 5.02, + "fontSize": 24, + "labelHeight": 16, + "edgeLengthFactor": "20", + "compositTitleSize": 35, + "radius": 5, + "defaultRenderer": "dagre-wrapper" + }, + "er": { + "useMaxWidth": true, + "titleTopMargin": 25, + "diagramPadding": 20, + "layoutDirection": "TB", + "minEntityWidth": 100, + "minEntityHeight": 75, + "entityPadding": 15, + "stroke": "gray", + "fill": "honeydew", + "fontSize": 12 + }, + "pie": { + "useMaxWidth": true, + "textPosition": 0.75 + }, + "quadrantChart": { + "useMaxWidth": true, + "chartWidth": 500, + "chartHeight": 500, + "titleFontSize": 20, + "titlePadding": 10, + "quadrantPadding": 5, + "xAxisLabelPadding": 5, + "yAxisLabelPadding": 5, + "xAxisLabelFontSize": 16, + "yAxisLabelFontSize": 16, + "quadrantLabelFontSize": 16, + "quadrantTextTopPadding": 5, + "pointTextPadding": 5, + "pointLabelFontSize": 12, + "pointRadius": 5, + "xAxisPosition": "top", + "yAxisPosition": "left", + "quadrantInternalBorderStrokeWidth": 1, + "quadrantExternalBorderStrokeWidth": 2 + }, + "xyChart": { + "useMaxWidth": true, + "width": 700, + "height": 500, + "titleFontSize": 20, + "titlePadding": 10, + "showTitle": true, + "xAxis": { + "$ref": "#/$defs/XYChartAxisConfig", + "showLabel": true, + "labelFontSize": 14, + "labelPadding": 5, + "showTitle": true, + "titleFontSize": 16, + "titlePadding": 5, + "showTick": true, + "tickLength": 5, + "tickWidth": 2, + "showAxisLine": true, + "axisLineWidth": 2 + }, + "yAxis": { + "$ref": "#/$defs/XYChartAxisConfig", + "showLabel": true, + "labelFontSize": 14, + "labelPadding": 5, + "showTitle": true, + "titleFontSize": 16, + "titlePadding": 5, + "showTick": true, + "tickLength": 5, + "tickWidth": 2, + "showAxisLine": true, + "axisLineWidth": 2 + }, + "chartOrientation": "vertical", + "plotReservedSpacePercent": 50 + }, + "requirement": { + "useMaxWidth": true, + "rect_fill": "#f9f9f9", + "text_color": "#333", + "rect_border_size": "0.5px", + "rect_border_color": "#bbb", + "rect_min_width": 200, + "rect_min_height": 200, + "fontSize": 14, + "rect_padding": 10, + "line_height": 20 + }, + "mindmap": { + "useMaxWidth": true, + "padding": 10, + "maxNodeWidth": 200 + }, + "timeline": { + "useMaxWidth": true, + "diagramMarginX": 50, + "diagramMarginY": 10, + "leftMargin": 150, + "width": 150, + "height": 50, + "boxMargin": 10, + "boxTextMargin": 5, + "noteMargin": 10, + "messageMargin": 35, + "messageAlign": "center", + "bottomMarginAdj": 1, + "rightAngles": false, + "taskFontSize": 14, + "taskFontFamily": '"Open Sans", sans-serif', + "taskMargin": 50, + "activationWidth": 10, + "textPlacement": "fo", + "actorColours": [ + "#8FBC8F", + "#7CFC00", + "#00FFFF", + "#20B2AA", + "#B0E0E6", + "#FFFFE0" + ], + "sectionFills": [ + "#191970", + "#8B008B", + "#4B0082", + "#2F4F4F", + "#800000", + "#8B4513", + "#00008B" + ], + "sectionColours": [ + "#fff" + ], + "disableMulticolor": false + }, + "gitGraph": { + "useMaxWidth": true, + "titleTopMargin": 25, + "diagramPadding": 8, + "nodeLabel": { + "width": 75, + "height": 100, + "x": -25, + "y": 0 + }, + "mainBranchName": "main", + "mainBranchOrder": 0, + "showCommitLabel": true, + "showBranches": true, + "rotateCommitLabel": true, + "parallelCommits": false, + "arrowMarkerAbsolute": false + }, + "c4": { + "useMaxWidth": true, + "diagramMarginX": 50, + "diagramMarginY": 10, + "c4ShapeMargin": 50, + "c4ShapePadding": 20, + "width": 216, + "height": 60, + "boxMargin": 10, + "c4ShapeInRow": 4, + "nextLinePaddingX": 0, + "c4BoundaryInRow": 2, + "personFontSize": 14, + "personFontFamily": '"Open Sans", sans-serif', + "personFontWeight": "normal", + "external_personFontSize": 14, + "external_personFontFamily": '"Open Sans", sans-serif', + "external_personFontWeight": "normal", + "systemFontSize": 14, + "systemFontFamily": '"Open Sans", sans-serif', + "systemFontWeight": "normal", + "external_systemFontSize": 14, + "external_systemFontFamily": '"Open Sans", sans-serif', + "external_systemFontWeight": "normal", + "system_dbFontSize": 14, + "system_dbFontFamily": '"Open Sans", sans-serif', + "system_dbFontWeight": "normal", + "external_system_dbFontSize": 14, + "external_system_dbFontFamily": '"Open Sans", sans-serif', + "external_system_dbFontWeight": "normal", + "system_queueFontSize": 14, + "system_queueFontFamily": '"Open Sans", sans-serif', + "system_queueFontWeight": "normal", + "external_system_queueFontSize": 14, + "external_system_queueFontFamily": '"Open Sans", sans-serif', + "external_system_queueFontWeight": "normal", + "boundaryFontSize": 14, + "boundaryFontFamily": '"Open Sans", sans-serif', + "boundaryFontWeight": "normal", + "messageFontSize": 12, + "messageFontFamily": '"Open Sans", sans-serif', + "messageFontWeight": "normal", + "containerFontSize": 14, + "containerFontFamily": '"Open Sans", sans-serif', + "containerFontWeight": "normal", + "external_containerFontSize": 14, + "external_containerFontFamily": '"Open Sans", sans-serif', + "external_containerFontWeight": "normal", + "container_dbFontSize": 14, + "container_dbFontFamily": '"Open Sans", sans-serif', + "container_dbFontWeight": "normal", + "external_container_dbFontSize": 14, + "external_container_dbFontFamily": '"Open Sans", sans-serif', + "external_container_dbFontWeight": "normal", + "container_queueFontSize": 14, + "container_queueFontFamily": '"Open Sans", sans-serif', + "container_queueFontWeight": "normal", + "external_container_queueFontSize": 14, + "external_container_queueFontFamily": '"Open Sans", sans-serif', + "external_container_queueFontWeight": "normal", + "componentFontSize": 14, + "componentFontFamily": '"Open Sans", sans-serif', + "componentFontWeight": "normal", + "external_componentFontSize": 14, + "external_componentFontFamily": '"Open Sans", sans-serif', + "external_componentFontWeight": "normal", + "component_dbFontSize": 14, + "component_dbFontFamily": '"Open Sans", sans-serif', + "component_dbFontWeight": "normal", + "external_component_dbFontSize": 14, + "external_component_dbFontFamily": '"Open Sans", sans-serif', + "external_component_dbFontWeight": "normal", + "component_queueFontSize": 14, + "component_queueFontFamily": '"Open Sans", sans-serif', + "component_queueFontWeight": "normal", + "external_component_queueFontSize": 14, + "external_component_queueFontFamily": '"Open Sans", sans-serif', + "external_component_queueFontWeight": "normal", + "wrap": true, + "wrapPadding": 10, + "person_bg_color": "#08427B", + "person_border_color": "#073B6F", + "external_person_bg_color": "#686868", + "external_person_border_color": "#8A8A8A", + "system_bg_color": "#1168BD", + "system_border_color": "#3C7FC0", + "system_db_bg_color": "#1168BD", + "system_db_border_color": "#3C7FC0", + "system_queue_bg_color": "#1168BD", + "system_queue_border_color": "#3C7FC0", + "external_system_bg_color": "#999999", + "external_system_border_color": "#8A8A8A", + "external_system_db_bg_color": "#999999", + "external_system_db_border_color": "#8A8A8A", + "external_system_queue_bg_color": "#999999", + "external_system_queue_border_color": "#8A8A8A", + "container_bg_color": "#438DD5", + "container_border_color": "#3C7FC0", + "container_db_bg_color": "#438DD5", + "container_db_border_color": "#3C7FC0", + "container_queue_bg_color": "#438DD5", + "container_queue_border_color": "#3C7FC0", + "external_container_bg_color": "#B3B3B3", + "external_container_border_color": "#A6A6A6", + "external_container_db_bg_color": "#B3B3B3", + "external_container_db_border_color": "#A6A6A6", + "external_container_queue_bg_color": "#B3B3B3", + "external_container_queue_border_color": "#A6A6A6", + "component_bg_color": "#85BBF0", + "component_border_color": "#78A8D8", + "component_db_bg_color": "#85BBF0", + "component_db_border_color": "#78A8D8", + "component_queue_bg_color": "#85BBF0", + "component_queue_border_color": "#78A8D8", + "external_component_bg_color": "#CCCCCC", + "external_component_border_color": "#BFBFBF", + "external_component_db_bg_color": "#CCCCCC", + "external_component_db_border_color": "#BFBFBF", + "external_component_queue_bg_color": "#CCCCCC", + "external_component_queue_border_color": "#BFBFBF" + }, + "sankey": { + "useMaxWidth": true, + "width": 600, + "height": 400, + "linkColor": "gradient", + "nodeAlignment": "justify", + "showValues": true, + "prefix": "", + "suffix": "" + }, + "block": { + "useMaxWidth": true, + "padding": 8 + }, + "theme": "default", + "maxTextSize": 5e4, + "maxEdges": 500, + "darkMode": false, + "fontFamily": '"trebuchet ms", verdana, arial, sans-serif;', + "logLevel": 5, + "securityLevel": "strict", + "startOnLoad": true, + "arrowMarkerAbsolute": false, + "secure": [ + "secure", + "securityLevel", + "startOnLoad", + "maxTextSize", + "maxEdges" + ], + "legacyMathML": false, + "deterministicIds": false, + "fontSize": 16 +}; +const config = { + ...defaultConfigJson, + // Set, even though they're `undefined` so that `configKeys` finds these keys + // TODO: Should we replace these with `null` so that they can go in the JSON Schema? + deterministicIDSeed: void 0, + themeCSS: void 0, + // add non-JSON default config values + themeVariables: theme["default"].getThemeVariables(), + sequence: { + ...defaultConfigJson.sequence, + messageFont: function() { + return { + fontFamily: this.messageFontFamily, + fontSize: this.messageFontSize, + fontWeight: this.messageFontWeight + }; + }, + noteFont: function() { + return { + fontFamily: this.noteFontFamily, + fontSize: this.noteFontSize, + fontWeight: this.noteFontWeight + }; + }, + actorFont: function() { + return { + fontFamily: this.actorFontFamily, + fontSize: this.actorFontSize, + fontWeight: this.actorFontWeight + }; + } + }, + gantt: { + ...defaultConfigJson.gantt, + tickInterval: void 0, + useWidth: void 0 + // can probably be removed since `configKeys` already includes this + }, + c4: { + ...defaultConfigJson.c4, + useWidth: void 0, + personFont: function() { + return { + fontFamily: this.personFontFamily, + fontSize: this.personFontSize, + fontWeight: this.personFontWeight + }; + }, + external_personFont: function() { + return { + fontFamily: this.external_personFontFamily, + fontSize: this.external_personFontSize, + fontWeight: this.external_personFontWeight + }; + }, + systemFont: function() { + return { + fontFamily: this.systemFontFamily, + fontSize: this.systemFontSize, + fontWeight: this.systemFontWeight + }; + }, + external_systemFont: function() { + return { + fontFamily: this.external_systemFontFamily, + fontSize: this.external_systemFontSize, + fontWeight: this.external_systemFontWeight + }; + }, + system_dbFont: function() { + return { + fontFamily: this.system_dbFontFamily, + fontSize: this.system_dbFontSize, + fontWeight: this.system_dbFontWeight + }; + }, + external_system_dbFont: function() { + return { + fontFamily: this.external_system_dbFontFamily, + fontSize: this.external_system_dbFontSize, + fontWeight: this.external_system_dbFontWeight + }; + }, + system_queueFont: function() { + return { + fontFamily: this.system_queueFontFamily, + fontSize: this.system_queueFontSize, + fontWeight: this.system_queueFontWeight + }; + }, + external_system_queueFont: function() { + return { + fontFamily: this.external_system_queueFontFamily, + fontSize: this.external_system_queueFontSize, + fontWeight: this.external_system_queueFontWeight + }; + }, + containerFont: function() { + return { + fontFamily: this.containerFontFamily, + fontSize: this.containerFontSize, + fontWeight: this.containerFontWeight + }; + }, + external_containerFont: function() { + return { + fontFamily: this.external_containerFontFamily, + fontSize: this.external_containerFontSize, + fontWeight: this.external_containerFontWeight + }; + }, + container_dbFont: function() { + return { + fontFamily: this.container_dbFontFamily, + fontSize: this.container_dbFontSize, + fontWeight: this.container_dbFontWeight + }; + }, + external_container_dbFont: function() { + return { + fontFamily: this.external_container_dbFontFamily, + fontSize: this.external_container_dbFontSize, + fontWeight: this.external_container_dbFontWeight + }; + }, + container_queueFont: function() { + return { + fontFamily: this.container_queueFontFamily, + fontSize: this.container_queueFontSize, + fontWeight: this.container_queueFontWeight + }; + }, + external_container_queueFont: function() { + return { + fontFamily: this.external_container_queueFontFamily, + fontSize: this.external_container_queueFontSize, + fontWeight: this.external_container_queueFontWeight + }; + }, + componentFont: function() { + return { + fontFamily: this.componentFontFamily, + fontSize: this.componentFontSize, + fontWeight: this.componentFontWeight + }; + }, + external_componentFont: function() { + return { + fontFamily: this.external_componentFontFamily, + fontSize: this.external_componentFontSize, + fontWeight: this.external_componentFontWeight + }; + }, + component_dbFont: function() { + return { + fontFamily: this.component_dbFontFamily, + fontSize: this.component_dbFontSize, + fontWeight: this.component_dbFontWeight + }; + }, + external_component_dbFont: function() { + return { + fontFamily: this.external_component_dbFontFamily, + fontSize: this.external_component_dbFontSize, + fontWeight: this.external_component_dbFontWeight + }; + }, + component_queueFont: function() { + return { + fontFamily: this.component_queueFontFamily, + fontSize: this.component_queueFontSize, + fontWeight: this.component_queueFontWeight + }; + }, + external_component_queueFont: function() { + return { + fontFamily: this.external_component_queueFontFamily, + fontSize: this.external_component_queueFontSize, + fontWeight: this.external_component_queueFontWeight + }; + }, + boundaryFont: function() { + return { + fontFamily: this.boundaryFontFamily, + fontSize: this.boundaryFontSize, + fontWeight: this.boundaryFontWeight + }; + }, + messageFont: function() { + return { + fontFamily: this.messageFontFamily, + fontSize: this.messageFontSize, + fontWeight: this.messageFontWeight + }; + } + }, + pie: { + ...defaultConfigJson.pie, + useWidth: 984 + }, + xyChart: { + ...defaultConfigJson.xyChart, + useWidth: void 0 + }, + requirement: { + ...defaultConfigJson.requirement, + useWidth: void 0 + }, + gitGraph: { + ...defaultConfigJson.gitGraph, + // TODO: This is a temporary override for `gitGraph`, since every other + // diagram does have `useMaxWidth`, but instead sets it to `true`. + // Should we set this to `true` instead? + useMaxWidth: false + }, + sankey: { + ...defaultConfigJson.sankey, + // this is false, unlike every other diagram (other than gitGraph) + // TODO: can we make this default to `true` instead? + useMaxWidth: false + } +}; +const keyify = (obj, prefix = "") => Object.keys(obj).reduce((res, el) => { + if (Array.isArray(obj[el])) { + return res; + } else if (typeof obj[el] === "object" && obj[el] !== null) { + return [...res, prefix + el, ...keyify(obj[el], "")]; + } + return [...res, prefix + el]; +}, []); +const configKeys = new Set(keyify(config, "")); +const defaultConfig$2 = config; +const sanitizeDirective = (args) => { + log$1.debug("sanitizeDirective called with", args); + if (typeof args !== "object" || args == null) { + return; + } + if (Array.isArray(args)) { + args.forEach((arg) => sanitizeDirective(arg)); + return; + } + for (const key of Object.keys(args)) { + log$1.debug("Checking key", key); + if (key.startsWith("__") || key.includes("proto") || key.includes("constr") || !configKeys.has(key) || args[key] == null) { + log$1.debug("sanitize deleting key: ", key); + delete args[key]; + continue; + } + if (typeof args[key] === "object") { + log$1.debug("sanitizing object", key); + sanitizeDirective(args[key]); + continue; + } + const cssMatchers = ["themeCSS", "fontFamily", "altFontFamily"]; + for (const cssKey of cssMatchers) { + if (key.includes(cssKey)) { + log$1.debug("sanitizing css option", key); + args[key] = sanitizeCss(args[key]); + } + } + } + if (args.themeVariables) { + for (const k of Object.keys(args.themeVariables)) { + const val = args.themeVariables[k]; + if ((val == null ? void 0 : val.match) && !val.match(/^[\d "#%(),.;A-Za-z]+$/)) { + args.themeVariables[k] = ""; + } + } + } + log$1.debug("After sanitization", args); +}; +const sanitizeCss = (str2) => { + let startCnt = 0; + let endCnt = 0; + for (const element of str2) { + if (startCnt < endCnt) { + return "{ /* ERROR: Unbalanced CSS */ }"; + } + if (element === "{") { + startCnt++; + } else if (element === "}") { + endCnt++; + } + } + if (startCnt !== endCnt) { + return "{ /* ERROR: Unbalanced CSS */ }"; + } + return str2; +}; +const frontMatterRegex = /^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s; +const directiveRegex = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi; +const anyCommentRegex = /\s*%%.*\n/gm; +class UnknownDiagramError extends Error { + constructor(message) { + super(message); + this.name = "UnknownDiagramError"; + } +} +const detectors = {}; +const detectType = function(text2, config2) { + text2 = text2.replace(frontMatterRegex, "").replace(directiveRegex, "").replace(anyCommentRegex, "\n"); + for (const [key, { detector: detector2 }] of Object.entries(detectors)) { + const diagram2 = detector2(text2, config2); + if (diagram2) { + return key; + } + } + throw new UnknownDiagramError( + `No diagram type detected matching given configuration for text: ${text2}` + ); +}; +const registerLazyLoadedDiagrams = (...diagrams2) => { + for (const { id: id2, detector: detector2, loader: loader2 } of diagrams2) { + addDetector(id2, detector2, loader2); + } +}; +const addDetector = (key, detector2, loader2) => { + if (detectors[key]) { + log$1.error(`Detector with key ${key} already exists`); + } else { + detectors[key] = { detector: detector2, loader: loader2 }; + } + log$1.debug(`Detector with key ${key} added${loader2 ? " with loader" : ""}`); +}; +const getDiagramLoader = (key) => { + return detectors[key].loader; +}; +const assignWithDepth = (dst, src, { depth = 2, clobber = false } = {}) => { + const config2 = { depth, clobber }; + if (Array.isArray(src) && !Array.isArray(dst)) { + src.forEach((s) => assignWithDepth(dst, s, config2)); + return dst; + } else if (Array.isArray(src) && Array.isArray(dst)) { + src.forEach((s) => { + if (!dst.includes(s)) { + dst.push(s); + } + }); + return dst; + } + if (dst === void 0 || depth <= 0) { + if (dst !== void 0 && dst !== null && typeof dst === "object" && typeof src === "object") { + return Object.assign(dst, src); + } else { + return src; + } + } + if (src !== void 0 && typeof dst === "object" && typeof src === "object") { + Object.keys(src).forEach((key) => { + if (typeof src[key] === "object" && (dst[key] === void 0 || typeof dst[key] === "object")) { + if (dst[key] === void 0) { + dst[key] = Array.isArray(src[key]) ? [] : {}; + } + dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber }); + } else if (clobber || typeof dst[key] !== "object" && typeof src[key] !== "object") { + dst[key] = src[key]; + } + }); + } + return dst; +}; +const assignWithDepth$1 = assignWithDepth; +var freeGlobal = typeof global == "object" && global && global.Object === Object && global; +const freeGlobal$1 = freeGlobal; +var freeSelf = typeof self == "object" && self && self.Object === Object && self; +var root = freeGlobal$1 || freeSelf || Function("return this")(); +const root$1 = root; +var Symbol$1 = root$1.Symbol; +const Symbol$2 = Symbol$1; +var objectProto$c = Object.prototype; +var hasOwnProperty$a = objectProto$c.hasOwnProperty; +var nativeObjectToString$1 = objectProto$c.toString; +var symToStringTag$1 = Symbol$2 ? Symbol$2.toStringTag : void 0; +function getRawTag(value) { + var isOwn = hasOwnProperty$a.call(value, symToStringTag$1), tag = value[symToStringTag$1]; + try { + value[symToStringTag$1] = void 0; + var unmasked = true; + } catch (e) { + } + var result = nativeObjectToString$1.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag$1] = tag; + } else { + delete value[symToStringTag$1]; + } + } + return result; +} +var objectProto$b = Object.prototype; +var nativeObjectToString = objectProto$b.toString; +function objectToString(value) { + return nativeObjectToString.call(value); +} +var nullTag = "[object Null]", undefinedTag = "[object Undefined]"; +var symToStringTag = Symbol$2 ? Symbol$2.toStringTag : void 0; +function baseGetTag(value) { + if (value == null) { + return value === void 0 ? undefinedTag : nullTag; + } + return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); +} +function isObject$1(value) { + var type2 = typeof value; + return value != null && (type2 == "object" || type2 == "function"); +} +var asyncTag = "[object AsyncFunction]", funcTag$1 = "[object Function]", genTag = "[object GeneratorFunction]", proxyTag = "[object Proxy]"; +function isFunction(value) { + if (!isObject$1(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag; +} +var coreJsData = root$1["__core-js_shared__"]; +const coreJsData$1 = coreJsData; +var maskSrcKey = function() { + var uid = /[^.]+$/.exec(coreJsData$1 && coreJsData$1.keys && coreJsData$1.keys.IE_PROTO || ""); + return uid ? "Symbol(src)_1." + uid : ""; +}(); +function isMasked(func) { + return !!maskSrcKey && maskSrcKey in func; +} +var funcProto$2 = Function.prototype; +var funcToString$2 = funcProto$2.toString; +function toSource(func) { + if (func != null) { + try { + return funcToString$2.call(func); + } catch (e) { + } + try { + return func + ""; + } catch (e) { + } + } + return ""; +} +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; +var reIsHostCtor = /^\[object .+?Constructor\]$/; +var funcProto$1 = Function.prototype, objectProto$a = Object.prototype; +var funcToString$1 = funcProto$1.toString; +var hasOwnProperty$9 = objectProto$a.hasOwnProperty; +var reIsNative = RegExp( + "^" + funcToString$1.call(hasOwnProperty$9).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" +); +function baseIsNative(value) { + if (!isObject$1(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} +function getValue(object, key) { + return object == null ? void 0 : object[key]; +} +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : void 0; +} +var nativeCreate = getNative(Object, "create"); +const nativeCreate$1 = nativeCreate; +function hashClear() { + this.__data__ = nativeCreate$1 ? nativeCreate$1(null) : {}; + this.size = 0; +} +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; +} +var HASH_UNDEFINED$1 = "__lodash_hash_undefined__"; +var objectProto$9 = Object.prototype; +var hasOwnProperty$8 = objectProto$9.hasOwnProperty; +function hashGet(key) { + var data = this.__data__; + if (nativeCreate$1) { + var result = data[key]; + return result === HASH_UNDEFINED$1 ? void 0 : result; + } + return hasOwnProperty$8.call(data, key) ? data[key] : void 0; +} +var objectProto$8 = Object.prototype; +var hasOwnProperty$7 = objectProto$8.hasOwnProperty; +function hashHas(key) { + var data = this.__data__; + return nativeCreate$1 ? data[key] !== void 0 : hasOwnProperty$7.call(data, key); +} +var HASH_UNDEFINED = "__lodash_hash_undefined__"; +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = nativeCreate$1 && value === void 0 ? HASH_UNDEFINED : value; + return this; +} +function Hash(entries2) { + var index = -1, length2 = entries2 == null ? 0 : entries2.length; + this.clear(); + while (++index < length2) { + var entry = entries2[index]; + this.set(entry[0], entry[1]); + } +} +Hash.prototype.clear = hashClear; +Hash.prototype["delete"] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} +function eq(value, other) { + return value === other || value !== value && other !== other; +} +function assocIndexOf(array2, key) { + var length2 = array2.length; + while (length2--) { + if (eq(array2[length2][0], key)) { + return length2; + } + } + return -1; +} +var arrayProto = Array.prototype; +var splice = arrayProto.splice; +function listCacheDelete(key) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; +} +function listCacheGet(key) { + var data = this.__data__, index = assocIndexOf(data, key); + return index < 0 ? void 0 : data[index][1]; +} +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} +function listCacheSet(key, value) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} +function ListCache(entries2) { + var index = -1, length2 = entries2 == null ? 0 : entries2.length; + this.clear(); + while (++index < length2) { + var entry = entries2[index]; + this.set(entry[0], entry[1]); + } +} +ListCache.prototype.clear = listCacheClear; +ListCache.prototype["delete"] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; +var Map$1 = getNative(root$1, "Map"); +const Map$2 = Map$1; +function mapCacheClear() { + this.size = 0; + this.__data__ = { + "hash": new Hash(), + "map": new (Map$2 || ListCache)(), + "string": new Hash() + }; +} +function isKeyable(value) { + var type2 = typeof value; + return type2 == "string" || type2 == "number" || type2 == "symbol" || type2 == "boolean" ? value !== "__proto__" : value === null; +} +function getMapData(map2, key) { + var data = map2.__data__; + return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; +} +function mapCacheDelete(key) { + var result = getMapData(this, key)["delete"](key); + this.size -= result ? 1 : 0; + return result; +} +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} +function mapCacheSet(key, value) { + var data = getMapData(this, key), size = data.size; + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; +} +function MapCache(entries2) { + var index = -1, length2 = entries2 == null ? 0 : entries2.length; + this.clear(); + while (++index < length2) { + var entry = entries2[index]; + this.set(entry[0], entry[1]); + } +} +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype["delete"] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; +var FUNC_ERROR_TEXT = "Expected a function"; +function memoize(func, resolver) { + if (typeof func != "function" || resolver != null && typeof resolver != "function") { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache)(); + return memoized; +} +memoize.Cache = MapCache; +function stackClear() { + this.__data__ = new ListCache(); + this.size = 0; +} +function stackDelete(key) { + var data = this.__data__, result = data["delete"](key); + this.size = data.size; + return result; +} +function stackGet(key) { + return this.__data__.get(key); +} +function stackHas(key) { + return this.__data__.has(key); +} +var LARGE_ARRAY_SIZE = 200; +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs2 = data.__data__; + if (!Map$2 || pairs2.length < LARGE_ARRAY_SIZE - 1) { + pairs2.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs2); + } + data.set(key, value); + this.size = data.size; + return this; +} +function Stack(entries2) { + var data = this.__data__ = new ListCache(entries2); + this.size = data.size; +} +Stack.prototype.clear = stackClear; +Stack.prototype["delete"] = stackDelete; +Stack.prototype.get = stackGet; +Stack.prototype.has = stackHas; +Stack.prototype.set = stackSet; +var defineProperty = function() { + try { + var func = getNative(Object, "defineProperty"); + func({}, "", {}); + return func; + } catch (e) { + } +}(); +const defineProperty$1 = defineProperty; +function baseAssignValue(object, key, value) { + if (key == "__proto__" && defineProperty$1) { + defineProperty$1(object, key, { + "configurable": true, + "enumerable": true, + "value": value, + "writable": true + }); + } else { + object[key] = value; + } +} +function assignMergeValue(object, key, value) { + if (value !== void 0 && !eq(object[key], value) || value === void 0 && !(key in object)) { + baseAssignValue(object, key, value); + } +} +function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, iterable = Object(object), props = keysFunc(object), length2 = props.length; + while (length2--) { + var key = props[fromRight ? length2 : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; +} +var baseFor = createBaseFor(); +const baseFor$1 = baseFor; +var freeExports$2 = typeof exports == "object" && exports && !exports.nodeType && exports; +var freeModule$2 = freeExports$2 && typeof module == "object" && module && !module.nodeType && module; +var moduleExports$2 = freeModule$2 && freeModule$2.exports === freeExports$2; +var Buffer$1 = moduleExports$2 ? root$1.Buffer : void 0, allocUnsafe = Buffer$1 ? Buffer$1.allocUnsafe : void 0; +function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length2 = buffer.length, result = allocUnsafe ? allocUnsafe(length2) : new buffer.constructor(length2); + buffer.copy(result); + return result; +} +var Uint8Array$1 = root$1.Uint8Array; +const Uint8Array$2 = Uint8Array$1; +function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array$2(result).set(new Uint8Array$2(arrayBuffer)); + return result; +} +function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); +} +function copyArray(source, array2) { + var index = -1, length2 = source.length; + array2 || (array2 = Array(length2)); + while (++index < length2) { + array2[index] = source[index]; + } + return array2; +} +var objectCreate = Object.create; +var baseCreate = function() { + function object() { + } + return function(proto) { + if (!isObject$1(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object(); + object.prototype = void 0; + return result; + }; +}(); +const baseCreate$1 = baseCreate; +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} +var getPrototype = overArg(Object.getPrototypeOf, Object); +const getPrototype$1 = getPrototype; +var objectProto$7 = Object.prototype; +function isPrototype(value) { + var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto$7; + return value === proto; +} +function initCloneObject(object) { + return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate$1(getPrototype$1(object)) : {}; +} +function isObjectLike(value) { + return value != null && typeof value == "object"; +} +var argsTag$1 = "[object Arguments]"; +function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag$1; +} +var objectProto$6 = Object.prototype; +var hasOwnProperty$6 = objectProto$6.hasOwnProperty; +var propertyIsEnumerable = objectProto$6.propertyIsEnumerable; +var isArguments = baseIsArguments(function() { + return arguments; +}()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty$6.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); +}; +const isArguments$1 = isArguments; +var isArray = Array.isArray; +const isArray$1 = isArray; +var MAX_SAFE_INTEGER$1 = 9007199254740991; +function isLength(value) { + return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER$1; +} +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} +function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); +} +function stubFalse() { + return false; +} +var freeExports$1 = typeof exports == "object" && exports && !exports.nodeType && exports; +var freeModule$1 = freeExports$1 && typeof module == "object" && module && !module.nodeType && module; +var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1; +var Buffer = moduleExports$1 ? root$1.Buffer : void 0; +var nativeIsBuffer = Buffer ? Buffer.isBuffer : void 0; +var isBuffer = nativeIsBuffer || stubFalse; +const isBuffer$1 = isBuffer; +var objectTag$2 = "[object Object]"; +var funcProto = Function.prototype, objectProto$5 = Object.prototype; +var funcToString = funcProto.toString; +var hasOwnProperty$5 = objectProto$5.hasOwnProperty; +var objectCtorString = funcToString.call(Object); +function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag$2) { + return false; + } + var proto = getPrototype$1(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty$5.call(proto, "constructor") && proto.constructor; + return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; +} +var argsTag = "[object Arguments]", arrayTag = "[object Array]", boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", funcTag = "[object Function]", mapTag$2 = "[object Map]", numberTag = "[object Number]", objectTag$1 = "[object Object]", regexpTag = "[object RegExp]", setTag$2 = "[object Set]", stringTag = "[object String]", weakMapTag$1 = "[object WeakMap]"; +var arrayBufferTag = "[object ArrayBuffer]", dataViewTag$1 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]"; +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag$2] = typedArrayTags[numberTag] = typedArrayTags[objectTag$1] = typedArrayTags[regexpTag] = typedArrayTags[setTag$2] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag$1] = false; +function baseIsTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +} +function baseUnary(func) { + return function(value) { + return func(value); + }; +} +var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; +var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; +var moduleExports = freeModule && freeModule.exports === freeExports; +var freeProcess = moduleExports && freeGlobal$1.process; +var nodeUtil = function() { + try { + var types = freeModule && freeModule.require && freeModule.require("util").types; + if (types) { + return types; + } + return freeProcess && freeProcess.binding && freeProcess.binding("util"); + } catch (e) { + } +}(); +const nodeUtil$1 = nodeUtil; +var nodeIsTypedArray = nodeUtil$1 && nodeUtil$1.isTypedArray; +var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; +const isTypedArray$1 = isTypedArray; +function safeGet(object, key) { + if (key === "constructor" && typeof object[key] === "function") { + return; + } + if (key == "__proto__") { + return; + } + return object[key]; +} +var objectProto$4 = Object.prototype; +var hasOwnProperty$4 = objectProto$4.hasOwnProperty; +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty$4.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) { + baseAssignValue(object, key, value); + } +} +function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + var index = -1, length2 = props.length; + while (++index < length2) { + var key = props[index]; + var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0; + if (newValue === void 0) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; +} +function baseTimes(n, iteratee) { + var index = -1, result = Array(n); + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} +var MAX_SAFE_INTEGER = 9007199254740991; +var reIsUint = /^(?:0|[1-9]\d*)$/; +function isIndex(value, length2) { + var type2 = typeof value; + length2 = length2 == null ? MAX_SAFE_INTEGER : length2; + return !!length2 && (type2 == "number" || type2 != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length2); +} +var objectProto$3 = Object.prototype; +var hasOwnProperty$3 = objectProto$3.hasOwnProperty; +function arrayLikeKeys(value, inherited) { + var isArr = isArray$1(value), isArg = !isArr && isArguments$1(value), isBuff = !isArr && !isArg && isBuffer$1(value), isType = !isArr && !isArg && !isBuff && isTypedArray$1(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length2 = result.length; + for (var key in value) { + if ((inherited || hasOwnProperty$3.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode. + (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers. + isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays. + isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties. + isIndex(key, length2)))) { + result.push(key); + } + } + return result; +} +function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; +} +var objectProto$2 = Object.prototype; +var hasOwnProperty$2 = objectProto$2.hasOwnProperty; +function baseKeysIn(object) { + if (!isObject$1(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), result = []; + for (var key in object) { + if (!(key == "constructor" && (isProto || !hasOwnProperty$2.call(object, key)))) { + result.push(key); + } + } + return result; +} +function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); +} +function toPlainObject(value) { + return copyObject(value, keysIn(value)); +} +function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : void 0; + var isCommon = newValue === void 0; + if (isCommon) { + var isArr = isArray$1(srcValue), isBuff = !isArr && isBuffer$1(srcValue), isTyped = !isArr && !isBuff && isTypedArray$1(srcValue); + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray$1(objValue)) { + newValue = objValue; + } else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } else { + newValue = []; + } + } else if (isPlainObject(srcValue) || isArguments$1(srcValue)) { + newValue = objValue; + if (isArguments$1(objValue)) { + newValue = toPlainObject(objValue); + } else if (!isObject$1(objValue) || isFunction(objValue)) { + newValue = initCloneObject(srcValue); + } + } else { + isCommon = false; + } + } + if (isCommon) { + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack["delete"](srcValue); + } + assignMergeValue(object, key, newValue); +} +function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor$1(source, function(srcValue, key) { + stack || (stack = new Stack()); + if (isObject$1(srcValue)) { + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } else { + var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : void 0; + if (newValue === void 0) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); +} +function identity(value) { + return value; +} +function apply(func, thisArg, args) { + switch (args.length) { + case 0: + return func.call(thisArg); + case 1: + return func.call(thisArg, args[0]); + case 2: + return func.call(thisArg, args[0], args[1]); + case 3: + return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} +var nativeMax = Math.max; +function overRest(func, start2, transform) { + start2 = nativeMax(start2 === void 0 ? func.length - 1 : start2, 0); + return function() { + var args = arguments, index = -1, length2 = nativeMax(args.length - start2, 0), array2 = Array(length2); + while (++index < length2) { + array2[index] = args[start2 + index]; + } + index = -1; + var otherArgs = Array(start2 + 1); + while (++index < start2) { + otherArgs[index] = args[index]; + } + otherArgs[start2] = transform(array2); + return apply(func, this, otherArgs); + }; +} +function constant(value) { + return function() { + return value; + }; +} +var baseSetToString = !defineProperty$1 ? identity : function(func, string) { + return defineProperty$1(func, "toString", { + "configurable": true, + "enumerable": false, + "value": constant(string), + "writable": true + }); +}; +const baseSetToString$1 = baseSetToString; +var HOT_COUNT = 800, HOT_SPAN = 16; +var nativeNow = Date.now; +function shortOut(func) { + var count = 0, lastCalled = 0; + return function() { + var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(void 0, arguments); + }; +} +var setToString = shortOut(baseSetToString$1); +const setToString$1 = setToString; +function baseRest(func, start2) { + return setToString$1(overRest(func, start2, identity), func + ""); +} +function isIterateeCall(value, index, object) { + if (!isObject$1(object)) { + return false; + } + var type2 = typeof index; + if (type2 == "number" ? isArrayLike(object) && isIndex(index, object.length) : type2 == "string" && index in object) { + return eq(object[index], value); + } + return false; +} +function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, length2 = sources.length, customizer = length2 > 1 ? sources[length2 - 1] : void 0, guard = length2 > 2 ? sources[2] : void 0; + customizer = assigner.length > 3 && typeof customizer == "function" ? (length2--, customizer) : void 0; + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length2 < 3 ? void 0 : customizer; + length2 = 1; + } + object = Object(object); + while (++index < length2) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); +} +var merge$1 = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); +}); +const merge$2 = merge$1; +const ZERO_WIDTH_SPACE = "​"; +const d3CurveTypes = { + curveBasis, + curveBasisClosed, + curveBasisOpen, + curveBumpX: bumpX, + curveBumpY: bumpY, + curveBundle, + curveCardinalClosed, + curveCardinalOpen, + curveCardinal, + curveCatmullRomClosed, + curveCatmullRomOpen, + curveCatmullRom, + curveLinear, + curveLinearClosed, + curveMonotoneX: monotoneX, + curveMonotoneY: monotoneY, + curveNatural, + curveStep, + curveStepAfter: stepAfter, + curveStepBefore: stepBefore +}; +const directiveWithoutOpen = /\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi; +const detectInit = function(text2, config2) { + const inits = detectDirective(text2, /(?:init\b)|(?:initialize\b)/); + let results = {}; + if (Array.isArray(inits)) { + const args = inits.map((init2) => init2.args); + sanitizeDirective(args); + results = assignWithDepth$1(results, [...args]); + } else { + results = inits.args; + } + if (!results) { + return; + } + let type2 = detectType(text2, config2); + const prop = "config"; + if (results[prop] !== void 0) { + if (type2 === "flowchart-v2") { + type2 = "flowchart"; + } + results[type2] = results[prop]; + delete results[prop]; + } + return results; +}; +const detectDirective = function(text2, type2 = null) { + try { + const commentWithoutDirectives = new RegExp( + `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).* +`, + "ig" + ); + text2 = text2.trim().replace(commentWithoutDirectives, "").replace(/'/gm, '"'); + log$1.debug( + `Detecting diagram directive${type2 !== null ? " type:" + type2 : ""} based on the text:${text2}` + ); + let match; + const result = []; + while ((match = directiveRegex.exec(text2)) !== null) { + if (match.index === directiveRegex.lastIndex) { + directiveRegex.lastIndex++; + } + if (match && !type2 || type2 && match[1] && match[1].match(type2) || type2 && match[2] && match[2].match(type2)) { + const type22 = match[1] ? match[1] : match[2]; + const args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null; + result.push({ type: type22, args }); + } + } + if (result.length === 0) { + return { type: text2, args: null }; + } + return result.length === 1 ? result[0] : result; + } catch (error) { + log$1.error( + `ERROR: ${error.message} - Unable to parse directive type: '${type2}' based on the text: '${text2}'` + ); + return { type: void 0, args: null }; + } +}; +const removeDirectives = function(text2) { + return text2.replace(directiveRegex, ""); +}; +const isSubstringInArray = function(str2, arr) { + for (const [i, element] of arr.entries()) { + if (element.match(str2)) { + return i; + } + } + return -1; +}; +function interpolateToCurve(interpolate2, defaultCurve) { + if (!interpolate2) { + return defaultCurve; + } + const curveName = `curve${interpolate2.charAt(0).toUpperCase() + interpolate2.slice(1)}`; + return d3CurveTypes[curveName] ?? defaultCurve; +} +function formatUrl(linkStr, config2) { + const url = linkStr.trim(); + if (!url) { + return void 0; + } + if (config2.securityLevel !== "loose") { + return dist.sanitizeUrl(url); + } + return url; +} +const runFunc = (functionName, ...params) => { + const arrPaths = functionName.split("."); + const len = arrPaths.length - 1; + const fnName = arrPaths[len]; + let obj = window; + for (let i = 0; i < len; i++) { + obj = obj[arrPaths[i]]; + if (!obj) { + log$1.error(`Function name: ${functionName} not found in window`); + return; + } + } + obj[fnName](...params); +}; +function distance(p1, p2) { + if (!p1 || !p2) { + return 0; + } + return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)); +} +function traverseEdge(points) { + let prevPoint; + let totalDistance = 0; + points.forEach((point2) => { + totalDistance += distance(point2, prevPoint); + prevPoint = point2; + }); + const remainingDistance = totalDistance / 2; + return calculatePoint(points, remainingDistance); +} +function calcLabelPosition(points) { + if (points.length === 1) { + return points[0]; + } + return traverseEdge(points); +} +const roundNumber = (num, precision = 2) => { + const factor = Math.pow(10, precision); + return Math.round(num * factor) / factor; +}; +const calculatePoint = (points, distanceToTraverse) => { + let prevPoint = void 0; + let remainingDistance = distanceToTraverse; + for (const point2 of points) { + if (prevPoint) { + const vectorDistance = distance(point2, prevPoint); + if (vectorDistance < remainingDistance) { + remainingDistance -= vectorDistance; + } else { + const distanceRatio = remainingDistance / vectorDistance; + if (distanceRatio <= 0) { + return prevPoint; + } + if (distanceRatio >= 1) { + return { x: point2.x, y: point2.y }; + } + if (distanceRatio > 0 && distanceRatio < 1) { + return { + x: roundNumber((1 - distanceRatio) * prevPoint.x + distanceRatio * point2.x, 5), + y: roundNumber((1 - distanceRatio) * prevPoint.y + distanceRatio * point2.y, 5) + }; + } + } + } + prevPoint = point2; + } + throw new Error("Could not find a suitable point for the given distance"); +}; +const calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => { + log$1.info(`our points ${JSON.stringify(points)}`); + if (points[0] !== initialPosition) { + points = points.reverse(); + } + const distanceToCardinalityPoint = 25; + const center = calculatePoint(points, distanceToCardinalityPoint); + const d = isRelationTypePresent ? 10 : 5; + const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x); + const cardinalityPosition = { x: 0, y: 0 }; + cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2; + cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2; + return cardinalityPosition; +}; +function calcTerminalLabelPosition(terminalMarkerSize, position2, _points) { + const points = structuredClone(_points); + log$1.info("our points", points); + if (position2 !== "start_left" && position2 !== "start_right") { + points.reverse(); + } + const distanceToCardinalityPoint = 25 + terminalMarkerSize; + const center = calculatePoint(points, distanceToCardinalityPoint); + const d = 10 + terminalMarkerSize * 0.5; + const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x); + const cardinalityPosition = { x: 0, y: 0 }; + if (position2 === "start_left") { + cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2; + cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2; + } else if (position2 === "end_right") { + cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5; + cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5; + } else if (position2 === "end_left") { + cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5; + cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5; + } else { + cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2; + cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2; + } + return cardinalityPosition; +} +function getStylesFromArray(arr) { + let style = ""; + let labelStyle = ""; + for (const element of arr) { + if (element !== void 0) { + if (element.startsWith("color:") || element.startsWith("text-align:")) { + labelStyle = labelStyle + element + ";"; + } else { + style = style + element + ";"; + } + } + } + return { style, labelStyle }; +} +let cnt = 0; +const generateId = () => { + cnt++; + return "id-" + Math.random().toString(36).substr(2, 12) + "-" + cnt; +}; +function makeRandomHex(length2) { + let result = ""; + const characters2 = "0123456789abcdef"; + const charactersLength = characters2.length; + for (let i = 0; i < length2; i++) { + result += characters2.charAt(Math.floor(Math.random() * charactersLength)); + } + return result; +} +const random = (options) => { + return makeRandomHex(options.length); +}; +const getTextObj = function() { + return { + x: 0, + y: 0, + fill: void 0, + anchor: "start", + style: "#666", + width: 100, + height: 100, + textMargin: 0, + rx: 0, + ry: 0, + valign: void 0, + text: "" + }; +}; +const drawSimpleText = function(elem, textData) { + const nText = textData.text.replace(common$1.lineBreakRegex, " "); + const [, _fontSizePx] = parseFontSize(textData.fontSize); + const textElem = elem.append("text"); + textElem.attr("x", textData.x); + textElem.attr("y", textData.y); + textElem.style("text-anchor", textData.anchor); + textElem.style("font-family", textData.fontFamily); + textElem.style("font-size", _fontSizePx); + textElem.style("font-weight", textData.fontWeight); + textElem.attr("fill", textData.fill); + if (textData.class !== void 0) { + textElem.attr("class", textData.class); + } + const span = textElem.append("tspan"); + span.attr("x", textData.x + textData.textMargin * 2); + span.attr("fill", textData.fill); + span.text(nText); + return textElem; +}; +const wrapLabel = memoize( + (label, maxWidth, config2) => { + if (!label) { + return label; + } + config2 = Object.assign( + { fontSize: 12, fontWeight: 400, fontFamily: "Arial", joinWith: "
" }, + config2 + ); + if (common$1.lineBreakRegex.test(label)) { + return label; + } + const words = label.split(" "); + const completedLines = []; + let nextLine = ""; + words.forEach((word, index) => { + const wordLength = calculateTextWidth(`${word} `, config2); + const nextLineLength = calculateTextWidth(nextLine, config2); + if (wordLength > maxWidth) { + const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, "-", config2); + completedLines.push(nextLine, ...hyphenatedStrings); + nextLine = remainingWord; + } else if (nextLineLength + wordLength >= maxWidth) { + completedLines.push(nextLine); + nextLine = word; + } else { + nextLine = [nextLine, word].filter(Boolean).join(" "); + } + const currentWord = index + 1; + const isLastWord = currentWord === words.length; + if (isLastWord) { + completedLines.push(nextLine); + } + }); + return completedLines.filter((line2) => line2 !== "").join(config2.joinWith); + }, + (label, maxWidth, config2) => `${label}${maxWidth}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}${config2.joinWith}` +); +const breakString = memoize( + (word, maxWidth, hyphenCharacter = "-", config2) => { + config2 = Object.assign( + { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 0 }, + config2 + ); + const characters2 = [...word]; + const lines = []; + let currentLine = ""; + characters2.forEach((character2, index) => { + const nextLine = `${currentLine}${character2}`; + const lineWidth = calculateTextWidth(nextLine, config2); + if (lineWidth >= maxWidth) { + const currentCharacter = index + 1; + const isLastLine = characters2.length === currentCharacter; + const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`; + lines.push(isLastLine ? nextLine : hyphenatedNextLine); + currentLine = ""; + } else { + currentLine = nextLine; + } + }); + return { hyphenatedStrings: lines, remainingWord: currentLine }; + }, + (word, maxWidth, hyphenCharacter = "-", config2) => `${word}${maxWidth}${hyphenCharacter}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}` +); +function calculateTextHeight(text2, config2) { + return calculateTextDimensions(text2, config2).height; +} +function calculateTextWidth(text2, config2) { + return calculateTextDimensions(text2, config2).width; +} +const calculateTextDimensions = memoize( + (text2, config2) => { + const { fontSize = 12, fontFamily = "Arial", fontWeight = 400 } = config2; + if (!text2) { + return { width: 0, height: 0 }; + } + const [, _fontSizePx] = parseFontSize(fontSize); + const fontFamilies = ["sans-serif", fontFamily]; + const lines = text2.split(common$1.lineBreakRegex); + const dims = []; + const body = d3select("body"); + if (!body.remove) { + return { width: 0, height: 0, lineHeight: 0 }; + } + const g = body.append("svg"); + for (const fontFamily2 of fontFamilies) { + let cHeight = 0; + const dim = { width: 0, height: 0, lineHeight: 0 }; + for (const line2 of lines) { + const textObj = getTextObj(); + textObj.text = line2 || ZERO_WIDTH_SPACE; + const textElem = drawSimpleText(g, textObj).style("font-size", _fontSizePx).style("font-weight", fontWeight).style("font-family", fontFamily2); + const bBox = (textElem._groups || textElem)[0][0].getBBox(); + if (bBox.width === 0 && bBox.height === 0) { + throw new Error("svg element not in render tree"); + } + dim.width = Math.round(Math.max(dim.width, bBox.width)); + cHeight = Math.round(bBox.height); + dim.height += cHeight; + dim.lineHeight = Math.round(Math.max(dim.lineHeight, cHeight)); + } + dims.push(dim); + } + g.remove(); + const index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1; + return dims[index]; + }, + (text2, config2) => `${text2}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}` +); +class InitIDGenerator { + constructor(deterministic = false, seed) { + this.count = 0; + this.count = seed ? seed.length : 0; + this.next = deterministic ? () => this.count++ : () => Date.now(); + } +} +let decoder; +const entityDecode = function(html2) { + decoder = decoder || document.createElement("div"); + html2 = escape(html2).replace(/%26/g, "&").replace(/%23/g, "#").replace(/%3B/g, ";"); + decoder.innerHTML = html2; + return unescape(decoder.textContent); +}; +function isDetailedError(error) { + return "str" in error; +} +const insertTitle = (parent, cssClass, titleTopMargin, title) => { + var _a; + if (!title) { + return; + } + const bounds = (_a = parent.node()) == null ? void 0 : _a.getBBox(); + if (!bounds) { + return; + } + parent.append("text").text(title).attr("x", bounds.x + bounds.width / 2).attr("y", -titleTopMargin).attr("class", cssClass); +}; +const parseFontSize = (fontSize) => { + if (typeof fontSize === "number") { + return [fontSize, fontSize + "px"]; + } + const fontSizeNumber = parseInt(fontSize ?? "", 10); + if (Number.isNaN(fontSizeNumber)) { + return [void 0, void 0]; + } else if (fontSize === String(fontSizeNumber)) { + return [fontSizeNumber, fontSize + "px"]; + } else { + return [fontSizeNumber, fontSize]; + } +}; +function cleanAndMerge(defaultData, data) { + return merge$2({}, defaultData, data); +} +const utils = { + assignWithDepth: assignWithDepth$1, + wrapLabel, + calculateTextHeight, + calculateTextWidth, + calculateTextDimensions, + cleanAndMerge, + detectInit, + detectDirective, + isSubstringInArray, + interpolateToCurve, + calcLabelPosition, + calcCardinalityPosition, + calcTerminalLabelPosition, + formatUrl, + getStylesFromArray, + generateId, + random, + runFunc, + entityDecode, + insertTitle, + parseFontSize, + InitIDGenerator +}; +const encodeEntities = function(text2) { + let txt = text2; + txt = txt.replace(/style.*:\S*#.*;/g, function(s) { + return s.substring(0, s.length - 1); + }); + txt = txt.replace(/classDef.*:\S*#.*;/g, function(s) { + return s.substring(0, s.length - 1); + }); + txt = txt.replace(/#\w+;/g, function(s) { + const innerTxt = s.substring(1, s.length - 1); + const isInt = /^\+?\d+$/.test(innerTxt); + if (isInt) { + return "fl°°" + innerTxt + "¶ß"; + } else { + return "fl°" + innerTxt + "¶ß"; + } + }); + return txt; +}; +const decodeEntities = function(text2) { + return text2.replace(/fl°°/g, "&#").replace(/fl°/g, "&").replace(/¶ß/g, ";"); +}; +var COMMENT = "comm"; +var RULESET = "rule"; +var DECLARATION = "decl"; +var IMPORT = "@import"; +var KEYFRAMES = "@keyframes"; +var LAYER = "@layer"; +var abs = Math.abs; +var from = String.fromCharCode; +function trim(value) { + return value.trim(); +} +function replace(value, pattern, replacement) { + return value.replace(pattern, replacement); +} +function indexof(value, search, position2) { + return value.indexOf(search, position2); +} +function charat(value, index) { + return value.charCodeAt(index) | 0; +} +function substr(value, begin, end) { + return value.slice(begin, end); +} +function strlen(value) { + return value.length; +} +function sizeof(value) { + return value.length; +} +function append(value, array2) { + return array2.push(value), value; +} +var line = 1; +var column = 1; +var length = 0; +var position = 0; +var character = 0; +var characters = ""; +function node(value, root2, parent, type2, props, children2, length2, siblings) { + return { value, root: root2, parent, type: type2, props, children: children2, line, column, length: length2, return: "", siblings }; +} +function char() { + return character; +} +function prev() { + character = position > 0 ? charat(characters, --position) : 0; + if (column--, character === 10) + column = 1, line--; + return character; +} +function next() { + character = position < length ? charat(characters, position++) : 0; + if (column++, character === 10) + column = 1, line++; + return character; +} +function peek() { + return charat(characters, position); +} +function caret() { + return position; +} +function slice(begin, end) { + return substr(characters, begin, end); +} +function token(type2) { + switch (type2) { + case 0: + case 9: + case 10: + case 13: + case 32: + return 5; + case 33: + case 43: + case 44: + case 47: + case 62: + case 64: + case 126: + case 59: + case 123: + case 125: + return 4; + case 58: + return 3; + case 34: + case 39: + case 40: + case 91: + return 2; + case 41: + case 93: + return 1; + } + return 0; +} +function alloc(value) { + return line = column = 1, length = strlen(characters = value), position = 0, []; +} +function dealloc(value) { + return characters = "", value; +} +function delimit(type2) { + return trim(slice(position - 1, delimiter(type2 === 91 ? type2 + 2 : type2 === 40 ? type2 + 1 : type2))); +} +function whitespace(type2) { + while (character = peek()) + if (character < 33) + next(); + else + break; + return token(type2) > 2 || token(character) > 3 ? "" : " "; +} +function escaping(index, count) { + while (--count && next()) + if (character < 48 || character > 102 || character > 57 && character < 65 || character > 70 && character < 97) + break; + return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32)); +} +function delimiter(type2) { + while (next()) + switch (character) { + case type2: + return position; + case 34: + case 39: + if (type2 !== 34 && type2 !== 39) + delimiter(character); + break; + case 40: + if (type2 === 41) + delimiter(type2); + break; + case 92: + next(); + break; + } + return position; +} +function commenter(type2, index) { + while (next()) + if (type2 + character === 47 + 10) + break; + else if (type2 + character === 42 + 42 && peek() === 47) + break; + return "/*" + slice(index, position - 1) + "*" + from(type2 === 47 ? type2 : next()); +} +function identifier(index) { + while (!token(peek())) + next(); + return slice(index, position); +} +function compile(value) { + return dealloc(parse$2("", null, null, null, [""], value = alloc(value), 0, [0], value)); +} +function parse$2(value, root2, parent, rule, rules, rulesets, pseudo, points, declarations) { + var index = 0; + var offset = 0; + var length2 = pseudo; + var atrule = 0; + var property = 0; + var previous = 0; + var variable = 1; + var scanning = 1; + var ampersand = 1; + var character2 = 0; + var type2 = ""; + var props = rules; + var children2 = rulesets; + var reference = rule; + var characters2 = type2; + while (scanning) + switch (previous = character2, character2 = next()) { + case 40: + if (previous != 108 && charat(characters2, length2 - 1) == 58) { + if (indexof(characters2 += replace(delimit(character2), "&", "&\f"), "&\f", abs(index ? points[index - 1] : 0)) != -1) + ampersand = -1; + break; + } + case 34: + case 39: + case 91: + characters2 += delimit(character2); + break; + case 9: + case 10: + case 13: + case 32: + characters2 += whitespace(previous); + break; + case 92: + characters2 += escaping(caret() - 1, 7); + continue; + case 47: + switch (peek()) { + case 42: + case 47: + append(comment(commenter(next(), caret()), root2, parent, declarations), declarations); + break; + default: + characters2 += "/"; + } + break; + case 123 * variable: + points[index++] = strlen(characters2) * ampersand; + case 125 * variable: + case 59: + case 0: + switch (character2) { + case 0: + case 125: + scanning = 0; + case 59 + offset: + if (ampersand == -1) + characters2 = replace(characters2, /\f/g, ""); + if (property > 0 && strlen(characters2) - length2) + append(property > 32 ? declaration(characters2 + ";", rule, parent, length2 - 1, declarations) : declaration(replace(characters2, " ", "") + ";", rule, parent, length2 - 2, declarations), declarations); + break; + case 59: + characters2 += ";"; + default: + append(reference = ruleset(characters2, root2, parent, index, offset, rules, points, type2, props = [], children2 = [], length2, rulesets), rulesets); + if (character2 === 123) + if (offset === 0) + parse$2(characters2, root2, reference, reference, props, rulesets, length2, points, children2); + else + switch (atrule === 99 && charat(characters2, 3) === 110 ? 100 : atrule) { + case 100: + case 108: + case 109: + case 115: + parse$2(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type2, rules, props = [], length2, children2), children2), rules, children2, length2, points, rule ? props : children2); + break; + default: + parse$2(characters2, reference, reference, reference, [""], children2, 0, points, children2); + } + } + index = offset = property = 0, variable = ampersand = 1, type2 = characters2 = "", length2 = pseudo; + break; + case 58: + length2 = 1 + strlen(characters2), property = previous; + default: + if (variable < 1) { + if (character2 == 123) + --variable; + else if (character2 == 125 && variable++ == 0 && prev() == 125) + continue; + } + switch (characters2 += from(character2), character2 * variable) { + case 38: + ampersand = offset > 0 ? 1 : (characters2 += "\f", -1); + break; + case 44: + points[index++] = (strlen(characters2) - 1) * ampersand, ampersand = 1; + break; + case 64: + if (peek() === 45) + characters2 += delimit(next()); + atrule = peek(), offset = length2 = strlen(type2 = characters2 += identifier(caret())), character2++; + break; + case 45: + if (previous === 45 && strlen(characters2) == 2) + variable = 0; + } + } + return rulesets; +} +function ruleset(value, root2, parent, index, offset, rules, points, type2, props, children2, length2, siblings) { + var post = offset - 1; + var rule = offset === 0 ? rules : [""]; + var size = sizeof(rule); + for (var i = 0, j = 0, k = 0; i < index; ++i) + for (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x) + if (z = trim(j > 0 ? rule[x] + " " + y : replace(y, /&\f/g, rule[x]))) + props[k++] = z; + return node(value, root2, parent, offset === 0 ? RULESET : type2, props, children2, length2, siblings); +} +function comment(value, root2, parent, siblings) { + return node(value, root2, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings); +} +function declaration(value, root2, parent, length2, siblings) { + return node(value, root2, parent, DECLARATION, substr(value, 0, length2), substr(value, length2 + 1, -1), length2, siblings); +} +function serialize(children2, callback) { + var output = ""; + for (var i = 0; i < children2.length; i++) + output += callback(children2[i], i, children2, callback) || ""; + return output; +} +function stringify(element, index, children2, callback) { + switch (element.type) { + case LAYER: + if (element.children.length) + break; + case IMPORT: + case DECLARATION: + return element.return = element.return || element.value; + case COMMENT: + return ""; + case KEYFRAMES: + return element.return = element.value + "{" + serialize(element.children, callback) + "}"; + case RULESET: + if (!strlen(element.value = element.props.join(","))) + return ""; + } + return strlen(children2 = serialize(element.children, callback)) ? element.return = element.value + "{" + children2 + "}" : ""; +} +const version = "10.9.1"; +const defaultConfig$1 = Object.freeze(defaultConfig$2); +let siteConfig = assignWithDepth$1({}, defaultConfig$1); +let configFromInitialize; +let directives = []; +let currentConfig = assignWithDepth$1({}, defaultConfig$1); +const updateCurrentConfig = (siteCfg, _directives) => { + let cfg = assignWithDepth$1({}, siteCfg); + let sumOfDirectives = {}; + for (const d of _directives) { + sanitize(d); + sumOfDirectives = assignWithDepth$1(sumOfDirectives, d); + } + cfg = assignWithDepth$1(cfg, sumOfDirectives); + if (sumOfDirectives.theme && sumOfDirectives.theme in theme) { + const tmpConfigFromInitialize = assignWithDepth$1({}, configFromInitialize); + const themeVariables = assignWithDepth$1( + tmpConfigFromInitialize.themeVariables || {}, + sumOfDirectives.themeVariables + ); + if (cfg.theme && cfg.theme in theme) { + cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables); + } + } + currentConfig = cfg; + checkConfig(currentConfig); + return currentConfig; +}; +const setSiteConfig = (conf) => { + siteConfig = assignWithDepth$1({}, defaultConfig$1); + siteConfig = assignWithDepth$1(siteConfig, conf); + if (conf.theme && theme[conf.theme]) { + siteConfig.themeVariables = theme[conf.theme].getThemeVariables(conf.themeVariables); + } + updateCurrentConfig(siteConfig, directives); + return siteConfig; +}; +const saveConfigFromInitialize = (conf) => { + configFromInitialize = assignWithDepth$1({}, conf); +}; +const updateSiteConfig = (conf) => { + siteConfig = assignWithDepth$1(siteConfig, conf); + updateCurrentConfig(siteConfig, directives); + return siteConfig; +}; +const getSiteConfig = () => { + return assignWithDepth$1({}, siteConfig); +}; +const setConfig$1 = (conf) => { + checkConfig(conf); + assignWithDepth$1(currentConfig, conf); + return getConfig$1(); +}; +const getConfig$1 = () => { + return assignWithDepth$1({}, currentConfig); +}; +const sanitize = (options) => { + if (!options) { + return; + } + ["secure", ...siteConfig.secure ?? []].forEach((key) => { + if (Object.hasOwn(options, key)) { + log$1.debug(`Denied attempt to modify a secure key ${key}`, options[key]); + delete options[key]; + } + }); + Object.keys(options).forEach((key) => { + if (key.startsWith("__")) { + delete options[key]; + } + }); + Object.keys(options).forEach((key) => { + if (typeof options[key] === "string" && (options[key].includes("<") || options[key].includes(">") || options[key].includes("url(data:"))) { + delete options[key]; + } + if (typeof options[key] === "object") { + sanitize(options[key]); + } + }); +}; +const addDirective = (directive) => { + sanitizeDirective(directive); + if (directive.fontFamily && (!directive.themeVariables || !directive.themeVariables.fontFamily)) { + directive.themeVariables = { fontFamily: directive.fontFamily }; + } + directives.push(directive); + updateCurrentConfig(siteConfig, directives); +}; +const reset = (config2 = siteConfig) => { + directives = []; + updateCurrentConfig(config2, directives); +}; +const ConfigWarning = { + LAZY_LOAD_DEPRECATED: "The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead." +}; +const issuedWarnings = {}; +const issueWarning = (warning) => { + if (issuedWarnings[warning]) { + return; + } + log$1.warn(ConfigWarning[warning]); + issuedWarnings[warning] = true; +}; +const checkConfig = (config2) => { + if (!config2) { + return; + } + if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) { + issueWarning("LAZY_LOAD_DEPRECATED"); + } +}; +const id$l = "c4"; +const detector$l = (txt) => { + return /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt); +}; +const loader$m = async () => { + const { diagram: diagram2 } = await import("./c4Diagram-af207393.js"); + return { id: id$l, diagram: diagram2 }; +}; +const plugin$j = { + id: id$l, + detector: detector$l, + loader: loader$m +}; +const c4 = plugin$j; +const id$k = "flowchart"; +const detector$k = (txt, config2) => { + var _a, _b; + if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === "elk") { + return false; + } + return /^\s*graph/.test(txt); +}; +const loader$l = async () => { + const { diagram: diagram2 } = await import("./flowDiagram-b5e7ba30.js"); + return { id: id$k, diagram: diagram2 }; +}; +const plugin$i = { + id: id$k, + detector: detector$k, + loader: loader$l +}; +const flowchart = plugin$i; +const id$j = "flowchart-v2"; +const detector$j = (txt, config2) => { + var _a, _b, _c; + if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "dagre-d3" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === "elk") { + return false; + } + if (/^\s*graph/.test(txt) && ((_c = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _c.defaultRenderer) === "dagre-wrapper") { + return true; + } + return /^\s*flowchart/.test(txt); +}; +const loader$k = async () => { + const { diagram: diagram2 } = await import("./flowDiagram-v2-54711e03.js"); + return { id: id$j, diagram: diagram2 }; +}; +const plugin$h = { + id: id$j, + detector: detector$j, + loader: loader$k +}; +const flowchartV2 = plugin$h; +const id$i = "er"; +const detector$i = (txt) => { + return /^\s*erDiagram/.test(txt); +}; +const loader$j = async () => { + const { diagram: diagram2 } = await import("./erDiagram-543717f2.js"); + return { id: id$i, diagram: diagram2 }; +}; +const plugin$g = { + id: id$i, + detector: detector$i, + loader: loader$j +}; +const er = plugin$g; +const id$h = "gitGraph"; +const detector$h = (txt) => { + return /^\s*gitGraph/.test(txt); +}; +const loader$i = async () => { + const { diagram: diagram2 } = await import("./gitGraphDiagram-b9392a12.js"); + return { id: id$h, diagram: diagram2 }; +}; +const plugin$f = { + id: id$h, + detector: detector$h, + loader: loader$i +}; +const git = plugin$f; +const id$g = "gantt"; +const detector$g = (txt) => { + return /^\s*gantt/.test(txt); +}; +const loader$h = async () => { + const { diagram: diagram2 } = await import("./ganttDiagram-12cf43db.js"); + return { id: id$g, diagram: diagram2 }; +}; +const plugin$e = { + id: id$g, + detector: detector$g, + loader: loader$h +}; +const gantt = plugin$e; +const id$f = "info"; +const detector$f = (txt) => { + return /^\s*info/.test(txt); +}; +const loader$g = async () => { + const { diagram: diagram2 } = await import("./infoDiagram-d0d5c9bd.js"); + return { id: id$f, diagram: diagram2 }; +}; +const info = { + id: id$f, + detector: detector$f, + loader: loader$g +}; +const id$e = "pie"; +const detector$e = (txt) => { + return /^\s*pie/.test(txt); +}; +const loader$f = async () => { + const { diagram: diagram2 } = await import("./pieDiagram-e854eaf0.js"); + return { id: id$e, diagram: diagram2 }; +}; +const pie = { + id: id$e, + detector: detector$e, + loader: loader$f +}; +const id$d = "quadrantChart"; +const detector$d = (txt) => { + return /^\s*quadrantChart/.test(txt); +}; +const loader$e = async () => { + const { diagram: diagram2 } = await import("./quadrantDiagram-25a9848b.js"); + return { id: id$d, diagram: diagram2 }; +}; +const plugin$d = { + id: id$d, + detector: detector$d, + loader: loader$e +}; +const quadrantChart = plugin$d; +const id$c = "xychart"; +const detector$c = (txt) => { + return /^\s*xychart-beta/.test(txt); +}; +const loader$d = async () => { + const { diagram: diagram2 } = await import("./xychartDiagram-de2e5521.js"); + return { id: id$c, diagram: diagram2 }; +}; +const plugin$c = { + id: id$c, + detector: detector$c, + loader: loader$d +}; +const xychart = plugin$c; +const id$b = "requirement"; +const detector$b = (txt) => { + return /^\s*requirement(Diagram)?/.test(txt); +}; +const loader$c = async () => { + const { diagram: diagram2 } = await import("./requirementDiagram-a721e157.js"); + return { id: id$b, diagram: diagram2 }; +}; +const plugin$b = { + id: id$b, + detector: detector$b, + loader: loader$c +}; +const requirement = plugin$b; +const id$a = "sequence"; +const detector$a = (txt) => { + return /^\s*sequenceDiagram/.test(txt); +}; +const loader$b = async () => { + const { diagram: diagram2 } = await import("./sequenceDiagram-9813c129.js"); + return { id: id$a, diagram: diagram2 }; +}; +const plugin$a = { + id: id$a, + detector: detector$a, + loader: loader$b +}; +const sequence = plugin$a; +const id$9 = "class"; +const detector$9 = (txt, config2) => { + var _a; + if (((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") { + return false; + } + return /^\s*classDiagram/.test(txt); +}; +const loader$a = async () => { + const { diagram: diagram2 } = await import("./classDiagram-72b9c71d.js"); + return { id: id$9, diagram: diagram2 }; +}; +const plugin$9 = { + id: id$9, + detector: detector$9, + loader: loader$a +}; +const classDiagram = plugin$9; +const id$8 = "classDiagram"; +const detector$8 = (txt, config2) => { + var _a; + if (/^\s*classDiagram/.test(txt) && ((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") { + return true; + } + return /^\s*classDiagram-v2/.test(txt); +}; +const loader$9 = async () => { + const { diagram: diagram2 } = await import("./classDiagram-v2-fedb80f6.js"); + return { id: id$8, diagram: diagram2 }; +}; +const plugin$8 = { + id: id$8, + detector: detector$8, + loader: loader$9 +}; +const classDiagramV2 = plugin$8; +const id$7 = "state"; +const detector$7 = (txt, config2) => { + var _a; + if (((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") { + return false; + } + return /^\s*stateDiagram/.test(txt); +}; +const loader$8 = async () => { + const { diagram: diagram2 } = await import("./stateDiagram-5ec31577.js"); + return { id: id$7, diagram: diagram2 }; +}; +const plugin$7 = { + id: id$7, + detector: detector$7, + loader: loader$8 +}; +const state = plugin$7; +const id$6 = "stateDiagram"; +const detector$6 = (txt, config2) => { + var _a; + if (/^\s*stateDiagram-v2/.test(txt)) { + return true; + } + if (/^\s*stateDiagram/.test(txt) && ((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") { + return true; + } + return false; +}; +const loader$7 = async () => { + const { diagram: diagram2 } = await import("./stateDiagram-v2-992e82a1.js"); + return { id: id$6, diagram: diagram2 }; +}; +const plugin$6 = { + id: id$6, + detector: detector$6, + loader: loader$7 +}; +const stateV2 = plugin$6; +const id$5 = "journey"; +const detector$5 = (txt) => { + return /^\s*journey/.test(txt); +}; +const loader$6 = async () => { + const { diagram: diagram2 } = await import("./journeyDiagram-b56e6921.js"); + return { id: id$5, diagram: diagram2 }; +}; +const plugin$5 = { + id: id$5, + detector: detector$5, + loader: loader$6 +}; +const journey = plugin$5; +const d3Attrs = function(d3Elem, attrs) { + for (let attr of attrs) { + d3Elem.attr(attr[0], attr[1]); + } +}; +const calculateSvgSizeAttrs = function(height, width, useMaxWidth) { + let attrs = /* @__PURE__ */ new Map(); + if (useMaxWidth) { + attrs.set("width", "100%"); + attrs.set("style", `max-width: ${width}px;`); + } else { + attrs.set("height", height); + attrs.set("width", width); + } + return attrs; +}; +const configureSvgSize = function(svgElem, height, width, useMaxWidth) { + const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth); + d3Attrs(svgElem, attrs); +}; +const setupGraphViewbox$1 = function(graph, svgElem, padding, useMaxWidth) { + const svgBounds = svgElem.node().getBBox(); + const sWidth = svgBounds.width; + const sHeight = svgBounds.height; + log$1.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds); + let width = 0; + let height = 0; + log$1.info(`Graph bounds: ${width}x${height}`, graph); + width = sWidth + padding * 2; + height = sHeight + padding * 2; + log$1.info(`Calculated bounds: ${width}x${height}`); + configureSvgSize(svgElem, height, width, useMaxWidth); + const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${svgBounds.width + 2 * padding} ${svgBounds.height + 2 * padding}`; + svgElem.attr("viewBox", vBox); +}; +const themes = {}; +const getStyles = (type2, userStyles, options) => { + let diagramStyles = ""; + if (type2 in themes && themes[type2]) { + diagramStyles = themes[type2](options); + } else { + log$1.warn(`No theme found for ${type2}`); + } + return ` & { + font-family: ${options.fontFamily}; + font-size: ${options.fontSize}; + fill: ${options.textColor} + } + + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${options.errorBkgColor}; + } + & .error-text { + fill: ${options.errorTextColor}; + stroke: ${options.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 2px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${options.lineColor}; + stroke: ${options.lineColor}; + } + & .marker.cross { + stroke: ${options.lineColor}; + } + + & svg { + font-family: ${options.fontFamily}; + font-size: ${options.fontSize}; + } + + ${diagramStyles} + + ${userStyles} +`; +}; +const addStylesForDiagram = (type2, diagramTheme) => { + if (diagramTheme !== void 0) { + themes[type2] = diagramTheme; + } +}; +const getStyles$1 = getStyles; +let accTitle = ""; +let diagramTitle = ""; +let accDescription = ""; +const sanitizeText$1 = (txt) => sanitizeText$2(txt, getConfig$1()); +const clear = () => { + accTitle = ""; + accDescription = ""; + diagramTitle = ""; +}; +const setAccTitle = (txt) => { + accTitle = sanitizeText$1(txt).replace(/^\s+/g, ""); +}; +const getAccTitle = () => accTitle; +const setAccDescription = (txt) => { + accDescription = sanitizeText$1(txt).replace(/\n\s+/g, "\n"); +}; +const getAccDescription = () => accDescription; +const setDiagramTitle = (txt) => { + diagramTitle = sanitizeText$1(txt); +}; +const getDiagramTitle = () => diagramTitle; +const commonDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + clear, + getAccDescription, + getAccTitle, + getDiagramTitle, + setAccDescription, + setAccTitle, + setDiagramTitle +}, Symbol.toStringTag, { value: "Module" })); +const log = log$1; +const setLogLevel = setLogLevel$1; +const getConfig = getConfig$1; +const setConfig = setConfig$1; +const defaultConfig = defaultConfig$1; +const sanitizeText = (text2) => sanitizeText$2(text2, getConfig()); +const setupGraphViewbox = setupGraphViewbox$1; +const getCommonDb = () => { + return commonDb; +}; +const diagrams = {}; +const registerDiagram = (id2, diagram2, detector2) => { + var _a; + if (diagrams[id2]) { + throw new Error(`Diagram ${id2} already registered.`); + } + diagrams[id2] = diagram2; + if (detector2) { + addDetector(id2, detector2); + } + addStylesForDiagram(id2, diagram2.styles); + (_a = diagram2.injectUtils) == null ? void 0 : _a.call( + diagram2, + log, + setLogLevel, + getConfig, + sanitizeText, + setupGraphViewbox, + getCommonDb(), + () => { + } + ); +}; +const getDiagram = (name) => { + if (name in diagrams) { + return diagrams[name]; + } + throw new DiagramNotFoundError(name); +}; +class DiagramNotFoundError extends Error { + constructor(name) { + super(`Diagram ${name} not found.`); + } +} +const selectSvgElement = (id2) => { + var _a; + const { securityLevel } = getConfig(); + let root2 = d3select("body"); + if (securityLevel === "sandbox") { + const sandboxElement = d3select(`#i${id2}`); + const doc = ((_a = sandboxElement.node()) == null ? void 0 : _a.contentDocument) ?? document; + root2 = d3select(doc.body); + } + const svg2 = root2.select(`#${id2}`); + return svg2; +}; +const draw = (_text, id2, version2) => { + log$1.debug("rendering svg for syntax error\n"); + const svg2 = selectSvgElement(id2); + const g = svg2.append("g"); + svg2.attr("viewBox", "0 0 2412 512"); + configureSvgSize(svg2, 100, 512, true); + g.append("path").attr("class", "error-icon").attr( + "d", + "m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z" + ); + g.append("path").attr("class", "error-icon").attr( + "d", + "m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z" + ); + g.append("path").attr("class", "error-icon").attr( + "d", + "m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z" + ); + g.append("path").attr("class", "error-icon").attr( + "d", + "m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z" + ); + g.append("path").attr("class", "error-icon").attr( + "d", + "m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z" + ); + g.append("path").attr("class", "error-icon").attr( + "d", + "m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z" + ); + g.append("text").attr("class", "error-text").attr("x", 1440).attr("y", 250).attr("font-size", "150px").style("text-anchor", "middle").text("Syntax error in text"); + g.append("text").attr("class", "error-text").attr("x", 1250).attr("y", 400).attr("font-size", "100px").style("text-anchor", "middle").text(`mermaid version ${version2}`); +}; +const renderer = { draw }; +const errorRenderer = renderer; +const diagram = { + db: {}, + renderer, + parser: { + parser: { yy: {} }, + parse: () => { + return; + } + } +}; +const errorDiagram = diagram; +const id$4 = "flowchart-elk"; +const detector$4 = (txt, config2) => { + var _a; + if ( + // If diagram explicitly states flowchart-elk + /^\s*flowchart-elk/.test(txt) || // If a flowchart/graph diagram has their default renderer set to elk + /^\s*flowchart|graph/.test(txt) && ((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "elk" + ) { + return true; + } + return false; +}; +const loader$5 = async () => { + const { diagram: diagram2 } = await import("./flowchart-elk-definition-2d49707c.js"); + return { id: id$4, diagram: diagram2 }; +}; +const plugin$4 = { + id: id$4, + detector: detector$4, + loader: loader$5 +}; +const flowchartElk = plugin$4; +const id$3 = "timeline"; +const detector$3 = (txt) => { + return /^\s*timeline/.test(txt); +}; +const loader$4 = async () => { + const { diagram: diagram2 } = await import("./timeline-definition-23ce0e2e.js"); + return { id: id$3, diagram: diagram2 }; +}; +const plugin$3 = { + id: id$3, + detector: detector$3, + loader: loader$4 +}; +const timeline = plugin$3; +const id$2 = "mindmap"; +const detector$2 = (txt) => { + return /^\s*mindmap/.test(txt); +}; +const loader$3 = async () => { + const { diagram: diagram2 } = await import("./mindmap-definition-696ddea4.js"); + return { id: id$2, diagram: diagram2 }; +}; +const plugin$2 = { + id: id$2, + detector: detector$2, + loader: loader$3 +}; +const mindmap = plugin$2; +const id$1 = "sankey"; +const detector$1 = (txt) => { + return /^\s*sankey-beta/.test(txt); +}; +const loader$2 = async () => { + const { diagram: diagram2 } = await import("./sankeyDiagram-33525efb.js"); + return { id: id$1, diagram: diagram2 }; +}; +const plugin$1 = { + id: id$1, + detector: detector$1, + loader: loader$2 +}; +const sankey = plugin$1; +const id = "block"; +const detector = (txt) => { + return /^\s*block-beta/.test(txt); +}; +const loader$1 = async () => { + const { diagram: diagram2 } = await import("./blockDiagram-efe38566.js"); + return { id, diagram: diagram2 }; +}; +const plugin = { + id, + detector, + loader: loader$1 +}; +const block = plugin; +let hasLoadedDiagrams = false; +const addDiagrams = () => { + if (hasLoadedDiagrams) { + return; + } + hasLoadedDiagrams = true; + registerDiagram("error", errorDiagram, (text2) => { + return text2.toLowerCase().trim() === "error"; + }); + registerDiagram( + "---", + // --- diagram type may appear if YAML front-matter is not parsed correctly + { + db: { + clear: () => { + } + }, + styles: {}, + // should never be used + renderer: { + draw: () => { + } + }, + parser: { + parser: { yy: {} }, + parse: () => { + throw new Error( + "Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks" + ); + } + }, + init: () => null + // no op + }, + (text2) => { + return text2.toLowerCase().trimStart().startsWith("---"); + } + ); + registerLazyLoadedDiagrams( + c4, + classDiagramV2, + classDiagram, + er, + gantt, + info, + pie, + requirement, + sequence, + flowchartElk, + flowchartV2, + flowchart, + mindmap, + timeline, + git, + stateV2, + state, + journey, + quadrantChart, + sankey, + xychart, + block + ); +}; +class Diagram { + constructor(text2, metadata = {}) { + this.text = text2; + this.metadata = metadata; + this.type = "graph"; + this.text = encodeEntities(text2); + this.text += "\n"; + const cnf = getConfig$1(); + try { + this.type = detectType(text2, cnf); + } catch (e) { + this.type = "error"; + this.detectError = e; + } + const diagram2 = getDiagram(this.type); + log$1.debug("Type " + this.type); + this.db = diagram2.db; + this.renderer = diagram2.renderer; + this.parser = diagram2.parser; + this.parser.parser.yy = this.db; + this.init = diagram2.init; + this.parse(); + } + parse() { + var _a, _b, _c, _d, _e; + if (this.detectError) { + throw this.detectError; + } + (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a); + const config2 = getConfig$1(); + (_c = this.init) == null ? void 0 : _c.call(this, config2); + if (this.metadata.title) { + (_e = (_d = this.db).setDiagramTitle) == null ? void 0 : _e.call(_d, this.metadata.title); + } + this.parser.parse(this.text); + } + async render(id2, version2) { + await this.renderer.draw(this.text, id2, version2, this); + } + getParser() { + return this.parser; + } + getType() { + return this.type; + } +} +const getDiagramFromText$1 = async (text2, metadata = {}) => { + const type2 = detectType(text2, getConfig$1()); + try { + getDiagram(type2); + } catch (error) { + const loader2 = getDiagramLoader(type2); + if (!loader2) { + throw new UnknownDiagramError(`Diagram ${type2} not found.`); + } + const { id: id2, diagram: diagram2 } = await loader2(); + registerDiagram(id2, diagram2); + } + return new Diagram(text2, metadata); +}; +let interactionFunctions = []; +const attachFunctions = () => { + interactionFunctions.forEach((f) => { + f(); + }); + interactionFunctions = []; +}; +var nativeKeys = overArg(Object.keys, Object); +const nativeKeys$1 = nativeKeys; +var objectProto$1 = Object.prototype; +var hasOwnProperty$1 = objectProto$1.hasOwnProperty; +function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys$1(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty$1.call(object, key) && key != "constructor") { + result.push(key); + } + } + return result; +} +var DataView = getNative(root$1, "DataView"); +const DataView$1 = DataView; +var Promise$1 = getNative(root$1, "Promise"); +const Promise$2 = Promise$1; +var Set$1 = getNative(root$1, "Set"); +const Set$2 = Set$1; +var WeakMap = getNative(root$1, "WeakMap"); +const WeakMap$1 = WeakMap; +var mapTag$1 = "[object Map]", objectTag = "[object Object]", promiseTag = "[object Promise]", setTag$1 = "[object Set]", weakMapTag = "[object WeakMap]"; +var dataViewTag = "[object DataView]"; +var dataViewCtorString = toSource(DataView$1), mapCtorString = toSource(Map$2), promiseCtorString = toSource(Promise$2), setCtorString = toSource(Set$2), weakMapCtorString = toSource(WeakMap$1); +var getTag = baseGetTag; +if (DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag || Map$2 && getTag(new Map$2()) != mapTag$1 || Promise$2 && getTag(Promise$2.resolve()) != promiseTag || Set$2 && getTag(new Set$2()) != setTag$1 || WeakMap$1 && getTag(new WeakMap$1()) != weakMapTag) { + getTag = function(value) { + var result = baseGetTag(value), Ctor = result == objectTag ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : ""; + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: + return dataViewTag; + case mapCtorString: + return mapTag$1; + case promiseCtorString: + return promiseTag; + case setCtorString: + return setTag$1; + case weakMapCtorString: + return weakMapTag; + } + } + return result; + }; +} +const getTag$1 = getTag; +var mapTag = "[object Map]", setTag = "[object Set]"; +var objectProto = Object.prototype; +var hasOwnProperty = objectProto.hasOwnProperty; +function isEmpty(value) { + if (value == null) { + return true; + } + if (isArrayLike(value) && (isArray$1(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer$1(value) || isTypedArray$1(value) || isArguments$1(value))) { + return !value.length; + } + var tag = getTag$1(value); + if (tag == mapTag || tag == setTag) { + return !value.size; + } + if (isPrototype(value)) { + return !baseKeys(value).length; + } + for (var key in value) { + if (hasOwnProperty.call(value, key)) { + return false; + } + } + return true; +} +const SVG_ROLE = "graphics-document document"; +function setA11yDiagramInfo(svg2, diagramType) { + svg2.attr("role", SVG_ROLE); + if (diagramType !== "") { + svg2.attr("aria-roledescription", diagramType); + } +} +function addSVGa11yTitleDescription(svg2, a11yTitle, a11yDesc, baseId) { + if (svg2.insert === void 0) { + return; + } + if (a11yDesc) { + const descId = `chart-desc-${baseId}`; + svg2.attr("aria-describedby", descId); + svg2.insert("desc", ":first-child").attr("id", descId).text(a11yDesc); + } + if (a11yTitle) { + const titleId = `chart-title-${baseId}`; + svg2.attr("aria-labelledby", titleId); + svg2.insert("title", ":first-child").attr("id", titleId).text(a11yTitle); + } +} +const cleanupComments = (text2) => { + return text2.replace(/^\s*%%(?!{)[^\n]+\n?/gm, "").trimStart(); +}; +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ +function isNothing(subject) { + return typeof subject === "undefined" || subject === null; +} +function isObject(subject) { + return typeof subject === "object" && subject !== null; +} +function toArray(sequence2) { + if (Array.isArray(sequence2)) + return sequence2; + else if (isNothing(sequence2)) + return []; + return [sequence2]; +} +function extend(target, source) { + var index, length2, key, sourceKeys; + if (source) { + sourceKeys = Object.keys(source); + for (index = 0, length2 = sourceKeys.length; index < length2; index += 1) { + key = sourceKeys[index]; + target[key] = source[key]; + } + } + return target; +} +function repeat(string, count) { + var result = "", cycle; + for (cycle = 0; cycle < count; cycle += 1) { + result += string; + } + return result; +} +function isNegativeZero(number) { + return number === 0 && Number.NEGATIVE_INFINITY === 1 / number; +} +var isNothing_1 = isNothing; +var isObject_1 = isObject; +var toArray_1 = toArray; +var repeat_1 = repeat; +var isNegativeZero_1 = isNegativeZero; +var extend_1 = extend; +var common = { + isNothing: isNothing_1, + isObject: isObject_1, + toArray: toArray_1, + repeat: repeat_1, + isNegativeZero: isNegativeZero_1, + extend: extend_1 +}; +function formatError(exception2, compact) { + var where = "", message = exception2.reason || "(unknown reason)"; + if (!exception2.mark) + return message; + if (exception2.mark.name) { + where += 'in "' + exception2.mark.name + '" '; + } + where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")"; + if (!compact && exception2.mark.snippet) { + where += "\n\n" + exception2.mark.snippet; + } + return message + " " + where; +} +function YAMLException$1(reason, mark) { + Error.call(this); + this.name = "YAMLException"; + this.reason = reason; + this.mark = mark; + this.message = formatError(this, false); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = new Error().stack || ""; + } +} +YAMLException$1.prototype = Object.create(Error.prototype); +YAMLException$1.prototype.constructor = YAMLException$1; +YAMLException$1.prototype.toString = function toString(compact) { + return this.name + ": " + formatError(this, compact); +}; +var exception = YAMLException$1; +function getLine(buffer, lineStart, lineEnd, position2, maxLineLength) { + var head = ""; + var tail = ""; + var maxHalfLength = Math.floor(maxLineLength / 2) - 1; + if (position2 - lineStart > maxHalfLength) { + head = " ... "; + lineStart = position2 - maxHalfLength + head.length; + } + if (lineEnd - position2 > maxHalfLength) { + tail = " ..."; + lineEnd = position2 + maxHalfLength - tail.length; + } + return { + str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, "→") + tail, + pos: position2 - lineStart + head.length + // relative position + }; +} +function padStart(string, max2) { + return common.repeat(" ", max2 - string.length) + string; +} +function makeSnippet(mark, options) { + options = Object.create(options || null); + if (!mark.buffer) + return null; + if (!options.maxLength) + options.maxLength = 79; + if (typeof options.indent !== "number") + options.indent = 1; + if (typeof options.linesBefore !== "number") + options.linesBefore = 3; + if (typeof options.linesAfter !== "number") + options.linesAfter = 2; + var re = /\r?\n|\r|\0/g; + var lineStarts = [0]; + var lineEnds = []; + var match; + var foundLineNo = -1; + while (match = re.exec(mark.buffer)) { + lineEnds.push(match.index); + lineStarts.push(match.index + match[0].length); + if (mark.position <= match.index && foundLineNo < 0) { + foundLineNo = lineStarts.length - 2; + } + } + if (foundLineNo < 0) + foundLineNo = lineStarts.length - 1; + var result = "", i, line2; + var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; + var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); + for (i = 1; i <= options.linesBefore; i++) { + if (foundLineNo - i < 0) + break; + line2 = getLine( + mark.buffer, + lineStarts[foundLineNo - i], + lineEnds[foundLineNo - i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), + maxLineLength + ); + result = common.repeat(" ", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + " | " + line2.str + "\n" + result; + } + line2 = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); + result += common.repeat(" ", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line2.str + "\n"; + result += common.repeat("-", options.indent + lineNoLength + 3 + line2.pos) + "^\n"; + for (i = 1; i <= options.linesAfter; i++) { + if (foundLineNo + i >= lineEnds.length) + break; + line2 = getLine( + mark.buffer, + lineStarts[foundLineNo + i], + lineEnds[foundLineNo + i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), + maxLineLength + ); + result += common.repeat(" ", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + " | " + line2.str + "\n"; + } + return result.replace(/\n$/, ""); +} +var snippet = makeSnippet; +var TYPE_CONSTRUCTOR_OPTIONS = [ + "kind", + "multi", + "resolve", + "construct", + "instanceOf", + "predicate", + "represent", + "representName", + "defaultStyle", + "styleAliases" +]; +var YAML_NODE_KINDS = [ + "scalar", + "sequence", + "mapping" +]; +function compileStyleAliases(map2) { + var result = {}; + if (map2 !== null) { + Object.keys(map2).forEach(function(style) { + map2[style].forEach(function(alias) { + result[String(alias)] = style; + }); + }); + } + return result; +} +function Type$1(tag, options) { + options = options || {}; + Object.keys(options).forEach(function(name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + this.options = options; + this.tag = tag; + this.kind = options["kind"] || null; + this.resolve = options["resolve"] || function() { + return true; + }; + this.construct = options["construct"] || function(data) { + return data; + }; + this.instanceOf = options["instanceOf"] || null; + this.predicate = options["predicate"] || null; + this.represent = options["represent"] || null; + this.representName = options["representName"] || null; + this.defaultStyle = options["defaultStyle"] || null; + this.multi = options["multi"] || false; + this.styleAliases = compileStyleAliases(options["styleAliases"] || null); + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } +} +var type = Type$1; +function compileList(schema2, name) { + var result = []; + schema2[name].forEach(function(currentType) { + var newIndex = result.length; + result.forEach(function(previousType, previousIndex) { + if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) { + newIndex = previousIndex; + } + }); + result[newIndex] = currentType; + }); + return result; +} +function compileMap() { + var result = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {}, + multi: { + scalar: [], + sequence: [], + mapping: [], + fallback: [] + } + }, index, length2; + function collectType(type2) { + if (type2.multi) { + result.multi[type2.kind].push(type2); + result.multi["fallback"].push(type2); + } else { + result[type2.kind][type2.tag] = result["fallback"][type2.tag] = type2; + } + } + for (index = 0, length2 = arguments.length; index < length2; index += 1) { + arguments[index].forEach(collectType); + } + return result; +} +function Schema$1(definition) { + return this.extend(definition); +} +Schema$1.prototype.extend = function extend2(definition) { + var implicit = []; + var explicit = []; + if (definition instanceof type) { + explicit.push(definition); + } else if (Array.isArray(definition)) { + explicit = explicit.concat(definition); + } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { + if (definition.implicit) + implicit = implicit.concat(definition.implicit); + if (definition.explicit) + explicit = explicit.concat(definition.explicit); + } else { + throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })"); + } + implicit.forEach(function(type$1) { + if (!(type$1 instanceof type)) { + throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); + } + if (type$1.loadKind && type$1.loadKind !== "scalar") { + throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported."); + } + if (type$1.multi) { + throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit."); + } + }); + explicit.forEach(function(type$1) { + if (!(type$1 instanceof type)) { + throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); + } + }); + var result = Object.create(Schema$1.prototype); + result.implicit = (this.implicit || []).concat(implicit); + result.explicit = (this.explicit || []).concat(explicit); + result.compiledImplicit = compileList(result, "implicit"); + result.compiledExplicit = compileList(result, "explicit"); + result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); + return result; +}; +var schema = Schema$1; +var str = new type("tag:yaml.org,2002:str", { + kind: "scalar", + construct: function(data) { + return data !== null ? data : ""; + } +}); +var seq = new type("tag:yaml.org,2002:seq", { + kind: "sequence", + construct: function(data) { + return data !== null ? data : []; + } +}); +var map = new type("tag:yaml.org,2002:map", { + kind: "mapping", + construct: function(data) { + return data !== null ? data : {}; + } +}); +var failsafe = new schema({ + explicit: [ + str, + seq, + map + ] +}); +function resolveYamlNull(data) { + if (data === null) + return true; + var max2 = data.length; + return max2 === 1 && data === "~" || max2 === 4 && (data === "null" || data === "Null" || data === "NULL"); +} +function constructYamlNull() { + return null; +} +function isNull(object) { + return object === null; +} +var _null = new type("tag:yaml.org,2002:null", { + kind: "scalar", + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function() { + return "~"; + }, + lowercase: function() { + return "null"; + }, + uppercase: function() { + return "NULL"; + }, + camelcase: function() { + return "Null"; + }, + empty: function() { + return ""; + } + }, + defaultStyle: "lowercase" +}); +function resolveYamlBoolean(data) { + if (data === null) + return false; + var max2 = data.length; + return max2 === 4 && (data === "true" || data === "True" || data === "TRUE") || max2 === 5 && (data === "false" || data === "False" || data === "FALSE"); +} +function constructYamlBoolean(data) { + return data === "true" || data === "True" || data === "TRUE"; +} +function isBoolean(object) { + return Object.prototype.toString.call(object) === "[object Boolean]"; +} +var bool = new type("tag:yaml.org,2002:bool", { + kind: "scalar", + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function(object) { + return object ? "true" : "false"; + }, + uppercase: function(object) { + return object ? "TRUE" : "FALSE"; + }, + camelcase: function(object) { + return object ? "True" : "False"; + } + }, + defaultStyle: "lowercase" +}); +function isHexCode(c) { + return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102; +} +function isOctCode(c) { + return 48 <= c && c <= 55; +} +function isDecCode(c) { + return 48 <= c && c <= 57; +} +function resolveYamlInteger(data) { + if (data === null) + return false; + var max2 = data.length, index = 0, hasDigits = false, ch; + if (!max2) + return false; + ch = data[index]; + if (ch === "-" || ch === "+") { + ch = data[++index]; + } + if (ch === "0") { + if (index + 1 === max2) + return true; + ch = data[++index]; + if (ch === "b") { + index++; + for (; index < max2; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (ch !== "0" && ch !== "1") + return false; + hasDigits = true; + } + return hasDigits && ch !== "_"; + } + if (ch === "x") { + index++; + for (; index < max2; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (!isHexCode(data.charCodeAt(index))) + return false; + hasDigits = true; + } + return hasDigits && ch !== "_"; + } + if (ch === "o") { + index++; + for (; index < max2; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (!isOctCode(data.charCodeAt(index))) + return false; + hasDigits = true; + } + return hasDigits && ch !== "_"; + } + } + if (ch === "_") + return false; + for (; index < max2; index++) { + ch = data[index]; + if (ch === "_") + continue; + if (!isDecCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + if (!hasDigits || ch === "_") + return false; + return true; +} +function constructYamlInteger(data) { + var value = data, sign2 = 1, ch; + if (value.indexOf("_") !== -1) { + value = value.replace(/_/g, ""); + } + ch = value[0]; + if (ch === "-" || ch === "+") { + if (ch === "-") + sign2 = -1; + value = value.slice(1); + ch = value[0]; + } + if (value === "0") + return 0; + if (ch === "0") { + if (value[1] === "b") + return sign2 * parseInt(value.slice(2), 2); + if (value[1] === "x") + return sign2 * parseInt(value.slice(2), 16); + if (value[1] === "o") + return sign2 * parseInt(value.slice(2), 8); + } + return sign2 * parseInt(value, 10); +} +function isInteger(object) { + return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common.isNegativeZero(object)); +} +var int = new type("tag:yaml.org,2002:int", { + kind: "scalar", + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function(obj) { + return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1); + }, + octal: function(obj) { + return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1); + }, + decimal: function(obj) { + return obj.toString(10); + }, + /* eslint-disable max-len */ + hexadecimal: function(obj) { + return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1); + } + }, + defaultStyle: "decimal", + styleAliases: { + binary: [2, "bin"], + octal: [8, "oct"], + decimal: [10, "dec"], + hexadecimal: [16, "hex"] + } +}); +var YAML_FLOAT_PATTERN = new RegExp( + // 2.5e4, 2.5 and integers + "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$" +); +function resolveYamlFloat(data) { + if (data === null) + return false; + if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + data[data.length - 1] === "_") { + return false; + } + return true; +} +function constructYamlFloat(data) { + var value, sign2; + value = data.replace(/_/g, "").toLowerCase(); + sign2 = value[0] === "-" ? -1 : 1; + if ("+-".indexOf(value[0]) >= 0) { + value = value.slice(1); + } + if (value === ".inf") { + return sign2 === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + } else if (value === ".nan") { + return NaN; + } + return sign2 * parseFloat(value, 10); +} +var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; +function representYamlFloat(object, style) { + var res; + if (isNaN(object)) { + switch (style) { + case "lowercase": + return ".nan"; + case "uppercase": + return ".NAN"; + case "camelcase": + return ".NaN"; + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case "lowercase": + return ".inf"; + case "uppercase": + return ".INF"; + case "camelcase": + return ".Inf"; + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case "lowercase": + return "-.inf"; + case "uppercase": + return "-.INF"; + case "camelcase": + return "-.Inf"; + } + } else if (common.isNegativeZero(object)) { + return "-0.0"; + } + res = object.toString(10); + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res; +} +function isFloat(object) { + return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common.isNegativeZero(object)); +} +var float = new type("tag:yaml.org,2002:float", { + kind: "scalar", + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: "lowercase" +}); +var json = failsafe.extend({ + implicit: [ + _null, + bool, + int, + float + ] +}); +var core = json; +var YAML_DATE_REGEXP = new RegExp( + "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$" +); +var YAML_TIMESTAMP_REGEXP = new RegExp( + "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$" +); +function resolveYamlTimestamp(data) { + if (data === null) + return false; + if (YAML_DATE_REGEXP.exec(data) !== null) + return true; + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) + return true; + return false; +} +function constructYamlTimestamp(data) { + var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date; + match = YAML_DATE_REGEXP.exec(data); + if (match === null) + match = YAML_TIMESTAMP_REGEXP.exec(data); + if (match === null) + throw new Error("Date resolve error"); + year = +match[1]; + month = +match[2] - 1; + day = +match[3]; + if (!match[4]) { + return new Date(Date.UTC(year, month, day)); + } + hour = +match[4]; + minute = +match[5]; + second = +match[6]; + if (match[7]) { + fraction = match[7].slice(0, 3); + while (fraction.length < 3) { + fraction += "0"; + } + fraction = +fraction; + } + if (match[9]) { + tz_hour = +match[10]; + tz_minute = +(match[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 6e4; + if (match[9] === "-") + delta = -delta; + } + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + if (delta) + date.setTime(date.getTime() - delta); + return date; +} +function representYamlTimestamp(object) { + return object.toISOString(); +} +var timestamp = new type("tag:yaml.org,2002:timestamp", { + kind: "scalar", + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp +}); +function resolveYamlMerge(data) { + return data === "<<" || data === null; +} +var merge = new type("tag:yaml.org,2002:merge", { + kind: "scalar", + resolve: resolveYamlMerge +}); +var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"; +function resolveYamlBinary(data) { + if (data === null) + return false; + var code, idx, bitlen = 0, max2 = data.length, map2 = BASE64_MAP; + for (idx = 0; idx < max2; idx++) { + code = map2.indexOf(data.charAt(idx)); + if (code > 64) + continue; + if (code < 0) + return false; + bitlen += 6; + } + return bitlen % 8 === 0; +} +function constructYamlBinary(data) { + var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max2 = input.length, map2 = BASE64_MAP, bits = 0, result = []; + for (idx = 0; idx < max2; idx++) { + if (idx % 4 === 0 && idx) { + result.push(bits >> 16 & 255); + result.push(bits >> 8 & 255); + result.push(bits & 255); + } + bits = bits << 6 | map2.indexOf(input.charAt(idx)); + } + tailbits = max2 % 4 * 6; + if (tailbits === 0) { + result.push(bits >> 16 & 255); + result.push(bits >> 8 & 255); + result.push(bits & 255); + } else if (tailbits === 18) { + result.push(bits >> 10 & 255); + result.push(bits >> 2 & 255); + } else if (tailbits === 12) { + result.push(bits >> 4 & 255); + } + return new Uint8Array(result); +} +function representYamlBinary(object) { + var result = "", bits = 0, idx, tail, max2 = object.length, map2 = BASE64_MAP; + for (idx = 0; idx < max2; idx++) { + if (idx % 3 === 0 && idx) { + result += map2[bits >> 18 & 63]; + result += map2[bits >> 12 & 63]; + result += map2[bits >> 6 & 63]; + result += map2[bits & 63]; + } + bits = (bits << 8) + object[idx]; + } + tail = max2 % 3; + if (tail === 0) { + result += map2[bits >> 18 & 63]; + result += map2[bits >> 12 & 63]; + result += map2[bits >> 6 & 63]; + result += map2[bits & 63]; + } else if (tail === 2) { + result += map2[bits >> 10 & 63]; + result += map2[bits >> 4 & 63]; + result += map2[bits << 2 & 63]; + result += map2[64]; + } else if (tail === 1) { + result += map2[bits >> 2 & 63]; + result += map2[bits << 4 & 63]; + result += map2[64]; + result += map2[64]; + } + return result; +} +function isBinary(obj) { + return Object.prototype.toString.call(obj) === "[object Uint8Array]"; +} +var binary = new type("tag:yaml.org,2002:binary", { + kind: "scalar", + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary +}); +var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; +var _toString$2 = Object.prototype.toString; +function resolveYamlOmap(data) { + if (data === null) + return true; + var objectKeys = [], index, length2, pair, pairKey, pairHasKey, object = data; + for (index = 0, length2 = object.length; index < length2; index += 1) { + pair = object[index]; + pairHasKey = false; + if (_toString$2.call(pair) !== "[object Object]") + return false; + for (pairKey in pair) { + if (_hasOwnProperty$3.call(pair, pairKey)) { + if (!pairHasKey) + pairHasKey = true; + else + return false; + } + } + if (!pairHasKey) + return false; + if (objectKeys.indexOf(pairKey) === -1) + objectKeys.push(pairKey); + else + return false; + } + return true; +} +function constructYamlOmap(data) { + return data !== null ? data : []; +} +var omap = new type("tag:yaml.org,2002:omap", { + kind: "sequence", + resolve: resolveYamlOmap, + construct: constructYamlOmap +}); +var _toString$1 = Object.prototype.toString; +function resolveYamlPairs(data) { + if (data === null) + return true; + var index, length2, pair, keys, result, object = data; + result = new Array(object.length); + for (index = 0, length2 = object.length; index < length2; index += 1) { + pair = object[index]; + if (_toString$1.call(pair) !== "[object Object]") + return false; + keys = Object.keys(pair); + if (keys.length !== 1) + return false; + result[index] = [keys[0], pair[keys[0]]]; + } + return true; +} +function constructYamlPairs(data) { + if (data === null) + return []; + var index, length2, pair, keys, result, object = data; + result = new Array(object.length); + for (index = 0, length2 = object.length; index < length2; index += 1) { + pair = object[index]; + keys = Object.keys(pair); + result[index] = [keys[0], pair[keys[0]]]; + } + return result; +} +var pairs = new type("tag:yaml.org,2002:pairs", { + kind: "sequence", + resolve: resolveYamlPairs, + construct: constructYamlPairs +}); +var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; +function resolveYamlSet(data) { + if (data === null) + return true; + var key, object = data; + for (key in object) { + if (_hasOwnProperty$2.call(object, key)) { + if (object[key] !== null) + return false; + } + } + return true; +} +function constructYamlSet(data) { + return data !== null ? data : {}; +} +var set = new type("tag:yaml.org,2002:set", { + kind: "mapping", + resolve: resolveYamlSet, + construct: constructYamlSet +}); +var _default = core.extend({ + implicit: [ + timestamp, + merge + ], + explicit: [ + binary, + omap, + pairs, + set + ] +}); +var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; +var CONTEXT_FLOW_IN = 1; +var CONTEXT_FLOW_OUT = 2; +var CONTEXT_BLOCK_IN = 3; +var CONTEXT_BLOCK_OUT = 4; +var CHOMPING_CLIP = 1; +var CHOMPING_STRIP = 2; +var CHOMPING_KEEP = 3; +var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; +var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; +var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; +function _class(obj) { + return Object.prototype.toString.call(obj); +} +function is_EOL(c) { + return c === 10 || c === 13; +} +function is_WHITE_SPACE(c) { + return c === 9 || c === 32; +} +function is_WS_OR_EOL(c) { + return c === 9 || c === 32 || c === 10 || c === 13; +} +function is_FLOW_INDICATOR(c) { + return c === 44 || c === 91 || c === 93 || c === 123 || c === 125; +} +function fromHexCode(c) { + var lc; + if (48 <= c && c <= 57) { + return c - 48; + } + lc = c | 32; + if (97 <= lc && lc <= 102) { + return lc - 97 + 10; + } + return -1; +} +function escapedHexLen(c) { + if (c === 120) { + return 2; + } + if (c === 117) { + return 4; + } + if (c === 85) { + return 8; + } + return 0; +} +function fromDecimalCode(c) { + if (48 <= c && c <= 57) { + return c - 48; + } + return -1; +} +function simpleEscapeSequence(c) { + return c === 48 ? "\0" : c === 97 ? "\x07" : c === 98 ? "\b" : c === 116 ? " " : c === 9 ? " " : c === 110 ? "\n" : c === 118 ? "\v" : c === 102 ? "\f" : c === 114 ? "\r" : c === 101 ? "\x1B" : c === 32 ? " " : c === 34 ? '"' : c === 47 ? "/" : c === 92 ? "\\" : c === 78 ? "…" : c === 95 ? " " : c === 76 ? "\u2028" : c === 80 ? "\u2029" : ""; +} +function charFromCodepoint(c) { + if (c <= 65535) { + return String.fromCharCode(c); + } + return String.fromCharCode( + (c - 65536 >> 10) + 55296, + (c - 65536 & 1023) + 56320 + ); +} +var simpleEscapeCheck = new Array(256); +var simpleEscapeMap = new Array(256); +for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); +} +function State$1(input, options) { + this.input = input; + this.filename = options["filename"] || null; + this.schema = options["schema"] || _default; + this.onWarning = options["onWarning"] || null; + this.legacy = options["legacy"] || false; + this.json = options["json"] || false; + this.listener = options["listener"] || null; + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; + this.firstTabInLine = -1; + this.documents = []; +} +function generateError(state2, message) { + var mark = { + name: state2.filename, + buffer: state2.input.slice(0, -1), + // omit trailing \0 + position: state2.position, + line: state2.line, + column: state2.position - state2.lineStart + }; + mark.snippet = snippet(mark); + return new exception(message, mark); +} +function throwError(state2, message) { + throw generateError(state2, message); +} +function throwWarning(state2, message) { + if (state2.onWarning) { + state2.onWarning.call(null, generateError(state2, message)); + } +} +var directiveHandlers = { + YAML: function handleYamlDirective(state2, name, args) { + var match, major, minor; + if (state2.version !== null) { + throwError(state2, "duplication of %YAML directive"); + } + if (args.length !== 1) { + throwError(state2, "YAML directive accepts exactly one argument"); + } + match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + if (match === null) { + throwError(state2, "ill-formed argument of the YAML directive"); + } + major = parseInt(match[1], 10); + minor = parseInt(match[2], 10); + if (major !== 1) { + throwError(state2, "unacceptable YAML version of the document"); + } + state2.version = args[0]; + state2.checkLineBreaks = minor < 2; + if (minor !== 1 && minor !== 2) { + throwWarning(state2, "unsupported YAML version of the document"); + } + }, + TAG: function handleTagDirective(state2, name, args) { + var handle, prefix; + if (args.length !== 2) { + throwError(state2, "TAG directive accepts exactly two arguments"); + } + handle = args[0]; + prefix = args[1]; + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state2, "ill-formed tag handle (first argument) of the TAG directive"); + } + if (_hasOwnProperty$1.call(state2.tagMap, handle)) { + throwError(state2, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state2, "ill-formed tag prefix (second argument) of the TAG directive"); + } + try { + prefix = decodeURIComponent(prefix); + } catch (err) { + throwError(state2, "tag prefix is malformed: " + prefix); + } + state2.tagMap[handle] = prefix; + } +}; +function captureSegment(state2, start2, end, checkJson) { + var _position, _length, _character, _result; + if (start2 < end) { + _result = state2.input.slice(start2, end); + if (checkJson) { + for (_position = 0, _length = _result.length; _position < _length; _position += 1) { + _character = _result.charCodeAt(_position); + if (!(_character === 9 || 32 <= _character && _character <= 1114111)) { + throwError(state2, "expected valid JSON character"); + } + } + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError(state2, "the stream contains non-printable characters"); + } + state2.result += _result; + } +} +function mergeMappings(state2, destination, source, overridableKeys) { + var sourceKeys, key, index, quantity; + if (!common.isObject(source)) { + throwError(state2, "cannot merge mappings; the provided source object is unacceptable"); + } + sourceKeys = Object.keys(source); + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; + if (!_hasOwnProperty$1.call(destination, key)) { + destination[key] = source[key]; + overridableKeys[key] = true; + } + } +} +function storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) { + var index, quantity; + if (Array.isArray(keyNode)) { + keyNode = Array.prototype.slice.call(keyNode); + for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { + if (Array.isArray(keyNode[index])) { + throwError(state2, "nested arrays are not supported inside keys"); + } + if (typeof keyNode === "object" && _class(keyNode[index]) === "[object Object]") { + keyNode[index] = "[object Object]"; + } + } + } + if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") { + keyNode = "[object Object]"; + } + keyNode = String(keyNode); + if (_result === null) { + _result = {}; + } + if (keyTag === "tag:yaml.org,2002:merge") { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state2, _result, valueNode[index], overridableKeys); + } + } else { + mergeMappings(state2, _result, valueNode, overridableKeys); + } + } else { + if (!state2.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) { + state2.line = startLine || state2.line; + state2.lineStart = startLineStart || state2.lineStart; + state2.position = startPos || state2.position; + throwError(state2, "duplicated mapping key"); + } + if (keyNode === "__proto__") { + Object.defineProperty(_result, keyNode, { + configurable: true, + enumerable: true, + writable: true, + value: valueNode + }); + } else { + _result[keyNode] = valueNode; + } + delete overridableKeys[keyNode]; + } + return _result; +} +function readLineBreak(state2) { + var ch; + ch = state2.input.charCodeAt(state2.position); + if (ch === 10) { + state2.position++; + } else if (ch === 13) { + state2.position++; + if (state2.input.charCodeAt(state2.position) === 10) { + state2.position++; + } + } else { + throwError(state2, "a line break is expected"); + } + state2.line += 1; + state2.lineStart = state2.position; + state2.firstTabInLine = -1; +} +function skipSeparationSpace(state2, allowComments, checkIndent) { + var lineBreaks = 0, ch = state2.input.charCodeAt(state2.position); + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + if (ch === 9 && state2.firstTabInLine === -1) { + state2.firstTabInLine = state2.position; + } + ch = state2.input.charCodeAt(++state2.position); + } + if (allowComments && ch === 35) { + do { + ch = state2.input.charCodeAt(++state2.position); + } while (ch !== 10 && ch !== 13 && ch !== 0); + } + if (is_EOL(ch)) { + readLineBreak(state2); + ch = state2.input.charCodeAt(state2.position); + lineBreaks++; + state2.lineIndent = 0; + while (ch === 32) { + state2.lineIndent++; + ch = state2.input.charCodeAt(++state2.position); + } + } else { + break; + } + } + if (checkIndent !== -1 && lineBreaks !== 0 && state2.lineIndent < checkIndent) { + throwWarning(state2, "deficient indentation"); + } + return lineBreaks; +} +function testDocumentSeparator(state2) { + var _position = state2.position, ch; + ch = state2.input.charCodeAt(_position); + if ((ch === 45 || ch === 46) && ch === state2.input.charCodeAt(_position + 1) && ch === state2.input.charCodeAt(_position + 2)) { + _position += 3; + ch = state2.input.charCodeAt(_position); + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } + return false; +} +function writeFoldedLines(state2, count) { + if (count === 1) { + state2.result += " "; + } else if (count > 1) { + state2.result += common.repeat("\n", count - 1); + } +} +function readPlainScalar(state2, nodeIndent, withinFlowCollection) { + var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state2.kind, _result = state2.result, ch; + ch = state2.input.charCodeAt(state2.position); + if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) { + return false; + } + if (ch === 63 || ch === 45) { + following = state2.input.charCodeAt(state2.position + 1); + if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { + return false; + } + } + state2.kind = "scalar"; + state2.result = ""; + captureStart = captureEnd = state2.position; + hasPendingContent = false; + while (ch !== 0) { + if (ch === 58) { + following = state2.input.charCodeAt(state2.position + 1); + if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } + } else if (ch === 35) { + preceding = state2.input.charCodeAt(state2.position - 1); + if (is_WS_OR_EOL(preceding)) { + break; + } + } else if (state2.position === state2.lineStart && testDocumentSeparator(state2) || withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; + } else if (is_EOL(ch)) { + _line = state2.line; + _lineStart = state2.lineStart; + _lineIndent = state2.lineIndent; + skipSeparationSpace(state2, false, -1); + if (state2.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state2.input.charCodeAt(state2.position); + continue; + } else { + state2.position = captureEnd; + state2.line = _line; + state2.lineStart = _lineStart; + state2.lineIndent = _lineIndent; + break; + } + } + if (hasPendingContent) { + captureSegment(state2, captureStart, captureEnd, false); + writeFoldedLines(state2, state2.line - _line); + captureStart = captureEnd = state2.position; + hasPendingContent = false; + } + if (!is_WHITE_SPACE(ch)) { + captureEnd = state2.position + 1; + } + ch = state2.input.charCodeAt(++state2.position); + } + captureSegment(state2, captureStart, captureEnd, false); + if (state2.result) { + return true; + } + state2.kind = _kind; + state2.result = _result; + return false; +} +function readSingleQuotedScalar(state2, nodeIndent) { + var ch, captureStart, captureEnd; + ch = state2.input.charCodeAt(state2.position); + if (ch !== 39) { + return false; + } + state2.kind = "scalar"; + state2.result = ""; + state2.position++; + captureStart = captureEnd = state2.position; + while ((ch = state2.input.charCodeAt(state2.position)) !== 0) { + if (ch === 39) { + captureSegment(state2, captureStart, state2.position, true); + ch = state2.input.charCodeAt(++state2.position); + if (ch === 39) { + captureStart = state2.position; + state2.position++; + captureEnd = state2.position; + } else { + return true; + } + } else if (is_EOL(ch)) { + captureSegment(state2, captureStart, captureEnd, true); + writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent)); + captureStart = captureEnd = state2.position; + } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) { + throwError(state2, "unexpected end of the document within a single quoted scalar"); + } else { + state2.position++; + captureEnd = state2.position; + } + } + throwError(state2, "unexpected end of the stream within a single quoted scalar"); +} +function readDoubleQuotedScalar(state2, nodeIndent) { + var captureStart, captureEnd, hexLength, hexResult, tmp, ch; + ch = state2.input.charCodeAt(state2.position); + if (ch !== 34) { + return false; + } + state2.kind = "scalar"; + state2.result = ""; + state2.position++; + captureStart = captureEnd = state2.position; + while ((ch = state2.input.charCodeAt(state2.position)) !== 0) { + if (ch === 34) { + captureSegment(state2, captureStart, state2.position, true); + state2.position++; + return true; + } else if (ch === 92) { + captureSegment(state2, captureStart, state2.position, true); + ch = state2.input.charCodeAt(++state2.position); + if (is_EOL(ch)) { + skipSeparationSpace(state2, false, nodeIndent); + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state2.result += simpleEscapeMap[ch]; + state2.position++; + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; + for (; hexLength > 0; hexLength--) { + ch = state2.input.charCodeAt(++state2.position); + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; + } else { + throwError(state2, "expected hexadecimal character"); + } + } + state2.result += charFromCodepoint(hexResult); + state2.position++; + } else { + throwError(state2, "unknown escape sequence"); + } + captureStart = captureEnd = state2.position; + } else if (is_EOL(ch)) { + captureSegment(state2, captureStart, captureEnd, true); + writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent)); + captureStart = captureEnd = state2.position; + } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) { + throwError(state2, "unexpected end of the document within a double quoted scalar"); + } else { + state2.position++; + captureEnd = state2.position; + } + } + throwError(state2, "unexpected end of the stream within a double quoted scalar"); +} +function readFlowCollection(state2, nodeIndent) { + var readNext = true, _line, _lineStart, _pos, _tag = state2.tag, _result, _anchor = state2.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch; + ch = state2.input.charCodeAt(state2.position); + if (ch === 91) { + terminator = 93; + isMapping = false; + _result = []; + } else if (ch === 123) { + terminator = 125; + isMapping = true; + _result = {}; + } else { + return false; + } + if (state2.anchor !== null) { + state2.anchorMap[state2.anchor] = _result; + } + ch = state2.input.charCodeAt(++state2.position); + while (ch !== 0) { + skipSeparationSpace(state2, true, nodeIndent); + ch = state2.input.charCodeAt(state2.position); + if (ch === terminator) { + state2.position++; + state2.tag = _tag; + state2.anchor = _anchor; + state2.kind = isMapping ? "mapping" : "sequence"; + state2.result = _result; + return true; + } else if (!readNext) { + throwError(state2, "missed comma between flow collection entries"); + } else if (ch === 44) { + throwError(state2, "expected the node content, but found ','"); + } + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; + if (ch === 63) { + following = state2.input.charCodeAt(state2.position + 1); + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state2.position++; + skipSeparationSpace(state2, true, nodeIndent); + } + } + _line = state2.line; + _lineStart = state2.lineStart; + _pos = state2.position; + composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state2.tag; + keyNode = state2.result; + skipSeparationSpace(state2, true, nodeIndent); + ch = state2.input.charCodeAt(state2.position); + if ((isExplicitPair || state2.line === _line) && ch === 58) { + isPair = true; + ch = state2.input.charCodeAt(++state2.position); + skipSeparationSpace(state2, true, nodeIndent); + composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state2.result; + } + if (isMapping) { + storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); + } else if (isPair) { + _result.push(storeMappingPair(state2, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); + } else { + _result.push(keyNode); + } + skipSeparationSpace(state2, true, nodeIndent); + ch = state2.input.charCodeAt(state2.position); + if (ch === 44) { + readNext = true; + ch = state2.input.charCodeAt(++state2.position); + } else { + readNext = false; + } + } + throwError(state2, "unexpected end of the stream within a flow collection"); +} +function readBlockScalar(state2, nodeIndent) { + var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch; + ch = state2.input.charCodeAt(state2.position); + if (ch === 124) { + folding = false; + } else if (ch === 62) { + folding = true; + } else { + return false; + } + state2.kind = "scalar"; + state2.result = ""; + while (ch !== 0) { + ch = state2.input.charCodeAt(++state2.position); + if (ch === 43 || ch === 45) { + if (CHOMPING_CLIP === chomping) { + chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP; + } else { + throwError(state2, "repeat of a chomping mode identifier"); + } + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError(state2, "bad explicit indentation width of a block scalar; it cannot be less than one"); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError(state2, "repeat of an indentation width identifier"); + } + } else { + break; + } + } + if (is_WHITE_SPACE(ch)) { + do { + ch = state2.input.charCodeAt(++state2.position); + } while (is_WHITE_SPACE(ch)); + if (ch === 35) { + do { + ch = state2.input.charCodeAt(++state2.position); + } while (!is_EOL(ch) && ch !== 0); + } + } + while (ch !== 0) { + readLineBreak(state2); + state2.lineIndent = 0; + ch = state2.input.charCodeAt(state2.position); + while ((!detectedIndent || state2.lineIndent < textIndent) && ch === 32) { + state2.lineIndent++; + ch = state2.input.charCodeAt(++state2.position); + } + if (!detectedIndent && state2.lineIndent > textIndent) { + textIndent = state2.lineIndent; + } + if (is_EOL(ch)) { + emptyLines++; + continue; + } + if (state2.lineIndent < textIndent) { + if (chomping === CHOMPING_KEEP) { + state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (didReadContent) { + state2.result += "\n"; + } + } + break; + } + if (folding) { + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); + } else if (atMoreIndented) { + atMoreIndented = false; + state2.result += common.repeat("\n", emptyLines + 1); + } else if (emptyLines === 0) { + if (didReadContent) { + state2.result += " "; + } + } else { + state2.result += common.repeat("\n", emptyLines); + } + } else { + state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); + } + didReadContent = true; + detectedIndent = true; + emptyLines = 0; + captureStart = state2.position; + while (!is_EOL(ch) && ch !== 0) { + ch = state2.input.charCodeAt(++state2.position); + } + captureSegment(state2, captureStart, state2.position, false); + } + return true; +} +function readBlockSequence(state2, nodeIndent) { + var _line, _tag = state2.tag, _anchor = state2.anchor, _result = [], following, detected = false, ch; + if (state2.firstTabInLine !== -1) + return false; + if (state2.anchor !== null) { + state2.anchorMap[state2.anchor] = _result; + } + ch = state2.input.charCodeAt(state2.position); + while (ch !== 0) { + if (state2.firstTabInLine !== -1) { + state2.position = state2.firstTabInLine; + throwError(state2, "tab characters must not be used in indentation"); + } + if (ch !== 45) { + break; + } + following = state2.input.charCodeAt(state2.position + 1); + if (!is_WS_OR_EOL(following)) { + break; + } + detected = true; + state2.position++; + if (skipSeparationSpace(state2, true, -1)) { + if (state2.lineIndent <= nodeIndent) { + _result.push(null); + ch = state2.input.charCodeAt(state2.position); + continue; + } + } + _line = state2.line; + composeNode(state2, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state2.result); + skipSeparationSpace(state2, true, -1); + ch = state2.input.charCodeAt(state2.position); + if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) { + throwError(state2, "bad indentation of a sequence entry"); + } else if (state2.lineIndent < nodeIndent) { + break; + } + } + if (detected) { + state2.tag = _tag; + state2.anchor = _anchor; + state2.kind = "sequence"; + state2.result = _result; + return true; + } + return false; +} +function readBlockMapping(state2, nodeIndent, flowIndent) { + var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state2.tag, _anchor = state2.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch; + if (state2.firstTabInLine !== -1) + return false; + if (state2.anchor !== null) { + state2.anchorMap[state2.anchor] = _result; + } + ch = state2.input.charCodeAt(state2.position); + while (ch !== 0) { + if (!atExplicitKey && state2.firstTabInLine !== -1) { + state2.position = state2.firstTabInLine; + throwError(state2, "tab characters must not be used in indentation"); + } + following = state2.input.charCodeAt(state2.position + 1); + _line = state2.line; + if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) { + if (ch === 63) { + if (atExplicitKey) { + storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + detected = true; + atExplicitKey = true; + allowCompact = true; + } else if (atExplicitKey) { + atExplicitKey = false; + allowCompact = true; + } else { + throwError(state2, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"); + } + state2.position += 1; + ch = following; + } else { + _keyLine = state2.line; + _keyLineStart = state2.lineStart; + _keyPos = state2.position; + if (!composeNode(state2, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + break; + } + if (state2.line === _line) { + ch = state2.input.charCodeAt(state2.position); + while (is_WHITE_SPACE(ch)) { + ch = state2.input.charCodeAt(++state2.position); + } + if (ch === 58) { + ch = state2.input.charCodeAt(++state2.position); + if (!is_WS_OR_EOL(ch)) { + throwError(state2, "a whitespace character is expected after the key-value separator within a block mapping"); + } + if (atExplicitKey) { + storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state2.tag; + keyNode = state2.result; + } else if (detected) { + throwError(state2, "can not read an implicit mapping pair; a colon is missed"); + } else { + state2.tag = _tag; + state2.anchor = _anchor; + return true; + } + } else if (detected) { + throwError(state2, "can not read a block mapping entry; a multiline key may not be an implicit key"); + } else { + state2.tag = _tag; + state2.anchor = _anchor; + return true; + } + } + if (state2.line === _line || state2.lineIndent > nodeIndent) { + if (atExplicitKey) { + _keyLine = state2.line; + _keyLineStart = state2.lineStart; + _keyPos = state2.position; + } + if (composeNode(state2, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state2.result; + } else { + valueNode = state2.result; + } + } + if (!atExplicitKey) { + storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + skipSeparationSpace(state2, true, -1); + ch = state2.input.charCodeAt(state2.position); + } + if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) { + throwError(state2, "bad indentation of a mapping entry"); + } else if (state2.lineIndent < nodeIndent) { + break; + } + } + if (atExplicitKey) { + storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + } + if (detected) { + state2.tag = _tag; + state2.anchor = _anchor; + state2.kind = "mapping"; + state2.result = _result; + } + return detected; +} +function readTagProperty(state2) { + var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch; + ch = state2.input.charCodeAt(state2.position); + if (ch !== 33) + return false; + if (state2.tag !== null) { + throwError(state2, "duplication of a tag property"); + } + ch = state2.input.charCodeAt(++state2.position); + if (ch === 60) { + isVerbatim = true; + ch = state2.input.charCodeAt(++state2.position); + } else if (ch === 33) { + isNamed = true; + tagHandle = "!!"; + ch = state2.input.charCodeAt(++state2.position); + } else { + tagHandle = "!"; + } + _position = state2.position; + if (isVerbatim) { + do { + ch = state2.input.charCodeAt(++state2.position); + } while (ch !== 0 && ch !== 62); + if (state2.position < state2.length) { + tagName = state2.input.slice(_position, state2.position); + ch = state2.input.charCodeAt(++state2.position); + } else { + throwError(state2, "unexpected end of the stream within a verbatim tag"); + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + if (ch === 33) { + if (!isNamed) { + tagHandle = state2.input.slice(_position - 1, state2.position + 1); + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state2, "named tag handle cannot contain such characters"); + } + isNamed = true; + _position = state2.position + 1; + } else { + throwError(state2, "tag suffix cannot contain exclamation marks"); + } + } + ch = state2.input.charCodeAt(++state2.position); + } + tagName = state2.input.slice(_position, state2.position); + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state2, "tag suffix cannot contain flow indicator characters"); + } + } + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state2, "tag name cannot contain such characters: " + tagName); + } + try { + tagName = decodeURIComponent(tagName); + } catch (err) { + throwError(state2, "tag name is malformed: " + tagName); + } + if (isVerbatim) { + state2.tag = tagName; + } else if (_hasOwnProperty$1.call(state2.tagMap, tagHandle)) { + state2.tag = state2.tagMap[tagHandle] + tagName; + } else if (tagHandle === "!") { + state2.tag = "!" + tagName; + } else if (tagHandle === "!!") { + state2.tag = "tag:yaml.org,2002:" + tagName; + } else { + throwError(state2, 'undeclared tag handle "' + tagHandle + '"'); + } + return true; +} +function readAnchorProperty(state2) { + var _position, ch; + ch = state2.input.charCodeAt(state2.position); + if (ch !== 38) + return false; + if (state2.anchor !== null) { + throwError(state2, "duplication of an anchor property"); + } + ch = state2.input.charCodeAt(++state2.position); + _position = state2.position; + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state2.input.charCodeAt(++state2.position); + } + if (state2.position === _position) { + throwError(state2, "name of an anchor node must contain at least one character"); + } + state2.anchor = state2.input.slice(_position, state2.position); + return true; +} +function readAlias(state2) { + var _position, alias, ch; + ch = state2.input.charCodeAt(state2.position); + if (ch !== 42) + return false; + ch = state2.input.charCodeAt(++state2.position); + _position = state2.position; + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state2.input.charCodeAt(++state2.position); + } + if (state2.position === _position) { + throwError(state2, "name of an alias node must contain at least one character"); + } + alias = state2.input.slice(_position, state2.position); + if (!_hasOwnProperty$1.call(state2.anchorMap, alias)) { + throwError(state2, 'unidentified alias "' + alias + '"'); + } + state2.result = state2.anchorMap[alias]; + skipSeparationSpace(state2, true, -1); + return true; +} +function composeNode(state2, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent; + if (state2.listener !== null) { + state2.listener("open", state2); + } + state2.tag = null; + state2.anchor = null; + state2.kind = null; + state2.result = null; + allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext; + if (allowToSeek) { + if (skipSeparationSpace(state2, true, -1)) { + atNewLine = true; + if (state2.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state2.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state2.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } + if (indentStatus === 1) { + while (readTagProperty(state2) || readAnchorProperty(state2)) { + if (skipSeparationSpace(state2, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + if (state2.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state2.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state2.lineIndent < parentIndent) { + indentStatus = -1; + } + } else { + allowBlockCollections = false; + } + } + } + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + blockIndent = state2.position - state2.lineStart; + if (indentStatus === 1) { + if (allowBlockCollections && (readBlockSequence(state2, blockIndent) || readBlockMapping(state2, blockIndent, flowIndent)) || readFlowCollection(state2, flowIndent)) { + hasContent = true; + } else { + if (allowBlockScalars && readBlockScalar(state2, flowIndent) || readSingleQuotedScalar(state2, flowIndent) || readDoubleQuotedScalar(state2, flowIndent)) { + hasContent = true; + } else if (readAlias(state2)) { + hasContent = true; + if (state2.tag !== null || state2.anchor !== null) { + throwError(state2, "alias node should not have any properties"); + } + } else if (readPlainScalar(state2, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + if (state2.tag === null) { + state2.tag = "?"; + } + } + if (state2.anchor !== null) { + state2.anchorMap[state2.anchor] = state2.result; + } + } + } else if (indentStatus === 0) { + hasContent = allowBlockCollections && readBlockSequence(state2, blockIndent); + } + } + if (state2.tag === null) { + if (state2.anchor !== null) { + state2.anchorMap[state2.anchor] = state2.result; + } + } else if (state2.tag === "?") { + if (state2.result !== null && state2.kind !== "scalar") { + throwError(state2, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state2.kind + '"'); + } + for (typeIndex = 0, typeQuantity = state2.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { + type2 = state2.implicitTypes[typeIndex]; + if (type2.resolve(state2.result)) { + state2.result = type2.construct(state2.result); + state2.tag = type2.tag; + if (state2.anchor !== null) { + state2.anchorMap[state2.anchor] = state2.result; + } + break; + } + } + } else if (state2.tag !== "!") { + if (_hasOwnProperty$1.call(state2.typeMap[state2.kind || "fallback"], state2.tag)) { + type2 = state2.typeMap[state2.kind || "fallback"][state2.tag]; + } else { + type2 = null; + typeList = state2.typeMap.multi[state2.kind || "fallback"]; + for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { + if (state2.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { + type2 = typeList[typeIndex]; + break; + } + } + } + if (!type2) { + throwError(state2, "unknown tag !<" + state2.tag + ">"); + } + if (state2.result !== null && type2.kind !== state2.kind) { + throwError(state2, "unacceptable node kind for !<" + state2.tag + '> tag; it should be "' + type2.kind + '", not "' + state2.kind + '"'); + } + if (!type2.resolve(state2.result, state2.tag)) { + throwError(state2, "cannot resolve a node with !<" + state2.tag + "> explicit tag"); + } else { + state2.result = type2.construct(state2.result, state2.tag); + if (state2.anchor !== null) { + state2.anchorMap[state2.anchor] = state2.result; + } + } + } + if (state2.listener !== null) { + state2.listener("close", state2); + } + return state2.tag !== null || state2.anchor !== null || hasContent; +} +function readDocument(state2) { + var documentStart = state2.position, _position, directiveName, directiveArgs, hasDirectives = false, ch; + state2.version = null; + state2.checkLineBreaks = state2.legacy; + state2.tagMap = /* @__PURE__ */ Object.create(null); + state2.anchorMap = /* @__PURE__ */ Object.create(null); + while ((ch = state2.input.charCodeAt(state2.position)) !== 0) { + skipSeparationSpace(state2, true, -1); + ch = state2.input.charCodeAt(state2.position); + if (state2.lineIndent > 0 || ch !== 37) { + break; + } + hasDirectives = true; + ch = state2.input.charCodeAt(++state2.position); + _position = state2.position; + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state2.input.charCodeAt(++state2.position); + } + directiveName = state2.input.slice(_position, state2.position); + directiveArgs = []; + if (directiveName.length < 1) { + throwError(state2, "directive name must not be less than one character in length"); + } + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state2.input.charCodeAt(++state2.position); + } + if (ch === 35) { + do { + ch = state2.input.charCodeAt(++state2.position); + } while (ch !== 0 && !is_EOL(ch)); + break; + } + if (is_EOL(ch)) + break; + _position = state2.position; + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state2.input.charCodeAt(++state2.position); + } + directiveArgs.push(state2.input.slice(_position, state2.position)); + } + if (ch !== 0) + readLineBreak(state2); + if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state2, directiveName, directiveArgs); + } else { + throwWarning(state2, 'unknown document directive "' + directiveName + '"'); + } + } + skipSeparationSpace(state2, true, -1); + if (state2.lineIndent === 0 && state2.input.charCodeAt(state2.position) === 45 && state2.input.charCodeAt(state2.position + 1) === 45 && state2.input.charCodeAt(state2.position + 2) === 45) { + state2.position += 3; + skipSeparationSpace(state2, true, -1); + } else if (hasDirectives) { + throwError(state2, "directives end mark is expected"); + } + composeNode(state2, state2.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state2, true, -1); + if (state2.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state2.input.slice(documentStart, state2.position))) { + throwWarning(state2, "non-ASCII line breaks are interpreted as content"); + } + state2.documents.push(state2.result); + if (state2.position === state2.lineStart && testDocumentSeparator(state2)) { + if (state2.input.charCodeAt(state2.position) === 46) { + state2.position += 3; + skipSeparationSpace(state2, true, -1); + } + return; + } + if (state2.position < state2.length - 1) { + throwError(state2, "end of the stream or a document separator is expected"); + } else { + return; + } +} +function loadDocuments(input, options) { + input = String(input); + options = options || {}; + if (input.length !== 0) { + if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) { + input += "\n"; + } + if (input.charCodeAt(0) === 65279) { + input = input.slice(1); + } + } + var state2 = new State$1(input, options); + var nullpos = input.indexOf("\0"); + if (nullpos !== -1) { + state2.position = nullpos; + throwError(state2, "null byte is not allowed in input"); + } + state2.input += "\0"; + while (state2.input.charCodeAt(state2.position) === 32) { + state2.lineIndent += 1; + state2.position += 1; + } + while (state2.position < state2.length - 1) { + readDocument(state2); + } + return state2.documents; +} +function loadAll$1(input, iterator, options) { + if (iterator !== null && typeof iterator === "object" && typeof options === "undefined") { + options = iterator; + iterator = null; + } + var documents = loadDocuments(input, options); + if (typeof iterator !== "function") { + return documents; + } + for (var index = 0, length2 = documents.length; index < length2; index += 1) { + iterator(documents[index]); + } +} +function load$1(input, options) { + var documents = loadDocuments(input, options); + if (documents.length === 0) { + return void 0; + } else if (documents.length === 1) { + return documents[0]; + } + throw new exception("expected a single document in the stream, but found more"); +} +var loadAll_1 = loadAll$1; +var load_1 = load$1; +var loader = { + loadAll: loadAll_1, + load: load_1 +}; +var JSON_SCHEMA = json; +var load = loader.load; +function extractFrontMatter(text2) { + const matches = text2.match(frontMatterRegex); + if (!matches) { + return { + text: text2, + metadata: {} + }; + } + let parsed = load(matches[1], { + // To support config, we need JSON schema. + // https://www.yaml.org/spec/1.2/spec.html#id2803231 + schema: JSON_SCHEMA + }) ?? {}; + parsed = typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {}; + const metadata = {}; + if (parsed.displayMode) { + metadata.displayMode = parsed.displayMode.toString(); + } + if (parsed.title) { + metadata.title = parsed.title.toString(); + } + if (parsed.config) { + metadata.config = parsed.config; + } + return { + text: text2.slice(matches[0].length), + metadata + }; +} +const cleanupText = (code) => { + return code.replace(/\r\n?/g, "\n").replace( + /<(\w+)([^>]*)>/g, + (match, tag, attributes) => "<" + tag + attributes.replace(/="([^"]*)"/g, "='$1'") + ">" + ); +}; +const processFrontmatter = (code) => { + const { text: text2, metadata } = extractFrontMatter(code); + const { displayMode, title, config: config2 = {} } = metadata; + if (displayMode) { + if (!config2.gantt) { + config2.gantt = {}; + } + config2.gantt.displayMode = displayMode; + } + return { title, config: config2, text: text2 }; +}; +const processDirectives = (code) => { + const initDirective = utils.detectInit(code) ?? {}; + const wrapDirectives = utils.detectDirective(code, "wrap"); + if (Array.isArray(wrapDirectives)) { + initDirective.wrap = wrapDirectives.some(({ type: type2 }) => { + }); + } else if ((wrapDirectives == null ? void 0 : wrapDirectives.type) === "wrap") { + initDirective.wrap = true; + } + return { + text: removeDirectives(code), + directive: initDirective + }; +}; +function preprocessDiagram(code) { + const cleanedCode = cleanupText(code); + const frontMatterResult = processFrontmatter(cleanedCode); + const directiveResult = processDirectives(frontMatterResult.text); + const config2 = cleanAndMerge(frontMatterResult.config, directiveResult.directive); + code = cleanupComments(directiveResult.text); + return { + code, + title: frontMatterResult.title, + config: config2 + }; +} +const MAX_TEXTLENGTH = 5e4; +const MAX_TEXTLENGTH_EXCEEDED_MSG = "graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa"; +const SECURITY_LVL_SANDBOX = "sandbox"; +const SECURITY_LVL_LOOSE = "loose"; +const XMLNS_SVG_STD = "http://www.w3.org/2000/svg"; +const XMLNS_XLINK_STD = "http://www.w3.org/1999/xlink"; +const XMLNS_XHTML_STD = "http://www.w3.org/1999/xhtml"; +const IFRAME_WIDTH = "100%"; +const IFRAME_HEIGHT = "100%"; +const IFRAME_STYLES = "border:0;margin:0;"; +const IFRAME_BODY_STYLE = "margin:0"; +const IFRAME_SANDBOX_OPTS = "allow-top-navigation-by-user-activation allow-popups"; +const IFRAME_NOT_SUPPORTED_MSG = 'The "iframe" tag is not supported by your browser.'; +const DOMPURIFY_TAGS = ["foreignobject"]; +const DOMPURIFY_ATTR = ["dominant-baseline"]; +function processAndSetConfigs(text2) { + const processed = preprocessDiagram(text2); + reset(); + addDirective(processed.config ?? {}); + return processed; +} +async function parse$1(text2, parseOptions) { + addDiagrams(); + text2 = processAndSetConfigs(text2).code; + try { + await getDiagramFromText(text2); + } catch (error) { + if (parseOptions == null ? void 0 : parseOptions.suppressErrors) { + return false; + } + throw error; + } + return true; +} +const cssImportantStyles = (cssClass, element, cssClasses = []) => { + return ` +.${cssClass} ${element} { ${cssClasses.join(" !important; ")} !important; }`; +}; +const createCssStyles = (config2, classDefs = {}) => { + var _a; + let cssStyles = ""; + if (config2.themeCSS !== void 0) { + cssStyles += ` +${config2.themeCSS}`; + } + if (config2.fontFamily !== void 0) { + cssStyles += ` +:root { --mermaid-font-family: ${config2.fontFamily}}`; + } + if (config2.altFontFamily !== void 0) { + cssStyles += ` +:root { --mermaid-alt-font-family: ${config2.altFontFamily}}`; + } + if (!isEmpty(classDefs)) { + const htmlLabels = config2.htmlLabels || ((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels); + const cssHtmlElements = ["> *", "span"]; + const cssShapeElements = ["rect", "polygon", "ellipse", "circle", "path"]; + const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements; + for (const classId in classDefs) { + const styleClassDef = classDefs[classId]; + if (!isEmpty(styleClassDef.styles)) { + cssElements.forEach((cssElement) => { + cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles); + }); + } + if (!isEmpty(styleClassDef.textStyles)) { + cssStyles += cssImportantStyles(styleClassDef.id, "tspan", styleClassDef.textStyles); + } + } + } + return cssStyles; +}; +const createUserStyles = (config2, graphType, classDefs, svgId) => { + const userCSSstyles = createCssStyles(config2, classDefs); + const allStyles = getStyles$1(graphType, userCSSstyles, config2.themeVariables); + return serialize(compile(`${svgId}{${allStyles}}`), stringify); +}; +const cleanUpSvgCode = (svgCode = "", inSandboxMode, useArrowMarkerUrls) => { + let cleanedUpSvg = svgCode; + if (!useArrowMarkerUrls && !inSandboxMode) { + cleanedUpSvg = cleanedUpSvg.replace( + /marker-end="url\([\d+./:=?A-Za-z-]*?#/g, + 'marker-end="url(#' + ); + } + cleanedUpSvg = decodeEntities(cleanedUpSvg); + cleanedUpSvg = cleanedUpSvg.replace(/
/g, "
"); + return cleanedUpSvg; +}; +const putIntoIFrame = (svgCode = "", svgElement) => { + var _a, _b; + const height = ((_b = (_a = svgElement == null ? void 0 : svgElement.viewBox) == null ? void 0 : _a.baseVal) == null ? void 0 : _b.height) ? svgElement.viewBox.baseVal.height + "px" : IFRAME_HEIGHT; + const base64encodedSrc = btoa('' + svgCode + ""); + return ``; +}; +const appendDivSvgG = (parentRoot, id2, enclosingDivId, divStyle, svgXlink) => { + const enclosingDiv = parentRoot.append("div"); + enclosingDiv.attr("id", enclosingDivId); + if (divStyle) { + enclosingDiv.attr("style", divStyle); + } + const svgNode2 = enclosingDiv.append("svg").attr("id", id2).attr("width", "100%").attr("xmlns", XMLNS_SVG_STD); + if (svgXlink) { + svgNode2.attr("xmlns:xlink", svgXlink); + } + svgNode2.append("g"); + return parentRoot; +}; +function sandboxedIframe(parentNode, iFrameId) { + return parentNode.append("iframe").attr("id", iFrameId).attr("style", "width: 100%; height: 100%;").attr("sandbox", ""); +} +const removeExistingElements = (doc, id2, divId, iFrameId) => { + var _a, _b, _c; + (_a = doc.getElementById(id2)) == null ? void 0 : _a.remove(); + (_b = doc.getElementById(divId)) == null ? void 0 : _b.remove(); + (_c = doc.getElementById(iFrameId)) == null ? void 0 : _c.remove(); +}; +const render$1 = async function(id2, text2, svgContainingElement) { + var _a, _b, _c, _d, _e, _f; + addDiagrams(); + const processed = processAndSetConfigs(text2); + text2 = processed.code; + const config2 = getConfig$1(); + log$1.debug(config2); + if (text2.length > ((config2 == null ? void 0 : config2.maxTextSize) ?? MAX_TEXTLENGTH)) { + text2 = MAX_TEXTLENGTH_EXCEEDED_MSG; + } + const idSelector = "#" + id2; + const iFrameID = "i" + id2; + const iFrameID_selector = "#" + iFrameID; + const enclosingDivID = "d" + id2; + const enclosingDivID_selector = "#" + enclosingDivID; + let root2 = d3select("body"); + const isSandboxed = config2.securityLevel === SECURITY_LVL_SANDBOX; + const isLooseSecurityLevel = config2.securityLevel === SECURITY_LVL_LOOSE; + const fontFamily = config2.fontFamily; + if (svgContainingElement !== void 0) { + if (svgContainingElement) { + svgContainingElement.innerHTML = ""; + } + if (isSandboxed) { + const iframe = sandboxedIframe(d3select(svgContainingElement), iFrameID); + root2 = d3select(iframe.nodes()[0].contentDocument.body); + root2.node().style.margin = 0; + } else { + root2 = d3select(svgContainingElement); + } + appendDivSvgG(root2, id2, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD); + } else { + removeExistingElements(document, id2, enclosingDivID, iFrameID); + if (isSandboxed) { + const iframe = sandboxedIframe(d3select("body"), iFrameID); + root2 = d3select(iframe.nodes()[0].contentDocument.body); + root2.node().style.margin = 0; + } else { + root2 = d3select("body"); + } + appendDivSvgG(root2, id2, enclosingDivID); + } + let diag; + let parseEncounteredException; + try { + diag = await getDiagramFromText(text2, { title: processed.title }); + } catch (error) { + diag = new Diagram("error"); + parseEncounteredException = error; + } + const element = root2.select(enclosingDivID_selector).node(); + const diagramType = diag.type; + const svg2 = element.firstChild; + const firstChild = svg2.firstChild; + const diagramClassDefs = (_b = (_a = diag.renderer).getClasses) == null ? void 0 : _b.call(_a, text2, diag); + const rules = createUserStyles(config2, diagramType, diagramClassDefs, idSelector); + const style1 = document.createElement("style"); + style1.innerHTML = rules; + svg2.insertBefore(style1, firstChild); + try { + await diag.renderer.draw(text2, id2, version, diag); + } catch (e) { + errorRenderer.draw(text2, id2, version); + throw e; + } + const svgNode2 = root2.select(`${enclosingDivID_selector} svg`); + const a11yTitle = (_d = (_c = diag.db).getAccTitle) == null ? void 0 : _d.call(_c); + const a11yDescr = (_f = (_e = diag.db).getAccDescription) == null ? void 0 : _f.call(_e); + addA11yInfo(diagramType, svgNode2, a11yTitle, a11yDescr); + root2.select(`[id="${id2}"]`).selectAll("foreignobject > *").attr("xmlns", XMLNS_XHTML_STD); + let svgCode = root2.select(enclosingDivID_selector).node().innerHTML; + log$1.debug("config.arrowMarkerAbsolute", config2.arrowMarkerAbsolute); + svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config2.arrowMarkerAbsolute)); + if (isSandboxed) { + const svgEl = root2.select(enclosingDivID_selector + " svg").node(); + svgCode = putIntoIFrame(svgCode, svgEl); + } else if (!isLooseSecurityLevel) { + svgCode = purify.sanitize(svgCode, { + ADD_TAGS: DOMPURIFY_TAGS, + ADD_ATTR: DOMPURIFY_ATTR + }); + } + attachFunctions(); + if (parseEncounteredException) { + throw parseEncounteredException; + } + const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector; + const node2 = d3select(tmpElementSelector).node(); + if (node2 && "remove" in node2) { + node2.remove(); + } + return { + svg: svgCode, + bindFunctions: diag.db.bindFunctions + }; +}; +function initialize$1(options = {}) { + var _a; + if ((options == null ? void 0 : options.fontFamily) && !((_a = options.themeVariables) == null ? void 0 : _a.fontFamily)) { + if (!options.themeVariables) { + options.themeVariables = {}; + } + options.themeVariables.fontFamily = options.fontFamily; + } + saveConfigFromInitialize(options); + if ((options == null ? void 0 : options.theme) && options.theme in theme) { + options.themeVariables = theme[options.theme].getThemeVariables( + options.themeVariables + ); + } else if (options) { + options.themeVariables = theme.default.getThemeVariables(options.themeVariables); + } + const config2 = typeof options === "object" ? setSiteConfig(options) : getSiteConfig(); + setLogLevel$1(config2.logLevel); + addDiagrams(); +} +const getDiagramFromText = (text2, metadata = {}) => { + const { code } = preprocessDiagram(text2); + return getDiagramFromText$1(code, metadata); +}; +function addA11yInfo(diagramType, svgNode2, a11yTitle, a11yDescr) { + setA11yDiagramInfo(svgNode2, diagramType); + addSVGa11yTitleDescription(svgNode2, a11yTitle, a11yDescr, svgNode2.attr("id")); +} +const mermaidAPI = Object.freeze({ + render: render$1, + parse: parse$1, + getDiagramFromText, + initialize: initialize$1, + getConfig: getConfig$1, + setConfig: setConfig$1, + getSiteConfig, + updateSiteConfig, + reset: () => { + reset(); + }, + globalReset: () => { + reset(defaultConfig$1); + }, + defaultConfig: defaultConfig$1 +}); +setLogLevel$1(getConfig$1().logLevel); +reset(getConfig$1()); +const loadRegisteredDiagrams = async () => { + log$1.debug(`Loading registered diagrams`); + const results = await Promise.allSettled( + Object.entries(detectors).map(async ([key, { detector: detector2, loader: loader2 }]) => { + if (loader2) { + try { + getDiagram(key); + } catch (error) { + try { + const { diagram: diagram2, id: id2 } = await loader2(); + registerDiagram(id2, diagram2, detector2); + } catch (err) { + log$1.error(`Failed to load external diagram with key ${key}. Removing from detectors.`); + delete detectors[key]; + throw err; + } + } + } + }) + ); + const failed = results.filter((result) => result.status === "rejected"); + if (failed.length > 0) { + log$1.error(`Failed to load ${failed.length} external diagrams`); + for (const res of failed) { + log$1.error(res); + } + throw new Error(`Failed to load ${failed.length} external diagrams`); + } +}; +const handleError = (error, errors, parseError) => { + log$1.warn(error); + if (isDetailedError(error)) { + if (parseError) { + parseError(error.str, error.hash); + } + errors.push({ ...error, message: error.str, error }); + } else { + if (parseError) { + parseError(error); + } + if (error instanceof Error) { + errors.push({ + str: error.message, + message: error.message, + hash: error.name, + error + }); + } + } +}; +const run = async function(options = { + querySelector: ".mermaid" +}) { + try { + await runThrowsErrors(options); + } catch (e) { + if (isDetailedError(e)) { + log$1.error(e.str); + } + if (mermaid.parseError) { + mermaid.parseError(e); + } + if (!options.suppressErrors) { + log$1.error("Use the suppressErrors option to suppress these errors"); + throw e; + } + } +}; +const runThrowsErrors = async function({ postRenderCallback, querySelector, nodes } = { + querySelector: ".mermaid" +}) { + const conf = mermaidAPI.getConfig(); + log$1.debug(`${!postRenderCallback ? "No " : ""}Callback function found`); + let nodesToProcess; + if (nodes) { + nodesToProcess = nodes; + } else if (querySelector) { + nodesToProcess = document.querySelectorAll(querySelector); + } else { + throw new Error("Nodes and querySelector are both undefined"); + } + log$1.debug(`Found ${nodesToProcess.length} diagrams`); + if ((conf == null ? void 0 : conf.startOnLoad) !== void 0) { + log$1.debug("Start On Load: " + (conf == null ? void 0 : conf.startOnLoad)); + mermaidAPI.updateSiteConfig({ startOnLoad: conf == null ? void 0 : conf.startOnLoad }); + } + const idGenerator = new utils.InitIDGenerator(conf.deterministicIds, conf.deterministicIDSeed); + let txt; + const errors = []; + for (const element of Array.from(nodesToProcess)) { + log$1.info("Rendering diagram: " + element.id); + /*! Check if previously processed */ + if (element.getAttribute("data-processed")) { + continue; + } + element.setAttribute("data-processed", "true"); + const id2 = `mermaid-${idGenerator.next()}`; + txt = element.innerHTML; + txt = dedent(utils.entityDecode(txt)).trim().replace(//gi, "
"); + const init2 = utils.detectInit(txt); + if (init2) { + log$1.debug("Detected early reinit: ", init2); + } + try { + const { svg: svg2, bindFunctions } = await render(id2, txt, element); + element.innerHTML = svg2; + if (postRenderCallback) { + await postRenderCallback(id2); + } + if (bindFunctions) { + bindFunctions(element); + } + } catch (error) { + handleError(error, errors, mermaid.parseError); + } + } + if (errors.length > 0) { + throw errors[0]; + } +}; +const initialize = function(config2) { + mermaidAPI.initialize(config2); +}; +const init = async function(config2, nodes, callback) { + log$1.warn("mermaid.init is deprecated. Please use run instead."); + if (config2) { + initialize(config2); + } + const runOptions = { postRenderCallback: callback, querySelector: ".mermaid" }; + if (typeof nodes === "string") { + runOptions.querySelector = nodes; + } else if (nodes) { + if (nodes instanceof HTMLElement) { + runOptions.nodes = [nodes]; + } else { + runOptions.nodes = nodes; + } + } + await run(runOptions); +}; +const registerExternalDiagrams = async (diagrams2, { + lazyLoad = true +} = {}) => { + registerLazyLoadedDiagrams(...diagrams2); + if (lazyLoad === false) { + await loadRegisteredDiagrams(); + } +}; +const contentLoaded = function() { + if (mermaid.startOnLoad) { + const { startOnLoad } = mermaidAPI.getConfig(); + if (startOnLoad) { + mermaid.run().catch((err) => log$1.error("Mermaid failed to initialize", err)); + } + } +}; +if (typeof document !== "undefined") { + /*! + * Wait for document loaded before starting the execution + */ + window.addEventListener("load", contentLoaded, false); +} +const setParseErrorHandler = function(parseErrorHandler) { + mermaid.parseError = parseErrorHandler; +}; +const executionQueue = []; +let executionQueueRunning = false; +const executeQueue = async () => { + if (executionQueueRunning) { + return; + } + executionQueueRunning = true; + while (executionQueue.length > 0) { + const f = executionQueue.shift(); + if (f) { + try { + await f(); + } catch (e) { + log$1.error("Error executing queue", e); + } + } + } + executionQueueRunning = false; +}; +const parse = async (text2, parseOptions) => { + return new Promise((resolve, reject) => { + const performCall = () => new Promise((res, rej) => { + mermaidAPI.parse(text2, parseOptions).then( + (r) => { + res(r); + resolve(r); + }, + (e) => { + var _a; + log$1.error("Error parsing", e); + (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e); + rej(e); + reject(e); + } + ); + }); + executionQueue.push(performCall); + executeQueue().catch(reject); + }); +}; +const render = (id2, text2, container) => { + return new Promise((resolve, reject) => { + const performCall = () => new Promise((res, rej) => { + mermaidAPI.render(id2, text2, container).then( + (r) => { + res(r); + resolve(r); + }, + (e) => { + var _a; + log$1.error("Error parsing", e); + (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e); + rej(e); + reject(e); + } + ); + }); + executionQueue.push(performCall); + executeQueue().catch(reject); + }); +}; +const mermaid = { + startOnLoad: true, + mermaidAPI, + parse, + render, + init, + run, + registerExternalDiagrams, + initialize, + parseError: void 0, + contentLoaded, + setParseErrorHandler, + detectType +}; +export { + constant$1 as $, + utils as A, + rgba$1 as B, + setDiagramTitle as C, + getDiagramTitle as D, + clear as E, + curveBasis as F, + parseGenericTypes as G, + random as H, + setupGraphViewbox as I, + define as J, + extend$1 as K, + Color$2 as L, + rgbConvert as M, + nogamma as N, + hue as O, + commonjsGlobal as P, + getDefaultExportFromCjs as Q, + Rgb as R, + Selection$1 as S, + dayjs as T, + selectSvgElement as U, + tau as V, + defaultConfig$2 as W, + cleanAndMerge as X, + parseFontSize as Y, + getThemeVariables$2 as Z, + getConfig$1 as _, + getAccDescription as a, + Stack as a$, + interpolateNumber as a0, + color as a1, + interpolateRgb as a2, + interpolateString as a3, + hasKatex as a4, + ZERO_WIDTH_SPACE as a5, + calculateMathMLDimensions as a6, + generateId as a7, + isObject$1 as a8, + setToString$1 as a9, + epsilon as aA, + sqrt as aB, + min as aC, + abs$1 as aD, + atan2 as aE, + asin as aF, + acos as aG, + max as aH, + _ as aI, + Color$1 as aJ, + isObjectLike as aK, + baseGetTag as aL, + Symbol$2 as aM, + arrayLikeKeys as aN, + baseKeys as aO, + memoize as aP, + isArguments$1 as aQ, + copyObject as aR, + getPrototype$1 as aS, + cloneArrayBuffer as aT, + cloneTypedArray as aU, + getTag$1 as aV, + nodeUtil$1 as aW, + copyArray as aX, + isBuffer$1 as aY, + cloneBuffer as aZ, + initCloneObject as a_, + overRest as aa, + root$1 as ab, + baseRest as ac, + isIterateeCall as ad, + keysIn as ae, + eq as af, + isArrayLike as ag, + isArray$1 as ah, + baseFor$1 as ai, + baseAssignValue as aj, + identity as ak, + isIndex as al, + assignValue as am, + baseUnary as an, + constant as ao, + merge$2 as ap, + lineBreakRegex as aq, + defaultConfig as ar, + commonDb as as, + isDark$1 as at, + lighten$1 as au, + darken$1 as av, + pi as aw, + cos as ax, + sin as ay, + halfPi as az, + setAccDescription as b, + MapCache as b0, + Uint8Array$2 as b1, + isTypedArray$1 as b2, + isLength as b3, + Set$2 as b4, + isArrayLikeObject as b5, + isEmpty as b6, + decodeEntities as b7, + dedent as b8, + mermaid as b9, + getConfig as c, + sanitizeText$2 as d, + dist as e, + common$1 as f, + getAccTitle as g, + assignWithDepth$1 as h, + calculateTextWidth as i, + d3select as j, + configureSvgSize as k, + log$1 as l, + calculateTextHeight as m, + curveLinear as n, + getStylesFromArray as o, + evaluate as p, + interpolateToCurve as q, + renderKatex as r, + setAccTitle as s, + setupGraphViewbox$1 as t, + setConfig as u, + root$2 as v, + wrapLabel as w, + array as x, + isPlainObject as y, + isFunction as z +}; diff --git a/assets/lib/mermaid/mermaid.core.mjs b/assets/lib/mermaid/mermaid.core.mjs index b8e50fe6e..ba3625029 100644 --- a/assets/lib/mermaid/mermaid.core.mjs +++ b/assets/lib/mermaid/mermaid.core.mjs @@ -1,5 +1,5 @@ import "ts-dedent"; -import { N } from "./mermaid-f47111a7.js"; +import { N } from "./mermaid-6dc72991.js"; import "dayjs"; import "@braintree/sanitize-url"; import "d3"; diff --git a/assets/lib/mermaid/mermaid.esm.min.mjs b/assets/lib/mermaid/mermaid.esm.min.mjs index 76bdf75ba..0eb454a24 100644 --- a/assets/lib/mermaid/mermaid.esm.min.mjs +++ b/assets/lib/mermaid/mermaid.esm.min.mjs @@ -1,4 +1,4 @@ -import { b9 as f } from "./mermaid-00886c59.js"; +import { b9 as f } from "./mermaid-9f2aa176.js"; export { f as default }; diff --git a/assets/lib/mermaid/mermaid.esm.mjs b/assets/lib/mermaid/mermaid.esm.mjs index 5ed3a0dd6..1638bb66d 100644 --- a/assets/lib/mermaid/mermaid.esm.mjs +++ b/assets/lib/mermaid/mermaid.esm.mjs @@ -1,4 +1,4 @@ -import { b9 } from "./mermaid-c5809711.js"; +import { b9 } from "./mermaid-dcacb631.js"; export { b9 as default }; diff --git a/assets/lib/mermaid/mermaid.js b/assets/lib/mermaid/mermaid.js index ef05f6a0f..97b1ac262 100644 --- a/assets/lib/mermaid/mermaid.js +++ b/assets/lib/mermaid/mermaid.js @@ -6863,7 +6863,7 @@ } return text2; }; - const sanitizeText$5 = (text2, config2) => { + const sanitizeText$6 = (text2, config2) => { if (!text2) { return text2; } @@ -6878,9 +6878,9 @@ }; const sanitizeTextOrArray = (a, config2) => { if (typeof a === "string") { - return sanitizeText$5(a, config2); + return sanitizeText$6(a, config2); } - return a.flat().map((x2) => sanitizeText$5(x2, config2)); + return a.flat().map((x2) => sanitizeText$6(x2, config2)); }; const hasBreaks = (text2) => { return lineBreakRegex.test(text2); @@ -7011,7 +7011,7 @@ }; const common$1 = { getRows, - sanitizeText: sanitizeText$5, + sanitizeText: sanitizeText$6, sanitizeTextOrArray, hasBreaks, splitBreaks, @@ -9552,7 +9552,7 @@ "deterministicIds": false, "fontSize": 16 }; - const config$3 = { + const config$4 = { ...defaultConfigJson, // Set, even though they're `undefined` so that `configKeys` finds these keys // TODO: Should we replace these with `null` so that they can go in the JSON Schema? @@ -9782,8 +9782,8 @@ } return [...res, prefix + el]; }, []); - const configKeys = new Set(keyify(config$3, "")); - const defaultConfig$2 = config$3; + const configKeys = new Set(keyify(config$4, "")); + const defaultConfig$2 = config$4; const sanitizeDirective = (args) => { log$1.debug("sanitizeDirective called with", args); if (typeof args !== "object" || args == null) { @@ -11464,7 +11464,7 @@ } return strlen(children2 = serialize(element2.children, callback)) ? element2.return = element2.value + "{" + children2 + "}" : ""; } - const version$1 = "10.9.0"; + const version$1 = "10.9.1"; const defaultConfig$1 = Object.freeze(defaultConfig$2); let siteConfig = assignWithDepth$1({}, defaultConfig$1); let configFromInitialize; @@ -11944,22 +11944,22 @@ let accTitle = ""; let diagramTitle = ""; let accDescription = ""; - const sanitizeText$4 = (txt) => sanitizeText$5(txt, getConfig$2()); + const sanitizeText$5 = (txt) => sanitizeText$6(txt, getConfig$2()); const clear$n = () => { accTitle = ""; accDescription = ""; diagramTitle = ""; }; const setAccTitle = (txt) => { - accTitle = sanitizeText$4(txt).replace(/^\s+/g, ""); + accTitle = sanitizeText$5(txt).replace(/^\s+/g, ""); }; const getAccTitle = () => accTitle; const setAccDescription = (txt) => { - accDescription = sanitizeText$4(txt).replace(/\n\s+/g, "\n"); + accDescription = sanitizeText$5(txt).replace(/\n\s+/g, "\n"); }; const getAccDescription = () => accDescription; const setDiagramTitle = (txt) => { - diagramTitle = sanitizeText$4(txt); + diagramTitle = sanitizeText$5(txt); }; const getDiagramTitle = () => diagramTitle; const commonDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ @@ -11977,7 +11977,7 @@ const getConfig$1 = getConfig$2; const setConfig = setConfig$1; const defaultConfig = defaultConfig$1; - const sanitizeText$3 = (text2) => sanitizeText$5(text2, getConfig$1()); + const sanitizeText$4 = (text2) => sanitizeText$6(text2, getConfig$1()); const setupGraphViewbox = setupGraphViewbox$1; const getCommonDb$1 = () => { return commonDb; @@ -11998,7 +11998,7 @@ log, setLogLevel, getConfig$1, - sanitizeText$3, + sanitizeText$4, setupGraphViewbox, getCommonDb$1(), () => { @@ -30326,7 +30326,7 @@ ${config2.themeCSS}`; return c4Type; }; const setC4Type = function(c4TypeParam) { - let sanitizedText = sanitizeText$5(c4TypeParam, getConfig$1()); + let sanitizedText = sanitizeText$6(c4TypeParam, getConfig$1()); c4Type = sanitizedText; }; const addRel = function(type2, from2, to, label, techn, descr, sprite, tags2, link2) { @@ -30948,7 +30948,7 @@ ${config2.themeCSS}`; OVER: 2 }; const setTitle = function(txt) { - let sanitizedText = sanitizeText$5(txt, getConfig$1()); + let sanitizedText = sanitizeText$6(txt, getConfig$1()); title = sanitizedText; }; const db$g = { @@ -33032,7 +33032,7 @@ ${config2.themeCSS}`; const parser$u = parser$t; const MERMAID_DOM_ID_PREFIX$1 = "flowchart-"; let vertexCounter = 0; - let config$2 = getConfig$1(); + let config$3 = getConfig$1(); let vertices = {}; let edges = []; let classes$3 = {}; @@ -33044,7 +33044,7 @@ ${config2.themeCSS}`; let direction$3; let version; let funs$1 = []; - const sanitizeText$2 = (txt) => common$1.sanitizeText(txt, config$2); + const sanitizeText$3 = (txt) => common$1.sanitizeText(txt, config$3); const lookUpDomId$1 = function(id2) { const vertexKeys = Object.keys(vertices); for (const vertexKey of vertexKeys) { @@ -33074,8 +33074,8 @@ ${config2.themeCSS}`; } vertexCounter++; if (textObj !== void 0) { - config$2 = getConfig$1(); - txt = sanitizeText$2(textObj.text.trim()); + config$3 = getConfig$1(); + txt = sanitizeText$3(textObj.text.trim()); vertices[id2].labelType = textObj.type; if (txt[0] === '"' && txt[txt.length - 1] === '"') { txt = txt.substring(1, txt.length - 1); @@ -33115,7 +33115,7 @@ ${config2.themeCSS}`; log$1.info("abc78 Got edge...", edge); const linkTextObj = type2.text; if (linkTextObj !== void 0) { - edge.text = sanitizeText$2(linkTextObj.text.trim()); + edge.text = sanitizeText$3(linkTextObj.text.trim()); if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') { edge.text = edge.text.substring(1, edge.text.length - 1); } @@ -33129,12 +33129,12 @@ ${config2.themeCSS}`; if ((edge == null ? void 0 : edge.length) > 10) { edge.length = 10; } - if (edges.length < (config$2.maxEdges ?? 500)) { + if (edges.length < (config$3.maxEdges ?? 500)) { log$1.info("abc78 pushing edge..."); edges.push(edge); } else { throw new Error( - `Edge limit exceeded. ${edges.length} edges found, but the limit is ${config$2.maxEdges}. + `Edge limit exceeded. ${edges.length} edges found, but the limit is ${config$3.maxEdges}. Initialize mermaid with maxEdges set to a higher number to allow more edges. You cannot set this config via configuration inside the diagram as it is a secure config. @@ -33225,7 +33225,7 @@ You have to call mermaid.initialize.` const setTooltip$1 = function(ids, tooltip) { ids.split(",").forEach(function(id2) { if (tooltip !== void 0) { - tooltips[version === "gen-1" ? lookUpDomId$1(id2) : id2] = sanitizeText$2(tooltip); + tooltips[version === "gen-1" ? lookUpDomId$1(id2) : id2] = sanitizeText$3(tooltip); } }); }; @@ -33270,7 +33270,7 @@ You have to call mermaid.initialize.` const setLink$2 = function(ids, linkStr, target) { ids.split(",").forEach(function(id2) { if (vertices[id2] !== void 0) { - vertices[id2].link = utils$1.formatUrl(linkStr, config$2); + vertices[id2].link = utils$1.formatUrl(linkStr, config$3); vertices[id2].linkTarget = target; } }); @@ -33341,7 +33341,7 @@ You have to call mermaid.initialize.` tooltips = {}; firstGraphFlag = true; version = ver; - config$2 = getConfig$1(); + config$3 = getConfig$1(); clear$n(); }; const setGen = (ver) => { @@ -33387,7 +33387,7 @@ You have to call mermaid.initialize.` } id2 = id2 || "subGraph" + subCount; title2 = title2 || ""; - title2 = sanitizeText$2(title2); + title2 = sanitizeText$3(title2); subCount = subCount + 1; const subGraph = { id: id2, @@ -43620,7 +43620,7 @@ You have to call mermaid.initialize.` const textNode = label.node(); let text2; if (node2.labelType === "markdown") { - text2 = createText(label, sanitizeText$5(decodeEntities(labelText), getConfig$1()), { + text2 = createText(label, sanitizeText$6(decodeEntities(labelText), getConfig$1()), { useHtmlLabels, width: node2.width || getConfig$1().flowchart.wrappingWidth, classes: "markdown-node-label" @@ -43628,7 +43628,7 @@ You have to call mermaid.initialize.` } else { text2 = textNode.appendChild( createLabel$1( - sanitizeText$5(decodeEntities(labelText), getConfig$1()), + sanitizeText$6(decodeEntities(labelText), getConfig$1()), node2.labelStyle, false, isNode @@ -52875,15 +52875,15 @@ You have to call mermaid.initialize.` }; let sections$2 = DEFAULT_PIE_DB.sections; let showData = DEFAULT_PIE_DB.showData; - const config$1 = structuredClone(DEFAULT_PIE_CONFIG); - const getConfig = () => structuredClone(config$1); + const config$2 = structuredClone(DEFAULT_PIE_CONFIG); + const getConfig = () => structuredClone(config$2); const clear$b = () => { sections$2 = structuredClone(DEFAULT_PIE_DB.sections); showData = DEFAULT_PIE_DB.showData; clear$n(); }; const addSection$2 = (label, value2) => { - label = sanitizeText$5(label, getConfig$1()); + label = sanitizeText$6(label, getConfig$1()); if (sections$2[label] === void 0) { sections$2[label] = value2; log$1.debug(`added new section: ${label}, with value: ${value2}`); @@ -54084,9 +54084,9 @@ You have to call mermaid.initialize.` }; } } - const config = getConfig$1(); + const config$1 = getConfig$1(); function textSanitizer$1(text2) { - return sanitizeText$5(text2.trim(), config); + return sanitizeText$6(text2.trim(), config$1); } const quadrantBuilder = new QuadrantBuilder(); function setQuadrant1Text(textObj) { @@ -55764,7 +55764,7 @@ You have to call mermaid.initialize.` } function textSanitizer(text2) { const config2 = getConfig$2(); - return sanitizeText$5(text2.trim(), config2); + return sanitizeText$6(text2.trim(), config2); } function setTmpSVGG(SVGG) { tmpSVGGroup = SVGG; @@ -58102,7 +58102,7 @@ You have to call mermaid.initialize.` } return { color: color2, - text: title2 !== void 0 ? sanitizeText$5(title2.replace(/^:?(?:no)?wrap:/, ""), getConfig$1()) : void 0, + text: title2 !== void 0 ? sanitizeText$6(title2.replace(/^:?(?:no)?wrap:/, ""), getConfig$1()) : void 0, wrap: title2 !== void 0 ? title2.match(/^:?wrap:/) !== null ? true : title2.match(/^:?nowrap:/) !== null ? false : void 0 : void 0 }; }; @@ -58168,7 +58168,7 @@ You have to call mermaid.initialize.` const addLinks = function(actorId, text2) { const actor = getActor(actorId); try { - let sanitizedText = sanitizeText$5(text2.text, getConfig$1()); + let sanitizedText = sanitizeText$6(text2.text, getConfig$1()); sanitizedText = sanitizedText.replace(/&/g, "&"); sanitizedText = sanitizedText.replace(/=/g, "="); const links2 = JSON.parse(sanitizedText); @@ -58181,7 +58181,7 @@ You have to call mermaid.initialize.` const actor = getActor(actorId); try { const links2 = {}; - let sanitizedText = sanitizeText$5(text2.text, getConfig$1()); + let sanitizedText = sanitizeText$6(text2.text, getConfig$1()); var sep2 = sanitizedText.indexOf("@"); sanitizedText = sanitizedText.replace(/&/g, "&"); sanitizedText = sanitizedText.replace(/=/g, "="); @@ -58205,7 +58205,7 @@ You have to call mermaid.initialize.` const addProperties = function(actorId, text2) { const actor = getActor(actorId); try { - let sanitizedText = sanitizeText$5(text2.text, getConfig$1()); + let sanitizedText = sanitizeText$6(text2.text, getConfig$1()); const properties = JSON.parse(sanitizedText); insertProperties(actor, properties); } catch (e) { @@ -61305,7 +61305,7 @@ You have to call mermaid.initialize.` this.memberType = memberType; this.visibility = ""; this.classifier = ""; - const sanitizedInput = sanitizeText$5(input, getConfig$1()); + const sanitizedInput = sanitizeText$6(input, getConfig$1()); this.parseMember(sanitizedInput); } getDisplayDetails() { @@ -61381,22 +61381,22 @@ You have to call mermaid.initialize.` let namespaces = {}; let namespaceCounter = 0; let functions = []; - const sanitizeText$1 = (txt) => common$1.sanitizeText(txt, getConfig$1()); + const sanitizeText$2 = (txt) => common$1.sanitizeText(txt, getConfig$1()); const splitClassNameAndType = function(_id) { const id2 = common$1.sanitizeText(_id, getConfig$1()); let genericType = ""; let className = id2; if (id2.indexOf("~") > 0) { const split = id2.split("~"); - className = sanitizeText$1(split[0]); - genericType = sanitizeText$1(split[1]); + className = sanitizeText$2(split[0]); + genericType = sanitizeText$2(split[1]); } return { className, type: genericType }; }; const setClassLabel = function(_id, label) { const id2 = common$1.sanitizeText(_id, getConfig$1()); if (label) { - label = sanitizeText$1(label); + label = sanitizeText$2(label); } const { className } = splitClassNameAndType(id2); classes$2[className].label = label; @@ -61471,7 +61471,7 @@ You have to call mermaid.initialize.` if (typeof member === "string") { const memberString = member.trim(); if (memberString.startsWith("<<") && memberString.endsWith(">>")) { - theClass.annotations.push(sanitizeText$1(memberString.substring(2, memberString.length - 2))); + theClass.annotations.push(sanitizeText$2(memberString.substring(2, memberString.length - 2))); } else if (memberString.indexOf(")") > 0) { theClass.methods.push(new ClassMember(memberString, "method")); } else if (memberString) { @@ -61497,7 +61497,7 @@ You have to call mermaid.initialize.` if (label.startsWith(":")) { label = label.substring(1); } - return sanitizeText$1(label.trim()); + return sanitizeText$2(label.trim()); }; const setCssClass$2 = function(ids, className) { ids.split(",").forEach(function(_id) { @@ -61513,7 +61513,7 @@ You have to call mermaid.initialize.` const setTooltip = function(ids, tooltip) { ids.split(",").forEach(function(id2) { if (tooltip !== void 0) { - classes$2[id2].tooltip = sanitizeText$1(tooltip); + classes$2[id2].tooltip = sanitizeText$2(tooltip); } }); }; @@ -61535,7 +61535,7 @@ You have to call mermaid.initialize.` if (config2.securityLevel === "sandbox") { classes$2[id2].linkTarget = "_top"; } else if (typeof target === "string") { - classes$2[id2].linkTarget = sanitizeText$1(target); + classes$2[id2].linkTarget = sanitizeText$2(target); } else { classes$2[id2].linkTarget = "_blank"; } @@ -62221,7 +62221,7 @@ g.classGroup line { __proto__: null, diagram: diagram$9 }, Symbol.toStringTag, { value: "Module" })); - const sanitizeText = (txt) => common$1.sanitizeText(txt, getConfig$1()); + const sanitizeText$1 = (txt) => common$1.sanitizeText(txt, getConfig$1()); let conf$3 = { dividerMargin: 10, padding: 5, @@ -62240,7 +62240,7 @@ g.classGroup line { shape, id: vertex.id, domId: vertex.domId, - labelText: sanitizeText(vertex.id), + labelText: sanitizeText$1(vertex.id), labelStyle: "", style: "fill: none; stroke: black", // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release @@ -62266,7 +62266,7 @@ g.classGroup line { const node2 = { labelStyle: styles2.labelStyle, shape, - labelText: sanitizeText(vertexText), + labelText: sanitizeText$1(vertexText), classData: vertex, rx: radius, ry: radius, @@ -62302,7 +62302,7 @@ g.classGroup line { const node2 = { labelStyle: styles2.labelStyle, shape, - labelText: sanitizeText(vertexText), + labelText: sanitizeText$1(vertexText), noteData: vertex, rx: radius, ry: radius, @@ -161066,9 +161066,9 @@ g.stateGroup line { } const node2 = { id: cnt$1++, - nodeId: sanitizeText$5(id2, conf2), + nodeId: sanitizeText$6(id2, conf2), level, - descr: sanitizeText$5(descr, conf2), + descr: sanitizeText$6(descr, conf2), type: type2, children: [], width: ((_b2 = conf2.mindmap) == null ? void 0 : _b2.maxNodeWidth) ?? defaultConfig$2.mindmap.maxNodeWidth, @@ -161127,10 +161127,10 @@ g.stateGroup line { const config2 = getConfig$1(); const node2 = nodes$1[nodes$1.length - 1]; if (decoration.icon) { - node2.icon = sanitizeText$5(decoration.icon, config2); + node2.icon = sanitizeText$6(decoration.icon, config2); } if (decoration.class) { - node2.class = sanitizeText$5(decoration.class, config2); + node2.class = sanitizeText$6(decoration.class, config2); } }; const type2Str = (type2) => { @@ -194890,7 +194890,9 @@ ${prefix}${Math.round(value2 * 100) / 100}${suffix}`; const FILL_KEYWORD = "fill"; const BG_FILL = "bgFill"; const STYLECLASS_SEP = ","; + const config = getConfig$1(); let classes = {}; + const sanitizeText = (txt) => common$1.sanitizeText(txt, config); const addStyleClass = function(id2, styleAttributes = "") { if (classes[id2] === void 0) { classes[id2] = { id: id2, styles: [], textStyles: [] }; @@ -194932,6 +194934,9 @@ ${prefix}${Math.round(value2 * 100) / 100}${suffix}`; const blockList = _blockList.flat(); const children2 = []; for (const block2 of blockList) { + if (block2.label) { + block2.label = sanitizeText(block2.label); + } if (block2.type === "classDef") { addStyleClass(block2.id, block2.css); continue; diff --git a/assets/lib/mermaid/mermaid.min.js b/assets/lib/mermaid/mermaid.min.js index ca037e44d..3dce007ac 100644 --- a/assets/lib/mermaid/mermaid.min.js +++ b/assets/lib/mermaid/mermaid.min.js @@ -8,9 +8,9 @@
${d}
- `:`
${d}
`).join("").replace(h2e,(d,p)=>u.renderToString(p,{throwOnError:!0,displayMode:!0,output:ERe()?"mathml":"htmlAndMathml"}).replace(/\n/g," ").replace(//g,""))},li={getRows:lPt,sanitizeText:Yf,sanitizeTextOrArray:dPt,hasBreaks:gPt,splitBreaks:pPt,lineBreakRegex:fD,removeScript:yRe,getUrl:mPt,evaluate:f1,getMax:vPt,getMin:wPt},vX={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:i=>i>=255?255:i<0?0:i,g:i=>i>=255?255:i<0?0:i,b:i=>i>=255?255:i<0?0:i,h:i=>i%360,s:i=>i>=100?100:i<0?0:i,l:i=>i>=100?100:i<0?0:i,a:i=>i>=1?1:i<0?0:i},toLinear:i=>{const s=i/255;return i>.03928?Math.pow((s+.055)/1.055,2.4):s/12.92},hue2rgb:(i,s,u)=>(u<0&&(u+=1),u>1&&(u-=1),u<1/6?i+(s-i)*6*u:u<1/2?s:u<2/3?i+(s-i)*(2/3-u)*6:i),hsl2rgb:({h:i,s,l:u},d)=>{if(!s)return u*2.55;i/=360,s/=100,u/=100;const p=u<.5?u*(1+s):u+s-u*s,v=2*u-p;switch(d){case"r":return vX.hue2rgb(v,p,i+1/3)*255;case"g":return vX.hue2rgb(v,p,i)*255;case"b":return vX.hue2rgb(v,p,i-1/3)*255}},rgb2hsl:({r:i,g:s,b:u},d)=>{i/=255,s/=255,u/=255;const p=Math.max(i,s,u),v=Math.min(i,s,u),b=(p+v)/2;if(d==="l")return b*100;if(p===v)return 0;const y=p-v,T=b>.5?y/(2-p-v):y/(p+v);if(d==="s")return T*100;switch(p){case i:return((s-u)/y+(ss>u?Math.min(s,Math.max(u,i)):Math.min(u,Math.max(s,i)),round:i=>Math.round(i*1e10)/1e10},unit:{dec2hex:i=>{const s=Math.round(i).toString(16);return s.length>1?s:`0${s}`}}},v9={};for(let i=0;i<=255;i++)v9[i]=Wa.unit.dec2hex(i);const Og={ALL:0,RGB:1,HSL:2};class kPt{constructor(){this.type=Og.ALL}get(){return this.type}set(s){if(this.type&&this.type!==s)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=s}reset(){this.type=Og.ALL}is(s){return this.type===s}}const EPt=kPt;class TPt{constructor(s,u){this.color=u,this.changed=!1,this.data=s,this.type=new EPt}set(s,u){return this.color=u,this.changed=!1,this.data=s,this.type.type=Og.ALL,this}_ensureHSL(){const s=this.data,{h:u,s:d,l:p}=s;u===void 0&&(s.h=Wa.channel.rgb2hsl(s,"h")),d===void 0&&(s.s=Wa.channel.rgb2hsl(s,"s")),p===void 0&&(s.l=Wa.channel.rgb2hsl(s,"l"))}_ensureRGB(){const s=this.data,{r:u,g:d,b:p}=s;u===void 0&&(s.r=Wa.channel.hsl2rgb(s,"r")),d===void 0&&(s.g=Wa.channel.hsl2rgb(s,"g")),p===void 0&&(s.b=Wa.channel.hsl2rgb(s,"b"))}get r(){const s=this.data,u=s.r;return!this.type.is(Og.HSL)&&u!==void 0?u:(this._ensureHSL(),Wa.channel.hsl2rgb(s,"r"))}get g(){const s=this.data,u=s.g;return!this.type.is(Og.HSL)&&u!==void 0?u:(this._ensureHSL(),Wa.channel.hsl2rgb(s,"g"))}get b(){const s=this.data,u=s.b;return!this.type.is(Og.HSL)&&u!==void 0?u:(this._ensureHSL(),Wa.channel.hsl2rgb(s,"b"))}get h(){const s=this.data,u=s.h;return!this.type.is(Og.RGB)&&u!==void 0?u:(this._ensureRGB(),Wa.channel.rgb2hsl(s,"h"))}get s(){const s=this.data,u=s.s;return!this.type.is(Og.RGB)&&u!==void 0?u:(this._ensureRGB(),Wa.channel.rgb2hsl(s,"s"))}get l(){const s=this.data,u=s.l;return!this.type.is(Og.RGB)&&u!==void 0?u:(this._ensureRGB(),Wa.channel.rgb2hsl(s,"l"))}get a(){return this.data.a}set r(s){this.type.set(Og.RGB),this.changed=!0,this.data.r=s}set g(s){this.type.set(Og.RGB),this.changed=!0,this.data.g=s}set b(s){this.type.set(Og.RGB),this.changed=!0,this.data.b=s}set h(s){this.type.set(Og.HSL),this.changed=!0,this.data.h=s}set s(s){this.type.set(Og.HSL),this.changed=!0,this.data.s=s}set l(s){this.type.set(Og.HSL),this.changed=!0,this.data.l=s}set a(s){this.changed=!0,this.data.a=s}}const CPt=TPt,wX=new CPt({r:0,g:0,b:0,a:0},"transparent"),TRe={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:i=>{if(i.charCodeAt(0)!==35)return;const s=i.match(TRe.re);if(!s)return;const u=s[1],d=parseInt(u,16),p=u.length,v=p%4===0,b=p>4,y=b?1:17,T=b?8:4,_=v?0:-1,A=b?255:15;return wX.set({r:(d>>T*(_+3)&A)*y,g:(d>>T*(_+2)&A)*y,b:(d>>T*(_+1)&A)*y,a:v?(d&A)*y/255:1},i)},stringify:i=>{const{r:s,g:u,b:d,a:p}=i;return p<1?`#${v9[Math.round(s)]}${v9[Math.round(u)]}${v9[Math.round(d)]}${v9[Math.round(p*255)]}`:`#${v9[Math.round(s)]}${v9[Math.round(u)]}${v9[Math.round(d)]}`}},VF=TRe,yX={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:i=>{const s=i.match(yX.hueRe);if(s){const[,u,d]=s;switch(d){case"grad":return Wa.channel.clamp.h(parseFloat(u)*.9);case"rad":return Wa.channel.clamp.h(parseFloat(u)*180/Math.PI);case"turn":return Wa.channel.clamp.h(parseFloat(u)*360)}}return Wa.channel.clamp.h(parseFloat(i))},parse:i=>{const s=i.charCodeAt(0);if(s!==104&&s!==72)return;const u=i.match(yX.re);if(!u)return;const[,d,p,v,b,y]=u;return wX.set({h:yX._hue2deg(d),s:Wa.channel.clamp.s(parseFloat(p)),l:Wa.channel.clamp.l(parseFloat(v)),a:b?Wa.channel.clamp.a(y?parseFloat(b)/100:parseFloat(b)):1},i)},stringify:i=>{const{h:s,s:u,l:d,a:p}=i;return p<1?`hsla(${Wa.lang.round(s)}, ${Wa.lang.round(u)}%, ${Wa.lang.round(d)}%, ${p})`:`hsl(${Wa.lang.round(s)}, ${Wa.lang.round(u)}%, ${Wa.lang.round(d)}%)`}},xX=yX,kX={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:i=>{i=i.toLowerCase();const s=kX.colors[i];if(s)return VF.parse(s)},stringify:i=>{const s=VF.stringify(i);for(const u in kX.colors)if(kX.colors[u]===s)return u}},CRe=kX,SRe={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:i=>{const s=i.charCodeAt(0);if(s!==114&&s!==82)return;const u=i.match(SRe.re);if(!u)return;const[,d,p,v,b,y,T,_,A]=u;return wX.set({r:Wa.channel.clamp.r(p?parseFloat(d)*2.55:parseFloat(d)),g:Wa.channel.clamp.g(b?parseFloat(v)*2.55:parseFloat(v)),b:Wa.channel.clamp.b(T?parseFloat(y)*2.55:parseFloat(y)),a:_?Wa.channel.clamp.a(A?parseFloat(_)/100:parseFloat(_)):1},i)},stringify:i=>{const{r:s,g:u,b:d,a:p}=i;return p<1?`rgba(${Wa.lang.round(s)}, ${Wa.lang.round(u)}, ${Wa.lang.round(d)}, ${Wa.lang.round(p)})`:`rgb(${Wa.lang.round(s)}, ${Wa.lang.round(u)}, ${Wa.lang.round(d)})`}},EX=SRe,O3={format:{keyword:CRe,hex:VF,rgb:EX,rgba:EX,hsl:xX,hsla:xX},parse:i=>{if(typeof i!="string")return i;const s=VF.parse(i)||EX.parse(i)||xX.parse(i)||CRe.parse(i);if(s)return s;throw new Error(`Unsupported color format: "${i}"`)},stringify:i=>!i.changed&&i.color?i.color:i.type.is(Og.HSL)||i.data.r===void 0?xX.stringify(i):i.a<1||!Number.isInteger(i.r)||!Number.isInteger(i.g)||!Number.isInteger(i.b)?EX.stringify(i):VF.stringify(i)},_Re=(i,s)=>{const u=O3.parse(i);for(const d in s)u[d]=Wa.channel.clamp[d](s[d]);return O3.stringify(u)},SC=(i,s,u=0,d=1)=>{if(typeof i!="number")return _Re(i,{a:s});const p=wX.set({r:Wa.channel.clamp.r(i),g:Wa.channel.clamp.g(s),b:Wa.channel.clamp.b(u),a:Wa.channel.clamp.a(d)});return O3.stringify(p)},ARe=(i,s)=>Wa.lang.round(O3.parse(i)[s]),SPt=i=>{const{r:s,g:u,b:d}=O3.parse(i),p=.2126*Wa.channel.toLinear(s)+.7152*Wa.channel.toLinear(u)+.0722*Wa.channel.toLinear(d);return Wa.lang.round(p)},_Pt=i=>SPt(i)>=.5,_C=i=>!_Pt(i),LRe=(i,s,u)=>{const d=O3.parse(i),p=d[s],v=Wa.channel.clamp[s](p+u);return p!==v&&(d[s]=v),O3.stringify(d)},Gs=(i,s)=>LRe(i,"l",s),fa=(i,s)=>LRe(i,"l",-s),In=(i,s)=>{const u=O3.parse(i),d={};for(const p in s)s[p]&&(d[p]=u[p]+s[p]);return _Re(i,d)},APt=(i,s,u=50)=>{const{r:d,g:p,b:v,a:b}=O3.parse(i),{r:y,g:T,b:_,a:A}=O3.parse(s),P=u/100,R=P*2-1,F=b-A,K=((R*F===-1?R:(R+F)/(1+R*F))+1)/2,ee=1-K,ie=d*K+y*ee,oe=p*K+T*ee,pe=v*K+_*ee,be=b*P+A*(1-P);return SC(ie,oe,pe,be)},Vi=(i,s=100)=>{const u=O3.parse(i);return u.r=255-u.r,u.g=255-u.g,u.b=255-u.b,APt(u,i,s)},Tp=(i,s)=>s?In(i,{s:-40,l:10}):In(i,{s:-40,l:-10}),TX="#ffffff",CX="#f2f2f2";let LPt=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){var u,d,p,v,b,y,T,_,A,P,R;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||In(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||In(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Tp(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Tp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Tp(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Tp(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||Vi(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Vi(this.tertiaryColor),this.lineColor=this.lineColor||Vi(this.background),this.arrowheadColor=this.arrowheadColor||Vi(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?fa(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||"grey",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||fa(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Vi(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||Gs(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||In(this.primaryColor,{h:30}),this.cScale4=this.cScale4||In(this.primaryColor,{h:60}),this.cScale5=this.cScale5||In(this.primaryColor,{h:90}),this.cScale6=this.cScale6||In(this.primaryColor,{h:120}),this.cScale7=this.cScale7||In(this.primaryColor,{h:150}),this.cScale8=this.cScale8||In(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||In(this.primaryColor,{h:270}),this.cScale10=this.cScale10||In(this.primaryColor,{h:300}),this.cScale11=this.cScale11||In(this.primaryColor,{h:330}),this.darkMode)for(let F=0;F{this[d]=s[d]}),this.updateColors(),u.forEach(d=>{this[d]=s[d]})}};const MPt=i=>{const s=new LPt;return s.calculate(i),s};let DPt=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=Gs(this.primaryColor,16),this.tertiaryColor=In(this.primaryColor,{h:-160}),this.primaryBorderColor=Vi(this.background),this.secondaryBorderColor=Tp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Tp(this.tertiaryColor,this.darkMode),this.primaryTextColor=Vi(this.primaryColor),this.secondaryTextColor=Vi(this.secondaryColor),this.tertiaryTextColor=Vi(this.tertiaryColor),this.lineColor=Vi(this.background),this.textColor=Vi(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=Gs(Vi("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=SC(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=fa("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=fa(this.sectionBkgColor,10),this.taskBorderColor=SC(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=SC(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var s,u,d,p,v,b,y,T,_,A,P;this.secondBkg=Gs(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=Gs(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=Gs(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=In(this.primaryColor,{h:64}),this.fillType3=In(this.secondaryColor,{h:64}),this.fillType4=In(this.primaryColor,{h:-64}),this.fillType5=In(this.secondaryColor,{h:-64}),this.fillType6=In(this.primaryColor,{h:128}),this.fillType7=In(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||In(this.primaryColor,{h:30}),this.cScale4=this.cScale4||In(this.primaryColor,{h:60}),this.cScale5=this.cScale5||In(this.primaryColor,{h:90}),this.cScale6=this.cScale6||In(this.primaryColor,{h:120}),this.cScale7=this.cScale7||In(this.primaryColor,{h:150}),this.cScale8=this.cScale8||In(this.primaryColor,{h:210}),this.cScale9=this.cScale9||In(this.primaryColor,{h:270}),this.cScale10=this.cScale10||In(this.primaryColor,{h:300}),this.cScale11=this.cScale11||In(this.primaryColor,{h:330});for(let R=0;R{this[d]=s[d]}),this.updateColors(),u.forEach(d=>{this[d]=s[d]})}};const IPt=i=>{const s=new DPt;return s.calculate(i),s};let OPt=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=In(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=In(this.primaryColor,{h:-160}),this.primaryBorderColor=Tp(this.primaryColor,this.darkMode),this.secondaryBorderColor=Tp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Tp(this.tertiaryColor,this.darkMode),this.primaryTextColor=Vi(this.primaryColor),this.secondaryTextColor=Vi(this.secondaryColor),this.tertiaryTextColor=Vi(this.tertiaryColor),this.lineColor=Vi(this.background),this.textColor=Vi(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#e8e8e8",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=SC(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var s,u,d,p,v,b,y,T,_,A,P;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||In(this.primaryColor,{h:30}),this.cScale4=this.cScale4||In(this.primaryColor,{h:60}),this.cScale5=this.cScale5||In(this.primaryColor,{h:90}),this.cScale6=this.cScale6||In(this.primaryColor,{h:120}),this.cScale7=this.cScale7||In(this.primaryColor,{h:150}),this.cScale8=this.cScale8||In(this.primaryColor,{h:210}),this.cScale9=this.cScale9||In(this.primaryColor,{h:270}),this.cScale10=this.cScale10||In(this.primaryColor,{h:300}),this.cScale11=this.cScale11||In(this.primaryColor,{h:330}),this["cScalePeer1"]=this["cScalePeer1"]||fa(this.secondaryColor,45),this["cScalePeer2"]=this["cScalePeer2"]||fa(this.tertiaryColor,40);for(let R=0;R{this[d]=s[d]}),this.updateColors(),u.forEach(d=>{this[d]=s[d]})}};const f2e=i=>{const s=new OPt;return s.calculate(i),s};let NPt=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=Gs("#cde498",10),this.primaryBorderColor=Tp(this.primaryColor,this.darkMode),this.secondaryBorderColor=Tp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Tp(this.tertiaryColor,this.darkMode),this.primaryTextColor=Vi(this.primaryColor),this.secondaryTextColor=Vi(this.secondaryColor),this.tertiaryTextColor=Vi(this.primaryColor),this.lineColor=Vi(this.background),this.textColor=Vi(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var s,u,d,p,v,b,y,T,_,A,P;this.actorBorder=fa(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||In(this.primaryColor,{h:30}),this.cScale4=this.cScale4||In(this.primaryColor,{h:60}),this.cScale5=this.cScale5||In(this.primaryColor,{h:90}),this.cScale6=this.cScale6||In(this.primaryColor,{h:120}),this.cScale7=this.cScale7||In(this.primaryColor,{h:150}),this.cScale8=this.cScale8||In(this.primaryColor,{h:210}),this.cScale9=this.cScale9||In(this.primaryColor,{h:270}),this.cScale10=this.cScale10||In(this.primaryColor,{h:300}),this.cScale11=this.cScale11||In(this.primaryColor,{h:330}),this["cScalePeer1"]=this["cScalePeer1"]||fa(this.secondaryColor,45),this["cScalePeer2"]=this["cScalePeer2"]||fa(this.tertiaryColor,40);for(let R=0;R{this[d]=s[d]}),this.updateColors(),u.forEach(d=>{this[d]=s[d]})}};const PPt=i=>{const s=new NPt;return s.calculate(i),s};class BPt{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=Gs(this.contrast,55),this.background="#ffffff",this.tertiaryColor=In(this.primaryColor,{h:-160}),this.primaryBorderColor=Tp(this.primaryColor,this.darkMode),this.secondaryBorderColor=Tp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Tp(this.tertiaryColor,this.darkMode),this.primaryTextColor=Vi(this.primaryColor),this.secondaryTextColor=Vi(this.secondaryColor),this.tertiaryTextColor=Vi(this.tertiaryColor),this.lineColor=Vi(this.background),this.textColor=Vi(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var s,u,d,p,v,b,y,T,_,A,P;this.secondBkg=Gs(this.contrast,55),this.border2=this.contrast,this.actorBorder=Gs(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let R=0;R{this[d]=s[d]}),this.updateColors(),u.forEach(d=>{this[d]=s[d]})}}const E7={base:{getThemeVariables:MPt},dark:{getThemeVariables:IPt},default:{getThemeVariables:f2e},forest:{getThemeVariables:PPt},neutral:{getThemeVariables:i=>{const s=new BPt;return s.calculate(i),s}}},T7={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},theme:"default",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","maxEdges"],legacyMathML:!1,deterministicIds:!1,fontSize:16},MRe={...T7,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:E7.default.getThemeVariables(),sequence:{...T7.sequence,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{...T7.gantt,tickInterval:void 0,useWidth:void 0},c4:{...T7.c4,useWidth:void 0,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}},pie:{...T7.pie,useWidth:984},xyChart:{...T7.xyChart,useWidth:void 0},requirement:{...T7.requirement,useWidth:void 0},gitGraph:{...T7.gitGraph,useMaxWidth:!1},sankey:{...T7.sankey,useMaxWidth:!1}},DRe=(i,s="")=>Object.keys(i).reduce((u,d)=>Array.isArray(i[d])?u:typeof i[d]=="object"&&i[d]!==null?[...u,s+d,...DRe(i[d],"")]:[...u,s+d],[]),FPt=new Set(DRe(MRe,"")),sh=MRe,SX=i=>{if(Xe.debug("sanitizeDirective called with",i),!(typeof i!="object"||i==null)){if(Array.isArray(i)){i.forEach(s=>SX(s));return}for(const s of Object.keys(i)){if(Xe.debug("Checking key",s),s.startsWith("__")||s.includes("proto")||s.includes("constr")||!FPt.has(s)||i[s]==null){Xe.debug("sanitize deleting key: ",s),delete i[s];continue}if(typeof i[s]=="object"){Xe.debug("sanitizing object",s),SX(i[s]);continue}const u=["themeCSS","fontFamily","altFontFamily"];for(const d of u)s.includes(d)&&(Xe.debug("sanitizing css option",s),i[s]=RPt(i[s]))}if(i.themeVariables)for(const s of Object.keys(i.themeVariables)){const u=i.themeVariables[s];u!=null&&u.match&&!u.match(/^[\d "#%(),.;A-Za-z]+$/)&&(i.themeVariables[s]="")}Xe.debug("After sanitization",i)}},RPt=i=>{let s=0,u=0;for(const d of i){if(s${d}`).join("").replace(h2e,(d,p)=>u.renderToString(p,{throwOnError:!0,displayMode:!0,output:ERe()?"mathml":"htmlAndMathml"}).replace(/\n/g," ").replace(//g,""))},ci={getRows:lPt,sanitizeText:Yf,sanitizeTextOrArray:dPt,hasBreaks:gPt,splitBreaks:pPt,lineBreakRegex:fD,removeScript:yRe,getUrl:mPt,evaluate:f1,getMax:vPt,getMin:wPt},vX={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:i=>i>=255?255:i<0?0:i,g:i=>i>=255?255:i<0?0:i,b:i=>i>=255?255:i<0?0:i,h:i=>i%360,s:i=>i>=100?100:i<0?0:i,l:i=>i>=100?100:i<0?0:i,a:i=>i>=1?1:i<0?0:i},toLinear:i=>{const s=i/255;return i>.03928?Math.pow((s+.055)/1.055,2.4):s/12.92},hue2rgb:(i,s,u)=>(u<0&&(u+=1),u>1&&(u-=1),u<1/6?i+(s-i)*6*u:u<1/2?s:u<2/3?i+(s-i)*(2/3-u)*6:i),hsl2rgb:({h:i,s,l:u},d)=>{if(!s)return u*2.55;i/=360,s/=100,u/=100;const p=u<.5?u*(1+s):u+s-u*s,v=2*u-p;switch(d){case"r":return vX.hue2rgb(v,p,i+1/3)*255;case"g":return vX.hue2rgb(v,p,i)*255;case"b":return vX.hue2rgb(v,p,i-1/3)*255}},rgb2hsl:({r:i,g:s,b:u},d)=>{i/=255,s/=255,u/=255;const p=Math.max(i,s,u),v=Math.min(i,s,u),b=(p+v)/2;if(d==="l")return b*100;if(p===v)return 0;const y=p-v,T=b>.5?y/(2-p-v):y/(p+v);if(d==="s")return T*100;switch(p){case i:return((s-u)/y+(ss>u?Math.min(s,Math.max(u,i)):Math.min(u,Math.max(s,i)),round:i=>Math.round(i*1e10)/1e10},unit:{dec2hex:i=>{const s=Math.round(i).toString(16);return s.length>1?s:`0${s}`}}},v9={};for(let i=0;i<=255;i++)v9[i]=Wa.unit.dec2hex(i);const Og={ALL:0,RGB:1,HSL:2};class kPt{constructor(){this.type=Og.ALL}get(){return this.type}set(s){if(this.type&&this.type!==s)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=s}reset(){this.type=Og.ALL}is(s){return this.type===s}}const EPt=kPt;class TPt{constructor(s,u){this.color=u,this.changed=!1,this.data=s,this.type=new EPt}set(s,u){return this.color=u,this.changed=!1,this.data=s,this.type.type=Og.ALL,this}_ensureHSL(){const s=this.data,{h:u,s:d,l:p}=s;u===void 0&&(s.h=Wa.channel.rgb2hsl(s,"h")),d===void 0&&(s.s=Wa.channel.rgb2hsl(s,"s")),p===void 0&&(s.l=Wa.channel.rgb2hsl(s,"l"))}_ensureRGB(){const s=this.data,{r:u,g:d,b:p}=s;u===void 0&&(s.r=Wa.channel.hsl2rgb(s,"r")),d===void 0&&(s.g=Wa.channel.hsl2rgb(s,"g")),p===void 0&&(s.b=Wa.channel.hsl2rgb(s,"b"))}get r(){const s=this.data,u=s.r;return!this.type.is(Og.HSL)&&u!==void 0?u:(this._ensureHSL(),Wa.channel.hsl2rgb(s,"r"))}get g(){const s=this.data,u=s.g;return!this.type.is(Og.HSL)&&u!==void 0?u:(this._ensureHSL(),Wa.channel.hsl2rgb(s,"g"))}get b(){const s=this.data,u=s.b;return!this.type.is(Og.HSL)&&u!==void 0?u:(this._ensureHSL(),Wa.channel.hsl2rgb(s,"b"))}get h(){const s=this.data,u=s.h;return!this.type.is(Og.RGB)&&u!==void 0?u:(this._ensureRGB(),Wa.channel.rgb2hsl(s,"h"))}get s(){const s=this.data,u=s.s;return!this.type.is(Og.RGB)&&u!==void 0?u:(this._ensureRGB(),Wa.channel.rgb2hsl(s,"s"))}get l(){const s=this.data,u=s.l;return!this.type.is(Og.RGB)&&u!==void 0?u:(this._ensureRGB(),Wa.channel.rgb2hsl(s,"l"))}get a(){return this.data.a}set r(s){this.type.set(Og.RGB),this.changed=!0,this.data.r=s}set g(s){this.type.set(Og.RGB),this.changed=!0,this.data.g=s}set b(s){this.type.set(Og.RGB),this.changed=!0,this.data.b=s}set h(s){this.type.set(Og.HSL),this.changed=!0,this.data.h=s}set s(s){this.type.set(Og.HSL),this.changed=!0,this.data.s=s}set l(s){this.type.set(Og.HSL),this.changed=!0,this.data.l=s}set a(s){this.changed=!0,this.data.a=s}}const CPt=TPt,wX=new CPt({r:0,g:0,b:0,a:0},"transparent"),TRe={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:i=>{if(i.charCodeAt(0)!==35)return;const s=i.match(TRe.re);if(!s)return;const u=s[1],d=parseInt(u,16),p=u.length,v=p%4===0,b=p>4,y=b?1:17,T=b?8:4,_=v?0:-1,A=b?255:15;return wX.set({r:(d>>T*(_+3)&A)*y,g:(d>>T*(_+2)&A)*y,b:(d>>T*(_+1)&A)*y,a:v?(d&A)*y/255:1},i)},stringify:i=>{const{r:s,g:u,b:d,a:p}=i;return p<1?`#${v9[Math.round(s)]}${v9[Math.round(u)]}${v9[Math.round(d)]}${v9[Math.round(p*255)]}`:`#${v9[Math.round(s)]}${v9[Math.round(u)]}${v9[Math.round(d)]}`}},VF=TRe,yX={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:i=>{const s=i.match(yX.hueRe);if(s){const[,u,d]=s;switch(d){case"grad":return Wa.channel.clamp.h(parseFloat(u)*.9);case"rad":return Wa.channel.clamp.h(parseFloat(u)*180/Math.PI);case"turn":return Wa.channel.clamp.h(parseFloat(u)*360)}}return Wa.channel.clamp.h(parseFloat(i))},parse:i=>{const s=i.charCodeAt(0);if(s!==104&&s!==72)return;const u=i.match(yX.re);if(!u)return;const[,d,p,v,b,y]=u;return wX.set({h:yX._hue2deg(d),s:Wa.channel.clamp.s(parseFloat(p)),l:Wa.channel.clamp.l(parseFloat(v)),a:b?Wa.channel.clamp.a(y?parseFloat(b)/100:parseFloat(b)):1},i)},stringify:i=>{const{h:s,s:u,l:d,a:p}=i;return p<1?`hsla(${Wa.lang.round(s)}, ${Wa.lang.round(u)}%, ${Wa.lang.round(d)}%, ${p})`:`hsl(${Wa.lang.round(s)}, ${Wa.lang.round(u)}%, ${Wa.lang.round(d)}%)`}},xX=yX,kX={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:i=>{i=i.toLowerCase();const s=kX.colors[i];if(s)return VF.parse(s)},stringify:i=>{const s=VF.stringify(i);for(const u in kX.colors)if(kX.colors[u]===s)return u}},CRe=kX,SRe={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:i=>{const s=i.charCodeAt(0);if(s!==114&&s!==82)return;const u=i.match(SRe.re);if(!u)return;const[,d,p,v,b,y,T,_,A]=u;return wX.set({r:Wa.channel.clamp.r(p?parseFloat(d)*2.55:parseFloat(d)),g:Wa.channel.clamp.g(b?parseFloat(v)*2.55:parseFloat(v)),b:Wa.channel.clamp.b(T?parseFloat(y)*2.55:parseFloat(y)),a:_?Wa.channel.clamp.a(A?parseFloat(_)/100:parseFloat(_)):1},i)},stringify:i=>{const{r:s,g:u,b:d,a:p}=i;return p<1?`rgba(${Wa.lang.round(s)}, ${Wa.lang.round(u)}, ${Wa.lang.round(d)}, ${Wa.lang.round(p)})`:`rgb(${Wa.lang.round(s)}, ${Wa.lang.round(u)}, ${Wa.lang.round(d)})`}},EX=SRe,O3={format:{keyword:CRe,hex:VF,rgb:EX,rgba:EX,hsl:xX,hsla:xX},parse:i=>{if(typeof i!="string")return i;const s=VF.parse(i)||EX.parse(i)||xX.parse(i)||CRe.parse(i);if(s)return s;throw new Error(`Unsupported color format: "${i}"`)},stringify:i=>!i.changed&&i.color?i.color:i.type.is(Og.HSL)||i.data.r===void 0?xX.stringify(i):i.a<1||!Number.isInteger(i.r)||!Number.isInteger(i.g)||!Number.isInteger(i.b)?EX.stringify(i):VF.stringify(i)},_Re=(i,s)=>{const u=O3.parse(i);for(const d in s)u[d]=Wa.channel.clamp[d](s[d]);return O3.stringify(u)},SC=(i,s,u=0,d=1)=>{if(typeof i!="number")return _Re(i,{a:s});const p=wX.set({r:Wa.channel.clamp.r(i),g:Wa.channel.clamp.g(s),b:Wa.channel.clamp.b(u),a:Wa.channel.clamp.a(d)});return O3.stringify(p)},ARe=(i,s)=>Wa.lang.round(O3.parse(i)[s]),SPt=i=>{const{r:s,g:u,b:d}=O3.parse(i),p=.2126*Wa.channel.toLinear(s)+.7152*Wa.channel.toLinear(u)+.0722*Wa.channel.toLinear(d);return Wa.lang.round(p)},_Pt=i=>SPt(i)>=.5,_C=i=>!_Pt(i),LRe=(i,s,u)=>{const d=O3.parse(i),p=d[s],v=Wa.channel.clamp[s](p+u);return p!==v&&(d[s]=v),O3.stringify(d)},Gs=(i,s)=>LRe(i,"l",s),fa=(i,s)=>LRe(i,"l",-s),In=(i,s)=>{const u=O3.parse(i),d={};for(const p in s)s[p]&&(d[p]=u[p]+s[p]);return _Re(i,d)},APt=(i,s,u=50)=>{const{r:d,g:p,b:v,a:b}=O3.parse(i),{r:y,g:T,b:_,a:A}=O3.parse(s),P=u/100,R=P*2-1,F=b-A,K=((R*F===-1?R:(R+F)/(1+R*F))+1)/2,ee=1-K,ie=d*K+y*ee,oe=p*K+T*ee,pe=v*K+_*ee,be=b*P+A*(1-P);return SC(ie,oe,pe,be)},Vi=(i,s=100)=>{const u=O3.parse(i);return u.r=255-u.r,u.g=255-u.g,u.b=255-u.b,APt(u,i,s)},Tp=(i,s)=>s?In(i,{s:-40,l:10}):In(i,{s:-40,l:-10}),TX="#ffffff",CX="#f2f2f2";let LPt=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){var u,d,p,v,b,y,T,_,A,P,R;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||In(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||In(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Tp(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Tp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Tp(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Tp(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||Vi(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Vi(this.tertiaryColor),this.lineColor=this.lineColor||Vi(this.background),this.arrowheadColor=this.arrowheadColor||Vi(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?fa(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||"grey",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||fa(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Vi(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||Gs(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||In(this.primaryColor,{h:30}),this.cScale4=this.cScale4||In(this.primaryColor,{h:60}),this.cScale5=this.cScale5||In(this.primaryColor,{h:90}),this.cScale6=this.cScale6||In(this.primaryColor,{h:120}),this.cScale7=this.cScale7||In(this.primaryColor,{h:150}),this.cScale8=this.cScale8||In(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||In(this.primaryColor,{h:270}),this.cScale10=this.cScale10||In(this.primaryColor,{h:300}),this.cScale11=this.cScale11||In(this.primaryColor,{h:330}),this.darkMode)for(let F=0;F{this[d]=s[d]}),this.updateColors(),u.forEach(d=>{this[d]=s[d]})}};const MPt=i=>{const s=new LPt;return s.calculate(i),s};let DPt=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=Gs(this.primaryColor,16),this.tertiaryColor=In(this.primaryColor,{h:-160}),this.primaryBorderColor=Vi(this.background),this.secondaryBorderColor=Tp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Tp(this.tertiaryColor,this.darkMode),this.primaryTextColor=Vi(this.primaryColor),this.secondaryTextColor=Vi(this.secondaryColor),this.tertiaryTextColor=Vi(this.tertiaryColor),this.lineColor=Vi(this.background),this.textColor=Vi(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=Gs(Vi("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=SC(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=fa("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=fa(this.sectionBkgColor,10),this.taskBorderColor=SC(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=SC(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var s,u,d,p,v,b,y,T,_,A,P;this.secondBkg=Gs(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=Gs(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=Gs(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=In(this.primaryColor,{h:64}),this.fillType3=In(this.secondaryColor,{h:64}),this.fillType4=In(this.primaryColor,{h:-64}),this.fillType5=In(this.secondaryColor,{h:-64}),this.fillType6=In(this.primaryColor,{h:128}),this.fillType7=In(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||In(this.primaryColor,{h:30}),this.cScale4=this.cScale4||In(this.primaryColor,{h:60}),this.cScale5=this.cScale5||In(this.primaryColor,{h:90}),this.cScale6=this.cScale6||In(this.primaryColor,{h:120}),this.cScale7=this.cScale7||In(this.primaryColor,{h:150}),this.cScale8=this.cScale8||In(this.primaryColor,{h:210}),this.cScale9=this.cScale9||In(this.primaryColor,{h:270}),this.cScale10=this.cScale10||In(this.primaryColor,{h:300}),this.cScale11=this.cScale11||In(this.primaryColor,{h:330});for(let R=0;R{this[d]=s[d]}),this.updateColors(),u.forEach(d=>{this[d]=s[d]})}};const IPt=i=>{const s=new DPt;return s.calculate(i),s};let OPt=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=In(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=In(this.primaryColor,{h:-160}),this.primaryBorderColor=Tp(this.primaryColor,this.darkMode),this.secondaryBorderColor=Tp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Tp(this.tertiaryColor,this.darkMode),this.primaryTextColor=Vi(this.primaryColor),this.secondaryTextColor=Vi(this.secondaryColor),this.tertiaryTextColor=Vi(this.tertiaryColor),this.lineColor=Vi(this.background),this.textColor=Vi(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#e8e8e8",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=SC(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var s,u,d,p,v,b,y,T,_,A,P;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||In(this.primaryColor,{h:30}),this.cScale4=this.cScale4||In(this.primaryColor,{h:60}),this.cScale5=this.cScale5||In(this.primaryColor,{h:90}),this.cScale6=this.cScale6||In(this.primaryColor,{h:120}),this.cScale7=this.cScale7||In(this.primaryColor,{h:150}),this.cScale8=this.cScale8||In(this.primaryColor,{h:210}),this.cScale9=this.cScale9||In(this.primaryColor,{h:270}),this.cScale10=this.cScale10||In(this.primaryColor,{h:300}),this.cScale11=this.cScale11||In(this.primaryColor,{h:330}),this["cScalePeer1"]=this["cScalePeer1"]||fa(this.secondaryColor,45),this["cScalePeer2"]=this["cScalePeer2"]||fa(this.tertiaryColor,40);for(let R=0;R{this[d]=s[d]}),this.updateColors(),u.forEach(d=>{this[d]=s[d]})}};const f2e=i=>{const s=new OPt;return s.calculate(i),s};let NPt=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=Gs("#cde498",10),this.primaryBorderColor=Tp(this.primaryColor,this.darkMode),this.secondaryBorderColor=Tp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Tp(this.tertiaryColor,this.darkMode),this.primaryTextColor=Vi(this.primaryColor),this.secondaryTextColor=Vi(this.secondaryColor),this.tertiaryTextColor=Vi(this.primaryColor),this.lineColor=Vi(this.background),this.textColor=Vi(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var s,u,d,p,v,b,y,T,_,A,P;this.actorBorder=fa(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||In(this.primaryColor,{h:30}),this.cScale4=this.cScale4||In(this.primaryColor,{h:60}),this.cScale5=this.cScale5||In(this.primaryColor,{h:90}),this.cScale6=this.cScale6||In(this.primaryColor,{h:120}),this.cScale7=this.cScale7||In(this.primaryColor,{h:150}),this.cScale8=this.cScale8||In(this.primaryColor,{h:210}),this.cScale9=this.cScale9||In(this.primaryColor,{h:270}),this.cScale10=this.cScale10||In(this.primaryColor,{h:300}),this.cScale11=this.cScale11||In(this.primaryColor,{h:330}),this["cScalePeer1"]=this["cScalePeer1"]||fa(this.secondaryColor,45),this["cScalePeer2"]=this["cScalePeer2"]||fa(this.tertiaryColor,40);for(let R=0;R{this[d]=s[d]}),this.updateColors(),u.forEach(d=>{this[d]=s[d]})}};const PPt=i=>{const s=new NPt;return s.calculate(i),s};class BPt{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=Gs(this.contrast,55),this.background="#ffffff",this.tertiaryColor=In(this.primaryColor,{h:-160}),this.primaryBorderColor=Tp(this.primaryColor,this.darkMode),this.secondaryBorderColor=Tp(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Tp(this.tertiaryColor,this.darkMode),this.primaryTextColor=Vi(this.primaryColor),this.secondaryTextColor=Vi(this.secondaryColor),this.tertiaryTextColor=Vi(this.tertiaryColor),this.lineColor=Vi(this.background),this.textColor=Vi(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var s,u,d,p,v,b,y,T,_,A,P;this.secondBkg=Gs(this.contrast,55),this.border2=this.contrast,this.actorBorder=Gs(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let R=0;R{this[d]=s[d]}),this.updateColors(),u.forEach(d=>{this[d]=s[d]})}}const E7={base:{getThemeVariables:MPt},dark:{getThemeVariables:IPt},default:{getThemeVariables:f2e},forest:{getThemeVariables:PPt},neutral:{getThemeVariables:i=>{const s=new BPt;return s.calculate(i),s}}},T7={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},theme:"default",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","maxEdges"],legacyMathML:!1,deterministicIds:!1,fontSize:16},MRe={...T7,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:E7.default.getThemeVariables(),sequence:{...T7.sequence,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{...T7.gantt,tickInterval:void 0,useWidth:void 0},c4:{...T7.c4,useWidth:void 0,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}},pie:{...T7.pie,useWidth:984},xyChart:{...T7.xyChart,useWidth:void 0},requirement:{...T7.requirement,useWidth:void 0},gitGraph:{...T7.gitGraph,useMaxWidth:!1},sankey:{...T7.sankey,useMaxWidth:!1}},DRe=(i,s="")=>Object.keys(i).reduce((u,d)=>Array.isArray(i[d])?u:typeof i[d]=="object"&&i[d]!==null?[...u,s+d,...DRe(i[d],"")]:[...u,s+d],[]),FPt=new Set(DRe(MRe,"")),sh=MRe,SX=i=>{if(Xe.debug("sanitizeDirective called with",i),!(typeof i!="object"||i==null)){if(Array.isArray(i)){i.forEach(s=>SX(s));return}for(const s of Object.keys(i)){if(Xe.debug("Checking key",s),s.startsWith("__")||s.includes("proto")||s.includes("constr")||!FPt.has(s)||i[s]==null){Xe.debug("sanitize deleting key: ",s),delete i[s];continue}if(typeof i[s]=="object"){Xe.debug("sanitizing object",s),SX(i[s]);continue}const u=["themeCSS","fontFamily","altFontFamily"];for(const d of u)s.includes(d)&&(Xe.debug("sanitizing css option",s),i[s]=RPt(i[s]))}if(i.themeVariables)for(const s of Object.keys(i.themeVariables)){const u=i.themeVariables[s];u!=null&&u.match&&!u.match(/^[\d "#%(),.;A-Za-z]+$/)&&(i.themeVariables[s]="")}Xe.debug("After sanitization",i)}},RPt=i=>{let s=0,u=0;for(const d of i){if(s{for(const{id:s,detector:u,loader:d}of i)PRe(s,u,d)},PRe=(i,s,u)=>{dD[i]?Xe.error(`Detector with key ${i} already exists`):dD[i]={detector:s,loader:u},Xe.debug(`Detector with key ${i} added${u?" with loader":""}`)},$Pt=i=>dD[i].loader,d2e=(i,s,{depth:u=2,clobber:d=!1}={})=>{const p={depth:u,clobber:d};return Array.isArray(s)&&!Array.isArray(i)?(s.forEach(v=>d2e(i,v,p)),i):Array.isArray(s)&&Array.isArray(i)?(s.forEach(v=>{i.includes(v)||i.push(v)}),i):i===void 0||u<=0?i!=null&&typeof i=="object"&&typeof s=="object"?Object.assign(i,s):s:(s!==void 0&&typeof i=="object"&&typeof s=="object"&&Object.keys(s).forEach(v=>{typeof s[v]=="object"&&(i[v]===void 0||typeof i[v]=="object")?(i[v]===void 0&&(i[v]=Array.isArray(s[v])?[]:{}),i[v]=d2e(i[v],s[v],{depth:u-1,clobber:d})):(d||typeof i[v]!="object"&&typeof s[v]!="object")&&(i[v]=s[v])}),i)},id=d2e;var zPt=typeof global=="object"&&global&&global.Object===Object&&global;const BRe=zPt;var qPt=typeof self=="object"&&self&&self.Object===Object&&self,HPt=BRe||qPt||Function("return this")();const N3=HPt;var VPt=N3.Symbol;const Iv=VPt;var FRe=Object.prototype,UPt=FRe.hasOwnProperty,GPt=FRe.toString,GF=Iv?Iv.toStringTag:void 0;function KPt(i){var s=UPt.call(i,GF),u=i[GF];try{i[GF]=void 0;var d=!0}catch{}var p=GPt.call(i);return d&&(s?i[GF]=u:delete i[GF]),p}var WPt=Object.prototype,YPt=WPt.toString;function XPt(i){return YPt.call(i)}var QPt="[object Null]",JPt="[object Undefined]",RRe=Iv?Iv.toStringTag:void 0;function AC(i){return i==null?i===void 0?JPt:QPt:RRe&&RRe in Object(i)?KPt(i):XPt(i)}function am(i){var s=typeof i;return i!=null&&(s=="object"||s=="function")}var ZPt="[object AsyncFunction]",eBt="[object Function]",tBt="[object GeneratorFunction]",nBt="[object Proxy]";function gD(i){if(!am(i))return!1;var s=AC(i);return s==eBt||s==tBt||s==ZPt||s==nBt}var rBt=N3["__core-js_shared__"];const g2e=rBt;var jRe=function(){var i=/[^.]+$/.exec(g2e&&g2e.keys&&g2e.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function iBt(i){return!!jRe&&jRe in i}var sBt=Function.prototype,aBt=sBt.toString;function LC(i){if(i!=null){try{return aBt.call(i)}catch{}try{return i+""}catch{}}return""}var oBt=/[\\^$.*+?()[\]{}|]/g,cBt=/^\[object .+?Constructor\]$/,uBt=Function.prototype,lBt=Object.prototype,hBt=uBt.toString,fBt=lBt.hasOwnProperty,dBt=RegExp("^"+hBt.call(fBt).replace(oBt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gBt(i){if(!am(i)||iBt(i))return!1;var s=gD(i)?dBt:cBt;return s.test(LC(i))}function pBt(i,s){return i==null?void 0:i[s]}function MC(i,s){var u=pBt(i,s);return gBt(u)?u:void 0}var bBt=MC(Object,"create");const KF=bBt;function mBt(){this.__data__=KF?KF(null):{},this.size=0}function vBt(i){var s=this.has(i)&&delete this.__data__[i];return this.size-=s?1:0,s}var wBt="__lodash_hash_undefined__",yBt=Object.prototype,xBt=yBt.hasOwnProperty;function kBt(i){var s=this.__data__;if(KF){var u=s[i];return u===wBt?void 0:u}return xBt.call(s,i)?s[i]:void 0}var EBt=Object.prototype,TBt=EBt.hasOwnProperty;function CBt(i){var s=this.__data__;return KF?s[i]!==void 0:TBt.call(s,i)}var SBt="__lodash_hash_undefined__";function _Bt(i,s){var u=this.__data__;return this.size+=this.has(i)?0:1,u[i]=KF&&s===void 0?SBt:s,this}function DC(i){var s=-1,u=i==null?0:i.length;for(this.clear();++s-1}function NBt(i,s){var u=this.__data__,d=AX(u,i);return d<0?(++this.size,u.push([i,s])):u[d][1]=s,this}function C7(i){var s=-1,u=i==null?0:i.length;for(this.clear();++s-1&&i%1==0&&i<=uFt}function w9(i){return i!=null&&w2e(i.length)&&!gD(i)}function JRe(i){return q4(i)&&w9(i)}function lFt(){return!1}var ZRe=typeof exports=="object"&&exports&&!exports.nodeType&&exports,eje=ZRe&&typeof module=="object"&&module&&!module.nodeType&&module,hFt=eje&&eje.exports===ZRe,tje=hFt?N3.Buffer:void 0,fFt=tje?tje.isBuffer:void 0,dFt=fFt||lFt;const vD=dFt;var gFt="[object Object]",pFt=Function.prototype,bFt=Object.prototype,nje=pFt.toString,mFt=bFt.hasOwnProperty,vFt=nje.call(Object);function rje(i){if(!q4(i)||AC(i)!=gFt)return!1;var s=v2e(i);if(s===null)return!0;var u=mFt.call(s,"constructor")&&s.constructor;return typeof u=="function"&&u instanceof u&&nje.call(u)==vFt}var wFt="[object Arguments]",yFt="[object Array]",xFt="[object Boolean]",kFt="[object Date]",EFt="[object Error]",TFt="[object Function]",CFt="[object Map]",SFt="[object Number]",_Ft="[object Object]",AFt="[object RegExp]",LFt="[object Set]",MFt="[object String]",DFt="[object WeakMap]",IFt="[object ArrayBuffer]",OFt="[object DataView]",NFt="[object Float32Array]",PFt="[object Float64Array]",BFt="[object Int8Array]",FFt="[object Int16Array]",RFt="[object Int32Array]",jFt="[object Uint8Array]",$Ft="[object Uint8ClampedArray]",zFt="[object Uint16Array]",qFt="[object Uint32Array]",ah={};ah[NFt]=ah[PFt]=ah[BFt]=ah[FFt]=ah[RFt]=ah[jFt]=ah[$Ft]=ah[zFt]=ah[qFt]=!0,ah[wFt]=ah[yFt]=ah[IFt]=ah[xFt]=ah[OFt]=ah[kFt]=ah[EFt]=ah[TFt]=ah[CFt]=ah[SFt]=ah[_Ft]=ah[AFt]=ah[LFt]=ah[MFt]=ah[DFt]=!1;function HFt(i){return q4(i)&&w2e(i.length)&&!!ah[AC(i)]}function NX(i){return function(s){return i(s)}}var ije=typeof exports=="object"&&exports&&!exports.nodeType&&exports,YF=ije&&typeof module=="object"&&module&&!module.nodeType&&module,VFt=YF&&YF.exports===ije,y2e=VFt&&BRe.process,UFt=function(){try{var i=YF&&YF.require&&YF.require("util").types;return i||y2e&&y2e.binding&&y2e.binding("util")}catch{}}();const wD=UFt;var sje=wD&&wD.isTypedArray,GFt=sje?NX(sje):HFt;const PX=GFt;function x2e(i,s){if(!(s==="constructor"&&typeof i[s]=="function")&&s!="__proto__")return i[s]}var KFt=Object.prototype,WFt=KFt.hasOwnProperty;function BX(i,s,u){var d=i[s];(!(WFt.call(i,s)&&pD(d,u))||u===void 0&&!(s in i))&&DX(i,s,u)}function XF(i,s,u,d){var p=!u;u||(u={});for(var v=-1,b=s.length;++v-1&&i%1==0&&i0){if(++s>=uRt)return arguments[0]}else s=0;return i.apply(void 0,arguments)}}var dRt=fRt(cRt);const lje=dRt;function RX(i,s){return lje(uje(i,s,OC),i+"")}function QF(i,s,u){if(!am(u))return!1;var d=typeof s;return(d=="number"?w9(u)&&FX(s,u.length):d=="string"&&s in u)?pD(u[s],i):!1}function gRt(i){return RX(function(s,u){var d=-1,p=u.length,v=p>1?u[p-1]:void 0,b=p>2?u[2]:void 0;for(v=i.length>3&&typeof v=="function"?(p--,v):void 0,b&&QF(u[0],u[1],b)&&(v=p<3?void 0:v,p=1),s=Object(s);++dy.args);SX(b),d=id(d,[...b])}else d=u.args;if(!d)return;let p=_X(i,s);const v="config";return d[v]!==void 0&&(p==="flowchart-v2"&&(p="flowchart"),d[p]=d[v],delete d[v]),d},fje=function(i,s=null){try{const u=new RegExp(`[%]{2}(?![{]${mRt.source})(?=[}][%]{2}).* -`,"ig");i=i.trim().replace(u,"").replace(/'/gm,'"'),Xe.debug(`Detecting diagram directive${s!==null?" type:"+s:""} based on the text:${i}`);let d;const p=[];for(;(d=UF.exec(i))!==null;)if(d.index===UF.lastIndex&&UF.lastIndex++,d&&!s||s&&d[1]&&d[1].match(s)||s&&d[2]&&d[2].match(s)){const v=d[1]?d[1]:d[2],b=d[3]?d[3].trim():d[4]?JSON.parse(d[4].trim()):null;p.push({type:v,args:b})}return p.length===0?{type:i,args:null}:p.length===1?p[0]:p}catch(u){return Xe.error(`ERROR: ${u.message} - Unable to parse directive type: '${s}' based on the text: '${i}'`),{type:void 0,args:null}}},wRt=function(i){return i.replace(UF,"")},yRt=function(i,s){for(const[u,d]of s.entries())if(d.match(i))return u;return-1};function Ov(i,s){if(!i)return s;const u=`curve${i.charAt(0).toUpperCase()+i.slice(1)}`;return bRt[u]??s}function xRt(i,s){const u=i.trim();if(u)return s.securityLevel!=="loose"?p9.sanitizeUrl(u):u}const kRt=(i,...s)=>{const u=i.split("."),d=u.length-1,p=u[d];let v=window;for(let b=0;b{u+=dje(p,s),s=p});const d=u/2;return k2e(i,d)}function TRt(i){return i.length===1?i[0]:ERt(i)}const gje=(i,s=2)=>{const u=Math.pow(10,s);return Math.round(i*u)/u},k2e=(i,s)=>{let u,d=s;for(const p of i){if(u){const v=dje(p,u);if(v=1)return{x:p.x,y:p.y};if(b>0&&b<1)return{x:gje((1-b)*u.x+b*p.x,5),y:gje((1-b)*u.y+b*p.y,5)}}}u=p}throw new Error("Could not find a suitable point for the given distance")},CRt=(i,s,u)=>{Xe.info(`our points ${JSON.stringify(s)}`),s[0]!==u&&(s=s.reverse());const p=k2e(s,25),v=i?10:5,b=Math.atan2(s[0].y-p.y,s[0].x-p.x),y={x:0,y:0};return y.x=Math.sin(b)*v+(s[0].x+p.x)/2,y.y=-Math.cos(b)*v+(s[0].y+p.y)/2,y};function SRt(i,s,u){const d=structuredClone(u);Xe.info("our points",d),s!=="start_left"&&s!=="start_right"&&d.reverse();const p=25+i,v=k2e(d,p),b=10+i*.5,y=Math.atan2(d[0].y-v.y,d[0].x-v.x),T={x:0,y:0};return s==="start_left"?(T.x=Math.sin(y+Math.PI)*b+(d[0].x+v.x)/2,T.y=-Math.cos(y+Math.PI)*b+(d[0].y+v.y)/2):s==="end_right"?(T.x=Math.sin(y-Math.PI)*b+(d[0].x+v.x)/2-5,T.y=-Math.cos(y-Math.PI)*b+(d[0].y+v.y)/2-5):s==="end_left"?(T.x=Math.sin(y)*b+(d[0].x+v.x)/2-5,T.y=-Math.cos(y)*b+(d[0].y+v.y)/2-5):(T.x=Math.sin(y)*b+(d[0].x+v.x)/2,T.y=-Math.cos(y)*b+(d[0].y+v.y)/2),T}function om(i){let s="",u="";for(const d of i)d!==void 0&&(d.startsWith("color:")||d.startsWith("text-align:")?u=u+d+";":s=s+d+";");return{style:s,labelStyle:u}}let pje=0;const bje=()=>(pje++,"id-"+Math.random().toString(36).substr(2,12)+"-"+pje);function _Rt(i){let s="";const u="0123456789abcdef",d=u.length;for(let p=0;p_Rt(i.length),ARt=function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},LRt=function(i,s){const u=s.text.replace(li.lineBreakRegex," "),[,d]=NC(s.fontSize),p=i.append("text");p.attr("x",s.x),p.attr("y",s.y),p.style("text-anchor",s.anchor),p.style("font-family",s.fontFamily),p.style("font-size",d),p.style("font-weight",s.fontWeight),p.attr("fill",s.fill),s.class!==void 0&&p.attr("class",s.class);const v=p.append("tspan");return v.attr("x",s.x+s.textMargin*2),v.attr("fill",s.fill),v.text(u),p},vje=bD((i,s,u)=>{if(!i||(u=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},u),li.lineBreakRegex.test(i)))return i;const d=i.split(" "),p=[];let v="";return d.forEach((b,y)=>{const T=H4(`${b} `,u),_=H4(v,u);if(T>s){const{hyphenatedStrings:R,remainingWord:F}=MRt(b,s,"-",u);p.push(v,...R),v=F}else _+T>=s?(p.push(v),v=b):v=[v,b].filter(Boolean).join(" ");y+1===d.length&&p.push(v)}),p.filter(b=>b!=="").join(u.joinWith)},(i,s,u)=>`${i}${s}${u.fontSize}${u.fontWeight}${u.fontFamily}${u.joinWith}`),MRt=bD((i,s,u="-",d)=>{d=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},d);const p=[...i],v=[];let b="";return p.forEach((y,T)=>{const _=`${b}${y}`;if(H4(_,d)>=s){const P=T+1,R=p.length===P,F=`${_}${u}`;v.push(R?_:F),b=""}else b=_}),{hyphenatedStrings:v,remainingWord:b}},(i,s,u="-",d)=>`${i}${s}${u}${d.fontSize}${d.fontWeight}${d.fontFamily}`);function E2e(i,s){return T2e(i,s).height}function H4(i,s){return T2e(i,s).width}const T2e=bD((i,s)=>{const{fontSize:u=12,fontFamily:d="Arial",fontWeight:p=400}=s;if(!i)return{width:0,height:0};const[,v]=NC(u),b=["sans-serif",d],y=i.split(li.lineBreakRegex),T=[],_=Ir("body");if(!_.remove)return{width:0,height:0,lineHeight:0};const A=_.append("svg");for(const R of b){let F=0;const j={width:0,height:0,lineHeight:0};for(const K of y){const ee=ARt();ee.text=K||hje;const ie=LRt(A,ee).style("font-size",v).style("font-weight",p).style("font-family",R),oe=(ie._groups||ie)[0][0].getBBox();if(oe.width===0&&oe.height===0)throw new Error("svg element not in render tree");j.width=Math.round(Math.max(j.width,oe.width)),F=Math.round(oe.height),j.height+=F,j.lineHeight=Math.round(Math.max(j.lineHeight,F))}T.push(j)}A.remove();const P=isNaN(T[1].height)||isNaN(T[1].width)||isNaN(T[1].lineHeight)||T[0].height>T[1].height&&T[0].width>T[1].width&&T[0].lineHeight>T[1].lineHeight?0:1;return T[P]},(i,s)=>`${i}${s.fontSize}${s.fontWeight}${s.fontFamily}`);class DRt{constructor(s=!1,u){this.count=0,this.count=u?u.length:0,this.next=s?()=>this.count++:()=>Date.now()}}let $X;const IRt=function(i){return $X=$X||document.createElement("div"),i=escape(i).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),$X.innerHTML=i,unescape($X.textContent)};function wje(i){return"str"in i}const ORt=(i,s,u,d)=>{var v;if(!d)return;const p=(v=i.node())==null?void 0:v.getBBox();p&&i.append("text").text(d).attr("x",p.x+p.width/2).attr("y",-u).attr("class",s)},NC=i=>{if(typeof i=="number")return[i,i+"px"];const s=parseInt(i??"",10);return Number.isNaN(s)?[void 0,void 0]:i===String(s)?[s,i+"px"]:[s,i]};function JF(i,s){return jX({},i,s)}const Ao={assignWithDepth:id,wrapLabel:vje,calculateTextHeight:E2e,calculateTextWidth:H4,calculateTextDimensions:T2e,cleanAndMerge:JF,detectInit:vRt,detectDirective:fje,isSubstringInArray:yRt,interpolateToCurve:Ov,calcLabelPosition:TRt,calcCardinalityPosition:CRt,calcTerminalLabelPosition:SRt,formatUrl:xRt,getStylesFromArray:om,generateId:bje,random:mje,runFunc:kRt,entityDecode:IRt,insertTitle:ORt,parseFontSize:NC,InitIDGenerator:DRt},NRt=function(i){let s=i;return s=s.replace(/style.*:\S*#.*;/g,function(u){return u.substring(0,u.length-1)}),s=s.replace(/classDef.*:\S*#.*;/g,function(u){return u.substring(0,u.length-1)}),s=s.replace(/#\w+;/g,function(u){const d=u.substring(1,u.length-1);return/^\+?\d+$/.test(d)?"fl°°"+d+"¶ß":"fl°"+d+"¶ß"}),s},ZF=function(i){return i.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")};var yje="comm",xje="rule",kje="decl",PRt="@import",BRt="@keyframes",FRt="@layer",Eje=Math.abs,C2e=String.fromCharCode;function Tje(i){return i.trim()}function zX(i,s,u){return i.replace(s,u)}function RRt(i,s,u){return i.indexOf(s,u)}function eR(i,s){return i.charCodeAt(s)|0}function tR(i,s,u){return i.slice(s,u)}function _7(i){return i.length}function jRt(i){return i.length}function qX(i,s){return s.push(i),i}var HX=1,xD=1,Cje=0,Nv=0,I0=0,kD="";function S2e(i,s,u,d,p,v,b,y){return{value:i,root:s,parent:u,type:d,props:p,children:v,line:HX,column:xD,length:b,return:"",siblings:y}}function $Rt(){return I0}function zRt(){return I0=Nv>0?eR(kD,--Nv):0,xD--,I0===10&&(xD=1,HX--),I0}function B3(){return I0=Nv2||_2e(I0)>3?"":" "}function URt(i,s){for(;--s&&B3()&&!(I0<48||I0>102||I0>57&&I0<65||I0>70&&I0<97););return UX(i,VX()+(s<6&&PC()==32&&B3()==32))}function L2e(i){for(;B3();)switch(I0){case i:return Nv;case 34:case 39:i!==34&&i!==39&&L2e(I0);break;case 40:i===41&&L2e(i);break;case 92:B3();break}return Nv}function GRt(i,s){for(;B3()&&i+I0!==47+10;)if(i+I0===42+42&&PC()===47)break;return"/*"+UX(s,Nv-1)+"*"+C2e(i===47?i:B3())}function KRt(i){for(;!_2e(PC());)B3();return UX(i,Nv)}function WRt(i){return HRt(GX("",null,null,null,[""],i=qRt(i),0,[0],i))}function GX(i,s,u,d,p,v,b,y,T){for(var _=0,A=0,P=b,R=0,F=0,j=0,K=1,ee=1,ie=1,oe=0,pe="",be=p,ae=v,ne=d,se=pe;ee;)switch(j=oe,oe=B3()){case 40:if(j!=108&&eR(se,P-1)==58){RRt(se+=zX(A2e(oe),"&","&\f"),"&\f",Eje(_?y[_-1]:0))!=-1&&(ie=-1);break}case 34:case 39:case 91:se+=A2e(oe);break;case 9:case 10:case 13:case 32:se+=VRt(j);break;case 92:se+=URt(VX()-1,7);continue;case 47:switch(PC()){case 42:case 47:qX(YRt(GRt(B3(),VX()),s,u,T),T);break;default:se+="/"}break;case 123*K:y[_++]=_7(se)*ie;case 125*K:case 59:case 0:switch(oe){case 0:case 125:ee=0;case 59+A:ie==-1&&(se=zX(se,/\f/g,"")),F>0&&_7(se)-P&&qX(F>32?_je(se+";",d,u,P-1,T):_je(zX(se," ","")+";",d,u,P-2,T),T);break;case 59:se+=";";default:if(qX(ne=Sje(se,s,u,_,A,p,y,pe,be=[],ae=[],P,v),v),oe===123)if(A===0)GX(se,s,ne,ne,be,v,P,y,ae);else switch(R===99&&eR(se,3)===110?100:R){case 100:case 108:case 109:case 115:GX(i,ne,ne,d&&qX(Sje(i,ne,ne,0,0,p,y,pe,p,be=[],P,ae),ae),p,ae,P,y,d?be:ae);break;default:GX(se,ne,ne,ne,[""],ae,0,y,ae)}}_=A=F=0,K=ie=1,pe=se="",P=b;break;case 58:P=1+_7(se),F=j;default:if(K<1){if(oe==123)--K;else if(oe==125&&K++==0&&zRt()==125)continue}switch(se+=C2e(oe),oe*K){case 38:ie=A>0?1:(se+="\f",-1);break;case 44:y[_++]=(_7(se)-1)*ie,ie=1;break;case 64:PC()===45&&(se+=A2e(B3())),R=PC(),A=P=_7(pe=se+=KRt(VX())),oe++;break;case 45:j===45&&_7(se)==2&&(K=0)}}return v}function Sje(i,s,u,d,p,v,b,y,T,_,A,P){for(var R=p-1,F=p===0?v:[""],j=jRt(F),K=0,ee=0,ie=0;K0?F[oe]+" "+pe:zX(pe,/&\f/g,F[oe])))&&(T[ie++]=be);return S2e(i,s,u,p===0?xje:y,T,_,A,P)}function YRt(i,s,u,d){return S2e(i,s,u,yje,C2e($Rt()),tR(i,2,-2),0,d)}function _je(i,s,u,d,p){return S2e(i,s,u,kje,tR(i,0,d),tR(i,d+1,-1),d,p)}function M2e(i,s){for(var u="",d=0;d{let u=id({},i),d={};for(const p of s)Ije(p),d=id(d,p);if(u=id(u,d),d.theme&&d.theme in E7){const p=id({},Lje),v=id(p.themeVariables||{},d.themeVariables);u.theme&&u.theme in E7&&(u.themeVariables=E7[u.theme].getThemeVariables(v))}return nR=u,Nje(nR),nR},QRt=i=>(B2=id({},ED),B2=id(B2,i),i.theme&&E7[i.theme]&&(B2.themeVariables=E7[i.theme].getThemeVariables(i.themeVariables)),KX(B2,TD),B2),JRt=i=>{Lje=id({},i)},ZRt=i=>(B2=id(B2,i),KX(B2,TD),B2),Mje=()=>id({},B2),Dje=i=>(Nje(i),id(nR,i),Vh()),Vh=()=>id({},nR),Ije=i=>{i&&(["secure",...B2.secure??[]].forEach(s=>{Object.hasOwn(i,s)&&(Xe.debug(`Denied attempt to modify a secure key ${s}`,i[s]),delete i[s])}),Object.keys(i).forEach(s=>{s.startsWith("__")&&delete i[s]}),Object.keys(i).forEach(s=>{typeof i[s]=="string"&&(i[s].includes("<")||i[s].includes(">")||i[s].includes("url(data:"))&&delete i[s],typeof i[s]=="object"&&Ije(i[s])}))},ejt=i=>{SX(i),i.fontFamily&&(!i.themeVariables||!i.themeVariables.fontFamily)&&(i.themeVariables={fontFamily:i.fontFamily}),TD.push(i),KX(B2,TD)},WX=(i=B2)=>{TD=[],KX(i,TD)},tjt={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},Oje={},njt=i=>{Oje[i]||(Xe.warn(tjt[i]),Oje[i]=!0)},Nje=i=>{i&&(i.lazyLoadedDiagrams||i.loadExternalDiagramsAtStartup)&&njt("LAZY_LOAD_DEPRECATED")},Pje="c4",rjt={id:Pje,detector:i=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>wUt);return{id:Pje,diagram:i}}},Bje="flowchart",ijt={id:Bje,detector:(i,s)=>{var u,d;return((u=s==null?void 0:s.flowchart)==null?void 0:u.defaultRenderer)==="dagre-wrapper"||((d=s==null?void 0:s.flowchart)==null?void 0:d.defaultRenderer)==="elk"?!1:/^\s*graph/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>_en);return{id:Bje,diagram:i}}},Fje="flowchart-v2",sjt={id:Fje,detector:(i,s)=>{var u,d,p;return((u=s==null?void 0:s.flowchart)==null?void 0:u.defaultRenderer)==="dagre-d3"||((d=s==null?void 0:s.flowchart)==null?void 0:d.defaultRenderer)==="elk"?!1:/^\s*graph/.test(i)&&((p=s==null?void 0:s.flowchart)==null?void 0:p.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Aen);return{id:Fje,diagram:i}}},Rje="er",ajt={id:Rje,detector:i=>/^\s*erDiagram/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>etn);return{id:Rje,diagram:i}}},jje="gitGraph",ojt={id:jje,detector:i=>/^\s*gitGraph/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Stn);return{id:jje,diagram:i}}},$je="gantt",cjt={id:$je,detector:i=>/^\s*gantt/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>pnn);return{id:$je,diagram:i}}},zje="info",ujt={id:zje,detector:i=>/^\s*info/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>mnn);return{id:zje,diagram:i}}},qje="pie",ljt={id:qje,detector:i=>/^\s*pie/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Enn);return{id:qje,diagram:i}}},Hje="quadrantChart",hjt={id:Hje,detector:i=>/^\s*quadrantChart/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>jnn);return{id:Hje,diagram:i}}},Vje="xychart",fjt={id:Vje,detector:i=>/^\s*xychart-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>urn);return{id:Vje,diagram:i}}},Uje="requirement",djt={id:Uje,detector:i=>/^\s*requirement(Diagram)?/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>wrn);return{id:Uje,diagram:i}}},Gje="sequence",gjt={id:Gje,detector:i=>/^\s*sequenceDiagram/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>kin);return{id:Gje,diagram:i}}},Kje="class",pjt={id:Kje,detector:(i,s)=>{var u;return((u=s==null?void 0:s.class)==null?void 0:u.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Gin);return{id:Kje,diagram:i}}},Wje="classDiagram",bjt={id:Wje,detector:(i,s)=>{var u;return/^\s*classDiagram/.test(i)&&((u=s==null?void 0:s.class)==null?void 0:u.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Jin);return{id:Wje,diagram:i}}},Yje="state",mjt={id:Yje,detector:(i,s)=>{var u;return((u=s==null?void 0:s.state)==null?void 0:u.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>jsn);return{id:Yje,diagram:i}}},Xje="stateDiagram",vjt={id:Xje,detector:(i,s)=>{var u;return!!(/^\s*stateDiagram-v2/.test(i)||/^\s*stateDiagram/.test(i)&&((u=s==null?void 0:s.state)==null?void 0:u.defaultRenderer)==="dagre-wrapper")},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>ian);return{id:Xje,diagram:i}}},Qje="journey",wjt={id:Qje,detector:i=>/^\s*journey/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Ean);return{id:Qje,diagram:i}}},yjt=function(i,s){for(let u of s)i.attr(u[0],u[1])},xjt=function(i,s,u){let d=new Map;return u?(d.set("width","100%"),d.set("style",`max-width: ${s}px;`)):(d.set("height",i),d.set("width",s)),d},Ng=function(i,s,u,d){const p=xjt(s,u,d);yjt(i,p)},y9=function(i,s,u,d){const p=s.node().getBBox(),v=p.width,b=p.height;Xe.info(`SVG bounds: ${v}x${b}`,p);let y=0,T=0;Xe.info(`Graph bounds: ${y}x${T}`,i),y=v+u*2,T=b+u*2,Xe.info(`Calculated bounds: ${y}x${T}`),Ng(s,T,y,d);const _=`${p.x-u} ${p.y-u} ${p.width+2*u} ${p.height+2*u}`;s.attr("viewBox",_)},YX={},kjt=(i,s,u)=>{let d="";return i in YX&&YX[i]?d=YX[i](u):Xe.warn(`No theme found for ${i}`),` & { +`,"ig");i=i.trim().replace(u,"").replace(/'/gm,'"'),Xe.debug(`Detecting diagram directive${s!==null?" type:"+s:""} based on the text:${i}`);let d;const p=[];for(;(d=UF.exec(i))!==null;)if(d.index===UF.lastIndex&&UF.lastIndex++,d&&!s||s&&d[1]&&d[1].match(s)||s&&d[2]&&d[2].match(s)){const v=d[1]?d[1]:d[2],b=d[3]?d[3].trim():d[4]?JSON.parse(d[4].trim()):null;p.push({type:v,args:b})}return p.length===0?{type:i,args:null}:p.length===1?p[0]:p}catch(u){return Xe.error(`ERROR: ${u.message} - Unable to parse directive type: '${s}' based on the text: '${i}'`),{type:void 0,args:null}}},wRt=function(i){return i.replace(UF,"")},yRt=function(i,s){for(const[u,d]of s.entries())if(d.match(i))return u;return-1};function Ov(i,s){if(!i)return s;const u=`curve${i.charAt(0).toUpperCase()+i.slice(1)}`;return bRt[u]??s}function xRt(i,s){const u=i.trim();if(u)return s.securityLevel!=="loose"?p9.sanitizeUrl(u):u}const kRt=(i,...s)=>{const u=i.split("."),d=u.length-1,p=u[d];let v=window;for(let b=0;b{u+=dje(p,s),s=p});const d=u/2;return k2e(i,d)}function TRt(i){return i.length===1?i[0]:ERt(i)}const gje=(i,s=2)=>{const u=Math.pow(10,s);return Math.round(i*u)/u},k2e=(i,s)=>{let u,d=s;for(const p of i){if(u){const v=dje(p,u);if(v=1)return{x:p.x,y:p.y};if(b>0&&b<1)return{x:gje((1-b)*u.x+b*p.x,5),y:gje((1-b)*u.y+b*p.y,5)}}}u=p}throw new Error("Could not find a suitable point for the given distance")},CRt=(i,s,u)=>{Xe.info(`our points ${JSON.stringify(s)}`),s[0]!==u&&(s=s.reverse());const p=k2e(s,25),v=i?10:5,b=Math.atan2(s[0].y-p.y,s[0].x-p.x),y={x:0,y:0};return y.x=Math.sin(b)*v+(s[0].x+p.x)/2,y.y=-Math.cos(b)*v+(s[0].y+p.y)/2,y};function SRt(i,s,u){const d=structuredClone(u);Xe.info("our points",d),s!=="start_left"&&s!=="start_right"&&d.reverse();const p=25+i,v=k2e(d,p),b=10+i*.5,y=Math.atan2(d[0].y-v.y,d[0].x-v.x),T={x:0,y:0};return s==="start_left"?(T.x=Math.sin(y+Math.PI)*b+(d[0].x+v.x)/2,T.y=-Math.cos(y+Math.PI)*b+(d[0].y+v.y)/2):s==="end_right"?(T.x=Math.sin(y-Math.PI)*b+(d[0].x+v.x)/2-5,T.y=-Math.cos(y-Math.PI)*b+(d[0].y+v.y)/2-5):s==="end_left"?(T.x=Math.sin(y)*b+(d[0].x+v.x)/2-5,T.y=-Math.cos(y)*b+(d[0].y+v.y)/2-5):(T.x=Math.sin(y)*b+(d[0].x+v.x)/2,T.y=-Math.cos(y)*b+(d[0].y+v.y)/2),T}function om(i){let s="",u="";for(const d of i)d!==void 0&&(d.startsWith("color:")||d.startsWith("text-align:")?u=u+d+";":s=s+d+";");return{style:s,labelStyle:u}}let pje=0;const bje=()=>(pje++,"id-"+Math.random().toString(36).substr(2,12)+"-"+pje);function _Rt(i){let s="";const u="0123456789abcdef",d=u.length;for(let p=0;p_Rt(i.length),ARt=function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},LRt=function(i,s){const u=s.text.replace(ci.lineBreakRegex," "),[,d]=NC(s.fontSize),p=i.append("text");p.attr("x",s.x),p.attr("y",s.y),p.style("text-anchor",s.anchor),p.style("font-family",s.fontFamily),p.style("font-size",d),p.style("font-weight",s.fontWeight),p.attr("fill",s.fill),s.class!==void 0&&p.attr("class",s.class);const v=p.append("tspan");return v.attr("x",s.x+s.textMargin*2),v.attr("fill",s.fill),v.text(u),p},vje=bD((i,s,u)=>{if(!i||(u=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},u),ci.lineBreakRegex.test(i)))return i;const d=i.split(" "),p=[];let v="";return d.forEach((b,y)=>{const T=H4(`${b} `,u),_=H4(v,u);if(T>s){const{hyphenatedStrings:R,remainingWord:F}=MRt(b,s,"-",u);p.push(v,...R),v=F}else _+T>=s?(p.push(v),v=b):v=[v,b].filter(Boolean).join(" ");y+1===d.length&&p.push(v)}),p.filter(b=>b!=="").join(u.joinWith)},(i,s,u)=>`${i}${s}${u.fontSize}${u.fontWeight}${u.fontFamily}${u.joinWith}`),MRt=bD((i,s,u="-",d)=>{d=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},d);const p=[...i],v=[];let b="";return p.forEach((y,T)=>{const _=`${b}${y}`;if(H4(_,d)>=s){const P=T+1,R=p.length===P,F=`${_}${u}`;v.push(R?_:F),b=""}else b=_}),{hyphenatedStrings:v,remainingWord:b}},(i,s,u="-",d)=>`${i}${s}${u}${d.fontSize}${d.fontWeight}${d.fontFamily}`);function E2e(i,s){return T2e(i,s).height}function H4(i,s){return T2e(i,s).width}const T2e=bD((i,s)=>{const{fontSize:u=12,fontFamily:d="Arial",fontWeight:p=400}=s;if(!i)return{width:0,height:0};const[,v]=NC(u),b=["sans-serif",d],y=i.split(ci.lineBreakRegex),T=[],_=Ir("body");if(!_.remove)return{width:0,height:0,lineHeight:0};const A=_.append("svg");for(const R of b){let F=0;const j={width:0,height:0,lineHeight:0};for(const K of y){const ee=ARt();ee.text=K||hje;const ie=LRt(A,ee).style("font-size",v).style("font-weight",p).style("font-family",R),oe=(ie._groups||ie)[0][0].getBBox();if(oe.width===0&&oe.height===0)throw new Error("svg element not in render tree");j.width=Math.round(Math.max(j.width,oe.width)),F=Math.round(oe.height),j.height+=F,j.lineHeight=Math.round(Math.max(j.lineHeight,F))}T.push(j)}A.remove();const P=isNaN(T[1].height)||isNaN(T[1].width)||isNaN(T[1].lineHeight)||T[0].height>T[1].height&&T[0].width>T[1].width&&T[0].lineHeight>T[1].lineHeight?0:1;return T[P]},(i,s)=>`${i}${s.fontSize}${s.fontWeight}${s.fontFamily}`);class DRt{constructor(s=!1,u){this.count=0,this.count=u?u.length:0,this.next=s?()=>this.count++:()=>Date.now()}}let $X;const IRt=function(i){return $X=$X||document.createElement("div"),i=escape(i).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),$X.innerHTML=i,unescape($X.textContent)};function wje(i){return"str"in i}const ORt=(i,s,u,d)=>{var v;if(!d)return;const p=(v=i.node())==null?void 0:v.getBBox();p&&i.append("text").text(d).attr("x",p.x+p.width/2).attr("y",-u).attr("class",s)},NC=i=>{if(typeof i=="number")return[i,i+"px"];const s=parseInt(i??"",10);return Number.isNaN(s)?[void 0,void 0]:i===String(s)?[s,i+"px"]:[s,i]};function JF(i,s){return jX({},i,s)}const Ao={assignWithDepth:id,wrapLabel:vje,calculateTextHeight:E2e,calculateTextWidth:H4,calculateTextDimensions:T2e,cleanAndMerge:JF,detectInit:vRt,detectDirective:fje,isSubstringInArray:yRt,interpolateToCurve:Ov,calcLabelPosition:TRt,calcCardinalityPosition:CRt,calcTerminalLabelPosition:SRt,formatUrl:xRt,getStylesFromArray:om,generateId:bje,random:mje,runFunc:kRt,entityDecode:IRt,insertTitle:ORt,parseFontSize:NC,InitIDGenerator:DRt},NRt=function(i){let s=i;return s=s.replace(/style.*:\S*#.*;/g,function(u){return u.substring(0,u.length-1)}),s=s.replace(/classDef.*:\S*#.*;/g,function(u){return u.substring(0,u.length-1)}),s=s.replace(/#\w+;/g,function(u){const d=u.substring(1,u.length-1);return/^\+?\d+$/.test(d)?"fl°°"+d+"¶ß":"fl°"+d+"¶ß"}),s},ZF=function(i){return i.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")};var yje="comm",xje="rule",kje="decl",PRt="@import",BRt="@keyframes",FRt="@layer",Eje=Math.abs,C2e=String.fromCharCode;function Tje(i){return i.trim()}function zX(i,s,u){return i.replace(s,u)}function RRt(i,s,u){return i.indexOf(s,u)}function eR(i,s){return i.charCodeAt(s)|0}function tR(i,s,u){return i.slice(s,u)}function _7(i){return i.length}function jRt(i){return i.length}function qX(i,s){return s.push(i),i}var HX=1,xD=1,Cje=0,Nv=0,I0=0,kD="";function S2e(i,s,u,d,p,v,b,y){return{value:i,root:s,parent:u,type:d,props:p,children:v,line:HX,column:xD,length:b,return:"",siblings:y}}function $Rt(){return I0}function zRt(){return I0=Nv>0?eR(kD,--Nv):0,xD--,I0===10&&(xD=1,HX--),I0}function B3(){return I0=Nv2||_2e(I0)>3?"":" "}function URt(i,s){for(;--s&&B3()&&!(I0<48||I0>102||I0>57&&I0<65||I0>70&&I0<97););return UX(i,VX()+(s<6&&PC()==32&&B3()==32))}function L2e(i){for(;B3();)switch(I0){case i:return Nv;case 34:case 39:i!==34&&i!==39&&L2e(I0);break;case 40:i===41&&L2e(i);break;case 92:B3();break}return Nv}function GRt(i,s){for(;B3()&&i+I0!==47+10;)if(i+I0===42+42&&PC()===47)break;return"/*"+UX(s,Nv-1)+"*"+C2e(i===47?i:B3())}function KRt(i){for(;!_2e(PC());)B3();return UX(i,Nv)}function WRt(i){return HRt(GX("",null,null,null,[""],i=qRt(i),0,[0],i))}function GX(i,s,u,d,p,v,b,y,T){for(var _=0,A=0,P=b,R=0,F=0,j=0,K=1,ee=1,ie=1,oe=0,pe="",be=p,ae=v,ne=d,se=pe;ee;)switch(j=oe,oe=B3()){case 40:if(j!=108&&eR(se,P-1)==58){RRt(se+=zX(A2e(oe),"&","&\f"),"&\f",Eje(_?y[_-1]:0))!=-1&&(ie=-1);break}case 34:case 39:case 91:se+=A2e(oe);break;case 9:case 10:case 13:case 32:se+=VRt(j);break;case 92:se+=URt(VX()-1,7);continue;case 47:switch(PC()){case 42:case 47:qX(YRt(GRt(B3(),VX()),s,u,T),T);break;default:se+="/"}break;case 123*K:y[_++]=_7(se)*ie;case 125*K:case 59:case 0:switch(oe){case 0:case 125:ee=0;case 59+A:ie==-1&&(se=zX(se,/\f/g,"")),F>0&&_7(se)-P&&qX(F>32?_je(se+";",d,u,P-1,T):_je(zX(se," ","")+";",d,u,P-2,T),T);break;case 59:se+=";";default:if(qX(ne=Sje(se,s,u,_,A,p,y,pe,be=[],ae=[],P,v),v),oe===123)if(A===0)GX(se,s,ne,ne,be,v,P,y,ae);else switch(R===99&&eR(se,3)===110?100:R){case 100:case 108:case 109:case 115:GX(i,ne,ne,d&&qX(Sje(i,ne,ne,0,0,p,y,pe,p,be=[],P,ae),ae),p,ae,P,y,d?be:ae);break;default:GX(se,ne,ne,ne,[""],ae,0,y,ae)}}_=A=F=0,K=ie=1,pe=se="",P=b;break;case 58:P=1+_7(se),F=j;default:if(K<1){if(oe==123)--K;else if(oe==125&&K++==0&&zRt()==125)continue}switch(se+=C2e(oe),oe*K){case 38:ie=A>0?1:(se+="\f",-1);break;case 44:y[_++]=(_7(se)-1)*ie,ie=1;break;case 64:PC()===45&&(se+=A2e(B3())),R=PC(),A=P=_7(pe=se+=KRt(VX())),oe++;break;case 45:j===45&&_7(se)==2&&(K=0)}}return v}function Sje(i,s,u,d,p,v,b,y,T,_,A,P){for(var R=p-1,F=p===0?v:[""],j=jRt(F),K=0,ee=0,ie=0;K0?F[oe]+" "+pe:zX(pe,/&\f/g,F[oe])))&&(T[ie++]=be);return S2e(i,s,u,p===0?xje:y,T,_,A,P)}function YRt(i,s,u,d){return S2e(i,s,u,yje,C2e($Rt()),tR(i,2,-2),0,d)}function _je(i,s,u,d,p){return S2e(i,s,u,kje,tR(i,0,d),tR(i,d+1,-1),d,p)}function M2e(i,s){for(var u="",d=0;d{let u=id({},i),d={};for(const p of s)Ije(p),d=id(d,p);if(u=id(u,d),d.theme&&d.theme in E7){const p=id({},Lje),v=id(p.themeVariables||{},d.themeVariables);u.theme&&u.theme in E7&&(u.themeVariables=E7[u.theme].getThemeVariables(v))}return nR=u,Nje(nR),nR},QRt=i=>(B2=id({},ED),B2=id(B2,i),i.theme&&E7[i.theme]&&(B2.themeVariables=E7[i.theme].getThemeVariables(i.themeVariables)),KX(B2,TD),B2),JRt=i=>{Lje=id({},i)},ZRt=i=>(B2=id(B2,i),KX(B2,TD),B2),Mje=()=>id({},B2),Dje=i=>(Nje(i),id(nR,i),Vh()),Vh=()=>id({},nR),Ije=i=>{i&&(["secure",...B2.secure??[]].forEach(s=>{Object.hasOwn(i,s)&&(Xe.debug(`Denied attempt to modify a secure key ${s}`,i[s]),delete i[s])}),Object.keys(i).forEach(s=>{s.startsWith("__")&&delete i[s]}),Object.keys(i).forEach(s=>{typeof i[s]=="string"&&(i[s].includes("<")||i[s].includes(">")||i[s].includes("url(data:"))&&delete i[s],typeof i[s]=="object"&&Ije(i[s])}))},ejt=i=>{SX(i),i.fontFamily&&(!i.themeVariables||!i.themeVariables.fontFamily)&&(i.themeVariables={fontFamily:i.fontFamily}),TD.push(i),KX(B2,TD)},WX=(i=B2)=>{TD=[],KX(i,TD)},tjt={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},Oje={},njt=i=>{Oje[i]||(Xe.warn(tjt[i]),Oje[i]=!0)},Nje=i=>{i&&(i.lazyLoadedDiagrams||i.loadExternalDiagramsAtStartup)&&njt("LAZY_LOAD_DEPRECATED")},Pje="c4",rjt={id:Pje,detector:i=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>wUt);return{id:Pje,diagram:i}}},Bje="flowchart",ijt={id:Bje,detector:(i,s)=>{var u,d;return((u=s==null?void 0:s.flowchart)==null?void 0:u.defaultRenderer)==="dagre-wrapper"||((d=s==null?void 0:s.flowchart)==null?void 0:d.defaultRenderer)==="elk"?!1:/^\s*graph/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>_en);return{id:Bje,diagram:i}}},Fje="flowchart-v2",sjt={id:Fje,detector:(i,s)=>{var u,d,p;return((u=s==null?void 0:s.flowchart)==null?void 0:u.defaultRenderer)==="dagre-d3"||((d=s==null?void 0:s.flowchart)==null?void 0:d.defaultRenderer)==="elk"?!1:/^\s*graph/.test(i)&&((p=s==null?void 0:s.flowchart)==null?void 0:p.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Aen);return{id:Fje,diagram:i}}},Rje="er",ajt={id:Rje,detector:i=>/^\s*erDiagram/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>etn);return{id:Rje,diagram:i}}},jje="gitGraph",ojt={id:jje,detector:i=>/^\s*gitGraph/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Stn);return{id:jje,diagram:i}}},$je="gantt",cjt={id:$je,detector:i=>/^\s*gantt/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>pnn);return{id:$je,diagram:i}}},zje="info",ujt={id:zje,detector:i=>/^\s*info/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>mnn);return{id:zje,diagram:i}}},qje="pie",ljt={id:qje,detector:i=>/^\s*pie/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Enn);return{id:qje,diagram:i}}},Hje="quadrantChart",hjt={id:Hje,detector:i=>/^\s*quadrantChart/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>jnn);return{id:Hje,diagram:i}}},Vje="xychart",fjt={id:Vje,detector:i=>/^\s*xychart-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>urn);return{id:Vje,diagram:i}}},Uje="requirement",djt={id:Uje,detector:i=>/^\s*requirement(Diagram)?/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>wrn);return{id:Uje,diagram:i}}},Gje="sequence",gjt={id:Gje,detector:i=>/^\s*sequenceDiagram/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>kin);return{id:Gje,diagram:i}}},Kje="class",pjt={id:Kje,detector:(i,s)=>{var u;return((u=s==null?void 0:s.class)==null?void 0:u.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Gin);return{id:Kje,diagram:i}}},Wje="classDiagram",bjt={id:Wje,detector:(i,s)=>{var u;return/^\s*classDiagram/.test(i)&&((u=s==null?void 0:s.class)==null?void 0:u.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Jin);return{id:Wje,diagram:i}}},Yje="state",mjt={id:Yje,detector:(i,s)=>{var u;return((u=s==null?void 0:s.state)==null?void 0:u.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>jsn);return{id:Yje,diagram:i}}},Xje="stateDiagram",vjt={id:Xje,detector:(i,s)=>{var u;return!!(/^\s*stateDiagram-v2/.test(i)||/^\s*stateDiagram/.test(i)&&((u=s==null?void 0:s.state)==null?void 0:u.defaultRenderer)==="dagre-wrapper")},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>ian);return{id:Xje,diagram:i}}},Qje="journey",wjt={id:Qje,detector:i=>/^\s*journey/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Ean);return{id:Qje,diagram:i}}},yjt=function(i,s){for(let u of s)i.attr(u[0],u[1])},xjt=function(i,s,u){let d=new Map;return u?(d.set("width","100%"),d.set("style",`max-width: ${s}px;`)):(d.set("height",i),d.set("width",s)),d},Ng=function(i,s,u,d){const p=xjt(s,u,d);yjt(i,p)},y9=function(i,s,u,d){const p=s.node().getBBox(),v=p.width,b=p.height;Xe.info(`SVG bounds: ${v}x${b}`,p);let y=0,T=0;Xe.info(`Graph bounds: ${y}x${T}`,i),y=v+u*2,T=b+u*2,Xe.info(`Calculated bounds: ${y}x${T}`),Ng(s,T,y,d);const _=`${p.x-u} ${p.y-u} ${p.width+2*u} ${p.height+2*u}`;s.attr("viewBox",_)},YX={},kjt=(i,s,u)=>{let d="";return i in YX&&YX[i]?d=YX[i](u):Xe.warn(`No theme found for ${i}`),` & { font-family: ${u.fontFamily}; font-size: ${u.fontSize}; fill: ${u.textColor} @@ -61,7 +61,7 @@ ${s} `},Ejt=(i,s)=>{s!==void 0&&(YX[i]=s)},Tjt=kjt;let D2e="",I2e="",O2e="";const N2e=i=>Yf(i,Vh()),Pg=()=>{D2e="",O2e="",I2e=""},Bg=i=>{D2e=N2e(i).replace(/^\s+/g,"")},Cp=()=>D2e,Sp=i=>{O2e=N2e(i).replace(/\n\s+/g,` `)},_p=()=>O2e,cm=i=>{I2e=N2e(i)},Ap=()=>I2e,Jje=Object.freeze(Object.defineProperty({__proto__:null,clear:Pg,getAccDescription:_p,getAccTitle:Cp,getDiagramTitle:Ap,setAccDescription:Sp,setAccTitle:Bg,setDiagramTitle:cm},Symbol.toStringTag,{value:"Module"})),Cjt=Xe,Sjt=fpe,qt=Vh,_jt=Dje,Zje=ED,Ajt=i=>Yf(i,qt()),e$e=y9,Ljt=()=>Jje,XX={},QX=(i,s,u)=>{var d;if(XX[i])throw new Error(`Diagram ${i} already registered.`);XX[i]=s,u&&PRe(i,u),Ejt(i,s.styles),(d=s.injectUtils)==null||d.call(s,Cjt,Sjt,qt,Ajt,e$e,Ljt(),()=>{})},P2e=i=>{if(i in XX)return XX[i];throw new Mjt(i)};class Mjt extends Error{constructor(s){super(`Diagram ${s} not found.`)}}const rR=i=>{var p;const{securityLevel:s}=qt();let u=Ir("body");if(s==="sandbox"){const b=((p=Ir(`#i${i}`).node())==null?void 0:p.contentDocument)??document;u=Ir(b.body)}return u.select(`#${i}`)},t$e={draw:(i,s,u)=>{Xe.debug(`rendering svg for syntax error -`);const d=rR(s),p=d.append("g");d.attr("viewBox","0 0 2412 512"),Ng(d,100,512,!0),p.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),p.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),p.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),p.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),p.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),p.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),p.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),p.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${u}`)}},Djt=t$e,Ijt={db:{},renderer:t$e,parser:{parser:{yy:{}},parse:()=>{}}},n$e="flowchart-elk",Ojt={id:n$e,detector:(i,s)=>{var u;return!!(/^\s*flowchart-elk/.test(i)||/^\s*flowchart|graph/.test(i)&&((u=s==null?void 0:s.flowchart)==null?void 0:u.defaultRenderer)==="elk")},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>jan);return{id:n$e,diagram:i}}},r$e="timeline",Njt={id:r$e,detector:i=>/^\s*timeline/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>ion);return{id:r$e,diagram:i}}},i$e="mindmap",Pjt={id:i$e,detector:i=>/^\s*mindmap/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Ion);return{id:i$e,diagram:i}}},s$e="sankey",Bjt={id:s$e,detector:i=>/^\s*sankey-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>ccn);return{id:s$e,diagram:i}}},a$e="block",Fjt={id:a$e,detector:i=>/^\s*block-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Acn);return{id:a$e,diagram:i}}};let o$e=!1;const B2e=()=>{o$e||(o$e=!0,QX("error",Ijt,i=>i.toLowerCase().trim()==="error"),QX("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")}},init:()=>null},i=>i.toLowerCase().trimStart().startsWith("---")),NRe(rjt,bjt,pjt,ajt,cjt,ujt,ljt,djt,gjt,Ojt,sjt,ijt,Pjt,Njt,ojt,vjt,mjt,wjt,hjt,Bjt,fjt,Fjt))};class c$e{constructor(s,u={}){this.text=s,this.metadata=u,this.type="graph",this.text=NRt(s),this.text+=` +`);const d=rR(s),p=d.append("g");d.attr("viewBox","0 0 2412 512"),Ng(d,100,512,!0),p.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),p.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),p.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),p.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),p.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),p.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),p.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),p.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${u}`)}},Djt=t$e,Ijt={db:{},renderer:t$e,parser:{parser:{yy:{}},parse:()=>{}}},n$e="flowchart-elk",Ojt={id:n$e,detector:(i,s)=>{var u;return!!(/^\s*flowchart-elk/.test(i)||/^\s*flowchart|graph/.test(i)&&((u=s==null?void 0:s.flowchart)==null?void 0:u.defaultRenderer)==="elk")},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>jan);return{id:n$e,diagram:i}}},r$e="timeline",Njt={id:r$e,detector:i=>/^\s*timeline/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>ion);return{id:r$e,diagram:i}}},i$e="mindmap",Pjt={id:i$e,detector:i=>/^\s*mindmap/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Ion);return{id:i$e,diagram:i}}},s$e="sankey",Bjt={id:s$e,detector:i=>/^\s*sankey-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>ccn);return{id:s$e,diagram:i}}},a$e="block",Fjt={id:a$e,detector:i=>/^\s*block-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Mcn);return{id:a$e,diagram:i}}};let o$e=!1;const B2e=()=>{o$e||(o$e=!0,QX("error",Ijt,i=>i.toLowerCase().trim()==="error"),QX("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")}},init:()=>null},i=>i.toLowerCase().trimStart().startsWith("---")),NRe(rjt,bjt,pjt,ajt,cjt,ujt,ljt,djt,gjt,Ojt,sjt,ijt,Pjt,Njt,ojt,vjt,mjt,wjt,hjt,Bjt,fjt,Fjt))};class c$e{constructor(s,u={}){this.text=s,this.metadata=u,this.type="graph",this.text=NRt(s),this.text+=` `;const d=Vh();try{this.type=_X(s,d)}catch(v){this.type="error",this.detectError=v}const p=P2e(this.type);Xe.debug("Type "+this.type),this.db=p.db,this.renderer=p.renderer,this.parser=p.parser,this.parser.parser.yy=this.db,this.init=p.init,this.parse()}parse(){var u,d,p,v,b;if(this.detectError)throw this.detectError;(d=(u=this.db).clear)==null||d.call(u);const s=Vh();(p=this.init)==null||p.call(this,s),this.metadata.title&&((b=(v=this.db).setDiagramTitle)==null||b.call(v,this.metadata.title)),this.parser.parse(this.text)}async render(s,u){await this.renderer.draw(this.text,s,u,this)}getParser(){return this.parser}getType(){return this.type}}const Rjt=async(i,s={})=>{const u=_X(i,Vh());try{P2e(u)}catch{const p=$Pt(u);if(!p)throw new ORe(`Diagram ${u} not found.`);const{id:v,diagram:b}=await p();QX(v,b)}return new c$e(i,s)};let u$e=[];const jjt=()=>{u$e.forEach(i=>{i()}),u$e=[]};var $jt=WRe(Object.keys,Object);const zjt=$jt;var qjt=Object.prototype,Hjt=qjt.hasOwnProperty;function l$e(i){if(!OX(i))return zjt(i);var s=[];for(var u in Object(i))Hjt.call(i,u)&&u!="constructor"&&s.push(u);return s}var Vjt=MC(N3,"DataView");const F2e=Vjt;var Ujt=MC(N3,"Promise");const R2e=Ujt;var Gjt=MC(N3,"Set");const CD=Gjt;var Kjt=MC(N3,"WeakMap");const j2e=Kjt;var h$e="[object Map]",Wjt="[object Object]",f$e="[object Promise]",d$e="[object Set]",g$e="[object WeakMap]",p$e="[object DataView]",Yjt=LC(F2e),Xjt=LC(WF),Qjt=LC(R2e),Jjt=LC(CD),Zjt=LC(j2e),BC=AC;(F2e&&BC(new F2e(new ArrayBuffer(1)))!=p$e||WF&&BC(new WF)!=h$e||R2e&&BC(R2e.resolve())!=f$e||CD&&BC(new CD)!=d$e||j2e&&BC(new j2e)!=g$e)&&(BC=function(i){var s=AC(i),u=s==Wjt?i.constructor:void 0,d=u?LC(u):"";if(d)switch(d){case Yjt:return p$e;case Xjt:return h$e;case Qjt:return f$e;case Jjt:return d$e;case Zjt:return g$e}return s});const SD=BC;var e$t="[object Map]",t$t="[object Set]",n$t=Object.prototype,r$t=n$t.hasOwnProperty;function iR(i){if(i==null)return!0;if(w9(i)&&(D0(i)||typeof i=="string"||typeof i.splice=="function"||vD(i)||PX(i)||mD(i)))return!i.length;var s=SD(i);if(s==e$t||s==t$t)return!i.size;if(OX(i))return!l$e(i).length;for(var u in i)if(r$t.call(i,u))return!1;return!0}const i$t="graphics-document document";function s$t(i,s){i.attr("role",i$t),s!==""&&i.attr("aria-roledescription",s)}function a$t(i,s,u,d){if(i.insert!==void 0){if(u){const p=`chart-desc-${d}`;i.attr("aria-describedby",p),i.insert("desc",":first-child").attr("id",p).text(u)}if(s){const p=`chart-title-${d}`;i.attr("aria-labelledby",p),i.insert("title",":first-child").attr("id",p).text(s)}}}const o$t=i=>i.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart();/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function b$e(i){return typeof i>"u"||i===null}function c$t(i){return typeof i=="object"&&i!==null}function u$t(i){return Array.isArray(i)?i:b$e(i)?[]:[i]}function l$t(i,s){var u,d,p,v;if(s)for(v=Object.keys(s),u=0,d=v.length;uy&&(v=" ... ",s=d-y+v.length),u-d>y&&(b=" ...",u=d+y-b.length),{str:v+i.slice(s,u).replace(/\t/g,"→")+b,pos:d-s+v.length}}function z2e(i,s){return Lp.repeat(" ",s-i.length)+i}function w$t(i,s){if(s=Object.create(s||null),!i.buffer)return null;s.maxLength||(s.maxLength=79),typeof s.indent!="number"&&(s.indent=1),typeof s.linesBefore!="number"&&(s.linesBefore=3),typeof s.linesAfter!="number"&&(s.linesAfter=2);for(var u=/\r?\n|\r|\0/g,d=[0],p=[],v,b=-1;v=u.exec(i.buffer);)p.push(v.index),d.push(v.index+v[0].length),i.position<=v.index&&b<0&&(b=d.length-2);b<0&&(b=d.length-1);var y="",T,_,A=Math.min(i.line+s.linesAfter,p.length).toString().length,P=s.maxLength-(s.indent+A+3);for(T=1;T<=s.linesBefore&&!(b-T<0);T++)_=$2e(i.buffer,d[b-T],p[b-T],i.position-(d[b]-d[b-T]),P),y=Lp.repeat(" ",s.indent)+z2e((i.line-T+1).toString(),A)+" | "+_.str+` @@ -352,7 +352,7 @@ l0,-`+(u+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, Expecting `+Ba.join(", ")+", got '"+(this.terminals_[Xc]||Xc)+"'":ga="Parse error on line "+(oo+1)+": Unexpected "+(Xc==Pa?"end of input":"'"+(this.terminals_[Xc]||Xc)+"'"),this.parseError(ga,{text:_s.match,token:this.terminals_[Xc]||Xc,line:_s.yylineno,loc:j0,expected:Ba})}if(ja[0]instanceof Array&&ja.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Bc+", token: "+Xc);switch(ja[0]){case 1:Un.push(Xc),wt.push(_s.yytext),on.push(_s.yylloc),Un.push(ja[1]),Xc=null,jo=_s.yyleng,An=_s.yytext,oo=_s.yylineno,j0=_s.yylloc;break;case 2:if(Fc=this.productions_[ja[1]][1],Sa.$=wt[wt.length-Fc],Sa._$={first_line:on[on.length-(Fc||1)].first_line,last_line:on[on.length-1].last_line,first_column:on[on.length-(Fc||1)].first_column,last_column:on[on.length-1].last_column},pm&&(Sa._$.range=[on[on.length-(Fc||1)].range[0],on[on.length-1].range[1]]),Ou=this.performAction.apply(Sa,[An,jo,oo,tl.yy,ja[1],wt,on].concat(wo)),typeof Ou<"u")return Ou;Fc&&(Un=Un.slice(0,-1*Fc*2),wt=wt.slice(0,-1*Fc),on=on.slice(0,-1*Fc)),Un.push(this.productions_[ja[1]][0]),wt.push(Sa.$),on.push(Sa._$),xa=fn[Un[Un.length-2]][Un[Un.length-1]],Un.push(xa);break;case 3:return!0}}return!0}},zs=function(){var Tr={EOF:1,parseError:function(qn,Un){if(this.yy.parser)this.yy.parser.parseError(qn,Un);else throw new Error(qn)},setInput:function(Fn,qn){return this.yy=qn||this.yy||{},this._input=Fn,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Fn=this._input[0];this.yytext+=Fn,this.yyleng++,this.offset++,this.match+=Fn,this.matched+=Fn;var qn=Fn.match(/(?:\r\n?|\n).*/g);return qn?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Fn},unput:function(Fn){var qn=Fn.length,Un=Fn.split(/(?:\r\n?|\n)/g);this._input=Fn+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-qn),this.offset-=qn;var At=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Un.length-1&&(this.yylineno-=Un.length-1);var wt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Un?(Un.length===At.length?this.yylloc.first_column:0)+At[At.length-Un.length].length-Un[0].length:this.yylloc.first_column-qn},this.options.ranges&&(this.yylloc.range=[wt[0],wt[0]+this.yyleng-qn]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Fn){this.unput(this.match.slice(Fn))},pastInput:function(){var Fn=this.matched.substr(0,this.matched.length-this.match.length);return(Fn.length>20?"...":"")+Fn.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Fn=this.match;return Fn.length<20&&(Fn+=this._input.substr(0,20-Fn.length)),(Fn.substr(0,20)+(Fn.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Fn=this.pastInput(),qn=new Array(Fn.length+1).join("-");return Fn+this.upcomingInput()+` `+qn+"^"},test_match:function(Fn,qn){var Un,At,wt;if(this.options.backtrack_lexer&&(wt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(wt.yylloc.range=this.yylloc.range.slice(0))),At=Fn[0].match(/(?:\r\n?|\n).*/g),At&&(this.yylineno+=At.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:At?At[At.length-1].length-At[At.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Fn[0].length},this.yytext+=Fn[0],this.match+=Fn[0],this.matches=Fn,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Fn[0].length),this.matched+=Fn[0],Un=this.performAction.call(this,this.yy,this,qn,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Un)return Un;if(this._backtrack){for(var on in wt)this[on]=wt[on];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Fn,qn,Un,At;this._more||(this.yytext="",this.match="");for(var wt=this._currentRules(),on=0;onqn[0].length)){if(qn=Un,At=on,this.options.backtrack_lexer){if(Fn=this.test_match(Un,wt[on]),Fn!==!1)return Fn;if(this._backtrack){qn=!1;continue}else return!1}else if(!this.options.flex)break}return qn?(Fn=this.test_match(qn,wt[At]),Fn!==!1?Fn:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var qn=this.next();return qn||this.lex()},begin:function(qn){this.conditionStack.push(qn)},popState:function(){var qn=this.conditionStack.length-1;return qn>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(qn){return qn=this.conditionStack.length-1-Math.abs(qn||0),qn>=0?this.conditionStack[qn]:"INITIAL"},pushState:function(qn){this.begin(qn)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(qn,Un,At,wt){switch(At){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:return this.begin("node"),39;case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:return this.begin("rel_u"),66;case 53:return this.begin("rel_u"),66;case 54:return this.begin("rel_d"),67;case 55:return this.begin("rel_d"),67;case 56:return this.begin("rel_l"),68;case 57:return this.begin("rel_l"),68;case 58:return this.begin("rel_r"),69;case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return Tr}();Ma.lexer=zs;function ao(){this.yy={}}return ao.prototype=Ma,Ma.Parser=ao,new ao}();CQ.parser=CQ;const DVt=CQ;let R3=[],M9=[""],Op="global",j3="",Q4=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],pR=[],Rbe="",jbe=!1,SQ=4,_Q=2;var xqe;const IVt=function(){return xqe},OVt=function(i){xqe=Yf(i,qt())},NVt=function(i,s,u,d,p,v,b,y,T){if(i==null||s===void 0||s===null||u===void 0||u===null||d===void 0||d===null)return;let _={};const A=pR.find(P=>P.from===s&&P.to===u);if(A?_=A:pR.push(_),_.type=i,_.from=s,_.to=u,_.label={text:d},p==null)_.techn={text:""};else if(typeof p=="object"){let[P,R]=Object.entries(p)[0];_[P]={text:R}}else _.techn={text:p};if(v==null)_.descr={text:""};else if(typeof v=="object"){let[P,R]=Object.entries(v)[0];_[P]={text:R}}else _.descr={text:v};if(typeof b=="object"){let[P,R]=Object.entries(b)[0];_[P]=R}else _.sprite=b;if(typeof y=="object"){let[P,R]=Object.entries(y)[0];_[P]=R}else _.tags=y;if(typeof T=="object"){let[P,R]=Object.entries(T)[0];_[P]=R}else _.link=T;_.wrap=D9()},PVt=function(i,s,u,d,p,v,b){if(s===null||u===null)return;let y={};const T=R3.find(_=>_.alias===s);if(T&&s===T.alias?y=T:(y.alias=s,R3.push(y)),u==null?y.label={text:""}:y.label={text:u},d==null)y.descr={text:""};else if(typeof d=="object"){let[_,A]=Object.entries(d)[0];y[_]={text:A}}else y.descr={text:d};if(typeof p=="object"){let[_,A]=Object.entries(p)[0];y[_]=A}else y.sprite=p;if(typeof v=="object"){let[_,A]=Object.entries(v)[0];y[_]=A}else y.tags=v;if(typeof b=="object"){let[_,A]=Object.entries(b)[0];y[_]=A}else y.link=b;y.typeC4Shape={text:i},y.parentBoundary=Op,y.wrap=D9()},BVt=function(i,s,u,d,p,v,b,y){if(s===null||u===null)return;let T={};const _=R3.find(A=>A.alias===s);if(_&&s===_.alias?T=_:(T.alias=s,R3.push(T)),u==null?T.label={text:""}:T.label={text:u},d==null)T.techn={text:""};else if(typeof d=="object"){let[A,P]=Object.entries(d)[0];T[A]={text:P}}else T.techn={text:d};if(p==null)T.descr={text:""};else if(typeof p=="object"){let[A,P]=Object.entries(p)[0];T[A]={text:P}}else T.descr={text:p};if(typeof v=="object"){let[A,P]=Object.entries(v)[0];T[A]=P}else T.sprite=v;if(typeof b=="object"){let[A,P]=Object.entries(b)[0];T[A]=P}else T.tags=b;if(typeof y=="object"){let[A,P]=Object.entries(y)[0];T[A]=P}else T.link=y;T.wrap=D9(),T.typeC4Shape={text:i},T.parentBoundary=Op},FVt=function(i,s,u,d,p,v,b,y){if(s===null||u===null)return;let T={};const _=R3.find(A=>A.alias===s);if(_&&s===_.alias?T=_:(T.alias=s,R3.push(T)),u==null?T.label={text:""}:T.label={text:u},d==null)T.techn={text:""};else if(typeof d=="object"){let[A,P]=Object.entries(d)[0];T[A]={text:P}}else T.techn={text:d};if(p==null)T.descr={text:""};else if(typeof p=="object"){let[A,P]=Object.entries(p)[0];T[A]={text:P}}else T.descr={text:p};if(typeof v=="object"){let[A,P]=Object.entries(v)[0];T[A]=P}else T.sprite=v;if(typeof b=="object"){let[A,P]=Object.entries(b)[0];T[A]=P}else T.tags=b;if(typeof y=="object"){let[A,P]=Object.entries(y)[0];T[A]=P}else T.link=y;T.wrap=D9(),T.typeC4Shape={text:i},T.parentBoundary=Op},RVt=function(i,s,u,d,p){if(i===null||s===null)return;let v={};const b=Q4.find(y=>y.alias===i);if(b&&i===b.alias?v=b:(v.alias=i,Q4.push(v)),s==null?v.label={text:""}:v.label={text:s},u==null)v.type={text:"system"};else if(typeof u=="object"){let[y,T]=Object.entries(u)[0];v[y]={text:T}}else v.type={text:u};if(typeof d=="object"){let[y,T]=Object.entries(d)[0];v[y]=T}else v.tags=d;if(typeof p=="object"){let[y,T]=Object.entries(p)[0];v[y]=T}else v.link=p;v.parentBoundary=Op,v.wrap=D9(),j3=Op,Op=i,M9.push(j3)},jVt=function(i,s,u,d,p){if(i===null||s===null)return;let v={};const b=Q4.find(y=>y.alias===i);if(b&&i===b.alias?v=b:(v.alias=i,Q4.push(v)),s==null?v.label={text:""}:v.label={text:s},u==null)v.type={text:"container"};else if(typeof u=="object"){let[y,T]=Object.entries(u)[0];v[y]={text:T}}else v.type={text:u};if(typeof d=="object"){let[y,T]=Object.entries(d)[0];v[y]=T}else v.tags=d;if(typeof p=="object"){let[y,T]=Object.entries(p)[0];v[y]=T}else v.link=p;v.parentBoundary=Op,v.wrap=D9(),j3=Op,Op=i,M9.push(j3)},$Vt=function(i,s,u,d,p,v,b,y){if(s===null||u===null)return;let T={};const _=Q4.find(A=>A.alias===s);if(_&&s===_.alias?T=_:(T.alias=s,Q4.push(T)),u==null?T.label={text:""}:T.label={text:u},d==null)T.type={text:"node"};else if(typeof d=="object"){let[A,P]=Object.entries(d)[0];T[A]={text:P}}else T.type={text:d};if(p==null)T.descr={text:""};else if(typeof p=="object"){let[A,P]=Object.entries(p)[0];T[A]={text:P}}else T.descr={text:p};if(typeof b=="object"){let[A,P]=Object.entries(b)[0];T[A]=P}else T.tags=b;if(typeof y=="object"){let[A,P]=Object.entries(y)[0];T[A]=P}else T.link=y;T.nodeType=i,T.parentBoundary=Op,T.wrap=D9(),j3=Op,Op=s,M9.push(j3)},zVt=function(){Op=j3,M9.pop(),j3=M9.pop(),M9.push(j3)},qVt=function(i,s,u,d,p,v,b,y,T,_,A){let P=R3.find(R=>R.alias===s);if(!(P===void 0&&(P=Q4.find(R=>R.alias===s),P===void 0))){if(u!=null)if(typeof u=="object"){let[R,F]=Object.entries(u)[0];P[R]=F}else P.bgColor=u;if(d!=null)if(typeof d=="object"){let[R,F]=Object.entries(d)[0];P[R]=F}else P.fontColor=d;if(p!=null)if(typeof p=="object"){let[R,F]=Object.entries(p)[0];P[R]=F}else P.borderColor=p;if(v!=null)if(typeof v=="object"){let[R,F]=Object.entries(v)[0];P[R]=F}else P.shadowing=v;if(b!=null)if(typeof b=="object"){let[R,F]=Object.entries(b)[0];P[R]=F}else P.shape=b;if(y!=null)if(typeof y=="object"){let[R,F]=Object.entries(y)[0];P[R]=F}else P.sprite=y;if(T!=null)if(typeof T=="object"){let[R,F]=Object.entries(T)[0];P[R]=F}else P.techn=T;if(_!=null)if(typeof _=="object"){let[R,F]=Object.entries(_)[0];P[R]=F}else P.legendText=_;if(A!=null)if(typeof A=="object"){let[R,F]=Object.entries(A)[0];P[R]=F}else P.legendSprite=A}},HVt=function(i,s,u,d,p,v,b){const y=pR.find(T=>T.from===s&&T.to===u);if(y!==void 0){if(d!=null)if(typeof d=="object"){let[T,_]=Object.entries(d)[0];y[T]=_}else y.textColor=d;if(p!=null)if(typeof p=="object"){let[T,_]=Object.entries(p)[0];y[T]=_}else y.lineColor=p;if(v!=null)if(typeof v=="object"){let[T,_]=Object.entries(v)[0];y[T]=parseInt(_)}else y.offsetX=parseInt(v);if(b!=null)if(typeof b=="object"){let[T,_]=Object.entries(b)[0];y[T]=parseInt(_)}else y.offsetY=parseInt(b)}},VVt=function(i,s,u){let d=SQ,p=_Q;if(typeof s=="object"){const v=Object.values(s)[0];d=parseInt(v)}else d=parseInt(s);if(typeof u=="object"){const v=Object.values(u)[0];p=parseInt(v)}else p=parseInt(u);d>=1&&(SQ=d),p>=1&&(_Q=p)},UVt=function(){return SQ},GVt=function(){return _Q},KVt=function(){return Op},WVt=function(){return j3},kqe=function(i){return i==null?R3:R3.filter(s=>s.parentBoundary===i)},YVt=function(i){return R3.find(s=>s.alias===i)},XVt=function(i){return Object.keys(kqe(i))},Eqe=function(i){return i==null?Q4:Q4.filter(s=>s.parentBoundary===i)},QVt=Eqe,JVt=function(){return pR},ZVt=function(){return Rbe},eUt=function(i){jbe=i},D9=function(){return jbe},$be={addPersonOrSystem:PVt,addPersonOrSystemBoundary:RVt,addContainer:BVt,addContainerBoundary:jVt,addComponent:FVt,addDeploymentNode:$Vt,popBoundaryParseStack:zVt,addRel:NVt,updateElStyle:qVt,updateRelStyle:HVt,updateLayoutConfig:VVt,autoWrap:D9,setWrap:eUt,getC4ShapeArray:kqe,getC4Shape:YVt,getC4ShapeKeys:XVt,getBoundaries:Eqe,getBoundarys:QVt,getCurrentBoundaryParse:KVt,getParentBoundaryParse:WVt,getRels:JVt,getTitle:ZVt,getC4Type:IVt,getC4ShapeInRow:UVt,getC4BoundaryInRow:GVt,setAccTitle:Bg,getAccTitle:Cp,getAccDescription:_p,setAccDescription:Sp,getConfig:()=>qt().c4,clear:function(){R3=[],Q4=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],j3="",Op="global",M9=[""],pR=[],M9=[""],Rbe="",jbe=!1,SQ=4,_Q=2},LINETYPE:{SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:function(i){Rbe=Yf(i,qt())},setC4Type:OVt},AQ=(i,s)=>{const u=i.append("rect");if(u.attr("x",s.x),u.attr("y",s.y),u.attr("fill",s.fill),u.attr("stroke",s.stroke),u.attr("width",s.width),u.attr("height",s.height),s.name&&u.attr("name",s.name),s.rx!==void 0&&u.attr("rx",s.rx),s.ry!==void 0&&u.attr("ry",s.ry),s.attrs!==void 0)for(const d in s.attrs)u.attr(d,s.attrs[d]);return s.class!==void 0&&u.attr("class",s.class),u},Tqe=(i,s)=>{const u={x:s.startx,y:s.starty,width:s.stopx-s.startx,height:s.stopy-s.starty,fill:s.fill,stroke:s.stroke,class:"rect"};AQ(i,u).lower()},tUt=(i,s)=>{const u=s.text.replace(fD," "),d=i.append("text");d.attr("x",s.x),d.attr("y",s.y),d.attr("class","legend"),d.style("text-anchor",s.anchor),s.class!==void 0&&d.attr("class",s.class);const p=d.append("tspan");return p.attr("x",s.x+s.textMargin*2),p.text(u),d},nUt=(i,s,u,d)=>{const p=i.append("image");p.attr("x",s),p.attr("y",u);const v=p9.sanitizeUrl(d);p.attr("xlink:href",v)},rUt=(i,s,u,d)=>{const p=i.append("use");p.attr("x",s),p.attr("y",u);const v=p9.sanitizeUrl(d);p.attr("xlink:href",`#${v}`)},qC=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),zbe=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),qbe=function(i,s){return AQ(i,s)},Cqe=function(i,s,u,d,p,v){const b=i.append("image");b.attr("width",s),b.attr("height",u),b.attr("x",d),b.attr("y",p);let y=v.startsWith("data:image/png;base64")?v:p9.sanitizeUrl(v);b.attr("xlink:href",y)},iUt=(i,s,u)=>{const d=i.append("g");let p=0;for(let v of s){let b=v.textColor?v.textColor:"#444444",y=v.lineColor?v.lineColor:"#444444",T=v.offsetX?parseInt(v.offsetX):0,_=v.offsetY?parseInt(v.offsetY):0,A="";if(p===0){let R=d.append("line");R.attr("x1",v.startPoint.x),R.attr("y1",v.startPoint.y),R.attr("x2",v.endPoint.x),R.attr("y2",v.endPoint.y),R.attr("stroke-width","1"),R.attr("stroke",y),R.style("fill","none"),v.type!=="rel_b"&&R.attr("marker-end","url("+A+"#arrowhead)"),(v.type==="birel"||v.type==="rel_b")&&R.attr("marker-start","url("+A+"#arrowend)"),p=-1}else{let R=d.append("path");R.attr("fill","none").attr("stroke-width","1").attr("stroke",y).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",v.startPoint.x).replaceAll("starty",v.startPoint.y).replaceAll("controlx",v.startPoint.x+(v.endPoint.x-v.startPoint.x)/2-(v.endPoint.x-v.startPoint.x)/4).replaceAll("controly",v.startPoint.y+(v.endPoint.y-v.startPoint.y)/2).replaceAll("stopx",v.endPoint.x).replaceAll("stopy",v.endPoint.y)),v.type!=="rel_b"&&R.attr("marker-end","url("+A+"#arrowhead)"),(v.type==="birel"||v.type==="rel_b")&&R.attr("marker-start","url("+A+"#arrowend)")}let P=u.messageFont();F7(u)(v.label.text,d,Math.min(v.startPoint.x,v.endPoint.x)+Math.abs(v.endPoint.x-v.startPoint.x)/2+T,Math.min(v.startPoint.y,v.endPoint.y)+Math.abs(v.endPoint.y-v.startPoint.y)/2+_,v.label.width,v.label.height,{fill:b},P),v.techn&&v.techn.text!==""&&(P=u.messageFont(),F7(u)("["+v.techn.text+"]",d,Math.min(v.startPoint.x,v.endPoint.x)+Math.abs(v.endPoint.x-v.startPoint.x)/2+T,Math.min(v.startPoint.y,v.endPoint.y)+Math.abs(v.endPoint.y-v.startPoint.y)/2+u.messageFontSize+5+_,Math.max(v.label.width,v.techn.width),v.techn.height,{fill:b,"font-style":"italic"},P))}},sUt=function(i,s,u){const d=i.append("g");let p=s.bgColor?s.bgColor:"none",v=s.borderColor?s.borderColor:"#444444",b=s.fontColor?s.fontColor:"black",y={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};s.nodeType&&(y={"stroke-width":1});let T={x:s.x,y:s.y,fill:p,stroke:v,width:s.width,height:s.height,rx:2.5,ry:2.5,attrs:y};qbe(d,T);let _=u.boundaryFont();_.fontWeight="bold",_.fontSize=_.fontSize+2,_.fontColor=b,F7(u)(s.label.text,d,s.x,s.y+s.label.Y,s.width,s.height,{fill:"#444444"},_),s.type&&s.type.text!==""&&(_=u.boundaryFont(),_.fontColor=b,F7(u)(s.type.text,d,s.x,s.y+s.type.Y,s.width,s.height,{fill:"#444444"},_)),s.descr&&s.descr.text!==""&&(_=u.boundaryFont(),_.fontSize=_.fontSize-2,_.fontColor=b,F7(u)(s.descr.text,d,s.x,s.y+s.descr.Y,s.width,s.height,{fill:"#444444"},_))},aUt=function(i,s,u){var P;let d=s.bgColor?s.bgColor:u[s.typeC4Shape.text+"_bg_color"],p=s.borderColor?s.borderColor:u[s.typeC4Shape.text+"_border_color"],v=s.fontColor?s.fontColor:"#FFFFFF",b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(s.typeC4Shape.text){case"person":b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}const y=i.append("g");y.attr("class","person-man");const T=qC();switch(s.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":T.x=s.x,T.y=s.y,T.fill=d,T.width=s.width,T.height=s.height,T.stroke=p,T.rx=2.5,T.ry=2.5,T.attrs={"stroke-width":.5},qbe(y,T);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":y.append("path").attr("fill",d).attr("stroke-width","0.5").attr("stroke",p).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",s.x).replaceAll("starty",s.y).replaceAll("half",s.width/2).replaceAll("height",s.height)),y.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",p).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",s.x).replaceAll("starty",s.y).replaceAll("half",s.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":y.append("path").attr("fill",d).attr("stroke-width","0.5").attr("stroke",p).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",s.x).replaceAll("starty",s.y).replaceAll("width",s.width).replaceAll("half",s.height/2)),y.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",p).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",s.x+s.width).replaceAll("starty",s.y).replaceAll("half",s.height/2));break}let _=pUt(u,s.typeC4Shape.text);switch(y.append("text").attr("fill",v).attr("font-family",_.fontFamily).attr("font-size",_.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",s.typeC4Shape.width).attr("x",s.x+s.width/2-s.typeC4Shape.width/2).attr("y",s.y+s.typeC4Shape.Y).text("<<"+s.typeC4Shape.text+">>"),s.typeC4Shape.text){case"person":case"external_person":Cqe(y,48,48,s.x+s.width/2-24,s.y+s.image.Y,b);break}let A=u[s.typeC4Shape.text+"Font"]();return A.fontWeight="bold",A.fontSize=A.fontSize+2,A.fontColor=v,F7(u)(s.label.text,y,s.x,s.y+s.label.Y,s.width,s.height,{fill:v},A),A=u[s.typeC4Shape.text+"Font"](),A.fontColor=v,s.techn&&((P=s.techn)==null?void 0:P.text)!==""?F7(u)(s.techn.text,y,s.x,s.y+s.techn.Y,s.width,s.height,{fill:v,"font-style":"italic"},A):s.type&&s.type.text!==""&&F7(u)(s.type.text,y,s.x,s.y+s.type.Y,s.width,s.height,{fill:v,"font-style":"italic"},A),s.descr&&s.descr.text!==""&&(A=u.personFont(),A.fontColor=v,F7(u)(s.descr.text,y,s.x,s.y+s.descr.Y,s.width,s.height,{fill:v},A)),s.height},oUt=function(i){i.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},cUt=function(i){i.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},uUt=function(i){i.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},lUt=function(i){i.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},hUt=function(i){i.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},fUt=function(i){i.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},dUt=function(i){i.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},gUt=function(i){const u=i.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);u.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),u.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},pUt=(i,s)=>({fontFamily:i[s+"FontFamily"],fontSize:i[s+"FontSize"],fontWeight:i[s+"FontWeight"]}),F7=function(){function i(p,v,b,y,T,_,A){const P=v.append("text").attr("x",b+T/2).attr("y",y+_/2+5).style("text-anchor","middle").text(p);d(P,A)}function s(p,v,b,y,T,_,A,P){const{fontSize:R,fontFamily:F,fontWeight:j}=P,K=p.split(li.lineBreakRegex);for(let ee=0;ee=this.data.widthLimit||d>=this.data.widthLimit||this.nextData.cnt>Sqe)&&(u=this.nextData.startx+s.margin+$s.nextLinePaddingX,p=this.nextData.stopy+s.margin*2,this.nextData.stopx=d=u+s.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=v=p+s.height,this.nextData.cnt=1),s.x=u,s.y=p,this.updateVal(this.data,"startx",u,Math.min),this.updateVal(this.data,"starty",p,Math.min),this.updateVal(this.data,"stopx",d,Math.max),this.updateVal(this.data,"stopy",v,Math.max),this.updateVal(this.nextData,"startx",u,Math.min),this.updateVal(this.nextData,"starty",p,Math.min),this.updateVal(this.nextData,"stopx",d,Math.max),this.updateVal(this.nextData,"stopy",v,Math.max)}init(s){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},Vbe(s.db.getConfig())}bumpLastMargin(s){this.data.stopx+=s,this.data.stopy+=s}}const Vbe=function(i){id($s,i),i.fontFamily&&($s.personFontFamily=$s.systemFontFamily=$s.messageFontFamily=i.fontFamily),i.fontSize&&($s.personFontSize=$s.systemFontSize=$s.messageFontSize=i.fontSize),i.fontWeight&&($s.personFontWeight=$s.systemFontWeight=$s.messageFontWeight=i.fontWeight)},bR=(i,s)=>({fontFamily:i[s+"FontFamily"],fontSize:i[s+"FontSize"],fontWeight:i[s+"FontWeight"]}),DQ=i=>({fontFamily:i.boundaryFontFamily,fontSize:i.boundaryFontSize,fontWeight:i.boundaryFontWeight}),bUt=i=>({fontFamily:i.messageFontFamily,fontSize:i.messageFontSize,fontWeight:i.messageFontWeight});function $3(i,s,u,d,p){if(!s[i].width)if(u)s[i].text=vje(s[i].text,p,d),s[i].textLines=s[i].text.split(li.lineBreakRegex).length,s[i].width=p,s[i].height=E2e(s[i].text,d);else{let v=s[i].text.split(li.lineBreakRegex);s[i].textLines=v.length;let b=0;s[i].height=0,s[i].width=0;for(const y of v)s[i].width=Math.max(H4(y,d),s[i].width),b=E2e(y,d),s[i].height=s[i].height+b}}const Aqe=function(i,s,u){s.x=u.data.startx,s.y=u.data.starty,s.width=u.data.stopx-u.data.startx,s.height=u.data.stopy-u.data.starty,s.label.y=$s.c4ShapeMargin-35;let d=s.wrap&&$s.wrap,p=DQ($s);p.fontSize=p.fontSize+2,p.fontWeight="bold";let v=H4(s.label.text,p);$3("label",s,d,p,v),J4.drawBoundary(i,s,$s)},Lqe=function(i,s,u,d){let p=0;for(const v of d){p=0;const b=u[v];let y=bR($s,b.typeC4Shape.text);switch(y.fontSize=y.fontSize-2,b.typeC4Shape.width=H4("«"+b.typeC4Shape.text+"»",y),b.typeC4Shape.height=y.fontSize+2,b.typeC4Shape.Y=$s.c4ShapePadding,p=b.typeC4Shape.Y+b.typeC4Shape.height-4,b.image={width:0,height:0,Y:0},b.typeC4Shape.text){case"person":case"external_person":b.image.width=48,b.image.height=48,b.image.Y=p,p=b.image.Y+b.image.height;break}b.sprite&&(b.image.width=48,b.image.height=48,b.image.Y=p,p=b.image.Y+b.image.height);let T=b.wrap&&$s.wrap,_=$s.width-$s.c4ShapePadding*2,A=bR($s,b.typeC4Shape.text);if(A.fontSize=A.fontSize+2,A.fontWeight="bold",$3("label",b,T,A,_),b.label.Y=p+8,p=b.label.Y+b.label.height,b.type&&b.type.text!==""){b.type.text="["+b.type.text+"]";let F=bR($s,b.typeC4Shape.text);$3("type",b,T,F,_),b.type.Y=p+5,p=b.type.Y+b.type.height}else if(b.techn&&b.techn.text!==""){b.techn.text="["+b.techn.text+"]";let F=bR($s,b.techn.text);$3("techn",b,T,F,_),b.techn.Y=p+5,p=b.techn.Y+b.techn.height}let P=p,R=b.label.width;if(b.descr&&b.descr.text!==""){let F=bR($s,b.typeC4Shape.text);$3("descr",b,T,F,_),b.descr.Y=p+20,p=b.descr.Y+b.descr.height,R=Math.max(b.label.width,b.descr.width),P=p-b.descr.textLines*5}R=R+$s.c4ShapePadding,b.width=Math.max(b.width||$s.width,R,$s.width),b.height=Math.max(b.height||$s.height,P,$s.height),b.margin=b.margin||$s.c4ShapeMargin,i.insert(b),J4.drawC4Shape(s,b,$s)}i.bumpLastMargin($s.c4ShapeMargin)};let jv=class{constructor(s,u){this.x=s,this.y=u}},Mqe=function(i,s){let u=i.x,d=i.y,p=s.x,v=s.y,b=u+i.width/2,y=d+i.height/2,T=Math.abs(u-p),_=Math.abs(d-v),A=_/T,P=i.height/i.width,R=null;return d==v&&up?R=new jv(u,y):u==p&&dv&&(R=new jv(b,d)),u>p&&d=A?R=new jv(u,y+A*i.width/2):R=new jv(b-T/_*i.height/2,d+i.height):u=A?R=new jv(u+i.width,y+A*i.width/2):R=new jv(b+T/_*i.height/2,d+i.height):uv?P>=A?R=new jv(u+i.width,y-A*i.width/2):R=new jv(b+i.height/2*T/_,d):u>p&&d>v&&(P>=A?R=new jv(u,y-i.width/2*A):R=new jv(b-i.height/2*T/_,d)),R},mUt=function(i,s){let u={x:0,y:0};u.x=s.x+s.width/2,u.y=s.y+s.height/2;let d=Mqe(i,u);u.x=i.x+i.width/2,u.y=i.y+i.height/2;let p=Mqe(s,u);return{startPoint:d,endPoint:p}};const vUt=function(i,s,u,d){let p=0;for(let v of s){p=p+1;let b=v.wrap&&$s.wrap,y=bUt($s);d.db.getC4Type()==="C4Dynamic"&&(v.label.text=p+": "+v.label.text);let _=H4(v.label.text,y);$3("label",v,b,y,_),v.techn&&v.techn.text!==""&&(_=H4(v.techn.text,y),$3("techn",v,b,y,_)),v.descr&&v.descr.text!==""&&(_=H4(v.descr.text,y),$3("descr",v,b,y,_));let A=u(v.from),P=u(v.to),R=mUt(A,P);v.startPoint=R.startPoint,v.endPoint=R.endPoint}J4.drawRels(i,s,$s)};function Dqe(i,s,u,d,p){let v=new _qe(p);v.data.widthLimit=u.data.widthLimit/Math.min(Hbe,d.length);for(let[b,y]of d.entries()){let T=0;y.image={width:0,height:0,Y:0},y.sprite&&(y.image.width=48,y.image.height=48,y.image.Y=T,T=y.image.Y+y.image.height);let _=y.wrap&&$s.wrap,A=DQ($s);if(A.fontSize=A.fontSize+2,A.fontWeight="bold",$3("label",y,_,A,v.data.widthLimit),y.label.Y=T+8,T=y.label.Y+y.label.height,y.type&&y.type.text!==""){y.type.text="["+y.type.text+"]";let j=DQ($s);$3("type",y,_,j,v.data.widthLimit),y.type.Y=T+5,T=y.type.Y+y.type.height}if(y.descr&&y.descr.text!==""){let j=DQ($s);j.fontSize=j.fontSize-2,$3("descr",y,_,j,v.data.widthLimit),y.descr.Y=T+20,T=y.descr.Y+y.descr.height}if(b==0||b%Hbe===0){let j=u.data.startx+$s.diagramMarginX,K=u.data.stopy+$s.diagramMarginY+T;v.setData(j,j,K,K)}else{let j=v.data.stopx!==v.data.startx?v.data.stopx+$s.diagramMarginX:v.data.startx,K=v.data.starty;v.setData(j,j,K,K)}v.name=y.alias;let P=p.db.getC4ShapeArray(y.alias),R=p.db.getC4ShapeKeys(y.alias);R.length>0&&Lqe(v,i,P,R),s=y.alias;let F=p.db.getBoundarys(s);F.length>0&&Dqe(i,s,v,F,p),y.alias!=="global"&&Aqe(i,y,v),u.data.stopy=Math.max(v.data.stopy+$s.c4ShapeMargin,u.data.stopy),u.data.stopx=Math.max(v.data.stopx+$s.c4ShapeMargin,u.data.stopx),LQ=Math.max(LQ,u.data.stopx),MQ=Math.max(MQ,u.data.stopy)}}const Iqe={drawPersonOrSystemArray:Lqe,drawBoundary:Aqe,setConf:Vbe,draw:function(i,s,u,d){$s=qt().c4;const p=qt().securityLevel;let v;p==="sandbox"&&(v=Ir("#i"+s));const b=Ir(p==="sandbox"?v.nodes()[0].contentDocument.body:"body");let y=d.db;d.db.setWrap($s.wrap),Sqe=y.getC4ShapeInRow(),Hbe=y.getC4BoundaryInRow(),Xe.debug(`C:${JSON.stringify($s,null,2)}`);const T=p==="sandbox"?b.select(`[id="${s}"]`):Ir(`[id="${s}"]`);J4.insertComputerIcon(T),J4.insertDatabaseIcon(T),J4.insertClockIcon(T);let _=new _qe(d);_.setData($s.diagramMarginX,$s.diagramMarginX,$s.diagramMarginY,$s.diagramMarginY),_.data.widthLimit=screen.availWidth,LQ=$s.diagramMarginX,MQ=$s.diagramMarginY;const A=d.db.getTitle();let P=d.db.getBoundarys("");Dqe(T,"",_,P,d),J4.insertArrowHead(T),J4.insertArrowEnd(T),J4.insertArrowCrossHead(T),J4.insertArrowFilledHead(T),vUt(T,d.db.getRels(),d.db.getC4Shape,d),_.data.stopx=LQ,_.data.stopy=MQ;const R=_.data;let j=R.stopy-R.starty+2*$s.diagramMarginY;const ee=R.stopx-R.startx+2*$s.diagramMarginX;A&&T.append("text").text(A).attr("x",(R.stopx-R.startx)/2-4*$s.diagramMarginX).attr("y",R.starty+$s.diagramMarginY),Ng(T,j,ee,$s.useMaxWidth);const ie=A?60:0;T.attr("viewBox",R.startx-$s.diagramMarginX+" -"+($s.diagramMarginY+ie)+" "+ee+" "+(j+ie)),Xe.debug("models:",R)}},wUt=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:DVt,db:$be,renderer:Iqe,styles:i=>`.person { +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var qn=this.next();return qn||this.lex()},begin:function(qn){this.conditionStack.push(qn)},popState:function(){var qn=this.conditionStack.length-1;return qn>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(qn){return qn=this.conditionStack.length-1-Math.abs(qn||0),qn>=0?this.conditionStack[qn]:"INITIAL"},pushState:function(qn){this.begin(qn)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(qn,Un,At,wt){switch(At){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:return this.begin("node"),39;case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:return this.begin("rel_u"),66;case 53:return this.begin("rel_u"),66;case 54:return this.begin("rel_d"),67;case 55:return this.begin("rel_d"),67;case 56:return this.begin("rel_l"),68;case 57:return this.begin("rel_l"),68;case 58:return this.begin("rel_r"),69;case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return Tr}();Ma.lexer=zs;function ao(){this.yy={}}return ao.prototype=Ma,Ma.Parser=ao,new ao}();CQ.parser=CQ;const DVt=CQ;let R3=[],M9=[""],Op="global",j3="",Q4=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],pR=[],Rbe="",jbe=!1,SQ=4,_Q=2;var xqe;const IVt=function(){return xqe},OVt=function(i){xqe=Yf(i,qt())},NVt=function(i,s,u,d,p,v,b,y,T){if(i==null||s===void 0||s===null||u===void 0||u===null||d===void 0||d===null)return;let _={};const A=pR.find(P=>P.from===s&&P.to===u);if(A?_=A:pR.push(_),_.type=i,_.from=s,_.to=u,_.label={text:d},p==null)_.techn={text:""};else if(typeof p=="object"){let[P,R]=Object.entries(p)[0];_[P]={text:R}}else _.techn={text:p};if(v==null)_.descr={text:""};else if(typeof v=="object"){let[P,R]=Object.entries(v)[0];_[P]={text:R}}else _.descr={text:v};if(typeof b=="object"){let[P,R]=Object.entries(b)[0];_[P]=R}else _.sprite=b;if(typeof y=="object"){let[P,R]=Object.entries(y)[0];_[P]=R}else _.tags=y;if(typeof T=="object"){let[P,R]=Object.entries(T)[0];_[P]=R}else _.link=T;_.wrap=D9()},PVt=function(i,s,u,d,p,v,b){if(s===null||u===null)return;let y={};const T=R3.find(_=>_.alias===s);if(T&&s===T.alias?y=T:(y.alias=s,R3.push(y)),u==null?y.label={text:""}:y.label={text:u},d==null)y.descr={text:""};else if(typeof d=="object"){let[_,A]=Object.entries(d)[0];y[_]={text:A}}else y.descr={text:d};if(typeof p=="object"){let[_,A]=Object.entries(p)[0];y[_]=A}else y.sprite=p;if(typeof v=="object"){let[_,A]=Object.entries(v)[0];y[_]=A}else y.tags=v;if(typeof b=="object"){let[_,A]=Object.entries(b)[0];y[_]=A}else y.link=b;y.typeC4Shape={text:i},y.parentBoundary=Op,y.wrap=D9()},BVt=function(i,s,u,d,p,v,b,y){if(s===null||u===null)return;let T={};const _=R3.find(A=>A.alias===s);if(_&&s===_.alias?T=_:(T.alias=s,R3.push(T)),u==null?T.label={text:""}:T.label={text:u},d==null)T.techn={text:""};else if(typeof d=="object"){let[A,P]=Object.entries(d)[0];T[A]={text:P}}else T.techn={text:d};if(p==null)T.descr={text:""};else if(typeof p=="object"){let[A,P]=Object.entries(p)[0];T[A]={text:P}}else T.descr={text:p};if(typeof v=="object"){let[A,P]=Object.entries(v)[0];T[A]=P}else T.sprite=v;if(typeof b=="object"){let[A,P]=Object.entries(b)[0];T[A]=P}else T.tags=b;if(typeof y=="object"){let[A,P]=Object.entries(y)[0];T[A]=P}else T.link=y;T.wrap=D9(),T.typeC4Shape={text:i},T.parentBoundary=Op},FVt=function(i,s,u,d,p,v,b,y){if(s===null||u===null)return;let T={};const _=R3.find(A=>A.alias===s);if(_&&s===_.alias?T=_:(T.alias=s,R3.push(T)),u==null?T.label={text:""}:T.label={text:u},d==null)T.techn={text:""};else if(typeof d=="object"){let[A,P]=Object.entries(d)[0];T[A]={text:P}}else T.techn={text:d};if(p==null)T.descr={text:""};else if(typeof p=="object"){let[A,P]=Object.entries(p)[0];T[A]={text:P}}else T.descr={text:p};if(typeof v=="object"){let[A,P]=Object.entries(v)[0];T[A]=P}else T.sprite=v;if(typeof b=="object"){let[A,P]=Object.entries(b)[0];T[A]=P}else T.tags=b;if(typeof y=="object"){let[A,P]=Object.entries(y)[0];T[A]=P}else T.link=y;T.wrap=D9(),T.typeC4Shape={text:i},T.parentBoundary=Op},RVt=function(i,s,u,d,p){if(i===null||s===null)return;let v={};const b=Q4.find(y=>y.alias===i);if(b&&i===b.alias?v=b:(v.alias=i,Q4.push(v)),s==null?v.label={text:""}:v.label={text:s},u==null)v.type={text:"system"};else if(typeof u=="object"){let[y,T]=Object.entries(u)[0];v[y]={text:T}}else v.type={text:u};if(typeof d=="object"){let[y,T]=Object.entries(d)[0];v[y]=T}else v.tags=d;if(typeof p=="object"){let[y,T]=Object.entries(p)[0];v[y]=T}else v.link=p;v.parentBoundary=Op,v.wrap=D9(),j3=Op,Op=i,M9.push(j3)},jVt=function(i,s,u,d,p){if(i===null||s===null)return;let v={};const b=Q4.find(y=>y.alias===i);if(b&&i===b.alias?v=b:(v.alias=i,Q4.push(v)),s==null?v.label={text:""}:v.label={text:s},u==null)v.type={text:"container"};else if(typeof u=="object"){let[y,T]=Object.entries(u)[0];v[y]={text:T}}else v.type={text:u};if(typeof d=="object"){let[y,T]=Object.entries(d)[0];v[y]=T}else v.tags=d;if(typeof p=="object"){let[y,T]=Object.entries(p)[0];v[y]=T}else v.link=p;v.parentBoundary=Op,v.wrap=D9(),j3=Op,Op=i,M9.push(j3)},$Vt=function(i,s,u,d,p,v,b,y){if(s===null||u===null)return;let T={};const _=Q4.find(A=>A.alias===s);if(_&&s===_.alias?T=_:(T.alias=s,Q4.push(T)),u==null?T.label={text:""}:T.label={text:u},d==null)T.type={text:"node"};else if(typeof d=="object"){let[A,P]=Object.entries(d)[0];T[A]={text:P}}else T.type={text:d};if(p==null)T.descr={text:""};else if(typeof p=="object"){let[A,P]=Object.entries(p)[0];T[A]={text:P}}else T.descr={text:p};if(typeof b=="object"){let[A,P]=Object.entries(b)[0];T[A]=P}else T.tags=b;if(typeof y=="object"){let[A,P]=Object.entries(y)[0];T[A]=P}else T.link=y;T.nodeType=i,T.parentBoundary=Op,T.wrap=D9(),j3=Op,Op=s,M9.push(j3)},zVt=function(){Op=j3,M9.pop(),j3=M9.pop(),M9.push(j3)},qVt=function(i,s,u,d,p,v,b,y,T,_,A){let P=R3.find(R=>R.alias===s);if(!(P===void 0&&(P=Q4.find(R=>R.alias===s),P===void 0))){if(u!=null)if(typeof u=="object"){let[R,F]=Object.entries(u)[0];P[R]=F}else P.bgColor=u;if(d!=null)if(typeof d=="object"){let[R,F]=Object.entries(d)[0];P[R]=F}else P.fontColor=d;if(p!=null)if(typeof p=="object"){let[R,F]=Object.entries(p)[0];P[R]=F}else P.borderColor=p;if(v!=null)if(typeof v=="object"){let[R,F]=Object.entries(v)[0];P[R]=F}else P.shadowing=v;if(b!=null)if(typeof b=="object"){let[R,F]=Object.entries(b)[0];P[R]=F}else P.shape=b;if(y!=null)if(typeof y=="object"){let[R,F]=Object.entries(y)[0];P[R]=F}else P.sprite=y;if(T!=null)if(typeof T=="object"){let[R,F]=Object.entries(T)[0];P[R]=F}else P.techn=T;if(_!=null)if(typeof _=="object"){let[R,F]=Object.entries(_)[0];P[R]=F}else P.legendText=_;if(A!=null)if(typeof A=="object"){let[R,F]=Object.entries(A)[0];P[R]=F}else P.legendSprite=A}},HVt=function(i,s,u,d,p,v,b){const y=pR.find(T=>T.from===s&&T.to===u);if(y!==void 0){if(d!=null)if(typeof d=="object"){let[T,_]=Object.entries(d)[0];y[T]=_}else y.textColor=d;if(p!=null)if(typeof p=="object"){let[T,_]=Object.entries(p)[0];y[T]=_}else y.lineColor=p;if(v!=null)if(typeof v=="object"){let[T,_]=Object.entries(v)[0];y[T]=parseInt(_)}else y.offsetX=parseInt(v);if(b!=null)if(typeof b=="object"){let[T,_]=Object.entries(b)[0];y[T]=parseInt(_)}else y.offsetY=parseInt(b)}},VVt=function(i,s,u){let d=SQ,p=_Q;if(typeof s=="object"){const v=Object.values(s)[0];d=parseInt(v)}else d=parseInt(s);if(typeof u=="object"){const v=Object.values(u)[0];p=parseInt(v)}else p=parseInt(u);d>=1&&(SQ=d),p>=1&&(_Q=p)},UVt=function(){return SQ},GVt=function(){return _Q},KVt=function(){return Op},WVt=function(){return j3},kqe=function(i){return i==null?R3:R3.filter(s=>s.parentBoundary===i)},YVt=function(i){return R3.find(s=>s.alias===i)},XVt=function(i){return Object.keys(kqe(i))},Eqe=function(i){return i==null?Q4:Q4.filter(s=>s.parentBoundary===i)},QVt=Eqe,JVt=function(){return pR},ZVt=function(){return Rbe},eUt=function(i){jbe=i},D9=function(){return jbe},$be={addPersonOrSystem:PVt,addPersonOrSystemBoundary:RVt,addContainer:BVt,addContainerBoundary:jVt,addComponent:FVt,addDeploymentNode:$Vt,popBoundaryParseStack:zVt,addRel:NVt,updateElStyle:qVt,updateRelStyle:HVt,updateLayoutConfig:VVt,autoWrap:D9,setWrap:eUt,getC4ShapeArray:kqe,getC4Shape:YVt,getC4ShapeKeys:XVt,getBoundaries:Eqe,getBoundarys:QVt,getCurrentBoundaryParse:KVt,getParentBoundaryParse:WVt,getRels:JVt,getTitle:ZVt,getC4Type:IVt,getC4ShapeInRow:UVt,getC4BoundaryInRow:GVt,setAccTitle:Bg,getAccTitle:Cp,getAccDescription:_p,setAccDescription:Sp,getConfig:()=>qt().c4,clear:function(){R3=[],Q4=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],j3="",Op="global",M9=[""],pR=[],M9=[""],Rbe="",jbe=!1,SQ=4,_Q=2},LINETYPE:{SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:function(i){Rbe=Yf(i,qt())},setC4Type:OVt},AQ=(i,s)=>{const u=i.append("rect");if(u.attr("x",s.x),u.attr("y",s.y),u.attr("fill",s.fill),u.attr("stroke",s.stroke),u.attr("width",s.width),u.attr("height",s.height),s.name&&u.attr("name",s.name),s.rx!==void 0&&u.attr("rx",s.rx),s.ry!==void 0&&u.attr("ry",s.ry),s.attrs!==void 0)for(const d in s.attrs)u.attr(d,s.attrs[d]);return s.class!==void 0&&u.attr("class",s.class),u},Tqe=(i,s)=>{const u={x:s.startx,y:s.starty,width:s.stopx-s.startx,height:s.stopy-s.starty,fill:s.fill,stroke:s.stroke,class:"rect"};AQ(i,u).lower()},tUt=(i,s)=>{const u=s.text.replace(fD," "),d=i.append("text");d.attr("x",s.x),d.attr("y",s.y),d.attr("class","legend"),d.style("text-anchor",s.anchor),s.class!==void 0&&d.attr("class",s.class);const p=d.append("tspan");return p.attr("x",s.x+s.textMargin*2),p.text(u),d},nUt=(i,s,u,d)=>{const p=i.append("image");p.attr("x",s),p.attr("y",u);const v=p9.sanitizeUrl(d);p.attr("xlink:href",v)},rUt=(i,s,u,d)=>{const p=i.append("use");p.attr("x",s),p.attr("y",u);const v=p9.sanitizeUrl(d);p.attr("xlink:href",`#${v}`)},qC=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),zbe=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),qbe=function(i,s){return AQ(i,s)},Cqe=function(i,s,u,d,p,v){const b=i.append("image");b.attr("width",s),b.attr("height",u),b.attr("x",d),b.attr("y",p);let y=v.startsWith("data:image/png;base64")?v:p9.sanitizeUrl(v);b.attr("xlink:href",y)},iUt=(i,s,u)=>{const d=i.append("g");let p=0;for(let v of s){let b=v.textColor?v.textColor:"#444444",y=v.lineColor?v.lineColor:"#444444",T=v.offsetX?parseInt(v.offsetX):0,_=v.offsetY?parseInt(v.offsetY):0,A="";if(p===0){let R=d.append("line");R.attr("x1",v.startPoint.x),R.attr("y1",v.startPoint.y),R.attr("x2",v.endPoint.x),R.attr("y2",v.endPoint.y),R.attr("stroke-width","1"),R.attr("stroke",y),R.style("fill","none"),v.type!=="rel_b"&&R.attr("marker-end","url("+A+"#arrowhead)"),(v.type==="birel"||v.type==="rel_b")&&R.attr("marker-start","url("+A+"#arrowend)"),p=-1}else{let R=d.append("path");R.attr("fill","none").attr("stroke-width","1").attr("stroke",y).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",v.startPoint.x).replaceAll("starty",v.startPoint.y).replaceAll("controlx",v.startPoint.x+(v.endPoint.x-v.startPoint.x)/2-(v.endPoint.x-v.startPoint.x)/4).replaceAll("controly",v.startPoint.y+(v.endPoint.y-v.startPoint.y)/2).replaceAll("stopx",v.endPoint.x).replaceAll("stopy",v.endPoint.y)),v.type!=="rel_b"&&R.attr("marker-end","url("+A+"#arrowhead)"),(v.type==="birel"||v.type==="rel_b")&&R.attr("marker-start","url("+A+"#arrowend)")}let P=u.messageFont();F7(u)(v.label.text,d,Math.min(v.startPoint.x,v.endPoint.x)+Math.abs(v.endPoint.x-v.startPoint.x)/2+T,Math.min(v.startPoint.y,v.endPoint.y)+Math.abs(v.endPoint.y-v.startPoint.y)/2+_,v.label.width,v.label.height,{fill:b},P),v.techn&&v.techn.text!==""&&(P=u.messageFont(),F7(u)("["+v.techn.text+"]",d,Math.min(v.startPoint.x,v.endPoint.x)+Math.abs(v.endPoint.x-v.startPoint.x)/2+T,Math.min(v.startPoint.y,v.endPoint.y)+Math.abs(v.endPoint.y-v.startPoint.y)/2+u.messageFontSize+5+_,Math.max(v.label.width,v.techn.width),v.techn.height,{fill:b,"font-style":"italic"},P))}},sUt=function(i,s,u){const d=i.append("g");let p=s.bgColor?s.bgColor:"none",v=s.borderColor?s.borderColor:"#444444",b=s.fontColor?s.fontColor:"black",y={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};s.nodeType&&(y={"stroke-width":1});let T={x:s.x,y:s.y,fill:p,stroke:v,width:s.width,height:s.height,rx:2.5,ry:2.5,attrs:y};qbe(d,T);let _=u.boundaryFont();_.fontWeight="bold",_.fontSize=_.fontSize+2,_.fontColor=b,F7(u)(s.label.text,d,s.x,s.y+s.label.Y,s.width,s.height,{fill:"#444444"},_),s.type&&s.type.text!==""&&(_=u.boundaryFont(),_.fontColor=b,F7(u)(s.type.text,d,s.x,s.y+s.type.Y,s.width,s.height,{fill:"#444444"},_)),s.descr&&s.descr.text!==""&&(_=u.boundaryFont(),_.fontSize=_.fontSize-2,_.fontColor=b,F7(u)(s.descr.text,d,s.x,s.y+s.descr.Y,s.width,s.height,{fill:"#444444"},_))},aUt=function(i,s,u){var P;let d=s.bgColor?s.bgColor:u[s.typeC4Shape.text+"_bg_color"],p=s.borderColor?s.borderColor:u[s.typeC4Shape.text+"_border_color"],v=s.fontColor?s.fontColor:"#FFFFFF",b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(s.typeC4Shape.text){case"person":b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}const y=i.append("g");y.attr("class","person-man");const T=qC();switch(s.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":T.x=s.x,T.y=s.y,T.fill=d,T.width=s.width,T.height=s.height,T.stroke=p,T.rx=2.5,T.ry=2.5,T.attrs={"stroke-width":.5},qbe(y,T);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":y.append("path").attr("fill",d).attr("stroke-width","0.5").attr("stroke",p).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",s.x).replaceAll("starty",s.y).replaceAll("half",s.width/2).replaceAll("height",s.height)),y.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",p).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",s.x).replaceAll("starty",s.y).replaceAll("half",s.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":y.append("path").attr("fill",d).attr("stroke-width","0.5").attr("stroke",p).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",s.x).replaceAll("starty",s.y).replaceAll("width",s.width).replaceAll("half",s.height/2)),y.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",p).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",s.x+s.width).replaceAll("starty",s.y).replaceAll("half",s.height/2));break}let _=pUt(u,s.typeC4Shape.text);switch(y.append("text").attr("fill",v).attr("font-family",_.fontFamily).attr("font-size",_.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",s.typeC4Shape.width).attr("x",s.x+s.width/2-s.typeC4Shape.width/2).attr("y",s.y+s.typeC4Shape.Y).text("<<"+s.typeC4Shape.text+">>"),s.typeC4Shape.text){case"person":case"external_person":Cqe(y,48,48,s.x+s.width/2-24,s.y+s.image.Y,b);break}let A=u[s.typeC4Shape.text+"Font"]();return A.fontWeight="bold",A.fontSize=A.fontSize+2,A.fontColor=v,F7(u)(s.label.text,y,s.x,s.y+s.label.Y,s.width,s.height,{fill:v},A),A=u[s.typeC4Shape.text+"Font"](),A.fontColor=v,s.techn&&((P=s.techn)==null?void 0:P.text)!==""?F7(u)(s.techn.text,y,s.x,s.y+s.techn.Y,s.width,s.height,{fill:v,"font-style":"italic"},A):s.type&&s.type.text!==""&&F7(u)(s.type.text,y,s.x,s.y+s.type.Y,s.width,s.height,{fill:v,"font-style":"italic"},A),s.descr&&s.descr.text!==""&&(A=u.personFont(),A.fontColor=v,F7(u)(s.descr.text,y,s.x,s.y+s.descr.Y,s.width,s.height,{fill:v},A)),s.height},oUt=function(i){i.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},cUt=function(i){i.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},uUt=function(i){i.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},lUt=function(i){i.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},hUt=function(i){i.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},fUt=function(i){i.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},dUt=function(i){i.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},gUt=function(i){const u=i.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);u.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),u.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},pUt=(i,s)=>({fontFamily:i[s+"FontFamily"],fontSize:i[s+"FontSize"],fontWeight:i[s+"FontWeight"]}),F7=function(){function i(p,v,b,y,T,_,A){const P=v.append("text").attr("x",b+T/2).attr("y",y+_/2+5).style("text-anchor","middle").text(p);d(P,A)}function s(p,v,b,y,T,_,A,P){const{fontSize:R,fontFamily:F,fontWeight:j}=P,K=p.split(ci.lineBreakRegex);for(let ee=0;ee=this.data.widthLimit||d>=this.data.widthLimit||this.nextData.cnt>Sqe)&&(u=this.nextData.startx+s.margin+$s.nextLinePaddingX,p=this.nextData.stopy+s.margin*2,this.nextData.stopx=d=u+s.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=v=p+s.height,this.nextData.cnt=1),s.x=u,s.y=p,this.updateVal(this.data,"startx",u,Math.min),this.updateVal(this.data,"starty",p,Math.min),this.updateVal(this.data,"stopx",d,Math.max),this.updateVal(this.data,"stopy",v,Math.max),this.updateVal(this.nextData,"startx",u,Math.min),this.updateVal(this.nextData,"starty",p,Math.min),this.updateVal(this.nextData,"stopx",d,Math.max),this.updateVal(this.nextData,"stopy",v,Math.max)}init(s){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},Vbe(s.db.getConfig())}bumpLastMargin(s){this.data.stopx+=s,this.data.stopy+=s}}const Vbe=function(i){id($s,i),i.fontFamily&&($s.personFontFamily=$s.systemFontFamily=$s.messageFontFamily=i.fontFamily),i.fontSize&&($s.personFontSize=$s.systemFontSize=$s.messageFontSize=i.fontSize),i.fontWeight&&($s.personFontWeight=$s.systemFontWeight=$s.messageFontWeight=i.fontWeight)},bR=(i,s)=>({fontFamily:i[s+"FontFamily"],fontSize:i[s+"FontSize"],fontWeight:i[s+"FontWeight"]}),DQ=i=>({fontFamily:i.boundaryFontFamily,fontSize:i.boundaryFontSize,fontWeight:i.boundaryFontWeight}),bUt=i=>({fontFamily:i.messageFontFamily,fontSize:i.messageFontSize,fontWeight:i.messageFontWeight});function $3(i,s,u,d,p){if(!s[i].width)if(u)s[i].text=vje(s[i].text,p,d),s[i].textLines=s[i].text.split(ci.lineBreakRegex).length,s[i].width=p,s[i].height=E2e(s[i].text,d);else{let v=s[i].text.split(ci.lineBreakRegex);s[i].textLines=v.length;let b=0;s[i].height=0,s[i].width=0;for(const y of v)s[i].width=Math.max(H4(y,d),s[i].width),b=E2e(y,d),s[i].height=s[i].height+b}}const Aqe=function(i,s,u){s.x=u.data.startx,s.y=u.data.starty,s.width=u.data.stopx-u.data.startx,s.height=u.data.stopy-u.data.starty,s.label.y=$s.c4ShapeMargin-35;let d=s.wrap&&$s.wrap,p=DQ($s);p.fontSize=p.fontSize+2,p.fontWeight="bold";let v=H4(s.label.text,p);$3("label",s,d,p,v),J4.drawBoundary(i,s,$s)},Lqe=function(i,s,u,d){let p=0;for(const v of d){p=0;const b=u[v];let y=bR($s,b.typeC4Shape.text);switch(y.fontSize=y.fontSize-2,b.typeC4Shape.width=H4("«"+b.typeC4Shape.text+"»",y),b.typeC4Shape.height=y.fontSize+2,b.typeC4Shape.Y=$s.c4ShapePadding,p=b.typeC4Shape.Y+b.typeC4Shape.height-4,b.image={width:0,height:0,Y:0},b.typeC4Shape.text){case"person":case"external_person":b.image.width=48,b.image.height=48,b.image.Y=p,p=b.image.Y+b.image.height;break}b.sprite&&(b.image.width=48,b.image.height=48,b.image.Y=p,p=b.image.Y+b.image.height);let T=b.wrap&&$s.wrap,_=$s.width-$s.c4ShapePadding*2,A=bR($s,b.typeC4Shape.text);if(A.fontSize=A.fontSize+2,A.fontWeight="bold",$3("label",b,T,A,_),b.label.Y=p+8,p=b.label.Y+b.label.height,b.type&&b.type.text!==""){b.type.text="["+b.type.text+"]";let F=bR($s,b.typeC4Shape.text);$3("type",b,T,F,_),b.type.Y=p+5,p=b.type.Y+b.type.height}else if(b.techn&&b.techn.text!==""){b.techn.text="["+b.techn.text+"]";let F=bR($s,b.techn.text);$3("techn",b,T,F,_),b.techn.Y=p+5,p=b.techn.Y+b.techn.height}let P=p,R=b.label.width;if(b.descr&&b.descr.text!==""){let F=bR($s,b.typeC4Shape.text);$3("descr",b,T,F,_),b.descr.Y=p+20,p=b.descr.Y+b.descr.height,R=Math.max(b.label.width,b.descr.width),P=p-b.descr.textLines*5}R=R+$s.c4ShapePadding,b.width=Math.max(b.width||$s.width,R,$s.width),b.height=Math.max(b.height||$s.height,P,$s.height),b.margin=b.margin||$s.c4ShapeMargin,i.insert(b),J4.drawC4Shape(s,b,$s)}i.bumpLastMargin($s.c4ShapeMargin)};let jv=class{constructor(s,u){this.x=s,this.y=u}},Mqe=function(i,s){let u=i.x,d=i.y,p=s.x,v=s.y,b=u+i.width/2,y=d+i.height/2,T=Math.abs(u-p),_=Math.abs(d-v),A=_/T,P=i.height/i.width,R=null;return d==v&&up?R=new jv(u,y):u==p&&dv&&(R=new jv(b,d)),u>p&&d=A?R=new jv(u,y+A*i.width/2):R=new jv(b-T/_*i.height/2,d+i.height):u=A?R=new jv(u+i.width,y+A*i.width/2):R=new jv(b+T/_*i.height/2,d+i.height):uv?P>=A?R=new jv(u+i.width,y-A*i.width/2):R=new jv(b+i.height/2*T/_,d):u>p&&d>v&&(P>=A?R=new jv(u,y-i.width/2*A):R=new jv(b-i.height/2*T/_,d)),R},mUt=function(i,s){let u={x:0,y:0};u.x=s.x+s.width/2,u.y=s.y+s.height/2;let d=Mqe(i,u);u.x=i.x+i.width/2,u.y=i.y+i.height/2;let p=Mqe(s,u);return{startPoint:d,endPoint:p}};const vUt=function(i,s,u,d){let p=0;for(let v of s){p=p+1;let b=v.wrap&&$s.wrap,y=bUt($s);d.db.getC4Type()==="C4Dynamic"&&(v.label.text=p+": "+v.label.text);let _=H4(v.label.text,y);$3("label",v,b,y,_),v.techn&&v.techn.text!==""&&(_=H4(v.techn.text,y),$3("techn",v,b,y,_)),v.descr&&v.descr.text!==""&&(_=H4(v.descr.text,y),$3("descr",v,b,y,_));let A=u(v.from),P=u(v.to),R=mUt(A,P);v.startPoint=R.startPoint,v.endPoint=R.endPoint}J4.drawRels(i,s,$s)};function Dqe(i,s,u,d,p){let v=new _qe(p);v.data.widthLimit=u.data.widthLimit/Math.min(Hbe,d.length);for(let[b,y]of d.entries()){let T=0;y.image={width:0,height:0,Y:0},y.sprite&&(y.image.width=48,y.image.height=48,y.image.Y=T,T=y.image.Y+y.image.height);let _=y.wrap&&$s.wrap,A=DQ($s);if(A.fontSize=A.fontSize+2,A.fontWeight="bold",$3("label",y,_,A,v.data.widthLimit),y.label.Y=T+8,T=y.label.Y+y.label.height,y.type&&y.type.text!==""){y.type.text="["+y.type.text+"]";let j=DQ($s);$3("type",y,_,j,v.data.widthLimit),y.type.Y=T+5,T=y.type.Y+y.type.height}if(y.descr&&y.descr.text!==""){let j=DQ($s);j.fontSize=j.fontSize-2,$3("descr",y,_,j,v.data.widthLimit),y.descr.Y=T+20,T=y.descr.Y+y.descr.height}if(b==0||b%Hbe===0){let j=u.data.startx+$s.diagramMarginX,K=u.data.stopy+$s.diagramMarginY+T;v.setData(j,j,K,K)}else{let j=v.data.stopx!==v.data.startx?v.data.stopx+$s.diagramMarginX:v.data.startx,K=v.data.starty;v.setData(j,j,K,K)}v.name=y.alias;let P=p.db.getC4ShapeArray(y.alias),R=p.db.getC4ShapeKeys(y.alias);R.length>0&&Lqe(v,i,P,R),s=y.alias;let F=p.db.getBoundarys(s);F.length>0&&Dqe(i,s,v,F,p),y.alias!=="global"&&Aqe(i,y,v),u.data.stopy=Math.max(v.data.stopy+$s.c4ShapeMargin,u.data.stopy),u.data.stopx=Math.max(v.data.stopx+$s.c4ShapeMargin,u.data.stopx),LQ=Math.max(LQ,u.data.stopx),MQ=Math.max(MQ,u.data.stopy)}}const Iqe={drawPersonOrSystemArray:Lqe,drawBoundary:Aqe,setConf:Vbe,draw:function(i,s,u,d){$s=qt().c4;const p=qt().securityLevel;let v;p==="sandbox"&&(v=Ir("#i"+s));const b=Ir(p==="sandbox"?v.nodes()[0].contentDocument.body:"body");let y=d.db;d.db.setWrap($s.wrap),Sqe=y.getC4ShapeInRow(),Hbe=y.getC4BoundaryInRow(),Xe.debug(`C:${JSON.stringify($s,null,2)}`);const T=p==="sandbox"?b.select(`[id="${s}"]`):Ir(`[id="${s}"]`);J4.insertComputerIcon(T),J4.insertDatabaseIcon(T),J4.insertClockIcon(T);let _=new _qe(d);_.setData($s.diagramMarginX,$s.diagramMarginX,$s.diagramMarginY,$s.diagramMarginY),_.data.widthLimit=screen.availWidth,LQ=$s.diagramMarginX,MQ=$s.diagramMarginY;const A=d.db.getTitle();let P=d.db.getBoundarys("");Dqe(T,"",_,P,d),J4.insertArrowHead(T),J4.insertArrowEnd(T),J4.insertArrowCrossHead(T),J4.insertArrowFilledHead(T),vUt(T,d.db.getRels(),d.db.getC4Shape,d),_.data.stopx=LQ,_.data.stopy=MQ;const R=_.data;let j=R.stopy-R.starty+2*$s.diagramMarginY;const ee=R.stopx-R.startx+2*$s.diagramMarginX;A&&T.append("text").text(A).attr("x",(R.stopx-R.startx)/2-4*$s.diagramMarginX).attr("y",R.starty+$s.diagramMarginY),Ng(T,j,ee,$s.useMaxWidth);const ie=A?60:0;T.attr("viewBox",R.startx-$s.diagramMarginX+" -"+($s.diagramMarginY+ie)+" "+ee+" "+(j+ie)),Xe.debug("models:",R)}},wUt=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:DVt,db:$be,renderer:Iqe,styles:i=>`.person { stroke: ${i.personBorder}; fill: ${i.personBkg}; } @@ -361,13 +361,13 @@ Expecting `+Ba.join(", ")+", got '"+(this.terminals_[Xc]||Xc)+"'":ga="Parse erro Expecting `+l5.join(", ")+", got '"+(this.terminals_[y1]||y1)+"'":X3="Parse error on line "+(z0+1)+": Unexpected "+(y1==$9?"end of input":"'"+(this.terminals_[y1]||y1)+"'"),this.parseError(X3,{text:Eh.match,token:this.terminals_[y1]||y1,line:Eh.yylineno,loc:z9,expected:l5})}if(ld[0]instanceof Array&&ld.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ud+", token: "+y1);switch(ld[0]){case 1:Qa.push(y1),Nu.push(Eh.yytext),Ot.push(Eh.yylloc),Qa.push(ld[1]),y1=null,Bp=Eh.yyleng,Kt=Eh.yytext,z0=Eh.yylineno,z9=Eh.yylloc;break;case 2:if(G2=this.productions_[ld[1]][1],Vv.$=Nu[Nu.length-G2],Vv._$={first_line:Ot[Ot.length-(G2||1)].first_line,last_line:Ot[Ot.length-1].last_line,first_column:Ot[Ot.length-(G2||1)].first_column,last_column:Ot[Ot.length-1].last_column},mm&&(Vv._$.range=[Ot[Ot.length-(G2||1)].range[0],Ot[Ot.length-1].range[1]]),q9=this.performAction.apply(Vv,[Kt,Bp,z0,zg.yy,ld[1],Nu,Ot].concat(c5)),typeof q9<"u")return q9;G2&&(Qa=Qa.slice(0,-1*G2*2),Nu=Nu.slice(0,-1*G2),Ot=Ot.slice(0,-1*G2)),Qa.push(this.productions_[ld[1]][0]),Nu.push(Vv.$),Ot.push(Vv._$),X7=W3[Qa[Qa.length-2]][Qa[Qa.length-1]],Qa.push(X7);break;case 3:return!0}}return!0}},Yh=function(){var $0={EOF:1,parseError:function(Bs,Qa){if(this.yy.parser)this.yy.parser.parseError(Bs,Qa);else throw new Error(Bs)},setInput:function(Wi,Bs){return this.yy=Bs||this.yy||{},this._input=Wi,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Wi=this._input[0];this.yytext+=Wi,this.yyleng++,this.offset++,this.match+=Wi,this.matched+=Wi;var Bs=Wi.match(/(?:\r\n?|\n).*/g);return Bs?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Wi},unput:function(Wi){var Bs=Wi.length,Qa=Wi.split(/(?:\r\n?|\n)/g);this._input=Wi+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Bs),this.offset-=Bs;var Bi=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Qa.length-1&&(this.yylineno-=Qa.length-1);var Nu=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Qa?(Qa.length===Bi.length?this.yylloc.first_column:0)+Bi[Bi.length-Qa.length].length-Qa[0].length:this.yylloc.first_column-Bs},this.options.ranges&&(this.yylloc.range=[Nu[0],Nu[0]+this.yyleng-Bs]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Wi){this.unput(this.match.slice(Wi))},pastInput:function(){var Wi=this.matched.substr(0,this.matched.length-this.match.length);return(Wi.length>20?"...":"")+Wi.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Wi=this.match;return Wi.length<20&&(Wi+=this._input.substr(0,20-Wi.length)),(Wi.substr(0,20)+(Wi.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Wi=this.pastInput(),Bs=new Array(Wi.length+1).join("-");return Wi+this.upcomingInput()+` `+Bs+"^"},test_match:function(Wi,Bs){var Qa,Bi,Nu;if(this.options.backtrack_lexer&&(Nu={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Nu.yylloc.range=this.yylloc.range.slice(0))),Bi=Wi[0].match(/(?:\r\n?|\n).*/g),Bi&&(this.yylineno+=Bi.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Bi?Bi[Bi.length-1].length-Bi[Bi.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Wi[0].length},this.yytext+=Wi[0],this.match+=Wi[0],this.matches=Wi,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Wi[0].length),this.matched+=Wi[0],Qa=this.performAction.call(this,this.yy,this,Bs,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Qa)return Qa;if(this._backtrack){for(var Ot in Nu)this[Ot]=Nu[Ot];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Wi,Bs,Qa,Bi;this._more||(this.yytext="",this.match="");for(var Nu=this._currentRules(),Ot=0;OtBs[0].length)){if(Bs=Qa,Bi=Ot,this.options.backtrack_lexer){if(Wi=this.test_match(Qa,Nu[Ot]),Wi!==!1)return Wi;if(this._backtrack){Bs=!1;continue}else return!1}else if(!this.options.flex)break}return Bs?(Wi=this.test_match(Bs,Nu[Bi]),Wi!==!1?Wi:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Bs=this.next();return Bs||this.lex()},begin:function(Bs){this.conditionStack.push(Bs)},popState:function(){var Bs=this.conditionStack.length-1;return Bs>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Bs){return Bs=this.conditionStack.length-1-Math.abs(Bs||0),Bs>=0?this.conditionStack[Bs]:"INITIAL"},pushState:function(Bs){this.begin(Bs)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(Bs,Qa,Bi,Nu){switch(Bi){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:this.begin("callbackname");break;case 8:this.popState();break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 92;case 11:this.popState();break;case 12:return 93;case 13:return"MD_STR";case 14:this.popState();break;case 15:this.begin("md_string");break;case 16:return"STR";case 17:this.popState();break;case 18:this.pushState("string");break;case 19:return 81;case 20:return 99;case 21:return 82;case 22:return 101;case 23:return 83;case 24:return 84;case 25:return 94;case 26:this.begin("click");break;case 27:this.popState();break;case 28:return 85;case 29:return Bs.lex.firstGraph()&&this.begin("dir"),12;case 30:return Bs.lex.firstGraph()&&this.begin("dir"),12;case 31:return Bs.lex.firstGraph()&&this.begin("dir"),12;case 32:return 27;case 33:return 32;case 34:return 95;case 35:return 95;case 36:return 95;case 37:return 95;case 38:return this.popState(),13;case 39:return this.popState(),14;case 40:return this.popState(),14;case 41:return this.popState(),14;case 42:return this.popState(),14;case 43:return this.popState(),14;case 44:return this.popState(),14;case 45:return this.popState(),14;case 46:return this.popState(),14;case 47:return this.popState(),14;case 48:return this.popState(),14;case 49:return 118;case 50:return 119;case 51:return 120;case 52:return 121;case 53:return 102;case 54:return 108;case 55:return 44;case 56:return 58;case 57:return 42;case 58:return 8;case 59:return 103;case 60:return 112;case 61:return this.popState(),75;case 62:return this.pushState("edgeText"),73;case 63:return 116;case 64:return this.popState(),75;case 65:return this.pushState("thickEdgeText"),73;case 66:return 116;case 67:return this.popState(),75;case 68:return this.pushState("dottedEdgeText"),73;case 69:return 116;case 70:return 75;case 71:return this.popState(),51;case 72:return"TEXT";case 73:return this.pushState("ellipseText"),50;case 74:return this.popState(),53;case 75:return this.pushState("text"),52;case 76:return this.popState(),55;case 77:return this.pushState("text"),54;case 78:return 56;case 79:return this.pushState("text"),65;case 80:return this.popState(),62;case 81:return this.pushState("text"),61;case 82:return this.popState(),47;case 83:return this.pushState("text"),46;case 84:return this.popState(),67;case 85:return this.popState(),69;case 86:return 114;case 87:return this.pushState("trapText"),66;case 88:return this.pushState("trapText"),68;case 89:return 115;case 90:return 65;case 91:return 87;case 92:return"SEP";case 93:return 86;case 94:return 112;case 95:return 108;case 96:return 42;case 97:return 106;case 98:return 111;case 99:return 113;case 100:return this.popState(),60;case 101:return this.pushState("text"),60;case 102:return this.popState(),49;case 103:return this.pushState("text"),48;case 104:return this.popState(),31;case 105:return this.pushState("text"),29;case 106:return this.popState(),64;case 107:return this.pushState("text"),63;case 108:return"TEXT";case 109:return"QUOTE";case 110:return 9;case 111:return 10;case 112:return 11}},rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{callbackargs:{rules:[11,12,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},callbackname:{rules:[8,9,10,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},href:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},click:{rules:[15,18,27,28,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dottedEdgeText:{rules:[15,18,67,69,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},thickEdgeText:{rules:[15,18,64,66,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},edgeText:{rules:[15,18,61,63,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},trapText:{rules:[15,18,70,73,75,77,81,83,84,85,86,87,88,101,103,105,107],inclusive:!1},ellipseText:{rules:[15,18,70,71,72,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},text:{rules:[15,18,70,73,74,75,76,77,80,81,82,83,87,88,100,101,102,103,104,105,106,107,108],inclusive:!1},vertex:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dir:{rules:[15,18,38,39,40,41,42,43,44,45,46,47,48,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr_multiline:{rules:[5,6,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr:{rules:[3,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_title:{rules:[1,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},md_string:{rules:[13,14,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},string:{rules:[15,16,17,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},INITIAL:{rules:[0,2,4,7,15,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,73,75,77,78,79,81,83,87,88,89,90,91,92,93,94,95,96,97,98,99,101,103,105,107,109,110,111,112],inclusive:!0}}};return $0}();Dl.lexer=Yh;function w1(){this.yy={}}return w1.prototype=Dl,Dl.Parser=w1,new w1}();Ube.parser=Ube;const Gbe=Ube,yUt="flowchart-";let Oqe=0,BD=qt(),oh={},z3=[],FD={},R7=[],IQ={},OQ={},NQ=0,Kbe=!0,$v,PQ,BQ=[];const FQ=i=>li.sanitizeText(i,BD),mR=function(i){const s=Object.keys(oh);for(const u of s)if(oh[u].id===i)return oh[u].domId;return i},Nqe=function(i,s,u,d,p,v,b={}){let y,T=i;T!==void 0&&T.trim().length!==0&&(oh[T]===void 0&&(oh[T]={id:T,labelType:"text",domId:yUt+T+"-"+Oqe,styles:[],classes:[]}),Oqe++,s!==void 0?(BD=qt(),y=FQ(s.text.trim()),oh[T].labelType=s.type,y[0]==='"'&&y[y.length-1]==='"'&&(y=y.substring(1,y.length-1)),oh[T].text=y):oh[T].text===void 0&&(oh[T].text=i),u!==void 0&&(oh[T].type=u),d!=null&&d.forEach(function(_){oh[T].styles.push(_)}),p!=null&&p.forEach(function(_){oh[T].classes.push(_)}),v!==void 0&&(oh[T].dir=v),oh[T].props===void 0?oh[T].props=b:b!==void 0&&Object.assign(oh[T].props,b))},Pqe=function(i,s,u){const v={start:i,end:s,type:void 0,text:"",labelType:"text"};Xe.info("abc78 Got edge...",v);const b=u.text;if(b!==void 0&&(v.text=FQ(b.text.trim()),v.text[0]==='"'&&v.text[v.text.length-1]==='"'&&(v.text=v.text.substring(1,v.text.length-1)),v.labelType=b.type),u!==void 0&&(v.type=u.type,v.stroke=u.stroke,v.length=u.length),(v==null?void 0:v.length)>10&&(v.length=10),z3.length<(BD.maxEdges??500))Xe.info("abc78 pushing edge..."),z3.push(v);else throw new Error(`Edge limit exceeded. ${z3.length} edges found, but the limit is ${BD.maxEdges}. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Bs=this.next();return Bs||this.lex()},begin:function(Bs){this.conditionStack.push(Bs)},popState:function(){var Bs=this.conditionStack.length-1;return Bs>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Bs){return Bs=this.conditionStack.length-1-Math.abs(Bs||0),Bs>=0?this.conditionStack[Bs]:"INITIAL"},pushState:function(Bs){this.begin(Bs)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(Bs,Qa,Bi,Nu){switch(Bi){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:this.begin("callbackname");break;case 8:this.popState();break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 92;case 11:this.popState();break;case 12:return 93;case 13:return"MD_STR";case 14:this.popState();break;case 15:this.begin("md_string");break;case 16:return"STR";case 17:this.popState();break;case 18:this.pushState("string");break;case 19:return 81;case 20:return 99;case 21:return 82;case 22:return 101;case 23:return 83;case 24:return 84;case 25:return 94;case 26:this.begin("click");break;case 27:this.popState();break;case 28:return 85;case 29:return Bs.lex.firstGraph()&&this.begin("dir"),12;case 30:return Bs.lex.firstGraph()&&this.begin("dir"),12;case 31:return Bs.lex.firstGraph()&&this.begin("dir"),12;case 32:return 27;case 33:return 32;case 34:return 95;case 35:return 95;case 36:return 95;case 37:return 95;case 38:return this.popState(),13;case 39:return this.popState(),14;case 40:return this.popState(),14;case 41:return this.popState(),14;case 42:return this.popState(),14;case 43:return this.popState(),14;case 44:return this.popState(),14;case 45:return this.popState(),14;case 46:return this.popState(),14;case 47:return this.popState(),14;case 48:return this.popState(),14;case 49:return 118;case 50:return 119;case 51:return 120;case 52:return 121;case 53:return 102;case 54:return 108;case 55:return 44;case 56:return 58;case 57:return 42;case 58:return 8;case 59:return 103;case 60:return 112;case 61:return this.popState(),75;case 62:return this.pushState("edgeText"),73;case 63:return 116;case 64:return this.popState(),75;case 65:return this.pushState("thickEdgeText"),73;case 66:return 116;case 67:return this.popState(),75;case 68:return this.pushState("dottedEdgeText"),73;case 69:return 116;case 70:return 75;case 71:return this.popState(),51;case 72:return"TEXT";case 73:return this.pushState("ellipseText"),50;case 74:return this.popState(),53;case 75:return this.pushState("text"),52;case 76:return this.popState(),55;case 77:return this.pushState("text"),54;case 78:return 56;case 79:return this.pushState("text"),65;case 80:return this.popState(),62;case 81:return this.pushState("text"),61;case 82:return this.popState(),47;case 83:return this.pushState("text"),46;case 84:return this.popState(),67;case 85:return this.popState(),69;case 86:return 114;case 87:return this.pushState("trapText"),66;case 88:return this.pushState("trapText"),68;case 89:return 115;case 90:return 65;case 91:return 87;case 92:return"SEP";case 93:return 86;case 94:return 112;case 95:return 108;case 96:return 42;case 97:return 106;case 98:return 111;case 99:return 113;case 100:return this.popState(),60;case 101:return this.pushState("text"),60;case 102:return this.popState(),49;case 103:return this.pushState("text"),48;case 104:return this.popState(),31;case 105:return this.pushState("text"),29;case 106:return this.popState(),64;case 107:return this.pushState("text"),63;case 108:return"TEXT";case 109:return"QUOTE";case 110:return 9;case 111:return 10;case 112:return 11}},rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{callbackargs:{rules:[11,12,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},callbackname:{rules:[8,9,10,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},href:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},click:{rules:[15,18,27,28,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dottedEdgeText:{rules:[15,18,67,69,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},thickEdgeText:{rules:[15,18,64,66,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},edgeText:{rules:[15,18,61,63,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},trapText:{rules:[15,18,70,73,75,77,81,83,84,85,86,87,88,101,103,105,107],inclusive:!1},ellipseText:{rules:[15,18,70,71,72,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},text:{rules:[15,18,70,73,74,75,76,77,80,81,82,83,87,88,100,101,102,103,104,105,106,107,108],inclusive:!1},vertex:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dir:{rules:[15,18,38,39,40,41,42,43,44,45,46,47,48,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr_multiline:{rules:[5,6,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr:{rules:[3,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_title:{rules:[1,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},md_string:{rules:[13,14,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},string:{rules:[15,16,17,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},INITIAL:{rules:[0,2,4,7,15,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,73,75,77,78,79,81,83,87,88,89,90,91,92,93,94,95,96,97,98,99,101,103,105,107,109,110,111,112],inclusive:!0}}};return $0}();Dl.lexer=Yh;function w1(){this.yy={}}return w1.prototype=Dl,Dl.Parser=w1,new w1}();Ube.parser=Ube;const Gbe=Ube,yUt="flowchart-";let Oqe=0,BD=qt(),oh={},z3=[],FD={},R7=[],IQ={},OQ={},NQ=0,Kbe=!0,$v,PQ,BQ=[];const FQ=i=>ci.sanitizeText(i,BD),mR=function(i){const s=Object.keys(oh);for(const u of s)if(oh[u].id===i)return oh[u].domId;return i},Nqe=function(i,s,u,d,p,v,b={}){let y,T=i;T!==void 0&&T.trim().length!==0&&(oh[T]===void 0&&(oh[T]={id:T,labelType:"text",domId:yUt+T+"-"+Oqe,styles:[],classes:[]}),Oqe++,s!==void 0?(BD=qt(),y=FQ(s.text.trim()),oh[T].labelType=s.type,y[0]==='"'&&y[y.length-1]==='"'&&(y=y.substring(1,y.length-1)),oh[T].text=y):oh[T].text===void 0&&(oh[T].text=i),u!==void 0&&(oh[T].type=u),d!=null&&d.forEach(function(_){oh[T].styles.push(_)}),p!=null&&p.forEach(function(_){oh[T].classes.push(_)}),v!==void 0&&(oh[T].dir=v),oh[T].props===void 0?oh[T].props=b:b!==void 0&&Object.assign(oh[T].props,b))},Pqe=function(i,s,u){const v={start:i,end:s,type:void 0,text:"",labelType:"text"};Xe.info("abc78 Got edge...",v);const b=u.text;if(b!==void 0&&(v.text=FQ(b.text.trim()),v.text[0]==='"'&&v.text[v.text.length-1]==='"'&&(v.text=v.text.substring(1,v.text.length-1)),v.labelType=b.type),u!==void 0&&(v.type=u.type,v.stroke=u.stroke,v.length=u.length),(v==null?void 0:v.length)>10&&(v.length=10),z3.length<(BD.maxEdges??500))Xe.info("abc78 pushing edge..."),z3.push(v);else throw new Error(`Edge limit exceeded. ${z3.length} edges found, but the limit is ${BD.maxEdges}. Initialize mermaid with maxEdges set to a higher number to allow more edges. You cannot set this config via configuration inside the diagram as it is a secure config. You have to call mermaid.initialize.`)},Bqe=function(i,s,u){Xe.info("addLink (abc78)",i,s,u);let d,p;for(d=0;d=z3.length)throw new Error(`The index ${u} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${z3.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);u==="default"?z3.defaultStyle=s:(Ao.isSubstringInArray("fill",s)===-1&&s.push("fill:none"),z3[u].style=s)})},jqe=function(i,s){i.split(",").forEach(function(u){FD[u]===void 0&&(FD[u]={id:u,styles:[],textStyles:[]}),s!=null&&s.forEach(function(d){if(d.match("color")){const p=d.replace("fill","bgFill").replace("color","fill");FD[u].textStyles.push(p)}FD[u].styles.push(d)})})},$qe=function(i){$v=i,$v.match(/.*/)&&($v="LR"),$v.match(/.*v/)&&($v="TB"),$v==="TD"&&($v="TB")},RQ=function(i,s){i.split(",").forEach(function(u){let d=u;oh[d]!==void 0&&oh[d].classes.push(s),IQ[d]!==void 0&&IQ[d].classes.push(s)})},xUt=function(i,s){i.split(",").forEach(function(u){s!==void 0&&(OQ[PQ==="gen-1"?mR(u):u]=FQ(s))})},kUt=function(i,s,u){let d=mR(i);if(qt().securityLevel!=="loose"||s===void 0)return;let p=[];if(typeof u=="string"){p=u.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let v=0;v")),p.classed("hover",!0)}).on("mouseout",function(){s.transition().duration(500).style("opacity",0),Ir(this).classed("hover",!1)})};BQ.push(Yqe);const Xqe=function(i="gen-1"){oh={},FD={},z3=[],BQ=[Yqe],R7=[],IQ={},NQ=0,OQ={},Kbe=!0,PQ=i,BD=qt(),Pg()},Qqe=i=>{PQ=i||"gen-2"},Jqe=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},Zqe=function(i,s,u){let d=i.text.trim(),p=u.text;i===u&&u.text.match(/\s/)&&(d=void 0);function v(A){const P={boolean:{},number:{},string:{}},R=[];let F;return{nodeList:A.filter(function(K){const ee=typeof K;return K.stmt&&K.stmt==="dir"?(F=K.value,!1):K.trim()===""?!1:ee in P?P[ee].hasOwnProperty(K)?!1:P[ee][K]=!0:R.includes(K)?!1:R.push(K)}),dir:F}}let b=[];const{nodeList:y,dir:T}=v(b.concat.apply(b,s));if(b=y,PQ==="gen-1")for(let A=0;A2e3)return;if(eHe[vR]=s,R7[s].id===i)return{result:!0,count:0};let d=0,p=1;for(;d=0){const b=tHe(i,v);if(b.result)return{result:!0,count:p+b.count};p=p+b.count}d=d+1}return{result:!1,count:p}},nHe=function(i){return eHe[i]},rHe=function(){vR=-1,R7.length>0&&tHe("none",R7.length-1)},iHe=function(){return R7},sHe=()=>Kbe?(Kbe=!1,!0):!1,TUt=i=>{let s=i.trim(),u="arrow_open";switch(s[0]){case"<":u="arrow_point",s=s.slice(1);break;case"x":u="arrow_cross",s=s.slice(1);break;case"o":u="arrow_circle",s=s.slice(1);break}let d="normal";return s.includes("=")&&(d="thick"),s.includes(".")&&(d="dotted"),{type:u,stroke:d}},CUt=(i,s)=>{const u=s.length;let d=0;for(let p=0;p{const s=i.trim();let u=s.slice(0,-1),d="arrow_open";switch(s.slice(-1)){case"x":d="arrow_cross",s[0]==="x"&&(d="double_"+d,u=u.slice(1));break;case">":d="arrow_point",s[0]==="<"&&(d="double_"+d,u=u.slice(1));break;case"o":d="arrow_circle",s[0]==="o"&&(d="double_"+d,u=u.slice(1));break}let p="normal",v=u.length-1;u[0]==="="&&(p="thick"),u[0]==="~"&&(p="invisible");let b=CUt(".",u);return b&&(p="dotted",v=b),{type:d,stroke:p,length:v}},aHe=(i,s)=>{const u=SUt(i);let d;if(s){if(d=TUt(s),d.stroke!==u.stroke)return{type:"INVALID",stroke:"INVALID"};if(d.type==="arrow_open")d.type=u.type;else{if(d.type!==u.type)return{type:"INVALID",stroke:"INVALID"};d.type="double_"+d.type}return d.type==="double_arrow"&&(d.type="double_arrow_point"),d.length=u.length,d}return u},oHe=(i,s)=>{let u=!1;return i.forEach(d=>{d.nodes.indexOf(s)>=0&&(u=!0)}),u},cHe=(i,s)=>{const u=[];return i.nodes.forEach((d,p)=>{oHe(s,d)||u.push(i.nodes[p])}),{nodes:u}},uHe={firstGraph:sHe},HC={defaultConfig:()=>Zje.flowchart,setAccTitle:Bg,getAccTitle:Cp,getAccDescription:_p,setAccDescription:Sp,addVertex:Nqe,lookUpDomId:mR,addLink:Bqe,updateLinkInterpolate:Fqe,updateLink:Rqe,addClass:jqe,setDirection:$qe,setClass:RQ,setTooltip:xUt,getTooltip:qqe,setClickEvent:Hqe,setLink:zqe,bindFunctions:Vqe,getDirection:Uqe,getVertices:Gqe,getEdges:Kqe,getClasses:Wqe,clear:Xqe,setGen:Qqe,defaultStyle:Jqe,addSubGraph:Zqe,getDepthFirstPos:nHe,indexNodes:rHe,getSubGraphs:iHe,destructLink:aHe,lex:uHe,exists:oHe,makeUniq:cHe,setDiagramTitle:cm,getDiagramTitle:Ap},_Ut=Object.freeze(Object.defineProperty({__proto__:null,addClass:jqe,addLink:Bqe,addSingleLink:Pqe,addSubGraph:Zqe,addVertex:Nqe,bindFunctions:Vqe,clear:Xqe,default:HC,defaultStyle:Jqe,destructLink:aHe,firstGraph:sHe,getClasses:Wqe,getDepthFirstPos:nHe,getDirection:Uqe,getEdges:Kqe,getSubGraphs:iHe,getTooltip:qqe,getVertices:Gqe,indexNodes:rHe,lex:uHe,lookUpDomId:mR,setClass:RQ,setClickEvent:Hqe,setDirection:$qe,setGen:Qqe,setLink:zqe,updateLink:Rqe,updateLinkInterpolate:Fqe},Symbol.toStringTag,{value:"Module"}));var AUt="[object Symbol]";function VC(i){return typeof i=="symbol"||q4(i)&&AC(i)==AUt}function RD(i,s){for(var u=-1,d=i==null?0:i.length,p=Array(d);++u-1}function fm(i){return w9(i)?aje(i):l$e(i)}var GUt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,KUt=/^\w*$/;function Wbe(i,s){if(D0(i))return!1;var u=typeof i;return u=="number"||u=="symbol"||u=="boolean"||i==null||VC(i)?!0:KUt.test(i)||!GUt.test(i)||s!=null&&i in Object(s)}var WUt=500;function YUt(i){var s=bD(i,function(d){return u.size===WUt&&u.clear(),d}),u=s.cache;return s}var XUt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,QUt=/\\(\\)?/g,JUt=YUt(function(i){var s=[];return i.charCodeAt(0)===46&&s.push(""),i.replace(XUt,function(u,d,p,v){s.push(p?v.replace(QUt,"$1"):d||u)}),s});const ZUt=JUt;function mHe(i){return i==null?"":fHe(i)}function $Q(i,s){return D0(i)?i:Wbe(i,s)?[i]:ZUt(mHe(i))}var eGt=1/0;function wR(i){if(typeof i=="string"||VC(i))return i;var s=i+"";return s=="0"&&1/i==-eGt?"-0":s}function zQ(i,s){s=$Q(s,i);for(var u=0,d=s.length;i!=null&&u0&&u(y)?s>1?qQ(y,s-1,u,d,p):Ybe(p,y):d||(p[p.length]=y)}return p}function jD(i){var s=i==null?0:i.length;return s?qQ(i,1):[]}function rGt(i){return lje(uje(i,void 0,jD),i+"")}function iGt(i,s,u,d){var p=-1,v=i==null?0:i.length;for(d&&v&&(u=i[++p]);++py))return!1;var _=v.get(i),A=v.get(s);if(_&&A)return _==s&&A==i;var P=-1,R=!0,F=u&DKt?new xR:void 0;for(v.set(i,s),v.set(s,i);++P2?s[2]:void 0;for(p&&QF(s[0],s[1],p)&&(d=1);++u-1?p[v?s[b]:b]:void 0}}var yWt=Math.max;function xWt(i,s,u){var d=i==null?0:i.length;if(!d)return-1;var p=u==null?0:$Ut(u);return p<0&&(p=yWt(d+p,0)),bHe(i,I9(s),p)}var kWt=wWt(xWt);const rme=kWt;function VHe(i,s){var u=-1,d=w9(i)?Array(i.length):[];return VQ(i,function(p,v,b){d[++u]=s(p,v,b)}),d}function P0(i,s){var u=D0(i)?RD:VHe;return u(i,I9(s))}function EWt(i,s){return i==null?i:b2e(i,nme(s),IC)}function TWt(i,s){return i&&tme(i,nme(s))}function CWt(i,s){return i>s}var SWt=Object.prototype,_Wt=SWt.hasOwnProperty;function AWt(i,s){return i!=null&&_Wt.call(i,s)}function Lo(i,s){return i!=null&&$He(i,s,AWt)}function LWt(i,s){return RD(s,function(u){return i[u]})}function $7(i){return i==null?[]:LWt(i,fm(i))}function Qf(i){return i===void 0}function UHe(i,s){return is||v&&b&&T&&!y&&!_||d&&b&&T||!u&&T||!p)return 1;if(!d&&!v&&!_&&i=y)return T;var _=u[d];return T*(_=="desc"?-1:1)}}return i.index-s.index}function PWt(i,s,u){s.length?s=RD(s,function(v){return D0(v)?function(b){return zQ(b,v.length===1?v[0]:v)}:v}):s=[OC];var d=-1;s=RD(s,NX(I9));var p=VHe(i,function(v,b,y){var T=RD(s,function(_){return _(v)});return{criteria:T,index:++d,value:v}});return IWt(p,function(v,b){return NWt(v,b,u)})}function BWt(i,s){return DWt(i,s,function(u,d){return zHe(i,d)})}var FWt=rGt(function(i,s){return i==null?{}:BWt(i,s)});const ER=FWt;var RWt=Math.ceil,jWt=Math.max;function $Wt(i,s,u,d){for(var p=-1,v=jWt(RWt((s-i)/(u||1)),0),b=Array(v);v--;)b[d?v:++p]=i,i+=u;return b}function zWt(i){return function(s,u,d){return d&&typeof d!="number"&&QF(s,u,d)&&(u=d=void 0),s=jQ(s),u===void 0?(u=s,s=0):u=jQ(u),d=d===void 0?s1&&QF(i,s[0],s[1])?s=[]:u>2&&QF(s[0],s[1],s[2])&&(s=[s[0]]),PWt(i,qQ(s,1),[])});const CR=VWt;var UWt=1/0,GWt=CD&&1/Jbe(new CD([,-0]))[1]==UWt?function(i){return new CD(i)}:zUt;const KWt=GWt;var WWt=200;function YWt(i,s,u){var d=-1,p=UUt,v=i.length,b=!0,y=[],T=y;if(u)b=!1,p=mWt;else if(v>=WWt){var _=s?null:KWt(i);if(_)return Jbe(_);b=!1,p=IHe,T=new xR}else T=s?[]:y;e:for(;++d1?p.setNode(v,u):p.setNode(v)}),this}setNode(s,u){return Lo(this._nodes,s)?(arguments.length>1&&(this._nodes[s]=u),this):(this._nodes[s]=arguments.length>1?u:this._defaultNodeLabelFn(s),this._isCompound&&(this._parent[s]=KC,this._children[s]={},this._children[KC][s]=!0),this._in[s]={},this._preds[s]={},this._out[s]={},this._sucs[s]={},++this._nodeCount,this)}node(s){return this._nodes[s]}hasNode(s){return Lo(this._nodes,s)}removeNode(s){var u=this;if(Lo(this._nodes,s)){var d=function(p){u.removeEdge(u._edgeObjs[p])};delete this._nodes[s],this._isCompound&&(this._removeFromParentsChildList(s),delete this._parent[s],Ar(this.children(s),function(p){u.setParent(p)}),delete this._children[s]),Ar(fm(this._in[s]),d),delete this._in[s],delete this._preds[s],Ar(fm(this._out[s]),d),delete this._out[s],delete this._sucs[s],--this._nodeCount}return this}setParent(s,u){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(Qf(u))u=KC;else{u+="";for(var d=u;!Qf(d);d=this.parent(d))if(d===s)throw new Error("Setting "+u+" as parent of "+s+" would create a cycle");this.setNode(u)}return this.setNode(s),this._removeFromParentsChildList(s),this._parent[s]=u,this._children[u][s]=!0,this}_removeFromParentsChildList(s){delete this._children[this._parent[s]][s]}parent(s){if(this._isCompound){var u=this._parent[s];if(u!==KC)return u}}children(s){if(Qf(s)&&(s=KC),this._isCompound){var u=this._children[s];if(u)return fm(u)}else{if(s===KC)return this.nodes();if(this.hasNode(s))return[]}}predecessors(s){var u=this._preds[s];if(u)return fm(u)}successors(s){var u=this._sucs[s];if(u)return fm(u)}neighbors(s){var u=this.predecessors(s);if(u)return QWt(u,this.successors(s))}isLeaf(s){var u;return this.isDirected()?u=this.successors(s):u=this.neighbors(s),u.length===0}filterNodes(s){var u=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});u.setGraph(this.graph());var d=this;Ar(this._nodes,function(b,y){s(y)&&u.setNode(y,b)}),Ar(this._edgeObjs,function(b){u.hasNode(b.v)&&u.hasNode(b.w)&&u.setEdge(b,d.edge(b))});var p={};function v(b){var y=d.parent(b);return y===void 0||u.hasNode(y)?(p[b]=y,y):y in p?p[y]:v(y)}return this._isCompound&&Ar(u.nodes(),function(b){u.setParent(b,v(b))}),u}setDefaultEdgeLabel(s){return gD(s)||(s=yD(s)),this._defaultEdgeLabelFn=s,this}edgeCount(){return this._edgeCount}edges(){return $7(this._edgeObjs)}setPath(s,u){var d=this,p=arguments;return TR(s,function(v,b){return p.length>1?d.setEdge(v,b,u):d.setEdge(v,b),b}),this}setEdge(){var s,u,d,p,v=!1,b=arguments[0];typeof b=="object"&&b!==null&&"v"in b?(s=b.v,u=b.w,d=b.name,arguments.length===2&&(p=arguments[1],v=!0)):(s=b,u=arguments[1],d=arguments[3],arguments.length>2&&(p=arguments[2],v=!0)),s=""+s,u=""+u,Qf(d)||(d=""+d);var y=SR(this._isDirected,s,u,d);if(Lo(this._edgeLabels,y))return v&&(this._edgeLabels[y]=p),this;if(!Qf(d)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(s),this.setNode(u),this._edgeLabels[y]=v?p:this._defaultEdgeLabelFn(s,u,d);var T=nYt(this._isDirected,s,u,d);return s=T.v,u=T.w,Object.freeze(T),this._edgeObjs[y]=T,KHe(this._preds[u],s),KHe(this._sucs[s],u),this._in[u][y]=T,this._out[s][y]=T,this._edgeCount++,this}edge(s,u,d){var p=arguments.length===1?ame(this._isDirected,arguments[0]):SR(this._isDirected,s,u,d);return this._edgeLabels[p]}hasEdge(s,u,d){var p=arguments.length===1?ame(this._isDirected,arguments[0]):SR(this._isDirected,s,u,d);return Lo(this._edgeLabels,p)}removeEdge(s,u,d){var p=arguments.length===1?ame(this._isDirected,arguments[0]):SR(this._isDirected,s,u,d),v=this._edgeObjs[p];return v&&(s=v.v,u=v.w,delete this._edgeLabels[p],delete this._edgeObjs[p],WHe(this._preds[u],s),WHe(this._sucs[s],u),delete this._in[u][p],delete this._out[s][p],this._edgeCount--),this}inEdges(s,u){var d=this._in[s];if(d){var p=$7(d);return u?j7(p,function(v){return v.v===u}):p}}outEdges(s,u){var d=this._out[s];if(d){var p=$7(d);return u?j7(p,function(v){return v.w===u}):p}}nodeEdges(s,u){var d=this.inEdges(s,u);if(d)return d.concat(this.outEdges(s,u))}}B0.prototype._nodeCount=0,B0.prototype._edgeCount=0;function KHe(i,s){i[s]?i[s]++:i[s]=1}function WHe(i,s){--i[s]||delete i[s]}function SR(i,s,u,d){var p=""+s,v=""+u;if(!i&&p>v){var b=p;p=v,v=b}return p+GHe+v+GHe+(Qf(d)?tYt:d)}function nYt(i,s,u,d){var p=""+s,v=""+u;if(!i&&p>v){var b=p;p=v,v=b}var y={v:p,w:v};return d&&(y.name=d),y}function ame(i,s){return SR(i,s.v,s.w,s.name)}class rYt{constructor(){var s={};s._next=s._prev=s,this._sentinel=s}dequeue(){var s=this._sentinel,u=s._prev;if(u!==s)return YHe(u),u}enqueue(s){var u=this._sentinel;s._prev&&s._next&&YHe(s),s._next=u._next,u._next._prev=s,u._next=s,s._prev=u}toString(){for(var s=[],u=this._sentinel,d=u._prev;d!==u;)s.push(JSON.stringify(d,iYt)),d=d._prev;return"["+s.join(", ")+"]"}}function YHe(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function iYt(i,s){if(i!=="_next"&&i!=="_prev")return s}var sYt=yD(1);function aYt(i,s){if(i.nodeCount()<=1)return[];var u=cYt(i,s||sYt),d=oYt(u.graph,u.buckets,u.zeroIdx);return jD(P0(d,function(p){return i.outEdges(p.v,p.w)}))}function oYt(i,s,u){for(var d=[],p=s[s.length-1],v=s[0],b;i.nodeCount();){for(;b=v.dequeue();)ome(i,s,u,b);for(;b=p.dequeue();)ome(i,s,u,b);if(i.nodeCount()){for(var y=s.length-2;y>0;--y)if(b=s[y].dequeue(),b){d=d.concat(ome(i,s,u,b,!0));break}}}return d}function ome(i,s,u,d,p){var v=p?[]:void 0;return Ar(i.inEdges(d.v),function(b){var y=i.edge(b),T=i.node(b.v);p&&v.push({v:b.v,w:b.w}),T.out-=y,cme(s,u,T)}),Ar(i.outEdges(d.v),function(b){var y=i.edge(b),T=b.w,_=i.node(T);_.in-=y,cme(s,u,_)}),i.removeNode(d.v),v}function cYt(i,s){var u=new B0,d=0,p=0;Ar(i.nodes(),function(y){u.setNode(y,{v:y,in:0,out:0})}),Ar(i.edges(),function(y){var T=u.edge(y.v,y.w)||0,_=s(y),A=T+_;u.setEdge(y.v,y.w,A),p=Math.max(p,u.node(y.v).out+=_),d=Math.max(d,u.node(y.w).in+=_)});var v=GC(p+d+3).map(function(){return new rYt}),b=d+1;return Ar(u.nodes(),function(y){cme(v,b,u.node(y))}),{graph:u,buckets:v,zeroIdx:b}}function cme(i,s,u){u.out?u.in?i[u.out-u.in+s].enqueue(u):i[i.length-1].enqueue(u):i[0].enqueue(u)}function uYt(i){var s=i.graph().acyclicer==="greedy"?aYt(i,u(i)):lYt(i);Ar(s,function(d){var p=i.edge(d);i.removeEdge(d),p.forwardName=d.name,p.reversed=!0,i.setEdge(d.w,d.v,p,KQ("rev"))});function u(d){return function(p){return d.edge(p).weight}}}function lYt(i){var s=[],u={},d={};function p(v){Lo(d,v)||(d[v]=!0,u[v]=!0,Ar(i.outEdges(v),function(b){Lo(u,b.w)?s.push(b):p(b.w)}),delete u[v])}return Ar(i.nodes(),p),s}function hYt(i){Ar(i.edges(),function(s){var u=i.edge(s);if(u.reversed){i.removeEdge(s);var d=u.forwardName;delete u.reversed,delete u.forwardName,i.setEdge(s.w,s.v,u,d)}})}function zD(i,s,u,d){var p;do p=KQ(d);while(i.hasNode(p));return u.dummy=s,i.setNode(p,u),p}function fYt(i){var s=new B0().setGraph(i.graph());return Ar(i.nodes(),function(u){s.setNode(u,i.node(u))}),Ar(i.edges(),function(u){var d=s.edge(u.v,u.w)||{weight:0,minlen:1},p=i.edge(u);s.setEdge(u.v,u.w,{weight:d.weight+p.weight,minlen:Math.max(d.minlen,p.minlen)})}),s}function XHe(i){var s=new B0({multigraph:i.isMultigraph()}).setGraph(i.graph());return Ar(i.nodes(),function(u){i.children(u).length||s.setNode(u,i.node(u))}),Ar(i.edges(),function(u){s.setEdge(u,i.edge(u))}),s}function QHe(i,s){var u=i.x,d=i.y,p=s.x-u,v=s.y-d,b=i.width/2,y=i.height/2;if(!p&&!v)throw new Error("Not possible to find intersection inside of the rectangle");var T,_;return Math.abs(v)*b>Math.abs(p)*y?(v<0&&(y=-y),T=y*p/v,_=y):(p<0&&(b=-b),T=b,_=b*v/p),{x:u+T,y:d+_}}function WQ(i){var s=P0(GC(ZHe(i)+1),function(){return[]});return Ar(i.nodes(),function(u){var d=i.node(u),p=d.rank;Qf(p)||(s[p][d.order]=u)}),s}function dYt(i){var s=kR(P0(i.nodes(),function(u){return i.node(u).rank}));Ar(i.nodes(),function(u){var d=i.node(u);Lo(d,"rank")&&(d.rank-=s)})}function gYt(i){var s=kR(P0(i.nodes(),function(v){return i.node(v).rank})),u=[];Ar(i.nodes(),function(v){var b=i.node(v).rank-s;u[b]||(u[b]=[]),u[b].push(v)});var d=0,p=i.graph().nodeRankFactor;Ar(u,function(v,b){Qf(v)&&b%p!==0?--d:d&&Ar(v,function(y){i.node(y).rank+=d})})}function JHe(i,s,u,d){var p={width:0,height:0};return arguments.length>=4&&(p.rank=u,p.order=d),zD(i,"border",p,s)}function ZHe(i){return UC(P0(i.nodes(),function(s){var u=i.node(s).rank;if(!Qf(u))return u}))}function pYt(i,s){var u={lhs:[],rhs:[]};return Ar(i,function(d){s(d)?u.lhs.push(d):u.rhs.push(d)}),u}function bYt(i,s){var u=qHe();try{return s()}finally{console.log(i+" time: "+(qHe()-u)+"ms")}}function mYt(i,s){return s()}function vYt(i){function s(u){var d=i.children(u),p=i.node(u);if(d.length&&Ar(d,s),Lo(p,"minRank")){p.borderLeft=[],p.borderRight=[];for(var v=p.minRank,b=p.maxRank+1;vb.lim&&(y=b,T=!0);var _=j7(s.edges(),function(A){return T===hVe(i,i.node(A.v),y)&&T!==hVe(i,i.node(A.w),y)});return sme(_,function(A){return _R(s,A)})}function lVe(i,s,u,d){var p=u.v,v=u.w;i.removeEdge(p,v),i.setEdge(d.v,d.w,{}),dme(i),fme(i,s),OYt(i,s)}function OYt(i,s){var u=rme(i.nodes(),function(p){return!s.node(p).parent}),d=DYt(i,u);d=d.slice(1),Ar(d,function(p){var v=i.node(p).parent,b=s.edge(p,v),y=!1;b||(b=s.edge(v,p),y=!0),s.node(p).rank=s.node(v).rank+(y?b.minlen:-b.minlen)})}function NYt(i,s,u){return i.hasEdge(s,u)}function hVe(i,s,u){return u.low<=s.lim&&s.lim<=u.lim}function PYt(i){switch(i.graph().ranker){case"network-simplex":fVe(i);break;case"tight-tree":FYt(i);break;case"longest-path":BYt(i);break;default:fVe(i)}}var BYt=hme;function FYt(i){hme(i),rVe(i)}function fVe(i){WC(i)}function RYt(i){var s=zD(i,"root",{},"_root"),u=jYt(i),d=UC($7(u))-1,p=2*d+1;i.graph().nestingRoot=s,Ar(i.edges(),function(b){i.edge(b).minlen*=p});var v=$Yt(i)+1;Ar(i.children(),function(b){dVe(i,s,p,v,d,u,b)}),i.graph().nodeRankFactor=p}function dVe(i,s,u,d,p,v,b){var y=i.children(b);if(!y.length){b!==s&&i.setEdge(s,b,{weight:0,minlen:u});return}var T=JHe(i,"_bt"),_=JHe(i,"_bb"),A=i.node(b);i.setParent(T,b),A.borderTop=T,i.setParent(_,b),A.borderBottom=_,Ar(y,function(P){dVe(i,s,u,d,p,v,P);var R=i.node(P),F=R.borderTop?R.borderTop:P,j=R.borderBottom?R.borderBottom:P,K=R.borderTop?d:2*d,ee=F!==j?1:p-v[b]+1;i.setEdge(T,F,{weight:K,minlen:ee,nestingEdge:!0}),i.setEdge(j,_,{weight:K,minlen:ee,nestingEdge:!0})}),i.parent(b)||i.setEdge(s,T,{weight:0,minlen:p+v[b]})}function jYt(i){var s={};function u(d,p){var v=i.children(d);v&&v.length&&Ar(v,function(b){u(b,p+1)}),s[d]=p}return Ar(i.children(),function(d){u(d,1)}),s}function $Yt(i){return TR(i.edges(),function(s,u){return s+i.edge(u).weight},0)}function zYt(i){var s=i.graph();i.removeNode(s.nestingRoot),delete s.nestingRoot,Ar(i.edges(),function(u){var d=i.edge(u);d.nestingEdge&&i.removeEdge(u)})}function qYt(i,s,u){var d={},p;Ar(u,function(v){for(var b=i.parent(v),y,T;b;){if(y=i.parent(b),y?(T=d[y],d[y]=b):(T=p,p=b),T&&T!==b){s.setEdge(T,b);return}b=y}})}function HYt(i,s,u){var d=VYt(i),p=new B0({compound:!0}).setGraph({root:d}).setDefaultNodeLabel(function(v){return i.node(v)});return Ar(i.nodes(),function(v){var b=i.node(v),y=i.parent(v);(b.rank===s||b.minRank<=s&&s<=b.maxRank)&&(p.setNode(v),p.setParent(v,y||d),Ar(i[u](v),function(T){var _=T.v===v?T.w:T.v,A=p.edge(_,v),P=Qf(A)?0:A.weight;p.setEdge(_,v,{weight:i.edge(T).weight+P})}),Lo(b,"minRank")&&p.setNode(v,{borderLeft:b.borderLeft[s],borderRight:b.borderRight[s]}))}),p}function VYt(i){for(var s;i.hasNode(s=KQ("_root")););return s}function UYt(i,s){for(var u=0,d=1;d0;)A%2&&(P+=y[A+1]),A=A-1>>1,y[A]+=_.weight;T+=_.weight*P})),T}function KYt(i){var s={},u=j7(i.nodes(),function(y){return!i.children(y).length}),d=UC(P0(u,function(y){return i.node(y).rank})),p=P0(GC(d+1),function(){return[]});function v(y){if(!Lo(s,y)){s[y]=!0;var T=i.node(y);p[T.rank].push(y),Ar(i.successors(y),v)}}var b=CR(u,function(y){return i.node(y).rank});return Ar(b,v),p}function WYt(i,s){return P0(s,function(u){var d=i.inEdges(u);if(d.length){var p=TR(d,function(v,b){var y=i.edge(b),T=i.node(b.v);return{sum:v.sum+y.weight*T.order,weight:v.weight+y.weight}},{sum:0,weight:0});return{v:u,barycenter:p.sum/p.weight,weight:p.weight}}else return{v:u}})}function YYt(i,s){var u={};Ar(i,function(p,v){var b=u[p.v]={indegree:0,in:[],out:[],vs:[p.v],i:v};Qf(p.barycenter)||(b.barycenter=p.barycenter,b.weight=p.weight)}),Ar(s.edges(),function(p){var v=u[p.v],b=u[p.w];!Qf(v)&&!Qf(b)&&(b.indegree++,v.out.push(u[p.w]))});var d=j7(u,function(p){return!p.indegree});return XYt(d)}function XYt(i){var s=[];function u(v){return function(b){b.merged||(Qf(b.barycenter)||Qf(v.barycenter)||b.barycenter>=v.barycenter)&&QYt(v,b)}}function d(v){return function(b){b.in.push(v),--b.indegree===0&&i.push(b)}}for(;i.length;){var p=i.pop();s.push(p),Ar(p.in.reverse(),u(p)),Ar(p.out,d(p))}return P0(j7(s,function(v){return!v.merged}),function(v){return ER(v,["vs","i","barycenter","weight"])})}function QYt(i,s){var u=0,d=0;i.weight&&(u+=i.barycenter*i.weight,d+=i.weight),s.weight&&(u+=s.barycenter*s.weight,d+=s.weight),i.vs=s.vs.concat(i.vs),i.barycenter=u/d,i.weight=d,i.i=Math.min(s.i,i.i),s.merged=!0}function JYt(i,s){var u=pYt(i,function(A){return Lo(A,"barycenter")}),d=u.lhs,p=CR(u.rhs,function(A){return-A.i}),v=[],b=0,y=0,T=0;d.sort(ZYt(!!s)),T=gVe(v,p,T),Ar(d,function(A){T+=A.vs.length,v.push(A.vs),b+=A.barycenter*A.weight,y+=A.weight,T=gVe(v,p,T)});var _={vs:jD(v)};return y&&(_.barycenter=b/y,_.weight=y),_}function gVe(i,s,u){for(var d;s.length&&(d=UQ(s)).i<=u;)s.pop(),i.push(d.vs),u++;return u}function ZYt(i){return function(s,u){return s.barycenteru.barycenter?1:i?u.i-s.i:s.i-u.i}}function pVe(i,s,u,d){var p=i.children(s),v=i.node(s),b=v?v.borderLeft:void 0,y=v?v.borderRight:void 0,T={};b&&(p=j7(p,function(j){return j!==b&&j!==y}));var _=WYt(i,p);Ar(_,function(j){if(i.children(j.v).length){var K=pVe(i,j.v,u,d);T[j.v]=K,Lo(K,"barycenter")&&tXt(j,K)}});var A=YYt(_,u);eXt(A,T);var P=JYt(A,d);if(b&&(P.vs=jD([b,P.vs,y]),i.predecessors(b).length)){var R=i.node(i.predecessors(b)[0]),F=i.node(i.predecessors(y)[0]);Lo(P,"barycenter")||(P.barycenter=0,P.weight=0),P.barycenter=(P.barycenter*P.weight+R.order+F.order)/(P.weight+2),P.weight+=2}return P}function eXt(i,s){Ar(i,function(u){u.vs=jD(u.vs.map(function(d){return s[d]?s[d].vs:d}))})}function tXt(i,s){Qf(i.barycenter)?(i.barycenter=s.barycenter,i.weight=s.weight):(i.barycenter=(i.barycenter*i.weight+s.barycenter*s.weight)/(i.weight+s.weight),i.weight+=s.weight)}function nXt(i){var s=ZHe(i),u=bVe(i,GC(1,s+1),"inEdges"),d=bVe(i,GC(s-1,-1,-1),"outEdges"),p=KYt(i);mVe(i,p);for(var v=Number.POSITIVE_INFINITY,b,y=0,T=0;T<4;++y,++T){rXt(y%2?u:d,y%4>=2),p=WQ(i);var _=UYt(i,p);_b||y>s[T].lim));for(_=T,T=d;(T=i.parent(T))!==_;)v.push(T);return{path:p.concat(v.reverse()),lca:_}}function aXt(i){var s={},u=0;function d(p){var v=u;Ar(i.children(p),d),s[p]={low:v,lim:u++}}return Ar(i.children(),d),s}function oXt(i,s){var u={};function d(p,v){var b=0,y=0,T=p.length,_=UQ(v);return Ar(v,function(A,P){var R=uXt(i,A),F=R?i.node(R).order:T;(R||A===_)&&(Ar(v.slice(y,P+1),function(j){Ar(i.predecessors(j),function(K){var ee=i.node(K),ie=ee.order;(ie_)&&vVe(u,R,A)})})}function p(v,b){var y=-1,T,_=0;return Ar(b,function(A,P){if(i.node(A).dummy==="border"){var R=i.predecessors(A);R.length&&(T=i.node(R[0]).order,d(b,_,P,y,T),_=P,y=T)}d(b,_,b.length,T,v.length)}),b}return TR(s,p),u}function uXt(i,s){if(i.node(s).dummy)return rme(i.predecessors(s),function(u){return i.node(u).dummy})}function vVe(i,s,u){if(s>u){var d=s;s=u,u=d}var p=i[s];p||(i[s]=p={}),p[u]=!0}function lXt(i,s,u){if(s>u){var d=s;s=u,u=d}return Lo(i[s],u)}function hXt(i,s,u,d){var p={},v={},b={};return Ar(s,function(y){Ar(y,function(T,_){p[T]=T,v[T]=T,b[T]=_})}),Ar(s,function(y){var T=-1;Ar(y,function(_){var A=d(_);if(A.length){A=CR(A,function(K){return b[K]});for(var P=(A.length-1)/2,R=Math.floor(P),F=Math.ceil(P);R<=F;++R){var j=A[R];v[_]===_&&T0}function e5(i,s,u){var d=i.x,p=i.y,v=[],b=Number.POSITIVE_INFINITY,y=Number.POSITIVE_INFINITY;s.forEach(function(j){b=Math.min(b,j.x),y=Math.min(y,j.y)});for(var T=d-i.width/2-b,_=p-i.height/2-y,A=0;A1&&v.sort(function(j,K){var ee=j.x-u.x,ie=j.y-u.y,oe=Math.sqrt(ee*ee+ie*ie),pe=K.x-u.x,be=K.y-u.y,ae=Math.sqrt(pe*pe+be*be);return oeMath.abs(p)*y?(v<0&&(y=-y),T=v===0?0:y*p/v,_=y):(p<0&&(b=-b),T=b,_=p===0?0:b*v/p),{x:u+T,y:d+_}}var Cme={rect:gQt,ellipse:pQt,circle:bQt,diamond:mQt};function dQt(i){Cme=i}function gQt(i,s,u){var d=i.insert("rect",":first-child").attr("rx",u.rx).attr("ry",u.ry).attr("x",-s.width/2).attr("y",-s.height/2).attr("width",s.width).attr("height",s.height);return u.intersect=function(p){return Tme(u,p)},d}function pQt(i,s,u){var d=s.width/2,p=s.height/2,v=i.insert("ellipse",":first-child").attr("x",-s.width/2).attr("y",-s.height/2).attr("rx",d).attr("ry",p);return u.intersect=function(b){return TVe(u,d,p,b)},v}function bQt(i,s,u){var d=Math.max(s.width,s.height)/2,p=i.insert("circle",":first-child").attr("x",-s.width/2).attr("y",-s.height/2).attr("r",d);return u.intersect=function(v){return hQt(u,d,v)},p}function mQt(i,s,u){var d=s.width*Math.SQRT2/2,p=s.height*Math.SQRT2/2,v=[{x:0,y:-p},{x:-d,y:0},{x:0,y:p},{x:d,y:0}],b=i.insert("polygon",":first-child").attr("points",v.map(function(y){return y.x+","+y.y}).join(" "));return u.intersect=function(y){return e5(u,v,y)},b}function vQt(){var i=function(s,u){xQt(u);var d=AR(s,"output"),p=AR(d,"clusters"),v=AR(d,"edgePaths"),b=xme(AR(d,"edgeLabels"),u),y=Eme(AR(d,"nodes"),u,Cme);qD(u),lQt(y,u),uQt(b,u),kme(v,u,mme);var T=yme(p,u);cQt(T,u),kQt(u)};return i.createNodes=function(s){return arguments.length?(oQt(s),i):Eme},i.createClusters=function(s){return arguments.length?(ZXt(s),i):yme},i.createEdgeLabels=function(s){return arguments.length?(eQt(s),i):xme},i.createEdgePaths=function(s){return arguments.length?(tQt(s),i):kme},i.shapes=function(s){return arguments.length?(dQt(s),i):Cme},i.arrows=function(s){return arguments.length?(GXt(s),i):mme},i}var wQt={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},yQt={arrowhead:"normal",curve:kp};function xQt(i){i.nodes().forEach(function(s){var u=i.node(s);!Lo(u,"label")&&!i.children(s).length&&(u.label=s),Lo(u,"paddingX")&&$D(u,{paddingLeft:u.paddingX,paddingRight:u.paddingX}),Lo(u,"paddingY")&&$D(u,{paddingTop:u.paddingY,paddingBottom:u.paddingY}),Lo(u,"padding")&&$D(u,{paddingLeft:u.padding,paddingRight:u.padding,paddingTop:u.padding,paddingBottom:u.padding}),$D(u,wQt),Ar(["paddingLeft","paddingRight","paddingTop","paddingBottom"],function(d){u[d]=Number(u[d])}),Lo(u,"width")&&(u._prevWidth=u.width),Lo(u,"height")&&(u._prevHeight=u.height)}),i.edges().forEach(function(s){var u=i.edge(s);Lo(u,"label")||(u.label=""),$D(u,yQt)})}function kQt(i){Ar(i.nodes(),function(s){var u=i.node(s);Lo(u,"_prevWidth")?u.width=u._prevWidth:delete u.width,Lo(u,"_prevHeight")?u.height=u._prevHeight:delete u.height,delete u._prevWidth,delete u._prevHeight})}function AR(i,s){var u=i.select("g."+s);return u.empty()&&(u=i.append("g").attr("class",s)),u}function SVe(i,s,u){const d=s.width,p=s.height,v=(d+p)*.9,b=[{x:v/2,y:0},{x:v,y:-v/2},{x:v/2,y:-v},{x:0,y:-v/2}],y=z7(i,v,v,b);return u.intersect=function(T){return e5(u,b,T)},y}function _Ve(i,s,u){const p=s.height,v=p/4,b=s.width+2*v,y=[{x:v,y:0},{x:b-v,y:0},{x:b,y:-p/2},{x:b-v,y:-p},{x:v,y:-p},{x:0,y:-p/2}],T=z7(i,b,p,y);return u.intersect=function(_){return e5(u,y,_)},T}function AVe(i,s,u){const d=s.width,p=s.height,v=[{x:-p/2,y:0},{x:d,y:0},{x:d,y:-p},{x:-p/2,y:-p},{x:0,y:-p/2}],b=z7(i,d,p,v);return u.intersect=function(y){return e5(u,v,y)},b}function LVe(i,s,u){const d=s.width,p=s.height,v=[{x:-2*p/6,y:0},{x:d-p/6,y:0},{x:d+2*p/6,y:-p},{x:p/6,y:-p}],b=z7(i,d,p,v);return u.intersect=function(y){return e5(u,v,y)},b}function MVe(i,s,u){const d=s.width,p=s.height,v=[{x:2*p/6,y:0},{x:d+p/6,y:0},{x:d-2*p/6,y:-p},{x:-p/6,y:-p}],b=z7(i,d,p,v);return u.intersect=function(y){return e5(u,v,y)},b}function DVe(i,s,u){const d=s.width,p=s.height,v=[{x:-2*p/6,y:0},{x:d+2*p/6,y:0},{x:d-p/6,y:-p},{x:p/6,y:-p}],b=z7(i,d,p,v);return u.intersect=function(y){return e5(u,v,y)},b}function IVe(i,s,u){const d=s.width,p=s.height,v=[{x:p/6,y:0},{x:d-p/6,y:0},{x:d+2*p/6,y:-p},{x:-2*p/6,y:-p}],b=z7(i,d,p,v);return u.intersect=function(y){return e5(u,v,y)},b}function OVe(i,s,u){const d=s.width,p=s.height,v=[{x:0,y:0},{x:d+p/2,y:0},{x:d,y:-p/2},{x:d+p/2,y:-p},{x:0,y:-p}],b=z7(i,d,p,v);return u.intersect=function(y){return e5(u,v,y)},b}function NVe(i,s,u){const d=s.height,p=s.width+d/4,v=i.insert("rect",":first-child").attr("rx",d/2).attr("ry",d/2).attr("x",-p/2).attr("y",-d/2).attr("width",p).attr("height",d);return u.intersect=function(b){return Tme(u,b)},v}function PVe(i,s,u){const d=s.width,p=s.height,v=[{x:0,y:0},{x:d,y:0},{x:d,y:-p},{x:0,y:-p},{x:0,y:0},{x:-8,y:0},{x:d+8,y:0},{x:d+8,y:-p},{x:-8,y:-p},{x:-8,y:0}],b=z7(i,d,p,v);return u.intersect=function(y){return e5(u,v,y)},b}function BVe(i,s,u){const d=s.width,p=d/2,v=p/(2.5+d/50),b=s.height+v,y="M 0,"+v+" a "+p+","+v+" 0,0,0 "+d+" 0 a "+p+","+v+" 0,0,0 "+-d+" 0 l 0,"+b+" a "+p+","+v+" 0,0,0 "+d+" 0 l 0,"+-b,T=i.attr("label-offset-y",v).insert("path",":first-child").attr("d",y).attr("transform","translate("+-d/2+","+-(b/2+v)+")");return u.intersect=function(_){const A=Tme(u,_),P=A.x-u.x;if(p!=0&&(Math.abs(P)u.height/2-v)){let R=v*v*(1-P*P/(p*p));R!=0&&(R=Math.sqrt(R)),R=v-R,_.y-u.y>0&&(R=-R),A.y+=R}return A},T}function EQt(i){i.shapes().question=SVe,i.shapes().hexagon=_Ve,i.shapes().stadium=NVe,i.shapes().subroutine=PVe,i.shapes().cylinder=BVe,i.shapes().rect_left_inv_arrow=AVe,i.shapes().lean_right=LVe,i.shapes().lean_left=MVe,i.shapes().trapezoid=DVe,i.shapes().inv_trapezoid=IVe,i.shapes().rect_right_inv_arrow=OVe}function TQt(i){i({question:SVe}),i({hexagon:_Ve}),i({stadium:NVe}),i({subroutine:PVe}),i({cylinder:BVe}),i({rect_left_inv_arrow:AVe}),i({lean_right:LVe}),i({lean_left:MVe}),i({trapezoid:DVe}),i({inv_trapezoid:IVe}),i({rect_right_inv_arrow:OVe})}function z7(i,s,u,d){return i.insert("polygon",":first-child").attr("points",d.map(function(p){return p.x+","+p.y}).join(" ")).attr("transform","translate("+-s/2+","+u/2+")")}const CQt={addToRender:EQt,addToRenderV2:TQt},FVe={},SQt=function(i){const s=Object.keys(i);for(const u of s)FVe[u]=i[u]},RVe=async function(i,s,u,d,p,v){const b=d?d.select(`[id="${u}"]`):Ir(`[id="${u}"]`),y=p||document,T=Object.keys(i);for(const _ of T){const A=i[_];let P="default";A.classes.length>0&&(P=A.classes.join(" "));const R=om(A.styles);let F=A.text!==void 0?A.text:A.id,j;if(f1(qt().flowchart.htmlLabels)){const ie={label:await CC(F.replace(/fa[blrs]?:fa-[\w-]+/g,oe=>``),qt())};j=vme(b,ie).node(),j.parentNode.removeChild(j)}else{const ie=y.createElementNS("http://www.w3.org/2000/svg","text");ie.setAttribute("style",R.labelStyle.replace("color:","fill:"));const oe=F.split(li.lineBreakRegex);for(const pe of oe){const be=y.createElementNS("http://www.w3.org/2000/svg","tspan");be.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),be.setAttribute("dy","1em"),be.setAttribute("x","1"),be.textContent=pe,ie.appendChild(be)}j=ie}let K=0,ee="";switch(A.type){case"round":K=5,ee="rect";break;case"square":ee="rect";break;case"diamond":ee="question";break;case"hexagon":ee="hexagon";break;case"odd":ee="rect_left_inv_arrow";break;case"lean_right":ee="lean_right";break;case"lean_left":ee="lean_left";break;case"trapezoid":ee="trapezoid";break;case"inv_trapezoid":ee="inv_trapezoid";break;case"odd_right":ee="rect_left_inv_arrow";break;case"circle":ee="circle";break;case"ellipse":ee="ellipse";break;case"stadium":ee="stadium";break;case"subroutine":ee="subroutine";break;case"cylinder":ee="cylinder";break;case"group":ee="rect";break;default:ee="rect"}Xe.warn("Adding node",A.id,A.domId),s.setNode(v.db.lookUpDomId(A.id),{labelType:"svg",labelStyle:R.labelStyle,shape:ee,label:j,rx:K,ry:K,class:P,style:R.style,id:v.db.lookUpDomId(A.id)})}},jVe=async function(i,s,u){let d=0,p,v;if(i.defaultStyle!==void 0){const b=om(i.defaultStyle);p=b.style,v=b.labelStyle}for(const b of i){d++;const y="L-"+b.start+"-"+b.end,T="LS-"+b.start,_="LE-"+b.end,A={};b.type==="arrow_open"?A.arrowhead="none":A.arrowhead="normal";let P="",R="";if(b.style!==void 0){const F=om(b.style);P=F.style,R=F.labelStyle}else switch(b.stroke){case"normal":P="fill:none",p!==void 0&&(P=p),v!==void 0&&(R=v);break;case"dotted":P="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":P=" stroke-width: 3.5px;fill:none";break}A.style=P,A.labelStyle=R,b.interpolate!==void 0?A.curve=Ov(b.interpolate,kp):i.defaultInterpolate!==void 0?A.curve=Ov(i.defaultInterpolate,kp):A.curve=Ov(FVe.curve,kp),b.text===void 0?b.style!==void 0&&(A.arrowheadStyle="fill: #333"):(A.arrowheadStyle="fill: #333",A.labelpos="c",f1(qt().flowchart.htmlLabels)?(A.labelType="html",A.label=`${await CC(b.text.replace(/fa[blrs]?:fa-[\w-]+/g,F=>``),qt())}`):(A.labelType="text",A.label=b.text.replace(li.lineBreakRegex,` +`;break;default:s+=d}u=!1}else d==="\\"?u=!0:s+=d;return s}function wme(i,s,u){var d=s.label,p=i.append("g");s.labelType==="svg"?XXt(p,s):typeof d!="string"||s.labelType==="html"?vme(p,s):QXt(p,s);var v=p.node().getBBox(),b;switch(u){case"top":b=-s.height/2;break;case"bottom":b=s.height/2-v.height;break;default:b=-v.height/2}return p.attr("transform","translate("+-v.width/2+","+b+")"),p}var yme=function(i,s){var u=s.nodes().filter(function(v){return wVe(s,v)}),d=i.selectAll("g.cluster").data(u,function(v){return v});q3(d.exit(),s).style("opacity",0).remove();var p=d.enter().append("g").attr("class","cluster").attr("id",function(v){var b=s.node(v);return b.id}).style("opacity",0).each(function(v){var b=s.node(v),y=Ir(this);Ir(this).append("rect");var T=y.append("g").attr("class","label");wme(T,b,b.clusterLabelPos)});return d=d.merge(p),d=q3(d,s).style("opacity",1),d.selectAll("rect").each(function(v){var b=s.node(v),y=Ir(this);Z4(y,b.style)}),d};function ZXt(i){yme=i}let xme=function(i,s){var u=i.selectAll("g.edgeLabel").data(s.edges(),function(p){return yVe(p)}).classed("update",!0);u.exit().remove(),u.enter().append("g").classed("edgeLabel",!0).style("opacity",0),u=i.selectAll("g.edgeLabel"),u.each(function(p){var v=Ir(this);v.select(".label").remove();var b=s.edge(p),y=wme(v,s.edge(p),0).classed("label",!0),T=y.node().getBBox();b.labelId&&y.attr("id",b.labelId),Lo(b,"width")||(b.width=T.width),Lo(b,"height")||(b.height=T.height)});var d;return u.exit?d=u.exit():d=u.selectAll(null),q3(d,s).style("opacity",0).remove(),u};function eQt(i){xme=i}function kVe(i,s){return i.intersect(s)}var kme=function(i,s,u){var d=i.selectAll("g.edgePath").data(s.edges(),function(b){return yVe(b)}).classed("update",!0),p=sQt(d,s);aQt(d,s);var v=d.merge!==void 0?d.merge(p):d;return q3(v,s).style("opacity",1),v.each(function(b){var y=Ir(this),T=s.edge(b);T.elem=this,T.id&&y.attr("id",T.id),xVe(y,T.class,(y.classed("update")?"update ":"")+"edgePath")}),v.selectAll("path.path").each(function(b){var y=s.edge(b);y.arrowheadId=KQ("arrowhead");var T=Ir(this).attr("marker-end",function(){return"url("+nQt(location.href,y.arrowheadId)+")"}).style("fill","none");q3(T,s).attr("d",function(_){return rQt(s,_)}),Z4(T,y.style)}),v.selectAll("defs *").remove(),v.selectAll("defs").each(function(b){var y=s.edge(b),T=u[y.arrowhead];T(Ir(this),y.arrowheadId,y,"arrowhead")}),v};function tQt(i){kme=i}function nQt(i,s){var u=i.split("#")[0];return u+"#"+s}function rQt(i,s){var u=i.edge(s),d=i.node(s.v),p=i.node(s.w),v=u.points.slice(1,u.points.length-1);return v.unshift(kVe(d,v[0])),v.push(kVe(p,v[v.length-1])),EVe(u,v)}function EVe(i,s){var u=(k7||PIt.line)().x(function(d){return d.x}).y(function(d){return d.y});return(u.curve||u.interpolate)(i.curve),u(s)}function iQt(i){var s=i.getBBox(),u=i.ownerSVGElement.getScreenCTM().inverse().multiply(i.getScreenCTM()).translate(s.width/2,s.height/2);return{x:u.e,y:u.f}}function sQt(i,s){var u=i.enter().append("g").attr("class","edgePath").style("opacity",0);return u.append("path").attr("class","path").attr("d",function(d){var p=s.edge(d),v=s.node(d.v).elem,b=GC(p.points.length).map(function(){return iQt(v)});return EVe(p,b)}),u.append("defs"),u}function aQt(i,s){var u=i.exit();q3(u,s).style("opacity",0).remove()}var Eme=function(i,s,u){var d=s.nodes().filter(function(b){return!wVe(s,b)}),p=i.selectAll("g.node").data(d,function(b){return b}).classed("update",!0);p.exit().remove(),p.enter().append("g").attr("class","node").style("opacity",0),p=i.selectAll("g.node"),p.each(function(b){var y=s.node(b),T=Ir(this);xVe(T,y.class,(T.classed("update")?"update ":"")+"node"),T.select("g.label").remove();var _=T.append("g").attr("class","label"),A=wme(_,y),P=u[y.shape],R=ER(A.node().getBBox(),"width","height");y.elem=this,y.id&&T.attr("id",y.id),y.labelId&&_.attr("id",y.labelId),Lo(y,"width")&&(R.width=y.width),Lo(y,"height")&&(R.height=y.height),R.width+=y.paddingLeft+y.paddingRight,R.height+=y.paddingTop+y.paddingBottom,_.attr("transform","translate("+(y.paddingLeft-y.paddingRight)/2+","+(y.paddingTop-y.paddingBottom)/2+")");var F=Ir(this);F.select(".label-container").remove();var j=P(F,R,y).classed("label-container",!0);Z4(j,y.style);var K=j.node().getBBox();y.width=K.width,y.height=K.height});var v;return p.exit?v=p.exit():v=p.selectAll(null),q3(v,s).style("opacity",0).remove(),p};function oQt(i){Eme=i}function cQt(i,s){var u=i.filter(function(){return!Ir(this).classed("update")});function d(p){var v=s.node(p);return"translate("+v.x+","+v.y+")"}u.attr("transform",d),q3(i,s).style("opacity",1).attr("transform",d),q3(u.selectAll("rect"),s).attr("width",function(p){return s.node(p).width}).attr("height",function(p){return s.node(p).height}).attr("x",function(p){var v=s.node(p);return-v.width/2}).attr("y",function(p){var v=s.node(p);return-v.height/2})}function uQt(i,s){var u=i.filter(function(){return!Ir(this).classed("update")});function d(p){var v=s.edge(p);return Lo(v,"x")?"translate("+v.x+","+v.y+")":""}u.attr("transform",d),q3(i,s).style("opacity",1).attr("transform",d)}function lQt(i,s){var u=i.filter(function(){return!Ir(this).classed("update")});function d(p){var v=s.node(p);return"translate("+v.x+","+v.y+")"}u.attr("transform",d),q3(i,s).style("opacity",1).attr("transform",d)}function TVe(i,s,u,d){var p=i.x,v=i.y,b=p-d.x,y=v-d.y,T=Math.sqrt(s*s*y*y+u*u*b*b),_=Math.abs(s*u*b/T);d.x0}function e5(i,s,u){var d=i.x,p=i.y,v=[],b=Number.POSITIVE_INFINITY,y=Number.POSITIVE_INFINITY;s.forEach(function(j){b=Math.min(b,j.x),y=Math.min(y,j.y)});for(var T=d-i.width/2-b,_=p-i.height/2-y,A=0;A1&&v.sort(function(j,K){var ee=j.x-u.x,ie=j.y-u.y,oe=Math.sqrt(ee*ee+ie*ie),pe=K.x-u.x,be=K.y-u.y,ae=Math.sqrt(pe*pe+be*be);return oeMath.abs(p)*y?(v<0&&(y=-y),T=v===0?0:y*p/v,_=y):(p<0&&(b=-b),T=b,_=p===0?0:b*v/p),{x:u+T,y:d+_}}var Cme={rect:gQt,ellipse:pQt,circle:bQt,diamond:mQt};function dQt(i){Cme=i}function gQt(i,s,u){var d=i.insert("rect",":first-child").attr("rx",u.rx).attr("ry",u.ry).attr("x",-s.width/2).attr("y",-s.height/2).attr("width",s.width).attr("height",s.height);return u.intersect=function(p){return Tme(u,p)},d}function pQt(i,s,u){var d=s.width/2,p=s.height/2,v=i.insert("ellipse",":first-child").attr("x",-s.width/2).attr("y",-s.height/2).attr("rx",d).attr("ry",p);return u.intersect=function(b){return TVe(u,d,p,b)},v}function bQt(i,s,u){var d=Math.max(s.width,s.height)/2,p=i.insert("circle",":first-child").attr("x",-s.width/2).attr("y",-s.height/2).attr("r",d);return u.intersect=function(v){return hQt(u,d,v)},p}function mQt(i,s,u){var d=s.width*Math.SQRT2/2,p=s.height*Math.SQRT2/2,v=[{x:0,y:-p},{x:-d,y:0},{x:0,y:p},{x:d,y:0}],b=i.insert("polygon",":first-child").attr("points",v.map(function(y){return y.x+","+y.y}).join(" "));return u.intersect=function(y){return e5(u,v,y)},b}function vQt(){var i=function(s,u){xQt(u);var d=AR(s,"output"),p=AR(d,"clusters"),v=AR(d,"edgePaths"),b=xme(AR(d,"edgeLabels"),u),y=Eme(AR(d,"nodes"),u,Cme);qD(u),lQt(y,u),uQt(b,u),kme(v,u,mme);var T=yme(p,u);cQt(T,u),kQt(u)};return i.createNodes=function(s){return arguments.length?(oQt(s),i):Eme},i.createClusters=function(s){return arguments.length?(ZXt(s),i):yme},i.createEdgeLabels=function(s){return arguments.length?(eQt(s),i):xme},i.createEdgePaths=function(s){return arguments.length?(tQt(s),i):kme},i.shapes=function(s){return arguments.length?(dQt(s),i):Cme},i.arrows=function(s){return arguments.length?(GXt(s),i):mme},i}var wQt={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},yQt={arrowhead:"normal",curve:kp};function xQt(i){i.nodes().forEach(function(s){var u=i.node(s);!Lo(u,"label")&&!i.children(s).length&&(u.label=s),Lo(u,"paddingX")&&$D(u,{paddingLeft:u.paddingX,paddingRight:u.paddingX}),Lo(u,"paddingY")&&$D(u,{paddingTop:u.paddingY,paddingBottom:u.paddingY}),Lo(u,"padding")&&$D(u,{paddingLeft:u.padding,paddingRight:u.padding,paddingTop:u.padding,paddingBottom:u.padding}),$D(u,wQt),Ar(["paddingLeft","paddingRight","paddingTop","paddingBottom"],function(d){u[d]=Number(u[d])}),Lo(u,"width")&&(u._prevWidth=u.width),Lo(u,"height")&&(u._prevHeight=u.height)}),i.edges().forEach(function(s){var u=i.edge(s);Lo(u,"label")||(u.label=""),$D(u,yQt)})}function kQt(i){Ar(i.nodes(),function(s){var u=i.node(s);Lo(u,"_prevWidth")?u.width=u._prevWidth:delete u.width,Lo(u,"_prevHeight")?u.height=u._prevHeight:delete u.height,delete u._prevWidth,delete u._prevHeight})}function AR(i,s){var u=i.select("g."+s);return u.empty()&&(u=i.append("g").attr("class",s)),u}function SVe(i,s,u){const d=s.width,p=s.height,v=(d+p)*.9,b=[{x:v/2,y:0},{x:v,y:-v/2},{x:v/2,y:-v},{x:0,y:-v/2}],y=z7(i,v,v,b);return u.intersect=function(T){return e5(u,b,T)},y}function _Ve(i,s,u){const p=s.height,v=p/4,b=s.width+2*v,y=[{x:v,y:0},{x:b-v,y:0},{x:b,y:-p/2},{x:b-v,y:-p},{x:v,y:-p},{x:0,y:-p/2}],T=z7(i,b,p,y);return u.intersect=function(_){return e5(u,y,_)},T}function AVe(i,s,u){const d=s.width,p=s.height,v=[{x:-p/2,y:0},{x:d,y:0},{x:d,y:-p},{x:-p/2,y:-p},{x:0,y:-p/2}],b=z7(i,d,p,v);return u.intersect=function(y){return e5(u,v,y)},b}function LVe(i,s,u){const d=s.width,p=s.height,v=[{x:-2*p/6,y:0},{x:d-p/6,y:0},{x:d+2*p/6,y:-p},{x:p/6,y:-p}],b=z7(i,d,p,v);return u.intersect=function(y){return e5(u,v,y)},b}function MVe(i,s,u){const d=s.width,p=s.height,v=[{x:2*p/6,y:0},{x:d+p/6,y:0},{x:d-2*p/6,y:-p},{x:-p/6,y:-p}],b=z7(i,d,p,v);return u.intersect=function(y){return e5(u,v,y)},b}function DVe(i,s,u){const d=s.width,p=s.height,v=[{x:-2*p/6,y:0},{x:d+2*p/6,y:0},{x:d-p/6,y:-p},{x:p/6,y:-p}],b=z7(i,d,p,v);return u.intersect=function(y){return e5(u,v,y)},b}function IVe(i,s,u){const d=s.width,p=s.height,v=[{x:p/6,y:0},{x:d-p/6,y:0},{x:d+2*p/6,y:-p},{x:-2*p/6,y:-p}],b=z7(i,d,p,v);return u.intersect=function(y){return e5(u,v,y)},b}function OVe(i,s,u){const d=s.width,p=s.height,v=[{x:0,y:0},{x:d+p/2,y:0},{x:d,y:-p/2},{x:d+p/2,y:-p},{x:0,y:-p}],b=z7(i,d,p,v);return u.intersect=function(y){return e5(u,v,y)},b}function NVe(i,s,u){const d=s.height,p=s.width+d/4,v=i.insert("rect",":first-child").attr("rx",d/2).attr("ry",d/2).attr("x",-p/2).attr("y",-d/2).attr("width",p).attr("height",d);return u.intersect=function(b){return Tme(u,b)},v}function PVe(i,s,u){const d=s.width,p=s.height,v=[{x:0,y:0},{x:d,y:0},{x:d,y:-p},{x:0,y:-p},{x:0,y:0},{x:-8,y:0},{x:d+8,y:0},{x:d+8,y:-p},{x:-8,y:-p},{x:-8,y:0}],b=z7(i,d,p,v);return u.intersect=function(y){return e5(u,v,y)},b}function BVe(i,s,u){const d=s.width,p=d/2,v=p/(2.5+d/50),b=s.height+v,y="M 0,"+v+" a "+p+","+v+" 0,0,0 "+d+" 0 a "+p+","+v+" 0,0,0 "+-d+" 0 l 0,"+b+" a "+p+","+v+" 0,0,0 "+d+" 0 l 0,"+-b,T=i.attr("label-offset-y",v).insert("path",":first-child").attr("d",y).attr("transform","translate("+-d/2+","+-(b/2+v)+")");return u.intersect=function(_){const A=Tme(u,_),P=A.x-u.x;if(p!=0&&(Math.abs(P)u.height/2-v)){let R=v*v*(1-P*P/(p*p));R!=0&&(R=Math.sqrt(R)),R=v-R,_.y-u.y>0&&(R=-R),A.y+=R}return A},T}function EQt(i){i.shapes().question=SVe,i.shapes().hexagon=_Ve,i.shapes().stadium=NVe,i.shapes().subroutine=PVe,i.shapes().cylinder=BVe,i.shapes().rect_left_inv_arrow=AVe,i.shapes().lean_right=LVe,i.shapes().lean_left=MVe,i.shapes().trapezoid=DVe,i.shapes().inv_trapezoid=IVe,i.shapes().rect_right_inv_arrow=OVe}function TQt(i){i({question:SVe}),i({hexagon:_Ve}),i({stadium:NVe}),i({subroutine:PVe}),i({cylinder:BVe}),i({rect_left_inv_arrow:AVe}),i({lean_right:LVe}),i({lean_left:MVe}),i({trapezoid:DVe}),i({inv_trapezoid:IVe}),i({rect_right_inv_arrow:OVe})}function z7(i,s,u,d){return i.insert("polygon",":first-child").attr("points",d.map(function(p){return p.x+","+p.y}).join(" ")).attr("transform","translate("+-s/2+","+u/2+")")}const CQt={addToRender:EQt,addToRenderV2:TQt},FVe={},SQt=function(i){const s=Object.keys(i);for(const u of s)FVe[u]=i[u]},RVe=async function(i,s,u,d,p,v){const b=d?d.select(`[id="${u}"]`):Ir(`[id="${u}"]`),y=p||document,T=Object.keys(i);for(const _ of T){const A=i[_];let P="default";A.classes.length>0&&(P=A.classes.join(" "));const R=om(A.styles);let F=A.text!==void 0?A.text:A.id,j;if(f1(qt().flowchart.htmlLabels)){const ie={label:await CC(F.replace(/fa[blrs]?:fa-[\w-]+/g,oe=>``),qt())};j=vme(b,ie).node(),j.parentNode.removeChild(j)}else{const ie=y.createElementNS("http://www.w3.org/2000/svg","text");ie.setAttribute("style",R.labelStyle.replace("color:","fill:"));const oe=F.split(ci.lineBreakRegex);for(const pe of oe){const be=y.createElementNS("http://www.w3.org/2000/svg","tspan");be.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),be.setAttribute("dy","1em"),be.setAttribute("x","1"),be.textContent=pe,ie.appendChild(be)}j=ie}let K=0,ee="";switch(A.type){case"round":K=5,ee="rect";break;case"square":ee="rect";break;case"diamond":ee="question";break;case"hexagon":ee="hexagon";break;case"odd":ee="rect_left_inv_arrow";break;case"lean_right":ee="lean_right";break;case"lean_left":ee="lean_left";break;case"trapezoid":ee="trapezoid";break;case"inv_trapezoid":ee="inv_trapezoid";break;case"odd_right":ee="rect_left_inv_arrow";break;case"circle":ee="circle";break;case"ellipse":ee="ellipse";break;case"stadium":ee="stadium";break;case"subroutine":ee="subroutine";break;case"cylinder":ee="cylinder";break;case"group":ee="rect";break;default:ee="rect"}Xe.warn("Adding node",A.id,A.domId),s.setNode(v.db.lookUpDomId(A.id),{labelType:"svg",labelStyle:R.labelStyle,shape:ee,label:j,rx:K,ry:K,class:P,style:R.style,id:v.db.lookUpDomId(A.id)})}},jVe=async function(i,s,u){let d=0,p,v;if(i.defaultStyle!==void 0){const b=om(i.defaultStyle);p=b.style,v=b.labelStyle}for(const b of i){d++;const y="L-"+b.start+"-"+b.end,T="LS-"+b.start,_="LE-"+b.end,A={};b.type==="arrow_open"?A.arrowhead="none":A.arrowhead="normal";let P="",R="";if(b.style!==void 0){const F=om(b.style);P=F.style,R=F.labelStyle}else switch(b.stroke){case"normal":P="fill:none",p!==void 0&&(P=p),v!==void 0&&(R=v);break;case"dotted":P="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":P=" stroke-width: 3.5px;fill:none";break}A.style=P,A.labelStyle=R,b.interpolate!==void 0?A.curve=Ov(b.interpolate,kp):i.defaultInterpolate!==void 0?A.curve=Ov(i.defaultInterpolate,kp):A.curve=Ov(FVe.curve,kp),b.text===void 0?b.style!==void 0&&(A.arrowheadStyle="fill: #333"):(A.arrowheadStyle="fill: #333",A.labelpos="c",f1(qt().flowchart.htmlLabels)?(A.labelType="html",A.label=`${await CC(b.text.replace(/fa[blrs]?:fa-[\w-]+/g,F=>``),qt())}`):(A.labelType="text",A.label=b.text.replace(ci.lineBreakRegex,` `),b.style===void 0&&(A.style=A.style||"stroke: #333; stroke-width: 1.5px;fill:none"),A.labelStyle=A.labelStyle.replace("color:","fill:"))),A.id=y,A.class=T+" "+_,A.minlen=b.length||1,s.setEdge(u.db.lookUpDomId(b.start),u.db.lookUpDomId(b.end),A,d)}},_Qt={setConf:SQt,addVertices:RVe,addEdges:jVe,getClasses:function(i,s){return Xe.info("Extracting classes"),s.db.getClasses()},draw:async function(i,s,u,d){Xe.info("Drawing flowchart");const{securityLevel:p,flowchart:v}=qt();let b;p==="sandbox"&&(b=Ir("#i"+s));const y=Ir(p==="sandbox"?b.nodes()[0].contentDocument.body:"body"),T=p==="sandbox"?b.nodes()[0].contentDocument:document;let _=d.db.getDirection();_===void 0&&(_="TD");const A=v.nodeSpacing||50,P=v.rankSpacing||50,R=new B0({multigraph:!0,compound:!0}).setGraph({rankdir:_,nodesep:A,ranksep:P,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});let F;const j=d.db.getSubGraphs();for(let ne=j.length-1;ne>=0;ne--)F=j[ne],d.db.addVertex(F.id,F.title,"group",void 0,F.classes);const K=d.db.getVertices();Xe.warn("Get vertices",K);const ee=d.db.getEdges();let ie=0;for(ie=j.length-1;ie>=0;ie--){F=j[ie],_Be("cluster").append("text");for(let ne=0;ne{s.forEach(p=>{DQt[p](i,u,d)})},DQt={extension:(i,s,u)=>{Xe.trace("Making markers for ",u),i.append("defs").append("marker").attr("id",u+"_"+s+"-extensionStart").attr("class","marker extension "+s).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id",u+"_"+s+"-extensionEnd").attr("class","marker extension "+s).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},composition:(i,s,u)=>{i.append("defs").append("marker").attr("id",u+"_"+s+"-compositionStart").attr("class","marker composition "+s).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",u+"_"+s+"-compositionEnd").attr("class","marker composition "+s).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},aggregation:(i,s,u)=>{i.append("defs").append("marker").attr("id",u+"_"+s+"-aggregationStart").attr("class","marker aggregation "+s).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",u+"_"+s+"-aggregationEnd").attr("class","marker aggregation "+s).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},dependency:(i,s,u)=>{i.append("defs").append("marker").attr("id",u+"_"+s+"-dependencyStart").attr("class","marker dependency "+s).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",u+"_"+s+"-dependencyEnd").attr("class","marker dependency "+s).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},lollipop:(i,s,u)=>{i.append("defs").append("marker").attr("id",u+"_"+s+"-lollipopStart").attr("class","marker lollipop "+s).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),i.append("defs").append("marker").attr("id",u+"_"+s+"-lollipopEnd").attr("class","marker lollipop "+s).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},point:(i,s,u)=>{i.append("marker").attr("id",u+"_"+s+"-pointEnd").attr("class","marker "+s).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),i.append("marker").attr("id",u+"_"+s+"-pointStart").attr("class","marker "+s).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},circle:(i,s,u)=>{i.append("marker").attr("id",u+"_"+s+"-circleEnd").attr("class","marker "+s).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),i.append("marker").attr("id",u+"_"+s+"-circleStart").attr("class","marker "+s).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},cross:(i,s,u)=>{i.append("marker").attr("id",u+"_"+s+"-crossEnd").attr("class","marker cross "+s).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),i.append("marker").attr("id",u+"_"+s+"-crossStart").attr("class","marker cross "+s).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},barb:(i,s,u)=>{i.append("defs").append("marker").attr("id",u+"_"+s+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")}},Sme=MQt;function IQt(i,s){s&&i.attr("style",s)}function OQt(i){const s=Ir(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),u=s.append("xhtml:div"),d=i.label,p=i.isNode?"nodeLabel":"edgeLabel";return u.html('"+d+""),IQt(u,i.labelStyle),u.style("display","inline-block"),u.style("white-space","nowrap"),u.attr("xmlns","http://www.w3.org/1999/xhtml"),s.node()}const $2=(i,s,u,d)=>{let p=i||"";if(typeof p=="object"&&(p=p[0]),f1(qt().flowchart.htmlLabels)){p=p.replace(/\\n|\n/g,"
"),Xe.debug("vertexText"+p);const v={isNode:d,label:ZF(p).replace(/fa[blrs]?:fa-[\w-]+/g,y=>``),labelStyle:s.replace("fill:","color:")};return OQt(v)}else{const v=document.createElementNS("http://www.w3.org/2000/svg","text");v.setAttribute("style",s.replace("color:","fill:"));let b=[];typeof p=="string"?b=p.split(/\\n|\n|/gi):Array.isArray(p)?b=p:b=[];for(const y of b){const T=document.createElementNS("http://www.w3.org/2000/svg","tspan");T.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),T.setAttribute("dy","1em"),T.setAttribute("x","0"),u?T.setAttribute("class","title-row"):T.setAttribute("class","row"),T.textContent=y.trim(),v.appendChild(T)}return v}},NQt={};function PQt(i,s){const u=s||NQt,d=typeof u.includeImageAlt=="boolean"?u.includeImageAlt:!0,p=typeof u.includeHtml=="boolean"?u.includeHtml:!0;return $Ve(i,d,p)}function $Ve(i,s,u){if(BQt(i)){if("value"in i)return i.type==="html"&&!u?"":i.value;if(s&&"alt"in i&&i.alt)return i.alt;if("children"in i)return zVe(i.children,s,u)}return Array.isArray(i)?zVe(i,s,u):""}function zVe(i,s,u){const d=[];let p=-1;for(;++pp?0:p+s:s=s>p?p:s,u=u>0?u:0,d.length<1e4)b=Array.from(d),b.unshift(s,u),i.splice(...b);else for(u&&i.splice(s,u);v0?(t5(i,i.length,0,s),i):s}const qVe={}.hasOwnProperty;function FQt(i){const s={};let u=-1;for(;++ub))return;const se=s.events.length;let de=se,X,ge;for(;de--;)if(s.events[de][0]==="exit"&&s.events[de][1].type==="chunkFlow"){if(X){ge=s.events[de][1].end;break}X=!0}for(ie(d),ne=se;nepe;){const ae=u[be];s.containerState=ae[1],ae[0].exit.call(s,i)}u.length=pe}function oe(){p.write([null]),v=void 0,p=void 0,s.containerState._closeFlow=void 0}}function XQt(i,s,u){return Kl(i,i.attempt(this.parser.constructs.document,s,u),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function VVe(i){if(i===null||z2(i)||UQt(i))return 1;if(VQt(i))return 2}function Lme(i,s,u){const d=[];let p=-1;for(;++p1&&i[u][1].end.offset-i[u][1].start.offset>1?2:1;const P=Object.assign({},i[d][1].end),R=Object.assign({},i[u][1].start);UVe(P,-T),UVe(R,T),b={type:T>1?"strongSequence":"emphasisSequence",start:P,end:Object.assign({},i[d][1].end)},y={type:T>1?"strongSequence":"emphasisSequence",start:Object.assign({},i[u][1].start),end:R},v={type:T>1?"strongText":"emphasisText",start:Object.assign({},i[d][1].end),end:Object.assign({},i[u][1].start)},p={type:T>1?"strong":"emphasis",start:Object.assign({},b.start),end:Object.assign({},y.end)},i[d][1].end=Object.assign({},b.start),i[u][1].start=Object.assign({},y.end),_=[],i[d][1].end.offset-i[d][1].start.offset&&(_=zv(_,[["enter",i[d][1],s],["exit",i[d][1],s]])),_=zv(_,[["enter",p,s],["enter",b,s],["exit",b,s],["enter",v,s]]),_=zv(_,Lme(s.parser.constructs.insideSpan.null,i.slice(d+1,u),s)),_=zv(_,[["exit",v,s],["enter",y,s],["exit",y,s],["exit",p,s]]),i[u][1].end.offset-i[u][1].start.offset?(A=2,_=zv(_,[["enter",i[u][1],s],["exit",i[u][1],s]])):A=0,t5(i,d-1,u-d+3,_),u=d+_.length-A-2;break}}for(u=-1;++u0&&Iu(ne)?Kl(i,oe,"linePrefix",v+1)(ne):oe(ne)}function oe(ne){return ne===null||so(ne)?i.check(XVe,K,be)(ne):(i.enter("codeFlowValue"),pe(ne))}function pe(ne){return ne===null||so(ne)?(i.exit("codeFlowValue"),oe(ne)):(i.consume(ne),pe)}function be(ne){return i.exit("codeFenced"),s(ne)}function ae(ne,se,de){let X=0;return ge;function ge(Pe){return ne.enter("lineEnding"),ne.consume(Pe),ne.exit("lineEnding"),W}function W(Pe){return ne.enter("codeFencedFence"),Iu(Pe)?Kl(ne,xe,"linePrefix",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(Pe):xe(Pe)}function xe(Pe){return Pe===y?(ne.enter("codeFencedFenceSequence"),U(Pe)):de(Pe)}function U(Pe){return Pe===y?(X++,ne.consume(Pe),U):X>=b?(ne.exit("codeFencedFenceSequence"),Iu(Pe)?Kl(ne,Fe,"whitespace")(Pe):Fe(Pe)):de(Pe)}function Fe(Pe){return Pe===null||so(Pe)?(ne.exit("codeFencedFence"),se(Pe)):de(Pe)}}}function cJt(i,s,u){const d=this;return p;function p(b){return b===null?u(b):(i.enter("lineEnding"),i.consume(b),i.exit("lineEnding"),v)}function v(b){return d.parser.lazy[d.now().line]?u(b):s(b)}}const Ime={name:"codeIndented",tokenize:lJt},uJt={tokenize:hJt,partial:!0};function lJt(i,s,u){const d=this;return p;function p(_){return i.enter("codeIndented"),Kl(i,v,"linePrefix",4+1)(_)}function v(_){const A=d.events[d.events.length-1];return A&&A[1].type==="linePrefix"&&A[2].sliceSerialize(A[1],!0).length>=4?b(_):u(_)}function b(_){return _===null?T(_):so(_)?i.attempt(uJt,b,T)(_):(i.enter("codeFlowValue"),y(_))}function y(_){return _===null||so(_)?(i.exit("codeFlowValue"),b(_)):(i.consume(_),y)}function T(_){return i.exit("codeIndented"),s(_)}}function hJt(i,s,u){const d=this;return p;function p(b){return d.parser.lazy[d.now().line]?u(b):so(b)?(i.enter("lineEnding"),i.consume(b),i.exit("lineEnding"),p):Kl(i,v,"linePrefix",4+1)(b)}function v(b){const y=d.events[d.events.length-1];return y&&y[1].type==="linePrefix"&&y[2].sliceSerialize(y[1],!0).length>=4?s(b):so(b)?p(b):u(b)}}const fJt={name:"codeText",tokenize:pJt,resolve:dJt,previous:gJt};function dJt(i){let s=i.length-4,u=3,d,p;if((i[u][1].type==="lineEnding"||i[u][1].type==="space")&&(i[s][1].type==="lineEnding"||i[s][1].type==="space")){for(d=u;++d=4?s(b):i.interrupt(d.parser.constructs.flow,u,s)(b)}}function ZVe(i,s,u,d,p,v,b,y,T){const _=T||Number.POSITIVE_INFINITY;let A=0;return P;function P(ie){return ie===60?(i.enter(d),i.enter(p),i.enter(v),i.consume(ie),i.exit(v),R):ie===null||ie===32||ie===41||_me(ie)?u(ie):(i.enter(d),i.enter(b),i.enter(y),i.enter("chunkString",{contentType:"string"}),K(ie))}function R(ie){return ie===62?(i.enter(v),i.consume(ie),i.exit(v),i.exit(p),i.exit(d),s):(i.enter(y),i.enter("chunkString",{contentType:"string"}),F(ie))}function F(ie){return ie===62?(i.exit("chunkString"),i.exit(y),R(ie)):ie===null||ie===60||so(ie)?u(ie):(i.consume(ie),ie===92?j:F)}function j(ie){return ie===60||ie===62||ie===92?(i.consume(ie),F):F(ie)}function K(ie){return!A&&(ie===null||ie===41||z2(ie))?(i.exit("chunkString"),i.exit(y),i.exit(b),i.exit(d),s(ie)):A<_&&ie===40?(i.consume(ie),A++,K):ie===41?(i.consume(ie),A--,K):ie===null||ie===32||ie===40||_me(ie)?u(ie):(i.consume(ie),ie===92?ee:K)}function ee(ie){return ie===40||ie===41||ie===92?(i.consume(ie),K):K(ie)}}function eUe(i,s,u,d,p,v){const b=this;let y=0,T;return _;function _(F){return i.enter(d),i.enter(p),i.consume(F),i.exit(p),i.enter(v),A}function A(F){return y>999||F===null||F===91||F===93&&!T||F===94&&!y&&"_hiddenFootnoteSupport"in b.parser.constructs?u(F):F===93?(i.exit(v),i.enter(p),i.consume(F),i.exit(p),i.exit(d),s):so(F)?(i.enter("lineEnding"),i.consume(F),i.exit("lineEnding"),A):(i.enter("chunkString",{contentType:"string"}),P(F))}function P(F){return F===null||F===91||F===93||so(F)||y++>999?(i.exit("chunkString"),A(F)):(i.consume(F),T||(T=!Iu(F)),F===92?R:P)}function R(F){return F===91||F===92||F===93?(i.consume(F),y++,P):P(F)}}function tUe(i,s,u,d,p,v){let b;return y;function y(R){return R===34||R===39||R===40?(i.enter(d),i.enter(p),i.consume(R),i.exit(p),b=R===40?41:R,T):u(R)}function T(R){return R===b?(i.enter(p),i.consume(R),i.exit(p),i.exit(d),s):(i.enter(v),_(R))}function _(R){return R===b?(i.exit(v),T(b)):R===null?u(R):so(R)?(i.enter("lineEnding"),i.consume(R),i.exit("lineEnding"),Kl(i,_,"linePrefix")):(i.enter("chunkString",{contentType:"string"}),A(R))}function A(R){return R===b||R===null||so(R)?(i.exit("chunkString"),_(R)):(i.consume(R),R===92?P:A)}function P(R){return R===b||R===92?(i.consume(R),A):A(R)}}function LR(i,s){let u;return d;function d(p){return so(p)?(i.enter("lineEnding"),i.consume(p),i.exit("lineEnding"),u=!0,d):Iu(p)?Kl(i,d,u?"linePrefix":"lineSuffix")(p):s(p)}}function HD(i){return i.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const kJt={name:"definition",tokenize:TJt},EJt={tokenize:CJt,partial:!0};function TJt(i,s,u){const d=this;let p;return v;function v(F){return i.enter("definition"),b(F)}function b(F){return eUe.call(d,i,y,u,"definitionLabel","definitionLabelMarker","definitionLabelString")(F)}function y(F){return p=HD(d.sliceSerialize(d.events[d.events.length-1][1]).slice(1,-1)),F===58?(i.enter("definitionMarker"),i.consume(F),i.exit("definitionMarker"),T):u(F)}function T(F){return z2(F)?LR(i,_)(F):_(F)}function _(F){return ZVe(i,A,u,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(F)}function A(F){return i.attempt(EJt,P,P)(F)}function P(F){return Iu(F)?Kl(i,R,"whitespace")(F):R(F)}function R(F){return F===null||so(F)?(i.exit("definition"),d.parser.defined.push(p),s(F)):u(F)}}function CJt(i,s,u){return d;function d(y){return z2(y)?LR(i,p)(y):u(y)}function p(y){return tUe(i,v,u,"definitionTitle","definitionTitleMarker","definitionTitleString")(y)}function v(y){return Iu(y)?Kl(i,b,"whitespace")(y):b(y)}function b(y){return y===null||so(y)?s(y):u(y)}}const SJt={name:"hardBreakEscape",tokenize:_Jt};function _Jt(i,s,u){return d;function d(v){return i.enter("hardBreakEscape"),i.consume(v),p}function p(v){return so(v)?(i.exit("hardBreakEscape"),s(v)):u(v)}}const AJt={name:"headingAtx",tokenize:MJt,resolve:LJt};function LJt(i,s){let u=i.length-2,d=3,p,v;return i[d][1].type==="whitespace"&&(d+=2),u-2>d&&i[u][1].type==="whitespace"&&(u-=2),i[u][1].type==="atxHeadingSequence"&&(d===u-1||u-4>d&&i[u-2][1].type==="whitespace")&&(u-=d+1===u?2:4),u>d&&(p={type:"atxHeadingText",start:i[d][1].start,end:i[u][1].end},v={type:"chunkText",start:i[d][1].start,end:i[u][1].end,contentType:"text"},t5(i,d,u-d+1,[["enter",p,s],["enter",v,s],["exit",v,s],["exit",p,s]])),i}function MJt(i,s,u){let d=0;return p;function p(A){return i.enter("atxHeading"),v(A)}function v(A){return i.enter("atxHeadingSequence"),b(A)}function b(A){return A===35&&d++<6?(i.consume(A),b):A===null||z2(A)?(i.exit("atxHeadingSequence"),y(A)):u(A)}function y(A){return A===35?(i.enter("atxHeadingSequence"),T(A)):A===null||so(A)?(i.exit("atxHeading"),s(A)):Iu(A)?Kl(i,y,"whitespace")(A):(i.enter("atxHeadingText"),_(A))}function T(A){return A===35?(i.consume(A),T):(i.exit("atxHeadingSequence"),y(A))}function _(A){return A===null||A===35||z2(A)?(i.exit("atxHeadingText"),y(A)):(i.consume(A),_)}}const DJt=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],nUe=["pre","script","style","textarea"],IJt={name:"htmlFlow",tokenize:BJt,resolveTo:PJt,concrete:!0},OJt={tokenize:RJt,partial:!0},NJt={tokenize:FJt,partial:!0};function PJt(i){let s=i.length;for(;s--&&!(i[s][0]==="enter"&&i[s][1].type==="htmlFlow"););return s>1&&i[s-2][1].type==="linePrefix"&&(i[s][1].start=i[s-2][1].start,i[s+1][1].start=i[s-2][1].start,i.splice(s-2,2)),i}function BJt(i,s,u){const d=this;let p,v,b,y,T;return _;function _(Ne){return A(Ne)}function A(Ne){return i.enter("htmlFlow"),i.enter("htmlFlowData"),i.consume(Ne),P}function P(Ne){return Ne===33?(i.consume(Ne),R):Ne===47?(i.consume(Ne),v=!0,K):Ne===63?(i.consume(Ne),p=3,d.interrupt?s:ke):n5(Ne)?(i.consume(Ne),b=String.fromCharCode(Ne),ee):u(Ne)}function R(Ne){return Ne===45?(i.consume(Ne),p=2,F):Ne===91?(i.consume(Ne),p=5,y=0,j):n5(Ne)?(i.consume(Ne),p=4,d.interrupt?s:ke):u(Ne)}function F(Ne){return Ne===45?(i.consume(Ne),d.interrupt?s:ke):u(Ne)}function j(Ne){const gn="CDATA[";return Ne===gn.charCodeAt(y++)?(i.consume(Ne),y===gn.length?d.interrupt?s:xe:j):u(Ne)}function K(Ne){return n5(Ne)?(i.consume(Ne),b=String.fromCharCode(Ne),ee):u(Ne)}function ee(Ne){if(Ne===null||Ne===47||Ne===62||z2(Ne)){const gn=Ne===47,_t=b.toLowerCase();return!gn&&!v&&nUe.includes(_t)?(p=1,d.interrupt?s(Ne):xe(Ne)):DJt.includes(b.toLowerCase())?(p=6,gn?(i.consume(Ne),ie):d.interrupt?s(Ne):xe(Ne)):(p=7,d.interrupt&&!d.parser.lazy[d.now().line]?u(Ne):v?oe(Ne):pe(Ne))}return Ne===45||H3(Ne)?(i.consume(Ne),b+=String.fromCharCode(Ne),ee):u(Ne)}function ie(Ne){return Ne===62?(i.consume(Ne),d.interrupt?s:xe):u(Ne)}function oe(Ne){return Iu(Ne)?(i.consume(Ne),oe):ge(Ne)}function pe(Ne){return Ne===47?(i.consume(Ne),ge):Ne===58||Ne===95||n5(Ne)?(i.consume(Ne),be):Iu(Ne)?(i.consume(Ne),pe):ge(Ne)}function be(Ne){return Ne===45||Ne===46||Ne===58||Ne===95||H3(Ne)?(i.consume(Ne),be):ae(Ne)}function ae(Ne){return Ne===61?(i.consume(Ne),ne):Iu(Ne)?(i.consume(Ne),ae):pe(Ne)}function ne(Ne){return Ne===null||Ne===60||Ne===61||Ne===62||Ne===96?u(Ne):Ne===34||Ne===39?(i.consume(Ne),T=Ne,se):Iu(Ne)?(i.consume(Ne),ne):de(Ne)}function se(Ne){return Ne===T?(i.consume(Ne),T=null,X):Ne===null||so(Ne)?u(Ne):(i.consume(Ne),se)}function de(Ne){return Ne===null||Ne===34||Ne===39||Ne===47||Ne===60||Ne===61||Ne===62||Ne===96||z2(Ne)?ae(Ne):(i.consume(Ne),de)}function X(Ne){return Ne===47||Ne===62||Iu(Ne)?pe(Ne):u(Ne)}function ge(Ne){return Ne===62?(i.consume(Ne),W):u(Ne)}function W(Ne){return Ne===null||so(Ne)?xe(Ne):Iu(Ne)?(i.consume(Ne),W):u(Ne)}function xe(Ne){return Ne===45&&p===2?(i.consume(Ne),je):Ne===60&&p===1?(i.consume(Ne),Ie):Ne===62&&p===4?(i.consume(Ne),Ke):Ne===63&&p===3?(i.consume(Ne),ke):Ne===93&&p===5?(i.consume(Ne),Ce):so(Ne)&&(p===6||p===7)?(i.exit("htmlFlowData"),i.check(OJt,Ft,U)(Ne)):Ne===null||so(Ne)?(i.exit("htmlFlowData"),U(Ne)):(i.consume(Ne),xe)}function U(Ne){return i.check(NJt,Fe,Ft)(Ne)}function Fe(Ne){return i.enter("lineEnding"),i.consume(Ne),i.exit("lineEnding"),Pe}function Pe(Ne){return Ne===null||so(Ne)?U(Ne):(i.enter("htmlFlowData"),xe(Ne))}function je(Ne){return Ne===45?(i.consume(Ne),ke):xe(Ne)}function Ie(Ne){return Ne===47?(i.consume(Ne),b="",Se):xe(Ne)}function Se(Ne){if(Ne===62){const gn=b.toLowerCase();return nUe.includes(gn)?(i.consume(Ne),Ke):xe(Ne)}return n5(Ne)&&b.length<8?(i.consume(Ne),b+=String.fromCharCode(Ne),Se):xe(Ne)}function Ce(Ne){return Ne===93?(i.consume(Ne),ke):xe(Ne)}function ke(Ne){return Ne===62?(i.consume(Ne),Ke):Ne===45&&p===2?(i.consume(Ne),ke):xe(Ne)}function Ke(Ne){return Ne===null||so(Ne)?(i.exit("htmlFlowData"),Ft(Ne)):(i.consume(Ne),Ke)}function Ft(Ne){return i.exit("htmlFlow"),s(Ne)}}function FJt(i,s,u){const d=this;return p;function p(b){return so(b)?(i.enter("lineEnding"),i.consume(b),i.exit("lineEnding"),v):u(b)}function v(b){return d.parser.lazy[d.now().line]?u(b):s(b)}}function RJt(i,s,u){return d;function d(p){return i.enter("lineEnding"),i.consume(p),i.exit("lineEnding"),i.attempt(YQ,s,u)}}const jJt={name:"htmlText",tokenize:$Jt};function $Jt(i,s,u){const d=this;let p,v,b;return y;function y(ke){return i.enter("htmlText"),i.enter("htmlTextData"),i.consume(ke),T}function T(ke){return ke===33?(i.consume(ke),_):ke===47?(i.consume(ke),ae):ke===63?(i.consume(ke),pe):n5(ke)?(i.consume(ke),de):u(ke)}function _(ke){return ke===45?(i.consume(ke),A):ke===91?(i.consume(ke),v=0,j):n5(ke)?(i.consume(ke),oe):u(ke)}function A(ke){return ke===45?(i.consume(ke),F):u(ke)}function P(ke){return ke===null?u(ke):ke===45?(i.consume(ke),R):so(ke)?(b=P,Ie(ke)):(i.consume(ke),P)}function R(ke){return ke===45?(i.consume(ke),F):P(ke)}function F(ke){return ke===62?je(ke):ke===45?R(ke):P(ke)}function j(ke){const Ke="CDATA[";return ke===Ke.charCodeAt(v++)?(i.consume(ke),v===Ke.length?K:j):u(ke)}function K(ke){return ke===null?u(ke):ke===93?(i.consume(ke),ee):so(ke)?(b=K,Ie(ke)):(i.consume(ke),K)}function ee(ke){return ke===93?(i.consume(ke),ie):K(ke)}function ie(ke){return ke===62?je(ke):ke===93?(i.consume(ke),ie):K(ke)}function oe(ke){return ke===null||ke===62?je(ke):so(ke)?(b=oe,Ie(ke)):(i.consume(ke),oe)}function pe(ke){return ke===null?u(ke):ke===63?(i.consume(ke),be):so(ke)?(b=pe,Ie(ke)):(i.consume(ke),pe)}function be(ke){return ke===62?je(ke):pe(ke)}function ae(ke){return n5(ke)?(i.consume(ke),ne):u(ke)}function ne(ke){return ke===45||H3(ke)?(i.consume(ke),ne):se(ke)}function se(ke){return so(ke)?(b=se,Ie(ke)):Iu(ke)?(i.consume(ke),se):je(ke)}function de(ke){return ke===45||H3(ke)?(i.consume(ke),de):ke===47||ke===62||z2(ke)?X(ke):u(ke)}function X(ke){return ke===47?(i.consume(ke),je):ke===58||ke===95||n5(ke)?(i.consume(ke),ge):so(ke)?(b=X,Ie(ke)):Iu(ke)?(i.consume(ke),X):je(ke)}function ge(ke){return ke===45||ke===46||ke===58||ke===95||H3(ke)?(i.consume(ke),ge):W(ke)}function W(ke){return ke===61?(i.consume(ke),xe):so(ke)?(b=W,Ie(ke)):Iu(ke)?(i.consume(ke),W):X(ke)}function xe(ke){return ke===null||ke===60||ke===61||ke===62||ke===96?u(ke):ke===34||ke===39?(i.consume(ke),p=ke,U):so(ke)?(b=xe,Ie(ke)):Iu(ke)?(i.consume(ke),xe):(i.consume(ke),Fe)}function U(ke){return ke===p?(i.consume(ke),p=void 0,Pe):ke===null?u(ke):so(ke)?(b=U,Ie(ke)):(i.consume(ke),U)}function Fe(ke){return ke===null||ke===34||ke===39||ke===60||ke===61||ke===96?u(ke):ke===47||ke===62||z2(ke)?X(ke):(i.consume(ke),Fe)}function Pe(ke){return ke===47||ke===62||z2(ke)?X(ke):u(ke)}function je(ke){return ke===62?(i.consume(ke),i.exit("htmlTextData"),i.exit("htmlText"),s):u(ke)}function Ie(ke){return i.exit("htmlTextData"),i.enter("lineEnding"),i.consume(ke),i.exit("lineEnding"),Se}function Se(ke){return Iu(ke)?Kl(i,Ce,"linePrefix",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(ke):Ce(ke)}function Ce(ke){return i.enter("htmlTextData"),b(ke)}}const Ome={name:"labelEnd",tokenize:GJt,resolveTo:UJt,resolveAll:VJt},zJt={tokenize:KJt},qJt={tokenize:WJt},HJt={tokenize:YJt};function VJt(i){let s=-1;for(;++s=3&&(_===null||so(_))?(i.exit("thematicBreak"),s(_)):u(_)}function T(_){return _===p?(i.consume(_),d++,T):(i.exit("thematicBreakSequence"),Iu(_)?Kl(i,y,"whitespace")(_):y(_))}}const q2={name:"list",tokenize:iZt,continuation:{tokenize:sZt},exit:oZt},nZt={tokenize:cZt,partial:!0},rZt={tokenize:aZt,partial:!0};function iZt(i,s,u){const d=this,p=d.events[d.events.length-1];let v=p&&p[1].type==="linePrefix"?p[2].sliceSerialize(p[1],!0).length:0,b=0;return y;function y(F){const j=d.containerState.type||(F===42||F===43||F===45?"listUnordered":"listOrdered");if(j==="listUnordered"?!d.containerState.marker||F===d.containerState.marker:Ame(F)){if(d.containerState.type||(d.containerState.type=j,i.enter(j,{_container:!0})),j==="listUnordered")return i.enter("listItemPrefix"),F===42||F===45?i.check(XQ,u,_)(F):_(F);if(!d.interrupt||F===49)return i.enter("listItemPrefix"),i.enter("listItemValue"),T(F)}return u(F)}function T(F){return Ame(F)&&++b<10?(i.consume(F),T):(!d.interrupt||b<2)&&(d.containerState.marker?F===d.containerState.marker:F===41||F===46)?(i.exit("listItemValue"),_(F)):u(F)}function _(F){return i.enter("listItemMarker"),i.consume(F),i.exit("listItemMarker"),d.containerState.marker=d.containerState.marker||F,i.check(YQ,d.interrupt?u:A,i.attempt(nZt,R,P))}function A(F){return d.containerState.initialBlankLine=!0,v++,R(F)}function P(F){return Iu(F)?(i.enter("listItemPrefixWhitespace"),i.consume(F),i.exit("listItemPrefixWhitespace"),R):u(F)}function R(F){return d.containerState.size=v+d.sliceSerialize(i.exit("listItemPrefix"),!0).length,s(F)}}function sZt(i,s,u){const d=this;return d.containerState._closeFlow=void 0,i.check(YQ,p,v);function p(y){return d.containerState.furtherBlankLines=d.containerState.furtherBlankLines||d.containerState.initialBlankLine,Kl(i,s,"listItemIndent",d.containerState.size+1)(y)}function v(y){return d.containerState.furtherBlankLines||!Iu(y)?(d.containerState.furtherBlankLines=void 0,d.containerState.initialBlankLine=void 0,b(y)):(d.containerState.furtherBlankLines=void 0,d.containerState.initialBlankLine=void 0,i.attempt(rZt,s,b)(y))}function b(y){return d.containerState._closeFlow=!0,d.interrupt=void 0,Kl(i,i.attempt(q2,s,u),"linePrefix",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(y)}}function aZt(i,s,u){const d=this;return Kl(i,p,"listItemIndent",d.containerState.size+1);function p(v){const b=d.events[d.events.length-1];return b&&b[1].type==="listItemIndent"&&b[2].sliceSerialize(b[1],!0).length===d.containerState.size?s(v):u(v)}}function oZt(i){i.exit(this.containerState.type)}function cZt(i,s,u){const d=this;return Kl(i,p,"listItemPrefixWhitespace",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4+1);function p(v){const b=d.events[d.events.length-1];return!Iu(v)&&b&&b[1].type==="listItemPrefixWhitespace"?s(v):u(v)}}const rUe={name:"setextUnderline",tokenize:lZt,resolveTo:uZt};function uZt(i,s){let u=i.length,d,p,v;for(;u--;)if(i[u][0]==="enter"){if(i[u][1].type==="content"){d=u;break}i[u][1].type==="paragraph"&&(p=u)}else i[u][1].type==="content"&&i.splice(u,1),!v&&i[u][1].type==="definition"&&(v=u);const b={type:"setextHeading",start:Object.assign({},i[p][1].start),end:Object.assign({},i[i.length-1][1].end)};return i[p][1].type="setextHeadingText",v?(i.splice(p,0,["enter",b,s]),i.splice(v+1,0,["exit",i[d][1],s]),i[d][1].end=Object.assign({},i[v][1].end)):i[d][1]=b,i.push(["exit",b,s]),i}function lZt(i,s,u){const d=this;let p;return v;function v(_){let A=d.events.length,P;for(;A--;)if(d.events[A][1].type!=="lineEnding"&&d.events[A][1].type!=="linePrefix"&&d.events[A][1].type!=="content"){P=d.events[A][1].type==="paragraph";break}return!d.parser.lazy[d.now().line]&&(d.interrupt||P)?(i.enter("setextHeadingLine"),p=_,b(_)):u(_)}function b(_){return i.enter("setextHeadingLineSequence"),y(_)}function y(_){return _===p?(i.consume(_),y):(i.exit("setextHeadingLineSequence"),Iu(_)?Kl(i,T,"lineSuffix")(_):T(_))}function T(_){return _===null||so(_)?(i.exit("setextHeadingLine"),s(_)):u(_)}}const hZt={tokenize:fZt};function fZt(i){const s=this,u=i.attempt(YQ,d,i.attempt(this.parser.constructs.flowInitial,p,Kl(i,i.attempt(this.parser.constructs.flow,p,i.attempt(mJt,p)),"linePrefix")));return u;function d(v){if(v===null){i.consume(v);return}return i.enter("lineEndingBlank"),i.consume(v),i.exit("lineEndingBlank"),s.currentConstruct=void 0,u}function p(v){if(v===null){i.consume(v);return}return i.enter("lineEnding"),i.consume(v),i.exit("lineEnding"),s.currentConstruct=void 0,u}}const dZt={resolveAll:sUe()},gZt=iUe("string"),pZt=iUe("text");function iUe(i){return{tokenize:s,resolveAll:sUe(i==="text"?bZt:void 0)};function s(u){const d=this,p=this.parser.constructs[i],v=u.attempt(p,b,y);return b;function b(A){return _(A)?v(A):y(A)}function y(A){if(A===null){u.consume(A);return}return u.enter("data"),u.consume(A),T}function T(A){return _(A)?(u.exit("data"),v(A)):(u.consume(A),T)}function _(A){if(A===null)return!0;const P=p[A];let R=-1;if(P)for(;++R-1){const y=b[0];typeof y=="string"?b[0]=y.slice(d):b.shift()}v>0&&b.push(i[p].slice(0,v))}return b}function wZt(i,s){let u=-1;const d=[];let p;for(;++u13&&u<32||u>126&&u<160||u>55295&&u<57344||u>64975&&u<65008||(u&65535)===65535||(u&65535)===65534||u>1114111?"�":String.fromCharCode(u)}const TZt=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function CZt(i){return i.replace(TZt,SZt)}function SZt(i,s,u){if(s)return s;if(u.charCodeAt(0)===35){const p=u.charCodeAt(1),v=p===120||p===88;return oUe(u.slice(v?2:1),v?16:10)}return Dme(u)||i}function QQ(i){return!i||typeof i!="object"?"":"position"in i||"type"in i?cUe(i.position):"start"in i||"end"in i?cUe(i):"line"in i||"column"in i?Pme(i):""}function Pme(i){return uUe(i&&i.line)+":"+uUe(i&&i.column)}function cUe(i){return Pme(i&&i.start)+"-"+Pme(i&&i.end)}function uUe(i){return i&&typeof i=="number"?i:1}const lUe={}.hasOwnProperty,hUe=function(i,s,u){return typeof s!="string"&&(u=s,s=void 0),_Zt(u)(EZt(xZt(u).document().write(kZt()(i,s,!0))))};function _Zt(i){const s={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:y(Ma),autolinkProtocol:W,autolinkEmail:W,atxHeading:y(zr),blockQuote:y(Qe),characterEscape:W,characterReference:W,codeFenced:y(Dt),codeFencedFenceInfo:T,codeFencedFenceMeta:T,codeIndented:y(Dt,T),codeText:y(kt,T),codeTextData:W,data:W,codeFlowValue:W,definition:y(On),definitionDestinationString:T,definitionLabelString:T,definitionTitleString:T,emphasis:y(ht),hardBreakEscape:y(yt),hardBreakTrailing:y(yt),htmlFlow:y(ji,T),htmlFlowData:W,htmlText:y(ji,T),htmlTextData:W,image:y(xi),label:T,link:y(Ma),listItem:y(ao),listItemValue:j,listOrdered:y(zs,F),listUnordered:y(zs),paragraph:y(Tr),reference:_t,referenceString:T,resourceDestinationString:T,resourceTitleString:T,setextHeading:y(zr),strong:y(Fn),thematicBreak:y(Un)},exit:{atxHeading:A(),atxHeadingSequence:se,autolink:A(),autolinkEmail:Pt,autolinkProtocol:xt,blockQuote:A(),characterEscapeValue:xe,characterReferenceMarkerHexadecimal:Gt,characterReferenceMarkerNumeric:Gt,characterReferenceValue:ln,codeFenced:A(oe),codeFencedFence:ie,codeFencedFenceInfo:K,codeFencedFenceMeta:ee,codeFlowValue:xe,codeIndented:A(pe),codeText:A(Ie),codeTextData:xe,data:xe,definition:A(),definitionDestinationString:ne,definitionLabelString:be,definitionTitleString:ae,emphasis:A(),hardBreakEscape:A(Fe),hardBreakTrailing:A(Fe),htmlFlow:A(Pe),htmlFlowData:xe,htmlText:A(je),htmlTextData:xe,image:A(Ce),label:Ke,labelText:ke,lineEnding:U,link:A(Se),listItem:A(),listOrdered:A(),listUnordered:A(),paragraph:A(),referenceString:Et,resourceDestinationString:Ft,resourceTitleString:Ne,resource:gn,setextHeading:A(ge),setextHeadingLineSequence:X,setextHeadingText:de,strong:A(),thematicBreak:A()}};fUe(s,(i||{}).mdastExtensions||[]);const u={};return d;function d(At){let wt={type:"root",children:[]};const on={stack:[wt],tokenStack:[],config:s,enter:_,exit:P,buffer:T,resume:R,setData:v,getData:b},fn=[];let An=-1;for(;++An0){const oo=on.tokenStack[on.tokenStack.length-1];(oo[1]||dUe).call(on,void 0,oo[0])}for(wt.position={start:N9(At.length>0?At[0][1].start:{line:1,column:1,offset:0}),end:N9(At.length>0?At[At.length-2][1].end:{line:1,column:1,offset:0})},An=-1;++An"+y+""),PZt(b,s.labelStyle),b.style("display","table-cell"),b.style("white-space","nowrap"),b.style("max-width",u+"px"),b.attr("xmlns","http://www.w3.org/1999/xhtml"),p&&b.attr("class","labelBkg");let _=b.node().getBoundingClientRect();return _.width===u&&(b.style("display","table"),b.style("white-space","break-spaces"),b.style("width",u+"px"),_=b.node().getBoundingClientRect()),v.style("width",_.width),v.style("height",_.height),v.node()}function Fme(i,s,u){return i.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",s*u-.1+"em").attr("dy",u+"em")}function FZt(i,s,u){const d=i.append("text"),p=Fme(d,1,s);Rme(p,u);const v=p.node().getComputedTextLength();return d.remove(),v}function RZt(i,s,u){var b;const d=i.append("text"),p=Fme(d,1,s);Rme(p,[{content:u,type:"normal"}]);const v=(b=p.node())==null?void 0:b.getBoundingClientRect();return v&&d.remove(),v}function jZt(i,s,u,d=!1){const v=s.append("g"),b=v.insert("rect").attr("class","background"),y=v.append("text").attr("y","-10.1");let T=0;for(const _ of u){const A=R=>FZt(v,1.1,R)<=i,P=A(_)?[_]:NZt(_,A);for(const R of P){const F=Fme(y,T,1.1);Rme(F,R),T++}}if(d){const _=y.node().getBBox(),A=2;return b.attr("x",-A).attr("y",-A).attr("width",_.width+2*A).attr("height",_.height+2*A),v.node()}else return y.node()}function Rme(i,s){i.text(""),s.forEach((u,d)=>{const p=i.append("tspan").attr("font-style",u.type==="emphasis"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",u.type==="strong"?"bold":"normal");d===0?p.text(u.content):p.text(" "+u.content)})}const JQ=(i,s="",{style:u="",isTitle:d=!1,classes:p="",useHtmlLabels:v=!0,isNode:b=!0,width:y=200,addSvgBackground:T=!1}={})=>{if(Xe.info("createText",s,u,d,p,v,b,T),v){const _=DZt(s),A={isNode:b,label:ZF(_).replace(/fa[blrs]?:fa-[\w-]+/g,R=>``),labelStyle:u.replace("fill:","color:")};return BZt(i,A,y,p,T)}else{const _=MZt(s);return jZt(y,i,_,T)}},g1=async(i,s,u,d)=>{let p;const v=s.useHtmlLabels||f1(qt().flowchart.htmlLabels);u?p=u:p="node default";const b=i.insert("g").attr("class",p).attr("id",s.domId||s.id),y=b.insert("g").attr("class","label").attr("style",s.labelStyle);let T;s.labelText===void 0?T="":T=typeof s.labelText=="string"?s.labelText:s.labelText[0];const _=y.node();let A;s.labelType==="markdown"?A=JQ(y,Yf(ZF(T),qt()),{useHtmlLabels:v,width:s.width||qt().flowchart.wrappingWidth,classes:"markdown-node-label"}):A=_.appendChild($2(Yf(ZF(T),qt()),s.labelStyle,!1,d));let P=A.getBBox();const R=s.padding/2;if(f1(qt().flowchart.htmlLabels)){const F=A.children[0],j=Ir(A),K=F.getElementsByTagName("img");if(K){const ee=T.replace(/]*>/g,"").trim()==="";await Promise.all([...K].map(ie=>new Promise(oe=>{function pe(){if(ie.style.display="flex",ie.style.flexDirection="column",ee){const be=qt().fontSize?qt().fontSize:window.getComputedStyle(document.body).fontSize,ae=5,ne=parseInt(be,10)*ae+"px";ie.style.minWidth=ne,ie.style.maxWidth=ne}else ie.style.width="100%";oe(ie)}setTimeout(()=>{ie.complete&&pe()}),ie.addEventListener("error",pe),ie.addEventListener("load",pe)})))}P=F.getBoundingClientRect(),j.attr("width",P.width),j.attr("height",P.height)}return v?y.attr("transform","translate("+-P.width/2+", "+-P.height/2+")"):y.attr("transform","translate(0, "+-P.height/2+")"),s.centerLabel&&y.attr("transform","translate("+-P.width/2+", "+-P.height/2+")"),y.insert("rect",":first-child"),{shapeSvg:b,bbox:P,halfPadding:R,label:y}},Kh=(i,s)=>{const u=s.node().getBBox();i.width=u.width,i.height=u.height};function r5(i,s,u,d){return i.insert("polygon",":first-child").attr("points",d.map(function(p){return p.x+","+p.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-s/2+","+u/2+")")}let Mo={},V3={},pUe={};const $Zt=()=>{V3={},pUe={},Mo={}},ZQ=(i,s)=>(Xe.trace("In isDescendant",s," ",i," = ",V3[s].includes(i)),!!V3[s].includes(i)),zZt=(i,s)=>(Xe.info("Descendants of ",s," is ",V3[s]),Xe.info("Edge is ",i),i.v===s||i.w===s?!1:V3[s]?V3[s].includes(i.v)||ZQ(i.v,s)||ZQ(i.w,s)||V3[s].includes(i.w):(Xe.debug("Tilt, ",s,",not in descendants"),!1)),bUe=(i,s,u,d)=>{Xe.warn("Copying children of ",i,"root",d,"data",s.node(i),d);const p=s.children(i)||[];i!==d&&p.push(i),Xe.warn("Copying (nodes) clusterId",i,"nodes",p),p.forEach(v=>{if(s.children(v).length>0)bUe(v,s,u,d);else{const b=s.node(v);Xe.info("cp ",v," to ",d," with parent ",i),u.setNode(v,b),d!==s.parent(v)&&(Xe.warn("Setting parent",v,s.parent(v)),u.setParent(v,s.parent(v))),i!==d&&v!==i?(Xe.debug("Setting parent",v,i),u.setParent(v,i)):(Xe.info("In copy ",i,"root",d,"data",s.node(i),d),Xe.debug("Not Setting parent for node=",v,"cluster!==rootId",i!==d,"node!==clusterId",v!==i));const y=s.edges(v);Xe.debug("Copying Edges",y),y.forEach(T=>{Xe.info("Edge",T);const _=s.edge(T.v,T.w,T.name);Xe.info("Edge data",_,d);try{zZt(T,d)?(Xe.info("Copying as ",T.v,T.w,_,T.name),u.setEdge(T.v,T.w,_,T.name),Xe.info("newGraph edges ",u.edges(),u.edge(u.edges()[0]))):Xe.info("Skipping copy of edge ",T.v,"-->",T.w," rootId: ",d," clusterId:",i)}catch(A){Xe.error(A)}})}Xe.debug("Removing node",v),s.removeNode(v)})},mUe=(i,s)=>{const u=s.children(i);let d=[...u];for(const p of u)pUe[p]=i,d=[...d,...mUe(p,s)];return d},MR=(i,s)=>{Xe.trace("Searching",i);const u=s.children(i);if(Xe.trace("Searching children of id ",i,u),u.length<1)return Xe.trace("This is a valid node",i),i;for(const d of u){const p=MR(d,s);if(p)return Xe.trace("Found replacement for",i," => ",p),p}},eJ=i=>!Mo[i]||!Mo[i].externalConnections?i:Mo[i]?Mo[i].id:i,qZt=(i,s)=>{if(!i||s>10){Xe.debug("Opting out, no graph ");return}else Xe.debug("Opting in, graph ");i.nodes().forEach(function(u){i.children(u).length>0&&(Xe.warn("Cluster identified",u," Replacement id in edges: ",MR(u,i)),V3[u]=mUe(u,i),Mo[u]={id:MR(u,i),clusterData:i.node(u)})}),i.nodes().forEach(function(u){const d=i.children(u),p=i.edges();d.length>0?(Xe.debug("Cluster identified",u,V3),p.forEach(v=>{if(v.v!==u&&v.w!==u){const b=ZQ(v.v,u),y=ZQ(v.w,u);b^y&&(Xe.warn("Edge: ",v," leaves cluster ",u),Xe.warn("Descendants of XXX ",u,": ",V3[u]),Mo[u].externalConnections=!0)}})):Xe.debug("Not a cluster ",u,V3)});for(let u of Object.keys(Mo)){const d=Mo[u].id,p=i.parent(d);p!==u&&Mo[p]&&!Mo[p].externalConnections&&(Mo[u].id=p)}i.edges().forEach(function(u){const d=i.edge(u);Xe.warn("Edge "+u.v+" -> "+u.w+": "+JSON.stringify(u)),Xe.warn("Edge "+u.v+" -> "+u.w+": "+JSON.stringify(i.edge(u)));let p=u.v,v=u.w;if(Xe.warn("Fix XXX",Mo,"ids:",u.v,u.w,"Translating: ",Mo[u.v]," --- ",Mo[u.w]),Mo[u.v]&&Mo[u.w]&&Mo[u.v]===Mo[u.w]){Xe.warn("Fixing and trixing link to self - removing XXX",u.v,u.w,u.name),Xe.warn("Fixing and trixing - removing XXX",u.v,u.w,u.name),p=eJ(u.v),v=eJ(u.w),i.removeEdge(u.v,u.w,u.name);const b=u.w+"---"+u.v;i.setNode(b,{domId:b,id:b,labelStyle:"",labelText:d.label,padding:0,shape:"labelRect",style:""});const y=structuredClone(d),T=structuredClone(d);y.label="",y.arrowTypeEnd="none",T.label="",y.fromCluster=u.v,T.toCluster=u.v,i.setEdge(p,b,y,u.name+"-cyclic-special"),i.setEdge(b,v,T,u.name+"-cyclic-special")}else if(Mo[u.v]||Mo[u.w]){if(Xe.warn("Fixing and trixing - removing XXX",u.v,u.w,u.name),p=eJ(u.v),v=eJ(u.w),i.removeEdge(u.v,u.w,u.name),p!==u.v){const b=i.parent(p);Mo[b].externalConnections=!0,d.fromCluster=u.v}if(v!==u.w){const b=i.parent(v);Mo[b].externalConnections=!0,d.toCluster=u.w}Xe.warn("Fix Replacing with XXX",p,v,u.name),i.setEdge(p,v,d,u.name)}}),Xe.warn("Adjusted Graph",q7(i)),vUe(i,0),Xe.trace(Mo)},vUe=(i,s)=>{if(Xe.warn("extractor - ",s,q7(i),i.children("D")),s>10){Xe.error("Bailing out");return}let u=i.nodes(),d=!1;for(const p of u){const v=i.children(p);d=d||v.length>0}if(!d){Xe.debug("Done, no node has children",i.nodes());return}Xe.debug("Nodes = ",u,s);for(const p of u)if(Xe.debug("Extracting node",p,Mo,Mo[p]&&!Mo[p].externalConnections,!i.parent(p),i.node(p),i.children("D")," Depth ",s),!Mo[p])Xe.debug("Not a cluster",p,s);else if(!Mo[p].externalConnections&&i.children(p)&&i.children(p).length>0){Xe.warn("Cluster without external connections, without a parent and with children",p,s);let b=i.graph().rankdir==="TB"?"LR":"TB";Mo[p]&&Mo[p].clusterData&&Mo[p].clusterData.dir&&(b=Mo[p].clusterData.dir,Xe.warn("Fixing dir",Mo[p].clusterData.dir,b));const y=new B0({multigraph:!0,compound:!0}).setGraph({rankdir:b,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});Xe.warn("Old graph before copy",q7(i)),bUe(p,i,y,p),i.setNode(p,{clusterNode:!0,id:p,clusterData:Mo[p].clusterData,labelText:Mo[p].labelText,graph:y}),Xe.warn("New graph after copy node: (",p,")",q7(y)),Xe.debug("Old graph after copy",q7(i))}else Xe.warn("Cluster ** ",p," **not meeting the criteria !externalConnections:",!Mo[p].externalConnections," no parent: ",!i.parent(p)," children ",i.children(p)&&i.children(p).length>0,i.children("D"),s),Xe.debug(Mo);u=i.nodes(),Xe.warn("New list of nodes",u);for(const p of u){const v=i.node(p);Xe.warn(" Now next level",p,v),v.clusterNode&&vUe(v.graph,s+1)}},wUe=(i,s)=>{if(s.length===0)return[];let u=Object.assign(s);return s.forEach(d=>{const p=i.children(d),v=wUe(i,p);u=[...u,...v]}),u},HZt=i=>wUe(i,i.children());function VZt(i,s){return i.intersect(s)}function yUe(i,s,u,d){var p=i.x,v=i.y,b=p-d.x,y=v-d.y,T=Math.sqrt(s*s*y*y+u*u*b*b),_=Math.abs(s*u*b/T);d.x0}function KZt(i,s,u){var d=i.x,p=i.y,v=[],b=Number.POSITIVE_INFINITY,y=Number.POSITIVE_INFINITY;typeof s.forEach=="function"?s.forEach(function(j){b=Math.min(b,j.x),y=Math.min(y,j.y)}):(b=Math.min(b,s.x),y=Math.min(y,s.y));for(var T=d-i.width/2-b,_=p-i.height/2-y,A=0;A1&&v.sort(function(j,K){var ee=j.x-u.x,ie=j.y-u.y,oe=Math.sqrt(ee*ee+ie*ie),pe=K.x-u.x,be=K.y-u.y,ae=Math.sqrt(pe*pe+be*be);return oe{var u=i.x,d=i.y,p=s.x-u,v=s.y-d,b=i.width/2,y=i.height/2,T,_;return Math.abs(v)*b>Math.abs(p)*y?(v<0&&(y=-y),T=v===0?0:y*p/v,_=y):(p<0&&(b=-b),T=b,_=p===0?0:b*v/p),{x:u+T,y:d+_}},yh={node:VZt,circle:UZt,ellipse:yUe,polygon:KZt,rect:DR},WZt=async(i,s)=>{s.useHtmlLabels||qt().flowchart.htmlLabels||(s.centerLabel=!0);const{shapeSvg:d,bbox:p,halfPadding:v}=await g1(i,s,"node "+s.classes,!0);Xe.info("Classes = ",s.classes);const b=d.insert("rect",":first-child");return b.attr("rx",s.rx).attr("ry",s.ry).attr("x",-p.width/2-v).attr("y",-p.height/2-v).attr("width",p.width+s.padding).attr("height",p.height+s.padding),Kh(s,b),s.intersect=function(y){return yh.rect(s,y)},d},YZt=i=>{const s=new Set;for(const u of i)switch(u){case"x":s.add("right"),s.add("left");break;case"y":s.add("up"),s.add("down");break;default:s.add(u);break}return s},XZt=(i,s,u)=>{const d=YZt(i),p=2,v=s.height+2*u.padding,b=v/p,y=s.width+2*b+u.padding,T=u.padding/2;return d.has("right")&&d.has("left")&&d.has("up")&&d.has("down")?[{x:0,y:0},{x:b,y:0},{x:y/2,y:2*T},{x:y-b,y:0},{x:y,y:0},{x:y,y:-v/3},{x:y+2*T,y:-v/2},{x:y,y:-2*v/3},{x:y,y:-v},{x:y-b,y:-v},{x:y/2,y:-v-2*T},{x:b,y:-v},{x:0,y:-v},{x:0,y:-2*v/3},{x:-2*T,y:-v/2},{x:0,y:-v/3}]:d.has("right")&&d.has("left")&&d.has("up")?[{x:b,y:0},{x:y-b,y:0},{x:y,y:-v/2},{x:y-b,y:-v},{x:b,y:-v},{x:0,y:-v/2}]:d.has("right")&&d.has("left")&&d.has("down")?[{x:0,y:0},{x:b,y:-v},{x:y-b,y:-v},{x:y,y:0}]:d.has("right")&&d.has("up")&&d.has("down")?[{x:0,y:0},{x:y,y:-b},{x:y,y:-v+b},{x:0,y:-v}]:d.has("left")&&d.has("up")&&d.has("down")?[{x:y,y:0},{x:0,y:-b},{x:0,y:-v+b},{x:y,y:-v}]:d.has("right")&&d.has("left")?[{x:b,y:0},{x:b,y:-T},{x:y-b,y:-T},{x:y-b,y:0},{x:y,y:-v/2},{x:y-b,y:-v},{x:y-b,y:-v+T},{x:b,y:-v+T},{x:b,y:-v},{x:0,y:-v/2}]:d.has("up")&&d.has("down")?[{x:y/2,y:0},{x:0,y:-T},{x:b,y:-T},{x:b,y:-v+T},{x:0,y:-v+T},{x:y/2,y:-v},{x:y,y:-v+T},{x:y-b,y:-v+T},{x:y-b,y:-T},{x:y,y:-T}]:d.has("right")&&d.has("up")?[{x:0,y:0},{x:y,y:-b},{x:0,y:-v}]:d.has("right")&&d.has("down")?[{x:0,y:0},{x:y,y:0},{x:0,y:-v}]:d.has("left")&&d.has("up")?[{x:y,y:0},{x:0,y:-b},{x:y,y:-v}]:d.has("left")&&d.has("down")?[{x:y,y:0},{x:0,y:0},{x:y,y:-v}]:d.has("right")?[{x:b,y:-T},{x:b,y:-T},{x:y-b,y:-T},{x:y-b,y:0},{x:y,y:-v/2},{x:y-b,y:-v},{x:y-b,y:-v+T},{x:b,y:-v+T},{x:b,y:-v+T}]:d.has("left")?[{x:b,y:0},{x:b,y:-T},{x:y-b,y:-T},{x:y-b,y:-v+T},{x:b,y:-v+T},{x:b,y:-v},{x:0,y:-v/2}]:d.has("up")?[{x:b,y:-T},{x:b,y:-v+T},{x:0,y:-v+T},{x:y/2,y:-v},{x:y,y:-v+T},{x:y-b,y:-v+T},{x:y-b,y:-T}]:d.has("down")?[{x:y/2,y:0},{x:0,y:-T},{x:b,y:-T},{x:b,y:-v+T},{x:y-b,y:-v+T},{x:y-b,y:-T},{x:y,y:-T}]:[{x:0,y:0}]},kUe=i=>i?" "+i:"",dm=(i,s)=>`${s||"node default"}${kUe(i.classes)} ${kUe(i.class)}`,EUe=async(i,s)=>{const{shapeSvg:u,bbox:d}=await g1(i,s,dm(s,void 0),!0),p=d.width+s.padding,v=d.height+s.padding,b=p+v,y=[{x:b/2,y:0},{x:b,y:-b/2},{x:b/2,y:-b},{x:0,y:-b/2}];Xe.info("Question main (Circle)");const T=r5(u,b,b,y);return T.attr("style",s.style),Kh(s,T),s.intersect=function(_){return Xe.warn("Intersect called"),yh.polygon(s,y,_)},u},QZt=(i,s)=>{const u=i.insert("g").attr("class","node default").attr("id",s.domId||s.id),d=28,p=[{x:0,y:d/2},{x:d/2,y:0},{x:0,y:-d/2},{x:-d/2,y:0}];return u.insert("polygon",":first-child").attr("points",p.map(function(b){return b.x+","+b.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),s.width=28,s.height=28,s.intersect=function(b){return yh.circle(s,14,b)},u},JZt=async(i,s)=>{const{shapeSvg:u,bbox:d}=await g1(i,s,dm(s,void 0),!0),p=4,v=d.height+s.padding,b=v/p,y=d.width+2*b+s.padding,T=[{x:b,y:0},{x:y-b,y:0},{x:y,y:-v/2},{x:y-b,y:-v},{x:b,y:-v},{x:0,y:-v/2}],_=r5(u,y,v,T);return _.attr("style",s.style),Kh(s,_),s.intersect=function(A){return yh.polygon(s,T,A)},u},ZZt=async(i,s)=>{const{shapeSvg:u,bbox:d}=await g1(i,s,void 0,!0),p=2,v=d.height+2*s.padding,b=v/p,y=d.width+2*b+s.padding,T=XZt(s.directions,d,s),_=r5(u,y,v,T);return _.attr("style",s.style),Kh(s,_),s.intersect=function(A){return yh.polygon(s,T,A)},u},een=async(i,s)=>{const{shapeSvg:u,bbox:d}=await g1(i,s,dm(s,void 0),!0),p=d.width+s.padding,v=d.height+s.padding,b=[{x:-v/2,y:0},{x:p,y:0},{x:p,y:-v},{x:-v/2,y:-v},{x:0,y:-v/2}];return r5(u,p,v,b).attr("style",s.style),s.width=p+v,s.height=v,s.intersect=function(T){return yh.polygon(s,b,T)},u},ten=async(i,s)=>{const{shapeSvg:u,bbox:d}=await g1(i,s,dm(s),!0),p=d.width+s.padding,v=d.height+s.padding,b=[{x:-2*v/6,y:0},{x:p-v/6,y:0},{x:p+2*v/6,y:-v},{x:v/6,y:-v}],y=r5(u,p,v,b);return y.attr("style",s.style),Kh(s,y),s.intersect=function(T){return yh.polygon(s,b,T)},u},nen=async(i,s)=>{const{shapeSvg:u,bbox:d}=await g1(i,s,dm(s,void 0),!0),p=d.width+s.padding,v=d.height+s.padding,b=[{x:2*v/6,y:0},{x:p+v/6,y:0},{x:p-2*v/6,y:-v},{x:-v/6,y:-v}],y=r5(u,p,v,b);return y.attr("style",s.style),Kh(s,y),s.intersect=function(T){return yh.polygon(s,b,T)},u},ren=async(i,s)=>{const{shapeSvg:u,bbox:d}=await g1(i,s,dm(s,void 0),!0),p=d.width+s.padding,v=d.height+s.padding,b=[{x:-2*v/6,y:0},{x:p+2*v/6,y:0},{x:p-v/6,y:-v},{x:v/6,y:-v}],y=r5(u,p,v,b);return y.attr("style",s.style),Kh(s,y),s.intersect=function(T){return yh.polygon(s,b,T)},u},ien=async(i,s)=>{const{shapeSvg:u,bbox:d}=await g1(i,s,dm(s,void 0),!0),p=d.width+s.padding,v=d.height+s.padding,b=[{x:v/6,y:0},{x:p-v/6,y:0},{x:p+2*v/6,y:-v},{x:-2*v/6,y:-v}],y=r5(u,p,v,b);return y.attr("style",s.style),Kh(s,y),s.intersect=function(T){return yh.polygon(s,b,T)},u},sen=async(i,s)=>{const{shapeSvg:u,bbox:d}=await g1(i,s,dm(s,void 0),!0),p=d.width+s.padding,v=d.height+s.padding,b=[{x:0,y:0},{x:p+v/2,y:0},{x:p,y:-v/2},{x:p+v/2,y:-v},{x:0,y:-v}],y=r5(u,p,v,b);return y.attr("style",s.style),Kh(s,y),s.intersect=function(T){return yh.polygon(s,b,T)},u},aen=async(i,s)=>{const{shapeSvg:u,bbox:d}=await g1(i,s,dm(s,void 0),!0),p=d.width+s.padding,v=p/2,b=v/(2.5+p/50),y=d.height+b+s.padding,T="M 0,"+b+" a "+v+","+b+" 0,0,0 "+p+" 0 a "+v+","+b+" 0,0,0 "+-p+" 0 l 0,"+y+" a "+v+","+b+" 0,0,0 "+p+" 0 l 0,"+-y,_=u.attr("label-offset-y",b).insert("path",":first-child").attr("style",s.style).attr("d",T).attr("transform","translate("+-p/2+","+-(y/2+b)+")");return Kh(s,_),s.intersect=function(A){const P=yh.rect(s,A),R=P.x-s.x;if(v!=0&&(Math.abs(R)s.height/2-b)){let F=b*b*(1-R*R/(v*v));F!=0&&(F=Math.sqrt(F)),F=b-F,A.y-s.y>0&&(F=-F),P.y+=F}return P},u},oen=async(i,s)=>{const{shapeSvg:u,bbox:d,halfPadding:p}=await g1(i,s,"node "+s.classes+" "+s.class,!0),v=u.insert("rect",":first-child"),b=s.positioned?s.width:d.width+s.padding,y=s.positioned?s.height:d.height+s.padding,T=s.positioned?-b/2:-d.width/2-p,_=s.positioned?-y/2:-d.height/2-p;if(v.attr("class","basic label-container").attr("style",s.style).attr("rx",s.rx).attr("ry",s.ry).attr("x",T).attr("y",_).attr("width",b).attr("height",y),s.props){const A=new Set(Object.keys(s.props));s.props.borders&&(jme(v,s.props.borders,b,y),A.delete("borders")),A.forEach(P=>{Xe.warn(`Unknown node property ${P}`)})}return Kh(s,v),s.intersect=function(A){return yh.rect(s,A)},u},cen=async(i,s)=>{const{shapeSvg:u,bbox:d,halfPadding:p}=await g1(i,s,"node "+s.classes,!0),v=u.insert("rect",":first-child"),b=s.positioned?s.width:d.width+s.padding,y=s.positioned?s.height:d.height+s.padding,T=s.positioned?-b/2:-d.width/2-p,_=s.positioned?-y/2:-d.height/2-p;if(v.attr("class","basic cluster composite label-container").attr("style",s.style).attr("rx",s.rx).attr("ry",s.ry).attr("x",T).attr("y",_).attr("width",b).attr("height",y),s.props){const A=new Set(Object.keys(s.props));s.props.borders&&(jme(v,s.props.borders,b,y),A.delete("borders")),A.forEach(P=>{Xe.warn(`Unknown node property ${P}`)})}return Kh(s,v),s.intersect=function(A){return yh.rect(s,A)},u},uen=async(i,s)=>{const{shapeSvg:u}=await g1(i,s,"label",!0);Xe.trace("Classes = ",s.class);const d=u.insert("rect",":first-child"),p=0,v=0;if(d.attr("width",p).attr("height",v),u.attr("class","label edgeLabel"),s.props){const b=new Set(Object.keys(s.props));s.props.borders&&(jme(d,s.props.borders,p,v),b.delete("borders")),b.forEach(y=>{Xe.warn(`Unknown node property ${y}`)})}return Kh(s,d),s.intersect=function(b){return yh.rect(s,b)},u};function jme(i,s,u,d){const p=[],v=y=>{p.push(y,0)},b=y=>{p.push(0,y)};s.includes("t")?(Xe.debug("add top border"),v(u)):b(u),s.includes("r")?(Xe.debug("add right border"),v(d)):b(d),s.includes("b")?(Xe.debug("add bottom border"),v(u)):b(u),s.includes("l")?(Xe.debug("add left border"),v(d)):b(d),i.attr("stroke-dasharray",p.join(" "))}const len=(i,s)=>{let u;s.classes?u="node "+s.classes:u="node default";const d=i.insert("g").attr("class",u).attr("id",s.domId||s.id),p=d.insert("rect",":first-child"),v=d.insert("line"),b=d.insert("g").attr("class","label"),y=s.labelText.flat?s.labelText.flat():s.labelText;let T="";typeof y=="object"?T=y[0]:T=y,Xe.info("Label text abc79",T,y,typeof y=="object");const _=b.node().appendChild($2(T,s.labelStyle,!0,!0));let A={width:0,height:0};if(f1(qt().flowchart.htmlLabels)){const K=_.children[0],ee=Ir(_);A=K.getBoundingClientRect(),ee.attr("width",A.width),ee.attr("height",A.height)}Xe.info("Text 2",y);const P=y.slice(1,y.length);let R=_.getBBox();const F=b.node().appendChild($2(P.join?P.join("
"):P,s.labelStyle,!0,!0));if(f1(qt().flowchart.htmlLabels)){const K=F.children[0],ee=Ir(F);A=K.getBoundingClientRect(),ee.attr("width",A.width),ee.attr("height",A.height)}const j=s.padding/2;return Ir(F).attr("transform","translate( "+(A.width>R.width?0:(R.width-A.width)/2)+", "+(R.height+j+5)+")"),Ir(_).attr("transform","translate( "+(A.width{const{shapeSvg:u,bbox:d}=await g1(i,s,dm(s,void 0),!0),p=d.height+s.padding,v=d.width+p/4+s.padding,b=u.insert("rect",":first-child").attr("style",s.style).attr("rx",p/2).attr("ry",p/2).attr("x",-v/2).attr("y",-p/2).attr("width",v).attr("height",p);return Kh(s,b),s.intersect=function(y){return yh.rect(s,y)},u},fen=async(i,s)=>{const{shapeSvg:u,bbox:d,halfPadding:p}=await g1(i,s,dm(s,void 0),!0),v=u.insert("circle",":first-child");return v.attr("style",s.style).attr("rx",s.rx).attr("ry",s.ry).attr("r",d.width/2+p).attr("width",d.width+s.padding).attr("height",d.height+s.padding),Xe.info("Circle main"),Kh(s,v),s.intersect=function(b){return Xe.info("Circle intersect",s,d.width/2+p,b),yh.circle(s,d.width/2+p,b)},u},den=async(i,s)=>{const{shapeSvg:u,bbox:d,halfPadding:p}=await g1(i,s,dm(s,void 0),!0),v=5,b=u.insert("g",":first-child"),y=b.insert("circle"),T=b.insert("circle");return b.attr("class",s.class),y.attr("style",s.style).attr("rx",s.rx).attr("ry",s.ry).attr("r",d.width/2+p+v).attr("width",d.width+s.padding+v*2).attr("height",d.height+s.padding+v*2),T.attr("style",s.style).attr("rx",s.rx).attr("ry",s.ry).attr("r",d.width/2+p).attr("width",d.width+s.padding).attr("height",d.height+s.padding),Xe.info("DoubleCircle main"),Kh(s,y),s.intersect=function(_){return Xe.info("DoubleCircle intersect",s,d.width/2+p+v,_),yh.circle(s,d.width/2+p+v,_)},u},gen=async(i,s)=>{const{shapeSvg:u,bbox:d}=await g1(i,s,dm(s,void 0),!0),p=d.width+s.padding,v=d.height+s.padding,b=[{x:0,y:0},{x:p,y:0},{x:p,y:-v},{x:0,y:-v},{x:0,y:0},{x:-8,y:0},{x:p+8,y:0},{x:p+8,y:-v},{x:-8,y:-v},{x:-8,y:0}],y=r5(u,p,v,b);return y.attr("style",s.style),Kh(s,y),s.intersect=function(T){return yh.polygon(s,b,T)},u},pen=(i,s)=>{const u=i.insert("g").attr("class","node default").attr("id",s.domId||s.id),d=u.insert("circle",":first-child");return d.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),Kh(s,d),s.intersect=function(p){return yh.circle(s,7,p)},u},TUe=(i,s,u)=>{const d=i.insert("g").attr("class","node default").attr("id",s.domId||s.id);let p=70,v=10;u==="LR"&&(p=10,v=70);const b=d.append("rect").attr("x",-1*p/2).attr("y",-1*v/2).attr("width",p).attr("height",v).attr("class","fork-join");return Kh(s,b),s.height=s.height+s.padding/2,s.width=s.width+s.padding/2,s.intersect=function(y){return yh.rect(s,y)},d},CUe={rhombus:EUe,composite:cen,question:EUe,rect:oen,labelRect:uen,rectWithTitle:len,choice:QZt,circle:fen,doublecircle:den,stadium:hen,hexagon:JZt,block_arrow:ZZt,rect_left_inv_arrow:een,lean_right:ten,lean_left:nen,trapezoid:ren,inv_trapezoid:ien,rect_right_inv_arrow:sen,cylinder:aen,start:pen,end:(i,s)=>{const u=i.insert("g").attr("class","node default").attr("id",s.domId||s.id),d=u.insert("circle",":first-child"),p=u.insert("circle",":first-child");return p.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),d.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),Kh(s,p),s.intersect=function(v){return yh.circle(s,7,v)},u},note:WZt,subroutine:gen,fork:TUe,join:TUe,class_box:(i,s)=>{const u=s.padding/2,d=4,p=8;let v;s.classes?v="node "+s.classes:v="node default";const b=i.insert("g").attr("class",v).attr("id",s.domId||s.id),y=b.insert("rect",":first-child"),T=b.insert("line"),_=b.insert("line");let A=0,P=d;const R=b.insert("g").attr("class","label");let F=0;const j=s.classData.annotations&&s.classData.annotations[0],K=s.classData.annotations[0]?"«"+s.classData.annotations[0]+"»":"",ee=R.node().appendChild($2(K,s.labelStyle,!0,!0));let ie=ee.getBBox();if(f1(qt().flowchart.htmlLabels)){const de=ee.children[0],X=Ir(ee);ie=de.getBoundingClientRect(),X.attr("width",ie.width),X.attr("height",ie.height)}s.classData.annotations[0]&&(P+=ie.height+d,A+=ie.width);let oe=s.classData.label;s.classData.type!==void 0&&s.classData.type!==""&&(qt().flowchart.htmlLabels?oe+="<"+s.classData.type+">":oe+="<"+s.classData.type+">");const pe=R.node().appendChild($2(oe,s.labelStyle,!0,!0));Ir(pe).attr("class","classTitle");let be=pe.getBBox();if(f1(qt().flowchart.htmlLabels)){const de=pe.children[0],X=Ir(pe);be=de.getBoundingClientRect(),X.attr("width",be.width),X.attr("height",be.height)}P+=be.height+d,be.width>A&&(A=be.width);const ae=[];s.classData.members.forEach(de=>{const X=de.getDisplayDetails();let ge=X.displayText;qt().flowchart.htmlLabels&&(ge=ge.replace(//g,">"));const W=R.node().appendChild($2(ge,X.cssStyle?X.cssStyle:s.labelStyle,!0,!0));let xe=W.getBBox();if(f1(qt().flowchart.htmlLabels)){const U=W.children[0],Fe=Ir(W);xe=U.getBoundingClientRect(),Fe.attr("width",xe.width),Fe.attr("height",xe.height)}xe.width>A&&(A=xe.width),P+=xe.height+d,ae.push(W)}),P+=p;const ne=[];if(s.classData.methods.forEach(de=>{const X=de.getDisplayDetails();let ge=X.displayText;qt().flowchart.htmlLabels&&(ge=ge.replace(//g,">"));const W=R.node().appendChild($2(ge,X.cssStyle?X.cssStyle:s.labelStyle,!0,!0));let xe=W.getBBox();if(f1(qt().flowchart.htmlLabels)){const U=W.children[0],Fe=Ir(W);xe=U.getBoundingClientRect(),Fe.attr("width",xe.width),Fe.attr("height",xe.height)}xe.width>A&&(A=xe.width),P+=xe.height+d,ne.push(W)}),P+=p,j){let de=(A-ie.width)/2;Ir(ee).attr("transform","translate( "+(-1*A/2+de)+", "+-1*P/2+")"),F=ie.height+d}let se=(A-be.width)/2;return Ir(pe).attr("transform","translate( "+(-1*A/2+se)+", "+(-1*P/2+F)+")"),F+=be.height+d,T.attr("class","divider").attr("x1",-A/2-u).attr("x2",A/2+u).attr("y1",-P/2-u+p+F).attr("y2",-P/2-u+p+F),F+=p,ae.forEach(de=>{Ir(de).attr("transform","translate( "+-A/2+", "+(-1*P/2+F+p/2)+")");const X=de==null?void 0:de.getBBox();F+=((X==null?void 0:X.height)??0)+d}),F+=p,_.attr("class","divider").attr("x1",-A/2-u).attr("x2",A/2+u).attr("y1",-P/2-u+p+F).attr("y2",-P/2-u+p+F),F+=p,ne.forEach(de=>{Ir(de).attr("transform","translate( "+-A/2+", "+(-1*P/2+F)+")");const X=de==null?void 0:de.getBBox();F+=((X==null?void 0:X.height)??0)+d}),y.attr("style",s.style).attr("class","outer title-state").attr("x",-A/2-u).attr("y",-(P/2)-u).attr("width",A+s.padding).attr("height",P+s.padding),Kh(s,y),s.intersect=function(de){return yh.rect(s,de)},b}};let VD={};const tJ=async(i,s,u)=>{let d,p;if(s.link){let v;qt().securityLevel==="sandbox"?v="_top":s.linkTarget&&(v=s.linkTarget||"_blank"),d=i.insert("svg:a").attr("xlink:href",s.link).attr("target",v),p=await CUe[s.shape](d,s,u)}else p=await CUe[s.shape](i,s,u),d=p;return s.tooltip&&p.attr("title",s.tooltip),s.class&&p.attr("class","node default "+s.class),d.attr("data-node","true"),d.attr("data-id",s.id),VD[s.id]=d,s.haveCallback&&VD[s.id].attr("class",VD[s.id].attr("class")+" clickable"),d},ben=(i,s)=>{VD[s.id]=i},men=()=>{VD={}},$me=i=>{const s=VD[i.id];Xe.trace("Transforming node",i.diff,i,"translate("+(i.x-i.width/2-5)+", "+i.width/2+")");const u=8,d=i.diff||0;return i.clusterNode?s.attr("transform","translate("+(i.x+d-i.width/2)+", "+(i.y-i.height/2-u)+")"):s.attr("transform","translate("+i.x+", "+i.y+")"),d},nJ=({flowchart:i})=>{var p,v;const s=((p=i==null?void 0:i.subGraphTitleMargin)==null?void 0:p.top)??0,u=((v=i==null?void 0:i.subGraphTitleMargin)==null?void 0:v.bottom)??0,d=s+u;return{subGraphTitleTopMargin:s,subGraphTitleBottomMargin:u,subGraphTitleTotalMargin:d}},ven={rect:(i,s)=>{Xe.info("Creating subgraph rect for ",s.id,s);const u=qt(),d=i.insert("g").attr("class","cluster"+(s.class?" "+s.class:"")).attr("id",s.id),p=d.insert("rect",":first-child"),v=f1(u.flowchart.htmlLabels),b=d.insert("g").attr("class","cluster-label"),y=s.labelType==="markdown"?JQ(b,s.labelText,{style:s.labelStyle,useHtmlLabels:v}):b.node().appendChild($2(s.labelText,s.labelStyle,void 0,!0));let T=y.getBBox();if(f1(u.flowchart.htmlLabels)){const j=y.children[0],K=Ir(y);T=j.getBoundingClientRect(),K.attr("width",T.width),K.attr("height",T.height)}const _=0*s.padding,A=_/2,P=s.width<=T.width+_?T.width+_:s.width;s.width<=T.width+_?s.diff=(T.width-s.width)/2-s.padding/2:s.diff=-s.padding/2,Xe.trace("Data ",s,JSON.stringify(s)),p.attr("style",s.style).attr("rx",s.rx).attr("ry",s.ry).attr("x",s.x-P/2).attr("y",s.y-s.height/2-A).attr("width",P).attr("height",s.height+_);const{subGraphTitleTopMargin:R}=nJ(u);v?b.attr("transform",`translate(${s.x-T.width/2}, ${s.y-s.height/2+R})`):b.attr("transform",`translate(${s.x}, ${s.y-s.height/2+R})`);const F=p.node().getBBox();return s.width=F.width,s.height=F.height,s.intersect=function(j){return DR(s,j)},d},roundedWithTitle:(i,s)=>{const u=qt(),d=i.insert("g").attr("class",s.classes).attr("id",s.id),p=d.insert("rect",":first-child"),v=d.insert("g").attr("class","cluster-label"),b=d.append("rect"),y=v.node().appendChild($2(s.labelText,s.labelStyle,void 0,!0));let T=y.getBBox();if(f1(u.flowchart.htmlLabels)){const j=y.children[0],K=Ir(y);T=j.getBoundingClientRect(),K.attr("width",T.width),K.attr("height",T.height)}T=y.getBBox();const _=0*s.padding,A=_/2,P=s.width<=T.width+s.padding?T.width+s.padding:s.width;s.width<=T.width+s.padding?s.diff=(T.width+s.padding*0-s.width)/2:s.diff=-s.padding/2,p.attr("class","outer").attr("x",s.x-P/2-A).attr("y",s.y-s.height/2-A).attr("width",P+_).attr("height",s.height+_),b.attr("class","inner").attr("x",s.x-P/2-A).attr("y",s.y-s.height/2-A+T.height-1).attr("width",P+_).attr("height",s.height+_-T.height-3);const{subGraphTitleTopMargin:R}=nJ(u);v.attr("transform",`translate(${s.x-T.width/2}, ${s.y-s.height/2-s.padding/3+(f1(u.flowchart.htmlLabels)?5:3)+R})`);const F=p.node().getBBox();return s.height=F.height,s.intersect=function(j){return DR(s,j)},d},noteGroup:(i,s)=>{const u=i.insert("g").attr("class","note-cluster").attr("id",s.id),d=u.insert("rect",":first-child"),p=0*s.padding,v=p/2;d.attr("rx",s.rx).attr("ry",s.ry).attr("x",s.x-s.width/2-v).attr("y",s.y-s.height/2-v).attr("width",s.width+p).attr("height",s.height+p).attr("fill","none");const b=d.node().getBBox();return s.width=b.width,s.height=b.height,s.intersect=function(y){return DR(s,y)},u},divider:(i,s)=>{const u=i.insert("g").attr("class",s.classes).attr("id",s.id),d=u.insert("rect",":first-child"),p=0*s.padding,v=p/2;d.attr("class","divider").attr("x",s.x-s.width/2-v).attr("y",s.y-s.height/2).attr("width",s.width+p).attr("height",s.height+p);const b=d.node().getBBox();return s.width=b.width,s.height=b.height,s.diff=-s.padding/2,s.intersect=function(y){return DR(s,y)},u}};let SUe={};const wen=(i,s)=>{Xe.trace("Inserting cluster");const u=s.shape||"rect";SUe[s.id]=ven[u](i,s)},yen=()=>{SUe={}},P9={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:5.3};function rJ(i,s){if(i===void 0||s===void 0)return{angle:0,deltaX:0,deltaY:0};i=iJ(i),s=iJ(s);const[u,d]=[i.x,i.y],[p,v]=[s.x,s.y],b=p-u,y=v-d;return{angle:Math.atan(y/b),deltaX:b,deltaY:y}}const iJ=i=>Array.isArray(i)?{x:i[0],y:i[1]}:i,_Ue=i=>({x:function(s,u,d){let p=0;if(u===0&&Object.hasOwn(P9,i.arrowTypeStart)){const{angle:v,deltaX:b}=rJ(d[0],d[1]);p=P9[i.arrowTypeStart]*Math.cos(v)*(b>=0?1:-1)}else if(u===d.length-1&&Object.hasOwn(P9,i.arrowTypeEnd)){const{angle:v,deltaX:b}=rJ(d[d.length-1],d[d.length-2]);p=P9[i.arrowTypeEnd]*Math.cos(v)*(b>=0?1:-1)}return iJ(s).x+p},y:function(s,u,d){let p=0;if(u===0&&Object.hasOwn(P9,i.arrowTypeStart)){const{angle:v,deltaY:b}=rJ(d[0],d[1]);p=P9[i.arrowTypeStart]*Math.abs(Math.sin(v))*(b>=0?1:-1)}else if(u===d.length-1&&Object.hasOwn(P9,i.arrowTypeEnd)){const{angle:v,deltaY:b}=rJ(d[d.length-1],d[d.length-2]);p=P9[i.arrowTypeEnd]*Math.abs(Math.sin(v))*(b>=0?1:-1)}return iJ(s).y+p}}),AUe=(i,s,u,d,p)=>{s.arrowTypeStart&&LUe(i,"start",s.arrowTypeStart,u,d,p),s.arrowTypeEnd&&LUe(i,"end",s.arrowTypeEnd,u,d,p)},xen={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},LUe=(i,s,u,d,p,v)=>{const b=xen[u];if(!b){Xe.warn(`Unknown arrow type: ${u}`);return}const y=s==="start"?"Start":"End";i.attr(`marker-${s}`,`url(${d}#${p}_${v}-${b}${y})`)};let sJ={},Vd={};const ken=()=>{sJ={},Vd={}},zme=(i,s)=>{const u=f1(qt().flowchart.htmlLabels),d=s.labelType==="markdown"?JQ(i,s.label,{style:s.labelStyle,useHtmlLabels:u,addSvgBackground:!0}):$2(s.label,s.labelStyle),p=i.insert("g").attr("class","edgeLabel"),v=p.insert("g").attr("class","label");v.node().appendChild(d);let b=d.getBBox();if(u){const T=d.children[0],_=Ir(d);b=T.getBoundingClientRect(),_.attr("width",b.width),_.attr("height",b.height)}v.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),sJ[s.id]=p,s.width=b.width,s.height=b.height;let y;if(s.startLabelLeft){const T=$2(s.startLabelLeft,s.labelStyle),_=i.insert("g").attr("class","edgeTerminals"),A=_.insert("g").attr("class","inner");y=A.node().appendChild(T);const P=T.getBBox();A.attr("transform","translate("+-P.width/2+", "+-P.height/2+")"),Vd[s.id]||(Vd[s.id]={}),Vd[s.id].startLeft=_,aJ(y,s.startLabelLeft)}if(s.startLabelRight){const T=$2(s.startLabelRight,s.labelStyle),_=i.insert("g").attr("class","edgeTerminals"),A=_.insert("g").attr("class","inner");y=_.node().appendChild(T),A.node().appendChild(T);const P=T.getBBox();A.attr("transform","translate("+-P.width/2+", "+-P.height/2+")"),Vd[s.id]||(Vd[s.id]={}),Vd[s.id].startRight=_,aJ(y,s.startLabelRight)}if(s.endLabelLeft){const T=$2(s.endLabelLeft,s.labelStyle),_=i.insert("g").attr("class","edgeTerminals"),A=_.insert("g").attr("class","inner");y=A.node().appendChild(T);const P=T.getBBox();A.attr("transform","translate("+-P.width/2+", "+-P.height/2+")"),_.node().appendChild(T),Vd[s.id]||(Vd[s.id]={}),Vd[s.id].endLeft=_,aJ(y,s.endLabelLeft)}if(s.endLabelRight){const T=$2(s.endLabelRight,s.labelStyle),_=i.insert("g").attr("class","edgeTerminals"),A=_.insert("g").attr("class","inner");y=A.node().appendChild(T);const P=T.getBBox();A.attr("transform","translate("+-P.width/2+", "+-P.height/2+")"),_.node().appendChild(T),Vd[s.id]||(Vd[s.id]={}),Vd[s.id].endRight=_,aJ(y,s.endLabelRight)}return d};function aJ(i,s){qt().flowchart.htmlLabels&&i&&(i.style.width=s.length*9+"px",i.style.height="12px")}const MUe=(i,s)=>{Xe.debug("Moving label abc88 ",i.id,i.label,sJ[i.id],s);let u=s.updatedPath?s.updatedPath:s.originalPath;const d=qt(),{subGraphTitleTotalMargin:p}=nJ(d);if(i.label){const v=sJ[i.id];let b=i.x,y=i.y;if(u){const T=Ao.calcLabelPosition(u);Xe.debug("Moving label "+i.label+" from (",b,",",y,") to (",T.x,",",T.y,") abc88"),s.updatedPath&&(b=T.x,y=T.y)}v.attr("transform",`translate(${b}, ${y+p/2})`)}if(i.startLabelLeft){const v=Vd[i.id].startLeft;let b=i.x,y=i.y;if(u){const T=Ao.calcTerminalLabelPosition(i.arrowTypeStart?10:0,"start_left",u);b=T.x,y=T.y}v.attr("transform",`translate(${b}, ${y})`)}if(i.startLabelRight){const v=Vd[i.id].startRight;let b=i.x,y=i.y;if(u){const T=Ao.calcTerminalLabelPosition(i.arrowTypeStart?10:0,"start_right",u);b=T.x,y=T.y}v.attr("transform",`translate(${b}, ${y})`)}if(i.endLabelLeft){const v=Vd[i.id].endLeft;let b=i.x,y=i.y;if(u){const T=Ao.calcTerminalLabelPosition(i.arrowTypeEnd?10:0,"end_left",u);b=T.x,y=T.y}v.attr("transform",`translate(${b}, ${y})`)}if(i.endLabelRight){const v=Vd[i.id].endRight;let b=i.x,y=i.y;if(u){const T=Ao.calcTerminalLabelPosition(i.arrowTypeEnd?10:0,"end_right",u);b=T.x,y=T.y}v.attr("transform",`translate(${b}, ${y})`)}},Een=(i,s)=>{const u=i.x,d=i.y,p=Math.abs(s.x-u),v=Math.abs(s.y-d),b=i.width/2,y=i.height/2;return p>=b||v>=y},Ten=(i,s,u)=>{Xe.debug(`intersection calc abc89: outsidePoint: ${JSON.stringify(s)} insidePoint : ${JSON.stringify(u)} - node : x:${i.x} y:${i.y} w:${i.width} h:${i.height}`);const d=i.x,p=i.y,v=Math.abs(d-u.x),b=i.width/2;let y=u.xMath.abs(d-s.x)*T){let P=u.y{Xe.debug("abc88 cutPathAtIntersect",i,s);let u=[],d=i[0],p=!1;return i.forEach(v=>{if(!Een(s,v)&&!p){const b=Ten(s,d,v);let y=!1;u.forEach(T=>{y=y||T.x===b.x&&T.y===b.y}),u.some(T=>T.x===b.x&&T.y===b.y)||u.push(b),p=!0}else d=v,p||u.push(v)}),u},IUe=function(i,s,u,d,p,v,b){let y=u.points;Xe.debug("abc88 InsertEdge: edge=",u,"e=",s);let T=!1;const _=v.node(s.v);var A=v.node(s.w);A!=null&&A.intersect&&(_!=null&&_.intersect)&&(y=y.slice(1,u.points.length-1),y.unshift(_.intersect(y[0])),y.push(A.intersect(y[y.length-1]))),u.toCluster&&(Xe.debug("to cluster abc88",d[u.toCluster]),y=DUe(u.points,d[u.toCluster].node),T=!0),u.fromCluster&&(Xe.debug("from cluster abc88",d[u.fromCluster]),y=DUe(y.reverse(),d[u.fromCluster].node).reverse(),T=!0);const P=y.filter(be=>!Number.isNaN(be.y));let R=FF;u.curve&&(p==="graph"||p==="flowchart")&&(R=u.curve);const{x:F,y:j}=_Ue(u),K=k7().x(F).y(j).curve(R);let ee;switch(u.thickness){case"normal":ee="edge-thickness-normal";break;case"thick":ee="edge-thickness-thick";break;case"invisible":ee="edge-thickness-thick";break;default:ee=""}switch(u.pattern){case"solid":ee+=" edge-pattern-solid";break;case"dotted":ee+=" edge-pattern-dotted";break;case"dashed":ee+=" edge-pattern-dashed";break}const ie=i.append("path").attr("d",K(P)).attr("id",u.id).attr("class"," "+ee+(u.classes?" "+u.classes:"")).attr("style",u.style);let oe="";(qt().flowchart.arrowMarkerAbsolute||qt().state.arrowMarkerAbsolute)&&(oe=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,oe=oe.replace(/\(/g,"\\("),oe=oe.replace(/\)/g,"\\)")),AUe(ie,u,oe,b,p);let pe={};return T&&(pe.updatedPath=y),pe.originalPath=u.points,pe},OUe=async(i,s,u,d,p,v)=>{Xe.info("Graph in recursive render: XXX",q7(s),p);const b=s.graph().rankdir;Xe.trace("Dir in recursive render - dir:",b);const y=i.insert("g").attr("class","root");s.nodes()?Xe.info("Recursive render XXX",s.nodes()):Xe.info("No nodes found for",s),s.edges().length>0&&Xe.trace("Recursive edges",s.edge(s.edges()[0]));const T=y.insert("g").attr("class","clusters"),_=y.insert("g").attr("class","edgePaths"),A=y.insert("g").attr("class","edgeLabels"),P=y.insert("g").attr("class","nodes");await Promise.all(s.nodes().map(async function(j){const K=s.node(j);if(p!==void 0){const ee=JSON.parse(JSON.stringify(p.clusterData));Xe.info("Setting data for cluster XXX (",j,") ",ee,p),s.setNode(p.id,ee),s.parent(j)||(Xe.trace("Setting parent",j,p.id),s.setParent(j,p.id,ee))}if(Xe.info("(Insert) Node XXX"+j+": "+JSON.stringify(s.node(j))),K&&K.clusterNode){Xe.info("Cluster identified",j,K.width,s.node(j));const ee=await OUe(P,K.graph,u,d,s.node(j),v),ie=ee.elem;Kh(K,ie),K.diff=ee.diff||0,Xe.info("Node bounds (abc123)",j,K,K.width,K.x,K.y),ben(ie,K),Xe.warn("Recursive render complete ",ie,K)}else s.children(j).length>0?(Xe.info("Cluster - the non recursive path XXX",j,K.id,K,s),Xe.info(MR(K.id,s)),Mo[K.id]={id:MR(K.id,s),node:K}):(Xe.info("Node - the non recursive path",j,K.id,K),await tJ(P,s.node(j),b))})),s.edges().forEach(function(j){const K=s.edge(j.v,j.w,j.name);Xe.info("Edge "+j.v+" -> "+j.w+": "+JSON.stringify(j)),Xe.info("Edge "+j.v+" -> "+j.w+": ",j," ",JSON.stringify(s.edge(j))),Xe.info("Fix",Mo,"ids:",j.v,j.w,"Translating: ",Mo[j.v],Mo[j.w]),zme(A,K)}),s.edges().forEach(function(j){Xe.info("Edge "+j.v+" -> "+j.w+": "+JSON.stringify(j))}),Xe.info("#############################################"),Xe.info("### Layout ###"),Xe.info("#############################################"),Xe.info(s),qD(s),Xe.info("Graph after layout:",q7(s));let R=0;const{subGraphTitleTotalMargin:F}=nJ(v);return HZt(s).forEach(function(j){const K=s.node(j);Xe.info("Position "+j+": "+JSON.stringify(s.node(j))),Xe.info("Position "+j+": ("+K.x,","+K.y,") width: ",K.width," height: ",K.height),K&&K.clusterNode?(K.y+=F,$me(K)):s.children(j).length>0?(K.height+=F,wen(T,K),Mo[K.id].node=K):(K.y+=F/2,$me(K))}),s.edges().forEach(function(j){const K=s.edge(j);Xe.info("Edge "+j.v+" -> "+j.w+": "+JSON.stringify(K),K),K.points.forEach(ie=>ie.y+=F/2);const ee=IUe(_,j,K,Mo,u,s,d);MUe(K,ee)}),s.nodes().forEach(function(j){const K=s.node(j);Xe.info(j,K.type,K.diff),K.type==="group"&&(R=K.diff)}),{elem:y,diff:R}},qme=async(i,s,u,d,p)=>{Sme(i,u,d,p),men(),ken(),yen(),$Zt(),Xe.warn("Graph at first:",JSON.stringify(q7(s))),qZt(s),Xe.warn("Graph after:",JSON.stringify(q7(s)));const v=qt();await OUe(i,s,d,p,void 0,v)},NUe={},Cen=function(i){const s=Object.keys(i);for(const u of s)NUe[u]=i[u]},PUe=async function(i,s,u,d,p,v){const b=d.select(`[id="${u}"]`),y=Object.keys(i);for(const T of y){const _=i[T];let A="default";_.classes.length>0&&(A=_.classes.join(" ")),A=A+" flowchart-label";const P=om(_.styles);let R=_.text!==void 0?_.text:_.id,F;if(Xe.info("vertex",_,_.labelType),_.labelType==="markdown")Xe.info("vertex",_,_.labelType);else if(f1(qt().flowchart.htmlLabels))F=vme(b,{label:R}).node(),F.parentNode.removeChild(F);else{const ie=p.createElementNS("http://www.w3.org/2000/svg","text");ie.setAttribute("style",P.labelStyle.replace("color:","fill:"));const oe=R.split(li.lineBreakRegex);for(const pe of oe){const be=p.createElementNS("http://www.w3.org/2000/svg","tspan");be.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),be.setAttribute("dy","1em"),be.setAttribute("x","1"),be.textContent=pe,ie.appendChild(be)}F=ie}let j=0,K="";switch(_.type){case"round":j=5,K="rect";break;case"square":K="rect";break;case"diamond":K="question";break;case"hexagon":K="hexagon";break;case"odd":K="rect_left_inv_arrow";break;case"lean_right":K="lean_right";break;case"lean_left":K="lean_left";break;case"trapezoid":K="trapezoid";break;case"inv_trapezoid":K="inv_trapezoid";break;case"odd_right":K="rect_left_inv_arrow";break;case"circle":K="circle";break;case"ellipse":K="ellipse";break;case"stadium":K="stadium";break;case"subroutine":K="subroutine";break;case"cylinder":K="cylinder";break;case"group":K="rect";break;case"doublecircle":K="doublecircle";break;default:K="rect"}const ee=await CC(R,qt());s.setNode(_.id,{labelStyle:P.labelStyle,shape:K,labelText:ee,labelType:_.labelType,rx:j,ry:j,class:A,style:P.style,id:_.id,link:_.link,linkTarget:_.linkTarget,tooltip:v.db.getTooltip(_.id)||"",domId:v.db.lookUpDomId(_.id),haveCallback:_.haveCallback,width:_.type==="group"?500:void 0,dir:_.dir,type:_.type,props:_.props,padding:qt().flowchart.padding}),Xe.info("setNode",{labelStyle:P.labelStyle,labelType:_.labelType,shape:K,labelText:ee,rx:j,ry:j,class:A,style:P.style,id:_.id,domId:v.db.lookUpDomId(_.id),width:_.type==="group"?500:void 0,type:_.type,dir:_.dir,props:_.props,padding:qt().flowchart.padding})}},BUe=async function(i,s,u){Xe.info("abc78 edges = ",i);let d=0,p={},v,b;if(i.defaultStyle!==void 0){const y=om(i.defaultStyle);v=y.style,b=y.labelStyle}for(const y of i){d++;const T="L-"+y.start+"-"+y.end;p[T]===void 0?(p[T]=0,Xe.info("abc78 new entry",T,p[T])):(p[T]++,Xe.info("abc78 new entry",T,p[T]));let _=T+"-"+p[T];Xe.info("abc78 new link id to be used is",T,_,p[T]);const A="LS-"+y.start,P="LE-"+y.end,R={style:"",labelStyle:""};switch(R.minlen=y.length||1,y.type==="arrow_open"?R.arrowhead="none":R.arrowhead="normal",R.arrowTypeStart="arrow_open",R.arrowTypeEnd="arrow_open",y.type){case"double_arrow_cross":R.arrowTypeStart="arrow_cross";case"arrow_cross":R.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":R.arrowTypeStart="arrow_point";case"arrow_point":R.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":R.arrowTypeStart="arrow_circle";case"arrow_circle":R.arrowTypeEnd="arrow_circle";break}let F="",j="";switch(y.stroke){case"normal":F="fill:none;",v!==void 0&&(F=v),b!==void 0&&(j=b),R.thickness="normal",R.pattern="solid";break;case"dotted":R.thickness="normal",R.pattern="dotted",R.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":R.thickness="thick",R.pattern="solid",R.style="stroke-width: 3.5px;fill:none;";break;case"invisible":R.thickness="invisible",R.pattern="solid",R.style="stroke-width: 0;fill:none;";break}if(y.style!==void 0){const K=om(y.style);F=K.style,j=K.labelStyle}R.style=R.style+=F,R.labelStyle=R.labelStyle+=j,y.interpolate!==void 0?R.curve=Ov(y.interpolate,kp):i.defaultInterpolate!==void 0?R.curve=Ov(i.defaultInterpolate,kp):R.curve=Ov(NUe.curve,kp),y.text===void 0?y.style!==void 0&&(R.arrowheadStyle="fill: #333"):(R.arrowheadStyle="fill: #333",R.labelpos="c"),R.labelType=y.labelType,R.label=await CC(y.text.replace(li.lineBreakRegex,` + node : x:${i.x} y:${i.y} w:${i.width} h:${i.height}`);const d=i.x,p=i.y,v=Math.abs(d-u.x),b=i.width/2;let y=u.xMath.abs(d-s.x)*T){let P=u.y{Xe.debug("abc88 cutPathAtIntersect",i,s);let u=[],d=i[0],p=!1;return i.forEach(v=>{if(!Een(s,v)&&!p){const b=Ten(s,d,v);let y=!1;u.forEach(T=>{y=y||T.x===b.x&&T.y===b.y}),u.some(T=>T.x===b.x&&T.y===b.y)||u.push(b),p=!0}else d=v,p||u.push(v)}),u},IUe=function(i,s,u,d,p,v,b){let y=u.points;Xe.debug("abc88 InsertEdge: edge=",u,"e=",s);let T=!1;const _=v.node(s.v);var A=v.node(s.w);A!=null&&A.intersect&&(_!=null&&_.intersect)&&(y=y.slice(1,u.points.length-1),y.unshift(_.intersect(y[0])),y.push(A.intersect(y[y.length-1]))),u.toCluster&&(Xe.debug("to cluster abc88",d[u.toCluster]),y=DUe(u.points,d[u.toCluster].node),T=!0),u.fromCluster&&(Xe.debug("from cluster abc88",d[u.fromCluster]),y=DUe(y.reverse(),d[u.fromCluster].node).reverse(),T=!0);const P=y.filter(be=>!Number.isNaN(be.y));let R=FF;u.curve&&(p==="graph"||p==="flowchart")&&(R=u.curve);const{x:F,y:j}=_Ue(u),K=k7().x(F).y(j).curve(R);let ee;switch(u.thickness){case"normal":ee="edge-thickness-normal";break;case"thick":ee="edge-thickness-thick";break;case"invisible":ee="edge-thickness-thick";break;default:ee=""}switch(u.pattern){case"solid":ee+=" edge-pattern-solid";break;case"dotted":ee+=" edge-pattern-dotted";break;case"dashed":ee+=" edge-pattern-dashed";break}const ie=i.append("path").attr("d",K(P)).attr("id",u.id).attr("class"," "+ee+(u.classes?" "+u.classes:"")).attr("style",u.style);let oe="";(qt().flowchart.arrowMarkerAbsolute||qt().state.arrowMarkerAbsolute)&&(oe=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,oe=oe.replace(/\(/g,"\\("),oe=oe.replace(/\)/g,"\\)")),AUe(ie,u,oe,b,p);let pe={};return T&&(pe.updatedPath=y),pe.originalPath=u.points,pe},OUe=async(i,s,u,d,p,v)=>{Xe.info("Graph in recursive render: XXX",q7(s),p);const b=s.graph().rankdir;Xe.trace("Dir in recursive render - dir:",b);const y=i.insert("g").attr("class","root");s.nodes()?Xe.info("Recursive render XXX",s.nodes()):Xe.info("No nodes found for",s),s.edges().length>0&&Xe.trace("Recursive edges",s.edge(s.edges()[0]));const T=y.insert("g").attr("class","clusters"),_=y.insert("g").attr("class","edgePaths"),A=y.insert("g").attr("class","edgeLabels"),P=y.insert("g").attr("class","nodes");await Promise.all(s.nodes().map(async function(j){const K=s.node(j);if(p!==void 0){const ee=JSON.parse(JSON.stringify(p.clusterData));Xe.info("Setting data for cluster XXX (",j,") ",ee,p),s.setNode(p.id,ee),s.parent(j)||(Xe.trace("Setting parent",j,p.id),s.setParent(j,p.id,ee))}if(Xe.info("(Insert) Node XXX"+j+": "+JSON.stringify(s.node(j))),K&&K.clusterNode){Xe.info("Cluster identified",j,K.width,s.node(j));const ee=await OUe(P,K.graph,u,d,s.node(j),v),ie=ee.elem;Kh(K,ie),K.diff=ee.diff||0,Xe.info("Node bounds (abc123)",j,K,K.width,K.x,K.y),ben(ie,K),Xe.warn("Recursive render complete ",ie,K)}else s.children(j).length>0?(Xe.info("Cluster - the non recursive path XXX",j,K.id,K,s),Xe.info(MR(K.id,s)),Mo[K.id]={id:MR(K.id,s),node:K}):(Xe.info("Node - the non recursive path",j,K.id,K),await tJ(P,s.node(j),b))})),s.edges().forEach(function(j){const K=s.edge(j.v,j.w,j.name);Xe.info("Edge "+j.v+" -> "+j.w+": "+JSON.stringify(j)),Xe.info("Edge "+j.v+" -> "+j.w+": ",j," ",JSON.stringify(s.edge(j))),Xe.info("Fix",Mo,"ids:",j.v,j.w,"Translating: ",Mo[j.v],Mo[j.w]),zme(A,K)}),s.edges().forEach(function(j){Xe.info("Edge "+j.v+" -> "+j.w+": "+JSON.stringify(j))}),Xe.info("#############################################"),Xe.info("### Layout ###"),Xe.info("#############################################"),Xe.info(s),qD(s),Xe.info("Graph after layout:",q7(s));let R=0;const{subGraphTitleTotalMargin:F}=nJ(v);return HZt(s).forEach(function(j){const K=s.node(j);Xe.info("Position "+j+": "+JSON.stringify(s.node(j))),Xe.info("Position "+j+": ("+K.x,","+K.y,") width: ",K.width," height: ",K.height),K&&K.clusterNode?(K.y+=F,$me(K)):s.children(j).length>0?(K.height+=F,wen(T,K),Mo[K.id].node=K):(K.y+=F/2,$me(K))}),s.edges().forEach(function(j){const K=s.edge(j);Xe.info("Edge "+j.v+" -> "+j.w+": "+JSON.stringify(K),K),K.points.forEach(ie=>ie.y+=F/2);const ee=IUe(_,j,K,Mo,u,s,d);MUe(K,ee)}),s.nodes().forEach(function(j){const K=s.node(j);Xe.info(j,K.type,K.diff),K.type==="group"&&(R=K.diff)}),{elem:y,diff:R}},qme=async(i,s,u,d,p)=>{Sme(i,u,d,p),men(),ken(),yen(),$Zt(),Xe.warn("Graph at first:",JSON.stringify(q7(s))),qZt(s),Xe.warn("Graph after:",JSON.stringify(q7(s)));const v=qt();await OUe(i,s,d,p,void 0,v)},NUe={},Cen=function(i){const s=Object.keys(i);for(const u of s)NUe[u]=i[u]},PUe=async function(i,s,u,d,p,v){const b=d.select(`[id="${u}"]`),y=Object.keys(i);for(const T of y){const _=i[T];let A="default";_.classes.length>0&&(A=_.classes.join(" ")),A=A+" flowchart-label";const P=om(_.styles);let R=_.text!==void 0?_.text:_.id,F;if(Xe.info("vertex",_,_.labelType),_.labelType==="markdown")Xe.info("vertex",_,_.labelType);else if(f1(qt().flowchart.htmlLabels))F=vme(b,{label:R}).node(),F.parentNode.removeChild(F);else{const ie=p.createElementNS("http://www.w3.org/2000/svg","text");ie.setAttribute("style",P.labelStyle.replace("color:","fill:"));const oe=R.split(ci.lineBreakRegex);for(const pe of oe){const be=p.createElementNS("http://www.w3.org/2000/svg","tspan");be.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),be.setAttribute("dy","1em"),be.setAttribute("x","1"),be.textContent=pe,ie.appendChild(be)}F=ie}let j=0,K="";switch(_.type){case"round":j=5,K="rect";break;case"square":K="rect";break;case"diamond":K="question";break;case"hexagon":K="hexagon";break;case"odd":K="rect_left_inv_arrow";break;case"lean_right":K="lean_right";break;case"lean_left":K="lean_left";break;case"trapezoid":K="trapezoid";break;case"inv_trapezoid":K="inv_trapezoid";break;case"odd_right":K="rect_left_inv_arrow";break;case"circle":K="circle";break;case"ellipse":K="ellipse";break;case"stadium":K="stadium";break;case"subroutine":K="subroutine";break;case"cylinder":K="cylinder";break;case"group":K="rect";break;case"doublecircle":K="doublecircle";break;default:K="rect"}const ee=await CC(R,qt());s.setNode(_.id,{labelStyle:P.labelStyle,shape:K,labelText:ee,labelType:_.labelType,rx:j,ry:j,class:A,style:P.style,id:_.id,link:_.link,linkTarget:_.linkTarget,tooltip:v.db.getTooltip(_.id)||"",domId:v.db.lookUpDomId(_.id),haveCallback:_.haveCallback,width:_.type==="group"?500:void 0,dir:_.dir,type:_.type,props:_.props,padding:qt().flowchart.padding}),Xe.info("setNode",{labelStyle:P.labelStyle,labelType:_.labelType,shape:K,labelText:ee,rx:j,ry:j,class:A,style:P.style,id:_.id,domId:v.db.lookUpDomId(_.id),width:_.type==="group"?500:void 0,type:_.type,dir:_.dir,props:_.props,padding:qt().flowchart.padding})}},BUe=async function(i,s,u){Xe.info("abc78 edges = ",i);let d=0,p={},v,b;if(i.defaultStyle!==void 0){const y=om(i.defaultStyle);v=y.style,b=y.labelStyle}for(const y of i){d++;const T="L-"+y.start+"-"+y.end;p[T]===void 0?(p[T]=0,Xe.info("abc78 new entry",T,p[T])):(p[T]++,Xe.info("abc78 new entry",T,p[T]));let _=T+"-"+p[T];Xe.info("abc78 new link id to be used is",T,_,p[T]);const A="LS-"+y.start,P="LE-"+y.end,R={style:"",labelStyle:""};switch(R.minlen=y.length||1,y.type==="arrow_open"?R.arrowhead="none":R.arrowhead="normal",R.arrowTypeStart="arrow_open",R.arrowTypeEnd="arrow_open",y.type){case"double_arrow_cross":R.arrowTypeStart="arrow_cross";case"arrow_cross":R.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":R.arrowTypeStart="arrow_point";case"arrow_point":R.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":R.arrowTypeStart="arrow_circle";case"arrow_circle":R.arrowTypeEnd="arrow_circle";break}let F="",j="";switch(y.stroke){case"normal":F="fill:none;",v!==void 0&&(F=v),b!==void 0&&(j=b),R.thickness="normal",R.pattern="solid";break;case"dotted":R.thickness="normal",R.pattern="dotted",R.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":R.thickness="thick",R.pattern="solid",R.style="stroke-width: 3.5px;fill:none;";break;case"invisible":R.thickness="invisible",R.pattern="solid",R.style="stroke-width: 0;fill:none;";break}if(y.style!==void 0){const K=om(y.style);F=K.style,j=K.labelStyle}R.style=R.style+=F,R.labelStyle=R.labelStyle+=j,y.interpolate!==void 0?R.curve=Ov(y.interpolate,kp):i.defaultInterpolate!==void 0?R.curve=Ov(i.defaultInterpolate,kp):R.curve=Ov(NUe.curve,kp),y.text===void 0?y.style!==void 0&&(R.arrowheadStyle="fill: #333"):(R.arrowheadStyle="fill: #333",R.labelpos="c"),R.labelType=y.labelType,R.label=await CC(y.text.replace(ci.lineBreakRegex,` `),qt()),y.style===void 0&&(R.style=R.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),R.labelStyle=R.labelStyle.replace("color:","fill:"),R.id=_,R.classes="flowchart-link "+A+" "+P,s.setEdge(y.start,y.end,R,d)}},Hme={setConf:Cen,addVertices:PUe,addEdges:BUe,getClasses:function(i,s){return s.db.getClasses()},draw:async function(i,s,u,d){Xe.info("Drawing flowchart");let p=d.db.getDirection();p===void 0&&(p="TD");const{securityLevel:v,flowchart:b}=qt(),y=b.nodeSpacing||50,T=b.rankSpacing||50;let _;v==="sandbox"&&(_=Ir("#i"+s));const A=Ir(v==="sandbox"?_.nodes()[0].contentDocument.body:"body"),P=v==="sandbox"?_.nodes()[0].contentDocument:document,R=new B0({multigraph:!0,compound:!0}).setGraph({rankdir:p,nodesep:y,ranksep:T,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let F;const j=d.db.getSubGraphs();Xe.info("Subgraphs - ",j);for(let ae=j.length-1;ae>=0;ae--)F=j[ae],Xe.info("Subgraph - ",F),d.db.addVertex(F.id,{text:F.title,type:F.labelType},"group",void 0,F.classes,F.dir);const K=d.db.getVertices(),ee=d.db.getEdges();Xe.info("Edges",ee);let ie=0;for(ie=j.length-1;ie>=0;ie--){F=j[ie],_Be("cluster").append("text");for(let ae=0;ae{const u=ARe,d=u(i,"r"),p=u(i,"g"),v=u(i,"b");return SC(d,p,v,s)},FUe=i=>`.label { font-family: ${i.fontFamily}; color: ${i.nodeTextColor||i.textColor}; @@ -547,7 +547,7 @@ Expecting `+zr.join(", ")+", got '"+(this.terminals_[ln]||ln)+"'":yt="Parse erro Expecting `+kt.join(", ")+", got '"+(this.terminals_[_t]||_t)+"'":On="Parse error on line "+(Fe+1)+": Unexpected "+(_t==Ie?"end of input":"'"+(this.terminals_[_t]||_t)+"'"),this.parseError(On,{text:Ce.match,token:this.terminals_[_t]||_t,line:Ce.yylineno,loc:Ft,expected:kt})}if(Gt[0]instanceof Array&&Gt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Et+", token: "+_t);switch(Gt[0]){case 1:de.push(_t),ge.push(Ce.yytext),W.push(Ce.yylloc),de.push(Gt[1]),_t=null,Pe=Ce.yyleng,U=Ce.yytext,Fe=Ce.yylineno,Ft=Ce.yylloc;break;case 2:if(Qe=this.productions_[Gt[1]][1],xt.$=ge[ge.length-Qe],xt._$={first_line:W[W.length-(Qe||1)].first_line,last_line:W[W.length-1].last_line,first_column:W[W.length-(Qe||1)].first_column,last_column:W[W.length-1].last_column},Ne&&(xt._$.range=[W[W.length-(Qe||1)].range[0],W[W.length-1].range[1]]),ln=this.performAction.apply(xt,[U,Pe,Fe,ke.yy,Gt[1],ge,W].concat(Se)),typeof ln<"u")return ln;Qe&&(de=de.slice(0,-1*Qe*2),ge=ge.slice(0,-1*Qe),W=W.slice(0,-1*Qe)),de.push(this.productions_[Gt[1]][0]),ge.push(xt.$),W.push(xt._$),Dt=xe[de[de.length-2]][de[de.length-1]],de.push(Dt);break;case 3:return!0}}return!0}},pe=function(){var ae={EOF:1,parseError:function(se,de){if(this.yy.parser)this.yy.parser.parseError(se,de);else throw new Error(se)},setInput:function(ne,se){return this.yy=se||this.yy||{},this._input=ne,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ne=this._input[0];this.yytext+=ne,this.yyleng++,this.offset++,this.match+=ne,this.matched+=ne;var se=ne.match(/(?:\r\n?|\n).*/g);return se?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ne},unput:function(ne){var se=ne.length,de=ne.split(/(?:\r\n?|\n)/g);this._input=ne+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-se),this.offset-=se;var X=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),de.length-1&&(this.yylineno-=de.length-1);var ge=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:de?(de.length===X.length?this.yylloc.first_column:0)+X[X.length-de.length].length-de[0].length:this.yylloc.first_column-se},this.options.ranges&&(this.yylloc.range=[ge[0],ge[0]+this.yyleng-se]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ne){this.unput(this.match.slice(ne))},pastInput:function(){var ne=this.matched.substr(0,this.matched.length-this.match.length);return(ne.length>20?"...":"")+ne.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var ne=this.match;return ne.length<20&&(ne+=this._input.substr(0,20-ne.length)),(ne.substr(0,20)+(ne.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var ne=this.pastInput(),se=new Array(ne.length+1).join("-");return ne+this.upcomingInput()+` `+se+"^"},test_match:function(ne,se){var de,X,ge;if(this.options.backtrack_lexer&&(ge={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ge.yylloc.range=this.yylloc.range.slice(0))),X=ne[0].match(/(?:\r\n?|\n).*/g),X&&(this.yylineno+=X.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:X?X[X.length-1].length-X[X.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ne[0].length},this.yytext+=ne[0],this.match+=ne[0],this.matches=ne,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ne[0].length),this.matched+=ne[0],de=this.performAction.call(this,this.yy,this,se,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),de)return de;if(this._backtrack){for(var W in ge)this[W]=ge[W];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ne,se,de,X;this._more||(this.yytext="",this.match="");for(var ge=this._currentRules(),W=0;Wse[0].length)){if(se=de,X=W,this.options.backtrack_lexer){if(ne=this.test_match(de,ge[W]),ne!==!1)return ne;if(this._backtrack){se=!1;continue}else return!1}else if(!this.options.flex)break}return se?(ne=this.test_match(se,ge[X]),ne!==!1?ne:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var se=this.next();return se||this.lex()},begin:function(se){this.conditionStack.push(se)},popState:function(){var se=this.conditionStack.length-1;return se>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(se){return se=this.conditionStack.length-1-Math.abs(se||0),se>=0?this.conditionStack[se]:"INITIAL"},pushState:function(se){this.begin(se)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(se,de,X,ge){switch(X){case 0:return this.begin("acc_title"),19;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),21;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 13;case 8:break;case 9:break;case 10:return 5;case 11:return 40;case 12:return 32;case 13:return 38;case 14:return 42;case 15:return 43;case 16:return 44;case 17:return 45;case 18:return 35;case 19:return 28;case 20:return 29;case 21:return 37;case 22:return 31;case 23:return 34;case 24:return 26;case 25:return 9;case 26:return 9;case 27:return 8;case 28:return"CARET";case 29:this.begin("options");break;case 30:this.popState();break;case 31:return 12;case 32:return 36;case 33:this.begin("string");break;case 34:this.popState();break;case 35:return 33;case 36:return 30;case 37:return 46;case 38:return 7}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit(?=\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch(?=\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\s|$))/i,/^(?:cherry-pick(?=\s|$))/i,/^(?:parent:)/i,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:TB\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?=\s|$))/i,/^(?:\w([-\./\w]*[-\w])?)/i,/^(?:$)/i,/^(?:\s+)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},options:{rules:[30,31],inclusive:!1},string:{rules:[34,35],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,32,33,36,37,38,39],inclusive:!0}}};return ae}();oe.lexer=pe;function be(){this.yy={}}return be.prototype=oe,oe.Parser=be,new be}();Kme.parser=Kme;const ttn=Kme;let oJ=qt().gitGraph.mainBranchName,ntn=qt().gitGraph.mainBranchOrder,b1={},Np=null,OR={};OR[oJ]={name:oJ,order:ntn};let F0={};F0[oJ]=Np;let sd=oJ,qUe="LR",YC=0;function Wme(){return mje({length:7})}function rtn(i,s){const u=Object.create(null);return i.reduce((d,p)=>{const v=s(p);return u[v]||(u[v]=!0,d.push(p)),d},[])}const itn=function(i){qUe=i};let HUe={};const stn=function(i){Xe.debug("options str",i),i=i&&i.trim(),i=i||"{}";try{HUe=JSON.parse(i)}catch(s){Xe.error("error while parsing gitGraph options",s.message)}},atn=function(){return HUe},otn=function(i,s,u,d){Xe.debug("Entering commit:",i,s,u,d),s=li.sanitizeText(s,qt()),i=li.sanitizeText(i,qt()),d=li.sanitizeText(d,qt());const p={id:s||YC+"-"+Wme(),message:i,seq:YC++,type:u||UD.NORMAL,tag:d||"",parents:Np==null?[]:[Np.id],branch:sd};Np=p,b1[p.id]=p,F0[sd]=p.id,Xe.debug("in pushCommit "+p.id)},ctn=function(i,s){if(i=li.sanitizeText(i,qt()),F0[i]===void 0)F0[i]=Np!=null?Np.id:null,OR[i]={name:i,order:s?parseInt(s,10):null},VUe(i),Xe.debug("in createBranch");else{let u=new Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout '+i+'")');throw u.hash={text:"branch "+i,token:"branch "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+i+'"']},u}},utn=function(i,s,u,d){i=li.sanitizeText(i,qt()),s=li.sanitizeText(s,qt());const p=b1[F0[sd]],v=b1[F0[i]];if(sd===i){let y=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},y}else if(p===void 0||!p){let y=new Error('Incorrect usage of "merge". Current branch ('+sd+")has no commits");throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},y}else if(F0[i]===void 0){let y=new Error('Incorrect usage of "merge". Branch to be merged ('+i+") does not exist");throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+i]},y}else if(v===void 0||!v){let y=new Error('Incorrect usage of "merge". Branch to be merged ('+i+") has no commits");throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},y}else if(p===v){let y=new Error('Incorrect usage of "merge". Both branches have same head');throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},y}else if(s&&b1[s]!==void 0){let y=new Error('Incorrect usage of "merge". Commit with id:'+s+" already exists, use different custom Id");throw y.hash={text:"merge "+i+s+u+d,token:"merge "+i+s+u+d,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+i+" "+s+"_UNIQUE "+u+" "+d]},y}const b={id:s||YC+"-"+Wme(),message:"merged branch "+i+" into "+sd,seq:YC++,parents:[Np==null?null:Np.id,F0[i]],branch:sd,type:UD.MERGE,customType:u,customId:!!s,tag:d||""};Np=b,b1[b.id]=b,F0[sd]=b.id,Xe.debug(F0),Xe.debug("in mergeBranch")},ltn=function(i,s,u,d){if(Xe.debug("Entering cherryPick:",i,s,u),i=li.sanitizeText(i,qt()),s=li.sanitizeText(s,qt()),u=li.sanitizeText(u,qt()),d=li.sanitizeText(d,qt()),!i||b1[i]===void 0){let b=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw b.hash={text:"cherryPick "+i+" "+s,token:"cherryPick "+i+" "+s,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},b}let p=b1[i],v=p.branch;if(d&&!(Array.isArray(p.parents)&&p.parents.includes(d)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");if(p.type===UD.MERGE&&!d)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!s||b1[s]===void 0){if(v===sd){let T=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw T.hash={text:"cherryPick "+i+" "+s,token:"cherryPick "+i+" "+s,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},T}const b=b1[F0[sd]];if(b===void 0||!b){let T=new Error('Incorrect usage of "cherry-pick". Current branch ('+sd+")has no commits");throw T.hash={text:"cherryPick "+i+" "+s,token:"cherryPick "+i+" "+s,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},T}const y={id:YC+"-"+Wme(),message:"cherry-picked "+p+" into "+sd,seq:YC++,parents:[Np==null?null:Np.id,p.id],branch:sd,type:UD.CHERRY_PICK,tag:u??`cherry-pick:${p.id}${p.type===UD.MERGE?`|parent:${d}`:""}`};Np=y,b1[y.id]=y,F0[sd]=y.id,Xe.debug(F0),Xe.debug("in cherryPick")}},VUe=function(i){if(i=li.sanitizeText(i,qt()),F0[i]===void 0){let s=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+i+'")');throw s.hash={text:"checkout "+i,token:"checkout "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+i+'"']},s}else{sd=i;const s=F0[sd];Np=b1[s]}};function UUe(i,s,u){const d=i.indexOf(s);d===-1?i.push(u):i.splice(d,1,u)}function GUe(i){const s=i.reduce((p,v)=>p.seq>v.seq?p:v,i[0]);let u="";i.forEach(function(p){p===s?u+=" *":u+=" |"});const d=[u,s.id,s.seq];for(let p in F0)F0[p]===s.id&&d.push(p);if(Xe.debug(d.join(" ")),s.parents&&s.parents.length==2){const p=b1[s.parents[0]];UUe(i,s,p),i.push(b1[s.parents[1]])}else{if(s.parents.length==0)return;{const p=b1[s.parents];UUe(i,s,p)}}i=rtn(i,p=>p.id),GUe(i)}const htn=function(){Xe.debug(b1);const i=KUe()[0];GUe([i])},ftn=function(){b1={},Np=null;let i=qt().gitGraph.mainBranchName,s=qt().gitGraph.mainBranchOrder;F0={},F0[i]=null,OR={},OR[i]={name:i,order:s},sd=i,YC=0,Pg()},dtn=function(){return Object.values(OR).map((s,u)=>s.order!==null?s:{...s,order:parseFloat(`0.${u}`,10)}).sort((s,u)=>s.order-u.order).map(({name:s})=>({name:s}))},gtn=function(){return F0},ptn=function(){return b1},KUe=function(){const i=Object.keys(b1).map(function(s){return b1[s]});return i.forEach(function(s){Xe.debug(s.id)}),i.sort((s,u)=>s.seq-u.seq),i},btn=function(){return sd},mtn=function(){return qUe},vtn=function(){return Np},UD={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},wtn={getConfig:()=>qt().gitGraph,setDirection:itn,setOptions:stn,getOptions:atn,commit:otn,branch:ctn,merge:utn,cherryPick:ltn,checkout:VUe,prettyPrint:htn,clear:ftn,getBranchesAsObjArray:dtn,getBranches:gtn,getCommits:ptn,getCommitsArray:KUe,getCurrentBranch:btn,getDirection:mtn,getHead:vtn,setAccTitle:Bg,getAccTitle:Cp,getAccDescription:_p,setAccDescription:Sp,setDiagramTitle:cm,getDiagramTitle:Ap,commitType:UD};let NR={};const ad={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},XC=8;let H2={},H7={},cJ=[],PR=0,R0="LR";const ytn=()=>{H2={},H7={},NR={},PR=0,cJ=[],R0="LR"},WUe=i=>{const s=document.createElementNS("http://www.w3.org/2000/svg","text");let u=[];typeof i=="string"?u=i.split(/\\n|\n|/gi):Array.isArray(i)?u=i:u=[];for(const d of u){const p=document.createElementNS("http://www.w3.org/2000/svg","tspan");p.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),p.setAttribute("dy","1em"),p.setAttribute("x","0"),p.setAttribute("class","row"),p.textContent=d.trim(),s.appendChild(p)}return s},xtn=i=>{let s="",u=0;return i.forEach(d=>{const p=R0==="TB"?H7[d].y:H7[d].x;p>=u&&(s=d,u=p)}),s||void 0},YUe=(i,s,u)=>{const d=qt().gitGraph,p=i.append("g").attr("class","commit-bullets"),v=i.append("g").attr("class","commit-labels");let b=0;R0==="TB"&&(b=30);const T=Object.keys(s).sort((R,F)=>s[R].seq-s[F].seq),_=d.parallelCommits,A=10,P=40;T.forEach(R=>{const F=s[R];if(_)if(F.parents.length){const ie=xtn(F.parents);b=R0==="TB"?H7[ie].y+P:H7[ie].x+P}else b=0,R0==="TB"&&(b=30);const j=b+A,K=R0==="TB"?j:H2[F.branch].pos,ee=R0==="TB"?H2[F.branch].pos:j;if(u){let ie,oe=F.customType!==void 0&&F.customType!==""?F.customType:F.type;switch(oe){case ad.NORMAL:ie="commit-normal";break;case ad.REVERSE:ie="commit-reverse";break;case ad.HIGHLIGHT:ie="commit-highlight";break;case ad.MERGE:ie="commit-merge";break;case ad.CHERRY_PICK:ie="commit-cherry-pick";break;default:ie="commit-normal"}if(oe===ad.HIGHLIGHT){const pe=p.append("rect");pe.attr("x",ee-10),pe.attr("y",K-10),pe.attr("height",20),pe.attr("width",20),pe.attr("class",`commit ${F.id} commit-highlight${H2[F.branch].index%XC} ${ie}-outer`),p.append("rect").attr("x",ee-6).attr("y",K-6).attr("height",12).attr("width",12).attr("class",`commit ${F.id} commit${H2[F.branch].index%XC} ${ie}-inner`)}else if(oe===ad.CHERRY_PICK)p.append("circle").attr("cx",ee).attr("cy",K).attr("r",10).attr("class",`commit ${F.id} ${ie}`),p.append("circle").attr("cx",ee-3).attr("cy",K+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${F.id} ${ie}`),p.append("circle").attr("cx",ee+3).attr("cy",K+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${F.id} ${ie}`),p.append("line").attr("x1",ee+3).attr("y1",K+1).attr("x2",ee).attr("y2",K-5).attr("stroke","#fff").attr("class",`commit ${F.id} ${ie}`),p.append("line").attr("x1",ee-3).attr("y1",K+1).attr("x2",ee).attr("y2",K-5).attr("stroke","#fff").attr("class",`commit ${F.id} ${ie}`);else{const pe=p.append("circle");if(pe.attr("cx",ee),pe.attr("cy",K),pe.attr("r",F.type===ad.MERGE?9:10),pe.attr("class",`commit ${F.id} commit${H2[F.branch].index%XC}`),oe===ad.MERGE){const be=p.append("circle");be.attr("cx",ee),be.attr("cy",K),be.attr("r",6),be.attr("class",`commit ${ie} ${F.id} commit${H2[F.branch].index%XC}`)}oe===ad.REVERSE&&p.append("path").attr("d",`M ${ee-5},${K-5}L${ee+5},${K+5}M${ee-5},${K+5}L${ee+5},${K-5}`).attr("class",`commit ${ie} ${F.id} commit${H2[F.branch].index%XC}`)}}if(R0==="TB"?H7[F.id]={x:ee,y:j}:H7[F.id]={x:j,y:K},u){if(F.type!==ad.CHERRY_PICK&&(F.customId&&F.type===ad.MERGE||F.type!==ad.MERGE)&&d.showCommitLabel){const pe=v.append("g"),be=pe.insert("rect").attr("class","commit-label-bkg"),ae=pe.append("text").attr("x",b).attr("y",K+25).attr("class","commit-label").text(F.id);let ne=ae.node().getBBox();if(be.attr("x",j-ne.width/2-2).attr("y",K+13.5).attr("width",ne.width+2*2).attr("height",ne.height+2*2),R0==="TB"&&(be.attr("x",ee-(ne.width+4*4+5)).attr("y",K-12),ae.attr("x",ee-(ne.width+4*4)).attr("y",K+ne.height-12)),R0!=="TB"&&ae.attr("x",j-ne.width/2),d.rotateCommitLabel)if(R0==="TB")ae.attr("transform","rotate(-45, "+ee+", "+K+")"),be.attr("transform","rotate(-45, "+ee+", "+K+")");else{let se=-7.5-(ne.width+10)/25*9.5,de=10+ne.width/25*8.5;pe.attr("transform","translate("+se+", "+de+") rotate(-45, "+b+", "+K+")")}}if(F.tag){const pe=v.insert("polygon"),be=v.append("circle"),ae=v.append("text").attr("y",K-16).attr("class","tag-label").text(F.tag);let ne=ae.node().getBBox();ae.attr("x",j-ne.width/2);const se=ne.height/2,de=K-19.2;pe.attr("class","tag-label-bkg").attr("points",` +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var se=this.next();return se||this.lex()},begin:function(se){this.conditionStack.push(se)},popState:function(){var se=this.conditionStack.length-1;return se>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(se){return se=this.conditionStack.length-1-Math.abs(se||0),se>=0?this.conditionStack[se]:"INITIAL"},pushState:function(se){this.begin(se)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(se,de,X,ge){switch(X){case 0:return this.begin("acc_title"),19;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),21;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 13;case 8:break;case 9:break;case 10:return 5;case 11:return 40;case 12:return 32;case 13:return 38;case 14:return 42;case 15:return 43;case 16:return 44;case 17:return 45;case 18:return 35;case 19:return 28;case 20:return 29;case 21:return 37;case 22:return 31;case 23:return 34;case 24:return 26;case 25:return 9;case 26:return 9;case 27:return 8;case 28:return"CARET";case 29:this.begin("options");break;case 30:this.popState();break;case 31:return 12;case 32:return 36;case 33:this.begin("string");break;case 34:this.popState();break;case 35:return 33;case 36:return 30;case 37:return 46;case 38:return 7}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit(?=\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch(?=\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\s|$))/i,/^(?:cherry-pick(?=\s|$))/i,/^(?:parent:)/i,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:TB\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?=\s|$))/i,/^(?:\w([-\./\w]*[-\w])?)/i,/^(?:$)/i,/^(?:\s+)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},options:{rules:[30,31],inclusive:!1},string:{rules:[34,35],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,32,33,36,37,38,39],inclusive:!0}}};return ae}();oe.lexer=pe;function be(){this.yy={}}return be.prototype=oe,oe.Parser=be,new be}();Kme.parser=Kme;const ttn=Kme;let oJ=qt().gitGraph.mainBranchName,ntn=qt().gitGraph.mainBranchOrder,b1={},Np=null,OR={};OR[oJ]={name:oJ,order:ntn};let F0={};F0[oJ]=Np;let sd=oJ,qUe="LR",YC=0;function Wme(){return mje({length:7})}function rtn(i,s){const u=Object.create(null);return i.reduce((d,p)=>{const v=s(p);return u[v]||(u[v]=!0,d.push(p)),d},[])}const itn=function(i){qUe=i};let HUe={};const stn=function(i){Xe.debug("options str",i),i=i&&i.trim(),i=i||"{}";try{HUe=JSON.parse(i)}catch(s){Xe.error("error while parsing gitGraph options",s.message)}},atn=function(){return HUe},otn=function(i,s,u,d){Xe.debug("Entering commit:",i,s,u,d),s=ci.sanitizeText(s,qt()),i=ci.sanitizeText(i,qt()),d=ci.sanitizeText(d,qt());const p={id:s||YC+"-"+Wme(),message:i,seq:YC++,type:u||UD.NORMAL,tag:d||"",parents:Np==null?[]:[Np.id],branch:sd};Np=p,b1[p.id]=p,F0[sd]=p.id,Xe.debug("in pushCommit "+p.id)},ctn=function(i,s){if(i=ci.sanitizeText(i,qt()),F0[i]===void 0)F0[i]=Np!=null?Np.id:null,OR[i]={name:i,order:s?parseInt(s,10):null},VUe(i),Xe.debug("in createBranch");else{let u=new Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout '+i+'")');throw u.hash={text:"branch "+i,token:"branch "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+i+'"']},u}},utn=function(i,s,u,d){i=ci.sanitizeText(i,qt()),s=ci.sanitizeText(s,qt());const p=b1[F0[sd]],v=b1[F0[i]];if(sd===i){let y=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},y}else if(p===void 0||!p){let y=new Error('Incorrect usage of "merge". Current branch ('+sd+")has no commits");throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},y}else if(F0[i]===void 0){let y=new Error('Incorrect usage of "merge". Branch to be merged ('+i+") does not exist");throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+i]},y}else if(v===void 0||!v){let y=new Error('Incorrect usage of "merge". Branch to be merged ('+i+") has no commits");throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},y}else if(p===v){let y=new Error('Incorrect usage of "merge". Both branches have same head');throw y.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},y}else if(s&&b1[s]!==void 0){let y=new Error('Incorrect usage of "merge". Commit with id:'+s+" already exists, use different custom Id");throw y.hash={text:"merge "+i+s+u+d,token:"merge "+i+s+u+d,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+i+" "+s+"_UNIQUE "+u+" "+d]},y}const b={id:s||YC+"-"+Wme(),message:"merged branch "+i+" into "+sd,seq:YC++,parents:[Np==null?null:Np.id,F0[i]],branch:sd,type:UD.MERGE,customType:u,customId:!!s,tag:d||""};Np=b,b1[b.id]=b,F0[sd]=b.id,Xe.debug(F0),Xe.debug("in mergeBranch")},ltn=function(i,s,u,d){if(Xe.debug("Entering cherryPick:",i,s,u),i=ci.sanitizeText(i,qt()),s=ci.sanitizeText(s,qt()),u=ci.sanitizeText(u,qt()),d=ci.sanitizeText(d,qt()),!i||b1[i]===void 0){let b=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw b.hash={text:"cherryPick "+i+" "+s,token:"cherryPick "+i+" "+s,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},b}let p=b1[i],v=p.branch;if(d&&!(Array.isArray(p.parents)&&p.parents.includes(d)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");if(p.type===UD.MERGE&&!d)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!s||b1[s]===void 0){if(v===sd){let T=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw T.hash={text:"cherryPick "+i+" "+s,token:"cherryPick "+i+" "+s,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},T}const b=b1[F0[sd]];if(b===void 0||!b){let T=new Error('Incorrect usage of "cherry-pick". Current branch ('+sd+")has no commits");throw T.hash={text:"cherryPick "+i+" "+s,token:"cherryPick "+i+" "+s,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},T}const y={id:YC+"-"+Wme(),message:"cherry-picked "+p+" into "+sd,seq:YC++,parents:[Np==null?null:Np.id,p.id],branch:sd,type:UD.CHERRY_PICK,tag:u??`cherry-pick:${p.id}${p.type===UD.MERGE?`|parent:${d}`:""}`};Np=y,b1[y.id]=y,F0[sd]=y.id,Xe.debug(F0),Xe.debug("in cherryPick")}},VUe=function(i){if(i=ci.sanitizeText(i,qt()),F0[i]===void 0){let s=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+i+'")');throw s.hash={text:"checkout "+i,token:"checkout "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+i+'"']},s}else{sd=i;const s=F0[sd];Np=b1[s]}};function UUe(i,s,u){const d=i.indexOf(s);d===-1?i.push(u):i.splice(d,1,u)}function GUe(i){const s=i.reduce((p,v)=>p.seq>v.seq?p:v,i[0]);let u="";i.forEach(function(p){p===s?u+=" *":u+=" |"});const d=[u,s.id,s.seq];for(let p in F0)F0[p]===s.id&&d.push(p);if(Xe.debug(d.join(" ")),s.parents&&s.parents.length==2){const p=b1[s.parents[0]];UUe(i,s,p),i.push(b1[s.parents[1]])}else{if(s.parents.length==0)return;{const p=b1[s.parents];UUe(i,s,p)}}i=rtn(i,p=>p.id),GUe(i)}const htn=function(){Xe.debug(b1);const i=KUe()[0];GUe([i])},ftn=function(){b1={},Np=null;let i=qt().gitGraph.mainBranchName,s=qt().gitGraph.mainBranchOrder;F0={},F0[i]=null,OR={},OR[i]={name:i,order:s},sd=i,YC=0,Pg()},dtn=function(){return Object.values(OR).map((s,u)=>s.order!==null?s:{...s,order:parseFloat(`0.${u}`,10)}).sort((s,u)=>s.order-u.order).map(({name:s})=>({name:s}))},gtn=function(){return F0},ptn=function(){return b1},KUe=function(){const i=Object.keys(b1).map(function(s){return b1[s]});return i.forEach(function(s){Xe.debug(s.id)}),i.sort((s,u)=>s.seq-u.seq),i},btn=function(){return sd},mtn=function(){return qUe},vtn=function(){return Np},UD={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},wtn={getConfig:()=>qt().gitGraph,setDirection:itn,setOptions:stn,getOptions:atn,commit:otn,branch:ctn,merge:utn,cherryPick:ltn,checkout:VUe,prettyPrint:htn,clear:ftn,getBranchesAsObjArray:dtn,getBranches:gtn,getCommits:ptn,getCommitsArray:KUe,getCurrentBranch:btn,getDirection:mtn,getHead:vtn,setAccTitle:Bg,getAccTitle:Cp,getAccDescription:_p,setAccDescription:Sp,setDiagramTitle:cm,getDiagramTitle:Ap,commitType:UD};let NR={};const ad={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},XC=8;let H2={},H7={},cJ=[],PR=0,R0="LR";const ytn=()=>{H2={},H7={},NR={},PR=0,cJ=[],R0="LR"},WUe=i=>{const s=document.createElementNS("http://www.w3.org/2000/svg","text");let u=[];typeof i=="string"?u=i.split(/\\n|\n|/gi):Array.isArray(i)?u=i:u=[];for(const d of u){const p=document.createElementNS("http://www.w3.org/2000/svg","tspan");p.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),p.setAttribute("dy","1em"),p.setAttribute("x","0"),p.setAttribute("class","row"),p.textContent=d.trim(),s.appendChild(p)}return s},xtn=i=>{let s="",u=0;return i.forEach(d=>{const p=R0==="TB"?H7[d].y:H7[d].x;p>=u&&(s=d,u=p)}),s||void 0},YUe=(i,s,u)=>{const d=qt().gitGraph,p=i.append("g").attr("class","commit-bullets"),v=i.append("g").attr("class","commit-labels");let b=0;R0==="TB"&&(b=30);const T=Object.keys(s).sort((R,F)=>s[R].seq-s[F].seq),_=d.parallelCommits,A=10,P=40;T.forEach(R=>{const F=s[R];if(_)if(F.parents.length){const ie=xtn(F.parents);b=R0==="TB"?H7[ie].y+P:H7[ie].x+P}else b=0,R0==="TB"&&(b=30);const j=b+A,K=R0==="TB"?j:H2[F.branch].pos,ee=R0==="TB"?H2[F.branch].pos:j;if(u){let ie,oe=F.customType!==void 0&&F.customType!==""?F.customType:F.type;switch(oe){case ad.NORMAL:ie="commit-normal";break;case ad.REVERSE:ie="commit-reverse";break;case ad.HIGHLIGHT:ie="commit-highlight";break;case ad.MERGE:ie="commit-merge";break;case ad.CHERRY_PICK:ie="commit-cherry-pick";break;default:ie="commit-normal"}if(oe===ad.HIGHLIGHT){const pe=p.append("rect");pe.attr("x",ee-10),pe.attr("y",K-10),pe.attr("height",20),pe.attr("width",20),pe.attr("class",`commit ${F.id} commit-highlight${H2[F.branch].index%XC} ${ie}-outer`),p.append("rect").attr("x",ee-6).attr("y",K-6).attr("height",12).attr("width",12).attr("class",`commit ${F.id} commit${H2[F.branch].index%XC} ${ie}-inner`)}else if(oe===ad.CHERRY_PICK)p.append("circle").attr("cx",ee).attr("cy",K).attr("r",10).attr("class",`commit ${F.id} ${ie}`),p.append("circle").attr("cx",ee-3).attr("cy",K+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${F.id} ${ie}`),p.append("circle").attr("cx",ee+3).attr("cy",K+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${F.id} ${ie}`),p.append("line").attr("x1",ee+3).attr("y1",K+1).attr("x2",ee).attr("y2",K-5).attr("stroke","#fff").attr("class",`commit ${F.id} ${ie}`),p.append("line").attr("x1",ee-3).attr("y1",K+1).attr("x2",ee).attr("y2",K-5).attr("stroke","#fff").attr("class",`commit ${F.id} ${ie}`);else{const pe=p.append("circle");if(pe.attr("cx",ee),pe.attr("cy",K),pe.attr("r",F.type===ad.MERGE?9:10),pe.attr("class",`commit ${F.id} commit${H2[F.branch].index%XC}`),oe===ad.MERGE){const be=p.append("circle");be.attr("cx",ee),be.attr("cy",K),be.attr("r",6),be.attr("class",`commit ${ie} ${F.id} commit${H2[F.branch].index%XC}`)}oe===ad.REVERSE&&p.append("path").attr("d",`M ${ee-5},${K-5}L${ee+5},${K+5}M${ee-5},${K+5}L${ee+5},${K-5}`).attr("class",`commit ${ie} ${F.id} commit${H2[F.branch].index%XC}`)}}if(R0==="TB"?H7[F.id]={x:ee,y:j}:H7[F.id]={x:j,y:K},u){if(F.type!==ad.CHERRY_PICK&&(F.customId&&F.type===ad.MERGE||F.type!==ad.MERGE)&&d.showCommitLabel){const pe=v.append("g"),be=pe.insert("rect").attr("class","commit-label-bkg"),ae=pe.append("text").attr("x",b).attr("y",K+25).attr("class","commit-label").text(F.id);let ne=ae.node().getBBox();if(be.attr("x",j-ne.width/2-2).attr("y",K+13.5).attr("width",ne.width+2*2).attr("height",ne.height+2*2),R0==="TB"&&(be.attr("x",ee-(ne.width+4*4+5)).attr("y",K-12),ae.attr("x",ee-(ne.width+4*4)).attr("y",K+ne.height-12)),R0!=="TB"&&ae.attr("x",j-ne.width/2),d.rotateCommitLabel)if(R0==="TB")ae.attr("transform","rotate(-45, "+ee+", "+K+")"),be.attr("transform","rotate(-45, "+ee+", "+K+")");else{let se=-7.5-(ne.width+10)/25*9.5,de=10+ne.width/25*8.5;pe.attr("transform","translate("+se+", "+de+") rotate(-45, "+b+", "+K+")")}}if(F.tag){const pe=v.insert("polygon"),be=v.append("circle"),ae=v.append("text").attr("y",K-16).attr("class","tag-label").text(F.tag);let ne=ae.node().getBBox();ae.attr("x",j-ne.width/2);const se=ne.height/2,de=K-19.2;pe.attr("class","tag-label-bkg").attr("points",` ${b-ne.width/2-4/2},${de+2} ${b-ne.width/2-4/2},${de-2} ${j-ne.width/2-4},${de-se-2} @@ -616,7 +616,7 @@ Expecting `+kt.join(", ")+", got '"+(this.terminals_[_t]||_t)+"'":On="Parse erro Expecting `+xi.join(", ")+", got '"+(this.terminals_[Qe]||Qe)+"'":Ma="Parse error on line "+(ke+1)+": Unexpected "+(Qe==Ne?"end of input":"'"+(this.terminals_[Qe]||Qe)+"'"),this.parseError(Ma,{text:_t.match,token:this.terminals_[Qe]||Qe,line:_t.yylineno,loc:ln,expected:xi})}if(kt[0]instanceof Array&&kt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Dt+", token: "+Qe);switch(kt[0]){case 1:Fe.push(Qe),je.push(_t.yytext),Ie.push(_t.yylloc),Fe.push(kt[1]),Qe=null,Ke=_t.yyleng,Ce=_t.yytext,ke=_t.yylineno,ln=_t.yylloc;break;case 2:if(yt=this.productions_[kt[1]][1],ht.$=je[je.length-yt],ht._$={first_line:Ie[Ie.length-(yt||1)].first_line,last_line:Ie[Ie.length-1].last_line,first_column:Ie[Ie.length-(yt||1)].first_column,last_column:Ie[Ie.length-1].last_column},xt&&(ht._$.range=[Ie[Ie.length-(yt||1)].range[0],Ie[Ie.length-1].range[1]]),On=this.performAction.apply(ht,[Ce,Ke,ke,Et.yy,kt[1],je,Ie].concat(gn)),typeof On<"u")return On;yt&&(Fe=Fe.slice(0,-1*yt*2),je=je.slice(0,-1*yt),Ie=Ie.slice(0,-1*yt)),Fe.push(this.productions_[kt[1]][0]),je.push(ht.$),Ie.push(ht._$),ji=Se[Fe[Fe.length-2]][Fe[Fe.length-1]],Fe.push(ji);break;case 3:return!0}}return!0}},X=function(){var W={EOF:1,parseError:function(U,Fe){if(this.yy.parser)this.yy.parser.parseError(U,Fe);else throw new Error(U)},setInput:function(xe,U){return this.yy=U||this.yy||{},this._input=xe,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var xe=this._input[0];this.yytext+=xe,this.yyleng++,this.offset++,this.match+=xe,this.matched+=xe;var U=xe.match(/(?:\r\n?|\n).*/g);return U?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),xe},unput:function(xe){var U=xe.length,Fe=xe.split(/(?:\r\n?|\n)/g);this._input=xe+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-U),this.offset-=U;var Pe=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Fe.length-1&&(this.yylineno-=Fe.length-1);var je=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Fe?(Fe.length===Pe.length?this.yylloc.first_column:0)+Pe[Pe.length-Fe.length].length-Fe[0].length:this.yylloc.first_column-U},this.options.ranges&&(this.yylloc.range=[je[0],je[0]+this.yyleng-U]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(xe){this.unput(this.match.slice(xe))},pastInput:function(){var xe=this.matched.substr(0,this.matched.length-this.match.length);return(xe.length>20?"...":"")+xe.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var xe=this.match;return xe.length<20&&(xe+=this._input.substr(0,20-xe.length)),(xe.substr(0,20)+(xe.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var xe=this.pastInput(),U=new Array(xe.length+1).join("-");return xe+this.upcomingInput()+` `+U+"^"},test_match:function(xe,U){var Fe,Pe,je;if(this.options.backtrack_lexer&&(je={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(je.yylloc.range=this.yylloc.range.slice(0))),Pe=xe[0].match(/(?:\r\n?|\n).*/g),Pe&&(this.yylineno+=Pe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Pe?Pe[Pe.length-1].length-Pe[Pe.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+xe[0].length},this.yytext+=xe[0],this.match+=xe[0],this.matches=xe,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(xe[0].length),this.matched+=xe[0],Fe=this.performAction.call(this,this.yy,this,U,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Fe)return Fe;if(this._backtrack){for(var Ie in je)this[Ie]=je[Ie];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var xe,U,Fe,Pe;this._more||(this.yytext="",this.match="");for(var je=this._currentRules(),Ie=0;IeU[0].length)){if(U=Fe,Pe=Ie,this.options.backtrack_lexer){if(xe=this.test_match(Fe,je[Ie]),xe!==!1)return xe;if(this._backtrack){U=!1;continue}else return!1}else if(!this.options.flex)break}return U?(xe=this.test_match(U,je[Pe]),xe!==!1?xe:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var U=this.next();return U||this.lex()},begin:function(U){this.conditionStack.push(U)},popState:function(){var U=this.conditionStack.length-1;return U>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(U){return U=this.conditionStack.length-1-Math.abs(U||0),U>=0?this.conditionStack[U]:"INITIAL"},pushState:function(U){this.begin(U)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(U,Fe,Pe,je){switch(Pe){case 0:return this.begin("open_directive"),"open_directive";case 1:return this.begin("acc_title"),28;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),30;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 40;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 38;case 21:this.popState();break;case 22:return 39;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 37;case 26:return 4;case 27:return 19;case 28:return 20;case 29:return 21;case 30:return 22;case 31:return 23;case 32:return 25;case 33:return 24;case 34:return 26;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return"date";case 43:return 27;case 44:return"accDescription";case 45:return 33;case 46:return 35;case 47:return 36;case 48:return":";case 49:return 6;case 50:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],inclusive:!0}}};return W}();de.lexer=X;function ge(){this.yy={}}return ge.prototype=de,de.Parser=ge,new ge}();Yme.parser=Yme;const _tn=Yme;var XUe={exports:{}};(function(i,s){(function(u,d){i.exports=d()})(Ag,function(){var u="day";return function(d,p,v){var b=function(_){return _.add(4-_.isoWeekday(),u)},y=p.prototype;y.isoWeekYear=function(){return b(this).year()},y.isoWeek=function(_){if(!this.$utils().u(_))return this.add(7*(_-this.isoWeek()),u);var A,P,R,F,j=b(this),K=(A=this.isoWeekYear(),P=this.$u,R=(P?v.utc:v)().year(A).startOf("year"),F=4-R.isoWeekday(),R.isoWeekday()>4&&(F+=7),R.add(F,u));return j.diff(K,"week")+1},y.isoWeekday=function(_){return this.$utils().u(_)?this.day()||7:this.day(this.day()%7?_:_-7)};var T=y.startOf;y.startOf=function(_,A){var P=this.$utils(),R=!!P.u(A)||A;return P.p(_)==="isoweek"?R?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):T.bind(this)(_,A)}}})})(XUe);var Atn=XUe.exports;const Ltn=hC(Atn);var QUe={exports:{}};(function(i,s){(function(u,d){i.exports=d()})(Ag,function(){var u={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},d=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,p=/\d\d/,v=/\d\d?/,b=/\d*[^-_:/,()\s\d]+/,y={},T=function(K){return(K=+K)+(K>68?1900:2e3)},_=function(K){return function(ee){this[K]=+ee}},A=[/[+-]\d\d:?(\d\d)?|Z/,function(K){(this.zone||(this.zone={})).offset=function(ee){if(!ee||ee==="Z")return 0;var ie=ee.match(/([+-]|\d\d)/g),oe=60*ie[1]+(+ie[2]||0);return oe===0?0:ie[0]==="+"?-oe:oe}(K)}],P=function(K){var ee=y[K];return ee&&(ee.indexOf?ee:ee.s.concat(ee.f))},R=function(K,ee){var ie,oe=y.meridiem;if(oe){for(var pe=1;pe<=24;pe+=1)if(K.indexOf(oe(pe,0,ee))>-1){ie=pe>12;break}}else ie=K===(ee?"pm":"PM");return ie},F={A:[b,function(K){this.afternoon=R(K,!1)}],a:[b,function(K){this.afternoon=R(K,!0)}],S:[/\d/,function(K){this.milliseconds=100*+K}],SS:[p,function(K){this.milliseconds=10*+K}],SSS:[/\d{3}/,function(K){this.milliseconds=+K}],s:[v,_("seconds")],ss:[v,_("seconds")],m:[v,_("minutes")],mm:[v,_("minutes")],H:[v,_("hours")],h:[v,_("hours")],HH:[v,_("hours")],hh:[v,_("hours")],D:[v,_("day")],DD:[p,_("day")],Do:[b,function(K){var ee=y.ordinal,ie=K.match(/\d+/);if(this.day=ie[0],ee)for(var oe=1;oe<=31;oe+=1)ee(oe).replace(/\[|\]/g,"")===K&&(this.day=oe)}],M:[v,_("month")],MM:[p,_("month")],MMM:[b,function(K){var ee=P("months"),ie=(P("monthsShort")||ee.map(function(oe){return oe.slice(0,3)})).indexOf(K)+1;if(ie<1)throw new Error;this.month=ie%12||ie}],MMMM:[b,function(K){var ee=P("months").indexOf(K)+1;if(ee<1)throw new Error;this.month=ee%12||ee}],Y:[/[+-]?\d+/,_("year")],YY:[p,function(K){this.year=T(K)}],YYYY:[/\d{4}/,_("year")],Z:A,ZZ:A};function j(K){var ee,ie;ee=K,ie=y&&y.formats;for(var oe=(K=ee.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(X,ge,W){var xe=W&&W.toUpperCase();return ge||ie[W]||u[W]||ie[xe].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(U,Fe,Pe){return Fe||Pe.slice(1)})})).match(d),pe=oe.length,be=0;be-1)return new Date((Ie==="X"?1e3:1)*je);var Ce=j(Ie)(je),ke=Ce.year,Ke=Ce.month,Ft=Ce.day,Ne=Ce.hours,gn=Ce.minutes,_t=Ce.seconds,Et=Ce.milliseconds,Gt=Ce.zone,ln=new Date,xt=Ft||(ke||Ke?1:ln.getDate()),Pt=ke||ln.getFullYear(),Qe=0;ke&&!Ke||(Qe=Ke>0?Ke-1:ln.getMonth());var Dt=Ne||0,kt=gn||0,On=_t||0,ht=Et||0;return Gt?new Date(Date.UTC(Pt,Qe,xt,Dt,kt,On,ht+60*Gt.offset*1e3)):Se?new Date(Date.UTC(Pt,Qe,xt,Dt,kt,On,ht)):new Date(Pt,Qe,xt,Dt,kt,On,ht)}catch{return new Date("")}}(ae,de,ne),this.init(),xe&&xe!==!0&&(this.$L=this.locale(xe).$L),W&&ae!=this.format(de)&&(this.$d=new Date("")),y={}}else if(de instanceof Array)for(var U=de.length,Fe=1;Fe<=U;Fe+=1){se[1]=de[Fe-1];var Pe=ie.apply(this,se);if(Pe.isValid()){this.$d=Pe.$d,this.$L=Pe.$L,this.init();break}Fe===U&&(this.$d=new Date(""))}else pe.call(this,be)}}})})(QUe);var Mtn=QUe.exports;const Dtn=hC(Mtn);var JUe={exports:{}};(function(i,s){(function(u,d){i.exports=d()})(Ag,function(){return function(u,d){var p=d.prototype,v=p.format;p.format=function(b){var y=this,T=this.$locale();if(!this.isValid())return v.bind(this)(b);var _=this.$utils(),A=(b||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(P){switch(P){case"Q":return Math.ceil((y.$M+1)/3);case"Do":return T.ordinal(y.$D);case"gggg":return y.weekYear();case"GGGG":return y.isoWeekYear();case"wo":return T.ordinal(y.week(),"W");case"w":case"ww":return _.s(y.week(),P==="w"?1:2,"0");case"W":case"WW":return _.s(y.isoWeek(),P==="W"?1:2,"0");case"k":case"kk":return _.s(String(y.$H===0?24:y.$H),P==="k"?1:2,"0");case"X":return Math.floor(y.$d.getTime()/1e3);case"x":return y.$d.getTime();case"z":return"["+y.offsetName()+"]";case"zzz":return"["+y.offsetName("long")+"]";default:return P}});return v.bind(this)(A)}}})})(JUe);var Itn=JUe.exports;const Otn=hC(Itn);Lg.extend(Ltn),Lg.extend(Dtn),Lg.extend(Otn);let i5="",Xme="",Qme,Jme="",FR=[],RR=[],Zme={},eve=[],uJ=[],GD="",tve="";const ZUe=["active","done","crit","milestone"];let nve=[],jR=!1,rve=!1,ive="sunday",sve=0;const Ntn=function(){eve=[],uJ=[],GD="",nve=[],lJ=0,ove=void 0,hJ=void 0,m1=[],i5="",Xme="",tve="",Qme=void 0,Jme="",FR=[],RR=[],jR=!1,rve=!1,sve=0,Zme={},Pg(),ive="sunday"},Ptn=function(i){Xme=i},Btn=function(){return Xme},Ftn=function(i){Qme=i},Rtn=function(){return Qme},jtn=function(i){Jme=i},$tn=function(){return Jme},ztn=function(i){i5=i},qtn=function(){jR=!0},Htn=function(){return jR},Vtn=function(){rve=!0},Utn=function(){return rve},Gtn=function(i){tve=i},Ktn=function(){return tve},Wtn=function(){return i5},Ytn=function(i){FR=i.toLowerCase().split(/[\s,]+/)},Xtn=function(){return FR},Qtn=function(i){RR=i.toLowerCase().split(/[\s,]+/)},Jtn=function(){return RR},Ztn=function(){return Zme},enn=function(i){GD=i,eve.push(i)},tnn=function(){return eve},nnn=function(){let i=sGe();const s=10;let u=0;for(;!i&&u=6&&u.includes("weekends")||u.includes(i.format("dddd").toLowerCase())?!0:u.includes(i.format(s.trim()))},rnn=function(i){ive=i},inn=function(){return ive},tGe=function(i,s,u,d){if(!u.length||i.manualEndTime)return;let p;i.startTime instanceof Date?p=Lg(i.startTime):p=Lg(i.startTime,s,!0),p=p.add(1,"d");let v;i.endTime instanceof Date?v=Lg(i.endTime):v=Lg(i.endTime,s,!0);const[b,y]=snn(p,v,s,u,d);i.endTime=b.toDate(),i.renderEndTime=y},snn=function(i,s,u,d,p){let v=!1,b=null;for(;i<=s;)v||(b=s.toDate()),v=eGe(i,u,d,p),v&&(s=s.add(1,"d")),i=i.add(1,"d");return[s,b]},ave=function(i,s,u){u=u.trim();const p=/^after\s+(?[\d\w- ]+)/.exec(u);if(p!==null){let b=null;for(const T of p.groups.ids.split(" ")){let _=QC(T);_!==void 0&&(!b||_.endTime>b.endTime)&&(b=_)}if(b)return b.endTime;const y=new Date;return y.setHours(0,0,0,0),y}let v=Lg(u,s.trim(),!0);if(v.isValid())return v.toDate();{Xe.debug("Invalid date:"+u),Xe.debug("With date format:"+s.trim());const b=new Date(u);if(b===void 0||isNaN(b.getTime())||b.getFullYear()<-1e4||b.getFullYear()>1e4)throw new Error("Invalid date:"+u);return b}},nGe=function(i){const s=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(i.trim());return s!==null?[Number.parseFloat(s[1]),s[2]]:[NaN,"ms"]},rGe=function(i,s,u,d=!1){u=u.trim();const v=/^until\s+(?[\d\w- ]+)/.exec(u);if(v!==null){let A=null;for(const R of v.groups.ids.split(" ")){let F=QC(R);F!==void 0&&(!A||F.startTime{window.open(u,"_self")}),Zme[d]=u)}),aGe(i,"clickable")},aGe=function(i,s){i.split(",").forEach(function(u){let d=QC(u);d!==void 0&&d.classes.push(s)})},hnn=function(i,s,u){if(qt().securityLevel!=="loose"||s===void 0)return;let d=[];if(typeof u=="string"){d=u.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let v=0;v{Ao.runFunc(s,...d)})},oGe=function(i,s){nve.push(function(){const u=document.querySelector(`[id="${i}"]`);u!==null&&u.addEventListener("click",function(){s()})},function(){const u=document.querySelector(`[id="${i}-text"]`);u!==null&&u.addEventListener("click",function(){s()})})},fnn={getConfig:()=>qt().gantt,clear:Ntn,setDateFormat:ztn,getDateFormat:Wtn,enableInclusiveEndDates:qtn,endDatesAreInclusive:Htn,enableTopAxis:Vtn,topAxisEnabled:Utn,setAxisFormat:Ptn,getAxisFormat:Btn,setTickInterval:Ftn,getTickInterval:Rtn,setTodayMarker:jtn,getTodayMarker:$tn,setAccTitle:Bg,getAccTitle:Cp,setDiagramTitle:cm,getDiagramTitle:Ap,setDisplayMode:Gtn,getDisplayMode:Ktn,setAccDescription:Sp,getAccDescription:_p,addSection:enn,getSections:tnn,getTasks:nnn,addTask:cnn,findTaskById:QC,addTaskOrg:unn,setIncludes:Ytn,getIncludes:Xtn,setExcludes:Qtn,getExcludes:Jtn,setClickEvent:function(i,s,u){i.split(",").forEach(function(d){hnn(d,s,u)}),aGe(i,"clickable")},setLink:lnn,getLinks:Ztn,bindFunctions:function(i){nve.forEach(function(s){s(i)})},parseDuration:nGe,isInvalidDate:eGe,setWeekday:rnn,getWeekday:inn};function cGe(i,s,u){let d=!0;for(;d;)d=!1,u.forEach(function(p){const v="^\\s*"+p+"\\s*$",b=new RegExp(v);i[0].match(b)&&(s[p]=!0,i.shift(1),d=!0)})}const dnn=function(){Xe.debug("Something is calling, setConf, remove the call")},uGe={monday:DF,tuesday:xFe,wednesday:kFe,thursday:yC,friday:EFe,saturday:TFe,sunday:MF},gnn=(i,s)=>{let u=[...i].map(()=>-1/0),d=[...i].sort((v,b)=>v.startTime-b.startTime||v.order-b.order),p=0;for(const v of d)for(let b=0;b=u[b]){u[b]=v.endTime,v.order=b+s,b>p&&(p=b);break}return p};let V7;const pnn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:_tn,db:fnn,renderer:{setConf:dnn,draw:function(i,s,u,d){const p=qt().gantt,v=qt().securityLevel;let b;v==="sandbox"&&(b=Ir("#i"+s));const y=Ir(v==="sandbox"?b.nodes()[0].contentDocument.body:"body"),T=v==="sandbox"?b.nodes()[0].contentDocument:document,_=T.getElementById(s);V7=_.parentElement.offsetWidth,V7===void 0&&(V7=1200),p.useWidth!==void 0&&(V7=p.useWidth);const A=d.db.getTasks();let P=[];for(const de of A)P.push(de.type);P=se(P);const R={};let F=2*p.topPadding;if(d.db.getDisplayMode()==="compact"||p.displayMode==="compact"){const de={};for(const ge of A)de[ge.section]===void 0?de[ge.section]=[ge]:de[ge.section].push(ge);let X=0;for(const ge of Object.keys(de)){const W=gnn(de[ge],X)+1;X+=W,F+=W*(p.barHeight+p.barGap),R[ge]=W}}else{F+=A.length*(p.barHeight+p.barGap);for(const de of P)R[de]=A.filter(X=>X.type===de).length}_.setAttribute("viewBox","0 0 "+V7+" "+F);const j=y.select(`[id="${s}"]`),K=fNt().domain([WAt(A,function(de){return de.startTime}),KAt(A,function(de){return de.endTime})]).rangeRound([0,V7-p.leftPadding-p.rightPadding]);function ee(de,X){const ge=de.startTime,W=X.startTime;let xe=0;return ge>W?xe=1:geke.order))].map(ke=>de.find(Ke=>Ke.order===ke));j.append("g").selectAll("rect").data(je).enter().append("rect").attr("x",0).attr("y",function(ke,Ke){return Ke=ke.order,Ke*X+ge-2}).attr("width",function(){return Fe-p.rightPadding/2}).attr("height",X).attr("class",function(ke){for(const[Ke,Ft]of P.entries())if(ke.type===Ft)return"section section"+Ke%p.numberSectionStyles;return"section section0"});const Ie=j.append("g").selectAll("rect").data(de).enter(),Se=d.db.getLinks();if(Ie.append("rect").attr("id",function(ke){return ke.id}).attr("rx",3).attr("ry",3).attr("x",function(ke){return ke.milestone?K(ke.startTime)+W+.5*(K(ke.endTime)-K(ke.startTime))-.5*xe:K(ke.startTime)+W}).attr("y",function(ke,Ke){return Ke=ke.order,Ke*X+ge}).attr("width",function(ke){return ke.milestone?xe:K(ke.renderEndTime||ke.endTime)-K(ke.startTime)}).attr("height",xe).attr("transform-origin",function(ke,Ke){return Ke=ke.order,(K(ke.startTime)+W+.5*(K(ke.endTime)-K(ke.startTime))).toString()+"px "+(Ke*X+ge+.5*xe).toString()+"px"}).attr("class",function(ke){const Ke="task";let Ft="";ke.classes.length>0&&(Ft=ke.classes.join(" "));let Ne=0;for(const[_t,Et]of P.entries())ke.type===Et&&(Ne=_t%p.numberSectionStyles);let gn="";return ke.active?ke.crit?gn+=" activeCrit":gn=" active":ke.done?ke.crit?gn=" doneCrit":gn=" done":ke.crit&&(gn+=" crit"),gn.length===0&&(gn=" task"),ke.milestone&&(gn=" milestone "+gn),gn+=Ne,gn+=" "+Ft,Ke+gn}),Ie.append("text").attr("id",function(ke){return ke.id+"-text"}).text(function(ke){return ke.task}).attr("font-size",p.fontSize).attr("x",function(ke){let Ke=K(ke.startTime),Ft=K(ke.renderEndTime||ke.endTime);ke.milestone&&(Ke+=.5*(K(ke.endTime)-K(ke.startTime))-.5*xe),ke.milestone&&(Ft=Ke+xe);const Ne=this.getBBox().width;return Ne>Ft-Ke?Ft+Ne+1.5*p.leftPadding>Fe?Ke+W-5:Ft+W+5:(Ft-Ke)/2+Ke+W}).attr("y",function(ke,Ke){return Ke=ke.order,Ke*X+p.barHeight/2+(p.fontSize/2-2)+ge}).attr("text-height",xe).attr("class",function(ke){const Ke=K(ke.startTime);let Ft=K(ke.endTime);ke.milestone&&(Ft=Ke+xe);const Ne=this.getBBox().width;let gn="";ke.classes.length>0&&(gn=ke.classes.join(" "));let _t=0;for(const[Gt,ln]of P.entries())ke.type===ln&&(_t=Gt%p.numberSectionStyles);let Et="";return ke.active&&(ke.crit?Et="activeCritText"+_t:Et="activeText"+_t),ke.done?ke.crit?Et=Et+" doneCritText"+_t:Et=Et+" doneText"+_t:ke.crit&&(Et=Et+" critText"+_t),ke.milestone&&(Et+=" milestoneText"),Ne>Ft-Ke?Ft+Ne+1.5*p.leftPadding>Fe?gn+" taskTextOutsideLeft taskTextOutside"+_t+" "+Et:gn+" taskTextOutsideRight taskTextOutside"+_t+" "+Et+" width-"+Ne:gn+" taskText taskText"+_t+" "+Et+" width-"+Ne}),qt().securityLevel==="sandbox"){let ke;ke=Ir("#i"+s);const Ke=ke.nodes()[0].contentDocument;Ie.filter(function(Ft){return Se[Ft.id]!==void 0}).each(function(Ft){var Ne=Ke.querySelector("#"+Ft.id),gn=Ke.querySelector("#"+Ft.id+"-text");const _t=Ne.parentNode;var Et=Ke.createElement("a");Et.setAttribute("xlink:href",Se[Ft.id]),Et.setAttribute("target","_top"),_t.appendChild(Et),Et.appendChild(Ne),Et.appendChild(gn)})}}function pe(de,X,ge,W,xe,U,Fe,Pe){if(Fe.length===0&&Pe.length===0)return;let je,Ie;for(const{startTime:Ne,endTime:gn}of U)(je===void 0||NeIe)&&(Ie=gn);if(!je||!Ie)return;if(Lg(Ie).diff(Lg(je),"year")>5){Xe.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}const Se=d.db.getDateFormat(),Ce=[];let ke=null,Ke=Lg(je);for(;Ke.valueOf()<=Ie;)d.db.isInvalidDate(Ke,Se,Fe,Pe)?ke?ke.end=Ke:ke={start:Ke,end:Ke}:ke&&(Ce.push(ke),ke=null),Ke=Ke.add(1,"d");j.append("g").selectAll("rect").data(Ce).enter().append("rect").attr("id",function(Ne){return"exclude-"+Ne.start.format("YYYY-MM-DD")}).attr("x",function(Ne){return K(Ne.start)+ge}).attr("y",p.gridLineStartPadding).attr("width",function(Ne){const gn=Ne.end.add(1,"day");return K(gn)-K(Ne.start)}).attr("height",xe-X-p.gridLineStartPadding).attr("transform-origin",function(Ne,gn){return(K(Ne.start)+ge+.5*(K(Ne.end)-K(Ne.start))).toString()+"px "+(gn*de+.5*xe).toString()+"px"}).attr("class","exclude-range")}function be(de,X,ge,W){let xe=rLt(K).tickSize(-W+X+p.gridLineStartPadding).tickFormat(sX(d.db.getAxisFormat()||p.axisFormat||"%Y-%m-%d"));const Fe=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(d.db.getTickInterval()||p.tickInterval);if(Fe!==null){const Pe=Fe[1],je=Fe[2],Ie=d.db.getWeekday()||p.weekday;switch(je){case"millisecond":xe.ticks(aD.every(Pe));break;case"second":xe.ticks(b9.every(Pe));break;case"minute":xe.ticks(AF.every(Pe));break;case"hour":xe.ticks(LF.every(Pe));break;case"day":xe.ticks(vC.every(Pe));break;case"week":xe.ticks(uGe[Ie].every(Pe));break;case"month":xe.ticks(IF.every(Pe));break}}if(j.append("g").attr("class","grid").attr("transform","translate("+de+", "+(W-50)+")").call(xe).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),d.db.topAxisEnabled()||p.topAxis){let Pe=nLt(K).tickSize(-W+X+p.gridLineStartPadding).tickFormat(sX(d.db.getAxisFormat()||p.axisFormat||"%Y-%m-%d"));if(Fe!==null){const je=Fe[1],Ie=Fe[2],Se=d.db.getWeekday()||p.weekday;switch(Ie){case"millisecond":Pe.ticks(aD.every(je));break;case"second":Pe.ticks(b9.every(je));break;case"minute":Pe.ticks(AF.every(je));break;case"hour":Pe.ticks(LF.every(je));break;case"day":Pe.ticks(vC.every(je));break;case"week":Pe.ticks(uGe[Se].every(je));break;case"month":Pe.ticks(IF.every(je));break}}j.append("g").attr("class","grid").attr("transform","translate("+de+", "+X+")").call(Pe).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}function ae(de,X){let ge=0;const W=Object.keys(R).map(xe=>[xe,R[xe]]);j.append("g").selectAll("text").data(W).enter().append(function(xe){const U=xe[0].split(li.lineBreakRegex),Fe=-(U.length-1)/2,Pe=T.createElementNS("http://www.w3.org/2000/svg","text");Pe.setAttribute("dy",Fe+"em");for(const[je,Ie]of U.entries()){const Se=T.createElementNS("http://www.w3.org/2000/svg","tspan");Se.setAttribute("alignment-baseline","central"),Se.setAttribute("x","10"),je>0&&Se.setAttribute("dy","1em"),Se.textContent=Ie,Pe.appendChild(Se)}return Pe}).attr("x",10).attr("y",function(xe,U){if(U>0)for(let Fe=0;Fe` +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var U=this.next();return U||this.lex()},begin:function(U){this.conditionStack.push(U)},popState:function(){var U=this.conditionStack.length-1;return U>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(U){return U=this.conditionStack.length-1-Math.abs(U||0),U>=0?this.conditionStack[U]:"INITIAL"},pushState:function(U){this.begin(U)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(U,Fe,Pe,je){switch(Pe){case 0:return this.begin("open_directive"),"open_directive";case 1:return this.begin("acc_title"),28;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),30;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 40;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 38;case 21:this.popState();break;case 22:return 39;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 37;case 26:return 4;case 27:return 19;case 28:return 20;case 29:return 21;case 30:return 22;case 31:return 23;case 32:return 25;case 33:return 24;case 34:return 26;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return"date";case 43:return 27;case 44:return"accDescription";case 45:return 33;case 46:return 35;case 47:return 36;case 48:return":";case 49:return 6;case 50:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],inclusive:!0}}};return W}();de.lexer=X;function ge(){this.yy={}}return ge.prototype=de,de.Parser=ge,new ge}();Yme.parser=Yme;const _tn=Yme;var XUe={exports:{}};(function(i,s){(function(u,d){i.exports=d()})(Ag,function(){var u="day";return function(d,p,v){var b=function(_){return _.add(4-_.isoWeekday(),u)},y=p.prototype;y.isoWeekYear=function(){return b(this).year()},y.isoWeek=function(_){if(!this.$utils().u(_))return this.add(7*(_-this.isoWeek()),u);var A,P,R,F,j=b(this),K=(A=this.isoWeekYear(),P=this.$u,R=(P?v.utc:v)().year(A).startOf("year"),F=4-R.isoWeekday(),R.isoWeekday()>4&&(F+=7),R.add(F,u));return j.diff(K,"week")+1},y.isoWeekday=function(_){return this.$utils().u(_)?this.day()||7:this.day(this.day()%7?_:_-7)};var T=y.startOf;y.startOf=function(_,A){var P=this.$utils(),R=!!P.u(A)||A;return P.p(_)==="isoweek"?R?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):T.bind(this)(_,A)}}})})(XUe);var Atn=XUe.exports;const Ltn=hC(Atn);var QUe={exports:{}};(function(i,s){(function(u,d){i.exports=d()})(Ag,function(){var u={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},d=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,p=/\d\d/,v=/\d\d?/,b=/\d*[^-_:/,()\s\d]+/,y={},T=function(K){return(K=+K)+(K>68?1900:2e3)},_=function(K){return function(ee){this[K]=+ee}},A=[/[+-]\d\d:?(\d\d)?|Z/,function(K){(this.zone||(this.zone={})).offset=function(ee){if(!ee||ee==="Z")return 0;var ie=ee.match(/([+-]|\d\d)/g),oe=60*ie[1]+(+ie[2]||0);return oe===0?0:ie[0]==="+"?-oe:oe}(K)}],P=function(K){var ee=y[K];return ee&&(ee.indexOf?ee:ee.s.concat(ee.f))},R=function(K,ee){var ie,oe=y.meridiem;if(oe){for(var pe=1;pe<=24;pe+=1)if(K.indexOf(oe(pe,0,ee))>-1){ie=pe>12;break}}else ie=K===(ee?"pm":"PM");return ie},F={A:[b,function(K){this.afternoon=R(K,!1)}],a:[b,function(K){this.afternoon=R(K,!0)}],S:[/\d/,function(K){this.milliseconds=100*+K}],SS:[p,function(K){this.milliseconds=10*+K}],SSS:[/\d{3}/,function(K){this.milliseconds=+K}],s:[v,_("seconds")],ss:[v,_("seconds")],m:[v,_("minutes")],mm:[v,_("minutes")],H:[v,_("hours")],h:[v,_("hours")],HH:[v,_("hours")],hh:[v,_("hours")],D:[v,_("day")],DD:[p,_("day")],Do:[b,function(K){var ee=y.ordinal,ie=K.match(/\d+/);if(this.day=ie[0],ee)for(var oe=1;oe<=31;oe+=1)ee(oe).replace(/\[|\]/g,"")===K&&(this.day=oe)}],M:[v,_("month")],MM:[p,_("month")],MMM:[b,function(K){var ee=P("months"),ie=(P("monthsShort")||ee.map(function(oe){return oe.slice(0,3)})).indexOf(K)+1;if(ie<1)throw new Error;this.month=ie%12||ie}],MMMM:[b,function(K){var ee=P("months").indexOf(K)+1;if(ee<1)throw new Error;this.month=ee%12||ee}],Y:[/[+-]?\d+/,_("year")],YY:[p,function(K){this.year=T(K)}],YYYY:[/\d{4}/,_("year")],Z:A,ZZ:A};function j(K){var ee,ie;ee=K,ie=y&&y.formats;for(var oe=(K=ee.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(X,ge,W){var xe=W&&W.toUpperCase();return ge||ie[W]||u[W]||ie[xe].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(U,Fe,Pe){return Fe||Pe.slice(1)})})).match(d),pe=oe.length,be=0;be-1)return new Date((Ie==="X"?1e3:1)*je);var Ce=j(Ie)(je),ke=Ce.year,Ke=Ce.month,Ft=Ce.day,Ne=Ce.hours,gn=Ce.minutes,_t=Ce.seconds,Et=Ce.milliseconds,Gt=Ce.zone,ln=new Date,xt=Ft||(ke||Ke?1:ln.getDate()),Pt=ke||ln.getFullYear(),Qe=0;ke&&!Ke||(Qe=Ke>0?Ke-1:ln.getMonth());var Dt=Ne||0,kt=gn||0,On=_t||0,ht=Et||0;return Gt?new Date(Date.UTC(Pt,Qe,xt,Dt,kt,On,ht+60*Gt.offset*1e3)):Se?new Date(Date.UTC(Pt,Qe,xt,Dt,kt,On,ht)):new Date(Pt,Qe,xt,Dt,kt,On,ht)}catch{return new Date("")}}(ae,de,ne),this.init(),xe&&xe!==!0&&(this.$L=this.locale(xe).$L),W&&ae!=this.format(de)&&(this.$d=new Date("")),y={}}else if(de instanceof Array)for(var U=de.length,Fe=1;Fe<=U;Fe+=1){se[1]=de[Fe-1];var Pe=ie.apply(this,se);if(Pe.isValid()){this.$d=Pe.$d,this.$L=Pe.$L,this.init();break}Fe===U&&(this.$d=new Date(""))}else pe.call(this,be)}}})})(QUe);var Mtn=QUe.exports;const Dtn=hC(Mtn);var JUe={exports:{}};(function(i,s){(function(u,d){i.exports=d()})(Ag,function(){return function(u,d){var p=d.prototype,v=p.format;p.format=function(b){var y=this,T=this.$locale();if(!this.isValid())return v.bind(this)(b);var _=this.$utils(),A=(b||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(P){switch(P){case"Q":return Math.ceil((y.$M+1)/3);case"Do":return T.ordinal(y.$D);case"gggg":return y.weekYear();case"GGGG":return y.isoWeekYear();case"wo":return T.ordinal(y.week(),"W");case"w":case"ww":return _.s(y.week(),P==="w"?1:2,"0");case"W":case"WW":return _.s(y.isoWeek(),P==="W"?1:2,"0");case"k":case"kk":return _.s(String(y.$H===0?24:y.$H),P==="k"?1:2,"0");case"X":return Math.floor(y.$d.getTime()/1e3);case"x":return y.$d.getTime();case"z":return"["+y.offsetName()+"]";case"zzz":return"["+y.offsetName("long")+"]";default:return P}});return v.bind(this)(A)}}})})(JUe);var Itn=JUe.exports;const Otn=hC(Itn);Lg.extend(Ltn),Lg.extend(Dtn),Lg.extend(Otn);let i5="",Xme="",Qme,Jme="",FR=[],RR=[],Zme={},eve=[],uJ=[],GD="",tve="";const ZUe=["active","done","crit","milestone"];let nve=[],jR=!1,rve=!1,ive="sunday",sve=0;const Ntn=function(){eve=[],uJ=[],GD="",nve=[],lJ=0,ove=void 0,hJ=void 0,m1=[],i5="",Xme="",tve="",Qme=void 0,Jme="",FR=[],RR=[],jR=!1,rve=!1,sve=0,Zme={},Pg(),ive="sunday"},Ptn=function(i){Xme=i},Btn=function(){return Xme},Ftn=function(i){Qme=i},Rtn=function(){return Qme},jtn=function(i){Jme=i},$tn=function(){return Jme},ztn=function(i){i5=i},qtn=function(){jR=!0},Htn=function(){return jR},Vtn=function(){rve=!0},Utn=function(){return rve},Gtn=function(i){tve=i},Ktn=function(){return tve},Wtn=function(){return i5},Ytn=function(i){FR=i.toLowerCase().split(/[\s,]+/)},Xtn=function(){return FR},Qtn=function(i){RR=i.toLowerCase().split(/[\s,]+/)},Jtn=function(){return RR},Ztn=function(){return Zme},enn=function(i){GD=i,eve.push(i)},tnn=function(){return eve},nnn=function(){let i=sGe();const s=10;let u=0;for(;!i&&u=6&&u.includes("weekends")||u.includes(i.format("dddd").toLowerCase())?!0:u.includes(i.format(s.trim()))},rnn=function(i){ive=i},inn=function(){return ive},tGe=function(i,s,u,d){if(!u.length||i.manualEndTime)return;let p;i.startTime instanceof Date?p=Lg(i.startTime):p=Lg(i.startTime,s,!0),p=p.add(1,"d");let v;i.endTime instanceof Date?v=Lg(i.endTime):v=Lg(i.endTime,s,!0);const[b,y]=snn(p,v,s,u,d);i.endTime=b.toDate(),i.renderEndTime=y},snn=function(i,s,u,d,p){let v=!1,b=null;for(;i<=s;)v||(b=s.toDate()),v=eGe(i,u,d,p),v&&(s=s.add(1,"d")),i=i.add(1,"d");return[s,b]},ave=function(i,s,u){u=u.trim();const p=/^after\s+(?[\d\w- ]+)/.exec(u);if(p!==null){let b=null;for(const T of p.groups.ids.split(" ")){let _=QC(T);_!==void 0&&(!b||_.endTime>b.endTime)&&(b=_)}if(b)return b.endTime;const y=new Date;return y.setHours(0,0,0,0),y}let v=Lg(u,s.trim(),!0);if(v.isValid())return v.toDate();{Xe.debug("Invalid date:"+u),Xe.debug("With date format:"+s.trim());const b=new Date(u);if(b===void 0||isNaN(b.getTime())||b.getFullYear()<-1e4||b.getFullYear()>1e4)throw new Error("Invalid date:"+u);return b}},nGe=function(i){const s=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(i.trim());return s!==null?[Number.parseFloat(s[1]),s[2]]:[NaN,"ms"]},rGe=function(i,s,u,d=!1){u=u.trim();const v=/^until\s+(?[\d\w- ]+)/.exec(u);if(v!==null){let A=null;for(const R of v.groups.ids.split(" ")){let F=QC(R);F!==void 0&&(!A||F.startTime{window.open(u,"_self")}),Zme[d]=u)}),aGe(i,"clickable")},aGe=function(i,s){i.split(",").forEach(function(u){let d=QC(u);d!==void 0&&d.classes.push(s)})},hnn=function(i,s,u){if(qt().securityLevel!=="loose"||s===void 0)return;let d=[];if(typeof u=="string"){d=u.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let v=0;v{Ao.runFunc(s,...d)})},oGe=function(i,s){nve.push(function(){const u=document.querySelector(`[id="${i}"]`);u!==null&&u.addEventListener("click",function(){s()})},function(){const u=document.querySelector(`[id="${i}-text"]`);u!==null&&u.addEventListener("click",function(){s()})})},fnn={getConfig:()=>qt().gantt,clear:Ntn,setDateFormat:ztn,getDateFormat:Wtn,enableInclusiveEndDates:qtn,endDatesAreInclusive:Htn,enableTopAxis:Vtn,topAxisEnabled:Utn,setAxisFormat:Ptn,getAxisFormat:Btn,setTickInterval:Ftn,getTickInterval:Rtn,setTodayMarker:jtn,getTodayMarker:$tn,setAccTitle:Bg,getAccTitle:Cp,setDiagramTitle:cm,getDiagramTitle:Ap,setDisplayMode:Gtn,getDisplayMode:Ktn,setAccDescription:Sp,getAccDescription:_p,addSection:enn,getSections:tnn,getTasks:nnn,addTask:cnn,findTaskById:QC,addTaskOrg:unn,setIncludes:Ytn,getIncludes:Xtn,setExcludes:Qtn,getExcludes:Jtn,setClickEvent:function(i,s,u){i.split(",").forEach(function(d){hnn(d,s,u)}),aGe(i,"clickable")},setLink:lnn,getLinks:Ztn,bindFunctions:function(i){nve.forEach(function(s){s(i)})},parseDuration:nGe,isInvalidDate:eGe,setWeekday:rnn,getWeekday:inn};function cGe(i,s,u){let d=!0;for(;d;)d=!1,u.forEach(function(p){const v="^\\s*"+p+"\\s*$",b=new RegExp(v);i[0].match(b)&&(s[p]=!0,i.shift(1),d=!0)})}const dnn=function(){Xe.debug("Something is calling, setConf, remove the call")},uGe={monday:DF,tuesday:xFe,wednesday:kFe,thursday:yC,friday:EFe,saturday:TFe,sunday:MF},gnn=(i,s)=>{let u=[...i].map(()=>-1/0),d=[...i].sort((v,b)=>v.startTime-b.startTime||v.order-b.order),p=0;for(const v of d)for(let b=0;b=u[b]){u[b]=v.endTime,v.order=b+s,b>p&&(p=b);break}return p};let V7;const pnn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:_tn,db:fnn,renderer:{setConf:dnn,draw:function(i,s,u,d){const p=qt().gantt,v=qt().securityLevel;let b;v==="sandbox"&&(b=Ir("#i"+s));const y=Ir(v==="sandbox"?b.nodes()[0].contentDocument.body:"body"),T=v==="sandbox"?b.nodes()[0].contentDocument:document,_=T.getElementById(s);V7=_.parentElement.offsetWidth,V7===void 0&&(V7=1200),p.useWidth!==void 0&&(V7=p.useWidth);const A=d.db.getTasks();let P=[];for(const de of A)P.push(de.type);P=se(P);const R={};let F=2*p.topPadding;if(d.db.getDisplayMode()==="compact"||p.displayMode==="compact"){const de={};for(const ge of A)de[ge.section]===void 0?de[ge.section]=[ge]:de[ge.section].push(ge);let X=0;for(const ge of Object.keys(de)){const W=gnn(de[ge],X)+1;X+=W,F+=W*(p.barHeight+p.barGap),R[ge]=W}}else{F+=A.length*(p.barHeight+p.barGap);for(const de of P)R[de]=A.filter(X=>X.type===de).length}_.setAttribute("viewBox","0 0 "+V7+" "+F);const j=y.select(`[id="${s}"]`),K=fNt().domain([WAt(A,function(de){return de.startTime}),KAt(A,function(de){return de.endTime})]).rangeRound([0,V7-p.leftPadding-p.rightPadding]);function ee(de,X){const ge=de.startTime,W=X.startTime;let xe=0;return ge>W?xe=1:geke.order))].map(ke=>de.find(Ke=>Ke.order===ke));j.append("g").selectAll("rect").data(je).enter().append("rect").attr("x",0).attr("y",function(ke,Ke){return Ke=ke.order,Ke*X+ge-2}).attr("width",function(){return Fe-p.rightPadding/2}).attr("height",X).attr("class",function(ke){for(const[Ke,Ft]of P.entries())if(ke.type===Ft)return"section section"+Ke%p.numberSectionStyles;return"section section0"});const Ie=j.append("g").selectAll("rect").data(de).enter(),Se=d.db.getLinks();if(Ie.append("rect").attr("id",function(ke){return ke.id}).attr("rx",3).attr("ry",3).attr("x",function(ke){return ke.milestone?K(ke.startTime)+W+.5*(K(ke.endTime)-K(ke.startTime))-.5*xe:K(ke.startTime)+W}).attr("y",function(ke,Ke){return Ke=ke.order,Ke*X+ge}).attr("width",function(ke){return ke.milestone?xe:K(ke.renderEndTime||ke.endTime)-K(ke.startTime)}).attr("height",xe).attr("transform-origin",function(ke,Ke){return Ke=ke.order,(K(ke.startTime)+W+.5*(K(ke.endTime)-K(ke.startTime))).toString()+"px "+(Ke*X+ge+.5*xe).toString()+"px"}).attr("class",function(ke){const Ke="task";let Ft="";ke.classes.length>0&&(Ft=ke.classes.join(" "));let Ne=0;for(const[_t,Et]of P.entries())ke.type===Et&&(Ne=_t%p.numberSectionStyles);let gn="";return ke.active?ke.crit?gn+=" activeCrit":gn=" active":ke.done?ke.crit?gn=" doneCrit":gn=" done":ke.crit&&(gn+=" crit"),gn.length===0&&(gn=" task"),ke.milestone&&(gn=" milestone "+gn),gn+=Ne,gn+=" "+Ft,Ke+gn}),Ie.append("text").attr("id",function(ke){return ke.id+"-text"}).text(function(ke){return ke.task}).attr("font-size",p.fontSize).attr("x",function(ke){let Ke=K(ke.startTime),Ft=K(ke.renderEndTime||ke.endTime);ke.milestone&&(Ke+=.5*(K(ke.endTime)-K(ke.startTime))-.5*xe),ke.milestone&&(Ft=Ke+xe);const Ne=this.getBBox().width;return Ne>Ft-Ke?Ft+Ne+1.5*p.leftPadding>Fe?Ke+W-5:Ft+W+5:(Ft-Ke)/2+Ke+W}).attr("y",function(ke,Ke){return Ke=ke.order,Ke*X+p.barHeight/2+(p.fontSize/2-2)+ge}).attr("text-height",xe).attr("class",function(ke){const Ke=K(ke.startTime);let Ft=K(ke.endTime);ke.milestone&&(Ft=Ke+xe);const Ne=this.getBBox().width;let gn="";ke.classes.length>0&&(gn=ke.classes.join(" "));let _t=0;for(const[Gt,ln]of P.entries())ke.type===ln&&(_t=Gt%p.numberSectionStyles);let Et="";return ke.active&&(ke.crit?Et="activeCritText"+_t:Et="activeText"+_t),ke.done?ke.crit?Et=Et+" doneCritText"+_t:Et=Et+" doneText"+_t:ke.crit&&(Et=Et+" critText"+_t),ke.milestone&&(Et+=" milestoneText"),Ne>Ft-Ke?Ft+Ne+1.5*p.leftPadding>Fe?gn+" taskTextOutsideLeft taskTextOutside"+_t+" "+Et:gn+" taskTextOutsideRight taskTextOutside"+_t+" "+Et+" width-"+Ne:gn+" taskText taskText"+_t+" "+Et+" width-"+Ne}),qt().securityLevel==="sandbox"){let ke;ke=Ir("#i"+s);const Ke=ke.nodes()[0].contentDocument;Ie.filter(function(Ft){return Se[Ft.id]!==void 0}).each(function(Ft){var Ne=Ke.querySelector("#"+Ft.id),gn=Ke.querySelector("#"+Ft.id+"-text");const _t=Ne.parentNode;var Et=Ke.createElement("a");Et.setAttribute("xlink:href",Se[Ft.id]),Et.setAttribute("target","_top"),_t.appendChild(Et),Et.appendChild(Ne),Et.appendChild(gn)})}}function pe(de,X,ge,W,xe,U,Fe,Pe){if(Fe.length===0&&Pe.length===0)return;let je,Ie;for(const{startTime:Ne,endTime:gn}of U)(je===void 0||NeIe)&&(Ie=gn);if(!je||!Ie)return;if(Lg(Ie).diff(Lg(je),"year")>5){Xe.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}const Se=d.db.getDateFormat(),Ce=[];let ke=null,Ke=Lg(je);for(;Ke.valueOf()<=Ie;)d.db.isInvalidDate(Ke,Se,Fe,Pe)?ke?ke.end=Ke:ke={start:Ke,end:Ke}:ke&&(Ce.push(ke),ke=null),Ke=Ke.add(1,"d");j.append("g").selectAll("rect").data(Ce).enter().append("rect").attr("id",function(Ne){return"exclude-"+Ne.start.format("YYYY-MM-DD")}).attr("x",function(Ne){return K(Ne.start)+ge}).attr("y",p.gridLineStartPadding).attr("width",function(Ne){const gn=Ne.end.add(1,"day");return K(gn)-K(Ne.start)}).attr("height",xe-X-p.gridLineStartPadding).attr("transform-origin",function(Ne,gn){return(K(Ne.start)+ge+.5*(K(Ne.end)-K(Ne.start))).toString()+"px "+(gn*de+.5*xe).toString()+"px"}).attr("class","exclude-range")}function be(de,X,ge,W){let xe=rLt(K).tickSize(-W+X+p.gridLineStartPadding).tickFormat(sX(d.db.getAxisFormat()||p.axisFormat||"%Y-%m-%d"));const Fe=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(d.db.getTickInterval()||p.tickInterval);if(Fe!==null){const Pe=Fe[1],je=Fe[2],Ie=d.db.getWeekday()||p.weekday;switch(je){case"millisecond":xe.ticks(aD.every(Pe));break;case"second":xe.ticks(b9.every(Pe));break;case"minute":xe.ticks(AF.every(Pe));break;case"hour":xe.ticks(LF.every(Pe));break;case"day":xe.ticks(vC.every(Pe));break;case"week":xe.ticks(uGe[Ie].every(Pe));break;case"month":xe.ticks(IF.every(Pe));break}}if(j.append("g").attr("class","grid").attr("transform","translate("+de+", "+(W-50)+")").call(xe).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),d.db.topAxisEnabled()||p.topAxis){let Pe=nLt(K).tickSize(-W+X+p.gridLineStartPadding).tickFormat(sX(d.db.getAxisFormat()||p.axisFormat||"%Y-%m-%d"));if(Fe!==null){const je=Fe[1],Ie=Fe[2],Se=d.db.getWeekday()||p.weekday;switch(Ie){case"millisecond":Pe.ticks(aD.every(je));break;case"second":Pe.ticks(b9.every(je));break;case"minute":Pe.ticks(AF.every(je));break;case"hour":Pe.ticks(LF.every(je));break;case"day":Pe.ticks(vC.every(je));break;case"week":Pe.ticks(uGe[Se].every(je));break;case"month":Pe.ticks(IF.every(je));break}}j.append("g").attr("class","grid").attr("transform","translate("+de+", "+X+")").call(Pe).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}function ae(de,X){let ge=0;const W=Object.keys(R).map(xe=>[xe,R[xe]]);j.append("g").selectAll("text").data(W).enter().append(function(xe){const U=xe[0].split(ci.lineBreakRegex),Fe=-(U.length-1)/2,Pe=T.createElementNS("http://www.w3.org/2000/svg","text");Pe.setAttribute("dy",Fe+"em");for(const[je,Ie]of U.entries()){const Se=T.createElementNS("http://www.w3.org/2000/svg","tspan");Se.setAttribute("alignment-baseline","central"),Se.setAttribute("x","10"),je>0&&Se.setAttribute("dy","1em"),Se.textContent=Ie,Pe.appendChild(Se)}return Pe}).attr("x",10).attr("y",function(xe,U){if(U>0)for(let Fe=0;Fe` .mermaid-main-font { font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); } @@ -970,7 +970,7 @@ Expecting `+jo.join(", ")+", got '"+(this.terminals_[qn]||qn)+"'":$o="Parse erro `,wve={CONTAINS:"contains",ARROW:"arrow"},SGe={ReqMarkers:wve,insertLineEndings:(i,s)=>{let u=i.append("defs").append("marker").attr("id",wve.CONTAINS+"_line_ending").attr("refX",0).attr("refY",s.line_height/2).attr("markerWidth",s.line_height).attr("markerHeight",s.line_height).attr("orient","auto").append("g");u.append("circle").attr("cx",s.line_height/2).attr("cy",s.line_height/2).attr("r",s.line_height/2).attr("fill","none"),u.append("line").attr("x1",0).attr("x2",s.line_height).attr("y1",s.line_height/2).attr("y2",s.line_height/2).attr("stroke-width",1),u.append("line").attr("y1",0).attr("y2",s.line_height).attr("x1",s.line_height/2).attr("x2",s.line_height/2).attr("stroke-width",1),i.append("defs").append("marker").attr("id",wve.ARROW+"_line_ending").attr("refX",s.line_height).attr("refY",.5*s.line_height).attr("markerWidth",s.line_height).attr("markerHeight",s.line_height).attr("orient","auto").append("path").attr("d",`M0,0 L${s.line_height},${s.line_height/2} M${s.line_height},${s.line_height/2} - L0,${s.line_height}`).attr("stroke-width",1)}};let Tf={},_Ge=0;const AGe=(i,s)=>i.insert("rect","#"+s).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",Tf.rect_min_width+"px").attr("height",Tf.rect_min_height+"px"),LGe=(i,s,u)=>{let d=Tf.rect_min_width/2,p=i.append("text").attr("class","req reqLabel reqTitle").attr("id",s).attr("x",d).attr("y",Tf.rect_padding).attr("dominant-baseline","hanging"),v=0;u.forEach(_=>{v==0?p.append("tspan").attr("text-anchor","middle").attr("x",Tf.rect_min_width/2).attr("dy",0).text(_):p.append("tspan").attr("text-anchor","middle").attr("x",Tf.rect_min_width/2).attr("dy",Tf.line_height*.75).text(_),v++});let b=1.5*Tf.rect_padding,y=v*Tf.line_height*.75,T=b+y;return i.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",Tf.rect_min_width).attr("y1",T).attr("y2",T),{titleNode:p,y:T}},MGe=(i,s,u,d)=>{let p=i.append("text").attr("class","req reqLabel").attr("id",s).attr("x",Tf.rect_padding).attr("y",d).attr("dominant-baseline","hanging"),v=0;const b=30;let y=[];return u.forEach(T=>{let _=T.length;for(;_>b&&v<3;){let A=T.substring(0,b);T=T.substring(b,T.length),_=T.length,y[y.length]=A,v++}if(v==3){let A=y[y.length-1];y[y.length-1]=A.substring(0,A.length-4)+"..."}else y[y.length]=T;v=0}),y.forEach(T=>{p.append("tspan").attr("x",Tf.rect_padding).attr("dy",Tf.line_height).text(T)}),p},drn=(i,s,u,d)=>{const p=s.node().getTotalLength(),v=s.node().getPointAtLength(p*.5),b="rel"+_Ge;_Ge++;const T=i.append("text").attr("class","req relationshipLabel").attr("id",b).attr("x",v.x).attr("y",v.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(d).node().getBBox();i.insert("rect","#"+b).attr("class","req reqLabelBox").attr("x",v.x-T.width/2).attr("y",v.y-T.height/2).attr("width",T.width).attr("height",T.height).attr("fill","white").attr("fill-opacity","85%")},grn=function(i,s,u,d,p){const v=u.edge(WD(s.src),WD(s.dst)),b=k7().x(function(T){return T.x}).y(function(T){return T.y}),y=i.insert("path","#"+d).attr("class","er relationshipLine").attr("d",b(v.points)).attr("fill","none");s.type==p.db.Relationships.CONTAINS?y.attr("marker-start","url("+li.getUrl(Tf.arrowMarkerAbsolute)+"#"+s.type+"_line_ending)"):(y.attr("stroke-dasharray","10,7"),y.attr("marker-end","url("+li.getUrl(Tf.arrowMarkerAbsolute)+"#"+SGe.ReqMarkers.ARROW+"_line_ending)")),drn(i,y,Tf,`<<${s.type}>>`)},prn=(i,s,u)=>{Object.keys(i).forEach(d=>{let p=i[d];d=WD(d),Xe.info("Added new requirement: ",d);const v=u.append("g").attr("id",d),b="req-"+d,y=AGe(v,b);let T=LGe(v,d+"_title",[`<<${p.type}>>`,`${p.name}`]);MGe(v,d+"_body",[`Id: ${p.id}`,`Text: ${p.text}`,`Risk: ${p.risk}`,`Verification: ${p.verifyMethod}`],T.y);const _=y.node().getBBox();s.setNode(d,{width:_.width,height:_.height,shape:"rect",id:d})})},brn=(i,s,u)=>{Object.keys(i).forEach(d=>{let p=i[d];const v=WD(d),b=u.append("g").attr("id",v),y="element-"+v,T=AGe(b,y);let _=LGe(b,y+"_title",["<>",`${d}`]);MGe(b,y+"_body",[`Type: ${p.type||"Not Specified"}`,`Doc Ref: ${p.docRef||"None"}`],_.y);const A=T.node().getBBox();s.setNode(v,{width:A.width,height:A.height,shape:"rect",id:v})})},mrn=(i,s)=>(i.forEach(function(u){let d=WD(u.src),p=WD(u.dst);s.setEdge(d,p,{relationship:u})}),i),vrn=function(i,s){s.nodes().forEach(function(u){u!==void 0&&s.node(u)!==void 0&&(i.select("#"+u),i.select("#"+u).attr("transform","translate("+(s.node(u).x-s.node(u).width/2)+","+(s.node(u).y-s.node(u).height/2)+" )"))})},WD=i=>i.replace(/\s/g,"").replace(/\./g,"_"),wrn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:lrn,db:hrn,renderer:{draw:(i,s,u,d)=>{Tf=qt().requirement;const p=Tf.securityLevel;let v;p==="sandbox"&&(v=Ir("#i"+s));const y=Ir(p==="sandbox"?v.nodes()[0].contentDocument.body:"body").select(`[id='${s}']`);SGe.insertLineEndings(y,Tf);const T=new B0({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:Tf.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let _=d.db.getRequirements(),A=d.db.getElements(),P=d.db.getRelationships();prn(_,T,y),brn(A,T,y),mrn(P,T),qD(T),vrn(y,T),P.forEach(function(ee){grn(y,ee,T,s,d)});const R=Tf.rect_padding,F=y.node().getBBox(),j=F.width+R*2,K=F.height+R*2;Ng(y,K,j,Tf.useMaxWidth),y.attr("viewBox",`${F.x-R} ${F.y-R} ${j} ${K}`)}},styles:frn}},Symbol.toStringTag,{value:"Module"}));var yve=function(){var i=function(xt,Pt,Qe,Dt){for(Qe=Qe||{},Dt=xt.length;Dt--;Qe[xt[Dt]]=Pt);return Qe},s=[1,2],u=[1,3],d=[1,4],p=[2,4],v=[1,9],b=[1,11],y=[1,13],T=[1,14],_=[1,16],A=[1,17],P=[1,18],R=[1,24],F=[1,25],j=[1,26],K=[1,27],ee=[1,28],ie=[1,29],oe=[1,30],pe=[1,31],be=[1,32],ae=[1,33],ne=[1,34],se=[1,35],de=[1,36],X=[1,37],ge=[1,38],W=[1,39],xe=[1,41],U=[1,42],Fe=[1,43],Pe=[1,44],je=[1,45],Ie=[1,46],Se=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],Ce=[4,5,16,50,52,53],ke=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],Ke=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],Ft=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],Ne=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],gn=[68,69,70],_t=[1,120],Et={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,DOTTED_ARROW:74,SOLID_CROSS:75,DOTTED_CROSS:76,SOLID_POINT:77,DOTTED_POINT:78,TXT:79,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"DOTTED_ARROW",75:"SOLID_CROSS",76:"DOTTED_CROSS",77:"SOLID_POINT",78:"DOTTED_POINT",79:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:function(Pt,Qe,Dt,kt,On,ht,zr){var yt=ht.length-1;switch(On){case 3:return kt.apply(ht[yt]),ht[yt];case 4:case 9:this.$=[];break;case 5:case 10:ht[yt-1].push(ht[yt]),this.$=ht[yt-1];break;case 6:case 7:case 11:case 12:this.$=ht[yt];break;case 8:case 13:this.$=[];break;case 15:ht[yt].type="createParticipant",this.$=ht[yt];break;case 16:ht[yt-1].unshift({type:"boxStart",boxData:kt.parseBoxData(ht[yt-2])}),ht[yt-1].push({type:"boxEnd",boxText:ht[yt-2]}),this.$=ht[yt-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(ht[yt-2]),sequenceIndexStep:Number(ht[yt-1]),sequenceVisible:!0,signalType:kt.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(ht[yt-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:kt.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:kt.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:kt.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:kt.LINETYPE.ACTIVE_START,actor:ht[yt-1]};break;case 23:this.$={type:"activeEnd",signalType:kt.LINETYPE.ACTIVE_END,actor:ht[yt-1]};break;case 29:kt.setDiagramTitle(ht[yt].substring(6)),this.$=ht[yt].substring(6);break;case 30:kt.setDiagramTitle(ht[yt].substring(7)),this.$=ht[yt].substring(7);break;case 31:this.$=ht[yt].trim(),kt.setAccTitle(this.$);break;case 32:case 33:this.$=ht[yt].trim(),kt.setAccDescription(this.$);break;case 34:ht[yt-1].unshift({type:"loopStart",loopText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.LOOP_START}),ht[yt-1].push({type:"loopEnd",loopText:ht[yt-2],signalType:kt.LINETYPE.LOOP_END}),this.$=ht[yt-1];break;case 35:ht[yt-1].unshift({type:"rectStart",color:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.RECT_START}),ht[yt-1].push({type:"rectEnd",color:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.RECT_END}),this.$=ht[yt-1];break;case 36:ht[yt-1].unshift({type:"optStart",optText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.OPT_START}),ht[yt-1].push({type:"optEnd",optText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.OPT_END}),this.$=ht[yt-1];break;case 37:ht[yt-1].unshift({type:"altStart",altText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.ALT_START}),ht[yt-1].push({type:"altEnd",signalType:kt.LINETYPE.ALT_END}),this.$=ht[yt-1];break;case 38:ht[yt-1].unshift({type:"parStart",parText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.PAR_START}),ht[yt-1].push({type:"parEnd",signalType:kt.LINETYPE.PAR_END}),this.$=ht[yt-1];break;case 39:ht[yt-1].unshift({type:"parStart",parText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.PAR_OVER_START}),ht[yt-1].push({type:"parEnd",signalType:kt.LINETYPE.PAR_END}),this.$=ht[yt-1];break;case 40:ht[yt-1].unshift({type:"criticalStart",criticalText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.CRITICAL_START}),ht[yt-1].push({type:"criticalEnd",signalType:kt.LINETYPE.CRITICAL_END}),this.$=ht[yt-1];break;case 41:ht[yt-1].unshift({type:"breakStart",breakText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.BREAK_START}),ht[yt-1].push({type:"breakEnd",optText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.BREAK_END}),this.$=ht[yt-1];break;case 43:this.$=ht[yt-3].concat([{type:"option",optionText:kt.parseMessage(ht[yt-1]),signalType:kt.LINETYPE.CRITICAL_OPTION},ht[yt]]);break;case 45:this.$=ht[yt-3].concat([{type:"and",parText:kt.parseMessage(ht[yt-1]),signalType:kt.LINETYPE.PAR_AND},ht[yt]]);break;case 47:this.$=ht[yt-3].concat([{type:"else",altText:kt.parseMessage(ht[yt-1]),signalType:kt.LINETYPE.ALT_ELSE},ht[yt]]);break;case 48:ht[yt-3].draw="participant",ht[yt-3].type="addParticipant",ht[yt-3].description=kt.parseMessage(ht[yt-1]),this.$=ht[yt-3];break;case 49:ht[yt-1].draw="participant",ht[yt-1].type="addParticipant",this.$=ht[yt-1];break;case 50:ht[yt-3].draw="actor",ht[yt-3].type="addParticipant",ht[yt-3].description=kt.parseMessage(ht[yt-1]),this.$=ht[yt-3];break;case 51:ht[yt-1].draw="actor",ht[yt-1].type="addParticipant",this.$=ht[yt-1];break;case 52:ht[yt-1].type="destroyParticipant",this.$=ht[yt-1];break;case 53:this.$=[ht[yt-1],{type:"addNote",placement:ht[yt-2],actor:ht[yt-1].actor,text:ht[yt]}];break;case 54:ht[yt-2]=[].concat(ht[yt-1],ht[yt-1]).slice(0,2),ht[yt-2][0]=ht[yt-2][0].actor,ht[yt-2][1]=ht[yt-2][1].actor,this.$=[ht[yt-1],{type:"addNote",placement:kt.PLACEMENT.OVER,actor:ht[yt-2].slice(0,2),text:ht[yt]}];break;case 55:this.$=[ht[yt-1],{type:"addLinks",actor:ht[yt-1].actor,text:ht[yt]}];break;case 56:this.$=[ht[yt-1],{type:"addALink",actor:ht[yt-1].actor,text:ht[yt]}];break;case 57:this.$=[ht[yt-1],{type:"addProperties",actor:ht[yt-1].actor,text:ht[yt]}];break;case 58:this.$=[ht[yt-1],{type:"addDetails",actor:ht[yt-1].actor,text:ht[yt]}];break;case 61:this.$=[ht[yt-2],ht[yt]];break;case 62:this.$=ht[yt];break;case 63:this.$=kt.PLACEMENT.LEFTOF;break;case 64:this.$=kt.PLACEMENT.RIGHTOF;break;case 65:this.$=[ht[yt-4],ht[yt-1],{type:"addMessage",from:ht[yt-4].actor,to:ht[yt-1].actor,signalType:ht[yt-3],msg:ht[yt],activate:!0},{type:"activeStart",signalType:kt.LINETYPE.ACTIVE_START,actor:ht[yt-1]}];break;case 66:this.$=[ht[yt-4],ht[yt-1],{type:"addMessage",from:ht[yt-4].actor,to:ht[yt-1].actor,signalType:ht[yt-3],msg:ht[yt]},{type:"activeEnd",signalType:kt.LINETYPE.ACTIVE_END,actor:ht[yt-4]}];break;case 67:this.$=[ht[yt-3],ht[yt-1],{type:"addMessage",from:ht[yt-3].actor,to:ht[yt-1].actor,signalType:ht[yt-2],msg:ht[yt]}];break;case 68:this.$={type:"addParticipant",actor:ht[yt]};break;case 69:this.$=kt.LINETYPE.SOLID_OPEN;break;case 70:this.$=kt.LINETYPE.DOTTED_OPEN;break;case 71:this.$=kt.LINETYPE.SOLID;break;case 72:this.$=kt.LINETYPE.DOTTED;break;case 73:this.$=kt.LINETYPE.SOLID_CROSS;break;case 74:this.$=kt.LINETYPE.DOTTED_CROSS;break;case 75:this.$=kt.LINETYPE.SOLID_POINT;break;case 76:this.$=kt.LINETYPE.DOTTED_POINT;break;case 77:this.$=kt.parseMessage(ht[yt].trim().substring(1));break}},table:[{3:1,4:s,5:u,6:d},{1:[3]},{3:5,4:s,5:u,6:d},{3:6,4:s,5:u,6:d},i([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],p,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:v,5:b,8:8,9:10,12:12,13:y,14:T,17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},i(Se,[2,5]),{9:47,12:12,13:y,14:T,17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},i(Se,[2,7]),i(Se,[2,8]),i(Se,[2,14]),{12:48,50:X,52:ge,53:W},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:Ie},{22:55,70:Ie},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},i(Se,[2,29]),i(Se,[2,30]),{32:[1,61]},{34:[1,62]},i(Se,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:Ie},{22:72,70:Ie},{22:73,70:Ie},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82]},{55:83,57:[1,84],65:[1,85],66:[1,86]},{22:87,70:Ie},{22:88,70:Ie},{22:89,70:Ie},{22:90,70:Ie},i([5,51,64,71,72,73,74,75,76,77,78,79],[2,68]),i(Se,[2,6]),i(Se,[2,15]),i(Ce,[2,9],{10:91}),i(Se,[2,17]),{5:[1,93],19:[1,92]},{5:[1,94]},i(Se,[2,21]),{5:[1,95]},{5:[1,96]},i(Se,[2,24]),i(Se,[2,25]),i(Se,[2,26]),i(Se,[2,27]),i(Se,[2,28]),i(Se,[2,31]),i(Se,[2,32]),i(ke,p,{7:97}),i(ke,p,{7:98}),i(ke,p,{7:99}),i(Ke,p,{40:100,7:101}),i(Ft,p,{42:102,7:103}),i(Ft,p,{7:103,42:104}),i(Ne,p,{45:105,7:106}),i(ke,p,{7:107}),{5:[1,109],51:[1,108]},{5:[1,111],51:[1,110]},{5:[1,112]},{22:115,68:[1,113],69:[1,114],70:Ie},i(gn,[2,69]),i(gn,[2,70]),i(gn,[2,71]),i(gn,[2,72]),i(gn,[2,73]),i(gn,[2,74]),i(gn,[2,75]),i(gn,[2,76]),{22:116,70:Ie},{22:118,58:117,70:Ie},{70:[2,63]},{70:[2,64]},{56:119,79:_t},{56:121,79:_t},{56:122,79:_t},{56:123,79:_t},{4:[1,126],5:[1,128],11:125,12:127,16:[1,124],50:X,52:ge,53:W},{5:[1,129]},i(Se,[2,19]),i(Se,[2,20]),i(Se,[2,22]),i(Se,[2,23]),{4:v,5:b,8:8,9:10,12:12,13:y,14:T,16:[1,130],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},{4:v,5:b,8:8,9:10,12:12,13:y,14:T,16:[1,131],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},{4:v,5:b,8:8,9:10,12:12,13:y,14:T,16:[1,132],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},{16:[1,133]},{4:v,5:b,8:8,9:10,12:12,13:y,14:T,16:[2,46],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,49:[1,134],50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},{16:[1,135]},{4:v,5:b,8:8,9:10,12:12,13:y,14:T,16:[2,44],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,48:[1,136],50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},{16:[1,137]},{16:[1,138]},{4:v,5:b,8:8,9:10,12:12,13:y,14:T,16:[2,42],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,47:[1,139],50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},{4:v,5:b,8:8,9:10,12:12,13:y,14:T,16:[1,140],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},{15:[1,141]},i(Se,[2,49]),{15:[1,142]},i(Se,[2,51]),i(Se,[2,52]),{22:143,70:Ie},{22:144,70:Ie},{56:145,79:_t},{56:146,79:_t},{56:147,79:_t},{64:[1,148],79:[2,62]},{5:[2,55]},{5:[2,77]},{5:[2,56]},{5:[2,57]},{5:[2,58]},i(Se,[2,16]),i(Ce,[2,10]),{12:149,50:X,52:ge,53:W},i(Ce,[2,12]),i(Ce,[2,13]),i(Se,[2,18]),i(Se,[2,34]),i(Se,[2,35]),i(Se,[2,36]),i(Se,[2,37]),{15:[1,150]},i(Se,[2,38]),{15:[1,151]},i(Se,[2,39]),i(Se,[2,40]),{15:[1,152]},i(Se,[2,41]),{5:[1,153]},{5:[1,154]},{56:155,79:_t},{56:156,79:_t},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:157,70:Ie},i(Ce,[2,11]),i(Ke,p,{7:101,40:158}),i(Ft,p,{7:103,42:159}),i(Ne,p,{7:106,45:160}),i(Se,[2,48]),i(Se,[2,50]),{5:[2,65]},{5:[2,66]},{79:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],85:[2,63],86:[2,64],119:[2,55],120:[2,77],121:[2,56],122:[2,57],123:[2,58],145:[2,67],146:[2,53],147:[2,54],155:[2,65],156:[2,66],157:[2,61],158:[2,47],159:[2,45],160:[2,43]},parseError:function(Pt,Qe){if(Qe.recoverable)this.trace(Pt);else{var Dt=new Error(Pt);throw Dt.hash=Qe,Dt}},parse:function(Pt){var Qe=this,Dt=[0],kt=[],On=[null],ht=[],zr=this.table,yt="",ji=0,xi=0,Ma=2,zs=1,ao=ht.slice.call(arguments,1),Tr=Object.create(this.lexer),Fn={yy:{}};for(var qn in this.yy)Object.prototype.hasOwnProperty.call(this.yy,qn)&&(Fn.yy[qn]=this.yy[qn]);Tr.setInput(Pt,Fn.yy),Fn.yy.lexer=Tr,Fn.yy.parser=this,typeof Tr.yylloc>"u"&&(Tr.yylloc={});var Un=Tr.yylloc;ht.push(Un);var At=Tr.options&&Tr.options.ranges;typeof Fn.yy.parseError=="function"?this.parseError=Fn.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function wt(){var da;return da=kt.pop()||Tr.lex()||zs,typeof da!="number"&&(da instanceof Array&&(kt=da,da=kt.pop()),da=Qe.symbols_[da]||da),da}for(var on,fn,An,oo,jo={},$o,Pa,wo,_s;;){if(fn=Dt[Dt.length-1],this.defaultActions[fn]?An=this.defaultActions[fn]:((on===null||typeof on>"u")&&(on=wt()),An=zr[fn]&&zr[fn][on]),typeof An>"u"||!An.length||!An[0]){var tl="";_s=[];for($o in zr[fn])this.terminals_[$o]&&$o>Ma&&_s.push("'"+this.terminals_[$o]+"'");Tr.showPosition?tl="Parse error on line "+(ji+1)+`: + L0,${s.line_height}`).attr("stroke-width",1)}};let Tf={},_Ge=0;const AGe=(i,s)=>i.insert("rect","#"+s).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",Tf.rect_min_width+"px").attr("height",Tf.rect_min_height+"px"),LGe=(i,s,u)=>{let d=Tf.rect_min_width/2,p=i.append("text").attr("class","req reqLabel reqTitle").attr("id",s).attr("x",d).attr("y",Tf.rect_padding).attr("dominant-baseline","hanging"),v=0;u.forEach(_=>{v==0?p.append("tspan").attr("text-anchor","middle").attr("x",Tf.rect_min_width/2).attr("dy",0).text(_):p.append("tspan").attr("text-anchor","middle").attr("x",Tf.rect_min_width/2).attr("dy",Tf.line_height*.75).text(_),v++});let b=1.5*Tf.rect_padding,y=v*Tf.line_height*.75,T=b+y;return i.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",Tf.rect_min_width).attr("y1",T).attr("y2",T),{titleNode:p,y:T}},MGe=(i,s,u,d)=>{let p=i.append("text").attr("class","req reqLabel").attr("id",s).attr("x",Tf.rect_padding).attr("y",d).attr("dominant-baseline","hanging"),v=0;const b=30;let y=[];return u.forEach(T=>{let _=T.length;for(;_>b&&v<3;){let A=T.substring(0,b);T=T.substring(b,T.length),_=T.length,y[y.length]=A,v++}if(v==3){let A=y[y.length-1];y[y.length-1]=A.substring(0,A.length-4)+"..."}else y[y.length]=T;v=0}),y.forEach(T=>{p.append("tspan").attr("x",Tf.rect_padding).attr("dy",Tf.line_height).text(T)}),p},drn=(i,s,u,d)=>{const p=s.node().getTotalLength(),v=s.node().getPointAtLength(p*.5),b="rel"+_Ge;_Ge++;const T=i.append("text").attr("class","req relationshipLabel").attr("id",b).attr("x",v.x).attr("y",v.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(d).node().getBBox();i.insert("rect","#"+b).attr("class","req reqLabelBox").attr("x",v.x-T.width/2).attr("y",v.y-T.height/2).attr("width",T.width).attr("height",T.height).attr("fill","white").attr("fill-opacity","85%")},grn=function(i,s,u,d,p){const v=u.edge(WD(s.src),WD(s.dst)),b=k7().x(function(T){return T.x}).y(function(T){return T.y}),y=i.insert("path","#"+d).attr("class","er relationshipLine").attr("d",b(v.points)).attr("fill","none");s.type==p.db.Relationships.CONTAINS?y.attr("marker-start","url("+ci.getUrl(Tf.arrowMarkerAbsolute)+"#"+s.type+"_line_ending)"):(y.attr("stroke-dasharray","10,7"),y.attr("marker-end","url("+ci.getUrl(Tf.arrowMarkerAbsolute)+"#"+SGe.ReqMarkers.ARROW+"_line_ending)")),drn(i,y,Tf,`<<${s.type}>>`)},prn=(i,s,u)=>{Object.keys(i).forEach(d=>{let p=i[d];d=WD(d),Xe.info("Added new requirement: ",d);const v=u.append("g").attr("id",d),b="req-"+d,y=AGe(v,b);let T=LGe(v,d+"_title",[`<<${p.type}>>`,`${p.name}`]);MGe(v,d+"_body",[`Id: ${p.id}`,`Text: ${p.text}`,`Risk: ${p.risk}`,`Verification: ${p.verifyMethod}`],T.y);const _=y.node().getBBox();s.setNode(d,{width:_.width,height:_.height,shape:"rect",id:d})})},brn=(i,s,u)=>{Object.keys(i).forEach(d=>{let p=i[d];const v=WD(d),b=u.append("g").attr("id",v),y="element-"+v,T=AGe(b,y);let _=LGe(b,y+"_title",["<>",`${d}`]);MGe(b,y+"_body",[`Type: ${p.type||"Not Specified"}`,`Doc Ref: ${p.docRef||"None"}`],_.y);const A=T.node().getBBox();s.setNode(v,{width:A.width,height:A.height,shape:"rect",id:v})})},mrn=(i,s)=>(i.forEach(function(u){let d=WD(u.src),p=WD(u.dst);s.setEdge(d,p,{relationship:u})}),i),vrn=function(i,s){s.nodes().forEach(function(u){u!==void 0&&s.node(u)!==void 0&&(i.select("#"+u),i.select("#"+u).attr("transform","translate("+(s.node(u).x-s.node(u).width/2)+","+(s.node(u).y-s.node(u).height/2)+" )"))})},WD=i=>i.replace(/\s/g,"").replace(/\./g,"_"),wrn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:lrn,db:hrn,renderer:{draw:(i,s,u,d)=>{Tf=qt().requirement;const p=Tf.securityLevel;let v;p==="sandbox"&&(v=Ir("#i"+s));const y=Ir(p==="sandbox"?v.nodes()[0].contentDocument.body:"body").select(`[id='${s}']`);SGe.insertLineEndings(y,Tf);const T=new B0({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:Tf.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let _=d.db.getRequirements(),A=d.db.getElements(),P=d.db.getRelationships();prn(_,T,y),brn(A,T,y),mrn(P,T),qD(T),vrn(y,T),P.forEach(function(ee){grn(y,ee,T,s,d)});const R=Tf.rect_padding,F=y.node().getBBox(),j=F.width+R*2,K=F.height+R*2;Ng(y,K,j,Tf.useMaxWidth),y.attr("viewBox",`${F.x-R} ${F.y-R} ${j} ${K}`)}},styles:frn}},Symbol.toStringTag,{value:"Module"}));var yve=function(){var i=function(xt,Pt,Qe,Dt){for(Qe=Qe||{},Dt=xt.length;Dt--;Qe[xt[Dt]]=Pt);return Qe},s=[1,2],u=[1,3],d=[1,4],p=[2,4],v=[1,9],b=[1,11],y=[1,13],T=[1,14],_=[1,16],A=[1,17],P=[1,18],R=[1,24],F=[1,25],j=[1,26],K=[1,27],ee=[1,28],ie=[1,29],oe=[1,30],pe=[1,31],be=[1,32],ae=[1,33],ne=[1,34],se=[1,35],de=[1,36],X=[1,37],ge=[1,38],W=[1,39],xe=[1,41],U=[1,42],Fe=[1,43],Pe=[1,44],je=[1,45],Ie=[1,46],Se=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],Ce=[4,5,16,50,52,53],ke=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],Ke=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],Ft=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],Ne=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],gn=[68,69,70],_t=[1,120],Et={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,DOTTED_ARROW:74,SOLID_CROSS:75,DOTTED_CROSS:76,SOLID_POINT:77,DOTTED_POINT:78,TXT:79,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"DOTTED_ARROW",75:"SOLID_CROSS",76:"DOTTED_CROSS",77:"SOLID_POINT",78:"DOTTED_POINT",79:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:function(Pt,Qe,Dt,kt,On,ht,zr){var yt=ht.length-1;switch(On){case 3:return kt.apply(ht[yt]),ht[yt];case 4:case 9:this.$=[];break;case 5:case 10:ht[yt-1].push(ht[yt]),this.$=ht[yt-1];break;case 6:case 7:case 11:case 12:this.$=ht[yt];break;case 8:case 13:this.$=[];break;case 15:ht[yt].type="createParticipant",this.$=ht[yt];break;case 16:ht[yt-1].unshift({type:"boxStart",boxData:kt.parseBoxData(ht[yt-2])}),ht[yt-1].push({type:"boxEnd",boxText:ht[yt-2]}),this.$=ht[yt-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(ht[yt-2]),sequenceIndexStep:Number(ht[yt-1]),sequenceVisible:!0,signalType:kt.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(ht[yt-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:kt.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:kt.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:kt.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:kt.LINETYPE.ACTIVE_START,actor:ht[yt-1]};break;case 23:this.$={type:"activeEnd",signalType:kt.LINETYPE.ACTIVE_END,actor:ht[yt-1]};break;case 29:kt.setDiagramTitle(ht[yt].substring(6)),this.$=ht[yt].substring(6);break;case 30:kt.setDiagramTitle(ht[yt].substring(7)),this.$=ht[yt].substring(7);break;case 31:this.$=ht[yt].trim(),kt.setAccTitle(this.$);break;case 32:case 33:this.$=ht[yt].trim(),kt.setAccDescription(this.$);break;case 34:ht[yt-1].unshift({type:"loopStart",loopText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.LOOP_START}),ht[yt-1].push({type:"loopEnd",loopText:ht[yt-2],signalType:kt.LINETYPE.LOOP_END}),this.$=ht[yt-1];break;case 35:ht[yt-1].unshift({type:"rectStart",color:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.RECT_START}),ht[yt-1].push({type:"rectEnd",color:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.RECT_END}),this.$=ht[yt-1];break;case 36:ht[yt-1].unshift({type:"optStart",optText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.OPT_START}),ht[yt-1].push({type:"optEnd",optText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.OPT_END}),this.$=ht[yt-1];break;case 37:ht[yt-1].unshift({type:"altStart",altText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.ALT_START}),ht[yt-1].push({type:"altEnd",signalType:kt.LINETYPE.ALT_END}),this.$=ht[yt-1];break;case 38:ht[yt-1].unshift({type:"parStart",parText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.PAR_START}),ht[yt-1].push({type:"parEnd",signalType:kt.LINETYPE.PAR_END}),this.$=ht[yt-1];break;case 39:ht[yt-1].unshift({type:"parStart",parText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.PAR_OVER_START}),ht[yt-1].push({type:"parEnd",signalType:kt.LINETYPE.PAR_END}),this.$=ht[yt-1];break;case 40:ht[yt-1].unshift({type:"criticalStart",criticalText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.CRITICAL_START}),ht[yt-1].push({type:"criticalEnd",signalType:kt.LINETYPE.CRITICAL_END}),this.$=ht[yt-1];break;case 41:ht[yt-1].unshift({type:"breakStart",breakText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.BREAK_START}),ht[yt-1].push({type:"breakEnd",optText:kt.parseMessage(ht[yt-2]),signalType:kt.LINETYPE.BREAK_END}),this.$=ht[yt-1];break;case 43:this.$=ht[yt-3].concat([{type:"option",optionText:kt.parseMessage(ht[yt-1]),signalType:kt.LINETYPE.CRITICAL_OPTION},ht[yt]]);break;case 45:this.$=ht[yt-3].concat([{type:"and",parText:kt.parseMessage(ht[yt-1]),signalType:kt.LINETYPE.PAR_AND},ht[yt]]);break;case 47:this.$=ht[yt-3].concat([{type:"else",altText:kt.parseMessage(ht[yt-1]),signalType:kt.LINETYPE.ALT_ELSE},ht[yt]]);break;case 48:ht[yt-3].draw="participant",ht[yt-3].type="addParticipant",ht[yt-3].description=kt.parseMessage(ht[yt-1]),this.$=ht[yt-3];break;case 49:ht[yt-1].draw="participant",ht[yt-1].type="addParticipant",this.$=ht[yt-1];break;case 50:ht[yt-3].draw="actor",ht[yt-3].type="addParticipant",ht[yt-3].description=kt.parseMessage(ht[yt-1]),this.$=ht[yt-3];break;case 51:ht[yt-1].draw="actor",ht[yt-1].type="addParticipant",this.$=ht[yt-1];break;case 52:ht[yt-1].type="destroyParticipant",this.$=ht[yt-1];break;case 53:this.$=[ht[yt-1],{type:"addNote",placement:ht[yt-2],actor:ht[yt-1].actor,text:ht[yt]}];break;case 54:ht[yt-2]=[].concat(ht[yt-1],ht[yt-1]).slice(0,2),ht[yt-2][0]=ht[yt-2][0].actor,ht[yt-2][1]=ht[yt-2][1].actor,this.$=[ht[yt-1],{type:"addNote",placement:kt.PLACEMENT.OVER,actor:ht[yt-2].slice(0,2),text:ht[yt]}];break;case 55:this.$=[ht[yt-1],{type:"addLinks",actor:ht[yt-1].actor,text:ht[yt]}];break;case 56:this.$=[ht[yt-1],{type:"addALink",actor:ht[yt-1].actor,text:ht[yt]}];break;case 57:this.$=[ht[yt-1],{type:"addProperties",actor:ht[yt-1].actor,text:ht[yt]}];break;case 58:this.$=[ht[yt-1],{type:"addDetails",actor:ht[yt-1].actor,text:ht[yt]}];break;case 61:this.$=[ht[yt-2],ht[yt]];break;case 62:this.$=ht[yt];break;case 63:this.$=kt.PLACEMENT.LEFTOF;break;case 64:this.$=kt.PLACEMENT.RIGHTOF;break;case 65:this.$=[ht[yt-4],ht[yt-1],{type:"addMessage",from:ht[yt-4].actor,to:ht[yt-1].actor,signalType:ht[yt-3],msg:ht[yt],activate:!0},{type:"activeStart",signalType:kt.LINETYPE.ACTIVE_START,actor:ht[yt-1]}];break;case 66:this.$=[ht[yt-4],ht[yt-1],{type:"addMessage",from:ht[yt-4].actor,to:ht[yt-1].actor,signalType:ht[yt-3],msg:ht[yt]},{type:"activeEnd",signalType:kt.LINETYPE.ACTIVE_END,actor:ht[yt-4]}];break;case 67:this.$=[ht[yt-3],ht[yt-1],{type:"addMessage",from:ht[yt-3].actor,to:ht[yt-1].actor,signalType:ht[yt-2],msg:ht[yt]}];break;case 68:this.$={type:"addParticipant",actor:ht[yt]};break;case 69:this.$=kt.LINETYPE.SOLID_OPEN;break;case 70:this.$=kt.LINETYPE.DOTTED_OPEN;break;case 71:this.$=kt.LINETYPE.SOLID;break;case 72:this.$=kt.LINETYPE.DOTTED;break;case 73:this.$=kt.LINETYPE.SOLID_CROSS;break;case 74:this.$=kt.LINETYPE.DOTTED_CROSS;break;case 75:this.$=kt.LINETYPE.SOLID_POINT;break;case 76:this.$=kt.LINETYPE.DOTTED_POINT;break;case 77:this.$=kt.parseMessage(ht[yt].trim().substring(1));break}},table:[{3:1,4:s,5:u,6:d},{1:[3]},{3:5,4:s,5:u,6:d},{3:6,4:s,5:u,6:d},i([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],p,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:v,5:b,8:8,9:10,12:12,13:y,14:T,17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},i(Se,[2,5]),{9:47,12:12,13:y,14:T,17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},i(Se,[2,7]),i(Se,[2,8]),i(Se,[2,14]),{12:48,50:X,52:ge,53:W},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:Ie},{22:55,70:Ie},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},i(Se,[2,29]),i(Se,[2,30]),{32:[1,61]},{34:[1,62]},i(Se,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:Ie},{22:72,70:Ie},{22:73,70:Ie},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82]},{55:83,57:[1,84],65:[1,85],66:[1,86]},{22:87,70:Ie},{22:88,70:Ie},{22:89,70:Ie},{22:90,70:Ie},i([5,51,64,71,72,73,74,75,76,77,78,79],[2,68]),i(Se,[2,6]),i(Se,[2,15]),i(Ce,[2,9],{10:91}),i(Se,[2,17]),{5:[1,93],19:[1,92]},{5:[1,94]},i(Se,[2,21]),{5:[1,95]},{5:[1,96]},i(Se,[2,24]),i(Se,[2,25]),i(Se,[2,26]),i(Se,[2,27]),i(Se,[2,28]),i(Se,[2,31]),i(Se,[2,32]),i(ke,p,{7:97}),i(ke,p,{7:98}),i(ke,p,{7:99}),i(Ke,p,{40:100,7:101}),i(Ft,p,{42:102,7:103}),i(Ft,p,{7:103,42:104}),i(Ne,p,{45:105,7:106}),i(ke,p,{7:107}),{5:[1,109],51:[1,108]},{5:[1,111],51:[1,110]},{5:[1,112]},{22:115,68:[1,113],69:[1,114],70:Ie},i(gn,[2,69]),i(gn,[2,70]),i(gn,[2,71]),i(gn,[2,72]),i(gn,[2,73]),i(gn,[2,74]),i(gn,[2,75]),i(gn,[2,76]),{22:116,70:Ie},{22:118,58:117,70:Ie},{70:[2,63]},{70:[2,64]},{56:119,79:_t},{56:121,79:_t},{56:122,79:_t},{56:123,79:_t},{4:[1,126],5:[1,128],11:125,12:127,16:[1,124],50:X,52:ge,53:W},{5:[1,129]},i(Se,[2,19]),i(Se,[2,20]),i(Se,[2,22]),i(Se,[2,23]),{4:v,5:b,8:8,9:10,12:12,13:y,14:T,16:[1,130],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},{4:v,5:b,8:8,9:10,12:12,13:y,14:T,16:[1,131],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},{4:v,5:b,8:8,9:10,12:12,13:y,14:T,16:[1,132],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},{16:[1,133]},{4:v,5:b,8:8,9:10,12:12,13:y,14:T,16:[2,46],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,49:[1,134],50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},{16:[1,135]},{4:v,5:b,8:8,9:10,12:12,13:y,14:T,16:[2,44],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,48:[1,136],50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},{16:[1,137]},{16:[1,138]},{4:v,5:b,8:8,9:10,12:12,13:y,14:T,16:[2,42],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,47:[1,139],50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},{4:v,5:b,8:8,9:10,12:12,13:y,14:T,16:[1,140],17:15,18:_,21:A,22:40,23:P,24:19,25:20,26:21,27:22,28:23,29:R,30:F,31:j,33:K,35:ee,36:ie,37:oe,38:pe,39:be,41:ae,43:ne,44:se,46:de,50:X,52:ge,53:W,54:xe,59:U,60:Fe,61:Pe,62:je,70:Ie},{15:[1,141]},i(Se,[2,49]),{15:[1,142]},i(Se,[2,51]),i(Se,[2,52]),{22:143,70:Ie},{22:144,70:Ie},{56:145,79:_t},{56:146,79:_t},{56:147,79:_t},{64:[1,148],79:[2,62]},{5:[2,55]},{5:[2,77]},{5:[2,56]},{5:[2,57]},{5:[2,58]},i(Se,[2,16]),i(Ce,[2,10]),{12:149,50:X,52:ge,53:W},i(Ce,[2,12]),i(Ce,[2,13]),i(Se,[2,18]),i(Se,[2,34]),i(Se,[2,35]),i(Se,[2,36]),i(Se,[2,37]),{15:[1,150]},i(Se,[2,38]),{15:[1,151]},i(Se,[2,39]),i(Se,[2,40]),{15:[1,152]},i(Se,[2,41]),{5:[1,153]},{5:[1,154]},{56:155,79:_t},{56:156,79:_t},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:157,70:Ie},i(Ce,[2,11]),i(Ke,p,{7:101,40:158}),i(Ft,p,{7:103,42:159}),i(Ne,p,{7:106,45:160}),i(Se,[2,48]),i(Se,[2,50]),{5:[2,65]},{5:[2,66]},{79:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],85:[2,63],86:[2,64],119:[2,55],120:[2,77],121:[2,56],122:[2,57],123:[2,58],145:[2,67],146:[2,53],147:[2,54],155:[2,65],156:[2,66],157:[2,61],158:[2,47],159:[2,45],160:[2,43]},parseError:function(Pt,Qe){if(Qe.recoverable)this.trace(Pt);else{var Dt=new Error(Pt);throw Dt.hash=Qe,Dt}},parse:function(Pt){var Qe=this,Dt=[0],kt=[],On=[null],ht=[],zr=this.table,yt="",ji=0,xi=0,Ma=2,zs=1,ao=ht.slice.call(arguments,1),Tr=Object.create(this.lexer),Fn={yy:{}};for(var qn in this.yy)Object.prototype.hasOwnProperty.call(this.yy,qn)&&(Fn.yy[qn]=this.yy[qn]);Tr.setInput(Pt,Fn.yy),Fn.yy.lexer=Tr,Fn.yy.parser=this,typeof Tr.yylloc>"u"&&(Tr.yylloc={});var Un=Tr.yylloc;ht.push(Un);var At=Tr.options&&Tr.options.ranges;typeof Fn.yy.parseError=="function"?this.parseError=Fn.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function wt(){var da;return da=kt.pop()||Tr.lex()||zs,typeof da!="number"&&(da instanceof Array&&(kt=da,da=kt.pop()),da=Qe.symbols_[da]||da),da}for(var on,fn,An,oo,jo={},$o,Pa,wo,_s;;){if(fn=Dt[Dt.length-1],this.defaultActions[fn]?An=this.defaultActions[fn]:((on===null||typeof on>"u")&&(on=wt()),An=zr[fn]&&zr[fn][on]),typeof An>"u"||!An.length||!An[0]){var tl="";_s=[];for($o in zr[fn])this.terminals_[$o]&&$o>Ma&&_s.push("'"+this.terminals_[$o]+"'");Tr.showPosition?tl="Parse error on line "+(ji+1)+`: `+Tr.showPosition()+` Expecting `+_s.join(", ")+", got '"+(this.terminals_[on]||on)+"'":tl="Parse error on line "+(ji+1)+": Unexpected "+(on==zs?"end of input":"'"+(this.terminals_[on]||on)+"'"),this.parseError(tl,{text:Tr.match,token:this.terminals_[on]||on,line:Tr.yylineno,loc:Un,expected:_s})}if(An[0]instanceof Array&&An.length>1)throw new Error("Parse Error: multiple actions possible at state: "+fn+", token: "+on);switch(An[0]){case 1:Dt.push(on),On.push(Tr.yytext),ht.push(Tr.yylloc),Dt.push(An[1]),on=null,xi=Tr.yyleng,yt=Tr.yytext,ji=Tr.yylineno,Un=Tr.yylloc;break;case 2:if(Pa=this.productions_[An[1]][1],jo.$=On[On.length-Pa],jo._$={first_line:ht[ht.length-(Pa||1)].first_line,last_line:ht[ht.length-1].last_line,first_column:ht[ht.length-(Pa||1)].first_column,last_column:ht[ht.length-1].last_column},At&&(jo._$.range=[ht[ht.length-(Pa||1)].range[0],ht[ht.length-1].range[1]]),oo=this.performAction.apply(jo,[yt,xi,ji,Fn.yy,An[1],On,ht].concat(ao)),typeof oo<"u")return oo;Pa&&(Dt=Dt.slice(0,-1*Pa*2),On=On.slice(0,-1*Pa),ht=ht.slice(0,-1*Pa)),Dt.push(this.productions_[An[1]][0]),On.push(jo.$),ht.push(jo._$),wo=zr[Dt[Dt.length-2]][Dt[Dt.length-1]],Dt.push(wo);break;case 3:return!0}}return!0}},Gt=function(){var xt={EOF:1,parseError:function(Qe,Dt){if(this.yy.parser)this.yy.parser.parseError(Qe,Dt);else throw new Error(Qe)},setInput:function(Pt,Qe){return this.yy=Qe||this.yy||{},this._input=Pt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Pt=this._input[0];this.yytext+=Pt,this.yyleng++,this.offset++,this.match+=Pt,this.matched+=Pt;var Qe=Pt.match(/(?:\r\n?|\n).*/g);return Qe?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Pt},unput:function(Pt){var Qe=Pt.length,Dt=Pt.split(/(?:\r\n?|\n)/g);this._input=Pt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Qe),this.offset-=Qe;var kt=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Dt.length-1&&(this.yylineno-=Dt.length-1);var On=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Dt?(Dt.length===kt.length?this.yylloc.first_column:0)+kt[kt.length-Dt.length].length-Dt[0].length:this.yylloc.first_column-Qe},this.options.ranges&&(this.yylloc.range=[On[0],On[0]+this.yyleng-Qe]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Pt){this.unput(this.match.slice(Pt))},pastInput:function(){var Pt=this.matched.substr(0,this.matched.length-this.match.length);return(Pt.length>20?"...":"")+Pt.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Pt=this.match;return Pt.length<20&&(Pt+=this._input.substr(0,20-Pt.length)),(Pt.substr(0,20)+(Pt.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Pt=this.pastInput(),Qe=new Array(Pt.length+1).join("-");return Pt+this.upcomingInput()+` @@ -1091,12 +1091,12 @@ Expecting `+_s.join(", ")+", got '"+(this.terminals_[on]||on)+"'":tl="Parse erro fill: ${i.actorBkg}; stroke-width: 2px; } -`,ZC=18*2,RGe="actor-top",jGe="actor-bottom",Eve=function(i,s){return AQ(i,s)},Grn=function(i,s,u,d,p){if(s.links===void 0||s.links===null||Object.keys(s.links).length===0)return{height:0,width:0};const v=s.links,b=s.actorCnt,y=s.rectData;var T="none";p&&(T="block !important");const _=i.append("g");_.attr("id","actor"+b+"_popup"),_.attr("class","actorPopupMenu"),_.attr("display",T);var A="";y.class!==void 0&&(A=" "+y.class);let P=y.width>u?y.width:u;const R=_.append("rect");if(R.attr("class","actorPopupMenuPanel"+A),R.attr("x",y.x),R.attr("y",y.height),R.attr("fill",y.fill),R.attr("stroke",y.stroke),R.attr("width",P),R.attr("height",y.height),R.attr("rx",y.rx),R.attr("ry",y.ry),v!=null){var F=20;for(let ee in v){var j=_.append("a"),K=p9.sanitizeUrl(v[ee]);j.attr("xlink:href",K),j.attr("target","_blank"),uin(d)(ee,j,y.x+10,y.height+F,P,20,{class:"actor"},d),F+=30}}return R.attr("height",F),{height:y.height+F,width:P}},Krn=function(i){return"var pu = document.getElementById('"+i+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},pJ=async function(i,s,u=null){let d=i.append("foreignObject");const p=await CC(s.text,Vh()),b=d.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(p).node().getBoundingClientRect();if(d.attr("height",Math.round(b.height)).attr("width",Math.round(b.width)),s.class==="noteText"){const y=i.node().firstChild;y.setAttribute("height",b.height+2*s.textMargin);const T=y.getBBox();d.attr("x",Math.round(T.x+T.width/2-b.width/2)).attr("y",Math.round(T.y+T.height/2-b.height/2))}else if(u){let{startx:y,stopx:T,starty:_}=u;if(y>T){const A=y;y=T,T=A}d.attr("x",Math.round(y+Math.abs(y-T)/2-b.width/2)),s.class==="loopText"?d.attr("y",Math.round(_)):d.attr("y",Math.round(_-b.height))}return[d]},YD=function(i,s){let u=0,d=0;const p=s.text.split(li.lineBreakRegex),[v,b]=NC(s.fontSize);let y=[],T=0,_=()=>s.y;if(s.valign!==void 0&&s.textMargin!==void 0&&s.textMargin>0)switch(s.valign){case"top":case"start":_=()=>Math.round(s.y+s.textMargin);break;case"middle":case"center":_=()=>Math.round(s.y+(u+d+s.textMargin)/2);break;case"bottom":case"end":_=()=>Math.round(s.y+(u+d+2*s.textMargin)-s.textMargin);break}if(s.anchor!==void 0&&s.textMargin!==void 0&&s.width!==void 0)switch(s.anchor){case"left":case"start":s.x=Math.round(s.x+s.textMargin),s.anchor="start",s.dominantBaseline="middle",s.alignmentBaseline="middle";break;case"middle":case"center":s.x=Math.round(s.x+s.width/2),s.anchor="middle",s.dominantBaseline="middle",s.alignmentBaseline="middle";break;case"right":case"end":s.x=Math.round(s.x+s.width-s.textMargin),s.anchor="end",s.dominantBaseline="middle",s.alignmentBaseline="middle";break}for(let[A,P]of p.entries()){s.textMargin!==void 0&&s.textMargin===0&&v!==void 0&&(T=A*v);const R=i.append("text");R.attr("x",s.x),R.attr("y",_()),s.anchor!==void 0&&R.attr("text-anchor",s.anchor).attr("dominant-baseline",s.dominantBaseline).attr("alignment-baseline",s.alignmentBaseline),s.fontFamily!==void 0&&R.style("font-family",s.fontFamily),b!==void 0&&R.style("font-size",b),s.fontWeight!==void 0&&R.style("font-weight",s.fontWeight),s.fill!==void 0&&R.attr("fill",s.fill),s.class!==void 0&&R.attr("class",s.class),s.dy!==void 0?R.attr("dy",s.dy):T!==0&&R.attr("dy",T);const F=P||hje;if(s.tspan){const j=R.append("tspan");j.attr("x",s.x),s.fill!==void 0&&j.attr("fill",s.fill),j.text(F)}else R.text(F);s.valign!==void 0&&s.textMargin!==void 0&&s.textMargin>0&&(d+=(R._groups||R)[0][0].getBBox().height,u=d),y.push(R)}return y},$Ge=function(i,s){function u(p,v,b,y,T){return p+","+v+" "+(p+b)+","+v+" "+(p+b)+","+(v+y-T)+" "+(p+b-T*1.2)+","+(v+y)+" "+p+","+(v+y)}const d=i.append("polygon");return d.attr("points",u(s.x,s.y,s.width,s.height,7)),d.attr("class","labelBox"),s.y=s.y+s.height/2,YD(i,s),d};let s5=-1;const zGe=(i,s,u,d)=>{i.select&&u.forEach(p=>{const v=s[p],b=i.select("#actor"+v.actorCnt);!d.mirrorActors&&v.stopy?b.attr("y2",v.stopy+v.height/2):d.mirrorActors&&b.attr("y2",v.stopy)})},Wrn=async function(i,s,u,d){const p=d?s.stopy:s.starty,v=s.x+s.width/2,b=p+5,y=i.append("g").lower();var T=y;d||(s5++,Object.keys(s.links||{}).length&&!u.forceMenus&&T.attr("onclick",Krn(`actor${s5}_popup`)).attr("cursor","pointer"),T.append("line").attr("id","actor"+s5).attr("x1",v).attr("y1",b).attr("x2",v).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),T=y.append("g"),s.actorCnt=s5,s.links!=null&&T.attr("id","root-"+s5));const _=qC();var A="actor";s.properties!=null&&s.properties.class?A=s.properties.class:_.fill="#eaeaea",d?A+=` ${jGe}`:A+=` ${RGe}`,_.x=s.x,_.y=p,_.width=s.width,_.height=s.height,_.class=A,_.rx=3,_.ry=3,_.name=s.name;const P=Eve(T,_);if(s.rectData=_,s.properties!=null&&s.properties.icon){const F=s.properties.icon.trim();F.charAt(0)==="@"?rUt(T,_.x+_.width-20,_.y+10,F.substr(1)):nUt(T,_.x+_.width-20,_.y+10,F)}await Tve(u,Dv(s.description))(s.description,T,_.x,_.y,_.width,_.height,{class:"actor"},u);let R=s.height;if(P.node){const F=P.node().getBBox();s.height=F.height,R=F.height}return R},Yrn=async function(i,s,u,d){const p=d?s.stopy:s.starty,v=s.x+s.width/2,b=p+80;i.lower(),d||(s5++,i.append("line").attr("id","actor"+s5).attr("x1",v).attr("y1",b).attr("x2",v).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),s.actorCnt=s5);const y=i.append("g");let T="actor-man";d?T+=` ${jGe}`:T+=` ${RGe}`,y.attr("class",T),y.attr("name",s.name);const _=qC();_.x=s.x,_.y=p,_.fill="#eaeaea",_.width=s.width,_.height=s.height,_.class="actor",_.rx=3,_.ry=3,y.append("line").attr("id","actor-man-torso"+s5).attr("x1",v).attr("y1",p+25).attr("x2",v).attr("y2",p+45),y.append("line").attr("id","actor-man-arms"+s5).attr("x1",v-ZC/2).attr("y1",p+33).attr("x2",v+ZC/2).attr("y2",p+33),y.append("line").attr("x1",v-ZC/2).attr("y1",p+60).attr("x2",v).attr("y2",p+45),y.append("line").attr("x1",v).attr("y1",p+45).attr("x2",v+ZC/2-2).attr("y2",p+60);const A=y.append("circle");A.attr("cx",s.x+s.width/2),A.attr("cy",p+10),A.attr("r",15),A.attr("width",s.width),A.attr("height",s.height);const P=y.node().getBBox();return s.height=P.height,await Tve(u,Dv(s.description))(s.description,y,_.x,_.y+35,_.width,_.height,{class:"actor"},u),s.height},Xrn=async function(i,s,u,d){switch(s.type){case"actor":return await Yrn(i,s,u,d);case"participant":return await Wrn(i,s,u,d)}},Qrn=async function(i,s,u){const p=i.append("g");qGe(p,s),s.name&&await Tve(u)(s.name,p,s.x,s.y+(s.textMaxHeight||0)/2,s.width,0,{class:"text"},u),p.lower()},Jrn=function(i){return i.append("g")},Zrn=function(i,s,u,d,p){const v=qC(),b=s.anchored;v.x=s.startx,v.y=s.starty,v.class="activation"+p%3,v.width=s.stopx-s.startx,v.height=u-s.starty,Eve(b,v)},ein=async function(i,s,u,d){const{boxMargin:p,boxTextMargin:v,labelBoxHeight:b,labelBoxWidth:y,messageFontFamily:T,messageFontSize:_,messageFontWeight:A}=d,P=i.append("g"),R=function(K,ee,ie,oe){return P.append("line").attr("x1",K).attr("y1",ee).attr("x2",ie).attr("y2",oe).attr("class","loopLine")};R(s.startx,s.starty,s.stopx,s.starty),R(s.stopx,s.starty,s.stopx,s.stopy),R(s.startx,s.stopy,s.stopx,s.stopy),R(s.startx,s.starty,s.startx,s.stopy),s.sections!==void 0&&s.sections.forEach(function(K){R(s.startx,K.y,s.stopx,K.y).style("stroke-dasharray","3, 3")});let F=zbe();F.text=u,F.x=s.startx,F.y=s.starty,F.fontFamily=T,F.fontSize=_,F.fontWeight=A,F.anchor="middle",F.valign="middle",F.tspan=!1,F.width=y||50,F.height=b||20,F.textMargin=v,F.class="labelText",$Ge(P,F),F=HGe(),F.text=s.title,F.x=s.startx+y/2+(s.stopx-s.startx)/2,F.y=s.starty+p+v,F.anchor="middle",F.valign="middle",F.textMargin=v,F.class="loopText",F.fontFamily=T,F.fontSize=_,F.fontWeight=A,F.wrap=!0;let j=Dv(F.text)?await pJ(P,F,s):YD(P,F);if(s.sectionTitles!==void 0){for(const[K,ee]of Object.entries(s.sectionTitles))if(ee.message){F.text=ee.message,F.x=s.startx+(s.stopx-s.startx)/2,F.y=s.sections[K].y+p+v,F.class="loopText",F.anchor="middle",F.valign="middle",F.tspan=!1,F.fontFamily=T,F.fontSize=_,F.fontWeight=A,F.wrap=s.wrap,Dv(F.text)?(s.starty=s.sections[K].y,await pJ(P,F,s)):YD(P,F);let ie=Math.round(j.map(oe=>(oe._groups||oe)[0][0].getBBox().height).reduce((oe,pe)=>oe+pe));s.sections[K].height+=ie-(p+v)}}return s.height=Math.round(s.stopy-s.starty),P},qGe=function(i,s){Tqe(i,s)},tin=function(i){i.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},nin=function(i){i.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},rin=function(i){i.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},iin=function(i){i.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},sin=function(i){i.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},ain=function(i){i.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},oin=function(i){i.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},HGe=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},cin=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},Tve=function(){function i(v,b,y,T,_,A,P){const R=b.append("text").attr("x",y+_/2).attr("y",T+A/2+5).style("text-anchor","middle").text(v);p(R,P)}function s(v,b,y,T,_,A,P,R){const{actorFontSize:F,actorFontFamily:j,actorFontWeight:K}=R,[ee,ie]=NC(F),oe=v.split(li.lineBreakRegex);for(let pe=0;pei.height||0))+(this.loops.length===0?0:this.loops.map(i=>i.height||0).reduce((i,s)=>i+s))+(this.messages.length===0?0:this.messages.map(i=>i.height||0).reduce((i,s)=>i+s))+(this.notes.length===0?0:this.notes.map(i=>i.height||0).reduce((i,s)=>i+s))},clear:function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},addBox:function(i){this.boxes.push(i)},addActor:function(i){this.actors.push(i)},addLoop:function(i){this.loops.push(i)},addMessage:function(i){this.messages.push(i)},addNote:function(i){this.notes.push(i)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],boxes:[],loops:[],messages:[],notes:[]},init:function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,UGe(qt())},updateVal:function(i,s,u,d){i[s]===void 0?i[s]=u:i[s]=d(u,i[s])},updateBounds:function(i,s,u,d){const p=this;let v=0;function b(y){return function(_){v++;const A=p.sequenceItems.length-v+1;p.updateVal(_,"starty",s-A*En.boxMargin,Math.min),p.updateVal(_,"stopy",d+A*En.boxMargin,Math.max),p.updateVal(ni.data,"startx",i-A*En.boxMargin,Math.min),p.updateVal(ni.data,"stopx",u+A*En.boxMargin,Math.max),y!=="activation"&&(p.updateVal(_,"startx",i-A*En.boxMargin,Math.min),p.updateVal(_,"stopx",u+A*En.boxMargin,Math.max),p.updateVal(ni.data,"starty",s-A*En.boxMargin,Math.min),p.updateVal(ni.data,"stopy",d+A*En.boxMargin,Math.max))}}this.sequenceItems.forEach(b()),this.activations.forEach(b("activation"))},insert:function(i,s,u,d){const p=li.getMin(i,u),v=li.getMax(i,u),b=li.getMin(s,d),y=li.getMax(s,d);this.updateVal(ni.data,"startx",p,Math.min),this.updateVal(ni.data,"starty",b,Math.min),this.updateVal(ni.data,"stopx",v,Math.max),this.updateVal(ni.data,"stopy",y,Math.max),this.updateBounds(p,b,v,y)},newActivation:function(i,s,u){const d=u[i.from.actor],p=bJ(i.from.actor).length||0,v=d.x+d.width/2+(p-1)*En.activationWidth/2;this.activations.push({startx:v,starty:this.verticalPos+2,stopx:v+En.activationWidth,stopy:void 0,actor:i.from.actor,anchored:Zf.anchorElement(s)})},endActivation:function(i){const s=this.activations.map(function(u){return u.actor}).lastIndexOf(i.from.actor);return this.activations.splice(s,1)[0]},createLoop:function(i={message:void 0,wrap:!1,width:void 0},s){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:i.message,wrap:i.wrap,width:i.width,height:0,fill:s}},newLoop:function(i={message:void 0,wrap:!1,width:void 0},s){this.sequenceItems.push(this.createLoop(i,s))},endLoop:function(){return this.sequenceItems.pop()},isLoopOverlap:function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},addSectionToLoop:function(i){const s=this.sequenceItems.pop();s.sections=s.sections||[],s.sectionTitles=s.sectionTitles||[],s.sections.push({y:ni.getVerticalPos(),height:0}),s.sectionTitles.push(i),this.sequenceItems.push(s)},saveVerticalPos:function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},resetVerticalPos:function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},bumpVerticalPos:function(i){this.verticalPos=this.verticalPos+i,this.data.stopy=li.getMax(this.data.stopy,this.verticalPos)},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},lin=async function(i,s){ni.bumpVerticalPos(En.boxMargin),s.height=En.boxMargin,s.starty=ni.getVerticalPos();const u=qC();u.x=s.startx,u.y=s.starty,u.width=s.width||En.width,u.class="note";const d=i.append("g"),p=Zf.drawRect(d,u),v=zbe();v.x=s.startx,v.y=s.starty,v.width=u.width,v.dy="1em",v.text=s.message,v.class="noteText",v.fontFamily=En.noteFontFamily,v.fontSize=En.noteFontSize,v.fontWeight=En.noteFontWeight,v.anchor=En.noteAlign,v.textMargin=En.noteMargin,v.valign="center";const b=Dv(v.text)?await pJ(d,v):YD(d,v),y=Math.round(b.map(T=>(T._groups||T)[0][0].getBBox().height).reduce((T,_)=>T+_));p.attr("height",y+2*En.noteMargin),s.height+=y+2*En.noteMargin,ni.bumpVerticalPos(y+2*En.noteMargin),s.stopy=s.starty+y+2*En.noteMargin,s.stopx=s.startx+u.width,ni.insert(s.startx,s.starty,s.stopx,s.stopy),ni.models.addNote(s)},eS=i=>({fontFamily:i.messageFontFamily,fontSize:i.messageFontSize,fontWeight:i.messageFontWeight}),XD=i=>({fontFamily:i.noteFontFamily,fontSize:i.noteFontSize,fontWeight:i.noteFontWeight}),Cve=i=>({fontFamily:i.actorFontFamily,fontSize:i.actorFontSize,fontWeight:i.actorFontWeight});async function hin(i,s){ni.bumpVerticalPos(10);const{startx:u,stopx:d,message:p}=s,v=li.splitBreaks(p).length,b=Dv(p),y=b?await HF(p,qt()):Ao.calculateTextDimensions(p,eS(En));if(!b){const P=y.height/v;s.height+=P,ni.bumpVerticalPos(P)}let T,_=y.height-10;const A=y.width;if(u===d){T=ni.getVerticalPos()+_,En.rightAngles||(_+=En.boxMargin,T=ni.getVerticalPos()+_),_+=30;const P=li.getMax(A/2,En.width/2);ni.insert(u-P,ni.getVerticalPos()-10+_,d+P,ni.getVerticalPos()+30+_)}else _+=En.boxMargin,T=ni.getVerticalPos()+_,ni.insert(u,T-10,d,T);return ni.bumpVerticalPos(_),s.height+=_,s.stopy=s.starty+s.height,ni.insert(s.fromBounds,s.starty,s.toBounds,s.stopy),T}const fin=async function(i,s,u,d){const{startx:p,stopx:v,starty:b,message:y,type:T,sequenceIndex:_,sequenceVisible:A}=s,P=Ao.calculateTextDimensions(y,eS(En)),R=zbe();R.x=p,R.y=b+10,R.width=v-p,R.class="messageText",R.dy="1em",R.text=y,R.fontFamily=En.messageFontFamily,R.fontSize=En.messageFontSize,R.fontWeight=En.messageFontWeight,R.anchor=En.messageAlign,R.valign="center",R.textMargin=En.wrapPadding,R.tspan=!1,Dv(R.text)?await pJ(i,R,{startx:p,stopx:v,starty:u}):YD(i,R);const F=P.width;let j;p===v?En.rightAngles?j=i.append("path").attr("d",`M ${p},${u} H ${p+li.getMax(En.width/2,F/2)} V ${u+25} H ${p}`):j=i.append("path").attr("d","M "+p+","+u+" C "+(p+60)+","+(u-10)+" "+(p+60)+","+(u+30)+" "+p+","+(u+20)):(j=i.append("line"),j.attr("x1",p),j.attr("y1",u),j.attr("x2",v),j.attr("y2",u)),T===d.db.LINETYPE.DOTTED||T===d.db.LINETYPE.DOTTED_CROSS||T===d.db.LINETYPE.DOTTED_POINT||T===d.db.LINETYPE.DOTTED_OPEN?(j.style("stroke-dasharray","3, 3"),j.attr("class","messageLine1")):j.attr("class","messageLine0");let K="";En.arrowMarkerAbsolute&&(K=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,K=K.replace(/\(/g,"\\("),K=K.replace(/\)/g,"\\)")),j.attr("stroke-width",2),j.attr("stroke","none"),j.style("fill","none"),(T===d.db.LINETYPE.SOLID||T===d.db.LINETYPE.DOTTED)&&j.attr("marker-end","url("+K+"#arrowhead)"),(T===d.db.LINETYPE.SOLID_POINT||T===d.db.LINETYPE.DOTTED_POINT)&&j.attr("marker-end","url("+K+"#filled-head)"),(T===d.db.LINETYPE.SOLID_CROSS||T===d.db.LINETYPE.DOTTED_CROSS)&&j.attr("marker-end","url("+K+"#crosshead)"),(A||En.showSequenceNumbers)&&(j.attr("marker-start","url("+K+"#sequencenumber)"),i.append("text").attr("x",p).attr("y",u+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(_))},din=async function(i,s,u,d,p,v,b){let y=0,T=0,_,A=0;for(const P of d){const R=s[P],F=R.box;_&&_!=F&&(b||ni.models.addBox(_),T+=En.boxMargin+_.margin),F&&F!=_&&(b||(F.x=y+T,F.y=p),T+=F.margin),R.width=R.width||En.width,R.height=li.getMax(R.height||En.height,En.height),R.margin=R.margin||En.actorMargin,A=li.getMax(A,R.height),u[R.name]&&(T+=R.width/2),R.x=y+T,R.starty=ni.getVerticalPos(),ni.insert(R.x,p,R.x+R.width,R.height),y+=R.width+T,R.box&&(R.box.width=y+F.margin-R.box.x),T=R.margin,_=R.box,ni.models.addActor(R)}_&&!b&&ni.models.addBox(_),ni.bumpVerticalPos(A)},Sve=async function(i,s,u,d){if(d){let p=0;ni.bumpVerticalPos(En.boxMargin*2);for(const v of u){const b=s[v];b.stopy||(b.stopy=ni.getVerticalPos());const y=await Zf.drawActor(i,b,En,!0);p=li.getMax(p,y)}ni.bumpVerticalPos(p+En.boxMargin)}else for(const p of u){const v=s[p];await Zf.drawActor(i,v,En,!1)}},VGe=function(i,s,u,d){let p=0,v=0;for(const b of u){const y=s[b],T=min(y),_=Zf.drawPopup(i,y,T,En,En.forceMenus,d);_.height>p&&(p=_.height),_.width+y.x>v&&(v=_.width+y.x)}return{maxHeight:p,maxWidth:v}},UGe=function(i){id(En,i),i.fontFamily&&(En.actorFontFamily=En.noteFontFamily=En.messageFontFamily=i.fontFamily),i.fontSize&&(En.actorFontSize=En.noteFontSize=En.messageFontSize=i.fontSize),i.fontWeight&&(En.actorFontWeight=En.noteFontWeight=En.messageFontWeight=i.fontWeight)},bJ=function(i){return ni.activations.filter(function(s){return s.actor===i})},GGe=function(i,s){const u=s[i],d=bJ(i),p=d.reduce(function(b,y){return li.getMin(b,y.startx)},u.x+u.width/2-1),v=d.reduce(function(b,y){return li.getMax(b,y.stopx)},u.x+u.width/2+1);return[p,v]};function a5(i,s,u,d,p){ni.bumpVerticalPos(u);let v=d;if(s.id&&s.message&&i[s.id]){const b=i[s.id].width,y=eS(En);s.message=Ao.wrapLabel(`[${s.message}]`,b-2*En.wrapPadding,y),s.width=b,s.wrap=!0;const T=Ao.calculateTextDimensions(s.message,y),_=li.getMax(T.height,En.labelBoxHeight);v=d+_,Xe.debug(`${_} - ${s.message}`)}p(s),ni.bumpVerticalPos(v)}function gin(i,s,u,d,p,v,b){function y(_,A){_.x{Se.add(Ce.from),Se.add(Ce.to)}),j=j.filter(Ce=>Se.has(Ce))}await din(_,A,P,j,0,K,!1);const be=await xin(K,A,pe,d);Zf.insertArrowHead(_),Zf.insertArrowCrossHead(_),Zf.insertArrowFilledHead(_),Zf.insertSequenceNumber(_);function ae(Se,Ce){const ke=ni.endActivation(Se);ke.starty+18>Ce&&(ke.starty=Ce-6,Ce+=12),Zf.drawActivation(_,ke,Ce,En,bJ(Se.from.actor).length),ni.insert(ke.startx,Ce-10,ke.stopx,Ce)}let ne=1,se=1;const de=[],X=[];let ge=0;for(const Se of K){let Ce,ke,Ke;switch(Se.type){case d.db.LINETYPE.NOTE:ni.resetVerticalPos(),ke=Se.noteModel,await lin(_,ke);break;case d.db.LINETYPE.ACTIVE_START:ni.newActivation(Se,_,A);break;case d.db.LINETYPE.ACTIVE_END:ae(Se,ni.getVerticalPos());break;case d.db.LINETYPE.LOOP_START:a5(be,Se,En.boxMargin,En.boxMargin+En.boxTextMargin,Ft=>ni.newLoop(Ft));break;case d.db.LINETYPE.LOOP_END:Ce=ni.endLoop(),await Zf.drawLoop(_,Ce,"loop",En),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.RECT_START:a5(be,Se,En.boxMargin,En.boxMargin,Ft=>ni.newLoop(void 0,Ft.message));break;case d.db.LINETYPE.RECT_END:Ce=ni.endLoop(),X.push(Ce),ni.models.addLoop(Ce),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos());break;case d.db.LINETYPE.OPT_START:a5(be,Se,En.boxMargin,En.boxMargin+En.boxTextMargin,Ft=>ni.newLoop(Ft));break;case d.db.LINETYPE.OPT_END:Ce=ni.endLoop(),await Zf.drawLoop(_,Ce,"opt",En),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.ALT_START:a5(be,Se,En.boxMargin,En.boxMargin+En.boxTextMargin,Ft=>ni.newLoop(Ft));break;case d.db.LINETYPE.ALT_ELSE:a5(be,Se,En.boxMargin+En.boxTextMargin,En.boxMargin,Ft=>ni.addSectionToLoop(Ft));break;case d.db.LINETYPE.ALT_END:Ce=ni.endLoop(),await Zf.drawLoop(_,Ce,"alt",En),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.PAR_START:case d.db.LINETYPE.PAR_OVER_START:a5(be,Se,En.boxMargin,En.boxMargin+En.boxTextMargin,Ft=>ni.newLoop(Ft)),ni.saveVerticalPos();break;case d.db.LINETYPE.PAR_AND:a5(be,Se,En.boxMargin+En.boxTextMargin,En.boxMargin,Ft=>ni.addSectionToLoop(Ft));break;case d.db.LINETYPE.PAR_END:Ce=ni.endLoop(),await Zf.drawLoop(_,Ce,"par",En),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.AUTONUMBER:ne=Se.message.start||ne,se=Se.message.step||se,Se.message.visible?d.db.enableSequenceNumbers():d.db.disableSequenceNumbers();break;case d.db.LINETYPE.CRITICAL_START:a5(be,Se,En.boxMargin,En.boxMargin+En.boxTextMargin,Ft=>ni.newLoop(Ft));break;case d.db.LINETYPE.CRITICAL_OPTION:a5(be,Se,En.boxMargin+En.boxTextMargin,En.boxMargin,Ft=>ni.addSectionToLoop(Ft));break;case d.db.LINETYPE.CRITICAL_END:Ce=ni.endLoop(),await Zf.drawLoop(_,Ce,"critical",En),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.BREAK_START:a5(be,Se,En.boxMargin,En.boxMargin+En.boxTextMargin,Ft=>ni.newLoop(Ft));break;case d.db.LINETYPE.BREAK_END:Ce=ni.endLoop(),await Zf.drawLoop(_,Ce,"break",En),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;default:try{Ke=Se.msgModel,Ke.starty=ni.getVerticalPos(),Ke.sequenceIndex=ne,Ke.sequenceVisible=d.db.showSequenceNumbers();const Ft=await hin(_,Ke);gin(Se,Ke,Ft,ge,A,P,R),de.push({messageModel:Ke,lineStartY:Ft}),ni.models.addMessage(Ke)}catch(Ft){Xe.error("error while drawing message",Ft)}}[d.db.LINETYPE.SOLID_OPEN,d.db.LINETYPE.DOTTED_OPEN,d.db.LINETYPE.SOLID,d.db.LINETYPE.DOTTED,d.db.LINETYPE.SOLID_CROSS,d.db.LINETYPE.DOTTED_CROSS,d.db.LINETYPE.SOLID_POINT,d.db.LINETYPE.DOTTED_POINT].includes(Se.type)&&(ne=ne+se),ge++}Xe.debug("createdActors",P),Xe.debug("destroyedActors",R),await Sve(_,A,j,!1);for(const Se of de)await fin(_,Se.messageModel,Se.lineStartY,d);En.mirrorActors&&await Sve(_,A,j,!0),X.forEach(Se=>Zf.drawBackgroundRect(_,Se)),zGe(_,A,j,En);for(const Se of ni.models.boxes)Se.height=ni.getVerticalPos()-Se.y,ni.insert(Se.x,Se.y,Se.x+Se.width,Se.height),Se.startx=Se.x,Se.starty=Se.y,Se.stopx=Se.startx+Se.width,Se.stopy=Se.starty+Se.height,Se.stroke="rgb(0,0,0, 0.5)",await Zf.drawBox(_,Se,En);ie&&ni.bumpVerticalPos(En.boxMargin);const W=VGe(_,A,j,T),{bounds:xe}=ni.getBounds();let U=xe.stopy-xe.starty;U{const b=eS(En);let y=v.actorKeys.reduce((A,P)=>A+=i[P].width+(i[P].margin||0),0);y-=2*En.boxTextMargin,v.wrap&&(v.name=Ao.wrapLabel(v.name,y-2*En.wrapPadding,b));const T=Ao.calculateTextDimensions(v.name,b);p=li.getMax(T.height,p);const _=li.getMax(y,T.width+2*En.wrapPadding);if(v.margin=En.boxTextMargin,y<_){const A=(_-y)/2;v.margin+=A}}),u.forEach(v=>v.textMaxHeight=p),li.getMax(d,En.height)}const win=async function(i,s,u){const d=s[i.from].x,p=s[i.to].x,v=i.wrap&&i.message;let b=Dv(i.message)?await HF(i.message,qt()):Ao.calculateTextDimensions(v?Ao.wrapLabel(i.message,En.width,XD(En)):i.message,XD(En));const y={width:v?En.width:li.getMax(En.width,b.width+2*En.noteMargin),height:0,startx:s[i.from].x,stopx:0,starty:0,stopy:0,message:i.message};return i.placement===u.db.PLACEMENT.RIGHTOF?(y.width=v?li.getMax(En.width,b.width):li.getMax(s[i.from].width/2+s[i.to].width/2,b.width+2*En.noteMargin),y.startx=d+(s[i.from].width+En.actorMargin)/2):i.placement===u.db.PLACEMENT.LEFTOF?(y.width=v?li.getMax(En.width,b.width+2*En.noteMargin):li.getMax(s[i.from].width/2+s[i.to].width/2,b.width+2*En.noteMargin),y.startx=d-y.width+(s[i.from].width-En.actorMargin)/2):i.to===i.from?(b=Ao.calculateTextDimensions(v?Ao.wrapLabel(i.message,li.getMax(En.width,s[i.from].width),XD(En)):i.message,XD(En)),y.width=v?li.getMax(En.width,s[i.from].width):li.getMax(s[i.from].width,En.width,b.width+2*En.noteMargin),y.startx=d+(s[i.from].width-y.width)/2):(y.width=Math.abs(d+s[i.from].width/2-(p+s[i.to].width/2))+En.actorMargin,y.startx=d2,P=K=>y?-K:K;i.from===i.to?_=T:(i.activate&&!A&&(_+=P(En.activationWidth/2-1)),[u.db.LINETYPE.SOLID_OPEN,u.db.LINETYPE.DOTTED_OPEN].includes(i.type)||(_+=P(3)));const R=[d,p,v,b],F=Math.abs(T-_);i.wrap&&i.message&&(i.message=Ao.wrapLabel(i.message,li.getMax(F+2*En.wrapPadding,En.width),eS(En)));const j=Ao.calculateTextDimensions(i.message,eS(En));return{width:li.getMax(i.wrap?0:j.width+2*En.wrapPadding,F+2*En.wrapPadding,En.width),height:0,startx:T,stopx:_,starty:0,stopy:0,message:i.message,type:i.type,wrap:i.wrap,fromBounds:Math.min.apply(null,R),toBounds:Math.max.apply(null,R)}},xin=async function(i,s,u,d){const p={},v=[];let b,y,T;for(const _ of i){switch(_.id=Ao.random({length:10}),_.type){case d.db.LINETYPE.LOOP_START:case d.db.LINETYPE.ALT_START:case d.db.LINETYPE.OPT_START:case d.db.LINETYPE.PAR_START:case d.db.LINETYPE.PAR_OVER_START:case d.db.LINETYPE.CRITICAL_START:case d.db.LINETYPE.BREAK_START:v.push({id:_.id,msg:_.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case d.db.LINETYPE.ALT_ELSE:case d.db.LINETYPE.PAR_AND:case d.db.LINETYPE.CRITICAL_OPTION:_.message&&(b=v.pop(),p[b.id]=b,p[_.id]=b,v.push(b));break;case d.db.LINETYPE.LOOP_END:case d.db.LINETYPE.ALT_END:case d.db.LINETYPE.OPT_END:case d.db.LINETYPE.PAR_END:case d.db.LINETYPE.CRITICAL_END:case d.db.LINETYPE.BREAK_END:b=v.pop(),p[b.id]=b;break;case d.db.LINETYPE.ACTIVE_START:{const P=s[_.from?_.from.actor:_.to.actor],R=bJ(_.from?_.from.actor:_.to.actor).length,F=P.x+P.width/2+(R-1)*En.activationWidth/2,j={startx:F,stopx:F+En.activationWidth,actor:_.from.actor,enabled:!0};ni.activations.push(j)}break;case d.db.LINETYPE.ACTIVE_END:{const P=ni.activations.map(R=>R.actor).lastIndexOf(_.from.actor);delete ni.activations.splice(P,1)[0]}break}_.placement!==void 0?(y=await win(_,s,d),_.noteModel=y,v.forEach(P=>{b=P,b.from=li.getMin(b.from,y.startx),b.to=li.getMax(b.to,y.startx+y.width),b.width=li.getMax(b.width,Math.abs(b.from-b.to))-En.labelBoxWidth})):(T=yin(_,s,d),_.msgModel=T,T.startx&&T.stopx&&v.length>0&&v.forEach(P=>{if(b=P,T.startx===T.stopx){const R=s[_.from],F=s[_.to];b.from=li.getMin(R.x-T.width/2,R.x-R.width/2,b.from),b.to=li.getMax(F.x+T.width/2,F.x+R.width/2,b.to),b.width=li.getMax(b.width,Math.abs(b.to-b.from))-En.labelBoxWidth}else b.from=li.getMin(T.startx,b.from),b.to=li.getMax(T.stopx,b.to),b.width=li.getMax(b.width,T.width)-En.labelBoxWidth}))}return ni.activations=[],Xe.debug("Loop type widths:",p),p},kin=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:yrn,db:FGe,renderer:{bounds:ni,drawActors:Sve,drawActorsPopup:VGe,setConf:UGe,draw:pin},styles:Urn,init:({wrap:i})=>{FGe.setWrap(i)}}},Symbol.toStringTag,{value:"Module"}));var _ve=function(){var i=function(ao,Tr,Fn,qn){for(Fn=Fn||{},qn=ao.length;qn--;Fn[ao[qn]]=Tr);return Fn},s=[1,17],u=[1,18],d=[1,19],p=[1,39],v=[1,40],b=[1,25],y=[1,23],T=[1,24],_=[1,31],A=[1,32],P=[1,33],R=[1,34],F=[1,35],j=[1,36],K=[1,26],ee=[1,27],ie=[1,28],oe=[1,29],pe=[1,43],be=[1,30],ae=[1,42],ne=[1,44],se=[1,41],de=[1,45],X=[1,9],ge=[1,8,9],W=[1,56],xe=[1,57],U=[1,58],Fe=[1,59],Pe=[1,60],je=[1,61],Ie=[1,62],Se=[1,8,9,39],Ce=[1,74],ke=[1,8,9,12,13,21,37,39,42,59,60,61,62,63,64,65,70,72],Ke=[1,8,9,12,13,19,21,37,39,42,46,59,60,61,62,63,64,65,70,72,74,80,95,97,98],Ft=[13,74,80,95,97,98],Ne=[13,64,65,74,80,95,97,98],gn=[13,59,60,61,62,63,74,80,95,97,98],_t=[1,93],Et=[1,110],Gt=[1,108],ln=[1,102],xt=[1,103],Pt=[1,104],Qe=[1,105],Dt=[1,106],kt=[1,107],On=[1,109],ht=[1,8,9,37,39,42],zr=[1,8,9,21],yt=[1,8,9,78],ji=[1,8,9,21,73,74,78,80,81,82,83,84,85],xi={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,styleStatement:27,cssClassStatement:28,noteStatement:29,direction:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,namespaceIdentifier:36,STRUCT_START:37,classStatements:38,STRUCT_STOP:39,NAMESPACE:40,classIdentifier:41,STYLE_SEPARATOR:42,members:43,CLASS:44,ANNOTATION_START:45,ANNOTATION_END:46,MEMBER:47,SEPARATOR:48,relation:49,NOTE_FOR:50,noteText:51,NOTE:52,direction_tb:53,direction_bt:54,direction_rl:55,direction_lr:56,relationType:57,lineType:58,AGGREGATION:59,EXTENSION:60,COMPOSITION:61,DEPENDENCY:62,LOLLIPOP:63,LINE:64,DOTTED_LINE:65,CALLBACK:66,LINK:67,LINK_TARGET:68,CLICK:69,CALLBACK_NAME:70,CALLBACK_ARGS:71,HREF:72,STYLE:73,ALPHA:74,stylesOpt:75,CSSCLASS:76,style:77,COMMA:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,commentToken:86,textToken:87,graphCodeTokens:88,textNoTagsToken:89,TAGSTART:90,TAGEND:91,"==":92,"--":93,DEFAULT:94,MINUS:95,keywords:96,UNICODE_TEXT:97,BQUOTE_STR:98,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",37:"STRUCT_START",39:"STRUCT_STOP",40:"NAMESPACE",42:"STYLE_SEPARATOR",44:"CLASS",45:"ANNOTATION_START",46:"ANNOTATION_END",47:"MEMBER",48:"SEPARATOR",50:"NOTE_FOR",52:"NOTE",53:"direction_tb",54:"direction_bt",55:"direction_rl",56:"direction_lr",59:"AGGREGATION",60:"EXTENSION",61:"COMPOSITION",62:"DEPENDENCY",63:"LOLLIPOP",64:"LINE",65:"DOTTED_LINE",66:"CALLBACK",67:"LINK",68:"LINK_TARGET",69:"CLICK",70:"CALLBACK_NAME",71:"CALLBACK_ARGS",72:"HREF",73:"STYLE",74:"ALPHA",76:"CSSCLASS",78:"COMMA",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",88:"graphCodeTokens",90:"TAGSTART",91:"TAGEND",92:"==",93:"--",94:"DEFAULT",95:"MINUS",96:"keywords",97:"UNICODE_TEXT",98:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[36,2],[38,1],[38,2],[38,3],[23,1],[23,3],[23,4],[23,6],[41,2],[41,3],[25,4],[43,1],[43,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[29,3],[29,2],[30,1],[30,1],[30,1],[30,1],[49,3],[49,2],[49,2],[49,1],[57,1],[57,1],[57,1],[57,1],[57,1],[58,1],[58,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[28,3],[75,1],[75,3],[77,1],[77,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[86,1],[86,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[89,1],[89,1],[89,1],[89,1],[16,1],[16,1],[16,1],[16,1],[18,1],[51,1]],performAction:function(Tr,Fn,qn,Un,At,wt,on){var fn=wt.length-1;switch(At){case 8:this.$=wt[fn-1];break;case 9:case 11:case 12:this.$=wt[fn];break;case 10:case 13:this.$=wt[fn-1]+wt[fn];break;case 14:case 15:this.$=wt[fn-1]+"~"+wt[fn]+"~";break;case 16:Un.addRelation(wt[fn]);break;case 17:wt[fn-1].title=Un.cleanupLabel(wt[fn]),Un.addRelation(wt[fn-1]);break;case 27:this.$=wt[fn].trim(),Un.setAccTitle(this.$);break;case 28:case 29:this.$=wt[fn].trim(),Un.setAccDescription(this.$);break;case 30:Un.addClassesToNamespace(wt[fn-3],wt[fn-1]);break;case 31:Un.addClassesToNamespace(wt[fn-4],wt[fn-1]);break;case 32:this.$=wt[fn],Un.addNamespace(wt[fn]);break;case 33:this.$=[wt[fn]];break;case 34:this.$=[wt[fn-1]];break;case 35:wt[fn].unshift(wt[fn-2]),this.$=wt[fn];break;case 37:Un.setCssClass(wt[fn-2],wt[fn]);break;case 38:Un.addMembers(wt[fn-3],wt[fn-1]);break;case 39:Un.setCssClass(wt[fn-5],wt[fn-3]),Un.addMembers(wt[fn-5],wt[fn-1]);break;case 40:this.$=wt[fn],Un.addClass(wt[fn]);break;case 41:this.$=wt[fn-1],Un.addClass(wt[fn-1]),Un.setClassLabel(wt[fn-1],wt[fn]);break;case 42:Un.addAnnotation(wt[fn],wt[fn-2]);break;case 43:this.$=[wt[fn]];break;case 44:wt[fn].push(wt[fn-1]),this.$=wt[fn];break;case 45:break;case 46:Un.addMember(wt[fn-1],Un.cleanupLabel(wt[fn]));break;case 47:break;case 48:break;case 49:this.$={id1:wt[fn-2],id2:wt[fn],relation:wt[fn-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:wt[fn-3],id2:wt[fn],relation:wt[fn-1],relationTitle1:wt[fn-2],relationTitle2:"none"};break;case 51:this.$={id1:wt[fn-3],id2:wt[fn],relation:wt[fn-2],relationTitle1:"none",relationTitle2:wt[fn-1]};break;case 52:this.$={id1:wt[fn-4],id2:wt[fn],relation:wt[fn-2],relationTitle1:wt[fn-3],relationTitle2:wt[fn-1]};break;case 53:Un.addNote(wt[fn],wt[fn-1]);break;case 54:Un.addNote(wt[fn]);break;case 55:Un.setDirection("TB");break;case 56:Un.setDirection("BT");break;case 57:Un.setDirection("RL");break;case 58:Un.setDirection("LR");break;case 59:this.$={type1:wt[fn-2],type2:wt[fn],lineType:wt[fn-1]};break;case 60:this.$={type1:"none",type2:wt[fn],lineType:wt[fn-1]};break;case 61:this.$={type1:wt[fn-1],type2:"none",lineType:wt[fn]};break;case 62:this.$={type1:"none",type2:"none",lineType:wt[fn]};break;case 63:this.$=Un.relationType.AGGREGATION;break;case 64:this.$=Un.relationType.EXTENSION;break;case 65:this.$=Un.relationType.COMPOSITION;break;case 66:this.$=Un.relationType.DEPENDENCY;break;case 67:this.$=Un.relationType.LOLLIPOP;break;case 68:this.$=Un.lineType.LINE;break;case 69:this.$=Un.lineType.DOTTED_LINE;break;case 70:case 76:this.$=wt[fn-2],Un.setClickEvent(wt[fn-1],wt[fn]);break;case 71:case 77:this.$=wt[fn-3],Un.setClickEvent(wt[fn-2],wt[fn-1]),Un.setTooltip(wt[fn-2],wt[fn]);break;case 72:this.$=wt[fn-2],Un.setLink(wt[fn-1],wt[fn]);break;case 73:this.$=wt[fn-3],Un.setLink(wt[fn-2],wt[fn-1],wt[fn]);break;case 74:this.$=wt[fn-3],Un.setLink(wt[fn-2],wt[fn-1]),Un.setTooltip(wt[fn-2],wt[fn]);break;case 75:this.$=wt[fn-4],Un.setLink(wt[fn-3],wt[fn-2],wt[fn]),Un.setTooltip(wt[fn-3],wt[fn-1]);break;case 78:this.$=wt[fn-3],Un.setClickEvent(wt[fn-2],wt[fn-1],wt[fn]);break;case 79:this.$=wt[fn-4],Un.setClickEvent(wt[fn-3],wt[fn-2],wt[fn-1]),Un.setTooltip(wt[fn-3],wt[fn]);break;case 80:this.$=wt[fn-3],Un.setLink(wt[fn-2],wt[fn]);break;case 81:this.$=wt[fn-4],Un.setLink(wt[fn-3],wt[fn-1],wt[fn]);break;case 82:this.$=wt[fn-4],Un.setLink(wt[fn-3],wt[fn-1]),Un.setTooltip(wt[fn-3],wt[fn]);break;case 83:this.$=wt[fn-5],Un.setLink(wt[fn-4],wt[fn-2],wt[fn]),Un.setTooltip(wt[fn-4],wt[fn-1]);break;case 84:this.$=wt[fn-2],Un.setCssStyle(wt[fn-1],wt[fn]);break;case 85:Un.setCssClass(wt[fn-1],wt[fn]);break;case 86:this.$=[wt[fn]];break;case 87:wt[fn-2].push(wt[fn]),this.$=wt[fn-2];break;case 89:this.$=wt[fn-1]+wt[fn];break}},table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:s,33:u,35:d,36:21,40:p,41:22,44:v,45:b,47:y,48:T,50:_,52:A,53:P,54:R,55:F,56:j,66:K,67:ee,69:ie,73:oe,74:pe,76:be,80:ae,95:ne,97:se,98:de},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},i(X,[2,5],{8:[1,46]}),{8:[1,47]},i(ge,[2,16],{21:[1,48]}),i(ge,[2,18]),i(ge,[2,19]),i(ge,[2,20]),i(ge,[2,21]),i(ge,[2,22]),i(ge,[2,23]),i(ge,[2,24]),i(ge,[2,25]),i(ge,[2,26]),{32:[1,49]},{34:[1,50]},i(ge,[2,29]),i(ge,[2,45],{49:51,57:54,58:55,13:[1,52],21:[1,53],59:W,60:xe,61:U,62:Fe,63:Pe,64:je,65:Ie}),{37:[1,63]},i(Se,[2,36],{37:[1,65],42:[1,64]}),i(ge,[2,47]),i(ge,[2,48]),{16:66,74:pe,80:ae,95:ne,97:se},{16:37,17:67,18:38,74:pe,80:ae,95:ne,97:se,98:de},{16:37,17:68,18:38,74:pe,80:ae,95:ne,97:se,98:de},{16:37,17:69,18:38,74:pe,80:ae,95:ne,97:se,98:de},{74:[1,70]},{13:[1,71]},{16:37,17:72,18:38,74:pe,80:ae,95:ne,97:se,98:de},{13:Ce,51:73},i(ge,[2,55]),i(ge,[2,56]),i(ge,[2,57]),i(ge,[2,58]),i(ke,[2,11],{16:37,18:38,17:75,19:[1,76],74:pe,80:ae,95:ne,97:se,98:de}),i(ke,[2,12],{19:[1,77]}),{15:78,16:79,74:pe,80:ae,95:ne,97:se},{16:37,17:80,18:38,74:pe,80:ae,95:ne,97:se,98:de},i(Ke,[2,112]),i(Ke,[2,113]),i(Ke,[2,114]),i(Ke,[2,115]),i([1,8,9,12,13,19,21,37,39,42,59,60,61,62,63,64,65,70,72],[2,116]),i(X,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,17:20,36:21,41:22,16:37,18:38,5:81,31:s,33:u,35:d,40:p,44:v,45:b,47:y,48:T,50:_,52:A,53:P,54:R,55:F,56:j,66:K,67:ee,69:ie,73:oe,74:pe,76:be,80:ae,95:ne,97:se,98:de}),{5:82,10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:s,33:u,35:d,36:21,40:p,41:22,44:v,45:b,47:y,48:T,50:_,52:A,53:P,54:R,55:F,56:j,66:K,67:ee,69:ie,73:oe,74:pe,76:be,80:ae,95:ne,97:se,98:de},i(ge,[2,17]),i(ge,[2,27]),i(ge,[2,28]),{13:[1,84],16:37,17:83,18:38,74:pe,80:ae,95:ne,97:se,98:de},{49:85,57:54,58:55,59:W,60:xe,61:U,62:Fe,63:Pe,64:je,65:Ie},i(ge,[2,46]),{58:86,64:je,65:Ie},i(Ft,[2,62],{57:87,59:W,60:xe,61:U,62:Fe,63:Pe}),i(Ne,[2,63]),i(Ne,[2,64]),i(Ne,[2,65]),i(Ne,[2,66]),i(Ne,[2,67]),i(gn,[2,68]),i(gn,[2,69]),{8:[1,89],23:90,38:88,41:22,44:v},{16:91,74:pe,80:ae,95:ne,97:se},{43:92,47:_t},{46:[1,94]},{13:[1,95]},{13:[1,96]},{70:[1,97],72:[1,98]},{21:Et,73:Gt,74:ln,75:99,77:100,79:101,80:xt,81:Pt,82:Qe,83:Dt,84:kt,85:On},{74:[1,111]},{13:Ce,51:112},i(ge,[2,54]),i(ge,[2,117]),i(ke,[2,13]),i(ke,[2,14]),i(ke,[2,15]),{37:[2,32]},{15:113,16:79,37:[2,9],74:pe,80:ae,95:ne,97:se},i(ht,[2,40],{11:114,12:[1,115]}),i(X,[2,7]),{9:[1,116]},i(zr,[2,49]),{16:37,17:117,18:38,74:pe,80:ae,95:ne,97:se,98:de},{13:[1,119],16:37,17:118,18:38,74:pe,80:ae,95:ne,97:se,98:de},i(Ft,[2,61],{57:120,59:W,60:xe,61:U,62:Fe,63:Pe}),i(Ft,[2,60]),{39:[1,121]},{23:90,38:122,41:22,44:v},{8:[1,123],39:[2,33]},i(Se,[2,37],{37:[1,124]}),{39:[1,125]},{39:[2,43],43:126,47:_t},{16:37,17:127,18:38,74:pe,80:ae,95:ne,97:se,98:de},i(ge,[2,70],{13:[1,128]}),i(ge,[2,72],{13:[1,130],68:[1,129]}),i(ge,[2,76],{13:[1,131],71:[1,132]}),{13:[1,133]},i(ge,[2,84],{78:[1,134]}),i(yt,[2,86],{79:135,21:Et,73:Gt,74:ln,80:xt,81:Pt,82:Qe,83:Dt,84:kt,85:On}),i(ji,[2,88]),i(ji,[2,90]),i(ji,[2,91]),i(ji,[2,92]),i(ji,[2,93]),i(ji,[2,94]),i(ji,[2,95]),i(ji,[2,96]),i(ji,[2,97]),i(ji,[2,98]),i(ge,[2,85]),i(ge,[2,53]),{37:[2,10]},i(ht,[2,41]),{13:[1,136]},{1:[2,4]},i(zr,[2,51]),i(zr,[2,50]),{16:37,17:137,18:38,74:pe,80:ae,95:ne,97:se,98:de},i(Ft,[2,59]),i(ge,[2,30]),{39:[1,138]},{23:90,38:139,39:[2,34],41:22,44:v},{43:140,47:_t},i(Se,[2,38]),{39:[2,44]},i(ge,[2,42]),i(ge,[2,71]),i(ge,[2,73]),i(ge,[2,74],{68:[1,141]}),i(ge,[2,77]),i(ge,[2,78],{13:[1,142]}),i(ge,[2,80],{13:[1,144],68:[1,143]}),{21:Et,73:Gt,74:ln,77:145,79:101,80:xt,81:Pt,82:Qe,83:Dt,84:kt,85:On},i(ji,[2,89]),{14:[1,146]},i(zr,[2,52]),i(ge,[2,31]),{39:[2,35]},{39:[1,147]},i(ge,[2,75]),i(ge,[2,79]),i(ge,[2,81]),i(ge,[2,82],{68:[1,148]}),i(yt,[2,87],{79:135,21:Et,73:Gt,74:ln,80:xt,81:Pt,82:Qe,83:Dt,84:kt,85:On}),i(ht,[2,8]),i(Se,[2,39]),i(ge,[2,83])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],78:[2,32],113:[2,10],116:[2,4],126:[2,44],139:[2,35]},parseError:function(Tr,Fn){if(Fn.recoverable)this.trace(Tr);else{var qn=new Error(Tr);throw qn.hash=Fn,qn}},parse:function(Tr){var Fn=this,qn=[0],Un=[],At=[null],wt=[],on=this.table,fn="",An=0,oo=0,jo=2,$o=1,Pa=wt.slice.call(arguments,1),wo=Object.create(this.lexer),_s={yy:{}};for(var tl in this.yy)Object.prototype.hasOwnProperty.call(this.yy,tl)&&(_s.yy[tl]=this.yy[tl]);wo.setInput(Tr,_s.yy),_s.yy.lexer=wo,_s.yy.parser=this,typeof wo.yylloc>"u"&&(wo.yylloc={});var da=wo.yylloc;wt.push(da);var j0=wo.options&&wo.options.ranges;typeof _s.yy.parseError=="function"?this.parseError=_s.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pm(){var ga;return ga=Un.pop()||wo.lex()||$o,typeof ga!="number"&&(ga instanceof Array&&(Un=ga,ga=Un.pop()),ga=Fn.symbols_[ga]||ga),ga}for(var Ml,Xc,Bc,ja,Ou={},Sa,Po,Fc,xa;;){if(Xc=qn[qn.length-1],this.defaultActions[Xc]?Bc=this.defaultActions[Xc]:((Ml===null||typeof Ml>"u")&&(Ml=pm()),Bc=on[Xc]&&on[Xc][Ml]),typeof Bc>"u"||!Bc.length||!Bc[0]){var Ba="";xa=[];for(Sa in on[Xc])this.terminals_[Sa]&&Sa>jo&&xa.push("'"+this.terminals_[Sa]+"'");wo.showPosition?Ba="Parse error on line "+(An+1)+`: +`,ZC=18*2,RGe="actor-top",jGe="actor-bottom",Eve=function(i,s){return AQ(i,s)},Grn=function(i,s,u,d,p){if(s.links===void 0||s.links===null||Object.keys(s.links).length===0)return{height:0,width:0};const v=s.links,b=s.actorCnt,y=s.rectData;var T="none";p&&(T="block !important");const _=i.append("g");_.attr("id","actor"+b+"_popup"),_.attr("class","actorPopupMenu"),_.attr("display",T);var A="";y.class!==void 0&&(A=" "+y.class);let P=y.width>u?y.width:u;const R=_.append("rect");if(R.attr("class","actorPopupMenuPanel"+A),R.attr("x",y.x),R.attr("y",y.height),R.attr("fill",y.fill),R.attr("stroke",y.stroke),R.attr("width",P),R.attr("height",y.height),R.attr("rx",y.rx),R.attr("ry",y.ry),v!=null){var F=20;for(let ee in v){var j=_.append("a"),K=p9.sanitizeUrl(v[ee]);j.attr("xlink:href",K),j.attr("target","_blank"),uin(d)(ee,j,y.x+10,y.height+F,P,20,{class:"actor"},d),F+=30}}return R.attr("height",F),{height:y.height+F,width:P}},Krn=function(i){return"var pu = document.getElementById('"+i+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},pJ=async function(i,s,u=null){let d=i.append("foreignObject");const p=await CC(s.text,Vh()),b=d.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(p).node().getBoundingClientRect();if(d.attr("height",Math.round(b.height)).attr("width",Math.round(b.width)),s.class==="noteText"){const y=i.node().firstChild;y.setAttribute("height",b.height+2*s.textMargin);const T=y.getBBox();d.attr("x",Math.round(T.x+T.width/2-b.width/2)).attr("y",Math.round(T.y+T.height/2-b.height/2))}else if(u){let{startx:y,stopx:T,starty:_}=u;if(y>T){const A=y;y=T,T=A}d.attr("x",Math.round(y+Math.abs(y-T)/2-b.width/2)),s.class==="loopText"?d.attr("y",Math.round(_)):d.attr("y",Math.round(_-b.height))}return[d]},YD=function(i,s){let u=0,d=0;const p=s.text.split(ci.lineBreakRegex),[v,b]=NC(s.fontSize);let y=[],T=0,_=()=>s.y;if(s.valign!==void 0&&s.textMargin!==void 0&&s.textMargin>0)switch(s.valign){case"top":case"start":_=()=>Math.round(s.y+s.textMargin);break;case"middle":case"center":_=()=>Math.round(s.y+(u+d+s.textMargin)/2);break;case"bottom":case"end":_=()=>Math.round(s.y+(u+d+2*s.textMargin)-s.textMargin);break}if(s.anchor!==void 0&&s.textMargin!==void 0&&s.width!==void 0)switch(s.anchor){case"left":case"start":s.x=Math.round(s.x+s.textMargin),s.anchor="start",s.dominantBaseline="middle",s.alignmentBaseline="middle";break;case"middle":case"center":s.x=Math.round(s.x+s.width/2),s.anchor="middle",s.dominantBaseline="middle",s.alignmentBaseline="middle";break;case"right":case"end":s.x=Math.round(s.x+s.width-s.textMargin),s.anchor="end",s.dominantBaseline="middle",s.alignmentBaseline="middle";break}for(let[A,P]of p.entries()){s.textMargin!==void 0&&s.textMargin===0&&v!==void 0&&(T=A*v);const R=i.append("text");R.attr("x",s.x),R.attr("y",_()),s.anchor!==void 0&&R.attr("text-anchor",s.anchor).attr("dominant-baseline",s.dominantBaseline).attr("alignment-baseline",s.alignmentBaseline),s.fontFamily!==void 0&&R.style("font-family",s.fontFamily),b!==void 0&&R.style("font-size",b),s.fontWeight!==void 0&&R.style("font-weight",s.fontWeight),s.fill!==void 0&&R.attr("fill",s.fill),s.class!==void 0&&R.attr("class",s.class),s.dy!==void 0?R.attr("dy",s.dy):T!==0&&R.attr("dy",T);const F=P||hje;if(s.tspan){const j=R.append("tspan");j.attr("x",s.x),s.fill!==void 0&&j.attr("fill",s.fill),j.text(F)}else R.text(F);s.valign!==void 0&&s.textMargin!==void 0&&s.textMargin>0&&(d+=(R._groups||R)[0][0].getBBox().height,u=d),y.push(R)}return y},$Ge=function(i,s){function u(p,v,b,y,T){return p+","+v+" "+(p+b)+","+v+" "+(p+b)+","+(v+y-T)+" "+(p+b-T*1.2)+","+(v+y)+" "+p+","+(v+y)}const d=i.append("polygon");return d.attr("points",u(s.x,s.y,s.width,s.height,7)),d.attr("class","labelBox"),s.y=s.y+s.height/2,YD(i,s),d};let s5=-1;const zGe=(i,s,u,d)=>{i.select&&u.forEach(p=>{const v=s[p],b=i.select("#actor"+v.actorCnt);!d.mirrorActors&&v.stopy?b.attr("y2",v.stopy+v.height/2):d.mirrorActors&&b.attr("y2",v.stopy)})},Wrn=async function(i,s,u,d){const p=d?s.stopy:s.starty,v=s.x+s.width/2,b=p+5,y=i.append("g").lower();var T=y;d||(s5++,Object.keys(s.links||{}).length&&!u.forceMenus&&T.attr("onclick",Krn(`actor${s5}_popup`)).attr("cursor","pointer"),T.append("line").attr("id","actor"+s5).attr("x1",v).attr("y1",b).attr("x2",v).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),T=y.append("g"),s.actorCnt=s5,s.links!=null&&T.attr("id","root-"+s5));const _=qC();var A="actor";s.properties!=null&&s.properties.class?A=s.properties.class:_.fill="#eaeaea",d?A+=` ${jGe}`:A+=` ${RGe}`,_.x=s.x,_.y=p,_.width=s.width,_.height=s.height,_.class=A,_.rx=3,_.ry=3,_.name=s.name;const P=Eve(T,_);if(s.rectData=_,s.properties!=null&&s.properties.icon){const F=s.properties.icon.trim();F.charAt(0)==="@"?rUt(T,_.x+_.width-20,_.y+10,F.substr(1)):nUt(T,_.x+_.width-20,_.y+10,F)}await Tve(u,Dv(s.description))(s.description,T,_.x,_.y,_.width,_.height,{class:"actor"},u);let R=s.height;if(P.node){const F=P.node().getBBox();s.height=F.height,R=F.height}return R},Yrn=async function(i,s,u,d){const p=d?s.stopy:s.starty,v=s.x+s.width/2,b=p+80;i.lower(),d||(s5++,i.append("line").attr("id","actor"+s5).attr("x1",v).attr("y1",b).attr("x2",v).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),s.actorCnt=s5);const y=i.append("g");let T="actor-man";d?T+=` ${jGe}`:T+=` ${RGe}`,y.attr("class",T),y.attr("name",s.name);const _=qC();_.x=s.x,_.y=p,_.fill="#eaeaea",_.width=s.width,_.height=s.height,_.class="actor",_.rx=3,_.ry=3,y.append("line").attr("id","actor-man-torso"+s5).attr("x1",v).attr("y1",p+25).attr("x2",v).attr("y2",p+45),y.append("line").attr("id","actor-man-arms"+s5).attr("x1",v-ZC/2).attr("y1",p+33).attr("x2",v+ZC/2).attr("y2",p+33),y.append("line").attr("x1",v-ZC/2).attr("y1",p+60).attr("x2",v).attr("y2",p+45),y.append("line").attr("x1",v).attr("y1",p+45).attr("x2",v+ZC/2-2).attr("y2",p+60);const A=y.append("circle");A.attr("cx",s.x+s.width/2),A.attr("cy",p+10),A.attr("r",15),A.attr("width",s.width),A.attr("height",s.height);const P=y.node().getBBox();return s.height=P.height,await Tve(u,Dv(s.description))(s.description,y,_.x,_.y+35,_.width,_.height,{class:"actor"},u),s.height},Xrn=async function(i,s,u,d){switch(s.type){case"actor":return await Yrn(i,s,u,d);case"participant":return await Wrn(i,s,u,d)}},Qrn=async function(i,s,u){const p=i.append("g");qGe(p,s),s.name&&await Tve(u)(s.name,p,s.x,s.y+(s.textMaxHeight||0)/2,s.width,0,{class:"text"},u),p.lower()},Jrn=function(i){return i.append("g")},Zrn=function(i,s,u,d,p){const v=qC(),b=s.anchored;v.x=s.startx,v.y=s.starty,v.class="activation"+p%3,v.width=s.stopx-s.startx,v.height=u-s.starty,Eve(b,v)},ein=async function(i,s,u,d){const{boxMargin:p,boxTextMargin:v,labelBoxHeight:b,labelBoxWidth:y,messageFontFamily:T,messageFontSize:_,messageFontWeight:A}=d,P=i.append("g"),R=function(K,ee,ie,oe){return P.append("line").attr("x1",K).attr("y1",ee).attr("x2",ie).attr("y2",oe).attr("class","loopLine")};R(s.startx,s.starty,s.stopx,s.starty),R(s.stopx,s.starty,s.stopx,s.stopy),R(s.startx,s.stopy,s.stopx,s.stopy),R(s.startx,s.starty,s.startx,s.stopy),s.sections!==void 0&&s.sections.forEach(function(K){R(s.startx,K.y,s.stopx,K.y).style("stroke-dasharray","3, 3")});let F=zbe();F.text=u,F.x=s.startx,F.y=s.starty,F.fontFamily=T,F.fontSize=_,F.fontWeight=A,F.anchor="middle",F.valign="middle",F.tspan=!1,F.width=y||50,F.height=b||20,F.textMargin=v,F.class="labelText",$Ge(P,F),F=HGe(),F.text=s.title,F.x=s.startx+y/2+(s.stopx-s.startx)/2,F.y=s.starty+p+v,F.anchor="middle",F.valign="middle",F.textMargin=v,F.class="loopText",F.fontFamily=T,F.fontSize=_,F.fontWeight=A,F.wrap=!0;let j=Dv(F.text)?await pJ(P,F,s):YD(P,F);if(s.sectionTitles!==void 0){for(const[K,ee]of Object.entries(s.sectionTitles))if(ee.message){F.text=ee.message,F.x=s.startx+(s.stopx-s.startx)/2,F.y=s.sections[K].y+p+v,F.class="loopText",F.anchor="middle",F.valign="middle",F.tspan=!1,F.fontFamily=T,F.fontSize=_,F.fontWeight=A,F.wrap=s.wrap,Dv(F.text)?(s.starty=s.sections[K].y,await pJ(P,F,s)):YD(P,F);let ie=Math.round(j.map(oe=>(oe._groups||oe)[0][0].getBBox().height).reduce((oe,pe)=>oe+pe));s.sections[K].height+=ie-(p+v)}}return s.height=Math.round(s.stopy-s.starty),P},qGe=function(i,s){Tqe(i,s)},tin=function(i){i.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},nin=function(i){i.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},rin=function(i){i.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},iin=function(i){i.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},sin=function(i){i.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},ain=function(i){i.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},oin=function(i){i.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},HGe=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},cin=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},Tve=function(){function i(v,b,y,T,_,A,P){const R=b.append("text").attr("x",y+_/2).attr("y",T+A/2+5).style("text-anchor","middle").text(v);p(R,P)}function s(v,b,y,T,_,A,P,R){const{actorFontSize:F,actorFontFamily:j,actorFontWeight:K}=R,[ee,ie]=NC(F),oe=v.split(ci.lineBreakRegex);for(let pe=0;pei.height||0))+(this.loops.length===0?0:this.loops.map(i=>i.height||0).reduce((i,s)=>i+s))+(this.messages.length===0?0:this.messages.map(i=>i.height||0).reduce((i,s)=>i+s))+(this.notes.length===0?0:this.notes.map(i=>i.height||0).reduce((i,s)=>i+s))},clear:function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},addBox:function(i){this.boxes.push(i)},addActor:function(i){this.actors.push(i)},addLoop:function(i){this.loops.push(i)},addMessage:function(i){this.messages.push(i)},addNote:function(i){this.notes.push(i)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],boxes:[],loops:[],messages:[],notes:[]},init:function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,UGe(qt())},updateVal:function(i,s,u,d){i[s]===void 0?i[s]=u:i[s]=d(u,i[s])},updateBounds:function(i,s,u,d){const p=this;let v=0;function b(y){return function(_){v++;const A=p.sequenceItems.length-v+1;p.updateVal(_,"starty",s-A*En.boxMargin,Math.min),p.updateVal(_,"stopy",d+A*En.boxMargin,Math.max),p.updateVal(ni.data,"startx",i-A*En.boxMargin,Math.min),p.updateVal(ni.data,"stopx",u+A*En.boxMargin,Math.max),y!=="activation"&&(p.updateVal(_,"startx",i-A*En.boxMargin,Math.min),p.updateVal(_,"stopx",u+A*En.boxMargin,Math.max),p.updateVal(ni.data,"starty",s-A*En.boxMargin,Math.min),p.updateVal(ni.data,"stopy",d+A*En.boxMargin,Math.max))}}this.sequenceItems.forEach(b()),this.activations.forEach(b("activation"))},insert:function(i,s,u,d){const p=ci.getMin(i,u),v=ci.getMax(i,u),b=ci.getMin(s,d),y=ci.getMax(s,d);this.updateVal(ni.data,"startx",p,Math.min),this.updateVal(ni.data,"starty",b,Math.min),this.updateVal(ni.data,"stopx",v,Math.max),this.updateVal(ni.data,"stopy",y,Math.max),this.updateBounds(p,b,v,y)},newActivation:function(i,s,u){const d=u[i.from.actor],p=bJ(i.from.actor).length||0,v=d.x+d.width/2+(p-1)*En.activationWidth/2;this.activations.push({startx:v,starty:this.verticalPos+2,stopx:v+En.activationWidth,stopy:void 0,actor:i.from.actor,anchored:Zf.anchorElement(s)})},endActivation:function(i){const s=this.activations.map(function(u){return u.actor}).lastIndexOf(i.from.actor);return this.activations.splice(s,1)[0]},createLoop:function(i={message:void 0,wrap:!1,width:void 0},s){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:i.message,wrap:i.wrap,width:i.width,height:0,fill:s}},newLoop:function(i={message:void 0,wrap:!1,width:void 0},s){this.sequenceItems.push(this.createLoop(i,s))},endLoop:function(){return this.sequenceItems.pop()},isLoopOverlap:function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},addSectionToLoop:function(i){const s=this.sequenceItems.pop();s.sections=s.sections||[],s.sectionTitles=s.sectionTitles||[],s.sections.push({y:ni.getVerticalPos(),height:0}),s.sectionTitles.push(i),this.sequenceItems.push(s)},saveVerticalPos:function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},resetVerticalPos:function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},bumpVerticalPos:function(i){this.verticalPos=this.verticalPos+i,this.data.stopy=ci.getMax(this.data.stopy,this.verticalPos)},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},lin=async function(i,s){ni.bumpVerticalPos(En.boxMargin),s.height=En.boxMargin,s.starty=ni.getVerticalPos();const u=qC();u.x=s.startx,u.y=s.starty,u.width=s.width||En.width,u.class="note";const d=i.append("g"),p=Zf.drawRect(d,u),v=zbe();v.x=s.startx,v.y=s.starty,v.width=u.width,v.dy="1em",v.text=s.message,v.class="noteText",v.fontFamily=En.noteFontFamily,v.fontSize=En.noteFontSize,v.fontWeight=En.noteFontWeight,v.anchor=En.noteAlign,v.textMargin=En.noteMargin,v.valign="center";const b=Dv(v.text)?await pJ(d,v):YD(d,v),y=Math.round(b.map(T=>(T._groups||T)[0][0].getBBox().height).reduce((T,_)=>T+_));p.attr("height",y+2*En.noteMargin),s.height+=y+2*En.noteMargin,ni.bumpVerticalPos(y+2*En.noteMargin),s.stopy=s.starty+y+2*En.noteMargin,s.stopx=s.startx+u.width,ni.insert(s.startx,s.starty,s.stopx,s.stopy),ni.models.addNote(s)},eS=i=>({fontFamily:i.messageFontFamily,fontSize:i.messageFontSize,fontWeight:i.messageFontWeight}),XD=i=>({fontFamily:i.noteFontFamily,fontSize:i.noteFontSize,fontWeight:i.noteFontWeight}),Cve=i=>({fontFamily:i.actorFontFamily,fontSize:i.actorFontSize,fontWeight:i.actorFontWeight});async function hin(i,s){ni.bumpVerticalPos(10);const{startx:u,stopx:d,message:p}=s,v=ci.splitBreaks(p).length,b=Dv(p),y=b?await HF(p,qt()):Ao.calculateTextDimensions(p,eS(En));if(!b){const P=y.height/v;s.height+=P,ni.bumpVerticalPos(P)}let T,_=y.height-10;const A=y.width;if(u===d){T=ni.getVerticalPos()+_,En.rightAngles||(_+=En.boxMargin,T=ni.getVerticalPos()+_),_+=30;const P=ci.getMax(A/2,En.width/2);ni.insert(u-P,ni.getVerticalPos()-10+_,d+P,ni.getVerticalPos()+30+_)}else _+=En.boxMargin,T=ni.getVerticalPos()+_,ni.insert(u,T-10,d,T);return ni.bumpVerticalPos(_),s.height+=_,s.stopy=s.starty+s.height,ni.insert(s.fromBounds,s.starty,s.toBounds,s.stopy),T}const fin=async function(i,s,u,d){const{startx:p,stopx:v,starty:b,message:y,type:T,sequenceIndex:_,sequenceVisible:A}=s,P=Ao.calculateTextDimensions(y,eS(En)),R=zbe();R.x=p,R.y=b+10,R.width=v-p,R.class="messageText",R.dy="1em",R.text=y,R.fontFamily=En.messageFontFamily,R.fontSize=En.messageFontSize,R.fontWeight=En.messageFontWeight,R.anchor=En.messageAlign,R.valign="center",R.textMargin=En.wrapPadding,R.tspan=!1,Dv(R.text)?await pJ(i,R,{startx:p,stopx:v,starty:u}):YD(i,R);const F=P.width;let j;p===v?En.rightAngles?j=i.append("path").attr("d",`M ${p},${u} H ${p+ci.getMax(En.width/2,F/2)} V ${u+25} H ${p}`):j=i.append("path").attr("d","M "+p+","+u+" C "+(p+60)+","+(u-10)+" "+(p+60)+","+(u+30)+" "+p+","+(u+20)):(j=i.append("line"),j.attr("x1",p),j.attr("y1",u),j.attr("x2",v),j.attr("y2",u)),T===d.db.LINETYPE.DOTTED||T===d.db.LINETYPE.DOTTED_CROSS||T===d.db.LINETYPE.DOTTED_POINT||T===d.db.LINETYPE.DOTTED_OPEN?(j.style("stroke-dasharray","3, 3"),j.attr("class","messageLine1")):j.attr("class","messageLine0");let K="";En.arrowMarkerAbsolute&&(K=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,K=K.replace(/\(/g,"\\("),K=K.replace(/\)/g,"\\)")),j.attr("stroke-width",2),j.attr("stroke","none"),j.style("fill","none"),(T===d.db.LINETYPE.SOLID||T===d.db.LINETYPE.DOTTED)&&j.attr("marker-end","url("+K+"#arrowhead)"),(T===d.db.LINETYPE.SOLID_POINT||T===d.db.LINETYPE.DOTTED_POINT)&&j.attr("marker-end","url("+K+"#filled-head)"),(T===d.db.LINETYPE.SOLID_CROSS||T===d.db.LINETYPE.DOTTED_CROSS)&&j.attr("marker-end","url("+K+"#crosshead)"),(A||En.showSequenceNumbers)&&(j.attr("marker-start","url("+K+"#sequencenumber)"),i.append("text").attr("x",p).attr("y",u+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(_))},din=async function(i,s,u,d,p,v,b){let y=0,T=0,_,A=0;for(const P of d){const R=s[P],F=R.box;_&&_!=F&&(b||ni.models.addBox(_),T+=En.boxMargin+_.margin),F&&F!=_&&(b||(F.x=y+T,F.y=p),T+=F.margin),R.width=R.width||En.width,R.height=ci.getMax(R.height||En.height,En.height),R.margin=R.margin||En.actorMargin,A=ci.getMax(A,R.height),u[R.name]&&(T+=R.width/2),R.x=y+T,R.starty=ni.getVerticalPos(),ni.insert(R.x,p,R.x+R.width,R.height),y+=R.width+T,R.box&&(R.box.width=y+F.margin-R.box.x),T=R.margin,_=R.box,ni.models.addActor(R)}_&&!b&&ni.models.addBox(_),ni.bumpVerticalPos(A)},Sve=async function(i,s,u,d){if(d){let p=0;ni.bumpVerticalPos(En.boxMargin*2);for(const v of u){const b=s[v];b.stopy||(b.stopy=ni.getVerticalPos());const y=await Zf.drawActor(i,b,En,!0);p=ci.getMax(p,y)}ni.bumpVerticalPos(p+En.boxMargin)}else for(const p of u){const v=s[p];await Zf.drawActor(i,v,En,!1)}},VGe=function(i,s,u,d){let p=0,v=0;for(const b of u){const y=s[b],T=min(y),_=Zf.drawPopup(i,y,T,En,En.forceMenus,d);_.height>p&&(p=_.height),_.width+y.x>v&&(v=_.width+y.x)}return{maxHeight:p,maxWidth:v}},UGe=function(i){id(En,i),i.fontFamily&&(En.actorFontFamily=En.noteFontFamily=En.messageFontFamily=i.fontFamily),i.fontSize&&(En.actorFontSize=En.noteFontSize=En.messageFontSize=i.fontSize),i.fontWeight&&(En.actorFontWeight=En.noteFontWeight=En.messageFontWeight=i.fontWeight)},bJ=function(i){return ni.activations.filter(function(s){return s.actor===i})},GGe=function(i,s){const u=s[i],d=bJ(i),p=d.reduce(function(b,y){return ci.getMin(b,y.startx)},u.x+u.width/2-1),v=d.reduce(function(b,y){return ci.getMax(b,y.stopx)},u.x+u.width/2+1);return[p,v]};function a5(i,s,u,d,p){ni.bumpVerticalPos(u);let v=d;if(s.id&&s.message&&i[s.id]){const b=i[s.id].width,y=eS(En);s.message=Ao.wrapLabel(`[${s.message}]`,b-2*En.wrapPadding,y),s.width=b,s.wrap=!0;const T=Ao.calculateTextDimensions(s.message,y),_=ci.getMax(T.height,En.labelBoxHeight);v=d+_,Xe.debug(`${_} - ${s.message}`)}p(s),ni.bumpVerticalPos(v)}function gin(i,s,u,d,p,v,b){function y(_,A){_.x{Se.add(Ce.from),Se.add(Ce.to)}),j=j.filter(Ce=>Se.has(Ce))}await din(_,A,P,j,0,K,!1);const be=await xin(K,A,pe,d);Zf.insertArrowHead(_),Zf.insertArrowCrossHead(_),Zf.insertArrowFilledHead(_),Zf.insertSequenceNumber(_);function ae(Se,Ce){const ke=ni.endActivation(Se);ke.starty+18>Ce&&(ke.starty=Ce-6,Ce+=12),Zf.drawActivation(_,ke,Ce,En,bJ(Se.from.actor).length),ni.insert(ke.startx,Ce-10,ke.stopx,Ce)}let ne=1,se=1;const de=[],X=[];let ge=0;for(const Se of K){let Ce,ke,Ke;switch(Se.type){case d.db.LINETYPE.NOTE:ni.resetVerticalPos(),ke=Se.noteModel,await lin(_,ke);break;case d.db.LINETYPE.ACTIVE_START:ni.newActivation(Se,_,A);break;case d.db.LINETYPE.ACTIVE_END:ae(Se,ni.getVerticalPos());break;case d.db.LINETYPE.LOOP_START:a5(be,Se,En.boxMargin,En.boxMargin+En.boxTextMargin,Ft=>ni.newLoop(Ft));break;case d.db.LINETYPE.LOOP_END:Ce=ni.endLoop(),await Zf.drawLoop(_,Ce,"loop",En),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.RECT_START:a5(be,Se,En.boxMargin,En.boxMargin,Ft=>ni.newLoop(void 0,Ft.message));break;case d.db.LINETYPE.RECT_END:Ce=ni.endLoop(),X.push(Ce),ni.models.addLoop(Ce),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos());break;case d.db.LINETYPE.OPT_START:a5(be,Se,En.boxMargin,En.boxMargin+En.boxTextMargin,Ft=>ni.newLoop(Ft));break;case d.db.LINETYPE.OPT_END:Ce=ni.endLoop(),await Zf.drawLoop(_,Ce,"opt",En),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.ALT_START:a5(be,Se,En.boxMargin,En.boxMargin+En.boxTextMargin,Ft=>ni.newLoop(Ft));break;case d.db.LINETYPE.ALT_ELSE:a5(be,Se,En.boxMargin+En.boxTextMargin,En.boxMargin,Ft=>ni.addSectionToLoop(Ft));break;case d.db.LINETYPE.ALT_END:Ce=ni.endLoop(),await Zf.drawLoop(_,Ce,"alt",En),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.PAR_START:case d.db.LINETYPE.PAR_OVER_START:a5(be,Se,En.boxMargin,En.boxMargin+En.boxTextMargin,Ft=>ni.newLoop(Ft)),ni.saveVerticalPos();break;case d.db.LINETYPE.PAR_AND:a5(be,Se,En.boxMargin+En.boxTextMargin,En.boxMargin,Ft=>ni.addSectionToLoop(Ft));break;case d.db.LINETYPE.PAR_END:Ce=ni.endLoop(),await Zf.drawLoop(_,Ce,"par",En),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.AUTONUMBER:ne=Se.message.start||ne,se=Se.message.step||se,Se.message.visible?d.db.enableSequenceNumbers():d.db.disableSequenceNumbers();break;case d.db.LINETYPE.CRITICAL_START:a5(be,Se,En.boxMargin,En.boxMargin+En.boxTextMargin,Ft=>ni.newLoop(Ft));break;case d.db.LINETYPE.CRITICAL_OPTION:a5(be,Se,En.boxMargin+En.boxTextMargin,En.boxMargin,Ft=>ni.addSectionToLoop(Ft));break;case d.db.LINETYPE.CRITICAL_END:Ce=ni.endLoop(),await Zf.drawLoop(_,Ce,"critical",En),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;case d.db.LINETYPE.BREAK_START:a5(be,Se,En.boxMargin,En.boxMargin+En.boxTextMargin,Ft=>ni.newLoop(Ft));break;case d.db.LINETYPE.BREAK_END:Ce=ni.endLoop(),await Zf.drawLoop(_,Ce,"break",En),ni.bumpVerticalPos(Ce.stopy-ni.getVerticalPos()),ni.models.addLoop(Ce);break;default:try{Ke=Se.msgModel,Ke.starty=ni.getVerticalPos(),Ke.sequenceIndex=ne,Ke.sequenceVisible=d.db.showSequenceNumbers();const Ft=await hin(_,Ke);gin(Se,Ke,Ft,ge,A,P,R),de.push({messageModel:Ke,lineStartY:Ft}),ni.models.addMessage(Ke)}catch(Ft){Xe.error("error while drawing message",Ft)}}[d.db.LINETYPE.SOLID_OPEN,d.db.LINETYPE.DOTTED_OPEN,d.db.LINETYPE.SOLID,d.db.LINETYPE.DOTTED,d.db.LINETYPE.SOLID_CROSS,d.db.LINETYPE.DOTTED_CROSS,d.db.LINETYPE.SOLID_POINT,d.db.LINETYPE.DOTTED_POINT].includes(Se.type)&&(ne=ne+se),ge++}Xe.debug("createdActors",P),Xe.debug("destroyedActors",R),await Sve(_,A,j,!1);for(const Se of de)await fin(_,Se.messageModel,Se.lineStartY,d);En.mirrorActors&&await Sve(_,A,j,!0),X.forEach(Se=>Zf.drawBackgroundRect(_,Se)),zGe(_,A,j,En);for(const Se of ni.models.boxes)Se.height=ni.getVerticalPos()-Se.y,ni.insert(Se.x,Se.y,Se.x+Se.width,Se.height),Se.startx=Se.x,Se.starty=Se.y,Se.stopx=Se.startx+Se.width,Se.stopy=Se.starty+Se.height,Se.stroke="rgb(0,0,0, 0.5)",await Zf.drawBox(_,Se,En);ie&&ni.bumpVerticalPos(En.boxMargin);const W=VGe(_,A,j,T),{bounds:xe}=ni.getBounds();let U=xe.stopy-xe.starty;U{const b=eS(En);let y=v.actorKeys.reduce((A,P)=>A+=i[P].width+(i[P].margin||0),0);y-=2*En.boxTextMargin,v.wrap&&(v.name=Ao.wrapLabel(v.name,y-2*En.wrapPadding,b));const T=Ao.calculateTextDimensions(v.name,b);p=ci.getMax(T.height,p);const _=ci.getMax(y,T.width+2*En.wrapPadding);if(v.margin=En.boxTextMargin,y<_){const A=(_-y)/2;v.margin+=A}}),u.forEach(v=>v.textMaxHeight=p),ci.getMax(d,En.height)}const win=async function(i,s,u){const d=s[i.from].x,p=s[i.to].x,v=i.wrap&&i.message;let b=Dv(i.message)?await HF(i.message,qt()):Ao.calculateTextDimensions(v?Ao.wrapLabel(i.message,En.width,XD(En)):i.message,XD(En));const y={width:v?En.width:ci.getMax(En.width,b.width+2*En.noteMargin),height:0,startx:s[i.from].x,stopx:0,starty:0,stopy:0,message:i.message};return i.placement===u.db.PLACEMENT.RIGHTOF?(y.width=v?ci.getMax(En.width,b.width):ci.getMax(s[i.from].width/2+s[i.to].width/2,b.width+2*En.noteMargin),y.startx=d+(s[i.from].width+En.actorMargin)/2):i.placement===u.db.PLACEMENT.LEFTOF?(y.width=v?ci.getMax(En.width,b.width+2*En.noteMargin):ci.getMax(s[i.from].width/2+s[i.to].width/2,b.width+2*En.noteMargin),y.startx=d-y.width+(s[i.from].width-En.actorMargin)/2):i.to===i.from?(b=Ao.calculateTextDimensions(v?Ao.wrapLabel(i.message,ci.getMax(En.width,s[i.from].width),XD(En)):i.message,XD(En)),y.width=v?ci.getMax(En.width,s[i.from].width):ci.getMax(s[i.from].width,En.width,b.width+2*En.noteMargin),y.startx=d+(s[i.from].width-y.width)/2):(y.width=Math.abs(d+s[i.from].width/2-(p+s[i.to].width/2))+En.actorMargin,y.startx=d2,P=K=>y?-K:K;i.from===i.to?_=T:(i.activate&&!A&&(_+=P(En.activationWidth/2-1)),[u.db.LINETYPE.SOLID_OPEN,u.db.LINETYPE.DOTTED_OPEN].includes(i.type)||(_+=P(3)));const R=[d,p,v,b],F=Math.abs(T-_);i.wrap&&i.message&&(i.message=Ao.wrapLabel(i.message,ci.getMax(F+2*En.wrapPadding,En.width),eS(En)));const j=Ao.calculateTextDimensions(i.message,eS(En));return{width:ci.getMax(i.wrap?0:j.width+2*En.wrapPadding,F+2*En.wrapPadding,En.width),height:0,startx:T,stopx:_,starty:0,stopy:0,message:i.message,type:i.type,wrap:i.wrap,fromBounds:Math.min.apply(null,R),toBounds:Math.max.apply(null,R)}},xin=async function(i,s,u,d){const p={},v=[];let b,y,T;for(const _ of i){switch(_.id=Ao.random({length:10}),_.type){case d.db.LINETYPE.LOOP_START:case d.db.LINETYPE.ALT_START:case d.db.LINETYPE.OPT_START:case d.db.LINETYPE.PAR_START:case d.db.LINETYPE.PAR_OVER_START:case d.db.LINETYPE.CRITICAL_START:case d.db.LINETYPE.BREAK_START:v.push({id:_.id,msg:_.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case d.db.LINETYPE.ALT_ELSE:case d.db.LINETYPE.PAR_AND:case d.db.LINETYPE.CRITICAL_OPTION:_.message&&(b=v.pop(),p[b.id]=b,p[_.id]=b,v.push(b));break;case d.db.LINETYPE.LOOP_END:case d.db.LINETYPE.ALT_END:case d.db.LINETYPE.OPT_END:case d.db.LINETYPE.PAR_END:case d.db.LINETYPE.CRITICAL_END:case d.db.LINETYPE.BREAK_END:b=v.pop(),p[b.id]=b;break;case d.db.LINETYPE.ACTIVE_START:{const P=s[_.from?_.from.actor:_.to.actor],R=bJ(_.from?_.from.actor:_.to.actor).length,F=P.x+P.width/2+(R-1)*En.activationWidth/2,j={startx:F,stopx:F+En.activationWidth,actor:_.from.actor,enabled:!0};ni.activations.push(j)}break;case d.db.LINETYPE.ACTIVE_END:{const P=ni.activations.map(R=>R.actor).lastIndexOf(_.from.actor);delete ni.activations.splice(P,1)[0]}break}_.placement!==void 0?(y=await win(_,s,d),_.noteModel=y,v.forEach(P=>{b=P,b.from=ci.getMin(b.from,y.startx),b.to=ci.getMax(b.to,y.startx+y.width),b.width=ci.getMax(b.width,Math.abs(b.from-b.to))-En.labelBoxWidth})):(T=yin(_,s,d),_.msgModel=T,T.startx&&T.stopx&&v.length>0&&v.forEach(P=>{if(b=P,T.startx===T.stopx){const R=s[_.from],F=s[_.to];b.from=ci.getMin(R.x-T.width/2,R.x-R.width/2,b.from),b.to=ci.getMax(F.x+T.width/2,F.x+R.width/2,b.to),b.width=ci.getMax(b.width,Math.abs(b.to-b.from))-En.labelBoxWidth}else b.from=ci.getMin(T.startx,b.from),b.to=ci.getMax(T.stopx,b.to),b.width=ci.getMax(b.width,T.width)-En.labelBoxWidth}))}return ni.activations=[],Xe.debug("Loop type widths:",p),p},kin=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:yrn,db:FGe,renderer:{bounds:ni,drawActors:Sve,drawActorsPopup:VGe,setConf:UGe,draw:pin},styles:Urn,init:({wrap:i})=>{FGe.setWrap(i)}}},Symbol.toStringTag,{value:"Module"}));var _ve=function(){var i=function(ao,Tr,Fn,qn){for(Fn=Fn||{},qn=ao.length;qn--;Fn[ao[qn]]=Tr);return Fn},s=[1,17],u=[1,18],d=[1,19],p=[1,39],v=[1,40],b=[1,25],y=[1,23],T=[1,24],_=[1,31],A=[1,32],P=[1,33],R=[1,34],F=[1,35],j=[1,36],K=[1,26],ee=[1,27],ie=[1,28],oe=[1,29],pe=[1,43],be=[1,30],ae=[1,42],ne=[1,44],se=[1,41],de=[1,45],X=[1,9],ge=[1,8,9],W=[1,56],xe=[1,57],U=[1,58],Fe=[1,59],Pe=[1,60],je=[1,61],Ie=[1,62],Se=[1,8,9,39],Ce=[1,74],ke=[1,8,9,12,13,21,37,39,42,59,60,61,62,63,64,65,70,72],Ke=[1,8,9,12,13,19,21,37,39,42,46,59,60,61,62,63,64,65,70,72,74,80,95,97,98],Ft=[13,74,80,95,97,98],Ne=[13,64,65,74,80,95,97,98],gn=[13,59,60,61,62,63,74,80,95,97,98],_t=[1,93],Et=[1,110],Gt=[1,108],ln=[1,102],xt=[1,103],Pt=[1,104],Qe=[1,105],Dt=[1,106],kt=[1,107],On=[1,109],ht=[1,8,9,37,39,42],zr=[1,8,9,21],yt=[1,8,9,78],ji=[1,8,9,21,73,74,78,80,81,82,83,84,85],xi={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,styleStatement:27,cssClassStatement:28,noteStatement:29,direction:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,namespaceIdentifier:36,STRUCT_START:37,classStatements:38,STRUCT_STOP:39,NAMESPACE:40,classIdentifier:41,STYLE_SEPARATOR:42,members:43,CLASS:44,ANNOTATION_START:45,ANNOTATION_END:46,MEMBER:47,SEPARATOR:48,relation:49,NOTE_FOR:50,noteText:51,NOTE:52,direction_tb:53,direction_bt:54,direction_rl:55,direction_lr:56,relationType:57,lineType:58,AGGREGATION:59,EXTENSION:60,COMPOSITION:61,DEPENDENCY:62,LOLLIPOP:63,LINE:64,DOTTED_LINE:65,CALLBACK:66,LINK:67,LINK_TARGET:68,CLICK:69,CALLBACK_NAME:70,CALLBACK_ARGS:71,HREF:72,STYLE:73,ALPHA:74,stylesOpt:75,CSSCLASS:76,style:77,COMMA:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,commentToken:86,textToken:87,graphCodeTokens:88,textNoTagsToken:89,TAGSTART:90,TAGEND:91,"==":92,"--":93,DEFAULT:94,MINUS:95,keywords:96,UNICODE_TEXT:97,BQUOTE_STR:98,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",37:"STRUCT_START",39:"STRUCT_STOP",40:"NAMESPACE",42:"STYLE_SEPARATOR",44:"CLASS",45:"ANNOTATION_START",46:"ANNOTATION_END",47:"MEMBER",48:"SEPARATOR",50:"NOTE_FOR",52:"NOTE",53:"direction_tb",54:"direction_bt",55:"direction_rl",56:"direction_lr",59:"AGGREGATION",60:"EXTENSION",61:"COMPOSITION",62:"DEPENDENCY",63:"LOLLIPOP",64:"LINE",65:"DOTTED_LINE",66:"CALLBACK",67:"LINK",68:"LINK_TARGET",69:"CLICK",70:"CALLBACK_NAME",71:"CALLBACK_ARGS",72:"HREF",73:"STYLE",74:"ALPHA",76:"CSSCLASS",78:"COMMA",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",88:"graphCodeTokens",90:"TAGSTART",91:"TAGEND",92:"==",93:"--",94:"DEFAULT",95:"MINUS",96:"keywords",97:"UNICODE_TEXT",98:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[36,2],[38,1],[38,2],[38,3],[23,1],[23,3],[23,4],[23,6],[41,2],[41,3],[25,4],[43,1],[43,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[29,3],[29,2],[30,1],[30,1],[30,1],[30,1],[49,3],[49,2],[49,2],[49,1],[57,1],[57,1],[57,1],[57,1],[57,1],[58,1],[58,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[28,3],[75,1],[75,3],[77,1],[77,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[86,1],[86,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[89,1],[89,1],[89,1],[89,1],[16,1],[16,1],[16,1],[16,1],[18,1],[51,1]],performAction:function(Tr,Fn,qn,Un,At,wt,on){var fn=wt.length-1;switch(At){case 8:this.$=wt[fn-1];break;case 9:case 11:case 12:this.$=wt[fn];break;case 10:case 13:this.$=wt[fn-1]+wt[fn];break;case 14:case 15:this.$=wt[fn-1]+"~"+wt[fn]+"~";break;case 16:Un.addRelation(wt[fn]);break;case 17:wt[fn-1].title=Un.cleanupLabel(wt[fn]),Un.addRelation(wt[fn-1]);break;case 27:this.$=wt[fn].trim(),Un.setAccTitle(this.$);break;case 28:case 29:this.$=wt[fn].trim(),Un.setAccDescription(this.$);break;case 30:Un.addClassesToNamespace(wt[fn-3],wt[fn-1]);break;case 31:Un.addClassesToNamespace(wt[fn-4],wt[fn-1]);break;case 32:this.$=wt[fn],Un.addNamespace(wt[fn]);break;case 33:this.$=[wt[fn]];break;case 34:this.$=[wt[fn-1]];break;case 35:wt[fn].unshift(wt[fn-2]),this.$=wt[fn];break;case 37:Un.setCssClass(wt[fn-2],wt[fn]);break;case 38:Un.addMembers(wt[fn-3],wt[fn-1]);break;case 39:Un.setCssClass(wt[fn-5],wt[fn-3]),Un.addMembers(wt[fn-5],wt[fn-1]);break;case 40:this.$=wt[fn],Un.addClass(wt[fn]);break;case 41:this.$=wt[fn-1],Un.addClass(wt[fn-1]),Un.setClassLabel(wt[fn-1],wt[fn]);break;case 42:Un.addAnnotation(wt[fn],wt[fn-2]);break;case 43:this.$=[wt[fn]];break;case 44:wt[fn].push(wt[fn-1]),this.$=wt[fn];break;case 45:break;case 46:Un.addMember(wt[fn-1],Un.cleanupLabel(wt[fn]));break;case 47:break;case 48:break;case 49:this.$={id1:wt[fn-2],id2:wt[fn],relation:wt[fn-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:wt[fn-3],id2:wt[fn],relation:wt[fn-1],relationTitle1:wt[fn-2],relationTitle2:"none"};break;case 51:this.$={id1:wt[fn-3],id2:wt[fn],relation:wt[fn-2],relationTitle1:"none",relationTitle2:wt[fn-1]};break;case 52:this.$={id1:wt[fn-4],id2:wt[fn],relation:wt[fn-2],relationTitle1:wt[fn-3],relationTitle2:wt[fn-1]};break;case 53:Un.addNote(wt[fn],wt[fn-1]);break;case 54:Un.addNote(wt[fn]);break;case 55:Un.setDirection("TB");break;case 56:Un.setDirection("BT");break;case 57:Un.setDirection("RL");break;case 58:Un.setDirection("LR");break;case 59:this.$={type1:wt[fn-2],type2:wt[fn],lineType:wt[fn-1]};break;case 60:this.$={type1:"none",type2:wt[fn],lineType:wt[fn-1]};break;case 61:this.$={type1:wt[fn-1],type2:"none",lineType:wt[fn]};break;case 62:this.$={type1:"none",type2:"none",lineType:wt[fn]};break;case 63:this.$=Un.relationType.AGGREGATION;break;case 64:this.$=Un.relationType.EXTENSION;break;case 65:this.$=Un.relationType.COMPOSITION;break;case 66:this.$=Un.relationType.DEPENDENCY;break;case 67:this.$=Un.relationType.LOLLIPOP;break;case 68:this.$=Un.lineType.LINE;break;case 69:this.$=Un.lineType.DOTTED_LINE;break;case 70:case 76:this.$=wt[fn-2],Un.setClickEvent(wt[fn-1],wt[fn]);break;case 71:case 77:this.$=wt[fn-3],Un.setClickEvent(wt[fn-2],wt[fn-1]),Un.setTooltip(wt[fn-2],wt[fn]);break;case 72:this.$=wt[fn-2],Un.setLink(wt[fn-1],wt[fn]);break;case 73:this.$=wt[fn-3],Un.setLink(wt[fn-2],wt[fn-1],wt[fn]);break;case 74:this.$=wt[fn-3],Un.setLink(wt[fn-2],wt[fn-1]),Un.setTooltip(wt[fn-2],wt[fn]);break;case 75:this.$=wt[fn-4],Un.setLink(wt[fn-3],wt[fn-2],wt[fn]),Un.setTooltip(wt[fn-3],wt[fn-1]);break;case 78:this.$=wt[fn-3],Un.setClickEvent(wt[fn-2],wt[fn-1],wt[fn]);break;case 79:this.$=wt[fn-4],Un.setClickEvent(wt[fn-3],wt[fn-2],wt[fn-1]),Un.setTooltip(wt[fn-3],wt[fn]);break;case 80:this.$=wt[fn-3],Un.setLink(wt[fn-2],wt[fn]);break;case 81:this.$=wt[fn-4],Un.setLink(wt[fn-3],wt[fn-1],wt[fn]);break;case 82:this.$=wt[fn-4],Un.setLink(wt[fn-3],wt[fn-1]),Un.setTooltip(wt[fn-3],wt[fn]);break;case 83:this.$=wt[fn-5],Un.setLink(wt[fn-4],wt[fn-2],wt[fn]),Un.setTooltip(wt[fn-4],wt[fn-1]);break;case 84:this.$=wt[fn-2],Un.setCssStyle(wt[fn-1],wt[fn]);break;case 85:Un.setCssClass(wt[fn-1],wt[fn]);break;case 86:this.$=[wt[fn]];break;case 87:wt[fn-2].push(wt[fn]),this.$=wt[fn-2];break;case 89:this.$=wt[fn-1]+wt[fn];break}},table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:s,33:u,35:d,36:21,40:p,41:22,44:v,45:b,47:y,48:T,50:_,52:A,53:P,54:R,55:F,56:j,66:K,67:ee,69:ie,73:oe,74:pe,76:be,80:ae,95:ne,97:se,98:de},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},i(X,[2,5],{8:[1,46]}),{8:[1,47]},i(ge,[2,16],{21:[1,48]}),i(ge,[2,18]),i(ge,[2,19]),i(ge,[2,20]),i(ge,[2,21]),i(ge,[2,22]),i(ge,[2,23]),i(ge,[2,24]),i(ge,[2,25]),i(ge,[2,26]),{32:[1,49]},{34:[1,50]},i(ge,[2,29]),i(ge,[2,45],{49:51,57:54,58:55,13:[1,52],21:[1,53],59:W,60:xe,61:U,62:Fe,63:Pe,64:je,65:Ie}),{37:[1,63]},i(Se,[2,36],{37:[1,65],42:[1,64]}),i(ge,[2,47]),i(ge,[2,48]),{16:66,74:pe,80:ae,95:ne,97:se},{16:37,17:67,18:38,74:pe,80:ae,95:ne,97:se,98:de},{16:37,17:68,18:38,74:pe,80:ae,95:ne,97:se,98:de},{16:37,17:69,18:38,74:pe,80:ae,95:ne,97:se,98:de},{74:[1,70]},{13:[1,71]},{16:37,17:72,18:38,74:pe,80:ae,95:ne,97:se,98:de},{13:Ce,51:73},i(ge,[2,55]),i(ge,[2,56]),i(ge,[2,57]),i(ge,[2,58]),i(ke,[2,11],{16:37,18:38,17:75,19:[1,76],74:pe,80:ae,95:ne,97:se,98:de}),i(ke,[2,12],{19:[1,77]}),{15:78,16:79,74:pe,80:ae,95:ne,97:se},{16:37,17:80,18:38,74:pe,80:ae,95:ne,97:se,98:de},i(Ke,[2,112]),i(Ke,[2,113]),i(Ke,[2,114]),i(Ke,[2,115]),i([1,8,9,12,13,19,21,37,39,42,59,60,61,62,63,64,65,70,72],[2,116]),i(X,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,17:20,36:21,41:22,16:37,18:38,5:81,31:s,33:u,35:d,40:p,44:v,45:b,47:y,48:T,50:_,52:A,53:P,54:R,55:F,56:j,66:K,67:ee,69:ie,73:oe,74:pe,76:be,80:ae,95:ne,97:se,98:de}),{5:82,10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:s,33:u,35:d,36:21,40:p,41:22,44:v,45:b,47:y,48:T,50:_,52:A,53:P,54:R,55:F,56:j,66:K,67:ee,69:ie,73:oe,74:pe,76:be,80:ae,95:ne,97:se,98:de},i(ge,[2,17]),i(ge,[2,27]),i(ge,[2,28]),{13:[1,84],16:37,17:83,18:38,74:pe,80:ae,95:ne,97:se,98:de},{49:85,57:54,58:55,59:W,60:xe,61:U,62:Fe,63:Pe,64:je,65:Ie},i(ge,[2,46]),{58:86,64:je,65:Ie},i(Ft,[2,62],{57:87,59:W,60:xe,61:U,62:Fe,63:Pe}),i(Ne,[2,63]),i(Ne,[2,64]),i(Ne,[2,65]),i(Ne,[2,66]),i(Ne,[2,67]),i(gn,[2,68]),i(gn,[2,69]),{8:[1,89],23:90,38:88,41:22,44:v},{16:91,74:pe,80:ae,95:ne,97:se},{43:92,47:_t},{46:[1,94]},{13:[1,95]},{13:[1,96]},{70:[1,97],72:[1,98]},{21:Et,73:Gt,74:ln,75:99,77:100,79:101,80:xt,81:Pt,82:Qe,83:Dt,84:kt,85:On},{74:[1,111]},{13:Ce,51:112},i(ge,[2,54]),i(ge,[2,117]),i(ke,[2,13]),i(ke,[2,14]),i(ke,[2,15]),{37:[2,32]},{15:113,16:79,37:[2,9],74:pe,80:ae,95:ne,97:se},i(ht,[2,40],{11:114,12:[1,115]}),i(X,[2,7]),{9:[1,116]},i(zr,[2,49]),{16:37,17:117,18:38,74:pe,80:ae,95:ne,97:se,98:de},{13:[1,119],16:37,17:118,18:38,74:pe,80:ae,95:ne,97:se,98:de},i(Ft,[2,61],{57:120,59:W,60:xe,61:U,62:Fe,63:Pe}),i(Ft,[2,60]),{39:[1,121]},{23:90,38:122,41:22,44:v},{8:[1,123],39:[2,33]},i(Se,[2,37],{37:[1,124]}),{39:[1,125]},{39:[2,43],43:126,47:_t},{16:37,17:127,18:38,74:pe,80:ae,95:ne,97:se,98:de},i(ge,[2,70],{13:[1,128]}),i(ge,[2,72],{13:[1,130],68:[1,129]}),i(ge,[2,76],{13:[1,131],71:[1,132]}),{13:[1,133]},i(ge,[2,84],{78:[1,134]}),i(yt,[2,86],{79:135,21:Et,73:Gt,74:ln,80:xt,81:Pt,82:Qe,83:Dt,84:kt,85:On}),i(ji,[2,88]),i(ji,[2,90]),i(ji,[2,91]),i(ji,[2,92]),i(ji,[2,93]),i(ji,[2,94]),i(ji,[2,95]),i(ji,[2,96]),i(ji,[2,97]),i(ji,[2,98]),i(ge,[2,85]),i(ge,[2,53]),{37:[2,10]},i(ht,[2,41]),{13:[1,136]},{1:[2,4]},i(zr,[2,51]),i(zr,[2,50]),{16:37,17:137,18:38,74:pe,80:ae,95:ne,97:se,98:de},i(Ft,[2,59]),i(ge,[2,30]),{39:[1,138]},{23:90,38:139,39:[2,34],41:22,44:v},{43:140,47:_t},i(Se,[2,38]),{39:[2,44]},i(ge,[2,42]),i(ge,[2,71]),i(ge,[2,73]),i(ge,[2,74],{68:[1,141]}),i(ge,[2,77]),i(ge,[2,78],{13:[1,142]}),i(ge,[2,80],{13:[1,144],68:[1,143]}),{21:Et,73:Gt,74:ln,77:145,79:101,80:xt,81:Pt,82:Qe,83:Dt,84:kt,85:On},i(ji,[2,89]),{14:[1,146]},i(zr,[2,52]),i(ge,[2,31]),{39:[2,35]},{39:[1,147]},i(ge,[2,75]),i(ge,[2,79]),i(ge,[2,81]),i(ge,[2,82],{68:[1,148]}),i(yt,[2,87],{79:135,21:Et,73:Gt,74:ln,80:xt,81:Pt,82:Qe,83:Dt,84:kt,85:On}),i(ht,[2,8]),i(Se,[2,39]),i(ge,[2,83])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],78:[2,32],113:[2,10],116:[2,4],126:[2,44],139:[2,35]},parseError:function(Tr,Fn){if(Fn.recoverable)this.trace(Tr);else{var qn=new Error(Tr);throw qn.hash=Fn,qn}},parse:function(Tr){var Fn=this,qn=[0],Un=[],At=[null],wt=[],on=this.table,fn="",An=0,oo=0,jo=2,$o=1,Pa=wt.slice.call(arguments,1),wo=Object.create(this.lexer),_s={yy:{}};for(var tl in this.yy)Object.prototype.hasOwnProperty.call(this.yy,tl)&&(_s.yy[tl]=this.yy[tl]);wo.setInput(Tr,_s.yy),_s.yy.lexer=wo,_s.yy.parser=this,typeof wo.yylloc>"u"&&(wo.yylloc={});var da=wo.yylloc;wt.push(da);var j0=wo.options&&wo.options.ranges;typeof _s.yy.parseError=="function"?this.parseError=_s.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pm(){var ga;return ga=Un.pop()||wo.lex()||$o,typeof ga!="number"&&(ga instanceof Array&&(Un=ga,ga=Un.pop()),ga=Fn.symbols_[ga]||ga),ga}for(var Ml,Xc,Bc,ja,Ou={},Sa,Po,Fc,xa;;){if(Xc=qn[qn.length-1],this.defaultActions[Xc]?Bc=this.defaultActions[Xc]:((Ml===null||typeof Ml>"u")&&(Ml=pm()),Bc=on[Xc]&&on[Xc][Ml]),typeof Bc>"u"||!Bc.length||!Bc[0]){var Ba="";xa=[];for(Sa in on[Xc])this.terminals_[Sa]&&Sa>jo&&xa.push("'"+this.terminals_[Sa]+"'");wo.showPosition?Ba="Parse error on line "+(An+1)+`: `+wo.showPosition()+` Expecting `+xa.join(", ")+", got '"+(this.terminals_[Ml]||Ml)+"'":Ba="Parse error on line "+(An+1)+": Unexpected "+(Ml==$o?"end of input":"'"+(this.terminals_[Ml]||Ml)+"'"),this.parseError(Ba,{text:wo.match,token:this.terminals_[Ml]||Ml,line:wo.yylineno,loc:da,expected:xa})}if(Bc[0]instanceof Array&&Bc.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Xc+", token: "+Ml);switch(Bc[0]){case 1:qn.push(Ml),At.push(wo.yytext),wt.push(wo.yylloc),qn.push(Bc[1]),Ml=null,oo=wo.yyleng,fn=wo.yytext,An=wo.yylineno,da=wo.yylloc;break;case 2:if(Po=this.productions_[Bc[1]][1],Ou.$=At[At.length-Po],Ou._$={first_line:wt[wt.length-(Po||1)].first_line,last_line:wt[wt.length-1].last_line,first_column:wt[wt.length-(Po||1)].first_column,last_column:wt[wt.length-1].last_column},j0&&(Ou._$.range=[wt[wt.length-(Po||1)].range[0],wt[wt.length-1].range[1]]),ja=this.performAction.apply(Ou,[fn,oo,An,_s.yy,Bc[1],At,wt].concat(Pa)),typeof ja<"u")return ja;Po&&(qn=qn.slice(0,-1*Po*2),At=At.slice(0,-1*Po),wt=wt.slice(0,-1*Po)),qn.push(this.productions_[Bc[1]][0]),At.push(Ou.$),wt.push(Ou._$),Fc=on[qn[qn.length-2]][qn[qn.length-1]],qn.push(Fc);break;case 3:return!0}}return!0}},Ma=function(){var ao={EOF:1,parseError:function(Fn,qn){if(this.yy.parser)this.yy.parser.parseError(Fn,qn);else throw new Error(Fn)},setInput:function(Tr,Fn){return this.yy=Fn||this.yy||{},this._input=Tr,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Tr=this._input[0];this.yytext+=Tr,this.yyleng++,this.offset++,this.match+=Tr,this.matched+=Tr;var Fn=Tr.match(/(?:\r\n?|\n).*/g);return Fn?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Tr},unput:function(Tr){var Fn=Tr.length,qn=Tr.split(/(?:\r\n?|\n)/g);this._input=Tr+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Fn),this.offset-=Fn;var Un=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),qn.length-1&&(this.yylineno-=qn.length-1);var At=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:qn?(qn.length===Un.length?this.yylloc.first_column:0)+Un[Un.length-qn.length].length-qn[0].length:this.yylloc.first_column-Fn},this.options.ranges&&(this.yylloc.range=[At[0],At[0]+this.yyleng-Fn]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Tr){this.unput(this.match.slice(Tr))},pastInput:function(){var Tr=this.matched.substr(0,this.matched.length-this.match.length);return(Tr.length>20?"...":"")+Tr.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Tr=this.match;return Tr.length<20&&(Tr+=this._input.substr(0,20-Tr.length)),(Tr.substr(0,20)+(Tr.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Tr=this.pastInput(),Fn=new Array(Tr.length+1).join("-");return Tr+this.upcomingInput()+` `+Fn+"^"},test_match:function(Tr,Fn){var qn,Un,At;if(this.options.backtrack_lexer&&(At={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(At.yylloc.range=this.yylloc.range.slice(0))),Un=Tr[0].match(/(?:\r\n?|\n).*/g),Un&&(this.yylineno+=Un.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Un?Un[Un.length-1].length-Un[Un.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Tr[0].length},this.yytext+=Tr[0],this.match+=Tr[0],this.matches=Tr,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Tr[0].length),this.matched+=Tr[0],qn=this.performAction.call(this,this.yy,this,Fn,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),qn)return qn;if(this._backtrack){for(var wt in At)this[wt]=At[wt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Tr,Fn,qn,Un;this._more||(this.yytext="",this.match="");for(var At=this._currentRules(),wt=0;wtFn[0].length)){if(Fn=qn,Un=wt,this.options.backtrack_lexer){if(Tr=this.test_match(qn,At[wt]),Tr!==!1)return Tr;if(this._backtrack){Fn=!1;continue}else return!1}else if(!this.options.flex)break}return Fn?(Tr=this.test_match(Fn,At[Un]),Tr!==!1?Tr:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Fn=this.next();return Fn||this.lex()},begin:function(Fn){this.conditionStack.push(Fn)},popState:function(){var Fn=this.conditionStack.length-1;return Fn>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Fn){return Fn=this.conditionStack.length-1-Math.abs(Fn||0),Fn>=0?this.conditionStack[Fn]:"INITIAL"},pushState:function(Fn){this.begin(Fn)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(Fn,qn,Un,At){switch(Un){case 0:return 53;case 1:return 54;case 2:return 55;case 3:return 56;case 4:break;case 5:break;case 6:return this.begin("acc_title"),31;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),33;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 70;case 22:this.popState();break;case 23:return 71;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 73;case 28:return this.begin("namespace"),40;case 29:return this.popState(),8;case 30:break;case 31:return this.begin("namespace-body"),37;case 32:return this.popState(),39;case 33:return"EOF_IN_STRUCT";case 34:return 8;case 35:break;case 36:return"EDGE_STATE";case 37:return this.begin("class"),44;case 38:return this.popState(),8;case 39:break;case 40:return this.popState(),this.popState(),39;case 41:return this.begin("class-body"),37;case 42:return this.popState(),39;case 43:return"EOF_IN_STRUCT";case 44:return"EDGE_STATE";case 45:return"OPEN_IN_STRUCT";case 46:break;case 47:return"MEMBER";case 48:return 76;case 49:return 66;case 50:return 67;case 51:return 69;case 52:return 50;case 53:return 52;case 54:return 45;case 55:return 46;case 56:return 72;case 57:this.popState();break;case 58:return"GENERICTYPE";case 59:this.begin("generic");break;case 60:this.popState();break;case 61:return"BQUOTE_STR";case 62:this.begin("bqstring");break;case 63:return 68;case 64:return 68;case 65:return 68;case 66:return 68;case 67:return 60;case 68:return 60;case 69:return 62;case 70:return 62;case 71:return 61;case 72:return 59;case 73:return 63;case 74:return 64;case 75:return 65;case 76:return 21;case 77:return 42;case 78:return 95;case 79:return"DOT";case 80:return"PLUS";case 81:return 81;case 82:return 78;case 83:return 84;case 84:return 84;case 85:return 85;case 86:return"EQUALS";case 87:return"EQUALS";case 88:return 74;case 89:return 12;case 90:return 14;case 91:return"PUNCTUATION";case 92:return 80;case 93:return 97;case 94:return 83;case 95:return 83;case 96:return 9}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,32,33,34,35,36,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},namespace:{rules:[26,28,29,30,31,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},"class-body":{rules:[26,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},class:{rules:[26,38,39,40,41,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr:{rules:[9,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_title:{rules:[7,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_args:{rules:[22,23,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_name:{rules:[19,20,21,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},href:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},struct:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},generic:{rules:[26,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},bqstring:{rules:[26,48,49,50,51,52,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},string:{rules:[24,25,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],inclusive:!0}}};return ao}();xi.lexer=Ma;function zs(){this.yy={}}return zs.prototype=xi,xi.Parser=zs,new zs}();_ve.parser=_ve;const KGe=_ve,WGe=["#","+","~","-",""];class YGe{constructor(s,u){this.memberType=u,this.visibility="",this.classifier="";const d=Yf(s,qt());this.parseMember(d)}getDisplayDetails(){let s=this.visibility+qF(this.id);this.memberType==="method"&&(s+=`(${qF(this.parameters.trim())})`,this.returnType&&(s+=" : "+qF(this.returnType))),s=s.trim();const u=this.parseClassifier();return{displayText:s,cssStyle:u}}parseMember(s){let u="";if(this.memberType==="method"){const d=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/,p=s.match(d);if(p){const v=p[1]?p[1].trim():"";if(WGe.includes(v)&&(this.visibility=v),this.id=p[2].trim(),this.parameters=p[3]?p[3].trim():"",u=p[4]?p[4].trim():"",this.returnType=p[5]?p[5].trim():"",u===""){const b=this.returnType.substring(this.returnType.length-1);b.match(/[$*]/)&&(u=b,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{const d=s.length,p=s.substring(0,1),v=s.substring(d-1);WGe.includes(p)&&(this.visibility=p),v.match(/[$*]/)&&(u=v),this.id=s.substring(this.visibility===""?0:1,u===""?d:d-1)}this.classifier=u}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}const mJ="classId-";let Ave=[],xh={},vJ=[],XGe=0,R9={},Lve=0,WR=[];const tS=i=>li.sanitizeText(i,qt()),nS=function(i){const s=li.sanitizeText(i,qt());let u="",d=s;if(s.indexOf("~")>0){const p=s.split("~");d=tS(p[0]),u=tS(p[1])}return{className:d,type:u}},Ein=function(i,s){const u=li.sanitizeText(i,qt());s&&(s=tS(s));const{className:d}=nS(u);xh[d].label=s},wJ=function(i){const s=li.sanitizeText(i,qt()),{className:u,type:d}=nS(s);if(Object.hasOwn(xh,u))return;const p=li.sanitizeText(u,qt());xh[p]={id:p,type:d,label:p,cssClasses:[],methods:[],members:[],annotations:[],styles:[],domId:mJ+p+"-"+XGe},XGe++},QGe=function(i){const s=li.sanitizeText(i,qt());if(s in xh)return xh[s].domId;throw new Error("Class not found: "+s)},Tin=function(){Ave=[],xh={},vJ=[],WR=[],WR.push(ZGe),R9={},Lve=0,Pg()},Cin=function(i){return xh[i]},Sin=function(){return xh},_in=function(){return Ave},Ain=function(){return vJ},Lin=function(i){Xe.debug("Adding relation: "+JSON.stringify(i)),wJ(i.id1),wJ(i.id2),i.id1=nS(i.id1).className,i.id2=nS(i.id2).className,i.relationTitle1=li.sanitizeText(i.relationTitle1.trim(),qt()),i.relationTitle2=li.sanitizeText(i.relationTitle2.trim(),qt()),Ave.push(i)},Min=function(i,s){const u=nS(i).className;xh[u].annotations.push(s)},JGe=function(i,s){wJ(i);const u=nS(i).className,d=xh[u];if(typeof s=="string"){const p=s.trim();p.startsWith("<<")&&p.endsWith(">>")?d.annotations.push(tS(p.substring(2,p.length-2))):p.indexOf(")")>0?d.methods.push(new YGe(p,"method")):p&&d.members.push(new YGe(p,"attribute"))}},Din=function(i,s){Array.isArray(s)&&(s.reverse(),s.forEach(u=>JGe(i,u)))},Iin=function(i,s){const u={id:`note${vJ.length}`,class:s,text:i};vJ.push(u)},Oin=function(i){return i.startsWith(":")&&(i=i.substring(1)),tS(i.trim())},Mve=function(i,s){i.split(",").forEach(function(u){let d=u;u[0].match(/\d/)&&(d=mJ+d),xh[d]!==void 0&&xh[d].cssClasses.push(s)})},Nin=function(i,s){i.split(",").forEach(function(u){s!==void 0&&(xh[u].tooltip=tS(s))})},Pin=function(i,s){return s?R9[s].classes[i].tooltip:xh[i].tooltip},Bin=function(i,s,u){const d=qt();i.split(",").forEach(function(p){let v=p;p[0].match(/\d/)&&(v=mJ+v),xh[v]!==void 0&&(xh[v].link=Ao.formatUrl(s,d),d.securityLevel==="sandbox"?xh[v].linkTarget="_top":typeof u=="string"?xh[v].linkTarget=tS(u):xh[v].linkTarget="_blank")}),Mve(i,"clickable")},Fin=function(i,s,u){i.split(",").forEach(function(d){Rin(d,s,u),xh[d].haveCallback=!0}),Mve(i,"clickable")},Rin=function(i,s,u){const d=li.sanitizeText(i,qt());if(qt().securityLevel!=="loose"||s===void 0)return;const v=d;if(xh[v]!==void 0){const b=QGe(v);let y=[];if(typeof u=="string"){y=u.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let T=0;T")),p.classed("hover",!0)}).on("mouseout",function(){s.transition().duration(500).style("opacity",0),Ir(this).classed("hover",!1)})};WR.push(ZGe);let eKe="TB";const yJ={setAccTitle:Bg,getAccTitle:Cp,getAccDescription:_p,setAccDescription:Sp,getConfig:()=>qt().class,addClass:wJ,bindFunctions:jin,clear:Tin,getClass:Cin,getClasses:Sin,getNotes:Ain,addAnnotation:Min,addNote:Iin,getRelations:_in,addRelation:Lin,getDirection:()=>eKe,setDirection:i=>{eKe=i},addMember:JGe,addMembers:Din,cleanupLabel:Oin,lineType:$in,relationType:zin,setClickEvent:Fin,setCssClass:Mve,setLink:Bin,getTooltip:Pin,setTooltip:Nin,lookUpDomId:QGe,setDiagramTitle:cm,getDiagramTitle:Ap,setClassLabel:Ein,addNamespace:function(i){R9[i]===void 0&&(R9[i]={id:i,classes:{},children:{},domId:mJ+i+"-"+Lve},Lve++)},addClassesToNamespace:function(i,s){if(R9[i]!==void 0)for(const u of s){const{className:d}=nS(u);xh[d].parent=i,R9[i].classes[d]=xh[d]}},getNamespace:function(i){return R9[i]},getNamespaces:function(){return R9},setCssStyle:function(i,s){const u=xh[i];if(!(!s||!u))for(const d of s)d.includes(",")?u.styles.push(...d.split(",")):u.styles.push(d)}},tKe=i=>`g.classGroup text { +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Fn=this.next();return Fn||this.lex()},begin:function(Fn){this.conditionStack.push(Fn)},popState:function(){var Fn=this.conditionStack.length-1;return Fn>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Fn){return Fn=this.conditionStack.length-1-Math.abs(Fn||0),Fn>=0?this.conditionStack[Fn]:"INITIAL"},pushState:function(Fn){this.begin(Fn)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(Fn,qn,Un,At){switch(Un){case 0:return 53;case 1:return 54;case 2:return 55;case 3:return 56;case 4:break;case 5:break;case 6:return this.begin("acc_title"),31;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),33;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 70;case 22:this.popState();break;case 23:return 71;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 73;case 28:return this.begin("namespace"),40;case 29:return this.popState(),8;case 30:break;case 31:return this.begin("namespace-body"),37;case 32:return this.popState(),39;case 33:return"EOF_IN_STRUCT";case 34:return 8;case 35:break;case 36:return"EDGE_STATE";case 37:return this.begin("class"),44;case 38:return this.popState(),8;case 39:break;case 40:return this.popState(),this.popState(),39;case 41:return this.begin("class-body"),37;case 42:return this.popState(),39;case 43:return"EOF_IN_STRUCT";case 44:return"EDGE_STATE";case 45:return"OPEN_IN_STRUCT";case 46:break;case 47:return"MEMBER";case 48:return 76;case 49:return 66;case 50:return 67;case 51:return 69;case 52:return 50;case 53:return 52;case 54:return 45;case 55:return 46;case 56:return 72;case 57:this.popState();break;case 58:return"GENERICTYPE";case 59:this.begin("generic");break;case 60:this.popState();break;case 61:return"BQUOTE_STR";case 62:this.begin("bqstring");break;case 63:return 68;case 64:return 68;case 65:return 68;case 66:return 68;case 67:return 60;case 68:return 60;case 69:return 62;case 70:return 62;case 71:return 61;case 72:return 59;case 73:return 63;case 74:return 64;case 75:return 65;case 76:return 21;case 77:return 42;case 78:return 95;case 79:return"DOT";case 80:return"PLUS";case 81:return 81;case 82:return 78;case 83:return 84;case 84:return 84;case 85:return 85;case 86:return"EQUALS";case 87:return"EQUALS";case 88:return 74;case 89:return 12;case 90:return 14;case 91:return"PUNCTUATION";case 92:return 80;case 93:return 97;case 94:return 83;case 95:return 83;case 96:return 9}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,32,33,34,35,36,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},namespace:{rules:[26,28,29,30,31,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},"class-body":{rules:[26,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},class:{rules:[26,38,39,40,41,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr:{rules:[9,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_title:{rules:[7,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_args:{rules:[22,23,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_name:{rules:[19,20,21,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},href:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},struct:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},generic:{rules:[26,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},bqstring:{rules:[26,48,49,50,51,52,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},string:{rules:[24,25,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],inclusive:!0}}};return ao}();xi.lexer=Ma;function zs(){this.yy={}}return zs.prototype=xi,xi.Parser=zs,new zs}();_ve.parser=_ve;const KGe=_ve,WGe=["#","+","~","-",""];class YGe{constructor(s,u){this.memberType=u,this.visibility="",this.classifier="";const d=Yf(s,qt());this.parseMember(d)}getDisplayDetails(){let s=this.visibility+qF(this.id);this.memberType==="method"&&(s+=`(${qF(this.parameters.trim())})`,this.returnType&&(s+=" : "+qF(this.returnType))),s=s.trim();const u=this.parseClassifier();return{displayText:s,cssStyle:u}}parseMember(s){let u="";if(this.memberType==="method"){const d=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/,p=s.match(d);if(p){const v=p[1]?p[1].trim():"";if(WGe.includes(v)&&(this.visibility=v),this.id=p[2].trim(),this.parameters=p[3]?p[3].trim():"",u=p[4]?p[4].trim():"",this.returnType=p[5]?p[5].trim():"",u===""){const b=this.returnType.substring(this.returnType.length-1);b.match(/[$*]/)&&(u=b,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{const d=s.length,p=s.substring(0,1),v=s.substring(d-1);WGe.includes(p)&&(this.visibility=p),v.match(/[$*]/)&&(u=v),this.id=s.substring(this.visibility===""?0:1,u===""?d:d-1)}this.classifier=u}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}const mJ="classId-";let Ave=[],xh={},vJ=[],XGe=0,R9={},Lve=0,WR=[];const tS=i=>ci.sanitizeText(i,qt()),nS=function(i){const s=ci.sanitizeText(i,qt());let u="",d=s;if(s.indexOf("~")>0){const p=s.split("~");d=tS(p[0]),u=tS(p[1])}return{className:d,type:u}},Ein=function(i,s){const u=ci.sanitizeText(i,qt());s&&(s=tS(s));const{className:d}=nS(u);xh[d].label=s},wJ=function(i){const s=ci.sanitizeText(i,qt()),{className:u,type:d}=nS(s);if(Object.hasOwn(xh,u))return;const p=ci.sanitizeText(u,qt());xh[p]={id:p,type:d,label:p,cssClasses:[],methods:[],members:[],annotations:[],styles:[],domId:mJ+p+"-"+XGe},XGe++},QGe=function(i){const s=ci.sanitizeText(i,qt());if(s in xh)return xh[s].domId;throw new Error("Class not found: "+s)},Tin=function(){Ave=[],xh={},vJ=[],WR=[],WR.push(ZGe),R9={},Lve=0,Pg()},Cin=function(i){return xh[i]},Sin=function(){return xh},_in=function(){return Ave},Ain=function(){return vJ},Lin=function(i){Xe.debug("Adding relation: "+JSON.stringify(i)),wJ(i.id1),wJ(i.id2),i.id1=nS(i.id1).className,i.id2=nS(i.id2).className,i.relationTitle1=ci.sanitizeText(i.relationTitle1.trim(),qt()),i.relationTitle2=ci.sanitizeText(i.relationTitle2.trim(),qt()),Ave.push(i)},Min=function(i,s){const u=nS(i).className;xh[u].annotations.push(s)},JGe=function(i,s){wJ(i);const u=nS(i).className,d=xh[u];if(typeof s=="string"){const p=s.trim();p.startsWith("<<")&&p.endsWith(">>")?d.annotations.push(tS(p.substring(2,p.length-2))):p.indexOf(")")>0?d.methods.push(new YGe(p,"method")):p&&d.members.push(new YGe(p,"attribute"))}},Din=function(i,s){Array.isArray(s)&&(s.reverse(),s.forEach(u=>JGe(i,u)))},Iin=function(i,s){const u={id:`note${vJ.length}`,class:s,text:i};vJ.push(u)},Oin=function(i){return i.startsWith(":")&&(i=i.substring(1)),tS(i.trim())},Mve=function(i,s){i.split(",").forEach(function(u){let d=u;u[0].match(/\d/)&&(d=mJ+d),xh[d]!==void 0&&xh[d].cssClasses.push(s)})},Nin=function(i,s){i.split(",").forEach(function(u){s!==void 0&&(xh[u].tooltip=tS(s))})},Pin=function(i,s){return s?R9[s].classes[i].tooltip:xh[i].tooltip},Bin=function(i,s,u){const d=qt();i.split(",").forEach(function(p){let v=p;p[0].match(/\d/)&&(v=mJ+v),xh[v]!==void 0&&(xh[v].link=Ao.formatUrl(s,d),d.securityLevel==="sandbox"?xh[v].linkTarget="_top":typeof u=="string"?xh[v].linkTarget=tS(u):xh[v].linkTarget="_blank")}),Mve(i,"clickable")},Fin=function(i,s,u){i.split(",").forEach(function(d){Rin(d,s,u),xh[d].haveCallback=!0}),Mve(i,"clickable")},Rin=function(i,s,u){const d=ci.sanitizeText(i,qt());if(qt().securityLevel!=="loose"||s===void 0)return;const v=d;if(xh[v]!==void 0){const b=QGe(v);let y=[];if(typeof u=="string"){y=u.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let T=0;T")),p.classed("hover",!0)}).on("mouseout",function(){s.transition().duration(500).style("opacity",0),Ir(this).classed("hover",!1)})};WR.push(ZGe);let eKe="TB";const yJ={setAccTitle:Bg,getAccTitle:Cp,getAccDescription:_p,setAccDescription:Sp,getConfig:()=>qt().class,addClass:wJ,bindFunctions:jin,clear:Tin,getClass:Cin,getClasses:Sin,getNotes:Ain,addAnnotation:Min,addNote:Iin,getRelations:_in,addRelation:Lin,getDirection:()=>eKe,setDirection:i=>{eKe=i},addMember:JGe,addMembers:Din,cleanupLabel:Oin,lineType:$in,relationType:zin,setClickEvent:Fin,setCssClass:Mve,setLink:Bin,getTooltip:Pin,setTooltip:Nin,lookUpDomId:QGe,setDiagramTitle:cm,getDiagramTitle:Ap,setClassLabel:Ein,addNamespace:function(i){R9[i]===void 0&&(R9[i]={id:i,classes:{},children:{},domId:mJ+i+"-"+Lve},Lve++)},addClassesToNamespace:function(i,s){if(R9[i]!==void 0)for(const u of s){const{className:d}=nS(u);xh[d].parent=i,R9[i].classes[d]=xh[d]}},getNamespace:function(i){return R9[i]},getNamespaces:function(){return R9},setCssStyle:function(i,s){const u=xh[i];if(!(!s||!u))for(const d of s)d.includes(",")?u.styles.push(...d.split(",")):u.styles.push(d)}},tKe=i=>`g.classGroup text { fill: ${i.nodeBorder||i.classText}; stroke: none; font-family: ${i.fontFamily}; @@ -1251,13 +1251,13 @@ g.classGroup line { fill: ${i.textColor}; } `;let nKe=0;const qin=function(i,s,u,d,p){const v=function(oe){switch(oe){case p.db.relationType.AGGREGATION:return"aggregation";case p.db.relationType.EXTENSION:return"extension";case p.db.relationType.COMPOSITION:return"composition";case p.db.relationType.DEPENDENCY:return"dependency";case p.db.relationType.LOLLIPOP:return"lollipop"}};s.points=s.points.filter(oe=>!Number.isNaN(oe.y));const b=s.points,y=k7().x(function(oe){return oe.x}).y(function(oe){return oe.y}).curve(FF),T=i.append("path").attr("d",y(b)).attr("id","edge"+nKe).attr("class","relation");let _="";d.arrowMarkerAbsolute&&(_=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,_=_.replace(/\(/g,"\\("),_=_.replace(/\)/g,"\\)")),u.relation.lineType==1&&T.attr("class","relation dashed-line"),u.relation.lineType==10&&T.attr("class","relation dotted-line"),u.relation.type1!=="none"&&T.attr("marker-start","url("+_+"#"+v(u.relation.type1)+"Start)"),u.relation.type2!=="none"&&T.attr("marker-end","url("+_+"#"+v(u.relation.type2)+"End)");let A,P;const R=s.points.length;let F=Ao.calcLabelPosition(s.points);A=F.x,P=F.y;let j,K,ee,ie;if(R%2!==0&&R>1){let oe=Ao.calcCardinalityPosition(u.relation.type1!=="none",s.points,s.points[0]),pe=Ao.calcCardinalityPosition(u.relation.type2!=="none",s.points,s.points[R-1]);Xe.debug("cardinality_1_point "+JSON.stringify(oe)),Xe.debug("cardinality_2_point "+JSON.stringify(pe)),j=oe.x,K=oe.y,ee=pe.x,ie=pe.y}if(u.title!==void 0){const oe=i.append("g").attr("class","classLabel"),pe=oe.append("text").attr("class","label").attr("x",A).attr("y",P).attr("fill","red").attr("text-anchor","middle").text(u.title);window.label=pe;const be=pe.node().getBBox();oe.insert("rect",":first-child").attr("class","box").attr("x",be.x-d.padding/2).attr("y",be.y-d.padding/2).attr("width",be.width+d.padding).attr("height",be.height+d.padding)}Xe.info("Rendering relation "+JSON.stringify(u)),u.relationTitle1!==void 0&&u.relationTitle1!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",j).attr("y",K).attr("fill","black").attr("font-size","6").text(u.relationTitle1),u.relationTitle2!==void 0&&u.relationTitle2!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",ee).attr("y",ie).attr("fill","black").attr("font-size","6").text(u.relationTitle2),nKe++},Hin=function(i,s,u,d){Xe.debug("Rendering class ",s,u);const p=s.id,v={id:p,label:s.id,width:0,height:0},b=i.append("g").attr("id",d.db.lookUpDomId(p)).attr("class","classGroup");let y;s.link?y=b.append("svg:a").attr("xlink:href",s.link).attr("target",s.linkTarget).append("text").attr("y",u.textHeight+u.padding).attr("x",0):y=b.append("text").attr("y",u.textHeight+u.padding).attr("x",0);let T=!0;s.annotations.forEach(function(pe){const be=y.append("tspan").text("«"+pe+"»");T||be.attr("dy",u.textHeight),T=!1});let _=rKe(s);const A=y.append("tspan").text(_).attr("class","title");T||A.attr("dy",u.textHeight);const P=y.node().getBBox().height;let R,F,j;if(s.members.length>0){R=b.append("line").attr("x1",0).attr("y1",u.padding+P+u.dividerMargin/2).attr("y2",u.padding+P+u.dividerMargin/2);const pe=b.append("text").attr("x",u.padding).attr("y",P+u.dividerMargin+u.textHeight).attr("fill","white").attr("class","classText");T=!0,s.members.forEach(function(be){iKe(pe,be,T,u),T=!1}),F=pe.node().getBBox()}if(s.methods.length>0){j=b.append("line").attr("x1",0).attr("y1",u.padding+P+u.dividerMargin+F.height).attr("y2",u.padding+P+u.dividerMargin+F.height);const pe=b.append("text").attr("x",u.padding).attr("y",P+2*u.dividerMargin+F.height+u.textHeight).attr("fill","white").attr("class","classText");T=!0,s.methods.forEach(function(be){iKe(pe,be,T,u),T=!1})}const K=b.node().getBBox();var ee=" ";s.cssClasses.length>0&&(ee=ee+s.cssClasses.join(" "));const oe=b.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",K.width+2*u.padding).attr("height",K.height+u.padding+.5*u.dividerMargin).attr("class",ee).node().getBBox().width;return y.node().childNodes.forEach(function(pe){pe.setAttribute("x",(oe-pe.getBBox().width)/2)}),s.tooltip&&y.insert("title").text(s.tooltip),R&&R.attr("x2",oe),j&&j.attr("x2",oe),v.width=oe,v.height=K.height+u.padding+.5*u.dividerMargin,v},rKe=function(i){let s=i.id;return i.type&&(s+="<"+qF(i.type)+">"),s},Vin=function(i,s,u,d){Xe.debug("Rendering note ",s,u);const p=s.id,v={id:p,text:s.text,width:0,height:0},b=i.append("g").attr("id",p).attr("class","classGroup");let y=b.append("text").attr("y",u.textHeight+u.padding).attr("x",0);const T=JSON.parse(`"${s.text}"`).split(` -`);T.forEach(function(R){Xe.debug(`Adding line: ${R}`),y.append("tspan").text(R).attr("class","title").attr("dy",u.textHeight)});const _=b.node().getBBox(),P=b.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",_.width+2*u.padding).attr("height",_.height+T.length*u.textHeight+u.padding+.5*u.dividerMargin).node().getBBox().width;return y.node().childNodes.forEach(function(R){R.setAttribute("x",(P-R.getBBox().width)/2)}),v.width=P,v.height=_.height+T.length*u.textHeight+u.padding+.5*u.dividerMargin,v},iKe=function(i,s,u,d){const{displayText:p,cssStyle:v}=s.getDisplayDetails(),b=i.append("tspan").attr("x",d.padding).text(p);v!==""&&b.attr("style",s.cssStyle),u||b.attr("dy",d.textHeight)},Dve={getClassTitleString:rKe,drawClass:Hin,drawEdge:qin,drawNote:Vin};let xJ={};const kJ=20,YR=function(i){const s=Object.entries(xJ).find(u=>u[1].label===i);if(s)return s[0]},Uin=function(i){i.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),i.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},Gin=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:KGe,db:yJ,renderer:{draw:function(i,s,u,d){const p=qt().class;xJ={},Xe.info("Rendering diagram "+i);const v=qt().securityLevel;let b;v==="sandbox"&&(b=Ir("#i"+s));const y=Ir(v==="sandbox"?b.nodes()[0].contentDocument.body:"body"),T=y.select(`[id='${s}']`);Uin(T);const _=new B0({multigraph:!0});_.setGraph({isMultiGraph:!0}),_.setDefaultEdgeLabel(function(){return{}});const A=d.db.getClasses(),P=Object.keys(A);for(const oe of P){const pe=A[oe],be=Dve.drawClass(T,pe,p,d);xJ[be.id]=be,_.setNode(be.id,be),Xe.info("Org height: "+be.height)}d.db.getRelations().forEach(function(oe){Xe.info("tjoho"+YR(oe.id1)+YR(oe.id2)+JSON.stringify(oe)),_.setEdge(YR(oe.id1),YR(oe.id2),{relation:oe},oe.title||"DEFAULT")}),d.db.getNotes().forEach(function(oe){Xe.debug(`Adding note: ${JSON.stringify(oe)}`);const pe=Dve.drawNote(T,oe,p,d);xJ[pe.id]=pe,_.setNode(pe.id,pe),oe.class&&oe.class in A&&_.setEdge(oe.id,YR(oe.class),{relation:{id1:oe.id,id2:oe.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),qD(_),_.nodes().forEach(function(oe){oe!==void 0&&_.node(oe)!==void 0&&(Xe.debug("Node "+oe+": "+JSON.stringify(_.node(oe))),y.select("#"+(d.db.lookUpDomId(oe)||oe)).attr("transform","translate("+(_.node(oe).x-_.node(oe).width/2)+","+(_.node(oe).y-_.node(oe).height/2)+" )"))}),_.edges().forEach(function(oe){oe!==void 0&&_.edge(oe)!==void 0&&(Xe.debug("Edge "+oe.v+" -> "+oe.w+": "+JSON.stringify(_.edge(oe))),Dve.drawEdge(T,_.edge(oe),_.edge(oe).relation,p,d))});const j=T.node().getBBox(),K=j.width+kJ*2,ee=j.height+kJ*2;Ng(T,ee,K,p.useMaxWidth);const ie=`${j.x-kJ} ${j.y-kJ} ${K} ${ee}`;Xe.debug(`viewBox ${ie}`),T.attr("viewBox",ie)}},styles:tKe,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,yJ.clear()}}},Symbol.toStringTag,{value:"Module"})),Ive=i=>li.sanitizeText(i,qt());let Ove={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const Kin=function(i,s,u,d){const p=Object.keys(i);Xe.info("keys:",p),Xe.info(i),p.forEach(function(v){var _,A;const b=i[v],T={shape:"rect",id:b.id,domId:b.domId,labelText:Ive(b.id),labelStyle:"",style:"fill: none; stroke: black",padding:((_=qt().flowchart)==null?void 0:_.padding)??((A=qt().class)==null?void 0:A.padding)};s.setNode(b.id,T),sKe(b.classes,s,u,d,b.id),Xe.info("setNode",T)})},sKe=function(i,s,u,d,p){const v=Object.keys(i);Xe.info("keys:",v),Xe.info(i),v.filter(b=>i[b].parent==p).forEach(function(b){var j,K;const y=i[b],T=y.cssClasses.join(" "),_=om(y.styles),A=y.label??y.id,P=0,R="class_box",F={labelStyle:_.labelStyle,shape:R,labelText:Ive(A),classData:y,rx:P,ry:P,class:T,style:_.style,id:y.id,domId:y.domId,tooltip:d.db.getTooltip(y.id,p)||"",haveCallback:y.haveCallback,link:y.link,width:y.type==="group"?500:void 0,type:y.type,padding:((j=qt().flowchart)==null?void 0:j.padding)??((K=qt().class)==null?void 0:K.padding)};s.setNode(y.id,F),p&&s.setParent(y.id,p),Xe.info("setNode",F)})},Win=function(i,s,u,d){Xe.info(i),i.forEach(function(p,v){var K,ee;const b=p,y="",T={labelStyle:"",style:""},_=b.text,A=0,P="note",R={labelStyle:T.labelStyle,shape:P,labelText:Ive(_),noteData:b,rx:A,ry:A,class:y,style:T.style,id:b.id,domId:b.id,tooltip:"",type:"note",padding:((K=qt().flowchart)==null?void 0:K.padding)??((ee=qt().class)==null?void 0:ee.padding)};if(s.setNode(b.id,R),Xe.info("setNode",R),!b.class||!(b.class in d))return;const F=u+v,j={id:`edgeNote${F}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:Ov(Ove.curve,kp)};s.setEdge(b.id,b.class,j,F)})},Yin=function(i,s){const u=qt().flowchart;let d=0;i.forEach(function(p){var b;d++;const v={classes:"relation",pattern:p.relation.lineType==1?"dashed":"solid",id:`id_${p.id1}_${p.id2}_${d}`,arrowhead:p.type==="arrow_open"?"none":"normal",startLabelRight:p.relationTitle1==="none"?"":p.relationTitle1,endLabelLeft:p.relationTitle2==="none"?"":p.relationTitle2,arrowTypeStart:aKe(p.relation.type1),arrowTypeEnd:aKe(p.relation.type2),style:"fill:none",labelStyle:"",curve:Ov(u==null?void 0:u.curve,kp)};if(Xe.info(v,p),p.style!==void 0){const y=om(p.style);v.style=y.style,v.labelStyle=y.labelStyle}p.text=p.title,p.text===void 0?p.style!==void 0&&(v.arrowheadStyle="fill: #333"):(v.arrowheadStyle="fill: #333",v.labelpos="c",((b=qt().flowchart)==null?void 0:b.htmlLabels)??qt().htmlLabels?(v.labelType="html",v.label=''+p.text+""):(v.labelType="text",v.label=p.text.replace(li.lineBreakRegex,` +`);T.forEach(function(R){Xe.debug(`Adding line: ${R}`),y.append("tspan").text(R).attr("class","title").attr("dy",u.textHeight)});const _=b.node().getBBox(),P=b.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",_.width+2*u.padding).attr("height",_.height+T.length*u.textHeight+u.padding+.5*u.dividerMargin).node().getBBox().width;return y.node().childNodes.forEach(function(R){R.setAttribute("x",(P-R.getBBox().width)/2)}),v.width=P,v.height=_.height+T.length*u.textHeight+u.padding+.5*u.dividerMargin,v},iKe=function(i,s,u,d){const{displayText:p,cssStyle:v}=s.getDisplayDetails(),b=i.append("tspan").attr("x",d.padding).text(p);v!==""&&b.attr("style",s.cssStyle),u||b.attr("dy",d.textHeight)},Dve={getClassTitleString:rKe,drawClass:Hin,drawEdge:qin,drawNote:Vin};let xJ={};const kJ=20,YR=function(i){const s=Object.entries(xJ).find(u=>u[1].label===i);if(s)return s[0]},Uin=function(i){i.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),i.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},Gin=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:KGe,db:yJ,renderer:{draw:function(i,s,u,d){const p=qt().class;xJ={},Xe.info("Rendering diagram "+i);const v=qt().securityLevel;let b;v==="sandbox"&&(b=Ir("#i"+s));const y=Ir(v==="sandbox"?b.nodes()[0].contentDocument.body:"body"),T=y.select(`[id='${s}']`);Uin(T);const _=new B0({multigraph:!0});_.setGraph({isMultiGraph:!0}),_.setDefaultEdgeLabel(function(){return{}});const A=d.db.getClasses(),P=Object.keys(A);for(const oe of P){const pe=A[oe],be=Dve.drawClass(T,pe,p,d);xJ[be.id]=be,_.setNode(be.id,be),Xe.info("Org height: "+be.height)}d.db.getRelations().forEach(function(oe){Xe.info("tjoho"+YR(oe.id1)+YR(oe.id2)+JSON.stringify(oe)),_.setEdge(YR(oe.id1),YR(oe.id2),{relation:oe},oe.title||"DEFAULT")}),d.db.getNotes().forEach(function(oe){Xe.debug(`Adding note: ${JSON.stringify(oe)}`);const pe=Dve.drawNote(T,oe,p,d);xJ[pe.id]=pe,_.setNode(pe.id,pe),oe.class&&oe.class in A&&_.setEdge(oe.id,YR(oe.class),{relation:{id1:oe.id,id2:oe.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),qD(_),_.nodes().forEach(function(oe){oe!==void 0&&_.node(oe)!==void 0&&(Xe.debug("Node "+oe+": "+JSON.stringify(_.node(oe))),y.select("#"+(d.db.lookUpDomId(oe)||oe)).attr("transform","translate("+(_.node(oe).x-_.node(oe).width/2)+","+(_.node(oe).y-_.node(oe).height/2)+" )"))}),_.edges().forEach(function(oe){oe!==void 0&&_.edge(oe)!==void 0&&(Xe.debug("Edge "+oe.v+" -> "+oe.w+": "+JSON.stringify(_.edge(oe))),Dve.drawEdge(T,_.edge(oe),_.edge(oe).relation,p,d))});const j=T.node().getBBox(),K=j.width+kJ*2,ee=j.height+kJ*2;Ng(T,ee,K,p.useMaxWidth);const ie=`${j.x-kJ} ${j.y-kJ} ${K} ${ee}`;Xe.debug(`viewBox ${ie}`),T.attr("viewBox",ie)}},styles:tKe,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,yJ.clear()}}},Symbol.toStringTag,{value:"Module"})),Ive=i=>ci.sanitizeText(i,qt());let Ove={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const Kin=function(i,s,u,d){const p=Object.keys(i);Xe.info("keys:",p),Xe.info(i),p.forEach(function(v){var _,A;const b=i[v],T={shape:"rect",id:b.id,domId:b.domId,labelText:Ive(b.id),labelStyle:"",style:"fill: none; stroke: black",padding:((_=qt().flowchart)==null?void 0:_.padding)??((A=qt().class)==null?void 0:A.padding)};s.setNode(b.id,T),sKe(b.classes,s,u,d,b.id),Xe.info("setNode",T)})},sKe=function(i,s,u,d,p){const v=Object.keys(i);Xe.info("keys:",v),Xe.info(i),v.filter(b=>i[b].parent==p).forEach(function(b){var j,K;const y=i[b],T=y.cssClasses.join(" "),_=om(y.styles),A=y.label??y.id,P=0,R="class_box",F={labelStyle:_.labelStyle,shape:R,labelText:Ive(A),classData:y,rx:P,ry:P,class:T,style:_.style,id:y.id,domId:y.domId,tooltip:d.db.getTooltip(y.id,p)||"",haveCallback:y.haveCallback,link:y.link,width:y.type==="group"?500:void 0,type:y.type,padding:((j=qt().flowchart)==null?void 0:j.padding)??((K=qt().class)==null?void 0:K.padding)};s.setNode(y.id,F),p&&s.setParent(y.id,p),Xe.info("setNode",F)})},Win=function(i,s,u,d){Xe.info(i),i.forEach(function(p,v){var K,ee;const b=p,y="",T={labelStyle:"",style:""},_=b.text,A=0,P="note",R={labelStyle:T.labelStyle,shape:P,labelText:Ive(_),noteData:b,rx:A,ry:A,class:y,style:T.style,id:b.id,domId:b.id,tooltip:"",type:"note",padding:((K=qt().flowchart)==null?void 0:K.padding)??((ee=qt().class)==null?void 0:ee.padding)};if(s.setNode(b.id,R),Xe.info("setNode",R),!b.class||!(b.class in d))return;const F=u+v,j={id:`edgeNote${F}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:Ov(Ove.curve,kp)};s.setEdge(b.id,b.class,j,F)})},Yin=function(i,s){const u=qt().flowchart;let d=0;i.forEach(function(p){var b;d++;const v={classes:"relation",pattern:p.relation.lineType==1?"dashed":"solid",id:`id_${p.id1}_${p.id2}_${d}`,arrowhead:p.type==="arrow_open"?"none":"normal",startLabelRight:p.relationTitle1==="none"?"":p.relationTitle1,endLabelLeft:p.relationTitle2==="none"?"":p.relationTitle2,arrowTypeStart:aKe(p.relation.type1),arrowTypeEnd:aKe(p.relation.type2),style:"fill:none",labelStyle:"",curve:Ov(u==null?void 0:u.curve,kp)};if(Xe.info(v,p),p.style!==void 0){const y=om(p.style);v.style=y.style,v.labelStyle=y.labelStyle}p.text=p.title,p.text===void 0?p.style!==void 0&&(v.arrowheadStyle="fill: #333"):(v.arrowheadStyle="fill: #333",v.labelpos="c",((b=qt().flowchart)==null?void 0:b.htmlLabels)??qt().htmlLabels?(v.labelType="html",v.label=''+p.text+""):(v.labelType="text",v.label=p.text.replace(ci.lineBreakRegex,` `),p.style===void 0&&(v.style=v.style||"stroke: #333; stroke-width: 1.5px;fill:none"),v.labelStyle=v.labelStyle.replace("color:","fill:"))),s.setEdge(p.id1,p.id2,v,d)})},Xin=function(i){Ove={...Ove,...i}},Qin=async function(i,s,u,d){Xe.info("Drawing class - ",s);const p=qt().flowchart??qt().class,v=qt().securityLevel;Xe.info("config:",p);const b=(p==null?void 0:p.nodeSpacing)??50,y=(p==null?void 0:p.rankSpacing)??50,T=new B0({multigraph:!0,compound:!0}).setGraph({rankdir:d.db.getDirection(),nodesep:b,ranksep:y,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),_=d.db.getNamespaces(),A=d.db.getClasses(),P=d.db.getRelations(),R=d.db.getNotes();Xe.info(P),Kin(_,T,s,d),sKe(A,T,s,d),Yin(P,T),Win(R,T,P.length+1,A);let F;v==="sandbox"&&(F=Ir("#i"+s));const j=Ir(v==="sandbox"?F.nodes()[0].contentDocument.body:"body"),K=j.select(`[id="${s}"]`),ee=j.select("#"+s+" g");if(await qme(ee,T,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",s),Ao.insertTitle(K,"classTitleText",(p==null?void 0:p.titleTopMargin)??5,d.db.getDiagramTitle()),y9(T,K,p==null?void 0:p.diagramPadding,p==null?void 0:p.useMaxWidth),!(p!=null&&p.htmlLabels)){const ie=v==="sandbox"?F.nodes()[0].contentDocument:document,oe=ie.querySelectorAll('[id="'+s+'"] .edgeLabel .label');for(const pe of oe){const be=pe.getBBox(),ae=ie.createElementNS("http://www.w3.org/2000/svg","rect");ae.setAttribute("rx",0),ae.setAttribute("ry",0),ae.setAttribute("width",be.width),ae.setAttribute("height",be.height),pe.insertBefore(ae,pe.firstChild)}}};function aKe(i){let s;switch(i){case 0:s="aggregation";break;case 1:s="extension";break;case 2:s="composition";break;case 3:s="dependency";break;case 4:s="lollipop";break;default:s="none"}return s}const Jin=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:KGe,db:yJ,renderer:{setConf:Xin,draw:Qin},styles:tKe,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,yJ.clear()}}},Symbol.toStringTag,{value:"Module"}));var Nve=function(){var i=function(Ie,Se,Ce,ke){for(Ce=Ce||{},ke=Ie.length;ke--;Ce[Ie[ke]]=Se);return Ce},s=[1,2],u=[1,3],d=[1,4],p=[2,4],v=[1,9],b=[1,11],y=[1,15],T=[1,16],_=[1,17],A=[1,18],P=[1,30],R=[1,19],F=[1,20],j=[1,21],K=[1,22],ee=[1,23],ie=[1,25],oe=[1,26],pe=[1,27],be=[1,28],ae=[1,29],ne=[1,32],se=[1,33],de=[1,34],X=[1,35],ge=[1,31],W=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],xe=[1,4,5,13,14,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],U=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],Fe={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,cssClassStatement:11,idStatement:12,DESCR:13,"-->":14,HIDE_EMPTY:15,scale:16,WIDTH:17,COMPOSIT_STATE:18,STRUCT_START:19,STRUCT_STOP:20,STATE_DESCR:21,AS:22,ID:23,FORK:24,JOIN:25,CHOICE:26,CONCURRENT:27,note:28,notePosition:29,NOTE_TEXT:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,classDef:37,CLASSDEF_ID:38,CLASSDEF_STYLEOPTS:39,DEFAULT:40,class:41,CLASSENTITY_IDS:42,STYLECLASS:43,direction_tb:44,direction_bt:45,direction_rl:46,direction_lr:47,eol:48,";":49,EDGE_STATE:50,STYLE_SEPARATOR:51,left_of:52,right_of:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",13:"DESCR",14:"-->",15:"HIDE_EMPTY",16:"scale",17:"WIDTH",18:"COMPOSIT_STATE",19:"STRUCT_START",20:"STRUCT_STOP",21:"STATE_DESCR",22:"AS",23:"ID",24:"FORK",25:"JOIN",26:"CHOICE",27:"CONCURRENT",28:"note",30:"NOTE_TEXT",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"classDef",38:"CLASSDEF_ID",39:"CLASSDEF_STYLEOPTS",40:"DEFAULT",41:"class",42:"CLASSENTITY_IDS",43:"STYLECLASS",44:"direction_tb",45:"direction_bt",46:"direction_rl",47:"direction_lr",49:";",50:"EDGE_STATE",51:"STYLE_SEPARATOR",52:"left_of",53:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[31,1],[31,1],[31,1],[31,1],[48,1],[48,1],[12,1],[12,1],[12,3],[12,3],[29,1],[29,1]],performAction:function(Se,Ce,ke,Ke,Ft,Ne,gn){var _t=Ne.length-1;switch(Ft){case 3:return Ke.setRootDoc(Ne[_t]),Ne[_t];case 4:this.$=[];break;case 5:Ne[_t]!="nl"&&(Ne[_t-1].push(Ne[_t]),this.$=Ne[_t-1]);break;case 6:case 7:this.$=Ne[_t];break;case 8:this.$="nl";break;case 11:this.$=Ne[_t];break;case 12:const xt=Ne[_t-1];xt.description=Ke.trimColon(Ne[_t]),this.$=xt;break;case 13:this.$={stmt:"relation",state1:Ne[_t-2],state2:Ne[_t]};break;case 14:const Pt=Ke.trimColon(Ne[_t]);this.$={stmt:"relation",state1:Ne[_t-3],state2:Ne[_t-1],description:Pt};break;case 18:this.$={stmt:"state",id:Ne[_t-3],type:"default",description:"",doc:Ne[_t-1]};break;case 19:var Et=Ne[_t],Gt=Ne[_t-2].trim();if(Ne[_t].match(":")){var ln=Ne[_t].split(":");Et=ln[0],Gt=[Gt,ln[1]]}this.$={stmt:"state",id:Et,type:"default",description:Gt};break;case 20:this.$={stmt:"state",id:Ne[_t-3],type:"default",description:Ne[_t-5],doc:Ne[_t-1]};break;case 21:this.$={stmt:"state",id:Ne[_t],type:"fork"};break;case 22:this.$={stmt:"state",id:Ne[_t],type:"join"};break;case 23:this.$={stmt:"state",id:Ne[_t],type:"choice"};break;case 24:this.$={stmt:"state",id:Ke.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:Ne[_t-1].trim(),note:{position:Ne[_t-2].trim(),text:Ne[_t].trim()}};break;case 28:this.$=Ne[_t].trim(),Ke.setAccTitle(this.$);break;case 29:case 30:this.$=Ne[_t].trim(),Ke.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:Ne[_t-1].trim(),classes:Ne[_t].trim()};break;case 33:this.$={stmt:"applyClass",id:Ne[_t-1].trim(),styleClass:Ne[_t].trim()};break;case 34:Ke.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:Ke.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:Ke.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:Ke.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:Ne[_t].trim(),type:"default",description:""};break;case 42:this.$={stmt:"state",id:Ne[_t-2].trim(),classes:[Ne[_t].trim()],type:"default",description:""};break;case 43:this.$={stmt:"state",id:Ne[_t-2].trim(),classes:[Ne[_t].trim()],type:"default",description:""};break}},table:[{3:1,4:s,5:u,6:d},{1:[3]},{3:5,4:s,5:u,6:d},{3:6,4:s,5:u,6:d},i([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],p,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:v,5:b,8:8,9:10,10:12,11:13,12:14,15:y,16:T,18:_,21:A,23:P,24:R,25:F,26:j,27:K,28:ee,31:24,32:ie,34:oe,36:pe,37:be,41:ae,44:ne,45:se,46:de,47:X,50:ge},i(W,[2,5]),{9:36,10:12,11:13,12:14,15:y,16:T,18:_,21:A,23:P,24:R,25:F,26:j,27:K,28:ee,31:24,32:ie,34:oe,36:pe,37:be,41:ae,44:ne,45:se,46:de,47:X,50:ge},i(W,[2,7]),i(W,[2,8]),i(W,[2,9]),i(W,[2,10]),i(W,[2,11],{13:[1,37],14:[1,38]}),i(W,[2,15]),{17:[1,39]},i(W,[2,17],{19:[1,40]}),{22:[1,41]},i(W,[2,21]),i(W,[2,22]),i(W,[2,23]),i(W,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},i(W,[2,27]),{33:[1,46]},{35:[1,47]},i(W,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},i(xe,[2,40],{51:[1,51]}),i(xe,[2,41],{51:[1,52]}),i(W,[2,34]),i(W,[2,35]),i(W,[2,36]),i(W,[2,37]),i(W,[2,6]),i(W,[2,12]),{12:53,23:P,50:ge},i(W,[2,16]),i(U,p,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},i(W,[2,28]),i(W,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},i(W,[2,13],{13:[1,63]}),{4:v,5:b,8:8,9:10,10:12,11:13,12:14,15:y,16:T,18:_,20:[1,64],21:A,23:P,24:R,25:F,26:j,27:K,28:ee,31:24,32:ie,34:oe,36:pe,37:be,41:ae,44:ne,45:se,46:de,47:X,50:ge},i(W,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},i(W,[2,31]),i(W,[2,32]),i(W,[2,33]),i(xe,[2,42]),i(xe,[2,43]),i(W,[2,14]),i(W,[2,18]),i(U,p,{7:68}),i(W,[2,25]),i(W,[2,26]),{4:v,5:b,8:8,9:10,10:12,11:13,12:14,15:y,16:T,18:_,20:[1,69],21:A,23:P,24:R,25:F,26:j,27:K,28:ee,31:24,32:ie,34:oe,36:pe,37:be,41:ae,44:ne,45:se,46:de,47:X,50:ge},i(W,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(Se,Ce){if(Ce.recoverable)this.trace(Se);else{var ke=new Error(Se);throw ke.hash=Ce,ke}},parse:function(Se){var Ce=this,ke=[0],Ke=[],Ft=[null],Ne=[],gn=this.table,_t="",Et=0,Gt=0,ln=2,xt=1,Pt=Ne.slice.call(arguments,1),Qe=Object.create(this.lexer),Dt={yy:{}};for(var kt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,kt)&&(Dt.yy[kt]=this.yy[kt]);Qe.setInput(Se,Dt.yy),Dt.yy.lexer=Qe,Dt.yy.parser=this,typeof Qe.yylloc>"u"&&(Qe.yylloc={});var On=Qe.yylloc;Ne.push(On);var ht=Qe.options&&Qe.options.ranges;typeof Dt.yy.parseError=="function"?this.parseError=Dt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function zr(){var At;return At=Ke.pop()||Qe.lex()||xt,typeof At!="number"&&(At instanceof Array&&(Ke=At,At=Ke.pop()),At=Ce.symbols_[At]||At),At}for(var yt,ji,xi,Ma,zs={},ao,Tr,Fn,qn;;){if(ji=ke[ke.length-1],this.defaultActions[ji]?xi=this.defaultActions[ji]:((yt===null||typeof yt>"u")&&(yt=zr()),xi=gn[ji]&&gn[ji][yt]),typeof xi>"u"||!xi.length||!xi[0]){var Un="";qn=[];for(ao in gn[ji])this.terminals_[ao]&&ao>ln&&qn.push("'"+this.terminals_[ao]+"'");Qe.showPosition?Un="Parse error on line "+(Et+1)+`: `+Qe.showPosition()+` Expecting `+qn.join(", ")+", got '"+(this.terminals_[yt]||yt)+"'":Un="Parse error on line "+(Et+1)+": Unexpected "+(yt==xt?"end of input":"'"+(this.terminals_[yt]||yt)+"'"),this.parseError(Un,{text:Qe.match,token:this.terminals_[yt]||yt,line:Qe.yylineno,loc:On,expected:qn})}if(xi[0]instanceof Array&&xi.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ji+", token: "+yt);switch(xi[0]){case 1:ke.push(yt),Ft.push(Qe.yytext),Ne.push(Qe.yylloc),ke.push(xi[1]),yt=null,Gt=Qe.yyleng,_t=Qe.yytext,Et=Qe.yylineno,On=Qe.yylloc;break;case 2:if(Tr=this.productions_[xi[1]][1],zs.$=Ft[Ft.length-Tr],zs._$={first_line:Ne[Ne.length-(Tr||1)].first_line,last_line:Ne[Ne.length-1].last_line,first_column:Ne[Ne.length-(Tr||1)].first_column,last_column:Ne[Ne.length-1].last_column},ht&&(zs._$.range=[Ne[Ne.length-(Tr||1)].range[0],Ne[Ne.length-1].range[1]]),Ma=this.performAction.apply(zs,[_t,Gt,Et,Dt.yy,xi[1],Ft,Ne].concat(Pt)),typeof Ma<"u")return Ma;Tr&&(ke=ke.slice(0,-1*Tr*2),Ft=Ft.slice(0,-1*Tr),Ne=Ne.slice(0,-1*Tr)),ke.push(this.productions_[xi[1]][0]),Ft.push(zs.$),Ne.push(zs._$),Fn=gn[ke[ke.length-2]][ke[ke.length-1]],ke.push(Fn);break;case 3:return!0}}return!0}},Pe=function(){var Ie={EOF:1,parseError:function(Ce,ke){if(this.yy.parser)this.yy.parser.parseError(Ce,ke);else throw new Error(Ce)},setInput:function(Se,Ce){return this.yy=Ce||this.yy||{},this._input=Se,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Se=this._input[0];this.yytext+=Se,this.yyleng++,this.offset++,this.match+=Se,this.matched+=Se;var Ce=Se.match(/(?:\r\n?|\n).*/g);return Ce?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Se},unput:function(Se){var Ce=Se.length,ke=Se.split(/(?:\r\n?|\n)/g);this._input=Se+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ce),this.offset-=Ce;var Ke=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ke.length-1&&(this.yylineno-=ke.length-1);var Ft=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ke?(ke.length===Ke.length?this.yylloc.first_column:0)+Ke[Ke.length-ke.length].length-ke[0].length:this.yylloc.first_column-Ce},this.options.ranges&&(this.yylloc.range=[Ft[0],Ft[0]+this.yyleng-Ce]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Se){this.unput(this.match.slice(Se))},pastInput:function(){var Se=this.matched.substr(0,this.matched.length-this.match.length);return(Se.length>20?"...":"")+Se.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Se=this.match;return Se.length<20&&(Se+=this._input.substr(0,20-Se.length)),(Se.substr(0,20)+(Se.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Se=this.pastInput(),Ce=new Array(Se.length+1).join("-");return Se+this.upcomingInput()+` `+Ce+"^"},test_match:function(Se,Ce){var ke,Ke,Ft;if(this.options.backtrack_lexer&&(Ft={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Ft.yylloc.range=this.yylloc.range.slice(0))),Ke=Se[0].match(/(?:\r\n?|\n).*/g),Ke&&(this.yylineno+=Ke.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ke?Ke[Ke.length-1].length-Ke[Ke.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Se[0].length},this.yytext+=Se[0],this.match+=Se[0],this.matches=Se,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Se[0].length),this.matched+=Se[0],ke=this.performAction.call(this,this.yy,this,Ce,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ke)return ke;if(this._backtrack){for(var Ne in Ft)this[Ne]=Ft[Ne];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Se,Ce,ke,Ke;this._more||(this.yytext="",this.match="");for(var Ft=this._currentRules(),Ne=0;NeCe[0].length)){if(Ce=ke,Ke=Ne,this.options.backtrack_lexer){if(Se=this.test_match(ke,Ft[Ne]),Se!==!1)return Se;if(this._backtrack){Ce=!1;continue}else return!1}else if(!this.options.flex)break}return Ce?(Se=this.test_match(Ce,Ft[Ke]),Se!==!1?Se:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ce=this.next();return Ce||this.lex()},begin:function(Ce){this.conditionStack.push(Ce)},popState:function(){var Ce=this.conditionStack.length-1;return Ce>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ce){return Ce=this.conditionStack.length-1-Math.abs(Ce||0),Ce>=0?this.conditionStack[Ce]:"INITIAL"},pushState:function(Ce){this.begin(Ce)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Ce,ke,Ke,Ft){switch(Ke){case 0:return 40;case 1:return 44;case 2:return 45;case 3:return 46;case 4:return 47;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),16;case 13:return 17;case 14:this.popState();break;case 15:return this.begin("acc_title"),32;case 16:return this.popState(),"acc_title_value";case 17:return this.begin("acc_descr"),34;case 18:return this.popState(),"acc_descr_value";case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),37;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 24:return this.popState(),this.pushState("CLASSDEFID"),38;case 25:return this.popState(),39;case 26:return this.pushState("CLASS"),41;case 27:return this.popState(),this.pushState("CLASS_STYLE"),42;case 28:return this.popState(),43;case 29:return this.pushState("SCALE"),16;case 30:return 17;case 31:this.popState();break;case 32:this.pushState("STATE");break;case 33:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),24;case 34:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),25;case 35:return this.popState(),ke.yytext=ke.yytext.slice(0,-10).trim(),26;case 36:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),24;case 37:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),25;case 38:return this.popState(),ke.yytext=ke.yytext.slice(0,-10).trim(),26;case 39:return 44;case 40:return 45;case 41:return 46;case 42:return 47;case 43:this.pushState("STATE_STRING");break;case 44:return this.pushState("STATE_ID"),"AS";case 45:return this.popState(),"ID";case 46:this.popState();break;case 47:return"STATE_DESCR";case 48:return 18;case 49:this.popState();break;case 50:return this.popState(),this.pushState("struct"),19;case 51:break;case 52:return this.popState(),20;case 53:break;case 54:return this.begin("NOTE"),28;case 55:return this.popState(),this.pushState("NOTE_ID"),52;case 56:return this.popState(),this.pushState("NOTE_ID"),53;case 57:this.popState(),this.pushState("FLOATING_NOTE");break;case 58:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 59:break;case 60:return"NOTE_TEXT";case 61:return this.popState(),"ID";case 62:return this.popState(),this.pushState("NOTE_TEXT"),23;case 63:return this.popState(),ke.yytext=ke.yytext.substr(2).trim(),30;case 64:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),30;case 65:return 6;case 66:return 6;case 67:return 15;case 68:return 50;case 69:return 23;case 70:return ke.yytext=ke.yytext.trim(),13;case 71:return 14;case 72:return 27;case 73:return 51;case 74:return 5;case 75:return"INVALID"}},rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,32,39,40,41,42,51,52,53,54,68,69,70,71,72],inclusive:!1},FLOATING_NOTE_ID:{rules:[61],inclusive:!1},FLOATING_NOTE:{rules:[58,59,60],inclusive:!1},NOTE_TEXT:{rules:[63,64],inclusive:!1},NOTE_ID:{rules:[62],inclusive:!1},NOTE:{rules:[55,56,57],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,30,31],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[45],inclusive:!1},STATE_STRING:{rules:[46,47],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,33,34,35,36,37,38,43,44,48,49,50],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,50,54,65,66,67,68,69,70,71,73,74,75],inclusive:!0}}};return Ie}();Fe.lexer=Pe;function je(){this.yy={}}return je.prototype=Fe,Fe.Parser=je,new je}();Nve.parser=Nve;const oKe=Nve,Zin="LR",esn="TB",EJ="state",Pve="relation",tsn="classDef",nsn="applyClass",XR="default",cKe="divider",Bve="[*]",uKe="start",lKe=Bve,hKe="end",fKe="color",dKe="fill",rsn="bgFill",isn=",";function gKe(){return{}}let pKe=Zin,TJ=[],QR=gKe();const bKe=()=>({relations:[],states:{},documents:{}});let CJ={root:bKe()},jg=CJ.root,JR=0,mKe=0;const ssn={LINE:0,DOTTED_LINE:1},asn={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},SJ=i=>JSON.parse(JSON.stringify(i)),osn=i=>{Xe.info("Setting root doc",i),TJ=i},csn=()=>TJ,_J=(i,s,u)=>{if(s.stmt===Pve)_J(i,s.state1,!0),_J(i,s.state2,!1);else if(s.stmt===EJ&&(s.id==="[*]"?(s.id=u?i.id+"_start":i.id+"_end",s.start=u):s.id=s.id.trim()),s.doc){const d=[];let p=[],v;for(v=0;v0&&p.length>0){const b={stmt:EJ,id:bje(),type:"divider",doc:SJ(p)};d.push(SJ(b)),s.doc=d}s.doc.forEach(b=>_J(s,b,!0))}},usn=()=>(_J({id:"root"},{id:"root",doc:TJ},!0),{id:"root",doc:TJ}),lsn=i=>{let s;i.doc?s=i.doc:s=i,Xe.info(s),vKe(!0),Xe.info("Extract",s),s.forEach(u=>{switch(u.stmt){case EJ:rS(u.id.trim(),u.type,u.doc,u.description,u.note,u.classes,u.styles,u.textStyles);break;case Pve:wKe(u.state1,u.state2,u.description);break;case tsn:yKe(u.id.trim(),u.classes);break;case nsn:$ve(u.id.trim(),u.styleClass);break}})},rS=function(i,s=XR,u=null,d=null,p=null,v=null,b=null,y=null){const T=i==null?void 0:i.trim();jg.states[T]===void 0?(Xe.info("Adding state ",T,d),jg.states[T]={id:T,descriptions:[],type:s,doc:u,note:p,classes:[],styles:[],textStyles:[]}):(jg.states[T].doc||(jg.states[T].doc=u),jg.states[T].type||(jg.states[T].type=s)),d&&(Xe.info("Setting state description",T,d),typeof d=="string"&&jve(T,d.trim()),typeof d=="object"&&d.forEach(_=>jve(T,_.trim()))),p&&(jg.states[T].note=p,jg.states[T].note.text=li.sanitizeText(jg.states[T].note.text,qt())),v&&(Xe.info("Setting state classes",T,v),(typeof v=="string"?[v]:v).forEach(A=>$ve(T,A.trim()))),b&&(Xe.info("Setting state styles",T,b),(typeof b=="string"?[b]:b).forEach(A=>ysn(T,A.trim()))),y&&(Xe.info("Setting state styles",T,b),(typeof y=="string"?[y]:y).forEach(A=>xsn(T,A.trim())))},vKe=function(i){CJ={root:bKe()},jg=CJ.root,JR=0,QR=gKe(),i||Pg()},ZR=function(i){return jg.states[i]},hsn=function(){return jg.states},fsn=function(){Xe.info("Documents = ",CJ)},dsn=function(){return jg.relations};function Fve(i=""){let s=i;return i===Bve&&(JR++,s=`${uKe}${JR}`),s}function Rve(i="",s=XR){return i===Bve?uKe:s}function gsn(i=""){let s=i;return i===lKe&&(JR++,s=`${hKe}${JR}`),s}function psn(i="",s=XR){return i===lKe?hKe:s}function bsn(i,s,u){let d=Fve(i.id.trim()),p=Rve(i.id.trim(),i.type),v=Fve(s.id.trim()),b=Rve(s.id.trim(),s.type);rS(d,p,i.doc,i.description,i.note,i.classes,i.styles,i.textStyles),rS(v,b,s.doc,s.description,s.note,s.classes,s.styles,s.textStyles),jg.relations.push({id1:d,id2:v,relationTitle:li.sanitizeText(u,qt())})}const wKe=function(i,s,u){if(typeof i=="object")bsn(i,s,u);else{const d=Fve(i.trim()),p=Rve(i),v=gsn(s.trim()),b=psn(s);rS(d,p),rS(v,b),jg.relations.push({id1:d,id2:v,title:li.sanitizeText(u,qt())})}},jve=function(i,s){const u=jg.states[i],d=s.startsWith(":")?s.replace(":","").trim():s;u.descriptions.push(li.sanitizeText(d,qt()))},msn=function(i){return i.substring(0,1)===":"?i.substr(2).trim():i.trim()},vsn=()=>(mKe++,"divider-id-"+mKe),yKe=function(i,s=""){QR[i]===void 0&&(QR[i]={id:i,styles:[],textStyles:[]});const u=QR[i];s!=null&&s.split(isn).forEach(d=>{const p=d.replace(/([^;]*);/,"$1").trim();if(d.match(fKe)){const b=p.replace(dKe,rsn).replace(fKe,dKe);u.textStyles.push(b)}u.styles.push(p)})},wsn=function(){return QR},$ve=function(i,s){i.split(",").forEach(function(u){let d=ZR(u);if(d===void 0){const p=u.trim();rS(p),d=ZR(p)}d.classes.push(s)})},ysn=function(i,s){const u=ZR(i);u!==void 0&&u.textStyles.push(s)},xsn=function(i,s){const u=ZR(i);u!==void 0&&u.textStyles.push(s)},G7={getConfig:()=>qt().state,addState:rS,clear:vKe,getState:ZR,getStates:hsn,getRelations:dsn,getClasses:wsn,getDirection:()=>pKe,addRelation:wKe,getDividerId:vsn,setDirection:i=>{pKe=i},cleanupLabel:msn,lineType:ssn,relationType:asn,logDocuments:fsn,getRootDoc:csn,setRootDoc:osn,getRootDocV2:usn,extract:lsn,trimColon:i=>i&&i[0]===":"?i.substr(1).trim():i.trim(),getAccTitle:Cp,setAccTitle:Bg,getAccDescription:_p,setAccDescription:Sp,addStyleClass:yKe,setCssClass:$ve,addDescription:jve,setDiagramTitle:cm,getDiagramTitle:Ap},xKe=i=>` +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ce=this.next();return Ce||this.lex()},begin:function(Ce){this.conditionStack.push(Ce)},popState:function(){var Ce=this.conditionStack.length-1;return Ce>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ce){return Ce=this.conditionStack.length-1-Math.abs(Ce||0),Ce>=0?this.conditionStack[Ce]:"INITIAL"},pushState:function(Ce){this.begin(Ce)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Ce,ke,Ke,Ft){switch(Ke){case 0:return 40;case 1:return 44;case 2:return 45;case 3:return 46;case 4:return 47;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),16;case 13:return 17;case 14:this.popState();break;case 15:return this.begin("acc_title"),32;case 16:return this.popState(),"acc_title_value";case 17:return this.begin("acc_descr"),34;case 18:return this.popState(),"acc_descr_value";case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),37;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 24:return this.popState(),this.pushState("CLASSDEFID"),38;case 25:return this.popState(),39;case 26:return this.pushState("CLASS"),41;case 27:return this.popState(),this.pushState("CLASS_STYLE"),42;case 28:return this.popState(),43;case 29:return this.pushState("SCALE"),16;case 30:return 17;case 31:this.popState();break;case 32:this.pushState("STATE");break;case 33:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),24;case 34:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),25;case 35:return this.popState(),ke.yytext=ke.yytext.slice(0,-10).trim(),26;case 36:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),24;case 37:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),25;case 38:return this.popState(),ke.yytext=ke.yytext.slice(0,-10).trim(),26;case 39:return 44;case 40:return 45;case 41:return 46;case 42:return 47;case 43:this.pushState("STATE_STRING");break;case 44:return this.pushState("STATE_ID"),"AS";case 45:return this.popState(),"ID";case 46:this.popState();break;case 47:return"STATE_DESCR";case 48:return 18;case 49:this.popState();break;case 50:return this.popState(),this.pushState("struct"),19;case 51:break;case 52:return this.popState(),20;case 53:break;case 54:return this.begin("NOTE"),28;case 55:return this.popState(),this.pushState("NOTE_ID"),52;case 56:return this.popState(),this.pushState("NOTE_ID"),53;case 57:this.popState(),this.pushState("FLOATING_NOTE");break;case 58:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 59:break;case 60:return"NOTE_TEXT";case 61:return this.popState(),"ID";case 62:return this.popState(),this.pushState("NOTE_TEXT"),23;case 63:return this.popState(),ke.yytext=ke.yytext.substr(2).trim(),30;case 64:return this.popState(),ke.yytext=ke.yytext.slice(0,-8).trim(),30;case 65:return 6;case 66:return 6;case 67:return 15;case 68:return 50;case 69:return 23;case 70:return ke.yytext=ke.yytext.trim(),13;case 71:return 14;case 72:return 27;case 73:return 51;case 74:return 5;case 75:return"INVALID"}},rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,32,39,40,41,42,51,52,53,54,68,69,70,71,72],inclusive:!1},FLOATING_NOTE_ID:{rules:[61],inclusive:!1},FLOATING_NOTE:{rules:[58,59,60],inclusive:!1},NOTE_TEXT:{rules:[63,64],inclusive:!1},NOTE_ID:{rules:[62],inclusive:!1},NOTE:{rules:[55,56,57],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,30,31],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[45],inclusive:!1},STATE_STRING:{rules:[46,47],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,33,34,35,36,37,38,43,44,48,49,50],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,50,54,65,66,67,68,69,70,71,73,74,75],inclusive:!0}}};return Ie}();Fe.lexer=Pe;function je(){this.yy={}}return je.prototype=Fe,Fe.Parser=je,new je}();Nve.parser=Nve;const oKe=Nve,Zin="LR",esn="TB",EJ="state",Pve="relation",tsn="classDef",nsn="applyClass",XR="default",cKe="divider",Bve="[*]",uKe="start",lKe=Bve,hKe="end",fKe="color",dKe="fill",rsn="bgFill",isn=",";function gKe(){return{}}let pKe=Zin,TJ=[],QR=gKe();const bKe=()=>({relations:[],states:{},documents:{}});let CJ={root:bKe()},jg=CJ.root,JR=0,mKe=0;const ssn={LINE:0,DOTTED_LINE:1},asn={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},SJ=i=>JSON.parse(JSON.stringify(i)),osn=i=>{Xe.info("Setting root doc",i),TJ=i},csn=()=>TJ,_J=(i,s,u)=>{if(s.stmt===Pve)_J(i,s.state1,!0),_J(i,s.state2,!1);else if(s.stmt===EJ&&(s.id==="[*]"?(s.id=u?i.id+"_start":i.id+"_end",s.start=u):s.id=s.id.trim()),s.doc){const d=[];let p=[],v;for(v=0;v0&&p.length>0){const b={stmt:EJ,id:bje(),type:"divider",doc:SJ(p)};d.push(SJ(b)),s.doc=d}s.doc.forEach(b=>_J(s,b,!0))}},usn=()=>(_J({id:"root"},{id:"root",doc:TJ},!0),{id:"root",doc:TJ}),lsn=i=>{let s;i.doc?s=i.doc:s=i,Xe.info(s),vKe(!0),Xe.info("Extract",s),s.forEach(u=>{switch(u.stmt){case EJ:rS(u.id.trim(),u.type,u.doc,u.description,u.note,u.classes,u.styles,u.textStyles);break;case Pve:wKe(u.state1,u.state2,u.description);break;case tsn:yKe(u.id.trim(),u.classes);break;case nsn:$ve(u.id.trim(),u.styleClass);break}})},rS=function(i,s=XR,u=null,d=null,p=null,v=null,b=null,y=null){const T=i==null?void 0:i.trim();jg.states[T]===void 0?(Xe.info("Adding state ",T,d),jg.states[T]={id:T,descriptions:[],type:s,doc:u,note:p,classes:[],styles:[],textStyles:[]}):(jg.states[T].doc||(jg.states[T].doc=u),jg.states[T].type||(jg.states[T].type=s)),d&&(Xe.info("Setting state description",T,d),typeof d=="string"&&jve(T,d.trim()),typeof d=="object"&&d.forEach(_=>jve(T,_.trim()))),p&&(jg.states[T].note=p,jg.states[T].note.text=ci.sanitizeText(jg.states[T].note.text,qt())),v&&(Xe.info("Setting state classes",T,v),(typeof v=="string"?[v]:v).forEach(A=>$ve(T,A.trim()))),b&&(Xe.info("Setting state styles",T,b),(typeof b=="string"?[b]:b).forEach(A=>ysn(T,A.trim()))),y&&(Xe.info("Setting state styles",T,b),(typeof y=="string"?[y]:y).forEach(A=>xsn(T,A.trim())))},vKe=function(i){CJ={root:bKe()},jg=CJ.root,JR=0,QR=gKe(),i||Pg()},ZR=function(i){return jg.states[i]},hsn=function(){return jg.states},fsn=function(){Xe.info("Documents = ",CJ)},dsn=function(){return jg.relations};function Fve(i=""){let s=i;return i===Bve&&(JR++,s=`${uKe}${JR}`),s}function Rve(i="",s=XR){return i===Bve?uKe:s}function gsn(i=""){let s=i;return i===lKe&&(JR++,s=`${hKe}${JR}`),s}function psn(i="",s=XR){return i===lKe?hKe:s}function bsn(i,s,u){let d=Fve(i.id.trim()),p=Rve(i.id.trim(),i.type),v=Fve(s.id.trim()),b=Rve(s.id.trim(),s.type);rS(d,p,i.doc,i.description,i.note,i.classes,i.styles,i.textStyles),rS(v,b,s.doc,s.description,s.note,s.classes,s.styles,s.textStyles),jg.relations.push({id1:d,id2:v,relationTitle:ci.sanitizeText(u,qt())})}const wKe=function(i,s,u){if(typeof i=="object")bsn(i,s,u);else{const d=Fve(i.trim()),p=Rve(i),v=gsn(s.trim()),b=psn(s);rS(d,p),rS(v,b),jg.relations.push({id1:d,id2:v,title:ci.sanitizeText(u,qt())})}},jve=function(i,s){const u=jg.states[i],d=s.startsWith(":")?s.replace(":","").trim():s;u.descriptions.push(ci.sanitizeText(d,qt()))},msn=function(i){return i.substring(0,1)===":"?i.substr(2).trim():i.trim()},vsn=()=>(mKe++,"divider-id-"+mKe),yKe=function(i,s=""){QR[i]===void 0&&(QR[i]={id:i,styles:[],textStyles:[]});const u=QR[i];s!=null&&s.split(isn).forEach(d=>{const p=d.replace(/([^;]*);/,"$1").trim();if(d.match(fKe)){const b=p.replace(dKe,rsn).replace(fKe,dKe);u.textStyles.push(b)}u.styles.push(p)})},wsn=function(){return QR},$ve=function(i,s){i.split(",").forEach(function(u){let d=ZR(u);if(d===void 0){const p=u.trim();rS(p),d=ZR(p)}d.classes.push(s)})},ysn=function(i,s){const u=ZR(i);u!==void 0&&u.textStyles.push(s)},xsn=function(i,s){const u=ZR(i);u!==void 0&&u.textStyles.push(s)},G7={getConfig:()=>qt().state,addState:rS,clear:vKe,getState:ZR,getStates:hsn,getRelations:dsn,getClasses:wsn,getDirection:()=>pKe,addRelation:wKe,getDividerId:vsn,setDirection:i=>{pKe=i},cleanupLabel:msn,lineType:ssn,relationType:asn,logDocuments:fsn,getRootDoc:csn,setRootDoc:osn,getRootDocV2:usn,extract:lsn,trimColon:i=>i&&i[0]===":"?i.substr(1).trim():i.trim(),getAccTitle:Cp,setAccTitle:Bg,getAccDescription:_p,setAccDescription:Sp,addStyleClass:yKe,setCssClass:$ve,addDescription:jve,setDiagramTitle:cm,getDiagramTitle:Ap},xKe=i=>` defs #statediagram-barbEnd { fill: ${i.transitionColor}; stroke: ${i.transitionColor}; @@ -1458,7 +1458,7 @@ g.stateGroup line { font-size: 18px; fill: ${i.textColor}; } -`,zve={},ksn=(i,s)=>{zve[i]=s},Esn=i=>zve[i],kKe=()=>Object.keys(zve),Tsn={get:Esn,set:ksn,keys:kKe,size:()=>kKe().length},Csn=i=>i.append("circle").attr("class","start-state").attr("r",qt().state.sizeUnit).attr("cx",qt().state.padding+qt().state.sizeUnit).attr("cy",qt().state.padding+qt().state.sizeUnit),Ssn=i=>i.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",qt().state.textHeight).attr("class","divider").attr("x2",qt().state.textHeight*2).attr("y1",0).attr("y2",0),_sn=(i,s)=>{const u=i.append("text").attr("x",2*qt().state.padding).attr("y",qt().state.textHeight+2*qt().state.padding).attr("font-size",qt().state.fontSize).attr("class","state-title").text(s.id),d=u.node().getBBox();return i.insert("rect",":first-child").attr("x",qt().state.padding).attr("y",qt().state.padding).attr("width",d.width+2*qt().state.padding).attr("height",d.height+2*qt().state.padding).attr("rx",qt().state.radius),u},Asn=(i,s)=>{const u=function(R,F,j){const K=R.append("tspan").attr("x",2*qt().state.padding).text(F);j||K.attr("dy",qt().state.textHeight)},p=i.append("text").attr("x",2*qt().state.padding).attr("y",qt().state.textHeight+1.3*qt().state.padding).attr("font-size",qt().state.fontSize).attr("class","state-title").text(s.descriptions[0]).node().getBBox(),v=p.height,b=i.append("text").attr("x",qt().state.padding).attr("y",v+qt().state.padding*.4+qt().state.dividerMargin+qt().state.textHeight).attr("class","state-description");let y=!0,T=!0;s.descriptions.forEach(function(R){y||(u(b,R,T),T=!1),y=!1});const _=i.append("line").attr("x1",qt().state.padding).attr("y1",qt().state.padding+v+qt().state.dividerMargin/2).attr("y2",qt().state.padding+v+qt().state.dividerMargin/2).attr("class","descr-divider"),A=b.node().getBBox(),P=Math.max(A.width,p.width);return _.attr("x2",P+3*qt().state.padding),i.insert("rect",":first-child").attr("x",qt().state.padding).attr("y",qt().state.padding).attr("width",P+2*qt().state.padding).attr("height",A.height+v+2*qt().state.padding).attr("rx",qt().state.radius),i},Lsn=(i,s,u)=>{const d=qt().state.padding,p=2*qt().state.padding,v=i.node().getBBox(),b=v.width,y=v.x,T=i.append("text").attr("x",0).attr("y",qt().state.titleShift).attr("font-size",qt().state.fontSize).attr("class","state-title").text(s.id),A=T.node().getBBox().width+p;let P=Math.max(A,b);P===b&&(P=P+p);let R;const F=i.node().getBBox();s.doc,R=y-d,A>b&&(R=(b-P)/2+d),Math.abs(y-F.x)b&&(R=y-(A-b)/2);const j=1-qt().state.textHeight;return i.insert("rect",":first-child").attr("x",R).attr("y",j).attr("class",u?"alt-composit":"composit").attr("width",P).attr("height",F.height+qt().state.textHeight+qt().state.titleShift+1).attr("rx","0"),T.attr("x",R+d),A<=b&&T.attr("x",y+(P-p)/2-A/2+d),i.insert("rect",":first-child").attr("x",R).attr("y",qt().state.titleShift-qt().state.textHeight-qt().state.padding).attr("width",P).attr("height",qt().state.textHeight*3).attr("rx",qt().state.radius),i.insert("rect",":first-child").attr("x",R).attr("y",qt().state.titleShift-qt().state.textHeight-qt().state.padding).attr("width",P).attr("height",F.height+3+2*qt().state.textHeight).attr("rx",qt().state.radius),i},Msn=i=>(i.append("circle").attr("class","end-state-outer").attr("r",qt().state.sizeUnit+qt().state.miniPadding).attr("cx",qt().state.padding+qt().state.sizeUnit+qt().state.miniPadding).attr("cy",qt().state.padding+qt().state.sizeUnit+qt().state.miniPadding),i.append("circle").attr("class","end-state-inner").attr("r",qt().state.sizeUnit).attr("cx",qt().state.padding+qt().state.sizeUnit+2).attr("cy",qt().state.padding+qt().state.sizeUnit+2)),Dsn=(i,s)=>{let u=qt().state.forkWidth,d=qt().state.forkHeight;if(s.parentId){let p=u;u=d,d=p}return i.append("rect").style("stroke","black").style("fill","black").attr("width",u).attr("height",d).attr("x",qt().state.padding).attr("y",qt().state.padding)},Isn=(i,s,u,d)=>{let p=0;const v=d.append("text");v.style("text-anchor","start"),v.attr("class","noteText");let b=i.replace(/\r\n/g,"
");b=b.replace(/\n/g,"
");const y=b.split(li.lineBreakRegex);let T=1.25*qt().state.noteMargin;for(const _ of y){const A=_.trim();if(A.length>0){const P=v.append("tspan");if(P.text(A),T===0){const R=P.node().getBBox();T+=R.height}p+=T,P.attr("x",s+qt().state.noteMargin),P.attr("y",u+p+1.25*qt().state.noteMargin)}}return{textWidth:v.node().getBBox().width,textHeight:p}},Osn=(i,s)=>{s.attr("class","state-note");const u=s.append("rect").attr("x",0).attr("y",qt().state.padding),d=s.append("g"),{textWidth:p,textHeight:v}=Isn(i,0,0,d);return u.attr("height",v+2*qt().state.noteMargin),u.attr("width",p+qt().state.noteMargin*2),u},EKe=function(i,s){const u=s.id,d={id:u,label:s.id,width:0,height:0},p=i.append("g").attr("id",u).attr("class","stateGroup");s.type==="start"&&Csn(p),s.type==="end"&&Msn(p),(s.type==="fork"||s.type==="join")&&Dsn(p,s),s.type==="note"&&Osn(s.note.text,p),s.type==="divider"&&Ssn(p),s.type==="default"&&s.descriptions.length===0&&_sn(p,s),s.type==="default"&&s.descriptions.length>0&&Asn(p,s);const v=p.node().getBBox();return d.width=v.width+2*qt().state.padding,d.height=v.height+2*qt().state.padding,Tsn.set(u,d),d};let TKe=0;const Nsn=function(i,s,u){const d=function(T){switch(T){case G7.relationType.AGGREGATION:return"aggregation";case G7.relationType.EXTENSION:return"extension";case G7.relationType.COMPOSITION:return"composition";case G7.relationType.DEPENDENCY:return"dependency"}};s.points=s.points.filter(T=>!Number.isNaN(T.y));const p=s.points,v=k7().x(function(T){return T.x}).y(function(T){return T.y}).curve(FF),b=i.append("path").attr("d",v(p)).attr("id","edge"+TKe).attr("class","transition");let y="";if(qt().state.arrowMarkerAbsolute&&(y=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,y=y.replace(/\(/g,"\\("),y=y.replace(/\)/g,"\\)")),b.attr("marker-end","url("+y+"#"+d(G7.relationType.DEPENDENCY)+"End)"),u.title!==void 0){const T=i.append("g").attr("class","stateLabel"),{x:_,y:A}=Ao.calcLabelPosition(s.points),P=li.getRows(u.title);let R=0;const F=[];let j=0,K=0;for(let oe=0;oe<=P.length;oe++){const pe=T.append("text").attr("text-anchor","middle").text(P[oe]).attr("x",_).attr("y",A+R),be=pe.node().getBBox();j=Math.max(j,be.width),K=Math.min(K,be.x),Xe.info(be.x,_,A+R),R===0&&(R=pe.node().getBBox().height,Xe.info("Title height",R,A)),F.push(pe)}let ee=R*P.length;if(P.length>1){const oe=(P.length-1)*R*.5;F.forEach((pe,be)=>pe.attr("y",A+be*R-oe)),ee=R*P.length}const ie=T.node().getBBox();T.insert("rect",":first-child").attr("class","box").attr("x",_-j/2-qt().state.padding/2).attr("y",A-ee/2-qt().state.padding/2-3.5).attr("width",j+qt().state.padding).attr("height",ee+qt().state.padding),Xe.info(ie)}TKe++};let gm;const qve={},Psn=function(){},Bsn=function(i){i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},Fsn=function(i,s,u,d){gm=qt().state;const p=qt().securityLevel;let v;p==="sandbox"&&(v=Ir("#i"+s));const b=Ir(p==="sandbox"?v.nodes()[0].contentDocument.body:"body"),y=p==="sandbox"?v.nodes()[0].contentDocument:document;Xe.debug("Rendering diagram "+i);const T=b.select(`[id='${s}']`);Bsn(T);const _=d.db.getRootDoc();CKe(_,T,void 0,!1,b,y,d);const A=gm.padding,P=T.node().getBBox(),R=P.width+A*2,F=P.height+A*2,j=R*1.75;Ng(T,F,j,gm.useMaxWidth),T.attr("viewBox",`${P.x-gm.padding} ${P.y-gm.padding} `+R+" "+F)},Rsn=i=>i?i.length*gm.fontSizeFactor:1,CKe=(i,s,u,d,p,v,b)=>{const y=new B0({compound:!0,multigraph:!0});let T,_=!0;for(T=0;T{const be=pe.parentElement;let ae=0,ne=0;be&&(be.parentElement&&(ae=be.parentElement.getBBox().width),ne=parseInt(be.getAttribute("data-x-shift"),10),Number.isNaN(ne)&&(ne=0)),pe.setAttribute("x1",0-ne+8),pe.setAttribute("x2",ae-ne-8)})):Xe.debug("No Node "+ie+": "+JSON.stringify(y.node(ie)))});let K=j.getBBox();y.edges().forEach(function(ie){ie!==void 0&&y.edge(ie)!==void 0&&(Xe.debug("Edge "+ie.v+" -> "+ie.w+": "+JSON.stringify(y.edge(ie))),Nsn(s,y.edge(ie),y.edge(ie).relation))}),K=j.getBBox();const ee={id:u||"root",label:u||"root",width:0,height:0};return ee.width=K.width+2*gm.padding,ee.height=K.height+2*gm.padding,Xe.debug("Doc rendered",ee,y),ee},jsn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:oKe,db:G7,renderer:{setConf:Psn,draw:Fsn},styles:xKe,init:i=>{i.state||(i.state={}),i.state.arrowMarkerAbsolute=i.arrowMarkerAbsolute,G7.clear()}}},Symbol.toStringTag,{value:"Module"})),AJ="rect",Hve="rectWithTitle",$sn="start",zsn="end",qsn="divider",Hsn="roundedWithTitle",Vsn="note",Usn="noteGroup",QD="statediagram",Gsn=`${QD}-state`,SKe="transition",Ksn="note",Wsn=`${SKe} note-edge`,Ysn=`${QD}-${Ksn}`,Xsn=`${QD}-cluster`,Qsn=`${QD}-cluster-alt`,_Ke="parent",AKe="note",Jsn="state",Vve="----",Zsn=`${Vve}${AKe}`,LKe=`${Vve}${_Ke}`,MKe="fill:none",DKe="fill: #333",IKe="c",OKe="text",NKe="normal";let LJ={},j9=0;const ean=function(i){const s=Object.keys(i);for(const u of s)i[u]},tan=function(i,s){return s.db.extract(s.db.getRootDocV2()),s.db.getClasses()};function nan(i){return i==null?"":i.classes?i.classes.join(" "):""}function Uve(i="",s=0,u="",d=Vve){const p=u!==null&&u.length>0?`${d}${u}`:"";return`${Jsn}-${i}${p}-${s}`}const ej=(i,s,u,d,p,v)=>{const b=u.id,y=nan(d[b]);if(b!=="root"){let T=AJ;u.start===!0&&(T=$sn),u.start===!1&&(T=zsn),u.type!==XR&&(T=u.type),LJ[b]||(LJ[b]={id:b,shape:T,description:li.sanitizeText(b,qt()),classes:`${y} ${Gsn}`});const _=LJ[b];u.description&&(Array.isArray(_.description)?(_.shape=Hve,_.description.push(u.description)):_.description.length>0?(_.shape=Hve,_.description===b?_.description=[u.description]:_.description=[_.description,u.description]):(_.shape=AJ,_.description=u.description),_.description=li.sanitizeTextOrArray(_.description,qt())),_.description.length===1&&_.shape===Hve&&(_.shape=AJ),!_.type&&u.doc&&(Xe.info("Setting cluster for ",b,Gve(u)),_.type="group",_.dir=Gve(u),_.shape=u.type===cKe?qsn:Hsn,_.classes=_.classes+" "+Xsn+" "+(v?Qsn:""));const A={labelStyle:"",shape:_.shape,labelText:_.description,classes:_.classes,style:"",id:b,dir:_.dir,domId:Uve(b,j9),type:_.type,padding:15};if(A.centerLabel=!0,u.note){const P={labelStyle:"",shape:Vsn,labelText:u.note.text,classes:Ysn,style:"",id:b+Zsn+"-"+j9,domId:Uve(b,j9,AKe),type:_.type,padding:15},R={labelStyle:"",shape:Usn,labelText:u.note.text,classes:_.classes,style:"",id:b+LKe,domId:Uve(b,j9,_Ke),type:"group",padding:0};j9++;const F=b+LKe;i.setNode(F,R),i.setNode(P.id,P),i.setNode(b,A),i.setParent(b,F),i.setParent(P.id,F);let j=b,K=P.id;u.note.position==="left of"&&(j=P.id,K=b),i.setEdge(j,K,{arrowhead:"none",arrowType:"",style:MKe,labelStyle:"",classes:Wsn,arrowheadStyle:DKe,labelpos:IKe,labelType:OKe,thickness:NKe})}else i.setNode(b,A)}s&&s.id!=="root"&&(Xe.trace("Setting node ",b," to be child of its parent ",s.id),i.setParent(b,s.id)),u.doc&&(Xe.trace("Adding nodes children "),ran(i,u,u.doc,d,p,!v))},ran=(i,s,u,d,p,v)=>{Xe.trace("items",u),u.forEach(b=>{switch(b.stmt){case EJ:ej(i,s,b,d,p,v);break;case XR:ej(i,s,b,d,p,v);break;case Pve:{ej(i,s,b.state1,d,p,v),ej(i,s,b.state2,d,p,v);const y={id:"edge"+j9,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:MKe,labelStyle:"",label:li.sanitizeText(b.description,qt()),arrowheadStyle:DKe,labelpos:IKe,labelType:OKe,thickness:NKe,classes:SKe};i.setEdge(b.state1.id,b.state2.id,y,j9),j9++}break}})},Gve=(i,s=esn)=>{let u=s;if(i.doc)for(let d=0;d{i.state||(i.state={}),i.state.arrowMarkerAbsolute=i.arrowMarkerAbsolute,G7.clear()}}},Symbol.toStringTag,{value:"Module"}));var Kve=function(){var i=function(P,R,F,j){for(F=F||{},j=P.length;j--;F[P[j]]=R);return F},s=[6,8,10,11,12,14,16,17,18],u=[1,9],d=[1,10],p=[1,11],v=[1,12],b=[1,13],y=[1,14],T={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:function(R,F,j,K,ee,ie,oe){var pe=ie.length-1;switch(ee){case 1:return ie[pe-1];case 2:this.$=[];break;case 3:ie[pe-1].push(ie[pe]),this.$=ie[pe-1];break;case 4:case 5:this.$=ie[pe];break;case 6:case 7:this.$=[];break;case 8:K.setDiagramTitle(ie[pe].substr(6)),this.$=ie[pe].substr(6);break;case 9:this.$=ie[pe].trim(),K.setAccTitle(this.$);break;case 10:case 11:this.$=ie[pe].trim(),K.setAccDescription(this.$);break;case 12:K.addSection(ie[pe].substr(8)),this.$=ie[pe].substr(8);break;case 13:K.addTask(ie[pe-1],ie[pe]),this.$="task";break}},table:[{3:1,4:[1,2]},{1:[3]},i(s,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:u,12:d,14:p,16:v,17:b,18:y},i(s,[2,7],{1:[2,1]}),i(s,[2,3]),{9:15,11:u,12:d,14:p,16:v,17:b,18:y},i(s,[2,5]),i(s,[2,6]),i(s,[2,8]),{13:[1,16]},{15:[1,17]},i(s,[2,11]),i(s,[2,12]),{19:[1,18]},i(s,[2,4]),i(s,[2,9]),i(s,[2,10]),i(s,[2,13])],defaultActions:{},parseError:function(R,F){if(F.recoverable)this.trace(R);else{var j=new Error(R);throw j.hash=F,j}},parse:function(R){var F=this,j=[0],K=[],ee=[null],ie=[],oe=this.table,pe="",be=0,ae=0,ne=2,se=1,de=ie.slice.call(arguments,1),X=Object.create(this.lexer),ge={yy:{}};for(var W in this.yy)Object.prototype.hasOwnProperty.call(this.yy,W)&&(ge.yy[W]=this.yy[W]);X.setInput(R,ge.yy),ge.yy.lexer=X,ge.yy.parser=this,typeof X.yylloc>"u"&&(X.yylloc={});var xe=X.yylloc;ie.push(xe);var U=X.options&&X.options.ranges;typeof ge.yy.parseError=="function"?this.parseError=ge.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Fe(){var _t;return _t=K.pop()||X.lex()||se,typeof _t!="number"&&(_t instanceof Array&&(K=_t,_t=K.pop()),_t=F.symbols_[_t]||_t),_t}for(var Pe,je,Ie,Se,Ce={},ke,Ke,Ft,Ne;;){if(je=j[j.length-1],this.defaultActions[je]?Ie=this.defaultActions[je]:((Pe===null||typeof Pe>"u")&&(Pe=Fe()),Ie=oe[je]&&oe[je][Pe]),typeof Ie>"u"||!Ie.length||!Ie[0]){var gn="";Ne=[];for(ke in oe[je])this.terminals_[ke]&&ke>ne&&Ne.push("'"+this.terminals_[ke]+"'");X.showPosition?gn="Parse error on line "+(be+1)+`: +`,zve={},ksn=(i,s)=>{zve[i]=s},Esn=i=>zve[i],kKe=()=>Object.keys(zve),Tsn={get:Esn,set:ksn,keys:kKe,size:()=>kKe().length},Csn=i=>i.append("circle").attr("class","start-state").attr("r",qt().state.sizeUnit).attr("cx",qt().state.padding+qt().state.sizeUnit).attr("cy",qt().state.padding+qt().state.sizeUnit),Ssn=i=>i.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",qt().state.textHeight).attr("class","divider").attr("x2",qt().state.textHeight*2).attr("y1",0).attr("y2",0),_sn=(i,s)=>{const u=i.append("text").attr("x",2*qt().state.padding).attr("y",qt().state.textHeight+2*qt().state.padding).attr("font-size",qt().state.fontSize).attr("class","state-title").text(s.id),d=u.node().getBBox();return i.insert("rect",":first-child").attr("x",qt().state.padding).attr("y",qt().state.padding).attr("width",d.width+2*qt().state.padding).attr("height",d.height+2*qt().state.padding).attr("rx",qt().state.radius),u},Asn=(i,s)=>{const u=function(R,F,j){const K=R.append("tspan").attr("x",2*qt().state.padding).text(F);j||K.attr("dy",qt().state.textHeight)},p=i.append("text").attr("x",2*qt().state.padding).attr("y",qt().state.textHeight+1.3*qt().state.padding).attr("font-size",qt().state.fontSize).attr("class","state-title").text(s.descriptions[0]).node().getBBox(),v=p.height,b=i.append("text").attr("x",qt().state.padding).attr("y",v+qt().state.padding*.4+qt().state.dividerMargin+qt().state.textHeight).attr("class","state-description");let y=!0,T=!0;s.descriptions.forEach(function(R){y||(u(b,R,T),T=!1),y=!1});const _=i.append("line").attr("x1",qt().state.padding).attr("y1",qt().state.padding+v+qt().state.dividerMargin/2).attr("y2",qt().state.padding+v+qt().state.dividerMargin/2).attr("class","descr-divider"),A=b.node().getBBox(),P=Math.max(A.width,p.width);return _.attr("x2",P+3*qt().state.padding),i.insert("rect",":first-child").attr("x",qt().state.padding).attr("y",qt().state.padding).attr("width",P+2*qt().state.padding).attr("height",A.height+v+2*qt().state.padding).attr("rx",qt().state.radius),i},Lsn=(i,s,u)=>{const d=qt().state.padding,p=2*qt().state.padding,v=i.node().getBBox(),b=v.width,y=v.x,T=i.append("text").attr("x",0).attr("y",qt().state.titleShift).attr("font-size",qt().state.fontSize).attr("class","state-title").text(s.id),A=T.node().getBBox().width+p;let P=Math.max(A,b);P===b&&(P=P+p);let R;const F=i.node().getBBox();s.doc,R=y-d,A>b&&(R=(b-P)/2+d),Math.abs(y-F.x)b&&(R=y-(A-b)/2);const j=1-qt().state.textHeight;return i.insert("rect",":first-child").attr("x",R).attr("y",j).attr("class",u?"alt-composit":"composit").attr("width",P).attr("height",F.height+qt().state.textHeight+qt().state.titleShift+1).attr("rx","0"),T.attr("x",R+d),A<=b&&T.attr("x",y+(P-p)/2-A/2+d),i.insert("rect",":first-child").attr("x",R).attr("y",qt().state.titleShift-qt().state.textHeight-qt().state.padding).attr("width",P).attr("height",qt().state.textHeight*3).attr("rx",qt().state.radius),i.insert("rect",":first-child").attr("x",R).attr("y",qt().state.titleShift-qt().state.textHeight-qt().state.padding).attr("width",P).attr("height",F.height+3+2*qt().state.textHeight).attr("rx",qt().state.radius),i},Msn=i=>(i.append("circle").attr("class","end-state-outer").attr("r",qt().state.sizeUnit+qt().state.miniPadding).attr("cx",qt().state.padding+qt().state.sizeUnit+qt().state.miniPadding).attr("cy",qt().state.padding+qt().state.sizeUnit+qt().state.miniPadding),i.append("circle").attr("class","end-state-inner").attr("r",qt().state.sizeUnit).attr("cx",qt().state.padding+qt().state.sizeUnit+2).attr("cy",qt().state.padding+qt().state.sizeUnit+2)),Dsn=(i,s)=>{let u=qt().state.forkWidth,d=qt().state.forkHeight;if(s.parentId){let p=u;u=d,d=p}return i.append("rect").style("stroke","black").style("fill","black").attr("width",u).attr("height",d).attr("x",qt().state.padding).attr("y",qt().state.padding)},Isn=(i,s,u,d)=>{let p=0;const v=d.append("text");v.style("text-anchor","start"),v.attr("class","noteText");let b=i.replace(/\r\n/g,"
");b=b.replace(/\n/g,"
");const y=b.split(ci.lineBreakRegex);let T=1.25*qt().state.noteMargin;for(const _ of y){const A=_.trim();if(A.length>0){const P=v.append("tspan");if(P.text(A),T===0){const R=P.node().getBBox();T+=R.height}p+=T,P.attr("x",s+qt().state.noteMargin),P.attr("y",u+p+1.25*qt().state.noteMargin)}}return{textWidth:v.node().getBBox().width,textHeight:p}},Osn=(i,s)=>{s.attr("class","state-note");const u=s.append("rect").attr("x",0).attr("y",qt().state.padding),d=s.append("g"),{textWidth:p,textHeight:v}=Isn(i,0,0,d);return u.attr("height",v+2*qt().state.noteMargin),u.attr("width",p+qt().state.noteMargin*2),u},EKe=function(i,s){const u=s.id,d={id:u,label:s.id,width:0,height:0},p=i.append("g").attr("id",u).attr("class","stateGroup");s.type==="start"&&Csn(p),s.type==="end"&&Msn(p),(s.type==="fork"||s.type==="join")&&Dsn(p,s),s.type==="note"&&Osn(s.note.text,p),s.type==="divider"&&Ssn(p),s.type==="default"&&s.descriptions.length===0&&_sn(p,s),s.type==="default"&&s.descriptions.length>0&&Asn(p,s);const v=p.node().getBBox();return d.width=v.width+2*qt().state.padding,d.height=v.height+2*qt().state.padding,Tsn.set(u,d),d};let TKe=0;const Nsn=function(i,s,u){const d=function(T){switch(T){case G7.relationType.AGGREGATION:return"aggregation";case G7.relationType.EXTENSION:return"extension";case G7.relationType.COMPOSITION:return"composition";case G7.relationType.DEPENDENCY:return"dependency"}};s.points=s.points.filter(T=>!Number.isNaN(T.y));const p=s.points,v=k7().x(function(T){return T.x}).y(function(T){return T.y}).curve(FF),b=i.append("path").attr("d",v(p)).attr("id","edge"+TKe).attr("class","transition");let y="";if(qt().state.arrowMarkerAbsolute&&(y=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,y=y.replace(/\(/g,"\\("),y=y.replace(/\)/g,"\\)")),b.attr("marker-end","url("+y+"#"+d(G7.relationType.DEPENDENCY)+"End)"),u.title!==void 0){const T=i.append("g").attr("class","stateLabel"),{x:_,y:A}=Ao.calcLabelPosition(s.points),P=ci.getRows(u.title);let R=0;const F=[];let j=0,K=0;for(let oe=0;oe<=P.length;oe++){const pe=T.append("text").attr("text-anchor","middle").text(P[oe]).attr("x",_).attr("y",A+R),be=pe.node().getBBox();j=Math.max(j,be.width),K=Math.min(K,be.x),Xe.info(be.x,_,A+R),R===0&&(R=pe.node().getBBox().height,Xe.info("Title height",R,A)),F.push(pe)}let ee=R*P.length;if(P.length>1){const oe=(P.length-1)*R*.5;F.forEach((pe,be)=>pe.attr("y",A+be*R-oe)),ee=R*P.length}const ie=T.node().getBBox();T.insert("rect",":first-child").attr("class","box").attr("x",_-j/2-qt().state.padding/2).attr("y",A-ee/2-qt().state.padding/2-3.5).attr("width",j+qt().state.padding).attr("height",ee+qt().state.padding),Xe.info(ie)}TKe++};let gm;const qve={},Psn=function(){},Bsn=function(i){i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},Fsn=function(i,s,u,d){gm=qt().state;const p=qt().securityLevel;let v;p==="sandbox"&&(v=Ir("#i"+s));const b=Ir(p==="sandbox"?v.nodes()[0].contentDocument.body:"body"),y=p==="sandbox"?v.nodes()[0].contentDocument:document;Xe.debug("Rendering diagram "+i);const T=b.select(`[id='${s}']`);Bsn(T);const _=d.db.getRootDoc();CKe(_,T,void 0,!1,b,y,d);const A=gm.padding,P=T.node().getBBox(),R=P.width+A*2,F=P.height+A*2,j=R*1.75;Ng(T,F,j,gm.useMaxWidth),T.attr("viewBox",`${P.x-gm.padding} ${P.y-gm.padding} `+R+" "+F)},Rsn=i=>i?i.length*gm.fontSizeFactor:1,CKe=(i,s,u,d,p,v,b)=>{const y=new B0({compound:!0,multigraph:!0});let T,_=!0;for(T=0;T{const be=pe.parentElement;let ae=0,ne=0;be&&(be.parentElement&&(ae=be.parentElement.getBBox().width),ne=parseInt(be.getAttribute("data-x-shift"),10),Number.isNaN(ne)&&(ne=0)),pe.setAttribute("x1",0-ne+8),pe.setAttribute("x2",ae-ne-8)})):Xe.debug("No Node "+ie+": "+JSON.stringify(y.node(ie)))});let K=j.getBBox();y.edges().forEach(function(ie){ie!==void 0&&y.edge(ie)!==void 0&&(Xe.debug("Edge "+ie.v+" -> "+ie.w+": "+JSON.stringify(y.edge(ie))),Nsn(s,y.edge(ie),y.edge(ie).relation))}),K=j.getBBox();const ee={id:u||"root",label:u||"root",width:0,height:0};return ee.width=K.width+2*gm.padding,ee.height=K.height+2*gm.padding,Xe.debug("Doc rendered",ee,y),ee},jsn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:oKe,db:G7,renderer:{setConf:Psn,draw:Fsn},styles:xKe,init:i=>{i.state||(i.state={}),i.state.arrowMarkerAbsolute=i.arrowMarkerAbsolute,G7.clear()}}},Symbol.toStringTag,{value:"Module"})),AJ="rect",Hve="rectWithTitle",$sn="start",zsn="end",qsn="divider",Hsn="roundedWithTitle",Vsn="note",Usn="noteGroup",QD="statediagram",Gsn=`${QD}-state`,SKe="transition",Ksn="note",Wsn=`${SKe} note-edge`,Ysn=`${QD}-${Ksn}`,Xsn=`${QD}-cluster`,Qsn=`${QD}-cluster-alt`,_Ke="parent",AKe="note",Jsn="state",Vve="----",Zsn=`${Vve}${AKe}`,LKe=`${Vve}${_Ke}`,MKe="fill:none",DKe="fill: #333",IKe="c",OKe="text",NKe="normal";let LJ={},j9=0;const ean=function(i){const s=Object.keys(i);for(const u of s)i[u]},tan=function(i,s){return s.db.extract(s.db.getRootDocV2()),s.db.getClasses()};function nan(i){return i==null?"":i.classes?i.classes.join(" "):""}function Uve(i="",s=0,u="",d=Vve){const p=u!==null&&u.length>0?`${d}${u}`:"";return`${Jsn}-${i}${p}-${s}`}const ej=(i,s,u,d,p,v)=>{const b=u.id,y=nan(d[b]);if(b!=="root"){let T=AJ;u.start===!0&&(T=$sn),u.start===!1&&(T=zsn),u.type!==XR&&(T=u.type),LJ[b]||(LJ[b]={id:b,shape:T,description:ci.sanitizeText(b,qt()),classes:`${y} ${Gsn}`});const _=LJ[b];u.description&&(Array.isArray(_.description)?(_.shape=Hve,_.description.push(u.description)):_.description.length>0?(_.shape=Hve,_.description===b?_.description=[u.description]:_.description=[_.description,u.description]):(_.shape=AJ,_.description=u.description),_.description=ci.sanitizeTextOrArray(_.description,qt())),_.description.length===1&&_.shape===Hve&&(_.shape=AJ),!_.type&&u.doc&&(Xe.info("Setting cluster for ",b,Gve(u)),_.type="group",_.dir=Gve(u),_.shape=u.type===cKe?qsn:Hsn,_.classes=_.classes+" "+Xsn+" "+(v?Qsn:""));const A={labelStyle:"",shape:_.shape,labelText:_.description,classes:_.classes,style:"",id:b,dir:_.dir,domId:Uve(b,j9),type:_.type,padding:15};if(A.centerLabel=!0,u.note){const P={labelStyle:"",shape:Vsn,labelText:u.note.text,classes:Ysn,style:"",id:b+Zsn+"-"+j9,domId:Uve(b,j9,AKe),type:_.type,padding:15},R={labelStyle:"",shape:Usn,labelText:u.note.text,classes:_.classes,style:"",id:b+LKe,domId:Uve(b,j9,_Ke),type:"group",padding:0};j9++;const F=b+LKe;i.setNode(F,R),i.setNode(P.id,P),i.setNode(b,A),i.setParent(b,F),i.setParent(P.id,F);let j=b,K=P.id;u.note.position==="left of"&&(j=P.id,K=b),i.setEdge(j,K,{arrowhead:"none",arrowType:"",style:MKe,labelStyle:"",classes:Wsn,arrowheadStyle:DKe,labelpos:IKe,labelType:OKe,thickness:NKe})}else i.setNode(b,A)}s&&s.id!=="root"&&(Xe.trace("Setting node ",b," to be child of its parent ",s.id),i.setParent(b,s.id)),u.doc&&(Xe.trace("Adding nodes children "),ran(i,u,u.doc,d,p,!v))},ran=(i,s,u,d,p,v)=>{Xe.trace("items",u),u.forEach(b=>{switch(b.stmt){case EJ:ej(i,s,b,d,p,v);break;case XR:ej(i,s,b,d,p,v);break;case Pve:{ej(i,s,b.state1,d,p,v),ej(i,s,b.state2,d,p,v);const y={id:"edge"+j9,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:MKe,labelStyle:"",label:ci.sanitizeText(b.description,qt()),arrowheadStyle:DKe,labelpos:IKe,labelType:OKe,thickness:NKe,classes:SKe};i.setEdge(b.state1.id,b.state2.id,y,j9),j9++}break}})},Gve=(i,s=esn)=>{let u=s;if(i.doc)for(let d=0;d{i.state||(i.state={}),i.state.arrowMarkerAbsolute=i.arrowMarkerAbsolute,G7.clear()}}},Symbol.toStringTag,{value:"Module"}));var Kve=function(){var i=function(P,R,F,j){for(F=F||{},j=P.length;j--;F[P[j]]=R);return F},s=[6,8,10,11,12,14,16,17,18],u=[1,9],d=[1,10],p=[1,11],v=[1,12],b=[1,13],y=[1,14],T={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:function(R,F,j,K,ee,ie,oe){var pe=ie.length-1;switch(ee){case 1:return ie[pe-1];case 2:this.$=[];break;case 3:ie[pe-1].push(ie[pe]),this.$=ie[pe-1];break;case 4:case 5:this.$=ie[pe];break;case 6:case 7:this.$=[];break;case 8:K.setDiagramTitle(ie[pe].substr(6)),this.$=ie[pe].substr(6);break;case 9:this.$=ie[pe].trim(),K.setAccTitle(this.$);break;case 10:case 11:this.$=ie[pe].trim(),K.setAccDescription(this.$);break;case 12:K.addSection(ie[pe].substr(8)),this.$=ie[pe].substr(8);break;case 13:K.addTask(ie[pe-1],ie[pe]),this.$="task";break}},table:[{3:1,4:[1,2]},{1:[3]},i(s,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:u,12:d,14:p,16:v,17:b,18:y},i(s,[2,7],{1:[2,1]}),i(s,[2,3]),{9:15,11:u,12:d,14:p,16:v,17:b,18:y},i(s,[2,5]),i(s,[2,6]),i(s,[2,8]),{13:[1,16]},{15:[1,17]},i(s,[2,11]),i(s,[2,12]),{19:[1,18]},i(s,[2,4]),i(s,[2,9]),i(s,[2,10]),i(s,[2,13])],defaultActions:{},parseError:function(R,F){if(F.recoverable)this.trace(R);else{var j=new Error(R);throw j.hash=F,j}},parse:function(R){var F=this,j=[0],K=[],ee=[null],ie=[],oe=this.table,pe="",be=0,ae=0,ne=2,se=1,de=ie.slice.call(arguments,1),X=Object.create(this.lexer),ge={yy:{}};for(var W in this.yy)Object.prototype.hasOwnProperty.call(this.yy,W)&&(ge.yy[W]=this.yy[W]);X.setInput(R,ge.yy),ge.yy.lexer=X,ge.yy.parser=this,typeof X.yylloc>"u"&&(X.yylloc={});var xe=X.yylloc;ie.push(xe);var U=X.options&&X.options.ranges;typeof ge.yy.parseError=="function"?this.parseError=ge.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Fe(){var _t;return _t=K.pop()||X.lex()||se,typeof _t!="number"&&(_t instanceof Array&&(K=_t,_t=K.pop()),_t=F.symbols_[_t]||_t),_t}for(var Pe,je,Ie,Se,Ce={},ke,Ke,Ft,Ne;;){if(je=j[j.length-1],this.defaultActions[je]?Ie=this.defaultActions[je]:((Pe===null||typeof Pe>"u")&&(Pe=Fe()),Ie=oe[je]&&oe[je][Pe]),typeof Ie>"u"||!Ie.length||!Ie[0]){var gn="";Ne=[];for(ke in oe[je])this.terminals_[ke]&&ke>ne&&Ne.push("'"+this.terminals_[ke]+"'");X.showPosition?gn="Parse error on line "+(be+1)+`: `+X.showPosition()+` Expecting `+Ne.join(", ")+", got '"+(this.terminals_[Pe]||Pe)+"'":gn="Parse error on line "+(be+1)+": Unexpected "+(Pe==se?"end of input":"'"+(this.terminals_[Pe]||Pe)+"'"),this.parseError(gn,{text:X.match,token:this.terminals_[Pe]||Pe,line:X.yylineno,loc:xe,expected:Ne})}if(Ie[0]instanceof Array&&Ie.length>1)throw new Error("Parse Error: multiple actions possible at state: "+je+", token: "+Pe);switch(Ie[0]){case 1:j.push(Pe),ee.push(X.yytext),ie.push(X.yylloc),j.push(Ie[1]),Pe=null,ae=X.yyleng,pe=X.yytext,be=X.yylineno,xe=X.yylloc;break;case 2:if(Ke=this.productions_[Ie[1]][1],Ce.$=ee[ee.length-Ke],Ce._$={first_line:ie[ie.length-(Ke||1)].first_line,last_line:ie[ie.length-1].last_line,first_column:ie[ie.length-(Ke||1)].first_column,last_column:ie[ie.length-1].last_column},U&&(Ce._$.range=[ie[ie.length-(Ke||1)].range[0],ie[ie.length-1].range[1]]),Se=this.performAction.apply(Ce,[pe,ae,be,ge.yy,Ie[1],ee,ie].concat(de)),typeof Se<"u")return Se;Ke&&(j=j.slice(0,-1*Ke*2),ee=ee.slice(0,-1*Ke),ie=ie.slice(0,-1*Ke)),j.push(this.productions_[Ie[1]][0]),ee.push(Ce.$),ie.push(Ce._$),Ft=oe[j[j.length-2]][j[j.length-1]],j.push(Ft);break;case 3:return!0}}return!0}},_=function(){var P={EOF:1,parseError:function(F,j){if(this.yy.parser)this.yy.parser.parseError(F,j);else throw new Error(F)},setInput:function(R,F){return this.yy=F||this.yy||{},this._input=R,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var R=this._input[0];this.yytext+=R,this.yyleng++,this.offset++,this.match+=R,this.matched+=R;var F=R.match(/(?:\r\n?|\n).*/g);return F?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),R},unput:function(R){var F=R.length,j=R.split(/(?:\r\n?|\n)/g);this._input=R+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-F),this.offset-=F;var K=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),j.length-1&&(this.yylineno-=j.length-1);var ee=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:j?(j.length===K.length?this.yylloc.first_column:0)+K[K.length-j.length].length-j[0].length:this.yylloc.first_column-F},this.options.ranges&&(this.yylloc.range=[ee[0],ee[0]+this.yyleng-F]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(R){this.unput(this.match.slice(R))},pastInput:function(){var R=this.matched.substr(0,this.matched.length-this.match.length);return(R.length>20?"...":"")+R.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var R=this.match;return R.length<20&&(R+=this._input.substr(0,20-R.length)),(R.substr(0,20)+(R.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var R=this.pastInput(),F=new Array(R.length+1).join("-");return R+this.upcomingInput()+` @@ -1596,17 +1596,17 @@ Expecting `+Ne.join(", ")+", got '"+(this.terminals_[Pe]||Pe)+"'":gn="Parse erro .actor-5 { ${i.actor5?`fill: ${i.actor5}`:""}; } -`,Yve=function(i,s){return AQ(i,s)},gan=function(i,s){const d=i.append("circle").attr("cx",s.cx).attr("cy",s.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),p=i.append("g");p.append("circle").attr("cx",s.cx-15/3).attr("cy",s.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),p.append("circle").attr("cx",s.cx+15/3).attr("cy",s.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function v(T){const _=lD().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);T.append("path").attr("class","mouth").attr("d",_).attr("transform","translate("+s.cx+","+(s.cy+2)+")")}function b(T){const _=lD().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);T.append("path").attr("class","mouth").attr("d",_).attr("transform","translate("+s.cx+","+(s.cy+7)+")")}function y(T){T.append("line").attr("class","mouth").attr("stroke",2).attr("x1",s.cx-5).attr("y1",s.cy+7).attr("x2",s.cx+5).attr("y2",s.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return s.score>3?v(p):s.score<3?b(p):y(p),d},FKe=function(i,s){const u=i.append("circle");return u.attr("cx",s.cx),u.attr("cy",s.cy),u.attr("class","actor-"+s.pos),u.attr("fill",s.fill),u.attr("stroke",s.stroke),u.attr("r",s.r),u.class!==void 0&&u.attr("class",u.class),s.title!==void 0&&u.append("title").text(s.title),u},RKe=function(i,s){return tUt(i,s)},pan=function(i,s){function u(p,v,b,y,T){return p+","+v+" "+(p+b)+","+v+" "+(p+b)+","+(v+y-T)+" "+(p+b-T*1.2)+","+(v+y)+" "+p+","+(v+y)}const d=i.append("polygon");d.attr("points",u(s.x,s.y,50,20,7)),d.attr("class","labelBox"),s.y=s.y+s.labelMargin,s.x=s.x+.5*s.labelMargin,RKe(i,s)},ban=function(i,s,u){const d=i.append("g"),p=qC();p.x=s.x,p.y=s.y,p.fill=s.fill,p.width=u.width*s.taskCount+u.diagramMarginX*(s.taskCount-1),p.height=u.height,p.class="journey-section section-type-"+s.num,p.rx=3,p.ry=3,Yve(d,p),$Ke(u)(s.text,d,p.x,p.y,p.width,p.height,{class:"journey-section section-type-"+s.num},u,s.colour)};let jKe=-1;const man=function(i,s,u){const d=s.x+u.width/2,p=i.append("g");jKe++;const v=300+5*30;p.append("line").attr("id","task"+jKe).attr("x1",d).attr("y1",s.y).attr("x2",d).attr("y2",v).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),gan(p,{cx:d,cy:300+(5-s.score)*30,score:s.score});const b=qC();b.x=s.x,b.y=s.y,b.fill=s.fill,b.width=u.width,b.height=u.height,b.class="task task-type-"+s.num,b.rx=3,b.ry=3,Yve(p,b);let y=s.x+14;s.people.forEach(T=>{const _=s.actors[T].color,A={cx:y,cy:s.y,r:7,fill:_,stroke:"#000",title:T,pos:s.actors[T].position};FKe(p,A),y+=10}),$Ke(u)(s.task,p,b.x,b.y,b.width,b.height,{class:"task"},u,s.colour)},van=function(i,s){Tqe(i,s)},$Ke=function(){function i(p,v,b,y,T,_,A,P){const R=v.append("text").attr("x",b+T/2).attr("y",y+_/2+5).style("font-color",P).style("text-anchor","middle").text(p);d(R,A)}function s(p,v,b,y,T,_,A,P,R){const{taskFontSize:F,taskFontFamily:j}=P,K=p.split(//gi);for(let ee=0;ee{const p=K7[d].color,v={cx:20,cy:u,r:7,fill:p,stroke:"#000",pos:K7[d].position};rj.drawCircle(i,v);const b={x:40,y:u+7,fill:"#666",text:d,textMargin:s.boxTextMargin|5};rj.drawText(i,b),u+=20})}const MJ=qt().journey,iS=MJ.leftMargin,xan=function(i,s,u,d){const p=qt().journey,v=qt().securityLevel;let b;v==="sandbox"&&(b=Ir("#i"+s));const y=Ir(v==="sandbox"?b.nodes()[0].contentDocument.body:"body");qv.init();const T=y.select("#"+s);rj.initGraphics(T);const _=d.db.getTasks(),A=d.db.getDiagramTitle(),P=d.db.getActors();for(const ie in K7)delete K7[ie];let R=0;P.forEach(ie=>{K7[ie]={color:p.actorColours[R%p.actorColours.length],position:R},R++}),yan(T),qv.insert(0,0,iS,Object.keys(K7).length*50),kan(T,_,0);const F=qv.getBounds();A&&T.append("text").text(A).attr("x",iS).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const j=F.stopy-F.starty+2*p.diagramMarginY,K=iS+F.stopx+2*p.diagramMarginX;Ng(T,j,K,p.useMaxWidth),T.append("line").attr("x1",iS).attr("y1",p.height*4).attr("x2",K-iS-4).attr("y2",p.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const ee=A?70:0;T.attr("viewBox",`${F.startx} -25 ${K} ${j+ee}`),T.attr("preserveAspectRatio","xMinYMin meet"),T.attr("height",j+ee+25)},qv={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(i,s,u,d){i[s]===void 0?i[s]=u:i[s]=d(u,i[s])},updateBounds:function(i,s,u,d){const p=qt().journey,v=this;let b=0;function y(T){return function(A){b++;const P=v.sequenceItems.length-b+1;v.updateVal(A,"starty",s-P*p.boxMargin,Math.min),v.updateVal(A,"stopy",d+P*p.boxMargin,Math.max),v.updateVal(qv.data,"startx",i-P*p.boxMargin,Math.min),v.updateVal(qv.data,"stopx",u+P*p.boxMargin,Math.max),T!=="activation"&&(v.updateVal(A,"startx",i-P*p.boxMargin,Math.min),v.updateVal(A,"stopx",u+P*p.boxMargin,Math.max),v.updateVal(qv.data,"starty",s-P*p.boxMargin,Math.min),v.updateVal(qv.data,"stopy",d+P*p.boxMargin,Math.max))}}this.sequenceItems.forEach(y())},insert:function(i,s,u,d){const p=Math.min(i,u),v=Math.max(i,u),b=Math.min(s,d),y=Math.max(s,d);this.updateVal(qv.data,"startx",p,Math.min),this.updateVal(qv.data,"starty",b,Math.min),this.updateVal(qv.data,"stopx",v,Math.max),this.updateVal(qv.data,"stopy",y,Math.max),this.updateBounds(p,b,v,y)},bumpVerticalPos:function(i){this.verticalPos=this.verticalPos+i,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},Xve=MJ.sectionFills,zKe=MJ.sectionColours,kan=function(i,s,u){const d=qt().journey;let p="";const v=d.height*2+d.diagramMarginY,b=u+v;let y=0,T="#CCC",_="black",A=0;for(const[P,R]of s.entries()){if(p!==R.section){T=Xve[y%Xve.length],A=y%Xve.length,_=zKe[y%zKe.length];let j=0;const K=R.section;for(let ie=P;ie(K7[K]&&(j[K]=K7[K]),j),{});R.x=P*d.taskMargin+P*d.width+iS,R.y=b,R.width=d.diagramMarginX,R.height=d.diagramMarginY,R.colour=_,R.fill=T,R.num=A,R.actors=F,rj.drawTask(i,R,d),qv.insert(R.x,R.y,R.x+R.width+d.taskMargin,300+5*30)}},qKe={setConf:wan,draw:xan},Ean=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:san,db:BKe,renderer:qKe,styles:dan,init:i=>{qKe.setConf(i.journey),BKe.clear()}}},Symbol.toStringTag,{value:"Module"})),Tan=(i,s,u)=>{const{parentById:d}=u,p=new Set;let v=i;for(;v;){if(p.add(v),v===s)return v;v=d[v]}for(v=s;v;){if(p.has(v))return v;v=d[v]}return"root"};function DJ(i){throw new Error('Could not dynamically require "'+i+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var HKe={exports:{}};(function(i,s){(function(u){i.exports=u()})(function(){return function(){function u(d,p,v){function b(_,A){if(!p[_]){if(!d[_]){var P=typeof DJ=="function"&&DJ;if(!A&&P)return P(_,!0);if(y)return y(_,!0);var R=new Error("Cannot find module '"+_+"'");throw R.code="MODULE_NOT_FOUND",R}var F=p[_]={exports:{}};d[_][0].call(F.exports,function(j){var K=d[_][1][j];return b(K||j)},F,F.exports,u,d,p,v)}return p[_].exports}for(var y=typeof DJ=="function"&&DJ,T=0;T0&&arguments[0]!==void 0?arguments[0]:{},R=P.defaultLayoutOptions,F=R===void 0?{}:R,j=P.algorithms,K=j===void 0?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:j,ee=P.workerFactory,ie=P.workerUrl;if(b(this,_),this.defaultLayoutOptions=F,this.initialized=!1,typeof ie>"u"&&typeof ee>"u")throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var oe=ee;typeof ie<"u"&&typeof ee>"u"&&(oe=function(ae){return new Worker(ae)});var pe=oe(ie);if(typeof pe.postMessage!="function")throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new T(pe),this.worker.postMessage({cmd:"register",algorithms:K}).then(function(be){return A.initialized=!0}).catch(console.err)}return v(_,[{key:"layout",value:function(P){var R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},F=R.layoutOptions,j=F===void 0?this.defaultLayoutOptions:F,K=R.logging,ee=K===void 0?!1:K,ie=R.measureExecutionTime,oe=ie===void 0?!1:ie;return P?this.worker.postMessage({cmd:"layout",graph:P,layoutOptions:j,options:{logging:ee,measureExecutionTime:oe}}):Promise.reject(new Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker.terminate()}}]),_}();p.default=y;var T=function(){function _(A){var P=this;if(b(this,_),A===void 0)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=A,this.worker.onmessage=function(R){setTimeout(function(){P.receive(P,R)},0)}}return v(_,[{key:"postMessage",value:function(P){var R=this.id||0;this.id=R+1,P.id=R;var F=this;return new Promise(function(j,K){F.resolvers[R]=function(ee,ie){ee?(F.convertGwtStyleError(ee),K(ee)):j(ie)},F.worker.postMessage(P)})}},{key:"receive",value:function(P,R){var F=R.data,j=P.resolvers[F.id];j&&(delete P.resolvers[F.id],F.error?j(F.error):j(null,F.data))}},{key:"terminate",value:function(){this.worker.terminate&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(P){if(P){var R=P.__java$exception;R&&(R.cause&&R.cause.backingJsObject&&(P.cause=R.cause.backingJsObject,this.convertGwtStyleError(P.cause)),delete P.__java$exception)}}}]),_}()},{}],2:[function(u,d,p){(function(v){(function(){var b;typeof window<"u"?b=window:typeof v<"u"?b=v:typeof self<"u"&&(b=self);var y;function T(){}function _(){}function A(){}function P(){}function R(){}function F(){}function j(){}function K(){}function ee(){}function ie(){}function oe(){}function pe(){}function be(){}function ae(){}function ne(){}function se(){}function de(){}function X(){}function ge(){}function W(){}function xe(){}function U(){}function Fe(){}function Pe(){}function je(){}function Ie(){}function Se(){}function Ce(){}function ke(){}function Ke(){}function Ft(){}function Ne(){}function gn(){}function _t(){}function Et(){}function Gt(){}function ln(){}function xt(){}function Pt(){}function Qe(){}function Dt(){}function kt(){}function On(){}function ht(){}function zr(){}function yt(){}function ji(){}function xi(){}function Ma(){}function zs(){}function ao(){}function Tr(){}function Fn(){}function qn(){}function Un(){}function At(){}function wt(){}function on(){}function fn(){}function An(){}function oo(){}function jo(){}function $o(){}function Pa(){}function wo(){}function _s(){}function tl(){}function da(){}function j0(){}function pm(){}function Ml(){}function Xc(){}function Bc(){}function ja(){}function Ou(){}function Sa(){}function Po(){}function Fc(){}function xa(){}function Ba(){}function ga(){}function kh(){}function lu(){}function o5(){}function Wh(){}function od(){}function Gd(){}function cd(){}function Kd(){}function $g(){}function as(){}function wn(){}function Zr(){}function Zi(){}function nu(){}function vu(){}function Dl(){}function Yh(){}function w1(){}function $0(){}function Wi(){}function Bs(){}function Qa(){}function Bi(){}function Nu(){}function Ot(){}function W3(){}function Kt(){}function z0(){}function Bp(){}function Y3(){}function $9(){}function c5(){}function Eh(){}function zg(){}function bm(){}function z9(){}function mm(){}function u5(){}function y1(){}function ud(){}function ld(){}function q9(){}function Vv(){}function Y7(){}function G2(){}function X7(){}function l5(){}function X3(){}function Fp(){}function nI(){}function ch(){}function oS(){}function hu(){}function $J(){}function vm(){}function zJ(){}function oj(){}function qJ(){}function cj(){}function q0(){}function Q3(){}function cS(){}function uj(){}function K2(){}function J3(){}function HJ(){}function wm(){}function VJ(){}function UJ(){}function Q7(){}function uS(){}function lj(){}function H9(){}function GJ(){}function V9(){}function KJ(){}function WJ(){}function YJ(){}function XJ(){}function QJ(){}function JJ(){}function ZJ(){}function eZ(){}function tZ(){}function nZ(){}function rZ(){}function rI(){}function iZ(){}function sZ(){}function lS(){}function hj(){}function J7(){}function aZ(){}function oZ(){}function cZ(){}function uZ(){}function lZ(){}function hS(){}function iI(){}function fj(){}function h5(){}function f5(){}function hZ(){}function t0(){}function Z7(){}function fZ(){}function U9(){}function Wd(){}function dZ(){}function gZ(){}function pZ(){}function dj(){}function bZ(){}function fS(){}function dS(){}function gj(){}function sI(){}function e8(){}function mZ(){}function pj(){}function bj(){}function vZ(){}function wZ(){}function yZ(){}function xZ(){}function kZ(){}function EZ(){}function Yd(){}function Uv(){}function TZ(){}function gS(){}function pS(){}function CZ(){}function d5(){}function G9(){}function aI(){}function Z3(){}function K9(){}function SZ(){}function bS(){}function hd(){}function mj(){}function oI(){}function W9(){}function cI(){}function vj(){}function _Z(){}function uI(){}function AZ(){}function LZ(){}function wj(){}function t8(){}function yj(){}function n8(){}function MZ(){}function lI(){}function DZ(){}function IZ(){}function OZ(){}function NZ(){}function xj(){}function PZ(){}function BZ(){}function kj(){}function FZ(){}function RZ(){}function jZ(){}function $Z(){}function Ej(){}function zZ(){}function qZ(){}function Tj(){}function Cj(){}function Sj(){}function HZ(){}function VZ(){}function Y9(){}function r8(){}function mS(){}function UZ(){}function hI(){}function vS(){}function fI(){}function _j(){}function Aj(){}function GZ(){}function KZ(){}function WZ(){}function Lj(){}function Mj(){}function YZ(){}function XZ(){}function QZ(){}function JZ(){}function ZZ(){}function Dj(){}function eee(){}function tee(){}function nee(){}function ree(){}function Ij(){}function wS(){}function iee(){}function see(){}function Oj(){}function aee(){}function oee(){}function cee(){}function uee(){}function lee(){}function hee(){}function Nj(){}function fee(){}function Pj(){}function dee(){}function gee(){}function pee(){}function yS(){}function bee(){}function xS(){}function mee(){}function Bj(){}function Fj(){}function Rj(){}function jj(){}function Gv(){}function $j(){}function zj(){}function qj(){}function Hj(){}function vee(){}function i8(){}function dI(){}function g5(){}function wee(){}function yee(){}function kS(){}function Vj(){}function xee(){}function kee(){}function Eee(){}function Tee(){}function Cee(){}function See(){}function _ee(){}function Aee(){}function Lee(){}function Mee(){}function ES(){}function Uj(){}function Dee(){}function Iee(){}function Oee(){}function Nee(){}function Pee(){}function Gj(){}function Kj(){}function Bee(){}function Wj(){}function Yj(){}function Fee(){}function Ree(){}function jee(){}function $ee(){}function zee(){}function qee(){}function Hee(){}function Vee(){}function gI(){}function Uee(){}function X9(){}function Xj(){}function Gee(){}function Kee(){}function Wee(){}function Yee(){}function Xee(){}function Qee(){}function Jee(){}function Zee(){}function ete(){}function tte(){}function nte(){}function rte(){}function ite(){}function ste(){}function ate(){}function s8(){}function Qj(){}function ote(){}function cte(){}function ute(){}function Jj(){}function lte(){}function TS(){}function hte(){}function fte(){}function dte(){}function gte(){}function pte(){}function bte(){}function mte(){}function vte(){}function wte(){}function yte(){}function a8(){}function xte(){}function kte(){}function Ete(){}function Tte(){}function Cte(){}function Ste(){}function _te(){}function Ate(){}function CS(){}function Lte(){}function Mte(){}function Dte(){}function Ite(){}function Ote(){}function Nte(){}function Pte(){}function Bte(){}function o8(){}function Zj(){}function Fte(){}function pI(){}function Rte(){}function jte(){}function $te(){}function zte(){}function qte(){}function Hte(){}function Vte(){}function e$(){}function Ute(){}function t$(){}function Gte(){}function n$(){}function r$(){}function i$(){}function Kte(){}function Wte(){}function s$(){}function Yte(){}function a$(){}function Xte(){}function Qte(){}function bI(){}function Jte(){}function Zte(){}function ene(){}function tne(){}function nne(){}function o$(){}function rne(){}function ine(){}function sne(){}function pwe(){}function ane(){}function one(){}function cne(){}function une(){}function lne(){}function hne(){}function fne(){}function dne(){}function gne(){}function pne(){}function bne(){}function mne(){}function vne(){}function wne(){}function yne(){}function xne(){}function fu(){}function kne(){}function SS(){}function Rc(){}function Pu(){}function hs(){}function mI(){}function Ene(){}function Tne(){}function Cne(){}function c8(){}function ym(){}function Q9(){}function Sne(){}function vI(){}function _ne(){}function Ane(){}function Lne(){}function c$(){}function Mne(){}function Dne(){}function wI(){}function Ine(){}function uh(){}function gl(){}function u$(){}function One(){}function Nne(){}function ey(){}function p5(){}function ty(){}function Rp(){}function u8(){}function yI(){}function l$(){}function h$(){}function Pne(){}function x1(){}function f$(){}function ny(){}function J9(){}function xI(){}function l8(){}function W2(){}function d$(){}function g$(){}function p$(){}function Bne(){}function h8(){}function ry(){}function jp(){}function Y2(){}function b5(){}function Z9(){}function _S(){}function kI(){}function Fne(){}function Rne(){}function b$(){}function m$(){}function Ut(){}function ek(){}function v$(){}function w$(){}function jne(){}function tk(){}function nk(){}function y$(){}function $ne(){}function zne(){}function qne(){}function Hne(){}function Vne(){}function Une(){}function EI(){}function Gne(){}function Kne(){}function x$(){}function AS(){}function Wne(){}function TI(){}function rk(){}function ik(){}function sk(){}function k$(){}function Yne(){}function E$(){}function T$(){}function Xne(){}function LS(){}function X2(){}function C$(){}function S$(){}function MS(){}function Qne(){}function m5(){}function _$(){}function CI(){}function Qc(){}function SI(){}function _I(){}function DS(){}function Jne(){}function Zne(){}function IS(){}function ere(){}function OS(){}function NS(){}function H0(){}function AI(){}function LI(){}function f8(){}function tre(){}function nre(){}function rre(){}function ire(){}function Xd(){}function PS(){}function d8(){}function k1(){}function A$(){}function L$(){}function M$(){}function D$(){}function I$(){}function O$(){}function V0(){}function nl(){}function sre(){}function are(){}function ore(){}function rl(){}function BS(){}function N$(){}function P$(){}function g8(){}function cre(){}function ak(){}function ure(){}function B$(){}function lre(){}function hre(){}function FS(){}function F$(){}function MI(){}function RS(){}function fre(){}function dre(){}function DI(){}function jS(){}function E1(){}function ok(){}function gre(){}function ck(){}function II(){}function xm(){}function $S(){}function OI(){}function U0(){}function zS(){}function T1(){}function C1(){}function pre(){}function bre(){}function v5(){}function uk(){}function lk(){}function qS(){}function mre(){}function vre(){}function p8(){}function R$(){}function j$(){}function wre(){}function $$(){}function yre(){}function z$(){}function NI(){}function xre(){}function HS(){}function kre(){}function Ere(){}function Tre(){}function Cre(){}function Sre(){}function q$(){}function _re(){}function Are(){}function Lre(){}function H$(){}function Mre(){}function Dre(){}function VS(){}function Ire(){}function Ore(){}function Nre(){}function Pre(){}function Bre(){}function Fre(){}function V$(){}function Rre(){}function U$(){}function jre(){}function PI(){}function $re(){}function G$(){}function zre(){}function K$(){}function qre(){}function W$(){}function Y$(){}function X$(){}function BI(){}function w5(){}function US(){}function S1(){}function Q$(){}function hk(){}function FI(){}function J$(){}function km(){}function Z$(){}function GS(){o_()}function Hre(){iO()}function ez(){dU()}function tz(){Lce()}function nz(){IA()}function KS(){Xxe()}function WS(){b0()}function rz(){axe()}function iz(){VN()}function b8(){sO()}function Kv(){OO()}function fk(){het()}function sz(){lx()}function Vre(){$ut()}function az(){s7e()}function m8(){Aot()}function RI(){a7e()}function oz(){mlt()}function Ure(){_ot()}function cz(){TE()}function YS(){eft()}function XS(){Zht()}function jI(){Ect()}function Gre(){tft()}function Kre(){Cb()}function Wre(){eq()}function Yre(){Yke()}function Xre(){Nt()}function Qre(){nft()}function Jre(){Lft()}function Zre(){Lot()}function eie(){egt()}function tie(){Mot()}function nie(){gmt()}function rie(){_9e()}function iie(){tp()}function sie(){p1t()}function v8(){Hc()}function aie(){jot()}function dk(){ux()}function Cf(){uke()}function oie(){Sb()}function gk(){lke()}function QS(){z1()}function cie(){YN()}function uie(){tle()}function lie(){lue()}function Sf(){pit()}function hie(){ZH()}function fie(){wU()}function uz(){pi()}function die(){PV()}function lz(){B8e()}function hz(){lce()}function fz(){zU()}function dz(){xke()}function n0(e){nr(e)}function gz(e){this.a=e}function JS(e){this.a=e}function pz(e){this.a=e}function bz(e){this.a=e}function gie(e){this.a=e}function pie(e){this.a=e}function mz(e){this.a=e}function bie(e){this.a=e}function vz(e){this.a=e}function Q2(e){this.a=e}function mie(e){this.a=e}function vie(e){this.a=e}function $I(e){this.a=e}function wie(e){this.a=e}function yie(e){this.a=e}function pk(e){this.a=e}function J2(e){this.a=e}function wz(e){this.a=e}function bk(e){this.a=e}function y5(e){this.a=e}function zI(e){this.a=e}function w8(e){this.a=e}function qI(e){this.b=e}function qg(e){this.c=e}function xie(e){this.a=e}function iy(e){this.a=e}function yz(e){this.a=e}function xz(e){this.a=e}function HI(e){this.a=e}function VI(e){this.a=e}function kz(e){this.a=e}function y8(e){this.a=e}function mk(e){this.a=e}function kie(e){this.a=e}function Ez(e){this.a=e}function Tz(e){this.a=e}function Cz(e){this.a=e}function Sz(e){this.a=e}function jc(e){this.a=e}function vk(e){this.a=e}function wk(e){this.a=e}function $p(){this.a=[]}function Eie(e,t){e.a=t}function Tie(e,t){e.a=t}function Cie(e,t){e.b=t}function Sie(e,t){e.b=t}function _ie(e,t){e.b=t}function _z(e,t){e.j=t}function bwe(e,t){e.g=t}function Az(e,t){e.i=t}function Aie(e,t){e.c=t}function x8(e,t){e.c=t}function mwe(e,t){e.d=t}function k8(e,t){e.d=t}function x(e,t){e.k=t}function m(e,t){e.c=t}function k(e,t){e.c=t}function S(e,t){e.a=t}function M(e,t){e.a=t}function O(e,t){e.f=t}function N(e,t){e.a=t}function $(e,t){e.b=t}function H(e,t){e.d=t}function q(e,t){e.i=t}function Y(e,t){e.o=t}function Z(e,t){e.r=t}function ce(e,t){e.a=t}function ve(e,t){e.b=t}function me(e,t){e.e=t}function Le(e,t){e.f=t}function _e(e,t){e.g=t}function Ee(e,t){e.e=t}function Be(e,t){e.f=t}function Re(e,t){e.f=t}function Ve(e,t){e.a=t}function ct(e,t){e.b=t}function st(e,t){e.n=t}function Ye(e,t){e.a=t}function mt(e,t){e.c=t}function Je(e,t){e.c=t}function Lt(e,t){e.c=t}function Mt(e,t){e.a=t}function ut(e,t){e.a=t}function Wt(e,t){e.d=t}function Tt(e,t){e.d=t}function _n(e,t){e.e=t}function hn(e,t){e.e=t}function Yt(e,t){e.g=t}function Dn(e,t){e.f=t}function ir(e,t){e.j=t}function vr(e,t){e.a=t}function Nn(e,t){e.a=t}function pr(e,t){e.b=t}function Er(e){e.b=e.a}function Mr(e){e.c=e.d.d}function Cr(e){this.a=e}function Or(e){this.a=e}function Wn(e){this.a=e}function br(e){this.a=e}function Sr(e){this.a=e}function Nr(e){this.a=e}function Si(e){this.a=e}function ys(e){this.a=e}function pa(e){this.a=e}function Mi(e){this.a=e}function gi(e){this.a=e}function fs(e){this.a=e}function Fs(e){this.a=e}function xs(e){this.a=e}function Rs(e){this.b=e}function yo(e){this.b=e}function $a(e){this.b=e}function Da(e){this.a=e}function Bo(e){this.a=e}function tr(e){this.c=e}function G(e){this.c=e}function Jn(e){this.c=e}function kr(e){this.d=e}function lr(e){this.a=e}function Vt(e){this.a=e}function Hs(e){this.a=e}function wr(e){this.a=e}function Es(e){this.a=e}function go(e){this.a=e}function $c(e){this.a=e}function za(e){this.a=e}function Sc(e){this.a=e}function ba(e){this.a=e}function xo(e){this.a=e}function lh(e){this.a=e}function Wl(e){this.a=e}function Z2(e){this.a=e}function eb(e){this.a=e}function G0(e){this.a=e}function zp(e){this.a=e}function fd(e){this.a=e}function Wv(e){this.a=e}function sy(e){this.a=e}function E8(e){this.a=e}function x5(e){this.a=e}function T8(e){this.a=e}function ZS(e){this.a=e}function k5(e){this.a=e}function Qd(e){this.a=e}function _1(e){this.a=e}function Jd(e){this.a=e}function Yv(e){this.a=e}function Em(e){this.a=e}function Lz(e){this.a=e}function Lie(e){this.a=e}function Mie(e){this.a=e}function e_(e){this.a=e}function Die(e){this.a=e}function Iie(e){this.a=e}function E5(e){this.a=e}function Mz(e){this.a=e}function yk(e){this.a=e}function UI(e){this.a=e}function t_(e){this.a=e}function Dz(e){this.a=e}function Iz(e){this.a=e}function Oie(e){this.a=e}function qp(e){this.a=e}function n_(e){this.a=e}function GI(e){this.a=e}function Tm(e){this.a=e}function Zd(e){this.e=e}function T5(e){this.a=e}function jWe(e){this.a=e}function C8(e){this.a=e}function vwe(e){this.a=e}function $We(e){this.a=e}function zWe(e){this.a=e}function qWe(e){this.a=e}function HWe(e){this.a=e}function VWe(e){this.a=e}function UWe(e){this.a=e}function GWe(e){this.a=e}function KWe(e){this.a=e}function WWe(e){this.a=e}function YWe(e){this.a=e}function XWe(e){this.a=e}function wwe(e){this.a=e}function QWe(e){this.a=e}function JWe(e){this.a=e}function ZWe(e){this.a=e}function eYe(e){this.a=e}function tYe(e){this.a=e}function nYe(e){this.a=e}function rYe(e){this.a=e}function iYe(e){this.a=e}function sYe(e){this.a=e}function aYe(e){this.a=e}function oYe(e){this.a=e}function cYe(e){this.a=e}function uYe(e){this.a=e}function lYe(e){this.a=e}function hYe(e){this.a=e}function fYe(e){this.a=e}function dYe(e){this.a=e}function gYe(e){this.a=e}function pYe(e){this.a=e}function bYe(e){this.a=e}function mYe(e){this.a=e}function vYe(e){this.a=e}function wYe(e){this.a=e}function yYe(e){this.a=e}function xYe(e){this.a=e}function kYe(e){this.a=e}function EYe(e){this.a=e}function TYe(e){this.a=e}function CYe(e){this.a=e}function SYe(e){this.a=e}function _Ye(e){this.a=e}function AYe(e){this.a=e}function LYe(e){this.a=e}function MYe(e){this.a=e}function DYe(e){this.a=e}function IYe(e){this.a=e}function OYe(e){this.a=e}function NYe(e){this.a=e}function PYe(e){this.c=e}function BYe(e){this.b=e}function FYe(e){this.a=e}function RYe(e){this.a=e}function jYe(e){this.a=e}function $Ye(e){this.a=e}function zYe(e){this.a=e}function qYe(e){this.a=e}function HYe(e){this.a=e}function VYe(e){this.a=e}function UYe(e){this.a=e}function GYe(e){this.a=e}function KYe(e){this.a=e}function WYe(e){this.a=e}function YYe(e){this.a=e}function XYe(e){this.a=e}function QYe(e){this.a=e}function JYe(e){this.a=e}function ZYe(e){this.a=e}function eXe(e){this.a=e}function tXe(e){this.a=e}function nXe(e){this.a=e}function rXe(e){this.a=e}function iXe(e){this.a=e}function sXe(e){this.a=e}function aXe(e){this.a=e}function oXe(e){this.a=e}function cXe(e){this.a=e}function uXe(e){this.a=e}function Hg(e){this.a=e}function C5(e){this.a=e}function lXe(e){this.a=e}function hXe(e){this.a=e}function fXe(e){this.a=e}function dXe(e){this.a=e}function gXe(e){this.a=e}function pXe(e){this.a=e}function bXe(e){this.a=e}function mXe(e){this.a=e}function vXe(e){this.a=e}function wXe(e){this.a=e}function yXe(e){this.a=e}function xXe(e){this.a=e}function kXe(e){this.a=e}function EXe(e){this.a=e}function TXe(e){this.a=e}function CXe(e){this.a=e}function SXe(e){this.a=e}function _Xe(e){this.a=e}function AXe(e){this.a=e}function LXe(e){this.a=e}function MXe(e){this.a=e}function DXe(e){this.a=e}function IXe(e){this.a=e}function OXe(e){this.a=e}function NXe(e){this.a=e}function PXe(e){this.a=e}function Oz(e){this.a=e}function BXe(e){this.f=e}function FXe(e){this.a=e}function RXe(e){this.a=e}function jXe(e){this.a=e}function $Xe(e){this.a=e}function zXe(e){this.a=e}function qXe(e){this.a=e}function HXe(e){this.a=e}function VXe(e){this.a=e}function UXe(e){this.a=e}function GXe(e){this.a=e}function KXe(e){this.a=e}function WXe(e){this.a=e}function YXe(e){this.a=e}function XXe(e){this.a=e}function QXe(e){this.a=e}function JXe(e){this.a=e}function ZXe(e){this.a=e}function eQe(e){this.a=e}function tQe(e){this.a=e}function nQe(e){this.a=e}function rQe(e){this.a=e}function iQe(e){this.a=e}function sQe(e){this.a=e}function aQe(e){this.a=e}function oQe(e){this.a=e}function cQe(e){this.a=e}function uQe(e){this.a=e}function lQe(e){this.a=e}function Nie(e){this.a=e}function ywe(e){this.a=e}function Ui(e){this.b=e}function hQe(e){this.a=e}function fQe(e){this.a=e}function dQe(e){this.a=e}function gQe(e){this.a=e}function pQe(e){this.a=e}function bQe(e){this.a=e}function mQe(e){this.a=e}function vQe(e){this.b=e}function wQe(e){this.a=e}function KI(e){this.a=e}function yQe(e){this.a=e}function xQe(e){this.a=e}function xwe(e){this.c=e}function Nz(e){this.e=e}function Pz(e){this.a=e}function Bz(e){this.a=e}function Pie(e){this.a=e}function kQe(e){this.d=e}function EQe(e){this.a=e}function kwe(e){this.a=e}function Ewe(e){this.a=e}function Xv(e){this.e=e}function Lcn(){this.a=0}function Pr(){Nl(this)}function bt(){Yse(this)}function Bie(){cat(this)}function TQe(){}function Qv(){this.c=LPe}function CQe(e,t){e.b+=t}function Mcn(e,t){t.Wb(e)}function Dcn(e){return e.a}function Icn(e){return e.a}function Ocn(e){return e.a}function Ncn(e){return e.a}function Pcn(e){return e.a}function ue(e){return e.e}function Bcn(){return null}function Fcn(){return null}function Rcn(){c3e(),mIn()}function jcn(e){e.b.Of(e.e)}function SQe(e){e.b=new nse}function r_(e,t){e.b=t-e.b}function i_(e,t){e.a=t-e.a}function $n(e,t){e.push(t)}function _Qe(e,t){e.sort(t)}function AQe(e,t){t.jd(e.a)}function $cn(e,t){la(t,e)}function zcn(e,t,n){e.Yd(n,t)}function WI(e,t){e.e=t,t.b=e}function Twe(e){wd(),this.a=e}function LQe(e){wd(),this.a=e}function MQe(e){wd(),this.a=e}function Fie(e){ww(),this.a=e}function DQe(e){Xk(),S0e.le(e)}function Cwe(){Cwe=U,new Pr}function Cm(){Jnt.call(this)}function Swe(){Jnt.call(this)}function _we(){Cm.call(this)}function Rie(){Cm.call(this)}function IQe(){Cm.call(this)}function YI(){Cm.call(this)}function pl(){Cm.call(this)}function S8(){Cm.call(this)}function Qr(){Cm.call(this)}function Xh(){Cm.call(this)}function OQe(){Cm.call(this)}function _c(){Cm.call(this)}function NQe(){Cm.call(this)}function PQe(){this.a=this}function Fz(){this.Bb|=256}function BQe(){this.b=new Utt}function ay(e,t){e.length=t}function Rz(e,t){vt(e.a,t)}function qcn(e,t){Jxe(e.c,t)}function Hcn(e,t){na(e.b,t)}function Vcn(e,t){oU(e.a,t)}function Ucn(e,t){Fce(e.a,t)}function xk(e,t){Ni(e.e,t)}function _8(e){EU(e.c,e.b)}function Gcn(e,t){e.kc().Nb(t)}function Awe(e){this.a=R4n(e)}function Ks(){this.a=new Pr}function FQe(){this.a=new Pr}function Lwe(){this.a=new net}function jz(){this.a=new bt}function jie(){this.a=new bt}function Mwe(){this.a=new bt}function _f(){this.a=new pm}function Sm(){this.a=new Nut}function Dwe(){this.a=new bm}function Iwe(){this.a=new Sot}function Owe(){this.a=new Rrt}function RQe(){this.a=new bt}function jQe(){this.a=new bt}function $Qe(){this.a=new bt}function Nwe(){this.a=new bt}function zQe(){this.d=new bt}function qQe(){this.a=new Got}function HQe(){this.a=new Ks}function VQe(){this.a=new Pr}function UQe(){this.b=new Pr}function GQe(){this.b=new bt}function Pwe(){this.e=new bt}function KQe(){this.a=new Kre}function WQe(){this.d=new bt}function YQe(){Qat.call(this)}function XQe(){Qat.call(this)}function QQe(){bt.call(this)}function Bwe(){_we.call(this)}function Fwe(){jz.call(this)}function JQe(){Vq.call(this)}function ZQe(){Nwe.call(this)}function s_(){TQe.call(this)}function $ie(){s_.call(this)}function A8(){TQe.call(this)}function Rwe(){A8.call(this)}function eJe(){qwe.call(this)}function tJe(){qwe.call(this)}function nJe(){qwe.call(this)}function rJe(){Hwe.call(this)}function a_(){Wne.call(this)}function jwe(){Wne.call(this)}function bl(){os.call(this)}function iJe(){wJe.call(this)}function sJe(){wJe.call(this)}function aJe(){Pr.call(this)}function oJe(){Pr.call(this)}function cJe(){Pr.call(this)}function zie(){sft.call(this)}function uJe(){Ks.call(this)}function lJe(){Fz.call(this)}function qie(){kye.call(this)}function $we(){Pr.call(this)}function Hie(){kye.call(this)}function Vie(){Pr.call(this)}function hJe(){Pr.call(this)}function zwe(){m5.call(this)}function fJe(){zwe.call(this)}function dJe(){m5.call(this)}function gJe(){J$.call(this)}function qwe(){this.a=new Ks}function pJe(){this.a=new Pr}function bJe(){this.a=new bt}function Hwe(){this.a=new Pr}function L8(){this.a=new os}function mJe(){this.j=new bt}function vJe(){this.a=new bZe}function wJe(){this.a=new Qne}function Vwe(){this.a=new hs}function o_(){o_=U,v0e=new _}function Uie(){Uie=U,w0e=new xJe}function Gie(){Gie=U,y0e=new yJe}function yJe(){pk.call(this,"")}function xJe(){pk.call(this,"")}function kJe(e){Aht.call(this,e)}function EJe(e){Aht.call(this,e)}function Uwe(e){vz.call(this,e)}function Gwe(e){UZe.call(this,e)}function Kcn(e){UZe.call(this,e)}function Wcn(e){Gwe.call(this,e)}function Ycn(e){Gwe.call(this,e)}function Xcn(e){Gwe.call(this,e)}function TJe(e){Toe.call(this,e)}function CJe(e){Toe.call(this,e)}function SJe(e){ait.call(this,e)}function _Je(e){p3e.call(this,e)}function c_(e){Xz.call(this,e)}function Kwe(e){Xz.call(this,e)}function AJe(e){Xz.call(this,e)}function Wwe(e){v9n.call(this,e)}function Ywe(e){Wwe.call(this,e)}function Ac(e){_st.call(this,e)}function LJe(e){Ac.call(this,e)}function M8(){wk.call(this,{})}function MJe(){MJe=U,d6t=new W}function $z(){$z=U,E0e=new Ant}function DJe(){DJe=U,USe=new T}function Xwe(){Xwe=U,GSe=new ae}function zz(){zz=U,NL=new de}function Kie(e){Ok(),this.a=e}function Wie(e){E7e(),this.a=e}function Jv(e){Iae(),this.f=e}function Yie(e){Iae(),this.f=e}function IJe(e){git(),this.a=e}function OJe(e){e.b=null,e.c=0}function Qcn(e,t){e.e=t,gbt(e,t)}function Jcn(e,t){e.a=t,skn(e)}function Xie(e,t,n){e.a[t.g]=n}function Zcn(e,t,n){y8n(n,e,t)}function eun(e,t){Yfn(t.i,e.n)}function NJe(e,t){wyn(e).Cd(t)}function tun(e,t){e.a.ec().Mc(t)}function PJe(e,t){return e.g-t.g}function nun(e,t){return e*e/t}function Rt(e){return nr(e),e}function ze(e){return nr(e),e}function XI(e){return nr(e),e}function run(e){return new vk(e)}function iun(e){return new yy(e)}function Qwe(e){return nr(e),e}function sun(e){return nr(e),e}function qz(e){Ac.call(this,e)}function tc(e){Ac.call(this,e)}function BJe(e){Ac.call(this,e)}function Qie(e){_st.call(this,e)}function kk(e){Ac.call(this,e)}function Yn(e){Ac.call(this,e)}function nc(e){Ac.call(this,e)}function FJe(e){Ac.call(this,e)}function D8(e){Ac.call(this,e)}function Hp(e){Ac.call(this,e)}function Vp(e){Ac.call(this,e)}function I8(e){Ac.call(this,e)}function dd(e){Ac.call(this,e)}function Jie(e){Ac.call(this,e)}function ri(e){Ac.call(this,e)}function Il(e){nr(e),this.a=e}function Jwe(e){return Um(e),e}function u_(e){l5e(e,e.length)}function l_(e){return e.b==e.c}function oy(e){return!!e&&e.b}function aun(e){return!!e&&e.k}function oun(e){return!!e&&e.j}function cun(e,t,n){e.c.Ef(t,n)}function RJe(e,t){e.be(t),t.ae(e)}function O8(e){wd(),this.a=Xr(e)}function Zie(){this.a=ei(Xr(Co))}function jJe(){throw ue(new Qr)}function uun(){throw ue(new Qr)}function Zwe(){throw ue(new Qr)}function $Je(){throw ue(new Qr)}function lun(){throw ue(new Qr)}function hun(){throw ue(new Qr)}function Hz(){Hz=U,Xk()}function Up(){Nr.call(this,"")}function h_(){Nr.call(this,"")}function tb(){Nr.call(this,"")}function S5(){Nr.call(this,"")}function e3e(e){tc.call(this,e)}function t3e(e){tc.call(this,e)}function gd(e){Yn.call(this,e)}function Ek(e){$a.call(this,e)}function zJe(e){Ek.call(this,e)}function ese(e){jq.call(this,e)}function tse(e){Nye.call(this,e,0)}function nse(){G5e.call(this,12,3)}function le(e,t){return yot(e,t)}function Vz(e,t){return joe(e,t)}function fun(e,t){return e.a-t.a}function dun(e,t){return e.a-t.a}function gun(e,t){return e.a-t.a}function pun(e,t){return t in e.a}function qJe(e){return e.a?e.b:0}function bun(e){return e.a?e.b:0}function mun(e,t,n){t.Cd(e.a[n])}function vun(e,t,n){t.Pe(e.a[n])}function wun(e,t){e.b=new Eo(t)}function yun(e,t){return e.b=t,e}function HJe(e,t){return e.c=t,e}function VJe(e,t){return e.f=t,e}function xun(e,t){return e.g=t,e}function n3e(e,t){return e.a=t,e}function r3e(e,t){return e.f=t,e}function kun(e,t){return e.k=t,e}function i3e(e,t){return e.a=t,e}function Eun(e,t){return e.e=t,e}function s3e(e,t){return e.e=t,e}function Tun(e,t){return e.f=t,e}function Cun(e,t){e.b=!0,e.d=t}function Sun(e,t){return e.b-t.b}function _un(e,t){return e.g-t.g}function Aun(e,t){return e?0:t-1}function UJe(e,t){return e?0:t-1}function Lun(e,t){return e?t-1:0}function Mun(e,t){return e.s-t.s}function Dun(e,t){return t.rg(e)}function Zv(e,t){return e.b=t,e}function Uz(e,t){return e.a=t,e}function ew(e,t){return e.c=t,e}function tw(e,t){return e.d=t,e}function nw(e,t){return e.e=t,e}function a3e(e,t){return e.f=t,e}function f_(e,t){return e.a=t,e}function Tk(e,t){return e.b=t,e}function Ck(e,t){return e.c=t,e}function Qt(e,t){return e.c=t,e}function yn(e,t){return e.b=t,e}function Jt(e,t){return e.d=t,e}function Zt(e,t){return e.e=t,e}function Iun(e,t){return e.f=t,e}function en(e,t){return e.g=t,e}function tn(e,t){return e.a=t,e}function nn(e,t){return e.i=t,e}function rn(e,t){return e.j=t,e}function Oun(e,t){Cb(),Mc(t,e)}function Nun(e,t,n){Xdn(e.a,t,n)}function Gz(e){dae.call(this,e)}function GJe(e){Z4n.call(this,e)}function KJe(e){Aat.call(this,e)}function o3e(e){Aat.call(this,e)}function nb(e){Lw.call(this,e)}function WJe(e){noe.call(this,e)}function YJe(e){noe.call(this,e)}function XJe(){bye.call(this,"")}function qa(){this.a=0,this.b=0}function QJe(){this.b=0,this.a=0}function JJe(e,t){e.b=0,My(e,t)}function ZJe(e,t){return e.k=t,e}function Pun(e,t){return e.j=t,e}function Bun(e,t){e.c=t,e.b=!0}function eZe(){eZe=U,S6t=K8n()}function rb(){rb=U,w_t=i8n()}function tZe(){tZe=U,La=bxn()}function c3e(){c3e=U,Qb=hE()}function Sk(){Sk=U,APe=s8n()}function nZe(){nZe=U,rAt=a8n()}function u3e(){u3e=U,tu=nkn()}function K0(e){return e.e&&e.e()}function rZe(e){return e.l|e.m<<22}function iZe(e,t){return e.c._b(t)}function sZe(e,t){return i1t(e.b,t)}function rse(e){return e?e.d:null}function Fun(e){return e?e.g:null}function Run(e){return e?e.i:null}function _m(e){return Gg(e),e.o}function _5(e,t){return e.a+=t,e}function ise(e,t){return e.a+=t,e}function Gp(e,t){return e.a+=t,e}function rw(e,t){return e.a+=t,e}function l3e(e,t){for(;e.Bd(t););}function Kz(e){this.a=new N8(e)}function aZe(){throw ue(new Qr)}function oZe(){throw ue(new Qr)}function cZe(){throw ue(new Qr)}function uZe(){throw ue(new Qr)}function lZe(){throw ue(new Qr)}function hZe(){throw ue(new Qr)}function Kp(e){this.a=new Pae(e)}function fZe(){this.a=new UA(EIe)}function dZe(){this.b=new UA(qDe)}function gZe(){this.a=new UA(KIe)}function pZe(){this.b=new UA(pge)}function bZe(){this.b=new UA(pge)}function Wz(e){this.a=0,this.b=e}function h3e(e){Gvt(),MIn(this,e)}function _k(e){return fb(e),e.a}function QI(e){return e.b!=e.d.c}function f3e(e,t){return e.d[t.p]}function mZe(e,t){return KCn(e,t)}function d3e(e,t,n){e.splice(t,n)}function A5(e,t){for(;e.Re(t););}function vZe(e){e.c?Ibt(e):Obt(e)}function wZe(){throw ue(new Qr)}function yZe(){throw ue(new Qr)}function xZe(){throw ue(new Qr)}function kZe(){throw ue(new Qr)}function EZe(){throw ue(new Qr)}function TZe(){throw ue(new Qr)}function CZe(){throw ue(new Qr)}function SZe(){throw ue(new Qr)}function _Ze(){throw ue(new Qr)}function AZe(){throw ue(new Qr)}function jun(){throw ue(new _c)}function $un(){throw ue(new _c)}function JI(e){this.a=new LZe(e)}function LZe(e){Vwn(this,e,k9n())}function ZI(e){return!e||oat(e)}function eO(e){return nd[e]!=-1}function zun(){aK!=0&&(aK=0),oK=-1}function MZe(){m0e==null&&(m0e=[])}function tO(e,t){q5.call(this,e,t)}function Ak(e,t){tO.call(this,e,t)}function DZe(e,t){this.a=e,this.b=t}function IZe(e,t){this.a=e,this.b=t}function OZe(e,t){this.a=e,this.b=t}function NZe(e,t){this.a=e,this.b=t}function PZe(e,t){this.a=e,this.b=t}function BZe(e,t){this.a=e,this.b=t}function FZe(e,t){this.a=e,this.b=t}function Lk(e,t){this.e=e,this.d=t}function g3e(e,t){this.b=e,this.c=t}function RZe(e,t){this.b=e,this.a=t}function jZe(e,t){this.b=e,this.a=t}function $Ze(e,t){this.b=e,this.a=t}function zZe(e,t){this.b=e,this.a=t}function qZe(e,t){this.a=e,this.b=t}function sse(e,t){this.a=e,this.b=t}function HZe(e,t){this.a=e,this.f=t}function iw(e,t){this.g=e,this.i=t}function Ur(e,t){this.f=e,this.g=t}function VZe(e,t){this.b=e,this.c=t}function UZe(e){Tye(e.dc()),this.c=e}function qun(e,t){this.a=e,this.b=t}function GZe(e,t){this.a=e,this.b=t}function KZe(e){this.a=l(Xr(e),15)}function p3e(e){this.a=l(Xr(e),15)}function WZe(e){this.a=l(Xr(e),85)}function Yz(e){this.b=l(Xr(e),85)}function Xz(e){this.b=l(Xr(e),51)}function Qz(){this.q=new b.Date}function ase(e,t){this.a=e,this.b=t}function YZe(e,t){return Hu(e.b,t)}function nO(e,t){return e.b.Hc(t)}function XZe(e,t){return e.b.Ic(t)}function QZe(e,t){return e.b.Qc(t)}function JZe(e,t){return e.b.Hc(t)}function ZZe(e,t){return e.c.uc(t)}function eet(e,t){return Pi(e.c,t)}function W0(e,t){return e.a._b(t)}function tet(e,t){return e>t&&t0}function fse(e,t){return iu(e,t)<0}function vet(e,t){return Aae(e.a,t)}function oln(e,t){xot.call(this,e,t)}function k3e(e){Kae(),ait.call(this,e)}function E3e(e,t){gst(e,e.length,t)}function aO(e,t){qst(e,e.length,t)}function y_(e,t){return e.a.get(t)}function wet(e,t){return Hu(e.e,t)}function T3e(e){return nr(e),!1}function C3e(e){this.a=l(Xr(e),229)}function aq(e){kn.call(this,e,21)}function oq(e,t){Ur.call(this,e,t)}function dse(e,t){Ur.call(this,e,t)}function yet(e,t){this.b=e,this.a=t}function cq(e,t){this.d=e,this.e=t}function xet(e,t){this.a=e,this.b=t}function ket(e,t){this.a=e,this.b=t}function Eet(e,t){this.a=e,this.b=t}function Tet(e,t){this.a=e,this.b=t}function B8(e,t){this.a=e,this.b=t}function Cet(e,t){this.b=e,this.a=t}function S3e(e,t){this.b=e,this.a=t}function _3e(e,t){Ur.call(this,e,t)}function A3e(e,t){Ur.call(this,e,t)}function L5(e,t){Ur.call(this,e,t)}function gse(e,t){Ur.call(this,e,t)}function pse(e,t){Ur.call(this,e,t)}function bse(e,t){Ur.call(this,e,t)}function uq(e,t){Ur.call(this,e,t)}function L3e(e,t){this.b=e,this.a=t}function lq(e,t){Ur.call(this,e,t)}function M3e(e,t){this.b=e,this.a=t}function hq(e,t){Ur.call(this,e,t)}function _et(e,t){this.b=e,this.a=t}function D3e(e,t){Ur.call(this,e,t)}function mse(e,t){Ur.call(this,e,t)}function oO(e,t){Ur.call(this,e,t)}function x_(e,t,n){e.splice(t,0,n)}function cln(e,t,n){e.Mb(n)&&t.Cd(n)}function uln(e,t,n){t.Pe(e.a.Ye(n))}function lln(e,t,n){t.Dd(e.a.Ze(n))}function hln(e,t,n){t.Cd(e.a.Kb(n))}function fln(e,t){return vl(e.c,t)}function dln(e,t){return vl(e.e,t)}function fq(e,t){Ur.call(this,e,t)}function dq(e,t){Ur.call(this,e,t)}function k_(e,t){Ur.call(this,e,t)}function I3e(e,t){Ur.call(this,e,t)}function Ws(e,t){Ur.call(this,e,t)}function gq(e,t){Ur.call(this,e,t)}function Aet(e,t){this.a=e,this.b=t}function Let(e,t){this.a=e,this.b=t}function Met(e,t){this.a=e,this.b=t}function Det(e,t){this.a=e,this.b=t}function Iet(e,t){this.a=e,this.b=t}function Oet(e,t){this.a=e,this.b=t}function Net(e,t){this.b=e,this.a=t}function Pet(e,t){this.b=e,this.a=t}function O3e(e,t){this.b=e,this.a=t}function Ik(e,t){this.c=e,this.d=t}function Bet(e,t){this.e=e,this.d=t}function Fet(e,t){this.a=e,this.b=t}function Ret(e,t){this.a=e,this.b=t}function jet(e,t){this.a=e,this.b=t}function $et(e,t){this.b=e,this.a=t}function zet(e,t){this.b=t,this.c=e}function pq(e,t){Ur.call(this,e,t)}function cO(e,t){Ur.call(this,e,t)}function vse(e,t){Ur.call(this,e,t)}function N3e(e,t){Ur.call(this,e,t)}function E_(e,t){Ur.call(this,e,t)}function wse(e,t){Ur.call(this,e,t)}function yse(e,t){Ur.call(this,e,t)}function uO(e,t){Ur.call(this,e,t)}function P3e(e,t){Ur.call(this,e,t)}function xse(e,t){Ur.call(this,e,t)}function T_(e,t){Ur.call(this,e,t)}function B3e(e,t){Ur.call(this,e,t)}function C_(e,t){Ur.call(this,e,t)}function S_(e,t){Ur.call(this,e,t)}function uy(e,t){Ur.call(this,e,t)}function kse(e,t){Ur.call(this,e,t)}function Ese(e,t){Ur.call(this,e,t)}function F3e(e,t){Ur.call(this,e,t)}function lO(e,t){Ur.call(this,e,t)}function M5(e,t){Ur.call(this,e,t)}function Tse(e,t){Ur.call(this,e,t)}function bq(e,t){Ur.call(this,e,t)}function hO(e,t){Ur.call(this,e,t)}function ly(e,t){Ur.call(this,e,t)}function mq(e,t){Ur.call(this,e,t)}function R3e(e,t){Ur.call(this,e,t)}function Cse(e,t){Ur.call(this,e,t)}function Sse(e,t){Ur.call(this,e,t)}function _se(e,t){Ur.call(this,e,t)}function Ase(e,t){Ur.call(this,e,t)}function Lse(e,t){Ur.call(this,e,t)}function Mse(e,t){Ur.call(this,e,t)}function Dse(e,t){Ur.call(this,e,t)}function qet(e,t){this.b=e,this.a=t}function j3e(e,t){Ur.call(this,e,t)}function Het(e,t){this.a=e,this.b=t}function Vet(e,t){this.a=e,this.b=t}function Uet(e,t){this.a=e,this.b=t}function $3e(e,t){Ur.call(this,e,t)}function z3e(e,t){Ur.call(this,e,t)}function Get(e,t){this.a=e,this.b=t}function gln(e,t){return jk(),t!=e}function fO(e){return mr(e.a),e.b}function Ise(e){return xEn(e,e.c),e}function Ket(){return eZe(),new S6t}function Wet(){Yq(),this.a=new i4e}function Yet(){IU(),this.a=new Ks}function Xet(){foe(),this.b=new Ks}function Qet(e,t){this.b=e,this.d=t}function Jet(e,t){this.a=e,this.b=t}function Zet(e,t){this.a=e,this.b=t}function ett(e,t){this.a=e,this.b=t}function ttt(e,t){this.b=e,this.a=t}function q3e(e,t){Ur.call(this,e,t)}function H3e(e,t){Ur.call(this,e,t)}function vq(e,t){Ur.call(this,e,t)}function ow(e,t){Ur.call(this,e,t)}function Ose(e,t){Ur.call(this,e,t)}function wq(e,t){Ur.call(this,e,t)}function V3e(e,t){Ur.call(this,e,t)}function U3e(e,t){Ur.call(this,e,t)}function dO(e,t){Ur.call(this,e,t)}function G3e(e,t){Ur.call(this,e,t)}function Nse(e,t){Ur.call(this,e,t)}function yq(e,t){Ur.call(this,e,t)}function Pse(e,t){Ur.call(this,e,t)}function Bse(e,t){Ur.call(this,e,t)}function Fse(e,t){Ur.call(this,e,t)}function Rse(e,t){Ur.call(this,e,t)}function K3e(e,t){Ur.call(this,e,t)}function jse(e,t){Ur.call(this,e,t)}function W3e(e,t){Ur.call(this,e,t)}function gO(e,t){Ur.call(this,e,t)}function $se(e,t){Ur.call(this,e,t)}function Y3e(e,t){Ur.call(this,e,t)}function pO(e,t){Ur.call(this,e,t)}function X3e(e,t){Ur.call(this,e,t)}function ntt(e,t){this.b=e,this.a=t}function rtt(e,t){this.b=e,this.a=t}function itt(e,t){this.b=e,this.a=t}function stt(e,t){this.b=e,this.a=t}function Q3e(e,t){this.a=e,this.b=t}function att(e,t){this.a=e,this.b=t}function ott(e,t){this.a=e,this.b=t}function lt(e,t){this.a=e,this.b=t}function __(e,t){Ur.call(this,e,t)}function bO(e,t){Ur.call(this,e,t)}function F8(e,t){Ur.call(this,e,t)}function A_(e,t){Ur.call(this,e,t)}function mO(e,t){Ur.call(this,e,t)}function zse(e,t){Ur.call(this,e,t)}function xq(e,t){Ur.call(this,e,t)}function L_(e,t){Ur.call(this,e,t)}function qse(e,t){Ur.call(this,e,t)}function kq(e,t){Ur.call(this,e,t)}function D5(e,t){Ur.call(this,e,t)}function vO(e,t){Ur.call(this,e,t)}function M_(e,t){Ur.call(this,e,t)}function D_(e,t){Ur.call(this,e,t)}function wO(e,t){Ur.call(this,e,t)}function Eq(e,t){Ur.call(this,e,t)}function I5(e,t){Ur.call(this,e,t)}function Hse(e,t){Ur.call(this,e,t)}function ctt(e,t){Ur.call(this,e,t)}function Tq(e,t){Ur.call(this,e,t)}function utt(e,t){this.a=e,this.b=t}function ltt(e,t){this.a=e,this.b=t}function htt(e,t){this.a=e,this.b=t}function ftt(e,t){this.a=e,this.b=t}function dtt(e,t){this.a=e,this.b=t}function gtt(e,t){this.a=e,this.b=t}function ca(e,t){this.a=e,this.b=t}function ptt(e,t){this.a=e,this.b=t}function btt(e,t){this.a=e,this.b=t}function mtt(e,t){this.a=e,this.b=t}function vtt(e,t){this.a=e,this.b=t}function wtt(e,t){this.a=e,this.b=t}function ytt(e,t){this.a=e,this.b=t}function xtt(e,t){this.b=e,this.a=t}function ktt(e,t){this.b=e,this.a=t}function Ett(e,t){this.b=e,this.a=t}function Ttt(e,t){this.b=e,this.a=t}function Ctt(e,t){this.a=e,this.b=t}function Stt(e,t){this.a=e,this.b=t}function Cq(e,t){Ur.call(this,e,t)}function _tt(e,t){this.a=e,this.b=t}function Att(e,t){this.a=e,this.b=t}function R8(e,t){Ur.call(this,e,t)}function Ltt(e,t){this.f=e,this.c=t}function J3e(e,t){return vl(e.g,t)}function pln(e,t){return vl(t.b,e)}function Mtt(e,t){return Kce(e.a,t)}function bln(e,t){return-e.b.af(t)}function mln(e,t){e&&ki(lF,e,t)}function Z3e(e,t){e.i=null,xV(e,t)}function vln(e,t,n){xgt(t,jue(e,n))}function wln(e,t,n){xgt(t,jue(e,n))}function yln(e,t){WTn(e.a,l(t,58))}function Dtt(e,t){Vvn(e.a,l(t,12))}function Sq(e,t){this.a=e,this.b=t}function Itt(e,t){this.a=e,this.b=t}function Ott(e,t){this.a=e,this.b=t}function Ntt(e,t){this.a=e,this.b=t}function Ptt(e,t){this.a=e,this.b=t}function Btt(e,t){this.d=e,this.b=t}function Ftt(e,t){this.e=e,this.a=t}function yO(e,t){this.b=e,this.c=t}function eye(e,t){this.i=e,this.g=t}function tye(e,t){this.d=e,this.e=t}function xln(e,t){swn(new or(e),t)}function _q(e){return FN(e.c,e.b)}function hc(e){return e?e.md():null}function qe(e){return e??null}function Ia(e){return typeof e===Ile}function hy(e){return typeof e===Cx}function fy(e){return typeof e===Qke}function cw(e,t){return iu(e,t)==0}function Aq(e,t){return iu(e,t)>=0}function I_(e,t){return iu(e,t)!=0}function Lq(e,t){return k3n(e.Kc(),t)}function ab(e,t){return e.Rd().Xb(t)}function Rtt(e){return Ql(e),e.d.gc()}function Mq(e){return V_(e==null),e}function O_(e,t){return e.a+=""+t,e}function Xo(e,t){return e.a+=""+t,e}function N_(e,t){return e.a+=""+t,e}function wu(e,t){return e.a+=""+t,e}function hi(e,t){return e.a+=""+t,e}function nye(e,t){return e.a+=""+t,e}function kln(e){return""+(nr(e),e)}function jtt(e){Nl(this),bA(this,e)}function $tt(){U5e(),Q4e.call(this)}function ztt(e,t){n5e.call(this,e,t)}function qtt(e,t){n5e.call(this,e,t)}function Dq(e,t){n5e.call(this,e,t)}function ko(e,t){Cs(e,t,e.c.b,e.c)}function O5(e,t){Cs(e,t,e.a,e.a.a)}function rye(e){return Sn(e,0),null}function Htt(){this.b=0,this.a=!1}function Vtt(){this.b=0,this.a=!1}function Utt(){this.b=new N8(Ay(12))}function Gtt(){Gtt=U,y7t=Kr(eue())}function Ktt(){Ktt=U,q8t=Kr(rbt())}function Wtt(){Wtt=U,hTt=Kr(Bft())}function iye(){iye=U,Cwe(),KSe=new Pr}function Y0(e){return e.a=0,e.b=0,e}function Ytt(e,t){return e.a=t.g+1,e}function Vse(e,t){my.call(this,e,t)}function pn(e,t){vs.call(this,e,t)}function N5(e,t){eye.call(this,e,t)}function Xtt(e,t){TO.call(this,e,t)}function Use(e,t){mE.call(this,e,t)}function wi(e,t){iq(),ki(kY,e,t)}function Qtt(e,t){e.q.setTime(Fm(t))}function Eln(e){b.clearTimeout(e)}function Tln(e){return Xr(e),new P_(e)}function Jtt(e,t){return qe(e)===qe(t)}function Ztt(e,t){return e.a.a.a.cc(t)}function Gse(e,t){return tf(e.a,0,t)}function sye(e){return _gn(l(e,74))}function j8(e){return ua((nr(e),e))}function Cln(e){return ua((nr(e),e))}function ent(e){return qu(e.l,e.m,e.h)}function aye(e,t){return ru(e.a,t.a)}function Sln(e,t){return $st(e.a,t.a)}function _ln(e,t){return Yi(e.a,t.a)}function pd(e,t){return e.indexOf(t)}function Aln(e,t){return e.j[t.p]==2}function uw(e,t){return e==t?0:e?1:-1}function Iq(e){return e<10?"0"+e:""+e}function wc(e){return typeof e===Qke}function Lln(e){return e==s3||e==o4}function Mln(e){return e==s3||e==a4}function tnt(e,t){return ru(e.g,t.g)}function oye(e){return gc(e.b.b,e,0)}function nnt(){sH.call(this,0,0,0,0)}function bd(){wr.call(this,new e2)}function cye(e,t){nE(e,0,e.length,t)}function Dln(e,t){return vt(e.a,t),t}function Iln(e,t){return u0(),t.a+=e}function Oln(e,t){return u0(),t.a+=e}function Nln(e,t){return u0(),t.c+=e}function Pln(e,t){return vt(e.c,t),e}function uye(e,t){return Dh(e.a,t),e}function rnt(e){this.a=Ket(),this.b=e}function int(e){this.a=Ket(),this.b=e}function Eo(e){this.a=e.a,this.b=e.b}function P_(e){this.a=e,GS.call(this)}function snt(e){this.a=e,GS.call(this)}function $8(){ef.call(this,0,0,0,0)}function Oq(e){return Dh(new Xs,e)}function ant(e){return EH(l(e,123))}function hh(e){return e.vh()&&e.wh()}function P5(e){return e!=Z1&&e!=Wb}function Ug(e){return e==uc||e==vc}function B5(e){return e==wf||e==Q1}function ont(e){return e==G6||e==U6}function Bln(e,t){return ru(e.g,t.g)}function cnt(e,t){return new mE(t,e)}function Fln(e,t){return new mE(t,e)}function lye(e){return idn(e.b.Kc(),e.a)}function Kse(e,t){CE(e,t),lE(e,e.D)}function Wse(e,t,n){dV(e,t),fV(e,n)}function F5(e,t,n){Dw(e,t),Mw(e,n)}function Qh(e,t,n){Uu(e,t),Gu(e,n)}function xO(e,t,n){aE(e,t),cE(e,n)}function kO(e,t,n){oE(e,t),uE(e,n)}function unt(e,t,n){Gye.call(this,e,t,n)}function hye(e){Ltt.call(this,e,!0)}function lnt(){oq.call(this,"Tail",3)}function hnt(){oq.call(this,"Head",1)}function ob(e){Cd(),v3n.call(this,e)}function lw(e){sH.call(this,e,e,e,e)}function Yse(e){e.c=We(wa,Rn,1,0,5,1)}function fye(e){return e.b&&gle(e),e.a}function dye(e){return e.b&&gle(e),e.c}function Rln(e,t){G1||(e.b=t)}function jln(e,t){return e[e.length]=t}function $ln(e,t){return e[e.length]=t}function zln(e,t){return Ly(t,M1(e))}function qln(e,t){return Ly(t,M1(e))}function Hln(e,t){return vV(Uae(e.d),t)}function Vln(e,t){return vV(Uae(e.g),t)}function Uln(e,t){return vV(Uae(e.j),t)}function Ha(e,t){vs.call(this,e.b,t)}function Gln(e,t){qr(du(e.a),Iot(t))}function Kln(e,t){qr(Xl(e.a),Oot(t))}function Wln(e,t,n){Qh(n,n.i+e,n.j+t)}function fnt(e,t,n){Ts(e.c[t.g],t.g,n)}function Yln(e,t,n){l(e.c,71).Gi(t,n)}function Xse(e,t,n){return Ts(e,t,n),n}function dnt(e){Vu(e.Sf(),new Mie(e))}function R5(e){return e!=null?es(e):0}function Xln(e){return e==null?0:es(e)}function B_(e){Di(),Xv.call(this,e)}function gnt(e){this.a=e,_4e.call(this,e)}function A1(){A1=U,b.Math.log(2)}function Jh(){Jh=U,Sg=(bet(),C_t)}function pnt(){pnt=U,Mde=new LA(Vge)}function Jr(){Jr=U,new bnt,new bt}function bnt(){new Pr,new Pr,new Pr}function Qln(){throw ue(new Hp(Q5t))}function Jln(){throw ue(new Hp(Q5t))}function Zln(){throw ue(new Hp(J5t))}function ehn(){throw ue(new Hp(J5t))}function Qse(e){this.a=e,Yz.call(this,e)}function Jse(e){this.a=e,Yz.call(this,e)}function mnt(e,t){ww(),this.a=e,this.b=t}function thn(e,t){Xr(t),V5(e).Jc(new ie)}function Vs(e,t){Lae(e.c,e.c.length,t)}function Lc(e){return e.at?1:0}function pye(e,t){return iu(e,t)>0?e:t}function qu(e,t,n){return{l:e,m:t,h:n}}function nhn(e,t){e.a!=null&&Dtt(t,e.a)}function rhn(e){po(e,null),Fa(e,null)}function ihn(e,t,n){return ki(e.g,n,t)}function j5(e,t,n){return R8e(t,n,e.c)}function shn(e,t,n){return ki(e.k,n,t)}function ahn(e,t,n){return UMn(e,t,n),n}function ohn(e,t){return Sh(),t.n.b+=e}function wnt(e){R5e.call(this),this.b=e}function bye(e){r4e.call(this),this.a=e}function ynt(){oq.call(this,"Range",2)}function Nq(e){this.b=e,this.a=new bt}function xnt(e){this.b=new Nu,this.a=e}function knt(e){e.a=new _t,e.c=new _t}function Ent(e){e.a=new Pr,e.d=new Pr}function Tnt(e){doe(e,null),goe(e,null)}function Cnt(e,t){return KMn(e.a,t,null)}function chn(e,t){return ki(e.a,t.a,t)}function Ja(e){return new lt(e.a,e.b)}function mye(e){return new lt(e.c,e.d)}function uhn(e){return new lt(e.c,e.d)}function F_(e,t){return sMn(e.c,e.b,t)}function De(e,t){return e!=null&&iue(e,t)}function Zse(e,t){return J3n(e.Kc(),t)!=-1}function Pq(e){return e.Ob()?e.Pb():null}function lhn(e){this.b=(Cn(),new tr(e))}function vye(e){this.a=e,Pr.call(this)}function Snt(){TO.call(this,null,null)}function _nt(){qq.call(this,null,null)}function Ant(){Ur.call(this,"INSTANCE",0)}function Lnt(){mxe(),this.a=new UA(gAe)}function Mnt(e){return If(e,0,e.length)}function hhn(e,t){return new Wnt(e.Kc(),t)}function wye(e,t){return e.a.Bc(t)!=null}function Dnt(e,t){$r(e),e.Gc(l(t,15))}function fhn(e,t,n){e.c.bd(t,l(n,136))}function dhn(e,t,n){e.c.Ui(t,l(n,136))}function Int(e,t){e.c&&($4e(t),iot(t))}function ghn(e,t){e.q.setHours(t),XA(e,t)}function phn(e,t){dw(t,e.a.a.a,e.a.a.b)}function bhn(e,t,n,r){Ts(e.a[t.g],n.g,r)}function eae(e,t,n){return e.a[t.g][n.g]}function mhn(e,t){return e.e[t.c.p][t.p]}function vhn(e,t){return e.c[t.c.p][t.p]}function L1(e,t){return e.a[t.c.p][t.p]}function whn(e,t){return e.j[t.p]=MTn(t)}function tae(e,t){return e.a.Bc(t)!=null}function yhn(e,t){return ze(Ge(t.a))<=e}function xhn(e,t){return ze(Ge(t.a))>=e}function khn(e,t){return E6e(e.f,t.Pg())}function z8(e,t){return e.a*t.a+e.b*t.b}function Ehn(e,t){return e.a0?t/(e*e):t*100}function Whn(e,t){return e>0?t*t/e:t*t*100}function dy(e,t){return l(B1(e.a,t),34)}function Yhn(e,t){return Cb(),xn(e,t.e,t)}function Xhn(e,t,n){return tq(),n.Mg(e,t)}function Qhn(e){return tp(),e.e.a+e.f.a/2}function Jhn(e,t,n){return tp(),n.e.a-e*t}function Zhn(e){return tp(),e.e.b+e.f.b/2}function efn(e,t,n){return tp(),n.e.b-e*t}function crt(e){e.d=new srt(e),e.e=new Pr}function urt(){this.a=new Cw,this.b=new Cw}function lrt(e){this.c=e,this.a=1,this.b=1}function hrt(e){Mle(),SQe(this),this.Ff(e)}function tfn(e,t,n){ZH(),e.pf(t)&&n.Cd(e)}function nfn(e,t,n){return vt(t,k1t(e,n))}function dw(e,t,n){return e.a+=t,e.b+=n,e}function rfn(e,t,n){return e.a*=t,e.b*=n,e}function Fye(e,t){return e.a=t.a,e.b=t.b,e}function Hq(e){return e.a=-e.a,e.b=-e.b,e}function z_(e,t,n){return e.a-=t,e.b-=n,e}function frt(e){os.call(this),fA(this,e)}function drt(){Ur.call(this,"GROW_TREE",0)}function grt(){Ur.call(this,"POLYOMINO",0)}function dh(e,t,n){xl.call(this,e,t,n,2)}function ifn(e,t,n){_A(du(e.a),t,Iot(n))}function prt(e,t){w_(),TO.call(this,e,t)}function Rye(e,t){Wp(),qq.call(this,e,t)}function brt(e,t){Wp(),Rye.call(this,e,t)}function mrt(e,t){Wp(),qq.call(this,e,t)}function sfn(e,t){return e.c.Fc(l(t,136))}function afn(e,t,n){_A(Xl(e.a),t,Oot(n))}function vrt(e){this.c=e,Uu(e,0),Gu(e,0)}function oae(e,t){Jh(),cH.call(this,e,t)}function wrt(e,t){Jh(),oae.call(this,e,t)}function jye(e,t){Jh(),oae.call(this,e,t)}function $ye(e,t){Jh(),cH.call(this,e,t)}function yrt(e,t){Jh(),jye.call(this,e,t)}function xrt(e,t){Jh(),$ye.call(this,e,t)}function krt(e,t){Jh(),cH.call(this,e,t)}function ofn(e,t,n){return t.zl(e.e,e.c,n)}function cfn(e,t,n){return t.Al(e.e,e.c,n)}function zye(e,t,n){return VU(lN(e,t),n)}function cae(e,t){return yb(e.e,l(t,54))}function ufn(e){return e==null?null:NDn(e)}function lfn(e){return e==null?null:_9n(e)}function hfn(e){return e==null?null:xc(e)}function ffn(e){return e==null?null:xc(e)}function Bt(e){return V_(e==null||hy(e)),e}function Ge(e){return V_(e==null||fy(e)),e}function ei(e){return V_(e==null||Ia(e)),e}function Gg(e){e.o==null&&sTn(e)}function qye(e){if(!e)throw ue(new YI)}function dfn(e){if(!e)throw ue(new Rie)}function mr(e){if(!e)throw ue(new _c)}function gy(e){if(!e)throw ue(new pl)}function Ert(e){if(!e)throw ue(new Xh)}function Fk(){Fk=U,fF=new iJe,new sJe}function H5(){H5=U,Y6=new Ui("root")}function Hye(){sft.call(this),this.Bb|=Io}function gfn(e,t){this.d=e,Mr(this),this.b=t}function Vye(e,t){Poe.call(this,e),this.a=t}function Uye(e,t){Poe.call(this,e),this.a=t}function Gye(e,t,n){YH.call(this,e,t,n,null)}function Trt(e,t,n){YH.call(this,e,t,n,null)}function _O(e,t){this.c=e,Lk.call(this,e,t)}function q_(e,t){this.a=e,_O.call(this,e,t)}function Kye(e){this.q=new b.Date(Fm(e))}function Crt(e){return e>8?0:e+1}function Srt(e,t){G1||vt(e.a,t)}function pfn(e,t){return sO(),bE(t.d.i,e)}function bfn(e,t){return lx(),new nmt(t,e)}function mfn(e,t,n){return e.Ne(t,n)<=0?n:t}function vfn(e,t,n){return e.Ne(t,n)<=0?t:n}function wfn(e,t){return l(B1(e.b,t),143)}function yfn(e,t){return l(B1(e.c,t),233)}function uae(e){return l(jt(e.a,e.b),294)}function _rt(e){return new lt(e.c,e.d+e.a)}function Art(e){return nr(e),e?1231:1237}function Lrt(e){return Sh(),ont(l(e,203))}function py(){py=U,q_e=un((mh(),Cv))}function xfn(e,t){t.a?CEn(e,t):tae(e.a,t.b)}function AO(e,t,n){++e.j,e.tj(),Noe(e,t,n)}function Mrt(e,t,n){++e.j,e.qj(t,e.Zi(t,n))}function Drt(e,t,n){var r;r=e.fd(t),r.Rb(n)}function Wye(e,t,n){return n=Nh(e,t,6,n),n}function Yye(e,t,n){return n=Nh(e,t,3,n),n}function Xye(e,t,n){return n=Nh(e,t,9,n),n}function vd(e,t){return UO(t,yEe),e.f=t,e}function Qye(e,t){return(t&Ii)%e.d.length}function Irt(e,t,n){return Mke(e.c,e.b,t,n)}function Ort(e,t){this.c=e,Lw.call(this,t)}function Nrt(e,t){this.a=e,vQe.call(this,t)}function LO(e,t){this.a=e,vQe.call(this,t)}function vs(e,t){Ui.call(this,e),this.a=t}function Jye(e,t){xwe.call(this,e),this.a=t}function lae(e,t){xwe.call(this,e),this.a=t}function kfn(e){I8e.call(this,0,0),this.f=e}function Prt(e,t,n){return e.a+=If(t,0,n),e}function MO(e){return!e.a&&(e.a=new ge),e.a}function Zye(e,t){var n;return n=e.e,e.e=t,n}function e4e(e,t){var n;return n=t,!!e.Fe(n)}function Efn(e,t){return Hn(),e==t?0:e?1:-1}function by(e,t){e.a.bd(e.b,t),++e.b,e.c=-1}function DO(e){e.b?DO(e.b):e.f.c.zc(e.e,e.d)}function Brt(e){Nl(e.e),e.d.b=e.d,e.d.a=e.d}function Tfn(e,t,n){Am(),Eie(e,t.Ve(e.a,n))}function t4e(e,t,n){return Q8(e,l(t,22),n)}function c0(e,t){return Vz(new Array(t),e)}function Cfn(e){return Yr(ub(e,32))^Yr(e)}function hae(e){return String.fromCharCode(e)}function Sfn(e){return e==null?null:e.message}function _fn(e,t,n){return e.apply(t,n)}function Afn(e,t){var n;n=e[lhe],n.call(e,t)}function Lfn(e,t){var n;n=e[lhe],n.call(e,t)}function Mfn(e,t){return sO(),!bE(t.d.i,e)}function n4e(e,t,n,r){sH.call(this,e,t,n,r)}function Frt(){Vq.call(this),this.a=new qa}function r4e(){this.n=new qa,this.o=new qa}function Rrt(){this.b=new qa,this.c=new bt}function jrt(){this.a=new bt,this.b=new bt}function $rt(){this.a=new bm,this.b=new BQe}function i4e(){this.b=new e2,this.a=new e2}function zrt(){this.b=new Ks,this.a=new Ks}function qrt(){this.b=new Pr,this.a=new Pr}function Hrt(){this.b=new dZe,this.a=new CS}function Vrt(){this.a=new Wre,this.b=new Aee}function Urt(){this.a=new bt,this.d=new bt}function Vq(){this.n=new A8,this.i=new $8}function Grt(e){this.a=(Mh(e,Yy),new Bu(e))}function Krt(e){this.a=(Mh(e,Yy),new Bu(e))}function Dfn(e){return e<100?null:new nb(e)}function Ifn(e,t){return e.n.a=(nr(t),t+10)}function Ofn(e,t){return e.n.a=(nr(t),t+10)}function Nfn(e,t){return t==e||jE(_U(t),e)}function Wrt(e,t){return ki(e.a,t,"")==null}function Pfn(e,t){var n;return n=t.qi(e.a),n}function Oi(e,t){return e.a+=t.a,e.b+=t.b,e}function ma(e,t){return e.a-=t.a,e.b-=t.b,e}function Bfn(e){return ay(e.j.c,0),e.a=-1,e}function s4e(e,t,n){return n=Nh(e,t,11,n),n}function Ffn(e,t,n){n!=null&&wV(t,pue(e,n))}function Rfn(e,t,n){n!=null&&yV(t,pue(e,n))}function V8(e,t,n,r){nt.call(this,e,t,n,r)}function a4e(e,t,n,r){nt.call(this,e,t,n,r)}function Yrt(e,t,n,r){a4e.call(this,e,t,n,r)}function Xrt(e,t,n,r){pH.call(this,e,t,n,r)}function fae(e,t,n,r){pH.call(this,e,t,n,r)}function o4e(e,t,n,r){pH.call(this,e,t,n,r)}function Qrt(e,t,n,r){fae.call(this,e,t,n,r)}function c4e(e,t,n,r){fae.call(this,e,t,n,r)}function Ln(e,t,n,r){o4e.call(this,e,t,n,r)}function Jrt(e,t,n,r){c4e.call(this,e,t,n,r)}function Zrt(e,t,n,r){a5e.call(this,e,t,n,r)}function my(e,t){tc.call(this,CL+e+av+t)}function u4e(e,t){return e.jk().wi().ri(e,t)}function l4e(e,t){return e.jk().wi().ti(e,t)}function eit(e,t){return nr(e),qe(e)===qe(t)}function vn(e,t){return nr(e),qe(e)===qe(t)}function jfn(e,t){return e.b.Bd(new ket(e,t))}function $fn(e,t){return e.b.Bd(new Eet(e,t))}function tit(e,t){return e.b.Bd(new Tet(e,t))}function zfn(e,t){return e.e=l(e.d.Kb(t),159)}function h4e(e,t,n){return e.lastIndexOf(t,n)}function qfn(e,t,n){return Yi(e[t.a],e[n.a])}function Hfn(e,t){return rt(t,(Nt(),TB),e)}function Vfn(e,t){return ru(t.a.d.p,e.a.d.p)}function Ufn(e,t){return ru(e.a.d.p,t.a.d.p)}function Gfn(e,t){return Yi(e.c-e.s,t.c-t.s)}function Kfn(e,t){return Yi(e.b.e.a,t.b.e.a)}function Wfn(e,t){return Yi(e.c.e.a,t.c.e.a)}function nit(e){return e.c?gc(e.c.a,e,0):-1}function U8(e){return e==Tv||e==Tg||e==Mu}function f4e(e,t){this.c=e,jae.call(this,e,t)}function rit(e,t,n){this.a=e,Nye.call(this,t,n)}function iit(e){this.c=e,Dq.call(this,EP,0)}function sit(e,t,n){this.c=t,this.b=n,this.a=e}function IO(e){jk(),this.d=e,this.a=new z5}function ait(e){wd(),this.a=(Cn(),new Ek(e))}function Yfn(e,t){Ug(e.f)?QEn(e,t):Axn(e,t)}function oit(e,t){cdn.call(this,e,e.length,t)}function Xfn(e,t){G1||t&&(e.d=t)}function cit(e,t){return De(t,15)&&Bbt(e.c,t)}function Qfn(e,t,n){return l(e.c,71).Wk(t,n)}function Uq(e,t,n){return l(e.c,71).Xk(t,n)}function Jfn(e,t,n){return ofn(e,l(t,343),n)}function d4e(e,t,n){return cfn(e,l(t,343),n)}function Zfn(e,t,n){return Lgt(e,l(t,343),n)}function uit(e,t,n){return zxn(e,l(t,343),n)}function H_(e,t){return t==null?null:Oy(e.b,t)}function g4e(e){return fy(e)?(nr(e),e):e.ue()}function Gq(e){return!isNaN(e)&&!isFinite(e)}function dae(e){knt(this),Ch(this),Ka(this,e)}function Ol(e){Yse(this),M4e(this.c,0,e.Pc())}function Zh(e,t,n){this.a=e,this.b=t,this.c=n}function lit(e,t,n){this.a=e,this.b=t,this.c=n}function hit(e,t,n){this.d=e,this.b=n,this.a=t}function fit(e){this.a=e,Vg(),Zc(Date.now())}function dit(e){ph(e.a),L6e(e.c,e.b),e.b=null}function gae(){gae=U,p_e=new Et,_6t=new Gt}function git(){git=U,M_t=We(wa,Rn,1,0,5,1)}function pit(){pit=U,W_t=We(wa,Rn,1,0,5,1)}function p4e(){p4e=U,Y_t=We(wa,Rn,1,0,5,1)}function wd(){wd=U,new Twe((Cn(),Cn(),_o))}function e0n(e){return rE(),Gr((xlt(),M6t),e)}function t0n(e){return Fl(),Gr((hlt(),B6t),e)}function n0n(e){return ZV(),Gr((Xct(),q6t),e)}function r0n(e){return aV(),Gr((Qct(),H6t),e)}function i0n(e){return PU(),Gr((Xft(),V6t),e)}function s0n(e){return t1(),Gr((ult(),K6t),e)}function a0n(e){return Bl(),Gr((clt(),Y6t),e)}function o0n(e){return ol(),Gr((llt(),Q6t),e)}function c0n(e){return YU(),Gr((Gtt(),y7t),e)}function u0n(e){return Pw(),Gr((Elt(),k7t),e)}function l0n(e){return bx(),Gr((Clt(),T7t),e)}function h0n(e){return NA(),Gr((Tlt(),_7t),e)}function f0n(e){return Zz(),Gr((kct(),A7t),e)}function d0n(e){return oV(),Gr((Jct(),U7t),e)}function g0n(e){return lA(),Gr((flt(),m8t),e)}function p0n(e){return uo(),Gr((aht(),x8t),e)}function b0n(e){return wE(),Gr((_lt(),S8t),e)}function m0n(e){return Km(),Gr((Slt(),I8t),e)}function b4e(e,t){if(!e)throw ue(new Yn(t))}function Rk(e){if(!e)throw ue(new nc(Jke))}function pae(e,t){if(e!=t)throw ue(new Xh)}function bit(e,t,n){this.a=e,this.b=t,this.c=n}function m4e(e,t,n){this.a=e,this.b=t,this.c=n}function mit(e,t,n){this.a=e,this.b=t,this.c=n}function Kq(e,t,n){this.b=e,this.a=t,this.c=n}function v4e(e,t,n){this.b=e,this.c=t,this.a=n}function w4e(e,t,n){this.a=e,this.b=t,this.c=n}function Wq(e,t,n){this.e=t,this.b=e,this.d=n}function vit(e,t,n){this.b=e,this.a=t,this.c=n}function v0n(e,t,n){return Am(),e.a.Yd(t,n),t}function bae(e){var t;return t=new Ml,t.e=e,t}function y4e(e){var t;return t=new zQe,t.b=e,t}function OO(){OO=U,CK=new pZ,SK=new dj}function Yq(){Yq=U,K8t=new SZ,G8t=new bS}function u0(){u0=U,J8t=new iee,Z8t=new see}function w0n(e){return Ow(),Gr((Hut(),uxt),e)}function y0n(e){return vo(),Gr((Ktt(),q8t),e)}function x0n(e){return IV(),Gr((Llt(),U8t),e)}function k0n(e){return R1(),Gr((Alt(),nxt),e)}function E0n(e){return Ry(),Gr((oht(),ixt),e)}function T0n(e){return OU(),Gr((Pft(),lxt),e)}function C0n(e){return yx(),Gr((Iht(),hxt),e)}function S0n(e){return JH(),Gr((sut(),fxt),e)}function _0n(e){return dA(),Gr((zut(),dxt),e)}function A0n(e){return pV(),Gr((qut(),gxt),e)}function L0n(e){return l2(),Gr((cht(),pxt),e)}function M0n(e){return pN(),Gr((tut(),bxt),e)}function D0n(e){return zE(),Gr((Pht(),kxt),e)}function I0n(e){return Ho(),Gr((f0t(),Ext),e)}function O0n(e){return vE(),Gr((Uut(),Txt),e)}function N0n(e){return ep(),Gr((Gut(),Sxt),e)}function P0n(e){return zH(),Gr((eut(),_xt),e)}function B0n(e){return WN(),Gr((Nht(),xxt),e)}function F0n(e){return Vm(),Gr((Vut(),vxt),e)}function R0n(e){return yU(),Gr((Oht(),wxt),e)}function j0n(e){return cN(),Gr((nut(),yxt),e)}function $0n(e){return hf(),Gr((lht(),Axt),e)}function z0n(e){return p2(),Gr((Kft(),Jkt),e)}function q0n(e){return EA(),Gr((Kut(),Zkt),e)}function H0n(e){return By(),Gr((Mlt(),eEt),e)}function V0n(e){return OA(),Gr((uht(),tEt),e)}function U0n(e){return Nf(),Gr((d0t(),nEt),e)}function G0n(e){return Ed(),Gr((Dlt(),rEt),e)}function K0n(e){return dN(),Gr((rut(),iEt),e)}function W0n(e){return qo(),Gr((Xut(),aEt),e)}function Y0n(e){return LV(),Gr((Wut(),oEt),e)}function X0n(e){return yA(),Gr((Yut(),cEt),e)}function Q0n(e){return SE(),Gr((Qut(),uEt),e)}function J0n(e){return gV(),Gr((Jut(),lEt),e)}function Z0n(e){return OV(),Gr((Zut(),hEt),e)}function e1n(e){return Iw(),Gr((olt(),_Et),e)}function t1n(e){return oA(),Gr((iut(),IEt),e)}function n1n(e){return xd(),Gr((cut(),jEt),e)}function r1n(e){return D1(),Gr((uut(),zEt),e)}function i1n(e){return J0(),Gr((lut(),nTt),e)}function s1n(e){return Sw(),Gr((hut(),uTt),e)}function a1n(e){return wx(),Gr((Rlt(),lTt),e)}function o1n(e){return WA(),Gr((Wtt(),hTt),e)}function c1n(e){return xA(),Gr((elt(),fTt),e)}function u1n(e){return kA(),Gr((Flt(),PTt),e)}function l1n(e){return RH(),Gr((aut(),BTt),e)}function h1n(e){return kV(),Gr((out(),zTt),e)}function f1n(e){return bU(),Gr((hht(),HTt),e)}function d1n(e){return LN(),Gr((tlt(),UTt),e)}function g1n(e){return eV(),Gr((fut(),VTt),e)}function p1n(e){return uU(),Gr((Blt(),hCt),e)}function b1n(e){return AV(),Gr((nlt(),fCt),e)}function m1n(e){return WV(),Gr((rlt(),dCt),e)}function v1n(e){return sU(),Gr((ilt(),pCt),e)}function w1n(e){return qV(),Gr((slt(),vCt),e)}function y1n(e){return GH(),Gr((dut(),jCt),e)}function x1n(e){return dE(),Gr((Zct(),z8t),e)}function k1n(e){return Zn(),Gr((Bht(),B8t),e)}function E1n(e){return tV(),Gr((alt(),$Ct),e)}function T1n(e){return fce(),Gr((gut(),zCt),e)}function C1n(e){return VA(),Gr((fht(),HCt),e)}function S1n(e){return nq(),Gr((Mct(),UCt),e)}function _1n(e){return PN(),Gr((glt(),VCt),e)}function A1n(e){return rq(),Gr((Dct(),KCt),e)}function L1n(e){return rN(),Gr((put(),WCt),e)}function M1n(e){return XN(),Gr((dht(),YCt),e)}function D1n(e){return b_(),Gr((Ict(),hSt),e)}function I1n(e){return CN(),Gr((but(),fSt),e)}function O1n(e){return r1(),Gr((pht(),vSt),e)}function N1n(e){return g2(),Gr((Oft(),ySt),e)}function P1n(e){return og(),Gr((Fht(),xSt),e)}function B1n(e){return Ym(),Gr((Rht(),_St),e)}function F1n(e){return Js(),Gr((ght(),GSt),e)}function R1n(e){return F1(),Gr((plt(),KSt),e)}function j1n(e){return ip(),Gr((jlt(),WSt),e)}function $1n(e){return vU(),Gr((jht(),YSt),e)}function z1n(e){return rp(),Gr((dlt(),QSt),e)}function q1n(e){return Ih(),Gr(($lt(),ZSt),e)}function H1n(e){return qy(),Gr((Yft(),e_t),e)}function V1n(e){return t6(),Gr((bht(),t_t),e)}function U1n(e){return Ra(),Gr(($ht(),n_t),e)}function G1n(e){return Rl(),Gr((zht(),r_t),e)}function K1n(e){return Ct(),Gr((mht(),i_t),e)}function W1n(e){return mh(),Gr((zlt(),u_t),e)}function Y1n(e){return Zl(),Gr((Wft(),l_t),e)}function X1n(e){return dx(),Gr((blt(),h_t),e)}function Q1n(e,t){return nr(e),e+(nr(t),t)}function J1n(e){return mae(),Gr((mut(),f_t),e)}function Z1n(e){return VV(),Gr((qlt(),d_t),e)}function edn(e){return NV(),Gr((Hlt(),b_t),e)}function jk(){jk=U,$De=(Ct(),er),DW=ar}function mae(){mae=U,rPe=new Wit,iPe=new Ost}function tdn(e){return!e.e&&(e.e=new bt),e.e}function vae(e,t){this.c=e,this.a=t,this.b=t-e}function wit(e,t,n){this.a=e,this.b=t,this.c=n}function wae(e,t,n){this.a=e,this.b=t,this.c=n}function x4e(e,t,n){this.a=e,this.b=t,this.c=n}function k4e(e,t,n){this.a=e,this.b=t,this.c=n}function yit(e,t,n){this.a=e,this.b=t,this.c=n}function xit(e,t,n){this.a=e,this.b=t,this.c=n}function Xp(e,t,n){this.e=e,this.a=t,this.c=n}function kit(e,t,n){Jh(),$5e.call(this,e,t,n)}function yae(e,t,n){Jh(),E5e.call(this,e,t,n)}function E4e(e,t,n){Jh(),E5e.call(this,e,t,n)}function T4e(e,t,n){Jh(),E5e.call(this,e,t,n)}function Eit(e,t,n){Jh(),yae.call(this,e,t,n)}function C4e(e,t,n){Jh(),yae.call(this,e,t,n)}function Tit(e,t,n){Jh(),C4e.call(this,e,t,n)}function Cit(e,t,n){Jh(),E4e.call(this,e,t,n)}function Sit(e,t,n){Jh(),T4e.call(this,e,t,n)}function xae(e){sH.call(this,e.d,e.c,e.a,e.b)}function S4e(e){sH.call(this,e.d,e.c,e.a,e.b)}function _4e(e){this.d=e,Mr(this),this.b=egn(e.d)}function ndn(e){return HE(),Gr((Nft(),L_t),e)}function NO(e,t){return Xr(e),Xr(t),new IZe(e,t)}function G8(e,t){return Xr(e),Xr(t),new jit(e,t)}function rdn(e,t){return Xr(e),Xr(t),new $it(e,t)}function idn(e,t){return Xr(e),Xr(t),new zZe(e,t)}function kae(e){return mr(e.b!=0),af(e,e.a.a)}function sdn(e){return mr(e.b!=0),af(e,e.c.b)}function adn(e){return!e.c&&(e.c=new Xd),e.c}function $k(e){var t;return t=new bt,Goe(t,e),t}function odn(e){var t;return t=new Ks,Goe(t,e),t}function _it(e){var t;return t=new Lwe,sce(t,e),t}function PO(e){var t;return t=new os,sce(t,e),t}function l(e,t){return V_(e==null||iue(e,t)),e}function cdn(e,t,n){Sst.call(this,t,n),this.a=e}function Ait(e,t){this.c=e,this.b=t,this.a=!1}function Lit(){this.a=";,;",this.b="",this.c=""}function Mit(e,t,n){this.b=e,ztt.call(this,t,n)}function A4e(e,t,n){this.c=e,cq.call(this,t,n)}function L4e(e,t,n){Ik.call(this,e,t),this.b=n}function M4e(e,t,n){k9e(n,0,e,t,n.length,!1)}function tg(e,t,n,r,a){e.b=t,e.c=n,e.d=r,e.a=a}function D4e(e,t,n,r,a){e.d=t,e.c=n,e.a=r,e.b=a}function udn(e,t){t&&(e.b=t,e.a=(fb(t),t.a))}function BO(e,t){if(!e)throw ue(new Yn(t))}function K8(e,t){if(!e)throw ue(new nc(t))}function I4e(e,t){if(!e)throw ue(new BJe(t))}function ldn(e,t){return eq(),ru(e.d.p,t.d.p)}function hdn(e,t){return tp(),Yi(e.e.b,t.e.b)}function fdn(e,t){return tp(),Yi(e.e.a,t.e.a)}function ddn(e,t){return ru(Uit(e.d),Uit(t.d))}function Xq(e,t){return t&&yH(e,t.d)?t:null}function gdn(e,t){return t==(Ct(),er)?e.c:e.d}function O4e(e){return mb(dgn(wc(e)?Mf(e):e))}function pdn(e){return new lt(e.c+e.b,e.d+e.a)}function Dit(e){return e!=null&&!Hce(e,$M,zM)}function bdn(e,t){return(u1t(e)<<4|u1t(t))&Zs}function Iit(e,t,n,r,a){e.c=t,e.d=n,e.b=r,e.a=a}function N4e(e){var t,n;t=e.b,n=e.c,e.b=n,e.c=t}function P4e(e){var t,n;n=e.d,t=e.a,e.d=t,e.a=n}function mdn(e,t){var n;return n=e.c,d7e(e,t),n}function B4e(e,t){return t<0?e.g=-1:e.g=t,e}function Qq(e,t){return Cwn(e),e.a*=t,e.b*=t,e}function Oit(e,t,n){_ht.call(this,t,n),this.d=e}function FO(e,t,n){tye.call(this,e,t),this.c=n}function Jq(e,t,n){tye.call(this,e,t),this.c=n}function F4e(e){p4e(),m5.call(this),this.ci(e)}function Nit(){eE(),Rgn.call(this,(ib(),Gf))}function Pit(e){return Di(),new ng(0,e)}function Bit(){Bit=U,spe=(Cn(),new Da(c0e))}function Zq(){Zq=U,new W8e((Gie(),y0e),(Uie(),w0e))}function Fit(){Fit=U,t_e=We(ro,dt,17,256,0,1)}function Rit(){this.b=ze(Ge(It((b0(),Z0e))))}function Eae(e){this.b=e,this.a=Mm(this.b.a).Od()}function jit(e,t){this.b=e,this.a=t,GS.call(this)}function $it(e,t){this.a=e,this.b=t,GS.call(this)}function zit(e,t,n){this.a=e,N5.call(this,t,n)}function qit(e,t,n){this.a=e,N5.call(this,t,n)}function zk(e,t,n){var r;r=new yy(n),e1(e,t,r)}function R4e(e,t,n){var r;return r=e[t],e[t]=n,r}function eH(e){var t;return t=e.slice(),joe(t,e)}function tH(e){var t;return t=e.n,e.a.b+t.d+t.a}function Hit(e){var t;return t=e.n,e.e.b+t.d+t.a}function j4e(e){var t;return t=e.n,e.e.a+t.b+t.c}function $4e(e){e.a.b=e.b,e.b.a=e.a,e.a=e.b=null}function ci(e,t){return Cs(e,t,e.c.b,e.c),!0}function vdn(e){return e.a?e.a:Qae(e)}function wdn(e){return tx(),cg(e)==ds(Eb(e))}function ydn(e){return tx(),Eb(e)==ds(cg(e))}function gw(e,t){return RA(e,new Ik(t.a,t.b))}function xdn(e,t){return kH(),fue(e,t),new hat(e,t)}function kdn(e,t){return e.c=t)throw ue(new Bwe)}function vy(e,t){return ON(e,(nr(t),new xo(t)))}function Y8(e,t){return ON(e,(nr(t),new lh(t)))}function Ast(e,t,n){return WIn(e,l(t,12),l(n,12))}function Lst(e){return kl(),l(e,12).g.c.length!=0}function Mst(e){return kl(),l(e,12).e.c.length!=0}function agn(e,t){return lx(),Yi(t.a.o.a,e.a.o.a)}function ogn(e,t){t.Bb&eu&&!e.a.o&&(e.a.o=t)}function cgn(e,t){t.Ug("General 'Rotator",1),kDn(e)}function ugn(e,t,n){t.qf(n,ze(Ge(cr(e.b,n)))*e.a)}function Dst(e,t,n){return h6(),gE(e,t)&&gE(e,n)}function W_(e){return Rl(),!e.Hc(vp)&&!e.Hc(Yb)}function lgn(e){return e.e?_6e(e.e):null}function Y_(e){return wc(e)?""+e:Pbt(e)}function s5e(e){var t;for(t=e;t.f;)t=t.f;return t}function hgn(e,t,n){return Ts(t,0,U4e(t[0],n[0])),t}function Qp(e,t,n,r){var a;a=e.i,a.i=t,a.a=n,a.b=r}function nt(e,t,n,r){Ys.call(this,e,t,n),this.b=r}function _a(e,t,n,r,a){Foe.call(this,e,t,n,r,a,-1)}function X_(e,t,n,r,a){sN.call(this,e,t,n,r,a,-1)}function pH(e,t,n,r){FO.call(this,e,t,n),this.b=r}function Ist(e){Ltt.call(this,e,!1),this.a=!1}function Ost(){ctt.call(this,"LOOKAHEAD_LAYOUT",1)}function Nst(e){this.b=e,q8.call(this,e),jnt(this)}function Pst(e){this.b=e,CO.call(this,e),$nt(this)}function wy(e,t,n){this.a=e,V8.call(this,t,n,5,6)}function a5e(e,t,n,r){this.b=e,Ys.call(this,t,n,r)}function Bst(e,t){this.b=e,qg.call(this,e.b),this.a=t}function Fst(e){this.a=ydt(e.a),this.b=new Ol(e.b)}function o5e(e,t){ww(),qun.call(this,e,RV(new Il(t)))}function bH(e,t){return Di(),new k5e(e,t,0)}function Bae(e,t){return Di(),new k5e(6,e,t)}function Za(e,t){for(nr(t);e.Ob();)t.Cd(e.Pb())}function Hu(e,t){return Ia(t)?soe(e,t):!!zo(e.f,t)}function Fae(e,t){return t.Vh()?yb(e.b,l(t,54)):t}function fgn(e,t){return vn(e.substr(0,t.length),t)}function rg(e){return new hr(new Aye(e.a.length,e.a))}function mH(e){return new lt(e.c+e.b/2,e.d+e.a/2)}function dgn(e){return qu(~e.l&eh,~e.m&eh,~e.h&hp)}function Rae(e){return typeof e===wP||typeof e===Ole}function Nl(e){e.f=new rnt(e),e.i=new int(e),++e.g}function Rst(e){if(!e)throw ue(new _c);return e.d}function X8(e){var t;return t=wA(e),mr(t!=null),t}function ggn(e){var t;return t=M4n(e),mr(t!=null),t}function Hk(e,t){var n;return n=e.a.gc(),k6e(t,n),n-t}function na(e,t){var n;return n=e.a.zc(t,e),n==null}function jO(e,t){return e.a.zc(t,(Hn(),Pb))==null}function c5e(e){return new bn(null,wgn(e,e.length))}function u5e(e,t,n){return svt(e,l(t,42),l(n,176))}function Q8(e,t,n){return d0(e.a,t),R4e(e.b,t.g,n)}function pgn(e,t,n){qk(n,e.a.c.length),rf(e.a,n,t)}function He(e,t,n,r){B0t(t,n,e.length),bgn(e,t,n,r)}function bgn(e,t,n,r){var a;for(a=t;a0?b.Math.log(e/t):-100}function $st(e,t){return iu(e,t)<0?-1:iu(e,t)>0?1:0}function $O(e,t){Dnt(e,De(t,160)?t:l(t,2036).Rl())}function d5e(e,t){if(e==null)throw ue(new D8(t))}function wgn(e,t){return xwn(t,e.length),new Kit(e,t)}function g5e(e,t){return t?Ka(e,t):!1}function ygn(){return $z(),he(le(a6t,1),it,549,0,[E0e])}function J_(e){return e.e==0?e:new Im(-e.e,e.d,e.a)}function xgn(e,t){return Yi(e.c.c+e.c.b,t.c.c+t.c.b)}function zO(e,t){Cs(e.d,t,e.b.b,e.b),++e.a,e.c=null}function zst(e,t){return e.c?zst(e.c,t):vt(e.b,t),e}function kgn(e,t,n){var r;return r=_y(e,t),xoe(e,t,n),r}function qst(e,t,n){var r;for(r=0;r=e.g}function Ts(e,t,n){return dfn(n==null||cAn(e,n)),e[t]=n}function w5e(e,t){return Xn(t,e.length+1),e.substr(t)}function Wae(e,t){for(nr(t);e.c=e?new b3e:Uwn(e-1)}function eo(e){return!e.a&&e.c?e.c.b:e.a}function T5e(e){return De(e,616)?e:new oot(e)}function fb(e){e.c?fb(e.c):(xb(e),e.d=!0)}function tA(e){e.c?e.c.$e():(e.d=!0,uCn(e))}function cat(e){e.b=!1,e.c=!1,e.d=!1,e.a=!1}function uat(e){var t,n;return t=e.c.i.c,n=e.d.i.c,t==n}function zgn(e,t){var n;n=e.Ih(t),n>=0?e.ki(n):d9e(e,t)}function lat(e,t){e.c<0||e.b.b0;)e=e<<1|(e<0?1:0);return e}function vat(e,t){var n;return n=new yu(e),$n(t.c,n),n}function wat(e,t){e.u.Hc((Rl(),vp))&&Gkn(e,t),lvn(e,t)}function Jc(e,t){return qe(e)===qe(t)||e!=null&&Pi(e,t)}function Qo(e,t){return Aae(e.a,t)?e.b[l(t,22).g]:null}function epn(){return Zz(),he(le(U_e,1),it,489,0,[G0e])}function tpn(){return nq(),he(le(wOe,1),it,490,0,[bge])}function npn(){return rq(),he(le(GCt,1),it,558,0,[mge])}function rpn(){return b_(),he(le($Oe,1),it,539,0,[qB])}function EH(e){return!e.n&&(e.n=new nt(ec,e,1,7)),e.n}function Xae(e){return!e.c&&(e.c=new nt(Hl,e,9,9)),e.c}function A5e(e){return!e.c&&(e.c=new Ln(_r,e,5,8)),e.c}function ipn(e){return!e.b&&(e.b=new Ln(_r,e,4,7)),e.b}function qO(e){return e.j.c.length=0,M5e(e.c),Bfn(e.a),e}function Wk(e){return e.e==ET&&hn(e,J5n(e.g,e.b)),e.e}function HO(e){return e.f==ET&&Dn(e,H7n(e.g,e.b)),e.f}function Ei(e,t,n,r){return qft(e,t,n,!1),jV(e,r),e}function yat(e,t){this.b=e,jae.call(this,e,t),jnt(this)}function xat(e,t){this.b=e,f4e.call(this,e,t),$nt(this)}function nA(e){this.d=e,this.a=this.d.b,this.b=this.d.c}function L5e(e,t){this.b=e,this.c=t,this.a=new P8(this.b)}function co(e,t){return Xn(t,e.length),e.charCodeAt(t)}function spn(e,t){b8e(e,ze(np(t,"x")),ze(np(t,"y")))}function apn(e,t){b8e(e,ze(np(t,"x")),ze(np(t,"y")))}function Fi(e,t){return xb(e),new bn(e,new $6e(t,e.a))}function fc(e,t){return xb(e),new bn(e,new C6e(t,e.a))}function xy(e,t){return xb(e),new Vye(e,new Mut(t,e.a))}function TH(e,t){return xb(e),new Uye(e,new Dut(t,e.a))}function opn(e,t){return new Uat(l(Xr(e),50),l(Xr(t),50))}function cpn(e,t){return Yi(e.d.c+e.d.b/2,t.d.c+t.d.b/2)}function kat(e,t,n){n.a?Gu(e,t.b-e.f/2):Uu(e,t.a-e.g/2)}function upn(e,t){return Yi(e.g.c+e.g.b/2,t.g.c+t.g.b/2)}function lpn(e,t){return w3e(),Yi((nr(e),e),(nr(t),t))}function hpn(e){return e!=null&&nO(EY,e.toLowerCase())}function M5e(e){var t;for(t=e.Kc();t.Ob();)t.Pb(),t.Qb()}function V5(e){var t;return t=e.b,!t&&(e.b=t=new mie(e)),t}function Qae(e){var t;return t=Ywn(e),t||null}function Eat(e,t){var n,r;return n=e/t,r=ua(n),n>r&&++r,r}function fpn(e,t,n){var r;r=l(e.d.Kb(n),159),r&&r.Nb(t)}function dpn(e,t,n){pLn(e.a,n),G3n(n),BEn(e.b,n),BLn(t,n)}function CH(e,t,n,r){this.a=e,this.c=t,this.b=n,this.d=r}function D5e(e,t,n,r){this.c=e,this.b=t,this.a=n,this.d=r}function Tat(e,t,n,r){this.c=e,this.b=t,this.d=n,this.a=r}function ef(e,t,n,r){this.c=e,this.d=t,this.b=n,this.a=r}function Cat(e,t,n,r){this.a=e,this.d=t,this.c=n,this.b=r}function Jae(e,t,n,r){this.a=e,this.e=t,this.d=n,this.c=r}function Sat(e,t,n,r){this.a=e,this.c=t,this.d=n,this.b=r}function Zae(e,t,n){this.a=iEe,this.d=e,this.b=t,this.c=n}function Z8(e,t,n,r){Ur.call(this,e,t),this.a=n,this.b=r}function _at(e,t){this.d=(nr(e),e),this.a=16449,this.c=t}function Aat(e){this.a=new bt,this.e=We(Vr,dt,53,e,0,2)}function gpn(e){e.Ug("No crossing minimization",1),e.Vg()}function Lat(){Ac.call(this,"There is no more element.")}function Mat(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function Dat(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function Om(e,t,n,r){this.e=e,this.a=t,this.c=n,this.d=r}function Iat(e,t,n,r){this.a=e,this.c=t,this.d=n,this.b=r}function Oat(e,t,n,r){Jh(),Iut.call(this,t,n,r),this.a=e}function Nat(e,t,n,r){Jh(),Iut.call(this,t,n,r),this.a=e}function eoe(e,t,n){var r,a;return r=Vke(e),a=t.ti(n,r),a}function Kg(e){var t,n;return n=(t=new Qv,t),sE(n,e),n}function toe(e){var t,n;return n=(t=new Qv,t),Kxe(n,e),n}function ppn(e,t){var n;return n=cr(e.f,t),S7e(t,n),null}function Pat(e){return!e.b&&(e.b=new nt(js,e,12,3)),e.b}function Bat(e){return V_(e==null||Rae(e)&&e.Tm!==xe),e}function SH(e){return e.n&&(e.e!==Fwt&&e.je(),e.j=null),e}function Yk(e){if(Ql(e.d),e.d.d!=e.c)throw ue(new Xh)}function I5e(e){return mr(e.b0&&ggt(this)}function Fat(e,t){this.a=e,gfn.call(this,e,l(e.d,15).fd(t))}function bpn(e,t){return Yi(wl(e)*gh(e),wl(t)*gh(t))}function mpn(e,t){return Yi(wl(e)*gh(e),wl(t)*gh(t))}function vpn(e){return qw(e)&&Rt(Bt(at(e,(Nt(),gv))))}function wpn(e,t){return xn(e,l(Q(t,(Nt(),HT)),17),t)}function ypn(e,t){return l(Q(e,(ft(),Wx)),15).Fc(t),t}function O5e(e,t){return e.b=t.b,e.c=t.c,e.d=t.d,e.a=t.a,e}function Rat(e,t,n,r){this.b=e,this.c=r,Dq.call(this,t,n)}function xpn(e,t,n){e.i=0,e.e=0,t!=n&&x0t(e,t,n)}function kpn(e,t,n){e.i=0,e.e=0,t!=n&&k0t(e,t,n)}function Epn(e,t,n){return p_(),X4n(l(cr(e.e,t),529),n)}function ex(e){var t;return t=e.f,t||(e.f=new Lk(e,e.c))}function jat(e,t){return e6(e.j,t.s,t.c)+e6(t.e,e.s,e.c)}function $at(e,t){e.e&&!e.e.a&&(CQe(e.e,t),$at(e.e,t))}function zat(e,t){e.d&&!e.d.a&&(CQe(e.d,t),zat(e.d,t))}function Tpn(e,t){return-Yi(wl(e)*gh(e),wl(t)*gh(t))}function Cpn(e){return l(e.ld(),149).Pg()+":"+xc(e.md())}function qat(){Nue(this,new fz),this.wb=(lb(),Vn),Sk()}function Hat(e){this.b=new bt,ra(this.b,this.b),this.a=e}function N5e(e,t){new os,this.a=new bl,this.b=e,this.c=t}function Ew(){Ew=U,d_e=new Ke,D0e=new Ke,g_e=new Ft}function Cn(){Cn=U,_o=new je,mg=new Se,hK=new Ce}function P5e(){P5e=U,j6t=new wo,z6t=new X4e,$6t=new _s}function tx(){tx=U,wK=new bt,X0e=new Pr,Y0e=new bt}function _H(e,t){if(e==null)throw ue(new D8(t));return e}function AH(e){return!e.a&&(e.a=new nt(Ai,e,10,11)),e.a}function qi(e){return!e.q&&(e.q=new nt(Uf,e,11,10)),e.q}function tt(e){return!e.s&&(e.s=new nt(dl,e,21,17)),e.s}function Spn(e){return Xr(e),Mdt(new hr(dr(e.a.Kc(),new j)))}function _pn(e,t){return bh(e),bh(t),PJe(l(e,22),l(t,22))}function Nm(e,t,n){var r,a;r=g4e(n),a=new vk(r),e1(e,t,a)}function roe(e,t,n,r,a,o){sN.call(this,e,t,n,r,a,o?-2:-1)}function Vat(e,t,n,r){tye.call(this,t,n),this.b=e,this.a=r}function Uat(e,t){Wcn.call(this,new Pae(e)),this.a=e,this.b=t}function B5e(e){this.b=e,this.c=e,e.e=null,e.c=null,this.a=1}function Apn(e){u0();var t;t=l(e.g,10),t.n.a=e.d.c+t.d.b}function Xk(){Xk=U;var e,t;t=!P5n(),e=new se,S0e=t?new ne:e}function ioe(e){return Cn(),De(e,59)?new ese(e):new jq(e)}function LH(e){return De(e,16)?new U_(l(e,16)):odn(e.Kc())}function Lpn(e){return new qnt(e,e.e.Rd().gc()*e.c.Rd().gc())}function Mpn(e){return new Hnt(e,e.e.Rd().gc()*e.c.Rd().gc())}function F5e(e){return e&&e.hashCode?e.hashCode():fw(e)}function soe(e,t){return t==null?!!zo(e.f,null):Gdn(e.i,t)}function Dpn(e,t){var n;return n=wye(e.a,t),n&&(t.d=null),n}function Gat(e,t,n){return e.f?e.f.ef(t,n):!1}function VO(e,t,n,r){Ts(e.c[t.g],n.g,r),Ts(e.c[n.g],t.g,r)}function aoe(e,t,n,r){Ts(e.c[t.g],t.g,n),Ts(e.b[t.g],t.g,r)}function Ipn(e,t,n){return ze(Ge(n.a))<=e&&ze(Ge(n.b))>=t}function Kat(e,t){this.g=e,this.d=he(le(wg,1),m2,10,0,[t])}function Wat(e){this.c=e,this.b=new Kp(l(Xr(new tl),50))}function Yat(e){this.c=e,this.b=new Kp(l(Xr(new l5),50))}function Xat(e){this.b=e,this.a=new Kp(l(Xr(new Bi),50))}function Qat(){this.b=new Ks,this.d=new os,this.e=new Fwe}function R5e(){this.c=new qa,this.d=new qa,this.e=new qa}function Tw(){this.a=new bl,this.b=(Mh(3,Yy),new Bu(3))}function Jp(e,t){this.e=e,this.a=wa,this.b=Qbt(t),this.c=t}function MH(e){this.c=e.c,this.d=e.d,this.b=e.b,this.a=e.a}function Jat(e,t,n,r,a,o){this.a=e,Joe.call(this,t,n,r,a,o)}function Zat(e,t,n,r,a,o){this.a=e,Joe.call(this,t,n,r,a,o)}function db(e,t,n,r,a,o,f){return new Eoe(e.e,t,n,r,a,o,f)}function Opn(e,t,n){return n>=0&&vn(e.substr(n,t.length),t)}function eot(e,t){return De(t,149)&&vn(e.b,l(t,149).Pg())}function Npn(e,t){return e.a?t.Gh().Kc():l(t.Gh(),71).Ii()}function tot(e,t){var n;return n=e.b.Qc(t),Yct(n,e.b.gc()),n}function UO(e,t){if(e==null)throw ue(new D8(t));return e}function dc(e){return e.u||(Yl(e),e.u=new Nrt(e,e)),e.u}function ooe(e){this.a=(Cn(),De(e,59)?new ese(e):new jq(e))}function sl(e){var t;return t=l(Kn(e,16),29),t||e.ii()}function DH(e,t){var n;return n=_m(e.Rm),t==null?n:n+": "+t}function tf(e,t,n){return Ga(t,n,e.length),e.substr(t,n-t)}function not(e,t){Vq.call(this),Y6e(this),this.a=e,this.c=t}function Ppn(e){e&&DH(e,e.ie())}function Bpn(e){Hz(),b.setTimeout(function(){throw e},0)}function Fpn(){return ZV(),he(le(k_e,1),it,436,0,[j0e,x_e])}function Rpn(){return aV(),he(le(T_e,1),it,435,0,[E_e,$0e])}function jpn(){return oV(),he(le(J_e,1),it,432,0,[Q0e,yK])}function $pn(){return dE(),he(le($8t,1),it,517,0,[dB,h1e])}function zpn(){return zH(),he(le(PLe,1),it,429,0,[z1e,NLe])}function qpn(){return pN(),he(le(wLe,1),it,428,0,[XK,vLe])}function Hpn(){return JH(),he(le(hLe,1),it,431,0,[lLe,S1e])}function Vpn(){return dN(),he(le(_De,1),it,430,0,[kde,Ede])}function Upn(){return oA(),he(le(DEt,1),it,531,0,[uM,cM])}function Gpn(){return kV(),he(le(EIe,1),it,501,0,[$W,X6])}function Kpn(){return xd(),he(le(REt,1),it,523,0,[w3,T2])}function Wpn(){return D1(),he(le($Et,1),it,522,0,[wv,Y1])}function Ypn(){return J0(),he(le(tTt,1),it,528,0,[E4,qb])}function Xpn(){return cN(),he(le(kLe,1),it,488,0,[xLe,JK])}function Qpn(){return GH(),he(le(fOe,1),it,491,0,[dge,hOe])}function Jpn(){return fce(),he(le(vOe,1),it,492,0,[bOe,mOe])}function Zpn(){return RH(),he(le(kIe,1),it,433,0,[Ude,xIe])}function e2n(){return eV(),he(le(CIe,1),it,434,0,[TIe,Qde])}function t2n(){return Sw(),he(le(cTt,1),it,465,0,[Hb,K6])}function n2n(){return rN(),he(le(yOe,1),it,438,0,[vge,QW])}function r2n(){return CN(),he(le(qOe,1),it,437,0,[ZW,zOe])}function i2n(){return mae(),he(le(gY,1),it,347,0,[rPe,iPe])}function IH(e,t,n,r){return n>=0?e.Uh(t,n,r):e.Ch(null,n,r)}function GO(e){return e.b.b==0?e.a.sf():kae(e.b)}function s2n(e){if(e.p!=5)throw ue(new pl);return Yr(e.f)}function a2n(e){if(e.p!=5)throw ue(new pl);return Yr(e.k)}function j5e(e){return qe(e.a)===qe((lce(),npe))&&iMn(e),e.a}function o2n(e,t){e.b=t,e.c>0&&e.b>0&&(e.g=aH(e.c,e.b,e.a))}function c2n(e,t){e.c=t,e.c>0&&e.b>0&&(e.g=aH(e.c,e.b,e.a))}function rot(e,t){ce(this,new lt(e.a,e.b)),ve(this,PO(t))}function Cw(){Ycn.call(this,new N8(Ay(12))),Tye(!0),this.a=2}function coe(e,t,n){Di(),Xv.call(this,e),this.b=t,this.a=n}function $5e(e,t,n){Jh(),Nz.call(this,t),this.a=e,this.b=n}function iot(e){var t;t=e.c.d.b,e.b=t,e.a=e.c.d,t.a=e.c.d.b=e}function u2n(e){return e.b==0?null:(mr(e.b!=0),af(e,e.a.a))}function xu(e,t){return t==null?hc(zo(e.f,null)):y_(e.i,t)}function sot(e,t,n,r,a){return new Bue(e,(rE(),P0e),t,n,r,a)}function OH(e,t){return Gct(t),Own(e,We(Vr,di,28,t,15,1),t)}function NH(e,t){return _H(e,"set1"),_H(t,"set2"),new GZe(e,t)}function l2n(e,t){var n=C0e[e.charCodeAt(0)];return n??e}function aot(e,t){var n,r;return n=t,r=new xt,Ovt(e,n,r),r.d}function uoe(e,t,n,r){var a;a=new Frt,t.a[n.g]=a,Q8(e.b,r,a)}function h2n(e,t){var n;return n=Mwn(e.f,t),Oi(Hq(n),e.f.d)}function KO(e){var t;zwn(e.a),dnt(e.a),t=new e_(e.a),S8e(t)}function f2n(e,t){zbt(e,!0),Vu(e.e.Rf(),new v4e(e,!0,t))}function d2n(e,t){return tx(),e==ds(cg(t))||e==ds(Eb(t))}function g2n(e,t){return tp(),l(Q(t,(Hc(),$d)),17).a==e}function ua(e){return Math.max(Math.min(e,Ii),-2147483648)|0}function oot(e){this.a=l(Xr(e),277),this.b=(Cn(),new Dye(e))}function cot(e,t,n){this.i=new bt,this.b=e,this.g=t,this.a=n}function z5e(e,t,n){this.a=new bt,this.e=e,this.f=t,this.c=n}function PH(e,t,n){this.c=new bt,this.e=e,this.f=t,this.b=n}function uot(e){Vq.call(this),Y6e(this),this.a=e,this.c=!0}function p2n(e){function t(){}return t.prototype=e||{},new t}function b2n(e){if(e.Ae())return null;var t=e.n;return sK[t]}function WO(e){return e.Db>>16!=3?null:l(e.Cb,27)}function M1(e){return e.Db>>16!=9?null:l(e.Cb,27)}function lot(e){return e.Db>>16!=6?null:l(e.Cb,74)}function Sw(){Sw=U,Hb=new H3e(Mx,0),K6=new H3e(Dx,1)}function xd(){xd=U,w3=new $3e(Dx,0),T2=new $3e(Mx,1)}function D1(){D1=U,wv=new z3e(whe,0),Y1=new z3e("UP",1)}function hot(){hot=U,o6t=Kr(($z(),he(le(a6t,1),it,549,0,[E0e])))}function fot(e){var t;return t=new Kz(Ay(e.length)),j7e(t,e),t}function dot(e,t){return e.b+=t.b,e.c+=t.c,e.d+=t.d,e.a+=t.a,e}function m2n(e,t){return Zft(e,t)?(Yht(e),!0):!1}function Wg(e,t){if(t==null)throw ue(new S8);return F5n(e,t)}function YO(e,t){var n;n=e.q.getHours(),e.q.setDate(t),XA(e,n)}function q5e(e,t,n){var r;r=e.Ih(t),r>=0?e.bi(r,n):$9e(e,t,n)}function got(e,t){var n;return n=e.Ih(t),n>=0?e.Wh(n):que(e,t)}function pot(e,t){var n;for(Xr(t),n=e.a;n;n=n.c)t.Yd(n.g,n.i)}function loe(e,t,n){var r;r=w0t(e,t,n),e.b=new TV(r.c.length)}function U5(e,t,n){BH(),e&&ki(Zge,e,t),e&&ki(lF,e,n)}function v2n(e,t){return Yq(),Hn(),l(t.a,17).a0}function H5e(e){var t;return t=e.d,t=e.bj(e.f),qr(e,t),t.Ob()}function bot(e,t){var n;return n=new K4e(t),zgt(n,e),new Ol(n)}function x2n(e){if(e.p!=0)throw ue(new pl);return I_(e.f,0)}function k2n(e){if(e.p!=0)throw ue(new pl);return I_(e.k,0)}function mot(e){return e.Db>>16!=7?null:l(e.Cb,241)}function Qk(e){return e.Db>>16!=6?null:l(e.Cb,241)}function vot(e){return e.Db>>16!=7?null:l(e.Cb,167)}function ds(e){return e.Db>>16!=11?null:l(e.Cb,27)}function ky(e){return e.Db>>16!=17?null:l(e.Cb,29)}function wot(e){return e.Db>>16!=3?null:l(e.Cb,155)}function V5e(e){var t;return xb(e),t=new Ks,Fi(e,new k5(t))}function yot(e,t){var n=e.a=e.a||[];return n[t]||(n[t]=e.ve(t))}function E2n(e,t){var n;n=e.q.getHours(),e.q.setMonth(t),XA(e,n)}function xot(e,t){Fq(this),this.f=t,this.g=e,SH(this),this.je()}function kot(e,t){this.a=e,this.c=Ja(this.a),this.b=new MH(t)}function Eot(e,t,n){this.a=t,this.c=e,this.b=(Xr(n),new Ol(n))}function Tot(e,t,n){this.a=t,this.c=e,this.b=(Xr(n),new Ol(n))}function Cot(e){this.a=e,this.b=We(AEt,dt,2043,e.e.length,0,2)}function Sot(){this.a=new bd,this.e=new Ks,this.g=0,this.i=0}function BH(){BH=U,Zge=new Pr,lF=new Pr,mln(C6t,new LS)}function _ot(){_ot=U,fEt=yl(new Xs,(uo(),mc),(vo(),gB))}function U5e(){U5e=U,dEt=yl(new Xs,(uo(),mc),(vo(),gB))}function Aot(){Aot=U,pEt=yl(new Xs,(uo(),mc),(vo(),gB))}function Lot(){Lot=U,OEt=fi(new Xs,(uo(),mc),(vo(),zL))}function Sh(){Sh=U,BEt=fi(new Xs,(uo(),mc),(vo(),zL))}function Mot(){Mot=U,FEt=fi(new Xs,(uo(),mc),(vo(),zL))}function foe(){foe=U,qEt=fi(new Xs,(uo(),mc),(vo(),zL))}function rA(e,t,n,r,a,o){return new Zg(e.e,t,e.Lj(),n,r,a,o)}function rc(e,t,n){return t==null?ju(e.f,null,n):Bw(e.i,t,n)}function po(e,t){e.c&&al(e.c.g,e),e.c=t,e.c&&vt(e.c.g,e)}function Va(e,t){e.c&&al(e.c.a,e),e.c=t,e.c&&vt(e.c.a,e)}function Mc(e,t){e.i&&al(e.i.j,e),e.i=t,e.i&&vt(e.i.j,e)}function Fa(e,t){e.d&&al(e.d.e,e),e.d=t,e.d&&vt(e.d.e,e)}function doe(e,t){e.a&&al(e.a.k,e),e.a=t,e.a&&vt(e.a.k,e)}function goe(e,t){e.b&&al(e.b.f,e),e.b=t,e.b&&vt(e.b.f,e)}function Dot(e,t){Pgn(e,e.b,e.c),l(e.b.b,68),t&&l(t.b,68).b}function T2n(e,t){return Yi(l(e.c,65).c.e.b,l(t.c,65).c.e.b)}function C2n(e,t){return Yi(l(e.c,65).c.e.a,l(t.c,65).c.e.a)}function S2n(e){return Mce(),Hn(),l(e.a,86).d.e!=0}function FH(e,t){De(e.Cb,184)&&(l(e.Cb,184).tb=null),Fu(e,t)}function poe(e,t){De(e.Cb,90)&&zy(Yl(l(e.Cb,90)),4),Fu(e,t)}function _2n(e,t){m8e(e,t),De(e.Cb,90)&&zy(Yl(l(e.Cb,90)),2)}function A2n(e,t){var n,r;n=t.c,r=n!=null,r&&J8(e,new yy(t.c))}function Iot(e){var t,n;return n=(Sk(),t=new Qv,t),sE(n,e),n}function Oot(e){var t,n;return n=(Sk(),t=new Qv,t),sE(n,e),n}function Not(e){for(var t;;)if(t=e.Pb(),!e.Ob())return t}function L2n(e,t,n){return vt(e.a,(kH(),fue(t,n),new iw(t,n))),e}function ku(e,t){return Fo(),Voe(t)?new nH(t,e):new yO(t,e)}function XO(e){return Cd(),iu(e,0)>=0?kb(e):J_(kb(r2(e)))}function M2n(e){var t;return t=l(eH(e.b),9),new Zh(e.a,t,e.c)}function Pot(e,t){var n;return n=l(Oy(ex(e.a),t),16),n?n.gc():0}function Bot(e,t,n){var r;o1t(t,n,e.c.length),r=n-t,d3e(e.c,t,r)}function Zp(e,t,n){o1t(t,n,e.gc()),this.c=e,this.a=t,this.b=n-t}function nx(e){this.c=new os,this.b=e.b,this.d=e.c,this.a=e.a}function boe(e){this.a=b.Math.cos(e),this.b=b.Math.sin(e)}function Pm(e,t,n,r){this.c=e,this.d=r,doe(this,t),goe(this,n)}function G5e(e,t){Kcn.call(this,new N8(Ay(e))),Mh(t,Dwt),this.a=t}function Fot(e,t,n){return new Bue(e,(rE(),N0e),null,!1,t,n)}function Rot(e,t,n){return new Bue(e,(rE(),B0e),t,n,null,!1)}function D2n(){return Fl(),he(le(oc,1),it,108,0,[y_e,Ec,i4])}function I2n(){return ol(),he(le(X6t,1),it,472,0,[a1,Fb,w0])}function O2n(){return Bl(),he(le(W6t,1),it,471,0,[Fd,Bb,v0])}function N2n(){return t1(),he(le(s4,1),it,237,0,[Gc,$u,Kc])}function P2n(){return lA(),he(le(dAe,1),it,391,0,[t1e,e1e,n1e])}function B2n(){return Ow(),he(le(m1e,1),it,372,0,[o3,Rb,a3])}function F2n(){return dA(),he(le(dLe,1),it,322,0,[HL,mB,fLe])}function R2n(){return pV(),he(le(pLe,1),it,351,0,[gLe,YK,_1e])}function j2n(){return Vm(),he(le(mxt,1),it,460,0,[M1e,FT,P6])}function $2n(){return vE(),he(le($1e,1),it,299,0,[R1e,j1e,vB])}function z2n(){return ep(),he(le(Cxt,1),it,311,0,[wB,F6,Ux])}function q2n(){return EA(),he(le(mDe,1),it,390,0,[pde,bDe,SW])}function H2n(){return qo(),he(le(sEt,1),it,463,0,[sM,$l,zu])}function V2n(){return LV(),he(le(MDe,1),it,387,0,[ADe,Tde,LDe])}function U2n(){return yA(),he(le(DDe,1),it,349,0,[Sde,Cde,MB])}function G2n(){return SE(),he(le(ODe,1),it,350,0,[_de,IDe,aM])}function K2n(){return gV(),he(le(BDe,1),it,352,0,[PDe,Ade,NDe])}function W2n(){return OV(),he(le(FDe,1),it,388,0,[Lde,XT,k4])}function Y2n(){return Iw(),he(le(SEt,1),it,464,0,[DB,oM,MW])}function I1(e){return Ic(he(le(Ea,1),dt,8,0,[e.i.n,e.n,e.a]))}function X2n(){return xA(),he(le(eIe,1),it,392,0,[ZDe,Ide,OB])}function jot(){jot=U,FTt=yl(new Xs,(wx(),hM),(WA(),VDe))}function RH(){RH=U,Ude=new V3e("DFS",0),xIe=new V3e("BFS",1)}function $ot(e,t,n){var r;r=new hte,r.b=t,r.a=n,++t.b,vt(e.d,r)}function Q2n(e,t,n){var r;r=new Eo(n.d),Oi(r,e),b8e(t,r.a,r.b)}function J2n(e,t){Ont(e,Yr(va(bw(t,24),ZU)),Yr(va(t,ZU)))}function Ey(e,t){if(e<0||e>t)throw ue(new tc(dEe+e+gEe+t))}function Sn(e,t){if(e<0||e>=t)throw ue(new tc(dEe+e+gEe+t))}function Xn(e,t){if(e<0||e>=t)throw ue(new e3e(dEe+e+gEe+t))}function kn(e,t){this.b=(nr(e),e),this.a=t&Xy?t:t|64|_d}function K5e(e){var t;return xb(e),t=(Ew(),Ew(),D0e),lV(e,t)}function Z2n(e,t,n){var r;return r=ZA(e,t,!1),r.b<=t&&r.a<=n}function ebn(){return tV(),he(le(pOe,1),it,439,0,[gge,gOe,dOe])}function tbn(){return qV(),he(le(XIe,1),it,394,0,[YIe,uge,WIe])}function nbn(){return WV(),he(le(KIe,1),it,445,0,[RB,VW,rge])}function rbn(){return sU(),he(le(gCt,1),it,456,0,[ige,age,sge])}function ibn(){return LN(),he(le(AIe,1),it,393,0,[zW,SIe,_Ie])}function sbn(){return AV(),he(le(GIe,1),it,300,0,[nge,UIe,VIe])}function abn(){return rp(),he(le(YNe,1),it,346,0,[oY,A2,DM])}function obn(){return PN(),he(le(pge,1),it,444,0,[WW,YW,XW])}function cbn(){return F1(),he(le(FNe,1),it,278,0,[nC,_4,rC])}function ubn(){return dx(),he(le(nPe,1),it,280,0,[tPe,L4,dY])}function _w(e){return Xr(e),De(e,16)?new Ol(l(e,16)):$k(e.Kc())}function W5e(e,t){return e&&e.equals?e.equals(t):qe(e)===qe(t)}function va(e,t){return mb(tgn(wc(e)?Mf(e):e,wc(t)?Mf(t):t))}function Q0(e,t){return mb(ngn(wc(e)?Mf(e):e,wc(t)?Mf(t):t))}function moe(e,t){return mb(rgn(wc(e)?Mf(e):e,wc(t)?Mf(t):t))}function lbn(e,t){var n;return n=(nr(e),e).g,qye(!!n),nr(t),n(t)}function zot(e,t){var n,r;return r=Hk(e,t),n=e.a.fd(r),new VZe(e,n)}function hbn(e){return e.Db>>16!=6?null:l(Uue(e),241)}function fbn(e){if(e.p!=2)throw ue(new pl);return Yr(e.f)&Zs}function dbn(e){if(e.p!=2)throw ue(new pl);return Yr(e.k)&Zs}function re(e){return mr(e.ar?1:0}function Uot(e,t){var n,r;return n=$oe(t),r=n,l(cr(e.c,r),17).a}function voe(e,t,n){var r;r=e.d[t.p],e.d[t.p]=e.d[n.p],e.d[n.p]=r}function Tbn(e,t,n){var r;e.n&&t&&n&&(r=new Kne,vt(e.e,r))}function woe(e,t){if(na(e.a,t),t.d)throw ue(new Ac(e3t));t.d=e}function Q5e(e,t){this.a=new bt,this.d=new bt,this.f=e,this.c=t}function Got(){this.c=new Lnt,this.a=new Put,this.b=new UQe,uet()}function Kot(){hx(),this.b=new Pr,this.a=new Pr,this.c=new bt}function Wot(e,t,n){this.d=e,this.j=t,this.e=n,this.o=-1,this.p=3}function Yot(e,t,n){this.d=e,this.k=t,this.f=n,this.o=-1,this.p=5}function Xot(e,t,n,r,a,o){Q6e.call(this,e,t,n,r,a),o&&(this.o=-2)}function Qot(e,t,n,r,a,o){J6e.call(this,e,t,n,r,a),o&&(this.o=-2)}function Jot(e,t,n,r,a,o){p6e.call(this,e,t,n,r,a),o&&(this.o=-2)}function Zot(e,t,n,r,a,o){t7e.call(this,e,t,n,r,a),o&&(this.o=-2)}function ect(e,t,n,r,a,o){b6e.call(this,e,t,n,r,a),o&&(this.o=-2)}function tct(e,t,n,r,a,o){Z6e.call(this,e,t,n,r,a),o&&(this.o=-2)}function nct(e,t,n,r,a,o){e7e.call(this,e,t,n,r,a),o&&(this.o=-2)}function rct(e,t,n,r,a,o){m6e.call(this,e,t,n,r,a),o&&(this.o=-2)}function ict(e,t,n,r){Nz.call(this,n),this.b=e,this.c=t,this.d=r}function sct(e,t){this.f=e,this.a=(eE(),SY),this.c=SY,this.b=t}function act(e,t){this.g=e,this.d=(eE(),_Y),this.a=_Y,this.b=t}function J5e(e,t){!e.c&&(e.c=new Ls(e,0)),HU(e.c,(Gi(),HM),t)}function Cbn(e,t){return oTn(e,t,De(t,102)&&(l(t,19).Bb&Io)!=0)}function Sbn(e,t){return $st(Zc(e.q.getTime()),Zc(t.q.getTime()))}function oct(e){return Cae(e.e.Rd().gc()*e.c.Rd().gc(),16,new pie(e))}function _bn(e){return!!e.u&&du(e.u.a).i!=0&&!(e.n&&cue(e.n))}function Abn(e){return!!e.a&&Xl(e.a.a).i!=0&&!(e.b&&uue(e.b))}function Z5e(e,t){return t==0?!!e.o&&e.o.f!=0:nue(e,t)}function Lbn(e,t,n){var r;return r=l(e.Zb().xc(t),16),!!r&&r.Hc(n)}function cct(e,t,n){var r;return r=l(e.Zb().xc(t),16),!!r&&r.Mc(n)}function uct(e,t){var n;return n=1-t,e.a[n]=EV(e.a[n],n),EV(e,t)}function lct(e,t){var n,r;return r=va(e,Vo),n=l0(t,32),Q0(n,r)}function hct(e,t,n){var r;r=(Xr(e),new Ol(e)),D7n(new Eot(r,t,n))}function QO(e,t,n){var r;r=(Xr(e),new Ol(e)),I7n(new Tot(r,t,n))}function zc(e,t,n,r,a,o){return qft(e,t,n,o),c8e(e,r),u8e(e,a),e}function fct(e,t,n,r){return e.a+=""+tf(t==null?ul:xc(t),n,r),e}function Ua(e,t){this.a=e,kr.call(this,e),Ey(t,e.gc()),this.b=t}function dct(e){this.a=We(wa,Rn,1,P7e(b.Math.max(8,e))<<1,5,1)}function JO(e){return l(j1(e,We(wg,m2,10,e.c.length,0,1)),199)}function kd(e){return l(j1(e,We(u1e,Bhe,18,e.c.length,0,1)),483)}function gct(e){return e.a?e.e.length==0?e.a.a:e.a.a+(""+e.e):e.c}function iA(e){for(;e.d>0&&e.a[--e.d]==0;);e.a[e.d++]==0&&(e.e=0)}function pct(e){return mr(e.b.b!=e.d.a),e.c=e.b=e.b.b,--e.a,e.c.c}function Mbn(e,t,n){e.a=t,e.c=n,e.b.a.$b(),Ch(e.d),ay(e.e.a.c,0)}function bct(e,t){var n;e.e=new Vwe,n=Hy(t),Vs(n,e.c),Mbt(e,n,0)}function Qs(e,t,n,r){var a;a=new J9,a.a=t,a.b=n,a.c=r,ci(e.a,a)}function gt(e,t,n,r){var a;a=new J9,a.a=t,a.b=n,a.c=r,ci(e.b,a)}function mct(e,t,n){if(e<0||tn)throw ue(new tc(H9n(e,t,n)))}function ZO(e,t){if(e<0||e>=t)throw ue(new tc(ykn(e,t)));return e}function Dbn(e){if(!("stack"in e))try{throw e}catch{}return e}function G5(e){return p_(),De(e.g,10)?l(e.g,10):null}function Ibn(e){return V5(e).dc()?!1:(thn(e,new oe),!0)}function Fm(e){var t;return wc(e)?(t=e,t==-0?0:t):Kvn(e)}function vct(e,t){return De(t,44)?gue(e.a,l(t,44)):!1}function wct(e,t){return De(t,44)?gue(e.a,l(t,44)):!1}function yct(e,t){return De(t,44)?gue(e.a,l(t,44)):!1}function e6e(e){var t;return fb(e),t=new Ne,A5(e.a,new x5(t)),t}function t6e(){var e,t,n;return t=(n=(e=new Qv,e),n),vt(RPe,t),t}function jH(e){var t;return fb(e),t=new gn,A5(e.a,new T8(t)),t}function Obn(e,t){return e.a<=e.b?(t.Dd(e.a++),!0):!1}function xct(e){oce.call(this,e,(rE(),O0e),null,!1,null,!1)}function kct(){kct=U,A7t=Kr((Zz(),he(le(U_e,1),it,489,0,[G0e])))}function Ect(){Ect=U,jDe=pat(pt(1),pt(4)),RDe=pat(pt(1),pt(2))}function Nbn(e,t){return new wae(t,z_(Ja(t.e),e,e),(Hn(),!0))}function $H(e){return new Bu((Mh(e,Fle),cV(bo(bo(5,e),e/10|0))))}function Pbn(e){return Cae(e.e.Rd().gc()*e.c.Rd().gc(),273,new gie(e))}function Tct(e){return l(j1(e,We(F8t,I3t,12,e.c.length,0,1)),2042)}function Bbn(e){return Sh(),!Do(e)&&!(!Do(e)&&e.c.i.c==e.d.i.c)}function Fbn(e,t){return ux(),l(Q(t,(Hc(),W6)),17).a>=e.gc()}function sA(e,t){wIn(t,e),N4e(e.d),N4e(l(Q(e,(Nt(),wW)),214))}function yoe(e,t){yIn(t,e),P4e(e.d),P4e(l(Q(e,(Nt(),wW)),214))}function Rbn(e,t,n){e.d&&al(e.d.e,e),e.d=t,e.d&&pw(e.d.e,n,e)}function jbn(e,t,n){return n.f.c.length>0?u5e(e.a,t,n):u5e(e.b,t,n)}function $bn(e,t,n){var r;r=r6n();try{return _fn(e,t,n)}finally{Imn(r)}}function Aw(e,t){var n,r;return n=Wg(e,t),r=null,n&&(r=n.pe()),r}function aA(e,t){var n,r;return n=Wg(e,t),r=null,n&&(r=n.se()),r}function Jk(e,t){var n,r;return n=_y(e,t),r=null,n&&(r=n.se()),r}function Yg(e,t){var n,r;return n=Wg(e,t),r=null,n&&(r=e9e(n)),r}function zbn(e,t,n){var r;return r=NE(n),RU(e.g,r,t),RU(e.i,t,n),t}function n6e(e,t,n){this.d=new OYe(this),this.e=e,this.i=t,this.f=n}function Cct(e,t,n,r){this.e=null,this.c=e,this.d=t,this.a=n,this.b=r}function Sct(e,t,n,r){Ent(this),this.c=e,this.e=t,this.f=n,this.b=r}function r6e(e,t,n,r){this.d=e,this.n=t,this.g=n,this.o=r,this.p=-1}function _ct(e,t,n,r){return De(n,59)?new rrt(e,t,n,r):new r5e(e,t,n,r)}function Zk(e){return De(e,16)?l(e,16).dc():!e.Kc().Ob()}function Act(e){if(e.e.g!=e.b)throw ue(new Xh);return!!e.c&&e.d>0}function Br(e){return mr(e.b!=e.d.c),e.c=e.b,e.b=e.b.a,++e.a,e.c.c}function i6e(e,t){nr(t),Ts(e.a,e.c,t),e.c=e.c+1&e.a.length-1,Xdt(e)}function gb(e,t){nr(t),e.b=e.b-1&e.a.length-1,Ts(e.a,e.b,t),Xdt(e)}function Lct(e){var t;t=e.Gh(),this.a=De(t,71)?l(t,71).Ii():t.Kc()}function qbn(e){return new kn(_wn(l(e.a.md(),16).gc(),e.a.ld()),16)}function Mct(){Mct=U,UCt=Kr((nq(),he(le(wOe,1),it,490,0,[bge])))}function Dct(){Dct=U,KCt=Kr((rq(),he(le(GCt,1),it,558,0,[mge])))}function Ict(){Ict=U,hSt=Kr((b_(),he(le($Oe,1),it,539,0,[qB])))}function Hbn(){return Km(),he(le(mAe,1),it,389,0,[c4,bAe,o1e,c1e])}function Vbn(){return rE(),he(le(fK,1),it,304,0,[O0e,N0e,P0e,B0e])}function Ubn(){return bx(),he(le(E7t,1),it,332,0,[aB,sB,oB,cB])}function Gbn(){return NA(),he(le(S7t,1),it,406,0,[uB,bK,mK,lB])}function Kbn(){return Pw(),he(le(x7t,1),it,417,0,[iB,rB,V0e,U0e])}function Wbn(){return wE(),he(le(C8t,1),it,416,0,[s3,o4,a4,M6])}function Ybn(){return R1(),he(le(txt,1),it,421,0,[Vx,MT,DT,b1e])}function Xbn(){return IV(),he(le(V8t,1),it,371,0,[p1e,HK,VK,pB])}function Qbn(){return By(),he(le(mde,1),it,203,0,[_W,bde,G6,U6])}function Jbn(){return Ed(),he(le(SDe,1),it,284,0,[E2,CDe,yde,xde])}function Zbn(e){var t;return e.j==(Ct(),Dr)&&(t=v2t(e),vl(t,ar))}function emn(e,t){var n;n=t.a,po(n,t.c.d),Fa(n,t.d.d),Dy(n.a,e.n)}function s6e(e,t){var n;return n=l(B1(e.b,t),67),!n&&(n=new os),n}function ix(e){return p_(),De(e.g,154)?l(e.g,154):null}function tmn(e){e.a=null,e.e=null,ay(e.b.c,0),ay(e.f.c,0),e.c=null}function zH(){zH=U,z1e=new F3e(cT,0),NLe=new F3e("TOP_LEFT",1)}function oA(){oA=U,uM=new j3e("UPPER",0),cM=new j3e("LOWER",1)}function nmn(e,t){return z8(new lt(t.e.a+t.f.a/2,t.e.b+t.f.b/2),e)}function Oct(e,t){return l(fh(vy(l($i(e.k,t),15).Oc(),I6)),113)}function Nct(e,t){return l(fh(Y8(l($i(e.k,t),15).Oc(),I6)),113)}function rmn(){return wx(),he(le(qDe,1),it,405,0,[NW,lM,hM,fM])}function imn(){return kA(),he(le(yIe,1),it,353,0,[Vde,jW,Hde,qde])}function smn(){return uU(),he(le(HIe,1),it,354,0,[tge,zIe,qIe,$Ie])}function amn(){return mh(),he(le(BM,1),it,386,0,[iF,Cv,rF,A4])}function omn(){return Ih(),he(le(JSt,1),it,291,0,[eF,kg,Gb,ZB])}function cmn(){return ip(),he(le(Vge,1),it,223,0,[Hge,JB,iC,s9])}function umn(){return VV(),he(le(cPe,1),it,320,0,[Kge,sPe,oPe,aPe])}function lmn(){return NV(),he(le(p_t,1),it,415,0,[Wge,lPe,uPe,hPe])}function hmn(e){return BH(),Hu(Zge,e)?l(cr(Zge,e),341).Qg():null}function nf(e,t,n){return t<0?que(e,n):l(n,69).wk().Bk(e,e.hi(),t)}function fmn(e,t,n){var r;return r=NE(n),RU(e.j,r,t),ki(e.k,t,n),t}function dmn(e,t,n){var r;return r=NE(n),RU(e.d,r,t),ki(e.e,t,n),t}function Pct(e){var t,n;return t=(rb(),n=new TI,n),e&&AU(t,e),t}function a6e(e){var t;return t=e.aj(e.i),e.i>0&&pu(e.g,0,t,0,e.i),t}function Bct(e,t){var n;for(n=e.j.c.length;n>24}function pmn(e){if(e.p!=1)throw ue(new pl);return Yr(e.k)<<24>>24}function bmn(e){if(e.p!=7)throw ue(new pl);return Yr(e.k)<<16>>16}function mmn(e){if(e.p!=7)throw ue(new pl);return Yr(e.f)<<16>>16}function K5(e,t){return t.e==0||e.e==0?BL:(GE(),Que(e,t))}function jct(e,t){return qe(t)===qe(e)?"(this Map)":t==null?ul:xc(t)}function vmn(e,t,n){return Nae(Ge(hc(zo(e.f,t))),Ge(hc(zo(e.f,n))))}function wmn(e,t,n){var r;r=l(cr(e.g,n),60),vt(e.a.c,new ca(t,r))}function $ct(e,t,n){e.i=0,e.e=0,t!=n&&(k0t(e,t,n),x0t(e,t,n))}function ymn(e,t,n,r,a){var o;o=xTn(a,n,r),vt(t,dkn(a,o)),i9n(e,a,t)}function o6e(e,t,n,r,a){this.i=e,this.a=t,this.e=n,this.j=r,this.f=a}function zct(e,t){R5e.call(this),this.a=e,this.b=t,vt(this.a.b,this)}function qct(e){this.b=new Pr,this.c=new Pr,this.d=new Pr,this.a=e}function Hct(e,t){var n;return n=new S5,e.Gd(n),n.a+="..",t.Hd(n),n.a}function Vct(e,t){var n;for(n=t;n;)dw(e,n.i,n.j),n=ds(n);return e}function Uct(e,t,n){var r;return r=NE(n),ki(e.b,r,t),ki(e.c,t,n),t}function Xg(e){var t;for(t=0;e.Ob();)e.Pb(),t=bo(t,1);return cV(t)}function sg(e,t){Fo();var n;return n=l(e,69).vk(),y9n(n,t),n.xl(t)}function xmn(e,t,n){if(n){var r=n.oe();e.a[t]=r(n)}else delete e.a[t]}function c6e(e,t){var n;n=e.q.getHours(),e.q.setFullYear(t+Lb),XA(e,n)}function kmn(e,t){return l(t==null?hc(zo(e.f,null)):y_(e.i,t),288)}function u6e(e,t){return e==(Zn(),Ps)&&t==Ps?4:e==Ps||t==Ps?8:32}function qH(e,t,n){return $U(e,t,n,De(t,102)&&(l(t,19).Bb&Io)!=0)}function Emn(e,t,n){return XE(e,t,n,De(t,102)&&(l(t,19).Bb&Io)!=0)}function Tmn(e,t,n){return gTn(e,t,n,De(t,102)&&(l(t,19).Bb&Io)!=0)}function l6e(e){e.b!=e.c&&(e.a=We(wa,Rn,1,8,5,1),e.b=0,e.c=0)}function cA(e){return mr(e.a=0&&e.a[n]===t[n];n--);return n<0}function HH(e){var t;return e?new K4e(e):(t=new bd,sce(t,e),t)}function Dmn(e,t){var n,r;r=!1;do n=h0t(e,t),r=r|n;while(n);return r}function Imn(e){e&&iwn((Xwe(),GSe)),--aK,e&&oK!=-1&&(Eln(oK),oK=-1)}function VH(e){Rxe(),Ont(this,Yr(va(bw(e,24),ZU)),Yr(va(e,ZU)))}function Xct(){Xct=U,q6t=Kr((ZV(),he(le(k_e,1),it,436,0,[j0e,x_e])))}function Qct(){Qct=U,H6t=Kr((aV(),he(le(T_e,1),it,435,0,[E_e,$0e])))}function Jct(){Jct=U,U7t=Kr((oV(),he(le(J_e,1),it,432,0,[Q0e,yK])))}function Zct(){Zct=U,z8t=Kr((dE(),he(le($8t,1),it,517,0,[dB,h1e])))}function eut(){eut=U,_xt=Kr((zH(),he(le(PLe,1),it,429,0,[z1e,NLe])))}function tut(){tut=U,bxt=Kr((pN(),he(le(wLe,1),it,428,0,[XK,vLe])))}function nut(){nut=U,yxt=Kr((cN(),he(le(kLe,1),it,488,0,[xLe,JK])))}function rut(){rut=U,iEt=Kr((dN(),he(le(_De,1),it,430,0,[kde,Ede])))}function iut(){iut=U,IEt=Kr((oA(),he(le(DEt,1),it,531,0,[uM,cM])))}function sut(){sut=U,fxt=Kr((JH(),he(le(hLe,1),it,431,0,[lLe,S1e])))}function aut(){aut=U,BTt=Kr((RH(),he(le(kIe,1),it,433,0,[Ude,xIe])))}function out(){out=U,zTt=Kr((kV(),he(le(EIe,1),it,501,0,[$W,X6])))}function cut(){cut=U,jEt=Kr((xd(),he(le(REt,1),it,523,0,[w3,T2])))}function uut(){uut=U,zEt=Kr((D1(),he(le($Et,1),it,522,0,[wv,Y1])))}function lut(){lut=U,nTt=Kr((J0(),he(le(tTt,1),it,528,0,[E4,qb])))}function hut(){hut=U,uTt=Kr((Sw(),he(le(cTt,1),it,465,0,[Hb,K6])))}function fut(){fut=U,VTt=Kr((eV(),he(le(CIe,1),it,434,0,[TIe,Qde])))}function dut(){dut=U,jCt=Kr((GH(),he(le(fOe,1),it,491,0,[dge,hOe])))}function gut(){gut=U,zCt=Kr((fce(),he(le(vOe,1),it,492,0,[bOe,mOe])))}function put(){put=U,WCt=Kr((rN(),he(le(yOe,1),it,438,0,[vge,QW])))}function but(){but=U,fSt=Kr((CN(),he(le(qOe,1),it,437,0,[ZW,zOe])))}function mut(){mut=U,f_t=Kr((mae(),he(le(gY,1),it,347,0,[rPe,iPe])))}function Omn(){return Js(),he(le(LM,1),it,88,0,[J1,vc,uc,Q1,wf])}function Nmn(){return Ct(),he(le(Oo,1),au,64,0,[Pc,Qn,ar,Dr,er])}function Pmn(e,t,n){return l(t==null?ju(e.f,null,n):Bw(e.i,t,n),288)}function Bmn(e){return(e.k==(Zn(),Ps)||e.k==Us)&&ns(e,(ft(),KL))}function Coe(e){return e.c&&e.d?X5e(e.c)+"->"+X5e(e.d):"e_"+fw(e)}function to(e,t){var n,r;for(nr(t),r=e.Kc();r.Ob();)n=r.Pb(),t.Cd(n)}function Fmn(e,t){var n;n=new M8,Nm(n,"x",t.a),Nm(n,"y",t.b),J8(e,n)}function Rmn(e,t){var n;n=new M8,Nm(n,"x",t.a),Nm(n,"y",t.b),J8(e,n)}function vut(e,t){var n;for(n=t;n;)dw(e,-n.i,-n.j),n=ds(n);return e}function f6e(e,t){var n,r;for(n=t,r=0;n>0;)r+=e.a[n],n-=n&-n;return r}function rf(e,t,n){var r;return r=(Sn(t,e.c.length),e.c[t]),e.c[t]=n,r}function d6e(e,t,n){e.a.c.length=0,uMn(e,t,n),e.a.c.length==0||F_n(e,t)}function eN(e){e.i=0,aO(e.b,null),aO(e.c,null),e.a=null,e.e=null,++e.g}function UH(){UH=U,G1=!0,I6t=!1,O6t=!1,P6t=!1,N6t=!1}function Soe(e){UH(),!G1&&(this.c=e,this.e=!0,this.a=new bt)}function wut(e,t){this.c=0,this.b=t,qtt.call(this,e,17493),this.a=this.c}function yut(e){kwt(),SQe(this),this.a=new os,G7e(this,e),ci(this.a,e)}function xut(){Yse(this),this.b=new lt(gs,gs),this.a=new lt(ia,ia)}function GH(){GH=U,dge=new K3e(HEe,0),hOe=new K3e("TARGET_WIDTH",1)}function W5(e,t){return(xb(e),_k(new bn(e,new $6e(t,e.a)))).Bd(zx)}function jmn(){return uo(),he(le(gAe,1),it,367,0,[y0,vg,bu,_u,mc])}function $mn(){return Ry(),he(le(rxt,1),it,375,0,[bB,KK,WK,GK,UK])}function zmn(){return l2(),he(le(mLe,1),it,348,0,[A1e,bLe,L1e,BT,PT])}function qmn(){return OA(),he(le(wDe,1),it,323,0,[vDe,vde,wde,rM,iM])}function Hmn(){return hf(),he(le(WLe,1),it,171,0,[EB,YL,$b,XL,d4])}function Vmn(){return bU(),he(le(qTt,1),it,368,0,[Yde,Gde,Xde,Kde,Wde])}function Umn(){return VA(),he(le(qCt,1),it,373,0,[Q6,e9,xM,yM,zB])}function Gmn(){return XN(),he(le(TOe,1),it,324,0,[xOe,wge,EOe,yge,kOe])}function Kmn(){return r1(),he(le(xg,1),it,170,0,[Pn,ha,zd,yv,S2])}function Wmn(){return t6(),he(le(OM,1),it,256,0,[Kb,tF,XNe,IM,QNe])}function Ymn(e){return Hz(),function(){return $bn(e,this,arguments)}}function Do(e){return!e.c||!e.d?!1:!!e.c.i&&e.c.i==e.d.i}function g6e(e,t){return De(t,143)?vn(e.c,l(t,143).c):!1}function Yl(e){return e.t||(e.t=new bQe(e),_A(new IJe(e),0,e.t)),e.t}function kut(e){this.b=e,or.call(this,e),this.a=l(Kn(this.b.a,4),129)}function Eut(e){this.b=e,H8.call(this,e),this.a=l(Kn(this.b.a,4),129)}function h0(e,t,n,r,a){Out.call(this,t,r,a),this.c=e,this.b=n}function p6e(e,t,n,r,a){Wot.call(this,t,r,a),this.c=e,this.a=n}function b6e(e,t,n,r,a){Yot.call(this,t,r,a),this.c=e,this.a=n}function m6e(e,t,n,r,a){Out.call(this,t,r,a),this.c=e,this.a=n}function _oe(e,t){var n;return n=l(B1(e.d,t),23),n||l(B1(e.e,t),23)}function Tut(e,t){var n,r;return n=t.ld(),r=e.Fe(n),!!r&&Jc(r.e,t.md())}function Cut(e,t){var n;return n=t.ld(),new iw(n,e.e.pc(n,l(t.md(),16)))}function Xmn(e,t){var n;return n=e.a.get(t),n??We(wa,Rn,1,0,5,1)}function Sut(e){var t;return t=e.length,vn(sr.substr(sr.length-t,t),e)}function xr(e){if(jr(e))return e.c=e.a,e.a.Pb();throw ue(new _c)}function v6e(e,t){return t==0||e.e==0?e:t>0?pbt(e,t):j1t(e,-t)}function sx(e,t){return t==0||e.e==0?e:t>0?j1t(e,t):pbt(e,-t)}function w6e(e){oln.call(this,e==null?ul:xc(e),De(e,82)?l(e,82):null)}function _ut(e){var t;return e.c||(t=e.r,De(t,90)&&(e.c=l(t,29))),e.c}function Aoe(e){var t;return t=new Tw,pc(t,e),rt(t,(Nt(),cc),null),t}function Aut(e){var t,n;return t=e.c.i,n=e.d.i,t.k==(Zn(),Us)&&n.k==Us}function Loe(e){var t,n,r;return t=e&eh,n=e>>22&eh,r=e<0?hp:0,qu(t,n,r)}function Qmn(e){var t,n,r,a;for(n=e,r=0,a=n.length;r=0?e.Lh(r,n,!0):Hw(e,t,n)}function Zmn(e,t,n){return Yi(z8(BE(e),Ja(t.b)),z8(BE(e),Ja(n.b)))}function evn(e,t,n){return Yi(z8(BE(e),Ja(t.e)),z8(BE(e),Ja(n.e)))}function tvn(e,t){return b.Math.min(pb(t.a,e.d.d.c),pb(t.b,e.d.d.c))}function tN(e,t){e._i(e.i+1),R_(e,e.i,e.Zi(e.i,t)),e.Mi(e.i++,t),e.Ni()}function uA(e){var t,n;++e.j,t=e.g,n=e.i,e.g=null,e.i=0,e.Oi(n,t),e.Ni()}function Lut(e,t,n){var r;r=new vye(e.a),bA(r,e.a.a),ju(r.f,t,n),e.a.a=r}function y6e(e,t,n,r){var a;for(a=0;at)throw ue(new tc(u9e(e,t,"index")));return e}function t2(e,t){var n;return n=(Sn(t,e.c.length),e.c[t]),d3e(e.c,t,1),n}function E6e(e,t){var n,r;return n=(nr(e),e),r=(nr(t),t),n==r?0:nt.p?-1:0}function Fut(e){var t;return e.a||(t=e.r,De(t,156)&&(e.a=l(t,156))),e.a}function ovn(e,t,n){var r;return++e.e,--e.f,r=l(e.d[t].gd(n),136),r.md()}function cvn(e){var t,n;return t=e.ld(),n=l(e.md(),16),NO(n.Nc(),new bie(t))}function Rut(e,t){return Hu(e.a,t)?(ax(e.a,t),!0):!1}function ox(e,t,n){return ZO(t,e.e.Rd().gc()),ZO(n,e.c.Rd().gc()),e.a[t][n]}function WH(e,t,n){this.a=e,this.b=t,this.c=n,vt(e.t,this),vt(t.i,this)}function YH(e,t,n,r){this.f=e,this.e=t,this.d=n,this.b=r,this.c=r?r.d:null}function nN(){this.b=new os,this.a=new os,this.b=new os,this.a=new os}function eE(){eE=U;var e,t;SY=(Sk(),t=new Fz,t),_Y=(e=new zie,e)}function uvn(e){var t;return xb(e),t=new Mit(e,e.a.e,e.a.d|4),new Vye(e,t)}function jut(e){var t;for(fb(e),t=0;e.a.Bd(new An);)t=bo(t,1);return t}function XH(e,t){return nr(t),e.c=0,"Initial capacity must not be negative")}function QH(){QH=U,kM=new Ui("org.eclipse.elk.labels.labelManager")}function $ut(){$ut=U,sLe=new vs("separateLayerConnections",(IV(),p1e))}function J0(){J0=U,E4=new q3e("REGULAR",0),qb=new q3e("CRITICAL",1)}function rN(){rN=U,vge=new Y3e("FIXED",0),QW=new Y3e("CENTER_NODE",1)}function JH(){JH=U,lLe=new N3e("QUADRATIC",0),S1e=new N3e("SCANLINE",1)}function zut(){zut=U,dxt=Kr((dA(),he(le(dLe,1),it,322,0,[HL,mB,fLe])))}function qut(){qut=U,gxt=Kr((pV(),he(le(pLe,1),it,351,0,[gLe,YK,_1e])))}function Hut(){Hut=U,uxt=Kr((Ow(),he(le(m1e,1),it,372,0,[o3,Rb,a3])))}function Vut(){Vut=U,vxt=Kr((Vm(),he(le(mxt,1),it,460,0,[M1e,FT,P6])))}function Uut(){Uut=U,Txt=Kr((vE(),he(le($1e,1),it,299,0,[R1e,j1e,vB])))}function Gut(){Gut=U,Sxt=Kr((ep(),he(le(Cxt,1),it,311,0,[wB,F6,Ux])))}function Kut(){Kut=U,Zkt=Kr((EA(),he(le(mDe,1),it,390,0,[pde,bDe,SW])))}function Wut(){Wut=U,oEt=Kr((LV(),he(le(MDe,1),it,387,0,[ADe,Tde,LDe])))}function Yut(){Yut=U,cEt=Kr((yA(),he(le(DDe,1),it,349,0,[Sde,Cde,MB])))}function Xut(){Xut=U,aEt=Kr((qo(),he(le(sEt,1),it,463,0,[sM,$l,zu])))}function Qut(){Qut=U,uEt=Kr((SE(),he(le(ODe,1),it,350,0,[_de,IDe,aM])))}function Jut(){Jut=U,lEt=Kr((gV(),he(le(BDe,1),it,352,0,[PDe,Ade,NDe])))}function Zut(){Zut=U,hEt=Kr((OV(),he(le(FDe,1),it,388,0,[Lde,XT,k4])))}function elt(){elt=U,fTt=Kr((xA(),he(le(eIe,1),it,392,0,[ZDe,Ide,OB])))}function tlt(){tlt=U,UTt=Kr((LN(),he(le(AIe,1),it,393,0,[zW,SIe,_Ie])))}function nlt(){nlt=U,fCt=Kr((AV(),he(le(GIe,1),it,300,0,[nge,UIe,VIe])))}function rlt(){rlt=U,dCt=Kr((WV(),he(le(KIe,1),it,445,0,[RB,VW,rge])))}function ilt(){ilt=U,pCt=Kr((sU(),he(le(gCt,1),it,456,0,[ige,age,sge])))}function slt(){slt=U,vCt=Kr((qV(),he(le(XIe,1),it,394,0,[YIe,uge,WIe])))}function alt(){alt=U,$Ct=Kr((tV(),he(le(pOe,1),it,439,0,[gge,gOe,dOe])))}function olt(){olt=U,_Et=Kr((Iw(),he(le(SEt,1),it,464,0,[DB,oM,MW])))}function clt(){clt=U,Y6t=Kr((Bl(),he(le(W6t,1),it,471,0,[Fd,Bb,v0])))}function ult(){ult=U,K6t=Kr((t1(),he(le(s4,1),it,237,0,[Gc,$u,Kc])))}function llt(){llt=U,Q6t=Kr((ol(),he(le(X6t,1),it,472,0,[a1,Fb,w0])))}function hlt(){hlt=U,B6t=Kr((Fl(),he(le(oc,1),it,108,0,[y_e,Ec,i4])))}function flt(){flt=U,m8t=Kr((lA(),he(le(dAe,1),it,391,0,[t1e,e1e,n1e])))}function dlt(){dlt=U,QSt=Kr((rp(),he(le(YNe,1),it,346,0,[oY,A2,DM])))}function glt(){glt=U,VCt=Kr((PN(),he(le(pge,1),it,444,0,[WW,YW,XW])))}function plt(){plt=U,KSt=Kr((F1(),he(le(FNe,1),it,278,0,[nC,_4,rC])))}function blt(){blt=U,h_t=Kr((dx(),he(le(nPe,1),it,280,0,[tPe,L4,dY])))}function P1(e,t){return!e.o&&(e.o=new xl((su(),Cg),L2,e,0)),Kce(e.o,t)}function lvn(e,t){var n;e.C&&(n=l(Qo(e.b,t),127).n,n.d=e.C.d,n.a=e.C.a)}function A6e(e){var t,n,r,a;a=e.d,t=e.a,n=e.b,r=e.c,e.d=n,e.a=r,e.b=a,e.c=t}function hvn(e){return!e.g&&(e.g=new MS),!e.g.b&&(e.g.b=new fQe(e)),e.g.b}function iN(e){return!e.g&&(e.g=new MS),!e.g.c&&(e.g.c=new pQe(e)),e.g.c}function fvn(e){return!e.g&&(e.g=new MS),!e.g.d&&(e.g.d=new dQe(e)),e.g.d}function dvn(e){return!e.g&&(e.g=new MS),!e.g.a&&(e.g.a=new gQe(e)),e.g.a}function gvn(e,t,n,r){return n&&(r=n.Rh(t,ms(n.Dh(),e.c.uk()),null,r)),r}function pvn(e,t,n,r){return n&&(r=n.Th(t,ms(n.Dh(),e.c.uk()),null,r)),r}function Ooe(e,t,n,r){var a;return a=We(Vr,di,28,t+1,15,1),wAn(a,e,t,n,r),a}function We(e,t,n,r,a,o){var f;return f=zdt(a,r),a!=10&&he(le(e,o),t,n,a,f),f}function bvn(e,t,n){var r,a;for(a=new mE(t,e),r=0;rn||t=0?e.Lh(n,!0,!0):Hw(e,t,!0)}function Ovn(e,t,n){var r;return r=w0t(e,t,n),e.b=new TV(r.c.length),Q9e(e,r)}function Nvn(e){if(e.b<=0)throw ue(new _c);return--e.b,e.a-=e.c.c,pt(e.a)}function Pvn(e){var t;if(!e.a)throw ue(new Lat);return t=e.a,e.a=ds(e.a),t}function Bvn(e){for(;!e.a;)if(!tit(e.c,new ZS(e)))return!1;return!0}function cx(e){var t;return Xr(e),De(e,204)?(t=l(e,204),t):new w8(e)}function Fvn(e){ZH(),l(e.of((pi(),S4)),181).Fc((Rl(),nF)),e.qf($ge,null)}function ZH(){ZH=U,pSt=new l$,mSt=new h$,bSt=Cyn((pi(),$ge),pSt,Ub,mSt)}function eV(){eV=U,TIe=new G3e("LEAF_NUMBER",0),Qde=new G3e("NODE_SIZE",1)}function Roe(e){e.a=We(Vr,di,28,e.b+1,15,1),e.c=We(Vr,di,28,e.b,15,1),e.d=0}function Rvn(e,t){e.a.Ne(t.d,e.b)>0&&(vt(e.c,new L4e(t.c,t.d,e.d)),e.b=t.d)}function R6e(e,t){if(e.g==null||t>=e.i)throw ue(new Vse(t,e.i));return e.g[t]}function ylt(e,t,n){if(EE(e,n),n!=null&&!e.fk(n))throw ue(new Rie);return n}function joe(e,t){return gN(t)!=10&&he(bh(t),t.Sm,t.__elementTypeId$,gN(t),e),e}function nE(e,t,n,r){var a;r=(Ew(),r||d_e),a=e.slice(t,n),l9e(a,e,t,n,-t,r)}function sf(e,t,n,r,a){return t<0?Hw(e,n,r):l(n,69).wk().yk(e,e.hi(),t,r,a)}function jvn(e,t){return Yi(ze(Ge(Q(e,(ft(),l3)))),ze(Ge(Q(t,l3))))}function xlt(){xlt=U,M6t=Kr((rE(),he(le(fK,1),it,304,0,[O0e,N0e,P0e,B0e])))}function rE(){rE=U,O0e=new oq("All",0),N0e=new hnt,P0e=new ynt,B0e=new lnt}function Bl(){Bl=U,Fd=new pse(Mx,0),Bb=new pse(cT,1),v0=new pse(Dx,2)}function klt(){klt=U,zU(),GPe=gs,vAt=ia,KPe=new pa(gs),wAt=new pa(ia)}function Elt(){Elt=U,k7t=Kr((Pw(),he(le(x7t,1),it,417,0,[iB,rB,V0e,U0e])))}function Tlt(){Tlt=U,_7t=Kr((NA(),he(le(S7t,1),it,406,0,[uB,bK,mK,lB])))}function Clt(){Clt=U,T7t=Kr((bx(),he(le(E7t,1),it,332,0,[aB,sB,oB,cB])))}function Slt(){Slt=U,I8t=Kr((Km(),he(le(mAe,1),it,389,0,[c4,bAe,o1e,c1e])))}function _lt(){_lt=U,S8t=Kr((wE(),he(le(C8t,1),it,416,0,[s3,o4,a4,M6])))}function Alt(){Alt=U,nxt=Kr((R1(),he(le(txt,1),it,421,0,[Vx,MT,DT,b1e])))}function Llt(){Llt=U,U8t=Kr((IV(),he(le(V8t,1),it,371,0,[p1e,HK,VK,pB])))}function Mlt(){Mlt=U,eEt=Kr((By(),he(le(mde,1),it,203,0,[_W,bde,G6,U6])))}function Dlt(){Dlt=U,rEt=Kr((Ed(),he(le(SDe,1),it,284,0,[E2,CDe,yde,xde])))}function cN(){cN=U,xLe=new B3e(Id,0),JK=new B3e("IMPROVE_STRAIGHTNESS",1)}function Ilt(e,t){var n,r;return r=t/e.c.Rd().gc()|0,n=t%e.c.Rd().gc(),ox(e,r,n)}function Olt(e){var t;if(e.nl())for(t=e.i-1;t>=0;--t)Oe(e,t);return a6e(e)}function j6e(e){var t,n;if(!e.b)return null;for(n=e.b;t=n.a[0];)n=t;return n}function Nlt(e){var t,n;if(!e.b)return null;for(n=e.b;t=n.a[1];)n=t;return n}function $vn(e){return De(e,180)?""+l(e,180).a:e==null?null:xc(e)}function zvn(e){return De(e,180)?""+l(e,180).a:e==null?null:xc(e)}function Plt(e,t){if(t.a)throw ue(new Ac(e3t));na(e.a,t),t.a=e,!e.j&&(e.j=t)}function $6e(e,t){Dq.call(this,t.zd(),t.yd()&-16449),nr(e),this.a=e,this.c=t}function qvn(e,t){return new wae(t,dw(Ja(t.e),t.f.a+e,t.f.b+e),(Hn(),!1))}function Hvn(e,t){return jk(),vt(e,new ca(t,pt(t.e.c.length+t.g.c.length)))}function Vvn(e,t){return jk(),vt(e,new ca(t,pt(t.e.c.length+t.g.c.length)))}function Blt(){Blt=U,hCt=Kr((uU(),he(le(HIe,1),it,354,0,[tge,zIe,qIe,$Ie])))}function Flt(){Flt=U,PTt=Kr((kA(),he(le(yIe,1),it,353,0,[Vde,jW,Hde,qde])))}function Rlt(){Rlt=U,lTt=Kr((wx(),he(le(qDe,1),it,405,0,[NW,lM,hM,fM])))}function jlt(){jlt=U,WSt=Kr((ip(),he(le(Vge,1),it,223,0,[Hge,JB,iC,s9])))}function $lt(){$lt=U,ZSt=Kr((Ih(),he(le(JSt,1),it,291,0,[eF,kg,Gb,ZB])))}function zlt(){zlt=U,u_t=Kr((mh(),he(le(BM,1),it,386,0,[iF,Cv,rF,A4])))}function qlt(){qlt=U,d_t=Kr((VV(),he(le(cPe,1),it,320,0,[Kge,sPe,oPe,aPe])))}function Hlt(){Hlt=U,b_t=Kr((NV(),he(le(p_t,1),it,415,0,[Wge,lPe,uPe,hPe])))}function tV(){tV=U,gge=new jse(vyt,0),gOe=new jse(cCe,1),dOe=new jse(Id,2)}function Sy(e,t,n,r,a){return nr(e),nr(t),nr(n),nr(r),nr(a),new h5e(e,t,r)}function Vlt(e,t){var n;return n=l(ax(e.e,t),400),n?($4e(n),n.e):null}function al(e,t){var n;return n=gc(e,t,0),n==-1?!1:(t2(e,n),!0)}function Ult(e,t,n){var r;return fb(e),r=new on,r.a=t,e.a.Nb(new Cet(r,n)),r.a}function Uvn(e){var t;return fb(e),t=We(Na,Zo,28,0,15,1),A5(e.a,new E8(t)),t}function z6e(e){var t;if(!tce(e))throw ue(new _c);return e.e=1,t=e.d,e.d=null,t}function r2(e){var t;return wc(e)&&(t=0-e,!isNaN(t))?t:mb(xE(e))}function gc(e,t,n){for(;n=0?rU(e,n,!0,!0):Hw(e,t,!0)}function H6e(e){var t;return t=jm(Kn(e,32)),t==null&&(Ku(e),t=jm(Kn(e,32))),t}function V6e(e){var t;return e.Oh()||(t=yr(e.Dh())-e.ji(),e.$h().Mk(t)),e.zh()}function Qlt(e,t){H_e=new Ot,C7t=t,RL=e,l(RL.b,68),D6e(RL,H_e,null),fvt(RL)}function lA(){lA=U,t1e=new mse("XY",0),e1e=new mse("X",1),n1e=new mse("Y",2)}function ol(){ol=U,a1=new bse("TOP",0),Fb=new bse(cT,1),w0=new bse(xEe,2)}function ep(){ep=U,wB=new Ese(Id,0),F6=new Ese("TOP",1),Ux=new Ese(xEe,2)}function dN(){dN=U,kde=new R3e("INPUT_ORDER",0),Ede=new R3e("PORT_DEGREE",1)}function iE(){iE=U,WSe=qu(eh,eh,524287),g6t=qu(0,0,SP),YSe=Loe(1),Loe(2),XSe=Loe(0)}function Voe(e){var t;return e.d!=e.r&&(t=Of(e),e.e=!!t&&t.lk()==g5t,e.d=t),e.e}function Uoe(e,t,n){var r;return r=e.g[t],R_(e,t,e.Zi(t,n)),e.Ri(t,n,r),e.Ni(),r}function sV(e,t){var n;return n=e.dd(t),n>=0?(e.gd(n),!0):!1}function Goe(e,t){var n;for(Xr(e),Xr(t),n=!1;t.Ob();)n=n|e.Fc(t.Pb());return n}function B1(e,t){var n;return n=l(cr(e.e,t),400),n?(Int(e,n),n.e):null}function Jlt(e){var t,n;return t=e/60|0,n=e%60,n==0?""+t:""+t+":"+(""+n)}function _y(e,t){var n=e.a[t],r=(vce(),_0e)[typeof n];return r?r(n):Z7e(typeof n)}function Dc(e,t){var n,r;return xb(e),r=new C6e(t,e.a),n=new iit(r),new bn(e,n)}function Koe(e){var t;return t=e.b.c.length==0?null:jt(e.b,0),t!=null&&rce(e,0),t}function Yvn(e,t){var n,r,a;a=t.c.i,n=l(cr(e.f,a),60),r=n.d.c-n.e.c,k7e(t.a,r,0)}function U6e(e,t){var n;for(++e.d,++e.c[t],n=t+1;n=0;)++t[0]}function Xvn(e,t){Uu(e,t==null||Gq((nr(t),t))||isNaN((nr(t),t))?0:(nr(t),t))}function Qvn(e,t){Gu(e,t==null||Gq((nr(t),t))||isNaN((nr(t),t))?0:(nr(t),t))}function Jvn(e,t){Dw(e,t==null||Gq((nr(t),t))||isNaN((nr(t),t))?0:(nr(t),t))}function Zvn(e,t){Mw(e,t==null||Gq((nr(t),t))||isNaN((nr(t),t))?0:(nr(t),t))}function ewn(e,t,n){return z8(new lt(n.e.a+n.f.a/2,n.e.b+n.f.b/2),e)==(nr(t),t)}function twn(e,t){return De(t,102)&&l(t,19).Bb&Io?new Use(t,e):new mE(t,e)}function nwn(e,t){return De(t,102)&&l(t,19).Bb&Io?new Use(t,e):new mE(t,e)}function gN(e){return e.__elementTypeCategory$==null?10:e.__elementTypeCategory$}function tht(e,t){return t==(gae(),gae(),_6t)?e.toLocaleLowerCase():e.toLowerCase()}function nht(e){if(!e.e)throw ue(new _c);return e.c=e.a=e.e,e.e=e.e.e,--e.d,e.a.f}function G6e(e){if(!e.c)throw ue(new _c);return e.e=e.a=e.c,e.c=e.c.c,++e.d,e.a.f}function rht(e){var t;for(++e.a,t=e.c.a.length;e.ae.a[r]&&(r=n);return r}function iht(e){var t;return t=l(Q(e,(ft(),c3)),313),t?t.a==e:!1}function sht(e){var t;return t=l(Q(e,(ft(),c3)),313),t?t.i==e:!1}function aht(){aht=U,x8t=Kr((uo(),he(le(gAe,1),it,367,0,[y0,vg,bu,_u,mc])))}function oht(){oht=U,ixt=Kr((Ry(),he(le(rxt,1),it,375,0,[bB,KK,WK,GK,UK])))}function cht(){cht=U,pxt=Kr((l2(),he(le(mLe,1),it,348,0,[A1e,bLe,L1e,BT,PT])))}function uht(){uht=U,tEt=Kr((OA(),he(le(wDe,1),it,323,0,[vDe,vde,wde,rM,iM])))}function lht(){lht=U,Axt=Kr((hf(),he(le(WLe,1),it,171,0,[EB,YL,$b,XL,d4])))}function hht(){hht=U,HTt=Kr((bU(),he(le(qTt,1),it,368,0,[Yde,Gde,Xde,Kde,Wde])))}function fht(){fht=U,HCt=Kr((VA(),he(le(qCt,1),it,373,0,[Q6,e9,xM,yM,zB])))}function dht(){dht=U,YCt=Kr((XN(),he(le(TOe,1),it,324,0,[xOe,wge,EOe,yge,kOe])))}function ght(){ght=U,GSt=Kr((Js(),he(le(LM,1),it,88,0,[J1,vc,uc,Q1,wf])))}function pht(){pht=U,vSt=Kr((r1(),he(le(xg,1),it,170,0,[Pn,ha,zd,yv,S2])))}function bht(){bht=U,t_t=Kr((t6(),he(le(OM,1),it,256,0,[Kb,tF,XNe,IM,QNe])))}function mht(){mht=U,i_t=Kr((Ct(),he(le(Oo,1),au,64,0,[Pc,Qn,ar,Dr,er])))}function aV(){aV=U,E_e=new A3e("BY_SIZE",0),$0e=new A3e("BY_SIZE_AND_SHAPE",1)}function oV(){oV=U,Q0e=new D3e("EADES",0),yK=new D3e("FRUCHTERMAN_REINGOLD",1)}function pN(){pN=U,XK=new P3e("READING_DIRECTION",0),vLe=new P3e("ROTATION",1)}function hA(){hA=U,L8t=new nI,M8t=new $J,_8t=new vm,A8t=new hu,D8t=new zJ}function vht(e){this.b=new bt,this.a=new bt,this.c=new bt,this.d=new bt,this.e=e}function wht(e){this.g=e,this.f=new bt,this.a=b.Math.min(this.g.c.c,this.g.d.c)}function yht(e,t,n){Vq.call(this),Y6e(this),this.a=e,this.c=n,this.b=t.d,this.f=t.e}function cwn(e,t,n){var r,a;for(a=new G(n);a.a=0&&t0?t-1:t,ZJe(Pun(Vht(B4e(new L8,n),e.n),e.j),e.k)}function sc(e){var t,n;n=(t=new qie,t),qr((!e.q&&(e.q=new nt(Uf,e,11,10)),e.q),n)}function K6e(e){return(e.i&2?"interface ":e.i&1?"":"class ")+(Gg(e),e.o)}function cV(e){return iu(e,Ii)>0?Ii:iu(e,lo)<0?lo:Yr(e)}function Ay(e){return e<3?(Mh(e,Pwt),e+1):e=-.01&&e.a<=H1&&(e.a=0),e.b>=-.01&&e.b<=H1&&(e.b=0),e}function Y5(e){h6();var t,n;for(n=hCe,t=0;tn&&(n=e[t]);return n}function Tht(e,t){var n;if(n=oP(e.Dh(),t),!n)throw ue(new Yn(Ob+t+$fe));return n}function Ly(e,t){var n;for(n=e;ds(n);)if(n=ds(n),n==t)return!0;return!1}function wwn(e,t){var n,r,a;for(r=t.a.ld(),n=l(t.a.md(),16).gc(),a=0;ae||e>t)throw ue(new t3e("fromIndex: 0, toIndex: "+e+uEe+t))}function Lw(e){if(e<0)throw ue(new Yn("Illegal Capacity: "+e));this.g=this.aj(e)}function W6e(e,t){return A1(),f0(Ab),b.Math.abs(e-t)<=Ab||e==t||isNaN(e)&&isNaN(t)}function Xoe(e,t){var n,r,a,o;for(r=e.d,a=0,o=r.length;a0&&(e.a/=t,e.b/=t),e}function Ah(e){var t;return e.w?e.w:(t=hbn(e),t&&!t.Vh()&&(e.w=t),t)}function sE(e,t){var n,r;r=e.a,n=p4n(e,t,null),r!=t&&!e.e&&(n=ZE(e,t,n)),n&&n.oj()}function Lht(e,t,n){var r,a;r=t;do a=ze(e.p[r.p])+n,e.p[r.p]=a,r=e.a[r.p];while(r!=t)}function Mht(e,t,n){var r=function(){return e.apply(r,arguments)};return t.apply(r,n),r}function Swn(e){var t;return e==null?null:(t=l(e,195),Rxn(t,t.length))}function Oe(e,t){if(e.g==null||t>=e.i)throw ue(new Vse(t,e.i));return e.Wi(t,e.g[t])}function _wn(e,t){Cn();var n,r;for(r=new bt,n=0;n=14&&t<=16))),e}function Gr(e,t){var n;return nr(t),n=e[":"+t],BO(!!n,"Enum constant undefined: "+t),n}function Fr(e,t,n,r,a,o){var f;return f=Gae(e,t),Uht(n,f),f.i=a?8:0,f.f=r,f.e=a,f.g=o,f}function Q6e(e,t,n,r,a){this.d=t,this.k=r,this.f=a,this.o=-1,this.p=1,this.c=e,this.a=n}function J6e(e,t,n,r,a){this.d=t,this.k=r,this.f=a,this.o=-1,this.p=2,this.c=e,this.a=n}function Z6e(e,t,n,r,a){this.d=t,this.k=r,this.f=a,this.o=-1,this.p=6,this.c=e,this.a=n}function e7e(e,t,n,r,a){this.d=t,this.k=r,this.f=a,this.o=-1,this.p=7,this.c=e,this.a=n}function t7e(e,t,n,r,a){this.d=t,this.j=r,this.e=a,this.o=-1,this.p=4,this.c=e,this.a=n}function Ght(e,t){var n,r,a,o;for(r=t,a=0,o=r.length;a=0))throw ue(new Yn("tolerance ("+e+") must be >= 0"));return e}function Wht(e,t){var n;return De(t,44)?e.c.Mc(t):(n=Kce(e,t),YV(e,t),n)}function Jo(e,t,n){return Gm(e,t),Fu(e,n),i2(e,0),My(e,1),u2(e,!0),c2(e,!0),e}function mN(e,t){var n;if(n=e.gc(),t<0||t>n)throw ue(new my(t,n));return new f4e(e,t)}function bV(e,t){e.b=b.Math.max(e.b,t.d),e.e+=t.r+(e.a.c.length==0?0:e.c),vt(e.a,t)}function Yht(e){gy(e.c>=0),z5n(e.d,e.c)<0&&(e.a=e.a-1&e.d.a.length-1,e.b=e.d.c),e.c=-1}function mV(e){var t,n;for(n=e.c.Cc().Kc();n.Ob();)t=l(n.Pb(),16),t.$b();e.c.$b(),e.d=0}function Fwn(e){var t,n,r,a;for(n=e.a,r=0,a=n.length;r=0}function c7e(e,t){e.r>0&&e.c0&&e.g!=0&&c7e(e.i,t/e.r*e.i.d))}function u7e(e,t){var n;n=e.c,e.c=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,1,n,e.c))}function Zoe(e,t){var n;n=e.c,e.c=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,4,n,e.c))}function fE(e,t){var n;n=e.k,e.k=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,2,n,e.k))}function ece(e,t){var n;n=e.D,e.D=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,2,n,e.D))}function wV(e,t){var n;n=e.f,e.f=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,8,n,e.f))}function yV(e,t){var n;n=e.i,e.i=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,7,n,e.i))}function l7e(e,t){var n;n=e.a,e.a=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,8,n,e.a))}function h7e(e,t){var n;n=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,0,n,e.b))}function f7e(e,t){var n;n=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,0,n,e.b))}function d7e(e,t){var n;n=e.c,e.c=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,1,n,e.c))}function g7e(e,t){var n;n=e.d,e.d=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,1,n,e.d))}function Vwn(e,t,n){var r;e.b=t,e.a=n,r=(e.a&512)==512?new gJe:new J$,e.c=iSn(r,e.b,e.a)}function oft(e,t){return up(e.e,t)?(Fo(),Voe(t)?new nH(t,e):new yO(t,e)):new Ptt(t,e)}function Uwn(e){var t,n;return 0>e?new b3e:(t=e+1,n=new wut(t,e),new Uye(null,n))}function Gwn(e,t){Cn();var n;return n=new N8(1),Ia(e)?rc(n,e,t):ju(n.f,e,t),new tr(n)}function Kwn(e,t){var n,r;return n=e.c,r=t.e[e.p],r>0?l(jt(n.a,r-1),10):null}function Wwn(e,t){var n,r;return n=e.o+e.p,r=t.o+t.p,nt?(t<<=1,t>0?t:rL):t}function tce(e){switch(Cye(e.e!=3),e.e){case 2:return!1;case 0:return!0}return rvn(e)}function uft(e,t){var n;return De(t,8)?(n=l(t,8),e.a==n.a&&e.b==n.b):!1}function Xwn(e,t){var n;n=new Ot,l(t.b,68),l(t.b,68),l(t.b,68),Vu(t.a,new k4e(e,n,t))}function lft(e,t){var n,r;for(r=t.vc().Kc();r.Ob();)n=l(r.Pb(),44),GN(e,n.ld(),n.md())}function p7e(e,t){var n;n=e.d,e.d=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,11,n,e.d))}function xV(e,t){var n;n=e.j,e.j=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,13,n,e.j))}function b7e(e,t){var n;n=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,21,n,e.b))}function Qwn(e,t){(UH(),G1?null:t.c).length==0&&Srt(t,new Dt),rc(e.a,G1?null:t.c,t)}function Jwn(e,t){t.Ug("Hierarchical port constraint processing",1),b6n(e),BIn(e),t.Vg()}function Ow(){Ow=U,o3=new vse("START",0),Rb=new vse("MIDDLE",1),a3=new vse("END",2)}function kV(){kV=U,$W=new U3e("P1_NODE_PLACEMENT",0),X6=new U3e("P2_EDGE_ROUTING",1)}function bb(){bb=U,Hx=new Ui(NEe),EK=new Ui(C3t),$L=new Ui(S3t),hB=new Ui(_3t)}function Nw(e){var t;return pae(e.f.g,e.d),mr(e.b),e.c=e.a,t=l(e.a.Pb(),44),e.b=L7e(e),t}function m7e(e){var t;return e.b==null?(Wp(),Wp(),dF):(t=e.ul()?e.tl():e.sl(),t)}function hft(e,t){var n;return n=t==null?-1:gc(e.b,t,0),n<0?!1:(rce(e,n),!0)}function d0(e,t){var n;return nr(t),n=t.g,e.b[n]?!1:(Ts(e.b,n,t),++e.c,!0)}function EV(e,t){var n,r;return n=1-t,r=e.a[n],e.a[n]=r.a[t],r.a[t]=e,e.b=!0,r.b=!1,r}function Zwn(e,t){var n,r;for(r=t.Kc();r.Ob();)n=l(r.Pb(),272),e.b=!0,na(e.e,n),n.b=e}function e3n(e,t){var n,r;return n=l(Q(e,(Nt(),w4)),8),r=l(Q(t,w4),8),Yi(n.b,r.b)}function nce(e,t,n){var r,a,o;return o=t>>5,a=t&31,r=va(ub(e.n[n][o],Yr(l0(a,1))),3),r}function fft(e,t,n){var r,a,o;for(o=e.a.length-1,a=e.b,r=0;r0?1:0:(!e.c&&(e.c=XO(Zc(e.f))),e.c).e}function xft(e,t){t?e.B==null&&(e.B=e.D,e.D=null):e.B!=null&&(e.D=e.B,e.B=null)}function i3n(e,t){return wE(),e==s3&&t==o4||e==o4&&t==s3||e==M6&&t==a4||e==a4&&t==M6}function s3n(e,t){return wE(),e==s3&&t==a4||e==s3&&t==M6||e==o4&&t==M6||e==o4&&t==a4}function kft(e,t){return A1(),f0(H1),b.Math.abs(0-t)<=H1||t==0||isNaN(0)&&isNaN(t)?0:e/t}function Eft(e,t){return ze(Ge(fh(ON(fc(new bn(null,new kn(e.c.b,16)),new AYe(e)),t))))}function x7e(e,t){return ze(Ge(fh(ON(fc(new bn(null,new kn(e.c.b,16)),new _Ye(e)),t))))}function a3n(){return Ho(),he(le(F1e,1),it,259,0,[eW,vf,UL,tW,$T,B6,GL,RT,jT,nW])}function o3n(){return Nf(),he(le(TDe,1),it,243,0,[AW,AB,LB,xDe,kDe,yDe,EDe,LW,v3,x4])}function c3n(e,t){var n;t.Ug("General Compactor",1),n=d5n(l(at(e,(Sb(),Zde)),393)),n.Cg(e)}function u3n(e,t){var n,r;return n=l(at(e,(Sb(),qW)),17),r=l(at(t,qW),17),ru(n.a,r.a)}function k7e(e,t,n){var r,a;for(a=Rr(e,0);a.b!=a.d.c;)r=l(Br(a),8),r.a+=t,r.b+=n;return e}function gA(e,t,n){var r;for(r=e.b[n&e.f];r;r=r.b)if(n==r.a&&yd(t,r.g))return r;return null}function pA(e,t,n){var r;for(r=e.c[n&e.f];r;r=r.d)if(n==r.f&&yd(t,r.i))return r;return null}function l3n(e,t,n){var r,a,o;for(r=0,a=0;a>>31;r!=0&&(e[n]=r)}function oce(e,t,n,r,a,o){var f;this.c=e,f=new bt,txe(e,f,t,e.b,n,r,a,o),this.a=new Ua(f,0)}function Tft(){this.c=new Wz(0),this.b=new Wz(lCe),this.d=new Wz(hyt),this.a=new Wz(Lhe)}function of(e,t,n,r,a,o,f){Ur.call(this,e,t),this.d=n,this.e=r,this.c=a,this.b=o,this.a=O1(f)}function Os(e,t,n,r,a,o,f,g,w,E,C,L,B){return Lpt(e,t,n,r,a,o,f,g,w,E,C,L,B),$ce(e,!1),e}function h3n(e){return e.b.c.i.k==(Zn(),Us)?l(Q(e.b.c.i,(ft(),zi)),12):e.b.c}function Cft(e){return e.b.d.i.k==(Zn(),Us)?l(Q(e.b.d.i,(ft(),zi)),12):e.b.d}function f3n(e){var t;return t=jH(e),cw(t.a,0)?(Jz(),Jz(),A6t):(Jz(),new art(t.b))}function cce(e){var t;return t=e6e(e),cw(t.a,0)?(cy(),cy(),I0e):(cy(),new sae(t.b))}function uce(e){var t;return t=e6e(e),cw(t.a,0)?(cy(),cy(),I0e):(cy(),new sae(t.c))}function Sft(e){switch(e.g){case 2:return Ct(),er;case 4:return Ct(),ar;default:return e}}function _ft(e){switch(e.g){case 1:return Ct(),Dr;case 3:return Ct(),Qn;default:return e}}function Aft(e){switch(e.g){case 0:return new Mne;case 1:return new Dne;default:return null}}function lx(){lx=U,g1e=new vs("edgelabelcenterednessanalysis.includelabel",(Hn(),Pb))}function E7e(){E7e=U,CEt=Td(Ytt(fi(fi(new Xs,(uo(),bu),(vo(),PK)),_u,MK),mc),NK)}function Lft(){Lft=U,LEt=Td(Ytt(fi(fi(new Xs,(uo(),bu),(vo(),PK)),_u,MK),mc),NK)}function lce(){lce=U,qM=new uJe,npe=he(le(dl,1),S6,179,0,[]),X_t=he(le(Uf,1),LSe,62,0,[])}function dE(){dE=U,dB=new I3e("TO_INTERNAL_LTR",0),h1e=new I3e("TO_INPUT_DIRECTION",1)}function kl(){kl=U,EAe=new K2,xAe=new J3,kAe=new HJ,yAe=new wm,TAe=new VJ,CAe=new UJ}function d3n(e,t){t.Ug(q3t,1),S8e(Qun(new e_((g_(),new Jae(e,!1,!1,new cS))))),t.Vg()}function g3n(e,t,n){n.Ug("DFS Treeifying phase",1),D5n(e,t),LCn(e,t),e.a=null,e.b=null,n.Vg()}function vN(e,t){return Hn(),Ia(e)?E6e(e,ei(t)):fy(e)?Nae(e,Ge(t)):hy(e)?ign(e,Bt(t)):e.Fd(t)}function bA(e,t){var n,r;for(nr(t),r=t.vc().Kc();r.Ob();)n=l(r.Pb(),44),e.zc(n.ld(),n.md())}function p3n(e,t,n){var r;for(r=n.Kc();r.Ob();)if(!qH(e,t,r.Pb()))return!1;return!0}function b3n(e,t,n,r,a){var o;return n&&(o=ms(t.Dh(),e.c),a=n.Rh(t,-1-(o==-1?r:o),null,a)),a}function m3n(e,t,n,r,a){var o;return n&&(o=ms(t.Dh(),e.c),a=n.Th(t,-1-(o==-1?r:o),null,a)),a}function Mft(e){var t;if(e.b==-2){if(e.e==0)t=-1;else for(t=0;e.a[t]==0;t++);e.b=t}return e.b}function v3n(e){if(nr(e),e.length==0)throw ue(new gd("Zero length BigInteger"));T_n(this,e)}function T7e(e){this.i=e.gc(),this.i>0&&(this.g=this.aj(this.i+(this.i/8|0)+1),e.Qc(this.g))}function Dft(e,t,n){this.g=e,this.d=t,this.e=n,this.a=new bt,Mkn(this),Cn(),Vs(this.a,null)}function C7e(e,t){t.q=e,e.d=b.Math.max(e.d,t.r),e.b+=t.d+(e.a.c.length==0?0:e.c),vt(e.a,t)}function gE(e,t){var n,r,a,o;return a=e.c,n=e.c+e.b,o=e.d,r=e.d+e.a,t.a>a&&t.ao&&t.ba?n=a:Xn(t,n+1),e.a=tf(e.a,0,t)+(""+r)+w5e(e.a,n)}function $ft(e,t){e.a=bo(e.a,1),e.c=b.Math.min(e.c,t),e.b=b.Math.max(e.b,t),e.d=bo(e.d,t)}function C3n(e,t){return t1||e.Ob())return++e.a,e.g=0,t=e.i,e.Ob(),t;throw ue(new _c)}function Vft(e){switch(e.a.g){case 1:return new Yet;case 3:return new Ydt;default:return new nie}}function _7e(e,t){switch(t){case 1:return!!e.n&&e.n.i!=0;case 2:return e.k!=null}return Z5e(e,t)}function Zc(e){return _P>22),a=e.h+t.h+(r>>22),qu(n&eh,r&eh,a&hp)}function Jft(e,t){var n,r,a;return n=e.l-t.l,r=e.m-t.m+(n>>22),a=e.h-t.h+(r>>22),qu(n&eh,r&eh,a&hp)}function G3n(e){var t,n;for(jDn(e),n=new G(e.d);n.ar)throw ue(new my(t,r));return e.Si()&&(n=bot(e,n)),e.Ei(t,n)}function yE(e,t,n,r,a){var o,f;for(f=n;f<=a;f++)for(o=t;o<=r;o++)r6(e,o,f)||FU(e,o,f,!0,!1)}function ayn(e){h6();var t,n,r;for(n=We(Ea,dt,8,2,0,1),r=0,t=0;t<2;t++)r+=.5,n[t]=Z6n(r,e);return n}function xE(e){var t,n,r;return t=~e.l+1&eh,n=~e.m+(t==0?1:0)&eh,r=~e.h+(t==0&&n==0?1:0)&hp,qu(t,n,r)}function P7e(e){var t;if(e<0)return lo;if(e==0)return 0;for(t=rL;!(t&e);t>>=1);return t}function mce(e,t,n){return e>=128?!1:e<64?I_(va(l0(1,e),n),0):I_(va(l0(1,e-64),t),0)}function _N(e,t,n){return n==null?(!e.q&&(e.q=new Pr),ax(e.q,t)):(!e.q&&(e.q=new Pr),ki(e.q,t,n)),e}function rt(e,t,n){return n==null?(!e.q&&(e.q=new Pr),ax(e.q,t)):(!e.q&&(e.q=new Pr),ki(e.q,t,n)),e}function u0t(e){var t,n;return n=new KH,pc(n,e),rt(n,(bb(),Hx),e),t=new Pr,PAn(e,n,t),uDn(e,n,t),n}function l0t(e){var t,n;return t=e.t-e.k[e.o.p]*e.d+e.j[e.o.p]>e.f,n=e.u+e.e[e.o.p]*e.d>e.f*e.s*e.d,t||n}function h0t(e,t){var n,r,a,o;for(n=!1,r=e.a[t].length,o=0;o=0,"Negative initial capacity"),BO(t>=0,"Non-positive load factor"),Nl(this)}function cyn(e,t,n,r,a){var o,f;if(f=e.length,o=n.length,t<0||r<0||a<0||t+a>f||r+a>o)throw ue(new _we)}function j7e(e,t){Cn();var n,r,a,o,f;for(f=!1,r=t,a=0,o=r.length;a1||t>=0&&e.b<3)}function yce(e){var t,n,r;t=~e.l+1&eh,n=~e.m+(t==0?1:0)&eh,r=~e.h+(t==0&&n==0?1:0)&hp,e.l=t,e.m=n,e.h=r}function q7e(e){Cn();var t,n,r;for(r=1,n=e.Kc();n.Ob();)t=n.Pb(),r=31*r+(t!=null?es(t):0),r=r|0;return r}function dyn(e,t,n,r,a){var o;return o=D9e(e,t),n&&yce(o),a&&(e=a7n(e,t),r?Nb=xE(e):Nb=qu(e.l,e.m,e.h)),o}function x0t(e,t,n){e.g=Rue(e,t,(Ct(),ar),e.b),e.d=Rue(e,n,ar,e.b),!(e.g.c==0||e.d.c==0)&&Jgt(e)}function k0t(e,t,n){e.g=Rue(e,t,(Ct(),er),e.j),e.d=Rue(e,n,er,e.j),!(e.g.c==0||e.d.c==0)&&Jgt(e)}function H7e(e,t){switch(t){case 7:return!!e.e&&e.e.i!=0;case 8:return!!e.d&&e.d.i!=0}return _8e(e,t)}function gyn(e,t){switch(t.g){case 0:De(e.b,641)||(e.b=new jft);break;case 1:De(e.b,642)||(e.b=new Rit)}}function E0t(e){switch(e.g){case 0:return new One;default:throw ue(new Yn(FG+(e.f!=null?e.f:""+e.g)))}}function T0t(e){switch(e.g){case 0:return new gl;default:throw ue(new Yn(FG+(e.f!=null?e.f:""+e.g)))}}function pyn(e,t,n){return!_k(Fi(new bn(null,new kn(e.c,16)),new Wl(new ltt(t,n)))).Bd((Am(),zx))}function C0t(e,t){return z8(BE(l(Q(t,(Hc(),y3)),88)),new lt(e.c.e.a-e.b.e.a,e.c.e.b-e.b.e.b))<=0}function byn(e,t){for(;e.g==null&&!e.c?H5e(e):e.g==null||e.i!=0&&l(e.g[e.i-1],51).Ob();)yln(t,CU(e))}function Um(e){var t,n;for(n=new G(e.a.b);n.ar?1:0}function wyn(e){return vt(e.c,(hx(),gSt)),W6e(e.a,ze(Ge(It((Gce(),TW)))))?new Hne:new OXe(e)}function yyn(e){for(;!e.d||!e.d.Ob();)if(e.b&&!l_(e.b))e.d=l(X8(e.b),51);else return null;return e.d}function U7e(e){switch(e.g){case 1:return hyt;default:case 2:return 0;case 3:return Lhe;case 4:return lCe}}function xyn(){Di();var e;return cpe||(e=zhn(_b("M",!0)),e=oH(_b("M",!1),e),cpe=e,cpe)}function NV(){NV=U,Wge=new Cq("ELK",0),lPe=new Cq("JSON",1),uPe=new Cq("DOT",2),hPe=new Cq("SVG",3)}function yA(){yA=U,Sde=new _se("STACKED",0),Cde=new _se("REVERSE_STACKED",1),MB=new _se("SEQUENCED",2)}function xA(){xA=U,ZDe=new Ose(Id,0),Ide=new Ose("MIDDLE_TO_MIDDLE",1),OB=new Ose("AVOID_OVERLAP",2)}function TE(){TE=U,oLe=new MZ,cLe=new lI,X8t=new yj,Y8t=new DZ,W8t=new n8,aLe=(nr(W8t),new ke)}function PV(){PV=U,WNe=new lw(15),XSt=new Ha((pi(),_2),WNe),MM=n9,VNe=LSt,UNe=kv,KNe=i7,GNe=C4}function Q5(e,t){var n,r,a,o,f;for(r=t,a=0,o=r.length;a=e.b.c.length||(K7e(e,2*t+1),n=2*t+2,n0&&(t.Cd(n),n.i&&E4n(n))}function W7e(e,t,n){var r;for(r=n-1;r>=0&&e[r]===t[r];r--);return r<0?0:fse(va(e[r],Vo),va(t[r],Vo))?-1:1}function A0t(e,t,n){var r,a;this.g=e,this.c=t,this.a=this,this.d=this,a=cft(n),r=We(c6t,TP,227,a,0,1),this.b=r}function Cce(e,t,n,r,a){var o,f;for(f=n;f<=a;f++)for(o=t;o<=r;o++)if(r6(e,o,f))return!0;return!1}function _yn(e,t){var n,r;for(r=e.Zb().Cc().Kc();r.Ob();)if(n=l(r.Pb(),16),n.Hc(t))return!0;return!1}function L0t(e,t,n){var r,a,o,f;for(nr(n),f=!1,o=e.fd(t),a=n.Kc();a.Ob();)r=a.Pb(),o.Rb(r),f=!0;return f}function Sce(e,t){var n,r;return r=l(Kn(e.a,4),129),n=We(epe,r0e,424,t,0,1),r!=null&&pu(r,0,n,0,r.length),n}function M0t(e,t){var n;return n=new ele((e.f&256)!=0,e.i,e.a,e.d,(e.f&16)!=0,e.j,e.g,t),e.e!=null||(n.c=e),n}function Ayn(e,t){var n;return e===t?!0:De(t,85)?(n=l(t,85),Qxe(Mm(e),n.vc())):!1}function D0t(e,t,n){var r,a;for(a=n.Kc();a.Ob();)if(r=l(a.Pb(),44),e.Be(t,r.md()))return!0;return!1}function I0t(e,t,n){return e.d[t.p][n.p]||(D6n(e,t,n),e.d[t.p][n.p]=!0,e.d[n.p][t.p]=!0),e.a[t.p][n.p]}function Lyn(e,t){var n;return!e||e==t||!ns(t,(ft(),u3))?!1:(n=l(Q(t,(ft(),u3)),10),n!=e)}function _ce(e){switch(e.i){case 2:return!0;case 1:return!1;case-1:++e.c;default:return e.$l()}}function O0t(e){switch(e.i){case-2:return!0;case-1:return!1;case 1:--e.c;default:return e._l()}}function N0t(e){xot.call(this,"The given string does not match the expected format for individual spacings.",e)}function Myn(e,t){var n;t.Ug("Min Size Preprocessing",1),n=a9e(e),Hi(e,(ug(),mM),n.a),Hi(e,UW,n.b),t.Vg()}function Dyn(e){var t,n,r;for(t=0,r=We(Ea,dt,8,e.b,0,1),n=Rr(e,0);n.b!=n.d.c;)r[t++]=l(Br(n),8);return r}function Ace(e,t,n){var r,a,o;for(r=new os,o=Rr(n,0);o.b!=o.d.c;)a=l(Br(o),8),ci(r,new Eo(a));L0t(e,t,r)}function Iyn(e,t){var n;return n=bo(e,t),fse(moe(e,t),0)|Aq(moe(e,n),0)?n:bo(EP,moe(ub(n,63),1))}function Oyn(e,t){var n,r;return n=l(e.d.Bc(t),16),n?(r=e.e.hc(),r.Gc(n),e.e.d-=n.gc(),n.$b(),r):null}function P0t(e){var t;if(t=e.a.c.length,t>0)return qk(t-1,e.a.c.length),t2(e.a,t-1);throw ue(new OQe)}function B0t(e,t,n){if(e>t)throw ue(new Yn(eG+e+Qwt+t));if(e<0||t>n)throw ue(new t3e(eG+e+fEe+t+uEe+n))}function CE(e,t){e.D==null&&e.B!=null&&(e.D=e.B,e.B=null),ece(e,t==null?null:(nr(t),t)),e.C&&e.hl(null)}function Nyn(e,t){var n;n=It((Gce(),TW))!=null&&t.Sg()!=null?ze(Ge(t.Sg()))/ze(Ge(It(TW))):1,ki(e.b,t,n)}function Y7e(e,t){var n,r;if(r=e.c[t],r!=0)for(e.c[t]=0,e.d-=r,n=t+1;nMG?e-n>MG:n-e>MG}function K0t(e,t){var n;for(n=0;na&&(Egt(t.q,a),r=n!=t.q.d)),r}function W0t(e,t){var n,r,a,o,f,g,w,E;return w=t.i,E=t.j,r=e.f,a=r.i,o=r.j,f=w-a,g=E-o,n=b.Math.sqrt(f*f+g*g),n}function t8e(e,t){var n,r;return r=XV(e),r||(n=(kle(),P2t(t)),r=new kQe(n),qr(r.El(),e)),r}function DN(e,t){var n,r;return n=l(e.c.Bc(t),16),n?(r=e.hc(),r.Gc(n),e.d-=n.gc(),n.$b(),e.mc(r)):e.jc()}function Uyn(e,t){var n,r;for(r=Jl(e.d,1)!=0,n=!0;n;)n=!1,n=t.c.mg(t.e,r),n=n|cP(e,t,r,!1),r=!r;w7e(e)}function Y0t(e,t,n,r){var a,o;e.a=t,o=r?0:1,e.f=(a=new cpt(e.c,e.a,n,o),new $bt(n,e.a,a,e.e,e.b,e.c==(Iw(),oM)))}function FV(e){var t;return mr(e.a!=e.b),t=e.d.a[e.a],Ert(e.b==e.d.c&&t!=null),e.c=e.a,e.a=e.a+1&e.d.a.length-1,t}function X0t(e){var t;if(e.c!=0)return e.c;for(t=0;t=e.c.b:e.a<=e.c.b))throw ue(new _c);return t=e.a,e.a+=e.c.c,++e.b,pt(t)}function Oce(e){var t;return t=new bye(e.a),pc(t,e),rt(t,(ft(),zi),e),t.o.a=e.g,t.o.b=e.f,t.n.a=e.i,t.n.b=e.j,t}function Nce(e){return(Ct(),hl).Hc(e.j)?ze(Ge(Q(e,(ft(),zT)))):Ic(he(le(Ea,1),dt,8,0,[e.i.n,e.n,e.a])).b}function Kyn(e){var t;return t=Oq(TEt),l(Q(e,(ft(),Lu)),21).Hc((Ho(),$T))&&fi(t,(uo(),bu),(vo(),RK)),t}function Wyn(e){var t,n,r,a;for(a=new Ks,r=new G(e);r.a=0?t:-t;r>0;)r%2==0?(n*=n,r=r/2|0):(a*=n,r-=1);return t<0?1/a:a}function Zyn(e,t){var n,r,a;for(a=1,n=e,r=t>=0?t:-t;r>0;)r%2==0?(n*=n,r=r/2|0):(a*=n,r-=1);return t<0?1/a:a}function yb(e,t){var n,r,a,o;return o=(a=e?XV(e):null,Dpt((r=t,a&&a.Gl(),r))),o==t&&(n=XV(e),n&&n.Gl()),o}function Q0t(e,t,n){var r,a;return a=e.f,e.f=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,0,a,t),n?n.nj(r):n=r),n}function J0t(e,t,n){var r,a;return a=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,3,a,t),n?n.nj(r):n=r),n}function r8e(e,t,n){var r,a;return a=e.a,e.a=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,1,a,t),n?n.nj(r):n=r),n}function Z0t(e){var t,n;if(e!=null)for(n=0;n=r||t-129&&e<128?(Fit(),t=e+128,n=t_e[t],!n&&(n=t_e[t]=new Cr(e)),n):new Cr(e)}function _E(e){var t,n;return e>-129&&e<128?(est(),t=e+128,n=s_e[t],!n&&(n=s_e[t]=new Wn(e)),n):new Wn(e)}function n1t(e,t){var n;e.a.c.length>0&&(n=l(jt(e.a,e.a.c.length-1),579),G7e(n,t))||vt(e.a,new yut(t))}function s4n(e){u0();var t,n;t=e.d.c-e.e.c,n=l(e.g,154),Vu(n.b,new pYe(t)),Vu(n.c,new bYe(t)),to(n.i,new mYe(t))}function r1t(e){var t;return t=new tb,t.a+="VerticalSegment ",wu(t,e.e),t.a+=" ",hi(t,Eye(new Zie,new G(e.k))),t.a}function Pce(e,t){var n,r,a;for(n=0,a=Oc(e,t).Kc();a.Ob();)r=l(a.Pb(),12),n+=Q(r,(ft(),jl))!=null?1:0;return n}function e6(e,t,n){var r,a,o;for(r=0,o=Rr(e,0);o.b!=o.d.c&&(a=ze(Ge(Br(o))),!(a>n));)a>=t&&++r;return r}function i1t(e,t){Xr(e);try{return e._b(t)}catch(n){if(n=bs(n),De(n,212)||De(n,169))return!1;throw ue(n)}}function s8e(e,t){Xr(e);try{return e.Hc(t)}catch(n){if(n=bs(n),De(n,212)||De(n,169))return!1;throw ue(n)}}function a4n(e,t){Xr(e);try{return e.Mc(t)}catch(n){if(n=bs(n),De(n,212)||De(n,169))return!1;throw ue(n)}}function Oy(e,t){Xr(e);try{return e.xc(t)}catch(n){if(n=bs(n),De(n,212)||De(n,169))return null;throw ue(n)}}function o4n(e,t){Xr(e);try{return e.Bc(t)}catch(n){if(n=bs(n),De(n,212)||De(n,169))return null;throw ue(n)}}function TA(e,t){switch(t.g){case 2:case 1:return Oc(e,t);case 3:case 4:return lf(Oc(e,t))}return Cn(),Cn(),_o}function CA(e){var t;return e.Db&64?g0(e):(t=new Af(g0(e)),t.a+=" (name: ",Xo(t,e.zb),t.a+=")",t.a)}function c4n(e){var t;return t=l(B1(e.c.c,""),233),t||(t=new nx(Ck(Tk(new ny,""),"Other")),h2(e.c.c,"",t)),t}function a8e(e,t,n){var r,a;return a=e.sb,e.sb=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,4,a,t),n?n.nj(r):n=r),n}function o8e(e,t,n){var r,a;return a=e.r,e.r=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,8,a,e.r),n?n.nj(r):n=r),n}function u4n(e,t,n){var r,a;return r=new Zg(e.e,4,13,(a=t.c,a||(Tn(),td)),null,f2(e,t),!1),n?n.nj(r):n=r,n}function l4n(e,t,n){var r,a;return r=new Zg(e.e,3,13,null,(a=t.c,a||(Tn(),td)),f2(e,t),!1),n?n.nj(r):n=r,n}function o2(e,t){var n,r;return n=l(t,691),r=n.el(),!r&&n.fl(r=De(t,90)?new Btt(e,l(t,29)):new sct(e,l(t,156))),r}function IN(e,t,n){var r;e._i(e.i+1),r=e.Zi(t,n),t!=e.i&&pu(e.g,t,e.g,t+1,e.i-t),Ts(e.g,t,r),++e.i,e.Mi(t,n),e.Ni()}function h4n(e,t){var n;return t.a&&(n=t.a.a.length,e.a?hi(e.a,e.b):e.a=new Th(e.d),fct(e.a,t.a,t.d.length,n)),e}function f4n(e,t){var n;e.c=t,e.a=m5n(t),e.a<54&&(e.f=(n=t.d>1?lct(t.a[0],t.a[1]):lct(t.a[0],0),Fm(t.e>0?n:r2(n))))}function ON(e,t){var n;return n=new on,e.a.Bd(n)?(Ok(),new Kie(nr(Ult(e,n.a,t)))):(fb(e),Ok(),Ok(),b_e)}function s1t(e,t){var n;e.c.length!=0&&(n=l(j1(e,We(wg,m2,10,e.c.length,0,1)),199),cye(n,new U9),Jpt(n,t))}function a1t(e,t){var n;e.c.length!=0&&(n=l(j1(e,We(wg,m2,10,e.c.length,0,1)),199),cye(n,new Wd),Jpt(n,t))}function Pi(e,t){return Ia(e)?vn(e,t):fy(e)?eit(e,t):hy(e)?(nr(e),qe(e)===qe(t)):t5e(e)?e.Fb(t):W4e(e)?Jtt(e,t):W5e(e,t)}function cf(e,t,n){if(t<0)d9e(e,n);else{if(!n.rk())throw ue(new Yn(Ob+n.xe()+kL));l(n,69).wk().Ek(e,e.hi(),t)}}function o1t(e,t,n){if(e<0||t>n)throw ue(new tc(eG+e+fEe+t+", size: "+n));if(e>t)throw ue(new Yn(eG+e+Qwt+t))}function c1t(e){var t;return e.Db&64?g0(e):(t=new Af(g0(e)),t.a+=" (source: ",Xo(t,e.d),t.a+=")",t.a)}function u1t(e){return e>=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e>=48&&e<=57?e-48:0}function d4n(e){YU();var t,n,r,a;for(n=eue(),r=0,a=n.length;r=0?kb(e):J_(kb(r2(e))))}function f1t(e,t,n,r,a,o){this.e=new bt,this.f=(qo(),sM),vt(this.e,e),this.d=t,this.a=n,this.b=r,this.f=a,this.c=o}function b4n(e,t,n){e.n=Lm(nm,[dt,ahe],[376,28],14,[n,ua(b.Math.ceil(t/32))],2),e.o=t,e.p=n,e.j=t-1>>1,e.k=n-1>>1}function d1t(e){return e-=e>>1&1431655765,e=(e>>2&858993459)+(e&858993459),e=(e>>4)+e&252645135,e+=e>>8,e+=e>>16,e&63}function g1t(e,t){var n,r;for(r=new or(e);r.e!=r.i.gc();)if(n=l(gr(r),142),qe(t)===qe(n))return!0;return!1}function m4n(e,t,n){var r,a,o;return o=(a=VE(e.b,t),a),o&&(r=l(VU(lN(e,o),""),29),r)?P9e(e,r,t,n):null}function Bce(e,t,n){var r,a,o;return o=(a=VE(e.b,t),a),o&&(r=l(VU(lN(e,o),""),29),r)?B9e(e,r,t,n):null}function v4n(e,t){var n;if(n=X5(e.i,t),n==null)throw ue(new dd("Node did not exist in input."));return S7e(t,n),null}function w4n(e,t){var n;if(n=oP(e,t),De(n,331))return l(n,35);throw ue(new Yn(Ob+t+"' is not a valid attribute"))}function _A(e,t,n){var r;if(r=e.gc(),t>r)throw ue(new my(t,r));if(e.Si()&&e.Hc(n))throw ue(new Yn(WP));e.Gi(t,n)}function y4n(e,t){t.Ug("Sort end labels",1),Is(Fi(Dc(new bn(null,new kn(e.b,16)),new hj),new J7),new aZ),t.Vg()}function Js(){Js=U,J1=new mO(cL,0),vc=new mO(Dx,1),uc=new mO(Mx,2),Q1=new mO(whe,3),wf=new mO("UP",4)}function PN(){PN=U,WW=new $se("P1_STRUCTURE",0),YW=new $se("P2_PROCESSING_ORDER",1),XW=new $se("P3_EXECUTION",2)}function p1t(){p1t=U,jTt=Td(Td(v_(Td(Td(v_(fi(new Xs,(wx(),lM),(WA(),Dde)),hM),YDe),QDe),fM),UDe),JDe)}function x4n(e){switch(l(Q(e,(ft(),hv)),311).g){case 1:rt(e,hv,(ep(),Ux));break;case 2:rt(e,hv,(ep(),F6))}}function k4n(e){switch(e){case 0:return new nJe;case 1:return new eJe;case 2:return new tJe;default:throw ue(new YI)}}function b1t(e){switch(e.g){case 2:return vc;case 1:return uc;case 4:return Q1;case 3:return wf;default:return J1}}function h8e(e,t){switch(e.b.g){case 0:case 1:return t;case 2:case 3:return new ef(t.d,0,t.a,t.b);default:return null}}function f8e(e){switch(e.g){case 1:return er;case 2:return Qn;case 3:return ar;case 4:return Dr;default:return Pc}}function BN(e){switch(e.g){case 1:return Dr;case 2:return er;case 3:return Qn;case 4:return ar;default:return Pc}}function $V(e){switch(e.g){case 1:return ar;case 2:return Dr;case 3:return er;case 4:return Qn;default:return Pc}}function d8e(e,t,n,r){switch(t){case 1:return!e.n&&(e.n=new nt(ec,e,1,7)),e.n;case 2:return e.k}return sxe(e,t,n,r)}function AA(e,t,n){var r,a;return e.Pj()?(a=e.Qj(),r=Hue(e,t,n),e.Jj(e.Ij(7,pt(n),r,t,a)),r):Hue(e,t,n)}function Fce(e,t){var n,r,a;e.d==null?(++e.e,--e.f):(a=t.ld(),n=t.Bi(),r=(n&Ii)%e.d.length,ovn(e,r,j2t(e,r,n,a)))}function AE(e,t){var n;n=(e.Bb&m0)!=0,t?e.Bb|=m0:e.Bb&=-1025,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,10,n,t))}function LE(e,t){var n;n=(e.Bb&Xy)!=0,t?e.Bb|=Xy:e.Bb&=-4097,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,12,n,t))}function ME(e,t){var n;n=(e.Bb&Sl)!=0,t?e.Bb|=Sl:e.Bb&=-8193,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,15,n,t))}function DE(e,t){var n;n=(e.Bb&r4)!=0,t?e.Bb|=r4:e.Bb&=-2049,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,11,n,t))}function E4n(e){var t;e.g&&(t=e.c.kg()?e.f:e.a,Y9e(t.a,e.o,!0),Y9e(t.a,e.o,!1),rt(e.o,(Nt(),Ms),(Ra(),Tv)))}function T4n(e){var t;if(!e.a)throw ue(new nc("Cannot offset an unassigned cut."));t=e.c-e.b,e.b+=t,zat(e,t),$at(e,t)}function C4n(e,t){var n;if(n=cr(e.k,t),n==null)throw ue(new dd("Port did not exist in input."));return S7e(t,n),null}function S4n(e){var t,n;for(n=B2t(Ah(e)).Kc();n.Ob();)if(t=ei(n.Pb()),YA(e,t))return _mn((met(),R_t),t);return null}function m1t(e){var t,n;for(n=e.p.a.ec().Kc();n.Ob();)if(t=l(n.Pb(),218),t.f&&e.b[t.c]<-1e-10)return t;return null}function _4n(e){var t,n;for(n=hb(new tb,91),t=!0;e.Ob();)t||(n.a+=Co),t=!1,wu(n,e.Pb());return(n.a+="]",n).a}function A4n(e){var t,n,r;for(t=new bt,r=new G(e.b);r.at?1:e==t?e==0?Yi(1/e,1/t):0:isNaN(e)?isNaN(t)?0:1:-1}function M4n(e){var t;return t=e.a[e.c-1&e.a.length-1],t==null?null:(e.c=e.c-1&e.a.length-1,Ts(e.a,e.c,null),t)}function D4n(e){var t,n,r;for(r=0,n=e.length,t=0;t=1?vc:Q1):n}function P4n(e){switch(l(Q(e,(Nt(),bp)),223).g){case 1:return new Tee;case 3:return new Lee;default:return new Eee}}function xb(e){if(e.c)xb(e.c);else if(e.d)throw ue(new nc("Stream already terminated, can't be modified or used"))}function Bw(e,t,n){var r;return r=e.a.get(t),e.a.set(t,n===void 0?null:n),r===void 0?(++e.c,++e.b.g):++e.d,r}function B4n(e,t,n){var r,a;for(a=e.a.ec().Kc();a.Ob();)if(r=l(a.Pb(),10),EN(n,l(jt(t,r.p),16)))return r;return null}function p8e(e,t,n){var r;return r=0,t&&(B5(e.a)?r+=t.f.a/2:r+=t.f.b/2),n&&(B5(e.a)?r+=n.f.a/2:r+=n.f.b/2),r}function F4n(e,t,n){var r;r=n,!r&&(r=B4e(new L8,0)),r.Ug(L3t,2),kdt(e.b,t,r.eh(1)),JLn(e,t,r.eh(1)),tIn(t,r.eh(1)),r.Vg()}function b8e(e,t,n){var r,a;return r=(rb(),a=new AS,a),dV(r,t),fV(r,n),e&&qr((!e.a&&(e.a=new Ys(qh,e,5)),e.a),r),r}function jce(e){var t;return e.Db&64?g0(e):(t=new Af(g0(e)),t.a+=" (identifier: ",Xo(t,e.k),t.a+=")",t.a)}function $ce(e,t){var n;n=(e.Bb&eu)!=0,t?e.Bb|=eu:e.Bb&=-32769,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,18,n,t))}function m8e(e,t){var n;n=(e.Bb&eu)!=0,t?e.Bb|=eu:e.Bb&=-32769,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,18,n,t))}function IE(e,t){var n;n=(e.Bb&_d)!=0,t?e.Bb|=_d:e.Bb&=-16385,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,16,n,t))}function v8e(e,t){var n;n=(e.Bb&Io)!=0,t?e.Bb|=Io:e.Bb&=-65537,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,20,n,t))}function w8e(e){var t;return t=We(kf,Ad,28,2,15,1),e-=Io,t[0]=(e>>10)+AP&Zs,t[1]=(e&1023)+56320&Zs,If(t,0,t.length)}function R4n(e){var t;return t=jy(e),t>34028234663852886e22?gs:t<-34028234663852886e22?ia:t}function bo(e,t){var n;return wc(e)&&wc(t)&&(n=e+t,_P"+Bm(t.c):"e_"+es(t),e.b&&e.c?Bm(e.b)+"->"+Bm(e.c):"e_"+es(e))}function z4n(e,t){return vn(t.b&&t.c?Bm(t.b)+"->"+Bm(t.c):"e_"+es(t),e.b&&e.c?Bm(e.b)+"->"+Bm(e.c):"e_"+es(e))}function Fw(e,t){return A1(),f0(Ab),b.Math.abs(e-t)<=Ab||e==t||isNaN(e)&&isNaN(t)?0:et?1:uw(isNaN(e),isNaN(t))}function ip(){ip=U,Hge=new xq(cL,0),JB=new xq("POLYLINE",1),iC=new xq("ORTHOGONAL",2),s9=new xq("SPLINES",3)}function qV(){qV=U,YIe=new Rse("ASPECT_RATIO_DRIVEN",0),uge=new Rse("MAX_SCALE_DRIVEN",1),WIe=new Rse("AREA_DRIVEN",2)}function q4n(e,t,n){var r;try{hyn(e,t,n)}catch(a){throw a=bs(a),De(a,606)?(r=a,ue(new w6e(r))):ue(a)}return t}function H4n(e){var t,n,r;for(n=0,r=e.length;nt&&r.Ne(e[o-1],e[o])>0;--o)f=e[o],Ts(e,o,e[o-1]),Ts(e,o-1,f)}function sn(e,t){var n,r,a,o,f;if(n=t.f,h2(e.c.d,n,t),t.g!=null)for(a=t.g,o=0,f=a.length;ot){pct(n);break}}zO(n,t)}function K4n(e,t){var n,r,a;r=G5(t),a=ze(Ge(Py(r,(Nt(),x0)))),n=b.Math.max(0,a/2-.5),FA(t,n,1),vt(e,new Net(t,n))}function W4n(e,t,n){var r;n.Ug("Straight Line Edge Routing",1),n.dh(t,yCe),r=l(at(t,(H5(),Y6)),27),rvt(e,r),n.dh(t,OG)}function y8e(e,t){e.n.c.length==0&&vt(e.n,new PH(e.s,e.t,e.i)),vt(e.b,t),exe(l(jt(e.n,e.n.c.length-1),209),t),jmt(e,t)}function LA(e){var t;this.a=(t=l(e.e&&e.e(),9),new Zh(t,l(c0(t,t.length),9),0)),this.b=We(wa,Rn,1,this.a.a.length,5,1)}function xc(e){var t;return Array.isArray(e)&&e.Tm===xe?_m(bh(e))+"@"+(t=es(e)>>>0,t.toString(16)):e.toString()}function Y4n(e,t){return e.h==SP&&e.m==0&&e.l==0?(t&&(Nb=qu(0,0,0)),ent((iE(),YSe))):(t&&(Nb=qu(e.l,e.m,e.h)),qu(0,0,0))}function X4n(e,t){switch(t.g){case 2:return e.b;case 1:return e.c;case 4:return e.d;case 3:return e.a;default:return!1}}function x1t(e,t){switch(t.g){case 2:return e.b;case 1:return e.c;case 4:return e.d;case 3:return e.a;default:return!1}}function x8e(e,t,n,r){switch(t){case 3:return e.f;case 4:return e.g;case 5:return e.i;case 6:return e.j}return d8e(e,t,n,r)}function HV(e,t){if(t==e.d)return e.e;if(t==e.e)return e.d;throw ue(new Yn("Node "+t+" not part of edge "+e))}function Q4n(e,t){var n;if(n=oP(e.Dh(),t),De(n,102))return l(n,19);throw ue(new Yn(Ob+t+"' is not a valid reference"))}function uf(e,t,n,r){if(t<0)$9e(e,n,r);else{if(!n.rk())throw ue(new Yn(Ob+n.xe()+kL));l(n,69).wk().Ck(e,e.hi(),t,r)}}function Ql(e){var t;if(e.b){if(Ql(e.b),e.b.d!=e.c)throw ue(new Xh)}else e.d.dc()&&(t=l(e.f.c.xc(e.e),16),t&&(e.d=t))}function J4n(e){py();var t,n,r,a;for(t=e.o.b,r=l(l($i(e.r,(Ct(),Dr)),21),87).Kc();r.Ob();)n=l(r.Pb(),117),a=n.e,a.b+=t}function Z4n(e){var t,n,r;for(this.a=new bd,r=new G(e);r.a=a)return t.c+n;return t.c+t.b.gc()}function t5n(e,t){Fk();var n,r,a,o;for(r=Olt(e),a=t,nE(r,0,r.length,a),n=0;n0&&(r+=a,++n);return n>1&&(r+=e.d*(n-1)),r}function r5n(e){var t,n,r,a,o;return o=jxe(e),n=ZI(e.c),r=!n,r&&(a=new $p,e1(o,"knownLayouters",a),t=new uQe(a),to(e.c,t)),o}function T8e(e){var t,n,r;for(r=new Up,r.a+="[",t=0,n=e.gc();t0&&(Xn(t-1,e.length),e.charCodeAt(t-1)==58)&&!Hce(e,$M,zM))}function C8e(e,t){var n;return qe(e)===qe(t)?!0:De(t,92)?(n=l(t,92),e.e==n.e&&e.d==n.d&&Mmn(e,n.a)):!1}function gx(e){switch(Ct(),e.g){case 4:return Qn;case 1:return ar;case 3:return Dr;case 2:return er;default:return Pc}}function o5n(e){var t,n;if(e.b)return e.b;for(n=G1?null:e.d;n;){if(t=G1?null:n.b,t)return t;n=G1?null:n.d}return Dk(),w_e}function S8e(e){var t,n,r;for(r=ze(Ge(e.a.of((pi(),iY)))),n=new G(e.a.Sf());n.a>5,t=e&31,r=We(Vr,di,28,n+1,15,1),r[n]=1<3;)a*=10,--o;e=(e+(a>>1))/a|0}return r.i=e,!0}function ms(e,t){var n,r,a;if(n=(e.i==null&&Sd(e),e.i),r=t.Lj(),r!=-1){for(a=n.length;r=0;--r)for(t=n[r],a=0;a>1,this.k=t-1>>1}function k5n(e){ZH(),l(e.of((pi(),Ub)),181).Hc((Zl(),hY))&&(l(e.of(S4),181).Fc((Rl(),a9)),l(e.of(Ub),181).Mc(hY))}function A1t(e){var t,n;t=e.d==(yx(),IT),n=Lxe(e),t&&!n||!t&&n?rt(e.a,(Nt(),Rd),(og(),VB)):rt(e.a,(Nt(),Rd),(og(),HB))}function Gce(){Gce=U,tq(),TW=(Nt(),m3),Qkt=O1(he(le(Cge,1),oCe,149,0,[SB,x0,H6,b3,y4,cde,GT,KT,ude,tM,q6,vv,V6]))}function E5n(e,t){var n;return n=l(yc(e,Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15),n.Qc(Yit(n.gc()))}function L1t(e,t){var n,r;if(r=new ba(e.a.ad(t,!0)),r.a.gc()<=1)throw ue(new S8);return n=r.a.ec().Kc(),n.Pb(),l(n.Pb(),40)}function T5n(e,t,n){var r,a;return r=ze(e.p[t.i.p])+ze(e.d[t.i.p])+t.n.b+t.a.b,a=ze(e.p[n.i.p])+ze(e.d[n.i.p])+n.n.b+n.a.b,a-r}function O8e(e,t){var n;return e.i>0&&(t.lengthe.i&&Ts(t,e.i,null),t}function UV(e){var t;return e.Db&64?CA(e):(t=new Af(CA(e)),t.a+=" (instanceClassName: ",Xo(t,e.D),t.a+=")",t.a)}function GV(e){var t,n,r,a;for(a=0,n=0,r=e.length;n0?(e._j(),r=t==null?0:es(t),a=(r&Ii)%e.d.length,n=j2t(e,a,r,t),n!=-1):!1}function M1t(e,t){var n,r;e.a=bo(e.a,1),e.c=b.Math.min(e.c,t),e.b=b.Math.max(e.b,t),e.d+=t,n=t-e.f,r=e.e+n,e.f=r-e.e-n,e.e=r}function N8e(e,t){switch(t){case 3:Mw(e,0);return;case 4:Dw(e,0);return;case 5:Uu(e,0);return;case 6:Gu(e,0);return}i8e(e,t)}function Rw(e,t){switch(t.g){case 1:return G8(e.j,(kl(),xAe));case 2:return G8(e.j,(kl(),EAe));default:return Cn(),Cn(),_o}}function P8e(e){ww();var t;switch(t=e.Pc(),t.length){case 0:return x0e;case 1:return new Sae(Xr(t[0]));default:return new ooe(H4n(t))}}function D1t(e,t){e.Xj();try{e.d.bd(e.e++,t),e.f=e.d.j,e.g=-1}catch(n){throw n=bs(n),De(n,77)?ue(new Xh):ue(n)}}function Wce(){Wce=U,ipe=new NS,MPe=new H0,DPe=new AI,IPe=new LI,OPe=new f8,NPe=new tre,PPe=new nre,BPe=new rre,FPe=new ire}function KV(e,t){iye();var n,r;return n=MO((zz(),zz(),NL)),r=null,t==n&&(r=l(xu(KSe,e),624)),r||(r=new Xst(e),t==n&&rc(KSe,e,r)),r}function I1t(e){By();var t;return(e.q?e.q:(Cn(),Cn(),mg))._b((Nt(),g3))?t=l(Q(e,g3),203):t=l(Q(eo(e),eM),203),t}function Py(e,t){var n,r;return r=null,ns(e,(Nt(),kW))&&(n=l(Q(e,kW),96),n.pf(t)&&(r=n.of(t))),r==null&&(r=Q(eo(e),t)),r}function O1t(e,t){var n,r,a;return De(t,44)?(n=l(t,44),r=n.ld(),a=Oy(e.Rc(),r),yd(a,n.md())&&(a!=null||e.Rc()._b(r))):!1}function n1(e,t){var n,r,a;return e.f>0&&(e._j(),r=t==null?0:es(t),a=(r&Ii)%e.d.length,n=y9e(e,a,r,t),n)?n.md():null}function Ru(e,t,n){var r,a,o;return e.Pj()?(r=e.i,o=e.Qj(),IN(e,r,t),a=e.Ij(3,null,t,r,o),n?n.nj(a):n=a):IN(e,e.i,t),n}function S5n(e,t,n){var r,a;return r=new Zg(e.e,4,10,(a=t.c,De(a,90)?l(a,29):(Tn(),Kf)),null,f2(e,t),!1),n?n.nj(r):n=r,n}function _5n(e,t,n){var r,a;return r=new Zg(e.e,3,10,null,(a=t.c,De(a,90)?l(a,29):(Tn(),Kf)),f2(e,t),!1),n?n.nj(r):n=r,n}function N1t(e){py();var t;return t=new Eo(l(e.e.of((pi(),i7)),8)),e.B.Hc((Zl(),aC))&&(t.a<=0&&(t.a=20),t.b<=0&&(t.b=20)),t}function kb(e){Cd();var t,n;return n=Yr(e),t=Yr(ub(e,32)),t!=0?new qot(n,t):n>10||n<0?new Qg(1,n):y6t[n]}function RN(e,t){var n;return wc(e)&&wc(t)&&(n=e%t,_P=0?o=o.a[1]:(a=o,o=o.a[0])}return a}function $N(e,t,n){var r,a,o;for(a=null,o=e.b;o;){if(r=e.a.Ne(t,o.d),n&&r==0)return o;r<=0?o=o.a[0]:(a=o,o=o.a[1])}return a}function O5n(e,t,n,r){var a,o,f;return a=!1,BMn(e.f,n,r)&&(t6n(e.f,e.a[t][n],e.a[t][r]),o=e.a[t],f=o[r],o[r]=o[n],o[n]=f,a=!0),a}function R1t(e,t,n){var r,a,o,f;for(a=l(cr(e.b,n),183),r=0,f=new G(t.j);f.a>5,t&=31,a=e.d+n+(t==0?0:1),r=We(Vr,di,28,a,15,1),Dxn(r,e.a,n,t),o=new Im(e.e,a,r),iA(o),o}function N5n(e,t){var n,r,a;for(r=new hr(dr(qs(e).a.Kc(),new j));jr(r);)if(n=l(xr(r),18),a=n.d.i,a.c==t)return!1;return!0}function R8e(e,t,n){var r,a,o,f,g;return f=e.k,g=t.k,r=n[f.g][g.g],a=Ge(Py(e,r)),o=Ge(Py(t,r)),b.Math.max((nr(a),a),(nr(o),o))}function P5n(){return Error.stackTraceLimit>0?(b.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error}function B5n(e,t){return A1(),A1(),f0(Ab),(b.Math.abs(e-t)<=Ab||e==t||isNaN(e)&&isNaN(t)?0:et?1:uw(isNaN(e),isNaN(t)))>0}function j8e(e,t){return A1(),A1(),f0(Ab),(b.Math.abs(e-t)<=Ab||e==t||isNaN(e)&&isNaN(t)?0:et?1:uw(isNaN(e),isNaN(t)))<0}function $1t(e,t){return A1(),A1(),f0(Ab),(b.Math.abs(e-t)<=Ab||e==t||isNaN(e)&&isNaN(t)?0:et?1:uw(isNaN(e),isNaN(t)))<=0}function Xce(e,t){for(var n=0;!t[n]||t[n]=="";)n++;for(var r=t[n++];n0&&this.b>0&&(this.g=aH(this.c,this.b,this.a))}function F5n(e,t){var n=e.a,r;t=String(t),n.hasOwnProperty(t)&&(r=n[t]);var a=(vce(),_0e)[typeof r],o=a?a(r):Z7e(typeof r);return o}function NE(e){var t,n,r;if(r=null,t=Pd in e.a,n=!t,n)throw ue(new dd("Every element must have an id."));return r=xx(Wg(e,Pd)),r}function jw(e){var t,n;for(n=fpt(e),t=null;e.c==2;)Li(e),t||(t=(Di(),Di(),new B_(2)),Qm(t,n),n=t),n.Jm(fpt(e));return n}function YV(e,t){var n,r,a;return e._j(),r=t==null?0:es(t),a=(r&Ii)%e.d.length,n=y9e(e,a,r,t),n?(Wht(e,n),n.md()):null}function K1t(e,t){return e.e>t.e?1:e.et.d?e.e:e.d=48&&e<48+b.Math.min(10,10)?e-48:e>=97&&e<97?e-97+10:e>=65&&e<65?e-65+10:-1}function R5n(e,t){if(t.c==e)return t.d;if(t.d==e)return t.c;throw ue(new Yn("Input edge is not connected to the input port."))}function j5n(e){if(QV(wT,e))return Hn(),ST;if(QV(Ffe,e))return Hn(),Pb;throw ue(new Yn("Expecting true or false"))}function q8e(e){switch(typeof e){case Ile:return s2(e);case Qke:return j8(e);case Cx:return Art(e);default:return e==null?0:fw(e)}}function Td(e,t){if(e.a<0)throw ue(new nc("Did not call before(...) or after(...) before calling add(...)."));return Bye(e,e.a,t),e}function H8e(e){return BH(),De(e,162)?l(cr(lF,C6t),295).Rg(e):Hu(lF,bh(e))?l(cr(lF,bh(e)),295).Rg(e):null}function Ku(e){var t,n;return e.Db&32||(n=(t=l(Kn(e,16),29),yr(t||e.ii())-yr(e.ii())),n!=0&&px(e,32,We(wa,Rn,1,n,5,1))),e}function px(e,t,n){var r;e.Db&t?n==null?kEn(e,t):(r=mue(e,t),r==-1?e.Eb=n:Ts(jm(e.Eb),r,n)):n!=null&&UCn(e,t,n)}function $5n(e,t,n,r){var a,o;t.c.length!=0&&(a=PTn(n,r),o=Bkn(t),Is(lV(new bn(null,new kn(o,1)),new a8),new Cat(e,n,a,r)))}function z5n(e,t){var n,r,a,o;return r=e.a.length-1,n=t-e.b&r,o=e.c-t&r,a=e.c-e.b&r,Ert(n=o?(jyn(e,t),-1):(Ryn(e,t),1)}function XV(e){var t,n,r;if(r=e.Jh(),!r)for(t=0,n=e.Ph();n;n=n.Ph()){if(++t>ohe)return n.Qh();if(r=n.Jh(),r||n==e)break}return r}function Y1t(e,t){var n;return qe(t)===qe(e)?!0:!De(t,21)||(n=l(t,21),n.gc()!=e.gc())?!1:e.Ic(n)}function q5n(e,t){return e.et.e?1:e.ft.f?1:es(e)-es(t)}function QV(e,t){return nr(e),t==null?!1:vn(e,t)?!0:e.length==t.length&&vn(e.toLowerCase(),t.toLowerCase())}function ap(e){var t,n;return iu(e,-129)>0&&iu(e,128)<0?(Zit(),t=Yr(e)+128,n=n_e[t],!n&&(n=n_e[t]=new Or(e)),n):new Or(e)}function Km(){Km=U,c4=new dq(Id,0),bAe=new dq("INSIDE_PORT_SIDE_GROUPS",1),o1e=new dq("GROUP_MODEL_ORDER",2),c1e=new dq($Ee,3)}function H5n(e){var t;return e.b||Bun(e,(t=Pfn(e.e,e.a),!t||!vn(Ffe,n1((!t.b&&(t.b=new dh((Tn(),No),Yc,t)),t.b),"qualified")))),e.c}function V5n(e,t){var n,r;for(n=(Xn(t,e.length),e.charCodeAt(t)),r=t+1;r2e3&&(l6t=e,oK=b.setTimeout(zun,10))),aK++==0?(rwn((Xwe(),GSe)),!0):!1}function i6n(e,t,n){var r;(I6t?(o5n(e),!0):O6t||P6t?(Dk(),!0):N6t&&(Dk(),!1))&&(r=new fit(t),r.b=n,f9n(e,r))}function Jce(e,t){var n;n=!e.A.Hc((mh(),Cv))||e.q==(Ra(),Mu),e.u.Hc((Rl(),vp))?n?KDn(e,t):Vvt(e,t):e.u.Hc(Yb)&&(n?dDn(e,t):swt(e,t))}function tdt(e){var t;qe(at(e,(pi(),n7)))===qe((rp(),oY))&&(ds(e)?(t=l(at(ds(e),n7),346),Hi(e,n7,t)):Hi(e,n7,DM))}function s6n(e){var t,n;return ns(e.d.i,(Nt(),HT))?(t=l(Q(e.c.i,HT),17),n=l(Q(e.d.i,HT),17),ru(t.a,n.a)>0):!1}function ndt(e,t,n){return new ef(b.Math.min(e.a,t.a)-n/2,b.Math.min(e.b,t.b)-n/2,b.Math.abs(e.a-t.a)+n,b.Math.abs(e.b-t.b)+n)}function rdt(e){var t;this.d=new bt,this.j=new qa,this.g=new qa,t=e.g.b,this.f=l(Q(eo(t),(Nt(),Rh)),88),this.e=ze(Ge(tU(t,y4)))}function idt(e){this.d=new bt,this.e=new e2,this.c=We(Vr,di,28,(Ct(),he(le(Oo,1),au,64,0,[Pc,Qn,ar,Dr,er])).length,15,1),this.b=e}function G8e(e,t,n){var r;switch(r=n[e.g][t],e.g){case 1:case 3:return new lt(0,r);case 2:case 4:return new lt(r,0);default:return null}}function sdt(e,t,n){var r,a;a=l(GO(t.f),205);try{a.rf(e,n),lat(t.f,a)}catch(o){throw o=bs(o),De(o,103)?(r=o,ue(r)):ue(o)}}function adt(e,t,n){var r,a,o,f,g,w;return r=null,g=Fke(hE(),t),o=null,g&&(a=null,w=Pke(g,n),f=null,w!=null&&(f=e.qf(g,w)),a=f,o=a),r=o,r}function Zce(e,t,n,r){var a;if(a=e.length,t>=a)return a;for(t=t>0?t:0;tr&&Ts(t,r,null),t}function odt(e,t){var n,r;for(r=e.a.length,t.lengthr&&Ts(t,r,null),t}function PE(e,t){var n,r;if(++e.j,t!=null&&(n=(r=e.a.Cb,De(r,99)?l(r,99).th():null),lEn(t,n))){px(e.a,4,n);return}px(e.a,4,l(t,129))}function a6n(e){var t;if(e==null)return null;if(t=hTn(Tu(e,!0)),t==null)throw ue(new Jie("Invalid hexBinary value: '"+e+"'"));return t}function JV(e,t,n){var r;t.a.length>0&&(vt(e.b,new Ait(t.a,n)),r=t.a.length,0r&&(t.a+=Mnt(We(kf,Ad,28,-r,15,1))))}function cdt(e,t,n){var r,a,o;if(!n[t.d])for(n[t.d]=!0,a=new G(Z5(t));a.a=e.b>>1)for(r=e.c,n=e.b;n>t;--n)r=r.b;else for(r=e.a.a,n=0;n=0?e.Wh(a):que(e,r)):n<0?que(e,r):l(r,69).wk().Bk(e,e.hi(),n)}function fdt(e){var t,n,r;for(r=(!e.o&&(e.o=new xl((su(),Cg),L2,e,0)),e.o),n=r.c.Kc();n.e!=n.i.gc();)t=l(n.Yj(),44),t.md();return iN(r)}function It(e){var t;if(De(e.a,4)){if(t=H8e(e.a),t==null)throw ue(new nc(Nyt+e.b+"'. "+Oyt+(Gg(hF),hF.k)+JCe));return t}else return e.a}function g6n(e,t){var n,r;if(e.j.length!=t.j.length)return!1;for(n=0,r=e.j.length;n=64&&t<128&&(a=Q0(a,l0(1,t-64)));return a}function tU(e,t){var n,r;return r=null,ns(e,(pi(),r9))&&(n=l(Q(e,r9),96),n.pf(t)&&(r=n.of(t))),r==null&&eo(e)&&(r=Q(eo(e),t)),r}function p6n(e,t){var n;return n=l(Q(e,(Nt(),cc)),75),Zse(t,O8t)?n?Ch(n):(n=new bl,rt(e,cc,n)):n&&rt(e,cc,null),n}function IA(){IA=U,X_e=(pi(),_Ne),W0e=oNe,I7t=Z6,Y_e=_2,B7t=(dU(),A_e),P7t=S_e,F7t=M_e,N7t=C_e,O7t=(Lce(),G_e),K0e=L7t,W_e=M7t,vK=D7t}function nU(e){switch(w3e(),this.c=new bt,this.d=e,e.g){case 0:case 2:this.a=_5e(pAe),this.b=gs;break;case 3:case 1:this.a=pAe,this.b=ia}}function b6n(e){var t;U8(l(Q(e,(Nt(),Ms)),101))&&(t=e.b,e2t((Sn(0,t.c.length),l(t.c[0],30))),e2t(l(jt(t,t.c.length-1),30)))}function m6n(e,t){t.Ug("Self-Loop post-processing",1),Is(Fi(Fi(Dc(new bn(null,new kn(e.b,16)),new RZ),new jZ),new $Z),new Ej),t.Vg()}function ddt(e,t,n){var r,a;if(e.c)Uu(e.c,e.c.i+t),Gu(e.c,e.c.j+n);else for(a=new G(e.b);a.a=0&&(n.d=e.t);break;case 3:e.t>=0&&(n.a=e.t)}e.C&&(n.b=e.C.b,n.c=e.C.c)}function OA(){OA=U,vDe=new hO(cCe,0),vde=new hO($he,1),wde=new hO("LINEAR_SEGMENTS",2),rM=new hO("BRANDES_KOEPF",3),iM=new hO(cyt,4)}function NA(){NA=U,uB=new hq(nG,0),bK=new hq(yhe,1),mK=new hq(xhe,2),lB=new hq(khe,3),uB.a=!1,bK.a=!0,mK.a=!1,lB.a=!0}function bx(){bx=U,aB=new lq(nG,0),sB=new lq(yhe,1),oB=new lq(xhe,2),cB=new lq(khe,3),aB.a=!1,sB.a=!0,oB.a=!1,cB.a=!0}function mx(e,t,n,r){var a;return n>=0?e.Sh(t,n,r):(e.Ph()&&(r=(a=e.Fh(),a>=0?e.Ah(r):e.Ph().Th(e,-1-a,null,r))),e.Ch(t,n,r))}function K8e(e,t){switch(t){case 7:!e.e&&(e.e=new Ln(js,e,7,4)),$r(e.e);return;case 8:!e.d&&(e.d=new Ln(js,e,8,5)),$r(e.d);return}N8e(e,t)}function Hi(e,t,n){return n==null?(!e.o&&(e.o=new xl((su(),Cg),L2,e,0)),YV(e.o,t)):(!e.o&&(e.o=new xl((su(),Cg),L2,e,0)),GN(e.o,t,n)),e}function mdt(e,t){Cn();var n,r,a,o;for(n=e,o=t,De(e,21)&&!De(t,21)&&(n=t,o=e),a=n.Kc();a.Ob();)if(r=a.Pb(),o.Hc(r))return!1;return!0}function k6n(e,t,n,r){if(t.an.b)return!0}return!1}function iue(e,t){return Ia(e)?!!r6t[t]:e.Sm?!!e.Sm[t]:fy(e)?!!n6t[t]:hy(e)?!!t6t[t]:!1}function E6n(e){var t;t=e.a;do t=l(xr(new hr(dr(ka(t).a.Kc(),new j))),18).c.i,t.k==(Zn(),Aa)&&e.b.Fc(t);while(t.k==(Zn(),Aa));e.b=lf(e.b)}function vdt(e,t){var n,r,a;for(a=e,r=new hr(dr(ka(t).a.Kc(),new j));jr(r);)n=l(xr(r),18),n.c.i.c&&(a=b.Math.max(a,n.c.i.c.p));return a}function T6n(e,t){var n,r,a;for(a=0,r=l(l($i(e.r,t),21),87).Kc();r.Ob();)n=l(r.Pb(),117),a+=n.d.d+n.b.Mf().b+n.d.a,r.Ob()&&(a+=e.w);return a}function C6n(e,t){var n,r,a;for(a=0,r=l(l($i(e.r,t),21),87).Kc();r.Ob();)n=l(r.Pb(),117),a+=n.d.b+n.b.Mf().a+n.d.c,r.Ob()&&(a+=e.w);return a}function wdt(e){var t,n,r,a;if(r=0,a=Hy(e),a.c.length==0)return 1;for(n=new G(a);n.a=0?e.Lh(f,n,!0):Hw(e,o,n)):l(o,69).wk().yk(e,e.hi(),a,n,r)}function L6n(e,t,n,r){var a,o;o=t.pf((pi(),r7))?l(t.of(r7),21):e.j,a=d4n(o),a!=(YU(),H0e)&&(n&&!$8e(a)||Jxe(fTn(e,a,r),t))}function M6n(e){switch(e.g){case 1:return Pw(),iB;case 3:return Pw(),rB;case 2:return Pw(),U0e;case 4:return Pw(),V0e;default:return null}}function D6n(e,t,n){if(e.e)switch(e.b){case 1:xpn(e.c,t,n);break;case 0:kpn(e.c,t,n)}else $ct(e.c,t,n);e.a[t.p][n.p]=e.c.i,e.a[n.p][t.p]=e.c.e}function ydt(e){var t,n;if(e==null)return null;for(n=We(wg,dt,199,e.length,0,2),t=0;t=0)return a;if(e.ol()){for(r=0;r=a)throw ue(new my(t,a));if(e.Si()&&(r=e.dd(n),r>=0&&r!=t))throw ue(new Yn(WP));return e.Xi(t,n)}function W8e(e,t){if(this.a=l(Xr(e),253),this.b=l(Xr(t),253),e.Ed(t)>0||e==(Uie(),w0e)||t==(Gie(),y0e))throw ue(new Yn("Invalid range: "+Hct(e,t)))}function xdt(e){var t,n;for(this.b=new bt,this.c=e,this.a=!1,n=new G(e.a);n.a0),(t&-t)==t)return ua(t*Jl(e,31)*4656612873077393e-25);do n=Jl(e,31),r=n%t;while(n-r+(t-1)<0);return ua(r)}function F6n(e,t,n){switch(n.g){case 1:e.a=t.a/2,e.b=0;break;case 2:e.a=t.a,e.b=t.b/2;break;case 3:e.a=t.a/2,e.b=t.b;break;case 4:e.a=0,e.b=t.b/2}}function zN(e,t,n,r){var a,o;for(a=t;a1&&(o=O6n(e,t)),o}function Tdt(e){var t;return t=ze(Ge(at(e,(pi(),QB))))*b.Math.sqrt((!e.a&&(e.a=new nt(Ai,e,10,11)),e.a).i),new lt(t,t/ze(Ge(at(e,sY))))}function aue(e){var t;return e.f&&e.f.Vh()&&(t=l(e.f,54),e.f=l(yb(e,t),84),e.f!=t&&e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,9,8,t,e.f))),e.f}function oue(e){var t;return e.i&&e.i.Vh()&&(t=l(e.i,54),e.i=l(yb(e,t),84),e.i!=t&&e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,9,7,t,e.i))),e.i}function Ro(e){var t;return e.b&&e.b.Db&64&&(t=e.b,e.b=l(yb(e,t),19),e.b!=t&&e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,9,21,t,e.b))),e.b}function oU(e,t){var n,r,a;e.d==null?(++e.e,++e.f):(r=t.Bi(),aCn(e,e.f+1),a=(r&Ii)%e.d.length,n=e.d[a],!n&&(n=e.d[a]=e.dk()),n.Fc(t),++e.f)}function Q8e(e,t,n){var r;return t.tk()?!1:t.Ik()!=-2?(r=t.ik(),r==null?n==null:Pi(r,n)):t.qk()==e.e.Dh()&&n==null}function cU(){var e;Mh(16,Pwt),e=cft(16),this.b=We(k0e,TP,303,e,0,1),this.c=We(k0e,TP,303,e,0,1),this.a=null,this.e=null,this.i=0,this.f=e-1,this.g=0}function op(e){r4e.call(this),this.k=(Zn(),Ps),this.j=(Mh(6,Yy),new Bu(6)),this.b=(Mh(2,Yy),new Bu(2)),this.d=new $ie,this.f=new Rwe,this.a=e}function j6n(e){var t,n;e.c.length<=1||(t=Abt(e,(Ct(),Dr)),ppt(e,l(t.a,17).a,l(t.b,17).a),n=Abt(e,er),ppt(e,l(n.a,17).a,l(n.b,17).a))}function $6n(e,t,n){var r,a;for(a=e.a.b,r=a.c.length;r102?-1:e<=57?e-48:e<65?-1:e<=70?e-65+10:e<97?-1:e-97+10}function fue(e,t){if(e==null)throw ue(new D8("null key in entry: null="+t));if(t==null)throw ue(new D8("null value in entry: "+e+"=null"))}function H6n(e,t){for(var n,r;e.Ob();)if(!t.Ob()||(n=e.Pb(),r=t.Pb(),!(qe(n)===qe(r)||n!=null&&Pi(n,r))))return!1;return!t.Ob()}function _dt(e,t){var n;return n=he(le(Na,1),Zo,28,15,[Dce(e.a[0],t),Dce(e.a[1],t),Dce(e.a[2],t)]),e.d&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function Adt(e,t){var n;return n=he(le(Na,1),Zo,28,15,[BV(e.a[0],t),BV(e.a[1],t),BV(e.a[2],t)]),e.d&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function Z8e(e,t,n){U8(l(Q(t,(Nt(),Ms)),101))||(d6e(e,t,d2(t,n)),d6e(e,t,d2(t,(Ct(),Dr))),d6e(e,t,d2(t,Qn)),Cn(),Vs(t.j,new IYe(e)))}function Ldt(e){var t,n;for(e.c||cMn(e),n=new bl,t=new G(e.a),re(t);t.a0&&(Xn(0,t.length),t.charCodeAt(0)==43)?(Xn(1,t.length+1),t.substr(1)):t))}function r7n(e){var t;return e==null?null:new ob((t=Tu(e,!0),t.length>0&&(Xn(0,t.length),t.charCodeAt(0)==43)?(Xn(1,t.length+1),t.substr(1)):t))}function txe(e,t,n,r,a,o,f,g){var w,E;r&&(w=r.a[0],w&&txe(e,t,n,w,a,o,f,g),xue(e,n,r.d,a,o,f,g)&&t.Fc(r),E=r.a[1],E&&txe(e,t,n,E,a,o,f,g))}function r6(e,t,n){try{return cw(nce(e,t,n),1)}catch(r){throw r=bs(r),De(r,333)?ue(new tc(Ehe+e.o+"*"+e.p+The+t+Co+n+Che)):ue(r)}}function Ndt(e,t,n){try{return cw(nce(e,t,n),0)}catch(r){throw r=bs(r),De(r,333)?ue(new tc(Ehe+e.o+"*"+e.p+The+t+Co+n+Che)):ue(r)}}function Pdt(e,t,n){try{return cw(nce(e,t,n),2)}catch(r){throw r=bs(r),De(r,333)?ue(new tc(Ehe+e.o+"*"+e.p+The+t+Co+n+Che)):ue(r)}}function Bdt(e,t){if(e.g==-1)throw ue(new pl);e.Xj();try{e.d.hd(e.g,t),e.f=e.d.j}catch(n){throw n=bs(n),De(n,77)?ue(new Xh):ue(n)}}function i7n(e){var t,n,r,a,o;for(r=new G(e.b);r.ao&&Ts(t,o,null),t}function s7n(e,t){var n,r;if(r=e.gc(),t==null){for(n=0;n0&&(w+=a),E[C]=f,f+=g*(w+r)}function Rdt(e){var t,n,r;for(r=e.f,e.n=We(Na,Zo,28,r,15,1),e.d=We(Na,Zo,28,r,15,1),t=0;t0?e.c:0),++a;e.b=r,e.d=o}function Hdt(e,t){var n;return n=he(le(Na,1),Zo,28,15,[X8e(e,(t1(),Gc),t),X8e(e,$u,t),X8e(e,Kc,t)]),e.f&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function d7n(e,t,n){var r;try{FU(e,t+e.j,n+e.k,!1,!0)}catch(a){throw a=bs(a),De(a,77)?(r=a,ue(new tc(r.g+iG+t+Co+n+")."))):ue(a)}}function g7n(e,t,n){var r;try{FU(e,t+e.j,n+e.k,!0,!1)}catch(a){throw a=bs(a),De(a,77)?(r=a,ue(new tc(r.g+iG+t+Co+n+")."))):ue(a)}}function Vdt(e){var t;ns(e,(Nt(),d3))&&(t=l(Q(e,d3),21),t.Hc((qy(),E0))?(t.Mc(E0),t.Fc(T0)):t.Hc(T0)&&(t.Mc(T0),t.Fc(E0)))}function Udt(e){var t;ns(e,(Nt(),d3))&&(t=l(Q(e,d3),21),t.Hc((qy(),S0))?(t.Mc(S0),t.Fc(qf)):t.Hc(qf)&&(t.Mc(qf),t.Fc(S0)))}function vue(e,t,n,r){var a,o,f,g;return e.a==null&&b9n(e,t),f=t.b.j.c.length,o=n.d.p,g=r.d.p,a=g-1,a<0&&(a=f-1),o<=a?e.a[a]-e.a[o]:e.a[f-1]-e.a[o]+e.a[a]}function p7n(e){var t,n;if(!e.b)for(e.b=$H(l(e.f,27).kh().i),n=new or(l(e.f,27).kh());n.e!=n.i.gc();)t=l(gr(n),135),vt(e.b,new Yie(t));return e.b}function b7n(e){var t,n;if(!e.e)for(e.e=$H(Xae(l(e.f,27)).i),n=new or(Xae(l(e.f,27)));n.e!=n.i.gc();)t=l(gr(n),123),vt(e.e,new BXe(t));return e.e}function Gdt(e){var t,n;if(!e.a)for(e.a=$H(AH(l(e.f,27)).i),n=new or(AH(l(e.f,27)));n.e!=n.i.gc();)t=l(gr(n),27),vt(e.a,new rae(e,t));return e.a}function zw(e){var t;if(!e.C&&(e.D!=null||e.B!=null))if(t=rDn(e),t)e.hl(t);else try{e.hl(null)}catch(n){if(n=bs(n),!De(n,63))throw ue(n)}return e.C}function m7n(e){switch(e.q.g){case 5:bgt(e,(Ct(),Qn)),bgt(e,Dr);break;case 4:vvt(e,(Ct(),Qn)),vvt(e,Dr);break;default:xpt(e,(Ct(),Qn)),xpt(e,Dr)}}function v7n(e){switch(e.q.g){case 5:mgt(e,(Ct(),ar)),mgt(e,er);break;case 4:wvt(e,(Ct(),ar)),wvt(e,er);break;default:kpt(e,(Ct(),ar)),kpt(e,er)}}function i6(e,t){var n,r,a;for(a=new qa,r=e.Kc();r.Ob();)n=l(r.Pb(),36),KE(n,a.a,0),a.a+=n.f.a+t,a.b=b.Math.max(a.b,n.f.b);return a.b>0&&(a.b+=t),a}function hU(e,t){var n,r,a;for(a=new qa,r=e.Kc();r.Ob();)n=l(r.Pb(),36),KE(n,0,a.b),a.b+=n.f.b+t,a.a=b.Math.max(a.a,n.f.a);return a.a>0&&(a.a+=t),a}function Kdt(e){var t,n,r;for(r=Ii,n=new G(e.a);n.a>16==6?e.Cb.Th(e,5,u1,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||e.ii()),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function w7n(e){Xk();var t=e.e;if(t&&t.stack){var n=t.stack,r=t+` +`,Yve=function(i,s){return AQ(i,s)},gan=function(i,s){const d=i.append("circle").attr("cx",s.cx).attr("cy",s.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),p=i.append("g");p.append("circle").attr("cx",s.cx-15/3).attr("cy",s.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),p.append("circle").attr("cx",s.cx+15/3).attr("cy",s.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function v(T){const _=lD().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);T.append("path").attr("class","mouth").attr("d",_).attr("transform","translate("+s.cx+","+(s.cy+2)+")")}function b(T){const _=lD().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);T.append("path").attr("class","mouth").attr("d",_).attr("transform","translate("+s.cx+","+(s.cy+7)+")")}function y(T){T.append("line").attr("class","mouth").attr("stroke",2).attr("x1",s.cx-5).attr("y1",s.cy+7).attr("x2",s.cx+5).attr("y2",s.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return s.score>3?v(p):s.score<3?b(p):y(p),d},FKe=function(i,s){const u=i.append("circle");return u.attr("cx",s.cx),u.attr("cy",s.cy),u.attr("class","actor-"+s.pos),u.attr("fill",s.fill),u.attr("stroke",s.stroke),u.attr("r",s.r),u.class!==void 0&&u.attr("class",u.class),s.title!==void 0&&u.append("title").text(s.title),u},RKe=function(i,s){return tUt(i,s)},pan=function(i,s){function u(p,v,b,y,T){return p+","+v+" "+(p+b)+","+v+" "+(p+b)+","+(v+y-T)+" "+(p+b-T*1.2)+","+(v+y)+" "+p+","+(v+y)}const d=i.append("polygon");d.attr("points",u(s.x,s.y,50,20,7)),d.attr("class","labelBox"),s.y=s.y+s.labelMargin,s.x=s.x+.5*s.labelMargin,RKe(i,s)},ban=function(i,s,u){const d=i.append("g"),p=qC();p.x=s.x,p.y=s.y,p.fill=s.fill,p.width=u.width*s.taskCount+u.diagramMarginX*(s.taskCount-1),p.height=u.height,p.class="journey-section section-type-"+s.num,p.rx=3,p.ry=3,Yve(d,p),$Ke(u)(s.text,d,p.x,p.y,p.width,p.height,{class:"journey-section section-type-"+s.num},u,s.colour)};let jKe=-1;const man=function(i,s,u){const d=s.x+u.width/2,p=i.append("g");jKe++;const v=300+5*30;p.append("line").attr("id","task"+jKe).attr("x1",d).attr("y1",s.y).attr("x2",d).attr("y2",v).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),gan(p,{cx:d,cy:300+(5-s.score)*30,score:s.score});const b=qC();b.x=s.x,b.y=s.y,b.fill=s.fill,b.width=u.width,b.height=u.height,b.class="task task-type-"+s.num,b.rx=3,b.ry=3,Yve(p,b);let y=s.x+14;s.people.forEach(T=>{const _=s.actors[T].color,A={cx:y,cy:s.y,r:7,fill:_,stroke:"#000",title:T,pos:s.actors[T].position};FKe(p,A),y+=10}),$Ke(u)(s.task,p,b.x,b.y,b.width,b.height,{class:"task"},u,s.colour)},van=function(i,s){Tqe(i,s)},$Ke=function(){function i(p,v,b,y,T,_,A,P){const R=v.append("text").attr("x",b+T/2).attr("y",y+_/2+5).style("font-color",P).style("text-anchor","middle").text(p);d(R,A)}function s(p,v,b,y,T,_,A,P,R){const{taskFontSize:F,taskFontFamily:j}=P,K=p.split(//gi);for(let ee=0;ee{const p=K7[d].color,v={cx:20,cy:u,r:7,fill:p,stroke:"#000",pos:K7[d].position};rj.drawCircle(i,v);const b={x:40,y:u+7,fill:"#666",text:d,textMargin:s.boxTextMargin|5};rj.drawText(i,b),u+=20})}const MJ=qt().journey,iS=MJ.leftMargin,xan=function(i,s,u,d){const p=qt().journey,v=qt().securityLevel;let b;v==="sandbox"&&(b=Ir("#i"+s));const y=Ir(v==="sandbox"?b.nodes()[0].contentDocument.body:"body");qv.init();const T=y.select("#"+s);rj.initGraphics(T);const _=d.db.getTasks(),A=d.db.getDiagramTitle(),P=d.db.getActors();for(const ie in K7)delete K7[ie];let R=0;P.forEach(ie=>{K7[ie]={color:p.actorColours[R%p.actorColours.length],position:R},R++}),yan(T),qv.insert(0,0,iS,Object.keys(K7).length*50),kan(T,_,0);const F=qv.getBounds();A&&T.append("text").text(A).attr("x",iS).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const j=F.stopy-F.starty+2*p.diagramMarginY,K=iS+F.stopx+2*p.diagramMarginX;Ng(T,j,K,p.useMaxWidth),T.append("line").attr("x1",iS).attr("y1",p.height*4).attr("x2",K-iS-4).attr("y2",p.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const ee=A?70:0;T.attr("viewBox",`${F.startx} -25 ${K} ${j+ee}`),T.attr("preserveAspectRatio","xMinYMin meet"),T.attr("height",j+ee+25)},qv={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(i,s,u,d){i[s]===void 0?i[s]=u:i[s]=d(u,i[s])},updateBounds:function(i,s,u,d){const p=qt().journey,v=this;let b=0;function y(T){return function(A){b++;const P=v.sequenceItems.length-b+1;v.updateVal(A,"starty",s-P*p.boxMargin,Math.min),v.updateVal(A,"stopy",d+P*p.boxMargin,Math.max),v.updateVal(qv.data,"startx",i-P*p.boxMargin,Math.min),v.updateVal(qv.data,"stopx",u+P*p.boxMargin,Math.max),T!=="activation"&&(v.updateVal(A,"startx",i-P*p.boxMargin,Math.min),v.updateVal(A,"stopx",u+P*p.boxMargin,Math.max),v.updateVal(qv.data,"starty",s-P*p.boxMargin,Math.min),v.updateVal(qv.data,"stopy",d+P*p.boxMargin,Math.max))}}this.sequenceItems.forEach(y())},insert:function(i,s,u,d){const p=Math.min(i,u),v=Math.max(i,u),b=Math.min(s,d),y=Math.max(s,d);this.updateVal(qv.data,"startx",p,Math.min),this.updateVal(qv.data,"starty",b,Math.min),this.updateVal(qv.data,"stopx",v,Math.max),this.updateVal(qv.data,"stopy",y,Math.max),this.updateBounds(p,b,v,y)},bumpVerticalPos:function(i){this.verticalPos=this.verticalPos+i,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},Xve=MJ.sectionFills,zKe=MJ.sectionColours,kan=function(i,s,u){const d=qt().journey;let p="";const v=d.height*2+d.diagramMarginY,b=u+v;let y=0,T="#CCC",_="black",A=0;for(const[P,R]of s.entries()){if(p!==R.section){T=Xve[y%Xve.length],A=y%Xve.length,_=zKe[y%zKe.length];let j=0;const K=R.section;for(let ie=P;ie(K7[K]&&(j[K]=K7[K]),j),{});R.x=P*d.taskMargin+P*d.width+iS,R.y=b,R.width=d.diagramMarginX,R.height=d.diagramMarginY,R.colour=_,R.fill=T,R.num=A,R.actors=F,rj.drawTask(i,R,d),qv.insert(R.x,R.y,R.x+R.width+d.taskMargin,300+5*30)}},qKe={setConf:wan,draw:xan},Ean=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:san,db:BKe,renderer:qKe,styles:dan,init:i=>{qKe.setConf(i.journey),BKe.clear()}}},Symbol.toStringTag,{value:"Module"})),Tan=(i,s,u)=>{const{parentById:d}=u,p=new Set;let v=i;for(;v;){if(p.add(v),v===s)return v;v=d[v]}for(v=s;v;){if(p.has(v))return v;v=d[v]}return"root"};function DJ(i){throw new Error('Could not dynamically require "'+i+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var HKe={exports:{}};(function(i,s){(function(u){i.exports=u()})(function(){return function(){function u(d,p,v){function b(_,A){if(!p[_]){if(!d[_]){var P=typeof DJ=="function"&&DJ;if(!A&&P)return P(_,!0);if(y)return y(_,!0);var R=new Error("Cannot find module '"+_+"'");throw R.code="MODULE_NOT_FOUND",R}var F=p[_]={exports:{}};d[_][0].call(F.exports,function(j){var K=d[_][1][j];return b(K||j)},F,F.exports,u,d,p,v)}return p[_].exports}for(var y=typeof DJ=="function"&&DJ,T=0;T0&&arguments[0]!==void 0?arguments[0]:{},R=P.defaultLayoutOptions,F=R===void 0?{}:R,j=P.algorithms,K=j===void 0?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:j,ee=P.workerFactory,ie=P.workerUrl;if(b(this,_),this.defaultLayoutOptions=F,this.initialized=!1,typeof ie>"u"&&typeof ee>"u")throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var oe=ee;typeof ie<"u"&&typeof ee>"u"&&(oe=function(ae){return new Worker(ae)});var pe=oe(ie);if(typeof pe.postMessage!="function")throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new T(pe),this.worker.postMessage({cmd:"register",algorithms:K}).then(function(be){return A.initialized=!0}).catch(console.err)}return v(_,[{key:"layout",value:function(P){var R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},F=R.layoutOptions,j=F===void 0?this.defaultLayoutOptions:F,K=R.logging,ee=K===void 0?!1:K,ie=R.measureExecutionTime,oe=ie===void 0?!1:ie;return P?this.worker.postMessage({cmd:"layout",graph:P,layoutOptions:j,options:{logging:ee,measureExecutionTime:oe}}):Promise.reject(new Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker.terminate()}}]),_}();p.default=y;var T=function(){function _(A){var P=this;if(b(this,_),A===void 0)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=A,this.worker.onmessage=function(R){setTimeout(function(){P.receive(P,R)},0)}}return v(_,[{key:"postMessage",value:function(P){var R=this.id||0;this.id=R+1,P.id=R;var F=this;return new Promise(function(j,K){F.resolvers[R]=function(ee,ie){ee?(F.convertGwtStyleError(ee),K(ee)):j(ie)},F.worker.postMessage(P)})}},{key:"receive",value:function(P,R){var F=R.data,j=P.resolvers[F.id];j&&(delete P.resolvers[F.id],F.error?j(F.error):j(null,F.data))}},{key:"terminate",value:function(){this.worker.terminate&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(P){if(P){var R=P.__java$exception;R&&(R.cause&&R.cause.backingJsObject&&(P.cause=R.cause.backingJsObject,this.convertGwtStyleError(P.cause)),delete P.__java$exception)}}}]),_}()},{}],2:[function(u,d,p){(function(v){(function(){var b;typeof window<"u"?b=window:typeof v<"u"?b=v:typeof self<"u"&&(b=self);var y;function T(){}function _(){}function A(){}function P(){}function R(){}function F(){}function j(){}function K(){}function ee(){}function ie(){}function oe(){}function pe(){}function be(){}function ae(){}function ne(){}function se(){}function de(){}function X(){}function ge(){}function W(){}function xe(){}function U(){}function Fe(){}function Pe(){}function je(){}function Ie(){}function Se(){}function Ce(){}function ke(){}function Ke(){}function Ft(){}function Ne(){}function gn(){}function _t(){}function Et(){}function Gt(){}function ln(){}function xt(){}function Pt(){}function Qe(){}function Dt(){}function kt(){}function On(){}function ht(){}function zr(){}function yt(){}function ji(){}function xi(){}function Ma(){}function zs(){}function ao(){}function Tr(){}function Fn(){}function qn(){}function Un(){}function At(){}function wt(){}function on(){}function fn(){}function An(){}function oo(){}function jo(){}function $o(){}function Pa(){}function wo(){}function _s(){}function tl(){}function da(){}function j0(){}function pm(){}function Ml(){}function Xc(){}function Bc(){}function ja(){}function Ou(){}function Sa(){}function Po(){}function Fc(){}function xa(){}function Ba(){}function ga(){}function kh(){}function lu(){}function o5(){}function Wh(){}function od(){}function Gd(){}function cd(){}function Kd(){}function $g(){}function as(){}function wn(){}function Zr(){}function Zi(){}function nu(){}function vu(){}function Dl(){}function Yh(){}function w1(){}function $0(){}function Wi(){}function Bs(){}function Qa(){}function Bi(){}function Nu(){}function Ot(){}function W3(){}function Kt(){}function z0(){}function Bp(){}function Y3(){}function $9(){}function c5(){}function Eh(){}function zg(){}function bm(){}function z9(){}function mm(){}function u5(){}function y1(){}function ud(){}function ld(){}function q9(){}function Vv(){}function Y7(){}function G2(){}function X7(){}function l5(){}function X3(){}function Fp(){}function nI(){}function ch(){}function oS(){}function hu(){}function $J(){}function vm(){}function zJ(){}function oj(){}function qJ(){}function cj(){}function q0(){}function Q3(){}function cS(){}function uj(){}function K2(){}function J3(){}function HJ(){}function wm(){}function VJ(){}function UJ(){}function Q7(){}function uS(){}function lj(){}function H9(){}function GJ(){}function V9(){}function KJ(){}function WJ(){}function YJ(){}function XJ(){}function QJ(){}function JJ(){}function ZJ(){}function eZ(){}function tZ(){}function nZ(){}function rZ(){}function rI(){}function iZ(){}function sZ(){}function lS(){}function hj(){}function J7(){}function aZ(){}function oZ(){}function cZ(){}function uZ(){}function lZ(){}function hS(){}function iI(){}function fj(){}function h5(){}function f5(){}function hZ(){}function t0(){}function Z7(){}function fZ(){}function U9(){}function Wd(){}function dZ(){}function gZ(){}function pZ(){}function dj(){}function bZ(){}function fS(){}function dS(){}function gj(){}function sI(){}function e8(){}function mZ(){}function pj(){}function bj(){}function vZ(){}function wZ(){}function yZ(){}function xZ(){}function kZ(){}function EZ(){}function Yd(){}function Uv(){}function TZ(){}function gS(){}function pS(){}function CZ(){}function d5(){}function G9(){}function aI(){}function Z3(){}function K9(){}function SZ(){}function bS(){}function hd(){}function mj(){}function oI(){}function W9(){}function cI(){}function vj(){}function _Z(){}function uI(){}function AZ(){}function LZ(){}function wj(){}function t8(){}function yj(){}function n8(){}function MZ(){}function lI(){}function DZ(){}function IZ(){}function OZ(){}function NZ(){}function xj(){}function PZ(){}function BZ(){}function kj(){}function FZ(){}function RZ(){}function jZ(){}function $Z(){}function Ej(){}function zZ(){}function qZ(){}function Tj(){}function Cj(){}function Sj(){}function HZ(){}function VZ(){}function Y9(){}function r8(){}function mS(){}function UZ(){}function hI(){}function vS(){}function fI(){}function _j(){}function Aj(){}function GZ(){}function KZ(){}function WZ(){}function Lj(){}function Mj(){}function YZ(){}function XZ(){}function QZ(){}function JZ(){}function ZZ(){}function Dj(){}function eee(){}function tee(){}function nee(){}function ree(){}function Ij(){}function wS(){}function iee(){}function see(){}function Oj(){}function aee(){}function oee(){}function cee(){}function uee(){}function lee(){}function hee(){}function Nj(){}function fee(){}function Pj(){}function dee(){}function gee(){}function pee(){}function yS(){}function bee(){}function xS(){}function mee(){}function Bj(){}function Fj(){}function Rj(){}function jj(){}function Gv(){}function $j(){}function zj(){}function qj(){}function Hj(){}function vee(){}function i8(){}function dI(){}function g5(){}function wee(){}function yee(){}function kS(){}function Vj(){}function xee(){}function kee(){}function Eee(){}function Tee(){}function Cee(){}function See(){}function _ee(){}function Aee(){}function Lee(){}function Mee(){}function ES(){}function Uj(){}function Dee(){}function Iee(){}function Oee(){}function Nee(){}function Pee(){}function Gj(){}function Kj(){}function Bee(){}function Wj(){}function Yj(){}function Fee(){}function Ree(){}function jee(){}function $ee(){}function zee(){}function qee(){}function Hee(){}function Vee(){}function gI(){}function Uee(){}function X9(){}function Xj(){}function Gee(){}function Kee(){}function Wee(){}function Yee(){}function Xee(){}function Qee(){}function Jee(){}function Zee(){}function ete(){}function tte(){}function nte(){}function rte(){}function ite(){}function ste(){}function ate(){}function s8(){}function Qj(){}function ote(){}function cte(){}function ute(){}function Jj(){}function lte(){}function TS(){}function hte(){}function fte(){}function dte(){}function gte(){}function pte(){}function bte(){}function mte(){}function vte(){}function wte(){}function yte(){}function a8(){}function xte(){}function kte(){}function Ete(){}function Tte(){}function Cte(){}function Ste(){}function _te(){}function Ate(){}function CS(){}function Lte(){}function Mte(){}function Dte(){}function Ite(){}function Ote(){}function Nte(){}function Pte(){}function Bte(){}function o8(){}function Zj(){}function Fte(){}function pI(){}function Rte(){}function jte(){}function $te(){}function zte(){}function qte(){}function Hte(){}function Vte(){}function e$(){}function Ute(){}function t$(){}function Gte(){}function n$(){}function r$(){}function i$(){}function Kte(){}function Wte(){}function s$(){}function Yte(){}function a$(){}function Xte(){}function Qte(){}function bI(){}function Jte(){}function Zte(){}function ene(){}function tne(){}function nne(){}function o$(){}function rne(){}function ine(){}function sne(){}function pwe(){}function ane(){}function one(){}function cne(){}function une(){}function lne(){}function hne(){}function fne(){}function dne(){}function gne(){}function pne(){}function bne(){}function mne(){}function vne(){}function wne(){}function yne(){}function xne(){}function fu(){}function kne(){}function SS(){}function Rc(){}function Pu(){}function hs(){}function mI(){}function Ene(){}function Tne(){}function Cne(){}function c8(){}function ym(){}function Q9(){}function Sne(){}function vI(){}function _ne(){}function Ane(){}function Lne(){}function c$(){}function Mne(){}function Dne(){}function wI(){}function Ine(){}function uh(){}function gl(){}function u$(){}function One(){}function Nne(){}function ey(){}function p5(){}function ty(){}function Rp(){}function u8(){}function yI(){}function l$(){}function h$(){}function Pne(){}function x1(){}function f$(){}function ny(){}function J9(){}function xI(){}function l8(){}function W2(){}function d$(){}function g$(){}function p$(){}function Bne(){}function h8(){}function ry(){}function jp(){}function Y2(){}function b5(){}function Z9(){}function _S(){}function kI(){}function Fne(){}function Rne(){}function b$(){}function m$(){}function Ut(){}function ek(){}function v$(){}function w$(){}function jne(){}function tk(){}function nk(){}function y$(){}function $ne(){}function zne(){}function qne(){}function Hne(){}function Vne(){}function Une(){}function EI(){}function Gne(){}function Kne(){}function x$(){}function AS(){}function Wne(){}function TI(){}function rk(){}function ik(){}function sk(){}function k$(){}function Yne(){}function E$(){}function T$(){}function Xne(){}function LS(){}function X2(){}function C$(){}function S$(){}function MS(){}function Qne(){}function m5(){}function _$(){}function CI(){}function Qc(){}function SI(){}function _I(){}function DS(){}function Jne(){}function Zne(){}function IS(){}function ere(){}function OS(){}function NS(){}function H0(){}function AI(){}function LI(){}function f8(){}function tre(){}function nre(){}function rre(){}function ire(){}function Xd(){}function PS(){}function d8(){}function k1(){}function A$(){}function L$(){}function M$(){}function D$(){}function I$(){}function O$(){}function V0(){}function nl(){}function sre(){}function are(){}function ore(){}function rl(){}function BS(){}function N$(){}function P$(){}function g8(){}function cre(){}function ak(){}function ure(){}function B$(){}function lre(){}function hre(){}function FS(){}function F$(){}function MI(){}function RS(){}function fre(){}function dre(){}function DI(){}function jS(){}function E1(){}function ok(){}function gre(){}function ck(){}function II(){}function xm(){}function $S(){}function OI(){}function U0(){}function zS(){}function T1(){}function C1(){}function pre(){}function bre(){}function v5(){}function uk(){}function lk(){}function qS(){}function mre(){}function vre(){}function p8(){}function R$(){}function j$(){}function wre(){}function $$(){}function yre(){}function z$(){}function NI(){}function xre(){}function HS(){}function kre(){}function Ere(){}function Tre(){}function Cre(){}function Sre(){}function q$(){}function _re(){}function Are(){}function Lre(){}function H$(){}function Mre(){}function Dre(){}function VS(){}function Ire(){}function Ore(){}function Nre(){}function Pre(){}function Bre(){}function Fre(){}function V$(){}function Rre(){}function U$(){}function jre(){}function PI(){}function $re(){}function G$(){}function zre(){}function K$(){}function qre(){}function W$(){}function Y$(){}function X$(){}function BI(){}function w5(){}function US(){}function S1(){}function Q$(){}function hk(){}function FI(){}function J$(){}function km(){}function Z$(){}function GS(){o_()}function Hre(){iO()}function ez(){dU()}function tz(){Lce()}function nz(){IA()}function KS(){Xxe()}function WS(){b0()}function rz(){axe()}function iz(){VN()}function b8(){sO()}function Kv(){OO()}function fk(){het()}function sz(){lx()}function Vre(){$ut()}function az(){s7e()}function m8(){Aot()}function RI(){a7e()}function oz(){mlt()}function Ure(){_ot()}function cz(){TE()}function YS(){eft()}function XS(){Zht()}function jI(){Ect()}function Gre(){tft()}function Kre(){Cb()}function Wre(){eq()}function Yre(){Yke()}function Xre(){Nt()}function Qre(){nft()}function Jre(){Lft()}function Zre(){Lot()}function eie(){egt()}function tie(){Mot()}function nie(){gmt()}function rie(){_9e()}function iie(){tp()}function sie(){p1t()}function v8(){Hc()}function aie(){jot()}function dk(){ux()}function Cf(){uke()}function oie(){Sb()}function gk(){lke()}function QS(){z1()}function cie(){YN()}function uie(){tle()}function lie(){lue()}function Sf(){pit()}function hie(){ZH()}function fie(){wU()}function uz(){pi()}function die(){PV()}function lz(){B8e()}function hz(){lce()}function fz(){zU()}function dz(){xke()}function n0(e){nr(e)}function gz(e){this.a=e}function JS(e){this.a=e}function pz(e){this.a=e}function bz(e){this.a=e}function gie(e){this.a=e}function pie(e){this.a=e}function mz(e){this.a=e}function bie(e){this.a=e}function vz(e){this.a=e}function Q2(e){this.a=e}function mie(e){this.a=e}function vie(e){this.a=e}function $I(e){this.a=e}function wie(e){this.a=e}function yie(e){this.a=e}function pk(e){this.a=e}function J2(e){this.a=e}function wz(e){this.a=e}function bk(e){this.a=e}function y5(e){this.a=e}function zI(e){this.a=e}function w8(e){this.a=e}function qI(e){this.b=e}function qg(e){this.c=e}function xie(e){this.a=e}function iy(e){this.a=e}function yz(e){this.a=e}function xz(e){this.a=e}function HI(e){this.a=e}function VI(e){this.a=e}function kz(e){this.a=e}function y8(e){this.a=e}function mk(e){this.a=e}function kie(e){this.a=e}function Ez(e){this.a=e}function Tz(e){this.a=e}function Cz(e){this.a=e}function Sz(e){this.a=e}function jc(e){this.a=e}function vk(e){this.a=e}function wk(e){this.a=e}function $p(){this.a=[]}function Eie(e,t){e.a=t}function Tie(e,t){e.a=t}function Cie(e,t){e.b=t}function Sie(e,t){e.b=t}function _ie(e,t){e.b=t}function _z(e,t){e.j=t}function bwe(e,t){e.g=t}function Az(e,t){e.i=t}function Aie(e,t){e.c=t}function x8(e,t){e.c=t}function mwe(e,t){e.d=t}function k8(e,t){e.d=t}function x(e,t){e.k=t}function m(e,t){e.c=t}function k(e,t){e.c=t}function S(e,t){e.a=t}function M(e,t){e.a=t}function O(e,t){e.f=t}function N(e,t){e.a=t}function $(e,t){e.b=t}function H(e,t){e.d=t}function q(e,t){e.i=t}function Y(e,t){e.o=t}function Z(e,t){e.r=t}function ce(e,t){e.a=t}function ve(e,t){e.b=t}function me(e,t){e.e=t}function Le(e,t){e.f=t}function _e(e,t){e.g=t}function Ee(e,t){e.e=t}function Be(e,t){e.f=t}function Re(e,t){e.f=t}function Ve(e,t){e.a=t}function ct(e,t){e.b=t}function st(e,t){e.n=t}function Ye(e,t){e.a=t}function mt(e,t){e.c=t}function Je(e,t){e.c=t}function Lt(e,t){e.c=t}function Mt(e,t){e.a=t}function ut(e,t){e.a=t}function Wt(e,t){e.d=t}function Tt(e,t){e.d=t}function _n(e,t){e.e=t}function hn(e,t){e.e=t}function Yt(e,t){e.g=t}function Dn(e,t){e.f=t}function ir(e,t){e.j=t}function vr(e,t){e.a=t}function Nn(e,t){e.a=t}function pr(e,t){e.b=t}function Er(e){e.b=e.a}function Mr(e){e.c=e.d.d}function Cr(e){this.a=e}function Or(e){this.a=e}function Wn(e){this.a=e}function br(e){this.a=e}function Sr(e){this.a=e}function Nr(e){this.a=e}function Si(e){this.a=e}function ys(e){this.a=e}function pa(e){this.a=e}function Mi(e){this.a=e}function gi(e){this.a=e}function fs(e){this.a=e}function Fs(e){this.a=e}function xs(e){this.a=e}function Rs(e){this.b=e}function yo(e){this.b=e}function $a(e){this.b=e}function Da(e){this.a=e}function Bo(e){this.a=e}function tr(e){this.c=e}function G(e){this.c=e}function Jn(e){this.c=e}function kr(e){this.d=e}function lr(e){this.a=e}function Vt(e){this.a=e}function Hs(e){this.a=e}function wr(e){this.a=e}function Es(e){this.a=e}function go(e){this.a=e}function $c(e){this.a=e}function za(e){this.a=e}function Sc(e){this.a=e}function ba(e){this.a=e}function xo(e){this.a=e}function lh(e){this.a=e}function Wl(e){this.a=e}function Z2(e){this.a=e}function eb(e){this.a=e}function G0(e){this.a=e}function zp(e){this.a=e}function fd(e){this.a=e}function Wv(e){this.a=e}function sy(e){this.a=e}function E8(e){this.a=e}function x5(e){this.a=e}function T8(e){this.a=e}function ZS(e){this.a=e}function k5(e){this.a=e}function Qd(e){this.a=e}function _1(e){this.a=e}function Jd(e){this.a=e}function Yv(e){this.a=e}function Em(e){this.a=e}function Lz(e){this.a=e}function Lie(e){this.a=e}function Mie(e){this.a=e}function e_(e){this.a=e}function Die(e){this.a=e}function Iie(e){this.a=e}function E5(e){this.a=e}function Mz(e){this.a=e}function yk(e){this.a=e}function UI(e){this.a=e}function t_(e){this.a=e}function Dz(e){this.a=e}function Iz(e){this.a=e}function Oie(e){this.a=e}function qp(e){this.a=e}function n_(e){this.a=e}function GI(e){this.a=e}function Tm(e){this.a=e}function Zd(e){this.e=e}function T5(e){this.a=e}function jWe(e){this.a=e}function C8(e){this.a=e}function vwe(e){this.a=e}function $We(e){this.a=e}function zWe(e){this.a=e}function qWe(e){this.a=e}function HWe(e){this.a=e}function VWe(e){this.a=e}function UWe(e){this.a=e}function GWe(e){this.a=e}function KWe(e){this.a=e}function WWe(e){this.a=e}function YWe(e){this.a=e}function XWe(e){this.a=e}function wwe(e){this.a=e}function QWe(e){this.a=e}function JWe(e){this.a=e}function ZWe(e){this.a=e}function eYe(e){this.a=e}function tYe(e){this.a=e}function nYe(e){this.a=e}function rYe(e){this.a=e}function iYe(e){this.a=e}function sYe(e){this.a=e}function aYe(e){this.a=e}function oYe(e){this.a=e}function cYe(e){this.a=e}function uYe(e){this.a=e}function lYe(e){this.a=e}function hYe(e){this.a=e}function fYe(e){this.a=e}function dYe(e){this.a=e}function gYe(e){this.a=e}function pYe(e){this.a=e}function bYe(e){this.a=e}function mYe(e){this.a=e}function vYe(e){this.a=e}function wYe(e){this.a=e}function yYe(e){this.a=e}function xYe(e){this.a=e}function kYe(e){this.a=e}function EYe(e){this.a=e}function TYe(e){this.a=e}function CYe(e){this.a=e}function SYe(e){this.a=e}function _Ye(e){this.a=e}function AYe(e){this.a=e}function LYe(e){this.a=e}function MYe(e){this.a=e}function DYe(e){this.a=e}function IYe(e){this.a=e}function OYe(e){this.a=e}function NYe(e){this.a=e}function PYe(e){this.c=e}function BYe(e){this.b=e}function FYe(e){this.a=e}function RYe(e){this.a=e}function jYe(e){this.a=e}function $Ye(e){this.a=e}function zYe(e){this.a=e}function qYe(e){this.a=e}function HYe(e){this.a=e}function VYe(e){this.a=e}function UYe(e){this.a=e}function GYe(e){this.a=e}function KYe(e){this.a=e}function WYe(e){this.a=e}function YYe(e){this.a=e}function XYe(e){this.a=e}function QYe(e){this.a=e}function JYe(e){this.a=e}function ZYe(e){this.a=e}function eXe(e){this.a=e}function tXe(e){this.a=e}function nXe(e){this.a=e}function rXe(e){this.a=e}function iXe(e){this.a=e}function sXe(e){this.a=e}function aXe(e){this.a=e}function oXe(e){this.a=e}function cXe(e){this.a=e}function uXe(e){this.a=e}function Hg(e){this.a=e}function C5(e){this.a=e}function lXe(e){this.a=e}function hXe(e){this.a=e}function fXe(e){this.a=e}function dXe(e){this.a=e}function gXe(e){this.a=e}function pXe(e){this.a=e}function bXe(e){this.a=e}function mXe(e){this.a=e}function vXe(e){this.a=e}function wXe(e){this.a=e}function yXe(e){this.a=e}function xXe(e){this.a=e}function kXe(e){this.a=e}function EXe(e){this.a=e}function TXe(e){this.a=e}function CXe(e){this.a=e}function SXe(e){this.a=e}function _Xe(e){this.a=e}function AXe(e){this.a=e}function LXe(e){this.a=e}function MXe(e){this.a=e}function DXe(e){this.a=e}function IXe(e){this.a=e}function OXe(e){this.a=e}function NXe(e){this.a=e}function PXe(e){this.a=e}function Oz(e){this.a=e}function BXe(e){this.f=e}function FXe(e){this.a=e}function RXe(e){this.a=e}function jXe(e){this.a=e}function $Xe(e){this.a=e}function zXe(e){this.a=e}function qXe(e){this.a=e}function HXe(e){this.a=e}function VXe(e){this.a=e}function UXe(e){this.a=e}function GXe(e){this.a=e}function KXe(e){this.a=e}function WXe(e){this.a=e}function YXe(e){this.a=e}function XXe(e){this.a=e}function QXe(e){this.a=e}function JXe(e){this.a=e}function ZXe(e){this.a=e}function eQe(e){this.a=e}function tQe(e){this.a=e}function nQe(e){this.a=e}function rQe(e){this.a=e}function iQe(e){this.a=e}function sQe(e){this.a=e}function aQe(e){this.a=e}function oQe(e){this.a=e}function cQe(e){this.a=e}function uQe(e){this.a=e}function lQe(e){this.a=e}function Nie(e){this.a=e}function ywe(e){this.a=e}function Ui(e){this.b=e}function hQe(e){this.a=e}function fQe(e){this.a=e}function dQe(e){this.a=e}function gQe(e){this.a=e}function pQe(e){this.a=e}function bQe(e){this.a=e}function mQe(e){this.a=e}function vQe(e){this.b=e}function wQe(e){this.a=e}function KI(e){this.a=e}function yQe(e){this.a=e}function xQe(e){this.a=e}function xwe(e){this.c=e}function Nz(e){this.e=e}function Pz(e){this.a=e}function Bz(e){this.a=e}function Pie(e){this.a=e}function kQe(e){this.d=e}function EQe(e){this.a=e}function kwe(e){this.a=e}function Ewe(e){this.a=e}function Xv(e){this.e=e}function Dcn(){this.a=0}function Pr(){Nl(this)}function bt(){Yse(this)}function Bie(){cat(this)}function TQe(){}function Qv(){this.c=LPe}function CQe(e,t){e.b+=t}function Icn(e,t){t.Wb(e)}function Ocn(e){return e.a}function Ncn(e){return e.a}function Pcn(e){return e.a}function Bcn(e){return e.a}function Fcn(e){return e.a}function ue(e){return e.e}function Rcn(){return null}function jcn(){return null}function $cn(){c3e(),wIn()}function zcn(e){e.b.Of(e.e)}function SQe(e){e.b=new nse}function r_(e,t){e.b=t-e.b}function i_(e,t){e.a=t-e.a}function $n(e,t){e.push(t)}function _Qe(e,t){e.sort(t)}function AQe(e,t){t.jd(e.a)}function qcn(e,t){la(t,e)}function Hcn(e,t,n){e.Yd(n,t)}function WI(e,t){e.e=t,t.b=e}function Twe(e){wd(),this.a=e}function LQe(e){wd(),this.a=e}function MQe(e){wd(),this.a=e}function Fie(e){ww(),this.a=e}function DQe(e){Xk(),S0e.le(e)}function Cwe(){Cwe=U,new Pr}function Cm(){Jnt.call(this)}function Swe(){Jnt.call(this)}function _we(){Cm.call(this)}function Rie(){Cm.call(this)}function IQe(){Cm.call(this)}function YI(){Cm.call(this)}function pl(){Cm.call(this)}function S8(){Cm.call(this)}function Qr(){Cm.call(this)}function Xh(){Cm.call(this)}function OQe(){Cm.call(this)}function _c(){Cm.call(this)}function NQe(){Cm.call(this)}function PQe(){this.a=this}function Fz(){this.Bb|=256}function BQe(){this.b=new Utt}function ay(e,t){e.length=t}function Rz(e,t){vt(e.a,t)}function Vcn(e,t){Jxe(e.c,t)}function Ucn(e,t){na(e.b,t)}function Gcn(e,t){oU(e.a,t)}function Kcn(e,t){Fce(e.a,t)}function xk(e,t){Ni(e.e,t)}function _8(e){EU(e.c,e.b)}function Wcn(e,t){e.kc().Nb(t)}function Awe(e){this.a=$4n(e)}function Ks(){this.a=new Pr}function FQe(){this.a=new Pr}function Lwe(){this.a=new net}function jz(){this.a=new bt}function jie(){this.a=new bt}function Mwe(){this.a=new bt}function _f(){this.a=new pm}function Sm(){this.a=new Nut}function Dwe(){this.a=new bm}function Iwe(){this.a=new Sot}function Owe(){this.a=new Rrt}function RQe(){this.a=new bt}function jQe(){this.a=new bt}function $Qe(){this.a=new bt}function Nwe(){this.a=new bt}function zQe(){this.d=new bt}function qQe(){this.a=new Got}function HQe(){this.a=new Ks}function VQe(){this.a=new Pr}function UQe(){this.b=new Pr}function GQe(){this.b=new bt}function Pwe(){this.e=new bt}function KQe(){this.a=new Kre}function WQe(){this.d=new bt}function YQe(){Qat.call(this)}function XQe(){Qat.call(this)}function QQe(){bt.call(this)}function Bwe(){_we.call(this)}function Fwe(){jz.call(this)}function JQe(){Vq.call(this)}function ZQe(){Nwe.call(this)}function s_(){TQe.call(this)}function $ie(){s_.call(this)}function A8(){TQe.call(this)}function Rwe(){A8.call(this)}function eJe(){qwe.call(this)}function tJe(){qwe.call(this)}function nJe(){qwe.call(this)}function rJe(){Hwe.call(this)}function a_(){Wne.call(this)}function jwe(){Wne.call(this)}function bl(){os.call(this)}function iJe(){wJe.call(this)}function sJe(){wJe.call(this)}function aJe(){Pr.call(this)}function oJe(){Pr.call(this)}function cJe(){Pr.call(this)}function zie(){sft.call(this)}function uJe(){Ks.call(this)}function lJe(){Fz.call(this)}function qie(){kye.call(this)}function $we(){Pr.call(this)}function Hie(){kye.call(this)}function Vie(){Pr.call(this)}function hJe(){Pr.call(this)}function zwe(){m5.call(this)}function fJe(){zwe.call(this)}function dJe(){m5.call(this)}function gJe(){J$.call(this)}function qwe(){this.a=new Ks}function pJe(){this.a=new Pr}function bJe(){this.a=new bt}function Hwe(){this.a=new Pr}function L8(){this.a=new os}function mJe(){this.j=new bt}function vJe(){this.a=new bZe}function wJe(){this.a=new Qne}function Vwe(){this.a=new hs}function o_(){o_=U,v0e=new _}function Uie(){Uie=U,w0e=new xJe}function Gie(){Gie=U,y0e=new yJe}function yJe(){pk.call(this,"")}function xJe(){pk.call(this,"")}function kJe(e){Aht.call(this,e)}function EJe(e){Aht.call(this,e)}function Uwe(e){vz.call(this,e)}function Gwe(e){UZe.call(this,e)}function Ycn(e){UZe.call(this,e)}function Xcn(e){Gwe.call(this,e)}function Qcn(e){Gwe.call(this,e)}function Jcn(e){Gwe.call(this,e)}function TJe(e){Toe.call(this,e)}function CJe(e){Toe.call(this,e)}function SJe(e){ait.call(this,e)}function _Je(e){p3e.call(this,e)}function c_(e){Xz.call(this,e)}function Kwe(e){Xz.call(this,e)}function AJe(e){Xz.call(this,e)}function Wwe(e){y9n.call(this,e)}function Ywe(e){Wwe.call(this,e)}function Ac(e){_st.call(this,e)}function LJe(e){Ac.call(this,e)}function M8(){wk.call(this,{})}function MJe(){MJe=U,d6t=new W}function $z(){$z=U,E0e=new Ant}function DJe(){DJe=U,USe=new T}function Xwe(){Xwe=U,GSe=new ae}function zz(){zz=U,NL=new de}function Kie(e){Ok(),this.a=e}function Wie(e){E7e(),this.a=e}function Jv(e){Iae(),this.f=e}function Yie(e){Iae(),this.f=e}function IJe(e){git(),this.a=e}function OJe(e){e.b=null,e.c=0}function Zcn(e,t){e.e=t,gbt(e,t)}function eun(e,t){e.a=t,okn(e)}function Xie(e,t,n){e.a[t.g]=n}function tun(e,t,n){k8n(n,e,t)}function nun(e,t){Qfn(t.i,e.n)}function NJe(e,t){xyn(e).Cd(t)}function run(e,t){e.a.ec().Mc(t)}function PJe(e,t){return e.g-t.g}function iun(e,t){return e*e/t}function Rt(e){return nr(e),e}function ze(e){return nr(e),e}function XI(e){return nr(e),e}function sun(e){return new vk(e)}function aun(e){return new yy(e)}function Qwe(e){return nr(e),e}function oun(e){return nr(e),e}function qz(e){Ac.call(this,e)}function tc(e){Ac.call(this,e)}function BJe(e){Ac.call(this,e)}function Qie(e){_st.call(this,e)}function kk(e){Ac.call(this,e)}function Yn(e){Ac.call(this,e)}function nc(e){Ac.call(this,e)}function FJe(e){Ac.call(this,e)}function D8(e){Ac.call(this,e)}function Hp(e){Ac.call(this,e)}function Vp(e){Ac.call(this,e)}function I8(e){Ac.call(this,e)}function dd(e){Ac.call(this,e)}function Jie(e){Ac.call(this,e)}function ri(e){Ac.call(this,e)}function Il(e){nr(e),this.a=e}function Jwe(e){return Um(e),e}function u_(e){l5e(e,e.length)}function l_(e){return e.b==e.c}function oy(e){return!!e&&e.b}function cun(e){return!!e&&e.k}function uun(e){return!!e&&e.j}function lun(e,t,n){e.c.Ef(t,n)}function RJe(e,t){e.be(t),t.ae(e)}function O8(e){wd(),this.a=Xr(e)}function Zie(){this.a=ei(Xr(Co))}function jJe(){throw ue(new Qr)}function hun(){throw ue(new Qr)}function Zwe(){throw ue(new Qr)}function $Je(){throw ue(new Qr)}function fun(){throw ue(new Qr)}function dun(){throw ue(new Qr)}function Hz(){Hz=U,Xk()}function Up(){Nr.call(this,"")}function h_(){Nr.call(this,"")}function tb(){Nr.call(this,"")}function S5(){Nr.call(this,"")}function e3e(e){tc.call(this,e)}function t3e(e){tc.call(this,e)}function gd(e){Yn.call(this,e)}function Ek(e){$a.call(this,e)}function zJe(e){Ek.call(this,e)}function ese(e){jq.call(this,e)}function tse(e){Nye.call(this,e,0)}function nse(){G5e.call(this,12,3)}function le(e,t){return yot(e,t)}function Vz(e,t){return joe(e,t)}function gun(e,t){return e.a-t.a}function pun(e,t){return e.a-t.a}function bun(e,t){return e.a-t.a}function mun(e,t){return t in e.a}function qJe(e){return e.a?e.b:0}function vun(e){return e.a?e.b:0}function wun(e,t,n){t.Cd(e.a[n])}function yun(e,t,n){t.Pe(e.a[n])}function xun(e,t){e.b=new Eo(t)}function kun(e,t){return e.b=t,e}function HJe(e,t){return e.c=t,e}function VJe(e,t){return e.f=t,e}function Eun(e,t){return e.g=t,e}function n3e(e,t){return e.a=t,e}function r3e(e,t){return e.f=t,e}function Tun(e,t){return e.k=t,e}function i3e(e,t){return e.a=t,e}function Cun(e,t){return e.e=t,e}function s3e(e,t){return e.e=t,e}function Sun(e,t){return e.f=t,e}function _un(e,t){e.b=!0,e.d=t}function Aun(e,t){return e.b-t.b}function Lun(e,t){return e.g-t.g}function Mun(e,t){return e?0:t-1}function UJe(e,t){return e?0:t-1}function Dun(e,t){return e?t-1:0}function Iun(e,t){return e.s-t.s}function Oun(e,t){return t.rg(e)}function Zv(e,t){return e.b=t,e}function Uz(e,t){return e.a=t,e}function ew(e,t){return e.c=t,e}function tw(e,t){return e.d=t,e}function nw(e,t){return e.e=t,e}function a3e(e,t){return e.f=t,e}function f_(e,t){return e.a=t,e}function Tk(e,t){return e.b=t,e}function Ck(e,t){return e.c=t,e}function Qt(e,t){return e.c=t,e}function yn(e,t){return e.b=t,e}function Jt(e,t){return e.d=t,e}function Zt(e,t){return e.e=t,e}function Nun(e,t){return e.f=t,e}function en(e,t){return e.g=t,e}function tn(e,t){return e.a=t,e}function nn(e,t){return e.i=t,e}function rn(e,t){return e.j=t,e}function Pun(e,t){Cb(),Mc(t,e)}function Bun(e,t,n){Jdn(e.a,t,n)}function Gz(e){dae.call(this,e)}function GJe(e){t5n.call(this,e)}function KJe(e){Aat.call(this,e)}function o3e(e){Aat.call(this,e)}function nb(e){Lw.call(this,e)}function WJe(e){noe.call(this,e)}function YJe(e){noe.call(this,e)}function XJe(){bye.call(this,"")}function qa(){this.a=0,this.b=0}function QJe(){this.b=0,this.a=0}function JJe(e,t){e.b=0,My(e,t)}function ZJe(e,t){return e.k=t,e}function Fun(e,t){return e.j=t,e}function Run(e,t){e.c=t,e.b=!0}function eZe(){eZe=U,S6t=Y8n()}function rb(){rb=U,w_t=a8n()}function tZe(){tZe=U,La=vxn()}function c3e(){c3e=U,Qb=hE()}function Sk(){Sk=U,APe=o8n()}function nZe(){nZe=U,rAt=c8n()}function u3e(){u3e=U,tu=ikn()}function K0(e){return e.e&&e.e()}function rZe(e){return e.l|e.m<<22}function iZe(e,t){return e.c._b(t)}function sZe(e,t){return i1t(e.b,t)}function rse(e){return e?e.d:null}function jun(e){return e?e.g:null}function $un(e){return e?e.i:null}function _m(e){return Gg(e),e.o}function _5(e,t){return e.a+=t,e}function ise(e,t){return e.a+=t,e}function Gp(e,t){return e.a+=t,e}function rw(e,t){return e.a+=t,e}function l3e(e,t){for(;e.Bd(t););}function Kz(e){this.a=new N8(e)}function aZe(){throw ue(new Qr)}function oZe(){throw ue(new Qr)}function cZe(){throw ue(new Qr)}function uZe(){throw ue(new Qr)}function lZe(){throw ue(new Qr)}function hZe(){throw ue(new Qr)}function Kp(e){this.a=new Pae(e)}function fZe(){this.a=new UA(EIe)}function dZe(){this.b=new UA(qDe)}function gZe(){this.a=new UA(KIe)}function pZe(){this.b=new UA(pge)}function bZe(){this.b=new UA(pge)}function Wz(e){this.a=0,this.b=e}function h3e(e){Gvt(),IIn(this,e)}function _k(e){return fb(e),e.a}function QI(e){return e.b!=e.d.c}function f3e(e,t){return e.d[t.p]}function mZe(e,t){return YCn(e,t)}function d3e(e,t,n){e.splice(t,n)}function A5(e,t){for(;e.Re(t););}function vZe(e){e.c?Ibt(e):Obt(e)}function wZe(){throw ue(new Qr)}function yZe(){throw ue(new Qr)}function xZe(){throw ue(new Qr)}function kZe(){throw ue(new Qr)}function EZe(){throw ue(new Qr)}function TZe(){throw ue(new Qr)}function CZe(){throw ue(new Qr)}function SZe(){throw ue(new Qr)}function _Ze(){throw ue(new Qr)}function AZe(){throw ue(new Qr)}function zun(){throw ue(new _c)}function qun(){throw ue(new _c)}function JI(e){this.a=new LZe(e)}function LZe(e){Gwn(this,e,T9n())}function ZI(e){return!e||oat(e)}function eO(e){return nd[e]!=-1}function Hun(){aK!=0&&(aK=0),oK=-1}function MZe(){m0e==null&&(m0e=[])}function tO(e,t){q5.call(this,e,t)}function Ak(e,t){tO.call(this,e,t)}function DZe(e,t){this.a=e,this.b=t}function IZe(e,t){this.a=e,this.b=t}function OZe(e,t){this.a=e,this.b=t}function NZe(e,t){this.a=e,this.b=t}function PZe(e,t){this.a=e,this.b=t}function BZe(e,t){this.a=e,this.b=t}function FZe(e,t){this.a=e,this.b=t}function Lk(e,t){this.e=e,this.d=t}function g3e(e,t){this.b=e,this.c=t}function RZe(e,t){this.b=e,this.a=t}function jZe(e,t){this.b=e,this.a=t}function $Ze(e,t){this.b=e,this.a=t}function zZe(e,t){this.b=e,this.a=t}function qZe(e,t){this.a=e,this.b=t}function sse(e,t){this.a=e,this.b=t}function HZe(e,t){this.a=e,this.f=t}function iw(e,t){this.g=e,this.i=t}function Ur(e,t){this.f=e,this.g=t}function VZe(e,t){this.b=e,this.c=t}function UZe(e){Tye(e.dc()),this.c=e}function Vun(e,t){this.a=e,this.b=t}function GZe(e,t){this.a=e,this.b=t}function KZe(e){this.a=l(Xr(e),15)}function p3e(e){this.a=l(Xr(e),15)}function WZe(e){this.a=l(Xr(e),85)}function Yz(e){this.b=l(Xr(e),85)}function Xz(e){this.b=l(Xr(e),51)}function Qz(){this.q=new b.Date}function ase(e,t){this.a=e,this.b=t}function YZe(e,t){return Hu(e.b,t)}function nO(e,t){return e.b.Hc(t)}function XZe(e,t){return e.b.Ic(t)}function QZe(e,t){return e.b.Qc(t)}function JZe(e,t){return e.b.Hc(t)}function ZZe(e,t){return e.c.uc(t)}function eet(e,t){return Pi(e.c,t)}function W0(e,t){return e.a._b(t)}function tet(e,t){return e>t&&t0}function fse(e,t){return iu(e,t)<0}function vet(e,t){return Aae(e.a,t)}function uln(e,t){xot.call(this,e,t)}function k3e(e){Kae(),ait.call(this,e)}function E3e(e,t){gst(e,e.length,t)}function aO(e,t){qst(e,e.length,t)}function y_(e,t){return e.a.get(t)}function wet(e,t){return Hu(e.e,t)}function T3e(e){return nr(e),!1}function C3e(e){this.a=l(Xr(e),229)}function aq(e){kn.call(this,e,21)}function oq(e,t){Ur.call(this,e,t)}function dse(e,t){Ur.call(this,e,t)}function yet(e,t){this.b=e,this.a=t}function cq(e,t){this.d=e,this.e=t}function xet(e,t){this.a=e,this.b=t}function ket(e,t){this.a=e,this.b=t}function Eet(e,t){this.a=e,this.b=t}function Tet(e,t){this.a=e,this.b=t}function B8(e,t){this.a=e,this.b=t}function Cet(e,t){this.b=e,this.a=t}function S3e(e,t){this.b=e,this.a=t}function _3e(e,t){Ur.call(this,e,t)}function A3e(e,t){Ur.call(this,e,t)}function L5(e,t){Ur.call(this,e,t)}function gse(e,t){Ur.call(this,e,t)}function pse(e,t){Ur.call(this,e,t)}function bse(e,t){Ur.call(this,e,t)}function uq(e,t){Ur.call(this,e,t)}function L3e(e,t){this.b=e,this.a=t}function lq(e,t){Ur.call(this,e,t)}function M3e(e,t){this.b=e,this.a=t}function hq(e,t){Ur.call(this,e,t)}function _et(e,t){this.b=e,this.a=t}function D3e(e,t){Ur.call(this,e,t)}function mse(e,t){Ur.call(this,e,t)}function oO(e,t){Ur.call(this,e,t)}function x_(e,t,n){e.splice(t,0,n)}function lln(e,t,n){e.Mb(n)&&t.Cd(n)}function hln(e,t,n){t.Pe(e.a.Ye(n))}function fln(e,t,n){t.Dd(e.a.Ze(n))}function dln(e,t,n){t.Cd(e.a.Kb(n))}function gln(e,t){return vl(e.c,t)}function pln(e,t){return vl(e.e,t)}function fq(e,t){Ur.call(this,e,t)}function dq(e,t){Ur.call(this,e,t)}function k_(e,t){Ur.call(this,e,t)}function I3e(e,t){Ur.call(this,e,t)}function Ws(e,t){Ur.call(this,e,t)}function gq(e,t){Ur.call(this,e,t)}function Aet(e,t){this.a=e,this.b=t}function Let(e,t){this.a=e,this.b=t}function Met(e,t){this.a=e,this.b=t}function Det(e,t){this.a=e,this.b=t}function Iet(e,t){this.a=e,this.b=t}function Oet(e,t){this.a=e,this.b=t}function Net(e,t){this.b=e,this.a=t}function Pet(e,t){this.b=e,this.a=t}function O3e(e,t){this.b=e,this.a=t}function Ik(e,t){this.c=e,this.d=t}function Bet(e,t){this.e=e,this.d=t}function Fet(e,t){this.a=e,this.b=t}function Ret(e,t){this.a=e,this.b=t}function jet(e,t){this.a=e,this.b=t}function $et(e,t){this.b=e,this.a=t}function zet(e,t){this.b=t,this.c=e}function pq(e,t){Ur.call(this,e,t)}function cO(e,t){Ur.call(this,e,t)}function vse(e,t){Ur.call(this,e,t)}function N3e(e,t){Ur.call(this,e,t)}function E_(e,t){Ur.call(this,e,t)}function wse(e,t){Ur.call(this,e,t)}function yse(e,t){Ur.call(this,e,t)}function uO(e,t){Ur.call(this,e,t)}function P3e(e,t){Ur.call(this,e,t)}function xse(e,t){Ur.call(this,e,t)}function T_(e,t){Ur.call(this,e,t)}function B3e(e,t){Ur.call(this,e,t)}function C_(e,t){Ur.call(this,e,t)}function S_(e,t){Ur.call(this,e,t)}function uy(e,t){Ur.call(this,e,t)}function kse(e,t){Ur.call(this,e,t)}function Ese(e,t){Ur.call(this,e,t)}function F3e(e,t){Ur.call(this,e,t)}function lO(e,t){Ur.call(this,e,t)}function M5(e,t){Ur.call(this,e,t)}function Tse(e,t){Ur.call(this,e,t)}function bq(e,t){Ur.call(this,e,t)}function hO(e,t){Ur.call(this,e,t)}function ly(e,t){Ur.call(this,e,t)}function mq(e,t){Ur.call(this,e,t)}function R3e(e,t){Ur.call(this,e,t)}function Cse(e,t){Ur.call(this,e,t)}function Sse(e,t){Ur.call(this,e,t)}function _se(e,t){Ur.call(this,e,t)}function Ase(e,t){Ur.call(this,e,t)}function Lse(e,t){Ur.call(this,e,t)}function Mse(e,t){Ur.call(this,e,t)}function Dse(e,t){Ur.call(this,e,t)}function qet(e,t){this.b=e,this.a=t}function j3e(e,t){Ur.call(this,e,t)}function Het(e,t){this.a=e,this.b=t}function Vet(e,t){this.a=e,this.b=t}function Uet(e,t){this.a=e,this.b=t}function $3e(e,t){Ur.call(this,e,t)}function z3e(e,t){Ur.call(this,e,t)}function Get(e,t){this.a=e,this.b=t}function bln(e,t){return jk(),t!=e}function fO(e){return mr(e.a),e.b}function Ise(e){return EEn(e,e.c),e}function Ket(){return eZe(),new S6t}function Wet(){Yq(),this.a=new i4e}function Yet(){IU(),this.a=new Ks}function Xet(){foe(),this.b=new Ks}function Qet(e,t){this.b=e,this.d=t}function Jet(e,t){this.a=e,this.b=t}function Zet(e,t){this.a=e,this.b=t}function ett(e,t){this.a=e,this.b=t}function ttt(e,t){this.b=e,this.a=t}function q3e(e,t){Ur.call(this,e,t)}function H3e(e,t){Ur.call(this,e,t)}function vq(e,t){Ur.call(this,e,t)}function ow(e,t){Ur.call(this,e,t)}function Ose(e,t){Ur.call(this,e,t)}function wq(e,t){Ur.call(this,e,t)}function V3e(e,t){Ur.call(this,e,t)}function U3e(e,t){Ur.call(this,e,t)}function dO(e,t){Ur.call(this,e,t)}function G3e(e,t){Ur.call(this,e,t)}function Nse(e,t){Ur.call(this,e,t)}function yq(e,t){Ur.call(this,e,t)}function Pse(e,t){Ur.call(this,e,t)}function Bse(e,t){Ur.call(this,e,t)}function Fse(e,t){Ur.call(this,e,t)}function Rse(e,t){Ur.call(this,e,t)}function K3e(e,t){Ur.call(this,e,t)}function jse(e,t){Ur.call(this,e,t)}function W3e(e,t){Ur.call(this,e,t)}function gO(e,t){Ur.call(this,e,t)}function $se(e,t){Ur.call(this,e,t)}function Y3e(e,t){Ur.call(this,e,t)}function pO(e,t){Ur.call(this,e,t)}function X3e(e,t){Ur.call(this,e,t)}function ntt(e,t){this.b=e,this.a=t}function rtt(e,t){this.b=e,this.a=t}function itt(e,t){this.b=e,this.a=t}function stt(e,t){this.b=e,this.a=t}function Q3e(e,t){this.a=e,this.b=t}function att(e,t){this.a=e,this.b=t}function ott(e,t){this.a=e,this.b=t}function lt(e,t){this.a=e,this.b=t}function __(e,t){Ur.call(this,e,t)}function bO(e,t){Ur.call(this,e,t)}function F8(e,t){Ur.call(this,e,t)}function A_(e,t){Ur.call(this,e,t)}function mO(e,t){Ur.call(this,e,t)}function zse(e,t){Ur.call(this,e,t)}function xq(e,t){Ur.call(this,e,t)}function L_(e,t){Ur.call(this,e,t)}function qse(e,t){Ur.call(this,e,t)}function kq(e,t){Ur.call(this,e,t)}function D5(e,t){Ur.call(this,e,t)}function vO(e,t){Ur.call(this,e,t)}function M_(e,t){Ur.call(this,e,t)}function D_(e,t){Ur.call(this,e,t)}function wO(e,t){Ur.call(this,e,t)}function Eq(e,t){Ur.call(this,e,t)}function I5(e,t){Ur.call(this,e,t)}function Hse(e,t){Ur.call(this,e,t)}function ctt(e,t){Ur.call(this,e,t)}function Tq(e,t){Ur.call(this,e,t)}function utt(e,t){this.a=e,this.b=t}function ltt(e,t){this.a=e,this.b=t}function htt(e,t){this.a=e,this.b=t}function ftt(e,t){this.a=e,this.b=t}function dtt(e,t){this.a=e,this.b=t}function gtt(e,t){this.a=e,this.b=t}function ca(e,t){this.a=e,this.b=t}function ptt(e,t){this.a=e,this.b=t}function btt(e,t){this.a=e,this.b=t}function mtt(e,t){this.a=e,this.b=t}function vtt(e,t){this.a=e,this.b=t}function wtt(e,t){this.a=e,this.b=t}function ytt(e,t){this.a=e,this.b=t}function xtt(e,t){this.b=e,this.a=t}function ktt(e,t){this.b=e,this.a=t}function Ett(e,t){this.b=e,this.a=t}function Ttt(e,t){this.b=e,this.a=t}function Ctt(e,t){this.a=e,this.b=t}function Stt(e,t){this.a=e,this.b=t}function Cq(e,t){Ur.call(this,e,t)}function _tt(e,t){this.a=e,this.b=t}function Att(e,t){this.a=e,this.b=t}function R8(e,t){Ur.call(this,e,t)}function Ltt(e,t){this.f=e,this.c=t}function J3e(e,t){return vl(e.g,t)}function mln(e,t){return vl(t.b,e)}function Mtt(e,t){return Kce(e.a,t)}function vln(e,t){return-e.b.af(t)}function wln(e,t){e&&ki(lF,e,t)}function Z3e(e,t){e.i=null,xV(e,t)}function yln(e,t,n){xgt(t,jue(e,n))}function xln(e,t,n){xgt(t,jue(e,n))}function kln(e,t){XTn(e.a,l(t,58))}function Dtt(e,t){Gvn(e.a,l(t,12))}function Sq(e,t){this.a=e,this.b=t}function Itt(e,t){this.a=e,this.b=t}function Ott(e,t){this.a=e,this.b=t}function Ntt(e,t){this.a=e,this.b=t}function Ptt(e,t){this.a=e,this.b=t}function Btt(e,t){this.d=e,this.b=t}function Ftt(e,t){this.e=e,this.a=t}function yO(e,t){this.b=e,this.c=t}function eye(e,t){this.i=e,this.g=t}function tye(e,t){this.d=e,this.e=t}function Eln(e,t){own(new or(e),t)}function _q(e){return FN(e.c,e.b)}function hc(e){return e?e.md():null}function qe(e){return e??null}function Ia(e){return typeof e===Ile}function hy(e){return typeof e===Cx}function fy(e){return typeof e===Qke}function cw(e,t){return iu(e,t)==0}function Aq(e,t){return iu(e,t)>=0}function I_(e,t){return iu(e,t)!=0}function Lq(e,t){return T3n(e.Kc(),t)}function ab(e,t){return e.Rd().Xb(t)}function Rtt(e){return Ql(e),e.d.gc()}function Mq(e){return V_(e==null),e}function O_(e,t){return e.a+=""+t,e}function Xo(e,t){return e.a+=""+t,e}function N_(e,t){return e.a+=""+t,e}function wu(e,t){return e.a+=""+t,e}function hi(e,t){return e.a+=""+t,e}function nye(e,t){return e.a+=""+t,e}function Tln(e){return""+(nr(e),e)}function jtt(e){Nl(this),bA(this,e)}function $tt(){U5e(),Q4e.call(this)}function ztt(e,t){n5e.call(this,e,t)}function qtt(e,t){n5e.call(this,e,t)}function Dq(e,t){n5e.call(this,e,t)}function ko(e,t){Cs(e,t,e.c.b,e.c)}function O5(e,t){Cs(e,t,e.a,e.a.a)}function rye(e){return Sn(e,0),null}function Htt(){this.b=0,this.a=!1}function Vtt(){this.b=0,this.a=!1}function Utt(){this.b=new N8(Ay(12))}function Gtt(){Gtt=U,y7t=Kr(eue())}function Ktt(){Ktt=U,q8t=Kr(rbt())}function Wtt(){Wtt=U,hTt=Kr(Bft())}function iye(){iye=U,Cwe(),KSe=new Pr}function Y0(e){return e.a=0,e.b=0,e}function Ytt(e,t){return e.a=t.g+1,e}function Vse(e,t){my.call(this,e,t)}function pn(e,t){vs.call(this,e,t)}function N5(e,t){eye.call(this,e,t)}function Xtt(e,t){TO.call(this,e,t)}function Use(e,t){mE.call(this,e,t)}function wi(e,t){iq(),ki(kY,e,t)}function Qtt(e,t){e.q.setTime(Fm(t))}function Cln(e){b.clearTimeout(e)}function Sln(e){return Xr(e),new P_(e)}function Jtt(e,t){return qe(e)===qe(t)}function Ztt(e,t){return e.a.a.a.cc(t)}function Gse(e,t){return tf(e.a,0,t)}function sye(e){return Lgn(l(e,74))}function j8(e){return ua((nr(e),e))}function _ln(e){return ua((nr(e),e))}function ent(e){return qu(e.l,e.m,e.h)}function aye(e,t){return ru(e.a,t.a)}function Aln(e,t){return $st(e.a,t.a)}function Lln(e,t){return Yi(e.a,t.a)}function pd(e,t){return e.indexOf(t)}function Mln(e,t){return e.j[t.p]==2}function uw(e,t){return e==t?0:e?1:-1}function Iq(e){return e<10?"0"+e:""+e}function wc(e){return typeof e===Qke}function Dln(e){return e==s3||e==o4}function Iln(e){return e==s3||e==a4}function tnt(e,t){return ru(e.g,t.g)}function oye(e){return gc(e.b.b,e,0)}function nnt(){sH.call(this,0,0,0,0)}function bd(){wr.call(this,new e2)}function cye(e,t){nE(e,0,e.length,t)}function Oln(e,t){return vt(e.a,t),t}function Nln(e,t){return u0(),t.a+=e}function Pln(e,t){return u0(),t.a+=e}function Bln(e,t){return u0(),t.c+=e}function Fln(e,t){return vt(e.c,t),e}function uye(e,t){return Dh(e.a,t),e}function rnt(e){this.a=Ket(),this.b=e}function int(e){this.a=Ket(),this.b=e}function Eo(e){this.a=e.a,this.b=e.b}function P_(e){this.a=e,GS.call(this)}function snt(e){this.a=e,GS.call(this)}function $8(){ef.call(this,0,0,0,0)}function Oq(e){return Dh(new Xs,e)}function ant(e){return EH(l(e,123))}function hh(e){return e.vh()&&e.wh()}function P5(e){return e!=Z1&&e!=Wb}function Ug(e){return e==uc||e==vc}function B5(e){return e==wf||e==Q1}function ont(e){return e==G6||e==U6}function Rln(e,t){return ru(e.g,t.g)}function cnt(e,t){return new mE(t,e)}function jln(e,t){return new mE(t,e)}function lye(e){return adn(e.b.Kc(),e.a)}function Kse(e,t){CE(e,t),lE(e,e.D)}function Wse(e,t,n){dV(e,t),fV(e,n)}function F5(e,t,n){Dw(e,t),Mw(e,n)}function Qh(e,t,n){Uu(e,t),Gu(e,n)}function xO(e,t,n){aE(e,t),cE(e,n)}function kO(e,t,n){oE(e,t),uE(e,n)}function unt(e,t,n){Gye.call(this,e,t,n)}function hye(e){Ltt.call(this,e,!0)}function lnt(){oq.call(this,"Tail",3)}function hnt(){oq.call(this,"Head",1)}function ob(e){Cd(),y3n.call(this,e)}function lw(e){sH.call(this,e,e,e,e)}function Yse(e){e.c=We(wa,Rn,1,0,5,1)}function fye(e){return e.b&&gle(e),e.a}function dye(e){return e.b&&gle(e),e.c}function $ln(e,t){G1||(e.b=t)}function zln(e,t){return e[e.length]=t}function qln(e,t){return e[e.length]=t}function Hln(e,t){return Ly(t,M1(e))}function Vln(e,t){return Ly(t,M1(e))}function Uln(e,t){return vV(Uae(e.d),t)}function Gln(e,t){return vV(Uae(e.g),t)}function Kln(e,t){return vV(Uae(e.j),t)}function Ha(e,t){vs.call(this,e.b,t)}function Wln(e,t){qr(du(e.a),Iot(t))}function Yln(e,t){qr(Xl(e.a),Oot(t))}function Xln(e,t,n){Qh(n,n.i+e,n.j+t)}function fnt(e,t,n){Ts(e.c[t.g],t.g,n)}function Qln(e,t,n){l(e.c,71).Gi(t,n)}function Xse(e,t,n){return Ts(e,t,n),n}function dnt(e){Vu(e.Sf(),new Mie(e))}function R5(e){return e!=null?es(e):0}function Jln(e){return e==null?0:es(e)}function B_(e){Di(),Xv.call(this,e)}function gnt(e){this.a=e,_4e.call(this,e)}function A1(){A1=U,b.Math.log(2)}function Jh(){Jh=U,Sg=(bet(),C_t)}function pnt(){pnt=U,Mde=new LA(Vge)}function Jr(){Jr=U,new bnt,new bt}function bnt(){new Pr,new Pr,new Pr}function Zln(){throw ue(new Hp(Q5t))}function ehn(){throw ue(new Hp(Q5t))}function thn(){throw ue(new Hp(J5t))}function nhn(){throw ue(new Hp(J5t))}function Qse(e){this.a=e,Yz.call(this,e)}function Jse(e){this.a=e,Yz.call(this,e)}function mnt(e,t){ww(),this.a=e,this.b=t}function rhn(e,t){Xr(t),V5(e).Jc(new ie)}function Vs(e,t){Lae(e.c,e.c.length,t)}function Lc(e){return e.at?1:0}function pye(e,t){return iu(e,t)>0?e:t}function qu(e,t,n){return{l:e,m:t,h:n}}function ihn(e,t){e.a!=null&&Dtt(t,e.a)}function shn(e){po(e,null),Fa(e,null)}function ahn(e,t,n){return ki(e.g,n,t)}function j5(e,t,n){return R8e(t,n,e.c)}function ohn(e,t,n){return ki(e.k,n,t)}function chn(e,t,n){return KMn(e,t,n),n}function uhn(e,t){return Sh(),t.n.b+=e}function wnt(e){R5e.call(this),this.b=e}function bye(e){r4e.call(this),this.a=e}function ynt(){oq.call(this,"Range",2)}function Nq(e){this.b=e,this.a=new bt}function xnt(e){this.b=new Nu,this.a=e}function knt(e){e.a=new _t,e.c=new _t}function Ent(e){e.a=new Pr,e.d=new Pr}function Tnt(e){doe(e,null),goe(e,null)}function Cnt(e,t){return YMn(e.a,t,null)}function lhn(e,t){return ki(e.a,t.a,t)}function Ja(e){return new lt(e.a,e.b)}function mye(e){return new lt(e.c,e.d)}function hhn(e){return new lt(e.c,e.d)}function F_(e,t){return oMn(e.c,e.b,t)}function De(e,t){return e!=null&&iue(e,t)}function Zse(e,t){return eyn(e.Kc(),t)!=-1}function Pq(e){return e.Ob()?e.Pb():null}function fhn(e){this.b=(Cn(),new tr(e))}function vye(e){this.a=e,Pr.call(this)}function Snt(){TO.call(this,null,null)}function _nt(){qq.call(this,null,null)}function Ant(){Ur.call(this,"INSTANCE",0)}function Lnt(){mxe(),this.a=new UA(gAe)}function Mnt(e){return If(e,0,e.length)}function dhn(e,t){return new Wnt(e.Kc(),t)}function wye(e,t){return e.a.Bc(t)!=null}function Dnt(e,t){$r(e),e.Gc(l(t,15))}function ghn(e,t,n){e.c.bd(t,l(n,136))}function phn(e,t,n){e.c.Ui(t,l(n,136))}function Int(e,t){e.c&&($4e(t),iot(t))}function bhn(e,t){e.q.setHours(t),XA(e,t)}function mhn(e,t){dw(t,e.a.a.a,e.a.a.b)}function vhn(e,t,n,r){Ts(e.a[t.g],n.g,r)}function eae(e,t,n){return e.a[t.g][n.g]}function whn(e,t){return e.e[t.c.p][t.p]}function yhn(e,t){return e.c[t.c.p][t.p]}function L1(e,t){return e.a[t.c.p][t.p]}function xhn(e,t){return e.j[t.p]=ITn(t)}function tae(e,t){return e.a.Bc(t)!=null}function khn(e,t){return ze(Ge(t.a))<=e}function Ehn(e,t){return ze(Ge(t.a))>=e}function Thn(e,t){return E6e(e.f,t.Pg())}function z8(e,t){return e.a*t.a+e.b*t.b}function Chn(e,t){return e.a0?t/(e*e):t*100}function Xhn(e,t){return e>0?t*t/e:t*t*100}function dy(e,t){return l(B1(e.a,t),34)}function Qhn(e,t){return Cb(),xn(e,t.e,t)}function Jhn(e,t,n){return tq(),n.Mg(e,t)}function Zhn(e){return tp(),e.e.a+e.f.a/2}function efn(e,t,n){return tp(),n.e.a-e*t}function tfn(e){return tp(),e.e.b+e.f.b/2}function nfn(e,t,n){return tp(),n.e.b-e*t}function crt(e){e.d=new srt(e),e.e=new Pr}function urt(){this.a=new Cw,this.b=new Cw}function lrt(e){this.c=e,this.a=1,this.b=1}function hrt(e){Mle(),SQe(this),this.Ff(e)}function rfn(e,t,n){ZH(),e.pf(t)&&n.Cd(e)}function ifn(e,t,n){return vt(t,k1t(e,n))}function dw(e,t,n){return e.a+=t,e.b+=n,e}function sfn(e,t,n){return e.a*=t,e.b*=n,e}function Fye(e,t){return e.a=t.a,e.b=t.b,e}function Hq(e){return e.a=-e.a,e.b=-e.b,e}function z_(e,t,n){return e.a-=t,e.b-=n,e}function frt(e){os.call(this),fA(this,e)}function drt(){Ur.call(this,"GROW_TREE",0)}function grt(){Ur.call(this,"POLYOMINO",0)}function dh(e,t,n){xl.call(this,e,t,n,2)}function afn(e,t,n){_A(du(e.a),t,Iot(n))}function prt(e,t){w_(),TO.call(this,e,t)}function Rye(e,t){Wp(),qq.call(this,e,t)}function brt(e,t){Wp(),Rye.call(this,e,t)}function mrt(e,t){Wp(),qq.call(this,e,t)}function ofn(e,t){return e.c.Fc(l(t,136))}function cfn(e,t,n){_A(Xl(e.a),t,Oot(n))}function vrt(e){this.c=e,Uu(e,0),Gu(e,0)}function oae(e,t){Jh(),cH.call(this,e,t)}function wrt(e,t){Jh(),oae.call(this,e,t)}function jye(e,t){Jh(),oae.call(this,e,t)}function $ye(e,t){Jh(),cH.call(this,e,t)}function yrt(e,t){Jh(),jye.call(this,e,t)}function xrt(e,t){Jh(),$ye.call(this,e,t)}function krt(e,t){Jh(),cH.call(this,e,t)}function ufn(e,t,n){return t.zl(e.e,e.c,n)}function lfn(e,t,n){return t.Al(e.e,e.c,n)}function zye(e,t,n){return VU(lN(e,t),n)}function cae(e,t){return yb(e.e,l(t,54))}function hfn(e){return e==null?null:BDn(e)}function ffn(e){return e==null?null:L9n(e)}function dfn(e){return e==null?null:xc(e)}function gfn(e){return e==null?null:xc(e)}function Bt(e){return V_(e==null||hy(e)),e}function Ge(e){return V_(e==null||fy(e)),e}function ei(e){return V_(e==null||Ia(e)),e}function Gg(e){e.o==null&&oTn(e)}function qye(e){if(!e)throw ue(new YI)}function pfn(e){if(!e)throw ue(new Rie)}function mr(e){if(!e)throw ue(new _c)}function gy(e){if(!e)throw ue(new pl)}function Ert(e){if(!e)throw ue(new Xh)}function Fk(){Fk=U,fF=new iJe,new sJe}function H5(){H5=U,Y6=new Ui("root")}function Hye(){sft.call(this),this.Bb|=Io}function bfn(e,t){this.d=e,Mr(this),this.b=t}function Vye(e,t){Poe.call(this,e),this.a=t}function Uye(e,t){Poe.call(this,e),this.a=t}function Gye(e,t,n){YH.call(this,e,t,n,null)}function Trt(e,t,n){YH.call(this,e,t,n,null)}function _O(e,t){this.c=e,Lk.call(this,e,t)}function q_(e,t){this.a=e,_O.call(this,e,t)}function Kye(e){this.q=new b.Date(Fm(e))}function Crt(e){return e>8?0:e+1}function Srt(e,t){G1||vt(e.a,t)}function mfn(e,t){return sO(),bE(t.d.i,e)}function vfn(e,t){return lx(),new nmt(t,e)}function wfn(e,t,n){return e.Ne(t,n)<=0?n:t}function yfn(e,t,n){return e.Ne(t,n)<=0?t:n}function xfn(e,t){return l(B1(e.b,t),143)}function kfn(e,t){return l(B1(e.c,t),233)}function uae(e){return l(jt(e.a,e.b),294)}function _rt(e){return new lt(e.c,e.d+e.a)}function Art(e){return nr(e),e?1231:1237}function Lrt(e){return Sh(),ont(l(e,203))}function py(){py=U,q_e=un((mh(),Cv))}function Efn(e,t){t.a?_En(e,t):tae(e.a,t.b)}function AO(e,t,n){++e.j,e.tj(),Noe(e,t,n)}function Mrt(e,t,n){++e.j,e.qj(t,e.Zi(t,n))}function Drt(e,t,n){var r;r=e.fd(t),r.Rb(n)}function Wye(e,t,n){return n=Nh(e,t,6,n),n}function Yye(e,t,n){return n=Nh(e,t,3,n),n}function Xye(e,t,n){return n=Nh(e,t,9,n),n}function vd(e,t){return UO(t,yEe),e.f=t,e}function Qye(e,t){return(t&Ii)%e.d.length}function Irt(e,t,n){return Mke(e.c,e.b,t,n)}function Ort(e,t){this.c=e,Lw.call(this,t)}function Nrt(e,t){this.a=e,vQe.call(this,t)}function LO(e,t){this.a=e,vQe.call(this,t)}function vs(e,t){Ui.call(this,e),this.a=t}function Jye(e,t){xwe.call(this,e),this.a=t}function lae(e,t){xwe.call(this,e),this.a=t}function Tfn(e){I8e.call(this,0,0),this.f=e}function Prt(e,t,n){return e.a+=If(t,0,n),e}function MO(e){return!e.a&&(e.a=new ge),e.a}function Zye(e,t){var n;return n=e.e,e.e=t,n}function e4e(e,t){var n;return n=t,!!e.Fe(n)}function Cfn(e,t){return Hn(),e==t?0:e?1:-1}function by(e,t){e.a.bd(e.b,t),++e.b,e.c=-1}function DO(e){e.b?DO(e.b):e.f.c.zc(e.e,e.d)}function Brt(e){Nl(e.e),e.d.b=e.d,e.d.a=e.d}function Sfn(e,t,n){Am(),Eie(e,t.Ve(e.a,n))}function t4e(e,t,n){return Q8(e,l(t,22),n)}function c0(e,t){return Vz(new Array(t),e)}function _fn(e){return Yr(ub(e,32))^Yr(e)}function hae(e){return String.fromCharCode(e)}function Afn(e){return e==null?null:e.message}function Lfn(e,t,n){return e.apply(t,n)}function Mfn(e,t){var n;n=e[lhe],n.call(e,t)}function Dfn(e,t){var n;n=e[lhe],n.call(e,t)}function Ifn(e,t){return sO(),!bE(t.d.i,e)}function n4e(e,t,n,r){sH.call(this,e,t,n,r)}function Frt(){Vq.call(this),this.a=new qa}function r4e(){this.n=new qa,this.o=new qa}function Rrt(){this.b=new qa,this.c=new bt}function jrt(){this.a=new bt,this.b=new bt}function $rt(){this.a=new bm,this.b=new BQe}function i4e(){this.b=new e2,this.a=new e2}function zrt(){this.b=new Ks,this.a=new Ks}function qrt(){this.b=new Pr,this.a=new Pr}function Hrt(){this.b=new dZe,this.a=new CS}function Vrt(){this.a=new Wre,this.b=new Aee}function Urt(){this.a=new bt,this.d=new bt}function Vq(){this.n=new A8,this.i=new $8}function Grt(e){this.a=(Mh(e,Yy),new Bu(e))}function Krt(e){this.a=(Mh(e,Yy),new Bu(e))}function Ofn(e){return e<100?null:new nb(e)}function Nfn(e,t){return e.n.a=(nr(t),t+10)}function Pfn(e,t){return e.n.a=(nr(t),t+10)}function Bfn(e,t){return t==e||jE(_U(t),e)}function Wrt(e,t){return ki(e.a,t,"")==null}function Ffn(e,t){var n;return n=t.qi(e.a),n}function Oi(e,t){return e.a+=t.a,e.b+=t.b,e}function ma(e,t){return e.a-=t.a,e.b-=t.b,e}function Rfn(e){return ay(e.j.c,0),e.a=-1,e}function s4e(e,t,n){return n=Nh(e,t,11,n),n}function jfn(e,t,n){n!=null&&wV(t,pue(e,n))}function $fn(e,t,n){n!=null&&yV(t,pue(e,n))}function V8(e,t,n,r){nt.call(this,e,t,n,r)}function a4e(e,t,n,r){nt.call(this,e,t,n,r)}function Yrt(e,t,n,r){a4e.call(this,e,t,n,r)}function Xrt(e,t,n,r){pH.call(this,e,t,n,r)}function fae(e,t,n,r){pH.call(this,e,t,n,r)}function o4e(e,t,n,r){pH.call(this,e,t,n,r)}function Qrt(e,t,n,r){fae.call(this,e,t,n,r)}function c4e(e,t,n,r){fae.call(this,e,t,n,r)}function Ln(e,t,n,r){o4e.call(this,e,t,n,r)}function Jrt(e,t,n,r){c4e.call(this,e,t,n,r)}function Zrt(e,t,n,r){a5e.call(this,e,t,n,r)}function my(e,t){tc.call(this,CL+e+av+t)}function u4e(e,t){return e.jk().wi().ri(e,t)}function l4e(e,t){return e.jk().wi().ti(e,t)}function eit(e,t){return nr(e),qe(e)===qe(t)}function vn(e,t){return nr(e),qe(e)===qe(t)}function zfn(e,t){return e.b.Bd(new ket(e,t))}function qfn(e,t){return e.b.Bd(new Eet(e,t))}function tit(e,t){return e.b.Bd(new Tet(e,t))}function Hfn(e,t){return e.e=l(e.d.Kb(t),159)}function h4e(e,t,n){return e.lastIndexOf(t,n)}function Vfn(e,t,n){return Yi(e[t.a],e[n.a])}function Ufn(e,t){return rt(t,(Nt(),TB),e)}function Gfn(e,t){return ru(t.a.d.p,e.a.d.p)}function Kfn(e,t){return ru(e.a.d.p,t.a.d.p)}function Wfn(e,t){return Yi(e.c-e.s,t.c-t.s)}function Yfn(e,t){return Yi(e.b.e.a,t.b.e.a)}function Xfn(e,t){return Yi(e.c.e.a,t.c.e.a)}function nit(e){return e.c?gc(e.c.a,e,0):-1}function U8(e){return e==Tv||e==Tg||e==Mu}function f4e(e,t){this.c=e,jae.call(this,e,t)}function rit(e,t,n){this.a=e,Nye.call(this,t,n)}function iit(e){this.c=e,Dq.call(this,EP,0)}function sit(e,t,n){this.c=t,this.b=n,this.a=e}function IO(e){jk(),this.d=e,this.a=new z5}function ait(e){wd(),this.a=(Cn(),new Ek(e))}function Qfn(e,t){Ug(e.f)?ZEn(e,t):Mxn(e,t)}function oit(e,t){ldn.call(this,e,e.length,t)}function Jfn(e,t){G1||t&&(e.d=t)}function cit(e,t){return De(t,15)&&Bbt(e.c,t)}function Zfn(e,t,n){return l(e.c,71).Wk(t,n)}function Uq(e,t,n){return l(e.c,71).Xk(t,n)}function e0n(e,t,n){return ufn(e,l(t,343),n)}function d4e(e,t,n){return lfn(e,l(t,343),n)}function t0n(e,t,n){return Lgt(e,l(t,343),n)}function uit(e,t,n){return Hxn(e,l(t,343),n)}function H_(e,t){return t==null?null:Oy(e.b,t)}function g4e(e){return fy(e)?(nr(e),e):e.ue()}function Gq(e){return!isNaN(e)&&!isFinite(e)}function dae(e){knt(this),Ch(this),Ka(this,e)}function Ol(e){Yse(this),M4e(this.c,0,e.Pc())}function Zh(e,t,n){this.a=e,this.b=t,this.c=n}function lit(e,t,n){this.a=e,this.b=t,this.c=n}function hit(e,t,n){this.d=e,this.b=n,this.a=t}function fit(e){this.a=e,Vg(),Zc(Date.now())}function dit(e){ph(e.a),L6e(e.c,e.b),e.b=null}function gae(){gae=U,p_e=new Et,_6t=new Gt}function git(){git=U,M_t=We(wa,Rn,1,0,5,1)}function pit(){pit=U,W_t=We(wa,Rn,1,0,5,1)}function p4e(){p4e=U,Y_t=We(wa,Rn,1,0,5,1)}function wd(){wd=U,new Twe((Cn(),Cn(),_o))}function n0n(e){return rE(),Gr((xlt(),M6t),e)}function r0n(e){return Fl(),Gr((hlt(),B6t),e)}function i0n(e){return ZV(),Gr((Xct(),q6t),e)}function s0n(e){return aV(),Gr((Qct(),H6t),e)}function a0n(e){return PU(),Gr((Xft(),V6t),e)}function o0n(e){return t1(),Gr((ult(),K6t),e)}function c0n(e){return Bl(),Gr((clt(),Y6t),e)}function u0n(e){return ol(),Gr((llt(),Q6t),e)}function l0n(e){return YU(),Gr((Gtt(),y7t),e)}function h0n(e){return Pw(),Gr((Elt(),k7t),e)}function f0n(e){return bx(),Gr((Clt(),T7t),e)}function d0n(e){return NA(),Gr((Tlt(),_7t),e)}function g0n(e){return Zz(),Gr((kct(),A7t),e)}function p0n(e){return oV(),Gr((Jct(),U7t),e)}function b0n(e){return lA(),Gr((flt(),m8t),e)}function m0n(e){return uo(),Gr((aht(),x8t),e)}function v0n(e){return wE(),Gr((_lt(),S8t),e)}function w0n(e){return Km(),Gr((Slt(),I8t),e)}function b4e(e,t){if(!e)throw ue(new Yn(t))}function Rk(e){if(!e)throw ue(new nc(Jke))}function pae(e,t){if(e!=t)throw ue(new Xh)}function bit(e,t,n){this.a=e,this.b=t,this.c=n}function m4e(e,t,n){this.a=e,this.b=t,this.c=n}function mit(e,t,n){this.a=e,this.b=t,this.c=n}function Kq(e,t,n){this.b=e,this.a=t,this.c=n}function v4e(e,t,n){this.b=e,this.c=t,this.a=n}function w4e(e,t,n){this.a=e,this.b=t,this.c=n}function Wq(e,t,n){this.e=t,this.b=e,this.d=n}function vit(e,t,n){this.b=e,this.a=t,this.c=n}function y0n(e,t,n){return Am(),e.a.Yd(t,n),t}function bae(e){var t;return t=new Ml,t.e=e,t}function y4e(e){var t;return t=new zQe,t.b=e,t}function OO(){OO=U,CK=new pZ,SK=new dj}function Yq(){Yq=U,K8t=new SZ,G8t=new bS}function u0(){u0=U,J8t=new iee,Z8t=new see}function x0n(e){return Ow(),Gr((Hut(),uxt),e)}function k0n(e){return vo(),Gr((Ktt(),q8t),e)}function E0n(e){return IV(),Gr((Llt(),U8t),e)}function T0n(e){return R1(),Gr((Alt(),nxt),e)}function C0n(e){return Ry(),Gr((oht(),ixt),e)}function S0n(e){return OU(),Gr((Pft(),lxt),e)}function _0n(e){return yx(),Gr((Iht(),hxt),e)}function A0n(e){return JH(),Gr((sut(),fxt),e)}function L0n(e){return dA(),Gr((zut(),dxt),e)}function M0n(e){return pV(),Gr((qut(),gxt),e)}function D0n(e){return l2(),Gr((cht(),pxt),e)}function I0n(e){return pN(),Gr((tut(),bxt),e)}function O0n(e){return zE(),Gr((Pht(),kxt),e)}function N0n(e){return Ho(),Gr((f0t(),Ext),e)}function P0n(e){return vE(),Gr((Uut(),Txt),e)}function B0n(e){return ep(),Gr((Gut(),Sxt),e)}function F0n(e){return zH(),Gr((eut(),_xt),e)}function R0n(e){return WN(),Gr((Nht(),xxt),e)}function j0n(e){return Vm(),Gr((Vut(),vxt),e)}function $0n(e){return yU(),Gr((Oht(),wxt),e)}function z0n(e){return cN(),Gr((nut(),yxt),e)}function q0n(e){return hf(),Gr((lht(),Axt),e)}function H0n(e){return p2(),Gr((Kft(),Jkt),e)}function V0n(e){return EA(),Gr((Kut(),Zkt),e)}function U0n(e){return By(),Gr((Mlt(),eEt),e)}function G0n(e){return OA(),Gr((uht(),tEt),e)}function K0n(e){return Nf(),Gr((d0t(),nEt),e)}function W0n(e){return Ed(),Gr((Dlt(),rEt),e)}function Y0n(e){return dN(),Gr((rut(),iEt),e)}function X0n(e){return qo(),Gr((Xut(),aEt),e)}function Q0n(e){return LV(),Gr((Wut(),oEt),e)}function J0n(e){return yA(),Gr((Yut(),cEt),e)}function Z0n(e){return SE(),Gr((Qut(),uEt),e)}function e1n(e){return gV(),Gr((Jut(),lEt),e)}function t1n(e){return OV(),Gr((Zut(),hEt),e)}function n1n(e){return Iw(),Gr((olt(),_Et),e)}function r1n(e){return oA(),Gr((iut(),IEt),e)}function i1n(e){return xd(),Gr((cut(),jEt),e)}function s1n(e){return D1(),Gr((uut(),zEt),e)}function a1n(e){return J0(),Gr((lut(),nTt),e)}function o1n(e){return Sw(),Gr((hut(),uTt),e)}function c1n(e){return wx(),Gr((Rlt(),lTt),e)}function u1n(e){return WA(),Gr((Wtt(),hTt),e)}function l1n(e){return xA(),Gr((elt(),fTt),e)}function h1n(e){return kA(),Gr((Flt(),PTt),e)}function f1n(e){return RH(),Gr((aut(),BTt),e)}function d1n(e){return kV(),Gr((out(),zTt),e)}function g1n(e){return bU(),Gr((hht(),HTt),e)}function p1n(e){return LN(),Gr((tlt(),UTt),e)}function b1n(e){return eV(),Gr((fut(),VTt),e)}function m1n(e){return uU(),Gr((Blt(),hCt),e)}function v1n(e){return AV(),Gr((nlt(),fCt),e)}function w1n(e){return WV(),Gr((rlt(),dCt),e)}function y1n(e){return sU(),Gr((ilt(),pCt),e)}function x1n(e){return qV(),Gr((slt(),vCt),e)}function k1n(e){return GH(),Gr((dut(),jCt),e)}function E1n(e){return dE(),Gr((Zct(),z8t),e)}function T1n(e){return Zn(),Gr((Bht(),B8t),e)}function C1n(e){return tV(),Gr((alt(),$Ct),e)}function S1n(e){return fce(),Gr((gut(),zCt),e)}function _1n(e){return VA(),Gr((fht(),HCt),e)}function A1n(e){return nq(),Gr((Mct(),UCt),e)}function L1n(e){return PN(),Gr((glt(),VCt),e)}function M1n(e){return rq(),Gr((Dct(),KCt),e)}function D1n(e){return rN(),Gr((put(),WCt),e)}function I1n(e){return XN(),Gr((dht(),YCt),e)}function O1n(e){return b_(),Gr((Ict(),hSt),e)}function N1n(e){return CN(),Gr((but(),fSt),e)}function P1n(e){return r1(),Gr((pht(),vSt),e)}function B1n(e){return g2(),Gr((Oft(),ySt),e)}function F1n(e){return og(),Gr((Fht(),xSt),e)}function R1n(e){return Ym(),Gr((Rht(),_St),e)}function j1n(e){return Js(),Gr((ght(),GSt),e)}function $1n(e){return F1(),Gr((plt(),KSt),e)}function z1n(e){return ip(),Gr((jlt(),WSt),e)}function q1n(e){return vU(),Gr((jht(),YSt),e)}function H1n(e){return rp(),Gr((dlt(),QSt),e)}function V1n(e){return Ih(),Gr(($lt(),ZSt),e)}function U1n(e){return qy(),Gr((Yft(),e_t),e)}function G1n(e){return t6(),Gr((bht(),t_t),e)}function K1n(e){return Ra(),Gr(($ht(),n_t),e)}function W1n(e){return Rl(),Gr((zht(),r_t),e)}function Y1n(e){return Ct(),Gr((mht(),i_t),e)}function X1n(e){return mh(),Gr((zlt(),u_t),e)}function Q1n(e){return Zl(),Gr((Wft(),l_t),e)}function J1n(e){return dx(),Gr((blt(),h_t),e)}function Z1n(e,t){return nr(e),e+(nr(t),t)}function edn(e){return mae(),Gr((mut(),f_t),e)}function tdn(e){return VV(),Gr((qlt(),d_t),e)}function ndn(e){return NV(),Gr((Hlt(),b_t),e)}function jk(){jk=U,$De=(Ct(),er),DW=ar}function mae(){mae=U,rPe=new Wit,iPe=new Ost}function rdn(e){return!e.e&&(e.e=new bt),e.e}function vae(e,t){this.c=e,this.a=t,this.b=t-e}function wit(e,t,n){this.a=e,this.b=t,this.c=n}function wae(e,t,n){this.a=e,this.b=t,this.c=n}function x4e(e,t,n){this.a=e,this.b=t,this.c=n}function k4e(e,t,n){this.a=e,this.b=t,this.c=n}function yit(e,t,n){this.a=e,this.b=t,this.c=n}function xit(e,t,n){this.a=e,this.b=t,this.c=n}function Xp(e,t,n){this.e=e,this.a=t,this.c=n}function kit(e,t,n){Jh(),$5e.call(this,e,t,n)}function yae(e,t,n){Jh(),E5e.call(this,e,t,n)}function E4e(e,t,n){Jh(),E5e.call(this,e,t,n)}function T4e(e,t,n){Jh(),E5e.call(this,e,t,n)}function Eit(e,t,n){Jh(),yae.call(this,e,t,n)}function C4e(e,t,n){Jh(),yae.call(this,e,t,n)}function Tit(e,t,n){Jh(),C4e.call(this,e,t,n)}function Cit(e,t,n){Jh(),E4e.call(this,e,t,n)}function Sit(e,t,n){Jh(),T4e.call(this,e,t,n)}function xae(e){sH.call(this,e.d,e.c,e.a,e.b)}function S4e(e){sH.call(this,e.d,e.c,e.a,e.b)}function _4e(e){this.d=e,Mr(this),this.b=ngn(e.d)}function idn(e){return HE(),Gr((Nft(),L_t),e)}function NO(e,t){return Xr(e),Xr(t),new IZe(e,t)}function G8(e,t){return Xr(e),Xr(t),new jit(e,t)}function sdn(e,t){return Xr(e),Xr(t),new $it(e,t)}function adn(e,t){return Xr(e),Xr(t),new zZe(e,t)}function kae(e){return mr(e.b!=0),af(e,e.a.a)}function odn(e){return mr(e.b!=0),af(e,e.c.b)}function cdn(e){return!e.c&&(e.c=new Xd),e.c}function $k(e){var t;return t=new bt,Goe(t,e),t}function udn(e){var t;return t=new Ks,Goe(t,e),t}function _it(e){var t;return t=new Lwe,sce(t,e),t}function PO(e){var t;return t=new os,sce(t,e),t}function l(e,t){return V_(e==null||iue(e,t)),e}function ldn(e,t,n){Sst.call(this,t,n),this.a=e}function Ait(e,t){this.c=e,this.b=t,this.a=!1}function Lit(){this.a=";,;",this.b="",this.c=""}function Mit(e,t,n){this.b=e,ztt.call(this,t,n)}function A4e(e,t,n){this.c=e,cq.call(this,t,n)}function L4e(e,t,n){Ik.call(this,e,t),this.b=n}function M4e(e,t,n){k9e(n,0,e,t,n.length,!1)}function tg(e,t,n,r,a){e.b=t,e.c=n,e.d=r,e.a=a}function D4e(e,t,n,r,a){e.d=t,e.c=n,e.a=r,e.b=a}function hdn(e,t){t&&(e.b=t,e.a=(fb(t),t.a))}function BO(e,t){if(!e)throw ue(new Yn(t))}function K8(e,t){if(!e)throw ue(new nc(t))}function I4e(e,t){if(!e)throw ue(new BJe(t))}function fdn(e,t){return eq(),ru(e.d.p,t.d.p)}function ddn(e,t){return tp(),Yi(e.e.b,t.e.b)}function gdn(e,t){return tp(),Yi(e.e.a,t.e.a)}function pdn(e,t){return ru(Uit(e.d),Uit(t.d))}function Xq(e,t){return t&&yH(e,t.d)?t:null}function bdn(e,t){return t==(Ct(),er)?e.c:e.d}function O4e(e){return mb(pgn(wc(e)?Mf(e):e))}function mdn(e){return new lt(e.c+e.b,e.d+e.a)}function Dit(e){return e!=null&&!Hce(e,$M,zM)}function vdn(e,t){return(u1t(e)<<4|u1t(t))&Zs}function Iit(e,t,n,r,a){e.c=t,e.d=n,e.b=r,e.a=a}function N4e(e){var t,n;t=e.b,n=e.c,e.b=n,e.c=t}function P4e(e){var t,n;n=e.d,t=e.a,e.d=t,e.a=n}function wdn(e,t){var n;return n=e.c,d7e(e,t),n}function B4e(e,t){return t<0?e.g=-1:e.g=t,e}function Qq(e,t){return _wn(e),e.a*=t,e.b*=t,e}function Oit(e,t,n){_ht.call(this,t,n),this.d=e}function FO(e,t,n){tye.call(this,e,t),this.c=n}function Jq(e,t,n){tye.call(this,e,t),this.c=n}function F4e(e){p4e(),m5.call(this),this.ci(e)}function Nit(){eE(),$gn.call(this,(ib(),Gf))}function Pit(e){return Di(),new ng(0,e)}function Bit(){Bit=U,spe=(Cn(),new Da(c0e))}function Zq(){Zq=U,new W8e((Gie(),y0e),(Uie(),w0e))}function Fit(){Fit=U,t_e=We(ro,dt,17,256,0,1)}function Rit(){this.b=ze(Ge(It((b0(),Z0e))))}function Eae(e){this.b=e,this.a=Mm(this.b.a).Od()}function jit(e,t){this.b=e,this.a=t,GS.call(this)}function $it(e,t){this.a=e,this.b=t,GS.call(this)}function zit(e,t,n){this.a=e,N5.call(this,t,n)}function qit(e,t,n){this.a=e,N5.call(this,t,n)}function zk(e,t,n){var r;r=new yy(n),e1(e,t,r)}function R4e(e,t,n){var r;return r=e[t],e[t]=n,r}function eH(e){var t;return t=e.slice(),joe(t,e)}function tH(e){var t;return t=e.n,e.a.b+t.d+t.a}function Hit(e){var t;return t=e.n,e.e.b+t.d+t.a}function j4e(e){var t;return t=e.n,e.e.a+t.b+t.c}function $4e(e){e.a.b=e.b,e.b.a=e.a,e.a=e.b=null}function ui(e,t){return Cs(e,t,e.c.b,e.c),!0}function ydn(e){return e.a?e.a:Qae(e)}function xdn(e){return tx(),cg(e)==ds(Eb(e))}function kdn(e){return tx(),Eb(e)==ds(cg(e))}function gw(e,t){return RA(e,new Ik(t.a,t.b))}function Edn(e,t){return kH(),fue(e,t),new hat(e,t)}function Tdn(e,t){return e.c=t)throw ue(new Bwe)}function vy(e,t){return ON(e,(nr(t),new xo(t)))}function Y8(e,t){return ON(e,(nr(t),new lh(t)))}function Ast(e,t,n){return XIn(e,l(t,12),l(n,12))}function Lst(e){return kl(),l(e,12).g.c.length!=0}function Mst(e){return kl(),l(e,12).e.c.length!=0}function cgn(e,t){return lx(),Yi(t.a.o.a,e.a.o.a)}function ugn(e,t){t.Bb&eu&&!e.a.o&&(e.a.o=t)}function lgn(e,t){t.Ug("General 'Rotator",1),TDn(e)}function hgn(e,t,n){t.qf(n,ze(Ge(cr(e.b,n)))*e.a)}function Dst(e,t,n){return h6(),gE(e,t)&&gE(e,n)}function W_(e){return Rl(),!e.Hc(vp)&&!e.Hc(Yb)}function fgn(e){return e.e?_6e(e.e):null}function Y_(e){return wc(e)?""+e:Pbt(e)}function s5e(e){var t;for(t=e;t.f;)t=t.f;return t}function dgn(e,t,n){return Ts(t,0,U4e(t[0],n[0])),t}function Qp(e,t,n,r){var a;a=e.i,a.i=t,a.a=n,a.b=r}function nt(e,t,n,r){Ys.call(this,e,t,n),this.b=r}function _a(e,t,n,r,a){Foe.call(this,e,t,n,r,a,-1)}function X_(e,t,n,r,a){sN.call(this,e,t,n,r,a,-1)}function pH(e,t,n,r){FO.call(this,e,t,n),this.b=r}function Ist(e){Ltt.call(this,e,!1),this.a=!1}function Ost(){ctt.call(this,"LOOKAHEAD_LAYOUT",1)}function Nst(e){this.b=e,q8.call(this,e),jnt(this)}function Pst(e){this.b=e,CO.call(this,e),$nt(this)}function wy(e,t,n){this.a=e,V8.call(this,t,n,5,6)}function a5e(e,t,n,r){this.b=e,Ys.call(this,t,n,r)}function Bst(e,t){this.b=e,qg.call(this,e.b),this.a=t}function Fst(e){this.a=ydt(e.a),this.b=new Ol(e.b)}function o5e(e,t){ww(),Vun.call(this,e,RV(new Il(t)))}function bH(e,t){return Di(),new k5e(e,t,0)}function Bae(e,t){return Di(),new k5e(6,e,t)}function Za(e,t){for(nr(t);e.Ob();)t.Cd(e.Pb())}function Hu(e,t){return Ia(t)?soe(e,t):!!zo(e.f,t)}function Fae(e,t){return t.Vh()?yb(e.b,l(t,54)):t}function ggn(e,t){return vn(e.substr(0,t.length),t)}function rg(e){return new hr(new Aye(e.a.length,e.a))}function mH(e){return new lt(e.c+e.b/2,e.d+e.a/2)}function pgn(e){return qu(~e.l&eh,~e.m&eh,~e.h&hp)}function Rae(e){return typeof e===wP||typeof e===Ole}function Nl(e){e.f=new rnt(e),e.i=new int(e),++e.g}function Rst(e){if(!e)throw ue(new _c);return e.d}function X8(e){var t;return t=wA(e),mr(t!=null),t}function bgn(e){var t;return t=I4n(e),mr(t!=null),t}function Hk(e,t){var n;return n=e.a.gc(),k6e(t,n),n-t}function na(e,t){var n;return n=e.a.zc(t,e),n==null}function jO(e,t){return e.a.zc(t,(Hn(),Pb))==null}function c5e(e){return new bn(null,xgn(e,e.length))}function u5e(e,t,n){return svt(e,l(t,42),l(n,176))}function Q8(e,t,n){return d0(e.a,t),R4e(e.b,t.g,n)}function mgn(e,t,n){qk(n,e.a.c.length),rf(e.a,n,t)}function He(e,t,n,r){B0t(t,n,e.length),vgn(e,t,n,r)}function vgn(e,t,n,r){var a;for(a=t;a0?b.Math.log(e/t):-100}function $st(e,t){return iu(e,t)<0?-1:iu(e,t)>0?1:0}function $O(e,t){Dnt(e,De(t,160)?t:l(t,2036).Rl())}function d5e(e,t){if(e==null)throw ue(new D8(t))}function xgn(e,t){return Ewn(t,e.length),new Kit(e,t)}function g5e(e,t){return t?Ka(e,t):!1}function kgn(){return $z(),he(le(a6t,1),it,549,0,[E0e])}function J_(e){return e.e==0?e:new Im(-e.e,e.d,e.a)}function Egn(e,t){return Yi(e.c.c+e.c.b,t.c.c+t.c.b)}function zO(e,t){Cs(e.d,t,e.b.b,e.b),++e.a,e.c=null}function zst(e,t){return e.c?zst(e.c,t):vt(e.b,t),e}function Tgn(e,t,n){var r;return r=_y(e,t),xoe(e,t,n),r}function qst(e,t,n){var r;for(r=0;r=e.g}function Ts(e,t,n){return pfn(n==null||lAn(e,n)),e[t]=n}function w5e(e,t){return Xn(t,e.length+1),e.substr(t)}function Wae(e,t){for(nr(t);e.c=e?new b3e:Kwn(e-1)}function eo(e){return!e.a&&e.c?e.c.b:e.a}function T5e(e){return De(e,616)?e:new oot(e)}function fb(e){e.c?fb(e.c):(xb(e),e.d=!0)}function tA(e){e.c?e.c.$e():(e.d=!0,hCn(e))}function cat(e){e.b=!1,e.c=!1,e.d=!1,e.a=!1}function uat(e){var t,n;return t=e.c.i.c,n=e.d.i.c,t==n}function Hgn(e,t){var n;n=e.Ih(t),n>=0?e.ki(n):d9e(e,t)}function lat(e,t){e.c<0||e.b.b0;)e=e<<1|(e<0?1:0);return e}function vat(e,t){var n;return n=new yu(e),$n(t.c,n),n}function wat(e,t){e.u.Hc((Rl(),vp))&&Wkn(e,t),fvn(e,t)}function Jc(e,t){return qe(e)===qe(t)||e!=null&&Pi(e,t)}function Qo(e,t){return Aae(e.a,t)?e.b[l(t,22).g]:null}function npn(){return Zz(),he(le(U_e,1),it,489,0,[G0e])}function rpn(){return nq(),he(le(wOe,1),it,490,0,[bge])}function ipn(){return rq(),he(le(GCt,1),it,558,0,[mge])}function spn(){return b_(),he(le($Oe,1),it,539,0,[qB])}function EH(e){return!e.n&&(e.n=new nt(ec,e,1,7)),e.n}function Xae(e){return!e.c&&(e.c=new nt(Hl,e,9,9)),e.c}function A5e(e){return!e.c&&(e.c=new Ln(_r,e,5,8)),e.c}function apn(e){return!e.b&&(e.b=new Ln(_r,e,4,7)),e.b}function qO(e){return e.j.c.length=0,M5e(e.c),Rfn(e.a),e}function Wk(e){return e.e==ET&&hn(e,e6n(e.g,e.b)),e.e}function HO(e){return e.f==ET&&Dn(e,U7n(e.g,e.b)),e.f}function Ei(e,t,n,r){return qft(e,t,n,!1),jV(e,r),e}function yat(e,t){this.b=e,jae.call(this,e,t),jnt(this)}function xat(e,t){this.b=e,f4e.call(this,e,t),$nt(this)}function nA(e){this.d=e,this.a=this.d.b,this.b=this.d.c}function L5e(e,t){this.b=e,this.c=t,this.a=new P8(this.b)}function co(e,t){return Xn(t,e.length),e.charCodeAt(t)}function opn(e,t){b8e(e,ze(np(t,"x")),ze(np(t,"y")))}function cpn(e,t){b8e(e,ze(np(t,"x")),ze(np(t,"y")))}function Fi(e,t){return xb(e),new bn(e,new $6e(t,e.a))}function fc(e,t){return xb(e),new bn(e,new C6e(t,e.a))}function xy(e,t){return xb(e),new Vye(e,new Mut(t,e.a))}function TH(e,t){return xb(e),new Uye(e,new Dut(t,e.a))}function upn(e,t){return new Uat(l(Xr(e),50),l(Xr(t),50))}function lpn(e,t){return Yi(e.d.c+e.d.b/2,t.d.c+t.d.b/2)}function kat(e,t,n){n.a?Gu(e,t.b-e.f/2):Uu(e,t.a-e.g/2)}function hpn(e,t){return Yi(e.g.c+e.g.b/2,t.g.c+t.g.b/2)}function fpn(e,t){return w3e(),Yi((nr(e),e),(nr(t),t))}function dpn(e){return e!=null&&nO(EY,e.toLowerCase())}function M5e(e){var t;for(t=e.Kc();t.Ob();)t.Pb(),t.Qb()}function V5(e){var t;return t=e.b,!t&&(e.b=t=new mie(e)),t}function Qae(e){var t;return t=Qwn(e),t||null}function Eat(e,t){var n,r;return n=e/t,r=ua(n),n>r&&++r,r}function gpn(e,t,n){var r;r=l(e.d.Kb(n),159),r&&r.Nb(t)}function ppn(e,t,n){mLn(e.a,n),W3n(n),REn(e.b,n),RLn(t,n)}function CH(e,t,n,r){this.a=e,this.c=t,this.b=n,this.d=r}function D5e(e,t,n,r){this.c=e,this.b=t,this.a=n,this.d=r}function Tat(e,t,n,r){this.c=e,this.b=t,this.d=n,this.a=r}function ef(e,t,n,r){this.c=e,this.d=t,this.b=n,this.a=r}function Cat(e,t,n,r){this.a=e,this.d=t,this.c=n,this.b=r}function Jae(e,t,n,r){this.a=e,this.e=t,this.d=n,this.c=r}function Sat(e,t,n,r){this.a=e,this.c=t,this.d=n,this.b=r}function Zae(e,t,n){this.a=iEe,this.d=e,this.b=t,this.c=n}function Z8(e,t,n,r){Ur.call(this,e,t),this.a=n,this.b=r}function _at(e,t){this.d=(nr(e),e),this.a=16449,this.c=t}function Aat(e){this.a=new bt,this.e=We(Vr,dt,53,e,0,2)}function bpn(e){e.Ug("No crossing minimization",1),e.Vg()}function Lat(){Ac.call(this,"There is no more element.")}function Mat(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function Dat(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function Om(e,t,n,r){this.e=e,this.a=t,this.c=n,this.d=r}function Iat(e,t,n,r){this.a=e,this.c=t,this.d=n,this.b=r}function Oat(e,t,n,r){Jh(),Iut.call(this,t,n,r),this.a=e}function Nat(e,t,n,r){Jh(),Iut.call(this,t,n,r),this.a=e}function eoe(e,t,n){var r,a;return r=Vke(e),a=t.ti(n,r),a}function Kg(e){var t,n;return n=(t=new Qv,t),sE(n,e),n}function toe(e){var t,n;return n=(t=new Qv,t),Kxe(n,e),n}function mpn(e,t){var n;return n=cr(e.f,t),S7e(t,n),null}function Pat(e){return!e.b&&(e.b=new nt(js,e,12,3)),e.b}function Bat(e){return V_(e==null||Rae(e)&&e.Tm!==xe),e}function SH(e){return e.n&&(e.e!==Fwt&&e.je(),e.j=null),e}function Yk(e){if(Ql(e.d),e.d.d!=e.c)throw ue(new Xh)}function I5e(e){return mr(e.b0&&ggt(this)}function Fat(e,t){this.a=e,bfn.call(this,e,l(e.d,15).fd(t))}function vpn(e,t){return Yi(wl(e)*gh(e),wl(t)*gh(t))}function wpn(e,t){return Yi(wl(e)*gh(e),wl(t)*gh(t))}function ypn(e){return qw(e)&&Rt(Bt(at(e,(Nt(),gv))))}function xpn(e,t){return xn(e,l(Q(t,(Nt(),HT)),17),t)}function kpn(e,t){return l(Q(e,(ft(),Wx)),15).Fc(t),t}function O5e(e,t){return e.b=t.b,e.c=t.c,e.d=t.d,e.a=t.a,e}function Rat(e,t,n,r){this.b=e,this.c=r,Dq.call(this,t,n)}function Epn(e,t,n){e.i=0,e.e=0,t!=n&&x0t(e,t,n)}function Tpn(e,t,n){e.i=0,e.e=0,t!=n&&k0t(e,t,n)}function Cpn(e,t,n){return p_(),J4n(l(cr(e.e,t),529),n)}function ex(e){var t;return t=e.f,t||(e.f=new Lk(e,e.c))}function jat(e,t){return e6(e.j,t.s,t.c)+e6(t.e,e.s,e.c)}function $at(e,t){e.e&&!e.e.a&&(CQe(e.e,t),$at(e.e,t))}function zat(e,t){e.d&&!e.d.a&&(CQe(e.d,t),zat(e.d,t))}function Spn(e,t){return-Yi(wl(e)*gh(e),wl(t)*gh(t))}function _pn(e){return l(e.ld(),149).Pg()+":"+xc(e.md())}function qat(){Nue(this,new fz),this.wb=(lb(),Vn),Sk()}function Hat(e){this.b=new bt,ra(this.b,this.b),this.a=e}function N5e(e,t){new os,this.a=new bl,this.b=e,this.c=t}function Ew(){Ew=U,d_e=new Ke,D0e=new Ke,g_e=new Ft}function Cn(){Cn=U,_o=new je,mg=new Se,hK=new Ce}function P5e(){P5e=U,j6t=new wo,z6t=new X4e,$6t=new _s}function tx(){tx=U,wK=new bt,X0e=new Pr,Y0e=new bt}function _H(e,t){if(e==null)throw ue(new D8(t));return e}function AH(e){return!e.a&&(e.a=new nt(Ai,e,10,11)),e.a}function qi(e){return!e.q&&(e.q=new nt(Uf,e,11,10)),e.q}function tt(e){return!e.s&&(e.s=new nt(dl,e,21,17)),e.s}function Apn(e){return Xr(e),Mdt(new hr(dr(e.a.Kc(),new j)))}function Lpn(e,t){return bh(e),bh(t),PJe(l(e,22),l(t,22))}function Nm(e,t,n){var r,a;r=g4e(n),a=new vk(r),e1(e,t,a)}function roe(e,t,n,r,a,o){sN.call(this,e,t,n,r,a,o?-2:-1)}function Vat(e,t,n,r){tye.call(this,t,n),this.b=e,this.a=r}function Uat(e,t){Xcn.call(this,new Pae(e)),this.a=e,this.b=t}function B5e(e){this.b=e,this.c=e,e.e=null,e.c=null,this.a=1}function Mpn(e){u0();var t;t=l(e.g,10),t.n.a=e.d.c+t.d.b}function Xk(){Xk=U;var e,t;t=!F5n(),e=new se,S0e=t?new ne:e}function ioe(e){return Cn(),De(e,59)?new ese(e):new jq(e)}function LH(e){return De(e,16)?new U_(l(e,16)):udn(e.Kc())}function Dpn(e){return new qnt(e,e.e.Rd().gc()*e.c.Rd().gc())}function Ipn(e){return new Hnt(e,e.e.Rd().gc()*e.c.Rd().gc())}function F5e(e){return e&&e.hashCode?e.hashCode():fw(e)}function soe(e,t){return t==null?!!zo(e.f,null):Wdn(e.i,t)}function Opn(e,t){var n;return n=wye(e.a,t),n&&(t.d=null),n}function Gat(e,t,n){return e.f?e.f.ef(t,n):!1}function VO(e,t,n,r){Ts(e.c[t.g],n.g,r),Ts(e.c[n.g],t.g,r)}function aoe(e,t,n,r){Ts(e.c[t.g],t.g,n),Ts(e.b[t.g],t.g,r)}function Npn(e,t,n){return ze(Ge(n.a))<=e&&ze(Ge(n.b))>=t}function Kat(e,t){this.g=e,this.d=he(le(wg,1),m2,10,0,[t])}function Wat(e){this.c=e,this.b=new Kp(l(Xr(new tl),50))}function Yat(e){this.c=e,this.b=new Kp(l(Xr(new l5),50))}function Xat(e){this.b=e,this.a=new Kp(l(Xr(new Bi),50))}function Qat(){this.b=new Ks,this.d=new os,this.e=new Fwe}function R5e(){this.c=new qa,this.d=new qa,this.e=new qa}function Tw(){this.a=new bl,this.b=(Mh(3,Yy),new Bu(3))}function Jp(e,t){this.e=e,this.a=wa,this.b=Qbt(t),this.c=t}function MH(e){this.c=e.c,this.d=e.d,this.b=e.b,this.a=e.a}function Jat(e,t,n,r,a,o){this.a=e,Joe.call(this,t,n,r,a,o)}function Zat(e,t,n,r,a,o){this.a=e,Joe.call(this,t,n,r,a,o)}function db(e,t,n,r,a,o,f){return new Eoe(e.e,t,n,r,a,o,f)}function Ppn(e,t,n){return n>=0&&vn(e.substr(n,t.length),t)}function eot(e,t){return De(t,149)&&vn(e.b,l(t,149).Pg())}function Bpn(e,t){return e.a?t.Gh().Kc():l(t.Gh(),71).Ii()}function tot(e,t){var n;return n=e.b.Qc(t),Yct(n,e.b.gc()),n}function UO(e,t){if(e==null)throw ue(new D8(t));return e}function dc(e){return e.u||(Yl(e),e.u=new Nrt(e,e)),e.u}function ooe(e){this.a=(Cn(),De(e,59)?new ese(e):new jq(e))}function sl(e){var t;return t=l(Kn(e,16),29),t||e.ii()}function DH(e,t){var n;return n=_m(e.Rm),t==null?n:n+": "+t}function tf(e,t,n){return Ga(t,n,e.length),e.substr(t,n-t)}function not(e,t){Vq.call(this),Y6e(this),this.a=e,this.c=t}function Fpn(e){e&&DH(e,e.ie())}function Rpn(e){Hz(),b.setTimeout(function(){throw e},0)}function jpn(){return ZV(),he(le(k_e,1),it,436,0,[j0e,x_e])}function $pn(){return aV(),he(le(T_e,1),it,435,0,[E_e,$0e])}function zpn(){return oV(),he(le(J_e,1),it,432,0,[Q0e,yK])}function qpn(){return dE(),he(le($8t,1),it,517,0,[dB,h1e])}function Hpn(){return zH(),he(le(PLe,1),it,429,0,[z1e,NLe])}function Vpn(){return pN(),he(le(wLe,1),it,428,0,[XK,vLe])}function Upn(){return JH(),he(le(hLe,1),it,431,0,[lLe,S1e])}function Gpn(){return dN(),he(le(_De,1),it,430,0,[kde,Ede])}function Kpn(){return oA(),he(le(DEt,1),it,531,0,[uM,cM])}function Wpn(){return kV(),he(le(EIe,1),it,501,0,[$W,X6])}function Ypn(){return xd(),he(le(REt,1),it,523,0,[w3,T2])}function Xpn(){return D1(),he(le($Et,1),it,522,0,[wv,Y1])}function Qpn(){return J0(),he(le(tTt,1),it,528,0,[E4,qb])}function Jpn(){return cN(),he(le(kLe,1),it,488,0,[xLe,JK])}function Zpn(){return GH(),he(le(fOe,1),it,491,0,[dge,hOe])}function e2n(){return fce(),he(le(vOe,1),it,492,0,[bOe,mOe])}function t2n(){return RH(),he(le(kIe,1),it,433,0,[Ude,xIe])}function n2n(){return eV(),he(le(CIe,1),it,434,0,[TIe,Qde])}function r2n(){return Sw(),he(le(cTt,1),it,465,0,[Hb,K6])}function i2n(){return rN(),he(le(yOe,1),it,438,0,[vge,QW])}function s2n(){return CN(),he(le(qOe,1),it,437,0,[ZW,zOe])}function a2n(){return mae(),he(le(gY,1),it,347,0,[rPe,iPe])}function IH(e,t,n,r){return n>=0?e.Uh(t,n,r):e.Ch(null,n,r)}function GO(e){return e.b.b==0?e.a.sf():kae(e.b)}function o2n(e){if(e.p!=5)throw ue(new pl);return Yr(e.f)}function c2n(e){if(e.p!=5)throw ue(new pl);return Yr(e.k)}function j5e(e){return qe(e.a)===qe((lce(),npe))&&aMn(e),e.a}function u2n(e,t){e.b=t,e.c>0&&e.b>0&&(e.g=aH(e.c,e.b,e.a))}function l2n(e,t){e.c=t,e.c>0&&e.b>0&&(e.g=aH(e.c,e.b,e.a))}function rot(e,t){ce(this,new lt(e.a,e.b)),ve(this,PO(t))}function Cw(){Qcn.call(this,new N8(Ay(12))),Tye(!0),this.a=2}function coe(e,t,n){Di(),Xv.call(this,e),this.b=t,this.a=n}function $5e(e,t,n){Jh(),Nz.call(this,t),this.a=e,this.b=n}function iot(e){var t;t=e.c.d.b,e.b=t,e.a=e.c.d,t.a=e.c.d.b=e}function h2n(e){return e.b==0?null:(mr(e.b!=0),af(e,e.a.a))}function xu(e,t){return t==null?hc(zo(e.f,null)):y_(e.i,t)}function sot(e,t,n,r,a){return new Bue(e,(rE(),P0e),t,n,r,a)}function OH(e,t){return Gct(t),Pwn(e,We(Vr,di,28,t,15,1),t)}function NH(e,t){return _H(e,"set1"),_H(t,"set2"),new GZe(e,t)}function f2n(e,t){var n=C0e[e.charCodeAt(0)];return n??e}function aot(e,t){var n,r;return n=t,r=new xt,Ovt(e,n,r),r.d}function uoe(e,t,n,r){var a;a=new Frt,t.a[n.g]=a,Q8(e.b,r,a)}function d2n(e,t){var n;return n=Iwn(e.f,t),Oi(Hq(n),e.f.d)}function KO(e){var t;Hwn(e.a),dnt(e.a),t=new e_(e.a),S8e(t)}function g2n(e,t){zbt(e,!0),Vu(e.e.Rf(),new v4e(e,!0,t))}function p2n(e,t){return tx(),e==ds(cg(t))||e==ds(Eb(t))}function b2n(e,t){return tp(),l(Q(t,(Hc(),$d)),17).a==e}function ua(e){return Math.max(Math.min(e,Ii),-2147483648)|0}function oot(e){this.a=l(Xr(e),277),this.b=(Cn(),new Dye(e))}function cot(e,t,n){this.i=new bt,this.b=e,this.g=t,this.a=n}function z5e(e,t,n){this.a=new bt,this.e=e,this.f=t,this.c=n}function PH(e,t,n){this.c=new bt,this.e=e,this.f=t,this.b=n}function uot(e){Vq.call(this),Y6e(this),this.a=e,this.c=!0}function m2n(e){function t(){}return t.prototype=e||{},new t}function v2n(e){if(e.Ae())return null;var t=e.n;return sK[t]}function WO(e){return e.Db>>16!=3?null:l(e.Cb,27)}function M1(e){return e.Db>>16!=9?null:l(e.Cb,27)}function lot(e){return e.Db>>16!=6?null:l(e.Cb,74)}function Sw(){Sw=U,Hb=new H3e(Mx,0),K6=new H3e(Dx,1)}function xd(){xd=U,w3=new $3e(Dx,0),T2=new $3e(Mx,1)}function D1(){D1=U,wv=new z3e(whe,0),Y1=new z3e("UP",1)}function hot(){hot=U,o6t=Kr(($z(),he(le(a6t,1),it,549,0,[E0e])))}function fot(e){var t;return t=new Kz(Ay(e.length)),j7e(t,e),t}function dot(e,t){return e.b+=t.b,e.c+=t.c,e.d+=t.d,e.a+=t.a,e}function w2n(e,t){return Zft(e,t)?(Yht(e),!0):!1}function Wg(e,t){if(t==null)throw ue(new S8);return j5n(e,t)}function YO(e,t){var n;n=e.q.getHours(),e.q.setDate(t),XA(e,n)}function q5e(e,t,n){var r;r=e.Ih(t),r>=0?e.bi(r,n):$9e(e,t,n)}function got(e,t){var n;return n=e.Ih(t),n>=0?e.Wh(n):que(e,t)}function pot(e,t){var n;for(Xr(t),n=e.a;n;n=n.c)t.Yd(n.g,n.i)}function loe(e,t,n){var r;r=w0t(e,t,n),e.b=new TV(r.c.length)}function U5(e,t,n){BH(),e&&ki(Zge,e,t),e&&ki(lF,e,n)}function y2n(e,t){return Yq(),Hn(),l(t.a,17).a0}function H5e(e){var t;return t=e.d,t=e.bj(e.f),qr(e,t),t.Ob()}function bot(e,t){var n;return n=new K4e(t),zgt(n,e),new Ol(n)}function E2n(e){if(e.p!=0)throw ue(new pl);return I_(e.f,0)}function T2n(e){if(e.p!=0)throw ue(new pl);return I_(e.k,0)}function mot(e){return e.Db>>16!=7?null:l(e.Cb,241)}function Qk(e){return e.Db>>16!=6?null:l(e.Cb,241)}function vot(e){return e.Db>>16!=7?null:l(e.Cb,167)}function ds(e){return e.Db>>16!=11?null:l(e.Cb,27)}function ky(e){return e.Db>>16!=17?null:l(e.Cb,29)}function wot(e){return e.Db>>16!=3?null:l(e.Cb,155)}function V5e(e){var t;return xb(e),t=new Ks,Fi(e,new k5(t))}function yot(e,t){var n=e.a=e.a||[];return n[t]||(n[t]=e.ve(t))}function C2n(e,t){var n;n=e.q.getHours(),e.q.setMonth(t),XA(e,n)}function xot(e,t){Fq(this),this.f=t,this.g=e,SH(this),this.je()}function kot(e,t){this.a=e,this.c=Ja(this.a),this.b=new MH(t)}function Eot(e,t,n){this.a=t,this.c=e,this.b=(Xr(n),new Ol(n))}function Tot(e,t,n){this.a=t,this.c=e,this.b=(Xr(n),new Ol(n))}function Cot(e){this.a=e,this.b=We(AEt,dt,2043,e.e.length,0,2)}function Sot(){this.a=new bd,this.e=new Ks,this.g=0,this.i=0}function BH(){BH=U,Zge=new Pr,lF=new Pr,wln(C6t,new LS)}function _ot(){_ot=U,fEt=yl(new Xs,(uo(),mc),(vo(),gB))}function U5e(){U5e=U,dEt=yl(new Xs,(uo(),mc),(vo(),gB))}function Aot(){Aot=U,pEt=yl(new Xs,(uo(),mc),(vo(),gB))}function Lot(){Lot=U,OEt=fi(new Xs,(uo(),mc),(vo(),zL))}function Sh(){Sh=U,BEt=fi(new Xs,(uo(),mc),(vo(),zL))}function Mot(){Mot=U,FEt=fi(new Xs,(uo(),mc),(vo(),zL))}function foe(){foe=U,qEt=fi(new Xs,(uo(),mc),(vo(),zL))}function rA(e,t,n,r,a,o){return new Zg(e.e,t,e.Lj(),n,r,a,o)}function rc(e,t,n){return t==null?ju(e.f,null,n):Bw(e.i,t,n)}function po(e,t){e.c&&al(e.c.g,e),e.c=t,e.c&&vt(e.c.g,e)}function Va(e,t){e.c&&al(e.c.a,e),e.c=t,e.c&&vt(e.c.a,e)}function Mc(e,t){e.i&&al(e.i.j,e),e.i=t,e.i&&vt(e.i.j,e)}function Fa(e,t){e.d&&al(e.d.e,e),e.d=t,e.d&&vt(e.d.e,e)}function doe(e,t){e.a&&al(e.a.k,e),e.a=t,e.a&&vt(e.a.k,e)}function goe(e,t){e.b&&al(e.b.f,e),e.b=t,e.b&&vt(e.b.f,e)}function Dot(e,t){Fgn(e,e.b,e.c),l(e.b.b,68),t&&l(t.b,68).b}function S2n(e,t){return Yi(l(e.c,65).c.e.b,l(t.c,65).c.e.b)}function _2n(e,t){return Yi(l(e.c,65).c.e.a,l(t.c,65).c.e.a)}function A2n(e){return Mce(),Hn(),l(e.a,86).d.e!=0}function FH(e,t){De(e.Cb,184)&&(l(e.Cb,184).tb=null),Fu(e,t)}function poe(e,t){De(e.Cb,90)&&zy(Yl(l(e.Cb,90)),4),Fu(e,t)}function L2n(e,t){m8e(e,t),De(e.Cb,90)&&zy(Yl(l(e.Cb,90)),2)}function M2n(e,t){var n,r;n=t.c,r=n!=null,r&&J8(e,new yy(t.c))}function Iot(e){var t,n;return n=(Sk(),t=new Qv,t),sE(n,e),n}function Oot(e){var t,n;return n=(Sk(),t=new Qv,t),sE(n,e),n}function Not(e){for(var t;;)if(t=e.Pb(),!e.Ob())return t}function D2n(e,t,n){return vt(e.a,(kH(),fue(t,n),new iw(t,n))),e}function ku(e,t){return Fo(),Voe(t)?new nH(t,e):new yO(t,e)}function XO(e){return Cd(),iu(e,0)>=0?kb(e):J_(kb(r2(e)))}function I2n(e){var t;return t=l(eH(e.b),9),new Zh(e.a,t,e.c)}function Pot(e,t){var n;return n=l(Oy(ex(e.a),t),16),n?n.gc():0}function Bot(e,t,n){var r;o1t(t,n,e.c.length),r=n-t,d3e(e.c,t,r)}function Zp(e,t,n){o1t(t,n,e.gc()),this.c=e,this.a=t,this.b=n-t}function nx(e){this.c=new os,this.b=e.b,this.d=e.c,this.a=e.a}function boe(e){this.a=b.Math.cos(e),this.b=b.Math.sin(e)}function Pm(e,t,n,r){this.c=e,this.d=r,doe(this,t),goe(this,n)}function G5e(e,t){Ycn.call(this,new N8(Ay(e))),Mh(t,Dwt),this.a=t}function Fot(e,t,n){return new Bue(e,(rE(),N0e),null,!1,t,n)}function Rot(e,t,n){return new Bue(e,(rE(),B0e),t,n,null,!1)}function O2n(){return Fl(),he(le(oc,1),it,108,0,[y_e,Ec,i4])}function N2n(){return ol(),he(le(X6t,1),it,472,0,[a1,Fb,w0])}function P2n(){return Bl(),he(le(W6t,1),it,471,0,[Fd,Bb,v0])}function B2n(){return t1(),he(le(s4,1),it,237,0,[Gc,$u,Kc])}function F2n(){return lA(),he(le(dAe,1),it,391,0,[t1e,e1e,n1e])}function R2n(){return Ow(),he(le(m1e,1),it,372,0,[o3,Rb,a3])}function j2n(){return dA(),he(le(dLe,1),it,322,0,[HL,mB,fLe])}function $2n(){return pV(),he(le(pLe,1),it,351,0,[gLe,YK,_1e])}function z2n(){return Vm(),he(le(mxt,1),it,460,0,[M1e,FT,P6])}function q2n(){return vE(),he(le($1e,1),it,299,0,[R1e,j1e,vB])}function H2n(){return ep(),he(le(Cxt,1),it,311,0,[wB,F6,Ux])}function V2n(){return EA(),he(le(mDe,1),it,390,0,[pde,bDe,SW])}function U2n(){return qo(),he(le(sEt,1),it,463,0,[sM,$l,zu])}function G2n(){return LV(),he(le(MDe,1),it,387,0,[ADe,Tde,LDe])}function K2n(){return yA(),he(le(DDe,1),it,349,0,[Sde,Cde,MB])}function W2n(){return SE(),he(le(ODe,1),it,350,0,[_de,IDe,aM])}function Y2n(){return gV(),he(le(BDe,1),it,352,0,[PDe,Ade,NDe])}function X2n(){return OV(),he(le(FDe,1),it,388,0,[Lde,XT,k4])}function Q2n(){return Iw(),he(le(SEt,1),it,464,0,[DB,oM,MW])}function I1(e){return Ic(he(le(Ea,1),dt,8,0,[e.i.n,e.n,e.a]))}function J2n(){return xA(),he(le(eIe,1),it,392,0,[ZDe,Ide,OB])}function jot(){jot=U,FTt=yl(new Xs,(wx(),hM),(WA(),VDe))}function RH(){RH=U,Ude=new V3e("DFS",0),xIe=new V3e("BFS",1)}function $ot(e,t,n){var r;r=new hte,r.b=t,r.a=n,++t.b,vt(e.d,r)}function Z2n(e,t,n){var r;r=new Eo(n.d),Oi(r,e),b8e(t,r.a,r.b)}function ebn(e,t){Ont(e,Yr(va(bw(t,24),ZU)),Yr(va(t,ZU)))}function Ey(e,t){if(e<0||e>t)throw ue(new tc(dEe+e+gEe+t))}function Sn(e,t){if(e<0||e>=t)throw ue(new tc(dEe+e+gEe+t))}function Xn(e,t){if(e<0||e>=t)throw ue(new e3e(dEe+e+gEe+t))}function kn(e,t){this.b=(nr(e),e),this.a=t&Xy?t:t|64|_d}function K5e(e){var t;return xb(e),t=(Ew(),Ew(),D0e),lV(e,t)}function tbn(e,t,n){var r;return r=ZA(e,t,!1),r.b<=t&&r.a<=n}function nbn(){return tV(),he(le(pOe,1),it,439,0,[gge,gOe,dOe])}function rbn(){return qV(),he(le(XIe,1),it,394,0,[YIe,uge,WIe])}function ibn(){return WV(),he(le(KIe,1),it,445,0,[RB,VW,rge])}function sbn(){return sU(),he(le(gCt,1),it,456,0,[ige,age,sge])}function abn(){return LN(),he(le(AIe,1),it,393,0,[zW,SIe,_Ie])}function obn(){return AV(),he(le(GIe,1),it,300,0,[nge,UIe,VIe])}function cbn(){return rp(),he(le(YNe,1),it,346,0,[oY,A2,DM])}function ubn(){return PN(),he(le(pge,1),it,444,0,[WW,YW,XW])}function lbn(){return F1(),he(le(FNe,1),it,278,0,[nC,_4,rC])}function hbn(){return dx(),he(le(nPe,1),it,280,0,[tPe,L4,dY])}function _w(e){return Xr(e),De(e,16)?new Ol(l(e,16)):$k(e.Kc())}function W5e(e,t){return e&&e.equals?e.equals(t):qe(e)===qe(t)}function va(e,t){return mb(rgn(wc(e)?Mf(e):e,wc(t)?Mf(t):t))}function Q0(e,t){return mb(ign(wc(e)?Mf(e):e,wc(t)?Mf(t):t))}function moe(e,t){return mb(sgn(wc(e)?Mf(e):e,wc(t)?Mf(t):t))}function fbn(e,t){var n;return n=(nr(e),e).g,qye(!!n),nr(t),n(t)}function zot(e,t){var n,r;return r=Hk(e,t),n=e.a.fd(r),new VZe(e,n)}function dbn(e){return e.Db>>16!=6?null:l(Uue(e),241)}function gbn(e){if(e.p!=2)throw ue(new pl);return Yr(e.f)&Zs}function pbn(e){if(e.p!=2)throw ue(new pl);return Yr(e.k)&Zs}function re(e){return mr(e.ar?1:0}function Uot(e,t){var n,r;return n=$oe(t),r=n,l(cr(e.c,r),17).a}function voe(e,t,n){var r;r=e.d[t.p],e.d[t.p]=e.d[n.p],e.d[n.p]=r}function Sbn(e,t,n){var r;e.n&&t&&n&&(r=new Kne,vt(e.e,r))}function woe(e,t){if(na(e.a,t),t.d)throw ue(new Ac(e3t));t.d=e}function Q5e(e,t){this.a=new bt,this.d=new bt,this.f=e,this.c=t}function Got(){this.c=new Lnt,this.a=new Put,this.b=new UQe,uet()}function Kot(){hx(),this.b=new Pr,this.a=new Pr,this.c=new bt}function Wot(e,t,n){this.d=e,this.j=t,this.e=n,this.o=-1,this.p=3}function Yot(e,t,n){this.d=e,this.k=t,this.f=n,this.o=-1,this.p=5}function Xot(e,t,n,r,a,o){Q6e.call(this,e,t,n,r,a),o&&(this.o=-2)}function Qot(e,t,n,r,a,o){J6e.call(this,e,t,n,r,a),o&&(this.o=-2)}function Jot(e,t,n,r,a,o){p6e.call(this,e,t,n,r,a),o&&(this.o=-2)}function Zot(e,t,n,r,a,o){t7e.call(this,e,t,n,r,a),o&&(this.o=-2)}function ect(e,t,n,r,a,o){b6e.call(this,e,t,n,r,a),o&&(this.o=-2)}function tct(e,t,n,r,a,o){Z6e.call(this,e,t,n,r,a),o&&(this.o=-2)}function nct(e,t,n,r,a,o){e7e.call(this,e,t,n,r,a),o&&(this.o=-2)}function rct(e,t,n,r,a,o){m6e.call(this,e,t,n,r,a),o&&(this.o=-2)}function ict(e,t,n,r){Nz.call(this,n),this.b=e,this.c=t,this.d=r}function sct(e,t){this.f=e,this.a=(eE(),SY),this.c=SY,this.b=t}function act(e,t){this.g=e,this.d=(eE(),_Y),this.a=_Y,this.b=t}function J5e(e,t){!e.c&&(e.c=new Ls(e,0)),HU(e.c,(Gi(),HM),t)}function _bn(e,t){return uTn(e,t,De(t,102)&&(l(t,19).Bb&Io)!=0)}function Abn(e,t){return $st(Zc(e.q.getTime()),Zc(t.q.getTime()))}function oct(e){return Cae(e.e.Rd().gc()*e.c.Rd().gc(),16,new pie(e))}function Lbn(e){return!!e.u&&du(e.u.a).i!=0&&!(e.n&&cue(e.n))}function Mbn(e){return!!e.a&&Xl(e.a.a).i!=0&&!(e.b&&uue(e.b))}function Z5e(e,t){return t==0?!!e.o&&e.o.f!=0:nue(e,t)}function Dbn(e,t,n){var r;return r=l(e.Zb().xc(t),16),!!r&&r.Hc(n)}function cct(e,t,n){var r;return r=l(e.Zb().xc(t),16),!!r&&r.Mc(n)}function uct(e,t){var n;return n=1-t,e.a[n]=EV(e.a[n],n),EV(e,t)}function lct(e,t){var n,r;return r=va(e,Vo),n=l0(t,32),Q0(n,r)}function hct(e,t,n){var r;r=(Xr(e),new Ol(e)),O7n(new Eot(r,t,n))}function QO(e,t,n){var r;r=(Xr(e),new Ol(e)),N7n(new Tot(r,t,n))}function zc(e,t,n,r,a,o){return qft(e,t,n,o),c8e(e,r),u8e(e,a),e}function fct(e,t,n,r){return e.a+=""+tf(t==null?ul:xc(t),n,r),e}function Ua(e,t){this.a=e,kr.call(this,e),Ey(t,e.gc()),this.b=t}function dct(e){this.a=We(wa,Rn,1,P7e(b.Math.max(8,e))<<1,5,1)}function JO(e){return l(j1(e,We(wg,m2,10,e.c.length,0,1)),199)}function kd(e){return l(j1(e,We(u1e,Bhe,18,e.c.length,0,1)),483)}function gct(e){return e.a?e.e.length==0?e.a.a:e.a.a+(""+e.e):e.c}function iA(e){for(;e.d>0&&e.a[--e.d]==0;);e.a[e.d++]==0&&(e.e=0)}function pct(e){return mr(e.b.b!=e.d.a),e.c=e.b=e.b.b,--e.a,e.c.c}function Ibn(e,t,n){e.a=t,e.c=n,e.b.a.$b(),Ch(e.d),ay(e.e.a.c,0)}function bct(e,t){var n;e.e=new Vwe,n=Hy(t),Vs(n,e.c),Mbt(e,n,0)}function Qs(e,t,n,r){var a;a=new J9,a.a=t,a.b=n,a.c=r,ui(e.a,a)}function gt(e,t,n,r){var a;a=new J9,a.a=t,a.b=n,a.c=r,ui(e.b,a)}function mct(e,t,n){if(e<0||tn)throw ue(new tc(U9n(e,t,n)))}function ZO(e,t){if(e<0||e>=t)throw ue(new tc(kkn(e,t)));return e}function Obn(e){if(!("stack"in e))try{throw e}catch{}return e}function G5(e){return p_(),De(e.g,10)?l(e.g,10):null}function Nbn(e){return V5(e).dc()?!1:(rhn(e,new oe),!0)}function Fm(e){var t;return wc(e)?(t=e,t==-0?0:t):Yvn(e)}function vct(e,t){return De(t,44)?gue(e.a,l(t,44)):!1}function wct(e,t){return De(t,44)?gue(e.a,l(t,44)):!1}function yct(e,t){return De(t,44)?gue(e.a,l(t,44)):!1}function e6e(e){var t;return fb(e),t=new Ne,A5(e.a,new x5(t)),t}function t6e(){var e,t,n;return t=(n=(e=new Qv,e),n),vt(RPe,t),t}function jH(e){var t;return fb(e),t=new gn,A5(e.a,new T8(t)),t}function Pbn(e,t){return e.a<=e.b?(t.Dd(e.a++),!0):!1}function xct(e){oce.call(this,e,(rE(),O0e),null,!1,null,!1)}function kct(){kct=U,A7t=Kr((Zz(),he(le(U_e,1),it,489,0,[G0e])))}function Ect(){Ect=U,jDe=pat(pt(1),pt(4)),RDe=pat(pt(1),pt(2))}function Bbn(e,t){return new wae(t,z_(Ja(t.e),e,e),(Hn(),!0))}function $H(e){return new Bu((Mh(e,Fle),cV(bo(bo(5,e),e/10|0))))}function Fbn(e){return Cae(e.e.Rd().gc()*e.c.Rd().gc(),273,new gie(e))}function Tct(e){return l(j1(e,We(F8t,I3t,12,e.c.length,0,1)),2042)}function Rbn(e){return Sh(),!Do(e)&&!(!Do(e)&&e.c.i.c==e.d.i.c)}function jbn(e,t){return ux(),l(Q(t,(Hc(),W6)),17).a>=e.gc()}function sA(e,t){xIn(t,e),N4e(e.d),N4e(l(Q(e,(Nt(),wW)),214))}function yoe(e,t){kIn(t,e),P4e(e.d),P4e(l(Q(e,(Nt(),wW)),214))}function $bn(e,t,n){e.d&&al(e.d.e,e),e.d=t,e.d&&pw(e.d.e,n,e)}function zbn(e,t,n){return n.f.c.length>0?u5e(e.a,t,n):u5e(e.b,t,n)}function qbn(e,t,n){var r;r=s6n();try{return Lfn(e,t,n)}finally{Nmn(r)}}function Aw(e,t){var n,r;return n=Wg(e,t),r=null,n&&(r=n.pe()),r}function aA(e,t){var n,r;return n=Wg(e,t),r=null,n&&(r=n.se()),r}function Jk(e,t){var n,r;return n=_y(e,t),r=null,n&&(r=n.se()),r}function Yg(e,t){var n,r;return n=Wg(e,t),r=null,n&&(r=e9e(n)),r}function Hbn(e,t,n){var r;return r=NE(n),RU(e.g,r,t),RU(e.i,t,n),t}function n6e(e,t,n){this.d=new OYe(this),this.e=e,this.i=t,this.f=n}function Cct(e,t,n,r){this.e=null,this.c=e,this.d=t,this.a=n,this.b=r}function Sct(e,t,n,r){Ent(this),this.c=e,this.e=t,this.f=n,this.b=r}function r6e(e,t,n,r){this.d=e,this.n=t,this.g=n,this.o=r,this.p=-1}function _ct(e,t,n,r){return De(n,59)?new rrt(e,t,n,r):new r5e(e,t,n,r)}function Zk(e){return De(e,16)?l(e,16).dc():!e.Kc().Ob()}function Act(e){if(e.e.g!=e.b)throw ue(new Xh);return!!e.c&&e.d>0}function Br(e){return mr(e.b!=e.d.c),e.c=e.b,e.b=e.b.a,++e.a,e.c.c}function i6e(e,t){nr(t),Ts(e.a,e.c,t),e.c=e.c+1&e.a.length-1,Xdt(e)}function gb(e,t){nr(t),e.b=e.b-1&e.a.length-1,Ts(e.a,e.b,t),Xdt(e)}function Lct(e){var t;t=e.Gh(),this.a=De(t,71)?l(t,71).Ii():t.Kc()}function Vbn(e){return new kn(Lwn(l(e.a.md(),16).gc(),e.a.ld()),16)}function Mct(){Mct=U,UCt=Kr((nq(),he(le(wOe,1),it,490,0,[bge])))}function Dct(){Dct=U,KCt=Kr((rq(),he(le(GCt,1),it,558,0,[mge])))}function Ict(){Ict=U,hSt=Kr((b_(),he(le($Oe,1),it,539,0,[qB])))}function Ubn(){return Km(),he(le(mAe,1),it,389,0,[c4,bAe,o1e,c1e])}function Gbn(){return rE(),he(le(fK,1),it,304,0,[O0e,N0e,P0e,B0e])}function Kbn(){return bx(),he(le(E7t,1),it,332,0,[aB,sB,oB,cB])}function Wbn(){return NA(),he(le(S7t,1),it,406,0,[uB,bK,mK,lB])}function Ybn(){return Pw(),he(le(x7t,1),it,417,0,[iB,rB,V0e,U0e])}function Xbn(){return wE(),he(le(C8t,1),it,416,0,[s3,o4,a4,M6])}function Qbn(){return R1(),he(le(txt,1),it,421,0,[Vx,MT,DT,b1e])}function Jbn(){return IV(),he(le(V8t,1),it,371,0,[p1e,HK,VK,pB])}function Zbn(){return By(),he(le(mde,1),it,203,0,[_W,bde,G6,U6])}function emn(){return Ed(),he(le(SDe,1),it,284,0,[E2,CDe,yde,xde])}function tmn(e){var t;return e.j==(Ct(),Dr)&&(t=v2t(e),vl(t,ar))}function nmn(e,t){var n;n=t.a,po(n,t.c.d),Fa(n,t.d.d),Dy(n.a,e.n)}function s6e(e,t){var n;return n=l(B1(e.b,t),67),!n&&(n=new os),n}function ix(e){return p_(),De(e.g,154)?l(e.g,154):null}function rmn(e){e.a=null,e.e=null,ay(e.b.c,0),ay(e.f.c,0),e.c=null}function zH(){zH=U,z1e=new F3e(cT,0),NLe=new F3e("TOP_LEFT",1)}function oA(){oA=U,uM=new j3e("UPPER",0),cM=new j3e("LOWER",1)}function imn(e,t){return z8(new lt(t.e.a+t.f.a/2,t.e.b+t.f.b/2),e)}function Oct(e,t){return l(fh(vy(l($i(e.k,t),15).Oc(),I6)),113)}function Nct(e,t){return l(fh(Y8(l($i(e.k,t),15).Oc(),I6)),113)}function smn(){return wx(),he(le(qDe,1),it,405,0,[NW,lM,hM,fM])}function amn(){return kA(),he(le(yIe,1),it,353,0,[Vde,jW,Hde,qde])}function omn(){return uU(),he(le(HIe,1),it,354,0,[tge,zIe,qIe,$Ie])}function cmn(){return mh(),he(le(BM,1),it,386,0,[iF,Cv,rF,A4])}function umn(){return Ih(),he(le(JSt,1),it,291,0,[eF,kg,Gb,ZB])}function lmn(){return ip(),he(le(Vge,1),it,223,0,[Hge,JB,iC,s9])}function hmn(){return VV(),he(le(cPe,1),it,320,0,[Kge,sPe,oPe,aPe])}function fmn(){return NV(),he(le(p_t,1),it,415,0,[Wge,lPe,uPe,hPe])}function dmn(e){return BH(),Hu(Zge,e)?l(cr(Zge,e),341).Qg():null}function nf(e,t,n){return t<0?que(e,n):l(n,69).wk().Bk(e,e.hi(),t)}function gmn(e,t,n){var r;return r=NE(n),RU(e.j,r,t),ki(e.k,t,n),t}function pmn(e,t,n){var r;return r=NE(n),RU(e.d,r,t),ki(e.e,t,n),t}function Pct(e){var t,n;return t=(rb(),n=new TI,n),e&&AU(t,e),t}function a6e(e){var t;return t=e.aj(e.i),e.i>0&&pu(e.g,0,t,0,e.i),t}function Bct(e,t){var n;for(n=e.j.c.length;n>24}function mmn(e){if(e.p!=1)throw ue(new pl);return Yr(e.k)<<24>>24}function vmn(e){if(e.p!=7)throw ue(new pl);return Yr(e.k)<<16>>16}function wmn(e){if(e.p!=7)throw ue(new pl);return Yr(e.f)<<16>>16}function K5(e,t){return t.e==0||e.e==0?BL:(GE(),Que(e,t))}function jct(e,t){return qe(t)===qe(e)?"(this Map)":t==null?ul:xc(t)}function ymn(e,t,n){return Nae(Ge(hc(zo(e.f,t))),Ge(hc(zo(e.f,n))))}function xmn(e,t,n){var r;r=l(cr(e.g,n),60),vt(e.a.c,new ca(t,r))}function $ct(e,t,n){e.i=0,e.e=0,t!=n&&(k0t(e,t,n),x0t(e,t,n))}function kmn(e,t,n,r,a){var o;o=ETn(a,n,r),vt(t,pkn(a,o)),a9n(e,a,t)}function o6e(e,t,n,r,a){this.i=e,this.a=t,this.e=n,this.j=r,this.f=a}function zct(e,t){R5e.call(this),this.a=e,this.b=t,vt(this.a.b,this)}function qct(e){this.b=new Pr,this.c=new Pr,this.d=new Pr,this.a=e}function Hct(e,t){var n;return n=new S5,e.Gd(n),n.a+="..",t.Hd(n),n.a}function Vct(e,t){var n;for(n=t;n;)dw(e,n.i,n.j),n=ds(n);return e}function Uct(e,t,n){var r;return r=NE(n),ki(e.b,r,t),ki(e.c,t,n),t}function Xg(e){var t;for(t=0;e.Ob();)e.Pb(),t=bo(t,1);return cV(t)}function sg(e,t){Fo();var n;return n=l(e,69).vk(),k9n(n,t),n.xl(t)}function Emn(e,t,n){if(n){var r=n.oe();e.a[t]=r(n)}else delete e.a[t]}function c6e(e,t){var n;n=e.q.getHours(),e.q.setFullYear(t+Lb),XA(e,n)}function Tmn(e,t){return l(t==null?hc(zo(e.f,null)):y_(e.i,t),288)}function u6e(e,t){return e==(Zn(),Ps)&&t==Ps?4:e==Ps||t==Ps?8:32}function qH(e,t,n){return $U(e,t,n,De(t,102)&&(l(t,19).Bb&Io)!=0)}function Cmn(e,t,n){return XE(e,t,n,De(t,102)&&(l(t,19).Bb&Io)!=0)}function Smn(e,t,n){return bTn(e,t,n,De(t,102)&&(l(t,19).Bb&Io)!=0)}function l6e(e){e.b!=e.c&&(e.a=We(wa,Rn,1,8,5,1),e.b=0,e.c=0)}function cA(e){return mr(e.a=0&&e.a[n]===t[n];n--);return n<0}function HH(e){var t;return e?new K4e(e):(t=new bd,sce(t,e),t)}function Omn(e,t){var n,r;r=!1;do n=h0t(e,t),r=r|n;while(n);return r}function Nmn(e){e&&awn((Xwe(),GSe)),--aK,e&&oK!=-1&&(Cln(oK),oK=-1)}function VH(e){Rxe(),Ont(this,Yr(va(bw(e,24),ZU)),Yr(va(e,ZU)))}function Xct(){Xct=U,q6t=Kr((ZV(),he(le(k_e,1),it,436,0,[j0e,x_e])))}function Qct(){Qct=U,H6t=Kr((aV(),he(le(T_e,1),it,435,0,[E_e,$0e])))}function Jct(){Jct=U,U7t=Kr((oV(),he(le(J_e,1),it,432,0,[Q0e,yK])))}function Zct(){Zct=U,z8t=Kr((dE(),he(le($8t,1),it,517,0,[dB,h1e])))}function eut(){eut=U,_xt=Kr((zH(),he(le(PLe,1),it,429,0,[z1e,NLe])))}function tut(){tut=U,bxt=Kr((pN(),he(le(wLe,1),it,428,0,[XK,vLe])))}function nut(){nut=U,yxt=Kr((cN(),he(le(kLe,1),it,488,0,[xLe,JK])))}function rut(){rut=U,iEt=Kr((dN(),he(le(_De,1),it,430,0,[kde,Ede])))}function iut(){iut=U,IEt=Kr((oA(),he(le(DEt,1),it,531,0,[uM,cM])))}function sut(){sut=U,fxt=Kr((JH(),he(le(hLe,1),it,431,0,[lLe,S1e])))}function aut(){aut=U,BTt=Kr((RH(),he(le(kIe,1),it,433,0,[Ude,xIe])))}function out(){out=U,zTt=Kr((kV(),he(le(EIe,1),it,501,0,[$W,X6])))}function cut(){cut=U,jEt=Kr((xd(),he(le(REt,1),it,523,0,[w3,T2])))}function uut(){uut=U,zEt=Kr((D1(),he(le($Et,1),it,522,0,[wv,Y1])))}function lut(){lut=U,nTt=Kr((J0(),he(le(tTt,1),it,528,0,[E4,qb])))}function hut(){hut=U,uTt=Kr((Sw(),he(le(cTt,1),it,465,0,[Hb,K6])))}function fut(){fut=U,VTt=Kr((eV(),he(le(CIe,1),it,434,0,[TIe,Qde])))}function dut(){dut=U,jCt=Kr((GH(),he(le(fOe,1),it,491,0,[dge,hOe])))}function gut(){gut=U,zCt=Kr((fce(),he(le(vOe,1),it,492,0,[bOe,mOe])))}function put(){put=U,WCt=Kr((rN(),he(le(yOe,1),it,438,0,[vge,QW])))}function but(){but=U,fSt=Kr((CN(),he(le(qOe,1),it,437,0,[ZW,zOe])))}function mut(){mut=U,f_t=Kr((mae(),he(le(gY,1),it,347,0,[rPe,iPe])))}function Pmn(){return Js(),he(le(LM,1),it,88,0,[J1,vc,uc,Q1,wf])}function Bmn(){return Ct(),he(le(Oo,1),au,64,0,[Pc,Qn,ar,Dr,er])}function Fmn(e,t,n){return l(t==null?ju(e.f,null,n):Bw(e.i,t,n),288)}function Rmn(e){return(e.k==(Zn(),Ps)||e.k==Us)&&ns(e,(ft(),KL))}function Coe(e){return e.c&&e.d?X5e(e.c)+"->"+X5e(e.d):"e_"+fw(e)}function to(e,t){var n,r;for(nr(t),r=e.Kc();r.Ob();)n=r.Pb(),t.Cd(n)}function jmn(e,t){var n;n=new M8,Nm(n,"x",t.a),Nm(n,"y",t.b),J8(e,n)}function $mn(e,t){var n;n=new M8,Nm(n,"x",t.a),Nm(n,"y",t.b),J8(e,n)}function vut(e,t){var n;for(n=t;n;)dw(e,-n.i,-n.j),n=ds(n);return e}function f6e(e,t){var n,r;for(n=t,r=0;n>0;)r+=e.a[n],n-=n&-n;return r}function rf(e,t,n){var r;return r=(Sn(t,e.c.length),e.c[t]),e.c[t]=n,r}function d6e(e,t,n){e.a.c.length=0,hMn(e,t,n),e.a.c.length==0||j_n(e,t)}function eN(e){e.i=0,aO(e.b,null),aO(e.c,null),e.a=null,e.e=null,++e.g}function UH(){UH=U,G1=!0,I6t=!1,O6t=!1,P6t=!1,N6t=!1}function Soe(e){UH(),!G1&&(this.c=e,this.e=!0,this.a=new bt)}function wut(e,t){this.c=0,this.b=t,qtt.call(this,e,17493),this.a=this.c}function yut(e){kwt(),SQe(this),this.a=new os,G7e(this,e),ui(this.a,e)}function xut(){Yse(this),this.b=new lt(gs,gs),this.a=new lt(ia,ia)}function GH(){GH=U,dge=new K3e(HEe,0),hOe=new K3e("TARGET_WIDTH",1)}function W5(e,t){return(xb(e),_k(new bn(e,new $6e(t,e.a)))).Bd(zx)}function zmn(){return uo(),he(le(gAe,1),it,367,0,[y0,vg,bu,_u,mc])}function qmn(){return Ry(),he(le(rxt,1),it,375,0,[bB,KK,WK,GK,UK])}function Hmn(){return l2(),he(le(mLe,1),it,348,0,[A1e,bLe,L1e,BT,PT])}function Vmn(){return OA(),he(le(wDe,1),it,323,0,[vDe,vde,wde,rM,iM])}function Umn(){return hf(),he(le(WLe,1),it,171,0,[EB,YL,$b,XL,d4])}function Gmn(){return bU(),he(le(qTt,1),it,368,0,[Yde,Gde,Xde,Kde,Wde])}function Kmn(){return VA(),he(le(qCt,1),it,373,0,[Q6,e9,xM,yM,zB])}function Wmn(){return XN(),he(le(TOe,1),it,324,0,[xOe,wge,EOe,yge,kOe])}function Ymn(){return r1(),he(le(xg,1),it,170,0,[Pn,ha,zd,yv,S2])}function Xmn(){return t6(),he(le(OM,1),it,256,0,[Kb,tF,XNe,IM,QNe])}function Qmn(e){return Hz(),function(){return qbn(e,this,arguments)}}function Do(e){return!e.c||!e.d?!1:!!e.c.i&&e.c.i==e.d.i}function g6e(e,t){return De(t,143)?vn(e.c,l(t,143).c):!1}function Yl(e){return e.t||(e.t=new bQe(e),_A(new IJe(e),0,e.t)),e.t}function kut(e){this.b=e,or.call(this,e),this.a=l(Kn(this.b.a,4),129)}function Eut(e){this.b=e,H8.call(this,e),this.a=l(Kn(this.b.a,4),129)}function h0(e,t,n,r,a){Out.call(this,t,r,a),this.c=e,this.b=n}function p6e(e,t,n,r,a){Wot.call(this,t,r,a),this.c=e,this.a=n}function b6e(e,t,n,r,a){Yot.call(this,t,r,a),this.c=e,this.a=n}function m6e(e,t,n,r,a){Out.call(this,t,r,a),this.c=e,this.a=n}function _oe(e,t){var n;return n=l(B1(e.d,t),23),n||l(B1(e.e,t),23)}function Tut(e,t){var n,r;return n=t.ld(),r=e.Fe(n),!!r&&Jc(r.e,t.md())}function Cut(e,t){var n;return n=t.ld(),new iw(n,e.e.pc(n,l(t.md(),16)))}function Jmn(e,t){var n;return n=e.a.get(t),n??We(wa,Rn,1,0,5,1)}function Sut(e){var t;return t=e.length,vn(sr.substr(sr.length-t,t),e)}function xr(e){if(jr(e))return e.c=e.a,e.a.Pb();throw ue(new _c)}function v6e(e,t){return t==0||e.e==0?e:t>0?pbt(e,t):j1t(e,-t)}function sx(e,t){return t==0||e.e==0?e:t>0?j1t(e,t):pbt(e,-t)}function w6e(e){uln.call(this,e==null?ul:xc(e),De(e,82)?l(e,82):null)}function _ut(e){var t;return e.c||(t=e.r,De(t,90)&&(e.c=l(t,29))),e.c}function Aoe(e){var t;return t=new Tw,pc(t,e),rt(t,(Nt(),cc),null),t}function Aut(e){var t,n;return t=e.c.i,n=e.d.i,t.k==(Zn(),Us)&&n.k==Us}function Loe(e){var t,n,r;return t=e&eh,n=e>>22&eh,r=e<0?hp:0,qu(t,n,r)}function Zmn(e){var t,n,r,a;for(n=e,r=0,a=n.length;r=0?e.Lh(r,n,!0):Hw(e,t,n)}function tvn(e,t,n){return Yi(z8(BE(e),Ja(t.b)),z8(BE(e),Ja(n.b)))}function nvn(e,t,n){return Yi(z8(BE(e),Ja(t.e)),z8(BE(e),Ja(n.e)))}function rvn(e,t){return b.Math.min(pb(t.a,e.d.d.c),pb(t.b,e.d.d.c))}function tN(e,t){e._i(e.i+1),R_(e,e.i,e.Zi(e.i,t)),e.Mi(e.i++,t),e.Ni()}function uA(e){var t,n;++e.j,t=e.g,n=e.i,e.g=null,e.i=0,e.Oi(n,t),e.Ni()}function Lut(e,t,n){var r;r=new vye(e.a),bA(r,e.a.a),ju(r.f,t,n),e.a.a=r}function y6e(e,t,n,r){var a;for(a=0;at)throw ue(new tc(u9e(e,t,"index")));return e}function t2(e,t){var n;return n=(Sn(t,e.c.length),e.c[t]),d3e(e.c,t,1),n}function E6e(e,t){var n,r;return n=(nr(e),e),r=(nr(t),t),n==r?0:nt.p?-1:0}function Fut(e){var t;return e.a||(t=e.r,De(t,156)&&(e.a=l(t,156))),e.a}function uvn(e,t,n){var r;return++e.e,--e.f,r=l(e.d[t].gd(n),136),r.md()}function lvn(e){var t,n;return t=e.ld(),n=l(e.md(),16),NO(n.Nc(),new bie(t))}function Rut(e,t){return Hu(e.a,t)?(ax(e.a,t),!0):!1}function ox(e,t,n){return ZO(t,e.e.Rd().gc()),ZO(n,e.c.Rd().gc()),e.a[t][n]}function WH(e,t,n){this.a=e,this.b=t,this.c=n,vt(e.t,this),vt(t.i,this)}function YH(e,t,n,r){this.f=e,this.e=t,this.d=n,this.b=r,this.c=r?r.d:null}function nN(){this.b=new os,this.a=new os,this.b=new os,this.a=new os}function eE(){eE=U;var e,t;SY=(Sk(),t=new Fz,t),_Y=(e=new zie,e)}function hvn(e){var t;return xb(e),t=new Mit(e,e.a.e,e.a.d|4),new Vye(e,t)}function jut(e){var t;for(fb(e),t=0;e.a.Bd(new An);)t=bo(t,1);return t}function XH(e,t){return nr(t),e.c=0,"Initial capacity must not be negative")}function QH(){QH=U,kM=new Ui("org.eclipse.elk.labels.labelManager")}function $ut(){$ut=U,sLe=new vs("separateLayerConnections",(IV(),p1e))}function J0(){J0=U,E4=new q3e("REGULAR",0),qb=new q3e("CRITICAL",1)}function rN(){rN=U,vge=new Y3e("FIXED",0),QW=new Y3e("CENTER_NODE",1)}function JH(){JH=U,lLe=new N3e("QUADRATIC",0),S1e=new N3e("SCANLINE",1)}function zut(){zut=U,dxt=Kr((dA(),he(le(dLe,1),it,322,0,[HL,mB,fLe])))}function qut(){qut=U,gxt=Kr((pV(),he(le(pLe,1),it,351,0,[gLe,YK,_1e])))}function Hut(){Hut=U,uxt=Kr((Ow(),he(le(m1e,1),it,372,0,[o3,Rb,a3])))}function Vut(){Vut=U,vxt=Kr((Vm(),he(le(mxt,1),it,460,0,[M1e,FT,P6])))}function Uut(){Uut=U,Txt=Kr((vE(),he(le($1e,1),it,299,0,[R1e,j1e,vB])))}function Gut(){Gut=U,Sxt=Kr((ep(),he(le(Cxt,1),it,311,0,[wB,F6,Ux])))}function Kut(){Kut=U,Zkt=Kr((EA(),he(le(mDe,1),it,390,0,[pde,bDe,SW])))}function Wut(){Wut=U,oEt=Kr((LV(),he(le(MDe,1),it,387,0,[ADe,Tde,LDe])))}function Yut(){Yut=U,cEt=Kr((yA(),he(le(DDe,1),it,349,0,[Sde,Cde,MB])))}function Xut(){Xut=U,aEt=Kr((qo(),he(le(sEt,1),it,463,0,[sM,$l,zu])))}function Qut(){Qut=U,uEt=Kr((SE(),he(le(ODe,1),it,350,0,[_de,IDe,aM])))}function Jut(){Jut=U,lEt=Kr((gV(),he(le(BDe,1),it,352,0,[PDe,Ade,NDe])))}function Zut(){Zut=U,hEt=Kr((OV(),he(le(FDe,1),it,388,0,[Lde,XT,k4])))}function elt(){elt=U,fTt=Kr((xA(),he(le(eIe,1),it,392,0,[ZDe,Ide,OB])))}function tlt(){tlt=U,UTt=Kr((LN(),he(le(AIe,1),it,393,0,[zW,SIe,_Ie])))}function nlt(){nlt=U,fCt=Kr((AV(),he(le(GIe,1),it,300,0,[nge,UIe,VIe])))}function rlt(){rlt=U,dCt=Kr((WV(),he(le(KIe,1),it,445,0,[RB,VW,rge])))}function ilt(){ilt=U,pCt=Kr((sU(),he(le(gCt,1),it,456,0,[ige,age,sge])))}function slt(){slt=U,vCt=Kr((qV(),he(le(XIe,1),it,394,0,[YIe,uge,WIe])))}function alt(){alt=U,$Ct=Kr((tV(),he(le(pOe,1),it,439,0,[gge,gOe,dOe])))}function olt(){olt=U,_Et=Kr((Iw(),he(le(SEt,1),it,464,0,[DB,oM,MW])))}function clt(){clt=U,Y6t=Kr((Bl(),he(le(W6t,1),it,471,0,[Fd,Bb,v0])))}function ult(){ult=U,K6t=Kr((t1(),he(le(s4,1),it,237,0,[Gc,$u,Kc])))}function llt(){llt=U,Q6t=Kr((ol(),he(le(X6t,1),it,472,0,[a1,Fb,w0])))}function hlt(){hlt=U,B6t=Kr((Fl(),he(le(oc,1),it,108,0,[y_e,Ec,i4])))}function flt(){flt=U,m8t=Kr((lA(),he(le(dAe,1),it,391,0,[t1e,e1e,n1e])))}function dlt(){dlt=U,QSt=Kr((rp(),he(le(YNe,1),it,346,0,[oY,A2,DM])))}function glt(){glt=U,VCt=Kr((PN(),he(le(pge,1),it,444,0,[WW,YW,XW])))}function plt(){plt=U,KSt=Kr((F1(),he(le(FNe,1),it,278,0,[nC,_4,rC])))}function blt(){blt=U,h_t=Kr((dx(),he(le(nPe,1),it,280,0,[tPe,L4,dY])))}function P1(e,t){return!e.o&&(e.o=new xl((su(),Cg),L2,e,0)),Kce(e.o,t)}function fvn(e,t){var n;e.C&&(n=l(Qo(e.b,t),127).n,n.d=e.C.d,n.a=e.C.a)}function A6e(e){var t,n,r,a;a=e.d,t=e.a,n=e.b,r=e.c,e.d=n,e.a=r,e.b=a,e.c=t}function dvn(e){return!e.g&&(e.g=new MS),!e.g.b&&(e.g.b=new fQe(e)),e.g.b}function iN(e){return!e.g&&(e.g=new MS),!e.g.c&&(e.g.c=new pQe(e)),e.g.c}function gvn(e){return!e.g&&(e.g=new MS),!e.g.d&&(e.g.d=new dQe(e)),e.g.d}function pvn(e){return!e.g&&(e.g=new MS),!e.g.a&&(e.g.a=new gQe(e)),e.g.a}function bvn(e,t,n,r){return n&&(r=n.Rh(t,ms(n.Dh(),e.c.uk()),null,r)),r}function mvn(e,t,n,r){return n&&(r=n.Th(t,ms(n.Dh(),e.c.uk()),null,r)),r}function Ooe(e,t,n,r){var a;return a=We(Vr,di,28,t+1,15,1),xAn(a,e,t,n,r),a}function We(e,t,n,r,a,o){var f;return f=zdt(a,r),a!=10&&he(le(e,o),t,n,a,f),f}function vvn(e,t,n){var r,a;for(a=new mE(t,e),r=0;rn||t=0?e.Lh(n,!0,!0):Hw(e,t,!0)}function Pvn(e,t,n){var r;return r=w0t(e,t,n),e.b=new TV(r.c.length),Q9e(e,r)}function Bvn(e){if(e.b<=0)throw ue(new _c);return--e.b,e.a-=e.c.c,pt(e.a)}function Fvn(e){var t;if(!e.a)throw ue(new Lat);return t=e.a,e.a=ds(e.a),t}function Rvn(e){for(;!e.a;)if(!tit(e.c,new ZS(e)))return!1;return!0}function cx(e){var t;return Xr(e),De(e,204)?(t=l(e,204),t):new w8(e)}function jvn(e){ZH(),l(e.of((pi(),S4)),181).Fc((Rl(),nF)),e.qf($ge,null)}function ZH(){ZH=U,pSt=new l$,mSt=new h$,bSt=_yn((pi(),$ge),pSt,Ub,mSt)}function eV(){eV=U,TIe=new G3e("LEAF_NUMBER",0),Qde=new G3e("NODE_SIZE",1)}function Roe(e){e.a=We(Vr,di,28,e.b+1,15,1),e.c=We(Vr,di,28,e.b,15,1),e.d=0}function $vn(e,t){e.a.Ne(t.d,e.b)>0&&(vt(e.c,new L4e(t.c,t.d,e.d)),e.b=t.d)}function R6e(e,t){if(e.g==null||t>=e.i)throw ue(new Vse(t,e.i));return e.g[t]}function ylt(e,t,n){if(EE(e,n),n!=null&&!e.fk(n))throw ue(new Rie);return n}function joe(e,t){return gN(t)!=10&&he(bh(t),t.Sm,t.__elementTypeId$,gN(t),e),e}function nE(e,t,n,r){var a;r=(Ew(),r||d_e),a=e.slice(t,n),l9e(a,e,t,n,-t,r)}function sf(e,t,n,r,a){return t<0?Hw(e,n,r):l(n,69).wk().yk(e,e.hi(),t,r,a)}function zvn(e,t){return Yi(ze(Ge(Q(e,(ft(),l3)))),ze(Ge(Q(t,l3))))}function xlt(){xlt=U,M6t=Kr((rE(),he(le(fK,1),it,304,0,[O0e,N0e,P0e,B0e])))}function rE(){rE=U,O0e=new oq("All",0),N0e=new hnt,P0e=new ynt,B0e=new lnt}function Bl(){Bl=U,Fd=new pse(Mx,0),Bb=new pse(cT,1),v0=new pse(Dx,2)}function klt(){klt=U,zU(),GPe=gs,vAt=ia,KPe=new pa(gs),wAt=new pa(ia)}function Elt(){Elt=U,k7t=Kr((Pw(),he(le(x7t,1),it,417,0,[iB,rB,V0e,U0e])))}function Tlt(){Tlt=U,_7t=Kr((NA(),he(le(S7t,1),it,406,0,[uB,bK,mK,lB])))}function Clt(){Clt=U,T7t=Kr((bx(),he(le(E7t,1),it,332,0,[aB,sB,oB,cB])))}function Slt(){Slt=U,I8t=Kr((Km(),he(le(mAe,1),it,389,0,[c4,bAe,o1e,c1e])))}function _lt(){_lt=U,S8t=Kr((wE(),he(le(C8t,1),it,416,0,[s3,o4,a4,M6])))}function Alt(){Alt=U,nxt=Kr((R1(),he(le(txt,1),it,421,0,[Vx,MT,DT,b1e])))}function Llt(){Llt=U,U8t=Kr((IV(),he(le(V8t,1),it,371,0,[p1e,HK,VK,pB])))}function Mlt(){Mlt=U,eEt=Kr((By(),he(le(mde,1),it,203,0,[_W,bde,G6,U6])))}function Dlt(){Dlt=U,rEt=Kr((Ed(),he(le(SDe,1),it,284,0,[E2,CDe,yde,xde])))}function cN(){cN=U,xLe=new B3e(Id,0),JK=new B3e("IMPROVE_STRAIGHTNESS",1)}function Ilt(e,t){var n,r;return r=t/e.c.Rd().gc()|0,n=t%e.c.Rd().gc(),ox(e,r,n)}function Olt(e){var t;if(e.nl())for(t=e.i-1;t>=0;--t)Oe(e,t);return a6e(e)}function j6e(e){var t,n;if(!e.b)return null;for(n=e.b;t=n.a[0];)n=t;return n}function Nlt(e){var t,n;if(!e.b)return null;for(n=e.b;t=n.a[1];)n=t;return n}function qvn(e){return De(e,180)?""+l(e,180).a:e==null?null:xc(e)}function Hvn(e){return De(e,180)?""+l(e,180).a:e==null?null:xc(e)}function Plt(e,t){if(t.a)throw ue(new Ac(e3t));na(e.a,t),t.a=e,!e.j&&(e.j=t)}function $6e(e,t){Dq.call(this,t.zd(),t.yd()&-16449),nr(e),this.a=e,this.c=t}function Vvn(e,t){return new wae(t,dw(Ja(t.e),t.f.a+e,t.f.b+e),(Hn(),!1))}function Uvn(e,t){return jk(),vt(e,new ca(t,pt(t.e.c.length+t.g.c.length)))}function Gvn(e,t){return jk(),vt(e,new ca(t,pt(t.e.c.length+t.g.c.length)))}function Blt(){Blt=U,hCt=Kr((uU(),he(le(HIe,1),it,354,0,[tge,zIe,qIe,$Ie])))}function Flt(){Flt=U,PTt=Kr((kA(),he(le(yIe,1),it,353,0,[Vde,jW,Hde,qde])))}function Rlt(){Rlt=U,lTt=Kr((wx(),he(le(qDe,1),it,405,0,[NW,lM,hM,fM])))}function jlt(){jlt=U,WSt=Kr((ip(),he(le(Vge,1),it,223,0,[Hge,JB,iC,s9])))}function $lt(){$lt=U,ZSt=Kr((Ih(),he(le(JSt,1),it,291,0,[eF,kg,Gb,ZB])))}function zlt(){zlt=U,u_t=Kr((mh(),he(le(BM,1),it,386,0,[iF,Cv,rF,A4])))}function qlt(){qlt=U,d_t=Kr((VV(),he(le(cPe,1),it,320,0,[Kge,sPe,oPe,aPe])))}function Hlt(){Hlt=U,b_t=Kr((NV(),he(le(p_t,1),it,415,0,[Wge,lPe,uPe,hPe])))}function tV(){tV=U,gge=new jse(vyt,0),gOe=new jse(cCe,1),dOe=new jse(Id,2)}function Sy(e,t,n,r,a){return nr(e),nr(t),nr(n),nr(r),nr(a),new h5e(e,t,r)}function Vlt(e,t){var n;return n=l(ax(e.e,t),400),n?($4e(n),n.e):null}function al(e,t){var n;return n=gc(e,t,0),n==-1?!1:(t2(e,n),!0)}function Ult(e,t,n){var r;return fb(e),r=new on,r.a=t,e.a.Nb(new Cet(r,n)),r.a}function Kvn(e){var t;return fb(e),t=We(Na,Zo,28,0,15,1),A5(e.a,new E8(t)),t}function z6e(e){var t;if(!tce(e))throw ue(new _c);return e.e=1,t=e.d,e.d=null,t}function r2(e){var t;return wc(e)&&(t=0-e,!isNaN(t))?t:mb(xE(e))}function gc(e,t,n){for(;n=0?rU(e,n,!0,!0):Hw(e,t,!0)}function H6e(e){var t;return t=jm(Kn(e,32)),t==null&&(Ku(e),t=jm(Kn(e,32))),t}function V6e(e){var t;return e.Oh()||(t=yr(e.Dh())-e.ji(),e.$h().Mk(t)),e.zh()}function Qlt(e,t){H_e=new Ot,C7t=t,RL=e,l(RL.b,68),D6e(RL,H_e,null),fvt(RL)}function lA(){lA=U,t1e=new mse("XY",0),e1e=new mse("X",1),n1e=new mse("Y",2)}function ol(){ol=U,a1=new bse("TOP",0),Fb=new bse(cT,1),w0=new bse(xEe,2)}function ep(){ep=U,wB=new Ese(Id,0),F6=new Ese("TOP",1),Ux=new Ese(xEe,2)}function dN(){dN=U,kde=new R3e("INPUT_ORDER",0),Ede=new R3e("PORT_DEGREE",1)}function iE(){iE=U,WSe=qu(eh,eh,524287),g6t=qu(0,0,SP),YSe=Loe(1),Loe(2),XSe=Loe(0)}function Voe(e){var t;return e.d!=e.r&&(t=Of(e),e.e=!!t&&t.lk()==g5t,e.d=t),e.e}function Uoe(e,t,n){var r;return r=e.g[t],R_(e,t,e.Zi(t,n)),e.Ri(t,n,r),e.Ni(),r}function sV(e,t){var n;return n=e.dd(t),n>=0?(e.gd(n),!0):!1}function Goe(e,t){var n;for(Xr(e),Xr(t),n=!1;t.Ob();)n=n|e.Fc(t.Pb());return n}function B1(e,t){var n;return n=l(cr(e.e,t),400),n?(Int(e,n),n.e):null}function Jlt(e){var t,n;return t=e/60|0,n=e%60,n==0?""+t:""+t+":"+(""+n)}function _y(e,t){var n=e.a[t],r=(vce(),_0e)[typeof n];return r?r(n):Z7e(typeof n)}function Dc(e,t){var n,r;return xb(e),r=new C6e(t,e.a),n=new iit(r),new bn(e,n)}function Koe(e){var t;return t=e.b.c.length==0?null:jt(e.b,0),t!=null&&rce(e,0),t}function Qvn(e,t){var n,r,a;a=t.c.i,n=l(cr(e.f,a),60),r=n.d.c-n.e.c,k7e(t.a,r,0)}function U6e(e,t){var n;for(++e.d,++e.c[t],n=t+1;n=0;)++t[0]}function Jvn(e,t){Uu(e,t==null||Gq((nr(t),t))||isNaN((nr(t),t))?0:(nr(t),t))}function Zvn(e,t){Gu(e,t==null||Gq((nr(t),t))||isNaN((nr(t),t))?0:(nr(t),t))}function ewn(e,t){Dw(e,t==null||Gq((nr(t),t))||isNaN((nr(t),t))?0:(nr(t),t))}function twn(e,t){Mw(e,t==null||Gq((nr(t),t))||isNaN((nr(t),t))?0:(nr(t),t))}function nwn(e,t,n){return z8(new lt(n.e.a+n.f.a/2,n.e.b+n.f.b/2),e)==(nr(t),t)}function rwn(e,t){return De(t,102)&&l(t,19).Bb&Io?new Use(t,e):new mE(t,e)}function iwn(e,t){return De(t,102)&&l(t,19).Bb&Io?new Use(t,e):new mE(t,e)}function gN(e){return e.__elementTypeCategory$==null?10:e.__elementTypeCategory$}function tht(e,t){return t==(gae(),gae(),_6t)?e.toLocaleLowerCase():e.toLowerCase()}function nht(e){if(!e.e)throw ue(new _c);return e.c=e.a=e.e,e.e=e.e.e,--e.d,e.a.f}function G6e(e){if(!e.c)throw ue(new _c);return e.e=e.a=e.c,e.c=e.c.c,++e.d,e.a.f}function rht(e){var t;for(++e.a,t=e.c.a.length;e.ae.a[r]&&(r=n);return r}function iht(e){var t;return t=l(Q(e,(ft(),c3)),313),t?t.a==e:!1}function sht(e){var t;return t=l(Q(e,(ft(),c3)),313),t?t.i==e:!1}function aht(){aht=U,x8t=Kr((uo(),he(le(gAe,1),it,367,0,[y0,vg,bu,_u,mc])))}function oht(){oht=U,ixt=Kr((Ry(),he(le(rxt,1),it,375,0,[bB,KK,WK,GK,UK])))}function cht(){cht=U,pxt=Kr((l2(),he(le(mLe,1),it,348,0,[A1e,bLe,L1e,BT,PT])))}function uht(){uht=U,tEt=Kr((OA(),he(le(wDe,1),it,323,0,[vDe,vde,wde,rM,iM])))}function lht(){lht=U,Axt=Kr((hf(),he(le(WLe,1),it,171,0,[EB,YL,$b,XL,d4])))}function hht(){hht=U,HTt=Kr((bU(),he(le(qTt,1),it,368,0,[Yde,Gde,Xde,Kde,Wde])))}function fht(){fht=U,HCt=Kr((VA(),he(le(qCt,1),it,373,0,[Q6,e9,xM,yM,zB])))}function dht(){dht=U,YCt=Kr((XN(),he(le(TOe,1),it,324,0,[xOe,wge,EOe,yge,kOe])))}function ght(){ght=U,GSt=Kr((Js(),he(le(LM,1),it,88,0,[J1,vc,uc,Q1,wf])))}function pht(){pht=U,vSt=Kr((r1(),he(le(xg,1),it,170,0,[Pn,ha,zd,yv,S2])))}function bht(){bht=U,t_t=Kr((t6(),he(le(OM,1),it,256,0,[Kb,tF,XNe,IM,QNe])))}function mht(){mht=U,i_t=Kr((Ct(),he(le(Oo,1),au,64,0,[Pc,Qn,ar,Dr,er])))}function aV(){aV=U,E_e=new A3e("BY_SIZE",0),$0e=new A3e("BY_SIZE_AND_SHAPE",1)}function oV(){oV=U,Q0e=new D3e("EADES",0),yK=new D3e("FRUCHTERMAN_REINGOLD",1)}function pN(){pN=U,XK=new P3e("READING_DIRECTION",0),vLe=new P3e("ROTATION",1)}function hA(){hA=U,L8t=new nI,M8t=new $J,_8t=new vm,A8t=new hu,D8t=new zJ}function vht(e){this.b=new bt,this.a=new bt,this.c=new bt,this.d=new bt,this.e=e}function wht(e){this.g=e,this.f=new bt,this.a=b.Math.min(this.g.c.c,this.g.d.c)}function yht(e,t,n){Vq.call(this),Y6e(this),this.a=e,this.c=n,this.b=t.d,this.f=t.e}function lwn(e,t,n){var r,a;for(a=new G(n);a.a=0&&t0?t-1:t,ZJe(Fun(Vht(B4e(new L8,n),e.n),e.j),e.k)}function sc(e){var t,n;n=(t=new qie,t),qr((!e.q&&(e.q=new nt(Uf,e,11,10)),e.q),n)}function K6e(e){return(e.i&2?"interface ":e.i&1?"":"class ")+(Gg(e),e.o)}function cV(e){return iu(e,Ii)>0?Ii:iu(e,lo)<0?lo:Yr(e)}function Ay(e){return e<3?(Mh(e,Pwt),e+1):e=-.01&&e.a<=H1&&(e.a=0),e.b>=-.01&&e.b<=H1&&(e.b=0),e}function Y5(e){h6();var t,n;for(n=hCe,t=0;tn&&(n=e[t]);return n}function Tht(e,t){var n;if(n=oP(e.Dh(),t),!n)throw ue(new Yn(Ob+t+$fe));return n}function Ly(e,t){var n;for(n=e;ds(n);)if(n=ds(n),n==t)return!0;return!1}function xwn(e,t){var n,r,a;for(r=t.a.ld(),n=l(t.a.md(),16).gc(),a=0;ae||e>t)throw ue(new t3e("fromIndex: 0, toIndex: "+e+uEe+t))}function Lw(e){if(e<0)throw ue(new Yn("Illegal Capacity: "+e));this.g=this.aj(e)}function W6e(e,t){return A1(),f0(Ab),b.Math.abs(e-t)<=Ab||e==t||isNaN(e)&&isNaN(t)}function Xoe(e,t){var n,r,a,o;for(r=e.d,a=0,o=r.length;a0&&(e.a/=t,e.b/=t),e}function Ah(e){var t;return e.w?e.w:(t=dbn(e),t&&!t.Vh()&&(e.w=t),t)}function sE(e,t){var n,r;r=e.a,n=m4n(e,t,null),r!=t&&!e.e&&(n=ZE(e,t,n)),n&&n.oj()}function Lht(e,t,n){var r,a;r=t;do a=ze(e.p[r.p])+n,e.p[r.p]=a,r=e.a[r.p];while(r!=t)}function Mht(e,t,n){var r=function(){return e.apply(r,arguments)};return t.apply(r,n),r}function Awn(e){var t;return e==null?null:(t=l(e,195),$xn(t,t.length))}function Oe(e,t){if(e.g==null||t>=e.i)throw ue(new Vse(t,e.i));return e.Wi(t,e.g[t])}function Lwn(e,t){Cn();var n,r;for(r=new bt,n=0;n=14&&t<=16))),e}function Gr(e,t){var n;return nr(t),n=e[":"+t],BO(!!n,"Enum constant undefined: "+t),n}function Fr(e,t,n,r,a,o){var f;return f=Gae(e,t),Uht(n,f),f.i=a?8:0,f.f=r,f.e=a,f.g=o,f}function Q6e(e,t,n,r,a){this.d=t,this.k=r,this.f=a,this.o=-1,this.p=1,this.c=e,this.a=n}function J6e(e,t,n,r,a){this.d=t,this.k=r,this.f=a,this.o=-1,this.p=2,this.c=e,this.a=n}function Z6e(e,t,n,r,a){this.d=t,this.k=r,this.f=a,this.o=-1,this.p=6,this.c=e,this.a=n}function e7e(e,t,n,r,a){this.d=t,this.k=r,this.f=a,this.o=-1,this.p=7,this.c=e,this.a=n}function t7e(e,t,n,r,a){this.d=t,this.j=r,this.e=a,this.o=-1,this.p=4,this.c=e,this.a=n}function Ght(e,t){var n,r,a,o;for(r=t,a=0,o=r.length;a=0))throw ue(new Yn("tolerance ("+e+") must be >= 0"));return e}function Wht(e,t){var n;return De(t,44)?e.c.Mc(t):(n=Kce(e,t),YV(e,t),n)}function Jo(e,t,n){return Gm(e,t),Fu(e,n),i2(e,0),My(e,1),u2(e,!0),c2(e,!0),e}function mN(e,t){var n;if(n=e.gc(),t<0||t>n)throw ue(new my(t,n));return new f4e(e,t)}function bV(e,t){e.b=b.Math.max(e.b,t.d),e.e+=t.r+(e.a.c.length==0?0:e.c),vt(e.a,t)}function Yht(e){gy(e.c>=0),H5n(e.d,e.c)<0&&(e.a=e.a-1&e.d.a.length-1,e.b=e.d.c),e.c=-1}function mV(e){var t,n;for(n=e.c.Cc().Kc();n.Ob();)t=l(n.Pb(),16),t.$b();e.c.$b(),e.d=0}function jwn(e){var t,n,r,a;for(n=e.a,r=0,a=n.length;r=0}function c7e(e,t){e.r>0&&e.c0&&e.g!=0&&c7e(e.i,t/e.r*e.i.d))}function u7e(e,t){var n;n=e.c,e.c=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,1,n,e.c))}function Zoe(e,t){var n;n=e.c,e.c=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,4,n,e.c))}function fE(e,t){var n;n=e.k,e.k=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,2,n,e.k))}function ece(e,t){var n;n=e.D,e.D=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,2,n,e.D))}function wV(e,t){var n;n=e.f,e.f=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,8,n,e.f))}function yV(e,t){var n;n=e.i,e.i=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,7,n,e.i))}function l7e(e,t){var n;n=e.a,e.a=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,8,n,e.a))}function h7e(e,t){var n;n=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,0,n,e.b))}function f7e(e,t){var n;n=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,0,n,e.b))}function d7e(e,t){var n;n=e.c,e.c=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,1,n,e.c))}function g7e(e,t){var n;n=e.d,e.d=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,1,n,e.d))}function Gwn(e,t,n){var r;e.b=t,e.a=n,r=(e.a&512)==512?new gJe:new J$,e.c=aSn(r,e.b,e.a)}function oft(e,t){return up(e.e,t)?(Fo(),Voe(t)?new nH(t,e):new yO(t,e)):new Ptt(t,e)}function Kwn(e){var t,n;return 0>e?new b3e:(t=e+1,n=new wut(t,e),new Uye(null,n))}function Wwn(e,t){Cn();var n;return n=new N8(1),Ia(e)?rc(n,e,t):ju(n.f,e,t),new tr(n)}function Ywn(e,t){var n,r;return n=e.c,r=t.e[e.p],r>0?l(jt(n.a,r-1),10):null}function Xwn(e,t){var n,r;return n=e.o+e.p,r=t.o+t.p,nt?(t<<=1,t>0?t:rL):t}function tce(e){switch(Cye(e.e!=3),e.e){case 2:return!1;case 0:return!0}return svn(e)}function uft(e,t){var n;return De(t,8)?(n=l(t,8),e.a==n.a&&e.b==n.b):!1}function Jwn(e,t){var n;n=new Ot,l(t.b,68),l(t.b,68),l(t.b,68),Vu(t.a,new k4e(e,n,t))}function lft(e,t){var n,r;for(r=t.vc().Kc();r.Ob();)n=l(r.Pb(),44),GN(e,n.ld(),n.md())}function p7e(e,t){var n;n=e.d,e.d=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,11,n,e.d))}function xV(e,t){var n;n=e.j,e.j=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,13,n,e.j))}function b7e(e,t){var n;n=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,21,n,e.b))}function Zwn(e,t){(UH(),G1?null:t.c).length==0&&Srt(t,new Dt),rc(e.a,G1?null:t.c,t)}function e3n(e,t){t.Ug("Hierarchical port constraint processing",1),v6n(e),RIn(e),t.Vg()}function Ow(){Ow=U,o3=new vse("START",0),Rb=new vse("MIDDLE",1),a3=new vse("END",2)}function kV(){kV=U,$W=new U3e("P1_NODE_PLACEMENT",0),X6=new U3e("P2_EDGE_ROUTING",1)}function bb(){bb=U,Hx=new Ui(NEe),EK=new Ui(C3t),$L=new Ui(S3t),hB=new Ui(_3t)}function Nw(e){var t;return pae(e.f.g,e.d),mr(e.b),e.c=e.a,t=l(e.a.Pb(),44),e.b=L7e(e),t}function m7e(e){var t;return e.b==null?(Wp(),Wp(),dF):(t=e.ul()?e.tl():e.sl(),t)}function hft(e,t){var n;return n=t==null?-1:gc(e.b,t,0),n<0?!1:(rce(e,n),!0)}function d0(e,t){var n;return nr(t),n=t.g,e.b[n]?!1:(Ts(e.b,n,t),++e.c,!0)}function EV(e,t){var n,r;return n=1-t,r=e.a[n],e.a[n]=r.a[t],r.a[t]=e,e.b=!0,r.b=!1,r}function t3n(e,t){var n,r;for(r=t.Kc();r.Ob();)n=l(r.Pb(),272),e.b=!0,na(e.e,n),n.b=e}function n3n(e,t){var n,r;return n=l(Q(e,(Nt(),w4)),8),r=l(Q(t,w4),8),Yi(n.b,r.b)}function nce(e,t,n){var r,a,o;return o=t>>5,a=t&31,r=va(ub(e.n[n][o],Yr(l0(a,1))),3),r}function fft(e,t,n){var r,a,o;for(o=e.a.length-1,a=e.b,r=0;r0?1:0:(!e.c&&(e.c=XO(Zc(e.f))),e.c).e}function xft(e,t){t?e.B==null&&(e.B=e.D,e.D=null):e.B!=null&&(e.D=e.B,e.B=null)}function a3n(e,t){return wE(),e==s3&&t==o4||e==o4&&t==s3||e==M6&&t==a4||e==a4&&t==M6}function o3n(e,t){return wE(),e==s3&&t==a4||e==s3&&t==M6||e==o4&&t==M6||e==o4&&t==a4}function kft(e,t){return A1(),f0(H1),b.Math.abs(0-t)<=H1||t==0||isNaN(0)&&isNaN(t)?0:e/t}function Eft(e,t){return ze(Ge(fh(ON(fc(new bn(null,new kn(e.c.b,16)),new AYe(e)),t))))}function x7e(e,t){return ze(Ge(fh(ON(fc(new bn(null,new kn(e.c.b,16)),new _Ye(e)),t))))}function c3n(){return Ho(),he(le(F1e,1),it,259,0,[eW,vf,UL,tW,$T,B6,GL,RT,jT,nW])}function u3n(){return Nf(),he(le(TDe,1),it,243,0,[AW,AB,LB,xDe,kDe,yDe,EDe,LW,v3,x4])}function l3n(e,t){var n;t.Ug("General Compactor",1),n=p5n(l(at(e,(Sb(),Zde)),393)),n.Cg(e)}function h3n(e,t){var n,r;return n=l(at(e,(Sb(),qW)),17),r=l(at(t,qW),17),ru(n.a,r.a)}function k7e(e,t,n){var r,a;for(a=Rr(e,0);a.b!=a.d.c;)r=l(Br(a),8),r.a+=t,r.b+=n;return e}function gA(e,t,n){var r;for(r=e.b[n&e.f];r;r=r.b)if(n==r.a&&yd(t,r.g))return r;return null}function pA(e,t,n){var r;for(r=e.c[n&e.f];r;r=r.d)if(n==r.f&&yd(t,r.i))return r;return null}function f3n(e,t,n){var r,a,o;for(r=0,a=0;a>>31;r!=0&&(e[n]=r)}function oce(e,t,n,r,a,o){var f;this.c=e,f=new bt,txe(e,f,t,e.b,n,r,a,o),this.a=new Ua(f,0)}function Tft(){this.c=new Wz(0),this.b=new Wz(lCe),this.d=new Wz(hyt),this.a=new Wz(Lhe)}function of(e,t,n,r,a,o,f){Ur.call(this,e,t),this.d=n,this.e=r,this.c=a,this.b=o,this.a=O1(f)}function Os(e,t,n,r,a,o,f,g,w,E,C,L,B){return Lpt(e,t,n,r,a,o,f,g,w,E,C,L,B),$ce(e,!1),e}function d3n(e){return e.b.c.i.k==(Zn(),Us)?l(Q(e.b.c.i,(ft(),zi)),12):e.b.c}function Cft(e){return e.b.d.i.k==(Zn(),Us)?l(Q(e.b.d.i,(ft(),zi)),12):e.b.d}function g3n(e){var t;return t=jH(e),cw(t.a,0)?(Jz(),Jz(),A6t):(Jz(),new art(t.b))}function cce(e){var t;return t=e6e(e),cw(t.a,0)?(cy(),cy(),I0e):(cy(),new sae(t.b))}function uce(e){var t;return t=e6e(e),cw(t.a,0)?(cy(),cy(),I0e):(cy(),new sae(t.c))}function Sft(e){switch(e.g){case 2:return Ct(),er;case 4:return Ct(),ar;default:return e}}function _ft(e){switch(e.g){case 1:return Ct(),Dr;case 3:return Ct(),Qn;default:return e}}function Aft(e){switch(e.g){case 0:return new Mne;case 1:return new Dne;default:return null}}function lx(){lx=U,g1e=new vs("edgelabelcenterednessanalysis.includelabel",(Hn(),Pb))}function E7e(){E7e=U,CEt=Td(Ytt(fi(fi(new Xs,(uo(),bu),(vo(),PK)),_u,MK),mc),NK)}function Lft(){Lft=U,LEt=Td(Ytt(fi(fi(new Xs,(uo(),bu),(vo(),PK)),_u,MK),mc),NK)}function lce(){lce=U,qM=new uJe,npe=he(le(dl,1),S6,179,0,[]),X_t=he(le(Uf,1),LSe,62,0,[])}function dE(){dE=U,dB=new I3e("TO_INTERNAL_LTR",0),h1e=new I3e("TO_INPUT_DIRECTION",1)}function kl(){kl=U,EAe=new K2,xAe=new J3,kAe=new HJ,yAe=new wm,TAe=new VJ,CAe=new UJ}function p3n(e,t){t.Ug(q3t,1),S8e(Zun(new e_((g_(),new Jae(e,!1,!1,new cS))))),t.Vg()}function b3n(e,t,n){n.Ug("DFS Treeifying phase",1),O5n(e,t),DCn(e,t),e.a=null,e.b=null,n.Vg()}function vN(e,t){return Hn(),Ia(e)?E6e(e,ei(t)):fy(e)?Nae(e,Ge(t)):hy(e)?agn(e,Bt(t)):e.Fd(t)}function bA(e,t){var n,r;for(nr(t),r=t.vc().Kc();r.Ob();)n=l(r.Pb(),44),e.zc(n.ld(),n.md())}function m3n(e,t,n){var r;for(r=n.Kc();r.Ob();)if(!qH(e,t,r.Pb()))return!1;return!0}function v3n(e,t,n,r,a){var o;return n&&(o=ms(t.Dh(),e.c),a=n.Rh(t,-1-(o==-1?r:o),null,a)),a}function w3n(e,t,n,r,a){var o;return n&&(o=ms(t.Dh(),e.c),a=n.Th(t,-1-(o==-1?r:o),null,a)),a}function Mft(e){var t;if(e.b==-2){if(e.e==0)t=-1;else for(t=0;e.a[t]==0;t++);e.b=t}return e.b}function y3n(e){if(nr(e),e.length==0)throw ue(new gd("Zero length BigInteger"));S_n(this,e)}function T7e(e){this.i=e.gc(),this.i>0&&(this.g=this.aj(this.i+(this.i/8|0)+1),e.Qc(this.g))}function Dft(e,t,n){this.g=e,this.d=t,this.e=n,this.a=new bt,Ikn(this),Cn(),Vs(this.a,null)}function C7e(e,t){t.q=e,e.d=b.Math.max(e.d,t.r),e.b+=t.d+(e.a.c.length==0?0:e.c),vt(e.a,t)}function gE(e,t){var n,r,a,o;return a=e.c,n=e.c+e.b,o=e.d,r=e.d+e.a,t.a>a&&t.ao&&t.ba?n=a:Xn(t,n+1),e.a=tf(e.a,0,t)+(""+r)+w5e(e.a,n)}function $ft(e,t){e.a=bo(e.a,1),e.c=b.Math.min(e.c,t),e.b=b.Math.max(e.b,t),e.d=bo(e.d,t)}function _3n(e,t){return t1||e.Ob())return++e.a,e.g=0,t=e.i,e.Ob(),t;throw ue(new _c)}function Vft(e){switch(e.a.g){case 1:return new Yet;case 3:return new Ydt;default:return new nie}}function _7e(e,t){switch(t){case 1:return!!e.n&&e.n.i!=0;case 2:return e.k!=null}return Z5e(e,t)}function Zc(e){return _P>22),a=e.h+t.h+(r>>22),qu(n&eh,r&eh,a&hp)}function Jft(e,t){var n,r,a;return n=e.l-t.l,r=e.m-t.m+(n>>22),a=e.h-t.h+(r>>22),qu(n&eh,r&eh,a&hp)}function W3n(e){var t,n;for(zDn(e),n=new G(e.d);n.ar)throw ue(new my(t,r));return e.Si()&&(n=bot(e,n)),e.Ei(t,n)}function yE(e,t,n,r,a){var o,f;for(f=n;f<=a;f++)for(o=t;o<=r;o++)r6(e,o,f)||FU(e,o,f,!0,!1)}function cyn(e){h6();var t,n,r;for(n=We(Ea,dt,8,2,0,1),r=0,t=0;t<2;t++)r+=.5,n[t]=t7n(r,e);return n}function xE(e){var t,n,r;return t=~e.l+1&eh,n=~e.m+(t==0?1:0)&eh,r=~e.h+(t==0&&n==0?1:0)&hp,qu(t,n,r)}function P7e(e){var t;if(e<0)return lo;if(e==0)return 0;for(t=rL;!(t&e);t>>=1);return t}function mce(e,t,n){return e>=128?!1:e<64?I_(va(l0(1,e),n),0):I_(va(l0(1,e-64),t),0)}function _N(e,t,n){return n==null?(!e.q&&(e.q=new Pr),ax(e.q,t)):(!e.q&&(e.q=new Pr),ki(e.q,t,n)),e}function rt(e,t,n){return n==null?(!e.q&&(e.q=new Pr),ax(e.q,t)):(!e.q&&(e.q=new Pr),ki(e.q,t,n)),e}function u0t(e){var t,n;return n=new KH,pc(n,e),rt(n,(bb(),Hx),e),t=new Pr,FAn(e,n,t),hDn(e,n,t),n}function l0t(e){var t,n;return t=e.t-e.k[e.o.p]*e.d+e.j[e.o.p]>e.f,n=e.u+e.e[e.o.p]*e.d>e.f*e.s*e.d,t||n}function h0t(e,t){var n,r,a,o;for(n=!1,r=e.a[t].length,o=0;o=0,"Negative initial capacity"),BO(t>=0,"Non-positive load factor"),Nl(this)}function lyn(e,t,n,r,a){var o,f;if(f=e.length,o=n.length,t<0||r<0||a<0||t+a>f||r+a>o)throw ue(new _we)}function j7e(e,t){Cn();var n,r,a,o,f;for(f=!1,r=t,a=0,o=r.length;a1||t>=0&&e.b<3)}function yce(e){var t,n,r;t=~e.l+1&eh,n=~e.m+(t==0?1:0)&eh,r=~e.h+(t==0&&n==0?1:0)&hp,e.l=t,e.m=n,e.h=r}function q7e(e){Cn();var t,n,r;for(r=1,n=e.Kc();n.Ob();)t=n.Pb(),r=31*r+(t!=null?es(t):0),r=r|0;return r}function pyn(e,t,n,r,a){var o;return o=D9e(e,t),n&&yce(o),a&&(e=c7n(e,t),r?Nb=xE(e):Nb=qu(e.l,e.m,e.h)),o}function x0t(e,t,n){e.g=Rue(e,t,(Ct(),ar),e.b),e.d=Rue(e,n,ar,e.b),!(e.g.c==0||e.d.c==0)&&Jgt(e)}function k0t(e,t,n){e.g=Rue(e,t,(Ct(),er),e.j),e.d=Rue(e,n,er,e.j),!(e.g.c==0||e.d.c==0)&&Jgt(e)}function H7e(e,t){switch(t){case 7:return!!e.e&&e.e.i!=0;case 8:return!!e.d&&e.d.i!=0}return _8e(e,t)}function byn(e,t){switch(t.g){case 0:De(e.b,641)||(e.b=new jft);break;case 1:De(e.b,642)||(e.b=new Rit)}}function E0t(e){switch(e.g){case 0:return new One;default:throw ue(new Yn(FG+(e.f!=null?e.f:""+e.g)))}}function T0t(e){switch(e.g){case 0:return new gl;default:throw ue(new Yn(FG+(e.f!=null?e.f:""+e.g)))}}function myn(e,t,n){return!_k(Fi(new bn(null,new kn(e.c,16)),new Wl(new ltt(t,n)))).Bd((Am(),zx))}function C0t(e,t){return z8(BE(l(Q(t,(Hc(),y3)),88)),new lt(e.c.e.a-e.b.e.a,e.c.e.b-e.b.e.b))<=0}function vyn(e,t){for(;e.g==null&&!e.c?H5e(e):e.g==null||e.i!=0&&l(e.g[e.i-1],51).Ob();)kln(t,CU(e))}function Um(e){var t,n;for(n=new G(e.a.b);n.ar?1:0}function xyn(e){return vt(e.c,(hx(),gSt)),W6e(e.a,ze(Ge(It((Gce(),TW)))))?new Hne:new OXe(e)}function kyn(e){for(;!e.d||!e.d.Ob();)if(e.b&&!l_(e.b))e.d=l(X8(e.b),51);else return null;return e.d}function U7e(e){switch(e.g){case 1:return hyt;default:case 2:return 0;case 3:return Lhe;case 4:return lCe}}function Eyn(){Di();var e;return cpe||(e=Hhn(_b("M",!0)),e=oH(_b("M",!1),e),cpe=e,cpe)}function NV(){NV=U,Wge=new Cq("ELK",0),lPe=new Cq("JSON",1),uPe=new Cq("DOT",2),hPe=new Cq("SVG",3)}function yA(){yA=U,Sde=new _se("STACKED",0),Cde=new _se("REVERSE_STACKED",1),MB=new _se("SEQUENCED",2)}function xA(){xA=U,ZDe=new Ose(Id,0),Ide=new Ose("MIDDLE_TO_MIDDLE",1),OB=new Ose("AVOID_OVERLAP",2)}function TE(){TE=U,oLe=new MZ,cLe=new lI,X8t=new yj,Y8t=new DZ,W8t=new n8,aLe=(nr(W8t),new ke)}function PV(){PV=U,WNe=new lw(15),XSt=new Ha((pi(),_2),WNe),MM=n9,VNe=LSt,UNe=kv,KNe=i7,GNe=C4}function Q5(e,t){var n,r,a,o,f;for(r=t,a=0,o=r.length;a=e.b.c.length||(K7e(e,2*t+1),n=2*t+2,n0&&(t.Cd(n),n.i&&C4n(n))}function W7e(e,t,n){var r;for(r=n-1;r>=0&&e[r]===t[r];r--);return r<0?0:fse(va(e[r],Vo),va(t[r],Vo))?-1:1}function A0t(e,t,n){var r,a;this.g=e,this.c=t,this.a=this,this.d=this,a=cft(n),r=We(c6t,TP,227,a,0,1),this.b=r}function Cce(e,t,n,r,a){var o,f;for(f=n;f<=a;f++)for(o=t;o<=r;o++)if(r6(e,o,f))return!0;return!1}function Lyn(e,t){var n,r;for(r=e.Zb().Cc().Kc();r.Ob();)if(n=l(r.Pb(),16),n.Hc(t))return!0;return!1}function L0t(e,t,n){var r,a,o,f;for(nr(n),f=!1,o=e.fd(t),a=n.Kc();a.Ob();)r=a.Pb(),o.Rb(r),f=!0;return f}function Sce(e,t){var n,r;return r=l(Kn(e.a,4),129),n=We(epe,r0e,424,t,0,1),r!=null&&pu(r,0,n,0,r.length),n}function M0t(e,t){var n;return n=new ele((e.f&256)!=0,e.i,e.a,e.d,(e.f&16)!=0,e.j,e.g,t),e.e!=null||(n.c=e),n}function Myn(e,t){var n;return e===t?!0:De(t,85)?(n=l(t,85),Qxe(Mm(e),n.vc())):!1}function D0t(e,t,n){var r,a;for(a=n.Kc();a.Ob();)if(r=l(a.Pb(),44),e.Be(t,r.md()))return!0;return!1}function I0t(e,t,n){return e.d[t.p][n.p]||(O6n(e,t,n),e.d[t.p][n.p]=!0,e.d[n.p][t.p]=!0),e.a[t.p][n.p]}function Dyn(e,t){var n;return!e||e==t||!ns(t,(ft(),u3))?!1:(n=l(Q(t,(ft(),u3)),10),n!=e)}function _ce(e){switch(e.i){case 2:return!0;case 1:return!1;case-1:++e.c;default:return e.$l()}}function O0t(e){switch(e.i){case-2:return!0;case-1:return!1;case 1:--e.c;default:return e._l()}}function N0t(e){xot.call(this,"The given string does not match the expected format for individual spacings.",e)}function Iyn(e,t){var n;t.Ug("Min Size Preprocessing",1),n=a9e(e),Hi(e,(ug(),mM),n.a),Hi(e,UW,n.b),t.Vg()}function Oyn(e){var t,n,r;for(t=0,r=We(Ea,dt,8,e.b,0,1),n=Rr(e,0);n.b!=n.d.c;)r[t++]=l(Br(n),8);return r}function Ace(e,t,n){var r,a,o;for(r=new os,o=Rr(n,0);o.b!=o.d.c;)a=l(Br(o),8),ui(r,new Eo(a));L0t(e,t,r)}function Nyn(e,t){var n;return n=bo(e,t),fse(moe(e,t),0)|Aq(moe(e,n),0)?n:bo(EP,moe(ub(n,63),1))}function Pyn(e,t){var n,r;return n=l(e.d.Bc(t),16),n?(r=e.e.hc(),r.Gc(n),e.e.d-=n.gc(),n.$b(),r):null}function P0t(e){var t;if(t=e.a.c.length,t>0)return qk(t-1,e.a.c.length),t2(e.a,t-1);throw ue(new OQe)}function B0t(e,t,n){if(e>t)throw ue(new Yn(eG+e+Qwt+t));if(e<0||t>n)throw ue(new t3e(eG+e+fEe+t+uEe+n))}function CE(e,t){e.D==null&&e.B!=null&&(e.D=e.B,e.B=null),ece(e,t==null?null:(nr(t),t)),e.C&&e.hl(null)}function Byn(e,t){var n;n=It((Gce(),TW))!=null&&t.Sg()!=null?ze(Ge(t.Sg()))/ze(Ge(It(TW))):1,ki(e.b,t,n)}function Y7e(e,t){var n,r;if(r=e.c[t],r!=0)for(e.c[t]=0,e.d-=r,n=t+1;nMG?e-n>MG:n-e>MG}function K0t(e,t){var n;for(n=0;na&&(Egt(t.q,a),r=n!=t.q.d)),r}function W0t(e,t){var n,r,a,o,f,g,w,E;return w=t.i,E=t.j,r=e.f,a=r.i,o=r.j,f=w-a,g=E-o,n=b.Math.sqrt(f*f+g*g),n}function t8e(e,t){var n,r;return r=XV(e),r||(n=(kle(),P2t(t)),r=new kQe(n),qr(r.El(),e)),r}function DN(e,t){var n,r;return n=l(e.c.Bc(t),16),n?(r=e.hc(),r.Gc(n),e.d-=n.gc(),n.$b(),e.mc(r)):e.jc()}function Kyn(e,t){var n,r;for(r=Jl(e.d,1)!=0,n=!0;n;)n=!1,n=t.c.mg(t.e,r),n=n|cP(e,t,r,!1),r=!r;w7e(e)}function Y0t(e,t,n,r){var a,o;e.a=t,o=r?0:1,e.f=(a=new cpt(e.c,e.a,n,o),new $bt(n,e.a,a,e.e,e.b,e.c==(Iw(),oM)))}function FV(e){var t;return mr(e.a!=e.b),t=e.d.a[e.a],Ert(e.b==e.d.c&&t!=null),e.c=e.a,e.a=e.a+1&e.d.a.length-1,t}function X0t(e){var t;if(e.c!=0)return e.c;for(t=0;t=e.c.b:e.a<=e.c.b))throw ue(new _c);return t=e.a,e.a+=e.c.c,++e.b,pt(t)}function Oce(e){var t;return t=new bye(e.a),pc(t,e),rt(t,(ft(),zi),e),t.o.a=e.g,t.o.b=e.f,t.n.a=e.i,t.n.b=e.j,t}function Nce(e){return(Ct(),hl).Hc(e.j)?ze(Ge(Q(e,(ft(),zT)))):Ic(he(le(Ea,1),dt,8,0,[e.i.n,e.n,e.a])).b}function Yyn(e){var t;return t=Oq(TEt),l(Q(e,(ft(),Lu)),21).Hc((Ho(),$T))&&fi(t,(uo(),bu),(vo(),RK)),t}function Xyn(e){var t,n,r,a;for(a=new Ks,r=new G(e);r.a=0?t:-t;r>0;)r%2==0?(n*=n,r=r/2|0):(a*=n,r-=1);return t<0?1/a:a}function t4n(e,t){var n,r,a;for(a=1,n=e,r=t>=0?t:-t;r>0;)r%2==0?(n*=n,r=r/2|0):(a*=n,r-=1);return t<0?1/a:a}function yb(e,t){var n,r,a,o;return o=(a=e?XV(e):null,Dpt((r=t,a&&a.Gl(),r))),o==t&&(n=XV(e),n&&n.Gl()),o}function Q0t(e,t,n){var r,a;return a=e.f,e.f=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,0,a,t),n?n.nj(r):n=r),n}function J0t(e,t,n){var r,a;return a=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,3,a,t),n?n.nj(r):n=r),n}function r8e(e,t,n){var r,a;return a=e.a,e.a=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,1,a,t),n?n.nj(r):n=r),n}function Z0t(e){var t,n;if(e!=null)for(n=0;n=r||t-129&&e<128?(Fit(),t=e+128,n=t_e[t],!n&&(n=t_e[t]=new Cr(e)),n):new Cr(e)}function _E(e){var t,n;return e>-129&&e<128?(est(),t=e+128,n=s_e[t],!n&&(n=s_e[t]=new Wn(e)),n):new Wn(e)}function n1t(e,t){var n;e.a.c.length>0&&(n=l(jt(e.a,e.a.c.length-1),579),G7e(n,t))||vt(e.a,new yut(t))}function o4n(e){u0();var t,n;t=e.d.c-e.e.c,n=l(e.g,154),Vu(n.b,new pYe(t)),Vu(n.c,new bYe(t)),to(n.i,new mYe(t))}function r1t(e){var t;return t=new tb,t.a+="VerticalSegment ",wu(t,e.e),t.a+=" ",hi(t,Eye(new Zie,new G(e.k))),t.a}function Pce(e,t){var n,r,a;for(n=0,a=Oc(e,t).Kc();a.Ob();)r=l(a.Pb(),12),n+=Q(r,(ft(),jl))!=null?1:0;return n}function e6(e,t,n){var r,a,o;for(r=0,o=Rr(e,0);o.b!=o.d.c&&(a=ze(Ge(Br(o))),!(a>n));)a>=t&&++r;return r}function i1t(e,t){Xr(e);try{return e._b(t)}catch(n){if(n=bs(n),De(n,212)||De(n,169))return!1;throw ue(n)}}function s8e(e,t){Xr(e);try{return e.Hc(t)}catch(n){if(n=bs(n),De(n,212)||De(n,169))return!1;throw ue(n)}}function c4n(e,t){Xr(e);try{return e.Mc(t)}catch(n){if(n=bs(n),De(n,212)||De(n,169))return!1;throw ue(n)}}function Oy(e,t){Xr(e);try{return e.xc(t)}catch(n){if(n=bs(n),De(n,212)||De(n,169))return null;throw ue(n)}}function u4n(e,t){Xr(e);try{return e.Bc(t)}catch(n){if(n=bs(n),De(n,212)||De(n,169))return null;throw ue(n)}}function TA(e,t){switch(t.g){case 2:case 1:return Oc(e,t);case 3:case 4:return lf(Oc(e,t))}return Cn(),Cn(),_o}function CA(e){var t;return e.Db&64?g0(e):(t=new Af(g0(e)),t.a+=" (name: ",Xo(t,e.zb),t.a+=")",t.a)}function l4n(e){var t;return t=l(B1(e.c.c,""),233),t||(t=new nx(Ck(Tk(new ny,""),"Other")),h2(e.c.c,"",t)),t}function a8e(e,t,n){var r,a;return a=e.sb,e.sb=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,4,a,t),n?n.nj(r):n=r),n}function o8e(e,t,n){var r,a;return a=e.r,e.r=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,8,a,e.r),n?n.nj(r):n=r),n}function h4n(e,t,n){var r,a;return r=new Zg(e.e,4,13,(a=t.c,a||(Tn(),td)),null,f2(e,t),!1),n?n.nj(r):n=r,n}function f4n(e,t,n){var r,a;return r=new Zg(e.e,3,13,null,(a=t.c,a||(Tn(),td)),f2(e,t),!1),n?n.nj(r):n=r,n}function o2(e,t){var n,r;return n=l(t,691),r=n.el(),!r&&n.fl(r=De(t,90)?new Btt(e,l(t,29)):new sct(e,l(t,156))),r}function IN(e,t,n){var r;e._i(e.i+1),r=e.Zi(t,n),t!=e.i&&pu(e.g,t,e.g,t+1,e.i-t),Ts(e.g,t,r),++e.i,e.Mi(t,n),e.Ni()}function d4n(e,t){var n;return t.a&&(n=t.a.a.length,e.a?hi(e.a,e.b):e.a=new Th(e.d),fct(e.a,t.a,t.d.length,n)),e}function g4n(e,t){var n;e.c=t,e.a=w5n(t),e.a<54&&(e.f=(n=t.d>1?lct(t.a[0],t.a[1]):lct(t.a[0],0),Fm(t.e>0?n:r2(n))))}function ON(e,t){var n;return n=new on,e.a.Bd(n)?(Ok(),new Kie(nr(Ult(e,n.a,t)))):(fb(e),Ok(),Ok(),b_e)}function s1t(e,t){var n;e.c.length!=0&&(n=l(j1(e,We(wg,m2,10,e.c.length,0,1)),199),cye(n,new U9),Jpt(n,t))}function a1t(e,t){var n;e.c.length!=0&&(n=l(j1(e,We(wg,m2,10,e.c.length,0,1)),199),cye(n,new Wd),Jpt(n,t))}function Pi(e,t){return Ia(e)?vn(e,t):fy(e)?eit(e,t):hy(e)?(nr(e),qe(e)===qe(t)):t5e(e)?e.Fb(t):W4e(e)?Jtt(e,t):W5e(e,t)}function cf(e,t,n){if(t<0)d9e(e,n);else{if(!n.rk())throw ue(new Yn(Ob+n.xe()+kL));l(n,69).wk().Ek(e,e.hi(),t)}}function o1t(e,t,n){if(e<0||t>n)throw ue(new tc(eG+e+fEe+t+", size: "+n));if(e>t)throw ue(new Yn(eG+e+Qwt+t))}function c1t(e){var t;return e.Db&64?g0(e):(t=new Af(g0(e)),t.a+=" (source: ",Xo(t,e.d),t.a+=")",t.a)}function u1t(e){return e>=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e>=48&&e<=57?e-48:0}function p4n(e){YU();var t,n,r,a;for(n=eue(),r=0,a=n.length;r=0?kb(e):J_(kb(r2(e))))}function f1t(e,t,n,r,a,o){this.e=new bt,this.f=(qo(),sM),vt(this.e,e),this.d=t,this.a=n,this.b=r,this.f=a,this.c=o}function v4n(e,t,n){e.n=Lm(nm,[dt,ahe],[376,28],14,[n,ua(b.Math.ceil(t/32))],2),e.o=t,e.p=n,e.j=t-1>>1,e.k=n-1>>1}function d1t(e){return e-=e>>1&1431655765,e=(e>>2&858993459)+(e&858993459),e=(e>>4)+e&252645135,e+=e>>8,e+=e>>16,e&63}function g1t(e,t){var n,r;for(r=new or(e);r.e!=r.i.gc();)if(n=l(gr(r),142),qe(t)===qe(n))return!0;return!1}function w4n(e,t,n){var r,a,o;return o=(a=VE(e.b,t),a),o&&(r=l(VU(lN(e,o),""),29),r)?P9e(e,r,t,n):null}function Bce(e,t,n){var r,a,o;return o=(a=VE(e.b,t),a),o&&(r=l(VU(lN(e,o),""),29),r)?B9e(e,r,t,n):null}function y4n(e,t){var n;if(n=X5(e.i,t),n==null)throw ue(new dd("Node did not exist in input."));return S7e(t,n),null}function x4n(e,t){var n;if(n=oP(e,t),De(n,331))return l(n,35);throw ue(new Yn(Ob+t+"' is not a valid attribute"))}function _A(e,t,n){var r;if(r=e.gc(),t>r)throw ue(new my(t,r));if(e.Si()&&e.Hc(n))throw ue(new Yn(WP));e.Gi(t,n)}function k4n(e,t){t.Ug("Sort end labels",1),Is(Fi(Dc(new bn(null,new kn(e.b,16)),new hj),new J7),new aZ),t.Vg()}function Js(){Js=U,J1=new mO(cL,0),vc=new mO(Dx,1),uc=new mO(Mx,2),Q1=new mO(whe,3),wf=new mO("UP",4)}function PN(){PN=U,WW=new $se("P1_STRUCTURE",0),YW=new $se("P2_PROCESSING_ORDER",1),XW=new $se("P3_EXECUTION",2)}function p1t(){p1t=U,jTt=Td(Td(v_(Td(Td(v_(fi(new Xs,(wx(),lM),(WA(),Dde)),hM),YDe),QDe),fM),UDe),JDe)}function E4n(e){switch(l(Q(e,(ft(),hv)),311).g){case 1:rt(e,hv,(ep(),Ux));break;case 2:rt(e,hv,(ep(),F6))}}function T4n(e){switch(e){case 0:return new nJe;case 1:return new eJe;case 2:return new tJe;default:throw ue(new YI)}}function b1t(e){switch(e.g){case 2:return vc;case 1:return uc;case 4:return Q1;case 3:return wf;default:return J1}}function h8e(e,t){switch(e.b.g){case 0:case 1:return t;case 2:case 3:return new ef(t.d,0,t.a,t.b);default:return null}}function f8e(e){switch(e.g){case 1:return er;case 2:return Qn;case 3:return ar;case 4:return Dr;default:return Pc}}function BN(e){switch(e.g){case 1:return Dr;case 2:return er;case 3:return Qn;case 4:return ar;default:return Pc}}function $V(e){switch(e.g){case 1:return ar;case 2:return Dr;case 3:return er;case 4:return Qn;default:return Pc}}function d8e(e,t,n,r){switch(t){case 1:return!e.n&&(e.n=new nt(ec,e,1,7)),e.n;case 2:return e.k}return sxe(e,t,n,r)}function AA(e,t,n){var r,a;return e.Pj()?(a=e.Qj(),r=Hue(e,t,n),e.Jj(e.Ij(7,pt(n),r,t,a)),r):Hue(e,t,n)}function Fce(e,t){var n,r,a;e.d==null?(++e.e,--e.f):(a=t.ld(),n=t.Bi(),r=(n&Ii)%e.d.length,uvn(e,r,j2t(e,r,n,a)))}function AE(e,t){var n;n=(e.Bb&m0)!=0,t?e.Bb|=m0:e.Bb&=-1025,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,10,n,t))}function LE(e,t){var n;n=(e.Bb&Xy)!=0,t?e.Bb|=Xy:e.Bb&=-4097,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,12,n,t))}function ME(e,t){var n;n=(e.Bb&Sl)!=0,t?e.Bb|=Sl:e.Bb&=-8193,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,15,n,t))}function DE(e,t){var n;n=(e.Bb&r4)!=0,t?e.Bb|=r4:e.Bb&=-2049,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,11,n,t))}function C4n(e){var t;e.g&&(t=e.c.kg()?e.f:e.a,Y9e(t.a,e.o,!0),Y9e(t.a,e.o,!1),rt(e.o,(Nt(),Ms),(Ra(),Tv)))}function S4n(e){var t;if(!e.a)throw ue(new nc("Cannot offset an unassigned cut."));t=e.c-e.b,e.b+=t,zat(e,t),$at(e,t)}function _4n(e,t){var n;if(n=cr(e.k,t),n==null)throw ue(new dd("Port did not exist in input."));return S7e(t,n),null}function A4n(e){var t,n;for(n=B2t(Ah(e)).Kc();n.Ob();)if(t=ei(n.Pb()),YA(e,t))return Lmn((met(),R_t),t);return null}function m1t(e){var t,n;for(n=e.p.a.ec().Kc();n.Ob();)if(t=l(n.Pb(),218),t.f&&e.b[t.c]<-1e-10)return t;return null}function L4n(e){var t,n;for(n=hb(new tb,91),t=!0;e.Ob();)t||(n.a+=Co),t=!1,wu(n,e.Pb());return(n.a+="]",n).a}function M4n(e){var t,n,r;for(t=new bt,r=new G(e.b);r.at?1:e==t?e==0?Yi(1/e,1/t):0:isNaN(e)?isNaN(t)?0:1:-1}function I4n(e){var t;return t=e.a[e.c-1&e.a.length-1],t==null?null:(e.c=e.c-1&e.a.length-1,Ts(e.a,e.c,null),t)}function O4n(e){var t,n,r;for(r=0,n=e.length,t=0;t=1?vc:Q1):n}function F4n(e){switch(l(Q(e,(Nt(),bp)),223).g){case 1:return new Tee;case 3:return new Lee;default:return new Eee}}function xb(e){if(e.c)xb(e.c);else if(e.d)throw ue(new nc("Stream already terminated, can't be modified or used"))}function Bw(e,t,n){var r;return r=e.a.get(t),e.a.set(t,n===void 0?null:n),r===void 0?(++e.c,++e.b.g):++e.d,r}function R4n(e,t,n){var r,a;for(a=e.a.ec().Kc();a.Ob();)if(r=l(a.Pb(),10),EN(n,l(jt(t,r.p),16)))return r;return null}function p8e(e,t,n){var r;return r=0,t&&(B5(e.a)?r+=t.f.a/2:r+=t.f.b/2),n&&(B5(e.a)?r+=n.f.a/2:r+=n.f.b/2),r}function j4n(e,t,n){var r;r=n,!r&&(r=B4e(new L8,0)),r.Ug(L3t,2),kdt(e.b,t,r.eh(1)),eMn(e,t,r.eh(1)),rIn(t,r.eh(1)),r.Vg()}function b8e(e,t,n){var r,a;return r=(rb(),a=new AS,a),dV(r,t),fV(r,n),e&&qr((!e.a&&(e.a=new Ys(qh,e,5)),e.a),r),r}function jce(e){var t;return e.Db&64?g0(e):(t=new Af(g0(e)),t.a+=" (identifier: ",Xo(t,e.k),t.a+=")",t.a)}function $ce(e,t){var n;n=(e.Bb&eu)!=0,t?e.Bb|=eu:e.Bb&=-32769,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,18,n,t))}function m8e(e,t){var n;n=(e.Bb&eu)!=0,t?e.Bb|=eu:e.Bb&=-32769,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,18,n,t))}function IE(e,t){var n;n=(e.Bb&_d)!=0,t?e.Bb|=_d:e.Bb&=-16385,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,16,n,t))}function v8e(e,t){var n;n=(e.Bb&Io)!=0,t?e.Bb|=Io:e.Bb&=-65537,e.Db&4&&!(e.Db&1)&&Ni(e,new h0(e,1,20,n,t))}function w8e(e){var t;return t=We(kf,Ad,28,2,15,1),e-=Io,t[0]=(e>>10)+AP&Zs,t[1]=(e&1023)+56320&Zs,If(t,0,t.length)}function $4n(e){var t;return t=jy(e),t>34028234663852886e22?gs:t<-34028234663852886e22?ia:t}function bo(e,t){var n;return wc(e)&&wc(t)&&(n=e+t,_P"+Bm(t.c):"e_"+es(t),e.b&&e.c?Bm(e.b)+"->"+Bm(e.c):"e_"+es(e))}function H4n(e,t){return vn(t.b&&t.c?Bm(t.b)+"->"+Bm(t.c):"e_"+es(t),e.b&&e.c?Bm(e.b)+"->"+Bm(e.c):"e_"+es(e))}function Fw(e,t){return A1(),f0(Ab),b.Math.abs(e-t)<=Ab||e==t||isNaN(e)&&isNaN(t)?0:et?1:uw(isNaN(e),isNaN(t))}function ip(){ip=U,Hge=new xq(cL,0),JB=new xq("POLYLINE",1),iC=new xq("ORTHOGONAL",2),s9=new xq("SPLINES",3)}function qV(){qV=U,YIe=new Rse("ASPECT_RATIO_DRIVEN",0),uge=new Rse("MAX_SCALE_DRIVEN",1),WIe=new Rse("AREA_DRIVEN",2)}function V4n(e,t,n){var r;try{dyn(e,t,n)}catch(a){throw a=bs(a),De(a,606)?(r=a,ue(new w6e(r))):ue(a)}return t}function U4n(e){var t,n,r;for(n=0,r=e.length;nt&&r.Ne(e[o-1],e[o])>0;--o)f=e[o],Ts(e,o,e[o-1]),Ts(e,o-1,f)}function sn(e,t){var n,r,a,o,f;if(n=t.f,h2(e.c.d,n,t),t.g!=null)for(a=t.g,o=0,f=a.length;ot){pct(n);break}}zO(n,t)}function Y4n(e,t){var n,r,a;r=G5(t),a=ze(Ge(Py(r,(Nt(),x0)))),n=b.Math.max(0,a/2-.5),FA(t,n,1),vt(e,new Net(t,n))}function X4n(e,t,n){var r;n.Ug("Straight Line Edge Routing",1),n.dh(t,yCe),r=l(at(t,(H5(),Y6)),27),rvt(e,r),n.dh(t,OG)}function y8e(e,t){e.n.c.length==0&&vt(e.n,new PH(e.s,e.t,e.i)),vt(e.b,t),exe(l(jt(e.n,e.n.c.length-1),209),t),jmt(e,t)}function LA(e){var t;this.a=(t=l(e.e&&e.e(),9),new Zh(t,l(c0(t,t.length),9),0)),this.b=We(wa,Rn,1,this.a.a.length,5,1)}function xc(e){var t;return Array.isArray(e)&&e.Tm===xe?_m(bh(e))+"@"+(t=es(e)>>>0,t.toString(16)):e.toString()}function Q4n(e,t){return e.h==SP&&e.m==0&&e.l==0?(t&&(Nb=qu(0,0,0)),ent((iE(),YSe))):(t&&(Nb=qu(e.l,e.m,e.h)),qu(0,0,0))}function J4n(e,t){switch(t.g){case 2:return e.b;case 1:return e.c;case 4:return e.d;case 3:return e.a;default:return!1}}function x1t(e,t){switch(t.g){case 2:return e.b;case 1:return e.c;case 4:return e.d;case 3:return e.a;default:return!1}}function x8e(e,t,n,r){switch(t){case 3:return e.f;case 4:return e.g;case 5:return e.i;case 6:return e.j}return d8e(e,t,n,r)}function HV(e,t){if(t==e.d)return e.e;if(t==e.e)return e.d;throw ue(new Yn("Node "+t+" not part of edge "+e))}function Z4n(e,t){var n;if(n=oP(e.Dh(),t),De(n,102))return l(n,19);throw ue(new Yn(Ob+t+"' is not a valid reference"))}function uf(e,t,n,r){if(t<0)$9e(e,n,r);else{if(!n.rk())throw ue(new Yn(Ob+n.xe()+kL));l(n,69).wk().Ck(e,e.hi(),t,r)}}function Ql(e){var t;if(e.b){if(Ql(e.b),e.b.d!=e.c)throw ue(new Xh)}else e.d.dc()&&(t=l(e.f.c.xc(e.e),16),t&&(e.d=t))}function e5n(e){py();var t,n,r,a;for(t=e.o.b,r=l(l($i(e.r,(Ct(),Dr)),21),87).Kc();r.Ob();)n=l(r.Pb(),117),a=n.e,a.b+=t}function t5n(e){var t,n,r;for(this.a=new bd,r=new G(e);r.a=a)return t.c+n;return t.c+t.b.gc()}function r5n(e,t){Fk();var n,r,a,o;for(r=Olt(e),a=t,nE(r,0,r.length,a),n=0;n0&&(r+=a,++n);return n>1&&(r+=e.d*(n-1)),r}function s5n(e){var t,n,r,a,o;return o=jxe(e),n=ZI(e.c),r=!n,r&&(a=new $p,e1(o,"knownLayouters",a),t=new uQe(a),to(e.c,t)),o}function T8e(e){var t,n,r;for(r=new Up,r.a+="[",t=0,n=e.gc();t0&&(Xn(t-1,e.length),e.charCodeAt(t-1)==58)&&!Hce(e,$M,zM))}function C8e(e,t){var n;return qe(e)===qe(t)?!0:De(t,92)?(n=l(t,92),e.e==n.e&&e.d==n.d&&Imn(e,n.a)):!1}function gx(e){switch(Ct(),e.g){case 4:return Qn;case 1:return ar;case 3:return Dr;case 2:return er;default:return Pc}}function u5n(e){var t,n;if(e.b)return e.b;for(n=G1?null:e.d;n;){if(t=G1?null:n.b,t)return t;n=G1?null:n.d}return Dk(),w_e}function S8e(e){var t,n,r;for(r=ze(Ge(e.a.of((pi(),iY)))),n=new G(e.a.Sf());n.a>5,t=e&31,r=We(Vr,di,28,n+1,15,1),r[n]=1<3;)a*=10,--o;e=(e+(a>>1))/a|0}return r.i=e,!0}function ms(e,t){var n,r,a;if(n=(e.i==null&&Sd(e),e.i),r=t.Lj(),r!=-1){for(a=n.length;r=0;--r)for(t=n[r],a=0;a>1,this.k=t-1>>1}function T5n(e){ZH(),l(e.of((pi(),Ub)),181).Hc((Zl(),hY))&&(l(e.of(S4),181).Fc((Rl(),a9)),l(e.of(Ub),181).Mc(hY))}function A1t(e){var t,n;t=e.d==(yx(),IT),n=Lxe(e),t&&!n||!t&&n?rt(e.a,(Nt(),Rd),(og(),VB)):rt(e.a,(Nt(),Rd),(og(),HB))}function Gce(){Gce=U,tq(),TW=(Nt(),m3),Qkt=O1(he(le(Cge,1),oCe,149,0,[SB,x0,H6,b3,y4,cde,GT,KT,ude,tM,q6,vv,V6]))}function C5n(e,t){var n;return n=l(yc(e,Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15),n.Qc(Yit(n.gc()))}function L1t(e,t){var n,r;if(r=new ba(e.a.ad(t,!0)),r.a.gc()<=1)throw ue(new S8);return n=r.a.ec().Kc(),n.Pb(),l(n.Pb(),40)}function S5n(e,t,n){var r,a;return r=ze(e.p[t.i.p])+ze(e.d[t.i.p])+t.n.b+t.a.b,a=ze(e.p[n.i.p])+ze(e.d[n.i.p])+n.n.b+n.a.b,a-r}function O8e(e,t){var n;return e.i>0&&(t.lengthe.i&&Ts(t,e.i,null),t}function UV(e){var t;return e.Db&64?CA(e):(t=new Af(CA(e)),t.a+=" (instanceClassName: ",Xo(t,e.D),t.a+=")",t.a)}function GV(e){var t,n,r,a;for(a=0,n=0,r=e.length;n0?(e._j(),r=t==null?0:es(t),a=(r&Ii)%e.d.length,n=j2t(e,a,r,t),n!=-1):!1}function M1t(e,t){var n,r;e.a=bo(e.a,1),e.c=b.Math.min(e.c,t),e.b=b.Math.max(e.b,t),e.d+=t,n=t-e.f,r=e.e+n,e.f=r-e.e-n,e.e=r}function N8e(e,t){switch(t){case 3:Mw(e,0);return;case 4:Dw(e,0);return;case 5:Uu(e,0);return;case 6:Gu(e,0);return}i8e(e,t)}function Rw(e,t){switch(t.g){case 1:return G8(e.j,(kl(),xAe));case 2:return G8(e.j,(kl(),EAe));default:return Cn(),Cn(),_o}}function P8e(e){ww();var t;switch(t=e.Pc(),t.length){case 0:return x0e;case 1:return new Sae(Xr(t[0]));default:return new ooe(U4n(t))}}function D1t(e,t){e.Xj();try{e.d.bd(e.e++,t),e.f=e.d.j,e.g=-1}catch(n){throw n=bs(n),De(n,77)?ue(new Xh):ue(n)}}function Wce(){Wce=U,ipe=new NS,MPe=new H0,DPe=new AI,IPe=new LI,OPe=new f8,NPe=new tre,PPe=new nre,BPe=new rre,FPe=new ire}function KV(e,t){iye();var n,r;return n=MO((zz(),zz(),NL)),r=null,t==n&&(r=l(xu(KSe,e),624)),r||(r=new Xst(e),t==n&&rc(KSe,e,r)),r}function I1t(e){By();var t;return(e.q?e.q:(Cn(),Cn(),mg))._b((Nt(),g3))?t=l(Q(e,g3),203):t=l(Q(eo(e),eM),203),t}function Py(e,t){var n,r;return r=null,ns(e,(Nt(),kW))&&(n=l(Q(e,kW),96),n.pf(t)&&(r=n.of(t))),r==null&&(r=Q(eo(e),t)),r}function O1t(e,t){var n,r,a;return De(t,44)?(n=l(t,44),r=n.ld(),a=Oy(e.Rc(),r),yd(a,n.md())&&(a!=null||e.Rc()._b(r))):!1}function n1(e,t){var n,r,a;return e.f>0&&(e._j(),r=t==null?0:es(t),a=(r&Ii)%e.d.length,n=y9e(e,a,r,t),n)?n.md():null}function Ru(e,t,n){var r,a,o;return e.Pj()?(r=e.i,o=e.Qj(),IN(e,r,t),a=e.Ij(3,null,t,r,o),n?n.nj(a):n=a):IN(e,e.i,t),n}function A5n(e,t,n){var r,a;return r=new Zg(e.e,4,10,(a=t.c,De(a,90)?l(a,29):(Tn(),Kf)),null,f2(e,t),!1),n?n.nj(r):n=r,n}function L5n(e,t,n){var r,a;return r=new Zg(e.e,3,10,null,(a=t.c,De(a,90)?l(a,29):(Tn(),Kf)),f2(e,t),!1),n?n.nj(r):n=r,n}function N1t(e){py();var t;return t=new Eo(l(e.e.of((pi(),i7)),8)),e.B.Hc((Zl(),aC))&&(t.a<=0&&(t.a=20),t.b<=0&&(t.b=20)),t}function kb(e){Cd();var t,n;return n=Yr(e),t=Yr(ub(e,32)),t!=0?new qot(n,t):n>10||n<0?new Qg(1,n):y6t[n]}function RN(e,t){var n;return wc(e)&&wc(t)&&(n=e%t,_P=0?o=o.a[1]:(a=o,o=o.a[0])}return a}function $N(e,t,n){var r,a,o;for(a=null,o=e.b;o;){if(r=e.a.Ne(t,o.d),n&&r==0)return o;r<=0?o=o.a[0]:(a=o,o=o.a[1])}return a}function P5n(e,t,n,r){var a,o,f;return a=!1,RMn(e.f,n,r)&&(r6n(e.f,e.a[t][n],e.a[t][r]),o=e.a[t],f=o[r],o[r]=o[n],o[n]=f,a=!0),a}function R1t(e,t,n){var r,a,o,f;for(a=l(cr(e.b,n),183),r=0,f=new G(t.j);f.a>5,t&=31,a=e.d+n+(t==0?0:1),r=We(Vr,di,28,a,15,1),Oxn(r,e.a,n,t),o=new Im(e.e,a,r),iA(o),o}function B5n(e,t){var n,r,a;for(r=new hr(dr(qs(e).a.Kc(),new j));jr(r);)if(n=l(xr(r),18),a=n.d.i,a.c==t)return!1;return!0}function R8e(e,t,n){var r,a,o,f,g;return f=e.k,g=t.k,r=n[f.g][g.g],a=Ge(Py(e,r)),o=Ge(Py(t,r)),b.Math.max((nr(a),a),(nr(o),o))}function F5n(){return Error.stackTraceLimit>0?(b.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error}function R5n(e,t){return A1(),A1(),f0(Ab),(b.Math.abs(e-t)<=Ab||e==t||isNaN(e)&&isNaN(t)?0:et?1:uw(isNaN(e),isNaN(t)))>0}function j8e(e,t){return A1(),A1(),f0(Ab),(b.Math.abs(e-t)<=Ab||e==t||isNaN(e)&&isNaN(t)?0:et?1:uw(isNaN(e),isNaN(t)))<0}function $1t(e,t){return A1(),A1(),f0(Ab),(b.Math.abs(e-t)<=Ab||e==t||isNaN(e)&&isNaN(t)?0:et?1:uw(isNaN(e),isNaN(t)))<=0}function Xce(e,t){for(var n=0;!t[n]||t[n]=="";)n++;for(var r=t[n++];n0&&this.b>0&&(this.g=aH(this.c,this.b,this.a))}function j5n(e,t){var n=e.a,r;t=String(t),n.hasOwnProperty(t)&&(r=n[t]);var a=(vce(),_0e)[typeof r],o=a?a(r):Z7e(typeof r);return o}function NE(e){var t,n,r;if(r=null,t=Pd in e.a,n=!t,n)throw ue(new dd("Every element must have an id."));return r=xx(Wg(e,Pd)),r}function jw(e){var t,n;for(n=fpt(e),t=null;e.c==2;)Li(e),t||(t=(Di(),Di(),new B_(2)),Qm(t,n),n=t),n.Jm(fpt(e));return n}function YV(e,t){var n,r,a;return e._j(),r=t==null?0:es(t),a=(r&Ii)%e.d.length,n=y9e(e,a,r,t),n?(Wht(e,n),n.md()):null}function K1t(e,t){return e.e>t.e?1:e.et.d?e.e:e.d=48&&e<48+b.Math.min(10,10)?e-48:e>=97&&e<97?e-97+10:e>=65&&e<65?e-65+10:-1}function $5n(e,t){if(t.c==e)return t.d;if(t.d==e)return t.c;throw ue(new Yn("Input edge is not connected to the input port."))}function z5n(e){if(QV(wT,e))return Hn(),ST;if(QV(Ffe,e))return Hn(),Pb;throw ue(new Yn("Expecting true or false"))}function q8e(e){switch(typeof e){case Ile:return s2(e);case Qke:return j8(e);case Cx:return Art(e);default:return e==null?0:fw(e)}}function Td(e,t){if(e.a<0)throw ue(new nc("Did not call before(...) or after(...) before calling add(...)."));return Bye(e,e.a,t),e}function H8e(e){return BH(),De(e,162)?l(cr(lF,C6t),295).Rg(e):Hu(lF,bh(e))?l(cr(lF,bh(e)),295).Rg(e):null}function Ku(e){var t,n;return e.Db&32||(n=(t=l(Kn(e,16),29),yr(t||e.ii())-yr(e.ii())),n!=0&&px(e,32,We(wa,Rn,1,n,5,1))),e}function px(e,t,n){var r;e.Db&t?n==null?TEn(e,t):(r=mue(e,t),r==-1?e.Eb=n:Ts(jm(e.Eb),r,n)):n!=null&&KCn(e,t,n)}function q5n(e,t,n,r){var a,o;t.c.length!=0&&(a=FTn(n,r),o=Rkn(t),Is(lV(new bn(null,new kn(o,1)),new a8),new Cat(e,n,a,r)))}function H5n(e,t){var n,r,a,o;return r=e.a.length-1,n=t-e.b&r,o=e.c-t&r,a=e.c-e.b&r,Ert(n=o?(zyn(e,t),-1):($yn(e,t),1)}function XV(e){var t,n,r;if(r=e.Jh(),!r)for(t=0,n=e.Ph();n;n=n.Ph()){if(++t>ohe)return n.Qh();if(r=n.Jh(),r||n==e)break}return r}function Y1t(e,t){var n;return qe(t)===qe(e)?!0:!De(t,21)||(n=l(t,21),n.gc()!=e.gc())?!1:e.Ic(n)}function V5n(e,t){return e.et.e?1:e.ft.f?1:es(e)-es(t)}function QV(e,t){return nr(e),t==null?!1:vn(e,t)?!0:e.length==t.length&&vn(e.toLowerCase(),t.toLowerCase())}function ap(e){var t,n;return iu(e,-129)>0&&iu(e,128)<0?(Zit(),t=Yr(e)+128,n=n_e[t],!n&&(n=n_e[t]=new Or(e)),n):new Or(e)}function Km(){Km=U,c4=new dq(Id,0),bAe=new dq("INSIDE_PORT_SIDE_GROUPS",1),o1e=new dq("GROUP_MODEL_ORDER",2),c1e=new dq($Ee,3)}function U5n(e){var t;return e.b||Run(e,(t=Ffn(e.e,e.a),!t||!vn(Ffe,n1((!t.b&&(t.b=new dh((Tn(),No),Yc,t)),t.b),"qualified")))),e.c}function G5n(e,t){var n,r;for(n=(Xn(t,e.length),e.charCodeAt(t)),r=t+1;r2e3&&(l6t=e,oK=b.setTimeout(Hun,10))),aK++==0?(swn((Xwe(),GSe)),!0):!1}function a6n(e,t,n){var r;(I6t?(u5n(e),!0):O6t||P6t?(Dk(),!0):N6t&&(Dk(),!1))&&(r=new fit(t),r.b=n,g9n(e,r))}function Jce(e,t){var n;n=!e.A.Hc((mh(),Cv))||e.q==(Ra(),Mu),e.u.Hc((Rl(),vp))?n?YDn(e,t):Vvt(e,t):e.u.Hc(Yb)&&(n?pDn(e,t):swt(e,t))}function tdt(e){var t;qe(at(e,(pi(),n7)))===qe((rp(),oY))&&(ds(e)?(t=l(at(ds(e),n7),346),Hi(e,n7,t)):Hi(e,n7,DM))}function o6n(e){var t,n;return ns(e.d.i,(Nt(),HT))?(t=l(Q(e.c.i,HT),17),n=l(Q(e.d.i,HT),17),ru(t.a,n.a)>0):!1}function ndt(e,t,n){return new ef(b.Math.min(e.a,t.a)-n/2,b.Math.min(e.b,t.b)-n/2,b.Math.abs(e.a-t.a)+n,b.Math.abs(e.b-t.b)+n)}function rdt(e){var t;this.d=new bt,this.j=new qa,this.g=new qa,t=e.g.b,this.f=l(Q(eo(t),(Nt(),Rh)),88),this.e=ze(Ge(tU(t,y4)))}function idt(e){this.d=new bt,this.e=new e2,this.c=We(Vr,di,28,(Ct(),he(le(Oo,1),au,64,0,[Pc,Qn,ar,Dr,er])).length,15,1),this.b=e}function G8e(e,t,n){var r;switch(r=n[e.g][t],e.g){case 1:case 3:return new lt(0,r);case 2:case 4:return new lt(r,0);default:return null}}function sdt(e,t,n){var r,a;a=l(GO(t.f),205);try{a.rf(e,n),lat(t.f,a)}catch(o){throw o=bs(o),De(o,103)?(r=o,ue(r)):ue(o)}}function adt(e,t,n){var r,a,o,f,g,w;return r=null,g=Fke(hE(),t),o=null,g&&(a=null,w=Pke(g,n),f=null,w!=null&&(f=e.qf(g,w)),a=f,o=a),r=o,r}function Zce(e,t,n,r){var a;if(a=e.length,t>=a)return a;for(t=t>0?t:0;tr&&Ts(t,r,null),t}function odt(e,t){var n,r;for(r=e.a.length,t.lengthr&&Ts(t,r,null),t}function PE(e,t){var n,r;if(++e.j,t!=null&&(n=(r=e.a.Cb,De(r,99)?l(r,99).th():null),fEn(t,n))){px(e.a,4,n);return}px(e.a,4,l(t,129))}function c6n(e){var t;if(e==null)return null;if(t=dTn(Tu(e,!0)),t==null)throw ue(new Jie("Invalid hexBinary value: '"+e+"'"));return t}function JV(e,t,n){var r;t.a.length>0&&(vt(e.b,new Ait(t.a,n)),r=t.a.length,0r&&(t.a+=Mnt(We(kf,Ad,28,-r,15,1))))}function cdt(e,t,n){var r,a,o;if(!n[t.d])for(n[t.d]=!0,a=new G(Z5(t));a.a=e.b>>1)for(r=e.c,n=e.b;n>t;--n)r=r.b;else for(r=e.a.a,n=0;n=0?e.Wh(a):que(e,r)):n<0?que(e,r):l(r,69).wk().Bk(e,e.hi(),n)}function fdt(e){var t,n,r;for(r=(!e.o&&(e.o=new xl((su(),Cg),L2,e,0)),e.o),n=r.c.Kc();n.e!=n.i.gc();)t=l(n.Yj(),44),t.md();return iN(r)}function It(e){var t;if(De(e.a,4)){if(t=H8e(e.a),t==null)throw ue(new nc(Nyt+e.b+"'. "+Oyt+(Gg(hF),hF.k)+JCe));return t}else return e.a}function b6n(e,t){var n,r;if(e.j.length!=t.j.length)return!1;for(n=0,r=e.j.length;n=64&&t<128&&(a=Q0(a,l0(1,t-64)));return a}function tU(e,t){var n,r;return r=null,ns(e,(pi(),r9))&&(n=l(Q(e,r9),96),n.pf(t)&&(r=n.of(t))),r==null&&eo(e)&&(r=Q(eo(e),t)),r}function m6n(e,t){var n;return n=l(Q(e,(Nt(),cc)),75),Zse(t,O8t)?n?Ch(n):(n=new bl,rt(e,cc,n)):n&&rt(e,cc,null),n}function IA(){IA=U,X_e=(pi(),_Ne),W0e=oNe,I7t=Z6,Y_e=_2,B7t=(dU(),A_e),P7t=S_e,F7t=M_e,N7t=C_e,O7t=(Lce(),G_e),K0e=L7t,W_e=M7t,vK=D7t}function nU(e){switch(w3e(),this.c=new bt,this.d=e,e.g){case 0:case 2:this.a=_5e(pAe),this.b=gs;break;case 3:case 1:this.a=pAe,this.b=ia}}function v6n(e){var t;U8(l(Q(e,(Nt(),Ms)),101))&&(t=e.b,e2t((Sn(0,t.c.length),l(t.c[0],30))),e2t(l(jt(t,t.c.length-1),30)))}function w6n(e,t){t.Ug("Self-Loop post-processing",1),Is(Fi(Fi(Dc(new bn(null,new kn(e.b,16)),new RZ),new jZ),new $Z),new Ej),t.Vg()}function ddt(e,t,n){var r,a;if(e.c)Uu(e.c,e.c.i+t),Gu(e.c,e.c.j+n);else for(a=new G(e.b);a.a=0&&(n.d=e.t);break;case 3:e.t>=0&&(n.a=e.t)}e.C&&(n.b=e.C.b,n.c=e.C.c)}function OA(){OA=U,vDe=new hO(cCe,0),vde=new hO($he,1),wde=new hO("LINEAR_SEGMENTS",2),rM=new hO("BRANDES_KOEPF",3),iM=new hO(cyt,4)}function NA(){NA=U,uB=new hq(nG,0),bK=new hq(yhe,1),mK=new hq(xhe,2),lB=new hq(khe,3),uB.a=!1,bK.a=!0,mK.a=!1,lB.a=!0}function bx(){bx=U,aB=new lq(nG,0),sB=new lq(yhe,1),oB=new lq(xhe,2),cB=new lq(khe,3),aB.a=!1,sB.a=!0,oB.a=!1,cB.a=!0}function mx(e,t,n,r){var a;return n>=0?e.Sh(t,n,r):(e.Ph()&&(r=(a=e.Fh(),a>=0?e.Ah(r):e.Ph().Th(e,-1-a,null,r))),e.Ch(t,n,r))}function K8e(e,t){switch(t){case 7:!e.e&&(e.e=new Ln(js,e,7,4)),$r(e.e);return;case 8:!e.d&&(e.d=new Ln(js,e,8,5)),$r(e.d);return}N8e(e,t)}function Hi(e,t,n){return n==null?(!e.o&&(e.o=new xl((su(),Cg),L2,e,0)),YV(e.o,t)):(!e.o&&(e.o=new xl((su(),Cg),L2,e,0)),GN(e.o,t,n)),e}function mdt(e,t){Cn();var n,r,a,o;for(n=e,o=t,De(e,21)&&!De(t,21)&&(n=t,o=e),a=n.Kc();a.Ob();)if(r=a.Pb(),o.Hc(r))return!1;return!0}function T6n(e,t,n,r){if(t.an.b)return!0}return!1}function iue(e,t){return Ia(e)?!!r6t[t]:e.Sm?!!e.Sm[t]:fy(e)?!!n6t[t]:hy(e)?!!t6t[t]:!1}function C6n(e){var t;t=e.a;do t=l(xr(new hr(dr(ka(t).a.Kc(),new j))),18).c.i,t.k==(Zn(),Aa)&&e.b.Fc(t);while(t.k==(Zn(),Aa));e.b=lf(e.b)}function vdt(e,t){var n,r,a;for(a=e,r=new hr(dr(ka(t).a.Kc(),new j));jr(r);)n=l(xr(r),18),n.c.i.c&&(a=b.Math.max(a,n.c.i.c.p));return a}function S6n(e,t){var n,r,a;for(a=0,r=l(l($i(e.r,t),21),87).Kc();r.Ob();)n=l(r.Pb(),117),a+=n.d.d+n.b.Mf().b+n.d.a,r.Ob()&&(a+=e.w);return a}function _6n(e,t){var n,r,a;for(a=0,r=l(l($i(e.r,t),21),87).Kc();r.Ob();)n=l(r.Pb(),117),a+=n.d.b+n.b.Mf().a+n.d.c,r.Ob()&&(a+=e.w);return a}function wdt(e){var t,n,r,a;if(r=0,a=Hy(e),a.c.length==0)return 1;for(n=new G(a);n.a=0?e.Lh(f,n,!0):Hw(e,o,n)):l(o,69).wk().yk(e,e.hi(),a,n,r)}function D6n(e,t,n,r){var a,o;o=t.pf((pi(),r7))?l(t.of(r7),21):e.j,a=p4n(o),a!=(YU(),H0e)&&(n&&!$8e(a)||Jxe(gTn(e,a,r),t))}function I6n(e){switch(e.g){case 1:return Pw(),iB;case 3:return Pw(),rB;case 2:return Pw(),U0e;case 4:return Pw(),V0e;default:return null}}function O6n(e,t,n){if(e.e)switch(e.b){case 1:Epn(e.c,t,n);break;case 0:Tpn(e.c,t,n)}else $ct(e.c,t,n);e.a[t.p][n.p]=e.c.i,e.a[n.p][t.p]=e.c.e}function ydt(e){var t,n;if(e==null)return null;for(n=We(wg,dt,199,e.length,0,2),t=0;t=0)return a;if(e.ol()){for(r=0;r=a)throw ue(new my(t,a));if(e.Si()&&(r=e.dd(n),r>=0&&r!=t))throw ue(new Yn(WP));return e.Xi(t,n)}function W8e(e,t){if(this.a=l(Xr(e),253),this.b=l(Xr(t),253),e.Ed(t)>0||e==(Uie(),w0e)||t==(Gie(),y0e))throw ue(new Yn("Invalid range: "+Hct(e,t)))}function xdt(e){var t,n;for(this.b=new bt,this.c=e,this.a=!1,n=new G(e.a);n.a0),(t&-t)==t)return ua(t*Jl(e,31)*4656612873077393e-25);do n=Jl(e,31),r=n%t;while(n-r+(t-1)<0);return ua(r)}function j6n(e,t,n){switch(n.g){case 1:e.a=t.a/2,e.b=0;break;case 2:e.a=t.a,e.b=t.b/2;break;case 3:e.a=t.a/2,e.b=t.b;break;case 4:e.a=0,e.b=t.b/2}}function zN(e,t,n,r){var a,o;for(a=t;a1&&(o=P6n(e,t)),o}function Tdt(e){var t;return t=ze(Ge(at(e,(pi(),QB))))*b.Math.sqrt((!e.a&&(e.a=new nt(Ai,e,10,11)),e.a).i),new lt(t,t/ze(Ge(at(e,sY))))}function aue(e){var t;return e.f&&e.f.Vh()&&(t=l(e.f,54),e.f=l(yb(e,t),84),e.f!=t&&e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,9,8,t,e.f))),e.f}function oue(e){var t;return e.i&&e.i.Vh()&&(t=l(e.i,54),e.i=l(yb(e,t),84),e.i!=t&&e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,9,7,t,e.i))),e.i}function Ro(e){var t;return e.b&&e.b.Db&64&&(t=e.b,e.b=l(yb(e,t),19),e.b!=t&&e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,9,21,t,e.b))),e.b}function oU(e,t){var n,r,a;e.d==null?(++e.e,++e.f):(r=t.Bi(),cCn(e,e.f+1),a=(r&Ii)%e.d.length,n=e.d[a],!n&&(n=e.d[a]=e.dk()),n.Fc(t),++e.f)}function Q8e(e,t,n){var r;return t.tk()?!1:t.Ik()!=-2?(r=t.ik(),r==null?n==null:Pi(r,n)):t.qk()==e.e.Dh()&&n==null}function cU(){var e;Mh(16,Pwt),e=cft(16),this.b=We(k0e,TP,303,e,0,1),this.c=We(k0e,TP,303,e,0,1),this.a=null,this.e=null,this.i=0,this.f=e-1,this.g=0}function op(e){r4e.call(this),this.k=(Zn(),Ps),this.j=(Mh(6,Yy),new Bu(6)),this.b=(Mh(2,Yy),new Bu(2)),this.d=new $ie,this.f=new Rwe,this.a=e}function z6n(e){var t,n;e.c.length<=1||(t=Abt(e,(Ct(),Dr)),ppt(e,l(t.a,17).a,l(t.b,17).a),n=Abt(e,er),ppt(e,l(n.a,17).a,l(n.b,17).a))}function q6n(e,t,n){var r,a;for(a=e.a.b,r=a.c.length;r102?-1:e<=57?e-48:e<65?-1:e<=70?e-65+10:e<97?-1:e-97+10}function fue(e,t){if(e==null)throw ue(new D8("null key in entry: null="+t));if(t==null)throw ue(new D8("null value in entry: "+e+"=null"))}function U6n(e,t){for(var n,r;e.Ob();)if(!t.Ob()||(n=e.Pb(),r=t.Pb(),!(qe(n)===qe(r)||n!=null&&Pi(n,r))))return!1;return!t.Ob()}function _dt(e,t){var n;return n=he(le(Na,1),Zo,28,15,[Dce(e.a[0],t),Dce(e.a[1],t),Dce(e.a[2],t)]),e.d&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function Adt(e,t){var n;return n=he(le(Na,1),Zo,28,15,[BV(e.a[0],t),BV(e.a[1],t),BV(e.a[2],t)]),e.d&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function Z8e(e,t,n){U8(l(Q(t,(Nt(),Ms)),101))||(d6e(e,t,d2(t,n)),d6e(e,t,d2(t,(Ct(),Dr))),d6e(e,t,d2(t,Qn)),Cn(),Vs(t.j,new IYe(e)))}function Ldt(e){var t,n;for(e.c||lMn(e),n=new bl,t=new G(e.a),re(t);t.a0&&(Xn(0,t.length),t.charCodeAt(0)==43)?(Xn(1,t.length+1),t.substr(1)):t))}function s7n(e){var t;return e==null?null:new ob((t=Tu(e,!0),t.length>0&&(Xn(0,t.length),t.charCodeAt(0)==43)?(Xn(1,t.length+1),t.substr(1)):t))}function txe(e,t,n,r,a,o,f,g){var w,E;r&&(w=r.a[0],w&&txe(e,t,n,w,a,o,f,g),xue(e,n,r.d,a,o,f,g)&&t.Fc(r),E=r.a[1],E&&txe(e,t,n,E,a,o,f,g))}function r6(e,t,n){try{return cw(nce(e,t,n),1)}catch(r){throw r=bs(r),De(r,333)?ue(new tc(Ehe+e.o+"*"+e.p+The+t+Co+n+Che)):ue(r)}}function Ndt(e,t,n){try{return cw(nce(e,t,n),0)}catch(r){throw r=bs(r),De(r,333)?ue(new tc(Ehe+e.o+"*"+e.p+The+t+Co+n+Che)):ue(r)}}function Pdt(e,t,n){try{return cw(nce(e,t,n),2)}catch(r){throw r=bs(r),De(r,333)?ue(new tc(Ehe+e.o+"*"+e.p+The+t+Co+n+Che)):ue(r)}}function Bdt(e,t){if(e.g==-1)throw ue(new pl);e.Xj();try{e.d.hd(e.g,t),e.f=e.d.j}catch(n){throw n=bs(n),De(n,77)?ue(new Xh):ue(n)}}function a7n(e){var t,n,r,a,o;for(r=new G(e.b);r.ao&&Ts(t,o,null),t}function o7n(e,t){var n,r;if(r=e.gc(),t==null){for(n=0;n0&&(w+=a),E[C]=f,f+=g*(w+r)}function Rdt(e){var t,n,r;for(r=e.f,e.n=We(Na,Zo,28,r,15,1),e.d=We(Na,Zo,28,r,15,1),t=0;t0?e.c:0),++a;e.b=r,e.d=o}function Hdt(e,t){var n;return n=he(le(Na,1),Zo,28,15,[X8e(e,(t1(),Gc),t),X8e(e,$u,t),X8e(e,Kc,t)]),e.f&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function p7n(e,t,n){var r;try{FU(e,t+e.j,n+e.k,!1,!0)}catch(a){throw a=bs(a),De(a,77)?(r=a,ue(new tc(r.g+iG+t+Co+n+")."))):ue(a)}}function b7n(e,t,n){var r;try{FU(e,t+e.j,n+e.k,!0,!1)}catch(a){throw a=bs(a),De(a,77)?(r=a,ue(new tc(r.g+iG+t+Co+n+")."))):ue(a)}}function Vdt(e){var t;ns(e,(Nt(),d3))&&(t=l(Q(e,d3),21),t.Hc((qy(),E0))?(t.Mc(E0),t.Fc(T0)):t.Hc(T0)&&(t.Mc(T0),t.Fc(E0)))}function Udt(e){var t;ns(e,(Nt(),d3))&&(t=l(Q(e,d3),21),t.Hc((qy(),S0))?(t.Mc(S0),t.Fc(qf)):t.Hc(qf)&&(t.Mc(qf),t.Fc(S0)))}function vue(e,t,n,r){var a,o,f,g;return e.a==null&&v9n(e,t),f=t.b.j.c.length,o=n.d.p,g=r.d.p,a=g-1,a<0&&(a=f-1),o<=a?e.a[a]-e.a[o]:e.a[f-1]-e.a[o]+e.a[a]}function m7n(e){var t,n;if(!e.b)for(e.b=$H(l(e.f,27).kh().i),n=new or(l(e.f,27).kh());n.e!=n.i.gc();)t=l(gr(n),135),vt(e.b,new Yie(t));return e.b}function v7n(e){var t,n;if(!e.e)for(e.e=$H(Xae(l(e.f,27)).i),n=new or(Xae(l(e.f,27)));n.e!=n.i.gc();)t=l(gr(n),123),vt(e.e,new BXe(t));return e.e}function Gdt(e){var t,n;if(!e.a)for(e.a=$H(AH(l(e.f,27)).i),n=new or(AH(l(e.f,27)));n.e!=n.i.gc();)t=l(gr(n),27),vt(e.a,new rae(e,t));return e.a}function zw(e){var t;if(!e.C&&(e.D!=null||e.B!=null))if(t=sDn(e),t)e.hl(t);else try{e.hl(null)}catch(n){if(n=bs(n),!De(n,63))throw ue(n)}return e.C}function w7n(e){switch(e.q.g){case 5:bgt(e,(Ct(),Qn)),bgt(e,Dr);break;case 4:vvt(e,(Ct(),Qn)),vvt(e,Dr);break;default:xpt(e,(Ct(),Qn)),xpt(e,Dr)}}function y7n(e){switch(e.q.g){case 5:mgt(e,(Ct(),ar)),mgt(e,er);break;case 4:wvt(e,(Ct(),ar)),wvt(e,er);break;default:kpt(e,(Ct(),ar)),kpt(e,er)}}function i6(e,t){var n,r,a;for(a=new qa,r=e.Kc();r.Ob();)n=l(r.Pb(),36),KE(n,a.a,0),a.a+=n.f.a+t,a.b=b.Math.max(a.b,n.f.b);return a.b>0&&(a.b+=t),a}function hU(e,t){var n,r,a;for(a=new qa,r=e.Kc();r.Ob();)n=l(r.Pb(),36),KE(n,0,a.b),a.b+=n.f.b+t,a.a=b.Math.max(a.a,n.f.a);return a.a>0&&(a.a+=t),a}function Kdt(e){var t,n,r;for(r=Ii,n=new G(e.a);n.a>16==6?e.Cb.Th(e,5,u1,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||e.ii()),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function x7n(e){Xk();var t=e.e;if(t&&t.stack){var n=t.stack,r=t+` `;return n.substring(0,r.length)==r&&(n=n.substring(r.length)),n.split(` -`)}return[]}function y7n(e){var t;return t=(Qht(),p6t),t[e>>>28]|t[e>>24&15]<<4|t[e>>20&15]<<8|t[e>>16&15]<<12|t[e>>12&15]<<16|t[e>>8&15]<<20|t[e>>4&15]<<24|t[e&15]<<28}function Xdt(e){var t,n,r;e.b==e.c&&(r=e.a.length,n=P7e(b.Math.max(8,r))<<1,e.b!=0?(t=c0(e.a,n),fft(e,t,r),e.a=t,e.b=0):ay(e.a,n),e.c=r)}function x7n(e,t){var n;return n=e.b,n.pf((pi(),rh))?n.ag()==(Ct(),er)?-n.Mf().a-ze(Ge(n.of(rh))):t+ze(Ge(n.of(rh))):n.ag()==(Ct(),er)?-n.Mf().a:t}function HN(e){var t;return e.b.c.length!=0&&l(jt(e.b,0),72).a?l(jt(e.b,0),72).a:(t=Qae(e),t??""+(e.c?gc(e.c.a,e,0):-1))}function fU(e){var t;return e.f.c.length!=0&&l(jt(e.f,0),72).a?l(jt(e.f,0),72).a:(t=Qae(e),t??""+(e.i?gc(e.i.j,e,0):-1))}function k7n(e,t){var n,r;if(t<0||t>=e.gc())return null;for(n=t;n0?e.c:0),a=b.Math.max(a,t.d),++r;e.e=o,e.b=a}function T7n(e){var t,n;if(!e.b)for(e.b=$H(l(e.f,123).kh().i),n=new or(l(e.f,123).kh());n.e!=n.i.gc();)t=l(gr(n),135),vt(e.b,new Yie(t));return e.b}function C7n(e,t){var n,r,a;if(t.dc())return Fk(),Fk(),fF;for(n=new Ort(e,t.gc()),a=new or(e);a.e!=a.i.gc();)r=gr(a),t.Hc(r)&&qr(n,r);return n}function sxe(e,t,n,r){return t==0?r?(!e.o&&(e.o=new xl((su(),Cg),L2,e,0)),e.o):(!e.o&&(e.o=new xl((su(),Cg),L2,e,0)),iN(e.o)):rU(e,t,n,r)}function yue(e){var t,n;if(e.rb)for(t=0,n=e.rb.i;t>22),a+=r>>22,a<0)?!1:(e.l=n&eh,e.m=r&eh,e.h=a&hp,!0)}function xue(e,t,n,r,a,o,f){var g,w;return!(t.Te()&&(w=e.a.Ne(n,r),w<0||!a&&w==0)||t.Ue()&&(g=e.a.Ne(n,o),g>0||!f&&g==0))}function L7n(e,t){TE();var n;if(n=e.j.g-t.j.g,n!=0)return 0;switch(e.j.g){case 2:return zce(t,cLe)-zce(e,cLe);case 4:return zce(e,oLe)-zce(t,oLe)}return 0}function M7n(e){switch(e.g){case 0:return D1e;case 1:return I1e;case 2:return O1e;case 3:return N1e;case 4:return QK;case 5:return P1e;default:return null}}function ac(e,t,n){var r,a;return r=(a=new Hie,Gm(a,t),Fu(a,n),qr((!e.c&&(e.c=new nt(k3,e,12,10)),e.c),a),a),i2(r,0),My(r,1),u2(r,!0),c2(r,!0),r}function vx(e,t){var n,r;if(t>=e.i)throw ue(new Vse(t,e.i));return++e.j,n=e.g[t],r=e.i-t-1,r>0&&pu(e.g,t+1,e.g,t,r),Ts(e.g,--e.i,null),e.Qi(t,n),e.Ni(),n}function Qdt(e,t){var n,r;return e.Db>>16==17?e.Cb.Th(e,21,Vf,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||e.ii()),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function D7n(e){var t,n,r,a;for(Cn(),Vs(e.c,e.a),a=new G(e.c);a.an.a.c.length))throw ue(new Yn("index must be >= 0 and <= layer node count"));e.c&&al(e.c.a,e),e.c=n,n&&pw(n.a,t,e)}function ngt(e,t){var n,r,a;for(r=new hr(dr(sp(e).a.Kc(),new j));jr(r);)return n=l(xr(r),18),a=l(t.Kb(n),10),new JS(Xr(a.n.b+a.o.b/2));return o_(),o_(),v0e}function rgt(e,t){this.c=new Pr,this.a=e,this.b=t,this.d=l(Q(e,(ft(),$6)),312),qe(Q(e,(Nt(),GMe)))===qe((cN(),JK))?this.e=new XQe:this.e=new YQe}function BA(e,t){var n,r;return r=null,e.pf((pi(),r9))&&(n=l(e.of(r9),96),n.pf(t)&&(r=n.of(t))),r==null&&e.Tf()&&(r=e.Tf().of(t)),r==null&&(r=It(t)),r}function kue(e,t){var n,r;n=e.fd(t);try{return r=n.Pb(),n.Qb(),r}catch(a){throw a=bs(a),De(a,112)?ue(new tc("Can't remove element "+t)):ue(a)}}function j7n(e,t){var n,r,a;if(r=new Qz,a=new R7e(r.q.getFullYear()-Lb,r.q.getMonth(),r.q.getDate()),n=XAn(e,t,a),n==0||n0?t:0),++n;return new lt(r,a)}function lxe(e,t){var n,r;return e.Db>>16==6?e.Cb.Th(e,6,js,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(su(),pY)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function hxe(e,t){var n,r;return e.Db>>16==7?e.Cb.Th(e,1,oF,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(su(),dPe)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function fxe(e,t){var n,r;return e.Db>>16==9?e.Cb.Th(e,9,Ai,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(su(),pPe)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function agt(e,t){var n,r;return e.Db>>16==5?e.Cb.Th(e,9,TY,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(Tn(),D2)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function ogt(e,t){var n,r;return e.Db>>16==7?e.Cb.Th(e,6,u1,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(Tn(),O2)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function dxe(e,t){var n,r;return e.Db>>16==3?e.Cb.Th(e,0,uF,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(Tn(),M2)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function cgt(){this.a=new T$,this.g=new cU,this.j=new cU,this.b=new Pr,this.d=new cU,this.i=new cU,this.k=new Pr,this.c=new Pr,this.e=new Pr,this.f=new Pr}function q7n(e,t,n){var r,a,o;for(n<0&&(n=0),o=e.i,a=n;aohe)return FE(e,r);if(r==e)return!0}}return!1}function V7n(e){switch(zq(),e.q.g){case 5:Vpt(e,(Ct(),Qn)),Vpt(e,Dr);break;case 4:U2t(e,(Ct(),Qn)),U2t(e,Dr);break;default:Wvt(e,(Ct(),Qn)),Wvt(e,Dr)}}function U7n(e){switch(zq(),e.q.g){case 5:u2t(e,(Ct(),ar)),u2t(e,er);break;case 4:gdt(e,(Ct(),ar)),gdt(e,er);break;default:Yvt(e,(Ct(),ar)),Yvt(e,er)}}function G7n(e){var t,n;t=l(Q(e,(b0(),e8t)),17),t?(n=t.a,n==0?rt(e,(bb(),EK),new Uce):rt(e,(bb(),EK),new VH(n))):rt(e,(bb(),EK),new VH(1))}function K7n(e,t){var n;switch(n=e.i,t.g){case 1:return-(e.n.b+e.o.b);case 2:return e.n.a-n.o.a;case 3:return e.n.b-n.o.b;case 4:return-(e.n.a+e.o.a)}return 0}function W7n(e,t){switch(e.g){case 0:return t==(hf(),$b)?HK:VK;case 1:return t==(hf(),$b)?HK:pB;case 2:return t==(hf(),$b)?pB:VK;default:return pB}}function UN(e,t){var n,r,a;for(al(e.a,t),e.e-=t.r+(e.a.c.length==0?0:e.c),a=xCe,r=new G(e.a);r.a>16==3?e.Cb.Th(e,12,Ai,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(su(),fPe)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function pxe(e,t){var n,r;return e.Db>>16==11?e.Cb.Th(e,10,Ai,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(su(),gPe)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function ugt(e,t){var n,r;return e.Db>>16==10?e.Cb.Th(e,11,Vf,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(Tn(),I2)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function lgt(e,t){var n,r;return e.Db>>16==10?e.Cb.Th(e,12,Uf,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(Tn(),N4)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function Of(e){var t;return!(e.Bb&1)&&e.r&&e.r.Vh()&&(t=l(e.r,54),e.r=l(yb(e,t),142),e.r!=t&&e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,9,8,t,e.r))),e.r}function Eue(e,t,n){var r;return r=he(le(Na,1),Zo,28,15,[zxe(e,(t1(),Gc),t,n),zxe(e,$u,t,n),zxe(e,Kc,t,n)]),e.f&&(r[0]=b.Math.max(r[0],r[2]),r[2]=r[0]),r}function Y7n(e,t){var n,r,a;if(a=w6n(e,t),a.c.length!=0)for(Vs(a,new pS),n=a.c.length,r=0;r>19,E=t.h>>19,w!=E?E-w:(a=e.h,g=t.h,a!=g?a-g:(r=e.m,f=t.m,r!=f?r-f:(n=e.l,o=t.l,n-o)))}function dU(){dU=U,D_e=(PU(),z0e),M_e=new pn(pEe,D_e),L_e=(aV(),$0e),A_e=new pn(bEe,L_e),__e=(ZV(),j0e),S_e=new pn(mEe,__e),C_e=new pn(vEe,(Hn(),!0))}function FA(e,t,n){var r,a;r=t*n,De(e.g,154)?(a=ix(e),a.f.d?a.f.a||(e.d.a+=r+H1):(e.d.d-=r+H1,e.d.a+=r+H1)):De(e.g,10)&&(e.d.d-=r,e.d.a+=2*r)}function hgt(e,t,n){var r,a,o,f,g;for(a=e[n.g],g=new G(t.d);g.a0?e.b:0),++n;t.b=r,t.e=a}function fgt(e){var t,n,r;if(r=e.b,tet(e.i,r.length)){for(n=r.length*2,e.b=We(k0e,TP,303,n,0,1),e.c=We(k0e,TP,303,n,0,1),e.f=n-1,e.i=0,t=e.a;t;t=t.c)eP(e,t,t);++e.g}}function n8n(e,t,n,r){var a,o,f,g;for(a=0;af&&(g=f/r),a>o&&(w=o/a),md(e,b.Math.min(g,w)),e}function i8n(){zU();var e,t;try{if(t=l(Sxe((ib(),Gf),xT),2113),t)return t}catch(n){if(n=bs(n),De(n,103))e=n,p5e((Jr(),e));else throw ue(n)}return new ik}function s8n(){zU();var e,t;try{if(t=l(Sxe((ib(),Gf),Ff),2040),t)return t}catch(n){if(n=bs(n),De(n,103))e=n,p5e((Jr(),e));else throw ue(n)}return new d8}function a8n(){klt();var e,t;try{if(t=l(Sxe((ib(),Gf),cv),2122),t)return t}catch(n){if(n=bs(n),De(n,103))e=n,p5e((Jr(),e));else throw ue(n)}return new uk}function o8n(e,t,n){var r,a;return a=e.e,e.e=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,4,a,t),n?n.nj(r):n=r),a!=t&&(t?n=ZE(e,SU(e,t),n):n=ZE(e,e.a,n)),n}function dgt(){Qz.call(this),this.e=-1,this.a=!1,this.p=lo,this.k=-1,this.c=-1,this.b=-1,this.g=!1,this.f=-1,this.j=-1,this.n=-1,this.i=-1,this.d=-1,this.o=lo}function c8n(e,t){var n,r,a;if(r=e.b.d.d,e.a||(r+=e.b.d.a),a=t.b.d.d,t.a||(a+=t.b.d.a),n=Yi(r,a),n==0){if(!e.a&&t.a)return-1;if(!t.a&&e.a)return 1}return n}function u8n(e,t){var n,r,a;if(r=e.b.b.d,e.a||(r+=e.b.b.a),a=t.b.b.d,t.a||(a+=t.b.b.a),n=Yi(r,a),n==0){if(!e.a&&t.a)return-1;if(!t.a&&e.a)return 1}return n}function l8n(e,t){var n,r,a;if(r=e.b.g.d,e.a||(r+=e.b.g.a),a=t.b.g.d,t.a||(a+=t.b.g.a),n=Yi(r,a),n==0){if(!e.a&&t.a)return-1;if(!t.a&&e.a)return 1}return n}function mxe(){mxe=U,v8t=yl(fi(fi(fi(new Xs,(uo(),_u),(vo(),KAe)),_u,WAe),mc,YAe),mc,BAe),y8t=fi(fi(new Xs,_u,LAe),_u,FAe),w8t=yl(new Xs,mc,jAe)}function h8n(e){var t,n,r,a,o;for(t=l(Q(e,(ft(),KL)),85),o=e.n,r=t.Cc().Kc();r.Ob();)n=l(r.Pb(),314),a=n.i,a.c+=o.a,a.d+=o.b,n.c?Ibt(n):Obt(n);rt(e,KL,null)}function f8n(e,t,n){var r,a;switch(a=e.b,r=a.d,t.g){case 1:return-r.d-n;case 2:return a.o.a+r.c+n;case 3:return a.o.b+r.a+n;case 4:return-r.b-n;default:return-1}}function d8n(e,t,n){var r,a;for(n.Ug("Interactive node placement",1),e.a=l(Q(t,(ft(),$6)),312),a=new G(t.b);a.a0&&(f=(o&Ii)%e.d.length,a=y9e(e,f,o,t),a)?(g=a.nd(n),g):(r=e.ck(o,t,n),e.c.Fc(r),null)}function yxe(e,t){var n,r,a,o;switch(o2(e,t).Kl()){case 3:case 2:{for(n=d6(t),a=0,o=n.i;a=0;r--)if(vn(e[r].d,t)||vn(e[r].d,n)){e.length>=r+1&&e.splice(0,r+1);break}return e}function KN(e,t){var n;return wc(e)&&wc(t)&&(n=e/t,_P0&&(e.b+=2,e.a+=r):(e.b+=1,e.a+=b.Math.min(r,a))}function ygt(e){var t;t=l(Q(l(ff(e.b,0),40),(Hc(),gIe)),107),rt(e,(Qi(),QT),new lt(0,0)),hmt(new nN,e,t.b+t.c-ze(Ge(Q(e,Bde))),t.d+t.a-ze(Ge(Q(e,Fde))))}function xgt(e,t){var n,r;if(r=!1,Ia(t)&&(r=!0,J8(e,new yy(ei(t)))),r||De(t,242)&&(r=!0,J8(e,(n=g4e(l(t,242)),new vk(n)))),!r)throw ue(new Qie(mSe))}function M8n(e,t,n,r){var a,o,f;return a=new Zg(e.e,1,10,(f=t.c,De(f,90)?l(f,29):(Tn(),Kf)),(o=n.c,De(o,90)?l(o,29):(Tn(),Kf)),f2(e,t),!1),r?r.nj(a):r=a,r}function Exe(e){var t,n;switch(l(Q(eo(e),(Nt(),jMe)),429).g){case 0:return t=e.n,n=e.o,new lt(t.a+n.a/2,t.b+n.b/2);case 1:return new Eo(e.n);default:return null}}function WN(){WN=U,ZK=new C_(Id,0),TLe=new C_("LEFTUP",1),SLe=new C_("RIGHTUP",2),ELe=new C_("LEFTDOWN",3),CLe=new C_("RIGHTDOWN",4),B1e=new C_("BALANCED",5)}function D8n(e,t,n){var r,a,o;if(r=Yi(e.a[t.p],e.a[n.p]),r==0){if(a=l(Q(t,(ft(),Wx)),15),o=l(Q(n,Wx),15),a.Hc(n))return-1;if(o.Hc(t))return 1}return r}function I8n(e){switch(e.g){case 1:return new vne;case 2:return new wne;case 3:return new mne;case 0:return null;default:throw ue(new Yn(Efe+(e.f!=null?e.f:""+e.g)))}}function Txe(e,t,n){switch(t){case 1:!e.n&&(e.n=new nt(ec,e,1,7)),$r(e.n),!e.n&&(e.n=new nt(ec,e,1,7)),As(e.n,l(n,16));return;case 2:fE(e,ei(n));return}V7e(e,t,n)}function Cxe(e,t,n){switch(t){case 3:Mw(e,ze(Ge(n)));return;case 4:Dw(e,ze(Ge(n)));return;case 5:Uu(e,ze(Ge(n)));return;case 6:Gu(e,ze(Ge(n)));return}Txe(e,t,n)}function gU(e,t,n){var r,a,o;o=(r=new Hie,r),a=$1(o,t,null),a&&a.oj(),Fu(o,n),qr((!e.c&&(e.c=new nt(k3,e,12,10)),e.c),o),i2(o,0),My(o,1),u2(o,!0),c2(o,!0)}function Sxe(e,t){var n,r,a;return n=y_(e.i,t),De(n,241)?(a=l(n,241),a.zi()==null,a.wi()):De(n,507)?(r=l(n,2037),a=r.b,a):null}function O8n(e,t,n,r){var a,o;return Xr(t),Xr(n),o=l(H_(e.d,t),17),Wlt(!!o,"Row %s not in %s",t,e.e),a=l(H_(e.b,n),17),Wlt(!!a,"Column %s not in %s",n,e.c),s0t(e,o.a,a.a,r)}function kgt(e,t,n,r,a,o,f){var g,w,E,C,L;if(C=a[o],E=o==f-1,g=E?r:0,L=zdt(g,C),r!=10&&he(le(e,f-o),t[o],n[o],g,L),!E)for(++o,w=0;w1||g==-1?(o=l(w,15),a.Wb(b5n(e,o))):a.Wb(cle(e,l(w,58)))))}function $8n(e,t,n,r){MZe();var a=m0e;function o(){for(var f=0;f0)return!1;return!0}function H8n(e){var t,n,r,a,o;for(r=new qm(new Sr(e.b).a);r.b;)n=Nw(r),t=l(n.ld(),10),o=l(l(n.md(),42).a,10),a=l(l(n.md(),42).b,8),Oi(Y0(t.n),Oi(Ja(o.n),a))}function V8n(e){switch(l(Q(e.b,(Nt(),IMe)),387).g){case 1:Is(fc(Dc(new bn(null,new kn(e.d,16)),new dI),new g5),new wee);break;case 2:jSn(e);break;case 0:mkn(e)}}function U8n(e,t,n){var r,a,o;for(r=n,!r&&(r=new L8),r.Ug("Layout",e.a.c.length),o=new G(e.a);o.awfe)return n;a>-1e-6&&++n}return n}function Axe(e,t){var n;t!=e.b?(n=null,e.b&&(n=IH(e.b,e,-4,n)),t&&(n=mx(t,e,-4,n)),n=J0t(e,t,n),n&&n.oj()):e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,3,t,t))}function Cgt(e,t){var n;t!=e.f?(n=null,e.f&&(n=IH(e.f,e,-1,n)),t&&(n=mx(t,e,-1,n)),n=Q0t(e,t,n),n&&n.oj()):e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,0,t,t))}function Y8n(e,t,n,r){var a,o,f,g;return hh(e.e)&&(a=t.Lk(),g=t.md(),o=n.md(),f=db(e,1,a,g,o,a.Jk()?XE(e,a,o,De(a,102)&&(l(a,19).Bb&Io)!=0):-1,!0),r?r.nj(f):r=f),r}function Sgt(e){var t,n,r;if(e==null)return null;if(n=l(e,15),n.dc())return"";for(r=new Up,t=n.Kc();t.Ob();)Xo(r,(Gi(),ei(t.Pb()))),r.a+=" ";return Gse(r,r.a.length-1)}function _gt(e){var t,n,r;if(e==null)return null;if(n=l(e,15),n.dc())return"";for(r=new Up,t=n.Kc();t.Ob();)Xo(r,(Gi(),ei(t.Pb()))),r.a+=" ";return Gse(r,r.a.length-1)}function X8n(e,t,n){var r,a;return r=e.c[t.c.p][t.p],a=e.c[n.c.p][n.p],r.a!=null&&a.a!=null?Nae(r.a,a.a):r.a!=null?-1:a.a!=null?1:0}function Q8n(e,t,n){return n.Ug("Tree layout",1),qO(e.b),X0(e.b,(wx(),NW),NW),X0(e.b,lM,lM),X0(e.b,hM,hM),X0(e.b,fM,fM),e.a=bP(e.b,t),U8n(e,t,n.eh(1)),n.Vg(),t}function J8n(e,t){var n,r,a,o,f,g;if(t)for(o=t.a.length,n=new Dm(o),g=(n.b-n.a)*n.c<0?(sb(),tm):new cb(n);g.Ob();)f=l(g.Pb(),17),a=Jk(t,f.a),r=new GXe(e),apn(r.a,a)}function Z8n(e,t){var n,r,a,o,f,g;if(t)for(o=t.a.length,n=new Dm(o),g=(n.b-n.a)*n.c<0?(sb(),tm):new cb(n);g.Ob();)f=l(g.Pb(),17),a=Jk(t,f.a),r=new FXe(e),spn(r.a,a)}function exn(e){var t;if(e!=null&&e.length>0&&co(e,e.length-1)==33)try{return t=P2t(tf(e,0,e.length-1)),t.e==null}catch(n){if(n=bs(n),!De(n,33))throw ue(n)}return!1}function txn(e,t,n){var r,a,o;switch(r=eo(t),a=zV(r),o=new gu,Mc(o,t),n.g){case 1:la(o,BN(gx(a)));break;case 2:la(o,gx(a))}return rt(o,(Nt(),m4),Ge(Q(e,m4))),o}function Lxe(e){var t,n;return t=l(xr(new hr(dr(ka(e.a).a.Kc(),new j))),18),n=l(xr(new hr(dr(qs(e.a).a.Kc(),new j))),18),Rt(Bt(Q(t,(ft(),W1))))||Rt(Bt(Q(n,W1)))}function Ry(){Ry=U,bB=new cO("ONE_SIDE",0),KK=new cO("TWO_SIDES_CORNER",1),WK=new cO("TWO_SIDES_OPPOSING",2),GK=new cO("THREE_SIDES",3),UK=new cO("FOUR_SIDES",4)}function Agt(e,t){var n,r,a,o;for(o=new bt,a=0,r=t.Kc();r.Ob();){for(n=pt(l(r.Pb(),17).a+a);n.a=e.f)break;$n(o.c,n)}return o}function nxn(e,t){var n,r,a,o,f;for(o=new G(t.a);o.a0&&Jdt(this,this.c-1,(Ct(),ar)),this.c0&&e[0].length>0&&(this.c=Rt(Bt(Q(eo(e[0][0]),(ft(),zLe))))),this.a=We(kEt,dt,2117,e.length,0,2),this.b=We(EEt,dt,2118,e.length,0,2),this.d=new G0t}function oxn(e){return e.c.length==0?!1:(Sn(0,e.c.length),l(e.c[0],18)).c.i.k==(Zn(),Aa)?!0:W5(fc(new bn(null,new kn(e,16)),new Wee),new Yee)}function Dgt(e,t){var n,r,a,o,f,g,w;for(g=Hy(t),o=t.f,w=t.g,f=b.Math.sqrt(o*o+w*w),a=0,r=new G(g);r.a=0?(n=KN(e,JU),r=RN(e,JU)):(t=ub(e,1),n=KN(t,5e8),r=RN(t,5e8),r=bo(l0(r,1),va(e,1))),Q0(l0(r,32),va(n,Vo))}function Ngt(e,t,n){var r,a;switch(r=(mr(t.b!=0),l(af(t,t.a.a),8)),n.g){case 0:r.b=0;break;case 2:r.b=e.f;break;case 3:r.a=0;break;default:r.a=e.g}return a=Rr(t,0),zO(a,r),t}function Pgt(e,t,n,r){var a,o,f,g,w;switch(w=e.b,o=t.d,f=o.j,g=G8e(f,w.d[f.g],n),a=Oi(Ja(o.n),o.a),o.j.g){case 1:case 3:g.a+=a.a;break;case 2:case 4:g.b+=a.b}Cs(r,g,r.c.b,r.c)}function wxn(e,t,n){var r,a,o,f;for(f=gc(e.e,t,0),o=new Pwe,o.b=n,r=new Ua(e.e,f);r.b1;t>>=1)t&1&&(r=K5(r,n)),n.d==1?n=K5(n,n):n=new Q1t(mmt(n.a,n.d,We(Vr,di,28,n.d<<1,15,1)));return r=K5(r,n),r}function Rxe(){Rxe=U;var e,t,n,r;for(m_e=We(Na,Zo,28,25,15,1),v_e=We(Na,Zo,28,33,15,1),r=152587890625e-16,t=32;t>=0;t--)v_e[t]=r,r*=.5;for(n=1,e=24;e>=0;e--)m_e[e]=n,n*=.5}function Cxn(e){var t,n;if(Rt(Bt(at(e,(Nt(),b4))))){for(n=new hr(dr(cp(e).a.Kc(),new j));jr(n);)if(t=l(xr(n),74),qw(t)&&Rt(Bt(at(t,gv))))return!0}return!1}function Bgt(e,t){var n,r,a;na(e.f,t)&&(t.b=e,r=t.c,gc(e.j,r,0)!=-1||vt(e.j,r),a=t.d,gc(e.j,a,0)!=-1||vt(e.j,a),n=t.a.b,n.c.length!=0&&(!e.i&&(e.i=new rdt(e)),M3n(e.i,n)))}function Sxn(e){var t,n,r,a,o;return n=e.c.d,r=n.j,a=e.d.d,o=a.j,r==o?n.p=0&&vn(e.substr(t,3),"GMT")||t>=0&&vn(e.substr(t,3),"UTC"))&&(n[0]=t+3),mke(e,n,r)}function Axn(e,t){var n,r,a,o,f;for(o=e.g.a,f=e.g.b,r=new G(e.d);r.an;o--)e[o]|=t[o-n-1]>>>f,e[o-1]=t[o-n-1]<0&&pu(e.g,t,e.g,t+r,g),f=n.Kc(),e.i+=r,a=0;a>4&15,o=e[r]&15,f[a++]=bPe[n],f[a++]=bPe[o];return If(f,0,f.length)}function cl(e){var t,n;return e>=Io?(t=AP+(e-Io>>10&1023)&Zs,n=56320+(e-Io&1023)&Zs,String.fromCharCode(t)+(""+String.fromCharCode(n))):String.fromCharCode(e&Zs)}function jxn(e,t){py();var n,r,a,o;return a=l(l($i(e.r,t),21),87),a.gc()>=2?(r=l(a.Kc().Pb(),117),n=e.u.Hc((Rl(),PM)),o=e.u.Hc(a9),!r.a&&!n&&(a.gc()==2||o)):!1}function jgt(e,t,n,r,a){var o,f,g;for(o=Tbt(e,t,n,r,a),g=!1;!o;)TU(e,a,!0),g=!0,o=Tbt(e,t,n,r,a);g&&TU(e,a,!1),f=bce(a),f.c.length!=0&&(e.d&&e.d.Gg(f),jgt(e,a,n,r,f))}function vU(){vU=U,Uge=new L_(Id,0),$Ne=new L_("DIRECTED",1),qNe=new L_("UNDIRECTED",2),RNe=new L_("ASSOCIATION",3),zNe=new L_("GENERALIZATION",4),jNe=new L_("DEPENDENCY",5)}function $xn(e,t){var n;if(!M1(e))throw ue(new nc(t4t));switch(n=M1(e),t.g){case 1:return-(e.j+e.f);case 2:return e.i-n.g;case 3:return e.j-n.f;case 4:return-(e.i+e.g)}return 0}function zxn(e,t,n){var r,a,o;return r=t.Lk(),o=t.md(),a=r.Jk()?db(e,4,r,o,null,XE(e,r,o,De(r,102)&&(l(r,19).Bb&Io)!=0),!0):db(e,r.tk()?2:1,r,o,r.ik(),-1,!0),n?n.nj(a):n=a,n}function $E(e,t){var n,r;for(nr(t),r=e.b.c.length,vt(e.b,t);r>0;){if(n=r,r=(r-1)/2|0,e.a.Ne(jt(e.b,r),t)<=0)return rf(e.b,n,t),!0;rf(e.b,n,jt(e.b,r))}return rf(e.b,r,t),!0}function zxe(e,t,n,r){var a,o;if(a=0,n)a=BV(e.a[n.g][t.g],r);else for(o=0;o=g)}function $gt(e){switch(e.g){case 0:return new Sne;case 1:return new _ne;default:throw ue(new Yn("No implementation is available for the width approximator "+(e.f!=null?e.f:""+e.g)))}}function qxe(e,t,n,r){var a;if(a=!1,Ia(r)&&(a=!0,zk(t,n,ei(r))),a||hy(r)&&(a=!0,qxe(e,t,n,r)),a||De(r,242)&&(a=!0,Nm(t,n,l(r,242))),!a)throw ue(new Qie(mSe))}function Hxn(e,t){var n,r,a;if(n=t.qi(e.a),n&&(a=n1((!n.b&&(n.b=new dh((Tn(),No),Yc,n)),n.b),Bf),a!=null)){for(r=1;r<(El(),$Pe).length;++r)if(vn($Pe[r],a))return r}return 0}function Vxn(e,t){var n,r,a;if(n=t.qi(e.a),n&&(a=n1((!n.b&&(n.b=new dh((Tn(),No),Yc,n)),n.b),Bf),a!=null)){for(r=1;r<(El(),zPe).length;++r)if(vn(zPe[r],a))return r}return 0}function zgt(e,t){var n,r,a,o;if(nr(t),o=e.a.gc(),o0?1:0;o.a[a]!=n;)o=o.a[a],a=e.a.Ne(n.d,o.d)>0?1:0;o.a[a]=r,r.b=n.b,r.a[0]=n.a[0],r.a[1]=n.a[1],n.a[0]=null,n.a[1]=null}function Kxn(e){var t,n,r,a;for(t=new bt,n=We(ih,pg,28,e.a.c.length,16,1),l5e(n,n.length),a=new G(e.a);a.a0&&dmt((Sn(0,n.c.length),l(n.c[0],30)),e),n.c.length>1&&dmt(l(jt(n,n.c.length-1),30),e),t.Vg()}function Yxn(e){Rl();var t,n;return t=rs(vp,he(le(cY,1),it,279,0,[Yb])),!(yN(NH(t,e))>1||(n=rs(PM,he(le(cY,1),it,279,0,[NM,a9])),yN(NH(n,e))>1))}function Vxe(e,t){var n;n=xu((ib(),Gf),e),De(n,507)?rc(Gf,e,new Ott(this,t)):rc(Gf,e,this),Nue(this,t),t==(Sk(),APe)?(this.wb=l(this,2038),l(t,2040)):this.wb=(lb(),Vn)}function Xxn(e){var t,n,r;if(e==null)return null;for(t=null,n=0;n=b2?"error":r>=900?"warn":r>=800?"info":"log"),eat(n,e.a),e.b&&G9e(t,n,e.b,"Exception: ",!0))}function Q(e,t){var n,r;return r=(!e.q&&(e.q=new Pr),cr(e.q,t)),r??(n=t.Sg(),De(n,4)&&(n==null?(!e.q&&(e.q=new Pr),ax(e.q,t)):(!e.q&&(e.q=new Pr),ki(e.q,t,n))),n)}function uo(){uo=U,y0=new oO("P1_CYCLE_BREAKING",0),vg=new oO("P2_LAYERING",1),bu=new oO("P3_NODE_ORDERING",2),_u=new oO("P4_NODE_PLACEMENT",3),mc=new oO("P5_EDGE_ROUTING",4)}function Qxn(e,t){hA();var n;if(e.c==t.c){if(e.b==t.b||i3n(e.b,t.b)){if(n=Lln(e.b)?1:-1,e.a&&!t.a)return n;if(!e.a&&t.a)return-n}return ru(e.b.g,t.b.g)}else return Yi(e.c,t.c)}function Ggt(e,t){var n,r,a;if(Gxe(e,t))return!0;for(r=new G(t);r.a=a||t<0)throw ue(new tc(Qfe+t+av+a));if(n>=a||n<0)throw ue(new tc(Jfe+n+av+a));return t!=n?r=(o=e.Cj(n),e.qj(t,o),o):r=e.xj(n),r}function Ygt(e){var t,n,r;if(r=e,e)for(t=0,n=e.Eh();n;n=n.Eh()){if(++t>ohe)return Ygt(n);if(r=n,n==e)throw ue(new nc("There is a cycle in the containment hierarchy of "+e))}return r}function Tb(e){var t,n,r;for(r=new Hm(Co,"[","]"),n=e.Kc();n.Ob();)t=n.Pb(),Jg(r,qe(t)===qe(e)?"(this Collection)":t==null?ul:xc(t));return r.a?r.e.length==0?r.a.a:r.a.a+(""+r.e):r.c}function Gxe(e,t){var n,r;if(r=!1,t.gc()<2)return!1;for(n=0;n1&&(e.j.b+=e.e)):(e.j.a+=n.a,e.j.b=b.Math.max(e.j.b,n.b),e.d.c.length>1&&(e.j.a+=e.e))}function Cb(){Cb=U,axt=he(le(Oo,1),au,64,0,[(Ct(),Qn),ar,Dr]),sxt=he(le(Oo,1),au,64,0,[ar,Dr,er]),oxt=he(le(Oo,1),au,64,0,[Dr,er,Qn]),cxt=he(le(Oo,1),au,64,0,[er,Qn,ar])}function Zxn(e,t,n,r){var a,o,f,g,w,E,C;if(f=e.c.d,g=e.d.d,f.j!=g.j)for(C=e.b,a=f.j,w=null;a!=g.j;)w=t==0?$V(a):f8e(a),o=G8e(a,C.d[a.g],n),E=G8e(w,C.d[w.g],n),ci(r,Oi(o,E)),a=w}function e9n(e,t,n,r){var a,o,f,g,w;return f=Zdt(e.a,t,n),g=l(f.a,17).a,o=l(f.b,17).a,r&&(w=l(Q(t,(ft(),jl)),10),a=l(Q(n,jl),10),w&&a&&($ct(e.b,w,a),g+=e.b.i,o+=e.b.e)),g>o}function Qgt(e){var t,n,r,a,o,f,g,w,E;for(this.a=ydt(e),this.b=new bt,n=e,r=0,a=n.length;ruae(e.d).c?(e.i+=e.g.c,Yce(e.d)):uae(e.d).c>uae(e.g).c?(e.e+=e.d.c,Yce(e.g)):(e.i+=cst(e.g),e.e+=cst(e.d),Yce(e.g),Yce(e.d))}function i9n(e,t,n){var r,a,o,f;for(o=t.q,f=t.r,new Pm((J0(),qb),t,o,1),new Pm(qb,o,f,1),a=new G(n);a.ag&&(w=g/r),a>o&&(E=o/a),f=b.Math.min(w,E),e.a+=f*(t.a-e.a),e.b+=f*(t.b-e.b)}function c9n(e,t,n,r,a){var o,f;for(f=!1,o=l(jt(n.b,0),27);FAn(e,t,o,r,a)&&(f=!0,R8n(n,o),n.b.c.length!=0);)o=l(jt(n.b,0),27);return n.b.c.length==0&&UN(n.j,n),f&&lU(t.q),f}function u9n(e,t){h6();var n,r,a,o;if(t.b<2)return!1;for(o=Rr(t,0),n=l(Br(o),8),r=n;o.b!=o.d.c;){if(a=l(Br(o),8),Xue(e,r,a))return!0;r=a}return!!Xue(e,r,n)}function Wxe(e,t,n,r){var a,o;return n==0?(!e.o&&(e.o=new xl((su(),Cg),L2,e,0)),Uq(e.o,t,r)):(o=l(Mn((a=l(Kn(e,16),29),a||e.ii()),n),69),o.wk().Ak(e,Ku(e),n-yr(e.ii()),t,r))}function Nue(e,t){var n;t!=e.sb?(n=null,e.sb&&(n=l(e.sb,54).Th(e,1,RM,n)),t&&(n=l(t,54).Rh(e,1,RM,n)),n=a8e(e,t,n),n&&n.oj()):e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,4,t,t))}function l9n(e,t){var n,r,a,o;if(t)a=np(t,"x"),n=new HXe(e),aE(n.a,(nr(a),a)),o=np(t,"y"),r=new VXe(e),cE(r.a,(nr(o),o));else throw ue(new dd("All edge sections need an end point."))}function h9n(e,t){var n,r,a,o;if(t)a=np(t,"x"),n=new $Xe(e),oE(n.a,(nr(a),a)),o=np(t,"y"),r=new zXe(e),uE(r.a,(nr(o),o));else throw ue(new dd("All edge sections need a start point."))}function f9n(e,t){var n,r,a,o,f,g,w;for(r=_0t(e),o=0,g=r.length;o>22-t,a=e.h<>22-t):t<44?(n=0,r=e.l<>44-t):(n=0,r=0,a=e.l<e)throw ue(new Yn("k must be smaller than n"));return t==0||t==e?1:e==0?0:xxe(e)/(xxe(t)*xxe(e-t))}function Yxe(e,t){var n,r,a,o;for(n=new hye(e);n.g==null&&!n.c?H5e(n):n.g==null||n.i!=0&&l(n.g[n.i-1],51).Ob();)if(o=l(CU(n),58),De(o,167))for(r=l(o,167),a=0;a>4],t[n*2+1]=LY[o&15];return If(t,0,t.length)}function A9n(e){kH();var t,n,r;switch(r=e.c.length,r){case 0:return i6t;case 1:return t=l(Rpt(new G(e)),44),xdn(t.ld(),t.md());default:return n=l(j1(e,We(uv,XU,44,e.c.length,0,1)),173),new Wwe(n)}}function L9n(e){var t,n,r,a,o,f;for(t=new z5,n=new z5,gb(t,e),gb(n,e);n.b!=n.c;)for(a=l(X8(n),36),f=new G(a.a);f.a0&&lP(e,n,t),a):mEn(e,t,n)}function Sb(){Sb=U,uCt=(pi(),n9),lCt=Ev,sCt=kv,aCt=i7,oCt=Ub,iCt=r7,NIe=YB,cCt=S4,Jde=(uke(),KTt),Zde=WTt,BIe=JTt,ege=tCt,FIe=ZTt,RIe=eCt,PIe=YTt,qW=XTt,HW=QTt,FB=nCt,jIe=rCt,OIe=GTt}function spt(e,t){var n,r,a,o,f;if(e.e<=t||Z2n(e,e.g,t))return e.g;for(o=e.r,r=e.g,f=e.r,a=(o-r)/2+r;r+11&&(e.e.b+=e.a)):(e.e.a+=n.a,e.e.b=b.Math.max(e.e.b,n.b),e.d.c.length>1&&(e.e.a+=e.a))}function N9n(e){var t,n,r,a;switch(a=e.i,t=a.b,r=a.j,n=a.g,a.a.g){case 0:n.a=(e.g.b.o.a-r.a)/2;break;case 1:n.a=t.d.n.a+t.d.a.a;break;case 2:n.a=t.d.n.a+t.d.a.a-r.a;break;case 3:n.b=t.d.n.b+t.d.a.b}}function P9n(e,t,n){var r,a,o;for(a=new hr(dr(sp(n).a.Kc(),new j));jr(a);)r=l(xr(a),18),!Do(r)&&!(!Do(r)&&r.c.i.c==r.d.i.c)&&(o=Y2t(e,r,n,new QQe),o.c.length>1&&$n(t.c,o))}function opt(e,t,n,r,a){if(rr&&(e.a=r),e.ba&&(e.b=a),e}function B9n(e){if(De(e,143))return dCn(l(e,143));if(De(e,233))return r5n(l(e,233));if(De(e,23))return g9n(l(e,23));throw ue(new Yn(vSe+Tb(new Il(he(le(wa,1),Rn,1,5,[e])))))}function F9n(e,t,n,r,a){var o,f,g;for(o=!0,f=0;f>>a|n[f+r+1]<>>a,++f}return o}function Zxe(e,t,n,r){var a,o,f;if(t.k==(Zn(),Aa)){for(o=new hr(dr(ka(t).a.Kc(),new j));jr(o);)if(a=l(xr(o),18),f=a.c.i.k,f==Aa&&e.c.a[a.c.i.c.p]==r&&e.c.a[t.c.p]==n)return!0}return!1}function R9n(e,t){var n,r,a,o;return t&=63,n=e.h&hp,t<22?(o=n>>>t,a=e.m>>t|n<<22-t,r=e.l>>t|e.m<<22-t):t<44?(o=0,a=n>>>t-22,r=e.m>>t-22|e.h<<44-t):(o=0,a=0,r=n>>>t-44),qu(r&eh,a&eh,o&hp)}function cpt(e,t,n,r){var a;this.b=r,this.e=e==(Iw(),oM),a=t[n],this.d=Lm(ih,[dt,pg],[183,28],16,[a.length,a.length],2),this.a=Lm(Vr,[dt,di],[53,28],15,[a.length,a.length],2),this.c=new Nxe(t,n)}function j9n(e){var t,n,r;for(e.k=new G5e((Ct(),he(le(Oo,1),au,64,0,[Pc,Qn,ar,Dr,er])).length,e.j.c.length),r=new G(e.j);r.a=n)return qE(e,t,r.p),!0;return!1}function o6(e,t,n,r){var a,o,f,g,w,E;for(f=n.length,o=0,a=-1,E=tht((Xn(t,e.length+1),e.substr(t)),(gae(),p_e)),g=0;go&&fgn(E,tht(n[g],p_e))&&(a=g,o=w);return a>=0&&(r[0]=t+o),a}function lpt(e){var t;return e.Db&64?Pue(e):(t=new Th(oSe),!e.a||hi(hi((t.a+=' "',t),e.a),'"'),hi(rw(hi(rw(hi(rw(hi(rw((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function hpt(e,t,n){var r,a,o,f,g;for(g=Wu(e.e.Dh(),t),a=l(e.g,124),r=0,f=0;fn?u9e(e,n,"start index"):t<0||t>n?u9e(t,n,"end index"):KA("end index (%s) must not be less than start index (%s)",he(le(wa,1),Rn,1,5,[pt(t),pt(e)]))}function dpt(e,t){var n,r,a,o;for(r=0,a=e.length;r0&&gpt(e,o,n));t.p=0}function Xt(e){var t;this.c=new os,this.f=e.e,this.e=e.d,this.i=e.g,this.d=e.c,this.b=e.b,this.k=e.j,this.a=e.a,e.i?this.j=e.i:this.j=(t=l(K0(xg),9),new Zh(t,l(c0(t,t.length),9),0)),this.g=e.f}function U9n(e){var t,n,r,a;for(t=hb(hi(new Th("Predicates."),"and"),40),n=!0,a=new kr(e);a.b0?g[f-1]:We(wg,m2,10,0,0,1),a=g[f],E=f=0?e.ki(a):d9e(e,r);else throw ue(new Yn(Ob+r.xe()+kL));else throw ue(new Yn(f4t+t+d4t));else cf(e,n,r)}function e9e(e){var t,n;if(n=null,t=!1,De(e,211)&&(t=!0,n=l(e,211).a),t||De(e,263)&&(t=!0,n=""+l(e,263).a),t||De(e,493)&&(t=!0,n=""+l(e,493).a),!t)throw ue(new Qie(mSe));return n}function t9e(e,t,n){var r,a,o,f,g,w;for(w=Wu(e.e.Dh(),t),r=0,g=e.i,a=l(e.g,124),f=0;f=e.d.b.c.length&&(t=new yu(e.d),t.p=r.p-1,vt(e.d.b,t),n=new yu(e.d),n.p=r.p,vt(e.d.b,n)),Va(r,l(jt(e.d.b,r.p),30))}function i9e(e,t,n){var r,a,o;if(!e.b[t.g]){for(e.b[t.g]=!0,r=n,!r&&(r=new nN),ci(r.b,t),o=e.a[t.g].Kc();o.Ob();)a=l(o.Pb(),65),a.b!=t&&i9e(e,a.b,r),a.c!=t&&i9e(e,a.c,r),ci(r.a,a);return r}return null}function Y9n(e){switch(e.g){case 0:case 1:case 2:return Ct(),Qn;case 3:case 4:case 5:return Ct(),Dr;case 6:case 7:case 8:return Ct(),er;case 9:case 10:case 11:return Ct(),ar;default:return Ct(),Pc}}function X9n(e,t){var n;return e.c.length==0?!1:(n=I1t((Sn(0,e.c.length),l(e.c[0],18)).c.i),Sh(),n==(By(),G6)||n==U6?!0:W5(fc(new bn(null,new kn(e,16)),new Xee),new XYe(t)))}function jue(e,t){if(De(t,207))return Vln(e,l(t,27));if(De(t,193))return Uln(e,l(t,123));if(De(t,452))return Hln(e,l(t,166));throw ue(new Yn(vSe+Tb(new Il(he(le(wa,1),Rn,1,5,[t])))))}function ypt(e,t,n){var r,a;if(this.f=e,r=l(cr(e.b,t),260),a=r?r.a:0,k6e(n,a),n>=(a/2|0))for(this.e=r?r.c:null,this.d=a;n++0;)G6e(this);this.b=t,this.a=null}function Q9n(e,t){var n,r;t.a?DCn(e,t):(n=l(cse(e.b,t.b),60),n&&n==e.a[t.b.f]&&n.a&&n.a!=t.b.a&&n.c.Fc(t.b),r=l(ose(e.b,t.b),60),r&&e.a[r.f]==t.b&&r.a&&r.a!=t.b.a&&t.b.c.Fc(r),tae(e.b,t.b))}function xpt(e,t){var n,r;if(n=l(Qo(e.b,t),127),l(l($i(e.r,t),21),87).dc()){n.n.b=0,n.n.c=0;return}n.n.b=e.C.b,n.n.c=e.C.c,e.A.Hc((mh(),Cv))&&Kbt(e,t),r=C6n(e,t),Jue(e,t)==(t6(),Kb)&&(r+=2*e.w),n.a.a=r}function kpt(e,t){var n,r;if(n=l(Qo(e.b,t),127),l(l($i(e.r,t),21),87).dc()){n.n.d=0,n.n.a=0;return}n.n.d=e.C.d,n.n.a=e.C.a,e.A.Hc((mh(),Cv))&&Wbt(e,t),r=T6n(e,t),Jue(e,t)==(t6(),Kb)&&(r+=2*e.w),n.a.b=r}function J9n(e,t){var n,r,a,o;for(o=new bt,r=new G(t);r.ar&&(Xn(t-1,e.length),e.charCodeAt(t-1)<=32);)--t;return r>0||tn.a&&(r.Hc((Ym(),EM))?a=(t.a-n.a)/2:r.Hc(TM)&&(a=t.a-n.a)),t.b>n.b&&(r.Hc((Ym(),SM))?o=(t.b-n.b)/2:r.Hc(CM)&&(o=t.b-n.b)),Hxe(e,a,o)}function Lpt(e,t,n,r,a,o,f,g,w,E,C,L,B){De(e.Cb,90)&&zy(Yl(l(e.Cb,90)),4),Fu(e,n),e.f=f,LE(e,g),DE(e,w),AE(e,E),ME(e,C),u2(e,L),IE(e,B),c2(e,!0),i2(e,a),e.Zk(o),Gm(e,t),r!=null&&(e.i=null,xV(e,r))}function u9e(e,t,n){if(e<0)return KA(Swt,he(le(wa,1),Rn,1,5,[n,pt(e)]));if(t<0)throw ue(new Yn(_wt+t));return KA("%s (%s) must not be greater than size (%s)",he(le(wa,1),Rn,1,5,[n,pt(e),pt(t)]))}function l9e(e,t,n,r,a,o){var f,g,w,E;if(f=r-n,f<7){G4n(t,n,r,o);return}if(w=n+a,g=r+a,E=w+(g-w>>1),l9e(t,e,w,E,-a,o),l9e(t,e,E,g,-a,o),o.Ne(e[E-1],e[E])<=0){for(;n=0?e.bi(o,n):$9e(e,a,n);else throw ue(new Yn(Ob+a.xe()+kL));else throw ue(new Yn(f4t+t+d4t));else uf(e,r,a,n)}function Mpt(e){var t,n;if(e.f){for(;e.n>0;){if(t=l(e.k.Xb(e.n-1),76),n=t.Lk(),De(n,102)&&l(n,19).Bb&eu&&(!e.e||n.pk()!=oC||n.Lj()!=0)&&t.md()!=null)return!0;--e.n}return!1}else return e.n>0}function Dpt(e){var t,n,r,a;if(n=l(e,54)._h(),n)try{if(r=null,t=VE((ib(),Gf),bmt(i5n(n))),t&&(a=t.ai(),a&&(r=a.Fl(sun(n.e)))),r&&r!=e)return Dpt(r)}catch(o){if(o=bs(o),!De(o,63))throw ue(o)}return e}function gkn(e,t,n){var r,a,o;n.Ug("Remove overlaps",1),n.dh(t,yCe),r=l(at(t,(H5(),Y6)),27),e.f=r,e.a=sue(l(at(t,(Sb(),FB)),300)),a=Ge(at(t,(pi(),Ev))),_e(e,(nr(a),a)),o=Hy(r),Rvt(e,t,o,n),n.dh(t,OG)}function pkn(e){var t,n,r;if(Rt(Bt(at(e,(pi(),KB))))){for(r=new bt,n=new hr(dr(cp(e).a.Kc(),new j));jr(n);)t=l(xr(n),74),qw(t)&&Rt(Bt(at(t,Oge)))&&$n(r.c,t);return r}else return Cn(),Cn(),_o}function Ipt(e){if(!e)return MJe(),d6t;var t=e.valueOf?e.valueOf():e;if(t!==e){var n=_0e[typeof t];return n?n(t):Z7e(typeof t)}else return e instanceof Array||e instanceof b.Array?new Sz(e):new wk(e)}function Opt(e,t,n){var r,a,o;switch(o=e.o,r=l(Qo(e.p,n),252),a=r.i,a.b=nP(r),a.a=tP(r),a.b=b.Math.max(a.b,o.a),a.b>o.a&&!t&&(a.b=o.a),a.c=-(a.b-o.a)/2,n.g){case 1:a.d=-a.a;break;case 3:a.d=o.b}hle(r),fle(r)}function Npt(e,t,n){var r,a,o;switch(o=e.o,r=l(Qo(e.p,n),252),a=r.i,a.b=nP(r),a.a=tP(r),a.a=b.Math.max(a.a,o.b),a.a>o.b&&!t&&(a.a=o.b),a.d=-(a.a-o.b)/2,n.g){case 4:a.c=-a.b;break;case 2:a.c=o.a}hle(r),fle(r)}function bkn(e,t){var n,r,a,o,f;if(!t.dc()){if(a=l(t.Xb(0),131),t.gc()==1){hbt(e,a,a,1,0,t);return}for(n=1;n0)try{a=Oh(t,lo,Ii)}catch(o){throw o=bs(o),De(o,130)?(r=o,ue(new nV(r))):ue(o)}return n=(!e.a&&(e.a=new Pie(e)),e.a),a=0?l(Oe(n,a),58):null}function ykn(e,t){if(e<0)return KA(Swt,he(le(wa,1),Rn,1,5,["index",pt(e)]));if(t<0)throw ue(new Yn(_wt+t));return KA("%s (%s) must be less than size (%s)",he(le(wa,1),Rn,1,5,["index",pt(e),pt(t)]))}function xkn(e){var t,n,r,a,o;if(e==null)return ul;for(o=new Hm(Co,"[","]"),n=e,r=0,a=n.length;r=0?e.Lh(n,!0,!0):Hw(e,a,!0),160)),l(r,220).Zl(t);else throw ue(new Yn(Ob+t.xe()+kL))}function g9e(e){var t,n;return e>-0x800000000000&&e<0x800000000000?e==0?0:(t=e<0,t&&(e=-e),n=ua(b.Math.floor(b.Math.log(e)/.6931471805599453)),(!t||e!=b.Math.pow(2,n))&&++n,n):Qft(Zc(e))}function Bkn(e){var t,n,r,a,o,f,g;for(o=new bd,n=new G(e);n.a2&&g.e.b+g.j.b<=2&&(a=g,r=f),o.a.zc(a,o),a.q=r);return o}function Fkn(e,t,n){n.Ug("Eades radial",1),n.dh(t,OG),e.d=l(at(t,(H5(),Y6)),27),e.c=ze(Ge(at(t,(Sb(),HW)))),e.e=sue(l(at(t,FB),300)),e.a=f5n(l(at(t,jIe),434)),e.b=I8n(l(at(t,PIe),354)),g8n(e),n.dh(t,OG)}function Rkn(e,t){if(t.Ug("Target Width Setter",1),P1(e,(z1(),fge)))Hi(e,(ug(),T4),Ge(at(e,fge)));else throw ue(new Vp("A target width has to be set if the TargetWidthWidthApproximator should be used."));t.Vg()}function jpt(e,t){var n,r,a;return r=new op(e),pc(r,t),rt(r,(ft(),aW),t),rt(r,(Nt(),Ms),(Ra(),Mu)),rt(r,Rd,(og(),tY)),x(r,(Zn(),Us)),n=new gu,Mc(n,r),la(n,(Ct(),er)),a=new gu,Mc(a,r),la(a,ar),r}function $pt(e){switch(e.g){case 0:return new Wie((Iw(),DB));case 1:return new Qre;case 2:return new Jre;default:throw ue(new Yn("No implementation is available for the crossing minimizer "+(e.f!=null?e.f:""+e.g)))}}function zpt(e,t){var n,r,a,o,f;for(e.c[t.p]=!0,vt(e.a,t),f=new G(t.j);f.a=o)f.$b();else for(a=f.Kc(),r=0;r0?Zwe():f<0&&Upt(e,t,-f),!0):!1}function tP(e){var t,n,r,a,o,f,g;if(g=0,e.b==0){for(f=_dt(e,!0),t=0,r=f,a=0,o=r.length;a0&&(g+=n,++t);t>1&&(g+=e.c*(t-1))}else g=qJe(cce(xy(Fi(c5e(e.a),new ja),new Ou)));return g>0?g+e.n.d+e.n.a:0}function nP(e){var t,n,r,a,o,f,g;if(g=0,e.b==0)g=qJe(cce(xy(Fi(c5e(e.a),new Xc),new Bc)));else{for(f=Adt(e,!0),t=0,r=f,a=0,o=r.length;a0&&(g+=n,++t);t>1&&(g+=e.c*(t-1))}return g>0?g+e.n.b+e.n.c:0}function Ukn(e){var t,n;if(e.c.length!=2)throw ue(new nc("Order only allowed for two paths."));t=(Sn(0,e.c.length),l(e.c[0],18)),n=(Sn(1,e.c.length),l(e.c[1],18)),t.d.i!=n.c.i&&(e.c.length=0,$n(e.c,n),$n(e.c,t))}function Gpt(e,t,n){var r;for(F5(n,t.g,t.f),Qh(n,t.i,t.j),r=0;r<(!t.a&&(t.a=new nt(Ai,t,10,11)),t.a).i;r++)Gpt(e,l(Oe((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a),r),27),l(Oe((!n.a&&(n.a=new nt(Ai,n,10,11)),n.a),r),27))}function Gkn(e,t){var n,r,a,o;for(o=l(Qo(e.b,t),127),n=o.a,a=l(l($i(e.r,t),21),87).Kc();a.Ob();)r=l(a.Pb(),117),r.c&&(n.a=b.Math.max(n.a,j4e(r.c)));if(n.a>0)switch(t.g){case 2:o.n.c=e.s;break;case 4:o.n.b=e.s}}function Kkn(e,t){var n,r,a;return n=l(Q(t,(b0(),qx)),17).a-l(Q(e,qx),17).a,n==0?(r=ma(Ja(l(Q(e,(bb(),hB)),8)),l(Q(e,$L),8)),a=ma(Ja(l(Q(t,hB),8)),l(Q(t,$L),8)),Yi(r.a*r.b,a.a*a.b)):n}function Wkn(e,t){var n,r,a;return n=l(Q(t,(Hc(),RW)),17).a-l(Q(e,RW),17).a,n==0?(r=ma(Ja(l(Q(e,(Qi(),NB)),8)),l(Q(e,QT),8)),a=ma(Ja(l(Q(t,NB),8)),l(Q(t,QT),8)),Yi(r.a*r.b,a.a*a.b)):n}function Kpt(e){var t,n;return n=new tb,n.a+="e_",t=z3n(e),t!=null&&(n.a+=""+t),e.c&&e.d&&(hi((n.a+=" ",n),fU(e.c)),hi(wu((n.a+="[",n),e.c.i),"]"),hi((n.a+=Phe,n),fU(e.d)),hi(wu((n.a+="[",n),e.d.i),"]")),n.a}function Wpt(e){switch(e.g){case 0:return new aie;case 1:return new dk;case 2:return new sie;case 3:return new iie;default:throw ue(new Yn("No implementation is available for the layout phase "+(e.f!=null?e.f:""+e.g)))}}function m9e(e,t,n,r,a){var o;switch(o=0,a.g){case 1:o=b.Math.max(0,t.b+e.b-(n.b+r));break;case 3:o=b.Math.max(0,-e.b-r);break;case 2:o=b.Math.max(0,-e.a-r);break;case 4:o=b.Math.max(0,t.a+e.a-(n.a+r))}return o}function Ykn(e,t,n){var r,a,o,f,g;if(n)for(a=n.a.length,r=new Dm(a),g=(r.b-r.a)*r.c<0?(sb(),tm):new cb(r);g.Ob();)f=l(g.Pb(),17),o=Jk(n,f.a),hSe in o.a||Yfe in o.a?u_n(e,o,t):AIn(e,o,t),_hn(l(cr(e.b,NE(o)),74))}function v9e(e){var t,n;switch(e.b){case-1:return!0;case 0:return n=e.t,n>1||n==-1?(e.b=-1,!0):(t=Of(e),t&&(Fo(),t.lk()==g5t)?(e.b=-1,!0):(e.b=1,!1));default:case 1:return!1}}function w9e(e,t){var n,r,a,o;if(Li(e),e.c!=0||e.a!=123)throw ue(new ri(ai((Jr(),B4t))));if(o=t==112,r=e.d,n=Nk(e.i,125,r),n<0)throw ue(new ri(ai((Jr(),F4t))));return a=tf(e.i,r,n),e.d=n+1,vlt(a,o,(e.e&512)==512)}function Ypt(e){var t,n,r,a,o,f,g;if(r=e.a.c.length,r>0)for(f=e.c.d,g=e.d.d,a=md(ma(new lt(g.a,g.b),f),1/(r+1)),o=new lt(f.a,f.b),n=new G(e.a);n.a=0&&r=0?e.Lh(n,!0,!0):Hw(e,a,!0),160)),l(r,220).Wl(t);throw ue(new Yn(Ob+t.xe()+$fe))}function Zkn(){x3e();var e;return J_t?l(VE((ib(),Gf),Ff),2038):(wi(uv,new OI),WMn(),e=l(De(xu((ib(),Gf),Ff),560)?xu(Gf,Ff):new fat,560),J_t=!0,YIn(e),nOn(e),ki((y3e(),_Pe),e,new k1),rc(Gf,Ff,e),e)}function eEn(e,t){var n,r,a,o;e.j=-1,hh(e.e)?(n=e.i,o=e.i!=0,tN(e,t),r=new Zg(e.e,3,e.c,null,t,n,o),a=t.zl(e.e,e.c,null),a=Lgt(e,t,a),a?(a.nj(r),a.oj()):Ni(e.e,r)):(tN(e,t),a=t.zl(e.e,e.c,null),a&&a.oj())}function kU(e,t){var n,r,a;if(a=0,r=t[0],r>=e.length)return-1;for(n=(Xn(r,e.length),e.charCodeAt(r));n>=48&&n<=57&&(a=a*10+(n-48),++r,!(r>=e.length));)n=(Xn(r,e.length),e.charCodeAt(r));return r>t[0]?t[0]=r:a=-1,a}function tEn(e){var t,n,r,a,o;return a=l(e.a,17).a,o=l(e.b,17).a,n=a,r=o,t=b.Math.max(b.Math.abs(a),b.Math.abs(o)),a<=0&&a==o?(n=0,r=o-1):a==-t&&o!=t?(n=o,r=a,o>=0&&++n):(n=-o,r=a),new ca(pt(n),pt(r))}function nEn(e,t,n,r){var a,o,f,g,w,E;for(a=0;a=0&&E>=0&&w=e.i)throw ue(new tc(Qfe+t+av+e.i));if(n>=e.i)throw ue(new tc(Jfe+n+av+e.i));return r=e.g[n],t!=n&&(t>16),t=r>>16&16,n=16-t,e=e>>t,r=e-256,t=r>>16&8,n+=t,e<<=t,r=e-Xy,t=r>>16&4,n+=t,e<<=t,r=e-_d,t=r>>16&2,n+=t,e<<=t,r=e>>14,t=r&~(r>>1),n+2-t)}function iEn(e){tx();var t,n,r,a;for(wK=new bt,X0e=new Pr,Y0e=new bt,t=(!e.a&&(e.a=new nt(Ai,e,10,11)),e.a),WDn(t),a=new or(t);a.e!=a.i.gc();)r=l(gr(a),27),gc(wK,r,0)==-1&&(n=new bt,vt(Y0e,n),Z1t(r,n));return Y0e}function sEn(e,t,n){var r,a,o,f;e.a=n.b.d,De(t,326)?(a=l6(l(t,74),!1,!1),o=QN(a),r=new t_(e),to(o,r),dP(o,a),t.of((pi(),x3))!=null&&to(l(t.of(x3),75),r)):(f=l(t,422),f.rh(f.nh()+e.a.a),f.sh(f.oh()+e.a.b))}function aEn(e,t){var n,r,a;for(a=new bt,r=Rr(t.a,0);r.b!=r.d.c;)n=l(Br(r),65),n.c.g==e.g&&qe(Q(n.b,(Hc(),$d)))!==qe(Q(n.c,$d))&&!W5(new bn(null,new kn(a,16)),new cXe(n))&&$n(a.c,n);return Vs(a,new Mte),a}function Qpt(e,t,n){var r,a,o,f;return De(t,153)&&De(n,153)?(o=l(t,153),f=l(n,153),e.a[o.a][f.a]+e.a[f.a][o.a]):De(t,250)&&De(n,250)&&(r=l(t,250),a=l(n,250),r.a==a.a)?l(Q(a.a,(b0(),qx)),17).a:0}function Jpt(e,t){var n,r,a,o,f,g,w,E;for(E=ze(Ge(Q(t,(Nt(),tM)))),w=e[0].n.a+e[0].o.a+e[0].d.c+E,g=1;g=0?n:(g=eA(ma(new lt(f.c+f.b/2,f.d+f.a/2),new lt(o.c+o.b/2,o.d+o.a/2))),-(Tmt(o,f)-1)*g)}function cEn(e,t,n){var r;Is(new bn(null,(!n.a&&(n.a=new nt(cs,n,6,6)),new kn(n.a,16))),new dtt(e,t)),Is(new bn(null,(!n.n&&(n.n=new nt(ec,n,1,7)),new kn(n.n,16))),new gtt(e,t)),r=l(at(n,(pi(),x3)),75),r&&k7e(r,e,t)}function Hw(e,t,n){var r,a,o;if(o=g6((El(),io),e.Dh(),t),o)return Fo(),l(o,69).xk()||(o=rx(ic(io,o))),a=(r=e.Ih(o),l(r>=0?e.Lh(r,!0,!0):Hw(e,o,!0),160)),l(a,220).Sl(t,n);throw ue(new Yn(Ob+t.xe()+$fe))}function y9e(e,t,n,r){var a,o,f,g,w;if(a=e.d[t],a){if(o=a.g,w=a.i,r!=null){for(g=0;g=n&&(r=t,E=(w.c+w.a)/2,f=E-n,w.c<=E-n&&(a=new vae(w.c,f),pw(e,r++,a)),g=E+n,g<=w.a&&(o=new vae(g,w.a),Ey(r,e.c.length),x_(e.c,r,o)))}function t2t(e,t,n){var r,a,o,f,g,w;if(!t.dc()){for(a=new os,w=t.Kc();w.Ob();)for(g=l(w.Pb(),40),ki(e.a,pt(g.g),pt(n)),f=(r=Rr(new Hg(g).a.d,0),new C5(r));QI(f.a);)o=l(Br(f.a),65).c,Cs(a,o,a.c.b,a.c);t2t(e,a,n+1)}}function x9e(e){var t;if(!e.c&&e.g==null)e.d=e.bj(e.f),qr(e,e.d),t=e.d;else{if(e.g==null)return!0;if(e.i==0)return!1;t=l(e.g[e.i-1],51)}return t==e.b&&null.Vm>=null.Um()?(CU(e),x9e(e)):t.Ob()}function n2t(e){if(this.a=e,e.c.i.k==(Zn(),Us))this.c=e.c,this.d=l(Q(e.c.i,(ft(),Wc)),64);else if(e.d.i.k==Us)this.c=e.d,this.d=l(Q(e.d.i,(ft(),Wc)),64);else throw ue(new Yn("Edge "+e+" is not an external edge."))}function r2t(e,t){var n,r,a;a=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,3,a,e.b)),t?t!=e&&(Fu(e,t.zb),Qoe(e,t.d),n=(r=t.c,r??t.zb),Zoe(e,n==null||vn(n,t.zb)?null:n)):(Fu(e,null),Qoe(e,0),Zoe(e,null))}function i2t(e,t){var n;this.e=(ww(),Xr(e),ww(),P8e(e)),this.c=(Xr(t),P8e(t)),Tye(this.e.Rd().dc()==this.c.Rd().dc()),this.d=w1t(this.e),this.b=w1t(this.c),n=Lm(wa,[dt,Rn],[5,1],5,[this.e.Rd().gc(),this.c.Rd().gc()],2),this.a=n,Fwn(this)}function s2t(e){!C0e&&(C0e=aIn());var t=e.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(n){return l2n(n)});return'"'+t+'"'}function k9e(e,t,n,r,a,o){var f,g,w,E,C;if(a!=0)for(qe(e)===qe(n)&&(e=e.slice(t,t+a),t=0),w=n,g=t,E=t+a;g=f)throw ue(new my(t,f));return a=n[t],f==1?r=null:(r=We(epe,r0e,424,f-1,0,1),pu(n,0,r,0,t),o=f-t-1,o>0&&pu(n,t+1,r,t,o)),PE(e,r),Apt(e,t,a),a}function o2t(e){var t,n;if(e.f){for(;e.n0?o=gx(n):o=BN(gx(n))),Hi(t,VT,o)}function pEn(e,t){var n;t.Ug("Partition preprocessing",1),n=l(yc(Fi(Dc(Fi(new bn(null,new kn(e.a,16)),new AZ),new LZ),new wj),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15),Is(n.Oc(),new t8),t.Vg()}function bEn(e,t){var n,r,a,o,f;for(f=e.j,t.a!=t.b&&Vs(f,new kS),a=f.c.length/2|0,r=0;r0&&lP(e,n,t),o):r.a!=null?(lP(e,t,n),-1):a.a!=null?(lP(e,n,t),1):0}function vEn(e,t){var n,r,a,o,f;for(a=t.b.b,e.a=We(mf,Qy,15,a,0,1),e.b=We(ih,pg,28,a,16,1),f=Rr(t.b,0);f.b!=f.d.c;)o=l(Br(f),40),e.a[o.g]=new os;for(r=Rr(t.a,0);r.b!=r.d.c;)n=l(Br(r),65),e.a[n.b.g].Fc(n),e.a[n.c.g].Fc(n)}function h2t(e,t){var n,r,a,o;e.Pj()?(n=e.Ej(),o=e.Qj(),++e.j,e.qj(n,e.Zi(n,t)),r=e.Ij(3,null,t,n,o),e.Mj()?(a=e.Nj(t,null),a?(a.nj(r),a.oj()):e.Jj(r)):e.Jj(r)):(tat(e,t),e.Mj()&&(a=e.Nj(t,null),a&&a.oj()))}function E9e(e,t,n){var r,a,o;e.Pj()?(o=e.Qj(),IN(e,t,n),r=e.Ij(3,null,n,t,o),e.Mj()?(a=e.Nj(n,null),e.Tj()&&(a=e.Uj(n,a)),a?(a.nj(r),a.oj()):e.Jj(r)):e.Jj(r)):(IN(e,t,n),e.Mj()&&(a=e.Nj(n,null),a&&a.oj()))}function EU(e,t){var n,r,a,o,f;for(f=Wu(e.e.Dh(),t),a=new X2,n=l(e.g,124),o=e.i;--o>=0;)r=n[o],f.am(r.Lk())&&qr(a,r);!awt(e,a)&&hh(e.e)&&xk(e,t.Jk()?db(e,6,t,(Cn(),_o),null,-1,!1):db(e,t.tk()?2:1,t,null,null,-1,!1))}function wEn(e,t){var n,r,a,o,f;return e.a==(zE(),VL)?!0:(o=t.a.c,n=t.a.c+t.a.b,!(t.j&&(r=t.A,f=r.c.c.a-r.o.a/2,a=o-(r.n.a+r.o.a),a>f)||t.q&&(r=t.C,f=r.c.c.a-r.o.a/2,a=r.n.a-n,a>f)))}function f2t(e){foe();var t,n,r,a,o,f,g;for(n=new e2,a=new G(e.e.b);a.a1?e.e*=ze(e.a):e.f/=ze(e.a),zyn(e),K5n(e),VSn(e),rt(e.b,(IA(),vK),e.g)}function b2t(e,t,n){var r,a,o,f,g,w;for(r=0,w=n,t||(r=n*(e.c.length-1),w*=-1),o=new G(e);o.a=0?e.Ah(null):e.Ph().Th(e,-1-t,null,null)),e.Bh(l(a,54),n),r&&r.oj(),e.vh()&&e.wh()&&n>-1&&Ni(e,new _a(e,9,n,o,a)),a):o}function S9e(e,t){var n,r,a,o,f;for(o=e.b.Ce(t),r=(n=e.a.get(o),n??We(wa,Rn,1,0,5,1)),f=0;f>5,a>=e.d)return e.e<0;if(n=e.a[a],t=1<<(t&31),e.e<0){if(r=Mft(e),a>16)),15).dd(o),g0&&(!(Ug(e.a.c)&&t.n.d)&&!(B5(e.a.c)&&t.n.b)&&(t.g.d+=b.Math.max(0,r/2-.5)),!(Ug(e.a.c)&&t.n.a)&&!(B5(e.a.c)&&t.n.c)&&(t.g.a-=r-1))}function C2t(e){var t,n,r,a,o;if(a=new bt,o=ymt(e,a),t=l(Q(e,(ft(),jl)),10),t)for(r=new G(t.j);r.a>t,o=e.m>>t|n<<22-t,a=e.l>>t|e.m<<22-t):t<44?(f=r?hp:0,o=n>>t-22,a=e.m>>t-22|n<<44-t):(f=r?hp:0,o=r?eh:0,a=n>>t-44),qu(a&eh,o&eh,f&hp)}function Gue(e){var t,n,r,a,o,f;for(this.c=new bt,this.d=e,r=gs,a=gs,t=ia,n=ia,f=Rr(e,0);f.b!=f.d.c;)o=l(Br(f),8),r=b.Math.min(r,o.a),a=b.Math.min(a,o.b),t=b.Math.max(t,o.a),n=b.Math.max(n,o.b);this.a=new ef(r,a,t-r,n-a)}function _2t(e,t){var n,r,a,o,f,g;for(o=new G(e.b);o.a0&&De(t,44)&&(e.a._j(),E=l(t,44),w=E.ld(),o=w==null?0:es(w),f=Qye(e.a,o),n=e.a.d[f],n)){for(r=l(n.g,379),C=n.i,g=0;g=2)for(n=a.Kc(),t=Ge(n.Pb());n.Ob();)o=t,t=Ge(n.Pb()),r=b.Math.min(r,(nr(t),t-(nr(o),o)));return r}function zEn(e,t){var n,r,a;for(a=new bt,r=Rr(t.a,0);r.b!=r.d.c;)n=l(Br(r),65),n.b.g==e.g&&!vn(n.b.c,DG)&&qe(Q(n.b,(Hc(),$d)))!==qe(Q(n.c,$d))&&!W5(new bn(null,new kn(a,16)),new uXe(n))&&$n(a.c,n);return Vs(a,new Nte),a}function qEn(e,t){var n,r,a;if(qe(t)===qe(Xr(e)))return!0;if(!De(t,15)||(r=l(t,15),a=e.gc(),a!=r.gc()))return!1;if(De(r,59)){for(n=0;n0&&(a=n),f=new G(e.f.e);f.a0?(t-=1,n-=1):r>=0&&a<0?(t+=1,n+=1):r>0&&a>=0?(t-=1,n+=1):(t+=1,n-=1),new ca(pt(t),pt(n))}function nTn(e,t){return e.ct.c?1:e.bt.b?1:e.a!=t.a?es(e.a)-es(t.a):e.d==(oA(),uM)&&t.d==cM?-1:e.d==cM&&t.d==uM?1:0}function N2t(e,t){var n,r,a,o,f;return o=t.a,o.c.i==t.b?f=o.d:f=o.c,o.c.i==t.b?r=o.c:r=o.d,a=T5n(e.a,f,r),a>0&&a0):a<0&&-a0):!1}function rTn(e,t,n,r){var a,o,f,g,w,E,C,L;for(a=(t-e.d)/e.c.c.length,o=0,e.a+=n,e.d=t,L=new G(e.c);L.a>24;return f}function sTn(e){if(e.ze()){var t=e.c;t.Ae()?e.o="["+t.n:t.ze()?e.o="["+t.xe():e.o="[L"+t.xe()+";",e.b=t.we()+"[]",e.k=t.ye()+"[]";return}var n=e.j,r=e.d;r=r.split("/"),e.o=Xce(".",[n,Xce("$",r)]),e.b=Xce(".",[n,Xce(".",r)]),e.k=r[r.length-1]}function aTn(e,t){var n,r,a,o,f;for(f=null,o=new G(e.e.a);o.a=0;t-=2)for(n=0;n<=t;n+=2)(e.b[n]>e.b[n+2]||e.b[n]===e.b[n+2]&&e.b[n+1]>e.b[n+3])&&(r=e.b[n+2],e.b[n+2]=e.b[n],e.b[n]=r,r=e.b[n+3],e.b[n+3]=e.b[n+1],e.b[n+1]=r);e.c=!0}}function uTn(e,t){var n,r,a,o,f,g,w,E,C;for(E=-1,C=0,f=e,g=0,w=f.length;g0&&++C;++E}return C}function g0(e){var t,n;return n=new Th(_m(e.Rm)),n.a+="@",hi(n,(t=es(e)>>>0,t.toString(16))),e.Vh()?(n.a+=" (eProxyURI: ",wu(n,e._h()),e.Kh()&&(n.a+=" eClass: ",wu(n,e.Kh())),n.a+=")"):e.Kh()&&(n.a+=" (eClass: ",wu(n,e.Kh()),n.a+=")"),n.a}function HA(e){var t,n,r,a;if(e.e)throw ue(new nc((Gg(R0e),phe+R0e.k+bhe)));for(e.d==(Js(),J1)&&UU(e,uc),n=new G(e.a.a);n.a>24}return n}function fTn(e,t,n){var r,a,o;if(a=l(Qo(e.i,t),314),!a)if(a=new yht(e.d,t,n),Q8(e.i,t,a),$8e(t))bhn(e.a,t.c,t.b,a);else switch(o=Y9n(t),r=l(Qo(e.p,o),252),o.g){case 1:case 3:a.j=!0,Xie(r,t.b,a);break;case 4:case 2:a.k=!0,Xie(r,t.c,a)}return a}function dTn(e,t){var n,r,a,o,f,g,w,E,C;for(w=eg(e.c-e.b&e.a.length-1),E=null,C=null,o=new nA(e);o.a!=o.b;)a=l(FV(o),10),n=(g=l(Q(a,(ft(),o1)),12),g?g.i:null),r=(f=l(Q(a,$f),12),f?f.i:null),(E!=n||C!=r)&&(m2t(w,t),E=n,C=r),$n(w.c,a);m2t(w,t)}function gTn(e,t,n,r){var a,o,f,g,w,E;if(g=new X2,w=Wu(e.e.Dh(),t),a=l(e.g,124),Fo(),l(t,69).xk())for(f=0;f=0)return a;for(o=1,g=new G(t.j);g.a=0)return a;for(o=1,g=new G(t.j);g.a0&&t.Ne((Sn(a-1,e.c.length),l(e.c[a-1],10)),o)>0;)rf(e,a,(Sn(a-1,e.c.length),l(e.c[a-1],10))),--a;Sn(a,e.c.length),e.c[a]=o}n.a=new Pr,n.b=new Pr}function pTn(e,t,n){var r,a,o,f,g,w,E,C;for(C=(r=l(t.e&&t.e(),9),new Zh(r,l(c0(r,r.length),9),0)),w=Gy(n,"[\\[\\]\\s,]+"),o=w,f=0,g=o.length;f=0?(t||(t=new h_,r>0&&Xo(t,(Ga(0,r,e.length),e.substr(0,r)))),t.a+="\\",Uk(t,n&Zs)):t&&Uk(t,n&Zs);return t?t.a:e}function mTn(e){var t,n,r;for(n=new G(e.a.a.b);n.a0&&(!(Ug(e.a.c)&&t.n.d)&&!(B5(e.a.c)&&t.n.b)&&(t.g.d-=b.Math.max(0,r/2-.5)),!(Ug(e.a.c)&&t.n.a)&&!(B5(e.a.c)&&t.n.c)&&(t.g.a+=b.Math.max(0,r-1)))}function H2t(e,t,n){var r,a;if((e.c-e.b&e.a.length-1)==2)t==(Ct(),Qn)||t==ar?(uV(l(wA(e),15),(Ih(),kg)),uV(l(wA(e),15),Gb)):(uV(l(wA(e),15),(Ih(),Gb)),uV(l(wA(e),15),kg));else for(a=new nA(e);a.a!=a.b;)r=l(FV(a),15),uV(r,n)}function vTn(e,t){var n,r,a,o,f,g,w;for(a=$k(new ywe(e)),g=new Ua(a,a.c.length),o=$k(new ywe(t)),w=new Ua(o,o.c.length),f=null;g.b>0&&w.b>0&&(n=(mr(g.b>0),l(g.a.Xb(g.c=--g.b),27)),r=(mr(w.b>0),l(w.a.Xb(w.c=--w.b),27)),n==r);)f=n;return f}function V2t(e,t,n){var r,a,o,f;Uot(e,t)>Uot(e,n)?(r=Oc(n,(Ct(),ar)),e.d=r.dc()?0:Tae(l(r.Xb(0),12)),f=Oc(t,er),e.b=f.dc()?0:Tae(l(f.Xb(0),12))):(a=Oc(n,(Ct(),er)),e.d=a.dc()?0:Tae(l(a.Xb(0),12)),o=Oc(t,ar),e.b=o.dc()?0:Tae(l(o.Xb(0),12)))}function U2t(e,t){var n,r,a,o;for(n=e.o.a,o=l(l($i(e.r,t),21),87).Kc();o.Ob();)a=l(o.Pb(),117),a.e.a=n*ze(Ge(a.b.of(pK))),a.e.b=(r=a.b,r.pf((pi(),rh))?r.ag()==(Ct(),Qn)?-r.Mf().b-ze(Ge(r.of(rh))):ze(Ge(r.of(rh))):r.ag()==(Ct(),Qn)?-r.Mf().b:0)}function wTn(e,t){var n,r,a,o;for(t.Ug("Self-Loop pre-processing",1),r=new G(e.a);r.ae.c));f++)a.a>=e.s&&(o<0&&(o=f),g=f);return w=(e.s+e.c)/2,o>=0&&(r=o_n(e,t,o,g),w=sln((Sn(r,t.c.length),l(t.c[r],339))),fEn(t,r,n)),w}function Wr(e,t,n){var r,a,o,f,g,w,E;for(f=(o=new CI,o),g7e(f,(nr(t),t)),E=(!f.b&&(f.b=new dh((Tn(),No),Yc,f)),f.b),w=1;w0&&rMn(this,a)}function F9e(e,t,n,r,a,o){var f,g,w;if(!a[t.a]){for(a[t.a]=!0,f=r,!f&&(f=new KH),vt(f.e,t),w=o[t.a].Kc();w.Ob();)g=l(w.Pb(),290),!(g.d==n||g.c==n)&&(g.c!=t&&F9e(e,g.c,t,f,a,o),g.d!=t&&F9e(e,g.d,t,f,a,o),vt(f.c,g),ra(f.d,g.b));return f}return null}function kTn(e){var t,n,r,a,o,f,g;for(t=0,a=new G(e.e);a.a=2}function ETn(e,t,n,r,a){var o,f,g,w,E,C;for(o=e.c.d.j,f=l(ff(n,0),8),C=1;C1||(t=rs(E0,he(le(Ko,1),it,95,0,[mp,T0])),yN(NH(t,e))>1)||(r=rs(S0,he(le(Ko,1),it,95,0,[Eg,qf])),yN(NH(r,e))>1))}function R9e(e,t,n){var r,a,o;for(o=new G(e.t);o.a0&&(r.b.n-=r.c,r.b.n<=0&&r.b.u>0&&ci(t,r.b));for(a=new G(e.i);a.a0&&(r.a.u-=r.c,r.a.u<=0&&r.a.n>0&&ci(n,r.a))}function CU(e){var t,n,r,a,o;if(e.g==null&&(e.d=e.bj(e.f),qr(e,e.d),e.c))return o=e.f,o;if(t=l(e.g[e.i-1],51),a=t.Pb(),e.e=t,n=e.bj(a),n.Ob())e.d=n,qr(e,n);else for(e.d=null;!t.Ob()&&(Ts(e.g,--e.i,null),e.i!=0);)r=l(e.g[e.i-1],51),t=r;return a}function CTn(e,t){var n,r,a,o,f,g;if(r=t,a=r.Lk(),up(e.e,a)){if(a.Si()&&qH(e,a,r.md()))return!1}else for(g=Wu(e.e.Dh(),a),n=l(e.g,124),o=0;o1||n>1)return 2;return t+n==1?2:0}function Jl(e,t){var n,r,a,o,f,g;return o=e.a*hhe+e.b*1502,g=e.b*hhe+11,n=b.Math.floor(g*MP),o+=n,g-=n*cEe,o%=cEe,e.a=o,e.b=g,t<=24?b.Math.floor(e.a*m_e[t]):(a=e.a*(1<=2147483648&&(r-=4294967296),r)}function X2t(e,t,n){var r,a,o,f,g,w,E;for(o=new bt,E=new os,f=new os,KAn(e,E,f,t),CMn(e,E,f,t,n),w=new G(e);w.ar.b.g&&$n(o.c,r);return o}function DTn(e,t,n){var r,a,o,f,g,w;for(g=e.c,f=(n.q?n.q:(Cn(),Cn(),mg)).vc().Kc();f.Ob();)o=l(f.Pb(),44),r=!_k(Fi(new bn(null,new kn(g,16)),new Wl(new att(t,o)))).Bd((Am(),zx)),r&&(w=o.md(),De(w,4)&&(a=H8e(w),a!=null&&(w=a)),t.qf(l(o.ld(),149),w))}function ITn(e,t,n){var r,a;if(qO(e.b),X0(e.b,(PN(),WW),(b_(),qB)),X0(e.b,YW,t.g),X0(e.b,XW,t.a),e.a=bP(e.b,t),n.Ug("Compaction by shrinking a tree",e.a.c.length),t.i.c.length>1)for(a=new G(e.a);a.a=0?e.Lh(r,!0,!0):Hw(e,o,!0),160)),l(a,220).Xl(t,n)}else throw ue(new Yn(Ob+t.xe()+kL))}function SU(e,t){var n,r,a,o,f;if(t){for(o=De(e.Cb,90)||De(e.Cb,102),f=!o&&De(e.Cb,331),r=new or((!t.a&&(t.a=new G_(t,Wo,t)),t.a));r.e!=r.i.gc();)if(n=l(gr(r),89),a=jU(n),o?De(a,90):f?De(a,156):a)return a;return o?(Tn(),Kf):(Tn(),td)}else return null}function OTn(e,t){var n,r,a,o;for(t.Ug("Resize child graph to fit parent.",1),r=new G(e.b);r.a=2*t&&vt(n,new vae(f[r-1]+t,f[r]-t));return n}function BTn(e,t,n){var r,a,o,f,g,w,E,C;if(n)for(o=n.a.length,r=new Dm(o),g=(r.b-r.a)*r.c<0?(sb(),tm):new cb(r);g.Ob();)f=l(g.Pb(),17),a=Jk(n,f.a),a&&(w=fmn(e,(E=(rb(),C=new jwe,C),t&&z9e(E,t),E),a),fE(w,Yg(a,Pd)),mU(a,w),h9e(a,w),wce(e,a,w))}function _U(e){var t,n,r,a,o,f;if(!e.j){if(f=new IS,t=qM,o=t.a.zc(e,t),o==null){for(r=new or(dc(e));r.e!=r.i.gc();)n=l(gr(r),29),a=_U(n),As(f,a),qr(f,n);t.a.Bc(e)!=null}Iy(f),e.j=new N5((l(Oe(tt((lb(),Vn).o),11),19),f.i),f.g),Yl(e).b&=-33}return e.j}function FTn(e){var t,n,r,a;if(e==null)return null;if(r=Tu(e,!0),a=eB.length,vn(r.substr(r.length-a,a),eB)){if(n=r.length,n==4){if(t=(Xn(0,r.length),r.charCodeAt(0)),t==43)return KPe;if(t==45)return wAt}else if(n==3)return KPe}return new Awe(r)}function RTn(e){var t,n,r;return n=e.l,n&n-1||(r=e.m,r&r-1)||(t=e.h,t&t-1)||t==0&&r==0&&n==0?-1:t==0&&r==0&&n!=0?i7e(n):t==0&&r!=0&&n==0?i7e(r)+22:t!=0&&r==0&&n==0?i7e(t)+44:-1}function u6(e,t){var n,r,a,o,f;for(a=t.a&e.f,o=null,r=e.b[a];;r=r.b){if(r==t){o?o.b=t.b:e.b[a]=t.b;break}o=r}for(f=t.f&e.f,o=null,n=e.c[f];;n=n.d){if(n==t){o?o.d=t.d:e.c[f]=t.d;break}o=n}t.e?t.e.c=t.c:e.a=t.c,t.c?t.c.e=t.e:e.e=t.e,--e.i,++e.g}function jTn(e,t){var n;t.d?t.d.b=t.b:e.a=t.b,t.b?t.b.d=t.d:e.e=t.d,!t.e&&!t.c?(n=l(Lf(l(ax(e.b,t.a),260)),260),n.a=0,++e.c):(n=l(Lf(l(cr(e.b,t.a),260)),260),--n.a,t.e?t.e.c=t.c:n.b=l(Lf(t.c),511),t.c?t.c.e=t.e:n.c=l(Lf(t.e),511)),--e.d}function $Tn(e){var t,n,r,a,o,f,g,w,E,C;for(n=e.o,t=e.p,f=Ii,a=lo,g=Ii,o=lo,E=0;E0),o.a.Xb(o.c=--o.b),by(o,a),mr(o.b3&&ag(e,0,t-3))}function qTn(e){var t,n,r,a;return qe(Q(e,(Nt(),p4)))===qe((rp(),A2))?!e.e&&qe(Q(e,TB))!==qe((vE(),vB)):(r=l(Q(e,Z1e),299),a=Rt(Bt(Q(e,ede)))||qe(Q(e,JL))===qe((dA(),mB)),t=l(Q(e,SMe),17).a,n=e.a.c.length,!a&&r!=(vE(),vB)&&(t==0||t>n))}function HTn(e){var t,n;for(n=0;n0);n++);if(n>0&&n0);t++);return t>0&&n>16!=6&&t){if(FE(e,t))throw ue(new Yn(EL+d2t(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?lxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=mx(t,e,6,r)),r=Wye(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,6,t,t))}function AU(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=3&&t){if(FE(e,t))throw ue(new Yn(EL+evt(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?gxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=mx(t,e,12,r)),r=Yye(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,3,t,t))}function z9e(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=9&&t){if(FE(e,t))throw ue(new Yn(EL+Jbt(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?fxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=mx(t,e,9,r)),r=Xye(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,9,t,t))}function UE(e){var t,n,r,a,o;if(r=Of(e),o=e.j,o==null&&r)return e.Jk()?null:r.ik();if(De(r,156)){if(n=r.jk(),n&&(a=n.wi(),a!=e.i)){if(t=l(r,156),t.nk())try{e.g=a.ti(t,o)}catch(f){if(f=bs(f),De(f,82))e.g=null;else throw ue(f)}e.i=a}return e.g}return null}function ebt(e){var t;return t=new bt,vt(t,new B8(new lt(e.c,e.d),new lt(e.c+e.b,e.d))),vt(t,new B8(new lt(e.c,e.d),new lt(e.c,e.d+e.a))),vt(t,new B8(new lt(e.c+e.b,e.d+e.a),new lt(e.c+e.b,e.d))),vt(t,new B8(new lt(e.c+e.b,e.d+e.a),new lt(e.c,e.d+e.a))),t}function VTn(e){var t,n,r;if(e==null)return ul;try{return xc(e)}catch(a){if(a=bs(a),De(a,103))return t=a,r=_m(bh(e))+"@"+(n=(Vg(),q8e(e)>>>0),n.toString(16)),i6n(H3n(),(Dk(),"Exception during lenientFormat for "+r),t),"<"+r+" threw "+_m(t.Rm)+">";throw ue(a)}}function UTn(e,t,n){var r,a,o;for(o=t.a.ec().Kc();o.Ob();)a=l(o.Pb(),74),r=l(cr(e.b,a),272),!r&&(ds(cg(a))==ds(Eb(a))?ICn(e,a,n):cg(a)==ds(Eb(a))?cr(e.c,a)==null&&cr(e.b,Eb(a))!=null&&Ivt(e,a,n,!1):cr(e.d,a)==null&&cr(e.b,cg(a))!=null&&Ivt(e,a,n,!0))}function GTn(e,t){var n,r,a,o,f,g,w;for(a=e.Kc();a.Ob();)for(r=l(a.Pb(),10),g=new gu,Mc(g,r),la(g,(Ct(),ar)),rt(g,(ft(),oW),(Hn(),!0)),f=t.Kc();f.Ob();)o=l(f.Pb(),10),w=new gu,Mc(w,o),la(w,er),rt(w,oW,!0),n=new Tw,rt(n,oW,!0),po(n,g),Fa(n,w)}function KTn(e,t,n,r){var a,o,f,g;a=R1t(e,t,n),o=R1t(e,n,t),f=l(cr(e.c,t),118),g=l(cr(e.c,n),118),a1)for(t=hw((n=new Sm,++e.b,n),e.d),g=Rr(o,0);g.b!=g.d.c;)f=l(Br(g),125),p0(s0(i0(a0(r0(new _f,1),0),t),f))}function XTn(e,t,n){var r,a,o,f,g;for(n.Ug("Breaking Point Removing",1),e.a=l(Q(t,(Nt(),bp)),223),o=new G(t.b);o.a>16!=11&&t){if(FE(e,t))throw ue(new Yn(EL+oke(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?pxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=mx(t,e,10,r)),r=s4e(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,11,t,t))}function QTn(e){var t,n,r,a;for(r=new qm(new Sr(e.b).a);r.b;)n=Nw(r),a=l(n.ld(),12),t=l(n.md(),10),rt(t,(ft(),zi),a),rt(a,jl,t),rt(a,xB,(Hn(),!0)),la(a,l(Q(t,Wc),64)),Q(t,Wc),rt(a.i,(Nt(),Ms),(Ra(),sC)),l(Q(eo(a.i),Lu),21).Fc((Ho(),$T))}function JTn(e,t,n){var r,a,o,f,g,w;if(o=0,f=0,e.c)for(w=new G(e.d.i.j);w.ao.a?-1:a.aw){for(C=e.d,e.d=We(vPe,_Se,66,2*w+4,0,1),o=0;o=9223372036854776e3?(iE(),WSe):(a=!1,e<0&&(a=!0,e=-e),r=0,e>=Zm&&(r=ua(e/Zm),e-=r*Zm),n=0,e>=Lx&&(n=ua(e/Lx),e-=n*Lx),t=ua(e),o=qu(t,n,r),a&&yce(o),o)}function uCn(e){var t,n,r,a,o;if(o=new bt,Vu(e.b,new Jd(o)),e.b.c.length=0,o.c.length!=0){for(t=(Sn(0,o.c.length),l(o.c[0],82)),n=1,r=o.c.length;n=-t&&r==t?new ca(pt(n-1),pt(r)):new ca(pt(n),pt(r-1))}function rbt(){return vo(),he(le(xOn,1),it,81,0,[PAe,IAe,D6,f1e,eLe,DK,zK,l4,JAe,HAe,XAe,u4,ZAe,$Ae,tLe,SAe,PK,d1e,LK,RK,rLe,FK,_Ae,QAe,iLe,jK,nLe,MK,FAe,WAe,KAe,qK,MAe,AK,OK,LAe,LT,UAe,zAe,YAe,zL,OAe,DAe,GAe,qAe,NK,$K,AAe,BK,VAe,IK,RAe,BAe,gB,_K,jAe,NAe])}function fCn(e,t,n){e.d=0,e.b=0,t.k==(Zn(),Au)&&n.k==Au&&l(Q(t,(ft(),zi)),10)==l(Q(n,zi),10)&&($oe(t).j==(Ct(),Qn)?V2t(e,t,n):V2t(e,n,t)),t.k==Au&&n.k==Aa?$oe(t).j==(Ct(),Qn)?e.d=1:e.b=1:n.k==Au&&t.k==Aa&&($oe(n).j==(Ct(),Qn)?e.b=1:e.d=1),X6n(e,t,n)}function dCn(e){var t,n,r,a,o,f,g,w,E,C,L;return L=jxe(e),t=e.a,w=t!=null,w&&zk(L,"category",e.a),a=ZI(new br(e.d)),f=!a,f&&(E=new $p,e1(L,"knownOptions",E),n=new oQe(E),to(new br(e.d),n)),o=ZI(e.g),g=!o,g&&(C=new $p,e1(L,"supportedFeatures",C),r=new cQe(C),to(e.g,r)),L}function gCn(e){var t,n,r,a,o,f,g,w,E;for(r=!1,t=336,n=0,o=new Grt(e.length),g=e,w=0,E=g.length;w>16!=7&&t){if(FE(e,t))throw ue(new Yn(EL+lpt(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?hxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=l(t,54).Rh(e,1,oF,r)),r=J4e(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,7,t,t))}function ibt(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=3&&t){if(FE(e,t))throw ue(new Yn(EL+c1t(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?dxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=l(t,54).Rh(e,0,uF,r)),r=Z4e(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,3,t,t))}function Que(e,t){GE();var n,r,a,o,f,g,w,E,C;return t.d>e.d&&(g=e,e=t,t=g),t.d<63?nSn(e,t):(f=(e.d&-2)<<4,E=v6e(e,f),C=v6e(t,f),r=mle(e,sx(E,f)),a=mle(t,sx(C,f)),w=Que(E,C),n=Que(r,a),o=Que(mle(E,r),mle(a,C)),o=Tle(Tle(o,w),n),o=sx(o,f),w=sx(w,f<<1),Tle(Tle(w,o),n))}function p2(){p2=U,gde=new M5(cyt,0),fDe=new M5("LONGEST_PATH",1),dDe=new M5("LONGEST_PATH_SOURCE",2),dde=new M5("COFFMAN_GRAHAM",3),hDe=new M5($he,4),gDe=new M5("STRETCH_WIDTH",5),CW=new M5("MIN_WIDTH",6),WT=new M5("BF_MODEL_ORDER",7),YT=new M5("DF_MODEL_ORDER",8)}function bCn(e,t,n){var r,a,o,f,g;for(f=TA(e,n),g=We(wg,m2,10,t.length,0,1),r=0,o=f.Kc();o.Ob();)a=l(o.Pb(),12),Rt(Bt(Q(a,(ft(),xB))))&&(g[r++]=l(Q(a,jl),10));if(r=0;o+=n?1:-1)f=f|t.c.lg(w,o,n,r&&!Rt(Bt(Q(t.j,(ft(),jb))))&&!Rt(Bt(Q(t.j,(ft(),j6))))),f=f|t.q.ug(w,o,n),f=f|Ubt(e,w[o],n,r);return na(e.c,t),f}function DU(e,t,n){var r,a,o,f,g,w,E,C,L,B;for(C=Tct(e.j),L=0,B=C.length;L1&&(e.a=!0),Ydn(l(n.b,68),Oi(Ja(l(t.b,68).c),md(ma(Ja(l(n.b,68).a),l(t.b,68).a),a))),Dot(e,t),sbt(e,n)}function abt(e){var t,n,r,a,o,f,g;for(o=new G(e.a.a);o.a0&&o>0?f.p=t++:r>0?f.p=n++:o>0?f.p=a++:f.p=n++}Cn(),Vs(e.j,new W9)}function xCn(e){var t,n;n=null,t=l(jt(e.g,0),18);do{if(n=t.d.i,ns(n,(ft(),$f)))return l(Q(n,$f),12).i;if(n.k!=(Zn(),Ps)&&jr(new hr(dr(qs(n).a.Kc(),new j))))t=l(xr(new hr(dr(qs(n).a.Kc(),new j))),18);else if(n.k!=Ps)return null}while(n&&n.k!=(Zn(),Ps));return n}function kCn(e,t){var n,r,a,o,f,g,w,E,C;for(g=t.j,f=t.g,w=l(jt(g,g.c.length-1),113),C=(Sn(0,g.c.length),l(g.c[0],113)),E=vue(e,f,w,C),o=1;oE&&(w=n,C=a,E=r);t.a=C,t.c=w}function ECn(e,t,n){var r,a,o,f,g,w,E;for(E=new Kp(new UYe(e)),f=he(le(F8t,1),I3t,12,0,[t,n]),g=0,w=f.length;gw-e.b&&gw-e.a&&g0?o.a?(g=o.b.Mf().a,n>g&&(a=(n-g)/2,o.d.b=a,o.d.c=a)):o.d.c=e.s+n:W_(e.u)&&(r=$xe(o.b),r.c<0&&(o.d.b=-r.c),r.c+r.b>o.b.Mf().a&&(o.d.c=r.c+r.b-o.b.Mf().a))}function $Cn(e,t){var n,r,a,o,f;f=new bt,n=t;do o=l(cr(e.b,n),131),o.B=n.c,o.D=n.d,$n(f.c,o),n=l(cr(e.k,n),18);while(n);return r=(Sn(0,f.c.length),l(f.c[0],131)),r.j=!0,r.A=l(r.d.a.ec().Kc().Pb(),18).c.i,a=l(jt(f,f.c.length-1),131),a.q=!0,a.C=l(a.d.a.ec().Kc().Pb(),18).d.i,f}function zCn(e){var t,n;if(t=l(e.a,17).a,n=l(e.b,17).a,t>=0){if(t==n)return new ca(pt(-t-1),pt(-t-1));if(t==-n)return new ca(pt(-t),pt(n+1))}return b.Math.abs(t)>b.Math.abs(n)?t<0?new ca(pt(-t),pt(n)):new ca(pt(-t),pt(n+1)):new ca(pt(t+1),pt(n))}function qCn(e){var t,n;n=l(Q(e,(Nt(),Qu)),171),t=l(Q(e,(ft(),hv)),311),n==(hf(),$b)?(rt(e,Qu,EB),rt(e,hv,(ep(),F6))):n==d4?(rt(e,Qu,EB),rt(e,hv,(ep(),Ux))):t==(ep(),F6)?(rt(e,Qu,$b),rt(e,hv,wB)):t==Ux&&(rt(e,Qu,d4),rt(e,hv,wB))}function IU(){IU=U,IB=new pte,XEt=fi(new Xs,(uo(),bu),(vo(),LK)),ZEt=yl(fi(new Xs,bu,FK),mc,BK),eTt=Td(Td(v_(yl(fi(new Xs,y0,zK),mc,$K),_u),jK),qK),QEt=yl(fi(fi(fi(new Xs,vg,DK),_u,OK),_u,LT),mc,IK),JEt=yl(fi(fi(new Xs,_u,LT),_u,AK),mc,_K)}function GA(){GA=U,rTt=fi(yl(new Xs,(uo(),mc),(vo(),RAe)),bu,LK),oTt=Td(Td(v_(yl(fi(new Xs,y0,zK),mc,$K),_u),jK),qK),iTt=yl(fi(fi(fi(new Xs,vg,DK),_u,OK),_u,LT),mc,IK),aTt=fi(fi(new Xs,bu,FK),mc,BK),sTt=yl(fi(fi(new Xs,_u,LT),_u,AK),mc,_K)}function HCn(e,t,n,r,a){var o,f;(!Do(t)&&t.c.i.c==t.d.i.c||!uft(Ic(he(le(Ea,1),dt,8,0,[a.i.n,a.n,a.a])),n))&&!Do(t)&&(t.c==a?Pk(t.a,0,new Eo(n)):ci(t.a,new Eo(n)),r&&!W0(e.a,n)&&(f=l(Q(t,(Nt(),cc)),75),f||(f=new bl,rt(t,cc,f)),o=new Eo(n),Cs(f,o,f.c.b,f.c),na(e.a,o)))}function ubt(e,t){var n,r,a,o;for(o=Yr(mo(fg,ig(Yr(mo(t==null?0:es(t),dg)),15))),n=o&e.b.length-1,a=null,r=e.b[n];r;a=r,r=r.a)if(r.d==o&&yd(r.i,t))return a?a.a=r.a:e.b[n]=r.a,RJe(l(Lf(r.c),604),l(Lf(r.f),604)),WI(l(Lf(r.b),227),l(Lf(r.e),227)),--e.f,++e.e,!0;return!1}function VCn(e){var t,n;for(n=new hr(dr(ka(e).a.Kc(),new j));jr(n);)if(t=l(xr(n),18),t.c.i.k!=(Zn(),cu))throw ue(new Vp(jhe+HN(e)+"' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."))}function UCn(e,t,n){var r,a,o,f,g,w,E;if(a=d1t(e.Db&254),a==0)e.Eb=n;else{if(a==1)g=We(wa,Rn,1,2,5,1),o=mue(e,t),o==0?(g[0]=n,g[1]=e.Eb):(g[0]=e.Eb,g[1]=n);else for(g=We(wa,Rn,1,a+1,5,1),f=jm(e.Eb),r=2,w=0,E=0;r<=128;r<<=1)r==t?g[E++]=n:e.Db&r&&(g[E++]=f[w++]);e.Eb=g}e.Db|=t}function lbt(e,t,n){var r,a,o,f;for(this.b=new bt,a=0,r=0,f=new G(e);f.a0&&(o=l(jt(this.b,0),176),a+=o.o,r+=o.p),a*=2,r*=2,t>1?a=ua(b.Math.ceil(a*t)):r=ua(b.Math.ceil(r/t)),this.a=new I8e(a,r)}function hbt(e,t,n,r,a,o){var f,g,w,E,C,L,B,z,V,J,te,fe;for(C=r,t.j&&t.o?(z=l(cr(e.f,t.A),60),J=z.d.c+z.d.b,--C):J=t.a.c+t.a.b,L=a,n.q&&n.o?(z=l(cr(e.f,n.C),60),E=z.d.c,++L):E=n.a.c,te=E-J,w=b.Math.max(2,L-C),g=te/w,V=J+g,B=C;B=0;f+=a?1:-1){for(g=t[f],w=r==(Ct(),ar)?a?Oc(g,r):lf(Oc(g,r)):a?lf(Oc(g,r)):Oc(g,r),o&&(e.c[g.p]=w.gc()),L=w.Kc();L.Ob();)C=l(L.Pb(),12),e.d[C.p]=E++;ra(n,w)}}function dbt(e,t,n){var r,a,o,f,g,w,E,C;for(o=ze(Ge(e.b.Kc().Pb())),E=ze(Ge(q3n(t.b))),r=md(Ja(e.a),E-n),a=md(Ja(t.a),n-o),C=Oi(r,a),md(C,1/(E-o)),this.a=C,this.b=new bt,g=!0,f=e.b.Kc(),f.Pb();f.Ob();)w=ze(Ge(f.Pb())),g&&w-n>wfe&&(this.b.Fc(n),g=!1),this.b.Fc(w);g&&this.b.Fc(n)}function GCn(e){var t,n,r,a;if(l_n(e,e.n),e.d.c.length>0){for(u_(e.c);L9e(e,l(re(new G(e.e.a)),125))>5,t&=31,r>=e.d)return e.e<0?(Cd(),w6t):(Cd(),BL);if(o=e.d-r,a=We(Vr,di,28,o+1,15,1),F9n(a,o,e.a,r,t),e.e<0){for(n=0;n0&&e.a[n]<<32-t){for(n=0;n=0?!1:(n=g6((El(),io),a,t),n?(r=n.Ik(),(r>1||r==-1)&&kw(ic(io,n))!=3):!0)):!1}function XCn(e,t,n,r){var a,o,f,g,w;return g=bc(l(Oe((!t.b&&(t.b=new Ln(_r,t,4,7)),t.b),0),84)),w=bc(l(Oe((!t.c&&(t.c=new Ln(_r,t,5,8)),t.c),0),84)),ds(g)==ds(w)||Ly(w,g)?null:(f=WO(t),f==n?r:(o=l(cr(e.a,f),10),o&&(a=o.e,a)?a:null))}function QCn(e,t,n){var r,a,o,f,g;for(n.Ug("Longest path to source layering",1),e.a=t,g=e.a.a,e.b=We(Vr,di,28,g.c.length,15,1),r=0,f=new G(g);f.a0&&(n[0]+=e.d,f-=n[0]),n[2]>0&&(n[2]+=e.d,f-=n[2]),o=b.Math.max(0,f),n[1]=b.Math.max(n[1],f),y6e(e,$u,a.c+r.b+n[0]-(n[1]-f)/2,n),t==$u&&(e.c.b=o,e.c.c=a.c+r.b+(o-f)/2)}function Ebt(){this.c=We(Na,Zo,28,(Ct(),he(le(Oo,1),au,64,0,[Pc,Qn,ar,Dr,er])).length,15,1),this.b=We(Na,Zo,28,he(le(Oo,1),au,64,0,[Pc,Qn,ar,Dr,er]).length,15,1),this.a=We(Na,Zo,28,he(le(Oo,1),au,64,0,[Pc,Qn,ar,Dr,er]).length,15,1),E3e(this.c,gs),E3e(this.b,ia),E3e(this.a,ia)}function Eu(e,t,n){var r,a,o,f;if(t<=n?(a=t,o=n):(a=n,o=t),r=0,e.b==null)e.b=We(Vr,di,28,2,15,1),e.b[0]=a,e.b[1]=o,e.c=!0;else{if(r=e.b.length,e.b[r-1]+1==a){e.b[r-1]=o;return}f=We(Vr,di,28,r+2,15,1),pu(e.b,0,f,0,r),e.b=f,e.b[r-1]>=a&&(e.c=!1,e.a=!1),e.b[r++]=a,e.b[r]=o,e.c||c6(e)}}function rSn(e,t,n){var r,a,o,f,g,w,E;for(E=t.d,e.a=new Bu(E.c.length),e.c=new Pr,g=new G(E);g.a=0?e.Lh(E,!1,!0):Hw(e,n,!1),61));e:for(o=L.Kc();o.Ob();){for(a=l(o.Pb(),58),C=0;C1;)Vy(a,a.i-1);return r}function Cbt(e,t){var n,r,a,o,f,g,w;for(n=new z5,o=new G(e.b);o.ae.d[f.p]&&(n+=f6e(e.b,o),gb(e.a,pt(o)));for(;!l_(e.a);)U6e(e.b,l(X8(e.a),17).a)}return n}function uSn(e){var t,n,r,a,o,f,g,w,E;for(e.a=new i4e,E=0,a=0,r=new G(e.i.b);r.ag.d&&(C=g.d+g.a+E));n.c.d=C,t.a.zc(n,t),w=b.Math.max(w,n.c.d+n.c.a)}return w}function Ho(){Ho=U,eW=new uy("COMMENTS",0),vf=new uy("EXTERNAL_PORTS",1),UL=new uy("HYPEREDGES",2),tW=new uy("HYPERNODES",3),$T=new uy("NON_FREE_PORTS",4),B6=new uy("NORTH_SOUTH_PORTS",5),GL=new uy(X3t,6),RT=new uy("CENTER_LABELS",7),jT=new uy("END_LABELS",8),nW=new uy("PARTITIONS",9)}function hSn(e,t,n,r,a){return r<0?(r=o6(e,a,he(le(zt,1),dt,2,6,[$le,zle,qle,Hle,_x,Vle,Ule,Gle,Kle,Wle,Yle,Xle]),t),r<0&&(r=o6(e,a,he(le(zt,1),dt,2,6,["Jan","Feb","Mar","Apr",_x,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),t)),r<0?!1:(n.k=r,!0)):r>0?(n.k=r-1,!0):!1}function fSn(e,t,n,r,a){return r<0?(r=o6(e,a,he(le(zt,1),dt,2,6,[$le,zle,qle,Hle,_x,Vle,Ule,Gle,Kle,Wle,Yle,Xle]),t),r<0&&(r=o6(e,a,he(le(zt,1),dt,2,6,["Jan","Feb","Mar","Apr",_x,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),t)),r<0?!1:(n.k=r,!0)):r>0?(n.k=r-1,!0):!1}function dSn(e,t,n,r,a,o){var f,g,w,E;if(g=32,r<0){if(t[0]>=e.length||(g=co(e,t[0]),g!=43&&g!=45)||(++t[0],r=kU(e,t),r<0))return!1;g==45&&(r=-r)}return g==32&&t[0]-n==2&&a.b==2&&(w=new Qz,E=w.q.getFullYear()-Lb+Lb-80,f=E%100,o.a=r==f,r+=(E/100|0)*100+(r=0?kb(e):J_(kb(r2(e)))),FL[t]=Aq(l0(e,t),0)?kb(l0(e,t)):J_(kb(r2(l0(e,t)))),e=mo(e,5);for(;t=E&&(w=r);w&&(C=b.Math.max(C,w.a.o.a)),C>B&&(L=E,B=C)}return L}function wSn(e){var t,n,r,a,o,f,g;for(o=new Kp(l(Xr(new Wh),50)),g=ia,n=new G(e.d);n.akyt?Vs(w,e.b):r<=kyt&&r>Eyt?Vs(w,e.d):r<=Eyt&&r>Tyt?Vs(w,e.c):r<=Tyt&&Vs(w,e.a),o=Mbt(e,w,o);return a}function Dbt(e,t,n,r){var a,o,f,g,w,E;for(a=(r.c+r.a)/2,Ch(t.j),ci(t.j,a),Ch(n.e),ci(n.e,a),E=new QJe,g=new G(e.f);g.a1,g&&(r=new lt(a,n.b),ci(t.a,r)),fA(t.a,he(le(Ea,1),dt,8,0,[B,L]))}function J9e(e,t,n){var r,a;for(t=48;n--)GM[n]=n-48<<24>>24;for(r=70;r>=65;r--)GM[r]=r-65+10<<24>>24;for(a=102;a>=97;a--)GM[a]=a-97+10<<24>>24;for(o=0;o<10;o++)LY[o]=48+o&Zs;for(e=10;e<=15;e++)LY[e]=65+e-10&Zs}function ESn(e,t){t.Ug("Process graph bounds",1),rt(e,(Qi(),Bde),fO(uce(xy(new bn(null,new kn(e.b,16)),new zte)))),rt(e,Fde,fO(uce(xy(new bn(null,new kn(e.b,16)),new qte)))),rt(e,rIe,fO(cce(xy(new bn(null,new kn(e.b,16)),new Hte)))),rt(e,iIe,fO(cce(xy(new bn(null,new kn(e.b,16)),new Vte)))),t.Vg()}function TSn(e){var t,n,r,a,o;a=l(Q(e,(Nt(),bv)),21),o=l(Q(e,xW),21),n=new lt(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a),t=new Eo(n),a.Hc((mh(),A4))&&(r=l(Q(e,qT),8),o.Hc((Zl(),aC))&&(r.a<=0&&(r.a=20),r.b<=0&&(r.b=20)),t.a=b.Math.max(n.a,r.a),t.b=b.Math.max(n.b,r.b)),Rt(Bt(Q(e,ade)))||eLn(e,n,t)}function CSn(e,t){var n,r,a,o;for(o=Oc(t,(Ct(),Dr)).Kc();o.Ob();)r=l(o.Pb(),12),n=l(Q(r,(ft(),jl)),10),n&&p0(s0(i0(a0(r0(new _f,0),.1),e.i[t.p].d),e.i[n.p].a));for(a=Oc(t,Qn).Kc();a.Ob();)r=l(a.Pb(),12),n=l(Q(r,(ft(),jl)),10),n&&p0(s0(i0(a0(r0(new _f,0),.1),e.i[n.p].d),e.i[t.p].a))}function Zue(e){var t,n,r,a,o,f;if(!e.c){if(f=new Qc,t=qM,o=t.a.zc(e,t),o==null){for(r=new or(du(e));r.e!=r.i.gc();)n=l(gr(r),89),a=jU(n),De(a,90)&&As(f,Zue(l(a,29))),qr(f,n);t.a.Bc(e)!=null,t.a.gc()==0}y5n(f),Iy(f),e.c=new N5((l(Oe(tt((lb(),Vn).o),15),19),f.i),f.g),Yl(e).b&=-33}return e.c}function eke(e){var t;if(e.c!=10)throw ue(new ri(ai((Jr(),VG))));switch(t=e.a,t){case 110:t=10;break;case 114:t=13;break;case 116:t=9;break;case 92:case 124:case 46:case 94:case 45:case 63:case 42:case 43:case 123:case 125:case 40:case 41:case 91:case 93:break;default:throw ue(new ri(ai((Jr(),bf))))}return t}function Pbt(e){var t,n,r,a,o;if(e.l==0&&e.m==0&&e.h==0)return"0";if(e.h==SP&&e.m==0&&e.l==0)return"-9223372036854775808";if(e.h>>19)return"-"+Pbt(xE(e));for(n=e,r="";!(n.l==0&&n.m==0&&n.h==0);){if(a=Loe(JU),n=Nke(n,a,!0),t=""+rZe(Nb),!(n.l==0&&n.m==0&&n.h==0))for(o=9-t.length;o>0;o--)t="0"+t;r=t+r}return r}function SSn(e){var t,n,r,a,o,f,g;for(t=!1,n=0,a=new G(e.d.b);a.a=e.a||!Bxe(t,n))return-1;if(Zk(l(r.Kb(t),20)))return 1;for(a=0,f=l(r.Kb(t),20).Kc();f.Ob();)if(o=l(f.Pb(),18),w=o.c.i==t?o.d.i:o.c.i,g=tke(e,w,n,r),g==-1||(a=b.Math.max(a,g),a>e.c-1))return-1;return a+1}function Bbt(e,t){var n,r,a,o,f,g;if(qe(t)===qe(e))return!0;if(!De(t,15)||(r=l(t,15),g=e.gc(),r.gc()!=g))return!1;if(f=r.Kc(),e.Yi()){for(n=0;n0){if(e._j(),t!=null){for(o=0;o>24;case 97:case 98:case 99:case 100:case 101:case 102:return e-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return e-65+10<<24>>24;default:throw ue(new gd("Invalid hexadecimal"))}}function PU(){PU=U,j_e=new L5("SPIRAL",0),P_e=new L5("LINE_BY_LINE",1),B_e=new L5("MANHATTAN",2),N_e=new L5("JITTER",3),z0e=new L5("QUADRANTS_LINE_BY_LINE",4),R_e=new L5("QUADRANTS_MANHATTAN",5),F_e=new L5("QUADRANTS_JITTER",6),O_e=new L5("COMBINE_LINE_BY_LINE_MANHATTAN",7),I_e=new L5("COMBINE_JITTER_MANHATTAN",8)}function Rbt(e,t,n,r){var a,o,f,g,w,E;for(w=Tue(e,n),E=Tue(t,n),a=!1;w&&E&&(r||E7n(w,E,n));)f=Tue(w,n),g=Tue(E,n),uN(t),uN(e),o=w.c,Cle(w,!1),Cle(E,!1),n?(Fy(t,E.p,o),t.p=E.p,Fy(e,w.p+1,o),e.p=w.p):(Fy(e,w.p,o),e.p=w.p,Fy(t,E.p+1,o),t.p=E.p),Va(w,null),Va(E,null),w=f,E=g,a=!0;return a}function jbt(e){switch(e.g){case 0:return new Gre;case 1:return new XS;case 3:return new fet;case 4:return new zee;case 5:return new zrt;case 6:return new jI;case 2:return new YS;case 7:return new az;case 8:return new RI;default:throw ue(new Yn("No implementation is available for the layerer "+(e.f!=null?e.f:""+e.g)))}}function ISn(e,t,n,r){var a,o,f,g,w;for(a=!1,o=!1,g=new G(r.j);g.a=t.length)throw ue(new tc("Greedy SwitchDecider: Free layer not in graph."));this.c=t[e],this.e=new IO(r),ice(this.e,this.c,(Ct(),er)),this.i=new IO(r),ice(this.i,this.c,ar),this.f=new ist(this.c),this.a=!o&&a.i&&!a.s&&this.c[0].k==(Zn(),Us),this.a&&G9n(this,e,t.length)}function zbt(e,t){var n,r,a,o,f,g;o=!e.B.Hc((Zl(),sF)),f=e.B.Hc(Gge),e.a=new _1t(f,o,e.c),e.n&&O5e(e.a.n,e.n),Xie(e.g,(t1(),$u),e.a),t||(r=new DA(1,o,e.c),r.n.a=e.k,Q8(e.p,(Ct(),Qn),r),a=new DA(1,o,e.c),a.n.d=e.k,Q8(e.p,Dr,a),g=new DA(0,o,e.c),g.n.c=e.k,Q8(e.p,er,g),n=new DA(0,o,e.c),n.n.b=e.k,Q8(e.p,ar,n))}function NSn(e){var t,n,r;switch(t=l(Q(e.d,(Nt(),bp)),223),t.g){case 2:n=kIn(e);break;case 3:n=(r=new bt,Is(Fi(fc(Dc(Dc(new bn(null,new kn(e.d.b,16)),new dee),new gee),new pee),new wS),new xYe(r)),r);break;default:throw ue(new nc("Compaction not supported for "+t+" edges."))}VLn(e,n),to(new br(e.g),new wYe(e))}function PSn(e,t){var n,r,a,o,f,g,w;if(t.Ug("Process directions",1),n=l(Q(e,(Hc(),y3)),88),n!=(Js(),Q1))for(a=Rr(e.b,0);a.b!=a.d.c;){switch(r=l(Br(a),40),g=l(Q(r,(Qi(),PB)),17).a,w=l(Q(r,BB),17).a,n.g){case 4:w*=-1;break;case 1:o=g,g=w,w=o;break;case 2:f=g,g=-w,w=f}rt(r,PB,pt(g)),rt(r,BB,pt(w))}t.Vg()}function BSn(e,t){var n;return n=new Bs,t&&pc(n,l(cr(e.a,oF),96)),De(t,422)&&pc(n,l(cr(e.a,cF),96)),De(t,366)?(pc(n,l(cr(e.a,ec),96)),n):(De(t,84)&&pc(n,l(cr(e.a,_r),96)),De(t,207)?(pc(n,l(cr(e.a,Ai),96)),n):De(t,193)?(pc(n,l(cr(e.a,Hl),96)),n):(De(t,326)&&pc(n,l(cr(e.a,js),96)),n))}function FSn(e){var t,n,r,a,o,f,g,w;for(w=new xut,g=new G(e.a);g.a0&&t=0)return!1;if(t.p=n.b,vt(n.e,t),a==(Zn(),Aa)||a==Au){for(f=new G(t.j);f.ae.d[g.p]&&(n+=f6e(e.b,o),gb(e.a,pt(o)))):++f;for(n+=e.b.d*f;!l_(e.a);)U6e(e.b,l(X8(e.a),17).a)}return n}function Qbt(e){var t,n,r,a,o,f;return o=0,t=Of(e),t.kk()&&(o|=4),e.Bb&Sl&&(o|=2),De(e,102)?(n=l(e,19),a=Ro(n),n.Bb&eu&&(o|=32),a&&(yr(ky(a)),o|=8,f=a.t,(f>1||f==-1)&&(o|=16),a.Bb&eu&&(o|=64)),n.Bb&Io&&(o|=r4),o|=m0):De(t,469)?o|=512:(r=t.kk(),r&&r.i&1&&(o|=256)),e.Bb&512&&(o|=128),o}function YSn(e,t){var n;return e.f==spe?(n=kw(ic((El(),io),t)),e.e?n==4&&t!=(kx(),u9)&&t!=(kx(),c9)&&t!=(kx(),ape)&&t!=(kx(),ope):n==2):e.d&&(e.d.Hc(t)||e.d.Hc(rx(ic((El(),io),t)))||e.d.Hc(g6((El(),io),e.b,t)))?!0:e.f&&q9e((El(),e.f),HO(ic(io,t)))?(n=kw(ic(io,t)),e.e?n==4:n==2):!1}function XSn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z;for(B=-1,z=0,E=e,C=0,L=E.length;C0&&++z;++B}return z}function QSn(e,t,n,r){var a,o,f,g,w,E,C,L;return f=l(at(n,(pi(),n9)),8),w=f.a,C=f.b+e,a=b.Math.atan2(C,w),a<0&&(a+=iv),a+=t,a>iv&&(a-=iv),g=l(at(r,n9),8),E=g.a,L=g.b+e,o=b.Math.atan2(L,E),o<0&&(o+=iv),o+=t,o>iv&&(o-=iv),A1(),f0(1e-10),b.Math.abs(a-o)<=1e-10||a==o||isNaN(a)&&isNaN(o)?0:ao?1:uw(isNaN(a),isNaN(o))}function nle(e){var t,n,r,a,o,f,g;for(g=new Pr,r=new G(e.a.b);r.a=e.o)throw ue(new Bwe);g=t>>5,f=t&31,o=l0(1,Yr(l0(f,1))),a?e.n[n][g]=Q0(e.n[n][g],o):e.n[n][g]=va(e.n[n][g],O4e(o)),o=l0(o,1),r?e.n[n][g]=Q0(e.n[n][g],o):e.n[n][g]=va(e.n[n][g],O4e(o))}catch(w){throw w=bs(w),De(w,333)?ue(new tc(Ehe+e.o+"*"+e.p+The+t+Co+n+Che)):ue(w)}}function e_n(e,t,n,r){var a,o,f,g,w,E,C,L,B;for(B=new Kp(new VYe(e)),g=he(le(wg,1),m2,10,0,[t,n]),w=0,E=g.length;w0&&(r=(!e.n&&(e.n=new nt(ec,e,1,7)),l(Oe(e.n,0),135)).a,!r||hi(hi((t.a+=' "',t),r),'"'))),hi(rw(hi(rw(hi(rw(hi(rw((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function Jbt(e){var t,n,r;return e.Db&64?Pue(e):(t=new Th(uSe),n=e.k,n?hi(hi((t.a+=' "',t),n),'"'):(!e.n&&(e.n=new nt(ec,e,1,7)),e.n.i>0&&(r=(!e.n&&(e.n=new nt(ec,e,1,7)),l(Oe(e.n,0),135)).a,!r||hi(hi((t.a+=' "',t),r),'"'))),hi(rw(hi(rw(hi(rw(hi(rw((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function r_n(e,t){var n,r,a,o,f;for(t==(yA(),Cde)&&JN(l($i(e.a,(Ry(),bB)),15)),a=l($i(e.a,(Ry(),bB)),15).Kc();a.Ob();)switch(r=l(a.Pb(),105),n=l(jt(r.j,0),113).d.j,o=new Ol(r.j),Vs(o,new Rj),t.g){case 2:Lue(e,o,n,(Ow(),Rb),1);break;case 1:case 0:f=HTn(o),Lue(e,new Zp(o,0,f),n,(Ow(),Rb),0),Lue(e,new Zp(o,f,o.c.length),n,Rb,1)}}function ile(e,t){var n,r,a,o,f,g,w;if(t==null||t.length==0)return null;if(a=l(xu(e.a,t),143),!a){for(r=(g=new gi(e.b).a.vc().Kc(),new fs(g));r.a.Ob();)if(n=(o=l(r.a.Pb(),44),l(o.md(),143)),f=n.c,w=t.length,vn(f.substr(f.length-w,w),t)&&(t.length==f.length||co(f,f.length-t.length-1)==46)){if(a)return null;a=n}a&&rc(e.a,t,a)}return a}function i_n(e,t){var n,r,a,o;return n=new as,r=l(yc(fc(new bn(null,new kn(e.f,16)),n),Sy(new yt,new ji,new qn,new Un,he(le(oc,1),it,108,0,[(Fl(),i4),Ec]))),21),a=r.gc(),r=l(yc(fc(new bn(null,new kn(t.f,16)),n),Sy(new yt,new ji,new qn,new Un,he(le(oc,1),it,108,0,[i4,Ec]))),21),o=r.gc(),aa.p?(la(o,Dr),o.d&&(g=o.o.b,t=o.a.b,o.a.b=g-t)):o.j==Dr&&a.p>e.p&&(la(o,Qn),o.d&&(g=o.o.b,t=o.a.b,o.a.b=-(g-t)));break}return a}function uP(e,t,n,r,a){var o,f,g,w,E,C,L;if(!(De(t,207)||De(t,366)||De(t,193)))throw ue(new Yn("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));return f=e.a/2,w=t.i+r-f,C=t.j+a-f,E=w+t.g+e.a,L=C+t.f+e.a,o=new bl,ci(o,new lt(w,C)),ci(o,new lt(w,L)),ci(o,new lt(E,L)),ci(o,new lt(E,C)),g=new Gue(o),pc(g,t),n&&ki(e.b,t,g),g}function KE(e,t,n){var r,a,o,f,g,w,E,C,L,B;for(o=new lt(t,n),C=new G(e.a);C.a1,g&&(r=new lt(a,n.b),ci(t.a,r)),fA(t.a,he(le(Ea,1),dt,8,0,[B,L]))}function Nf(){Nf=U,AW=new ly(Id,0),AB=new ly("NIKOLOV",1),LB=new ly("NIKOLOV_PIXEL",2),xDe=new ly("NIKOLOV_IMPROVED",3),kDe=new ly("NIKOLOV_IMPROVED_PIXEL",4),yDe=new ly("DUMMYNODE_PERCENTAGE",5),EDe=new ly("NODECOUNT_PERCENTAGE",6),LW=new ly("NO_BOUNDARY",7),v3=new ly("MODEL_ORDER_LEFT_TO_RIGHT",8),x4=new ly("MODEL_ORDER_RIGHT_TO_LEFT",9)}function g_n(e){var t,n,r,a,o;for(r=e.length,t=new h_,o=0;o=40,f&&pAn(e),TLn(e),GCn(e),n=m1t(e),r=0;n&&r0&&ci(e.f,o)):(e.c[f]-=E+1,e.c[f]<=0&&e.a[f]>0&&ci(e.e,o))))}function hmt(e,t,n,r){var a,o,f,g,w,E,C;for(w=new lt(n,r),ma(w,l(Q(t,(Qi(),QT)),8)),C=Rr(t.b,0);C.b!=C.d.c;)E=l(Br(C),40),Oi(E.e,w),ci(e.b,E);for(g=l(yc(V5e(new bn(null,new kn(t.a,16))),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15).Kc();g.Ob();){for(f=l(g.Pb(),65),o=Rr(f.a,0);o.b!=o.d.c;)a=l(Br(o),8),a.a+=w.a,a.b+=w.b;ci(e.a,f)}}function bke(e,t){var n,r,a,o;if(0<(De(e,16)?l(e,16).gc():Xg(e.Kc()))){if(a=t,1=0&&wo*2?(C=new hV(L),E=wl(f)/gh(f),w=Lle(C,t,new A8,n,r,a,E),Oi(Y0(C.e),w),L.c.length=0,o=0,$n(L.c,C),$n(L.c,f),o=wl(C)*gh(C)+wl(f)*gh(f)):($n(L.c,f),o+=wl(f)*gh(f));return L}function dmt(e,t){var n,r,a,o,f,g;if(g=l(Q(t,(Nt(),Ms)),101),g==(Ra(),Tg)||g==Mu)for(a=new lt(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a).b,f=new G(e.a);f.an?t:n;E<=L;++E)E==n?g=r++:(o=a[E],C=V.am(o.Lk()),E==t&&(w=E==L&&!C?r-1:r),C&&++r);return B=l(AA(e,t,n),76),g!=w&&xk(e,new sN(e.e,7,f,pt(g),z.md(),w)),B}}else return l(Hue(e,t,n),76);return l(AA(e,t,n),76)}function N_n(e,t){var n,r,a,o,f,g,w;for(t.Ug("Port order processing",1),w=l(Q(e,(Nt(),ZMe)),430),r=new G(e.b);r.a=0&&(g=A7n(e,f),!(g&&(E<22?w.l|=1<>>1,f.m=C>>>1|(L&1)<<21,f.l=B>>>1|(C&1)<<21,--E;return n&&yce(w),o&&(r?(Nb=xE(e),a&&(Nb=Jft(Nb,(iE(),YSe)))):Nb=qu(e.l,e.m,e.h)),w}function F_n(e,t){var n,r,a,o,f,g,w,E,C,L;for(E=e.e[t.c.p][t.p]+1,w=t.c.a.c.length+1,g=new G(e.a);g.a0&&(Xn(0,e.length),e.charCodeAt(0)==45||(Xn(0,e.length),e.charCodeAt(0)==43))?1:0,r=f;rn)throw ue(new gd(Yw+e+'"'));return g}function R_n(e){var t,n,r,a,o,f,g;for(f=new os,o=new G(e.a);o.a1)&&t==1&&l(e.a[e.b],10).k==(Zn(),cu)?Tx(l(e.a[e.b],10),(Ih(),kg)):r&&(!n||(e.c-e.b&e.a.length-1)>1)&&t==1&&l(e.a[e.c-1&e.a.length-1],10).k==(Zn(),cu)?Tx(l(e.a[e.c-1&e.a.length-1],10),(Ih(),Gb)):(e.c-e.b&e.a.length-1)==2?(Tx(l(wA(e),10),(Ih(),kg)),Tx(l(wA(e),10),Gb)):dTn(e,a),l6e(e)}function z_n(e,t,n){var r,a,o,f,g;for(o=0,a=new or((!e.a&&(e.a=new nt(Ai,e,10,11)),e.a));a.e!=a.i.gc();)r=l(gr(a),27),f="",(!r.n&&(r.n=new nt(ec,r,1,7)),r.n).i==0||(f=l(Oe((!r.n&&(r.n=new nt(ec,r,1,7)),r.n),0),135).a),g=new xce(o++,t,f),pc(g,r),rt(g,(Qi(),gM),r),g.e.b=r.j+r.f/2,g.f.a=b.Math.max(r.g,1),g.e.a=r.i+r.g/2,g.f.b=b.Math.max(r.f,1),ci(t.b,g),ju(n.f,r,g)}function q_n(e){var t,n,r,a,o;r=l(Q(e,(ft(),zi)),27),o=l(at(r,(Nt(),bv)),181).Hc((mh(),Cv)),e.e||(a=l(Q(e,Lu),21),t=new lt(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a),a.Hc((Ho(),vf))?(Hi(r,Ms,(Ra(),Mu)),Gw(r,t.a,t.b,!1,!0)):Rt(Bt(at(r,ade)))||Gw(r,t.a,t.b,!0,!0)),o?Hi(r,bv,un(Cv)):Hi(r,bv,(n=l(K0(BM),9),new Zh(n,l(c0(n,n.length),9),0)))}function mke(e,t,n){var r,a,o,f;if(t[0]>=e.length)return n.o=0,!0;switch(co(e,t[0])){case 43:a=1;break;case 45:a=-1;break;default:return n.o=0,!0}if(++t[0],o=t[0],f=kU(e,t),f==0&&t[0]==o)return!1;if(t[0]g&&(g=a,C.c.length=0),a==g&&vt(C,new ca(n.c.i,n)));Cn(),Vs(C,e.c),pw(e.b,w.p,C)}}function G_n(e,t){var n,r,a,o,f,g,w,E,C;for(f=new G(t.b);f.ag&&(g=a,C.c.length=0),a==g&&vt(C,new ca(n.d.i,n)));Cn(),Vs(C,e.c),pw(e.f,w.p,C)}}function K_n(e,t){var n,r,a,o,f,g,w,E;if(E=Bt(Q(t,(Hc(),MTt))),E==null||(nr(E),E)){for(vEn(e,t),a=new bt,w=Rr(t.b,0);w.b!=w.d.c;)f=l(Br(w),40),n=i9e(e,f,null),n&&(pc(n,t),$n(a.c,n));if(e.a=null,e.b=null,a.c.length>1)for(r=new G(a);r.a=0&&g!=n&&(o=new _a(e,1,g,f,null),r?r.nj(o):r=o),n>=0&&(o=new _a(e,1,n,g==n?f:null,t),r?r.nj(o):r=o)),r}function bmt(e){var t,n,r;if(e.b==null){if(r=new Up,e.i!=null&&(Xo(r,e.i),r.a+=":"),e.f&256){for(e.f&256&&e.a!=null&&(hpn(e.i)||(r.a+="//"),Xo(r,e.a)),e.d!=null&&(r.a+="/",Xo(r,e.d)),e.f&16&&(r.a+="/"),t=0,n=e.j.length;tB?!1:(L=(w=ZA(r,B,!1),w.a),C+g+L<=t.b&&(aN(n,o-n.s),n.c=!0,aN(r,o-n.s),qN(r,n.s,n.t+n.d+g),r.k=!0,C7e(n.q,r),z=!0,a&&(bV(t,r),r.j=t,e.c.length>f&&(UN((Sn(f,e.c.length),l(e.c[f],186)),r),(Sn(f,e.c.length),l(e.c[f],186)).a.c.length==0&&t2(e,f)))),z)}function eAn(e,t){var n,r,a,o,f,g;if(t.Ug("Partition midprocessing",1),a=new Cw,Is(Fi(new bn(null,new kn(e.a,16)),new vj),new cYe(a)),a.d!=0){for(g=l(yc(K5e((o=a.i,new bn(null,(o||(a.i=new q5(a,a.c))).Nc()))),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15),r=g.Kc(),n=l(r.Pb(),17);r.Ob();)f=l(r.Pb(),17),GTn(l($i(a,n),21),l($i(a,f),21)),n=f;t.Vg()}}function wmt(e,t,n){var r,a,o,f,g,w,E,C;if(t.p==0){for(t.p=1,f=n,f||(a=new bt,o=(r=l(K0(Oo),9),new Zh(r,l(c0(r,r.length),9),0)),f=new ca(a,o)),l(f.a,15).Fc(t),t.k==(Zn(),Us)&&l(f.b,21).Fc(l(Q(t,(ft(),Wc)),64)),w=new G(t.j);w.a0){if(a=l(e.Ab.g,2033),t==null){for(o=0;on.s&&gf)return Ct(),ar;break;case 4:case 3:if(C<0)return Ct(),Qn;if(C+n>o)return Ct(),Dr}return w=(E+g/2)/f,r=(C+n/2)/o,w+r<=1&&w-r<=0?(Ct(),er):w+r>=1&&w-r>=0?(Ct(),ar):r<.5?(Ct(),Qn):(Ct(),Dr)}function sAn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J;for(n=!1,C=ze(Ge(Q(t,(Nt(),m3)))),V=Ab*C,a=new G(t.b);a.aw+V&&(J=L.g+B.g,B.a=(B.g*B.a+L.g*L.a)/J,B.g=J,L.f=B,n=!0)),o=g,L=B;return n}function Emt(e,t,n,r,a,o,f){var g,w,E,C,L,B;for(B=new $8,E=t.Kc();E.Ob();)for(g=l(E.Pb(),853),L=new G(g.Rf());L.a0?g.a?(E=g.b.Mf().b,a>E&&(e.v||g.c.d.c.length==1?(f=(a-E)/2,g.d.d=f,g.d.a=f):(n=l(jt(g.c.d,0),187).Mf().b,r=(n-E)/2,g.d.d=b.Math.max(0,r),g.d.a=a-r-E))):g.d.a=e.t+a:W_(e.u)&&(o=$xe(g.b),o.d<0&&(g.d.d=-o.d),o.d+o.a>g.b.Mf().b&&(g.d.a=o.d+o.a-g.b.Mf().b))}function b0(){b0=U,qx=new Ha((pi(),XB),pt(1)),kK=new Ha(Ev,80),n8t=new Ha(ANe,5),G7t=new Ha(Z6,lT),e8t=new Ha(zge,pt(1)),t8t=new Ha(qge,(Hn(),!0)),nAe=new lw(50),J7t=new Ha(_2,nAe),Z_e=WB,rAe=_M,K7t=new Ha(Dge,!1),tAe=YB,X7t=C4,Q7t=Ub,Y7t=kv,W7t=r7,Z7t=S4,eAe=(Xxe(),j7t),Z0e=H7t,xK=R7t,J0e=$7t,iAe=q7t,s8t=AM,a8t=aY,i8t=QB,r8t=sY,sAe=(dx(),L4),new Ha(i9,sAe)}function cAn(e,t){var n;switch(gN(e)){case 6:return Ia(t);case 7:return fy(t);case 8:return hy(t);case 3:return Array.isArray(t)&&(n=gN(t),!(n>=14&&n<=16));case 11:return t!=null&&typeof t===Ole;case 12:return t!=null&&(typeof t===wP||typeof t==Ole);case 0:return iue(t,e.__elementTypeId$);case 2:return Rae(t)&&t.Tm!==xe;case 1:return Rae(t)&&t.Tm!==xe||iue(t,e.__elementTypeId$);default:return!0}}function Tmt(e,t){var n,r,a,o;return r=b.Math.min(b.Math.abs(e.c-(t.c+t.b)),b.Math.abs(e.c+e.b-t.c)),o=b.Math.min(b.Math.abs(e.d-(t.d+t.a)),b.Math.abs(e.d+e.a-t.d)),n=b.Math.abs(e.c+e.b/2-(t.c+t.b/2)),n>e.b/2+t.b/2||(a=b.Math.abs(e.d+e.a/2-(t.d+t.a/2)),a>e.a/2+t.a/2)?1:n==0&&a==0?0:n==0?o/a+1:a==0?r/n+1:b.Math.min(r/n,o/a)+1}function uAn(e,t){var n,r,a,o,f,g,w;for(o=0,g=0,w=0,a=new G(e.f.e);a.a0&&e.d!=(lA(),n1e)&&(g+=f*(r.d.a+e.a[t.a][r.a]*(t.d.a-r.d.a)/n)),n>0&&e.d!=(lA(),e1e)&&(w+=f*(r.d.b+e.a[t.a][r.a]*(t.d.b-r.d.b)/n)));switch(e.d.g){case 1:return new lt(g/o,t.d.b);case 2:return new lt(t.d.a,w/o);default:return new lt(g/o,w/o)}}function Cmt(e){var t,n,r,a,o,f;for(n=(!e.a&&(e.a=new Ys(qh,e,5)),e.a).i+2,f=new Bu(n),vt(f,new lt(e.j,e.k)),Is(new bn(null,(!e.a&&(e.a=new Ys(qh,e,5)),new kn(e.a,16))),new NXe(f)),vt(f,new lt(e.b,e.c)),t=1;t0&&(SN(w,!1,(Js(),uc)),SN(w,!0,vc)),Vu(t.g,new jet(e,n)),ki(e.g,t,n)}function Amt(){Amt=U;var e;for(r_e=he(le(Vr,1),di,28,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]),A0e=We(Vr,di,28,37,15,1),b6t=he(le(Vr,1),di,28,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]),i_e=We(nm,ahe,28,37,14,1),e=2;e<=36;e++)A0e[e]=ua(b.Math.pow(e,r_e[e])),i_e[e]=KN(EP,A0e[e])}function lAn(e){var t;if((!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i!=1)throw ue(new Yn(n4t+(!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i));return t=new bl,TN(l(Oe((!e.b&&(e.b=new Ln(_r,e,4,7)),e.b),0),84))&&Ka(t,bwt(e,TN(l(Oe((!e.b&&(e.b=new Ln(_r,e,4,7)),e.b),0),84)),!1)),TN(l(Oe((!e.c&&(e.c=new Ln(_r,e,5,8)),e.c),0),84))&&Ka(t,bwt(e,TN(l(Oe((!e.c&&(e.c=new Ln(_r,e,5,8)),e.c),0),84)),!0)),t}function Lmt(e,t){var n,r,a,o,f;for(t.d?a=e.a.c==(xd(),w3)?ka(t.b):qs(t.b):a=e.a.c==(xd(),T2)?ka(t.b):qs(t.b),o=!1,r=new hr(dr(a.a.Kc(),new j));jr(r);)if(n=l(xr(r),18),f=Rt(e.a.f[e.a.g[t.b.p].p]),!(!f&&!Do(n)&&n.c.i.c==n.d.i.c)&&!(Rt(e.a.n[e.a.g[t.b.p].p])||Rt(e.a.n[e.a.g[t.b.p].p]))&&(o=!0,W0(e.b,e.a.g[l7n(n,t.b).p])))return t.c=!0,t.a=n,t;return t.c=o,t.a=null,t}function wke(e,t,n){var r,a,o,f,g,w,E;if(r=n.gc(),r==0)return!1;if(e.Pj())if(w=e.Qj(),A8e(e,t,n),f=r==1?e.Ij(3,null,n.Kc().Pb(),t,w):e.Ij(5,null,n,t,w),e.Mj()){for(g=r<100?null:new nb(r),o=t+r,a=t;a0){for(f=0;f>16==-15&&e.Cb.Yh()&&qoe(new Foe(e.Cb,9,13,n,e.c,f2(Xl(l(e.Cb,62)),e))):De(e.Cb,90)&&e.Db>>16==-23&&e.Cb.Yh()&&(t=e.c,De(t,90)||(t=(Tn(),Kf)),De(n,90)||(n=(Tn(),Kf)),qoe(new Foe(e.Cb,9,10,n,t,f2(du(l(e.Cb,29)),e)))))),e.c}function dAn(e,t,n){var r,a,o,f,g,w,E,C,L;for(n.Ug("Hyperedge merging",1),FEn(e,t),w=new Ua(t.b,0);w.b0,g=HV(t,o),Iye(n?g.b:g.g,t),Z5(g).c.length==1&&Cs(r,g,r.c.b,r.c),a=new ca(o,t),gb(e.o,a),al(e.e.a,o))}function Bmt(e,t){var n,r,a,o,f,g,w;return r=b.Math.abs(mH(e.b).a-mH(t.b).a),g=b.Math.abs(mH(e.b).b-mH(t.b).b),a=0,w=0,n=1,f=1,r>e.b.b/2+t.b.b/2&&(a=b.Math.min(b.Math.abs(e.b.c-(t.b.c+t.b.b)),b.Math.abs(e.b.c+e.b.b-t.b.c)),n=1-a/r),g>e.b.a/2+t.b.a/2&&(w=b.Math.min(b.Math.abs(e.b.d-(t.b.d+t.b.a)),b.Math.abs(e.b.d+e.b.a-t.b.d)),f=1-w/g),o=b.Math.min(n,f),(1-o)*b.Math.sqrt(r*r+g*g)}function bAn(e){var t,n,r,a;for(Ale(e,e.e,e.f,(Sw(),Hb),!0,e.c,e.i),Ale(e,e.e,e.f,Hb,!1,e.c,e.i),Ale(e,e.e,e.f,K6,!0,e.c,e.i),Ale(e,e.e,e.f,K6,!1,e.c,e.i),fAn(e,e.c,e.e,e.f,e.i),r=new Ua(e.i,0);r.b=65;n--)nd[n]=n-65<<24>>24;for(r=122;r>=97;r--)nd[r]=r-97+26<<24>>24;for(a=57;a>=48;a--)nd[a]=a-48+52<<24>>24;for(nd[43]=62,nd[47]=63,o=0;o<=25;o++)N2[o]=65+o&Zs;for(f=26,w=0;f<=51;++f,w++)N2[f]=97+w&Zs;for(e=52,g=0;e<=61;++e,g++)N2[e]=48+g&Zs;N2[62]=43,N2[63]=47}function Fmt(e,t){var n,r,a,o,f,g;return a=y7e(e),g=y7e(t),a==g?e.e==t.e&&e.a<54&&t.a<54?e.ft.f?1:0:(r=e.e-t.e,n=(e.d>0?e.d:b.Math.floor((e.a-1)*Vwt)+1)-(t.d>0?t.d:b.Math.floor((t.a-1)*Vwt)+1),n>r+1?a:n0&&(f=K5(f,Wmt(r))),K1t(o,f))):aE&&(B=0,z+=w+t,w=0),KE(f,B,z),n=b.Math.max(n,B+C.a),w=b.Math.max(w,C.b),B+=C.a+t;return new lt(n+t,z+w+t)}function Eke(e,t){var n,r,a,o,f,g,w;if(!M1(e))throw ue(new nc(t4t));if(r=M1(e),o=r.g,a=r.f,o<=0&&a<=0)return Ct(),Pc;switch(g=e.i,w=e.j,t.g){case 2:case 1:if(g<0)return Ct(),er;if(g+e.g>o)return Ct(),ar;break;case 4:case 3:if(w<0)return Ct(),Qn;if(w+e.f>a)return Ct(),Dr}return f=(g+e.g/2)/o,n=(w+e.f/2)/a,f+n<=1&&f-n<=0?(Ct(),er):f+n>=1&&f-n>=0?(Ct(),ar):n<.5?(Ct(),Qn):(Ct(),Dr)}function wAn(e,t,n,r,a){var o,f;if(o=bo(va(t[0],Vo),va(r[0],Vo)),e[0]=Yr(o),o=bw(o,32),n>=a){for(f=1;f0&&(a.b[f++]=0,a.b[f++]=o.b[0]-1),t=1;t0&&(H(w,w.d-a.d),a.c==(J0(),qb)&&N(w,w.a-a.d),w.d<=0&&w.i>0&&Cs(t,w,t.c.b,t.c)));for(o=new G(e.f);o.a0&&(q(g,g.i-a.d),a.c==(J0(),qb)&&$(g,g.b-a.d),g.i<=0&&g.d>0&&Cs(n,g,n.c.b,n.c)))}function kAn(e,t,n,r,a){var o,f,g,w,E,C,L,B,z;for(Cn(),Vs(e,new tk),f=PO(e),z=new bt,B=new bt,g=null,w=0;f.b!=0;)o=l(f.b==0?null:(mr(f.b!=0),af(f,f.a.a)),163),!g||wl(g)*gh(g)/21&&(w>wl(g)*gh(g)/2||f.b==0)&&(L=new hV(B),C=wl(g)/gh(g),E=Lle(L,t,new A8,n,r,a,C),Oi(Y0(L.e),E),g=L,$n(z.c,L),w=0,B.c.length=0));return ra(z,B),z}function pu(e,t,n,r,a){Vg();var o,f,g,w,E,C,L;if(d5e(e,"src"),d5e(n,"dest"),L=bh(e),w=bh(n),I4e((L.i&4)!=0,"srcType is not an array"),I4e((w.i&4)!=0,"destType is not an array"),C=L.c,f=w.c,I4e(C.i&1?C==f:(f.i&1)==0,"Array types don't match"),cyn(e,t,n,r,a),!(C.i&1)&&L!=w)if(E=jm(e),o=jm(n),qe(e)===qe(n)&&tr;)Ts(o,g,E[--t]);else for(g=r+a;r0),r.a.Xb(r.c=--r.b),L>B+w&&ph(r);for(f=new G(z);f.a0),r.a.Xb(r.c=--r.b)}}function TAn(){Di();var e,t,n,r,a,o;if(upe)return upe;for(e=new _h(4),Ky(e,_b(p0e,!0)),nL(e,_b("M",!0)),nL(e,_b("C",!0)),o=new _h(4),r=0;r<11;r++)Eu(o,r,r);return t=new _h(4),Ky(t,_b("M",!0)),Eu(t,4448,4607),Eu(t,65438,65439),a=new B_(2),Qm(a,e),Qm(a,WM),n=new B_(2),n.Jm(oH(o,_b("L",!0))),n.Jm(t),n=new Ty(3,n),n=new f5e(a,n),upe=n,upe}function Gy(e,t){var n,r,a,o,f,g,w,E;for(n=new RegExp(t,"g"),w=We(zt,dt,2,0,6,1),r=0,E=e,o=null;;)if(g=n.exec(E),g==null||E==""){w[r]=E;break}else f=g.index,w[r]=(Ga(0,f,E.length),E.substr(0,f)),E=tf(E,f+g[0].length,E.length),n.lastIndex=0,o==E&&(w[r]=(Ga(0,1,E.length),E.substr(0,1)),E=(Xn(1,E.length+1),E.substr(1))),o=E,++r;if(e.length>0){for(a=w.length;a>0&&w[a-1]=="";)--a;a0&&(L-=r[0]+e.c,r[0]+=e.c),r[2]>0&&(L-=r[2]+e.c),r[1]=b.Math.max(r[1],L),hH(e.a[1],n.c+t.b+r[0]-(r[1]-L)/2,r[1]);for(o=e.a,g=0,E=o.length;g0?(e.n.c.length-1)*e.i:0,r=new G(e.n);r.a1)for(r=Rr(a,0);r.b!=r.d.c;)for(n=l(Br(r),235),o=0,w=new G(n.e);w.a0&&(t[0]+=e.c,L-=t[0]),t[2]>0&&(L-=t[2]+e.c),t[1]=b.Math.max(t[1],L),fH(e.a[1],r.d+n.d+t[0]-(t[1]-L)/2,t[1]);else for(V=r.d+n.d,z=r.a-n.d-n.a,f=e.a,w=0,C=f.length;w0||Fw(a.b.d,e.b.d+e.b.a)==0&&r.b<0||Fw(a.b.d+a.b.a,e.b.d)==0&&r.b>0){g=0;break}}else g=b.Math.min(g,Bpt(e,a,r));g=b.Math.min(g,zmt(e,o,g,r))}return g}function dP(e,t){var n,r,a,o,f,g,w;if(e.b<2)throw ue(new Yn("The vector chain must contain at least a source and a target point."));for(a=(mr(e.b!=0),l(e.a.a.c,8)),kO(t,a.a,a.b),w=new q8((!t.a&&(t.a=new Ys(qh,t,5)),t.a)),f=Rr(e,1);f.a=0&&o!=n))throw ue(new Yn(WP));for(a=0,w=0;wze(L1(f.g,f.d[0]).a)?(mr(w.b>0),w.a.Xb(w.c=--w.b),by(w,f),a=!0):g.e&&g.e.gc()>0&&(o=(!g.e&&(g.e=new bt),g.e).Mc(t),E=(!g.e&&(g.e=new bt),g.e).Mc(n),(o||E)&&((!g.e&&(g.e=new bt),g.e).Fc(f),++f.c));a||$n(r.c,f)}function DAn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe;return L=e.a.i+e.a.g/2,B=e.a.i+e.a.g/2,V=t.i+t.g/2,te=t.j+t.f/2,g=new lt(V,te),E=l(at(t,(pi(),n9)),8),E.a=E.a+L,E.b=E.b+B,o=(g.b-E.b)/(g.a-E.a),r=g.b-o*g.a,J=n.i+n.g/2,fe=n.j+n.f/2,w=new lt(J,fe),C=l(at(n,n9),8),C.a=C.a+L,C.b=C.b+B,f=(w.b-C.b)/(w.a-C.a),a=w.b-f*w.a,z=(r-a)/(f-o),E.a>>0,"0"+t.toString(16)),r="\\x"+tf(n,n.length-2,n.length)):e>=Io?(n=(t=e>>>0,"0"+t.toString(16)),r="\\v"+tf(n,n.length-6,n.length)):r=""+String.fromCharCode(e&Zs)}return r}function Umt(e){var t,n,r;if(P5(l(Q(e,(Nt(),Ms)),101)))for(n=new G(e.j);n.a=t.o&&n.f<=t.f||t.a*.5<=n.f&&t.a*1.5>=n.f){if(f=l(jt(t.n,t.n.c.length-1),209),f.e+f.d+n.g+a<=r&&(o=l(jt(t.n,t.n.c.length-1),209),o.f-e.f+n.f<=e.b||e.a.c.length==1))return y8e(t,n),!0;if(t.s+n.g<=r&&(t.t+t.d+n.f+a<=e.b||e.a.c.length==1))return vt(t.b,n),g=l(jt(t.n,t.n.c.length-1),209),vt(t.n,new PH(t.s,g.f+g.a+t.i,t.i)),exe(l(jt(t.n,t.n.c.length-1),209),n),jmt(t,n),!0}return!1}function Kmt(e,t,n){var r,a,o,f;return e.Pj()?(a=null,o=e.Qj(),r=e.Ij(1,f=Uoe(e,t,n),n,t,o),e.Mj()&&!(e.Yi()&&f!=null?Pi(f,n):qe(f)===qe(n))?(f!=null&&(a=e.Oj(f,a)),a=e.Nj(n,a),e.Tj()&&(a=e.Wj(f,n,a)),a?(a.nj(r),a.oj()):e.Jj(r)):(e.Tj()&&(a=e.Wj(f,n,a)),a?(a.nj(r),a.oj()):e.Jj(r)),f):(f=Uoe(e,t,n),e.Mj()&&!(e.Yi()&&f!=null?Pi(f,n):qe(f)===qe(n))&&(a=null,f!=null&&(a=e.Oj(f,null)),a=e.Nj(n,a),a&&a.oj()),f)}function RAn(e,t){var n,r,a,o,f;if(t.Ug("Path-Like Graph Wrapping",1),e.b.c.length==0){t.Vg();return}if(a=new M9e(e),f=(a.i==null&&(a.i=x7e(a,new Gj)),ze(a.i)*a.f),n=f/(a.i==null&&(a.i=x7e(a,new Gj)),ze(a.i)),a.b>n){t.Vg();return}switch(l(Q(e,(Nt(),hde)),351).g){case 2:o=new Wj;break;case 0:o=new ES;break;default:o=new Yj}if(r=o.og(e,a),!o.pg())switch(l(Q(e,EW),352).g){case 2:r=Fpt(a,r);break;case 1:r=Agt(a,r)}NLn(e,a,r),t.Vg()}function XA(e,t){var n,r,a,o,f,g,w,E;t%=24,e.q.getHours()!=t&&(r=new b.Date(e.q.getTime()),r.setDate(r.getDate()+1),g=e.q.getTimezoneOffset()-r.getTimezoneOffset(),g>0&&(w=g/60|0,E=g%60,a=e.q.getDate(),n=e.q.getHours(),n+w>=24&&++a,o=new b.Date(e.q.getFullYear(),e.q.getMonth(),a,t+w,e.q.getMinutes()+E,e.q.getSeconds(),e.q.getMilliseconds()),e.q.setTime(o.getTime()))),f=e.q.getTime(),e.q.setTime(f+36e5),e.q.getHours()!=t&&e.q.setTime(f)}function jAn(e,t){var n,r,a,o;if(J2n(e.d,e.e),e.c.a.$b(),ze(Ge(Q(t.j,(Nt(),hW))))!=0||ze(Ge(Q(t.j,hW)))!=0)for(n=y6,qe(Q(t.j,yg))!==qe((Ed(),E2))&&rt(t.j,(ft(),jb),(Hn(),!0)),o=l(Q(t.j,nM),17).a,a=0;aa&&++E,vt(f,(Sn(g+E,t.c.length),l(t.c[g+E],17))),w+=(Sn(g+E,t.c.length),l(t.c[g+E],17)).a-r,++n;n=te&&e.e[w.p]>V*e.b||Me>=n*te)&&($n(B.c,g),g=new bt,Ka(f,o),o.a.$b(),E-=C,z=b.Math.max(z,E*e.b+J),E+=Me,Te=Me,Me=0,C=0,J=0);return new ca(z,B)}function dle(e){var t,n,r,a,o,f,g;if(!e.d){if(g=new Jne,t=qM,o=t.a.zc(e,t),o==null){for(r=new or(dc(e));r.e!=r.i.gc();)n=l(gr(r),29),As(g,dle(n));t.a.Bc(e)!=null,t.a.gc()==0}for(f=g.i,a=(!e.q&&(e.q=new nt(Uf,e,11,10)),new or(e.q));a.e!=a.i.gc();++f)l(gr(a),411);As(g,(!e.q&&(e.q=new nt(Uf,e,11,10)),e.q)),Iy(g),e.d=new N5((l(Oe(tt((lb(),Vn).o),9),19),g.i),g.g),e.e=l(g.g,688),e.e==null&&(e.e=X_t),Yl(e).b&=-17}return e.d}function XE(e,t,n,r){var a,o,f,g,w,E;if(E=Wu(e.e.Dh(),t),w=0,a=l(e.g,124),Fo(),l(t,69).xk()){for(f=0;f1||V==-1)if(L=l(J,71),B=l(C,71),L.dc())B.$b();else for(f=!!Ro(t),o=0,g=e.a?L.Kc():L.Ii();g.Ob();)E=l(g.Pb(),58),a=l(B1(e,E),58),a?(f?(w=B.dd(a),w==-1?B.Gi(o,a):o!=w&&B.Ui(o,a)):B.Gi(o,a),++o):e.b&&!f&&(B.Gi(o,E),++o);else J==null?C.Wb(null):(a=B1(e,J),a==null?e.b&&!Ro(t)&&C.Wb(J):C.Wb(a))}function VAn(e,t){var n,r,a,o,f,g,w,E;for(n=new gZ,a=new hr(dr(ka(t).a.Kc(),new j));jr(a);)if(r=l(xr(a),18),!Do(r)&&(g=r.c.i,Bxe(g,SK))){if(E=tke(e,g,SK,CK),E==-1)continue;n.b=b.Math.max(n.b,E),!n.a&&(n.a=new bt),vt(n.a,g)}for(f=new hr(dr(qs(t).a.Kc(),new j));jr(f);)if(o=l(xr(f),18),!Do(o)&&(w=o.d.i,Bxe(w,CK))){if(E=tke(e,w,CK,SK),E==-1)continue;n.d=b.Math.max(n.d,E),!n.c&&(n.c=new bt),vt(n.c,w)}return n}function UAn(e,t,n,r){var a,o,f,g,w,E,C;if(n.d.i!=t.i){for(a=new op(e),x(a,(Zn(),Aa)),rt(a,(ft(),zi),n),rt(a,(Nt(),Ms),(Ra(),Mu)),$n(r.c,a),f=new gu,Mc(f,a),la(f,(Ct(),er)),g=new gu,Mc(g,a),la(g,ar),C=n.d,Fa(n,f),o=new Tw,pc(o,n),rt(o,cc,null),po(o,g),Fa(o,C),E=new Ua(n.b,0);E.b1e6)throw ue(new qz("power of ten too big"));if(e<=Ii)return sx(iP($x[1],t),t);for(r=iP($x[1],Ii),a=r,n=Zc(e-Ii),t=ua(e%Ii);iu(n,Ii)>0;)a=K5(a,r),n=Df(n,Ii);for(a=K5(a,iP($x[1],t)),a=sx(a,Ii),n=Zc(e-Ii);iu(n,Ii)>0;)a=sx(a,Ii),n=Df(n,Ii);return a=sx(a,t),a}function Ymt(e){var t,n,r,a,o,f,g,w,E,C;for(w=new G(e.a);w.aE&&r>E)C=g,E=ze(t.p[g.p])+ze(t.d[g.p])+g.o.b+g.d.a;else{a=!1,n._g()&&n.bh("bk node placement breaks on "+g+" which should have been after "+C);break}if(!a)break}return n._g()&&n.bh(t+" is feasible: "+a),a}function _ke(e,t,n,r){var a,o,f,g,w,E,C,L,B;if(o=new op(e),x(o,(Zn(),Au)),rt(o,(Nt(),Ms),(Ra(),Mu)),a=0,t){for(f=new gu,rt(f,(ft(),zi),t),rt(o,zi,t.i),la(f,(Ct(),er)),Mc(f,o),B=kd(t.e),E=B,C=0,L=E.length;C0){if(a<0&&C.a&&(a=w,o=E[0],r=0),a>=0){if(g=C.b,w==a&&(g-=r++,g==0))return 0;if(!Zvt(t,E,C,g,f)){w=a-1,E[0]=o;continue}}else if(a=-1,!Zvt(t,E,C,0,f))return 0}else{if(a=-1,co(C.c,0)==32){if(L=E[0],eht(t,E),E[0]>L)continue}else if(Opn(t,C.c,E[0])){E[0]+=C.c.length;continue}return 0}return PDn(f,n)?E[0]:0}function QAn(e,t,n){var r,a,o,f,g,w,E,C,L,B;for(C=new gH(new Dz(n)),g=We(ih,pg,28,e.f.e.c.length,16,1),l5e(g,g.length),n[t.a]=0,E=new G(e.f.e);E.a=0&&!r6(e,C,L);)--L;a[C]=L}for(z=0;z=0&&!r6(e,g,V);)--g;o[V]=g}for(w=0;wt[B]&&Br[w]&&FU(e,w,B,!1,!0)}function Ake(e){var t,n,r,a,o,f,g,w;n=Rt(Bt(Q(e,(b0(),K7t)))),o=e.a.c.d,g=e.a.d.d,n?(f=md(ma(new lt(g.a,g.b),o),.5),w=md(Ja(e.e),.5),t=ma(Oi(new lt(o.a,o.b),f),w),Fye(e.d,t)):(a=ze(Ge(Q(e.a,n8t))),r=e.d,o.a>=g.a?o.b>=g.b?(r.a=g.a+(o.a-g.a)/2+a,r.b=g.b+(o.b-g.b)/2-a-e.e.b):(r.a=g.a+(o.a-g.a)/2+a,r.b=o.b+(g.b-o.b)/2+a):o.b>=g.b?(r.a=o.a+(g.a-o.a)/2+a,r.b=g.b+(o.b-g.b)/2+a):(r.a=o.a+(g.a-o.a)/2+a,r.b=o.b+(g.b-o.b)/2-a-e.e.b))}function JA(e){var t,n,r,a,o,f,g,w;if(!e.f){if(w=new _I,g=new _I,t=qM,f=t.a.zc(e,t),f==null){for(o=new or(dc(e));o.e!=o.i.gc();)a=l(gr(o),29),As(w,JA(a));t.a.Bc(e)!=null,t.a.gc()==0}for(r=(!e.s&&(e.s=new nt(dl,e,21,17)),new or(e.s));r.e!=r.i.gc();)n=l(gr(r),179),De(n,102)&&qr(g,l(n,19));Iy(g),e.r=new zit(e,(l(Oe(tt((lb(),Vn).o),6),19),g.i),g.g),As(w,e.r),Iy(w),e.f=new N5((l(Oe(tt(Vn.o),5),19),w.i),w.g),Yl(e).b&=-3}return e.f}function Qmt(e){sw(e,new Xm(nw(Zv(tw(ew(new x1,nv),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new z0))),gt(e,nv,_he,It(X_e)),gt(e,nv,Ahe,It(W0e)),gt(e,nv,Ox,It(I7t)),gt(e,nv,Xw,It(Y_e)),gt(e,nv,bEe,It(B7t)),gt(e,nv,mEe,It(P7t)),gt(e,nv,pEe,It(F7t)),gt(e,nv,vEe,It(N7t)),gt(e,nv,CEe,It(O7t)),gt(e,nv,SEe,It(K0e)),gt(e,nv,_Ee,It(W_e)),gt(e,nv,AEe,It(vK))}function zU(){zU=U,bPe=he(le(kf,1),Ad,28,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]),S_t=new RegExp(`[ -\r\f]+`);try{jM=he(le(OOn,1),Rn,2114,0,[new KI((iye(),KV("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",MO((zz(),zz(),NL))))),new KI(KV("yyyy-MM-dd'T'HH:mm:ss'.'SSS",MO(NL))),new KI(KV("yyyy-MM-dd'T'HH:mm:ss",MO(NL))),new KI(KV("yyyy-MM-dd'T'HH:mm",MO(NL))),new KI(KV("yyyy-MM-dd",MO(NL)))])}catch(e){if(e=bs(e),!De(e,82))throw ue(e)}}function ZAn(e,t){var n,r,a,o;if(a=Jl(e.d,1)!=0,r=cke(e,t),r==0&&Rt(Bt(Q(t.j,(ft(),jb)))))return 0;!Rt(Bt(Q(t.j,(ft(),jb))))&&!Rt(Bt(Q(t.j,j6)))||qe(Q(t.j,(Nt(),yg)))===qe((Ed(),E2))?t.c.mg(t.e,a):a=Rt(Bt(Q(t.j,jb))),cP(e,t,a,!0),Rt(Bt(Q(t.j,j6)))&&rt(t.j,j6,(Hn(),!1)),Rt(Bt(Q(t.j,jb)))&&(rt(t.j,jb,(Hn(),!1)),rt(t.j,j6,!0)),n=cke(e,t);do{if(w7e(e),n==0)return 0;a=!a,o=n,cP(e,t,a,!1),n=cke(e,t)}while(o>n);return o}function Jmt(e,t){var n,r,a,o;if(a=Jl(e.d,1)!=0,r=xU(e,t),r==0&&Rt(Bt(Q(t.j,(ft(),jb)))))return 0;!Rt(Bt(Q(t.j,(ft(),jb))))&&!Rt(Bt(Q(t.j,j6)))||qe(Q(t.j,(Nt(),yg)))===qe((Ed(),E2))?t.c.mg(t.e,a):a=Rt(Bt(Q(t.j,jb))),cP(e,t,a,!0),Rt(Bt(Q(t.j,j6)))&&rt(t.j,j6,(Hn(),!1)),Rt(Bt(Q(t.j,jb)))&&(rt(t.j,jb,(Hn(),!1)),rt(t.j,j6,!0)),n=xU(e,t);do{if(w7e(e),n==0)return 0;a=!a,o=n,cP(e,t,a,!1),n=xU(e,t)}while(o>n);return o}function Lke(e,t,n,r){var a,o,f,g,w,E,C,L,B;return w=ma(new lt(n.a,n.b),e),E=w.a*t.b-w.b*t.a,C=t.a*r.b-t.b*r.a,L=(w.a*r.b-w.b*r.a)/C,B=E/C,C==0?E==0?(a=Oi(new lt(n.a,n.b),md(new lt(r.a,r.b),.5)),o=pb(e,a),f=pb(Oi(new lt(e.a,e.b),t),a),g=b.Math.sqrt(r.a*r.a+r.b*r.b)*.5,o=0&&L<=1&&B>=0&&B<=1?Oi(new lt(e.a,e.b),md(new lt(t.a,t.b),L)):null}function eLn(e,t,n){var r,a,o,f,g;if(r=l(Q(e,(Nt(),J1e)),21),n.a>t.a&&(r.Hc((Ym(),EM))?e.c.a+=(n.a-t.a)/2:r.Hc(TM)&&(e.c.a+=n.a-t.a)),n.b>t.b&&(r.Hc((Ym(),SM))?e.c.b+=(n.b-t.b)/2:r.Hc(CM)&&(e.c.b+=n.b-t.b)),l(Q(e,(ft(),Lu)),21).Hc((Ho(),vf))&&(n.a>t.a||n.b>t.b))for(g=new G(e.a);g.at.a&&(r.Hc((Ym(),EM))?e.c.a+=(n.a-t.a)/2:r.Hc(TM)&&(e.c.a+=n.a-t.a)),n.b>t.b&&(r.Hc((Ym(),SM))?e.c.b+=(n.b-t.b)/2:r.Hc(CM)&&(e.c.b+=n.b-t.b)),l(Q(e,(ft(),Lu)),21).Hc((Ho(),vf))&&(n.a>t.a||n.b>t.b))for(f=new G(e.a);f.a0?e.i:0)>t&&w>0&&(o=0,f+=w+e.i,a=b.Math.max(a,B),r+=w+e.i,w=0,B=0,n&&(++L,vt(e.n,new PH(e.s,f,e.i))),g=0),B+=E.g+(g>0?e.i:0),w=b.Math.max(w,E.f),n&&exe(l(jt(e.n,L),209),E),o+=E.g+(g>0?e.i:0),++g;return a=b.Math.max(a,B),r+=w,n&&(e.r=a,e.d=r,ixe(e.j)),new ef(e.s,e.t,a,r)}function gle(e){var t,n,r,a,o,f,g,w,E,C,L,B;for(e.b=!1,L=gs,w=ia,B=gs,E=ia,r=e.e.a.ec().Kc();r.Ob();)for(n=l(r.Pb(),272),a=n.a,L=b.Math.min(L,a.c),w=b.Math.max(w,a.c+a.b),B=b.Math.min(B,a.d),E=b.Math.max(E,a.d+a.a),f=new G(n.c);f.ae.o.a&&(C=(w-e.o.a)/2,g.b=b.Math.max(g.b,C),g.c=b.Math.max(g.c,C))}}function iLn(e){var t,n,r,a,o,f,g,w;for(o=new Kot,Pln(o,(hx(),dSt)),r=(a=ace(e,We(zt,dt,2,0,6,1)),new kr(new Il(new ase(e,a).b)));r.bg?1:-1:W7e(e.a,t.a,o),a==-1)L=-w,C=f==w?Doe(t.a,g,e.a,o):Ooe(t.a,g,e.a,o);else if(L=f,f==w){if(a==0)return Cd(),BL;C=Doe(e.a,o,t.a,g)}else C=Ooe(e.a,o,t.a,g);return E=new Im(L,C.length,C),iA(E),E}function sLn(e,t){var n,r,a,o;if(o=Pmt(t),!t.c&&(t.c=new nt(Hl,t,9,9)),Is(new bn(null,(!t.c&&(t.c=new nt(Hl,t,9,9)),new kn(t.c,16))),new $We(o)),a=l(Q(o,(ft(),Lu)),21),QMn(t,a),a.Hc((Ho(),vf)))for(r=new or((!t.c&&(t.c=new nt(Hl,t,9,9)),t.c));r.e!=r.i.gc();)n=l(gr(r),123),SDn(e,t,o,n);return l(at(t,(Nt(),bv)),181).gc()!=0&&_bt(t,o),Rt(Bt(Q(o,XMe)))&&a.Fc(nW),ns(o,CB)&&NJe(new D8e(ze(Ge(Q(o,CB)))),o),qe(at(t,p4))===qe((rp(),A2))?XIn(e,t,o):NIn(e,t,o),o}function aLn(e){var t,n,r,a,o,f,g,w;for(a=new G(e.b);a.a0?tf(n.a,0,o-1):""):(Ga(0,o-1,e.length),e.substr(0,o-1)):n?n.a:e}function oLn(e,t){var n,r,a,o,f,g,w;for(t.Ug("Sort By Input Model "+Q(e,(Nt(),yg)),1),a=0,r=new G(e.b);r.a=e.b.length?(o[a++]=f.b[r++],o[a++]=f.b[r++]):r>=f.b.length?(o[a++]=e.b[n++],o[a++]=e.b[n++]):f.b[r]0?e.i:0)),++t;for(g8e(e.n,w),e.d=n,e.r=r,e.g=0,e.f=0,e.e=0,e.o=gs,e.p=gs,o=new G(e.b);o.a0&&(a=(!e.n&&(e.n=new nt(ec,e,1,7)),l(Oe(e.n,0),135)).a,!a||hi(hi((t.a+=' "',t),a),'"'))),n=(!e.b&&(e.b=new Ln(_r,e,4,7)),!(e.b.i<=1&&(!e.c&&(e.c=new Ln(_r,e,5,8)),e.c.i<=1))),n?t.a+=" [":t.a+=" ",hi(t,Eye(new Zie,new or(e.b))),n&&(t.a+="]"),t.a+=Phe,n&&(t.a+="["),hi(t,Eye(new Zie,new or(e.c))),n&&(t.a+="]"),t.a)}function uLn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn;for(Ze=e.c,ot=t.c,n=gc(Ze.a,e,0),r=gc(ot.a,t,0),Me=l(Rw(e,(qo(),$l)).Kc().Pb(),12),an=l(Rw(e,zu).Kc().Pb(),12),$e=l(Rw(t,$l).Kc().Pb(),12),Bn=l(Rw(t,zu).Kc().Pb(),12),fe=kd(Me.e),St=kd(an.g),Te=kd($e.e),cn=kd(Bn.g),Fy(e,r,ot),f=Te,C=0,V=f.length;CC?new Pm((J0(),E4),n,t,E-C):E>0&&C>0&&(new Pm((J0(),E4),t,n,0),new Pm(E4,n,t,0))),f)}function fLn(e,t,n){var r,a,o;for(e.a=new bt,o=Rr(t.b,0);o.b!=o.d.c;){for(a=l(Br(o),40);l(Q(a,(Hc(),$d)),17).a>e.a.c.length-1;)vt(e.a,new ca(y6,hCe));r=l(Q(a,$d),17).a,n==(Js(),uc)||n==vc?(a.e.aze(Ge(l(jt(e.a,r),42).b))&&ct(l(jt(e.a,r),42),a.e.a+a.f.a)):(a.e.bze(Ge(l(jt(e.a,r),42).b))&&ct(l(jt(e.a,r),42),a.e.b+a.f.b))}}function tvt(e,t,n,r){var a,o,f,g,w,E,C;if(o=zV(r),g=Rt(Bt(Q(r,(Nt(),VMe)))),(g||Rt(Bt(Q(e,bW))))&&!P5(l(Q(e,Ms),101)))a=gx(o),w=vke(e,n,n==(qo(),zu)?a:BN(a));else switch(w=new gu,Mc(w,e),t?(C=w.n,C.a=t.a-e.n.a,C.b=t.b-e.n.b,opt(C,0,0,e.o.a,e.o.b),la(w,kmt(w,o))):(a=gx(o),la(w,n==(qo(),zu)?a:BN(a))),f=l(Q(r,(ft(),Lu)),21),E=w.j,o.g){case 2:case 1:(E==(Ct(),Qn)||E==Dr)&&f.Fc((Ho(),B6));break;case 4:case 3:(E==(Ct(),ar)||E==er)&&f.Fc((Ho(),B6))}return w}function nvt(e,t){var n,r,a,o,f,g;for(f=new qm(new Sr(e.f.b).a);f.b;){if(o=Nw(f),a=l(o.ld(),602),t==1){if(a.Af()!=(Js(),wf)&&a.Af()!=Q1)continue}else if(a.Af()!=(Js(),uc)&&a.Af()!=vc)continue;switch(r=l(l(o.md(),42).b,86),g=l(l(o.md(),42).a,194),n=g.c,a.Af().g){case 2:r.g.c=e.e.a,r.g.b=b.Math.max(1,r.g.b+n);break;case 1:r.g.c=r.g.c+n,r.g.b=b.Math.max(1,r.g.b-n);break;case 4:r.g.d=e.e.b,r.g.a=b.Math.max(1,r.g.a+n);break;case 3:r.g.d=r.g.d+n,r.g.a=b.Math.max(1,r.g.a-n)}}}function dLn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J;for(g=We(Vr,di,28,t.b.c.length,15,1),E=We(l1e,it,273,t.b.c.length,0,1),w=We(wg,m2,10,t.b.c.length,0,1),L=e.a,B=0,z=L.length;B0&&w[r]&&(V=j5(e.b,w[r],a)),J=b.Math.max(J,a.c.c.b+V);for(o=new G(C.e);o.a1)throw ue(new Yn(ZP));w||(o=sg(t,r.Kc().Pb()),f.Fc(o))}return N7e(e,t9e(e,t,n),f)}function HU(e,t,n){var r,a,o,f,g,w,E,C;if(up(e.e,t))w=(Fo(),l(t,69).xk()?new nH(t,e):new yO(t,e)),EU(w.c,w.b),F_(w,l(n,16));else{for(C=Wu(e.e.Dh(),t),r=l(e.g,124),f=0;f"}w!=null&&(t.a+=""+w)}else e.e?(g=e.e.zb,g!=null&&(t.a+=""+g)):(t.a+="?",e.b?(t.a+=" super ",wle(e.b,t)):e.f&&(t.a+=" extends ",wle(e.f,t)))}function wLn(e){e.b=null,e.a=null,e.o=null,e.q=null,e.v=null,e.w=null,e.B=null,e.p=null,e.Q=null,e.R=null,e.S=null,e.T=null,e.U=null,e.V=null,e.W=null,e.bb=null,e.eb=null,e.ab=null,e.H=null,e.db=null,e.c=null,e.d=null,e.f=null,e.n=null,e.r=null,e.s=null,e.u=null,e.G=null,e.J=null,e.e=null,e.j=null,e.i=null,e.g=null,e.k=null,e.t=null,e.F=null,e.I=null,e.L=null,e.M=null,e.O=null,e.P=null,e.$=null,e.N=null,e.Z=null,e.cb=null,e.K=null,e.D=null,e.A=null,e.C=null,e._=null,e.fb=null,e.X=null,e.Y=null,e.gb=!1,e.hb=!1}function yLn(e){var t,n,r,a;if(r=Dle((!e.c&&(e.c=XO(Zc(e.f))),e.c),0),e.e==0||e.a==0&&e.f!=-1&&e.e<0)return r;if(t=y7e(e)<0?1:0,n=e.e,a=(r.length+1+b.Math.abs(ua(e.e)),new S5),t==1&&(a.a+="-"),e.e>0)if(n-=r.length-t,n>=0){for(a.a+="0.";n>lv.length;n-=lv.length)Qit(a,lv);Prt(a,lv,ua(n)),hi(a,(Xn(t,r.length+1),r.substr(t)))}else n=t-n,hi(a,tf(r,t,ua(n))),a.a+=".",hi(a,w5e(r,ua(n)));else{for(hi(a,(Xn(t,r.length+1),r.substr(t)));n<-lv.length;n+=lv.length)Qit(a,lv);Prt(a,lv,ua(-n))}return a.a}function yle(e){var t,n,r,a,o,f,g,w,E;return!(e.k!=(Zn(),Ps)||e.j.c.length<=1||(o=l(Q(e,(Nt(),Ms)),101),o==(Ra(),Mu))||(a=(By(),(e.q?e.q:(Cn(),Cn(),mg))._b(g3)?r=l(Q(e,g3),203):r=l(Q(eo(e),eM),203),r),a==_W)||!(a==G6||a==U6)&&(f=ze(Ge(Py(e,tM))),t=l(Q(e,_B),140),!t&&(t=new n4e(f,f,f,f)),E=Oc(e,(Ct(),er)),w=t.d+t.a+(E.gc()-1)*f,w>e.o.b||(n=Oc(e,ar),g=t.d+t.a+(n.gc()-1)*f,g>e.o.b)))}function xLn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te;t.Ug("Orthogonal edge routing",1),E=ze(Ge(Q(e,(Nt(),V6)))),n=ze(Ge(Q(e,q6))),r=ze(Ge(Q(e,vv))),B=new Hae(0,n),te=0,f=new Ua(e.b,0),g=null,C=null,w=null,L=null;do C=f.b0?(z=(V-1)*n,g&&(z+=r),C&&(z+=r),zt||Rt(Bt(at(w,(z1(),$B)))))&&(a=0,o+=C.b+n,$n(L.c,C),C=new Q5e(o,n),r=new kce(0,C.f,C,n),bV(C,r),a=0),r.b.c.length==0||!Rt(Bt(at(ds(w),(z1(),hge))))&&(w.f>=r.o&&w.f<=r.f||r.a*.5<=w.f&&r.a*1.5>=w.f)?y8e(r,w):(f=new kce(r.s+r.r+n,C.f,C,n),bV(C,f),y8e(f,w)),a=w.i+w.g;return $n(L.c,C),L}function eL(e){var t,n,r,a;if(!(e.b==null||e.b.length<=2)&&!e.a){for(t=0,a=0;a=e.b[a+1])a+=2;else if(n0)for(r=new Ol(l($i(e.a,o),21)),Cn(),Vs(r,new GI(t)),a=new Ua(o.b,0);a.b0&&r>=-6?r>=0?EO(o,n-ua(e.e),String.fromCharCode(46)):(hce(o,t-1,t-1,"0."),EO(o,t+1,If(lv,0,-ua(r)-1))):(n-t>=1&&(EO(o,t,String.fromCharCode(46)),++n),EO(o,n,String.fromCharCode(69)),r>0&&EO(o,++n,String.fromCharCode(43)),EO(o,++n,""+Y_(Zc(r)))),e.g=o.a,e.g))}function DLn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St;r=ze(Ge(Q(t,(Nt(),KMe)))),Ze=l(Q(t,nM),17).a,B=4,a=3,ot=20/Ze,z=!1,w=0,f=Ii;do{for(o=w!=1,L=w!=0,St=0,te=e.a,Te=0,$e=te.length;Te<$e;++Te)V=te[Te],V.f=null,vDn(e,V,o,L,r),St+=b.Math.abs(V.a);do g=sAn(e,t);while(g);for(J=e.a,fe=0,Me=J.length;feZe)?(w=2,f=Ii):w==0?(w=1,f=St):(w=0,f=St)):(z=St>=f||f-St0?1:uw(isNaN(r),isNaN(0)))>=0^(f0(Nd),(b.Math.abs(g)<=Nd||g==0||isNaN(g)&&isNaN(0)?0:g<0?-1:g>0?1:uw(isNaN(g),isNaN(0)))>=0)?b.Math.max(g,r):(f0(Nd),(b.Math.abs(r)<=Nd||r==0||isNaN(r)&&isNaN(0)?0:r<0?-1:r>0?1:uw(isNaN(r),isNaN(0)))>0?b.Math.sqrt(g*g+r*r):-b.Math.sqrt(g*g+r*r))}function Qm(e,t){var n,r,a,o,f,g;if(t){if(!e.a&&(e.a=new jz),e.e==2){Rz(e.a,t);return}if(t.e==1){for(a=0;a=Io?Xo(n,w8e(r)):Uk(n,r&Zs),f=new coe(10,null,0),pgn(e.a,f,g-1)):(n=(f.Mm().length+o,new h_),Xo(n,f.Mm())),t.e==0?(r=t.Km(),r>=Io?Xo(n,w8e(r)):Uk(n,r&Zs)):Xo(n,t.Mm()),l(f,530).b=n.a}}function NLn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te;if(!n.dc()){for(g=0,B=0,r=n.Kc(),V=l(r.Pb(),17).a;g1&&(w=E.Hg(w,e.a,g));return w.c.length==1?l(jt(w,w.c.length-1),238):w.c.length==2?ELn((Sn(0,w.c.length),l(w.c[0],238)),(Sn(1,w.c.length),l(w.c[1],238)),f,o):null}function RLn(e,t,n){var r,a,o,f,g,w,E;for(n.Ug("Find roots",1),e.a.c.length=0,a=Rr(t.b,0);a.b!=a.d.c;)r=l(Br(a),40),r.b.b==0&&(rt(r,(Qi(),Vb),(Hn(),!0)),vt(e.a,r));switch(e.a.c.length){case 0:o=new xce(0,t,"DUMMY_ROOT"),rt(o,(Qi(),Vb),(Hn(),!0)),rt(o,Nde,!0),ci(t.b,o);break;case 1:break;default:for(f=new xce(0,t,DG),w=new G(e.a);w.a=b.Math.abs(r.b)?(r.b=0,o.d+o.a>f.d&&o.df.c&&o.c0){if(t=new eye(e.i,e.g),n=e.i,o=n<100?null:new nb(n),e.Tj())for(r=0;r0){for(g=e.g,E=e.i,uA(e),o=E<100?null:new nb(E),r=0;r>13|(e.m&15)<<9,a=e.m>>4&8191,o=e.m>>17|(e.h&255)<<5,f=(e.h&1048320)>>8,g=t.l&8191,w=t.l>>13|(t.m&15)<<9,E=t.m>>4&8191,C=t.m>>17|(t.h&255)<<5,L=(t.h&1048320)>>8,cn=n*g,an=r*g,Bn=a*g,jn=o*g,ur=f*g,w!=0&&(an+=n*w,Bn+=r*w,jn+=a*w,ur+=o*w),E!=0&&(Bn+=n*E,jn+=r*E,ur+=a*E),C!=0&&(jn+=n*C,ur+=r*C),L!=0&&(ur+=n*L),z=cn&eh,V=(an&511)<<13,B=z+V,te=cn>>22,fe=an>>9,Te=(Bn&262143)<<4,Me=(jn&31)<<17,J=te+fe+Te+Me,Ze=Bn>>18,ot=jn>>5,St=(ur&4095)<<8,$e=Ze+ot+St,J+=B>>22,B&=eh,$e+=J>>22,J&=eh,$e&=hp,qu(B,J,$e)}function dvt(e){var t,n,r,a,o,f,g;if(g=l(jt(e.j,0),12),g.g.c.length!=0&&g.e.c.length!=0)throw ue(new nc("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(g.g.c.length!=0){for(o=gs,n=new G(g.g);n.a4)if(e.fk(t)){if(e.al()){if(a=l(t,54),r=a.Eh(),w=r==e.e&&(e.ml()?a.yh(a.Fh(),e.il())==e.jl():-1-a.Fh()==e.Lj()),e.nl()&&!w&&!r&&a.Jh()){for(o=0;o0&&gpt(e,g,L);for(a=new G(L);a.ae.d[f.p]&&(n+=f6e(e.b,o)*l(w.b,17).a,gb(e.a,pt(o)));for(;!l_(e.a);)U6e(e.b,l(X8(e.a),17).a)}return n}function HLn(e,t){var n,r,a,o,f,g,w,E,C,L;if(C=l(Q(e,(ft(),Wc)),64),r=l(jt(e.j,0),12),C==(Ct(),Qn)?la(r,Dr):C==Dr&&la(r,Qn),l(Q(t,(Nt(),bv)),181).Hc((mh(),Cv))){if(w=ze(Ge(Q(e,GT))),E=ze(Ge(Q(e,KT))),f=ze(Ge(Q(e,y4))),g=l(Q(t,v4),21),g.Hc((Rl(),vp)))for(n=E,L=e.o.a/2-r.n.a,o=new G(r.f);o.a0&&(E=e.n.a/o);break;case 2:case 4:a=e.i.o.b,a>0&&(E=e.n.b/a)}rt(e,(ft(),l3),E)}if(w=e.o,f=e.a,r)f.a=r.a,f.b=r.b,e.d=!0;else if(t!=Z1&&t!=Wb&&g!=Pc)switch(g.g){case 1:f.a=w.a/2;break;case 2:f.a=w.a,f.b=w.b/2;break;case 3:f.a=w.a/2,f.b=w.b;break;case 4:f.b=w.b/2}else f.a=w.a/2,f.b=w.b/2}function tL(e){var t,n,r,a,o,f,g,w,E,C;if(e.Pj())if(C=e.Ej(),w=e.Qj(),C>0)if(t=new T7e(e.pj()),n=C,o=n<100?null:new nb(n),AO(e,n,t.g),a=n==1?e.Ij(4,Oe(t,0),null,0,w):e.Ij(6,t,null,-1,w),e.Mj()){for(r=new or(t);r.e!=r.i.gc();)o=e.Oj(gr(r),o);o?(o.nj(a),o.oj()):e.Jj(a)}else o?(o.nj(a),o.oj()):e.Jj(a);else AO(e,e.Ej(),e.Fj()),e.Jj(e.Ij(6,(Cn(),_o),null,-1,w));else if(e.Mj())if(C=e.Ej(),C>0){for(g=e.Fj(),E=C,AO(e,C,g),o=E<100?null:new nb(E),r=0;r1&&wl(f)*gh(f)/2>g[0]){for(o=0;og[o];)++o;V=new Zp(J,0,o+1),L=new hV(V),C=wl(f)/gh(f),w=Lle(L,t,new A8,n,r,a,C),Oi(Y0(L.e),w),K8($E(B,L),aT),z=new Zp(J,o+1,J.c.length),cxe(B,z),J.c.length=0,E=0,gst(g,g.length,0)}else te=B.b.c.length==0?null:jt(B.b,0),te!=null&&rce(B,0),E>0&&(g[E]=g[E-1]),g[E]+=wl(f)*gh(f),++E,$n(J.c,f);return J}function YLn(e,t){var n,r,a,o;n=t.b,o=new Ol(n.j),a=0,r=n.j,r.c.length=0,mw(l(zm(e.b,(Ct(),Qn),(Ow(),o3)),15),n),a=zN(o,a,new Gv,r),mw(l(zm(e.b,Qn,Rb),15),n),a=zN(o,a,new bee,r),mw(l(zm(e.b,Qn,a3),15),n),mw(l(zm(e.b,ar,o3),15),n),mw(l(zm(e.b,ar,Rb),15),n),a=zN(o,a,new $j,r),mw(l(zm(e.b,ar,a3),15),n),mw(l(zm(e.b,Dr,o3),15),n),a=zN(o,a,new zj,r),mw(l(zm(e.b,Dr,Rb),15),n),a=zN(o,a,new qj,r),mw(l(zm(e.b,Dr,a3),15),n),mw(l(zm(e.b,er,o3),15),n),a=zN(o,a,new Bj,r),mw(l(zm(e.b,er,Rb),15),n),mw(l(zm(e.b,er,a3),15),n)}function XLn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z;for(g=new G(t);g.a.5?fe-=f*2*(V-.5):V<.5&&(fe+=o*2*(.5-V)),a=g.d.b,fete.a-J-C&&(fe=te.a-J-C),g.n.a=t+fe}}function eMn(e){var t,n,r,a,o;if(r=l(Q(e,(Nt(),Qu)),171),r==(hf(),$b)){for(n=new hr(dr(ka(e).a.Kc(),new j));jr(n);)if(t=l(xr(n),18),!Aut(t))throw ue(new Vp(jhe+HN(e)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."))}else if(r==d4){for(o=new hr(dr(qs(e).a.Kc(),new j));jr(o);)if(a=l(xr(o),18),!Aut(a))throw ue(new Vp(jhe+HN(e)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."))}}function bP(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V;if(e.e&&e.c.c>19&&(t=xE(t),w=!w),f=RTn(t),o=!1,a=!1,r=!1,e.h==SP&&e.m==0&&e.l==0)if(a=!0,o=!0,f==-1)e=ent((iE(),WSe)),r=!0,w=!w;else return g=D9e(e,f),w&&yce(g),n&&(Nb=qu(0,0,0)),g;else e.h>>19&&(o=!0,e=xE(e),r=!0,w=!w);return f!=-1?dyn(e,f,w,o,n):bxe(e,t)<0?(n&&(o?Nb=xE(e):Nb=qu(e.l,e.m,e.h)),qu(0,0,0)):B_n(r?e:qu(e.l,e.m,e.h),t,w,o,a,n)}function Tle(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V;if(f=e.e,w=t.e,f==0)return t;if(w==0)return e;if(o=e.d,g=t.d,o+g==2)return n=va(e.a[0],Vo),r=va(t.a[0],Vo),f==w?(C=bo(n,r),V=Yr(C),z=Yr(ub(C,32)),z==0?new Qg(f,V):new Im(f,2,he(le(Vr,1),di,28,15,[V,z]))):(Cd(),Aq(f<0?Df(r,n):Df(n,r),0)?kb(f<0?Df(r,n):Df(n,r)):J_(kb(r2(f<0?Df(r,n):Df(n,r)))));if(f==w)B=f,L=o>=g?Ooe(e.a,o,t.a,g):Ooe(t.a,g,e.a,o);else{if(a=o!=g?o>g?1:-1:W7e(e.a,t.a,o),a==0)return Cd(),BL;a==1?(B=f,L=Doe(e.a,o,t.a,g)):(B=w,L=Doe(t.a,g,e.a,o))}return E=new Im(B,L.length,L),iA(E),E}function nMn(e,t){var n,r,a,o,f,g,w;if(!(e.g>t.f||t.g>e.f)){for(n=0,r=0,f=e.w.a.ec().Kc();f.Ob();)a=l(f.Pb(),12),Ice(Ic(he(le(Ea,1),dt,8,0,[a.i.n,a.n,a.a])).b,t.g,t.f)&&++n;for(g=e.r.a.ec().Kc();g.Ob();)a=l(g.Pb(),12),Ice(Ic(he(le(Ea,1),dt,8,0,[a.i.n,a.n,a.a])).b,t.g,t.f)&&--n;for(w=t.w.a.ec().Kc();w.Ob();)a=l(w.Pb(),12),Ice(Ic(he(le(Ea,1),dt,8,0,[a.i.n,a.n,a.a])).b,e.g,e.f)&&++r;for(o=t.r.a.ec().Kc();o.Ob();)a=l(o.Pb(),12),Ice(Ic(he(le(Ea,1),dt,8,0,[a.i.n,a.n,a.a])).b,e.g,e.f)&&--r;n=0)return n;switch(kw(ic(e,n))){case 2:{if(vn("",o2(e,n.qk()).xe())){if(w=HO(ic(e,n)),g=Wk(ic(e,n)),C=P9e(e,t,w,g),C)return C;for(a=hke(e,t),f=0,L=a.gc();f1)throw ue(new Yn(ZP));for(C=Wu(e.e.Dh(),t),r=l(e.g,124),f=0;f1,E=new N1(B.b);Lc(E.a)||Lc(E.b);)w=l(Lc(E.a)?re(E.a):re(E.b),18),L=w.c==B?w.d:w.c,b.Math.abs(Ic(he(le(Ea,1),dt,8,0,[L.i.n,L.n,L.a])).b-f.b)>1&&HCn(e,w,f,o,B)}}function cMn(e){var t,n,r,a,o,f;if(a=new Ua(e.e,0),r=new Ua(e.a,0),e.d)for(n=0;nwfe;){for(o=t,f=0;b.Math.abs(t-o)0),a.a.Xb(a.c=--a.b),EAn(e,e.b-f,o,r,a),mr(a.b0),r.a.Xb(r.c=--r.b)}if(!e.d)for(n=0;n0?(e.f[C.p]=z/(C.e.c.length+C.g.c.length),e.c=b.Math.min(e.c,e.f[C.p]),e.b=b.Math.max(e.b,e.f[C.p])):g&&(e.f[C.p]=z)}}function lMn(e){e.b=null,e.bb=null,e.fb=null,e.qb=null,e.a=null,e.c=null,e.d=null,e.e=null,e.f=null,e.n=null,e.M=null,e.L=null,e.Q=null,e.R=null,e.K=null,e.db=null,e.eb=null,e.g=null,e.i=null,e.j=null,e.k=null,e.gb=null,e.o=null,e.p=null,e.q=null,e.r=null,e.$=null,e.ib=null,e.S=null,e.T=null,e.t=null,e.s=null,e.u=null,e.v=null,e.w=null,e.B=null,e.A=null,e.C=null,e.D=null,e.F=null,e.G=null,e.H=null,e.I=null,e.J=null,e.P=null,e.Z=null,e.U=null,e.V=null,e.W=null,e.X=null,e.Y=null,e._=null,e.ab=null,e.cb=null,e.hb=null,e.nb=null,e.lb=null,e.mb=null,e.ob=null,e.pb=null,e.jb=null,e.kb=null,e.N=!1,e.O=!1}function hMn(e,t,n){var r,a,o,f;for(n.Ug("Graph transformation ("+e.a+")",1),f=_w(t.a),o=new G(t.b);o.a=g.b.c)&&(g.b=t),(!g.c||t.c<=g.c.c)&&(g.d=g.c,g.c=t),(!g.e||t.d>=g.e.d)&&(g.e=t),(!g.f||t.d<=g.f.d)&&(g.f=t);return r=new nU((wE(),s3)),QO(e,M8t,new Il(he(le(fB,1),Rn,382,0,[r]))),f=new nU(o4),QO(e,L8t,new Il(he(le(fB,1),Rn,382,0,[f]))),a=new nU(a4),QO(e,A8t,new Il(he(le(fB,1),Rn,382,0,[a]))),o=new nU(M6),QO(e,_8t,new Il(he(le(fB,1),Rn,382,0,[o]))),Yue(r.c,s3),Yue(a.c,a4),Yue(o.c,M6),Yue(f.c,o4),g.a.c.length=0,ra(g.a,r.c),ra(g.a,lf(a.c)),ra(g.a,o.c),ra(g.a,lf(f.c)),g}function gMn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V;for(t.Ug(Ayt,1),z=ze(Ge(at(e,(ug(),T4)))),f=ze(Ge(at(e,(z1(),wM)))),g=l(at(e,vM),107),v7e((!e.a&&(e.a=new nt(Ai,e,10,11)),e.a)),C=uvt((!e.a&&(e.a=new nt(Ai,e,10,11)),e.a),z,f),!e.a&&(e.a=new nt(Ai,e,10,11)),E=new G(C);E.a0&&(e.a=w+(z-1)*o,t.c.b+=e.a,t.f.b+=e.a)),V.a.gc()!=0&&(B=new Hae(1,o),z=Rke(B,t,V,J,t.f.b+w-t.c.b),z>0&&(t.f.b+=w+(z-1)*o))}function bvt(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e;for(C=ze(Ge(Q(e,(Nt(),b3)))),r=ze(Ge(Q(e,rDe))),B=new EI,rt(B,b3,C+r),E=t,fe=E.d,J=E.c.i,Te=E.d.i,te=oye(J.c),Me=oye(Te.c),a=new bt,L=te;L<=Me;L++)g=new op(e),x(g,(Zn(),Aa)),rt(g,(ft(),zi),E),rt(g,Ms,(Ra(),Mu)),rt(g,kW,B),z=l(jt(e.b,L),30),L==te?Fy(g,z.a.c.length-n,z):Va(g,z),$e=ze(Ge(Q(E,x2))),$e<0&&($e=0,rt(E,x2,$e)),g.o.b=$e,V=b.Math.floor($e/2),f=new gu,la(f,(Ct(),er)),Mc(f,g),f.n.b=V,w=new gu,la(w,ar),Mc(w,g),w.n.b=V,Fa(E,f),o=new Tw,pc(o,E),rt(o,cc,null),po(o,w),Fa(o,fe),r8n(g,E,o),$n(a.c,o),E=o;return a}function Cle(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me;for(w=l(d2(e,(Ct(),er)).Kc().Pb(),12).e,z=l(d2(e,ar).Kc().Pb(),12).g,g=w.c.length,Me=I1(l(jt(e.j,0),12));g-- >0;){for(J=(Sn(0,w.c.length),l(w.c[0],18)),a=(Sn(0,z.c.length),l(z.c[0],18)),Te=a.d.e,o=gc(Te,a,0),Rbn(J,a.d,o),po(a,null),Fa(a,null),V=J.a,t&&ci(V,new Eo(Me)),r=Rr(a.a,0);r.b!=r.d.c;)n=l(Br(r),8),ci(V,new Eo(n));for(fe=J.b,B=new G(a.b);B.af)&&na(e.b,l(te.b,18));++g}o=f}}}function Pke(e,t){var n;if(t==null||vn(t,ul)||t.length==0&&e.k!=(g2(),t9))return null;switch(e.k.g){case 1:return QV(t,wT)?(Hn(),ST):QV(t,Ffe)?(Hn(),Pb):null;case 2:try{return pt(Oh(t,lo,Ii))}catch(r){if(r=bs(r),De(r,130))return null;throw ue(r)}case 4:try{return jy(t)}catch(r){if(r=bs(r),De(r,130))return null;throw ue(r)}case 3:return t;case 5:return F0t(e),Xpt(e,t);case 6:return F0t(e),pTn(e,e.a,t);case 7:try{return n=SEn(e),n.cg(t),n}catch(r){if(r=bs(r),De(r,33))return null;throw ue(r)}default:throw ue(new nc("Invalid type set for this layout option."))}}function Bke(e){var t;switch(e.d){case 1:{if(e.Sj())return e.o!=-2;break}case 2:{if(e.Sj())return e.o==-2;break}case 3:case 5:case 4:case 6:case 7:return e.o>-2;default:return!1}switch(t=e.Rj(),e.p){case 0:return t!=null&&Rt(Bt(t))!=I_(e.k,0);case 1:return t!=null&&l(t,222).a!=Yr(e.k)<<24>>24;case 2:return t!=null&&l(t,180).a!=(Yr(e.k)&Zs);case 6:return t!=null&&I_(l(t,168).a,e.k);case 5:return t!=null&&l(t,17).a!=Yr(e.k);case 7:return t!=null&&l(t,191).a!=Yr(e.k)<<16>>16;case 3:return t!=null&&ze(Ge(t))!=e.j;case 4:return t!=null&&l(t,161).a!=e.j;default:return t==null?e.n!=null:!Pi(t,e.n)}}function mP(e,t,n){var r,a,o,f;return e.ol()&&e.nl()&&(f=Fae(e,l(n,58)),qe(f)!==qe(n))?(e.xj(t),e.Dj(t,ylt(e,t,f)),e.al()&&(o=(a=l(n,54),e.ml()?e.kl()?a.Th(e.b,Ro(l(Mn(sl(e.b),e.Lj()),19)).n,l(Mn(sl(e.b),e.Lj()).Hk(),29).kk(),null):a.Th(e.b,ms(a.Dh(),Ro(l(Mn(sl(e.b),e.Lj()),19))),null,null):a.Th(e.b,-1-e.Lj(),null,null)),!l(f,54).Ph()&&(o=(r=l(f,54),e.ml()?e.kl()?r.Rh(e.b,Ro(l(Mn(sl(e.b),e.Lj()),19)).n,l(Mn(sl(e.b),e.Lj()).Hk(),29).kk(),o):r.Rh(e.b,ms(r.Dh(),Ro(l(Mn(sl(e.b),e.Lj()),19))),null,o):r.Rh(e.b,-1-e.Lj(),null,o))),o&&o.oj()),hh(e.b)&&e.Jj(e.Ij(9,n,f,t,!1)),f):n}function mvt(e){var t,n,r,a,o,f,g,w,E,C;for(r=new bt,f=new G(e.e.a);f.a0&&(f=b.Math.max(f,kft(e.C.b+r.d.b,a))),C=r,L=a,B=o;e.C&&e.C.c>0&&(z=B+e.C.c,E&&(z+=C.d.c),f=b.Math.max(f,(A1(),f0(H1),b.Math.abs(L-1)<=H1||L==1||isNaN(L)&&isNaN(1)?0:z/(1-L)))),n.n.b=0,n.a.a=f}function wvt(e,t){var n,r,a,o,f,g,w,E,C,L,B,z;if(n=l(Qo(e.b,t),127),w=l(l($i(e.r,t),21),87),w.dc()){n.n.d=0,n.n.a=0;return}for(E=e.u.Hc((Rl(),vp)),f=0,e.A.Hc((mh(),Cv))&&Wbt(e,t),g=w.Kc(),C=null,B=0,L=0;g.Ob();)r=l(g.Pb(),117),o=ze(Ge(r.b.of((zq(),pK)))),a=r.b.Mf().b,C?(z=L+C.d.a+e.w+r.d.d,f=b.Math.max(f,(A1(),f0(H1),b.Math.abs(B-o)<=H1||B==o||isNaN(B)&&isNaN(o)?0:z/(o-B)))):e.C&&e.C.d>0&&(f=b.Math.max(f,kft(e.C.d+r.d.d,o))),C=r,B=o,L=a;e.C&&e.C.a>0&&(z=L+e.C.a,E&&(z+=C.d.a),f=b.Math.max(f,(A1(),f0(H1),b.Math.abs(B-1)<=H1||B==1||isNaN(B)&&isNaN(1)?0:z/(1-B)))),n.n.d=0,n.a.b=f}function mMn(e,t,n,r,a,o,f,g){var w,E,C,L,B,z,V,J,te,fe;if(V=!1,E=H9e(n.q,t.f+t.b-n.q.f),z=r.f>t.b&&g,fe=a-(n.q.e+E-f),L=(w=ZA(r,fe,!1),w.a),z&&L>r.f)return!1;if(z){for(B=0,te=new G(t.d);te.a=(Sn(o,e.c.length),l(e.c[o],186)).e,!z&&L>t.b&&!C)?!1:((C||z||L<=t.b)&&(C&&L>t.b?(n.d=L,aN(n,spt(n,L))):(Egt(n.q,E),n.c=!0),aN(r,a-(n.s+n.r)),qN(r,n.q.e+n.q.d,t.f),bV(t,r),e.c.length>o&&(UN((Sn(o,e.c.length),l(e.c[o],186)),r),(Sn(o,e.c.length),l(e.c[o],186)).a.c.length==0&&t2(e,o)),V=!0),V)}function yvt(e,t,n){var r,a,o,f,g,w;for(this.g=e,g=t.d.length,w=n.d.length,this.d=We(wg,m2,10,g+w,0,1),f=0;f0?Xoe(this,this.f/this.a):L1(t.g,t.d[0]).a!=null&&L1(n.g,n.d[0]).a!=null?Xoe(this,(ze(L1(t.g,t.d[0]).a)+ze(L1(n.g,n.d[0]).a))/2):L1(t.g,t.d[0]).a!=null?Xoe(this,L1(t.g,t.d[0]).a):L1(n.g,n.d[0]).a!=null&&Xoe(this,L1(n.g,n.d[0]).a)}function vMn(e,t){var n,r,a,o,f,g,w,E,C,L;for(e.a=new Zst(eyn(LM)),r=new G(t.a);r.a=1&&(te-f>0&&L>=0?(w.n.a+=J,w.n.b+=o*f):te-f<0&&C>=0&&(w.n.a+=J*te,w.n.b+=o));e.o.a=t.a,e.o.b=t.b,rt(e,(Nt(),bv),(mh(),r=l(K0(BM),9),new Zh(r,l(c0(r,r.length),9),0)))}function xMn(e,t,n,r,a,o){var f;if(!(t==null||!Hce(t,TPe,CPe)))throw ue(new Yn("invalid scheme: "+t));if(!e&&!(n!=null&&pd(n,cl(35))==-1&&n.length>0&&(Xn(0,n.length),n.charCodeAt(0)!=47)))throw ue(new Yn("invalid opaquePart: "+n));if(e&&!(t!=null&&nO(EY,t.toLowerCase()))&&!(n==null||!Hce(n,$M,zM)))throw ue(new Yn(n5t+n));if(e&&t!=null&&nO(EY,t.toLowerCase())&&!exn(n))throw ue(new Yn(n5t+n));if(!a5n(r))throw ue(new Yn("invalid device: "+r));if(!Vyn(a))throw f=a==null?"invalid segments: null":"invalid segment: "+$yn(a),ue(new Yn(f));if(!(o==null||pd(o,cl(35))==-1))throw ue(new Yn("invalid query: "+o))}function kMn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe;if(n.Ug("Network simplex layering",1),e.b=t,fe=l(Q(t,(Nt(),nM)),17).a*4,te=e.b.a,te.c.length<1){n.Vg();return}for(o=y_n(e,te),J=null,a=Rr(o,0);a.b!=a.d.c;){for(r=l(Br(a),15),g=fe*ua(b.Math.sqrt(r.gc())),f=P_n(r),ole(n3e(kun(r3e(bae(f),g),J),!0),n.eh(1)),B=e.b.b,V=new G(f.a);V.a1)for(J=We(Vr,di,28,e.b.b.c.length,15,1),L=0,E=new G(e.b.b);E.a0){JV(e,n,0),n.a+=String.fromCharCode(r),a=V5n(t,o),JV(e,n,a),o+=a-1;continue}r==39?o+10&&V.a<=0){w.c.length=0,$n(w.c,V);break}z=V.i-V.d,z>=g&&(z>g&&(w.c.length=0,g=z),$n(w.c,V))}w.c.length!=0&&(f=l(jt(w,aU(a,w.c.length)),118),Me.a.Bc(f)!=null,f.g=C++,Tke(f,t,n,r),w.c.length=0)}for(te=e.c.length+1,B=new G(e);B.aia||t.o==wv&&C=g&&a<=w)g<=a&&o<=w?(n[C++]=a,n[C++]=o,r+=2):g<=a?(n[C++]=a,n[C++]=w,e.b[r]=w+1,f+=2):o<=w?(n[C++]=g,n[C++]=o,r+=2):(n[C++]=g,n[C++]=w,e.b[r]=w+1);else if(wAb)&&g<10);s3e(e.c,new Y7),Tvt(e),mgn(e.c),fMn(e.f)}function DMn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J;for(n=l(Q(e,(Nt(),Ms)),101),f=e.f,o=e.d,g=f.a+o.b+o.c,w=0-o.d-e.c.b,C=f.b+o.d+o.a-e.c.b,E=new bt,L=new bt,a=new G(t);a.a=2){for(w=Rr(n,0),f=l(Br(w),8),g=l(Br(w),8);g.a0&&SN(E,!0,(Js(),vc)),g.k==(Zn(),Us)&&cat(E),ki(e.f,g,t)}}function NMn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e;for(a=l(Q(e,(Qi(),gM)),27),E=Ii,C=Ii,g=lo,w=lo,Me=Rr(e.b,0);Me.b!=Me.d.c;)fe=l(Br(Me),40),z=fe.e,V=fe.f,E=b.Math.min(E,z.a-V.a/2),C=b.Math.min(C,z.b-V.b/2),g=b.Math.max(g,z.a+V.a/2),w=b.Math.max(w,z.b+V.b/2);for(B=l(at(a,(Hc(),gIe)),107),Te=Rr(e.b,0);Te.b!=Te.d.c;)fe=l(Br(Te),40),L=Q(fe,gM),De(L,207)&&(o=l(L,27),Qh(o,fe.e.a,fe.e.b),aP(o,fe));for(te=Rr(e.a,0);te.b!=te.d.c;)J=l(Br(te),65),r=l(Q(J,gM),74),r&&(t=J.a,n=l6(r,!0,!0),dP(t,n));$e=g-E+(B.b+B.c),f=w-C+(B.d+B.a),Rt(Bt(at(a,(pi(),C4))))||Gw(a,$e,f,!1,!1),Hi(a,t7,$e-(B.b+B.c)),Hi(a,e7,f-(B.d+B.a))}function Svt(e,t){var n,r,a,o,f,g,w,E,C,L;for(w=!0,a=0,E=e.g[t.p],C=t.o.b+e.o,n=e.d[t.p][2],rf(e.b,E,pt(l(jt(e.b,E),17).a-1+n)),rf(e.c,E,ze(Ge(jt(e.c,E)))-C+n*e.f),++E,E>=e.j?(++e.j,vt(e.b,pt(1)),vt(e.c,C)):(r=e.d[t.p][1],rf(e.b,E,pt(l(jt(e.b,E),17).a+1-r)),rf(e.c,E,ze(Ge(jt(e.c,E)))+C-r*e.f)),(e.r==(Nf(),AB)&&(l(jt(e.b,E),17).a>e.k||l(jt(e.b,E-1),17).a>e.k)||e.r==LB&&(ze(Ge(jt(e.c,E)))>e.n||ze(Ge(jt(e.c,E-1)))>e.n))&&(w=!1),f=new hr(dr(ka(t).a.Kc(),new j));jr(f);)o=l(xr(f),18),g=o.c.i,e.g[g.p]==E&&(L=Svt(e,g),a=a+l(L.a,17).a,w=w&&Rt(Bt(L.b)));return e.g[t.p]=E,a=a+e.d[t.p][0],new ca(pt(a),(Hn(),!!w))}function _vt(e,t){var n,r,a,o,f;n=ze(Ge(Q(t,(Nt(),x0)))),n<2&&rt(t,x0,2),r=l(Q(t,Rh),88),r==(Js(),J1)&&rt(t,Rh,zV(t)),a=l(Q(t,Vkt),17),a.a==0?rt(t,(ft(),Xx),new Uce):rt(t,(ft(),Xx),new VH(a.a)),o=Bt(Q(t,ZL)),o==null&&rt(t,ZL,(Hn(),qe(Q(t,bp))===qe((ip(),iC)))),Is(new bn(null,new kn(t.a,16)),new qp(e)),Is(Dc(new bn(null,new kn(t.b,16)),new u5),new n_(e)),f=new xvt(t),rt(t,(ft(),$6),f),qO(e.a),X0(e.a,(uo(),y0),l(Q(t,dv),188)),X0(e.a,vg,l(Q(t,pv),188)),X0(e.a,bu,l(Q(t,JL),188)),X0(e.a,_u,l(Q(t,yW),188)),X0(e.a,mc,N3n(l(Q(t,bp),223))),uye(e.a,LIn(t)),rt(t,K1e,bP(e.a,t))}function Rke(e,t,n,r,a){var o,f,g,w,E,C,L,B,z,V,J,te,fe;for(L=new Pr,f=new bt,Spt(e,n,e.d.Ag(),f,L),Spt(e,r,e.d.Bg(),f,L),e.b=.2*(J=D2t(Dc(new bn(null,new kn(f,16)),new Tte)),te=D2t(Dc(new bn(null,new kn(f,16)),new Cte)),b.Math.min(J,te)),o=0,g=0;g=2&&(fe=X2t(f,!0,B),!e.e&&(e.e=new sXe(e)),$5n(e.e,fe,f,e.b)),Ogt(f,B),$Mn(f),z=-1,C=new G(f);C.ag)}function Avt(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te;for(E=gs,C=gs,g=ia,w=ia,B=new G(t.i);B.a-1){for(a=Rr(g,0);a.b!=a.d.c;)r=l(Br(a),131),r.v=f;for(;g.b!=0;)for(r=l(kue(g,0),131),n=new G(r.i);n.a-1){for(o=new G(g);o.a0)&&(Y(w,b.Math.min(w.o,a.o-1)),q(w,w.i-1),w.i==0&&$n(g.c,w))}}function Mvt(e,t,n,r,a){var o,f,g,w;return w=gs,f=!1,g=Lke(e,ma(new lt(t.a,t.b),e),Oi(new lt(n.a,n.b),a),ma(new lt(r.a,r.b),n)),o=!!g&&!(b.Math.abs(g.a-e.a)<=Zw&&b.Math.abs(g.b-e.b)<=Zw||b.Math.abs(g.a-t.a)<=Zw&&b.Math.abs(g.b-t.b)<=Zw),g=Lke(e,ma(new lt(t.a,t.b),e),n,a),g&&((b.Math.abs(g.a-e.a)<=Zw&&b.Math.abs(g.b-e.b)<=Zw)==(b.Math.abs(g.a-t.a)<=Zw&&b.Math.abs(g.b-t.b)<=Zw)||o?w=b.Math.min(w,eA(ma(g,n))):f=!0),g=Lke(e,ma(new lt(t.a,t.b),e),r,a),g&&(f||(b.Math.abs(g.a-e.a)<=Zw&&b.Math.abs(g.b-e.b)<=Zw)==(b.Math.abs(g.a-t.a)<=Zw&&b.Math.abs(g.b-t.b)<=Zw)||o)&&(w=b.Math.min(w,eA(ma(g,r)))),w}function Dvt(e){sw(e,new Xm(Uz(nw(Zv(tw(ew(new x1,Mb),A3t),"Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."),new y1),Yu))),gt(e,Mb,hL,It(lAe)),gt(e,Mb,cG,(Hn(),!0)),gt(e,Mb,x6,It(d8t)),gt(e,Mb,Px,It(g8t)),gt(e,Mb,Nx,It(p8t)),gt(e,Mb,fT,It(f8t)),gt(e,Mb,fL,It(fAe)),gt(e,Mb,dT,It(b8t)),gt(e,Mb,PEe,It(uAe)),gt(e,Mb,FEe,It(oAe)),gt(e,Mb,REe,It(cAe)),gt(e,Mb,jEe,It(hAe)),gt(e,Mb,BEe,It(TK))}function zMn(e){var t,n,r,a,o,f,g,w;for(t=null,r=new G(e);r.a0&&n.c==0&&(!t&&(t=new bt),$n(t.c,n));if(t)for(;t.c.length!=0;){if(n=l(t2(t,0),239),n.b&&n.b.c.length>0){for(o=(!n.b&&(n.b=new bt),new G(n.b));o.agc(e,n,0))return new ca(a,n)}else if(ze(L1(a.g,a.d[0]).a)>ze(L1(n.g,n.d[0]).a))return new ca(a,n)}for(g=(!n.e&&(n.e=new bt),n.e).Kc();g.Ob();)f=l(g.Pb(),239),w=(!f.b&&(f.b=new bt),f.b),Ey(0,w.c.length),x_(w.c,0,n),f.c==w.c.length&&$n(t.c,f)}return null}function qMn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe;for(t.Ug("Interactive crossing minimization",1),f=0,o=new G(e.b);o.a0&&(n+=w.n.a+w.o.a/2,++L),V=new G(w.j);V.a0&&(n/=L),fe=We(Na,Zo,28,r.a.c.length,15,1),g=0,E=new G(r.a);E.a=g&&a<=w)g<=a&&o<=w?r+=2:g<=a?(e.b[r]=w+1,f+=2):o<=w?(n[C++]=a,n[C++]=g-1,r+=2):(n[C++]=a,n[C++]=g-1,e.b[r]=w+1,f+=2);else if(w2?(C=new bt,ra(C,new Zp(fe,1,fe.b)),o=vwt(C,Me+e.a),Te=new Gue(o),pc(Te,t),$n(n.c,Te)):r?Te=l(cr(e.b,cg(t)),272):Te=l(cr(e.b,Eb(t)),272),w=cg(t),r&&(w=Eb(t)),f=z9n(te,w),E=Me+e.a,f.a?(E+=b.Math.abs(te.b-L.b),J=new lt(L.a,(L.b+te.b)/2)):(E+=b.Math.abs(te.a-L.a),J=new lt((L.a+te.a)/2,L.b)),r?ki(e.d,t,new nxe(Te,f,J,E)):ki(e.c,t,new nxe(Te,f,J,E)),ki(e.b,t,Te),V=(!t.n&&(t.n=new nt(ec,t,1,7)),t.n),z=new or(V);z.e!=z.i.gc();)B=l(gr(z),135),a=uP(e,B,!0,0,0),$n(n.c,a)}function HMn(e){var t,n,r,a,o,f,g;if(!e.A.dc()){if(e.A.Hc((mh(),iF))&&(l(Qo(e.b,(Ct(),Qn)),127).k=!0,l(Qo(e.b,Dr),127).k=!0,t=e.q!=(Ra(),Tg)&&e.q!=Mu,_z(l(Qo(e.b,ar),127),t),_z(l(Qo(e.b,er),127),t),_z(e.g,t),e.A.Hc(Cv)&&(l(Qo(e.b,Qn),127).j=!0,l(Qo(e.b,Dr),127).j=!0,l(Qo(e.b,ar),127).k=!0,l(Qo(e.b,er),127).k=!0,e.g.k=!0)),e.A.Hc(rF))for(e.a.j=!0,e.a.k=!0,e.g.j=!0,e.g.k=!0,g=e.B.Hc((Zl(),FM)),a=eue(),o=0,f=a.length;o0),l(C.a.Xb(C.c=--C.b),18));o!=r&&C.b>0;)e.a[o.p]=!0,e.a[r.p]=!0,o=(mr(C.b>0),l(C.a.Xb(C.c=--C.b),18));C.b>0&&ph(C)}}function Ovt(e,t,n){var r,a,o,f,g,w,E,C,L,B,z;if(!e.b)return!1;for(f=null,B=null,w=new Boe(null,null),a=1,w.a[1]=e.b,L=w;L.a[a];)E=a,g=B,B=L,L=L.a[a],r=e.a.Ne(t,L.d),a=r<0?0:1,r==0&&(!n.c||Jc(L.e,n.d))&&(f=L),!(L&&L.b)&&!oy(L.a[a])&&(oy(L.a[1-a])?B=B.a[E]=EV(L,a):oy(L.a[1-a])||(z=B.a[1-E],z&&(!oy(z.a[1-E])&&!oy(z.a[E])?(B.b=!1,z.b=!0,L.b=!0):(o=g.a[1]==B?1:0,oy(z.a[E])?g.a[o]=uct(B,E):oy(z.a[1-E])&&(g.a[o]=EV(B,E)),L.b=g.a[o].b=!0,g.a[o].a[0].b=!1,g.a[o].a[1].b=!1))));return f&&(n.b=!0,n.d=f.e,L!=f&&(C=new Boe(L.d,L.e),Gxn(e,w,f,C),B==f&&(B=C)),B.a[B.a[1]==L?1:0]=L.a[L.a[0]?0:1],--e.c),e.b=w.a[1],e.b&&(e.b.b=!1),n.b}function GMn(e){var t,n,r,a,o,f,g,w,E,C,L,B;for(a=new G(e.a.a.b);a.a0?a-=864e5:a+=864e5,w=new Kye(bo(Zc(t.q.getTime()),a))),C=new S5,E=e.a.length,o=0;o=97&&r<=122||r>=65&&r<=90){for(f=o+1;f=E)throw ue(new Yn("Missing trailing '"));f+1=14&&C<=16))?t.a._b(r)?(n.a?hi(n.a,n.b):n.a=new Th(n.d),N_(n.a,"[...]")):(g=jm(r),E=new U_(t),Jg(n,Pvt(g,E))):De(r,183)?Jg(n,Tkn(l(r,183))):De(r,195)?Jg(n,uxn(l(r,195))):De(r,201)?Jg(n,w9n(l(r,201))):De(r,2111)?Jg(n,lxn(l(r,2111))):De(r,53)?Jg(n,Ekn(l(r,53))):De(r,376)?Jg(n,zkn(l(r,376))):De(r,846)?Jg(n,kkn(l(r,846))):De(r,109)&&Jg(n,xkn(l(r,109))):Jg(n,r==null?ul:xc(r));return n.a?n.e.length==0?n.a.a:n.a.a+(""+n.e):n.c}function JE(e,t){var n,r,a,o;o=e.F,t==null?(e.F=null,CE(e,null)):(e.F=(nr(t),t),r=pd(t,cl(60)),r!=-1?(a=(Ga(0,r,t.length),t.substr(0,r)),pd(t,cl(46))==-1&&!vn(a,Cx)&&!vn(a,SL)&&!vn(a,GG)&&!vn(a,_L)&&!vn(a,AL)&&!vn(a,LL)&&!vn(a,ML)&&!vn(a,DL)&&(a=p5t),n=Rq(t,cl(62)),n!=-1&&(a+=""+(Xn(n+1,t.length+1),t.substr(n+1))),CE(e,a)):(a=t,pd(t,cl(46))==-1&&(r=pd(t,cl(91)),r!=-1&&(a=(Ga(0,r,t.length),t.substr(0,r))),!vn(a,Cx)&&!vn(a,SL)&&!vn(a,GG)&&!vn(a,_L)&&!vn(a,AL)&&!vn(a,LL)&&!vn(a,ML)&&!vn(a,DL)?(a=p5t,r!=-1&&(a+=""+(Xn(r,t.length+1),t.substr(r)))):a=t),CE(e,a),a==t&&(e.F=e.D))),e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,5,o,t))}function Bvt(e,t){var n,r,a,o,f,g,w,E,C,L;if(w=t.length-1,g=(Xn(w,t.length),t.charCodeAt(w)),g==93){if(f=pd(t,cl(91)),f>=0)return a=Q4n(e,(Ga(1,f,t.length),t.substr(1,f-1))),C=(Ga(f+1,w,t.length),t.substr(f+1,w-(f+1))),EIn(e,C,a)}else{if(n=-1,ZSe==null&&(ZSe=new RegExp("\\d")),ZSe.test(String.fromCharCode(g))&&(n=h4e(t,cl(46),w-1),n>=0)){r=l(Moe(e,Tht(e,(Ga(1,n,t.length),t.substr(1,n-1))),!1),61),E=0;try{E=Oh((Xn(n+1,t.length+1),t.substr(n+1)),lo,Ii)}catch(B){throw B=bs(B),De(B,130)?(o=B,ue(new nV(o))):ue(B)}if(E>16==-10?n=l(e.Cb,292).Yk(t,n):e.Db>>16==-15&&(!t&&(t=(Tn(),td)),!E&&(E=(Tn(),td)),e.Cb.Yh()&&(w=new Zg(e.Cb,1,13,E,t,f2(Xl(l(e.Cb,62)),e),!1),n?n.nj(w):n=w));else if(De(e.Cb,90))e.Db>>16==-23&&(De(t,90)||(t=(Tn(),Kf)),De(E,90)||(E=(Tn(),Kf)),e.Cb.Yh()&&(w=new Zg(e.Cb,1,10,E,t,f2(du(l(e.Cb,29)),e),!1),n?n.nj(w):n=w));else if(De(e.Cb,457))for(g=l(e.Cb,850),f=(!g.b&&(g.b=new Pz(new Vie)),g.b),o=(r=new qm(new Sr(f.a).a),new Bz(r));o.a.b;)a=l(Nw(o.a).ld(),89),n=ZE(a,SU(a,g),n)}return n}function QMn(e,t){var n,r,a,o,f,g,w,E,C,L,B;for(f=Rt(Bt(at(e,(Nt(),b4)))),B=l(at(e,v4),21),w=!1,E=!1,L=new or((!e.c&&(e.c=new nt(Hl,e,9,9)),e.c));L.e!=L.i.gc()&&(!w||!E);){for(o=l(gr(L),123),g=0,a=rg(Lh(he(le(Fh,1),Rn,20,0,[(!o.d&&(o.d=new Ln(js,o,8,5)),o.d),(!o.e&&(o.e=new Ln(js,o,7,4)),o.e)])));jr(a)&&(r=l(xr(a),74),C=f&&qw(r)&&Rt(Bt(at(r,gv))),n=gvt((!r.b&&(r.b=new Ln(_r,r,4,7)),r.b),o)?e==ds(bc(l(Oe((!r.c&&(r.c=new Ln(_r,r,5,8)),r.c),0),84))):e==ds(bc(l(Oe((!r.b&&(r.b=new Ln(_r,r,4,7)),r.b),0),84))),!((C||n)&&(++g,g>1))););(g>0||B.Hc((Rl(),vp))&&(!o.n&&(o.n=new nt(ec,o,1,7)),o.n).i>0)&&(w=!0),g>1&&(E=!0)}w&&t.Fc((Ho(),vf)),E&&t.Fc((Ho(),UL))}function Fvt(e){var t,n,r,a,o,f,g,w,E,C,L,B;if(B=l(at(e,(pi(),kv)),21),B.dc())return null;if(g=0,f=0,B.Hc((mh(),iF))){for(C=l(at(e,_M),101),r=2,n=2,a=2,o=2,t=ds(e)?l(at(ds(e),xv),88):l(at(e,xv),88),E=new or((!e.c&&(e.c=new nt(Hl,e,9,9)),e.c));E.e!=E.i.gc();)if(w=l(gr(E),123),L=l(at(w,s7),64),L==(Ct(),Pc)&&(L=Eke(w,t),Hi(w,s7,L)),C==(Ra(),Mu))switch(L.g){case 1:r=b.Math.max(r,w.i+w.g);break;case 2:n=b.Math.max(n,w.j+w.f);break;case 3:a=b.Math.max(a,w.i+w.g);break;case 4:o=b.Math.max(o,w.j+w.f)}else switch(L.g){case 1:r+=w.g+2;break;case 2:n+=w.f+2;break;case 3:a+=w.g+2;break;case 4:o+=w.f+2}g=b.Math.max(r,a),f=b.Math.max(n,o)}return Gw(e,g,f,!0,!0)}function Sle(e,t,n,r,a){var o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e;for(Te=l(yc(lV(Fi(new bn(null,new kn(t.d,16)),new CYe(n)),new SYe(n)),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15),L=Ii,C=lo,w=new G(t.b.j);w.a0,E?E&&(B=fe.p,f?++B:--B,L=l(jt(fe.c.a,B),10),r=o0t(L),z=!(Xue(r,ot,n[0])||Dst(r,ot,n[0]))):z=!0),V=!1,Ze=t.D.i,Ze&&Ze.c&&g.e&&(C=f&&Ze.p>0||!f&&Ze.p=0){for(w=null,g=new Ua(C.a,E+1);g.bf?1:uw(isNaN(0),isNaN(f)))<0&&(f0(Nd),(b.Math.abs(f-1)<=Nd||f==1||isNaN(f)&&isNaN(1)?0:f<1?-1:f>1?1:uw(isNaN(f),isNaN(1)))<0)&&(f0(Nd),(b.Math.abs(0-g)<=Nd||g==0||isNaN(0)&&isNaN(g)?0:0g?1:uw(isNaN(0),isNaN(g)))<0)&&(f0(Nd),(b.Math.abs(g-1)<=Nd||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:uw(isNaN(g),isNaN(1)))<0)),o)}function rDn(e){var t,n,r,a;if(n=e.D!=null?e.D:e.B,t=pd(n,cl(91)),t!=-1){r=(Ga(0,t,n.length),n.substr(0,t)),a=new Up;do a.a+="[";while((t=Nk(n,91,++t))!=-1);vn(r,Cx)?a.a+="Z":vn(r,SL)?a.a+="B":vn(r,GG)?a.a+="C":vn(r,_L)?a.a+="D":vn(r,AL)?a.a+="F":vn(r,LL)?a.a+="I":vn(r,ML)?a.a+="J":vn(r,DL)?a.a+="S":(a.a+="L",a.a+=""+r,a.a+=";");try{return null}catch(o){if(o=bs(o),!De(o,63))throw ue(o)}}else if(pd(n,cl(46))==-1){if(vn(n,Cx))return ih;if(vn(n,SL))return Al;if(vn(n,GG))return kf;if(vn(n,_L))return Na;if(vn(n,AL))return B4;if(vn(n,LL))return Vr;if(vn(n,ML))return nm;if(vn(n,DL))return h7}return null}function iDn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St;for(e.e=t,g=iEn(t),ot=new bt,r=new G(g);r.a=0&&J=E.c.c.length?C=u6e((Zn(),Ps),Aa):C=u6e((Zn(),Aa),Aa),C*=2,o=n.a.g,n.a.g=b.Math.max(o,o+(C-o)),f=n.b.g,n.b.g=b.Math.max(f,f+(C-f)),a=t}}function cDn(e){var t,n,r,a;for(Is(Fi(new bn(null,new kn(e.a.b,16)),new Oj),new aee),H8n(e),Is(Fi(new bn(null,new kn(e.a.b,16)),new oee),new cee),e.c==(ip(),s9)&&(Is(Fi(Dc(new bn(null,new kn(new br(e.f),1)),new uee),new lee),new vYe(e)),Is(Fi(fc(Dc(Dc(new bn(null,new kn(e.d.b,16)),new hee),new Nj),new fee),new Pj),new yYe(e))),a=new lt(gs,gs),t=new lt(ia,ia),r=new G(e.a.b);r.a0&&(t.a+=Co),GU(l(gr(g),167),t);for(t.a+=Phe,w=new q8((!r.c&&(r.c=new Ln(_r,r,5,8)),r.c));w.e!=w.i.gc();)w.e>0&&(t.a+=Co),GU(l(gr(w),167),t);t.a+=")"}}function uDn(e,t,n){var r,a,o,f,g,w,E,C;for(w=new or((!e.a&&(e.a=new nt(Ai,e,10,11)),e.a));w.e!=w.i.gc();)for(g=l(gr(w),27),a=new hr(dr(cp(g).a.Kc(),new j));jr(a);){if(r=l(xr(a),74),!r.b&&(r.b=new Ln(_r,r,4,7)),!(r.b.i<=1&&(!r.c&&(r.c=new Ln(_r,r,5,8)),r.c.i<=1)))throw ue(new I8("Graph must not contain hyperedges."));if(!qA(r)&&g!=bc(l(Oe((!r.c&&(r.c=new Ln(_r,r,5,8)),r.c),0),84)))for(E=new jrt,pc(E,r),rt(E,(bb(),Hx),r),Aie(E,l(hc(zo(n.f,g)),153)),k8(E,l(cr(n,bc(l(Oe((!r.c&&(r.c=new Ln(_r,r,5,8)),r.c),0),84))),153)),vt(t.c,E),f=new or((!r.n&&(r.n=new nt(ec,r,1,7)),r.n));f.e!=f.i.gc();)o=l(gr(f),135),C=new zct(E,o.a),pc(C,o),rt(C,Hx,o),C.e.a=b.Math.max(o.g,1),C.e.b=b.Math.max(o.f,1),Ake(C),vt(t.d,C)}}function lDn(e,t,n){var r,a,o,f,g,w,E,C,L,B;switch(n.Ug("Node promotion heuristic",1),e.i=t,e.r=l(Q(t,(Nt(),zb)),243),e.r!=(Nf(),v3)&&e.r!=x4?FDn(e):uSn(e),C=l(Q(e.i,HMe),17).a,o=new hd,e.r.g){case 2:case 1:QE(e,o);break;case 3:for(e.r=LW,QE(e,o),w=0,g=new G(e.b);g.ae.k&&(e.r=AB,QE(e,o));break;case 4:for(e.r=LW,QE(e,o),E=0,a=new G(e.c);a.ae.n&&(e.r=LB,QE(e,o));break;case 6:B=ua(b.Math.ceil(e.g.length*C/100)),QE(e,new aYe(B));break;case 5:L=ua(b.Math.ceil(e.e*C/100)),QE(e,new oYe(L));break;case 8:xwt(e,!0);break;case 9:xwt(e,!1);break;default:QE(e,o)}e.r!=v3&&e.r!=x4?OCn(e,t):ZSn(e,t),n.Vg()}function hDn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me;for(L=e.b,C=new Ua(L,0),by(C,new yu(e)),Te=!1,f=1;C.b0&&(B.d+=C.n.d,B.d+=C.d),B.a>0&&(B.a+=C.n.a,B.a+=C.d),B.b>0&&(B.b+=C.n.b,B.b+=C.d),B.c>0&&(B.c+=C.n.c,B.c+=C.d),B}function jvt(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V;for(B=n.d,L=n.c,o=new lt(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a),f=o.b,E=new G(e.a);E.a0&&(e.c[t.c.p][t.p].d+=Jl(e.i,24)*MP*.07000000029802322-.03500000014901161,e.c[t.c.p][t.p].a=e.c[t.c.p][t.p].d/e.c[t.c.p][t.p].b)}}function gDn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te;for(V=new G(e);V.ar.d,r.d=b.Math.max(r.d,t),g&&n&&(r.d=b.Math.max(r.d,r.a),r.a=r.d+a);break;case 3:n=t>r.a,r.a=b.Math.max(r.a,t),g&&n&&(r.a=b.Math.max(r.a,r.d),r.d=r.a+a);break;case 2:n=t>r.c,r.c=b.Math.max(r.c,t),g&&n&&(r.c=b.Math.max(r.b,r.c),r.b=r.c+a);break;case 4:n=t>r.b,r.b=b.Math.max(r.b,t),g&&n&&(r.b=b.Math.max(r.b,r.c),r.c=r.b+a)}}}function zvt(e,t){var n,r,a,o,f,g,w,E,C;return E="",t.length==0?e.ne(iEe,Rle,-1,-1):(C=$y(t),vn(C.substr(0,3),"at ")&&(C=(Xn(3,C.length+1),C.substr(3))),C=C.replace(/\[.*?\]/g,""),f=C.indexOf("("),f==-1?(f=C.indexOf("@"),f==-1?(E=C,C=""):(E=$y((Xn(f+1,C.length+1),C.substr(f+1))),C=$y((Ga(0,f,C.length),C.substr(0,f))))):(n=C.indexOf(")",f),E=(Ga(f+1,n,C.length),C.substr(f+1,n-(f+1))),C=$y((Ga(0,f,C.length),C.substr(0,f)))),f=pd(C,cl(46)),f!=-1&&(C=(Xn(f+1,C.length+1),C.substr(f+1))),(C.length==0||vn(C,"Anonymous function"))&&(C=Rle),g=Rq(E,cl(58)),a=h4e(E,cl(58),g-1),w=-1,r=-1,o=iEe,g!=-1&&a!=-1&&(o=(Ga(0,a,E.length),E.substr(0,a)),w=irt((Ga(a+1,g,E.length),E.substr(a+1,g-(a+1)))),r=irt((Xn(g+1,E.length+1),E.substr(g+1)))),e.ne(o,C,w,r))}function mDn(e){var t,n,r,a,o,f,g,w,E,C,L;for(E=new G(e);E.a0||C.j==er&&C.e.c.length-C.g.c.length<0)){t=!1;break}for(a=new G(C.g);a.a=E&&Ze>=te&&(B+=V.n.b+J.n.b+J.a.b-$e,++g));if(n)for(f=new G(Te.e);f.a=E&&Ze>=te&&(B+=V.n.b+J.n.b+J.a.b-$e,++g))}g>0&&(ot+=B/g,++z)}z>0?(t.a=a*ot/z,t.g=z):(t.a=0,t.g=0)}function wDn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St;for(o=e.f.b,B=o.a,C=o.b,V=e.e.g,z=e.e.f,F5(e.e,o.a,o.b),ot=B/V,St=C/z,E=new or(EH(e.e));E.e!=E.i.gc();)w=l(gr(E),135),Uu(w,w.i*ot),Gu(w,w.j*St);for(Te=new or(Xae(e.e));Te.e!=Te.i.gc();)fe=l(gr(Te),123),$e=fe.i,Ze=fe.j,$e>0&&Uu(fe,$e*ot),Ze>0&&Gu(fe,Ze*St);for(mA(e.b,new zg),t=new bt,g=new qm(new Sr(e.c).a);g.b;)f=Nw(g),r=l(f.ld(),74),n=l(f.md(),407).a,a=l6(r,!1,!1),L=Ngt(cg(r),QN(a),n),dP(L,a),Me=Kgt(r),Me&&gc(t,Me,0)==-1&&($n(t.c,Me),kat(Me,(mr(L.b!=0),l(L.a.a.c,8)),n));for(te=new qm(new Sr(e.d).a);te.b;)J=Nw(te),r=l(J.ld(),74),n=l(J.md(),407).a,a=l6(r,!1,!1),L=Ngt(Eb(r),AN(QN(a)),n),L=AN(L),dP(L,a),Me=Wgt(r),Me&&gc(t,Me,0)==-1&&($n(t.c,Me),kat(Me,(mr(L.b!=0),l(L.c.b.c,8)),n))}function qvt(e,t,n,r){var a,o,f,g,w;return g=new zke(t),lCn(g,r),a=!0,e&&e.pf((pi(),xv))&&(o=l(e.of((pi(),xv)),88),a=o==(Js(),J1)||o==uc||o==vc),zbt(g,!1),Vu(g.e.Rf(),new v4e(g,!1,a)),uoe(g,g.f,(t1(),Gc),(Ct(),Qn)),uoe(g,g.f,Kc,Dr),uoe(g,g.g,Gc,er),uoe(g,g.g,Kc,ar),bdt(g,Qn),bdt(g,Dr),wat(g,ar),wat(g,er),py(),f=g.A.Hc((mh(),A4))&&g.B.Hc((Zl(),aF))?N1t(g):null,f&&wun(g.a,f),bDn(g),m7n(g),v7n(g),HMn(g),m_n(g),V7n(g),Jce(g,Qn),Jce(g,Dr),WSn(g),mLn(g),n&&(J4n(g),U7n(g),Jce(g,ar),Jce(g,er),w=g.B.Hc((Zl(),FM)),Opt(g,w,Qn),Opt(g,w,Dr),Npt(g,w,ar),Npt(g,w,er),Is(new bn(null,new kn(new gi(g.i),0)),new Fc),Is(Fi(new bn(null,b5e(g.r).a.oc()),new xa),new Ba),sxn(g),g.e.Pf(g.o),Is(new bn(null,b5e(g.r).a.oc()),new ga)),g.o}function yDn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J;for(E=gs,r=new G(e.a.b);r.a1)for(z=new Ike(V,Me,r),to(Me,new Jet(e,z)),$n(f.c,z),L=Me.a.ec().Kc();L.Ob();)C=l(L.Pb(),42),al(o,C.b);if(g.a.gc()>1)for(z=new Ike(V,g,r),to(g,new Zet(e,z)),$n(f.c,z),L=g.a.ec().Kc();L.Ob();)C=l(L.Pb(),42),al(o,C.b)}}function TDn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe;if(J=e.n,te=e.o,B=e.d,L=ze(Ge(Py(e,(Nt(),ode)))),t){for(C=L*(t.gc()-1),z=0,w=t.Kc();w.Ob();)f=l(w.Pb(),10),C+=f.o.a,z=b.Math.max(z,f.o.b);for(fe=J.a-(C-te.a)/2,o=J.b-B.d+z,r=te.a/(t.gc()+1),a=r,g=t.Kc();g.Ob();)f=l(g.Pb(),10),f.n.a=fe,f.n.b=o-f.o.b,fe+=f.o.a+L,E=Q2t(f),E.n.a=f.o.a/2-E.a.a,E.n.b=f.o.b,V=l(Q(f,(ft(),rW)),12),V.e.c.length+V.g.c.length==1&&(V.n.a=a-V.a.a,V.n.b=0,Mc(V,e)),a+=r}if(n){for(C=L*(n.gc()-1),z=0,w=n.Kc();w.Ob();)f=l(w.Pb(),10),C+=f.o.a,z=b.Math.max(z,f.o.b);for(fe=J.a-(C-te.a)/2,o=J.b+te.b+B.a-z,r=te.a/(n.gc()+1),a=r,g=n.Kc();g.Ob();)f=l(g.Pb(),10),f.n.a=fe,f.n.b=o,fe+=f.o.a+L,E=Q2t(f),E.n.a=f.o.a/2-E.a.a,E.n.b=0,V=l(Q(f,(ft(),rW)),12),V.e.c.length+V.g.c.length==1&&(V.n.a=a-V.a.a,V.n.b=te.b,Mc(V,e)),a+=r}}function CDn(e,t){var n,r,a,o,f,g;if(l(Q(t,(ft(),Lu)),21).Hc((Ho(),vf))){for(g=new G(t.a);g.a=0&&f0&&(l(Qo(e.b,t),127).a.b=n)}function MDn(e,t,n,r){var a,o,f,g,w,E,C,L,B,z,V,J;if(B=ze(Ge(Q(e,(Nt(),GT)))),z=ze(Ge(Q(e,KT))),L=ze(Ge(Q(e,y4))),g=e.o,o=l(jt(e.j,0),12),f=o.n,J=K9n(o,L),!!J){if(t.Hc((Rl(),vp)))switch(l(Q(e,(ft(),Wc)),64).g){case 1:J.c=(g.a-J.b)/2-f.a,J.d=z;break;case 3:J.c=(g.a-J.b)/2-f.a,J.d=-z-J.a;break;case 2:n&&o.e.c.length==0&&o.g.c.length==0?(C=r?J.a:l(jt(o.f,0),72).o.b,J.d=(g.b-C)/2-f.b):J.d=g.b+z-f.b,J.c=-B-J.b;break;case 4:n&&o.e.c.length==0&&o.g.c.length==0?(C=r?J.a:l(jt(o.f,0),72).o.b,J.d=(g.b-C)/2-f.b):J.d=g.b+z-f.b,J.c=B}else if(t.Hc(Yb))switch(l(Q(e,(ft(),Wc)),64).g){case 1:case 3:J.c=f.a+B;break;case 2:case 4:n&&!o.c?(C=r?J.a:l(jt(o.f,0),72).o.b,J.d=(g.b-C)/2-f.b):J.d=f.b+z}for(a=J.d,E=new G(o.f);E.a=t.length)return{done:!0};var a=t[r++];return{value:[a,n.get(a)],done:!1}}}},_Sn()||(e.prototype.createObject=function(){return{}},e.prototype.get=function(t){return this.obj[":"+t]},e.prototype.set=function(t,n){this.obj[":"+t]=n},e.prototype[lhe]=function(t){delete this.obj[":"+t]},e.prototype.keys=function(){var t=[];for(var n in this.obj)n.charCodeAt(0)==58&&t.push(n.substring(1));return t}),e}function Qi(){Qi=U,gM=new Ui(NEe),new vs("DEPTH",pt(0)),Pde=new vs("FAN",pt(0)),nIe=new vs(gyt,pt(0)),Vb=new vs("ROOT",(Hn(),!1)),Rde=new vs("LEFTNEIGHBOR",null),dTt=new vs("RIGHTNEIGHBOR",null),BW=new vs("LEFTSIBLING",null),jde=new vs("RIGHTSIBLING",null),Nde=new vs("DUMMY",!1),new vs("LEVEL",pt(0)),sIe=new vs("REMOVABLE_EDGES",new os),PB=new vs("XCOOR",pt(0)),BB=new vs("YCOOR",pt(0)),FW=new vs("LEVELHEIGHT",0),c1=new vs("LEVELMIN",0),k0=new vs("LEVELMAX",0),Bde=new vs("GRAPH_XMIN",0),Fde=new vs("GRAPH_YMIN",0),rIe=new vs("GRAPH_XMAX",0),iIe=new vs("GRAPH_YMAX",0),tIe=new vs("COMPACT_LEVEL_ASCENSION",!1),Ode=new vs("COMPACT_CONSTRAINTS",new bt),dM=new vs("ID",""),pM=new vs("POSITION",pt(0)),C2=new vs("PRELIM",0),JT=new vs("MODIFIER",0),QT=new Ui(S3t),NB=new Ui(_3t)}function NDn(e){kke();var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te;if(e==null)return null;if(L=e.length*8,L==0)return"";for(g=L%24,z=L/24|0,B=g!=0?z+1:z,o=null,o=We(kf,Ad,28,B*4,15,1),E=0,C=0,t=0,n=0,r=0,f=0,a=0,w=0;w>24,E=(t&3)<<24>>24,V=t&-128?(t>>2^192)<<24>>24:t>>2<<24>>24,J=n&-128?(n>>4^240)<<24>>24:n>>4<<24>>24,te=r&-128?(r>>6^252)<<24>>24:r>>6<<24>>24,o[f++]=N2[V],o[f++]=N2[J|E<<4],o[f++]=N2[C<<2|te],o[f++]=N2[r&63];return g==8?(t=e[a],E=(t&3)<<24>>24,V=t&-128?(t>>2^192)<<24>>24:t>>2<<24>>24,o[f++]=N2[V],o[f++]=N2[E<<4],o[f++]=61,o[f++]=61):g==16&&(t=e[a],n=e[a+1],C=(n&15)<<24>>24,E=(t&3)<<24>>24,V=t&-128?(t>>2^192)<<24>>24:t>>2<<24>>24,J=n&-128?(n>>4^240)<<24>>24:n>>4<<24>>24,o[f++]=N2[V],o[f++]=N2[J|E<<4],o[f++]=N2[C<<2],o[f++]=61),If(o,0,o.length)}function PDn(e,t){var n,r,a,o,f,g,w;if(e.e==0&&e.p>0&&(e.p=-(e.p-1)),e.p>lo&&c6e(t,e.p-Lb),f=t.q.getDate(),YO(t,1),e.k>=0&&E2n(t,e.k),e.c>=0?YO(t,e.c):e.k>=0?(w=new R7e(t.q.getFullYear()-Lb,t.q.getMonth(),35),r=35-w.q.getDate(),YO(t,b.Math.min(r,f))):YO(t,f),e.f<0&&(e.f=t.q.getHours()),e.b>0&&e.f<12&&(e.f+=12),ghn(t,e.f==24&&e.g?0:e.f),e.j>=0&&svn(t,e.j),e.n>=0&&mvn(t,e.n),e.i>=0&&Qtt(t,bo(mo(KN(Zc(t.q.getTime()),b2),b2),e.i)),e.a&&(a=new Qz,c6e(a,a.q.getFullYear()-Lb-80),fse(Zc(t.q.getTime()),Zc(a.q.getTime()))&&c6e(t,a.q.getFullYear()-Lb+100)),e.d>=0){if(e.c==-1)n=(7+e.d-t.q.getDay())%7,n>3&&(n-=7),g=t.q.getMonth(),YO(t,t.q.getDate()+n),t.q.getMonth()!=g&&YO(t,t.q.getDate()+(n>0?-7:7));else if(t.q.getDay()!=e.d)return!1}return e.o>lo&&(o=t.q.getTimezoneOffset(),Qtt(t,bo(Zc(t.q.getTime()),(e.o-o)*60*b2))),!0}function Kvt(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e;if(a=Q(t,(ft(),zi)),!!De(a,207)){for(V=l(a,27),J=t.e,B=new Eo(t.c),o=t.d,B.a+=o.b,B.b+=o.d,$e=l(at(V,(Nt(),xW)),181),vl($e,(Zl(),uY))&&(z=l(at(V,WMe),107),Tie(z,o.a),mwe(z,o.d),Cie(z,o.b),x8(z,o.c)),n=new bt,C=new G(t.a);C.ar.c.length-1;)vt(r,new ca(y6,hCe));n=l(Q(a,$d),17).a,Ug(l(Q(e,y3),88))?(a.e.aze(Ge((Sn(n,r.c.length),l(r.c[n],42)).b))&&ct((Sn(n,r.c.length),l(r.c[n],42)),a.e.a+a.f.a)):(a.e.bze(Ge((Sn(n,r.c.length),l(r.c[n],42)).b))&&ct((Sn(n,r.c.length),l(r.c[n],42)),a.e.b+a.f.b))}for(o=Rr(e.b,0);o.b!=o.d.c;)a=l(Br(o),40),n=l(Q(a,(Hc(),$d)),17).a,rt(a,(Qi(),c1),Ge((Sn(n,r.c.length),l(r.c[n],42)).a)),rt(a,k0,Ge((Sn(n,r.c.length),l(r.c[n],42)).b));t.Vg()}function FDn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J;for(e.o=ze(Ge(Q(e.i,(Nt(),m3)))),e.f=ze(Ge(Q(e.i,vv))),e.j=e.i.b.c.length,g=e.j-1,B=0,e.k=0,e.n=0,e.b=O1(We(ro,dt,17,e.j,0,1)),e.c=O1(We(ta,dt,345,e.j,7,1)),f=new G(e.i.b);f.a0&&vt(e.q,C),vt(e.p,C);t-=r,z=w+t,E+=t*e.f,rf(e.b,g,pt(z)),rf(e.c,g,E),e.k=b.Math.max(e.k,z),e.n=b.Math.max(e.n,E),e.e+=t,t+=J}}function Ct(){Ct=U;var e;Pc=new wO(cL,0),Qn=new wO(nG,1),ar=new wO(yhe,2),Dr=new wO(xhe,3),er=new wO(khe,4),ed=(Cn(),new Ek((e=l(K0(Oo),9),new Zh(e,l(c0(e,e.length),9),0)))),_0=a2(rs(Qn,he(le(Oo,1),au,64,0,[]))),yf=a2(rs(ar,he(le(Oo,1),au,64,0,[]))),$h=a2(rs(Dr,he(le(Oo,1),au,64,0,[]))),Hf=a2(rs(er,he(le(Oo,1),au,64,0,[]))),hl=a2(rs(Qn,he(le(Oo,1),au,64,0,[Dr]))),Ju=a2(rs(ar,he(le(Oo,1),au,64,0,[er]))),A0=a2(rs(Qn,he(le(Oo,1),au,64,0,[er]))),zl=a2(rs(Qn,he(le(Oo,1),au,64,0,[ar]))),zh=a2(rs(Dr,he(le(Oo,1),au,64,0,[er]))),xf=a2(rs(ar,he(le(Oo,1),au,64,0,[Dr]))),ql=a2(rs(Qn,he(le(Oo,1),au,64,0,[ar,er]))),ll=a2(rs(ar,he(le(Oo,1),au,64,0,[Dr,er]))),fl=a2(rs(Qn,he(le(Oo,1),au,64,0,[Dr,er]))),_l=a2(rs(Qn,he(le(Oo,1),au,64,0,[ar,Dr]))),Du=a2(rs(Qn,he(le(Oo,1),au,64,0,[ar,Dr,er])))}function RDn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St;for(t.Ug(K3t,1),J=new bt,ot=new bt,E=new G(e.b);E.a0&&(Me-=z),Oke(f,Me),C=0,B=new G(f.a);B.a0),g.a.Xb(g.c=--g.b)),w=.4*r*C,!o&&g.b0&&(w=(Xn(0,t.length),t.charCodeAt(0)),w!=64)){if(w==37&&(L=t.lastIndexOf("%"),E=!1,L!=0&&(L==B-1||(E=(Xn(L+1,t.length),t.charCodeAt(L+1)==46))))){if(f=(Ga(1,L,t.length),t.substr(1,L-1)),Me=vn("%",f)?null:Vke(f),r=0,E)try{r=Oh((Xn(L+2,t.length+1),t.substr(L+2)),lo,Ii)}catch($e){throw $e=bs($e),De($e,130)?(g=$e,ue(new nV(g))):ue($e)}for(te=m7e(e.Gh());te.Ob();)if(V=MV(te),De(V,519)&&(a=l(V,598),Te=a.d,(Me==null?Te==null:vn(Me,Te))&&r--==0))return a;return null}if(C=t.lastIndexOf("."),z=C==-1?t:(Ga(0,C,t.length),t.substr(0,C)),n=0,C!=-1)try{n=Oh((Xn(C+1,t.length+1),t.substr(C+1)),lo,Ii)}catch($e){if($e=bs($e),De($e,130))z=t;else throw ue($e)}for(z=vn("%",z)?null:Vke(z),J=m7e(e.Gh());J.Ob();)if(V=MV(J),De(V,197)&&(o=l(V,197),fe=o.xe(),(z==null?fe==null:vn(z,fe))&&n--==0))return o;return null}return Bvt(e,t)}function GDn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te;for(C=new Pr,w=new Cw,r=new G(e.a.a.b);r.at.d.c){if(z=e.c[t.a.d],te=e.c[L.a.d],z==te)continue;p0(s0(i0(a0(r0(new _f,1),100),z),te))}}}}}function KDn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot;if(B=l(l($i(e.r,t),21),87),t==(Ct(),ar)||t==er){Vvt(e,t);return}for(o=t==Qn?(Pw(),rB):(Pw(),iB),$e=t==Qn?(ol(),a1):(ol(),w0),n=l(Qo(e.b,t),127),r=n.i,a=r.c+Y5(he(le(Na,1),Zo,28,15,[n.n.b,e.C.b,e.k])),fe=r.c+r.b-Y5(he(le(Na,1),Zo,28,15,[n.n.c,e.C.c,e.k])),f=i3e(y4e(o),e.t),Te=t==Qn?ia:gs,L=B.Kc();L.Ob();)E=l(L.Pb(),117),!(!E.c||E.c.d.c.length<=0)&&(te=E.b.Mf(),J=E.e,z=E.c,V=z.i,V.b=(w=z.n,z.e.a+w.b+w.c),V.a=(g=z.n,z.e.b+g.d+g.a),UO($e,yEe),z.f=$e,Z0(z,(Bl(),v0)),V.c=J.a-(V.b-te.a)/2,Ze=b.Math.min(a,J.a),ot=b.Math.max(fe,J.a+te.a),V.cot&&(V.c=ot-V.b),vt(f.d,new Dae(V,h8e(f,V))),Te=t==Qn?b.Math.max(Te,J.b+E.b.Mf().b):b.Math.min(Te,J.b));for(Te+=t==Qn?e.t:-e.t,Me=M8e((f.e=Te,f)),Me>0&&(l(Qo(e.b,t),127).a.b=Me),C=B.Kc();C.Ob();)E=l(C.Pb(),117),!(!E.c||E.c.d.c.length<=0)&&(V=E.c.i,V.c-=E.e.a,V.d-=E.e.b)}function WDn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z;for(t=new Pr,w=new or(e);w.e!=w.i.gc();){for(g=l(gr(w),27),n=new Ks,ki(X0e,g,n),z=new Bp,a=l(yc(new bn(null,new vw(new hr(dr(sP(g).a.Kc(),new j)))),dst(z,Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)])))),85),Kht(n,l(a.xc((Hn(),!0)),16),new Y3),r=l(yc(Fi(l(a.xc(!1),15).Lc(),new $9),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[Ec]))),15),f=r.Kc();f.Ob();)o=l(f.Pb(),74),B=Kgt(o),B&&(E=l(hc(zo(t.f,B)),21),E||(E=bbt(B),ju(t.f,B,E)),Ka(n,E));for(a=l(yc(new bn(null,new vw(new hr(dr(cp(g).a.Kc(),new j)))),dst(z,Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[Ec])))),85),Kht(n,l(a.xc(!0),16),new c5),r=l(yc(Fi(l(a.xc(!1),15).Lc(),new Eh),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[Ec]))),15),L=r.Kc();L.Ob();)C=l(L.Pb(),74),B=Wgt(C),B&&(E=l(hc(zo(t.f,B)),21),E||(E=bbt(B),ju(t.f,B,E)),Ka(n,E))}}function YDn(e,t){ble();var n,r,a,o,f,g,w,E,C,L,B,z,V,J;if(w=iu(e,0)<0,w&&(e=r2(e)),iu(e,0)==0)switch(t){case 0:return"0";case 1:return sT;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return z=new tb,t<0?z.a+="0E+":z.a+="0E",z.a+=t==lo?"2147483648":""+-t,z.a}C=18,L=We(kf,Ad,28,C+1,15,1),n=C,J=e;do E=J,J=KN(J,10),L[--n]=Yr(bo(48,Df(E,mo(J,10))))&Zs;while(iu(J,0)!=0);if(a=Df(Df(Df(C,n),t),1),t==0)return w&&(L[--n]=45),If(L,n,C-n);if(t>0&&iu(a,-6)>=0){if(iu(a,0)>=0){for(o=n+Yr(a),g=C-1;g>=o;g--)L[g+1]=L[g];return L[++o]=46,w&&(L[--n]=45),If(L,n,C-n+1)}for(f=2;fse(f,bo(r2(a),1));f++)L[--n]=48;return L[--n]=46,L[--n]=48,w&&(L[--n]=45),If(L,n,C-n)}return V=n+1,r=C,B=new S5,w&&(B.a+="-"),r-V>=1?(hb(B,L[n]),B.a+=".",B.a+=If(L,n+1,C-n-1)):B.a+=If(L,n,C-n),B.a+="E",iu(a,0)>0&&(B.a+="+"),B.a+=""+Y_(a),B.a}function Gw(e,t,n,r,a){var o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot;if(te=new lt(e.g,e.f),J=a9e(e),J.a=b.Math.max(J.a,t),J.b=b.Math.max(J.b,n),ot=J.a/te.a,C=J.b/te.b,$e=J.a-te.a,w=J.b-te.b,r)for(f=ds(e)?l(at(ds(e),(pi(),xv)),88):l(at(e,(pi(),xv)),88),g=qe(at(e,(pi(),_M)))===qe((Ra(),Mu)),Te=new or((!e.c&&(e.c=new nt(Hl,e,9,9)),e.c));Te.e!=Te.i.gc();)switch(fe=l(gr(Te),123),Me=l(at(fe,s7),64),Me==(Ct(),Pc)&&(Me=Eke(fe,f),Hi(fe,s7,Me)),Me.g){case 1:g||Uu(fe,fe.i*ot);break;case 2:Uu(fe,fe.i+$e),g||Gu(fe,fe.j*C);break;case 3:g||Uu(fe,fe.i*ot),Gu(fe,fe.j+w);break;case 4:g||Gu(fe,fe.j*C)}if(F5(e,J.a,J.b),a)for(B=new or((!e.n&&(e.n=new nt(ec,e,1,7)),e.n));B.e!=B.i.gc();)L=l(gr(B),135),z=L.i+L.g/2,V=L.j+L.f/2,Ze=z/te.a,E=V/te.b,Ze+E>=1&&(Ze-E>0&&V>=0?(Uu(L,L.i+$e),Gu(L,L.j+w*E)):Ze-E<0&&z>=0&&(Uu(L,L.i+$e*Ze),Gu(L,L.j+w)));return Hi(e,(pi(),kv),(mh(),o=l(K0(BM),9),new Zh(o,l(c0(o,o.length),9),0))),new lt(ot,C)}function Qvt(e){sw(e,new Xm(Uz(nw(Zv(tw(ew(new x1,gf),"ELK Radial"),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new fu),gf))),gt(e,gf,_G,It(uCt)),gt(e,gf,Jy,It(lCt)),gt(e,gf,x6,It(sCt)),gt(e,gf,Px,It(aCt)),gt(e,gf,Nx,It(oCt)),gt(e,gf,fT,It(iCt)),gt(e,gf,fL,It(NIe)),gt(e,gf,dT,It(cCt)),gt(e,gf,Cfe,It(Jde)),gt(e,gf,Tfe,It(Zde)),gt(e,gf,NG,It(BIe)),gt(e,gf,Sfe,It(ege)),gt(e,gf,_fe,It(FIe)),gt(e,gf,MCe,It(RIe)),gt(e,gf,LCe,It(PIe)),gt(e,gf,CCe,It(qW)),gt(e,gf,SCe,It(HW)),gt(e,gf,_Ce,It(FB)),gt(e,gf,ACe,It(jIe)),gt(e,gf,TCe,It(OIe))}function KU(e){var t,n,r,a,o,f,g,w,E,C,L;if(e==null)throw ue(new gd(ul));if(E=e,o=e.length,w=!1,o>0&&(t=(Xn(0,e.length),e.charCodeAt(0)),(t==45||t==43)&&(e=(Xn(1,e.length+1),e.substr(1)),--o,w=t==45)),o==0)throw ue(new gd(Yw+E+'"'));for(;e.length>0&&(Xn(0,e.length),e.charCodeAt(0)==48);)e=(Xn(1,e.length+1),e.substr(1)),--o;if(o>(Amt(),b6t)[10])throw ue(new gd(Yw+E+'"'));for(a=0;a0&&(L=-parseInt((Ga(0,r,e.length),e.substr(0,r)),10),e=(Xn(r,e.length+1),e.substr(r)),o-=r,n=!1);o>=f;){if(r=parseInt((Ga(0,f,e.length),e.substr(0,f)),10),e=(Xn(f,e.length+1),e.substr(f)),o-=f,n)n=!1;else{if(iu(L,g)<0)throw ue(new gd(Yw+E+'"'));L=mo(L,C)}L=Df(L,r)}if(iu(L,0)>0)throw ue(new gd(Yw+E+'"'));if(!w&&(L=r2(L),iu(L,0)<0))throw ue(new gd(Yw+E+'"'));return L}function Vke(e){kle();var t,n,r,a,o,f,g,w;if(e==null)return null;if(a=pd(e,cl(37)),a<0)return e;for(w=new Th((Ga(0,a,e.length),e.substr(0,a))),t=We(Al,C6,28,4,15,1),g=0,r=0,f=e.length;aa+2&&mce((Xn(a+1,e.length),e.charCodeAt(a+1)),kPe,EPe)&&mce((Xn(a+2,e.length),e.charCodeAt(a+2)),kPe,EPe))if(n=bdn((Xn(a+1,e.length),e.charCodeAt(a+1)),(Xn(a+2,e.length),e.charCodeAt(a+2))),a+=2,r>0?(n&192)==128?t[g++]=n<<24>>24:r=0:n>=128&&((n&224)==192?(t[g++]=n<<24>>24,r=2):(n&240)==224?(t[g++]=n<<24>>24,r=3):(n&248)==240&&(t[g++]=n<<24>>24,r=4)),r>0){if(g==r){switch(g){case 2:{hb(w,((t[0]&31)<<6|t[1]&63)&Zs);break}case 3:{hb(w,((t[0]&15)<<12|(t[1]&63)<<6|t[2]&63)&Zs);break}}g=0,r=0}}else{for(o=0;o=2){if((!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i==0)n=(rb(),a=new rk,a),qr((!e.a&&(e.a=new nt(cs,e,6,6)),e.a),n);else if((!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i>1)for(B=new q8((!e.a&&(e.a=new nt(cs,e,6,6)),e.a));B.e!=B.i.gc();)jA(B);dP(t,l(Oe((!e.a&&(e.a=new nt(cs,e,6,6)),e.a),0),166))}if(L)for(r=new or((!e.a&&(e.a=new nt(cs,e,6,6)),e.a));r.e!=r.i.gc();)for(n=l(gr(r),166),E=new or((!n.a&&(n.a=new Ys(qh,n,5)),n.a));E.e!=E.i.gc();)w=l(gr(E),377),g.a=b.Math.max(g.a,w.a),g.b=b.Math.max(g.b,w.b);for(f=new or((!e.n&&(e.n=new nt(ec,e,1,7)),e.n));f.e!=f.i.gc();)o=l(gr(f),135),C=l(at(o,MM),8),C&&Qh(o,C.a,C.b),L&&(g.a=b.Math.max(g.a,o.i+o.g),g.b=b.Math.max(g.b,o.j+o.f));return g}function Zvt(e,t,n,r,a){var o,f,g;if(eht(e,t),f=t[0],o=co(n.c,0),g=-1,z7e(n))if(r>0){if(f+r>e.length)return!1;g=kU((Ga(0,f+r,e.length),e.substr(0,f+r)),t)}else g=kU(e,t);switch(o){case 71:return g=o6(e,f,he(le(zt,1),dt,2,6,[Rwt,jwt]),t),a.e=g,!0;case 77:return hSn(e,t,a,g,f);case 76:return fSn(e,t,a,g,f);case 69:return rkn(e,t,f,a);case 99:return ikn(e,t,f,a);case 97:return g=o6(e,f,he(le(zt,1),dt,2,6,["AM","PM"]),t),a.b=g,!0;case 121:return dSn(e,t,f,g,n,a);case 100:return g<=0?!1:(a.c=g,!0);case 83:return g<0?!1:w5n(g,f,t[0],a);case 104:g==12&&(g=0);case 75:case 72:return g<0?!1:(a.f=g,a.g=!1,!0);case 107:return g<0?!1:(a.f=g,a.g=!0,!0);case 109:return g<0?!1:(a.j=g,!0);case 115:return g<0?!1:(a.n=g,!0);case 90:if(fcn[w]&&(te=w),L=new G(e.a.b);L.a1;){if(a=iCn(t),L=o.g,V=l(at(t,vM),107),J=ze(Ge(at(t,KW))),(!t.a&&(t.a=new nt(Ai,t,10,11)),t.a).i>1&&ze(Ge(at(t,(ug(),cge))))!=gs&&(o.c+(V.b+V.c))/(o.b+(V.d+V.a))1&&ze(Ge(at(t,(ug(),oge))))!=gs&&(o.c+(V.b+V.c))/(o.b+(V.d+V.a))>J&&Hi(a,(ug(),T4),b.Math.max(ze(Ge(at(t,mM))),ze(Ge(at(a,T4)))-ze(Ge(at(t,oge))))),z=new Q3e(r,C),w=wwt(z,a,B),E=w.g,E>=L&&E==E){for(f=0;f<(!a.a&&(a.a=new nt(Ai,a,10,11)),a.a).i;f++)Gpt(e,l(Oe((!a.a&&(a.a=new nt(Ai,a,10,11)),a.a),f),27),l(Oe((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a),f),27));Sht(t,z),c2n(o,w.c),o2n(o,w.b)}--g}Hi(t,(ug(),ZT),o.b),Hi(t,Zx,o.c),n.Vg()}function ZDn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te;for(t.Ug("Interactive node layering",1),n=new bt,B=new G(e.a);B.a=g){mr(Te.b>0),Te.a.Xb(Te.c=--Te.b);break}else te.a>w&&(r?(ra(r.b,te.b),r.a=b.Math.max(r.a,te.a),ph(Te)):(vt(te.b,C),te.c=b.Math.min(te.c,w),te.a=b.Math.max(te.a,g),r=te));r||(r=new GQe,r.c=w,r.a=g,by(Te,r),vt(r.b,C))}for(f=e.b,E=0,fe=new G(n);fe.az&&(o&&(ko(ot,B),ko(cn,pt(E.b-1))),oi=n.b,ws+=B+t,B=0,C=b.Math.max(C,n.b+n.c+ur)),Uu(g,oi),Gu(g,ws),C=b.Math.max(C,oi+ur+n.c),B=b.Math.max(B,L),oi+=ur+t;if(C=b.Math.max(C,r),jn=ws+B+n.a,jnDd,an=b.Math.abs(B.b-V.b)>Dd,(!n&&cn&&an||n&&(cn||an))&&ci(te.a,$e)),Ka(te.a,r),r.b==0?B=$e:B=(mr(r.b!=0),l(r.c.b.c,8)),j3n(z,L,J),Cft(a)==St&&(eo(St.i)!=a.a&&(J=new qa,n9e(J,eo(St.i),Te)),rt(te,Y1e,J)),x9n(z,te,Te),C.a.zc(z,C);po(te,Ze),Fa(te,St)}for(E=C.a.ec().Kc();E.Ob();)w=l(E.Pb(),18),po(w,null),Fa(w,null);t.Vg()}function nIn(e,t){var n,r,a,o,f,g,w,E,C,L,B;for(a=l(Q(e,(Hc(),y3)),88),C=a==(Js(),uc)||a==vc?Q1:vc,n=l(yc(Fi(new bn(null,new kn(e.b,16)),new pI),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15),w=l(yc(fc(n.Oc(),new dXe(t)),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[Ec]))),15),w.Gc(l(yc(fc(n.Oc(),new gXe(t)),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[Ec]))),16)),w.jd(new pXe(C)),B=new Kp(new bXe(a)),r=new Pr,g=w.Kc();g.Ob();)f=l(g.Pb(),240),E=l(f.a,40),Rt(Bt(f.c))?(B.a.zc(E,(Hn(),Pb))==null,new ba(B.a.Zc(E,!1)).a.gc()>0&&ki(r,E,l(new ba(B.a.Zc(E,!1)).a.Vc(),40)),new ba(B.a.ad(E,!0)).a.gc()>1&&ki(r,L1t(B,E),E)):(new ba(B.a.Zc(E,!1)).a.gc()>0&&(o=l(new ba(B.a.Zc(E,!1)).a.Vc(),40),qe(o)===qe(hc(zo(r.f,E)))&&l(Q(E,(Qi(),Ode)),15).Fc(o)),new ba(B.a.ad(E,!0)).a.gc()>1&&(L=L1t(B,E),qe(hc(zo(r.f,L)))===qe(E)&&l(Q(L,(Qi(),Ode)),15).Fc(E)),B.a.Bc(E)!=null)}function ewt(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e;if(e.gc()==1)return l(e.Xb(0),235);if(e.gc()<=0)return new KH;for(a=e.Kc();a.Ob();){for(n=l(a.Pb(),235),V=0,C=Ii,L=Ii,w=lo,E=lo,z=new G(n.e);z.ag&&(Me=0,$e+=f+fe,f=0),L_n(J,n,Me,$e),t=b.Math.max(t,Me+te.a),f=b.Math.max(f,te.b),Me+=te.a+fe;return J}function rIn(e){kke();var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te;if(e==null||(o=iV(e),V=D4n(o),V%4!=0))return null;if(J=V/4|0,J==0)return We(Al,C6,28,0,15,1);for(L=null,t=0,n=0,r=0,a=0,f=0,g=0,w=0,E=0,z=0,B=0,C=0,L=We(Al,C6,28,J*3,15,1);z>4)<<24>>24,L[B++]=((n&15)<<4|r>>2&15)<<24>>24,L[B++]=(r<<6|a)<<24>>24}return!eO(f=o[C++])||!eO(g=o[C++])?null:(t=nd[f],n=nd[g],w=o[C++],E=o[C++],nd[w]==-1||nd[E]==-1?w==61&&E==61?n&15?null:(te=We(Al,C6,28,z*3+1,15,1),pu(L,0,te,0,z*3),te[B]=(t<<2|n>>4)<<24>>24,te):w!=61&&E==61?(r=nd[w],r&3?null:(te=We(Al,C6,28,z*3+2,15,1),pu(L,0,te,0,z*3),te[B++]=(t<<2|n>>4)<<24>>24,te[B]=((n&15)<<4|r>>2&15)<<24>>24,te)):null:(r=nd[w],a=nd[E],L[B++]=(t<<2|n>>4)<<24>>24,L[B++]=((n&15)<<4|r>>2&15)<<24>>24,L[B++]=(r<<6|a)<<24>>24,L))}function iIn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze;for(t.Ug(K3t,1),V=l(Q(e,(Nt(),bp)),223),a=new G(e.b);a.a=2){for(J=!0,B=new G(o.j),n=l(re(B),12),z=null;B.a0)if(r=L.gc(),E=ua(b.Math.floor((r+1)/2))-1,a=ua(b.Math.ceil((r+1)/2))-1,t.o==Y1)for(C=a;C>=E;C--)t.a[$e.p]==$e&&(J=l(L.Xb(C),42),V=l(J.a,10),!W0(n,J.b)&&z>e.b.e[V.p]&&(t.a[V.p]=$e,t.g[$e.p]=t.g[V.p],t.a[$e.p]=t.g[$e.p],t.f[t.g[$e.p].p]=(Hn(),!!(Rt(t.f[t.g[$e.p].p])&$e.k==(Zn(),Aa))),z=e.b.e[V.p]));else for(C=E;C<=a;C++)t.a[$e.p]==$e&&(fe=l(L.Xb(C),42),te=l(fe.a,10),!W0(n,fe.b)&&z0&&(a=l(jt(te.c.a,ot-1),10),f=e.i[a.p],cn=b.Math.ceil(j5(e.n,a,te)),o=Ze.a.e-te.d.d-(f.a.e+a.o.b+a.d.a)-cn),E=gs,ot0&&St.a.e.e-St.a.a-(St.b.e.e-St.b.a)<0,V=Me.a.e.e-Me.a.a-(Me.b.e.e-Me.b.a)<0&&St.a.e.e-St.a.a-(St.b.e.e-St.b.a)>0,z=Me.a.e.e+Me.b.aSt.b.e.e+St.a.a,$e=0,!J&&!V&&(B?o+L>0?$e=L:E-r>0&&($e=r):z&&(o+g>0?$e=g:E-Te>0&&($e=Te))),Ze.a.e+=$e,Ze.b&&(Ze.d.e+=$e),!1))}function nwt(e,t,n){var r,a,o,f,g,w,E,C,L,B;if(r=new ef(t.Lf().a,t.Lf().b,t.Mf().a,t.Mf().b),a=new $8,e.c)for(f=new G(t.Rf());f.aE&&(r.a+=Mnt(We(kf,Ad,28,-E,15,1))),r.a+="Is",pd(w,cl(32))>=0)for(a=0;a=r.o.b/2}else Te=!L;Te?(fe=l(Q(r,(ft(),Qx)),15),fe?B?o=fe:(a=l(Q(r,Gx),15),a?fe.gc()<=a.gc()?o=fe:o=a:(o=new bt,rt(r,Gx,o))):(o=new bt,rt(r,Qx,o))):(a=l(Q(r,(ft(),Gx)),15),a?L?o=a:(fe=l(Q(r,Qx),15),fe?a.gc()<=fe.gc()?o=a:o=fe:(o=new bt,rt(r,Qx,o))):(o=new bt,rt(r,Gx,o))),o.Fc(e),rt(e,(ft(),rW),n),t.d==n?(Fa(t,null),n.e.c.length+n.g.c.length==0&&Mc(n,null),kyn(n)):(po(t,null),n.e.c.length+n.g.c.length==0&&Mc(n,null)),Ch(t.a)}function cIn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur,oi,ws;for(n.Ug("MinWidth layering",1),z=t.b,St=t.a,ws=l(Q(t,(Nt(),zMe)),17).a,g=l(Q(t,qMe),17).a,e.b=ze(Ge(Q(t,x0))),e.d=gs,$e=new G(St);$e.a<$e.c.c.length;)Te=l(re($e),10),Te.k==(Zn(),Ps)&&(Bn=Te.o.b,e.d=b.Math.min(e.d,Bn));for(e.d=b.Math.max(1,e.d),cn=St.c.length,e.c=We(Vr,di,28,cn,15,1),e.f=We(Vr,di,28,cn,15,1),e.e=We(Na,Zo,28,cn,15,1),E=0,e.a=0,Ze=new G(St);Ze.a0?(E=0,te&&(E+=g),E+=(an-1)*f,Me&&(E+=g),cn&&Me&&(E=b.Math.max(E,ACn(Me,f,Te,St))),E=e.a&&(r=VAn(e,Te),C=b.Math.max(C,r.b),$e=b.Math.max($e,r.d),vt(g,new ca(Te,r)));for(cn=new bt,E=0;E0),te.a.Xb(te.c=--te.b),an=new yu(e.b),by(te,an),mr(te.b0){for(B=C<100?null:new nb(C),E=new T7e(t),V=E.g,fe=We(Vr,di,28,C,15,1),r=0,$e=new Lw(C),a=0;a=0;)if(z!=null?Pi(z,V[w]):qe(z)===qe(V[w])){fe.length<=r&&(te=fe,fe=We(Vr,di,28,2*fe.length,15,1),pu(te,0,fe,0,r)),fe[r++]=a,qr($e,V[w]);break e}if(z=z,qe(z)===qe(g))break}}if(E=$e,V=$e.g,C=r,r>fe.length&&(te=fe,fe=We(Vr,di,28,r,15,1),pu(te,0,fe,0,r)),r>0){for(Me=!0,o=0;o=0;)vx(e,fe[f]);if(r!=C){for(a=C;--a>=r;)vx(E,a);te=fe,fe=We(Vr,di,28,r,15,1),pu(te,0,fe,0,r)}t=E}}}else for(t=C7n(e,t),a=e.i;--a>=0;)t.Hc(e.g[a])&&(vx(e,a),Me=!0);if(Me){if(fe!=null){for(n=t.gc(),L=n==1?rA(e,4,t.Kc().Pb(),null,fe[0],J):rA(e,6,t,fe,fe[0],J),B=n<100?null:new nb(n),a=t.Kc();a.Ob();)z=a.Pb(),B=d4e(e,l(z,76),B);B?(B.nj(L),B.oj()):Ni(e.e,L)}else{for(B=Dfn(t.gc()),a=t.Kc();a.Ob();)z=a.Pb(),B=d4e(e,l(z,76),B);B&&B.oj()}return!0}else return!1}function hIn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me;for(n=new xdt(t),n.a||$_n(t),E=FSn(t),w=new Cw,te=new Ebt,J=new G(t.a);J.a0||n.o==Y1&&a=n}function dIn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur;for(Me=t,Te=new Cw,$e=new Cw,C=Aw(Me,fSe),r=new Mat(e,n,Te,$e),O9n(r.a,r.b,r.c,r.d,C),w=(St=Te.i,St||(Te.i=new q5(Te,Te.c))),an=w.Kc();an.Ob();)for(cn=l(an.Pb(),166),a=l($i(Te,cn),21),J=a.Kc();J.Ob();)if(V=J.Pb(),Ze=l(X5(e.d,V),166),Ze)g=(!cn.e&&(cn.e=new Ln(cs,cn,10,9)),cn.e),qr(g,Ze);else throw f=Yg(Me,Pd),B=y4t+V+x4t+f,z=B+kT,ue(new dd(z));for(E=(ot=$e.i,ot||($e.i=new q5($e,$e.c))),jn=E.Kc();jn.Ob();)for(Bn=l(jn.Pb(),166),o=l($i($e,Bn),21),fe=o.Kc();fe.Ob();)if(te=fe.Pb(),Ze=l(X5(e.d,te),166),Ze)L=(!Bn.g&&(Bn.g=new Ln(cs,Bn,9,10)),Bn.g),qr(L,Ze);else throw f=Yg(Me,Pd),B=y4t+te+x4t+f,z=B+kT,ue(new dd(z));!n.b&&(n.b=new Ln(_r,n,4,7)),n.b.i!=0&&(!n.c&&(n.c=new Ln(_r,n,5,8)),n.c.i!=0)&&(!n.b&&(n.b=new Ln(_r,n,4,7)),n.b.i<=1&&(!n.c&&(n.c=new Ln(_r,n,5,8)),n.c.i<=1))&&(!n.a&&(n.a=new nt(cs,n,6,6)),n.a).i==1&&(ur=l(Oe((!n.a&&(n.a=new nt(cs,n,6,6)),n.a),0),166),!aue(ur)&&!oue(ur)&&(wV(ur,l(Oe((!n.b&&(n.b=new Ln(_r,n,4,7)),n.b),0),84)),yV(ur,l(Oe((!n.c&&(n.c=new Ln(_r,n,5,8)),n.c),0),84))))}function gIn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn;for(Me=e.a,$e=0,Ze=Me.length;$e0?(L=l(jt(B.c.a,f-1),10),cn=j5(e.b,B,L),te=B.n.b-B.d.d-(L.n.b+L.o.b+L.d.a+cn)):te=B.n.b-B.d.d,E=b.Math.min(te,E),f1&&(f=b.Math.min(f,b.Math.abs(l(ff(g.a,1),8).b-C.b)))));else for(J=new G(t.j);J.aa&&(o=B.a-a,f=Ii,r.c.length=0,a=B.a),B.a>=a&&($n(r.c,g),g.a.b>1&&(f=b.Math.min(f,b.Math.abs(l(ff(g.a,g.a.b-2),8).b-B.b)))));if(r.c.length!=0&&o>t.o.a/2&&f>t.o.b/2){for(z=new gu,Mc(z,t),la(z,(Ct(),Qn)),z.n.a=t.o.a/2,fe=new gu,Mc(fe,t),la(fe,Dr),fe.n.a=t.o.a/2,fe.n.b=t.o.b,w=new G(r);w.a=E.b?po(g,fe):po(g,z)):(E=l(sdn(g.a),8),te=g.a.b==0?I1(g.c):l(o0(g.a),8),te.b>=E.b?Fa(g,fe):Fa(g,z)),L=l(Q(g,(Nt(),cc)),75),L&&Ny(L,E,!0);t.n.a=a-t.o.a/2}}function bIn(e,t,n){var r,a,o,f,g,w,E,C,L,B;for(g=Rr(e.b,0);g.b!=g.d.c;)if(f=l(Br(g),40),!vn(f.c,DG))for(E=zEn(f,e),t==(Js(),uc)||t==vc?Vs(E,new ene):Vs(E,new tne),w=E.c.length,r=0;r=0?z=gx(g):z=BN(gx(g)),e.qf(VT,z)),E=new qa,B=!1,e.pf(p3)?(Fye(E,l(e.of(p3),8)),B=!0):Shn(E,f.a/2,f.b/2),z.g){case 4:rt(C,Qu,(hf(),$b)),rt(C,sW,(Vm(),P6)),C.o.b=f.b,J<0&&(C.o.a=-J),la(L,(Ct(),ar)),B||(E.a=f.a),E.a-=f.a;break;case 2:rt(C,Qu,(hf(),d4)),rt(C,sW,(Vm(),FT)),C.o.b=f.b,J<0&&(C.o.a=-J),la(L,(Ct(),er)),B||(E.a=0);break;case 1:rt(C,hv,(ep(),F6)),C.o.a=f.a,J<0&&(C.o.b=-J),la(L,(Ct(),Dr)),B||(E.b=f.b),E.b-=f.b;break;case 3:rt(C,hv,(ep(),Ux)),C.o.a=f.a,J<0&&(C.o.b=-J),la(L,(Ct(),Qn)),B||(E.b=0)}if(Fye(L.n,E),rt(C,p3,E),t==Tv||t==Tg||t==Mu){if(V=0,t==Tv&&e.pf(k2))switch(z.g){case 1:case 2:V=l(e.of(k2),17).a;break;case 3:case 4:V=-l(e.of(k2),17).a}else switch(z.g){case 4:case 2:V=o.b,t==Tg&&(V/=a.b);break;case 1:case 3:V=o.a,t==Tg&&(V/=a.a)}rt(C,l3,V)}return rt(C,Wc,z),C}function mIn(){c3e();function e(r){var a=this;this.dispatch=function(o){var f=o.data;switch(f.cmd){case"algorithms":var g=L8e((Cn(),new $a(new gi(Qb.b))));r.postMessage({id:f.id,data:g});break;case"categories":var w=L8e((Cn(),new $a(new gi(Qb.c))));r.postMessage({id:f.id,data:w});break;case"options":var E=L8e((Cn(),new $a(new gi(Qb.d))));r.postMessage({id:f.id,data:E});break;case"register":yMn(f.algorithms),r.postMessage({id:f.id});break;case"layout":YAn(f.graph,f.layoutOptions||{},f.options||{}),r.postMessage({id:f.id,data:f.graph});break}},this.saveDispatch=function(o){try{a.dispatch(o)}catch(f){r.postMessage({id:o.data.id,error:f})}}}function t(r){var a=this;this.dispatcher=new e({postMessage:function(o){a.onmessage({data:o})}}),this.postMessage=function(o){setTimeout(function(){a.dispatcher.saveDispatch({data:o})},0)}}if(typeof document===ghe&&typeof self!==ghe){var n=new e(self);self.onmessage=n.saveDispatch}else typeof d!==ghe&&d.exports&&(Object.defineProperty(p,"__esModule",{value:!0}),d.exports={default:t,Worker:t})}function cwt(e,t,n){var r,a,o,f,g,w,E,C,L,B;for(C=new op(n),pc(C,t),rt(C,(ft(),zi),t),C.o.a=t.g,C.o.b=t.f,C.n.a=t.i,C.n.b=t.j,vt(n.a,C),ki(e.a,t,C),((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a).i!=0||Rt(Bt(at(t,(Nt(),b4)))))&&rt(C,FLe,(Hn(),!0)),E=l(Q(n,Lu),21),L=l(Q(C,(Nt(),Ms)),101),L==(Ra(),Wb)?rt(C,Ms,Z1):L!=Z1&&E.Fc((Ho(),$T)),B=0,r=l(Q(n,Rh),88),w=new or((!t.c&&(t.c=new nt(Hl,t,9,9)),t.c));w.e!=w.i.gc();)g=l(gr(w),123),a=ds(t),(qe(at(a,yg))!==qe((Ed(),E2))||qe(at(a,dv))===qe((l2(),BT))||qe(at(a,dv))===qe((l2(),PT))||Rt(Bt(at(a,f3)))||qe(at(a,g4))!==qe((Km(),c4))||qe(at(a,zb))===qe((Nf(),v3))||qe(at(a,zb))===qe((Nf(),x4))||qe(at(a,pv))===qe((p2(),WT))||qe(at(a,pv))===qe((p2(),YT)))&&!Rt(Bt(at(t,fW)))&&Hi(g,Ki,pt(B++)),Rt(Bt(at(g,mv)))||_Dn(e,g,C,E,r,L);for(f=new or((!t.n&&(t.n=new nt(ec,t,1,7)),t.n));f.e!=f.i.gc();)o=l(gr(f),135),!Rt(Bt(at(o,mv)))&&o.a&&vt(C.b,Oce(o));return Rt(Bt(Q(C,QL)))&&E.Fc((Ho(),eW)),Rt(Bt(Q(C,bW)))&&(E.Fc((Ho(),tW)),E.Fc(UL),rt(C,Ms,Z1)),C}function Lle(e,t,n,r,a,o,f){var g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur,oi,ws;for(J=0,Bn=0,E=new G(e.b);E.aJ&&(o&&(ko(ot,z),ko(cn,pt(C.b-1)),vt(e.d,V),g.c.length=0),oi=n.b,ws+=z+t,z=0,L=b.Math.max(L,n.b+n.c+ur)),$n(g.c,w),ddt(w,oi,ws),L=b.Math.max(L,oi+ur+n.c),z=b.Math.max(z,B),oi+=ur+t,V=w;if(ra(e.a,g),vt(e.d,l(jt(g,g.c.length-1),163)),L=b.Math.max(L,r),jn=ws+z+n.a,jna.d.d+a.d.a?C.f.d=!0:(C.f.d=!0,C.f.a=!0))),r.b!=r.d.c&&(t=n);C&&(o=l(cr(e.f,f.d.i),60),t.bo.d.d+o.d.a?C.f.d=!0:(C.f.d=!0,C.f.a=!0))}for(g=new hr(dr(ka(z).a.Kc(),new j));jr(g);)f=l(xr(g),18),f.a.b!=0&&(t=l(o0(f.a),8),f.d.j==(Ct(),Qn)&&(te=new QA(t,new lt(t.a,a.d.d),a,f),te.f.a=!0,te.a=f.d,$n(J.c,te)),f.d.j==Dr&&(te=new QA(t,new lt(t.a,a.d.d+a.d.a),a,f),te.f.d=!0,te.a=f.d,$n(J.c,te)))}return J}function EIn(e,t,n){var r,a,o,f,g,w,E,C,L,B;for(w=new bt,L=t.length,f=$7e(n),E=0;E=V&&(Te>V&&(z.c.length=0,V=Te),$n(z.c,f));z.c.length!=0&&(B=l(jt(z,aU(t,z.c.length)),131),jn.a.Bc(B)!=null,B.s=J++,R9e(B,an,ot),z.c.length=0)}for($e=e.c.length+1,g=new G(e);g.aBn.s&&(ph(n),al(Bn.i,r),r.c>0&&(r.a=Bn,vt(Bn.t,r),r.b=St,vt(St.i,r)))}function uwt(e,t,n,r,a){var o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn;for(J=new Bu(t.b),$e=new Bu(t.b),B=new Bu(t.b),cn=new Bu(t.b),te=new Bu(t.b),St=Rr(t,0);St.b!=St.d.c;)for(Ze=l(Br(St),12),g=new G(Ze.g);g.a0,fe=Ze.g.c.length>0,E&&fe?$n(B.c,Ze):E?$n(J.c,Ze):fe&&$n($e.c,Ze);for(V=new G(J);V.aTe.nh()-E.b&&(B=Te.nh()-E.b),z>Te.oh()-E.d&&(z=Te.oh()-E.d),C0){for(Me=Rr(e.f,0);Me.b!=Me.d.c;)Te=l(Br(Me),10),Te.p+=B-e.e;r9e(e),Ch(e.f),J9e(e,r,z)}else{for(ci(e.f,z),z.p=r,e.e=b.Math.max(e.e,r),o=new hr(dr(ka(z).a.Kc(),new j));jr(o);)a=l(xr(o),18),!a.c.i.c&&a.c.i.k==(Zn(),cu)&&(ci(e.f,a.c.i),a.c.i.p=r-1);e.c=r}else r9e(e),Ch(e.f),r=0,jr(new hr(dr(ka(z).a.Kc(),new j)))?(B=0,B=vdt(B,z),r=B+2,J9e(e,r,z)):(ci(e.f,z),z.p=0,e.e=b.Math.max(e.e,0),e.b=l(jt(e.d.b,0),30),e.c=0);for(e.f.b==0||r9e(e),e.d.a.c.length=0,fe=new bt,E=new G(e.d.b);E.a=48&&t<=57){for(r=t-48;a=48&&t<=57;)if(r=r*10+t-48,r<0)throw ue(new ri(ai((Jr(),CSe))))}else throw ue(new ri(ai((Jr(),K4t))));if(n=r,t==44){if(a>=e.j)throw ue(new ri(ai((Jr(),Y4t))));if((t=co(e.i,a++))>=48&&t<=57){for(n=t-48;a=48&&t<=57;)if(n=n*10+t-48,n<0)throw ue(new ri(ai((Jr(),CSe))));if(r>n)throw ue(new ri(ai((Jr(),X4t))))}else n=-1}if(t!=125)throw ue(new ri(ai((Jr(),W4t))));e.bm(a)?(o=(Di(),Di(),new Ty(9,o)),e.d=a+1):(o=(Di(),Di(),new Ty(3,o)),e.d=a),o.Om(r),o.Nm(n),Li(e)}}return o}function LIn(e){var t,n,r,a,o;switch(n=l(Q(e,(ft(),Lu)),21),t=Oq(v8t),a=l(Q(e,(Nt(),p4)),346),a==(rp(),A2)&&Dh(t,w8t),Rt(Bt(Q(e,ide)))?fi(t,(uo(),y0),(vo(),d1e)):fi(t,(uo(),bu),(vo(),d1e)),Q(e,(QH(),kM))!=null&&Dh(t,y8t),(Rt(Bt(Q(e,RMe)))||Rt(Bt(Q(e,NMe))))&&yl(t,(uo(),mc),(vo(),OAe)),l(Q(e,Rh),88).g){case 2:case 3:case 4:yl(fi(t,(uo(),y0),(vo(),PAe)),mc,NAe)}switch(n.Hc((Ho(),eW))&&yl(fi(fi(t,(uo(),y0),(vo(),IAe)),_u,MAe),mc,DAe),qe(Q(e,zb))!==qe((Nf(),AW))&&fi(t,(uo(),bu),(vo(),XAe)),n.Hc(nW)&&(fi(t,(uo(),y0),(vo(),eLe)),fi(t,vg,JAe),fi(t,bu,ZAe)),qe(Q(e,lW))!==qe((zE(),VL))&&qe(Q(e,bp))!==qe((ip(),JB))&&yl(t,(uo(),mc),(vo(),VAe)),Rt(Bt(Q(e,BMe)))&&fi(t,(uo(),bu),(vo(),HAe)),Rt(Bt(Q(e,ede)))&&fi(t,(uo(),bu),(vo(),tLe)),qTn(e)&&(qe(Q(e,p4))===qe(A2)?r=l(Q(e,TB),299):r=l(Q(e,Z1e),299),o=r==(vE(),R1e)?(vo(),QAe):(vo(),iLe),fi(t,(uo(),_u),o)),l(Q(e,lDe),388).g){case 1:fi(t,(uo(),_u),(vo(),nLe));break;case 2:yl(fi(fi(t,(uo(),bu),(vo(),SAe)),_u,_Ae),mc,AAe)}return qe(Q(e,yg))!==qe((Ed(),E2))&&fi(t,(uo(),bu),(vo(),rLe)),t}function dwt(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me;if(Hu(e.a,t)){if(W0(l(cr(e.a,t),49),n))return 1}else ki(e.a,t,new Ks);if(Hu(e.a,n)){if(W0(l(cr(e.a,n),49),t))return-1}else ki(e.a,n,new Ks);if(Hu(e.e,t)){if(W0(l(cr(e.e,t),49),n))return-1}else ki(e.e,t,new Ks);if(Hu(e.e,n)){if(W0(l(cr(e.a,n),49),t))return 1}else ki(e.e,n,new Ks);if(e.c==(Ed(),yde)||!ns(t,(ft(),Ki))||!ns(n,(ft(),Ki))){for(L=null,E=new G(t.j);E.af?WE(e,t,n):WE(e,n,t),af?1:0}return r=l(Q(t,(ft(),Ki)),17).a,o=l(Q(n,Ki),17).a,r>o?WE(e,t,n):WE(e,n,t),ro?1:0}function Kw(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te;if(n==null)return null;if(e.a!=t.jk())throw ue(new Yn(yT+t.xe()+t3));if(De(t,469)){if(te=ySn(l(t,685),n),!te)throw ue(new Yn(zfe+n+"' is not a valid enumerator of '"+t.xe()+"'"));return te}switch(o2((El(),io),t).Nl()){case 2:{n=Tu(n,!1);break}case 3:{n=Tu(n,!0);break}}if(r=o2(io,t).Jl(),r)return r.jk().wi().ti(r,n);if(B=o2(io,t).Ll(),B){for(te=new bt,E=Tce(n),C=0,L=E.length;C1)for(V=new q8((!e.a&&(e.a=new nt(cs,e,6,6)),e.a));V.e!=V.i.gc();)jA(V);for(f=l(Oe((!e.a&&(e.a=new nt(cs,e,6,6)),e.a),0),166),te=oi,oi>Ze+$e?te=Ze+$e:oiot+J?fe=ot+J:wsZe-$e&&teot-J&&feoi+ur?cn=oi+ur:Zews+St?an=ws+St:otoi-ur&&cnws-St&&ann&&(B=n-1),z=P2+Jl(t,24)*MP*L-L/2,z<0?z=1:z>r&&(z=r-1),a=(rb(),w=new AS,w),dV(a,B),fV(a,z),qr((!f.a&&(f.a=new Ys(qh,f,5)),f.a),a)}function gwt(e){sw(e,new Xm(nw(Zv(tw(ew(new x1,th),"ELK Rectangle Packing"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."),new c8))),gt(e,th,Ox,1.3),gt(e,th,hT,(Hn(),!1)),gt(e,th,Xw,iOe),gt(e,th,Jy,15),gt(e,th,SG,It(DCt)),gt(e,th,x6,It(NCt)),gt(e,th,Px,It(BCt)),gt(e,th,Nx,It(FCt)),gt(e,th,fT,It(OCt)),gt(e,th,fL,It(lge)),gt(e,th,dT,It(RCt)),gt(e,th,jCe,It(cOe)),gt(e,th,$Ce,It(oOe)),gt(e,th,RCe,It(fge)),gt(e,th,FCe,It(uOe)),gt(e,th,zCe,It(rOe)),gt(e,th,qCe,It(hge)),gt(e,th,HCe,It(nOe)),gt(e,th,VCe,It(aOe)),gt(e,th,hL,It(tOe)),gt(e,th,AG,It(ICt)),gt(e,th,PCe,It(jB)),gt(e,th,NCe,It(eOe)),gt(e,th,BCe,It($B)),gt(e,th,OCe,It(sOe))}function Dle(e,t){ble();var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur,oi;if(cn=e.e,V=e.d,a=e.a,cn==0)switch(t){case 0:return"0";case 1:return sT;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return ot=new tb,t<0?ot.a+="0E+":ot.a+="0E",ot.a+=-t,ot.a}if(Me=V*10+1+7,$e=We(kf,Ad,28,Me+1,15,1),n=Me,V==1)if(g=a[0],g<0){oi=va(g,Vo);do J=oi,oi=KN(oi,10),$e[--n]=48+Yr(Df(J,mo(oi,10)))&Zs;while(iu(oi,0)!=0)}else{oi=g;do J=oi,oi=oi/10|0,$e[--n]=48+(J-oi*10)&Zs;while(oi!=0)}else{Bn=We(Vr,di,28,V,15,1),ur=V,pu(a,0,Bn,0,ur);e:for(;;){for(St=0,E=ur-1;E>=0;E--)jn=bo(l0(St,32),va(Bn[E],Vo)),fe=vxn(jn),Bn[E]=Yr(fe),St=Yr(bw(fe,32));Te=Yr(St),te=n;do $e[--n]=48+Te%10&Zs;while((Te=Te/10|0)!=0&&n!=0);for(r=9-te+n,w=0;w0;w++)$e[--n]=48;for(L=ur-1;Bn[L]==0;L--)if(L==0)break e;ur=L+1}for(;$e[n]==48;)++n}if(z=cn<0,f=Me-n-t-1,t==0)return z&&($e[--n]=45),If($e,n,Me-n);if(t>0&&f>=-6){if(f>=0){for(C=n+f,B=Me-1;B>=C;B--)$e[B+1]=$e[B];return $e[++C]=46,z&&($e[--n]=45),If($e,n,Me-n+1)}for(L=2;L<-f+1;L++)$e[--n]=48;return $e[--n]=46,$e[--n]=48,z&&($e[--n]=45),If($e,n,Me-n)}return an=n+1,o=Me,Ze=new S5,z&&(Ze.a+="-"),o-an>=1?(hb(Ze,$e[n]),Ze.a+=".",Ze.a+=If($e,n+1,Me-n-1)):Ze.a+=If($e,n,Me-n),Ze.a+="E",f>0&&(Ze.a+="+"),Ze.a+=""+f,Ze.a}function pwt(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot;switch(e.c=t,e.g=new Pr,n=(aw(),new Jv(e.c)),r=new e_(n),S8e(r),Me=ei(at(e.c,(YN(),AOe))),w=l(at(e.c,kge),324),Ze=l(at(e.c,Ege),437),f=l(at(e.c,COe),490),$e=l(at(e.c,xge),438),e.j=ze(Ge(at(e.c,JCt))),g=e.a,w.g){case 0:g=e.a;break;case 1:g=e.b;break;case 2:g=e.i;break;case 3:g=e.e;break;case 4:g=e.f;break;default:throw ue(new Yn(FG+(w.f!=null?w.f:""+w.g)))}if(e.d=new cot(g,Ze,f),rt(e.d,(pE(),jL),Bt(at(e.c,XCt))),e.d.c=Rt(Bt(at(e.c,SOe))),AH(e.c).i==0)return e.d;for(L=new or(AH(e.c));L.e!=L.i.gc();){for(C=l(gr(L),27),z=C.g/2,B=C.f/2,ot=new lt(C.i+z,C.j+B);Hu(e.g,ot);)dw(ot,(b.Math.random()-.5)*Dd,(b.Math.random()-.5)*Dd);J=l(at(C,(pi(),tC)),140),te=new kot(ot,new ef(ot.a-z-e.j/2-J.b,ot.b-B-e.j/2-J.d,C.g+e.j+(J.b+J.c),C.f+e.j+(J.d+J.a))),vt(e.d.i,te),ki(e.g,ot,new ca(te,C))}switch($e.g){case 0:if(Me==null)e.d.d=l(jt(e.d.i,0),68);else for(Te=new G(e.d.i);Te.a0?ur+1:1);for(f=new G(ot.g);f.a0?ur+1:1)}e.c[E]==0?ci(e.e,J):e.a[E]==0&&ci(e.f,J),++E}for(V=-1,z=1,L=new bt,e.d=l(Q(t,(ft(),Xx)),234);Hh>0;){for(;e.e.b!=0;)ws=l(kae(e.e),10),e.b[ws.p]=V--,pke(e,ws),--Hh;for(;e.f.b!=0;)Vl=l(kae(e.f),10),e.b[Vl.p]=z++,pke(e,Vl),--Hh;if(Hh>0){for(B=lo,Te=new G(Me);Te.a=B&&($e>B&&(L.c.length=0,B=$e),$n(L.c,J)));C=e.sg(L),e.b[C.p]=z++,pke(e,C),--Hh}}for(oi=Me.c.length+1,E=0;Ee.b[lc]&&(Uw(r,!0),rt(t,yB,(Hn(),!0)));e.a=null,e.c=null,e.b=null,Ch(e.f),Ch(e.e),n.Vg()}function bwt(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot;for(Ze=l(Oe((!e.a&&(e.a=new nt(cs,e,6,6)),e.a),0),166),C=new bl,$e=new Pr,ot=Cmt(Ze),ju($e.f,Ze,ot),B=new Pr,r=new os,V=rg(Lh(he(le(Fh,1),Rn,20,0,[(!t.d&&(t.d=new Ln(js,t,8,5)),t.d),(!t.e&&(t.e=new Ln(js,t,7,4)),t.e)])));jr(V);){if(z=l(xr(V),74),(!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i!=1)throw ue(new Yn(n4t+(!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i));z!=e&&(te=l(Oe((!z.a&&(z.a=new nt(cs,z,6,6)),z.a),0),166),Cs(r,te,r.c.b,r.c),J=l(hc(zo($e.f,te)),13),J||(J=Cmt(te),ju($e.f,te,J)),L=n?ma(new Eo(l(jt(ot,ot.c.length-1),8)),l(jt(J,J.c.length-1),8)):ma(new Eo((Sn(0,ot.c.length),l(ot.c[0],8))),(Sn(0,J.c.length),l(J.c[0],8))),ju(B.f,te,L))}if(r.b!=0)for(fe=l(jt(ot,n?ot.c.length-1:0),8),E=1;E1&&Cs(C,fe,C.c.b,C.c),Yoe(a)));fe=Te}return C}function mwt(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn;for(n.Ug(myt,1),Bn=l(yc(Fi(new bn(null,new kn(t,16)),new one),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15),C=l(yc(Fi(new bn(null,new kn(t,16)),new vXe(t)),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[Ec]))),15),V=l(yc(Fi(new bn(null,new kn(t,16)),new mXe(t)),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[Ec]))),15),J=We(PW,IG,40,t.gc(),0,1),f=0;f=0&&an=0&&!J[z]){J[z]=a,C.gd(g),--g;break}if(z=an-B,z=0&&!J[z]){J[z]=a,C.gd(g),--g;break}}for(V.jd(new cne),w=J.length-1;w>=0;w--)!J[w]&&!V.dc()&&(J[w]=l(V.Xb(0),40),V.gd(0));for(E=0;E=0;w--)ci(n,(Sn(w,f.c.length),l(f.c[w],8)));return n}function wwt(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e;for(Me=ze(Ge(at(t,(ug(),T4)))),z=ze(Ge(at(t,mM))),B=ze(Ge(at(t,UW))),v7e((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a)),fe=uvt((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a),Me,e.b),te=0;teB&&UN((Sn(B,t.c.length),l(t.c[B],186)),C),C=null;t.c.length>B&&(Sn(B,t.c.length),l(t.c[B],186)).a.c.length==0;)al(t,(Sn(B,t.c.length),t.c[B]));if(!C){--f;continue}if(!Rt(Bt(l(jt(C.b,0),27).of((z1(),$B))))&&Z_n(t,V,o,C,te,n,B,r)){J=!0;continue}if(te){if(z=V.b,L=C.f,!Rt(Bt(l(jt(C.b,0),27).of($B)))&&mMn(t,V,o,C,n,B,r,a)){if(J=!0,z=e.j){e.a=-1,e.c=1;return}if(t=co(e.i,e.d++),e.a=t,e.b==1){switch(t){case 92:if(r=10,e.d>=e.j)throw ue(new ri(ai((Jr(),VG))));e.a=co(e.i,e.d++);break;case 45:(e.e&512)==512&&e.d=e.j||co(e.i,e.d)!=63)break;if(++e.d>=e.j)throw ue(new ri(ai((Jr(),e0e))));switch(t=co(e.i,e.d++),t){case 58:r=13;break;case 61:r=14;break;case 33:r=15;break;case 91:r=19;break;case 62:r=18;break;case 60:if(e.d>=e.j)throw ue(new ri(ai((Jr(),e0e))));if(t=co(e.i,e.d++),t==61)r=16;else if(t==33)r=17;else throw ue(new ri(ai((Jr(),L4t))));break;case 35:for(;e.d=e.j)throw ue(new ri(ai((Jr(),VG))));e.a=co(e.i,e.d++);break;default:r=0}e.c=r}function jIn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te;if(n.Ug("Process compaction",1),!!Rt(Bt(Q(t,(Hc(),uIe))))){for(a=l(Q(t,y3),88),z=ze(Ge(Q(t,zde))),fLn(e,t,a),nIn(t,z/2/2),V=t.b,$m(V,new lXe(a)),E=Rr(V,0);E.b!=E.d.c;)if(w=l(Br(E),40),!Rt(Bt(Q(w,(Qi(),Vb))))){if(r=RSn(w,a),J=OAn(w,t),L=0,B=0,r)switch(te=r.e,a.g){case 2:L=te.a-z-w.f.a,J.e.a-z-w.f.aL&&(L=J.e.a+J.f.a+z),B=L+w.f.a;break;case 4:L=te.b-z-w.f.b,J.e.b-z-w.f.bL&&(L=J.e.b+J.f.b+z),B=L+w.f.b}else if(J)switch(a.g){case 2:L=J.e.a-z-w.f.a,B=L+w.f.a;break;case 1:L=J.e.a+J.f.a+z,B=L+w.f.a;break;case 4:L=J.e.b-z-w.f.b,B=L+w.f.b;break;case 3:L=J.e.b+J.f.b+z,B=L+w.f.b}qe(Q(t,$de))===qe((xA(),OB))?(o=L,f=B,g=kE(Fi(new bn(null,new kn(e.a,16)),new ttt(o,f))),g.a!=null?a==(Js(),uc)||a==vc?w.e.a=L:w.e.b=L:(a==(Js(),uc)||a==wf?g=kE(Fi(Dht(new bn(null,new kn(e.a,16))),new hXe(o))):g=kE(Fi(Dht(new bn(null,new kn(e.a,16))),new fXe(o))),g.a!=null&&(a==uc||a==vc?w.e.a=ze(Ge((mr(g.a!=null),l(g.a,42)).a)):w.e.b=ze(Ge((mr(g.a!=null),l(g.a,42)).a)))),g.a!=null&&(C=gc(e.a,(mr(g.a!=null),g.a),0),C>0&&C!=l(Q(w,$d),17).a&&(rt(w,tIe,(Hn(),!0)),rt(w,$d,pt(C))))):a==(Js(),uc)||a==vc?w.e.a=L:w.e.b=L}n.Vg()}}function ywt(e){var t,n,r,a,o,f,g,w,E;for(e.b=1,Li(e),t=null,e.c==0&&e.a==94?(Li(e),t=(Di(),Di(),new _h(4)),Eu(t,0,TT),g=new _h(4)):g=(Di(),Di(),new _h(4)),a=!0;(E=e.c)!=1;){if(E==0&&e.a==93&&!a){t&&(nL(t,g),g=t);break}if(n=e.a,r=!1,E==10)switch(n){case 100:case 68:case 119:case 87:case 115:case 83:Ky(g,YE(n)),r=!0;break;case 105:case 73:case 99:case 67:n=(Ky(g,YE(n)),-1),n<0&&(r=!0);break;case 112:case 80:if(w=w9e(e,n),!w)throw ue(new ri(ai((Jr(),t0e))));Ky(g,w),r=!0;break;default:n=eke(e)}else if(E==24&&!a){if(t&&(nL(t,g),g=t),o=ywt(e),nL(g,o),e.c!=0||e.a!=93)throw ue(new ri(ai((Jr(),j4t))));break}if(Li(e),!r){if(E==0){if(n==91)throw ue(new ri(ai((Jr(),ESe))));if(n==93)throw ue(new ri(ai((Jr(),TSe))));if(n==45&&!a&&e.a!=93)throw ue(new ri(ai((Jr(),n0e))))}if(e.c!=0||e.a!=45||n==45&&a)Eu(g,n,n);else{if(Li(e),(E=e.c)==1)throw ue(new ri(ai((Jr(),UG))));if(E==0&&e.a==93)Eu(g,n,n),Eu(g,45,45);else{if(E==0&&e.a==93||E==24)throw ue(new ri(ai((Jr(),n0e))));if(f=e.a,E==0){if(f==91)throw ue(new ri(ai((Jr(),ESe))));if(f==93)throw ue(new ri(ai((Jr(),TSe))));if(f==45)throw ue(new ri(ai((Jr(),n0e))))}else E==10&&(f=eke(e));if(Li(e),n>f)throw ue(new ri(ai((Jr(),q4t))));Eu(g,n,f)}}}a=!1}if(e.c==1)throw ue(new ri(ai((Jr(),UG))));return c6(g),eL(g),e.b=0,Li(e),g}function $In(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze;if(n.Ug("Coffman-Graham Layering",1),t.a.c.length==0){n.Vg();return}for(Ze=l(Q(t,(Nt(),$Me)),17).a,w=0,f=0,B=new G(t.a);B.a=Ze||!N5n(fe,r))&&(r=vat(t,C)),Va(fe,r),o=new hr(dr(ka(fe).a.Kc(),new j));jr(o);)a=l(xr(o),18),!e.a[a.p]&&(J=a.c.i,--e.e[J.p],e.e[J.p]==0&&K8($E(z,J),aT));for(E=C.c.length-1;E>=0;--E)vt(t.b,(Sn(E,C.c.length),l(C.c[E],30)));t.a.c.length=0,n.Vg()}function xwt(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e;$e=!1;do for($e=!1,o=t?new br(e.a.b).a.gc()-2:1;t?o>=0:ol(Q(te,Ki),17).a)&&(Me=!1);if(Me){for(w=t?o+1:o-1,g=s6e(e.a,pt(w)),f=!1,Te=!0,r=!1,C=Rr(g,0);C.b!=C.d.c;)E=l(Br(C),10),ns(E,Ki)?E.p!=L.p&&(f=f|(t?l(Q(E,Ki),17).al(Q(L,Ki),17).a),Te=!1):!f&&Te&&E.k==(Zn(),cu)&&(r=!0,t?B=l(xr(new hr(dr(ka(E).a.Kc(),new j))),18).c.i:B=l(xr(new hr(dr(qs(E).a.Kc(),new j))),18).d.i,B==L&&(t?n=l(xr(new hr(dr(qs(E).a.Kc(),new j))),18).d.i:n=l(xr(new hr(dr(ka(E).a.Kc(),new j))),18).c.i,(t?l(dy(e.a,n),17).a-l(dy(e.a,B),17).a:l(dy(e.a,B),17).a-l(dy(e.a,n),17).a)<=2&&(Te=!1)));if(r&&Te&&(t?n=l(xr(new hr(dr(qs(L).a.Kc(),new j))),18).d.i:n=l(xr(new hr(dr(ka(L).a.Kc(),new j))),18).c.i,(t?l(dy(e.a,n),17).a-l(dy(e.a,L),17).a:l(dy(e.a,L),17).a-l(dy(e.a,n),17).a)<=2&&n.k==(Zn(),Ps)&&(Te=!1)),f||Te){for(J=J2t(e,L,t);J.a.gc()!=0;)V=l(J.a.ec().Kc().Pb(),10),J.a.Bc(V)!=null,Ka(J,J2t(e,V,t));--z,$e=!0}}}while($e)}function zIn(e){Wr(e.c,ui,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#decimal"])),Wr(e.d,ui,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#integer"])),Wr(e.e,ui,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#boolean"])),Wr(e.f,ui,he(le(zt,1),dt,2,6,[ho,"EBoolean",_i,"EBoolean:Object"])),Wr(e.i,ui,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#byte"])),Wr(e.g,ui,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#hexBinary"])),Wr(e.j,ui,he(le(zt,1),dt,2,6,[ho,"EByte",_i,"EByte:Object"])),Wr(e.n,ui,he(le(zt,1),dt,2,6,[ho,"EChar",_i,"EChar:Object"])),Wr(e.t,ui,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#double"])),Wr(e.u,ui,he(le(zt,1),dt,2,6,[ho,"EDouble",_i,"EDouble:Object"])),Wr(e.F,ui,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#float"])),Wr(e.G,ui,he(le(zt,1),dt,2,6,[ho,"EFloat",_i,"EFloat:Object"])),Wr(e.I,ui,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#int"])),Wr(e.J,ui,he(le(zt,1),dt,2,6,[ho,"EInt",_i,"EInt:Object"])),Wr(e.N,ui,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#long"])),Wr(e.O,ui,he(le(zt,1),dt,2,6,[ho,"ELong",_i,"ELong:Object"])),Wr(e.Z,ui,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#short"])),Wr(e.$,ui,he(le(zt,1),dt,2,6,[ho,"EShort",_i,"EShort:Object"])),Wr(e._,ui,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#string"]))}function qIn(e,t,n,r,a,o,f){var g,w,E,C,L,B,z,V;return B=l(r.a,17).a,z=l(r.b,17).a,L=e.b,V=e.c,g=0,C=0,t==(Js(),uc)||t==vc?(C=fO(h1t(xy(fc(new bn(null,new kn(n.b,16)),new lne),new Yte))),L.e.b+L.f.b/2>C?(E=++z,g=ze(Ge(fh(vy(fc(new bn(null,new kn(n.b,16)),new itt(a,E)),new a$))))):(w=++B,g=ze(Ge(fh(Y8(fc(new bn(null,new kn(n.b,16)),new stt(a,w)),new Xte)))))):(C=fO(h1t(xy(fc(new bn(null,new kn(n.b,16)),new Zte),new s$))),L.e.a+L.f.a/2>C?(E=++z,g=ze(Ge(fh(vy(fc(new bn(null,new kn(n.b,16)),new ntt(a,E)),new Qte))))):(w=++B,g=ze(Ge(fh(Y8(fc(new bn(null,new kn(n.b,16)),new rtt(a,w)),new bI)))))),t==uc?(ko(e.a,new lt(ze(Ge(Q(L,(Qi(),c1))))-a,g)),ko(e.a,new lt(V.e.a+V.f.a+a+o,g)),ko(e.a,new lt(V.e.a+V.f.a+a+o,V.e.b+V.f.b/2)),ko(e.a,new lt(V.e.a+V.f.a,V.e.b+V.f.b/2))):t==vc?(ko(e.a,new lt(ze(Ge(Q(L,(Qi(),k0))))+a,L.e.b+L.f.b/2)),ko(e.a,new lt(L.e.a+L.f.a+a,g)),ko(e.a,new lt(V.e.a-a-o,g)),ko(e.a,new lt(V.e.a-a-o,V.e.b+V.f.b/2)),ko(e.a,new lt(V.e.a,V.e.b+V.f.b/2))):t==wf?(ko(e.a,new lt(g,ze(Ge(Q(L,(Qi(),c1))))-a)),ko(e.a,new lt(g,V.e.b+V.f.b+a+o)),ko(e.a,new lt(V.e.a+V.f.a/2,V.e.b+V.f.b+a+o)),ko(e.a,new lt(V.e.a+V.f.a/2,V.e.b+V.f.b+a))):(e.a.b==0||(l(o0(e.a),8).b=ze(Ge(Q(L,(Qi(),k0))))+a*l(f.b,17).a),ko(e.a,new lt(g,ze(Ge(Q(L,(Qi(),k0))))+a*l(f.b,17).a)),ko(e.a,new lt(g,V.e.b-a*l(f.a,17).a-o))),new ca(pt(B),pt(z))}function HIn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z;if(f=!0,L=null,r=null,a=null,t=!1,z=P_t,E=null,o=null,g=0,w=Zce(e,g,TPe,CPe),w=0&&vn(e.substr(g,2),"//")?(g+=2,w=Zce(e,g,$M,zM),r=(Ga(g,w,e.length),e.substr(g,w-g)),g=w):L!=null&&(g==e.length||(Xn(g,e.length),e.charCodeAt(g)!=47))&&(f=!1,w=Lye(e,cl(35),g),w==-1&&(w=e.length),r=(Ga(g,w,e.length),e.substr(g,w-g)),g=w);if(!n&&g0&&co(C,C.length-1)==58&&(a=C,g=w)),gWue(o))&&(L=o);for(!L&&(L=(Sn(0,te.c.length),l(te.c[0],185))),J=new G(t.b);J.aL&&(jn=0,ur+=C+St,C=0),hmt(Ze,f,jn,ur),t=b.Math.max(t,jn+ot.a),C=b.Math.max(C,ot.b),jn+=ot.a+St;for($e=new Pr,n=new Pr,an=new G(e);an.a=-1900?1:0,n>=4?hi(e,he(le(zt,1),dt,2,6,[Rwt,jwt])[g]):hi(e,he(le(zt,1),dt,2,6,["BC","AD"])[g]);break;case 121:u6n(e,n,r);break;case 77:A_n(e,n,r);break;case 107:w=a.q.getHours(),w==0?ag(e,24,n):ag(e,w,n);break;case 83:zTn(e,n,a);break;case 69:C=r.q.getDay(),n==5?hi(e,he(le(zt,1),dt,2,6,["S","M","T","W","T","F","S"])[C]):n==4?hi(e,he(le(zt,1),dt,2,6,[Qle,Jle,Zle,ehe,the,nhe,rhe])[C]):hi(e,he(le(zt,1),dt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[C]);break;case 97:a.q.getHours()>=12&&a.q.getHours()<24?hi(e,he(le(zt,1),dt,2,6,["AM","PM"])[1]):hi(e,he(le(zt,1),dt,2,6,["AM","PM"])[0]);break;case 104:L=a.q.getHours()%12,L==0?ag(e,12,n):ag(e,L,n);break;case 75:B=a.q.getHours()%12,ag(e,B,n);break;case 72:z=a.q.getHours(),ag(e,z,n);break;case 99:V=r.q.getDay(),n==5?hi(e,he(le(zt,1),dt,2,6,["S","M","T","W","T","F","S"])[V]):n==4?hi(e,he(le(zt,1),dt,2,6,[Qle,Jle,Zle,ehe,the,nhe,rhe])[V]):n==3?hi(e,he(le(zt,1),dt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[V]):ag(e,V,1);break;case 76:J=r.q.getMonth(),n==5?hi(e,he(le(zt,1),dt,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[J]):n==4?hi(e,he(le(zt,1),dt,2,6,[$le,zle,qle,Hle,_x,Vle,Ule,Gle,Kle,Wle,Yle,Xle])[J]):n==3?hi(e,he(le(zt,1),dt,2,6,["Jan","Feb","Mar","Apr",_x,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[J]):ag(e,J+1,n);break;case 81:te=r.q.getMonth()/3|0,n<4?hi(e,he(le(zt,1),dt,2,6,["Q1","Q2","Q3","Q4"])[te]):hi(e,he(le(zt,1),dt,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[te]);break;case 100:fe=r.q.getDate(),ag(e,fe,n);break;case 109:E=a.q.getMinutes(),ag(e,E,n);break;case 115:f=a.q.getSeconds(),ag(e,f,n);break;case 122:n<4?hi(e,o.c[0]):hi(e,o.c[1]);break;case 118:hi(e,o.b);break;case 90:n<3?hi(e,Nkn(o)):n==3?hi(e,jkn(o)):hi(e,$kn(o.a));break;default:return!1}return!0}function Wke(e,t,n,r){var a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur,oi;if(emt(t),w=l(Oe((!t.b&&(t.b=new Ln(_r,t,4,7)),t.b),0),84),C=l(Oe((!t.c&&(t.c=new Ln(_r,t,5,8)),t.c),0),84),g=bc(w),E=bc(C),f=(!t.a&&(t.a=new nt(cs,t,6,6)),t.a).i==0?null:l(Oe((!t.a&&(t.a=new nt(cs,t,6,6)),t.a),0),166),St=l(cr(e.a,g),10),jn=l(cr(e.a,E),10),cn=null,ur=null,De(w,193)&&(ot=l(cr(e.a,w),305),De(ot,12)?cn=l(ot,12):De(ot,10)&&(St=l(ot,10),cn=l(jt(St.j,0),12))),De(C,193)&&(Bn=l(cr(e.a,C),305),De(Bn,12)?ur=l(Bn,12):De(Bn,10)&&(jn=l(Bn,10),ur=l(jt(jn.j,0),12))),!St||!jn)throw ue(new I8("The source or the target of edge "+t+" could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));for(J=new Tw,pc(J,t),rt(J,(ft(),zi),t),rt(J,(Nt(),cc),null),z=l(Q(r,Lu),21),St==jn&&z.Fc((Ho(),GL)),cn||(Ze=(qo(),zu),an=null,f&&P5(l(Q(St,Ms),101))&&(an=new lt(f.j,f.k),Vct(an,WO(t)),vut(an,n),Ly(E,g)&&(Ze=$l,Oi(an,St.n))),cn=tvt(St,an,Ze,r)),ur||(Ze=(qo(),$l),oi=null,f&&P5(l(Q(jn,Ms),101))&&(oi=new lt(f.b,f.c),Vct(oi,WO(t)),vut(oi,n)),ur=tvt(jn,oi,Ze,eo(jn))),po(J,cn),Fa(J,ur),(cn.e.c.length>1||cn.g.c.length>1||ur.e.c.length>1||ur.g.c.length>1)&&z.Fc((Ho(),UL)),B=new or((!t.n&&(t.n=new nt(ec,t,1,7)),t.n));B.e!=B.i.gc();)if(L=l(gr(B),135),!Rt(Bt(at(L,mv)))&&L.a)switch(te=Oce(L),vt(J.b,te),l(Q(te,jd),278).g){case 1:case 2:z.Fc((Ho(),jT));break;case 0:z.Fc((Ho(),RT)),rt(te,jd,(F1(),nC))}if(o=l(Q(r,JL),322),fe=l(Q(r,yW),323),a=o==(dA(),mB)||fe==(OA(),vde),f&&(!f.a&&(f.a=new Ys(qh,f,5)),f.a).i!=0&&a){for(Te=QN(f),V=new bl,$e=Rr(Te,0);$e.b!=$e.d.c;)Me=l(Br($e),8),ci(V,new Eo(Me));rt(J,qLe,V)}return J}function KIn(e,t,n,r){var a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur,oi,ws;for(an=0,Bn=0,St=new Pr,Ze=l(fh(vy(fc(new bn(null,new kn(e.b,16)),new Jte),new sne)),17).a+1,cn=We(Vr,di,28,Ze,15,1),te=We(Vr,di,28,Ze,15,1),J=0;J1)for(g=ur+1;gE.b.e.b*(1-fe)+E.c.e.b*fe));V++);if(ot.gc()>0&&(oi=E.a.b==0?Ja(E.b.e):l(o0(E.a),8),Me=Oi(Ja(l(ot.Xb(ot.gc()-1),40).e),l(ot.Xb(ot.gc()-1),40).f),B=Oi(Ja(l(ot.Xb(0),40).e),l(ot.Xb(0),40).f),V>=ot.gc()-1&&oi.b>Me.b&&E.c.e.b>Me.b||V<=0&&oi.bE.b.e.a*(1-fe)+E.c.e.a*fe));V++);if(ot.gc()>0&&(oi=E.a.b==0?Ja(E.b.e):l(o0(E.a),8),Me=Oi(Ja(l(ot.Xb(ot.gc()-1),40).e),l(ot.Xb(ot.gc()-1),40).f),B=Oi(Ja(l(ot.Xb(0),40).e),l(ot.Xb(0),40).f),V>=ot.gc()-1&&oi.a>Me.a&&E.c.e.a>Me.a||V<=0&&oi.a=ze(Ge(Q(e,(Qi(),iIe))))&&++Bn):(z.f&&z.d.e.a<=ze(Ge(Q(e,(Qi(),Bde))))&&++an,z.g&&z.c.e.a+z.c.f.a>=ze(Ge(Q(e,(Qi(),rIe))))&&++Bn)}else $e==0?b9e(E):$e<0&&(++cn[ur],++te[ws],jn=qIn(E,t,e,new ca(pt(an),pt(Bn)),n,r,new ca(pt(te[ws]),pt(cn[ur]))),an=l(jn.a,17).a,Bn=l(jn.b,17).a)}function WIn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te;if(r=t,w=n,e.b&&r.j==(Ct(),er)&&w.j==(Ct(),er)&&(Te=r,r=w,w=Te),Hu(e.a,r)){if(W0(l(cr(e.a,r),49),w))return 1}else ki(e.a,r,new Ks);if(Hu(e.a,w)){if(W0(l(cr(e.a,w),49),r))return-1}else ki(e.a,w,new Ks);if(Hu(e.d,r)){if(W0(l(cr(e.d,r),49),w))return-1}else ki(e.d,r,new Ks);if(Hu(e.d,w)){if(W0(l(cr(e.a,w),49),r))return 1}else ki(e.d,w,new Ks);if(r.j!=w.j)return fe=Bln(r.j,w.j),fe==-1?df(e,w,r):df(e,r,w),fe;if(r.e.c.length!=0&&w.e.c.length!=0){if(e.b&&(fe=j0t(r,w),fe!=0))return fe==-1?df(e,w,r):fe==1&&df(e,r,w),fe;if(o=l(jt(r.e,0),18).c.i,C=l(jt(w.e,0),18).c.i,o==C)return a=l(Q(l(jt(r.e,0),18),(ft(),Ki)),17).a,E=l(Q(l(jt(w.e,0),18),Ki),17).a,a>E?df(e,r,w):df(e,w,r),aE?1:0;for(V=e.c,J=0,te=V.length;JE?df(e,r,w):df(e,w,r),aE?1:0):e.b&&(fe=j0t(r,w),fe!=0)?(fe==-1?df(e,w,r):fe==1&&df(e,r,w),fe):(f=0,L=0,ns(l(jt(r.g,0),18),Ki)&&(f=l(Q(l(jt(r.g,0),18),Ki),17).a),ns(l(jt(w.g,0),18),Ki)&&(L=l(Q(l(jt(r.g,0),18),Ki),17).a),g&&g==B?Rt(Bt(Q(l(jt(r.g,0),18),W1)))&&!Rt(Bt(Q(l(jt(w.g,0),18),W1)))?(df(e,r,w),1):!Rt(Bt(Q(l(jt(r.g,0),18),W1)))&&Rt(Bt(Q(l(jt(w.g,0),18),W1)))?(df(e,w,r),-1):(f>L?df(e,r,w):df(e,w,r),fL?1:0):(e.f&&(e.f._b(g)&&(f=l(e.f.xc(g),17).a),e.f._b(B)&&(L=l(e.f.xc(B),17).a)),f>L?df(e,r,w):df(e,w,r),fL?1:0))):r.e.c.length!=0&&w.g.c.length!=0?(df(e,r,w),1):r.g.c.length!=0&&w.e.c.length!=0?(df(e,w,r),-1):ns(r,(ft(),Ki))&&ns(w,Ki)?(a=l(Q(r,Ki),17).a,E=l(Q(w,Ki),17).a,a>E?df(e,r,w):df(e,w,r),aE?1:0):(df(e,w,r),-1)}function YIn(e){e.gb||(e.gb=!0,e.b=qc(e,0),Ss(e.b,18),is(e.b,19),e.a=qc(e,1),Ss(e.a,1),is(e.a,2),is(e.a,3),is(e.a,4),is(e.a,5),e.o=qc(e,2),Ss(e.o,8),Ss(e.o,9),is(e.o,10),is(e.o,11),is(e.o,12),is(e.o,13),is(e.o,14),is(e.o,15),is(e.o,16),is(e.o,17),is(e.o,18),is(e.o,19),is(e.o,20),is(e.o,21),is(e.o,22),is(e.o,23),sc(e.o),sc(e.o),sc(e.o),sc(e.o),sc(e.o),sc(e.o),sc(e.o),sc(e.o),sc(e.o),sc(e.o),e.p=qc(e,3),Ss(e.p,2),Ss(e.p,3),Ss(e.p,4),Ss(e.p,5),is(e.p,6),is(e.p,7),sc(e.p),sc(e.p),e.q=qc(e,4),Ss(e.q,8),e.v=qc(e,5),is(e.v,9),sc(e.v),sc(e.v),sc(e.v),e.w=qc(e,6),Ss(e.w,2),Ss(e.w,3),Ss(e.w,4),is(e.w,5),e.B=qc(e,7),is(e.B,1),sc(e.B),sc(e.B),sc(e.B),e.Q=qc(e,8),is(e.Q,0),sc(e.Q),e.R=qc(e,9),Ss(e.R,1),e.S=qc(e,10),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),e.T=qc(e,11),is(e.T,10),is(e.T,11),is(e.T,12),is(e.T,13),is(e.T,14),sc(e.T),sc(e.T),e.U=qc(e,12),Ss(e.U,2),Ss(e.U,3),is(e.U,4),is(e.U,5),is(e.U,6),is(e.U,7),sc(e.U),e.V=qc(e,13),is(e.V,10),e.W=qc(e,14),Ss(e.W,18),Ss(e.W,19),Ss(e.W,20),is(e.W,21),is(e.W,22),is(e.W,23),e.bb=qc(e,15),Ss(e.bb,10),Ss(e.bb,11),Ss(e.bb,12),Ss(e.bb,13),Ss(e.bb,14),Ss(e.bb,15),Ss(e.bb,16),is(e.bb,17),sc(e.bb),sc(e.bb),e.eb=qc(e,16),Ss(e.eb,2),Ss(e.eb,3),Ss(e.eb,4),Ss(e.eb,5),Ss(e.eb,6),Ss(e.eb,7),is(e.eb,8),is(e.eb,9),e.ab=qc(e,17),Ss(e.ab,0),Ss(e.ab,1),e.H=qc(e,18),is(e.H,0),is(e.H,1),is(e.H,2),is(e.H,3),is(e.H,4),is(e.H,5),sc(e.H),e.db=qc(e,19),is(e.db,2),e.c=Ti(e,20),e.d=Ti(e,21),e.e=Ti(e,22),e.f=Ti(e,23),e.i=Ti(e,24),e.g=Ti(e,25),e.j=Ti(e,26),e.k=Ti(e,27),e.n=Ti(e,28),e.r=Ti(e,29),e.s=Ti(e,30),e.t=Ti(e,31),e.u=Ti(e,32),e.fb=Ti(e,33),e.A=Ti(e,34),e.C=Ti(e,35),e.D=Ti(e,36),e.F=Ti(e,37),e.G=Ti(e,38),e.I=Ti(e,39),e.J=Ti(e,40),e.L=Ti(e,41),e.M=Ti(e,42),e.N=Ti(e,43),e.O=Ti(e,44),e.P=Ti(e,45),e.X=Ti(e,46),e.Y=Ti(e,47),e.Z=Ti(e,48),e.$=Ti(e,49),e._=Ti(e,50),e.cb=Ti(e,51),e.K=Ti(e,52))}function XIn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur;for(f=new os,ot=l(Q(n,(Nt(),Rh)),88),J=0,Ka(f,(!t.a&&(t.a=new nt(Ai,t,10,11)),t.a));f.b!=0;)C=l(f.b==0?null:(mr(f.b!=0),af(f,f.a.a)),27),E=ds(C),(qe(at(E,yg))!==qe((Ed(),E2))||qe(at(E,dv))===qe((l2(),BT))||qe(at(E,dv))===qe((l2(),PT))||Rt(Bt(at(E,f3)))||qe(at(E,g4))!==qe((Km(),c4))||qe(at(E,zb))===qe((Nf(),v3))||qe(at(E,zb))===qe((Nf(),x4))||qe(at(E,pv))===qe((p2(),WT))||qe(at(E,pv))===qe((p2(),YT)))&&!Rt(Bt(at(C,fW)))&&Hi(C,(ft(),Ki),pt(J++)),fe=!Rt(Bt(at(C,mv))),fe&&(B=(!C.a&&(C.a=new nt(Ai,C,10,11)),C.a).i!=0,V=Cxn(C),z=qe(at(C,p4))===qe((rp(),A2)),ur=!P1(C,(pi(),eC))||Sut(ei(at(C,eC))),$e=null,ur&&z&&(B||V)&&($e=Pmt(C),rt($e,Rh,ot),ns($e,CB)&&NJe(new D8e(ze(Ge(Q($e,CB)))),$e),l(at(C,bv),181).gc()!=0&&(L=$e,Is(new bn(null,(!C.c&&(C.c=new nt(Hl,C,9,9)),new kn(C.c,16))),new zWe(L)),_bt(C,$e))),St=n,cn=l(cr(e.a,ds(C)),10),cn&&(St=cn.e),Me=cwt(e,C,St),$e&&(Me.e=$e,$e.e=Me,Ka(f,(!C.a&&(C.a=new nt(Ai,C,10,11)),C.a))));for(J=0,Cs(f,t,f.c.b,f.c);f.b!=0;){for(o=l(f.b==0?null:(mr(f.b!=0),af(f,f.a.a)),27),w=new or((!o.b&&(o.b=new nt(js,o,12,3)),o.b));w.e!=w.i.gc();)g=l(gr(w),74),emt(g),(qe(at(t,yg))!==qe((Ed(),E2))||qe(at(t,dv))===qe((l2(),BT))||qe(at(t,dv))===qe((l2(),PT))||Rt(Bt(at(t,f3)))||qe(at(t,g4))!==qe((Km(),c4))||qe(at(t,zb))===qe((Nf(),v3))||qe(at(t,zb))===qe((Nf(),x4))||qe(at(t,pv))===qe((p2(),WT))||qe(at(t,pv))===qe((p2(),YT)))&&Hi(g,(ft(),Ki),pt(J++)),Bn=bc(l(Oe((!g.b&&(g.b=new Ln(_r,g,4,7)),g.b),0),84)),jn=bc(l(Oe((!g.c&&(g.c=new Ln(_r,g,5,8)),g.c),0),84)),!(Rt(Bt(at(g,mv)))||Rt(Bt(at(Bn,mv)))||Rt(Bt(at(jn,mv))))&&(te=qw(g)&&Rt(Bt(at(Bn,b4)))&&Rt(Bt(at(g,gv))),Ze=o,te||Ly(jn,Bn)?Ze=Bn:Ly(Bn,jn)&&(Ze=jn),St=n,cn=l(cr(e.a,Ze),10),cn&&(St=cn.e),Te=Wke(e,g,Ze,St),rt(Te,(ft(),RLe),XCn(e,g,t,n)));if(z=qe(at(o,p4))===qe((rp(),A2)),z)for(a=new or((!o.a&&(o.a=new nt(Ai,o,10,11)),o.a));a.e!=a.i.gc();)r=l(gr(a),27),ur=!P1(r,(pi(),eC))||Sut(ei(at(r,eC))),an=qe(at(r,p4))===qe(A2),ur&&an&&Cs(f,r,f.c.b,f.c)}}function ft(){ft=U;var e,t;zi=new Ui(NEe),RLe=new Ui("coordinateOrigin"),K1e=new Ui("processors"),FLe=new vs("compoundNode",(Hn(),!1)),xB=new vs("insideConnections",!1),qLe=new Ui("originalBendpoints"),HLe=new Ui("originalDummyNodePosition"),VLe=new Ui("originalLabelEdge"),WL=new Ui("representedLabels"),KL=new Ui("endLabels"),Kx=new Ui("endLabel.origin"),Yx=new vs("labelSide",(Ih(),eF)),R6=new vs("maxEdgeThickness",0),W1=new vs("reversed",!1),Xx=new Ui(C3t),o1=new vs("longEdgeSource",null),$f=new vs("longEdgeTarget",null),f4=new vs("longEdgeHasLabelDummies",!1),kB=new vs("longEdgeBeforeLabelDummy",!1),sW=new vs("edgeConstraint",(Vm(),M1e)),u3=new Ui("inLayerLayoutUnit"),hv=new vs("inLayerConstraint",(ep(),wB)),Wx=new vs("inLayerSuccessorConstraint",new bt),zLe=new vs("inLayerSuccessorConstraintBetweenNonDummies",!1),jl=new Ui("portDummy"),iW=new vs("crossingHint",pt(0)),Lu=new vs("graphProperties",(t=l(K0(F1e),9),new Zh(t,l(c0(t,t.length),9),0))),Wc=new vs("externalPortSide",(Ct(),Pc)),$Le=new vs("externalPortSize",new qa),q1e=new Ui("externalPortReplacedDummies"),aW=new Ui("externalPortReplacedDummy"),pp=new vs("externalPortConnections",(e=l(K0(Oo),9),new Zh(e,l(c0(e,e.length),9),0))),l3=new vs(b3t,0),BLe=new Ui("barycenterAssociates"),Qx=new Ui("TopSideComments"),Gx=new Ui("BottomSideComments"),rW=new Ui("CommentConnectionPort"),V1e=new vs("inputCollect",!1),G1e=new vs("outputCollect",!1),yB=new vs("cyclic",!1),jLe=new Ui("crossHierarchyMap"),Y1e=new Ui("targetOffset"),new vs("splineLabelSize",new qa),$6=new Ui("spacings"),oW=new vs("partitionConstraint",!1),c3=new Ui("breakingPoint.info"),KLe=new Ui("splines.survivingEdge"),fv=new Ui("splines.route.start"),z6=new Ui("splines.edgeChain"),GLe=new Ui("originalPortConstraints"),h3=new Ui("selfLoopHolder"),zT=new Ui("splines.nsPortY"),Ki=new Ui("modelOrder"),U1e=new Ui("longEdgeTargetNode"),jb=new vs(Q3t,!1),j6=new vs(Q3t,!1),H1e=new Ui("layerConstraints.hiddenNodes"),ULe=new Ui("layerConstraints.opposidePort"),W1e=new Ui("targetNode.modelOrder")}function QIn(e,t,n,r){var a,o,f,g,w,E,C,L,B,z,V;for(L=Rr(e.b,0);L.b!=L.d.c;)if(C=l(Br(L),40),!vn(C.c,DG))for(o=l(yc(new bn(null,new kn(aEn(C,e),16)),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15),t==(Js(),uc)||t==vc?o.jd(new nne):o.jd(new o$),V=o.gc(),a=0;a0&&(g=l(o0(l(o.Xb(a),65).a),8).a,B=C.e.a+C.f.a/2,w=l(o0(l(o.Xb(a),65).a),8).b,z=C.e.b+C.f.b/2,r>0&&b.Math.abs(w-z)/(b.Math.abs(g-B)/40)>50&&(z>w?ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a+r/5.3,C.e.b+C.f.b*f-r/2)):ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a+r/5.3,C.e.b+C.f.b*f+r/2)))),ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a,C.e.b+C.f.b*f))):t==vc?(E=ze(Ge(Q(C,(Qi(),c1)))),C.e.a-r>E?ko(l(o.Xb(a),65).a,new lt(E-n,C.e.b+C.f.b*f)):l(o.Xb(a),65).a.b>0&&(g=l(o0(l(o.Xb(a),65).a),8).a,B=C.e.a+C.f.a/2,w=l(o0(l(o.Xb(a),65).a),8).b,z=C.e.b+C.f.b/2,r>0&&b.Math.abs(w-z)/(b.Math.abs(g-B)/40)>50&&(z>w?ko(l(o.Xb(a),65).a,new lt(C.e.a-r/5.3,C.e.b+C.f.b*f-r/2)):ko(l(o.Xb(a),65).a,new lt(C.e.a-r/5.3,C.e.b+C.f.b*f+r/2)))),ko(l(o.Xb(a),65).a,new lt(C.e.a,C.e.b+C.f.b*f))):t==wf?(E=ze(Ge(Q(C,(Qi(),k0)))),C.e.b+C.f.b+r0&&(g=l(o0(l(o.Xb(a),65).a),8).a,B=C.e.a+C.f.a/2,w=l(o0(l(o.Xb(a),65).a),8).b,z=C.e.b+C.f.b/2,r>0&&b.Math.abs(g-B)/(b.Math.abs(w-z)/40)>50&&(B>g?ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f-r/2,C.e.b+r/5.3+C.f.b)):ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f+r/2,C.e.b+r/5.3+C.f.b)))),ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f,C.e.b+C.f.b))):(E=ze(Ge(Q(C,(Qi(),c1)))),C0t(l(o.Xb(a),65),e)?ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f,l(o0(l(o.Xb(a),65).a),8).b)):C.e.b-r>E?ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f,E-n)):l(o.Xb(a),65).a.b>0&&(g=l(o0(l(o.Xb(a),65).a),8).a,B=C.e.a+C.f.a/2,w=l(o0(l(o.Xb(a),65).a),8).b,z=C.e.b+C.f.b/2,r>0&&b.Math.abs(g-B)/(b.Math.abs(w-z)/40)>50&&(B>g?ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f-r/2,C.e.b-r/5.3)):ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f+r/2,C.e.b-r/5.3)))),ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f,C.e.b)))}function pi(){pi=U;var e,t;eC=new Ui(Byt),a7=new Ui(Fyt),eNe=(og(),Sge),ASt=new pn(qTe,eNe),Z6=new pn(Ox,null),LSt=new Ui(tSe),nNe=(Ym(),rs(Lge,he(le(Mge,1),it,298,0,[Age]))),UB=new pn(SG,nNe),GB=new pn(VP,(Hn(),!1)),rNe=(Js(),J1),xv=new pn(gfe,rNe),aNe=(ip(),Hge),sNe=new pn(HP,aNe),ISt=new pn(ZCe,!1),uNe=(rp(),oY),n7=new pn(CG,uNe),vNe=new lw(12),_2=new pn(Xw,vNe),WB=new pn(hL,!1),Nge=new pn(AG,!1),YB=new pn(fL,!1),ENe=(Ra(),Wb),_M=new pn(Nhe,ENe),n9=new Ui(_G),XB=new Ui(NP),zge=new Ui(oG),qge=new Ui(lL),lNe=new bl,x3=new pn(ZTe,lNe),DSt=new pn(nCe,!1),OSt=new pn(rCe,!1),hNe=new s_,tC=new pn(sCe,hNe),rY=new pn($Te,!1),FSt=new pn(Ryt,1),t7=new Ui(jyt),e7=new Ui($yt),AM=new pn(PP,!1),new pn(zyt,!0),pt(0),new pn(qyt,pt(100)),new pn(Hyt,!1),pt(0),new pn(Vyt,pt(4e3)),pt(0),new pn(Uyt,pt(400)),new pn(Gyt,!1),new pn(Kyt,!1),new pn(Wyt,!0),new pn(Yyt,!1),tNe=(VV(),Kge),MSt=new pn(eSe,tNe),RSt=new pn(LTe,10),jSt=new pn(MTe,10),_Ne=new pn(_he,20),$St=new pn(DTe,10),ANe=new pn(Ohe,2),LNe=new pn(dfe,10),MNe=new pn(ITe,0),iY=new pn(PTe,5),DNe=new pn(OTe,1),INe=new pn(NTe,1),Ev=new pn(Jy,20),zSt=new pn(BTe,10),PNe=new pn(FTe,10),r9=new Ui(RTe),NNe=new nnt,ONe=new pn(aCe,NNe),PSt=new Ui(bfe),wNe=!1,NSt=new pn(pfe,wNe),dNe=new lw(5),fNe=new pn(UTe,dNe),gNe=(qy(),t=l(K0(Ko),9),new Zh(t,l(c0(t,t.length),9),0)),r7=new pn(fT,gNe),xNe=(t6(),Kb),yNe=new pn(WTe,xNe),Bge=new Ui(YTe),Fge=new Ui(XTe),Rge=new Ui(QTe),Pge=new Ui(JTe),pNe=(e=l(K0(BM),9),new Zh(e,l(c0(e,e.length),9),0)),kv=new pn(x6,pNe),mNe=un((Zl(),aC)),Ub=new pn(Nx,mNe),bNe=new lt(0,0),i7=new pn(Px,bNe),C4=new pn(hT,!1),iNe=(F1(),nC),Ige=new pn(eCe,iNe),Dge=new pn(cG,!1),pt(1),new pn(Xyt,null),kNe=new Ui(iCe),jge=new Ui(tCe),SNe=(Ct(),Pc),s7=new pn(zTe,SNe),rh=new Ui(jTe),TNe=(Rl(),un(Yb)),S4=new pn(dT,TNe),$ge=new pn(GTe,!1),CNe=new pn(KTe,!0),aY=new pn(BP,1),BNe=new pn(nSe,null),QB=new pn(FP,150),sY=new pn(RP,1.414),i9=new pn(Qw,null),qSt=new pn(rSe,1),KB=new pn(HTe,!1),Oge=new pn(VTe,!1),oNe=new pn(Ahe,1),cNe=(vU(),Uge),new pn(Qyt,cNe),BSt=!0,VSt=(dx(),L4),USt=L4,HSt=L4}function vo(){vo=U,PAe=new Ws("DIRECTION_PREPROCESSOR",0),IAe=new Ws("COMMENT_PREPROCESSOR",1),D6=new Ws("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),f1e=new Ws("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),eLe=new Ws("PARTITION_PREPROCESSOR",4),DK=new Ws("LABEL_DUMMY_INSERTER",5),zK=new Ws("SELF_LOOP_PREPROCESSOR",6),l4=new Ws("LAYER_CONSTRAINT_PREPROCESSOR",7),JAe=new Ws("PARTITION_MIDPROCESSOR",8),HAe=new Ws("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),XAe=new Ws("NODE_PROMOTION",10),u4=new Ws("LAYER_CONSTRAINT_POSTPROCESSOR",11),ZAe=new Ws("PARTITION_POSTPROCESSOR",12),$Ae=new Ws("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),tLe=new Ws("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),SAe=new Ws("BREAKING_POINT_INSERTER",15),PK=new Ws("LONG_EDGE_SPLITTER",16),d1e=new Ws("PORT_SIDE_PROCESSOR",17),LK=new Ws("INVERTED_PORT_PROCESSOR",18),RK=new Ws("PORT_LIST_SORTER",19),rLe=new Ws("SORT_BY_INPUT_ORDER_OF_MODEL",20),FK=new Ws("NORTH_SOUTH_PORT_PREPROCESSOR",21),_Ae=new Ws("BREAKING_POINT_PROCESSOR",22),QAe=new Ws(H3t,23),iLe=new Ws(V3t,24),jK=new Ws("SELF_LOOP_PORT_RESTORER",25),nLe=new Ws("SINGLE_EDGE_GRAPH_WRAPPER",26),MK=new Ws("IN_LAYER_CONSTRAINT_PROCESSOR",27),FAe=new Ws("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),WAe=new Ws("LABEL_AND_NODE_SIZE_PROCESSOR",29),KAe=new Ws("INNERMOST_NODE_MARGIN_CALCULATOR",30),qK=new Ws("SELF_LOOP_ROUTER",31),MAe=new Ws("COMMENT_NODE_MARGIN_CALCULATOR",32),AK=new Ws("END_LABEL_PREPROCESSOR",33),OK=new Ws("LABEL_DUMMY_SWITCHER",34),LAe=new Ws("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),LT=new Ws("LABEL_SIDE_SELECTOR",36),UAe=new Ws("HYPEREDGE_DUMMY_MERGER",37),zAe=new Ws("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),YAe=new Ws("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),zL=new Ws("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),OAe=new Ws("CONSTRAINTS_POSTPROCESSOR",41),DAe=new Ws("COMMENT_POSTPROCESSOR",42),GAe=new Ws("HYPERNODE_PROCESSOR",43),qAe=new Ws("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),NK=new Ws("LONG_EDGE_JOINER",45),$K=new Ws("SELF_LOOP_POSTPROCESSOR",46),AAe=new Ws("BREAKING_POINT_REMOVER",47),BK=new Ws("NORTH_SOUTH_PORT_POSTPROCESSOR",48),VAe=new Ws("HORIZONTAL_COMPACTOR",49),IK=new Ws("LABEL_DUMMY_REMOVER",50),RAe=new Ws("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),BAe=new Ws("END_LABEL_SORTER",52),gB=new Ws("REVERSED_EDGE_RESTORER",53),_K=new Ws("END_LABEL_POSTPROCESSOR",54),jAe=new Ws("HIERARCHICAL_NODE_RESIZER",55),NAe=new Ws("DIRECTION_POSTPROCESSOR",56)}function Yke(){Yke=U,iMe=(pN(),XK),r9t=new pn(VEe,iMe),p9t=new pn(UEe,(Hn(),!1)),lMe=(zH(),z1e),y9t=new pn(fG,lMe),P9t=new pn(GEe,!1),B9t=new pn(KEe,!0),Lxt=new pn(WEe,!1),vMe=(dN(),kde),Q9t=new pn(YEe,vMe),pt(1),skt=new pn(XEe,pt(7)),akt=new pn(QEe,!1),b9t=new pn(JEe,!1),rMe=(l2(),A1e),n9t=new pn(zhe,rMe),dMe=(p2(),gde),N9t=new pn(qP,dMe),hMe=(hf(),EB),S9t=new pn(ZEe,hMe),pt(-1),C9t=new pn(eTe,null),pt(-1),_9t=new pn(tTe,pt(-1)),pt(-1),A9t=new pn(qhe,pt(4)),pt(-1),M9t=new pn(Hhe,pt(2)),fMe=(Nf(),AW),O9t=new pn(Vhe,fMe),pt(0),I9t=new pn(Uhe,pt(0)),E9t=new pn(Ghe,pt(Ii)),nMe=(dA(),HL),t9t=new pn(pL,nMe),$xt=new pn(nTe,!1),Kxt=new pn(Khe,.1),Zxt=new pn(Whe,!1),Yxt=new pn(rTe,null),Xxt=new pn(iTe,null),pt(-1),Qxt=new pn(sTe,null),pt(-1),Jxt=new pn(aTe,pt(-1)),pt(0),zxt=new pn(oTe,pt(40)),tMe=(vE(),j1e),Uxt=new pn(Yhe,tMe),eMe=vB,qxt=new pn(dG,eMe),mMe=(OA(),rM),X9t=new pn(k6,mMe),z9t=new Ui(gG),gMe=(cN(),JK),F9t=new pn(Xhe,gMe),pMe=(WN(),ZK),j9t=new pn(Qhe,pMe),V9t=new pn(Jhe,.3),G9t=new Ui(Zhe),bMe=(By(),_W),K9t=new pn(efe,bMe),oMe=(LV(),Tde),c9t=new pn(cTe,oMe),cMe=(yA(),Sde),u9t=new pn(uTe,cMe),uMe=(SE(),aM),l9t=new pn(pG,uMe),f9t=new pn(bG,.2),a9t=new pn(tfe,2),tkt=new pn(lTe,null),rkt=new pn(hTe,10),nkt=new pn(fTe,10),ikt=new pn(dTe,20),pt(0),J9t=new pn(gTe,pt(0)),pt(0),Z9t=new pn(pTe,pt(0)),pt(0),ekt=new pn(bTe,pt(0)),Mxt=new pn(nfe,!1),XLe=(zE(),VL),Ixt=new pn(mTe,XLe),YLe=(JH(),S1e),Dxt=new pn(vTe,YLe),v9t=new pn(mG,!1),pt(0),m9t=new pn(rfe,pt(16)),pt(0),w9t=new pn(ife,pt(5)),xMe=(OV(),Lde),Skt=new pn(fp,xMe),okt=new pn(vG,10),lkt=new pn(wG,1),yMe=(pV(),YK),mkt=new pn(bL,yMe),dkt=new Ui(sfe),wMe=pt(1),pt(0),pkt=new pn(afe,wMe),kMe=(gV(),Ade),Mkt=new pn(yG,kMe),_kt=new Ui(xG),kkt=new pn(kG,!0),ykt=new pn(EG,2),Tkt=new pn(ofe,!0),aMe=(yU(),QK),s9t=new pn(wTe,aMe),sMe=(yx(),OT),i9t=new pn(yTe,sMe),ZLe=(Ed(),E2),jxt=new pn(TG,ZLe),Rxt=new pn(xTe,!1),Fxt=new pn(kTe,!1),QLe=(Km(),c4),Oxt=new pn(cfe,QLe),JLe=(EA(),pde),Bxt=new pn(ETe,JLe),Nxt=new pn(ufe,0),Pxt=new pn(lfe,0),k9t=L1e,x9t=mB,L9t=CW,D9t=CW,T9t=dde,Wxt=(rp(),A2),e9t=HL,Gxt=HL,Hxt=HL,Vxt=A2,q9t=iM,H9t=rM,R9t=rM,$9t=rM,U9t=wde,Y9t=iM,W9t=iM,h9t=(ip(),s9),d9t=s9,g9t=aM,o9t=JB,ckt=XT,ukt=k4,hkt=XT,fkt=k4,vkt=XT,wkt=k4,gkt=_1e,bkt=YK,Dkt=XT,Ikt=k4,Akt=XT,Lkt=k4,Ekt=k4,xkt=k4,Ckt=k4}function JIn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur,oi,ws,Vl,lc,Hh,f7,P2,L0,M0,_v,h9,rm,f9,qd,_g,S3,d9,d7,Hd,Av,yp,IAt,sBe,_3,YM,lpe,g9,XM,F4,QM,hpe,OAt;for(sBe=0,oi=t,lc=0,P2=oi.length;lc0&&(e.a[qd.p]=sBe++)}for(XM=0,ws=n,Hh=0,L0=ws.length;Hh0;){for(qd=(mr(d7.b>0),l(d7.a.Xb(d7.c=--d7.b),12)),d9=0,g=new G(qd.e);g.a0&&(qd.j==(Ct(),Qn)?(e.a[qd.p]=XM,++XM):(e.a[qd.p]=XM+M0+h9,++h9))}XM+=h9}for(S3=new Pr,V=new bd,ur=t,Vl=0,f7=ur.length;VlE.b&&(E.b=Hd)):qd.i.c==IAt&&(HdE.c&&(E.c=Hd));for(nE(J,0,J.length,null),g9=We(Vr,di,28,J.length,15,1),r=We(Vr,di,28,XM+1,15,1),fe=0;fe0;)St%2>0&&(a+=hpe[St+1]),St=(St-1)/2|0,++hpe[St];for(an=We(MEt,Rn,374,J.length*2,0,1),$e=0;$e0&&GO(Vl.f),at(fe,BNe)!=null&&(g=l(at(fe,BNe),347),S3=g.Tg(fe),F5(fe,b.Math.max(fe.g,S3.a),b.Math.max(fe.f,S3.b)));if(L0=l(at(t,_2),107),z=t.g-(L0.b+L0.c),B=t.f-(L0.d+L0.a),Hd.bh("Available Child Area: ("+z+"|"+B+")"),Hi(t,Z6,z/B),sdt(t,a,r.eh(f7)),l(at(t,i9),280)==dY&&(Uke(t),F5(t,L0.b+ze(Ge(at(t,t7)))+L0.c,L0.d+ze(Ge(at(t,e7)))+L0.a)),Hd.bh("Executed layout algorithm: "+ei(at(t,eC))+" on node "+t.k),l(at(t,i9),280)==L4){if(z<0||B<0)throw ue(new Vp("The size defined by the parent parallel node is too small for the space provided by the paddings of the child hierarchical node. "+t.k));for(P1(t,t7)||P1(t,e7)||Uke(t),J=ze(Ge(at(t,t7))),V=ze(Ge(at(t,e7))),Hd.bh("Desired Child Area: ("+J+"|"+V+")"),_v=z/J,h9=B/V,M0=b.Math.min(_v,b.Math.min(h9,ze(Ge(at(t,qSt))))),Hi(t,aY,M0),Hd.bh(t.k+" -- Local Scale Factor (X|Y): ("+_v+"|"+h9+")"),$e=l(at(t,UB),21),o=0,f=0,M0<_v&&($e.Hc((Ym(),EM))?o=(z/2-J*M0/2)/M0:$e.Hc(TM)&&(o=(z-J*M0)/M0)),M0'?":vn(L4t,e)?"'(?<' or '(? toIndex: ",fEe=", toIndex: ",dEe="Index: ",gEe=", Size: ",oT="org.eclipse.elk.alg.common",ii={50:1},Jwt="org.eclipse.elk.alg.common.compaction",Zwt="Scanline/EventHandler",gg="org.eclipse.elk.alg.common.compaction.oned",e3t="CNode belongs to another CGroup.",t3t="ISpacingsHandler/1",phe="The ",bhe=" instance has been finished already.",n3t="The direction ",r3t=" is not supported by the CGraph instance.",i3t="OneDimensionalCompactor",s3t="OneDimensionalCompactor/lambda$0$Type",a3t="Quadruplet",o3t="ScanlineConstraintCalculator",c3t="ScanlineConstraintCalculator/ConstraintsScanlineHandler",u3t="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",l3t="ScanlineConstraintCalculator/Timestamp",h3t="ScanlineConstraintCalculator/lambda$0$Type",Ld={178:1,46:1},mhe="org.eclipse.elk.alg.common.compaction.options",Nc="org.eclipse.elk.core.data",pEe="org.eclipse.elk.polyomino.traversalStrategy",bEe="org.eclipse.elk.polyomino.lowLevelSort",mEe="org.eclipse.elk.polyomino.highLevelSort",vEe="org.eclipse.elk.polyomino.fill",Pf={134:1},vhe="polyomino",oL="org.eclipse.elk.alg.common.networksimplex",pg={183:1,3:1,4:1},f3t="org.eclipse.elk.alg.common.nodespacing",ev="org.eclipse.elk.alg.common.nodespacing.cellsystem",cT="CENTER",d3t={217:1,336:1},wEe={3:1,4:1,5:1,603:1},Mx="LEFT",Dx="RIGHT",yEe="Vertical alignment cannot be null",xEe="BOTTOM",tG="org.eclipse.elk.alg.common.nodespacing.internal",cL="UNDEFINED",H1=.01,DP="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",g3t="LabelPlacer/lambda$0$Type",p3t="LabelPlacer/lambda$1$Type",b3t="portRatioOrPosition",uT="org.eclipse.elk.alg.common.overlaps",whe="DOWN",Md="org.eclipse.elk.alg.common.polyomino",nG="NORTH",yhe="EAST",xhe="SOUTH",khe="WEST",rG="org.eclipse.elk.alg.common.polyomino.structures",kEe="Direction",Ehe="Grid is only of size ",The=". Requested point (",Che=") is out of bounds.",iG=" Given center based coordinates were (",IP="org.eclipse.elk.graph.properties",m3t="IPropertyHolder",EEe={3:1,96:1,137:1},Ix="org.eclipse.elk.alg.common.spore",v3t="org.eclipse.elk.alg.common.utils",tv={205:1},v6="org.eclipse.elk.core",w3t="Connected Components Compaction",y3t="org.eclipse.elk.alg.disco",sG="org.eclipse.elk.alg.disco.graph",She="org.eclipse.elk.alg.disco.options",TEe="CompactionStrategy",CEe="org.eclipse.elk.disco.componentCompaction.strategy",SEe="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",_Ee="org.eclipse.elk.disco.debug.discoGraph",AEe="org.eclipse.elk.disco.debug.discoPolys",x3t="componentCompaction",nv="org.eclipse.elk.disco",_he="org.eclipse.elk.spacing.componentComponent",Ahe="org.eclipse.elk.edge.thickness",Ox="org.eclipse.elk.aspectRatio",Xw="org.eclipse.elk.padding",w6="org.eclipse.elk.alg.disco.transform",Lhe=1.5707963267948966,y6=17976931348623157e292,Qy={3:1,4:1,5:1,198:1},k3t={3:1,6:1,4:1,5:1,100:1,115:1},Mhe="org.eclipse.elk.alg.force",LEe="ComponentsProcessor",E3t="ComponentsProcessor/1",MEe="ElkGraphImporter/lambda$0$Type",OP="org.eclipse.elk.alg.force.graph",T3t="Component Layout",DEe="org.eclipse.elk.alg.force.model",aG="org.eclipse.elk.force.model",IEe="org.eclipse.elk.force.iterations",OEe="org.eclipse.elk.force.repulsivePower",Dhe="org.eclipse.elk.force.temperature",Dd=.001,Ihe="org.eclipse.elk.force.repulsion",uL="org.eclipse.elk.alg.force.options",lT=1.600000023841858,Yu="org.eclipse.elk.force",NP="org.eclipse.elk.priority",Jy="org.eclipse.elk.spacing.nodeNode",Ohe="org.eclipse.elk.spacing.edgeLabel",oG="org.eclipse.elk.randomSeed",lL="org.eclipse.elk.separateConnectedComponents",hL="org.eclipse.elk.interactive",Nhe="org.eclipse.elk.portConstraints",cG="org.eclipse.elk.edgeLabels.inline",fL="org.eclipse.elk.omitNodeMicroLayout",hT="org.eclipse.elk.nodeSize.fixedGraphSize",Nx="org.eclipse.elk.nodeSize.options",x6="org.eclipse.elk.nodeSize.constraints",fT="org.eclipse.elk.nodeLabels.placement",dT="org.eclipse.elk.portLabels.placement",PP="org.eclipse.elk.topdownLayout",BP="org.eclipse.elk.topdown.scaleFactor",FP="org.eclipse.elk.topdown.hierarchicalNodeWidth",RP="org.eclipse.elk.topdown.hierarchicalNodeAspectRatio",Qw="org.eclipse.elk.topdown.nodeType",NEe="origin",C3t="random",S3t="boundingBox.upLeft",_3t="boundingBox.lowRight",PEe="org.eclipse.elk.stress.fixed",BEe="org.eclipse.elk.stress.desiredEdgeLength",FEe="org.eclipse.elk.stress.dimension",REe="org.eclipse.elk.stress.epsilon",jEe="org.eclipse.elk.stress.iterationLimit",Mb="org.eclipse.elk.stress",A3t="ELK Stress",Px="org.eclipse.elk.nodeSize.minimum",uG="org.eclipse.elk.alg.force.stress",L3t="Layered layout",Bx="org.eclipse.elk.alg.layered",jP="org.eclipse.elk.alg.layered.compaction.components",dL="org.eclipse.elk.alg.layered.compaction.oned",lG="org.eclipse.elk.alg.layered.compaction.oned.algs",rv="org.eclipse.elk.alg.layered.compaction.recthull",V1="org.eclipse.elk.alg.layered.components",Id="NONE",$Ee="MODEL_ORDER",au={3:1,6:1,4:1,9:1,5:1,126:1},M3t={3:1,6:1,4:1,5:1,150:1,100:1,115:1},hG="org.eclipse.elk.alg.layered.compound",ts={47:1},Cu="org.eclipse.elk.alg.layered.graph",Phe=" -> ",D3t="Not supported by LGraph",zEe="Port side is undefined",Bhe={3:1,6:1,4:1,5:1,483:1,150:1,100:1,115:1},m2={3:1,6:1,4:1,5:1,150:1,199:1,210:1,100:1,115:1},I3t={3:1,6:1,4:1,5:1,150:1,2042:1,210:1,100:1,115:1},O3t=`([{"' \r +`)}return[]}function k7n(e){var t;return t=(Qht(),p6t),t[e>>>28]|t[e>>24&15]<<4|t[e>>20&15]<<8|t[e>>16&15]<<12|t[e>>12&15]<<16|t[e>>8&15]<<20|t[e>>4&15]<<24|t[e&15]<<28}function Xdt(e){var t,n,r;e.b==e.c&&(r=e.a.length,n=P7e(b.Math.max(8,r))<<1,e.b!=0?(t=c0(e.a,n),fft(e,t,r),e.a=t,e.b=0):ay(e.a,n),e.c=r)}function E7n(e,t){var n;return n=e.b,n.pf((pi(),rh))?n.ag()==(Ct(),er)?-n.Mf().a-ze(Ge(n.of(rh))):t+ze(Ge(n.of(rh))):n.ag()==(Ct(),er)?-n.Mf().a:t}function HN(e){var t;return e.b.c.length!=0&&l(jt(e.b,0),72).a?l(jt(e.b,0),72).a:(t=Qae(e),t??""+(e.c?gc(e.c.a,e,0):-1))}function fU(e){var t;return e.f.c.length!=0&&l(jt(e.f,0),72).a?l(jt(e.f,0),72).a:(t=Qae(e),t??""+(e.i?gc(e.i.j,e,0):-1))}function T7n(e,t){var n,r;if(t<0||t>=e.gc())return null;for(n=t;n0?e.c:0),a=b.Math.max(a,t.d),++r;e.e=o,e.b=a}function S7n(e){var t,n;if(!e.b)for(e.b=$H(l(e.f,123).kh().i),n=new or(l(e.f,123).kh());n.e!=n.i.gc();)t=l(gr(n),135),vt(e.b,new Yie(t));return e.b}function _7n(e,t){var n,r,a;if(t.dc())return Fk(),Fk(),fF;for(n=new Ort(e,t.gc()),a=new or(e);a.e!=a.i.gc();)r=gr(a),t.Hc(r)&&qr(n,r);return n}function sxe(e,t,n,r){return t==0?r?(!e.o&&(e.o=new xl((su(),Cg),L2,e,0)),e.o):(!e.o&&(e.o=new xl((su(),Cg),L2,e,0)),iN(e.o)):rU(e,t,n,r)}function yue(e){var t,n;if(e.rb)for(t=0,n=e.rb.i;t>22),a+=r>>22,a<0)?!1:(e.l=n&eh,e.m=r&eh,e.h=a&hp,!0)}function xue(e,t,n,r,a,o,f){var g,w;return!(t.Te()&&(w=e.a.Ne(n,r),w<0||!a&&w==0)||t.Ue()&&(g=e.a.Ne(n,o),g>0||!f&&g==0))}function D7n(e,t){TE();var n;if(n=e.j.g-t.j.g,n!=0)return 0;switch(e.j.g){case 2:return zce(t,cLe)-zce(e,cLe);case 4:return zce(e,oLe)-zce(t,oLe)}return 0}function I7n(e){switch(e.g){case 0:return D1e;case 1:return I1e;case 2:return O1e;case 3:return N1e;case 4:return QK;case 5:return P1e;default:return null}}function ac(e,t,n){var r,a;return r=(a=new Hie,Gm(a,t),Fu(a,n),qr((!e.c&&(e.c=new nt(k3,e,12,10)),e.c),a),a),i2(r,0),My(r,1),u2(r,!0),c2(r,!0),r}function vx(e,t){var n,r;if(t>=e.i)throw ue(new Vse(t,e.i));return++e.j,n=e.g[t],r=e.i-t-1,r>0&&pu(e.g,t+1,e.g,t,r),Ts(e.g,--e.i,null),e.Qi(t,n),e.Ni(),n}function Qdt(e,t){var n,r;return e.Db>>16==17?e.Cb.Th(e,21,Vf,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||e.ii()),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function O7n(e){var t,n,r,a;for(Cn(),Vs(e.c,e.a),a=new G(e.c);a.an.a.c.length))throw ue(new Yn("index must be >= 0 and <= layer node count"));e.c&&al(e.c.a,e),e.c=n,n&&pw(n.a,t,e)}function ngt(e,t){var n,r,a;for(r=new hr(dr(sp(e).a.Kc(),new j));jr(r);)return n=l(xr(r),18),a=l(t.Kb(n),10),new JS(Xr(a.n.b+a.o.b/2));return o_(),o_(),v0e}function rgt(e,t){this.c=new Pr,this.a=e,this.b=t,this.d=l(Q(e,(ft(),$6)),312),qe(Q(e,(Nt(),GMe)))===qe((cN(),JK))?this.e=new XQe:this.e=new YQe}function BA(e,t){var n,r;return r=null,e.pf((pi(),r9))&&(n=l(e.of(r9),96),n.pf(t)&&(r=n.of(t))),r==null&&e.Tf()&&(r=e.Tf().of(t)),r==null&&(r=It(t)),r}function kue(e,t){var n,r;n=e.fd(t);try{return r=n.Pb(),n.Qb(),r}catch(a){throw a=bs(a),De(a,112)?ue(new tc("Can't remove element "+t)):ue(a)}}function z7n(e,t){var n,r,a;if(r=new Qz,a=new R7e(r.q.getFullYear()-Lb,r.q.getMonth(),r.q.getDate()),n=JAn(e,t,a),n==0||n0?t:0),++n;return new lt(r,a)}function lxe(e,t){var n,r;return e.Db>>16==6?e.Cb.Th(e,6,js,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(su(),pY)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function hxe(e,t){var n,r;return e.Db>>16==7?e.Cb.Th(e,1,oF,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(su(),dPe)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function fxe(e,t){var n,r;return e.Db>>16==9?e.Cb.Th(e,9,Ai,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(su(),pPe)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function agt(e,t){var n,r;return e.Db>>16==5?e.Cb.Th(e,9,TY,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(Tn(),D2)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function ogt(e,t){var n,r;return e.Db>>16==7?e.Cb.Th(e,6,u1,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(Tn(),O2)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function dxe(e,t){var n,r;return e.Db>>16==3?e.Cb.Th(e,0,uF,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(Tn(),M2)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function cgt(){this.a=new T$,this.g=new cU,this.j=new cU,this.b=new Pr,this.d=new cU,this.i=new cU,this.k=new Pr,this.c=new Pr,this.e=new Pr,this.f=new Pr}function V7n(e,t,n){var r,a,o;for(n<0&&(n=0),o=e.i,a=n;aohe)return FE(e,r);if(r==e)return!0}}return!1}function G7n(e){switch(zq(),e.q.g){case 5:Vpt(e,(Ct(),Qn)),Vpt(e,Dr);break;case 4:U2t(e,(Ct(),Qn)),U2t(e,Dr);break;default:Wvt(e,(Ct(),Qn)),Wvt(e,Dr)}}function K7n(e){switch(zq(),e.q.g){case 5:u2t(e,(Ct(),ar)),u2t(e,er);break;case 4:gdt(e,(Ct(),ar)),gdt(e,er);break;default:Yvt(e,(Ct(),ar)),Yvt(e,er)}}function W7n(e){var t,n;t=l(Q(e,(b0(),e8t)),17),t?(n=t.a,n==0?rt(e,(bb(),EK),new Uce):rt(e,(bb(),EK),new VH(n))):rt(e,(bb(),EK),new VH(1))}function Y7n(e,t){var n;switch(n=e.i,t.g){case 1:return-(e.n.b+e.o.b);case 2:return e.n.a-n.o.a;case 3:return e.n.b-n.o.b;case 4:return-(e.n.a+e.o.a)}return 0}function X7n(e,t){switch(e.g){case 0:return t==(hf(),$b)?HK:VK;case 1:return t==(hf(),$b)?HK:pB;case 2:return t==(hf(),$b)?pB:VK;default:return pB}}function UN(e,t){var n,r,a;for(al(e.a,t),e.e-=t.r+(e.a.c.length==0?0:e.c),a=xCe,r=new G(e.a);r.a>16==3?e.Cb.Th(e,12,Ai,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(su(),fPe)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function pxe(e,t){var n,r;return e.Db>>16==11?e.Cb.Th(e,10,Ai,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(su(),gPe)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function ugt(e,t){var n,r;return e.Db>>16==10?e.Cb.Th(e,11,Vf,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(Tn(),I2)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function lgt(e,t){var n,r;return e.Db>>16==10?e.Cb.Th(e,12,Uf,t):(r=Ro(l(Mn((n=l(Kn(e,16),29),n||(Tn(),N4)),e.Db>>16),19)),e.Cb.Th(e,r.n,r.f,t))}function Of(e){var t;return!(e.Bb&1)&&e.r&&e.r.Vh()&&(t=l(e.r,54),e.r=l(yb(e,t),142),e.r!=t&&e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,9,8,t,e.r))),e.r}function Eue(e,t,n){var r;return r=he(le(Na,1),Zo,28,15,[zxe(e,(t1(),Gc),t,n),zxe(e,$u,t,n),zxe(e,Kc,t,n)]),e.f&&(r[0]=b.Math.max(r[0],r[2]),r[2]=r[0]),r}function Q7n(e,t){var n,r,a;if(a=x6n(e,t),a.c.length!=0)for(Vs(a,new pS),n=a.c.length,r=0;r>19,E=t.h>>19,w!=E?E-w:(a=e.h,g=t.h,a!=g?a-g:(r=e.m,f=t.m,r!=f?r-f:(n=e.l,o=t.l,n-o)))}function dU(){dU=U,D_e=(PU(),z0e),M_e=new pn(pEe,D_e),L_e=(aV(),$0e),A_e=new pn(bEe,L_e),__e=(ZV(),j0e),S_e=new pn(mEe,__e),C_e=new pn(vEe,(Hn(),!0))}function FA(e,t,n){var r,a;r=t*n,De(e.g,154)?(a=ix(e),a.f.d?a.f.a||(e.d.a+=r+H1):(e.d.d-=r+H1,e.d.a+=r+H1)):De(e.g,10)&&(e.d.d-=r,e.d.a+=2*r)}function hgt(e,t,n){var r,a,o,f,g;for(a=e[n.g],g=new G(t.d);g.a0?e.b:0),++n;t.b=r,t.e=a}function fgt(e){var t,n,r;if(r=e.b,tet(e.i,r.length)){for(n=r.length*2,e.b=We(k0e,TP,303,n,0,1),e.c=We(k0e,TP,303,n,0,1),e.f=n-1,e.i=0,t=e.a;t;t=t.c)eP(e,t,t);++e.g}}function i8n(e,t,n,r){var a,o,f,g;for(a=0;af&&(g=f/r),a>o&&(w=o/a),md(e,b.Math.min(g,w)),e}function a8n(){zU();var e,t;try{if(t=l(Sxe((ib(),Gf),xT),2113),t)return t}catch(n){if(n=bs(n),De(n,103))e=n,p5e((Jr(),e));else throw ue(n)}return new ik}function o8n(){zU();var e,t;try{if(t=l(Sxe((ib(),Gf),Ff),2040),t)return t}catch(n){if(n=bs(n),De(n,103))e=n,p5e((Jr(),e));else throw ue(n)}return new d8}function c8n(){klt();var e,t;try{if(t=l(Sxe((ib(),Gf),cv),2122),t)return t}catch(n){if(n=bs(n),De(n,103))e=n,p5e((Jr(),e));else throw ue(n)}return new uk}function u8n(e,t,n){var r,a;return a=e.e,e.e=t,e.Db&4&&!(e.Db&1)&&(r=new _a(e,1,4,a,t),n?n.nj(r):n=r),a!=t&&(t?n=ZE(e,SU(e,t),n):n=ZE(e,e.a,n)),n}function dgt(){Qz.call(this),this.e=-1,this.a=!1,this.p=lo,this.k=-1,this.c=-1,this.b=-1,this.g=!1,this.f=-1,this.j=-1,this.n=-1,this.i=-1,this.d=-1,this.o=lo}function l8n(e,t){var n,r,a;if(r=e.b.d.d,e.a||(r+=e.b.d.a),a=t.b.d.d,t.a||(a+=t.b.d.a),n=Yi(r,a),n==0){if(!e.a&&t.a)return-1;if(!t.a&&e.a)return 1}return n}function h8n(e,t){var n,r,a;if(r=e.b.b.d,e.a||(r+=e.b.b.a),a=t.b.b.d,t.a||(a+=t.b.b.a),n=Yi(r,a),n==0){if(!e.a&&t.a)return-1;if(!t.a&&e.a)return 1}return n}function f8n(e,t){var n,r,a;if(r=e.b.g.d,e.a||(r+=e.b.g.a),a=t.b.g.d,t.a||(a+=t.b.g.a),n=Yi(r,a),n==0){if(!e.a&&t.a)return-1;if(!t.a&&e.a)return 1}return n}function mxe(){mxe=U,v8t=yl(fi(fi(fi(new Xs,(uo(),_u),(vo(),KAe)),_u,WAe),mc,YAe),mc,BAe),y8t=fi(fi(new Xs,_u,LAe),_u,FAe),w8t=yl(new Xs,mc,jAe)}function d8n(e){var t,n,r,a,o;for(t=l(Q(e,(ft(),KL)),85),o=e.n,r=t.Cc().Kc();r.Ob();)n=l(r.Pb(),314),a=n.i,a.c+=o.a,a.d+=o.b,n.c?Ibt(n):Obt(n);rt(e,KL,null)}function g8n(e,t,n){var r,a;switch(a=e.b,r=a.d,t.g){case 1:return-r.d-n;case 2:return a.o.a+r.c+n;case 3:return a.o.b+r.a+n;case 4:return-r.b-n;default:return-1}}function p8n(e,t,n){var r,a;for(n.Ug("Interactive node placement",1),e.a=l(Q(t,(ft(),$6)),312),a=new G(t.b);a.a0&&(f=(o&Ii)%e.d.length,a=y9e(e,f,o,t),a)?(g=a.nd(n),g):(r=e.ck(o,t,n),e.c.Fc(r),null)}function yxe(e,t){var n,r,a,o;switch(o2(e,t).Kl()){case 3:case 2:{for(n=d6(t),a=0,o=n.i;a=0;r--)if(vn(e[r].d,t)||vn(e[r].d,n)){e.length>=r+1&&e.splice(0,r+1);break}return e}function KN(e,t){var n;return wc(e)&&wc(t)&&(n=e/t,_P0&&(e.b+=2,e.a+=r):(e.b+=1,e.a+=b.Math.min(r,a))}function ygt(e){var t;t=l(Q(l(ff(e.b,0),40),(Hc(),gIe)),107),rt(e,(Qi(),QT),new lt(0,0)),hmt(new nN,e,t.b+t.c-ze(Ge(Q(e,Bde))),t.d+t.a-ze(Ge(Q(e,Fde))))}function xgt(e,t){var n,r;if(r=!1,Ia(t)&&(r=!0,J8(e,new yy(ei(t)))),r||De(t,242)&&(r=!0,J8(e,(n=g4e(l(t,242)),new vk(n)))),!r)throw ue(new Qie(mSe))}function I8n(e,t,n,r){var a,o,f;return a=new Zg(e.e,1,10,(f=t.c,De(f,90)?l(f,29):(Tn(),Kf)),(o=n.c,De(o,90)?l(o,29):(Tn(),Kf)),f2(e,t),!1),r?r.nj(a):r=a,r}function Exe(e){var t,n;switch(l(Q(eo(e),(Nt(),jMe)),429).g){case 0:return t=e.n,n=e.o,new lt(t.a+n.a/2,t.b+n.b/2);case 1:return new Eo(e.n);default:return null}}function WN(){WN=U,ZK=new C_(Id,0),TLe=new C_("LEFTUP",1),SLe=new C_("RIGHTUP",2),ELe=new C_("LEFTDOWN",3),CLe=new C_("RIGHTDOWN",4),B1e=new C_("BALANCED",5)}function O8n(e,t,n){var r,a,o;if(r=Yi(e.a[t.p],e.a[n.p]),r==0){if(a=l(Q(t,(ft(),Wx)),15),o=l(Q(n,Wx),15),a.Hc(n))return-1;if(o.Hc(t))return 1}return r}function N8n(e){switch(e.g){case 1:return new vne;case 2:return new wne;case 3:return new mne;case 0:return null;default:throw ue(new Yn(Efe+(e.f!=null?e.f:""+e.g)))}}function Txe(e,t,n){switch(t){case 1:!e.n&&(e.n=new nt(ec,e,1,7)),$r(e.n),!e.n&&(e.n=new nt(ec,e,1,7)),As(e.n,l(n,16));return;case 2:fE(e,ei(n));return}V7e(e,t,n)}function Cxe(e,t,n){switch(t){case 3:Mw(e,ze(Ge(n)));return;case 4:Dw(e,ze(Ge(n)));return;case 5:Uu(e,ze(Ge(n)));return;case 6:Gu(e,ze(Ge(n)));return}Txe(e,t,n)}function gU(e,t,n){var r,a,o;o=(r=new Hie,r),a=$1(o,t,null),a&&a.oj(),Fu(o,n),qr((!e.c&&(e.c=new nt(k3,e,12,10)),e.c),o),i2(o,0),My(o,1),u2(o,!0),c2(o,!0)}function Sxe(e,t){var n,r,a;return n=y_(e.i,t),De(n,241)?(a=l(n,241),a.zi()==null,a.wi()):De(n,507)?(r=l(n,2037),a=r.b,a):null}function P8n(e,t,n,r){var a,o;return Xr(t),Xr(n),o=l(H_(e.d,t),17),Wlt(!!o,"Row %s not in %s",t,e.e),a=l(H_(e.b,n),17),Wlt(!!a,"Column %s not in %s",n,e.c),s0t(e,o.a,a.a,r)}function kgt(e,t,n,r,a,o,f){var g,w,E,C,L;if(C=a[o],E=o==f-1,g=E?r:0,L=zdt(g,C),r!=10&&he(le(e,f-o),t[o],n[o],g,L),!E)for(++o,w=0;w1||g==-1?(o=l(w,15),a.Wb(v5n(e,o))):a.Wb(cle(e,l(w,58)))))}function q8n(e,t,n,r){MZe();var a=m0e;function o(){for(var f=0;f0)return!1;return!0}function U8n(e){var t,n,r,a,o;for(r=new qm(new Sr(e.b).a);r.b;)n=Nw(r),t=l(n.ld(),10),o=l(l(n.md(),42).a,10),a=l(l(n.md(),42).b,8),Oi(Y0(t.n),Oi(Ja(o.n),a))}function G8n(e){switch(l(Q(e.b,(Nt(),IMe)),387).g){case 1:Is(fc(Dc(new bn(null,new kn(e.d,16)),new dI),new g5),new wee);break;case 2:zSn(e);break;case 0:wkn(e)}}function K8n(e,t,n){var r,a,o;for(r=n,!r&&(r=new L8),r.Ug("Layout",e.a.c.length),o=new G(e.a);o.awfe)return n;a>-1e-6&&++n}return n}function Axe(e,t){var n;t!=e.b?(n=null,e.b&&(n=IH(e.b,e,-4,n)),t&&(n=mx(t,e,-4,n)),n=J0t(e,t,n),n&&n.oj()):e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,3,t,t))}function Cgt(e,t){var n;t!=e.f?(n=null,e.f&&(n=IH(e.f,e,-1,n)),t&&(n=mx(t,e,-1,n)),n=Q0t(e,t,n),n&&n.oj()):e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,0,t,t))}function Q8n(e,t,n,r){var a,o,f,g;return hh(e.e)&&(a=t.Lk(),g=t.md(),o=n.md(),f=db(e,1,a,g,o,a.Jk()?XE(e,a,o,De(a,102)&&(l(a,19).Bb&Io)!=0):-1,!0),r?r.nj(f):r=f),r}function Sgt(e){var t,n,r;if(e==null)return null;if(n=l(e,15),n.dc())return"";for(r=new Up,t=n.Kc();t.Ob();)Xo(r,(Gi(),ei(t.Pb()))),r.a+=" ";return Gse(r,r.a.length-1)}function _gt(e){var t,n,r;if(e==null)return null;if(n=l(e,15),n.dc())return"";for(r=new Up,t=n.Kc();t.Ob();)Xo(r,(Gi(),ei(t.Pb()))),r.a+=" ";return Gse(r,r.a.length-1)}function J8n(e,t,n){var r,a;return r=e.c[t.c.p][t.p],a=e.c[n.c.p][n.p],r.a!=null&&a.a!=null?Nae(r.a,a.a):r.a!=null?-1:a.a!=null?1:0}function Z8n(e,t,n){return n.Ug("Tree layout",1),qO(e.b),X0(e.b,(wx(),NW),NW),X0(e.b,lM,lM),X0(e.b,hM,hM),X0(e.b,fM,fM),e.a=bP(e.b,t),K8n(e,t,n.eh(1)),n.Vg(),t}function exn(e,t){var n,r,a,o,f,g;if(t)for(o=t.a.length,n=new Dm(o),g=(n.b-n.a)*n.c<0?(sb(),tm):new cb(n);g.Ob();)f=l(g.Pb(),17),a=Jk(t,f.a),r=new GXe(e),cpn(r.a,a)}function txn(e,t){var n,r,a,o,f,g;if(t)for(o=t.a.length,n=new Dm(o),g=(n.b-n.a)*n.c<0?(sb(),tm):new cb(n);g.Ob();)f=l(g.Pb(),17),a=Jk(t,f.a),r=new FXe(e),opn(r.a,a)}function nxn(e){var t;if(e!=null&&e.length>0&&co(e,e.length-1)==33)try{return t=P2t(tf(e,0,e.length-1)),t.e==null}catch(n){if(n=bs(n),!De(n,33))throw ue(n)}return!1}function rxn(e,t,n){var r,a,o;switch(r=eo(t),a=zV(r),o=new gu,Mc(o,t),n.g){case 1:la(o,BN(gx(a)));break;case 2:la(o,gx(a))}return rt(o,(Nt(),m4),Ge(Q(e,m4))),o}function Lxe(e){var t,n;return t=l(xr(new hr(dr(ka(e.a).a.Kc(),new j))),18),n=l(xr(new hr(dr(qs(e.a).a.Kc(),new j))),18),Rt(Bt(Q(t,(ft(),W1))))||Rt(Bt(Q(n,W1)))}function Ry(){Ry=U,bB=new cO("ONE_SIDE",0),KK=new cO("TWO_SIDES_CORNER",1),WK=new cO("TWO_SIDES_OPPOSING",2),GK=new cO("THREE_SIDES",3),UK=new cO("FOUR_SIDES",4)}function Agt(e,t){var n,r,a,o;for(o=new bt,a=0,r=t.Kc();r.Ob();){for(n=pt(l(r.Pb(),17).a+a);n.a=e.f)break;$n(o.c,n)}return o}function ixn(e,t){var n,r,a,o,f;for(o=new G(t.a);o.a0&&Jdt(this,this.c-1,(Ct(),ar)),this.c0&&e[0].length>0&&(this.c=Rt(Bt(Q(eo(e[0][0]),(ft(),zLe))))),this.a=We(kEt,dt,2117,e.length,0,2),this.b=We(EEt,dt,2118,e.length,0,2),this.d=new G0t}function uxn(e){return e.c.length==0?!1:(Sn(0,e.c.length),l(e.c[0],18)).c.i.k==(Zn(),Aa)?!0:W5(fc(new bn(null,new kn(e,16)),new Wee),new Yee)}function Dgt(e,t){var n,r,a,o,f,g,w;for(g=Hy(t),o=t.f,w=t.g,f=b.Math.sqrt(o*o+w*w),a=0,r=new G(g);r.a=0?(n=KN(e,JU),r=RN(e,JU)):(t=ub(e,1),n=KN(t,5e8),r=RN(t,5e8),r=bo(l0(r,1),va(e,1))),Q0(l0(r,32),va(n,Vo))}function Ngt(e,t,n){var r,a;switch(r=(mr(t.b!=0),l(af(t,t.a.a),8)),n.g){case 0:r.b=0;break;case 2:r.b=e.f;break;case 3:r.a=0;break;default:r.a=e.g}return a=Rr(t,0),zO(a,r),t}function Pgt(e,t,n,r){var a,o,f,g,w;switch(w=e.b,o=t.d,f=o.j,g=G8e(f,w.d[f.g],n),a=Oi(Ja(o.n),o.a),o.j.g){case 1:case 3:g.a+=a.a;break;case 2:case 4:g.b+=a.b}Cs(r,g,r.c.b,r.c)}function xxn(e,t,n){var r,a,o,f;for(f=gc(e.e,t,0),o=new Pwe,o.b=n,r=new Ua(e.e,f);r.b1;t>>=1)t&1&&(r=K5(r,n)),n.d==1?n=K5(n,n):n=new Q1t(mmt(n.a,n.d,We(Vr,di,28,n.d<<1,15,1)));return r=K5(r,n),r}function Rxe(){Rxe=U;var e,t,n,r;for(m_e=We(Na,Zo,28,25,15,1),v_e=We(Na,Zo,28,33,15,1),r=152587890625e-16,t=32;t>=0;t--)v_e[t]=r,r*=.5;for(n=1,e=24;e>=0;e--)m_e[e]=n,n*=.5}function _xn(e){var t,n;if(Rt(Bt(at(e,(Nt(),b4))))){for(n=new hr(dr(cp(e).a.Kc(),new j));jr(n);)if(t=l(xr(n),74),qw(t)&&Rt(Bt(at(t,gv))))return!0}return!1}function Bgt(e,t){var n,r,a;na(e.f,t)&&(t.b=e,r=t.c,gc(e.j,r,0)!=-1||vt(e.j,r),a=t.d,gc(e.j,a,0)!=-1||vt(e.j,a),n=t.a.b,n.c.length!=0&&(!e.i&&(e.i=new rdt(e)),I3n(e.i,n)))}function Axn(e){var t,n,r,a,o;return n=e.c.d,r=n.j,a=e.d.d,o=a.j,r==o?n.p=0&&vn(e.substr(t,3),"GMT")||t>=0&&vn(e.substr(t,3),"UTC"))&&(n[0]=t+3),mke(e,n,r)}function Mxn(e,t){var n,r,a,o,f;for(o=e.g.a,f=e.g.b,r=new G(e.d);r.an;o--)e[o]|=t[o-n-1]>>>f,e[o-1]=t[o-n-1]<0&&pu(e.g,t,e.g,t+r,g),f=n.Kc(),e.i+=r,a=0;a>4&15,o=e[r]&15,f[a++]=bPe[n],f[a++]=bPe[o];return If(f,0,f.length)}function cl(e){var t,n;return e>=Io?(t=AP+(e-Io>>10&1023)&Zs,n=56320+(e-Io&1023)&Zs,String.fromCharCode(t)+(""+String.fromCharCode(n))):String.fromCharCode(e&Zs)}function zxn(e,t){py();var n,r,a,o;return a=l(l($i(e.r,t),21),87),a.gc()>=2?(r=l(a.Kc().Pb(),117),n=e.u.Hc((Rl(),PM)),o=e.u.Hc(a9),!r.a&&!n&&(a.gc()==2||o)):!1}function jgt(e,t,n,r,a){var o,f,g;for(o=Tbt(e,t,n,r,a),g=!1;!o;)TU(e,a,!0),g=!0,o=Tbt(e,t,n,r,a);g&&TU(e,a,!1),f=bce(a),f.c.length!=0&&(e.d&&e.d.Gg(f),jgt(e,a,n,r,f))}function vU(){vU=U,Uge=new L_(Id,0),$Ne=new L_("DIRECTED",1),qNe=new L_("UNDIRECTED",2),RNe=new L_("ASSOCIATION",3),zNe=new L_("GENERALIZATION",4),jNe=new L_("DEPENDENCY",5)}function qxn(e,t){var n;if(!M1(e))throw ue(new nc(t4t));switch(n=M1(e),t.g){case 1:return-(e.j+e.f);case 2:return e.i-n.g;case 3:return e.j-n.f;case 4:return-(e.i+e.g)}return 0}function Hxn(e,t,n){var r,a,o;return r=t.Lk(),o=t.md(),a=r.Jk()?db(e,4,r,o,null,XE(e,r,o,De(r,102)&&(l(r,19).Bb&Io)!=0),!0):db(e,r.tk()?2:1,r,o,r.ik(),-1,!0),n?n.nj(a):n=a,n}function $E(e,t){var n,r;for(nr(t),r=e.b.c.length,vt(e.b,t);r>0;){if(n=r,r=(r-1)/2|0,e.a.Ne(jt(e.b,r),t)<=0)return rf(e.b,n,t),!0;rf(e.b,n,jt(e.b,r))}return rf(e.b,r,t),!0}function zxe(e,t,n,r){var a,o;if(a=0,n)a=BV(e.a[n.g][t.g],r);else for(o=0;o=g)}function $gt(e){switch(e.g){case 0:return new Sne;case 1:return new _ne;default:throw ue(new Yn("No implementation is available for the width approximator "+(e.f!=null?e.f:""+e.g)))}}function qxe(e,t,n,r){var a;if(a=!1,Ia(r)&&(a=!0,zk(t,n,ei(r))),a||hy(r)&&(a=!0,qxe(e,t,n,r)),a||De(r,242)&&(a=!0,Nm(t,n,l(r,242))),!a)throw ue(new Qie(mSe))}function Uxn(e,t){var n,r,a;if(n=t.qi(e.a),n&&(a=n1((!n.b&&(n.b=new dh((Tn(),No),Yc,n)),n.b),Bf),a!=null)){for(r=1;r<(El(),$Pe).length;++r)if(vn($Pe[r],a))return r}return 0}function Gxn(e,t){var n,r,a;if(n=t.qi(e.a),n&&(a=n1((!n.b&&(n.b=new dh((Tn(),No),Yc,n)),n.b),Bf),a!=null)){for(r=1;r<(El(),zPe).length;++r)if(vn(zPe[r],a))return r}return 0}function zgt(e,t){var n,r,a,o;if(nr(t),o=e.a.gc(),o0?1:0;o.a[a]!=n;)o=o.a[a],a=e.a.Ne(n.d,o.d)>0?1:0;o.a[a]=r,r.b=n.b,r.a[0]=n.a[0],r.a[1]=n.a[1],n.a[0]=null,n.a[1]=null}function Yxn(e){var t,n,r,a;for(t=new bt,n=We(ih,pg,28,e.a.c.length,16,1),l5e(n,n.length),a=new G(e.a);a.a0&&dmt((Sn(0,n.c.length),l(n.c[0],30)),e),n.c.length>1&&dmt(l(jt(n,n.c.length-1),30),e),t.Vg()}function Qxn(e){Rl();var t,n;return t=rs(vp,he(le(cY,1),it,279,0,[Yb])),!(yN(NH(t,e))>1||(n=rs(PM,he(le(cY,1),it,279,0,[NM,a9])),yN(NH(n,e))>1))}function Vxe(e,t){var n;n=xu((ib(),Gf),e),De(n,507)?rc(Gf,e,new Ott(this,t)):rc(Gf,e,this),Nue(this,t),t==(Sk(),APe)?(this.wb=l(this,2038),l(t,2040)):this.wb=(lb(),Vn)}function Jxn(e){var t,n,r;if(e==null)return null;for(t=null,n=0;n=b2?"error":r>=900?"warn":r>=800?"info":"log"),eat(n,e.a),e.b&&G9e(t,n,e.b,"Exception: ",!0))}function Q(e,t){var n,r;return r=(!e.q&&(e.q=new Pr),cr(e.q,t)),r??(n=t.Sg(),De(n,4)&&(n==null?(!e.q&&(e.q=new Pr),ax(e.q,t)):(!e.q&&(e.q=new Pr),ki(e.q,t,n))),n)}function uo(){uo=U,y0=new oO("P1_CYCLE_BREAKING",0),vg=new oO("P2_LAYERING",1),bu=new oO("P3_NODE_ORDERING",2),_u=new oO("P4_NODE_PLACEMENT",3),mc=new oO("P5_EDGE_ROUTING",4)}function Zxn(e,t){hA();var n;if(e.c==t.c){if(e.b==t.b||a3n(e.b,t.b)){if(n=Dln(e.b)?1:-1,e.a&&!t.a)return n;if(!e.a&&t.a)return-n}return ru(e.b.g,t.b.g)}else return Yi(e.c,t.c)}function Ggt(e,t){var n,r,a;if(Gxe(e,t))return!0;for(r=new G(t);r.a=a||t<0)throw ue(new tc(Qfe+t+av+a));if(n>=a||n<0)throw ue(new tc(Jfe+n+av+a));return t!=n?r=(o=e.Cj(n),e.qj(t,o),o):r=e.xj(n),r}function Ygt(e){var t,n,r;if(r=e,e)for(t=0,n=e.Eh();n;n=n.Eh()){if(++t>ohe)return Ygt(n);if(r=n,n==e)throw ue(new nc("There is a cycle in the containment hierarchy of "+e))}return r}function Tb(e){var t,n,r;for(r=new Hm(Co,"[","]"),n=e.Kc();n.Ob();)t=n.Pb(),Jg(r,qe(t)===qe(e)?"(this Collection)":t==null?ul:xc(t));return r.a?r.e.length==0?r.a.a:r.a.a+(""+r.e):r.c}function Gxe(e,t){var n,r;if(r=!1,t.gc()<2)return!1;for(n=0;n1&&(e.j.b+=e.e)):(e.j.a+=n.a,e.j.b=b.Math.max(e.j.b,n.b),e.d.c.length>1&&(e.j.a+=e.e))}function Cb(){Cb=U,axt=he(le(Oo,1),au,64,0,[(Ct(),Qn),ar,Dr]),sxt=he(le(Oo,1),au,64,0,[ar,Dr,er]),oxt=he(le(Oo,1),au,64,0,[Dr,er,Qn]),cxt=he(le(Oo,1),au,64,0,[er,Qn,ar])}function t9n(e,t,n,r){var a,o,f,g,w,E,C;if(f=e.c.d,g=e.d.d,f.j!=g.j)for(C=e.b,a=f.j,w=null;a!=g.j;)w=t==0?$V(a):f8e(a),o=G8e(a,C.d[a.g],n),E=G8e(w,C.d[w.g],n),ui(r,Oi(o,E)),a=w}function n9n(e,t,n,r){var a,o,f,g,w;return f=Zdt(e.a,t,n),g=l(f.a,17).a,o=l(f.b,17).a,r&&(w=l(Q(t,(ft(),jl)),10),a=l(Q(n,jl),10),w&&a&&($ct(e.b,w,a),g+=e.b.i,o+=e.b.e)),g>o}function Qgt(e){var t,n,r,a,o,f,g,w,E;for(this.a=ydt(e),this.b=new bt,n=e,r=0,a=n.length;ruae(e.d).c?(e.i+=e.g.c,Yce(e.d)):uae(e.d).c>uae(e.g).c?(e.e+=e.d.c,Yce(e.g)):(e.i+=cst(e.g),e.e+=cst(e.d),Yce(e.g),Yce(e.d))}function a9n(e,t,n){var r,a,o,f;for(o=t.q,f=t.r,new Pm((J0(),qb),t,o,1),new Pm(qb,o,f,1),a=new G(n);a.ag&&(w=g/r),a>o&&(E=o/a),f=b.Math.min(w,E),e.a+=f*(t.a-e.a),e.b+=f*(t.b-e.b)}function l9n(e,t,n,r,a){var o,f;for(f=!1,o=l(jt(n.b,0),27);jAn(e,t,o,r,a)&&(f=!0,$8n(n,o),n.b.c.length!=0);)o=l(jt(n.b,0),27);return n.b.c.length==0&&UN(n.j,n),f&&lU(t.q),f}function h9n(e,t){h6();var n,r,a,o;if(t.b<2)return!1;for(o=Rr(t,0),n=l(Br(o),8),r=n;o.b!=o.d.c;){if(a=l(Br(o),8),Xue(e,r,a))return!0;r=a}return!!Xue(e,r,n)}function Wxe(e,t,n,r){var a,o;return n==0?(!e.o&&(e.o=new xl((su(),Cg),L2,e,0)),Uq(e.o,t,r)):(o=l(Mn((a=l(Kn(e,16),29),a||e.ii()),n),69),o.wk().Ak(e,Ku(e),n-yr(e.ii()),t,r))}function Nue(e,t){var n;t!=e.sb?(n=null,e.sb&&(n=l(e.sb,54).Th(e,1,RM,n)),t&&(n=l(t,54).Rh(e,1,RM,n)),n=a8e(e,t,n),n&&n.oj()):e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,4,t,t))}function f9n(e,t){var n,r,a,o;if(t)a=np(t,"x"),n=new HXe(e),aE(n.a,(nr(a),a)),o=np(t,"y"),r=new VXe(e),cE(r.a,(nr(o),o));else throw ue(new dd("All edge sections need an end point."))}function d9n(e,t){var n,r,a,o;if(t)a=np(t,"x"),n=new $Xe(e),oE(n.a,(nr(a),a)),o=np(t,"y"),r=new zXe(e),uE(r.a,(nr(o),o));else throw ue(new dd("All edge sections need a start point."))}function g9n(e,t){var n,r,a,o,f,g,w;for(r=_0t(e),o=0,g=r.length;o>22-t,a=e.h<>22-t):t<44?(n=0,r=e.l<>44-t):(n=0,r=0,a=e.l<e)throw ue(new Yn("k must be smaller than n"));return t==0||t==e?1:e==0?0:xxe(e)/(xxe(t)*xxe(e-t))}function Yxe(e,t){var n,r,a,o;for(n=new hye(e);n.g==null&&!n.c?H5e(n):n.g==null||n.i!=0&&l(n.g[n.i-1],51).Ob();)if(o=l(CU(n),58),De(o,167))for(r=l(o,167),a=0;a>4],t[n*2+1]=LY[o&15];return If(t,0,t.length)}function M9n(e){kH();var t,n,r;switch(r=e.c.length,r){case 0:return i6t;case 1:return t=l(Rpt(new G(e)),44),Edn(t.ld(),t.md());default:return n=l(j1(e,We(uv,XU,44,e.c.length,0,1)),173),new Wwe(n)}}function D9n(e){var t,n,r,a,o,f;for(t=new z5,n=new z5,gb(t,e),gb(n,e);n.b!=n.c;)for(a=l(X8(n),36),f=new G(a.a);f.a0&&lP(e,n,t),a):wEn(e,t,n)}function Sb(){Sb=U,uCt=(pi(),n9),lCt=Ev,sCt=kv,aCt=i7,oCt=Ub,iCt=r7,NIe=YB,cCt=S4,Jde=(uke(),KTt),Zde=WTt,BIe=JTt,ege=tCt,FIe=ZTt,RIe=eCt,PIe=YTt,qW=XTt,HW=QTt,FB=nCt,jIe=rCt,OIe=GTt}function spt(e,t){var n,r,a,o,f;if(e.e<=t||tbn(e,e.g,t))return e.g;for(o=e.r,r=e.g,f=e.r,a=(o-r)/2+r;r+11&&(e.e.b+=e.a)):(e.e.a+=n.a,e.e.b=b.Math.max(e.e.b,n.b),e.d.c.length>1&&(e.e.a+=e.a))}function B9n(e){var t,n,r,a;switch(a=e.i,t=a.b,r=a.j,n=a.g,a.a.g){case 0:n.a=(e.g.b.o.a-r.a)/2;break;case 1:n.a=t.d.n.a+t.d.a.a;break;case 2:n.a=t.d.n.a+t.d.a.a-r.a;break;case 3:n.b=t.d.n.b+t.d.a.b}}function F9n(e,t,n){var r,a,o;for(a=new hr(dr(sp(n).a.Kc(),new j));jr(a);)r=l(xr(a),18),!Do(r)&&!(!Do(r)&&r.c.i.c==r.d.i.c)&&(o=Y2t(e,r,n,new QQe),o.c.length>1&&$n(t.c,o))}function opt(e,t,n,r,a){if(rr&&(e.a=r),e.ba&&(e.b=a),e}function R9n(e){if(De(e,143))return pCn(l(e,143));if(De(e,233))return s5n(l(e,233));if(De(e,23))return b9n(l(e,23));throw ue(new Yn(vSe+Tb(new Il(he(le(wa,1),Rn,1,5,[e])))))}function j9n(e,t,n,r,a){var o,f,g;for(o=!0,f=0;f>>a|n[f+r+1]<>>a,++f}return o}function Zxe(e,t,n,r){var a,o,f;if(t.k==(Zn(),Aa)){for(o=new hr(dr(ka(t).a.Kc(),new j));jr(o);)if(a=l(xr(o),18),f=a.c.i.k,f==Aa&&e.c.a[a.c.i.c.p]==r&&e.c.a[t.c.p]==n)return!0}return!1}function $9n(e,t){var n,r,a,o;return t&=63,n=e.h&hp,t<22?(o=n>>>t,a=e.m>>t|n<<22-t,r=e.l>>t|e.m<<22-t):t<44?(o=0,a=n>>>t-22,r=e.m>>t-22|e.h<<44-t):(o=0,a=0,r=n>>>t-44),qu(r&eh,a&eh,o&hp)}function cpt(e,t,n,r){var a;this.b=r,this.e=e==(Iw(),oM),a=t[n],this.d=Lm(ih,[dt,pg],[183,28],16,[a.length,a.length],2),this.a=Lm(Vr,[dt,di],[53,28],15,[a.length,a.length],2),this.c=new Nxe(t,n)}function z9n(e){var t,n,r;for(e.k=new G5e((Ct(),he(le(Oo,1),au,64,0,[Pc,Qn,ar,Dr,er])).length,e.j.c.length),r=new G(e.j);r.a=n)return qE(e,t,r.p),!0;return!1}function o6(e,t,n,r){var a,o,f,g,w,E;for(f=n.length,o=0,a=-1,E=tht((Xn(t,e.length+1),e.substr(t)),(gae(),p_e)),g=0;go&&ggn(E,tht(n[g],p_e))&&(a=g,o=w);return a>=0&&(r[0]=t+o),a}function lpt(e){var t;return e.Db&64?Pue(e):(t=new Th(oSe),!e.a||hi(hi((t.a+=' "',t),e.a),'"'),hi(rw(hi(rw(hi(rw(hi(rw((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function hpt(e,t,n){var r,a,o,f,g;for(g=Wu(e.e.Dh(),t),a=l(e.g,124),r=0,f=0;fn?u9e(e,n,"start index"):t<0||t>n?u9e(t,n,"end index"):KA("end index (%s) must not be less than start index (%s)",he(le(wa,1),Rn,1,5,[pt(t),pt(e)]))}function dpt(e,t){var n,r,a,o;for(r=0,a=e.length;r0&&gpt(e,o,n));t.p=0}function Xt(e){var t;this.c=new os,this.f=e.e,this.e=e.d,this.i=e.g,this.d=e.c,this.b=e.b,this.k=e.j,this.a=e.a,e.i?this.j=e.i:this.j=(t=l(K0(xg),9),new Zh(t,l(c0(t,t.length),9),0)),this.g=e.f}function K9n(e){var t,n,r,a;for(t=hb(hi(new Th("Predicates."),"and"),40),n=!0,a=new kr(e);a.b0?g[f-1]:We(wg,m2,10,0,0,1),a=g[f],E=f=0?e.ki(a):d9e(e,r);else throw ue(new Yn(Ob+r.xe()+kL));else throw ue(new Yn(f4t+t+d4t));else cf(e,n,r)}function e9e(e){var t,n;if(n=null,t=!1,De(e,211)&&(t=!0,n=l(e,211).a),t||De(e,263)&&(t=!0,n=""+l(e,263).a),t||De(e,493)&&(t=!0,n=""+l(e,493).a),!t)throw ue(new Qie(mSe));return n}function t9e(e,t,n){var r,a,o,f,g,w;for(w=Wu(e.e.Dh(),t),r=0,g=e.i,a=l(e.g,124),f=0;f=e.d.b.c.length&&(t=new yu(e.d),t.p=r.p-1,vt(e.d.b,t),n=new yu(e.d),n.p=r.p,vt(e.d.b,n)),Va(r,l(jt(e.d.b,r.p),30))}function i9e(e,t,n){var r,a,o;if(!e.b[t.g]){for(e.b[t.g]=!0,r=n,!r&&(r=new nN),ui(r.b,t),o=e.a[t.g].Kc();o.Ob();)a=l(o.Pb(),65),a.b!=t&&i9e(e,a.b,r),a.c!=t&&i9e(e,a.c,r),ui(r.a,a);return r}return null}function Q9n(e){switch(e.g){case 0:case 1:case 2:return Ct(),Qn;case 3:case 4:case 5:return Ct(),Dr;case 6:case 7:case 8:return Ct(),er;case 9:case 10:case 11:return Ct(),ar;default:return Ct(),Pc}}function J9n(e,t){var n;return e.c.length==0?!1:(n=I1t((Sn(0,e.c.length),l(e.c[0],18)).c.i),Sh(),n==(By(),G6)||n==U6?!0:W5(fc(new bn(null,new kn(e,16)),new Xee),new XYe(t)))}function jue(e,t){if(De(t,207))return Gln(e,l(t,27));if(De(t,193))return Kln(e,l(t,123));if(De(t,452))return Uln(e,l(t,166));throw ue(new Yn(vSe+Tb(new Il(he(le(wa,1),Rn,1,5,[t])))))}function ypt(e,t,n){var r,a;if(this.f=e,r=l(cr(e.b,t),260),a=r?r.a:0,k6e(n,a),n>=(a/2|0))for(this.e=r?r.c:null,this.d=a;n++0;)G6e(this);this.b=t,this.a=null}function Z9n(e,t){var n,r;t.a?OCn(e,t):(n=l(cse(e.b,t.b),60),n&&n==e.a[t.b.f]&&n.a&&n.a!=t.b.a&&n.c.Fc(t.b),r=l(ose(e.b,t.b),60),r&&e.a[r.f]==t.b&&r.a&&r.a!=t.b.a&&t.b.c.Fc(r),tae(e.b,t.b))}function xpt(e,t){var n,r;if(n=l(Qo(e.b,t),127),l(l($i(e.r,t),21),87).dc()){n.n.b=0,n.n.c=0;return}n.n.b=e.C.b,n.n.c=e.C.c,e.A.Hc((mh(),Cv))&&Kbt(e,t),r=_6n(e,t),Jue(e,t)==(t6(),Kb)&&(r+=2*e.w),n.a.a=r}function kpt(e,t){var n,r;if(n=l(Qo(e.b,t),127),l(l($i(e.r,t),21),87).dc()){n.n.d=0,n.n.a=0;return}n.n.d=e.C.d,n.n.a=e.C.a,e.A.Hc((mh(),Cv))&&Wbt(e,t),r=S6n(e,t),Jue(e,t)==(t6(),Kb)&&(r+=2*e.w),n.a.b=r}function ekn(e,t){var n,r,a,o;for(o=new bt,r=new G(t);r.ar&&(Xn(t-1,e.length),e.charCodeAt(t-1)<=32);)--t;return r>0||tn.a&&(r.Hc((Ym(),EM))?a=(t.a-n.a)/2:r.Hc(TM)&&(a=t.a-n.a)),t.b>n.b&&(r.Hc((Ym(),SM))?o=(t.b-n.b)/2:r.Hc(CM)&&(o=t.b-n.b)),Hxe(e,a,o)}function Lpt(e,t,n,r,a,o,f,g,w,E,C,L,B){De(e.Cb,90)&&zy(Yl(l(e.Cb,90)),4),Fu(e,n),e.f=f,LE(e,g),DE(e,w),AE(e,E),ME(e,C),u2(e,L),IE(e,B),c2(e,!0),i2(e,a),e.Zk(o),Gm(e,t),r!=null&&(e.i=null,xV(e,r))}function u9e(e,t,n){if(e<0)return KA(Swt,he(le(wa,1),Rn,1,5,[n,pt(e)]));if(t<0)throw ue(new Yn(_wt+t));return KA("%s (%s) must not be greater than size (%s)",he(le(wa,1),Rn,1,5,[n,pt(e),pt(t)]))}function l9e(e,t,n,r,a,o){var f,g,w,E;if(f=r-n,f<7){W4n(t,n,r,o);return}if(w=n+a,g=r+a,E=w+(g-w>>1),l9e(t,e,w,E,-a,o),l9e(t,e,E,g,-a,o),o.Ne(e[E-1],e[E])<=0){for(;n=0?e.bi(o,n):$9e(e,a,n);else throw ue(new Yn(Ob+a.xe()+kL));else throw ue(new Yn(f4t+t+d4t));else uf(e,r,a,n)}function Mpt(e){var t,n;if(e.f){for(;e.n>0;){if(t=l(e.k.Xb(e.n-1),76),n=t.Lk(),De(n,102)&&l(n,19).Bb&eu&&(!e.e||n.pk()!=oC||n.Lj()!=0)&&t.md()!=null)return!0;--e.n}return!1}else return e.n>0}function Dpt(e){var t,n,r,a;if(n=l(e,54)._h(),n)try{if(r=null,t=VE((ib(),Gf),bmt(a5n(n))),t&&(a=t.ai(),a&&(r=a.Fl(oun(n.e)))),r&&r!=e)return Dpt(r)}catch(o){if(o=bs(o),!De(o,63))throw ue(o)}return e}function bkn(e,t,n){var r,a,o;n.Ug("Remove overlaps",1),n.dh(t,yCe),r=l(at(t,(H5(),Y6)),27),e.f=r,e.a=sue(l(at(t,(Sb(),FB)),300)),a=Ge(at(t,(pi(),Ev))),_e(e,(nr(a),a)),o=Hy(r),Rvt(e,t,o,n),n.dh(t,OG)}function mkn(e){var t,n,r;if(Rt(Bt(at(e,(pi(),KB))))){for(r=new bt,n=new hr(dr(cp(e).a.Kc(),new j));jr(n);)t=l(xr(n),74),qw(t)&&Rt(Bt(at(t,Oge)))&&$n(r.c,t);return r}else return Cn(),Cn(),_o}function Ipt(e){if(!e)return MJe(),d6t;var t=e.valueOf?e.valueOf():e;if(t!==e){var n=_0e[typeof t];return n?n(t):Z7e(typeof t)}else return e instanceof Array||e instanceof b.Array?new Sz(e):new wk(e)}function Opt(e,t,n){var r,a,o;switch(o=e.o,r=l(Qo(e.p,n),252),a=r.i,a.b=nP(r),a.a=tP(r),a.b=b.Math.max(a.b,o.a),a.b>o.a&&!t&&(a.b=o.a),a.c=-(a.b-o.a)/2,n.g){case 1:a.d=-a.a;break;case 3:a.d=o.b}hle(r),fle(r)}function Npt(e,t,n){var r,a,o;switch(o=e.o,r=l(Qo(e.p,n),252),a=r.i,a.b=nP(r),a.a=tP(r),a.a=b.Math.max(a.a,o.b),a.a>o.b&&!t&&(a.a=o.b),a.d=-(a.a-o.b)/2,n.g){case 4:a.c=-a.b;break;case 2:a.c=o.a}hle(r),fle(r)}function vkn(e,t){var n,r,a,o,f;if(!t.dc()){if(a=l(t.Xb(0),131),t.gc()==1){hbt(e,a,a,1,0,t);return}for(n=1;n0)try{a=Oh(t,lo,Ii)}catch(o){throw o=bs(o),De(o,130)?(r=o,ue(new nV(r))):ue(o)}return n=(!e.a&&(e.a=new Pie(e)),e.a),a=0?l(Oe(n,a),58):null}function kkn(e,t){if(e<0)return KA(Swt,he(le(wa,1),Rn,1,5,["index",pt(e)]));if(t<0)throw ue(new Yn(_wt+t));return KA("%s (%s) must be less than size (%s)",he(le(wa,1),Rn,1,5,["index",pt(e),pt(t)]))}function Ekn(e){var t,n,r,a,o;if(e==null)return ul;for(o=new Hm(Co,"[","]"),n=e,r=0,a=n.length;r=0?e.Lh(n,!0,!0):Hw(e,a,!0),160)),l(r,220).Zl(t);else throw ue(new Yn(Ob+t.xe()+kL))}function g9e(e){var t,n;return e>-0x800000000000&&e<0x800000000000?e==0?0:(t=e<0,t&&(e=-e),n=ua(b.Math.floor(b.Math.log(e)/.6931471805599453)),(!t||e!=b.Math.pow(2,n))&&++n,n):Qft(Zc(e))}function Rkn(e){var t,n,r,a,o,f,g;for(o=new bd,n=new G(e);n.a2&&g.e.b+g.j.b<=2&&(a=g,r=f),o.a.zc(a,o),a.q=r);return o}function jkn(e,t,n){n.Ug("Eades radial",1),n.dh(t,OG),e.d=l(at(t,(H5(),Y6)),27),e.c=ze(Ge(at(t,(Sb(),HW)))),e.e=sue(l(at(t,FB),300)),e.a=g5n(l(at(t,jIe),434)),e.b=N8n(l(at(t,PIe),354)),b8n(e),n.dh(t,OG)}function $kn(e,t){if(t.Ug("Target Width Setter",1),P1(e,(z1(),fge)))Hi(e,(ug(),T4),Ge(at(e,fge)));else throw ue(new Vp("A target width has to be set if the TargetWidthWidthApproximator should be used."));t.Vg()}function jpt(e,t){var n,r,a;return r=new op(e),pc(r,t),rt(r,(ft(),aW),t),rt(r,(Nt(),Ms),(Ra(),Mu)),rt(r,Rd,(og(),tY)),x(r,(Zn(),Us)),n=new gu,Mc(n,r),la(n,(Ct(),er)),a=new gu,Mc(a,r),la(a,ar),r}function $pt(e){switch(e.g){case 0:return new Wie((Iw(),DB));case 1:return new Qre;case 2:return new Jre;default:throw ue(new Yn("No implementation is available for the crossing minimizer "+(e.f!=null?e.f:""+e.g)))}}function zpt(e,t){var n,r,a,o,f;for(e.c[t.p]=!0,vt(e.a,t),f=new G(t.j);f.a=o)f.$b();else for(a=f.Kc(),r=0;r0?Zwe():f<0&&Upt(e,t,-f),!0):!1}function tP(e){var t,n,r,a,o,f,g;if(g=0,e.b==0){for(f=_dt(e,!0),t=0,r=f,a=0,o=r.length;a0&&(g+=n,++t);t>1&&(g+=e.c*(t-1))}else g=qJe(cce(xy(Fi(c5e(e.a),new ja),new Ou)));return g>0?g+e.n.d+e.n.a:0}function nP(e){var t,n,r,a,o,f,g;if(g=0,e.b==0)g=qJe(cce(xy(Fi(c5e(e.a),new Xc),new Bc)));else{for(f=Adt(e,!0),t=0,r=f,a=0,o=r.length;a0&&(g+=n,++t);t>1&&(g+=e.c*(t-1))}return g>0?g+e.n.b+e.n.c:0}function Kkn(e){var t,n;if(e.c.length!=2)throw ue(new nc("Order only allowed for two paths."));t=(Sn(0,e.c.length),l(e.c[0],18)),n=(Sn(1,e.c.length),l(e.c[1],18)),t.d.i!=n.c.i&&(e.c.length=0,$n(e.c,n),$n(e.c,t))}function Gpt(e,t,n){var r;for(F5(n,t.g,t.f),Qh(n,t.i,t.j),r=0;r<(!t.a&&(t.a=new nt(Ai,t,10,11)),t.a).i;r++)Gpt(e,l(Oe((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a),r),27),l(Oe((!n.a&&(n.a=new nt(Ai,n,10,11)),n.a),r),27))}function Wkn(e,t){var n,r,a,o;for(o=l(Qo(e.b,t),127),n=o.a,a=l(l($i(e.r,t),21),87).Kc();a.Ob();)r=l(a.Pb(),117),r.c&&(n.a=b.Math.max(n.a,j4e(r.c)));if(n.a>0)switch(t.g){case 2:o.n.c=e.s;break;case 4:o.n.b=e.s}}function Ykn(e,t){var n,r,a;return n=l(Q(t,(b0(),qx)),17).a-l(Q(e,qx),17).a,n==0?(r=ma(Ja(l(Q(e,(bb(),hB)),8)),l(Q(e,$L),8)),a=ma(Ja(l(Q(t,hB),8)),l(Q(t,$L),8)),Yi(r.a*r.b,a.a*a.b)):n}function Xkn(e,t){var n,r,a;return n=l(Q(t,(Hc(),RW)),17).a-l(Q(e,RW),17).a,n==0?(r=ma(Ja(l(Q(e,(Qi(),NB)),8)),l(Q(e,QT),8)),a=ma(Ja(l(Q(t,NB),8)),l(Q(t,QT),8)),Yi(r.a*r.b,a.a*a.b)):n}function Kpt(e){var t,n;return n=new tb,n.a+="e_",t=H3n(e),t!=null&&(n.a+=""+t),e.c&&e.d&&(hi((n.a+=" ",n),fU(e.c)),hi(wu((n.a+="[",n),e.c.i),"]"),hi((n.a+=Phe,n),fU(e.d)),hi(wu((n.a+="[",n),e.d.i),"]")),n.a}function Wpt(e){switch(e.g){case 0:return new aie;case 1:return new dk;case 2:return new sie;case 3:return new iie;default:throw ue(new Yn("No implementation is available for the layout phase "+(e.f!=null?e.f:""+e.g)))}}function m9e(e,t,n,r,a){var o;switch(o=0,a.g){case 1:o=b.Math.max(0,t.b+e.b-(n.b+r));break;case 3:o=b.Math.max(0,-e.b-r);break;case 2:o=b.Math.max(0,-e.a-r);break;case 4:o=b.Math.max(0,t.a+e.a-(n.a+r))}return o}function Qkn(e,t,n){var r,a,o,f,g;if(n)for(a=n.a.length,r=new Dm(a),g=(r.b-r.a)*r.c<0?(sb(),tm):new cb(r);g.Ob();)f=l(g.Pb(),17),o=Jk(n,f.a),hSe in o.a||Yfe in o.a?h_n(e,o,t):MIn(e,o,t),Lhn(l(cr(e.b,NE(o)),74))}function v9e(e){var t,n;switch(e.b){case-1:return!0;case 0:return n=e.t,n>1||n==-1?(e.b=-1,!0):(t=Of(e),t&&(Fo(),t.lk()==g5t)?(e.b=-1,!0):(e.b=1,!1));default:case 1:return!1}}function w9e(e,t){var n,r,a,o;if(Li(e),e.c!=0||e.a!=123)throw ue(new ri(ai((Jr(),B4t))));if(o=t==112,r=e.d,n=Nk(e.i,125,r),n<0)throw ue(new ri(ai((Jr(),F4t))));return a=tf(e.i,r,n),e.d=n+1,vlt(a,o,(e.e&512)==512)}function Ypt(e){var t,n,r,a,o,f,g;if(r=e.a.c.length,r>0)for(f=e.c.d,g=e.d.d,a=md(ma(new lt(g.a,g.b),f),1/(r+1)),o=new lt(f.a,f.b),n=new G(e.a);n.a=0&&r=0?e.Lh(n,!0,!0):Hw(e,a,!0),160)),l(r,220).Wl(t);throw ue(new Yn(Ob+t.xe()+$fe))}function tEn(){x3e();var e;return J_t?l(VE((ib(),Gf),Ff),2038):(wi(uv,new OI),XMn(),e=l(De(xu((ib(),Gf),Ff),560)?xu(Gf,Ff):new fat,560),J_t=!0,QIn(e),iOn(e),ki((y3e(),_Pe),e,new k1),rc(Gf,Ff,e),e)}function nEn(e,t){var n,r,a,o;e.j=-1,hh(e.e)?(n=e.i,o=e.i!=0,tN(e,t),r=new Zg(e.e,3,e.c,null,t,n,o),a=t.zl(e.e,e.c,null),a=Lgt(e,t,a),a?(a.nj(r),a.oj()):Ni(e.e,r)):(tN(e,t),a=t.zl(e.e,e.c,null),a&&a.oj())}function kU(e,t){var n,r,a;if(a=0,r=t[0],r>=e.length)return-1;for(n=(Xn(r,e.length),e.charCodeAt(r));n>=48&&n<=57&&(a=a*10+(n-48),++r,!(r>=e.length));)n=(Xn(r,e.length),e.charCodeAt(r));return r>t[0]?t[0]=r:a=-1,a}function rEn(e){var t,n,r,a,o;return a=l(e.a,17).a,o=l(e.b,17).a,n=a,r=o,t=b.Math.max(b.Math.abs(a),b.Math.abs(o)),a<=0&&a==o?(n=0,r=o-1):a==-t&&o!=t?(n=o,r=a,o>=0&&++n):(n=-o,r=a),new ca(pt(n),pt(r))}function iEn(e,t,n,r){var a,o,f,g,w,E;for(a=0;a=0&&E>=0&&w=e.i)throw ue(new tc(Qfe+t+av+e.i));if(n>=e.i)throw ue(new tc(Jfe+n+av+e.i));return r=e.g[n],t!=n&&(t>16),t=r>>16&16,n=16-t,e=e>>t,r=e-256,t=r>>16&8,n+=t,e<<=t,r=e-Xy,t=r>>16&4,n+=t,e<<=t,r=e-_d,t=r>>16&2,n+=t,e<<=t,r=e>>14,t=r&~(r>>1),n+2-t)}function aEn(e){tx();var t,n,r,a;for(wK=new bt,X0e=new Pr,Y0e=new bt,t=(!e.a&&(e.a=new nt(Ai,e,10,11)),e.a),XDn(t),a=new or(t);a.e!=a.i.gc();)r=l(gr(a),27),gc(wK,r,0)==-1&&(n=new bt,vt(Y0e,n),Z1t(r,n));return Y0e}function oEn(e,t,n){var r,a,o,f;e.a=n.b.d,De(t,326)?(a=l6(l(t,74),!1,!1),o=QN(a),r=new t_(e),to(o,r),dP(o,a),t.of((pi(),x3))!=null&&to(l(t.of(x3),75),r)):(f=l(t,422),f.rh(f.nh()+e.a.a),f.sh(f.oh()+e.a.b))}function cEn(e,t){var n,r,a;for(a=new bt,r=Rr(t.a,0);r.b!=r.d.c;)n=l(Br(r),65),n.c.g==e.g&&qe(Q(n.b,(Hc(),$d)))!==qe(Q(n.c,$d))&&!W5(new bn(null,new kn(a,16)),new cXe(n))&&$n(a.c,n);return Vs(a,new Mte),a}function Qpt(e,t,n){var r,a,o,f;return De(t,153)&&De(n,153)?(o=l(t,153),f=l(n,153),e.a[o.a][f.a]+e.a[f.a][o.a]):De(t,250)&&De(n,250)&&(r=l(t,250),a=l(n,250),r.a==a.a)?l(Q(a.a,(b0(),qx)),17).a:0}function Jpt(e,t){var n,r,a,o,f,g,w,E;for(E=ze(Ge(Q(t,(Nt(),tM)))),w=e[0].n.a+e[0].o.a+e[0].d.c+E,g=1;g=0?n:(g=eA(ma(new lt(f.c+f.b/2,f.d+f.a/2),new lt(o.c+o.b/2,o.d+o.a/2))),-(Tmt(o,f)-1)*g)}function lEn(e,t,n){var r;Is(new bn(null,(!n.a&&(n.a=new nt(cs,n,6,6)),new kn(n.a,16))),new dtt(e,t)),Is(new bn(null,(!n.n&&(n.n=new nt(ec,n,1,7)),new kn(n.n,16))),new gtt(e,t)),r=l(at(n,(pi(),x3)),75),r&&k7e(r,e,t)}function Hw(e,t,n){var r,a,o;if(o=g6((El(),io),e.Dh(),t),o)return Fo(),l(o,69).xk()||(o=rx(ic(io,o))),a=(r=e.Ih(o),l(r>=0?e.Lh(r,!0,!0):Hw(e,o,!0),160)),l(a,220).Sl(t,n);throw ue(new Yn(Ob+t.xe()+$fe))}function y9e(e,t,n,r){var a,o,f,g,w;if(a=e.d[t],a){if(o=a.g,w=a.i,r!=null){for(g=0;g=n&&(r=t,E=(w.c+w.a)/2,f=E-n,w.c<=E-n&&(a=new vae(w.c,f),pw(e,r++,a)),g=E+n,g<=w.a&&(o=new vae(g,w.a),Ey(r,e.c.length),x_(e.c,r,o)))}function t2t(e,t,n){var r,a,o,f,g,w;if(!t.dc()){for(a=new os,w=t.Kc();w.Ob();)for(g=l(w.Pb(),40),ki(e.a,pt(g.g),pt(n)),f=(r=Rr(new Hg(g).a.d,0),new C5(r));QI(f.a);)o=l(Br(f.a),65).c,Cs(a,o,a.c.b,a.c);t2t(e,a,n+1)}}function x9e(e){var t;if(!e.c&&e.g==null)e.d=e.bj(e.f),qr(e,e.d),t=e.d;else{if(e.g==null)return!0;if(e.i==0)return!1;t=l(e.g[e.i-1],51)}return t==e.b&&null.Vm>=null.Um()?(CU(e),x9e(e)):t.Ob()}function n2t(e){if(this.a=e,e.c.i.k==(Zn(),Us))this.c=e.c,this.d=l(Q(e.c.i,(ft(),Wc)),64);else if(e.d.i.k==Us)this.c=e.d,this.d=l(Q(e.d.i,(ft(),Wc)),64);else throw ue(new Yn("Edge "+e+" is not an external edge."))}function r2t(e,t){var n,r,a;a=e.b,e.b=t,e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,3,a,e.b)),t?t!=e&&(Fu(e,t.zb),Qoe(e,t.d),n=(r=t.c,r??t.zb),Zoe(e,n==null||vn(n,t.zb)?null:n)):(Fu(e,null),Qoe(e,0),Zoe(e,null))}function i2t(e,t){var n;this.e=(ww(),Xr(e),ww(),P8e(e)),this.c=(Xr(t),P8e(t)),Tye(this.e.Rd().dc()==this.c.Rd().dc()),this.d=w1t(this.e),this.b=w1t(this.c),n=Lm(wa,[dt,Rn],[5,1],5,[this.e.Rd().gc(),this.c.Rd().gc()],2),this.a=n,jwn(this)}function s2t(e){!C0e&&(C0e=cIn());var t=e.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(n){return f2n(n)});return'"'+t+'"'}function k9e(e,t,n,r,a,o){var f,g,w,E,C;if(a!=0)for(qe(e)===qe(n)&&(e=e.slice(t,t+a),t=0),w=n,g=t,E=t+a;g=f)throw ue(new my(t,f));return a=n[t],f==1?r=null:(r=We(epe,r0e,424,f-1,0,1),pu(n,0,r,0,t),o=f-t-1,o>0&&pu(n,t+1,r,t,o)),PE(e,r),Apt(e,t,a),a}function o2t(e){var t,n;if(e.f){for(;e.n0?o=gx(n):o=BN(gx(n))),Hi(t,VT,o)}function mEn(e,t){var n;t.Ug("Partition preprocessing",1),n=l(yc(Fi(Dc(Fi(new bn(null,new kn(e.a,16)),new AZ),new LZ),new wj),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15),Is(n.Oc(),new t8),t.Vg()}function vEn(e,t){var n,r,a,o,f;for(f=e.j,t.a!=t.b&&Vs(f,new kS),a=f.c.length/2|0,r=0;r0&&lP(e,n,t),o):r.a!=null?(lP(e,t,n),-1):a.a!=null?(lP(e,n,t),1):0}function yEn(e,t){var n,r,a,o,f;for(a=t.b.b,e.a=We(mf,Qy,15,a,0,1),e.b=We(ih,pg,28,a,16,1),f=Rr(t.b,0);f.b!=f.d.c;)o=l(Br(f),40),e.a[o.g]=new os;for(r=Rr(t.a,0);r.b!=r.d.c;)n=l(Br(r),65),e.a[n.b.g].Fc(n),e.a[n.c.g].Fc(n)}function h2t(e,t){var n,r,a,o;e.Pj()?(n=e.Ej(),o=e.Qj(),++e.j,e.qj(n,e.Zi(n,t)),r=e.Ij(3,null,t,n,o),e.Mj()?(a=e.Nj(t,null),a?(a.nj(r),a.oj()):e.Jj(r)):e.Jj(r)):(tat(e,t),e.Mj()&&(a=e.Nj(t,null),a&&a.oj()))}function E9e(e,t,n){var r,a,o;e.Pj()?(o=e.Qj(),IN(e,t,n),r=e.Ij(3,null,n,t,o),e.Mj()?(a=e.Nj(n,null),e.Tj()&&(a=e.Uj(n,a)),a?(a.nj(r),a.oj()):e.Jj(r)):e.Jj(r)):(IN(e,t,n),e.Mj()&&(a=e.Nj(n,null),a&&a.oj()))}function EU(e,t){var n,r,a,o,f;for(f=Wu(e.e.Dh(),t),a=new X2,n=l(e.g,124),o=e.i;--o>=0;)r=n[o],f.am(r.Lk())&&qr(a,r);!awt(e,a)&&hh(e.e)&&xk(e,t.Jk()?db(e,6,t,(Cn(),_o),null,-1,!1):db(e,t.tk()?2:1,t,null,null,-1,!1))}function xEn(e,t){var n,r,a,o,f;return e.a==(zE(),VL)?!0:(o=t.a.c,n=t.a.c+t.a.b,!(t.j&&(r=t.A,f=r.c.c.a-r.o.a/2,a=o-(r.n.a+r.o.a),a>f)||t.q&&(r=t.C,f=r.c.c.a-r.o.a/2,a=r.n.a-n,a>f)))}function f2t(e){foe();var t,n,r,a,o,f,g;for(n=new e2,a=new G(e.e.b);a.a1?e.e*=ze(e.a):e.f/=ze(e.a),Hyn(e),Y5n(e),GSn(e),rt(e.b,(IA(),vK),e.g)}function b2t(e,t,n){var r,a,o,f,g,w;for(r=0,w=n,t||(r=n*(e.c.length-1),w*=-1),o=new G(e);o.a=0?e.Ah(null):e.Ph().Th(e,-1-t,null,null)),e.Bh(l(a,54),n),r&&r.oj(),e.vh()&&e.wh()&&n>-1&&Ni(e,new _a(e,9,n,o,a)),a):o}function S9e(e,t){var n,r,a,o,f;for(o=e.b.Ce(t),r=(n=e.a.get(o),n??We(wa,Rn,1,0,5,1)),f=0;f>5,a>=e.d)return e.e<0;if(n=e.a[a],t=1<<(t&31),e.e<0){if(r=Mft(e),a>16)),15).dd(o),g0&&(!(Ug(e.a.c)&&t.n.d)&&!(B5(e.a.c)&&t.n.b)&&(t.g.d+=b.Math.max(0,r/2-.5)),!(Ug(e.a.c)&&t.n.a)&&!(B5(e.a.c)&&t.n.c)&&(t.g.a-=r-1))}function C2t(e){var t,n,r,a,o;if(a=new bt,o=ymt(e,a),t=l(Q(e,(ft(),jl)),10),t)for(r=new G(t.j);r.a>t,o=e.m>>t|n<<22-t,a=e.l>>t|e.m<<22-t):t<44?(f=r?hp:0,o=n>>t-22,a=e.m>>t-22|n<<44-t):(f=r?hp:0,o=r?eh:0,a=n>>t-44),qu(a&eh,o&eh,f&hp)}function Gue(e){var t,n,r,a,o,f;for(this.c=new bt,this.d=e,r=gs,a=gs,t=ia,n=ia,f=Rr(e,0);f.b!=f.d.c;)o=l(Br(f),8),r=b.Math.min(r,o.a),a=b.Math.min(a,o.b),t=b.Math.max(t,o.a),n=b.Math.max(n,o.b);this.a=new ef(r,a,t-r,n-a)}function _2t(e,t){var n,r,a,o,f,g;for(o=new G(e.b);o.a0&&De(t,44)&&(e.a._j(),E=l(t,44),w=E.ld(),o=w==null?0:es(w),f=Qye(e.a,o),n=e.a.d[f],n)){for(r=l(n.g,379),C=n.i,g=0;g=2)for(n=a.Kc(),t=Ge(n.Pb());n.Ob();)o=t,t=Ge(n.Pb()),r=b.Math.min(r,(nr(t),t-(nr(o),o)));return r}function HEn(e,t){var n,r,a;for(a=new bt,r=Rr(t.a,0);r.b!=r.d.c;)n=l(Br(r),65),n.b.g==e.g&&!vn(n.b.c,DG)&&qe(Q(n.b,(Hc(),$d)))!==qe(Q(n.c,$d))&&!W5(new bn(null,new kn(a,16)),new uXe(n))&&$n(a.c,n);return Vs(a,new Nte),a}function VEn(e,t){var n,r,a;if(qe(t)===qe(Xr(e)))return!0;if(!De(t,15)||(r=l(t,15),a=e.gc(),a!=r.gc()))return!1;if(De(r,59)){for(n=0;n0&&(a=n),f=new G(e.f.e);f.a0?(t-=1,n-=1):r>=0&&a<0?(t+=1,n+=1):r>0&&a>=0?(t-=1,n+=1):(t+=1,n-=1),new ca(pt(t),pt(n))}function iTn(e,t){return e.ct.c?1:e.bt.b?1:e.a!=t.a?es(e.a)-es(t.a):e.d==(oA(),uM)&&t.d==cM?-1:e.d==cM&&t.d==uM?1:0}function N2t(e,t){var n,r,a,o,f;return o=t.a,o.c.i==t.b?f=o.d:f=o.c,o.c.i==t.b?r=o.c:r=o.d,a=S5n(e.a,f,r),a>0&&a0):a<0&&-a0):!1}function sTn(e,t,n,r){var a,o,f,g,w,E,C,L;for(a=(t-e.d)/e.c.c.length,o=0,e.a+=n,e.d=t,L=new G(e.c);L.a>24;return f}function oTn(e){if(e.ze()){var t=e.c;t.Ae()?e.o="["+t.n:t.ze()?e.o="["+t.xe():e.o="[L"+t.xe()+";",e.b=t.we()+"[]",e.k=t.ye()+"[]";return}var n=e.j,r=e.d;r=r.split("/"),e.o=Xce(".",[n,Xce("$",r)]),e.b=Xce(".",[n,Xce(".",r)]),e.k=r[r.length-1]}function cTn(e,t){var n,r,a,o,f;for(f=null,o=new G(e.e.a);o.a=0;t-=2)for(n=0;n<=t;n+=2)(e.b[n]>e.b[n+2]||e.b[n]===e.b[n+2]&&e.b[n+1]>e.b[n+3])&&(r=e.b[n+2],e.b[n+2]=e.b[n],e.b[n]=r,r=e.b[n+3],e.b[n+3]=e.b[n+1],e.b[n+1]=r);e.c=!0}}function hTn(e,t){var n,r,a,o,f,g,w,E,C;for(E=-1,C=0,f=e,g=0,w=f.length;g0&&++C;++E}return C}function g0(e){var t,n;return n=new Th(_m(e.Rm)),n.a+="@",hi(n,(t=es(e)>>>0,t.toString(16))),e.Vh()?(n.a+=" (eProxyURI: ",wu(n,e._h()),e.Kh()&&(n.a+=" eClass: ",wu(n,e.Kh())),n.a+=")"):e.Kh()&&(n.a+=" (eClass: ",wu(n,e.Kh()),n.a+=")"),n.a}function HA(e){var t,n,r,a;if(e.e)throw ue(new nc((Gg(R0e),phe+R0e.k+bhe)));for(e.d==(Js(),J1)&&UU(e,uc),n=new G(e.a.a);n.a>24}return n}function gTn(e,t,n){var r,a,o;if(a=l(Qo(e.i,t),314),!a)if(a=new yht(e.d,t,n),Q8(e.i,t,a),$8e(t))vhn(e.a,t.c,t.b,a);else switch(o=Q9n(t),r=l(Qo(e.p,o),252),o.g){case 1:case 3:a.j=!0,Xie(r,t.b,a);break;case 4:case 2:a.k=!0,Xie(r,t.c,a)}return a}function pTn(e,t){var n,r,a,o,f,g,w,E,C;for(w=eg(e.c-e.b&e.a.length-1),E=null,C=null,o=new nA(e);o.a!=o.b;)a=l(FV(o),10),n=(g=l(Q(a,(ft(),o1)),12),g?g.i:null),r=(f=l(Q(a,$f),12),f?f.i:null),(E!=n||C!=r)&&(m2t(w,t),E=n,C=r),$n(w.c,a);m2t(w,t)}function bTn(e,t,n,r){var a,o,f,g,w,E;if(g=new X2,w=Wu(e.e.Dh(),t),a=l(e.g,124),Fo(),l(t,69).xk())for(f=0;f=0)return a;for(o=1,g=new G(t.j);g.a=0)return a;for(o=1,g=new G(t.j);g.a0&&t.Ne((Sn(a-1,e.c.length),l(e.c[a-1],10)),o)>0;)rf(e,a,(Sn(a-1,e.c.length),l(e.c[a-1],10))),--a;Sn(a,e.c.length),e.c[a]=o}n.a=new Pr,n.b=new Pr}function mTn(e,t,n){var r,a,o,f,g,w,E,C;for(C=(r=l(t.e&&t.e(),9),new Zh(r,l(c0(r,r.length),9),0)),w=Gy(n,"[\\[\\]\\s,]+"),o=w,f=0,g=o.length;f=0?(t||(t=new h_,r>0&&Xo(t,(Ga(0,r,e.length),e.substr(0,r)))),t.a+="\\",Uk(t,n&Zs)):t&&Uk(t,n&Zs);return t?t.a:e}function wTn(e){var t,n,r;for(n=new G(e.a.a.b);n.a0&&(!(Ug(e.a.c)&&t.n.d)&&!(B5(e.a.c)&&t.n.b)&&(t.g.d-=b.Math.max(0,r/2-.5)),!(Ug(e.a.c)&&t.n.a)&&!(B5(e.a.c)&&t.n.c)&&(t.g.a+=b.Math.max(0,r-1)))}function H2t(e,t,n){var r,a;if((e.c-e.b&e.a.length-1)==2)t==(Ct(),Qn)||t==ar?(uV(l(wA(e),15),(Ih(),kg)),uV(l(wA(e),15),Gb)):(uV(l(wA(e),15),(Ih(),Gb)),uV(l(wA(e),15),kg));else for(a=new nA(e);a.a!=a.b;)r=l(FV(a),15),uV(r,n)}function yTn(e,t){var n,r,a,o,f,g,w;for(a=$k(new ywe(e)),g=new Ua(a,a.c.length),o=$k(new ywe(t)),w=new Ua(o,o.c.length),f=null;g.b>0&&w.b>0&&(n=(mr(g.b>0),l(g.a.Xb(g.c=--g.b),27)),r=(mr(w.b>0),l(w.a.Xb(w.c=--w.b),27)),n==r);)f=n;return f}function V2t(e,t,n){var r,a,o,f;Uot(e,t)>Uot(e,n)?(r=Oc(n,(Ct(),ar)),e.d=r.dc()?0:Tae(l(r.Xb(0),12)),f=Oc(t,er),e.b=f.dc()?0:Tae(l(f.Xb(0),12))):(a=Oc(n,(Ct(),er)),e.d=a.dc()?0:Tae(l(a.Xb(0),12)),o=Oc(t,ar),e.b=o.dc()?0:Tae(l(o.Xb(0),12)))}function U2t(e,t){var n,r,a,o;for(n=e.o.a,o=l(l($i(e.r,t),21),87).Kc();o.Ob();)a=l(o.Pb(),117),a.e.a=n*ze(Ge(a.b.of(pK))),a.e.b=(r=a.b,r.pf((pi(),rh))?r.ag()==(Ct(),Qn)?-r.Mf().b-ze(Ge(r.of(rh))):ze(Ge(r.of(rh))):r.ag()==(Ct(),Qn)?-r.Mf().b:0)}function xTn(e,t){var n,r,a,o;for(t.Ug("Self-Loop pre-processing",1),r=new G(e.a);r.ae.c));f++)a.a>=e.s&&(o<0&&(o=f),g=f);return w=(e.s+e.c)/2,o>=0&&(r=u_n(e,t,o,g),w=oln((Sn(r,t.c.length),l(t.c[r],339))),gEn(t,r,n)),w}function Wr(e,t,n){var r,a,o,f,g,w,E;for(f=(o=new CI,o),g7e(f,(nr(t),t)),E=(!f.b&&(f.b=new dh((Tn(),No),Yc,f)),f.b),w=1;w0&&sMn(this,a)}function F9e(e,t,n,r,a,o){var f,g,w;if(!a[t.a]){for(a[t.a]=!0,f=r,!f&&(f=new KH),vt(f.e,t),w=o[t.a].Kc();w.Ob();)g=l(w.Pb(),290),!(g.d==n||g.c==n)&&(g.c!=t&&F9e(e,g.c,t,f,a,o),g.d!=t&&F9e(e,g.d,t,f,a,o),vt(f.c,g),ra(f.d,g.b));return f}return null}function TTn(e){var t,n,r,a,o,f,g;for(t=0,a=new G(e.e);a.a=2}function CTn(e,t,n,r,a){var o,f,g,w,E,C;for(o=e.c.d.j,f=l(ff(n,0),8),C=1;C1||(t=rs(E0,he(le(Ko,1),it,95,0,[mp,T0])),yN(NH(t,e))>1)||(r=rs(S0,he(le(Ko,1),it,95,0,[Eg,qf])),yN(NH(r,e))>1))}function R9e(e,t,n){var r,a,o;for(o=new G(e.t);o.a0&&(r.b.n-=r.c,r.b.n<=0&&r.b.u>0&&ui(t,r.b));for(a=new G(e.i);a.a0&&(r.a.u-=r.c,r.a.u<=0&&r.a.n>0&&ui(n,r.a))}function CU(e){var t,n,r,a,o;if(e.g==null&&(e.d=e.bj(e.f),qr(e,e.d),e.c))return o=e.f,o;if(t=l(e.g[e.i-1],51),a=t.Pb(),e.e=t,n=e.bj(a),n.Ob())e.d=n,qr(e,n);else for(e.d=null;!t.Ob()&&(Ts(e.g,--e.i,null),e.i!=0);)r=l(e.g[e.i-1],51),t=r;return a}function _Tn(e,t){var n,r,a,o,f,g;if(r=t,a=r.Lk(),up(e.e,a)){if(a.Si()&&qH(e,a,r.md()))return!1}else for(g=Wu(e.e.Dh(),a),n=l(e.g,124),o=0;o1||n>1)return 2;return t+n==1?2:0}function Jl(e,t){var n,r,a,o,f,g;return o=e.a*hhe+e.b*1502,g=e.b*hhe+11,n=b.Math.floor(g*MP),o+=n,g-=n*cEe,o%=cEe,e.a=o,e.b=g,t<=24?b.Math.floor(e.a*m_e[t]):(a=e.a*(1<=2147483648&&(r-=4294967296),r)}function X2t(e,t,n){var r,a,o,f,g,w,E;for(o=new bt,E=new os,f=new os,YAn(e,E,f,t),_Mn(e,E,f,t,n),w=new G(e);w.ar.b.g&&$n(o.c,r);return o}function OTn(e,t,n){var r,a,o,f,g,w;for(g=e.c,f=(n.q?n.q:(Cn(),Cn(),mg)).vc().Kc();f.Ob();)o=l(f.Pb(),44),r=!_k(Fi(new bn(null,new kn(g,16)),new Wl(new att(t,o)))).Bd((Am(),zx)),r&&(w=o.md(),De(w,4)&&(a=H8e(w),a!=null&&(w=a)),t.qf(l(o.ld(),149),w))}function NTn(e,t,n){var r,a;if(qO(e.b),X0(e.b,(PN(),WW),(b_(),qB)),X0(e.b,YW,t.g),X0(e.b,XW,t.a),e.a=bP(e.b,t),n.Ug("Compaction by shrinking a tree",e.a.c.length),t.i.c.length>1)for(a=new G(e.a);a.a=0?e.Lh(r,!0,!0):Hw(e,o,!0),160)),l(a,220).Xl(t,n)}else throw ue(new Yn(Ob+t.xe()+kL))}function SU(e,t){var n,r,a,o,f;if(t){for(o=De(e.Cb,90)||De(e.Cb,102),f=!o&&De(e.Cb,331),r=new or((!t.a&&(t.a=new G_(t,Wo,t)),t.a));r.e!=r.i.gc();)if(n=l(gr(r),89),a=jU(n),o?De(a,90):f?De(a,156):a)return a;return o?(Tn(),Kf):(Tn(),td)}else return null}function PTn(e,t){var n,r,a,o;for(t.Ug("Resize child graph to fit parent.",1),r=new G(e.b);r.a=2*t&&vt(n,new vae(f[r-1]+t,f[r]-t));return n}function RTn(e,t,n){var r,a,o,f,g,w,E,C;if(n)for(o=n.a.length,r=new Dm(o),g=(r.b-r.a)*r.c<0?(sb(),tm):new cb(r);g.Ob();)f=l(g.Pb(),17),a=Jk(n,f.a),a&&(w=gmn(e,(E=(rb(),C=new jwe,C),t&&z9e(E,t),E),a),fE(w,Yg(a,Pd)),mU(a,w),h9e(a,w),wce(e,a,w))}function _U(e){var t,n,r,a,o,f;if(!e.j){if(f=new IS,t=qM,o=t.a.zc(e,t),o==null){for(r=new or(dc(e));r.e!=r.i.gc();)n=l(gr(r),29),a=_U(n),As(f,a),qr(f,n);t.a.Bc(e)!=null}Iy(f),e.j=new N5((l(Oe(tt((lb(),Vn).o),11),19),f.i),f.g),Yl(e).b&=-33}return e.j}function jTn(e){var t,n,r,a;if(e==null)return null;if(r=Tu(e,!0),a=eB.length,vn(r.substr(r.length-a,a),eB)){if(n=r.length,n==4){if(t=(Xn(0,r.length),r.charCodeAt(0)),t==43)return KPe;if(t==45)return wAt}else if(n==3)return KPe}return new Awe(r)}function $Tn(e){var t,n,r;return n=e.l,n&n-1||(r=e.m,r&r-1)||(t=e.h,t&t-1)||t==0&&r==0&&n==0?-1:t==0&&r==0&&n!=0?i7e(n):t==0&&r!=0&&n==0?i7e(r)+22:t!=0&&r==0&&n==0?i7e(t)+44:-1}function u6(e,t){var n,r,a,o,f;for(a=t.a&e.f,o=null,r=e.b[a];;r=r.b){if(r==t){o?o.b=t.b:e.b[a]=t.b;break}o=r}for(f=t.f&e.f,o=null,n=e.c[f];;n=n.d){if(n==t){o?o.d=t.d:e.c[f]=t.d;break}o=n}t.e?t.e.c=t.c:e.a=t.c,t.c?t.c.e=t.e:e.e=t.e,--e.i,++e.g}function zTn(e,t){var n;t.d?t.d.b=t.b:e.a=t.b,t.b?t.b.d=t.d:e.e=t.d,!t.e&&!t.c?(n=l(Lf(l(ax(e.b,t.a),260)),260),n.a=0,++e.c):(n=l(Lf(l(cr(e.b,t.a),260)),260),--n.a,t.e?t.e.c=t.c:n.b=l(Lf(t.c),511),t.c?t.c.e=t.e:n.c=l(Lf(t.e),511)),--e.d}function qTn(e){var t,n,r,a,o,f,g,w,E,C;for(n=e.o,t=e.p,f=Ii,a=lo,g=Ii,o=lo,E=0;E0),o.a.Xb(o.c=--o.b),by(o,a),mr(o.b3&&ag(e,0,t-3))}function VTn(e){var t,n,r,a;return qe(Q(e,(Nt(),p4)))===qe((rp(),A2))?!e.e&&qe(Q(e,TB))!==qe((vE(),vB)):(r=l(Q(e,Z1e),299),a=Rt(Bt(Q(e,ede)))||qe(Q(e,JL))===qe((dA(),mB)),t=l(Q(e,SMe),17).a,n=e.a.c.length,!a&&r!=(vE(),vB)&&(t==0||t>n))}function UTn(e){var t,n;for(n=0;n0);n++);if(n>0&&n0);t++);return t>0&&n>16!=6&&t){if(FE(e,t))throw ue(new Yn(EL+d2t(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?lxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=mx(t,e,6,r)),r=Wye(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,6,t,t))}function AU(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=3&&t){if(FE(e,t))throw ue(new Yn(EL+evt(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?gxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=mx(t,e,12,r)),r=Yye(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,3,t,t))}function z9e(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=9&&t){if(FE(e,t))throw ue(new Yn(EL+Jbt(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?fxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=mx(t,e,9,r)),r=Xye(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,9,t,t))}function UE(e){var t,n,r,a,o;if(r=Of(e),o=e.j,o==null&&r)return e.Jk()?null:r.ik();if(De(r,156)){if(n=r.jk(),n&&(a=n.wi(),a!=e.i)){if(t=l(r,156),t.nk())try{e.g=a.ti(t,o)}catch(f){if(f=bs(f),De(f,82))e.g=null;else throw ue(f)}e.i=a}return e.g}return null}function ebt(e){var t;return t=new bt,vt(t,new B8(new lt(e.c,e.d),new lt(e.c+e.b,e.d))),vt(t,new B8(new lt(e.c,e.d),new lt(e.c,e.d+e.a))),vt(t,new B8(new lt(e.c+e.b,e.d+e.a),new lt(e.c+e.b,e.d))),vt(t,new B8(new lt(e.c+e.b,e.d+e.a),new lt(e.c,e.d+e.a))),t}function GTn(e){var t,n,r;if(e==null)return ul;try{return xc(e)}catch(a){if(a=bs(a),De(a,103))return t=a,r=_m(bh(e))+"@"+(n=(Vg(),q8e(e)>>>0),n.toString(16)),a6n(U3n(),(Dk(),"Exception during lenientFormat for "+r),t),"<"+r+" threw "+_m(t.Rm)+">";throw ue(a)}}function KTn(e,t,n){var r,a,o;for(o=t.a.ec().Kc();o.Ob();)a=l(o.Pb(),74),r=l(cr(e.b,a),272),!r&&(ds(cg(a))==ds(Eb(a))?NCn(e,a,n):cg(a)==ds(Eb(a))?cr(e.c,a)==null&&cr(e.b,Eb(a))!=null&&Ivt(e,a,n,!1):cr(e.d,a)==null&&cr(e.b,cg(a))!=null&&Ivt(e,a,n,!0))}function WTn(e,t){var n,r,a,o,f,g,w;for(a=e.Kc();a.Ob();)for(r=l(a.Pb(),10),g=new gu,Mc(g,r),la(g,(Ct(),ar)),rt(g,(ft(),oW),(Hn(),!0)),f=t.Kc();f.Ob();)o=l(f.Pb(),10),w=new gu,Mc(w,o),la(w,er),rt(w,oW,!0),n=new Tw,rt(n,oW,!0),po(n,g),Fa(n,w)}function YTn(e,t,n,r){var a,o,f,g;a=R1t(e,t,n),o=R1t(e,n,t),f=l(cr(e.c,t),118),g=l(cr(e.c,n),118),a1)for(t=hw((n=new Sm,++e.b,n),e.d),g=Rr(o,0);g.b!=g.d.c;)f=l(Br(g),125),p0(s0(i0(a0(r0(new _f,1),0),t),f))}function JTn(e,t,n){var r,a,o,f,g;for(n.Ug("Breaking Point Removing",1),e.a=l(Q(t,(Nt(),bp)),223),o=new G(t.b);o.a>16!=11&&t){if(FE(e,t))throw ue(new Yn(EL+oke(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?pxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=mx(t,e,10,r)),r=s4e(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,11,t,t))}function ZTn(e){var t,n,r,a;for(r=new qm(new Sr(e.b).a);r.b;)n=Nw(r),a=l(n.ld(),12),t=l(n.md(),10),rt(t,(ft(),zi),a),rt(a,jl,t),rt(a,xB,(Hn(),!0)),la(a,l(Q(t,Wc),64)),Q(t,Wc),rt(a.i,(Nt(),Ms),(Ra(),sC)),l(Q(eo(a.i),Lu),21).Fc((Ho(),$T))}function eCn(e,t,n){var r,a,o,f,g,w;if(o=0,f=0,e.c)for(w=new G(e.d.i.j);w.ao.a?-1:a.aw){for(C=e.d,e.d=We(vPe,_Se,66,2*w+4,0,1),o=0;o=9223372036854776e3?(iE(),WSe):(a=!1,e<0&&(a=!0,e=-e),r=0,e>=Zm&&(r=ua(e/Zm),e-=r*Zm),n=0,e>=Lx&&(n=ua(e/Lx),e-=n*Lx),t=ua(e),o=qu(t,n,r),a&&yce(o),o)}function hCn(e){var t,n,r,a,o;if(o=new bt,Vu(e.b,new Jd(o)),e.b.c.length=0,o.c.length!=0){for(t=(Sn(0,o.c.length),l(o.c[0],82)),n=1,r=o.c.length;n=-t&&r==t?new ca(pt(n-1),pt(r)):new ca(pt(n),pt(r-1))}function rbt(){return vo(),he(le(EOn,1),it,81,0,[PAe,IAe,D6,f1e,eLe,DK,zK,l4,JAe,HAe,XAe,u4,ZAe,$Ae,tLe,SAe,PK,d1e,LK,RK,rLe,FK,_Ae,QAe,iLe,jK,nLe,MK,FAe,WAe,KAe,qK,MAe,AK,OK,LAe,LT,UAe,zAe,YAe,zL,OAe,DAe,GAe,qAe,NK,$K,AAe,BK,VAe,IK,RAe,BAe,gB,_K,jAe,NAe])}function gCn(e,t,n){e.d=0,e.b=0,t.k==(Zn(),Au)&&n.k==Au&&l(Q(t,(ft(),zi)),10)==l(Q(n,zi),10)&&($oe(t).j==(Ct(),Qn)?V2t(e,t,n):V2t(e,n,t)),t.k==Au&&n.k==Aa?$oe(t).j==(Ct(),Qn)?e.d=1:e.b=1:n.k==Au&&t.k==Aa&&($oe(n).j==(Ct(),Qn)?e.b=1:e.d=1),J6n(e,t,n)}function pCn(e){var t,n,r,a,o,f,g,w,E,C,L;return L=jxe(e),t=e.a,w=t!=null,w&&zk(L,"category",e.a),a=ZI(new br(e.d)),f=!a,f&&(E=new $p,e1(L,"knownOptions",E),n=new oQe(E),to(new br(e.d),n)),o=ZI(e.g),g=!o,g&&(C=new $p,e1(L,"supportedFeatures",C),r=new cQe(C),to(e.g,r)),L}function bCn(e){var t,n,r,a,o,f,g,w,E;for(r=!1,t=336,n=0,o=new Grt(e.length),g=e,w=0,E=g.length;w>16!=7&&t){if(FE(e,t))throw ue(new Yn(EL+lpt(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?hxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=l(t,54).Rh(e,1,oF,r)),r=J4e(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,7,t,t))}function ibt(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=3&&t){if(FE(e,t))throw ue(new Yn(EL+c1t(e)));r=null,e.Cb&&(r=(n=e.Db>>16,n>=0?dxe(e,r):e.Cb.Th(e,-1-n,null,r))),t&&(r=l(t,54).Rh(e,0,uF,r)),r=Z4e(e,t,r),r&&r.oj()}else e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,3,t,t))}function Que(e,t){GE();var n,r,a,o,f,g,w,E,C;return t.d>e.d&&(g=e,e=t,t=g),t.d<63?iSn(e,t):(f=(e.d&-2)<<4,E=v6e(e,f),C=v6e(t,f),r=mle(e,sx(E,f)),a=mle(t,sx(C,f)),w=Que(E,C),n=Que(r,a),o=Que(mle(E,r),mle(a,C)),o=Tle(Tle(o,w),n),o=sx(o,f),w=sx(w,f<<1),Tle(Tle(w,o),n))}function p2(){p2=U,gde=new M5(cyt,0),fDe=new M5("LONGEST_PATH",1),dDe=new M5("LONGEST_PATH_SOURCE",2),dde=new M5("COFFMAN_GRAHAM",3),hDe=new M5($he,4),gDe=new M5("STRETCH_WIDTH",5),CW=new M5("MIN_WIDTH",6),WT=new M5("BF_MODEL_ORDER",7),YT=new M5("DF_MODEL_ORDER",8)}function vCn(e,t,n){var r,a,o,f,g;for(f=TA(e,n),g=We(wg,m2,10,t.length,0,1),r=0,o=f.Kc();o.Ob();)a=l(o.Pb(),12),Rt(Bt(Q(a,(ft(),xB))))&&(g[r++]=l(Q(a,jl),10));if(r=0;o+=n?1:-1)f=f|t.c.lg(w,o,n,r&&!Rt(Bt(Q(t.j,(ft(),jb))))&&!Rt(Bt(Q(t.j,(ft(),j6))))),f=f|t.q.ug(w,o,n),f=f|Ubt(e,w[o],n,r);return na(e.c,t),f}function DU(e,t,n){var r,a,o,f,g,w,E,C,L,B;for(C=Tct(e.j),L=0,B=C.length;L1&&(e.a=!0),Qdn(l(n.b,68),Oi(Ja(l(t.b,68).c),md(ma(Ja(l(n.b,68).a),l(t.b,68).a),a))),Dot(e,t),sbt(e,n)}function abt(e){var t,n,r,a,o,f,g;for(o=new G(e.a.a);o.a0&&o>0?f.p=t++:r>0?f.p=n++:o>0?f.p=a++:f.p=n++}Cn(),Vs(e.j,new W9)}function ECn(e){var t,n;n=null,t=l(jt(e.g,0),18);do{if(n=t.d.i,ns(n,(ft(),$f)))return l(Q(n,$f),12).i;if(n.k!=(Zn(),Ps)&&jr(new hr(dr(qs(n).a.Kc(),new j))))t=l(xr(new hr(dr(qs(n).a.Kc(),new j))),18);else if(n.k!=Ps)return null}while(n&&n.k!=(Zn(),Ps));return n}function TCn(e,t){var n,r,a,o,f,g,w,E,C;for(g=t.j,f=t.g,w=l(jt(g,g.c.length-1),113),C=(Sn(0,g.c.length),l(g.c[0],113)),E=vue(e,f,w,C),o=1;oE&&(w=n,C=a,E=r);t.a=C,t.c=w}function CCn(e,t,n){var r,a,o,f,g,w,E;for(E=new Kp(new UYe(e)),f=he(le(F8t,1),I3t,12,0,[t,n]),g=0,w=f.length;gw-e.b&&gw-e.a&&g0?o.a?(g=o.b.Mf().a,n>g&&(a=(n-g)/2,o.d.b=a,o.d.c=a)):o.d.c=e.s+n:W_(e.u)&&(r=$xe(o.b),r.c<0&&(o.d.b=-r.c),r.c+r.b>o.b.Mf().a&&(o.d.c=r.c+r.b-o.b.Mf().a))}function qCn(e,t){var n,r,a,o,f;f=new bt,n=t;do o=l(cr(e.b,n),131),o.B=n.c,o.D=n.d,$n(f.c,o),n=l(cr(e.k,n),18);while(n);return r=(Sn(0,f.c.length),l(f.c[0],131)),r.j=!0,r.A=l(r.d.a.ec().Kc().Pb(),18).c.i,a=l(jt(f,f.c.length-1),131),a.q=!0,a.C=l(a.d.a.ec().Kc().Pb(),18).d.i,f}function HCn(e){var t,n;if(t=l(e.a,17).a,n=l(e.b,17).a,t>=0){if(t==n)return new ca(pt(-t-1),pt(-t-1));if(t==-n)return new ca(pt(-t),pt(n+1))}return b.Math.abs(t)>b.Math.abs(n)?t<0?new ca(pt(-t),pt(n)):new ca(pt(-t),pt(n+1)):new ca(pt(t+1),pt(n))}function VCn(e){var t,n;n=l(Q(e,(Nt(),Qu)),171),t=l(Q(e,(ft(),hv)),311),n==(hf(),$b)?(rt(e,Qu,EB),rt(e,hv,(ep(),F6))):n==d4?(rt(e,Qu,EB),rt(e,hv,(ep(),Ux))):t==(ep(),F6)?(rt(e,Qu,$b),rt(e,hv,wB)):t==Ux&&(rt(e,Qu,d4),rt(e,hv,wB))}function IU(){IU=U,IB=new pte,XEt=fi(new Xs,(uo(),bu),(vo(),LK)),ZEt=yl(fi(new Xs,bu,FK),mc,BK),eTt=Td(Td(v_(yl(fi(new Xs,y0,zK),mc,$K),_u),jK),qK),QEt=yl(fi(fi(fi(new Xs,vg,DK),_u,OK),_u,LT),mc,IK),JEt=yl(fi(fi(new Xs,_u,LT),_u,AK),mc,_K)}function GA(){GA=U,rTt=fi(yl(new Xs,(uo(),mc),(vo(),RAe)),bu,LK),oTt=Td(Td(v_(yl(fi(new Xs,y0,zK),mc,$K),_u),jK),qK),iTt=yl(fi(fi(fi(new Xs,vg,DK),_u,OK),_u,LT),mc,IK),aTt=fi(fi(new Xs,bu,FK),mc,BK),sTt=yl(fi(fi(new Xs,_u,LT),_u,AK),mc,_K)}function UCn(e,t,n,r,a){var o,f;(!Do(t)&&t.c.i.c==t.d.i.c||!uft(Ic(he(le(Ea,1),dt,8,0,[a.i.n,a.n,a.a])),n))&&!Do(t)&&(t.c==a?Pk(t.a,0,new Eo(n)):ui(t.a,new Eo(n)),r&&!W0(e.a,n)&&(f=l(Q(t,(Nt(),cc)),75),f||(f=new bl,rt(t,cc,f)),o=new Eo(n),Cs(f,o,f.c.b,f.c),na(e.a,o)))}function ubt(e,t){var n,r,a,o;for(o=Yr(mo(fg,ig(Yr(mo(t==null?0:es(t),dg)),15))),n=o&e.b.length-1,a=null,r=e.b[n];r;a=r,r=r.a)if(r.d==o&&yd(r.i,t))return a?a.a=r.a:e.b[n]=r.a,RJe(l(Lf(r.c),604),l(Lf(r.f),604)),WI(l(Lf(r.b),227),l(Lf(r.e),227)),--e.f,++e.e,!0;return!1}function GCn(e){var t,n;for(n=new hr(dr(ka(e).a.Kc(),new j));jr(n);)if(t=l(xr(n),18),t.c.i.k!=(Zn(),cu))throw ue(new Vp(jhe+HN(e)+"' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."))}function KCn(e,t,n){var r,a,o,f,g,w,E;if(a=d1t(e.Db&254),a==0)e.Eb=n;else{if(a==1)g=We(wa,Rn,1,2,5,1),o=mue(e,t),o==0?(g[0]=n,g[1]=e.Eb):(g[0]=e.Eb,g[1]=n);else for(g=We(wa,Rn,1,a+1,5,1),f=jm(e.Eb),r=2,w=0,E=0;r<=128;r<<=1)r==t?g[E++]=n:e.Db&r&&(g[E++]=f[w++]);e.Eb=g}e.Db|=t}function lbt(e,t,n){var r,a,o,f;for(this.b=new bt,a=0,r=0,f=new G(e);f.a0&&(o=l(jt(this.b,0),176),a+=o.o,r+=o.p),a*=2,r*=2,t>1?a=ua(b.Math.ceil(a*t)):r=ua(b.Math.ceil(r/t)),this.a=new I8e(a,r)}function hbt(e,t,n,r,a,o){var f,g,w,E,C,L,B,z,V,J,te,fe;for(C=r,t.j&&t.o?(z=l(cr(e.f,t.A),60),J=z.d.c+z.d.b,--C):J=t.a.c+t.a.b,L=a,n.q&&n.o?(z=l(cr(e.f,n.C),60),E=z.d.c,++L):E=n.a.c,te=E-J,w=b.Math.max(2,L-C),g=te/w,V=J+g,B=C;B=0;f+=a?1:-1){for(g=t[f],w=r==(Ct(),ar)?a?Oc(g,r):lf(Oc(g,r)):a?lf(Oc(g,r)):Oc(g,r),o&&(e.c[g.p]=w.gc()),L=w.Kc();L.Ob();)C=l(L.Pb(),12),e.d[C.p]=E++;ra(n,w)}}function dbt(e,t,n){var r,a,o,f,g,w,E,C;for(o=ze(Ge(e.b.Kc().Pb())),E=ze(Ge(V3n(t.b))),r=md(Ja(e.a),E-n),a=md(Ja(t.a),n-o),C=Oi(r,a),md(C,1/(E-o)),this.a=C,this.b=new bt,g=!0,f=e.b.Kc(),f.Pb();f.Ob();)w=ze(Ge(f.Pb())),g&&w-n>wfe&&(this.b.Fc(n),g=!1),this.b.Fc(w);g&&this.b.Fc(n)}function WCn(e){var t,n,r,a;if(f_n(e,e.n),e.d.c.length>0){for(u_(e.c);L9e(e,l(re(new G(e.e.a)),125))>5,t&=31,r>=e.d)return e.e<0?(Cd(),w6t):(Cd(),BL);if(o=e.d-r,a=We(Vr,di,28,o+1,15,1),j9n(a,o,e.a,r,t),e.e<0){for(n=0;n0&&e.a[n]<<32-t){for(n=0;n=0?!1:(n=g6((El(),io),a,t),n?(r=n.Ik(),(r>1||r==-1)&&kw(ic(io,n))!=3):!0)):!1}function JCn(e,t,n,r){var a,o,f,g,w;return g=bc(l(Oe((!t.b&&(t.b=new Ln(_r,t,4,7)),t.b),0),84)),w=bc(l(Oe((!t.c&&(t.c=new Ln(_r,t,5,8)),t.c),0),84)),ds(g)==ds(w)||Ly(w,g)?null:(f=WO(t),f==n?r:(o=l(cr(e.a,f),10),o&&(a=o.e,a)?a:null))}function ZCn(e,t,n){var r,a,o,f,g;for(n.Ug("Longest path to source layering",1),e.a=t,g=e.a.a,e.b=We(Vr,di,28,g.c.length,15,1),r=0,f=new G(g);f.a0&&(n[0]+=e.d,f-=n[0]),n[2]>0&&(n[2]+=e.d,f-=n[2]),o=b.Math.max(0,f),n[1]=b.Math.max(n[1],f),y6e(e,$u,a.c+r.b+n[0]-(n[1]-f)/2,n),t==$u&&(e.c.b=o,e.c.c=a.c+r.b+(o-f)/2)}function Ebt(){this.c=We(Na,Zo,28,(Ct(),he(le(Oo,1),au,64,0,[Pc,Qn,ar,Dr,er])).length,15,1),this.b=We(Na,Zo,28,he(le(Oo,1),au,64,0,[Pc,Qn,ar,Dr,er]).length,15,1),this.a=We(Na,Zo,28,he(le(Oo,1),au,64,0,[Pc,Qn,ar,Dr,er]).length,15,1),E3e(this.c,gs),E3e(this.b,ia),E3e(this.a,ia)}function Eu(e,t,n){var r,a,o,f;if(t<=n?(a=t,o=n):(a=n,o=t),r=0,e.b==null)e.b=We(Vr,di,28,2,15,1),e.b[0]=a,e.b[1]=o,e.c=!0;else{if(r=e.b.length,e.b[r-1]+1==a){e.b[r-1]=o;return}f=We(Vr,di,28,r+2,15,1),pu(e.b,0,f,0,r),e.b=f,e.b[r-1]>=a&&(e.c=!1,e.a=!1),e.b[r++]=a,e.b[r]=o,e.c||c6(e)}}function sSn(e,t,n){var r,a,o,f,g,w,E;for(E=t.d,e.a=new Bu(E.c.length),e.c=new Pr,g=new G(E);g.a=0?e.Lh(E,!1,!0):Hw(e,n,!1),61));e:for(o=L.Kc();o.Ob();){for(a=l(o.Pb(),58),C=0;C1;)Vy(a,a.i-1);return r}function Cbt(e,t){var n,r,a,o,f,g,w;for(n=new z5,o=new G(e.b);o.ae.d[f.p]&&(n+=f6e(e.b,o),gb(e.a,pt(o)));for(;!l_(e.a);)U6e(e.b,l(X8(e.a),17).a)}return n}function hSn(e){var t,n,r,a,o,f,g,w,E;for(e.a=new i4e,E=0,a=0,r=new G(e.i.b);r.ag.d&&(C=g.d+g.a+E));n.c.d=C,t.a.zc(n,t),w=b.Math.max(w,n.c.d+n.c.a)}return w}function Ho(){Ho=U,eW=new uy("COMMENTS",0),vf=new uy("EXTERNAL_PORTS",1),UL=new uy("HYPEREDGES",2),tW=new uy("HYPERNODES",3),$T=new uy("NON_FREE_PORTS",4),B6=new uy("NORTH_SOUTH_PORTS",5),GL=new uy(X3t,6),RT=new uy("CENTER_LABELS",7),jT=new uy("END_LABELS",8),nW=new uy("PARTITIONS",9)}function dSn(e,t,n,r,a){return r<0?(r=o6(e,a,he(le(zt,1),dt,2,6,[$le,zle,qle,Hle,_x,Vle,Ule,Gle,Kle,Wle,Yle,Xle]),t),r<0&&(r=o6(e,a,he(le(zt,1),dt,2,6,["Jan","Feb","Mar","Apr",_x,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),t)),r<0?!1:(n.k=r,!0)):r>0?(n.k=r-1,!0):!1}function gSn(e,t,n,r,a){return r<0?(r=o6(e,a,he(le(zt,1),dt,2,6,[$le,zle,qle,Hle,_x,Vle,Ule,Gle,Kle,Wle,Yle,Xle]),t),r<0&&(r=o6(e,a,he(le(zt,1),dt,2,6,["Jan","Feb","Mar","Apr",_x,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),t)),r<0?!1:(n.k=r,!0)):r>0?(n.k=r-1,!0):!1}function pSn(e,t,n,r,a,o){var f,g,w,E;if(g=32,r<0){if(t[0]>=e.length||(g=co(e,t[0]),g!=43&&g!=45)||(++t[0],r=kU(e,t),r<0))return!1;g==45&&(r=-r)}return g==32&&t[0]-n==2&&a.b==2&&(w=new Qz,E=w.q.getFullYear()-Lb+Lb-80,f=E%100,o.a=r==f,r+=(E/100|0)*100+(r=0?kb(e):J_(kb(r2(e)))),FL[t]=Aq(l0(e,t),0)?kb(l0(e,t)):J_(kb(r2(l0(e,t)))),e=mo(e,5);for(;t=E&&(w=r);w&&(C=b.Math.max(C,w.a.o.a)),C>B&&(L=E,B=C)}return L}function xSn(e){var t,n,r,a,o,f,g;for(o=new Kp(l(Xr(new Wh),50)),g=ia,n=new G(e.d);n.akyt?Vs(w,e.b):r<=kyt&&r>Eyt?Vs(w,e.d):r<=Eyt&&r>Tyt?Vs(w,e.c):r<=Tyt&&Vs(w,e.a),o=Mbt(e,w,o);return a}function Dbt(e,t,n,r){var a,o,f,g,w,E;for(a=(r.c+r.a)/2,Ch(t.j),ui(t.j,a),Ch(n.e),ui(n.e,a),E=new QJe,g=new G(e.f);g.a1,g&&(r=new lt(a,n.b),ui(t.a,r)),fA(t.a,he(le(Ea,1),dt,8,0,[B,L]))}function J9e(e,t,n){var r,a;for(t=48;n--)GM[n]=n-48<<24>>24;for(r=70;r>=65;r--)GM[r]=r-65+10<<24>>24;for(a=102;a>=97;a--)GM[a]=a-97+10<<24>>24;for(o=0;o<10;o++)LY[o]=48+o&Zs;for(e=10;e<=15;e++)LY[e]=65+e-10&Zs}function CSn(e,t){t.Ug("Process graph bounds",1),rt(e,(Qi(),Bde),fO(uce(xy(new bn(null,new kn(e.b,16)),new zte)))),rt(e,Fde,fO(uce(xy(new bn(null,new kn(e.b,16)),new qte)))),rt(e,rIe,fO(cce(xy(new bn(null,new kn(e.b,16)),new Hte)))),rt(e,iIe,fO(cce(xy(new bn(null,new kn(e.b,16)),new Vte)))),t.Vg()}function SSn(e){var t,n,r,a,o;a=l(Q(e,(Nt(),bv)),21),o=l(Q(e,xW),21),n=new lt(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a),t=new Eo(n),a.Hc((mh(),A4))&&(r=l(Q(e,qT),8),o.Hc((Zl(),aC))&&(r.a<=0&&(r.a=20),r.b<=0&&(r.b=20)),t.a=b.Math.max(n.a,r.a),t.b=b.Math.max(n.b,r.b)),Rt(Bt(Q(e,ade)))||nLn(e,n,t)}function _Sn(e,t){var n,r,a,o;for(o=Oc(t,(Ct(),Dr)).Kc();o.Ob();)r=l(o.Pb(),12),n=l(Q(r,(ft(),jl)),10),n&&p0(s0(i0(a0(r0(new _f,0),.1),e.i[t.p].d),e.i[n.p].a));for(a=Oc(t,Qn).Kc();a.Ob();)r=l(a.Pb(),12),n=l(Q(r,(ft(),jl)),10),n&&p0(s0(i0(a0(r0(new _f,0),.1),e.i[n.p].d),e.i[t.p].a))}function Zue(e){var t,n,r,a,o,f;if(!e.c){if(f=new Qc,t=qM,o=t.a.zc(e,t),o==null){for(r=new or(du(e));r.e!=r.i.gc();)n=l(gr(r),89),a=jU(n),De(a,90)&&As(f,Zue(l(a,29))),qr(f,n);t.a.Bc(e)!=null,t.a.gc()==0}k5n(f),Iy(f),e.c=new N5((l(Oe(tt((lb(),Vn).o),15),19),f.i),f.g),Yl(e).b&=-33}return e.c}function eke(e){var t;if(e.c!=10)throw ue(new ri(ai((Jr(),VG))));switch(t=e.a,t){case 110:t=10;break;case 114:t=13;break;case 116:t=9;break;case 92:case 124:case 46:case 94:case 45:case 63:case 42:case 43:case 123:case 125:case 40:case 41:case 91:case 93:break;default:throw ue(new ri(ai((Jr(),bf))))}return t}function Pbt(e){var t,n,r,a,o;if(e.l==0&&e.m==0&&e.h==0)return"0";if(e.h==SP&&e.m==0&&e.l==0)return"-9223372036854775808";if(e.h>>19)return"-"+Pbt(xE(e));for(n=e,r="";!(n.l==0&&n.m==0&&n.h==0);){if(a=Loe(JU),n=Nke(n,a,!0),t=""+rZe(Nb),!(n.l==0&&n.m==0&&n.h==0))for(o=9-t.length;o>0;o--)t="0"+t;r=t+r}return r}function ASn(e){var t,n,r,a,o,f,g;for(t=!1,n=0,a=new G(e.d.b);a.a=e.a||!Bxe(t,n))return-1;if(Zk(l(r.Kb(t),20)))return 1;for(a=0,f=l(r.Kb(t),20).Kc();f.Ob();)if(o=l(f.Pb(),18),w=o.c.i==t?o.d.i:o.c.i,g=tke(e,w,n,r),g==-1||(a=b.Math.max(a,g),a>e.c-1))return-1;return a+1}function Bbt(e,t){var n,r,a,o,f,g;if(qe(t)===qe(e))return!0;if(!De(t,15)||(r=l(t,15),g=e.gc(),r.gc()!=g))return!1;if(f=r.Kc(),e.Yi()){for(n=0;n0){if(e._j(),t!=null){for(o=0;o>24;case 97:case 98:case 99:case 100:case 101:case 102:return e-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return e-65+10<<24>>24;default:throw ue(new gd("Invalid hexadecimal"))}}function PU(){PU=U,j_e=new L5("SPIRAL",0),P_e=new L5("LINE_BY_LINE",1),B_e=new L5("MANHATTAN",2),N_e=new L5("JITTER",3),z0e=new L5("QUADRANTS_LINE_BY_LINE",4),R_e=new L5("QUADRANTS_MANHATTAN",5),F_e=new L5("QUADRANTS_JITTER",6),O_e=new L5("COMBINE_LINE_BY_LINE_MANHATTAN",7),I_e=new L5("COMBINE_JITTER_MANHATTAN",8)}function Rbt(e,t,n,r){var a,o,f,g,w,E;for(w=Tue(e,n),E=Tue(t,n),a=!1;w&&E&&(r||C7n(w,E,n));)f=Tue(w,n),g=Tue(E,n),uN(t),uN(e),o=w.c,Cle(w,!1),Cle(E,!1),n?(Fy(t,E.p,o),t.p=E.p,Fy(e,w.p+1,o),e.p=w.p):(Fy(e,w.p,o),e.p=w.p,Fy(t,E.p+1,o),t.p=E.p),Va(w,null),Va(E,null),w=f,E=g,a=!0;return a}function jbt(e){switch(e.g){case 0:return new Gre;case 1:return new XS;case 3:return new fet;case 4:return new zee;case 5:return new zrt;case 6:return new jI;case 2:return new YS;case 7:return new az;case 8:return new RI;default:throw ue(new Yn("No implementation is available for the layerer "+(e.f!=null?e.f:""+e.g)))}}function NSn(e,t,n,r){var a,o,f,g,w;for(a=!1,o=!1,g=new G(r.j);g.a=t.length)throw ue(new tc("Greedy SwitchDecider: Free layer not in graph."));this.c=t[e],this.e=new IO(r),ice(this.e,this.c,(Ct(),er)),this.i=new IO(r),ice(this.i,this.c,ar),this.f=new ist(this.c),this.a=!o&&a.i&&!a.s&&this.c[0].k==(Zn(),Us),this.a&&W9n(this,e,t.length)}function zbt(e,t){var n,r,a,o,f,g;o=!e.B.Hc((Zl(),sF)),f=e.B.Hc(Gge),e.a=new _1t(f,o,e.c),e.n&&O5e(e.a.n,e.n),Xie(e.g,(t1(),$u),e.a),t||(r=new DA(1,o,e.c),r.n.a=e.k,Q8(e.p,(Ct(),Qn),r),a=new DA(1,o,e.c),a.n.d=e.k,Q8(e.p,Dr,a),g=new DA(0,o,e.c),g.n.c=e.k,Q8(e.p,er,g),n=new DA(0,o,e.c),n.n.b=e.k,Q8(e.p,ar,n))}function BSn(e){var t,n,r;switch(t=l(Q(e.d,(Nt(),bp)),223),t.g){case 2:n=TIn(e);break;case 3:n=(r=new bt,Is(Fi(fc(Dc(Dc(new bn(null,new kn(e.d.b,16)),new dee),new gee),new pee),new wS),new xYe(r)),r);break;default:throw ue(new nc("Compaction not supported for "+t+" edges."))}GLn(e,n),to(new br(e.g),new wYe(e))}function FSn(e,t){var n,r,a,o,f,g,w;if(t.Ug("Process directions",1),n=l(Q(e,(Hc(),y3)),88),n!=(Js(),Q1))for(a=Rr(e.b,0);a.b!=a.d.c;){switch(r=l(Br(a),40),g=l(Q(r,(Qi(),PB)),17).a,w=l(Q(r,BB),17).a,n.g){case 4:w*=-1;break;case 1:o=g,g=w,w=o;break;case 2:f=g,g=-w,w=f}rt(r,PB,pt(g)),rt(r,BB,pt(w))}t.Vg()}function RSn(e,t){var n;return n=new Bs,t&&pc(n,l(cr(e.a,oF),96)),De(t,422)&&pc(n,l(cr(e.a,cF),96)),De(t,366)?(pc(n,l(cr(e.a,ec),96)),n):(De(t,84)&&pc(n,l(cr(e.a,_r),96)),De(t,207)?(pc(n,l(cr(e.a,Ai),96)),n):De(t,193)?(pc(n,l(cr(e.a,Hl),96)),n):(De(t,326)&&pc(n,l(cr(e.a,js),96)),n))}function jSn(e){var t,n,r,a,o,f,g,w;for(w=new xut,g=new G(e.a);g.a0&&t=0)return!1;if(t.p=n.b,vt(n.e,t),a==(Zn(),Aa)||a==Au){for(f=new G(t.j);f.ae.d[g.p]&&(n+=f6e(e.b,o),gb(e.a,pt(o)))):++f;for(n+=e.b.d*f;!l_(e.a);)U6e(e.b,l(X8(e.a),17).a)}return n}function Qbt(e){var t,n,r,a,o,f;return o=0,t=Of(e),t.kk()&&(o|=4),e.Bb&Sl&&(o|=2),De(e,102)?(n=l(e,19),a=Ro(n),n.Bb&eu&&(o|=32),a&&(yr(ky(a)),o|=8,f=a.t,(f>1||f==-1)&&(o|=16),a.Bb&eu&&(o|=64)),n.Bb&Io&&(o|=r4),o|=m0):De(t,469)?o|=512:(r=t.kk(),r&&r.i&1&&(o|=256)),e.Bb&512&&(o|=128),o}function QSn(e,t){var n;return e.f==spe?(n=kw(ic((El(),io),t)),e.e?n==4&&t!=(kx(),u9)&&t!=(kx(),c9)&&t!=(kx(),ape)&&t!=(kx(),ope):n==2):e.d&&(e.d.Hc(t)||e.d.Hc(rx(ic((El(),io),t)))||e.d.Hc(g6((El(),io),e.b,t)))?!0:e.f&&q9e((El(),e.f),HO(ic(io,t)))?(n=kw(ic(io,t)),e.e?n==4:n==2):!1}function JSn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z;for(B=-1,z=0,E=e,C=0,L=E.length;C0&&++z;++B}return z}function ZSn(e,t,n,r){var a,o,f,g,w,E,C,L;return f=l(at(n,(pi(),n9)),8),w=f.a,C=f.b+e,a=b.Math.atan2(C,w),a<0&&(a+=iv),a+=t,a>iv&&(a-=iv),g=l(at(r,n9),8),E=g.a,L=g.b+e,o=b.Math.atan2(L,E),o<0&&(o+=iv),o+=t,o>iv&&(o-=iv),A1(),f0(1e-10),b.Math.abs(a-o)<=1e-10||a==o||isNaN(a)&&isNaN(o)?0:ao?1:uw(isNaN(a),isNaN(o))}function nle(e){var t,n,r,a,o,f,g;for(g=new Pr,r=new G(e.a.b);r.a=e.o)throw ue(new Bwe);g=t>>5,f=t&31,o=l0(1,Yr(l0(f,1))),a?e.n[n][g]=Q0(e.n[n][g],o):e.n[n][g]=va(e.n[n][g],O4e(o)),o=l0(o,1),r?e.n[n][g]=Q0(e.n[n][g],o):e.n[n][g]=va(e.n[n][g],O4e(o))}catch(w){throw w=bs(w),De(w,333)?ue(new tc(Ehe+e.o+"*"+e.p+The+t+Co+n+Che)):ue(w)}}function n_n(e,t,n,r){var a,o,f,g,w,E,C,L,B;for(B=new Kp(new VYe(e)),g=he(le(wg,1),m2,10,0,[t,n]),w=0,E=g.length;w0&&(r=(!e.n&&(e.n=new nt(ec,e,1,7)),l(Oe(e.n,0),135)).a,!r||hi(hi((t.a+=' "',t),r),'"'))),hi(rw(hi(rw(hi(rw(hi(rw((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function Jbt(e){var t,n,r;return e.Db&64?Pue(e):(t=new Th(uSe),n=e.k,n?hi(hi((t.a+=' "',t),n),'"'):(!e.n&&(e.n=new nt(ec,e,1,7)),e.n.i>0&&(r=(!e.n&&(e.n=new nt(ec,e,1,7)),l(Oe(e.n,0),135)).a,!r||hi(hi((t.a+=' "',t),r),'"'))),hi(rw(hi(rw(hi(rw(hi(rw((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function s_n(e,t){var n,r,a,o,f;for(t==(yA(),Cde)&&JN(l($i(e.a,(Ry(),bB)),15)),a=l($i(e.a,(Ry(),bB)),15).Kc();a.Ob();)switch(r=l(a.Pb(),105),n=l(jt(r.j,0),113).d.j,o=new Ol(r.j),Vs(o,new Rj),t.g){case 2:Lue(e,o,n,(Ow(),Rb),1);break;case 1:case 0:f=UTn(o),Lue(e,new Zp(o,0,f),n,(Ow(),Rb),0),Lue(e,new Zp(o,f,o.c.length),n,Rb,1)}}function ile(e,t){var n,r,a,o,f,g,w;if(t==null||t.length==0)return null;if(a=l(xu(e.a,t),143),!a){for(r=(g=new gi(e.b).a.vc().Kc(),new fs(g));r.a.Ob();)if(n=(o=l(r.a.Pb(),44),l(o.md(),143)),f=n.c,w=t.length,vn(f.substr(f.length-w,w),t)&&(t.length==f.length||co(f,f.length-t.length-1)==46)){if(a)return null;a=n}a&&rc(e.a,t,a)}return a}function a_n(e,t){var n,r,a,o;return n=new as,r=l(yc(fc(new bn(null,new kn(e.f,16)),n),Sy(new yt,new ji,new qn,new Un,he(le(oc,1),it,108,0,[(Fl(),i4),Ec]))),21),a=r.gc(),r=l(yc(fc(new bn(null,new kn(t.f,16)),n),Sy(new yt,new ji,new qn,new Un,he(le(oc,1),it,108,0,[i4,Ec]))),21),o=r.gc(),aa.p?(la(o,Dr),o.d&&(g=o.o.b,t=o.a.b,o.a.b=g-t)):o.j==Dr&&a.p>e.p&&(la(o,Qn),o.d&&(g=o.o.b,t=o.a.b,o.a.b=-(g-t)));break}return a}function uP(e,t,n,r,a){var o,f,g,w,E,C,L;if(!(De(t,207)||De(t,366)||De(t,193)))throw ue(new Yn("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));return f=e.a/2,w=t.i+r-f,C=t.j+a-f,E=w+t.g+e.a,L=C+t.f+e.a,o=new bl,ui(o,new lt(w,C)),ui(o,new lt(w,L)),ui(o,new lt(E,L)),ui(o,new lt(E,C)),g=new Gue(o),pc(g,t),n&&ki(e.b,t,g),g}function KE(e,t,n){var r,a,o,f,g,w,E,C,L,B;for(o=new lt(t,n),C=new G(e.a);C.a1,g&&(r=new lt(a,n.b),ui(t.a,r)),fA(t.a,he(le(Ea,1),dt,8,0,[B,L]))}function Nf(){Nf=U,AW=new ly(Id,0),AB=new ly("NIKOLOV",1),LB=new ly("NIKOLOV_PIXEL",2),xDe=new ly("NIKOLOV_IMPROVED",3),kDe=new ly("NIKOLOV_IMPROVED_PIXEL",4),yDe=new ly("DUMMYNODE_PERCENTAGE",5),EDe=new ly("NODECOUNT_PERCENTAGE",6),LW=new ly("NO_BOUNDARY",7),v3=new ly("MODEL_ORDER_LEFT_TO_RIGHT",8),x4=new ly("MODEL_ORDER_RIGHT_TO_LEFT",9)}function b_n(e){var t,n,r,a,o;for(r=e.length,t=new h_,o=0;o=40,f&&mAn(e),SLn(e),WCn(e),n=m1t(e),r=0;n&&r0&&ui(e.f,o)):(e.c[f]-=E+1,e.c[f]<=0&&e.a[f]>0&&ui(e.e,o))))}function hmt(e,t,n,r){var a,o,f,g,w,E,C;for(w=new lt(n,r),ma(w,l(Q(t,(Qi(),QT)),8)),C=Rr(t.b,0);C.b!=C.d.c;)E=l(Br(C),40),Oi(E.e,w),ui(e.b,E);for(g=l(yc(V5e(new bn(null,new kn(t.a,16))),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15).Kc();g.Ob();){for(f=l(g.Pb(),65),o=Rr(f.a,0);o.b!=o.d.c;)a=l(Br(o),8),a.a+=w.a,a.b+=w.b;ui(e.a,f)}}function bke(e,t){var n,r,a,o;if(0<(De(e,16)?l(e,16).gc():Xg(e.Kc()))){if(a=t,1=0&&wo*2?(C=new hV(L),E=wl(f)/gh(f),w=Lle(C,t,new A8,n,r,a,E),Oi(Y0(C.e),w),L.c.length=0,o=0,$n(L.c,C),$n(L.c,f),o=wl(C)*gh(C)+wl(f)*gh(f)):($n(L.c,f),o+=wl(f)*gh(f));return L}function dmt(e,t){var n,r,a,o,f,g;if(g=l(Q(t,(Nt(),Ms)),101),g==(Ra(),Tg)||g==Mu)for(a=new lt(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a).b,f=new G(e.a);f.an?t:n;E<=L;++E)E==n?g=r++:(o=a[E],C=V.am(o.Lk()),E==t&&(w=E==L&&!C?r-1:r),C&&++r);return B=l(AA(e,t,n),76),g!=w&&xk(e,new sN(e.e,7,f,pt(g),z.md(),w)),B}}else return l(Hue(e,t,n),76);return l(AA(e,t,n),76)}function B_n(e,t){var n,r,a,o,f,g,w;for(t.Ug("Port order processing",1),w=l(Q(e,(Nt(),ZMe)),430),r=new G(e.b);r.a=0&&(g=M7n(e,f),!(g&&(E<22?w.l|=1<>>1,f.m=C>>>1|(L&1)<<21,f.l=B>>>1|(C&1)<<21,--E;return n&&yce(w),o&&(r?(Nb=xE(e),a&&(Nb=Jft(Nb,(iE(),YSe)))):Nb=qu(e.l,e.m,e.h)),w}function j_n(e,t){var n,r,a,o,f,g,w,E,C,L;for(E=e.e[t.c.p][t.p]+1,w=t.c.a.c.length+1,g=new G(e.a);g.a0&&(Xn(0,e.length),e.charCodeAt(0)==45||(Xn(0,e.length),e.charCodeAt(0)==43))?1:0,r=f;rn)throw ue(new gd(Yw+e+'"'));return g}function $_n(e){var t,n,r,a,o,f,g;for(f=new os,o=new G(e.a);o.a1)&&t==1&&l(e.a[e.b],10).k==(Zn(),cu)?Tx(l(e.a[e.b],10),(Ih(),kg)):r&&(!n||(e.c-e.b&e.a.length-1)>1)&&t==1&&l(e.a[e.c-1&e.a.length-1],10).k==(Zn(),cu)?Tx(l(e.a[e.c-1&e.a.length-1],10),(Ih(),Gb)):(e.c-e.b&e.a.length-1)==2?(Tx(l(wA(e),10),(Ih(),kg)),Tx(l(wA(e),10),Gb)):pTn(e,a),l6e(e)}function H_n(e,t,n){var r,a,o,f,g;for(o=0,a=new or((!e.a&&(e.a=new nt(Ai,e,10,11)),e.a));a.e!=a.i.gc();)r=l(gr(a),27),f="",(!r.n&&(r.n=new nt(ec,r,1,7)),r.n).i==0||(f=l(Oe((!r.n&&(r.n=new nt(ec,r,1,7)),r.n),0),135).a),g=new xce(o++,t,f),pc(g,r),rt(g,(Qi(),gM),r),g.e.b=r.j+r.f/2,g.f.a=b.Math.max(r.g,1),g.e.a=r.i+r.g/2,g.f.b=b.Math.max(r.f,1),ui(t.b,g),ju(n.f,r,g)}function V_n(e){var t,n,r,a,o;r=l(Q(e,(ft(),zi)),27),o=l(at(r,(Nt(),bv)),181).Hc((mh(),Cv)),e.e||(a=l(Q(e,Lu),21),t=new lt(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a),a.Hc((Ho(),vf))?(Hi(r,Ms,(Ra(),Mu)),Gw(r,t.a,t.b,!1,!0)):Rt(Bt(at(r,ade)))||Gw(r,t.a,t.b,!0,!0)),o?Hi(r,bv,un(Cv)):Hi(r,bv,(n=l(K0(BM),9),new Zh(n,l(c0(n,n.length),9),0)))}function mke(e,t,n){var r,a,o,f;if(t[0]>=e.length)return n.o=0,!0;switch(co(e,t[0])){case 43:a=1;break;case 45:a=-1;break;default:return n.o=0,!0}if(++t[0],o=t[0],f=kU(e,t),f==0&&t[0]==o)return!1;if(t[0]g&&(g=a,C.c.length=0),a==g&&vt(C,new ca(n.c.i,n)));Cn(),Vs(C,e.c),pw(e.b,w.p,C)}}function W_n(e,t){var n,r,a,o,f,g,w,E,C;for(f=new G(t.b);f.ag&&(g=a,C.c.length=0),a==g&&vt(C,new ca(n.d.i,n)));Cn(),Vs(C,e.c),pw(e.f,w.p,C)}}function Y_n(e,t){var n,r,a,o,f,g,w,E;if(E=Bt(Q(t,(Hc(),MTt))),E==null||(nr(E),E)){for(yEn(e,t),a=new bt,w=Rr(t.b,0);w.b!=w.d.c;)f=l(Br(w),40),n=i9e(e,f,null),n&&(pc(n,t),$n(a.c,n));if(e.a=null,e.b=null,a.c.length>1)for(r=new G(a);r.a=0&&g!=n&&(o=new _a(e,1,g,f,null),r?r.nj(o):r=o),n>=0&&(o=new _a(e,1,n,g==n?f:null,t),r?r.nj(o):r=o)),r}function bmt(e){var t,n,r;if(e.b==null){if(r=new Up,e.i!=null&&(Xo(r,e.i),r.a+=":"),e.f&256){for(e.f&256&&e.a!=null&&(dpn(e.i)||(r.a+="//"),Xo(r,e.a)),e.d!=null&&(r.a+="/",Xo(r,e.d)),e.f&16&&(r.a+="/"),t=0,n=e.j.length;tB?!1:(L=(w=ZA(r,B,!1),w.a),C+g+L<=t.b&&(aN(n,o-n.s),n.c=!0,aN(r,o-n.s),qN(r,n.s,n.t+n.d+g),r.k=!0,C7e(n.q,r),z=!0,a&&(bV(t,r),r.j=t,e.c.length>f&&(UN((Sn(f,e.c.length),l(e.c[f],186)),r),(Sn(f,e.c.length),l(e.c[f],186)).a.c.length==0&&t2(e,f)))),z)}function nAn(e,t){var n,r,a,o,f,g;if(t.Ug("Partition midprocessing",1),a=new Cw,Is(Fi(new bn(null,new kn(e.a,16)),new vj),new cYe(a)),a.d!=0){for(g=l(yc(K5e((o=a.i,new bn(null,(o||(a.i=new q5(a,a.c))).Nc()))),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15),r=g.Kc(),n=l(r.Pb(),17);r.Ob();)f=l(r.Pb(),17),WTn(l($i(a,n),21),l($i(a,f),21)),n=f;t.Vg()}}function wmt(e,t,n){var r,a,o,f,g,w,E,C;if(t.p==0){for(t.p=1,f=n,f||(a=new bt,o=(r=l(K0(Oo),9),new Zh(r,l(c0(r,r.length),9),0)),f=new ca(a,o)),l(f.a,15).Fc(t),t.k==(Zn(),Us)&&l(f.b,21).Fc(l(Q(t,(ft(),Wc)),64)),w=new G(t.j);w.a0){if(a=l(e.Ab.g,2033),t==null){for(o=0;on.s&&gf)return Ct(),ar;break;case 4:case 3:if(C<0)return Ct(),Qn;if(C+n>o)return Ct(),Dr}return w=(E+g/2)/f,r=(C+n/2)/o,w+r<=1&&w-r<=0?(Ct(),er):w+r>=1&&w-r>=0?(Ct(),ar):r<.5?(Ct(),Qn):(Ct(),Dr)}function oAn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J;for(n=!1,C=ze(Ge(Q(t,(Nt(),m3)))),V=Ab*C,a=new G(t.b);a.aw+V&&(J=L.g+B.g,B.a=(B.g*B.a+L.g*L.a)/J,B.g=J,L.f=B,n=!0)),o=g,L=B;return n}function Emt(e,t,n,r,a,o,f){var g,w,E,C,L,B;for(B=new $8,E=t.Kc();E.Ob();)for(g=l(E.Pb(),853),L=new G(g.Rf());L.a0?g.a?(E=g.b.Mf().b,a>E&&(e.v||g.c.d.c.length==1?(f=(a-E)/2,g.d.d=f,g.d.a=f):(n=l(jt(g.c.d,0),187).Mf().b,r=(n-E)/2,g.d.d=b.Math.max(0,r),g.d.a=a-r-E))):g.d.a=e.t+a:W_(e.u)&&(o=$xe(g.b),o.d<0&&(g.d.d=-o.d),o.d+o.a>g.b.Mf().b&&(g.d.a=o.d+o.a-g.b.Mf().b))}function b0(){b0=U,qx=new Ha((pi(),XB),pt(1)),kK=new Ha(Ev,80),n8t=new Ha(ANe,5),G7t=new Ha(Z6,lT),e8t=new Ha(zge,pt(1)),t8t=new Ha(qge,(Hn(),!0)),nAe=new lw(50),J7t=new Ha(_2,nAe),Z_e=WB,rAe=_M,K7t=new Ha(Dge,!1),tAe=YB,X7t=C4,Q7t=Ub,Y7t=kv,W7t=r7,Z7t=S4,eAe=(Xxe(),j7t),Z0e=H7t,xK=R7t,J0e=$7t,iAe=q7t,s8t=AM,a8t=aY,i8t=QB,r8t=sY,sAe=(dx(),L4),new Ha(i9,sAe)}function lAn(e,t){var n;switch(gN(e)){case 6:return Ia(t);case 7:return fy(t);case 8:return hy(t);case 3:return Array.isArray(t)&&(n=gN(t),!(n>=14&&n<=16));case 11:return t!=null&&typeof t===Ole;case 12:return t!=null&&(typeof t===wP||typeof t==Ole);case 0:return iue(t,e.__elementTypeId$);case 2:return Rae(t)&&t.Tm!==xe;case 1:return Rae(t)&&t.Tm!==xe||iue(t,e.__elementTypeId$);default:return!0}}function Tmt(e,t){var n,r,a,o;return r=b.Math.min(b.Math.abs(e.c-(t.c+t.b)),b.Math.abs(e.c+e.b-t.c)),o=b.Math.min(b.Math.abs(e.d-(t.d+t.a)),b.Math.abs(e.d+e.a-t.d)),n=b.Math.abs(e.c+e.b/2-(t.c+t.b/2)),n>e.b/2+t.b/2||(a=b.Math.abs(e.d+e.a/2-(t.d+t.a/2)),a>e.a/2+t.a/2)?1:n==0&&a==0?0:n==0?o/a+1:a==0?r/n+1:b.Math.min(r/n,o/a)+1}function hAn(e,t){var n,r,a,o,f,g,w;for(o=0,g=0,w=0,a=new G(e.f.e);a.a0&&e.d!=(lA(),n1e)&&(g+=f*(r.d.a+e.a[t.a][r.a]*(t.d.a-r.d.a)/n)),n>0&&e.d!=(lA(),e1e)&&(w+=f*(r.d.b+e.a[t.a][r.a]*(t.d.b-r.d.b)/n)));switch(e.d.g){case 1:return new lt(g/o,t.d.b);case 2:return new lt(t.d.a,w/o);default:return new lt(g/o,w/o)}}function Cmt(e){var t,n,r,a,o,f;for(n=(!e.a&&(e.a=new Ys(qh,e,5)),e.a).i+2,f=new Bu(n),vt(f,new lt(e.j,e.k)),Is(new bn(null,(!e.a&&(e.a=new Ys(qh,e,5)),new kn(e.a,16))),new NXe(f)),vt(f,new lt(e.b,e.c)),t=1;t0&&(SN(w,!1,(Js(),uc)),SN(w,!0,vc)),Vu(t.g,new jet(e,n)),ki(e.g,t,n)}function Amt(){Amt=U;var e;for(r_e=he(le(Vr,1),di,28,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]),A0e=We(Vr,di,28,37,15,1),b6t=he(le(Vr,1),di,28,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]),i_e=We(nm,ahe,28,37,14,1),e=2;e<=36;e++)A0e[e]=ua(b.Math.pow(e,r_e[e])),i_e[e]=KN(EP,A0e[e])}function fAn(e){var t;if((!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i!=1)throw ue(new Yn(n4t+(!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i));return t=new bl,TN(l(Oe((!e.b&&(e.b=new Ln(_r,e,4,7)),e.b),0),84))&&Ka(t,bwt(e,TN(l(Oe((!e.b&&(e.b=new Ln(_r,e,4,7)),e.b),0),84)),!1)),TN(l(Oe((!e.c&&(e.c=new Ln(_r,e,5,8)),e.c),0),84))&&Ka(t,bwt(e,TN(l(Oe((!e.c&&(e.c=new Ln(_r,e,5,8)),e.c),0),84)),!0)),t}function Lmt(e,t){var n,r,a,o,f;for(t.d?a=e.a.c==(xd(),w3)?ka(t.b):qs(t.b):a=e.a.c==(xd(),T2)?ka(t.b):qs(t.b),o=!1,r=new hr(dr(a.a.Kc(),new j));jr(r);)if(n=l(xr(r),18),f=Rt(e.a.f[e.a.g[t.b.p].p]),!(!f&&!Do(n)&&n.c.i.c==n.d.i.c)&&!(Rt(e.a.n[e.a.g[t.b.p].p])||Rt(e.a.n[e.a.g[t.b.p].p]))&&(o=!0,W0(e.b,e.a.g[f7n(n,t.b).p])))return t.c=!0,t.a=n,t;return t.c=o,t.a=null,t}function wke(e,t,n){var r,a,o,f,g,w,E;if(r=n.gc(),r==0)return!1;if(e.Pj())if(w=e.Qj(),A8e(e,t,n),f=r==1?e.Ij(3,null,n.Kc().Pb(),t,w):e.Ij(5,null,n,t,w),e.Mj()){for(g=r<100?null:new nb(r),o=t+r,a=t;a0){for(f=0;f>16==-15&&e.Cb.Yh()&&qoe(new Foe(e.Cb,9,13,n,e.c,f2(Xl(l(e.Cb,62)),e))):De(e.Cb,90)&&e.Db>>16==-23&&e.Cb.Yh()&&(t=e.c,De(t,90)||(t=(Tn(),Kf)),De(n,90)||(n=(Tn(),Kf)),qoe(new Foe(e.Cb,9,10,n,t,f2(du(l(e.Cb,29)),e)))))),e.c}function pAn(e,t,n){var r,a,o,f,g,w,E,C,L;for(n.Ug("Hyperedge merging",1),jEn(e,t),w=new Ua(t.b,0);w.b0,g=HV(t,o),Iye(n?g.b:g.g,t),Z5(g).c.length==1&&Cs(r,g,r.c.b,r.c),a=new ca(o,t),gb(e.o,a),al(e.e.a,o))}function Bmt(e,t){var n,r,a,o,f,g,w;return r=b.Math.abs(mH(e.b).a-mH(t.b).a),g=b.Math.abs(mH(e.b).b-mH(t.b).b),a=0,w=0,n=1,f=1,r>e.b.b/2+t.b.b/2&&(a=b.Math.min(b.Math.abs(e.b.c-(t.b.c+t.b.b)),b.Math.abs(e.b.c+e.b.b-t.b.c)),n=1-a/r),g>e.b.a/2+t.b.a/2&&(w=b.Math.min(b.Math.abs(e.b.d-(t.b.d+t.b.a)),b.Math.abs(e.b.d+e.b.a-t.b.d)),f=1-w/g),o=b.Math.min(n,f),(1-o)*b.Math.sqrt(r*r+g*g)}function vAn(e){var t,n,r,a;for(Ale(e,e.e,e.f,(Sw(),Hb),!0,e.c,e.i),Ale(e,e.e,e.f,Hb,!1,e.c,e.i),Ale(e,e.e,e.f,K6,!0,e.c,e.i),Ale(e,e.e,e.f,K6,!1,e.c,e.i),gAn(e,e.c,e.e,e.f,e.i),r=new Ua(e.i,0);r.b=65;n--)nd[n]=n-65<<24>>24;for(r=122;r>=97;r--)nd[r]=r-97+26<<24>>24;for(a=57;a>=48;a--)nd[a]=a-48+52<<24>>24;for(nd[43]=62,nd[47]=63,o=0;o<=25;o++)N2[o]=65+o&Zs;for(f=26,w=0;f<=51;++f,w++)N2[f]=97+w&Zs;for(e=52,g=0;e<=61;++e,g++)N2[e]=48+g&Zs;N2[62]=43,N2[63]=47}function Fmt(e,t){var n,r,a,o,f,g;return a=y7e(e),g=y7e(t),a==g?e.e==t.e&&e.a<54&&t.a<54?e.ft.f?1:0:(r=e.e-t.e,n=(e.d>0?e.d:b.Math.floor((e.a-1)*Vwt)+1)-(t.d>0?t.d:b.Math.floor((t.a-1)*Vwt)+1),n>r+1?a:n0&&(f=K5(f,Wmt(r))),K1t(o,f))):aE&&(B=0,z+=w+t,w=0),KE(f,B,z),n=b.Math.max(n,B+C.a),w=b.Math.max(w,C.b),B+=C.a+t;return new lt(n+t,z+w+t)}function Eke(e,t){var n,r,a,o,f,g,w;if(!M1(e))throw ue(new nc(t4t));if(r=M1(e),o=r.g,a=r.f,o<=0&&a<=0)return Ct(),Pc;switch(g=e.i,w=e.j,t.g){case 2:case 1:if(g<0)return Ct(),er;if(g+e.g>o)return Ct(),ar;break;case 4:case 3:if(w<0)return Ct(),Qn;if(w+e.f>a)return Ct(),Dr}return f=(g+e.g/2)/o,n=(w+e.f/2)/a,f+n<=1&&f-n<=0?(Ct(),er):f+n>=1&&f-n>=0?(Ct(),ar):n<.5?(Ct(),Qn):(Ct(),Dr)}function xAn(e,t,n,r,a){var o,f;if(o=bo(va(t[0],Vo),va(r[0],Vo)),e[0]=Yr(o),o=bw(o,32),n>=a){for(f=1;f0&&(a.b[f++]=0,a.b[f++]=o.b[0]-1),t=1;t0&&(H(w,w.d-a.d),a.c==(J0(),qb)&&N(w,w.a-a.d),w.d<=0&&w.i>0&&Cs(t,w,t.c.b,t.c)));for(o=new G(e.f);o.a0&&(q(g,g.i-a.d),a.c==(J0(),qb)&&$(g,g.b-a.d),g.i<=0&&g.d>0&&Cs(n,g,n.c.b,n.c)))}function TAn(e,t,n,r,a){var o,f,g,w,E,C,L,B,z;for(Cn(),Vs(e,new tk),f=PO(e),z=new bt,B=new bt,g=null,w=0;f.b!=0;)o=l(f.b==0?null:(mr(f.b!=0),af(f,f.a.a)),163),!g||wl(g)*gh(g)/21&&(w>wl(g)*gh(g)/2||f.b==0)&&(L=new hV(B),C=wl(g)/gh(g),E=Lle(L,t,new A8,n,r,a,C),Oi(Y0(L.e),E),g=L,$n(z.c,L),w=0,B.c.length=0));return ra(z,B),z}function pu(e,t,n,r,a){Vg();var o,f,g,w,E,C,L;if(d5e(e,"src"),d5e(n,"dest"),L=bh(e),w=bh(n),I4e((L.i&4)!=0,"srcType is not an array"),I4e((w.i&4)!=0,"destType is not an array"),C=L.c,f=w.c,I4e(C.i&1?C==f:(f.i&1)==0,"Array types don't match"),lyn(e,t,n,r,a),!(C.i&1)&&L!=w)if(E=jm(e),o=jm(n),qe(e)===qe(n)&&tr;)Ts(o,g,E[--t]);else for(g=r+a;r0),r.a.Xb(r.c=--r.b),L>B+w&&ph(r);for(f=new G(z);f.a0),r.a.Xb(r.c=--r.b)}}function SAn(){Di();var e,t,n,r,a,o;if(upe)return upe;for(e=new _h(4),Ky(e,_b(p0e,!0)),nL(e,_b("M",!0)),nL(e,_b("C",!0)),o=new _h(4),r=0;r<11;r++)Eu(o,r,r);return t=new _h(4),Ky(t,_b("M",!0)),Eu(t,4448,4607),Eu(t,65438,65439),a=new B_(2),Qm(a,e),Qm(a,WM),n=new B_(2),n.Jm(oH(o,_b("L",!0))),n.Jm(t),n=new Ty(3,n),n=new f5e(a,n),upe=n,upe}function Gy(e,t){var n,r,a,o,f,g,w,E;for(n=new RegExp(t,"g"),w=We(zt,dt,2,0,6,1),r=0,E=e,o=null;;)if(g=n.exec(E),g==null||E==""){w[r]=E;break}else f=g.index,w[r]=(Ga(0,f,E.length),E.substr(0,f)),E=tf(E,f+g[0].length,E.length),n.lastIndex=0,o==E&&(w[r]=(Ga(0,1,E.length),E.substr(0,1)),E=(Xn(1,E.length+1),E.substr(1))),o=E,++r;if(e.length>0){for(a=w.length;a>0&&w[a-1]=="";)--a;a0&&(L-=r[0]+e.c,r[0]+=e.c),r[2]>0&&(L-=r[2]+e.c),r[1]=b.Math.max(r[1],L),hH(e.a[1],n.c+t.b+r[0]-(r[1]-L)/2,r[1]);for(o=e.a,g=0,E=o.length;g0?(e.n.c.length-1)*e.i:0,r=new G(e.n);r.a1)for(r=Rr(a,0);r.b!=r.d.c;)for(n=l(Br(r),235),o=0,w=new G(n.e);w.a0&&(t[0]+=e.c,L-=t[0]),t[2]>0&&(L-=t[2]+e.c),t[1]=b.Math.max(t[1],L),fH(e.a[1],r.d+n.d+t[0]-(t[1]-L)/2,t[1]);else for(V=r.d+n.d,z=r.a-n.d-n.a,f=e.a,w=0,C=f.length;w0||Fw(a.b.d,e.b.d+e.b.a)==0&&r.b<0||Fw(a.b.d+a.b.a,e.b.d)==0&&r.b>0){g=0;break}}else g=b.Math.min(g,Bpt(e,a,r));g=b.Math.min(g,zmt(e,o,g,r))}return g}function dP(e,t){var n,r,a,o,f,g,w;if(e.b<2)throw ue(new Yn("The vector chain must contain at least a source and a target point."));for(a=(mr(e.b!=0),l(e.a.a.c,8)),kO(t,a.a,a.b),w=new q8((!t.a&&(t.a=new Ys(qh,t,5)),t.a)),f=Rr(e,1);f.a=0&&o!=n))throw ue(new Yn(WP));for(a=0,w=0;wze(L1(f.g,f.d[0]).a)?(mr(w.b>0),w.a.Xb(w.c=--w.b),by(w,f),a=!0):g.e&&g.e.gc()>0&&(o=(!g.e&&(g.e=new bt),g.e).Mc(t),E=(!g.e&&(g.e=new bt),g.e).Mc(n),(o||E)&&((!g.e&&(g.e=new bt),g.e).Fc(f),++f.c));a||$n(r.c,f)}function OAn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe;return L=e.a.i+e.a.g/2,B=e.a.i+e.a.g/2,V=t.i+t.g/2,te=t.j+t.f/2,g=new lt(V,te),E=l(at(t,(pi(),n9)),8),E.a=E.a+L,E.b=E.b+B,o=(g.b-E.b)/(g.a-E.a),r=g.b-o*g.a,J=n.i+n.g/2,fe=n.j+n.f/2,w=new lt(J,fe),C=l(at(n,n9),8),C.a=C.a+L,C.b=C.b+B,f=(w.b-C.b)/(w.a-C.a),a=w.b-f*w.a,z=(r-a)/(f-o),E.a>>0,"0"+t.toString(16)),r="\\x"+tf(n,n.length-2,n.length)):e>=Io?(n=(t=e>>>0,"0"+t.toString(16)),r="\\v"+tf(n,n.length-6,n.length)):r=""+String.fromCharCode(e&Zs)}return r}function Umt(e){var t,n,r;if(P5(l(Q(e,(Nt(),Ms)),101)))for(n=new G(e.j);n.a=t.o&&n.f<=t.f||t.a*.5<=n.f&&t.a*1.5>=n.f){if(f=l(jt(t.n,t.n.c.length-1),209),f.e+f.d+n.g+a<=r&&(o=l(jt(t.n,t.n.c.length-1),209),o.f-e.f+n.f<=e.b||e.a.c.length==1))return y8e(t,n),!0;if(t.s+n.g<=r&&(t.t+t.d+n.f+a<=e.b||e.a.c.length==1))return vt(t.b,n),g=l(jt(t.n,t.n.c.length-1),209),vt(t.n,new PH(t.s,g.f+g.a+t.i,t.i)),exe(l(jt(t.n,t.n.c.length-1),209),n),jmt(t,n),!0}return!1}function Kmt(e,t,n){var r,a,o,f;return e.Pj()?(a=null,o=e.Qj(),r=e.Ij(1,f=Uoe(e,t,n),n,t,o),e.Mj()&&!(e.Yi()&&f!=null?Pi(f,n):qe(f)===qe(n))?(f!=null&&(a=e.Oj(f,a)),a=e.Nj(n,a),e.Tj()&&(a=e.Wj(f,n,a)),a?(a.nj(r),a.oj()):e.Jj(r)):(e.Tj()&&(a=e.Wj(f,n,a)),a?(a.nj(r),a.oj()):e.Jj(r)),f):(f=Uoe(e,t,n),e.Mj()&&!(e.Yi()&&f!=null?Pi(f,n):qe(f)===qe(n))&&(a=null,f!=null&&(a=e.Oj(f,null)),a=e.Nj(n,a),a&&a.oj()),f)}function $An(e,t){var n,r,a,o,f;if(t.Ug("Path-Like Graph Wrapping",1),e.b.c.length==0){t.Vg();return}if(a=new M9e(e),f=(a.i==null&&(a.i=x7e(a,new Gj)),ze(a.i)*a.f),n=f/(a.i==null&&(a.i=x7e(a,new Gj)),ze(a.i)),a.b>n){t.Vg();return}switch(l(Q(e,(Nt(),hde)),351).g){case 2:o=new Wj;break;case 0:o=new ES;break;default:o=new Yj}if(r=o.og(e,a),!o.pg())switch(l(Q(e,EW),352).g){case 2:r=Fpt(a,r);break;case 1:r=Agt(a,r)}BLn(e,a,r),t.Vg()}function XA(e,t){var n,r,a,o,f,g,w,E;t%=24,e.q.getHours()!=t&&(r=new b.Date(e.q.getTime()),r.setDate(r.getDate()+1),g=e.q.getTimezoneOffset()-r.getTimezoneOffset(),g>0&&(w=g/60|0,E=g%60,a=e.q.getDate(),n=e.q.getHours(),n+w>=24&&++a,o=new b.Date(e.q.getFullYear(),e.q.getMonth(),a,t+w,e.q.getMinutes()+E,e.q.getSeconds(),e.q.getMilliseconds()),e.q.setTime(o.getTime()))),f=e.q.getTime(),e.q.setTime(f+36e5),e.q.getHours()!=t&&e.q.setTime(f)}function zAn(e,t){var n,r,a,o;if(ebn(e.d,e.e),e.c.a.$b(),ze(Ge(Q(t.j,(Nt(),hW))))!=0||ze(Ge(Q(t.j,hW)))!=0)for(n=y6,qe(Q(t.j,yg))!==qe((Ed(),E2))&&rt(t.j,(ft(),jb),(Hn(),!0)),o=l(Q(t.j,nM),17).a,a=0;aa&&++E,vt(f,(Sn(g+E,t.c.length),l(t.c[g+E],17))),w+=(Sn(g+E,t.c.length),l(t.c[g+E],17)).a-r,++n;n=te&&e.e[w.p]>V*e.b||Me>=n*te)&&($n(B.c,g),g=new bt,Ka(f,o),o.a.$b(),E-=C,z=b.Math.max(z,E*e.b+J),E+=Me,Te=Me,Me=0,C=0,J=0);return new ca(z,B)}function dle(e){var t,n,r,a,o,f,g;if(!e.d){if(g=new Jne,t=qM,o=t.a.zc(e,t),o==null){for(r=new or(dc(e));r.e!=r.i.gc();)n=l(gr(r),29),As(g,dle(n));t.a.Bc(e)!=null,t.a.gc()==0}for(f=g.i,a=(!e.q&&(e.q=new nt(Uf,e,11,10)),new or(e.q));a.e!=a.i.gc();++f)l(gr(a),411);As(g,(!e.q&&(e.q=new nt(Uf,e,11,10)),e.q)),Iy(g),e.d=new N5((l(Oe(tt((lb(),Vn).o),9),19),g.i),g.g),e.e=l(g.g,688),e.e==null&&(e.e=X_t),Yl(e).b&=-17}return e.d}function XE(e,t,n,r){var a,o,f,g,w,E;if(E=Wu(e.e.Dh(),t),w=0,a=l(e.g,124),Fo(),l(t,69).xk()){for(f=0;f1||V==-1)if(L=l(J,71),B=l(C,71),L.dc())B.$b();else for(f=!!Ro(t),o=0,g=e.a?L.Kc():L.Ii();g.Ob();)E=l(g.Pb(),58),a=l(B1(e,E),58),a?(f?(w=B.dd(a),w==-1?B.Gi(o,a):o!=w&&B.Ui(o,a)):B.Gi(o,a),++o):e.b&&!f&&(B.Gi(o,E),++o);else J==null?C.Wb(null):(a=B1(e,J),a==null?e.b&&!Ro(t)&&C.Wb(J):C.Wb(a))}function GAn(e,t){var n,r,a,o,f,g,w,E;for(n=new gZ,a=new hr(dr(ka(t).a.Kc(),new j));jr(a);)if(r=l(xr(a),18),!Do(r)&&(g=r.c.i,Bxe(g,SK))){if(E=tke(e,g,SK,CK),E==-1)continue;n.b=b.Math.max(n.b,E),!n.a&&(n.a=new bt),vt(n.a,g)}for(f=new hr(dr(qs(t).a.Kc(),new j));jr(f);)if(o=l(xr(f),18),!Do(o)&&(w=o.d.i,Bxe(w,CK))){if(E=tke(e,w,CK,SK),E==-1)continue;n.d=b.Math.max(n.d,E),!n.c&&(n.c=new bt),vt(n.c,w)}return n}function KAn(e,t,n,r){var a,o,f,g,w,E,C;if(n.d.i!=t.i){for(a=new op(e),x(a,(Zn(),Aa)),rt(a,(ft(),zi),n),rt(a,(Nt(),Ms),(Ra(),Mu)),$n(r.c,a),f=new gu,Mc(f,a),la(f,(Ct(),er)),g=new gu,Mc(g,a),la(g,ar),C=n.d,Fa(n,f),o=new Tw,pc(o,n),rt(o,cc,null),po(o,g),Fa(o,C),E=new Ua(n.b,0);E.b1e6)throw ue(new qz("power of ten too big"));if(e<=Ii)return sx(iP($x[1],t),t);for(r=iP($x[1],Ii),a=r,n=Zc(e-Ii),t=ua(e%Ii);iu(n,Ii)>0;)a=K5(a,r),n=Df(n,Ii);for(a=K5(a,iP($x[1],t)),a=sx(a,Ii),n=Zc(e-Ii);iu(n,Ii)>0;)a=sx(a,Ii),n=Df(n,Ii);return a=sx(a,t),a}function Ymt(e){var t,n,r,a,o,f,g,w,E,C;for(w=new G(e.a);w.aE&&r>E)C=g,E=ze(t.p[g.p])+ze(t.d[g.p])+g.o.b+g.d.a;else{a=!1,n._g()&&n.bh("bk node placement breaks on "+g+" which should have been after "+C);break}if(!a)break}return n._g()&&n.bh(t+" is feasible: "+a),a}function _ke(e,t,n,r){var a,o,f,g,w,E,C,L,B;if(o=new op(e),x(o,(Zn(),Au)),rt(o,(Nt(),Ms),(Ra(),Mu)),a=0,t){for(f=new gu,rt(f,(ft(),zi),t),rt(o,zi,t.i),la(f,(Ct(),er)),Mc(f,o),B=kd(t.e),E=B,C=0,L=E.length;C0){if(a<0&&C.a&&(a=w,o=E[0],r=0),a>=0){if(g=C.b,w==a&&(g-=r++,g==0))return 0;if(!Zvt(t,E,C,g,f)){w=a-1,E[0]=o;continue}}else if(a=-1,!Zvt(t,E,C,0,f))return 0}else{if(a=-1,co(C.c,0)==32){if(L=E[0],eht(t,E),E[0]>L)continue}else if(Ppn(t,C.c,E[0])){E[0]+=C.c.length;continue}return 0}return FDn(f,n)?E[0]:0}function ZAn(e,t,n){var r,a,o,f,g,w,E,C,L,B;for(C=new gH(new Dz(n)),g=We(ih,pg,28,e.f.e.c.length,16,1),l5e(g,g.length),n[t.a]=0,E=new G(e.f.e);E.a=0&&!r6(e,C,L);)--L;a[C]=L}for(z=0;z=0&&!r6(e,g,V);)--g;o[V]=g}for(w=0;wt[B]&&Br[w]&&FU(e,w,B,!1,!0)}function Ake(e){var t,n,r,a,o,f,g,w;n=Rt(Bt(Q(e,(b0(),K7t)))),o=e.a.c.d,g=e.a.d.d,n?(f=md(ma(new lt(g.a,g.b),o),.5),w=md(Ja(e.e),.5),t=ma(Oi(new lt(o.a,o.b),f),w),Fye(e.d,t)):(a=ze(Ge(Q(e.a,n8t))),r=e.d,o.a>=g.a?o.b>=g.b?(r.a=g.a+(o.a-g.a)/2+a,r.b=g.b+(o.b-g.b)/2-a-e.e.b):(r.a=g.a+(o.a-g.a)/2+a,r.b=o.b+(g.b-o.b)/2+a):o.b>=g.b?(r.a=o.a+(g.a-o.a)/2+a,r.b=g.b+(o.b-g.b)/2+a):(r.a=o.a+(g.a-o.a)/2+a,r.b=o.b+(g.b-o.b)/2-a-e.e.b))}function JA(e){var t,n,r,a,o,f,g,w;if(!e.f){if(w=new _I,g=new _I,t=qM,f=t.a.zc(e,t),f==null){for(o=new or(dc(e));o.e!=o.i.gc();)a=l(gr(o),29),As(w,JA(a));t.a.Bc(e)!=null,t.a.gc()==0}for(r=(!e.s&&(e.s=new nt(dl,e,21,17)),new or(e.s));r.e!=r.i.gc();)n=l(gr(r),179),De(n,102)&&qr(g,l(n,19));Iy(g),e.r=new zit(e,(l(Oe(tt((lb(),Vn).o),6),19),g.i),g.g),As(w,e.r),Iy(w),e.f=new N5((l(Oe(tt(Vn.o),5),19),w.i),w.g),Yl(e).b&=-3}return e.f}function Qmt(e){sw(e,new Xm(nw(Zv(tw(ew(new x1,nv),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new z0))),gt(e,nv,_he,It(X_e)),gt(e,nv,Ahe,It(W0e)),gt(e,nv,Ox,It(I7t)),gt(e,nv,Xw,It(Y_e)),gt(e,nv,bEe,It(B7t)),gt(e,nv,mEe,It(P7t)),gt(e,nv,pEe,It(F7t)),gt(e,nv,vEe,It(N7t)),gt(e,nv,CEe,It(O7t)),gt(e,nv,SEe,It(K0e)),gt(e,nv,_Ee,It(W_e)),gt(e,nv,AEe,It(vK))}function zU(){zU=U,bPe=he(le(kf,1),Ad,28,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]),S_t=new RegExp(`[ +\r\f]+`);try{jM=he(le(POn,1),Rn,2114,0,[new KI((iye(),KV("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",MO((zz(),zz(),NL))))),new KI(KV("yyyy-MM-dd'T'HH:mm:ss'.'SSS",MO(NL))),new KI(KV("yyyy-MM-dd'T'HH:mm:ss",MO(NL))),new KI(KV("yyyy-MM-dd'T'HH:mm",MO(NL))),new KI(KV("yyyy-MM-dd",MO(NL)))])}catch(e){if(e=bs(e),!De(e,82))throw ue(e)}}function tLn(e,t){var n,r,a,o;if(a=Jl(e.d,1)!=0,r=cke(e,t),r==0&&Rt(Bt(Q(t.j,(ft(),jb)))))return 0;!Rt(Bt(Q(t.j,(ft(),jb))))&&!Rt(Bt(Q(t.j,j6)))||qe(Q(t.j,(Nt(),yg)))===qe((Ed(),E2))?t.c.mg(t.e,a):a=Rt(Bt(Q(t.j,jb))),cP(e,t,a,!0),Rt(Bt(Q(t.j,j6)))&&rt(t.j,j6,(Hn(),!1)),Rt(Bt(Q(t.j,jb)))&&(rt(t.j,jb,(Hn(),!1)),rt(t.j,j6,!0)),n=cke(e,t);do{if(w7e(e),n==0)return 0;a=!a,o=n,cP(e,t,a,!1),n=cke(e,t)}while(o>n);return o}function Jmt(e,t){var n,r,a,o;if(a=Jl(e.d,1)!=0,r=xU(e,t),r==0&&Rt(Bt(Q(t.j,(ft(),jb)))))return 0;!Rt(Bt(Q(t.j,(ft(),jb))))&&!Rt(Bt(Q(t.j,j6)))||qe(Q(t.j,(Nt(),yg)))===qe((Ed(),E2))?t.c.mg(t.e,a):a=Rt(Bt(Q(t.j,jb))),cP(e,t,a,!0),Rt(Bt(Q(t.j,j6)))&&rt(t.j,j6,(Hn(),!1)),Rt(Bt(Q(t.j,jb)))&&(rt(t.j,jb,(Hn(),!1)),rt(t.j,j6,!0)),n=xU(e,t);do{if(w7e(e),n==0)return 0;a=!a,o=n,cP(e,t,a,!1),n=xU(e,t)}while(o>n);return o}function Lke(e,t,n,r){var a,o,f,g,w,E,C,L,B;return w=ma(new lt(n.a,n.b),e),E=w.a*t.b-w.b*t.a,C=t.a*r.b-t.b*r.a,L=(w.a*r.b-w.b*r.a)/C,B=E/C,C==0?E==0?(a=Oi(new lt(n.a,n.b),md(new lt(r.a,r.b),.5)),o=pb(e,a),f=pb(Oi(new lt(e.a,e.b),t),a),g=b.Math.sqrt(r.a*r.a+r.b*r.b)*.5,o=0&&L<=1&&B>=0&&B<=1?Oi(new lt(e.a,e.b),md(new lt(t.a,t.b),L)):null}function nLn(e,t,n){var r,a,o,f,g;if(r=l(Q(e,(Nt(),J1e)),21),n.a>t.a&&(r.Hc((Ym(),EM))?e.c.a+=(n.a-t.a)/2:r.Hc(TM)&&(e.c.a+=n.a-t.a)),n.b>t.b&&(r.Hc((Ym(),SM))?e.c.b+=(n.b-t.b)/2:r.Hc(CM)&&(e.c.b+=n.b-t.b)),l(Q(e,(ft(),Lu)),21).Hc((Ho(),vf))&&(n.a>t.a||n.b>t.b))for(g=new G(e.a);g.at.a&&(r.Hc((Ym(),EM))?e.c.a+=(n.a-t.a)/2:r.Hc(TM)&&(e.c.a+=n.a-t.a)),n.b>t.b&&(r.Hc((Ym(),SM))?e.c.b+=(n.b-t.b)/2:r.Hc(CM)&&(e.c.b+=n.b-t.b)),l(Q(e,(ft(),Lu)),21).Hc((Ho(),vf))&&(n.a>t.a||n.b>t.b))for(f=new G(e.a);f.a0?e.i:0)>t&&w>0&&(o=0,f+=w+e.i,a=b.Math.max(a,B),r+=w+e.i,w=0,B=0,n&&(++L,vt(e.n,new PH(e.s,f,e.i))),g=0),B+=E.g+(g>0?e.i:0),w=b.Math.max(w,E.f),n&&exe(l(jt(e.n,L),209),E),o+=E.g+(g>0?e.i:0),++g;return a=b.Math.max(a,B),r+=w,n&&(e.r=a,e.d=r,ixe(e.j)),new ef(e.s,e.t,a,r)}function gle(e){var t,n,r,a,o,f,g,w,E,C,L,B;for(e.b=!1,L=gs,w=ia,B=gs,E=ia,r=e.e.a.ec().Kc();r.Ob();)for(n=l(r.Pb(),272),a=n.a,L=b.Math.min(L,a.c),w=b.Math.max(w,a.c+a.b),B=b.Math.min(B,a.d),E=b.Math.max(E,a.d+a.a),f=new G(n.c);f.ae.o.a&&(C=(w-e.o.a)/2,g.b=b.Math.max(g.b,C),g.c=b.Math.max(g.c,C))}}function aLn(e){var t,n,r,a,o,f,g,w;for(o=new Kot,Fln(o,(hx(),dSt)),r=(a=ace(e,We(zt,dt,2,0,6,1)),new kr(new Il(new ase(e,a).b)));r.bg?1:-1:W7e(e.a,t.a,o),a==-1)L=-w,C=f==w?Doe(t.a,g,e.a,o):Ooe(t.a,g,e.a,o);else if(L=f,f==w){if(a==0)return Cd(),BL;C=Doe(e.a,o,t.a,g)}else C=Ooe(e.a,o,t.a,g);return E=new Im(L,C.length,C),iA(E),E}function oLn(e,t){var n,r,a,o;if(o=Pmt(t),!t.c&&(t.c=new nt(Hl,t,9,9)),Is(new bn(null,(!t.c&&(t.c=new nt(Hl,t,9,9)),new kn(t.c,16))),new $We(o)),a=l(Q(o,(ft(),Lu)),21),ZMn(t,a),a.Hc((Ho(),vf)))for(r=new or((!t.c&&(t.c=new nt(Hl,t,9,9)),t.c));r.e!=r.i.gc();)n=l(gr(r),123),ADn(e,t,o,n);return l(at(t,(Nt(),bv)),181).gc()!=0&&_bt(t,o),Rt(Bt(Q(o,XMe)))&&a.Fc(nW),ns(o,CB)&&NJe(new D8e(ze(Ge(Q(o,CB)))),o),qe(at(t,p4))===qe((rp(),A2))?JIn(e,t,o):BIn(e,t,o),o}function cLn(e){var t,n,r,a,o,f,g,w;for(a=new G(e.b);a.a0?tf(n.a,0,o-1):""):(Ga(0,o-1,e.length),e.substr(0,o-1)):n?n.a:e}function uLn(e,t){var n,r,a,o,f,g,w;for(t.Ug("Sort By Input Model "+Q(e,(Nt(),yg)),1),a=0,r=new G(e.b);r.a=e.b.length?(o[a++]=f.b[r++],o[a++]=f.b[r++]):r>=f.b.length?(o[a++]=e.b[n++],o[a++]=e.b[n++]):f.b[r]0?e.i:0)),++t;for(g8e(e.n,w),e.d=n,e.r=r,e.g=0,e.f=0,e.e=0,e.o=gs,e.p=gs,o=new G(e.b);o.a0&&(a=(!e.n&&(e.n=new nt(ec,e,1,7)),l(Oe(e.n,0),135)).a,!a||hi(hi((t.a+=' "',t),a),'"'))),n=(!e.b&&(e.b=new Ln(_r,e,4,7)),!(e.b.i<=1&&(!e.c&&(e.c=new Ln(_r,e,5,8)),e.c.i<=1))),n?t.a+=" [":t.a+=" ",hi(t,Eye(new Zie,new or(e.b))),n&&(t.a+="]"),t.a+=Phe,n&&(t.a+="["),hi(t,Eye(new Zie,new or(e.c))),n&&(t.a+="]"),t.a)}function hLn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn;for(Ze=e.c,ot=t.c,n=gc(Ze.a,e,0),r=gc(ot.a,t,0),Me=l(Rw(e,(qo(),$l)).Kc().Pb(),12),an=l(Rw(e,zu).Kc().Pb(),12),$e=l(Rw(t,$l).Kc().Pb(),12),Bn=l(Rw(t,zu).Kc().Pb(),12),fe=kd(Me.e),St=kd(an.g),Te=kd($e.e),cn=kd(Bn.g),Fy(e,r,ot),f=Te,C=0,V=f.length;CC?new Pm((J0(),E4),n,t,E-C):E>0&&C>0&&(new Pm((J0(),E4),t,n,0),new Pm(E4,n,t,0))),f)}function gLn(e,t,n){var r,a,o;for(e.a=new bt,o=Rr(t.b,0);o.b!=o.d.c;){for(a=l(Br(o),40);l(Q(a,(Hc(),$d)),17).a>e.a.c.length-1;)vt(e.a,new ca(y6,hCe));r=l(Q(a,$d),17).a,n==(Js(),uc)||n==vc?(a.e.aze(Ge(l(jt(e.a,r),42).b))&&ct(l(jt(e.a,r),42),a.e.a+a.f.a)):(a.e.bze(Ge(l(jt(e.a,r),42).b))&&ct(l(jt(e.a,r),42),a.e.b+a.f.b))}}function tvt(e,t,n,r){var a,o,f,g,w,E,C;if(o=zV(r),g=Rt(Bt(Q(r,(Nt(),VMe)))),(g||Rt(Bt(Q(e,bW))))&&!P5(l(Q(e,Ms),101)))a=gx(o),w=vke(e,n,n==(qo(),zu)?a:BN(a));else switch(w=new gu,Mc(w,e),t?(C=w.n,C.a=t.a-e.n.a,C.b=t.b-e.n.b,opt(C,0,0,e.o.a,e.o.b),la(w,kmt(w,o))):(a=gx(o),la(w,n==(qo(),zu)?a:BN(a))),f=l(Q(r,(ft(),Lu)),21),E=w.j,o.g){case 2:case 1:(E==(Ct(),Qn)||E==Dr)&&f.Fc((Ho(),B6));break;case 4:case 3:(E==(Ct(),ar)||E==er)&&f.Fc((Ho(),B6))}return w}function nvt(e,t){var n,r,a,o,f,g;for(f=new qm(new Sr(e.f.b).a);f.b;){if(o=Nw(f),a=l(o.ld(),602),t==1){if(a.Af()!=(Js(),wf)&&a.Af()!=Q1)continue}else if(a.Af()!=(Js(),uc)&&a.Af()!=vc)continue;switch(r=l(l(o.md(),42).b,86),g=l(l(o.md(),42).a,194),n=g.c,a.Af().g){case 2:r.g.c=e.e.a,r.g.b=b.Math.max(1,r.g.b+n);break;case 1:r.g.c=r.g.c+n,r.g.b=b.Math.max(1,r.g.b-n);break;case 4:r.g.d=e.e.b,r.g.a=b.Math.max(1,r.g.a+n);break;case 3:r.g.d=r.g.d+n,r.g.a=b.Math.max(1,r.g.a-n)}}}function pLn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J;for(g=We(Vr,di,28,t.b.c.length,15,1),E=We(l1e,it,273,t.b.c.length,0,1),w=We(wg,m2,10,t.b.c.length,0,1),L=e.a,B=0,z=L.length;B0&&w[r]&&(V=j5(e.b,w[r],a)),J=b.Math.max(J,a.c.c.b+V);for(o=new G(C.e);o.a1)throw ue(new Yn(ZP));w||(o=sg(t,r.Kc().Pb()),f.Fc(o))}return N7e(e,t9e(e,t,n),f)}function HU(e,t,n){var r,a,o,f,g,w,E,C;if(up(e.e,t))w=(Fo(),l(t,69).xk()?new nH(t,e):new yO(t,e)),EU(w.c,w.b),F_(w,l(n,16));else{for(C=Wu(e.e.Dh(),t),r=l(e.g,124),f=0;f"}w!=null&&(t.a+=""+w)}else e.e?(g=e.e.zb,g!=null&&(t.a+=""+g)):(t.a+="?",e.b?(t.a+=" super ",wle(e.b,t)):e.f&&(t.a+=" extends ",wle(e.f,t)))}function xLn(e){e.b=null,e.a=null,e.o=null,e.q=null,e.v=null,e.w=null,e.B=null,e.p=null,e.Q=null,e.R=null,e.S=null,e.T=null,e.U=null,e.V=null,e.W=null,e.bb=null,e.eb=null,e.ab=null,e.H=null,e.db=null,e.c=null,e.d=null,e.f=null,e.n=null,e.r=null,e.s=null,e.u=null,e.G=null,e.J=null,e.e=null,e.j=null,e.i=null,e.g=null,e.k=null,e.t=null,e.F=null,e.I=null,e.L=null,e.M=null,e.O=null,e.P=null,e.$=null,e.N=null,e.Z=null,e.cb=null,e.K=null,e.D=null,e.A=null,e.C=null,e._=null,e.fb=null,e.X=null,e.Y=null,e.gb=!1,e.hb=!1}function kLn(e){var t,n,r,a;if(r=Dle((!e.c&&(e.c=XO(Zc(e.f))),e.c),0),e.e==0||e.a==0&&e.f!=-1&&e.e<0)return r;if(t=y7e(e)<0?1:0,n=e.e,a=(r.length+1+b.Math.abs(ua(e.e)),new S5),t==1&&(a.a+="-"),e.e>0)if(n-=r.length-t,n>=0){for(a.a+="0.";n>lv.length;n-=lv.length)Qit(a,lv);Prt(a,lv,ua(n)),hi(a,(Xn(t,r.length+1),r.substr(t)))}else n=t-n,hi(a,tf(r,t,ua(n))),a.a+=".",hi(a,w5e(r,ua(n)));else{for(hi(a,(Xn(t,r.length+1),r.substr(t)));n<-lv.length;n+=lv.length)Qit(a,lv);Prt(a,lv,ua(-n))}return a.a}function yle(e){var t,n,r,a,o,f,g,w,E;return!(e.k!=(Zn(),Ps)||e.j.c.length<=1||(o=l(Q(e,(Nt(),Ms)),101),o==(Ra(),Mu))||(a=(By(),(e.q?e.q:(Cn(),Cn(),mg))._b(g3)?r=l(Q(e,g3),203):r=l(Q(eo(e),eM),203),r),a==_W)||!(a==G6||a==U6)&&(f=ze(Ge(Py(e,tM))),t=l(Q(e,_B),140),!t&&(t=new n4e(f,f,f,f)),E=Oc(e,(Ct(),er)),w=t.d+t.a+(E.gc()-1)*f,w>e.o.b||(n=Oc(e,ar),g=t.d+t.a+(n.gc()-1)*f,g>e.o.b)))}function ELn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te;t.Ug("Orthogonal edge routing",1),E=ze(Ge(Q(e,(Nt(),V6)))),n=ze(Ge(Q(e,q6))),r=ze(Ge(Q(e,vv))),B=new Hae(0,n),te=0,f=new Ua(e.b,0),g=null,C=null,w=null,L=null;do C=f.b0?(z=(V-1)*n,g&&(z+=r),C&&(z+=r),zt||Rt(Bt(at(w,(z1(),$B)))))&&(a=0,o+=C.b+n,$n(L.c,C),C=new Q5e(o,n),r=new kce(0,C.f,C,n),bV(C,r),a=0),r.b.c.length==0||!Rt(Bt(at(ds(w),(z1(),hge))))&&(w.f>=r.o&&w.f<=r.f||r.a*.5<=w.f&&r.a*1.5>=w.f)?y8e(r,w):(f=new kce(r.s+r.r+n,C.f,C,n),bV(C,f),y8e(f,w)),a=w.i+w.g;return $n(L.c,C),L}function eL(e){var t,n,r,a;if(!(e.b==null||e.b.length<=2)&&!e.a){for(t=0,a=0;a=e.b[a+1])a+=2;else if(n0)for(r=new Ol(l($i(e.a,o),21)),Cn(),Vs(r,new GI(t)),a=new Ua(o.b,0);a.b0&&r>=-6?r>=0?EO(o,n-ua(e.e),String.fromCharCode(46)):(hce(o,t-1,t-1,"0."),EO(o,t+1,If(lv,0,-ua(r)-1))):(n-t>=1&&(EO(o,t,String.fromCharCode(46)),++n),EO(o,n,String.fromCharCode(69)),r>0&&EO(o,++n,String.fromCharCode(43)),EO(o,++n,""+Y_(Zc(r)))),e.g=o.a,e.g))}function OLn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St;r=ze(Ge(Q(t,(Nt(),KMe)))),Ze=l(Q(t,nM),17).a,B=4,a=3,ot=20/Ze,z=!1,w=0,f=Ii;do{for(o=w!=1,L=w!=0,St=0,te=e.a,Te=0,$e=te.length;Te<$e;++Te)V=te[Te],V.f=null,yDn(e,V,o,L,r),St+=b.Math.abs(V.a);do g=oAn(e,t);while(g);for(J=e.a,fe=0,Me=J.length;feZe)?(w=2,f=Ii):w==0?(w=1,f=St):(w=0,f=St)):(z=St>=f||f-St0?1:uw(isNaN(r),isNaN(0)))>=0^(f0(Nd),(b.Math.abs(g)<=Nd||g==0||isNaN(g)&&isNaN(0)?0:g<0?-1:g>0?1:uw(isNaN(g),isNaN(0)))>=0)?b.Math.max(g,r):(f0(Nd),(b.Math.abs(r)<=Nd||r==0||isNaN(r)&&isNaN(0)?0:r<0?-1:r>0?1:uw(isNaN(r),isNaN(0)))>0?b.Math.sqrt(g*g+r*r):-b.Math.sqrt(g*g+r*r))}function Qm(e,t){var n,r,a,o,f,g;if(t){if(!e.a&&(e.a=new jz),e.e==2){Rz(e.a,t);return}if(t.e==1){for(a=0;a=Io?Xo(n,w8e(r)):Uk(n,r&Zs),f=new coe(10,null,0),mgn(e.a,f,g-1)):(n=(f.Mm().length+o,new h_),Xo(n,f.Mm())),t.e==0?(r=t.Km(),r>=Io?Xo(n,w8e(r)):Uk(n,r&Zs)):Xo(n,t.Mm()),l(f,530).b=n.a}}function BLn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te;if(!n.dc()){for(g=0,B=0,r=n.Kc(),V=l(r.Pb(),17).a;g1&&(w=E.Hg(w,e.a,g));return w.c.length==1?l(jt(w,w.c.length-1),238):w.c.length==2?CLn((Sn(0,w.c.length),l(w.c[0],238)),(Sn(1,w.c.length),l(w.c[1],238)),f,o):null}function $Ln(e,t,n){var r,a,o,f,g,w,E;for(n.Ug("Find roots",1),e.a.c.length=0,a=Rr(t.b,0);a.b!=a.d.c;)r=l(Br(a),40),r.b.b==0&&(rt(r,(Qi(),Vb),(Hn(),!0)),vt(e.a,r));switch(e.a.c.length){case 0:o=new xce(0,t,"DUMMY_ROOT"),rt(o,(Qi(),Vb),(Hn(),!0)),rt(o,Nde,!0),ui(t.b,o);break;case 1:break;default:for(f=new xce(0,t,DG),w=new G(e.a);w.a=b.Math.abs(r.b)?(r.b=0,o.d+o.a>f.d&&o.df.c&&o.c0){if(t=new eye(e.i,e.g),n=e.i,o=n<100?null:new nb(n),e.Tj())for(r=0;r0){for(g=e.g,E=e.i,uA(e),o=E<100?null:new nb(E),r=0;r>13|(e.m&15)<<9,a=e.m>>4&8191,o=e.m>>17|(e.h&255)<<5,f=(e.h&1048320)>>8,g=t.l&8191,w=t.l>>13|(t.m&15)<<9,E=t.m>>4&8191,C=t.m>>17|(t.h&255)<<5,L=(t.h&1048320)>>8,cn=n*g,an=r*g,Bn=a*g,jn=o*g,ur=f*g,w!=0&&(an+=n*w,Bn+=r*w,jn+=a*w,ur+=o*w),E!=0&&(Bn+=n*E,jn+=r*E,ur+=a*E),C!=0&&(jn+=n*C,ur+=r*C),L!=0&&(ur+=n*L),z=cn&eh,V=(an&511)<<13,B=z+V,te=cn>>22,fe=an>>9,Te=(Bn&262143)<<4,Me=(jn&31)<<17,J=te+fe+Te+Me,Ze=Bn>>18,ot=jn>>5,St=(ur&4095)<<8,$e=Ze+ot+St,J+=B>>22,B&=eh,$e+=J>>22,J&=eh,$e&=hp,qu(B,J,$e)}function dvt(e){var t,n,r,a,o,f,g;if(g=l(jt(e.j,0),12),g.g.c.length!=0&&g.e.c.length!=0)throw ue(new nc("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(g.g.c.length!=0){for(o=gs,n=new G(g.g);n.a4)if(e.fk(t)){if(e.al()){if(a=l(t,54),r=a.Eh(),w=r==e.e&&(e.ml()?a.yh(a.Fh(),e.il())==e.jl():-1-a.Fh()==e.Lj()),e.nl()&&!w&&!r&&a.Jh()){for(o=0;o0&&gpt(e,g,L);for(a=new G(L);a.ae.d[f.p]&&(n+=f6e(e.b,o)*l(w.b,17).a,gb(e.a,pt(o)));for(;!l_(e.a);)U6e(e.b,l(X8(e.a),17).a)}return n}function ULn(e,t){var n,r,a,o,f,g,w,E,C,L;if(C=l(Q(e,(ft(),Wc)),64),r=l(jt(e.j,0),12),C==(Ct(),Qn)?la(r,Dr):C==Dr&&la(r,Qn),l(Q(t,(Nt(),bv)),181).Hc((mh(),Cv))){if(w=ze(Ge(Q(e,GT))),E=ze(Ge(Q(e,KT))),f=ze(Ge(Q(e,y4))),g=l(Q(t,v4),21),g.Hc((Rl(),vp)))for(n=E,L=e.o.a/2-r.n.a,o=new G(r.f);o.a0&&(E=e.n.a/o);break;case 2:case 4:a=e.i.o.b,a>0&&(E=e.n.b/a)}rt(e,(ft(),l3),E)}if(w=e.o,f=e.a,r)f.a=r.a,f.b=r.b,e.d=!0;else if(t!=Z1&&t!=Wb&&g!=Pc)switch(g.g){case 1:f.a=w.a/2;break;case 2:f.a=w.a,f.b=w.b/2;break;case 3:f.a=w.a/2,f.b=w.b;break;case 4:f.b=w.b/2}else f.a=w.a/2,f.b=w.b/2}function tL(e){var t,n,r,a,o,f,g,w,E,C;if(e.Pj())if(C=e.Ej(),w=e.Qj(),C>0)if(t=new T7e(e.pj()),n=C,o=n<100?null:new nb(n),AO(e,n,t.g),a=n==1?e.Ij(4,Oe(t,0),null,0,w):e.Ij(6,t,null,-1,w),e.Mj()){for(r=new or(t);r.e!=r.i.gc();)o=e.Oj(gr(r),o);o?(o.nj(a),o.oj()):e.Jj(a)}else o?(o.nj(a),o.oj()):e.Jj(a);else AO(e,e.Ej(),e.Fj()),e.Jj(e.Ij(6,(Cn(),_o),null,-1,w));else if(e.Mj())if(C=e.Ej(),C>0){for(g=e.Fj(),E=C,AO(e,C,g),o=E<100?null:new nb(E),r=0;r1&&wl(f)*gh(f)/2>g[0]){for(o=0;og[o];)++o;V=new Zp(J,0,o+1),L=new hV(V),C=wl(f)/gh(f),w=Lle(L,t,new A8,n,r,a,C),Oi(Y0(L.e),w),K8($E(B,L),aT),z=new Zp(J,o+1,J.c.length),cxe(B,z),J.c.length=0,E=0,gst(g,g.length,0)}else te=B.b.c.length==0?null:jt(B.b,0),te!=null&&rce(B,0),E>0&&(g[E]=g[E-1]),g[E]+=wl(f)*gh(f),++E,$n(J.c,f);return J}function QLn(e,t){var n,r,a,o;n=t.b,o=new Ol(n.j),a=0,r=n.j,r.c.length=0,mw(l(zm(e.b,(Ct(),Qn),(Ow(),o3)),15),n),a=zN(o,a,new Gv,r),mw(l(zm(e.b,Qn,Rb),15),n),a=zN(o,a,new bee,r),mw(l(zm(e.b,Qn,a3),15),n),mw(l(zm(e.b,ar,o3),15),n),mw(l(zm(e.b,ar,Rb),15),n),a=zN(o,a,new $j,r),mw(l(zm(e.b,ar,a3),15),n),mw(l(zm(e.b,Dr,o3),15),n),a=zN(o,a,new zj,r),mw(l(zm(e.b,Dr,Rb),15),n),a=zN(o,a,new qj,r),mw(l(zm(e.b,Dr,a3),15),n),mw(l(zm(e.b,er,o3),15),n),a=zN(o,a,new Bj,r),mw(l(zm(e.b,er,Rb),15),n),mw(l(zm(e.b,er,a3),15),n)}function JLn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z;for(g=new G(t);g.a.5?fe-=f*2*(V-.5):V<.5&&(fe+=o*2*(.5-V)),a=g.d.b,fete.a-J-C&&(fe=te.a-J-C),g.n.a=t+fe}}function nMn(e){var t,n,r,a,o;if(r=l(Q(e,(Nt(),Qu)),171),r==(hf(),$b)){for(n=new hr(dr(ka(e).a.Kc(),new j));jr(n);)if(t=l(xr(n),18),!Aut(t))throw ue(new Vp(jhe+HN(e)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."))}else if(r==d4){for(o=new hr(dr(qs(e).a.Kc(),new j));jr(o);)if(a=l(xr(o),18),!Aut(a))throw ue(new Vp(jhe+HN(e)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."))}}function bP(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V;if(e.e&&e.c.c>19&&(t=xE(t),w=!w),f=$Tn(t),o=!1,a=!1,r=!1,e.h==SP&&e.m==0&&e.l==0)if(a=!0,o=!0,f==-1)e=ent((iE(),WSe)),r=!0,w=!w;else return g=D9e(e,f),w&&yce(g),n&&(Nb=qu(0,0,0)),g;else e.h>>19&&(o=!0,e=xE(e),r=!0,w=!w);return f!=-1?pyn(e,f,w,o,n):bxe(e,t)<0?(n&&(o?Nb=xE(e):Nb=qu(e.l,e.m,e.h)),qu(0,0,0)):R_n(r?e:qu(e.l,e.m,e.h),t,w,o,a,n)}function Tle(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V;if(f=e.e,w=t.e,f==0)return t;if(w==0)return e;if(o=e.d,g=t.d,o+g==2)return n=va(e.a[0],Vo),r=va(t.a[0],Vo),f==w?(C=bo(n,r),V=Yr(C),z=Yr(ub(C,32)),z==0?new Qg(f,V):new Im(f,2,he(le(Vr,1),di,28,15,[V,z]))):(Cd(),Aq(f<0?Df(r,n):Df(n,r),0)?kb(f<0?Df(r,n):Df(n,r)):J_(kb(r2(f<0?Df(r,n):Df(n,r)))));if(f==w)B=f,L=o>=g?Ooe(e.a,o,t.a,g):Ooe(t.a,g,e.a,o);else{if(a=o!=g?o>g?1:-1:W7e(e.a,t.a,o),a==0)return Cd(),BL;a==1?(B=f,L=Doe(e.a,o,t.a,g)):(B=w,L=Doe(t.a,g,e.a,o))}return E=new Im(B,L.length,L),iA(E),E}function iMn(e,t){var n,r,a,o,f,g,w;if(!(e.g>t.f||t.g>e.f)){for(n=0,r=0,f=e.w.a.ec().Kc();f.Ob();)a=l(f.Pb(),12),Ice(Ic(he(le(Ea,1),dt,8,0,[a.i.n,a.n,a.a])).b,t.g,t.f)&&++n;for(g=e.r.a.ec().Kc();g.Ob();)a=l(g.Pb(),12),Ice(Ic(he(le(Ea,1),dt,8,0,[a.i.n,a.n,a.a])).b,t.g,t.f)&&--n;for(w=t.w.a.ec().Kc();w.Ob();)a=l(w.Pb(),12),Ice(Ic(he(le(Ea,1),dt,8,0,[a.i.n,a.n,a.a])).b,e.g,e.f)&&++r;for(o=t.r.a.ec().Kc();o.Ob();)a=l(o.Pb(),12),Ice(Ic(he(le(Ea,1),dt,8,0,[a.i.n,a.n,a.a])).b,e.g,e.f)&&--r;n=0)return n;switch(kw(ic(e,n))){case 2:{if(vn("",o2(e,n.qk()).xe())){if(w=HO(ic(e,n)),g=Wk(ic(e,n)),C=P9e(e,t,w,g),C)return C;for(a=hke(e,t),f=0,L=a.gc();f1)throw ue(new Yn(ZP));for(C=Wu(e.e.Dh(),t),r=l(e.g,124),f=0;f1,E=new N1(B.b);Lc(E.a)||Lc(E.b);)w=l(Lc(E.a)?re(E.a):re(E.b),18),L=w.c==B?w.d:w.c,b.Math.abs(Ic(he(le(Ea,1),dt,8,0,[L.i.n,L.n,L.a])).b-f.b)>1&&UCn(e,w,f,o,B)}}function lMn(e){var t,n,r,a,o,f;if(a=new Ua(e.e,0),r=new Ua(e.a,0),e.d)for(n=0;nwfe;){for(o=t,f=0;b.Math.abs(t-o)0),a.a.Xb(a.c=--a.b),CAn(e,e.b-f,o,r,a),mr(a.b0),r.a.Xb(r.c=--r.b)}if(!e.d)for(n=0;n0?(e.f[C.p]=z/(C.e.c.length+C.g.c.length),e.c=b.Math.min(e.c,e.f[C.p]),e.b=b.Math.max(e.b,e.f[C.p])):g&&(e.f[C.p]=z)}}function fMn(e){e.b=null,e.bb=null,e.fb=null,e.qb=null,e.a=null,e.c=null,e.d=null,e.e=null,e.f=null,e.n=null,e.M=null,e.L=null,e.Q=null,e.R=null,e.K=null,e.db=null,e.eb=null,e.g=null,e.i=null,e.j=null,e.k=null,e.gb=null,e.o=null,e.p=null,e.q=null,e.r=null,e.$=null,e.ib=null,e.S=null,e.T=null,e.t=null,e.s=null,e.u=null,e.v=null,e.w=null,e.B=null,e.A=null,e.C=null,e.D=null,e.F=null,e.G=null,e.H=null,e.I=null,e.J=null,e.P=null,e.Z=null,e.U=null,e.V=null,e.W=null,e.X=null,e.Y=null,e._=null,e.ab=null,e.cb=null,e.hb=null,e.nb=null,e.lb=null,e.mb=null,e.ob=null,e.pb=null,e.jb=null,e.kb=null,e.N=!1,e.O=!1}function dMn(e,t,n){var r,a,o,f;for(n.Ug("Graph transformation ("+e.a+")",1),f=_w(t.a),o=new G(t.b);o.a=g.b.c)&&(g.b=t),(!g.c||t.c<=g.c.c)&&(g.d=g.c,g.c=t),(!g.e||t.d>=g.e.d)&&(g.e=t),(!g.f||t.d<=g.f.d)&&(g.f=t);return r=new nU((wE(),s3)),QO(e,M8t,new Il(he(le(fB,1),Rn,382,0,[r]))),f=new nU(o4),QO(e,L8t,new Il(he(le(fB,1),Rn,382,0,[f]))),a=new nU(a4),QO(e,A8t,new Il(he(le(fB,1),Rn,382,0,[a]))),o=new nU(M6),QO(e,_8t,new Il(he(le(fB,1),Rn,382,0,[o]))),Yue(r.c,s3),Yue(a.c,a4),Yue(o.c,M6),Yue(f.c,o4),g.a.c.length=0,ra(g.a,r.c),ra(g.a,lf(a.c)),ra(g.a,o.c),ra(g.a,lf(f.c)),g}function bMn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V;for(t.Ug(Ayt,1),z=ze(Ge(at(e,(ug(),T4)))),f=ze(Ge(at(e,(z1(),wM)))),g=l(at(e,vM),107),v7e((!e.a&&(e.a=new nt(Ai,e,10,11)),e.a)),C=uvt((!e.a&&(e.a=new nt(Ai,e,10,11)),e.a),z,f),!e.a&&(e.a=new nt(Ai,e,10,11)),E=new G(C);E.a0&&(e.a=w+(z-1)*o,t.c.b+=e.a,t.f.b+=e.a)),V.a.gc()!=0&&(B=new Hae(1,o),z=Rke(B,t,V,J,t.f.b+w-t.c.b),z>0&&(t.f.b+=w+(z-1)*o))}function bvt(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e;for(C=ze(Ge(Q(e,(Nt(),b3)))),r=ze(Ge(Q(e,rDe))),B=new EI,rt(B,b3,C+r),E=t,fe=E.d,J=E.c.i,Te=E.d.i,te=oye(J.c),Me=oye(Te.c),a=new bt,L=te;L<=Me;L++)g=new op(e),x(g,(Zn(),Aa)),rt(g,(ft(),zi),E),rt(g,Ms,(Ra(),Mu)),rt(g,kW,B),z=l(jt(e.b,L),30),L==te?Fy(g,z.a.c.length-n,z):Va(g,z),$e=ze(Ge(Q(E,x2))),$e<0&&($e=0,rt(E,x2,$e)),g.o.b=$e,V=b.Math.floor($e/2),f=new gu,la(f,(Ct(),er)),Mc(f,g),f.n.b=V,w=new gu,la(w,ar),Mc(w,g),w.n.b=V,Fa(E,f),o=new Tw,pc(o,E),rt(o,cc,null),po(o,w),Fa(o,fe),s8n(g,E,o),$n(a.c,o),E=o;return a}function Cle(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me;for(w=l(d2(e,(Ct(),er)).Kc().Pb(),12).e,z=l(d2(e,ar).Kc().Pb(),12).g,g=w.c.length,Me=I1(l(jt(e.j,0),12));g-- >0;){for(J=(Sn(0,w.c.length),l(w.c[0],18)),a=(Sn(0,z.c.length),l(z.c[0],18)),Te=a.d.e,o=gc(Te,a,0),$bn(J,a.d,o),po(a,null),Fa(a,null),V=J.a,t&&ui(V,new Eo(Me)),r=Rr(a.a,0);r.b!=r.d.c;)n=l(Br(r),8),ui(V,new Eo(n));for(fe=J.b,B=new G(a.b);B.af)&&na(e.b,l(te.b,18));++g}o=f}}}function Pke(e,t){var n;if(t==null||vn(t,ul)||t.length==0&&e.k!=(g2(),t9))return null;switch(e.k.g){case 1:return QV(t,wT)?(Hn(),ST):QV(t,Ffe)?(Hn(),Pb):null;case 2:try{return pt(Oh(t,lo,Ii))}catch(r){if(r=bs(r),De(r,130))return null;throw ue(r)}case 4:try{return jy(t)}catch(r){if(r=bs(r),De(r,130))return null;throw ue(r)}case 3:return t;case 5:return F0t(e),Xpt(e,t);case 6:return F0t(e),mTn(e,e.a,t);case 7:try{return n=AEn(e),n.cg(t),n}catch(r){if(r=bs(r),De(r,33))return null;throw ue(r)}default:throw ue(new nc("Invalid type set for this layout option."))}}function Bke(e){var t;switch(e.d){case 1:{if(e.Sj())return e.o!=-2;break}case 2:{if(e.Sj())return e.o==-2;break}case 3:case 5:case 4:case 6:case 7:return e.o>-2;default:return!1}switch(t=e.Rj(),e.p){case 0:return t!=null&&Rt(Bt(t))!=I_(e.k,0);case 1:return t!=null&&l(t,222).a!=Yr(e.k)<<24>>24;case 2:return t!=null&&l(t,180).a!=(Yr(e.k)&Zs);case 6:return t!=null&&I_(l(t,168).a,e.k);case 5:return t!=null&&l(t,17).a!=Yr(e.k);case 7:return t!=null&&l(t,191).a!=Yr(e.k)<<16>>16;case 3:return t!=null&&ze(Ge(t))!=e.j;case 4:return t!=null&&l(t,161).a!=e.j;default:return t==null?e.n!=null:!Pi(t,e.n)}}function mP(e,t,n){var r,a,o,f;return e.ol()&&e.nl()&&(f=Fae(e,l(n,58)),qe(f)!==qe(n))?(e.xj(t),e.Dj(t,ylt(e,t,f)),e.al()&&(o=(a=l(n,54),e.ml()?e.kl()?a.Th(e.b,Ro(l(Mn(sl(e.b),e.Lj()),19)).n,l(Mn(sl(e.b),e.Lj()).Hk(),29).kk(),null):a.Th(e.b,ms(a.Dh(),Ro(l(Mn(sl(e.b),e.Lj()),19))),null,null):a.Th(e.b,-1-e.Lj(),null,null)),!l(f,54).Ph()&&(o=(r=l(f,54),e.ml()?e.kl()?r.Rh(e.b,Ro(l(Mn(sl(e.b),e.Lj()),19)).n,l(Mn(sl(e.b),e.Lj()).Hk(),29).kk(),o):r.Rh(e.b,ms(r.Dh(),Ro(l(Mn(sl(e.b),e.Lj()),19))),null,o):r.Rh(e.b,-1-e.Lj(),null,o))),o&&o.oj()),hh(e.b)&&e.Jj(e.Ij(9,n,f,t,!1)),f):n}function mvt(e){var t,n,r,a,o,f,g,w,E,C;for(r=new bt,f=new G(e.e.a);f.a0&&(f=b.Math.max(f,kft(e.C.b+r.d.b,a))),C=r,L=a,B=o;e.C&&e.C.c>0&&(z=B+e.C.c,E&&(z+=C.d.c),f=b.Math.max(f,(A1(),f0(H1),b.Math.abs(L-1)<=H1||L==1||isNaN(L)&&isNaN(1)?0:z/(1-L)))),n.n.b=0,n.a.a=f}function wvt(e,t){var n,r,a,o,f,g,w,E,C,L,B,z;if(n=l(Qo(e.b,t),127),w=l(l($i(e.r,t),21),87),w.dc()){n.n.d=0,n.n.a=0;return}for(E=e.u.Hc((Rl(),vp)),f=0,e.A.Hc((mh(),Cv))&&Wbt(e,t),g=w.Kc(),C=null,B=0,L=0;g.Ob();)r=l(g.Pb(),117),o=ze(Ge(r.b.of((zq(),pK)))),a=r.b.Mf().b,C?(z=L+C.d.a+e.w+r.d.d,f=b.Math.max(f,(A1(),f0(H1),b.Math.abs(B-o)<=H1||B==o||isNaN(B)&&isNaN(o)?0:z/(o-B)))):e.C&&e.C.d>0&&(f=b.Math.max(f,kft(e.C.d+r.d.d,o))),C=r,B=o,L=a;e.C&&e.C.a>0&&(z=L+e.C.a,E&&(z+=C.d.a),f=b.Math.max(f,(A1(),f0(H1),b.Math.abs(B-1)<=H1||B==1||isNaN(B)&&isNaN(1)?0:z/(1-B)))),n.n.d=0,n.a.b=f}function wMn(e,t,n,r,a,o,f,g){var w,E,C,L,B,z,V,J,te,fe;if(V=!1,E=H9e(n.q,t.f+t.b-n.q.f),z=r.f>t.b&&g,fe=a-(n.q.e+E-f),L=(w=ZA(r,fe,!1),w.a),z&&L>r.f)return!1;if(z){for(B=0,te=new G(t.d);te.a=(Sn(o,e.c.length),l(e.c[o],186)).e,!z&&L>t.b&&!C)?!1:((C||z||L<=t.b)&&(C&&L>t.b?(n.d=L,aN(n,spt(n,L))):(Egt(n.q,E),n.c=!0),aN(r,a-(n.s+n.r)),qN(r,n.q.e+n.q.d,t.f),bV(t,r),e.c.length>o&&(UN((Sn(o,e.c.length),l(e.c[o],186)),r),(Sn(o,e.c.length),l(e.c[o],186)).a.c.length==0&&t2(e,o)),V=!0),V)}function yvt(e,t,n){var r,a,o,f,g,w;for(this.g=e,g=t.d.length,w=n.d.length,this.d=We(wg,m2,10,g+w,0,1),f=0;f0?Xoe(this,this.f/this.a):L1(t.g,t.d[0]).a!=null&&L1(n.g,n.d[0]).a!=null?Xoe(this,(ze(L1(t.g,t.d[0]).a)+ze(L1(n.g,n.d[0]).a))/2):L1(t.g,t.d[0]).a!=null?Xoe(this,L1(t.g,t.d[0]).a):L1(n.g,n.d[0]).a!=null&&Xoe(this,L1(n.g,n.d[0]).a)}function yMn(e,t){var n,r,a,o,f,g,w,E,C,L;for(e.a=new Zst(nyn(LM)),r=new G(t.a);r.a=1&&(te-f>0&&L>=0?(w.n.a+=J,w.n.b+=o*f):te-f<0&&C>=0&&(w.n.a+=J*te,w.n.b+=o));e.o.a=t.a,e.o.b=t.b,rt(e,(Nt(),bv),(mh(),r=l(K0(BM),9),new Zh(r,l(c0(r,r.length),9),0)))}function EMn(e,t,n,r,a,o){var f;if(!(t==null||!Hce(t,TPe,CPe)))throw ue(new Yn("invalid scheme: "+t));if(!e&&!(n!=null&&pd(n,cl(35))==-1&&n.length>0&&(Xn(0,n.length),n.charCodeAt(0)!=47)))throw ue(new Yn("invalid opaquePart: "+n));if(e&&!(t!=null&&nO(EY,t.toLowerCase()))&&!(n==null||!Hce(n,$M,zM)))throw ue(new Yn(n5t+n));if(e&&t!=null&&nO(EY,t.toLowerCase())&&!nxn(n))throw ue(new Yn(n5t+n));if(!c5n(r))throw ue(new Yn("invalid device: "+r));if(!Gyn(a))throw f=a==null?"invalid segments: null":"invalid segment: "+qyn(a),ue(new Yn(f));if(!(o==null||pd(o,cl(35))==-1))throw ue(new Yn("invalid query: "+o))}function TMn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe;if(n.Ug("Network simplex layering",1),e.b=t,fe=l(Q(t,(Nt(),nM)),17).a*4,te=e.b.a,te.c.length<1){n.Vg();return}for(o=k_n(e,te),J=null,a=Rr(o,0);a.b!=a.d.c;){for(r=l(Br(a),15),g=fe*ua(b.Math.sqrt(r.gc())),f=F_n(r),ole(n3e(Tun(r3e(bae(f),g),J),!0),n.eh(1)),B=e.b.b,V=new G(f.a);V.a1)for(J=We(Vr,di,28,e.b.b.c.length,15,1),L=0,E=new G(e.b.b);E.a0){JV(e,n,0),n.a+=String.fromCharCode(r),a=G5n(t,o),JV(e,n,a),o+=a-1;continue}r==39?o+10&&V.a<=0){w.c.length=0,$n(w.c,V);break}z=V.i-V.d,z>=g&&(z>g&&(w.c.length=0,g=z),$n(w.c,V))}w.c.length!=0&&(f=l(jt(w,aU(a,w.c.length)),118),Me.a.Bc(f)!=null,f.g=C++,Tke(f,t,n,r),w.c.length=0)}for(te=e.c.length+1,B=new G(e);B.aia||t.o==wv&&C=g&&a<=w)g<=a&&o<=w?(n[C++]=a,n[C++]=o,r+=2):g<=a?(n[C++]=a,n[C++]=w,e.b[r]=w+1,f+=2):o<=w?(n[C++]=g,n[C++]=o,r+=2):(n[C++]=g,n[C++]=w,e.b[r]=w+1);else if(wAb)&&g<10);s3e(e.c,new Y7),Tvt(e),wgn(e.c),gMn(e.f)}function OMn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J;for(n=l(Q(e,(Nt(),Ms)),101),f=e.f,o=e.d,g=f.a+o.b+o.c,w=0-o.d-e.c.b,C=f.b+o.d+o.a-e.c.b,E=new bt,L=new bt,a=new G(t);a.a=2){for(w=Rr(n,0),f=l(Br(w),8),g=l(Br(w),8);g.a0&&SN(E,!0,(Js(),vc)),g.k==(Zn(),Us)&&cat(E),ki(e.f,g,t)}}function BMn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e;for(a=l(Q(e,(Qi(),gM)),27),E=Ii,C=Ii,g=lo,w=lo,Me=Rr(e.b,0);Me.b!=Me.d.c;)fe=l(Br(Me),40),z=fe.e,V=fe.f,E=b.Math.min(E,z.a-V.a/2),C=b.Math.min(C,z.b-V.b/2),g=b.Math.max(g,z.a+V.a/2),w=b.Math.max(w,z.b+V.b/2);for(B=l(at(a,(Hc(),gIe)),107),Te=Rr(e.b,0);Te.b!=Te.d.c;)fe=l(Br(Te),40),L=Q(fe,gM),De(L,207)&&(o=l(L,27),Qh(o,fe.e.a,fe.e.b),aP(o,fe));for(te=Rr(e.a,0);te.b!=te.d.c;)J=l(Br(te),65),r=l(Q(J,gM),74),r&&(t=J.a,n=l6(r,!0,!0),dP(t,n));$e=g-E+(B.b+B.c),f=w-C+(B.d+B.a),Rt(Bt(at(a,(pi(),C4))))||Gw(a,$e,f,!1,!1),Hi(a,t7,$e-(B.b+B.c)),Hi(a,e7,f-(B.d+B.a))}function Svt(e,t){var n,r,a,o,f,g,w,E,C,L;for(w=!0,a=0,E=e.g[t.p],C=t.o.b+e.o,n=e.d[t.p][2],rf(e.b,E,pt(l(jt(e.b,E),17).a-1+n)),rf(e.c,E,ze(Ge(jt(e.c,E)))-C+n*e.f),++E,E>=e.j?(++e.j,vt(e.b,pt(1)),vt(e.c,C)):(r=e.d[t.p][1],rf(e.b,E,pt(l(jt(e.b,E),17).a+1-r)),rf(e.c,E,ze(Ge(jt(e.c,E)))+C-r*e.f)),(e.r==(Nf(),AB)&&(l(jt(e.b,E),17).a>e.k||l(jt(e.b,E-1),17).a>e.k)||e.r==LB&&(ze(Ge(jt(e.c,E)))>e.n||ze(Ge(jt(e.c,E-1)))>e.n))&&(w=!1),f=new hr(dr(ka(t).a.Kc(),new j));jr(f);)o=l(xr(f),18),g=o.c.i,e.g[g.p]==E&&(L=Svt(e,g),a=a+l(L.a,17).a,w=w&&Rt(Bt(L.b)));return e.g[t.p]=E,a=a+e.d[t.p][0],new ca(pt(a),(Hn(),!!w))}function _vt(e,t){var n,r,a,o,f;n=ze(Ge(Q(t,(Nt(),x0)))),n<2&&rt(t,x0,2),r=l(Q(t,Rh),88),r==(Js(),J1)&&rt(t,Rh,zV(t)),a=l(Q(t,Vkt),17),a.a==0?rt(t,(ft(),Xx),new Uce):rt(t,(ft(),Xx),new VH(a.a)),o=Bt(Q(t,ZL)),o==null&&rt(t,ZL,(Hn(),qe(Q(t,bp))===qe((ip(),iC)))),Is(new bn(null,new kn(t.a,16)),new qp(e)),Is(Dc(new bn(null,new kn(t.b,16)),new u5),new n_(e)),f=new xvt(t),rt(t,(ft(),$6),f),qO(e.a),X0(e.a,(uo(),y0),l(Q(t,dv),188)),X0(e.a,vg,l(Q(t,pv),188)),X0(e.a,bu,l(Q(t,JL),188)),X0(e.a,_u,l(Q(t,yW),188)),X0(e.a,mc,B3n(l(Q(t,bp),223))),uye(e.a,DIn(t)),rt(t,K1e,bP(e.a,t))}function Rke(e,t,n,r,a){var o,f,g,w,E,C,L,B,z,V,J,te,fe;for(L=new Pr,f=new bt,Spt(e,n,e.d.Ag(),f,L),Spt(e,r,e.d.Bg(),f,L),e.b=.2*(J=D2t(Dc(new bn(null,new kn(f,16)),new Tte)),te=D2t(Dc(new bn(null,new kn(f,16)),new Cte)),b.Math.min(J,te)),o=0,g=0;g=2&&(fe=X2t(f,!0,B),!e.e&&(e.e=new sXe(e)),q5n(e.e,fe,f,e.b)),Ogt(f,B),qMn(f),z=-1,C=new G(f);C.ag)}function Avt(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te;for(E=gs,C=gs,g=ia,w=ia,B=new G(t.i);B.a-1){for(a=Rr(g,0);a.b!=a.d.c;)r=l(Br(a),131),r.v=f;for(;g.b!=0;)for(r=l(kue(g,0),131),n=new G(r.i);n.a-1){for(o=new G(g);o.a0)&&(Y(w,b.Math.min(w.o,a.o-1)),q(w,w.i-1),w.i==0&&$n(g.c,w))}}function Mvt(e,t,n,r,a){var o,f,g,w;return w=gs,f=!1,g=Lke(e,ma(new lt(t.a,t.b),e),Oi(new lt(n.a,n.b),a),ma(new lt(r.a,r.b),n)),o=!!g&&!(b.Math.abs(g.a-e.a)<=Zw&&b.Math.abs(g.b-e.b)<=Zw||b.Math.abs(g.a-t.a)<=Zw&&b.Math.abs(g.b-t.b)<=Zw),g=Lke(e,ma(new lt(t.a,t.b),e),n,a),g&&((b.Math.abs(g.a-e.a)<=Zw&&b.Math.abs(g.b-e.b)<=Zw)==(b.Math.abs(g.a-t.a)<=Zw&&b.Math.abs(g.b-t.b)<=Zw)||o?w=b.Math.min(w,eA(ma(g,n))):f=!0),g=Lke(e,ma(new lt(t.a,t.b),e),r,a),g&&(f||(b.Math.abs(g.a-e.a)<=Zw&&b.Math.abs(g.b-e.b)<=Zw)==(b.Math.abs(g.a-t.a)<=Zw&&b.Math.abs(g.b-t.b)<=Zw)||o)&&(w=b.Math.min(w,eA(ma(g,r)))),w}function Dvt(e){sw(e,new Xm(Uz(nw(Zv(tw(ew(new x1,Mb),A3t),"Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."),new y1),Yu))),gt(e,Mb,hL,It(lAe)),gt(e,Mb,cG,(Hn(),!0)),gt(e,Mb,x6,It(d8t)),gt(e,Mb,Px,It(g8t)),gt(e,Mb,Nx,It(p8t)),gt(e,Mb,fT,It(f8t)),gt(e,Mb,fL,It(fAe)),gt(e,Mb,dT,It(b8t)),gt(e,Mb,PEe,It(uAe)),gt(e,Mb,FEe,It(oAe)),gt(e,Mb,REe,It(cAe)),gt(e,Mb,jEe,It(hAe)),gt(e,Mb,BEe,It(TK))}function HMn(e){var t,n,r,a,o,f,g,w;for(t=null,r=new G(e);r.a0&&n.c==0&&(!t&&(t=new bt),$n(t.c,n));if(t)for(;t.c.length!=0;){if(n=l(t2(t,0),239),n.b&&n.b.c.length>0){for(o=(!n.b&&(n.b=new bt),new G(n.b));o.agc(e,n,0))return new ca(a,n)}else if(ze(L1(a.g,a.d[0]).a)>ze(L1(n.g,n.d[0]).a))return new ca(a,n)}for(g=(!n.e&&(n.e=new bt),n.e).Kc();g.Ob();)f=l(g.Pb(),239),w=(!f.b&&(f.b=new bt),f.b),Ey(0,w.c.length),x_(w.c,0,n),f.c==w.c.length&&$n(t.c,f)}return null}function VMn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe;for(t.Ug("Interactive crossing minimization",1),f=0,o=new G(e.b);o.a0&&(n+=w.n.a+w.o.a/2,++L),V=new G(w.j);V.a0&&(n/=L),fe=We(Na,Zo,28,r.a.c.length,15,1),g=0,E=new G(r.a);E.a=g&&a<=w)g<=a&&o<=w?r+=2:g<=a?(e.b[r]=w+1,f+=2):o<=w?(n[C++]=a,n[C++]=g-1,r+=2):(n[C++]=a,n[C++]=g-1,e.b[r]=w+1,f+=2);else if(w2?(C=new bt,ra(C,new Zp(fe,1,fe.b)),o=vwt(C,Me+e.a),Te=new Gue(o),pc(Te,t),$n(n.c,Te)):r?Te=l(cr(e.b,cg(t)),272):Te=l(cr(e.b,Eb(t)),272),w=cg(t),r&&(w=Eb(t)),f=H9n(te,w),E=Me+e.a,f.a?(E+=b.Math.abs(te.b-L.b),J=new lt(L.a,(L.b+te.b)/2)):(E+=b.Math.abs(te.a-L.a),J=new lt((L.a+te.a)/2,L.b)),r?ki(e.d,t,new nxe(Te,f,J,E)):ki(e.c,t,new nxe(Te,f,J,E)),ki(e.b,t,Te),V=(!t.n&&(t.n=new nt(ec,t,1,7)),t.n),z=new or(V);z.e!=z.i.gc();)B=l(gr(z),135),a=uP(e,B,!0,0,0),$n(n.c,a)}function UMn(e){var t,n,r,a,o,f,g;if(!e.A.dc()){if(e.A.Hc((mh(),iF))&&(l(Qo(e.b,(Ct(),Qn)),127).k=!0,l(Qo(e.b,Dr),127).k=!0,t=e.q!=(Ra(),Tg)&&e.q!=Mu,_z(l(Qo(e.b,ar),127),t),_z(l(Qo(e.b,er),127),t),_z(e.g,t),e.A.Hc(Cv)&&(l(Qo(e.b,Qn),127).j=!0,l(Qo(e.b,Dr),127).j=!0,l(Qo(e.b,ar),127).k=!0,l(Qo(e.b,er),127).k=!0,e.g.k=!0)),e.A.Hc(rF))for(e.a.j=!0,e.a.k=!0,e.g.j=!0,e.g.k=!0,g=e.B.Hc((Zl(),FM)),a=eue(),o=0,f=a.length;o0),l(C.a.Xb(C.c=--C.b),18));o!=r&&C.b>0;)e.a[o.p]=!0,e.a[r.p]=!0,o=(mr(C.b>0),l(C.a.Xb(C.c=--C.b),18));C.b>0&&ph(C)}}function Ovt(e,t,n){var r,a,o,f,g,w,E,C,L,B,z;if(!e.b)return!1;for(f=null,B=null,w=new Boe(null,null),a=1,w.a[1]=e.b,L=w;L.a[a];)E=a,g=B,B=L,L=L.a[a],r=e.a.Ne(t,L.d),a=r<0?0:1,r==0&&(!n.c||Jc(L.e,n.d))&&(f=L),!(L&&L.b)&&!oy(L.a[a])&&(oy(L.a[1-a])?B=B.a[E]=EV(L,a):oy(L.a[1-a])||(z=B.a[1-E],z&&(!oy(z.a[1-E])&&!oy(z.a[E])?(B.b=!1,z.b=!0,L.b=!0):(o=g.a[1]==B?1:0,oy(z.a[E])?g.a[o]=uct(B,E):oy(z.a[1-E])&&(g.a[o]=EV(B,E)),L.b=g.a[o].b=!0,g.a[o].a[0].b=!1,g.a[o].a[1].b=!1))));return f&&(n.b=!0,n.d=f.e,L!=f&&(C=new Boe(L.d,L.e),Wxn(e,w,f,C),B==f&&(B=C)),B.a[B.a[1]==L?1:0]=L.a[L.a[0]?0:1],--e.c),e.b=w.a[1],e.b&&(e.b.b=!1),n.b}function WMn(e){var t,n,r,a,o,f,g,w,E,C,L,B;for(a=new G(e.a.a.b);a.a0?a-=864e5:a+=864e5,w=new Kye(bo(Zc(t.q.getTime()),a))),C=new S5,E=e.a.length,o=0;o=97&&r<=122||r>=65&&r<=90){for(f=o+1;f=E)throw ue(new Yn("Missing trailing '"));f+1=14&&C<=16))?t.a._b(r)?(n.a?hi(n.a,n.b):n.a=new Th(n.d),N_(n.a,"[...]")):(g=jm(r),E=new U_(t),Jg(n,Pvt(g,E))):De(r,183)?Jg(n,Skn(l(r,183))):De(r,195)?Jg(n,hxn(l(r,195))):De(r,201)?Jg(n,x9n(l(r,201))):De(r,2111)?Jg(n,fxn(l(r,2111))):De(r,53)?Jg(n,Ckn(l(r,53))):De(r,376)?Jg(n,Hkn(l(r,376))):De(r,846)?Jg(n,Tkn(l(r,846))):De(r,109)&&Jg(n,Ekn(l(r,109))):Jg(n,r==null?ul:xc(r));return n.a?n.e.length==0?n.a.a:n.a.a+(""+n.e):n.c}function JE(e,t){var n,r,a,o;o=e.F,t==null?(e.F=null,CE(e,null)):(e.F=(nr(t),t),r=pd(t,cl(60)),r!=-1?(a=(Ga(0,r,t.length),t.substr(0,r)),pd(t,cl(46))==-1&&!vn(a,Cx)&&!vn(a,SL)&&!vn(a,GG)&&!vn(a,_L)&&!vn(a,AL)&&!vn(a,LL)&&!vn(a,ML)&&!vn(a,DL)&&(a=p5t),n=Rq(t,cl(62)),n!=-1&&(a+=""+(Xn(n+1,t.length+1),t.substr(n+1))),CE(e,a)):(a=t,pd(t,cl(46))==-1&&(r=pd(t,cl(91)),r!=-1&&(a=(Ga(0,r,t.length),t.substr(0,r))),!vn(a,Cx)&&!vn(a,SL)&&!vn(a,GG)&&!vn(a,_L)&&!vn(a,AL)&&!vn(a,LL)&&!vn(a,ML)&&!vn(a,DL)?(a=p5t,r!=-1&&(a+=""+(Xn(r,t.length+1),t.substr(r)))):a=t),CE(e,a),a==t&&(e.F=e.D))),e.Db&4&&!(e.Db&1)&&Ni(e,new _a(e,1,5,o,t))}function Bvt(e,t){var n,r,a,o,f,g,w,E,C,L;if(w=t.length-1,g=(Xn(w,t.length),t.charCodeAt(w)),g==93){if(f=pd(t,cl(91)),f>=0)return a=Z4n(e,(Ga(1,f,t.length),t.substr(1,f-1))),C=(Ga(f+1,w,t.length),t.substr(f+1,w-(f+1))),CIn(e,C,a)}else{if(n=-1,ZSe==null&&(ZSe=new RegExp("\\d")),ZSe.test(String.fromCharCode(g))&&(n=h4e(t,cl(46),w-1),n>=0)){r=l(Moe(e,Tht(e,(Ga(1,n,t.length),t.substr(1,n-1))),!1),61),E=0;try{E=Oh((Xn(n+1,t.length+1),t.substr(n+1)),lo,Ii)}catch(B){throw B=bs(B),De(B,130)?(o=B,ue(new nV(o))):ue(B)}if(E>16==-10?n=l(e.Cb,292).Yk(t,n):e.Db>>16==-15&&(!t&&(t=(Tn(),td)),!E&&(E=(Tn(),td)),e.Cb.Yh()&&(w=new Zg(e.Cb,1,13,E,t,f2(Xl(l(e.Cb,62)),e),!1),n?n.nj(w):n=w));else if(De(e.Cb,90))e.Db>>16==-23&&(De(t,90)||(t=(Tn(),Kf)),De(E,90)||(E=(Tn(),Kf)),e.Cb.Yh()&&(w=new Zg(e.Cb,1,10,E,t,f2(du(l(e.Cb,29)),e),!1),n?n.nj(w):n=w));else if(De(e.Cb,457))for(g=l(e.Cb,850),f=(!g.b&&(g.b=new Pz(new Vie)),g.b),o=(r=new qm(new Sr(f.a).a),new Bz(r));o.a.b;)a=l(Nw(o.a).ld(),89),n=ZE(a,SU(a,g),n)}return n}function ZMn(e,t){var n,r,a,o,f,g,w,E,C,L,B;for(f=Rt(Bt(at(e,(Nt(),b4)))),B=l(at(e,v4),21),w=!1,E=!1,L=new or((!e.c&&(e.c=new nt(Hl,e,9,9)),e.c));L.e!=L.i.gc()&&(!w||!E);){for(o=l(gr(L),123),g=0,a=rg(Lh(he(le(Fh,1),Rn,20,0,[(!o.d&&(o.d=new Ln(js,o,8,5)),o.d),(!o.e&&(o.e=new Ln(js,o,7,4)),o.e)])));jr(a)&&(r=l(xr(a),74),C=f&&qw(r)&&Rt(Bt(at(r,gv))),n=gvt((!r.b&&(r.b=new Ln(_r,r,4,7)),r.b),o)?e==ds(bc(l(Oe((!r.c&&(r.c=new Ln(_r,r,5,8)),r.c),0),84))):e==ds(bc(l(Oe((!r.b&&(r.b=new Ln(_r,r,4,7)),r.b),0),84))),!((C||n)&&(++g,g>1))););(g>0||B.Hc((Rl(),vp))&&(!o.n&&(o.n=new nt(ec,o,1,7)),o.n).i>0)&&(w=!0),g>1&&(E=!0)}w&&t.Fc((Ho(),vf)),E&&t.Fc((Ho(),UL))}function Fvt(e){var t,n,r,a,o,f,g,w,E,C,L,B;if(B=l(at(e,(pi(),kv)),21),B.dc())return null;if(g=0,f=0,B.Hc((mh(),iF))){for(C=l(at(e,_M),101),r=2,n=2,a=2,o=2,t=ds(e)?l(at(ds(e),xv),88):l(at(e,xv),88),E=new or((!e.c&&(e.c=new nt(Hl,e,9,9)),e.c));E.e!=E.i.gc();)if(w=l(gr(E),123),L=l(at(w,s7),64),L==(Ct(),Pc)&&(L=Eke(w,t),Hi(w,s7,L)),C==(Ra(),Mu))switch(L.g){case 1:r=b.Math.max(r,w.i+w.g);break;case 2:n=b.Math.max(n,w.j+w.f);break;case 3:a=b.Math.max(a,w.i+w.g);break;case 4:o=b.Math.max(o,w.j+w.f)}else switch(L.g){case 1:r+=w.g+2;break;case 2:n+=w.f+2;break;case 3:a+=w.g+2;break;case 4:o+=w.f+2}g=b.Math.max(r,a),f=b.Math.max(n,o)}return Gw(e,g,f,!0,!0)}function Sle(e,t,n,r,a){var o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e;for(Te=l(yc(lV(Fi(new bn(null,new kn(t.d,16)),new CYe(n)),new SYe(n)),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15),L=Ii,C=lo,w=new G(t.b.j);w.a0,E?E&&(B=fe.p,f?++B:--B,L=l(jt(fe.c.a,B),10),r=o0t(L),z=!(Xue(r,ot,n[0])||Dst(r,ot,n[0]))):z=!0),V=!1,Ze=t.D.i,Ze&&Ze.c&&g.e&&(C=f&&Ze.p>0||!f&&Ze.p=0){for(w=null,g=new Ua(C.a,E+1);g.bf?1:uw(isNaN(0),isNaN(f)))<0&&(f0(Nd),(b.Math.abs(f-1)<=Nd||f==1||isNaN(f)&&isNaN(1)?0:f<1?-1:f>1?1:uw(isNaN(f),isNaN(1)))<0)&&(f0(Nd),(b.Math.abs(0-g)<=Nd||g==0||isNaN(0)&&isNaN(g)?0:0g?1:uw(isNaN(0),isNaN(g)))<0)&&(f0(Nd),(b.Math.abs(g-1)<=Nd||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:uw(isNaN(g),isNaN(1)))<0)),o)}function sDn(e){var t,n,r,a;if(n=e.D!=null?e.D:e.B,t=pd(n,cl(91)),t!=-1){r=(Ga(0,t,n.length),n.substr(0,t)),a=new Up;do a.a+="[";while((t=Nk(n,91,++t))!=-1);vn(r,Cx)?a.a+="Z":vn(r,SL)?a.a+="B":vn(r,GG)?a.a+="C":vn(r,_L)?a.a+="D":vn(r,AL)?a.a+="F":vn(r,LL)?a.a+="I":vn(r,ML)?a.a+="J":vn(r,DL)?a.a+="S":(a.a+="L",a.a+=""+r,a.a+=";");try{return null}catch(o){if(o=bs(o),!De(o,63))throw ue(o)}}else if(pd(n,cl(46))==-1){if(vn(n,Cx))return ih;if(vn(n,SL))return Al;if(vn(n,GG))return kf;if(vn(n,_L))return Na;if(vn(n,AL))return B4;if(vn(n,LL))return Vr;if(vn(n,ML))return nm;if(vn(n,DL))return h7}return null}function aDn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St;for(e.e=t,g=aEn(t),ot=new bt,r=new G(g);r.a=0&&J=E.c.c.length?C=u6e((Zn(),Ps),Aa):C=u6e((Zn(),Aa),Aa),C*=2,o=n.a.g,n.a.g=b.Math.max(o,o+(C-o)),f=n.b.g,n.b.g=b.Math.max(f,f+(C-f)),a=t}}function lDn(e){var t,n,r,a;for(Is(Fi(new bn(null,new kn(e.a.b,16)),new Oj),new aee),U8n(e),Is(Fi(new bn(null,new kn(e.a.b,16)),new oee),new cee),e.c==(ip(),s9)&&(Is(Fi(Dc(new bn(null,new kn(new br(e.f),1)),new uee),new lee),new vYe(e)),Is(Fi(fc(Dc(Dc(new bn(null,new kn(e.d.b,16)),new hee),new Nj),new fee),new Pj),new yYe(e))),a=new lt(gs,gs),t=new lt(ia,ia),r=new G(e.a.b);r.a0&&(t.a+=Co),GU(l(gr(g),167),t);for(t.a+=Phe,w=new q8((!r.c&&(r.c=new Ln(_r,r,5,8)),r.c));w.e!=w.i.gc();)w.e>0&&(t.a+=Co),GU(l(gr(w),167),t);t.a+=")"}}function hDn(e,t,n){var r,a,o,f,g,w,E,C;for(w=new or((!e.a&&(e.a=new nt(Ai,e,10,11)),e.a));w.e!=w.i.gc();)for(g=l(gr(w),27),a=new hr(dr(cp(g).a.Kc(),new j));jr(a);){if(r=l(xr(a),74),!r.b&&(r.b=new Ln(_r,r,4,7)),!(r.b.i<=1&&(!r.c&&(r.c=new Ln(_r,r,5,8)),r.c.i<=1)))throw ue(new I8("Graph must not contain hyperedges."));if(!qA(r)&&g!=bc(l(Oe((!r.c&&(r.c=new Ln(_r,r,5,8)),r.c),0),84)))for(E=new jrt,pc(E,r),rt(E,(bb(),Hx),r),Aie(E,l(hc(zo(n.f,g)),153)),k8(E,l(cr(n,bc(l(Oe((!r.c&&(r.c=new Ln(_r,r,5,8)),r.c),0),84))),153)),vt(t.c,E),f=new or((!r.n&&(r.n=new nt(ec,r,1,7)),r.n));f.e!=f.i.gc();)o=l(gr(f),135),C=new zct(E,o.a),pc(C,o),rt(C,Hx,o),C.e.a=b.Math.max(o.g,1),C.e.b=b.Math.max(o.f,1),Ake(C),vt(t.d,C)}}function fDn(e,t,n){var r,a,o,f,g,w,E,C,L,B;switch(n.Ug("Node promotion heuristic",1),e.i=t,e.r=l(Q(t,(Nt(),zb)),243),e.r!=(Nf(),v3)&&e.r!=x4?jDn(e):hSn(e),C=l(Q(e.i,HMe),17).a,o=new hd,e.r.g){case 2:case 1:QE(e,o);break;case 3:for(e.r=LW,QE(e,o),w=0,g=new G(e.b);g.ae.k&&(e.r=AB,QE(e,o));break;case 4:for(e.r=LW,QE(e,o),E=0,a=new G(e.c);a.ae.n&&(e.r=LB,QE(e,o));break;case 6:B=ua(b.Math.ceil(e.g.length*C/100)),QE(e,new aYe(B));break;case 5:L=ua(b.Math.ceil(e.e*C/100)),QE(e,new oYe(L));break;case 8:xwt(e,!0);break;case 9:xwt(e,!1);break;default:QE(e,o)}e.r!=v3&&e.r!=x4?PCn(e,t):t_n(e,t),n.Vg()}function dDn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me;for(L=e.b,C=new Ua(L,0),by(C,new yu(e)),Te=!1,f=1;C.b0&&(B.d+=C.n.d,B.d+=C.d),B.a>0&&(B.a+=C.n.a,B.a+=C.d),B.b>0&&(B.b+=C.n.b,B.b+=C.d),B.c>0&&(B.c+=C.n.c,B.c+=C.d),B}function jvt(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V;for(B=n.d,L=n.c,o=new lt(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a),f=o.b,E=new G(e.a);E.a0&&(e.c[t.c.p][t.p].d+=Jl(e.i,24)*MP*.07000000029802322-.03500000014901161,e.c[t.c.p][t.p].a=e.c[t.c.p][t.p].d/e.c[t.c.p][t.p].b)}}function bDn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te;for(V=new G(e);V.ar.d,r.d=b.Math.max(r.d,t),g&&n&&(r.d=b.Math.max(r.d,r.a),r.a=r.d+a);break;case 3:n=t>r.a,r.a=b.Math.max(r.a,t),g&&n&&(r.a=b.Math.max(r.a,r.d),r.d=r.a+a);break;case 2:n=t>r.c,r.c=b.Math.max(r.c,t),g&&n&&(r.c=b.Math.max(r.b,r.c),r.b=r.c+a);break;case 4:n=t>r.b,r.b=b.Math.max(r.b,t),g&&n&&(r.b=b.Math.max(r.b,r.c),r.c=r.b+a)}}}function zvt(e,t){var n,r,a,o,f,g,w,E,C;return E="",t.length==0?e.ne(iEe,Rle,-1,-1):(C=$y(t),vn(C.substr(0,3),"at ")&&(C=(Xn(3,C.length+1),C.substr(3))),C=C.replace(/\[.*?\]/g,""),f=C.indexOf("("),f==-1?(f=C.indexOf("@"),f==-1?(E=C,C=""):(E=$y((Xn(f+1,C.length+1),C.substr(f+1))),C=$y((Ga(0,f,C.length),C.substr(0,f))))):(n=C.indexOf(")",f),E=(Ga(f+1,n,C.length),C.substr(f+1,n-(f+1))),C=$y((Ga(0,f,C.length),C.substr(0,f)))),f=pd(C,cl(46)),f!=-1&&(C=(Xn(f+1,C.length+1),C.substr(f+1))),(C.length==0||vn(C,"Anonymous function"))&&(C=Rle),g=Rq(E,cl(58)),a=h4e(E,cl(58),g-1),w=-1,r=-1,o=iEe,g!=-1&&a!=-1&&(o=(Ga(0,a,E.length),E.substr(0,a)),w=irt((Ga(a+1,g,E.length),E.substr(a+1,g-(a+1)))),r=irt((Xn(g+1,E.length+1),E.substr(g+1)))),e.ne(o,C,w,r))}function wDn(e){var t,n,r,a,o,f,g,w,E,C,L;for(E=new G(e);E.a0||C.j==er&&C.e.c.length-C.g.c.length<0)){t=!1;break}for(a=new G(C.g);a.a=E&&Ze>=te&&(B+=V.n.b+J.n.b+J.a.b-$e,++g));if(n)for(f=new G(Te.e);f.a=E&&Ze>=te&&(B+=V.n.b+J.n.b+J.a.b-$e,++g))}g>0&&(ot+=B/g,++z)}z>0?(t.a=a*ot/z,t.g=z):(t.a=0,t.g=0)}function xDn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St;for(o=e.f.b,B=o.a,C=o.b,V=e.e.g,z=e.e.f,F5(e.e,o.a,o.b),ot=B/V,St=C/z,E=new or(EH(e.e));E.e!=E.i.gc();)w=l(gr(E),135),Uu(w,w.i*ot),Gu(w,w.j*St);for(Te=new or(Xae(e.e));Te.e!=Te.i.gc();)fe=l(gr(Te),123),$e=fe.i,Ze=fe.j,$e>0&&Uu(fe,$e*ot),Ze>0&&Gu(fe,Ze*St);for(mA(e.b,new zg),t=new bt,g=new qm(new Sr(e.c).a);g.b;)f=Nw(g),r=l(f.ld(),74),n=l(f.md(),407).a,a=l6(r,!1,!1),L=Ngt(cg(r),QN(a),n),dP(L,a),Me=Kgt(r),Me&&gc(t,Me,0)==-1&&($n(t.c,Me),kat(Me,(mr(L.b!=0),l(L.a.a.c,8)),n));for(te=new qm(new Sr(e.d).a);te.b;)J=Nw(te),r=l(J.ld(),74),n=l(J.md(),407).a,a=l6(r,!1,!1),L=Ngt(Eb(r),AN(QN(a)),n),L=AN(L),dP(L,a),Me=Wgt(r),Me&&gc(t,Me,0)==-1&&($n(t.c,Me),kat(Me,(mr(L.b!=0),l(L.c.b.c,8)),n))}function qvt(e,t,n,r){var a,o,f,g,w;return g=new zke(t),fCn(g,r),a=!0,e&&e.pf((pi(),xv))&&(o=l(e.of((pi(),xv)),88),a=o==(Js(),J1)||o==uc||o==vc),zbt(g,!1),Vu(g.e.Rf(),new v4e(g,!1,a)),uoe(g,g.f,(t1(),Gc),(Ct(),Qn)),uoe(g,g.f,Kc,Dr),uoe(g,g.g,Gc,er),uoe(g,g.g,Kc,ar),bdt(g,Qn),bdt(g,Dr),wat(g,ar),wat(g,er),py(),f=g.A.Hc((mh(),A4))&&g.B.Hc((Zl(),aF))?N1t(g):null,f&&xun(g.a,f),vDn(g),w7n(g),y7n(g),UMn(g),w_n(g),G7n(g),Jce(g,Qn),Jce(g,Dr),XSn(g),wLn(g),n&&(e5n(g),K7n(g),Jce(g,ar),Jce(g,er),w=g.B.Hc((Zl(),FM)),Opt(g,w,Qn),Opt(g,w,Dr),Npt(g,w,ar),Npt(g,w,er),Is(new bn(null,new kn(new gi(g.i),0)),new Fc),Is(Fi(new bn(null,b5e(g.r).a.oc()),new xa),new Ba),oxn(g),g.e.Pf(g.o),Is(new bn(null,b5e(g.r).a.oc()),new ga)),g.o}function kDn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J;for(E=gs,r=new G(e.a.b);r.a1)for(z=new Ike(V,Me,r),to(Me,new Jet(e,z)),$n(f.c,z),L=Me.a.ec().Kc();L.Ob();)C=l(L.Pb(),42),al(o,C.b);if(g.a.gc()>1)for(z=new Ike(V,g,r),to(g,new Zet(e,z)),$n(f.c,z),L=g.a.ec().Kc();L.Ob();)C=l(L.Pb(),42),al(o,C.b)}}function SDn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe;if(J=e.n,te=e.o,B=e.d,L=ze(Ge(Py(e,(Nt(),ode)))),t){for(C=L*(t.gc()-1),z=0,w=t.Kc();w.Ob();)f=l(w.Pb(),10),C+=f.o.a,z=b.Math.max(z,f.o.b);for(fe=J.a-(C-te.a)/2,o=J.b-B.d+z,r=te.a/(t.gc()+1),a=r,g=t.Kc();g.Ob();)f=l(g.Pb(),10),f.n.a=fe,f.n.b=o-f.o.b,fe+=f.o.a+L,E=Q2t(f),E.n.a=f.o.a/2-E.a.a,E.n.b=f.o.b,V=l(Q(f,(ft(),rW)),12),V.e.c.length+V.g.c.length==1&&(V.n.a=a-V.a.a,V.n.b=0,Mc(V,e)),a+=r}if(n){for(C=L*(n.gc()-1),z=0,w=n.Kc();w.Ob();)f=l(w.Pb(),10),C+=f.o.a,z=b.Math.max(z,f.o.b);for(fe=J.a-(C-te.a)/2,o=J.b+te.b+B.a-z,r=te.a/(n.gc()+1),a=r,g=n.Kc();g.Ob();)f=l(g.Pb(),10),f.n.a=fe,f.n.b=o,fe+=f.o.a+L,E=Q2t(f),E.n.a=f.o.a/2-E.a.a,E.n.b=0,V=l(Q(f,(ft(),rW)),12),V.e.c.length+V.g.c.length==1&&(V.n.a=a-V.a.a,V.n.b=te.b,Mc(V,e)),a+=r}}function _Dn(e,t){var n,r,a,o,f,g;if(l(Q(t,(ft(),Lu)),21).Hc((Ho(),vf))){for(g=new G(t.a);g.a=0&&f0&&(l(Qo(e.b,t),127).a.b=n)}function IDn(e,t,n,r){var a,o,f,g,w,E,C,L,B,z,V,J;if(B=ze(Ge(Q(e,(Nt(),GT)))),z=ze(Ge(Q(e,KT))),L=ze(Ge(Q(e,y4))),g=e.o,o=l(jt(e.j,0),12),f=o.n,J=Y9n(o,L),!!J){if(t.Hc((Rl(),vp)))switch(l(Q(e,(ft(),Wc)),64).g){case 1:J.c=(g.a-J.b)/2-f.a,J.d=z;break;case 3:J.c=(g.a-J.b)/2-f.a,J.d=-z-J.a;break;case 2:n&&o.e.c.length==0&&o.g.c.length==0?(C=r?J.a:l(jt(o.f,0),72).o.b,J.d=(g.b-C)/2-f.b):J.d=g.b+z-f.b,J.c=-B-J.b;break;case 4:n&&o.e.c.length==0&&o.g.c.length==0?(C=r?J.a:l(jt(o.f,0),72).o.b,J.d=(g.b-C)/2-f.b):J.d=g.b+z-f.b,J.c=B}else if(t.Hc(Yb))switch(l(Q(e,(ft(),Wc)),64).g){case 1:case 3:J.c=f.a+B;break;case 2:case 4:n&&!o.c?(C=r?J.a:l(jt(o.f,0),72).o.b,J.d=(g.b-C)/2-f.b):J.d=f.b+z}for(a=J.d,E=new G(o.f);E.a=t.length)return{done:!0};var a=t[r++];return{value:[a,n.get(a)],done:!1}}}},LSn()||(e.prototype.createObject=function(){return{}},e.prototype.get=function(t){return this.obj[":"+t]},e.prototype.set=function(t,n){this.obj[":"+t]=n},e.prototype[lhe]=function(t){delete this.obj[":"+t]},e.prototype.keys=function(){var t=[];for(var n in this.obj)n.charCodeAt(0)==58&&t.push(n.substring(1));return t}),e}function Qi(){Qi=U,gM=new Ui(NEe),new vs("DEPTH",pt(0)),Pde=new vs("FAN",pt(0)),nIe=new vs(gyt,pt(0)),Vb=new vs("ROOT",(Hn(),!1)),Rde=new vs("LEFTNEIGHBOR",null),dTt=new vs("RIGHTNEIGHBOR",null),BW=new vs("LEFTSIBLING",null),jde=new vs("RIGHTSIBLING",null),Nde=new vs("DUMMY",!1),new vs("LEVEL",pt(0)),sIe=new vs("REMOVABLE_EDGES",new os),PB=new vs("XCOOR",pt(0)),BB=new vs("YCOOR",pt(0)),FW=new vs("LEVELHEIGHT",0),c1=new vs("LEVELMIN",0),k0=new vs("LEVELMAX",0),Bde=new vs("GRAPH_XMIN",0),Fde=new vs("GRAPH_YMIN",0),rIe=new vs("GRAPH_XMAX",0),iIe=new vs("GRAPH_YMAX",0),tIe=new vs("COMPACT_LEVEL_ASCENSION",!1),Ode=new vs("COMPACT_CONSTRAINTS",new bt),dM=new vs("ID",""),pM=new vs("POSITION",pt(0)),C2=new vs("PRELIM",0),JT=new vs("MODIFIER",0),QT=new Ui(S3t),NB=new Ui(_3t)}function BDn(e){kke();var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te;if(e==null)return null;if(L=e.length*8,L==0)return"";for(g=L%24,z=L/24|0,B=g!=0?z+1:z,o=null,o=We(kf,Ad,28,B*4,15,1),E=0,C=0,t=0,n=0,r=0,f=0,a=0,w=0;w>24,E=(t&3)<<24>>24,V=t&-128?(t>>2^192)<<24>>24:t>>2<<24>>24,J=n&-128?(n>>4^240)<<24>>24:n>>4<<24>>24,te=r&-128?(r>>6^252)<<24>>24:r>>6<<24>>24,o[f++]=N2[V],o[f++]=N2[J|E<<4],o[f++]=N2[C<<2|te],o[f++]=N2[r&63];return g==8?(t=e[a],E=(t&3)<<24>>24,V=t&-128?(t>>2^192)<<24>>24:t>>2<<24>>24,o[f++]=N2[V],o[f++]=N2[E<<4],o[f++]=61,o[f++]=61):g==16&&(t=e[a],n=e[a+1],C=(n&15)<<24>>24,E=(t&3)<<24>>24,V=t&-128?(t>>2^192)<<24>>24:t>>2<<24>>24,J=n&-128?(n>>4^240)<<24>>24:n>>4<<24>>24,o[f++]=N2[V],o[f++]=N2[J|E<<4],o[f++]=N2[C<<2],o[f++]=61),If(o,0,o.length)}function FDn(e,t){var n,r,a,o,f,g,w;if(e.e==0&&e.p>0&&(e.p=-(e.p-1)),e.p>lo&&c6e(t,e.p-Lb),f=t.q.getDate(),YO(t,1),e.k>=0&&C2n(t,e.k),e.c>=0?YO(t,e.c):e.k>=0?(w=new R7e(t.q.getFullYear()-Lb,t.q.getMonth(),35),r=35-w.q.getDate(),YO(t,b.Math.min(r,f))):YO(t,f),e.f<0&&(e.f=t.q.getHours()),e.b>0&&e.f<12&&(e.f+=12),bhn(t,e.f==24&&e.g?0:e.f),e.j>=0&&ovn(t,e.j),e.n>=0&&wvn(t,e.n),e.i>=0&&Qtt(t,bo(mo(KN(Zc(t.q.getTime()),b2),b2),e.i)),e.a&&(a=new Qz,c6e(a,a.q.getFullYear()-Lb-80),fse(Zc(t.q.getTime()),Zc(a.q.getTime()))&&c6e(t,a.q.getFullYear()-Lb+100)),e.d>=0){if(e.c==-1)n=(7+e.d-t.q.getDay())%7,n>3&&(n-=7),g=t.q.getMonth(),YO(t,t.q.getDate()+n),t.q.getMonth()!=g&&YO(t,t.q.getDate()+(n>0?-7:7));else if(t.q.getDay()!=e.d)return!1}return e.o>lo&&(o=t.q.getTimezoneOffset(),Qtt(t,bo(Zc(t.q.getTime()),(e.o-o)*60*b2))),!0}function Kvt(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e;if(a=Q(t,(ft(),zi)),!!De(a,207)){for(V=l(a,27),J=t.e,B=new Eo(t.c),o=t.d,B.a+=o.b,B.b+=o.d,$e=l(at(V,(Nt(),xW)),181),vl($e,(Zl(),uY))&&(z=l(at(V,WMe),107),Tie(z,o.a),mwe(z,o.d),Cie(z,o.b),x8(z,o.c)),n=new bt,C=new G(t.a);C.ar.c.length-1;)vt(r,new ca(y6,hCe));n=l(Q(a,$d),17).a,Ug(l(Q(e,y3),88))?(a.e.aze(Ge((Sn(n,r.c.length),l(r.c[n],42)).b))&&ct((Sn(n,r.c.length),l(r.c[n],42)),a.e.a+a.f.a)):(a.e.bze(Ge((Sn(n,r.c.length),l(r.c[n],42)).b))&&ct((Sn(n,r.c.length),l(r.c[n],42)),a.e.b+a.f.b))}for(o=Rr(e.b,0);o.b!=o.d.c;)a=l(Br(o),40),n=l(Q(a,(Hc(),$d)),17).a,rt(a,(Qi(),c1),Ge((Sn(n,r.c.length),l(r.c[n],42)).a)),rt(a,k0,Ge((Sn(n,r.c.length),l(r.c[n],42)).b));t.Vg()}function jDn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J;for(e.o=ze(Ge(Q(e.i,(Nt(),m3)))),e.f=ze(Ge(Q(e.i,vv))),e.j=e.i.b.c.length,g=e.j-1,B=0,e.k=0,e.n=0,e.b=O1(We(ro,dt,17,e.j,0,1)),e.c=O1(We(ta,dt,345,e.j,7,1)),f=new G(e.i.b);f.a0&&vt(e.q,C),vt(e.p,C);t-=r,z=w+t,E+=t*e.f,rf(e.b,g,pt(z)),rf(e.c,g,E),e.k=b.Math.max(e.k,z),e.n=b.Math.max(e.n,E),e.e+=t,t+=J}}function Ct(){Ct=U;var e;Pc=new wO(cL,0),Qn=new wO(nG,1),ar=new wO(yhe,2),Dr=new wO(xhe,3),er=new wO(khe,4),ed=(Cn(),new Ek((e=l(K0(Oo),9),new Zh(e,l(c0(e,e.length),9),0)))),_0=a2(rs(Qn,he(le(Oo,1),au,64,0,[]))),yf=a2(rs(ar,he(le(Oo,1),au,64,0,[]))),$h=a2(rs(Dr,he(le(Oo,1),au,64,0,[]))),Hf=a2(rs(er,he(le(Oo,1),au,64,0,[]))),hl=a2(rs(Qn,he(le(Oo,1),au,64,0,[Dr]))),Ju=a2(rs(ar,he(le(Oo,1),au,64,0,[er]))),A0=a2(rs(Qn,he(le(Oo,1),au,64,0,[er]))),zl=a2(rs(Qn,he(le(Oo,1),au,64,0,[ar]))),zh=a2(rs(Dr,he(le(Oo,1),au,64,0,[er]))),xf=a2(rs(ar,he(le(Oo,1),au,64,0,[Dr]))),ql=a2(rs(Qn,he(le(Oo,1),au,64,0,[ar,er]))),ll=a2(rs(ar,he(le(Oo,1),au,64,0,[Dr,er]))),fl=a2(rs(Qn,he(le(Oo,1),au,64,0,[Dr,er]))),_l=a2(rs(Qn,he(le(Oo,1),au,64,0,[ar,Dr]))),Du=a2(rs(Qn,he(le(Oo,1),au,64,0,[ar,Dr,er])))}function $Dn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St;for(t.Ug(K3t,1),J=new bt,ot=new bt,E=new G(e.b);E.a0&&(Me-=z),Oke(f,Me),C=0,B=new G(f.a);B.a0),g.a.Xb(g.c=--g.b)),w=.4*r*C,!o&&g.b0&&(w=(Xn(0,t.length),t.charCodeAt(0)),w!=64)){if(w==37&&(L=t.lastIndexOf("%"),E=!1,L!=0&&(L==B-1||(E=(Xn(L+1,t.length),t.charCodeAt(L+1)==46))))){if(f=(Ga(1,L,t.length),t.substr(1,L-1)),Me=vn("%",f)?null:Vke(f),r=0,E)try{r=Oh((Xn(L+2,t.length+1),t.substr(L+2)),lo,Ii)}catch($e){throw $e=bs($e),De($e,130)?(g=$e,ue(new nV(g))):ue($e)}for(te=m7e(e.Gh());te.Ob();)if(V=MV(te),De(V,519)&&(a=l(V,598),Te=a.d,(Me==null?Te==null:vn(Me,Te))&&r--==0))return a;return null}if(C=t.lastIndexOf("."),z=C==-1?t:(Ga(0,C,t.length),t.substr(0,C)),n=0,C!=-1)try{n=Oh((Xn(C+1,t.length+1),t.substr(C+1)),lo,Ii)}catch($e){if($e=bs($e),De($e,130))z=t;else throw ue($e)}for(z=vn("%",z)?null:Vke(z),J=m7e(e.Gh());J.Ob();)if(V=MV(J),De(V,197)&&(o=l(V,197),fe=o.xe(),(z==null?fe==null:vn(z,fe))&&n--==0))return o;return null}return Bvt(e,t)}function WDn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te;for(C=new Pr,w=new Cw,r=new G(e.a.a.b);r.at.d.c){if(z=e.c[t.a.d],te=e.c[L.a.d],z==te)continue;p0(s0(i0(a0(r0(new _f,1),100),z),te))}}}}}function YDn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot;if(B=l(l($i(e.r,t),21),87),t==(Ct(),ar)||t==er){Vvt(e,t);return}for(o=t==Qn?(Pw(),rB):(Pw(),iB),$e=t==Qn?(ol(),a1):(ol(),w0),n=l(Qo(e.b,t),127),r=n.i,a=r.c+Y5(he(le(Na,1),Zo,28,15,[n.n.b,e.C.b,e.k])),fe=r.c+r.b-Y5(he(le(Na,1),Zo,28,15,[n.n.c,e.C.c,e.k])),f=i3e(y4e(o),e.t),Te=t==Qn?ia:gs,L=B.Kc();L.Ob();)E=l(L.Pb(),117),!(!E.c||E.c.d.c.length<=0)&&(te=E.b.Mf(),J=E.e,z=E.c,V=z.i,V.b=(w=z.n,z.e.a+w.b+w.c),V.a=(g=z.n,z.e.b+g.d+g.a),UO($e,yEe),z.f=$e,Z0(z,(Bl(),v0)),V.c=J.a-(V.b-te.a)/2,Ze=b.Math.min(a,J.a),ot=b.Math.max(fe,J.a+te.a),V.cot&&(V.c=ot-V.b),vt(f.d,new Dae(V,h8e(f,V))),Te=t==Qn?b.Math.max(Te,J.b+E.b.Mf().b):b.Math.min(Te,J.b));for(Te+=t==Qn?e.t:-e.t,Me=M8e((f.e=Te,f)),Me>0&&(l(Qo(e.b,t),127).a.b=Me),C=B.Kc();C.Ob();)E=l(C.Pb(),117),!(!E.c||E.c.d.c.length<=0)&&(V=E.c.i,V.c-=E.e.a,V.d-=E.e.b)}function XDn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z;for(t=new Pr,w=new or(e);w.e!=w.i.gc();){for(g=l(gr(w),27),n=new Ks,ki(X0e,g,n),z=new Bp,a=l(yc(new bn(null,new vw(new hr(dr(sP(g).a.Kc(),new j)))),dst(z,Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)])))),85),Kht(n,l(a.xc((Hn(),!0)),16),new Y3),r=l(yc(Fi(l(a.xc(!1),15).Lc(),new $9),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[Ec]))),15),f=r.Kc();f.Ob();)o=l(f.Pb(),74),B=Kgt(o),B&&(E=l(hc(zo(t.f,B)),21),E||(E=bbt(B),ju(t.f,B,E)),Ka(n,E));for(a=l(yc(new bn(null,new vw(new hr(dr(cp(g).a.Kc(),new j)))),dst(z,Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[Ec])))),85),Kht(n,l(a.xc(!0),16),new c5),r=l(yc(Fi(l(a.xc(!1),15).Lc(),new Eh),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[Ec]))),15),L=r.Kc();L.Ob();)C=l(L.Pb(),74),B=Wgt(C),B&&(E=l(hc(zo(t.f,B)),21),E||(E=bbt(B),ju(t.f,B,E)),Ka(n,E))}}function QDn(e,t){ble();var n,r,a,o,f,g,w,E,C,L,B,z,V,J;if(w=iu(e,0)<0,w&&(e=r2(e)),iu(e,0)==0)switch(t){case 0:return"0";case 1:return sT;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return z=new tb,t<0?z.a+="0E+":z.a+="0E",z.a+=t==lo?"2147483648":""+-t,z.a}C=18,L=We(kf,Ad,28,C+1,15,1),n=C,J=e;do E=J,J=KN(J,10),L[--n]=Yr(bo(48,Df(E,mo(J,10))))&Zs;while(iu(J,0)!=0);if(a=Df(Df(Df(C,n),t),1),t==0)return w&&(L[--n]=45),If(L,n,C-n);if(t>0&&iu(a,-6)>=0){if(iu(a,0)>=0){for(o=n+Yr(a),g=C-1;g>=o;g--)L[g+1]=L[g];return L[++o]=46,w&&(L[--n]=45),If(L,n,C-n+1)}for(f=2;fse(f,bo(r2(a),1));f++)L[--n]=48;return L[--n]=46,L[--n]=48,w&&(L[--n]=45),If(L,n,C-n)}return V=n+1,r=C,B=new S5,w&&(B.a+="-"),r-V>=1?(hb(B,L[n]),B.a+=".",B.a+=If(L,n+1,C-n-1)):B.a+=If(L,n,C-n),B.a+="E",iu(a,0)>0&&(B.a+="+"),B.a+=""+Y_(a),B.a}function Gw(e,t,n,r,a){var o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot;if(te=new lt(e.g,e.f),J=a9e(e),J.a=b.Math.max(J.a,t),J.b=b.Math.max(J.b,n),ot=J.a/te.a,C=J.b/te.b,$e=J.a-te.a,w=J.b-te.b,r)for(f=ds(e)?l(at(ds(e),(pi(),xv)),88):l(at(e,(pi(),xv)),88),g=qe(at(e,(pi(),_M)))===qe((Ra(),Mu)),Te=new or((!e.c&&(e.c=new nt(Hl,e,9,9)),e.c));Te.e!=Te.i.gc();)switch(fe=l(gr(Te),123),Me=l(at(fe,s7),64),Me==(Ct(),Pc)&&(Me=Eke(fe,f),Hi(fe,s7,Me)),Me.g){case 1:g||Uu(fe,fe.i*ot);break;case 2:Uu(fe,fe.i+$e),g||Gu(fe,fe.j*C);break;case 3:g||Uu(fe,fe.i*ot),Gu(fe,fe.j+w);break;case 4:g||Gu(fe,fe.j*C)}if(F5(e,J.a,J.b),a)for(B=new or((!e.n&&(e.n=new nt(ec,e,1,7)),e.n));B.e!=B.i.gc();)L=l(gr(B),135),z=L.i+L.g/2,V=L.j+L.f/2,Ze=z/te.a,E=V/te.b,Ze+E>=1&&(Ze-E>0&&V>=0?(Uu(L,L.i+$e),Gu(L,L.j+w*E)):Ze-E<0&&z>=0&&(Uu(L,L.i+$e*Ze),Gu(L,L.j+w)));return Hi(e,(pi(),kv),(mh(),o=l(K0(BM),9),new Zh(o,l(c0(o,o.length),9),0))),new lt(ot,C)}function Qvt(e){sw(e,new Xm(Uz(nw(Zv(tw(ew(new x1,gf),"ELK Radial"),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new fu),gf))),gt(e,gf,_G,It(uCt)),gt(e,gf,Jy,It(lCt)),gt(e,gf,x6,It(sCt)),gt(e,gf,Px,It(aCt)),gt(e,gf,Nx,It(oCt)),gt(e,gf,fT,It(iCt)),gt(e,gf,fL,It(NIe)),gt(e,gf,dT,It(cCt)),gt(e,gf,Cfe,It(Jde)),gt(e,gf,Tfe,It(Zde)),gt(e,gf,NG,It(BIe)),gt(e,gf,Sfe,It(ege)),gt(e,gf,_fe,It(FIe)),gt(e,gf,MCe,It(RIe)),gt(e,gf,LCe,It(PIe)),gt(e,gf,CCe,It(qW)),gt(e,gf,SCe,It(HW)),gt(e,gf,_Ce,It(FB)),gt(e,gf,ACe,It(jIe)),gt(e,gf,TCe,It(OIe))}function KU(e){var t,n,r,a,o,f,g,w,E,C,L;if(e==null)throw ue(new gd(ul));if(E=e,o=e.length,w=!1,o>0&&(t=(Xn(0,e.length),e.charCodeAt(0)),(t==45||t==43)&&(e=(Xn(1,e.length+1),e.substr(1)),--o,w=t==45)),o==0)throw ue(new gd(Yw+E+'"'));for(;e.length>0&&(Xn(0,e.length),e.charCodeAt(0)==48);)e=(Xn(1,e.length+1),e.substr(1)),--o;if(o>(Amt(),b6t)[10])throw ue(new gd(Yw+E+'"'));for(a=0;a0&&(L=-parseInt((Ga(0,r,e.length),e.substr(0,r)),10),e=(Xn(r,e.length+1),e.substr(r)),o-=r,n=!1);o>=f;){if(r=parseInt((Ga(0,f,e.length),e.substr(0,f)),10),e=(Xn(f,e.length+1),e.substr(f)),o-=f,n)n=!1;else{if(iu(L,g)<0)throw ue(new gd(Yw+E+'"'));L=mo(L,C)}L=Df(L,r)}if(iu(L,0)>0)throw ue(new gd(Yw+E+'"'));if(!w&&(L=r2(L),iu(L,0)<0))throw ue(new gd(Yw+E+'"'));return L}function Vke(e){kle();var t,n,r,a,o,f,g,w;if(e==null)return null;if(a=pd(e,cl(37)),a<0)return e;for(w=new Th((Ga(0,a,e.length),e.substr(0,a))),t=We(Al,C6,28,4,15,1),g=0,r=0,f=e.length;aa+2&&mce((Xn(a+1,e.length),e.charCodeAt(a+1)),kPe,EPe)&&mce((Xn(a+2,e.length),e.charCodeAt(a+2)),kPe,EPe))if(n=vdn((Xn(a+1,e.length),e.charCodeAt(a+1)),(Xn(a+2,e.length),e.charCodeAt(a+2))),a+=2,r>0?(n&192)==128?t[g++]=n<<24>>24:r=0:n>=128&&((n&224)==192?(t[g++]=n<<24>>24,r=2):(n&240)==224?(t[g++]=n<<24>>24,r=3):(n&248)==240&&(t[g++]=n<<24>>24,r=4)),r>0){if(g==r){switch(g){case 2:{hb(w,((t[0]&31)<<6|t[1]&63)&Zs);break}case 3:{hb(w,((t[0]&15)<<12|(t[1]&63)<<6|t[2]&63)&Zs);break}}g=0,r=0}}else{for(o=0;o=2){if((!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i==0)n=(rb(),a=new rk,a),qr((!e.a&&(e.a=new nt(cs,e,6,6)),e.a),n);else if((!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i>1)for(B=new q8((!e.a&&(e.a=new nt(cs,e,6,6)),e.a));B.e!=B.i.gc();)jA(B);dP(t,l(Oe((!e.a&&(e.a=new nt(cs,e,6,6)),e.a),0),166))}if(L)for(r=new or((!e.a&&(e.a=new nt(cs,e,6,6)),e.a));r.e!=r.i.gc();)for(n=l(gr(r),166),E=new or((!n.a&&(n.a=new Ys(qh,n,5)),n.a));E.e!=E.i.gc();)w=l(gr(E),377),g.a=b.Math.max(g.a,w.a),g.b=b.Math.max(g.b,w.b);for(f=new or((!e.n&&(e.n=new nt(ec,e,1,7)),e.n));f.e!=f.i.gc();)o=l(gr(f),135),C=l(at(o,MM),8),C&&Qh(o,C.a,C.b),L&&(g.a=b.Math.max(g.a,o.i+o.g),g.b=b.Math.max(g.b,o.j+o.f));return g}function Zvt(e,t,n,r,a){var o,f,g;if(eht(e,t),f=t[0],o=co(n.c,0),g=-1,z7e(n))if(r>0){if(f+r>e.length)return!1;g=kU((Ga(0,f+r,e.length),e.substr(0,f+r)),t)}else g=kU(e,t);switch(o){case 71:return g=o6(e,f,he(le(zt,1),dt,2,6,[Rwt,jwt]),t),a.e=g,!0;case 77:return dSn(e,t,a,g,f);case 76:return gSn(e,t,a,g,f);case 69:return skn(e,t,f,a);case 99:return akn(e,t,f,a);case 97:return g=o6(e,f,he(le(zt,1),dt,2,6,["AM","PM"]),t),a.b=g,!0;case 121:return pSn(e,t,f,g,n,a);case 100:return g<=0?!1:(a.c=g,!0);case 83:return g<0?!1:x5n(g,f,t[0],a);case 104:g==12&&(g=0);case 75:case 72:return g<0?!1:(a.f=g,a.g=!1,!0);case 107:return g<0?!1:(a.f=g,a.g=!0,!0);case 109:return g<0?!1:(a.j=g,!0);case 115:return g<0?!1:(a.n=g,!0);case 90:if(fcn[w]&&(te=w),L=new G(e.a.b);L.a1;){if(a=aCn(t),L=o.g,V=l(at(t,vM),107),J=ze(Ge(at(t,KW))),(!t.a&&(t.a=new nt(Ai,t,10,11)),t.a).i>1&&ze(Ge(at(t,(ug(),cge))))!=gs&&(o.c+(V.b+V.c))/(o.b+(V.d+V.a))1&&ze(Ge(at(t,(ug(),oge))))!=gs&&(o.c+(V.b+V.c))/(o.b+(V.d+V.a))>J&&Hi(a,(ug(),T4),b.Math.max(ze(Ge(at(t,mM))),ze(Ge(at(a,T4)))-ze(Ge(at(t,oge))))),z=new Q3e(r,C),w=wwt(z,a,B),E=w.g,E>=L&&E==E){for(f=0;f<(!a.a&&(a.a=new nt(Ai,a,10,11)),a.a).i;f++)Gpt(e,l(Oe((!a.a&&(a.a=new nt(Ai,a,10,11)),a.a),f),27),l(Oe((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a),f),27));Sht(t,z),l2n(o,w.c),u2n(o,w.b)}--g}Hi(t,(ug(),ZT),o.b),Hi(t,Zx,o.c),n.Vg()}function tIn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te;for(t.Ug("Interactive node layering",1),n=new bt,B=new G(e.a);B.a=g){mr(Te.b>0),Te.a.Xb(Te.c=--Te.b);break}else te.a>w&&(r?(ra(r.b,te.b),r.a=b.Math.max(r.a,te.a),ph(Te)):(vt(te.b,C),te.c=b.Math.min(te.c,w),te.a=b.Math.max(te.a,g),r=te));r||(r=new GQe,r.c=w,r.a=g,by(Te,r),vt(r.b,C))}for(f=e.b,E=0,fe=new G(n);fe.az&&(o&&(ko(ot,B),ko(cn,pt(E.b-1))),oi=n.b,ws+=B+t,B=0,C=b.Math.max(C,n.b+n.c+ur)),Uu(g,oi),Gu(g,ws),C=b.Math.max(C,oi+ur+n.c),B=b.Math.max(B,L),oi+=ur+t;if(C=b.Math.max(C,r),jn=ws+B+n.a,jnDd,an=b.Math.abs(B.b-V.b)>Dd,(!n&&cn&&an||n&&(cn||an))&&ui(te.a,$e)),Ka(te.a,r),r.b==0?B=$e:B=(mr(r.b!=0),l(r.c.b.c,8)),z3n(z,L,J),Cft(a)==St&&(eo(St.i)!=a.a&&(J=new qa,n9e(J,eo(St.i),Te)),rt(te,Y1e,J)),E9n(z,te,Te),C.a.zc(z,C);po(te,Ze),Fa(te,St)}for(E=C.a.ec().Kc();E.Ob();)w=l(E.Pb(),18),po(w,null),Fa(w,null);t.Vg()}function iIn(e,t){var n,r,a,o,f,g,w,E,C,L,B;for(a=l(Q(e,(Hc(),y3)),88),C=a==(Js(),uc)||a==vc?Q1:vc,n=l(yc(Fi(new bn(null,new kn(e.b,16)),new pI),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15),w=l(yc(fc(n.Oc(),new dXe(t)),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[Ec]))),15),w.Gc(l(yc(fc(n.Oc(),new gXe(t)),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[Ec]))),16)),w.jd(new pXe(C)),B=new Kp(new bXe(a)),r=new Pr,g=w.Kc();g.Ob();)f=l(g.Pb(),240),E=l(f.a,40),Rt(Bt(f.c))?(B.a.zc(E,(Hn(),Pb))==null,new ba(B.a.Zc(E,!1)).a.gc()>0&&ki(r,E,l(new ba(B.a.Zc(E,!1)).a.Vc(),40)),new ba(B.a.ad(E,!0)).a.gc()>1&&ki(r,L1t(B,E),E)):(new ba(B.a.Zc(E,!1)).a.gc()>0&&(o=l(new ba(B.a.Zc(E,!1)).a.Vc(),40),qe(o)===qe(hc(zo(r.f,E)))&&l(Q(E,(Qi(),Ode)),15).Fc(o)),new ba(B.a.ad(E,!0)).a.gc()>1&&(L=L1t(B,E),qe(hc(zo(r.f,L)))===qe(E)&&l(Q(L,(Qi(),Ode)),15).Fc(E)),B.a.Bc(E)!=null)}function ewt(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e;if(e.gc()==1)return l(e.Xb(0),235);if(e.gc()<=0)return new KH;for(a=e.Kc();a.Ob();){for(n=l(a.Pb(),235),V=0,C=Ii,L=Ii,w=lo,E=lo,z=new G(n.e);z.ag&&(Me=0,$e+=f+fe,f=0),D_n(J,n,Me,$e),t=b.Math.max(t,Me+te.a),f=b.Math.max(f,te.b),Me+=te.a+fe;return J}function sIn(e){kke();var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te;if(e==null||(o=iV(e),V=O4n(o),V%4!=0))return null;if(J=V/4|0,J==0)return We(Al,C6,28,0,15,1);for(L=null,t=0,n=0,r=0,a=0,f=0,g=0,w=0,E=0,z=0,B=0,C=0,L=We(Al,C6,28,J*3,15,1);z>4)<<24>>24,L[B++]=((n&15)<<4|r>>2&15)<<24>>24,L[B++]=(r<<6|a)<<24>>24}return!eO(f=o[C++])||!eO(g=o[C++])?null:(t=nd[f],n=nd[g],w=o[C++],E=o[C++],nd[w]==-1||nd[E]==-1?w==61&&E==61?n&15?null:(te=We(Al,C6,28,z*3+1,15,1),pu(L,0,te,0,z*3),te[B]=(t<<2|n>>4)<<24>>24,te):w!=61&&E==61?(r=nd[w],r&3?null:(te=We(Al,C6,28,z*3+2,15,1),pu(L,0,te,0,z*3),te[B++]=(t<<2|n>>4)<<24>>24,te[B]=((n&15)<<4|r>>2&15)<<24>>24,te)):null:(r=nd[w],a=nd[E],L[B++]=(t<<2|n>>4)<<24>>24,L[B++]=((n&15)<<4|r>>2&15)<<24>>24,L[B++]=(r<<6|a)<<24>>24,L))}function aIn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze;for(t.Ug(K3t,1),V=l(Q(e,(Nt(),bp)),223),a=new G(e.b);a.a=2){for(J=!0,B=new G(o.j),n=l(re(B),12),z=null;B.a0)if(r=L.gc(),E=ua(b.Math.floor((r+1)/2))-1,a=ua(b.Math.ceil((r+1)/2))-1,t.o==Y1)for(C=a;C>=E;C--)t.a[$e.p]==$e&&(J=l(L.Xb(C),42),V=l(J.a,10),!W0(n,J.b)&&z>e.b.e[V.p]&&(t.a[V.p]=$e,t.g[$e.p]=t.g[V.p],t.a[$e.p]=t.g[$e.p],t.f[t.g[$e.p].p]=(Hn(),!!(Rt(t.f[t.g[$e.p].p])&$e.k==(Zn(),Aa))),z=e.b.e[V.p]));else for(C=E;C<=a;C++)t.a[$e.p]==$e&&(fe=l(L.Xb(C),42),te=l(fe.a,10),!W0(n,fe.b)&&z0&&(a=l(jt(te.c.a,ot-1),10),f=e.i[a.p],cn=b.Math.ceil(j5(e.n,a,te)),o=Ze.a.e-te.d.d-(f.a.e+a.o.b+a.d.a)-cn),E=gs,ot0&&St.a.e.e-St.a.a-(St.b.e.e-St.b.a)<0,V=Me.a.e.e-Me.a.a-(Me.b.e.e-Me.b.a)<0&&St.a.e.e-St.a.a-(St.b.e.e-St.b.a)>0,z=Me.a.e.e+Me.b.aSt.b.e.e+St.a.a,$e=0,!J&&!V&&(B?o+L>0?$e=L:E-r>0&&($e=r):z&&(o+g>0?$e=g:E-Te>0&&($e=Te))),Ze.a.e+=$e,Ze.b&&(Ze.d.e+=$e),!1))}function nwt(e,t,n){var r,a,o,f,g,w,E,C,L,B;if(r=new ef(t.Lf().a,t.Lf().b,t.Mf().a,t.Mf().b),a=new $8,e.c)for(f=new G(t.Rf());f.aE&&(r.a+=Mnt(We(kf,Ad,28,-E,15,1))),r.a+="Is",pd(w,cl(32))>=0)for(a=0;a=r.o.b/2}else Te=!L;Te?(fe=l(Q(r,(ft(),Qx)),15),fe?B?o=fe:(a=l(Q(r,Gx),15),a?fe.gc()<=a.gc()?o=fe:o=a:(o=new bt,rt(r,Gx,o))):(o=new bt,rt(r,Qx,o))):(a=l(Q(r,(ft(),Gx)),15),a?L?o=a:(fe=l(Q(r,Qx),15),fe?a.gc()<=fe.gc()?o=a:o=fe:(o=new bt,rt(r,Qx,o))):(o=new bt,rt(r,Gx,o))),o.Fc(e),rt(e,(ft(),rW),n),t.d==n?(Fa(t,null),n.e.c.length+n.g.c.length==0&&Mc(n,null),Tyn(n)):(po(t,null),n.e.c.length+n.g.c.length==0&&Mc(n,null)),Ch(t.a)}function lIn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur,oi,ws;for(n.Ug("MinWidth layering",1),z=t.b,St=t.a,ws=l(Q(t,(Nt(),zMe)),17).a,g=l(Q(t,qMe),17).a,e.b=ze(Ge(Q(t,x0))),e.d=gs,$e=new G(St);$e.a<$e.c.c.length;)Te=l(re($e),10),Te.k==(Zn(),Ps)&&(Bn=Te.o.b,e.d=b.Math.min(e.d,Bn));for(e.d=b.Math.max(1,e.d),cn=St.c.length,e.c=We(Vr,di,28,cn,15,1),e.f=We(Vr,di,28,cn,15,1),e.e=We(Na,Zo,28,cn,15,1),E=0,e.a=0,Ze=new G(St);Ze.a0?(E=0,te&&(E+=g),E+=(an-1)*f,Me&&(E+=g),cn&&Me&&(E=b.Math.max(E,MCn(Me,f,Te,St))),E=e.a&&(r=GAn(e,Te),C=b.Math.max(C,r.b),$e=b.Math.max($e,r.d),vt(g,new ca(Te,r)));for(cn=new bt,E=0;E0),te.a.Xb(te.c=--te.b),an=new yu(e.b),by(te,an),mr(te.b0){for(B=C<100?null:new nb(C),E=new T7e(t),V=E.g,fe=We(Vr,di,28,C,15,1),r=0,$e=new Lw(C),a=0;a=0;)if(z!=null?Pi(z,V[w]):qe(z)===qe(V[w])){fe.length<=r&&(te=fe,fe=We(Vr,di,28,2*fe.length,15,1),pu(te,0,fe,0,r)),fe[r++]=a,qr($e,V[w]);break e}if(z=z,qe(z)===qe(g))break}}if(E=$e,V=$e.g,C=r,r>fe.length&&(te=fe,fe=We(Vr,di,28,r,15,1),pu(te,0,fe,0,r)),r>0){for(Me=!0,o=0;o=0;)vx(e,fe[f]);if(r!=C){for(a=C;--a>=r;)vx(E,a);te=fe,fe=We(Vr,di,28,r,15,1),pu(te,0,fe,0,r)}t=E}}}else for(t=_7n(e,t),a=e.i;--a>=0;)t.Hc(e.g[a])&&(vx(e,a),Me=!0);if(Me){if(fe!=null){for(n=t.gc(),L=n==1?rA(e,4,t.Kc().Pb(),null,fe[0],J):rA(e,6,t,fe,fe[0],J),B=n<100?null:new nb(n),a=t.Kc();a.Ob();)z=a.Pb(),B=d4e(e,l(z,76),B);B?(B.nj(L),B.oj()):Ni(e.e,L)}else{for(B=Ofn(t.gc()),a=t.Kc();a.Ob();)z=a.Pb(),B=d4e(e,l(z,76),B);B&&B.oj()}return!0}else return!1}function dIn(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me;for(n=new xdt(t),n.a||q_n(t),E=jSn(t),w=new Cw,te=new Ebt,J=new G(t.a);J.a0||n.o==Y1&&a=n}function pIn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur;for(Me=t,Te=new Cw,$e=new Cw,C=Aw(Me,fSe),r=new Mat(e,n,Te,$e),P9n(r.a,r.b,r.c,r.d,C),w=(St=Te.i,St||(Te.i=new q5(Te,Te.c))),an=w.Kc();an.Ob();)for(cn=l(an.Pb(),166),a=l($i(Te,cn),21),J=a.Kc();J.Ob();)if(V=J.Pb(),Ze=l(X5(e.d,V),166),Ze)g=(!cn.e&&(cn.e=new Ln(cs,cn,10,9)),cn.e),qr(g,Ze);else throw f=Yg(Me,Pd),B=y4t+V+x4t+f,z=B+kT,ue(new dd(z));for(E=(ot=$e.i,ot||($e.i=new q5($e,$e.c))),jn=E.Kc();jn.Ob();)for(Bn=l(jn.Pb(),166),o=l($i($e,Bn),21),fe=o.Kc();fe.Ob();)if(te=fe.Pb(),Ze=l(X5(e.d,te),166),Ze)L=(!Bn.g&&(Bn.g=new Ln(cs,Bn,9,10)),Bn.g),qr(L,Ze);else throw f=Yg(Me,Pd),B=y4t+te+x4t+f,z=B+kT,ue(new dd(z));!n.b&&(n.b=new Ln(_r,n,4,7)),n.b.i!=0&&(!n.c&&(n.c=new Ln(_r,n,5,8)),n.c.i!=0)&&(!n.b&&(n.b=new Ln(_r,n,4,7)),n.b.i<=1&&(!n.c&&(n.c=new Ln(_r,n,5,8)),n.c.i<=1))&&(!n.a&&(n.a=new nt(cs,n,6,6)),n.a).i==1&&(ur=l(Oe((!n.a&&(n.a=new nt(cs,n,6,6)),n.a),0),166),!aue(ur)&&!oue(ur)&&(wV(ur,l(Oe((!n.b&&(n.b=new Ln(_r,n,4,7)),n.b),0),84)),yV(ur,l(Oe((!n.c&&(n.c=new Ln(_r,n,5,8)),n.c),0),84))))}function bIn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn;for(Me=e.a,$e=0,Ze=Me.length;$e0?(L=l(jt(B.c.a,f-1),10),cn=j5(e.b,B,L),te=B.n.b-B.d.d-(L.n.b+L.o.b+L.d.a+cn)):te=B.n.b-B.d.d,E=b.Math.min(te,E),f1&&(f=b.Math.min(f,b.Math.abs(l(ff(g.a,1),8).b-C.b)))));else for(J=new G(t.j);J.aa&&(o=B.a-a,f=Ii,r.c.length=0,a=B.a),B.a>=a&&($n(r.c,g),g.a.b>1&&(f=b.Math.min(f,b.Math.abs(l(ff(g.a,g.a.b-2),8).b-B.b)))));if(r.c.length!=0&&o>t.o.a/2&&f>t.o.b/2){for(z=new gu,Mc(z,t),la(z,(Ct(),Qn)),z.n.a=t.o.a/2,fe=new gu,Mc(fe,t),la(fe,Dr),fe.n.a=t.o.a/2,fe.n.b=t.o.b,w=new G(r);w.a=E.b?po(g,fe):po(g,z)):(E=l(odn(g.a),8),te=g.a.b==0?I1(g.c):l(o0(g.a),8),te.b>=E.b?Fa(g,fe):Fa(g,z)),L=l(Q(g,(Nt(),cc)),75),L&&Ny(L,E,!0);t.n.a=a-t.o.a/2}}function vIn(e,t,n){var r,a,o,f,g,w,E,C,L,B;for(g=Rr(e.b,0);g.b!=g.d.c;)if(f=l(Br(g),40),!vn(f.c,DG))for(E=HEn(f,e),t==(Js(),uc)||t==vc?Vs(E,new ene):Vs(E,new tne),w=E.c.length,r=0;r=0?z=gx(g):z=BN(gx(g)),e.qf(VT,z)),E=new qa,B=!1,e.pf(p3)?(Fye(E,l(e.of(p3),8)),B=!0):Ahn(E,f.a/2,f.b/2),z.g){case 4:rt(C,Qu,(hf(),$b)),rt(C,sW,(Vm(),P6)),C.o.b=f.b,J<0&&(C.o.a=-J),la(L,(Ct(),ar)),B||(E.a=f.a),E.a-=f.a;break;case 2:rt(C,Qu,(hf(),d4)),rt(C,sW,(Vm(),FT)),C.o.b=f.b,J<0&&(C.o.a=-J),la(L,(Ct(),er)),B||(E.a=0);break;case 1:rt(C,hv,(ep(),F6)),C.o.a=f.a,J<0&&(C.o.b=-J),la(L,(Ct(),Dr)),B||(E.b=f.b),E.b-=f.b;break;case 3:rt(C,hv,(ep(),Ux)),C.o.a=f.a,J<0&&(C.o.b=-J),la(L,(Ct(),Qn)),B||(E.b=0)}if(Fye(L.n,E),rt(C,p3,E),t==Tv||t==Tg||t==Mu){if(V=0,t==Tv&&e.pf(k2))switch(z.g){case 1:case 2:V=l(e.of(k2),17).a;break;case 3:case 4:V=-l(e.of(k2),17).a}else switch(z.g){case 4:case 2:V=o.b,t==Tg&&(V/=a.b);break;case 1:case 3:V=o.a,t==Tg&&(V/=a.a)}rt(C,l3,V)}return rt(C,Wc,z),C}function wIn(){c3e();function e(r){var a=this;this.dispatch=function(o){var f=o.data;switch(f.cmd){case"algorithms":var g=L8e((Cn(),new $a(new gi(Qb.b))));r.postMessage({id:f.id,data:g});break;case"categories":var w=L8e((Cn(),new $a(new gi(Qb.c))));r.postMessage({id:f.id,data:w});break;case"options":var E=L8e((Cn(),new $a(new gi(Qb.d))));r.postMessage({id:f.id,data:E});break;case"register":kMn(f.algorithms),r.postMessage({id:f.id});break;case"layout":QAn(f.graph,f.layoutOptions||{},f.options||{}),r.postMessage({id:f.id,data:f.graph});break}},this.saveDispatch=function(o){try{a.dispatch(o)}catch(f){r.postMessage({id:o.data.id,error:f})}}}function t(r){var a=this;this.dispatcher=new e({postMessage:function(o){a.onmessage({data:o})}}),this.postMessage=function(o){setTimeout(function(){a.dispatcher.saveDispatch({data:o})},0)}}if(typeof document===ghe&&typeof self!==ghe){var n=new e(self);self.onmessage=n.saveDispatch}else typeof d!==ghe&&d.exports&&(Object.defineProperty(p,"__esModule",{value:!0}),d.exports={default:t,Worker:t})}function cwt(e,t,n){var r,a,o,f,g,w,E,C,L,B;for(C=new op(n),pc(C,t),rt(C,(ft(),zi),t),C.o.a=t.g,C.o.b=t.f,C.n.a=t.i,C.n.b=t.j,vt(n.a,C),ki(e.a,t,C),((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a).i!=0||Rt(Bt(at(t,(Nt(),b4)))))&&rt(C,FLe,(Hn(),!0)),E=l(Q(n,Lu),21),L=l(Q(C,(Nt(),Ms)),101),L==(Ra(),Wb)?rt(C,Ms,Z1):L!=Z1&&E.Fc((Ho(),$T)),B=0,r=l(Q(n,Rh),88),w=new or((!t.c&&(t.c=new nt(Hl,t,9,9)),t.c));w.e!=w.i.gc();)g=l(gr(w),123),a=ds(t),(qe(at(a,yg))!==qe((Ed(),E2))||qe(at(a,dv))===qe((l2(),BT))||qe(at(a,dv))===qe((l2(),PT))||Rt(Bt(at(a,f3)))||qe(at(a,g4))!==qe((Km(),c4))||qe(at(a,zb))===qe((Nf(),v3))||qe(at(a,zb))===qe((Nf(),x4))||qe(at(a,pv))===qe((p2(),WT))||qe(at(a,pv))===qe((p2(),YT)))&&!Rt(Bt(at(t,fW)))&&Hi(g,Ki,pt(B++)),Rt(Bt(at(g,mv)))||LDn(e,g,C,E,r,L);for(f=new or((!t.n&&(t.n=new nt(ec,t,1,7)),t.n));f.e!=f.i.gc();)o=l(gr(f),135),!Rt(Bt(at(o,mv)))&&o.a&&vt(C.b,Oce(o));return Rt(Bt(Q(C,QL)))&&E.Fc((Ho(),eW)),Rt(Bt(Q(C,bW)))&&(E.Fc((Ho(),tW)),E.Fc(UL),rt(C,Ms,Z1)),C}function Lle(e,t,n,r,a,o,f){var g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur,oi,ws;for(J=0,Bn=0,E=new G(e.b);E.aJ&&(o&&(ko(ot,z),ko(cn,pt(C.b-1)),vt(e.d,V),g.c.length=0),oi=n.b,ws+=z+t,z=0,L=b.Math.max(L,n.b+n.c+ur)),$n(g.c,w),ddt(w,oi,ws),L=b.Math.max(L,oi+ur+n.c),z=b.Math.max(z,B),oi+=ur+t,V=w;if(ra(e.a,g),vt(e.d,l(jt(g,g.c.length-1),163)),L=b.Math.max(L,r),jn=ws+z+n.a,jna.d.d+a.d.a?C.f.d=!0:(C.f.d=!0,C.f.a=!0))),r.b!=r.d.c&&(t=n);C&&(o=l(cr(e.f,f.d.i),60),t.bo.d.d+o.d.a?C.f.d=!0:(C.f.d=!0,C.f.a=!0))}for(g=new hr(dr(ka(z).a.Kc(),new j));jr(g);)f=l(xr(g),18),f.a.b!=0&&(t=l(o0(f.a),8),f.d.j==(Ct(),Qn)&&(te=new QA(t,new lt(t.a,a.d.d),a,f),te.f.a=!0,te.a=f.d,$n(J.c,te)),f.d.j==Dr&&(te=new QA(t,new lt(t.a,a.d.d+a.d.a),a,f),te.f.d=!0,te.a=f.d,$n(J.c,te)))}return J}function CIn(e,t,n){var r,a,o,f,g,w,E,C,L,B;for(w=new bt,L=t.length,f=$7e(n),E=0;E=V&&(Te>V&&(z.c.length=0,V=Te),$n(z.c,f));z.c.length!=0&&(B=l(jt(z,aU(t,z.c.length)),131),jn.a.Bc(B)!=null,B.s=J++,R9e(B,an,ot),z.c.length=0)}for($e=e.c.length+1,g=new G(e);g.aBn.s&&(ph(n),al(Bn.i,r),r.c>0&&(r.a=Bn,vt(Bn.t,r),r.b=St,vt(St.i,r)))}function uwt(e,t,n,r,a){var o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn;for(J=new Bu(t.b),$e=new Bu(t.b),B=new Bu(t.b),cn=new Bu(t.b),te=new Bu(t.b),St=Rr(t,0);St.b!=St.d.c;)for(Ze=l(Br(St),12),g=new G(Ze.g);g.a0,fe=Ze.g.c.length>0,E&&fe?$n(B.c,Ze):E?$n(J.c,Ze):fe&&$n($e.c,Ze);for(V=new G(J);V.aTe.nh()-E.b&&(B=Te.nh()-E.b),z>Te.oh()-E.d&&(z=Te.oh()-E.d),C0){for(Me=Rr(e.f,0);Me.b!=Me.d.c;)Te=l(Br(Me),10),Te.p+=B-e.e;r9e(e),Ch(e.f),J9e(e,r,z)}else{for(ui(e.f,z),z.p=r,e.e=b.Math.max(e.e,r),o=new hr(dr(ka(z).a.Kc(),new j));jr(o);)a=l(xr(o),18),!a.c.i.c&&a.c.i.k==(Zn(),cu)&&(ui(e.f,a.c.i),a.c.i.p=r-1);e.c=r}else r9e(e),Ch(e.f),r=0,jr(new hr(dr(ka(z).a.Kc(),new j)))?(B=0,B=vdt(B,z),r=B+2,J9e(e,r,z)):(ui(e.f,z),z.p=0,e.e=b.Math.max(e.e,0),e.b=l(jt(e.d.b,0),30),e.c=0);for(e.f.b==0||r9e(e),e.d.a.c.length=0,fe=new bt,E=new G(e.d.b);E.a=48&&t<=57){for(r=t-48;a=48&&t<=57;)if(r=r*10+t-48,r<0)throw ue(new ri(ai((Jr(),CSe))))}else throw ue(new ri(ai((Jr(),K4t))));if(n=r,t==44){if(a>=e.j)throw ue(new ri(ai((Jr(),Y4t))));if((t=co(e.i,a++))>=48&&t<=57){for(n=t-48;a=48&&t<=57;)if(n=n*10+t-48,n<0)throw ue(new ri(ai((Jr(),CSe))));if(r>n)throw ue(new ri(ai((Jr(),X4t))))}else n=-1}if(t!=125)throw ue(new ri(ai((Jr(),W4t))));e.bm(a)?(o=(Di(),Di(),new Ty(9,o)),e.d=a+1):(o=(Di(),Di(),new Ty(3,o)),e.d=a),o.Om(r),o.Nm(n),Li(e)}}return o}function DIn(e){var t,n,r,a,o;switch(n=l(Q(e,(ft(),Lu)),21),t=Oq(v8t),a=l(Q(e,(Nt(),p4)),346),a==(rp(),A2)&&Dh(t,w8t),Rt(Bt(Q(e,ide)))?fi(t,(uo(),y0),(vo(),d1e)):fi(t,(uo(),bu),(vo(),d1e)),Q(e,(QH(),kM))!=null&&Dh(t,y8t),(Rt(Bt(Q(e,RMe)))||Rt(Bt(Q(e,NMe))))&&yl(t,(uo(),mc),(vo(),OAe)),l(Q(e,Rh),88).g){case 2:case 3:case 4:yl(fi(t,(uo(),y0),(vo(),PAe)),mc,NAe)}switch(n.Hc((Ho(),eW))&&yl(fi(fi(t,(uo(),y0),(vo(),IAe)),_u,MAe),mc,DAe),qe(Q(e,zb))!==qe((Nf(),AW))&&fi(t,(uo(),bu),(vo(),XAe)),n.Hc(nW)&&(fi(t,(uo(),y0),(vo(),eLe)),fi(t,vg,JAe),fi(t,bu,ZAe)),qe(Q(e,lW))!==qe((zE(),VL))&&qe(Q(e,bp))!==qe((ip(),JB))&&yl(t,(uo(),mc),(vo(),VAe)),Rt(Bt(Q(e,BMe)))&&fi(t,(uo(),bu),(vo(),HAe)),Rt(Bt(Q(e,ede)))&&fi(t,(uo(),bu),(vo(),tLe)),VTn(e)&&(qe(Q(e,p4))===qe(A2)?r=l(Q(e,TB),299):r=l(Q(e,Z1e),299),o=r==(vE(),R1e)?(vo(),QAe):(vo(),iLe),fi(t,(uo(),_u),o)),l(Q(e,lDe),388).g){case 1:fi(t,(uo(),_u),(vo(),nLe));break;case 2:yl(fi(fi(t,(uo(),bu),(vo(),SAe)),_u,_Ae),mc,AAe)}return qe(Q(e,yg))!==qe((Ed(),E2))&&fi(t,(uo(),bu),(vo(),rLe)),t}function dwt(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me;if(Hu(e.a,t)){if(W0(l(cr(e.a,t),49),n))return 1}else ki(e.a,t,new Ks);if(Hu(e.a,n)){if(W0(l(cr(e.a,n),49),t))return-1}else ki(e.a,n,new Ks);if(Hu(e.e,t)){if(W0(l(cr(e.e,t),49),n))return-1}else ki(e.e,t,new Ks);if(Hu(e.e,n)){if(W0(l(cr(e.a,n),49),t))return 1}else ki(e.e,n,new Ks);if(e.c==(Ed(),yde)||!ns(t,(ft(),Ki))||!ns(n,(ft(),Ki))){for(L=null,E=new G(t.j);E.af?WE(e,t,n):WE(e,n,t),af?1:0}return r=l(Q(t,(ft(),Ki)),17).a,o=l(Q(n,Ki),17).a,r>o?WE(e,t,n):WE(e,n,t),ro?1:0}function Kw(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te;if(n==null)return null;if(e.a!=t.jk())throw ue(new Yn(yT+t.xe()+t3));if(De(t,469)){if(te=kSn(l(t,685),n),!te)throw ue(new Yn(zfe+n+"' is not a valid enumerator of '"+t.xe()+"'"));return te}switch(o2((El(),io),t).Nl()){case 2:{n=Tu(n,!1);break}case 3:{n=Tu(n,!0);break}}if(r=o2(io,t).Jl(),r)return r.jk().wi().ti(r,n);if(B=o2(io,t).Ll(),B){for(te=new bt,E=Tce(n),C=0,L=E.length;C1)for(V=new q8((!e.a&&(e.a=new nt(cs,e,6,6)),e.a));V.e!=V.i.gc();)jA(V);for(f=l(Oe((!e.a&&(e.a=new nt(cs,e,6,6)),e.a),0),166),te=oi,oi>Ze+$e?te=Ze+$e:oiot+J?fe=ot+J:wsZe-$e&&teot-J&&feoi+ur?cn=oi+ur:Zews+St?an=ws+St:otoi-ur&&cnws-St&&ann&&(B=n-1),z=P2+Jl(t,24)*MP*L-L/2,z<0?z=1:z>r&&(z=r-1),a=(rb(),w=new AS,w),dV(a,B),fV(a,z),qr((!f.a&&(f.a=new Ys(qh,f,5)),f.a),a)}function gwt(e){sw(e,new Xm(nw(Zv(tw(ew(new x1,th),"ELK Rectangle Packing"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."),new c8))),gt(e,th,Ox,1.3),gt(e,th,hT,(Hn(),!1)),gt(e,th,Xw,iOe),gt(e,th,Jy,15),gt(e,th,SG,It(DCt)),gt(e,th,x6,It(NCt)),gt(e,th,Px,It(BCt)),gt(e,th,Nx,It(FCt)),gt(e,th,fT,It(OCt)),gt(e,th,fL,It(lge)),gt(e,th,dT,It(RCt)),gt(e,th,jCe,It(cOe)),gt(e,th,$Ce,It(oOe)),gt(e,th,RCe,It(fge)),gt(e,th,FCe,It(uOe)),gt(e,th,zCe,It(rOe)),gt(e,th,qCe,It(hge)),gt(e,th,HCe,It(nOe)),gt(e,th,VCe,It(aOe)),gt(e,th,hL,It(tOe)),gt(e,th,AG,It(ICt)),gt(e,th,PCe,It(jB)),gt(e,th,NCe,It(eOe)),gt(e,th,BCe,It($B)),gt(e,th,OCe,It(sOe))}function Dle(e,t){ble();var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur,oi;if(cn=e.e,V=e.d,a=e.a,cn==0)switch(t){case 0:return"0";case 1:return sT;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return ot=new tb,t<0?ot.a+="0E+":ot.a+="0E",ot.a+=-t,ot.a}if(Me=V*10+1+7,$e=We(kf,Ad,28,Me+1,15,1),n=Me,V==1)if(g=a[0],g<0){oi=va(g,Vo);do J=oi,oi=KN(oi,10),$e[--n]=48+Yr(Df(J,mo(oi,10)))&Zs;while(iu(oi,0)!=0)}else{oi=g;do J=oi,oi=oi/10|0,$e[--n]=48+(J-oi*10)&Zs;while(oi!=0)}else{Bn=We(Vr,di,28,V,15,1),ur=V,pu(a,0,Bn,0,ur);e:for(;;){for(St=0,E=ur-1;E>=0;E--)jn=bo(l0(St,32),va(Bn[E],Vo)),fe=yxn(jn),Bn[E]=Yr(fe),St=Yr(bw(fe,32));Te=Yr(St),te=n;do $e[--n]=48+Te%10&Zs;while((Te=Te/10|0)!=0&&n!=0);for(r=9-te+n,w=0;w0;w++)$e[--n]=48;for(L=ur-1;Bn[L]==0;L--)if(L==0)break e;ur=L+1}for(;$e[n]==48;)++n}if(z=cn<0,f=Me-n-t-1,t==0)return z&&($e[--n]=45),If($e,n,Me-n);if(t>0&&f>=-6){if(f>=0){for(C=n+f,B=Me-1;B>=C;B--)$e[B+1]=$e[B];return $e[++C]=46,z&&($e[--n]=45),If($e,n,Me-n+1)}for(L=2;L<-f+1;L++)$e[--n]=48;return $e[--n]=46,$e[--n]=48,z&&($e[--n]=45),If($e,n,Me-n)}return an=n+1,o=Me,Ze=new S5,z&&(Ze.a+="-"),o-an>=1?(hb(Ze,$e[n]),Ze.a+=".",Ze.a+=If($e,n+1,Me-n-1)):Ze.a+=If($e,n,Me-n),Ze.a+="E",f>0&&(Ze.a+="+"),Ze.a+=""+f,Ze.a}function pwt(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot;switch(e.c=t,e.g=new Pr,n=(aw(),new Jv(e.c)),r=new e_(n),S8e(r),Me=ei(at(e.c,(YN(),AOe))),w=l(at(e.c,kge),324),Ze=l(at(e.c,Ege),437),f=l(at(e.c,COe),490),$e=l(at(e.c,xge),438),e.j=ze(Ge(at(e.c,JCt))),g=e.a,w.g){case 0:g=e.a;break;case 1:g=e.b;break;case 2:g=e.i;break;case 3:g=e.e;break;case 4:g=e.f;break;default:throw ue(new Yn(FG+(w.f!=null?w.f:""+w.g)))}if(e.d=new cot(g,Ze,f),rt(e.d,(pE(),jL),Bt(at(e.c,XCt))),e.d.c=Rt(Bt(at(e.c,SOe))),AH(e.c).i==0)return e.d;for(L=new or(AH(e.c));L.e!=L.i.gc();){for(C=l(gr(L),27),z=C.g/2,B=C.f/2,ot=new lt(C.i+z,C.j+B);Hu(e.g,ot);)dw(ot,(b.Math.random()-.5)*Dd,(b.Math.random()-.5)*Dd);J=l(at(C,(pi(),tC)),140),te=new kot(ot,new ef(ot.a-z-e.j/2-J.b,ot.b-B-e.j/2-J.d,C.g+e.j+(J.b+J.c),C.f+e.j+(J.d+J.a))),vt(e.d.i,te),ki(e.g,ot,new ca(te,C))}switch($e.g){case 0:if(Me==null)e.d.d=l(jt(e.d.i,0),68);else for(Te=new G(e.d.i);Te.a0?ur+1:1);for(f=new G(ot.g);f.a0?ur+1:1)}e.c[E]==0?ui(e.e,J):e.a[E]==0&&ui(e.f,J),++E}for(V=-1,z=1,L=new bt,e.d=l(Q(t,(ft(),Xx)),234);Hh>0;){for(;e.e.b!=0;)ws=l(kae(e.e),10),e.b[ws.p]=V--,pke(e,ws),--Hh;for(;e.f.b!=0;)Vl=l(kae(e.f),10),e.b[Vl.p]=z++,pke(e,Vl),--Hh;if(Hh>0){for(B=lo,Te=new G(Me);Te.a=B&&($e>B&&(L.c.length=0,B=$e),$n(L.c,J)));C=e.sg(L),e.b[C.p]=z++,pke(e,C),--Hh}}for(oi=Me.c.length+1,E=0;Ee.b[lc]&&(Uw(r,!0),rt(t,yB,(Hn(),!0)));e.a=null,e.c=null,e.b=null,Ch(e.f),Ch(e.e),n.Vg()}function bwt(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot;for(Ze=l(Oe((!e.a&&(e.a=new nt(cs,e,6,6)),e.a),0),166),C=new bl,$e=new Pr,ot=Cmt(Ze),ju($e.f,Ze,ot),B=new Pr,r=new os,V=rg(Lh(he(le(Fh,1),Rn,20,0,[(!t.d&&(t.d=new Ln(js,t,8,5)),t.d),(!t.e&&(t.e=new Ln(js,t,7,4)),t.e)])));jr(V);){if(z=l(xr(V),74),(!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i!=1)throw ue(new Yn(n4t+(!e.a&&(e.a=new nt(cs,e,6,6)),e.a).i));z!=e&&(te=l(Oe((!z.a&&(z.a=new nt(cs,z,6,6)),z.a),0),166),Cs(r,te,r.c.b,r.c),J=l(hc(zo($e.f,te)),13),J||(J=Cmt(te),ju($e.f,te,J)),L=n?ma(new Eo(l(jt(ot,ot.c.length-1),8)),l(jt(J,J.c.length-1),8)):ma(new Eo((Sn(0,ot.c.length),l(ot.c[0],8))),(Sn(0,J.c.length),l(J.c[0],8))),ju(B.f,te,L))}if(r.b!=0)for(fe=l(jt(ot,n?ot.c.length-1:0),8),E=1;E1&&Cs(C,fe,C.c.b,C.c),Yoe(a)));fe=Te}return C}function mwt(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn;for(n.Ug(myt,1),Bn=l(yc(Fi(new bn(null,new kn(t,16)),new one),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15),C=l(yc(Fi(new bn(null,new kn(t,16)),new vXe(t)),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[Ec]))),15),V=l(yc(Fi(new bn(null,new kn(t,16)),new mXe(t)),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[Ec]))),15),J=We(PW,IG,40,t.gc(),0,1),f=0;f=0&&an=0&&!J[z]){J[z]=a,C.gd(g),--g;break}if(z=an-B,z=0&&!J[z]){J[z]=a,C.gd(g),--g;break}}for(V.jd(new cne),w=J.length-1;w>=0;w--)!J[w]&&!V.dc()&&(J[w]=l(V.Xb(0),40),V.gd(0));for(E=0;E=0;w--)ui(n,(Sn(w,f.c.length),l(f.c[w],8)));return n}function wwt(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e;for(Me=ze(Ge(at(t,(ug(),T4)))),z=ze(Ge(at(t,mM))),B=ze(Ge(at(t,UW))),v7e((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a)),fe=uvt((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a),Me,e.b),te=0;teB&&UN((Sn(B,t.c.length),l(t.c[B],186)),C),C=null;t.c.length>B&&(Sn(B,t.c.length),l(t.c[B],186)).a.c.length==0;)al(t,(Sn(B,t.c.length),t.c[B]));if(!C){--f;continue}if(!Rt(Bt(l(jt(C.b,0),27).of((z1(),$B))))&&tAn(t,V,o,C,te,n,B,r)){J=!0;continue}if(te){if(z=V.b,L=C.f,!Rt(Bt(l(jt(C.b,0),27).of($B)))&&wMn(t,V,o,C,n,B,r,a)){if(J=!0,z=e.j){e.a=-1,e.c=1;return}if(t=co(e.i,e.d++),e.a=t,e.b==1){switch(t){case 92:if(r=10,e.d>=e.j)throw ue(new ri(ai((Jr(),VG))));e.a=co(e.i,e.d++);break;case 45:(e.e&512)==512&&e.d=e.j||co(e.i,e.d)!=63)break;if(++e.d>=e.j)throw ue(new ri(ai((Jr(),e0e))));switch(t=co(e.i,e.d++),t){case 58:r=13;break;case 61:r=14;break;case 33:r=15;break;case 91:r=19;break;case 62:r=18;break;case 60:if(e.d>=e.j)throw ue(new ri(ai((Jr(),e0e))));if(t=co(e.i,e.d++),t==61)r=16;else if(t==33)r=17;else throw ue(new ri(ai((Jr(),L4t))));break;case 35:for(;e.d=e.j)throw ue(new ri(ai((Jr(),VG))));e.a=co(e.i,e.d++);break;default:r=0}e.c=r}function zIn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te;if(n.Ug("Process compaction",1),!!Rt(Bt(Q(t,(Hc(),uIe))))){for(a=l(Q(t,y3),88),z=ze(Ge(Q(t,zde))),gLn(e,t,a),iIn(t,z/2/2),V=t.b,$m(V,new lXe(a)),E=Rr(V,0);E.b!=E.d.c;)if(w=l(Br(E),40),!Rt(Bt(Q(w,(Qi(),Vb))))){if(r=$Sn(w,a),J=PAn(w,t),L=0,B=0,r)switch(te=r.e,a.g){case 2:L=te.a-z-w.f.a,J.e.a-z-w.f.aL&&(L=J.e.a+J.f.a+z),B=L+w.f.a;break;case 4:L=te.b-z-w.f.b,J.e.b-z-w.f.bL&&(L=J.e.b+J.f.b+z),B=L+w.f.b}else if(J)switch(a.g){case 2:L=J.e.a-z-w.f.a,B=L+w.f.a;break;case 1:L=J.e.a+J.f.a+z,B=L+w.f.a;break;case 4:L=J.e.b-z-w.f.b,B=L+w.f.b;break;case 3:L=J.e.b+J.f.b+z,B=L+w.f.b}qe(Q(t,$de))===qe((xA(),OB))?(o=L,f=B,g=kE(Fi(new bn(null,new kn(e.a,16)),new ttt(o,f))),g.a!=null?a==(Js(),uc)||a==vc?w.e.a=L:w.e.b=L:(a==(Js(),uc)||a==wf?g=kE(Fi(Dht(new bn(null,new kn(e.a,16))),new hXe(o))):g=kE(Fi(Dht(new bn(null,new kn(e.a,16))),new fXe(o))),g.a!=null&&(a==uc||a==vc?w.e.a=ze(Ge((mr(g.a!=null),l(g.a,42)).a)):w.e.b=ze(Ge((mr(g.a!=null),l(g.a,42)).a)))),g.a!=null&&(C=gc(e.a,(mr(g.a!=null),g.a),0),C>0&&C!=l(Q(w,$d),17).a&&(rt(w,tIe,(Hn(),!0)),rt(w,$d,pt(C))))):a==(Js(),uc)||a==vc?w.e.a=L:w.e.b=L}n.Vg()}}function ywt(e){var t,n,r,a,o,f,g,w,E;for(e.b=1,Li(e),t=null,e.c==0&&e.a==94?(Li(e),t=(Di(),Di(),new _h(4)),Eu(t,0,TT),g=new _h(4)):g=(Di(),Di(),new _h(4)),a=!0;(E=e.c)!=1;){if(E==0&&e.a==93&&!a){t&&(nL(t,g),g=t);break}if(n=e.a,r=!1,E==10)switch(n){case 100:case 68:case 119:case 87:case 115:case 83:Ky(g,YE(n)),r=!0;break;case 105:case 73:case 99:case 67:n=(Ky(g,YE(n)),-1),n<0&&(r=!0);break;case 112:case 80:if(w=w9e(e,n),!w)throw ue(new ri(ai((Jr(),t0e))));Ky(g,w),r=!0;break;default:n=eke(e)}else if(E==24&&!a){if(t&&(nL(t,g),g=t),o=ywt(e),nL(g,o),e.c!=0||e.a!=93)throw ue(new ri(ai((Jr(),j4t))));break}if(Li(e),!r){if(E==0){if(n==91)throw ue(new ri(ai((Jr(),ESe))));if(n==93)throw ue(new ri(ai((Jr(),TSe))));if(n==45&&!a&&e.a!=93)throw ue(new ri(ai((Jr(),n0e))))}if(e.c!=0||e.a!=45||n==45&&a)Eu(g,n,n);else{if(Li(e),(E=e.c)==1)throw ue(new ri(ai((Jr(),UG))));if(E==0&&e.a==93)Eu(g,n,n),Eu(g,45,45);else{if(E==0&&e.a==93||E==24)throw ue(new ri(ai((Jr(),n0e))));if(f=e.a,E==0){if(f==91)throw ue(new ri(ai((Jr(),ESe))));if(f==93)throw ue(new ri(ai((Jr(),TSe))));if(f==45)throw ue(new ri(ai((Jr(),n0e))))}else E==10&&(f=eke(e));if(Li(e),n>f)throw ue(new ri(ai((Jr(),q4t))));Eu(g,n,f)}}}a=!1}if(e.c==1)throw ue(new ri(ai((Jr(),UG))));return c6(g),eL(g),e.b=0,Li(e),g}function qIn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze;if(n.Ug("Coffman-Graham Layering",1),t.a.c.length==0){n.Vg();return}for(Ze=l(Q(t,(Nt(),$Me)),17).a,w=0,f=0,B=new G(t.a);B.a=Ze||!B5n(fe,r))&&(r=vat(t,C)),Va(fe,r),o=new hr(dr(ka(fe).a.Kc(),new j));jr(o);)a=l(xr(o),18),!e.a[a.p]&&(J=a.c.i,--e.e[J.p],e.e[J.p]==0&&K8($E(z,J),aT));for(E=C.c.length-1;E>=0;--E)vt(t.b,(Sn(E,C.c.length),l(C.c[E],30)));t.a.c.length=0,n.Vg()}function xwt(e,t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e;$e=!1;do for($e=!1,o=t?new br(e.a.b).a.gc()-2:1;t?o>=0:ol(Q(te,Ki),17).a)&&(Me=!1);if(Me){for(w=t?o+1:o-1,g=s6e(e.a,pt(w)),f=!1,Te=!0,r=!1,C=Rr(g,0);C.b!=C.d.c;)E=l(Br(C),10),ns(E,Ki)?E.p!=L.p&&(f=f|(t?l(Q(E,Ki),17).al(Q(L,Ki),17).a),Te=!1):!f&&Te&&E.k==(Zn(),cu)&&(r=!0,t?B=l(xr(new hr(dr(ka(E).a.Kc(),new j))),18).c.i:B=l(xr(new hr(dr(qs(E).a.Kc(),new j))),18).d.i,B==L&&(t?n=l(xr(new hr(dr(qs(E).a.Kc(),new j))),18).d.i:n=l(xr(new hr(dr(ka(E).a.Kc(),new j))),18).c.i,(t?l(dy(e.a,n),17).a-l(dy(e.a,B),17).a:l(dy(e.a,B),17).a-l(dy(e.a,n),17).a)<=2&&(Te=!1)));if(r&&Te&&(t?n=l(xr(new hr(dr(qs(L).a.Kc(),new j))),18).d.i:n=l(xr(new hr(dr(ka(L).a.Kc(),new j))),18).c.i,(t?l(dy(e.a,n),17).a-l(dy(e.a,L),17).a:l(dy(e.a,L),17).a-l(dy(e.a,n),17).a)<=2&&n.k==(Zn(),Ps)&&(Te=!1)),f||Te){for(J=J2t(e,L,t);J.a.gc()!=0;)V=l(J.a.ec().Kc().Pb(),10),J.a.Bc(V)!=null,Ka(J,J2t(e,V,t));--z,$e=!0}}}while($e)}function HIn(e){Wr(e.c,li,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#decimal"])),Wr(e.d,li,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#integer"])),Wr(e.e,li,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#boolean"])),Wr(e.f,li,he(le(zt,1),dt,2,6,[ho,"EBoolean",_i,"EBoolean:Object"])),Wr(e.i,li,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#byte"])),Wr(e.g,li,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#hexBinary"])),Wr(e.j,li,he(le(zt,1),dt,2,6,[ho,"EByte",_i,"EByte:Object"])),Wr(e.n,li,he(le(zt,1),dt,2,6,[ho,"EChar",_i,"EChar:Object"])),Wr(e.t,li,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#double"])),Wr(e.u,li,he(le(zt,1),dt,2,6,[ho,"EDouble",_i,"EDouble:Object"])),Wr(e.F,li,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#float"])),Wr(e.G,li,he(le(zt,1),dt,2,6,[ho,"EFloat",_i,"EFloat:Object"])),Wr(e.I,li,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#int"])),Wr(e.J,li,he(le(zt,1),dt,2,6,[ho,"EInt",_i,"EInt:Object"])),Wr(e.N,li,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#long"])),Wr(e.O,li,he(le(zt,1),dt,2,6,[ho,"ELong",_i,"ELong:Object"])),Wr(e.Z,li,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#short"])),Wr(e.$,li,he(le(zt,1),dt,2,6,[ho,"EShort",_i,"EShort:Object"])),Wr(e._,li,he(le(zt,1),dt,2,6,[ho,"http://www.w3.org/2001/XMLSchema#string"]))}function VIn(e,t,n,r,a,o,f){var g,w,E,C,L,B,z,V;return B=l(r.a,17).a,z=l(r.b,17).a,L=e.b,V=e.c,g=0,C=0,t==(Js(),uc)||t==vc?(C=fO(h1t(xy(fc(new bn(null,new kn(n.b,16)),new lne),new Yte))),L.e.b+L.f.b/2>C?(E=++z,g=ze(Ge(fh(vy(fc(new bn(null,new kn(n.b,16)),new itt(a,E)),new a$))))):(w=++B,g=ze(Ge(fh(Y8(fc(new bn(null,new kn(n.b,16)),new stt(a,w)),new Xte)))))):(C=fO(h1t(xy(fc(new bn(null,new kn(n.b,16)),new Zte),new s$))),L.e.a+L.f.a/2>C?(E=++z,g=ze(Ge(fh(vy(fc(new bn(null,new kn(n.b,16)),new ntt(a,E)),new Qte))))):(w=++B,g=ze(Ge(fh(Y8(fc(new bn(null,new kn(n.b,16)),new rtt(a,w)),new bI)))))),t==uc?(ko(e.a,new lt(ze(Ge(Q(L,(Qi(),c1))))-a,g)),ko(e.a,new lt(V.e.a+V.f.a+a+o,g)),ko(e.a,new lt(V.e.a+V.f.a+a+o,V.e.b+V.f.b/2)),ko(e.a,new lt(V.e.a+V.f.a,V.e.b+V.f.b/2))):t==vc?(ko(e.a,new lt(ze(Ge(Q(L,(Qi(),k0))))+a,L.e.b+L.f.b/2)),ko(e.a,new lt(L.e.a+L.f.a+a,g)),ko(e.a,new lt(V.e.a-a-o,g)),ko(e.a,new lt(V.e.a-a-o,V.e.b+V.f.b/2)),ko(e.a,new lt(V.e.a,V.e.b+V.f.b/2))):t==wf?(ko(e.a,new lt(g,ze(Ge(Q(L,(Qi(),c1))))-a)),ko(e.a,new lt(g,V.e.b+V.f.b+a+o)),ko(e.a,new lt(V.e.a+V.f.a/2,V.e.b+V.f.b+a+o)),ko(e.a,new lt(V.e.a+V.f.a/2,V.e.b+V.f.b+a))):(e.a.b==0||(l(o0(e.a),8).b=ze(Ge(Q(L,(Qi(),k0))))+a*l(f.b,17).a),ko(e.a,new lt(g,ze(Ge(Q(L,(Qi(),k0))))+a*l(f.b,17).a)),ko(e.a,new lt(g,V.e.b-a*l(f.a,17).a-o))),new ca(pt(B),pt(z))}function UIn(e){var t,n,r,a,o,f,g,w,E,C,L,B,z;if(f=!0,L=null,r=null,a=null,t=!1,z=P_t,E=null,o=null,g=0,w=Zce(e,g,TPe,CPe),w=0&&vn(e.substr(g,2),"//")?(g+=2,w=Zce(e,g,$M,zM),r=(Ga(g,w,e.length),e.substr(g,w-g)),g=w):L!=null&&(g==e.length||(Xn(g,e.length),e.charCodeAt(g)!=47))&&(f=!1,w=Lye(e,cl(35),g),w==-1&&(w=e.length),r=(Ga(g,w,e.length),e.substr(g,w-g)),g=w);if(!n&&g0&&co(C,C.length-1)==58&&(a=C,g=w)),gWue(o))&&(L=o);for(!L&&(L=(Sn(0,te.c.length),l(te.c[0],185))),J=new G(t.b);J.aL&&(jn=0,ur+=C+St,C=0),hmt(Ze,f,jn,ur),t=b.Math.max(t,jn+ot.a),C=b.Math.max(C,ot.b),jn+=ot.a+St;for($e=new Pr,n=new Pr,an=new G(e);an.a=-1900?1:0,n>=4?hi(e,he(le(zt,1),dt,2,6,[Rwt,jwt])[g]):hi(e,he(le(zt,1),dt,2,6,["BC","AD"])[g]);break;case 121:h6n(e,n,r);break;case 77:M_n(e,n,r);break;case 107:w=a.q.getHours(),w==0?ag(e,24,n):ag(e,w,n);break;case 83:HTn(e,n,a);break;case 69:C=r.q.getDay(),n==5?hi(e,he(le(zt,1),dt,2,6,["S","M","T","W","T","F","S"])[C]):n==4?hi(e,he(le(zt,1),dt,2,6,[Qle,Jle,Zle,ehe,the,nhe,rhe])[C]):hi(e,he(le(zt,1),dt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[C]);break;case 97:a.q.getHours()>=12&&a.q.getHours()<24?hi(e,he(le(zt,1),dt,2,6,["AM","PM"])[1]):hi(e,he(le(zt,1),dt,2,6,["AM","PM"])[0]);break;case 104:L=a.q.getHours()%12,L==0?ag(e,12,n):ag(e,L,n);break;case 75:B=a.q.getHours()%12,ag(e,B,n);break;case 72:z=a.q.getHours(),ag(e,z,n);break;case 99:V=r.q.getDay(),n==5?hi(e,he(le(zt,1),dt,2,6,["S","M","T","W","T","F","S"])[V]):n==4?hi(e,he(le(zt,1),dt,2,6,[Qle,Jle,Zle,ehe,the,nhe,rhe])[V]):n==3?hi(e,he(le(zt,1),dt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[V]):ag(e,V,1);break;case 76:J=r.q.getMonth(),n==5?hi(e,he(le(zt,1),dt,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[J]):n==4?hi(e,he(le(zt,1),dt,2,6,[$le,zle,qle,Hle,_x,Vle,Ule,Gle,Kle,Wle,Yle,Xle])[J]):n==3?hi(e,he(le(zt,1),dt,2,6,["Jan","Feb","Mar","Apr",_x,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[J]):ag(e,J+1,n);break;case 81:te=r.q.getMonth()/3|0,n<4?hi(e,he(le(zt,1),dt,2,6,["Q1","Q2","Q3","Q4"])[te]):hi(e,he(le(zt,1),dt,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[te]);break;case 100:fe=r.q.getDate(),ag(e,fe,n);break;case 109:E=a.q.getMinutes(),ag(e,E,n);break;case 115:f=a.q.getSeconds(),ag(e,f,n);break;case 122:n<4?hi(e,o.c[0]):hi(e,o.c[1]);break;case 118:hi(e,o.b);break;case 90:n<3?hi(e,Bkn(o)):n==3?hi(e,zkn(o)):hi(e,qkn(o.a));break;default:return!1}return!0}function Wke(e,t,n,r){var a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur,oi;if(emt(t),w=l(Oe((!t.b&&(t.b=new Ln(_r,t,4,7)),t.b),0),84),C=l(Oe((!t.c&&(t.c=new Ln(_r,t,5,8)),t.c),0),84),g=bc(w),E=bc(C),f=(!t.a&&(t.a=new nt(cs,t,6,6)),t.a).i==0?null:l(Oe((!t.a&&(t.a=new nt(cs,t,6,6)),t.a),0),166),St=l(cr(e.a,g),10),jn=l(cr(e.a,E),10),cn=null,ur=null,De(w,193)&&(ot=l(cr(e.a,w),305),De(ot,12)?cn=l(ot,12):De(ot,10)&&(St=l(ot,10),cn=l(jt(St.j,0),12))),De(C,193)&&(Bn=l(cr(e.a,C),305),De(Bn,12)?ur=l(Bn,12):De(Bn,10)&&(jn=l(Bn,10),ur=l(jt(jn.j,0),12))),!St||!jn)throw ue(new I8("The source or the target of edge "+t+" could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));for(J=new Tw,pc(J,t),rt(J,(ft(),zi),t),rt(J,(Nt(),cc),null),z=l(Q(r,Lu),21),St==jn&&z.Fc((Ho(),GL)),cn||(Ze=(qo(),zu),an=null,f&&P5(l(Q(St,Ms),101))&&(an=new lt(f.j,f.k),Vct(an,WO(t)),vut(an,n),Ly(E,g)&&(Ze=$l,Oi(an,St.n))),cn=tvt(St,an,Ze,r)),ur||(Ze=(qo(),$l),oi=null,f&&P5(l(Q(jn,Ms),101))&&(oi=new lt(f.b,f.c),Vct(oi,WO(t)),vut(oi,n)),ur=tvt(jn,oi,Ze,eo(jn))),po(J,cn),Fa(J,ur),(cn.e.c.length>1||cn.g.c.length>1||ur.e.c.length>1||ur.g.c.length>1)&&z.Fc((Ho(),UL)),B=new or((!t.n&&(t.n=new nt(ec,t,1,7)),t.n));B.e!=B.i.gc();)if(L=l(gr(B),135),!Rt(Bt(at(L,mv)))&&L.a)switch(te=Oce(L),vt(J.b,te),l(Q(te,jd),278).g){case 1:case 2:z.Fc((Ho(),jT));break;case 0:z.Fc((Ho(),RT)),rt(te,jd,(F1(),nC))}if(o=l(Q(r,JL),322),fe=l(Q(r,yW),323),a=o==(dA(),mB)||fe==(OA(),vde),f&&(!f.a&&(f.a=new Ys(qh,f,5)),f.a).i!=0&&a){for(Te=QN(f),V=new bl,$e=Rr(Te,0);$e.b!=$e.d.c;)Me=l(Br($e),8),ui(V,new Eo(Me));rt(J,qLe,V)}return J}function YIn(e,t,n,r){var a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur,oi,ws;for(an=0,Bn=0,St=new Pr,Ze=l(fh(vy(fc(new bn(null,new kn(e.b,16)),new Jte),new sne)),17).a+1,cn=We(Vr,di,28,Ze,15,1),te=We(Vr,di,28,Ze,15,1),J=0;J1)for(g=ur+1;gE.b.e.b*(1-fe)+E.c.e.b*fe));V++);if(ot.gc()>0&&(oi=E.a.b==0?Ja(E.b.e):l(o0(E.a),8),Me=Oi(Ja(l(ot.Xb(ot.gc()-1),40).e),l(ot.Xb(ot.gc()-1),40).f),B=Oi(Ja(l(ot.Xb(0),40).e),l(ot.Xb(0),40).f),V>=ot.gc()-1&&oi.b>Me.b&&E.c.e.b>Me.b||V<=0&&oi.bE.b.e.a*(1-fe)+E.c.e.a*fe));V++);if(ot.gc()>0&&(oi=E.a.b==0?Ja(E.b.e):l(o0(E.a),8),Me=Oi(Ja(l(ot.Xb(ot.gc()-1),40).e),l(ot.Xb(ot.gc()-1),40).f),B=Oi(Ja(l(ot.Xb(0),40).e),l(ot.Xb(0),40).f),V>=ot.gc()-1&&oi.a>Me.a&&E.c.e.a>Me.a||V<=0&&oi.a=ze(Ge(Q(e,(Qi(),iIe))))&&++Bn):(z.f&&z.d.e.a<=ze(Ge(Q(e,(Qi(),Bde))))&&++an,z.g&&z.c.e.a+z.c.f.a>=ze(Ge(Q(e,(Qi(),rIe))))&&++Bn)}else $e==0?b9e(E):$e<0&&(++cn[ur],++te[ws],jn=VIn(E,t,e,new ca(pt(an),pt(Bn)),n,r,new ca(pt(te[ws]),pt(cn[ur]))),an=l(jn.a,17).a,Bn=l(jn.b,17).a)}function XIn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te;if(r=t,w=n,e.b&&r.j==(Ct(),er)&&w.j==(Ct(),er)&&(Te=r,r=w,w=Te),Hu(e.a,r)){if(W0(l(cr(e.a,r),49),w))return 1}else ki(e.a,r,new Ks);if(Hu(e.a,w)){if(W0(l(cr(e.a,w),49),r))return-1}else ki(e.a,w,new Ks);if(Hu(e.d,r)){if(W0(l(cr(e.d,r),49),w))return-1}else ki(e.d,r,new Ks);if(Hu(e.d,w)){if(W0(l(cr(e.a,w),49),r))return 1}else ki(e.d,w,new Ks);if(r.j!=w.j)return fe=Rln(r.j,w.j),fe==-1?df(e,w,r):df(e,r,w),fe;if(r.e.c.length!=0&&w.e.c.length!=0){if(e.b&&(fe=j0t(r,w),fe!=0))return fe==-1?df(e,w,r):fe==1&&df(e,r,w),fe;if(o=l(jt(r.e,0),18).c.i,C=l(jt(w.e,0),18).c.i,o==C)return a=l(Q(l(jt(r.e,0),18),(ft(),Ki)),17).a,E=l(Q(l(jt(w.e,0),18),Ki),17).a,a>E?df(e,r,w):df(e,w,r),aE?1:0;for(V=e.c,J=0,te=V.length;JE?df(e,r,w):df(e,w,r),aE?1:0):e.b&&(fe=j0t(r,w),fe!=0)?(fe==-1?df(e,w,r):fe==1&&df(e,r,w),fe):(f=0,L=0,ns(l(jt(r.g,0),18),Ki)&&(f=l(Q(l(jt(r.g,0),18),Ki),17).a),ns(l(jt(w.g,0),18),Ki)&&(L=l(Q(l(jt(r.g,0),18),Ki),17).a),g&&g==B?Rt(Bt(Q(l(jt(r.g,0),18),W1)))&&!Rt(Bt(Q(l(jt(w.g,0),18),W1)))?(df(e,r,w),1):!Rt(Bt(Q(l(jt(r.g,0),18),W1)))&&Rt(Bt(Q(l(jt(w.g,0),18),W1)))?(df(e,w,r),-1):(f>L?df(e,r,w):df(e,w,r),fL?1:0):(e.f&&(e.f._b(g)&&(f=l(e.f.xc(g),17).a),e.f._b(B)&&(L=l(e.f.xc(B),17).a)),f>L?df(e,r,w):df(e,w,r),fL?1:0))):r.e.c.length!=0&&w.g.c.length!=0?(df(e,r,w),1):r.g.c.length!=0&&w.e.c.length!=0?(df(e,w,r),-1):ns(r,(ft(),Ki))&&ns(w,Ki)?(a=l(Q(r,Ki),17).a,E=l(Q(w,Ki),17).a,a>E?df(e,r,w):df(e,w,r),aE?1:0):(df(e,w,r),-1)}function QIn(e){e.gb||(e.gb=!0,e.b=qc(e,0),Ss(e.b,18),is(e.b,19),e.a=qc(e,1),Ss(e.a,1),is(e.a,2),is(e.a,3),is(e.a,4),is(e.a,5),e.o=qc(e,2),Ss(e.o,8),Ss(e.o,9),is(e.o,10),is(e.o,11),is(e.o,12),is(e.o,13),is(e.o,14),is(e.o,15),is(e.o,16),is(e.o,17),is(e.o,18),is(e.o,19),is(e.o,20),is(e.o,21),is(e.o,22),is(e.o,23),sc(e.o),sc(e.o),sc(e.o),sc(e.o),sc(e.o),sc(e.o),sc(e.o),sc(e.o),sc(e.o),sc(e.o),e.p=qc(e,3),Ss(e.p,2),Ss(e.p,3),Ss(e.p,4),Ss(e.p,5),is(e.p,6),is(e.p,7),sc(e.p),sc(e.p),e.q=qc(e,4),Ss(e.q,8),e.v=qc(e,5),is(e.v,9),sc(e.v),sc(e.v),sc(e.v),e.w=qc(e,6),Ss(e.w,2),Ss(e.w,3),Ss(e.w,4),is(e.w,5),e.B=qc(e,7),is(e.B,1),sc(e.B),sc(e.B),sc(e.B),e.Q=qc(e,8),is(e.Q,0),sc(e.Q),e.R=qc(e,9),Ss(e.R,1),e.S=qc(e,10),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),sc(e.S),e.T=qc(e,11),is(e.T,10),is(e.T,11),is(e.T,12),is(e.T,13),is(e.T,14),sc(e.T),sc(e.T),e.U=qc(e,12),Ss(e.U,2),Ss(e.U,3),is(e.U,4),is(e.U,5),is(e.U,6),is(e.U,7),sc(e.U),e.V=qc(e,13),is(e.V,10),e.W=qc(e,14),Ss(e.W,18),Ss(e.W,19),Ss(e.W,20),is(e.W,21),is(e.W,22),is(e.W,23),e.bb=qc(e,15),Ss(e.bb,10),Ss(e.bb,11),Ss(e.bb,12),Ss(e.bb,13),Ss(e.bb,14),Ss(e.bb,15),Ss(e.bb,16),is(e.bb,17),sc(e.bb),sc(e.bb),e.eb=qc(e,16),Ss(e.eb,2),Ss(e.eb,3),Ss(e.eb,4),Ss(e.eb,5),Ss(e.eb,6),Ss(e.eb,7),is(e.eb,8),is(e.eb,9),e.ab=qc(e,17),Ss(e.ab,0),Ss(e.ab,1),e.H=qc(e,18),is(e.H,0),is(e.H,1),is(e.H,2),is(e.H,3),is(e.H,4),is(e.H,5),sc(e.H),e.db=qc(e,19),is(e.db,2),e.c=Ti(e,20),e.d=Ti(e,21),e.e=Ti(e,22),e.f=Ti(e,23),e.i=Ti(e,24),e.g=Ti(e,25),e.j=Ti(e,26),e.k=Ti(e,27),e.n=Ti(e,28),e.r=Ti(e,29),e.s=Ti(e,30),e.t=Ti(e,31),e.u=Ti(e,32),e.fb=Ti(e,33),e.A=Ti(e,34),e.C=Ti(e,35),e.D=Ti(e,36),e.F=Ti(e,37),e.G=Ti(e,38),e.I=Ti(e,39),e.J=Ti(e,40),e.L=Ti(e,41),e.M=Ti(e,42),e.N=Ti(e,43),e.O=Ti(e,44),e.P=Ti(e,45),e.X=Ti(e,46),e.Y=Ti(e,47),e.Z=Ti(e,48),e.$=Ti(e,49),e._=Ti(e,50),e.cb=Ti(e,51),e.K=Ti(e,52))}function JIn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur;for(f=new os,ot=l(Q(n,(Nt(),Rh)),88),J=0,Ka(f,(!t.a&&(t.a=new nt(Ai,t,10,11)),t.a));f.b!=0;)C=l(f.b==0?null:(mr(f.b!=0),af(f,f.a.a)),27),E=ds(C),(qe(at(E,yg))!==qe((Ed(),E2))||qe(at(E,dv))===qe((l2(),BT))||qe(at(E,dv))===qe((l2(),PT))||Rt(Bt(at(E,f3)))||qe(at(E,g4))!==qe((Km(),c4))||qe(at(E,zb))===qe((Nf(),v3))||qe(at(E,zb))===qe((Nf(),x4))||qe(at(E,pv))===qe((p2(),WT))||qe(at(E,pv))===qe((p2(),YT)))&&!Rt(Bt(at(C,fW)))&&Hi(C,(ft(),Ki),pt(J++)),fe=!Rt(Bt(at(C,mv))),fe&&(B=(!C.a&&(C.a=new nt(Ai,C,10,11)),C.a).i!=0,V=_xn(C),z=qe(at(C,p4))===qe((rp(),A2)),ur=!P1(C,(pi(),eC))||Sut(ei(at(C,eC))),$e=null,ur&&z&&(B||V)&&($e=Pmt(C),rt($e,Rh,ot),ns($e,CB)&&NJe(new D8e(ze(Ge(Q($e,CB)))),$e),l(at(C,bv),181).gc()!=0&&(L=$e,Is(new bn(null,(!C.c&&(C.c=new nt(Hl,C,9,9)),new kn(C.c,16))),new zWe(L)),_bt(C,$e))),St=n,cn=l(cr(e.a,ds(C)),10),cn&&(St=cn.e),Me=cwt(e,C,St),$e&&(Me.e=$e,$e.e=Me,Ka(f,(!C.a&&(C.a=new nt(Ai,C,10,11)),C.a))));for(J=0,Cs(f,t,f.c.b,f.c);f.b!=0;){for(o=l(f.b==0?null:(mr(f.b!=0),af(f,f.a.a)),27),w=new or((!o.b&&(o.b=new nt(js,o,12,3)),o.b));w.e!=w.i.gc();)g=l(gr(w),74),emt(g),(qe(at(t,yg))!==qe((Ed(),E2))||qe(at(t,dv))===qe((l2(),BT))||qe(at(t,dv))===qe((l2(),PT))||Rt(Bt(at(t,f3)))||qe(at(t,g4))!==qe((Km(),c4))||qe(at(t,zb))===qe((Nf(),v3))||qe(at(t,zb))===qe((Nf(),x4))||qe(at(t,pv))===qe((p2(),WT))||qe(at(t,pv))===qe((p2(),YT)))&&Hi(g,(ft(),Ki),pt(J++)),Bn=bc(l(Oe((!g.b&&(g.b=new Ln(_r,g,4,7)),g.b),0),84)),jn=bc(l(Oe((!g.c&&(g.c=new Ln(_r,g,5,8)),g.c),0),84)),!(Rt(Bt(at(g,mv)))||Rt(Bt(at(Bn,mv)))||Rt(Bt(at(jn,mv))))&&(te=qw(g)&&Rt(Bt(at(Bn,b4)))&&Rt(Bt(at(g,gv))),Ze=o,te||Ly(jn,Bn)?Ze=Bn:Ly(Bn,jn)&&(Ze=jn),St=n,cn=l(cr(e.a,Ze),10),cn&&(St=cn.e),Te=Wke(e,g,Ze,St),rt(Te,(ft(),RLe),JCn(e,g,t,n)));if(z=qe(at(o,p4))===qe((rp(),A2)),z)for(a=new or((!o.a&&(o.a=new nt(Ai,o,10,11)),o.a));a.e!=a.i.gc();)r=l(gr(a),27),ur=!P1(r,(pi(),eC))||Sut(ei(at(r,eC))),an=qe(at(r,p4))===qe(A2),ur&&an&&Cs(f,r,f.c.b,f.c)}}function ft(){ft=U;var e,t;zi=new Ui(NEe),RLe=new Ui("coordinateOrigin"),K1e=new Ui("processors"),FLe=new vs("compoundNode",(Hn(),!1)),xB=new vs("insideConnections",!1),qLe=new Ui("originalBendpoints"),HLe=new Ui("originalDummyNodePosition"),VLe=new Ui("originalLabelEdge"),WL=new Ui("representedLabels"),KL=new Ui("endLabels"),Kx=new Ui("endLabel.origin"),Yx=new vs("labelSide",(Ih(),eF)),R6=new vs("maxEdgeThickness",0),W1=new vs("reversed",!1),Xx=new Ui(C3t),o1=new vs("longEdgeSource",null),$f=new vs("longEdgeTarget",null),f4=new vs("longEdgeHasLabelDummies",!1),kB=new vs("longEdgeBeforeLabelDummy",!1),sW=new vs("edgeConstraint",(Vm(),M1e)),u3=new Ui("inLayerLayoutUnit"),hv=new vs("inLayerConstraint",(ep(),wB)),Wx=new vs("inLayerSuccessorConstraint",new bt),zLe=new vs("inLayerSuccessorConstraintBetweenNonDummies",!1),jl=new Ui("portDummy"),iW=new vs("crossingHint",pt(0)),Lu=new vs("graphProperties",(t=l(K0(F1e),9),new Zh(t,l(c0(t,t.length),9),0))),Wc=new vs("externalPortSide",(Ct(),Pc)),$Le=new vs("externalPortSize",new qa),q1e=new Ui("externalPortReplacedDummies"),aW=new Ui("externalPortReplacedDummy"),pp=new vs("externalPortConnections",(e=l(K0(Oo),9),new Zh(e,l(c0(e,e.length),9),0))),l3=new vs(b3t,0),BLe=new Ui("barycenterAssociates"),Qx=new Ui("TopSideComments"),Gx=new Ui("BottomSideComments"),rW=new Ui("CommentConnectionPort"),V1e=new vs("inputCollect",!1),G1e=new vs("outputCollect",!1),yB=new vs("cyclic",!1),jLe=new Ui("crossHierarchyMap"),Y1e=new Ui("targetOffset"),new vs("splineLabelSize",new qa),$6=new Ui("spacings"),oW=new vs("partitionConstraint",!1),c3=new Ui("breakingPoint.info"),KLe=new Ui("splines.survivingEdge"),fv=new Ui("splines.route.start"),z6=new Ui("splines.edgeChain"),GLe=new Ui("originalPortConstraints"),h3=new Ui("selfLoopHolder"),zT=new Ui("splines.nsPortY"),Ki=new Ui("modelOrder"),U1e=new Ui("longEdgeTargetNode"),jb=new vs(Q3t,!1),j6=new vs(Q3t,!1),H1e=new Ui("layerConstraints.hiddenNodes"),ULe=new Ui("layerConstraints.opposidePort"),W1e=new Ui("targetNode.modelOrder")}function ZIn(e,t,n,r){var a,o,f,g,w,E,C,L,B,z,V;for(L=Rr(e.b,0);L.b!=L.d.c;)if(C=l(Br(L),40),!vn(C.c,DG))for(o=l(yc(new bn(null,new kn(cEn(C,e),16)),Pl(new zr,new ht,new Fn,he(le(oc,1),it,108,0,[(Fl(),Ec)]))),15),t==(Js(),uc)||t==vc?o.jd(new nne):o.jd(new o$),V=o.gc(),a=0;a0&&(g=l(o0(l(o.Xb(a),65).a),8).a,B=C.e.a+C.f.a/2,w=l(o0(l(o.Xb(a),65).a),8).b,z=C.e.b+C.f.b/2,r>0&&b.Math.abs(w-z)/(b.Math.abs(g-B)/40)>50&&(z>w?ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a+r/5.3,C.e.b+C.f.b*f-r/2)):ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a+r/5.3,C.e.b+C.f.b*f+r/2)))),ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a,C.e.b+C.f.b*f))):t==vc?(E=ze(Ge(Q(C,(Qi(),c1)))),C.e.a-r>E?ko(l(o.Xb(a),65).a,new lt(E-n,C.e.b+C.f.b*f)):l(o.Xb(a),65).a.b>0&&(g=l(o0(l(o.Xb(a),65).a),8).a,B=C.e.a+C.f.a/2,w=l(o0(l(o.Xb(a),65).a),8).b,z=C.e.b+C.f.b/2,r>0&&b.Math.abs(w-z)/(b.Math.abs(g-B)/40)>50&&(z>w?ko(l(o.Xb(a),65).a,new lt(C.e.a-r/5.3,C.e.b+C.f.b*f-r/2)):ko(l(o.Xb(a),65).a,new lt(C.e.a-r/5.3,C.e.b+C.f.b*f+r/2)))),ko(l(o.Xb(a),65).a,new lt(C.e.a,C.e.b+C.f.b*f))):t==wf?(E=ze(Ge(Q(C,(Qi(),k0)))),C.e.b+C.f.b+r0&&(g=l(o0(l(o.Xb(a),65).a),8).a,B=C.e.a+C.f.a/2,w=l(o0(l(o.Xb(a),65).a),8).b,z=C.e.b+C.f.b/2,r>0&&b.Math.abs(g-B)/(b.Math.abs(w-z)/40)>50&&(B>g?ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f-r/2,C.e.b+r/5.3+C.f.b)):ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f+r/2,C.e.b+r/5.3+C.f.b)))),ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f,C.e.b+C.f.b))):(E=ze(Ge(Q(C,(Qi(),c1)))),C0t(l(o.Xb(a),65),e)?ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f,l(o0(l(o.Xb(a),65).a),8).b)):C.e.b-r>E?ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f,E-n)):l(o.Xb(a),65).a.b>0&&(g=l(o0(l(o.Xb(a),65).a),8).a,B=C.e.a+C.f.a/2,w=l(o0(l(o.Xb(a),65).a),8).b,z=C.e.b+C.f.b/2,r>0&&b.Math.abs(g-B)/(b.Math.abs(w-z)/40)>50&&(B>g?ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f-r/2,C.e.b-r/5.3)):ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f+r/2,C.e.b-r/5.3)))),ko(l(o.Xb(a),65).a,new lt(C.e.a+C.f.a*f,C.e.b)))}function pi(){pi=U;var e,t;eC=new Ui(Byt),a7=new Ui(Fyt),eNe=(og(),Sge),ASt=new pn(qTe,eNe),Z6=new pn(Ox,null),LSt=new Ui(tSe),nNe=(Ym(),rs(Lge,he(le(Mge,1),it,298,0,[Age]))),UB=new pn(SG,nNe),GB=new pn(VP,(Hn(),!1)),rNe=(Js(),J1),xv=new pn(gfe,rNe),aNe=(ip(),Hge),sNe=new pn(HP,aNe),ISt=new pn(ZCe,!1),uNe=(rp(),oY),n7=new pn(CG,uNe),vNe=new lw(12),_2=new pn(Xw,vNe),WB=new pn(hL,!1),Nge=new pn(AG,!1),YB=new pn(fL,!1),ENe=(Ra(),Wb),_M=new pn(Nhe,ENe),n9=new Ui(_G),XB=new Ui(NP),zge=new Ui(oG),qge=new Ui(lL),lNe=new bl,x3=new pn(ZTe,lNe),DSt=new pn(nCe,!1),OSt=new pn(rCe,!1),hNe=new s_,tC=new pn(sCe,hNe),rY=new pn($Te,!1),FSt=new pn(Ryt,1),t7=new Ui(jyt),e7=new Ui($yt),AM=new pn(PP,!1),new pn(zyt,!0),pt(0),new pn(qyt,pt(100)),new pn(Hyt,!1),pt(0),new pn(Vyt,pt(4e3)),pt(0),new pn(Uyt,pt(400)),new pn(Gyt,!1),new pn(Kyt,!1),new pn(Wyt,!0),new pn(Yyt,!1),tNe=(VV(),Kge),MSt=new pn(eSe,tNe),RSt=new pn(LTe,10),jSt=new pn(MTe,10),_Ne=new pn(_he,20),$St=new pn(DTe,10),ANe=new pn(Ohe,2),LNe=new pn(dfe,10),MNe=new pn(ITe,0),iY=new pn(PTe,5),DNe=new pn(OTe,1),INe=new pn(NTe,1),Ev=new pn(Jy,20),zSt=new pn(BTe,10),PNe=new pn(FTe,10),r9=new Ui(RTe),NNe=new nnt,ONe=new pn(aCe,NNe),PSt=new Ui(bfe),wNe=!1,NSt=new pn(pfe,wNe),dNe=new lw(5),fNe=new pn(UTe,dNe),gNe=(qy(),t=l(K0(Ko),9),new Zh(t,l(c0(t,t.length),9),0)),r7=new pn(fT,gNe),xNe=(t6(),Kb),yNe=new pn(WTe,xNe),Bge=new Ui(YTe),Fge=new Ui(XTe),Rge=new Ui(QTe),Pge=new Ui(JTe),pNe=(e=l(K0(BM),9),new Zh(e,l(c0(e,e.length),9),0)),kv=new pn(x6,pNe),mNe=un((Zl(),aC)),Ub=new pn(Nx,mNe),bNe=new lt(0,0),i7=new pn(Px,bNe),C4=new pn(hT,!1),iNe=(F1(),nC),Ige=new pn(eCe,iNe),Dge=new pn(cG,!1),pt(1),new pn(Xyt,null),kNe=new Ui(iCe),jge=new Ui(tCe),SNe=(Ct(),Pc),s7=new pn(zTe,SNe),rh=new Ui(jTe),TNe=(Rl(),un(Yb)),S4=new pn(dT,TNe),$ge=new pn(GTe,!1),CNe=new pn(KTe,!0),aY=new pn(BP,1),BNe=new pn(nSe,null),QB=new pn(FP,150),sY=new pn(RP,1.414),i9=new pn(Qw,null),qSt=new pn(rSe,1),KB=new pn(HTe,!1),Oge=new pn(VTe,!1),oNe=new pn(Ahe,1),cNe=(vU(),Uge),new pn(Qyt,cNe),BSt=!0,VSt=(dx(),L4),USt=L4,HSt=L4}function vo(){vo=U,PAe=new Ws("DIRECTION_PREPROCESSOR",0),IAe=new Ws("COMMENT_PREPROCESSOR",1),D6=new Ws("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),f1e=new Ws("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),eLe=new Ws("PARTITION_PREPROCESSOR",4),DK=new Ws("LABEL_DUMMY_INSERTER",5),zK=new Ws("SELF_LOOP_PREPROCESSOR",6),l4=new Ws("LAYER_CONSTRAINT_PREPROCESSOR",7),JAe=new Ws("PARTITION_MIDPROCESSOR",8),HAe=new Ws("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),XAe=new Ws("NODE_PROMOTION",10),u4=new Ws("LAYER_CONSTRAINT_POSTPROCESSOR",11),ZAe=new Ws("PARTITION_POSTPROCESSOR",12),$Ae=new Ws("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),tLe=new Ws("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),SAe=new Ws("BREAKING_POINT_INSERTER",15),PK=new Ws("LONG_EDGE_SPLITTER",16),d1e=new Ws("PORT_SIDE_PROCESSOR",17),LK=new Ws("INVERTED_PORT_PROCESSOR",18),RK=new Ws("PORT_LIST_SORTER",19),rLe=new Ws("SORT_BY_INPUT_ORDER_OF_MODEL",20),FK=new Ws("NORTH_SOUTH_PORT_PREPROCESSOR",21),_Ae=new Ws("BREAKING_POINT_PROCESSOR",22),QAe=new Ws(H3t,23),iLe=new Ws(V3t,24),jK=new Ws("SELF_LOOP_PORT_RESTORER",25),nLe=new Ws("SINGLE_EDGE_GRAPH_WRAPPER",26),MK=new Ws("IN_LAYER_CONSTRAINT_PROCESSOR",27),FAe=new Ws("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),WAe=new Ws("LABEL_AND_NODE_SIZE_PROCESSOR",29),KAe=new Ws("INNERMOST_NODE_MARGIN_CALCULATOR",30),qK=new Ws("SELF_LOOP_ROUTER",31),MAe=new Ws("COMMENT_NODE_MARGIN_CALCULATOR",32),AK=new Ws("END_LABEL_PREPROCESSOR",33),OK=new Ws("LABEL_DUMMY_SWITCHER",34),LAe=new Ws("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),LT=new Ws("LABEL_SIDE_SELECTOR",36),UAe=new Ws("HYPEREDGE_DUMMY_MERGER",37),zAe=new Ws("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),YAe=new Ws("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),zL=new Ws("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),OAe=new Ws("CONSTRAINTS_POSTPROCESSOR",41),DAe=new Ws("COMMENT_POSTPROCESSOR",42),GAe=new Ws("HYPERNODE_PROCESSOR",43),qAe=new Ws("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),NK=new Ws("LONG_EDGE_JOINER",45),$K=new Ws("SELF_LOOP_POSTPROCESSOR",46),AAe=new Ws("BREAKING_POINT_REMOVER",47),BK=new Ws("NORTH_SOUTH_PORT_POSTPROCESSOR",48),VAe=new Ws("HORIZONTAL_COMPACTOR",49),IK=new Ws("LABEL_DUMMY_REMOVER",50),RAe=new Ws("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),BAe=new Ws("END_LABEL_SORTER",52),gB=new Ws("REVERSED_EDGE_RESTORER",53),_K=new Ws("END_LABEL_POSTPROCESSOR",54),jAe=new Ws("HIERARCHICAL_NODE_RESIZER",55),NAe=new Ws("DIRECTION_POSTPROCESSOR",56)}function Yke(){Yke=U,iMe=(pN(),XK),r9t=new pn(VEe,iMe),p9t=new pn(UEe,(Hn(),!1)),lMe=(zH(),z1e),y9t=new pn(fG,lMe),P9t=new pn(GEe,!1),B9t=new pn(KEe,!0),Lxt=new pn(WEe,!1),vMe=(dN(),kde),Q9t=new pn(YEe,vMe),pt(1),skt=new pn(XEe,pt(7)),akt=new pn(QEe,!1),b9t=new pn(JEe,!1),rMe=(l2(),A1e),n9t=new pn(zhe,rMe),dMe=(p2(),gde),N9t=new pn(qP,dMe),hMe=(hf(),EB),S9t=new pn(ZEe,hMe),pt(-1),C9t=new pn(eTe,null),pt(-1),_9t=new pn(tTe,pt(-1)),pt(-1),A9t=new pn(qhe,pt(4)),pt(-1),M9t=new pn(Hhe,pt(2)),fMe=(Nf(),AW),O9t=new pn(Vhe,fMe),pt(0),I9t=new pn(Uhe,pt(0)),E9t=new pn(Ghe,pt(Ii)),nMe=(dA(),HL),t9t=new pn(pL,nMe),$xt=new pn(nTe,!1),Kxt=new pn(Khe,.1),Zxt=new pn(Whe,!1),Yxt=new pn(rTe,null),Xxt=new pn(iTe,null),pt(-1),Qxt=new pn(sTe,null),pt(-1),Jxt=new pn(aTe,pt(-1)),pt(0),zxt=new pn(oTe,pt(40)),tMe=(vE(),j1e),Uxt=new pn(Yhe,tMe),eMe=vB,qxt=new pn(dG,eMe),mMe=(OA(),rM),X9t=new pn(k6,mMe),z9t=new Ui(gG),gMe=(cN(),JK),F9t=new pn(Xhe,gMe),pMe=(WN(),ZK),j9t=new pn(Qhe,pMe),V9t=new pn(Jhe,.3),G9t=new Ui(Zhe),bMe=(By(),_W),K9t=new pn(efe,bMe),oMe=(LV(),Tde),c9t=new pn(cTe,oMe),cMe=(yA(),Sde),u9t=new pn(uTe,cMe),uMe=(SE(),aM),l9t=new pn(pG,uMe),f9t=new pn(bG,.2),a9t=new pn(tfe,2),tkt=new pn(lTe,null),rkt=new pn(hTe,10),nkt=new pn(fTe,10),ikt=new pn(dTe,20),pt(0),J9t=new pn(gTe,pt(0)),pt(0),Z9t=new pn(pTe,pt(0)),pt(0),ekt=new pn(bTe,pt(0)),Mxt=new pn(nfe,!1),XLe=(zE(),VL),Ixt=new pn(mTe,XLe),YLe=(JH(),S1e),Dxt=new pn(vTe,YLe),v9t=new pn(mG,!1),pt(0),m9t=new pn(rfe,pt(16)),pt(0),w9t=new pn(ife,pt(5)),xMe=(OV(),Lde),Skt=new pn(fp,xMe),okt=new pn(vG,10),lkt=new pn(wG,1),yMe=(pV(),YK),mkt=new pn(bL,yMe),dkt=new Ui(sfe),wMe=pt(1),pt(0),pkt=new pn(afe,wMe),kMe=(gV(),Ade),Mkt=new pn(yG,kMe),_kt=new Ui(xG),kkt=new pn(kG,!0),ykt=new pn(EG,2),Tkt=new pn(ofe,!0),aMe=(yU(),QK),s9t=new pn(wTe,aMe),sMe=(yx(),OT),i9t=new pn(yTe,sMe),ZLe=(Ed(),E2),jxt=new pn(TG,ZLe),Rxt=new pn(xTe,!1),Fxt=new pn(kTe,!1),QLe=(Km(),c4),Oxt=new pn(cfe,QLe),JLe=(EA(),pde),Bxt=new pn(ETe,JLe),Nxt=new pn(ufe,0),Pxt=new pn(lfe,0),k9t=L1e,x9t=mB,L9t=CW,D9t=CW,T9t=dde,Wxt=(rp(),A2),e9t=HL,Gxt=HL,Hxt=HL,Vxt=A2,q9t=iM,H9t=rM,R9t=rM,$9t=rM,U9t=wde,Y9t=iM,W9t=iM,h9t=(ip(),s9),d9t=s9,g9t=aM,o9t=JB,ckt=XT,ukt=k4,hkt=XT,fkt=k4,vkt=XT,wkt=k4,gkt=_1e,bkt=YK,Dkt=XT,Ikt=k4,Akt=XT,Lkt=k4,Ekt=k4,xkt=k4,Ckt=k4}function eOn(e,t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn,jn,ur,oi,ws,Vl,lc,Hh,f7,P2,L0,M0,_v,h9,rm,f9,qd,_g,S3,d9,d7,Hd,Av,yp,IAt,sBe,_3,YM,lpe,g9,XM,F4,QM,hpe,OAt;for(sBe=0,oi=t,lc=0,P2=oi.length;lc0&&(e.a[qd.p]=sBe++)}for(XM=0,ws=n,Hh=0,L0=ws.length;Hh0;){for(qd=(mr(d7.b>0),l(d7.a.Xb(d7.c=--d7.b),12)),d9=0,g=new G(qd.e);g.a0&&(qd.j==(Ct(),Qn)?(e.a[qd.p]=XM,++XM):(e.a[qd.p]=XM+M0+h9,++h9))}XM+=h9}for(S3=new Pr,V=new bd,ur=t,Vl=0,f7=ur.length;VlE.b&&(E.b=Hd)):qd.i.c==IAt&&(HdE.c&&(E.c=Hd));for(nE(J,0,J.length,null),g9=We(Vr,di,28,J.length,15,1),r=We(Vr,di,28,XM+1,15,1),fe=0;fe0;)St%2>0&&(a+=hpe[St+1]),St=(St-1)/2|0,++hpe[St];for(an=We(MEt,Rn,374,J.length*2,0,1),$e=0;$e0&&GO(Vl.f),at(fe,BNe)!=null&&(g=l(at(fe,BNe),347),S3=g.Tg(fe),F5(fe,b.Math.max(fe.g,S3.a),b.Math.max(fe.f,S3.b)));if(L0=l(at(t,_2),107),z=t.g-(L0.b+L0.c),B=t.f-(L0.d+L0.a),Hd.bh("Available Child Area: ("+z+"|"+B+")"),Hi(t,Z6,z/B),sdt(t,a,r.eh(f7)),l(at(t,i9),280)==dY&&(Uke(t),F5(t,L0.b+ze(Ge(at(t,t7)))+L0.c,L0.d+ze(Ge(at(t,e7)))+L0.a)),Hd.bh("Executed layout algorithm: "+ei(at(t,eC))+" on node "+t.k),l(at(t,i9),280)==L4){if(z<0||B<0)throw ue(new Vp("The size defined by the parent parallel node is too small for the space provided by the paddings of the child hierarchical node. "+t.k));for(P1(t,t7)||P1(t,e7)||Uke(t),J=ze(Ge(at(t,t7))),V=ze(Ge(at(t,e7))),Hd.bh("Desired Child Area: ("+J+"|"+V+")"),_v=z/J,h9=B/V,M0=b.Math.min(_v,b.Math.min(h9,ze(Ge(at(t,qSt))))),Hi(t,aY,M0),Hd.bh(t.k+" -- Local Scale Factor (X|Y): ("+_v+"|"+h9+")"),$e=l(at(t,UB),21),o=0,f=0,M0<_v&&($e.Hc((Ym(),EM))?o=(z/2-J*M0/2)/M0:$e.Hc(TM)&&(o=(z-J*M0)/M0)),M0'?":vn(L4t,e)?"'(?<' or '(? toIndex: ",fEe=", toIndex: ",dEe="Index: ",gEe=", Size: ",oT="org.eclipse.elk.alg.common",ii={50:1},Jwt="org.eclipse.elk.alg.common.compaction",Zwt="Scanline/EventHandler",gg="org.eclipse.elk.alg.common.compaction.oned",e3t="CNode belongs to another CGroup.",t3t="ISpacingsHandler/1",phe="The ",bhe=" instance has been finished already.",n3t="The direction ",r3t=" is not supported by the CGraph instance.",i3t="OneDimensionalCompactor",s3t="OneDimensionalCompactor/lambda$0$Type",a3t="Quadruplet",o3t="ScanlineConstraintCalculator",c3t="ScanlineConstraintCalculator/ConstraintsScanlineHandler",u3t="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",l3t="ScanlineConstraintCalculator/Timestamp",h3t="ScanlineConstraintCalculator/lambda$0$Type",Ld={178:1,46:1},mhe="org.eclipse.elk.alg.common.compaction.options",Nc="org.eclipse.elk.core.data",pEe="org.eclipse.elk.polyomino.traversalStrategy",bEe="org.eclipse.elk.polyomino.lowLevelSort",mEe="org.eclipse.elk.polyomino.highLevelSort",vEe="org.eclipse.elk.polyomino.fill",Pf={134:1},vhe="polyomino",oL="org.eclipse.elk.alg.common.networksimplex",pg={183:1,3:1,4:1},f3t="org.eclipse.elk.alg.common.nodespacing",ev="org.eclipse.elk.alg.common.nodespacing.cellsystem",cT="CENTER",d3t={217:1,336:1},wEe={3:1,4:1,5:1,603:1},Mx="LEFT",Dx="RIGHT",yEe="Vertical alignment cannot be null",xEe="BOTTOM",tG="org.eclipse.elk.alg.common.nodespacing.internal",cL="UNDEFINED",H1=.01,DP="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",g3t="LabelPlacer/lambda$0$Type",p3t="LabelPlacer/lambda$1$Type",b3t="portRatioOrPosition",uT="org.eclipse.elk.alg.common.overlaps",whe="DOWN",Md="org.eclipse.elk.alg.common.polyomino",nG="NORTH",yhe="EAST",xhe="SOUTH",khe="WEST",rG="org.eclipse.elk.alg.common.polyomino.structures",kEe="Direction",Ehe="Grid is only of size ",The=". Requested point (",Che=") is out of bounds.",iG=" Given center based coordinates were (",IP="org.eclipse.elk.graph.properties",m3t="IPropertyHolder",EEe={3:1,96:1,137:1},Ix="org.eclipse.elk.alg.common.spore",v3t="org.eclipse.elk.alg.common.utils",tv={205:1},v6="org.eclipse.elk.core",w3t="Connected Components Compaction",y3t="org.eclipse.elk.alg.disco",sG="org.eclipse.elk.alg.disco.graph",She="org.eclipse.elk.alg.disco.options",TEe="CompactionStrategy",CEe="org.eclipse.elk.disco.componentCompaction.strategy",SEe="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",_Ee="org.eclipse.elk.disco.debug.discoGraph",AEe="org.eclipse.elk.disco.debug.discoPolys",x3t="componentCompaction",nv="org.eclipse.elk.disco",_he="org.eclipse.elk.spacing.componentComponent",Ahe="org.eclipse.elk.edge.thickness",Ox="org.eclipse.elk.aspectRatio",Xw="org.eclipse.elk.padding",w6="org.eclipse.elk.alg.disco.transform",Lhe=1.5707963267948966,y6=17976931348623157e292,Qy={3:1,4:1,5:1,198:1},k3t={3:1,6:1,4:1,5:1,100:1,115:1},Mhe="org.eclipse.elk.alg.force",LEe="ComponentsProcessor",E3t="ComponentsProcessor/1",MEe="ElkGraphImporter/lambda$0$Type",OP="org.eclipse.elk.alg.force.graph",T3t="Component Layout",DEe="org.eclipse.elk.alg.force.model",aG="org.eclipse.elk.force.model",IEe="org.eclipse.elk.force.iterations",OEe="org.eclipse.elk.force.repulsivePower",Dhe="org.eclipse.elk.force.temperature",Dd=.001,Ihe="org.eclipse.elk.force.repulsion",uL="org.eclipse.elk.alg.force.options",lT=1.600000023841858,Yu="org.eclipse.elk.force",NP="org.eclipse.elk.priority",Jy="org.eclipse.elk.spacing.nodeNode",Ohe="org.eclipse.elk.spacing.edgeLabel",oG="org.eclipse.elk.randomSeed",lL="org.eclipse.elk.separateConnectedComponents",hL="org.eclipse.elk.interactive",Nhe="org.eclipse.elk.portConstraints",cG="org.eclipse.elk.edgeLabels.inline",fL="org.eclipse.elk.omitNodeMicroLayout",hT="org.eclipse.elk.nodeSize.fixedGraphSize",Nx="org.eclipse.elk.nodeSize.options",x6="org.eclipse.elk.nodeSize.constraints",fT="org.eclipse.elk.nodeLabels.placement",dT="org.eclipse.elk.portLabels.placement",PP="org.eclipse.elk.topdownLayout",BP="org.eclipse.elk.topdown.scaleFactor",FP="org.eclipse.elk.topdown.hierarchicalNodeWidth",RP="org.eclipse.elk.topdown.hierarchicalNodeAspectRatio",Qw="org.eclipse.elk.topdown.nodeType",NEe="origin",C3t="random",S3t="boundingBox.upLeft",_3t="boundingBox.lowRight",PEe="org.eclipse.elk.stress.fixed",BEe="org.eclipse.elk.stress.desiredEdgeLength",FEe="org.eclipse.elk.stress.dimension",REe="org.eclipse.elk.stress.epsilon",jEe="org.eclipse.elk.stress.iterationLimit",Mb="org.eclipse.elk.stress",A3t="ELK Stress",Px="org.eclipse.elk.nodeSize.minimum",uG="org.eclipse.elk.alg.force.stress",L3t="Layered layout",Bx="org.eclipse.elk.alg.layered",jP="org.eclipse.elk.alg.layered.compaction.components",dL="org.eclipse.elk.alg.layered.compaction.oned",lG="org.eclipse.elk.alg.layered.compaction.oned.algs",rv="org.eclipse.elk.alg.layered.compaction.recthull",V1="org.eclipse.elk.alg.layered.components",Id="NONE",$Ee="MODEL_ORDER",au={3:1,6:1,4:1,9:1,5:1,126:1},M3t={3:1,6:1,4:1,5:1,150:1,100:1,115:1},hG="org.eclipse.elk.alg.layered.compound",ts={47:1},Cu="org.eclipse.elk.alg.layered.graph",Phe=" -> ",D3t="Not supported by LGraph",zEe="Port side is undefined",Bhe={3:1,6:1,4:1,5:1,483:1,150:1,100:1,115:1},m2={3:1,6:1,4:1,5:1,150:1,199:1,210:1,100:1,115:1},I3t={3:1,6:1,4:1,5:1,150:1,2042:1,210:1,100:1,115:1},O3t=`([{"' \r `,N3t=`)]}"' \r -`,P3t="The given string contains parts that cannot be parsed as numbers.",$P="org.eclipse.elk.core.math",B3t={3:1,4:1,140:1,214:1,423:1},F3t={3:1,4:1,107:1,214:1,423:1},v2="org.eclipse.elk.alg.layered.graph.transform",R3t="ElkGraphImporter",j3t="ElkGraphImporter/lambda$1$Type",$3t="ElkGraphImporter/lambda$2$Type",z3t="ElkGraphImporter/lambda$4$Type",rr="org.eclipse.elk.alg.layered.intermediate",q3t="Node margin calculation",H3t="ONE_SIDED_GREEDY_SWITCH",V3t="TWO_SIDED_GREEDY_SWITCH",Fhe="No implementation is available for the layout processor ",Rhe="IntermediateProcessorStrategy",jhe="Node '",U3t="FIRST_SEPARATE",G3t="LAST_SEPARATE",K3t="Odd port side processing",aa="org.eclipse.elk.alg.layered.intermediate.compaction",gL="org.eclipse.elk.alg.layered.intermediate.greedyswitch",bg="org.eclipse.elk.alg.layered.p3order.counting",zP={230:1},Fx="org.eclipse.elk.alg.layered.intermediate.loops",Bh="org.eclipse.elk.alg.layered.intermediate.loops.ordering",Db="org.eclipse.elk.alg.layered.intermediate.loops.routing",qEe="org.eclipse.elk.alg.layered.intermediate.preserveorder",Od="org.eclipse.elk.alg.layered.intermediate.wrapping",ou="org.eclipse.elk.alg.layered.options",$he="INTERACTIVE",HEe="GREEDY",W3t="DEPTH_FIRST",Y3t="EDGE_LENGTH",X3t="SELF_LOOPS",Q3t="firstTryWithInitialOrder",VEe="org.eclipse.elk.layered.directionCongruency",UEe="org.eclipse.elk.layered.feedbackEdges",fG="org.eclipse.elk.layered.interactiveReferencePoint",GEe="org.eclipse.elk.layered.mergeEdges",KEe="org.eclipse.elk.layered.mergeHierarchyEdges",WEe="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",YEe="org.eclipse.elk.layered.portSortingStrategy",XEe="org.eclipse.elk.layered.thoroughness",QEe="org.eclipse.elk.layered.unnecessaryBendpoints",JEe="org.eclipse.elk.layered.generatePositionAndLayerIds",zhe="org.eclipse.elk.layered.cycleBreaking.strategy",qP="org.eclipse.elk.layered.layering.strategy",ZEe="org.eclipse.elk.layered.layering.layerConstraint",eTe="org.eclipse.elk.layered.layering.layerChoiceConstraint",tTe="org.eclipse.elk.layered.layering.layerId",qhe="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",Hhe="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",Vhe="org.eclipse.elk.layered.layering.nodePromotion.strategy",Uhe="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",Ghe="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",pL="org.eclipse.elk.layered.crossingMinimization.strategy",nTe="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",Khe="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",Whe="org.eclipse.elk.layered.crossingMinimization.semiInteractive",rTe="org.eclipse.elk.layered.crossingMinimization.inLayerPredOf",iTe="org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf",sTe="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",aTe="org.eclipse.elk.layered.crossingMinimization.positionId",oTe="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",Yhe="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",dG="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",k6="org.eclipse.elk.layered.nodePlacement.strategy",gG="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",Xhe="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",Qhe="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",Jhe="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",Zhe="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",efe="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",cTe="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",uTe="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",pG="org.eclipse.elk.layered.edgeRouting.splines.mode",bG="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",tfe="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",lTe="org.eclipse.elk.layered.spacing.baseValue",hTe="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",fTe="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",dTe="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",gTe="org.eclipse.elk.layered.priority.direction",pTe="org.eclipse.elk.layered.priority.shortness",bTe="org.eclipse.elk.layered.priority.straightness",nfe="org.eclipse.elk.layered.compaction.connectedComponents",mTe="org.eclipse.elk.layered.compaction.postCompaction.strategy",vTe="org.eclipse.elk.layered.compaction.postCompaction.constraints",mG="org.eclipse.elk.layered.highDegreeNodes.treatment",rfe="org.eclipse.elk.layered.highDegreeNodes.threshold",ife="org.eclipse.elk.layered.highDegreeNodes.treeHeight",fp="org.eclipse.elk.layered.wrapping.strategy",vG="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",wG="org.eclipse.elk.layered.wrapping.correctionFactor",bL="org.eclipse.elk.layered.wrapping.cutting.strategy",sfe="org.eclipse.elk.layered.wrapping.cutting.cuts",afe="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",yG="org.eclipse.elk.layered.wrapping.validify.strategy",xG="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",kG="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",EG="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",ofe="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",wTe="org.eclipse.elk.layered.edgeLabels.sideSelection",yTe="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",TG="org.eclipse.elk.layered.considerModelOrder.strategy",xTe="org.eclipse.elk.layered.considerModelOrder.portModelOrder",kTe="org.eclipse.elk.layered.considerModelOrder.noModelOrder",cfe="org.eclipse.elk.layered.considerModelOrder.components",ETe="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",ufe="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",lfe="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",hfe="layering",J3t="layering.minWidth",Z3t="layering.nodePromotion",gT="crossingMinimization",CG="org.eclipse.elk.hierarchyHandling",eyt="crossingMinimization.greedySwitch",tyt="nodePlacement",nyt="nodePlacement.bk",ryt="edgeRouting",HP="org.eclipse.elk.edgeRouting",U1="spacing",TTe="priority",CTe="compaction",iyt="compaction.postCompaction",syt="Specifies whether and how post-process compaction is applied.",STe="highDegreeNodes",_Te="wrapping",ayt="wrapping.cutting",oyt="wrapping.validify",ATe="wrapping.multiEdge",ffe="edgeLabels",mL="considerModelOrder",LTe="org.eclipse.elk.spacing.commentComment",MTe="org.eclipse.elk.spacing.commentNode",DTe="org.eclipse.elk.spacing.edgeEdge",dfe="org.eclipse.elk.spacing.edgeNode",ITe="org.eclipse.elk.spacing.labelLabel",OTe="org.eclipse.elk.spacing.labelPortHorizontal",NTe="org.eclipse.elk.spacing.labelPortVertical",PTe="org.eclipse.elk.spacing.labelNode",BTe="org.eclipse.elk.spacing.nodeSelfLoop",FTe="org.eclipse.elk.spacing.portPort",RTe="org.eclipse.elk.spacing.individual",jTe="org.eclipse.elk.port.borderOffset",$Te="org.eclipse.elk.noLayout",zTe="org.eclipse.elk.port.side",VP="org.eclipse.elk.debugMode",qTe="org.eclipse.elk.alignment",HTe="org.eclipse.elk.insideSelfLoops.activate",VTe="org.eclipse.elk.insideSelfLoops.yo",gfe="org.eclipse.elk.direction",UTe="org.eclipse.elk.nodeLabels.padding",GTe="org.eclipse.elk.portLabels.nextToPortIfPossible",KTe="org.eclipse.elk.portLabels.treatAsGroup",WTe="org.eclipse.elk.portAlignment.default",YTe="org.eclipse.elk.portAlignment.north",XTe="org.eclipse.elk.portAlignment.south",QTe="org.eclipse.elk.portAlignment.west",JTe="org.eclipse.elk.portAlignment.east",SG="org.eclipse.elk.contentAlignment",ZTe="org.eclipse.elk.junctionPoints",eCe="org.eclipse.elk.edgeLabels.placement",tCe="org.eclipse.elk.port.index",nCe="org.eclipse.elk.commentBox",rCe="org.eclipse.elk.hypernode",iCe="org.eclipse.elk.port.anchor",pfe="org.eclipse.elk.partitioning.activate",bfe="org.eclipse.elk.partitioning.partition",_G="org.eclipse.elk.position",sCe="org.eclipse.elk.margins",aCe="org.eclipse.elk.spacing.portsSurrounding",AG="org.eclipse.elk.interactiveLayout",Uc="org.eclipse.elk.core.util",oCe={3:1,4:1,5:1,601:1},cyt="NETWORK_SIMPLEX",cCe="SIMPLE",Uo={106:1,47:1},LG="org.eclipse.elk.alg.layered.p1cycles",dp="org.eclipse.elk.alg.layered.p2layers",uCe={413:1,230:1},uyt={846:1,3:1,4:1},Cl="org.eclipse.elk.alg.layered.p3order",Go="org.eclipse.elk.alg.layered.p4nodes",lyt={3:1,4:1,5:1,854:1},Nd=1e-5,Ib="org.eclipse.elk.alg.layered.p4nodes.bk",mfe="org.eclipse.elk.alg.layered.p5edges",i1="org.eclipse.elk.alg.layered.p5edges.orthogonal",vfe="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",wfe=1e-6,Zy="org.eclipse.elk.alg.layered.p5edges.splines",yfe=.09999999999999998,MG=1e-8,hyt=4.71238898038469,lCe=3.141592653589793,gp="org.eclipse.elk.alg.mrtree",xfe=.10000000149011612,DG="SUPER_ROOT",vL="org.eclipse.elk.alg.mrtree.graph",hCe=-17976931348623157e292,Su="org.eclipse.elk.alg.mrtree.intermediate",fyt="Processor compute fanout",IG={3:1,6:1,4:1,5:1,534:1,100:1,115:1},dyt="Set neighbors in level",UP="org.eclipse.elk.alg.mrtree.options",gyt="DESCENDANTS",fCe="org.eclipse.elk.mrtree.compaction",dCe="org.eclipse.elk.mrtree.edgeEndTextureLength",gCe="org.eclipse.elk.mrtree.treeLevel",pCe="org.eclipse.elk.mrtree.positionConstraint",bCe="org.eclipse.elk.mrtree.weighting",mCe="org.eclipse.elk.mrtree.edgeRoutingMode",vCe="org.eclipse.elk.mrtree.searchOrder",pyt="Position Constraint",Xu="org.eclipse.elk.mrtree",byt="org.eclipse.elk.tree",myt="Processor arrange level",pT="org.eclipse.elk.alg.mrtree.p2order",vh="org.eclipse.elk.alg.mrtree.p4route",wCe="org.eclipse.elk.alg.radial",iv=6.283185307179586,yCe="Before",xCe=5e-324,OG="After",kCe="org.eclipse.elk.alg.radial.intermediate",vyt="COMPACTION",kfe="org.eclipse.elk.alg.radial.intermediate.compaction",wyt={3:1,4:1,5:1,100:1},ECe="org.eclipse.elk.alg.radial.intermediate.optimization",Efe="No implementation is available for the layout option ",wL="org.eclipse.elk.alg.radial.options",TCe="org.eclipse.elk.radial.centerOnRoot",CCe="org.eclipse.elk.radial.orderId",SCe="org.eclipse.elk.radial.radius",NG="org.eclipse.elk.radial.rotate",Tfe="org.eclipse.elk.radial.compactor",Cfe="org.eclipse.elk.radial.compactionStepSize",_Ce="org.eclipse.elk.radial.sorter",ACe="org.eclipse.elk.radial.wedgeCriteria",LCe="org.eclipse.elk.radial.optimizationCriteria",Sfe="org.eclipse.elk.radial.rotation.targetAngle",_fe="org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace",MCe="org.eclipse.elk.radial.rotation.outgoingEdgeAngles",yyt="Compaction",DCe="rotation",gf="org.eclipse.elk.radial",xyt="org.eclipse.elk.alg.radial.p1position.wedge",ICe="org.eclipse.elk.alg.radial.sorting",kyt=5.497787143782138,Eyt=3.9269908169872414,Tyt=2.356194490192345,Cyt="org.eclipse.elk.alg.rectpacking",PG="org.eclipse.elk.alg.rectpacking.intermediate",Afe="org.eclipse.elk.alg.rectpacking.options",OCe="org.eclipse.elk.rectpacking.trybox",NCe="org.eclipse.elk.rectpacking.currentPosition",PCe="org.eclipse.elk.rectpacking.desiredPosition",BCe="org.eclipse.elk.rectpacking.inNewRow",FCe="org.eclipse.elk.rectpacking.widthApproximation.strategy",RCe="org.eclipse.elk.rectpacking.widthApproximation.targetWidth",jCe="org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal",$Ce="org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift",zCe="org.eclipse.elk.rectpacking.packing.strategy",qCe="org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation",HCe="org.eclipse.elk.rectpacking.packing.compaction.iterations",VCe="org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy",Lfe="widthApproximation",Syt="Compaction Strategy",_yt="packing.compaction",th="org.eclipse.elk.rectpacking",bT="org.eclipse.elk.alg.rectpacking.p1widthapproximation",BG="org.eclipse.elk.alg.rectpacking.p2packing",Ayt="No Compaction",UCe="org.eclipse.elk.alg.rectpacking.p3whitespaceelimination",GP="org.eclipse.elk.alg.rectpacking.util",FG="No implementation available for ",e4="org.eclipse.elk.alg.spore",t4="org.eclipse.elk.alg.spore.options",Jw="org.eclipse.elk.sporeCompaction",Mfe="org.eclipse.elk.underlyingLayoutAlgorithm",GCe="org.eclipse.elk.processingOrder.treeConstruction",KCe="org.eclipse.elk.processingOrder.spanningTreeCostFunction",Dfe="org.eclipse.elk.processingOrder.preferredRoot",Ife="org.eclipse.elk.processingOrder.rootSelection",Ofe="org.eclipse.elk.structure.structureExtractionStrategy",WCe="org.eclipse.elk.compaction.compactionStrategy",YCe="org.eclipse.elk.compaction.orthogonal",XCe="org.eclipse.elk.overlapRemoval.maxIterations",QCe="org.eclipse.elk.overlapRemoval.runScanline",Nfe="processingOrder",Lyt="overlapRemoval",mT="org.eclipse.elk.sporeOverlap",Myt="org.eclipse.elk.alg.spore.p1structure",Pfe="org.eclipse.elk.alg.spore.p2processingorder",Bfe="org.eclipse.elk.alg.spore.p3execution",Dyt="Topdown Layout",Iyt="Invalid index: ",vT="org.eclipse.elk.core.alg",E6={341:1},n4={295:1},Oyt="Make sure its type is registered with the ",JCe=" utility class.",wT="true",Ffe="false",Nyt="Couldn't clone property '",Zw=.05,nh="org.eclipse.elk.core.options",Pyt=1.2999999523162842,e3="org.eclipse.elk.box",ZCe="org.eclipse.elk.expandNodes",eSe="org.eclipse.elk.box.packingMode",Byt="org.eclipse.elk.algorithm",Fyt="org.eclipse.elk.resolvedAlgorithm",tSe="org.eclipse.elk.bendPoints",rOn="org.eclipse.elk.labelManager",Ryt="org.eclipse.elk.scaleFactor",jyt="org.eclipse.elk.childAreaWidth",$yt="org.eclipse.elk.childAreaHeight",zyt="org.eclipse.elk.animate",qyt="org.eclipse.elk.animTimeFactor",Hyt="org.eclipse.elk.layoutAncestors",Vyt="org.eclipse.elk.maxAnimTime",Uyt="org.eclipse.elk.minAnimTime",Gyt="org.eclipse.elk.progressBar",Kyt="org.eclipse.elk.validateGraph",Wyt="org.eclipse.elk.validateOptions",Yyt="org.eclipse.elk.zoomToFit",iOn="org.eclipse.elk.font.name",Xyt="org.eclipse.elk.font.size",nSe="org.eclipse.elk.topdown.sizeApproximator",rSe="org.eclipse.elk.topdown.scaleCap",Qyt="org.eclipse.elk.edge.type",Jyt="partitioning",Zyt="nodeLabels",RG="portAlignment",Rfe="nodeSize",jfe="port",iSe="portLabels",KP="topdown",e4t="insideSelfLoops",yL="org.eclipse.elk.fixed",jG="org.eclipse.elk.random",sSe={3:1,34:1,22:1,347:1},t4t="port must have a parent node to calculate the port side",n4t="The edge needs to have exactly one edge section. Found: ",xL="org.eclipse.elk.core.util.adapters",pf="org.eclipse.emf.ecore",T6="org.eclipse.elk.graph",r4t="EMapPropertyHolder",i4t="ElkBendPoint",s4t="ElkGraphElement",a4t="ElkConnectableShape",aSe="ElkEdge",o4t="ElkEdgeSection",c4t="EModelElement",u4t="ENamedElement",oSe="ElkLabel",cSe="ElkNode",uSe="ElkPort",l4t={94:1,93:1},Rx="org.eclipse.emf.common.notify.impl",Ob="The feature '",kL="' is not a valid changeable feature",h4t="Expecting null",$fe="' is not a valid feature",f4t="The feature ID",d4t=" is not a valid feature ID",eu=32768,g4t={110:1,94:1,93:1,58:1,54:1,99:1},Gn="org.eclipse.emf.ecore.impl",sv="org.eclipse.elk.graph.impl",EL="Recursive containment not allowed for ",yT="The datatype '",t3="' is not a valid classifier",zfe="The value '",C6={195:1,3:1,4:1},qfe="The class '",xT="http://www.eclipse.org/elk/ElkGraph",lSe="property",TL="value",Hfe="source",p4t="properties",b4t="identifier",Vfe="height",Ufe="width",Gfe="parent",Kfe="text",Wfe="children",m4t="hierarchical",hSe="sources",Yfe="targets",fSe="sections",$G="bendPoints",dSe="outgoingShape",gSe="incomingShape",pSe="outgoingSections",bSe="incomingSections",So="org.eclipse.emf.common.util",mSe="Severe implementation error in the Json to ElkGraph importer.",Pd="id",no="org.eclipse.elk.graph.json",vSe="Unhandled parameter types: ",v4t="startPoint",w4t="An edge must have at least one source and one target (edge id: '",kT="').",y4t="Referenced edge section does not exist: ",x4t=" (edge id: '",wSe="target",k4t="sourcePoint",E4t="targetPoint",zG="group",_i="name",T4t="connectableShape cannot be null",C4t="edge cannot be null",Xfe="Passed edge is not 'simple'.",qG="org.eclipse.elk.graph.util",WP="The 'no duplicates' constraint is violated",Qfe="targetIndex=",av=", size=",Jfe="sourceIndex=",Bd={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1},Zfe={3:1,4:1,20:1,31:1,56:1,16:1,51:1,15:1,59:1,70:1,66:1,61:1,596:1},HG="logging",S4t="measureExecutionTime",_4t="parser.parse.1",A4t="parser.parse.2",VG="parser.next.1",e0e="parser.next.2",L4t="parser.next.3",M4t="parser.next.4",ov="parser.factor.1",ySe="parser.factor.2",D4t="parser.factor.3",I4t="parser.factor.4",O4t="parser.factor.5",N4t="parser.factor.6",P4t="parser.atom.1",B4t="parser.atom.2",F4t="parser.atom.3",xSe="parser.atom.4",t0e="parser.atom.5",kSe="parser.cc.1",UG="parser.cc.2",R4t="parser.cc.3",j4t="parser.cc.5",ESe="parser.cc.6",TSe="parser.cc.7",n0e="parser.cc.8",$4t="parser.ope.1",z4t="parser.ope.2",q4t="parser.ope.3",w2="parser.descape.1",H4t="parser.descape.2",V4t="parser.descape.3",U4t="parser.descape.4",G4t="parser.descape.5",bf="parser.process.1",K4t="parser.quantifier.1",W4t="parser.quantifier.2",Y4t="parser.quantifier.3",X4t="parser.quantifier.4",CSe="parser.quantifier.5",Q4t="org.eclipse.emf.common.notify",SSe={424:1,686:1},J4t={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1},YP={378:1,152:1},CL="index=",r0e={3:1,4:1,5:1,129:1},Z4t={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,61:1},_Se={3:1,6:1,4:1,5:1,198:1},e5t={3:1,4:1,5:1,173:1,379:1},t5t=";/?:@&=+$,",n5t="invalid authority: ",r5t="EAnnotation",i5t="ETypedElement",s5t="EStructuralFeature",a5t="EAttribute",o5t="EClassifier",c5t="EEnumLiteral",u5t="EGenericType",l5t="EOperation",h5t="EParameter",f5t="EReference",d5t="ETypeParameter",us="org.eclipse.emf.ecore.util",i0e={79:1},ASe={3:1,20:1,16:1,15:1,61:1,597:1,79:1,71:1,97:1},g5t="org.eclipse.emf.ecore.util.FeatureMap$Entry",Sl=8192,r4=2048,SL="byte",GG="char",_L="double",AL="float",LL="int",ML="long",DL="short",p5t="java.lang.Object",S6={3:1,4:1,5:1,254:1},LSe={3:1,4:1,5:1,688:1},b5t={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,71:1},kc={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,71:1,97:1},XP="mixed",ui="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",Bf="kind",m5t={3:1,4:1,5:1,689:1},MSe={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1,79:1,71:1,97:1},KG={20:1,31:1,56:1,16:1,15:1,61:1,71:1},WG={51:1,128:1,287:1},YG={76:1,343:1},XG="The value of type '",QG="' must be of type '",_6=1352,Ff="http://www.eclipse.org/emf/2002/Ecore",JG=-32768,n3="constraints",ho="baseType",v5t="getEStructuralFeature",w5t="getFeatureID",IL="feature",y5t="getOperationID",DSe="operation",x5t="defaultValue",k5t="eTypeParameters",E5t="isInstance",T5t="getEEnumLiteral",C5t="eContainingClass",yi={57:1},S5t={3:1,4:1,5:1,124:1},_5t="org.eclipse.emf.ecore.resource",A5t={94:1,93:1,599:1,2034:1},s0e="org.eclipse.emf.ecore.resource.impl",ISe="unspecified",QP="simple",ZG="attribute",L5t="attributeWildcard",eK="element",a0e="elementWildcard",s1="collapse",o0e="itemType",tK="namespace",JP="##targetNamespace",Rf="whiteSpace",OSe="wildcards",cv="http://www.eclipse.org/emf/2003/XMLType",c0e="##any",ET="uninitialized",ZP="The multiplicity constraint is violated",nK="org.eclipse.emf.ecore.xml.type",M5t="ProcessingInstruction",D5t="SimpleAnyType",I5t="XMLTypeDocumentRoot",ea="org.eclipse.emf.ecore.xml.type.impl",eB="INF",O5t="processing",N5t="ENTITIES_._base",NSe="minLength",PSe="ENTITY",rK="NCName",P5t="IDREFS_._base",BSe="integer",u0e="token",l0e="pattern",B5t="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",FSe="\\i\\c*",F5t="[\\i-[:]][\\c-[:]]*",R5t="nonPositiveInteger",tB="maxInclusive",RSe="NMTOKEN",j5t="NMTOKENS_._base",jSe="nonNegativeInteger",nB="minInclusive",$5t="normalizedString",z5t="unsignedByte",q5t="unsignedInt",H5t="18446744073709551615",V5t="unsignedShort",U5t="processingInstruction",y2="org.eclipse.emf.ecore.xml.type.internal",TT=1114111,G5t="Internal Error: shorthands: \\u",OL="xml:isDigit",h0e="xml:isWord",f0e="xml:isSpace",d0e="xml:isNameChar",g0e="xml:isInitialNameChar",K5t="09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩",W5t="AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣",Y5t="Private Use",p0e="ASSIGNED",b0e="\0€ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\uFEFF\uFEFF＀￯",$Se="UNASSIGNED",CT={3:1,122:1},X5t="org.eclipse.emf.ecore.xml.type.util",iK={3:1,4:1,5:1,381:1},zSe="org.eclipse.xtext.xbase.lib",Q5t="Cannot add elements to a Range",J5t="Cannot set elements in a Range",Z5t="Cannot remove elements from a Range",e6t="user.agent",h,sK,m0e;b.goog=b.goog||{},b.goog.global=b.goog.global||b,sK={},D(1,null,{},T),h.Fb=function(t){return Jtt(this,t)},h.Gb=function(){return this.Rm},h.Hb=function(){return fw(this)},h.Ib=function(){var t;return _m(bh(this))+"@"+(t=es(this)>>>0,t.toString(16))},h.equals=function(e){return this.Fb(e)},h.hashCode=function(){return this.Hb()},h.toString=function(){return this.Ib()};var t6t,n6t,r6t;D(297,1,{297:1,2124:1},B7e),h.ve=function(t){var n;return n=new B7e,n.i=4,t>1?n.c=yot(this,t-1):n.c=this,n},h.we=function(){return Gg(this),this.b},h.xe=function(){return _m(this)},h.ye=function(){return Gg(this),this.k},h.ze=function(){return(this.i&4)!=0},h.Ae=function(){return(this.i&1)!=0},h.Ib=function(){return K6e(this)},h.i=0;var wa=I(Vc,"Object",1),qSe=I(Vc,"Class",297);D(2096,1,yP),I(xP,"Optional",2096),D(1191,2096,yP,_),h.Fb=function(t){return t===this},h.Hb=function(){return 2040732332},h.Ib=function(){return"Optional.absent()"},h.Jb=function(t){return Xr(t),o_(),v0e};var v0e;I(xP,"Absent",1191),D(636,1,{},Zie),I(xP,"Joiner",636);var sOn=ks(xP,"Predicate");D(589,1,{178:1,589:1,3:1,46:1},gz),h.Mb=function(t){return y0t(this,t)},h.Lb=function(t){return y0t(this,t)},h.Fb=function(t){var n;return De(t,589)?(n=l(t,589),O9e(this.a,n.a)):!1},h.Hb=function(){return q7e(this.a)+306654252},h.Ib=function(){return U9n(this.a)},I(xP,"Predicates/AndPredicate",589),D(419,2096,{419:1,3:1},JS),h.Fb=function(t){var n;return De(t,419)?(n=l(t,419),Pi(this.a,n.a)):!1},h.Hb=function(){return 1502476572+es(this.a)},h.Ib=function(){return Awt+this.a+")"},h.Jb=function(t){return new JS(_H(t.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},I(xP,"Present",419),D(204,1,eT),h.Nb=function(t){Za(this,t)},h.Qb=function(){jJe()},I(dn,"UnmodifiableIterator",204),D(2076,204,tT),h.Qb=function(){jJe()},h.Rb=function(t){throw ue(new Qr)},h.Wb=function(t){throw ue(new Qr)},I(dn,"UnmodifiableListIterator",2076),D(399,2076,tT),h.Ob=function(){return this.c0},h.Pb=function(){if(this.c>=this.d)throw ue(new _c);return this.Xb(this.c++)},h.Tb=function(){return this.c},h.Ub=function(){if(this.c<=0)throw ue(new _c);return this.Xb(--this.c)},h.Vb=function(){return this.c-1},h.c=0,h.d=0,I(dn,"AbstractIndexedListIterator",399),D(713,204,eT),h.Ob=function(){return tce(this)},h.Pb=function(){return z6e(this)},h.e=1,I(dn,"AbstractIterator",713),D(2084,1,{229:1}),h.Zb=function(){var t;return t=this.f,t||(this.f=this.ac())},h.Fb=function(t){return Ece(this,t)},h.Hb=function(){return es(this.Zb())},h.dc=function(){return this.gc()==0},h.ec=function(){return W8(this)},h.Ib=function(){return xc(this.Zb())},I(dn,"AbstractMultimap",2084),D(742,2084,Jm),h.$b=function(){mV(this)},h._b=function(t){return iZe(this,t)},h.ac=function(){return new Lk(this,this.c)},h.ic=function(t){return this.hc()},h.bc=function(){return new q5(this,this.c)},h.jc=function(){return this.mc(this.hc())},h.kc=function(){return new EJe(this)},h.lc=function(){return Iue(this.c.vc().Nc(),new P,64,this.d)},h.cc=function(t){return $i(this,t)},h.fc=function(t){return DN(this,t)},h.gc=function(){return this.d},h.mc=function(t){return Cn(),new $a(t)},h.nc=function(){return new kJe(this)},h.oc=function(){return Iue(this.c.Cc().Nc(),new A,64,this.d)},h.pc=function(t,n){return new YH(this,t,n,null)},h.d=0,I(dn,"AbstractMapBasedMultimap",742),D(1696,742,Jm),h.hc=function(){return new Bu(this.a)},h.jc=function(){return Cn(),Cn(),_o},h.cc=function(t){return l($i(this,t),15)},h.fc=function(t){return l(DN(this,t),15)},h.Zb=function(){return ex(this)},h.Fb=function(t){return Ece(this,t)},h.qc=function(t){return l($i(this,t),15)},h.rc=function(t){return l(DN(this,t),15)},h.mc=function(t){return ioe(l(t,15))},h.pc=function(t,n){return _ct(this,t,l(n,15),null)},I(dn,"AbstractListMultimap",1696),D(748,1,Oa),h.Nb=function(t){Za(this,t)},h.Ob=function(){return this.c.Ob()||this.e.Ob()},h.Pb=function(){var t;return this.e.Ob()||(t=l(this.c.Pb(),44),this.b=t.ld(),this.a=l(t.md(),16),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},h.Qb=function(){this.e.Qb(),l(Lf(this.a),16).dc()&&this.c.Qb(),--this.d.d},I(dn,"AbstractMapBasedMultimap/Itr",748),D(1129,748,Oa,kJe),h.sc=function(t,n){return n},I(dn,"AbstractMapBasedMultimap/1",1129),D(1130,1,{},A),h.Kb=function(t){return l(t,16).Nc()},I(dn,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1130),D(1131,748,Oa,EJe),h.sc=function(t,n){return new iw(t,n)},I(dn,"AbstractMapBasedMultimap/2",1131);var HSe=ks(Lr,"Map");D(2065,1,Ww),h.wc=function(t){mA(this,t)},h.yc=function(t,n,r){return qce(this,t,n,r)},h.$b=function(){this.vc().$b()},h.tc=function(t){return gue(this,t)},h._b=function(t){return!!Dxe(this,t,!1)},h.uc=function(t){var n,r,a;for(r=this.vc().Kc();r.Ob();)if(n=l(r.Pb(),44),a=n.md(),qe(t)===qe(a)||t!=null&&Pi(t,a))return!0;return!1},h.Fb=function(t){var n,r,a;if(t===this)return!0;if(!De(t,85)||(a=l(t,85),this.gc()!=a.gc()))return!1;for(r=a.vc().Kc();r.Ob();)if(n=l(r.Pb(),44),!this.tc(n))return!1;return!0},h.xc=function(t){return hc(Dxe(this,t,!1))},h.Hb=function(){return I7e(this.vc())},h.dc=function(){return this.gc()==0},h.ec=function(){return new br(this)},h.zc=function(t,n){throw ue(new Hp("Put not supported on this map"))},h.Ac=function(t){bA(this,t)},h.Bc=function(t){return hc(Dxe(this,t,!0))},h.gc=function(){return this.vc().gc()},h.Ib=function(){return Igt(this)},h.Cc=function(){return new gi(this)},I(Lr,"AbstractMap",2065),D(2085,2065,Ww),h.bc=function(){return new Yz(this)},h.vc=function(){return Est(this)},h.ec=function(){var t;return t=this.g,t||(this.g=this.bc())},h.Cc=function(){var t;return t=this.i,t||(this.i=new WZe(this))},I(dn,"Maps/ViewCachingAbstractMap",2085),D(402,2085,Ww,Lk),h.xc=function(t){return lwn(this,t)},h.Bc=function(t){return Oyn(this,t)},h.$b=function(){this.d==this.e.c?this.e.$b():iH(new V4e(this))},h._b=function(t){return i1t(this.d,t)},h.Ec=function(){return new pz(this)},h.Dc=function(){return this.Ec()},h.Fb=function(t){return this===t||Pi(this.d,t)},h.Hb=function(){return es(this.d)},h.ec=function(){return this.e.ec()},h.gc=function(){return this.d.gc()},h.Ib=function(){return xc(this.d)},I(dn,"AbstractMapBasedMultimap/AsMap",402);var Fh=ks(Vc,"Iterable");D(31,1,Wy),h.Jc=function(t){to(this,t)},h.Lc=function(){return this.Oc()},h.Nc=function(){return new kn(this,0)},h.Oc=function(){return new bn(null,this.Nc())},h.Fc=function(t){throw ue(new Hp("Add not supported on this collection"))},h.Gc=function(t){return Ka(this,t)},h.$b=function(){M5e(this)},h.Hc=function(t){return Ny(this,t,!1)},h.Ic=function(t){return EN(this,t)},h.dc=function(){return this.gc()==0},h.Mc=function(t){return Ny(this,t,!0)},h.Pc=function(){return e5e(this)},h.Qc=function(t){return PA(this,t)},h.Ib=function(){return Tb(this)},I(Lr,"AbstractCollection",31);var jf=ks(Lr,"Set");D(q1,31,Tl),h.Nc=function(){return new kn(this,1)},h.Fb=function(t){return Y1t(this,t)},h.Hb=function(){return I7e(this)},I(Lr,"AbstractSet",q1),D(2068,q1,Tl),I(dn,"Sets/ImprovedAbstractSet",2068),D(2069,2068,Tl),h.$b=function(){this.Rc().$b()},h.Hc=function(t){return O1t(this,t)},h.dc=function(){return this.Rc().dc()},h.Mc=function(t){var n;return this.Hc(t)&&De(t,44)?(n=l(t,44),this.Rc().ec().Mc(n.ld())):!1},h.gc=function(){return this.Rc().gc()},I(dn,"Maps/EntrySet",2069),D(1127,2069,Tl,pz),h.Hc=function(t){return s8e(this.a.d.vc(),t)},h.Kc=function(){return new V4e(this.a)},h.Rc=function(){return this.a},h.Mc=function(t){var n;return s8e(this.a.d.vc(),t)?(n=l(Lf(l(t,44)),44),Jmn(this.a.e,n.ld()),!0):!1},h.Nc=function(){return NO(this.a.d.vc().Nc(),new bz(this.a))},I(dn,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1127),D(1128,1,{},bz),h.Kb=function(t){return Cut(this.a,l(t,44))},I(dn,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1128),D(746,1,Oa,V4e),h.Nb=function(t){Za(this,t)},h.Pb=function(){var t;return t=l(this.b.Pb(),44),this.a=l(t.md(),16),Cut(this.c,t)},h.Ob=function(){return this.b.Ob()},h.Qb=function(){Rk(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},I(dn,"AbstractMapBasedMultimap/AsMap/AsMapIterator",746),D(542,2068,Tl,Yz),h.$b=function(){this.b.$b()},h.Hc=function(t){return this.b._b(t)},h.Jc=function(t){Xr(t),this.b.wc(new xz(t))},h.dc=function(){return this.b.dc()},h.Kc=function(){return new c_(this.b.vc().Kc())},h.Mc=function(t){return this.b._b(t)?(this.b.Bc(t),!0):!1},h.gc=function(){return this.b.gc()},I(dn,"Maps/KeySet",542),D(327,542,Tl,q5),h.$b=function(){var t;iH((t=this.b.vc().Kc(),new g3e(this,t)))},h.Ic=function(t){return this.b.ec().Ic(t)},h.Fb=function(t){return this===t||Pi(this.b.ec(),t)},h.Hb=function(){return es(this.b.ec())},h.Kc=function(){var t;return t=this.b.vc().Kc(),new g3e(this,t)},h.Mc=function(t){var n,r;return r=0,n=l(this.b.Bc(t),16),n&&(r=n.gc(),n.$b(),this.a.d-=r),r>0},h.Nc=function(){return this.b.ec().Nc()},I(dn,"AbstractMapBasedMultimap/KeySet",327),D(747,1,Oa,g3e),h.Nb=function(t){Za(this,t)},h.Ob=function(){return this.c.Ob()},h.Pb=function(){return this.a=l(this.c.Pb(),44),this.a.ld()},h.Qb=function(){var t;Rk(!!this.a),t=l(this.a.md(),16),this.c.Qb(),this.b.a.d-=t.gc(),t.$b(),this.a=null},I(dn,"AbstractMapBasedMultimap/KeySet/1",747),D(503,402,{85:1,133:1},_O),h.bc=function(){return this.Sc()},h.ec=function(){return this.Uc()},h.Sc=function(){return new tO(this.c,this.Wc())},h.Tc=function(){return this.Wc().Tc()},h.Uc=function(){var t;return t=this.b,t||(this.b=this.Sc())},h.Vc=function(){return this.Wc().Vc()},h.Wc=function(){return l(this.d,133)},I(dn,"AbstractMapBasedMultimap/SortedAsMap",503),D(446,503,Zke,q_),h.bc=function(){return new Ak(this.a,l(l(this.d,133),139))},h.Sc=function(){return new Ak(this.a,l(l(this.d,133),139))},h.ec=function(){var t;return t=this.b,l(t||(this.b=new Ak(this.a,l(l(this.d,133),139))),277)},h.Uc=function(){var t;return t=this.b,l(t||(this.b=new Ak(this.a,l(l(this.d,133),139))),277)},h.Wc=function(){return l(l(this.d,133),139)},h.Xc=function(t){return l(l(this.d,133),139).Xc(t)},h.Yc=function(t){return l(l(this.d,133),139).Yc(t)},h.Zc=function(t,n){return new q_(this.a,l(l(this.d,133),139).Zc(t,n))},h.$c=function(t){return l(l(this.d,133),139).$c(t)},h._c=function(t){return l(l(this.d,133),139)._c(t)},h.ad=function(t,n){return new q_(this.a,l(l(this.d,133),139).ad(t,n))},I(dn,"AbstractMapBasedMultimap/NavigableAsMap",446),D(502,327,Lwt,tO),h.Nc=function(){return this.b.ec().Nc()},I(dn,"AbstractMapBasedMultimap/SortedKeySet",502),D(401,502,eEe,Ak),I(dn,"AbstractMapBasedMultimap/NavigableKeySet",401),D(551,31,Wy,YH),h.Fc=function(t){var n,r;return Ql(this),r=this.d.dc(),n=this.d.Fc(t),n&&(++this.f.d,r&&DO(this)),n},h.Gc=function(t){var n,r,a;return t.dc()?!1:(a=(Ql(this),this.d.gc()),n=this.d.Gc(t),n&&(r=this.d.gc(),this.f.d+=r-a,a==0&&DO(this)),n)},h.$b=function(){var t;t=(Ql(this),this.d.gc()),t!=0&&(this.d.$b(),this.f.d-=t,lH(this))},h.Hc=function(t){return Ql(this),this.d.Hc(t)},h.Ic=function(t){return Ql(this),this.d.Ic(t)},h.Fb=function(t){return t===this?!0:(Ql(this),Pi(this.d,t))},h.Hb=function(){return Ql(this),es(this.d)},h.Kc=function(){return Ql(this),new _4e(this)},h.Mc=function(t){var n;return Ql(this),n=this.d.Mc(t),n&&(--this.f.d,lH(this)),n},h.gc=function(){return Rtt(this)},h.Nc=function(){return Ql(this),this.d.Nc()},h.Ib=function(){return Ql(this),xc(this.d)},I(dn,"AbstractMapBasedMultimap/WrappedCollection",551);var mf=ks(Lr,"List");D(744,551,{20:1,31:1,16:1,15:1},r5e),h.jd=function(t){$m(this,t)},h.Nc=function(){return Ql(this),this.d.Nc()},h.bd=function(t,n){var r;Ql(this),r=this.d.dc(),l(this.d,15).bd(t,n),++this.a.d,r&&DO(this)},h.cd=function(t,n){var r,a,o;return n.dc()?!1:(o=(Ql(this),this.d.gc()),r=l(this.d,15).cd(t,n),r&&(a=this.d.gc(),this.a.d+=a-o,o==0&&DO(this)),r)},h.Xb=function(t){return Ql(this),l(this.d,15).Xb(t)},h.dd=function(t){return Ql(this),l(this.d,15).dd(t)},h.ed=function(){return Ql(this),new gnt(this)},h.fd=function(t){return Ql(this),new Fat(this,t)},h.gd=function(t){var n;return Ql(this),n=l(this.d,15).gd(t),--this.a.d,lH(this),n},h.hd=function(t,n){return Ql(this),l(this.d,15).hd(t,n)},h.kd=function(t,n){return Ql(this),_ct(this.a,this.e,l(this.d,15).kd(t,n),this.b?this.b:this)},I(dn,"AbstractMapBasedMultimap/WrappedList",744),D(1126,744,{20:1,31:1,16:1,15:1,59:1},rrt),I(dn,"AbstractMapBasedMultimap/RandomAccessWrappedList",1126),D(628,1,Oa,_4e),h.Nb=function(t){Za(this,t)},h.Ob=function(){return Yk(this),this.b.Ob()},h.Pb=function(){return Yk(this),this.b.Pb()},h.Qb=function(){znt(this)},I(dn,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",628),D(745,628,lg,gnt,Fat),h.Qb=function(){znt(this)},h.Rb=function(t){var n;n=Rtt(this.a)==0,(Yk(this),l(this.b,128)).Rb(t),++this.a.a.d,n&&DO(this.a)},h.Sb=function(){return(Yk(this),l(this.b,128)).Sb()},h.Tb=function(){return(Yk(this),l(this.b,128)).Tb()},h.Ub=function(){return(Yk(this),l(this.b,128)).Ub()},h.Vb=function(){return(Yk(this),l(this.b,128)).Vb()},h.Wb=function(t){(Yk(this),l(this.b,128)).Wb(t)},I(dn,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",745),D(743,551,Lwt,Gye),h.Nc=function(){return Ql(this),this.d.Nc()},I(dn,"AbstractMapBasedMultimap/WrappedSortedSet",743),D(1125,743,eEe,unt),I(dn,"AbstractMapBasedMultimap/WrappedNavigableSet",1125),D(1124,551,Tl,Trt),h.Nc=function(){return Ql(this),this.d.Nc()},I(dn,"AbstractMapBasedMultimap/WrappedSet",1124),D(1133,1,{},P),h.Kb=function(t){return cvn(l(t,44))},I(dn,"AbstractMapBasedMultimap/lambda$1$Type",1133),D(1132,1,{},bie),h.Kb=function(t){return new iw(this.a,t)},I(dn,"AbstractMapBasedMultimap/lambda$2$Type",1132);var uv=ks(Lr,"Map/Entry");D(358,1,Nle),h.Fb=function(t){var n;return De(t,44)?(n=l(t,44),yd(this.ld(),n.ld())&&yd(this.md(),n.md())):!1},h.Hb=function(){var t,n;return t=this.ld(),n=this.md(),(t==null?0:es(t))^(n==null?0:es(n))},h.nd=function(t){throw ue(new Qr)},h.Ib=function(){return this.ld()+"="+this.md()},I(dn,Mwt,358),D(2086,31,Wy),h.$b=function(){this.od().$b()},h.Hc=function(t){var n;return De(t,44)?(n=l(t,44),Lbn(this.od(),n.ld(),n.md())):!1},h.Mc=function(t){var n;return De(t,44)?(n=l(t,44),cct(this.od(),n.ld(),n.md())):!1},h.gc=function(){return this.od().d},I(dn,"Multimaps/Entries",2086),D(749,2086,Wy,vz),h.Kc=function(){return this.a.kc()},h.od=function(){return this.a},h.Nc=function(){return this.a.lc()},I(dn,"AbstractMultimap/Entries",749),D(750,749,Tl,Uwe),h.Nc=function(){return this.a.lc()},h.Fb=function(t){return Qxe(this,t)},h.Hb=function(){return wft(this)},I(dn,"AbstractMultimap/EntrySet",750),D(751,31,Wy,Q2),h.$b=function(){this.a.$b()},h.Hc=function(t){return _yn(this.a,t)},h.Kc=function(){return this.a.nc()},h.gc=function(){return this.a.d},h.Nc=function(){return this.a.oc()},I(dn,"AbstractMultimap/Values",751),D(2087,31,{849:1,20:1,31:1,16:1}),h.Jc=function(t){Xr(t),V5(this).Jc(new kie(t))},h.Nc=function(){var t;return t=V5(this).Nc(),Iue(t,new pe,64|t.yd()&1296,this.a.d)},h.Fc=function(t){return Zwe(),!0},h.Gc=function(t){return Xr(this),Xr(t),De(t,552)?Ibn(l(t,849)):!t.dc()&&Goe(this,t.Kc())},h.Hc=function(t){var n;return n=l(Oy(ex(this.a),t),16),(n?n.gc():0)>0},h.Fb=function(t){return eTn(this,t)},h.Hb=function(){return es(V5(this))},h.dc=function(){return V5(this).dc()},h.Mc=function(t){return Upt(this,t,1)>0},h.Ib=function(){return xc(V5(this))},I(dn,"AbstractMultiset",2087),D(2089,2068,Tl),h.$b=function(){mV(this.a.a)},h.Hc=function(t){var n,r;return De(t,504)?(r=l(t,425),l(r.a.md(),16).gc()<=0?!1:(n=Pot(this.a,r.a.ld()),n==l(r.a.md(),16).gc())):!1},h.Mc=function(t){var n,r,a,o;return De(t,504)&&(r=l(t,425),n=r.a.ld(),a=l(r.a.md(),16).gc(),a!=0)?(o=this.a,Vkn(o,n,a)):!1},I(dn,"Multisets/EntrySet",2089),D(1139,2089,Tl,mie),h.Kc=function(){return new AJe(Est(ex(this.a.a)).Kc())},h.gc=function(){return ex(this.a.a).gc()},I(dn,"AbstractMultiset/EntrySet",1139),D(627,742,Jm),h.hc=function(){return this.pd()},h.jc=function(){return this.qd()},h.cc=function(t){return this.rd(t)},h.fc=function(t){return this.sd(t)},h.Zb=function(){var t;return t=this.f,t||(this.f=this.ac())},h.qd=function(){return Cn(),Cn(),hK},h.Fb=function(t){return Ece(this,t)},h.rd=function(t){return l($i(this,t),21)},h.sd=function(t){return l(DN(this,t),21)},h.mc=function(t){return Cn(),new Ek(l(t,21))},h.pc=function(t,n){return new Trt(this,t,l(n,21))},I(dn,"AbstractSetMultimap",627),D(1723,627,Jm),h.hc=function(){return new Kp(this.b)},h.pd=function(){return new Kp(this.b)},h.jc=function(){return T5e(new Kp(this.b))},h.qd=function(){return T5e(new Kp(this.b))},h.cc=function(t){return l(l($i(this,t),21),87)},h.rd=function(t){return l(l($i(this,t),21),87)},h.fc=function(t){return l(l(DN(this,t),21),87)},h.sd=function(t){return l(l(DN(this,t),21),87)},h.mc=function(t){return De(t,277)?T5e(l(t,277)):(Cn(),new Dye(l(t,87)))},h.Zb=function(){var t;return t=this.f,t||(this.f=De(this.c,139)?new q_(this,l(this.c,139)):De(this.c,133)?new _O(this,l(this.c,133)):new Lk(this,this.c))},h.pc=function(t,n){return De(n,277)?new unt(this,t,l(n,277)):new Gye(this,t,l(n,87))},I(dn,"AbstractSortedSetMultimap",1723),D(1724,1723,Jm),h.Zb=function(){var t;return t=this.f,l(l(t||(this.f=De(this.c,139)?new q_(this,l(this.c,139)):De(this.c,133)?new _O(this,l(this.c,133)):new Lk(this,this.c)),133),139)},h.ec=function(){var t;return t=this.i,l(l(t||(this.i=De(this.c,139)?new Ak(this,l(this.c,139)):De(this.c,133)?new tO(this,l(this.c,133)):new q5(this,this.c)),87),277)},h.bc=function(){return De(this.c,139)?new Ak(this,l(this.c,139)):De(this.c,133)?new tO(this,l(this.c,133)):new q5(this,this.c)},I(dn,"AbstractSortedKeySortedSetMultimap",1724),D(2109,1,{2046:1}),h.Fb=function(t){return C8n(this,t)},h.Hb=function(){var t;return I7e((t=this.g,t||(this.g=new $I(this))))},h.Ib=function(){var t;return Igt((t=this.f,t||(this.f=new _ye(this))))},I(dn,"AbstractTable",2109),D(679,q1,Tl,$I),h.$b=function(){$Je()},h.Hc=function(t){var n,r;return De(t,479)?(n=l(t,697),r=l(Oy(Kst(this.a),ab(n.c.e,n.b)),85),!!r&&s8e(r.vc(),new iw(ab(n.c.c,n.a),ox(n.c,n.b,n.a)))):!1},h.Kc=function(){return Lpn(this.a)},h.Mc=function(t){var n,r;return De(t,479)?(n=l(t,697),r=l(Oy(Kst(this.a),ab(n.c.e,n.b)),85),!!r&&a4n(r.vc(),new iw(ab(n.c.c,n.a),ox(n.c,n.b,n.a)))):!1},h.gc=function(){return Xit(this.a)},h.Nc=function(){return Pbn(this.a)},I(dn,"AbstractTable/CellSet",679),D(2025,31,Wy,wie),h.$b=function(){$Je()},h.Hc=function(t){return mxn(this.a,t)},h.Kc=function(){return Mpn(this.a)},h.gc=function(){return Xit(this.a)},h.Nc=function(){return oct(this.a)},I(dn,"AbstractTable/Values",2025),D(1697,1696,Jm),I(dn,"ArrayListMultimapGwtSerializationDependencies",1697),D(520,1697,Jm,nse,G5e),h.hc=function(){return new Bu(this.a)},h.a=0,I(dn,"ArrayListMultimap",520),D(678,2109,{678:1,2046:1,3:1},i2t),I(dn,"ArrayTable",678),D(2021,399,tT,qnt),h.Xb=function(t){return new F7e(this.a,t)},I(dn,"ArrayTable/1",2021),D(2022,1,{},gie),h.td=function(t){return new F7e(this.a,t)},I(dn,"ArrayTable/1methodref$getCell$Type",2022),D(2110,1,{697:1}),h.Fb=function(t){var n;return t===this?!0:De(t,479)?(n=l(t,697),yd(ab(this.c.e,this.b),ab(n.c.e,n.b))&&yd(ab(this.c.c,this.a),ab(n.c.c,n.a))&&yd(ox(this.c,this.b,this.a),ox(n.c,n.b,n.a))):!1},h.Hb=function(){return MN(he(le(wa,1),Rn,1,5,[ab(this.c.e,this.b),ab(this.c.c,this.a),ox(this.c,this.b,this.a)]))},h.Ib=function(){return"("+ab(this.c.e,this.b)+","+ab(this.c.c,this.a)+")="+ox(this.c,this.b,this.a)},I(dn,"Tables/AbstractCell",2110),D(479,2110,{479:1,697:1},F7e),h.a=0,h.b=0,h.d=0,I(dn,"ArrayTable/2",479),D(2024,1,{},pie),h.td=function(t){return Ilt(this.a,t)},I(dn,"ArrayTable/2methodref$getValue$Type",2024),D(2023,399,tT,Hnt),h.Xb=function(t){return Ilt(this.a,t)},I(dn,"ArrayTable/3",2023),D(2077,2065,Ww),h.$b=function(){iH(this.kc())},h.vc=function(){return new yz(this)},h.lc=function(){return new _at(this.kc(),this.gc())},I(dn,"Maps/IteratorBasedAbstractMap",2077),D(842,2077,Ww),h.$b=function(){throw ue(new Qr)},h._b=function(t){return sZe(this.c,t)},h.kc=function(){return new Vnt(this,this.c.b.c.gc())},h.lc=function(){return Cae(this.c.b.c.gc(),16,new mz(this))},h.xc=function(t){var n;return n=l(H_(this.c,t),17),n?this.vd(n.a):null},h.dc=function(){return this.c.b.c.dc()},h.ec=function(){return Oae(this.c)},h.zc=function(t,n){var r;if(r=l(H_(this.c,t),17),!r)throw ue(new Yn(this.ud()+" "+t+" not in "+Oae(this.c)));return this.wd(r.a,n)},h.Bc=function(t){throw ue(new Qr)},h.gc=function(){return this.c.b.c.gc()},I(dn,"ArrayTable/ArrayMap",842),D(2020,1,{},mz),h.td=function(t){return Yst(this.a,t)},I(dn,"ArrayTable/ArrayMap/0methodref$getEntry$Type",2020),D(2018,358,Nle,DZe),h.ld=function(){return Hhn(this.a,this.b)},h.md=function(){return this.a.vd(this.b)},h.nd=function(t){return this.a.wd(this.b,t)},h.b=0,I(dn,"ArrayTable/ArrayMap/1",2018),D(2019,399,tT,Vnt),h.Xb=function(t){return Yst(this.a,t)},I(dn,"ArrayTable/ArrayMap/2",2019),D(2017,842,Ww,Bst),h.ud=function(){return"Column"},h.vd=function(t){return ox(this.b,this.a,t)},h.wd=function(t,n){return s0t(this.b,this.a,t,n)},h.a=0,I(dn,"ArrayTable/Row",2017),D(843,842,Ww,_ye),h.vd=function(t){return new Bst(this.a,t)},h.zc=function(t,n){return l(n,85),lun()},h.wd=function(t,n){return l(n,85),hun()},h.ud=function(){return"Row"},I(dn,"ArrayTable/RowMap",843),D(1157,1,Ph,IZe),h.Ad=function(t){return(this.a.yd()&-262&t)!=0},h.yd=function(){return this.a.yd()&-262},h.zd=function(){return this.a.zd()},h.Nb=function(t){this.a.Nb(new NZe(t,this.b))},h.Bd=function(t){return this.a.Bd(new OZe(t,this.b))},I(dn,"CollectSpliterators/1",1157),D(1158,1,fr,OZe),h.Cd=function(t){this.a.Cd(this.b.Kb(t))},I(dn,"CollectSpliterators/1/lambda$0$Type",1158),D(1159,1,fr,NZe),h.Cd=function(t){this.a.Cd(this.b.Kb(t))},I(dn,"CollectSpliterators/1/lambda$1$Type",1159),D(1154,1,Ph,sit),h.Ad=function(t){return((16464|this.b)&t)!=0},h.yd=function(){return 16464|this.b},h.zd=function(){return this.a.zd()},h.Nb=function(t){this.a.Qe(new BZe(t,this.c))},h.Bd=function(t){return this.a.Re(new PZe(t,this.c))},h.b=0,I(dn,"CollectSpliterators/1WithCharacteristics",1154),D(1155,1,kP,PZe),h.Dd=function(t){this.a.Cd(this.b.td(t))},I(dn,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1155),D(1156,1,kP,BZe),h.Dd=function(t){this.a.Cd(this.b.td(t))},I(dn,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1156),D(1150,1,Ph),h.Ad=function(t){return(this.a&t)!=0},h.yd=function(){return this.a},h.zd=function(){return this.e&&(this.b=pye(this.b,this.e.zd())),pye(this.b,0)},h.Nb=function(t){this.e&&(this.e.Nb(t),this.e=null),this.c.Nb(new FZe(this,t)),this.b=0},h.Bd=function(t){for(;;){if(this.e&&this.e.Bd(t))return I_(this.b,EP)&&(this.b=Df(this.b,1)),!0;if(this.e=null,!this.c.Bd(new yie(this)))return!1}},h.a=0,h.b=0,I(dn,"CollectSpliterators/FlatMapSpliterator",1150),D(1152,1,fr,yie),h.Cd=function(t){zfn(this.a,t)},I(dn,"CollectSpliterators/FlatMapSpliterator/lambda$0$Type",1152),D(1153,1,fr,FZe),h.Cd=function(t){fpn(this.a,this.b,t)},I(dn,"CollectSpliterators/FlatMapSpliterator/lambda$1$Type",1153),D(1151,1150,Ph,Cct),I(dn,"CollectSpliterators/FlatMapSpliteratorOfObject",1151),D(253,1,Ple),h.Fd=function(t){return this.Ed(l(t,253))},h.Ed=function(t){var n;return t==(Gie(),y0e)?1:t==(Uie(),w0e)?-1:(n=(Zq(),vN(this.a,t.a)),n!=0?n:De(this,526)==De(t,526)?0:De(this,526)?1:-1)},h.Id=function(){return this.a},h.Fb=function(t){return rxe(this,t)},I(dn,"Cut",253),D(1823,253,Ple,xJe),h.Ed=function(t){return t==this?0:1},h.Gd=function(t){throw ue(new Swe)},h.Hd=function(t){t.a+="+∞)"},h.Id=function(){throw ue(new nc(Iwt))},h.Hb=function(){return Vg(),q8e(this)},h.Jd=function(t){return!1},h.Ib=function(){return"+∞"};var w0e;I(dn,"Cut/AboveAll",1823),D(526,253,{253:1,526:1,3:1,34:1},Xnt),h.Gd=function(t){wu((t.a+="(",t),this.a)},h.Hd=function(t){hb(wu(t,this.a),93)},h.Hb=function(){return~es(this.a)},h.Jd=function(t){return Zq(),vN(this.a,t)<0},h.Ib=function(){return"/"+this.a+"\\"},I(dn,"Cut/AboveValue",526),D(1822,253,Ple,yJe),h.Ed=function(t){return t==this?0:-1},h.Gd=function(t){t.a+="(-∞"},h.Hd=function(t){throw ue(new Swe)},h.Id=function(){throw ue(new nc(Iwt))},h.Hb=function(){return Vg(),q8e(this)},h.Jd=function(t){return!0},h.Ib=function(){return"-∞"};var y0e;I(dn,"Cut/BelowAll",1822),D(1824,253,Ple,Qnt),h.Gd=function(t){wu((t.a+="[",t),this.a)},h.Hd=function(t){hb(wu(t,this.a),41)},h.Hb=function(){return es(this.a)},h.Jd=function(t){return Zq(),vN(this.a,t)<=0},h.Ib=function(){return"\\"+this.a+"/"},I(dn,"Cut/BelowValue",1824),D(547,1,hg),h.Jc=function(t){to(this,t)},h.Ib=function(){return _4n(l(_H(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},I(dn,"FluentIterable",547),D(442,547,hg,P_),h.Kc=function(){return new hr(dr(this.a.Kc(),new j))},I(dn,"FluentIterable/2",442),D(1059,547,hg,snt),h.Kc=function(){return rg(this)},I(dn,"FluentIterable/3",1059),D(724,399,tT,Aye),h.Xb=function(t){return this.a[t].Kc()},I(dn,"FluentIterable/3/1",724),D(2070,1,{}),h.Ib=function(){return xc(this.Kd().b)},I(dn,"ForwardingObject",2070),D(2071,2070,Owt),h.Kd=function(){return this.Ld()},h.Jc=function(t){to(this,t)},h.Lc=function(){return this.Oc()},h.Nc=function(){return new kn(this,0)},h.Oc=function(){return new bn(null,this.Nc())},h.Fc=function(t){return this.Ld(),oZe()},h.Gc=function(t){return this.Ld(),cZe()},h.$b=function(){this.Ld(),uZe()},h.Hc=function(t){return this.Ld().Hc(t)},h.Ic=function(t){return this.Ld().Ic(t)},h.dc=function(){return this.Ld().b.dc()},h.Kc=function(){return this.Ld().Kc()},h.Mc=function(t){return this.Ld(),lZe()},h.gc=function(){return this.Ld().b.gc()},h.Pc=function(){return this.Ld().Pc()},h.Qc=function(t){return this.Ld().Qc(t)},I(dn,"ForwardingCollection",2071),D(2078,31,tEe),h.Kc=function(){return this.Od()},h.Fc=function(t){throw ue(new Qr)},h.Gc=function(t){throw ue(new Qr)},h.Md=function(){var t;return t=this.c,t||(this.c=this.Nd())},h.$b=function(){throw ue(new Qr)},h.Hc=function(t){return t!=null&&Ny(this,t,!1)},h.Nd=function(){switch(this.gc()){case 0:return ww(),ww(),x0e;case 1:return ww(),new Sae(Xr(this.Od().Pb()));default:return new o5e(this,this.Pc())}},h.Mc=function(t){throw ue(new Qr)},I(dn,"ImmutableCollection",2078),D(727,2078,tEe,Twe),h.Kc=function(){return cx(this.a.Kc())},h.Hc=function(t){return t!=null&&this.a.Hc(t)},h.Ic=function(t){return this.a.Ic(t)},h.dc=function(){return this.a.dc()},h.Od=function(){return cx(this.a.Kc())},h.gc=function(){return this.a.gc()},h.Pc=function(){return this.a.Pc()},h.Qc=function(t){return this.a.Qc(t)},h.Ib=function(){return xc(this.a)},I(dn,"ForwardingImmutableCollection",727),D(307,2078,nT),h.Kc=function(){return this.Od()},h.ed=function(){return this.Pd(0)},h.fd=function(t){return this.Pd(t)},h.jd=function(t){$m(this,t)},h.Nc=function(){return new kn(this,16)},h.kd=function(t,n){return this.Qd(t,n)},h.bd=function(t,n){throw ue(new Qr)},h.cd=function(t,n){throw ue(new Qr)},h.Md=function(){return this},h.Fb=function(t){return qEn(this,t)},h.Hb=function(){return B3n(this)},h.dd=function(t){return t==null?-1:s7n(this,t)},h.Od=function(){return this.Pd(0)},h.Pd=function(t){return iae(this,t)},h.gd=function(t){throw ue(new Qr)},h.hd=function(t,n){throw ue(new Qr)},h.Qd=function(t,n){var r;return RV((r=new KZe(this),new Zp(r,t,n)))};var x0e;I(dn,"ImmutableList",307),D(2105,307,nT),h.Kc=function(){return cx(this.Rd().Kc())},h.kd=function(t,n){return RV(this.Rd().kd(t,n))},h.Hc=function(t){return t!=null&&this.Rd().Hc(t)},h.Ic=function(t){return this.Rd().Ic(t)},h.Fb=function(t){return Pi(this.Rd(),t)},h.Xb=function(t){return ab(this,t)},h.Hb=function(){return es(this.Rd())},h.dd=function(t){return this.Rd().dd(t)},h.dc=function(){return this.Rd().dc()},h.Od=function(){return cx(this.Rd().Kc())},h.gc=function(){return this.Rd().gc()},h.Qd=function(t,n){return RV(this.Rd().kd(t,n))},h.Pc=function(){return this.Rd().Qc(We(wa,Rn,1,this.Rd().gc(),5,1))},h.Qc=function(t){return this.Rd().Qc(t)},h.Ib=function(){return xc(this.Rd())},I(dn,"ForwardingImmutableList",2105),D(729,1,rT),h.vc=function(){return Mm(this)},h.wc=function(t){mA(this,t)},h.ec=function(){return Oae(this)},h.yc=function(t,n,r){return qce(this,t,n,r)},h.Cc=function(){return this.Vd()},h.$b=function(){throw ue(new Qr)},h._b=function(t){return this.xc(t)!=null},h.uc=function(t){return this.Vd().Hc(t)},h.Td=function(){return new LQe(this)},h.Ud=function(){return new MQe(this)},h.Fb=function(t){return Ayn(this,t)},h.Hb=function(){return Mm(this).Hb()},h.dc=function(){return this.gc()==0},h.zc=function(t,n){return uun()},h.Bc=function(t){throw ue(new Qr)},h.Ib=function(){return p9n(this)},h.Vd=function(){return this.e?this.e:this.e=this.Ud()},h.c=null,h.d=null,h.e=null;var i6t;I(dn,"ImmutableMap",729),D(730,729,rT),h._b=function(t){return sZe(this,t)},h.uc=function(t){return ZZe(this.b,t)},h.Sd=function(){return t1t(new vie(this))},h.Td=function(){return t1t(mat(this.b))},h.Ud=function(){return wd(),new Twe(bat(this.b))},h.Fb=function(t){return eet(this.b,t)},h.xc=function(t){return H_(this,t)},h.Hb=function(){return es(this.b.c)},h.dc=function(){return this.b.c.dc()},h.gc=function(){return this.b.c.gc()},h.Ib=function(){return xc(this.b.c)},I(dn,"ForwardingImmutableMap",730),D(2072,2071,Ble),h.Kd=function(){return this.Wd()},h.Ld=function(){return this.Wd()},h.Nc=function(){return new kn(this,1)},h.Fb=function(t){return t===this||this.Wd().Fb(t)},h.Hb=function(){return this.Wd().Hb()},I(dn,"ForwardingSet",2072),D(1085,2072,Ble,vie),h.Kd=function(){return Kk(this.a.b)},h.Ld=function(){return Kk(this.a.b)},h.Hc=function(t){if(De(t,44)&&l(t,44).ld()==null)return!1;try{return JZe(Kk(this.a.b),t)}catch(n){if(n=bs(n),De(n,212))return!1;throw ue(n)}},h.Wd=function(){return Kk(this.a.b)},h.Qc=function(t){var n;return n=tot(Kk(this.a.b),t),Kk(this.a.b).b.gc()=0?"+":"")+(r/60|0),n=Iq(b.Math.abs(r)%60),(Vgt(),E6t)[this.q.getDay()]+" "+T6t[this.q.getMonth()]+" "+Iq(this.q.getDate())+" "+Iq(this.q.getHours())+":"+Iq(this.q.getMinutes())+":"+Iq(this.q.getSeconds())+" GMT"+t+n+" "+this.q.getFullYear()};var cK=I(Lr,"Date",206);D(2015,206,qwt,dgt),h.a=!1,h.b=0,h.c=0,h.d=0,h.e=0,h.f=0,h.g=!1,h.i=0,h.j=0,h.k=0,h.n=0,h.o=0,h.p=0,I("com.google.gwt.i18n.shared.impl","DateRecord",2015),D(2064,1,{}),h.pe=function(){return null},h.qe=function(){return null},h.re=function(){return null},h.se=function(){return null},h.te=function(){return null},I(Ax,"JSONValue",2064),D(221,2064,{221:1},$p,Sz),h.Fb=function(t){return De(t,221)?W5e(this.a,l(t,221).a):!1},h.oe=function(){return Ncn},h.Hb=function(){return F5e(this.a)},h.pe=function(){return this},h.Ib=function(){var t,n,r;for(r=new Th("["),n=0,t=this.a.length;n0&&(r.a+=","),wu(r,_y(this,n));return r.a+="]",r.a},I(Ax,"JSONArray",221),D(493,2064,{493:1},jc),h.oe=function(){return Pcn},h.qe=function(){return this},h.Ib=function(){return Hn(),""+this.a},h.a=!1;var h6t,f6t;I(Ax,"JSONBoolean",493),D(997,63,lp,LJe),I(Ax,"JSONException",997),D(1036,2064,{},W),h.oe=function(){return Bcn},h.Ib=function(){return ul};var d6t;I(Ax,"JSONNull",1036),D(263,2064,{263:1},vk),h.Fb=function(t){return De(t,263)?this.a==l(t,263).a:!1},h.oe=function(){return Icn},h.Hb=function(){return j8(this.a)},h.re=function(){return this},h.Ib=function(){return this.a+""},h.a=0,I(Ax,"JSONNumber",263),D(190,2064,{190:1},M8,wk),h.Fb=function(t){return De(t,190)?W5e(this.a,l(t,190).a):!1},h.oe=function(){return Ocn},h.Hb=function(){return F5e(this.a)},h.se=function(){return this},h.Ib=function(){var t,n,r,a,o,f,g;for(g=new Th("{"),t=!0,f=ace(this,We(zt,dt,2,0,6,1)),r=f,a=0,o=r.length;a=0?":"+this.c:"")+")"},h.c=0;var a_e=I(Vc,"StackTraceElement",319);r6t={3:1,484:1,34:1,2:1};var zt=I(Vc,nEe,2);D(111,427,{484:1},Up,h_,Af),I(Vc,"StringBuffer",111),D(104,427,{484:1},tb,S5,Th),I(Vc,"StringBuilder",104),D(702,77,she,e3e),I(Vc,"StringIndexOutOfBoundsException",702),D(2145,1,{});var m6t;D(48,63,{3:1,103:1,63:1,82:1,48:1},Qr,Hp),I(Vc,"UnsupportedOperationException",48),D(247,242,{3:1,34:1,242:1,247:1},NN,h3e),h.Fd=function(t){return Fmt(this,l(t,247))},h.ue=function(){return jy(hvt(this))},h.Fb=function(t){var n;return this===t?!0:De(t,247)?(n=l(t,247),this.e==n.e&&Fmt(this,n)==0):!1},h.Hb=function(){var t;return this.b!=0?this.b:this.a<54?(t=Zc(this.f),this.b=Yr(va(t,-1)),this.b=33*this.b+Yr(va(bw(t,32),-1)),this.b=17*this.b+ua(this.e),this.b):(this.b=17*X0t(this.c)+ua(this.e),this.b)},h.Ib=function(){return hvt(this)},h.a=0,h.b=0,h.d=0,h.e=0,h.f=0;var v6t,lv,o_e,c_e,u_e,l_e,h_e,f_e,L0e=I("java.math","BigDecimal",247);D(92,242,{3:1,34:1,242:1,92:1},Qg,qot,Im,Q1t,ob),h.Fd=function(t){return K1t(this,l(t,92))},h.ue=function(){return jy(Dle(this,0))},h.Fb=function(t){return C8e(this,t)},h.Hb=function(){return X0t(this)},h.Ib=function(){return Dle(this,0)},h.b=-2,h.c=0,h.d=0,h.e=0;var w6t,uK,y6t,M0e,lK,BL,A6=I("java.math","BigInteger",92),x6t,k6t,$x,FL;D(498,2065,Ww),h.$b=function(){Nl(this)},h._b=function(t){return Hu(this,t)},h.uc=function(t){return D0t(this,t,this.i)||D0t(this,t,this.f)},h.vc=function(){return new Sr(this)},h.xc=function(t){return cr(this,t)},h.zc=function(t,n){return ki(this,t,n)},h.Bc=function(t){return ax(this,t)},h.gc=function(){return d_(this)},h.g=0,I(Lr,"AbstractHashMap",498),D(267,q1,Tl,Sr),h.$b=function(){this.a.$b()},h.Hc=function(t){return vct(this,t)},h.Kc=function(){return new qm(this.a)},h.Mc=function(t){var n;return vct(this,t)?(n=l(t,44).ld(),this.a.Bc(n),!0):!1},h.gc=function(){return this.a.gc()},I(Lr,"AbstractHashMap/EntrySet",267),D(268,1,Oa,qm),h.Nb=function(t){Za(this,t)},h.Pb=function(){return Nw(this)},h.Ob=function(){return this.b},h.Qb=function(){Klt(this)},h.b=!1,h.d=0,I(Lr,"AbstractHashMap/EntrySetIterator",268),D(426,1,Oa,kr),h.Nb=function(t){Za(this,t)},h.Ob=function(){return lse(this)},h.Pb=function(){return I5e(this)},h.Qb=function(){ph(this)},h.b=0,h.c=-1,I(Lr,"AbstractList/IteratorImpl",426),D(98,426,lg,Ua),h.Qb=function(){ph(this)},h.Rb=function(t){by(this,t)},h.Sb=function(){return this.b>0},h.Tb=function(){return this.b},h.Ub=function(){return mr(this.b>0),this.a.Xb(this.c=--this.b)},h.Vb=function(){return this.b-1},h.Wb=function(t){gy(this.c!=-1),this.a.hd(this.c,t)},I(Lr,"AbstractList/ListIteratorImpl",98),D(244,56,iT,Zp),h.bd=function(t,n){Ey(t,this.b),this.c.bd(this.a+t,n),++this.b},h.Xb=function(t){return Sn(t,this.b),this.c.Xb(this.a+t)},h.gd=function(t){var n;return Sn(t,this.b),n=this.c.gd(this.a+t),--this.b,n},h.hd=function(t,n){return Sn(t,this.b),this.c.hd(this.a+t,n)},h.gc=function(){return this.b},h.a=0,h.b=0,I(Lr,"AbstractList/SubList",244),D(266,q1,Tl,br),h.$b=function(){this.a.$b()},h.Hc=function(t){return this.a._b(t)},h.Kc=function(){var t;return t=this.a.vc().Kc(),new Mi(t)},h.Mc=function(t){return this.a._b(t)?(this.a.Bc(t),!0):!1},h.gc=function(){return this.a.gc()},I(Lr,"AbstractMap/1",266),D(541,1,Oa,Mi),h.Nb=function(t){Za(this,t)},h.Ob=function(){return this.a.Ob()},h.Pb=function(){var t;return t=l(this.a.Pb(),44),t.ld()},h.Qb=function(){this.a.Qb()},I(Lr,"AbstractMap/1/1",541),D(231,31,Wy,gi),h.$b=function(){this.a.$b()},h.Hc=function(t){return this.a.uc(t)},h.Kc=function(){var t;return t=this.a.vc().Kc(),new fs(t)},h.gc=function(){return this.a.gc()},I(Lr,"AbstractMap/2",231),D(301,1,Oa,fs),h.Nb=function(t){Za(this,t)},h.Ob=function(){return this.a.Ob()},h.Pb=function(){var t;return t=l(this.a.Pb(),44),t.md()},h.Qb=function(){this.a.Qb()},I(Lr,"AbstractMap/2/1",301),D(494,1,{494:1,44:1}),h.Fb=function(t){var n;return De(t,44)?(n=l(t,44),Jc(this.d,n.ld())&&Jc(this.e,n.md())):!1},h.ld=function(){return this.d},h.md=function(){return this.e},h.Hb=function(){return R5(this.d)^R5(this.e)},h.nd=function(t){return Zye(this,t)},h.Ib=function(){return this.d+"="+this.e},I(Lr,"AbstractMap/AbstractEntry",494),D(397,494,{494:1,397:1,44:1},cq),I(Lr,"AbstractMap/SimpleEntry",397),D(2082,1,che),h.Fb=function(t){var n;return De(t,44)?(n=l(t,44),Jc(this.ld(),n.ld())&&Jc(this.md(),n.md())):!1},h.Hb=function(){return R5(this.ld())^R5(this.md())},h.Ib=function(){return this.ld()+"="+this.md()},I(Lr,Mwt,2082),D(2090,2065,Zke),h.Xc=function(t){return rse(this.Ee(t))},h.tc=function(t){return Tut(this,t)},h._b=function(t){return e4e(this,t)},h.vc=function(){return new Rs(this)},h.Tc=function(){return Rst(this.Ge())},h.Yc=function(t){return rse(this.He(t))},h.xc=function(t){var n;return n=t,hc(this.Fe(n))},h.$c=function(t){return rse(this.Ie(t))},h.ec=function(){return new Fs(this)},h.Vc=function(){return Rst(this.Je())},h._c=function(t){return rse(this.Ke(t))},I(Lr,"AbstractNavigableMap",2090),D(629,q1,Tl,Rs),h.Hc=function(t){return De(t,44)&&Tut(this.b,l(t,44))},h.Kc=function(){return this.b.De()},h.Mc=function(t){var n;return De(t,44)?(n=l(t,44),this.b.Le(n)):!1},h.gc=function(){return this.b.gc()},I(Lr,"AbstractNavigableMap/EntrySet",629),D(1146,q1,eEe,Fs),h.Nc=function(){return new aq(this)},h.$b=function(){this.a.$b()},h.Hc=function(t){return e4e(this.a,t)},h.Kc=function(){var t;return t=this.a.vc().b.De(),new xs(t)},h.Mc=function(t){return e4e(this.a,t)?(this.a.Bc(t),!0):!1},h.gc=function(){return this.a.gc()},I(Lr,"AbstractNavigableMap/NavigableKeySet",1146),D(1147,1,Oa,xs),h.Nb=function(t){Za(this,t)},h.Ob=function(){return lse(this.a.a)},h.Pb=function(){var t;return t=ort(this.a),t.ld()},h.Qb=function(){dit(this.a)},I(Lr,"AbstractNavigableMap/NavigableKeySet/1",1147),D(2103,31,Wy),h.Fc=function(t){return K8($E(this,t),aT),!0},h.Gc=function(t){return nr(t),BO(t!=this,"Can't add a queue to itself"),Ka(this,t)},h.$b=function(){for(;Koe(this)!=null;);},I(Lr,"AbstractQueue",2103),D(310,31,{4:1,20:1,31:1,16:1},z5,dct),h.Fc=function(t){return i6e(this,t),!0},h.$b=function(){l6e(this)},h.Hc=function(t){return Zft(new nA(this),t)},h.dc=function(){return l_(this)},h.Kc=function(){return new nA(this)},h.Mc=function(t){return m2n(new nA(this),t)},h.gc=function(){return this.c-this.b&this.a.length-1},h.Nc=function(){return new kn(this,272)},h.Qc=function(t){var n;return n=this.c-this.b&this.a.length-1,t.lengthn&&Ts(t,n,null),t},h.b=0,h.c=0,I(Lr,"ArrayDeque",310),D(459,1,Oa,nA),h.Nb=function(t){Za(this,t)},h.Ob=function(){return this.a!=this.b},h.Pb=function(){return FV(this)},h.Qb=function(){Yht(this)},h.a=0,h.b=0,h.c=-1,I(Lr,"ArrayDeque/IteratorImpl",459),D(13,56,Uwt,bt,Bu,Ol),h.bd=function(t,n){pw(this,t,n)},h.Fc=function(t){return vt(this,t)},h.cd=function(t,n){return Q7e(this,t,n)},h.Gc=function(t){return ra(this,t)},h.$b=function(){ay(this.c,0)},h.Hc=function(t){return gc(this,t,0)!=-1},h.Jc=function(t){Vu(this,t)},h.Xb=function(t){return jt(this,t)},h.dd=function(t){return gc(this,t,0)},h.dc=function(){return this.c.length==0},h.Kc=function(){return new G(this)},h.gd=function(t){return t2(this,t)},h.Mc=function(t){return al(this,t)},h.ce=function(t,n){Bot(this,t,n)},h.hd=function(t,n){return rf(this,t,n)},h.gc=function(){return this.c.length},h.jd=function(t){Vs(this,t)},h.Pc=function(){return eH(this.c)},h.Qc=function(t){return j1(this,t)};var aOn=I(Lr,"ArrayList",13);D(7,1,Oa,G),h.Nb=function(t){Za(this,t)},h.Ob=function(){return Lc(this)},h.Pb=function(){return re(this)},h.Qb=function(){Q_(this)},h.a=0,h.b=-1,I(Lr,"ArrayList/1",7),D(2112,b.Function,{},Pe),h.Me=function(t,n){return Yi(t,n)},D(151,56,Gwt,Il),h.Hc=function(t){return Xht(this,t)!=-1},h.Jc=function(t){var n,r,a,o;for(nr(t),r=this.a,a=0,o=r.length;a0)throw ue(new Yn(lEe+t+" greater than "+this.e));return this.f.Te()?sot(this.c,this.b,this.a,t,n):Fot(this.c,t,n)},h.zc=function(t,n){if(!xue(this.c,this.f,t,this.b,this.a,this.e,this.d))throw ue(new Yn(t+" outside the range "+this.b+" to "+this.e));return b0t(this.c,t,n)},h.Bc=function(t){var n;return n=t,xue(this.c,this.f,n,this.b,this.a,this.e,this.d)?aot(this.c,n):null},h.Le=function(t){return yH(this,t.ld())&&L6e(this.c,t)},h.gc=function(){var t,n,r;if(this.f.Te()?this.a?n=OE(this.c,this.b,!0):n=OE(this.c,this.b,!1):n=j6e(this.c),!(n&&yH(this,n.d)&&n))return 0;for(t=0,r=new oce(this.c,this.f,this.b,this.a,this.e,this.d);lse(r.a);r.b=l(I5e(r.a),44))++t;return t},h.ad=function(t,n){if(this.f.Te()&&this.c.a.Ne(t,this.b)<0)throw ue(new Yn(lEe+t+Ywt+this.b));return this.f.Ue()?sot(this.c,t,n,this.e,this.d):Rot(this.c,t,n)},h.a=!1,h.d=!1,I(Lr,"TreeMap/SubMap",631),D(304,22,fhe,oq),h.Te=function(){return!1},h.Ue=function(){return!1};var O0e,N0e,P0e,B0e,fK=Fr(Lr,"TreeMap/SubMapType",304,Hr,Vbn,e0n);D(1143,304,fhe,hnt),h.Ue=function(){return!0},Fr(Lr,"TreeMap/SubMapType/1",1143,fK,null,null),D(1144,304,fhe,ynt),h.Te=function(){return!0},h.Ue=function(){return!0},Fr(Lr,"TreeMap/SubMapType/2",1144,fK,null,null),D(1145,304,fhe,lnt),h.Te=function(){return!0},Fr(Lr,"TreeMap/SubMapType/3",1145,fK,null,null);var M6t;D(157,q1,{3:1,20:1,31:1,16:1,277:1,21:1,87:1,157:1},Lwe,Kp,ba),h.Nc=function(){return new aq(this)},h.Fc=function(t){return jO(this,t)},h.$b=function(){this.a.$b()},h.Hc=function(t){return this.a._b(t)},h.Kc=function(){return this.a.ec().Kc()},h.Mc=function(t){return tae(this,t)},h.gc=function(){return this.a.gc()};var fOn=I(Lr,"TreeSet",157);D(1082,1,{},xo),h.Ve=function(t,n){return mfn(this.a,t,n)},I(dhe,"BinaryOperator/lambda$0$Type",1082),D(1083,1,{},lh),h.Ve=function(t,n){return vfn(this.a,t,n)},I(dhe,"BinaryOperator/lambda$1$Type",1083),D(952,1,{},Pt),h.Kb=function(t){return t},I(dhe,"Function/lambda$0$Type",952),D(395,1,ti,Wl),h.Mb=function(t){return!this.a.Mb(t)},I(dhe,"Predicate/lambda$2$Type",395),D(581,1,{581:1});var D6t=I(aL,"Handler",581);D(2107,1,yP),h.xe=function(){return"DUMMY"},h.Ib=function(){return this.xe()};var w_e;I(aL,"Level",2107),D(1706,2107,yP,Qe),h.xe=function(){return"INFO"},I(aL,"Level/LevelInfo",1706),D(1843,1,{},FQe);var F0e;I(aL,"LogManager",1843),D(1896,1,yP,fit),h.b=null,I(aL,"LogRecord",1896),D(525,1,{525:1},Soe),h.e=!1;var I6t=!1,O6t=!1,G1=!1,N6t=!1,P6t=!1;I(aL,"Logger",525),D(835,581,{581:1},Dt),I(aL,"SimpleConsoleLogHandler",835),D(108,22,{3:1,34:1,22:1,108:1},dse);var y_e,Ec,i4,oc=Fr(sa,"Collector/Characteristics",108,Hr,D2n,t0n),B6t;D(758,1,{},h5e),I(sa,"CollectorImpl",758),D(1074,1,{},kt),h.Ve=function(t,n){return h4n(l(t,213),l(n,213))},I(sa,"Collectors/10methodref$merge$Type",1074),D(1075,1,{},On),h.Kb=function(t){return gct(l(t,213))},I(sa,"Collectors/11methodref$toString$Type",1075),D(1076,1,{},Z2),h.Kb=function(t){return Hn(),!!sye(t)},I(sa,"Collectors/12methodref$test$Type",1076),D(144,1,{},ht),h.Yd=function(t,n){l(t,16).Fc(n)},I(sa,"Collectors/20methodref$add$Type",144),D(146,1,{},zr),h.Xe=function(){return new bt},I(sa,"Collectors/21methodref$ctor$Type",146),D(359,1,{},yt),h.Xe=function(){return new Ks},I(sa,"Collectors/23methodref$ctor$Type",359),D(360,1,{},ji),h.Yd=function(t,n){na(l(t,49),n)},I(sa,"Collectors/24methodref$add$Type",360),D(1069,1,{},xi),h.Ve=function(t,n){return ret(l(t,15),l(n,16))},I(sa,"Collectors/4methodref$addAll$Type",1069),D(1073,1,{},Ma),h.Yd=function(t,n){Jg(l(t,213),l(n,484))},I(sa,"Collectors/9methodref$add$Type",1073),D(1072,1,{},Lit),h.Xe=function(){return new Hm(this.a,this.b,this.c)},I(sa,"Collectors/lambda$15$Type",1072),D(1077,1,{},zs),h.Xe=function(){var t;return t=new e2,h2(t,(Hn(),!1),new bt),h2(t,!0,new bt),t},I(sa,"Collectors/lambda$22$Type",1077),D(1078,1,{},eb),h.Xe=function(){return he(le(wa,1),Rn,1,5,[this.a])},I(sa,"Collectors/lambda$25$Type",1078),D(1079,1,{},G0),h.Yd=function(t,n){Fdn(this.a,jm(t))},I(sa,"Collectors/lambda$26$Type",1079),D(1080,1,{},zp),h.Ve=function(t,n){return hgn(this.a,jm(t),jm(n))},I(sa,"Collectors/lambda$27$Type",1080),D(1081,1,{},ao),h.Kb=function(t){return jm(t)[0]},I(sa,"Collectors/lambda$28$Type",1081),D(728,1,{},Tr),h.Ve=function(t,n){return U4e(t,n)},I(sa,"Collectors/lambda$4$Type",728),D(145,1,{},Fn),h.Ve=function(t,n){return Gun(l(t,16),l(n,16))},I(sa,"Collectors/lambda$42$Type",145),D(361,1,{},qn),h.Ve=function(t,n){return Kun(l(t,49),l(n,49))},I(sa,"Collectors/lambda$50$Type",361),D(362,1,{},Un),h.Kb=function(t){return l(t,49)},I(sa,"Collectors/lambda$51$Type",362),D(1068,1,{},fd),h.Yd=function(t,n){myn(this.a,l(t,85),n)},I(sa,"Collectors/lambda$7$Type",1068),D(1070,1,{},At),h.Ve=function(t,n){return K3n(l(t,85),l(n,85),new xi)},I(sa,"Collectors/lambda$8$Type",1070),D(1071,1,{},Wv),h.Kb=function(t){return V4n(this.a,l(t,85))},I(sa,"Collectors/lambda$9$Type",1071),D(550,1,{}),h.$e=function(){tA(this)},h.d=!1,I(sa,"TerminatableStream",550),D(827,550,hEe,Vye),h.$e=function(){tA(this)},I(sa,"DoubleStreamImpl",827),D(1847,736,Ph,Mit),h.Re=function(t){return K6n(this,l(t,189))},h.a=null,I(sa,"DoubleStreamImpl/2",1847),D(1848,1,LP,sy),h.Pe=function(t){$ln(this.a,t)},I(sa,"DoubleStreamImpl/2/lambda$0$Type",1848),D(1845,1,LP,E8),h.Pe=function(t){jln(this.a,t)},I(sa,"DoubleStreamImpl/lambda$0$Type",1845),D(1846,1,LP,x5),h.Pe=function(t){M1t(this.a,t)},I(sa,"DoubleStreamImpl/lambda$2$Type",1846),D(1397,735,Ph,wut),h.Re=function(t){return Obn(this,l(t,202))},h.a=0,h.b=0,h.c=0,I(sa,"IntStream/5",1397),D(806,550,hEe,Uye),h.$e=function(){tA(this)},h._e=function(){return fb(this),this.a},I(sa,"IntStreamImpl",806),D(807,550,hEe,b3e),h.$e=function(){tA(this)},h._e=function(){return fb(this),Sye(),L6t},I(sa,"IntStreamImpl/Empty",807),D(1687,1,kP,T8),h.Dd=function(t){$ft(this.a,t)},I(sa,"IntStreamImpl/lambda$4$Type",1687);var dOn=ks(sa,"Stream");D(26,550,{533:1,687:1,848:1},bn),h.$e=function(){tA(this)};var zx;I(sa,"StreamImpl",26),D(1102,500,Ph,iit),h.Bd=function(t){for(;Bvn(this);){if(this.a.Bd(t))return!0;tA(this.b),this.b=null,this.a=null}return!1},I(sa,"StreamImpl/1",1102),D(1103,1,fr,ZS),h.Cd=function(t){udn(this.a,l(t,848))},I(sa,"StreamImpl/1/lambda$0$Type",1103),D(1104,1,ti,k5),h.Mb=function(t){return na(this.a,t)},I(sa,"StreamImpl/1methodref$add$Type",1104),D(1105,500,Ph,Rat),h.Bd=function(t){var n;return this.a||(n=new bt,this.b.a.Nb(new Qd(n)),Cn(),Vs(n,this.c),this.a=new kn(n,16)),xht(this.a,t)},h.a=null,I(sa,"StreamImpl/5",1105),D(1106,1,fr,Qd),h.Cd=function(t){vt(this.a,t)},I(sa,"StreamImpl/5/2methodref$add$Type",1106),D(737,500,Ph,$6e),h.Bd=function(t){for(this.b=!1;!this.b&&this.c.Bd(new xet(this,t)););return this.b},h.b=!1,I(sa,"StreamImpl/FilterSpliterator",737),D(1096,1,fr,xet),h.Cd=function(t){sgn(this.a,this.b,t)},I(sa,"StreamImpl/FilterSpliterator/lambda$0$Type",1096),D(1091,736,Ph,Mut),h.Re=function(t){return jfn(this,l(t,189))},I(sa,"StreamImpl/MapToDoubleSpliterator",1091),D(1095,1,fr,ket),h.Cd=function(t){uln(this.a,this.b,t)},I(sa,"StreamImpl/MapToDoubleSpliterator/lambda$0$Type",1095),D(1090,735,Ph,Dut),h.Re=function(t){return $fn(this,l(t,202))},I(sa,"StreamImpl/MapToIntSpliterator",1090),D(1094,1,fr,Eet),h.Cd=function(t){lln(this.a,this.b,t)},I(sa,"StreamImpl/MapToIntSpliterator/lambda$0$Type",1094),D(734,500,Ph,C6e),h.Bd=function(t){return tit(this,t)},I(sa,"StreamImpl/MapToObjSpliterator",734),D(1093,1,fr,Tet),h.Cd=function(t){hln(this.a,this.b,t)},I(sa,"StreamImpl/MapToObjSpliterator/lambda$0$Type",1093),D(1092,500,Ph,aft),h.Bd=function(t){for(;hse(this.b,0);){if(!this.a.Bd(new wt))return!1;this.b=Df(this.b,1)}return this.a.Bd(t)},h.b=0,I(sa,"StreamImpl/SkipSpliterator",1092),D(1097,1,fr,wt),h.Cd=function(t){},I(sa,"StreamImpl/SkipSpliterator/lambda$0$Type",1097),D(626,1,fr,on),h.Cd=function(t){Eie(this,t)},I(sa,"StreamImpl/ValueConsumer",626),D(1098,1,fr,fn),h.Cd=function(t){Am()},I(sa,"StreamImpl/lambda$0$Type",1098),D(1099,1,fr,An),h.Cd=function(t){Am()},I(sa,"StreamImpl/lambda$1$Type",1099),D(1100,1,{},_1),h.Ve=function(t,n){return v0n(this.a,t,n)},I(sa,"StreamImpl/lambda$4$Type",1100),D(1101,1,fr,Cet),h.Cd=function(t){Tfn(this.b,this.a,t)},I(sa,"StreamImpl/lambda$5$Type",1101),D(1107,1,fr,Jd),h.Cd=function(t){P3n(this.a,l(t,380))},I(sa,"TerminatableStream/lambda$0$Type",1107),D(2142,1,{}),D(2014,1,{},oo),I("javaemul.internal","ConsoleLogger",2014);var gOn=0;D(2134,1,{}),D(1830,1,fr,jo),h.Cd=function(t){l(t,317)},I(oT,"BowyerWatsonTriangulation/lambda$0$Type",1830),D(1831,1,fr,Em),h.Cd=function(t){Ka(this.a,l(t,317).e)},I(oT,"BowyerWatsonTriangulation/lambda$1$Type",1831),D(1832,1,fr,$o),h.Cd=function(t){l(t,177)},I(oT,"BowyerWatsonTriangulation/lambda$2$Type",1832),D(1827,1,ii,Lz),h.Ne=function(t,n){return vmn(this.a,l(t,177),l(n,177))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(oT,"NaiveMinST/lambda$0$Type",1827),D(449,1,{},Yv),I(oT,"NodeMicroLayout",449),D(177,1,{177:1},B8),h.Fb=function(t){var n;return De(t,177)?(n=l(t,177),Jc(this.a,n.a)&&Jc(this.b,n.b)||Jc(this.a,n.b)&&Jc(this.b,n.a)):!1},h.Hb=function(){return R5(this.a)+R5(this.b)};var pOn=I(oT,"TEdge",177);D(317,1,{317:1},Cke),h.Fb=function(t){var n;return De(t,317)?(n=l(t,317),rV(this,n.a)&&rV(this,n.b)&&rV(this,n.c)):!1},h.Hb=function(){return R5(this.a)+R5(this.b)+R5(this.c)},I(oT,"TTriangle",317),D(225,1,{225:1},Nq),I(oT,"Tree",225),D(1218,1,{},Eot),I(Jwt,"Scanline",1218);var F6t=ks(Jwt,Zwt);D(1758,1,{},vht),I(gg,"CGraph",1758),D(316,1,{316:1},Sot),h.b=0,h.c=0,h.d=0,h.g=0,h.i=0,h.k=ia,I(gg,"CGroup",316),D(830,1,{},Iwe),I(gg,"CGroup/CGroupBuilder",830),D(60,1,{60:1},Rrt),h.Ib=function(){var t;return this.j?ei(this.j.Kb(this)):(Gg(dK),dK.o+"@"+(t=fw(this)>>>0,t.toString(16)))},h.f=0,h.i=ia;var dK=I(gg,"CNode",60);D(829,1,{},Owe),I(gg,"CNode/CNodeBuilder",829);var R6t;D(1590,1,{},Pa),h.ff=function(t,n){return 0},h.gf=function(t,n){return 0},I(gg,t3t,1590),D(1853,1,{},wo),h.cf=function(t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te;for(C=gs,a=new G(t.a.b);a.aa.d.c||a.d.c==f.d.c&&a.d.b0?t+this.n.d+this.n.a:0},h.kf=function(){var t,n,r,a,o;if(o=0,this.e)this.b?o=this.b.a:this.a[1][1]&&(o=this.a[1][1].kf());else if(this.g)o=E8e(this,Eue(this,null,!0));else for(n=(t1(),he(le(s4,1),it,237,0,[Gc,$u,Kc])),r=0,a=n.length;r0?o+this.n.b+this.n.c:0},h.lf=function(){var t,n,r,a,o;if(this.g)for(t=Eue(this,null,!1),r=(t1(),he(le(s4,1),it,237,0,[Gc,$u,Kc])),a=0,o=r.length;a0&&(a[0]+=this.d,r-=a[0]),a[2]>0&&(a[2]+=this.d,r-=a[2]),this.c.a=b.Math.max(0,r),this.c.d=n.d+t.d+(this.c.a-r)/2,a[1]=b.Math.max(a[1],r),x6e(this,$u,n.d+t.d+a[0]-(a[1]-r)/2,a)},h.b=null,h.d=0,h.e=!1,h.f=!1,h.g=!1;var q0e=0,gK=0;I(ev,"GridContainerCell",1538),D(471,22,{3:1,34:1,22:1,471:1},pse);var Bb,Fd,v0,W6t=Fr(ev,"HorizontalLabelAlignment",471,Hr,O2n,a0n),Y6t;D(314,217,{217:1,314:1},uot,yht,not),h.jf=function(){return Hit(this)},h.kf=function(){return j4e(this)},h.a=0,h.c=!1;var bOn=I(ev,"LabelCell",314);D(252,336,{217:1,336:1,252:1},DA),h.jf=function(){return tP(this)},h.kf=function(){return nP(this)},h.lf=function(){hle(this)},h.mf=function(){fle(this)},h.b=0,h.c=0,h.d=!1,I(ev,"StripContainerCell",252),D(1691,1,ti,Xc),h.Mb=function(t){return aun(l(t,217))},I(ev,"StripContainerCell/lambda$0$Type",1691),D(1692,1,{},Bc),h.Ye=function(t){return l(t,217).kf()},I(ev,"StripContainerCell/lambda$1$Type",1692),D(1693,1,ti,ja),h.Mb=function(t){return oun(l(t,217))},I(ev,"StripContainerCell/lambda$2$Type",1693),D(1694,1,{},Ou),h.Ye=function(t){return l(t,217).jf()},I(ev,"StripContainerCell/lambda$3$Type",1694),D(472,22,{3:1,34:1,22:1,472:1},bse);var w0,Fb,a1,X6t=Fr(ev,"VerticalLabelAlignment",472,Hr,I2n,o0n),Q6t;D(800,1,{},zke),h.c=0,h.d=0,h.k=0,h.s=0,h.t=0,h.v=!1,h.w=0,h.D=!1,I(tG,"NodeContext",800),D(1536,1,ii,Sa),h.Ne=function(t,n){return tnt(l(t,64),l(n,64))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(tG,"NodeContext/0methodref$comparePortSides$Type",1536),D(1537,1,ii,Po),h.Ne=function(t,n){return Bxn(l(t,117),l(n,117))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(tG,"NodeContext/1methodref$comparePortContexts$Type",1537),D(164,22,{3:1,34:1,22:1,164:1},of);var J6t,Z6t,e7t,t7t,n7t,r7t,i7t,s7t,a7t,o7t,c7t,u7t,l7t,h7t,f7t,d7t,g7t,p7t,b7t,m7t,v7t,H0e,w7t=Fr(tG,"NodeLabelLocation",164,Hr,eue,c0n),y7t;D(117,1,{117:1},c2t),h.a=!1,I(tG,"PortContext",117),D(1541,1,fr,Fc),h.Cd=function(t){vZe(l(t,314))},I(DP,g3t,1541),D(1542,1,ti,xa),h.Mb=function(t){return!!l(t,117).c},I(DP,p3t,1542),D(1543,1,fr,Ba),h.Cd=function(t){vZe(l(t,117).c)},I(DP,"LabelPlacer/lambda$2$Type",1543);var q_e;D(1540,1,fr,ga),h.Cd=function(t){py(),jcn(l(t,117))},I(DP,"NodeLabelAndSizeUtilities/lambda$0$Type",1540),D(801,1,fr,v4e),h.Cd=function(t){Zun(this.b,this.c,this.a,l(t,187))},h.a=!1,h.c=!1,I(DP,"NodeLabelCellCreator/lambda$0$Type",801),D(1539,1,fr,Die),h.Cd=function(t){qcn(this.a,l(t,187))},I(DP,"PortContextCreator/lambda$0$Type",1539);var pK;D(1902,1,{},kh),I(uT,"GreedyRectangleStripOverlapRemover",1902),D(1903,1,ii,lu),h.Ne=function(t,n){return Dhn(l(t,226),l(n,226))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(uT,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1903),D(1849,1,{},zQe),h.a=5,h.e=0,I(uT,"RectangleStripOverlapRemover",1849),D(1850,1,ii,o5),h.Ne=function(t,n){return Ihn(l(t,226),l(n,226))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(uT,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1850),D(1852,1,ii,Wh),h.Ne=function(t,n){return xgn(l(t,226),l(n,226))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(uT,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1852),D(417,22,{3:1,34:1,22:1,417:1},uq);var rB,V0e,U0e,iB,x7t=Fr(uT,"RectangleStripOverlapRemover/OverlapRemovalDirection",417,Hr,Kbn,u0n),k7t;D(226,1,{226:1},Dae),I(uT,"RectangleStripOverlapRemover/RectangleNode",226),D(1851,1,fr,Iie),h.Cd=function(t){c7n(this.a,l(t,226))},I(uT,"RectangleStripOverlapRemover/lambda$1$Type",1851),D(1323,1,ii,od),h.Ne=function(t,n){return ALn(l(t,176),l(n,176))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Md,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1323),D(1326,1,{},Gd),h.Kb=function(t){return l(t,334).a},I(Md,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1326),D(1327,1,ti,cd),h.Mb=function(t){return l(t,332).a},I(Md,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1327),D(1328,1,ti,Kd),h.Mb=function(t){return l(t,332).a},I(Md,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1328),D(1321,1,ii,$g),h.Ne=function(t,n){return i_n(l(t,176),l(n,176))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Md,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1321),D(1324,1,{},as),h.Kb=function(t){return l(t,334).a},I(Md,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1324),D(781,1,ii,wn),h.Ne=function(t,n){return $3n(l(t,176),l(n,176))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Md,"PolyominoCompactor/MinNumOfExtensionsComparator",781),D(1319,1,ii,Zr),h.Ne=function(t,n){return Wwn(l(t,330),l(n,330))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Md,"PolyominoCompactor/MinPerimeterComparator",1319),D(1320,1,ii,Zi),h.Ne=function(t,n){return I6n(l(t,330),l(n,330))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Md,"PolyominoCompactor/MinPerimeterComparatorWithShape",1320),D(1322,1,ii,nu),h.Ne=function(t,n){return C_n(l(t,176),l(n,176))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Md,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1322),D(1325,1,{},vu),h.Kb=function(t){return l(t,334).a},I(Md,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1325),D(782,1,{},L3e),h.Ve=function(t,n){return jbn(this,l(t,42),l(n,176))},I(Md,"SuccessorCombination",782),D(649,1,{},Dl),h.Ve=function(t,n){var r;return tEn((r=l(t,42),l(n,176),r))},I(Md,"SuccessorJitter",649),D(648,1,{},Yh),h.Ve=function(t,n){var r;return zCn((r=l(t,42),l(n,176),r))},I(Md,"SuccessorLineByLine",648),D(573,1,{},w1),h.Ve=function(t,n){var r;return tTn((r=l(t,42),l(n,176),r))},I(Md,"SuccessorManhattan",573),D(1344,1,{},$0),h.Ve=function(t,n){var r;return hCn((r=l(t,42),l(n,176),r))},I(Md,"SuccessorMaxNormWindingInMathPosSense",1344),D(409,1,{},E5),h.Ve=function(t,n){return u5e(this,t,n)},h.c=!1,h.d=!1,h.e=!1,h.f=!1,I(Md,"SuccessorQuadrantsGeneric",409),D(1345,1,{},Wi),h.Kb=function(t){return l(t,334).a},I(Md,"SuccessorQuadrantsGeneric/lambda$0$Type",1345),D(332,22,{3:1,34:1,22:1,332:1},lq),h.a=!1;var sB,aB,oB,cB,E7t=Fr(rG,kEe,332,Hr,Ubn,l0n),T7t;D(1317,1,{}),h.Ib=function(){var t,n,r,a,o,f;for(r=" ",t=pt(0),o=0;o>>0,t.toString(16))},h.equals=function(e){return this.Fb(e)},h.hashCode=function(){return this.Hb()},h.toString=function(){return this.Ib()};var t6t,n6t,r6t;D(297,1,{297:1,2124:1},B7e),h.ve=function(t){var n;return n=new B7e,n.i=4,t>1?n.c=yot(this,t-1):n.c=this,n},h.we=function(){return Gg(this),this.b},h.xe=function(){return _m(this)},h.ye=function(){return Gg(this),this.k},h.ze=function(){return(this.i&4)!=0},h.Ae=function(){return(this.i&1)!=0},h.Ib=function(){return K6e(this)},h.i=0;var wa=I(Vc,"Object",1),qSe=I(Vc,"Class",297);D(2096,1,yP),I(xP,"Optional",2096),D(1191,2096,yP,_),h.Fb=function(t){return t===this},h.Hb=function(){return 2040732332},h.Ib=function(){return"Optional.absent()"},h.Jb=function(t){return Xr(t),o_(),v0e};var v0e;I(xP,"Absent",1191),D(636,1,{},Zie),I(xP,"Joiner",636);var oOn=ks(xP,"Predicate");D(589,1,{178:1,589:1,3:1,46:1},gz),h.Mb=function(t){return y0t(this,t)},h.Lb=function(t){return y0t(this,t)},h.Fb=function(t){var n;return De(t,589)?(n=l(t,589),O9e(this.a,n.a)):!1},h.Hb=function(){return q7e(this.a)+306654252},h.Ib=function(){return K9n(this.a)},I(xP,"Predicates/AndPredicate",589),D(419,2096,{419:1,3:1},JS),h.Fb=function(t){var n;return De(t,419)?(n=l(t,419),Pi(this.a,n.a)):!1},h.Hb=function(){return 1502476572+es(this.a)},h.Ib=function(){return Awt+this.a+")"},h.Jb=function(t){return new JS(_H(t.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},I(xP,"Present",419),D(204,1,eT),h.Nb=function(t){Za(this,t)},h.Qb=function(){jJe()},I(dn,"UnmodifiableIterator",204),D(2076,204,tT),h.Qb=function(){jJe()},h.Rb=function(t){throw ue(new Qr)},h.Wb=function(t){throw ue(new Qr)},I(dn,"UnmodifiableListIterator",2076),D(399,2076,tT),h.Ob=function(){return this.c0},h.Pb=function(){if(this.c>=this.d)throw ue(new _c);return this.Xb(this.c++)},h.Tb=function(){return this.c},h.Ub=function(){if(this.c<=0)throw ue(new _c);return this.Xb(--this.c)},h.Vb=function(){return this.c-1},h.c=0,h.d=0,I(dn,"AbstractIndexedListIterator",399),D(713,204,eT),h.Ob=function(){return tce(this)},h.Pb=function(){return z6e(this)},h.e=1,I(dn,"AbstractIterator",713),D(2084,1,{229:1}),h.Zb=function(){var t;return t=this.f,t||(this.f=this.ac())},h.Fb=function(t){return Ece(this,t)},h.Hb=function(){return es(this.Zb())},h.dc=function(){return this.gc()==0},h.ec=function(){return W8(this)},h.Ib=function(){return xc(this.Zb())},I(dn,"AbstractMultimap",2084),D(742,2084,Jm),h.$b=function(){mV(this)},h._b=function(t){return iZe(this,t)},h.ac=function(){return new Lk(this,this.c)},h.ic=function(t){return this.hc()},h.bc=function(){return new q5(this,this.c)},h.jc=function(){return this.mc(this.hc())},h.kc=function(){return new EJe(this)},h.lc=function(){return Iue(this.c.vc().Nc(),new P,64,this.d)},h.cc=function(t){return $i(this,t)},h.fc=function(t){return DN(this,t)},h.gc=function(){return this.d},h.mc=function(t){return Cn(),new $a(t)},h.nc=function(){return new kJe(this)},h.oc=function(){return Iue(this.c.Cc().Nc(),new A,64,this.d)},h.pc=function(t,n){return new YH(this,t,n,null)},h.d=0,I(dn,"AbstractMapBasedMultimap",742),D(1696,742,Jm),h.hc=function(){return new Bu(this.a)},h.jc=function(){return Cn(),Cn(),_o},h.cc=function(t){return l($i(this,t),15)},h.fc=function(t){return l(DN(this,t),15)},h.Zb=function(){return ex(this)},h.Fb=function(t){return Ece(this,t)},h.qc=function(t){return l($i(this,t),15)},h.rc=function(t){return l(DN(this,t),15)},h.mc=function(t){return ioe(l(t,15))},h.pc=function(t,n){return _ct(this,t,l(n,15),null)},I(dn,"AbstractListMultimap",1696),D(748,1,Oa),h.Nb=function(t){Za(this,t)},h.Ob=function(){return this.c.Ob()||this.e.Ob()},h.Pb=function(){var t;return this.e.Ob()||(t=l(this.c.Pb(),44),this.b=t.ld(),this.a=l(t.md(),16),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},h.Qb=function(){this.e.Qb(),l(Lf(this.a),16).dc()&&this.c.Qb(),--this.d.d},I(dn,"AbstractMapBasedMultimap/Itr",748),D(1129,748,Oa,kJe),h.sc=function(t,n){return n},I(dn,"AbstractMapBasedMultimap/1",1129),D(1130,1,{},A),h.Kb=function(t){return l(t,16).Nc()},I(dn,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1130),D(1131,748,Oa,EJe),h.sc=function(t,n){return new iw(t,n)},I(dn,"AbstractMapBasedMultimap/2",1131);var HSe=ks(Lr,"Map");D(2065,1,Ww),h.wc=function(t){mA(this,t)},h.yc=function(t,n,r){return qce(this,t,n,r)},h.$b=function(){this.vc().$b()},h.tc=function(t){return gue(this,t)},h._b=function(t){return!!Dxe(this,t,!1)},h.uc=function(t){var n,r,a;for(r=this.vc().Kc();r.Ob();)if(n=l(r.Pb(),44),a=n.md(),qe(t)===qe(a)||t!=null&&Pi(t,a))return!0;return!1},h.Fb=function(t){var n,r,a;if(t===this)return!0;if(!De(t,85)||(a=l(t,85),this.gc()!=a.gc()))return!1;for(r=a.vc().Kc();r.Ob();)if(n=l(r.Pb(),44),!this.tc(n))return!1;return!0},h.xc=function(t){return hc(Dxe(this,t,!1))},h.Hb=function(){return I7e(this.vc())},h.dc=function(){return this.gc()==0},h.ec=function(){return new br(this)},h.zc=function(t,n){throw ue(new Hp("Put not supported on this map"))},h.Ac=function(t){bA(this,t)},h.Bc=function(t){return hc(Dxe(this,t,!0))},h.gc=function(){return this.vc().gc()},h.Ib=function(){return Igt(this)},h.Cc=function(){return new gi(this)},I(Lr,"AbstractMap",2065),D(2085,2065,Ww),h.bc=function(){return new Yz(this)},h.vc=function(){return Est(this)},h.ec=function(){var t;return t=this.g,t||(this.g=this.bc())},h.Cc=function(){var t;return t=this.i,t||(this.i=new WZe(this))},I(dn,"Maps/ViewCachingAbstractMap",2085),D(402,2085,Ww,Lk),h.xc=function(t){return fwn(this,t)},h.Bc=function(t){return Pyn(this,t)},h.$b=function(){this.d==this.e.c?this.e.$b():iH(new V4e(this))},h._b=function(t){return i1t(this.d,t)},h.Ec=function(){return new pz(this)},h.Dc=function(){return this.Ec()},h.Fb=function(t){return this===t||Pi(this.d,t)},h.Hb=function(){return es(this.d)},h.ec=function(){return this.e.ec()},h.gc=function(){return this.d.gc()},h.Ib=function(){return xc(this.d)},I(dn,"AbstractMapBasedMultimap/AsMap",402);var Fh=ks(Vc,"Iterable");D(31,1,Wy),h.Jc=function(t){to(this,t)},h.Lc=function(){return this.Oc()},h.Nc=function(){return new kn(this,0)},h.Oc=function(){return new bn(null,this.Nc())},h.Fc=function(t){throw ue(new Hp("Add not supported on this collection"))},h.Gc=function(t){return Ka(this,t)},h.$b=function(){M5e(this)},h.Hc=function(t){return Ny(this,t,!1)},h.Ic=function(t){return EN(this,t)},h.dc=function(){return this.gc()==0},h.Mc=function(t){return Ny(this,t,!0)},h.Pc=function(){return e5e(this)},h.Qc=function(t){return PA(this,t)},h.Ib=function(){return Tb(this)},I(Lr,"AbstractCollection",31);var jf=ks(Lr,"Set");D(q1,31,Tl),h.Nc=function(){return new kn(this,1)},h.Fb=function(t){return Y1t(this,t)},h.Hb=function(){return I7e(this)},I(Lr,"AbstractSet",q1),D(2068,q1,Tl),I(dn,"Sets/ImprovedAbstractSet",2068),D(2069,2068,Tl),h.$b=function(){this.Rc().$b()},h.Hc=function(t){return O1t(this,t)},h.dc=function(){return this.Rc().dc()},h.Mc=function(t){var n;return this.Hc(t)&&De(t,44)?(n=l(t,44),this.Rc().ec().Mc(n.ld())):!1},h.gc=function(){return this.Rc().gc()},I(dn,"Maps/EntrySet",2069),D(1127,2069,Tl,pz),h.Hc=function(t){return s8e(this.a.d.vc(),t)},h.Kc=function(){return new V4e(this.a)},h.Rc=function(){return this.a},h.Mc=function(t){var n;return s8e(this.a.d.vc(),t)?(n=l(Lf(l(t,44)),44),evn(this.a.e,n.ld()),!0):!1},h.Nc=function(){return NO(this.a.d.vc().Nc(),new bz(this.a))},I(dn,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1127),D(1128,1,{},bz),h.Kb=function(t){return Cut(this.a,l(t,44))},I(dn,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1128),D(746,1,Oa,V4e),h.Nb=function(t){Za(this,t)},h.Pb=function(){var t;return t=l(this.b.Pb(),44),this.a=l(t.md(),16),Cut(this.c,t)},h.Ob=function(){return this.b.Ob()},h.Qb=function(){Rk(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},I(dn,"AbstractMapBasedMultimap/AsMap/AsMapIterator",746),D(542,2068,Tl,Yz),h.$b=function(){this.b.$b()},h.Hc=function(t){return this.b._b(t)},h.Jc=function(t){Xr(t),this.b.wc(new xz(t))},h.dc=function(){return this.b.dc()},h.Kc=function(){return new c_(this.b.vc().Kc())},h.Mc=function(t){return this.b._b(t)?(this.b.Bc(t),!0):!1},h.gc=function(){return this.b.gc()},I(dn,"Maps/KeySet",542),D(327,542,Tl,q5),h.$b=function(){var t;iH((t=this.b.vc().Kc(),new g3e(this,t)))},h.Ic=function(t){return this.b.ec().Ic(t)},h.Fb=function(t){return this===t||Pi(this.b.ec(),t)},h.Hb=function(){return es(this.b.ec())},h.Kc=function(){var t;return t=this.b.vc().Kc(),new g3e(this,t)},h.Mc=function(t){var n,r;return r=0,n=l(this.b.Bc(t),16),n&&(r=n.gc(),n.$b(),this.a.d-=r),r>0},h.Nc=function(){return this.b.ec().Nc()},I(dn,"AbstractMapBasedMultimap/KeySet",327),D(747,1,Oa,g3e),h.Nb=function(t){Za(this,t)},h.Ob=function(){return this.c.Ob()},h.Pb=function(){return this.a=l(this.c.Pb(),44),this.a.ld()},h.Qb=function(){var t;Rk(!!this.a),t=l(this.a.md(),16),this.c.Qb(),this.b.a.d-=t.gc(),t.$b(),this.a=null},I(dn,"AbstractMapBasedMultimap/KeySet/1",747),D(503,402,{85:1,133:1},_O),h.bc=function(){return this.Sc()},h.ec=function(){return this.Uc()},h.Sc=function(){return new tO(this.c,this.Wc())},h.Tc=function(){return this.Wc().Tc()},h.Uc=function(){var t;return t=this.b,t||(this.b=this.Sc())},h.Vc=function(){return this.Wc().Vc()},h.Wc=function(){return l(this.d,133)},I(dn,"AbstractMapBasedMultimap/SortedAsMap",503),D(446,503,Zke,q_),h.bc=function(){return new Ak(this.a,l(l(this.d,133),139))},h.Sc=function(){return new Ak(this.a,l(l(this.d,133),139))},h.ec=function(){var t;return t=this.b,l(t||(this.b=new Ak(this.a,l(l(this.d,133),139))),277)},h.Uc=function(){var t;return t=this.b,l(t||(this.b=new Ak(this.a,l(l(this.d,133),139))),277)},h.Wc=function(){return l(l(this.d,133),139)},h.Xc=function(t){return l(l(this.d,133),139).Xc(t)},h.Yc=function(t){return l(l(this.d,133),139).Yc(t)},h.Zc=function(t,n){return new q_(this.a,l(l(this.d,133),139).Zc(t,n))},h.$c=function(t){return l(l(this.d,133),139).$c(t)},h._c=function(t){return l(l(this.d,133),139)._c(t)},h.ad=function(t,n){return new q_(this.a,l(l(this.d,133),139).ad(t,n))},I(dn,"AbstractMapBasedMultimap/NavigableAsMap",446),D(502,327,Lwt,tO),h.Nc=function(){return this.b.ec().Nc()},I(dn,"AbstractMapBasedMultimap/SortedKeySet",502),D(401,502,eEe,Ak),I(dn,"AbstractMapBasedMultimap/NavigableKeySet",401),D(551,31,Wy,YH),h.Fc=function(t){var n,r;return Ql(this),r=this.d.dc(),n=this.d.Fc(t),n&&(++this.f.d,r&&DO(this)),n},h.Gc=function(t){var n,r,a;return t.dc()?!1:(a=(Ql(this),this.d.gc()),n=this.d.Gc(t),n&&(r=this.d.gc(),this.f.d+=r-a,a==0&&DO(this)),n)},h.$b=function(){var t;t=(Ql(this),this.d.gc()),t!=0&&(this.d.$b(),this.f.d-=t,lH(this))},h.Hc=function(t){return Ql(this),this.d.Hc(t)},h.Ic=function(t){return Ql(this),this.d.Ic(t)},h.Fb=function(t){return t===this?!0:(Ql(this),Pi(this.d,t))},h.Hb=function(){return Ql(this),es(this.d)},h.Kc=function(){return Ql(this),new _4e(this)},h.Mc=function(t){var n;return Ql(this),n=this.d.Mc(t),n&&(--this.f.d,lH(this)),n},h.gc=function(){return Rtt(this)},h.Nc=function(){return Ql(this),this.d.Nc()},h.Ib=function(){return Ql(this),xc(this.d)},I(dn,"AbstractMapBasedMultimap/WrappedCollection",551);var mf=ks(Lr,"List");D(744,551,{20:1,31:1,16:1,15:1},r5e),h.jd=function(t){$m(this,t)},h.Nc=function(){return Ql(this),this.d.Nc()},h.bd=function(t,n){var r;Ql(this),r=this.d.dc(),l(this.d,15).bd(t,n),++this.a.d,r&&DO(this)},h.cd=function(t,n){var r,a,o;return n.dc()?!1:(o=(Ql(this),this.d.gc()),r=l(this.d,15).cd(t,n),r&&(a=this.d.gc(),this.a.d+=a-o,o==0&&DO(this)),r)},h.Xb=function(t){return Ql(this),l(this.d,15).Xb(t)},h.dd=function(t){return Ql(this),l(this.d,15).dd(t)},h.ed=function(){return Ql(this),new gnt(this)},h.fd=function(t){return Ql(this),new Fat(this,t)},h.gd=function(t){var n;return Ql(this),n=l(this.d,15).gd(t),--this.a.d,lH(this),n},h.hd=function(t,n){return Ql(this),l(this.d,15).hd(t,n)},h.kd=function(t,n){return Ql(this),_ct(this.a,this.e,l(this.d,15).kd(t,n),this.b?this.b:this)},I(dn,"AbstractMapBasedMultimap/WrappedList",744),D(1126,744,{20:1,31:1,16:1,15:1,59:1},rrt),I(dn,"AbstractMapBasedMultimap/RandomAccessWrappedList",1126),D(628,1,Oa,_4e),h.Nb=function(t){Za(this,t)},h.Ob=function(){return Yk(this),this.b.Ob()},h.Pb=function(){return Yk(this),this.b.Pb()},h.Qb=function(){znt(this)},I(dn,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",628),D(745,628,lg,gnt,Fat),h.Qb=function(){znt(this)},h.Rb=function(t){var n;n=Rtt(this.a)==0,(Yk(this),l(this.b,128)).Rb(t),++this.a.a.d,n&&DO(this.a)},h.Sb=function(){return(Yk(this),l(this.b,128)).Sb()},h.Tb=function(){return(Yk(this),l(this.b,128)).Tb()},h.Ub=function(){return(Yk(this),l(this.b,128)).Ub()},h.Vb=function(){return(Yk(this),l(this.b,128)).Vb()},h.Wb=function(t){(Yk(this),l(this.b,128)).Wb(t)},I(dn,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",745),D(743,551,Lwt,Gye),h.Nc=function(){return Ql(this),this.d.Nc()},I(dn,"AbstractMapBasedMultimap/WrappedSortedSet",743),D(1125,743,eEe,unt),I(dn,"AbstractMapBasedMultimap/WrappedNavigableSet",1125),D(1124,551,Tl,Trt),h.Nc=function(){return Ql(this),this.d.Nc()},I(dn,"AbstractMapBasedMultimap/WrappedSet",1124),D(1133,1,{},P),h.Kb=function(t){return lvn(l(t,44))},I(dn,"AbstractMapBasedMultimap/lambda$1$Type",1133),D(1132,1,{},bie),h.Kb=function(t){return new iw(this.a,t)},I(dn,"AbstractMapBasedMultimap/lambda$2$Type",1132);var uv=ks(Lr,"Map/Entry");D(358,1,Nle),h.Fb=function(t){var n;return De(t,44)?(n=l(t,44),yd(this.ld(),n.ld())&&yd(this.md(),n.md())):!1},h.Hb=function(){var t,n;return t=this.ld(),n=this.md(),(t==null?0:es(t))^(n==null?0:es(n))},h.nd=function(t){throw ue(new Qr)},h.Ib=function(){return this.ld()+"="+this.md()},I(dn,Mwt,358),D(2086,31,Wy),h.$b=function(){this.od().$b()},h.Hc=function(t){var n;return De(t,44)?(n=l(t,44),Dbn(this.od(),n.ld(),n.md())):!1},h.Mc=function(t){var n;return De(t,44)?(n=l(t,44),cct(this.od(),n.ld(),n.md())):!1},h.gc=function(){return this.od().d},I(dn,"Multimaps/Entries",2086),D(749,2086,Wy,vz),h.Kc=function(){return this.a.kc()},h.od=function(){return this.a},h.Nc=function(){return this.a.lc()},I(dn,"AbstractMultimap/Entries",749),D(750,749,Tl,Uwe),h.Nc=function(){return this.a.lc()},h.Fb=function(t){return Qxe(this,t)},h.Hb=function(){return wft(this)},I(dn,"AbstractMultimap/EntrySet",750),D(751,31,Wy,Q2),h.$b=function(){this.a.$b()},h.Hc=function(t){return Lyn(this.a,t)},h.Kc=function(){return this.a.nc()},h.gc=function(){return this.a.d},h.Nc=function(){return this.a.oc()},I(dn,"AbstractMultimap/Values",751),D(2087,31,{849:1,20:1,31:1,16:1}),h.Jc=function(t){Xr(t),V5(this).Jc(new kie(t))},h.Nc=function(){var t;return t=V5(this).Nc(),Iue(t,new pe,64|t.yd()&1296,this.a.d)},h.Fc=function(t){return Zwe(),!0},h.Gc=function(t){return Xr(this),Xr(t),De(t,552)?Nbn(l(t,849)):!t.dc()&&Goe(this,t.Kc())},h.Hc=function(t){var n;return n=l(Oy(ex(this.a),t),16),(n?n.gc():0)>0},h.Fb=function(t){return nTn(this,t)},h.Hb=function(){return es(V5(this))},h.dc=function(){return V5(this).dc()},h.Mc=function(t){return Upt(this,t,1)>0},h.Ib=function(){return xc(V5(this))},I(dn,"AbstractMultiset",2087),D(2089,2068,Tl),h.$b=function(){mV(this.a.a)},h.Hc=function(t){var n,r;return De(t,504)?(r=l(t,425),l(r.a.md(),16).gc()<=0?!1:(n=Pot(this.a,r.a.ld()),n==l(r.a.md(),16).gc())):!1},h.Mc=function(t){var n,r,a,o;return De(t,504)&&(r=l(t,425),n=r.a.ld(),a=l(r.a.md(),16).gc(),a!=0)?(o=this.a,Gkn(o,n,a)):!1},I(dn,"Multisets/EntrySet",2089),D(1139,2089,Tl,mie),h.Kc=function(){return new AJe(Est(ex(this.a.a)).Kc())},h.gc=function(){return ex(this.a.a).gc()},I(dn,"AbstractMultiset/EntrySet",1139),D(627,742,Jm),h.hc=function(){return this.pd()},h.jc=function(){return this.qd()},h.cc=function(t){return this.rd(t)},h.fc=function(t){return this.sd(t)},h.Zb=function(){var t;return t=this.f,t||(this.f=this.ac())},h.qd=function(){return Cn(),Cn(),hK},h.Fb=function(t){return Ece(this,t)},h.rd=function(t){return l($i(this,t),21)},h.sd=function(t){return l(DN(this,t),21)},h.mc=function(t){return Cn(),new Ek(l(t,21))},h.pc=function(t,n){return new Trt(this,t,l(n,21))},I(dn,"AbstractSetMultimap",627),D(1723,627,Jm),h.hc=function(){return new Kp(this.b)},h.pd=function(){return new Kp(this.b)},h.jc=function(){return T5e(new Kp(this.b))},h.qd=function(){return T5e(new Kp(this.b))},h.cc=function(t){return l(l($i(this,t),21),87)},h.rd=function(t){return l(l($i(this,t),21),87)},h.fc=function(t){return l(l(DN(this,t),21),87)},h.sd=function(t){return l(l(DN(this,t),21),87)},h.mc=function(t){return De(t,277)?T5e(l(t,277)):(Cn(),new Dye(l(t,87)))},h.Zb=function(){var t;return t=this.f,t||(this.f=De(this.c,139)?new q_(this,l(this.c,139)):De(this.c,133)?new _O(this,l(this.c,133)):new Lk(this,this.c))},h.pc=function(t,n){return De(n,277)?new unt(this,t,l(n,277)):new Gye(this,t,l(n,87))},I(dn,"AbstractSortedSetMultimap",1723),D(1724,1723,Jm),h.Zb=function(){var t;return t=this.f,l(l(t||(this.f=De(this.c,139)?new q_(this,l(this.c,139)):De(this.c,133)?new _O(this,l(this.c,133)):new Lk(this,this.c)),133),139)},h.ec=function(){var t;return t=this.i,l(l(t||(this.i=De(this.c,139)?new Ak(this,l(this.c,139)):De(this.c,133)?new tO(this,l(this.c,133)):new q5(this,this.c)),87),277)},h.bc=function(){return De(this.c,139)?new Ak(this,l(this.c,139)):De(this.c,133)?new tO(this,l(this.c,133)):new q5(this,this.c)},I(dn,"AbstractSortedKeySortedSetMultimap",1724),D(2109,1,{2046:1}),h.Fb=function(t){return _8n(this,t)},h.Hb=function(){var t;return I7e((t=this.g,t||(this.g=new $I(this))))},h.Ib=function(){var t;return Igt((t=this.f,t||(this.f=new _ye(this))))},I(dn,"AbstractTable",2109),D(679,q1,Tl,$I),h.$b=function(){$Je()},h.Hc=function(t){var n,r;return De(t,479)?(n=l(t,697),r=l(Oy(Kst(this.a),ab(n.c.e,n.b)),85),!!r&&s8e(r.vc(),new iw(ab(n.c.c,n.a),ox(n.c,n.b,n.a)))):!1},h.Kc=function(){return Dpn(this.a)},h.Mc=function(t){var n,r;return De(t,479)?(n=l(t,697),r=l(Oy(Kst(this.a),ab(n.c.e,n.b)),85),!!r&&c4n(r.vc(),new iw(ab(n.c.c,n.a),ox(n.c,n.b,n.a)))):!1},h.gc=function(){return Xit(this.a)},h.Nc=function(){return Fbn(this.a)},I(dn,"AbstractTable/CellSet",679),D(2025,31,Wy,wie),h.$b=function(){$Je()},h.Hc=function(t){return wxn(this.a,t)},h.Kc=function(){return Ipn(this.a)},h.gc=function(){return Xit(this.a)},h.Nc=function(){return oct(this.a)},I(dn,"AbstractTable/Values",2025),D(1697,1696,Jm),I(dn,"ArrayListMultimapGwtSerializationDependencies",1697),D(520,1697,Jm,nse,G5e),h.hc=function(){return new Bu(this.a)},h.a=0,I(dn,"ArrayListMultimap",520),D(678,2109,{678:1,2046:1,3:1},i2t),I(dn,"ArrayTable",678),D(2021,399,tT,qnt),h.Xb=function(t){return new F7e(this.a,t)},I(dn,"ArrayTable/1",2021),D(2022,1,{},gie),h.td=function(t){return new F7e(this.a,t)},I(dn,"ArrayTable/1methodref$getCell$Type",2022),D(2110,1,{697:1}),h.Fb=function(t){var n;return t===this?!0:De(t,479)?(n=l(t,697),yd(ab(this.c.e,this.b),ab(n.c.e,n.b))&&yd(ab(this.c.c,this.a),ab(n.c.c,n.a))&&yd(ox(this.c,this.b,this.a),ox(n.c,n.b,n.a))):!1},h.Hb=function(){return MN(he(le(wa,1),Rn,1,5,[ab(this.c.e,this.b),ab(this.c.c,this.a),ox(this.c,this.b,this.a)]))},h.Ib=function(){return"("+ab(this.c.e,this.b)+","+ab(this.c.c,this.a)+")="+ox(this.c,this.b,this.a)},I(dn,"Tables/AbstractCell",2110),D(479,2110,{479:1,697:1},F7e),h.a=0,h.b=0,h.d=0,I(dn,"ArrayTable/2",479),D(2024,1,{},pie),h.td=function(t){return Ilt(this.a,t)},I(dn,"ArrayTable/2methodref$getValue$Type",2024),D(2023,399,tT,Hnt),h.Xb=function(t){return Ilt(this.a,t)},I(dn,"ArrayTable/3",2023),D(2077,2065,Ww),h.$b=function(){iH(this.kc())},h.vc=function(){return new yz(this)},h.lc=function(){return new _at(this.kc(),this.gc())},I(dn,"Maps/IteratorBasedAbstractMap",2077),D(842,2077,Ww),h.$b=function(){throw ue(new Qr)},h._b=function(t){return sZe(this.c,t)},h.kc=function(){return new Vnt(this,this.c.b.c.gc())},h.lc=function(){return Cae(this.c.b.c.gc(),16,new mz(this))},h.xc=function(t){var n;return n=l(H_(this.c,t),17),n?this.vd(n.a):null},h.dc=function(){return this.c.b.c.dc()},h.ec=function(){return Oae(this.c)},h.zc=function(t,n){var r;if(r=l(H_(this.c,t),17),!r)throw ue(new Yn(this.ud()+" "+t+" not in "+Oae(this.c)));return this.wd(r.a,n)},h.Bc=function(t){throw ue(new Qr)},h.gc=function(){return this.c.b.c.gc()},I(dn,"ArrayTable/ArrayMap",842),D(2020,1,{},mz),h.td=function(t){return Yst(this.a,t)},I(dn,"ArrayTable/ArrayMap/0methodref$getEntry$Type",2020),D(2018,358,Nle,DZe),h.ld=function(){return Uhn(this.a,this.b)},h.md=function(){return this.a.vd(this.b)},h.nd=function(t){return this.a.wd(this.b,t)},h.b=0,I(dn,"ArrayTable/ArrayMap/1",2018),D(2019,399,tT,Vnt),h.Xb=function(t){return Yst(this.a,t)},I(dn,"ArrayTable/ArrayMap/2",2019),D(2017,842,Ww,Bst),h.ud=function(){return"Column"},h.vd=function(t){return ox(this.b,this.a,t)},h.wd=function(t,n){return s0t(this.b,this.a,t,n)},h.a=0,I(dn,"ArrayTable/Row",2017),D(843,842,Ww,_ye),h.vd=function(t){return new Bst(this.a,t)},h.zc=function(t,n){return l(n,85),fun()},h.wd=function(t,n){return l(n,85),dun()},h.ud=function(){return"Row"},I(dn,"ArrayTable/RowMap",843),D(1157,1,Ph,IZe),h.Ad=function(t){return(this.a.yd()&-262&t)!=0},h.yd=function(){return this.a.yd()&-262},h.zd=function(){return this.a.zd()},h.Nb=function(t){this.a.Nb(new NZe(t,this.b))},h.Bd=function(t){return this.a.Bd(new OZe(t,this.b))},I(dn,"CollectSpliterators/1",1157),D(1158,1,fr,OZe),h.Cd=function(t){this.a.Cd(this.b.Kb(t))},I(dn,"CollectSpliterators/1/lambda$0$Type",1158),D(1159,1,fr,NZe),h.Cd=function(t){this.a.Cd(this.b.Kb(t))},I(dn,"CollectSpliterators/1/lambda$1$Type",1159),D(1154,1,Ph,sit),h.Ad=function(t){return((16464|this.b)&t)!=0},h.yd=function(){return 16464|this.b},h.zd=function(){return this.a.zd()},h.Nb=function(t){this.a.Qe(new BZe(t,this.c))},h.Bd=function(t){return this.a.Re(new PZe(t,this.c))},h.b=0,I(dn,"CollectSpliterators/1WithCharacteristics",1154),D(1155,1,kP,PZe),h.Dd=function(t){this.a.Cd(this.b.td(t))},I(dn,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1155),D(1156,1,kP,BZe),h.Dd=function(t){this.a.Cd(this.b.td(t))},I(dn,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1156),D(1150,1,Ph),h.Ad=function(t){return(this.a&t)!=0},h.yd=function(){return this.a},h.zd=function(){return this.e&&(this.b=pye(this.b,this.e.zd())),pye(this.b,0)},h.Nb=function(t){this.e&&(this.e.Nb(t),this.e=null),this.c.Nb(new FZe(this,t)),this.b=0},h.Bd=function(t){for(;;){if(this.e&&this.e.Bd(t))return I_(this.b,EP)&&(this.b=Df(this.b,1)),!0;if(this.e=null,!this.c.Bd(new yie(this)))return!1}},h.a=0,h.b=0,I(dn,"CollectSpliterators/FlatMapSpliterator",1150),D(1152,1,fr,yie),h.Cd=function(t){Hfn(this.a,t)},I(dn,"CollectSpliterators/FlatMapSpliterator/lambda$0$Type",1152),D(1153,1,fr,FZe),h.Cd=function(t){gpn(this.a,this.b,t)},I(dn,"CollectSpliterators/FlatMapSpliterator/lambda$1$Type",1153),D(1151,1150,Ph,Cct),I(dn,"CollectSpliterators/FlatMapSpliteratorOfObject",1151),D(253,1,Ple),h.Fd=function(t){return this.Ed(l(t,253))},h.Ed=function(t){var n;return t==(Gie(),y0e)?1:t==(Uie(),w0e)?-1:(n=(Zq(),vN(this.a,t.a)),n!=0?n:De(this,526)==De(t,526)?0:De(this,526)?1:-1)},h.Id=function(){return this.a},h.Fb=function(t){return rxe(this,t)},I(dn,"Cut",253),D(1823,253,Ple,xJe),h.Ed=function(t){return t==this?0:1},h.Gd=function(t){throw ue(new Swe)},h.Hd=function(t){t.a+="+∞)"},h.Id=function(){throw ue(new nc(Iwt))},h.Hb=function(){return Vg(),q8e(this)},h.Jd=function(t){return!1},h.Ib=function(){return"+∞"};var w0e;I(dn,"Cut/AboveAll",1823),D(526,253,{253:1,526:1,3:1,34:1},Xnt),h.Gd=function(t){wu((t.a+="(",t),this.a)},h.Hd=function(t){hb(wu(t,this.a),93)},h.Hb=function(){return~es(this.a)},h.Jd=function(t){return Zq(),vN(this.a,t)<0},h.Ib=function(){return"/"+this.a+"\\"},I(dn,"Cut/AboveValue",526),D(1822,253,Ple,yJe),h.Ed=function(t){return t==this?0:-1},h.Gd=function(t){t.a+="(-∞"},h.Hd=function(t){throw ue(new Swe)},h.Id=function(){throw ue(new nc(Iwt))},h.Hb=function(){return Vg(),q8e(this)},h.Jd=function(t){return!0},h.Ib=function(){return"-∞"};var y0e;I(dn,"Cut/BelowAll",1822),D(1824,253,Ple,Qnt),h.Gd=function(t){wu((t.a+="[",t),this.a)},h.Hd=function(t){hb(wu(t,this.a),41)},h.Hb=function(){return es(this.a)},h.Jd=function(t){return Zq(),vN(this.a,t)<=0},h.Ib=function(){return"\\"+this.a+"/"},I(dn,"Cut/BelowValue",1824),D(547,1,hg),h.Jc=function(t){to(this,t)},h.Ib=function(){return L4n(l(_H(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},I(dn,"FluentIterable",547),D(442,547,hg,P_),h.Kc=function(){return new hr(dr(this.a.Kc(),new j))},I(dn,"FluentIterable/2",442),D(1059,547,hg,snt),h.Kc=function(){return rg(this)},I(dn,"FluentIterable/3",1059),D(724,399,tT,Aye),h.Xb=function(t){return this.a[t].Kc()},I(dn,"FluentIterable/3/1",724),D(2070,1,{}),h.Ib=function(){return xc(this.Kd().b)},I(dn,"ForwardingObject",2070),D(2071,2070,Owt),h.Kd=function(){return this.Ld()},h.Jc=function(t){to(this,t)},h.Lc=function(){return this.Oc()},h.Nc=function(){return new kn(this,0)},h.Oc=function(){return new bn(null,this.Nc())},h.Fc=function(t){return this.Ld(),oZe()},h.Gc=function(t){return this.Ld(),cZe()},h.$b=function(){this.Ld(),uZe()},h.Hc=function(t){return this.Ld().Hc(t)},h.Ic=function(t){return this.Ld().Ic(t)},h.dc=function(){return this.Ld().b.dc()},h.Kc=function(){return this.Ld().Kc()},h.Mc=function(t){return this.Ld(),lZe()},h.gc=function(){return this.Ld().b.gc()},h.Pc=function(){return this.Ld().Pc()},h.Qc=function(t){return this.Ld().Qc(t)},I(dn,"ForwardingCollection",2071),D(2078,31,tEe),h.Kc=function(){return this.Od()},h.Fc=function(t){throw ue(new Qr)},h.Gc=function(t){throw ue(new Qr)},h.Md=function(){var t;return t=this.c,t||(this.c=this.Nd())},h.$b=function(){throw ue(new Qr)},h.Hc=function(t){return t!=null&&Ny(this,t,!1)},h.Nd=function(){switch(this.gc()){case 0:return ww(),ww(),x0e;case 1:return ww(),new Sae(Xr(this.Od().Pb()));default:return new o5e(this,this.Pc())}},h.Mc=function(t){throw ue(new Qr)},I(dn,"ImmutableCollection",2078),D(727,2078,tEe,Twe),h.Kc=function(){return cx(this.a.Kc())},h.Hc=function(t){return t!=null&&this.a.Hc(t)},h.Ic=function(t){return this.a.Ic(t)},h.dc=function(){return this.a.dc()},h.Od=function(){return cx(this.a.Kc())},h.gc=function(){return this.a.gc()},h.Pc=function(){return this.a.Pc()},h.Qc=function(t){return this.a.Qc(t)},h.Ib=function(){return xc(this.a)},I(dn,"ForwardingImmutableCollection",727),D(307,2078,nT),h.Kc=function(){return this.Od()},h.ed=function(){return this.Pd(0)},h.fd=function(t){return this.Pd(t)},h.jd=function(t){$m(this,t)},h.Nc=function(){return new kn(this,16)},h.kd=function(t,n){return this.Qd(t,n)},h.bd=function(t,n){throw ue(new Qr)},h.cd=function(t,n){throw ue(new Qr)},h.Md=function(){return this},h.Fb=function(t){return VEn(this,t)},h.Hb=function(){return R3n(this)},h.dd=function(t){return t==null?-1:o7n(this,t)},h.Od=function(){return this.Pd(0)},h.Pd=function(t){return iae(this,t)},h.gd=function(t){throw ue(new Qr)},h.hd=function(t,n){throw ue(new Qr)},h.Qd=function(t,n){var r;return RV((r=new KZe(this),new Zp(r,t,n)))};var x0e;I(dn,"ImmutableList",307),D(2105,307,nT),h.Kc=function(){return cx(this.Rd().Kc())},h.kd=function(t,n){return RV(this.Rd().kd(t,n))},h.Hc=function(t){return t!=null&&this.Rd().Hc(t)},h.Ic=function(t){return this.Rd().Ic(t)},h.Fb=function(t){return Pi(this.Rd(),t)},h.Xb=function(t){return ab(this,t)},h.Hb=function(){return es(this.Rd())},h.dd=function(t){return this.Rd().dd(t)},h.dc=function(){return this.Rd().dc()},h.Od=function(){return cx(this.Rd().Kc())},h.gc=function(){return this.Rd().gc()},h.Qd=function(t,n){return RV(this.Rd().kd(t,n))},h.Pc=function(){return this.Rd().Qc(We(wa,Rn,1,this.Rd().gc(),5,1))},h.Qc=function(t){return this.Rd().Qc(t)},h.Ib=function(){return xc(this.Rd())},I(dn,"ForwardingImmutableList",2105),D(729,1,rT),h.vc=function(){return Mm(this)},h.wc=function(t){mA(this,t)},h.ec=function(){return Oae(this)},h.yc=function(t,n,r){return qce(this,t,n,r)},h.Cc=function(){return this.Vd()},h.$b=function(){throw ue(new Qr)},h._b=function(t){return this.xc(t)!=null},h.uc=function(t){return this.Vd().Hc(t)},h.Td=function(){return new LQe(this)},h.Ud=function(){return new MQe(this)},h.Fb=function(t){return Myn(this,t)},h.Hb=function(){return Mm(this).Hb()},h.dc=function(){return this.gc()==0},h.zc=function(t,n){return hun()},h.Bc=function(t){throw ue(new Qr)},h.Ib=function(){return m9n(this)},h.Vd=function(){return this.e?this.e:this.e=this.Ud()},h.c=null,h.d=null,h.e=null;var i6t;I(dn,"ImmutableMap",729),D(730,729,rT),h._b=function(t){return sZe(this,t)},h.uc=function(t){return ZZe(this.b,t)},h.Sd=function(){return t1t(new vie(this))},h.Td=function(){return t1t(mat(this.b))},h.Ud=function(){return wd(),new Twe(bat(this.b))},h.Fb=function(t){return eet(this.b,t)},h.xc=function(t){return H_(this,t)},h.Hb=function(){return es(this.b.c)},h.dc=function(){return this.b.c.dc()},h.gc=function(){return this.b.c.gc()},h.Ib=function(){return xc(this.b.c)},I(dn,"ForwardingImmutableMap",730),D(2072,2071,Ble),h.Kd=function(){return this.Wd()},h.Ld=function(){return this.Wd()},h.Nc=function(){return new kn(this,1)},h.Fb=function(t){return t===this||this.Wd().Fb(t)},h.Hb=function(){return this.Wd().Hb()},I(dn,"ForwardingSet",2072),D(1085,2072,Ble,vie),h.Kd=function(){return Kk(this.a.b)},h.Ld=function(){return Kk(this.a.b)},h.Hc=function(t){if(De(t,44)&&l(t,44).ld()==null)return!1;try{return JZe(Kk(this.a.b),t)}catch(n){if(n=bs(n),De(n,212))return!1;throw ue(n)}},h.Wd=function(){return Kk(this.a.b)},h.Qc=function(t){var n;return n=tot(Kk(this.a.b),t),Kk(this.a.b).b.gc()=0?"+":"")+(r/60|0),n=Iq(b.Math.abs(r)%60),(Vgt(),E6t)[this.q.getDay()]+" "+T6t[this.q.getMonth()]+" "+Iq(this.q.getDate())+" "+Iq(this.q.getHours())+":"+Iq(this.q.getMinutes())+":"+Iq(this.q.getSeconds())+" GMT"+t+n+" "+this.q.getFullYear()};var cK=I(Lr,"Date",206);D(2015,206,qwt,dgt),h.a=!1,h.b=0,h.c=0,h.d=0,h.e=0,h.f=0,h.g=!1,h.i=0,h.j=0,h.k=0,h.n=0,h.o=0,h.p=0,I("com.google.gwt.i18n.shared.impl","DateRecord",2015),D(2064,1,{}),h.pe=function(){return null},h.qe=function(){return null},h.re=function(){return null},h.se=function(){return null},h.te=function(){return null},I(Ax,"JSONValue",2064),D(221,2064,{221:1},$p,Sz),h.Fb=function(t){return De(t,221)?W5e(this.a,l(t,221).a):!1},h.oe=function(){return Bcn},h.Hb=function(){return F5e(this.a)},h.pe=function(){return this},h.Ib=function(){var t,n,r;for(r=new Th("["),n=0,t=this.a.length;n0&&(r.a+=","),wu(r,_y(this,n));return r.a+="]",r.a},I(Ax,"JSONArray",221),D(493,2064,{493:1},jc),h.oe=function(){return Fcn},h.qe=function(){return this},h.Ib=function(){return Hn(),""+this.a},h.a=!1;var h6t,f6t;I(Ax,"JSONBoolean",493),D(997,63,lp,LJe),I(Ax,"JSONException",997),D(1036,2064,{},W),h.oe=function(){return Rcn},h.Ib=function(){return ul};var d6t;I(Ax,"JSONNull",1036),D(263,2064,{263:1},vk),h.Fb=function(t){return De(t,263)?this.a==l(t,263).a:!1},h.oe=function(){return Ncn},h.Hb=function(){return j8(this.a)},h.re=function(){return this},h.Ib=function(){return this.a+""},h.a=0,I(Ax,"JSONNumber",263),D(190,2064,{190:1},M8,wk),h.Fb=function(t){return De(t,190)?W5e(this.a,l(t,190).a):!1},h.oe=function(){return Pcn},h.Hb=function(){return F5e(this.a)},h.se=function(){return this},h.Ib=function(){var t,n,r,a,o,f,g;for(g=new Th("{"),t=!0,f=ace(this,We(zt,dt,2,0,6,1)),r=f,a=0,o=r.length;a=0?":"+this.c:"")+")"},h.c=0;var a_e=I(Vc,"StackTraceElement",319);r6t={3:1,484:1,34:1,2:1};var zt=I(Vc,nEe,2);D(111,427,{484:1},Up,h_,Af),I(Vc,"StringBuffer",111),D(104,427,{484:1},tb,S5,Th),I(Vc,"StringBuilder",104),D(702,77,she,e3e),I(Vc,"StringIndexOutOfBoundsException",702),D(2145,1,{});var m6t;D(48,63,{3:1,103:1,63:1,82:1,48:1},Qr,Hp),I(Vc,"UnsupportedOperationException",48),D(247,242,{3:1,34:1,242:1,247:1},NN,h3e),h.Fd=function(t){return Fmt(this,l(t,247))},h.ue=function(){return jy(hvt(this))},h.Fb=function(t){var n;return this===t?!0:De(t,247)?(n=l(t,247),this.e==n.e&&Fmt(this,n)==0):!1},h.Hb=function(){var t;return this.b!=0?this.b:this.a<54?(t=Zc(this.f),this.b=Yr(va(t,-1)),this.b=33*this.b+Yr(va(bw(t,32),-1)),this.b=17*this.b+ua(this.e),this.b):(this.b=17*X0t(this.c)+ua(this.e),this.b)},h.Ib=function(){return hvt(this)},h.a=0,h.b=0,h.d=0,h.e=0,h.f=0;var v6t,lv,o_e,c_e,u_e,l_e,h_e,f_e,L0e=I("java.math","BigDecimal",247);D(92,242,{3:1,34:1,242:1,92:1},Qg,qot,Im,Q1t,ob),h.Fd=function(t){return K1t(this,l(t,92))},h.ue=function(){return jy(Dle(this,0))},h.Fb=function(t){return C8e(this,t)},h.Hb=function(){return X0t(this)},h.Ib=function(){return Dle(this,0)},h.b=-2,h.c=0,h.d=0,h.e=0;var w6t,uK,y6t,M0e,lK,BL,A6=I("java.math","BigInteger",92),x6t,k6t,$x,FL;D(498,2065,Ww),h.$b=function(){Nl(this)},h._b=function(t){return Hu(this,t)},h.uc=function(t){return D0t(this,t,this.i)||D0t(this,t,this.f)},h.vc=function(){return new Sr(this)},h.xc=function(t){return cr(this,t)},h.zc=function(t,n){return ki(this,t,n)},h.Bc=function(t){return ax(this,t)},h.gc=function(){return d_(this)},h.g=0,I(Lr,"AbstractHashMap",498),D(267,q1,Tl,Sr),h.$b=function(){this.a.$b()},h.Hc=function(t){return vct(this,t)},h.Kc=function(){return new qm(this.a)},h.Mc=function(t){var n;return vct(this,t)?(n=l(t,44).ld(),this.a.Bc(n),!0):!1},h.gc=function(){return this.a.gc()},I(Lr,"AbstractHashMap/EntrySet",267),D(268,1,Oa,qm),h.Nb=function(t){Za(this,t)},h.Pb=function(){return Nw(this)},h.Ob=function(){return this.b},h.Qb=function(){Klt(this)},h.b=!1,h.d=0,I(Lr,"AbstractHashMap/EntrySetIterator",268),D(426,1,Oa,kr),h.Nb=function(t){Za(this,t)},h.Ob=function(){return lse(this)},h.Pb=function(){return I5e(this)},h.Qb=function(){ph(this)},h.b=0,h.c=-1,I(Lr,"AbstractList/IteratorImpl",426),D(98,426,lg,Ua),h.Qb=function(){ph(this)},h.Rb=function(t){by(this,t)},h.Sb=function(){return this.b>0},h.Tb=function(){return this.b},h.Ub=function(){return mr(this.b>0),this.a.Xb(this.c=--this.b)},h.Vb=function(){return this.b-1},h.Wb=function(t){gy(this.c!=-1),this.a.hd(this.c,t)},I(Lr,"AbstractList/ListIteratorImpl",98),D(244,56,iT,Zp),h.bd=function(t,n){Ey(t,this.b),this.c.bd(this.a+t,n),++this.b},h.Xb=function(t){return Sn(t,this.b),this.c.Xb(this.a+t)},h.gd=function(t){var n;return Sn(t,this.b),n=this.c.gd(this.a+t),--this.b,n},h.hd=function(t,n){return Sn(t,this.b),this.c.hd(this.a+t,n)},h.gc=function(){return this.b},h.a=0,h.b=0,I(Lr,"AbstractList/SubList",244),D(266,q1,Tl,br),h.$b=function(){this.a.$b()},h.Hc=function(t){return this.a._b(t)},h.Kc=function(){var t;return t=this.a.vc().Kc(),new Mi(t)},h.Mc=function(t){return this.a._b(t)?(this.a.Bc(t),!0):!1},h.gc=function(){return this.a.gc()},I(Lr,"AbstractMap/1",266),D(541,1,Oa,Mi),h.Nb=function(t){Za(this,t)},h.Ob=function(){return this.a.Ob()},h.Pb=function(){var t;return t=l(this.a.Pb(),44),t.ld()},h.Qb=function(){this.a.Qb()},I(Lr,"AbstractMap/1/1",541),D(231,31,Wy,gi),h.$b=function(){this.a.$b()},h.Hc=function(t){return this.a.uc(t)},h.Kc=function(){var t;return t=this.a.vc().Kc(),new fs(t)},h.gc=function(){return this.a.gc()},I(Lr,"AbstractMap/2",231),D(301,1,Oa,fs),h.Nb=function(t){Za(this,t)},h.Ob=function(){return this.a.Ob()},h.Pb=function(){var t;return t=l(this.a.Pb(),44),t.md()},h.Qb=function(){this.a.Qb()},I(Lr,"AbstractMap/2/1",301),D(494,1,{494:1,44:1}),h.Fb=function(t){var n;return De(t,44)?(n=l(t,44),Jc(this.d,n.ld())&&Jc(this.e,n.md())):!1},h.ld=function(){return this.d},h.md=function(){return this.e},h.Hb=function(){return R5(this.d)^R5(this.e)},h.nd=function(t){return Zye(this,t)},h.Ib=function(){return this.d+"="+this.e},I(Lr,"AbstractMap/AbstractEntry",494),D(397,494,{494:1,397:1,44:1},cq),I(Lr,"AbstractMap/SimpleEntry",397),D(2082,1,che),h.Fb=function(t){var n;return De(t,44)?(n=l(t,44),Jc(this.ld(),n.ld())&&Jc(this.md(),n.md())):!1},h.Hb=function(){return R5(this.ld())^R5(this.md())},h.Ib=function(){return this.ld()+"="+this.md()},I(Lr,Mwt,2082),D(2090,2065,Zke),h.Xc=function(t){return rse(this.Ee(t))},h.tc=function(t){return Tut(this,t)},h._b=function(t){return e4e(this,t)},h.vc=function(){return new Rs(this)},h.Tc=function(){return Rst(this.Ge())},h.Yc=function(t){return rse(this.He(t))},h.xc=function(t){var n;return n=t,hc(this.Fe(n))},h.$c=function(t){return rse(this.Ie(t))},h.ec=function(){return new Fs(this)},h.Vc=function(){return Rst(this.Je())},h._c=function(t){return rse(this.Ke(t))},I(Lr,"AbstractNavigableMap",2090),D(629,q1,Tl,Rs),h.Hc=function(t){return De(t,44)&&Tut(this.b,l(t,44))},h.Kc=function(){return this.b.De()},h.Mc=function(t){var n;return De(t,44)?(n=l(t,44),this.b.Le(n)):!1},h.gc=function(){return this.b.gc()},I(Lr,"AbstractNavigableMap/EntrySet",629),D(1146,q1,eEe,Fs),h.Nc=function(){return new aq(this)},h.$b=function(){this.a.$b()},h.Hc=function(t){return e4e(this.a,t)},h.Kc=function(){var t;return t=this.a.vc().b.De(),new xs(t)},h.Mc=function(t){return e4e(this.a,t)?(this.a.Bc(t),!0):!1},h.gc=function(){return this.a.gc()},I(Lr,"AbstractNavigableMap/NavigableKeySet",1146),D(1147,1,Oa,xs),h.Nb=function(t){Za(this,t)},h.Ob=function(){return lse(this.a.a)},h.Pb=function(){var t;return t=ort(this.a),t.ld()},h.Qb=function(){dit(this.a)},I(Lr,"AbstractNavigableMap/NavigableKeySet/1",1147),D(2103,31,Wy),h.Fc=function(t){return K8($E(this,t),aT),!0},h.Gc=function(t){return nr(t),BO(t!=this,"Can't add a queue to itself"),Ka(this,t)},h.$b=function(){for(;Koe(this)!=null;);},I(Lr,"AbstractQueue",2103),D(310,31,{4:1,20:1,31:1,16:1},z5,dct),h.Fc=function(t){return i6e(this,t),!0},h.$b=function(){l6e(this)},h.Hc=function(t){return Zft(new nA(this),t)},h.dc=function(){return l_(this)},h.Kc=function(){return new nA(this)},h.Mc=function(t){return w2n(new nA(this),t)},h.gc=function(){return this.c-this.b&this.a.length-1},h.Nc=function(){return new kn(this,272)},h.Qc=function(t){var n;return n=this.c-this.b&this.a.length-1,t.lengthn&&Ts(t,n,null),t},h.b=0,h.c=0,I(Lr,"ArrayDeque",310),D(459,1,Oa,nA),h.Nb=function(t){Za(this,t)},h.Ob=function(){return this.a!=this.b},h.Pb=function(){return FV(this)},h.Qb=function(){Yht(this)},h.a=0,h.b=0,h.c=-1,I(Lr,"ArrayDeque/IteratorImpl",459),D(13,56,Uwt,bt,Bu,Ol),h.bd=function(t,n){pw(this,t,n)},h.Fc=function(t){return vt(this,t)},h.cd=function(t,n){return Q7e(this,t,n)},h.Gc=function(t){return ra(this,t)},h.$b=function(){ay(this.c,0)},h.Hc=function(t){return gc(this,t,0)!=-1},h.Jc=function(t){Vu(this,t)},h.Xb=function(t){return jt(this,t)},h.dd=function(t){return gc(this,t,0)},h.dc=function(){return this.c.length==0},h.Kc=function(){return new G(this)},h.gd=function(t){return t2(this,t)},h.Mc=function(t){return al(this,t)},h.ce=function(t,n){Bot(this,t,n)},h.hd=function(t,n){return rf(this,t,n)},h.gc=function(){return this.c.length},h.jd=function(t){Vs(this,t)},h.Pc=function(){return eH(this.c)},h.Qc=function(t){return j1(this,t)};var cOn=I(Lr,"ArrayList",13);D(7,1,Oa,G),h.Nb=function(t){Za(this,t)},h.Ob=function(){return Lc(this)},h.Pb=function(){return re(this)},h.Qb=function(){Q_(this)},h.a=0,h.b=-1,I(Lr,"ArrayList/1",7),D(2112,b.Function,{},Pe),h.Me=function(t,n){return Yi(t,n)},D(151,56,Gwt,Il),h.Hc=function(t){return Xht(this,t)!=-1},h.Jc=function(t){var n,r,a,o;for(nr(t),r=this.a,a=0,o=r.length;a0)throw ue(new Yn(lEe+t+" greater than "+this.e));return this.f.Te()?sot(this.c,this.b,this.a,t,n):Fot(this.c,t,n)},h.zc=function(t,n){if(!xue(this.c,this.f,t,this.b,this.a,this.e,this.d))throw ue(new Yn(t+" outside the range "+this.b+" to "+this.e));return b0t(this.c,t,n)},h.Bc=function(t){var n;return n=t,xue(this.c,this.f,n,this.b,this.a,this.e,this.d)?aot(this.c,n):null},h.Le=function(t){return yH(this,t.ld())&&L6e(this.c,t)},h.gc=function(){var t,n,r;if(this.f.Te()?this.a?n=OE(this.c,this.b,!0):n=OE(this.c,this.b,!1):n=j6e(this.c),!(n&&yH(this,n.d)&&n))return 0;for(t=0,r=new oce(this.c,this.f,this.b,this.a,this.e,this.d);lse(r.a);r.b=l(I5e(r.a),44))++t;return t},h.ad=function(t,n){if(this.f.Te()&&this.c.a.Ne(t,this.b)<0)throw ue(new Yn(lEe+t+Ywt+this.b));return this.f.Ue()?sot(this.c,t,n,this.e,this.d):Rot(this.c,t,n)},h.a=!1,h.d=!1,I(Lr,"TreeMap/SubMap",631),D(304,22,fhe,oq),h.Te=function(){return!1},h.Ue=function(){return!1};var O0e,N0e,P0e,B0e,fK=Fr(Lr,"TreeMap/SubMapType",304,Hr,Gbn,n0n);D(1143,304,fhe,hnt),h.Ue=function(){return!0},Fr(Lr,"TreeMap/SubMapType/1",1143,fK,null,null),D(1144,304,fhe,ynt),h.Te=function(){return!0},h.Ue=function(){return!0},Fr(Lr,"TreeMap/SubMapType/2",1144,fK,null,null),D(1145,304,fhe,lnt),h.Te=function(){return!0},Fr(Lr,"TreeMap/SubMapType/3",1145,fK,null,null);var M6t;D(157,q1,{3:1,20:1,31:1,16:1,277:1,21:1,87:1,157:1},Lwe,Kp,ba),h.Nc=function(){return new aq(this)},h.Fc=function(t){return jO(this,t)},h.$b=function(){this.a.$b()},h.Hc=function(t){return this.a._b(t)},h.Kc=function(){return this.a.ec().Kc()},h.Mc=function(t){return tae(this,t)},h.gc=function(){return this.a.gc()};var gOn=I(Lr,"TreeSet",157);D(1082,1,{},xo),h.Ve=function(t,n){return wfn(this.a,t,n)},I(dhe,"BinaryOperator/lambda$0$Type",1082),D(1083,1,{},lh),h.Ve=function(t,n){return yfn(this.a,t,n)},I(dhe,"BinaryOperator/lambda$1$Type",1083),D(952,1,{},Pt),h.Kb=function(t){return t},I(dhe,"Function/lambda$0$Type",952),D(395,1,ti,Wl),h.Mb=function(t){return!this.a.Mb(t)},I(dhe,"Predicate/lambda$2$Type",395),D(581,1,{581:1});var D6t=I(aL,"Handler",581);D(2107,1,yP),h.xe=function(){return"DUMMY"},h.Ib=function(){return this.xe()};var w_e;I(aL,"Level",2107),D(1706,2107,yP,Qe),h.xe=function(){return"INFO"},I(aL,"Level/LevelInfo",1706),D(1843,1,{},FQe);var F0e;I(aL,"LogManager",1843),D(1896,1,yP,fit),h.b=null,I(aL,"LogRecord",1896),D(525,1,{525:1},Soe),h.e=!1;var I6t=!1,O6t=!1,G1=!1,N6t=!1,P6t=!1;I(aL,"Logger",525),D(835,581,{581:1},Dt),I(aL,"SimpleConsoleLogHandler",835),D(108,22,{3:1,34:1,22:1,108:1},dse);var y_e,Ec,i4,oc=Fr(sa,"Collector/Characteristics",108,Hr,O2n,r0n),B6t;D(758,1,{},h5e),I(sa,"CollectorImpl",758),D(1074,1,{},kt),h.Ve=function(t,n){return d4n(l(t,213),l(n,213))},I(sa,"Collectors/10methodref$merge$Type",1074),D(1075,1,{},On),h.Kb=function(t){return gct(l(t,213))},I(sa,"Collectors/11methodref$toString$Type",1075),D(1076,1,{},Z2),h.Kb=function(t){return Hn(),!!sye(t)},I(sa,"Collectors/12methodref$test$Type",1076),D(144,1,{},ht),h.Yd=function(t,n){l(t,16).Fc(n)},I(sa,"Collectors/20methodref$add$Type",144),D(146,1,{},zr),h.Xe=function(){return new bt},I(sa,"Collectors/21methodref$ctor$Type",146),D(359,1,{},yt),h.Xe=function(){return new Ks},I(sa,"Collectors/23methodref$ctor$Type",359),D(360,1,{},ji),h.Yd=function(t,n){na(l(t,49),n)},I(sa,"Collectors/24methodref$add$Type",360),D(1069,1,{},xi),h.Ve=function(t,n){return ret(l(t,15),l(n,16))},I(sa,"Collectors/4methodref$addAll$Type",1069),D(1073,1,{},Ma),h.Yd=function(t,n){Jg(l(t,213),l(n,484))},I(sa,"Collectors/9methodref$add$Type",1073),D(1072,1,{},Lit),h.Xe=function(){return new Hm(this.a,this.b,this.c)},I(sa,"Collectors/lambda$15$Type",1072),D(1077,1,{},zs),h.Xe=function(){var t;return t=new e2,h2(t,(Hn(),!1),new bt),h2(t,!0,new bt),t},I(sa,"Collectors/lambda$22$Type",1077),D(1078,1,{},eb),h.Xe=function(){return he(le(wa,1),Rn,1,5,[this.a])},I(sa,"Collectors/lambda$25$Type",1078),D(1079,1,{},G0),h.Yd=function(t,n){jdn(this.a,jm(t))},I(sa,"Collectors/lambda$26$Type",1079),D(1080,1,{},zp),h.Ve=function(t,n){return dgn(this.a,jm(t),jm(n))},I(sa,"Collectors/lambda$27$Type",1080),D(1081,1,{},ao),h.Kb=function(t){return jm(t)[0]},I(sa,"Collectors/lambda$28$Type",1081),D(728,1,{},Tr),h.Ve=function(t,n){return U4e(t,n)},I(sa,"Collectors/lambda$4$Type",728),D(145,1,{},Fn),h.Ve=function(t,n){return Wun(l(t,16),l(n,16))},I(sa,"Collectors/lambda$42$Type",145),D(361,1,{},qn),h.Ve=function(t,n){return Yun(l(t,49),l(n,49))},I(sa,"Collectors/lambda$50$Type",361),D(362,1,{},Un),h.Kb=function(t){return l(t,49)},I(sa,"Collectors/lambda$51$Type",362),D(1068,1,{},fd),h.Yd=function(t,n){wyn(this.a,l(t,85),n)},I(sa,"Collectors/lambda$7$Type",1068),D(1070,1,{},At),h.Ve=function(t,n){return Y3n(l(t,85),l(n,85),new xi)},I(sa,"Collectors/lambda$8$Type",1070),D(1071,1,{},Wv),h.Kb=function(t){return G4n(this.a,l(t,85))},I(sa,"Collectors/lambda$9$Type",1071),D(550,1,{}),h.$e=function(){tA(this)},h.d=!1,I(sa,"TerminatableStream",550),D(827,550,hEe,Vye),h.$e=function(){tA(this)},I(sa,"DoubleStreamImpl",827),D(1847,736,Ph,Mit),h.Re=function(t){return Y6n(this,l(t,189))},h.a=null,I(sa,"DoubleStreamImpl/2",1847),D(1848,1,LP,sy),h.Pe=function(t){qln(this.a,t)},I(sa,"DoubleStreamImpl/2/lambda$0$Type",1848),D(1845,1,LP,E8),h.Pe=function(t){zln(this.a,t)},I(sa,"DoubleStreamImpl/lambda$0$Type",1845),D(1846,1,LP,x5),h.Pe=function(t){M1t(this.a,t)},I(sa,"DoubleStreamImpl/lambda$2$Type",1846),D(1397,735,Ph,wut),h.Re=function(t){return Pbn(this,l(t,202))},h.a=0,h.b=0,h.c=0,I(sa,"IntStream/5",1397),D(806,550,hEe,Uye),h.$e=function(){tA(this)},h._e=function(){return fb(this),this.a},I(sa,"IntStreamImpl",806),D(807,550,hEe,b3e),h.$e=function(){tA(this)},h._e=function(){return fb(this),Sye(),L6t},I(sa,"IntStreamImpl/Empty",807),D(1687,1,kP,T8),h.Dd=function(t){$ft(this.a,t)},I(sa,"IntStreamImpl/lambda$4$Type",1687);var pOn=ks(sa,"Stream");D(26,550,{533:1,687:1,848:1},bn),h.$e=function(){tA(this)};var zx;I(sa,"StreamImpl",26),D(1102,500,Ph,iit),h.Bd=function(t){for(;Rvn(this);){if(this.a.Bd(t))return!0;tA(this.b),this.b=null,this.a=null}return!1},I(sa,"StreamImpl/1",1102),D(1103,1,fr,ZS),h.Cd=function(t){hdn(this.a,l(t,848))},I(sa,"StreamImpl/1/lambda$0$Type",1103),D(1104,1,ti,k5),h.Mb=function(t){return na(this.a,t)},I(sa,"StreamImpl/1methodref$add$Type",1104),D(1105,500,Ph,Rat),h.Bd=function(t){var n;return this.a||(n=new bt,this.b.a.Nb(new Qd(n)),Cn(),Vs(n,this.c),this.a=new kn(n,16)),xht(this.a,t)},h.a=null,I(sa,"StreamImpl/5",1105),D(1106,1,fr,Qd),h.Cd=function(t){vt(this.a,t)},I(sa,"StreamImpl/5/2methodref$add$Type",1106),D(737,500,Ph,$6e),h.Bd=function(t){for(this.b=!1;!this.b&&this.c.Bd(new xet(this,t)););return this.b},h.b=!1,I(sa,"StreamImpl/FilterSpliterator",737),D(1096,1,fr,xet),h.Cd=function(t){ogn(this.a,this.b,t)},I(sa,"StreamImpl/FilterSpliterator/lambda$0$Type",1096),D(1091,736,Ph,Mut),h.Re=function(t){return zfn(this,l(t,189))},I(sa,"StreamImpl/MapToDoubleSpliterator",1091),D(1095,1,fr,ket),h.Cd=function(t){hln(this.a,this.b,t)},I(sa,"StreamImpl/MapToDoubleSpliterator/lambda$0$Type",1095),D(1090,735,Ph,Dut),h.Re=function(t){return qfn(this,l(t,202))},I(sa,"StreamImpl/MapToIntSpliterator",1090),D(1094,1,fr,Eet),h.Cd=function(t){fln(this.a,this.b,t)},I(sa,"StreamImpl/MapToIntSpliterator/lambda$0$Type",1094),D(734,500,Ph,C6e),h.Bd=function(t){return tit(this,t)},I(sa,"StreamImpl/MapToObjSpliterator",734),D(1093,1,fr,Tet),h.Cd=function(t){dln(this.a,this.b,t)},I(sa,"StreamImpl/MapToObjSpliterator/lambda$0$Type",1093),D(1092,500,Ph,aft),h.Bd=function(t){for(;hse(this.b,0);){if(!this.a.Bd(new wt))return!1;this.b=Df(this.b,1)}return this.a.Bd(t)},h.b=0,I(sa,"StreamImpl/SkipSpliterator",1092),D(1097,1,fr,wt),h.Cd=function(t){},I(sa,"StreamImpl/SkipSpliterator/lambda$0$Type",1097),D(626,1,fr,on),h.Cd=function(t){Eie(this,t)},I(sa,"StreamImpl/ValueConsumer",626),D(1098,1,fr,fn),h.Cd=function(t){Am()},I(sa,"StreamImpl/lambda$0$Type",1098),D(1099,1,fr,An),h.Cd=function(t){Am()},I(sa,"StreamImpl/lambda$1$Type",1099),D(1100,1,{},_1),h.Ve=function(t,n){return y0n(this.a,t,n)},I(sa,"StreamImpl/lambda$4$Type",1100),D(1101,1,fr,Cet),h.Cd=function(t){Sfn(this.b,this.a,t)},I(sa,"StreamImpl/lambda$5$Type",1101),D(1107,1,fr,Jd),h.Cd=function(t){F3n(this.a,l(t,380))},I(sa,"TerminatableStream/lambda$0$Type",1107),D(2142,1,{}),D(2014,1,{},oo),I("javaemul.internal","ConsoleLogger",2014);var bOn=0;D(2134,1,{}),D(1830,1,fr,jo),h.Cd=function(t){l(t,317)},I(oT,"BowyerWatsonTriangulation/lambda$0$Type",1830),D(1831,1,fr,Em),h.Cd=function(t){Ka(this.a,l(t,317).e)},I(oT,"BowyerWatsonTriangulation/lambda$1$Type",1831),D(1832,1,fr,$o),h.Cd=function(t){l(t,177)},I(oT,"BowyerWatsonTriangulation/lambda$2$Type",1832),D(1827,1,ii,Lz),h.Ne=function(t,n){return ymn(this.a,l(t,177),l(n,177))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(oT,"NaiveMinST/lambda$0$Type",1827),D(449,1,{},Yv),I(oT,"NodeMicroLayout",449),D(177,1,{177:1},B8),h.Fb=function(t){var n;return De(t,177)?(n=l(t,177),Jc(this.a,n.a)&&Jc(this.b,n.b)||Jc(this.a,n.b)&&Jc(this.b,n.a)):!1},h.Hb=function(){return R5(this.a)+R5(this.b)};var mOn=I(oT,"TEdge",177);D(317,1,{317:1},Cke),h.Fb=function(t){var n;return De(t,317)?(n=l(t,317),rV(this,n.a)&&rV(this,n.b)&&rV(this,n.c)):!1},h.Hb=function(){return R5(this.a)+R5(this.b)+R5(this.c)},I(oT,"TTriangle",317),D(225,1,{225:1},Nq),I(oT,"Tree",225),D(1218,1,{},Eot),I(Jwt,"Scanline",1218);var F6t=ks(Jwt,Zwt);D(1758,1,{},vht),I(gg,"CGraph",1758),D(316,1,{316:1},Sot),h.b=0,h.c=0,h.d=0,h.g=0,h.i=0,h.k=ia,I(gg,"CGroup",316),D(830,1,{},Iwe),I(gg,"CGroup/CGroupBuilder",830),D(60,1,{60:1},Rrt),h.Ib=function(){var t;return this.j?ei(this.j.Kb(this)):(Gg(dK),dK.o+"@"+(t=fw(this)>>>0,t.toString(16)))},h.f=0,h.i=ia;var dK=I(gg,"CNode",60);D(829,1,{},Owe),I(gg,"CNode/CNodeBuilder",829);var R6t;D(1590,1,{},Pa),h.ff=function(t,n){return 0},h.gf=function(t,n){return 0},I(gg,t3t,1590),D(1853,1,{},wo),h.cf=function(t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te;for(C=gs,a=new G(t.a.b);a.aa.d.c||a.d.c==f.d.c&&a.d.b0?t+this.n.d+this.n.a:0},h.kf=function(){var t,n,r,a,o;if(o=0,this.e)this.b?o=this.b.a:this.a[1][1]&&(o=this.a[1][1].kf());else if(this.g)o=E8e(this,Eue(this,null,!0));else for(n=(t1(),he(le(s4,1),it,237,0,[Gc,$u,Kc])),r=0,a=n.length;r0?o+this.n.b+this.n.c:0},h.lf=function(){var t,n,r,a,o;if(this.g)for(t=Eue(this,null,!1),r=(t1(),he(le(s4,1),it,237,0,[Gc,$u,Kc])),a=0,o=r.length;a0&&(a[0]+=this.d,r-=a[0]),a[2]>0&&(a[2]+=this.d,r-=a[2]),this.c.a=b.Math.max(0,r),this.c.d=n.d+t.d+(this.c.a-r)/2,a[1]=b.Math.max(a[1],r),x6e(this,$u,n.d+t.d+a[0]-(a[1]-r)/2,a)},h.b=null,h.d=0,h.e=!1,h.f=!1,h.g=!1;var q0e=0,gK=0;I(ev,"GridContainerCell",1538),D(471,22,{3:1,34:1,22:1,471:1},pse);var Bb,Fd,v0,W6t=Fr(ev,"HorizontalLabelAlignment",471,Hr,P2n,c0n),Y6t;D(314,217,{217:1,314:1},uot,yht,not),h.jf=function(){return Hit(this)},h.kf=function(){return j4e(this)},h.a=0,h.c=!1;var vOn=I(ev,"LabelCell",314);D(252,336,{217:1,336:1,252:1},DA),h.jf=function(){return tP(this)},h.kf=function(){return nP(this)},h.lf=function(){hle(this)},h.mf=function(){fle(this)},h.b=0,h.c=0,h.d=!1,I(ev,"StripContainerCell",252),D(1691,1,ti,Xc),h.Mb=function(t){return cun(l(t,217))},I(ev,"StripContainerCell/lambda$0$Type",1691),D(1692,1,{},Bc),h.Ye=function(t){return l(t,217).kf()},I(ev,"StripContainerCell/lambda$1$Type",1692),D(1693,1,ti,ja),h.Mb=function(t){return uun(l(t,217))},I(ev,"StripContainerCell/lambda$2$Type",1693),D(1694,1,{},Ou),h.Ye=function(t){return l(t,217).jf()},I(ev,"StripContainerCell/lambda$3$Type",1694),D(472,22,{3:1,34:1,22:1,472:1},bse);var w0,Fb,a1,X6t=Fr(ev,"VerticalLabelAlignment",472,Hr,N2n,u0n),Q6t;D(800,1,{},zke),h.c=0,h.d=0,h.k=0,h.s=0,h.t=0,h.v=!1,h.w=0,h.D=!1,I(tG,"NodeContext",800),D(1536,1,ii,Sa),h.Ne=function(t,n){return tnt(l(t,64),l(n,64))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(tG,"NodeContext/0methodref$comparePortSides$Type",1536),D(1537,1,ii,Po),h.Ne=function(t,n){return Rxn(l(t,117),l(n,117))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(tG,"NodeContext/1methodref$comparePortContexts$Type",1537),D(164,22,{3:1,34:1,22:1,164:1},of);var J6t,Z6t,e7t,t7t,n7t,r7t,i7t,s7t,a7t,o7t,c7t,u7t,l7t,h7t,f7t,d7t,g7t,p7t,b7t,m7t,v7t,H0e,w7t=Fr(tG,"NodeLabelLocation",164,Hr,eue,l0n),y7t;D(117,1,{117:1},c2t),h.a=!1,I(tG,"PortContext",117),D(1541,1,fr,Fc),h.Cd=function(t){vZe(l(t,314))},I(DP,g3t,1541),D(1542,1,ti,xa),h.Mb=function(t){return!!l(t,117).c},I(DP,p3t,1542),D(1543,1,fr,Ba),h.Cd=function(t){vZe(l(t,117).c)},I(DP,"LabelPlacer/lambda$2$Type",1543);var q_e;D(1540,1,fr,ga),h.Cd=function(t){py(),zcn(l(t,117))},I(DP,"NodeLabelAndSizeUtilities/lambda$0$Type",1540),D(801,1,fr,v4e),h.Cd=function(t){tln(this.b,this.c,this.a,l(t,187))},h.a=!1,h.c=!1,I(DP,"NodeLabelCellCreator/lambda$0$Type",801),D(1539,1,fr,Die),h.Cd=function(t){Vcn(this.a,l(t,187))},I(DP,"PortContextCreator/lambda$0$Type",1539);var pK;D(1902,1,{},kh),I(uT,"GreedyRectangleStripOverlapRemover",1902),D(1903,1,ii,lu),h.Ne=function(t,n){return Ohn(l(t,226),l(n,226))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(uT,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1903),D(1849,1,{},zQe),h.a=5,h.e=0,I(uT,"RectangleStripOverlapRemover",1849),D(1850,1,ii,o5),h.Ne=function(t,n){return Nhn(l(t,226),l(n,226))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(uT,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1850),D(1852,1,ii,Wh),h.Ne=function(t,n){return Egn(l(t,226),l(n,226))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(uT,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1852),D(417,22,{3:1,34:1,22:1,417:1},uq);var rB,V0e,U0e,iB,x7t=Fr(uT,"RectangleStripOverlapRemover/OverlapRemovalDirection",417,Hr,Ybn,h0n),k7t;D(226,1,{226:1},Dae),I(uT,"RectangleStripOverlapRemover/RectangleNode",226),D(1851,1,fr,Iie),h.Cd=function(t){l7n(this.a,l(t,226))},I(uT,"RectangleStripOverlapRemover/lambda$1$Type",1851),D(1323,1,ii,od),h.Ne=function(t,n){return MLn(l(t,176),l(n,176))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Md,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1323),D(1326,1,{},Gd),h.Kb=function(t){return l(t,334).a},I(Md,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1326),D(1327,1,ti,cd),h.Mb=function(t){return l(t,332).a},I(Md,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1327),D(1328,1,ti,Kd),h.Mb=function(t){return l(t,332).a},I(Md,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1328),D(1321,1,ii,$g),h.Ne=function(t,n){return a_n(l(t,176),l(n,176))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Md,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1321),D(1324,1,{},as),h.Kb=function(t){return l(t,334).a},I(Md,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1324),D(781,1,ii,wn),h.Ne=function(t,n){return q3n(l(t,176),l(n,176))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Md,"PolyominoCompactor/MinNumOfExtensionsComparator",781),D(1319,1,ii,Zr),h.Ne=function(t,n){return Xwn(l(t,330),l(n,330))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Md,"PolyominoCompactor/MinPerimeterComparator",1319),D(1320,1,ii,Zi),h.Ne=function(t,n){return N6n(l(t,330),l(n,330))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Md,"PolyominoCompactor/MinPerimeterComparatorWithShape",1320),D(1322,1,ii,nu),h.Ne=function(t,n){return __n(l(t,176),l(n,176))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Md,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1322),D(1325,1,{},vu),h.Kb=function(t){return l(t,334).a},I(Md,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1325),D(782,1,{},L3e),h.Ve=function(t,n){return zbn(this,l(t,42),l(n,176))},I(Md,"SuccessorCombination",782),D(649,1,{},Dl),h.Ve=function(t,n){var r;return rEn((r=l(t,42),l(n,176),r))},I(Md,"SuccessorJitter",649),D(648,1,{},Yh),h.Ve=function(t,n){var r;return HCn((r=l(t,42),l(n,176),r))},I(Md,"SuccessorLineByLine",648),D(573,1,{},w1),h.Ve=function(t,n){var r;return rTn((r=l(t,42),l(n,176),r))},I(Md,"SuccessorManhattan",573),D(1344,1,{},$0),h.Ve=function(t,n){var r;return dCn((r=l(t,42),l(n,176),r))},I(Md,"SuccessorMaxNormWindingInMathPosSense",1344),D(409,1,{},E5),h.Ve=function(t,n){return u5e(this,t,n)},h.c=!1,h.d=!1,h.e=!1,h.f=!1,I(Md,"SuccessorQuadrantsGeneric",409),D(1345,1,{},Wi),h.Kb=function(t){return l(t,334).a},I(Md,"SuccessorQuadrantsGeneric/lambda$0$Type",1345),D(332,22,{3:1,34:1,22:1,332:1},lq),h.a=!1;var sB,aB,oB,cB,E7t=Fr(rG,kEe,332,Hr,Kbn,f0n),T7t;D(1317,1,{}),h.Ib=function(){var t,n,r,a,o,f;for(r=" ",t=pt(0),o=0;o=0?"b"+t+"["+Coe(this.a)+"]":"b["+Coe(this.a)+"]"):"b_"+fw(this)},I(OP,"FBendpoint",250),D(290,137,{3:1,290:1,96:1,137:1},jrt),h.Ib=function(){return Coe(this)},I(OP,"FEdge",290),D(235,137,{3:1,235:1,96:1,137:1},KH);var vOn=I(OP,"FGraph",235);D(454,309,{3:1,454:1,309:1,96:1,137:1},zct),h.Ib=function(){return this.b==null||this.b.length==0?"l["+Coe(this.a)+"]":"l_"+this.b},I(OP,"FLabel",454),D(153,309,{3:1,153:1,309:1,96:1,137:1},wnt),h.Ib=function(){return X5e(this)},h.a=0,I(OP,"FNode",153),D(2100,1,{}),h.vf=function(t){yke(this,t)},h.wf=function(){qdt(this)},h.d=0,I(DEe,"AbstractForceModel",2100),D(641,2100,{641:1},jft),h.uf=function(t,n){var r,a,o,f,g;return pvt(this.f,t,n),o=ma(Ja(n.d),t.d),g=b.Math.sqrt(o.a*o.a+o.b*o.b),a=b.Math.max(0,g-eA(t.e)/2-eA(n.e)/2),r=Qpt(this.e,t,n),r>0?f=-vgn(a,this.c)*r:f=Khn(a,this.b)*l(Q(t,(b0(),qx)),17).a,md(o,f/g),o},h.vf=function(t){yke(this,t),this.a=l(Q(t,(b0(),xK)),17).a,this.c=ze(Ge(Q(t,kK))),this.b=ze(Ge(Q(t,J0e)))},h.xf=function(t){return t0&&(f-=nun(a,this.a)*r),md(o,f*this.b/g),o},h.vf=function(t){var n,r,a,o,f,g,w;for(yke(this,t),this.b=ze(Ge(Q(t,(b0(),Z0e)))),this.c=this.b/l(Q(t,xK),17).a,a=t.e.c.length,f=0,o=0,w=new G(t.e);w.a0},h.a=0,h.b=0,h.c=0,I(DEe,"FruchtermanReingoldModel",642),D(860,1,Pf,KS),h.hf=function(t){sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,aG),""),"Force Model"),"Determines the model for force calculation."),Q_e),(g2(),ps)),J_e),un((r1(),Pn))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,IEe),""),"Iterations"),"The number of iterations on the force model."),pt(300)),Tc),ro),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,OEe),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),pt(0)),Tc),ro),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Dhe),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),Dd),fo),ta),un(Pn)))),Qs(t,Dhe,aG,V7t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Ihe),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),fo),ta),un(Pn)))),Qs(t,Ihe,aG,z7t),rwt((new WS,t))};var R7t,j7t,Q_e,$7t,z7t,q7t,H7t,V7t;I(uL,"ForceMetaDataProvider",860),D(432,22,{3:1,34:1,22:1,432:1},D3e);var Q0e,yK,J_e=Fr(uL,"ForceModelStrategy",432,Hr,jpn,d0n),U7t;D(b2,1,Pf,WS),h.hf=function(t){rwt(t)};var G7t,K7t,Z_e,xK,eAe,W7t,Y7t,X7t,Q7t,tAe,J7t,nAe,rAe,Z7t,qx,e8t,J0e,iAe,t8t,n8t,kK,Z0e,r8t,i8t,s8t,sAe,a8t;I(uL,"ForceOptions",b2),D(1001,1,{},ld),h.sf=function(){var t;return t=new Dwe,t},h.tf=function(t){},I(uL,"ForceOptions/ForceFactory",1001);var hB,$L,Hx,EK;D(861,1,Pf,rz),h.hf=function(t){sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,PEe),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(Hn(),!1)),(g2(),ya)),Ns),un((r1(),ha))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,BEe),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),fo),ta),rs(Pn,he(le(xg,1),it,170,0,[zd]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,FEe),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),aAe),ps),dAe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,REe),""),"Stress Epsilon"),"Termination criterion for the iterative process."),Dd),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,jEe),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),pt(Ii)),Tc),ro),un(Pn)))),Dvt((new iz,t))};var o8t,c8t,aAe,u8t,l8t,h8t;I(uL,"StressMetaDataProvider",861),D(1004,1,Pf,iz),h.hf=function(t){Dvt(t)};var TK,oAe,cAe,uAe,lAe,hAe,f8t,d8t,g8t,p8t,fAe,b8t;I(uL,"StressOptions",1004),D(1005,1,{},y1),h.sf=function(){var t;return t=new $rt,t},h.tf=function(t){},I(uL,"StressOptions/StressFactory",1005),D(1110,205,tv,$rt),h.rf=function(t,n){var r,a,o,f,g;for(n.Ug(A3t,1),Rt(Bt(at(t,(VN(),lAe))))?Rt(Bt(at(t,fAe)))||KO((r=new Yv((aw(),new Jv(t))),r)):W2t(new Dwe,t,n.eh(1)),o=u0t(t),a=$mt(this.a,o),g=a.Kc();g.Ob();)f=l(g.Pb(),235),!(f.e.c.length<=1)&&(CLn(this.b,f),XEn(this.b),Vu(f.d,new ud));o=ewt(a),lwt(o),n.Vg()},I(uG,"StressLayoutProvider",1110),D(1111,1,fr,ud),h.Cd=function(t){Ake(l(t,454))},I(uG,"StressLayoutProvider/lambda$0$Type",1111),D(1002,1,{},BQe),h.c=0,h.e=0,h.g=0,I(uG,"StressMajorization",1002),D(391,22,{3:1,34:1,22:1,391:1},mse);var e1e,t1e,n1e,dAe=Fr(uG,"StressMajorization/Dimension",391,Hr,P2n,g0n),m8t;D(1003,1,ii,Dz),h.Ne=function(t,n){return qfn(this.a,l(t,153),l(n,153))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(uG,"StressMajorization/lambda$0$Type",1003),D(1192,1,{},Got),I(Bx,"ElkLayered",1192),D(1193,1,fr,Iz),h.Cd=function(t){Ckn(this.a,l(t,36))},I(Bx,"ElkLayered/lambda$0$Type",1193),D(1194,1,fr,Oie),h.Cd=function(t){Hfn(this.a,l(t,36))},I(Bx,"ElkLayered/lambda$1$Type",1194),D(1281,1,{},Lnt);var v8t,w8t,y8t;I(Bx,"GraphConfigurator",1281),D(770,1,fr,qp),h.Cd=function(t){tpt(this.a,l(t,10))},I(Bx,"GraphConfigurator/lambda$0$Type",770),D(771,1,{},u5),h.Kb=function(t){return mxe(),new bn(null,new kn(l(t,30).a,16))},I(Bx,"GraphConfigurator/lambda$1$Type",771),D(772,1,fr,n_),h.Cd=function(t){tpt(this.a,l(t,10))},I(Bx,"GraphConfigurator/lambda$2$Type",772),D(1109,205,tv,qQe),h.rf=function(t,n){var r;r=sLn(new VQe,t),qe(at(t,(Nt(),p4)))===qe((rp(),A2))?F4n(this.a,r,n):GEn(this.a,r,n),n.$g()||Kvt(new b8,r)},I(Bx,"LayeredLayoutProvider",1109),D(367,22,{3:1,34:1,22:1,367:1},oO);var y0,vg,bu,_u,mc,gAe=Fr(Bx,"LayeredPhases",367,Hr,jmn,p0n),x8t;D(1717,1,{},rft),h.i=0;var k8t;I(jP,"ComponentsToCGraphTransformer",1717);var E8t;D(1718,1,{},mm),h.yf=function(t,n){return b.Math.min(t.a!=null?ze(t.a):t.c.i,n.a!=null?ze(n.a):n.c.i)},h.zf=function(t,n){return b.Math.min(t.a!=null?ze(t.a):t.c.i,n.a!=null?ze(n.a):n.c.i)},I(jP,"ComponentsToCGraphTransformer/1",1718),D(86,1,{86:1}),h.i=0,h.k=!0,h.o=ia;var r1e=I(dL,"CNode",86);D(470,86,{470:1,86:1},Pye,U8e),h.Ib=function(){return""},I(jP,"ComponentsToCGraphTransformer/CRectNode",470),D(1688,1,{},q9);var i1e,s1e;I(jP,"OneDimensionalComponentsCompaction",1688),D(1689,1,{},Vv),h.Kb=function(t){return S2n(l(t,42))},h.Fb=function(t){return this===t},I(jP,"OneDimensionalComponentsCompaction/lambda$0$Type",1689),D(1690,1,{},Y7),h.Kb=function(t){return j4n(l(t,42))},h.Fb=function(t){return this===t},I(jP,"OneDimensionalComponentsCompaction/lambda$1$Type",1690),D(1720,1,{},Zst),I(dL,"CGraph",1720),D(194,1,{194:1},Qce),h.b=0,h.c=0,h.e=0,h.g=!0,h.i=ia,I(dL,"CGroup",194),D(1719,1,{},G2),h.yf=function(t,n){return b.Math.max(t.a!=null?ze(t.a):t.c.i,n.a!=null?ze(n.a):n.c.i)},h.zf=function(t,n){return b.Math.max(t.a!=null?ze(t.a):t.c.i,n.a!=null?ze(n.a):n.c.i)},I(dL,t3t,1719),D(1721,1,{},Zpt),h.d=!1;var T8t,a1e=I(dL,i3t,1721);D(1722,1,{},X7),h.Kb=function(t){return v3e(),Hn(),l(l(t,42).a,86).d.e!=0},h.Fb=function(t){return this===t},I(dL,s3t,1722),D(833,1,{},G4e),h.a=!1,h.b=!1,h.c=!1,h.d=!1,I(dL,a3t,833),D(1898,1,{},pst),I(lG,o3t,1898);var fB=ks(rv,Zwt);D(1899,1,{382:1},Yat),h.bf=function(t){eSn(this,l(t,476))},I(lG,c3t,1899),D(Lb,1,ii,l5),h.Ne=function(t,n){return upn(l(t,86),l(n,86))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(lG,u3t,Lb),D(476,1,{476:1},O3e),h.a=!1,I(lG,l3t,476),D(1901,1,ii,X3),h.Ne=function(t,n){return l8n(l(t,476),l(n,476))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(lG,h3t,1901),D(148,1,{148:1},Ik,L4e),h.Fb=function(t){var n;return t==null||wOn!=bh(t)?!1:(n=l(t,148),Jc(this.c,n.c)&&Jc(this.d,n.d))},h.Hb=function(){return MN(he(le(wa,1),Rn,1,5,[this.c,this.d]))},h.Ib=function(){return"("+this.c+Co+this.d+(this.a?"cx":"")+this.b+")"},h.a=!0,h.c=0,h.d=0;var wOn=I(rv,"Point",148);D(416,22,{3:1,34:1,22:1,416:1},fq);var s3,a4,M6,o4,C8t=Fr(rv,"Point/Quadrant",416,Hr,Wbn,b0n),S8t;D(1708,1,{},$Qe),h.b=null,h.c=null,h.d=null,h.e=null,h.f=null;var _8t,A8t,L8t,M8t,D8t;I(rv,"RectilinearConvexHull",1708),D(583,1,{382:1},nU),h.bf=function(t){Rvn(this,l(t,148))},h.b=0;var pAe;I(rv,"RectilinearConvexHull/MaximalElementsEventHandler",583),D(1710,1,ii,Fp),h.Ne=function(t,n){return lpn(Ge(t),Ge(n))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rv,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1710),D(1709,1,{382:1},wht),h.bf=function(t){pCn(this,l(t,148))},h.a=0,h.b=null,h.c=null,h.d=null,h.e=null,I(rv,"RectilinearConvexHull/RectangleEventHandler",1709),D(1711,1,ii,nI),h.Ne=function(t,n){return vbn(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rv,"RectilinearConvexHull/lambda$0$Type",1711),D(1712,1,ii,$J),h.Ne=function(t,n){return wbn(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rv,"RectilinearConvexHull/lambda$1$Type",1712),D(1713,1,ii,vm),h.Ne=function(t,n){return mbn(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rv,"RectilinearConvexHull/lambda$2$Type",1713),D(1714,1,ii,hu),h.Ne=function(t,n){return ybn(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rv,"RectilinearConvexHull/lambda$3$Type",1714),D(1715,1,ii,zJ),h.Ne=function(t,n){return Qxn(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rv,"RectilinearConvexHull/lambda$4$Type",1715),D(1716,1,{},Tot),I(rv,"Scanline",1716),D(2104,1,{}),I(V1,"AbstractGraphPlacer",2104),D(335,1,{335:1},hrt),h.Ff=function(t){return this.Gf(t)?(xn(this.b,l(Q(t,(ft(),pp)),21),t),!0):!1},h.Gf=function(t){var n,r,a,o;for(n=l(Q(t,(ft(),pp)),21),o=l($i(Xi,n),21),a=o.Kc();a.Ob();)if(r=l(a.Pb(),21),!l($i(this.b,r),15).dc())return!1;return!0};var Xi;I(V1,"ComponentGroup",335),D(779,2104,{},Nwe),h.Hf=function(t){var n,r;for(r=new G(this.a);r.ar&&(L=0,B+=w+a,w=0),E=f.c,KE(f,L+E.a,B+E.b),Y0(E),o=b.Math.max(o,L+C.a),w=b.Math.max(w,C.b),L+=C.a+a;n.f.a=o,n.f.b=B+w},h.Jf=function(t,n){var r,a,o,f,g;if(qe(Q(n,(Nt(),g4)))===qe((Km(),c4))){for(a=t.Kc();a.Ob();){for(r=l(a.Pb(),36),g=0,f=new G(r.a);f.ar&&!l(Q(f,(ft(),pp)),21).Hc((Ct(),Qn))||E&&l(Q(E,(ft(),pp)),21).Hc((Ct(),ar))||l(Q(f,(ft(),pp)),21).Hc((Ct(),er)))&&(z=B,V+=w+a,w=0),C=f.c,l(Q(f,(ft(),pp)),21).Hc((Ct(),Qn))&&(z=o+a),KE(f,z+C.a,V+C.b),o=b.Math.max(o,z+L.a),l(Q(f,pp),21).Hc(Dr)&&(B=b.Math.max(B,z+L.a+a)),Y0(C),w=b.Math.max(w,L.b),z+=L.a+a,E=f;n.f.a=o,n.f.b=V+w},h.Jf=function(t,n){},I(V1,"ModelOrderRowGraphPlacer",1313),D(1311,1,ii,cj),h.Ne=function(t,n){return F3n(l(t,36),l(n,36))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(V1,"SimpleRowGraphPlacer/1",1311);var O8t;D(1280,1,Ld,q0),h.Lb=function(t){var n;return n=l(Q(l(t,249).b,(Nt(),cc)),75),!!n&&n.b!=0},h.Fb=function(t){return this===t},h.Mb=function(t){var n;return n=l(Q(l(t,249).b,(Nt(),cc)),75),!!n&&n.b!=0},I(hG,"CompoundGraphPostprocessor/1",1280),D(1279,1,ts,UQe),h.Kf=function(t,n){kdt(this,l(t,36),n)},I(hG,"CompoundGraphPreprocessor",1279),D(453,1,{453:1},f1t),h.c=!1,I(hG,"CompoundGraphPreprocessor/ExternalPort",453),D(249,1,{249:1},Kq),h.Ib=function(){return aae(this.c)+":"+Kpt(this.b)},I(hG,"CrossHierarchyEdge",249),D(777,1,ii,GI),h.Ne=function(t,n){return R7n(this,l(t,249),l(n,249))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(hG,"CrossHierarchyEdgeComparator",777),D(305,137,{3:1,305:1,96:1,137:1}),h.p=0,I(Cu,"LGraphElement",305),D(18,305,{3:1,18:1,305:1,96:1,137:1},Tw),h.Ib=function(){return Kpt(this)};var u1e=I(Cu,"LEdge",18);D(36,305,{3:1,20:1,36:1,305:1,96:1,137:1},o7e),h.Jc=function(t){to(this,t)},h.Kc=function(){return new G(this.b)},h.Ib=function(){return this.b.c.length==0?"G-unlayered"+Tb(this.a):this.a.c.length==0?"G-layered"+Tb(this.b):"G[layerless"+Tb(this.a)+", layers"+Tb(this.b)+"]"};var N8t=I(Cu,"LGraph",36),P8t;D(666,1,{}),h.Lf=function(){return this.e.n},h.of=function(t){return Q(this.e,t)},h.Mf=function(){return this.e.o},h.Nf=function(){return this.e.p},h.pf=function(t){return ns(this.e,t)},h.Of=function(t){this.e.n.a=t.a,this.e.n.b=t.b},h.Pf=function(t){this.e.o.a=t.a,this.e.o.b=t.b},h.Qf=function(t){this.e.p=t},I(Cu,"LGraphAdapters/AbstractLShapeAdapter",666),D(474,1,{853:1},Tm),h.Rf=function(){var t,n;if(!this.b)for(this.b=eg(this.a.b.c.length),n=new G(this.a.b);n.a0&&H0t((Xn(n-1,t.length),t.charCodeAt(n-1)),N3t);)--n;if(f> ",t),fU(r)),hi(wu((t.a+="[",t),r.i),"]")),t.a},h.c=!0,h.d=!1;var yAe,xAe,kAe,EAe,TAe,CAe,F8t=I(Cu,"LPort",12);D(408,1,hg,T5),h.Jc=function(t){to(this,t)},h.Kc=function(){var t;return t=new G(this.a.e),new jWe(t)},I(Cu,"LPort/1",408),D(1309,1,Oa,jWe),h.Nb=function(t){Za(this,t)},h.Pb=function(){return l(re(this.a),18).c},h.Ob=function(){return Lc(this.a)},h.Qb=function(){Q_(this.a)},I(Cu,"LPort/1/1",1309),D(369,1,hg,C8),h.Jc=function(t){to(this,t)},h.Kc=function(){var t;return t=new G(this.a.g),new vwe(t)},I(Cu,"LPort/2",369),D(776,1,Oa,vwe),h.Nb=function(t){Za(this,t)},h.Pb=function(){return l(re(this.a),18).d},h.Ob=function(){return Lc(this.a)},h.Qb=function(){Q_(this.a)},I(Cu,"LPort/2/1",776),D(1302,1,hg,Met),h.Jc=function(t){to(this,t)},h.Kc=function(){return new N1(this)},I(Cu,"LPort/CombineIter",1302),D(208,1,Oa,N1),h.Nb=function(t){Za(this,t)},h.Qb=function(){aZe()},h.Ob=function(){return $_(this)},h.Pb=function(){return Lc(this.a)?re(this.a):re(this.b)},I(Cu,"LPort/CombineIter/1",208),D(1303,1,Ld,K2),h.Lb=function(t){return Lst(t)},h.Fb=function(t){return this===t},h.Mb=function(t){return kl(),l(t,12).g.c.length!=0},I(Cu,"LPort/lambda$0$Type",1303),D(1304,1,Ld,J3),h.Lb=function(t){return Mst(t)},h.Fb=function(t){return this===t},h.Mb=function(t){return kl(),l(t,12).e.c.length!=0},I(Cu,"LPort/lambda$1$Type",1304),D(1305,1,Ld,HJ),h.Lb=function(t){return kl(),l(t,12).j==(Ct(),Qn)},h.Fb=function(t){return this===t},h.Mb=function(t){return kl(),l(t,12).j==(Ct(),Qn)},I(Cu,"LPort/lambda$2$Type",1305),D(1306,1,Ld,wm),h.Lb=function(t){return kl(),l(t,12).j==(Ct(),ar)},h.Fb=function(t){return this===t},h.Mb=function(t){return kl(),l(t,12).j==(Ct(),ar)},I(Cu,"LPort/lambda$3$Type",1306),D(1307,1,Ld,VJ),h.Lb=function(t){return kl(),l(t,12).j==(Ct(),Dr)},h.Fb=function(t){return this===t},h.Mb=function(t){return kl(),l(t,12).j==(Ct(),Dr)},I(Cu,"LPort/lambda$4$Type",1307),D(1308,1,Ld,UJ),h.Lb=function(t){return kl(),l(t,12).j==(Ct(),er)},h.Fb=function(t){return this===t},h.Mb=function(t){return kl(),l(t,12).j==(Ct(),er)},I(Cu,"LPort/lambda$5$Type",1308),D(30,305,{3:1,20:1,305:1,30:1,96:1,137:1},yu),h.Jc=function(t){to(this,t)},h.Kc=function(){return new G(this.a)},h.Ib=function(){return"L_"+gc(this.b.b,this,0)+Tb(this.a)},I(Cu,"Layer",30),D(1330,1,{},VQe),I(v2,R3t,1330),D(1334,1,{},Q7),h.Kb=function(t){return bc(l(t,84))},I(v2,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1334),D(1337,1,{},uS),h.Kb=function(t){return bc(l(t,84))},I(v2,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1337),D(1331,1,fr,$We),h.Cd=function(t){l2t(this.a,l(t,123))},I(v2,MEe,1331),D(1332,1,fr,zWe),h.Cd=function(t){l2t(this.a,l(t,123))},I(v2,j3t,1332),D(1333,1,{},lj),h.Kb=function(t){return new bn(null,new kn(A5e(l(t,74)),16))},I(v2,$3t,1333),D(1335,1,ti,qWe),h.Mb=function(t){return zln(this.a,l(t,27))},I(v2,z3t,1335),D(1336,1,{},H9),h.Kb=function(t){return new bn(null,new kn(ipn(l(t,74)),16))},I(v2,"ElkGraphImporter/lambda$5$Type",1336),D(1338,1,ti,HWe),h.Mb=function(t){return qln(this.a,l(t,27))},I(v2,"ElkGraphImporter/lambda$7$Type",1338),D(1339,1,ti,GJ),h.Mb=function(t){return vpn(l(t,74))},I(v2,"ElkGraphImporter/lambda$8$Type",1339),D(1297,1,{},b8);var R8t;I(v2,"ElkGraphLayoutTransferrer",1297),D(1298,1,ti,VWe),h.Mb=function(t){return Mfn(this.a,l(t,18))},I(v2,"ElkGraphLayoutTransferrer/lambda$0$Type",1298),D(1299,1,fr,UWe),h.Cd=function(t){sO(),vt(this.a,l(t,18))},I(v2,"ElkGraphLayoutTransferrer/lambda$1$Type",1299),D(1300,1,ti,GWe),h.Mb=function(t){return pfn(this.a,l(t,18))},I(v2,"ElkGraphLayoutTransferrer/lambda$2$Type",1300),D(1301,1,fr,KWe),h.Cd=function(t){sO(),vt(this.a,l(t,18))},I(v2,"ElkGraphLayoutTransferrer/lambda$3$Type",1301),D(819,1,{},i4e),I(rr,"BiLinkedHashMultiMap",819),D(1550,1,ts,V9),h.Kf=function(t,n){r3n(l(t,36),n)},I(rr,"CommentNodeMarginCalculator",1550),D(1551,1,{},KJ),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"CommentNodeMarginCalculator/lambda$0$Type",1551),D(1552,1,fr,WJ),h.Cd=function(t){rLn(l(t,10))},I(rr,"CommentNodeMarginCalculator/lambda$1$Type",1552),D(1553,1,ts,YJ),h.Kf=function(t,n){oSn(l(t,36),n)},I(rr,"CommentPostprocessor",1553),D(1554,1,ts,XJ),h.Kf=function(t,n){LDn(l(t,36),n)},I(rr,"CommentPreprocessor",1554),D(1555,1,ts,QJ),h.Kf=function(t,n){TCn(l(t,36),n)},I(rr,"ConstraintsPostprocessor",1555),D(1556,1,ts,JJ),h.Kf=function(t,n){D3n(l(t,36),n)},I(rr,"EdgeAndLayerConstraintEdgeReverser",1556),D(1557,1,ts,ZJ),h.Kf=function(t,n){x5n(l(t,36),n)},I(rr,"EndLabelPostprocessor",1557),D(1558,1,{},eZ),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"EndLabelPostprocessor/lambda$0$Type",1558),D(1559,1,ti,tZ),h.Mb=function(t){return Bmn(l(t,10))},I(rr,"EndLabelPostprocessor/lambda$1$Type",1559),D(1560,1,fr,nZ),h.Cd=function(t){h8n(l(t,10))},I(rr,"EndLabelPostprocessor/lambda$2$Type",1560),D(1561,1,ts,rZ),h.Kf=function(t,n){Z9n(l(t,36),n)},I(rr,"EndLabelPreprocessor",1561),D(1562,1,{},rI),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"EndLabelPreprocessor/lambda$0$Type",1562),D(1563,1,fr,mit),h.Cd=function(t){eln(this.a,this.b,this.c,l(t,10))},h.a=0,h.b=0,h.c=!1,I(rr,"EndLabelPreprocessor/lambda$1$Type",1563),D(1564,1,ti,iZ),h.Mb=function(t){return qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),rC))},I(rr,"EndLabelPreprocessor/lambda$2$Type",1564),D(1565,1,fr,WWe),h.Cd=function(t){ci(this.a,l(t,72))},I(rr,"EndLabelPreprocessor/lambda$3$Type",1565),D(1566,1,ti,sZ),h.Mb=function(t){return qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),_4))},I(rr,"EndLabelPreprocessor/lambda$4$Type",1566),D(1567,1,fr,YWe),h.Cd=function(t){ci(this.a,l(t,72))},I(rr,"EndLabelPreprocessor/lambda$5$Type",1567),D(1615,1,ts,Hre),h.Kf=function(t,n){y4n(l(t,36),n)};var j8t;I(rr,"EndLabelSorter",1615),D(1616,1,ii,lS),h.Ne=function(t,n){return Z5n(l(t,466),l(n,466))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"EndLabelSorter/1",1616),D(466,1,{466:1},Hat),I(rr,"EndLabelSorter/LabelGroup",466),D(1617,1,{},hj),h.Kb=function(t){return iO(),new bn(null,new kn(l(t,30).a,16))},I(rr,"EndLabelSorter/lambda$0$Type",1617),D(1618,1,ti,J7),h.Mb=function(t){return iO(),l(t,10).k==(Zn(),Ps)},I(rr,"EndLabelSorter/lambda$1$Type",1618),D(1619,1,fr,aZ),h.Cd=function(t){d9n(l(t,10))},I(rr,"EndLabelSorter/lambda$2$Type",1619),D(1620,1,ti,oZ),h.Mb=function(t){return iO(),qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),_4))},I(rr,"EndLabelSorter/lambda$3$Type",1620),D(1621,1,ti,cZ),h.Mb=function(t){return iO(),qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),rC))},I(rr,"EndLabelSorter/lambda$4$Type",1621),D(1568,1,ts,uZ),h.Kf=function(t,n){vLn(this,l(t,36))},h.b=0,h.c=0,I(rr,"FinalSplineBendpointsCalculator",1568),D(1569,1,{},lZ),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"FinalSplineBendpointsCalculator/lambda$0$Type",1569),D(1570,1,{},hS),h.Kb=function(t){return new bn(null,new vw(new hr(dr(qs(l(t,10)).a.Kc(),new j))))},I(rr,"FinalSplineBendpointsCalculator/lambda$1$Type",1570),D(1571,1,ti,iI),h.Mb=function(t){return!Do(l(t,18))},I(rr,"FinalSplineBendpointsCalculator/lambda$2$Type",1571),D(1572,1,ti,fj),h.Mb=function(t){return ns(l(t,18),(ft(),fv))},I(rr,"FinalSplineBendpointsCalculator/lambda$3$Type",1572),D(1573,1,fr,XWe),h.Cd=function(t){__n(this.a,l(t,131))},I(rr,"FinalSplineBendpointsCalculator/lambda$4$Type",1573),D(1574,1,fr,h5),h.Cd=function(t){JN(l(t,18).a)},I(rr,"FinalSplineBendpointsCalculator/lambda$5$Type",1574),D(803,1,ts,wwe),h.Kf=function(t,n){hMn(this,l(t,36),n)},I(rr,"GraphTransformer",803),D(517,22,{3:1,34:1,22:1,517:1},I3e);var h1e,dB,$8t=Fr(rr,"GraphTransformer/Mode",517,Hr,$pn,x1n),z8t;D(1575,1,ts,f5),h.Kf=function(t,n){OTn(l(t,36),n)},I(rr,"HierarchicalNodeResizingProcessor",1575),D(1576,1,ts,hZ),h.Kf=function(t,n){Jwn(l(t,36),n)},I(rr,"HierarchicalPortConstraintProcessor",1576),D(1577,1,ii,t0),h.Ne=function(t,n){return y6n(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"HierarchicalPortConstraintProcessor/NodeComparator",1577),D(1578,1,ts,Z7),h.Kf=function(t,n){xAn(l(t,36),n)},I(rr,"HierarchicalPortDummySizeProcessor",1578),D(1579,1,ts,fZ),h.Kf=function(t,n){DSn(this,l(t,36),n)},h.a=0,I(rr,"HierarchicalPortOrthogonalEdgeRouter",1579),D(1580,1,ii,U9),h.Ne=function(t,n){return Ohn(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"HierarchicalPortOrthogonalEdgeRouter/1",1580),D(1581,1,ii,Wd),h.Ne=function(t,n){return jvn(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"HierarchicalPortOrthogonalEdgeRouter/2",1581),D(1582,1,ts,dZ),h.Kf=function(t,n){Wxn(l(t,36),n)},I(rr,"HierarchicalPortPositionProcessor",1582),D(1583,1,ts,Kv),h.Kf=function(t,n){lIn(this,l(t,36))},h.a=0,h.c=0;var CK,SK;I(rr,"HighDegreeNodeLayeringProcessor",1583),D(580,1,{580:1},gZ),h.b=-1,h.d=-1,I(rr,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",580),D(1584,1,{},pZ),h.Kb=function(t){return OO(),ka(l(t,10))},h.Fb=function(t){return this===t},I(rr,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1584),D(1585,1,{},dj),h.Kb=function(t){return OO(),qs(l(t,10))},h.Fb=function(t){return this===t},I(rr,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1585),D(1591,1,ts,bZ),h.Kf=function(t,n){dAn(this,l(t,36),n)},I(rr,"HyperedgeDummyMerger",1591),D(804,1,{},w4e),h.a=!1,h.b=!1,h.c=!1,I(rr,"HyperedgeDummyMerger/MergeState",804),D(1592,1,{},fS),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"HyperedgeDummyMerger/lambda$0$Type",1592),D(1593,1,{},dS),h.Kb=function(t){return new bn(null,new kn(l(t,10).j,16))},I(rr,"HyperedgeDummyMerger/lambda$1$Type",1593),D(1594,1,fr,gj),h.Cd=function(t){l(t,12).p=-1},I(rr,"HyperedgeDummyMerger/lambda$2$Type",1594),D(1595,1,ts,sI),h.Kf=function(t,n){hAn(l(t,36),n)},I(rr,"HypernodesProcessor",1595),D(1596,1,ts,e8),h.Kf=function(t,n){yAn(l(t,36),n)},I(rr,"InLayerConstraintProcessor",1596),D(1597,1,ts,mZ),h.Kf=function(t,n){d3n(l(t,36),n)},I(rr,"InnermostNodeMarginCalculator",1597),D(1598,1,ts,pj),h.Kf=function(t,n){CDn(this,l(t,36))},h.a=ia,h.b=ia,h.c=gs,h.d=gs;var yOn=I(rr,"InteractiveExternalPortPositioner",1598);D(1599,1,{},bj),h.Kb=function(t){return l(t,18).d.i},h.Fb=function(t){return this===t},I(rr,"InteractiveExternalPortPositioner/lambda$0$Type",1599),D(1600,1,{},QWe),h.Kb=function(t){return Nhn(this.a,Ge(t))},h.Fb=function(t){return this===t},I(rr,"InteractiveExternalPortPositioner/lambda$1$Type",1600),D(1601,1,{},vZ),h.Kb=function(t){return l(t,18).c.i},h.Fb=function(t){return this===t},I(rr,"InteractiveExternalPortPositioner/lambda$2$Type",1601),D(1602,1,{},JWe),h.Kb=function(t){return Phn(this.a,Ge(t))},h.Fb=function(t){return this===t},I(rr,"InteractiveExternalPortPositioner/lambda$3$Type",1602),D(1603,1,{},ZWe),h.Kb=function(t){return Ifn(this.a,Ge(t))},h.Fb=function(t){return this===t},I(rr,"InteractiveExternalPortPositioner/lambda$4$Type",1603),D(1604,1,{},eYe),h.Kb=function(t){return Ofn(this.a,Ge(t))},h.Fb=function(t){return this===t},I(rr,"InteractiveExternalPortPositioner/lambda$5$Type",1604),D(81,22,{3:1,34:1,22:1,81:1,196:1},Ws),h.dg=function(){switch(this.g){case 15:return new Uj;case 22:return new Dee;case 47:return new Nee;case 28:case 35:return new CZ;case 32:return new V9;case 42:return new YJ;case 1:return new XJ;case 41:return new QJ;case 56:return new wwe((dE(),dB));case 0:return new wwe((dE(),h1e));case 2:return new JJ;case 54:return new ZJ;case 33:return new rZ;case 51:return new uZ;case 55:return new f5;case 13:return new hZ;case 38:return new Z7;case 44:return new fZ;case 40:return new dZ;case 9:return new Kv;case 49:return new nrt;case 37:return new bZ;case 43:return new sI;case 27:return new e8;case 30:return new mZ;case 3:return new pj;case 18:return new yZ;case 29:return new xZ;case 5:return new fk;case 50:return new wZ;case 34:return new sz;case 36:return new d5;case 52:return new Hre;case 11:return new G9;case 7:return new Vre;case 39:return new aI;case 45:return new Z3;case 16:return new K9;case 10:return new Wet;case 48:return new mj;case 21:return new oI;case 23:return new Wie((Iw(),oM));case 8:return new cI;case 12:return new _Z;case 4:return new uI;case 19:return new cz;case 17:return new IZ;case 53:return new OZ;case 6:return new Tj;case 25:return new KQe;case 46:return new FZ;case 31:return new Vrt;case 14:return new UZ;case 26:return new Fee;case 20:return new Aj;case 24:return new Wie((Iw(),MW));default:throw ue(new Yn(Fhe+(this.f!=null?this.f:""+this.g)))}};var SAe,_Ae,AAe,LAe,MAe,DAe,IAe,OAe,NAe,PAe,D6,_K,AK,BAe,FAe,RAe,jAe,$Ae,zAe,qAe,zL,HAe,VAe,UAe,GAe,KAe,f1e,LK,MK,WAe,DK,IK,OK,LT,u4,l4,YAe,NK,PK,XAe,BK,FK,QAe,JAe,ZAe,eLe,RK,d1e,gB,jK,$K,zK,qK,tLe,nLe,rLe,iLe,xOn=Fr(rr,Rhe,81,Hr,rbt,y0n),q8t;D(1605,1,ts,yZ),h.Kf=function(t,n){EDn(l(t,36),n)},I(rr,"InvertedPortProcessor",1605),D(1606,1,ts,xZ),h.Kf=function(t,n){w_n(l(t,36),n)},I(rr,"LabelAndNodeSizeProcessor",1606),D(1607,1,ti,kZ),h.Mb=function(t){return l(t,10).k==(Zn(),Ps)},I(rr,"LabelAndNodeSizeProcessor/lambda$0$Type",1607),D(1608,1,ti,EZ),h.Mb=function(t){return l(t,10).k==(Zn(),Us)},I(rr,"LabelAndNodeSizeProcessor/lambda$1$Type",1608),D(1609,1,fr,vit),h.Cd=function(t){tln(this.b,this.a,this.c,l(t,10))},h.a=!1,h.c=!1,I(rr,"LabelAndNodeSizeProcessor/lambda$2$Type",1609),D(1610,1,ts,fk),h.Kf=function(t,n){YMn(l(t,36),n)};var H8t;I(rr,"LabelDummyInserter",1610),D(1611,1,Ld,Yd),h.Lb=function(t){return qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),nC))},h.Fb=function(t){return this===t},h.Mb=function(t){return qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),nC))},I(rr,"LabelDummyInserter/1",1611),D(1612,1,ts,wZ),h.Kf=function(t,n){FMn(l(t,36),n)},I(rr,"LabelDummyRemover",1612),D(1613,1,ti,Uv),h.Mb=function(t){return Rt(Bt(Q(l(t,72),(Nt(),tde))))},I(rr,"LabelDummyRemover/lambda$0$Type",1613),D(1378,1,ts,sz),h.Kf=function(t,n){LMn(this,l(t,36),n)},h.a=null;var g1e;I(rr,"LabelDummySwitcher",1378),D(293,1,{293:1},nmt),h.c=0,h.d=null,h.f=0,I(rr,"LabelDummySwitcher/LabelDummyInfo",293),D(1379,1,{},TZ),h.Kb=function(t){return lx(),new bn(null,new kn(l(t,30).a,16))},I(rr,"LabelDummySwitcher/lambda$0$Type",1379),D(1380,1,ti,gS),h.Mb=function(t){return lx(),l(t,10).k==(Zn(),cu)},I(rr,"LabelDummySwitcher/lambda$1$Type",1380),D(1381,1,{},tYe),h.Kb=function(t){return bfn(this.a,l(t,10))},I(rr,"LabelDummySwitcher/lambda$2$Type",1381),D(1382,1,fr,nYe),h.Cd=function(t){Bgn(this.a,l(t,293))},I(rr,"LabelDummySwitcher/lambda$3$Type",1382),D(1383,1,ii,pS),h.Ne=function(t,n){return agn(l(t,293),l(n,293))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"LabelDummySwitcher/lambda$4$Type",1383),D(802,1,ts,CZ),h.Kf=function(t,n){vvn(l(t,36),n)},I(rr,"LabelManagementProcessor",802),D(1614,1,ts,d5),h.Kf=function(t,n){YCn(l(t,36),n)},I(rr,"LabelSideSelector",1614),D(1622,1,ts,G9),h.Kf=function(t,n){BAn(l(t,36),n)},I(rr,"LayerConstraintPostprocessor",1622),D(1623,1,ts,Vre),h.Kf=function(t,n){DEn(l(t,36),n)};var sLe;I(rr,"LayerConstraintPreprocessor",1623),D(371,22,{3:1,34:1,22:1,371:1},gq);var pB,HK,VK,p1e,V8t=Fr(rr,"LayerConstraintPreprocessor/HiddenNodeConnections",371,Hr,Xbn,x0n),U8t;D(1624,1,ts,aI),h.Kf=function(t,n){ZLn(l(t,36),n)},I(rr,"LayerSizeAndGraphHeightCalculator",1624),D(1625,1,ts,Z3),h.Kf=function(t,n){NTn(l(t,36),n)},I(rr,"LongEdgeJoiner",1625),D(1626,1,ts,K9),h.Kf=function(t,n){LLn(l(t,36),n)},I(rr,"LongEdgeSplitter",1626),D(1627,1,ts,Wet),h.Kf=function(t,n){lDn(this,l(t,36),n)},h.e=0,h.f=0,h.j=0,h.k=0,h.n=0,h.o=0;var G8t,K8t;I(rr,"NodePromotion",1627),D(1628,1,ii,SZ),h.Ne=function(t,n){return Eyn(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"NodePromotion/1",1628),D(1629,1,ii,bS),h.Ne=function(t,n){return Tyn(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"NodePromotion/2",1629),D(1630,1,{},hd),h.Kb=function(t){return l(t,42),Yq(),Hn(),!0},h.Fb=function(t){return this===t},I(rr,"NodePromotion/lambda$0$Type",1630),D(1631,1,{},aYe),h.Kb=function(t){return w2n(this.a,l(t,42))},h.Fb=function(t){return this===t},h.a=0,I(rr,"NodePromotion/lambda$1$Type",1631),D(1632,1,{},oYe),h.Kb=function(t){return v2n(this.a,l(t,42))},h.Fb=function(t){return this===t},h.a=0,I(rr,"NodePromotion/lambda$2$Type",1632),D(1633,1,ts,mj),h.Kf=function(t,n){iIn(l(t,36),n)},I(rr,"NorthSouthPortPostprocessor",1633),D(1634,1,ts,oI),h.Kf=function(t,n){RDn(l(t,36),n)},I(rr,"NorthSouthPortPreprocessor",1634),D(1635,1,ii,W9),h.Ne=function(t,n){return R3n(l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"NorthSouthPortPreprocessor/lambda$0$Type",1635),D(1636,1,ts,cI),h.Kf=function(t,n){eAn(l(t,36),n)},I(rr,"PartitionMidprocessor",1636),D(1637,1,ti,vj),h.Mb=function(t){return ns(l(t,10),(Nt(),HT))},I(rr,"PartitionMidprocessor/lambda$0$Type",1637),D(1638,1,fr,cYe),h.Cd=function(t){wpn(this.a,l(t,10))},I(rr,"PartitionMidprocessor/lambda$1$Type",1638),D(1639,1,ts,_Z),h.Kf=function(t,n){tCn(l(t,36),n)},I(rr,"PartitionPostprocessor",1639),D(1640,1,ts,uI),h.Kf=function(t,n){pEn(l(t,36),n)},I(rr,"PartitionPreprocessor",1640),D(1641,1,ti,AZ),h.Mb=function(t){return ns(l(t,10),(Nt(),HT))},I(rr,"PartitionPreprocessor/lambda$0$Type",1641),D(1642,1,{},LZ),h.Kb=function(t){return new bn(null,new vw(new hr(dr(qs(l(t,10)).a.Kc(),new j))))},I(rr,"PartitionPreprocessor/lambda$1$Type",1642),D(1643,1,ti,wj),h.Mb=function(t){return s6n(l(t,18))},I(rr,"PartitionPreprocessor/lambda$2$Type",1643),D(1644,1,fr,t8),h.Cd=function(t){tyn(l(t,18))},I(rr,"PartitionPreprocessor/lambda$3$Type",1644),D(1645,1,ts,cz),h.Kf=function(t,n){N_n(l(t,36),n)};var aLe,W8t,Y8t,X8t,oLe,cLe;I(rr,"PortListSorter",1645),D(1648,1,ii,yj),h.Ne=function(t,n){return Kct(l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"PortListSorter/lambda$0$Type",1648),D(1650,1,ii,n8),h.Ne=function(t,n){return Smt(l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"PortListSorter/lambda$1$Type",1650),D(1646,1,{},MZ),h.Kb=function(t){return TE(),l(t,12).e},I(rr,"PortListSorter/lambda$2$Type",1646),D(1647,1,{},lI),h.Kb=function(t){return TE(),l(t,12).g},I(rr,"PortListSorter/lambda$3$Type",1647),D(1649,1,ii,DZ),h.Ne=function(t,n){return L7n(l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"PortListSorter/lambda$4$Type",1649),D(1651,1,ts,IZ),h.Kf=function(t,n){VEn(l(t,36),n)},I(rr,"PortSideProcessor",1651),D(1652,1,ts,OZ),h.Kf=function(t,n){USn(l(t,36),n)},I(rr,"ReversedEdgeRestorer",1652),D(1657,1,ts,KQe),h.Kf=function(t,n){h7n(this,l(t,36),n)},I(rr,"SelfLoopPortRestorer",1657),D(1658,1,{},NZ),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"SelfLoopPortRestorer/lambda$0$Type",1658),D(1659,1,ti,xj),h.Mb=function(t){return l(t,10).k==(Zn(),Ps)},I(rr,"SelfLoopPortRestorer/lambda$1$Type",1659),D(1660,1,ti,PZ),h.Mb=function(t){return ns(l(t,10),(ft(),h3))},I(rr,"SelfLoopPortRestorer/lambda$2$Type",1660),D(1661,1,{},BZ),h.Kb=function(t){return l(Q(l(t,10),(ft(),h3)),337)},I(rr,"SelfLoopPortRestorer/lambda$3$Type",1661),D(1662,1,fr,iYe),h.Cd=function(t){S9n(this.a,l(t,337))},I(rr,"SelfLoopPortRestorer/lambda$4$Type",1662),D(805,1,fr,kj),h.Cd=function(t){j9n(l(t,105))},I(rr,"SelfLoopPortRestorer/lambda$5$Type",805),D(1663,1,ts,FZ),h.Kf=function(t,n){m6n(l(t,36),n)},I(rr,"SelfLoopPostProcessor",1663),D(1664,1,{},RZ),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"SelfLoopPostProcessor/lambda$0$Type",1664),D(1665,1,ti,jZ),h.Mb=function(t){return l(t,10).k==(Zn(),Ps)},I(rr,"SelfLoopPostProcessor/lambda$1$Type",1665),D(1666,1,ti,$Z),h.Mb=function(t){return ns(l(t,10),(ft(),h3))},I(rr,"SelfLoopPostProcessor/lambda$2$Type",1666),D(1667,1,fr,Ej),h.Cd=function(t){A8n(l(t,10))},I(rr,"SelfLoopPostProcessor/lambda$3$Type",1667),D(1668,1,{},zZ),h.Kb=function(t){return new bn(null,new kn(l(t,105).f,1))},I(rr,"SelfLoopPostProcessor/lambda$4$Type",1668),D(1669,1,fr,rYe),h.Cd=function(t){emn(this.a,l(t,340))},I(rr,"SelfLoopPostProcessor/lambda$5$Type",1669),D(1670,1,ti,qZ),h.Mb=function(t){return!!l(t,105).i},I(rr,"SelfLoopPostProcessor/lambda$6$Type",1670),D(1671,1,fr,sYe),h.Cd=function(t){eun(this.a,l(t,105))},I(rr,"SelfLoopPostProcessor/lambda$7$Type",1671),D(1653,1,ts,Tj),h.Kf=function(t,n){wTn(l(t,36),n)},I(rr,"SelfLoopPreProcessor",1653),D(1654,1,{},Cj),h.Kb=function(t){return new bn(null,new kn(l(t,105).f,1))},I(rr,"SelfLoopPreProcessor/lambda$0$Type",1654),D(1655,1,{},Sj),h.Kb=function(t){return l(t,340).a},I(rr,"SelfLoopPreProcessor/lambda$1$Type",1655),D(1656,1,fr,HZ),h.Cd=function(t){rhn(l(t,18))},I(rr,"SelfLoopPreProcessor/lambda$2$Type",1656),D(1672,1,ts,Vrt),h.Kf=function(t,n){o9n(this,l(t,36),n)},I(rr,"SelfLoopRouter",1672),D(1673,1,{},VZ),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"SelfLoopRouter/lambda$0$Type",1673),D(1674,1,ti,Y9),h.Mb=function(t){return l(t,10).k==(Zn(),Ps)},I(rr,"SelfLoopRouter/lambda$1$Type",1674),D(1675,1,ti,r8),h.Mb=function(t){return ns(l(t,10),(ft(),h3))},I(rr,"SelfLoopRouter/lambda$2$Type",1675),D(1676,1,{},mS),h.Kb=function(t){return l(Q(l(t,10),(ft(),h3)),337)},I(rr,"SelfLoopRouter/lambda$3$Type",1676),D(1677,1,fr,Aet),h.Cd=function(t){dpn(this.a,this.b,l(t,337))},I(rr,"SelfLoopRouter/lambda$4$Type",1677),D(1678,1,ts,UZ),h.Kf=function(t,n){FCn(l(t,36),n)},I(rr,"SemiInteractiveCrossMinProcessor",1678),D(1679,1,ti,hI),h.Mb=function(t){return l(t,10).k==(Zn(),Ps)},I(rr,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1679),D(1680,1,ti,vS),h.Mb=function(t){return ost(l(t,10))._b((Nt(),w4))},I(rr,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1680),D(1681,1,ii,fI),h.Ne=function(t,n){return e3n(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1681),D(1682,1,{},_j),h.Ve=function(t,n){return ypn(l(t,10),l(n,10))},I(rr,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1682),D(1684,1,ts,Aj),h.Kf=function(t,n){oLn(l(t,36),n)},I(rr,"SortByInputModelProcessor",1684),D(1685,1,ti,GZ),h.Mb=function(t){return l(t,12).g.c.length!=0},I(rr,"SortByInputModelProcessor/lambda$0$Type",1685),D(1686,1,fr,uYe),h.Cd=function(t){V9n(this.a,l(t,12))},I(rr,"SortByInputModelProcessor/lambda$1$Type",1686),D(1759,817,{},mft),h.df=function(t){var n,r,a,o;switch(this.c=t,this.a.g){case 2:n=new bt,Is(Fi(new bn(null,new kn(this.c.a.b,16)),new ree),new Fet(this,n)),ZN(this,new WZ),Vu(n,new Lj),n.c.length=0,Is(Fi(new bn(null,new kn(this.c.a.b,16)),new Mj),new hYe(n)),ZN(this,new YZ),Vu(n,new XZ),n.c.length=0,r=vnt(uce(xy(new bn(null,new kn(this.c.a.b,16)),new fYe(this))),new QZ),Is(new bn(null,new kn(this.c.a.a,16)),new Det(r,n)),ZN(this,new ZZ),Vu(n,new Dj),n.c.length=0;break;case 3:a=new bt,ZN(this,new KZ),o=vnt(uce(xy(new bn(null,new kn(this.c.a.b,16)),new lYe(this))),new JZ),Is(Fi(new bn(null,new kn(this.c.a.b,16)),new eee),new Oet(o,a)),ZN(this,new tee),Vu(a,new nee),a.c.length=0;break;default:throw ue(new NQe)}},h.b=0,I(aa,"EdgeAwareScanlineConstraintCalculation",1759),D(1760,1,Ld,KZ),h.Lb=function(t){return De(l(t,60).g,154)},h.Fb=function(t){return this===t},h.Mb=function(t){return De(l(t,60).g,154)},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1760),D(1761,1,{},lYe),h.Ye=function(t){return _kn(this.a,l(t,60))},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1761),D(1769,1,QU,Let),h.de=function(){FA(this.a,this.b,-1)},h.b=0,I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1769),D(1771,1,Ld,WZ),h.Lb=function(t){return De(l(t,60).g,154)},h.Fb=function(t){return this===t},h.Mb=function(t){return De(l(t,60).g,154)},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1771),D(1772,1,fr,Lj),h.Cd=function(t){l(t,380).de()},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1772),D(1773,1,ti,Mj),h.Mb=function(t){return De(l(t,60).g,10)},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1773),D(1775,1,fr,hYe),h.Cd=function(t){K4n(this.a,l(t,60))},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1775),D(1774,1,QU,Net),h.de=function(){FA(this.b,this.a,-1)},h.a=0,I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1774),D(1776,1,Ld,YZ),h.Lb=function(t){return De(l(t,60).g,10)},h.Fb=function(t){return this===t},h.Mb=function(t){return De(l(t,60).g,10)},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1776),D(1777,1,fr,XZ),h.Cd=function(t){l(t,380).de()},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1777),D(1778,1,{},fYe),h.Ye=function(t){return Akn(this.a,l(t,60))},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1778),D(1779,1,{},QZ),h.We=function(){return 0},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1779),D(1762,1,{},JZ),h.We=function(){return 0},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1762),D(1781,1,fr,Det),h.Cd=function(t){Jdn(this.a,this.b,l(t,316))},h.a=0,I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1781),D(1780,1,QU,Iet),h.de=function(){I2t(this.a,this.b,-1)},h.b=0,I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1780),D(1782,1,Ld,ZZ),h.Lb=function(t){return l(t,60),!0},h.Fb=function(t){return this===t},h.Mb=function(t){return l(t,60),!0},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1782),D(1783,1,fr,Dj),h.Cd=function(t){l(t,380).de()},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1783),D(1763,1,ti,eee),h.Mb=function(t){return De(l(t,60).g,10)},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1763),D(1765,1,fr,Oet),h.Cd=function(t){Zdn(this.a,this.b,l(t,60))},h.a=0,I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1765),D(1764,1,QU,Pet),h.de=function(){FA(this.b,this.a,-1)},h.a=0,I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1764),D(1766,1,Ld,tee),h.Lb=function(t){return l(t,60),!0},h.Fb=function(t){return this===t},h.Mb=function(t){return l(t,60),!0},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1766),D(1767,1,fr,nee),h.Cd=function(t){l(t,380).de()},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1767),D(1768,1,ti,ree),h.Mb=function(t){return De(l(t,60).g,154)},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1768),D(1770,1,fr,Fet),h.Cd=function(t){mwn(this.a,this.b,l(t,60))},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1770),D(1586,1,ts,nrt),h.Kf=function(t,n){PLn(this,l(t,36),n)};var Q8t;I(aa,"HorizontalGraphCompactor",1586),D(1587,1,{},dYe),h.ff=function(t,n){var r,a,o;return q6e(t,n)||(r=G5(t),a=G5(n),r&&r.k==(Zn(),Us)||a&&a.k==(Zn(),Us))?0:(o=l(Q(this.a.a,(ft(),$6)),312),jhn(o,r?r.k:(Zn(),Aa),a?a.k:(Zn(),Aa)))},h.gf=function(t,n){var r,a,o;return q6e(t,n)?1:(r=G5(t),a=G5(n),o=l(Q(this.a.a,(ft(),$6)),312),Oye(o,r?r.k:(Zn(),Aa),a?a.k:(Zn(),Aa)))},I(aa,"HorizontalGraphCompactor/1",1587),D(1588,1,{},Ij),h.ef=function(t,n){return p_(),t.a.i==0},I(aa,"HorizontalGraphCompactor/lambda$0$Type",1588),D(1589,1,{},gYe),h.ef=function(t,n){return Epn(this.a,t,n)},I(aa,"HorizontalGraphCompactor/lambda$1$Type",1589),D(1730,1,{},Glt);var J8t,Z8t;I(aa,"LGraphToCGraphTransformer",1730),D(1738,1,ti,wS),h.Mb=function(t){return t!=null},I(aa,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1738),D(1731,1,{},iee),h.Kb=function(t){return u0(),xc(Q(l(l(t,60).g,10),(ft(),zi)))},I(aa,"LGraphToCGraphTransformer/lambda$0$Type",1731),D(1732,1,{},see),h.Kb=function(t){return u0(),r1t(l(l(t,60).g,154))},I(aa,"LGraphToCGraphTransformer/lambda$1$Type",1732),D(1741,1,ti,Oj),h.Mb=function(t){return u0(),De(l(t,60).g,10)},I(aa,"LGraphToCGraphTransformer/lambda$10$Type",1741),D(1742,1,fr,aee),h.Cd=function(t){Apn(l(t,60))},I(aa,"LGraphToCGraphTransformer/lambda$11$Type",1742),D(1743,1,ti,oee),h.Mb=function(t){return u0(),De(l(t,60).g,154)},I(aa,"LGraphToCGraphTransformer/lambda$12$Type",1743),D(1747,1,fr,cee),h.Cd=function(t){s4n(l(t,60))},I(aa,"LGraphToCGraphTransformer/lambda$13$Type",1747),D(1744,1,fr,pYe),h.Cd=function(t){Iln(this.a,l(t,8))},h.a=0,I(aa,"LGraphToCGraphTransformer/lambda$14$Type",1744),D(1745,1,fr,bYe),h.Cd=function(t){Nln(this.a,l(t,116))},h.a=0,I(aa,"LGraphToCGraphTransformer/lambda$15$Type",1745),D(1746,1,fr,mYe),h.Cd=function(t){Oln(this.a,l(t,8))},h.a=0,I(aa,"LGraphToCGraphTransformer/lambda$16$Type",1746),D(1748,1,{},uee),h.Kb=function(t){return u0(),new bn(null,new vw(new hr(dr(qs(l(t,10)).a.Kc(),new j))))},I(aa,"LGraphToCGraphTransformer/lambda$17$Type",1748),D(1749,1,ti,lee),h.Mb=function(t){return u0(),Do(l(t,18))},I(aa,"LGraphToCGraphTransformer/lambda$18$Type",1749),D(1750,1,fr,vYe),h.Cd=function(t){Yvn(this.a,l(t,18))},I(aa,"LGraphToCGraphTransformer/lambda$19$Type",1750),D(1734,1,fr,wYe),h.Cd=function(t){kbn(this.a,l(t,154))},I(aa,"LGraphToCGraphTransformer/lambda$2$Type",1734),D(1751,1,{},hee),h.Kb=function(t){return u0(),new bn(null,new kn(l(t,30).a,16))},I(aa,"LGraphToCGraphTransformer/lambda$20$Type",1751),D(1752,1,{},Nj),h.Kb=function(t){return u0(),new bn(null,new vw(new hr(dr(qs(l(t,10)).a.Kc(),new j))))},I(aa,"LGraphToCGraphTransformer/lambda$21$Type",1752),D(1753,1,{},fee),h.Kb=function(t){return u0(),l(Q(l(t,18),(ft(),fv)),15)},I(aa,"LGraphToCGraphTransformer/lambda$22$Type",1753),D(1754,1,ti,Pj),h.Mb=function(t){return $hn(l(t,15))},I(aa,"LGraphToCGraphTransformer/lambda$23$Type",1754),D(1755,1,fr,yYe),h.Cd=function(t){bkn(this.a,l(t,15))},I(aa,"LGraphToCGraphTransformer/lambda$24$Type",1755),D(1733,1,fr,Ret),h.Cd=function(t){wmn(this.a,this.b,l(t,154))},I(aa,"LGraphToCGraphTransformer/lambda$3$Type",1733),D(1735,1,{},dee),h.Kb=function(t){return u0(),new bn(null,new kn(l(t,30).a,16))},I(aa,"LGraphToCGraphTransformer/lambda$4$Type",1735),D(1736,1,{},gee),h.Kb=function(t){return u0(),new bn(null,new vw(new hr(dr(qs(l(t,10)).a.Kc(),new j))))},I(aa,"LGraphToCGraphTransformer/lambda$5$Type",1736),D(1737,1,{},pee),h.Kb=function(t){return u0(),l(Q(l(t,18),(ft(),fv)),15)},I(aa,"LGraphToCGraphTransformer/lambda$6$Type",1737),D(1739,1,fr,xYe),h.Cd=function(t){Lkn(this.a,l(t,15))},I(aa,"LGraphToCGraphTransformer/lambda$8$Type",1739),D(1740,1,fr,jet),h.Cd=function(t){ihn(this.a,this.b,l(t,154))},I(aa,"LGraphToCGraphTransformer/lambda$9$Type",1740),D(1729,1,{},yS),h.cf=function(t){var n,r,a,o,f;for(this.a=t,this.d=new jie,this.c=We(z_e,Rn,125,this.a.a.a.c.length,0,1),this.b=0,r=new G(this.a.a.a);r.a=0?"b"+t+"["+Coe(this.a)+"]":"b["+Coe(this.a)+"]"):"b_"+fw(this)},I(OP,"FBendpoint",250),D(290,137,{3:1,290:1,96:1,137:1},jrt),h.Ib=function(){return Coe(this)},I(OP,"FEdge",290),D(235,137,{3:1,235:1,96:1,137:1},KH);var yOn=I(OP,"FGraph",235);D(454,309,{3:1,454:1,309:1,96:1,137:1},zct),h.Ib=function(){return this.b==null||this.b.length==0?"l["+Coe(this.a)+"]":"l_"+this.b},I(OP,"FLabel",454),D(153,309,{3:1,153:1,309:1,96:1,137:1},wnt),h.Ib=function(){return X5e(this)},h.a=0,I(OP,"FNode",153),D(2100,1,{}),h.vf=function(t){yke(this,t)},h.wf=function(){qdt(this)},h.d=0,I(DEe,"AbstractForceModel",2100),D(641,2100,{641:1},jft),h.uf=function(t,n){var r,a,o,f,g;return pvt(this.f,t,n),o=ma(Ja(n.d),t.d),g=b.Math.sqrt(o.a*o.a+o.b*o.b),a=b.Math.max(0,g-eA(t.e)/2-eA(n.e)/2),r=Qpt(this.e,t,n),r>0?f=-ygn(a,this.c)*r:f=Yhn(a,this.b)*l(Q(t,(b0(),qx)),17).a,md(o,f/g),o},h.vf=function(t){yke(this,t),this.a=l(Q(t,(b0(),xK)),17).a,this.c=ze(Ge(Q(t,kK))),this.b=ze(Ge(Q(t,J0e)))},h.xf=function(t){return t0&&(f-=iun(a,this.a)*r),md(o,f*this.b/g),o},h.vf=function(t){var n,r,a,o,f,g,w;for(yke(this,t),this.b=ze(Ge(Q(t,(b0(),Z0e)))),this.c=this.b/l(Q(t,xK),17).a,a=t.e.c.length,f=0,o=0,w=new G(t.e);w.a0},h.a=0,h.b=0,h.c=0,I(DEe,"FruchtermanReingoldModel",642),D(860,1,Pf,KS),h.hf=function(t){sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,aG),""),"Force Model"),"Determines the model for force calculation."),Q_e),(g2(),ps)),J_e),un((r1(),Pn))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,IEe),""),"Iterations"),"The number of iterations on the force model."),pt(300)),Tc),ro),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,OEe),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),pt(0)),Tc),ro),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Dhe),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),Dd),fo),ta),un(Pn)))),Qs(t,Dhe,aG,V7t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Ihe),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),fo),ta),un(Pn)))),Qs(t,Ihe,aG,z7t),rwt((new WS,t))};var R7t,j7t,Q_e,$7t,z7t,q7t,H7t,V7t;I(uL,"ForceMetaDataProvider",860),D(432,22,{3:1,34:1,22:1,432:1},D3e);var Q0e,yK,J_e=Fr(uL,"ForceModelStrategy",432,Hr,zpn,p0n),U7t;D(b2,1,Pf,WS),h.hf=function(t){rwt(t)};var G7t,K7t,Z_e,xK,eAe,W7t,Y7t,X7t,Q7t,tAe,J7t,nAe,rAe,Z7t,qx,e8t,J0e,iAe,t8t,n8t,kK,Z0e,r8t,i8t,s8t,sAe,a8t;I(uL,"ForceOptions",b2),D(1001,1,{},ld),h.sf=function(){var t;return t=new Dwe,t},h.tf=function(t){},I(uL,"ForceOptions/ForceFactory",1001);var hB,$L,Hx,EK;D(861,1,Pf,rz),h.hf=function(t){sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,PEe),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(Hn(),!1)),(g2(),ya)),Ns),un((r1(),ha))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,BEe),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),fo),ta),rs(Pn,he(le(xg,1),it,170,0,[zd]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,FEe),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),aAe),ps),dAe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,REe),""),"Stress Epsilon"),"Termination criterion for the iterative process."),Dd),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,jEe),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),pt(Ii)),Tc),ro),un(Pn)))),Dvt((new iz,t))};var o8t,c8t,aAe,u8t,l8t,h8t;I(uL,"StressMetaDataProvider",861),D(1004,1,Pf,iz),h.hf=function(t){Dvt(t)};var TK,oAe,cAe,uAe,lAe,hAe,f8t,d8t,g8t,p8t,fAe,b8t;I(uL,"StressOptions",1004),D(1005,1,{},y1),h.sf=function(){var t;return t=new $rt,t},h.tf=function(t){},I(uL,"StressOptions/StressFactory",1005),D(1110,205,tv,$rt),h.rf=function(t,n){var r,a,o,f,g;for(n.Ug(A3t,1),Rt(Bt(at(t,(VN(),lAe))))?Rt(Bt(at(t,fAe)))||KO((r=new Yv((aw(),new Jv(t))),r)):W2t(new Dwe,t,n.eh(1)),o=u0t(t),a=$mt(this.a,o),g=a.Kc();g.Ob();)f=l(g.Pb(),235),!(f.e.c.length<=1)&&(_Ln(this.b,f),JEn(this.b),Vu(f.d,new ud));o=ewt(a),lwt(o),n.Vg()},I(uG,"StressLayoutProvider",1110),D(1111,1,fr,ud),h.Cd=function(t){Ake(l(t,454))},I(uG,"StressLayoutProvider/lambda$0$Type",1111),D(1002,1,{},BQe),h.c=0,h.e=0,h.g=0,I(uG,"StressMajorization",1002),D(391,22,{3:1,34:1,22:1,391:1},mse);var e1e,t1e,n1e,dAe=Fr(uG,"StressMajorization/Dimension",391,Hr,F2n,b0n),m8t;D(1003,1,ii,Dz),h.Ne=function(t,n){return Vfn(this.a,l(t,153),l(n,153))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(uG,"StressMajorization/lambda$0$Type",1003),D(1192,1,{},Got),I(Bx,"ElkLayered",1192),D(1193,1,fr,Iz),h.Cd=function(t){_kn(this.a,l(t,36))},I(Bx,"ElkLayered/lambda$0$Type",1193),D(1194,1,fr,Oie),h.Cd=function(t){Ufn(this.a,l(t,36))},I(Bx,"ElkLayered/lambda$1$Type",1194),D(1281,1,{},Lnt);var v8t,w8t,y8t;I(Bx,"GraphConfigurator",1281),D(770,1,fr,qp),h.Cd=function(t){tpt(this.a,l(t,10))},I(Bx,"GraphConfigurator/lambda$0$Type",770),D(771,1,{},u5),h.Kb=function(t){return mxe(),new bn(null,new kn(l(t,30).a,16))},I(Bx,"GraphConfigurator/lambda$1$Type",771),D(772,1,fr,n_),h.Cd=function(t){tpt(this.a,l(t,10))},I(Bx,"GraphConfigurator/lambda$2$Type",772),D(1109,205,tv,qQe),h.rf=function(t,n){var r;r=oLn(new VQe,t),qe(at(t,(Nt(),p4)))===qe((rp(),A2))?j4n(this.a,r,n):WEn(this.a,r,n),n.$g()||Kvt(new b8,r)},I(Bx,"LayeredLayoutProvider",1109),D(367,22,{3:1,34:1,22:1,367:1},oO);var y0,vg,bu,_u,mc,gAe=Fr(Bx,"LayeredPhases",367,Hr,zmn,m0n),x8t;D(1717,1,{},rft),h.i=0;var k8t;I(jP,"ComponentsToCGraphTransformer",1717);var E8t;D(1718,1,{},mm),h.yf=function(t,n){return b.Math.min(t.a!=null?ze(t.a):t.c.i,n.a!=null?ze(n.a):n.c.i)},h.zf=function(t,n){return b.Math.min(t.a!=null?ze(t.a):t.c.i,n.a!=null?ze(n.a):n.c.i)},I(jP,"ComponentsToCGraphTransformer/1",1718),D(86,1,{86:1}),h.i=0,h.k=!0,h.o=ia;var r1e=I(dL,"CNode",86);D(470,86,{470:1,86:1},Pye,U8e),h.Ib=function(){return""},I(jP,"ComponentsToCGraphTransformer/CRectNode",470),D(1688,1,{},q9);var i1e,s1e;I(jP,"OneDimensionalComponentsCompaction",1688),D(1689,1,{},Vv),h.Kb=function(t){return A2n(l(t,42))},h.Fb=function(t){return this===t},I(jP,"OneDimensionalComponentsCompaction/lambda$0$Type",1689),D(1690,1,{},Y7),h.Kb=function(t){return z4n(l(t,42))},h.Fb=function(t){return this===t},I(jP,"OneDimensionalComponentsCompaction/lambda$1$Type",1690),D(1720,1,{},Zst),I(dL,"CGraph",1720),D(194,1,{194:1},Qce),h.b=0,h.c=0,h.e=0,h.g=!0,h.i=ia,I(dL,"CGroup",194),D(1719,1,{},G2),h.yf=function(t,n){return b.Math.max(t.a!=null?ze(t.a):t.c.i,n.a!=null?ze(n.a):n.c.i)},h.zf=function(t,n){return b.Math.max(t.a!=null?ze(t.a):t.c.i,n.a!=null?ze(n.a):n.c.i)},I(dL,t3t,1719),D(1721,1,{},Zpt),h.d=!1;var T8t,a1e=I(dL,i3t,1721);D(1722,1,{},X7),h.Kb=function(t){return v3e(),Hn(),l(l(t,42).a,86).d.e!=0},h.Fb=function(t){return this===t},I(dL,s3t,1722),D(833,1,{},G4e),h.a=!1,h.b=!1,h.c=!1,h.d=!1,I(dL,a3t,833),D(1898,1,{},pst),I(lG,o3t,1898);var fB=ks(rv,Zwt);D(1899,1,{382:1},Yat),h.bf=function(t){nSn(this,l(t,476))},I(lG,c3t,1899),D(Lb,1,ii,l5),h.Ne=function(t,n){return hpn(l(t,86),l(n,86))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(lG,u3t,Lb),D(476,1,{476:1},O3e),h.a=!1,I(lG,l3t,476),D(1901,1,ii,X3),h.Ne=function(t,n){return f8n(l(t,476),l(n,476))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(lG,h3t,1901),D(148,1,{148:1},Ik,L4e),h.Fb=function(t){var n;return t==null||xOn!=bh(t)?!1:(n=l(t,148),Jc(this.c,n.c)&&Jc(this.d,n.d))},h.Hb=function(){return MN(he(le(wa,1),Rn,1,5,[this.c,this.d]))},h.Ib=function(){return"("+this.c+Co+this.d+(this.a?"cx":"")+this.b+")"},h.a=!0,h.c=0,h.d=0;var xOn=I(rv,"Point",148);D(416,22,{3:1,34:1,22:1,416:1},fq);var s3,a4,M6,o4,C8t=Fr(rv,"Point/Quadrant",416,Hr,Xbn,v0n),S8t;D(1708,1,{},$Qe),h.b=null,h.c=null,h.d=null,h.e=null,h.f=null;var _8t,A8t,L8t,M8t,D8t;I(rv,"RectilinearConvexHull",1708),D(583,1,{382:1},nU),h.bf=function(t){$vn(this,l(t,148))},h.b=0;var pAe;I(rv,"RectilinearConvexHull/MaximalElementsEventHandler",583),D(1710,1,ii,Fp),h.Ne=function(t,n){return fpn(Ge(t),Ge(n))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rv,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1710),D(1709,1,{382:1},wht),h.bf=function(t){mCn(this,l(t,148))},h.a=0,h.b=null,h.c=null,h.d=null,h.e=null,I(rv,"RectilinearConvexHull/RectangleEventHandler",1709),D(1711,1,ii,nI),h.Ne=function(t,n){return ybn(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rv,"RectilinearConvexHull/lambda$0$Type",1711),D(1712,1,ii,$J),h.Ne=function(t,n){return xbn(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rv,"RectilinearConvexHull/lambda$1$Type",1712),D(1713,1,ii,vm),h.Ne=function(t,n){return wbn(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rv,"RectilinearConvexHull/lambda$2$Type",1713),D(1714,1,ii,hu),h.Ne=function(t,n){return kbn(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rv,"RectilinearConvexHull/lambda$3$Type",1714),D(1715,1,ii,zJ),h.Ne=function(t,n){return Zxn(l(t,148),l(n,148))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rv,"RectilinearConvexHull/lambda$4$Type",1715),D(1716,1,{},Tot),I(rv,"Scanline",1716),D(2104,1,{}),I(V1,"AbstractGraphPlacer",2104),D(335,1,{335:1},hrt),h.Ff=function(t){return this.Gf(t)?(xn(this.b,l(Q(t,(ft(),pp)),21),t),!0):!1},h.Gf=function(t){var n,r,a,o;for(n=l(Q(t,(ft(),pp)),21),o=l($i(Xi,n),21),a=o.Kc();a.Ob();)if(r=l(a.Pb(),21),!l($i(this.b,r),15).dc())return!1;return!0};var Xi;I(V1,"ComponentGroup",335),D(779,2104,{},Nwe),h.Hf=function(t){var n,r;for(r=new G(this.a);r.ar&&(L=0,B+=w+a,w=0),E=f.c,KE(f,L+E.a,B+E.b),Y0(E),o=b.Math.max(o,L+C.a),w=b.Math.max(w,C.b),L+=C.a+a;n.f.a=o,n.f.b=B+w},h.Jf=function(t,n){var r,a,o,f,g;if(qe(Q(n,(Nt(),g4)))===qe((Km(),c4))){for(a=t.Kc();a.Ob();){for(r=l(a.Pb(),36),g=0,f=new G(r.a);f.ar&&!l(Q(f,(ft(),pp)),21).Hc((Ct(),Qn))||E&&l(Q(E,(ft(),pp)),21).Hc((Ct(),ar))||l(Q(f,(ft(),pp)),21).Hc((Ct(),er)))&&(z=B,V+=w+a,w=0),C=f.c,l(Q(f,(ft(),pp)),21).Hc((Ct(),Qn))&&(z=o+a),KE(f,z+C.a,V+C.b),o=b.Math.max(o,z+L.a),l(Q(f,pp),21).Hc(Dr)&&(B=b.Math.max(B,z+L.a+a)),Y0(C),w=b.Math.max(w,L.b),z+=L.a+a,E=f;n.f.a=o,n.f.b=V+w},h.Jf=function(t,n){},I(V1,"ModelOrderRowGraphPlacer",1313),D(1311,1,ii,cj),h.Ne=function(t,n){return j3n(l(t,36),l(n,36))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(V1,"SimpleRowGraphPlacer/1",1311);var O8t;D(1280,1,Ld,q0),h.Lb=function(t){var n;return n=l(Q(l(t,249).b,(Nt(),cc)),75),!!n&&n.b!=0},h.Fb=function(t){return this===t},h.Mb=function(t){var n;return n=l(Q(l(t,249).b,(Nt(),cc)),75),!!n&&n.b!=0},I(hG,"CompoundGraphPostprocessor/1",1280),D(1279,1,ts,UQe),h.Kf=function(t,n){kdt(this,l(t,36),n)},I(hG,"CompoundGraphPreprocessor",1279),D(453,1,{453:1},f1t),h.c=!1,I(hG,"CompoundGraphPreprocessor/ExternalPort",453),D(249,1,{249:1},Kq),h.Ib=function(){return aae(this.c)+":"+Kpt(this.b)},I(hG,"CrossHierarchyEdge",249),D(777,1,ii,GI),h.Ne=function(t,n){return $7n(this,l(t,249),l(n,249))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(hG,"CrossHierarchyEdgeComparator",777),D(305,137,{3:1,305:1,96:1,137:1}),h.p=0,I(Cu,"LGraphElement",305),D(18,305,{3:1,18:1,305:1,96:1,137:1},Tw),h.Ib=function(){return Kpt(this)};var u1e=I(Cu,"LEdge",18);D(36,305,{3:1,20:1,36:1,305:1,96:1,137:1},o7e),h.Jc=function(t){to(this,t)},h.Kc=function(){return new G(this.b)},h.Ib=function(){return this.b.c.length==0?"G-unlayered"+Tb(this.a):this.a.c.length==0?"G-layered"+Tb(this.b):"G[layerless"+Tb(this.a)+", layers"+Tb(this.b)+"]"};var N8t=I(Cu,"LGraph",36),P8t;D(666,1,{}),h.Lf=function(){return this.e.n},h.of=function(t){return Q(this.e,t)},h.Mf=function(){return this.e.o},h.Nf=function(){return this.e.p},h.pf=function(t){return ns(this.e,t)},h.Of=function(t){this.e.n.a=t.a,this.e.n.b=t.b},h.Pf=function(t){this.e.o.a=t.a,this.e.o.b=t.b},h.Qf=function(t){this.e.p=t},I(Cu,"LGraphAdapters/AbstractLShapeAdapter",666),D(474,1,{853:1},Tm),h.Rf=function(){var t,n;if(!this.b)for(this.b=eg(this.a.b.c.length),n=new G(this.a.b);n.a0&&H0t((Xn(n-1,t.length),t.charCodeAt(n-1)),N3t);)--n;if(f> ",t),fU(r)),hi(wu((t.a+="[",t),r.i),"]")),t.a},h.c=!0,h.d=!1;var yAe,xAe,kAe,EAe,TAe,CAe,F8t=I(Cu,"LPort",12);D(408,1,hg,T5),h.Jc=function(t){to(this,t)},h.Kc=function(){var t;return t=new G(this.a.e),new jWe(t)},I(Cu,"LPort/1",408),D(1309,1,Oa,jWe),h.Nb=function(t){Za(this,t)},h.Pb=function(){return l(re(this.a),18).c},h.Ob=function(){return Lc(this.a)},h.Qb=function(){Q_(this.a)},I(Cu,"LPort/1/1",1309),D(369,1,hg,C8),h.Jc=function(t){to(this,t)},h.Kc=function(){var t;return t=new G(this.a.g),new vwe(t)},I(Cu,"LPort/2",369),D(776,1,Oa,vwe),h.Nb=function(t){Za(this,t)},h.Pb=function(){return l(re(this.a),18).d},h.Ob=function(){return Lc(this.a)},h.Qb=function(){Q_(this.a)},I(Cu,"LPort/2/1",776),D(1302,1,hg,Met),h.Jc=function(t){to(this,t)},h.Kc=function(){return new N1(this)},I(Cu,"LPort/CombineIter",1302),D(208,1,Oa,N1),h.Nb=function(t){Za(this,t)},h.Qb=function(){aZe()},h.Ob=function(){return $_(this)},h.Pb=function(){return Lc(this.a)?re(this.a):re(this.b)},I(Cu,"LPort/CombineIter/1",208),D(1303,1,Ld,K2),h.Lb=function(t){return Lst(t)},h.Fb=function(t){return this===t},h.Mb=function(t){return kl(),l(t,12).g.c.length!=0},I(Cu,"LPort/lambda$0$Type",1303),D(1304,1,Ld,J3),h.Lb=function(t){return Mst(t)},h.Fb=function(t){return this===t},h.Mb=function(t){return kl(),l(t,12).e.c.length!=0},I(Cu,"LPort/lambda$1$Type",1304),D(1305,1,Ld,HJ),h.Lb=function(t){return kl(),l(t,12).j==(Ct(),Qn)},h.Fb=function(t){return this===t},h.Mb=function(t){return kl(),l(t,12).j==(Ct(),Qn)},I(Cu,"LPort/lambda$2$Type",1305),D(1306,1,Ld,wm),h.Lb=function(t){return kl(),l(t,12).j==(Ct(),ar)},h.Fb=function(t){return this===t},h.Mb=function(t){return kl(),l(t,12).j==(Ct(),ar)},I(Cu,"LPort/lambda$3$Type",1306),D(1307,1,Ld,VJ),h.Lb=function(t){return kl(),l(t,12).j==(Ct(),Dr)},h.Fb=function(t){return this===t},h.Mb=function(t){return kl(),l(t,12).j==(Ct(),Dr)},I(Cu,"LPort/lambda$4$Type",1307),D(1308,1,Ld,UJ),h.Lb=function(t){return kl(),l(t,12).j==(Ct(),er)},h.Fb=function(t){return this===t},h.Mb=function(t){return kl(),l(t,12).j==(Ct(),er)},I(Cu,"LPort/lambda$5$Type",1308),D(30,305,{3:1,20:1,305:1,30:1,96:1,137:1},yu),h.Jc=function(t){to(this,t)},h.Kc=function(){return new G(this.a)},h.Ib=function(){return"L_"+gc(this.b.b,this,0)+Tb(this.a)},I(Cu,"Layer",30),D(1330,1,{},VQe),I(v2,R3t,1330),D(1334,1,{},Q7),h.Kb=function(t){return bc(l(t,84))},I(v2,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1334),D(1337,1,{},uS),h.Kb=function(t){return bc(l(t,84))},I(v2,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1337),D(1331,1,fr,$We),h.Cd=function(t){l2t(this.a,l(t,123))},I(v2,MEe,1331),D(1332,1,fr,zWe),h.Cd=function(t){l2t(this.a,l(t,123))},I(v2,j3t,1332),D(1333,1,{},lj),h.Kb=function(t){return new bn(null,new kn(A5e(l(t,74)),16))},I(v2,$3t,1333),D(1335,1,ti,qWe),h.Mb=function(t){return Hln(this.a,l(t,27))},I(v2,z3t,1335),D(1336,1,{},H9),h.Kb=function(t){return new bn(null,new kn(apn(l(t,74)),16))},I(v2,"ElkGraphImporter/lambda$5$Type",1336),D(1338,1,ti,HWe),h.Mb=function(t){return Vln(this.a,l(t,27))},I(v2,"ElkGraphImporter/lambda$7$Type",1338),D(1339,1,ti,GJ),h.Mb=function(t){return ypn(l(t,74))},I(v2,"ElkGraphImporter/lambda$8$Type",1339),D(1297,1,{},b8);var R8t;I(v2,"ElkGraphLayoutTransferrer",1297),D(1298,1,ti,VWe),h.Mb=function(t){return Ifn(this.a,l(t,18))},I(v2,"ElkGraphLayoutTransferrer/lambda$0$Type",1298),D(1299,1,fr,UWe),h.Cd=function(t){sO(),vt(this.a,l(t,18))},I(v2,"ElkGraphLayoutTransferrer/lambda$1$Type",1299),D(1300,1,ti,GWe),h.Mb=function(t){return mfn(this.a,l(t,18))},I(v2,"ElkGraphLayoutTransferrer/lambda$2$Type",1300),D(1301,1,fr,KWe),h.Cd=function(t){sO(),vt(this.a,l(t,18))},I(v2,"ElkGraphLayoutTransferrer/lambda$3$Type",1301),D(819,1,{},i4e),I(rr,"BiLinkedHashMultiMap",819),D(1550,1,ts,V9),h.Kf=function(t,n){s3n(l(t,36),n)},I(rr,"CommentNodeMarginCalculator",1550),D(1551,1,{},KJ),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"CommentNodeMarginCalculator/lambda$0$Type",1551),D(1552,1,fr,WJ),h.Cd=function(t){sLn(l(t,10))},I(rr,"CommentNodeMarginCalculator/lambda$1$Type",1552),D(1553,1,ts,YJ),h.Kf=function(t,n){uSn(l(t,36),n)},I(rr,"CommentPostprocessor",1553),D(1554,1,ts,XJ),h.Kf=function(t,n){DDn(l(t,36),n)},I(rr,"CommentPreprocessor",1554),D(1555,1,ts,QJ),h.Kf=function(t,n){SCn(l(t,36),n)},I(rr,"ConstraintsPostprocessor",1555),D(1556,1,ts,JJ),h.Kf=function(t,n){O3n(l(t,36),n)},I(rr,"EdgeAndLayerConstraintEdgeReverser",1556),D(1557,1,ts,ZJ),h.Kf=function(t,n){E5n(l(t,36),n)},I(rr,"EndLabelPostprocessor",1557),D(1558,1,{},eZ),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"EndLabelPostprocessor/lambda$0$Type",1558),D(1559,1,ti,tZ),h.Mb=function(t){return Rmn(l(t,10))},I(rr,"EndLabelPostprocessor/lambda$1$Type",1559),D(1560,1,fr,nZ),h.Cd=function(t){d8n(l(t,10))},I(rr,"EndLabelPostprocessor/lambda$2$Type",1560),D(1561,1,ts,rZ),h.Kf=function(t,n){tkn(l(t,36),n)},I(rr,"EndLabelPreprocessor",1561),D(1562,1,{},rI),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"EndLabelPreprocessor/lambda$0$Type",1562),D(1563,1,fr,mit),h.Cd=function(t){nln(this.a,this.b,this.c,l(t,10))},h.a=0,h.b=0,h.c=!1,I(rr,"EndLabelPreprocessor/lambda$1$Type",1563),D(1564,1,ti,iZ),h.Mb=function(t){return qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),rC))},I(rr,"EndLabelPreprocessor/lambda$2$Type",1564),D(1565,1,fr,WWe),h.Cd=function(t){ui(this.a,l(t,72))},I(rr,"EndLabelPreprocessor/lambda$3$Type",1565),D(1566,1,ti,sZ),h.Mb=function(t){return qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),_4))},I(rr,"EndLabelPreprocessor/lambda$4$Type",1566),D(1567,1,fr,YWe),h.Cd=function(t){ui(this.a,l(t,72))},I(rr,"EndLabelPreprocessor/lambda$5$Type",1567),D(1615,1,ts,Hre),h.Kf=function(t,n){k4n(l(t,36),n)};var j8t;I(rr,"EndLabelSorter",1615),D(1616,1,ii,lS),h.Ne=function(t,n){return t6n(l(t,466),l(n,466))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"EndLabelSorter/1",1616),D(466,1,{466:1},Hat),I(rr,"EndLabelSorter/LabelGroup",466),D(1617,1,{},hj),h.Kb=function(t){return iO(),new bn(null,new kn(l(t,30).a,16))},I(rr,"EndLabelSorter/lambda$0$Type",1617),D(1618,1,ti,J7),h.Mb=function(t){return iO(),l(t,10).k==(Zn(),Ps)},I(rr,"EndLabelSorter/lambda$1$Type",1618),D(1619,1,fr,aZ),h.Cd=function(t){p9n(l(t,10))},I(rr,"EndLabelSorter/lambda$2$Type",1619),D(1620,1,ti,oZ),h.Mb=function(t){return iO(),qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),_4))},I(rr,"EndLabelSorter/lambda$3$Type",1620),D(1621,1,ti,cZ),h.Mb=function(t){return iO(),qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),rC))},I(rr,"EndLabelSorter/lambda$4$Type",1621),D(1568,1,ts,uZ),h.Kf=function(t,n){yLn(this,l(t,36))},h.b=0,h.c=0,I(rr,"FinalSplineBendpointsCalculator",1568),D(1569,1,{},lZ),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"FinalSplineBendpointsCalculator/lambda$0$Type",1569),D(1570,1,{},hS),h.Kb=function(t){return new bn(null,new vw(new hr(dr(qs(l(t,10)).a.Kc(),new j))))},I(rr,"FinalSplineBendpointsCalculator/lambda$1$Type",1570),D(1571,1,ti,iI),h.Mb=function(t){return!Do(l(t,18))},I(rr,"FinalSplineBendpointsCalculator/lambda$2$Type",1571),D(1572,1,ti,fj),h.Mb=function(t){return ns(l(t,18),(ft(),fv))},I(rr,"FinalSplineBendpointsCalculator/lambda$3$Type",1572),D(1573,1,fr,XWe),h.Cd=function(t){L_n(this.a,l(t,131))},I(rr,"FinalSplineBendpointsCalculator/lambda$4$Type",1573),D(1574,1,fr,h5),h.Cd=function(t){JN(l(t,18).a)},I(rr,"FinalSplineBendpointsCalculator/lambda$5$Type",1574),D(803,1,ts,wwe),h.Kf=function(t,n){dMn(this,l(t,36),n)},I(rr,"GraphTransformer",803),D(517,22,{3:1,34:1,22:1,517:1},I3e);var h1e,dB,$8t=Fr(rr,"GraphTransformer/Mode",517,Hr,qpn,E1n),z8t;D(1575,1,ts,f5),h.Kf=function(t,n){PTn(l(t,36),n)},I(rr,"HierarchicalNodeResizingProcessor",1575),D(1576,1,ts,hZ),h.Kf=function(t,n){e3n(l(t,36),n)},I(rr,"HierarchicalPortConstraintProcessor",1576),D(1577,1,ii,t0),h.Ne=function(t,n){return k6n(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"HierarchicalPortConstraintProcessor/NodeComparator",1577),D(1578,1,ts,Z7),h.Kf=function(t,n){EAn(l(t,36),n)},I(rr,"HierarchicalPortDummySizeProcessor",1578),D(1579,1,ts,fZ),h.Kf=function(t,n){OSn(this,l(t,36),n)},h.a=0,I(rr,"HierarchicalPortOrthogonalEdgeRouter",1579),D(1580,1,ii,U9),h.Ne=function(t,n){return Phn(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"HierarchicalPortOrthogonalEdgeRouter/1",1580),D(1581,1,ii,Wd),h.Ne=function(t,n){return zvn(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"HierarchicalPortOrthogonalEdgeRouter/2",1581),D(1582,1,ts,dZ),h.Kf=function(t,n){Xxn(l(t,36),n)},I(rr,"HierarchicalPortPositionProcessor",1582),D(1583,1,ts,Kv),h.Kf=function(t,n){fIn(this,l(t,36))},h.a=0,h.c=0;var CK,SK;I(rr,"HighDegreeNodeLayeringProcessor",1583),D(580,1,{580:1},gZ),h.b=-1,h.d=-1,I(rr,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",580),D(1584,1,{},pZ),h.Kb=function(t){return OO(),ka(l(t,10))},h.Fb=function(t){return this===t},I(rr,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1584),D(1585,1,{},dj),h.Kb=function(t){return OO(),qs(l(t,10))},h.Fb=function(t){return this===t},I(rr,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1585),D(1591,1,ts,bZ),h.Kf=function(t,n){pAn(this,l(t,36),n)},I(rr,"HyperedgeDummyMerger",1591),D(804,1,{},w4e),h.a=!1,h.b=!1,h.c=!1,I(rr,"HyperedgeDummyMerger/MergeState",804),D(1592,1,{},fS),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"HyperedgeDummyMerger/lambda$0$Type",1592),D(1593,1,{},dS),h.Kb=function(t){return new bn(null,new kn(l(t,10).j,16))},I(rr,"HyperedgeDummyMerger/lambda$1$Type",1593),D(1594,1,fr,gj),h.Cd=function(t){l(t,12).p=-1},I(rr,"HyperedgeDummyMerger/lambda$2$Type",1594),D(1595,1,ts,sI),h.Kf=function(t,n){dAn(l(t,36),n)},I(rr,"HypernodesProcessor",1595),D(1596,1,ts,e8),h.Kf=function(t,n){kAn(l(t,36),n)},I(rr,"InLayerConstraintProcessor",1596),D(1597,1,ts,mZ),h.Kf=function(t,n){p3n(l(t,36),n)},I(rr,"InnermostNodeMarginCalculator",1597),D(1598,1,ts,pj),h.Kf=function(t,n){_Dn(this,l(t,36))},h.a=ia,h.b=ia,h.c=gs,h.d=gs;var kOn=I(rr,"InteractiveExternalPortPositioner",1598);D(1599,1,{},bj),h.Kb=function(t){return l(t,18).d.i},h.Fb=function(t){return this===t},I(rr,"InteractiveExternalPortPositioner/lambda$0$Type",1599),D(1600,1,{},QWe),h.Kb=function(t){return Bhn(this.a,Ge(t))},h.Fb=function(t){return this===t},I(rr,"InteractiveExternalPortPositioner/lambda$1$Type",1600),D(1601,1,{},vZ),h.Kb=function(t){return l(t,18).c.i},h.Fb=function(t){return this===t},I(rr,"InteractiveExternalPortPositioner/lambda$2$Type",1601),D(1602,1,{},JWe),h.Kb=function(t){return Fhn(this.a,Ge(t))},h.Fb=function(t){return this===t},I(rr,"InteractiveExternalPortPositioner/lambda$3$Type",1602),D(1603,1,{},ZWe),h.Kb=function(t){return Nfn(this.a,Ge(t))},h.Fb=function(t){return this===t},I(rr,"InteractiveExternalPortPositioner/lambda$4$Type",1603),D(1604,1,{},eYe),h.Kb=function(t){return Pfn(this.a,Ge(t))},h.Fb=function(t){return this===t},I(rr,"InteractiveExternalPortPositioner/lambda$5$Type",1604),D(81,22,{3:1,34:1,22:1,81:1,196:1},Ws),h.dg=function(){switch(this.g){case 15:return new Uj;case 22:return new Dee;case 47:return new Nee;case 28:case 35:return new CZ;case 32:return new V9;case 42:return new YJ;case 1:return new XJ;case 41:return new QJ;case 56:return new wwe((dE(),dB));case 0:return new wwe((dE(),h1e));case 2:return new JJ;case 54:return new ZJ;case 33:return new rZ;case 51:return new uZ;case 55:return new f5;case 13:return new hZ;case 38:return new Z7;case 44:return new fZ;case 40:return new dZ;case 9:return new Kv;case 49:return new nrt;case 37:return new bZ;case 43:return new sI;case 27:return new e8;case 30:return new mZ;case 3:return new pj;case 18:return new yZ;case 29:return new xZ;case 5:return new fk;case 50:return new wZ;case 34:return new sz;case 36:return new d5;case 52:return new Hre;case 11:return new G9;case 7:return new Vre;case 39:return new aI;case 45:return new Z3;case 16:return new K9;case 10:return new Wet;case 48:return new mj;case 21:return new oI;case 23:return new Wie((Iw(),oM));case 8:return new cI;case 12:return new _Z;case 4:return new uI;case 19:return new cz;case 17:return new IZ;case 53:return new OZ;case 6:return new Tj;case 25:return new KQe;case 46:return new FZ;case 31:return new Vrt;case 14:return new UZ;case 26:return new Fee;case 20:return new Aj;case 24:return new Wie((Iw(),MW));default:throw ue(new Yn(Fhe+(this.f!=null?this.f:""+this.g)))}};var SAe,_Ae,AAe,LAe,MAe,DAe,IAe,OAe,NAe,PAe,D6,_K,AK,BAe,FAe,RAe,jAe,$Ae,zAe,qAe,zL,HAe,VAe,UAe,GAe,KAe,f1e,LK,MK,WAe,DK,IK,OK,LT,u4,l4,YAe,NK,PK,XAe,BK,FK,QAe,JAe,ZAe,eLe,RK,d1e,gB,jK,$K,zK,qK,tLe,nLe,rLe,iLe,EOn=Fr(rr,Rhe,81,Hr,rbt,k0n),q8t;D(1605,1,ts,yZ),h.Kf=function(t,n){CDn(l(t,36),n)},I(rr,"InvertedPortProcessor",1605),D(1606,1,ts,xZ),h.Kf=function(t,n){x_n(l(t,36),n)},I(rr,"LabelAndNodeSizeProcessor",1606),D(1607,1,ti,kZ),h.Mb=function(t){return l(t,10).k==(Zn(),Ps)},I(rr,"LabelAndNodeSizeProcessor/lambda$0$Type",1607),D(1608,1,ti,EZ),h.Mb=function(t){return l(t,10).k==(Zn(),Us)},I(rr,"LabelAndNodeSizeProcessor/lambda$1$Type",1608),D(1609,1,fr,vit),h.Cd=function(t){rln(this.b,this.a,this.c,l(t,10))},h.a=!1,h.c=!1,I(rr,"LabelAndNodeSizeProcessor/lambda$2$Type",1609),D(1610,1,ts,fk),h.Kf=function(t,n){QMn(l(t,36),n)};var H8t;I(rr,"LabelDummyInserter",1610),D(1611,1,Ld,Yd),h.Lb=function(t){return qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),nC))},h.Fb=function(t){return this===t},h.Mb=function(t){return qe(Q(l(t,72),(Nt(),jd)))===qe((F1(),nC))},I(rr,"LabelDummyInserter/1",1611),D(1612,1,ts,wZ),h.Kf=function(t,n){jMn(l(t,36),n)},I(rr,"LabelDummyRemover",1612),D(1613,1,ti,Uv),h.Mb=function(t){return Rt(Bt(Q(l(t,72),(Nt(),tde))))},I(rr,"LabelDummyRemover/lambda$0$Type",1613),D(1378,1,ts,sz),h.Kf=function(t,n){DMn(this,l(t,36),n)},h.a=null;var g1e;I(rr,"LabelDummySwitcher",1378),D(293,1,{293:1},nmt),h.c=0,h.d=null,h.f=0,I(rr,"LabelDummySwitcher/LabelDummyInfo",293),D(1379,1,{},TZ),h.Kb=function(t){return lx(),new bn(null,new kn(l(t,30).a,16))},I(rr,"LabelDummySwitcher/lambda$0$Type",1379),D(1380,1,ti,gS),h.Mb=function(t){return lx(),l(t,10).k==(Zn(),cu)},I(rr,"LabelDummySwitcher/lambda$1$Type",1380),D(1381,1,{},tYe),h.Kb=function(t){return vfn(this.a,l(t,10))},I(rr,"LabelDummySwitcher/lambda$2$Type",1381),D(1382,1,fr,nYe),h.Cd=function(t){Rgn(this.a,l(t,293))},I(rr,"LabelDummySwitcher/lambda$3$Type",1382),D(1383,1,ii,pS),h.Ne=function(t,n){return cgn(l(t,293),l(n,293))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"LabelDummySwitcher/lambda$4$Type",1383),D(802,1,ts,CZ),h.Kf=function(t,n){yvn(l(t,36),n)},I(rr,"LabelManagementProcessor",802),D(1614,1,ts,d5),h.Kf=function(t,n){QCn(l(t,36),n)},I(rr,"LabelSideSelector",1614),D(1622,1,ts,G9),h.Kf=function(t,n){RAn(l(t,36),n)},I(rr,"LayerConstraintPostprocessor",1622),D(1623,1,ts,Vre),h.Kf=function(t,n){OEn(l(t,36),n)};var sLe;I(rr,"LayerConstraintPreprocessor",1623),D(371,22,{3:1,34:1,22:1,371:1},gq);var pB,HK,VK,p1e,V8t=Fr(rr,"LayerConstraintPreprocessor/HiddenNodeConnections",371,Hr,Jbn,E0n),U8t;D(1624,1,ts,aI),h.Kf=function(t,n){tMn(l(t,36),n)},I(rr,"LayerSizeAndGraphHeightCalculator",1624),D(1625,1,ts,Z3),h.Kf=function(t,n){BTn(l(t,36),n)},I(rr,"LongEdgeJoiner",1625),D(1626,1,ts,K9),h.Kf=function(t,n){DLn(l(t,36),n)},I(rr,"LongEdgeSplitter",1626),D(1627,1,ts,Wet),h.Kf=function(t,n){fDn(this,l(t,36),n)},h.e=0,h.f=0,h.j=0,h.k=0,h.n=0,h.o=0;var G8t,K8t;I(rr,"NodePromotion",1627),D(1628,1,ii,SZ),h.Ne=function(t,n){return Cyn(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"NodePromotion/1",1628),D(1629,1,ii,bS),h.Ne=function(t,n){return Syn(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"NodePromotion/2",1629),D(1630,1,{},hd),h.Kb=function(t){return l(t,42),Yq(),Hn(),!0},h.Fb=function(t){return this===t},I(rr,"NodePromotion/lambda$0$Type",1630),D(1631,1,{},aYe),h.Kb=function(t){return x2n(this.a,l(t,42))},h.Fb=function(t){return this===t},h.a=0,I(rr,"NodePromotion/lambda$1$Type",1631),D(1632,1,{},oYe),h.Kb=function(t){return y2n(this.a,l(t,42))},h.Fb=function(t){return this===t},h.a=0,I(rr,"NodePromotion/lambda$2$Type",1632),D(1633,1,ts,mj),h.Kf=function(t,n){aIn(l(t,36),n)},I(rr,"NorthSouthPortPostprocessor",1633),D(1634,1,ts,oI),h.Kf=function(t,n){$Dn(l(t,36),n)},I(rr,"NorthSouthPortPreprocessor",1634),D(1635,1,ii,W9),h.Ne=function(t,n){return $3n(l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"NorthSouthPortPreprocessor/lambda$0$Type",1635),D(1636,1,ts,cI),h.Kf=function(t,n){nAn(l(t,36),n)},I(rr,"PartitionMidprocessor",1636),D(1637,1,ti,vj),h.Mb=function(t){return ns(l(t,10),(Nt(),HT))},I(rr,"PartitionMidprocessor/lambda$0$Type",1637),D(1638,1,fr,cYe),h.Cd=function(t){xpn(this.a,l(t,10))},I(rr,"PartitionMidprocessor/lambda$1$Type",1638),D(1639,1,ts,_Z),h.Kf=function(t,n){rCn(l(t,36),n)},I(rr,"PartitionPostprocessor",1639),D(1640,1,ts,uI),h.Kf=function(t,n){mEn(l(t,36),n)},I(rr,"PartitionPreprocessor",1640),D(1641,1,ti,AZ),h.Mb=function(t){return ns(l(t,10),(Nt(),HT))},I(rr,"PartitionPreprocessor/lambda$0$Type",1641),D(1642,1,{},LZ),h.Kb=function(t){return new bn(null,new vw(new hr(dr(qs(l(t,10)).a.Kc(),new j))))},I(rr,"PartitionPreprocessor/lambda$1$Type",1642),D(1643,1,ti,wj),h.Mb=function(t){return o6n(l(t,18))},I(rr,"PartitionPreprocessor/lambda$2$Type",1643),D(1644,1,fr,t8),h.Cd=function(t){ryn(l(t,18))},I(rr,"PartitionPreprocessor/lambda$3$Type",1644),D(1645,1,ts,cz),h.Kf=function(t,n){B_n(l(t,36),n)};var aLe,W8t,Y8t,X8t,oLe,cLe;I(rr,"PortListSorter",1645),D(1648,1,ii,yj),h.Ne=function(t,n){return Kct(l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"PortListSorter/lambda$0$Type",1648),D(1650,1,ii,n8),h.Ne=function(t,n){return Smt(l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"PortListSorter/lambda$1$Type",1650),D(1646,1,{},MZ),h.Kb=function(t){return TE(),l(t,12).e},I(rr,"PortListSorter/lambda$2$Type",1646),D(1647,1,{},lI),h.Kb=function(t){return TE(),l(t,12).g},I(rr,"PortListSorter/lambda$3$Type",1647),D(1649,1,ii,DZ),h.Ne=function(t,n){return D7n(l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"PortListSorter/lambda$4$Type",1649),D(1651,1,ts,IZ),h.Kf=function(t,n){GEn(l(t,36),n)},I(rr,"PortSideProcessor",1651),D(1652,1,ts,OZ),h.Kf=function(t,n){KSn(l(t,36),n)},I(rr,"ReversedEdgeRestorer",1652),D(1657,1,ts,KQe),h.Kf=function(t,n){d7n(this,l(t,36),n)},I(rr,"SelfLoopPortRestorer",1657),D(1658,1,{},NZ),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"SelfLoopPortRestorer/lambda$0$Type",1658),D(1659,1,ti,xj),h.Mb=function(t){return l(t,10).k==(Zn(),Ps)},I(rr,"SelfLoopPortRestorer/lambda$1$Type",1659),D(1660,1,ti,PZ),h.Mb=function(t){return ns(l(t,10),(ft(),h3))},I(rr,"SelfLoopPortRestorer/lambda$2$Type",1660),D(1661,1,{},BZ),h.Kb=function(t){return l(Q(l(t,10),(ft(),h3)),337)},I(rr,"SelfLoopPortRestorer/lambda$3$Type",1661),D(1662,1,fr,iYe),h.Cd=function(t){A9n(this.a,l(t,337))},I(rr,"SelfLoopPortRestorer/lambda$4$Type",1662),D(805,1,fr,kj),h.Cd=function(t){z9n(l(t,105))},I(rr,"SelfLoopPortRestorer/lambda$5$Type",805),D(1663,1,ts,FZ),h.Kf=function(t,n){w6n(l(t,36),n)},I(rr,"SelfLoopPostProcessor",1663),D(1664,1,{},RZ),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"SelfLoopPostProcessor/lambda$0$Type",1664),D(1665,1,ti,jZ),h.Mb=function(t){return l(t,10).k==(Zn(),Ps)},I(rr,"SelfLoopPostProcessor/lambda$1$Type",1665),D(1666,1,ti,$Z),h.Mb=function(t){return ns(l(t,10),(ft(),h3))},I(rr,"SelfLoopPostProcessor/lambda$2$Type",1666),D(1667,1,fr,Ej),h.Cd=function(t){M8n(l(t,10))},I(rr,"SelfLoopPostProcessor/lambda$3$Type",1667),D(1668,1,{},zZ),h.Kb=function(t){return new bn(null,new kn(l(t,105).f,1))},I(rr,"SelfLoopPostProcessor/lambda$4$Type",1668),D(1669,1,fr,rYe),h.Cd=function(t){nmn(this.a,l(t,340))},I(rr,"SelfLoopPostProcessor/lambda$5$Type",1669),D(1670,1,ti,qZ),h.Mb=function(t){return!!l(t,105).i},I(rr,"SelfLoopPostProcessor/lambda$6$Type",1670),D(1671,1,fr,sYe),h.Cd=function(t){nun(this.a,l(t,105))},I(rr,"SelfLoopPostProcessor/lambda$7$Type",1671),D(1653,1,ts,Tj),h.Kf=function(t,n){xTn(l(t,36),n)},I(rr,"SelfLoopPreProcessor",1653),D(1654,1,{},Cj),h.Kb=function(t){return new bn(null,new kn(l(t,105).f,1))},I(rr,"SelfLoopPreProcessor/lambda$0$Type",1654),D(1655,1,{},Sj),h.Kb=function(t){return l(t,340).a},I(rr,"SelfLoopPreProcessor/lambda$1$Type",1655),D(1656,1,fr,HZ),h.Cd=function(t){shn(l(t,18))},I(rr,"SelfLoopPreProcessor/lambda$2$Type",1656),D(1672,1,ts,Vrt),h.Kf=function(t,n){u9n(this,l(t,36),n)},I(rr,"SelfLoopRouter",1672),D(1673,1,{},VZ),h.Kb=function(t){return new bn(null,new kn(l(t,30).a,16))},I(rr,"SelfLoopRouter/lambda$0$Type",1673),D(1674,1,ti,Y9),h.Mb=function(t){return l(t,10).k==(Zn(),Ps)},I(rr,"SelfLoopRouter/lambda$1$Type",1674),D(1675,1,ti,r8),h.Mb=function(t){return ns(l(t,10),(ft(),h3))},I(rr,"SelfLoopRouter/lambda$2$Type",1675),D(1676,1,{},mS),h.Kb=function(t){return l(Q(l(t,10),(ft(),h3)),337)},I(rr,"SelfLoopRouter/lambda$3$Type",1676),D(1677,1,fr,Aet),h.Cd=function(t){ppn(this.a,this.b,l(t,337))},I(rr,"SelfLoopRouter/lambda$4$Type",1677),D(1678,1,ts,UZ),h.Kf=function(t,n){jCn(l(t,36),n)},I(rr,"SemiInteractiveCrossMinProcessor",1678),D(1679,1,ti,hI),h.Mb=function(t){return l(t,10).k==(Zn(),Ps)},I(rr,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1679),D(1680,1,ti,vS),h.Mb=function(t){return ost(l(t,10))._b((Nt(),w4))},I(rr,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1680),D(1681,1,ii,fI),h.Ne=function(t,n){return n3n(l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(rr,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1681),D(1682,1,{},_j),h.Ve=function(t,n){return kpn(l(t,10),l(n,10))},I(rr,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1682),D(1684,1,ts,Aj),h.Kf=function(t,n){uLn(l(t,36),n)},I(rr,"SortByInputModelProcessor",1684),D(1685,1,ti,GZ),h.Mb=function(t){return l(t,12).g.c.length!=0},I(rr,"SortByInputModelProcessor/lambda$0$Type",1685),D(1686,1,fr,uYe),h.Cd=function(t){G9n(this.a,l(t,12))},I(rr,"SortByInputModelProcessor/lambda$1$Type",1686),D(1759,817,{},mft),h.df=function(t){var n,r,a,o;switch(this.c=t,this.a.g){case 2:n=new bt,Is(Fi(new bn(null,new kn(this.c.a.b,16)),new ree),new Fet(this,n)),ZN(this,new WZ),Vu(n,new Lj),n.c.length=0,Is(Fi(new bn(null,new kn(this.c.a.b,16)),new Mj),new hYe(n)),ZN(this,new YZ),Vu(n,new XZ),n.c.length=0,r=vnt(uce(xy(new bn(null,new kn(this.c.a.b,16)),new fYe(this))),new QZ),Is(new bn(null,new kn(this.c.a.a,16)),new Det(r,n)),ZN(this,new ZZ),Vu(n,new Dj),n.c.length=0;break;case 3:a=new bt,ZN(this,new KZ),o=vnt(uce(xy(new bn(null,new kn(this.c.a.b,16)),new lYe(this))),new JZ),Is(Fi(new bn(null,new kn(this.c.a.b,16)),new eee),new Oet(o,a)),ZN(this,new tee),Vu(a,new nee),a.c.length=0;break;default:throw ue(new NQe)}},h.b=0,I(aa,"EdgeAwareScanlineConstraintCalculation",1759),D(1760,1,Ld,KZ),h.Lb=function(t){return De(l(t,60).g,154)},h.Fb=function(t){return this===t},h.Mb=function(t){return De(l(t,60).g,154)},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1760),D(1761,1,{},lYe),h.Ye=function(t){return Lkn(this.a,l(t,60))},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1761),D(1769,1,QU,Let),h.de=function(){FA(this.a,this.b,-1)},h.b=0,I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1769),D(1771,1,Ld,WZ),h.Lb=function(t){return De(l(t,60).g,154)},h.Fb=function(t){return this===t},h.Mb=function(t){return De(l(t,60).g,154)},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1771),D(1772,1,fr,Lj),h.Cd=function(t){l(t,380).de()},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1772),D(1773,1,ti,Mj),h.Mb=function(t){return De(l(t,60).g,10)},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1773),D(1775,1,fr,hYe),h.Cd=function(t){Y4n(this.a,l(t,60))},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1775),D(1774,1,QU,Net),h.de=function(){FA(this.b,this.a,-1)},h.a=0,I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1774),D(1776,1,Ld,YZ),h.Lb=function(t){return De(l(t,60).g,10)},h.Fb=function(t){return this===t},h.Mb=function(t){return De(l(t,60).g,10)},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1776),D(1777,1,fr,XZ),h.Cd=function(t){l(t,380).de()},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1777),D(1778,1,{},fYe),h.Ye=function(t){return Mkn(this.a,l(t,60))},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1778),D(1779,1,{},QZ),h.We=function(){return 0},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1779),D(1762,1,{},JZ),h.We=function(){return 0},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1762),D(1781,1,fr,Det),h.Cd=function(t){egn(this.a,this.b,l(t,316))},h.a=0,I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1781),D(1780,1,QU,Iet),h.de=function(){I2t(this.a,this.b,-1)},h.b=0,I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1780),D(1782,1,Ld,ZZ),h.Lb=function(t){return l(t,60),!0},h.Fb=function(t){return this===t},h.Mb=function(t){return l(t,60),!0},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1782),D(1783,1,fr,Dj),h.Cd=function(t){l(t,380).de()},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1783),D(1763,1,ti,eee),h.Mb=function(t){return De(l(t,60).g,10)},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1763),D(1765,1,fr,Oet),h.Cd=function(t){tgn(this.a,this.b,l(t,60))},h.a=0,I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1765),D(1764,1,QU,Pet),h.de=function(){FA(this.b,this.a,-1)},h.a=0,I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1764),D(1766,1,Ld,tee),h.Lb=function(t){return l(t,60),!0},h.Fb=function(t){return this===t},h.Mb=function(t){return l(t,60),!0},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1766),D(1767,1,fr,nee),h.Cd=function(t){l(t,380).de()},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1767),D(1768,1,ti,ree),h.Mb=function(t){return De(l(t,60).g,154)},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1768),D(1770,1,fr,Fet),h.Cd=function(t){wwn(this.a,this.b,l(t,60))},I(aa,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1770),D(1586,1,ts,nrt),h.Kf=function(t,n){FLn(this,l(t,36),n)};var Q8t;I(aa,"HorizontalGraphCompactor",1586),D(1587,1,{},dYe),h.ff=function(t,n){var r,a,o;return q6e(t,n)||(r=G5(t),a=G5(n),r&&r.k==(Zn(),Us)||a&&a.k==(Zn(),Us))?0:(o=l(Q(this.a.a,(ft(),$6)),312),zhn(o,r?r.k:(Zn(),Aa),a?a.k:(Zn(),Aa)))},h.gf=function(t,n){var r,a,o;return q6e(t,n)?1:(r=G5(t),a=G5(n),o=l(Q(this.a.a,(ft(),$6)),312),Oye(o,r?r.k:(Zn(),Aa),a?a.k:(Zn(),Aa)))},I(aa,"HorizontalGraphCompactor/1",1587),D(1588,1,{},Ij),h.ef=function(t,n){return p_(),t.a.i==0},I(aa,"HorizontalGraphCompactor/lambda$0$Type",1588),D(1589,1,{},gYe),h.ef=function(t,n){return Cpn(this.a,t,n)},I(aa,"HorizontalGraphCompactor/lambda$1$Type",1589),D(1730,1,{},Glt);var J8t,Z8t;I(aa,"LGraphToCGraphTransformer",1730),D(1738,1,ti,wS),h.Mb=function(t){return t!=null},I(aa,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1738),D(1731,1,{},iee),h.Kb=function(t){return u0(),xc(Q(l(l(t,60).g,10),(ft(),zi)))},I(aa,"LGraphToCGraphTransformer/lambda$0$Type",1731),D(1732,1,{},see),h.Kb=function(t){return u0(),r1t(l(l(t,60).g,154))},I(aa,"LGraphToCGraphTransformer/lambda$1$Type",1732),D(1741,1,ti,Oj),h.Mb=function(t){return u0(),De(l(t,60).g,10)},I(aa,"LGraphToCGraphTransformer/lambda$10$Type",1741),D(1742,1,fr,aee),h.Cd=function(t){Mpn(l(t,60))},I(aa,"LGraphToCGraphTransformer/lambda$11$Type",1742),D(1743,1,ti,oee),h.Mb=function(t){return u0(),De(l(t,60).g,154)},I(aa,"LGraphToCGraphTransformer/lambda$12$Type",1743),D(1747,1,fr,cee),h.Cd=function(t){o4n(l(t,60))},I(aa,"LGraphToCGraphTransformer/lambda$13$Type",1747),D(1744,1,fr,pYe),h.Cd=function(t){Nln(this.a,l(t,8))},h.a=0,I(aa,"LGraphToCGraphTransformer/lambda$14$Type",1744),D(1745,1,fr,bYe),h.Cd=function(t){Bln(this.a,l(t,116))},h.a=0,I(aa,"LGraphToCGraphTransformer/lambda$15$Type",1745),D(1746,1,fr,mYe),h.Cd=function(t){Pln(this.a,l(t,8))},h.a=0,I(aa,"LGraphToCGraphTransformer/lambda$16$Type",1746),D(1748,1,{},uee),h.Kb=function(t){return u0(),new bn(null,new vw(new hr(dr(qs(l(t,10)).a.Kc(),new j))))},I(aa,"LGraphToCGraphTransformer/lambda$17$Type",1748),D(1749,1,ti,lee),h.Mb=function(t){return u0(),Do(l(t,18))},I(aa,"LGraphToCGraphTransformer/lambda$18$Type",1749),D(1750,1,fr,vYe),h.Cd=function(t){Qvn(this.a,l(t,18))},I(aa,"LGraphToCGraphTransformer/lambda$19$Type",1750),D(1734,1,fr,wYe),h.Cd=function(t){Tbn(this.a,l(t,154))},I(aa,"LGraphToCGraphTransformer/lambda$2$Type",1734),D(1751,1,{},hee),h.Kb=function(t){return u0(),new bn(null,new kn(l(t,30).a,16))},I(aa,"LGraphToCGraphTransformer/lambda$20$Type",1751),D(1752,1,{},Nj),h.Kb=function(t){return u0(),new bn(null,new vw(new hr(dr(qs(l(t,10)).a.Kc(),new j))))},I(aa,"LGraphToCGraphTransformer/lambda$21$Type",1752),D(1753,1,{},fee),h.Kb=function(t){return u0(),l(Q(l(t,18),(ft(),fv)),15)},I(aa,"LGraphToCGraphTransformer/lambda$22$Type",1753),D(1754,1,ti,Pj),h.Mb=function(t){return qhn(l(t,15))},I(aa,"LGraphToCGraphTransformer/lambda$23$Type",1754),D(1755,1,fr,yYe),h.Cd=function(t){vkn(this.a,l(t,15))},I(aa,"LGraphToCGraphTransformer/lambda$24$Type",1755),D(1733,1,fr,Ret),h.Cd=function(t){xmn(this.a,this.b,l(t,154))},I(aa,"LGraphToCGraphTransformer/lambda$3$Type",1733),D(1735,1,{},dee),h.Kb=function(t){return u0(),new bn(null,new kn(l(t,30).a,16))},I(aa,"LGraphToCGraphTransformer/lambda$4$Type",1735),D(1736,1,{},gee),h.Kb=function(t){return u0(),new bn(null,new vw(new hr(dr(qs(l(t,10)).a.Kc(),new j))))},I(aa,"LGraphToCGraphTransformer/lambda$5$Type",1736),D(1737,1,{},pee),h.Kb=function(t){return u0(),l(Q(l(t,18),(ft(),fv)),15)},I(aa,"LGraphToCGraphTransformer/lambda$6$Type",1737),D(1739,1,fr,xYe),h.Cd=function(t){Dkn(this.a,l(t,15))},I(aa,"LGraphToCGraphTransformer/lambda$8$Type",1739),D(1740,1,fr,jet),h.Cd=function(t){ahn(this.a,this.b,l(t,154))},I(aa,"LGraphToCGraphTransformer/lambda$9$Type",1740),D(1729,1,{},yS),h.cf=function(t){var n,r,a,o,f;for(this.a=t,this.d=new jie,this.c=We(z_e,Rn,125,this.a.a.a.c.length,0,1),this.b=0,r=new G(this.a.a.a);r.a=te&&(vt(f,pt(L)),Me=b.Math.max(Me,$e[L-1]-B),w+=J,fe+=$e[L-1]-fe,B=$e[L-1],J=E[L]),J=b.Math.max(J,E[L]),++L;w+=J}V=b.Math.min(1/Me,1/n.b/w),V>a&&(a=V,r=f)}return r},h.pg=function(){return!1},I(Od,"MSDCutIndexHeuristic",816),D(1683,1,ts,Fee),h.Kf=function(t,n){RAn(l(t,36),n)},I(Od,"SingleEdgeGraphWrapper",1683),D(232,22,{3:1,34:1,22:1,232:1},E_);var O6,IT,OT,h4,qL,N6,NT=Fr(ou,"CenterEdgeLabelPlacementStrategy",232,Hr,Evn,C0n),hxt;D(431,22,{3:1,34:1,22:1,431:1},N3e);var lLe,S1e,hLe=Fr(ou,"ConstraintCalculationStrategy",431,Hr,Hpn,S0n),fxt;D(322,22,{3:1,34:1,22:1,322:1,188:1,196:1},wse),h.dg=function(){return $pt(this)},h.qg=function(){return $pt(this)};var mB,HL,fLe,dLe=Fr(ou,"CrossingMinimizationStrategy",322,Hr,F2n,_0n),dxt;D(351,22,{3:1,34:1,22:1,351:1},yse);var gLe,_1e,YK,pLe=Fr(ou,"CuttingStrategy",351,Hr,R2n,A0n),gxt;D(348,22,{3:1,34:1,22:1,348:1,188:1,196:1},uO),h.dg=function(){return M2t(this)},h.qg=function(){return M2t(this)};var bLe,A1e,PT,L1e,BT,mLe=Fr(ou,"CycleBreakingStrategy",348,Hr,zmn,L0n),pxt;D(428,22,{3:1,34:1,22:1,428:1},P3e);var XK,vLe,wLe=Fr(ou,"DirectionCongruency",428,Hr,qpn,M0n),bxt;D(460,22,{3:1,34:1,22:1,460:1},xse);var FT,M1e,P6,mxt=Fr(ou,"EdgeConstraint",460,Hr,j2n,F0n),vxt;D(283,22,{3:1,34:1,22:1,283:1},T_);var D1e,I1e,O1e,N1e,QK,P1e,yLe=Fr(ou,"EdgeLabelSideSelection",283,Hr,yvn,R0n),wxt;D(488,22,{3:1,34:1,22:1,488:1},B3e);var JK,xLe,kLe=Fr(ou,"EdgeStraighteningStrategy",488,Hr,Xpn,j0n),yxt;D(281,22,{3:1,34:1,22:1,281:1},C_);var B1e,ELe,TLe,ZK,CLe,SLe,_Le=Fr(ou,"FixedAlignment",281,Hr,xvn,B0n),xxt;D(282,22,{3:1,34:1,22:1,282:1},S_);var ALe,LLe,MLe,DLe,VL,ILe,OLe=Fr(ou,"GraphCompactionStrategy",282,Hr,kvn,D0n),kxt;D(259,22,{3:1,34:1,22:1,259:1},uy);var RT,eW,jT,vf,UL,tW,$T,B6,nW,GL,F1e=Fr(ou,"GraphProperties",259,Hr,a3n,I0n),Ext;D(299,22,{3:1,34:1,22:1,299:1},kse);var vB,R1e,j1e,$1e=Fr(ou,"GreedySwitchType",299,Hr,$2n,O0n),Txt;D(311,22,{3:1,34:1,22:1,311:1},Ese);var Ux,wB,F6,Cxt=Fr(ou,"InLayerConstraint",311,Hr,z2n,N0n),Sxt;D(429,22,{3:1,34:1,22:1,429:1},F3e);var z1e,NLe,PLe=Fr(ou,"InteractiveReferencePoint",429,Hr,zpn,P0n),_xt,BLe,Gx,c3,rW,FLe,RLe,iW,jLe,yB,sW,KL,Kx,pp,q1e,aW,Wc,$Le,jb,Lu,H1e,V1e,xB,hv,u3,Wx,zLe,Yx,kB,f4,o1,$f,U1e,R6,Ki,zi,qLe,HLe,VLe,ULe,GLe,G1e,oW,jl,l3,K1e,Xx,WL,W1,j6,h3,$6,z6,zT,fv,KLe,W1e,Y1e,Qx;D(171,22,{3:1,34:1,22:1,171:1},lO);var YL,$b,XL,d4,EB,WLe=Fr(ou,"LayerConstraint",171,Hr,Hmn,$0n),Axt;D(859,1,Pf,Yre),h.hf=function(t){sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,VEe),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),iMe),(g2(),ps)),wLe),un((r1(),Pn))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,UEe),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(Hn(),!1)),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,fG),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),lMe),ps),PLe),un(Pn)))),Qs(t,fG,zhe,k9t),Qs(t,fG,pL,x9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,GEe),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,KEe),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),!0),ya),Ns),un(Pn)))),sn(t,new Xt(Iun(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,WEe),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),!1),ya),Ns),un(yv)),he(le(zt,1),dt,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,YEe),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),vMe),ps),_De),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,XEe),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),pt(7)),Tc),ro),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,QEe),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,JEe),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,zhe),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),rMe),ps),mLe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,qP),hfe),"Node Layering Strategy"),"Strategy for node layering."),dMe),ps),pDe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ZEe),hfe),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),hMe),ps),WLe),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,eTe),hfe),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),Tc),ro),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,tTe),hfe),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),pt(-1)),Tc),ro),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,qhe),J3t),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),pt(4)),Tc),ro),un(Pn)))),Qs(t,qhe,qP,L9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Hhe),J3t),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),pt(2)),Tc),ro),un(Pn)))),Qs(t,Hhe,qP,D9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Vhe),Z3t),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),fMe),ps),TDe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Uhe),Z3t),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),pt(0)),Tc),ro),un(Pn)))),Qs(t,Uhe,Vhe,null),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Ghe),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),pt(Ii)),Tc),ro),un(Pn)))),Qs(t,Ghe,qP,T9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,pL),gT),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),nMe),ps),dLe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,nTe),gT),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Khe),gT),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),fo),ta),un(Pn)))),Qs(t,Khe,CG,Wxt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Whe),gT),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),!1),ya),Ns),un(Pn)))),Qs(t,Whe,pL,e9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,rTe),gT),"In Layer Predecessor of"),"Allows to set a constraint which specifies of which node the current node is the predecessor. If set to 's' then the node is the predecessor of 's' and is in the same layer"),null),J6),zt),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,iTe),gT),"In Layer Successor of"),"Allows to set a constraint which specifies of which node the current node is the successor. If set to 's' then the node is the successor of 's' and is in the same layer"),null),J6),zt),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,sTe),gT),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),Tc),ro),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,aTe),gT),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),pt(-1)),Tc),ro),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,oTe),eyt),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),pt(40)),Tc),ro),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Yhe),eyt),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),tMe),ps),$1e),un(Pn)))),Qs(t,Yhe,pL,Gxt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,dG),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),eMe),ps),$1e),un(Pn)))),Qs(t,dG,pL,Hxt),Qs(t,dG,CG,Vxt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,k6),tyt),"Node Placement Strategy"),"Strategy for node placement."),mMe),ps),wDe),un(Pn)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,gG),tyt),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),ya),Ns),un(Pn)))),Qs(t,gG,k6,q9t),Qs(t,gG,k6,H9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Xhe),nyt),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),gMe),ps),kLe),un(Pn)))),Qs(t,Xhe,k6,R9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Qhe),nyt),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),pMe),ps),_Le),un(Pn)))),Qs(t,Qhe,k6,$9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Jhe),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),fo),ta),un(Pn)))),Qs(t,Jhe,k6,U9t),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,Zhe),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),ps),mde),un(ha)))),Qs(t,Zhe,k6,Y9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,efe),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),bMe),ps),mde),un(Pn)))),Qs(t,efe,k6,W9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,cTe),ryt),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),oMe),ps),MDe),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,uTe),ryt),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),cMe),ps),DDe),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,pG),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),uMe),ps),ODe),un(Pn)))),Qs(t,pG,HP,h9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,bG),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),fo),ta),un(Pn)))),Qs(t,bG,HP,d9t),Qs(t,bG,pG,g9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,tfe),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),fo),ta),un(Pn)))),Qs(t,tfe,HP,o9t),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,lTe),U1),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,hTe),U1),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,fTe),U1),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,dTe),U1),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,gTe),TTe),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),pt(0)),Tc),ro),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,pTe),TTe),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),pt(0)),Tc),ro),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,bTe),TTe),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),pt(0)),Tc),ro),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,nfe),CTe),w3t),"Tries to further compact components (disconnected sub-graphs)."),!1),ya),Ns),un(Pn)))),Qs(t,nfe,lL,!0),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,mTe),iyt),"Post Compaction Strategy"),syt),XLe),ps),OLe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,vTe),iyt),"Post Compaction Constraint Calculation"),syt),YLe),ps),hLe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,mG),STe),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,rfe),STe),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),pt(16)),Tc),ro),un(Pn)))),Qs(t,rfe,mG,!0),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ife),STe),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),pt(5)),Tc),ro),un(Pn)))),Qs(t,ife,mG,!0),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,fp),_Te),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),xMe),ps),FDe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,vG),_Te),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),fo),ta),un(Pn)))),Qs(t,vG,fp,ckt),Qs(t,vG,fp,ukt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,wG),_Te),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),fo),ta),un(Pn)))),Qs(t,wG,fp,hkt),Qs(t,wG,fp,fkt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,bL),ayt),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),yMe),ps),pLe),un(Pn)))),Qs(t,bL,fp,vkt),Qs(t,bL,fp,wkt),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,sfe),ayt),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),X1),mf),un(Pn)))),Qs(t,sfe,bL,gkt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,afe),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),wMe),Tc),ro),un(Pn)))),Qs(t,afe,bL,bkt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,yG),oyt),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),kMe),ps),BDe),un(Pn)))),Qs(t,yG,fp,Dkt),Qs(t,yG,fp,Ikt),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,xG),oyt),"Valid Indices for Wrapping"),null),X1),mf),un(Pn)))),Qs(t,xG,fp,Akt),Qs(t,xG,fp,Lkt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,kG),ATe),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),!0),ya),Ns),un(Pn)))),Qs(t,kG,fp,Ekt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,EG),ATe),"Distance Penalty When Improving Cuts"),null),2),fo),ta),un(Pn)))),Qs(t,EG,fp,xkt),Qs(t,EG,kG,!0),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ofe),ATe),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),!0),ya),Ns),un(Pn)))),Qs(t,ofe,fp,Ckt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,wTe),ffe),"Edge Label Side Selection"),"Method to decide on edge label sides."),aMe),ps),yLe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,yTe),ffe),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),sMe),ps),NT),rs(Pn,he(le(xg,1),it,170,0,[S2]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,TG),mL),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),ZLe),ps),SDe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,xTe),mL),"Consider Port Order"),"If disabled the port order of output ports is derived from the edge order and input ports are ordered by their incoming connections. If enabled all ports are ordered by the port model order."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,kTe),mL),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),ya),Ns),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,cfe),mL),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),QLe),ps),mAe),un(Pn)))),Qs(t,cfe,lL,null),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ETe),mL),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),JLe),ps),mDe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ufe),mL),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),fo),ta),un(Pn)))),Qs(t,ufe,TG,null),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,lfe),mL),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),fo),ta),un(Pn)))),Qs(t,lfe,TG,null),Twt((new Xre,t))};var Lxt,Mxt,Dxt,YLe,Ixt,XLe,Oxt,QLe,Nxt,Pxt,Bxt,JLe,Fxt,Rxt,jxt,ZLe,$xt,zxt,qxt,eMe,Hxt,Vxt,Uxt,tMe,Gxt,Kxt,Wxt,Yxt,Xxt,Qxt,Jxt,Zxt,e9t,t9t,nMe,n9t,rMe,r9t,iMe,i9t,sMe,s9t,aMe,a9t,o9t,c9t,oMe,u9t,cMe,l9t,uMe,h9t,f9t,d9t,g9t,p9t,b9t,m9t,v9t,w9t,y9t,lMe,x9t,k9t,E9t,T9t,C9t,S9t,hMe,_9t,A9t,L9t,M9t,D9t,I9t,O9t,fMe,N9t,dMe,P9t,B9t,F9t,gMe,R9t,j9t,pMe,$9t,z9t,q9t,H9t,V9t,U9t,G9t,K9t,bMe,W9t,Y9t,X9t,mMe,Q9t,vMe,J9t,Z9t,ekt,tkt,nkt,rkt,ikt,skt,akt,okt,ckt,ukt,lkt,hkt,fkt,dkt,gkt,pkt,wMe,bkt,mkt,yMe,vkt,wkt,ykt,xkt,kkt,Ekt,Tkt,Ckt,Skt,xMe,_kt,Akt,Lkt,Mkt,kMe,Dkt,Ikt;I(ou,"LayeredMetaDataProvider",859),D(998,1,Pf,Xre),h.hf=function(t){Twt(t)};var Rd,X1e,cW,QL,uW,EMe,lW,g4,hW,TMe,CMe,fW,Q1e,yg,J1e,f3,SMe,TB,Z1e,_Me,Okt,Nkt,Pkt,dW,ede,JL,dv,Bkt,Rh,AMe,LMe,gW,tde,jd,pW,bp,MMe,DMe,IMe,nde,rde,OMe,x2,ide,NMe,p4,PMe,BMe,FMe,bW,b4,gv,RMe,jMe,cc,$Me,Fkt,Qu,mW,zMe,qMe,HMe,zb,pv,vW,VMe,UMe,wW,d3,GMe,sde,ZL,KMe,g3,eM,yW,bv,ade,qT,xW,mv,WMe,YMe,XMe,HT,QMe,Rkt,jkt,$kt,zkt,p3,m4,Ms,k2,qkt,v4,JMe,VT,ZMe,w4,Hkt,UT,eDe,Jx,Vkt,Ukt,CB,ode,tDe,SB,x0,q6,H6,b3,vv,kW,y4,cde,GT,KT,m3,V6,ude,_B,tM,nM,Gkt,Kkt,Wkt,nDe,Ykt,lde,rDe,iDe,sDe,aDe,hde,oDe,cDe,uDe,lDe,fde,EW;I(ou,"LayeredOptions",998),D(999,1,{},Ree),h.sf=function(){var t;return t=new qQe,t},h.tf=function(t){},I(ou,"LayeredOptions/LayeredFactory",999),D(1391,1,{}),h.a=0;var Xkt;I(Uc,"ElkSpacings/AbstractSpacingsBuilder",1391),D(792,1391,{},D8e);var TW,Qkt;I(ou,"LayeredSpacings/LayeredSpacingsBuilder",792),D(265,22,{3:1,34:1,22:1,265:1,188:1,196:1},M5),h.dg=function(){return jbt(this)},h.qg=function(){return jbt(this)};var WT,dde,YT,hDe,fDe,dDe,CW,gde,gDe,pDe=Fr(ou,"LayeringStrategy",265,Hr,Bwn,z0n),Jkt;D(390,22,{3:1,34:1,22:1,390:1},Tse);var pde,bDe,SW,mDe=Fr(ou,"LongEdgeOrderingStrategy",390,Hr,q2n,q0n),Zkt;D(203,22,{3:1,34:1,22:1,203:1},bq);var U6,G6,_W,bde,mde=Fr(ou,"NodeFlexibility",203,Hr,Qbn,H0n),eEt;D(323,22,{3:1,34:1,22:1,323:1,188:1,196:1},hO),h.dg=function(){return L2t(this)},h.qg=function(){return L2t(this)};var rM,vde,wde,iM,vDe,wDe=Fr(ou,"NodePlacementStrategy",323,Hr,qmn,V0n),tEt;D(243,22,{3:1,34:1,22:1,243:1},ly);var yDe,v3,x4,AB,xDe,kDe,LB,EDe,AW,LW,TDe=Fr(ou,"NodePromotionStrategy",243,Hr,o3n,U0n),nEt;D(284,22,{3:1,34:1,22:1,284:1},mq);var CDe,E2,yde,xde,SDe=Fr(ou,"OrderingStrategy",284,Hr,Jbn,G0n),rEt;D(430,22,{3:1,34:1,22:1,430:1},R3e);var kde,Ede,_De=Fr(ou,"PortSortingStrategy",430,Hr,Vpn,K0n),iEt;D(463,22,{3:1,34:1,22:1,463:1},Cse);var $l,zu,sM,sEt=Fr(ou,"PortType",463,Hr,H2n,W0n),aEt;D(387,22,{3:1,34:1,22:1,387:1},Sse);var ADe,Tde,LDe,MDe=Fr(ou,"SelfLoopDistributionStrategy",387,Hr,V2n,Y0n),oEt;D(349,22,{3:1,34:1,22:1,349:1},_se);var Cde,MB,Sde,DDe=Fr(ou,"SelfLoopOrderingStrategy",349,Hr,U2n,X0n),cEt;D(312,1,{312:1},xvt),I(ou,"Spacings",312),D(350,22,{3:1,34:1,22:1,350:1},Ase);var _de,IDe,aM,ODe=Fr(ou,"SplineRoutingMode",350,Hr,G2n,Q0n),uEt;D(352,22,{3:1,34:1,22:1,352:1},Lse);var Ade,NDe,PDe,BDe=Fr(ou,"ValidifyStrategy",352,Hr,K2n,J0n),lEt;D(388,22,{3:1,34:1,22:1,388:1},Mse);var k4,Lde,XT,FDe=Fr(ou,"WrappingStrategy",388,Hr,W2n,Z0n),hEt;D(1398,1,Uo,Ure),h.rg=function(t){return l(t,36),fEt},h.Kf=function(t,n){ILn(this,l(t,36),n)};var fEt;I(LG,"DepthFirstCycleBreaker",1398),D(793,1,Uo,Q4e),h.rg=function(t){return l(t,36),dEt},h.Kf=function(t,n){PIn(this,l(t,36),n)},h.sg=function(t){return l(jt(t,aU(this.d,t.c.length)),10)};var dEt;I(LG,"GreedyCycleBreaker",793),D(1401,793,Uo,$tt),h.sg=function(t){var n,r,a,o;for(o=null,n=Ii,a=new G(t);a.a1&&(Rt(Bt(Q(eo((Sn(0,t.c.length),l(t.c[0],10))),(Nt(),f3))))?q2t(t,this.d,l(this,669)):(Cn(),Vs(t,this.d)),Hft(this.e,t))},h.lg=function(t,n,r,a){var o,f,g,w,E,C,L;for(n!=ast(r,t.length)&&(f=t[n-(r?1:-1)],S6e(this.f,f,r?(qo(),zu):(qo(),$l))),o=t[n][0],L=!a||o.k==(Zn(),Us),C=O1(t[n]),this.vg(C,L,!1,r),g=0,E=new G(C);E.a"),t0?loe(this.a,t[n-1],t[n]):!r&&n1&&(Rt(Bt(Q(eo((Sn(0,t.c.length),l(t.c[0],10))),(Nt(),f3))))?q2t(t,this.d,this):(Cn(),Vs(t,this.d)),Rt(Bt(Q(eo((Sn(0,t.c.length),l(t.c[0],10))),f3)))||Hft(this.e,t))},I(Cl,"ModelOrderBarycenterHeuristic",669),D(1866,1,ii,zYe),h.Ne=function(t,n){return D9n(this.a,l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Cl,"ModelOrderBarycenterHeuristic/lambda$0$Type",1866),D(1423,1,Uo,Jre),h.rg=function(t){var n;return l(t,36),n=Oq(LEt),fi(n,(uo(),bu),(vo(),RK)),n},h.Kf=function(t,n){gpn((l(t,36),n))};var LEt;I(Cl,"NoCrossingMinimizer",1423),D(809,413,uCe,o3e),h.tg=function(t,n,r){var a,o,f,g,w,E,C,L,B,z,V;switch(B=this.g,r.g){case 1:{for(o=0,f=0,L=new G(t.j);L.a1&&(o.j==(Ct(),ar)?this.b[t]=!0:o.j==er&&t>0&&(this.b[t-1]=!0))},h.f=0,I(bg,"AllCrossingsCounter",1861),D(595,1,{},TV),h.b=0,h.d=0,I(bg,"BinaryIndexedTree",595),D(532,1,{},IO);var $De,DW;I(bg,"CrossingsCounter",532),D(1950,1,ii,qYe),h.Ne=function(t,n){return $dn(this.a,l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(bg,"CrossingsCounter/lambda$0$Type",1950),D(1951,1,ii,HYe),h.Ne=function(t,n){return zdn(this.a,l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(bg,"CrossingsCounter/lambda$1$Type",1951),D(1952,1,ii,VYe),h.Ne=function(t,n){return qdn(this.a,l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(bg,"CrossingsCounter/lambda$2$Type",1952),D(1953,1,ii,UYe),h.Ne=function(t,n){return Hdn(this.a,l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(bg,"CrossingsCounter/lambda$3$Type",1953),D(1954,1,fr,GYe),h.Cd=function(t){Hvn(this.a,l(t,12))},I(bg,"CrossingsCounter/lambda$4$Type",1954),D(1955,1,ti,KYe),h.Mb=function(t){return gln(this.a,l(t,12))},I(bg,"CrossingsCounter/lambda$5$Type",1955),D(1956,1,fr,WYe),h.Cd=function(t){Dtt(this,t)},I(bg,"CrossingsCounter/lambda$6$Type",1956),D(1957,1,fr,qet),h.Cd=function(t){var n;jk(),gb(this.b,(n=this.a,l(t,12),n))},I(bg,"CrossingsCounter/lambda$7$Type",1957),D(839,1,Ld,Xj),h.Lb=function(t){return jk(),ns(l(t,12),(ft(),jl))},h.Fb=function(t){return this===t},h.Mb=function(t){return jk(),ns(l(t,12),(ft(),jl))},I(bg,"CrossingsCounter/lambda$8$Type",839),D(1949,1,{},YYe),I(bg,"HyperedgeCrossingsCounter",1949),D(478,1,{34:1,478:1},Urt),h.Fd=function(t){return q5n(this,l(t,478))},h.b=0,h.c=0,h.e=0,h.f=0;var kOn=I(bg,"HyperedgeCrossingsCounter/Hyperedge",478);D(374,1,{34:1,374:1},CH),h.Fd=function(t){return nTn(this,l(t,374))},h.b=0,h.c=0;var MEt=I(bg,"HyperedgeCrossingsCounter/HyperedgeCorner",374);D(531,22,{3:1,34:1,22:1,531:1},j3e);var cM,uM,DEt=Fr(bg,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",531,Hr,Upn,t1n),IEt;D(1425,1,Uo,Zre),h.rg=function(t){return l(Q(l(t,36),(ft(),Lu)),21).Hc((Ho(),vf))?OEt:null},h.Kf=function(t,n){d8n(this,l(t,36),n)};var OEt;I(Go,"InteractiveNodePlacer",1425),D(1426,1,Uo,eie),h.rg=function(t){return l(Q(l(t,36),(ft(),Lu)),21).Hc((Ho(),vf))?NEt:null},h.Kf=function(t,n){Q6n(this,l(t,36),n)};var NEt,IW,OW;I(Go,"LinearSegmentsNodePlacer",1426),D(261,1,{34:1,261:1},Pwe),h.Fd=function(t){return Sun(this,l(t,261))},h.Fb=function(t){var n;return De(t,261)?(n=l(t,261),this.b==n.b):!1},h.Hb=function(){return this.b},h.Ib=function(){return"ls"+Tb(this.e)},h.a=0,h.b=0,h.c=-1,h.d=-1,h.g=0;var PEt=I(Go,"LinearSegmentsNodePlacer/LinearSegment",261);D(1428,1,Uo,bst),h.rg=function(t){return l(Q(l(t,36),(ft(),Lu)),21).Hc((Ho(),vf))?BEt:null},h.Kf=function(t,n){SIn(this,l(t,36),n)},h.b=0,h.g=0;var BEt;I(Go,"NetworkSimplexPlacer",1428),D(1447,1,ii,Gee),h.Ne=function(t,n){return ru(l(t,17).a,l(n,17).a)},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Go,"NetworkSimplexPlacer/0methodref$compare$Type",1447),D(1449,1,ii,Kee),h.Ne=function(t,n){return ru(l(t,17).a,l(n,17).a)},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Go,"NetworkSimplexPlacer/1methodref$compare$Type",1449),D(655,1,{655:1},Het);var EOn=I(Go,"NetworkSimplexPlacer/EdgeRep",655);D(412,1,{412:1},D5e),h.b=!1;var TOn=I(Go,"NetworkSimplexPlacer/NodeRep",412);D(515,13,{3:1,4:1,20:1,31:1,56:1,13:1,16:1,15:1,59:1,515:1},QQe),I(Go,"NetworkSimplexPlacer/Path",515),D(1429,1,{},Wee),h.Kb=function(t){return l(t,18).d.i.k},I(Go,"NetworkSimplexPlacer/Path/lambda$0$Type",1429),D(1430,1,ti,Yee),h.Mb=function(t){return l(t,273)==(Zn(),Aa)},I(Go,"NetworkSimplexPlacer/Path/lambda$1$Type",1430),D(1431,1,{},Xee),h.Kb=function(t){return l(t,18).d.i},I(Go,"NetworkSimplexPlacer/Path/lambda$2$Type",1431),D(1432,1,ti,XYe),h.Mb=function(t){return Lrt(I1t(l(t,10)))},I(Go,"NetworkSimplexPlacer/Path/lambda$3$Type",1432),D(1433,1,ti,Qee),h.Mb=function(t){return Tdn(l(t,12))},I(Go,"NetworkSimplexPlacer/lambda$0$Type",1433),D(1434,1,fr,Vet),h.Cd=function(t){shn(this.a,this.b,l(t,12))},I(Go,"NetworkSimplexPlacer/lambda$1$Type",1434),D(1443,1,fr,QYe),h.Cd=function(t){Dkn(this.a,l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$10$Type",1443),D(1444,1,{},Jee),h.Kb=function(t){return Sh(),new bn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$11$Type",1444),D(1445,1,fr,JYe),h.Cd=function(t){CSn(this.a,l(t,10))},I(Go,"NetworkSimplexPlacer/lambda$12$Type",1445),D(1446,1,{},Zee),h.Kb=function(t){return Sh(),pt(l(t,125).e)},I(Go,"NetworkSimplexPlacer/lambda$13$Type",1446),D(1448,1,{},ete),h.Kb=function(t){return Sh(),pt(l(t,125).e)},I(Go,"NetworkSimplexPlacer/lambda$15$Type",1448),D(1450,1,ti,tte),h.Mb=function(t){return Sh(),l(t,412).c.k==(Zn(),Ps)},I(Go,"NetworkSimplexPlacer/lambda$17$Type",1450),D(1451,1,ti,nte),h.Mb=function(t){return Sh(),l(t,412).c.j.c.length>1},I(Go,"NetworkSimplexPlacer/lambda$18$Type",1451),D(1452,1,fr,Tat),h.Cd=function(t){l5n(this.c,this.b,this.d,this.a,l(t,412))},h.c=0,h.d=0,I(Go,"NetworkSimplexPlacer/lambda$19$Type",1452),D(1435,1,{},rte),h.Kb=function(t){return Sh(),new bn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$2$Type",1435),D(1453,1,fr,ZYe),h.Cd=function(t){ohn(this.a,l(t,12))},h.a=0,I(Go,"NetworkSimplexPlacer/lambda$20$Type",1453),D(1454,1,{},ite),h.Kb=function(t){return Sh(),new bn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$21$Type",1454),D(1455,1,fr,eXe),h.Cd=function(t){whn(this.a,l(t,10))},I(Go,"NetworkSimplexPlacer/lambda$22$Type",1455),D(1456,1,ti,ste),h.Mb=function(t){return Lrt(t)},I(Go,"NetworkSimplexPlacer/lambda$23$Type",1456),D(1457,1,{},ate),h.Kb=function(t){return Sh(),new bn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$24$Type",1457),D(1458,1,ti,tXe),h.Mb=function(t){return Aln(this.a,l(t,10))},I(Go,"NetworkSimplexPlacer/lambda$25$Type",1458),D(1459,1,fr,Uet),h.Cd=function(t){P9n(this.a,this.b,l(t,10))},I(Go,"NetworkSimplexPlacer/lambda$26$Type",1459),D(1460,1,ti,s8),h.Mb=function(t){return Sh(),!Do(l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$27$Type",1460),D(1461,1,ti,Qj),h.Mb=function(t){return Sh(),!Do(l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$28$Type",1461),D(1462,1,{},nXe),h.Ve=function(t,n){return ahn(this.a,l(t,30),l(n,30))},I(Go,"NetworkSimplexPlacer/lambda$29$Type",1462),D(1436,1,{},ote),h.Kb=function(t){return Sh(),new bn(null,new vw(new hr(dr(qs(l(t,10)).a.Kc(),new j))))},I(Go,"NetworkSimplexPlacer/lambda$3$Type",1436),D(1437,1,ti,cte),h.Mb=function(t){return Sh(),Bbn(l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$4$Type",1437),D(1438,1,fr,rXe),h.Cd=function(t){NAn(this.a,l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$5$Type",1438),D(1439,1,{},ute),h.Kb=function(t){return Sh(),new bn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$6$Type",1439),D(1440,1,ti,Jj),h.Mb=function(t){return Sh(),l(t,10).k==(Zn(),Ps)},I(Go,"NetworkSimplexPlacer/lambda$7$Type",1440),D(1441,1,{},lte),h.Kb=function(t){return Sh(),new bn(null,new vw(new hr(dr(sp(l(t,10)).a.Kc(),new j))))},I(Go,"NetworkSimplexPlacer/lambda$8$Type",1441),D(1442,1,ti,TS),h.Mb=function(t){return Sh(),Edn(l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$9$Type",1442),D(1424,1,Uo,tie),h.rg=function(t){return l(Q(l(t,36),(ft(),Lu)),21).Hc((Ho(),vf))?FEt:null},h.Kf=function(t,n){gLn(l(t,36),n)};var FEt;I(Go,"SimpleNodePlacer",1424),D(185,1,{185:1},f6),h.Ib=function(){var t;return t="",this.c==(xd(),w3)?t+=Dx:this.c==T2&&(t+=Mx),this.o==(D1(),wv)?t+=whe:this.o==Y1?t+="UP":t+="BALANCED",t},I(Ib,"BKAlignedLayout",185),D(523,22,{3:1,34:1,22:1,523:1},$3e);var T2,w3,REt=Fr(Ib,"BKAlignedLayout/HDirection",523,Hr,Kpn,n1n),jEt;D(522,22,{3:1,34:1,22:1,522:1},z3e);var wv,Y1,$Et=Fr(Ib,"BKAlignedLayout/VDirection",522,Hr,Wpn,r1n),zEt;D(1699,1,{},Get),I(Ib,"BKAligner",1699),D(1702,1,{},rgt),I(Ib,"BKCompactor",1702),D(663,1,{663:1},hte),h.a=0,I(Ib,"BKCompactor/ClassEdge",663),D(467,1,{467:1},WQe),h.a=null,h.b=0,I(Ib,"BKCompactor/ClassNode",467),D(1427,1,Uo,Xet),h.rg=function(t){return l(Q(l(t,36),(ft(),Lu)),21).Hc((Ho(),vf))?qEt:null},h.Kf=function(t,n){VIn(this,l(t,36),n)},h.d=!1;var qEt;I(Ib,"BKNodePlacer",1427),D(1700,1,{},fte),h.d=0,I(Ib,"NeighborhoodInformation",1700),D(1701,1,ii,iXe),h.Ne=function(t,n){return vwn(this,l(t,42),l(n,42))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Ib,"NeighborhoodInformation/NeighborComparator",1701),D(823,1,{}),I(Ib,"ThresholdStrategy",823),D(1825,823,{},YQe),h.wg=function(t,n,r){return this.a.o==(D1(),Y1)?gs:ia},h.xg=function(){},I(Ib,"ThresholdStrategy/NullThresholdStrategy",1825),D(587,1,{587:1},Qet),h.c=!1,h.d=!1,I(Ib,"ThresholdStrategy/Postprocessable",587),D(1826,823,{},XQe),h.wg=function(t,n,r){var a,o,f;return o=n==r,a=this.a.a[r.p]==n,o||a?(f=t,this.a.c==(xd(),w3)?(o&&(f=vle(this,n,!0)),!isNaN(f)&&!isFinite(f)&&a&&(f=vle(this,r,!1))):(o&&(f=vle(this,n,!0)),!isNaN(f)&&!isFinite(f)&&a&&(f=vle(this,r,!1))),f):t},h.xg=function(){for(var t,n,r,a,o;this.d.b!=0;)o=l(u2n(this.d),587),a=Lmt(this,o),a.a&&(t=a.a,r=Rt(this.a.f[this.a.g[o.b.p].p]),!(!r&&!Do(t)&&t.c.i.c==t.d.i.c)&&(n=N2t(this,o),n||Dln(this.e,o)));for(;this.e.a.c.length!=0;)N2t(this,l(P0t(this.e),587))},I(Ib,"ThresholdStrategy/SimpleThresholdStrategy",1826),D(645,1,{645:1,188:1,196:1},dte),h.dg=function(){return Vft(this)},h.qg=function(){return Vft(this)};var Mde;I(mfe,"EdgeRouterFactory",645),D(1485,1,Uo,nie),h.rg=function(t){return tSn(l(t,36))},h.Kf=function(t,n){xLn(l(t,36),n)};var HEt,VEt,UEt,GEt,KEt,zDe,WEt,YEt;I(mfe,"OrthogonalEdgeRouter",1485),D(1478,1,Uo,Yet),h.rg=function(t){return E8n(l(t,36))},h.Kf=function(t,n){VDn(this,l(t,36),n)};var XEt,QEt,JEt,ZEt,IB,eTt;I(mfe,"PolylineEdgeRouter",1478),D(1479,1,Ld,pte),h.Lb=function(t){return A7e(l(t,10))},h.Fb=function(t){return this===t},h.Mb=function(t){return A7e(l(t,10))},I(mfe,"PolylineEdgeRouter/1",1479),D(1872,1,ti,bte),h.Mb=function(t){return l(t,132).c==(J0(),qb)},I(i1,"HyperEdgeCycleDetector/lambda$0$Type",1872),D(1873,1,{},mte),h.Ze=function(t){return l(t,132).d},I(i1,"HyperEdgeCycleDetector/lambda$1$Type",1873),D(1874,1,ti,vte),h.Mb=function(t){return l(t,132).c==(J0(),qb)},I(i1,"HyperEdgeCycleDetector/lambda$2$Type",1874),D(1875,1,{},wte),h.Ze=function(t){return l(t,132).d},I(i1,"HyperEdgeCycleDetector/lambda$3$Type",1875),D(1876,1,{},yte),h.Ze=function(t){return l(t,132).d},I(i1,"HyperEdgeCycleDetector/lambda$4$Type",1876),D(1877,1,{},gte),h.Ze=function(t){return l(t,132).d},I(i1,"HyperEdgeCycleDetector/lambda$5$Type",1877),D(118,1,{34:1,118:1},xN),h.Fd=function(t){return _un(this,l(t,118))},h.Fb=function(t){var n;return De(t,118)?(n=l(t,118),this.g==n.g):!1},h.Hb=function(){return this.g},h.Ib=function(){var t,n,r,a;for(t=new Th("{"),a=new G(this.n);a.a"+this.b+" ("+Ghn(this.c)+")"},h.d=0,I(i1,"HyperEdgeSegmentDependency",132),D(528,22,{3:1,34:1,22:1,528:1},q3e);var qb,E4,tTt=Fr(i1,"HyperEdgeSegmentDependency/DependencyType",528,Hr,Ypn,i1n),nTt;D(1878,1,{},sXe),I(i1,"HyperEdgeSegmentSplitter",1878),D(1879,1,{},QJe),h.a=0,h.b=0,I(i1,"HyperEdgeSegmentSplitter/AreaRating",1879),D(339,1,{339:1},vae),h.a=0,h.b=0,h.c=0,I(i1,"HyperEdgeSegmentSplitter/FreeArea",339),D(1880,1,ii,a8),h.Ne=function(t,n){return Gfn(l(t,118),l(n,118))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(i1,"HyperEdgeSegmentSplitter/lambda$0$Type",1880),D(1881,1,fr,Cat),h.Cd=function(t){ymn(this.a,this.d,this.c,this.b,l(t,118))},h.b=0,I(i1,"HyperEdgeSegmentSplitter/lambda$1$Type",1881),D(1882,1,{},xte),h.Kb=function(t){return new bn(null,new kn(l(t,118).e,16))},I(i1,"HyperEdgeSegmentSplitter/lambda$2$Type",1882),D(1883,1,{},kte),h.Kb=function(t){return new bn(null,new kn(l(t,118).j,16))},I(i1,"HyperEdgeSegmentSplitter/lambda$3$Type",1883),D(1884,1,{},Ete),h.Ye=function(t){return ze(Ge(t))},I(i1,"HyperEdgeSegmentSplitter/lambda$4$Type",1884),D(664,1,{},Hae),h.a=0,h.b=0,h.c=0,I(i1,"OrthogonalRoutingGenerator",664),D(1703,1,{},Tte),h.Kb=function(t){return new bn(null,new kn(l(t,118).e,16))},I(i1,"OrthogonalRoutingGenerator/lambda$0$Type",1703),D(1704,1,{},Cte),h.Kb=function(t){return new bn(null,new kn(l(t,118).j,16))},I(i1,"OrthogonalRoutingGenerator/lambda$1$Type",1704),D(670,1,{}),I(vfe,"BaseRoutingDirectionStrategy",670),D(1870,670,{},eJe),h.yg=function(t,n,r){var a,o,f,g,w,E,C,L,B,z,V,J,te;if(!(t.r&&!t.q))for(L=n+t.o*r,C=new G(t.n);C.aDd&&(f=L,o=t,a=new lt(B,f),ci(g.a,a),Vw(this,g,o,a,!1),z=t.r,z&&(V=ze(Ge(ff(z.e,0))),a=new lt(V,f),ci(g.a,a),Vw(this,g,o,a,!1),f=n+z.o*r,o=z,a=new lt(V,f),ci(g.a,a),Vw(this,g,o,a,!1)),a=new lt(te,f),ci(g.a,a),Vw(this,g,o,a,!1)))},h.zg=function(t){return t.i.n.a+t.n.a+t.a.a},h.Ag=function(){return Ct(),Dr},h.Bg=function(){return Ct(),Qn},I(vfe,"NorthToSouthRoutingStrategy",1870),D(1871,670,{},tJe),h.yg=function(t,n,r){var a,o,f,g,w,E,C,L,B,z,V,J,te;if(!(t.r&&!t.q))for(L=n-t.o*r,C=new G(t.n);C.aDd&&(f=L,o=t,a=new lt(B,f),ci(g.a,a),Vw(this,g,o,a,!1),z=t.r,z&&(V=ze(Ge(ff(z.e,0))),a=new lt(V,f),ci(g.a,a),Vw(this,g,o,a,!1),f=n-z.o*r,o=z,a=new lt(V,f),ci(g.a,a),Vw(this,g,o,a,!1)),a=new lt(te,f),ci(g.a,a),Vw(this,g,o,a,!1)))},h.zg=function(t){return t.i.n.a+t.n.a+t.a.a},h.Ag=function(){return Ct(),Qn},h.Bg=function(){return Ct(),Dr},I(vfe,"SouthToNorthRoutingStrategy",1871),D(1869,670,{},nJe),h.yg=function(t,n,r){var a,o,f,g,w,E,C,L,B,z,V,J,te;if(!(t.r&&!t.q))for(L=n+t.o*r,C=new G(t.n);C.aDd&&(f=L,o=t,a=new lt(f,B),ci(g.a,a),Vw(this,g,o,a,!0),z=t.r,z&&(V=ze(Ge(ff(z.e,0))),a=new lt(f,V),ci(g.a,a),Vw(this,g,o,a,!0),f=n+z.o*r,o=z,a=new lt(f,V),ci(g.a,a),Vw(this,g,o,a,!0)),a=new lt(f,te),ci(g.a,a),Vw(this,g,o,a,!0)))},h.zg=function(t){return t.i.n.b+t.n.b+t.a.b},h.Ag=function(){return Ct(),ar},h.Bg=function(){return Ct(),er},I(vfe,"WestToEastRoutingStrategy",1869),D(828,1,{},Ske),h.Ib=function(){return Tb(this.a)},h.b=0,h.c=!1,h.d=!1,h.f=0,I(Zy,"NubSpline",828),D(418,1,{418:1},dbt,rot),I(Zy,"NubSpline/PolarCP",418),D(1480,1,Uo,Ydt),h.rg=function(t){return fxn(l(t,36))},h.Kf=function(t,n){uIn(this,l(t,36),n)};var rTt,iTt,sTt,aTt,oTt;I(Zy,"SplineEdgeRouter",1480),D(274,1,{274:1},WH),h.Ib=function(){return this.a+" ->("+this.c+") "+this.b},h.c=0,I(Zy,"SplineEdgeRouter/Dependency",274),D(465,22,{3:1,34:1,22:1,465:1},H3e);var Hb,K6,cTt=Fr(Zy,"SplineEdgeRouter/SideToProcess",465,Hr,t2n,s1n),uTt;D(1481,1,ti,Ste),h.Mb=function(t){return GA(),!l(t,131).o},I(Zy,"SplineEdgeRouter/lambda$0$Type",1481),D(1482,1,{},_te),h.Ze=function(t){return GA(),l(t,131).v+1},I(Zy,"SplineEdgeRouter/lambda$1$Type",1482),D(1483,1,fr,Jet),h.Cd=function(t){_dn(this.a,this.b,l(t,42))},I(Zy,"SplineEdgeRouter/lambda$2$Type",1483),D(1484,1,fr,Zet),h.Cd=function(t){Adn(this.a,this.b,l(t,42))},I(Zy,"SplineEdgeRouter/lambda$3$Type",1484),D(131,1,{34:1,131:1},_pt,Ike),h.Fd=function(t){return Mun(this,l(t,131))},h.b=0,h.e=!1,h.f=0,h.g=0,h.j=!1,h.k=!1,h.n=0,h.o=!1,h.p=!1,h.q=!1,h.s=0,h.u=0,h.v=0,h.F=0,I(Zy,"SplineSegment",131),D(468,1,{468:1},Ate),h.a=0,h.b=!1,h.c=!1,h.d=!1,h.e=!1,h.f=0,I(Zy,"SplineSegment/EdgeInformation",468),D(1198,1,{},CS),I(gp,LEe,1198),D(1199,1,ii,Lte),h.Ne=function(t,n){return Wkn(l(t,121),l(n,121))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(gp,E3t,1199),D(1197,1,{},dZe),I(gp,"MrTree",1197),D(405,22,{3:1,34:1,22:1,405:1,188:1,196:1},vq),h.dg=function(){return Wpt(this)},h.qg=function(){return Wpt(this)};var NW,lM,hM,fM,qDe=Fr(gp,"TreeLayoutPhases",405,Hr,rmn,a1n),lTt;D(1112,205,tv,Hrt),h.rf=function(t,n){var r,a,o,f,g,w,E,C;for(Rt(Bt(at(t,(Hc(),dIe))))||KO((r=new Yv((aw(),new Jv(t))),r)),g=n.eh(xfe),g.Ug("build tGraph",1),w=(E=new nN,pc(E,t),rt(E,(Qi(),gM),t),C=new Pr,z_n(t,E,C),aAn(t,E,C),E),g.Vg(),g=n.eh(xfe),g.Ug("Split graph",1),f=K_n(this.a,w),g.Vg(),o=new G(f);o.a"+Bm(this.c):"e_"+es(this)},I(vL,"TEdge",65),D(121,137,{3:1,121:1,96:1,137:1},nN),h.Ib=function(){var t,n,r,a,o;for(o=null,a=Rr(this.b,0);a.b!=a.d.c;)r=l(Br(a),40),o+=(r.c==null||r.c.length==0?"n_"+r.g:"n_"+r.c)+` + endInLayerEdge=`,wu(t,this.c),t.a},I(Od,"BreakingPointInserter/BPInfo",313),D(661,1,{661:1},BYe),h.a=!1,h.b=0,h.c=0,I(Od,"BreakingPointInserter/Cut",661),D(1545,1,ts,Dee),h.Kf=function(t,n){MTn(l(t,36),n)},I(Od,"BreakingPointProcessor",1545),D(1546,1,ti,Iee),h.Mb=function(t){return iht(l(t,10))},I(Od,"BreakingPointProcessor/0methodref$isEnd$Type",1546),D(1547,1,ti,Oee),h.Mb=function(t){return sht(l(t,10))},I(Od,"BreakingPointProcessor/1methodref$isStart$Type",1547),D(1548,1,ts,Nee),h.Kf=function(t,n){JTn(this,l(t,36),n)},I(Od,"BreakingPointRemover",1548),D(1549,1,fr,Pee),h.Cd=function(t){l(t,131).k=!0},I(Od,"BreakingPointRemover/lambda$0$Type",1549),D(811,1,{},M9e),h.b=0,h.e=0,h.f=0,h.j=0,I(Od,"GraphStats",811),D(812,1,{},Gj),h.Ve=function(t,n){return b.Math.max(ze(Ge(t)),ze(Ge(n)))},I(Od,"GraphStats/0methodref$max$Type",812),D(813,1,{},Kj),h.Ve=function(t,n){return b.Math.max(ze(Ge(t)),ze(Ge(n)))},I(Od,"GraphStats/2methodref$max$Type",813),D(1726,1,{},Bee),h.Ve=function(t,n){return Z1n(Ge(t),Ge(n))},I(Od,"GraphStats/lambda$1$Type",1726),D(1727,1,{},_Ye),h.Kb=function(t){return ldt(this.a,l(t,30))},I(Od,"GraphStats/lambda$2$Type",1727),D(1728,1,{},AYe),h.Kb=function(t){return tbt(this.a,l(t,30))},I(Od,"GraphStats/lambda$6$Type",1728),D(814,1,{},Wj),h.og=function(t,n){var r;return r=l(Q(t,(Nt(),sDe)),15),r||(Cn(),Cn(),_o)},h.pg=function(){return!1},I(Od,"ICutIndexCalculator/ManualCutIndexCalculator",814),D(816,1,{},Yj),h.og=function(t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze;for(Ze=(n.n==null&&Rdt(n),n.n),E=(n.d==null&&Rdt(n),n.d),$e=We(Na,Zo,28,Ze.length,15,1),$e[0]=Ze[0],Te=Ze[0],C=1;C=te&&(vt(f,pt(L)),Me=b.Math.max(Me,$e[L-1]-B),w+=J,fe+=$e[L-1]-fe,B=$e[L-1],J=E[L]),J=b.Math.max(J,E[L]),++L;w+=J}V=b.Math.min(1/Me,1/n.b/w),V>a&&(a=V,r=f)}return r},h.pg=function(){return!1},I(Od,"MSDCutIndexHeuristic",816),D(1683,1,ts,Fee),h.Kf=function(t,n){$An(l(t,36),n)},I(Od,"SingleEdgeGraphWrapper",1683),D(232,22,{3:1,34:1,22:1,232:1},E_);var O6,IT,OT,h4,qL,N6,NT=Fr(ou,"CenterEdgeLabelPlacementStrategy",232,Hr,Cvn,_0n),hxt;D(431,22,{3:1,34:1,22:1,431:1},N3e);var lLe,S1e,hLe=Fr(ou,"ConstraintCalculationStrategy",431,Hr,Upn,A0n),fxt;D(322,22,{3:1,34:1,22:1,322:1,188:1,196:1},wse),h.dg=function(){return $pt(this)},h.qg=function(){return $pt(this)};var mB,HL,fLe,dLe=Fr(ou,"CrossingMinimizationStrategy",322,Hr,j2n,L0n),dxt;D(351,22,{3:1,34:1,22:1,351:1},yse);var gLe,_1e,YK,pLe=Fr(ou,"CuttingStrategy",351,Hr,$2n,M0n),gxt;D(348,22,{3:1,34:1,22:1,348:1,188:1,196:1},uO),h.dg=function(){return M2t(this)},h.qg=function(){return M2t(this)};var bLe,A1e,PT,L1e,BT,mLe=Fr(ou,"CycleBreakingStrategy",348,Hr,Hmn,D0n),pxt;D(428,22,{3:1,34:1,22:1,428:1},P3e);var XK,vLe,wLe=Fr(ou,"DirectionCongruency",428,Hr,Vpn,I0n),bxt;D(460,22,{3:1,34:1,22:1,460:1},xse);var FT,M1e,P6,mxt=Fr(ou,"EdgeConstraint",460,Hr,z2n,j0n),vxt;D(283,22,{3:1,34:1,22:1,283:1},T_);var D1e,I1e,O1e,N1e,QK,P1e,yLe=Fr(ou,"EdgeLabelSideSelection",283,Hr,kvn,$0n),wxt;D(488,22,{3:1,34:1,22:1,488:1},B3e);var JK,xLe,kLe=Fr(ou,"EdgeStraighteningStrategy",488,Hr,Jpn,z0n),yxt;D(281,22,{3:1,34:1,22:1,281:1},C_);var B1e,ELe,TLe,ZK,CLe,SLe,_Le=Fr(ou,"FixedAlignment",281,Hr,Evn,R0n),xxt;D(282,22,{3:1,34:1,22:1,282:1},S_);var ALe,LLe,MLe,DLe,VL,ILe,OLe=Fr(ou,"GraphCompactionStrategy",282,Hr,Tvn,O0n),kxt;D(259,22,{3:1,34:1,22:1,259:1},uy);var RT,eW,jT,vf,UL,tW,$T,B6,nW,GL,F1e=Fr(ou,"GraphProperties",259,Hr,c3n,N0n),Ext;D(299,22,{3:1,34:1,22:1,299:1},kse);var vB,R1e,j1e,$1e=Fr(ou,"GreedySwitchType",299,Hr,q2n,P0n),Txt;D(311,22,{3:1,34:1,22:1,311:1},Ese);var Ux,wB,F6,Cxt=Fr(ou,"InLayerConstraint",311,Hr,H2n,B0n),Sxt;D(429,22,{3:1,34:1,22:1,429:1},F3e);var z1e,NLe,PLe=Fr(ou,"InteractiveReferencePoint",429,Hr,Hpn,F0n),_xt,BLe,Gx,c3,rW,FLe,RLe,iW,jLe,yB,sW,KL,Kx,pp,q1e,aW,Wc,$Le,jb,Lu,H1e,V1e,xB,hv,u3,Wx,zLe,Yx,kB,f4,o1,$f,U1e,R6,Ki,zi,qLe,HLe,VLe,ULe,GLe,G1e,oW,jl,l3,K1e,Xx,WL,W1,j6,h3,$6,z6,zT,fv,KLe,W1e,Y1e,Qx;D(171,22,{3:1,34:1,22:1,171:1},lO);var YL,$b,XL,d4,EB,WLe=Fr(ou,"LayerConstraint",171,Hr,Umn,q0n),Axt;D(859,1,Pf,Yre),h.hf=function(t){sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,VEe),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),iMe),(g2(),ps)),wLe),un((r1(),Pn))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,UEe),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(Hn(),!1)),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,fG),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),lMe),ps),PLe),un(Pn)))),Qs(t,fG,zhe,k9t),Qs(t,fG,pL,x9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,GEe),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,KEe),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),!0),ya),Ns),un(Pn)))),sn(t,new Xt(Nun(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,WEe),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),!1),ya),Ns),un(yv)),he(le(zt,1),dt,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,YEe),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),vMe),ps),_De),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,XEe),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),pt(7)),Tc),ro),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,QEe),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,JEe),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,zhe),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),rMe),ps),mLe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,qP),hfe),"Node Layering Strategy"),"Strategy for node layering."),dMe),ps),pDe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ZEe),hfe),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),hMe),ps),WLe),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,eTe),hfe),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),Tc),ro),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,tTe),hfe),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),pt(-1)),Tc),ro),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,qhe),J3t),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),pt(4)),Tc),ro),un(Pn)))),Qs(t,qhe,qP,L9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Hhe),J3t),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),pt(2)),Tc),ro),un(Pn)))),Qs(t,Hhe,qP,D9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Vhe),Z3t),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),fMe),ps),TDe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Uhe),Z3t),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),pt(0)),Tc),ro),un(Pn)))),Qs(t,Uhe,Vhe,null),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Ghe),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),pt(Ii)),Tc),ro),un(Pn)))),Qs(t,Ghe,qP,T9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,pL),gT),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),nMe),ps),dLe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,nTe),gT),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Khe),gT),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),fo),ta),un(Pn)))),Qs(t,Khe,CG,Wxt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Whe),gT),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),!1),ya),Ns),un(Pn)))),Qs(t,Whe,pL,e9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,rTe),gT),"In Layer Predecessor of"),"Allows to set a constraint which specifies of which node the current node is the predecessor. If set to 's' then the node is the predecessor of 's' and is in the same layer"),null),J6),zt),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,iTe),gT),"In Layer Successor of"),"Allows to set a constraint which specifies of which node the current node is the successor. If set to 's' then the node is the successor of 's' and is in the same layer"),null),J6),zt),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,sTe),gT),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),Tc),ro),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,aTe),gT),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),pt(-1)),Tc),ro),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,oTe),eyt),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),pt(40)),Tc),ro),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Yhe),eyt),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),tMe),ps),$1e),un(Pn)))),Qs(t,Yhe,pL,Gxt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,dG),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),eMe),ps),$1e),un(Pn)))),Qs(t,dG,pL,Hxt),Qs(t,dG,CG,Vxt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,k6),tyt),"Node Placement Strategy"),"Strategy for node placement."),mMe),ps),wDe),un(Pn)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,gG),tyt),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),ya),Ns),un(Pn)))),Qs(t,gG,k6,q9t),Qs(t,gG,k6,H9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Xhe),nyt),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),gMe),ps),kLe),un(Pn)))),Qs(t,Xhe,k6,R9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Qhe),nyt),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),pMe),ps),_Le),un(Pn)))),Qs(t,Qhe,k6,$9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Jhe),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),fo),ta),un(Pn)))),Qs(t,Jhe,k6,U9t),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,Zhe),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),ps),mde),un(ha)))),Qs(t,Zhe,k6,Y9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,efe),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),bMe),ps),mde),un(Pn)))),Qs(t,efe,k6,W9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,cTe),ryt),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),oMe),ps),MDe),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,uTe),ryt),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),cMe),ps),DDe),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,pG),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),uMe),ps),ODe),un(Pn)))),Qs(t,pG,HP,h9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,bG),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),fo),ta),un(Pn)))),Qs(t,bG,HP,d9t),Qs(t,bG,pG,g9t),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,tfe),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),fo),ta),un(Pn)))),Qs(t,tfe,HP,o9t),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,lTe),U1),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,hTe),U1),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,fTe),U1),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,dTe),U1),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,gTe),TTe),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),pt(0)),Tc),ro),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,pTe),TTe),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),pt(0)),Tc),ro),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,bTe),TTe),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),pt(0)),Tc),ro),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,nfe),CTe),w3t),"Tries to further compact components (disconnected sub-graphs)."),!1),ya),Ns),un(Pn)))),Qs(t,nfe,lL,!0),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,mTe),iyt),"Post Compaction Strategy"),syt),XLe),ps),OLe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,vTe),iyt),"Post Compaction Constraint Calculation"),syt),YLe),ps),hLe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,mG),STe),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,rfe),STe),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),pt(16)),Tc),ro),un(Pn)))),Qs(t,rfe,mG,!0),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ife),STe),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),pt(5)),Tc),ro),un(Pn)))),Qs(t,ife,mG,!0),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,fp),_Te),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),xMe),ps),FDe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,vG),_Te),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),fo),ta),un(Pn)))),Qs(t,vG,fp,ckt),Qs(t,vG,fp,ukt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,wG),_Te),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),fo),ta),un(Pn)))),Qs(t,wG,fp,hkt),Qs(t,wG,fp,fkt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,bL),ayt),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),yMe),ps),pLe),un(Pn)))),Qs(t,bL,fp,vkt),Qs(t,bL,fp,wkt),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,sfe),ayt),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),X1),mf),un(Pn)))),Qs(t,sfe,bL,gkt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,afe),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),wMe),Tc),ro),un(Pn)))),Qs(t,afe,bL,bkt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,yG),oyt),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),kMe),ps),BDe),un(Pn)))),Qs(t,yG,fp,Dkt),Qs(t,yG,fp,Ikt),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,xG),oyt),"Valid Indices for Wrapping"),null),X1),mf),un(Pn)))),Qs(t,xG,fp,Akt),Qs(t,xG,fp,Lkt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,kG),ATe),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),!0),ya),Ns),un(Pn)))),Qs(t,kG,fp,Ekt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,EG),ATe),"Distance Penalty When Improving Cuts"),null),2),fo),ta),un(Pn)))),Qs(t,EG,fp,xkt),Qs(t,EG,kG,!0),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ofe),ATe),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),!0),ya),Ns),un(Pn)))),Qs(t,ofe,fp,Ckt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,wTe),ffe),"Edge Label Side Selection"),"Method to decide on edge label sides."),aMe),ps),yLe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,yTe),ffe),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),sMe),ps),NT),rs(Pn,he(le(xg,1),it,170,0,[S2]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,TG),mL),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),ZLe),ps),SDe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,xTe),mL),"Consider Port Order"),"If disabled the port order of output ports is derived from the edge order and input ports are ordered by their incoming connections. If enabled all ports are ordered by the port model order."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,kTe),mL),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),ya),Ns),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,cfe),mL),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),QLe),ps),mAe),un(Pn)))),Qs(t,cfe,lL,null),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ETe),mL),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),JLe),ps),mDe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ufe),mL),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),fo),ta),un(Pn)))),Qs(t,ufe,TG,null),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,lfe),mL),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),fo),ta),un(Pn)))),Qs(t,lfe,TG,null),Twt((new Xre,t))};var Lxt,Mxt,Dxt,YLe,Ixt,XLe,Oxt,QLe,Nxt,Pxt,Bxt,JLe,Fxt,Rxt,jxt,ZLe,$xt,zxt,qxt,eMe,Hxt,Vxt,Uxt,tMe,Gxt,Kxt,Wxt,Yxt,Xxt,Qxt,Jxt,Zxt,e9t,t9t,nMe,n9t,rMe,r9t,iMe,i9t,sMe,s9t,aMe,a9t,o9t,c9t,oMe,u9t,cMe,l9t,uMe,h9t,f9t,d9t,g9t,p9t,b9t,m9t,v9t,w9t,y9t,lMe,x9t,k9t,E9t,T9t,C9t,S9t,hMe,_9t,A9t,L9t,M9t,D9t,I9t,O9t,fMe,N9t,dMe,P9t,B9t,F9t,gMe,R9t,j9t,pMe,$9t,z9t,q9t,H9t,V9t,U9t,G9t,K9t,bMe,W9t,Y9t,X9t,mMe,Q9t,vMe,J9t,Z9t,ekt,tkt,nkt,rkt,ikt,skt,akt,okt,ckt,ukt,lkt,hkt,fkt,dkt,gkt,pkt,wMe,bkt,mkt,yMe,vkt,wkt,ykt,xkt,kkt,Ekt,Tkt,Ckt,Skt,xMe,_kt,Akt,Lkt,Mkt,kMe,Dkt,Ikt;I(ou,"LayeredMetaDataProvider",859),D(998,1,Pf,Xre),h.hf=function(t){Twt(t)};var Rd,X1e,cW,QL,uW,EMe,lW,g4,hW,TMe,CMe,fW,Q1e,yg,J1e,f3,SMe,TB,Z1e,_Me,Okt,Nkt,Pkt,dW,ede,JL,dv,Bkt,Rh,AMe,LMe,gW,tde,jd,pW,bp,MMe,DMe,IMe,nde,rde,OMe,x2,ide,NMe,p4,PMe,BMe,FMe,bW,b4,gv,RMe,jMe,cc,$Me,Fkt,Qu,mW,zMe,qMe,HMe,zb,pv,vW,VMe,UMe,wW,d3,GMe,sde,ZL,KMe,g3,eM,yW,bv,ade,qT,xW,mv,WMe,YMe,XMe,HT,QMe,Rkt,jkt,$kt,zkt,p3,m4,Ms,k2,qkt,v4,JMe,VT,ZMe,w4,Hkt,UT,eDe,Jx,Vkt,Ukt,CB,ode,tDe,SB,x0,q6,H6,b3,vv,kW,y4,cde,GT,KT,m3,V6,ude,_B,tM,nM,Gkt,Kkt,Wkt,nDe,Ykt,lde,rDe,iDe,sDe,aDe,hde,oDe,cDe,uDe,lDe,fde,EW;I(ou,"LayeredOptions",998),D(999,1,{},Ree),h.sf=function(){var t;return t=new qQe,t},h.tf=function(t){},I(ou,"LayeredOptions/LayeredFactory",999),D(1391,1,{}),h.a=0;var Xkt;I(Uc,"ElkSpacings/AbstractSpacingsBuilder",1391),D(792,1391,{},D8e);var TW,Qkt;I(ou,"LayeredSpacings/LayeredSpacingsBuilder",792),D(265,22,{3:1,34:1,22:1,265:1,188:1,196:1},M5),h.dg=function(){return jbt(this)},h.qg=function(){return jbt(this)};var WT,dde,YT,hDe,fDe,dDe,CW,gde,gDe,pDe=Fr(ou,"LayeringStrategy",265,Hr,Rwn,H0n),Jkt;D(390,22,{3:1,34:1,22:1,390:1},Tse);var pde,bDe,SW,mDe=Fr(ou,"LongEdgeOrderingStrategy",390,Hr,V2n,V0n),Zkt;D(203,22,{3:1,34:1,22:1,203:1},bq);var U6,G6,_W,bde,mde=Fr(ou,"NodeFlexibility",203,Hr,Zbn,U0n),eEt;D(323,22,{3:1,34:1,22:1,323:1,188:1,196:1},hO),h.dg=function(){return L2t(this)},h.qg=function(){return L2t(this)};var rM,vde,wde,iM,vDe,wDe=Fr(ou,"NodePlacementStrategy",323,Hr,Vmn,G0n),tEt;D(243,22,{3:1,34:1,22:1,243:1},ly);var yDe,v3,x4,AB,xDe,kDe,LB,EDe,AW,LW,TDe=Fr(ou,"NodePromotionStrategy",243,Hr,u3n,K0n),nEt;D(284,22,{3:1,34:1,22:1,284:1},mq);var CDe,E2,yde,xde,SDe=Fr(ou,"OrderingStrategy",284,Hr,emn,W0n),rEt;D(430,22,{3:1,34:1,22:1,430:1},R3e);var kde,Ede,_De=Fr(ou,"PortSortingStrategy",430,Hr,Gpn,Y0n),iEt;D(463,22,{3:1,34:1,22:1,463:1},Cse);var $l,zu,sM,sEt=Fr(ou,"PortType",463,Hr,U2n,X0n),aEt;D(387,22,{3:1,34:1,22:1,387:1},Sse);var ADe,Tde,LDe,MDe=Fr(ou,"SelfLoopDistributionStrategy",387,Hr,G2n,Q0n),oEt;D(349,22,{3:1,34:1,22:1,349:1},_se);var Cde,MB,Sde,DDe=Fr(ou,"SelfLoopOrderingStrategy",349,Hr,K2n,J0n),cEt;D(312,1,{312:1},xvt),I(ou,"Spacings",312),D(350,22,{3:1,34:1,22:1,350:1},Ase);var _de,IDe,aM,ODe=Fr(ou,"SplineRoutingMode",350,Hr,W2n,Z0n),uEt;D(352,22,{3:1,34:1,22:1,352:1},Lse);var Ade,NDe,PDe,BDe=Fr(ou,"ValidifyStrategy",352,Hr,Y2n,e1n),lEt;D(388,22,{3:1,34:1,22:1,388:1},Mse);var k4,Lde,XT,FDe=Fr(ou,"WrappingStrategy",388,Hr,X2n,t1n),hEt;D(1398,1,Uo,Ure),h.rg=function(t){return l(t,36),fEt},h.Kf=function(t,n){NLn(this,l(t,36),n)};var fEt;I(LG,"DepthFirstCycleBreaker",1398),D(793,1,Uo,Q4e),h.rg=function(t){return l(t,36),dEt},h.Kf=function(t,n){FIn(this,l(t,36),n)},h.sg=function(t){return l(jt(t,aU(this.d,t.c.length)),10)};var dEt;I(LG,"GreedyCycleBreaker",793),D(1401,793,Uo,$tt),h.sg=function(t){var n,r,a,o;for(o=null,n=Ii,a=new G(t);a.a1&&(Rt(Bt(Q(eo((Sn(0,t.c.length),l(t.c[0],10))),(Nt(),f3))))?q2t(t,this.d,l(this,669)):(Cn(),Vs(t,this.d)),Hft(this.e,t))},h.lg=function(t,n,r,a){var o,f,g,w,E,C,L;for(n!=ast(r,t.length)&&(f=t[n-(r?1:-1)],S6e(this.f,f,r?(qo(),zu):(qo(),$l))),o=t[n][0],L=!a||o.k==(Zn(),Us),C=O1(t[n]),this.vg(C,L,!1,r),g=0,E=new G(C);E.a"),t0?loe(this.a,t[n-1],t[n]):!r&&n1&&(Rt(Bt(Q(eo((Sn(0,t.c.length),l(t.c[0],10))),(Nt(),f3))))?q2t(t,this.d,this):(Cn(),Vs(t,this.d)),Rt(Bt(Q(eo((Sn(0,t.c.length),l(t.c[0],10))),f3)))||Hft(this.e,t))},I(Cl,"ModelOrderBarycenterHeuristic",669),D(1866,1,ii,zYe),h.Ne=function(t,n){return O9n(this.a,l(t,10),l(n,10))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Cl,"ModelOrderBarycenterHeuristic/lambda$0$Type",1866),D(1423,1,Uo,Jre),h.rg=function(t){var n;return l(t,36),n=Oq(LEt),fi(n,(uo(),bu),(vo(),RK)),n},h.Kf=function(t,n){bpn((l(t,36),n))};var LEt;I(Cl,"NoCrossingMinimizer",1423),D(809,413,uCe,o3e),h.tg=function(t,n,r){var a,o,f,g,w,E,C,L,B,z,V;switch(B=this.g,r.g){case 1:{for(o=0,f=0,L=new G(t.j);L.a1&&(o.j==(Ct(),ar)?this.b[t]=!0:o.j==er&&t>0&&(this.b[t-1]=!0))},h.f=0,I(bg,"AllCrossingsCounter",1861),D(595,1,{},TV),h.b=0,h.d=0,I(bg,"BinaryIndexedTree",595),D(532,1,{},IO);var $De,DW;I(bg,"CrossingsCounter",532),D(1950,1,ii,qYe),h.Ne=function(t,n){return qdn(this.a,l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(bg,"CrossingsCounter/lambda$0$Type",1950),D(1951,1,ii,HYe),h.Ne=function(t,n){return Hdn(this.a,l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(bg,"CrossingsCounter/lambda$1$Type",1951),D(1952,1,ii,VYe),h.Ne=function(t,n){return Vdn(this.a,l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(bg,"CrossingsCounter/lambda$2$Type",1952),D(1953,1,ii,UYe),h.Ne=function(t,n){return Udn(this.a,l(t,12),l(n,12))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(bg,"CrossingsCounter/lambda$3$Type",1953),D(1954,1,fr,GYe),h.Cd=function(t){Uvn(this.a,l(t,12))},I(bg,"CrossingsCounter/lambda$4$Type",1954),D(1955,1,ti,KYe),h.Mb=function(t){return bln(this.a,l(t,12))},I(bg,"CrossingsCounter/lambda$5$Type",1955),D(1956,1,fr,WYe),h.Cd=function(t){Dtt(this,t)},I(bg,"CrossingsCounter/lambda$6$Type",1956),D(1957,1,fr,qet),h.Cd=function(t){var n;jk(),gb(this.b,(n=this.a,l(t,12),n))},I(bg,"CrossingsCounter/lambda$7$Type",1957),D(839,1,Ld,Xj),h.Lb=function(t){return jk(),ns(l(t,12),(ft(),jl))},h.Fb=function(t){return this===t},h.Mb=function(t){return jk(),ns(l(t,12),(ft(),jl))},I(bg,"CrossingsCounter/lambda$8$Type",839),D(1949,1,{},YYe),I(bg,"HyperedgeCrossingsCounter",1949),D(478,1,{34:1,478:1},Urt),h.Fd=function(t){return V5n(this,l(t,478))},h.b=0,h.c=0,h.e=0,h.f=0;var TOn=I(bg,"HyperedgeCrossingsCounter/Hyperedge",478);D(374,1,{34:1,374:1},CH),h.Fd=function(t){return iTn(this,l(t,374))},h.b=0,h.c=0;var MEt=I(bg,"HyperedgeCrossingsCounter/HyperedgeCorner",374);D(531,22,{3:1,34:1,22:1,531:1},j3e);var cM,uM,DEt=Fr(bg,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",531,Hr,Kpn,r1n),IEt;D(1425,1,Uo,Zre),h.rg=function(t){return l(Q(l(t,36),(ft(),Lu)),21).Hc((Ho(),vf))?OEt:null},h.Kf=function(t,n){p8n(this,l(t,36),n)};var OEt;I(Go,"InteractiveNodePlacer",1425),D(1426,1,Uo,eie),h.rg=function(t){return l(Q(l(t,36),(ft(),Lu)),21).Hc((Ho(),vf))?NEt:null},h.Kf=function(t,n){Z6n(this,l(t,36),n)};var NEt,IW,OW;I(Go,"LinearSegmentsNodePlacer",1426),D(261,1,{34:1,261:1},Pwe),h.Fd=function(t){return Aun(this,l(t,261))},h.Fb=function(t){var n;return De(t,261)?(n=l(t,261),this.b==n.b):!1},h.Hb=function(){return this.b},h.Ib=function(){return"ls"+Tb(this.e)},h.a=0,h.b=0,h.c=-1,h.d=-1,h.g=0;var PEt=I(Go,"LinearSegmentsNodePlacer/LinearSegment",261);D(1428,1,Uo,bst),h.rg=function(t){return l(Q(l(t,36),(ft(),Lu)),21).Hc((Ho(),vf))?BEt:null},h.Kf=function(t,n){AIn(this,l(t,36),n)},h.b=0,h.g=0;var BEt;I(Go,"NetworkSimplexPlacer",1428),D(1447,1,ii,Gee),h.Ne=function(t,n){return ru(l(t,17).a,l(n,17).a)},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Go,"NetworkSimplexPlacer/0methodref$compare$Type",1447),D(1449,1,ii,Kee),h.Ne=function(t,n){return ru(l(t,17).a,l(n,17).a)},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Go,"NetworkSimplexPlacer/1methodref$compare$Type",1449),D(655,1,{655:1},Het);var COn=I(Go,"NetworkSimplexPlacer/EdgeRep",655);D(412,1,{412:1},D5e),h.b=!1;var SOn=I(Go,"NetworkSimplexPlacer/NodeRep",412);D(515,13,{3:1,4:1,20:1,31:1,56:1,13:1,16:1,15:1,59:1,515:1},QQe),I(Go,"NetworkSimplexPlacer/Path",515),D(1429,1,{},Wee),h.Kb=function(t){return l(t,18).d.i.k},I(Go,"NetworkSimplexPlacer/Path/lambda$0$Type",1429),D(1430,1,ti,Yee),h.Mb=function(t){return l(t,273)==(Zn(),Aa)},I(Go,"NetworkSimplexPlacer/Path/lambda$1$Type",1430),D(1431,1,{},Xee),h.Kb=function(t){return l(t,18).d.i},I(Go,"NetworkSimplexPlacer/Path/lambda$2$Type",1431),D(1432,1,ti,XYe),h.Mb=function(t){return Lrt(I1t(l(t,10)))},I(Go,"NetworkSimplexPlacer/Path/lambda$3$Type",1432),D(1433,1,ti,Qee),h.Mb=function(t){return Sdn(l(t,12))},I(Go,"NetworkSimplexPlacer/lambda$0$Type",1433),D(1434,1,fr,Vet),h.Cd=function(t){ohn(this.a,this.b,l(t,12))},I(Go,"NetworkSimplexPlacer/lambda$1$Type",1434),D(1443,1,fr,QYe),h.Cd=function(t){Okn(this.a,l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$10$Type",1443),D(1444,1,{},Jee),h.Kb=function(t){return Sh(),new bn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$11$Type",1444),D(1445,1,fr,JYe),h.Cd=function(t){_Sn(this.a,l(t,10))},I(Go,"NetworkSimplexPlacer/lambda$12$Type",1445),D(1446,1,{},Zee),h.Kb=function(t){return Sh(),pt(l(t,125).e)},I(Go,"NetworkSimplexPlacer/lambda$13$Type",1446),D(1448,1,{},ete),h.Kb=function(t){return Sh(),pt(l(t,125).e)},I(Go,"NetworkSimplexPlacer/lambda$15$Type",1448),D(1450,1,ti,tte),h.Mb=function(t){return Sh(),l(t,412).c.k==(Zn(),Ps)},I(Go,"NetworkSimplexPlacer/lambda$17$Type",1450),D(1451,1,ti,nte),h.Mb=function(t){return Sh(),l(t,412).c.j.c.length>1},I(Go,"NetworkSimplexPlacer/lambda$18$Type",1451),D(1452,1,fr,Tat),h.Cd=function(t){f5n(this.c,this.b,this.d,this.a,l(t,412))},h.c=0,h.d=0,I(Go,"NetworkSimplexPlacer/lambda$19$Type",1452),D(1435,1,{},rte),h.Kb=function(t){return Sh(),new bn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$2$Type",1435),D(1453,1,fr,ZYe),h.Cd=function(t){uhn(this.a,l(t,12))},h.a=0,I(Go,"NetworkSimplexPlacer/lambda$20$Type",1453),D(1454,1,{},ite),h.Kb=function(t){return Sh(),new bn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$21$Type",1454),D(1455,1,fr,eXe),h.Cd=function(t){xhn(this.a,l(t,10))},I(Go,"NetworkSimplexPlacer/lambda$22$Type",1455),D(1456,1,ti,ste),h.Mb=function(t){return Lrt(t)},I(Go,"NetworkSimplexPlacer/lambda$23$Type",1456),D(1457,1,{},ate),h.Kb=function(t){return Sh(),new bn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$24$Type",1457),D(1458,1,ti,tXe),h.Mb=function(t){return Mln(this.a,l(t,10))},I(Go,"NetworkSimplexPlacer/lambda$25$Type",1458),D(1459,1,fr,Uet),h.Cd=function(t){F9n(this.a,this.b,l(t,10))},I(Go,"NetworkSimplexPlacer/lambda$26$Type",1459),D(1460,1,ti,s8),h.Mb=function(t){return Sh(),!Do(l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$27$Type",1460),D(1461,1,ti,Qj),h.Mb=function(t){return Sh(),!Do(l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$28$Type",1461),D(1462,1,{},nXe),h.Ve=function(t,n){return chn(this.a,l(t,30),l(n,30))},I(Go,"NetworkSimplexPlacer/lambda$29$Type",1462),D(1436,1,{},ote),h.Kb=function(t){return Sh(),new bn(null,new vw(new hr(dr(qs(l(t,10)).a.Kc(),new j))))},I(Go,"NetworkSimplexPlacer/lambda$3$Type",1436),D(1437,1,ti,cte),h.Mb=function(t){return Sh(),Rbn(l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$4$Type",1437),D(1438,1,fr,rXe),h.Cd=function(t){BAn(this.a,l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$5$Type",1438),D(1439,1,{},ute),h.Kb=function(t){return Sh(),new bn(null,new kn(l(t,30).a,16))},I(Go,"NetworkSimplexPlacer/lambda$6$Type",1439),D(1440,1,ti,Jj),h.Mb=function(t){return Sh(),l(t,10).k==(Zn(),Ps)},I(Go,"NetworkSimplexPlacer/lambda$7$Type",1440),D(1441,1,{},lte),h.Kb=function(t){return Sh(),new bn(null,new vw(new hr(dr(sp(l(t,10)).a.Kc(),new j))))},I(Go,"NetworkSimplexPlacer/lambda$8$Type",1441),D(1442,1,ti,TS),h.Mb=function(t){return Sh(),Cdn(l(t,18))},I(Go,"NetworkSimplexPlacer/lambda$9$Type",1442),D(1424,1,Uo,tie),h.rg=function(t){return l(Q(l(t,36),(ft(),Lu)),21).Hc((Ho(),vf))?FEt:null},h.Kf=function(t,n){bLn(l(t,36),n)};var FEt;I(Go,"SimpleNodePlacer",1424),D(185,1,{185:1},f6),h.Ib=function(){var t;return t="",this.c==(xd(),w3)?t+=Dx:this.c==T2&&(t+=Mx),this.o==(D1(),wv)?t+=whe:this.o==Y1?t+="UP":t+="BALANCED",t},I(Ib,"BKAlignedLayout",185),D(523,22,{3:1,34:1,22:1,523:1},$3e);var T2,w3,REt=Fr(Ib,"BKAlignedLayout/HDirection",523,Hr,Ypn,i1n),jEt;D(522,22,{3:1,34:1,22:1,522:1},z3e);var wv,Y1,$Et=Fr(Ib,"BKAlignedLayout/VDirection",522,Hr,Xpn,s1n),zEt;D(1699,1,{},Get),I(Ib,"BKAligner",1699),D(1702,1,{},rgt),I(Ib,"BKCompactor",1702),D(663,1,{663:1},hte),h.a=0,I(Ib,"BKCompactor/ClassEdge",663),D(467,1,{467:1},WQe),h.a=null,h.b=0,I(Ib,"BKCompactor/ClassNode",467),D(1427,1,Uo,Xet),h.rg=function(t){return l(Q(l(t,36),(ft(),Lu)),21).Hc((Ho(),vf))?qEt:null},h.Kf=function(t,n){GIn(this,l(t,36),n)},h.d=!1;var qEt;I(Ib,"BKNodePlacer",1427),D(1700,1,{},fte),h.d=0,I(Ib,"NeighborhoodInformation",1700),D(1701,1,ii,iXe),h.Ne=function(t,n){return ywn(this,l(t,42),l(n,42))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Ib,"NeighborhoodInformation/NeighborComparator",1701),D(823,1,{}),I(Ib,"ThresholdStrategy",823),D(1825,823,{},YQe),h.wg=function(t,n,r){return this.a.o==(D1(),Y1)?gs:ia},h.xg=function(){},I(Ib,"ThresholdStrategy/NullThresholdStrategy",1825),D(587,1,{587:1},Qet),h.c=!1,h.d=!1,I(Ib,"ThresholdStrategy/Postprocessable",587),D(1826,823,{},XQe),h.wg=function(t,n,r){var a,o,f;return o=n==r,a=this.a.a[r.p]==n,o||a?(f=t,this.a.c==(xd(),w3)?(o&&(f=vle(this,n,!0)),!isNaN(f)&&!isFinite(f)&&a&&(f=vle(this,r,!1))):(o&&(f=vle(this,n,!0)),!isNaN(f)&&!isFinite(f)&&a&&(f=vle(this,r,!1))),f):t},h.xg=function(){for(var t,n,r,a,o;this.d.b!=0;)o=l(h2n(this.d),587),a=Lmt(this,o),a.a&&(t=a.a,r=Rt(this.a.f[this.a.g[o.b.p].p]),!(!r&&!Do(t)&&t.c.i.c==t.d.i.c)&&(n=N2t(this,o),n||Oln(this.e,o)));for(;this.e.a.c.length!=0;)N2t(this,l(P0t(this.e),587))},I(Ib,"ThresholdStrategy/SimpleThresholdStrategy",1826),D(645,1,{645:1,188:1,196:1},dte),h.dg=function(){return Vft(this)},h.qg=function(){return Vft(this)};var Mde;I(mfe,"EdgeRouterFactory",645),D(1485,1,Uo,nie),h.rg=function(t){return rSn(l(t,36))},h.Kf=function(t,n){ELn(l(t,36),n)};var HEt,VEt,UEt,GEt,KEt,zDe,WEt,YEt;I(mfe,"OrthogonalEdgeRouter",1485),D(1478,1,Uo,Yet),h.rg=function(t){return C8n(l(t,36))},h.Kf=function(t,n){GDn(this,l(t,36),n)};var XEt,QEt,JEt,ZEt,IB,eTt;I(mfe,"PolylineEdgeRouter",1478),D(1479,1,Ld,pte),h.Lb=function(t){return A7e(l(t,10))},h.Fb=function(t){return this===t},h.Mb=function(t){return A7e(l(t,10))},I(mfe,"PolylineEdgeRouter/1",1479),D(1872,1,ti,bte),h.Mb=function(t){return l(t,132).c==(J0(),qb)},I(i1,"HyperEdgeCycleDetector/lambda$0$Type",1872),D(1873,1,{},mte),h.Ze=function(t){return l(t,132).d},I(i1,"HyperEdgeCycleDetector/lambda$1$Type",1873),D(1874,1,ti,vte),h.Mb=function(t){return l(t,132).c==(J0(),qb)},I(i1,"HyperEdgeCycleDetector/lambda$2$Type",1874),D(1875,1,{},wte),h.Ze=function(t){return l(t,132).d},I(i1,"HyperEdgeCycleDetector/lambda$3$Type",1875),D(1876,1,{},yte),h.Ze=function(t){return l(t,132).d},I(i1,"HyperEdgeCycleDetector/lambda$4$Type",1876),D(1877,1,{},gte),h.Ze=function(t){return l(t,132).d},I(i1,"HyperEdgeCycleDetector/lambda$5$Type",1877),D(118,1,{34:1,118:1},xN),h.Fd=function(t){return Lun(this,l(t,118))},h.Fb=function(t){var n;return De(t,118)?(n=l(t,118),this.g==n.g):!1},h.Hb=function(){return this.g},h.Ib=function(){var t,n,r,a;for(t=new Th("{"),a=new G(this.n);a.a"+this.b+" ("+Whn(this.c)+")"},h.d=0,I(i1,"HyperEdgeSegmentDependency",132),D(528,22,{3:1,34:1,22:1,528:1},q3e);var qb,E4,tTt=Fr(i1,"HyperEdgeSegmentDependency/DependencyType",528,Hr,Qpn,a1n),nTt;D(1878,1,{},sXe),I(i1,"HyperEdgeSegmentSplitter",1878),D(1879,1,{},QJe),h.a=0,h.b=0,I(i1,"HyperEdgeSegmentSplitter/AreaRating",1879),D(339,1,{339:1},vae),h.a=0,h.b=0,h.c=0,I(i1,"HyperEdgeSegmentSplitter/FreeArea",339),D(1880,1,ii,a8),h.Ne=function(t,n){return Wfn(l(t,118),l(n,118))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(i1,"HyperEdgeSegmentSplitter/lambda$0$Type",1880),D(1881,1,fr,Cat),h.Cd=function(t){kmn(this.a,this.d,this.c,this.b,l(t,118))},h.b=0,I(i1,"HyperEdgeSegmentSplitter/lambda$1$Type",1881),D(1882,1,{},xte),h.Kb=function(t){return new bn(null,new kn(l(t,118).e,16))},I(i1,"HyperEdgeSegmentSplitter/lambda$2$Type",1882),D(1883,1,{},kte),h.Kb=function(t){return new bn(null,new kn(l(t,118).j,16))},I(i1,"HyperEdgeSegmentSplitter/lambda$3$Type",1883),D(1884,1,{},Ete),h.Ye=function(t){return ze(Ge(t))},I(i1,"HyperEdgeSegmentSplitter/lambda$4$Type",1884),D(664,1,{},Hae),h.a=0,h.b=0,h.c=0,I(i1,"OrthogonalRoutingGenerator",664),D(1703,1,{},Tte),h.Kb=function(t){return new bn(null,new kn(l(t,118).e,16))},I(i1,"OrthogonalRoutingGenerator/lambda$0$Type",1703),D(1704,1,{},Cte),h.Kb=function(t){return new bn(null,new kn(l(t,118).j,16))},I(i1,"OrthogonalRoutingGenerator/lambda$1$Type",1704),D(670,1,{}),I(vfe,"BaseRoutingDirectionStrategy",670),D(1870,670,{},eJe),h.yg=function(t,n,r){var a,o,f,g,w,E,C,L,B,z,V,J,te;if(!(t.r&&!t.q))for(L=n+t.o*r,C=new G(t.n);C.aDd&&(f=L,o=t,a=new lt(B,f),ui(g.a,a),Vw(this,g,o,a,!1),z=t.r,z&&(V=ze(Ge(ff(z.e,0))),a=new lt(V,f),ui(g.a,a),Vw(this,g,o,a,!1),f=n+z.o*r,o=z,a=new lt(V,f),ui(g.a,a),Vw(this,g,o,a,!1)),a=new lt(te,f),ui(g.a,a),Vw(this,g,o,a,!1)))},h.zg=function(t){return t.i.n.a+t.n.a+t.a.a},h.Ag=function(){return Ct(),Dr},h.Bg=function(){return Ct(),Qn},I(vfe,"NorthToSouthRoutingStrategy",1870),D(1871,670,{},tJe),h.yg=function(t,n,r){var a,o,f,g,w,E,C,L,B,z,V,J,te;if(!(t.r&&!t.q))for(L=n-t.o*r,C=new G(t.n);C.aDd&&(f=L,o=t,a=new lt(B,f),ui(g.a,a),Vw(this,g,o,a,!1),z=t.r,z&&(V=ze(Ge(ff(z.e,0))),a=new lt(V,f),ui(g.a,a),Vw(this,g,o,a,!1),f=n-z.o*r,o=z,a=new lt(V,f),ui(g.a,a),Vw(this,g,o,a,!1)),a=new lt(te,f),ui(g.a,a),Vw(this,g,o,a,!1)))},h.zg=function(t){return t.i.n.a+t.n.a+t.a.a},h.Ag=function(){return Ct(),Qn},h.Bg=function(){return Ct(),Dr},I(vfe,"SouthToNorthRoutingStrategy",1871),D(1869,670,{},nJe),h.yg=function(t,n,r){var a,o,f,g,w,E,C,L,B,z,V,J,te;if(!(t.r&&!t.q))for(L=n+t.o*r,C=new G(t.n);C.aDd&&(f=L,o=t,a=new lt(f,B),ui(g.a,a),Vw(this,g,o,a,!0),z=t.r,z&&(V=ze(Ge(ff(z.e,0))),a=new lt(f,V),ui(g.a,a),Vw(this,g,o,a,!0),f=n+z.o*r,o=z,a=new lt(f,V),ui(g.a,a),Vw(this,g,o,a,!0)),a=new lt(f,te),ui(g.a,a),Vw(this,g,o,a,!0)))},h.zg=function(t){return t.i.n.b+t.n.b+t.a.b},h.Ag=function(){return Ct(),ar},h.Bg=function(){return Ct(),er},I(vfe,"WestToEastRoutingStrategy",1869),D(828,1,{},Ske),h.Ib=function(){return Tb(this.a)},h.b=0,h.c=!1,h.d=!1,h.f=0,I(Zy,"NubSpline",828),D(418,1,{418:1},dbt,rot),I(Zy,"NubSpline/PolarCP",418),D(1480,1,Uo,Ydt),h.rg=function(t){return gxn(l(t,36))},h.Kf=function(t,n){hIn(this,l(t,36),n)};var rTt,iTt,sTt,aTt,oTt;I(Zy,"SplineEdgeRouter",1480),D(274,1,{274:1},WH),h.Ib=function(){return this.a+" ->("+this.c+") "+this.b},h.c=0,I(Zy,"SplineEdgeRouter/Dependency",274),D(465,22,{3:1,34:1,22:1,465:1},H3e);var Hb,K6,cTt=Fr(Zy,"SplineEdgeRouter/SideToProcess",465,Hr,r2n,o1n),uTt;D(1481,1,ti,Ste),h.Mb=function(t){return GA(),!l(t,131).o},I(Zy,"SplineEdgeRouter/lambda$0$Type",1481),D(1482,1,{},_te),h.Ze=function(t){return GA(),l(t,131).v+1},I(Zy,"SplineEdgeRouter/lambda$1$Type",1482),D(1483,1,fr,Jet),h.Cd=function(t){Ldn(this.a,this.b,l(t,42))},I(Zy,"SplineEdgeRouter/lambda$2$Type",1483),D(1484,1,fr,Zet),h.Cd=function(t){Mdn(this.a,this.b,l(t,42))},I(Zy,"SplineEdgeRouter/lambda$3$Type",1484),D(131,1,{34:1,131:1},_pt,Ike),h.Fd=function(t){return Iun(this,l(t,131))},h.b=0,h.e=!1,h.f=0,h.g=0,h.j=!1,h.k=!1,h.n=0,h.o=!1,h.p=!1,h.q=!1,h.s=0,h.u=0,h.v=0,h.F=0,I(Zy,"SplineSegment",131),D(468,1,{468:1},Ate),h.a=0,h.b=!1,h.c=!1,h.d=!1,h.e=!1,h.f=0,I(Zy,"SplineSegment/EdgeInformation",468),D(1198,1,{},CS),I(gp,LEe,1198),D(1199,1,ii,Lte),h.Ne=function(t,n){return Xkn(l(t,121),l(n,121))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(gp,E3t,1199),D(1197,1,{},dZe),I(gp,"MrTree",1197),D(405,22,{3:1,34:1,22:1,405:1,188:1,196:1},vq),h.dg=function(){return Wpt(this)},h.qg=function(){return Wpt(this)};var NW,lM,hM,fM,qDe=Fr(gp,"TreeLayoutPhases",405,Hr,smn,c1n),lTt;D(1112,205,tv,Hrt),h.rf=function(t,n){var r,a,o,f,g,w,E,C;for(Rt(Bt(at(t,(Hc(),dIe))))||KO((r=new Yv((aw(),new Jv(t))),r)),g=n.eh(xfe),g.Ug("build tGraph",1),w=(E=new nN,pc(E,t),rt(E,(Qi(),gM),t),C=new Pr,H_n(t,E,C),cAn(t,E,C),E),g.Vg(),g=n.eh(xfe),g.Ug("Split graph",1),f=Y_n(this.a,w),g.Vg(),o=new G(f);o.a"+Bm(this.c):"e_"+es(this)},I(vL,"TEdge",65),D(121,137,{3:1,121:1,96:1,137:1},nN),h.Ib=function(){var t,n,r,a,o;for(o=null,a=Rr(this.b,0);a.b!=a.d.c;)r=l(Br(a),40),o+=(r.c==null||r.c.length==0?"n_"+r.g:"n_"+r.c)+` `;for(n=Rr(this.a,0);n.b!=n.d.c;)t=l(Br(n),65),o+=(t.b&&t.c?Bm(t.b)+"->"+Bm(t.c):"e_"+es(t))+` -`;return o};var COn=I(vL,"TGraph",121);D(643,508,{3:1,508:1,643:1,96:1,137:1}),I(vL,"TShape",643),D(40,643,{3:1,508:1,40:1,643:1,96:1,137:1},xce),h.Ib=function(){return Bm(this)};var PW=I(vL,"TNode",40);D(236,1,hg,Hg),h.Jc=function(t){to(this,t)},h.Kc=function(){var t;return t=Rr(this.a.d,0),new C5(t)},I(vL,"TNode/2",236),D(329,1,Oa,C5),h.Nb=function(t){Za(this,t)},h.Pb=function(){return l(Br(this.a),65).c},h.Ob=function(){return QI(this.a)},h.Qb=function(){Yoe(this.a)},I(vL,"TNode/2/1",329),D(1923,1,ts,Bte),h.Kf=function(t,n){jIn(this,l(t,121),n)},I(Su,"CompactionProcessor",1923),D(1924,1,ii,lXe),h.Ne=function(t,n){return S3n(this.a,l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Su,"CompactionProcessor/lambda$0$Type",1924),D(1925,1,ti,ttt),h.Mb=function(t){return Ipn(this.b,this.a,l(t,42))},h.a=0,h.b=0,I(Su,"CompactionProcessor/lambda$1$Type",1925),D(1934,1,ii,o8),h.Ne=function(t,n){return Egn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Su,"CompactionProcessor/lambda$10$Type",1934),D(1935,1,ii,Zj),h.Ne=function(t,n){return Fhn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Su,"CompactionProcessor/lambda$11$Type",1935),D(1936,1,ii,Fte),h.Ne=function(t,n){return Tgn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Su,"CompactionProcessor/lambda$12$Type",1936),D(1926,1,ti,hXe),h.Mb=function(t){return yhn(this.a,l(t,42))},h.a=0,I(Su,"CompactionProcessor/lambda$2$Type",1926),D(1927,1,ti,fXe),h.Mb=function(t){return xhn(this.a,l(t,42))},h.a=0,I(Su,"CompactionProcessor/lambda$3$Type",1927),D(1928,1,ti,pI),h.Mb=function(t){return l(t,40).c.indexOf(DG)==-1},I(Su,"CompactionProcessor/lambda$4$Type",1928),D(1929,1,{},dXe),h.Kb=function(t){return Nbn(this.a,l(t,40))},h.a=0,I(Su,"CompactionProcessor/lambda$5$Type",1929),D(1930,1,{},gXe),h.Kb=function(t){return qvn(this.a,l(t,40))},h.a=0,I(Su,"CompactionProcessor/lambda$6$Type",1930),D(1931,1,ii,pXe),h.Ne=function(t,n){return Zmn(this.a,l(t,240),l(n,240))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Su,"CompactionProcessor/lambda$7$Type",1931),D(1932,1,ii,bXe),h.Ne=function(t,n){return evn(this.a,l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Su,"CompactionProcessor/lambda$8$Type",1932),D(1933,1,ii,Rte),h.Ne=function(t,n){return Rhn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Su,"CompactionProcessor/lambda$9$Type",1933),D(1921,1,ts,jte),h.Kf=function(t,n){PSn(l(t,121),n)},I(Su,"DirectionProcessor",1921),D(1913,1,ts,qrt),h.Kf=function(t,n){iAn(this,l(t,121),n)},I(Su,"FanProcessor",1913),D(1937,1,ts,$te),h.Kf=function(t,n){ESn(l(t,121),n)},I(Su,"GraphBoundsProcessor",1937),D(1938,1,{},zte),h.Ye=function(t){return l(t,40).e.a},I(Su,"GraphBoundsProcessor/lambda$0$Type",1938),D(1939,1,{},qte),h.Ye=function(t){return l(t,40).e.b},I(Su,"GraphBoundsProcessor/lambda$1$Type",1939),D(1940,1,{},Hte),h.Ye=function(t){return rln(l(t,40))},I(Su,"GraphBoundsProcessor/lambda$2$Type",1940),D(1941,1,{},Vte),h.Ye=function(t){return nln(l(t,40))},I(Su,"GraphBoundsProcessor/lambda$3$Type",1941),D(262,22,{3:1,34:1,22:1,262:1,196:1},ow),h.dg=function(){switch(this.g){case 0:return new bJe;case 1:return new qrt;case 2:return new pJe;case 3:return new n$;case 4:return new Ute;case 8:return new e$;case 5:return new jte;case 6:return new i$;case 7:return new Bte;case 9:return new $te;case 10:return new Kte;default:throw ue(new Yn(Fhe+(this.f!=null?this.f:""+this.g)))}};var HDe,VDe,UDe,GDe,KDe,WDe,YDe,XDe,QDe,JDe,Dde,SOn=Fr(Su,Rhe,262,Hr,Bft,o1n),hTt;D(1920,1,ts,e$),h.Kf=function(t,n){BDn(l(t,121),n)},I(Su,"LevelCoordinatesProcessor",1920),D(1918,1,ts,Ute),h.Kf=function(t,n){rCn(this,l(t,121),n)},h.a=0,I(Su,"LevelHeightProcessor",1918),D(1919,1,hg,t$),h.Jc=function(t){to(this,t)},h.Kc=function(){return Cn(),Mk(),AT},I(Su,"LevelHeightProcessor/1",1919),D(1914,1,ts,pJe),h.Kf=function(t,n){mSn(this,l(t,121),n)},I(Su,"LevelProcessor",1914),D(1915,1,ti,Gte),h.Mb=function(t){return Rt(Bt(Q(l(t,40),(Qi(),Vb))))},I(Su,"LevelProcessor/lambda$0$Type",1915),D(1916,1,ts,n$),h.Kf=function(t,n){ekn(this,l(t,121),n)},h.a=0,I(Su,"NeighborsProcessor",1916),D(1917,1,hg,r$),h.Jc=function(t){to(this,t)},h.Kc=function(){return Cn(),Mk(),AT},I(Su,"NeighborsProcessor/1",1917),D(1922,1,ts,i$),h.Kf=function(t,n){rAn(this,l(t,121),n)},h.a=0,I(Su,"NodePositionProcessor",1922),D(1912,1,ts,bJe),h.Kf=function(t,n){RLn(this,l(t,121),n)},I(Su,"RootProcessor",1912),D(1942,1,ts,Kte),h.Kf=function(t,n){N6n(l(t,121),n)},I(Su,"Untreeifyer",1942),D(392,22,{3:1,34:1,22:1,392:1},Ose);var OB,Ide,ZDe,eIe=Fr(UP,"EdgeRoutingMode",392,Hr,X2n,c1n),fTt,NB,QT,Ode,tIe,nIe,Nde,Pde,rIe,Bde,iIe,Fde,dM,Rde,BW,FW,k0,c1,JT,gM,pM,C2,sIe,dTt,jde,Vb,PB,BB;D(862,1,Pf,rie),h.hf=function(t){sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,fCe),""),pyt),"Turns on Tree compaction which decreases the size of the whole tree by placing nodes of multiple levels in one large level"),(Hn(),!1)),(g2(),ya)),Ns),un((r1(),Pn))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,dCe),""),"Edge End Texture Length"),"Should be set to the length of the texture at the end of an edge. This value can be used to improve the Edge Routing."),7),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,gCe),""),"Tree Level"),"The index for the tree level the node is in"),pt(0)),Tc),ro),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,pCe),""),pyt),"When set to a positive number this option will force the algorithm to place the node to the specified position within the trees layer if weighting is set to constraint"),pt(-1)),Tc),ro),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,bCe),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),cIe),ps),yIe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,mCe),""),"Edge Routing Mode"),"Chooses an Edge Routing algorithm."),aIe),ps),eIe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,vCe),""),"Search Order"),"Which search order to use when computing a spanning tree."),oIe),ps),kIe),un(Pn)))),iwt((new v8,t))};var gTt,pTt,bTt,aIe,mTt,vTt,oIe,wTt,yTt,cIe;I(UP,"MrTreeMetaDataProvider",862),D(1006,1,Pf,v8),h.hf=function(t){iwt(t)};var xTt,uIe,lIe,y3,hIe,fIe,$de,kTt,ETt,TTt,CTt,STt,_Tt,ATt,dIe,gIe,pIe,LTt,W6,RW,bIe,MTt,mIe,zde,DTt,ITt,OTt,vIe,NTt,$d,wIe;I(UP,"MrTreeOptions",1006),D(1007,1,{},Wte),h.sf=function(){var t;return t=new Hrt,t},h.tf=function(t){},I(UP,"MrTreeOptions/MrtreeFactory",1007),D(353,22,{3:1,34:1,22:1,353:1},wq);var qde,jW,Hde,Vde,yIe=Fr(UP,"OrderWeighting",353,Hr,imn,u1n),PTt;D(433,22,{3:1,34:1,22:1,433:1},V3e);var xIe,Ude,kIe=Fr(UP,"TreeifyingOrder",433,Hr,Zpn,l1n),BTt;D(1486,1,Uo,aie),h.rg=function(t){return l(t,121),FTt},h.Kf=function(t,n){g3n(this,l(t,121),n)};var FTt;I("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1486),D(1487,1,Uo,dk),h.rg=function(t){return l(t,121),RTt},h.Kf=function(t,n){xSn(this,l(t,121),n)};var RTt;I(pT,"NodeOrderer",1487),D(1494,1,{},pwe),h.td=function(t){return Yit(t)},I(pT,"NodeOrderer/0methodref$lambda$6$Type",1494),D(1488,1,ti,ane),h.Mb=function(t){return ux(),Rt(Bt(Q(l(t,40),(Qi(),Vb))))},I(pT,"NodeOrderer/lambda$0$Type",1488),D(1489,1,ti,one),h.Mb=function(t){return ux(),l(Q(l(t,40),(Hc(),W6)),17).a<0},I(pT,"NodeOrderer/lambda$1$Type",1489),D(1490,1,ti,vXe),h.Mb=function(t){return Hwn(this.a,l(t,40))},I(pT,"NodeOrderer/lambda$2$Type",1490),D(1491,1,ti,mXe),h.Mb=function(t){return Fbn(this.a,l(t,40))},I(pT,"NodeOrderer/lambda$3$Type",1491),D(1492,1,ii,cne),h.Ne=function(t,n){return fwn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(pT,"NodeOrderer/lambda$4$Type",1492),D(1493,1,ti,une),h.Mb=function(t){return ux(),l(Q(l(t,40),(Qi(),Pde)),17).a!=0},I(pT,"NodeOrderer/lambda$5$Type",1493),D(1495,1,Uo,sie),h.rg=function(t){return l(t,121),jTt},h.Kf=function(t,n){M_n(this,l(t,121),n)},h.b=0;var jTt;I("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1495),D(1496,1,Uo,iie),h.rg=function(t){return l(t,121),$Tt},h.Kf=function(t,n){h_n(l(t,121),n)};var $Tt,_On=I(vh,"EdgeRouter",1496);D(1498,1,ii,sne),h.Ne=function(t,n){return ru(l(t,17).a,l(n,17).a)},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/0methodref$compare$Type",1498),D(1503,1,{},Yte),h.Ye=function(t){return ze(Ge(t))},I(vh,"EdgeRouter/1methodref$doubleValue$Type",1503),D(1505,1,ii,a$),h.Ne=function(t,n){return Yi(ze(Ge(t)),ze(Ge(n)))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/2methodref$compare$Type",1505),D(1507,1,ii,Xte),h.Ne=function(t,n){return Yi(ze(Ge(t)),ze(Ge(n)))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/3methodref$compare$Type",1507),D(1509,1,{},s$),h.Ye=function(t){return ze(Ge(t))},I(vh,"EdgeRouter/4methodref$doubleValue$Type",1509),D(1511,1,ii,Qte),h.Ne=function(t,n){return Yi(ze(Ge(t)),ze(Ge(n)))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/5methodref$compare$Type",1511),D(1513,1,ii,bI),h.Ne=function(t,n){return Yi(ze(Ge(t)),ze(Ge(n)))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/6methodref$compare$Type",1513),D(1497,1,{},Jte),h.Kb=function(t){return tp(),l(Q(l(t,40),(Hc(),$d)),17)},I(vh,"EdgeRouter/lambda$0$Type",1497),D(1508,1,{},Zte),h.Kb=function(t){return Qhn(l(t,40))},I(vh,"EdgeRouter/lambda$11$Type",1508),D(1510,1,{},ntt),h.Kb=function(t){return Cdn(this.b,this.a,l(t,40))},h.a=0,h.b=0,I(vh,"EdgeRouter/lambda$13$Type",1510),D(1512,1,{},rtt),h.Kb=function(t){return Jhn(this.b,this.a,l(t,40))},h.a=0,h.b=0,I(vh,"EdgeRouter/lambda$15$Type",1512),D(1514,1,ii,ene),h.Ne=function(t,n){return l6n(l(t,65),l(n,65))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/lambda$17$Type",1514),D(1515,1,ii,tne),h.Ne=function(t,n){return h6n(l(t,65),l(n,65))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/lambda$18$Type",1515),D(1516,1,ii,nne),h.Ne=function(t,n){return d6n(l(t,65),l(n,65))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/lambda$19$Type",1516),D(1499,1,ti,wXe),h.Mb=function(t){return g2n(this.a,l(t,40))},h.a=0,I(vh,"EdgeRouter/lambda$2$Type",1499),D(1517,1,ii,o$),h.Ne=function(t,n){return f6n(l(t,65),l(n,65))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/lambda$20$Type",1517),D(1500,1,ii,rne),h.Ne=function(t,n){return hdn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/lambda$3$Type",1500),D(1501,1,ii,ine),h.Ne=function(t,n){return fdn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/lambda$4$Type",1501),D(1502,1,{},lne),h.Kb=function(t){return Zhn(l(t,40))},I(vh,"EdgeRouter/lambda$5$Type",1502),D(1504,1,{},itt),h.Kb=function(t){return Sdn(this.b,this.a,l(t,40))},h.a=0,h.b=0,I(vh,"EdgeRouter/lambda$7$Type",1504),D(1506,1,{},stt),h.Kb=function(t){return efn(this.b,this.a,l(t,40))},h.a=0,h.b=0,I(vh,"EdgeRouter/lambda$9$Type",1506),D(675,1,{675:1},Fdt),h.e=0,h.f=!1,h.g=!1,I(vh,"MultiLevelEdgeNodeNodeGap",675),D(1943,1,ii,hne),h.Ne=function(t,n){return T2n(l(t,240),l(n,240))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"MultiLevelEdgeNodeNodeGap/lambda$0$Type",1943),D(1944,1,ii,fne),h.Ne=function(t,n){return C2n(l(t,240),l(n,240))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"MultiLevelEdgeNodeNodeGap/lambda$1$Type",1944);var Y6;D(501,22,{3:1,34:1,22:1,501:1,188:1,196:1},U3e),h.dg=function(){return E1t(this)},h.qg=function(){return E1t(this)};var $W,X6,EIe=Fr(wCe,"RadialLayoutPhases",501,Hr,Gpn,h1n),zTt;D(1113,205,tv,fZe),h.rf=function(t,n){var r,a,o,f,g,w;if(r=cbt(this,t),n.Ug("Radial layout",r.c.length),Rt(Bt(at(t,(Sb(),NIe))))||KO((a=new Yv((aw(),new Jv(t))),a)),w=pxn(t),Hi(t,(H5(),Y6),w),!w)throw ue(new Yn("The given graph is not a tree!"));for(o=ze(Ge(at(t,HW))),o==0&&(o=qpt(t)),Hi(t,HW,o),g=new G(cbt(this,t));g.a=3)for(ot=l(Oe($e,0),27),St=l(Oe($e,1),27),f=0;f+2<$e.i;)if(Ze=ot,ot=St,St=l(Oe($e,f+2),27),Ze.f>=ot.f+St.f+L||St.f>=Ze.f+ot.f+L){cn=!0;break}else++f;else cn=!0;if(!cn){for(z=$e.i,w=new or($e);w.e!=w.i.gc();)g=l(gr(w),27),Hi(g,(pi(),XB),pt(z)),--z;Rmt(t,new L8),n.Vg();return}for(r=(qO(this.a),X0(this.a,(WV(),RB),l(at(t,uOe),188)),X0(this.a,VW,l(at(t,rOe),188)),X0(this.a,rge,l(at(t,aOe),188)),uye(this.a,(Bn=new Xs,fi(Bn,RB,(sU(),age)),fi(Bn,VW,sge),Rt(Bt(at(t,tOe)))&&fi(Bn,RB,ige),Bn)),bP(this.a,t)),C=1/r.c.length,J=new G(r);J.a0&&K0t((Xn(n-1,t.length),t.charCodeAt(n-1)),N3t);)--n;if(a>=n)throw ue(new Yn("The given string does not contain any numbers."));if(o=Gy((Ga(a,n,t.length),t.substr(a,n-a)),`,|;|\r| -`),o.length!=2)throw ue(new Yn("Exactly two numbers are expected, "+o.length+" were found."));try{this.a=jy($y(o[0])),this.b=jy($y(o[1]))}catch(f){throw f=bs(f),De(f,130)?(r=f,ue(new Yn(P3t+r))):ue(f)}},h.Ib=function(){return"("+this.a+","+this.b+")"},h.a=0,h.b=0;var Ea=I($P,"KVector",8);D(75,67,{3:1,4:1,20:1,31:1,56:1,16:1,67:1,15:1,75:1,423:1},bl,Gz,frt),h.Pc=function(){return Dyn(this)},h.cg=function(t){var n,r,a,o,f,g;a=Gy(t,`,|;|\\(|\\)|\\[|\\]|\\{|\\}| | | -`),Ch(this);try{for(r=0,f=0,o=0,g=0;r0&&(f%2==0?o=jy(a[r]):g=jy(a[r]),f>0&&f%2!=0&&ci(this,new lt(o,g)),++f),++r}catch(w){throw w=bs(w),De(w,130)?(n=w,ue(new Yn("The given string does not match the expected format for vectors."+n))):ue(w)}},h.Ib=function(){var t,n,r;for(t=new Th("("),n=Rr(this,0);n.b!=n.d.c;)r=l(Br(n),8),hi(t,r.a+","+r.b),n.b!=n.d.c&&(t.a+="; ");return(t.a+=")",t).a};var GOe=I($P,"KVectorChain",75);D(255,22,{3:1,34:1,22:1,255:1},__);var Sge,eY,tY,HB,VB,nY,KOe=Fr(nh,"Alignment",255,Hr,Avn,P1n),xSt;D(991,1,Pf,fie),h.hf=function(t){xmt(t)};var WOe,_ge,kSt,YOe,XOe,ESt,QOe,TSt,CSt,JOe,ZOe,SSt;I(nh,"BoxLayouterOptions",991),D(992,1,{},ek),h.sf=function(){var t;return t=new jne,t},h.tf=function(t){},I(nh,"BoxLayouterOptions/BoxFactory",992),D(298,22,{3:1,34:1,22:1,298:1},A_);var EM,Age,TM,CM,SM,Lge,Mge=Fr(nh,"ContentAlignment",298,Hr,Lvn,B1n),_St;D(699,1,Pf,uz),h.hf=function(t){sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,Byt),""),"Layout Algorithm"),"Select a specific layout algorithm."),(g2(),J6)),zt),un((r1(),Pn))))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,Fyt),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),X1),MOn),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,qTe),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),eNe),ps),KOe),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,Ox),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,tSe),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),X1),GOe),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,SG),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),nNe),t9),Mge),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,VP),""),"Debug Mode"),"Whether additional debug information shall be generated."),(Hn(),!1)),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,gfe),""),kEe),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),rNe),ps),LM),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,HP),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),aNe),ps),Vge),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ZCe),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,CG),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),uNe),ps),YNe),rs(Pn,he(le(xg,1),it,170,0,[ha]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Xw),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),vNe),X1),wAe),rs(Pn,he(le(xg,1),it,170,0,[ha]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,hL),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,AG),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,fL),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Nhe),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),ENe),ps),JNe),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,_G),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),X1),Ea),rs(ha,he(le(xg,1),it,170,0,[yv,S2]))))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,NP),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),Tc),ro),rs(ha,he(le(xg,1),it,170,0,[zd]))))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,oG),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),Tc),ro),un(Pn)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,lL),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ZTe),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),lNe),X1),GOe),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,nCe),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),!1),ya),Ns),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,rCe),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),ya),Ns),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,rOn),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),X1),POn),rs(Pn,he(le(xg,1),it,170,0,[S2]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,sCe),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),hNe),X1),vAe),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,$Te),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),!1),ya),Ns),rs(ha,he(le(xg,1),it,170,0,[zd,yv,S2]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Ryt),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),fo),ta),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,jyt),""),"Child Area Width"),"The width of the area occupied by the laid out children of a node."),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,$yt),""),"Child Area Height"),"The height of the area occupied by the laid out children of a node."),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,PP),""),Dyt),"Turns topdown layout on and off. If this option is enabled, hierarchical layout will be computed first for the root node and then for its children recursively. Layouts are then scaled down to fit the area provided by their parents. Graphs must follow a certain structure for topdown layout to work properly. {@link TopdownNodeTypes.PARALLEL_NODE} nodes must have children of type {@link TopdownNodeTypes.HIERARCHICAL_NODE} and must define {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} for their children. Furthermore they need to be laid out using an algorithm that is a {@link TopdownLayoutProvider}. Hierarchical nodes can also be parents of other hierarchical nodes and can optionally use a {@link TopdownSizeApproximator} to dynamically set sizes during topdown layout. In this case {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} should be set on the node itself rather than the parent. The values are then used by the size approximator as base values. Hierarchical nodes require the layout option {@link nodeSize.fixedGraphSize} to be true to prevent the algorithm used there from resizing the hierarchical node. This option is not supported if 'Hierarchy Handling' is set to 'INCLUDE_CHILDREN'"),!1),ya),Ns),un(Pn)))),Qs(t,PP,Qw,null),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,zyt),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,qyt),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),pt(100)),Tc),ro),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Hyt),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Vyt),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),pt(4e3)),Tc),ro),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Uyt),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),pt(400)),Tc),ro),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Gyt),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Kyt),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Wyt),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!0),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Yyt),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,eSe),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),tNe),ps),cPe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,LTe),U1),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,MTe),U1),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,_he),U1),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,DTe),U1),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Ohe),U1),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,dfe),U1),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ITe),U1),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,PTe),U1),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,OTe),U1),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,NTe),U1),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Jy),U1),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,BTe),U1),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,FTe),U1),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),fo),ta),rs(Pn,he(le(xg,1),it,170,0,[ha]))))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,RTe),U1),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),X1),g_t),rs(ha,he(le(xg,1),it,170,0,[zd,yv,S2]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,aCe),U1),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),NNe),X1),vAe),un(Pn)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,bfe),Jyt),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),Tc),ro),rs(Pn,he(le(xg,1),it,170,0,[ha]))))),Qs(t,bfe,pfe,BSt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,pfe),Jyt),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),wNe),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,UTe),Zyt),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),dNe),X1),wAe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,fT),Zyt),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),gNe),t9),Ko),rs(ha,he(le(xg,1),it,170,0,[S2]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,WTe),RG),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),xNe),ps),OM),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,YTe),RG),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),ps),OM),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,XTe),RG),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),ps),OM),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,QTe),RG),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),ps),OM),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,JTe),RG),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),ps),OM),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,x6),Rfe),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),pNe),t9),BM),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Nx),Rfe),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),mNe),t9),ePe),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Px),Rfe),"Node Size Minimum"),"The minimal size to which a node can be reduced."),bNe),X1),Ea),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,hT),Rfe),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,eCe),ffe),"Edge Label Placement"),"Gives a hint on where to put edge labels."),iNe),ps),FNe),un(S2)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,cG),ffe),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),!1),ya),Ns),un(S2)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,iOn),"font"),"Font Name"),"Font name used for a label."),J6),zt),un(S2)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,Xyt),"font"),"Font Size"),"Font size used for a label."),Tc),ro),un(S2)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,iCe),jfe),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),X1),Ea),un(yv)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,tCe),jfe),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),Tc),ro),un(yv)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,zTe),jfe),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),SNe),ps),Oo),un(yv)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,jTe),jfe),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),fo),ta),un(yv)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,dT),iSe),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),TNe),t9),cY),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,GTe),iSe),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),ya),Ns),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,KTe),iSe),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),!0),ya),Ns),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,BP),KP),"Topdown Scale Factor"),"The scaling factor to be applied to the nodes laid out within the node in recursive topdown layout. The difference to 'Scale Factor' is that the node itself is not scaled. This value has to be set on hierarchical nodes."),1),fo),ta),un(Pn)))),Qs(t,BP,Qw,VSt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,nSe),KP),"Topdown Size Approximator"),"The size approximator to be used to set sizes of hierarchical nodes during topdown layout. The default value is null, which results in nodes keeping whatever size is defined for them e.g. through parent parallel node or by manually setting the size."),null),ps),gY),un(ha)))),Qs(t,nSe,Qw,USt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,FP),KP),"Topdown Hierarchical Node Width"),"The fixed size of a hierarchical node when using topdown layout. If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),150),fo),ta),rs(Pn,he(le(xg,1),it,170,0,[ha]))))),Qs(t,FP,Qw,null),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,RP),KP),"Topdown Hierarchical Node Aspect Ratio"),"The fixed aspect ratio of a hierarchical node when using topdown layout. Default is 1/sqrt(2). If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),1.414),fo),ta),rs(Pn,he(le(xg,1),it,170,0,[ha]))))),Qs(t,RP,Qw,null),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Qw),KP),"Topdown Node Type"),"The different node types used for topdown layout. If the node type is set to {@link TopdownNodeTypes.PARALLEL_NODE} the algorithm must be set to a {@link TopdownLayoutProvider} such as {@link TopdownPacking}. The {@link nodeSize.fixedGraphSize} option is technically only required for hierarchical nodes."),null),ps),nPe),un(ha)))),Qs(t,Qw,hT,null),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,rSe),KP),"Topdown Scale Cap"),"Determines the upper limit for the topdown scale factor. The default value is 1.0 which ensures that nested children never end up appearing larger than their parents in terms of unit sizes such as the font size. If the limit is larger, nodes will fully utilize the available space, but it is counteriniuitive for inner nodes to have a larger scale than outer nodes."),1),fo),ta),un(Pn)))),Qs(t,rSe,Qw,HSt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,HTe),e4t),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),!1),ya),Ns),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,VTe),e4t),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),ya),Ns),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Ahe),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),fo),ta),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Qyt),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),cNe),ps),HNe),un(zd)))),m_(t,new nx(f_(Ck(Tk(new ny,sr),"Layered"),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))),m_(t,new nx(f_(Ck(Tk(new ny,"org.eclipse.elk.orthogonal"),"Orthogonal"),`Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`))),m_(t,new nx(f_(Ck(Tk(new ny,Yu),"Force"),"Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))),m_(t,new nx(f_(Ck(Tk(new ny,"org.eclipse.elk.circle"),"Circle"),"Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))),m_(t,new nx(f_(Ck(Tk(new ny,byt),"Tree"),"Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))),m_(t,new nx(f_(Ck(Tk(new ny,"org.eclipse.elk.planar"),"Planar"),"Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))),m_(t,new nx(f_(Ck(Tk(new ny,gf),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),amt((new die,t)),xmt((new fie,t)),Nbt((new lz,t))};var eC,ASt,eNe,Z6,LSt,MSt,tNe,e7,t7,DSt,UB,nNe,GB,xv,rNe,Dge,Ige,iNe,sNe,aNe,oNe,cNe,ISt,n7,uNe,OSt,KB,Oge,WB,Nge,x3,lNe,tC,hNe,fNe,dNe,r7,gNe,kv,pNe,C4,i7,bNe,Ub,mNe,rY,YB,_2,vNe,NSt,wNe,PSt,BSt,yNe,xNe,Pge,Bge,Fge,Rge,kNe,rh,_M,ENe,jge,$ge,S4,TNe,CNe,s7,SNe,n9,XB,zge,a7,FSt,qge,RSt,jSt,_Ne,$St,ANe,LNe,r9,MNe,iY,DNe,INe,Ev,zSt,ONe,NNe,PNe,sY,QB,AM,i9,qSt,HSt,aY,VSt,BNe,USt;I(nh,"CoreOptions",699),D(88,22,{3:1,34:1,22:1,88:1},mO);var Q1,uc,vc,J1,wf,LM=Fr(nh,kEe,88,Hr,Omn,F1n),GSt;D(278,22,{3:1,34:1,22:1,278:1},zse);var nC,_4,rC,FNe=Fr(nh,"EdgeLabelPlacement",278,Hr,cbn,R1n),KSt;D(223,22,{3:1,34:1,22:1,223:1},xq);var iC,JB,s9,Hge,Vge=Fr(nh,"EdgeRouting",223,Hr,cmn,j1n),WSt;D(321,22,{3:1,34:1,22:1,321:1},L_);var RNe,jNe,$Ne,zNe,Uge,qNe,HNe=Fr(nh,"EdgeType",321,Hr,_vn,$1n),YSt;D(989,1,Pf,die),h.hf=function(t){amt(t)};var VNe,UNe,GNe,KNe,XSt,WNe,MM;I(nh,"FixedLayouterOptions",989),D(990,1,{},v$),h.sf=function(){var t;return t=new Une,t},h.tf=function(t){},I(nh,"FixedLayouterOptions/FixedFactory",990),D(346,22,{3:1,34:1,22:1,346:1},qse);var A2,oY,DM,YNe=Fr(nh,"HierarchyHandling",346,Hr,abn,z1n),QSt;D(291,22,{3:1,34:1,22:1,291:1},kq);var kg,Gb,ZB,eF,JSt=Fr(nh,"LabelSide",291,Hr,omn,q1n),ZSt;D(95,22,{3:1,34:1,22:1,95:1},D5);var mp,E0,zf,T0,jh,C0,qf,Eg,S0,Ko=Fr(nh,"NodeLabelPlacement",95,Hr,Awn,H1n),e_t;D(256,22,{3:1,34:1,22:1,256:1},vO);var XNe,IM,Kb,QNe,tF,OM=Fr(nh,"PortAlignment",256,Hr,Wmn,V1n),t_t;D(101,22,{3:1,34:1,22:1,101:1},M_);var Tv,Mu,Tg,sC,Z1,Wb,JNe=Fr(nh,"PortConstraints",101,Hr,Svn,U1n),n_t;D(279,22,{3:1,34:1,22:1,279:1},D_);var NM,PM,vp,nF,Yb,a9,cY=Fr(nh,"PortLabelPlacement",279,Hr,Cvn,G1n),r_t;D(64,22,{3:1,34:1,22:1,64:1},wO);var ar,Qn,yf,xf,ll,Ju,ed,_0,zl,_l,Du,ql,hl,fl,A0,$h,zh,Hf,Dr,Pc,er,Oo=Fr(nh,"PortSide",64,Hr,Nmn,K1n),i_t;D(993,1,Pf,lz),h.hf=function(t){Nbt(t)};var s_t,a_t,ZNe,o_t,c_t;I(nh,"RandomLayouterOptions",993),D(994,1,{},w$),h.sf=function(){var t;return t=new qne,t},h.tf=function(t){},I(nh,"RandomLayouterOptions/RandomFactory",994),D(386,22,{3:1,34:1,22:1,386:1},Eq);var A4,rF,iF,Cv,BM=Fr(nh,"SizeConstraint",386,Hr,amn,W1n),u_t;D(264,22,{3:1,34:1,22:1,264:1},I5);var sF,uY,aC,Gge,aF,FM,lY,hY,fY,ePe=Fr(nh,"SizeOptions",264,Hr,$wn,Y1n),l_t;D(280,22,{3:1,34:1,22:1,280:1},Hse);var L4,tPe,dY,nPe=Fr(nh,"TopdownNodeTypes",280,Hr,ubn,X1n),h_t;D(347,22,sSe);var rPe,iPe,gY=Fr(nh,"TopdownSizeApproximator",347,Hr,i2n,J1n);D(987,347,sSe,Wit),h.Tg=function(t){return Tdt(t)},Fr(nh,"TopdownSizeApproximator/1",987,gY,null,null),D(988,347,sSe,Ost),h.Tg=function(t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn;for(n=l(at(t,(pi(),a7)),143),St=(rb(),V=new a_,V),aP(St,t),cn=new Pr,f=new or((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a));f.e!=f.i.gc();)a=l(gr(f),27),Me=(z=new a_,z),LU(Me,St),aP(Me,a),Bn=Tdt(a),F5(Me,b.Math.max(a.g,Bn.a),b.Math.max(a.f,Bn.b)),ju(cn.f,a,Me);for(o=new or((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a));o.e!=o.i.gc();)for(a=l(gr(o),27),L=new or((!a.e&&(a.e=new Ln(js,a,7,4)),a.e));L.e!=L.i.gc();)C=l(gr(L),74),Ze=l(hc(zo(cn.f,a)),27),ot=l(cr(cn,Oe((!C.c&&(C.c=new Ln(_r,C,5,8)),C.c),0)),27),$e=(B=new TI,B),qr((!$e.b&&($e.b=new Ln(_r,$e,4,7)),$e.b),Ze),qr((!$e.c&&($e.c=new Ln(_r,$e,5,8)),$e.c),ot),AU($e,ds(Ze)),aP($e,C);te=l(GO(n.f),205);try{te.rf(St,new x$),lat(n.f,te)}catch(jn){throw jn=bs(jn),De(jn,103)?(J=jn,ue(J)):ue(jn)}return P1(St,t7)||P1(St,e7)||Uke(St),E=ze(Ge(at(St,t7))),w=ze(Ge(at(St,e7))),g=E/w,r=ze(Ge(at(St,QB)))*b.Math.sqrt((!St.a&&(St.a=new nt(Ai,St,10,11)),St.a).i),an=l(at(St,_2),107),Te=an.b+an.c+1,fe=an.d+an.a+1,new lt(b.Math.max(Te,r),b.Math.max(fe,r/g))},Fr(nh,"TopdownSizeApproximator/2",988,gY,null,null);var f_t;D(344,1,{871:1},L8),h.Ug=function(t,n){return Fgt(this,t,n)},h.Vg=function(){apt(this)},h.Wg=function(){return this.q},h.Xg=function(){return this.f?ioe(this.f):null},h.Yg=function(){return ioe(this.a)},h.Zg=function(){return this.p},h.$g=function(){return!1},h._g=function(){return this.n},h.ah=function(){return this.p!=null&&!this.b},h.bh=function(t){var n;this.n&&(n=t,vt(this.f,n))},h.dh=function(t,n){var r,a;this.n&&t&&Tbn(this,(r=new Ust,a=cle(r,t),sDn(r),a),(NV(),Wge))},h.eh=function(t){var n;return this.b?null:(n=uwn(this,this.g),ci(this.a,n),n.i=this,this.d=t,n)},h.fh=function(t){t>0&&!this.b&&c7e(this,t)},h.b=!1,h.c=0,h.d=-1,h.e=null,h.f=null,h.g=-1,h.j=!1,h.k=!1,h.n=!1,h.o=0,h.q=0,h.r=0,I(Uc,"BasicProgressMonitor",344),D(717,205,tv,jne),h.rf=function(t,n){Rmt(t,n)},I(Uc,"BoxLayoutProvider",717),D(983,1,ii,DXe),h.Ne=function(t,n){return sCn(this,l(t,27),l(n,27))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},h.a=!1,I(Uc,"BoxLayoutProvider/1",983),D(163,1,{163:1},hV,vrt),h.Ib=function(){return this.c?oke(this.c):Tb(this.b)},I(Uc,"BoxLayoutProvider/Group",163),D(320,22,{3:1,34:1,22:1,320:1},Tq);var sPe,aPe,oPe,Kge,cPe=Fr(Uc,"BoxLayoutProvider/PackingMode",320,Hr,umn,Z1n),d_t;D(984,1,ii,tk),h.Ne=function(t,n){return Tpn(l(t,163),l(n,163))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Uc,"BoxLayoutProvider/lambda$0$Type",984),D(985,1,ii,nk),h.Ne=function(t,n){return bpn(l(t,163),l(n,163))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Uc,"BoxLayoutProvider/lambda$1$Type",985),D(986,1,ii,y$),h.Ne=function(t,n){return mpn(l(t,163),l(n,163))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Uc,"BoxLayoutProvider/lambda$2$Type",986),D(1384,1,{845:1},$ne),h.Mg=function(t,n){return tq(),!De(n,167)||mZe((hx(),l(t,167)),n)},I(Uc,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1384),D(1385,1,fr,IXe),h.Cd=function(t){Nyn(this.a,l(t,149))},I(Uc,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1385),D(1386,1,fr,Hne),h.Cd=function(t){l(t,96),tq()},I(Uc,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1386),D(1390,1,fr,OXe),h.Cd=function(t){n3n(this.a,l(t,96))},I(Uc,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1390),D(1388,1,ti,utt),h.Mb=function(t){return pyn(this.a,this.b,l(t,149))},I(Uc,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1388),D(1387,1,ti,ltt),h.Mb=function(t){return Xhn(this.a,this.b,l(t,845))},I(Uc,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1387),D(1389,1,fr,htt),h.Cd=function(t){ugn(this.a,this.b,l(t,149))},I(Uc,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1389),D(947,1,{},Vne),h.Kb=function(t){return ant(t)},h.Fb=function(t){return this===t},I(Uc,"ElkUtil/lambda$0$Type",947),D(948,1,fr,ftt),h.Cd=function(t){cEn(this.a,this.b,l(t,74))},h.a=0,h.b=0,I(Uc,"ElkUtil/lambda$1$Type",948),D(949,1,fr,dtt),h.Cd=function(t){Zcn(this.a,this.b,l(t,166))},h.a=0,h.b=0,I(Uc,"ElkUtil/lambda$2$Type",949),D(950,1,fr,gtt),h.Cd=function(t){Wln(this.a,this.b,l(t,135))},h.a=0,h.b=0,I(Uc,"ElkUtil/lambda$3$Type",950),D(951,1,fr,NXe),h.Cd=function(t){Mdn(this.a,l(t,377))},I(Uc,"ElkUtil/lambda$4$Type",951),D(325,1,{34:1,325:1},Lcn),h.Fd=function(t){return Ehn(this,l(t,242))},h.Fb=function(t){var n;return De(t,325)?(n=l(t,325),this.a==n.a):!1},h.Hb=function(){return ua(this.a)},h.Ib=function(){return this.a+" (exclusive)"},h.a=0,I(Uc,"ExclusiveBounds/ExclusiveLowerBound",325),D(1119,205,tv,Une),h.rf=function(t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an;for(n.Ug("Fixed Layout",1),f=l(at(t,(pi(),sNe)),223),B=0,z=0,Me=new or((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a));Me.e!=Me.i.gc();){for(fe=l(gr(Me),27),an=l(at(fe,(PV(),MM)),8),an&&(Qh(fe,an.a,an.b),l(at(fe,UNe),181).Hc((mh(),A4))&&(V=l(at(fe,KNe),8),V.a>0&&V.b>0&&Gw(fe,V.a,V.b,!0,!0))),B=b.Math.max(B,fe.i+fe.g),z=b.Math.max(z,fe.j+fe.f),C=new or((!fe.n&&(fe.n=new nt(ec,fe,1,7)),fe.n));C.e!=C.i.gc();)w=l(gr(C),135),an=l(at(w,MM),8),an&&Qh(w,an.a,an.b),B=b.Math.max(B,fe.i+w.i+w.g),z=b.Math.max(z,fe.j+w.j+w.f);for(ot=new or((!fe.c&&(fe.c=new nt(Hl,fe,9,9)),fe.c));ot.e!=ot.i.gc();)for(Ze=l(gr(ot),123),an=l(at(Ze,MM),8),an&&Qh(Ze,an.a,an.b),St=fe.i+Ze.i,cn=fe.j+Ze.j,B=b.Math.max(B,St+Ze.g),z=b.Math.max(z,cn+Ze.f),E=new or((!Ze.n&&(Ze.n=new nt(ec,Ze,1,7)),Ze.n));E.e!=E.i.gc();)w=l(gr(E),135),an=l(at(w,MM),8),an&&Qh(w,an.a,an.b),B=b.Math.max(B,St+w.i+w.g),z=b.Math.max(z,cn+w.j+w.f);for(o=new hr(dr(cp(fe).a.Kc(),new j));jr(o);)r=l(xr(o),74),L=Jvt(r),B=b.Math.max(B,L.a),z=b.Math.max(z,L.b);for(a=new hr(dr(sP(fe).a.Kc(),new j));jr(a);)r=l(xr(a),74),ds(cg(r))!=t&&(L=Jvt(r),B=b.Math.max(B,L.a),z=b.Math.max(z,L.b))}if(f==(ip(),iC))for(Te=new or((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a));Te.e!=Te.i.gc();)for(fe=l(gr(Te),27),a=new hr(dr(cp(fe).a.Kc(),new j));jr(a);)r=l(xr(a),74),g=lAn(r),g.b==0?Hi(r,x3,null):Hi(r,x3,g);Rt(Bt(at(t,(PV(),GNe))))||($e=l(at(t,XSt),107),te=B+$e.b+$e.c,J=z+$e.d+$e.a,Gw(t,te,J,!0,!0)),n.Vg()},I(Uc,"FixedLayoutProvider",1119),D(385,137,{3:1,423:1,385:1,96:1,137:1},EI,Xlt),h.cg=function(t){var n,r,a,o,f,g,w,E,C;if(t)try{for(E=Gy(t,";,;"),f=E,g=0,w=f.length;g>16&Zs|n^a<<16},h.Kc=function(){return new PXe(this)},h.Ib=function(){return this.a==null&&this.b==null?"pair(null,null)":this.a==null?"pair(null,"+xc(this.b)+")":this.b==null?"pair("+xc(this.a)+",null)":"pair("+xc(this.a)+","+xc(this.b)+")"},I(Uc,"Pair",42),D(995,1,Oa,PXe),h.Nb=function(t){Za(this,t)},h.Ob=function(){return!this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)},h.Pb=function(){if(!this.c&&!this.b&&this.a.a!=null)return this.b=!0,this.a.a;if(!this.c&&this.a.b!=null)return this.c=!0,this.a.b;throw ue(new _c)},h.Qb=function(){throw this.c&&this.a.b!=null?this.a.b=null:this.b&&this.a.a!=null&&(this.a.a=null),ue(new pl)},h.b=!1,h.c=!1,I(Uc,"Pair/1",995),D(455,1,{455:1},Sat),h.Fb=function(t){return Jc(this.a,l(t,455).a)&&Jc(this.c,l(t,455).c)&&Jc(this.d,l(t,455).d)&&Jc(this.b,l(t,455).b)},h.Hb=function(){return MN(he(le(wa,1),Rn,1,5,[this.a,this.c,this.d,this.b]))},h.Ib=function(){return"("+this.a+Co+this.c+Co+this.d+Co+this.b+")"},I(Uc,"Quadruple",455),D(1108,205,tv,qne),h.rf=function(t,n){var r,a,o,f,g;if(n.Ug("Random Layout",1),(!t.a&&(t.a=new nt(Ai,t,10,11)),t.a).i==0){n.Vg();return}f=l(at(t,(B8e(),o_t)),17),f&&f.a!=0?o=new VH(f.a):o=new Uce,r=XI(Ge(at(t,s_t))),g=XI(Ge(at(t,c_t))),a=l(at(t,a_t),107),ADn(t,o,r,g,a),n.Vg()},I(Uc,"RandomLayoutProvider",1108),D(240,1,{240:1},wae),h.Fb=function(t){return Jc(this.a,l(t,240).a)&&Jc(this.b,l(t,240).b)&&Jc(this.c,l(t,240).c)},h.Hb=function(){return MN(he(le(wa,1),Rn,1,5,[this.a,this.b,this.c]))},h.Ib=function(){return"("+this.a+Co+this.b+Co+this.c+")"},I(Uc,"Triple",240);var m_t;D(562,1,{}),h.Lf=function(){return new lt(this.f.i,this.f.j)},h.of=function(t){return eot(t,(pi(),rh))?at(this.f,v_t):at(this.f,t)},h.Mf=function(){return new lt(this.f.g,this.f.f)},h.Nf=function(){return this.g},h.pf=function(t){return P1(this.f,t)},h.Of=function(t){Uu(this.f,t.a),Gu(this.f,t.b)},h.Pf=function(t){Dw(this.f,t.a),Mw(this.f,t.b)},h.Qf=function(t){this.g=t},h.g=0;var v_t;I(xL,"ElkGraphAdapters/AbstractElkGraphElementAdapter",562),D(563,1,{853:1},Oz),h.Rf=function(){var t,n;if(!this.b)for(this.b=$H(EH(this.a).i),n=new or(EH(this.a));n.e!=n.i.gc();)t=l(gr(n),135),vt(this.b,new Yie(t));return this.b},h.b=null,I(xL,"ElkGraphAdapters/ElkEdgeAdapter",563),D(289,562,{},Jv),h.Sf=function(){return Gdt(this)},h.a=null,I(xL,"ElkGraphAdapters/ElkGraphAdapter",289),D(640,562,{187:1},Yie),I(xL,"ElkGraphAdapters/ElkLabelAdapter",640),D(639,562,{695:1},rae),h.Rf=function(){return p7n(this)},h.Vf=function(){var t;return t=l(at(this.f,(pi(),tC)),140),!t&&(t=new s_),t},h.Xf=function(){return b7n(this)},h.Zf=function(t){var n;n=new xae(t),Hi(this.f,(pi(),tC),n)},h.$f=function(t){Hi(this.f,(pi(),_2),new S4e(t))},h.Tf=function(){return this.d},h.Uf=function(){var t,n;if(!this.a)for(this.a=new bt,n=new hr(dr(sP(l(this.f,27)).a.Kc(),new j));jr(n);)t=l(xr(n),74),vt(this.a,new Oz(t));return this.a},h.Wf=function(){var t,n;if(!this.c)for(this.c=new bt,n=new hr(dr(cp(l(this.f,27)).a.Kc(),new j));jr(n);)t=l(xr(n),74),vt(this.c,new Oz(t));return this.c},h.Yf=function(){return AH(l(this.f,27)).i!=0||Rt(Bt(l(this.f,27).of((pi(),KB))))},h._f=function(){Wvn(this,(aw(),m_t))},h.a=null,h.b=null,h.c=null,h.d=null,h.e=null,I(xL,"ElkGraphAdapters/ElkNodeAdapter",639),D(1284,562,{852:1},BXe),h.Rf=function(){return T7n(this)},h.Uf=function(){var t,n;if(!this.a)for(this.a=eg(l(this.f,123).hh().i),n=new or(l(this.f,123).hh());n.e!=n.i.gc();)t=l(gr(n),74),vt(this.a,new Oz(t));return this.a},h.Wf=function(){var t,n;if(!this.c)for(this.c=eg(l(this.f,123).ih().i),n=new or(l(this.f,123).ih());n.e!=n.i.gc();)t=l(gr(n),74),vt(this.c,new Oz(t));return this.c},h.ag=function(){return l(l(this.f,123).of((pi(),s7)),64)},h.bg=function(){var t,n,r,a,o,f,g,w;for(a=M1(l(this.f,123)),r=new or(l(this.f,123).ih());r.e!=r.i.gc();)for(t=l(gr(r),74),w=new or((!t.c&&(t.c=new Ln(_r,t,5,8)),t.c));w.e!=w.i.gc();){if(g=l(gr(w),84),Ly(bc(g),a))return!0;if(bc(g)==a&&Rt(Bt(at(t,(pi(),Oge)))))return!0}for(n=new or(l(this.f,123).hh());n.e!=n.i.gc();)for(t=l(gr(n),74),f=new or((!t.b&&(t.b=new Ln(_r,t,4,7)),t.b));f.e!=f.i.gc();)if(o=l(gr(f),84),Ly(bc(o),a))return!0;return!1},h.a=null,h.b=null,h.c=null,I(xL,"ElkGraphAdapters/ElkPortAdapter",1284),D(1285,1,ii,zne),h.Ne=function(t,n){return n_n(l(t,123),l(n,123))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(xL,"ElkGraphAdapters/PortComparator",1285);var Xb=ks(pf,"EObject"),oC=ks(T6,r4t),qh=ks(T6,i4t),oF=ks(T6,s4t),cF=ks(T6,"ElkShape"),_r=ks(T6,a4t),js=ks(T6,aSe),cs=ks(T6,o4t),uF=ks(pf,c4t),RM=ks(pf,"EFactory"),w_t,Yge=ks(pf,u4t),u1=ks(pf,"EPackage"),La,y_t,x_t,fPe,pY,k_t,dPe,gPe,pPe,Cg,E_t,T_t,ec=ks(T6,oSe),Ai=ks(T6,cSe),Hl=ks(T6,uSe);D(93,1,l4t),h.th=function(){return this.uh(),null},h.uh=function(){return null},h.vh=function(){return this.uh(),!1},h.wh=function(){return!1},h.xh=function(t){Ni(this,t)},I(Rx,"BasicNotifierImpl",93),D(99,93,g4t),h.Yh=function(){return hh(this)},h.yh=function(t,n){return t},h.zh=function(){throw ue(new Qr)},h.Ah=function(t){var n;return n=Ro(l(Mn(this.Dh(),this.Fh()),19)),this.Ph().Th(this,n.n,n.f,t)},h.Bh=function(t,n){throw ue(new Qr)},h.Ch=function(t,n,r){return Nh(this,t,n,r)},h.Dh=function(){var t;return this.zh()&&(t=this.zh().Nk(),t)?t:this.ii()},h.Eh=function(){return Uue(this)},h.Fh=function(){throw ue(new Qr)},h.Gh=function(){var t,n;return n=this.$h().Ok(),!n&&this.zh().Tk(n=(w_(),t=j5e(Sd(this.Dh())),t==null?rpe:new TO(this,t))),n},h.Hh=function(t,n){return t},h.Ih=function(t){var n;return n=t.pk(),n?t.Lj():ms(this.Dh(),t)},h.Jh=function(){var t;return t=this.zh(),t?t.Qk():null},h.Kh=function(){return this.zh()?this.zh().Nk():null},h.Lh=function(t,n,r){return rU(this,t,n,r)},h.Mh=function(t){return tE(this,t)},h.Nh=function(t,n){return Moe(this,t,n)},h.Oh=function(){var t;return t=this.zh(),!!t&&t.Rk()},h.Ph=function(){throw ue(new Qr)},h.Qh=function(){return XV(this)},h.Rh=function(t,n,r,a){return mx(this,t,n,a)},h.Sh=function(t,n,r){var a;return a=l(Mn(this.Dh(),n),69),a.wk().zk(this,this.hi(),n-this.ji(),t,r)},h.Th=function(t,n,r,a){return IH(this,t,n,a)},h.Uh=function(t,n,r){var a;return a=l(Mn(this.Dh(),n),69),a.wk().Ak(this,this.hi(),n-this.ji(),t,r)},h.Vh=function(){return!!this.zh()&&!!this.zh().Pk()},h.Wh=function(t){return nue(this,t)},h.Xh=function(t){return got(this,t)},h.Zh=function(t){return Bvt(this,t)},h.$h=function(){throw ue(new Qr)},h._h=function(){return this.zh()?this.zh().Pk():null},h.ai=function(){return XV(this)},h.bi=function(t,n){$ue(this,t,n)},h.ci=function(t){this.$h().Sk(t)},h.di=function(t){this.$h().Vk(t)},h.ei=function(t){this.$h().Uk(t)},h.fi=function(t,n){var r,a,o,f;return f=this.Jh(),f&&t&&(n=To(f.El(),this,n),f.Il(this)),a=this.Ph(),a&&(sle(this,this.Ph(),this.Fh()).Bb&Io?(o=a.Qh(),o&&(t?!f&&o.Il(this):o.Hl(this))):(n=(r=this.Fh(),r>=0?this.Ah(n):this.Ph().Th(this,-1-r,null,n)),n=this.Ch(null,-1,n))),this.di(t),n},h.gi=function(t){var n,r,a,o,f,g,w,E;if(r=this.Dh(),f=ms(r,t),n=this.ji(),f>=n)return l(t,69).wk().Dk(this,this.hi(),f-n);if(f<=-1)if(g=g6((El(),io),r,t),g){if(Fo(),l(g,69).xk()||(g=rx(ic(io,g))),o=(a=this.Ih(g),l(a>=0?this.Lh(a,!0,!0):Hw(this,g,!0),160)),E=g.Ik(),E>1||E==-1)return l(l(o,220).Sl(t,!1),79)}else throw ue(new Yn(Ob+t.xe()+$fe));else if(t.Jk())return a=this.Ih(t),l(a>=0?this.Lh(a,!1,!0):Hw(this,t,!1),79);return w=new Itt(this,t),w},h.hi=function(){return V6e(this)},h.ii=function(){return(lb(),Vn).S},h.ji=function(){return yr(this.ii())},h.ki=function(t){Fue(this,t)},h.Ib=function(){return g0(this)},I(Gn,"BasicEObjectImpl",99);var C_t;D(119,99,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1}),h.li=function(t){var n;return n=H6e(this),n[t]},h.mi=function(t,n){var r;r=H6e(this),Ts(r,t,n)},h.ni=function(t){var n;n=H6e(this),Ts(n,t,null)},h.th=function(){return l(Kn(this,4),129)},h.uh=function(){throw ue(new Qr)},h.vh=function(){return(this.Db&4)!=0},h.zh=function(){throw ue(new Qr)},h.oi=function(t){px(this,2,t)},h.Bh=function(t,n){this.Db=n<<16|this.Db&255,this.oi(t)},h.Dh=function(){return sl(this)},h.Fh=function(){return this.Db>>16},h.Gh=function(){var t,n;return w_(),n=j5e(Sd((t=l(Kn(this,16),29),t||this.ii()))),n==null?rpe:new TO(this,n)},h.wh=function(){return(this.Db&1)==0},h.Jh=function(){return l(Kn(this,128),2034)},h.Kh=function(){return l(Kn(this,16),29)},h.Oh=function(){return(this.Db&32)!=0},h.Ph=function(){return l(Kn(this,2),54)},h.Vh=function(){return(this.Db&64)!=0},h.$h=function(){throw ue(new Qr)},h._h=function(){return l(Kn(this,64),288)},h.ci=function(t){px(this,16,t)},h.di=function(t){px(this,128,t)},h.ei=function(t){px(this,64,t)},h.hi=function(){return Ku(this)},h.Db=0,I(Gn,"MinimalEObjectImpl",119),D(120,119,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.oi=function(t){this.Cb=t},h.Ph=function(){return this.Cb},I(Gn,"MinimalEObjectImpl/Container",120),D(2083,120,{110:1,342:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.Lh=function(t,n,r){return sxe(this,t,n,r)},h.Uh=function(t,n,r){return Wxe(this,t,n,r)},h.Wh=function(t){return Z5e(this,t)},h.bi=function(t,n){V7e(this,t,n)},h.ii=function(){return su(),T_t},h.ki=function(t){O7e(this,t)},h.nf=function(){return fdt(this)},h.gh=function(){return!this.o&&(this.o=new xl((su(),Cg),L2,this,0)),this.o},h.of=function(t){return at(this,t)},h.pf=function(t){return P1(this,t)},h.qf=function(t,n){return Hi(this,t,n)},I(sv,"EMapPropertyHolderImpl",2083),D(572,120,{110:1,377:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},AS),h.Lh=function(t,n,r){switch(t){case 0:return this.a;case 1:return this.b}return rU(this,t,n,r)},h.Wh=function(t){switch(t){case 0:return this.a!=0;case 1:return this.b!=0}return nue(this,t)},h.bi=function(t,n){switch(t){case 0:dV(this,ze(Ge(n)));return;case 1:fV(this,ze(Ge(n)));return}$ue(this,t,n)},h.ii=function(){return su(),y_t},h.ki=function(t){switch(t){case 0:dV(this,0);return;case 1:fV(this,0);return}Fue(this,t)},h.Ib=function(){var t;return this.Db&64?g0(this):(t=new Af(g0(this)),t.a+=" (x: ",_5(t,this.a),t.a+=", y: ",_5(t,this.b),t.a+=")",t.a)},h.a=0,h.b=0,I(sv,"ElkBendPointImpl",572),D(739,2083,{110:1,342:1,167:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.Lh=function(t,n,r){return d8e(this,t,n,r)},h.Sh=function(t,n,r){return Mue(this,t,n,r)},h.Uh=function(t,n,r){return dce(this,t,n,r)},h.Wh=function(t){return _7e(this,t)},h.bi=function(t,n){Txe(this,t,n)},h.ii=function(){return su(),k_t},h.ki=function(t){i8e(this,t)},h.jh=function(){return this.k},h.kh=function(){return EH(this)},h.Ib=function(){return jce(this)},h.k=null,I(sv,"ElkGraphElementImpl",739),D(740,739,{110:1,342:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.Lh=function(t,n,r){return x8e(this,t,n,r)},h.Wh=function(t){return _8e(this,t)},h.bi=function(t,n){Cxe(this,t,n)},h.ii=function(){return su(),E_t},h.ki=function(t){N8e(this,t)},h.lh=function(){return this.f},h.mh=function(){return this.g},h.nh=function(){return this.i},h.oh=function(){return this.j},h.ph=function(t,n){F5(this,t,n)},h.qh=function(t,n){Qh(this,t,n)},h.rh=function(t){Uu(this,t)},h.sh=function(t){Gu(this,t)},h.Ib=function(){return Pue(this)},h.f=0,h.g=0,h.i=0,h.j=0,I(sv,"ElkShapeImpl",740),D(741,740,{110:1,342:1,84:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.Lh=function(t,n,r){return J8e(this,t,n,r)},h.Sh=function(t,n,r){return vxe(this,t,n,r)},h.Uh=function(t,n,r){return wxe(this,t,n,r)},h.Wh=function(t){return H7e(this,t)},h.bi=function(t,n){I9e(this,t,n)},h.ii=function(){return su(),x_t},h.ki=function(t){K8e(this,t)},h.hh=function(){return!this.d&&(this.d=new Ln(js,this,8,5)),this.d},h.ih=function(){return!this.e&&(this.e=new Ln(js,this,7,4)),this.e},I(sv,"ElkConnectableShapeImpl",741),D(326,739,{110:1,342:1,74:1,167:1,326:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},TI),h.Ah=function(t){return gxe(this,t)},h.Lh=function(t,n,r){switch(t){case 3:return WO(this);case 4:return!this.b&&(this.b=new Ln(_r,this,4,7)),this.b;case 5:return!this.c&&(this.c=new Ln(_r,this,5,8)),this.c;case 6:return!this.a&&(this.a=new nt(cs,this,6,6)),this.a;case 7:return Hn(),!this.b&&(this.b=new Ln(_r,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Ln(_r,this,5,8)),this.c.i<=1));case 8:return Hn(),!!qA(this);case 9:return Hn(),!!qw(this);case 10:return Hn(),!this.b&&(this.b=new Ln(_r,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Ln(_r,this,5,8)),this.c.i!=0)}return d8e(this,t,n,r)},h.Sh=function(t,n,r){var a;switch(n){case 3:return this.Cb&&(r=(a=this.Db>>16,a>=0?gxe(this,r):this.Cb.Th(this,-1-a,null,r))),Yye(this,l(t,27),r);case 4:return!this.b&&(this.b=new Ln(_r,this,4,7)),Ru(this.b,t,r);case 5:return!this.c&&(this.c=new Ln(_r,this,5,8)),Ru(this.c,t,r);case 6:return!this.a&&(this.a=new nt(cs,this,6,6)),Ru(this.a,t,r)}return Mue(this,t,n,r)},h.Uh=function(t,n,r){switch(n){case 3:return Yye(this,null,r);case 4:return!this.b&&(this.b=new Ln(_r,this,4,7)),To(this.b,t,r);case 5:return!this.c&&(this.c=new Ln(_r,this,5,8)),To(this.c,t,r);case 6:return!this.a&&(this.a=new nt(cs,this,6,6)),To(this.a,t,r)}return dce(this,t,n,r)},h.Wh=function(t){switch(t){case 3:return!!WO(this);case 4:return!!this.b&&this.b.i!=0;case 5:return!!this.c&&this.c.i!=0;case 6:return!!this.a&&this.a.i!=0;case 7:return!this.b&&(this.b=new Ln(_r,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Ln(_r,this,5,8)),this.c.i<=1));case 8:return qA(this);case 9:return qw(this);case 10:return!this.b&&(this.b=new Ln(_r,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Ln(_r,this,5,8)),this.c.i!=0)}return _7e(this,t)},h.bi=function(t,n){switch(t){case 3:AU(this,l(n,27));return;case 4:!this.b&&(this.b=new Ln(_r,this,4,7)),$r(this.b),!this.b&&(this.b=new Ln(_r,this,4,7)),As(this.b,l(n,16));return;case 5:!this.c&&(this.c=new Ln(_r,this,5,8)),$r(this.c),!this.c&&(this.c=new Ln(_r,this,5,8)),As(this.c,l(n,16));return;case 6:!this.a&&(this.a=new nt(cs,this,6,6)),$r(this.a),!this.a&&(this.a=new nt(cs,this,6,6)),As(this.a,l(n,16));return}Txe(this,t,n)},h.ii=function(){return su(),fPe},h.ki=function(t){switch(t){case 3:AU(this,null);return;case 4:!this.b&&(this.b=new Ln(_r,this,4,7)),$r(this.b);return;case 5:!this.c&&(this.c=new Ln(_r,this,5,8)),$r(this.c);return;case 6:!this.a&&(this.a=new nt(cs,this,6,6)),$r(this.a);return}i8e(this,t)},h.Ib=function(){return evt(this)},I(sv,"ElkEdgeImpl",326),D(452,2083,{110:1,342:1,166:1,452:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},rk),h.Ah=function(t){return lxe(this,t)},h.Lh=function(t,n,r){switch(t){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return!this.a&&(this.a=new Ys(qh,this,5)),this.a;case 6:return lot(this);case 7:return n?oue(this):this.i;case 8:return n?aue(this):this.f;case 9:return!this.g&&(this.g=new Ln(cs,this,9,10)),this.g;case 10:return!this.e&&(this.e=new Ln(cs,this,10,9)),this.e;case 11:return this.d}return sxe(this,t,n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?lxe(this,r):this.Cb.Th(this,-1-o,null,r))),Wye(this,l(t,74),r);case 9:return!this.g&&(this.g=new Ln(cs,this,9,10)),Ru(this.g,t,r);case 10:return!this.e&&(this.e=new Ln(cs,this,10,9)),Ru(this.e,t,r)}return f=l(Mn((a=l(Kn(this,16),29),a||(su(),pY)),n),69),f.wk().zk(this,Ku(this),n-yr((su(),pY)),t,r)},h.Uh=function(t,n,r){switch(n){case 5:return!this.a&&(this.a=new Ys(qh,this,5)),To(this.a,t,r);case 6:return Wye(this,null,r);case 9:return!this.g&&(this.g=new Ln(cs,this,9,10)),To(this.g,t,r);case 10:return!this.e&&(this.e=new Ln(cs,this,10,9)),To(this.e,t,r)}return Wxe(this,t,n,r)},h.Wh=function(t){switch(t){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return!!this.a&&this.a.i!=0;case 6:return!!lot(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&this.g.i!=0;case 10:return!!this.e&&this.e.i!=0;case 11:return this.d!=null}return Z5e(this,t)},h.bi=function(t,n){switch(t){case 1:oE(this,ze(Ge(n)));return;case 2:uE(this,ze(Ge(n)));return;case 3:aE(this,ze(Ge(n)));return;case 4:cE(this,ze(Ge(n)));return;case 5:!this.a&&(this.a=new Ys(qh,this,5)),$r(this.a),!this.a&&(this.a=new Ys(qh,this,5)),As(this.a,l(n,16));return;case 6:Z2t(this,l(n,74));return;case 7:yV(this,l(n,84));return;case 8:wV(this,l(n,84));return;case 9:!this.g&&(this.g=new Ln(cs,this,9,10)),$r(this.g),!this.g&&(this.g=new Ln(cs,this,9,10)),As(this.g,l(n,16));return;case 10:!this.e&&(this.e=new Ln(cs,this,10,9)),$r(this.e),!this.e&&(this.e=new Ln(cs,this,10,9)),As(this.e,l(n,16));return;case 11:p7e(this,ei(n));return}V7e(this,t,n)},h.ii=function(){return su(),pY},h.ki=function(t){switch(t){case 1:oE(this,0);return;case 2:uE(this,0);return;case 3:aE(this,0);return;case 4:cE(this,0);return;case 5:!this.a&&(this.a=new Ys(qh,this,5)),$r(this.a);return;case 6:Z2t(this,null);return;case 7:yV(this,null);return;case 8:wV(this,null);return;case 9:!this.g&&(this.g=new Ln(cs,this,9,10)),$r(this.g);return;case 10:!this.e&&(this.e=new Ln(cs,this,10,9)),$r(this.e);return;case 11:p7e(this,null);return}O7e(this,t)},h.Ib=function(){return d2t(this)},h.b=0,h.c=0,h.d=null,h.j=0,h.k=0,I(sv,"ElkEdgeSectionImpl",452),D(158,120,{110:1,94:1,93:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1}),h.Lh=function(t,n,r){var a;return t==0?(!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab):sf(this,t-yr(this.ii()),Mn((a=l(Kn(this,16),29),a||this.ii()),t),n,r)},h.Sh=function(t,n,r){var a,o;return n==0?(!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r)):(o=l(Mn((a=l(Kn(this,16),29),a||this.ii()),n),69),o.wk().zk(this,Ku(this),n-yr(this.ii()),t,r))},h.Uh=function(t,n,r){var a,o;return n==0?(!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r)):(o=l(Mn((a=l(Kn(this,16),29),a||this.ii()),n),69),o.wk().Ak(this,Ku(this),n-yr(this.ii()),t,r))},h.Wh=function(t){var n;return t==0?!!this.Ab&&this.Ab.i!=0:nf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.Zh=function(t){return Hke(this,t)},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return}uf(this,t-yr(this.ii()),Mn((r=l(Kn(this,16),29),r||this.ii()),t),n)},h.di=function(t){px(this,128,t)},h.ii=function(){return Tn(),H_t},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return}cf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.pi=function(){this.Bb|=1},h.qi=function(t){return YA(this,t)},h.Bb=0,I(Gn,"EModelElementImpl",158),D(720,158,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},fz),h.ri=function(t,n){return Lvt(this,t,n)},h.si=function(t){var n,r,a,o,f;if(this.a!=Ah(t)||t.Bb&256)throw ue(new Yn(qfe+t.zb+t3));for(a=dc(t);du(a.a).i!=0;){if(r=l(mP(a,0,(n=l(Oe(du(a.a),0),89),f=n.c,De(f,90)?l(f,29):(Tn(),Kf))),29),zw(r))return o=Ah(r).wi().si(r),l(o,54).ci(t),o;a=dc(r)}return(t.D!=null?t.D:t.B)=="java.util.Map$Entry"?new Git(t):new F4e(t)},h.ti=function(t,n){return Kw(this,t,n)},h.Lh=function(t,n,r){var a;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.a}return sf(this,t-yr((Tn(),em)),Mn((a=l(Kn(this,16),29),a||em),t),n,r)},h.Sh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 1:return this.a&&(r=l(this.a,54).Th(this,4,u1,r)),r8e(this,l(t,241),r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),em)),n),69),o.wk().zk(this,Ku(this),n-yr((Tn(),em)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 1:return r8e(this,null,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),em)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),em)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return!!this.a}return nf(this,t-yr((Tn(),em)),Mn((n=l(Kn(this,16),29),n||em),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:Xgt(this,l(n,241));return}uf(this,t-yr((Tn(),em)),Mn((r=l(Kn(this,16),29),r||em),t),n)},h.ii=function(){return Tn(),em},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:Xgt(this,null);return}cf(this,t-yr((Tn(),em)),Mn((n=l(Kn(this,16),29),n||em),t))};var jM,bPe,S_t;I(Gn,"EFactoryImpl",720),D(1037,720,{110:1,2113:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},ik),h.ri=function(t,n){switch(t.hk()){case 12:return l(n,149).Pg();case 13:return xc(n);default:throw ue(new Yn(yT+t.xe()+t3))}},h.si=function(t){var n,r,a,o,f,g,w,E;switch(t.G==-1&&(t.G=(n=Ah(t),n?f2(n.vi(),t):-1)),t.G){case 4:return f=new sk,f;case 6:return g=new a_,g;case 7:return w=new jwe,w;case 8:return a=new TI,a;case 9:return r=new AS,r;case 10:return o=new rk,o;case 11:return E=new k$,E;default:throw ue(new Yn(qfe+t.zb+t3))}},h.ti=function(t,n){switch(t.hk()){case 13:case 12:return null;default:throw ue(new Yn(yT+t.xe()+t3))}},I(sv,"ElkGraphFactoryImpl",1037),D(448,158,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1}),h.Gh=function(){var t,n;return n=(t=l(Kn(this,16),29),j5e(Sd(t||this.ii()))),n==null?(w_(),w_(),rpe):new prt(this,n)},h.Lh=function(t,n,r){var a;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.xe()}return sf(this,t-yr(this.ii()),Mn((a=l(Kn(this,16),29),a||this.ii()),t),n,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null}return nf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:this.ui(ei(n));return}uf(this,t-yr(this.ii()),Mn((r=l(Kn(this,16),29),r||this.ii()),t),n)},h.ii=function(){return Tn(),V_t},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:this.ui(null);return}cf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.xe=function(){return this.zb},h.ui=function(t){Fu(this,t)},h.Ib=function(){return CA(this)},h.zb=null,I(Gn,"ENamedElementImpl",448),D(184,448,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},qat),h.Ah=function(t){return ogt(this,t)},h.Lh=function(t,n,r){var a;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return!this.rb&&(this.rb=new wy(this,l1,this)),this.rb;case 6:return!this.vb&&(this.vb=new V8(u1,this,6,7)),this.vb;case 7:return n?this.Db>>16==7?l(this.Cb,241):null:mot(this)}return sf(this,t-yr((Tn(),O2)),Mn((a=l(Kn(this,16),29),a||O2),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 4:return this.sb&&(r=l(this.sb,54).Th(this,1,RM,r)),a8e(this,l(t,480),r);case 5:return!this.rb&&(this.rb=new wy(this,l1,this)),Ru(this.rb,t,r);case 6:return!this.vb&&(this.vb=new V8(u1,this,6,7)),Ru(this.vb,t,r);case 7:return this.Cb&&(r=(o=this.Db>>16,o>=0?ogt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,7,r)}return f=l(Mn((a=l(Kn(this,16),29),a||(Tn(),O2)),n),69),f.wk().zk(this,Ku(this),n-yr((Tn(),O2)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 4:return a8e(this,null,r);case 5:return!this.rb&&(this.rb=new wy(this,l1,this)),To(this.rb,t,r);case 6:return!this.vb&&(this.vb=new V8(u1,this,6,7)),To(this.vb,t,r);case 7:return Nh(this,null,7,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),O2)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),O2)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return!!this.sb;case 5:return!!this.rb&&this.rb.i!=0;case 6:return!!this.vb&&this.vb.i!=0;case 7:return!!mot(this)}return nf(this,t-yr((Tn(),O2)),Mn((n=l(Kn(this,16),29),n||O2),t))},h.Zh=function(t){var n;return n=mCn(this,t),n||Hke(this,t)},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:Fu(this,ei(n));return;case 2:SV(this,ei(n));return;case 3:CV(this,ei(n));return;case 4:Nue(this,l(n,480));return;case 5:!this.rb&&(this.rb=new wy(this,l1,this)),$r(this.rb),!this.rb&&(this.rb=new wy(this,l1,this)),As(this.rb,l(n,16));return;case 6:!this.vb&&(this.vb=new V8(u1,this,6,7)),$r(this.vb),!this.vb&&(this.vb=new V8(u1,this,6,7)),As(this.vb,l(n,16));return}uf(this,t-yr((Tn(),O2)),Mn((r=l(Kn(this,16),29),r||O2),t),n)},h.ei=function(t){var n,r;if(t&&this.rb)for(r=new or(this.rb);r.e!=r.i.gc();)n=gr(r),De(n,364)&&(l(n,364).w=null);px(this,64,t)},h.ii=function(){return Tn(),O2},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:Fu(this,null);return;case 2:SV(this,null);return;case 3:CV(this,null);return;case 4:Nue(this,null);return;case 5:!this.rb&&(this.rb=new wy(this,l1,this)),$r(this.rb);return;case 6:!this.vb&&(this.vb=new V8(u1,this,6,7)),$r(this.vb);return}cf(this,t-yr((Tn(),O2)),Mn((n=l(Kn(this,16),29),n||O2),t))},h.pi=function(){yue(this)},h.vi=function(){return!this.rb&&(this.rb=new wy(this,l1,this)),this.rb},h.wi=function(){return this.sb},h.xi=function(){return this.ub},h.yi=function(){return this.xb},h.zi=function(){return this.yb},h.Ai=function(t){this.ub=t},h.Ib=function(){var t;return this.Db&64?CA(this):(t=new Af(CA(this)),t.a+=" (nsURI: ",Xo(t,this.yb),t.a+=", nsPrefix: ",Xo(t,this.xb),t.a+=")",t.a)},h.xb=null,h.yb=null,I(Gn,"EPackageImpl",184),D(569,184,{110:1,2115:1,569:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},k2t),h.q=!1,h.r=!1;var __t=!1;I(sv,"ElkGraphPackageImpl",569),D(366,740,{110:1,342:1,167:1,135:1,422:1,366:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},sk),h.Ah=function(t){return hxe(this,t)},h.Lh=function(t,n,r){switch(t){case 7:return vot(this);case 8:return this.a}return x8e(this,t,n,r)},h.Sh=function(t,n,r){var a;switch(n){case 7:return this.Cb&&(r=(a=this.Db>>16,a>=0?hxe(this,r):this.Cb.Th(this,-1-a,null,r))),J4e(this,l(t,167),r)}return Mue(this,t,n,r)},h.Uh=function(t,n,r){return n==7?J4e(this,null,r):dce(this,t,n,r)},h.Wh=function(t){switch(t){case 7:return!!vot(this);case 8:return!vn("",this.a)}return _8e(this,t)},h.bi=function(t,n){switch(t){case 7:U9e(this,l(n,167));return;case 8:l7e(this,ei(n));return}Cxe(this,t,n)},h.ii=function(){return su(),dPe},h.ki=function(t){switch(t){case 7:U9e(this,null);return;case 8:l7e(this,"");return}N8e(this,t)},h.Ib=function(){return lpt(this)},h.a="",I(sv,"ElkLabelImpl",366),D(207,741,{110:1,342:1,84:1,167:1,27:1,422:1,207:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},a_),h.Ah=function(t){return pxe(this,t)},h.Lh=function(t,n,r){switch(t){case 9:return!this.c&&(this.c=new nt(Hl,this,9,9)),this.c;case 10:return!this.a&&(this.a=new nt(Ai,this,10,11)),this.a;case 11:return ds(this);case 12:return!this.b&&(this.b=new nt(js,this,12,3)),this.b;case 13:return Hn(),!this.a&&(this.a=new nt(Ai,this,10,11)),this.a.i>0}return J8e(this,t,n,r)},h.Sh=function(t,n,r){var a;switch(n){case 9:return!this.c&&(this.c=new nt(Hl,this,9,9)),Ru(this.c,t,r);case 10:return!this.a&&(this.a=new nt(Ai,this,10,11)),Ru(this.a,t,r);case 11:return this.Cb&&(r=(a=this.Db>>16,a>=0?pxe(this,r):this.Cb.Th(this,-1-a,null,r))),s4e(this,l(t,27),r);case 12:return!this.b&&(this.b=new nt(js,this,12,3)),Ru(this.b,t,r)}return vxe(this,t,n,r)},h.Uh=function(t,n,r){switch(n){case 9:return!this.c&&(this.c=new nt(Hl,this,9,9)),To(this.c,t,r);case 10:return!this.a&&(this.a=new nt(Ai,this,10,11)),To(this.a,t,r);case 11:return s4e(this,null,r);case 12:return!this.b&&(this.b=new nt(js,this,12,3)),To(this.b,t,r)}return wxe(this,t,n,r)},h.Wh=function(t){switch(t){case 9:return!!this.c&&this.c.i!=0;case 10:return!!this.a&&this.a.i!=0;case 11:return!!ds(this);case 12:return!!this.b&&this.b.i!=0;case 13:return!this.a&&(this.a=new nt(Ai,this,10,11)),this.a.i>0}return H7e(this,t)},h.bi=function(t,n){switch(t){case 9:!this.c&&(this.c=new nt(Hl,this,9,9)),$r(this.c),!this.c&&(this.c=new nt(Hl,this,9,9)),As(this.c,l(n,16));return;case 10:!this.a&&(this.a=new nt(Ai,this,10,11)),$r(this.a),!this.a&&(this.a=new nt(Ai,this,10,11)),As(this.a,l(n,16));return;case 11:LU(this,l(n,27));return;case 12:!this.b&&(this.b=new nt(js,this,12,3)),$r(this.b),!this.b&&(this.b=new nt(js,this,12,3)),As(this.b,l(n,16));return}I9e(this,t,n)},h.ii=function(){return su(),gPe},h.ki=function(t){switch(t){case 9:!this.c&&(this.c=new nt(Hl,this,9,9)),$r(this.c);return;case 10:!this.a&&(this.a=new nt(Ai,this,10,11)),$r(this.a);return;case 11:LU(this,null);return;case 12:!this.b&&(this.b=new nt(js,this,12,3)),$r(this.b);return}K8e(this,t)},h.Ib=function(){return oke(this)},I(sv,"ElkNodeImpl",207),D(193,741,{110:1,342:1,84:1,167:1,123:1,422:1,193:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},jwe),h.Ah=function(t){return fxe(this,t)},h.Lh=function(t,n,r){return t==9?M1(this):J8e(this,t,n,r)},h.Sh=function(t,n,r){var a;switch(n){case 9:return this.Cb&&(r=(a=this.Db>>16,a>=0?fxe(this,r):this.Cb.Th(this,-1-a,null,r))),Xye(this,l(t,27),r)}return vxe(this,t,n,r)},h.Uh=function(t,n,r){return n==9?Xye(this,null,r):wxe(this,t,n,r)},h.Wh=function(t){return t==9?!!M1(this):H7e(this,t)},h.bi=function(t,n){switch(t){case 9:z9e(this,l(n,27));return}I9e(this,t,n)},h.ii=function(){return su(),pPe},h.ki=function(t){switch(t){case 9:z9e(this,null);return}K8e(this,t)},h.Ib=function(){return Jbt(this)},I(sv,"ElkPortImpl",193);var A_t=ks(So,"BasicEMap/Entry");D(1122,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,119:1,120:1},k$),h.Fb=function(t){return this===t},h.ld=function(){return this.b},h.Hb=function(){return fw(this)},h.Di=function(t){h7e(this,l(t,149))},h.Lh=function(t,n,r){switch(t){case 0:return this.b;case 1:return this.c}return rU(this,t,n,r)},h.Wh=function(t){switch(t){case 0:return!!this.b;case 1:return this.c!=null}return nue(this,t)},h.bi=function(t,n){switch(t){case 0:h7e(this,l(n,149));return;case 1:u7e(this,n);return}$ue(this,t,n)},h.ii=function(){return su(),Cg},h.ki=function(t){switch(t){case 0:h7e(this,null);return;case 1:u7e(this,null);return}Fue(this,t)},h.Bi=function(){var t;return this.a==-1&&(t=this.b,this.a=t?es(t):0),this.a},h.md=function(){return this.c},h.Ci=function(t){this.a=t},h.nd=function(t){var n;return n=this.c,u7e(this,t),n},h.Ib=function(){var t;return this.Db&64?g0(this):(t=new tb,hi(hi(hi(t,this.b?this.b.Pg():ul),Phe),j_(this.c)),t.a)},h.a=-1,h.c=null;var L2=I(sv,"ElkPropertyToValueMapEntryImpl",1122);D(996,1,{},T$),I(no,"JsonAdapter",996),D(216,63,lp,dd),I(no,"JsonImportException",216),D(868,1,{},cgt),I(no,"JsonImporter",868),D(903,1,{},ptt),I(no,"JsonImporter/lambda$0$Type",903),D(904,1,{},btt),I(no,"JsonImporter/lambda$1$Type",904),D(912,1,{},FXe),I(no,"JsonImporter/lambda$10$Type",912),D(914,1,{},mtt),I(no,"JsonImporter/lambda$11$Type",914),D(915,1,{},vtt),I(no,"JsonImporter/lambda$12$Type",915),D(921,1,{},Mat),I(no,"JsonImporter/lambda$13$Type",921),D(920,1,{},Dat),I(no,"JsonImporter/lambda$14$Type",920),D(916,1,{},wtt),I(no,"JsonImporter/lambda$15$Type",916),D(917,1,{},ytt),I(no,"JsonImporter/lambda$16$Type",917),D(918,1,{},xtt),I(no,"JsonImporter/lambda$17$Type",918),D(919,1,{},ktt),I(no,"JsonImporter/lambda$18$Type",919),D(924,1,{},RXe),I(no,"JsonImporter/lambda$19$Type",924),D(905,1,{},jXe),I(no,"JsonImporter/lambda$2$Type",905),D(922,1,{},$Xe),I(no,"JsonImporter/lambda$20$Type",922),D(923,1,{},zXe),I(no,"JsonImporter/lambda$21$Type",923),D(927,1,{},qXe),I(no,"JsonImporter/lambda$22$Type",927),D(925,1,{},HXe),I(no,"JsonImporter/lambda$23$Type",925),D(926,1,{},VXe),I(no,"JsonImporter/lambda$24$Type",926),D(929,1,{},UXe),I(no,"JsonImporter/lambda$25$Type",929),D(928,1,{},GXe),I(no,"JsonImporter/lambda$26$Type",928),D(930,1,fr,Ett),h.Cd=function(t){Dvn(this.b,this.a,ei(t))},I(no,"JsonImporter/lambda$27$Type",930),D(931,1,fr,Ttt),h.Cd=function(t){Ivn(this.b,this.a,ei(t))},I(no,"JsonImporter/lambda$28$Type",931),D(932,1,{},Ctt),I(no,"JsonImporter/lambda$29$Type",932),D(908,1,{},KXe),I(no,"JsonImporter/lambda$3$Type",908),D(933,1,{},Stt),I(no,"JsonImporter/lambda$30$Type",933),D(934,1,{},WXe),I(no,"JsonImporter/lambda$31$Type",934),D(935,1,{},YXe),I(no,"JsonImporter/lambda$32$Type",935),D(936,1,{},XXe),I(no,"JsonImporter/lambda$33$Type",936),D(937,1,{},QXe),I(no,"JsonImporter/lambda$34$Type",937),D(870,1,{},JXe),I(no,"JsonImporter/lambda$35$Type",870),D(941,1,{},yit),I(no,"JsonImporter/lambda$36$Type",941),D(938,1,fr,ZXe),h.Cd=function(t){Fmn(this.a,l(t,377))},I(no,"JsonImporter/lambda$37$Type",938),D(939,1,fr,_tt),h.Cd=function(t){vln(this.a,this.b,l(t,166))},I(no,"JsonImporter/lambda$38$Type",939),D(940,1,fr,Att),h.Cd=function(t){wln(this.a,this.b,l(t,166))},I(no,"JsonImporter/lambda$39$Type",940),D(906,1,{},eQe),I(no,"JsonImporter/lambda$4$Type",906),D(942,1,fr,tQe),h.Cd=function(t){Rmn(this.a,l(t,8))},I(no,"JsonImporter/lambda$40$Type",942),D(907,1,{},nQe),I(no,"JsonImporter/lambda$5$Type",907),D(911,1,{},rQe),I(no,"JsonImporter/lambda$6$Type",911),D(909,1,{},iQe),I(no,"JsonImporter/lambda$7$Type",909),D(910,1,{},sQe),I(no,"JsonImporter/lambda$8$Type",910),D(913,1,{},aQe),I(no,"JsonImporter/lambda$9$Type",913),D(961,1,fr,oQe),h.Cd=function(t){J8(this.a,new yy(ei(t)))},I(no,"JsonMetaDataConverter/lambda$0$Type",961),D(962,1,fr,cQe),h.Cd=function(t){Lgn(this.a,l(t,245))},I(no,"JsonMetaDataConverter/lambda$1$Type",962),D(963,1,fr,uQe),h.Cd=function(t){A2n(this.a,l(t,143))},I(no,"JsonMetaDataConverter/lambda$2$Type",963),D(964,1,fr,lQe),h.Cd=function(t){Mgn(this.a,l(t,170))},I(no,"JsonMetaDataConverter/lambda$3$Type",964),D(245,22,{3:1,34:1,22:1,245:1},R8);var bY,mY,Xge,vY,wY,yY,Qge,Jge,xY=Fr(IP,"GraphFeature",245,Hr,dwn,ndn),L_t;D(11,1,{34:1,149:1},Ui,vs,pn,Ha),h.Fd=function(t){return Thn(this,l(t,149))},h.Fb=function(t){return eot(this,t)},h.Sg=function(){return It(this)},h.Pg=function(){return this.b},h.Hb=function(){return s2(this.b)},h.Ib=function(){return this.b},I(IP,"Property",11),D(671,1,ii,Nie),h.Ne=function(t,n){return N4n(this,l(t,96),l(n,96))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(IP,"PropertyHolderComparator",671),D(709,1,Oa,ywe),h.Nb=function(t){Za(this,t)},h.Pb=function(){return Pvn(this)},h.Qb=function(){aZe()},h.Ob=function(){return!!this.a},I(qG,"ElkGraphUtil/AncestorIterator",709);var mPe=ks(So,"EList");D(70,56,{20:1,31:1,56:1,16:1,15:1,70:1,61:1}),h.bd=function(t,n){_A(this,t,n)},h.Fc=function(t){return qr(this,t)},h.cd=function(t,n){return N7e(this,t,n)},h.Gc=function(t){return As(this,t)},h.Ii=function(){return new H8(this)},h.Ji=function(){return new CO(this)},h.Ki=function(t){return mN(this,t)},h.Li=function(){return!0},h.Mi=function(t,n){},h.Ni=function(){},h.Oi=function(t,n){Noe(this,t,n)},h.Pi=function(t,n,r){},h.Qi=function(t,n){},h.Ri=function(t,n,r){},h.Fb=function(t){return Bbt(this,t)},h.Hb=function(){return M7e(this)},h.Si=function(){return!1},h.Kc=function(){return new or(this)},h.ed=function(){return new q8(this)},h.fd=function(t){var n;if(n=this.gc(),t<0||t>n)throw ue(new my(t,n));return new jae(this,t)},h.Ui=function(t,n){this.Ti(t,this.dd(n))},h.Mc=function(t){return sV(this,t)},h.Wi=function(t,n){return n},h.hd=function(t,n){return n6(this,t,n)},h.Ib=function(){return T8e(this)},h.Yi=function(){return!0},h.Zi=function(t,n){return EE(this,n)},I(So,"AbstractEList",70),D(66,70,Bd,X2,Lw,T7e),h.Ei=function(t,n){return Due(this,t,n)},h.Fi=function(t){return Odt(this,t)},h.Gi=function(t,n){IN(this,t,n)},h.Hi=function(t){tN(this,t)},h.$i=function(t){return R6e(this,t)},h.$b=function(){uA(this)},h.Hc=function(t){return jE(this,t)},h.Xb=function(t){return Oe(this,t)},h._i=function(t){var n,r,a;++this.j,r=this.g==null?0:this.g.length,t>r&&(a=this.g,n=r+(r/2|0)+4,n=0?(this.gd(n),!0):!1},h.Xi=function(t,n){return this.Dj(t,this.Zi(t,n))},h.gc=function(){return this.Ej()},h.Pc=function(){return this.Fj()},h.Qc=function(t){return this.Gj(t)},h.Ib=function(){return this.Hj()},I(So,"DelegatingEList",2093),D(2094,2093,J4t),h.Ei=function(t,n){return wke(this,t,n)},h.Fi=function(t){return this.Ei(this.Ej(),t)},h.Gi=function(t,n){E2t(this,t,n)},h.Hi=function(t){h2t(this,t)},h.Li=function(){return!this.Mj()},h.$b=function(){tL(this)},h.Ij=function(t,n,r,a,o){return new Zat(this,t,n,r,a,o)},h.Jj=function(t){Ni(this.jj(),t)},h.Kj=function(){return null},h.Lj=function(){return-1},h.jj=function(){return null},h.Mj=function(){return!1},h.Nj=function(t,n){return n},h.Oj=function(t,n){return n},h.Pj=function(){return!1},h.Qj=function(){return!this.Aj()},h.Ti=function(t,n){var r,a;return this.Pj()?(a=this.Qj(),r=Uxe(this,t,n),this.Jj(this.Ij(7,pt(n),r,t,a)),r):Uxe(this,t,n)},h.gd=function(t){var n,r,a,o;return this.Pj()?(r=null,a=this.Qj(),n=this.Ij(4,o=rH(this,t),null,t,a),this.Mj()&&o?(r=this.Oj(o,r),r?(r.nj(n),r.oj()):this.Jj(n)):r?(r.nj(n),r.oj()):this.Jj(n),o):(o=rH(this,t),this.Mj()&&o&&(r=this.Oj(o,null),r&&r.oj()),o)},h.Xi=function(t,n){return Mmt(this,t,n)},I(Rx,"DelegatingNotifyingListImpl",2094),D(152,1,YP),h.nj=function(t){return Mxe(this,t)},h.oj=function(){qoe(this)},h.gj=function(){return this.d},h.Kj=function(){return null},h.Rj=function(){return null},h.hj=function(t){return-1},h.ij=function(){return mbt(this)},h.jj=function(){return null},h.kj=function(){return X9e(this)},h.lj=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},h.Sj=function(){return!1},h.mj=function(t){var n,r,a,o,f,g,w,E,C,L,B;switch(this.d){case 1:case 2:switch(o=t.gj(),o){case 1:case 2:if(f=t.jj(),qe(f)===qe(this.jj())&&this.hj(null)==t.hj(null))return this.g=t.ij(),t.gj()==1&&(this.d=1),!0}case 4:{switch(o=t.gj(),o){case 4:{if(f=t.jj(),qe(f)===qe(this.jj())&&this.hj(null)==t.hj(null))return C=Bke(this),E=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,g=t.lj(),this.d=6,B=new Lw(2),E<=g?(qr(B,this.n),qr(B,t.kj()),this.g=he(le(Vr,1),di,28,15,[this.o=E,g+1])):(qr(B,t.kj()),qr(B,this.n),this.g=he(le(Vr,1),di,28,15,[this.o=g,E])),this.n=B,C||(this.o=-2-this.o-1),!0;break}}break}case 6:{switch(o=t.gj(),o){case 4:{if(f=t.jj(),qe(f)===qe(this.jj())&&this.hj(null)==t.hj(null)){for(C=Bke(this),g=t.lj(),L=l(this.g,53),a=We(Vr,di,28,L.length+1,15,1),n=0;n>>0,n.toString(16))),a.a+=" (eventType: ",this.d){case 1:{a.a+="SET";break}case 2:{a.a+="UNSET";break}case 3:{a.a+="ADD";break}case 5:{a.a+="ADD_MANY";break}case 4:{a.a+="REMOVE";break}case 6:{a.a+="REMOVE_MANY";break}case 7:{a.a+="MOVE";break}case 8:{a.a+="REMOVING_ADAPTER";break}case 9:{a.a+="RESOLVE";break}default:{ise(a,this.d);break}}if(imt(this)&&(a.a+=", touch: true"),a.a+=", position: ",ise(a,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),a.a+=", notifier: ",O_(a,this.jj()),a.a+=", feature: ",O_(a,this.Kj()),a.a+=", oldValue: ",O_(a,X9e(this)),a.a+=", newValue: ",this.d==6&&De(this.g,53)){for(r=l(this.g,53),a.a+="[",t=0;t10?((!this.b||this.c.j!=this.a)&&(this.b=new U_(this),this.a=this.j),W0(this.b,t)):jE(this,t)},h.Yi=function(){return!0},h.a=0,I(So,"AbstractEList/1",966),D(302,77,she,my),I(So,"AbstractEList/BasicIndexOutOfBoundsException",302),D(37,1,Oa,or),h.Nb=function(t){Za(this,t)},h.Xj=function(){if(this.i.j!=this.f)throw ue(new Xh)},h.Yj=function(){return gr(this)},h.Ob=function(){return this.e!=this.i.gc()},h.Pb=function(){return this.Yj()},h.Qb=function(){jA(this)},h.e=0,h.f=0,h.g=-1,I(So,"AbstractEList/EIterator",37),D(286,37,lg,q8,jae),h.Qb=function(){jA(this)},h.Rb=function(t){D1t(this,t)},h.Zj=function(){var t;try{return t=this.d.Xb(--this.e),this.Xj(),this.g=this.e,t}catch(n){throw n=bs(n),De(n,77)?(this.Xj(),ue(new _c)):ue(n)}},h.$j=function(t){Bdt(this,t)},h.Sb=function(){return this.e!=0},h.Tb=function(){return this.e},h.Ub=function(){return this.Zj()},h.Vb=function(){return this.e-1},h.Wb=function(t){this.$j(t)},I(So,"AbstractEList/EListIterator",286),D(355,37,Oa,H8),h.Yj=function(){return rue(this)},h.Qb=function(){throw ue(new Qr)},I(So,"AbstractEList/NonResolvingEIterator",355),D(398,286,lg,CO,f4e),h.Rb=function(t){throw ue(new Qr)},h.Yj=function(){var t;try{return t=this.c.Vi(this.e),this.Xj(),this.g=this.e++,t}catch(n){throw n=bs(n),De(n,77)?(this.Xj(),ue(new _c)):ue(n)}},h.Zj=function(){var t;try{return t=this.c.Vi(--this.e),this.Xj(),this.g=this.e,t}catch(n){throw n=bs(n),De(n,77)?(this.Xj(),ue(new _c)):ue(n)}},h.Qb=function(){throw ue(new Qr)},h.Wb=function(t){throw ue(new Qr)},I(So,"AbstractEList/NonResolvingEListIterator",398),D(2080,70,Z4t),h.Ei=function(t,n){var r,a,o,f,g,w,E,C,L,B,z;if(o=n.gc(),o!=0){for(C=l(Kn(this.a,4),129),L=C==null?0:C.length,z=L+o,a=Sce(this,z),B=L-t,B>0&&pu(C,t,a,t+o,B),E=n.Kc(),g=0;gr)throw ue(new my(t,r));return new xat(this,t)},h.$b=function(){var t,n;++this.j,t=l(Kn(this.a,4),129),n=t==null?0:t.length,PE(this,null),Noe(this,n,t)},h.Hc=function(t){var n,r,a,o,f;if(n=l(Kn(this.a,4),129),n!=null){if(t!=null){for(a=n,o=0,f=a.length;o=r)throw ue(new my(t,r));return n[t]},h.dd=function(t){var n,r,a;if(n=l(Kn(this.a,4),129),n!=null){if(t!=null){for(r=0,a=n.length;rr)throw ue(new my(t,r));return new yat(this,t)},h.Ti=function(t,n){var r,a,o;if(r=z1t(this),o=r==null?0:r.length,t>=o)throw ue(new tc(Qfe+t+av+o));if(n>=o)throw ue(new tc(Jfe+n+av+o));return a=r[n],t!=n&&(t0&&pu(t,0,n,0,r),n},h.Qc=function(t){var n,r,a;return n=l(Kn(this.a,4),129),a=n==null?0:n.length,a>0&&(t.lengtha&&Ts(t,a,null),t};var M_t;I(So,"ArrayDelegatingEList",2080),D(1051,37,Oa,kut),h.Xj=function(){if(this.b.j!=this.f||qe(l(Kn(this.b.a,4),129))!==qe(this.a))throw ue(new Xh)},h.Qb=function(){jA(this),this.a=l(Kn(this.b.a,4),129)},I(So,"ArrayDelegatingEList/EIterator",1051),D(722,286,lg,Nst,yat),h.Xj=function(){if(this.b.j!=this.f||qe(l(Kn(this.b.a,4),129))!==qe(this.a))throw ue(new Xh)},h.$j=function(t){Bdt(this,t),this.a=l(Kn(this.b.a,4),129)},h.Qb=function(){jA(this),this.a=l(Kn(this.b.a,4),129)},I(So,"ArrayDelegatingEList/EListIterator",722),D(1052,355,Oa,Eut),h.Xj=function(){if(this.b.j!=this.f||qe(l(Kn(this.b.a,4),129))!==qe(this.a))throw ue(new Xh)},I(So,"ArrayDelegatingEList/NonResolvingEIterator",1052),D(723,398,lg,Pst,xat),h.Xj=function(){if(this.b.j!=this.f||qe(l(Kn(this.b.a,4),129))!==qe(this.a))throw ue(new Xh)},I(So,"ArrayDelegatingEList/NonResolvingEListIterator",723),D(615,302,she,Vse),I(So,"BasicEList/BasicIndexOutOfBoundsException",615),D(710,66,Bd,eye),h.bd=function(t,n){throw ue(new Qr)},h.Fc=function(t){throw ue(new Qr)},h.cd=function(t,n){throw ue(new Qr)},h.Gc=function(t){throw ue(new Qr)},h.$b=function(){throw ue(new Qr)},h._i=function(t){throw ue(new Qr)},h.Kc=function(){return this.Ii()},h.ed=function(){return this.Ji()},h.fd=function(t){return this.Ki(t)},h.Ti=function(t,n){throw ue(new Qr)},h.Ui=function(t,n){throw ue(new Qr)},h.gd=function(t){throw ue(new Qr)},h.Mc=function(t){throw ue(new Qr)},h.hd=function(t,n){throw ue(new Qr)},I(So,"BasicEList/UnmodifiableEList",710),D(721,1,{3:1,20:1,16:1,15:1,61:1,597:1}),h.bd=function(t,n){fhn(this,t,l(n,44))},h.Fc=function(t){return sfn(this,l(t,44))},h.Jc=function(t){to(this,t)},h.Xb=function(t){return l(Oe(this.c,t),136)},h.Ti=function(t,n){return l(this.c.Ti(t,n),44)},h.Ui=function(t,n){dhn(this,t,l(n,44))},h.Lc=function(){return new bn(null,new kn(this,16))},h.gd=function(t){return l(this.c.gd(t),44)},h.hd=function(t,n){return Agn(this,t,l(n,44))},h.jd=function(t){$m(this,t)},h.Nc=function(){return new kn(this,16)},h.Oc=function(){return new bn(null,new kn(this,16))},h.cd=function(t,n){return this.c.cd(t,n)},h.Gc=function(t){return this.c.Gc(t)},h.$b=function(){this.c.$b()},h.Hc=function(t){return this.c.Hc(t)},h.Ic=function(t){return EN(this.c,t)},h._j=function(){var t,n,r;if(this.d==null){for(this.d=We(vPe,_Se,66,2*this.f+1,0,1),r=this.e,this.f=0,n=this.c.Kc();n.e!=n.i.gc();)t=l(n.Yj(),136),oU(this,t);this.e=r}},h.Fb=function(t){return cit(this,t)},h.Hb=function(){return M7e(this.c)},h.dd=function(t){return this.c.dd(t)},h.ak=function(){this.c=new hQe(this)},h.dc=function(){return this.f==0},h.Kc=function(){return this.c.Kc()},h.ed=function(){return this.c.ed()},h.fd=function(t){return this.c.fd(t)},h.bk=function(){return iN(this)},h.ck=function(t,n,r){return new xit(t,n,r)},h.dk=function(){return new S$},h.Mc=function(t){return Wht(this,t)},h.gc=function(){return this.f},h.kd=function(t,n){return new Zp(this.c,t,n)},h.Pc=function(){return this.c.Pc()},h.Qc=function(t){return this.c.Qc(t)},h.Ib=function(){return T8e(this.c)},h.e=0,h.f=0,I(So,"BasicEMap",721),D(1046,66,Bd,hQe),h.Mi=function(t,n){Vcn(this,l(n,136))},h.Pi=function(t,n,r){var a;++(a=this,l(n,136),a).a.e},h.Qi=function(t,n){Ucn(this,l(n,136))},h.Ri=function(t,n,r){Vhn(this,l(n,136),l(r,136))},h.Oi=function(t,n){zft(this.a)},I(So,"BasicEMap/1",1046),D(1047,66,Bd,S$),h.aj=function(t){return We(IOn,e5t,621,t,0,1)},I(So,"BasicEMap/2",1047),D(1048,q1,Tl,fQe),h.$b=function(){this.a.c.$b()},h.Hc=function(t){return Kce(this.a,t)},h.Kc=function(){return this.a.f==0?(Fk(),fF.a):new WJe(this.a)},h.Mc=function(t){var n;return n=this.a.f,YV(this.a,t),this.a.f!=n},h.gc=function(){return this.a.f},I(So,"BasicEMap/3",1048),D(1049,31,Wy,dQe),h.$b=function(){this.a.c.$b()},h.Hc=function(t){return Fbt(this.a,t)},h.Kc=function(){return this.a.f==0?(Fk(),fF.a):new YJe(this.a)},h.gc=function(){return this.a.f},I(So,"BasicEMap/4",1049),D(1050,q1,Tl,gQe),h.$b=function(){this.a.c.$b()},h.Hc=function(t){var n,r,a,o,f,g,w,E,C;if(this.a.f>0&&De(t,44)&&(this.a._j(),E=l(t,44),w=E.ld(),o=w==null?0:es(w),f=Qye(this.a,o),n=this.a.d[f],n)){for(r=l(n.g,379),C=n.i,g=0;g"+this.c},h.a=0;var IOn=I(So,"BasicEMap/EntryImpl",621);D(546,1,{},MS),I(So,"BasicEMap/View",546);var fF;D(783,1,{}),h.Fb=function(t){return O9e((Cn(),_o),t)},h.Hb=function(){return q7e((Cn(),_o))},h.Ib=function(){return Tb((Cn(),_o))},I(So,"ECollections/BasicEmptyUnmodifiableEList",783),D(1348,1,lg,Qne),h.Nb=function(t){Za(this,t)},h.Rb=function(t){throw ue(new Qr)},h.Ob=function(){return!1},h.Sb=function(){return!1},h.Pb=function(){throw ue(new _c)},h.Tb=function(){return 0},h.Ub=function(){throw ue(new _c)},h.Vb=function(){return-1},h.Qb=function(){throw ue(new Qr)},h.Wb=function(t){throw ue(new Qr)},I(So,"ECollections/BasicEmptyUnmodifiableEList/1",1348),D(1346,783,{20:1,16:1,15:1,61:1},iJe),h.bd=function(t,n){wZe()},h.Fc=function(t){return yZe()},h.cd=function(t,n){return xZe()},h.Gc=function(t){return kZe()},h.$b=function(){EZe()},h.Hc=function(t){return!1},h.Ic=function(t){return!1},h.Jc=function(t){to(this,t)},h.Xb=function(t){return rye((Cn(),t)),null},h.dd=function(t){return-1},h.dc=function(){return!0},h.Kc=function(){return this.a},h.ed=function(){return this.a},h.fd=function(t){return this.a},h.Ti=function(t,n){return TZe()},h.Ui=function(t,n){CZe()},h.Lc=function(){return new bn(null,new kn(this,16))},h.gd=function(t){return SZe()},h.Mc=function(t){return _Ze()},h.hd=function(t,n){return AZe()},h.gc=function(){return 0},h.jd=function(t){$m(this,t)},h.Nc=function(){return new kn(this,16)},h.Oc=function(){return new bn(null,new kn(this,16))},h.kd=function(t,n){return Cn(),new Zp(_o,t,n)},h.Pc=function(){return e5e((Cn(),_o))},h.Qc=function(t){return Cn(),PA(_o,t)},I(So,"ECollections/EmptyUnmodifiableEList",1346),D(1347,783,{20:1,16:1,15:1,61:1,597:1},sJe),h.bd=function(t,n){wZe()},h.Fc=function(t){return yZe()},h.cd=function(t,n){return xZe()},h.Gc=function(t){return kZe()},h.$b=function(){EZe()},h.Hc=function(t){return!1},h.Ic=function(t){return!1},h.Jc=function(t){to(this,t)},h.Xb=function(t){return rye((Cn(),t)),null},h.dd=function(t){return-1},h.dc=function(){return!0},h.Kc=function(){return this.a},h.ed=function(){return this.a},h.fd=function(t){return this.a},h.Ti=function(t,n){return TZe()},h.Ui=function(t,n){CZe()},h.Lc=function(){return new bn(null,new kn(this,16))},h.gd=function(t){return SZe()},h.Mc=function(t){return _Ze()},h.hd=function(t,n){return AZe()},h.gc=function(){return 0},h.jd=function(t){$m(this,t)},h.Nc=function(){return new kn(this,16)},h.Oc=function(){return new bn(null,new kn(this,16))},h.kd=function(t,n){return Cn(),new Zp(_o,t,n)},h.Pc=function(){return e5e((Cn(),_o))},h.Qc=function(t){return Cn(),PA(_o,t)},h.bk=function(){return Cn(),Cn(),mg},I(So,"ECollections/EmptyUnmodifiableEMap",1347);var yPe=ks(So,"Enumerator"),kY;D(288,1,{288:1},ele),h.Fb=function(t){var n;return this===t?!0:De(t,288)?(n=l(t,288),this.f==n.f&&Vdn(this.i,n.i)&&_ae(this.a,this.f&256?n.f&256?n.a:null:n.f&256?null:n.a)&&_ae(this.d,n.d)&&_ae(this.g,n.g)&&_ae(this.e,n.e)&&g6n(this,n)):!1},h.Hb=function(){return this.f},h.Ib=function(){return bmt(this)},h.f=0;var D_t=0,I_t=0,O_t=0,N_t=0,xPe=0,kPe=0,EPe=0,TPe=0,CPe=0,P_t,$M=0,zM=0,B_t=0,F_t=0,EY,SPe;I(So,"URI",288),D(1121,45,m6,aJe),h.zc=function(t,n){return l(rc(this,ei(t),l(n,288)),288)},I(So,"URI/URICache",1121),D(506,66,Bd,E$,uH),h.Si=function(){return!0},I(So,"UniqueEList",506),D(590,63,lp,nV),I(So,"WrappedException",590);var mi=ks(pf,r5t),M4=ks(pf,i5t),dl=ks(pf,s5t),D4=ks(pf,a5t),l1=ks(pf,o5t),Vf=ks(pf,"EClass"),tpe=ks(pf,"EDataType"),R_t;D(1233,45,m6,oJe),h.xc=function(t){return Ia(t)?xu(this,t):hc(zo(this.f,t))},I(pf,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1233);var TY=ks(pf,"EEnum"),wp=ks(pf,c5t),Wo=ks(pf,u5t),Uf=ks(pf,l5t),Gf,k3=ks(pf,h5t),I4=ks(pf,f5t);D(1042,1,{},Yne),h.Ib=function(){return"NIL"},I(pf,"EStructuralFeature/Internal/DynamicValueHolder/1",1042);var j_t;D(1041,45,m6,cJe),h.xc=function(t){return Ia(t)?xu(this,t):hc(zo(this.f,t))},I(pf,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1041);var Zu=ks(pf,d5t),o9=ks(pf,"EValidator/PatternMatcher"),_Pe,APe,Vn,M2,O4,Jb,$_t,z_t,q_t,Zb,D2,em,E3,td,H_t,V_t,Kf,I2,U_t,O2,N4,o7,No,G_t,K_t,T3,CY=ks(us,"FeatureMap/Entry");D(545,1,{76:1},Sq),h.Lk=function(){return this.a},h.md=function(){return this.b},I(Gn,"BasicEObjectImpl/1",545),D(1040,1,i0e,Itt),h.Fk=function(t){return Moe(this.a,this.b,t)},h.Qj=function(){return got(this.a,this.b)},h.Wb=function(t){q5e(this.a,this.b,t)},h.Gk=function(){zgn(this.a,this.b)},I(Gn,"BasicEObjectImpl/4",1040),D(2081,1,{114:1}),h.Mk=function(t){this.e=t==0?W_t:We(wa,Rn,1,t,5,1)},h.li=function(t){return this.e[t]},h.mi=function(t,n){this.e[t]=n},h.ni=function(t){this.e[t]=null},h.Nk=function(){return this.c},h.Ok=function(){throw ue(new Qr)},h.Pk=function(){throw ue(new Qr)},h.Qk=function(){return this.d},h.Rk=function(){return this.e!=null},h.Sk=function(t){this.c=t},h.Tk=function(t){throw ue(new Qr)},h.Uk=function(t){throw ue(new Qr)},h.Vk=function(t){this.d=t};var W_t;I(Gn,"BasicEObjectImpl/EPropertiesHolderBaseImpl",2081),D(192,2081,{114:1},Sf),h.Ok=function(){return this.a},h.Pk=function(){return this.b},h.Tk=function(t){this.a=t},h.Uk=function(t){this.b=t},I(Gn,"BasicEObjectImpl/EPropertiesHolderImpl",192),D(516,99,g4t,m5),h.uh=function(){return this.f},h.zh=function(){return this.k},h.Bh=function(t,n){this.g=t,this.i=n},h.Dh=function(){return this.j&2?this.$h().Nk():this.ii()},h.Fh=function(){return this.i},h.wh=function(){return(this.j&1)!=0},h.Ph=function(){return this.g},h.Vh=function(){return(this.j&4)!=0},h.$h=function(){return!this.k&&(this.k=new Sf),this.k},h.ci=function(t){this.$h().Sk(t),t?this.j|=2:this.j&=-3},h.ei=function(t){this.$h().Uk(t),t?this.j|=4:this.j&=-5},h.ii=function(){return(lb(),Vn).S},h.i=0,h.j=1,I(Gn,"EObjectImpl",516),D(798,516,{110:1,94:1,93:1,58:1,114:1,54:1,99:1},F4e),h.li=function(t){return this.e[t]},h.mi=function(t,n){this.e[t]=n},h.ni=function(t){this.e[t]=null},h.Dh=function(){return this.d},h.Ih=function(t){return ms(this.d,t)},h.Kh=function(){return this.d},h.Oh=function(){return this.e!=null},h.$h=function(){return!this.k&&(this.k=new _$),this.k},h.ci=function(t){this.d=t},h.hi=function(){var t;return this.e==null&&(t=yr(this.d),this.e=t==0?Y_t:We(wa,Rn,1,t,5,1)),this},h.ji=function(){return 0};var Y_t;I(Gn,"DynamicEObjectImpl",798),D(1522,798,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1},Git),h.Fb=function(t){return this===t},h.Hb=function(){return fw(this)},h.ci=function(t){this.d=t,this.b=oP(t,"key"),this.c=oP(t,TL)},h.Bi=function(){var t;return this.a==-1&&(t=Hoe(this,this.b),this.a=t==null?0:es(t)),this.a},h.ld=function(){return Hoe(this,this.b)},h.md=function(){return Hoe(this,this.c)},h.Ci=function(t){this.a=t},h.Di=function(t){q5e(this,this.b,t)},h.nd=function(t){var n;return n=Hoe(this,this.c),q5e(this,this.c,t),n},h.a=0,I(Gn,"DynamicEObjectImpl/BasicEMapEntry",1522),D(1523,1,{114:1},_$),h.Mk=function(t){throw ue(new Qr)},h.li=function(t){throw ue(new Qr)},h.mi=function(t,n){throw ue(new Qr)},h.ni=function(t){throw ue(new Qr)},h.Nk=function(){throw ue(new Qr)},h.Ok=function(){return this.a},h.Pk=function(){return this.b},h.Qk=function(){return this.c},h.Rk=function(){throw ue(new Qr)},h.Sk=function(t){throw ue(new Qr)},h.Tk=function(t){this.a=t},h.Uk=function(t){this.b=t},h.Vk=function(t){this.c=t},I(Gn,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1523),D(519,158,{110:1,94:1,93:1,598:1,155:1,58:1,114:1,54:1,99:1,519:1,158:1,119:1,120:1},CI),h.Ah=function(t){return dxe(this,t)},h.Lh=function(t,n,r){var a;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.d;case 2:return r?(!this.b&&(this.b=new dh((Tn(),No),Yc,this)),this.b):(!this.b&&(this.b=new dh((Tn(),No),Yc,this)),iN(this.b));case 3:return wot(this);case 4:return!this.a&&(this.a=new Ys(Xb,this,4)),this.a;case 5:return!this.c&&(this.c=new $5(Xb,this,5)),this.c}return sf(this,t-yr((Tn(),M2)),Mn((a=l(Kn(this,16),29),a||M2),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 3:return this.Cb&&(r=(o=this.Db>>16,o>=0?dxe(this,r):this.Cb.Th(this,-1-o,null,r))),Z4e(this,l(t,155),r)}return f=l(Mn((a=l(Kn(this,16),29),a||(Tn(),M2)),n),69),f.wk().zk(this,Ku(this),n-yr((Tn(),M2)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 2:return!this.b&&(this.b=new dh((Tn(),No),Yc,this)),Uq(this.b,t,r);case 3:return Z4e(this,null,r);case 4:return!this.a&&(this.a=new Ys(Xb,this,4)),To(this.a,t,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),M2)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),M2)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return!!this.b&&this.b.f!=0;case 3:return!!wot(this);case 4:return!!this.a&&this.a.i!=0;case 5:return!!this.c&&this.c.i!=0}return nf(this,t-yr((Tn(),M2)),Mn((n=l(Kn(this,16),29),n||M2),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:Ddn(this,ei(n));return;case 2:!this.b&&(this.b=new dh((Tn(),No),Yc,this)),_V(this.b,n);return;case 3:ibt(this,l(n,155));return;case 4:!this.a&&(this.a=new Ys(Xb,this,4)),$r(this.a),!this.a&&(this.a=new Ys(Xb,this,4)),As(this.a,l(n,16));return;case 5:!this.c&&(this.c=new $5(Xb,this,5)),$r(this.c),!this.c&&(this.c=new $5(Xb,this,5)),As(this.c,l(n,16));return}uf(this,t-yr((Tn(),M2)),Mn((r=l(Kn(this,16),29),r||M2),t),n)},h.ii=function(){return Tn(),M2},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:g7e(this,null);return;case 2:!this.b&&(this.b=new dh((Tn(),No),Yc,this)),this.b.c.$b();return;case 3:ibt(this,null);return;case 4:!this.a&&(this.a=new Ys(Xb,this,4)),$r(this.a);return;case 5:!this.c&&(this.c=new $5(Xb,this,5)),$r(this.c);return}cf(this,t-yr((Tn(),M2)),Mn((n=l(Kn(this,16),29),n||M2),t))},h.Ib=function(){return c1t(this)},h.d=null,I(Gn,"EAnnotationImpl",519),D(141,721,ASe,xl),h.Gi=function(t,n){Yln(this,t,l(n,44))},h.Wk=function(t,n){return Qfn(this,l(t,44),n)},h.$i=function(t){return l(l(this.c,71).$i(t),136)},h.Ii=function(){return l(this.c,71).Ii()},h.Ji=function(){return l(this.c,71).Ji()},h.Ki=function(t){return l(this.c,71).Ki(t)},h.Xk=function(t,n){return Uq(this,t,n)},h.Fk=function(t){return l(this.c,79).Fk(t)},h.ak=function(){},h.Qj=function(){return l(this.c,79).Qj()},h.ck=function(t,n,r){var a;return a=l(Ah(this.b).wi().si(this.b),136),a.Ci(t),a.Di(n),a.nd(r),a},h.dk=function(){return new kwe(this)},h.Wb=function(t){_V(this,t)},h.Gk=function(){l(this.c,79).Gk()},I(us,"EcoreEMap",141),D(165,141,ASe,dh),h._j=function(){var t,n,r,a,o,f;if(this.d==null){for(f=We(vPe,_Se,66,2*this.f+1,0,1),r=this.c.Kc();r.e!=r.i.gc();)n=l(r.Yj(),136),a=n.Bi(),o=(a&Ii)%f.length,t=f[o],!t&&(t=f[o]=new kwe(this)),t.Fc(n);this.d=f}},I(Gn,"EAnnotationImpl/1",165),D(292,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,481:1,54:1,99:1,158:1,292:1,119:1,120:1}),h.Lh=function(t,n,r){var a,o;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return pt(this.s);case 5:return pt(this.t);case 6:return Hn(),!!this.Jk();case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q}return sf(this,t-yr(this.ii()),Mn((a=l(Kn(this,16),29),a||this.ii()),t),n,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 9:return qae(this,r)}return o=l(Mn((a=l(Kn(this,16),29),a||this.ii()),n),69),o.wk().Ak(this,Ku(this),n-yr(this.ii()),t,r)},h.Wh=function(t){var n,r;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&yw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&yw(this.q).i==0)}return nf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.bi=function(t,n){var r,a;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:this.ui(ei(n));return;case 2:c2(this,Rt(Bt(n)));return;case 3:u2(this,Rt(Bt(n)));return;case 4:i2(this,l(n,17).a);return;case 5:this.Zk(l(n,17).a);return;case 8:Gm(this,l(n,142));return;case 9:a=$1(this,l(n,89),null),a&&a.oj();return}uf(this,t-yr(this.ii()),Mn((r=l(Kn(this,16),29),r||this.ii()),t),n)},h.ii=function(){return Tn(),K_t},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:this.ui(null);return;case 2:c2(this,!0);return;case 3:u2(this,!0);return;case 4:i2(this,0);return;case 5:this.Zk(1);return;case 8:Gm(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return}cf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.pi=function(){Of(this),this.Bb|=1},h.Hk=function(){return Of(this)},h.Ik=function(){return this.t},h.Jk=function(){var t;return t=this.t,t>1||t==-1},h.Si=function(){return(this.Bb&512)!=0},h.Yk=function(t,n){return o8e(this,t,n)},h.Zk=function(t){My(this,t)},h.Ib=function(){return T9e(this)},h.s=0,h.t=1,I(Gn,"ETypedElementImpl",292),D(462,292,{110:1,94:1,93:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,462:1,292:1,119:1,120:1,692:1}),h.Ah=function(t){return Qdt(this,t)},h.Lh=function(t,n,r){var a,o;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return pt(this.s);case 5:return pt(this.t);case 6:return Hn(),!!this.Jk();case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return Hn(),!!(this.Bb&m0);case 11:return Hn(),!!(this.Bb&r4);case 12:return Hn(),!!(this.Bb&Xy);case 13:return this.j;case 14:return UE(this);case 15:return Hn(),!!(this.Bb&Sl);case 16:return Hn(),!!(this.Bb&_d);case 17:return ky(this)}return sf(this,t-yr(this.ii()),Mn((a=l(Kn(this,16),29),a||this.ii()),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 17:return this.Cb&&(r=(o=this.Db>>16,o>=0?Qdt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,17,r)}return f=l(Mn((a=l(Kn(this,16),29),a||this.ii()),n),69),f.wk().zk(this,Ku(this),n-yr(this.ii()),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 9:return qae(this,r);case 17:return Nh(this,null,17,r)}return o=l(Mn((a=l(Kn(this,16),29),a||this.ii()),n),69),o.wk().Ak(this,Ku(this),n-yr(this.ii()),t,r)},h.Wh=function(t){var n,r;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&yw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&yw(this.q).i==0);case 10:return(this.Bb&m0)==0;case 11:return(this.Bb&r4)!=0;case 12:return(this.Bb&Xy)!=0;case 13:return this.j!=null;case 14:return UE(this)!=null;case 15:return(this.Bb&Sl)!=0;case 16:return(this.Bb&_d)!=0;case 17:return!!ky(this)}return nf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.bi=function(t,n){var r,a;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:poe(this,ei(n));return;case 2:c2(this,Rt(Bt(n)));return;case 3:u2(this,Rt(Bt(n)));return;case 4:i2(this,l(n,17).a);return;case 5:this.Zk(l(n,17).a);return;case 8:Gm(this,l(n,142));return;case 9:a=$1(this,l(n,89),null),a&&a.oj();return;case 10:AE(this,Rt(Bt(n)));return;case 11:DE(this,Rt(Bt(n)));return;case 12:LE(this,Rt(Bt(n)));return;case 13:Z3e(this,ei(n));return;case 15:ME(this,Rt(Bt(n)));return;case 16:IE(this,Rt(Bt(n)));return}uf(this,t-yr(this.ii()),Mn((r=l(Kn(this,16),29),r||this.ii()),t),n)},h.ii=function(){return Tn(),G_t},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,90)&&zy(Yl(l(this.Cb,90)),4),Fu(this,null);return;case 2:c2(this,!0);return;case 3:u2(this,!0);return;case 4:i2(this,0);return;case 5:this.Zk(1);return;case 8:Gm(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return;case 10:AE(this,!0);return;case 11:DE(this,!1);return;case 12:LE(this,!1);return;case 13:this.i=null,xV(this,null);return;case 15:ME(this,!1);return;case 16:IE(this,!1);return}cf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.pi=function(){Wk(ic((El(),io),this)),Of(this),this.Bb|=1},h.pk=function(){return this.f},h.ik=function(){return UE(this)},h.qk=function(){return ky(this)},h.uk=function(){return null},h.$k=function(){return this.k},h.Lj=function(){return this.n},h.vk=function(){return pU(this)},h.wk=function(){var t,n,r,a,o,f,g,w,E;return this.p||(r=ky(this),(r.i==null&&Sd(r),r.i).length,a=this.uk(),a&&yr(ky(a)),o=Of(this),g=o.kk(),t=g?g.i&1?g==ih?Ns:g==Vr?ro:g==B4?_T:g==Na?ta:g==nm?r3:g==h7?i3:g==Al?jx:PL:g:null,n=UE(this),w=o.ik(),U4n(this),this.Bb&_d&&((f=yxe((El(),io),r))&&f!=this||(f=rx(ic(io,this))))?this.p=new Ntt(this,f):this.Jk()?this.al()?a?this.Bb&Sl?t?this.bl()?this.p=new Om(47,t,this,a):this.p=new Om(5,t,this,a):this.bl()?this.p=new Rm(46,this,a):this.p=new Rm(4,this,a):t?this.bl()?this.p=new Om(49,t,this,a):this.p=new Om(7,t,this,a):this.bl()?this.p=new Rm(48,this,a):this.p=new Rm(6,this,a):this.Bb&Sl?t?t==uv?this.p=new Xp(50,A_t,this):this.bl()?this.p=new Xp(43,t,this):this.p=new Xp(1,t,this):this.bl()?this.p=new Jp(42,this):this.p=new Jp(0,this):t?t==uv?this.p=new Xp(41,A_t,this):this.bl()?this.p=new Xp(45,t,this):this.p=new Xp(3,t,this):this.bl()?this.p=new Jp(44,this):this.p=new Jp(2,this):De(o,156)?t==CY?this.p=new Jp(40,this):this.Bb&512?this.Bb&Sl?t?this.p=new Xp(9,t,this):this.p=new Jp(8,this):t?this.p=new Xp(11,t,this):this.p=new Jp(10,this):this.Bb&Sl?t?this.p=new Xp(13,t,this):this.p=new Jp(12,this):t?this.p=new Xp(15,t,this):this.p=new Jp(14,this):a?(E=a.t,E>1||E==-1?this.bl()?this.Bb&Sl?t?this.p=new Om(25,t,this,a):this.p=new Rm(24,this,a):t?this.p=new Om(27,t,this,a):this.p=new Rm(26,this,a):this.Bb&Sl?t?this.p=new Om(29,t,this,a):this.p=new Rm(28,this,a):t?this.p=new Om(31,t,this,a):this.p=new Rm(30,this,a):this.bl()?this.Bb&Sl?t?this.p=new Om(33,t,this,a):this.p=new Rm(32,this,a):t?this.p=new Om(35,t,this,a):this.p=new Rm(34,this,a):this.Bb&Sl?t?this.p=new Om(37,t,this,a):this.p=new Rm(36,this,a):t?this.p=new Om(39,t,this,a):this.p=new Rm(38,this,a)):this.bl()?this.Bb&Sl?t?this.p=new Xp(17,t,this):this.p=new Jp(16,this):t?this.p=new Xp(19,t,this):this.p=new Jp(18,this):this.Bb&Sl?t?this.p=new Xp(21,t,this):this.p=new Jp(20,this):t?this.p=new Xp(23,t,this):this.p=new Jp(22,this):this._k()?this.bl()?this.p=new kit(l(o,29),this,a):this.p=new $5e(l(o,29),this,a):De(o,156)?t==CY?this.p=new Jp(40,this):this.Bb&Sl?t?this.p=new xst(n,w,this,(Wce(),g==Vr?PPe:g==ih?MPe:g==nm?BPe:g==B4?NPe:g==Na?OPe:g==h7?FPe:g==Al?DPe:g==kf?IPe:ipe)):this.p=new Nat(l(o,156),n,w,this):t?this.p=new yst(n,w,this,(Wce(),g==Vr?PPe:g==ih?MPe:g==nm?BPe:g==B4?NPe:g==Na?OPe:g==h7?FPe:g==Al?DPe:g==kf?IPe:ipe)):this.p=new Oat(l(o,156),n,w,this):this.al()?a?this.Bb&Sl?this.bl()?this.p=new Tit(l(o,29),this,a):this.p=new C4e(l(o,29),this,a):this.bl()?this.p=new Eit(l(o,29),this,a):this.p=new yae(l(o,29),this,a):this.Bb&Sl?this.bl()?this.p=new yrt(l(o,29),this):this.p=new jye(l(o,29),this):this.bl()?this.p=new wrt(l(o,29),this):this.p=new oae(l(o,29),this):this.bl()?a?this.Bb&Sl?this.p=new Cit(l(o,29),this,a):this.p=new E4e(l(o,29),this,a):this.Bb&Sl?this.p=new xrt(l(o,29),this):this.p=new $ye(l(o,29),this):a?this.Bb&Sl?this.p=new Sit(l(o,29),this,a):this.p=new T4e(l(o,29),this,a):this.Bb&Sl?this.p=new krt(l(o,29),this):this.p=new cH(l(o,29),this)),this.p},h.rk=function(){return(this.Bb&m0)!=0},h._k=function(){return!1},h.al=function(){return!1},h.sk=function(){return(this.Bb&_d)!=0},h.xk=function(){return Voe(this)},h.bl=function(){return!1},h.tk=function(){return(this.Bb&Sl)!=0},h.cl=function(t){this.k=t},h.ui=function(t){poe(this,t)},h.Ib=function(){return BU(this)},h.e=!1,h.n=0,I(Gn,"EStructuralFeatureImpl",462),D(331,462,{110:1,94:1,93:1,35:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,331:1,158:1,462:1,292:1,119:1,120:1,692:1},zie),h.Lh=function(t,n,r){var a,o;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return pt(this.s);case 5:return pt(this.t);case 6:return Hn(),!!v9e(this);case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return Hn(),!!(this.Bb&m0);case 11:return Hn(),!!(this.Bb&r4);case 12:return Hn(),!!(this.Bb&Xy);case 13:return this.j;case 14:return UE(this);case 15:return Hn(),!!(this.Bb&Sl);case 16:return Hn(),!!(this.Bb&_d);case 17:return ky(this);case 18:return Hn(),!!(this.Bb&eu);case 19:return n?gce(this):Fut(this)}return sf(this,t-yr((Tn(),O4)),Mn((a=l(Kn(this,16),29),a||O4),t),n,r)},h.Wh=function(t){var n,r;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return v9e(this);case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&yw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&yw(this.q).i==0);case 10:return(this.Bb&m0)==0;case 11:return(this.Bb&r4)!=0;case 12:return(this.Bb&Xy)!=0;case 13:return this.j!=null;case 14:return UE(this)!=null;case 15:return(this.Bb&Sl)!=0;case 16:return(this.Bb&_d)!=0;case 17:return!!ky(this);case 18:return(this.Bb&eu)!=0;case 19:return!!Fut(this)}return nf(this,t-yr((Tn(),O4)),Mn((n=l(Kn(this,16),29),n||O4),t))},h.bi=function(t,n){var r,a;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:poe(this,ei(n));return;case 2:c2(this,Rt(Bt(n)));return;case 3:u2(this,Rt(Bt(n)));return;case 4:i2(this,l(n,17).a);return;case 5:JJe(this,l(n,17).a);return;case 8:Gm(this,l(n,142));return;case 9:a=$1(this,l(n,89),null),a&&a.oj();return;case 10:AE(this,Rt(Bt(n)));return;case 11:DE(this,Rt(Bt(n)));return;case 12:LE(this,Rt(Bt(n)));return;case 13:Z3e(this,ei(n));return;case 15:ME(this,Rt(Bt(n)));return;case 16:IE(this,Rt(Bt(n)));return;case 18:$ce(this,Rt(Bt(n)));return}uf(this,t-yr((Tn(),O4)),Mn((r=l(Kn(this,16),29),r||O4),t),n)},h.ii=function(){return Tn(),O4},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,90)&&zy(Yl(l(this.Cb,90)),4),Fu(this,null);return;case 2:c2(this,!0);return;case 3:u2(this,!0);return;case 4:i2(this,0);return;case 5:this.b=0,My(this,1);return;case 8:Gm(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return;case 10:AE(this,!0);return;case 11:DE(this,!1);return;case 12:LE(this,!1);return;case 13:this.i=null,xV(this,null);return;case 15:ME(this,!1);return;case 16:IE(this,!1);return;case 18:$ce(this,!1);return}cf(this,t-yr((Tn(),O4)),Mn((n=l(Kn(this,16),29),n||O4),t))},h.pi=function(){gce(this),Wk(ic((El(),io),this)),Of(this),this.Bb|=1},h.Jk=function(){return v9e(this)},h.Yk=function(t,n){return this.b=0,this.a=null,o8e(this,t,n)},h.Zk=function(t){JJe(this,t)},h.Ib=function(){var t;return this.Db&64?BU(this):(t=new Af(BU(this)),t.a+=" (iD: ",Gp(t,(this.Bb&eu)!=0),t.a+=")",t.a)},h.b=0,I(Gn,"EAttributeImpl",331),D(364,448,{110:1,94:1,93:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,364:1,158:1,119:1,120:1,691:1}),h.dl=function(t){return t.Dh()==this},h.Ah=function(t){return wue(this,t)},h.Bh=function(t,n){this.w=null,this.Db=n<<16|this.Db&255,this.Cb=t},h.Lh=function(t,n,r){var a;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return zw(this);case 4:return this.ik();case 5:return this.F;case 6:return n?Ah(this):Qk(this);case 7:return!this.A&&(this.A=new ml(Zu,this,7)),this.A}return sf(this,t-yr(this.ii()),Mn((a=l(Kn(this,16),29),a||this.ii()),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?wue(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,6,r)}return f=l(Mn((a=l(Kn(this,16),29),a||this.ii()),n),69),f.wk().zk(this,Ku(this),n-yr(this.ii()),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 6:return Nh(this,null,6,r);case 7:return!this.A&&(this.A=new ml(Zu,this,7)),To(this.A,t,r)}return o=l(Mn((a=l(Kn(this,16),29),a||this.ii()),n),69),o.wk().Ak(this,Ku(this),n-yr(this.ii()),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!zw(this);case 4:return this.ik()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!Qk(this);case 7:return!!this.A&&this.A.i!=0}return nf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:FH(this,ei(n));return;case 2:Kse(this,ei(n));return;case 5:JE(this,ei(n));return;case 7:!this.A&&(this.A=new ml(Zu,this,7)),$r(this.A),!this.A&&(this.A=new ml(Zu,this,7)),As(this.A,l(n,16));return}uf(this,t-yr(this.ii()),Mn((r=l(Kn(this,16),29),r||this.ii()),t),n)},h.ii=function(){return Tn(),$_t},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,184)&&(l(this.Cb,184).tb=null),Fu(this,null);return;case 2:CE(this,null),lE(this,this.D);return;case 5:JE(this,null);return;case 7:!this.A&&(this.A=new ml(Zu,this,7)),$r(this.A);return}cf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.hk=function(){var t;return this.G==-1&&(this.G=(t=Ah(this),t?f2(t.vi(),this):-1)),this.G},h.ik=function(){return null},h.jk=function(){return Ah(this)},h.el=function(){return this.v},h.kk=function(){return zw(this)},h.lk=function(){return this.D!=null?this.D:this.B},h.mk=function(){return this.F},h.fk=function(t){return ule(this,t)},h.fl=function(t){this.v=t},h.gl=function(t){xft(this,t)},h.hl=function(t){this.C=t},h.ui=function(t){FH(this,t)},h.Ib=function(){return UV(this)},h.C=null,h.D=null,h.G=-1,I(Gn,"EClassifierImpl",364),D(90,364,{110:1,94:1,93:1,29:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,90:1,364:1,158:1,482:1,119:1,120:1,691:1},hz),h.dl=function(t){return Nfn(this,t.Dh())},h.Lh=function(t,n,r){var a;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return zw(this);case 4:return null;case 5:return this.F;case 6:return n?Ah(this):Qk(this);case 7:return!this.A&&(this.A=new ml(Zu,this,7)),this.A;case 8:return Hn(),!!(this.Bb&256);case 9:return Hn(),!!(this.Bb&512);case 10:return dc(this);case 11:return!this.q&&(this.q=new nt(Uf,this,11,10)),this.q;case 12:return d6(this);case 13:return JA(this);case 14:return JA(this),this.r;case 15:return d6(this),this.k;case 16:return o9e(this);case 17:return dle(this);case 18:return Sd(this);case 19:return _U(this);case 20:return d6(this),this.o;case 21:return!this.s&&(this.s=new nt(dl,this,21,17)),this.s;case 22:return du(this);case 23:return Zue(this)}return sf(this,t-yr((Tn(),Jb)),Mn((a=l(Kn(this,16),29),a||Jb),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?wue(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,6,r);case 11:return!this.q&&(this.q=new nt(Uf,this,11,10)),Ru(this.q,t,r);case 21:return!this.s&&(this.s=new nt(dl,this,21,17)),Ru(this.s,t,r)}return f=l(Mn((a=l(Kn(this,16),29),a||(Tn(),Jb)),n),69),f.wk().zk(this,Ku(this),n-yr((Tn(),Jb)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 6:return Nh(this,null,6,r);case 7:return!this.A&&(this.A=new ml(Zu,this,7)),To(this.A,t,r);case 11:return!this.q&&(this.q=new nt(Uf,this,11,10)),To(this.q,t,r);case 21:return!this.s&&(this.s=new nt(dl,this,21,17)),To(this.s,t,r);case 22:return To(du(this),t,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),Jb)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),Jb)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!zw(this);case 4:return!1;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!Qk(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)!=0;case 9:return(this.Bb&512)!=0;case 10:return!!this.u&&du(this.u.a).i!=0&&!(this.n&&cue(this.n));case 11:return!!this.q&&this.q.i!=0;case 12:return d6(this).i!=0;case 13:return JA(this).i!=0;case 14:return JA(this),this.r.i!=0;case 15:return d6(this),this.k.i!=0;case 16:return o9e(this).i!=0;case 17:return dle(this).i!=0;case 18:return Sd(this).i!=0;case 19:return _U(this).i!=0;case 20:return d6(this),!!this.o;case 21:return!!this.s&&this.s.i!=0;case 22:return!!this.n&&cue(this.n);case 23:return Zue(this).i!=0}return nf(this,t-yr((Tn(),Jb)),Mn((n=l(Kn(this,16),29),n||Jb),t))},h.Zh=function(t){var n;return n=this.i==null||this.q&&this.q.i!=0?null:oP(this,t),n||Hke(this,t)},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:FH(this,ei(n));return;case 2:Kse(this,ei(n));return;case 5:JE(this,ei(n));return;case 7:!this.A&&(this.A=new ml(Zu,this,7)),$r(this.A),!this.A&&(this.A=new ml(Zu,this,7)),As(this.A,l(n,16));return;case 8:c8e(this,Rt(Bt(n)));return;case 9:u8e(this,Rt(Bt(n)));return;case 10:tL(dc(this)),As(dc(this),l(n,16));return;case 11:!this.q&&(this.q=new nt(Uf,this,11,10)),$r(this.q),!this.q&&(this.q=new nt(Uf,this,11,10)),As(this.q,l(n,16));return;case 21:!this.s&&(this.s=new nt(dl,this,21,17)),$r(this.s),!this.s&&(this.s=new nt(dl,this,21,17)),As(this.s,l(n,16));return;case 22:$r(du(this)),As(du(this),l(n,16));return}uf(this,t-yr((Tn(),Jb)),Mn((r=l(Kn(this,16),29),r||Jb),t),n)},h.ii=function(){return Tn(),Jb},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,184)&&(l(this.Cb,184).tb=null),Fu(this,null);return;case 2:CE(this,null),lE(this,this.D);return;case 5:JE(this,null);return;case 7:!this.A&&(this.A=new ml(Zu,this,7)),$r(this.A);return;case 8:c8e(this,!1);return;case 9:u8e(this,!1);return;case 10:this.u&&tL(this.u);return;case 11:!this.q&&(this.q=new nt(Uf,this,11,10)),$r(this.q);return;case 21:!this.s&&(this.s=new nt(dl,this,21,17)),$r(this.s);return;case 22:this.n&&$r(this.n);return}cf(this,t-yr((Tn(),Jb)),Mn((n=l(Kn(this,16),29),n||Jb),t))},h.pi=function(){var t,n;if(d6(this),JA(this),o9e(this),dle(this),Sd(this),_U(this),Zue(this),uA(adn(Yl(this))),this.s)for(t=0,n=this.s.i;t=0;--n)Oe(this,n);return O8e(this,t)},h.Gk=function(){$r(this)},h.Zi=function(t,n){return Hht(this,t,n)},I(us,"EcoreEList",632),D(505,632,kc,FO),h.Li=function(){return!1},h.Lj=function(){return this.c},h.Mj=function(){return!1},h.ol=function(){return!0},h.Si=function(){return!0},h.Wi=function(t,n){return n},h.Yi=function(){return!1},h.c=0,I(us,"EObjectEList",505),D(83,505,kc,Ys),h.Mj=function(){return!0},h.ml=function(){return!1},h.al=function(){return!0},I(us,"EObjectContainmentEList",83),D(555,83,kc,Bq),h.Ni=function(){this.b=!0},h.Qj=function(){return this.b},h.Gk=function(){var t;$r(this),hh(this.e)?(t=this.b,this.b=!1,Ni(this.e,new h0(this.e,2,this.c,t,!1))):this.b=!1},h.b=!1,I(us,"EObjectContainmentEList/Unsettable",555),D(1161,555,kc,vst),h.Ti=function(t,n){var r,a;return r=l(AA(this,t,n),89),hh(this.e)&&xk(this,new sN(this.a,7,(Tn(),z_t),pt(n),(a=r.c,De(a,90)?l(a,29):Kf),t)),r},h.Uj=function(t,n){return _5n(this,l(t,89),n)},h.Vj=function(t,n){return S5n(this,l(t,89),n)},h.Wj=function(t,n,r){return M8n(this,l(t,89),l(n,89),r)},h.Ij=function(t,n,r,a,o){switch(t){case 3:return rA(this,t,n,r,a,this.i>1);case 5:return rA(this,t,n,r,a,this.i-l(r,15).gc()>0);default:return new Zg(this.e,t,this.c,n,r,a,!0)}},h.Tj=function(){return!0},h.Qj=function(){return cue(this)},h.Gk=function(){$r(this)},I(Gn,"EClassImpl/1",1161),D(1175,1174,SSe),h.dj=function(t){var n,r,a,o,f,g,w;if(r=t.gj(),r!=8){if(a=c6n(t),a==0)switch(r){case 1:case 9:{w=t.kj(),w!=null&&(n=Yl(l(w,482)),!n.c&&(n.c=new Xd),sV(n.c,t.jj())),g=t.ij(),g!=null&&(o=l(g,482),o.Bb&1||(n=Yl(o),!n.c&&(n.c=new Xd),qr(n.c,l(t.jj(),29))));break}case 3:{g=t.ij(),g!=null&&(o=l(g,482),o.Bb&1||(n=Yl(o),!n.c&&(n.c=new Xd),qr(n.c,l(t.jj(),29))));break}case 5:{if(g=t.ij(),g!=null)for(f=l(g,16).Kc();f.Ob();)o=l(f.Pb(),482),o.Bb&1||(n=Yl(o),!n.c&&(n.c=new Xd),qr(n.c,l(t.jj(),29)));break}case 4:{w=t.kj(),w!=null&&(o=l(w,482),o.Bb&1||(n=Yl(o),!n.c&&(n.c=new Xd),sV(n.c,t.jj())));break}case 6:{if(w=t.kj(),w!=null)for(f=l(w,16).Kc();f.Ob();)o=l(f.Pb(),482),o.Bb&1||(n=Yl(o),!n.c&&(n.c=new Xd),sV(n.c,t.jj()));break}}this.ql(a)}},h.ql=function(t){Vbt(this,t)},h.b=63,I(Gn,"ESuperAdapter",1175),D(1176,1175,SSe,bQe),h.ql=function(t){zy(this,t)},I(Gn,"EClassImpl/10",1176),D(1165,710,kc),h.Ei=function(t,n){return Due(this,t,n)},h.Fi=function(t){return Odt(this,t)},h.Gi=function(t,n){IN(this,t,n)},h.Hi=function(t){tN(this,t)},h.$i=function(t){return R6e(this,t)},h.Xi=function(t,n){return Uoe(this,t,n)},h.Wk=function(t,n){throw ue(new Qr)},h.Ii=function(){return new H8(this)},h.Ji=function(){return new CO(this)},h.Ki=function(t){return mN(this,t)},h.Xk=function(t,n){throw ue(new Qr)},h.Fk=function(t){return this},h.Qj=function(){return this.i!=0},h.Wb=function(t){throw ue(new Qr)},h.Gk=function(){throw ue(new Qr)},I(us,"EcoreEList/UnmodifiableEList",1165),D(328,1165,kc,N5),h.Yi=function(){return!1},I(us,"EcoreEList/UnmodifiableEList/FastCompare",328),D(1168,328,kc,g0t),h.dd=function(t){var n,r,a;if(De(t,179)&&(n=l(t,179),r=n.Lj(),r!=-1)){for(a=this.i;r4)if(this.fk(t)){if(this.al()){if(a=l(t,54),r=a.Eh(),w=r==this.b&&(this.ml()?a.yh(a.Fh(),l(Mn(sl(this.b),this.Lj()).Hk(),29).kk())==Ro(l(Mn(sl(this.b),this.Lj()),19)).n:-1-a.Fh()==this.Lj()),this.nl()&&!w&&!r&&a.Jh()){for(o=0;o1||a==-1)):!1},h.ml=function(){var t,n,r;return n=Mn(sl(this.b),this.Lj()),De(n,102)?(t=l(n,19),r=Ro(t),!!r):!1},h.nl=function(){var t,n;return n=Mn(sl(this.b),this.Lj()),De(n,102)?(t=l(n,19),(t.Bb&Io)!=0):!1},h.dd=function(t){var n,r,a,o;if(a=this.zj(t),a>=0)return a;if(this.ol()){for(r=0,o=this.Ej();r=0;--t)mP(this,t,this.xj(t));return this.Fj()},h.Qc=function(t){var n;if(this.nl())for(n=this.Ej()-1;n>=0;--n)mP(this,n,this.xj(n));return this.Gj(t)},h.Gk=function(){tL(this)},h.Zi=function(t,n){return ylt(this,t,n)},I(us,"DelegatingEcoreEList",756),D(1171,756,MSe,Nrt),h.qj=function(t,n){ifn(this,t,l(n,29))},h.rj=function(t){Gln(this,l(t,29))},h.xj=function(t){var n,r;return n=l(Oe(du(this.a),t),89),r=n.c,De(r,90)?l(r,29):(Tn(),Kf)},h.Cj=function(t){var n,r;return n=l(Vy(du(this.a),t),89),r=n.c,De(r,90)?l(r,29):(Tn(),Kf)},h.Dj=function(t,n){return t7n(this,t,l(n,29))},h.Li=function(){return!1},h.Ij=function(t,n,r,a,o){return null},h.sj=function(){return new wQe(this)},h.tj=function(){$r(du(this.a))},h.uj=function(t){return l1t(this,t)},h.vj=function(t){var n,r;for(r=t.Kc();r.Ob();)if(n=r.Pb(),!l1t(this,n))return!1;return!0},h.wj=function(t){var n,r,a;if(De(t,15)&&(a=l(t,15),a.gc()==du(this.a).i)){for(n=a.Kc(),r=new or(this);n.Ob();)if(qe(n.Pb())!==qe(gr(r)))return!1;return!0}return!1},h.yj=function(){var t,n,r,a,o;for(r=1,n=new or(du(this.a));n.e!=n.i.gc();)t=l(gr(n),89),a=(o=t.c,De(o,90)?l(o,29):(Tn(),Kf)),r=31*r+(a?fw(a):0);return r},h.zj=function(t){var n,r,a,o;for(a=0,r=new or(du(this.a));r.e!=r.i.gc();){if(n=l(gr(r),89),qe(t)===qe((o=n.c,De(o,90)?l(o,29):(Tn(),Kf))))return a;++a}return-1},h.Aj=function(){return du(this.a).i==0},h.Bj=function(){return null},h.Ej=function(){return du(this.a).i},h.Fj=function(){var t,n,r,a,o,f;for(f=du(this.a).i,o=We(wa,Rn,1,f,5,1),r=0,n=new or(du(this.a));n.e!=n.i.gc();)t=l(gr(n),89),o[r++]=(a=t.c,De(a,90)?l(a,29):(Tn(),Kf));return o},h.Gj=function(t){var n,r,a,o,f,g,w;for(w=du(this.a).i,t.lengthw&&Ts(t,w,null),a=0,r=new or(du(this.a));r.e!=r.i.gc();)n=l(gr(r),89),f=(g=n.c,De(g,90)?l(g,29):(Tn(),Kf)),Ts(t,a++,f);return t},h.Hj=function(){var t,n,r,a,o;for(o=new Up,o.a+="[",t=du(this.a),n=0,a=du(this.a).i;n>16,o>=0?wue(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,6,r);case 9:return!this.a&&(this.a=new nt(wp,this,9,5)),Ru(this.a,t,r)}return f=l(Mn((a=l(Kn(this,16),29),a||(Tn(),Zb)),n),69),f.wk().zk(this,Ku(this),n-yr((Tn(),Zb)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 6:return Nh(this,null,6,r);case 7:return!this.A&&(this.A=new ml(Zu,this,7)),To(this.A,t,r);case 9:return!this.a&&(this.a=new nt(wp,this,9,5)),To(this.a,t,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),Zb)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),Zb)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!zw(this);case 4:return!!X7e(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!Qk(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)==0;case 9:return!!this.a&&this.a.i!=0}return nf(this,t-yr((Tn(),Zb)),Mn((n=l(Kn(this,16),29),n||Zb),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:FH(this,ei(n));return;case 2:Kse(this,ei(n));return;case 5:JE(this,ei(n));return;case 7:!this.A&&(this.A=new ml(Zu,this,7)),$r(this.A),!this.A&&(this.A=new ml(Zu,this,7)),As(this.A,l(n,16));return;case 8:jV(this,Rt(Bt(n)));return;case 9:!this.a&&(this.a=new nt(wp,this,9,5)),$r(this.a),!this.a&&(this.a=new nt(wp,this,9,5)),As(this.a,l(n,16));return}uf(this,t-yr((Tn(),Zb)),Mn((r=l(Kn(this,16),29),r||Zb),t),n)},h.ii=function(){return Tn(),Zb},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,184)&&(l(this.Cb,184).tb=null),Fu(this,null);return;case 2:CE(this,null),lE(this,this.D);return;case 5:JE(this,null);return;case 7:!this.A&&(this.A=new ml(Zu,this,7)),$r(this.A);return;case 8:jV(this,!0);return;case 9:!this.a&&(this.a=new nt(wp,this,9,5)),$r(this.a);return}cf(this,t-yr((Tn(),Zb)),Mn((n=l(Kn(this,16),29),n||Zb),t))},h.pi=function(){var t,n;if(this.a)for(t=0,n=this.a.i;t>16==5?l(this.Cb,685):null}return sf(this,t-yr((Tn(),D2)),Mn((a=l(Kn(this,16),29),a||D2),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 5:return this.Cb&&(r=(o=this.Db>>16,o>=0?agt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,5,r)}return f=l(Mn((a=l(Kn(this,16),29),a||(Tn(),D2)),n),69),f.wk().zk(this,Ku(this),n-yr((Tn(),D2)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 5:return Nh(this,null,5,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),D2)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),D2)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return!!this.b;case 4:return this.c!=null;case 5:return!!(this.Db>>16==5&&l(this.Cb,685))}return nf(this,t-yr((Tn(),D2)),Mn((n=l(Kn(this,16),29),n||D2),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:Fu(this,ei(n));return;case 2:Qoe(this,l(n,17).a);return;case 3:r2t(this,l(n,2039));return;case 4:Zoe(this,ei(n));return}uf(this,t-yr((Tn(),D2)),Mn((r=l(Kn(this,16),29),r||D2),t),n)},h.ii=function(){return Tn(),D2},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:Fu(this,null);return;case 2:Qoe(this,0);return;case 3:r2t(this,null);return;case 4:Zoe(this,null);return}cf(this,t-yr((Tn(),D2)),Mn((n=l(Kn(this,16),29),n||D2),t))},h.Ib=function(){var t;return t=this.c,t??this.zb},h.b=null,h.c=null,h.d=0,I(Gn,"EEnumLiteralImpl",582);var OOn=ks(Gn,"EFactoryImpl/InternalEDateTimeFormat");D(499,1,{2114:1},KI),I(Gn,"EFactoryImpl/1ClientInternalEDateTimeFormat",499),D(248,120,{110:1,94:1,93:1,89:1,58:1,114:1,54:1,99:1,248:1,119:1,120:1},Qv),h.Ch=function(t,n,r){var a;return r=Nh(this,t,n,r),this.e&&De(t,179)&&(a=SU(this,this.e),a!=this.c&&(r=ZE(this,a,r))),r},h.Lh=function(t,n,r){var a;switch(t){case 0:return this.f;case 1:return!this.d&&(this.d=new Ys(Wo,this,1)),this.d;case 2:return n?jU(this):this.c;case 3:return this.b;case 4:return this.e;case 5:return n?hue(this):this.a}return sf(this,t-yr((Tn(),E3)),Mn((a=l(Kn(this,16),29),a||E3),t),n,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return Q0t(this,null,r);case 1:return!this.d&&(this.d=new Ys(Wo,this,1)),To(this.d,t,r);case 3:return J0t(this,null,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),E3)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),E3)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.f;case 1:return!!this.d&&this.d.i!=0;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return nf(this,t-yr((Tn(),E3)),Mn((n=l(Kn(this,16),29),n||E3),t))},h.bi=function(t,n){var r;switch(t){case 0:Cgt(this,l(n,89));return;case 1:!this.d&&(this.d=new Ys(Wo,this,1)),$r(this.d),!this.d&&(this.d=new Ys(Wo,this,1)),As(this.d,l(n,16));return;case 3:Axe(this,l(n,89));return;case 4:Kxe(this,l(n,850));return;case 5:sE(this,l(n,142));return}uf(this,t-yr((Tn(),E3)),Mn((r=l(Kn(this,16),29),r||E3),t),n)},h.ii=function(){return Tn(),E3},h.ki=function(t){var n;switch(t){case 0:Cgt(this,null);return;case 1:!this.d&&(this.d=new Ys(Wo,this,1)),$r(this.d);return;case 3:Axe(this,null);return;case 4:Kxe(this,null);return;case 5:sE(this,null);return}cf(this,t-yr((Tn(),E3)),Mn((n=l(Kn(this,16),29),n||E3),t))},h.Ib=function(){var t;return t=new Th(g0(this)),t.a+=" (expression: ",wle(this,t),t.a+=")",t.a};var LPe;I(Gn,"EGenericTypeImpl",248),D(2067,2062,KG),h.Gi=function(t,n){Drt(this,t,n)},h.Wk=function(t,n){return Drt(this,this.gc(),t),n},h.$i=function(t){return ff(this.pj(),t)},h.Ii=function(){return this.Ji()},h.pj=function(){return new EQe(this)},h.Ji=function(){return this.Ki(0)},h.Ki=function(t){return this.pj().fd(t)},h.Xk=function(t,n){return Ny(this,t,!0),n},h.Ti=function(t,n){var r,a;return a=kue(this,n),r=this.fd(t),r.Rb(a),a},h.Ui=function(t,n){var r;Ny(this,n,!0),r=this.fd(t),r.Rb(n)},I(us,"AbstractSequentialInternalEList",2067),D(496,2067,KG,TO),h.$i=function(t){return ff(this.pj(),t)},h.Ii=function(){return this.b==null?(Wp(),Wp(),dF):this.sl()},h.pj=function(){return new Xtt(this.a,this.b)},h.Ji=function(){return this.b==null?(Wp(),Wp(),dF):this.sl()},h.Ki=function(t){var n,r;if(this.b==null){if(t<0||t>1)throw ue(new tc(CL+t+", size=0"));return Wp(),Wp(),dF}for(r=this.sl(),n=0;n0;)if(n=this.c[--this.d],(!this.e||n.pk()!=oC||n.Lj()!=0)&&(!this.vl()||this.b.Xh(n))){if(f=this.b.Nh(n,this.ul()),this.f=(Fo(),l(n,69).xk()),this.f||n.Jk()){if(this.ul()?(a=l(f,15),this.k=a):(a=l(f,71),this.k=this.j=a),De(this.k,59)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j.Ki(this.k.gc()):this.k.fd(this.k.gc()),this.p?wpt(this,this.p):Mpt(this))return o=this.p?this.p.Ub():this.j?this.j.$i(--this.n):this.k.Xb(--this.n),this.f?(t=l(o,76),t.Lk(),r=t.md(),this.i=r):(r=o,this.i=r),this.g=-3,!0}else if(f!=null)return this.k=null,this.p=null,r=f,this.i=r,this.g=-2,!0}return this.k=null,this.p=null,this.g=-1,!1}else return o=this.p?this.p.Ub():this.j?this.j.$i(--this.n):this.k.Xb(--this.n),this.f?(t=l(o,76),t.Lk(),r=t.md(),this.i=r):(r=o,this.i=r),this.g=-3,!0}},h.Pb=function(){return MV(this)},h.Tb=function(){return this.a},h.Ub=function(){var t;if(this.g<-1||this.Sb())return--this.a,this.g=0,t=this.i,this.Sb(),t;throw ue(new _c)},h.Vb=function(){return this.a-1},h.Qb=function(){throw ue(new Qr)},h.ul=function(){return!1},h.Wb=function(t){throw ue(new Qr)},h.vl=function(){return!0},h.a=0,h.d=0,h.f=!1,h.g=0,h.n=0,h.o=0;var dF;I(us,"EContentsEList/FeatureIteratorImpl",287),D(711,287,WG,Rye),h.ul=function(){return!0},I(us,"EContentsEList/ResolvingFeatureIteratorImpl",711),D(1178,711,WG,brt),h.vl=function(){return!1},I(Gn,"ENamedElementImpl/1/1",1178),D(1179,287,WG,mrt),h.vl=function(){return!1},I(Gn,"ENamedElementImpl/1/2",1179),D(39,152,YP,Cy,koe,_a,Foe,Zg,h0,Q6e,Xot,J6e,Qot,p6e,Jot,t7e,Zot,b6e,ect,Z6e,tct,X_,sN,roe,e7e,nct,m6e,rct),h.Kj=function(){return N6e(this)},h.Rj=function(){var t;return t=N6e(this),t?t.ik():null},h.hj=function(t){return this.b==-1&&this.a&&(this.b=this.c.Hh(this.a.Lj(),this.a.pk())),this.c.yh(this.b,t)},h.jj=function(){return this.c},h.Sj=function(){var t;return t=N6e(this),t?t.tk():!1},h.b=-1,I(Gn,"ENotificationImpl",39),D(411,292,{110:1,94:1,93:1,155:1,197:1,58:1,62:1,114:1,481:1,54:1,99:1,158:1,411:1,292:1,119:1,120:1},qie),h.Ah=function(t){return ugt(this,t)},h.Lh=function(t,n,r){var a,o,f;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return pt(this.s);case 5:return pt(this.t);case 6:return Hn(),f=this.t,f>1||f==-1;case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?l(this.Cb,29):null;case 11:return!this.d&&(this.d=new ml(Zu,this,11)),this.d;case 12:return!this.c&&(this.c=new nt(k3,this,12,10)),this.c;case 13:return!this.a&&(this.a=new LO(this,this)),this.a;case 14:return Xl(this)}return sf(this,t-yr((Tn(),I2)),Mn((a=l(Kn(this,16),29),a||I2),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 10:return this.Cb&&(r=(o=this.Db>>16,o>=0?ugt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,10,r);case 12:return!this.c&&(this.c=new nt(k3,this,12,10)),Ru(this.c,t,r)}return f=l(Mn((a=l(Kn(this,16),29),a||(Tn(),I2)),n),69),f.wk().zk(this,Ku(this),n-yr((Tn(),I2)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 9:return qae(this,r);case 10:return Nh(this,null,10,r);case 11:return!this.d&&(this.d=new ml(Zu,this,11)),To(this.d,t,r);case 12:return!this.c&&(this.c=new nt(k3,this,12,10)),To(this.c,t,r);case 14:return To(Xl(this),t,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),I2)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),I2)),t,r)},h.Wh=function(t){var n,r,a;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return a=this.t,a>1||a==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&yw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&yw(this.q).i==0);case 10:return!!(this.Db>>16==10&&l(this.Cb,29));case 11:return!!this.d&&this.d.i!=0;case 12:return!!this.c&&this.c.i!=0;case 13:return!!this.a&&Xl(this.a.a).i!=0&&!(this.b&&uue(this.b));case 14:return!!this.b&&uue(this.b)}return nf(this,t-yr((Tn(),I2)),Mn((n=l(Kn(this,16),29),n||I2),t))},h.bi=function(t,n){var r,a;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:Fu(this,ei(n));return;case 2:c2(this,Rt(Bt(n)));return;case 3:u2(this,Rt(Bt(n)));return;case 4:i2(this,l(n,17).a);return;case 5:My(this,l(n,17).a);return;case 8:Gm(this,l(n,142));return;case 9:a=$1(this,l(n,89),null),a&&a.oj();return;case 11:!this.d&&(this.d=new ml(Zu,this,11)),$r(this.d),!this.d&&(this.d=new ml(Zu,this,11)),As(this.d,l(n,16));return;case 12:!this.c&&(this.c=new nt(k3,this,12,10)),$r(this.c),!this.c&&(this.c=new nt(k3,this,12,10)),As(this.c,l(n,16));return;case 13:!this.a&&(this.a=new LO(this,this)),tL(this.a),!this.a&&(this.a=new LO(this,this)),As(this.a,l(n,16));return;case 14:$r(Xl(this)),As(Xl(this),l(n,16));return}uf(this,t-yr((Tn(),I2)),Mn((r=l(Kn(this,16),29),r||I2),t),n)},h.ii=function(){return Tn(),I2},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:Fu(this,null);return;case 2:c2(this,!0);return;case 3:u2(this,!0);return;case 4:i2(this,0);return;case 5:My(this,1);return;case 8:Gm(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return;case 11:!this.d&&(this.d=new ml(Zu,this,11)),$r(this.d);return;case 12:!this.c&&(this.c=new nt(k3,this,12,10)),$r(this.c);return;case 13:this.a&&tL(this.a);return;case 14:this.b&&$r(this.b);return}cf(this,t-yr((Tn(),I2)),Mn((n=l(Kn(this,16),29),n||I2),t))},h.pi=function(){var t,n;if(this.c)for(t=0,n=this.c.i;tw&&Ts(t,w,null),a=0,r=new or(Xl(this.a));r.e!=r.i.gc();)n=l(gr(r),89),f=(g=n.c,g||(Tn(),td)),Ts(t,a++,f);return t},h.Hj=function(){var t,n,r,a,o;for(o=new Up,o.a+="[",t=Xl(this.a),n=0,a=Xl(this.a).i;n1);case 5:return rA(this,t,n,r,a,this.i-l(r,15).gc()>0);default:return new Zg(this.e,t,this.c,n,r,a,!0)}},h.Tj=function(){return!0},h.Qj=function(){return uue(this)},h.Gk=function(){$r(this)},I(Gn,"EOperationImpl/2",1377),D(507,1,{2037:1,507:1},Ott),I(Gn,"EPackageImpl/1",507),D(14,83,kc,nt),h.il=function(){return this.d},h.jl=function(){return this.b},h.ml=function(){return!0},h.b=0,I(us,"EObjectContainmentWithInverseEList",14),D(365,14,kc,V8),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectContainmentWithInverseEList/Resolving",365),D(308,365,kc,wy),h.Ni=function(){this.a.tb=null},I(Gn,"EPackageImpl/2",308),D(1278,1,{},ere),I(Gn,"EPackageImpl/3",1278),D(733,45,m6,$we),h._b=function(t){return Ia(t)?soe(this,t):!!zo(this.f,t)},I(Gn,"EPackageRegistryImpl",733),D(518,292,{110:1,94:1,93:1,155:1,197:1,58:1,2116:1,114:1,481:1,54:1,99:1,158:1,518:1,292:1,119:1,120:1},Hie),h.Ah=function(t){return lgt(this,t)},h.Lh=function(t,n,r){var a,o,f;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return pt(this.s);case 5:return pt(this.t);case 6:return Hn(),f=this.t,f>1||f==-1;case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?l(this.Cb,62):null}return sf(this,t-yr((Tn(),N4)),Mn((a=l(Kn(this,16),29),a||N4),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 10:return this.Cb&&(r=(o=this.Db>>16,o>=0?lgt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,10,r)}return f=l(Mn((a=l(Kn(this,16),29),a||(Tn(),N4)),n),69),f.wk().zk(this,Ku(this),n-yr((Tn(),N4)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 9:return qae(this,r);case 10:return Nh(this,null,10,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),N4)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),N4)),t,r)},h.Wh=function(t){var n,r,a;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return a=this.t,a>1||a==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&yw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&yw(this.q).i==0);case 10:return!!(this.Db>>16==10&&l(this.Cb,62))}return nf(this,t-yr((Tn(),N4)),Mn((n=l(Kn(this,16),29),n||N4),t))},h.ii=function(){return Tn(),N4},I(Gn,"EParameterImpl",518),D(102,462,{110:1,94:1,93:1,155:1,197:1,58:1,19:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,102:1,462:1,292:1,119:1,120:1,692:1},Hye),h.Lh=function(t,n,r){var a,o,f,g;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return pt(this.s);case 5:return pt(this.t);case 6:return Hn(),g=this.t,g>1||g==-1;case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return Hn(),!!(this.Bb&m0);case 11:return Hn(),!!(this.Bb&r4);case 12:return Hn(),!!(this.Bb&Xy);case 13:return this.j;case 14:return UE(this);case 15:return Hn(),!!(this.Bb&Sl);case 16:return Hn(),!!(this.Bb&_d);case 17:return ky(this);case 18:return Hn(),!!(this.Bb&eu);case 19:return Hn(),f=Ro(this),!!(f&&f.Bb&eu);case 20:return Hn(),!!(this.Bb&Io);case 21:return n?Ro(this):this.b;case 22:return n?$7e(this):_ut(this);case 23:return!this.a&&(this.a=new $5(D4,this,23)),this.a}return sf(this,t-yr((Tn(),o7)),Mn((a=l(Kn(this,16),29),a||o7),t),n,r)},h.Wh=function(t){var n,r,a,o;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return o=this.t,o>1||o==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&yw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&yw(this.q).i==0);case 10:return(this.Bb&m0)==0;case 11:return(this.Bb&r4)!=0;case 12:return(this.Bb&Xy)!=0;case 13:return this.j!=null;case 14:return UE(this)!=null;case 15:return(this.Bb&Sl)!=0;case 16:return(this.Bb&_d)!=0;case 17:return!!ky(this);case 18:return(this.Bb&eu)!=0;case 19:return a=Ro(this),!!a&&(a.Bb&eu)!=0;case 20:return(this.Bb&Io)==0;case 21:return!!this.b;case 22:return!!_ut(this);case 23:return!!this.a&&this.a.i!=0}return nf(this,t-yr((Tn(),o7)),Mn((n=l(Kn(this,16),29),n||o7),t))},h.bi=function(t,n){var r,a;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:poe(this,ei(n));return;case 2:c2(this,Rt(Bt(n)));return;case 3:u2(this,Rt(Bt(n)));return;case 4:i2(this,l(n,17).a);return;case 5:My(this,l(n,17).a);return;case 8:Gm(this,l(n,142));return;case 9:a=$1(this,l(n,89),null),a&&a.oj();return;case 10:AE(this,Rt(Bt(n)));return;case 11:DE(this,Rt(Bt(n)));return;case 12:LE(this,Rt(Bt(n)));return;case 13:Z3e(this,ei(n));return;case 15:ME(this,Rt(Bt(n)));return;case 16:IE(this,Rt(Bt(n)));return;case 18:_2n(this,Rt(Bt(n)));return;case 20:v8e(this,Rt(Bt(n)));return;case 21:b7e(this,l(n,19));return;case 23:!this.a&&(this.a=new $5(D4,this,23)),$r(this.a),!this.a&&(this.a=new $5(D4,this,23)),As(this.a,l(n,16));return}uf(this,t-yr((Tn(),o7)),Mn((r=l(Kn(this,16),29),r||o7),t),n)},h.ii=function(){return Tn(),o7},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,90)&&zy(Yl(l(this.Cb,90)),4),Fu(this,null);return;case 2:c2(this,!0);return;case 3:u2(this,!0);return;case 4:i2(this,0);return;case 5:My(this,1);return;case 8:Gm(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return;case 10:AE(this,!0);return;case 11:DE(this,!1);return;case 12:LE(this,!1);return;case 13:this.i=null,xV(this,null);return;case 15:ME(this,!1);return;case 16:IE(this,!1);return;case 18:m8e(this,!1),De(this.Cb,90)&&zy(Yl(l(this.Cb,90)),2);return;case 20:v8e(this,!0);return;case 21:b7e(this,null);return;case 23:!this.a&&(this.a=new $5(D4,this,23)),$r(this.a);return}cf(this,t-yr((Tn(),o7)),Mn((n=l(Kn(this,16),29),n||o7),t))},h.pi=function(){$7e(this),Wk(ic((El(),io),this)),Of(this),this.Bb|=1},h.uk=function(){return Ro(this)},h._k=function(){var t;return t=Ro(this),!!t&&(t.Bb&eu)!=0},h.al=function(){return(this.Bb&eu)!=0},h.bl=function(){return(this.Bb&Io)!=0},h.Yk=function(t,n){return this.c=null,o8e(this,t,n)},h.Ib=function(){var t;return this.Db&64?BU(this):(t=new Af(BU(this)),t.a+=" (containment: ",Gp(t,(this.Bb&eu)!=0),t.a+=", resolveProxies: ",Gp(t,(this.Bb&Io)!=0),t.a+=")",t.a)},I(Gn,"EReferenceImpl",102),D(561,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,561:1,119:1,120:1},OS),h.Fb=function(t){return this===t},h.ld=function(){return this.b},h.md=function(){return this.c},h.Hb=function(){return fw(this)},h.Di=function(t){Idn(this,ei(t))},h.nd=function(t){return mdn(this,ei(t))},h.Lh=function(t,n,r){var a;switch(t){case 0:return this.b;case 1:return this.c}return sf(this,t-yr((Tn(),No)),Mn((a=l(Kn(this,16),29),a||No),t),n,r)},h.Wh=function(t){var n;switch(t){case 0:return this.b!=null;case 1:return this.c!=null}return nf(this,t-yr((Tn(),No)),Mn((n=l(Kn(this,16),29),n||No),t))},h.bi=function(t,n){var r;switch(t){case 0:Odn(this,ei(n));return;case 1:d7e(this,ei(n));return}uf(this,t-yr((Tn(),No)),Mn((r=l(Kn(this,16),29),r||No),t),n)},h.ii=function(){return Tn(),No},h.ki=function(t){var n;switch(t){case 0:f7e(this,null);return;case 1:d7e(this,null);return}cf(this,t-yr((Tn(),No)),Mn((n=l(Kn(this,16),29),n||No),t))},h.Bi=function(){var t;return this.a==-1&&(t=this.b,this.a=t==null?0:s2(t)),this.a},h.Ci=function(t){this.a=t},h.Ib=function(){var t;return this.Db&64?g0(this):(t=new Af(g0(this)),t.a+=" (key: ",Xo(t,this.b),t.a+=", value: ",Xo(t,this.c),t.a+=")",t.a)},h.a=-1,h.b=null,h.c=null;var Yc=I(Gn,"EStringToStringMapEntryImpl",561),Q_t=ks(us,"FeatureMap/Entry/Internal");D(576,1,YG),h.xl=function(t){return this.yl(l(t,54))},h.yl=function(t){return this.xl(t)},h.Fb=function(t){var n,r;return this===t?!0:De(t,76)?(n=l(t,76),n.Lk()==this.c?(r=this.md(),r==null?n.md()==null:Pi(r,n.md())):!1):!1},h.Lk=function(){return this.c},h.Hb=function(){var t;return t=this.md(),es(this.c)^(t==null?0:es(t))},h.Ib=function(){var t,n;return t=this.c,n=Ah(t.qk()).yi(),t.xe(),(n!=null&&n.length!=0?n+":"+t.xe():t.xe())+"="+this.md()},I(Gn,"EStructuralFeatureImpl/BasicFeatureMapEntry",576),D(791,576,YG,Jye),h.yl=function(t){return new Jye(this.c,t)},h.md=function(){return this.a},h.zl=function(t,n,r){return b3n(this,t,this.a,n,r)},h.Al=function(t,n,r){return m3n(this,t,this.a,n,r)},I(Gn,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",791),D(1350,1,{},Ntt),h.yk=function(t,n,r,a,o){var f;return f=l(tE(t,this.b),220),f.Yl(this.a).Fk(a)},h.zk=function(t,n,r,a,o){var f;return f=l(tE(t,this.b),220),f.Pl(this.a,a,o)},h.Ak=function(t,n,r,a,o){var f;return f=l(tE(t,this.b),220),f.Ql(this.a,a,o)},h.Bk=function(t,n,r){var a;return a=l(tE(t,this.b),220),a.Yl(this.a).Qj()},h.Ck=function(t,n,r,a){var o;o=l(tE(t,this.b),220),o.Yl(this.a).Wb(a)},h.Dk=function(t,n,r){return l(tE(t,this.b),220).Yl(this.a)},h.Ek=function(t,n,r){var a;a=l(tE(t,this.b),220),a.Yl(this.a).Gk()},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1350),D(91,1,{},Xp,Om,Jp,Rm),h.yk=function(t,n,r,a,o){var f;if(f=n.li(r),f==null&&n.mi(r,f=WU(this,t)),!o)switch(this.e){case 50:case 41:return l(f,597).bk();case 40:return l(f,220).Vl()}return f},h.zk=function(t,n,r,a,o){var f,g;return g=n.li(r),g==null&&n.mi(r,g=WU(this,t)),f=l(g,71).Wk(a,o),f},h.Ak=function(t,n,r,a,o){var f;return f=n.li(r),f!=null&&(o=l(f,71).Xk(a,o)),o},h.Bk=function(t,n,r){var a;return a=n.li(r),a!=null&&l(a,79).Qj()},h.Ck=function(t,n,r,a){var o;o=l(n.li(r),79),!o&&n.mi(r,o=WU(this,t)),o.Wb(a)},h.Dk=function(t,n,r){var a,o;return o=n.li(r),o==null&&n.mi(r,o=WU(this,t)),De(o,79)?l(o,79):(a=l(n.li(r),15),new xQe(a))},h.Ek=function(t,n,r){var a;a=l(n.li(r),79),!a&&n.mi(r,a=WU(this,t)),a.Gk()},h.b=0,h.e=0,I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateMany",91),D(512,1,{}),h.zk=function(t,n,r,a,o){throw ue(new Qr)},h.Ak=function(t,n,r,a,o){throw ue(new Qr)},h.Dk=function(t,n,r){return new Iat(this,t,n,r)};var Sg;I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingle",512),D(1367,1,i0e,Iat),h.Fk=function(t){return this.a.yk(this.c,this.d,this.b,t,!0)},h.Qj=function(){return this.a.Bk(this.c,this.d,this.b)},h.Wb=function(t){this.a.Ck(this.c,this.d,this.b,t)},h.Gk=function(){this.a.Ek(this.c,this.d,this.b)},h.b=0,I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1367),D(784,512,{},$5e),h.yk=function(t,n,r,a,o){return sle(t,t.Ph(),t.Fh())==this.b?this.bl()&&a?Uue(t):t.Ph():null},h.zk=function(t,n,r,a,o){var f,g;return t.Ph()&&(o=(f=t.Fh(),f>=0?t.Ah(o):t.Ph().Th(t,-1-f,null,o))),g=ms(t.Dh(),this.e),t.Ch(a,g,o)},h.Ak=function(t,n,r,a,o){var f;return f=ms(t.Dh(),this.e),t.Ch(null,f,o)},h.Bk=function(t,n,r){var a;return a=ms(t.Dh(),this.e),!!t.Ph()&&t.Fh()==a},h.Ck=function(t,n,r,a){var o,f,g,w,E;if(a!=null&&!ule(this.a,a))throw ue(new kk(XG+(De(a,58)?_xe(l(a,58).Dh()):K6e(bh(a)))+QG+this.a+"'"));if(o=t.Ph(),g=ms(t.Dh(),this.e),qe(a)!==qe(o)||t.Fh()!=g&&a!=null){if(FE(t,l(a,58)))throw ue(new Yn(EL+t.Ib()));E=null,o&&(E=(f=t.Fh(),f>=0?t.Ah(E):t.Ph().Th(t,-1-f,null,E))),w=l(a,54),w&&(E=w.Rh(t,ms(w.Dh(),this.b),null,E)),E=t.Ch(w,g,E),E&&E.oj()}else t.vh()&&t.wh()&&Ni(t,new _a(t,1,g,a,a))},h.Ek=function(t,n,r){var a,o,f,g;a=t.Ph(),a?(g=(o=t.Fh(),o>=0?t.Ah(null):t.Ph().Th(t,-1-o,null,null)),f=ms(t.Dh(),this.e),g=t.Ch(null,f,g),g&&g.oj()):t.vh()&&t.wh()&&Ni(t,new X_(t,1,this.e,null,null))},h.bl=function(){return!1},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",784),D(1351,784,{},kit),h.bl=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1351),D(574,512,{}),h.yk=function(t,n,r,a,o){var f;return f=n.li(r),f==null?this.b:qe(f)===qe(Sg)?null:f},h.Bk=function(t,n,r){var a;return a=n.li(r),a!=null&&(qe(a)===qe(Sg)||!Pi(a,this.b))},h.Ck=function(t,n,r,a){var o,f;t.vh()&&t.wh()?(o=(f=n.li(r),f==null?this.b:qe(f)===qe(Sg)?null:f),a==null?this.c!=null?(n.mi(r,null),a=this.b):this.b!=null?n.mi(r,Sg):n.mi(r,null):(this.Bl(a),n.mi(r,a)),Ni(t,this.d.Cl(t,1,this.e,o,a))):a==null?this.c!=null?n.mi(r,null):this.b!=null?n.mi(r,Sg):n.mi(r,null):(this.Bl(a),n.mi(r,a))},h.Ek=function(t,n,r){var a,o;t.vh()&&t.wh()?(a=(o=n.li(r),o==null?this.b:qe(o)===qe(Sg)?null:o),n.ni(r),Ni(t,this.d.Cl(t,1,this.e,a,this.b))):n.ni(r)},h.Bl=function(t){throw ue(new IQe)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",574),D(_6,1,{},NS),h.Cl=function(t,n,r,a,o){return new X_(t,n,r,a,o)},h.Dl=function(t,n,r,a,o,f){return new roe(t,n,r,a,o,f)};var MPe,DPe,IPe,OPe,NPe,PPe,BPe,ipe,FPe;I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",_6),D(1368,_6,{},H0),h.Cl=function(t,n,r,a,o){return new m6e(t,n,r,Rt(Bt(a)),Rt(Bt(o)))},h.Dl=function(t,n,r,a,o,f){return new rct(t,n,r,Rt(Bt(a)),Rt(Bt(o)),f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1368),D(1369,_6,{},AI),h.Cl=function(t,n,r,a,o){return new Q6e(t,n,r,l(a,222).a,l(o,222).a)},h.Dl=function(t,n,r,a,o,f){return new Xot(t,n,r,l(a,222).a,l(o,222).a,f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1369),D(1370,_6,{},LI),h.Cl=function(t,n,r,a,o){return new J6e(t,n,r,l(a,180).a,l(o,180).a)},h.Dl=function(t,n,r,a,o,f){return new Qot(t,n,r,l(a,180).a,l(o,180).a,f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1370),D(1371,_6,{},f8),h.Cl=function(t,n,r,a,o){return new p6e(t,n,r,ze(Ge(a)),ze(Ge(o)))},h.Dl=function(t,n,r,a,o,f){return new Jot(t,n,r,ze(Ge(a)),ze(Ge(o)),f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1371),D(1372,_6,{},tre),h.Cl=function(t,n,r,a,o){return new t7e(t,n,r,l(a,161).a,l(o,161).a)},h.Dl=function(t,n,r,a,o,f){return new Zot(t,n,r,l(a,161).a,l(o,161).a,f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1372),D(1373,_6,{},nre),h.Cl=function(t,n,r,a,o){return new b6e(t,n,r,l(a,17).a,l(o,17).a)},h.Dl=function(t,n,r,a,o,f){return new ect(t,n,r,l(a,17).a,l(o,17).a,f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1373),D(1374,_6,{},rre),h.Cl=function(t,n,r,a,o){return new Z6e(t,n,r,l(a,168).a,l(o,168).a)},h.Dl=function(t,n,r,a,o,f){return new tct(t,n,r,l(a,168).a,l(o,168).a,f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1374),D(1375,_6,{},ire),h.Cl=function(t,n,r,a,o){return new e7e(t,n,r,l(a,191).a,l(o,191).a)},h.Dl=function(t,n,r,a,o,f){return new nct(t,n,r,l(a,191).a,l(o,191).a,f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1375),D(1353,574,{},Oat),h.Bl=function(t){if(!this.a.fk(t))throw ue(new kk(XG+bh(t)+QG+this.a+"'"))},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1353),D(1354,574,{},yst),h.Bl=function(t){},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1354),D(785,574,{}),h.Bk=function(t,n,r){var a;return a=n.li(r),a!=null},h.Ck=function(t,n,r,a){var o,f;t.vh()&&t.wh()?(o=!0,f=n.li(r),f==null?(o=!1,f=this.b):qe(f)===qe(Sg)&&(f=null),a==null?this.c!=null?(n.mi(r,null),a=this.b):n.mi(r,Sg):(this.Bl(a),n.mi(r,a)),Ni(t,this.d.Dl(t,1,this.e,f,a,!o))):a==null?this.c!=null?n.mi(r,null):n.mi(r,Sg):(this.Bl(a),n.mi(r,a))},h.Ek=function(t,n,r){var a,o;t.vh()&&t.wh()?(a=!0,o=n.li(r),o==null?(a=!1,o=this.b):qe(o)===qe(Sg)&&(o=null),n.ni(r),Ni(t,this.d.Dl(t,2,this.e,o,this.b,a))):n.ni(r)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",785),D(1355,785,{},Nat),h.Bl=function(t){if(!this.a.fk(t))throw ue(new kk(XG+bh(t)+QG+this.a+"'"))},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1355),D(1356,785,{},xst),h.Bl=function(t){},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1356),D(410,512,{},cH),h.yk=function(t,n,r,a,o){var f,g,w,E,C;if(C=n.li(r),this.tk()&&qe(C)===qe(Sg))return null;if(this.bl()&&a&&C!=null){if(w=l(C,54),w.Vh()&&(E=yb(t,w),w!=E)){if(!ule(this.a,E))throw ue(new kk(XG+bh(E)+QG+this.a+"'"));n.mi(r,C=E),this.al()&&(f=l(E,54),g=w.Th(t,this.b?ms(w.Dh(),this.b):-1-ms(t.Dh(),this.e),null,null),!f.Ph()&&(g=f.Rh(t,this.b?ms(f.Dh(),this.b):-1-ms(t.Dh(),this.e),null,g)),g&&g.oj()),t.vh()&&t.wh()&&Ni(t,new X_(t,9,this.e,w,E))}return C}else return C},h.zk=function(t,n,r,a,o){var f,g;return g=n.li(r),qe(g)===qe(Sg)&&(g=null),n.mi(r,a),this.Mj()?qe(g)!==qe(a)&&g!=null&&(f=l(g,54),o=f.Th(t,ms(f.Dh(),this.b),null,o)):this.al()&&g!=null&&(o=l(g,54).Th(t,-1-ms(t.Dh(),this.e),null,o)),t.vh()&&t.wh()&&(!o&&(o=new nb(4)),o.nj(new X_(t,1,this.e,g,a))),o},h.Ak=function(t,n,r,a,o){var f;return f=n.li(r),qe(f)===qe(Sg)&&(f=null),n.ni(r),t.vh()&&t.wh()&&(!o&&(o=new nb(4)),this.tk()?o.nj(new X_(t,2,this.e,f,null)):o.nj(new X_(t,1,this.e,f,null))),o},h.Bk=function(t,n,r){var a;return a=n.li(r),a!=null},h.Ck=function(t,n,r,a){var o,f,g,w,E;if(a!=null&&!ule(this.a,a))throw ue(new kk(XG+(De(a,58)?_xe(l(a,58).Dh()):K6e(bh(a)))+QG+this.a+"'"));E=n.li(r),w=E!=null,this.tk()&&qe(E)===qe(Sg)&&(E=null),g=null,this.Mj()?qe(E)!==qe(a)&&(E!=null&&(o=l(E,54),g=o.Th(t,ms(o.Dh(),this.b),null,g)),a!=null&&(o=l(a,54),g=o.Rh(t,ms(o.Dh(),this.b),null,g))):this.al()&&qe(E)!==qe(a)&&(E!=null&&(g=l(E,54).Th(t,-1-ms(t.Dh(),this.e),null,g)),a!=null&&(g=l(a,54).Rh(t,-1-ms(t.Dh(),this.e),null,g))),a==null&&this.tk()?n.mi(r,Sg):n.mi(r,a),t.vh()&&t.wh()?(f=new roe(t,1,this.e,E,a,this.tk()&&!w),g?(g.nj(f),g.oj()):Ni(t,f)):g&&g.oj()},h.Ek=function(t,n,r){var a,o,f,g,w;w=n.li(r),g=w!=null,this.tk()&&qe(w)===qe(Sg)&&(w=null),f=null,w!=null&&(this.Mj()?(a=l(w,54),f=a.Th(t,ms(a.Dh(),this.b),null,f)):this.al()&&(f=l(w,54).Th(t,-1-ms(t.Dh(),this.e),null,f))),n.ni(r),t.vh()&&t.wh()?(o=new roe(t,this.tk()?2:1,this.e,w,null,g),f?(f.nj(o),f.oj()):Ni(t,o)):f&&f.oj()},h.Mj=function(){return!1},h.al=function(){return!1},h.bl=function(){return!1},h.tk=function(){return!1},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",410),D(575,410,{},oae),h.al=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",575),D(1359,575,{},wrt),h.bl=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1359),D(787,575,{},jye),h.tk=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",787),D(1361,787,{},yrt),h.bl=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1361),D(650,575,{},yae),h.Mj=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",650),D(1360,650,{},Eit),h.bl=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1360),D(788,650,{},C4e),h.tk=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",788),D(1362,788,{},Tit),h.bl=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1362),D(651,410,{},$ye),h.bl=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",651),D(1363,651,{},xrt),h.tk=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1363),D(789,651,{},E4e),h.Mj=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",789),D(1364,789,{},Cit),h.tk=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1364),D(1357,410,{},krt),h.tk=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1357),D(786,410,{},T4e),h.Mj=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",786),D(1358,786,{},Sit),h.tk=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1358),D(790,576,YG,x5e),h.yl=function(t){return new x5e(this.a,this.c,t)},h.md=function(){return this.b},h.zl=function(t,n,r){return gvn(this,t,this.b,r)},h.Al=function(t,n,r){return pvn(this,t,this.b,r)},I(Gn,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",790),D(1365,1,i0e,xQe),h.Fk=function(t){return this.a},h.Qj=function(){return De(this.a,97)?l(this.a,97).Qj():!this.a.dc()},h.Wb=function(t){this.a.$b(),this.a.Gc(l(t,15))},h.Gk=function(){De(this.a,97)?l(this.a,97).Gk():this.a.$b()},I(Gn,"EStructuralFeatureImpl/SettingMany",1365),D(1366,576,YG,Wct),h.xl=function(t){return new lae((Gi(),UM),this.b.ri(this.a,t))},h.md=function(){return null},h.zl=function(t,n,r){return r},h.Al=function(t,n,r){return r},I(Gn,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1366),D(652,576,YG,lae),h.xl=function(t){return new lae(this.c,t)},h.md=function(){return this.a},h.zl=function(t,n,r){return r},h.Al=function(t,n,r){return r},I(Gn,"EStructuralFeatureImpl/SimpleFeatureMapEntry",652),D(403,506,Bd,Xd),h.aj=function(t){return We(Vf,Rn,29,t,0,1)},h.Yi=function(){return!1},I(Gn,"ESuperAdapter/1",403),D(457,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,850:1,54:1,99:1,158:1,457:1,119:1,120:1},PS),h.Lh=function(t,n,r){var a;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return!this.a&&(this.a=new G_(this,Wo,this)),this.a}return sf(this,t-yr((Tn(),T3)),Mn((a=l(Kn(this,16),29),a||T3),t),n,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 2:return!this.a&&(this.a=new G_(this,Wo,this)),To(this.a,t,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),T3)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),T3)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return!!this.a&&this.a.i!=0}return nf(this,t-yr((Tn(),T3)),Mn((n=l(Kn(this,16),29),n||T3),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:Fu(this,ei(n));return;case 2:!this.a&&(this.a=new G_(this,Wo,this)),$r(this.a),!this.a&&(this.a=new G_(this,Wo,this)),As(this.a,l(n,16));return}uf(this,t-yr((Tn(),T3)),Mn((r=l(Kn(this,16),29),r||T3),t),n)},h.ii=function(){return Tn(),T3},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:Fu(this,null);return;case 2:!this.a&&(this.a=new G_(this,Wo,this)),$r(this.a);return}cf(this,t-yr((Tn(),T3)),Mn((n=l(Kn(this,16),29),n||T3),t))},I(Gn,"ETypeParameterImpl",457),D(458,83,kc,G_),h.Nj=function(t,n){return Lxn(this,l(t,89),n)},h.Oj=function(t,n){return Mxn(this,l(t,89),n)},I(Gn,"ETypeParameterImpl/1",458),D(647,45,m6,Vie),h.ec=function(){return new Pz(this)},I(Gn,"ETypeParameterImpl/2",647),D(570,q1,Tl,Pz),h.Fc=function(t){return Wrt(this,l(t,89))},h.Gc=function(t){var n,r,a;for(a=!1,r=t.Kc();r.Ob();)n=l(r.Pb(),89),ki(this.a,n,"")==null&&(a=!0);return a},h.$b=function(){Nl(this.a)},h.Hc=function(t){return Hu(this.a,t)},h.Kc=function(){var t;return t=new qm(new Sr(this.a).a),new Bz(t)},h.Mc=function(t){return Rut(this,t)},h.gc=function(){return d_(this.a)},I(Gn,"ETypeParameterImpl/2/1",570),D(571,1,Oa,Bz),h.Nb=function(t){Za(this,t)},h.Pb=function(){return l(Nw(this.a).ld(),89)},h.Ob=function(){return this.a.b},h.Qb=function(){Klt(this.a)},I(Gn,"ETypeParameterImpl/2/1/1",571),D(1329,45,m6,hJe),h._b=function(t){return Ia(t)?soe(this,t):!!zo(this.f,t)},h.xc=function(t){var n,r;return n=Ia(t)?xu(this,t):hc(zo(this.f,t)),De(n,851)?(r=l(n,851),n=r.Kk(),ki(this,l(t,241),n),n):n??(t==null?(use(),Z_t):null)},I(Gn,"EValidatorRegistryImpl",1329),D(1349,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,2040:1,54:1,99:1,158:1,119:1,120:1},d8),h.ri=function(t,n){switch(t.hk()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return n==null?null:xc(n);case 25:return Swn(n);case 27:return $vn(n);case 28:return zvn(n);case 29:return n==null?null:Cnt(jM[0],l(n,206));case 41:return n==null?"":_m(l(n,297));case 42:return xc(n);case 50:return ei(n);default:throw ue(new Yn(yT+t.xe()+t3))}},h.si=function(t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe;switch(t.G==-1&&(t.G=(z=Ah(t),z?f2(z.vi(),t):-1)),t.G){case 0:return r=new zie,r;case 1:return n=new CI,n;case 2:return a=new hz,a;case 4:return o=new Fz,o;case 5:return f=new lJe,f;case 6:return g=new PQe,g;case 7:return w=new fz,w;case 10:return C=new m5,C;case 11:return L=new qie,L;case 12:return B=new qat,B;case 13:return V=new Hie,V;case 14:return J=new Hye,J;case 17:return te=new OS,te;case 18:return E=new Qv,E;case 19:return fe=new PS,fe;default:throw ue(new Yn(qfe+t.zb+t3))}},h.ti=function(t,n){switch(t.hk()){case 20:return n==null?null:new h3e(n);case 21:return n==null?null:new ob(n);case 23:case 22:return n==null?null:j5n(n);case 26:case 24:return n==null?null:fN(Oh(n,-128,127)<<24>>24);case 25:return iTn(n);case 27:return S7n(n);case 28:return _7n(n);case 29:return Xxn(n);case 32:case 31:return n==null?null:jy(n);case 38:case 37:return n==null?null:new Awe(n);case 40:case 39:return n==null?null:pt(Oh(n,lo,Ii));case 41:return null;case 42:return n==null,null;case 44:case 43:return n==null?null:ap(KU(n));case 49:case 48:return n==null?null:_E(Oh(n,JG,32767)<<16>>16);case 50:return n;default:throw ue(new Yn(yT+t.xe()+t3))}},I(Gn,"EcoreFactoryImpl",1349),D(560,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,2038:1,54:1,99:1,158:1,184:1,560:1,119:1,120:1,690:1},fat),h.gb=!1,h.hb=!1;var RPe,J_t=!1;I(Gn,"EcorePackageImpl",560),D(1234,1,{851:1},k1),h.Kk=function(){return Rnt(),eAt},I(Gn,"EcorePackageImpl/1",1234),D(1243,1,yi,A$),h.fk=function(t){return De(t,155)},h.gk=function(t){return We(uF,Rn,155,t,0,1)},I(Gn,"EcorePackageImpl/10",1243),D(1244,1,yi,L$),h.fk=function(t){return De(t,197)},h.gk=function(t){return We(Yge,Rn,197,t,0,1)},I(Gn,"EcorePackageImpl/11",1244),D(1245,1,yi,M$),h.fk=function(t){return De(t,58)},h.gk=function(t){return We(Xb,Rn,58,t,0,1)},I(Gn,"EcorePackageImpl/12",1245),D(1246,1,yi,D$),h.fk=function(t){return De(t,411)},h.gk=function(t){return We(Uf,LSe,62,t,0,1)},I(Gn,"EcorePackageImpl/13",1246),D(1247,1,yi,I$),h.fk=function(t){return De(t,241)},h.gk=function(t){return We(u1,Rn,241,t,0,1)},I(Gn,"EcorePackageImpl/14",1247),D(1248,1,yi,O$),h.fk=function(t){return De(t,518)},h.gk=function(t){return We(k3,Rn,2116,t,0,1)},I(Gn,"EcorePackageImpl/15",1248),D(1249,1,yi,V0),h.fk=function(t){return De(t,102)},h.gk=function(t){return We(I4,S6,19,t,0,1)},I(Gn,"EcorePackageImpl/16",1249),D(1250,1,yi,nl),h.fk=function(t){return De(t,179)},h.gk=function(t){return We(dl,S6,179,t,0,1)},I(Gn,"EcorePackageImpl/17",1250),D(1251,1,yi,sre),h.fk=function(t){return De(t,481)},h.gk=function(t){return We(M4,Rn,481,t,0,1)},I(Gn,"EcorePackageImpl/18",1251),D(1252,1,yi,are),h.fk=function(t){return De(t,561)},h.gk=function(t){return We(Yc,e5t,561,t,0,1)},I(Gn,"EcorePackageImpl/19",1252),D(1235,1,yi,ore),h.fk=function(t){return De(t,331)},h.gk=function(t){return We(D4,S6,35,t,0,1)},I(Gn,"EcorePackageImpl/2",1235),D(1253,1,yi,rl),h.fk=function(t){return De(t,248)},h.gk=function(t){return We(Wo,m5t,89,t,0,1)},I(Gn,"EcorePackageImpl/20",1253),D(1254,1,yi,BS),h.fk=function(t){return De(t,457)},h.gk=function(t){return We(Zu,Rn,850,t,0,1)},I(Gn,"EcorePackageImpl/21",1254),D(1255,1,yi,N$),h.fk=function(t){return hy(t)},h.gk=function(t){return We(Ns,dt,485,t,8,1)},I(Gn,"EcorePackageImpl/22",1255),D(1256,1,yi,P$),h.fk=function(t){return De(t,195)},h.gk=function(t){return We(Al,dt,195,t,0,2)},I(Gn,"EcorePackageImpl/23",1256),D(1257,1,yi,g8),h.fk=function(t){return De(t,222)},h.gk=function(t){return We(jx,dt,222,t,0,1)},I(Gn,"EcorePackageImpl/24",1257),D(1258,1,yi,cre),h.fk=function(t){return De(t,180)},h.gk=function(t){return We(PL,dt,180,t,0,1)},I(Gn,"EcorePackageImpl/25",1258),D(1259,1,yi,ak),h.fk=function(t){return De(t,206)},h.gk=function(t){return We(cK,dt,206,t,0,1)},I(Gn,"EcorePackageImpl/26",1259),D(1260,1,yi,ure),h.fk=function(t){return!1},h.gk=function(t){return We(nBe,Rn,2215,t,0,1)},I(Gn,"EcorePackageImpl/27",1260),D(1261,1,yi,B$),h.fk=function(t){return fy(t)},h.gk=function(t){return We(ta,dt,345,t,7,1)},I(Gn,"EcorePackageImpl/28",1261),D(1262,1,yi,lre),h.fk=function(t){return De(t,61)},h.gk=function(t){return We(mPe,Qy,61,t,0,1)},I(Gn,"EcorePackageImpl/29",1262),D(1236,1,yi,hre),h.fk=function(t){return De(t,519)},h.gk=function(t){return We(mi,{3:1,4:1,5:1,2033:1},598,t,0,1)},I(Gn,"EcorePackageImpl/3",1236),D(1263,1,yi,FS),h.fk=function(t){return De(t,582)},h.gk=function(t){return We(yPe,Rn,2039,t,0,1)},I(Gn,"EcorePackageImpl/30",1263),D(1264,1,yi,F$),h.fk=function(t){return De(t,160)},h.gk=function(t){return We(HPe,Qy,160,t,0,1)},I(Gn,"EcorePackageImpl/31",1264),D(1265,1,yi,MI),h.fk=function(t){return De(t,76)},h.gk=function(t){return We(CY,S5t,76,t,0,1)},I(Gn,"EcorePackageImpl/32",1265),D(1266,1,yi,RS),h.fk=function(t){return De(t,161)},h.gk=function(t){return We(_T,dt,161,t,0,1)},I(Gn,"EcorePackageImpl/33",1266),D(1267,1,yi,fre),h.fk=function(t){return De(t,17)},h.gk=function(t){return We(ro,dt,17,t,0,1)},I(Gn,"EcorePackageImpl/34",1267),D(1268,1,yi,dre),h.fk=function(t){return De(t,297)},h.gk=function(t){return We(qSe,Rn,297,t,0,1)},I(Gn,"EcorePackageImpl/35",1268),D(1269,1,yi,DI),h.fk=function(t){return De(t,168)},h.gk=function(t){return We(r3,dt,168,t,0,1)},I(Gn,"EcorePackageImpl/36",1269),D(1270,1,yi,jS),h.fk=function(t){return De(t,85)},h.gk=function(t){return We(HSe,Rn,85,t,0,1)},I(Gn,"EcorePackageImpl/37",1270),D(1271,1,yi,E1),h.fk=function(t){return De(t,599)},h.gk=function(t){return We(jPe,Rn,599,t,0,1)},I(Gn,"EcorePackageImpl/38",1271),D(1272,1,yi,ok),h.fk=function(t){return!1},h.gk=function(t){return We(rBe,Rn,2216,t,0,1)},I(Gn,"EcorePackageImpl/39",1272),D(1237,1,yi,gre),h.fk=function(t){return De(t,90)},h.gk=function(t){return We(Vf,Rn,29,t,0,1)},I(Gn,"EcorePackageImpl/4",1237),D(1273,1,yi,ck),h.fk=function(t){return De(t,191)},h.gk=function(t){return We(i3,dt,191,t,0,1)},I(Gn,"EcorePackageImpl/40",1273),D(1274,1,yi,II),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(Gn,"EcorePackageImpl/41",1274),D(1275,1,yi,xm),h.fk=function(t){return De(t,596)},h.gk=function(t){return We(wPe,Rn,596,t,0,1)},I(Gn,"EcorePackageImpl/42",1275),D(1276,1,yi,$S),h.fk=function(t){return!1},h.gk=function(t){return We(iBe,dt,2217,t,0,1)},I(Gn,"EcorePackageImpl/43",1276),D(1277,1,yi,OI),h.fk=function(t){return De(t,44)},h.gk=function(t){return We(uv,XU,44,t,0,1)},I(Gn,"EcorePackageImpl/44",1277),D(1238,1,yi,U0),h.fk=function(t){return De(t,142)},h.gk=function(t){return We(l1,Rn,142,t,0,1)},I(Gn,"EcorePackageImpl/5",1238),D(1239,1,yi,zS),h.fk=function(t){return De(t,156)},h.gk=function(t){return We(tpe,Rn,156,t,0,1)},I(Gn,"EcorePackageImpl/6",1239),D(1240,1,yi,T1),h.fk=function(t){return De(t,469)},h.gk=function(t){return We(TY,Rn,685,t,0,1)},I(Gn,"EcorePackageImpl/7",1240),D(1241,1,yi,C1),h.fk=function(t){return De(t,582)},h.gk=function(t){return We(wp,Rn,694,t,0,1)},I(Gn,"EcorePackageImpl/8",1241),D(1242,1,yi,pre),h.fk=function(t){return De(t,480)},h.gk=function(t){return We(RM,Rn,480,t,0,1)},I(Gn,"EcorePackageImpl/9",1242),D(1038,2080,Z4t,IJe),h.Mi=function(t,n){g4n(this,l(n,424))},h.Qi=function(t,n){Apt(this,t,l(n,424))},I(Gn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1038),D(1039,152,YP,nat),h.jj=function(){return this.a.a},I(Gn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1039),D(1067,1066,{},bnt),I("org.eclipse.emf.ecore.plugin","EcorePlugin",1067);var jPe=ks(_5t,"Resource");D(799,1524,A5t),h.Hl=function(t){},h.Il=function(t){},h.El=function(){return!this.a&&(this.a=new Pie(this)),this.a},h.Fl=function(t){var n,r,a,o,f;if(a=t.length,a>0)if(Xn(0,t.length),t.charCodeAt(0)==47){for(f=new Bu(4),o=1,n=1;n0&&(t=(Ga(0,r,t.length),t.substr(0,r))));return Hkn(this,t)},h.Gl=function(){return this.c},h.Ib=function(){var t;return _m(this.Rm)+"@"+(t=es(this)>>>0,t.toString(16))+" uri='"+this.d+"'"},h.b=!1,I(s0e,"ResourceImpl",799),D(1525,799,A5t,kQe),I(s0e,"BinaryResourceImpl",1525),D(1190,708,Zfe),h.bj=function(t){return De(t,58)?Npn(this,l(t,58)):De(t,599)?new or(l(t,599).El()):qe(t)===qe(this.f)?l(t,16).Kc():(Fk(),fF.a)},h.Ob=function(){return x9e(this)},h.a=!1,I(us,"EcoreUtil/ContentTreeIterator",1190),D(1526,1190,Zfe,Ist),h.bj=function(t){return qe(t)===qe(this.f)?l(t,15).Kc():new Lct(l(t,58))},I(s0e,"ResourceImpl/5",1526),D(658,2092,b5t,Pie),h.Hc=function(t){return this.i<=4?jE(this,t):De(t,54)&&l(t,54).Jh()==this.a},h.Mi=function(t,n){t==this.i-1&&(this.a.b||(this.a.b=!0))},h.Oi=function(t,n){t==0?this.a.b||(this.a.b=!0):Noe(this,t,n)},h.Qi=function(t,n){},h.Ri=function(t,n,r){},h.Lj=function(){return 2},h.jj=function(){return this.a},h.Mj=function(){return!0},h.Nj=function(t,n){var r;return r=l(t,54),n=r.fi(this.a,n),n},h.Oj=function(t,n){var r;return r=l(t,54),r.fi(null,n)},h.Pj=function(){return!1},h.Si=function(){return!0},h.aj=function(t){return We(Xb,Rn,58,t,0,1)},h.Yi=function(){return!1},I(s0e,"ResourceImpl/ContentsEList",658),D(970,2062,iT,EQe),h.fd=function(t){return this.a.Ki(t)},h.gc=function(){return this.a.gc()},I(us,"AbstractSequentialInternalEList/1",970);var $Pe,zPe,io,qPe;D(634,1,{},Nit);var SY,_Y;I(us,"BasicExtendedMetaData",634),D(1181,1,{},Btt),h.Jl=function(){return null},h.Kl=function(){return this.a==-2&&Ye(this,Hxn(this.d,this.b)),this.a},h.Ll=function(){return null},h.Ml=function(){return Cn(),Cn(),_o},h.xe=function(){return this.c==ET&&mt(this,J1t(this.d,this.b)),this.c},h.Nl=function(){return 0},h.a=-2,h.c=ET,I(us,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1181),D(1182,1,{},sct),h.Jl=function(){return this.a==(eE(),SY)&&Mt(this,qSn(this.f,this.b)),this.a},h.Kl=function(){return 0},h.Ll=function(){return this.c==(eE(),SY)&&Je(this,HSn(this.f,this.b)),this.c},h.Ml=function(){return!this.d&&Wt(this,_An(this.f,this.b)),this.d},h.xe=function(){return this.e==ET&&_n(this,J1t(this.f,this.b)),this.e},h.Nl=function(){return this.g==-2&&Yt(this,cxn(this.f,this.b)),this.g},h.e=ET,h.g=-2,I(us,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1182),D(1180,1,{},Ftt),h.b=!1,h.c=!1,I(us,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1180),D(1183,1,{},act),h.c=-2,h.e=ET,h.f=ET,I(us,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1183),D(593,632,kc,Jq),h.Lj=function(){return this.c},h.ol=function(){return!1},h.Wi=function(t,n){return n},h.c=0,I(us,"EDataTypeEList",593);var HPe=ks(us,"FeatureMap");D(78,593,{3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},Ls),h.bd=function(t,n){oCn(this,t,l(n,76))},h.Fc=function(t){return CTn(this,l(t,76))},h.Hi=function(t){Dgn(this,l(t,76))},h.Nj=function(t,n){return Jfn(this,l(t,76),n)},h.Oj=function(t,n){return d4e(this,l(t,76),n)},h.Ti=function(t,n){return O_n(this,t,n)},h.Wi=function(t,n){return wMn(this,t,l(n,76))},h.hd=function(t,n){return WCn(this,t,l(n,76))},h.Uj=function(t,n){return Zfn(this,l(t,76),n)},h.Vj=function(t,n){return uit(this,l(t,76),n)},h.Wj=function(t,n,r){return Y8n(this,l(t,76),l(n,76),r)},h.Zi=function(t,n){return Aue(this,t,l(n,76))},h.Ol=function(t,n){return fke(this,t,n)},h.cd=function(t,n){var r,a,o,f,g,w,E,C,L;for(C=new Lw(n.gc()),o=n.Kc();o.Ob();)if(a=l(o.Pb(),76),f=a.Lk(),up(this.e,f))(!f.Si()||!qH(this,f,a.md())&&!jE(C,a))&&qr(C,a);else{for(L=Wu(this.e.Dh(),f),r=l(this.g,124),g=!0,w=0;w=0;)if(n=t[this.c],this.k.am(n.Lk()))return this.j=this.f?n:n.md(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},I(us,"BasicFeatureMap/FeatureEIterator",420),D(676,420,lg,Use),h.ul=function(){return!0},I(us,"BasicFeatureMap/ResolvingFeatureEIterator",676),D(968,496,KG,Snt),h.pj=function(){return this},I(us,"EContentsEList/1",968),D(969,496,KG,Xtt),h.ul=function(){return!1},I(us,"EContentsEList/2",969),D(967,287,WG,_nt),h.wl=function(t){},h.Ob=function(){return!1},h.Sb=function(){return!1},I(us,"EContentsEList/FeatureIteratorImpl/1",967),D(840,593,kc,yye),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),hh(this.e)?(t=this.a,this.a=!1,Ni(this.e,new h0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EDataTypeEList/Unsettable",840),D(1958,593,kc,Nnt),h.Si=function(){return!0},I(us,"EDataTypeUniqueEList",1958),D(1959,840,kc,Pnt),h.Si=function(){return!0},I(us,"EDataTypeUniqueEList/Unsettable",1959),D(147,83,kc,ml),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectContainmentEList/Resolving",147),D(1184,555,kc,Bnt),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectContainmentEList/Unsettable/Resolving",1184),D(766,14,kc,a4e),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),hh(this.e)?(t=this.a,this.a=!1,Ni(this.e,new h0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EObjectContainmentWithInverseEList/Unsettable",766),D(1222,766,kc,Yrt),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1222),D(757,505,kc,xye),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),hh(this.e)?(t=this.a,this.a=!1,Ni(this.e,new h0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EObjectEList/Unsettable",757),D(338,505,kc,$5),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectResolvingEList",338),D(1844,757,kc,Fnt),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectResolvingEList/Unsettable",1844),D(1527,1,{},bre);var Z_t;I(us,"EObjectValidator",1527),D(559,505,kc,pH),h.il=function(){return this.d},h.jl=function(){return this.b},h.Mj=function(){return!0},h.ml=function(){return!0},h.b=0,I(us,"EObjectWithInverseEList",559),D(1225,559,kc,Xrt),h.ll=function(){return!0},I(us,"EObjectWithInverseEList/ManyInverse",1225),D(635,559,kc,fae),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),hh(this.e)?(t=this.a,this.a=!1,Ni(this.e,new h0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EObjectWithInverseEList/Unsettable",635),D(1224,635,kc,Qrt),h.ll=function(){return!0},I(us,"EObjectWithInverseEList/Unsettable/ManyInverse",1224),D(767,559,kc,o4e),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectWithInverseResolvingEList",767),D(32,767,kc,Ln),h.ll=function(){return!0},I(us,"EObjectWithInverseResolvingEList/ManyInverse",32),D(768,635,kc,c4e),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectWithInverseResolvingEList/Unsettable",768),D(1223,768,kc,Jrt),h.ll=function(){return!0},I(us,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1223),D(1185,632,kc),h.Li=function(){return(this.b&1792)==0},h.Ni=function(){this.b|=1},h.kl=function(){return(this.b&4)!=0},h.Mj=function(){return(this.b&40)!=0},h.ll=function(){return(this.b&16)!=0},h.ml=function(){return(this.b&8)!=0},h.nl=function(){return(this.b&r4)!=0},h.al=function(){return(this.b&32)!=0},h.ol=function(){return(this.b&m0)!=0},h.fk=function(t){return this.d?Rct(this.d,t):this.Lk().Hk().fk(t)},h.Qj=function(){return this.b&2?(this.b&1)!=0:this.i!=0},h.Si=function(){return(this.b&128)!=0},h.Gk=function(){var t;$r(this),this.b&2&&(hh(this.e)?(t=(this.b&1)!=0,this.b&=-2,xk(this,new h0(this.e,2,ms(this.e.Dh(),this.Lk()),t,!1))):this.b&=-2)},h.Yi=function(){return(this.b&1536)==0},h.b=0,I(us,"EcoreEList/Generic",1185),D(1186,1185,kc,Vat),h.Lk=function(){return this.a},I(us,"EcoreEList/Dynamic",1186),D(765,66,Bd,kwe),h.aj=function(t){return bN(this.a.a,t)},I(us,"EcoreEMap/1",765),D(764,83,kc,a5e),h.Mi=function(t,n){oU(this.b,l(n,136))},h.Oi=function(t,n){zft(this.b)},h.Pi=function(t,n,r){var a;++(a=this.b,l(n,136),a).e},h.Qi=function(t,n){Fce(this.b,l(n,136))},h.Ri=function(t,n,r){Fce(this.b,l(r,136)),qe(r)===qe(n)&&l(r,136).Ci(Xln(l(n,136).ld())),oU(this.b,l(n,136))},I(us,"EcoreEMap/DelegateEObjectContainmentEList",764),D(1220,141,ASe,ift),I(us,"EcoreEMap/Unsettable",1220),D(1221,764,kc,Zrt),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),hh(this.e)?(t=this.a,this.a=!1,Ni(this.e,new h0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1221),D(1189,215,m6,Ust),h.a=!1,h.b=!1,I(us,"EcoreUtil/Copier",1189),D(759,1,Oa,Lct),h.Nb=function(t){Za(this,t)},h.Ob=function(){return F1t(this)},h.Pb=function(){var t;return F1t(this),t=this.b,this.b=null,t},h.Qb=function(){this.a.Qb()},I(us,"EcoreUtil/ProperContentIterator",759),D(1528,1527,{},dz);var eAt;I(us,"EcoreValidator",1528);var tAt;ks(us,"FeatureMapUtil/Validator"),D(1295,1,{2041:1},v5),h.am=function(t){return!0},I(us,"FeatureMapUtil/1",1295),D(773,1,{2041:1},qke),h.am=function(t){var n;return this.c==t?!0:(n=Bt(cr(this.a,t)),n==null?YSn(this,t)?(Lut(this.a,t,(Hn(),ST)),!0):(Lut(this.a,t,(Hn(),Pb)),!1):n==(Hn(),ST))},h.e=!1;var spe;I(us,"FeatureMapUtil/BasicValidator",773),D(774,45,m6,vye),I(us,"FeatureMapUtil/BasicValidator/Cache",774),D(509,56,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,71:1,97:1},yO),h.bd=function(t,n){vbt(this.c,this.b,t,n)},h.Fc=function(t){return fke(this.c,this.b,t)},h.cd=function(t,n){return bLn(this.c,this.b,t,n)},h.Gc=function(t){return F_(this,t)},h.Gi=function(t,n){hwn(this.c,this.b,t,n)},h.Wk=function(t,n){return ike(this.c,this.b,t,n)},h.$i=function(t){return qU(this.c,this.b,t,!1)},h.Ii=function(){return cnt(this.c,this.b)},h.Ji=function(){return Fln(this.c,this.b)},h.Ki=function(t){return bvn(this.c,this.b,t)},h.Xk=function(t,n){return Irt(this,t,n)},h.$b=function(){_8(this)},h.Hc=function(t){return qH(this.c,this.b,t)},h.Ic=function(t){return p3n(this.c,this.b,t)},h.Xb=function(t){return qU(this.c,this.b,t,!0)},h.Fk=function(t){return this},h.dd=function(t){return Emn(this.c,this.b,t)},h.dc=function(){return _q(this)},h.Qj=function(){return!FN(this.c,this.b)},h.Kc=function(){return twn(this.c,this.b)},h.ed=function(){return nwn(this.c,this.b)},h.fd=function(t){return O4n(this.c,this.b,t)},h.Ti=function(t,n){return Omt(this.c,this.b,t,n)},h.Ui=function(t,n){wvn(this.c,this.b,t,n)},h.gd=function(t){return hpt(this.c,this.b,t)},h.Mc=function(t){return v_n(this.c,this.b,t)},h.hd=function(t,n){return qmt(this.c,this.b,t,n)},h.Wb=function(t){EU(this.c,this.b),F_(this,l(t,15))},h.gc=function(){return I4n(this.c,this.b)},h.Pc=function(){return Cbn(this.c,this.b)},h.Qc=function(t){return Tmn(this.c,this.b,t)},h.Ib=function(){var t,n;for(n=new Up,n.a+="[",t=cnt(this.c,this.b);_ce(t);)Xo(n,j_(iU(t))),_ce(t)&&(n.a+=Co);return n.a+="]",n.a},h.Gk=function(){EU(this.c,this.b)},I(us,"FeatureMapUtil/FeatureEList",509),D(644,39,YP,Eoe),h.hj=function(t){return SA(this,t)},h.mj=function(t){var n,r,a,o,f,g,w;switch(this.d){case 1:case 2:{if(f=t.jj(),qe(f)===qe(this.c)&&SA(this,null)==t.hj(null))return this.g=t.ij(),t.gj()==1&&(this.d=1),!0;break}case 3:{switch(o=t.gj(),o){case 3:{if(f=t.jj(),qe(f)===qe(this.c)&&SA(this,null)==t.hj(null))return this.d=5,n=new Lw(2),qr(n,this.g),qr(n,t.ij()),this.g=n,!0;break}}break}case 5:{switch(o=t.gj(),o){case 3:{if(f=t.jj(),qe(f)===qe(this.c)&&SA(this,null)==t.hj(null))return r=l(this.g,16),r.Fc(t.ij()),!0;break}}break}case 4:{switch(o=t.gj(),o){case 3:{if(f=t.jj(),qe(f)===qe(this.c)&&SA(this,null)==t.hj(null))return this.d=1,this.g=t.ij(),!0;break}case 4:{if(f=t.jj(),qe(f)===qe(this.c)&&SA(this,null)==t.hj(null))return this.d=6,w=new Lw(2),qr(w,this.n),qr(w,t.kj()),this.n=w,g=he(le(Vr,1),di,28,15,[this.o,t.lj()]),this.g=g,!0;break}}break}case 6:{switch(o=t.gj(),o){case 4:{if(f=t.jj(),qe(f)===qe(this.c)&&SA(this,null)==t.hj(null))return r=l(this.n,16),r.Fc(t.kj()),g=l(this.g,53),a=We(Vr,di,28,g.length+1,15,1),pu(g,0,a,0,g.length),a[g.length]=t.lj(),this.g=a,!0;break}}break}}return!1},I(us,"FeatureMapUtil/FeatureENotificationImpl",644),D(564,509,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},nH),h.Ol=function(t,n){return fke(this.c,t,n)},h.Pl=function(t,n,r){return ike(this.c,t,n,r)},h.Ql=function(t,n,r){return Mke(this.c,t,n,r)},h.Rl=function(){return this},h.Sl=function(t,n){return pP(this.c,t,n)},h.Tl=function(t){return l(qU(this.c,this.b,t,!1),76).Lk()},h.Ul=function(t){return l(qU(this.c,this.b,t,!1),76).md()},h.Vl=function(){return this.a},h.Wl=function(t){return!FN(this.c,t)},h.Xl=function(t,n){HU(this.c,t,n)},h.Yl=function(t){return oft(this.c,t)},h.Zl=function(t){jdt(this.c,t)},I(us,"FeatureMapUtil/FeatureFeatureMap",564),D(1294,1,i0e,Ptt),h.Fk=function(t){return qU(this.b,this.a,-1,t)},h.Qj=function(){return!FN(this.b,this.a)},h.Wb=function(t){HU(this.b,this.a,t)},h.Gk=function(){EU(this.b,this.a)},I(us,"FeatureMapUtil/FeatureValue",1294);var c9,ape,ope,u9,nAt,gF=ks(nK,"AnyType");D(680,63,lp,Jie),I(nK,"InvalidDatatypeValueException",680);var AY=ks(nK,M5t),pF=ks(nK,D5t),VPe=ks(nK,I5t),rAt,tu,UPe,Sv,iAt,sAt,aAt,oAt,cAt,uAt,lAt,hAt,fAt,dAt,gAt,c7,pAt,u7,HM,bAt,C3,bF,mF,mAt,VM,UM;D(844,516,{110:1,94:1,93:1,58:1,54:1,99:1,857:1},zwe),h.Lh=function(t,n,r){switch(t){case 0:return r?(!this.c&&(this.c=new Ls(this,0)),this.c):(!this.c&&(this.c=new Ls(this,0)),this.c.b);case 1:return r?(!this.c&&(this.c=new Ls(this,0)),l(ku(this.c,(Gi(),Sv)),160)):(!this.c&&(this.c=new Ls(this,0)),l(l(ku(this.c,(Gi(),Sv)),160),220)).Vl();case 2:return r?(!this.b&&(this.b=new Ls(this,2)),this.b):(!this.b&&(this.b=new Ls(this,2)),this.b.b)}return sf(this,t-yr(this.ii()),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),t),n,r)},h.Uh=function(t,n,r){var a;switch(n){case 0:return!this.c&&(this.c=new Ls(this,0)),hP(this.c,t,r);case 1:return(!this.c&&(this.c=new Ls(this,0)),l(l(ku(this.c,(Gi(),Sv)),160),71)).Xk(t,r);case 2:return!this.b&&(this.b=new Ls(this,2)),hP(this.b,t,r)}return a=l(Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),n),69),a.wk().Ak(this,V6e(this),n-yr(this.ii()),t,r)},h.Wh=function(t){switch(t){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new Ls(this,0)),l(ku(this.c,(Gi(),Sv)),160)).dc();case 2:return!!this.b&&this.b.i!=0}return nf(this,t-yr(this.ii()),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),t))},h.bi=function(t,n){switch(t){case 0:!this.c&&(this.c=new Ls(this,0)),$O(this.c,n);return;case 1:(!this.c&&(this.c=new Ls(this,0)),l(l(ku(this.c,(Gi(),Sv)),160),220)).Wb(n);return;case 2:!this.b&&(this.b=new Ls(this,2)),$O(this.b,n);return}uf(this,t-yr(this.ii()),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),t),n)},h.ii=function(){return Gi(),UPe},h.ki=function(t){switch(t){case 0:!this.c&&(this.c=new Ls(this,0)),$r(this.c);return;case 1:(!this.c&&(this.c=new Ls(this,0)),l(ku(this.c,(Gi(),Sv)),160)).$b();return;case 2:!this.b&&(this.b=new Ls(this,2)),$r(this.b);return}cf(this,t-yr(this.ii()),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),t))},h.Ib=function(){var t;return this.j&4?g0(this):(t=new Af(g0(this)),t.a+=" (mixed: ",O_(t,this.c),t.a+=", anyAttribute: ",O_(t,this.b),t.a+=")",t.a)},I(ea,"AnyTypeImpl",844),D(681,516,{110:1,94:1,93:1,58:1,54:1,99:1,2119:1,681:1},yre),h.Lh=function(t,n,r){switch(t){case 0:return this.a;case 1:return this.b}return sf(this,t-yr((Gi(),c7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():c7,t),n,r)},h.Wh=function(t){switch(t){case 0:return this.a!=null;case 1:return this.b!=null}return nf(this,t-yr((Gi(),c7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():c7,t))},h.bi=function(t,n){switch(t){case 0:vr(this,ei(n));return;case 1:pr(this,ei(n));return}uf(this,t-yr((Gi(),c7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():c7,t),n)},h.ii=function(){return Gi(),c7},h.ki=function(t){switch(t){case 0:this.a=null;return;case 1:this.b=null;return}cf(this,t-yr((Gi(),c7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():c7,t))},h.Ib=function(){var t;return this.j&4?g0(this):(t=new Af(g0(this)),t.a+=" (data: ",Xo(t,this.a),t.a+=", target: ",Xo(t,this.b),t.a+=")",t.a)},h.a=null,h.b=null,I(ea,"ProcessingInstructionImpl",681),D(682,844,{110:1,94:1,93:1,58:1,54:1,99:1,857:1,2120:1,682:1},fJe),h.Lh=function(t,n,r){switch(t){case 0:return r?(!this.c&&(this.c=new Ls(this,0)),this.c):(!this.c&&(this.c=new Ls(this,0)),this.c.b);case 1:return r?(!this.c&&(this.c=new Ls(this,0)),l(ku(this.c,(Gi(),Sv)),160)):(!this.c&&(this.c=new Ls(this,0)),l(l(ku(this.c,(Gi(),Sv)),160),220)).Vl();case 2:return r?(!this.b&&(this.b=new Ls(this,2)),this.b):(!this.b&&(this.b=new Ls(this,2)),this.b.b);case 3:return!this.c&&(this.c=new Ls(this,0)),ei(pP(this.c,(Gi(),HM),!0));case 4:return l4e(this.a,(!this.c&&(this.c=new Ls(this,0)),ei(pP(this.c,(Gi(),HM),!0))));case 5:return this.a}return sf(this,t-yr((Gi(),u7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():u7,t),n,r)},h.Wh=function(t){switch(t){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new Ls(this,0)),l(ku(this.c,(Gi(),Sv)),160)).dc();case 2:return!!this.b&&this.b.i!=0;case 3:return!this.c&&(this.c=new Ls(this,0)),ei(pP(this.c,(Gi(),HM),!0))!=null;case 4:return l4e(this.a,(!this.c&&(this.c=new Ls(this,0)),ei(pP(this.c,(Gi(),HM),!0))))!=null;case 5:return!!this.a}return nf(this,t-yr((Gi(),u7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():u7,t))},h.bi=function(t,n){switch(t){case 0:!this.c&&(this.c=new Ls(this,0)),$O(this.c,n);return;case 1:(!this.c&&(this.c=new Ls(this,0)),l(l(ku(this.c,(Gi(),Sv)),160),220)).Wb(n);return;case 2:!this.b&&(this.b=new Ls(this,2)),$O(this.b,n);return;case 3:J5e(this,ei(n));return;case 4:J5e(this,u4e(this.a,n));return;case 5:Nn(this,l(n,156));return}uf(this,t-yr((Gi(),u7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():u7,t),n)},h.ii=function(){return Gi(),u7},h.ki=function(t){switch(t){case 0:!this.c&&(this.c=new Ls(this,0)),$r(this.c);return;case 1:(!this.c&&(this.c=new Ls(this,0)),l(ku(this.c,(Gi(),Sv)),160)).$b();return;case 2:!this.b&&(this.b=new Ls(this,2)),$r(this.b);return;case 3:!this.c&&(this.c=new Ls(this,0)),HU(this.c,(Gi(),HM),null);return;case 4:J5e(this,u4e(this.a,null));return;case 5:this.a=null;return}cf(this,t-yr((Gi(),u7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():u7,t))},I(ea,"SimpleAnyTypeImpl",682),D(683,516,{110:1,94:1,93:1,58:1,54:1,99:1,2121:1,683:1},dJe),h.Lh=function(t,n,r){switch(t){case 0:return r?(!this.a&&(this.a=new Ls(this,0)),this.a):(!this.a&&(this.a=new Ls(this,0)),this.a.b);case 1:return r?(!this.b&&(this.b=new xl((Tn(),No),Yc,this,1)),this.b):(!this.b&&(this.b=new xl((Tn(),No),Yc,this,1)),iN(this.b));case 2:return r?(!this.c&&(this.c=new xl((Tn(),No),Yc,this,2)),this.c):(!this.c&&(this.c=new xl((Tn(),No),Yc,this,2)),iN(this.c));case 3:return!this.a&&(this.a=new Ls(this,0)),ku(this.a,(Gi(),bF));case 4:return!this.a&&(this.a=new Ls(this,0)),ku(this.a,(Gi(),mF));case 5:return!this.a&&(this.a=new Ls(this,0)),ku(this.a,(Gi(),VM));case 6:return!this.a&&(this.a=new Ls(this,0)),ku(this.a,(Gi(),UM))}return sf(this,t-yr((Gi(),C3)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():C3,t),n,r)},h.Uh=function(t,n,r){var a;switch(n){case 0:return!this.a&&(this.a=new Ls(this,0)),hP(this.a,t,r);case 1:return!this.b&&(this.b=new xl((Tn(),No),Yc,this,1)),Uq(this.b,t,r);case 2:return!this.c&&(this.c=new xl((Tn(),No),Yc,this,2)),Uq(this.c,t,r);case 5:return!this.a&&(this.a=new Ls(this,0)),Irt(ku(this.a,(Gi(),VM)),t,r)}return a=l(Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():(Gi(),C3),n),69),a.wk().Ak(this,V6e(this),n-yr((Gi(),C3)),t,r)},h.Wh=function(t){switch(t){case 0:return!!this.a&&this.a.i!=0;case 1:return!!this.b&&this.b.f!=0;case 2:return!!this.c&&this.c.f!=0;case 3:return!this.a&&(this.a=new Ls(this,0)),!_q(ku(this.a,(Gi(),bF)));case 4:return!this.a&&(this.a=new Ls(this,0)),!_q(ku(this.a,(Gi(),mF)));case 5:return!this.a&&(this.a=new Ls(this,0)),!_q(ku(this.a,(Gi(),VM)));case 6:return!this.a&&(this.a=new Ls(this,0)),!_q(ku(this.a,(Gi(),UM)))}return nf(this,t-yr((Gi(),C3)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():C3,t))},h.bi=function(t,n){switch(t){case 0:!this.a&&(this.a=new Ls(this,0)),$O(this.a,n);return;case 1:!this.b&&(this.b=new xl((Tn(),No),Yc,this,1)),_V(this.b,n);return;case 2:!this.c&&(this.c=new xl((Tn(),No),Yc,this,2)),_V(this.c,n);return;case 3:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),bF))),!this.a&&(this.a=new Ls(this,0)),F_(ku(this.a,bF),l(n,16));return;case 4:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),mF))),!this.a&&(this.a=new Ls(this,0)),F_(ku(this.a,mF),l(n,16));return;case 5:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),VM))),!this.a&&(this.a=new Ls(this,0)),F_(ku(this.a,VM),l(n,16));return;case 6:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),UM))),!this.a&&(this.a=new Ls(this,0)),F_(ku(this.a,UM),l(n,16));return}uf(this,t-yr((Gi(),C3)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():C3,t),n)},h.ii=function(){return Gi(),C3},h.ki=function(t){switch(t){case 0:!this.a&&(this.a=new Ls(this,0)),$r(this.a);return;case 1:!this.b&&(this.b=new xl((Tn(),No),Yc,this,1)),this.b.c.$b();return;case 2:!this.c&&(this.c=new xl((Tn(),No),Yc,this,2)),this.c.c.$b();return;case 3:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),bF)));return;case 4:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),mF)));return;case 5:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),VM)));return;case 6:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),UM)));return}cf(this,t-yr((Gi(),C3)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():C3,t))},h.Ib=function(){var t;return this.j&4?g0(this):(t=new Af(g0(this)),t.a+=" (mixed: ",O_(t,this.a),t.a+=")",t.a)},I(ea,"XMLTypeDocumentRootImpl",683),D(2028,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1,2122:1},uk),h.ri=function(t,n){switch(t.hk()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return n==null?null:xc(n);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return ei(n);case 6:return ufn(l(n,195));case 12:case 47:case 49:case 11:return Lvt(this,t,n);case 13:return n==null?null:yLn(l(n,247));case 15:case 14:return n==null?null:Cgn(ze(Ge(n)));case 17:return Sgt((Gi(),n));case 18:return Sgt(n);case 21:case 20:return n==null?null:Sgn(l(n,161).a);case 27:return lfn(l(n,195));case 30:return $dt((Gi(),l(n,15)));case 31:return $dt(l(n,15));case 40:return ffn((Gi(),n));case 42:return _gt((Gi(),n));case 43:return _gt(n);case 59:case 48:return hfn((Gi(),n));default:throw ue(new Yn(yT+t.xe()+t3))}},h.si=function(t){var n,r,a,o,f;switch(t.G==-1&&(t.G=(r=Ah(t),r?f2(r.vi(),t):-1)),t.G){case 0:return n=new zwe,n;case 1:return a=new yre,a;case 2:return o=new fJe,o;case 3:return f=new dJe,f;default:throw ue(new Yn(qfe+t.zb+t3))}},h.ti=function(t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te;switch(t.hk()){case 5:case 52:case 4:return n;case 6:return v6n(n);case 8:case 7:return n==null?null:ixn(n);case 9:return n==null?null:fN(Oh((a=Tu(n,!0),a.length>0&&(Xn(0,a.length),a.charCodeAt(0)==43)?(Xn(1,a.length+1),a.substr(1)):a),-128,127)<<24>>24);case 10:return n==null?null:fN(Oh((o=Tu(n,!0),o.length>0&&(Xn(0,o.length),o.charCodeAt(0)==43)?(Xn(1,o.length+1),o.substr(1)):o),-128,127)<<24>>24);case 11:return ei(Kw(this,(Gi(),aAt),n));case 12:return ei(Kw(this,(Gi(),oAt),n));case 13:return n==null?null:new h3e(Tu(n,!0));case 15:case 14:return _Tn(n);case 16:return ei(Kw(this,(Gi(),cAt),n));case 17:return q1t((Gi(),n));case 18:return q1t(n);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Tu(n,!0);case 21:case 20:return FTn(n);case 22:return ei(Kw(this,(Gi(),uAt),n));case 23:return ei(Kw(this,(Gi(),lAt),n));case 24:return ei(Kw(this,(Gi(),hAt),n));case 25:return ei(Kw(this,(Gi(),fAt),n));case 26:return ei(Kw(this,(Gi(),dAt),n));case 27:return a6n(n);case 30:return H1t((Gi(),n));case 31:return H1t(n);case 32:return n==null?null:pt(Oh((L=Tu(n,!0),L.length>0&&(Xn(0,L.length),L.charCodeAt(0)==43)?(Xn(1,L.length+1),L.substr(1)):L),lo,Ii));case 33:return n==null?null:new ob((B=Tu(n,!0),B.length>0&&(Xn(0,B.length),B.charCodeAt(0)==43)?(Xn(1,B.length+1),B.substr(1)):B));case 34:return n==null?null:pt(Oh((z=Tu(n,!0),z.length>0&&(Xn(0,z.length),z.charCodeAt(0)==43)?(Xn(1,z.length+1),z.substr(1)):z),lo,Ii));case 36:return n==null?null:ap(KU((V=Tu(n,!0),V.length>0&&(Xn(0,V.length),V.charCodeAt(0)==43)?(Xn(1,V.length+1),V.substr(1)):V)));case 37:return n==null?null:ap(KU((J=Tu(n,!0),J.length>0&&(Xn(0,J.length),J.charCodeAt(0)==43)?(Xn(1,J.length+1),J.substr(1)):J)));case 40:return r7n((Gi(),n));case 42:return V1t((Gi(),n));case 43:return V1t(n);case 44:return n==null?null:new ob((te=Tu(n,!0),te.length>0&&(Xn(0,te.length),te.charCodeAt(0)==43)?(Xn(1,te.length+1),te.substr(1)):te));case 45:return n==null?null:new ob((fe=Tu(n,!0),fe.length>0&&(Xn(0,fe.length),fe.charCodeAt(0)==43)?(Xn(1,fe.length+1),fe.substr(1)):fe));case 46:return Tu(n,!1);case 47:return ei(Kw(this,(Gi(),gAt),n));case 59:case 48:return n7n((Gi(),n));case 49:return ei(Kw(this,(Gi(),pAt),n));case 50:return n==null?null:_E(Oh((Te=Tu(n,!0),Te.length>0&&(Xn(0,Te.length),Te.charCodeAt(0)==43)?(Xn(1,Te.length+1),Te.substr(1)):Te),JG,32767)<<16>>16);case 51:return n==null?null:_E(Oh((f=Tu(n,!0),f.length>0&&(Xn(0,f.length),f.charCodeAt(0)==43)?(Xn(1,f.length+1),f.substr(1)):f),JG,32767)<<16>>16);case 53:return ei(Kw(this,(Gi(),bAt),n));case 55:return n==null?null:_E(Oh((g=Tu(n,!0),g.length>0&&(Xn(0,g.length),g.charCodeAt(0)==43)?(Xn(1,g.length+1),g.substr(1)):g),JG,32767)<<16>>16);case 56:return n==null?null:_E(Oh((w=Tu(n,!0),w.length>0&&(Xn(0,w.length),w.charCodeAt(0)==43)?(Xn(1,w.length+1),w.substr(1)):w),JG,32767)<<16>>16);case 57:return n==null?null:ap(KU((E=Tu(n,!0),E.length>0&&(Xn(0,E.length),E.charCodeAt(0)==43)?(Xn(1,E.length+1),E.substr(1)):E)));case 58:return n==null?null:ap(KU((C=Tu(n,!0),C.length>0&&(Xn(0,C.length),C.charCodeAt(0)==43)?(Xn(1,C.length+1),C.substr(1)):C)));case 60:return n==null?null:pt(Oh((r=Tu(n,!0),r.length>0&&(Xn(0,r.length),r.charCodeAt(0)==43)?(Xn(1,r.length+1),r.substr(1)):r),lo,Ii));case 61:return n==null?null:pt(Oh(Tu(n,!0),lo,Ii));default:throw ue(new Yn(yT+t.xe()+t3))}};var vAt,GPe,wAt,KPe;I(ea,"XMLTypeFactoryImpl",2028),D(594,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1,2044:1,594:1},dat),h.N=!1,h.O=!1;var yAt=!1;I(ea,"XMLTypePackageImpl",594),D(1961,1,{851:1},lk),h.Kk=function(){return xke(),LAt},I(ea,"XMLTypePackageImpl/1",1961),D(1970,1,yi,qS),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/10",1970),D(1971,1,yi,mre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/11",1971),D(1972,1,yi,vre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/12",1972),D(1973,1,yi,p8),h.fk=function(t){return fy(t)},h.gk=function(t){return We(ta,dt,345,t,7,1)},I(ea,"XMLTypePackageImpl/13",1973),D(1974,1,yi,R$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/14",1974),D(1975,1,yi,j$),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(mf,Qy,15,t,0,1)},I(ea,"XMLTypePackageImpl/15",1975),D(1976,1,yi,wre),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(mf,Qy,15,t,0,1)},I(ea,"XMLTypePackageImpl/16",1976),D(1977,1,yi,$$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/17",1977),D(1978,1,yi,z$),h.fk=function(t){return De(t,161)},h.gk=function(t){return We(_T,dt,161,t,0,1)},I(ea,"XMLTypePackageImpl/18",1978),D(1979,1,yi,NI),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/19",1979),D(1962,1,yi,xre),h.fk=function(t){return De(t,857)},h.gk=function(t){return We(gF,Rn,857,t,0,1)},I(ea,"XMLTypePackageImpl/2",1962),D(1980,1,yi,HS),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/20",1980),D(1981,1,yi,kre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/21",1981),D(1982,1,yi,Ere),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/22",1982),D(1983,1,yi,Tre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/23",1983),D(1984,1,yi,Cre),h.fk=function(t){return De(t,195)},h.gk=function(t){return We(Al,dt,195,t,0,2)},I(ea,"XMLTypePackageImpl/24",1984),D(1985,1,yi,Sre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/25",1985),D(1986,1,yi,q$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/26",1986),D(1987,1,yi,_re),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(mf,Qy,15,t,0,1)},I(ea,"XMLTypePackageImpl/27",1987),D(1988,1,yi,Are),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(mf,Qy,15,t,0,1)},I(ea,"XMLTypePackageImpl/28",1988),D(1989,1,yi,Lre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/29",1989),D(1963,1,yi,H$),h.fk=function(t){return De(t,681)},h.gk=function(t){return We(AY,Rn,2119,t,0,1)},I(ea,"XMLTypePackageImpl/3",1963),D(1990,1,yi,Mre),h.fk=function(t){return De(t,17)},h.gk=function(t){return We(ro,dt,17,t,0,1)},I(ea,"XMLTypePackageImpl/30",1990),D(1991,1,yi,Dre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/31",1991),D(1992,1,yi,VS),h.fk=function(t){return De(t,168)},h.gk=function(t){return We(r3,dt,168,t,0,1)},I(ea,"XMLTypePackageImpl/32",1992),D(1993,1,yi,Ire),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/33",1993),D(1994,1,yi,Ore),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/34",1994),D(1995,1,yi,Nre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/35",1995),D(1996,1,yi,Pre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/36",1996),D(1997,1,yi,Bre),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(mf,Qy,15,t,0,1)},I(ea,"XMLTypePackageImpl/37",1997),D(1998,1,yi,Fre),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(mf,Qy,15,t,0,1)},I(ea,"XMLTypePackageImpl/38",1998),D(1999,1,yi,V$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/39",1999),D(1964,1,yi,Rre),h.fk=function(t){return De(t,682)},h.gk=function(t){return We(pF,Rn,2120,t,0,1)},I(ea,"XMLTypePackageImpl/4",1964),D(2e3,1,yi,U$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/40",2e3),D(2001,1,yi,jre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/41",2001),D(2002,1,yi,PI),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/42",2002),D(2003,1,yi,$re),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/43",2003),D(2004,1,yi,G$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/44",2004),D(2005,1,yi,zre),h.fk=function(t){return De(t,191)},h.gk=function(t){return We(i3,dt,191,t,0,1)},I(ea,"XMLTypePackageImpl/45",2005),D(2006,1,yi,K$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/46",2006),D(2007,1,yi,qre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/47",2007),D(2008,1,yi,W$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/48",2008),D(2009,1,yi,Y$),h.fk=function(t){return De(t,191)},h.gk=function(t){return We(i3,dt,191,t,0,1)},I(ea,"XMLTypePackageImpl/49",2009),D(1965,1,yi,X$),h.fk=function(t){return De(t,683)},h.gk=function(t){return We(VPe,Rn,2121,t,0,1)},I(ea,"XMLTypePackageImpl/5",1965),D(2010,1,yi,BI),h.fk=function(t){return De(t,168)},h.gk=function(t){return We(r3,dt,168,t,0,1)},I(ea,"XMLTypePackageImpl/50",2010),D(2011,1,yi,w5),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/51",2011),D(2012,1,yi,US),h.fk=function(t){return De(t,17)},h.gk=function(t){return We(ro,dt,17,t,0,1)},I(ea,"XMLTypePackageImpl/52",2012),D(1966,1,yi,S1),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/6",1966),D(1967,1,yi,Q$),h.fk=function(t){return De(t,195)},h.gk=function(t){return We(Al,dt,195,t,0,2)},I(ea,"XMLTypePackageImpl/7",1967),D(1968,1,yi,hk),h.fk=function(t){return hy(t)},h.gk=function(t){return We(Ns,dt,485,t,8,1)},I(ea,"XMLTypePackageImpl/8",1968),D(1969,1,yi,FI),h.fk=function(t){return De(t,222)},h.gk=function(t){return We(jx,dt,222,t,0,1)},I(ea,"XMLTypePackageImpl/9",1969);var nd,N2,GM,LY,ye;D(55,63,lp,ri),I(y2,"RegEx/ParseException",55),D(836,1,{},J$),h.bm=function(t){return tr*16)throw ue(new ri(ai((Jr(),H4t))));r=r*16+o}while(!0);if(this.a!=125)throw ue(new ri(ai((Jr(),V4t))));if(r>TT)throw ue(new ri(ai((Jr(),U4t))));t=r}else{if(o=0,this.c!=0||(o=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(r=o,Li(this),this.c!=0||(o=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));r=r*16+o,t=r}break;case 117:if(a=0,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=n*16+a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=n*16+a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));n=n*16+a,t=n;break;case 118:if(Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=n*16+a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=n*16+a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=n*16+a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=n*16+a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=n*16+a,n>TT)throw ue(new ri(ai((Jr(),"parser.descappe.4"))));t=n;break;case 65:case 90:case 122:throw ue(new ri(ai((Jr(),G4t))))}return t},h.dm=function(t){var n,r;switch(t){case 100:r=(this.e&32)==32?_b("Nd",!0):(Di(),MY);break;case 68:r=(this.e&32)==32?_b("Nd",!1):(Di(),ZPe);break;case 119:r=(this.e&32)==32?_b("IsWord",!0):(Di(),lC);break;case 87:r=(this.e&32)==32?_b("IsWord",!1):(Di(),tBe);break;case 115:r=(this.e&32)==32?_b("IsSpace",!0):(Di(),l9);break;case 83:r=(this.e&32)==32?_b("IsSpace",!1):(Di(),eBe);break;default:throw ue(new Ac((n=t,G5t+n.toString(16))))}return r},h.em=function(t){var n,r,a,o,f,g,w,E,C,L,B,z;for(this.b=1,Li(this),n=null,this.c==0&&this.a==94?(Li(this),t?L=(Di(),Di(),new _h(5)):(n=(Di(),Di(),new _h(4)),Eu(n,0,TT),L=new _h(4))):L=(Di(),Di(),new _h(4)),o=!0;(z=this.c)!=1&&!(z==0&&this.a==93&&!o);){if(o=!1,r=this.a,a=!1,z==10)switch(r){case 100:case 68:case 119:case 87:case 115:case 83:Ky(L,this.dm(r)),a=!0;break;case 105:case 73:case 99:case 67:r=this.um(L,r),r<0&&(a=!0);break;case 112:case 80:if(B=w9e(this,r),!B)throw ue(new ri(ai((Jr(),t0e))));Ky(L,B),a=!0;break;default:r=this.cm()}else if(z==20){if(g=Nk(this.i,58,this.d),g<0)throw ue(new ri(ai((Jr(),kSe))));if(w=!0,co(this.i,this.d)==94&&(++this.d,w=!1),f=tf(this.i,this.d,g),E=vlt(f,w,(this.e&512)==512),!E)throw ue(new ri(ai((Jr(),R4t))));if(Ky(L,E),a=!0,g+1>=this.j||co(this.i,g+1)!=93)throw ue(new ri(ai((Jr(),kSe))));this.d=g+2}if(Li(this),!a)if(this.c!=0||this.a!=45)Eu(L,r,r);else{if(Li(this),(z=this.c)==1)throw ue(new ri(ai((Jr(),UG))));z==0&&this.a==93?(Eu(L,r,r),Eu(L,45,45)):(C=this.a,z==10&&(C=this.cm()),Li(this),Eu(L,r,C))}(this.e&m0)==m0&&this.c==0&&this.a==44&&Li(this)}if(this.c==1)throw ue(new ri(ai((Jr(),UG))));return n&&(nL(n,L),L=n),c6(L),eL(L),this.b=0,Li(this),L},h.fm=function(){var t,n,r,a;for(r=this.em(!1);(a=this.c)!=7;)if(t=this.a,a==0&&(t==45||t==38)||a==4){if(Li(this),this.c!=9)throw ue(new ri(ai((Jr(),$4t))));if(n=this.em(!1),a==4)Ky(r,n);else if(t==45)nL(r,n);else if(t==38)Cvt(r,n);else throw ue(new Ac("ASSERT"))}else throw ue(new ri(ai((Jr(),z4t))));return Li(this),r},h.gm=function(){var t,n;return t=this.a-48,n=(Di(),Di(),new coe(12,null,t)),!this.g&&(this.g=new jz),Rz(this.g,new Ewe(t)),Li(this),n},h.hm=function(){return Li(this),Di(),EAt},h.im=function(){return Li(this),Di(),kAt},h.jm=function(){throw ue(new ri(ai((Jr(),bf))))},h.km=function(){throw ue(new ri(ai((Jr(),bf))))},h.lm=function(){return Li(this),xyn()},h.mm=function(){return Li(this),Di(),CAt},h.nm=function(){return Li(this),Di(),_At},h.om=function(){var t;if(this.d>=this.j||((t=co(this.i,this.d++))&65504)!=64)throw ue(new ri(ai((Jr(),P4t))));return Li(this),Di(),Di(),new ng(0,t-64)},h.pm=function(){return Li(this),TAn()},h.qm=function(){return Li(this),Di(),AAt},h.rm=function(){var t;return t=(Di(),Di(),new ng(0,105)),Li(this),t},h.sm=function(){return Li(this),Di(),SAt},h.tm=function(){return Li(this),Di(),TAt},h.um=function(t,n){return this.cm()},h.vm=function(){return Li(this),Di(),QPe},h.wm=function(){var t,n,r,a,o;if(this.d+1>=this.j)throw ue(new ri(ai((Jr(),I4t))));if(a=-1,n=null,t=co(this.i,this.d),49<=t&&t<=57){if(a=t-48,!this.g&&(this.g=new jz),Rz(this.g,new Ewe(a)),++this.d,co(this.i,this.d)!=41)throw ue(new ri(ai((Jr(),ov))));++this.d}else switch(t==63&&--this.d,Li(this),n=Gke(this),n.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw ue(new ri(ai((Jr(),ov))));break;default:throw ue(new ri(ai((Jr(),O4t))))}if(Li(this),o=jw(this),r=null,o.e==2){if(o.Pm()!=2)throw ue(new ri(ai((Jr(),N4t))));r=o.Lm(1),o=o.Lm(0)}if(this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),Di(),Di(),new Zlt(a,n,o,r)},h.xm=function(){return Li(this),Di(),JPe},h.ym=function(){var t;if(Li(this),t=bH(24,jw(this)),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),t},h.zm=function(){var t;if(Li(this),t=bH(20,jw(this)),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),t},h.Am=function(){var t;if(Li(this),t=bH(22,jw(this)),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),t},h.Bm=function(){var t,n,r,a,o;for(t=0,r=0,n=-1;this.d=this.j)throw ue(new ri(ai((Jr(),ySe))));if(n==45){for(++this.d;this.d=this.j)throw ue(new ri(ai((Jr(),ySe))))}if(n==58){if(++this.d,Li(this),a=Wst(jw(this),t,r),this.c!=7)throw ue(new ri(ai((Jr(),ov))));Li(this)}else if(n==41)++this.d,Li(this),a=Wst(jw(this),t,r);else throw ue(new ri(ai((Jr(),D4t))));return a},h.Cm=function(){var t;if(Li(this),t=bH(21,jw(this)),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),t},h.Dm=function(){var t;if(Li(this),t=bH(23,jw(this)),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),t},h.Em=function(){var t,n;if(Li(this),t=this.f++,n=Bae(jw(this),t),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),n},h.Fm=function(){var t;if(Li(this),t=Bae(jw(this),0),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),t},h.Gm=function(t){return Li(this),this.c==5?(Li(this),oH(t,(Di(),Di(),new Ty(9,t)))):oH(t,(Di(),Di(),new Ty(3,t)))},h.Hm=function(t){var n;return Li(this),n=(Di(),Di(),new B_(2)),this.c==5?(Li(this),Qm(n,WM),Qm(n,t)):(Qm(n,t),Qm(n,WM)),n},h.Im=function(t){return Li(this),this.c==5?(Li(this),Di(),Di(),new Ty(9,t)):(Di(),Di(),new Ty(3,t))},h.a=0,h.b=0,h.c=0,h.d=0,h.e=0,h.f=1,h.g=null,h.j=0,I(y2,"RegEx/RegexParser",836),D(1947,836,{},gJe),h.bm=function(t){return!1},h.cm=function(){return eke(this)},h.dm=function(t){return YE(t)},h.em=function(t){return ywt(this)},h.fm=function(){throw ue(new ri(ai((Jr(),bf))))},h.gm=function(){throw ue(new ri(ai((Jr(),bf))))},h.hm=function(){throw ue(new ri(ai((Jr(),bf))))},h.im=function(){throw ue(new ri(ai((Jr(),bf))))},h.jm=function(){return Li(this),YE(67)},h.km=function(){return Li(this),YE(73)},h.lm=function(){throw ue(new ri(ai((Jr(),bf))))},h.mm=function(){throw ue(new ri(ai((Jr(),bf))))},h.nm=function(){throw ue(new ri(ai((Jr(),bf))))},h.om=function(){return Li(this),YE(99)},h.pm=function(){throw ue(new ri(ai((Jr(),bf))))},h.qm=function(){throw ue(new ri(ai((Jr(),bf))))},h.rm=function(){return Li(this),YE(105)},h.sm=function(){throw ue(new ri(ai((Jr(),bf))))},h.tm=function(){throw ue(new ri(ai((Jr(),bf))))},h.um=function(t,n){return Ky(t,YE(n)),-1},h.vm=function(){return Li(this),Di(),Di(),new ng(0,94)},h.wm=function(){throw ue(new ri(ai((Jr(),bf))))},h.xm=function(){return Li(this),Di(),Di(),new ng(0,36)},h.ym=function(){throw ue(new ri(ai((Jr(),bf))))},h.zm=function(){throw ue(new ri(ai((Jr(),bf))))},h.Am=function(){throw ue(new ri(ai((Jr(),bf))))},h.Bm=function(){throw ue(new ri(ai((Jr(),bf))))},h.Cm=function(){throw ue(new ri(ai((Jr(),bf))))},h.Dm=function(){throw ue(new ri(ai((Jr(),bf))))},h.Em=function(){var t;if(Li(this),t=Bae(jw(this),0),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),t},h.Fm=function(){throw ue(new ri(ai((Jr(),bf))))},h.Gm=function(t){return Li(this),oH(t,(Di(),Di(),new Ty(3,t)))},h.Hm=function(t){var n;return Li(this),n=(Di(),Di(),new B_(2)),Qm(n,t),Qm(n,WM),n},h.Im=function(t){return Li(this),Di(),Di(),new Ty(3,t)};var l7=null,cC=null;I(y2,"RegEx/ParserForXMLSchema",1947),D(122,1,CT,Xv),h.Jm=function(t){throw ue(new Ac("Not supported."))},h.Km=function(){return-1},h.Lm=function(t){return null},h.Mm=function(){return null},h.Nm=function(t){},h.Om=function(t){},h.Pm=function(){return 0},h.Ib=function(){return this.Qm(0)},h.Qm=function(t){return this.e==11?".":""},h.e=0;var WPe,uC,KM,xAt,YPe,P4=null,MY,cpe=null,XPe,WM,upe=null,QPe,JPe,ZPe,eBe,tBe,kAt,l9,EAt,TAt,CAt,SAt,lC,_At,AAt,NOn=I(y2,"RegEx/Token",122);D(138,122,{3:1,138:1,122:1},_h),h.Qm=function(t){var n,r,a;if(this.e==4)if(this==XPe)r=".";else if(this==MY)r="\\d";else if(this==lC)r="\\w";else if(this==l9)r="\\s";else{for(a=new Up,a.a+="[",n=0;n0&&(a.a+=","),this.b[n]===this.b[n+1]?Xo(a,gP(this.b[n])):(Xo(a,gP(this.b[n])),a.a+="-",Xo(a,gP(this.b[n+1])));a.a+="]",r=a.a}else if(this==ZPe)r="\\D";else if(this==tBe)r="\\W";else if(this==eBe)r="\\S";else{for(a=new Up,a.a+="[^",n=0;n0&&(a.a+=","),this.b[n]===this.b[n+1]?Xo(a,gP(this.b[n])):(Xo(a,gP(this.b[n])),a.a+="-",Xo(a,gP(this.b[n+1])));a.a+="]",r=a.a}return r},h.a=!1,h.c=!1,I(y2,"RegEx/RangeToken",138),D(592,1,{592:1},Ewe),h.a=0,I(y2,"RegEx/RegexParser/ReferencePosition",592),D(591,1,{3:1,591:1},LZe),h.Fb=function(t){var n;return t==null||!De(t,591)?!1:(n=l(t,591),vn(this.b,n.b)&&this.a==n.a)},h.Hb=function(){return s2(this.b+"/"+K9e(this.a))},h.Ib=function(){return this.c.Qm(this.a)},h.a=0,I(y2,"RegEx/RegularExpression",591),D(228,122,CT,ng),h.Km=function(){return this.a},h.Qm=function(t){var n,r,a;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:a="\\"+hae(this.a&Zs);break;case 12:a="\\f";break;case 10:a="\\n";break;case 13:a="\\r";break;case 9:a="\\t";break;case 27:a="\\e";break;default:this.a>=Io?(r=(n=this.a>>>0,"0"+n.toString(16)),a="\\v"+tf(r,r.length-6,r.length)):a=""+hae(this.a&Zs)}break;case 8:this==QPe||this==JPe?a=""+hae(this.a&Zs):a="\\"+hae(this.a&Zs);break;default:a=null}return a},h.a=0,I(y2,"RegEx/Token/CharToken",228),D(318,122,CT,Ty),h.Lm=function(t){return this.a},h.Nm=function(t){this.b=t},h.Om=function(t){this.c=t},h.Pm=function(){return 1},h.Qm=function(t){var n;if(this.e==3)if(this.c<0&&this.b<0)n=this.a.Qm(t)+"*";else if(this.c==this.b)n=this.a.Qm(t)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)n=this.a.Qm(t)+"{"+this.c+","+this.b+"}";else if(this.c>=0&&this.b<0)n=this.a.Qm(t)+"{"+this.c+",}";else throw ue(new Ac("Token#toString(): CLOSURE "+this.c+Co+this.b));else if(this.c<0&&this.b<0)n=this.a.Qm(t)+"*?";else if(this.c==this.b)n=this.a.Qm(t)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)n=this.a.Qm(t)+"{"+this.c+","+this.b+"}?";else if(this.c>=0&&this.b<0)n=this.a.Qm(t)+"{"+this.c+",}?";else throw ue(new Ac("Token#toString(): NONGREEDYCLOSURE "+this.c+Co+this.b));return n},h.b=0,h.c=0,I(y2,"RegEx/Token/ClosureToken",318),D(837,122,CT,f5e),h.Lm=function(t){return t==0?this.a:this.b},h.Pm=function(){return 2},h.Qm=function(t){var n;return this.b.e==3&&this.b.Lm(0)==this.a?n=this.a.Qm(t)+"+":this.b.e==9&&this.b.Lm(0)==this.a?n=this.a.Qm(t)+"+?":n=this.a.Qm(t)+(""+this.b.Qm(t)),n},I(y2,"RegEx/Token/ConcatToken",837),D(1945,122,CT,Zlt),h.Lm=function(t){if(t==0)return this.d;if(t==1)return this.b;throw ue(new Ac("Internal Error: "+t))},h.Pm=function(){return this.b?2:1},h.Qm=function(t){var n;return this.c>0?n="(?("+this.c+")":this.a.e==8?n="(?("+this.a+")":n="(?"+this.a,this.b?n+=this.d+"|"+this.b+")":n+=this.d+")",n},h.c=0,I(y2,"RegEx/Token/ConditionToken",1945),D(1946,122,CT,Hot),h.Lm=function(t){return this.b},h.Pm=function(){return 1},h.Qm=function(t){return"(?"+(this.a==0?"":K9e(this.a))+(this.c==0?"":K9e(this.c))+":"+this.b.Qm(t)+")"},h.a=0,h.c=0,I(y2,"RegEx/Token/ModifierToken",1946),D(838,122,CT,k5e),h.Lm=function(t){return this.a},h.Pm=function(){return 1},h.Qm=function(t){var n;switch(n=null,this.e){case 6:this.b==0?n="(?:"+this.a.Qm(t)+")":n="("+this.a.Qm(t)+")";break;case 20:n="(?="+this.a.Qm(t)+")";break;case 21:n="(?!"+this.a.Qm(t)+")";break;case 22:n="(?<="+this.a.Qm(t)+")";break;case 23:n="(?"+this.a.Qm(t)+")"}return n},h.b=0,I(y2,"RegEx/Token/ParenToken",838),D(530,122,{3:1,122:1,530:1},coe),h.Mm=function(){return this.b},h.Qm=function(t){return this.e==12?"\\"+this.a:bTn(this.b)},h.a=0,I(y2,"RegEx/Token/StringToken",530),D(477,122,CT,B_),h.Jm=function(t){Qm(this,t)},h.Lm=function(t){return l(xw(this.a,t),122)},h.Pm=function(){return this.a?this.a.a.c.length:0},h.Qm=function(t){var n,r,a,o,f;if(this.e==1){if(this.a.a.c.length==2)n=l(xw(this.a,0),122),r=l(xw(this.a,1),122),r.e==3&&r.Lm(0)==n?o=n.Qm(t)+"+":r.e==9&&r.Lm(0)==n?o=n.Qm(t)+"+?":o=n.Qm(t)+(""+r.Qm(t));else{for(f=new Up,a=0;a=this.c.b:this.a<=this.c.b},h.Sb=function(){return this.b>0},h.Tb=function(){return this.b},h.Vb=function(){return this.b-1},h.Qb=function(){throw ue(new Hp(Z5t))},h.a=0,h.b=0,I(zSe,"ExclusiveRange/RangeIterator",258);var kf=Gk(GG,"C"),Vr=Gk(LL,"I"),ih=Gk(Cx,"Z"),nm=Gk(ML,"J"),Al=Gk(SL,"B"),Na=Gk(_L,"D"),B4=Gk(AL,"F"),h7=Gk(DL,"S"),POn=ks("org.eclipse.elk.core.labels","ILabelManager"),nBe=ks(So,"DiagnosticChain"),rBe=ks(_5t,"ResourceSet"),iBe=I(So,"InvocationTargetException",null),MAt=(Hz(),Ymn),DAt=DAt=$8n;qwn(Rcn),Rwn("permProps",[[["locale","default"],[e6t,"gecko1_8"]],[["locale","default"],[e6t,"safari"]]]),DAt(null,"elk",null)}).call(this)}).call(this,typeof Ag<"u"?Ag:typeof self<"u"?self:typeof window<"u"?window:{})},{}],3:[function(u,d,p){function v(A,P){if(!(A instanceof P))throw new TypeError("Cannot call a class as a function")}function b(A,P){if(!A)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return P&&(typeof P=="object"||typeof P=="function")?P:A}function y(A,P){if(typeof P!="function"&&P!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof P);A.prototype=Object.create(P&&P.prototype,{constructor:{value:A,enumerable:!1,writable:!0,configurable:!0}}),P&&(Object.setPrototypeOf?Object.setPrototypeOf(A,P):A.__proto__=P)}var T=u("./elk-api.js").default,_=function(A){y(P,A);function P(){var R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};v(this,P);var F=Object.assign({},R),j=!1;try{u.resolve("web-worker"),j=!0}catch{}if(R.workerUrl)if(j){var K=u("web-worker");F.workerFactory=function(oe){return new K(oe)}}else console.warn(`Web worker requested but 'web-worker' package not installed. +`;return o};var _On=I(vL,"TGraph",121);D(643,508,{3:1,508:1,643:1,96:1,137:1}),I(vL,"TShape",643),D(40,643,{3:1,508:1,40:1,643:1,96:1,137:1},xce),h.Ib=function(){return Bm(this)};var PW=I(vL,"TNode",40);D(236,1,hg,Hg),h.Jc=function(t){to(this,t)},h.Kc=function(){var t;return t=Rr(this.a.d,0),new C5(t)},I(vL,"TNode/2",236),D(329,1,Oa,C5),h.Nb=function(t){Za(this,t)},h.Pb=function(){return l(Br(this.a),65).c},h.Ob=function(){return QI(this.a)},h.Qb=function(){Yoe(this.a)},I(vL,"TNode/2/1",329),D(1923,1,ts,Bte),h.Kf=function(t,n){zIn(this,l(t,121),n)},I(Su,"CompactionProcessor",1923),D(1924,1,ii,lXe),h.Ne=function(t,n){return A3n(this.a,l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Su,"CompactionProcessor/lambda$0$Type",1924),D(1925,1,ti,ttt),h.Mb=function(t){return Npn(this.b,this.a,l(t,42))},h.a=0,h.b=0,I(Su,"CompactionProcessor/lambda$1$Type",1925),D(1934,1,ii,o8),h.Ne=function(t,n){return Cgn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Su,"CompactionProcessor/lambda$10$Type",1934),D(1935,1,ii,Zj),h.Ne=function(t,n){return jhn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Su,"CompactionProcessor/lambda$11$Type",1935),D(1936,1,ii,Fte),h.Ne=function(t,n){return Sgn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Su,"CompactionProcessor/lambda$12$Type",1936),D(1926,1,ti,hXe),h.Mb=function(t){return khn(this.a,l(t,42))},h.a=0,I(Su,"CompactionProcessor/lambda$2$Type",1926),D(1927,1,ti,fXe),h.Mb=function(t){return Ehn(this.a,l(t,42))},h.a=0,I(Su,"CompactionProcessor/lambda$3$Type",1927),D(1928,1,ti,pI),h.Mb=function(t){return l(t,40).c.indexOf(DG)==-1},I(Su,"CompactionProcessor/lambda$4$Type",1928),D(1929,1,{},dXe),h.Kb=function(t){return Bbn(this.a,l(t,40))},h.a=0,I(Su,"CompactionProcessor/lambda$5$Type",1929),D(1930,1,{},gXe),h.Kb=function(t){return Vvn(this.a,l(t,40))},h.a=0,I(Su,"CompactionProcessor/lambda$6$Type",1930),D(1931,1,ii,pXe),h.Ne=function(t,n){return tvn(this.a,l(t,240),l(n,240))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Su,"CompactionProcessor/lambda$7$Type",1931),D(1932,1,ii,bXe),h.Ne=function(t,n){return nvn(this.a,l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Su,"CompactionProcessor/lambda$8$Type",1932),D(1933,1,ii,Rte),h.Ne=function(t,n){return $hn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Su,"CompactionProcessor/lambda$9$Type",1933),D(1921,1,ts,jte),h.Kf=function(t,n){FSn(l(t,121),n)},I(Su,"DirectionProcessor",1921),D(1913,1,ts,qrt),h.Kf=function(t,n){aAn(this,l(t,121),n)},I(Su,"FanProcessor",1913),D(1937,1,ts,$te),h.Kf=function(t,n){CSn(l(t,121),n)},I(Su,"GraphBoundsProcessor",1937),D(1938,1,{},zte),h.Ye=function(t){return l(t,40).e.a},I(Su,"GraphBoundsProcessor/lambda$0$Type",1938),D(1939,1,{},qte),h.Ye=function(t){return l(t,40).e.b},I(Su,"GraphBoundsProcessor/lambda$1$Type",1939),D(1940,1,{},Hte),h.Ye=function(t){return sln(l(t,40))},I(Su,"GraphBoundsProcessor/lambda$2$Type",1940),D(1941,1,{},Vte),h.Ye=function(t){return iln(l(t,40))},I(Su,"GraphBoundsProcessor/lambda$3$Type",1941),D(262,22,{3:1,34:1,22:1,262:1,196:1},ow),h.dg=function(){switch(this.g){case 0:return new bJe;case 1:return new qrt;case 2:return new pJe;case 3:return new n$;case 4:return new Ute;case 8:return new e$;case 5:return new jte;case 6:return new i$;case 7:return new Bte;case 9:return new $te;case 10:return new Kte;default:throw ue(new Yn(Fhe+(this.f!=null?this.f:""+this.g)))}};var HDe,VDe,UDe,GDe,KDe,WDe,YDe,XDe,QDe,JDe,Dde,AOn=Fr(Su,Rhe,262,Hr,Bft,u1n),hTt;D(1920,1,ts,e$),h.Kf=function(t,n){RDn(l(t,121),n)},I(Su,"LevelCoordinatesProcessor",1920),D(1918,1,ts,Ute),h.Kf=function(t,n){sCn(this,l(t,121),n)},h.a=0,I(Su,"LevelHeightProcessor",1918),D(1919,1,hg,t$),h.Jc=function(t){to(this,t)},h.Kc=function(){return Cn(),Mk(),AT},I(Su,"LevelHeightProcessor/1",1919),D(1914,1,ts,pJe),h.Kf=function(t,n){wSn(this,l(t,121),n)},I(Su,"LevelProcessor",1914),D(1915,1,ti,Gte),h.Mb=function(t){return Rt(Bt(Q(l(t,40),(Qi(),Vb))))},I(Su,"LevelProcessor/lambda$0$Type",1915),D(1916,1,ts,n$),h.Kf=function(t,n){nkn(this,l(t,121),n)},h.a=0,I(Su,"NeighborsProcessor",1916),D(1917,1,hg,r$),h.Jc=function(t){to(this,t)},h.Kc=function(){return Cn(),Mk(),AT},I(Su,"NeighborsProcessor/1",1917),D(1922,1,ts,i$),h.Kf=function(t,n){sAn(this,l(t,121),n)},h.a=0,I(Su,"NodePositionProcessor",1922),D(1912,1,ts,bJe),h.Kf=function(t,n){$Ln(this,l(t,121),n)},I(Su,"RootProcessor",1912),D(1942,1,ts,Kte),h.Kf=function(t,n){B6n(l(t,121),n)},I(Su,"Untreeifyer",1942),D(392,22,{3:1,34:1,22:1,392:1},Ose);var OB,Ide,ZDe,eIe=Fr(UP,"EdgeRoutingMode",392,Hr,J2n,l1n),fTt,NB,QT,Ode,tIe,nIe,Nde,Pde,rIe,Bde,iIe,Fde,dM,Rde,BW,FW,k0,c1,JT,gM,pM,C2,sIe,dTt,jde,Vb,PB,BB;D(862,1,Pf,rie),h.hf=function(t){sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,fCe),""),pyt),"Turns on Tree compaction which decreases the size of the whole tree by placing nodes of multiple levels in one large level"),(Hn(),!1)),(g2(),ya)),Ns),un((r1(),Pn))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,dCe),""),"Edge End Texture Length"),"Should be set to the length of the texture at the end of an edge. This value can be used to improve the Edge Routing."),7),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,gCe),""),"Tree Level"),"The index for the tree level the node is in"),pt(0)),Tc),ro),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,pCe),""),pyt),"When set to a positive number this option will force the algorithm to place the node to the specified position within the trees layer if weighting is set to constraint"),pt(-1)),Tc),ro),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,bCe),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),cIe),ps),yIe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,mCe),""),"Edge Routing Mode"),"Chooses an Edge Routing algorithm."),aIe),ps),eIe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,vCe),""),"Search Order"),"Which search order to use when computing a spanning tree."),oIe),ps),kIe),un(Pn)))),iwt((new v8,t))};var gTt,pTt,bTt,aIe,mTt,vTt,oIe,wTt,yTt,cIe;I(UP,"MrTreeMetaDataProvider",862),D(1006,1,Pf,v8),h.hf=function(t){iwt(t)};var xTt,uIe,lIe,y3,hIe,fIe,$de,kTt,ETt,TTt,CTt,STt,_Tt,ATt,dIe,gIe,pIe,LTt,W6,RW,bIe,MTt,mIe,zde,DTt,ITt,OTt,vIe,NTt,$d,wIe;I(UP,"MrTreeOptions",1006),D(1007,1,{},Wte),h.sf=function(){var t;return t=new Hrt,t},h.tf=function(t){},I(UP,"MrTreeOptions/MrtreeFactory",1007),D(353,22,{3:1,34:1,22:1,353:1},wq);var qde,jW,Hde,Vde,yIe=Fr(UP,"OrderWeighting",353,Hr,amn,h1n),PTt;D(433,22,{3:1,34:1,22:1,433:1},V3e);var xIe,Ude,kIe=Fr(UP,"TreeifyingOrder",433,Hr,t2n,f1n),BTt;D(1486,1,Uo,aie),h.rg=function(t){return l(t,121),FTt},h.Kf=function(t,n){b3n(this,l(t,121),n)};var FTt;I("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1486),D(1487,1,Uo,dk),h.rg=function(t){return l(t,121),RTt},h.Kf=function(t,n){ESn(this,l(t,121),n)};var RTt;I(pT,"NodeOrderer",1487),D(1494,1,{},pwe),h.td=function(t){return Yit(t)},I(pT,"NodeOrderer/0methodref$lambda$6$Type",1494),D(1488,1,ti,ane),h.Mb=function(t){return ux(),Rt(Bt(Q(l(t,40),(Qi(),Vb))))},I(pT,"NodeOrderer/lambda$0$Type",1488),D(1489,1,ti,one),h.Mb=function(t){return ux(),l(Q(l(t,40),(Hc(),W6)),17).a<0},I(pT,"NodeOrderer/lambda$1$Type",1489),D(1490,1,ti,vXe),h.Mb=function(t){return Uwn(this.a,l(t,40))},I(pT,"NodeOrderer/lambda$2$Type",1490),D(1491,1,ti,mXe),h.Mb=function(t){return jbn(this.a,l(t,40))},I(pT,"NodeOrderer/lambda$3$Type",1491),D(1492,1,ii,cne),h.Ne=function(t,n){return gwn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(pT,"NodeOrderer/lambda$4$Type",1492),D(1493,1,ti,une),h.Mb=function(t){return ux(),l(Q(l(t,40),(Qi(),Pde)),17).a!=0},I(pT,"NodeOrderer/lambda$5$Type",1493),D(1495,1,Uo,sie),h.rg=function(t){return l(t,121),jTt},h.Kf=function(t,n){I_n(this,l(t,121),n)},h.b=0;var jTt;I("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1495),D(1496,1,Uo,iie),h.rg=function(t){return l(t,121),$Tt},h.Kf=function(t,n){d_n(l(t,121),n)};var $Tt,LOn=I(vh,"EdgeRouter",1496);D(1498,1,ii,sne),h.Ne=function(t,n){return ru(l(t,17).a,l(n,17).a)},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/0methodref$compare$Type",1498),D(1503,1,{},Yte),h.Ye=function(t){return ze(Ge(t))},I(vh,"EdgeRouter/1methodref$doubleValue$Type",1503),D(1505,1,ii,a$),h.Ne=function(t,n){return Yi(ze(Ge(t)),ze(Ge(n)))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/2methodref$compare$Type",1505),D(1507,1,ii,Xte),h.Ne=function(t,n){return Yi(ze(Ge(t)),ze(Ge(n)))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/3methodref$compare$Type",1507),D(1509,1,{},s$),h.Ye=function(t){return ze(Ge(t))},I(vh,"EdgeRouter/4methodref$doubleValue$Type",1509),D(1511,1,ii,Qte),h.Ne=function(t,n){return Yi(ze(Ge(t)),ze(Ge(n)))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/5methodref$compare$Type",1511),D(1513,1,ii,bI),h.Ne=function(t,n){return Yi(ze(Ge(t)),ze(Ge(n)))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/6methodref$compare$Type",1513),D(1497,1,{},Jte),h.Kb=function(t){return tp(),l(Q(l(t,40),(Hc(),$d)),17)},I(vh,"EdgeRouter/lambda$0$Type",1497),D(1508,1,{},Zte),h.Kb=function(t){return Zhn(l(t,40))},I(vh,"EdgeRouter/lambda$11$Type",1508),D(1510,1,{},ntt),h.Kb=function(t){return _dn(this.b,this.a,l(t,40))},h.a=0,h.b=0,I(vh,"EdgeRouter/lambda$13$Type",1510),D(1512,1,{},rtt),h.Kb=function(t){return efn(this.b,this.a,l(t,40))},h.a=0,h.b=0,I(vh,"EdgeRouter/lambda$15$Type",1512),D(1514,1,ii,ene),h.Ne=function(t,n){return f6n(l(t,65),l(n,65))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/lambda$17$Type",1514),D(1515,1,ii,tne),h.Ne=function(t,n){return d6n(l(t,65),l(n,65))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/lambda$18$Type",1515),D(1516,1,ii,nne),h.Ne=function(t,n){return p6n(l(t,65),l(n,65))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/lambda$19$Type",1516),D(1499,1,ti,wXe),h.Mb=function(t){return b2n(this.a,l(t,40))},h.a=0,I(vh,"EdgeRouter/lambda$2$Type",1499),D(1517,1,ii,o$),h.Ne=function(t,n){return g6n(l(t,65),l(n,65))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/lambda$20$Type",1517),D(1500,1,ii,rne),h.Ne=function(t,n){return ddn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/lambda$3$Type",1500),D(1501,1,ii,ine),h.Ne=function(t,n){return gdn(l(t,40),l(n,40))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"EdgeRouter/lambda$4$Type",1501),D(1502,1,{},lne),h.Kb=function(t){return tfn(l(t,40))},I(vh,"EdgeRouter/lambda$5$Type",1502),D(1504,1,{},itt),h.Kb=function(t){return Adn(this.b,this.a,l(t,40))},h.a=0,h.b=0,I(vh,"EdgeRouter/lambda$7$Type",1504),D(1506,1,{},stt),h.Kb=function(t){return nfn(this.b,this.a,l(t,40))},h.a=0,h.b=0,I(vh,"EdgeRouter/lambda$9$Type",1506),D(675,1,{675:1},Fdt),h.e=0,h.f=!1,h.g=!1,I(vh,"MultiLevelEdgeNodeNodeGap",675),D(1943,1,ii,hne),h.Ne=function(t,n){return S2n(l(t,240),l(n,240))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"MultiLevelEdgeNodeNodeGap/lambda$0$Type",1943),D(1944,1,ii,fne),h.Ne=function(t,n){return _2n(l(t,240),l(n,240))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(vh,"MultiLevelEdgeNodeNodeGap/lambda$1$Type",1944);var Y6;D(501,22,{3:1,34:1,22:1,501:1,188:1,196:1},U3e),h.dg=function(){return E1t(this)},h.qg=function(){return E1t(this)};var $W,X6,EIe=Fr(wCe,"RadialLayoutPhases",501,Hr,Wpn,d1n),zTt;D(1113,205,tv,fZe),h.rf=function(t,n){var r,a,o,f,g,w;if(r=cbt(this,t),n.Ug("Radial layout",r.c.length),Rt(Bt(at(t,(Sb(),NIe))))||KO((a=new Yv((aw(),new Jv(t))),a)),w=mxn(t),Hi(t,(H5(),Y6),w),!w)throw ue(new Yn("The given graph is not a tree!"));for(o=ze(Ge(at(t,HW))),o==0&&(o=qpt(t)),Hi(t,HW,o),g=new G(cbt(this,t));g.a=3)for(ot=l(Oe($e,0),27),St=l(Oe($e,1),27),f=0;f+2<$e.i;)if(Ze=ot,ot=St,St=l(Oe($e,f+2),27),Ze.f>=ot.f+St.f+L||St.f>=Ze.f+ot.f+L){cn=!0;break}else++f;else cn=!0;if(!cn){for(z=$e.i,w=new or($e);w.e!=w.i.gc();)g=l(gr(w),27),Hi(g,(pi(),XB),pt(z)),--z;Rmt(t,new L8),n.Vg();return}for(r=(qO(this.a),X0(this.a,(WV(),RB),l(at(t,uOe),188)),X0(this.a,VW,l(at(t,rOe),188)),X0(this.a,rge,l(at(t,aOe),188)),uye(this.a,(Bn=new Xs,fi(Bn,RB,(sU(),age)),fi(Bn,VW,sge),Rt(Bt(at(t,tOe)))&&fi(Bn,RB,ige),Bn)),bP(this.a,t)),C=1/r.c.length,J=new G(r);J.a0&&K0t((Xn(n-1,t.length),t.charCodeAt(n-1)),N3t);)--n;if(a>=n)throw ue(new Yn("The given string does not contain any numbers."));if(o=Gy((Ga(a,n,t.length),t.substr(a,n-a)),`,|;|\r| +`),o.length!=2)throw ue(new Yn("Exactly two numbers are expected, "+o.length+" were found."));try{this.a=jy($y(o[0])),this.b=jy($y(o[1]))}catch(f){throw f=bs(f),De(f,130)?(r=f,ue(new Yn(P3t+r))):ue(f)}},h.Ib=function(){return"("+this.a+","+this.b+")"},h.a=0,h.b=0;var Ea=I($P,"KVector",8);D(75,67,{3:1,4:1,20:1,31:1,56:1,16:1,67:1,15:1,75:1,423:1},bl,Gz,frt),h.Pc=function(){return Oyn(this)},h.cg=function(t){var n,r,a,o,f,g;a=Gy(t,`,|;|\\(|\\)|\\[|\\]|\\{|\\}| | | +`),Ch(this);try{for(r=0,f=0,o=0,g=0;r0&&(f%2==0?o=jy(a[r]):g=jy(a[r]),f>0&&f%2!=0&&ui(this,new lt(o,g)),++f),++r}catch(w){throw w=bs(w),De(w,130)?(n=w,ue(new Yn("The given string does not match the expected format for vectors."+n))):ue(w)}},h.Ib=function(){var t,n,r;for(t=new Th("("),n=Rr(this,0);n.b!=n.d.c;)r=l(Br(n),8),hi(t,r.a+","+r.b),n.b!=n.d.c&&(t.a+="; ");return(t.a+=")",t).a};var GOe=I($P,"KVectorChain",75);D(255,22,{3:1,34:1,22:1,255:1},__);var Sge,eY,tY,HB,VB,nY,KOe=Fr(nh,"Alignment",255,Hr,Mvn,F1n),xSt;D(991,1,Pf,fie),h.hf=function(t){xmt(t)};var WOe,_ge,kSt,YOe,XOe,ESt,QOe,TSt,CSt,JOe,ZOe,SSt;I(nh,"BoxLayouterOptions",991),D(992,1,{},ek),h.sf=function(){var t;return t=new jne,t},h.tf=function(t){},I(nh,"BoxLayouterOptions/BoxFactory",992),D(298,22,{3:1,34:1,22:1,298:1},A_);var EM,Age,TM,CM,SM,Lge,Mge=Fr(nh,"ContentAlignment",298,Hr,Dvn,R1n),_St;D(699,1,Pf,uz),h.hf=function(t){sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,Byt),""),"Layout Algorithm"),"Select a specific layout algorithm."),(g2(),J6)),zt),un((r1(),Pn))))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,Fyt),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),X1),IOn),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,qTe),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),eNe),ps),KOe),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,Ox),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,tSe),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),X1),GOe),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,SG),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),nNe),t9),Mge),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,VP),""),"Debug Mode"),"Whether additional debug information shall be generated."),(Hn(),!1)),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,gfe),""),kEe),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),rNe),ps),LM),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,HP),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),aNe),ps),Vge),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ZCe),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,CG),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),uNe),ps),YNe),rs(Pn,he(le(xg,1),it,170,0,[ha]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Xw),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),vNe),X1),wAe),rs(Pn,he(le(xg,1),it,170,0,[ha]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,hL),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,AG),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,fL),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Nhe),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),ENe),ps),JNe),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,_G),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),X1),Ea),rs(ha,he(le(xg,1),it,170,0,[yv,S2]))))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,NP),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),Tc),ro),rs(ha,he(le(xg,1),it,170,0,[zd]))))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,oG),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),Tc),ro),un(Pn)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,lL),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ZTe),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),lNe),X1),GOe),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,nCe),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),!1),ya),Ns),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,rCe),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),ya),Ns),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,sOn),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),X1),FOn),rs(Pn,he(le(xg,1),it,170,0,[S2]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,sCe),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),hNe),X1),vAe),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,$Te),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),!1),ya),Ns),rs(ha,he(le(xg,1),it,170,0,[zd,yv,S2]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Ryt),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),fo),ta),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,jyt),""),"Child Area Width"),"The width of the area occupied by the laid out children of a node."),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,$yt),""),"Child Area Height"),"The height of the area occupied by the laid out children of a node."),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,PP),""),Dyt),"Turns topdown layout on and off. If this option is enabled, hierarchical layout will be computed first for the root node and then for its children recursively. Layouts are then scaled down to fit the area provided by their parents. Graphs must follow a certain structure for topdown layout to work properly. {@link TopdownNodeTypes.PARALLEL_NODE} nodes must have children of type {@link TopdownNodeTypes.HIERARCHICAL_NODE} and must define {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} for their children. Furthermore they need to be laid out using an algorithm that is a {@link TopdownLayoutProvider}. Hierarchical nodes can also be parents of other hierarchical nodes and can optionally use a {@link TopdownSizeApproximator} to dynamically set sizes during topdown layout. In this case {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} should be set on the node itself rather than the parent. The values are then used by the size approximator as base values. Hierarchical nodes require the layout option {@link nodeSize.fixedGraphSize} to be true to prevent the algorithm used there from resizing the hierarchical node. This option is not supported if 'Hierarchy Handling' is set to 'INCLUDE_CHILDREN'"),!1),ya),Ns),un(Pn)))),Qs(t,PP,Qw,null),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,zyt),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,qyt),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),pt(100)),Tc),ro),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Hyt),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Vyt),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),pt(4e3)),Tc),ro),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Uyt),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),pt(400)),Tc),ro),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Gyt),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Kyt),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Wyt),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!0),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Yyt),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,eSe),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),tNe),ps),cPe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,LTe),U1),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,MTe),U1),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,_he),U1),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,DTe),U1),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Ohe),U1),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,dfe),U1),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,ITe),U1),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,PTe),U1),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,OTe),U1),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,NTe),U1),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Jy),U1),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,BTe),U1),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),fo),ta),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,FTe),U1),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),fo),ta),rs(Pn,he(le(xg,1),it,170,0,[ha]))))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,RTe),U1),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),X1),g_t),rs(ha,he(le(xg,1),it,170,0,[zd,yv,S2]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,aCe),U1),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),NNe),X1),vAe),un(Pn)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,bfe),Jyt),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),Tc),ro),rs(Pn,he(le(xg,1),it,170,0,[ha]))))),Qs(t,bfe,pfe,BSt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,pfe),Jyt),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),wNe),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,UTe),Zyt),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),dNe),X1),wAe),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,fT),Zyt),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),gNe),t9),Ko),rs(ha,he(le(xg,1),it,170,0,[S2]))))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,WTe),RG),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),xNe),ps),OM),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,YTe),RG),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),ps),OM),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,XTe),RG),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),ps),OM),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,QTe),RG),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),ps),OM),un(ha)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,JTe),RG),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),ps),OM),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,x6),Rfe),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),pNe),t9),BM),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Nx),Rfe),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),mNe),t9),ePe),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Px),Rfe),"Node Size Minimum"),"The minimal size to which a node can be reduced."),bNe),X1),Ea),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,hT),Rfe),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),!1),ya),Ns),un(Pn)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,eCe),ffe),"Edge Label Placement"),"Gives a hint on where to put edge labels."),iNe),ps),FNe),un(S2)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,cG),ffe),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),!1),ya),Ns),un(S2)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,aOn),"font"),"Font Name"),"Font name used for a label."),J6),zt),un(S2)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,Xyt),"font"),"Font Size"),"Font size used for a label."),Tc),ro),un(S2)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,iCe),jfe),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),X1),Ea),un(yv)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,tCe),jfe),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),Tc),ro),un(yv)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,zTe),jfe),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),SNe),ps),Oo),un(yv)))),sn(t,new Xt(nn(tn(rn(Qt(en(Jt(Zt(new Ut,jTe),jfe),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),fo),ta),un(yv)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,dT),iSe),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),TNe),t9),cY),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,GTe),iSe),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),ya),Ns),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,KTe),iSe),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),!0),ya),Ns),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,BP),KP),"Topdown Scale Factor"),"The scaling factor to be applied to the nodes laid out within the node in recursive topdown layout. The difference to 'Scale Factor' is that the node itself is not scaled. This value has to be set on hierarchical nodes."),1),fo),ta),un(Pn)))),Qs(t,BP,Qw,VSt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,nSe),KP),"Topdown Size Approximator"),"The size approximator to be used to set sizes of hierarchical nodes during topdown layout. The default value is null, which results in nodes keeping whatever size is defined for them e.g. through parent parallel node or by manually setting the size."),null),ps),gY),un(ha)))),Qs(t,nSe,Qw,USt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,FP),KP),"Topdown Hierarchical Node Width"),"The fixed size of a hierarchical node when using topdown layout. If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),150),fo),ta),rs(Pn,he(le(xg,1),it,170,0,[ha]))))),Qs(t,FP,Qw,null),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,RP),KP),"Topdown Hierarchical Node Aspect Ratio"),"The fixed aspect ratio of a hierarchical node when using topdown layout. Default is 1/sqrt(2). If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),1.414),fo),ta),rs(Pn,he(le(xg,1),it,170,0,[ha]))))),Qs(t,RP,Qw,null),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Qw),KP),"Topdown Node Type"),"The different node types used for topdown layout. If the node type is set to {@link TopdownNodeTypes.PARALLEL_NODE} the algorithm must be set to a {@link TopdownLayoutProvider} such as {@link TopdownPacking}. The {@link nodeSize.fixedGraphSize} option is technically only required for hierarchical nodes."),null),ps),nPe),un(ha)))),Qs(t,Qw,hT,null),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,rSe),KP),"Topdown Scale Cap"),"Determines the upper limit for the topdown scale factor. The default value is 1.0 which ensures that nested children never end up appearing larger than their parents in terms of unit sizes such as the font size. If the limit is larger, nodes will fully utilize the available space, but it is counteriniuitive for inner nodes to have a larger scale than outer nodes."),1),fo),ta),un(Pn)))),Qs(t,rSe,Qw,HSt),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,HTe),e4t),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),!1),ya),Ns),un(ha)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,VTe),e4t),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),ya),Ns),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Ahe),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),fo),ta),un(zd)))),sn(t,new Xt(nn(tn(rn(yn(Qt(en(Jt(Zt(new Ut,Qyt),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),cNe),ps),HNe),un(zd)))),m_(t,new nx(f_(Ck(Tk(new ny,sr),"Layered"),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))),m_(t,new nx(f_(Ck(Tk(new ny,"org.eclipse.elk.orthogonal"),"Orthogonal"),`Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`))),m_(t,new nx(f_(Ck(Tk(new ny,Yu),"Force"),"Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))),m_(t,new nx(f_(Ck(Tk(new ny,"org.eclipse.elk.circle"),"Circle"),"Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))),m_(t,new nx(f_(Ck(Tk(new ny,byt),"Tree"),"Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))),m_(t,new nx(f_(Ck(Tk(new ny,"org.eclipse.elk.planar"),"Planar"),"Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))),m_(t,new nx(f_(Ck(Tk(new ny,gf),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),amt((new die,t)),xmt((new fie,t)),Nbt((new lz,t))};var eC,ASt,eNe,Z6,LSt,MSt,tNe,e7,t7,DSt,UB,nNe,GB,xv,rNe,Dge,Ige,iNe,sNe,aNe,oNe,cNe,ISt,n7,uNe,OSt,KB,Oge,WB,Nge,x3,lNe,tC,hNe,fNe,dNe,r7,gNe,kv,pNe,C4,i7,bNe,Ub,mNe,rY,YB,_2,vNe,NSt,wNe,PSt,BSt,yNe,xNe,Pge,Bge,Fge,Rge,kNe,rh,_M,ENe,jge,$ge,S4,TNe,CNe,s7,SNe,n9,XB,zge,a7,FSt,qge,RSt,jSt,_Ne,$St,ANe,LNe,r9,MNe,iY,DNe,INe,Ev,zSt,ONe,NNe,PNe,sY,QB,AM,i9,qSt,HSt,aY,VSt,BNe,USt;I(nh,"CoreOptions",699),D(88,22,{3:1,34:1,22:1,88:1},mO);var Q1,uc,vc,J1,wf,LM=Fr(nh,kEe,88,Hr,Pmn,j1n),GSt;D(278,22,{3:1,34:1,22:1,278:1},zse);var nC,_4,rC,FNe=Fr(nh,"EdgeLabelPlacement",278,Hr,lbn,$1n),KSt;D(223,22,{3:1,34:1,22:1,223:1},xq);var iC,JB,s9,Hge,Vge=Fr(nh,"EdgeRouting",223,Hr,lmn,z1n),WSt;D(321,22,{3:1,34:1,22:1,321:1},L_);var RNe,jNe,$Ne,zNe,Uge,qNe,HNe=Fr(nh,"EdgeType",321,Hr,Lvn,q1n),YSt;D(989,1,Pf,die),h.hf=function(t){amt(t)};var VNe,UNe,GNe,KNe,XSt,WNe,MM;I(nh,"FixedLayouterOptions",989),D(990,1,{},v$),h.sf=function(){var t;return t=new Une,t},h.tf=function(t){},I(nh,"FixedLayouterOptions/FixedFactory",990),D(346,22,{3:1,34:1,22:1,346:1},qse);var A2,oY,DM,YNe=Fr(nh,"HierarchyHandling",346,Hr,cbn,H1n),QSt;D(291,22,{3:1,34:1,22:1,291:1},kq);var kg,Gb,ZB,eF,JSt=Fr(nh,"LabelSide",291,Hr,umn,V1n),ZSt;D(95,22,{3:1,34:1,22:1,95:1},D5);var mp,E0,zf,T0,jh,C0,qf,Eg,S0,Ko=Fr(nh,"NodeLabelPlacement",95,Hr,Mwn,U1n),e_t;D(256,22,{3:1,34:1,22:1,256:1},vO);var XNe,IM,Kb,QNe,tF,OM=Fr(nh,"PortAlignment",256,Hr,Xmn,G1n),t_t;D(101,22,{3:1,34:1,22:1,101:1},M_);var Tv,Mu,Tg,sC,Z1,Wb,JNe=Fr(nh,"PortConstraints",101,Hr,Avn,K1n),n_t;D(279,22,{3:1,34:1,22:1,279:1},D_);var NM,PM,vp,nF,Yb,a9,cY=Fr(nh,"PortLabelPlacement",279,Hr,_vn,W1n),r_t;D(64,22,{3:1,34:1,22:1,64:1},wO);var ar,Qn,yf,xf,ll,Ju,ed,_0,zl,_l,Du,ql,hl,fl,A0,$h,zh,Hf,Dr,Pc,er,Oo=Fr(nh,"PortSide",64,Hr,Bmn,Y1n),i_t;D(993,1,Pf,lz),h.hf=function(t){Nbt(t)};var s_t,a_t,ZNe,o_t,c_t;I(nh,"RandomLayouterOptions",993),D(994,1,{},w$),h.sf=function(){var t;return t=new qne,t},h.tf=function(t){},I(nh,"RandomLayouterOptions/RandomFactory",994),D(386,22,{3:1,34:1,22:1,386:1},Eq);var A4,rF,iF,Cv,BM=Fr(nh,"SizeConstraint",386,Hr,cmn,X1n),u_t;D(264,22,{3:1,34:1,22:1,264:1},I5);var sF,uY,aC,Gge,aF,FM,lY,hY,fY,ePe=Fr(nh,"SizeOptions",264,Hr,qwn,Q1n),l_t;D(280,22,{3:1,34:1,22:1,280:1},Hse);var L4,tPe,dY,nPe=Fr(nh,"TopdownNodeTypes",280,Hr,hbn,J1n),h_t;D(347,22,sSe);var rPe,iPe,gY=Fr(nh,"TopdownSizeApproximator",347,Hr,a2n,edn);D(987,347,sSe,Wit),h.Tg=function(t){return Tdt(t)},Fr(nh,"TopdownSizeApproximator/1",987,gY,null,null),D(988,347,sSe,Ost),h.Tg=function(t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an,Bn;for(n=l(at(t,(pi(),a7)),143),St=(rb(),V=new a_,V),aP(St,t),cn=new Pr,f=new or((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a));f.e!=f.i.gc();)a=l(gr(f),27),Me=(z=new a_,z),LU(Me,St),aP(Me,a),Bn=Tdt(a),F5(Me,b.Math.max(a.g,Bn.a),b.Math.max(a.f,Bn.b)),ju(cn.f,a,Me);for(o=new or((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a));o.e!=o.i.gc();)for(a=l(gr(o),27),L=new or((!a.e&&(a.e=new Ln(js,a,7,4)),a.e));L.e!=L.i.gc();)C=l(gr(L),74),Ze=l(hc(zo(cn.f,a)),27),ot=l(cr(cn,Oe((!C.c&&(C.c=new Ln(_r,C,5,8)),C.c),0)),27),$e=(B=new TI,B),qr((!$e.b&&($e.b=new Ln(_r,$e,4,7)),$e.b),Ze),qr((!$e.c&&($e.c=new Ln(_r,$e,5,8)),$e.c),ot),AU($e,ds(Ze)),aP($e,C);te=l(GO(n.f),205);try{te.rf(St,new x$),lat(n.f,te)}catch(jn){throw jn=bs(jn),De(jn,103)?(J=jn,ue(J)):ue(jn)}return P1(St,t7)||P1(St,e7)||Uke(St),E=ze(Ge(at(St,t7))),w=ze(Ge(at(St,e7))),g=E/w,r=ze(Ge(at(St,QB)))*b.Math.sqrt((!St.a&&(St.a=new nt(Ai,St,10,11)),St.a).i),an=l(at(St,_2),107),Te=an.b+an.c+1,fe=an.d+an.a+1,new lt(b.Math.max(Te,r),b.Math.max(fe,r/g))},Fr(nh,"TopdownSizeApproximator/2",988,gY,null,null);var f_t;D(344,1,{871:1},L8),h.Ug=function(t,n){return Fgt(this,t,n)},h.Vg=function(){apt(this)},h.Wg=function(){return this.q},h.Xg=function(){return this.f?ioe(this.f):null},h.Yg=function(){return ioe(this.a)},h.Zg=function(){return this.p},h.$g=function(){return!1},h._g=function(){return this.n},h.ah=function(){return this.p!=null&&!this.b},h.bh=function(t){var n;this.n&&(n=t,vt(this.f,n))},h.dh=function(t,n){var r,a;this.n&&t&&Sbn(this,(r=new Ust,a=cle(r,t),oDn(r),a),(NV(),Wge))},h.eh=function(t){var n;return this.b?null:(n=hwn(this,this.g),ui(this.a,n),n.i=this,this.d=t,n)},h.fh=function(t){t>0&&!this.b&&c7e(this,t)},h.b=!1,h.c=0,h.d=-1,h.e=null,h.f=null,h.g=-1,h.j=!1,h.k=!1,h.n=!1,h.o=0,h.q=0,h.r=0,I(Uc,"BasicProgressMonitor",344),D(717,205,tv,jne),h.rf=function(t,n){Rmt(t,n)},I(Uc,"BoxLayoutProvider",717),D(983,1,ii,DXe),h.Ne=function(t,n){return oCn(this,l(t,27),l(n,27))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},h.a=!1,I(Uc,"BoxLayoutProvider/1",983),D(163,1,{163:1},hV,vrt),h.Ib=function(){return this.c?oke(this.c):Tb(this.b)},I(Uc,"BoxLayoutProvider/Group",163),D(320,22,{3:1,34:1,22:1,320:1},Tq);var sPe,aPe,oPe,Kge,cPe=Fr(Uc,"BoxLayoutProvider/PackingMode",320,Hr,hmn,tdn),d_t;D(984,1,ii,tk),h.Ne=function(t,n){return Spn(l(t,163),l(n,163))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Uc,"BoxLayoutProvider/lambda$0$Type",984),D(985,1,ii,nk),h.Ne=function(t,n){return vpn(l(t,163),l(n,163))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Uc,"BoxLayoutProvider/lambda$1$Type",985),D(986,1,ii,y$),h.Ne=function(t,n){return wpn(l(t,163),l(n,163))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(Uc,"BoxLayoutProvider/lambda$2$Type",986),D(1384,1,{845:1},$ne),h.Mg=function(t,n){return tq(),!De(n,167)||mZe((hx(),l(t,167)),n)},I(Uc,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1384),D(1385,1,fr,IXe),h.Cd=function(t){Byn(this.a,l(t,149))},I(Uc,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1385),D(1386,1,fr,Hne),h.Cd=function(t){l(t,96),tq()},I(Uc,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1386),D(1390,1,fr,OXe),h.Cd=function(t){i3n(this.a,l(t,96))},I(Uc,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1390),D(1388,1,ti,utt),h.Mb=function(t){return myn(this.a,this.b,l(t,149))},I(Uc,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1388),D(1387,1,ti,ltt),h.Mb=function(t){return Jhn(this.a,this.b,l(t,845))},I(Uc,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1387),D(1389,1,fr,htt),h.Cd=function(t){hgn(this.a,this.b,l(t,149))},I(Uc,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1389),D(947,1,{},Vne),h.Kb=function(t){return ant(t)},h.Fb=function(t){return this===t},I(Uc,"ElkUtil/lambda$0$Type",947),D(948,1,fr,ftt),h.Cd=function(t){lEn(this.a,this.b,l(t,74))},h.a=0,h.b=0,I(Uc,"ElkUtil/lambda$1$Type",948),D(949,1,fr,dtt),h.Cd=function(t){tun(this.a,this.b,l(t,166))},h.a=0,h.b=0,I(Uc,"ElkUtil/lambda$2$Type",949),D(950,1,fr,gtt),h.Cd=function(t){Xln(this.a,this.b,l(t,135))},h.a=0,h.b=0,I(Uc,"ElkUtil/lambda$3$Type",950),D(951,1,fr,NXe),h.Cd=function(t){Idn(this.a,l(t,377))},I(Uc,"ElkUtil/lambda$4$Type",951),D(325,1,{34:1,325:1},Dcn),h.Fd=function(t){return Chn(this,l(t,242))},h.Fb=function(t){var n;return De(t,325)?(n=l(t,325),this.a==n.a):!1},h.Hb=function(){return ua(this.a)},h.Ib=function(){return this.a+" (exclusive)"},h.a=0,I(Uc,"ExclusiveBounds/ExclusiveLowerBound",325),D(1119,205,tv,Une),h.rf=function(t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te,Me,$e,Ze,ot,St,cn,an;for(n.Ug("Fixed Layout",1),f=l(at(t,(pi(),sNe)),223),B=0,z=0,Me=new or((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a));Me.e!=Me.i.gc();){for(fe=l(gr(Me),27),an=l(at(fe,(PV(),MM)),8),an&&(Qh(fe,an.a,an.b),l(at(fe,UNe),181).Hc((mh(),A4))&&(V=l(at(fe,KNe),8),V.a>0&&V.b>0&&Gw(fe,V.a,V.b,!0,!0))),B=b.Math.max(B,fe.i+fe.g),z=b.Math.max(z,fe.j+fe.f),C=new or((!fe.n&&(fe.n=new nt(ec,fe,1,7)),fe.n));C.e!=C.i.gc();)w=l(gr(C),135),an=l(at(w,MM),8),an&&Qh(w,an.a,an.b),B=b.Math.max(B,fe.i+w.i+w.g),z=b.Math.max(z,fe.j+w.j+w.f);for(ot=new or((!fe.c&&(fe.c=new nt(Hl,fe,9,9)),fe.c));ot.e!=ot.i.gc();)for(Ze=l(gr(ot),123),an=l(at(Ze,MM),8),an&&Qh(Ze,an.a,an.b),St=fe.i+Ze.i,cn=fe.j+Ze.j,B=b.Math.max(B,St+Ze.g),z=b.Math.max(z,cn+Ze.f),E=new or((!Ze.n&&(Ze.n=new nt(ec,Ze,1,7)),Ze.n));E.e!=E.i.gc();)w=l(gr(E),135),an=l(at(w,MM),8),an&&Qh(w,an.a,an.b),B=b.Math.max(B,St+w.i+w.g),z=b.Math.max(z,cn+w.j+w.f);for(o=new hr(dr(cp(fe).a.Kc(),new j));jr(o);)r=l(xr(o),74),L=Jvt(r),B=b.Math.max(B,L.a),z=b.Math.max(z,L.b);for(a=new hr(dr(sP(fe).a.Kc(),new j));jr(a);)r=l(xr(a),74),ds(cg(r))!=t&&(L=Jvt(r),B=b.Math.max(B,L.a),z=b.Math.max(z,L.b))}if(f==(ip(),iC))for(Te=new or((!t.a&&(t.a=new nt(Ai,t,10,11)),t.a));Te.e!=Te.i.gc();)for(fe=l(gr(Te),27),a=new hr(dr(cp(fe).a.Kc(),new j));jr(a);)r=l(xr(a),74),g=fAn(r),g.b==0?Hi(r,x3,null):Hi(r,x3,g);Rt(Bt(at(t,(PV(),GNe))))||($e=l(at(t,XSt),107),te=B+$e.b+$e.c,J=z+$e.d+$e.a,Gw(t,te,J,!0,!0)),n.Vg()},I(Uc,"FixedLayoutProvider",1119),D(385,137,{3:1,423:1,385:1,96:1,137:1},EI,Xlt),h.cg=function(t){var n,r,a,o,f,g,w,E,C;if(t)try{for(E=Gy(t,";,;"),f=E,g=0,w=f.length;g>16&Zs|n^a<<16},h.Kc=function(){return new PXe(this)},h.Ib=function(){return this.a==null&&this.b==null?"pair(null,null)":this.a==null?"pair(null,"+xc(this.b)+")":this.b==null?"pair("+xc(this.a)+",null)":"pair("+xc(this.a)+","+xc(this.b)+")"},I(Uc,"Pair",42),D(995,1,Oa,PXe),h.Nb=function(t){Za(this,t)},h.Ob=function(){return!this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)},h.Pb=function(){if(!this.c&&!this.b&&this.a.a!=null)return this.b=!0,this.a.a;if(!this.c&&this.a.b!=null)return this.c=!0,this.a.b;throw ue(new _c)},h.Qb=function(){throw this.c&&this.a.b!=null?this.a.b=null:this.b&&this.a.a!=null&&(this.a.a=null),ue(new pl)},h.b=!1,h.c=!1,I(Uc,"Pair/1",995),D(455,1,{455:1},Sat),h.Fb=function(t){return Jc(this.a,l(t,455).a)&&Jc(this.c,l(t,455).c)&&Jc(this.d,l(t,455).d)&&Jc(this.b,l(t,455).b)},h.Hb=function(){return MN(he(le(wa,1),Rn,1,5,[this.a,this.c,this.d,this.b]))},h.Ib=function(){return"("+this.a+Co+this.c+Co+this.d+Co+this.b+")"},I(Uc,"Quadruple",455),D(1108,205,tv,qne),h.rf=function(t,n){var r,a,o,f,g;if(n.Ug("Random Layout",1),(!t.a&&(t.a=new nt(Ai,t,10,11)),t.a).i==0){n.Vg();return}f=l(at(t,(B8e(),o_t)),17),f&&f.a!=0?o=new VH(f.a):o=new Uce,r=XI(Ge(at(t,s_t))),g=XI(Ge(at(t,c_t))),a=l(at(t,a_t),107),MDn(t,o,r,g,a),n.Vg()},I(Uc,"RandomLayoutProvider",1108),D(240,1,{240:1},wae),h.Fb=function(t){return Jc(this.a,l(t,240).a)&&Jc(this.b,l(t,240).b)&&Jc(this.c,l(t,240).c)},h.Hb=function(){return MN(he(le(wa,1),Rn,1,5,[this.a,this.b,this.c]))},h.Ib=function(){return"("+this.a+Co+this.b+Co+this.c+")"},I(Uc,"Triple",240);var m_t;D(562,1,{}),h.Lf=function(){return new lt(this.f.i,this.f.j)},h.of=function(t){return eot(t,(pi(),rh))?at(this.f,v_t):at(this.f,t)},h.Mf=function(){return new lt(this.f.g,this.f.f)},h.Nf=function(){return this.g},h.pf=function(t){return P1(this.f,t)},h.Of=function(t){Uu(this.f,t.a),Gu(this.f,t.b)},h.Pf=function(t){Dw(this.f,t.a),Mw(this.f,t.b)},h.Qf=function(t){this.g=t},h.g=0;var v_t;I(xL,"ElkGraphAdapters/AbstractElkGraphElementAdapter",562),D(563,1,{853:1},Oz),h.Rf=function(){var t,n;if(!this.b)for(this.b=$H(EH(this.a).i),n=new or(EH(this.a));n.e!=n.i.gc();)t=l(gr(n),135),vt(this.b,new Yie(t));return this.b},h.b=null,I(xL,"ElkGraphAdapters/ElkEdgeAdapter",563),D(289,562,{},Jv),h.Sf=function(){return Gdt(this)},h.a=null,I(xL,"ElkGraphAdapters/ElkGraphAdapter",289),D(640,562,{187:1},Yie),I(xL,"ElkGraphAdapters/ElkLabelAdapter",640),D(639,562,{695:1},rae),h.Rf=function(){return m7n(this)},h.Vf=function(){var t;return t=l(at(this.f,(pi(),tC)),140),!t&&(t=new s_),t},h.Xf=function(){return v7n(this)},h.Zf=function(t){var n;n=new xae(t),Hi(this.f,(pi(),tC),n)},h.$f=function(t){Hi(this.f,(pi(),_2),new S4e(t))},h.Tf=function(){return this.d},h.Uf=function(){var t,n;if(!this.a)for(this.a=new bt,n=new hr(dr(sP(l(this.f,27)).a.Kc(),new j));jr(n);)t=l(xr(n),74),vt(this.a,new Oz(t));return this.a},h.Wf=function(){var t,n;if(!this.c)for(this.c=new bt,n=new hr(dr(cp(l(this.f,27)).a.Kc(),new j));jr(n);)t=l(xr(n),74),vt(this.c,new Oz(t));return this.c},h.Yf=function(){return AH(l(this.f,27)).i!=0||Rt(Bt(l(this.f,27).of((pi(),KB))))},h._f=function(){Xvn(this,(aw(),m_t))},h.a=null,h.b=null,h.c=null,h.d=null,h.e=null,I(xL,"ElkGraphAdapters/ElkNodeAdapter",639),D(1284,562,{852:1},BXe),h.Rf=function(){return S7n(this)},h.Uf=function(){var t,n;if(!this.a)for(this.a=eg(l(this.f,123).hh().i),n=new or(l(this.f,123).hh());n.e!=n.i.gc();)t=l(gr(n),74),vt(this.a,new Oz(t));return this.a},h.Wf=function(){var t,n;if(!this.c)for(this.c=eg(l(this.f,123).ih().i),n=new or(l(this.f,123).ih());n.e!=n.i.gc();)t=l(gr(n),74),vt(this.c,new Oz(t));return this.c},h.ag=function(){return l(l(this.f,123).of((pi(),s7)),64)},h.bg=function(){var t,n,r,a,o,f,g,w;for(a=M1(l(this.f,123)),r=new or(l(this.f,123).ih());r.e!=r.i.gc();)for(t=l(gr(r),74),w=new or((!t.c&&(t.c=new Ln(_r,t,5,8)),t.c));w.e!=w.i.gc();){if(g=l(gr(w),84),Ly(bc(g),a))return!0;if(bc(g)==a&&Rt(Bt(at(t,(pi(),Oge)))))return!0}for(n=new or(l(this.f,123).hh());n.e!=n.i.gc();)for(t=l(gr(n),74),f=new or((!t.b&&(t.b=new Ln(_r,t,4,7)),t.b));f.e!=f.i.gc();)if(o=l(gr(f),84),Ly(bc(o),a))return!0;return!1},h.a=null,h.b=null,h.c=null,I(xL,"ElkGraphAdapters/ElkPortAdapter",1284),D(1285,1,ii,zne),h.Ne=function(t,n){return i_n(l(t,123),l(n,123))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(xL,"ElkGraphAdapters/PortComparator",1285);var Xb=ks(pf,"EObject"),oC=ks(T6,r4t),qh=ks(T6,i4t),oF=ks(T6,s4t),cF=ks(T6,"ElkShape"),_r=ks(T6,a4t),js=ks(T6,aSe),cs=ks(T6,o4t),uF=ks(pf,c4t),RM=ks(pf,"EFactory"),w_t,Yge=ks(pf,u4t),u1=ks(pf,"EPackage"),La,y_t,x_t,fPe,pY,k_t,dPe,gPe,pPe,Cg,E_t,T_t,ec=ks(T6,oSe),Ai=ks(T6,cSe),Hl=ks(T6,uSe);D(93,1,l4t),h.th=function(){return this.uh(),null},h.uh=function(){return null},h.vh=function(){return this.uh(),!1},h.wh=function(){return!1},h.xh=function(t){Ni(this,t)},I(Rx,"BasicNotifierImpl",93),D(99,93,g4t),h.Yh=function(){return hh(this)},h.yh=function(t,n){return t},h.zh=function(){throw ue(new Qr)},h.Ah=function(t){var n;return n=Ro(l(Mn(this.Dh(),this.Fh()),19)),this.Ph().Th(this,n.n,n.f,t)},h.Bh=function(t,n){throw ue(new Qr)},h.Ch=function(t,n,r){return Nh(this,t,n,r)},h.Dh=function(){var t;return this.zh()&&(t=this.zh().Nk(),t)?t:this.ii()},h.Eh=function(){return Uue(this)},h.Fh=function(){throw ue(new Qr)},h.Gh=function(){var t,n;return n=this.$h().Ok(),!n&&this.zh().Tk(n=(w_(),t=j5e(Sd(this.Dh())),t==null?rpe:new TO(this,t))),n},h.Hh=function(t,n){return t},h.Ih=function(t){var n;return n=t.pk(),n?t.Lj():ms(this.Dh(),t)},h.Jh=function(){var t;return t=this.zh(),t?t.Qk():null},h.Kh=function(){return this.zh()?this.zh().Nk():null},h.Lh=function(t,n,r){return rU(this,t,n,r)},h.Mh=function(t){return tE(this,t)},h.Nh=function(t,n){return Moe(this,t,n)},h.Oh=function(){var t;return t=this.zh(),!!t&&t.Rk()},h.Ph=function(){throw ue(new Qr)},h.Qh=function(){return XV(this)},h.Rh=function(t,n,r,a){return mx(this,t,n,a)},h.Sh=function(t,n,r){var a;return a=l(Mn(this.Dh(),n),69),a.wk().zk(this,this.hi(),n-this.ji(),t,r)},h.Th=function(t,n,r,a){return IH(this,t,n,a)},h.Uh=function(t,n,r){var a;return a=l(Mn(this.Dh(),n),69),a.wk().Ak(this,this.hi(),n-this.ji(),t,r)},h.Vh=function(){return!!this.zh()&&!!this.zh().Pk()},h.Wh=function(t){return nue(this,t)},h.Xh=function(t){return got(this,t)},h.Zh=function(t){return Bvt(this,t)},h.$h=function(){throw ue(new Qr)},h._h=function(){return this.zh()?this.zh().Pk():null},h.ai=function(){return XV(this)},h.bi=function(t,n){$ue(this,t,n)},h.ci=function(t){this.$h().Sk(t)},h.di=function(t){this.$h().Vk(t)},h.ei=function(t){this.$h().Uk(t)},h.fi=function(t,n){var r,a,o,f;return f=this.Jh(),f&&t&&(n=To(f.El(),this,n),f.Il(this)),a=this.Ph(),a&&(sle(this,this.Ph(),this.Fh()).Bb&Io?(o=a.Qh(),o&&(t?!f&&o.Il(this):o.Hl(this))):(n=(r=this.Fh(),r>=0?this.Ah(n):this.Ph().Th(this,-1-r,null,n)),n=this.Ch(null,-1,n))),this.di(t),n},h.gi=function(t){var n,r,a,o,f,g,w,E;if(r=this.Dh(),f=ms(r,t),n=this.ji(),f>=n)return l(t,69).wk().Dk(this,this.hi(),f-n);if(f<=-1)if(g=g6((El(),io),r,t),g){if(Fo(),l(g,69).xk()||(g=rx(ic(io,g))),o=(a=this.Ih(g),l(a>=0?this.Lh(a,!0,!0):Hw(this,g,!0),160)),E=g.Ik(),E>1||E==-1)return l(l(o,220).Sl(t,!1),79)}else throw ue(new Yn(Ob+t.xe()+$fe));else if(t.Jk())return a=this.Ih(t),l(a>=0?this.Lh(a,!1,!0):Hw(this,t,!1),79);return w=new Itt(this,t),w},h.hi=function(){return V6e(this)},h.ii=function(){return(lb(),Vn).S},h.ji=function(){return yr(this.ii())},h.ki=function(t){Fue(this,t)},h.Ib=function(){return g0(this)},I(Gn,"BasicEObjectImpl",99);var C_t;D(119,99,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1}),h.li=function(t){var n;return n=H6e(this),n[t]},h.mi=function(t,n){var r;r=H6e(this),Ts(r,t,n)},h.ni=function(t){var n;n=H6e(this),Ts(n,t,null)},h.th=function(){return l(Kn(this,4),129)},h.uh=function(){throw ue(new Qr)},h.vh=function(){return(this.Db&4)!=0},h.zh=function(){throw ue(new Qr)},h.oi=function(t){px(this,2,t)},h.Bh=function(t,n){this.Db=n<<16|this.Db&255,this.oi(t)},h.Dh=function(){return sl(this)},h.Fh=function(){return this.Db>>16},h.Gh=function(){var t,n;return w_(),n=j5e(Sd((t=l(Kn(this,16),29),t||this.ii()))),n==null?rpe:new TO(this,n)},h.wh=function(){return(this.Db&1)==0},h.Jh=function(){return l(Kn(this,128),2034)},h.Kh=function(){return l(Kn(this,16),29)},h.Oh=function(){return(this.Db&32)!=0},h.Ph=function(){return l(Kn(this,2),54)},h.Vh=function(){return(this.Db&64)!=0},h.$h=function(){throw ue(new Qr)},h._h=function(){return l(Kn(this,64),288)},h.ci=function(t){px(this,16,t)},h.di=function(t){px(this,128,t)},h.ei=function(t){px(this,64,t)},h.hi=function(){return Ku(this)},h.Db=0,I(Gn,"MinimalEObjectImpl",119),D(120,119,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.oi=function(t){this.Cb=t},h.Ph=function(){return this.Cb},I(Gn,"MinimalEObjectImpl/Container",120),D(2083,120,{110:1,342:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.Lh=function(t,n,r){return sxe(this,t,n,r)},h.Uh=function(t,n,r){return Wxe(this,t,n,r)},h.Wh=function(t){return Z5e(this,t)},h.bi=function(t,n){V7e(this,t,n)},h.ii=function(){return su(),T_t},h.ki=function(t){O7e(this,t)},h.nf=function(){return fdt(this)},h.gh=function(){return!this.o&&(this.o=new xl((su(),Cg),L2,this,0)),this.o},h.of=function(t){return at(this,t)},h.pf=function(t){return P1(this,t)},h.qf=function(t,n){return Hi(this,t,n)},I(sv,"EMapPropertyHolderImpl",2083),D(572,120,{110:1,377:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},AS),h.Lh=function(t,n,r){switch(t){case 0:return this.a;case 1:return this.b}return rU(this,t,n,r)},h.Wh=function(t){switch(t){case 0:return this.a!=0;case 1:return this.b!=0}return nue(this,t)},h.bi=function(t,n){switch(t){case 0:dV(this,ze(Ge(n)));return;case 1:fV(this,ze(Ge(n)));return}$ue(this,t,n)},h.ii=function(){return su(),y_t},h.ki=function(t){switch(t){case 0:dV(this,0);return;case 1:fV(this,0);return}Fue(this,t)},h.Ib=function(){var t;return this.Db&64?g0(this):(t=new Af(g0(this)),t.a+=" (x: ",_5(t,this.a),t.a+=", y: ",_5(t,this.b),t.a+=")",t.a)},h.a=0,h.b=0,I(sv,"ElkBendPointImpl",572),D(739,2083,{110:1,342:1,167:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.Lh=function(t,n,r){return d8e(this,t,n,r)},h.Sh=function(t,n,r){return Mue(this,t,n,r)},h.Uh=function(t,n,r){return dce(this,t,n,r)},h.Wh=function(t){return _7e(this,t)},h.bi=function(t,n){Txe(this,t,n)},h.ii=function(){return su(),k_t},h.ki=function(t){i8e(this,t)},h.jh=function(){return this.k},h.kh=function(){return EH(this)},h.Ib=function(){return jce(this)},h.k=null,I(sv,"ElkGraphElementImpl",739),D(740,739,{110:1,342:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.Lh=function(t,n,r){return x8e(this,t,n,r)},h.Wh=function(t){return _8e(this,t)},h.bi=function(t,n){Cxe(this,t,n)},h.ii=function(){return su(),E_t},h.ki=function(t){N8e(this,t)},h.lh=function(){return this.f},h.mh=function(){return this.g},h.nh=function(){return this.i},h.oh=function(){return this.j},h.ph=function(t,n){F5(this,t,n)},h.qh=function(t,n){Qh(this,t,n)},h.rh=function(t){Uu(this,t)},h.sh=function(t){Gu(this,t)},h.Ib=function(){return Pue(this)},h.f=0,h.g=0,h.i=0,h.j=0,I(sv,"ElkShapeImpl",740),D(741,740,{110:1,342:1,84:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),h.Lh=function(t,n,r){return J8e(this,t,n,r)},h.Sh=function(t,n,r){return vxe(this,t,n,r)},h.Uh=function(t,n,r){return wxe(this,t,n,r)},h.Wh=function(t){return H7e(this,t)},h.bi=function(t,n){I9e(this,t,n)},h.ii=function(){return su(),x_t},h.ki=function(t){K8e(this,t)},h.hh=function(){return!this.d&&(this.d=new Ln(js,this,8,5)),this.d},h.ih=function(){return!this.e&&(this.e=new Ln(js,this,7,4)),this.e},I(sv,"ElkConnectableShapeImpl",741),D(326,739,{110:1,342:1,74:1,167:1,326:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},TI),h.Ah=function(t){return gxe(this,t)},h.Lh=function(t,n,r){switch(t){case 3:return WO(this);case 4:return!this.b&&(this.b=new Ln(_r,this,4,7)),this.b;case 5:return!this.c&&(this.c=new Ln(_r,this,5,8)),this.c;case 6:return!this.a&&(this.a=new nt(cs,this,6,6)),this.a;case 7:return Hn(),!this.b&&(this.b=new Ln(_r,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Ln(_r,this,5,8)),this.c.i<=1));case 8:return Hn(),!!qA(this);case 9:return Hn(),!!qw(this);case 10:return Hn(),!this.b&&(this.b=new Ln(_r,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Ln(_r,this,5,8)),this.c.i!=0)}return d8e(this,t,n,r)},h.Sh=function(t,n,r){var a;switch(n){case 3:return this.Cb&&(r=(a=this.Db>>16,a>=0?gxe(this,r):this.Cb.Th(this,-1-a,null,r))),Yye(this,l(t,27),r);case 4:return!this.b&&(this.b=new Ln(_r,this,4,7)),Ru(this.b,t,r);case 5:return!this.c&&(this.c=new Ln(_r,this,5,8)),Ru(this.c,t,r);case 6:return!this.a&&(this.a=new nt(cs,this,6,6)),Ru(this.a,t,r)}return Mue(this,t,n,r)},h.Uh=function(t,n,r){switch(n){case 3:return Yye(this,null,r);case 4:return!this.b&&(this.b=new Ln(_r,this,4,7)),To(this.b,t,r);case 5:return!this.c&&(this.c=new Ln(_r,this,5,8)),To(this.c,t,r);case 6:return!this.a&&(this.a=new nt(cs,this,6,6)),To(this.a,t,r)}return dce(this,t,n,r)},h.Wh=function(t){switch(t){case 3:return!!WO(this);case 4:return!!this.b&&this.b.i!=0;case 5:return!!this.c&&this.c.i!=0;case 6:return!!this.a&&this.a.i!=0;case 7:return!this.b&&(this.b=new Ln(_r,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Ln(_r,this,5,8)),this.c.i<=1));case 8:return qA(this);case 9:return qw(this);case 10:return!this.b&&(this.b=new Ln(_r,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Ln(_r,this,5,8)),this.c.i!=0)}return _7e(this,t)},h.bi=function(t,n){switch(t){case 3:AU(this,l(n,27));return;case 4:!this.b&&(this.b=new Ln(_r,this,4,7)),$r(this.b),!this.b&&(this.b=new Ln(_r,this,4,7)),As(this.b,l(n,16));return;case 5:!this.c&&(this.c=new Ln(_r,this,5,8)),$r(this.c),!this.c&&(this.c=new Ln(_r,this,5,8)),As(this.c,l(n,16));return;case 6:!this.a&&(this.a=new nt(cs,this,6,6)),$r(this.a),!this.a&&(this.a=new nt(cs,this,6,6)),As(this.a,l(n,16));return}Txe(this,t,n)},h.ii=function(){return su(),fPe},h.ki=function(t){switch(t){case 3:AU(this,null);return;case 4:!this.b&&(this.b=new Ln(_r,this,4,7)),$r(this.b);return;case 5:!this.c&&(this.c=new Ln(_r,this,5,8)),$r(this.c);return;case 6:!this.a&&(this.a=new nt(cs,this,6,6)),$r(this.a);return}i8e(this,t)},h.Ib=function(){return evt(this)},I(sv,"ElkEdgeImpl",326),D(452,2083,{110:1,342:1,166:1,452:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},rk),h.Ah=function(t){return lxe(this,t)},h.Lh=function(t,n,r){switch(t){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return!this.a&&(this.a=new Ys(qh,this,5)),this.a;case 6:return lot(this);case 7:return n?oue(this):this.i;case 8:return n?aue(this):this.f;case 9:return!this.g&&(this.g=new Ln(cs,this,9,10)),this.g;case 10:return!this.e&&(this.e=new Ln(cs,this,10,9)),this.e;case 11:return this.d}return sxe(this,t,n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?lxe(this,r):this.Cb.Th(this,-1-o,null,r))),Wye(this,l(t,74),r);case 9:return!this.g&&(this.g=new Ln(cs,this,9,10)),Ru(this.g,t,r);case 10:return!this.e&&(this.e=new Ln(cs,this,10,9)),Ru(this.e,t,r)}return f=l(Mn((a=l(Kn(this,16),29),a||(su(),pY)),n),69),f.wk().zk(this,Ku(this),n-yr((su(),pY)),t,r)},h.Uh=function(t,n,r){switch(n){case 5:return!this.a&&(this.a=new Ys(qh,this,5)),To(this.a,t,r);case 6:return Wye(this,null,r);case 9:return!this.g&&(this.g=new Ln(cs,this,9,10)),To(this.g,t,r);case 10:return!this.e&&(this.e=new Ln(cs,this,10,9)),To(this.e,t,r)}return Wxe(this,t,n,r)},h.Wh=function(t){switch(t){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return!!this.a&&this.a.i!=0;case 6:return!!lot(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&this.g.i!=0;case 10:return!!this.e&&this.e.i!=0;case 11:return this.d!=null}return Z5e(this,t)},h.bi=function(t,n){switch(t){case 1:oE(this,ze(Ge(n)));return;case 2:uE(this,ze(Ge(n)));return;case 3:aE(this,ze(Ge(n)));return;case 4:cE(this,ze(Ge(n)));return;case 5:!this.a&&(this.a=new Ys(qh,this,5)),$r(this.a),!this.a&&(this.a=new Ys(qh,this,5)),As(this.a,l(n,16));return;case 6:Z2t(this,l(n,74));return;case 7:yV(this,l(n,84));return;case 8:wV(this,l(n,84));return;case 9:!this.g&&(this.g=new Ln(cs,this,9,10)),$r(this.g),!this.g&&(this.g=new Ln(cs,this,9,10)),As(this.g,l(n,16));return;case 10:!this.e&&(this.e=new Ln(cs,this,10,9)),$r(this.e),!this.e&&(this.e=new Ln(cs,this,10,9)),As(this.e,l(n,16));return;case 11:p7e(this,ei(n));return}V7e(this,t,n)},h.ii=function(){return su(),pY},h.ki=function(t){switch(t){case 1:oE(this,0);return;case 2:uE(this,0);return;case 3:aE(this,0);return;case 4:cE(this,0);return;case 5:!this.a&&(this.a=new Ys(qh,this,5)),$r(this.a);return;case 6:Z2t(this,null);return;case 7:yV(this,null);return;case 8:wV(this,null);return;case 9:!this.g&&(this.g=new Ln(cs,this,9,10)),$r(this.g);return;case 10:!this.e&&(this.e=new Ln(cs,this,10,9)),$r(this.e);return;case 11:p7e(this,null);return}O7e(this,t)},h.Ib=function(){return d2t(this)},h.b=0,h.c=0,h.d=null,h.j=0,h.k=0,I(sv,"ElkEdgeSectionImpl",452),D(158,120,{110:1,94:1,93:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1}),h.Lh=function(t,n,r){var a;return t==0?(!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab):sf(this,t-yr(this.ii()),Mn((a=l(Kn(this,16),29),a||this.ii()),t),n,r)},h.Sh=function(t,n,r){var a,o;return n==0?(!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r)):(o=l(Mn((a=l(Kn(this,16),29),a||this.ii()),n),69),o.wk().zk(this,Ku(this),n-yr(this.ii()),t,r))},h.Uh=function(t,n,r){var a,o;return n==0?(!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r)):(o=l(Mn((a=l(Kn(this,16),29),a||this.ii()),n),69),o.wk().Ak(this,Ku(this),n-yr(this.ii()),t,r))},h.Wh=function(t){var n;return t==0?!!this.Ab&&this.Ab.i!=0:nf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.Zh=function(t){return Hke(this,t)},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return}uf(this,t-yr(this.ii()),Mn((r=l(Kn(this,16),29),r||this.ii()),t),n)},h.di=function(t){px(this,128,t)},h.ii=function(){return Tn(),H_t},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return}cf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.pi=function(){this.Bb|=1},h.qi=function(t){return YA(this,t)},h.Bb=0,I(Gn,"EModelElementImpl",158),D(720,158,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},fz),h.ri=function(t,n){return Lvt(this,t,n)},h.si=function(t){var n,r,a,o,f;if(this.a!=Ah(t)||t.Bb&256)throw ue(new Yn(qfe+t.zb+t3));for(a=dc(t);du(a.a).i!=0;){if(r=l(mP(a,0,(n=l(Oe(du(a.a),0),89),f=n.c,De(f,90)?l(f,29):(Tn(),Kf))),29),zw(r))return o=Ah(r).wi().si(r),l(o,54).ci(t),o;a=dc(r)}return(t.D!=null?t.D:t.B)=="java.util.Map$Entry"?new Git(t):new F4e(t)},h.ti=function(t,n){return Kw(this,t,n)},h.Lh=function(t,n,r){var a;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.a}return sf(this,t-yr((Tn(),em)),Mn((a=l(Kn(this,16),29),a||em),t),n,r)},h.Sh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 1:return this.a&&(r=l(this.a,54).Th(this,4,u1,r)),r8e(this,l(t,241),r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),em)),n),69),o.wk().zk(this,Ku(this),n-yr((Tn(),em)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 1:return r8e(this,null,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),em)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),em)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return!!this.a}return nf(this,t-yr((Tn(),em)),Mn((n=l(Kn(this,16),29),n||em),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:Xgt(this,l(n,241));return}uf(this,t-yr((Tn(),em)),Mn((r=l(Kn(this,16),29),r||em),t),n)},h.ii=function(){return Tn(),em},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:Xgt(this,null);return}cf(this,t-yr((Tn(),em)),Mn((n=l(Kn(this,16),29),n||em),t))};var jM,bPe,S_t;I(Gn,"EFactoryImpl",720),D(1037,720,{110:1,2113:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},ik),h.ri=function(t,n){switch(t.hk()){case 12:return l(n,149).Pg();case 13:return xc(n);default:throw ue(new Yn(yT+t.xe()+t3))}},h.si=function(t){var n,r,a,o,f,g,w,E;switch(t.G==-1&&(t.G=(n=Ah(t),n?f2(n.vi(),t):-1)),t.G){case 4:return f=new sk,f;case 6:return g=new a_,g;case 7:return w=new jwe,w;case 8:return a=new TI,a;case 9:return r=new AS,r;case 10:return o=new rk,o;case 11:return E=new k$,E;default:throw ue(new Yn(qfe+t.zb+t3))}},h.ti=function(t,n){switch(t.hk()){case 13:case 12:return null;default:throw ue(new Yn(yT+t.xe()+t3))}},I(sv,"ElkGraphFactoryImpl",1037),D(448,158,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1}),h.Gh=function(){var t,n;return n=(t=l(Kn(this,16),29),j5e(Sd(t||this.ii()))),n==null?(w_(),w_(),rpe):new prt(this,n)},h.Lh=function(t,n,r){var a;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.xe()}return sf(this,t-yr(this.ii()),Mn((a=l(Kn(this,16),29),a||this.ii()),t),n,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null}return nf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:this.ui(ei(n));return}uf(this,t-yr(this.ii()),Mn((r=l(Kn(this,16),29),r||this.ii()),t),n)},h.ii=function(){return Tn(),V_t},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:this.ui(null);return}cf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.xe=function(){return this.zb},h.ui=function(t){Fu(this,t)},h.Ib=function(){return CA(this)},h.zb=null,I(Gn,"ENamedElementImpl",448),D(184,448,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},qat),h.Ah=function(t){return ogt(this,t)},h.Lh=function(t,n,r){var a;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return!this.rb&&(this.rb=new wy(this,l1,this)),this.rb;case 6:return!this.vb&&(this.vb=new V8(u1,this,6,7)),this.vb;case 7:return n?this.Db>>16==7?l(this.Cb,241):null:mot(this)}return sf(this,t-yr((Tn(),O2)),Mn((a=l(Kn(this,16),29),a||O2),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 4:return this.sb&&(r=l(this.sb,54).Th(this,1,RM,r)),a8e(this,l(t,480),r);case 5:return!this.rb&&(this.rb=new wy(this,l1,this)),Ru(this.rb,t,r);case 6:return!this.vb&&(this.vb=new V8(u1,this,6,7)),Ru(this.vb,t,r);case 7:return this.Cb&&(r=(o=this.Db>>16,o>=0?ogt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,7,r)}return f=l(Mn((a=l(Kn(this,16),29),a||(Tn(),O2)),n),69),f.wk().zk(this,Ku(this),n-yr((Tn(),O2)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 4:return a8e(this,null,r);case 5:return!this.rb&&(this.rb=new wy(this,l1,this)),To(this.rb,t,r);case 6:return!this.vb&&(this.vb=new V8(u1,this,6,7)),To(this.vb,t,r);case 7:return Nh(this,null,7,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),O2)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),O2)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return!!this.sb;case 5:return!!this.rb&&this.rb.i!=0;case 6:return!!this.vb&&this.vb.i!=0;case 7:return!!mot(this)}return nf(this,t-yr((Tn(),O2)),Mn((n=l(Kn(this,16),29),n||O2),t))},h.Zh=function(t){var n;return n=wCn(this,t),n||Hke(this,t)},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:Fu(this,ei(n));return;case 2:SV(this,ei(n));return;case 3:CV(this,ei(n));return;case 4:Nue(this,l(n,480));return;case 5:!this.rb&&(this.rb=new wy(this,l1,this)),$r(this.rb),!this.rb&&(this.rb=new wy(this,l1,this)),As(this.rb,l(n,16));return;case 6:!this.vb&&(this.vb=new V8(u1,this,6,7)),$r(this.vb),!this.vb&&(this.vb=new V8(u1,this,6,7)),As(this.vb,l(n,16));return}uf(this,t-yr((Tn(),O2)),Mn((r=l(Kn(this,16),29),r||O2),t),n)},h.ei=function(t){var n,r;if(t&&this.rb)for(r=new or(this.rb);r.e!=r.i.gc();)n=gr(r),De(n,364)&&(l(n,364).w=null);px(this,64,t)},h.ii=function(){return Tn(),O2},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:Fu(this,null);return;case 2:SV(this,null);return;case 3:CV(this,null);return;case 4:Nue(this,null);return;case 5:!this.rb&&(this.rb=new wy(this,l1,this)),$r(this.rb);return;case 6:!this.vb&&(this.vb=new V8(u1,this,6,7)),$r(this.vb);return}cf(this,t-yr((Tn(),O2)),Mn((n=l(Kn(this,16),29),n||O2),t))},h.pi=function(){yue(this)},h.vi=function(){return!this.rb&&(this.rb=new wy(this,l1,this)),this.rb},h.wi=function(){return this.sb},h.xi=function(){return this.ub},h.yi=function(){return this.xb},h.zi=function(){return this.yb},h.Ai=function(t){this.ub=t},h.Ib=function(){var t;return this.Db&64?CA(this):(t=new Af(CA(this)),t.a+=" (nsURI: ",Xo(t,this.yb),t.a+=", nsPrefix: ",Xo(t,this.xb),t.a+=")",t.a)},h.xb=null,h.yb=null,I(Gn,"EPackageImpl",184),D(569,184,{110:1,2115:1,569:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},k2t),h.q=!1,h.r=!1;var __t=!1;I(sv,"ElkGraphPackageImpl",569),D(366,740,{110:1,342:1,167:1,135:1,422:1,366:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},sk),h.Ah=function(t){return hxe(this,t)},h.Lh=function(t,n,r){switch(t){case 7:return vot(this);case 8:return this.a}return x8e(this,t,n,r)},h.Sh=function(t,n,r){var a;switch(n){case 7:return this.Cb&&(r=(a=this.Db>>16,a>=0?hxe(this,r):this.Cb.Th(this,-1-a,null,r))),J4e(this,l(t,167),r)}return Mue(this,t,n,r)},h.Uh=function(t,n,r){return n==7?J4e(this,null,r):dce(this,t,n,r)},h.Wh=function(t){switch(t){case 7:return!!vot(this);case 8:return!vn("",this.a)}return _8e(this,t)},h.bi=function(t,n){switch(t){case 7:U9e(this,l(n,167));return;case 8:l7e(this,ei(n));return}Cxe(this,t,n)},h.ii=function(){return su(),dPe},h.ki=function(t){switch(t){case 7:U9e(this,null);return;case 8:l7e(this,"");return}N8e(this,t)},h.Ib=function(){return lpt(this)},h.a="",I(sv,"ElkLabelImpl",366),D(207,741,{110:1,342:1,84:1,167:1,27:1,422:1,207:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},a_),h.Ah=function(t){return pxe(this,t)},h.Lh=function(t,n,r){switch(t){case 9:return!this.c&&(this.c=new nt(Hl,this,9,9)),this.c;case 10:return!this.a&&(this.a=new nt(Ai,this,10,11)),this.a;case 11:return ds(this);case 12:return!this.b&&(this.b=new nt(js,this,12,3)),this.b;case 13:return Hn(),!this.a&&(this.a=new nt(Ai,this,10,11)),this.a.i>0}return J8e(this,t,n,r)},h.Sh=function(t,n,r){var a;switch(n){case 9:return!this.c&&(this.c=new nt(Hl,this,9,9)),Ru(this.c,t,r);case 10:return!this.a&&(this.a=new nt(Ai,this,10,11)),Ru(this.a,t,r);case 11:return this.Cb&&(r=(a=this.Db>>16,a>=0?pxe(this,r):this.Cb.Th(this,-1-a,null,r))),s4e(this,l(t,27),r);case 12:return!this.b&&(this.b=new nt(js,this,12,3)),Ru(this.b,t,r)}return vxe(this,t,n,r)},h.Uh=function(t,n,r){switch(n){case 9:return!this.c&&(this.c=new nt(Hl,this,9,9)),To(this.c,t,r);case 10:return!this.a&&(this.a=new nt(Ai,this,10,11)),To(this.a,t,r);case 11:return s4e(this,null,r);case 12:return!this.b&&(this.b=new nt(js,this,12,3)),To(this.b,t,r)}return wxe(this,t,n,r)},h.Wh=function(t){switch(t){case 9:return!!this.c&&this.c.i!=0;case 10:return!!this.a&&this.a.i!=0;case 11:return!!ds(this);case 12:return!!this.b&&this.b.i!=0;case 13:return!this.a&&(this.a=new nt(Ai,this,10,11)),this.a.i>0}return H7e(this,t)},h.bi=function(t,n){switch(t){case 9:!this.c&&(this.c=new nt(Hl,this,9,9)),$r(this.c),!this.c&&(this.c=new nt(Hl,this,9,9)),As(this.c,l(n,16));return;case 10:!this.a&&(this.a=new nt(Ai,this,10,11)),$r(this.a),!this.a&&(this.a=new nt(Ai,this,10,11)),As(this.a,l(n,16));return;case 11:LU(this,l(n,27));return;case 12:!this.b&&(this.b=new nt(js,this,12,3)),$r(this.b),!this.b&&(this.b=new nt(js,this,12,3)),As(this.b,l(n,16));return}I9e(this,t,n)},h.ii=function(){return su(),gPe},h.ki=function(t){switch(t){case 9:!this.c&&(this.c=new nt(Hl,this,9,9)),$r(this.c);return;case 10:!this.a&&(this.a=new nt(Ai,this,10,11)),$r(this.a);return;case 11:LU(this,null);return;case 12:!this.b&&(this.b=new nt(js,this,12,3)),$r(this.b);return}K8e(this,t)},h.Ib=function(){return oke(this)},I(sv,"ElkNodeImpl",207),D(193,741,{110:1,342:1,84:1,167:1,123:1,422:1,193:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},jwe),h.Ah=function(t){return fxe(this,t)},h.Lh=function(t,n,r){return t==9?M1(this):J8e(this,t,n,r)},h.Sh=function(t,n,r){var a;switch(n){case 9:return this.Cb&&(r=(a=this.Db>>16,a>=0?fxe(this,r):this.Cb.Th(this,-1-a,null,r))),Xye(this,l(t,27),r)}return vxe(this,t,n,r)},h.Uh=function(t,n,r){return n==9?Xye(this,null,r):wxe(this,t,n,r)},h.Wh=function(t){return t==9?!!M1(this):H7e(this,t)},h.bi=function(t,n){switch(t){case 9:z9e(this,l(n,27));return}I9e(this,t,n)},h.ii=function(){return su(),pPe},h.ki=function(t){switch(t){case 9:z9e(this,null);return}K8e(this,t)},h.Ib=function(){return Jbt(this)},I(sv,"ElkPortImpl",193);var A_t=ks(So,"BasicEMap/Entry");D(1122,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,119:1,120:1},k$),h.Fb=function(t){return this===t},h.ld=function(){return this.b},h.Hb=function(){return fw(this)},h.Di=function(t){h7e(this,l(t,149))},h.Lh=function(t,n,r){switch(t){case 0:return this.b;case 1:return this.c}return rU(this,t,n,r)},h.Wh=function(t){switch(t){case 0:return!!this.b;case 1:return this.c!=null}return nue(this,t)},h.bi=function(t,n){switch(t){case 0:h7e(this,l(n,149));return;case 1:u7e(this,n);return}$ue(this,t,n)},h.ii=function(){return su(),Cg},h.ki=function(t){switch(t){case 0:h7e(this,null);return;case 1:u7e(this,null);return}Fue(this,t)},h.Bi=function(){var t;return this.a==-1&&(t=this.b,this.a=t?es(t):0),this.a},h.md=function(){return this.c},h.Ci=function(t){this.a=t},h.nd=function(t){var n;return n=this.c,u7e(this,t),n},h.Ib=function(){var t;return this.Db&64?g0(this):(t=new tb,hi(hi(hi(t,this.b?this.b.Pg():ul),Phe),j_(this.c)),t.a)},h.a=-1,h.c=null;var L2=I(sv,"ElkPropertyToValueMapEntryImpl",1122);D(996,1,{},T$),I(no,"JsonAdapter",996),D(216,63,lp,dd),I(no,"JsonImportException",216),D(868,1,{},cgt),I(no,"JsonImporter",868),D(903,1,{},ptt),I(no,"JsonImporter/lambda$0$Type",903),D(904,1,{},btt),I(no,"JsonImporter/lambda$1$Type",904),D(912,1,{},FXe),I(no,"JsonImporter/lambda$10$Type",912),D(914,1,{},mtt),I(no,"JsonImporter/lambda$11$Type",914),D(915,1,{},vtt),I(no,"JsonImporter/lambda$12$Type",915),D(921,1,{},Mat),I(no,"JsonImporter/lambda$13$Type",921),D(920,1,{},Dat),I(no,"JsonImporter/lambda$14$Type",920),D(916,1,{},wtt),I(no,"JsonImporter/lambda$15$Type",916),D(917,1,{},ytt),I(no,"JsonImporter/lambda$16$Type",917),D(918,1,{},xtt),I(no,"JsonImporter/lambda$17$Type",918),D(919,1,{},ktt),I(no,"JsonImporter/lambda$18$Type",919),D(924,1,{},RXe),I(no,"JsonImporter/lambda$19$Type",924),D(905,1,{},jXe),I(no,"JsonImporter/lambda$2$Type",905),D(922,1,{},$Xe),I(no,"JsonImporter/lambda$20$Type",922),D(923,1,{},zXe),I(no,"JsonImporter/lambda$21$Type",923),D(927,1,{},qXe),I(no,"JsonImporter/lambda$22$Type",927),D(925,1,{},HXe),I(no,"JsonImporter/lambda$23$Type",925),D(926,1,{},VXe),I(no,"JsonImporter/lambda$24$Type",926),D(929,1,{},UXe),I(no,"JsonImporter/lambda$25$Type",929),D(928,1,{},GXe),I(no,"JsonImporter/lambda$26$Type",928),D(930,1,fr,Ett),h.Cd=function(t){Ovn(this.b,this.a,ei(t))},I(no,"JsonImporter/lambda$27$Type",930),D(931,1,fr,Ttt),h.Cd=function(t){Nvn(this.b,this.a,ei(t))},I(no,"JsonImporter/lambda$28$Type",931),D(932,1,{},Ctt),I(no,"JsonImporter/lambda$29$Type",932),D(908,1,{},KXe),I(no,"JsonImporter/lambda$3$Type",908),D(933,1,{},Stt),I(no,"JsonImporter/lambda$30$Type",933),D(934,1,{},WXe),I(no,"JsonImporter/lambda$31$Type",934),D(935,1,{},YXe),I(no,"JsonImporter/lambda$32$Type",935),D(936,1,{},XXe),I(no,"JsonImporter/lambda$33$Type",936),D(937,1,{},QXe),I(no,"JsonImporter/lambda$34$Type",937),D(870,1,{},JXe),I(no,"JsonImporter/lambda$35$Type",870),D(941,1,{},yit),I(no,"JsonImporter/lambda$36$Type",941),D(938,1,fr,ZXe),h.Cd=function(t){jmn(this.a,l(t,377))},I(no,"JsonImporter/lambda$37$Type",938),D(939,1,fr,_tt),h.Cd=function(t){yln(this.a,this.b,l(t,166))},I(no,"JsonImporter/lambda$38$Type",939),D(940,1,fr,Att),h.Cd=function(t){xln(this.a,this.b,l(t,166))},I(no,"JsonImporter/lambda$39$Type",940),D(906,1,{},eQe),I(no,"JsonImporter/lambda$4$Type",906),D(942,1,fr,tQe),h.Cd=function(t){$mn(this.a,l(t,8))},I(no,"JsonImporter/lambda$40$Type",942),D(907,1,{},nQe),I(no,"JsonImporter/lambda$5$Type",907),D(911,1,{},rQe),I(no,"JsonImporter/lambda$6$Type",911),D(909,1,{},iQe),I(no,"JsonImporter/lambda$7$Type",909),D(910,1,{},sQe),I(no,"JsonImporter/lambda$8$Type",910),D(913,1,{},aQe),I(no,"JsonImporter/lambda$9$Type",913),D(961,1,fr,oQe),h.Cd=function(t){J8(this.a,new yy(ei(t)))},I(no,"JsonMetaDataConverter/lambda$0$Type",961),D(962,1,fr,cQe),h.Cd=function(t){Dgn(this.a,l(t,245))},I(no,"JsonMetaDataConverter/lambda$1$Type",962),D(963,1,fr,uQe),h.Cd=function(t){M2n(this.a,l(t,143))},I(no,"JsonMetaDataConverter/lambda$2$Type",963),D(964,1,fr,lQe),h.Cd=function(t){Ign(this.a,l(t,170))},I(no,"JsonMetaDataConverter/lambda$3$Type",964),D(245,22,{3:1,34:1,22:1,245:1},R8);var bY,mY,Xge,vY,wY,yY,Qge,Jge,xY=Fr(IP,"GraphFeature",245,Hr,pwn,idn),L_t;D(11,1,{34:1,149:1},Ui,vs,pn,Ha),h.Fd=function(t){return Shn(this,l(t,149))},h.Fb=function(t){return eot(this,t)},h.Sg=function(){return It(this)},h.Pg=function(){return this.b},h.Hb=function(){return s2(this.b)},h.Ib=function(){return this.b},I(IP,"Property",11),D(671,1,ii,Nie),h.Ne=function(t,n){return B4n(this,l(t,96),l(n,96))},h.Fb=function(t){return this===t},h.Oe=function(){return new Vt(this)},I(IP,"PropertyHolderComparator",671),D(709,1,Oa,ywe),h.Nb=function(t){Za(this,t)},h.Pb=function(){return Fvn(this)},h.Qb=function(){aZe()},h.Ob=function(){return!!this.a},I(qG,"ElkGraphUtil/AncestorIterator",709);var mPe=ks(So,"EList");D(70,56,{20:1,31:1,56:1,16:1,15:1,70:1,61:1}),h.bd=function(t,n){_A(this,t,n)},h.Fc=function(t){return qr(this,t)},h.cd=function(t,n){return N7e(this,t,n)},h.Gc=function(t){return As(this,t)},h.Ii=function(){return new H8(this)},h.Ji=function(){return new CO(this)},h.Ki=function(t){return mN(this,t)},h.Li=function(){return!0},h.Mi=function(t,n){},h.Ni=function(){},h.Oi=function(t,n){Noe(this,t,n)},h.Pi=function(t,n,r){},h.Qi=function(t,n){},h.Ri=function(t,n,r){},h.Fb=function(t){return Bbt(this,t)},h.Hb=function(){return M7e(this)},h.Si=function(){return!1},h.Kc=function(){return new or(this)},h.ed=function(){return new q8(this)},h.fd=function(t){var n;if(n=this.gc(),t<0||t>n)throw ue(new my(t,n));return new jae(this,t)},h.Ui=function(t,n){this.Ti(t,this.dd(n))},h.Mc=function(t){return sV(this,t)},h.Wi=function(t,n){return n},h.hd=function(t,n){return n6(this,t,n)},h.Ib=function(){return T8e(this)},h.Yi=function(){return!0},h.Zi=function(t,n){return EE(this,n)},I(So,"AbstractEList",70),D(66,70,Bd,X2,Lw,T7e),h.Ei=function(t,n){return Due(this,t,n)},h.Fi=function(t){return Odt(this,t)},h.Gi=function(t,n){IN(this,t,n)},h.Hi=function(t){tN(this,t)},h.$i=function(t){return R6e(this,t)},h.$b=function(){uA(this)},h.Hc=function(t){return jE(this,t)},h.Xb=function(t){return Oe(this,t)},h._i=function(t){var n,r,a;++this.j,r=this.g==null?0:this.g.length,t>r&&(a=this.g,n=r+(r/2|0)+4,n=0?(this.gd(n),!0):!1},h.Xi=function(t,n){return this.Dj(t,this.Zi(t,n))},h.gc=function(){return this.Ej()},h.Pc=function(){return this.Fj()},h.Qc=function(t){return this.Gj(t)},h.Ib=function(){return this.Hj()},I(So,"DelegatingEList",2093),D(2094,2093,J4t),h.Ei=function(t,n){return wke(this,t,n)},h.Fi=function(t){return this.Ei(this.Ej(),t)},h.Gi=function(t,n){E2t(this,t,n)},h.Hi=function(t){h2t(this,t)},h.Li=function(){return!this.Mj()},h.$b=function(){tL(this)},h.Ij=function(t,n,r,a,o){return new Zat(this,t,n,r,a,o)},h.Jj=function(t){Ni(this.jj(),t)},h.Kj=function(){return null},h.Lj=function(){return-1},h.jj=function(){return null},h.Mj=function(){return!1},h.Nj=function(t,n){return n},h.Oj=function(t,n){return n},h.Pj=function(){return!1},h.Qj=function(){return!this.Aj()},h.Ti=function(t,n){var r,a;return this.Pj()?(a=this.Qj(),r=Uxe(this,t,n),this.Jj(this.Ij(7,pt(n),r,t,a)),r):Uxe(this,t,n)},h.gd=function(t){var n,r,a,o;return this.Pj()?(r=null,a=this.Qj(),n=this.Ij(4,o=rH(this,t),null,t,a),this.Mj()&&o?(r=this.Oj(o,r),r?(r.nj(n),r.oj()):this.Jj(n)):r?(r.nj(n),r.oj()):this.Jj(n),o):(o=rH(this,t),this.Mj()&&o&&(r=this.Oj(o,null),r&&r.oj()),o)},h.Xi=function(t,n){return Mmt(this,t,n)},I(Rx,"DelegatingNotifyingListImpl",2094),D(152,1,YP),h.nj=function(t){return Mxe(this,t)},h.oj=function(){qoe(this)},h.gj=function(){return this.d},h.Kj=function(){return null},h.Rj=function(){return null},h.hj=function(t){return-1},h.ij=function(){return mbt(this)},h.jj=function(){return null},h.kj=function(){return X9e(this)},h.lj=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},h.Sj=function(){return!1},h.mj=function(t){var n,r,a,o,f,g,w,E,C,L,B;switch(this.d){case 1:case 2:switch(o=t.gj(),o){case 1:case 2:if(f=t.jj(),qe(f)===qe(this.jj())&&this.hj(null)==t.hj(null))return this.g=t.ij(),t.gj()==1&&(this.d=1),!0}case 4:{switch(o=t.gj(),o){case 4:{if(f=t.jj(),qe(f)===qe(this.jj())&&this.hj(null)==t.hj(null))return C=Bke(this),E=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,g=t.lj(),this.d=6,B=new Lw(2),E<=g?(qr(B,this.n),qr(B,t.kj()),this.g=he(le(Vr,1),di,28,15,[this.o=E,g+1])):(qr(B,t.kj()),qr(B,this.n),this.g=he(le(Vr,1),di,28,15,[this.o=g,E])),this.n=B,C||(this.o=-2-this.o-1),!0;break}}break}case 6:{switch(o=t.gj(),o){case 4:{if(f=t.jj(),qe(f)===qe(this.jj())&&this.hj(null)==t.hj(null)){for(C=Bke(this),g=t.lj(),L=l(this.g,53),a=We(Vr,di,28,L.length+1,15,1),n=0;n>>0,n.toString(16))),a.a+=" (eventType: ",this.d){case 1:{a.a+="SET";break}case 2:{a.a+="UNSET";break}case 3:{a.a+="ADD";break}case 5:{a.a+="ADD_MANY";break}case 4:{a.a+="REMOVE";break}case 6:{a.a+="REMOVE_MANY";break}case 7:{a.a+="MOVE";break}case 8:{a.a+="REMOVING_ADAPTER";break}case 9:{a.a+="RESOLVE";break}default:{ise(a,this.d);break}}if(imt(this)&&(a.a+=", touch: true"),a.a+=", position: ",ise(a,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),a.a+=", notifier: ",O_(a,this.jj()),a.a+=", feature: ",O_(a,this.Kj()),a.a+=", oldValue: ",O_(a,X9e(this)),a.a+=", newValue: ",this.d==6&&De(this.g,53)){for(r=l(this.g,53),a.a+="[",t=0;t10?((!this.b||this.c.j!=this.a)&&(this.b=new U_(this),this.a=this.j),W0(this.b,t)):jE(this,t)},h.Yi=function(){return!0},h.a=0,I(So,"AbstractEList/1",966),D(302,77,she,my),I(So,"AbstractEList/BasicIndexOutOfBoundsException",302),D(37,1,Oa,or),h.Nb=function(t){Za(this,t)},h.Xj=function(){if(this.i.j!=this.f)throw ue(new Xh)},h.Yj=function(){return gr(this)},h.Ob=function(){return this.e!=this.i.gc()},h.Pb=function(){return this.Yj()},h.Qb=function(){jA(this)},h.e=0,h.f=0,h.g=-1,I(So,"AbstractEList/EIterator",37),D(286,37,lg,q8,jae),h.Qb=function(){jA(this)},h.Rb=function(t){D1t(this,t)},h.Zj=function(){var t;try{return t=this.d.Xb(--this.e),this.Xj(),this.g=this.e,t}catch(n){throw n=bs(n),De(n,77)?(this.Xj(),ue(new _c)):ue(n)}},h.$j=function(t){Bdt(this,t)},h.Sb=function(){return this.e!=0},h.Tb=function(){return this.e},h.Ub=function(){return this.Zj()},h.Vb=function(){return this.e-1},h.Wb=function(t){this.$j(t)},I(So,"AbstractEList/EListIterator",286),D(355,37,Oa,H8),h.Yj=function(){return rue(this)},h.Qb=function(){throw ue(new Qr)},I(So,"AbstractEList/NonResolvingEIterator",355),D(398,286,lg,CO,f4e),h.Rb=function(t){throw ue(new Qr)},h.Yj=function(){var t;try{return t=this.c.Vi(this.e),this.Xj(),this.g=this.e++,t}catch(n){throw n=bs(n),De(n,77)?(this.Xj(),ue(new _c)):ue(n)}},h.Zj=function(){var t;try{return t=this.c.Vi(--this.e),this.Xj(),this.g=this.e,t}catch(n){throw n=bs(n),De(n,77)?(this.Xj(),ue(new _c)):ue(n)}},h.Qb=function(){throw ue(new Qr)},h.Wb=function(t){throw ue(new Qr)},I(So,"AbstractEList/NonResolvingEListIterator",398),D(2080,70,Z4t),h.Ei=function(t,n){var r,a,o,f,g,w,E,C,L,B,z;if(o=n.gc(),o!=0){for(C=l(Kn(this.a,4),129),L=C==null?0:C.length,z=L+o,a=Sce(this,z),B=L-t,B>0&&pu(C,t,a,t+o,B),E=n.Kc(),g=0;gr)throw ue(new my(t,r));return new xat(this,t)},h.$b=function(){var t,n;++this.j,t=l(Kn(this.a,4),129),n=t==null?0:t.length,PE(this,null),Noe(this,n,t)},h.Hc=function(t){var n,r,a,o,f;if(n=l(Kn(this.a,4),129),n!=null){if(t!=null){for(a=n,o=0,f=a.length;o=r)throw ue(new my(t,r));return n[t]},h.dd=function(t){var n,r,a;if(n=l(Kn(this.a,4),129),n!=null){if(t!=null){for(r=0,a=n.length;rr)throw ue(new my(t,r));return new yat(this,t)},h.Ti=function(t,n){var r,a,o;if(r=z1t(this),o=r==null?0:r.length,t>=o)throw ue(new tc(Qfe+t+av+o));if(n>=o)throw ue(new tc(Jfe+n+av+o));return a=r[n],t!=n&&(t0&&pu(t,0,n,0,r),n},h.Qc=function(t){var n,r,a;return n=l(Kn(this.a,4),129),a=n==null?0:n.length,a>0&&(t.lengtha&&Ts(t,a,null),t};var M_t;I(So,"ArrayDelegatingEList",2080),D(1051,37,Oa,kut),h.Xj=function(){if(this.b.j!=this.f||qe(l(Kn(this.b.a,4),129))!==qe(this.a))throw ue(new Xh)},h.Qb=function(){jA(this),this.a=l(Kn(this.b.a,4),129)},I(So,"ArrayDelegatingEList/EIterator",1051),D(722,286,lg,Nst,yat),h.Xj=function(){if(this.b.j!=this.f||qe(l(Kn(this.b.a,4),129))!==qe(this.a))throw ue(new Xh)},h.$j=function(t){Bdt(this,t),this.a=l(Kn(this.b.a,4),129)},h.Qb=function(){jA(this),this.a=l(Kn(this.b.a,4),129)},I(So,"ArrayDelegatingEList/EListIterator",722),D(1052,355,Oa,Eut),h.Xj=function(){if(this.b.j!=this.f||qe(l(Kn(this.b.a,4),129))!==qe(this.a))throw ue(new Xh)},I(So,"ArrayDelegatingEList/NonResolvingEIterator",1052),D(723,398,lg,Pst,xat),h.Xj=function(){if(this.b.j!=this.f||qe(l(Kn(this.b.a,4),129))!==qe(this.a))throw ue(new Xh)},I(So,"ArrayDelegatingEList/NonResolvingEListIterator",723),D(615,302,she,Vse),I(So,"BasicEList/BasicIndexOutOfBoundsException",615),D(710,66,Bd,eye),h.bd=function(t,n){throw ue(new Qr)},h.Fc=function(t){throw ue(new Qr)},h.cd=function(t,n){throw ue(new Qr)},h.Gc=function(t){throw ue(new Qr)},h.$b=function(){throw ue(new Qr)},h._i=function(t){throw ue(new Qr)},h.Kc=function(){return this.Ii()},h.ed=function(){return this.Ji()},h.fd=function(t){return this.Ki(t)},h.Ti=function(t,n){throw ue(new Qr)},h.Ui=function(t,n){throw ue(new Qr)},h.gd=function(t){throw ue(new Qr)},h.Mc=function(t){throw ue(new Qr)},h.hd=function(t,n){throw ue(new Qr)},I(So,"BasicEList/UnmodifiableEList",710),D(721,1,{3:1,20:1,16:1,15:1,61:1,597:1}),h.bd=function(t,n){ghn(this,t,l(n,44))},h.Fc=function(t){return ofn(this,l(t,44))},h.Jc=function(t){to(this,t)},h.Xb=function(t){return l(Oe(this.c,t),136)},h.Ti=function(t,n){return l(this.c.Ti(t,n),44)},h.Ui=function(t,n){phn(this,t,l(n,44))},h.Lc=function(){return new bn(null,new kn(this,16))},h.gd=function(t){return l(this.c.gd(t),44)},h.hd=function(t,n){return Mgn(this,t,l(n,44))},h.jd=function(t){$m(this,t)},h.Nc=function(){return new kn(this,16)},h.Oc=function(){return new bn(null,new kn(this,16))},h.cd=function(t,n){return this.c.cd(t,n)},h.Gc=function(t){return this.c.Gc(t)},h.$b=function(){this.c.$b()},h.Hc=function(t){return this.c.Hc(t)},h.Ic=function(t){return EN(this.c,t)},h._j=function(){var t,n,r;if(this.d==null){for(this.d=We(vPe,_Se,66,2*this.f+1,0,1),r=this.e,this.f=0,n=this.c.Kc();n.e!=n.i.gc();)t=l(n.Yj(),136),oU(this,t);this.e=r}},h.Fb=function(t){return cit(this,t)},h.Hb=function(){return M7e(this.c)},h.dd=function(t){return this.c.dd(t)},h.ak=function(){this.c=new hQe(this)},h.dc=function(){return this.f==0},h.Kc=function(){return this.c.Kc()},h.ed=function(){return this.c.ed()},h.fd=function(t){return this.c.fd(t)},h.bk=function(){return iN(this)},h.ck=function(t,n,r){return new xit(t,n,r)},h.dk=function(){return new S$},h.Mc=function(t){return Wht(this,t)},h.gc=function(){return this.f},h.kd=function(t,n){return new Zp(this.c,t,n)},h.Pc=function(){return this.c.Pc()},h.Qc=function(t){return this.c.Qc(t)},h.Ib=function(){return T8e(this.c)},h.e=0,h.f=0,I(So,"BasicEMap",721),D(1046,66,Bd,hQe),h.Mi=function(t,n){Gcn(this,l(n,136))},h.Pi=function(t,n,r){var a;++(a=this,l(n,136),a).a.e},h.Qi=function(t,n){Kcn(this,l(n,136))},h.Ri=function(t,n,r){Ghn(this,l(n,136),l(r,136))},h.Oi=function(t,n){zft(this.a)},I(So,"BasicEMap/1",1046),D(1047,66,Bd,S$),h.aj=function(t){return We(NOn,e5t,621,t,0,1)},I(So,"BasicEMap/2",1047),D(1048,q1,Tl,fQe),h.$b=function(){this.a.c.$b()},h.Hc=function(t){return Kce(this.a,t)},h.Kc=function(){return this.a.f==0?(Fk(),fF.a):new WJe(this.a)},h.Mc=function(t){var n;return n=this.a.f,YV(this.a,t),this.a.f!=n},h.gc=function(){return this.a.f},I(So,"BasicEMap/3",1048),D(1049,31,Wy,dQe),h.$b=function(){this.a.c.$b()},h.Hc=function(t){return Fbt(this.a,t)},h.Kc=function(){return this.a.f==0?(Fk(),fF.a):new YJe(this.a)},h.gc=function(){return this.a.f},I(So,"BasicEMap/4",1049),D(1050,q1,Tl,gQe),h.$b=function(){this.a.c.$b()},h.Hc=function(t){var n,r,a,o,f,g,w,E,C;if(this.a.f>0&&De(t,44)&&(this.a._j(),E=l(t,44),w=E.ld(),o=w==null?0:es(w),f=Qye(this.a,o),n=this.a.d[f],n)){for(r=l(n.g,379),C=n.i,g=0;g"+this.c},h.a=0;var NOn=I(So,"BasicEMap/EntryImpl",621);D(546,1,{},MS),I(So,"BasicEMap/View",546);var fF;D(783,1,{}),h.Fb=function(t){return O9e((Cn(),_o),t)},h.Hb=function(){return q7e((Cn(),_o))},h.Ib=function(){return Tb((Cn(),_o))},I(So,"ECollections/BasicEmptyUnmodifiableEList",783),D(1348,1,lg,Qne),h.Nb=function(t){Za(this,t)},h.Rb=function(t){throw ue(new Qr)},h.Ob=function(){return!1},h.Sb=function(){return!1},h.Pb=function(){throw ue(new _c)},h.Tb=function(){return 0},h.Ub=function(){throw ue(new _c)},h.Vb=function(){return-1},h.Qb=function(){throw ue(new Qr)},h.Wb=function(t){throw ue(new Qr)},I(So,"ECollections/BasicEmptyUnmodifiableEList/1",1348),D(1346,783,{20:1,16:1,15:1,61:1},iJe),h.bd=function(t,n){wZe()},h.Fc=function(t){return yZe()},h.cd=function(t,n){return xZe()},h.Gc=function(t){return kZe()},h.$b=function(){EZe()},h.Hc=function(t){return!1},h.Ic=function(t){return!1},h.Jc=function(t){to(this,t)},h.Xb=function(t){return rye((Cn(),t)),null},h.dd=function(t){return-1},h.dc=function(){return!0},h.Kc=function(){return this.a},h.ed=function(){return this.a},h.fd=function(t){return this.a},h.Ti=function(t,n){return TZe()},h.Ui=function(t,n){CZe()},h.Lc=function(){return new bn(null,new kn(this,16))},h.gd=function(t){return SZe()},h.Mc=function(t){return _Ze()},h.hd=function(t,n){return AZe()},h.gc=function(){return 0},h.jd=function(t){$m(this,t)},h.Nc=function(){return new kn(this,16)},h.Oc=function(){return new bn(null,new kn(this,16))},h.kd=function(t,n){return Cn(),new Zp(_o,t,n)},h.Pc=function(){return e5e((Cn(),_o))},h.Qc=function(t){return Cn(),PA(_o,t)},I(So,"ECollections/EmptyUnmodifiableEList",1346),D(1347,783,{20:1,16:1,15:1,61:1,597:1},sJe),h.bd=function(t,n){wZe()},h.Fc=function(t){return yZe()},h.cd=function(t,n){return xZe()},h.Gc=function(t){return kZe()},h.$b=function(){EZe()},h.Hc=function(t){return!1},h.Ic=function(t){return!1},h.Jc=function(t){to(this,t)},h.Xb=function(t){return rye((Cn(),t)),null},h.dd=function(t){return-1},h.dc=function(){return!0},h.Kc=function(){return this.a},h.ed=function(){return this.a},h.fd=function(t){return this.a},h.Ti=function(t,n){return TZe()},h.Ui=function(t,n){CZe()},h.Lc=function(){return new bn(null,new kn(this,16))},h.gd=function(t){return SZe()},h.Mc=function(t){return _Ze()},h.hd=function(t,n){return AZe()},h.gc=function(){return 0},h.jd=function(t){$m(this,t)},h.Nc=function(){return new kn(this,16)},h.Oc=function(){return new bn(null,new kn(this,16))},h.kd=function(t,n){return Cn(),new Zp(_o,t,n)},h.Pc=function(){return e5e((Cn(),_o))},h.Qc=function(t){return Cn(),PA(_o,t)},h.bk=function(){return Cn(),Cn(),mg},I(So,"ECollections/EmptyUnmodifiableEMap",1347);var yPe=ks(So,"Enumerator"),kY;D(288,1,{288:1},ele),h.Fb=function(t){var n;return this===t?!0:De(t,288)?(n=l(t,288),this.f==n.f&&Gdn(this.i,n.i)&&_ae(this.a,this.f&256?n.f&256?n.a:null:n.f&256?null:n.a)&&_ae(this.d,n.d)&&_ae(this.g,n.g)&&_ae(this.e,n.e)&&b6n(this,n)):!1},h.Hb=function(){return this.f},h.Ib=function(){return bmt(this)},h.f=0;var D_t=0,I_t=0,O_t=0,N_t=0,xPe=0,kPe=0,EPe=0,TPe=0,CPe=0,P_t,$M=0,zM=0,B_t=0,F_t=0,EY,SPe;I(So,"URI",288),D(1121,45,m6,aJe),h.zc=function(t,n){return l(rc(this,ei(t),l(n,288)),288)},I(So,"URI/URICache",1121),D(506,66,Bd,E$,uH),h.Si=function(){return!0},I(So,"UniqueEList",506),D(590,63,lp,nV),I(So,"WrappedException",590);var mi=ks(pf,r5t),M4=ks(pf,i5t),dl=ks(pf,s5t),D4=ks(pf,a5t),l1=ks(pf,o5t),Vf=ks(pf,"EClass"),tpe=ks(pf,"EDataType"),R_t;D(1233,45,m6,oJe),h.xc=function(t){return Ia(t)?xu(this,t):hc(zo(this.f,t))},I(pf,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1233);var TY=ks(pf,"EEnum"),wp=ks(pf,c5t),Wo=ks(pf,u5t),Uf=ks(pf,l5t),Gf,k3=ks(pf,h5t),I4=ks(pf,f5t);D(1042,1,{},Yne),h.Ib=function(){return"NIL"},I(pf,"EStructuralFeature/Internal/DynamicValueHolder/1",1042);var j_t;D(1041,45,m6,cJe),h.xc=function(t){return Ia(t)?xu(this,t):hc(zo(this.f,t))},I(pf,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1041);var Zu=ks(pf,d5t),o9=ks(pf,"EValidator/PatternMatcher"),_Pe,APe,Vn,M2,O4,Jb,$_t,z_t,q_t,Zb,D2,em,E3,td,H_t,V_t,Kf,I2,U_t,O2,N4,o7,No,G_t,K_t,T3,CY=ks(us,"FeatureMap/Entry");D(545,1,{76:1},Sq),h.Lk=function(){return this.a},h.md=function(){return this.b},I(Gn,"BasicEObjectImpl/1",545),D(1040,1,i0e,Itt),h.Fk=function(t){return Moe(this.a,this.b,t)},h.Qj=function(){return got(this.a,this.b)},h.Wb=function(t){q5e(this.a,this.b,t)},h.Gk=function(){Hgn(this.a,this.b)},I(Gn,"BasicEObjectImpl/4",1040),D(2081,1,{114:1}),h.Mk=function(t){this.e=t==0?W_t:We(wa,Rn,1,t,5,1)},h.li=function(t){return this.e[t]},h.mi=function(t,n){this.e[t]=n},h.ni=function(t){this.e[t]=null},h.Nk=function(){return this.c},h.Ok=function(){throw ue(new Qr)},h.Pk=function(){throw ue(new Qr)},h.Qk=function(){return this.d},h.Rk=function(){return this.e!=null},h.Sk=function(t){this.c=t},h.Tk=function(t){throw ue(new Qr)},h.Uk=function(t){throw ue(new Qr)},h.Vk=function(t){this.d=t};var W_t;I(Gn,"BasicEObjectImpl/EPropertiesHolderBaseImpl",2081),D(192,2081,{114:1},Sf),h.Ok=function(){return this.a},h.Pk=function(){return this.b},h.Tk=function(t){this.a=t},h.Uk=function(t){this.b=t},I(Gn,"BasicEObjectImpl/EPropertiesHolderImpl",192),D(516,99,g4t,m5),h.uh=function(){return this.f},h.zh=function(){return this.k},h.Bh=function(t,n){this.g=t,this.i=n},h.Dh=function(){return this.j&2?this.$h().Nk():this.ii()},h.Fh=function(){return this.i},h.wh=function(){return(this.j&1)!=0},h.Ph=function(){return this.g},h.Vh=function(){return(this.j&4)!=0},h.$h=function(){return!this.k&&(this.k=new Sf),this.k},h.ci=function(t){this.$h().Sk(t),t?this.j|=2:this.j&=-3},h.ei=function(t){this.$h().Uk(t),t?this.j|=4:this.j&=-5},h.ii=function(){return(lb(),Vn).S},h.i=0,h.j=1,I(Gn,"EObjectImpl",516),D(798,516,{110:1,94:1,93:1,58:1,114:1,54:1,99:1},F4e),h.li=function(t){return this.e[t]},h.mi=function(t,n){this.e[t]=n},h.ni=function(t){this.e[t]=null},h.Dh=function(){return this.d},h.Ih=function(t){return ms(this.d,t)},h.Kh=function(){return this.d},h.Oh=function(){return this.e!=null},h.$h=function(){return!this.k&&(this.k=new _$),this.k},h.ci=function(t){this.d=t},h.hi=function(){var t;return this.e==null&&(t=yr(this.d),this.e=t==0?Y_t:We(wa,Rn,1,t,5,1)),this},h.ji=function(){return 0};var Y_t;I(Gn,"DynamicEObjectImpl",798),D(1522,798,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1},Git),h.Fb=function(t){return this===t},h.Hb=function(){return fw(this)},h.ci=function(t){this.d=t,this.b=oP(t,"key"),this.c=oP(t,TL)},h.Bi=function(){var t;return this.a==-1&&(t=Hoe(this,this.b),this.a=t==null?0:es(t)),this.a},h.ld=function(){return Hoe(this,this.b)},h.md=function(){return Hoe(this,this.c)},h.Ci=function(t){this.a=t},h.Di=function(t){q5e(this,this.b,t)},h.nd=function(t){var n;return n=Hoe(this,this.c),q5e(this,this.c,t),n},h.a=0,I(Gn,"DynamicEObjectImpl/BasicEMapEntry",1522),D(1523,1,{114:1},_$),h.Mk=function(t){throw ue(new Qr)},h.li=function(t){throw ue(new Qr)},h.mi=function(t,n){throw ue(new Qr)},h.ni=function(t){throw ue(new Qr)},h.Nk=function(){throw ue(new Qr)},h.Ok=function(){return this.a},h.Pk=function(){return this.b},h.Qk=function(){return this.c},h.Rk=function(){throw ue(new Qr)},h.Sk=function(t){throw ue(new Qr)},h.Tk=function(t){this.a=t},h.Uk=function(t){this.b=t},h.Vk=function(t){this.c=t},I(Gn,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1523),D(519,158,{110:1,94:1,93:1,598:1,155:1,58:1,114:1,54:1,99:1,519:1,158:1,119:1,120:1},CI),h.Ah=function(t){return dxe(this,t)},h.Lh=function(t,n,r){var a;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.d;case 2:return r?(!this.b&&(this.b=new dh((Tn(),No),Yc,this)),this.b):(!this.b&&(this.b=new dh((Tn(),No),Yc,this)),iN(this.b));case 3:return wot(this);case 4:return!this.a&&(this.a=new Ys(Xb,this,4)),this.a;case 5:return!this.c&&(this.c=new $5(Xb,this,5)),this.c}return sf(this,t-yr((Tn(),M2)),Mn((a=l(Kn(this,16),29),a||M2),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 3:return this.Cb&&(r=(o=this.Db>>16,o>=0?dxe(this,r):this.Cb.Th(this,-1-o,null,r))),Z4e(this,l(t,155),r)}return f=l(Mn((a=l(Kn(this,16),29),a||(Tn(),M2)),n),69),f.wk().zk(this,Ku(this),n-yr((Tn(),M2)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 2:return!this.b&&(this.b=new dh((Tn(),No),Yc,this)),Uq(this.b,t,r);case 3:return Z4e(this,null,r);case 4:return!this.a&&(this.a=new Ys(Xb,this,4)),To(this.a,t,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),M2)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),M2)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return!!this.b&&this.b.f!=0;case 3:return!!wot(this);case 4:return!!this.a&&this.a.i!=0;case 5:return!!this.c&&this.c.i!=0}return nf(this,t-yr((Tn(),M2)),Mn((n=l(Kn(this,16),29),n||M2),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:Odn(this,ei(n));return;case 2:!this.b&&(this.b=new dh((Tn(),No),Yc,this)),_V(this.b,n);return;case 3:ibt(this,l(n,155));return;case 4:!this.a&&(this.a=new Ys(Xb,this,4)),$r(this.a),!this.a&&(this.a=new Ys(Xb,this,4)),As(this.a,l(n,16));return;case 5:!this.c&&(this.c=new $5(Xb,this,5)),$r(this.c),!this.c&&(this.c=new $5(Xb,this,5)),As(this.c,l(n,16));return}uf(this,t-yr((Tn(),M2)),Mn((r=l(Kn(this,16),29),r||M2),t),n)},h.ii=function(){return Tn(),M2},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:g7e(this,null);return;case 2:!this.b&&(this.b=new dh((Tn(),No),Yc,this)),this.b.c.$b();return;case 3:ibt(this,null);return;case 4:!this.a&&(this.a=new Ys(Xb,this,4)),$r(this.a);return;case 5:!this.c&&(this.c=new $5(Xb,this,5)),$r(this.c);return}cf(this,t-yr((Tn(),M2)),Mn((n=l(Kn(this,16),29),n||M2),t))},h.Ib=function(){return c1t(this)},h.d=null,I(Gn,"EAnnotationImpl",519),D(141,721,ASe,xl),h.Gi=function(t,n){Qln(this,t,l(n,44))},h.Wk=function(t,n){return Zfn(this,l(t,44),n)},h.$i=function(t){return l(l(this.c,71).$i(t),136)},h.Ii=function(){return l(this.c,71).Ii()},h.Ji=function(){return l(this.c,71).Ji()},h.Ki=function(t){return l(this.c,71).Ki(t)},h.Xk=function(t,n){return Uq(this,t,n)},h.Fk=function(t){return l(this.c,79).Fk(t)},h.ak=function(){},h.Qj=function(){return l(this.c,79).Qj()},h.ck=function(t,n,r){var a;return a=l(Ah(this.b).wi().si(this.b),136),a.Ci(t),a.Di(n),a.nd(r),a},h.dk=function(){return new kwe(this)},h.Wb=function(t){_V(this,t)},h.Gk=function(){l(this.c,79).Gk()},I(us,"EcoreEMap",141),D(165,141,ASe,dh),h._j=function(){var t,n,r,a,o,f;if(this.d==null){for(f=We(vPe,_Se,66,2*this.f+1,0,1),r=this.c.Kc();r.e!=r.i.gc();)n=l(r.Yj(),136),a=n.Bi(),o=(a&Ii)%f.length,t=f[o],!t&&(t=f[o]=new kwe(this)),t.Fc(n);this.d=f}},I(Gn,"EAnnotationImpl/1",165),D(292,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,481:1,54:1,99:1,158:1,292:1,119:1,120:1}),h.Lh=function(t,n,r){var a,o;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return pt(this.s);case 5:return pt(this.t);case 6:return Hn(),!!this.Jk();case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q}return sf(this,t-yr(this.ii()),Mn((a=l(Kn(this,16),29),a||this.ii()),t),n,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 9:return qae(this,r)}return o=l(Mn((a=l(Kn(this,16),29),a||this.ii()),n),69),o.wk().Ak(this,Ku(this),n-yr(this.ii()),t,r)},h.Wh=function(t){var n,r;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&yw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&yw(this.q).i==0)}return nf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.bi=function(t,n){var r,a;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:this.ui(ei(n));return;case 2:c2(this,Rt(Bt(n)));return;case 3:u2(this,Rt(Bt(n)));return;case 4:i2(this,l(n,17).a);return;case 5:this.Zk(l(n,17).a);return;case 8:Gm(this,l(n,142));return;case 9:a=$1(this,l(n,89),null),a&&a.oj();return}uf(this,t-yr(this.ii()),Mn((r=l(Kn(this,16),29),r||this.ii()),t),n)},h.ii=function(){return Tn(),K_t},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:this.ui(null);return;case 2:c2(this,!0);return;case 3:u2(this,!0);return;case 4:i2(this,0);return;case 5:this.Zk(1);return;case 8:Gm(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return}cf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.pi=function(){Of(this),this.Bb|=1},h.Hk=function(){return Of(this)},h.Ik=function(){return this.t},h.Jk=function(){var t;return t=this.t,t>1||t==-1},h.Si=function(){return(this.Bb&512)!=0},h.Yk=function(t,n){return o8e(this,t,n)},h.Zk=function(t){My(this,t)},h.Ib=function(){return T9e(this)},h.s=0,h.t=1,I(Gn,"ETypedElementImpl",292),D(462,292,{110:1,94:1,93:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,462:1,292:1,119:1,120:1,692:1}),h.Ah=function(t){return Qdt(this,t)},h.Lh=function(t,n,r){var a,o;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return pt(this.s);case 5:return pt(this.t);case 6:return Hn(),!!this.Jk();case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return Hn(),!!(this.Bb&m0);case 11:return Hn(),!!(this.Bb&r4);case 12:return Hn(),!!(this.Bb&Xy);case 13:return this.j;case 14:return UE(this);case 15:return Hn(),!!(this.Bb&Sl);case 16:return Hn(),!!(this.Bb&_d);case 17:return ky(this)}return sf(this,t-yr(this.ii()),Mn((a=l(Kn(this,16),29),a||this.ii()),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 17:return this.Cb&&(r=(o=this.Db>>16,o>=0?Qdt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,17,r)}return f=l(Mn((a=l(Kn(this,16),29),a||this.ii()),n),69),f.wk().zk(this,Ku(this),n-yr(this.ii()),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 9:return qae(this,r);case 17:return Nh(this,null,17,r)}return o=l(Mn((a=l(Kn(this,16),29),a||this.ii()),n),69),o.wk().Ak(this,Ku(this),n-yr(this.ii()),t,r)},h.Wh=function(t){var n,r;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&yw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&yw(this.q).i==0);case 10:return(this.Bb&m0)==0;case 11:return(this.Bb&r4)!=0;case 12:return(this.Bb&Xy)!=0;case 13:return this.j!=null;case 14:return UE(this)!=null;case 15:return(this.Bb&Sl)!=0;case 16:return(this.Bb&_d)!=0;case 17:return!!ky(this)}return nf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.bi=function(t,n){var r,a;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:poe(this,ei(n));return;case 2:c2(this,Rt(Bt(n)));return;case 3:u2(this,Rt(Bt(n)));return;case 4:i2(this,l(n,17).a);return;case 5:this.Zk(l(n,17).a);return;case 8:Gm(this,l(n,142));return;case 9:a=$1(this,l(n,89),null),a&&a.oj();return;case 10:AE(this,Rt(Bt(n)));return;case 11:DE(this,Rt(Bt(n)));return;case 12:LE(this,Rt(Bt(n)));return;case 13:Z3e(this,ei(n));return;case 15:ME(this,Rt(Bt(n)));return;case 16:IE(this,Rt(Bt(n)));return}uf(this,t-yr(this.ii()),Mn((r=l(Kn(this,16),29),r||this.ii()),t),n)},h.ii=function(){return Tn(),G_t},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,90)&&zy(Yl(l(this.Cb,90)),4),Fu(this,null);return;case 2:c2(this,!0);return;case 3:u2(this,!0);return;case 4:i2(this,0);return;case 5:this.Zk(1);return;case 8:Gm(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return;case 10:AE(this,!0);return;case 11:DE(this,!1);return;case 12:LE(this,!1);return;case 13:this.i=null,xV(this,null);return;case 15:ME(this,!1);return;case 16:IE(this,!1);return}cf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.pi=function(){Wk(ic((El(),io),this)),Of(this),this.Bb|=1},h.pk=function(){return this.f},h.ik=function(){return UE(this)},h.qk=function(){return ky(this)},h.uk=function(){return null},h.$k=function(){return this.k},h.Lj=function(){return this.n},h.vk=function(){return pU(this)},h.wk=function(){var t,n,r,a,o,f,g,w,E;return this.p||(r=ky(this),(r.i==null&&Sd(r),r.i).length,a=this.uk(),a&&yr(ky(a)),o=Of(this),g=o.kk(),t=g?g.i&1?g==ih?Ns:g==Vr?ro:g==B4?_T:g==Na?ta:g==nm?r3:g==h7?i3:g==Al?jx:PL:g:null,n=UE(this),w=o.ik(),K4n(this),this.Bb&_d&&((f=yxe((El(),io),r))&&f!=this||(f=rx(ic(io,this))))?this.p=new Ntt(this,f):this.Jk()?this.al()?a?this.Bb&Sl?t?this.bl()?this.p=new Om(47,t,this,a):this.p=new Om(5,t,this,a):this.bl()?this.p=new Rm(46,this,a):this.p=new Rm(4,this,a):t?this.bl()?this.p=new Om(49,t,this,a):this.p=new Om(7,t,this,a):this.bl()?this.p=new Rm(48,this,a):this.p=new Rm(6,this,a):this.Bb&Sl?t?t==uv?this.p=new Xp(50,A_t,this):this.bl()?this.p=new Xp(43,t,this):this.p=new Xp(1,t,this):this.bl()?this.p=new Jp(42,this):this.p=new Jp(0,this):t?t==uv?this.p=new Xp(41,A_t,this):this.bl()?this.p=new Xp(45,t,this):this.p=new Xp(3,t,this):this.bl()?this.p=new Jp(44,this):this.p=new Jp(2,this):De(o,156)?t==CY?this.p=new Jp(40,this):this.Bb&512?this.Bb&Sl?t?this.p=new Xp(9,t,this):this.p=new Jp(8,this):t?this.p=new Xp(11,t,this):this.p=new Jp(10,this):this.Bb&Sl?t?this.p=new Xp(13,t,this):this.p=new Jp(12,this):t?this.p=new Xp(15,t,this):this.p=new Jp(14,this):a?(E=a.t,E>1||E==-1?this.bl()?this.Bb&Sl?t?this.p=new Om(25,t,this,a):this.p=new Rm(24,this,a):t?this.p=new Om(27,t,this,a):this.p=new Rm(26,this,a):this.Bb&Sl?t?this.p=new Om(29,t,this,a):this.p=new Rm(28,this,a):t?this.p=new Om(31,t,this,a):this.p=new Rm(30,this,a):this.bl()?this.Bb&Sl?t?this.p=new Om(33,t,this,a):this.p=new Rm(32,this,a):t?this.p=new Om(35,t,this,a):this.p=new Rm(34,this,a):this.Bb&Sl?t?this.p=new Om(37,t,this,a):this.p=new Rm(36,this,a):t?this.p=new Om(39,t,this,a):this.p=new Rm(38,this,a)):this.bl()?this.Bb&Sl?t?this.p=new Xp(17,t,this):this.p=new Jp(16,this):t?this.p=new Xp(19,t,this):this.p=new Jp(18,this):this.Bb&Sl?t?this.p=new Xp(21,t,this):this.p=new Jp(20,this):t?this.p=new Xp(23,t,this):this.p=new Jp(22,this):this._k()?this.bl()?this.p=new kit(l(o,29),this,a):this.p=new $5e(l(o,29),this,a):De(o,156)?t==CY?this.p=new Jp(40,this):this.Bb&Sl?t?this.p=new xst(n,w,this,(Wce(),g==Vr?PPe:g==ih?MPe:g==nm?BPe:g==B4?NPe:g==Na?OPe:g==h7?FPe:g==Al?DPe:g==kf?IPe:ipe)):this.p=new Nat(l(o,156),n,w,this):t?this.p=new yst(n,w,this,(Wce(),g==Vr?PPe:g==ih?MPe:g==nm?BPe:g==B4?NPe:g==Na?OPe:g==h7?FPe:g==Al?DPe:g==kf?IPe:ipe)):this.p=new Oat(l(o,156),n,w,this):this.al()?a?this.Bb&Sl?this.bl()?this.p=new Tit(l(o,29),this,a):this.p=new C4e(l(o,29),this,a):this.bl()?this.p=new Eit(l(o,29),this,a):this.p=new yae(l(o,29),this,a):this.Bb&Sl?this.bl()?this.p=new yrt(l(o,29),this):this.p=new jye(l(o,29),this):this.bl()?this.p=new wrt(l(o,29),this):this.p=new oae(l(o,29),this):this.bl()?a?this.Bb&Sl?this.p=new Cit(l(o,29),this,a):this.p=new E4e(l(o,29),this,a):this.Bb&Sl?this.p=new xrt(l(o,29),this):this.p=new $ye(l(o,29),this):a?this.Bb&Sl?this.p=new Sit(l(o,29),this,a):this.p=new T4e(l(o,29),this,a):this.Bb&Sl?this.p=new krt(l(o,29),this):this.p=new cH(l(o,29),this)),this.p},h.rk=function(){return(this.Bb&m0)!=0},h._k=function(){return!1},h.al=function(){return!1},h.sk=function(){return(this.Bb&_d)!=0},h.xk=function(){return Voe(this)},h.bl=function(){return!1},h.tk=function(){return(this.Bb&Sl)!=0},h.cl=function(t){this.k=t},h.ui=function(t){poe(this,t)},h.Ib=function(){return BU(this)},h.e=!1,h.n=0,I(Gn,"EStructuralFeatureImpl",462),D(331,462,{110:1,94:1,93:1,35:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,331:1,158:1,462:1,292:1,119:1,120:1,692:1},zie),h.Lh=function(t,n,r){var a,o;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return pt(this.s);case 5:return pt(this.t);case 6:return Hn(),!!v9e(this);case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return Hn(),!!(this.Bb&m0);case 11:return Hn(),!!(this.Bb&r4);case 12:return Hn(),!!(this.Bb&Xy);case 13:return this.j;case 14:return UE(this);case 15:return Hn(),!!(this.Bb&Sl);case 16:return Hn(),!!(this.Bb&_d);case 17:return ky(this);case 18:return Hn(),!!(this.Bb&eu);case 19:return n?gce(this):Fut(this)}return sf(this,t-yr((Tn(),O4)),Mn((a=l(Kn(this,16),29),a||O4),t),n,r)},h.Wh=function(t){var n,r;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return v9e(this);case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&yw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&yw(this.q).i==0);case 10:return(this.Bb&m0)==0;case 11:return(this.Bb&r4)!=0;case 12:return(this.Bb&Xy)!=0;case 13:return this.j!=null;case 14:return UE(this)!=null;case 15:return(this.Bb&Sl)!=0;case 16:return(this.Bb&_d)!=0;case 17:return!!ky(this);case 18:return(this.Bb&eu)!=0;case 19:return!!Fut(this)}return nf(this,t-yr((Tn(),O4)),Mn((n=l(Kn(this,16),29),n||O4),t))},h.bi=function(t,n){var r,a;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:poe(this,ei(n));return;case 2:c2(this,Rt(Bt(n)));return;case 3:u2(this,Rt(Bt(n)));return;case 4:i2(this,l(n,17).a);return;case 5:JJe(this,l(n,17).a);return;case 8:Gm(this,l(n,142));return;case 9:a=$1(this,l(n,89),null),a&&a.oj();return;case 10:AE(this,Rt(Bt(n)));return;case 11:DE(this,Rt(Bt(n)));return;case 12:LE(this,Rt(Bt(n)));return;case 13:Z3e(this,ei(n));return;case 15:ME(this,Rt(Bt(n)));return;case 16:IE(this,Rt(Bt(n)));return;case 18:$ce(this,Rt(Bt(n)));return}uf(this,t-yr((Tn(),O4)),Mn((r=l(Kn(this,16),29),r||O4),t),n)},h.ii=function(){return Tn(),O4},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,90)&&zy(Yl(l(this.Cb,90)),4),Fu(this,null);return;case 2:c2(this,!0);return;case 3:u2(this,!0);return;case 4:i2(this,0);return;case 5:this.b=0,My(this,1);return;case 8:Gm(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return;case 10:AE(this,!0);return;case 11:DE(this,!1);return;case 12:LE(this,!1);return;case 13:this.i=null,xV(this,null);return;case 15:ME(this,!1);return;case 16:IE(this,!1);return;case 18:$ce(this,!1);return}cf(this,t-yr((Tn(),O4)),Mn((n=l(Kn(this,16),29),n||O4),t))},h.pi=function(){gce(this),Wk(ic((El(),io),this)),Of(this),this.Bb|=1},h.Jk=function(){return v9e(this)},h.Yk=function(t,n){return this.b=0,this.a=null,o8e(this,t,n)},h.Zk=function(t){JJe(this,t)},h.Ib=function(){var t;return this.Db&64?BU(this):(t=new Af(BU(this)),t.a+=" (iD: ",Gp(t,(this.Bb&eu)!=0),t.a+=")",t.a)},h.b=0,I(Gn,"EAttributeImpl",331),D(364,448,{110:1,94:1,93:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,364:1,158:1,119:1,120:1,691:1}),h.dl=function(t){return t.Dh()==this},h.Ah=function(t){return wue(this,t)},h.Bh=function(t,n){this.w=null,this.Db=n<<16|this.Db&255,this.Cb=t},h.Lh=function(t,n,r){var a;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return zw(this);case 4:return this.ik();case 5:return this.F;case 6:return n?Ah(this):Qk(this);case 7:return!this.A&&(this.A=new ml(Zu,this,7)),this.A}return sf(this,t-yr(this.ii()),Mn((a=l(Kn(this,16),29),a||this.ii()),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?wue(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,6,r)}return f=l(Mn((a=l(Kn(this,16),29),a||this.ii()),n),69),f.wk().zk(this,Ku(this),n-yr(this.ii()),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 6:return Nh(this,null,6,r);case 7:return!this.A&&(this.A=new ml(Zu,this,7)),To(this.A,t,r)}return o=l(Mn((a=l(Kn(this,16),29),a||this.ii()),n),69),o.wk().Ak(this,Ku(this),n-yr(this.ii()),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!zw(this);case 4:return this.ik()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!Qk(this);case 7:return!!this.A&&this.A.i!=0}return nf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:FH(this,ei(n));return;case 2:Kse(this,ei(n));return;case 5:JE(this,ei(n));return;case 7:!this.A&&(this.A=new ml(Zu,this,7)),$r(this.A),!this.A&&(this.A=new ml(Zu,this,7)),As(this.A,l(n,16));return}uf(this,t-yr(this.ii()),Mn((r=l(Kn(this,16),29),r||this.ii()),t),n)},h.ii=function(){return Tn(),$_t},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,184)&&(l(this.Cb,184).tb=null),Fu(this,null);return;case 2:CE(this,null),lE(this,this.D);return;case 5:JE(this,null);return;case 7:!this.A&&(this.A=new ml(Zu,this,7)),$r(this.A);return}cf(this,t-yr(this.ii()),Mn((n=l(Kn(this,16),29),n||this.ii()),t))},h.hk=function(){var t;return this.G==-1&&(this.G=(t=Ah(this),t?f2(t.vi(),this):-1)),this.G},h.ik=function(){return null},h.jk=function(){return Ah(this)},h.el=function(){return this.v},h.kk=function(){return zw(this)},h.lk=function(){return this.D!=null?this.D:this.B},h.mk=function(){return this.F},h.fk=function(t){return ule(this,t)},h.fl=function(t){this.v=t},h.gl=function(t){xft(this,t)},h.hl=function(t){this.C=t},h.ui=function(t){FH(this,t)},h.Ib=function(){return UV(this)},h.C=null,h.D=null,h.G=-1,I(Gn,"EClassifierImpl",364),D(90,364,{110:1,94:1,93:1,29:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,90:1,364:1,158:1,482:1,119:1,120:1,691:1},hz),h.dl=function(t){return Bfn(this,t.Dh())},h.Lh=function(t,n,r){var a;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return zw(this);case 4:return null;case 5:return this.F;case 6:return n?Ah(this):Qk(this);case 7:return!this.A&&(this.A=new ml(Zu,this,7)),this.A;case 8:return Hn(),!!(this.Bb&256);case 9:return Hn(),!!(this.Bb&512);case 10:return dc(this);case 11:return!this.q&&(this.q=new nt(Uf,this,11,10)),this.q;case 12:return d6(this);case 13:return JA(this);case 14:return JA(this),this.r;case 15:return d6(this),this.k;case 16:return o9e(this);case 17:return dle(this);case 18:return Sd(this);case 19:return _U(this);case 20:return d6(this),this.o;case 21:return!this.s&&(this.s=new nt(dl,this,21,17)),this.s;case 22:return du(this);case 23:return Zue(this)}return sf(this,t-yr((Tn(),Jb)),Mn((a=l(Kn(this,16),29),a||Jb),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?wue(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,6,r);case 11:return!this.q&&(this.q=new nt(Uf,this,11,10)),Ru(this.q,t,r);case 21:return!this.s&&(this.s=new nt(dl,this,21,17)),Ru(this.s,t,r)}return f=l(Mn((a=l(Kn(this,16),29),a||(Tn(),Jb)),n),69),f.wk().zk(this,Ku(this),n-yr((Tn(),Jb)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 6:return Nh(this,null,6,r);case 7:return!this.A&&(this.A=new ml(Zu,this,7)),To(this.A,t,r);case 11:return!this.q&&(this.q=new nt(Uf,this,11,10)),To(this.q,t,r);case 21:return!this.s&&(this.s=new nt(dl,this,21,17)),To(this.s,t,r);case 22:return To(du(this),t,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),Jb)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),Jb)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!zw(this);case 4:return!1;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!Qk(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)!=0;case 9:return(this.Bb&512)!=0;case 10:return!!this.u&&du(this.u.a).i!=0&&!(this.n&&cue(this.n));case 11:return!!this.q&&this.q.i!=0;case 12:return d6(this).i!=0;case 13:return JA(this).i!=0;case 14:return JA(this),this.r.i!=0;case 15:return d6(this),this.k.i!=0;case 16:return o9e(this).i!=0;case 17:return dle(this).i!=0;case 18:return Sd(this).i!=0;case 19:return _U(this).i!=0;case 20:return d6(this),!!this.o;case 21:return!!this.s&&this.s.i!=0;case 22:return!!this.n&&cue(this.n);case 23:return Zue(this).i!=0}return nf(this,t-yr((Tn(),Jb)),Mn((n=l(Kn(this,16),29),n||Jb),t))},h.Zh=function(t){var n;return n=this.i==null||this.q&&this.q.i!=0?null:oP(this,t),n||Hke(this,t)},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:FH(this,ei(n));return;case 2:Kse(this,ei(n));return;case 5:JE(this,ei(n));return;case 7:!this.A&&(this.A=new ml(Zu,this,7)),$r(this.A),!this.A&&(this.A=new ml(Zu,this,7)),As(this.A,l(n,16));return;case 8:c8e(this,Rt(Bt(n)));return;case 9:u8e(this,Rt(Bt(n)));return;case 10:tL(dc(this)),As(dc(this),l(n,16));return;case 11:!this.q&&(this.q=new nt(Uf,this,11,10)),$r(this.q),!this.q&&(this.q=new nt(Uf,this,11,10)),As(this.q,l(n,16));return;case 21:!this.s&&(this.s=new nt(dl,this,21,17)),$r(this.s),!this.s&&(this.s=new nt(dl,this,21,17)),As(this.s,l(n,16));return;case 22:$r(du(this)),As(du(this),l(n,16));return}uf(this,t-yr((Tn(),Jb)),Mn((r=l(Kn(this,16),29),r||Jb),t),n)},h.ii=function(){return Tn(),Jb},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,184)&&(l(this.Cb,184).tb=null),Fu(this,null);return;case 2:CE(this,null),lE(this,this.D);return;case 5:JE(this,null);return;case 7:!this.A&&(this.A=new ml(Zu,this,7)),$r(this.A);return;case 8:c8e(this,!1);return;case 9:u8e(this,!1);return;case 10:this.u&&tL(this.u);return;case 11:!this.q&&(this.q=new nt(Uf,this,11,10)),$r(this.q);return;case 21:!this.s&&(this.s=new nt(dl,this,21,17)),$r(this.s);return;case 22:this.n&&$r(this.n);return}cf(this,t-yr((Tn(),Jb)),Mn((n=l(Kn(this,16),29),n||Jb),t))},h.pi=function(){var t,n;if(d6(this),JA(this),o9e(this),dle(this),Sd(this),_U(this),Zue(this),uA(cdn(Yl(this))),this.s)for(t=0,n=this.s.i;t=0;--n)Oe(this,n);return O8e(this,t)},h.Gk=function(){$r(this)},h.Zi=function(t,n){return Hht(this,t,n)},I(us,"EcoreEList",632),D(505,632,kc,FO),h.Li=function(){return!1},h.Lj=function(){return this.c},h.Mj=function(){return!1},h.ol=function(){return!0},h.Si=function(){return!0},h.Wi=function(t,n){return n},h.Yi=function(){return!1},h.c=0,I(us,"EObjectEList",505),D(83,505,kc,Ys),h.Mj=function(){return!0},h.ml=function(){return!1},h.al=function(){return!0},I(us,"EObjectContainmentEList",83),D(555,83,kc,Bq),h.Ni=function(){this.b=!0},h.Qj=function(){return this.b},h.Gk=function(){var t;$r(this),hh(this.e)?(t=this.b,this.b=!1,Ni(this.e,new h0(this.e,2,this.c,t,!1))):this.b=!1},h.b=!1,I(us,"EObjectContainmentEList/Unsettable",555),D(1161,555,kc,vst),h.Ti=function(t,n){var r,a;return r=l(AA(this,t,n),89),hh(this.e)&&xk(this,new sN(this.a,7,(Tn(),z_t),pt(n),(a=r.c,De(a,90)?l(a,29):Kf),t)),r},h.Uj=function(t,n){return L5n(this,l(t,89),n)},h.Vj=function(t,n){return A5n(this,l(t,89),n)},h.Wj=function(t,n,r){return I8n(this,l(t,89),l(n,89),r)},h.Ij=function(t,n,r,a,o){switch(t){case 3:return rA(this,t,n,r,a,this.i>1);case 5:return rA(this,t,n,r,a,this.i-l(r,15).gc()>0);default:return new Zg(this.e,t,this.c,n,r,a,!0)}},h.Tj=function(){return!0},h.Qj=function(){return cue(this)},h.Gk=function(){$r(this)},I(Gn,"EClassImpl/1",1161),D(1175,1174,SSe),h.dj=function(t){var n,r,a,o,f,g,w;if(r=t.gj(),r!=8){if(a=l6n(t),a==0)switch(r){case 1:case 9:{w=t.kj(),w!=null&&(n=Yl(l(w,482)),!n.c&&(n.c=new Xd),sV(n.c,t.jj())),g=t.ij(),g!=null&&(o=l(g,482),o.Bb&1||(n=Yl(o),!n.c&&(n.c=new Xd),qr(n.c,l(t.jj(),29))));break}case 3:{g=t.ij(),g!=null&&(o=l(g,482),o.Bb&1||(n=Yl(o),!n.c&&(n.c=new Xd),qr(n.c,l(t.jj(),29))));break}case 5:{if(g=t.ij(),g!=null)for(f=l(g,16).Kc();f.Ob();)o=l(f.Pb(),482),o.Bb&1||(n=Yl(o),!n.c&&(n.c=new Xd),qr(n.c,l(t.jj(),29)));break}case 4:{w=t.kj(),w!=null&&(o=l(w,482),o.Bb&1||(n=Yl(o),!n.c&&(n.c=new Xd),sV(n.c,t.jj())));break}case 6:{if(w=t.kj(),w!=null)for(f=l(w,16).Kc();f.Ob();)o=l(f.Pb(),482),o.Bb&1||(n=Yl(o),!n.c&&(n.c=new Xd),sV(n.c,t.jj()));break}}this.ql(a)}},h.ql=function(t){Vbt(this,t)},h.b=63,I(Gn,"ESuperAdapter",1175),D(1176,1175,SSe,bQe),h.ql=function(t){zy(this,t)},I(Gn,"EClassImpl/10",1176),D(1165,710,kc),h.Ei=function(t,n){return Due(this,t,n)},h.Fi=function(t){return Odt(this,t)},h.Gi=function(t,n){IN(this,t,n)},h.Hi=function(t){tN(this,t)},h.$i=function(t){return R6e(this,t)},h.Xi=function(t,n){return Uoe(this,t,n)},h.Wk=function(t,n){throw ue(new Qr)},h.Ii=function(){return new H8(this)},h.Ji=function(){return new CO(this)},h.Ki=function(t){return mN(this,t)},h.Xk=function(t,n){throw ue(new Qr)},h.Fk=function(t){return this},h.Qj=function(){return this.i!=0},h.Wb=function(t){throw ue(new Qr)},h.Gk=function(){throw ue(new Qr)},I(us,"EcoreEList/UnmodifiableEList",1165),D(328,1165,kc,N5),h.Yi=function(){return!1},I(us,"EcoreEList/UnmodifiableEList/FastCompare",328),D(1168,328,kc,g0t),h.dd=function(t){var n,r,a;if(De(t,179)&&(n=l(t,179),r=n.Lj(),r!=-1)){for(a=this.i;r4)if(this.fk(t)){if(this.al()){if(a=l(t,54),r=a.Eh(),w=r==this.b&&(this.ml()?a.yh(a.Fh(),l(Mn(sl(this.b),this.Lj()).Hk(),29).kk())==Ro(l(Mn(sl(this.b),this.Lj()),19)).n:-1-a.Fh()==this.Lj()),this.nl()&&!w&&!r&&a.Jh()){for(o=0;o1||a==-1)):!1},h.ml=function(){var t,n,r;return n=Mn(sl(this.b),this.Lj()),De(n,102)?(t=l(n,19),r=Ro(t),!!r):!1},h.nl=function(){var t,n;return n=Mn(sl(this.b),this.Lj()),De(n,102)?(t=l(n,19),(t.Bb&Io)!=0):!1},h.dd=function(t){var n,r,a,o;if(a=this.zj(t),a>=0)return a;if(this.ol()){for(r=0,o=this.Ej();r=0;--t)mP(this,t,this.xj(t));return this.Fj()},h.Qc=function(t){var n;if(this.nl())for(n=this.Ej()-1;n>=0;--n)mP(this,n,this.xj(n));return this.Gj(t)},h.Gk=function(){tL(this)},h.Zi=function(t,n){return ylt(this,t,n)},I(us,"DelegatingEcoreEList",756),D(1171,756,MSe,Nrt),h.qj=function(t,n){afn(this,t,l(n,29))},h.rj=function(t){Wln(this,l(t,29))},h.xj=function(t){var n,r;return n=l(Oe(du(this.a),t),89),r=n.c,De(r,90)?l(r,29):(Tn(),Kf)},h.Cj=function(t){var n,r;return n=l(Vy(du(this.a),t),89),r=n.c,De(r,90)?l(r,29):(Tn(),Kf)},h.Dj=function(t,n){return r7n(this,t,l(n,29))},h.Li=function(){return!1},h.Ij=function(t,n,r,a,o){return null},h.sj=function(){return new wQe(this)},h.tj=function(){$r(du(this.a))},h.uj=function(t){return l1t(this,t)},h.vj=function(t){var n,r;for(r=t.Kc();r.Ob();)if(n=r.Pb(),!l1t(this,n))return!1;return!0},h.wj=function(t){var n,r,a;if(De(t,15)&&(a=l(t,15),a.gc()==du(this.a).i)){for(n=a.Kc(),r=new or(this);n.Ob();)if(qe(n.Pb())!==qe(gr(r)))return!1;return!0}return!1},h.yj=function(){var t,n,r,a,o;for(r=1,n=new or(du(this.a));n.e!=n.i.gc();)t=l(gr(n),89),a=(o=t.c,De(o,90)?l(o,29):(Tn(),Kf)),r=31*r+(a?fw(a):0);return r},h.zj=function(t){var n,r,a,o;for(a=0,r=new or(du(this.a));r.e!=r.i.gc();){if(n=l(gr(r),89),qe(t)===qe((o=n.c,De(o,90)?l(o,29):(Tn(),Kf))))return a;++a}return-1},h.Aj=function(){return du(this.a).i==0},h.Bj=function(){return null},h.Ej=function(){return du(this.a).i},h.Fj=function(){var t,n,r,a,o,f;for(f=du(this.a).i,o=We(wa,Rn,1,f,5,1),r=0,n=new or(du(this.a));n.e!=n.i.gc();)t=l(gr(n),89),o[r++]=(a=t.c,De(a,90)?l(a,29):(Tn(),Kf));return o},h.Gj=function(t){var n,r,a,o,f,g,w;for(w=du(this.a).i,t.lengthw&&Ts(t,w,null),a=0,r=new or(du(this.a));r.e!=r.i.gc();)n=l(gr(r),89),f=(g=n.c,De(g,90)?l(g,29):(Tn(),Kf)),Ts(t,a++,f);return t},h.Hj=function(){var t,n,r,a,o;for(o=new Up,o.a+="[",t=du(this.a),n=0,a=du(this.a).i;n>16,o>=0?wue(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,6,r);case 9:return!this.a&&(this.a=new nt(wp,this,9,5)),Ru(this.a,t,r)}return f=l(Mn((a=l(Kn(this,16),29),a||(Tn(),Zb)),n),69),f.wk().zk(this,Ku(this),n-yr((Tn(),Zb)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 6:return Nh(this,null,6,r);case 7:return!this.A&&(this.A=new ml(Zu,this,7)),To(this.A,t,r);case 9:return!this.a&&(this.a=new nt(wp,this,9,5)),To(this.a,t,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),Zb)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),Zb)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!zw(this);case 4:return!!X7e(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!Qk(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)==0;case 9:return!!this.a&&this.a.i!=0}return nf(this,t-yr((Tn(),Zb)),Mn((n=l(Kn(this,16),29),n||Zb),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:FH(this,ei(n));return;case 2:Kse(this,ei(n));return;case 5:JE(this,ei(n));return;case 7:!this.A&&(this.A=new ml(Zu,this,7)),$r(this.A),!this.A&&(this.A=new ml(Zu,this,7)),As(this.A,l(n,16));return;case 8:jV(this,Rt(Bt(n)));return;case 9:!this.a&&(this.a=new nt(wp,this,9,5)),$r(this.a),!this.a&&(this.a=new nt(wp,this,9,5)),As(this.a,l(n,16));return}uf(this,t-yr((Tn(),Zb)),Mn((r=l(Kn(this,16),29),r||Zb),t),n)},h.ii=function(){return Tn(),Zb},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,184)&&(l(this.Cb,184).tb=null),Fu(this,null);return;case 2:CE(this,null),lE(this,this.D);return;case 5:JE(this,null);return;case 7:!this.A&&(this.A=new ml(Zu,this,7)),$r(this.A);return;case 8:jV(this,!0);return;case 9:!this.a&&(this.a=new nt(wp,this,9,5)),$r(this.a);return}cf(this,t-yr((Tn(),Zb)),Mn((n=l(Kn(this,16),29),n||Zb),t))},h.pi=function(){var t,n;if(this.a)for(t=0,n=this.a.i;t>16==5?l(this.Cb,685):null}return sf(this,t-yr((Tn(),D2)),Mn((a=l(Kn(this,16),29),a||D2),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 5:return this.Cb&&(r=(o=this.Db>>16,o>=0?agt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,5,r)}return f=l(Mn((a=l(Kn(this,16),29),a||(Tn(),D2)),n),69),f.wk().zk(this,Ku(this),n-yr((Tn(),D2)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 5:return Nh(this,null,5,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),D2)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),D2)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return!!this.b;case 4:return this.c!=null;case 5:return!!(this.Db>>16==5&&l(this.Cb,685))}return nf(this,t-yr((Tn(),D2)),Mn((n=l(Kn(this,16),29),n||D2),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:Fu(this,ei(n));return;case 2:Qoe(this,l(n,17).a);return;case 3:r2t(this,l(n,2039));return;case 4:Zoe(this,ei(n));return}uf(this,t-yr((Tn(),D2)),Mn((r=l(Kn(this,16),29),r||D2),t),n)},h.ii=function(){return Tn(),D2},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:Fu(this,null);return;case 2:Qoe(this,0);return;case 3:r2t(this,null);return;case 4:Zoe(this,null);return}cf(this,t-yr((Tn(),D2)),Mn((n=l(Kn(this,16),29),n||D2),t))},h.Ib=function(){var t;return t=this.c,t??this.zb},h.b=null,h.c=null,h.d=0,I(Gn,"EEnumLiteralImpl",582);var POn=ks(Gn,"EFactoryImpl/InternalEDateTimeFormat");D(499,1,{2114:1},KI),I(Gn,"EFactoryImpl/1ClientInternalEDateTimeFormat",499),D(248,120,{110:1,94:1,93:1,89:1,58:1,114:1,54:1,99:1,248:1,119:1,120:1},Qv),h.Ch=function(t,n,r){var a;return r=Nh(this,t,n,r),this.e&&De(t,179)&&(a=SU(this,this.e),a!=this.c&&(r=ZE(this,a,r))),r},h.Lh=function(t,n,r){var a;switch(t){case 0:return this.f;case 1:return!this.d&&(this.d=new Ys(Wo,this,1)),this.d;case 2:return n?jU(this):this.c;case 3:return this.b;case 4:return this.e;case 5:return n?hue(this):this.a}return sf(this,t-yr((Tn(),E3)),Mn((a=l(Kn(this,16),29),a||E3),t),n,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return Q0t(this,null,r);case 1:return!this.d&&(this.d=new Ys(Wo,this,1)),To(this.d,t,r);case 3:return J0t(this,null,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),E3)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),E3)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.f;case 1:return!!this.d&&this.d.i!=0;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return nf(this,t-yr((Tn(),E3)),Mn((n=l(Kn(this,16),29),n||E3),t))},h.bi=function(t,n){var r;switch(t){case 0:Cgt(this,l(n,89));return;case 1:!this.d&&(this.d=new Ys(Wo,this,1)),$r(this.d),!this.d&&(this.d=new Ys(Wo,this,1)),As(this.d,l(n,16));return;case 3:Axe(this,l(n,89));return;case 4:Kxe(this,l(n,850));return;case 5:sE(this,l(n,142));return}uf(this,t-yr((Tn(),E3)),Mn((r=l(Kn(this,16),29),r||E3),t),n)},h.ii=function(){return Tn(),E3},h.ki=function(t){var n;switch(t){case 0:Cgt(this,null);return;case 1:!this.d&&(this.d=new Ys(Wo,this,1)),$r(this.d);return;case 3:Axe(this,null);return;case 4:Kxe(this,null);return;case 5:sE(this,null);return}cf(this,t-yr((Tn(),E3)),Mn((n=l(Kn(this,16),29),n||E3),t))},h.Ib=function(){var t;return t=new Th(g0(this)),t.a+=" (expression: ",wle(this,t),t.a+=")",t.a};var LPe;I(Gn,"EGenericTypeImpl",248),D(2067,2062,KG),h.Gi=function(t,n){Drt(this,t,n)},h.Wk=function(t,n){return Drt(this,this.gc(),t),n},h.$i=function(t){return ff(this.pj(),t)},h.Ii=function(){return this.Ji()},h.pj=function(){return new EQe(this)},h.Ji=function(){return this.Ki(0)},h.Ki=function(t){return this.pj().fd(t)},h.Xk=function(t,n){return Ny(this,t,!0),n},h.Ti=function(t,n){var r,a;return a=kue(this,n),r=this.fd(t),r.Rb(a),a},h.Ui=function(t,n){var r;Ny(this,n,!0),r=this.fd(t),r.Rb(n)},I(us,"AbstractSequentialInternalEList",2067),D(496,2067,KG,TO),h.$i=function(t){return ff(this.pj(),t)},h.Ii=function(){return this.b==null?(Wp(),Wp(),dF):this.sl()},h.pj=function(){return new Xtt(this.a,this.b)},h.Ji=function(){return this.b==null?(Wp(),Wp(),dF):this.sl()},h.Ki=function(t){var n,r;if(this.b==null){if(t<0||t>1)throw ue(new tc(CL+t+", size=0"));return Wp(),Wp(),dF}for(r=this.sl(),n=0;n0;)if(n=this.c[--this.d],(!this.e||n.pk()!=oC||n.Lj()!=0)&&(!this.vl()||this.b.Xh(n))){if(f=this.b.Nh(n,this.ul()),this.f=(Fo(),l(n,69).xk()),this.f||n.Jk()){if(this.ul()?(a=l(f,15),this.k=a):(a=l(f,71),this.k=this.j=a),De(this.k,59)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j.Ki(this.k.gc()):this.k.fd(this.k.gc()),this.p?wpt(this,this.p):Mpt(this))return o=this.p?this.p.Ub():this.j?this.j.$i(--this.n):this.k.Xb(--this.n),this.f?(t=l(o,76),t.Lk(),r=t.md(),this.i=r):(r=o,this.i=r),this.g=-3,!0}else if(f!=null)return this.k=null,this.p=null,r=f,this.i=r,this.g=-2,!0}return this.k=null,this.p=null,this.g=-1,!1}else return o=this.p?this.p.Ub():this.j?this.j.$i(--this.n):this.k.Xb(--this.n),this.f?(t=l(o,76),t.Lk(),r=t.md(),this.i=r):(r=o,this.i=r),this.g=-3,!0}},h.Pb=function(){return MV(this)},h.Tb=function(){return this.a},h.Ub=function(){var t;if(this.g<-1||this.Sb())return--this.a,this.g=0,t=this.i,this.Sb(),t;throw ue(new _c)},h.Vb=function(){return this.a-1},h.Qb=function(){throw ue(new Qr)},h.ul=function(){return!1},h.Wb=function(t){throw ue(new Qr)},h.vl=function(){return!0},h.a=0,h.d=0,h.f=!1,h.g=0,h.n=0,h.o=0;var dF;I(us,"EContentsEList/FeatureIteratorImpl",287),D(711,287,WG,Rye),h.ul=function(){return!0},I(us,"EContentsEList/ResolvingFeatureIteratorImpl",711),D(1178,711,WG,brt),h.vl=function(){return!1},I(Gn,"ENamedElementImpl/1/1",1178),D(1179,287,WG,mrt),h.vl=function(){return!1},I(Gn,"ENamedElementImpl/1/2",1179),D(39,152,YP,Cy,koe,_a,Foe,Zg,h0,Q6e,Xot,J6e,Qot,p6e,Jot,t7e,Zot,b6e,ect,Z6e,tct,X_,sN,roe,e7e,nct,m6e,rct),h.Kj=function(){return N6e(this)},h.Rj=function(){var t;return t=N6e(this),t?t.ik():null},h.hj=function(t){return this.b==-1&&this.a&&(this.b=this.c.Hh(this.a.Lj(),this.a.pk())),this.c.yh(this.b,t)},h.jj=function(){return this.c},h.Sj=function(){var t;return t=N6e(this),t?t.tk():!1},h.b=-1,I(Gn,"ENotificationImpl",39),D(411,292,{110:1,94:1,93:1,155:1,197:1,58:1,62:1,114:1,481:1,54:1,99:1,158:1,411:1,292:1,119:1,120:1},qie),h.Ah=function(t){return ugt(this,t)},h.Lh=function(t,n,r){var a,o,f;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return pt(this.s);case 5:return pt(this.t);case 6:return Hn(),f=this.t,f>1||f==-1;case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?l(this.Cb,29):null;case 11:return!this.d&&(this.d=new ml(Zu,this,11)),this.d;case 12:return!this.c&&(this.c=new nt(k3,this,12,10)),this.c;case 13:return!this.a&&(this.a=new LO(this,this)),this.a;case 14:return Xl(this)}return sf(this,t-yr((Tn(),I2)),Mn((a=l(Kn(this,16),29),a||I2),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 10:return this.Cb&&(r=(o=this.Db>>16,o>=0?ugt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,10,r);case 12:return!this.c&&(this.c=new nt(k3,this,12,10)),Ru(this.c,t,r)}return f=l(Mn((a=l(Kn(this,16),29),a||(Tn(),I2)),n),69),f.wk().zk(this,Ku(this),n-yr((Tn(),I2)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 9:return qae(this,r);case 10:return Nh(this,null,10,r);case 11:return!this.d&&(this.d=new ml(Zu,this,11)),To(this.d,t,r);case 12:return!this.c&&(this.c=new nt(k3,this,12,10)),To(this.c,t,r);case 14:return To(Xl(this),t,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),I2)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),I2)),t,r)},h.Wh=function(t){var n,r,a;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return a=this.t,a>1||a==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&yw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&yw(this.q).i==0);case 10:return!!(this.Db>>16==10&&l(this.Cb,29));case 11:return!!this.d&&this.d.i!=0;case 12:return!!this.c&&this.c.i!=0;case 13:return!!this.a&&Xl(this.a.a).i!=0&&!(this.b&&uue(this.b));case 14:return!!this.b&&uue(this.b)}return nf(this,t-yr((Tn(),I2)),Mn((n=l(Kn(this,16),29),n||I2),t))},h.bi=function(t,n){var r,a;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:Fu(this,ei(n));return;case 2:c2(this,Rt(Bt(n)));return;case 3:u2(this,Rt(Bt(n)));return;case 4:i2(this,l(n,17).a);return;case 5:My(this,l(n,17).a);return;case 8:Gm(this,l(n,142));return;case 9:a=$1(this,l(n,89),null),a&&a.oj();return;case 11:!this.d&&(this.d=new ml(Zu,this,11)),$r(this.d),!this.d&&(this.d=new ml(Zu,this,11)),As(this.d,l(n,16));return;case 12:!this.c&&(this.c=new nt(k3,this,12,10)),$r(this.c),!this.c&&(this.c=new nt(k3,this,12,10)),As(this.c,l(n,16));return;case 13:!this.a&&(this.a=new LO(this,this)),tL(this.a),!this.a&&(this.a=new LO(this,this)),As(this.a,l(n,16));return;case 14:$r(Xl(this)),As(Xl(this),l(n,16));return}uf(this,t-yr((Tn(),I2)),Mn((r=l(Kn(this,16),29),r||I2),t),n)},h.ii=function(){return Tn(),I2},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:Fu(this,null);return;case 2:c2(this,!0);return;case 3:u2(this,!0);return;case 4:i2(this,0);return;case 5:My(this,1);return;case 8:Gm(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return;case 11:!this.d&&(this.d=new ml(Zu,this,11)),$r(this.d);return;case 12:!this.c&&(this.c=new nt(k3,this,12,10)),$r(this.c);return;case 13:this.a&&tL(this.a);return;case 14:this.b&&$r(this.b);return}cf(this,t-yr((Tn(),I2)),Mn((n=l(Kn(this,16),29),n||I2),t))},h.pi=function(){var t,n;if(this.c)for(t=0,n=this.c.i;tw&&Ts(t,w,null),a=0,r=new or(Xl(this.a));r.e!=r.i.gc();)n=l(gr(r),89),f=(g=n.c,g||(Tn(),td)),Ts(t,a++,f);return t},h.Hj=function(){var t,n,r,a,o;for(o=new Up,o.a+="[",t=Xl(this.a),n=0,a=Xl(this.a).i;n1);case 5:return rA(this,t,n,r,a,this.i-l(r,15).gc()>0);default:return new Zg(this.e,t,this.c,n,r,a,!0)}},h.Tj=function(){return!0},h.Qj=function(){return uue(this)},h.Gk=function(){$r(this)},I(Gn,"EOperationImpl/2",1377),D(507,1,{2037:1,507:1},Ott),I(Gn,"EPackageImpl/1",507),D(14,83,kc,nt),h.il=function(){return this.d},h.jl=function(){return this.b},h.ml=function(){return!0},h.b=0,I(us,"EObjectContainmentWithInverseEList",14),D(365,14,kc,V8),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectContainmentWithInverseEList/Resolving",365),D(308,365,kc,wy),h.Ni=function(){this.a.tb=null},I(Gn,"EPackageImpl/2",308),D(1278,1,{},ere),I(Gn,"EPackageImpl/3",1278),D(733,45,m6,$we),h._b=function(t){return Ia(t)?soe(this,t):!!zo(this.f,t)},I(Gn,"EPackageRegistryImpl",733),D(518,292,{110:1,94:1,93:1,155:1,197:1,58:1,2116:1,114:1,481:1,54:1,99:1,158:1,518:1,292:1,119:1,120:1},Hie),h.Ah=function(t){return lgt(this,t)},h.Lh=function(t,n,r){var a,o,f;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return pt(this.s);case 5:return pt(this.t);case 6:return Hn(),f=this.t,f>1||f==-1;case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?l(this.Cb,62):null}return sf(this,t-yr((Tn(),N4)),Mn((a=l(Kn(this,16),29),a||N4),t),n,r)},h.Sh=function(t,n,r){var a,o,f;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),Ru(this.Ab,t,r);case 10:return this.Cb&&(r=(o=this.Db>>16,o>=0?lgt(this,r):this.Cb.Th(this,-1-o,null,r))),Nh(this,t,10,r)}return f=l(Mn((a=l(Kn(this,16),29),a||(Tn(),N4)),n),69),f.wk().zk(this,Ku(this),n-yr((Tn(),N4)),t,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 9:return qae(this,r);case 10:return Nh(this,null,10,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),N4)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),N4)),t,r)},h.Wh=function(t){var n,r,a;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return a=this.t,a>1||a==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&yw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&yw(this.q).i==0);case 10:return!!(this.Db>>16==10&&l(this.Cb,62))}return nf(this,t-yr((Tn(),N4)),Mn((n=l(Kn(this,16),29),n||N4),t))},h.ii=function(){return Tn(),N4},I(Gn,"EParameterImpl",518),D(102,462,{110:1,94:1,93:1,155:1,197:1,58:1,19:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,102:1,462:1,292:1,119:1,120:1,692:1},Hye),h.Lh=function(t,n,r){var a,o,f,g;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Hn(),!!(this.Bb&256);case 3:return Hn(),!!(this.Bb&512);case 4:return pt(this.s);case 5:return pt(this.t);case 6:return Hn(),g=this.t,g>1||g==-1;case 7:return Hn(),o=this.s,o>=1;case 8:return n?Of(this):this.r;case 9:return this.q;case 10:return Hn(),!!(this.Bb&m0);case 11:return Hn(),!!(this.Bb&r4);case 12:return Hn(),!!(this.Bb&Xy);case 13:return this.j;case 14:return UE(this);case 15:return Hn(),!!(this.Bb&Sl);case 16:return Hn(),!!(this.Bb&_d);case 17:return ky(this);case 18:return Hn(),!!(this.Bb&eu);case 19:return Hn(),f=Ro(this),!!(f&&f.Bb&eu);case 20:return Hn(),!!(this.Bb&Io);case 21:return n?Ro(this):this.b;case 22:return n?$7e(this):_ut(this);case 23:return!this.a&&(this.a=new $5(D4,this,23)),this.a}return sf(this,t-yr((Tn(),o7)),Mn((a=l(Kn(this,16),29),a||o7),t),n,r)},h.Wh=function(t){var n,r,a,o;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return o=this.t,o>1||o==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&yw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&yw(this.q).i==0);case 10:return(this.Bb&m0)==0;case 11:return(this.Bb&r4)!=0;case 12:return(this.Bb&Xy)!=0;case 13:return this.j!=null;case 14:return UE(this)!=null;case 15:return(this.Bb&Sl)!=0;case 16:return(this.Bb&_d)!=0;case 17:return!!ky(this);case 18:return(this.Bb&eu)!=0;case 19:return a=Ro(this),!!a&&(a.Bb&eu)!=0;case 20:return(this.Bb&Io)==0;case 21:return!!this.b;case 22:return!!_ut(this);case 23:return!!this.a&&this.a.i!=0}return nf(this,t-yr((Tn(),o7)),Mn((n=l(Kn(this,16),29),n||o7),t))},h.bi=function(t,n){var r,a;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:poe(this,ei(n));return;case 2:c2(this,Rt(Bt(n)));return;case 3:u2(this,Rt(Bt(n)));return;case 4:i2(this,l(n,17).a);return;case 5:My(this,l(n,17).a);return;case 8:Gm(this,l(n,142));return;case 9:a=$1(this,l(n,89),null),a&&a.oj();return;case 10:AE(this,Rt(Bt(n)));return;case 11:DE(this,Rt(Bt(n)));return;case 12:LE(this,Rt(Bt(n)));return;case 13:Z3e(this,ei(n));return;case 15:ME(this,Rt(Bt(n)));return;case 16:IE(this,Rt(Bt(n)));return;case 18:L2n(this,Rt(Bt(n)));return;case 20:v8e(this,Rt(Bt(n)));return;case 21:b7e(this,l(n,19));return;case 23:!this.a&&(this.a=new $5(D4,this,23)),$r(this.a),!this.a&&(this.a=new $5(D4,this,23)),As(this.a,l(n,16));return}uf(this,t-yr((Tn(),o7)),Mn((r=l(Kn(this,16),29),r||o7),t),n)},h.ii=function(){return Tn(),o7},h.ki=function(t){var n,r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:De(this.Cb,90)&&zy(Yl(l(this.Cb,90)),4),Fu(this,null);return;case 2:c2(this,!0);return;case 3:u2(this,!0);return;case 4:i2(this,0);return;case 5:My(this,1);return;case 8:Gm(this,null);return;case 9:r=$1(this,null,null),r&&r.oj();return;case 10:AE(this,!0);return;case 11:DE(this,!1);return;case 12:LE(this,!1);return;case 13:this.i=null,xV(this,null);return;case 15:ME(this,!1);return;case 16:IE(this,!1);return;case 18:m8e(this,!1),De(this.Cb,90)&&zy(Yl(l(this.Cb,90)),2);return;case 20:v8e(this,!0);return;case 21:b7e(this,null);return;case 23:!this.a&&(this.a=new $5(D4,this,23)),$r(this.a);return}cf(this,t-yr((Tn(),o7)),Mn((n=l(Kn(this,16),29),n||o7),t))},h.pi=function(){$7e(this),Wk(ic((El(),io),this)),Of(this),this.Bb|=1},h.uk=function(){return Ro(this)},h._k=function(){var t;return t=Ro(this),!!t&&(t.Bb&eu)!=0},h.al=function(){return(this.Bb&eu)!=0},h.bl=function(){return(this.Bb&Io)!=0},h.Yk=function(t,n){return this.c=null,o8e(this,t,n)},h.Ib=function(){var t;return this.Db&64?BU(this):(t=new Af(BU(this)),t.a+=" (containment: ",Gp(t,(this.Bb&eu)!=0),t.a+=", resolveProxies: ",Gp(t,(this.Bb&Io)!=0),t.a+=")",t.a)},I(Gn,"EReferenceImpl",102),D(561,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,561:1,119:1,120:1},OS),h.Fb=function(t){return this===t},h.ld=function(){return this.b},h.md=function(){return this.c},h.Hb=function(){return fw(this)},h.Di=function(t){Ndn(this,ei(t))},h.nd=function(t){return wdn(this,ei(t))},h.Lh=function(t,n,r){var a;switch(t){case 0:return this.b;case 1:return this.c}return sf(this,t-yr((Tn(),No)),Mn((a=l(Kn(this,16),29),a||No),t),n,r)},h.Wh=function(t){var n;switch(t){case 0:return this.b!=null;case 1:return this.c!=null}return nf(this,t-yr((Tn(),No)),Mn((n=l(Kn(this,16),29),n||No),t))},h.bi=function(t,n){var r;switch(t){case 0:Pdn(this,ei(n));return;case 1:d7e(this,ei(n));return}uf(this,t-yr((Tn(),No)),Mn((r=l(Kn(this,16),29),r||No),t),n)},h.ii=function(){return Tn(),No},h.ki=function(t){var n;switch(t){case 0:f7e(this,null);return;case 1:d7e(this,null);return}cf(this,t-yr((Tn(),No)),Mn((n=l(Kn(this,16),29),n||No),t))},h.Bi=function(){var t;return this.a==-1&&(t=this.b,this.a=t==null?0:s2(t)),this.a},h.Ci=function(t){this.a=t},h.Ib=function(){var t;return this.Db&64?g0(this):(t=new Af(g0(this)),t.a+=" (key: ",Xo(t,this.b),t.a+=", value: ",Xo(t,this.c),t.a+=")",t.a)},h.a=-1,h.b=null,h.c=null;var Yc=I(Gn,"EStringToStringMapEntryImpl",561),Q_t=ks(us,"FeatureMap/Entry/Internal");D(576,1,YG),h.xl=function(t){return this.yl(l(t,54))},h.yl=function(t){return this.xl(t)},h.Fb=function(t){var n,r;return this===t?!0:De(t,76)?(n=l(t,76),n.Lk()==this.c?(r=this.md(),r==null?n.md()==null:Pi(r,n.md())):!1):!1},h.Lk=function(){return this.c},h.Hb=function(){var t;return t=this.md(),es(this.c)^(t==null?0:es(t))},h.Ib=function(){var t,n;return t=this.c,n=Ah(t.qk()).yi(),t.xe(),(n!=null&&n.length!=0?n+":"+t.xe():t.xe())+"="+this.md()},I(Gn,"EStructuralFeatureImpl/BasicFeatureMapEntry",576),D(791,576,YG,Jye),h.yl=function(t){return new Jye(this.c,t)},h.md=function(){return this.a},h.zl=function(t,n,r){return v3n(this,t,this.a,n,r)},h.Al=function(t,n,r){return w3n(this,t,this.a,n,r)},I(Gn,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",791),D(1350,1,{},Ntt),h.yk=function(t,n,r,a,o){var f;return f=l(tE(t,this.b),220),f.Yl(this.a).Fk(a)},h.zk=function(t,n,r,a,o){var f;return f=l(tE(t,this.b),220),f.Pl(this.a,a,o)},h.Ak=function(t,n,r,a,o){var f;return f=l(tE(t,this.b),220),f.Ql(this.a,a,o)},h.Bk=function(t,n,r){var a;return a=l(tE(t,this.b),220),a.Yl(this.a).Qj()},h.Ck=function(t,n,r,a){var o;o=l(tE(t,this.b),220),o.Yl(this.a).Wb(a)},h.Dk=function(t,n,r){return l(tE(t,this.b),220).Yl(this.a)},h.Ek=function(t,n,r){var a;a=l(tE(t,this.b),220),a.Yl(this.a).Gk()},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1350),D(91,1,{},Xp,Om,Jp,Rm),h.yk=function(t,n,r,a,o){var f;if(f=n.li(r),f==null&&n.mi(r,f=WU(this,t)),!o)switch(this.e){case 50:case 41:return l(f,597).bk();case 40:return l(f,220).Vl()}return f},h.zk=function(t,n,r,a,o){var f,g;return g=n.li(r),g==null&&n.mi(r,g=WU(this,t)),f=l(g,71).Wk(a,o),f},h.Ak=function(t,n,r,a,o){var f;return f=n.li(r),f!=null&&(o=l(f,71).Xk(a,o)),o},h.Bk=function(t,n,r){var a;return a=n.li(r),a!=null&&l(a,79).Qj()},h.Ck=function(t,n,r,a){var o;o=l(n.li(r),79),!o&&n.mi(r,o=WU(this,t)),o.Wb(a)},h.Dk=function(t,n,r){var a,o;return o=n.li(r),o==null&&n.mi(r,o=WU(this,t)),De(o,79)?l(o,79):(a=l(n.li(r),15),new xQe(a))},h.Ek=function(t,n,r){var a;a=l(n.li(r),79),!a&&n.mi(r,a=WU(this,t)),a.Gk()},h.b=0,h.e=0,I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateMany",91),D(512,1,{}),h.zk=function(t,n,r,a,o){throw ue(new Qr)},h.Ak=function(t,n,r,a,o){throw ue(new Qr)},h.Dk=function(t,n,r){return new Iat(this,t,n,r)};var Sg;I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingle",512),D(1367,1,i0e,Iat),h.Fk=function(t){return this.a.yk(this.c,this.d,this.b,t,!0)},h.Qj=function(){return this.a.Bk(this.c,this.d,this.b)},h.Wb=function(t){this.a.Ck(this.c,this.d,this.b,t)},h.Gk=function(){this.a.Ek(this.c,this.d,this.b)},h.b=0,I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1367),D(784,512,{},$5e),h.yk=function(t,n,r,a,o){return sle(t,t.Ph(),t.Fh())==this.b?this.bl()&&a?Uue(t):t.Ph():null},h.zk=function(t,n,r,a,o){var f,g;return t.Ph()&&(o=(f=t.Fh(),f>=0?t.Ah(o):t.Ph().Th(t,-1-f,null,o))),g=ms(t.Dh(),this.e),t.Ch(a,g,o)},h.Ak=function(t,n,r,a,o){var f;return f=ms(t.Dh(),this.e),t.Ch(null,f,o)},h.Bk=function(t,n,r){var a;return a=ms(t.Dh(),this.e),!!t.Ph()&&t.Fh()==a},h.Ck=function(t,n,r,a){var o,f,g,w,E;if(a!=null&&!ule(this.a,a))throw ue(new kk(XG+(De(a,58)?_xe(l(a,58).Dh()):K6e(bh(a)))+QG+this.a+"'"));if(o=t.Ph(),g=ms(t.Dh(),this.e),qe(a)!==qe(o)||t.Fh()!=g&&a!=null){if(FE(t,l(a,58)))throw ue(new Yn(EL+t.Ib()));E=null,o&&(E=(f=t.Fh(),f>=0?t.Ah(E):t.Ph().Th(t,-1-f,null,E))),w=l(a,54),w&&(E=w.Rh(t,ms(w.Dh(),this.b),null,E)),E=t.Ch(w,g,E),E&&E.oj()}else t.vh()&&t.wh()&&Ni(t,new _a(t,1,g,a,a))},h.Ek=function(t,n,r){var a,o,f,g;a=t.Ph(),a?(g=(o=t.Fh(),o>=0?t.Ah(null):t.Ph().Th(t,-1-o,null,null)),f=ms(t.Dh(),this.e),g=t.Ch(null,f,g),g&&g.oj()):t.vh()&&t.wh()&&Ni(t,new X_(t,1,this.e,null,null))},h.bl=function(){return!1},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",784),D(1351,784,{},kit),h.bl=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1351),D(574,512,{}),h.yk=function(t,n,r,a,o){var f;return f=n.li(r),f==null?this.b:qe(f)===qe(Sg)?null:f},h.Bk=function(t,n,r){var a;return a=n.li(r),a!=null&&(qe(a)===qe(Sg)||!Pi(a,this.b))},h.Ck=function(t,n,r,a){var o,f;t.vh()&&t.wh()?(o=(f=n.li(r),f==null?this.b:qe(f)===qe(Sg)?null:f),a==null?this.c!=null?(n.mi(r,null),a=this.b):this.b!=null?n.mi(r,Sg):n.mi(r,null):(this.Bl(a),n.mi(r,a)),Ni(t,this.d.Cl(t,1,this.e,o,a))):a==null?this.c!=null?n.mi(r,null):this.b!=null?n.mi(r,Sg):n.mi(r,null):(this.Bl(a),n.mi(r,a))},h.Ek=function(t,n,r){var a,o;t.vh()&&t.wh()?(a=(o=n.li(r),o==null?this.b:qe(o)===qe(Sg)?null:o),n.ni(r),Ni(t,this.d.Cl(t,1,this.e,a,this.b))):n.ni(r)},h.Bl=function(t){throw ue(new IQe)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",574),D(_6,1,{},NS),h.Cl=function(t,n,r,a,o){return new X_(t,n,r,a,o)},h.Dl=function(t,n,r,a,o,f){return new roe(t,n,r,a,o,f)};var MPe,DPe,IPe,OPe,NPe,PPe,BPe,ipe,FPe;I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",_6),D(1368,_6,{},H0),h.Cl=function(t,n,r,a,o){return new m6e(t,n,r,Rt(Bt(a)),Rt(Bt(o)))},h.Dl=function(t,n,r,a,o,f){return new rct(t,n,r,Rt(Bt(a)),Rt(Bt(o)),f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1368),D(1369,_6,{},AI),h.Cl=function(t,n,r,a,o){return new Q6e(t,n,r,l(a,222).a,l(o,222).a)},h.Dl=function(t,n,r,a,o,f){return new Xot(t,n,r,l(a,222).a,l(o,222).a,f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1369),D(1370,_6,{},LI),h.Cl=function(t,n,r,a,o){return new J6e(t,n,r,l(a,180).a,l(o,180).a)},h.Dl=function(t,n,r,a,o,f){return new Qot(t,n,r,l(a,180).a,l(o,180).a,f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1370),D(1371,_6,{},f8),h.Cl=function(t,n,r,a,o){return new p6e(t,n,r,ze(Ge(a)),ze(Ge(o)))},h.Dl=function(t,n,r,a,o,f){return new Jot(t,n,r,ze(Ge(a)),ze(Ge(o)),f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1371),D(1372,_6,{},tre),h.Cl=function(t,n,r,a,o){return new t7e(t,n,r,l(a,161).a,l(o,161).a)},h.Dl=function(t,n,r,a,o,f){return new Zot(t,n,r,l(a,161).a,l(o,161).a,f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1372),D(1373,_6,{},nre),h.Cl=function(t,n,r,a,o){return new b6e(t,n,r,l(a,17).a,l(o,17).a)},h.Dl=function(t,n,r,a,o,f){return new ect(t,n,r,l(a,17).a,l(o,17).a,f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1373),D(1374,_6,{},rre),h.Cl=function(t,n,r,a,o){return new Z6e(t,n,r,l(a,168).a,l(o,168).a)},h.Dl=function(t,n,r,a,o,f){return new tct(t,n,r,l(a,168).a,l(o,168).a,f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1374),D(1375,_6,{},ire),h.Cl=function(t,n,r,a,o){return new e7e(t,n,r,l(a,191).a,l(o,191).a)},h.Dl=function(t,n,r,a,o,f){return new nct(t,n,r,l(a,191).a,l(o,191).a,f)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1375),D(1353,574,{},Oat),h.Bl=function(t){if(!this.a.fk(t))throw ue(new kk(XG+bh(t)+QG+this.a+"'"))},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1353),D(1354,574,{},yst),h.Bl=function(t){},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1354),D(785,574,{}),h.Bk=function(t,n,r){var a;return a=n.li(r),a!=null},h.Ck=function(t,n,r,a){var o,f;t.vh()&&t.wh()?(o=!0,f=n.li(r),f==null?(o=!1,f=this.b):qe(f)===qe(Sg)&&(f=null),a==null?this.c!=null?(n.mi(r,null),a=this.b):n.mi(r,Sg):(this.Bl(a),n.mi(r,a)),Ni(t,this.d.Dl(t,1,this.e,f,a,!o))):a==null?this.c!=null?n.mi(r,null):n.mi(r,Sg):(this.Bl(a),n.mi(r,a))},h.Ek=function(t,n,r){var a,o;t.vh()&&t.wh()?(a=!0,o=n.li(r),o==null?(a=!1,o=this.b):qe(o)===qe(Sg)&&(o=null),n.ni(r),Ni(t,this.d.Dl(t,2,this.e,o,this.b,a))):n.ni(r)},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",785),D(1355,785,{},Nat),h.Bl=function(t){if(!this.a.fk(t))throw ue(new kk(XG+bh(t)+QG+this.a+"'"))},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1355),D(1356,785,{},xst),h.Bl=function(t){},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1356),D(410,512,{},cH),h.yk=function(t,n,r,a,o){var f,g,w,E,C;if(C=n.li(r),this.tk()&&qe(C)===qe(Sg))return null;if(this.bl()&&a&&C!=null){if(w=l(C,54),w.Vh()&&(E=yb(t,w),w!=E)){if(!ule(this.a,E))throw ue(new kk(XG+bh(E)+QG+this.a+"'"));n.mi(r,C=E),this.al()&&(f=l(E,54),g=w.Th(t,this.b?ms(w.Dh(),this.b):-1-ms(t.Dh(),this.e),null,null),!f.Ph()&&(g=f.Rh(t,this.b?ms(f.Dh(),this.b):-1-ms(t.Dh(),this.e),null,g)),g&&g.oj()),t.vh()&&t.wh()&&Ni(t,new X_(t,9,this.e,w,E))}return C}else return C},h.zk=function(t,n,r,a,o){var f,g;return g=n.li(r),qe(g)===qe(Sg)&&(g=null),n.mi(r,a),this.Mj()?qe(g)!==qe(a)&&g!=null&&(f=l(g,54),o=f.Th(t,ms(f.Dh(),this.b),null,o)):this.al()&&g!=null&&(o=l(g,54).Th(t,-1-ms(t.Dh(),this.e),null,o)),t.vh()&&t.wh()&&(!o&&(o=new nb(4)),o.nj(new X_(t,1,this.e,g,a))),o},h.Ak=function(t,n,r,a,o){var f;return f=n.li(r),qe(f)===qe(Sg)&&(f=null),n.ni(r),t.vh()&&t.wh()&&(!o&&(o=new nb(4)),this.tk()?o.nj(new X_(t,2,this.e,f,null)):o.nj(new X_(t,1,this.e,f,null))),o},h.Bk=function(t,n,r){var a;return a=n.li(r),a!=null},h.Ck=function(t,n,r,a){var o,f,g,w,E;if(a!=null&&!ule(this.a,a))throw ue(new kk(XG+(De(a,58)?_xe(l(a,58).Dh()):K6e(bh(a)))+QG+this.a+"'"));E=n.li(r),w=E!=null,this.tk()&&qe(E)===qe(Sg)&&(E=null),g=null,this.Mj()?qe(E)!==qe(a)&&(E!=null&&(o=l(E,54),g=o.Th(t,ms(o.Dh(),this.b),null,g)),a!=null&&(o=l(a,54),g=o.Rh(t,ms(o.Dh(),this.b),null,g))):this.al()&&qe(E)!==qe(a)&&(E!=null&&(g=l(E,54).Th(t,-1-ms(t.Dh(),this.e),null,g)),a!=null&&(g=l(a,54).Rh(t,-1-ms(t.Dh(),this.e),null,g))),a==null&&this.tk()?n.mi(r,Sg):n.mi(r,a),t.vh()&&t.wh()?(f=new roe(t,1,this.e,E,a,this.tk()&&!w),g?(g.nj(f),g.oj()):Ni(t,f)):g&&g.oj()},h.Ek=function(t,n,r){var a,o,f,g,w;w=n.li(r),g=w!=null,this.tk()&&qe(w)===qe(Sg)&&(w=null),f=null,w!=null&&(this.Mj()?(a=l(w,54),f=a.Th(t,ms(a.Dh(),this.b),null,f)):this.al()&&(f=l(w,54).Th(t,-1-ms(t.Dh(),this.e),null,f))),n.ni(r),t.vh()&&t.wh()?(o=new roe(t,this.tk()?2:1,this.e,w,null,g),f?(f.nj(o),f.oj()):Ni(t,o)):f&&f.oj()},h.Mj=function(){return!1},h.al=function(){return!1},h.bl=function(){return!1},h.tk=function(){return!1},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",410),D(575,410,{},oae),h.al=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",575),D(1359,575,{},wrt),h.bl=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1359),D(787,575,{},jye),h.tk=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",787),D(1361,787,{},yrt),h.bl=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1361),D(650,575,{},yae),h.Mj=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",650),D(1360,650,{},Eit),h.bl=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1360),D(788,650,{},C4e),h.tk=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",788),D(1362,788,{},Tit),h.bl=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1362),D(651,410,{},$ye),h.bl=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",651),D(1363,651,{},xrt),h.tk=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1363),D(789,651,{},E4e),h.Mj=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",789),D(1364,789,{},Cit),h.tk=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1364),D(1357,410,{},krt),h.tk=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1357),D(786,410,{},T4e),h.Mj=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",786),D(1358,786,{},Sit),h.tk=function(){return!0},I(Gn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1358),D(790,576,YG,x5e),h.yl=function(t){return new x5e(this.a,this.c,t)},h.md=function(){return this.b},h.zl=function(t,n,r){return bvn(this,t,this.b,r)},h.Al=function(t,n,r){return mvn(this,t,this.b,r)},I(Gn,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",790),D(1365,1,i0e,xQe),h.Fk=function(t){return this.a},h.Qj=function(){return De(this.a,97)?l(this.a,97).Qj():!this.a.dc()},h.Wb=function(t){this.a.$b(),this.a.Gc(l(t,15))},h.Gk=function(){De(this.a,97)?l(this.a,97).Gk():this.a.$b()},I(Gn,"EStructuralFeatureImpl/SettingMany",1365),D(1366,576,YG,Wct),h.xl=function(t){return new lae((Gi(),UM),this.b.ri(this.a,t))},h.md=function(){return null},h.zl=function(t,n,r){return r},h.Al=function(t,n,r){return r},I(Gn,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1366),D(652,576,YG,lae),h.xl=function(t){return new lae(this.c,t)},h.md=function(){return this.a},h.zl=function(t,n,r){return r},h.Al=function(t,n,r){return r},I(Gn,"EStructuralFeatureImpl/SimpleFeatureMapEntry",652),D(403,506,Bd,Xd),h.aj=function(t){return We(Vf,Rn,29,t,0,1)},h.Yi=function(){return!1},I(Gn,"ESuperAdapter/1",403),D(457,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,850:1,54:1,99:1,158:1,457:1,119:1,120:1},PS),h.Lh=function(t,n,r){var a;switch(t){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),this.Ab;case 1:return this.zb;case 2:return!this.a&&(this.a=new G_(this,Wo,this)),this.a}return sf(this,t-yr((Tn(),T3)),Mn((a=l(Kn(this,16),29),a||T3),t),n,r)},h.Uh=function(t,n,r){var a,o;switch(n){case 0:return!this.Ab&&(this.Ab=new nt(mi,this,0,3)),To(this.Ab,t,r);case 2:return!this.a&&(this.a=new G_(this,Wo,this)),To(this.a,t,r)}return o=l(Mn((a=l(Kn(this,16),29),a||(Tn(),T3)),n),69),o.wk().Ak(this,Ku(this),n-yr((Tn(),T3)),t,r)},h.Wh=function(t){var n;switch(t){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return!!this.a&&this.a.i!=0}return nf(this,t-yr((Tn(),T3)),Mn((n=l(Kn(this,16),29),n||T3),t))},h.bi=function(t,n){var r;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab),!this.Ab&&(this.Ab=new nt(mi,this,0,3)),As(this.Ab,l(n,16));return;case 1:Fu(this,ei(n));return;case 2:!this.a&&(this.a=new G_(this,Wo,this)),$r(this.a),!this.a&&(this.a=new G_(this,Wo,this)),As(this.a,l(n,16));return}uf(this,t-yr((Tn(),T3)),Mn((r=l(Kn(this,16),29),r||T3),t),n)},h.ii=function(){return Tn(),T3},h.ki=function(t){var n;switch(t){case 0:!this.Ab&&(this.Ab=new nt(mi,this,0,3)),$r(this.Ab);return;case 1:Fu(this,null);return;case 2:!this.a&&(this.a=new G_(this,Wo,this)),$r(this.a);return}cf(this,t-yr((Tn(),T3)),Mn((n=l(Kn(this,16),29),n||T3),t))},I(Gn,"ETypeParameterImpl",457),D(458,83,kc,G_),h.Nj=function(t,n){return Dxn(this,l(t,89),n)},h.Oj=function(t,n){return Ixn(this,l(t,89),n)},I(Gn,"ETypeParameterImpl/1",458),D(647,45,m6,Vie),h.ec=function(){return new Pz(this)},I(Gn,"ETypeParameterImpl/2",647),D(570,q1,Tl,Pz),h.Fc=function(t){return Wrt(this,l(t,89))},h.Gc=function(t){var n,r,a;for(a=!1,r=t.Kc();r.Ob();)n=l(r.Pb(),89),ki(this.a,n,"")==null&&(a=!0);return a},h.$b=function(){Nl(this.a)},h.Hc=function(t){return Hu(this.a,t)},h.Kc=function(){var t;return t=new qm(new Sr(this.a).a),new Bz(t)},h.Mc=function(t){return Rut(this,t)},h.gc=function(){return d_(this.a)},I(Gn,"ETypeParameterImpl/2/1",570),D(571,1,Oa,Bz),h.Nb=function(t){Za(this,t)},h.Pb=function(){return l(Nw(this.a).ld(),89)},h.Ob=function(){return this.a.b},h.Qb=function(){Klt(this.a)},I(Gn,"ETypeParameterImpl/2/1/1",571),D(1329,45,m6,hJe),h._b=function(t){return Ia(t)?soe(this,t):!!zo(this.f,t)},h.xc=function(t){var n,r;return n=Ia(t)?xu(this,t):hc(zo(this.f,t)),De(n,851)?(r=l(n,851),n=r.Kk(),ki(this,l(t,241),n),n):n??(t==null?(use(),Z_t):null)},I(Gn,"EValidatorRegistryImpl",1329),D(1349,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,2040:1,54:1,99:1,158:1,119:1,120:1},d8),h.ri=function(t,n){switch(t.hk()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return n==null?null:xc(n);case 25:return Awn(n);case 27:return qvn(n);case 28:return Hvn(n);case 29:return n==null?null:Cnt(jM[0],l(n,206));case 41:return n==null?"":_m(l(n,297));case 42:return xc(n);case 50:return ei(n);default:throw ue(new Yn(yT+t.xe()+t3))}},h.si=function(t){var n,r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe;switch(t.G==-1&&(t.G=(z=Ah(t),z?f2(z.vi(),t):-1)),t.G){case 0:return r=new zie,r;case 1:return n=new CI,n;case 2:return a=new hz,a;case 4:return o=new Fz,o;case 5:return f=new lJe,f;case 6:return g=new PQe,g;case 7:return w=new fz,w;case 10:return C=new m5,C;case 11:return L=new qie,L;case 12:return B=new qat,B;case 13:return V=new Hie,V;case 14:return J=new Hye,J;case 17:return te=new OS,te;case 18:return E=new Qv,E;case 19:return fe=new PS,fe;default:throw ue(new Yn(qfe+t.zb+t3))}},h.ti=function(t,n){switch(t.hk()){case 20:return n==null?null:new h3e(n);case 21:return n==null?null:new ob(n);case 23:case 22:return n==null?null:z5n(n);case 26:case 24:return n==null?null:fN(Oh(n,-128,127)<<24>>24);case 25:return aTn(n);case 27:return A7n(n);case 28:return L7n(n);case 29:return Jxn(n);case 32:case 31:return n==null?null:jy(n);case 38:case 37:return n==null?null:new Awe(n);case 40:case 39:return n==null?null:pt(Oh(n,lo,Ii));case 41:return null;case 42:return n==null,null;case 44:case 43:return n==null?null:ap(KU(n));case 49:case 48:return n==null?null:_E(Oh(n,JG,32767)<<16>>16);case 50:return n;default:throw ue(new Yn(yT+t.xe()+t3))}},I(Gn,"EcoreFactoryImpl",1349),D(560,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,2038:1,54:1,99:1,158:1,184:1,560:1,119:1,120:1,690:1},fat),h.gb=!1,h.hb=!1;var RPe,J_t=!1;I(Gn,"EcorePackageImpl",560),D(1234,1,{851:1},k1),h.Kk=function(){return Rnt(),eAt},I(Gn,"EcorePackageImpl/1",1234),D(1243,1,yi,A$),h.fk=function(t){return De(t,155)},h.gk=function(t){return We(uF,Rn,155,t,0,1)},I(Gn,"EcorePackageImpl/10",1243),D(1244,1,yi,L$),h.fk=function(t){return De(t,197)},h.gk=function(t){return We(Yge,Rn,197,t,0,1)},I(Gn,"EcorePackageImpl/11",1244),D(1245,1,yi,M$),h.fk=function(t){return De(t,58)},h.gk=function(t){return We(Xb,Rn,58,t,0,1)},I(Gn,"EcorePackageImpl/12",1245),D(1246,1,yi,D$),h.fk=function(t){return De(t,411)},h.gk=function(t){return We(Uf,LSe,62,t,0,1)},I(Gn,"EcorePackageImpl/13",1246),D(1247,1,yi,I$),h.fk=function(t){return De(t,241)},h.gk=function(t){return We(u1,Rn,241,t,0,1)},I(Gn,"EcorePackageImpl/14",1247),D(1248,1,yi,O$),h.fk=function(t){return De(t,518)},h.gk=function(t){return We(k3,Rn,2116,t,0,1)},I(Gn,"EcorePackageImpl/15",1248),D(1249,1,yi,V0),h.fk=function(t){return De(t,102)},h.gk=function(t){return We(I4,S6,19,t,0,1)},I(Gn,"EcorePackageImpl/16",1249),D(1250,1,yi,nl),h.fk=function(t){return De(t,179)},h.gk=function(t){return We(dl,S6,179,t,0,1)},I(Gn,"EcorePackageImpl/17",1250),D(1251,1,yi,sre),h.fk=function(t){return De(t,481)},h.gk=function(t){return We(M4,Rn,481,t,0,1)},I(Gn,"EcorePackageImpl/18",1251),D(1252,1,yi,are),h.fk=function(t){return De(t,561)},h.gk=function(t){return We(Yc,e5t,561,t,0,1)},I(Gn,"EcorePackageImpl/19",1252),D(1235,1,yi,ore),h.fk=function(t){return De(t,331)},h.gk=function(t){return We(D4,S6,35,t,0,1)},I(Gn,"EcorePackageImpl/2",1235),D(1253,1,yi,rl),h.fk=function(t){return De(t,248)},h.gk=function(t){return We(Wo,m5t,89,t,0,1)},I(Gn,"EcorePackageImpl/20",1253),D(1254,1,yi,BS),h.fk=function(t){return De(t,457)},h.gk=function(t){return We(Zu,Rn,850,t,0,1)},I(Gn,"EcorePackageImpl/21",1254),D(1255,1,yi,N$),h.fk=function(t){return hy(t)},h.gk=function(t){return We(Ns,dt,485,t,8,1)},I(Gn,"EcorePackageImpl/22",1255),D(1256,1,yi,P$),h.fk=function(t){return De(t,195)},h.gk=function(t){return We(Al,dt,195,t,0,2)},I(Gn,"EcorePackageImpl/23",1256),D(1257,1,yi,g8),h.fk=function(t){return De(t,222)},h.gk=function(t){return We(jx,dt,222,t,0,1)},I(Gn,"EcorePackageImpl/24",1257),D(1258,1,yi,cre),h.fk=function(t){return De(t,180)},h.gk=function(t){return We(PL,dt,180,t,0,1)},I(Gn,"EcorePackageImpl/25",1258),D(1259,1,yi,ak),h.fk=function(t){return De(t,206)},h.gk=function(t){return We(cK,dt,206,t,0,1)},I(Gn,"EcorePackageImpl/26",1259),D(1260,1,yi,ure),h.fk=function(t){return!1},h.gk=function(t){return We(nBe,Rn,2215,t,0,1)},I(Gn,"EcorePackageImpl/27",1260),D(1261,1,yi,B$),h.fk=function(t){return fy(t)},h.gk=function(t){return We(ta,dt,345,t,7,1)},I(Gn,"EcorePackageImpl/28",1261),D(1262,1,yi,lre),h.fk=function(t){return De(t,61)},h.gk=function(t){return We(mPe,Qy,61,t,0,1)},I(Gn,"EcorePackageImpl/29",1262),D(1236,1,yi,hre),h.fk=function(t){return De(t,519)},h.gk=function(t){return We(mi,{3:1,4:1,5:1,2033:1},598,t,0,1)},I(Gn,"EcorePackageImpl/3",1236),D(1263,1,yi,FS),h.fk=function(t){return De(t,582)},h.gk=function(t){return We(yPe,Rn,2039,t,0,1)},I(Gn,"EcorePackageImpl/30",1263),D(1264,1,yi,F$),h.fk=function(t){return De(t,160)},h.gk=function(t){return We(HPe,Qy,160,t,0,1)},I(Gn,"EcorePackageImpl/31",1264),D(1265,1,yi,MI),h.fk=function(t){return De(t,76)},h.gk=function(t){return We(CY,S5t,76,t,0,1)},I(Gn,"EcorePackageImpl/32",1265),D(1266,1,yi,RS),h.fk=function(t){return De(t,161)},h.gk=function(t){return We(_T,dt,161,t,0,1)},I(Gn,"EcorePackageImpl/33",1266),D(1267,1,yi,fre),h.fk=function(t){return De(t,17)},h.gk=function(t){return We(ro,dt,17,t,0,1)},I(Gn,"EcorePackageImpl/34",1267),D(1268,1,yi,dre),h.fk=function(t){return De(t,297)},h.gk=function(t){return We(qSe,Rn,297,t,0,1)},I(Gn,"EcorePackageImpl/35",1268),D(1269,1,yi,DI),h.fk=function(t){return De(t,168)},h.gk=function(t){return We(r3,dt,168,t,0,1)},I(Gn,"EcorePackageImpl/36",1269),D(1270,1,yi,jS),h.fk=function(t){return De(t,85)},h.gk=function(t){return We(HSe,Rn,85,t,0,1)},I(Gn,"EcorePackageImpl/37",1270),D(1271,1,yi,E1),h.fk=function(t){return De(t,599)},h.gk=function(t){return We(jPe,Rn,599,t,0,1)},I(Gn,"EcorePackageImpl/38",1271),D(1272,1,yi,ok),h.fk=function(t){return!1},h.gk=function(t){return We(rBe,Rn,2216,t,0,1)},I(Gn,"EcorePackageImpl/39",1272),D(1237,1,yi,gre),h.fk=function(t){return De(t,90)},h.gk=function(t){return We(Vf,Rn,29,t,0,1)},I(Gn,"EcorePackageImpl/4",1237),D(1273,1,yi,ck),h.fk=function(t){return De(t,191)},h.gk=function(t){return We(i3,dt,191,t,0,1)},I(Gn,"EcorePackageImpl/40",1273),D(1274,1,yi,II),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(Gn,"EcorePackageImpl/41",1274),D(1275,1,yi,xm),h.fk=function(t){return De(t,596)},h.gk=function(t){return We(wPe,Rn,596,t,0,1)},I(Gn,"EcorePackageImpl/42",1275),D(1276,1,yi,$S),h.fk=function(t){return!1},h.gk=function(t){return We(iBe,dt,2217,t,0,1)},I(Gn,"EcorePackageImpl/43",1276),D(1277,1,yi,OI),h.fk=function(t){return De(t,44)},h.gk=function(t){return We(uv,XU,44,t,0,1)},I(Gn,"EcorePackageImpl/44",1277),D(1238,1,yi,U0),h.fk=function(t){return De(t,142)},h.gk=function(t){return We(l1,Rn,142,t,0,1)},I(Gn,"EcorePackageImpl/5",1238),D(1239,1,yi,zS),h.fk=function(t){return De(t,156)},h.gk=function(t){return We(tpe,Rn,156,t,0,1)},I(Gn,"EcorePackageImpl/6",1239),D(1240,1,yi,T1),h.fk=function(t){return De(t,469)},h.gk=function(t){return We(TY,Rn,685,t,0,1)},I(Gn,"EcorePackageImpl/7",1240),D(1241,1,yi,C1),h.fk=function(t){return De(t,582)},h.gk=function(t){return We(wp,Rn,694,t,0,1)},I(Gn,"EcorePackageImpl/8",1241),D(1242,1,yi,pre),h.fk=function(t){return De(t,480)},h.gk=function(t){return We(RM,Rn,480,t,0,1)},I(Gn,"EcorePackageImpl/9",1242),D(1038,2080,Z4t,IJe),h.Mi=function(t,n){b4n(this,l(n,424))},h.Qi=function(t,n){Apt(this,t,l(n,424))},I(Gn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1038),D(1039,152,YP,nat),h.jj=function(){return this.a.a},I(Gn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1039),D(1067,1066,{},bnt),I("org.eclipse.emf.ecore.plugin","EcorePlugin",1067);var jPe=ks(_5t,"Resource");D(799,1524,A5t),h.Hl=function(t){},h.Il=function(t){},h.El=function(){return!this.a&&(this.a=new Pie(this)),this.a},h.Fl=function(t){var n,r,a,o,f;if(a=t.length,a>0)if(Xn(0,t.length),t.charCodeAt(0)==47){for(f=new Bu(4),o=1,n=1;n0&&(t=(Ga(0,r,t.length),t.substr(0,r))));return Ukn(this,t)},h.Gl=function(){return this.c},h.Ib=function(){var t;return _m(this.Rm)+"@"+(t=es(this)>>>0,t.toString(16))+" uri='"+this.d+"'"},h.b=!1,I(s0e,"ResourceImpl",799),D(1525,799,A5t,kQe),I(s0e,"BinaryResourceImpl",1525),D(1190,708,Zfe),h.bj=function(t){return De(t,58)?Bpn(this,l(t,58)):De(t,599)?new or(l(t,599).El()):qe(t)===qe(this.f)?l(t,16).Kc():(Fk(),fF.a)},h.Ob=function(){return x9e(this)},h.a=!1,I(us,"EcoreUtil/ContentTreeIterator",1190),D(1526,1190,Zfe,Ist),h.bj=function(t){return qe(t)===qe(this.f)?l(t,15).Kc():new Lct(l(t,58))},I(s0e,"ResourceImpl/5",1526),D(658,2092,b5t,Pie),h.Hc=function(t){return this.i<=4?jE(this,t):De(t,54)&&l(t,54).Jh()==this.a},h.Mi=function(t,n){t==this.i-1&&(this.a.b||(this.a.b=!0))},h.Oi=function(t,n){t==0?this.a.b||(this.a.b=!0):Noe(this,t,n)},h.Qi=function(t,n){},h.Ri=function(t,n,r){},h.Lj=function(){return 2},h.jj=function(){return this.a},h.Mj=function(){return!0},h.Nj=function(t,n){var r;return r=l(t,54),n=r.fi(this.a,n),n},h.Oj=function(t,n){var r;return r=l(t,54),r.fi(null,n)},h.Pj=function(){return!1},h.Si=function(){return!0},h.aj=function(t){return We(Xb,Rn,58,t,0,1)},h.Yi=function(){return!1},I(s0e,"ResourceImpl/ContentsEList",658),D(970,2062,iT,EQe),h.fd=function(t){return this.a.Ki(t)},h.gc=function(){return this.a.gc()},I(us,"AbstractSequentialInternalEList/1",970);var $Pe,zPe,io,qPe;D(634,1,{},Nit);var SY,_Y;I(us,"BasicExtendedMetaData",634),D(1181,1,{},Btt),h.Jl=function(){return null},h.Kl=function(){return this.a==-2&&Ye(this,Uxn(this.d,this.b)),this.a},h.Ll=function(){return null},h.Ml=function(){return Cn(),Cn(),_o},h.xe=function(){return this.c==ET&&mt(this,J1t(this.d,this.b)),this.c},h.Nl=function(){return 0},h.a=-2,h.c=ET,I(us,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1181),D(1182,1,{},sct),h.Jl=function(){return this.a==(eE(),SY)&&Mt(this,VSn(this.f,this.b)),this.a},h.Kl=function(){return 0},h.Ll=function(){return this.c==(eE(),SY)&&Je(this,USn(this.f,this.b)),this.c},h.Ml=function(){return!this.d&&Wt(this,LAn(this.f,this.b)),this.d},h.xe=function(){return this.e==ET&&_n(this,J1t(this.f,this.b)),this.e},h.Nl=function(){return this.g==-2&&Yt(this,lxn(this.f,this.b)),this.g},h.e=ET,h.g=-2,I(us,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1182),D(1180,1,{},Ftt),h.b=!1,h.c=!1,I(us,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1180),D(1183,1,{},act),h.c=-2,h.e=ET,h.f=ET,I(us,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1183),D(593,632,kc,Jq),h.Lj=function(){return this.c},h.ol=function(){return!1},h.Wi=function(t,n){return n},h.c=0,I(us,"EDataTypeEList",593);var HPe=ks(us,"FeatureMap");D(78,593,{3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},Ls),h.bd=function(t,n){uCn(this,t,l(n,76))},h.Fc=function(t){return _Tn(this,l(t,76))},h.Hi=function(t){Ogn(this,l(t,76))},h.Nj=function(t,n){return e0n(this,l(t,76),n)},h.Oj=function(t,n){return d4e(this,l(t,76),n)},h.Ti=function(t,n){return P_n(this,t,n)},h.Wi=function(t,n){return xMn(this,t,l(n,76))},h.hd=function(t,n){return XCn(this,t,l(n,76))},h.Uj=function(t,n){return t0n(this,l(t,76),n)},h.Vj=function(t,n){return uit(this,l(t,76),n)},h.Wj=function(t,n,r){return Q8n(this,l(t,76),l(n,76),r)},h.Zi=function(t,n){return Aue(this,t,l(n,76))},h.Ol=function(t,n){return fke(this,t,n)},h.cd=function(t,n){var r,a,o,f,g,w,E,C,L;for(C=new Lw(n.gc()),o=n.Kc();o.Ob();)if(a=l(o.Pb(),76),f=a.Lk(),up(this.e,f))(!f.Si()||!qH(this,f,a.md())&&!jE(C,a))&&qr(C,a);else{for(L=Wu(this.e.Dh(),f),r=l(this.g,124),g=!0,w=0;w=0;)if(n=t[this.c],this.k.am(n.Lk()))return this.j=this.f?n:n.md(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},I(us,"BasicFeatureMap/FeatureEIterator",420),D(676,420,lg,Use),h.ul=function(){return!0},I(us,"BasicFeatureMap/ResolvingFeatureEIterator",676),D(968,496,KG,Snt),h.pj=function(){return this},I(us,"EContentsEList/1",968),D(969,496,KG,Xtt),h.ul=function(){return!1},I(us,"EContentsEList/2",969),D(967,287,WG,_nt),h.wl=function(t){},h.Ob=function(){return!1},h.Sb=function(){return!1},I(us,"EContentsEList/FeatureIteratorImpl/1",967),D(840,593,kc,yye),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),hh(this.e)?(t=this.a,this.a=!1,Ni(this.e,new h0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EDataTypeEList/Unsettable",840),D(1958,593,kc,Nnt),h.Si=function(){return!0},I(us,"EDataTypeUniqueEList",1958),D(1959,840,kc,Pnt),h.Si=function(){return!0},I(us,"EDataTypeUniqueEList/Unsettable",1959),D(147,83,kc,ml),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectContainmentEList/Resolving",147),D(1184,555,kc,Bnt),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectContainmentEList/Unsettable/Resolving",1184),D(766,14,kc,a4e),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),hh(this.e)?(t=this.a,this.a=!1,Ni(this.e,new h0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EObjectContainmentWithInverseEList/Unsettable",766),D(1222,766,kc,Yrt),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1222),D(757,505,kc,xye),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),hh(this.e)?(t=this.a,this.a=!1,Ni(this.e,new h0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EObjectEList/Unsettable",757),D(338,505,kc,$5),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectResolvingEList",338),D(1844,757,kc,Fnt),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectResolvingEList/Unsettable",1844),D(1527,1,{},bre);var Z_t;I(us,"EObjectValidator",1527),D(559,505,kc,pH),h.il=function(){return this.d},h.jl=function(){return this.b},h.Mj=function(){return!0},h.ml=function(){return!0},h.b=0,I(us,"EObjectWithInverseEList",559),D(1225,559,kc,Xrt),h.ll=function(){return!0},I(us,"EObjectWithInverseEList/ManyInverse",1225),D(635,559,kc,fae),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),hh(this.e)?(t=this.a,this.a=!1,Ni(this.e,new h0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EObjectWithInverseEList/Unsettable",635),D(1224,635,kc,Qrt),h.ll=function(){return!0},I(us,"EObjectWithInverseEList/Unsettable/ManyInverse",1224),D(767,559,kc,o4e),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectWithInverseResolvingEList",767),D(32,767,kc,Ln),h.ll=function(){return!0},I(us,"EObjectWithInverseResolvingEList/ManyInverse",32),D(768,635,kc,c4e),h.nl=function(){return!0},h.Wi=function(t,n){return Ex(this,t,l(n,58))},I(us,"EObjectWithInverseResolvingEList/Unsettable",768),D(1223,768,kc,Jrt),h.ll=function(){return!0},I(us,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1223),D(1185,632,kc),h.Li=function(){return(this.b&1792)==0},h.Ni=function(){this.b|=1},h.kl=function(){return(this.b&4)!=0},h.Mj=function(){return(this.b&40)!=0},h.ll=function(){return(this.b&16)!=0},h.ml=function(){return(this.b&8)!=0},h.nl=function(){return(this.b&r4)!=0},h.al=function(){return(this.b&32)!=0},h.ol=function(){return(this.b&m0)!=0},h.fk=function(t){return this.d?Rct(this.d,t):this.Lk().Hk().fk(t)},h.Qj=function(){return this.b&2?(this.b&1)!=0:this.i!=0},h.Si=function(){return(this.b&128)!=0},h.Gk=function(){var t;$r(this),this.b&2&&(hh(this.e)?(t=(this.b&1)!=0,this.b&=-2,xk(this,new h0(this.e,2,ms(this.e.Dh(),this.Lk()),t,!1))):this.b&=-2)},h.Yi=function(){return(this.b&1536)==0},h.b=0,I(us,"EcoreEList/Generic",1185),D(1186,1185,kc,Vat),h.Lk=function(){return this.a},I(us,"EcoreEList/Dynamic",1186),D(765,66,Bd,kwe),h.aj=function(t){return bN(this.a.a,t)},I(us,"EcoreEMap/1",765),D(764,83,kc,a5e),h.Mi=function(t,n){oU(this.b,l(n,136))},h.Oi=function(t,n){zft(this.b)},h.Pi=function(t,n,r){var a;++(a=this.b,l(n,136),a).e},h.Qi=function(t,n){Fce(this.b,l(n,136))},h.Ri=function(t,n,r){Fce(this.b,l(r,136)),qe(r)===qe(n)&&l(r,136).Ci(Jln(l(n,136).ld())),oU(this.b,l(n,136))},I(us,"EcoreEMap/DelegateEObjectContainmentEList",764),D(1220,141,ASe,ift),I(us,"EcoreEMap/Unsettable",1220),D(1221,764,kc,Zrt),h.Ni=function(){this.a=!0},h.Qj=function(){return this.a},h.Gk=function(){var t;$r(this),hh(this.e)?(t=this.a,this.a=!1,Ni(this.e,new h0(this.e,2,this.c,t,!1))):this.a=!1},h.a=!1,I(us,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1221),D(1189,215,m6,Ust),h.a=!1,h.b=!1,I(us,"EcoreUtil/Copier",1189),D(759,1,Oa,Lct),h.Nb=function(t){Za(this,t)},h.Ob=function(){return F1t(this)},h.Pb=function(){var t;return F1t(this),t=this.b,this.b=null,t},h.Qb=function(){this.a.Qb()},I(us,"EcoreUtil/ProperContentIterator",759),D(1528,1527,{},dz);var eAt;I(us,"EcoreValidator",1528);var tAt;ks(us,"FeatureMapUtil/Validator"),D(1295,1,{2041:1},v5),h.am=function(t){return!0},I(us,"FeatureMapUtil/1",1295),D(773,1,{2041:1},qke),h.am=function(t){var n;return this.c==t?!0:(n=Bt(cr(this.a,t)),n==null?QSn(this,t)?(Lut(this.a,t,(Hn(),ST)),!0):(Lut(this.a,t,(Hn(),Pb)),!1):n==(Hn(),ST))},h.e=!1;var spe;I(us,"FeatureMapUtil/BasicValidator",773),D(774,45,m6,vye),I(us,"FeatureMapUtil/BasicValidator/Cache",774),D(509,56,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,71:1,97:1},yO),h.bd=function(t,n){vbt(this.c,this.b,t,n)},h.Fc=function(t){return fke(this.c,this.b,t)},h.cd=function(t,n){return vLn(this.c,this.b,t,n)},h.Gc=function(t){return F_(this,t)},h.Gi=function(t,n){dwn(this.c,this.b,t,n)},h.Wk=function(t,n){return ike(this.c,this.b,t,n)},h.$i=function(t){return qU(this.c,this.b,t,!1)},h.Ii=function(){return cnt(this.c,this.b)},h.Ji=function(){return jln(this.c,this.b)},h.Ki=function(t){return vvn(this.c,this.b,t)},h.Xk=function(t,n){return Irt(this,t,n)},h.$b=function(){_8(this)},h.Hc=function(t){return qH(this.c,this.b,t)},h.Ic=function(t){return m3n(this.c,this.b,t)},h.Xb=function(t){return qU(this.c,this.b,t,!0)},h.Fk=function(t){return this},h.dd=function(t){return Cmn(this.c,this.b,t)},h.dc=function(){return _q(this)},h.Qj=function(){return!FN(this.c,this.b)},h.Kc=function(){return rwn(this.c,this.b)},h.ed=function(){return iwn(this.c,this.b)},h.fd=function(t){return P4n(this.c,this.b,t)},h.Ti=function(t,n){return Omt(this.c,this.b,t,n)},h.Ui=function(t,n){xvn(this.c,this.b,t,n)},h.gd=function(t){return hpt(this.c,this.b,t)},h.Mc=function(t){return y_n(this.c,this.b,t)},h.hd=function(t,n){return qmt(this.c,this.b,t,n)},h.Wb=function(t){EU(this.c,this.b),F_(this,l(t,15))},h.gc=function(){return N4n(this.c,this.b)},h.Pc=function(){return _bn(this.c,this.b)},h.Qc=function(t){return Smn(this.c,this.b,t)},h.Ib=function(){var t,n;for(n=new Up,n.a+="[",t=cnt(this.c,this.b);_ce(t);)Xo(n,j_(iU(t))),_ce(t)&&(n.a+=Co);return n.a+="]",n.a},h.Gk=function(){EU(this.c,this.b)},I(us,"FeatureMapUtil/FeatureEList",509),D(644,39,YP,Eoe),h.hj=function(t){return SA(this,t)},h.mj=function(t){var n,r,a,o,f,g,w;switch(this.d){case 1:case 2:{if(f=t.jj(),qe(f)===qe(this.c)&&SA(this,null)==t.hj(null))return this.g=t.ij(),t.gj()==1&&(this.d=1),!0;break}case 3:{switch(o=t.gj(),o){case 3:{if(f=t.jj(),qe(f)===qe(this.c)&&SA(this,null)==t.hj(null))return this.d=5,n=new Lw(2),qr(n,this.g),qr(n,t.ij()),this.g=n,!0;break}}break}case 5:{switch(o=t.gj(),o){case 3:{if(f=t.jj(),qe(f)===qe(this.c)&&SA(this,null)==t.hj(null))return r=l(this.g,16),r.Fc(t.ij()),!0;break}}break}case 4:{switch(o=t.gj(),o){case 3:{if(f=t.jj(),qe(f)===qe(this.c)&&SA(this,null)==t.hj(null))return this.d=1,this.g=t.ij(),!0;break}case 4:{if(f=t.jj(),qe(f)===qe(this.c)&&SA(this,null)==t.hj(null))return this.d=6,w=new Lw(2),qr(w,this.n),qr(w,t.kj()),this.n=w,g=he(le(Vr,1),di,28,15,[this.o,t.lj()]),this.g=g,!0;break}}break}case 6:{switch(o=t.gj(),o){case 4:{if(f=t.jj(),qe(f)===qe(this.c)&&SA(this,null)==t.hj(null))return r=l(this.n,16),r.Fc(t.kj()),g=l(this.g,53),a=We(Vr,di,28,g.length+1,15,1),pu(g,0,a,0,g.length),a[g.length]=t.lj(),this.g=a,!0;break}}break}}return!1},I(us,"FeatureMapUtil/FeatureENotificationImpl",644),D(564,509,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},nH),h.Ol=function(t,n){return fke(this.c,t,n)},h.Pl=function(t,n,r){return ike(this.c,t,n,r)},h.Ql=function(t,n,r){return Mke(this.c,t,n,r)},h.Rl=function(){return this},h.Sl=function(t,n){return pP(this.c,t,n)},h.Tl=function(t){return l(qU(this.c,this.b,t,!1),76).Lk()},h.Ul=function(t){return l(qU(this.c,this.b,t,!1),76).md()},h.Vl=function(){return this.a},h.Wl=function(t){return!FN(this.c,t)},h.Xl=function(t,n){HU(this.c,t,n)},h.Yl=function(t){return oft(this.c,t)},h.Zl=function(t){jdt(this.c,t)},I(us,"FeatureMapUtil/FeatureFeatureMap",564),D(1294,1,i0e,Ptt),h.Fk=function(t){return qU(this.b,this.a,-1,t)},h.Qj=function(){return!FN(this.b,this.a)},h.Wb=function(t){HU(this.b,this.a,t)},h.Gk=function(){EU(this.b,this.a)},I(us,"FeatureMapUtil/FeatureValue",1294);var c9,ape,ope,u9,nAt,gF=ks(nK,"AnyType");D(680,63,lp,Jie),I(nK,"InvalidDatatypeValueException",680);var AY=ks(nK,M5t),pF=ks(nK,D5t),VPe=ks(nK,I5t),rAt,tu,UPe,Sv,iAt,sAt,aAt,oAt,cAt,uAt,lAt,hAt,fAt,dAt,gAt,c7,pAt,u7,HM,bAt,C3,bF,mF,mAt,VM,UM;D(844,516,{110:1,94:1,93:1,58:1,54:1,99:1,857:1},zwe),h.Lh=function(t,n,r){switch(t){case 0:return r?(!this.c&&(this.c=new Ls(this,0)),this.c):(!this.c&&(this.c=new Ls(this,0)),this.c.b);case 1:return r?(!this.c&&(this.c=new Ls(this,0)),l(ku(this.c,(Gi(),Sv)),160)):(!this.c&&(this.c=new Ls(this,0)),l(l(ku(this.c,(Gi(),Sv)),160),220)).Vl();case 2:return r?(!this.b&&(this.b=new Ls(this,2)),this.b):(!this.b&&(this.b=new Ls(this,2)),this.b.b)}return sf(this,t-yr(this.ii()),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),t),n,r)},h.Uh=function(t,n,r){var a;switch(n){case 0:return!this.c&&(this.c=new Ls(this,0)),hP(this.c,t,r);case 1:return(!this.c&&(this.c=new Ls(this,0)),l(l(ku(this.c,(Gi(),Sv)),160),71)).Xk(t,r);case 2:return!this.b&&(this.b=new Ls(this,2)),hP(this.b,t,r)}return a=l(Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),n),69),a.wk().Ak(this,V6e(this),n-yr(this.ii()),t,r)},h.Wh=function(t){switch(t){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new Ls(this,0)),l(ku(this.c,(Gi(),Sv)),160)).dc();case 2:return!!this.b&&this.b.i!=0}return nf(this,t-yr(this.ii()),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),t))},h.bi=function(t,n){switch(t){case 0:!this.c&&(this.c=new Ls(this,0)),$O(this.c,n);return;case 1:(!this.c&&(this.c=new Ls(this,0)),l(l(ku(this.c,(Gi(),Sv)),160),220)).Wb(n);return;case 2:!this.b&&(this.b=new Ls(this,2)),$O(this.b,n);return}uf(this,t-yr(this.ii()),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),t),n)},h.ii=function(){return Gi(),UPe},h.ki=function(t){switch(t){case 0:!this.c&&(this.c=new Ls(this,0)),$r(this.c);return;case 1:(!this.c&&(this.c=new Ls(this,0)),l(ku(this.c,(Gi(),Sv)),160)).$b();return;case 2:!this.b&&(this.b=new Ls(this,2)),$r(this.b);return}cf(this,t-yr(this.ii()),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():this.ii(),t))},h.Ib=function(){var t;return this.j&4?g0(this):(t=new Af(g0(this)),t.a+=" (mixed: ",O_(t,this.c),t.a+=", anyAttribute: ",O_(t,this.b),t.a+=")",t.a)},I(ea,"AnyTypeImpl",844),D(681,516,{110:1,94:1,93:1,58:1,54:1,99:1,2119:1,681:1},yre),h.Lh=function(t,n,r){switch(t){case 0:return this.a;case 1:return this.b}return sf(this,t-yr((Gi(),c7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():c7,t),n,r)},h.Wh=function(t){switch(t){case 0:return this.a!=null;case 1:return this.b!=null}return nf(this,t-yr((Gi(),c7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():c7,t))},h.bi=function(t,n){switch(t){case 0:vr(this,ei(n));return;case 1:pr(this,ei(n));return}uf(this,t-yr((Gi(),c7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():c7,t),n)},h.ii=function(){return Gi(),c7},h.ki=function(t){switch(t){case 0:this.a=null;return;case 1:this.b=null;return}cf(this,t-yr((Gi(),c7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():c7,t))},h.Ib=function(){var t;return this.j&4?g0(this):(t=new Af(g0(this)),t.a+=" (data: ",Xo(t,this.a),t.a+=", target: ",Xo(t,this.b),t.a+=")",t.a)},h.a=null,h.b=null,I(ea,"ProcessingInstructionImpl",681),D(682,844,{110:1,94:1,93:1,58:1,54:1,99:1,857:1,2120:1,682:1},fJe),h.Lh=function(t,n,r){switch(t){case 0:return r?(!this.c&&(this.c=new Ls(this,0)),this.c):(!this.c&&(this.c=new Ls(this,0)),this.c.b);case 1:return r?(!this.c&&(this.c=new Ls(this,0)),l(ku(this.c,(Gi(),Sv)),160)):(!this.c&&(this.c=new Ls(this,0)),l(l(ku(this.c,(Gi(),Sv)),160),220)).Vl();case 2:return r?(!this.b&&(this.b=new Ls(this,2)),this.b):(!this.b&&(this.b=new Ls(this,2)),this.b.b);case 3:return!this.c&&(this.c=new Ls(this,0)),ei(pP(this.c,(Gi(),HM),!0));case 4:return l4e(this.a,(!this.c&&(this.c=new Ls(this,0)),ei(pP(this.c,(Gi(),HM),!0))));case 5:return this.a}return sf(this,t-yr((Gi(),u7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():u7,t),n,r)},h.Wh=function(t){switch(t){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new Ls(this,0)),l(ku(this.c,(Gi(),Sv)),160)).dc();case 2:return!!this.b&&this.b.i!=0;case 3:return!this.c&&(this.c=new Ls(this,0)),ei(pP(this.c,(Gi(),HM),!0))!=null;case 4:return l4e(this.a,(!this.c&&(this.c=new Ls(this,0)),ei(pP(this.c,(Gi(),HM),!0))))!=null;case 5:return!!this.a}return nf(this,t-yr((Gi(),u7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():u7,t))},h.bi=function(t,n){switch(t){case 0:!this.c&&(this.c=new Ls(this,0)),$O(this.c,n);return;case 1:(!this.c&&(this.c=new Ls(this,0)),l(l(ku(this.c,(Gi(),Sv)),160),220)).Wb(n);return;case 2:!this.b&&(this.b=new Ls(this,2)),$O(this.b,n);return;case 3:J5e(this,ei(n));return;case 4:J5e(this,u4e(this.a,n));return;case 5:Nn(this,l(n,156));return}uf(this,t-yr((Gi(),u7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():u7,t),n)},h.ii=function(){return Gi(),u7},h.ki=function(t){switch(t){case 0:!this.c&&(this.c=new Ls(this,0)),$r(this.c);return;case 1:(!this.c&&(this.c=new Ls(this,0)),l(ku(this.c,(Gi(),Sv)),160)).$b();return;case 2:!this.b&&(this.b=new Ls(this,2)),$r(this.b);return;case 3:!this.c&&(this.c=new Ls(this,0)),HU(this.c,(Gi(),HM),null);return;case 4:J5e(this,u4e(this.a,null));return;case 5:this.a=null;return}cf(this,t-yr((Gi(),u7)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():u7,t))},I(ea,"SimpleAnyTypeImpl",682),D(683,516,{110:1,94:1,93:1,58:1,54:1,99:1,2121:1,683:1},dJe),h.Lh=function(t,n,r){switch(t){case 0:return r?(!this.a&&(this.a=new Ls(this,0)),this.a):(!this.a&&(this.a=new Ls(this,0)),this.a.b);case 1:return r?(!this.b&&(this.b=new xl((Tn(),No),Yc,this,1)),this.b):(!this.b&&(this.b=new xl((Tn(),No),Yc,this,1)),iN(this.b));case 2:return r?(!this.c&&(this.c=new xl((Tn(),No),Yc,this,2)),this.c):(!this.c&&(this.c=new xl((Tn(),No),Yc,this,2)),iN(this.c));case 3:return!this.a&&(this.a=new Ls(this,0)),ku(this.a,(Gi(),bF));case 4:return!this.a&&(this.a=new Ls(this,0)),ku(this.a,(Gi(),mF));case 5:return!this.a&&(this.a=new Ls(this,0)),ku(this.a,(Gi(),VM));case 6:return!this.a&&(this.a=new Ls(this,0)),ku(this.a,(Gi(),UM))}return sf(this,t-yr((Gi(),C3)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():C3,t),n,r)},h.Uh=function(t,n,r){var a;switch(n){case 0:return!this.a&&(this.a=new Ls(this,0)),hP(this.a,t,r);case 1:return!this.b&&(this.b=new xl((Tn(),No),Yc,this,1)),Uq(this.b,t,r);case 2:return!this.c&&(this.c=new xl((Tn(),No),Yc,this,2)),Uq(this.c,t,r);case 5:return!this.a&&(this.a=new Ls(this,0)),Irt(ku(this.a,(Gi(),VM)),t,r)}return a=l(Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():(Gi(),C3),n),69),a.wk().Ak(this,V6e(this),n-yr((Gi(),C3)),t,r)},h.Wh=function(t){switch(t){case 0:return!!this.a&&this.a.i!=0;case 1:return!!this.b&&this.b.f!=0;case 2:return!!this.c&&this.c.f!=0;case 3:return!this.a&&(this.a=new Ls(this,0)),!_q(ku(this.a,(Gi(),bF)));case 4:return!this.a&&(this.a=new Ls(this,0)),!_q(ku(this.a,(Gi(),mF)));case 5:return!this.a&&(this.a=new Ls(this,0)),!_q(ku(this.a,(Gi(),VM)));case 6:return!this.a&&(this.a=new Ls(this,0)),!_q(ku(this.a,(Gi(),UM)))}return nf(this,t-yr((Gi(),C3)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():C3,t))},h.bi=function(t,n){switch(t){case 0:!this.a&&(this.a=new Ls(this,0)),$O(this.a,n);return;case 1:!this.b&&(this.b=new xl((Tn(),No),Yc,this,1)),_V(this.b,n);return;case 2:!this.c&&(this.c=new xl((Tn(),No),Yc,this,2)),_V(this.c,n);return;case 3:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),bF))),!this.a&&(this.a=new Ls(this,0)),F_(ku(this.a,bF),l(n,16));return;case 4:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),mF))),!this.a&&(this.a=new Ls(this,0)),F_(ku(this.a,mF),l(n,16));return;case 5:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),VM))),!this.a&&(this.a=new Ls(this,0)),F_(ku(this.a,VM),l(n,16));return;case 6:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),UM))),!this.a&&(this.a=new Ls(this,0)),F_(ku(this.a,UM),l(n,16));return}uf(this,t-yr((Gi(),C3)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():C3,t),n)},h.ii=function(){return Gi(),C3},h.ki=function(t){switch(t){case 0:!this.a&&(this.a=new Ls(this,0)),$r(this.a);return;case 1:!this.b&&(this.b=new xl((Tn(),No),Yc,this,1)),this.b.c.$b();return;case 2:!this.c&&(this.c=new xl((Tn(),No),Yc,this,2)),this.c.c.$b();return;case 3:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),bF)));return;case 4:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),mF)));return;case 5:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),VM)));return;case 6:!this.a&&(this.a=new Ls(this,0)),_8(ku(this.a,(Gi(),UM)));return}cf(this,t-yr((Gi(),C3)),Mn(this.j&2?(!this.k&&(this.k=new Sf),this.k).Nk():C3,t))},h.Ib=function(){var t;return this.j&4?g0(this):(t=new Af(g0(this)),t.a+=" (mixed: ",O_(t,this.a),t.a+=")",t.a)},I(ea,"XMLTypeDocumentRootImpl",683),D(2028,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1,2122:1},uk),h.ri=function(t,n){switch(t.hk()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return n==null?null:xc(n);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return ei(n);case 6:return hfn(l(n,195));case 12:case 47:case 49:case 11:return Lvt(this,t,n);case 13:return n==null?null:kLn(l(n,247));case 15:case 14:return n==null?null:_gn(ze(Ge(n)));case 17:return Sgt((Gi(),n));case 18:return Sgt(n);case 21:case 20:return n==null?null:Agn(l(n,161).a);case 27:return ffn(l(n,195));case 30:return $dt((Gi(),l(n,15)));case 31:return $dt(l(n,15));case 40:return gfn((Gi(),n));case 42:return _gt((Gi(),n));case 43:return _gt(n);case 59:case 48:return dfn((Gi(),n));default:throw ue(new Yn(yT+t.xe()+t3))}},h.si=function(t){var n,r,a,o,f;switch(t.G==-1&&(t.G=(r=Ah(t),r?f2(r.vi(),t):-1)),t.G){case 0:return n=new zwe,n;case 1:return a=new yre,a;case 2:return o=new fJe,o;case 3:return f=new dJe,f;default:throw ue(new Yn(qfe+t.zb+t3))}},h.ti=function(t,n){var r,a,o,f,g,w,E,C,L,B,z,V,J,te,fe,Te;switch(t.hk()){case 5:case 52:case 4:return n;case 6:return y6n(n);case 8:case 7:return n==null?null:axn(n);case 9:return n==null?null:fN(Oh((a=Tu(n,!0),a.length>0&&(Xn(0,a.length),a.charCodeAt(0)==43)?(Xn(1,a.length+1),a.substr(1)):a),-128,127)<<24>>24);case 10:return n==null?null:fN(Oh((o=Tu(n,!0),o.length>0&&(Xn(0,o.length),o.charCodeAt(0)==43)?(Xn(1,o.length+1),o.substr(1)):o),-128,127)<<24>>24);case 11:return ei(Kw(this,(Gi(),aAt),n));case 12:return ei(Kw(this,(Gi(),oAt),n));case 13:return n==null?null:new h3e(Tu(n,!0));case 15:case 14:return LTn(n);case 16:return ei(Kw(this,(Gi(),cAt),n));case 17:return q1t((Gi(),n));case 18:return q1t(n);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Tu(n,!0);case 21:case 20:return jTn(n);case 22:return ei(Kw(this,(Gi(),uAt),n));case 23:return ei(Kw(this,(Gi(),lAt),n));case 24:return ei(Kw(this,(Gi(),hAt),n));case 25:return ei(Kw(this,(Gi(),fAt),n));case 26:return ei(Kw(this,(Gi(),dAt),n));case 27:return c6n(n);case 30:return H1t((Gi(),n));case 31:return H1t(n);case 32:return n==null?null:pt(Oh((L=Tu(n,!0),L.length>0&&(Xn(0,L.length),L.charCodeAt(0)==43)?(Xn(1,L.length+1),L.substr(1)):L),lo,Ii));case 33:return n==null?null:new ob((B=Tu(n,!0),B.length>0&&(Xn(0,B.length),B.charCodeAt(0)==43)?(Xn(1,B.length+1),B.substr(1)):B));case 34:return n==null?null:pt(Oh((z=Tu(n,!0),z.length>0&&(Xn(0,z.length),z.charCodeAt(0)==43)?(Xn(1,z.length+1),z.substr(1)):z),lo,Ii));case 36:return n==null?null:ap(KU((V=Tu(n,!0),V.length>0&&(Xn(0,V.length),V.charCodeAt(0)==43)?(Xn(1,V.length+1),V.substr(1)):V)));case 37:return n==null?null:ap(KU((J=Tu(n,!0),J.length>0&&(Xn(0,J.length),J.charCodeAt(0)==43)?(Xn(1,J.length+1),J.substr(1)):J)));case 40:return s7n((Gi(),n));case 42:return V1t((Gi(),n));case 43:return V1t(n);case 44:return n==null?null:new ob((te=Tu(n,!0),te.length>0&&(Xn(0,te.length),te.charCodeAt(0)==43)?(Xn(1,te.length+1),te.substr(1)):te));case 45:return n==null?null:new ob((fe=Tu(n,!0),fe.length>0&&(Xn(0,fe.length),fe.charCodeAt(0)==43)?(Xn(1,fe.length+1),fe.substr(1)):fe));case 46:return Tu(n,!1);case 47:return ei(Kw(this,(Gi(),gAt),n));case 59:case 48:return i7n((Gi(),n));case 49:return ei(Kw(this,(Gi(),pAt),n));case 50:return n==null?null:_E(Oh((Te=Tu(n,!0),Te.length>0&&(Xn(0,Te.length),Te.charCodeAt(0)==43)?(Xn(1,Te.length+1),Te.substr(1)):Te),JG,32767)<<16>>16);case 51:return n==null?null:_E(Oh((f=Tu(n,!0),f.length>0&&(Xn(0,f.length),f.charCodeAt(0)==43)?(Xn(1,f.length+1),f.substr(1)):f),JG,32767)<<16>>16);case 53:return ei(Kw(this,(Gi(),bAt),n));case 55:return n==null?null:_E(Oh((g=Tu(n,!0),g.length>0&&(Xn(0,g.length),g.charCodeAt(0)==43)?(Xn(1,g.length+1),g.substr(1)):g),JG,32767)<<16>>16);case 56:return n==null?null:_E(Oh((w=Tu(n,!0),w.length>0&&(Xn(0,w.length),w.charCodeAt(0)==43)?(Xn(1,w.length+1),w.substr(1)):w),JG,32767)<<16>>16);case 57:return n==null?null:ap(KU((E=Tu(n,!0),E.length>0&&(Xn(0,E.length),E.charCodeAt(0)==43)?(Xn(1,E.length+1),E.substr(1)):E)));case 58:return n==null?null:ap(KU((C=Tu(n,!0),C.length>0&&(Xn(0,C.length),C.charCodeAt(0)==43)?(Xn(1,C.length+1),C.substr(1)):C)));case 60:return n==null?null:pt(Oh((r=Tu(n,!0),r.length>0&&(Xn(0,r.length),r.charCodeAt(0)==43)?(Xn(1,r.length+1),r.substr(1)):r),lo,Ii));case 61:return n==null?null:pt(Oh(Tu(n,!0),lo,Ii));default:throw ue(new Yn(yT+t.xe()+t3))}};var vAt,GPe,wAt,KPe;I(ea,"XMLTypeFactoryImpl",2028),D(594,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1,2044:1,594:1},dat),h.N=!1,h.O=!1;var yAt=!1;I(ea,"XMLTypePackageImpl",594),D(1961,1,{851:1},lk),h.Kk=function(){return xke(),LAt},I(ea,"XMLTypePackageImpl/1",1961),D(1970,1,yi,qS),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/10",1970),D(1971,1,yi,mre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/11",1971),D(1972,1,yi,vre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/12",1972),D(1973,1,yi,p8),h.fk=function(t){return fy(t)},h.gk=function(t){return We(ta,dt,345,t,7,1)},I(ea,"XMLTypePackageImpl/13",1973),D(1974,1,yi,R$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/14",1974),D(1975,1,yi,j$),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(mf,Qy,15,t,0,1)},I(ea,"XMLTypePackageImpl/15",1975),D(1976,1,yi,wre),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(mf,Qy,15,t,0,1)},I(ea,"XMLTypePackageImpl/16",1976),D(1977,1,yi,$$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/17",1977),D(1978,1,yi,z$),h.fk=function(t){return De(t,161)},h.gk=function(t){return We(_T,dt,161,t,0,1)},I(ea,"XMLTypePackageImpl/18",1978),D(1979,1,yi,NI),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/19",1979),D(1962,1,yi,xre),h.fk=function(t){return De(t,857)},h.gk=function(t){return We(gF,Rn,857,t,0,1)},I(ea,"XMLTypePackageImpl/2",1962),D(1980,1,yi,HS),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/20",1980),D(1981,1,yi,kre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/21",1981),D(1982,1,yi,Ere),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/22",1982),D(1983,1,yi,Tre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/23",1983),D(1984,1,yi,Cre),h.fk=function(t){return De(t,195)},h.gk=function(t){return We(Al,dt,195,t,0,2)},I(ea,"XMLTypePackageImpl/24",1984),D(1985,1,yi,Sre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/25",1985),D(1986,1,yi,q$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/26",1986),D(1987,1,yi,_re),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(mf,Qy,15,t,0,1)},I(ea,"XMLTypePackageImpl/27",1987),D(1988,1,yi,Are),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(mf,Qy,15,t,0,1)},I(ea,"XMLTypePackageImpl/28",1988),D(1989,1,yi,Lre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/29",1989),D(1963,1,yi,H$),h.fk=function(t){return De(t,681)},h.gk=function(t){return We(AY,Rn,2119,t,0,1)},I(ea,"XMLTypePackageImpl/3",1963),D(1990,1,yi,Mre),h.fk=function(t){return De(t,17)},h.gk=function(t){return We(ro,dt,17,t,0,1)},I(ea,"XMLTypePackageImpl/30",1990),D(1991,1,yi,Dre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/31",1991),D(1992,1,yi,VS),h.fk=function(t){return De(t,168)},h.gk=function(t){return We(r3,dt,168,t,0,1)},I(ea,"XMLTypePackageImpl/32",1992),D(1993,1,yi,Ire),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/33",1993),D(1994,1,yi,Ore),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/34",1994),D(1995,1,yi,Nre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/35",1995),D(1996,1,yi,Pre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/36",1996),D(1997,1,yi,Bre),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(mf,Qy,15,t,0,1)},I(ea,"XMLTypePackageImpl/37",1997),D(1998,1,yi,Fre),h.fk=function(t){return De(t,15)},h.gk=function(t){return We(mf,Qy,15,t,0,1)},I(ea,"XMLTypePackageImpl/38",1998),D(1999,1,yi,V$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/39",1999),D(1964,1,yi,Rre),h.fk=function(t){return De(t,682)},h.gk=function(t){return We(pF,Rn,2120,t,0,1)},I(ea,"XMLTypePackageImpl/4",1964),D(2e3,1,yi,U$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/40",2e3),D(2001,1,yi,jre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/41",2001),D(2002,1,yi,PI),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/42",2002),D(2003,1,yi,$re),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/43",2003),D(2004,1,yi,G$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/44",2004),D(2005,1,yi,zre),h.fk=function(t){return De(t,191)},h.gk=function(t){return We(i3,dt,191,t,0,1)},I(ea,"XMLTypePackageImpl/45",2005),D(2006,1,yi,K$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/46",2006),D(2007,1,yi,qre),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/47",2007),D(2008,1,yi,W$),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/48",2008),D(2009,1,yi,Y$),h.fk=function(t){return De(t,191)},h.gk=function(t){return We(i3,dt,191,t,0,1)},I(ea,"XMLTypePackageImpl/49",2009),D(1965,1,yi,X$),h.fk=function(t){return De(t,683)},h.gk=function(t){return We(VPe,Rn,2121,t,0,1)},I(ea,"XMLTypePackageImpl/5",1965),D(2010,1,yi,BI),h.fk=function(t){return De(t,168)},h.gk=function(t){return We(r3,dt,168,t,0,1)},I(ea,"XMLTypePackageImpl/50",2010),D(2011,1,yi,w5),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/51",2011),D(2012,1,yi,US),h.fk=function(t){return De(t,17)},h.gk=function(t){return We(ro,dt,17,t,0,1)},I(ea,"XMLTypePackageImpl/52",2012),D(1966,1,yi,S1),h.fk=function(t){return Ia(t)},h.gk=function(t){return We(zt,dt,2,t,6,1)},I(ea,"XMLTypePackageImpl/6",1966),D(1967,1,yi,Q$),h.fk=function(t){return De(t,195)},h.gk=function(t){return We(Al,dt,195,t,0,2)},I(ea,"XMLTypePackageImpl/7",1967),D(1968,1,yi,hk),h.fk=function(t){return hy(t)},h.gk=function(t){return We(Ns,dt,485,t,8,1)},I(ea,"XMLTypePackageImpl/8",1968),D(1969,1,yi,FI),h.fk=function(t){return De(t,222)},h.gk=function(t){return We(jx,dt,222,t,0,1)},I(ea,"XMLTypePackageImpl/9",1969);var nd,N2,GM,LY,ye;D(55,63,lp,ri),I(y2,"RegEx/ParseException",55),D(836,1,{},J$),h.bm=function(t){return tr*16)throw ue(new ri(ai((Jr(),H4t))));r=r*16+o}while(!0);if(this.a!=125)throw ue(new ri(ai((Jr(),V4t))));if(r>TT)throw ue(new ri(ai((Jr(),U4t))));t=r}else{if(o=0,this.c!=0||(o=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(r=o,Li(this),this.c!=0||(o=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));r=r*16+o,t=r}break;case 117:if(a=0,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=n*16+a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=n*16+a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));n=n*16+a,t=n;break;case 118:if(Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=n*16+a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=n*16+a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=n*16+a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=n*16+a,Li(this),this.c!=0||(a=Wm(this.a))<0)throw ue(new ri(ai((Jr(),w2))));if(n=n*16+a,n>TT)throw ue(new ri(ai((Jr(),"parser.descappe.4"))));t=n;break;case 65:case 90:case 122:throw ue(new ri(ai((Jr(),G4t))))}return t},h.dm=function(t){var n,r;switch(t){case 100:r=(this.e&32)==32?_b("Nd",!0):(Di(),MY);break;case 68:r=(this.e&32)==32?_b("Nd",!1):(Di(),ZPe);break;case 119:r=(this.e&32)==32?_b("IsWord",!0):(Di(),lC);break;case 87:r=(this.e&32)==32?_b("IsWord",!1):(Di(),tBe);break;case 115:r=(this.e&32)==32?_b("IsSpace",!0):(Di(),l9);break;case 83:r=(this.e&32)==32?_b("IsSpace",!1):(Di(),eBe);break;default:throw ue(new Ac((n=t,G5t+n.toString(16))))}return r},h.em=function(t){var n,r,a,o,f,g,w,E,C,L,B,z;for(this.b=1,Li(this),n=null,this.c==0&&this.a==94?(Li(this),t?L=(Di(),Di(),new _h(5)):(n=(Di(),Di(),new _h(4)),Eu(n,0,TT),L=new _h(4))):L=(Di(),Di(),new _h(4)),o=!0;(z=this.c)!=1&&!(z==0&&this.a==93&&!o);){if(o=!1,r=this.a,a=!1,z==10)switch(r){case 100:case 68:case 119:case 87:case 115:case 83:Ky(L,this.dm(r)),a=!0;break;case 105:case 73:case 99:case 67:r=this.um(L,r),r<0&&(a=!0);break;case 112:case 80:if(B=w9e(this,r),!B)throw ue(new ri(ai((Jr(),t0e))));Ky(L,B),a=!0;break;default:r=this.cm()}else if(z==20){if(g=Nk(this.i,58,this.d),g<0)throw ue(new ri(ai((Jr(),kSe))));if(w=!0,co(this.i,this.d)==94&&(++this.d,w=!1),f=tf(this.i,this.d,g),E=vlt(f,w,(this.e&512)==512),!E)throw ue(new ri(ai((Jr(),R4t))));if(Ky(L,E),a=!0,g+1>=this.j||co(this.i,g+1)!=93)throw ue(new ri(ai((Jr(),kSe))));this.d=g+2}if(Li(this),!a)if(this.c!=0||this.a!=45)Eu(L,r,r);else{if(Li(this),(z=this.c)==1)throw ue(new ri(ai((Jr(),UG))));z==0&&this.a==93?(Eu(L,r,r),Eu(L,45,45)):(C=this.a,z==10&&(C=this.cm()),Li(this),Eu(L,r,C))}(this.e&m0)==m0&&this.c==0&&this.a==44&&Li(this)}if(this.c==1)throw ue(new ri(ai((Jr(),UG))));return n&&(nL(n,L),L=n),c6(L),eL(L),this.b=0,Li(this),L},h.fm=function(){var t,n,r,a;for(r=this.em(!1);(a=this.c)!=7;)if(t=this.a,a==0&&(t==45||t==38)||a==4){if(Li(this),this.c!=9)throw ue(new ri(ai((Jr(),$4t))));if(n=this.em(!1),a==4)Ky(r,n);else if(t==45)nL(r,n);else if(t==38)Cvt(r,n);else throw ue(new Ac("ASSERT"))}else throw ue(new ri(ai((Jr(),z4t))));return Li(this),r},h.gm=function(){var t,n;return t=this.a-48,n=(Di(),Di(),new coe(12,null,t)),!this.g&&(this.g=new jz),Rz(this.g,new Ewe(t)),Li(this),n},h.hm=function(){return Li(this),Di(),EAt},h.im=function(){return Li(this),Di(),kAt},h.jm=function(){throw ue(new ri(ai((Jr(),bf))))},h.km=function(){throw ue(new ri(ai((Jr(),bf))))},h.lm=function(){return Li(this),Eyn()},h.mm=function(){return Li(this),Di(),CAt},h.nm=function(){return Li(this),Di(),_At},h.om=function(){var t;if(this.d>=this.j||((t=co(this.i,this.d++))&65504)!=64)throw ue(new ri(ai((Jr(),P4t))));return Li(this),Di(),Di(),new ng(0,t-64)},h.pm=function(){return Li(this),SAn()},h.qm=function(){return Li(this),Di(),AAt},h.rm=function(){var t;return t=(Di(),Di(),new ng(0,105)),Li(this),t},h.sm=function(){return Li(this),Di(),SAt},h.tm=function(){return Li(this),Di(),TAt},h.um=function(t,n){return this.cm()},h.vm=function(){return Li(this),Di(),QPe},h.wm=function(){var t,n,r,a,o;if(this.d+1>=this.j)throw ue(new ri(ai((Jr(),I4t))));if(a=-1,n=null,t=co(this.i,this.d),49<=t&&t<=57){if(a=t-48,!this.g&&(this.g=new jz),Rz(this.g,new Ewe(a)),++this.d,co(this.i,this.d)!=41)throw ue(new ri(ai((Jr(),ov))));++this.d}else switch(t==63&&--this.d,Li(this),n=Gke(this),n.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw ue(new ri(ai((Jr(),ov))));break;default:throw ue(new ri(ai((Jr(),O4t))))}if(Li(this),o=jw(this),r=null,o.e==2){if(o.Pm()!=2)throw ue(new ri(ai((Jr(),N4t))));r=o.Lm(1),o=o.Lm(0)}if(this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),Di(),Di(),new Zlt(a,n,o,r)},h.xm=function(){return Li(this),Di(),JPe},h.ym=function(){var t;if(Li(this),t=bH(24,jw(this)),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),t},h.zm=function(){var t;if(Li(this),t=bH(20,jw(this)),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),t},h.Am=function(){var t;if(Li(this),t=bH(22,jw(this)),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),t},h.Bm=function(){var t,n,r,a,o;for(t=0,r=0,n=-1;this.d=this.j)throw ue(new ri(ai((Jr(),ySe))));if(n==45){for(++this.d;this.d=this.j)throw ue(new ri(ai((Jr(),ySe))))}if(n==58){if(++this.d,Li(this),a=Wst(jw(this),t,r),this.c!=7)throw ue(new ri(ai((Jr(),ov))));Li(this)}else if(n==41)++this.d,Li(this),a=Wst(jw(this),t,r);else throw ue(new ri(ai((Jr(),D4t))));return a},h.Cm=function(){var t;if(Li(this),t=bH(21,jw(this)),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),t},h.Dm=function(){var t;if(Li(this),t=bH(23,jw(this)),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),t},h.Em=function(){var t,n;if(Li(this),t=this.f++,n=Bae(jw(this),t),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),n},h.Fm=function(){var t;if(Li(this),t=Bae(jw(this),0),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),t},h.Gm=function(t){return Li(this),this.c==5?(Li(this),oH(t,(Di(),Di(),new Ty(9,t)))):oH(t,(Di(),Di(),new Ty(3,t)))},h.Hm=function(t){var n;return Li(this),n=(Di(),Di(),new B_(2)),this.c==5?(Li(this),Qm(n,WM),Qm(n,t)):(Qm(n,t),Qm(n,WM)),n},h.Im=function(t){return Li(this),this.c==5?(Li(this),Di(),Di(),new Ty(9,t)):(Di(),Di(),new Ty(3,t))},h.a=0,h.b=0,h.c=0,h.d=0,h.e=0,h.f=1,h.g=null,h.j=0,I(y2,"RegEx/RegexParser",836),D(1947,836,{},gJe),h.bm=function(t){return!1},h.cm=function(){return eke(this)},h.dm=function(t){return YE(t)},h.em=function(t){return ywt(this)},h.fm=function(){throw ue(new ri(ai((Jr(),bf))))},h.gm=function(){throw ue(new ri(ai((Jr(),bf))))},h.hm=function(){throw ue(new ri(ai((Jr(),bf))))},h.im=function(){throw ue(new ri(ai((Jr(),bf))))},h.jm=function(){return Li(this),YE(67)},h.km=function(){return Li(this),YE(73)},h.lm=function(){throw ue(new ri(ai((Jr(),bf))))},h.mm=function(){throw ue(new ri(ai((Jr(),bf))))},h.nm=function(){throw ue(new ri(ai((Jr(),bf))))},h.om=function(){return Li(this),YE(99)},h.pm=function(){throw ue(new ri(ai((Jr(),bf))))},h.qm=function(){throw ue(new ri(ai((Jr(),bf))))},h.rm=function(){return Li(this),YE(105)},h.sm=function(){throw ue(new ri(ai((Jr(),bf))))},h.tm=function(){throw ue(new ri(ai((Jr(),bf))))},h.um=function(t,n){return Ky(t,YE(n)),-1},h.vm=function(){return Li(this),Di(),Di(),new ng(0,94)},h.wm=function(){throw ue(new ri(ai((Jr(),bf))))},h.xm=function(){return Li(this),Di(),Di(),new ng(0,36)},h.ym=function(){throw ue(new ri(ai((Jr(),bf))))},h.zm=function(){throw ue(new ri(ai((Jr(),bf))))},h.Am=function(){throw ue(new ri(ai((Jr(),bf))))},h.Bm=function(){throw ue(new ri(ai((Jr(),bf))))},h.Cm=function(){throw ue(new ri(ai((Jr(),bf))))},h.Dm=function(){throw ue(new ri(ai((Jr(),bf))))},h.Em=function(){var t;if(Li(this),t=Bae(jw(this),0),this.c!=7)throw ue(new ri(ai((Jr(),ov))));return Li(this),t},h.Fm=function(){throw ue(new ri(ai((Jr(),bf))))},h.Gm=function(t){return Li(this),oH(t,(Di(),Di(),new Ty(3,t)))},h.Hm=function(t){var n;return Li(this),n=(Di(),Di(),new B_(2)),Qm(n,t),Qm(n,WM),n},h.Im=function(t){return Li(this),Di(),Di(),new Ty(3,t)};var l7=null,cC=null;I(y2,"RegEx/ParserForXMLSchema",1947),D(122,1,CT,Xv),h.Jm=function(t){throw ue(new Ac("Not supported."))},h.Km=function(){return-1},h.Lm=function(t){return null},h.Mm=function(){return null},h.Nm=function(t){},h.Om=function(t){},h.Pm=function(){return 0},h.Ib=function(){return this.Qm(0)},h.Qm=function(t){return this.e==11?".":""},h.e=0;var WPe,uC,KM,xAt,YPe,P4=null,MY,cpe=null,XPe,WM,upe=null,QPe,JPe,ZPe,eBe,tBe,kAt,l9,EAt,TAt,CAt,SAt,lC,_At,AAt,BOn=I(y2,"RegEx/Token",122);D(138,122,{3:1,138:1,122:1},_h),h.Qm=function(t){var n,r,a;if(this.e==4)if(this==XPe)r=".";else if(this==MY)r="\\d";else if(this==lC)r="\\w";else if(this==l9)r="\\s";else{for(a=new Up,a.a+="[",n=0;n0&&(a.a+=","),this.b[n]===this.b[n+1]?Xo(a,gP(this.b[n])):(Xo(a,gP(this.b[n])),a.a+="-",Xo(a,gP(this.b[n+1])));a.a+="]",r=a.a}else if(this==ZPe)r="\\D";else if(this==tBe)r="\\W";else if(this==eBe)r="\\S";else{for(a=new Up,a.a+="[^",n=0;n0&&(a.a+=","),this.b[n]===this.b[n+1]?Xo(a,gP(this.b[n])):(Xo(a,gP(this.b[n])),a.a+="-",Xo(a,gP(this.b[n+1])));a.a+="]",r=a.a}return r},h.a=!1,h.c=!1,I(y2,"RegEx/RangeToken",138),D(592,1,{592:1},Ewe),h.a=0,I(y2,"RegEx/RegexParser/ReferencePosition",592),D(591,1,{3:1,591:1},LZe),h.Fb=function(t){var n;return t==null||!De(t,591)?!1:(n=l(t,591),vn(this.b,n.b)&&this.a==n.a)},h.Hb=function(){return s2(this.b+"/"+K9e(this.a))},h.Ib=function(){return this.c.Qm(this.a)},h.a=0,I(y2,"RegEx/RegularExpression",591),D(228,122,CT,ng),h.Km=function(){return this.a},h.Qm=function(t){var n,r,a;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:a="\\"+hae(this.a&Zs);break;case 12:a="\\f";break;case 10:a="\\n";break;case 13:a="\\r";break;case 9:a="\\t";break;case 27:a="\\e";break;default:this.a>=Io?(r=(n=this.a>>>0,"0"+n.toString(16)),a="\\v"+tf(r,r.length-6,r.length)):a=""+hae(this.a&Zs)}break;case 8:this==QPe||this==JPe?a=""+hae(this.a&Zs):a="\\"+hae(this.a&Zs);break;default:a=null}return a},h.a=0,I(y2,"RegEx/Token/CharToken",228),D(318,122,CT,Ty),h.Lm=function(t){return this.a},h.Nm=function(t){this.b=t},h.Om=function(t){this.c=t},h.Pm=function(){return 1},h.Qm=function(t){var n;if(this.e==3)if(this.c<0&&this.b<0)n=this.a.Qm(t)+"*";else if(this.c==this.b)n=this.a.Qm(t)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)n=this.a.Qm(t)+"{"+this.c+","+this.b+"}";else if(this.c>=0&&this.b<0)n=this.a.Qm(t)+"{"+this.c+",}";else throw ue(new Ac("Token#toString(): CLOSURE "+this.c+Co+this.b));else if(this.c<0&&this.b<0)n=this.a.Qm(t)+"*?";else if(this.c==this.b)n=this.a.Qm(t)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)n=this.a.Qm(t)+"{"+this.c+","+this.b+"}?";else if(this.c>=0&&this.b<0)n=this.a.Qm(t)+"{"+this.c+",}?";else throw ue(new Ac("Token#toString(): NONGREEDYCLOSURE "+this.c+Co+this.b));return n},h.b=0,h.c=0,I(y2,"RegEx/Token/ClosureToken",318),D(837,122,CT,f5e),h.Lm=function(t){return t==0?this.a:this.b},h.Pm=function(){return 2},h.Qm=function(t){var n;return this.b.e==3&&this.b.Lm(0)==this.a?n=this.a.Qm(t)+"+":this.b.e==9&&this.b.Lm(0)==this.a?n=this.a.Qm(t)+"+?":n=this.a.Qm(t)+(""+this.b.Qm(t)),n},I(y2,"RegEx/Token/ConcatToken",837),D(1945,122,CT,Zlt),h.Lm=function(t){if(t==0)return this.d;if(t==1)return this.b;throw ue(new Ac("Internal Error: "+t))},h.Pm=function(){return this.b?2:1},h.Qm=function(t){var n;return this.c>0?n="(?("+this.c+")":this.a.e==8?n="(?("+this.a+")":n="(?"+this.a,this.b?n+=this.d+"|"+this.b+")":n+=this.d+")",n},h.c=0,I(y2,"RegEx/Token/ConditionToken",1945),D(1946,122,CT,Hot),h.Lm=function(t){return this.b},h.Pm=function(){return 1},h.Qm=function(t){return"(?"+(this.a==0?"":K9e(this.a))+(this.c==0?"":K9e(this.c))+":"+this.b.Qm(t)+")"},h.a=0,h.c=0,I(y2,"RegEx/Token/ModifierToken",1946),D(838,122,CT,k5e),h.Lm=function(t){return this.a},h.Pm=function(){return 1},h.Qm=function(t){var n;switch(n=null,this.e){case 6:this.b==0?n="(?:"+this.a.Qm(t)+")":n="("+this.a.Qm(t)+")";break;case 20:n="(?="+this.a.Qm(t)+")";break;case 21:n="(?!"+this.a.Qm(t)+")";break;case 22:n="(?<="+this.a.Qm(t)+")";break;case 23:n="(?"+this.a.Qm(t)+")"}return n},h.b=0,I(y2,"RegEx/Token/ParenToken",838),D(530,122,{3:1,122:1,530:1},coe),h.Mm=function(){return this.b},h.Qm=function(t){return this.e==12?"\\"+this.a:vTn(this.b)},h.a=0,I(y2,"RegEx/Token/StringToken",530),D(477,122,CT,B_),h.Jm=function(t){Qm(this,t)},h.Lm=function(t){return l(xw(this.a,t),122)},h.Pm=function(){return this.a?this.a.a.c.length:0},h.Qm=function(t){var n,r,a,o,f;if(this.e==1){if(this.a.a.c.length==2)n=l(xw(this.a,0),122),r=l(xw(this.a,1),122),r.e==3&&r.Lm(0)==n?o=n.Qm(t)+"+":r.e==9&&r.Lm(0)==n?o=n.Qm(t)+"+?":o=n.Qm(t)+(""+r.Qm(t));else{for(f=new Up,a=0;a=this.c.b:this.a<=this.c.b},h.Sb=function(){return this.b>0},h.Tb=function(){return this.b},h.Vb=function(){return this.b-1},h.Qb=function(){throw ue(new Hp(Z5t))},h.a=0,h.b=0,I(zSe,"ExclusiveRange/RangeIterator",258);var kf=Gk(GG,"C"),Vr=Gk(LL,"I"),ih=Gk(Cx,"Z"),nm=Gk(ML,"J"),Al=Gk(SL,"B"),Na=Gk(_L,"D"),B4=Gk(AL,"F"),h7=Gk(DL,"S"),FOn=ks("org.eclipse.elk.core.labels","ILabelManager"),nBe=ks(So,"DiagnosticChain"),rBe=ks(_5t,"ResourceSet"),iBe=I(So,"InvocationTargetException",null),MAt=(Hz(),Qmn),DAt=DAt=q8n;Vwn($cn),$wn("permProps",[[["locale","default"],[e6t,"gecko1_8"]],[["locale","default"],[e6t,"safari"]]]),DAt(null,"elk",null)}).call(this)}).call(this,typeof Ag<"u"?Ag:typeof self<"u"?self:typeof window<"u"?window:{})},{}],3:[function(u,d,p){function v(A,P){if(!(A instanceof P))throw new TypeError("Cannot call a class as a function")}function b(A,P){if(!A)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return P&&(typeof P=="object"||typeof P=="function")?P:A}function y(A,P){if(typeof P!="function"&&P!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof P);A.prototype=Object.create(P&&P.prototype,{constructor:{value:A,enumerable:!1,writable:!0,configurable:!0}}),P&&(Object.setPrototypeOf?Object.setPrototypeOf(A,P):A.__proto__=P)}var T=u("./elk-api.js").default,_=function(A){y(P,A);function P(){var R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};v(this,P);var F=Object.assign({},R),j=!1;try{u.resolve("web-worker"),j=!0}catch{}if(R.workerUrl)if(j){var K=u("web-worker");F.workerFactory=function(oe){return new K(oe)}}else console.warn(`Web worker requested but 'web-worker' package not installed. Consider installing the package or pass your own 'workerFactory' to ELK's constructor. -... Falling back to non-web worker version.`);if(!F.workerFactory){var ee=u("./elk-worker.min.js"),ie=ee.Worker;F.workerFactory=function(oe){return new ie(oe)}}return b(this,(P.__proto__||Object.getPrototypeOf(P)).call(this,F))}return P}(T);Object.defineProperty(d.exports,"__esModule",{value:!0}),d.exports=_,_.default=_},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(u,d,p){d.exports=Worker},{}]},{},[3])(3)})})(HKe);var Can=HKe.exports;const San=hC(Can),VKe=new San;let Hv={};const _an={};let W7={};const Aan=async function(i,s,u,d,p,v,b){const T=u.select(`[id="${s}"]`).insert("g").attr("class","nodes"),_=Object.keys(i);return await Promise.all(_.map(async function(A){const P=i[A];let R="default";P.classes.length>0&&(R=P.classes.join(" ")),R=R+" flowchart-label";const F=om(P.styles);let j=P.text!==void 0?P.text:P.id;const K={width:0,height:0},ee=[{id:P.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:P.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:P.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:P.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let ie=0,oe="",pe={};switch(P.type){case"round":ie=5,oe="rect";break;case"square":oe="rect";break;case"diamond":oe="question",pe={portConstraints:"FIXED_SIDE"};break;case"hexagon":oe="hexagon";break;case"odd":oe="rect_left_inv_arrow";break;case"lean_right":oe="lean_right";break;case"lean_left":oe="lean_left";break;case"trapezoid":oe="trapezoid";break;case"inv_trapezoid":oe="inv_trapezoid";break;case"odd_right":oe="rect_left_inv_arrow";break;case"circle":oe="circle";break;case"ellipse":oe="ellipse";break;case"stadium":oe="stadium";break;case"subroutine":oe="subroutine";break;case"cylinder":oe="cylinder";break;case"group":oe="rect";break;case"doublecircle":oe="doublecircle";break;default:oe="rect"}const be={labelStyle:F.labelStyle,shape:oe,labelText:j,labelType:P.labelType,rx:ie,ry:ie,class:R,style:F.style,id:P.id,link:P.link,linkTarget:P.linkTarget,tooltip:p.db.getTooltip(P.id)||"",domId:p.db.lookUpDomId(P.id),haveCallback:P.haveCallback,width:P.type==="group"?500:void 0,dir:P.dir,type:P.type,props:P.props,padding:Vh().flowchart.padding};let ae,ne;if(be.type!=="group")ne=await tJ(T,be,P.dir),ae=ne.node().getBBox();else{d.createElementNS("http://www.w3.org/2000/svg","text");const{shapeSvg:de,bbox:X}=await g1(T,be,void 0,!0);K.width=X.width,K.wrappingWidth=Vh().flowchart.wrappingWidth,K.height=X.height,K.labelNode=de.node(),be.labelData=K}const se={id:P.id,ports:P.type==="diamond"?ee:[],layoutOptions:pe,labelText:j,labelData:K,domId:p.db.lookUpDomId(P.id),width:ae==null?void 0:ae.width,height:ae==null?void 0:ae.height,type:P.type,el:ne,parent:v.parentById[P.id]};W7[be.id]=se})),b},UKe=(i,s,u)=>{const d={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return d.TD=d.TB,d[u][s][i]},GKe=(i,s,u)=>{if(Xe.info("getNextPort",{node:i,edgeDirection:s,graphDirection:u}),!Hv[i])switch(u){case"TB":case"TD":Hv[i]={inPosition:"north",outPosition:"south"};break;case"BT":Hv[i]={inPosition:"south",outPosition:"north"};break;case"RL":Hv[i]={inPosition:"east",outPosition:"west"};break;case"LR":Hv[i]={inPosition:"west",outPosition:"east"};break}const d=s==="in"?Hv[i].inPosition:Hv[i].outPosition;return s==="in"?Hv[i].inPosition=UKe(Hv[i].inPosition,s,u):Hv[i].outPosition=UKe(Hv[i].outPosition,s,u),d},Lan=(i,s)=>{let u=i.start,d=i.end;const p=u,v=d,b=W7[u],y=W7[d];return!b||!y?{source:u,target:d}:(b.type==="diamond"&&(u=`${u}-${GKe(u,"out",s)}`),y.type==="diamond"&&(d=`${d}-${GKe(d,"in",s)}`),{source:u,target:d,sourceId:p,targetId:v})},Man=function(i,s,u,d){Xe.info("abc78 edges = ",i);const p=d.insert("g").attr("class","edgeLabels");let v={},b=s.db.getDirection(),y,T;if(i.defaultStyle!==void 0){const _=om(i.defaultStyle);y=_.style,T=_.labelStyle}return i.forEach(function(_){const A="L-"+_.start+"-"+_.end;v[A]===void 0?(v[A]=0,Xe.info("abc78 new entry",A,v[A])):(v[A]++,Xe.info("abc78 new entry",A,v[A]));let P=A+"-"+v[A];Xe.info("abc78 new link id to be used is",A,P,v[A]);const R="LS-"+_.start,F="LE-"+_.end,j={style:"",labelStyle:""};switch(j.minlen=_.length||1,_.type==="arrow_open"?j.arrowhead="none":j.arrowhead="normal",j.arrowTypeStart="arrow_open",j.arrowTypeEnd="arrow_open",_.type){case"double_arrow_cross":j.arrowTypeStart="arrow_cross";case"arrow_cross":j.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":j.arrowTypeStart="arrow_point";case"arrow_point":j.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":j.arrowTypeStart="arrow_circle";case"arrow_circle":j.arrowTypeEnd="arrow_circle";break}let K="",ee="";switch(_.stroke){case"normal":K="fill:none;",y!==void 0&&(K=y),T!==void 0&&(ee=T),j.thickness="normal",j.pattern="solid";break;case"dotted":j.thickness="normal",j.pattern="dotted",j.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":j.thickness="thick",j.pattern="solid",j.style="stroke-width: 3.5px;fill:none;";break}if(_.style!==void 0){const ne=om(_.style);K=ne.style,ee=ne.labelStyle}j.style=j.style+=K,j.labelStyle=j.labelStyle+=ee,_.interpolate!==void 0?j.curve=Ov(_.interpolate,kp):i.defaultInterpolate!==void 0?j.curve=Ov(i.defaultInterpolate,kp):j.curve=Ov(_an.curve,kp),_.text===void 0?_.style!==void 0&&(j.arrowheadStyle="fill: #333"):(j.arrowheadStyle="fill: #333",j.labelpos="c"),j.labelType=_.labelType,j.label=_.text.replace(li.lineBreakRegex,` +... Falling back to non-web worker version.`);if(!F.workerFactory){var ee=u("./elk-worker.min.js"),ie=ee.Worker;F.workerFactory=function(oe){return new ie(oe)}}return b(this,(P.__proto__||Object.getPrototypeOf(P)).call(this,F))}return P}(T);Object.defineProperty(d.exports,"__esModule",{value:!0}),d.exports=_,_.default=_},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(u,d,p){d.exports=Worker},{}]},{},[3])(3)})})(HKe);var Can=HKe.exports;const San=hC(Can),VKe=new San;let Hv={};const _an={};let W7={};const Aan=async function(i,s,u,d,p,v,b){const T=u.select(`[id="${s}"]`).insert("g").attr("class","nodes"),_=Object.keys(i);return await Promise.all(_.map(async function(A){const P=i[A];let R="default";P.classes.length>0&&(R=P.classes.join(" ")),R=R+" flowchart-label";const F=om(P.styles);let j=P.text!==void 0?P.text:P.id;const K={width:0,height:0},ee=[{id:P.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:P.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:P.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:P.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let ie=0,oe="",pe={};switch(P.type){case"round":ie=5,oe="rect";break;case"square":oe="rect";break;case"diamond":oe="question",pe={portConstraints:"FIXED_SIDE"};break;case"hexagon":oe="hexagon";break;case"odd":oe="rect_left_inv_arrow";break;case"lean_right":oe="lean_right";break;case"lean_left":oe="lean_left";break;case"trapezoid":oe="trapezoid";break;case"inv_trapezoid":oe="inv_trapezoid";break;case"odd_right":oe="rect_left_inv_arrow";break;case"circle":oe="circle";break;case"ellipse":oe="ellipse";break;case"stadium":oe="stadium";break;case"subroutine":oe="subroutine";break;case"cylinder":oe="cylinder";break;case"group":oe="rect";break;case"doublecircle":oe="doublecircle";break;default:oe="rect"}const be={labelStyle:F.labelStyle,shape:oe,labelText:j,labelType:P.labelType,rx:ie,ry:ie,class:R,style:F.style,id:P.id,link:P.link,linkTarget:P.linkTarget,tooltip:p.db.getTooltip(P.id)||"",domId:p.db.lookUpDomId(P.id),haveCallback:P.haveCallback,width:P.type==="group"?500:void 0,dir:P.dir,type:P.type,props:P.props,padding:Vh().flowchart.padding};let ae,ne;if(be.type!=="group")ne=await tJ(T,be,P.dir),ae=ne.node().getBBox();else{d.createElementNS("http://www.w3.org/2000/svg","text");const{shapeSvg:de,bbox:X}=await g1(T,be,void 0,!0);K.width=X.width,K.wrappingWidth=Vh().flowchart.wrappingWidth,K.height=X.height,K.labelNode=de.node(),be.labelData=K}const se={id:P.id,ports:P.type==="diamond"?ee:[],layoutOptions:pe,labelText:j,labelData:K,domId:p.db.lookUpDomId(P.id),width:ae==null?void 0:ae.width,height:ae==null?void 0:ae.height,type:P.type,el:ne,parent:v.parentById[P.id]};W7[be.id]=se})),b},UKe=(i,s,u)=>{const d={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return d.TD=d.TB,d[u][s][i]},GKe=(i,s,u)=>{if(Xe.info("getNextPort",{node:i,edgeDirection:s,graphDirection:u}),!Hv[i])switch(u){case"TB":case"TD":Hv[i]={inPosition:"north",outPosition:"south"};break;case"BT":Hv[i]={inPosition:"south",outPosition:"north"};break;case"RL":Hv[i]={inPosition:"east",outPosition:"west"};break;case"LR":Hv[i]={inPosition:"west",outPosition:"east"};break}const d=s==="in"?Hv[i].inPosition:Hv[i].outPosition;return s==="in"?Hv[i].inPosition=UKe(Hv[i].inPosition,s,u):Hv[i].outPosition=UKe(Hv[i].outPosition,s,u),d},Lan=(i,s)=>{let u=i.start,d=i.end;const p=u,v=d,b=W7[u],y=W7[d];return!b||!y?{source:u,target:d}:(b.type==="diamond"&&(u=`${u}-${GKe(u,"out",s)}`),y.type==="diamond"&&(d=`${d}-${GKe(d,"in",s)}`),{source:u,target:d,sourceId:p,targetId:v})},Man=function(i,s,u,d){Xe.info("abc78 edges = ",i);const p=d.insert("g").attr("class","edgeLabels");let v={},b=s.db.getDirection(),y,T;if(i.defaultStyle!==void 0){const _=om(i.defaultStyle);y=_.style,T=_.labelStyle}return i.forEach(function(_){const A="L-"+_.start+"-"+_.end;v[A]===void 0?(v[A]=0,Xe.info("abc78 new entry",A,v[A])):(v[A]++,Xe.info("abc78 new entry",A,v[A]));let P=A+"-"+v[A];Xe.info("abc78 new link id to be used is",A,P,v[A]);const R="LS-"+_.start,F="LE-"+_.end,j={style:"",labelStyle:""};switch(j.minlen=_.length||1,_.type==="arrow_open"?j.arrowhead="none":j.arrowhead="normal",j.arrowTypeStart="arrow_open",j.arrowTypeEnd="arrow_open",_.type){case"double_arrow_cross":j.arrowTypeStart="arrow_cross";case"arrow_cross":j.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":j.arrowTypeStart="arrow_point";case"arrow_point":j.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":j.arrowTypeStart="arrow_circle";case"arrow_circle":j.arrowTypeEnd="arrow_circle";break}let K="",ee="";switch(_.stroke){case"normal":K="fill:none;",y!==void 0&&(K=y),T!==void 0&&(ee=T),j.thickness="normal",j.pattern="solid";break;case"dotted":j.thickness="normal",j.pattern="dotted",j.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":j.thickness="thick",j.pattern="solid",j.style="stroke-width: 3.5px;fill:none;";break}if(_.style!==void 0){const ne=om(_.style);K=ne.style,ee=ne.labelStyle}j.style=j.style+=K,j.labelStyle=j.labelStyle+=ee,_.interpolate!==void 0?j.curve=Ov(_.interpolate,kp):i.defaultInterpolate!==void 0?j.curve=Ov(i.defaultInterpolate,kp):j.curve=Ov(_an.curve,kp),_.text===void 0?_.style!==void 0&&(j.arrowheadStyle="fill: #333"):(j.arrowheadStyle="fill: #333",j.labelpos="c"),j.labelType=_.labelType,j.label=_.text.replace(ci.lineBreakRegex,` `),_.style===void 0&&(j.style=j.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),j.labelStyle=j.labelStyle.replace("color:","fill:"),j.id=P,j.classes="flowchart-link "+R+" "+F;const ie=zme(p,j),{source:oe,target:pe,sourceId:be,targetId:ae}=Lan(_,b);Xe.debug("abc78 source and target",oe,pe),u.edges.push({id:"e"+_.start+_.end,sources:[oe],targets:[pe],sourceId:be,targetId:ae,labelEl:ie,labels:[{width:j.width,height:j.height,orgWidth:j.width,orgHeight:j.height,text:j.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:j})}),u},Dan=function(i,s,u,d,p){let v="";d&&(v=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,v=v.replace(/\(/g,"\\("),v=v.replace(/\)/g,"\\)")),AUe(i,s,v,p,u)},Ian=function(i,s){return Xe.info("Extracting classes"),s.db.getClasses()},Oan=function(i){const s={parentById:{},childrenById:{}},u=i.getSubGraphs();return Xe.info("Subgraphs - ",u),u.forEach(function(d){d.nodes.forEach(function(p){s.parentById[p]=d.id,s.childrenById[d.id]===void 0&&(s.childrenById[d.id]=[]),s.childrenById[d.id].push(p)})}),u.forEach(function(d){d.id,s.parentById[d.id]!==void 0&&s.parentById[d.id]}),s},Nan=function(i,s,u){const d=Tan(i,s,u);if(d===void 0||d==="root")return{x:0,y:0};const p=W7[d].offset;return{x:p.posX,y:p.posY}},Pan=function(i,s,u,d,p,v){const b=Nan(s.sourceId,s.targetId,p),y=s.sections[0].startPoint,T=s.sections[0].endPoint,A=(s.sections[0].bendPoints?s.sections[0].bendPoints:[]).map(pe=>[pe.x+b.x,pe.y+b.y]),P=[[y.x+b.x,y.y+b.y],...A,[T.x+b.x,T.y+b.y]],{x:R,y:F}=_Ue(s.edgeData),j=k7().x(R).y(F).curve(kp),K=i.insert("path").attr("d",j(P)).attr("class","path "+u.classes).attr("fill","none"),ee=i.insert("g").attr("class","edgeLabel"),ie=Ir(ee.node().appendChild(s.labelEl)),oe=ie.node().firstChild.getBoundingClientRect();ie.attr("width",oe.width),ie.attr("height",oe.height),ee.attr("transform",`translate(${s.labels[0].x+b.x}, ${s.labels[0].y+b.y})`),Dan(K,u,d.type,d.arrowMarkerAbsolute,v)},KKe=(i,s)=>{i.forEach(u=>{u.children||(u.children=[]);const d=s.childrenById[u.id];d&&d.forEach(p=>{u.children.push(W7[p])}),KKe(u.children,s)})},Ban=async function(i,s,u,d){var se;d.db.clear(),W7={},Hv={},d.db.setGen("gen-2"),d.parser.parse(i);const p=Ir("body").append("div").attr("style","height:400px").attr("id","cy");let v={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","org.eclipse.elk.padding":"[top=100, left=100, bottom=110, right=110]","elk.layered.spacing.edgeNodeBetweenLayers":"30","elk.direction":"DOWN"},children:[],edges:[]};switch(Xe.info("Drawing flowchart using v3 renderer",VKe),d.db.getDirection()){case"BT":v.layoutOptions["elk.direction"]="UP";break;case"TB":v.layoutOptions["elk.direction"]="DOWN";break;case"LR":v.layoutOptions["elk.direction"]="RIGHT";break;case"RL":v.layoutOptions["elk.direction"]="LEFT";break}const{securityLevel:y,flowchart:T}=Vh();let _;y==="sandbox"&&(_=Ir("#i"+s));const A=Ir(y==="sandbox"?_.nodes()[0].contentDocument.body:"body"),P=y==="sandbox"?_.nodes()[0].contentDocument:document,R=A.select(`[id="${s}"]`);Sme(R,["point","circle","cross"],d.type,s);const j=d.db.getVertices();let K;const ee=d.db.getSubGraphs();Xe.info("Subgraphs - ",ee);for(let de=ee.length-1;de>=0;de--)K=ee[de],d.db.addVertex(K.id,{text:K.title,type:K.labelType},"group",void 0,K.classes,K.dir);const ie=R.insert("g").attr("class","subgraphs"),oe=Oan(d.db);v=await Aan(j,s,A,P,d,oe,v);const pe=R.insert("g").attr("class","edges edgePath"),be=d.db.getEdges();v=Man(be,d,v,R),Object.keys(W7).forEach(de=>{const X=W7[de];X.parent||v.children.push(X),oe.childrenById[de]!==void 0&&(X.labels=[{text:X.labelText,layoutOptions:{"nodeLabels.placement":"[H_CENTER, V_TOP, INSIDE]"},width:X.labelData.width,height:X.labelData.height}],delete X.x,delete X.y,delete X.width,delete X.height)}),KKe(v.children,oe),Xe.info("after layout",JSON.stringify(v,null,2));const ne=await VKe.layout(v);WKe(0,0,ne.children,R,ie,d,0),Xe.info("after layout",ne),(se=ne.edges)==null||se.map(de=>{Pan(pe,de,de.edgeData,d,oe,s)}),y9({},R,T.diagramPadding,T.useMaxWidth),p.remove()},WKe=(i,s,u,d,p,v,b)=>{u.forEach(function(y){if(y)if(W7[y.id].offset={posX:y.x+i,posY:y.y+s,x:i,y:s,depth:b,width:y.width,height:y.height},y.type==="group"){const T=p.insert("g").attr("class","subgraph");T.insert("rect").attr("class","subgraph subgraph-lvl-"+b%5+" node").attr("x",y.x+i).attr("y",y.y+s).attr("width",y.width).attr("height",y.height);const _=T.insert("g").attr("class","label"),A=Vh().flowchart.htmlLabels?y.labelData.width/2:0;_.attr("transform",`translate(${y.labels[0].x+i+y.x+A}, ${y.labels[0].y+s+y.y+3})`),_.node().appendChild(y.labelData.labelNode),Xe.info("Id (UGH)= ",y.type,y.labels)}else Xe.info("Id (UGH)= ",y.id),y.el.attr("transform",`translate(${y.x+i+y.width/2}, ${y.y+s+y.height/2})`)}),u.forEach(function(y){y&&y.type==="group"&&WKe(i+y.x,s+y.y,y.children,d,p,v,b+1)})},Fan={getClasses:Ian,draw:Ban},Ran=i=>{let s="";for(let u=0;u<5;u++)s+=` .subgraph-lvl-${u} { fill: ${i[`surface${u}`]}; @@ -1907,14 +1907,14 @@ Licensed under The MIT License (http://opensource.org/licenses/MIT) Expecting `+Ce.join(", ")+", got '"+(this.terminals_[W]||W)+"'":ke="Parse error on line "+(ee+1)+": Unexpected "+(W==pe?"end of input":"'"+(this.terminals_[W]||W)+"'"),this.parseError(ke,{text:ae.match,token:this.terminals_[W]||W,line:ae.yylineno,loc:de,expected:Ce})}if(U[0]instanceof Array&&U.length>1)throw new Error("Parse Error: multiple actions possible at state: "+xe+", token: "+W);switch(U[0]){case 1:A.push(W),R.push(ae.yytext),F.push(ae.yylloc),A.push(U[1]),W=null,ie=ae.yyleng,K=ae.yytext,ee=ae.yylineno,de=ae.yylloc;break;case 2:if(Ie=this.productions_[U[1]][1],Pe.$=R[R.length-Ie],Pe._$={first_line:F[F.length-(Ie||1)].first_line,last_line:F[F.length-1].last_line,first_column:F[F.length-(Ie||1)].first_column,last_column:F[F.length-1].last_column},X&&(Pe._$.range=[F[F.length-(Ie||1)].range[0],F[F.length-1].range[1]]),Fe=this.performAction.apply(Pe,[K,ie,ee,ne.yy,U[1],R,F].concat(be)),typeof Fe<"u")return Fe;Ie&&(A=A.slice(0,-1*Ie*2),R=R.slice(0,-1*Ie),F=F.slice(0,-1*Ie)),A.push(this.productions_[U[1]][0]),R.push(Pe.$),F.push(Pe._$),Se=j[A[A.length-2]][A[A.length-1]],A.push(Se);break;case 3:return!0}}return!0}},v=function(){var y={EOF:1,parseError:function(_,A){if(this.yy.parser)this.yy.parser.parseError(_,A);else throw new Error(_)},setInput:function(T,_){return this.yy=_||this.yy||{},this._input=T,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var T=this._input[0];this.yytext+=T,this.yyleng++,this.offset++,this.match+=T,this.matched+=T;var _=T.match(/(?:\r\n?|\n).*/g);return _?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),T},unput:function(T){var _=T.length,A=T.split(/(?:\r\n?|\n)/g);this._input=T+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-_),this.offset-=_;var P=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),A.length-1&&(this.yylineno-=A.length-1);var R=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:A?(A.length===P.length?this.yylloc.first_column:0)+P[P.length-A.length].length-A[0].length:this.yylloc.first_column-_},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-_]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(T){this.unput(this.match.slice(T))},pastInput:function(){var T=this.matched.substr(0,this.matched.length-this.match.length);return(T.length>20?"...":"")+T.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var T=this.match;return T.length<20&&(T+=this._input.substr(0,20-T.length)),(T.substr(0,20)+(T.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var T=this.pastInput(),_=new Array(T.length+1).join("-");return T+this.upcomingInput()+` `+_+"^"},test_match:function(T,_){var A,P,R;if(this.options.backtrack_lexer&&(R={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(R.yylloc.range=this.yylloc.range.slice(0))),P=T[0].match(/(?:\r\n?|\n).*/g),P&&(this.yylineno+=P.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:P?P[P.length-1].length-P[P.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+T[0].length},this.yytext+=T[0],this.match+=T[0],this.matches=T,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(T[0].length),this.matched+=T[0],A=this.performAction.call(this,this.yy,this,_,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),A)return A;if(this._backtrack){for(var F in R)this[F]=R[F];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var T,_,A,P;this._more||(this.yytext="",this.match="");for(var R=this._currentRules(),F=0;F_[0].length)){if(_=A,P=F,this.options.backtrack_lexer){if(T=this.test_match(A,R[F]),T!==!1)return T;if(this._backtrack){_=!1;continue}else return!1}else if(!this.options.flex)break}return _?(T=this.test_match(_,R[P]),T!==!1?T:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var _=this.next();return _||this.lex()},begin:function(_){this.conditionStack.push(_)},popState:function(){var _=this.conditionStack.length-1;return _>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(_){return _=this.conditionStack.length-1-Math.abs(_||0),_>=0?this.conditionStack[_]:"INITIAL"},pushState:function(_){this.begin(_)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(_,A,P,R){switch(P){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},rules:[/^(?:sankey-beta\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return y}();p.lexer=v;function b(){this.yy={}}return b.prototype=p,p.Parser=b,new b}();iwe.parser=iwe;const NJ=iwe;let PJ=[],BJ=[],tI={};const Oon=()=>{PJ=[],BJ=[],tI={},Pg()};class Non{constructor(s,u,d=0){this.source=s,this.target=u,this.value=d}}const Pon=(i,s,u)=>{PJ.push(new Non(i,s,u))};class Bon{constructor(s){this.ID=s}}const Fon={nodesMap:tI,getConfig:()=>qt().sankey,getNodes:()=>BJ,getLinks:()=>PJ,getGraph:()=>({nodes:BJ.map(i=>({id:i.ID})),links:PJ.map(i=>({source:i.source.ID,target:i.target.ID,value:i.value}))}),addLink:Pon,findOrCreateNode:i=>(i=li.sanitizeText(i,qt()),tI[i]||(tI[i]=new Bon(i),BJ.push(tI[i])),tI[i]),getAccTitle:Cp,setAccTitle:Bg,getAccDescription:_p,setAccDescription:Sp,getDiagramTitle:Ap,setDiagramTitle:cm,clear:Oon};function vWe(i,s){let u;if(s===void 0)for(const d of i)d!=null&&(u=d)&&(u=d);else{let d=-1;for(let p of i)(p=s(p,++d,i))!=null&&(u=p)&&(u=p)}return u}function wWe(i,s){let u;if(s===void 0)for(const d of i)d!=null&&(u>d||u===void 0&&d>=d)&&(u=d);else{let d=-1;for(let p of i)(p=s(p,++d,i))!=null&&(u>p||u===void 0&&p>=p)&&(u=p)}return u}function swe(i,s){let u=0;if(s===void 0)for(let d of i)(d=+d)&&(u+=d);else{let d=-1;for(let p of i)(p=+s(p,++d,i))&&(u+=p)}return u}function Ron(i){return i.target.depth}function jon(i){return i.depth}function $on(i,s){return s-1-i.height}function yWe(i,s){return i.sourceLinks.length?i.depth:s-1}function zon(i){return i.targetLinks.length?i.depth:i.sourceLinks.length?wWe(i.sourceLinks,Ron)-1:0}function FJ(i){return function(){return i}}function xWe(i,s){return RJ(i.source,s.source)||i.index-s.index}function kWe(i,s){return RJ(i.target,s.target)||i.index-s.index}function RJ(i,s){return i.y0-s.y0}function awe(i){return i.value}function qon(i){return i.index}function Hon(i){return i.nodes}function Von(i){return i.links}function EWe(i,s){const u=i.get(s);if(!u)throw new Error("missing: "+s);return u}function TWe({nodes:i}){for(const s of i){let u=s.y0,d=u;for(const p of s.sourceLinks)p.y0=u+p.width/2,u+=p.width;for(const p of s.targetLinks)p.y1=d+p.width/2,d+=p.width}}function Uon(){let i=0,s=0,u=1,d=1,p=24,v=8,b,y=qon,T=yWe,_,A,P=Hon,R=Von,F=6;function j(){const Pe={nodes:P.apply(null,arguments),links:R.apply(null,arguments)};return K(Pe),ee(Pe),ie(Pe),oe(Pe),ae(Pe),TWe(Pe),Pe}j.update=function(Pe){return TWe(Pe),Pe},j.nodeId=function(Pe){return arguments.length?(y=typeof Pe=="function"?Pe:FJ(Pe),j):y},j.nodeAlign=function(Pe){return arguments.length?(T=typeof Pe=="function"?Pe:FJ(Pe),j):T},j.nodeSort=function(Pe){return arguments.length?(_=Pe,j):_},j.nodeWidth=function(Pe){return arguments.length?(p=+Pe,j):p},j.nodePadding=function(Pe){return arguments.length?(v=b=+Pe,j):v},j.nodes=function(Pe){return arguments.length?(P=typeof Pe=="function"?Pe:FJ(Pe),j):P},j.links=function(Pe){return arguments.length?(R=typeof Pe=="function"?Pe:FJ(Pe),j):R},j.linkSort=function(Pe){return arguments.length?(A=Pe,j):A},j.size=function(Pe){return arguments.length?(i=s=0,u=+Pe[0],d=+Pe[1],j):[u-i,d-s]},j.extent=function(Pe){return arguments.length?(i=+Pe[0][0],u=+Pe[1][0],s=+Pe[0][1],d=+Pe[1][1],j):[[i,s],[u,d]]},j.iterations=function(Pe){return arguments.length?(F=+Pe,j):F};function K({nodes:Pe,links:je}){for(const[Se,Ce]of Pe.entries())Ce.index=Se,Ce.sourceLinks=[],Ce.targetLinks=[];const Ie=new Map(Pe.map((Se,Ce)=>[y(Se,Ce,Pe),Se]));for(const[Se,Ce]of je.entries()){Ce.index=Se;let{source:ke,target:Ke}=Ce;typeof ke!="object"&&(ke=Ce.source=EWe(Ie,ke)),typeof Ke!="object"&&(Ke=Ce.target=EWe(Ie,Ke)),ke.sourceLinks.push(Ce),Ke.targetLinks.push(Ce)}if(A!=null)for(const{sourceLinks:Se,targetLinks:Ce}of Pe)Se.sort(A),Ce.sort(A)}function ee({nodes:Pe}){for(const je of Pe)je.value=je.fixedValue===void 0?Math.max(swe(je.sourceLinks,awe),swe(je.targetLinks,awe)):je.fixedValue}function ie({nodes:Pe}){const je=Pe.length;let Ie=new Set(Pe),Se=new Set,Ce=0;for(;Ie.size;){for(const ke of Ie){ke.depth=Ce;for(const{target:Ke}of ke.sourceLinks)Se.add(Ke)}if(++Ce>je)throw new Error("circular link");Ie=Se,Se=new Set}}function oe({nodes:Pe}){const je=Pe.length;let Ie=new Set(Pe),Se=new Set,Ce=0;for(;Ie.size;){for(const ke of Ie){ke.height=Ce;for(const{source:Ke}of ke.targetLinks)Se.add(Ke)}if(++Ce>je)throw new Error("circular link");Ie=Se,Se=new Set}}function pe({nodes:Pe}){const je=vWe(Pe,Ce=>Ce.depth)+1,Ie=(u-i-p)/(je-1),Se=new Array(je);for(const Ce of Pe){const ke=Math.max(0,Math.min(je-1,Math.floor(T.call(null,Ce,je))));Ce.layer=ke,Ce.x0=i+ke*Ie,Ce.x1=Ce.x0+p,Se[ke]?Se[ke].push(Ce):Se[ke]=[Ce]}if(_)for(const Ce of Se)Ce.sort(_);return Se}function be(Pe){const je=wWe(Pe,Ie=>(d-s-(Ie.length-1)*b)/swe(Ie,awe));for(const Ie of Pe){let Se=s;for(const Ce of Ie){Ce.y0=Se,Ce.y1=Se+Ce.value*je,Se=Ce.y1+b;for(const ke of Ce.sourceLinks)ke.width=ke.value*je}Se=(d-Se+b)/(Ie.length+1);for(let Ce=0;CeIe.length)-1)),be(je);for(let Ie=0;Ie0))continue;let gn=(Ft/Ne-Ke.y0)*je;Ke.y0+=gn,Ke.y1+=gn,W(Ke)}_===void 0&&ke.sort(RJ),de(ke,Ie)}}function se(Pe,je,Ie){for(let Se=Pe.length,Ce=Se-2;Ce>=0;--Ce){const ke=Pe[Ce];for(const Ke of ke){let Ft=0,Ne=0;for(const{target:_t,value:Et}of Ke.sourceLinks){let Gt=Et*(_t.layer-Ke.layer);Ft+=Fe(Ke,_t)*Gt,Ne+=Gt}if(!(Ne>0))continue;let gn=(Ft/Ne-Ke.y0)*je;Ke.y0+=gn,Ke.y1+=gn,W(Ke)}_===void 0&&ke.sort(RJ),de(ke,Ie)}}function de(Pe,je){const Ie=Pe.length>>1,Se=Pe[Ie];ge(Pe,Se.y0-b,Ie-1,je),X(Pe,Se.y1+b,Ie+1,je),ge(Pe,d,Pe.length-1,je),X(Pe,s,0,je)}function X(Pe,je,Ie,Se){for(;Ie1e-6&&(Ce.y0+=ke,Ce.y1+=ke),je=Ce.y1+b}}function ge(Pe,je,Ie,Se){for(;Ie>=0;--Ie){const Ce=Pe[Ie],ke=(Ce.y1-je)*Se;ke>1e-6&&(Ce.y0-=ke,Ce.y1-=ke),je=Ce.y0-b}}function W({sourceLinks:Pe,targetLinks:je}){if(A===void 0){for(const{source:{sourceLinks:Ie}}of je)Ie.sort(kWe);for(const{target:{targetLinks:Ie}}of Pe)Ie.sort(xWe)}}function xe(Pe){if(A===void 0)for(const{sourceLinks:je,targetLinks:Ie}of Pe)je.sort(kWe),Ie.sort(xWe)}function U(Pe,je){let Ie=Pe.y0-(Pe.sourceLinks.length-1)*b/2;for(const{target:Se,width:Ce}of Pe.sourceLinks){if(Se===je)break;Ie+=Ce+b}for(const{source:Se,width:Ce}of je.targetLinks){if(Se===Pe)break;Ie-=Ce}return Ie}function Fe(Pe,je){let Ie=je.y0-(je.targetLinks.length-1)*b/2;for(const{source:Se,width:Ce}of je.targetLinks){if(Se===Pe)break;Ie+=Ce+b}for(const{target:Se,width:Ce}of Pe.sourceLinks){if(Se===je)break;Ie-=Ce}return Ie}return j}var owe=Math.PI,cwe=2*owe,aS=1e-6,Gon=cwe-aS;function uwe(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function CWe(){return new uwe}uwe.prototype=CWe.prototype={constructor:uwe,moveTo:function(i,s){this._+="M"+(this._x0=this._x1=+i)+","+(this._y0=this._y1=+s)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(i,s){this._+="L"+(this._x1=+i)+","+(this._y1=+s)},quadraticCurveTo:function(i,s,u,d){this._+="Q"+ +i+","+ +s+","+(this._x1=+u)+","+(this._y1=+d)},bezierCurveTo:function(i,s,u,d,p,v){this._+="C"+ +i+","+ +s+","+ +u+","+ +d+","+(this._x1=+p)+","+(this._y1=+v)},arcTo:function(i,s,u,d,p){i=+i,s=+s,u=+u,d=+d,p=+p;var v=this._x1,b=this._y1,y=u-i,T=d-s,_=v-i,A=b-s,P=_*_+A*A;if(p<0)throw new Error("negative radius: "+p);if(this._x1===null)this._+="M"+(this._x1=i)+","+(this._y1=s);else if(P>aS)if(!(Math.abs(A*y-T*_)>aS)||!p)this._+="L"+(this._x1=i)+","+(this._y1=s);else{var R=u-v,F=d-b,j=y*y+T*T,K=R*R+F*F,ee=Math.sqrt(j),ie=Math.sqrt(P),oe=p*Math.tan((owe-Math.acos((j+P-K)/(2*ee*ie)))/2),pe=oe/ie,be=oe/ee;Math.abs(pe-1)>aS&&(this._+="L"+(i+pe*_)+","+(s+pe*A)),this._+="A"+p+","+p+",0,0,"+ +(A*R>_*F)+","+(this._x1=i+be*y)+","+(this._y1=s+be*T)}},arc:function(i,s,u,d,p,v){i=+i,s=+s,u=+u,v=!!v;var b=u*Math.cos(d),y=u*Math.sin(d),T=i+b,_=s+y,A=1^v,P=v?d-p:p-d;if(u<0)throw new Error("negative radius: "+u);this._x1===null?this._+="M"+T+","+_:(Math.abs(this._x1-T)>aS||Math.abs(this._y1-_)>aS)&&(this._+="L"+T+","+_),u&&(P<0&&(P=P%cwe+cwe),P>Gon?this._+="A"+u+","+u+",0,1,"+A+","+(i-b)+","+(s-y)+"A"+u+","+u+",0,1,"+A+","+(this._x1=T)+","+(this._y1=_):P>aS&&(this._+="A"+u+","+u+",0,"+ +(P>=owe)+","+A+","+(this._x1=i+u*Math.cos(p))+","+(this._y1=s+u*Math.sin(p))))},rect:function(i,s,u,d){this._+="M"+(this._x0=this._x1=+i)+","+(this._y0=this._y1=+s)+"h"+ +u+"v"+ +d+"h"+-u+"Z"},toString:function(){return this._}};function SWe(i){return function(){return i}}function Kon(i){return i[0]}function Won(i){return i[1]}var Yon=Array.prototype.slice;function Xon(i){return i.source}function Qon(i){return i.target}function Jon(i){var s=Xon,u=Qon,d=Kon,p=Won,v=null;function b(){var y,T=Yon.call(arguments),_=s.apply(this,T),A=u.apply(this,T);if(v||(v=y=CWe()),i(v,+d.apply(this,(T[0]=_,T)),+p.apply(this,T),+d.apply(this,(T[0]=A,T)),+p.apply(this,T)),y)return v=null,y+""||null}return b.source=function(y){return arguments.length?(s=y,b):s},b.target=function(y){return arguments.length?(u=y,b):u},b.x=function(y){return arguments.length?(d=typeof y=="function"?y:SWe(+y),b):d},b.y=function(y){return arguments.length?(p=typeof y=="function"?y:SWe(+y),b):p},b.context=function(y){return arguments.length?(v=y??null,b):v},b}function Zon(i,s,u,d,p){i.moveTo(s,u),i.bezierCurveTo(s=(s+d)/2,u,s,p,d,p)}function ecn(){return Jon(Zon)}function tcn(i){return[i.source.x1,i.y0]}function ncn(i){return[i.target.x0,i.y1]}function rcn(){return ecn().source(tcn).target(ncn)}const _We=class aBe{static next(s){return new aBe(s+ ++aBe.count)}constructor(s){this.id=s,this.href=`#${s}`}toString(){return"url("+this.href+")"}};_We.count=0;let AWe=_We;const icn={left:jon,right:$on,center:zon,justify:yWe},scn={draw:function(i,s,u,d){const{securityLevel:p,sankey:v}=qt(),b=Zje.sankey;let y;p==="sandbox"&&(y=Ir("#i"+s));const T=Ir(p==="sandbox"?y.nodes()[0].contentDocument.body:"body"),_=p==="sandbox"?T.select(`[id="${s}"]`):Ir(`[id="${s}"]`),A=(v==null?void 0:v.width)??b.width,P=(v==null?void 0:v.height)??b.width,R=(v==null?void 0:v.useMaxWidth)??b.useMaxWidth,F=(v==null?void 0:v.nodeAlignment)??b.nodeAlignment,j=(v==null?void 0:v.prefix)??b.prefix,K=(v==null?void 0:v.suffix)??b.suffix,ee=(v==null?void 0:v.showValues)??b.showValues,ie=d.db.getGraph(),oe=icn[F],pe=10;Uon().nodeId(ge=>ge.id).nodeWidth(pe).nodePadding(10+(ee?15:0)).nodeAlign(oe).extent([[0,0],[A,P]])(ie);const ae=_F(zFe);_.append("g").attr("class","nodes").selectAll(".node").data(ie.nodes).join("g").attr("class","node").attr("id",ge=>(ge.uid=AWe.next("node-")).id).attr("transform",function(ge){return"translate("+ge.x0+","+ge.y0+")"}).attr("x",ge=>ge.x0).attr("y",ge=>ge.y0).append("rect").attr("height",ge=>ge.y1-ge.y0).attr("width",ge=>ge.x1-ge.x0).attr("fill",ge=>ae(ge.id));const ne=({id:ge,value:W})=>ee?`${ge} +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var _=this.next();return _||this.lex()},begin:function(_){this.conditionStack.push(_)},popState:function(){var _=this.conditionStack.length-1;return _>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(_){return _=this.conditionStack.length-1-Math.abs(_||0),_>=0?this.conditionStack[_]:"INITIAL"},pushState:function(_){this.begin(_)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(_,A,P,R){switch(P){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},rules:[/^(?:sankey-beta\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return y}();p.lexer=v;function b(){this.yy={}}return b.prototype=p,p.Parser=b,new b}();iwe.parser=iwe;const NJ=iwe;let PJ=[],BJ=[],tI={};const Oon=()=>{PJ=[],BJ=[],tI={},Pg()};class Non{constructor(s,u,d=0){this.source=s,this.target=u,this.value=d}}const Pon=(i,s,u)=>{PJ.push(new Non(i,s,u))};class Bon{constructor(s){this.ID=s}}const Fon={nodesMap:tI,getConfig:()=>qt().sankey,getNodes:()=>BJ,getLinks:()=>PJ,getGraph:()=>({nodes:BJ.map(i=>({id:i.ID})),links:PJ.map(i=>({source:i.source.ID,target:i.target.ID,value:i.value}))}),addLink:Pon,findOrCreateNode:i=>(i=ci.sanitizeText(i,qt()),tI[i]||(tI[i]=new Bon(i),BJ.push(tI[i])),tI[i]),getAccTitle:Cp,setAccTitle:Bg,getAccDescription:_p,setAccDescription:Sp,getDiagramTitle:Ap,setDiagramTitle:cm,clear:Oon};function vWe(i,s){let u;if(s===void 0)for(const d of i)d!=null&&(u=d)&&(u=d);else{let d=-1;for(let p of i)(p=s(p,++d,i))!=null&&(u=p)&&(u=p)}return u}function wWe(i,s){let u;if(s===void 0)for(const d of i)d!=null&&(u>d||u===void 0&&d>=d)&&(u=d);else{let d=-1;for(let p of i)(p=s(p,++d,i))!=null&&(u>p||u===void 0&&p>=p)&&(u=p)}return u}function swe(i,s){let u=0;if(s===void 0)for(let d of i)(d=+d)&&(u+=d);else{let d=-1;for(let p of i)(p=+s(p,++d,i))&&(u+=p)}return u}function Ron(i){return i.target.depth}function jon(i){return i.depth}function $on(i,s){return s-1-i.height}function yWe(i,s){return i.sourceLinks.length?i.depth:s-1}function zon(i){return i.targetLinks.length?i.depth:i.sourceLinks.length?wWe(i.sourceLinks,Ron)-1:0}function FJ(i){return function(){return i}}function xWe(i,s){return RJ(i.source,s.source)||i.index-s.index}function kWe(i,s){return RJ(i.target,s.target)||i.index-s.index}function RJ(i,s){return i.y0-s.y0}function awe(i){return i.value}function qon(i){return i.index}function Hon(i){return i.nodes}function Von(i){return i.links}function EWe(i,s){const u=i.get(s);if(!u)throw new Error("missing: "+s);return u}function TWe({nodes:i}){for(const s of i){let u=s.y0,d=u;for(const p of s.sourceLinks)p.y0=u+p.width/2,u+=p.width;for(const p of s.targetLinks)p.y1=d+p.width/2,d+=p.width}}function Uon(){let i=0,s=0,u=1,d=1,p=24,v=8,b,y=qon,T=yWe,_,A,P=Hon,R=Von,F=6;function j(){const Pe={nodes:P.apply(null,arguments),links:R.apply(null,arguments)};return K(Pe),ee(Pe),ie(Pe),oe(Pe),ae(Pe),TWe(Pe),Pe}j.update=function(Pe){return TWe(Pe),Pe},j.nodeId=function(Pe){return arguments.length?(y=typeof Pe=="function"?Pe:FJ(Pe),j):y},j.nodeAlign=function(Pe){return arguments.length?(T=typeof Pe=="function"?Pe:FJ(Pe),j):T},j.nodeSort=function(Pe){return arguments.length?(_=Pe,j):_},j.nodeWidth=function(Pe){return arguments.length?(p=+Pe,j):p},j.nodePadding=function(Pe){return arguments.length?(v=b=+Pe,j):v},j.nodes=function(Pe){return arguments.length?(P=typeof Pe=="function"?Pe:FJ(Pe),j):P},j.links=function(Pe){return arguments.length?(R=typeof Pe=="function"?Pe:FJ(Pe),j):R},j.linkSort=function(Pe){return arguments.length?(A=Pe,j):A},j.size=function(Pe){return arguments.length?(i=s=0,u=+Pe[0],d=+Pe[1],j):[u-i,d-s]},j.extent=function(Pe){return arguments.length?(i=+Pe[0][0],u=+Pe[1][0],s=+Pe[0][1],d=+Pe[1][1],j):[[i,s],[u,d]]},j.iterations=function(Pe){return arguments.length?(F=+Pe,j):F};function K({nodes:Pe,links:je}){for(const[Se,Ce]of Pe.entries())Ce.index=Se,Ce.sourceLinks=[],Ce.targetLinks=[];const Ie=new Map(Pe.map((Se,Ce)=>[y(Se,Ce,Pe),Se]));for(const[Se,Ce]of je.entries()){Ce.index=Se;let{source:ke,target:Ke}=Ce;typeof ke!="object"&&(ke=Ce.source=EWe(Ie,ke)),typeof Ke!="object"&&(Ke=Ce.target=EWe(Ie,Ke)),ke.sourceLinks.push(Ce),Ke.targetLinks.push(Ce)}if(A!=null)for(const{sourceLinks:Se,targetLinks:Ce}of Pe)Se.sort(A),Ce.sort(A)}function ee({nodes:Pe}){for(const je of Pe)je.value=je.fixedValue===void 0?Math.max(swe(je.sourceLinks,awe),swe(je.targetLinks,awe)):je.fixedValue}function ie({nodes:Pe}){const je=Pe.length;let Ie=new Set(Pe),Se=new Set,Ce=0;for(;Ie.size;){for(const ke of Ie){ke.depth=Ce;for(const{target:Ke}of ke.sourceLinks)Se.add(Ke)}if(++Ce>je)throw new Error("circular link");Ie=Se,Se=new Set}}function oe({nodes:Pe}){const je=Pe.length;let Ie=new Set(Pe),Se=new Set,Ce=0;for(;Ie.size;){for(const ke of Ie){ke.height=Ce;for(const{source:Ke}of ke.targetLinks)Se.add(Ke)}if(++Ce>je)throw new Error("circular link");Ie=Se,Se=new Set}}function pe({nodes:Pe}){const je=vWe(Pe,Ce=>Ce.depth)+1,Ie=(u-i-p)/(je-1),Se=new Array(je);for(const Ce of Pe){const ke=Math.max(0,Math.min(je-1,Math.floor(T.call(null,Ce,je))));Ce.layer=ke,Ce.x0=i+ke*Ie,Ce.x1=Ce.x0+p,Se[ke]?Se[ke].push(Ce):Se[ke]=[Ce]}if(_)for(const Ce of Se)Ce.sort(_);return Se}function be(Pe){const je=wWe(Pe,Ie=>(d-s-(Ie.length-1)*b)/swe(Ie,awe));for(const Ie of Pe){let Se=s;for(const Ce of Ie){Ce.y0=Se,Ce.y1=Se+Ce.value*je,Se=Ce.y1+b;for(const ke of Ce.sourceLinks)ke.width=ke.value*je}Se=(d-Se+b)/(Ie.length+1);for(let Ce=0;CeIe.length)-1)),be(je);for(let Ie=0;Ie0))continue;let gn=(Ft/Ne-Ke.y0)*je;Ke.y0+=gn,Ke.y1+=gn,W(Ke)}_===void 0&&ke.sort(RJ),de(ke,Ie)}}function se(Pe,je,Ie){for(let Se=Pe.length,Ce=Se-2;Ce>=0;--Ce){const ke=Pe[Ce];for(const Ke of ke){let Ft=0,Ne=0;for(const{target:_t,value:Et}of Ke.sourceLinks){let Gt=Et*(_t.layer-Ke.layer);Ft+=Fe(Ke,_t)*Gt,Ne+=Gt}if(!(Ne>0))continue;let gn=(Ft/Ne-Ke.y0)*je;Ke.y0+=gn,Ke.y1+=gn,W(Ke)}_===void 0&&ke.sort(RJ),de(ke,Ie)}}function de(Pe,je){const Ie=Pe.length>>1,Se=Pe[Ie];ge(Pe,Se.y0-b,Ie-1,je),X(Pe,Se.y1+b,Ie+1,je),ge(Pe,d,Pe.length-1,je),X(Pe,s,0,je)}function X(Pe,je,Ie,Se){for(;Ie1e-6&&(Ce.y0+=ke,Ce.y1+=ke),je=Ce.y1+b}}function ge(Pe,je,Ie,Se){for(;Ie>=0;--Ie){const Ce=Pe[Ie],ke=(Ce.y1-je)*Se;ke>1e-6&&(Ce.y0-=ke,Ce.y1-=ke),je=Ce.y0-b}}function W({sourceLinks:Pe,targetLinks:je}){if(A===void 0){for(const{source:{sourceLinks:Ie}}of je)Ie.sort(kWe);for(const{target:{targetLinks:Ie}}of Pe)Ie.sort(xWe)}}function xe(Pe){if(A===void 0)for(const{sourceLinks:je,targetLinks:Ie}of Pe)je.sort(kWe),Ie.sort(xWe)}function U(Pe,je){let Ie=Pe.y0-(Pe.sourceLinks.length-1)*b/2;for(const{target:Se,width:Ce}of Pe.sourceLinks){if(Se===je)break;Ie+=Ce+b}for(const{source:Se,width:Ce}of je.targetLinks){if(Se===Pe)break;Ie-=Ce}return Ie}function Fe(Pe,je){let Ie=je.y0-(je.targetLinks.length-1)*b/2;for(const{source:Se,width:Ce}of je.targetLinks){if(Se===Pe)break;Ie+=Ce+b}for(const{target:Se,width:Ce}of Pe.sourceLinks){if(Se===je)break;Ie-=Ce}return Ie}return j}var owe=Math.PI,cwe=2*owe,aS=1e-6,Gon=cwe-aS;function uwe(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function CWe(){return new uwe}uwe.prototype=CWe.prototype={constructor:uwe,moveTo:function(i,s){this._+="M"+(this._x0=this._x1=+i)+","+(this._y0=this._y1=+s)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(i,s){this._+="L"+(this._x1=+i)+","+(this._y1=+s)},quadraticCurveTo:function(i,s,u,d){this._+="Q"+ +i+","+ +s+","+(this._x1=+u)+","+(this._y1=+d)},bezierCurveTo:function(i,s,u,d,p,v){this._+="C"+ +i+","+ +s+","+ +u+","+ +d+","+(this._x1=+p)+","+(this._y1=+v)},arcTo:function(i,s,u,d,p){i=+i,s=+s,u=+u,d=+d,p=+p;var v=this._x1,b=this._y1,y=u-i,T=d-s,_=v-i,A=b-s,P=_*_+A*A;if(p<0)throw new Error("negative radius: "+p);if(this._x1===null)this._+="M"+(this._x1=i)+","+(this._y1=s);else if(P>aS)if(!(Math.abs(A*y-T*_)>aS)||!p)this._+="L"+(this._x1=i)+","+(this._y1=s);else{var R=u-v,F=d-b,j=y*y+T*T,K=R*R+F*F,ee=Math.sqrt(j),ie=Math.sqrt(P),oe=p*Math.tan((owe-Math.acos((j+P-K)/(2*ee*ie)))/2),pe=oe/ie,be=oe/ee;Math.abs(pe-1)>aS&&(this._+="L"+(i+pe*_)+","+(s+pe*A)),this._+="A"+p+","+p+",0,0,"+ +(A*R>_*F)+","+(this._x1=i+be*y)+","+(this._y1=s+be*T)}},arc:function(i,s,u,d,p,v){i=+i,s=+s,u=+u,v=!!v;var b=u*Math.cos(d),y=u*Math.sin(d),T=i+b,_=s+y,A=1^v,P=v?d-p:p-d;if(u<0)throw new Error("negative radius: "+u);this._x1===null?this._+="M"+T+","+_:(Math.abs(this._x1-T)>aS||Math.abs(this._y1-_)>aS)&&(this._+="L"+T+","+_),u&&(P<0&&(P=P%cwe+cwe),P>Gon?this._+="A"+u+","+u+",0,1,"+A+","+(i-b)+","+(s-y)+"A"+u+","+u+",0,1,"+A+","+(this._x1=T)+","+(this._y1=_):P>aS&&(this._+="A"+u+","+u+",0,"+ +(P>=owe)+","+A+","+(this._x1=i+u*Math.cos(p))+","+(this._y1=s+u*Math.sin(p))))},rect:function(i,s,u,d){this._+="M"+(this._x0=this._x1=+i)+","+(this._y0=this._y1=+s)+"h"+ +u+"v"+ +d+"h"+-u+"Z"},toString:function(){return this._}};function SWe(i){return function(){return i}}function Kon(i){return i[0]}function Won(i){return i[1]}var Yon=Array.prototype.slice;function Xon(i){return i.source}function Qon(i){return i.target}function Jon(i){var s=Xon,u=Qon,d=Kon,p=Won,v=null;function b(){var y,T=Yon.call(arguments),_=s.apply(this,T),A=u.apply(this,T);if(v||(v=y=CWe()),i(v,+d.apply(this,(T[0]=_,T)),+p.apply(this,T),+d.apply(this,(T[0]=A,T)),+p.apply(this,T)),y)return v=null,y+""||null}return b.source=function(y){return arguments.length?(s=y,b):s},b.target=function(y){return arguments.length?(u=y,b):u},b.x=function(y){return arguments.length?(d=typeof y=="function"?y:SWe(+y),b):d},b.y=function(y){return arguments.length?(p=typeof y=="function"?y:SWe(+y),b):p},b.context=function(y){return arguments.length?(v=y??null,b):v},b}function Zon(i,s,u,d,p){i.moveTo(s,u),i.bezierCurveTo(s=(s+d)/2,u,s,p,d,p)}function ecn(){return Jon(Zon)}function tcn(i){return[i.source.x1,i.y0]}function ncn(i){return[i.target.x0,i.y1]}function rcn(){return ecn().source(tcn).target(ncn)}const _We=class aBe{static next(s){return new aBe(s+ ++aBe.count)}constructor(s){this.id=s,this.href=`#${s}`}toString(){return"url("+this.href+")"}};_We.count=0;let AWe=_We;const icn={left:jon,right:$on,center:zon,justify:yWe},scn={draw:function(i,s,u,d){const{securityLevel:p,sankey:v}=qt(),b=Zje.sankey;let y;p==="sandbox"&&(y=Ir("#i"+s));const T=Ir(p==="sandbox"?y.nodes()[0].contentDocument.body:"body"),_=p==="sandbox"?T.select(`[id="${s}"]`):Ir(`[id="${s}"]`),A=(v==null?void 0:v.width)??b.width,P=(v==null?void 0:v.height)??b.width,R=(v==null?void 0:v.useMaxWidth)??b.useMaxWidth,F=(v==null?void 0:v.nodeAlignment)??b.nodeAlignment,j=(v==null?void 0:v.prefix)??b.prefix,K=(v==null?void 0:v.suffix)??b.suffix,ee=(v==null?void 0:v.showValues)??b.showValues,ie=d.db.getGraph(),oe=icn[F],pe=10;Uon().nodeId(ge=>ge.id).nodeWidth(pe).nodePadding(10+(ee?15:0)).nodeAlign(oe).extent([[0,0],[A,P]])(ie);const ae=_F(zFe);_.append("g").attr("class","nodes").selectAll(".node").data(ie.nodes).join("g").attr("class","node").attr("id",ge=>(ge.uid=AWe.next("node-")).id).attr("transform",function(ge){return"translate("+ge.x0+","+ge.y0+")"}).attr("x",ge=>ge.x0).attr("y",ge=>ge.y0).append("rect").attr("height",ge=>ge.y1-ge.y0).attr("width",ge=>ge.x1-ge.x0).attr("fill",ge=>ae(ge.id));const ne=({id:ge,value:W})=>ee?`${ge} ${j}${Math.round(W*100)/100}${K}`:ge;_.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(ie.nodes).join("text").attr("x",ge=>ge.x0(ge.y1+ge.y0)/2).attr("dy",`${ee?"0":"0.35"}em`).attr("text-anchor",ge=>ge.x0(W.uid=AWe.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",W=>W.source.x1).attr("x2",W=>W.target.x0);ge.append("stop").attr("offset","0%").attr("stop-color",W=>ae(W.source.id)),ge.append("stop").attr("offset","100%").attr("stop-color",W=>ae(W.target.id))}let X;switch(de){case"gradient":X=ge=>ge.uid;break;case"source":X=ge=>ae(ge.source.id);break;case"target":X=ge=>ae(ge.target.id);break;default:X=de}se.append("path").attr("d",rcn()).attr("stroke",X).attr("stroke-width",ge=>Math.max(1,ge.width)),y9(void 0,_,0,R)}},acn=i=>i.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` `).trim(),ocn=NJ.parse.bind(NJ);NJ.parse=i=>ocn(acn(i));const ccn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:NJ,db:Fon,renderer:scn}},Symbol.toStringTag,{value:"Module"}));var lwe=function(){var i=function(pe,be,ae,ne){for(ae=ae||{},ne=pe.length;ne--;ae[pe[ne]]=be);return ae},s=[1,7],u=[1,13],d=[1,14],p=[1,15],v=[1,19],b=[1,16],y=[1,17],T=[1,18],_=[8,30],A=[8,21,28,29,30,31,32,40,44,47],P=[1,23],R=[1,24],F=[8,15,16,21,28,29,30,31,32,40,44,47],j=[8,15,16,21,27,28,29,30,31,32,40,44,47],K=[1,49],ee={trace:function(){},yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:function(be,ae,ne,se,de,X,ge){var W=X.length-1;switch(de){case 4:se.getLogger().debug("Rule: separator (NL) ");break;case 5:se.getLogger().debug("Rule: separator (Space) ");break;case 6:se.getLogger().debug("Rule: separator (EOF) ");break;case 7:se.getLogger().debug("Rule: hierarchy: ",X[W-1]),se.setHierarchy(X[W-1]);break;case 8:se.getLogger().debug("Stop NL ");break;case 9:se.getLogger().debug("Stop EOF ");break;case 10:se.getLogger().debug("Stop NL2 ");break;case 11:se.getLogger().debug("Stop EOF2 ");break;case 12:se.getLogger().debug("Rule: statement: ",X[W]),typeof X[W].length=="number"?this.$=X[W]:this.$=[X[W]];break;case 13:se.getLogger().debug("Rule: statement #2: ",X[W-1]),this.$=[X[W-1]].concat(X[W]);break;case 14:se.getLogger().debug("Rule: link: ",X[W],be),this.$={edgeTypeStr:X[W],label:""};break;case 15:se.getLogger().debug("Rule: LABEL link: ",X[W-3],X[W-1],X[W]),this.$={edgeTypeStr:X[W],label:X[W-1]};break;case 18:const xe=parseInt(X[W]),U=se.generateId();this.$={id:U,type:"space",label:"",width:xe,children:[]};break;case 23:se.getLogger().debug("Rule: (nodeStatement link node) ",X[W-2],X[W-1],X[W]," typestr: ",X[W-1].edgeTypeStr);const Fe=se.edgeStrToEdgeData(X[W-1].edgeTypeStr);this.$=[{id:X[W-2].id,label:X[W-2].label,type:X[W-2].type,directions:X[W-2].directions},{id:X[W-2].id+"-"+X[W].id,start:X[W-2].id,end:X[W].id,label:X[W-1].label,type:"edge",directions:X[W].directions,arrowTypeEnd:Fe,arrowTypeStart:"arrow_open"},{id:X[W].id,label:X[W].label,type:se.typeStr2Type(X[W].typeStr),directions:X[W].directions}];break;case 24:se.getLogger().debug("Rule: nodeStatement (abc88 node size) ",X[W-1],X[W]),this.$={id:X[W-1].id,label:X[W-1].label,type:se.typeStr2Type(X[W-1].typeStr),directions:X[W-1].directions,widthInColumns:parseInt(X[W],10)};break;case 25:se.getLogger().debug("Rule: nodeStatement (node) ",X[W]),this.$={id:X[W].id,label:X[W].label,type:se.typeStr2Type(X[W].typeStr),directions:X[W].directions,widthInColumns:1};break;case 26:se.getLogger().debug("APA123",this?this:"na"),se.getLogger().debug("COLUMNS: ",X[W]),this.$={type:"column-setting",columns:X[W]==="auto"?-1:parseInt(X[W])};break;case 27:se.getLogger().debug("Rule: id-block statement : ",X[W-2],X[W-1]),se.generateId(),this.$={...X[W-2],type:"composite",children:X[W-1]};break;case 28:se.getLogger().debug("Rule: blockStatement : ",X[W-2],X[W-1],X[W]);const Pe=se.generateId();this.$={id:Pe,type:"composite",label:"",children:X[W-1]};break;case 29:se.getLogger().debug("Rule: node (NODE_ID separator): ",X[W]),this.$={id:X[W]};break;case 30:se.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",X[W-1],X[W]),this.$={id:X[W-1],label:X[W].label,typeStr:X[W].typeStr,directions:X[W].directions};break;case 31:se.getLogger().debug("Rule: dirList: ",X[W]),this.$=[X[W]];break;case 32:se.getLogger().debug("Rule: dirList: ",X[W-1],X[W]),this.$=[X[W-1]].concat(X[W]);break;case 33:se.getLogger().debug("Rule: nodeShapeNLabel: ",X[W-2],X[W-1],X[W]),this.$={typeStr:X[W-2]+X[W],label:X[W-1]};break;case 34:se.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",X[W-3],X[W-2]," #3:",X[W-1],X[W]),this.$={typeStr:X[W-3]+X[W],label:X[W-2],directions:X[W-1]};break;case 35:case 36:this.$={type:"classDef",id:X[W-1].trim(),css:X[W].trim()};break;case 37:this.$={type:"applyClass",id:X[W-1].trim(),styleClass:X[W].trim()};break;case 38:this.$={type:"applyStyles",id:X[W-1].trim(),stylesStr:X[W].trim()};break}},table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:s,22:8,23:9,24:10,25:11,26:12,28:u,29:d,31:p,32:v,40:b,44:y,47:T},{8:[1,20]},i(_,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:s,28:u,29:d,31:p,32:v,40:b,44:y,47:T}),i(A,[2,16],{14:22,15:P,16:R}),i(A,[2,17]),i(A,[2,18]),i(A,[2,19]),i(A,[2,20]),i(A,[2,21]),i(A,[2,22]),i(F,[2,25],{27:[1,25]}),i(A,[2,26]),{19:26,26:12,32:v},{11:27,13:4,19:5,20:6,21:s,22:8,23:9,24:10,25:11,26:12,28:u,29:d,31:p,32:v,40:b,44:y,47:T},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},i(j,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},i(_,[2,13]),{26:35,32:v},{32:[2,14]},{17:[1,36]},i(F,[2,24]),{11:37,13:4,14:22,15:P,16:R,19:5,20:6,21:s,22:8,23:9,24:10,25:11,26:12,28:u,29:d,31:p,32:v,40:b,44:y,47:T},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},i(j,[2,30]),{18:[1,43]},{18:[1,44]},i(F,[2,23]),{18:[1,45]},{30:[1,46]},i(A,[2,28]),i(A,[2,35]),i(A,[2,36]),i(A,[2,37]),i(A,[2,38]),{37:[1,47]},{34:48,35:K},{15:[1,50]},i(A,[2,27]),i(j,[2,33]),{39:[1,51]},{34:52,35:K,39:[2,31]},{32:[2,15]},i(j,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:function(be,ae){if(ae.recoverable)this.trace(be);else{var ne=new Error(be);throw ne.hash=ae,ne}},parse:function(be){var ae=this,ne=[0],se=[],de=[null],X=[],ge=this.table,W="",xe=0,U=0,Fe=2,Pe=1,je=X.slice.call(arguments,1),Ie=Object.create(this.lexer),Se={yy:{}};for(var Ce in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ce)&&(Se.yy[Ce]=this.yy[Ce]);Ie.setInput(be,Se.yy),Se.yy.lexer=Ie,Se.yy.parser=this,typeof Ie.yylloc>"u"&&(Ie.yylloc={});var ke=Ie.yylloc;X.push(ke);var Ke=Ie.options&&Ie.options.ranges;typeof Se.yy.parseError=="function"?this.parseError=Se.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ft(){var kt;return kt=se.pop()||Ie.lex()||Pe,typeof kt!="number"&&(kt instanceof Array&&(se=kt,kt=se.pop()),kt=ae.symbols_[kt]||kt),kt}for(var Ne,gn,_t,Et,Gt={},ln,xt,Pt,Qe;;){if(gn=ne[ne.length-1],this.defaultActions[gn]?_t=this.defaultActions[gn]:((Ne===null||typeof Ne>"u")&&(Ne=Ft()),_t=ge[gn]&&ge[gn][Ne]),typeof _t>"u"||!_t.length||!_t[0]){var Dt="";Qe=[];for(ln in ge[gn])this.terminals_[ln]&&ln>Fe&&Qe.push("'"+this.terminals_[ln]+"'");Ie.showPosition?Dt="Parse error on line "+(xe+1)+`: `+Ie.showPosition()+` Expecting `+Qe.join(", ")+", got '"+(this.terminals_[Ne]||Ne)+"'":Dt="Parse error on line "+(xe+1)+": Unexpected "+(Ne==Pe?"end of input":"'"+(this.terminals_[Ne]||Ne)+"'"),this.parseError(Dt,{text:Ie.match,token:this.terminals_[Ne]||Ne,line:Ie.yylineno,loc:ke,expected:Qe})}if(_t[0]instanceof Array&&_t.length>1)throw new Error("Parse Error: multiple actions possible at state: "+gn+", token: "+Ne);switch(_t[0]){case 1:ne.push(Ne),de.push(Ie.yytext),X.push(Ie.yylloc),ne.push(_t[1]),Ne=null,U=Ie.yyleng,W=Ie.yytext,xe=Ie.yylineno,ke=Ie.yylloc;break;case 2:if(xt=this.productions_[_t[1]][1],Gt.$=de[de.length-xt],Gt._$={first_line:X[X.length-(xt||1)].first_line,last_line:X[X.length-1].last_line,first_column:X[X.length-(xt||1)].first_column,last_column:X[X.length-1].last_column},Ke&&(Gt._$.range=[X[X.length-(xt||1)].range[0],X[X.length-1].range[1]]),Et=this.performAction.apply(Gt,[W,U,xe,Se.yy,_t[1],de,X].concat(je)),typeof Et<"u")return Et;xt&&(ne=ne.slice(0,-1*xt*2),de=de.slice(0,-1*xt),X=X.slice(0,-1*xt)),ne.push(this.productions_[_t[1]][0]),de.push(Gt.$),X.push(Gt._$),Pt=ge[ne[ne.length-2]][ne[ne.length-1]],ne.push(Pt);break;case 3:return!0}}return!0}},ie=function(){var pe={EOF:1,parseError:function(ae,ne){if(this.yy.parser)this.yy.parser.parseError(ae,ne);else throw new Error(ae)},setInput:function(be,ae){return this.yy=ae||this.yy||{},this._input=be,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var be=this._input[0];this.yytext+=be,this.yyleng++,this.offset++,this.match+=be,this.matched+=be;var ae=be.match(/(?:\r\n?|\n).*/g);return ae?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),be},unput:function(be){var ae=be.length,ne=be.split(/(?:\r\n?|\n)/g);this._input=be+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ae),this.offset-=ae;var se=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ne.length-1&&(this.yylineno-=ne.length-1);var de=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ne?(ne.length===se.length?this.yylloc.first_column:0)+se[se.length-ne.length].length-ne[0].length:this.yylloc.first_column-ae},this.options.ranges&&(this.yylloc.range=[de[0],de[0]+this.yyleng-ae]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(be){this.unput(this.match.slice(be))},pastInput:function(){var be=this.matched.substr(0,this.matched.length-this.match.length);return(be.length>20?"...":"")+be.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var be=this.match;return be.length<20&&(be+=this._input.substr(0,20-be.length)),(be.substr(0,20)+(be.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var be=this.pastInput(),ae=new Array(be.length+1).join("-");return be+this.upcomingInput()+` `+ae+"^"},test_match:function(be,ae){var ne,se,de;if(this.options.backtrack_lexer&&(de={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(de.yylloc.range=this.yylloc.range.slice(0))),se=be[0].match(/(?:\r\n?|\n).*/g),se&&(this.yylineno+=se.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:se?se[se.length-1].length-se[se.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+be[0].length},this.yytext+=be[0],this.match+=be[0],this.matches=be,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(be[0].length),this.matched+=be[0],ne=this.performAction.call(this,this.yy,this,ae,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ne)return ne;if(this._backtrack){for(var X in de)this[X]=de[X];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var be,ae,ne,se;this._more||(this.yytext="",this.match="");for(var de=this._currentRules(),X=0;Xae[0].length)){if(ae=ne,se=X,this.options.backtrack_lexer){if(be=this.test_match(ne,de[X]),be!==!1)return be;if(this._backtrack){ae=!1;continue}else return!1}else if(!this.options.flex)break}return ae?(be=this.test_match(ae,de[se]),be!==!1?be:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ae=this.next();return ae||this.lex()},begin:function(ae){this.conditionStack.push(ae)},popState:function(){var ae=this.conditionStack.length-1;return ae>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ae){return ae=this.conditionStack.length-1-Math.abs(ae||0),ae>=0?this.conditionStack[ae]:"INITIAL"},pushState:function(ae){this.begin(ae)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(ae,ne,se,de){switch(se){case 0:return 10;case 1:return ae.getLogger().debug("Found space-block"),31;case 2:return ae.getLogger().debug("Found nl-block"),31;case 3:return ae.getLogger().debug("Found space-block"),29;case 4:ae.getLogger().debug(".",ne.yytext);break;case 5:ae.getLogger().debug("_",ne.yytext);break;case 6:return 5;case 7:return ne.yytext=-1,28;case 8:return ne.yytext=ne.yytext.replace(/columns\s+/,""),ae.getLogger().debug("COLUMNS (LEX)",ne.yytext),28;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:ae.getLogger().debug("LEX: POPPING STR:",ne.yytext),this.popState();break;case 14:return ae.getLogger().debug("LEX: STR end:",ne.yytext),"STR";case 15:return ne.yytext=ne.yytext.replace(/space\:/,""),ae.getLogger().debug("SPACE NUM (LEX)",ne.yytext),21;case 16:return ne.yytext="1",ae.getLogger().debug("COLUMNS (LEX)",ne.yytext),21;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 22:return this.popState(),this.pushState("CLASSDEFID"),41;case 23:return this.popState(),42;case 24:return this.pushState("CLASS"),44;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;case 26:return this.popState(),46;case 27:return this.pushState("STYLE_STMNT"),47;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;case 29:return this.popState(),49;case 30:return this.pushState("acc_title"),"acc_title";case 31:return this.popState(),"acc_title_value";case 32:return this.pushState("acc_descr"),"acc_descr";case 33:return this.popState(),"acc_descr_value";case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 39:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 40:return this.popState(),ae.getLogger().debug("Lex: ))"),"NODE_DEND";case 41:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 42:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 43:return this.popState(),ae.getLogger().debug("Lex: (-"),"NODE_DEND";case 44:return this.popState(),ae.getLogger().debug("Lex: -)"),"NODE_DEND";case 45:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 46:return this.popState(),ae.getLogger().debug("Lex: ]]"),"NODE_DEND";case 47:return this.popState(),ae.getLogger().debug("Lex: ("),"NODE_DEND";case 48:return this.popState(),ae.getLogger().debug("Lex: ])"),"NODE_DEND";case 49:return this.popState(),ae.getLogger().debug("Lex: /]"),"NODE_DEND";case 50:return this.popState(),ae.getLogger().debug("Lex: /]"),"NODE_DEND";case 51:return this.popState(),ae.getLogger().debug("Lex: )]"),"NODE_DEND";case 52:return this.popState(),ae.getLogger().debug("Lex: )"),"NODE_DEND";case 53:return this.popState(),ae.getLogger().debug("Lex: ]>"),"NODE_DEND";case 54:return this.popState(),ae.getLogger().debug("Lex: ]"),"NODE_DEND";case 55:return ae.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;case 56:return ae.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;case 57:return ae.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;case 58:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 59:return ae.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;case 60:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 61:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 62:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 63:return ae.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;case 64:return ae.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;case 65:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 66:return this.pushState("NODE"),36;case 67:return this.pushState("NODE"),36;case 68:return this.pushState("NODE"),36;case 69:return this.pushState("NODE"),36;case 70:return this.pushState("NODE"),36;case 71:return this.pushState("NODE"),36;case 72:return this.pushState("NODE"),36;case 73:return ae.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;case 74:return this.pushState("BLOCK_ARROW"),ae.getLogger().debug("LEX ARR START"),38;case 75:return ae.getLogger().debug("Lex: NODE_ID",ne.yytext),32;case 76:return ae.getLogger().debug("Lex: EOF",ne.yytext),8;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:ae.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:ae.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return ae.getLogger().debug("LEX: NODE_DESCR:",ne.yytext),"NODE_DESCR";case 84:ae.getLogger().debug("LEX POPPING"),this.popState();break;case 85:ae.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (right): dir:",ne.yytext),"DIR";case 87:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (left):",ne.yytext),"DIR";case 88:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (x):",ne.yytext),"DIR";case 89:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (y):",ne.yytext),"DIR";case 90:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (up):",ne.yytext),"DIR";case 91:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (down):",ne.yytext),"DIR";case 92:return ne.yytext="]>",ae.getLogger().debug("Lex (ARROW_DIR end):",ne.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 93:return ae.getLogger().debug("Lex: LINK","#"+ne.yytext+"#"),15;case 94:return ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 95:return ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 96:return ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 97:return ae.getLogger().debug("Lex: START_LINK",ne.yytext),this.pushState("LLABEL"),16;case 98:return ae.getLogger().debug("Lex: START_LINK",ne.yytext),this.pushState("LLABEL"),16;case 99:return ae.getLogger().debug("Lex: START_LINK",ne.yytext),this.pushState("LLABEL"),16;case 100:this.pushState("md_string");break;case 101:return ae.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 102:return this.popState(),ae.getLogger().debug("Lex: LINK","#"+ne.yytext+"#"),15;case 103:return this.popState(),ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 104:return this.popState(),ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 105:return ae.getLogger().debug("Lex: COLON",ne.yytext),ne.yytext=ne.yytext.slice(1),27}},rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return pe}();ee.lexer=ie;function oe(){this.yy={}}return oe.prototype=ee,ee.Parser=oe,new oe}();lwe.parser=lwe;const ucn=lwe;let U2={},hwe=[],ij={};const LWe="color",MWe="fill",lcn="bgFill",DWe=",";let sj={};const hcn=function(i,s=""){sj[i]===void 0&&(sj[i]={id:i,styles:[],textStyles:[]});const u=sj[i];s!=null&&s.split(DWe).forEach(d=>{const p=d.replace(/([^;]*);/,"$1").trim();if(d.match(LWe)){const b=p.replace(MWe,lcn).replace(LWe,MWe);u.textStyles.push(b)}u.styles.push(p)})},fcn=function(i,s=""){const u=U2[i];s!=null&&(u.styles=s.split(DWe))},dcn=function(i,s){i.split(",").forEach(function(u){let d=U2[u];if(d===void 0){const p=u.trim();U2[p]={id:p,type:"na",children:[]},d=U2[p]}d.classes||(d.classes=[]),d.classes.push(s)})},IWe=(i,s)=>{const u=i.flat(),d=[];for(const p of u){if(p.type==="classDef"){hcn(p.id,p.css);continue}if(p.type==="applyClass"){dcn(p.id,(p==null?void 0:p.styleClass)||"");continue}if(p.type==="applyStyles"){p!=null&&p.stylesStr&&fcn(p.id,p==null?void 0:p.stylesStr);continue}if(p.type==="column-setting")s.columns=p.columns||-1;else if(p.type==="edge")ij[p.id]?ij[p.id]++:ij[p.id]=1,p.id=ij[p.id]+"-"+p.id,hwe.push(p);else{p.label||(p.type==="composite"?p.label="":p.label=p.id);const v=!U2[p.id];if(v?U2[p.id]=p:(p.type!=="na"&&(U2[p.id].type=p.type),p.label!==p.id&&(U2[p.id].label=p.label)),p.children&&IWe(p.children,p),p.type==="space"){const b=p.width||1;for(let y=0;y{Xe.debug("Clear called"),Pg(),aj={id:"root",type:"composite",children:[],columns:-1},U2={root:aj},fwe=[],sj={},hwe=[],ij={}};function pcn(i){switch(Xe.debug("typeStr2Type",i),i){case"[]":return"square";case"()":return Xe.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function bcn(i){switch(Xe.debug("typeStr2Type",i),i){case"==":return"thick";default:return"normal"}}function mcn(i){switch(i.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}let OWe=0;const vcn={getConfig:()=>Vh().block,typeStr2Type:pcn,edgeTypeStr2Type:bcn,edgeStrToEdgeData:mcn,getLogger:()=>console,getBlocksFlat:()=>[...Object.values(U2)],getBlocks:()=>fwe||[],getEdges:()=>hwe,setHierarchy:i=>{aj.children=i,IWe(i,aj),fwe=aj.children},getBlock:i=>U2[i],setBlock:i=>{U2[i.id]=i},getColumns:i=>{const s=U2[i];return s?s.columns?s.columns:s.children?s.children.length:-1:-1},getClasses:function(){return sj},clear:gcn,generateId:()=>(OWe++,"id-"+Math.random().toString(36).substr(2,12)+"-"+OWe)},jJ=(i,s)=>{const u=ARe,d=u(i,"r"),p=u(i,"g"),v=u(i,"b");return SC(d,p,v,s)},wcn=i=>`.label { +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ae=this.next();return ae||this.lex()},begin:function(ae){this.conditionStack.push(ae)},popState:function(){var ae=this.conditionStack.length-1;return ae>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ae){return ae=this.conditionStack.length-1-Math.abs(ae||0),ae>=0?this.conditionStack[ae]:"INITIAL"},pushState:function(ae){this.begin(ae)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(ae,ne,se,de){switch(se){case 0:return 10;case 1:return ae.getLogger().debug("Found space-block"),31;case 2:return ae.getLogger().debug("Found nl-block"),31;case 3:return ae.getLogger().debug("Found space-block"),29;case 4:ae.getLogger().debug(".",ne.yytext);break;case 5:ae.getLogger().debug("_",ne.yytext);break;case 6:return 5;case 7:return ne.yytext=-1,28;case 8:return ne.yytext=ne.yytext.replace(/columns\s+/,""),ae.getLogger().debug("COLUMNS (LEX)",ne.yytext),28;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:ae.getLogger().debug("LEX: POPPING STR:",ne.yytext),this.popState();break;case 14:return ae.getLogger().debug("LEX: STR end:",ne.yytext),"STR";case 15:return ne.yytext=ne.yytext.replace(/space\:/,""),ae.getLogger().debug("SPACE NUM (LEX)",ne.yytext),21;case 16:return ne.yytext="1",ae.getLogger().debug("COLUMNS (LEX)",ne.yytext),21;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 22:return this.popState(),this.pushState("CLASSDEFID"),41;case 23:return this.popState(),42;case 24:return this.pushState("CLASS"),44;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;case 26:return this.popState(),46;case 27:return this.pushState("STYLE_STMNT"),47;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;case 29:return this.popState(),49;case 30:return this.pushState("acc_title"),"acc_title";case 31:return this.popState(),"acc_title_value";case 32:return this.pushState("acc_descr"),"acc_descr";case 33:return this.popState(),"acc_descr_value";case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 39:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 40:return this.popState(),ae.getLogger().debug("Lex: ))"),"NODE_DEND";case 41:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 42:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 43:return this.popState(),ae.getLogger().debug("Lex: (-"),"NODE_DEND";case 44:return this.popState(),ae.getLogger().debug("Lex: -)"),"NODE_DEND";case 45:return this.popState(),ae.getLogger().debug("Lex: (("),"NODE_DEND";case 46:return this.popState(),ae.getLogger().debug("Lex: ]]"),"NODE_DEND";case 47:return this.popState(),ae.getLogger().debug("Lex: ("),"NODE_DEND";case 48:return this.popState(),ae.getLogger().debug("Lex: ])"),"NODE_DEND";case 49:return this.popState(),ae.getLogger().debug("Lex: /]"),"NODE_DEND";case 50:return this.popState(),ae.getLogger().debug("Lex: /]"),"NODE_DEND";case 51:return this.popState(),ae.getLogger().debug("Lex: )]"),"NODE_DEND";case 52:return this.popState(),ae.getLogger().debug("Lex: )"),"NODE_DEND";case 53:return this.popState(),ae.getLogger().debug("Lex: ]>"),"NODE_DEND";case 54:return this.popState(),ae.getLogger().debug("Lex: ]"),"NODE_DEND";case 55:return ae.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;case 56:return ae.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;case 57:return ae.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;case 58:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 59:return ae.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;case 60:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 61:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 62:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 63:return ae.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;case 64:return ae.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;case 65:return ae.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 66:return this.pushState("NODE"),36;case 67:return this.pushState("NODE"),36;case 68:return this.pushState("NODE"),36;case 69:return this.pushState("NODE"),36;case 70:return this.pushState("NODE"),36;case 71:return this.pushState("NODE"),36;case 72:return this.pushState("NODE"),36;case 73:return ae.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;case 74:return this.pushState("BLOCK_ARROW"),ae.getLogger().debug("LEX ARR START"),38;case 75:return ae.getLogger().debug("Lex: NODE_ID",ne.yytext),32;case 76:return ae.getLogger().debug("Lex: EOF",ne.yytext),8;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:ae.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:ae.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return ae.getLogger().debug("LEX: NODE_DESCR:",ne.yytext),"NODE_DESCR";case 84:ae.getLogger().debug("LEX POPPING"),this.popState();break;case 85:ae.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (right): dir:",ne.yytext),"DIR";case 87:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (left):",ne.yytext),"DIR";case 88:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (x):",ne.yytext),"DIR";case 89:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (y):",ne.yytext),"DIR";case 90:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (up):",ne.yytext),"DIR";case 91:return ne.yytext=ne.yytext.replace(/^,\s*/,""),ae.getLogger().debug("Lex (down):",ne.yytext),"DIR";case 92:return ne.yytext="]>",ae.getLogger().debug("Lex (ARROW_DIR end):",ne.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 93:return ae.getLogger().debug("Lex: LINK","#"+ne.yytext+"#"),15;case 94:return ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 95:return ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 96:return ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 97:return ae.getLogger().debug("Lex: START_LINK",ne.yytext),this.pushState("LLABEL"),16;case 98:return ae.getLogger().debug("Lex: START_LINK",ne.yytext),this.pushState("LLABEL"),16;case 99:return ae.getLogger().debug("Lex: START_LINK",ne.yytext),this.pushState("LLABEL"),16;case 100:this.pushState("md_string");break;case 101:return ae.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 102:return this.popState(),ae.getLogger().debug("Lex: LINK","#"+ne.yytext+"#"),15;case 103:return this.popState(),ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 104:return this.popState(),ae.getLogger().debug("Lex: LINK",ne.yytext),15;case 105:return ae.getLogger().debug("Lex: COLON",ne.yytext),ne.yytext=ne.yytext.slice(1),27}},rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return pe}();ee.lexer=ie;function oe(){this.yy={}}return oe.prototype=ee,ee.Parser=oe,new oe}();lwe.parser=lwe;const ucn=lwe;let U2={},hwe=[],ij={};const LWe="color",MWe="fill",lcn="bgFill",DWe=",",hcn=qt();let sj={};const fcn=i=>ci.sanitizeText(i,hcn),dcn=function(i,s=""){sj[i]===void 0&&(sj[i]={id:i,styles:[],textStyles:[]});const u=sj[i];s!=null&&s.split(DWe).forEach(d=>{const p=d.replace(/([^;]*);/,"$1").trim();if(d.match(LWe)){const b=p.replace(MWe,lcn).replace(LWe,MWe);u.textStyles.push(b)}u.styles.push(p)})},gcn=function(i,s=""){const u=U2[i];s!=null&&(u.styles=s.split(DWe))},pcn=function(i,s){i.split(",").forEach(function(u){let d=U2[u];if(d===void 0){const p=u.trim();U2[p]={id:p,type:"na",children:[]},d=U2[p]}d.classes||(d.classes=[]),d.classes.push(s)})},IWe=(i,s)=>{const u=i.flat(),d=[];for(const p of u){if(p.label&&(p.label=fcn(p.label)),p.type==="classDef"){dcn(p.id,p.css);continue}if(p.type==="applyClass"){pcn(p.id,(p==null?void 0:p.styleClass)||"");continue}if(p.type==="applyStyles"){p!=null&&p.stylesStr&&gcn(p.id,p==null?void 0:p.stylesStr);continue}if(p.type==="column-setting")s.columns=p.columns||-1;else if(p.type==="edge")ij[p.id]?ij[p.id]++:ij[p.id]=1,p.id=ij[p.id]+"-"+p.id,hwe.push(p);else{p.label||(p.type==="composite"?p.label="":p.label=p.id);const v=!U2[p.id];if(v?U2[p.id]=p:(p.type!=="na"&&(U2[p.id].type=p.type),p.label!==p.id&&(U2[p.id].label=p.label)),p.children&&IWe(p.children,p),p.type==="space"){const b=p.width||1;for(let y=0;y{Xe.debug("Clear called"),Pg(),aj={id:"root",type:"composite",children:[],columns:-1},U2={root:aj},fwe=[],sj={},hwe=[],ij={}};function mcn(i){switch(Xe.debug("typeStr2Type",i),i){case"[]":return"square";case"()":return Xe.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function vcn(i){switch(Xe.debug("typeStr2Type",i),i){case"==":return"thick";default:return"normal"}}function wcn(i){switch(i.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}let OWe=0;const ycn={getConfig:()=>Vh().block,typeStr2Type:mcn,edgeTypeStr2Type:vcn,edgeStrToEdgeData:wcn,getLogger:()=>console,getBlocksFlat:()=>[...Object.values(U2)],getBlocks:()=>fwe||[],getEdges:()=>hwe,setHierarchy:i=>{aj.children=i,IWe(i,aj),fwe=aj.children},getBlock:i=>U2[i],setBlock:i=>{U2[i.id]=i},getColumns:i=>{const s=U2[i];return s?s.columns?s.columns:s.children?s.children.length:-1:-1},getClasses:function(){return sj},clear:bcn,generateId:()=>(OWe++,"id-"+Math.random().toString(36).substr(2,12)+"-"+OWe)},jJ=(i,s)=>{const u=ARe,d=u(i,"r"),p=u(i,"g"),v=u(i,"b");return SC(d,p,v,s)},xcn=i=>`.label { font-family: ${i.fontFamily}; color: ${i.nodeTextColor||i.textColor}; } @@ -2026,4 +2026,4 @@ Expecting `+Qe.join(", ")+", got '"+(this.terminals_[Ne]||Ne)+"'":Dt="Parse erro font-size: 18px; fill: ${i.textColor}; } -`;function NWe(i,s,u=!1){var R,F,j;const d=i;let p="default";(((R=d==null?void 0:d.classes)==null?void 0:R.length)||0)>0&&(p=((d==null?void 0:d.classes)||[]).join(" ")),p=p+" flowchart-label";let v=0,b="",y;switch(d.type){case"round":v=5,b="rect";break;case"composite":v=0,b="composite",y=0;break;case"square":b="rect";break;case"diamond":b="question";break;case"hexagon":b="hexagon";break;case"block_arrow":b="block_arrow";break;case"odd":b="rect_left_inv_arrow";break;case"lean_right":b="lean_right";break;case"lean_left":b="lean_left";break;case"trapezoid":b="trapezoid";break;case"inv_trapezoid":b="inv_trapezoid";break;case"rect_left_inv_arrow":b="rect_left_inv_arrow";break;case"circle":b="circle";break;case"ellipse":b="ellipse";break;case"stadium":b="stadium";break;case"subroutine":b="subroutine";break;case"cylinder":b="cylinder";break;case"group":b="rect";break;case"doublecircle":b="doublecircle";break;default:b="rect"}const T=om((d==null?void 0:d.styles)||[]),_=d.label,A=d.size||{width:0,height:0,x:0,y:0};return{labelStyle:T.labelStyle,shape:b,labelText:_,rx:v,ry:v,class:p,style:T.style,id:d.id,directions:d.directions,width:A.width,height:A.height,x:A.x,y:A.y,positioned:u,intersect:void 0,type:d.type,padding:y??(((j=(F=Vh())==null?void 0:F.block)==null?void 0:j.padding)||0)}}async function ycn(i,s,u){const d=NWe(s,u,!1);if(d.type==="group")return;const p=await tJ(i,d),v=p.node().getBBox(),b=u.getBlock(d.id);b.size={width:v.width,height:v.height,x:0,y:0,node:p},u.setBlock(b),p.remove()}async function xcn(i,s,u){const d=NWe(s,u,!0);u.getBlock(d.id).type!=="space"&&(await tJ(i,d),s.intersect=d==null?void 0:d.intersect,$me(d))}async function dwe(i,s,u,d){for(const p of s)await d(i,p,u),p.children&&await dwe(i,p.children,u,d)}async function kcn(i,s,u){await dwe(i,s,u,ycn)}async function Ecn(i,s,u){await dwe(i,s,u,xcn)}async function Tcn(i,s,u,d,p){const v=new B0({multigraph:!0,compound:!0});v.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const b of u)b.size&&v.setNode(b.id,{width:b.size.width,height:b.size.height,intersect:b.intersect});for(const b of s)if(b.start&&b.end){const y=d.getBlock(b.start),T=d.getBlock(b.end);if(y!=null&&y.size&&(T!=null&&T.size)){const _=y.size,A=T.size,P=[{x:_.x,y:_.y},{x:_.x+(A.x-_.x)/2,y:_.y+(A.y-_.y)/2},{x:A.x,y:A.y}];await IUe(i,{v:b.start,w:b.end,name:b.id},{...b,arrowTypeEnd:b.arrowTypeEnd,arrowTypeStart:b.arrowTypeStart,points:P,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",v,p),b.label&&(await zme(i,{...b,label:b.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:b.arrowTypeEnd,arrowTypeStart:b.arrowTypeStart,points:P,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),await MUe({...b,x:P[1].x,y:P[1].y},{originalPath:P}))}}}const e0=((RWe=(FWe=qt())==null?void 0:FWe.block)==null?void 0:RWe.padding)||8;function Ccn(i,s){if(i===0||!Number.isInteger(i))throw new Error("Columns must be an integer !== 0.");if(s<0||!Number.isInteger(s))throw new Error("Position must be a non-negative integer."+s);if(i<0)return{px:s,py:0};if(i===1)return{px:0,py:s};const u=s%i,d=Math.floor(s/i);return{px:u,py:d}}const Scn=i=>{let s=0,u=0;for(const d of i.children){const{width:p,height:v,x:b,y}=d.size||{width:0,height:0,x:0,y:0};Xe.debug("getMaxChildSize abc95 child:",d.id,"width:",p,"height:",v,"x:",b,"y:",y,d.type),d.type!=="space"&&(p>s&&(s=p/(i.widthInColumns||1)),v>u&&(u=v))}return{width:s,height:u}};function gwe(i,s,u=0,d=0){var b,y,T,_,A,P,R,F,j,K,ee;Xe.debug("setBlockSizes abc95 (start)",i.id,(b=i==null?void 0:i.size)==null?void 0:b.x,"block width =",i==null?void 0:i.size,"sieblingWidth",u),(y=i==null?void 0:i.size)!=null&&y.width||(i.size={width:u,height:d,x:0,y:0});let p=0,v=0;if(((T=i.children)==null?void 0:T.length)>0){for(const de of i.children)gwe(de,s);const ie=Scn(i);p=ie.width,v=ie.height,Xe.debug("setBlockSizes abc95 maxWidth of",i.id,":s children is ",p,v);for(const de of i.children)de.size&&(Xe.debug(`abc95 Setting size of children of ${i.id} id=${de.id} ${p} ${v} ${de.size}`),de.size.width=p*(de.widthInColumns||1)+e0*((de.widthInColumns||1)-1),de.size.height=v,de.size.x=0,de.size.y=0,Xe.debug(`abc95 updating size of ${i.id} children child:${de.id} maxWidth:${p} maxHeight:${v}`));for(const de of i.children)gwe(de,s,p,v);const oe=i.columns||-1;let pe=0;for(const de of i.children)pe+=de.widthInColumns||1;let be=i.children.length;oe>0&&oe0?Math.min(i.children.length,oe):i.children.length;if(de>0){const X=(ne-de*e0-e0)/de;Xe.debug("abc95 (growing to fit) width",i.id,ne,(R=i.size)==null?void 0:R.width,X);for(const ge of i.children)ge.size&&(ge.size.width=X)}}i.size={width:ne,height:se,x:0,y:0}}Xe.debug("setBlockSizes abc94 (done)",i.id,(F=i==null?void 0:i.size)==null?void 0:F.x,(j=i==null?void 0:i.size)==null?void 0:j.width,(K=i==null?void 0:i.size)==null?void 0:K.y,(ee=i==null?void 0:i.size)==null?void 0:ee.height)}function PWe(i,s){var d,p,v,b,y,T,_,A,P,R,F,j,K,ee,ie,oe,pe;Xe.debug(`abc85 layout blocks (=>layoutBlocks) ${i.id} x: ${(d=i==null?void 0:i.size)==null?void 0:d.x} y: ${(p=i==null?void 0:i.size)==null?void 0:p.y} width: ${(v=i==null?void 0:i.size)==null?void 0:v.width}`);const u=i.columns||-1;if(Xe.debug("layoutBlocks columns abc95",i.id,"=>",u,i),i.children&&i.children.length>0){const be=((y=(b=i==null?void 0:i.children[0])==null?void 0:b.size)==null?void 0:y.width)||0,ae=i.children.length*be+(i.children.length-1)*e0;Xe.debug("widthOfChildren 88",ae,"posX");let ne=0;Xe.debug("abc91 block?.size?.x",i.id,(T=i==null?void 0:i.size)==null?void 0:T.x);let se=(_=i==null?void 0:i.size)!=null&&_.x?((A=i==null?void 0:i.size)==null?void 0:A.x)+(-((P=i==null?void 0:i.size)==null?void 0:P.width)/2||0):-e0,de=0;for(const X of i.children){const ge=i;if(!X.size)continue;const{width:W,height:xe}=X.size,{px:U,py:Fe}=Ccn(u,ne);if(Fe!=de&&(de=Fe,se=(R=i==null?void 0:i.size)!=null&&R.x?((F=i==null?void 0:i.size)==null?void 0:F.x)+(-((j=i==null?void 0:i.size)==null?void 0:j.width)/2||0):-e0,Xe.debug("New row in layout for block",i.id," and child ",X.id,de)),Xe.debug(`abc89 layout blocks (child) id: ${X.id} Pos: ${ne} (px, py) ${U},${Fe} (${(K=ge==null?void 0:ge.size)==null?void 0:K.x},${(ee=ge==null?void 0:ge.size)==null?void 0:ee.y}) parent: ${ge.id} width: ${W}${e0}`),ge.size){const Pe=W/2;X.size.x=se+e0+Pe,Xe.debug(`abc91 layout blocks (calc) px, pyid:${X.id} startingPos=X${se} new startingPosX${X.size.x} ${Pe} padding=${e0} width=${W} halfWidth=${Pe} => x:${X.size.x} y:${X.size.y} ${X.widthInColumns} (width * (child?.w || 1)) / 2 ${W*((X==null?void 0:X.widthInColumns)||1)/2}`),se=X.size.x+Pe,X.size.y=ge.size.y-ge.size.height/2+Fe*(xe+e0)+xe/2+e0,Xe.debug(`abc88 layout blocks (calc) px, pyid:${X.id}startingPosX${se}${e0}${Pe}=>x:${X.size.x}y:${X.size.y}${X.widthInColumns}(width * (child?.w || 1)) / 2${W*((X==null?void 0:X.widthInColumns)||1)/2}`)}X.children&&PWe(X),ne+=(X==null?void 0:X.widthInColumns)||1,Xe.debug("abc88 columnsPos",X,ne)}}Xe.debug(`layout blocks (<==layoutBlocks) ${i.id} x: ${(ie=i==null?void 0:i.size)==null?void 0:ie.x} y: ${(oe=i==null?void 0:i.size)==null?void 0:oe.y} width: ${(pe=i==null?void 0:i.size)==null?void 0:pe.width}`)}function BWe(i,{minX:s,minY:u,maxX:d,maxY:p}={minX:0,minY:0,maxX:0,maxY:0}){if(i.size&&i.id!=="root"){const{x:v,y:b,width:y,height:T}=i.size;v-y/2d&&(d=v+y/2),b+T/2>p&&(p=b+T/2)}if(i.children)for(const v of i.children)({minX:s,minY:u,maxX:d,maxY:p}=BWe(v,{minX:s,minY:u,maxX:d,maxY:p}));return{minX:s,minY:u,maxX:d,maxY:p}}function _cn(i){const s=i.getBlock("root");if(!s)return;gwe(s,i,0,0),PWe(s),Xe.debug("getBlocks",JSON.stringify(s,null,2));const{minX:u,minY:d,maxX:p,maxY:v}=BWe(s),b=v-d,y=p-u;return{x:u,y:d,width:y,height:b}}const Acn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:ucn,db:vcn,renderer:{draw:async function(i,s,u,d){const{securityLevel:p,block:v}=Vh(),b=d.db;let y;p==="sandbox"&&(y=Ir("#i"+s));const T=Ir(p==="sandbox"?y.nodes()[0].contentDocument.body:"body"),_=p==="sandbox"?T.select(`[id="${s}"]`):Ir(`[id="${s}"]`);Sme(_,["point","circle","cross"],d.type,s);const P=b.getBlocks(),R=b.getBlocksFlat(),F=b.getEdges(),j=_.insert("g").attr("class","block");await kcn(j,P,b);const K=_cn(b);if(await Ecn(j,P,b),await Tcn(j,F,R,b,s),K){const ee=K,ie=Math.max(1,Math.round(.125*(ee.width/ee.height))),oe=ee.height+ie+10,pe=ee.width+10,{useMaxWidth:be}=v;Ng(_,oe,pe,!!be),Xe.debug("Here Bounds",K,ee),_.attr("viewBox",`${ee.x-5} ${ee.y-5} ${ee.width+10} ${ee.height+10}`)}_F(zFe)},getClasses:function(i,s){return s.db.getClasses()}},styles:wcn}},Symbol.toStringTag,{value:"Module"}));return um}); +`;function NWe(i,s,u=!1){var R,F,j;const d=i;let p="default";(((R=d==null?void 0:d.classes)==null?void 0:R.length)||0)>0&&(p=((d==null?void 0:d.classes)||[]).join(" ")),p=p+" flowchart-label";let v=0,b="",y;switch(d.type){case"round":v=5,b="rect";break;case"composite":v=0,b="composite",y=0;break;case"square":b="rect";break;case"diamond":b="question";break;case"hexagon":b="hexagon";break;case"block_arrow":b="block_arrow";break;case"odd":b="rect_left_inv_arrow";break;case"lean_right":b="lean_right";break;case"lean_left":b="lean_left";break;case"trapezoid":b="trapezoid";break;case"inv_trapezoid":b="inv_trapezoid";break;case"rect_left_inv_arrow":b="rect_left_inv_arrow";break;case"circle":b="circle";break;case"ellipse":b="ellipse";break;case"stadium":b="stadium";break;case"subroutine":b="subroutine";break;case"cylinder":b="cylinder";break;case"group":b="rect";break;case"doublecircle":b="doublecircle";break;default:b="rect"}const T=om((d==null?void 0:d.styles)||[]),_=d.label,A=d.size||{width:0,height:0,x:0,y:0};return{labelStyle:T.labelStyle,shape:b,labelText:_,rx:v,ry:v,class:p,style:T.style,id:d.id,directions:d.directions,width:A.width,height:A.height,x:A.x,y:A.y,positioned:u,intersect:void 0,type:d.type,padding:y??(((j=(F=Vh())==null?void 0:F.block)==null?void 0:j.padding)||0)}}async function kcn(i,s,u){const d=NWe(s,u,!1);if(d.type==="group")return;const p=await tJ(i,d),v=p.node().getBBox(),b=u.getBlock(d.id);b.size={width:v.width,height:v.height,x:0,y:0,node:p},u.setBlock(b),p.remove()}async function Ecn(i,s,u){const d=NWe(s,u,!0);u.getBlock(d.id).type!=="space"&&(await tJ(i,d),s.intersect=d==null?void 0:d.intersect,$me(d))}async function dwe(i,s,u,d){for(const p of s)await d(i,p,u),p.children&&await dwe(i,p.children,u,d)}async function Tcn(i,s,u){await dwe(i,s,u,kcn)}async function Ccn(i,s,u){await dwe(i,s,u,Ecn)}async function Scn(i,s,u,d,p){const v=new B0({multigraph:!0,compound:!0});v.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const b of u)b.size&&v.setNode(b.id,{width:b.size.width,height:b.size.height,intersect:b.intersect});for(const b of s)if(b.start&&b.end){const y=d.getBlock(b.start),T=d.getBlock(b.end);if(y!=null&&y.size&&(T!=null&&T.size)){const _=y.size,A=T.size,P=[{x:_.x,y:_.y},{x:_.x+(A.x-_.x)/2,y:_.y+(A.y-_.y)/2},{x:A.x,y:A.y}];await IUe(i,{v:b.start,w:b.end,name:b.id},{...b,arrowTypeEnd:b.arrowTypeEnd,arrowTypeStart:b.arrowTypeStart,points:P,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",v,p),b.label&&(await zme(i,{...b,label:b.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:b.arrowTypeEnd,arrowTypeStart:b.arrowTypeStart,points:P,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),await MUe({...b,x:P[1].x,y:P[1].y},{originalPath:P}))}}}const e0=((RWe=(FWe=qt())==null?void 0:FWe.block)==null?void 0:RWe.padding)||8;function _cn(i,s){if(i===0||!Number.isInteger(i))throw new Error("Columns must be an integer !== 0.");if(s<0||!Number.isInteger(s))throw new Error("Position must be a non-negative integer."+s);if(i<0)return{px:s,py:0};if(i===1)return{px:0,py:s};const u=s%i,d=Math.floor(s/i);return{px:u,py:d}}const Acn=i=>{let s=0,u=0;for(const d of i.children){const{width:p,height:v,x:b,y}=d.size||{width:0,height:0,x:0,y:0};Xe.debug("getMaxChildSize abc95 child:",d.id,"width:",p,"height:",v,"x:",b,"y:",y,d.type),d.type!=="space"&&(p>s&&(s=p/(i.widthInColumns||1)),v>u&&(u=v))}return{width:s,height:u}};function gwe(i,s,u=0,d=0){var b,y,T,_,A,P,R,F,j,K,ee;Xe.debug("setBlockSizes abc95 (start)",i.id,(b=i==null?void 0:i.size)==null?void 0:b.x,"block width =",i==null?void 0:i.size,"sieblingWidth",u),(y=i==null?void 0:i.size)!=null&&y.width||(i.size={width:u,height:d,x:0,y:0});let p=0,v=0;if(((T=i.children)==null?void 0:T.length)>0){for(const de of i.children)gwe(de,s);const ie=Acn(i);p=ie.width,v=ie.height,Xe.debug("setBlockSizes abc95 maxWidth of",i.id,":s children is ",p,v);for(const de of i.children)de.size&&(Xe.debug(`abc95 Setting size of children of ${i.id} id=${de.id} ${p} ${v} ${de.size}`),de.size.width=p*(de.widthInColumns||1)+e0*((de.widthInColumns||1)-1),de.size.height=v,de.size.x=0,de.size.y=0,Xe.debug(`abc95 updating size of ${i.id} children child:${de.id} maxWidth:${p} maxHeight:${v}`));for(const de of i.children)gwe(de,s,p,v);const oe=i.columns||-1;let pe=0;for(const de of i.children)pe+=de.widthInColumns||1;let be=i.children.length;oe>0&&oe0?Math.min(i.children.length,oe):i.children.length;if(de>0){const X=(ne-de*e0-e0)/de;Xe.debug("abc95 (growing to fit) width",i.id,ne,(R=i.size)==null?void 0:R.width,X);for(const ge of i.children)ge.size&&(ge.size.width=X)}}i.size={width:ne,height:se,x:0,y:0}}Xe.debug("setBlockSizes abc94 (done)",i.id,(F=i==null?void 0:i.size)==null?void 0:F.x,(j=i==null?void 0:i.size)==null?void 0:j.width,(K=i==null?void 0:i.size)==null?void 0:K.y,(ee=i==null?void 0:i.size)==null?void 0:ee.height)}function PWe(i,s){var d,p,v,b,y,T,_,A,P,R,F,j,K,ee,ie,oe,pe;Xe.debug(`abc85 layout blocks (=>layoutBlocks) ${i.id} x: ${(d=i==null?void 0:i.size)==null?void 0:d.x} y: ${(p=i==null?void 0:i.size)==null?void 0:p.y} width: ${(v=i==null?void 0:i.size)==null?void 0:v.width}`);const u=i.columns||-1;if(Xe.debug("layoutBlocks columns abc95",i.id,"=>",u,i),i.children&&i.children.length>0){const be=((y=(b=i==null?void 0:i.children[0])==null?void 0:b.size)==null?void 0:y.width)||0,ae=i.children.length*be+(i.children.length-1)*e0;Xe.debug("widthOfChildren 88",ae,"posX");let ne=0;Xe.debug("abc91 block?.size?.x",i.id,(T=i==null?void 0:i.size)==null?void 0:T.x);let se=(_=i==null?void 0:i.size)!=null&&_.x?((A=i==null?void 0:i.size)==null?void 0:A.x)+(-((P=i==null?void 0:i.size)==null?void 0:P.width)/2||0):-e0,de=0;for(const X of i.children){const ge=i;if(!X.size)continue;const{width:W,height:xe}=X.size,{px:U,py:Fe}=_cn(u,ne);if(Fe!=de&&(de=Fe,se=(R=i==null?void 0:i.size)!=null&&R.x?((F=i==null?void 0:i.size)==null?void 0:F.x)+(-((j=i==null?void 0:i.size)==null?void 0:j.width)/2||0):-e0,Xe.debug("New row in layout for block",i.id," and child ",X.id,de)),Xe.debug(`abc89 layout blocks (child) id: ${X.id} Pos: ${ne} (px, py) ${U},${Fe} (${(K=ge==null?void 0:ge.size)==null?void 0:K.x},${(ee=ge==null?void 0:ge.size)==null?void 0:ee.y}) parent: ${ge.id} width: ${W}${e0}`),ge.size){const Pe=W/2;X.size.x=se+e0+Pe,Xe.debug(`abc91 layout blocks (calc) px, pyid:${X.id} startingPos=X${se} new startingPosX${X.size.x} ${Pe} padding=${e0} width=${W} halfWidth=${Pe} => x:${X.size.x} y:${X.size.y} ${X.widthInColumns} (width * (child?.w || 1)) / 2 ${W*((X==null?void 0:X.widthInColumns)||1)/2}`),se=X.size.x+Pe,X.size.y=ge.size.y-ge.size.height/2+Fe*(xe+e0)+xe/2+e0,Xe.debug(`abc88 layout blocks (calc) px, pyid:${X.id}startingPosX${se}${e0}${Pe}=>x:${X.size.x}y:${X.size.y}${X.widthInColumns}(width * (child?.w || 1)) / 2${W*((X==null?void 0:X.widthInColumns)||1)/2}`)}X.children&&PWe(X),ne+=(X==null?void 0:X.widthInColumns)||1,Xe.debug("abc88 columnsPos",X,ne)}}Xe.debug(`layout blocks (<==layoutBlocks) ${i.id} x: ${(ie=i==null?void 0:i.size)==null?void 0:ie.x} y: ${(oe=i==null?void 0:i.size)==null?void 0:oe.y} width: ${(pe=i==null?void 0:i.size)==null?void 0:pe.width}`)}function BWe(i,{minX:s,minY:u,maxX:d,maxY:p}={minX:0,minY:0,maxX:0,maxY:0}){if(i.size&&i.id!=="root"){const{x:v,y:b,width:y,height:T}=i.size;v-y/2d&&(d=v+y/2),b+T/2>p&&(p=b+T/2)}if(i.children)for(const v of i.children)({minX:s,minY:u,maxX:d,maxY:p}=BWe(v,{minX:s,minY:u,maxX:d,maxY:p}));return{minX:s,minY:u,maxX:d,maxY:p}}function Lcn(i){const s=i.getBlock("root");if(!s)return;gwe(s,i,0,0),PWe(s),Xe.debug("getBlocks",JSON.stringify(s,null,2));const{minX:u,minY:d,maxX:p,maxY:v}=BWe(s),b=v-d,y=p-u;return{x:u,y:d,width:y,height:b}}const Mcn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:ucn,db:ycn,renderer:{draw:async function(i,s,u,d){const{securityLevel:p,block:v}=Vh(),b=d.db;let y;p==="sandbox"&&(y=Ir("#i"+s));const T=Ir(p==="sandbox"?y.nodes()[0].contentDocument.body:"body"),_=p==="sandbox"?T.select(`[id="${s}"]`):Ir(`[id="${s}"]`);Sme(_,["point","circle","cross"],d.type,s);const P=b.getBlocks(),R=b.getBlocksFlat(),F=b.getEdges(),j=_.insert("g").attr("class","block");await Tcn(j,P,b);const K=Lcn(b);if(await Ccn(j,P,b),await Scn(j,F,R,b,s),K){const ee=K,ie=Math.max(1,Math.round(.125*(ee.width/ee.height))),oe=ee.height+ie+10,pe=ee.width+10,{useMaxWidth:be}=v;Ng(_,oe,pe,!!be),Xe.debug("Here Bounds",K,ee),_.attr("viewBox",`${ee.x-5} ${ee.y-5} ${ee.width+10} ${ee.height+10}`)}_F(zFe)},getClasses:function(i,s){return s.db.getClasses()}},styles:xcn}},Symbol.toStringTag,{value:"Module"}));return um}); diff --git a/assets/lib/mermaid/mindmap-definition-307c710a.js b/assets/lib/mermaid/mindmap-definition-307c710a.js new file mode 100644 index 000000000..8a3651cb5 --- /dev/null +++ b/assets/lib/mermaid/mindmap-definition-307c710a.js @@ -0,0 +1,1177 @@ +import { l as log, c as getConfig, B as defaultConfig, d as sanitizeText, D as parseFontSize, A as selectSvgElement, o as setupGraphViewbox } from "./mermaid-6dc72991.js"; +import cytoscape from "cytoscape"; +import coseBilkent from "cytoscape-cose-bilkent"; +import { select } from "d3"; +import { a as createText } from "./createText-ca0c5216.js"; +import { isDark, lighten, darken } from "khroma"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +import "mdast-util-from-markdown"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "mindMap": 4, "spaceLines": 5, "SPACELINE": 6, "NL": 7, "MINDMAP": 8, "document": 9, "stop": 10, "EOF": 11, "statement": 12, "SPACELIST": 13, "node": 14, "ICON": 15, "CLASS": 16, "nodeWithId": 17, "nodeWithoutId": 18, "NODE_DSTART": 19, "NODE_DESCR": 20, "NODE_DEND": 21, "NODE_ID": 22, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 6: "SPACELINE", 7: "NL", 8: "MINDMAP", 11: "EOF", 13: "SPACELIST", 15: "ICON", 16: "CLASS", 19: "NODE_DSTART", 20: "NODE_DESCR", 21: "NODE_DEND", 22: "NODE_ID" }, + productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 6: + case 7: + return yy; + case 8: + yy.getLogger().trace("Stop NL "); + break; + case 9: + yy.getLogger().trace("Stop EOF "); + break; + case 11: + yy.getLogger().trace("Stop NL2 "); + break; + case 12: + yy.getLogger().trace("Stop EOF2 "); + break; + case 15: + yy.getLogger().info("Node: ", $$[$0].id); + yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type); + break; + case 16: + yy.getLogger().trace("Icon: ", $$[$0]); + yy.decorateNode({ icon: $$[$0] }); + break; + case 17: + case 21: + yy.decorateNode({ class: $$[$0] }); + break; + case 18: + yy.getLogger().trace("SPACELIST"); + break; + case 19: + yy.getLogger().trace("Node: ", $$[$0].id); + yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type); + break; + case 20: + yy.decorateNode({ icon: $$[$0] }); + break; + case 25: + yy.getLogger().trace("node found ..", $$[$0 - 2]); + this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) }; + break; + case 26: + this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT }; + break; + case 27: + yy.getLogger().trace("node found ..", $$[$0 - 3]); + this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) }; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])], + defaultActions: { 2: [2, 1], 6: [2, 2] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + yy.getLogger().trace("Found comment", yy_.yytext); + return 6; + case 1: + return 8; + case 2: + this.begin("CLASS"); + break; + case 3: + this.popState(); + return 16; + case 4: + this.popState(); + break; + case 5: + yy.getLogger().trace("Begin icon"); + this.begin("ICON"); + break; + case 6: + yy.getLogger().trace("SPACELINE"); + return 6; + case 7: + return 7; + case 8: + return 15; + case 9: + yy.getLogger().trace("end icon"); + this.popState(); + break; + case 10: + yy.getLogger().trace("Exploding node"); + this.begin("NODE"); + return 19; + case 11: + yy.getLogger().trace("Cloud"); + this.begin("NODE"); + return 19; + case 12: + yy.getLogger().trace("Explosion Bang"); + this.begin("NODE"); + return 19; + case 13: + yy.getLogger().trace("Cloud Bang"); + this.begin("NODE"); + return 19; + case 14: + this.begin("NODE"); + return 19; + case 15: + this.begin("NODE"); + return 19; + case 16: + this.begin("NODE"); + return 19; + case 17: + this.begin("NODE"); + return 19; + case 18: + return 13; + case 19: + return 22; + case 20: + return 11; + case 21: + this.begin("NSTR2"); + break; + case 22: + return "NODE_DESCR"; + case 23: + this.popState(); + break; + case 24: + yy.getLogger().trace("Starting NSTR"); + this.begin("NSTR"); + break; + case 25: + yy.getLogger().trace("description:", yy_.yytext); + return "NODE_DESCR"; + case 26: + this.popState(); + break; + case 27: + this.popState(); + yy.getLogger().trace("node end ))"); + return "NODE_DEND"; + case 28: + this.popState(); + yy.getLogger().trace("node end )"); + return "NODE_DEND"; + case 29: + this.popState(); + yy.getLogger().trace("node end ...", yy_.yytext); + return "NODE_DEND"; + case 30: + this.popState(); + yy.getLogger().trace("node end (("); + return "NODE_DEND"; + case 31: + this.popState(); + yy.getLogger().trace("node end (-"); + return "NODE_DEND"; + case 32: + this.popState(); + yy.getLogger().trace("node end (-"); + return "NODE_DEND"; + case 33: + this.popState(); + yy.getLogger().trace("node end (("); + return "NODE_DEND"; + case 34: + this.popState(); + yy.getLogger().trace("node end (("); + return "NODE_DEND"; + case 35: + yy.getLogger().trace("Long description:", yy_.yytext); + return 20; + case 36: + yy.getLogger().trace("Long description:", yy_.yytext); + return 20; + } + }, + rules: [/^(?:\s*%%.*)/i, /^(?:mindmap\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\n)/i, /^(?:::icon\()/i, /^(?:[\s]+[\n])/i, /^(?:[\n]+)/i, /^(?:[^\)]+)/i, /^(?:\))/i, /^(?:-\))/i, /^(?:\(-)/i, /^(?:\)\))/i, /^(?:\))/i, /^(?:\(\()/i, /^(?:\{\{)/i, /^(?:\()/i, /^(?:\[)/i, /^(?:[\s]+)/i, /^(?:[^\(\[\n\)\{\}]+)/i, /^(?:$)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:[^"]+)/i, /^(?:["])/i, /^(?:[\)]\))/i, /^(?:[\)])/i, /^(?:[\]])/i, /^(?:\}\})/i, /^(?:\(-)/i, /^(?:-\))/i, /^(?:\(\()/i, /^(?:\()/i, /^(?:[^\)\]\(\}]+)/i, /^(?:.+(?!\(\())/i], + conditions: { "CLASS": { "rules": [3, 4], "inclusive": false }, "ICON": { "rules": [8, 9], "inclusive": false }, "NSTR2": { "rules": [22, 23], "inclusive": false }, "NSTR": { "rules": [25, 26], "inclusive": false }, "NODE": { "rules": [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let nodes = []; +let cnt = 0; +let elements = {}; +const clear = () => { + nodes = []; + cnt = 0; + elements = {}; +}; +const getParent = function(level) { + for (let i = nodes.length - 1; i >= 0; i--) { + if (nodes[i].level < level) { + return nodes[i]; + } + } + return null; +}; +const getMindmap = () => { + return nodes.length > 0 ? nodes[0] : null; +}; +const addNode = (level, id, descr, type) => { + var _a, _b; + log.info("addNode", level, id, descr, type); + const conf = getConfig(); + let padding = ((_a = conf.mindmap) == null ? void 0 : _a.padding) ?? defaultConfig.mindmap.padding; + switch (type) { + case nodeType.ROUNDED_RECT: + case nodeType.RECT: + case nodeType.HEXAGON: + padding *= 2; + } + const node = { + id: cnt++, + nodeId: sanitizeText(id, conf), + level, + descr: sanitizeText(descr, conf), + type, + children: [], + width: ((_b = conf.mindmap) == null ? void 0 : _b.maxNodeWidth) ?? defaultConfig.mindmap.maxNodeWidth, + padding + }; + const parent = getParent(level); + if (parent) { + parent.children.push(node); + nodes.push(node); + } else { + if (nodes.length === 0) { + nodes.push(node); + } else { + throw new Error( + 'There can be only one root. No parent could be found for ("' + node.descr + '")' + ); + } + } +}; +const nodeType = { + DEFAULT: 0, + NO_BORDER: 0, + ROUNDED_RECT: 1, + RECT: 2, + CIRCLE: 3, + CLOUD: 4, + BANG: 5, + HEXAGON: 6 +}; +const getType = (startStr, endStr) => { + log.debug("In get type", startStr, endStr); + switch (startStr) { + case "[": + return nodeType.RECT; + case "(": + return endStr === ")" ? nodeType.ROUNDED_RECT : nodeType.CLOUD; + case "((": + return nodeType.CIRCLE; + case ")": + return nodeType.CLOUD; + case "))": + return nodeType.BANG; + case "{{": + return nodeType.HEXAGON; + default: + return nodeType.DEFAULT; + } +}; +const setElementForId = (id, element) => { + elements[id] = element; +}; +const decorateNode = (decoration) => { + if (!decoration) { + return; + } + const config = getConfig(); + const node = nodes[nodes.length - 1]; + if (decoration.icon) { + node.icon = sanitizeText(decoration.icon, config); + } + if (decoration.class) { + node.class = sanitizeText(decoration.class, config); + } +}; +const type2Str = (type) => { + switch (type) { + case nodeType.DEFAULT: + return "no-border"; + case nodeType.RECT: + return "rect"; + case nodeType.ROUNDED_RECT: + return "rounded-rect"; + case nodeType.CIRCLE: + return "circle"; + case nodeType.CLOUD: + return "cloud"; + case nodeType.BANG: + return "bang"; + case nodeType.HEXAGON: + return "hexgon"; + default: + return "no-border"; + } +}; +const getLogger = () => log; +const getElementById = (id) => elements[id]; +const db = { + clear, + addNode, + getMindmap, + nodeType, + getType, + setElementForId, + decorateNode, + type2Str, + getLogger, + getElementById +}; +const db$1 = db; +const MAX_SECTIONS = 12; +const defaultBkg = function(db2, elem, node, section) { + const rd = 5; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + db2.type2Str(node.type)).attr( + "d", + `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z` + ); + elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height); +}; +const rectBkg = function(db2, elem, node) { + elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + db2.type2Str(node.type)).attr("height", node.height).attr("width", node.width); +}; +const cloudBkg = function(db2, elem, node) { + const w = node.width; + const h = node.height; + const r1 = 0.15 * w; + const r2 = 0.25 * w; + const r3 = 0.35 * w; + const r4 = 0.2 * w; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + db2.type2Str(node.type)).attr( + "d", + `M0 0 a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1} + a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1} + a${r2},${r2} 1 0,1 ${w * 0.35},${1 * w * 0.2} + + a${r1},${r1} 1 0,1 ${w * 0.15},${1 * h * 0.35} + a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${1 * h * 0.65} + + a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15} + a${r3},${r3} 1 0,1 ${-1 * w * 0.5},${0} + a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15} + + a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35} + a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65} + + H0 V0 Z` + ); +}; +const bangBkg = function(db2, elem, node) { + const w = node.width; + const h = node.height; + const r = 0.15 * w; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + db2.type2Str(node.type)).attr( + "d", + `M0 0 a${r},${r} 1 0,0 ${w * 0.25},${-1 * h * 0.1} + a${r},${r} 1 0,0 ${w * 0.25},${0} + a${r},${r} 1 0,0 ${w * 0.25},${0} + a${r},${r} 1 0,0 ${w * 0.25},${1 * h * 0.1} + + a${r},${r} 1 0,0 ${w * 0.15},${1 * h * 0.33} + a${r * 0.8},${r * 0.8} 1 0,0 ${0},${1 * h * 0.34} + a${r},${r} 1 0,0 ${-1 * w * 0.15},${1 * h * 0.33} + + a${r},${r} 1 0,0 ${-1 * w * 0.25},${h * 0.15} + a${r},${r} 1 0,0 ${-1 * w * 0.25},${0} + a${r},${r} 1 0,0 ${-1 * w * 0.25},${0} + a${r},${r} 1 0,0 ${-1 * w * 0.25},${-1 * h * 0.15} + + a${r},${r} 1 0,0 ${-1 * w * 0.1},${-1 * h * 0.33} + a${r * 0.8},${r * 0.8} 1 0,0 ${0},${-1 * h * 0.34} + a${r},${r} 1 0,0 ${w * 0.1},${-1 * h * 0.33} + + H0 V0 Z` + ); +}; +const circleBkg = function(db2, elem, node) { + elem.append("circle").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + db2.type2Str(node.type)).attr("r", node.width / 2); +}; +function insertPolygonShape(parent, w, h, points, node) { + return parent.insert("polygon", ":first-child").attr( + "points", + points.map(function(d) { + return d.x + "," + d.y; + }).join(" ") + ).attr("transform", "translate(" + (node.width - w) / 2 + ", " + h + ")"); +} +const hexagonBkg = function(_db, elem, node) { + const h = node.height; + const f = 4; + const m = h / f; + const w = node.width - node.padding + 2 * m; + const points = [ + { x: m, y: 0 }, + { x: w - m, y: 0 }, + { x: w, y: -h / 2 }, + { x: w - m, y: -h }, + { x: m, y: -h }, + { x: 0, y: -h / 2 } + ]; + insertPolygonShape(elem, w, h, points, node); +}; +const roundedRectBkg = function(db2, elem, node) { + elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + db2.type2Str(node.type)).attr("height", node.height).attr("rx", node.padding).attr("ry", node.padding).attr("width", node.width); +}; +const drawNode = function(db2, elem, node, fullSection, conf) { + const htmlLabels = conf.htmlLabels; + const section = fullSection % (MAX_SECTIONS - 1); + const nodeElem = elem.append("g"); + node.section = section; + let sectionClass = "section-" + section; + if (section < 0) { + sectionClass += " section-root"; + } + nodeElem.attr("class", (node.class ? node.class + " " : "") + "mindmap-node " + sectionClass); + const bkgElem = nodeElem.append("g"); + const textElem = nodeElem.append("g"); + const description = node.descr.replace(/()/g, "\n"); + createText(textElem, description, { + useHtmlLabels: htmlLabels, + width: node.width, + classes: "mindmap-node-label" + }); + if (!htmlLabels) { + textElem.attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle"); + } + const bbox = textElem.node().getBBox(); + const [fontSize] = parseFontSize(conf.fontSize); + node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding; + node.width = bbox.width + 2 * node.padding; + if (node.icon) { + if (node.type === db2.nodeType.CIRCLE) { + node.height += 50; + node.width += 50; + const icon = nodeElem.append("foreignObject").attr("height", "50px").attr("width", node.width).attr("style", "text-align: center;"); + icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon); + textElem.attr( + "transform", + "translate(" + node.width / 2 + ", " + (node.height / 2 - 1.5 * node.padding) + ")" + ); + } else { + node.width += 50; + const orgHeight = node.height; + node.height = Math.max(orgHeight, 60); + const heightDiff = Math.abs(node.height - orgHeight); + const icon = nodeElem.append("foreignObject").attr("width", "60px").attr("height", node.height).attr("style", "text-align: center;margin-top:" + heightDiff / 2 + "px;"); + icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon); + textElem.attr( + "transform", + "translate(" + (25 + node.width / 2) + ", " + (heightDiff / 2 + node.padding / 2) + ")" + ); + } + } else { + if (!htmlLabels) { + const dx = node.width / 2; + const dy = node.padding / 2; + textElem.attr("transform", "translate(" + dx + ", " + dy + ")"); + } else { + const dx = (node.width - bbox.width) / 2; + const dy = (node.height - bbox.height) / 2; + textElem.attr("transform", "translate(" + dx + ", " + dy + ")"); + } + } + switch (node.type) { + case db2.nodeType.DEFAULT: + defaultBkg(db2, bkgElem, node, section); + break; + case db2.nodeType.ROUNDED_RECT: + roundedRectBkg(db2, bkgElem, node); + break; + case db2.nodeType.RECT: + rectBkg(db2, bkgElem, node); + break; + case db2.nodeType.CIRCLE: + bkgElem.attr("transform", "translate(" + node.width / 2 + ", " + +node.height / 2 + ")"); + circleBkg(db2, bkgElem, node); + break; + case db2.nodeType.CLOUD: + cloudBkg(db2, bkgElem, node); + break; + case db2.nodeType.BANG: + bangBkg(db2, bkgElem, node); + break; + case db2.nodeType.HEXAGON: + hexagonBkg(db2, bkgElem, node); + break; + } + db2.setElementForId(node.id, nodeElem); + return node.height; +}; +const positionNode = function(db2, node) { + const nodeElem = db2.getElementById(node.id); + const x = node.x || 0; + const y = node.y || 0; + nodeElem.attr("transform", "translate(" + x + "," + y + ")"); +}; +cytoscape.use(coseBilkent); +function drawNodes(db2, svg, mindmap, section, conf) { + drawNode(db2, svg, mindmap, section, conf); + if (mindmap.children) { + mindmap.children.forEach((child, index) => { + drawNodes(db2, svg, child, section < 0 ? index : section, conf); + }); + } +} +function drawEdges(edgesEl, cy) { + cy.edges().map((edge, id) => { + const data = edge.data(); + if (edge[0]._private.bodyBounds) { + const bounds = edge[0]._private.rscratch; + log.trace("Edge: ", id, data); + edgesEl.insert("path").attr( + "d", + `M ${bounds.startX},${bounds.startY} L ${bounds.midX},${bounds.midY} L${bounds.endX},${bounds.endY} ` + ).attr("class", "edge section-edge-" + data.section + " edge-depth-" + data.depth); + } + }); +} +function addNodes(mindmap, cy, conf, level) { + cy.add({ + group: "nodes", + data: { + id: mindmap.id.toString(), + labelText: mindmap.descr, + height: mindmap.height, + width: mindmap.width, + level, + nodeId: mindmap.id, + padding: mindmap.padding, + type: mindmap.type + }, + position: { + x: mindmap.x, + y: mindmap.y + } + }); + if (mindmap.children) { + mindmap.children.forEach((child) => { + addNodes(child, cy, conf, level + 1); + cy.add({ + group: "edges", + data: { + id: `${mindmap.id}_${child.id}`, + source: mindmap.id, + target: child.id, + depth: level, + section: child.section + } + }); + }); + } +} +function layoutMindmap(node, conf) { + return new Promise((resolve) => { + const renderEl = select("body").append("div").attr("id", "cy").attr("style", "display:none"); + const cy = cytoscape({ + container: document.getElementById("cy"), + // container to render in + style: [ + { + selector: "edge", + style: { + "curve-style": "bezier" + } + } + ] + }); + renderEl.remove(); + addNodes(node, cy, conf, 0); + cy.nodes().forEach(function(n) { + n.layoutDimensions = () => { + const data = n.data(); + return { w: data.width, h: data.height }; + }; + }); + cy.layout({ + name: "cose-bilkent", + // @ts-ignore Types for cose-bilkent are not correct? + quality: "proof", + styleEnabled: false, + animate: false + }).run(); + cy.ready((e) => { + log.info("Ready", e); + resolve(cy); + }); + }); +} +function positionNodes(db2, cy) { + cy.nodes().map((node, id) => { + const data = node.data(); + data.x = node.position().x; + data.y = node.position().y; + positionNode(db2, data); + const el = db2.getElementById(data.nodeId); + log.info("Id:", id, "Position: (", node.position().x, ", ", node.position().y, ")", data); + el.attr( + "transform", + `translate(${node.position().x - data.width / 2}, ${node.position().y - data.height / 2})` + ); + el.attr("attr", `apa-${id})`); + }); +} +const draw = async (text, id, _version, diagObj) => { + var _a, _b; + log.debug("Rendering mindmap diagram\n" + text); + const db2 = diagObj.db; + const mm = db2.getMindmap(); + if (!mm) { + return; + } + const conf = getConfig(); + conf.htmlLabels = false; + const svg = selectSvgElement(id); + const edgesElem = svg.append("g"); + edgesElem.attr("class", "mindmap-edges"); + const nodesElem = svg.append("g"); + nodesElem.attr("class", "mindmap-nodes"); + drawNodes(db2, nodesElem, mm, -1, conf); + const cy = await layoutMindmap(mm, conf); + drawEdges(edgesElem, cy); + positionNodes(db2, cy); + setupGraphViewbox( + void 0, + svg, + ((_a = conf.mindmap) == null ? void 0 : _a.padding) ?? defaultConfig.mindmap.padding, + ((_b = conf.mindmap) == null ? void 0 : _b.useMaxWidth) ?? defaultConfig.mindmap.useMaxWidth + ); +}; +const renderer = { + draw +}; +const genSections = (options) => { + let sections = ""; + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i]; + if (isDark(options["lineColor" + i])) { + options["lineColor" + i] = lighten(options["lineColor" + i], 20); + } else { + options["lineColor" + i] = darken(options["lineColor" + i], 20); + } + } + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + const sw = "" + (17 - 3 * i); + sections += ` + .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} polygon, .section-${i - 1} path { + fill: ${options["cScale" + i]}; + } + .section-${i - 1} text { + fill: ${options["cScaleLabel" + i]}; + } + .node-icon-${i - 1} { + font-size: 40px; + color: ${options["cScaleLabel" + i]}; + } + .section-edge-${i - 1}{ + stroke: ${options["cScale" + i]}; + } + .edge-depth-${i - 1}{ + stroke-width: ${sw}; + } + .section-${i - 1} line { + stroke: ${options["cScaleInv" + i]} ; + stroke-width: 3; + } + + .disabled, .disabled circle, .disabled text { + fill: lightgray; + } + .disabled text { + fill: #efefef; + } + `; + } + return sections; +}; +const getStyles = (options) => ` + .edge { + stroke-width: 3; + } + ${genSections(options)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${options.git0}; + } + .section-root text { + fill: ${options.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`; +const styles = getStyles; +const diagram = { + db: db$1, + renderer, + parser: parser$1, + styles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/mindmap-definition-696ddea4.js b/assets/lib/mermaid/mindmap-definition-696ddea4.js new file mode 100644 index 000000000..5eceffcc4 --- /dev/null +++ b/assets/lib/mermaid/mindmap-definition-696ddea4.js @@ -0,0 +1,32342 @@ +import { l as log, c as getConfig, W as defaultConfig, d as sanitizeText, P as commonjsGlobal, Q as getDefaultExportFromCjs, Y as parseFontSize, U as selectSvgElement, t as setupGraphViewbox, j as d3select, at as isDark, au as lighten, av as darken } from "./mermaid-dcacb631.js"; +import { a as createText } from "./createText-b70fe78a.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "mindMap": 4, "spaceLines": 5, "SPACELINE": 6, "NL": 7, "MINDMAP": 8, "document": 9, "stop": 10, "EOF": 11, "statement": 12, "SPACELIST": 13, "node": 14, "ICON": 15, "CLASS": 16, "nodeWithId": 17, "nodeWithoutId": 18, "NODE_DSTART": 19, "NODE_DESCR": 20, "NODE_DEND": 21, "NODE_ID": 22, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 6: "SPACELINE", 7: "NL", 8: "MINDMAP", 11: "EOF", 13: "SPACELIST", 15: "ICON", 16: "CLASS", 19: "NODE_DSTART", 20: "NODE_DESCR", 21: "NODE_DEND", 22: "NODE_ID" }, + productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 6: + case 7: + return yy; + case 8: + yy.getLogger().trace("Stop NL "); + break; + case 9: + yy.getLogger().trace("Stop EOF "); + break; + case 11: + yy.getLogger().trace("Stop NL2 "); + break; + case 12: + yy.getLogger().trace("Stop EOF2 "); + break; + case 15: + yy.getLogger().info("Node: ", $$[$0].id); + yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type); + break; + case 16: + yy.getLogger().trace("Icon: ", $$[$0]); + yy.decorateNode({ icon: $$[$0] }); + break; + case 17: + case 21: + yy.decorateNode({ class: $$[$0] }); + break; + case 18: + yy.getLogger().trace("SPACELIST"); + break; + case 19: + yy.getLogger().trace("Node: ", $$[$0].id); + yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type); + break; + case 20: + yy.decorateNode({ icon: $$[$0] }); + break; + case 25: + yy.getLogger().trace("node found ..", $$[$0 - 2]); + this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) }; + break; + case 26: + this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT }; + break; + case 27: + yy.getLogger().trace("node found ..", $$[$0 - 3]); + this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) }; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])], + defaultActions: { 2: [2, 1], 6: [2, 2] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self2.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next2 = this.match; + if (next2.length < 20) { + next2 += this._input.substr(0, 20 - next2.length); + } + return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + yy.getLogger().trace("Found comment", yy_.yytext); + return 6; + case 1: + return 8; + case 2: + this.begin("CLASS"); + break; + case 3: + this.popState(); + return 16; + case 4: + this.popState(); + break; + case 5: + yy.getLogger().trace("Begin icon"); + this.begin("ICON"); + break; + case 6: + yy.getLogger().trace("SPACELINE"); + return 6; + case 7: + return 7; + case 8: + return 15; + case 9: + yy.getLogger().trace("end icon"); + this.popState(); + break; + case 10: + yy.getLogger().trace("Exploding node"); + this.begin("NODE"); + return 19; + case 11: + yy.getLogger().trace("Cloud"); + this.begin("NODE"); + return 19; + case 12: + yy.getLogger().trace("Explosion Bang"); + this.begin("NODE"); + return 19; + case 13: + yy.getLogger().trace("Cloud Bang"); + this.begin("NODE"); + return 19; + case 14: + this.begin("NODE"); + return 19; + case 15: + this.begin("NODE"); + return 19; + case 16: + this.begin("NODE"); + return 19; + case 17: + this.begin("NODE"); + return 19; + case 18: + return 13; + case 19: + return 22; + case 20: + return 11; + case 21: + this.begin("NSTR2"); + break; + case 22: + return "NODE_DESCR"; + case 23: + this.popState(); + break; + case 24: + yy.getLogger().trace("Starting NSTR"); + this.begin("NSTR"); + break; + case 25: + yy.getLogger().trace("description:", yy_.yytext); + return "NODE_DESCR"; + case 26: + this.popState(); + break; + case 27: + this.popState(); + yy.getLogger().trace("node end ))"); + return "NODE_DEND"; + case 28: + this.popState(); + yy.getLogger().trace("node end )"); + return "NODE_DEND"; + case 29: + this.popState(); + yy.getLogger().trace("node end ...", yy_.yytext); + return "NODE_DEND"; + case 30: + this.popState(); + yy.getLogger().trace("node end (("); + return "NODE_DEND"; + case 31: + this.popState(); + yy.getLogger().trace("node end (-"); + return "NODE_DEND"; + case 32: + this.popState(); + yy.getLogger().trace("node end (-"); + return "NODE_DEND"; + case 33: + this.popState(); + yy.getLogger().trace("node end (("); + return "NODE_DEND"; + case 34: + this.popState(); + yy.getLogger().trace("node end (("); + return "NODE_DEND"; + case 35: + yy.getLogger().trace("Long description:", yy_.yytext); + return 20; + case 36: + yy.getLogger().trace("Long description:", yy_.yytext); + return 20; + } + }, + rules: [/^(?:\s*%%.*)/i, /^(?:mindmap\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\n)/i, /^(?:::icon\()/i, /^(?:[\s]+[\n])/i, /^(?:[\n]+)/i, /^(?:[^\)]+)/i, /^(?:\))/i, /^(?:-\))/i, /^(?:\(-)/i, /^(?:\)\))/i, /^(?:\))/i, /^(?:\(\()/i, /^(?:\{\{)/i, /^(?:\()/i, /^(?:\[)/i, /^(?:[\s]+)/i, /^(?:[^\(\[\n\)\{\}]+)/i, /^(?:$)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:[^"]+)/i, /^(?:["])/i, /^(?:[\)]\))/i, /^(?:[\)])/i, /^(?:[\]])/i, /^(?:\}\})/i, /^(?:\(-)/i, /^(?:-\))/i, /^(?:\(\()/i, /^(?:\()/i, /^(?:[^\)\]\(\}]+)/i, /^(?:.+(?!\(\())/i], + conditions: { "CLASS": { "rules": [3, 4], "inclusive": false }, "ICON": { "rules": [8, 9], "inclusive": false }, "NSTR2": { "rules": [22, 23], "inclusive": false }, "NSTR": { "rules": [25, 26], "inclusive": false }, "NODE": { "rules": [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let nodes = []; +let cnt = 0; +let elements = {}; +const clear = () => { + nodes = []; + cnt = 0; + elements = {}; +}; +const getParent = function(level) { + for (let i = nodes.length - 1; i >= 0; i--) { + if (nodes[i].level < level) { + return nodes[i]; + } + } + return null; +}; +const getMindmap = () => { + return nodes.length > 0 ? nodes[0] : null; +}; +const addNode = (level, id, descr, type) => { + var _a, _b; + log.info("addNode", level, id, descr, type); + const conf = getConfig(); + let padding = ((_a = conf.mindmap) == null ? void 0 : _a.padding) ?? defaultConfig.mindmap.padding; + switch (type) { + case nodeType.ROUNDED_RECT: + case nodeType.RECT: + case nodeType.HEXAGON: + padding *= 2; + } + const node = { + id: cnt++, + nodeId: sanitizeText(id, conf), + level, + descr: sanitizeText(descr, conf), + type, + children: [], + width: ((_b = conf.mindmap) == null ? void 0 : _b.maxNodeWidth) ?? defaultConfig.mindmap.maxNodeWidth, + padding + }; + const parent = getParent(level); + if (parent) { + parent.children.push(node); + nodes.push(node); + } else { + if (nodes.length === 0) { + nodes.push(node); + } else { + throw new Error( + 'There can be only one root. No parent could be found for ("' + node.descr + '")' + ); + } + } +}; +const nodeType = { + DEFAULT: 0, + NO_BORDER: 0, + ROUNDED_RECT: 1, + RECT: 2, + CIRCLE: 3, + CLOUD: 4, + BANG: 5, + HEXAGON: 6 +}; +const getType = (startStr, endStr) => { + log.debug("In get type", startStr, endStr); + switch (startStr) { + case "[": + return nodeType.RECT; + case "(": + return endStr === ")" ? nodeType.ROUNDED_RECT : nodeType.CLOUD; + case "((": + return nodeType.CIRCLE; + case ")": + return nodeType.CLOUD; + case "))": + return nodeType.BANG; + case "{{": + return nodeType.HEXAGON; + default: + return nodeType.DEFAULT; + } +}; +const setElementForId = (id, element) => { + elements[id] = element; +}; +const decorateNode = (decoration) => { + if (!decoration) { + return; + } + const config = getConfig(); + const node = nodes[nodes.length - 1]; + if (decoration.icon) { + node.icon = sanitizeText(decoration.icon, config); + } + if (decoration.class) { + node.class = sanitizeText(decoration.class, config); + } +}; +const type2Str = (type) => { + switch (type) { + case nodeType.DEFAULT: + return "no-border"; + case nodeType.RECT: + return "rect"; + case nodeType.ROUNDED_RECT: + return "rounded-rect"; + case nodeType.CIRCLE: + return "circle"; + case nodeType.CLOUD: + return "cloud"; + case nodeType.BANG: + return "bang"; + case nodeType.HEXAGON: + return "hexgon"; + default: + return "no-border"; + } +}; +const getLogger = () => log; +const getElementById = (id) => elements[id]; +const db = { + clear, + addNode, + getMindmap, + nodeType, + getType, + setElementForId, + decorateNode, + type2Str, + getLogger, + getElementById +}; +const db$1 = db; +var cytoscape_umd = { exports: {} }; +(function(module, exports) { + (function(global, factory) { + module.exports = factory(); + })(commonjsGlobal, function() { + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) { + return typeof obj2; + } : function(obj2) { + return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }, _typeof(obj); + } + function _classCallCheck(instance2, Constructor) { + if (!(instance2 instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i2 = 0; i2 < props.length; i2++) { + var descriptor = props[i2]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) + _defineProperties(Constructor.prototype, protoProps); + if (staticProps) + _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _defineProperty$1(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _slicedToArray(arr, i2) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i2) || _unsupportedIterableToArray(arr, i2) || _nonIterableRest(); + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) + return arr; + } + function _iterableToArrayLimit(arr, i2) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) + return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i2 && _arr.length === i2) + break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) + _i["return"](); + } finally { + if (_d) + throw _e; + } + } + return _arr; + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) + return; + if (typeof o === "string") + return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) + n = o.constructor.name; + if (n === "Map" || n === "Set") + return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) + return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) + len = arr.length; + for (var i2 = 0, arr2 = new Array(len); i2 < len; i2++) + arr2[i2] = arr[i2]; + return arr2; + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var _window = typeof window === "undefined" ? null : window; + var navigator = _window ? _window.navigator : null; + _window ? _window.document : null; + var typeofstr = _typeof(""); + var typeofobj = _typeof({}); + var typeoffn = _typeof(function() { + }); + var typeofhtmlele = typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement); + var instanceStr = function instanceStr2(obj) { + return obj && obj.instanceString && fn$6(obj.instanceString) ? obj.instanceString() : null; + }; + var string = function string2(obj) { + return obj != null && _typeof(obj) == typeofstr; + }; + var fn$6 = function fn2(obj) { + return obj != null && _typeof(obj) === typeoffn; + }; + var array = function array2(obj) { + return !elementOrCollection(obj) && (Array.isArray ? Array.isArray(obj) : obj != null && obj instanceof Array); + }; + var plainObject = function plainObject2(obj) { + return obj != null && _typeof(obj) === typeofobj && !array(obj) && obj.constructor === Object; + }; + var object = function object2(obj) { + return obj != null && _typeof(obj) === typeofobj; + }; + var number$1 = function number2(obj) { + return obj != null && _typeof(obj) === _typeof(1) && !isNaN(obj); + }; + var integer = function integer2(obj) { + return number$1(obj) && Math.floor(obj) === obj; + }; + var htmlElement = function htmlElement2(obj) { + if ("undefined" === typeofhtmlele) { + return void 0; + } else { + return null != obj && obj instanceof HTMLElement; + } + }; + var elementOrCollection = function elementOrCollection2(obj) { + return element(obj) || collection(obj); + }; + var element = function element2(obj) { + return instanceStr(obj) === "collection" && obj._private.single; + }; + var collection = function collection2(obj) { + return instanceStr(obj) === "collection" && !obj._private.single; + }; + var core = function core2(obj) { + return instanceStr(obj) === "core"; + }; + var stylesheet = function stylesheet2(obj) { + return instanceStr(obj) === "stylesheet"; + }; + var event = function event2(obj) { + return instanceStr(obj) === "event"; + }; + var emptyString = function emptyString2(obj) { + if (obj === void 0 || obj === null) { + return true; + } else if (obj === "" || obj.match(/^\s+$/)) { + return true; + } + return false; + }; + var domElement = function domElement2(obj) { + if (typeof HTMLElement === "undefined") { + return false; + } else { + return obj instanceof HTMLElement; + } + }; + var boundingBox = function boundingBox2(obj) { + return plainObject(obj) && number$1(obj.x1) && number$1(obj.x2) && number$1(obj.y1) && number$1(obj.y2); + }; + var promise = function promise2(obj) { + return object(obj) && fn$6(obj.then); + }; + var ms = function ms2() { + return navigator && navigator.userAgent.match(/msie|trident|edge/i); + }; + var memoize$1 = function memoize2(fn2, keyFn) { + if (!keyFn) { + keyFn = function keyFn2() { + if (arguments.length === 1) { + return arguments[0]; + } else if (arguments.length === 0) { + return "undefined"; + } + var args = []; + for (var i2 = 0; i2 < arguments.length; i2++) { + args.push(arguments[i2]); + } + return args.join("$"); + }; + } + var memoizedFn = function memoizedFn2() { + var self2 = this; + var args = arguments; + var ret; + var k = keyFn.apply(self2, args); + var cache2 = memoizedFn2.cache; + if (!(ret = cache2[k])) { + ret = cache2[k] = fn2.apply(self2, args); + } + return ret; + }; + memoizedFn.cache = {}; + return memoizedFn; + }; + var camel2dash = memoize$1(function(str) { + return str.replace(/([A-Z])/g, function(v) { + return "-" + v.toLowerCase(); + }); + }); + var dash2camel = memoize$1(function(str) { + return str.replace(/(-\w)/g, function(v) { + return v[1].toUpperCase(); + }); + }); + var prependCamel = memoize$1(function(prefix, str) { + return prefix + str[0].toUpperCase() + str.substring(1); + }, function(prefix, str) { + return prefix + "$" + str; + }); + var capitalize = function capitalize2(str) { + if (emptyString(str)) { + return str; + } + return str.charAt(0).toUpperCase() + str.substring(1); + }; + var number = "(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))"; + var rgba = "rgb[a]?\\((" + number + "[%]?)\\s*,\\s*(" + number + "[%]?)\\s*,\\s*(" + number + "[%]?)(?:\\s*,\\s*(" + number + "))?\\)"; + var rgbaNoBackRefs = "rgb[a]?\\((?:" + number + "[%]?)\\s*,\\s*(?:" + number + "[%]?)\\s*,\\s*(?:" + number + "[%]?)(?:\\s*,\\s*(?:" + number + "))?\\)"; + var hsla = "hsl[a]?\\((" + number + ")\\s*,\\s*(" + number + "[%])\\s*,\\s*(" + number + "[%])(?:\\s*,\\s*(" + number + "))?\\)"; + var hslaNoBackRefs = "hsl[a]?\\((?:" + number + ")\\s*,\\s*(?:" + number + "[%])\\s*,\\s*(?:" + number + "[%])(?:\\s*,\\s*(?:" + number + "))?\\)"; + var hex3 = "\\#[0-9a-fA-F]{3}"; + var hex6 = "\\#[0-9a-fA-F]{6}"; + var ascending = function ascending2(a, b) { + if (a < b) { + return -1; + } else if (a > b) { + return 1; + } else { + return 0; + } + }; + var descending = function descending2(a, b) { + return -1 * ascending(a, b); + }; + var extend = Object.assign != null ? Object.assign.bind(Object) : function(tgt) { + var args = arguments; + for (var i2 = 1; i2 < args.length; i2++) { + var obj = args[i2]; + if (obj == null) { + continue; + } + var keys = Object.keys(obj); + for (var j = 0; j < keys.length; j++) { + var k = keys[j]; + tgt[k] = obj[k]; + } + } + return tgt; + }; + var hex2tuple = function hex2tuple2(hex) { + if (!(hex.length === 4 || hex.length === 7) || hex[0] !== "#") { + return; + } + var shortHex = hex.length === 4; + var r, g, b; + var base = 16; + if (shortHex) { + r = parseInt(hex[1] + hex[1], base); + g = parseInt(hex[2] + hex[2], base); + b = parseInt(hex[3] + hex[3], base); + } else { + r = parseInt(hex[1] + hex[2], base); + g = parseInt(hex[3] + hex[4], base); + b = parseInt(hex[5] + hex[6], base); + } + return [r, g, b]; + }; + var hsl2tuple = function hsl2tuple2(hsl) { + var ret; + var h, s, l, a, r, g, b; + function hue2rgb(p3, q2, t) { + if (t < 0) + t += 1; + if (t > 1) + t -= 1; + if (t < 1 / 6) + return p3 + (q2 - p3) * 6 * t; + if (t < 1 / 2) + return q2; + if (t < 2 / 3) + return p3 + (q2 - p3) * (2 / 3 - t) * 6; + return p3; + } + var m = new RegExp("^" + hsla + "$").exec(hsl); + if (m) { + h = parseInt(m[1]); + if (h < 0) { + h = (360 - -1 * h % 360) % 360; + } else if (h > 360) { + h = h % 360; + } + h /= 360; + s = parseFloat(m[2]); + if (s < 0 || s > 100) { + return; + } + s = s / 100; + l = parseFloat(m[3]); + if (l < 0 || l > 100) { + return; + } + l = l / 100; + a = m[4]; + if (a !== void 0) { + a = parseFloat(a); + if (a < 0 || a > 1) { + return; + } + } + if (s === 0) { + r = g = b = Math.round(l * 255); + } else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p2 = 2 * l - q; + r = Math.round(255 * hue2rgb(p2, q, h + 1 / 3)); + g = Math.round(255 * hue2rgb(p2, q, h)); + b = Math.round(255 * hue2rgb(p2, q, h - 1 / 3)); + } + ret = [r, g, b, a]; + } + return ret; + }; + var rgb2tuple = function rgb2tuple2(rgb) { + var ret; + var m = new RegExp("^" + rgba + "$").exec(rgb); + if (m) { + ret = []; + var isPct = []; + for (var i2 = 1; i2 <= 3; i2++) { + var channel = m[i2]; + if (channel[channel.length - 1] === "%") { + isPct[i2] = true; + } + channel = parseFloat(channel); + if (isPct[i2]) { + channel = channel / 100 * 255; + } + if (channel < 0 || channel > 255) { + return; + } + ret.push(Math.floor(channel)); + } + var atLeastOneIsPct = isPct[1] || isPct[2] || isPct[3]; + var allArePct = isPct[1] && isPct[2] && isPct[3]; + if (atLeastOneIsPct && !allArePct) { + return; + } + var alpha = m[4]; + if (alpha !== void 0) { + alpha = parseFloat(alpha); + if (alpha < 0 || alpha > 1) { + return; + } + ret.push(alpha); + } + } + return ret; + }; + var colorname2tuple = function colorname2tuple2(color) { + return colors[color.toLowerCase()]; + }; + var color2tuple = function color2tuple2(color) { + return (array(color) ? color : null) || colorname2tuple(color) || hex2tuple(color) || rgb2tuple(color) || hsl2tuple(color); + }; + var colors = { + // special colour names + transparent: [0, 0, 0, 0], + // NB alpha === 0 + // regular colours + aliceblue: [240, 248, 255], + antiquewhite: [250, 235, 215], + aqua: [0, 255, 255], + aquamarine: [127, 255, 212], + azure: [240, 255, 255], + beige: [245, 245, 220], + bisque: [255, 228, 196], + black: [0, 0, 0], + blanchedalmond: [255, 235, 205], + blue: [0, 0, 255], + blueviolet: [138, 43, 226], + brown: [165, 42, 42], + burlywood: [222, 184, 135], + cadetblue: [95, 158, 160], + chartreuse: [127, 255, 0], + chocolate: [210, 105, 30], + coral: [255, 127, 80], + cornflowerblue: [100, 149, 237], + cornsilk: [255, 248, 220], + crimson: [220, 20, 60], + cyan: [0, 255, 255], + darkblue: [0, 0, 139], + darkcyan: [0, 139, 139], + darkgoldenrod: [184, 134, 11], + darkgray: [169, 169, 169], + darkgreen: [0, 100, 0], + darkgrey: [169, 169, 169], + darkkhaki: [189, 183, 107], + darkmagenta: [139, 0, 139], + darkolivegreen: [85, 107, 47], + darkorange: [255, 140, 0], + darkorchid: [153, 50, 204], + darkred: [139, 0, 0], + darksalmon: [233, 150, 122], + darkseagreen: [143, 188, 143], + darkslateblue: [72, 61, 139], + darkslategray: [47, 79, 79], + darkslategrey: [47, 79, 79], + darkturquoise: [0, 206, 209], + darkviolet: [148, 0, 211], + deeppink: [255, 20, 147], + deepskyblue: [0, 191, 255], + dimgray: [105, 105, 105], + dimgrey: [105, 105, 105], + dodgerblue: [30, 144, 255], + firebrick: [178, 34, 34], + floralwhite: [255, 250, 240], + forestgreen: [34, 139, 34], + fuchsia: [255, 0, 255], + gainsboro: [220, 220, 220], + ghostwhite: [248, 248, 255], + gold: [255, 215, 0], + goldenrod: [218, 165, 32], + gray: [128, 128, 128], + grey: [128, 128, 128], + green: [0, 128, 0], + greenyellow: [173, 255, 47], + honeydew: [240, 255, 240], + hotpink: [255, 105, 180], + indianred: [205, 92, 92], + indigo: [75, 0, 130], + ivory: [255, 255, 240], + khaki: [240, 230, 140], + lavender: [230, 230, 250], + lavenderblush: [255, 240, 245], + lawngreen: [124, 252, 0], + lemonchiffon: [255, 250, 205], + lightblue: [173, 216, 230], + lightcoral: [240, 128, 128], + lightcyan: [224, 255, 255], + lightgoldenrodyellow: [250, 250, 210], + lightgray: [211, 211, 211], + lightgreen: [144, 238, 144], + lightgrey: [211, 211, 211], + lightpink: [255, 182, 193], + lightsalmon: [255, 160, 122], + lightseagreen: [32, 178, 170], + lightskyblue: [135, 206, 250], + lightslategray: [119, 136, 153], + lightslategrey: [119, 136, 153], + lightsteelblue: [176, 196, 222], + lightyellow: [255, 255, 224], + lime: [0, 255, 0], + limegreen: [50, 205, 50], + linen: [250, 240, 230], + magenta: [255, 0, 255], + maroon: [128, 0, 0], + mediumaquamarine: [102, 205, 170], + mediumblue: [0, 0, 205], + mediumorchid: [186, 85, 211], + mediumpurple: [147, 112, 219], + mediumseagreen: [60, 179, 113], + mediumslateblue: [123, 104, 238], + mediumspringgreen: [0, 250, 154], + mediumturquoise: [72, 209, 204], + mediumvioletred: [199, 21, 133], + midnightblue: [25, 25, 112], + mintcream: [245, 255, 250], + mistyrose: [255, 228, 225], + moccasin: [255, 228, 181], + navajowhite: [255, 222, 173], + navy: [0, 0, 128], + oldlace: [253, 245, 230], + olive: [128, 128, 0], + olivedrab: [107, 142, 35], + orange: [255, 165, 0], + orangered: [255, 69, 0], + orchid: [218, 112, 214], + palegoldenrod: [238, 232, 170], + palegreen: [152, 251, 152], + paleturquoise: [175, 238, 238], + palevioletred: [219, 112, 147], + papayawhip: [255, 239, 213], + peachpuff: [255, 218, 185], + peru: [205, 133, 63], + pink: [255, 192, 203], + plum: [221, 160, 221], + powderblue: [176, 224, 230], + purple: [128, 0, 128], + red: [255, 0, 0], + rosybrown: [188, 143, 143], + royalblue: [65, 105, 225], + saddlebrown: [139, 69, 19], + salmon: [250, 128, 114], + sandybrown: [244, 164, 96], + seagreen: [46, 139, 87], + seashell: [255, 245, 238], + sienna: [160, 82, 45], + silver: [192, 192, 192], + skyblue: [135, 206, 235], + slateblue: [106, 90, 205], + slategray: [112, 128, 144], + slategrey: [112, 128, 144], + snow: [255, 250, 250], + springgreen: [0, 255, 127], + steelblue: [70, 130, 180], + tan: [210, 180, 140], + teal: [0, 128, 128], + thistle: [216, 191, 216], + tomato: [255, 99, 71], + turquoise: [64, 224, 208], + violet: [238, 130, 238], + wheat: [245, 222, 179], + white: [255, 255, 255], + whitesmoke: [245, 245, 245], + yellow: [255, 255, 0], + yellowgreen: [154, 205, 50] + }; + var setMap = function setMap2(options) { + var obj = options.map; + var keys = options.keys; + var l = keys.length; + for (var i2 = 0; i2 < l; i2++) { + var key = keys[i2]; + if (plainObject(key)) { + throw Error("Tried to set map with object key"); + } + if (i2 < keys.length - 1) { + if (obj[key] == null) { + obj[key] = {}; + } + obj = obj[key]; + } else { + obj[key] = options.value; + } + } + }; + var getMap = function getMap2(options) { + var obj = options.map; + var keys = options.keys; + var l = keys.length; + for (var i2 = 0; i2 < l; i2++) { + var key = keys[i2]; + if (plainObject(key)) { + throw Error("Tried to get map with object key"); + } + obj = obj[key]; + if (obj == null) { + return obj; + } + } + return obj; + }; + function isObject(value) { + var type = typeof value; + return value != null && (type == "object" || type == "function"); + } + var isObject_1 = isObject; + var commonjsGlobal$1 = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof self !== "undefined" ? self : {}; + function createCommonjsModule(fn2, module2) { + return module2 = { exports: {} }, fn2(module2, module2.exports), module2.exports; + } + var freeGlobal = typeof commonjsGlobal$1 == "object" && commonjsGlobal$1 && commonjsGlobal$1.Object === Object && commonjsGlobal$1; + var _freeGlobal = freeGlobal; + var freeSelf = typeof self == "object" && self && self.Object === Object && self; + var root = _freeGlobal || freeSelf || Function("return this")(); + var _root = root; + var now = function() { + return _root.Date.now(); + }; + var now_1 = now; + var reWhitespace = /\s/; + function trimmedEndIndex(string2) { + var index = string2.length; + while (index-- && reWhitespace.test(string2.charAt(index))) { + } + return index; + } + var _trimmedEndIndex = trimmedEndIndex; + var reTrimStart = /^\s+/; + function baseTrim(string2) { + return string2 ? string2.slice(0, _trimmedEndIndex(string2) + 1).replace(reTrimStart, "") : string2; + } + var _baseTrim = baseTrim; + var Symbol$1 = _root.Symbol; + var _Symbol = Symbol$1; + var objectProto$5 = Object.prototype; + var hasOwnProperty$4 = objectProto$5.hasOwnProperty; + var nativeObjectToString$1 = objectProto$5.toString; + var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : void 0; + function getRawTag(value) { + var isOwn = hasOwnProperty$4.call(value, symToStringTag$1), tag = value[symToStringTag$1]; + try { + value[symToStringTag$1] = void 0; + var unmasked = true; + } catch (e) { + } + var result = nativeObjectToString$1.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag$1] = tag; + } else { + delete value[symToStringTag$1]; + } + } + return result; + } + var _getRawTag = getRawTag; + var objectProto$4 = Object.prototype; + var nativeObjectToString = objectProto$4.toString; + function objectToString(value) { + return nativeObjectToString.call(value); + } + var _objectToString = objectToString; + var nullTag = "[object Null]", undefinedTag = "[object Undefined]"; + var symToStringTag = _Symbol ? _Symbol.toStringTag : void 0; + function baseGetTag(value) { + if (value == null) { + return value === void 0 ? undefinedTag : nullTag; + } + return symToStringTag && symToStringTag in Object(value) ? _getRawTag(value) : _objectToString(value); + } + var _baseGetTag = baseGetTag; + function isObjectLike(value) { + return value != null && typeof value == "object"; + } + var isObjectLike_1 = isObjectLike; + var symbolTag = "[object Symbol]"; + function isSymbol(value) { + return typeof value == "symbol" || isObjectLike_1(value) && _baseGetTag(value) == symbolTag; + } + var isSymbol_1 = isSymbol; + var NAN = 0 / 0; + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + var reIsBinary = /^0b[01]+$/i; + var reIsOctal = /^0o[0-7]+$/i; + var freeParseInt = parseInt; + function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol_1(value)) { + return NAN; + } + if (isObject_1(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject_1(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = _baseTrim(value); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + } + var toNumber_1 = toNumber; + var FUNC_ERROR_TEXT$1 = "Expected a function"; + var nativeMax = Math.max, nativeMin = Math.min; + function debounce(func, wait, options) { + var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; + if (typeof func != "function") { + throw new TypeError(FUNC_ERROR_TEXT$1); + } + wait = toNumber_1(wait) || 0; + if (isObject_1(options)) { + leading = !!options.leading; + maxing = "maxWait" in options; + maxWait = maxing ? nativeMax(toNumber_1(options.maxWait) || 0, wait) : maxWait; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + function invokeFunc(time) { + var args = lastArgs, thisArg = lastThis; + lastArgs = lastThis = void 0; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + function leadingEdge(time) { + lastInvokeTime = time; + timerId = setTimeout(timerExpired, wait); + return leading ? invokeFunc(time) : result; + } + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; + return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; + } + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; + return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; + } + function timerExpired() { + var time = now_1(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + timerId = setTimeout(timerExpired, remainingWait(time)); + } + function trailingEdge(time) { + timerId = void 0; + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = void 0; + return result; + } + function cancel() { + if (timerId !== void 0) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = void 0; + } + function flush() { + return timerId === void 0 ? result : trailingEdge(now_1()); + } + function debounced() { + var time = now_1(), isInvoking = shouldInvoke(time); + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + if (isInvoking) { + if (timerId === void 0) { + return leadingEdge(lastCallTime); + } + if (maxing) { + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === void 0) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; + } + var debounce_1 = debounce; + var performance = _window ? _window.performance : null; + var pnow = performance && performance.now ? function() { + return performance.now(); + } : function() { + return Date.now(); + }; + var raf = function() { + if (_window) { + if (_window.requestAnimationFrame) { + return function(fn2) { + _window.requestAnimationFrame(fn2); + }; + } else if (_window.mozRequestAnimationFrame) { + return function(fn2) { + _window.mozRequestAnimationFrame(fn2); + }; + } else if (_window.webkitRequestAnimationFrame) { + return function(fn2) { + _window.webkitRequestAnimationFrame(fn2); + }; + } else if (_window.msRequestAnimationFrame) { + return function(fn2) { + _window.msRequestAnimationFrame(fn2); + }; + } + } + return function(fn2) { + if (fn2) { + setTimeout(function() { + fn2(pnow()); + }, 1e3 / 60); + } + }; + }(); + var requestAnimationFrame2 = function requestAnimationFrame3(fn2) { + return raf(fn2); + }; + var performanceNow = pnow; + var DEFAULT_HASH_SEED = 9261; + var K = 65599; + var DEFAULT_HASH_SEED_ALT = 5381; + var hashIterableInts = function hashIterableInts2(iterator) { + var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED; + var hash = seed; + var entry; + for (; ; ) { + entry = iterator.next(); + if (entry.done) { + break; + } + hash = hash * K + entry.value | 0; + } + return hash; + }; + var hashInt = function hashInt2(num) { + var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED; + return seed * K + num | 0; + }; + var hashIntAlt = function hashIntAlt2(num) { + var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED_ALT; + return (seed << 5) + seed + num | 0; + }; + var combineHashes = function combineHashes2(hash1, hash2) { + return hash1 * 2097152 + hash2; + }; + var combineHashesArray = function combineHashesArray2(hashes) { + return hashes[0] * 2097152 + hashes[1]; + }; + var hashArrays = function hashArrays2(hashes1, hashes2) { + return [hashInt(hashes1[0], hashes2[0]), hashIntAlt(hashes1[1], hashes2[1])]; + }; + var hashIntsArray = function hashIntsArray2(ints, seed) { + var entry = { + value: 0, + done: false + }; + var i2 = 0; + var length = ints.length; + var iterator = { + next: function next2() { + if (i2 < length) { + entry.value = ints[i2++]; + } else { + entry.done = true; + } + return entry; + } + }; + return hashIterableInts(iterator, seed); + }; + var hashString = function hashString2(str, seed) { + var entry = { + value: 0, + done: false + }; + var i2 = 0; + var length = str.length; + var iterator = { + next: function next2() { + if (i2 < length) { + entry.value = str.charCodeAt(i2++); + } else { + entry.done = true; + } + return entry; + } + }; + return hashIterableInts(iterator, seed); + }; + var hashStrings = function hashStrings2() { + return hashStringsArray(arguments); + }; + var hashStringsArray = function hashStringsArray2(strs) { + var hash; + for (var i2 = 0; i2 < strs.length; i2++) { + var str = strs[i2]; + if (i2 === 0) { + hash = hashString(str); + } else { + hash = hashString(str, hash); + } + } + return hash; + }; + var warningsEnabled = true; + var warnSupported = console.warn != null; + var traceSupported = console.trace != null; + var MAX_INT$1 = Number.MAX_SAFE_INTEGER || 9007199254740991; + var trueify = function trueify2() { + return true; + }; + var falsify = function falsify2() { + return false; + }; + var zeroify = function zeroify2() { + return 0; + }; + var noop$1 = function noop2() { + }; + var error = function error2(msg) { + throw new Error(msg); + }; + var warnings = function warnings2(enabled) { + if (enabled !== void 0) { + warningsEnabled = !!enabled; + } else { + return warningsEnabled; + } + }; + var warn = function warn2(msg) { + if (!warnings()) { + return; + } + if (warnSupported) { + console.warn(msg); + } else { + console.log(msg); + if (traceSupported) { + console.trace(); + } + } + }; + var clone = function clone2(obj) { + return extend({}, obj); + }; + var copy = function copy2(obj) { + if (obj == null) { + return obj; + } + if (array(obj)) { + return obj.slice(); + } else if (plainObject(obj)) { + return clone(obj); + } else { + return obj; + } + }; + var copyArray$1 = function copyArray2(arr) { + return arr.slice(); + }; + var uuid = function uuid2(a, b) { + for ( + // loop :) + b = a = ""; + // b - result , a - numeric letiable + a++ < 36; + // + b += a * 51 & 52 ? ( + // return a random number or 4 + (a ^ 15 ? ( + // generate a random number from 0 to 15 + 8 ^ Math.random() * (a ^ 20 ? 16 : 4) + ) : 4).toString(16) + ) : "-" + ) { + } + return b; + }; + var _staticEmptyObject = {}; + var staticEmptyObject = function staticEmptyObject2() { + return _staticEmptyObject; + }; + var defaults$g = function defaults2(_defaults) { + var keys = Object.keys(_defaults); + return function(opts) { + var filledOpts = {}; + for (var i2 = 0; i2 < keys.length; i2++) { + var key = keys[i2]; + var optVal = opts == null ? void 0 : opts[key]; + filledOpts[key] = optVal === void 0 ? _defaults[key] : optVal; + } + return filledOpts; + }; + }; + var removeFromArray = function removeFromArray2(arr, ele, oneCopy) { + for (var i2 = arr.length - 1; i2 >= 0; i2--) { + if (arr[i2] === ele) { + arr.splice(i2, 1); + if (oneCopy) { + break; + } + } + } + }; + var clearArray = function clearArray2(arr) { + arr.splice(0, arr.length); + }; + var push = function push2(arr, otherArr) { + for (var i2 = 0; i2 < otherArr.length; i2++) { + var el = otherArr[i2]; + arr.push(el); + } + }; + var getPrefixedProperty = function getPrefixedProperty2(obj, propName, prefix) { + if (prefix) { + propName = prependCamel(prefix, propName); + } + return obj[propName]; + }; + var setPrefixedProperty = function setPrefixedProperty2(obj, propName, prefix, value) { + if (prefix) { + propName = prependCamel(prefix, propName); + } + obj[propName] = value; + }; + var ObjectMap = /* @__PURE__ */ function() { + function ObjectMap2() { + _classCallCheck(this, ObjectMap2); + this._obj = {}; + } + _createClass(ObjectMap2, [{ + key: "set", + value: function set2(key, val) { + this._obj[key] = val; + return this; + } + }, { + key: "delete", + value: function _delete(key) { + this._obj[key] = void 0; + return this; + } + }, { + key: "clear", + value: function clear2() { + this._obj = {}; + } + }, { + key: "has", + value: function has(key) { + return this._obj[key] !== void 0; + } + }, { + key: "get", + value: function get2(key) { + return this._obj[key]; + } + }]); + return ObjectMap2; + }(); + var Map$2 = typeof Map !== "undefined" ? Map : ObjectMap; + var undef = "undefined"; + var ObjectSet = /* @__PURE__ */ function() { + function ObjectSet2(arrayOrObjectSet) { + _classCallCheck(this, ObjectSet2); + this._obj = /* @__PURE__ */ Object.create(null); + this.size = 0; + if (arrayOrObjectSet != null) { + var arr; + if (arrayOrObjectSet.instanceString != null && arrayOrObjectSet.instanceString() === this.instanceString()) { + arr = arrayOrObjectSet.toArray(); + } else { + arr = arrayOrObjectSet; + } + for (var i2 = 0; i2 < arr.length; i2++) { + this.add(arr[i2]); + } + } + } + _createClass(ObjectSet2, [{ + key: "instanceString", + value: function instanceString() { + return "set"; + } + }, { + key: "add", + value: function add(val) { + var o = this._obj; + if (o[val] !== 1) { + o[val] = 1; + this.size++; + } + } + }, { + key: "delete", + value: function _delete(val) { + var o = this._obj; + if (o[val] === 1) { + o[val] = 0; + this.size--; + } + } + }, { + key: "clear", + value: function clear2() { + this._obj = /* @__PURE__ */ Object.create(null); + } + }, { + key: "has", + value: function has(val) { + return this._obj[val] === 1; + } + }, { + key: "toArray", + value: function toArray() { + var _this = this; + return Object.keys(this._obj).filter(function(key) { + return _this.has(key); + }); + } + }, { + key: "forEach", + value: function forEach(callback, thisArg) { + return this.toArray().forEach(callback, thisArg); + } + }]); + return ObjectSet2; + }(); + var Set$1 = (typeof Set === "undefined" ? "undefined" : _typeof(Set)) !== undef ? Set : ObjectSet; + var Element = function Element2(cy, params) { + var restore = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true; + if (cy === void 0 || params === void 0 || !core(cy)) { + error("An element must have a core reference and parameters set"); + return; + } + var group = params.group; + if (group == null) { + if (params.data && params.data.source != null && params.data.target != null) { + group = "edges"; + } else { + group = "nodes"; + } + } + if (group !== "nodes" && group !== "edges") { + error("An element must be of type `nodes` or `edges`; you specified `" + group + "`"); + return; + } + this.length = 1; + this[0] = this; + var _p = this._private = { + cy, + single: true, + // indicates this is an element + data: params.data || {}, + // data object + position: params.position || { + x: 0, + y: 0 + }, + // (x, y) position pair + autoWidth: void 0, + // width and height of nodes calculated by the renderer when set to special 'auto' value + autoHeight: void 0, + autoPadding: void 0, + compoundBoundsClean: false, + // whether the compound dimensions need to be recalculated the next time dimensions are read + listeners: [], + // array of bound listeners + group, + // string; 'nodes' or 'edges' + style: {}, + // properties as set by the style + rstyle: {}, + // properties for style sent from the renderer to the core + styleCxts: [], + // applied style contexts from the styler + styleKeys: {}, + // per-group keys of style property values + removed: true, + // whether it's inside the vis; true if removed (set true here since we call restore) + selected: params.selected ? true : false, + // whether it's selected + selectable: params.selectable === void 0 ? true : params.selectable ? true : false, + // whether it's selectable + locked: params.locked ? true : false, + // whether the element is locked (cannot be moved) + grabbed: false, + // whether the element is grabbed by the mouse; renderer sets this privately + grabbable: params.grabbable === void 0 ? true : params.grabbable ? true : false, + // whether the element can be grabbed + pannable: params.pannable === void 0 ? group === "edges" ? true : false : params.pannable ? true : false, + // whether the element has passthrough panning enabled + active: false, + // whether the element is active from user interaction + classes: new Set$1(), + // map ( className => true ) + animation: { + // object for currently-running animations + current: [], + queue: [] + }, + rscratch: {}, + // object in which the renderer can store information + scratch: params.scratch || {}, + // scratch objects + edges: [], + // array of connected edges + children: [], + // array of children + parent: params.parent && params.parent.isNode() ? params.parent : null, + // parent ref + traversalCache: {}, + // cache of output of traversal functions + backgrounding: false, + // whether background images are loading + bbCache: null, + // cache of the current bounding box + bbCacheShift: { + x: 0, + y: 0 + }, + // shift applied to cached bb to be applied on next get + bodyBounds: null, + // bounds cache of element body, w/o overlay + overlayBounds: null, + // bounds cache of element body, including overlay + labelBounds: { + // bounds cache of labels + all: null, + source: null, + target: null, + main: null + }, + arrowBounds: { + // bounds cache of edge arrows + source: null, + target: null, + "mid-source": null, + "mid-target": null + } + }; + if (_p.position.x == null) { + _p.position.x = 0; + } + if (_p.position.y == null) { + _p.position.y = 0; + } + if (params.renderedPosition) { + var rpos = params.renderedPosition; + var pan = cy.pan(); + var zoom = cy.zoom(); + _p.position = { + x: (rpos.x - pan.x) / zoom, + y: (rpos.y - pan.y) / zoom + }; + } + var classes = []; + if (array(params.classes)) { + classes = params.classes; + } else if (string(params.classes)) { + classes = params.classes.split(/\s+/); + } + for (var i2 = 0, l = classes.length; i2 < l; i2++) { + var cls = classes[i2]; + if (!cls || cls === "") { + continue; + } + _p.classes.add(cls); + } + this.createEmitter(); + var bypass = params.style || params.css; + if (bypass) { + warn("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."); + this.style(bypass); + } + if (restore === void 0 || restore) { + this.restore(); + } + }; + var defineSearch = function defineSearch2(params) { + params = { + bfs: params.bfs || !params.dfs, + dfs: params.dfs || !params.bfs + }; + return function searchFn(roots, fn2, directed) { + var options; + if (plainObject(roots) && !elementOrCollection(roots)) { + options = roots; + roots = options.roots || options.root; + fn2 = options.visit; + directed = options.directed; + } + directed = arguments.length === 2 && !fn$6(fn2) ? fn2 : directed; + fn2 = fn$6(fn2) ? fn2 : function() { + }; + var cy = this._private.cy; + var v = roots = string(roots) ? this.filter(roots) : roots; + var Q = []; + var connectedNodes = []; + var connectedBy = {}; + var id2depth = {}; + var V = {}; + var j = 0; + var found; + var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges; + for (var i2 = 0; i2 < v.length; i2++) { + var vi = v[i2]; + var viId = vi.id(); + if (vi.isNode()) { + Q.unshift(vi); + if (params.bfs) { + V[viId] = true; + connectedNodes.push(vi); + } + id2depth[viId] = 0; + } + } + var _loop = function _loop2() { + var v2 = params.bfs ? Q.shift() : Q.pop(); + var vId = v2.id(); + if (params.dfs) { + if (V[vId]) { + return "continue"; + } + V[vId] = true; + connectedNodes.push(v2); + } + var depth = id2depth[vId]; + var prevEdge = connectedBy[vId]; + var src = prevEdge != null ? prevEdge.source() : null; + var tgt = prevEdge != null ? prevEdge.target() : null; + var prevNode = prevEdge == null ? void 0 : v2.same(src) ? tgt[0] : src[0]; + var ret = void 0; + ret = fn2(v2, prevEdge, prevNode, j++, depth); + if (ret === true) { + found = v2; + return "break"; + } + if (ret === false) { + return "break"; + } + var vwEdges = v2.connectedEdges().filter(function(e2) { + return (!directed || e2.source().same(v2)) && edges.has(e2); + }); + for (var _i2 = 0; _i2 < vwEdges.length; _i2++) { + var e = vwEdges[_i2]; + var w = e.connectedNodes().filter(function(n) { + return !n.same(v2) && nodes2.has(n); + }); + var wId = w.id(); + if (w.length !== 0 && !V[wId]) { + w = w[0]; + Q.push(w); + if (params.bfs) { + V[wId] = true; + connectedNodes.push(w); + } + connectedBy[wId] = e; + id2depth[wId] = id2depth[vId] + 1; + } + } + }; + while (Q.length !== 0) { + var _ret = _loop(); + if (_ret === "continue") + continue; + if (_ret === "break") + break; + } + var connectedEles = cy.collection(); + for (var _i = 0; _i < connectedNodes.length; _i++) { + var node = connectedNodes[_i]; + var edge = connectedBy[node.id()]; + if (edge != null) { + connectedEles.push(edge); + } + connectedEles.push(node); + } + return { + path: cy.collection(connectedEles), + found: cy.collection(found) + }; + }; + }; + var elesfn$v = { + breadthFirstSearch: defineSearch({ + bfs: true + }), + depthFirstSearch: defineSearch({ + dfs: true + }) + }; + elesfn$v.bfs = elesfn$v.breadthFirstSearch; + elesfn$v.dfs = elesfn$v.depthFirstSearch; + var heap$1 = createCommonjsModule(function(module2, exports2) { + (function() { + var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min2, nlargest, nsmallest, updateItem, _siftdown, _siftup; + floor = Math.floor, min2 = Math.min; + defaultCmp = function(x, y) { + if (x < y) { + return -1; + } + if (x > y) { + return 1; + } + return 0; + }; + insort = function(a, x, lo, hi, cmp) { + var mid; + if (lo == null) { + lo = 0; + } + if (cmp == null) { + cmp = defaultCmp; + } + if (lo < 0) { + throw new Error("lo must be non-negative"); + } + if (hi == null) { + hi = a.length; + } + while (lo < hi) { + mid = floor((lo + hi) / 2); + if (cmp(x, a[mid]) < 0) { + hi = mid; + } else { + lo = mid + 1; + } + } + return [].splice.apply(a, [lo, lo - lo].concat(x)), x; + }; + heappush = function(array2, item, cmp) { + if (cmp == null) { + cmp = defaultCmp; + } + array2.push(item); + return _siftdown(array2, 0, array2.length - 1, cmp); + }; + heappop = function(array2, cmp) { + var lastelt, returnitem; + if (cmp == null) { + cmp = defaultCmp; + } + lastelt = array2.pop(); + if (array2.length) { + returnitem = array2[0]; + array2[0] = lastelt; + _siftup(array2, 0, cmp); + } else { + returnitem = lastelt; + } + return returnitem; + }; + heapreplace = function(array2, item, cmp) { + var returnitem; + if (cmp == null) { + cmp = defaultCmp; + } + returnitem = array2[0]; + array2[0] = item; + _siftup(array2, 0, cmp); + return returnitem; + }; + heappushpop = function(array2, item, cmp) { + var _ref; + if (cmp == null) { + cmp = defaultCmp; + } + if (array2.length && cmp(array2[0], item) < 0) { + _ref = [array2[0], item], item = _ref[0], array2[0] = _ref[1]; + _siftup(array2, 0, cmp); + } + return item; + }; + heapify = function(array2, cmp) { + var i2, _i, _len, _ref1, _results, _results1; + if (cmp == null) { + cmp = defaultCmp; + } + _ref1 = (function() { + _results1 = []; + for (var _j = 0, _ref = floor(array2.length / 2); 0 <= _ref ? _j < _ref : _j > _ref; 0 <= _ref ? _j++ : _j--) { + _results1.push(_j); + } + return _results1; + }).apply(this).reverse(); + _results = []; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + i2 = _ref1[_i]; + _results.push(_siftup(array2, i2, cmp)); + } + return _results; + }; + updateItem = function(array2, item, cmp) { + var pos; + if (cmp == null) { + cmp = defaultCmp; + } + pos = array2.indexOf(item); + if (pos === -1) { + return; + } + _siftdown(array2, 0, pos, cmp); + return _siftup(array2, pos, cmp); + }; + nlargest = function(array2, n, cmp) { + var elem, result, _i, _len, _ref; + if (cmp == null) { + cmp = defaultCmp; + } + result = array2.slice(0, n); + if (!result.length) { + return result; + } + heapify(result, cmp); + _ref = array2.slice(n); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + elem = _ref[_i]; + heappushpop(result, elem, cmp); + } + return result.sort(cmp).reverse(); + }; + nsmallest = function(array2, n, cmp) { + var elem, los, result, _i, _j, _len, _ref, _ref1, _results; + if (cmp == null) { + cmp = defaultCmp; + } + if (n * 10 <= array2.length) { + result = array2.slice(0, n).sort(cmp); + if (!result.length) { + return result; + } + los = result[result.length - 1]; + _ref = array2.slice(n); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + elem = _ref[_i]; + if (cmp(elem, los) < 0) { + insort(result, elem, 0, null, cmp); + result.pop(); + los = result[result.length - 1]; + } + } + return result; + } + heapify(array2, cmp); + _results = []; + for (_j = 0, _ref1 = min2(n, array2.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; 0 <= _ref1 ? ++_j : --_j) { + _results.push(heappop(array2, cmp)); + } + return _results; + }; + _siftdown = function(array2, startpos, pos, cmp) { + var newitem, parent, parentpos; + if (cmp == null) { + cmp = defaultCmp; + } + newitem = array2[pos]; + while (pos > startpos) { + parentpos = pos - 1 >> 1; + parent = array2[parentpos]; + if (cmp(newitem, parent) < 0) { + array2[pos] = parent; + pos = parentpos; + continue; + } + break; + } + return array2[pos] = newitem; + }; + _siftup = function(array2, pos, cmp) { + var childpos, endpos, newitem, rightpos, startpos; + if (cmp == null) { + cmp = defaultCmp; + } + endpos = array2.length; + startpos = pos; + newitem = array2[pos]; + childpos = 2 * pos + 1; + while (childpos < endpos) { + rightpos = childpos + 1; + if (rightpos < endpos && !(cmp(array2[childpos], array2[rightpos]) < 0)) { + childpos = rightpos; + } + array2[pos] = array2[childpos]; + pos = childpos; + childpos = 2 * pos + 1; + } + array2[pos] = newitem; + return _siftdown(array2, startpos, pos, cmp); + }; + Heap = function() { + Heap2.push = heappush; + Heap2.pop = heappop; + Heap2.replace = heapreplace; + Heap2.pushpop = heappushpop; + Heap2.heapify = heapify; + Heap2.updateItem = updateItem; + Heap2.nlargest = nlargest; + Heap2.nsmallest = nsmallest; + function Heap2(cmp) { + this.cmp = cmp != null ? cmp : defaultCmp; + this.nodes = []; + } + Heap2.prototype.push = function(x) { + return heappush(this.nodes, x, this.cmp); + }; + Heap2.prototype.pop = function() { + return heappop(this.nodes, this.cmp); + }; + Heap2.prototype.peek = function() { + return this.nodes[0]; + }; + Heap2.prototype.contains = function(x) { + return this.nodes.indexOf(x) !== -1; + }; + Heap2.prototype.replace = function(x) { + return heapreplace(this.nodes, x, this.cmp); + }; + Heap2.prototype.pushpop = function(x) { + return heappushpop(this.nodes, x, this.cmp); + }; + Heap2.prototype.heapify = function() { + return heapify(this.nodes, this.cmp); + }; + Heap2.prototype.updateItem = function(x) { + return updateItem(this.nodes, x, this.cmp); + }; + Heap2.prototype.clear = function() { + return this.nodes = []; + }; + Heap2.prototype.empty = function() { + return this.nodes.length === 0; + }; + Heap2.prototype.size = function() { + return this.nodes.length; + }; + Heap2.prototype.clone = function() { + var heap2; + heap2 = new Heap2(); + heap2.nodes = this.nodes.slice(0); + return heap2; + }; + Heap2.prototype.toArray = function() { + return this.nodes.slice(0); + }; + Heap2.prototype.insert = Heap2.prototype.push; + Heap2.prototype.top = Heap2.prototype.peek; + Heap2.prototype.front = Heap2.prototype.peek; + Heap2.prototype.has = Heap2.prototype.contains; + Heap2.prototype.copy = Heap2.prototype.clone; + return Heap2; + }(); + (function(root2, factory) { + { + return module2.exports = factory(); + } + })(this, function() { + return Heap; + }); + }).call(commonjsGlobal$1); + }); + var heap = heap$1; + var dijkstraDefaults = defaults$g({ + root: null, + weight: function weight(edge) { + return 1; + }, + directed: false + }); + var elesfn$u = { + dijkstra: function dijkstra(options) { + if (!plainObject(options)) { + var args = arguments; + options = { + root: args[0], + weight: args[1], + directed: args[2] + }; + } + var _dijkstraDefaults = dijkstraDefaults(options), root2 = _dijkstraDefaults.root, weight = _dijkstraDefaults.weight, directed = _dijkstraDefaults.directed; + var eles = this; + var weightFn = weight; + var source = string(root2) ? this.filter(root2)[0] : root2[0]; + var dist2 = {}; + var prev = {}; + var knownDist = {}; + var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges; + edges.unmergeBy(function(ele) { + return ele.isLoop(); + }); + var getDist2 = function getDist3(node2) { + return dist2[node2.id()]; + }; + var setDist = function setDist2(node2, d) { + dist2[node2.id()] = d; + Q.updateItem(node2); + }; + var Q = new heap(function(a, b) { + return getDist2(a) - getDist2(b); + }); + for (var i2 = 0; i2 < nodes2.length; i2++) { + var node = nodes2[i2]; + dist2[node.id()] = node.same(source) ? 0 : Infinity; + Q.push(node); + } + var distBetween = function distBetween2(u2, v2) { + var uvs = (directed ? u2.edgesTo(v2) : u2.edgesWith(v2)).intersect(edges); + var smallestDistance = Infinity; + var smallestEdge; + for (var _i = 0; _i < uvs.length; _i++) { + var edge = uvs[_i]; + var _weight = weightFn(edge); + if (_weight < smallestDistance || !smallestEdge) { + smallestDistance = _weight; + smallestEdge = edge; + } + } + return { + edge: smallestEdge, + dist: smallestDistance + }; + }; + while (Q.size() > 0) { + var u = Q.pop(); + var smalletsDist = getDist2(u); + var uid = u.id(); + knownDist[uid] = smalletsDist; + if (smalletsDist === Infinity) { + continue; + } + var neighbors = u.neighborhood().intersect(nodes2); + for (var _i2 = 0; _i2 < neighbors.length; _i2++) { + var v = neighbors[_i2]; + var vid = v.id(); + var vDist = distBetween(u, v); + var alt = smalletsDist + vDist.dist; + if (alt < getDist2(v)) { + setDist(v, alt); + prev[vid] = { + node: u, + edge: vDist.edge + }; + } + } + } + return { + distanceTo: function distanceTo(node2) { + var target = string(node2) ? nodes2.filter(node2)[0] : node2[0]; + return knownDist[target.id()]; + }, + pathTo: function pathTo(node2) { + var target = string(node2) ? nodes2.filter(node2)[0] : node2[0]; + var S = []; + var u2 = target; + var uid2 = u2.id(); + if (target.length > 0) { + S.unshift(target); + while (prev[uid2]) { + var p2 = prev[uid2]; + S.unshift(p2.edge); + S.unshift(p2.node); + u2 = p2.node; + uid2 = u2.id(); + } + } + return eles.spawn(S); + } + }; + } + }; + var elesfn$t = { + // kruskal's algorithm (finds min spanning tree, assuming undirected graph) + // implemented from pseudocode from wikipedia + kruskal: function kruskal(weightFn) { + weightFn = weightFn || function(edge2) { + return 1; + }; + var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges; + var numNodes = nodes2.length; + var forest = new Array(numNodes); + var A = nodes2; + var findSetIndex = function findSetIndex2(ele) { + for (var i3 = 0; i3 < forest.length; i3++) { + var eles = forest[i3]; + if (eles.has(ele)) { + return i3; + } + } + }; + for (var i2 = 0; i2 < numNodes; i2++) { + forest[i2] = this.spawn(nodes2[i2]); + } + var S = edges.sort(function(a, b) { + return weightFn(a) - weightFn(b); + }); + for (var _i = 0; _i < S.length; _i++) { + var edge = S[_i]; + var u = edge.source()[0]; + var v = edge.target()[0]; + var setUIndex = findSetIndex(u); + var setVIndex = findSetIndex(v); + var setU = forest[setUIndex]; + var setV = forest[setVIndex]; + if (setUIndex !== setVIndex) { + A.merge(edge); + setU.merge(setV); + forest.splice(setVIndex, 1); + } + } + return A; + } + }; + var aStarDefaults = defaults$g({ + root: null, + goal: null, + weight: function weight(edge) { + return 1; + }, + heuristic: function heuristic(edge) { + return 0; + }, + directed: false + }); + var elesfn$s = { + // Implemented from pseudocode from wikipedia + aStar: function aStar(options) { + var cy = this.cy(); + var _aStarDefaults = aStarDefaults(options), root2 = _aStarDefaults.root, goal = _aStarDefaults.goal, heuristic = _aStarDefaults.heuristic, directed = _aStarDefaults.directed, weight = _aStarDefaults.weight; + root2 = cy.collection(root2)[0]; + goal = cy.collection(goal)[0]; + var sid = root2.id(); + var tid = goal.id(); + var gScore = {}; + var fScore = {}; + var closedSetIds = {}; + var openSet = new heap(function(a, b) { + return fScore[a.id()] - fScore[b.id()]; + }); + var openSetIds = new Set$1(); + var cameFrom = {}; + var cameFromEdge = {}; + var addToOpenSet = function addToOpenSet2(ele, id) { + openSet.push(ele); + openSetIds.add(id); + }; + var cMin, cMinId; + var popFromOpenSet = function popFromOpenSet2() { + cMin = openSet.pop(); + cMinId = cMin.id(); + openSetIds["delete"](cMinId); + }; + var isInOpenSet = function isInOpenSet2(id) { + return openSetIds.has(id); + }; + addToOpenSet(root2, sid); + gScore[sid] = 0; + fScore[sid] = heuristic(root2); + var steps = 0; + while (openSet.size() > 0) { + popFromOpenSet(); + steps++; + if (cMinId === tid) { + var path = []; + var pathNode = goal; + var pathNodeId = tid; + var pathEdge = cameFromEdge[pathNodeId]; + for (; ; ) { + path.unshift(pathNode); + if (pathEdge != null) { + path.unshift(pathEdge); + } + pathNode = cameFrom[pathNodeId]; + if (pathNode == null) { + break; + } + pathNodeId = pathNode.id(); + pathEdge = cameFromEdge[pathNodeId]; + } + return { + found: true, + distance: gScore[cMinId], + path: this.spawn(path), + steps + }; + } + closedSetIds[cMinId] = true; + var vwEdges = cMin._private.edges; + for (var i2 = 0; i2 < vwEdges.length; i2++) { + var e = vwEdges[i2]; + if (!this.hasElementWithId(e.id())) { + continue; + } + if (directed && e.data("source") !== cMinId) { + continue; + } + var wSrc = e.source(); + var wTgt = e.target(); + var w = wSrc.id() !== cMinId ? wSrc : wTgt; + var wid = w.id(); + if (!this.hasElementWithId(wid)) { + continue; + } + if (closedSetIds[wid]) { + continue; + } + var tempScore = gScore[cMinId] + weight(e); + if (!isInOpenSet(wid)) { + gScore[wid] = tempScore; + fScore[wid] = tempScore + heuristic(w); + addToOpenSet(w, wid); + cameFrom[wid] = cMin; + cameFromEdge[wid] = e; + continue; + } + if (tempScore < gScore[wid]) { + gScore[wid] = tempScore; + fScore[wid] = tempScore + heuristic(w); + cameFrom[wid] = cMin; + cameFromEdge[wid] = e; + } + } + } + return { + found: false, + distance: void 0, + path: void 0, + steps + }; + } + }; + var floydWarshallDefaults = defaults$g({ + weight: function weight(edge) { + return 1; + }, + directed: false + }); + var elesfn$r = { + // Implemented from pseudocode from wikipedia + floydWarshall: function floydWarshall(options) { + var cy = this.cy(); + var _floydWarshallDefault = floydWarshallDefaults(options), weight = _floydWarshallDefault.weight, directed = _floydWarshallDefault.directed; + var weightFn = weight; + var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges; + var N = nodes2.length; + var Nsq = N * N; + var indexOf = function indexOf2(node) { + return nodes2.indexOf(node); + }; + var atIndex = function atIndex2(i3) { + return nodes2[i3]; + }; + var dist2 = new Array(Nsq); + for (var n = 0; n < Nsq; n++) { + var j = n % N; + var i2 = (n - j) / N; + if (i2 === j) { + dist2[n] = 0; + } else { + dist2[n] = Infinity; + } + } + var next2 = new Array(Nsq); + var edgeNext = new Array(Nsq); + for (var _i = 0; _i < edges.length; _i++) { + var edge = edges[_i]; + var src = edge.source()[0]; + var tgt = edge.target()[0]; + if (src === tgt) { + continue; + } + var s = indexOf(src); + var t = indexOf(tgt); + var st = s * N + t; + var _weight = weightFn(edge); + if (dist2[st] > _weight) { + dist2[st] = _weight; + next2[st] = t; + edgeNext[st] = edge; + } + if (!directed) { + var ts = t * N + s; + if (!directed && dist2[ts] > _weight) { + dist2[ts] = _weight; + next2[ts] = s; + edgeNext[ts] = edge; + } + } + } + for (var k = 0; k < N; k++) { + for (var _i2 = 0; _i2 < N; _i2++) { + var ik = _i2 * N + k; + for (var _j = 0; _j < N; _j++) { + var ij = _i2 * N + _j; + var kj = k * N + _j; + if (dist2[ik] + dist2[kj] < dist2[ij]) { + dist2[ij] = dist2[ik] + dist2[kj]; + next2[ij] = next2[ik]; + } + } + } + } + var getArgEle = function getArgEle2(ele) { + return (string(ele) ? cy.filter(ele) : ele)[0]; + }; + var indexOfArgEle = function indexOfArgEle2(ele) { + return indexOf(getArgEle(ele)); + }; + var res = { + distance: function distance(from, to) { + var i3 = indexOfArgEle(from); + var j2 = indexOfArgEle(to); + return dist2[i3 * N + j2]; + }, + path: function path(from, to) { + var i3 = indexOfArgEle(from); + var j2 = indexOfArgEle(to); + var fromNode = atIndex(i3); + if (i3 === j2) { + return fromNode.collection(); + } + if (next2[i3 * N + j2] == null) { + return cy.collection(); + } + var path2 = cy.collection(); + var prev = i3; + var edge2; + path2.merge(fromNode); + while (i3 !== j2) { + prev = i3; + i3 = next2[i3 * N + j2]; + edge2 = edgeNext[prev * N + i3]; + path2.merge(edge2); + path2.merge(atIndex(i3)); + } + return path2; + } + }; + return res; + } + // floydWarshall + }; + var bellmanFordDefaults = defaults$g({ + weight: function weight(edge) { + return 1; + }, + directed: false, + root: null + }); + var elesfn$q = { + // Implemented from pseudocode from wikipedia + bellmanFord: function bellmanFord(options) { + var _this = this; + var _bellmanFordDefaults = bellmanFordDefaults(options), weight = _bellmanFordDefaults.weight, directed = _bellmanFordDefaults.directed, root2 = _bellmanFordDefaults.root; + var weightFn = weight; + var eles = this; + var cy = this.cy(); + var _this$byGroup = this.byGroup(), edges = _this$byGroup.edges, nodes2 = _this$byGroup.nodes; + var numNodes = nodes2.length; + var infoMap = new Map$2(); + var hasNegativeWeightCycle = false; + var negativeWeightCycles = []; + root2 = cy.collection(root2)[0]; + edges.unmergeBy(function(edge2) { + return edge2.isLoop(); + }); + var numEdges = edges.length; + var getInfo2 = function getInfo3(node2) { + var obj = infoMap.get(node2.id()); + if (!obj) { + obj = {}; + infoMap.set(node2.id(), obj); + } + return obj; + }; + var getNodeFromTo = function getNodeFromTo2(to) { + return (string(to) ? cy.$(to) : to)[0]; + }; + var distanceTo = function distanceTo2(to) { + return getInfo2(getNodeFromTo(to)).dist; + }; + var pathTo = function pathTo2(to) { + var thisStart = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : root2; + var end = getNodeFromTo(to); + var path = []; + var node2 = end; + for (; ; ) { + if (node2 == null) { + return _this.spawn(); + } + var _getInfo = getInfo2(node2), edge2 = _getInfo.edge, pred = _getInfo.pred; + path.unshift(node2[0]); + if (node2.same(thisStart) && path.length > 0) { + break; + } + if (edge2 != null) { + path.unshift(edge2); + } + node2 = pred; + } + return eles.spawn(path); + }; + for (var i2 = 0; i2 < numNodes; i2++) { + var node = nodes2[i2]; + var info = getInfo2(node); + if (node.same(root2)) { + info.dist = 0; + } else { + info.dist = Infinity; + } + info.pred = null; + info.edge = null; + } + var replacedEdge = false; + var checkForEdgeReplacement = function checkForEdgeReplacement2(node1, node2, edge2, info1, info2, weight2) { + var dist2 = info1.dist + weight2; + if (dist2 < info2.dist && !edge2.same(info1.edge)) { + info2.dist = dist2; + info2.pred = node1; + info2.edge = edge2; + replacedEdge = true; + } + }; + for (var _i = 1; _i < numNodes; _i++) { + replacedEdge = false; + for (var e = 0; e < numEdges; e++) { + var edge = edges[e]; + var src = edge.source(); + var tgt = edge.target(); + var _weight = weightFn(edge); + var srcInfo = getInfo2(src); + var tgtInfo = getInfo2(tgt); + checkForEdgeReplacement(src, tgt, edge, srcInfo, tgtInfo, _weight); + if (!directed) { + checkForEdgeReplacement(tgt, src, edge, tgtInfo, srcInfo, _weight); + } + } + if (!replacedEdge) { + break; + } + } + if (replacedEdge) { + var negativeWeightCycleIds = []; + for (var _e = 0; _e < numEdges; _e++) { + var _edge = edges[_e]; + var _src = _edge.source(); + var _tgt = _edge.target(); + var _weight2 = weightFn(_edge); + var srcDist = getInfo2(_src).dist; + var tgtDist = getInfo2(_tgt).dist; + if (srcDist + _weight2 < tgtDist || !directed && tgtDist + _weight2 < srcDist) { + if (!hasNegativeWeightCycle) { + warn("Graph contains a negative weight cycle for Bellman-Ford"); + hasNegativeWeightCycle = true; + } + if (options.findNegativeWeightCycles !== false) { + var negativeNodes = []; + if (srcDist + _weight2 < tgtDist) { + negativeNodes.push(_src); + } + if (!directed && tgtDist + _weight2 < srcDist) { + negativeNodes.push(_tgt); + } + var numNegativeNodes = negativeNodes.length; + for (var n = 0; n < numNegativeNodes; n++) { + var start = negativeNodes[n]; + var cycle = [start]; + cycle.push(getInfo2(start).edge); + var _node = getInfo2(start).pred; + while (cycle.indexOf(_node) === -1) { + cycle.push(_node); + cycle.push(getInfo2(_node).edge); + _node = getInfo2(_node).pred; + } + cycle = cycle.slice(cycle.indexOf(_node)); + var smallestId = cycle[0].id(); + var smallestIndex = 0; + for (var c = 2; c < cycle.length; c += 2) { + if (cycle[c].id() < smallestId) { + smallestId = cycle[c].id(); + smallestIndex = c; + } + } + cycle = cycle.slice(smallestIndex).concat(cycle.slice(0, smallestIndex)); + cycle.push(cycle[0]); + var cycleId = cycle.map(function(el) { + return el.id(); + }).join(","); + if (negativeWeightCycleIds.indexOf(cycleId) === -1) { + negativeWeightCycles.push(eles.spawn(cycle)); + negativeWeightCycleIds.push(cycleId); + } + } + } else { + break; + } + } + } + } + return { + distanceTo, + pathTo, + hasNegativeWeightCycle, + negativeWeightCycles + }; + } + // bellmanFord + }; + var sqrt2 = Math.sqrt(2); + var collapse = function collapse2(edgeIndex, nodeMap, remainingEdges) { + if (remainingEdges.length === 0) { + error("Karger-Stein must be run on a connected (sub)graph"); + } + var edgeInfo = remainingEdges[edgeIndex]; + var sourceIn = edgeInfo[1]; + var targetIn = edgeInfo[2]; + var partition1 = nodeMap[sourceIn]; + var partition2 = nodeMap[targetIn]; + var newEdges = remainingEdges; + for (var i2 = newEdges.length - 1; i2 >= 0; i2--) { + var edge = newEdges[i2]; + var src = edge[1]; + var tgt = edge[2]; + if (nodeMap[src] === partition1 && nodeMap[tgt] === partition2 || nodeMap[src] === partition2 && nodeMap[tgt] === partition1) { + newEdges.splice(i2, 1); + } + } + for (var _i = 0; _i < newEdges.length; _i++) { + var _edge = newEdges[_i]; + if (_edge[1] === partition2) { + newEdges[_i] = _edge.slice(); + newEdges[_i][1] = partition1; + } else if (_edge[2] === partition2) { + newEdges[_i] = _edge.slice(); + newEdges[_i][2] = partition1; + } + } + for (var _i2 = 0; _i2 < nodeMap.length; _i2++) { + if (nodeMap[_i2] === partition2) { + nodeMap[_i2] = partition1; + } + } + return newEdges; + }; + var contractUntil = function contractUntil2(metaNodeMap, remainingEdges, size, sizeLimit) { + while (size > sizeLimit) { + var edgeIndex = Math.floor(Math.random() * remainingEdges.length); + remainingEdges = collapse(edgeIndex, metaNodeMap, remainingEdges); + size--; + } + return remainingEdges; + }; + var elesfn$p = { + // Computes the minimum cut of an undirected graph + // Returns the correct answer with high probability + kargerStein: function kargerStein() { + var _this = this; + var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges; + edges.unmergeBy(function(edge) { + return edge.isLoop(); + }); + var numNodes = nodes2.length; + var numEdges = edges.length; + var numIter = Math.ceil(Math.pow(Math.log(numNodes) / Math.LN2, 2)); + var stopSize = Math.floor(numNodes / sqrt2); + if (numNodes < 2) { + error("At least 2 nodes are required for Karger-Stein algorithm"); + return void 0; + } + var edgeIndexes = []; + for (var i2 = 0; i2 < numEdges; i2++) { + var e = edges[i2]; + edgeIndexes.push([i2, nodes2.indexOf(e.source()), nodes2.indexOf(e.target())]); + } + var minCutSize = Infinity; + var minCutEdgeIndexes = []; + var minCutNodeMap = new Array(numNodes); + var metaNodeMap = new Array(numNodes); + var metaNodeMap2 = new Array(numNodes); + var copyNodesMap = function copyNodesMap2(from, to) { + for (var _i3 = 0; _i3 < numNodes; _i3++) { + to[_i3] = from[_i3]; + } + }; + for (var iter = 0; iter <= numIter; iter++) { + for (var _i4 = 0; _i4 < numNodes; _i4++) { + metaNodeMap[_i4] = _i4; + } + var edgesState = contractUntil(metaNodeMap, edgeIndexes.slice(), numNodes, stopSize); + var edgesState2 = edgesState.slice(); + copyNodesMap(metaNodeMap, metaNodeMap2); + var res1 = contractUntil(metaNodeMap, edgesState, stopSize, 2); + var res2 = contractUntil(metaNodeMap2, edgesState2, stopSize, 2); + if (res1.length <= res2.length && res1.length < minCutSize) { + minCutSize = res1.length; + minCutEdgeIndexes = res1; + copyNodesMap(metaNodeMap, minCutNodeMap); + } else if (res2.length <= res1.length && res2.length < minCutSize) { + minCutSize = res2.length; + minCutEdgeIndexes = res2; + copyNodesMap(metaNodeMap2, minCutNodeMap); + } + } + var cut = this.spawn(minCutEdgeIndexes.map(function(e2) { + return edges[e2[0]]; + })); + var partition1 = this.spawn(); + var partition2 = this.spawn(); + var witnessNodePartition = minCutNodeMap[0]; + for (var _i5 = 0; _i5 < minCutNodeMap.length; _i5++) { + var partitionId = minCutNodeMap[_i5]; + var node = nodes2[_i5]; + if (partitionId === witnessNodePartition) { + partition1.merge(node); + } else { + partition2.merge(node); + } + } + var constructComponent = function constructComponent2(subset) { + var component = _this.spawn(); + subset.forEach(function(node2) { + component.merge(node2); + node2.connectedEdges().forEach(function(edge) { + if (_this.contains(edge) && !cut.contains(edge)) { + component.merge(edge); + } + }); + }); + return component; + }; + var components = [constructComponent(partition1), constructComponent(partition2)]; + var ret = { + cut, + components, + // n.b. partitions are included to be compatible with the old api spec + // (could be removed in a future major version) + partition1, + partition2 + }; + return ret; + } + }; + var copyPosition = function copyPosition2(p2) { + return { + x: p2.x, + y: p2.y + }; + }; + var modelToRenderedPosition = function modelToRenderedPosition2(p2, zoom, pan) { + return { + x: p2.x * zoom + pan.x, + y: p2.y * zoom + pan.y + }; + }; + var renderedToModelPosition = function renderedToModelPosition2(p2, zoom, pan) { + return { + x: (p2.x - pan.x) / zoom, + y: (p2.y - pan.y) / zoom + }; + }; + var array2point = function array2point2(arr) { + return { + x: arr[0], + y: arr[1] + }; + }; + var min = function min2(arr) { + var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + var end = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length; + var min3 = Infinity; + for (var i2 = begin; i2 < end; i2++) { + var val = arr[i2]; + if (isFinite(val)) { + min3 = Math.min(val, min3); + } + } + return min3; + }; + var max = function max2(arr) { + var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + var end = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length; + var max3 = -Infinity; + for (var i2 = begin; i2 < end; i2++) { + var val = arr[i2]; + if (isFinite(val)) { + max3 = Math.max(val, max3); + } + } + return max3; + }; + var mean = function mean2(arr) { + var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + var end = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length; + var total = 0; + var n = 0; + for (var i2 = begin; i2 < end; i2++) { + var val = arr[i2]; + if (isFinite(val)) { + total += val; + n++; + } + } + return total / n; + }; + var median = function median2(arr) { + var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + var end = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length; + var copy2 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true; + var sort = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true; + var includeHoles = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true; + if (copy2) { + arr = arr.slice(begin, end); + } else { + if (end < arr.length) { + arr.splice(end, arr.length - end); + } + if (begin > 0) { + arr.splice(0, begin); + } + } + var off = 0; + for (var i2 = arr.length - 1; i2 >= 0; i2--) { + var v = arr[i2]; + if (includeHoles) { + if (!isFinite(v)) { + arr[i2] = -Infinity; + off++; + } + } else { + arr.splice(i2, 1); + } + } + if (sort) { + arr.sort(function(a, b) { + return a - b; + }); + } + var len = arr.length; + var mid = Math.floor(len / 2); + if (len % 2 !== 0) { + return arr[mid + 1 + off]; + } else { + return (arr[mid - 1 + off] + arr[mid + off]) / 2; + } + }; + var deg2rad = function deg2rad2(deg) { + return Math.PI * deg / 180; + }; + var getAngleFromDisp = function getAngleFromDisp2(dispX, dispY) { + return Math.atan2(dispY, dispX) - Math.PI / 2; + }; + var log2 = Math.log2 || function(n) { + return Math.log(n) / Math.log(2); + }; + var signum = function signum2(x) { + if (x > 0) { + return 1; + } else if (x < 0) { + return -1; + } else { + return 0; + } + }; + var dist = function dist2(p1, p2) { + return Math.sqrt(sqdist(p1, p2)); + }; + var sqdist = function sqdist2(p1, p2) { + var dx = p2.x - p1.x; + var dy = p2.y - p1.y; + return dx * dx + dy * dy; + }; + var inPlaceSumNormalize = function inPlaceSumNormalize2(v) { + var length = v.length; + var total = 0; + for (var i2 = 0; i2 < length; i2++) { + total += v[i2]; + } + for (var _i = 0; _i < length; _i++) { + v[_i] = v[_i] / total; + } + return v; + }; + var qbezierAt = function qbezierAt2(p0, p1, p2, t) { + return (1 - t) * (1 - t) * p0 + 2 * (1 - t) * t * p1 + t * t * p2; + }; + var qbezierPtAt = function qbezierPtAt2(p0, p1, p2, t) { + return { + x: qbezierAt(p0.x, p1.x, p2.x, t), + y: qbezierAt(p0.y, p1.y, p2.y, t) + }; + }; + var lineAt = function lineAt2(p0, p1, t, d) { + var vec = { + x: p1.x - p0.x, + y: p1.y - p0.y + }; + var vecDist = dist(p0, p1); + var normVec = { + x: vec.x / vecDist, + y: vec.y / vecDist + }; + t = t == null ? 0 : t; + d = d != null ? d : t * vecDist; + return { + x: p0.x + normVec.x * d, + y: p0.y + normVec.y * d + }; + }; + var bound = function bound2(min2, val, max2) { + return Math.max(min2, Math.min(max2, val)); + }; + var makeBoundingBox = function makeBoundingBox2(bb) { + if (bb == null) { + return { + x1: Infinity, + y1: Infinity, + x2: -Infinity, + y2: -Infinity, + w: 0, + h: 0 + }; + } else if (bb.x1 != null && bb.y1 != null) { + if (bb.x2 != null && bb.y2 != null && bb.x2 >= bb.x1 && bb.y2 >= bb.y1) { + return { + x1: bb.x1, + y1: bb.y1, + x2: bb.x2, + y2: bb.y2, + w: bb.x2 - bb.x1, + h: bb.y2 - bb.y1 + }; + } else if (bb.w != null && bb.h != null && bb.w >= 0 && bb.h >= 0) { + return { + x1: bb.x1, + y1: bb.y1, + x2: bb.x1 + bb.w, + y2: bb.y1 + bb.h, + w: bb.w, + h: bb.h + }; + } + } + }; + var copyBoundingBox = function copyBoundingBox2(bb) { + return { + x1: bb.x1, + x2: bb.x2, + w: bb.w, + y1: bb.y1, + y2: bb.y2, + h: bb.h + }; + }; + var clearBoundingBox = function clearBoundingBox2(bb) { + bb.x1 = Infinity; + bb.y1 = Infinity; + bb.x2 = -Infinity; + bb.y2 = -Infinity; + bb.w = 0; + bb.h = 0; + }; + var shiftBoundingBox = function shiftBoundingBox2(bb, dx, dy) { + return { + x1: bb.x1 + dx, + x2: bb.x2 + dx, + y1: bb.y1 + dy, + y2: bb.y2 + dy, + w: bb.w, + h: bb.h + }; + }; + var updateBoundingBox = function updateBoundingBox2(bb1, bb2) { + bb1.x1 = Math.min(bb1.x1, bb2.x1); + bb1.x2 = Math.max(bb1.x2, bb2.x2); + bb1.w = bb1.x2 - bb1.x1; + bb1.y1 = Math.min(bb1.y1, bb2.y1); + bb1.y2 = Math.max(bb1.y2, bb2.y2); + bb1.h = bb1.y2 - bb1.y1; + }; + var expandBoundingBoxByPoint = function expandBoundingBoxByPoint2(bb, x, y) { + bb.x1 = Math.min(bb.x1, x); + bb.x2 = Math.max(bb.x2, x); + bb.w = bb.x2 - bb.x1; + bb.y1 = Math.min(bb.y1, y); + bb.y2 = Math.max(bb.y2, y); + bb.h = bb.y2 - bb.y1; + }; + var expandBoundingBox = function expandBoundingBox2(bb) { + var padding = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + bb.x1 -= padding; + bb.x2 += padding; + bb.y1 -= padding; + bb.y2 += padding; + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + return bb; + }; + var expandBoundingBoxSides = function expandBoundingBoxSides2(bb) { + var padding = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [0]; + var top, right, bottom, left; + if (padding.length === 1) { + top = right = bottom = left = padding[0]; + } else if (padding.length === 2) { + top = bottom = padding[0]; + left = right = padding[1]; + } else if (padding.length === 4) { + var _padding = _slicedToArray(padding, 4); + top = _padding[0]; + right = _padding[1]; + bottom = _padding[2]; + left = _padding[3]; + } + bb.x1 -= left; + bb.x2 += right; + bb.y1 -= top; + bb.y2 += bottom; + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + return bb; + }; + var assignBoundingBox = function assignBoundingBox2(bb1, bb2) { + bb1.x1 = bb2.x1; + bb1.y1 = bb2.y1; + bb1.x2 = bb2.x2; + bb1.y2 = bb2.y2; + bb1.w = bb1.x2 - bb1.x1; + bb1.h = bb1.y2 - bb1.y1; + }; + var boundingBoxesIntersect = function boundingBoxesIntersect2(bb1, bb2) { + if (bb1.x1 > bb2.x2) { + return false; + } + if (bb2.x1 > bb1.x2) { + return false; + } + if (bb1.x2 < bb2.x1) { + return false; + } + if (bb2.x2 < bb1.x1) { + return false; + } + if (bb1.y2 < bb2.y1) { + return false; + } + if (bb2.y2 < bb1.y1) { + return false; + } + if (bb1.y1 > bb2.y2) { + return false; + } + if (bb2.y1 > bb1.y2) { + return false; + } + return true; + }; + var inBoundingBox = function inBoundingBox2(bb, x, y) { + return bb.x1 <= x && x <= bb.x2 && bb.y1 <= y && y <= bb.y2; + }; + var pointInBoundingBox = function pointInBoundingBox2(bb, pt) { + return inBoundingBox(bb, pt.x, pt.y); + }; + var boundingBoxInBoundingBox = function boundingBoxInBoundingBox2(bb1, bb2) { + return inBoundingBox(bb1, bb2.x1, bb2.y1) && inBoundingBox(bb1, bb2.x2, bb2.y2); + }; + var roundRectangleIntersectLine = function roundRectangleIntersectLine2(x, y, nodeX, nodeY, width, height, padding) { + var cornerRadius = getRoundRectangleRadius(width, height); + var halfWidth = width / 2; + var halfHeight = height / 2; + var straightLineIntersections; + { + var topStartX = nodeX - halfWidth + cornerRadius - padding; + var topStartY = nodeY - halfHeight - padding; + var topEndX = nodeX + halfWidth - cornerRadius + padding; + var topEndY = topStartY; + straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false); + if (straightLineIntersections.length > 0) { + return straightLineIntersections; + } + } + { + var rightStartX = nodeX + halfWidth + padding; + var rightStartY = nodeY - halfHeight + cornerRadius - padding; + var rightEndX = rightStartX; + var rightEndY = nodeY + halfHeight - cornerRadius + padding; + straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, rightStartX, rightStartY, rightEndX, rightEndY, false); + if (straightLineIntersections.length > 0) { + return straightLineIntersections; + } + } + { + var bottomStartX = nodeX - halfWidth + cornerRadius - padding; + var bottomStartY = nodeY + halfHeight + padding; + var bottomEndX = nodeX + halfWidth - cornerRadius + padding; + var bottomEndY = bottomStartY; + straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, bottomStartX, bottomStartY, bottomEndX, bottomEndY, false); + if (straightLineIntersections.length > 0) { + return straightLineIntersections; + } + } + { + var leftStartX = nodeX - halfWidth - padding; + var leftStartY = nodeY - halfHeight + cornerRadius - padding; + var leftEndX = leftStartX; + var leftEndY = nodeY + halfHeight - cornerRadius + padding; + straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, leftStartX, leftStartY, leftEndX, leftEndY, false); + if (straightLineIntersections.length > 0) { + return straightLineIntersections; + } + } + var arcIntersections; + { + var topLeftCenterX = nodeX - halfWidth + cornerRadius; + var topLeftCenterY = nodeY - halfHeight + cornerRadius; + arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topLeftCenterX, topLeftCenterY, cornerRadius + padding); + if (arcIntersections.length > 0 && arcIntersections[0] <= topLeftCenterX && arcIntersections[1] <= topLeftCenterY) { + return [arcIntersections[0], arcIntersections[1]]; + } + } + { + var topRightCenterX = nodeX + halfWidth - cornerRadius; + var topRightCenterY = nodeY - halfHeight + cornerRadius; + arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topRightCenterX, topRightCenterY, cornerRadius + padding); + if (arcIntersections.length > 0 && arcIntersections[0] >= topRightCenterX && arcIntersections[1] <= topRightCenterY) { + return [arcIntersections[0], arcIntersections[1]]; + } + } + { + var bottomRightCenterX = nodeX + halfWidth - cornerRadius; + var bottomRightCenterY = nodeY + halfHeight - cornerRadius; + arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomRightCenterX, bottomRightCenterY, cornerRadius + padding); + if (arcIntersections.length > 0 && arcIntersections[0] >= bottomRightCenterX && arcIntersections[1] >= bottomRightCenterY) { + return [arcIntersections[0], arcIntersections[1]]; + } + } + { + var bottomLeftCenterX = nodeX - halfWidth + cornerRadius; + var bottomLeftCenterY = nodeY + halfHeight - cornerRadius; + arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomLeftCenterX, bottomLeftCenterY, cornerRadius + padding); + if (arcIntersections.length > 0 && arcIntersections[0] <= bottomLeftCenterX && arcIntersections[1] >= bottomLeftCenterY) { + return [arcIntersections[0], arcIntersections[1]]; + } + } + return []; + }; + var inLineVicinity = function inLineVicinity2(x, y, lx1, ly1, lx2, ly2, tolerance) { + var t = tolerance; + var x1 = Math.min(lx1, lx2); + var x2 = Math.max(lx1, lx2); + var y1 = Math.min(ly1, ly2); + var y2 = Math.max(ly1, ly2); + return x1 - t <= x && x <= x2 + t && y1 - t <= y && y <= y2 + t; + }; + var inBezierVicinity = function inBezierVicinity2(x, y, x1, y1, x2, y2, x3, y3, tolerance) { + var bb = { + x1: Math.min(x1, x3, x2) - tolerance, + x2: Math.max(x1, x3, x2) + tolerance, + y1: Math.min(y1, y3, y2) - tolerance, + y2: Math.max(y1, y3, y2) + tolerance + }; + if (x < bb.x1 || x > bb.x2 || y < bb.y1 || y > bb.y2) { + return false; + } else { + return true; + } + }; + var solveQuadratic = function solveQuadratic2(a, b, c, val) { + c -= val; + var r = b * b - 4 * a * c; + if (r < 0) { + return []; + } + var sqrtR = Math.sqrt(r); + var denom = 2 * a; + var root1 = (-b + sqrtR) / denom; + var root2 = (-b - sqrtR) / denom; + return [root1, root2]; + }; + var solveCubic = function solveCubic2(a, b, c, d, result) { + var epsilon = 1e-5; + if (a === 0) { + a = epsilon; + } + b /= a; + c /= a; + d /= a; + var discriminant, q, r, dum1, s, t, term1, r13; + q = (3 * c - b * b) / 9; + r = -(27 * d) + b * (9 * c - 2 * (b * b)); + r /= 54; + discriminant = q * q * q + r * r; + result[1] = 0; + term1 = b / 3; + if (discriminant > 0) { + s = r + Math.sqrt(discriminant); + s = s < 0 ? -Math.pow(-s, 1 / 3) : Math.pow(s, 1 / 3); + t = r - Math.sqrt(discriminant); + t = t < 0 ? -Math.pow(-t, 1 / 3) : Math.pow(t, 1 / 3); + result[0] = -term1 + s + t; + term1 += (s + t) / 2; + result[4] = result[2] = -term1; + term1 = Math.sqrt(3) * (-t + s) / 2; + result[3] = term1; + result[5] = -term1; + return; + } + result[5] = result[3] = 0; + if (discriminant === 0) { + r13 = r < 0 ? -Math.pow(-r, 1 / 3) : Math.pow(r, 1 / 3); + result[0] = -term1 + 2 * r13; + result[4] = result[2] = -(r13 + term1); + return; + } + q = -q; + dum1 = q * q * q; + dum1 = Math.acos(r / Math.sqrt(dum1)); + r13 = 2 * Math.sqrt(q); + result[0] = -term1 + r13 * Math.cos(dum1 / 3); + result[2] = -term1 + r13 * Math.cos((dum1 + 2 * Math.PI) / 3); + result[4] = -term1 + r13 * Math.cos((dum1 + 4 * Math.PI) / 3); + return; + }; + var sqdistToQuadraticBezier = function sqdistToQuadraticBezier2(x, y, x1, y1, x2, y2, x3, y3) { + var a = 1 * x1 * x1 - 4 * x1 * x2 + 2 * x1 * x3 + 4 * x2 * x2 - 4 * x2 * x3 + x3 * x3 + y1 * y1 - 4 * y1 * y2 + 2 * y1 * y3 + 4 * y2 * y2 - 4 * y2 * y3 + y3 * y3; + var b = 1 * 9 * x1 * x2 - 3 * x1 * x1 - 3 * x1 * x3 - 6 * x2 * x2 + 3 * x2 * x3 + 9 * y1 * y2 - 3 * y1 * y1 - 3 * y1 * y3 - 6 * y2 * y2 + 3 * y2 * y3; + var c = 1 * 3 * x1 * x1 - 6 * x1 * x2 + x1 * x3 - x1 * x + 2 * x2 * x2 + 2 * x2 * x - x3 * x + 3 * y1 * y1 - 6 * y1 * y2 + y1 * y3 - y1 * y + 2 * y2 * y2 + 2 * y2 * y - y3 * y; + var d = 1 * x1 * x2 - x1 * x1 + x1 * x - x2 * x + y1 * y2 - y1 * y1 + y1 * y - y2 * y; + var roots = []; + solveCubic(a, b, c, d, roots); + var zeroThreshold = 1e-7; + var params = []; + for (var index = 0; index < 6; index += 2) { + if (Math.abs(roots[index + 1]) < zeroThreshold && roots[index] >= 0 && roots[index] <= 1) { + params.push(roots[index]); + } + } + params.push(1); + params.push(0); + var minDistanceSquared = -1; + var curX, curY, distSquared; + for (var i2 = 0; i2 < params.length; i2++) { + curX = Math.pow(1 - params[i2], 2) * x1 + 2 * (1 - params[i2]) * params[i2] * x2 + params[i2] * params[i2] * x3; + curY = Math.pow(1 - params[i2], 2) * y1 + 2 * (1 - params[i2]) * params[i2] * y2 + params[i2] * params[i2] * y3; + distSquared = Math.pow(curX - x, 2) + Math.pow(curY - y, 2); + if (minDistanceSquared >= 0) { + if (distSquared < minDistanceSquared) { + minDistanceSquared = distSquared; + } + } else { + minDistanceSquared = distSquared; + } + } + return minDistanceSquared; + }; + var sqdistToFiniteLine = function sqdistToFiniteLine2(x, y, x1, y1, x2, y2) { + var offset = [x - x1, y - y1]; + var line = [x2 - x1, y2 - y1]; + var lineSq = line[0] * line[0] + line[1] * line[1]; + var hypSq = offset[0] * offset[0] + offset[1] * offset[1]; + var dotProduct = offset[0] * line[0] + offset[1] * line[1]; + var adjSq = dotProduct * dotProduct / lineSq; + if (dotProduct < 0) { + return hypSq; + } + if (adjSq > lineSq) { + return (x - x2) * (x - x2) + (y - y2) * (y - y2); + } + return hypSq - adjSq; + }; + var pointInsidePolygonPoints = function pointInsidePolygonPoints2(x, y, points) { + var x1, y1, x2, y2; + var y3; + var up = 0; + for (var i2 = 0; i2 < points.length / 2; i2++) { + x1 = points[i2 * 2]; + y1 = points[i2 * 2 + 1]; + if (i2 + 1 < points.length / 2) { + x2 = points[(i2 + 1) * 2]; + y2 = points[(i2 + 1) * 2 + 1]; + } else { + x2 = points[(i2 + 1 - points.length / 2) * 2]; + y2 = points[(i2 + 1 - points.length / 2) * 2 + 1]; + } + if (x1 == x && x2 == x) + ; + else if (x1 >= x && x >= x2 || x1 <= x && x <= x2) { + y3 = (x - x1) / (x2 - x1) * (y2 - y1) + y1; + if (y3 > y) { + up++; + } + } else { + continue; + } + } + if (up % 2 === 0) { + return false; + } else { + return true; + } + }; + var pointInsidePolygon = function pointInsidePolygon2(x, y, basePoints, centerX, centerY, width, height, direction, padding) { + var transformedPoints = new Array(basePoints.length); + var angle; + if (direction[0] != null) { + angle = Math.atan(direction[1] / direction[0]); + if (direction[0] < 0) { + angle = angle + Math.PI / 2; + } else { + angle = -angle - Math.PI / 2; + } + } else { + angle = direction; + } + var cos2 = Math.cos(-angle); + var sin2 = Math.sin(-angle); + for (var i2 = 0; i2 < transformedPoints.length / 2; i2++) { + transformedPoints[i2 * 2] = width / 2 * (basePoints[i2 * 2] * cos2 - basePoints[i2 * 2 + 1] * sin2); + transformedPoints[i2 * 2 + 1] = height / 2 * (basePoints[i2 * 2 + 1] * cos2 + basePoints[i2 * 2] * sin2); + transformedPoints[i2 * 2] += centerX; + transformedPoints[i2 * 2 + 1] += centerY; + } + var points; + if (padding > 0) { + var expandedLineSet = expandPolygon(transformedPoints, -padding); + points = joinLines(expandedLineSet); + } else { + points = transformedPoints; + } + return pointInsidePolygonPoints(x, y, points); + }; + var pointInsideRoundPolygon = function pointInsideRoundPolygon2(x, y, basePoints, centerX, centerY, width, height) { + var cutPolygonPoints = new Array(basePoints.length); + var halfW = width / 2; + var halfH = height / 2; + var cornerRadius = getRoundPolygonRadius(width, height); + var squaredCornerRadius = cornerRadius * cornerRadius; + for (var i2 = 0; i2 < basePoints.length / 4; i2++) { + var sourceUv = void 0, destUv = void 0; + if (i2 === 0) { + sourceUv = basePoints.length - 2; + } else { + sourceUv = i2 * 4 - 2; + } + destUv = i2 * 4 + 2; + var px = centerX + halfW * basePoints[i2 * 4]; + var py = centerY + halfH * basePoints[i2 * 4 + 1]; + var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1]; + var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2); + var cp0x = px - offset * basePoints[sourceUv]; + var cp0y = py - offset * basePoints[sourceUv + 1]; + var cp1x = px + offset * basePoints[destUv]; + var cp1y = py + offset * basePoints[destUv + 1]; + cutPolygonPoints[i2 * 4] = cp0x; + cutPolygonPoints[i2 * 4 + 1] = cp0y; + cutPolygonPoints[i2 * 4 + 2] = cp1x; + cutPolygonPoints[i2 * 4 + 3] = cp1y; + var orthx = basePoints[sourceUv + 1]; + var orthy = -basePoints[sourceUv]; + var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1]; + if (cosAlpha < 0) { + orthx *= -1; + orthy *= -1; + } + var cx = cp0x + orthx * cornerRadius; + var cy = cp0y + orthy * cornerRadius; + var squaredDistance = Math.pow(cx - x, 2) + Math.pow(cy - y, 2); + if (squaredDistance <= squaredCornerRadius) { + return true; + } + } + return pointInsidePolygonPoints(x, y, cutPolygonPoints); + }; + var joinLines = function joinLines2(lineSet) { + var vertices = new Array(lineSet.length / 2); + var currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY; + var nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY; + for (var i2 = 0; i2 < lineSet.length / 4; i2++) { + currentLineStartX = lineSet[i2 * 4]; + currentLineStartY = lineSet[i2 * 4 + 1]; + currentLineEndX = lineSet[i2 * 4 + 2]; + currentLineEndY = lineSet[i2 * 4 + 3]; + if (i2 < lineSet.length / 4 - 1) { + nextLineStartX = lineSet[(i2 + 1) * 4]; + nextLineStartY = lineSet[(i2 + 1) * 4 + 1]; + nextLineEndX = lineSet[(i2 + 1) * 4 + 2]; + nextLineEndY = lineSet[(i2 + 1) * 4 + 3]; + } else { + nextLineStartX = lineSet[0]; + nextLineStartY = lineSet[1]; + nextLineEndX = lineSet[2]; + nextLineEndY = lineSet[3]; + } + var intersection = finiteLinesIntersect(currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY, nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY, true); + vertices[i2 * 2] = intersection[0]; + vertices[i2 * 2 + 1] = intersection[1]; + } + return vertices; + }; + var expandPolygon = function expandPolygon2(points, pad) { + var expandedLineSet = new Array(points.length * 2); + var currentPointX, currentPointY, nextPointX, nextPointY; + for (var i2 = 0; i2 < points.length / 2; i2++) { + currentPointX = points[i2 * 2]; + currentPointY = points[i2 * 2 + 1]; + if (i2 < points.length / 2 - 1) { + nextPointX = points[(i2 + 1) * 2]; + nextPointY = points[(i2 + 1) * 2 + 1]; + } else { + nextPointX = points[0]; + nextPointY = points[1]; + } + var offsetX = nextPointY - currentPointY; + var offsetY = -(nextPointX - currentPointX); + var offsetLength = Math.sqrt(offsetX * offsetX + offsetY * offsetY); + var normalizedOffsetX = offsetX / offsetLength; + var normalizedOffsetY = offsetY / offsetLength; + expandedLineSet[i2 * 4] = currentPointX + normalizedOffsetX * pad; + expandedLineSet[i2 * 4 + 1] = currentPointY + normalizedOffsetY * pad; + expandedLineSet[i2 * 4 + 2] = nextPointX + normalizedOffsetX * pad; + expandedLineSet[i2 * 4 + 3] = nextPointY + normalizedOffsetY * pad; + } + return expandedLineSet; + }; + var intersectLineEllipse = function intersectLineEllipse2(x, y, centerX, centerY, ellipseWradius, ellipseHradius) { + var dispX = centerX - x; + var dispY = centerY - y; + dispX /= ellipseWradius; + dispY /= ellipseHradius; + var len = Math.sqrt(dispX * dispX + dispY * dispY); + var newLength = len - 1; + if (newLength < 0) { + return []; + } + var lenProportion = newLength / len; + return [(centerX - x) * lenProportion + x, (centerY - y) * lenProportion + y]; + }; + var checkInEllipse = function checkInEllipse2(x, y, width, height, centerX, centerY, padding) { + x -= centerX; + y -= centerY; + x /= width / 2 + padding; + y /= height / 2 + padding; + return x * x + y * y <= 1; + }; + var intersectLineCircle = function intersectLineCircle2(x1, y1, x2, y2, centerX, centerY, radius) { + var d = [x2 - x1, y2 - y1]; + var f = [x1 - centerX, y1 - centerY]; + var a = d[0] * d[0] + d[1] * d[1]; + var b = 2 * (f[0] * d[0] + f[1] * d[1]); + var c = f[0] * f[0] + f[1] * f[1] - radius * radius; + var discriminant = b * b - 4 * a * c; + if (discriminant < 0) { + return []; + } + var t1 = (-b + Math.sqrt(discriminant)) / (2 * a); + var t2 = (-b - Math.sqrt(discriminant)) / (2 * a); + var tMin = Math.min(t1, t2); + var tMax = Math.max(t1, t2); + var inRangeParams = []; + if (tMin >= 0 && tMin <= 1) { + inRangeParams.push(tMin); + } + if (tMax >= 0 && tMax <= 1) { + inRangeParams.push(tMax); + } + if (inRangeParams.length === 0) { + return []; + } + var nearIntersectionX = inRangeParams[0] * d[0] + x1; + var nearIntersectionY = inRangeParams[0] * d[1] + y1; + if (inRangeParams.length > 1) { + if (inRangeParams[0] == inRangeParams[1]) { + return [nearIntersectionX, nearIntersectionY]; + } else { + var farIntersectionX = inRangeParams[1] * d[0] + x1; + var farIntersectionY = inRangeParams[1] * d[1] + y1; + return [nearIntersectionX, nearIntersectionY, farIntersectionX, farIntersectionY]; + } + } else { + return [nearIntersectionX, nearIntersectionY]; + } + }; + var midOfThree = function midOfThree2(a, b, c) { + if (b <= a && a <= c || c <= a && a <= b) { + return a; + } else if (a <= b && b <= c || c <= b && b <= a) { + return b; + } else { + return c; + } + }; + var finiteLinesIntersect = function finiteLinesIntersect2(x1, y1, x2, y2, x3, y3, x4, y4, infiniteLines) { + var dx13 = x1 - x3; + var dx21 = x2 - x1; + var dx43 = x4 - x3; + var dy13 = y1 - y3; + var dy21 = y2 - y1; + var dy43 = y4 - y3; + var ua_t = dx43 * dy13 - dy43 * dx13; + var ub_t = dx21 * dy13 - dy21 * dx13; + var u_b = dy43 * dx21 - dx43 * dy21; + if (u_b !== 0) { + var ua = ua_t / u_b; + var ub = ub_t / u_b; + var flptThreshold = 1e-3; + var _min = 0 - flptThreshold; + var _max = 1 + flptThreshold; + if (_min <= ua && ua <= _max && _min <= ub && ub <= _max) { + return [x1 + ua * dx21, y1 + ua * dy21]; + } else { + if (!infiniteLines) { + return []; + } else { + return [x1 + ua * dx21, y1 + ua * dy21]; + } + } + } else { + if (ua_t === 0 || ub_t === 0) { + if (midOfThree(x1, x2, x4) === x4) { + return [x4, y4]; + } + if (midOfThree(x1, x2, x3) === x3) { + return [x3, y3]; + } + if (midOfThree(x3, x4, x2) === x2) { + return [x2, y2]; + } + return []; + } else { + return []; + } + } + }; + var polygonIntersectLine = function polygonIntersectLine2(x, y, basePoints, centerX, centerY, width, height, padding) { + var intersections = []; + var intersection; + var transformedPoints = new Array(basePoints.length); + var doTransform = true; + if (width == null) { + doTransform = false; + } + var points; + if (doTransform) { + for (var i2 = 0; i2 < transformedPoints.length / 2; i2++) { + transformedPoints[i2 * 2] = basePoints[i2 * 2] * width + centerX; + transformedPoints[i2 * 2 + 1] = basePoints[i2 * 2 + 1] * height + centerY; + } + if (padding > 0) { + var expandedLineSet = expandPolygon(transformedPoints, -padding); + points = joinLines(expandedLineSet); + } else { + points = transformedPoints; + } + } else { + points = basePoints; + } + var currentX, currentY, nextX, nextY; + for (var _i2 = 0; _i2 < points.length / 2; _i2++) { + currentX = points[_i2 * 2]; + currentY = points[_i2 * 2 + 1]; + if (_i2 < points.length / 2 - 1) { + nextX = points[(_i2 + 1) * 2]; + nextY = points[(_i2 + 1) * 2 + 1]; + } else { + nextX = points[0]; + nextY = points[1]; + } + intersection = finiteLinesIntersect(x, y, centerX, centerY, currentX, currentY, nextX, nextY); + if (intersection.length !== 0) { + intersections.push(intersection[0], intersection[1]); + } + } + return intersections; + }; + var roundPolygonIntersectLine = function roundPolygonIntersectLine2(x, y, basePoints, centerX, centerY, width, height, padding) { + var intersections = []; + var intersection; + var lines = new Array(basePoints.length); + var halfW = width / 2; + var halfH = height / 2; + var cornerRadius = getRoundPolygonRadius(width, height); + for (var i2 = 0; i2 < basePoints.length / 4; i2++) { + var sourceUv = void 0, destUv = void 0; + if (i2 === 0) { + sourceUv = basePoints.length - 2; + } else { + sourceUv = i2 * 4 - 2; + } + destUv = i2 * 4 + 2; + var px = centerX + halfW * basePoints[i2 * 4]; + var py = centerY + halfH * basePoints[i2 * 4 + 1]; + var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1]; + var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2); + var cp0x = px - offset * basePoints[sourceUv]; + var cp0y = py - offset * basePoints[sourceUv + 1]; + var cp1x = px + offset * basePoints[destUv]; + var cp1y = py + offset * basePoints[destUv + 1]; + if (i2 === 0) { + lines[basePoints.length - 2] = cp0x; + lines[basePoints.length - 1] = cp0y; + } else { + lines[i2 * 4 - 2] = cp0x; + lines[i2 * 4 - 1] = cp0y; + } + lines[i2 * 4] = cp1x; + lines[i2 * 4 + 1] = cp1y; + var orthx = basePoints[sourceUv + 1]; + var orthy = -basePoints[sourceUv]; + var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1]; + if (cosAlpha < 0) { + orthx *= -1; + orthy *= -1; + } + var cx = cp0x + orthx * cornerRadius; + var cy = cp0y + orthy * cornerRadius; + intersection = intersectLineCircle(x, y, centerX, centerY, cx, cy, cornerRadius); + if (intersection.length !== 0) { + intersections.push(intersection[0], intersection[1]); + } + } + for (var _i3 = 0; _i3 < lines.length / 4; _i3++) { + intersection = finiteLinesIntersect(x, y, centerX, centerY, lines[_i3 * 4], lines[_i3 * 4 + 1], lines[_i3 * 4 + 2], lines[_i3 * 4 + 3], false); + if (intersection.length !== 0) { + intersections.push(intersection[0], intersection[1]); + } + } + if (intersections.length > 2) { + var lowestIntersection = [intersections[0], intersections[1]]; + var lowestSquaredDistance = Math.pow(lowestIntersection[0] - x, 2) + Math.pow(lowestIntersection[1] - y, 2); + for (var _i4 = 1; _i4 < intersections.length / 2; _i4++) { + var squaredDistance = Math.pow(intersections[_i4 * 2] - x, 2) + Math.pow(intersections[_i4 * 2 + 1] - y, 2); + if (squaredDistance <= lowestSquaredDistance) { + lowestIntersection[0] = intersections[_i4 * 2]; + lowestIntersection[1] = intersections[_i4 * 2 + 1]; + lowestSquaredDistance = squaredDistance; + } + } + return lowestIntersection; + } + return intersections; + }; + var shortenIntersection = function shortenIntersection2(intersection, offset, amount) { + var disp = [intersection[0] - offset[0], intersection[1] - offset[1]]; + var length = Math.sqrt(disp[0] * disp[0] + disp[1] * disp[1]); + var lenRatio = (length - amount) / length; + if (lenRatio < 0) { + lenRatio = 1e-5; + } + return [offset[0] + lenRatio * disp[0], offset[1] + lenRatio * disp[1]]; + }; + var generateUnitNgonPointsFitToSquare = function generateUnitNgonPointsFitToSquare2(sides, rotationRadians) { + var points = generateUnitNgonPoints(sides, rotationRadians); + points = fitPolygonToSquare(points); + return points; + }; + var fitPolygonToSquare = function fitPolygonToSquare2(points) { + var x, y; + var sides = points.length / 2; + var minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity; + for (var i2 = 0; i2 < sides; i2++) { + x = points[2 * i2]; + y = points[2 * i2 + 1]; + minX = Math.min(minX, x); + maxX = Math.max(maxX, x); + minY = Math.min(minY, y); + maxY = Math.max(maxY, y); + } + var sx = 2 / (maxX - minX); + var sy = 2 / (maxY - minY); + for (var _i5 = 0; _i5 < sides; _i5++) { + x = points[2 * _i5] = points[2 * _i5] * sx; + y = points[2 * _i5 + 1] = points[2 * _i5 + 1] * sy; + minX = Math.min(minX, x); + maxX = Math.max(maxX, x); + minY = Math.min(minY, y); + maxY = Math.max(maxY, y); + } + if (minY < -1) { + for (var _i6 = 0; _i6 < sides; _i6++) { + y = points[2 * _i6 + 1] = points[2 * _i6 + 1] + (-1 - minY); + } + } + return points; + }; + var generateUnitNgonPoints = function generateUnitNgonPoints2(sides, rotationRadians) { + var increment = 1 / sides * 2 * Math.PI; + var startAngle = sides % 2 === 0 ? Math.PI / 2 + increment / 2 : Math.PI / 2; + startAngle += rotationRadians; + var points = new Array(sides * 2); + var currentAngle; + for (var i2 = 0; i2 < sides; i2++) { + currentAngle = i2 * increment + startAngle; + points[2 * i2] = Math.cos(currentAngle); + points[2 * i2 + 1] = Math.sin(-currentAngle); + } + return points; + }; + var getRoundRectangleRadius = function getRoundRectangleRadius2(width, height) { + return Math.min(width / 4, height / 4, 8); + }; + var getRoundPolygonRadius = function getRoundPolygonRadius2(width, height) { + return Math.min(width / 10, height / 10, 8); + }; + var getCutRectangleCornerLength = function getCutRectangleCornerLength2() { + return 8; + }; + var bezierPtsToQuadCoeff = function bezierPtsToQuadCoeff2(p0, p1, p2) { + return [p0 - 2 * p1 + p2, 2 * (p1 - p0), p0]; + }; + var getBarrelCurveConstants = function getBarrelCurveConstants2(width, height) { + return { + heightOffset: Math.min(15, 0.05 * height), + widthOffset: Math.min(100, 0.25 * width), + ctrlPtOffsetPct: 0.05 + }; + }; + var pageRankDefaults = defaults$g({ + dampingFactor: 0.8, + precision: 1e-6, + iterations: 200, + weight: function weight(edge) { + return 1; + } + }); + var elesfn$o = { + pageRank: function pageRank(options) { + var _pageRankDefaults = pageRankDefaults(options), dampingFactor = _pageRankDefaults.dampingFactor, precision = _pageRankDefaults.precision, iterations = _pageRankDefaults.iterations, weight = _pageRankDefaults.weight; + var cy = this._private.cy; + var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges; + var numNodes = nodes2.length; + var numNodesSqd = numNodes * numNodes; + var numEdges = edges.length; + var matrix = new Array(numNodesSqd); + var columnSum = new Array(numNodes); + var additionalProb = (1 - dampingFactor) / numNodes; + for (var i2 = 0; i2 < numNodes; i2++) { + for (var j = 0; j < numNodes; j++) { + var n = i2 * numNodes + j; + matrix[n] = 0; + } + columnSum[i2] = 0; + } + for (var _i = 0; _i < numEdges; _i++) { + var edge = edges[_i]; + var srcId = edge.data("source"); + var tgtId = edge.data("target"); + if (srcId === tgtId) { + continue; + } + var s = nodes2.indexOfId(srcId); + var t = nodes2.indexOfId(tgtId); + var w = weight(edge); + var _n = t * numNodes + s; + matrix[_n] += w; + columnSum[s] += w; + } + var p2 = 1 / numNodes + additionalProb; + for (var _j = 0; _j < numNodes; _j++) { + if (columnSum[_j] === 0) { + for (var _i2 = 0; _i2 < numNodes; _i2++) { + var _n2 = _i2 * numNodes + _j; + matrix[_n2] = p2; + } + } else { + for (var _i3 = 0; _i3 < numNodes; _i3++) { + var _n3 = _i3 * numNodes + _j; + matrix[_n3] = matrix[_n3] / columnSum[_j] + additionalProb; + } + } + } + var eigenvector = new Array(numNodes); + var temp = new Array(numNodes); + var previous; + for (var _i4 = 0; _i4 < numNodes; _i4++) { + eigenvector[_i4] = 1; + } + for (var iter = 0; iter < iterations; iter++) { + for (var _i5 = 0; _i5 < numNodes; _i5++) { + temp[_i5] = 0; + } + for (var _i6 = 0; _i6 < numNodes; _i6++) { + for (var _j2 = 0; _j2 < numNodes; _j2++) { + var _n4 = _i6 * numNodes + _j2; + temp[_i6] += matrix[_n4] * eigenvector[_j2]; + } + } + inPlaceSumNormalize(temp); + previous = eigenvector; + eigenvector = temp; + temp = previous; + var diff = 0; + for (var _i7 = 0; _i7 < numNodes; _i7++) { + var delta = previous[_i7] - eigenvector[_i7]; + diff += delta * delta; + } + if (diff < precision) { + break; + } + } + var res = { + rank: function rank(node) { + node = cy.collection(node)[0]; + return eigenvector[nodes2.indexOf(node)]; + } + }; + return res; + } + // pageRank + }; + var defaults$f = defaults$g({ + root: null, + weight: function weight(edge) { + return 1; + }, + directed: false, + alpha: 0 + }); + var elesfn$n = { + degreeCentralityNormalized: function degreeCentralityNormalized(options) { + options = defaults$f(options); + var cy = this.cy(); + var nodes2 = this.nodes(); + var numNodes = nodes2.length; + if (!options.directed) { + var degrees = {}; + var maxDegree = 0; + for (var i2 = 0; i2 < numNodes; i2++) { + var node = nodes2[i2]; + options.root = node; + var currDegree = this.degreeCentrality(options); + if (maxDegree < currDegree.degree) { + maxDegree = currDegree.degree; + } + degrees[node.id()] = currDegree.degree; + } + return { + degree: function degree(node2) { + if (maxDegree === 0) { + return 0; + } + if (string(node2)) { + node2 = cy.filter(node2); + } + return degrees[node2.id()] / maxDegree; + } + }; + } else { + var indegrees = {}; + var outdegrees = {}; + var maxIndegree = 0; + var maxOutdegree = 0; + for (var _i = 0; _i < numNodes; _i++) { + var _node = nodes2[_i]; + var id = _node.id(); + options.root = _node; + var _currDegree = this.degreeCentrality(options); + if (maxIndegree < _currDegree.indegree) + maxIndegree = _currDegree.indegree; + if (maxOutdegree < _currDegree.outdegree) + maxOutdegree = _currDegree.outdegree; + indegrees[id] = _currDegree.indegree; + outdegrees[id] = _currDegree.outdegree; + } + return { + indegree: function indegree(node2) { + if (maxIndegree == 0) { + return 0; + } + if (string(node2)) { + node2 = cy.filter(node2); + } + return indegrees[node2.id()] / maxIndegree; + }, + outdegree: function outdegree(node2) { + if (maxOutdegree === 0) { + return 0; + } + if (string(node2)) { + node2 = cy.filter(node2); + } + return outdegrees[node2.id()] / maxOutdegree; + } + }; + } + }, + // degreeCentralityNormalized + // Implemented from the algorithm in Opsahl's paper + // "Node centrality in weighted networks: Generalizing degree and shortest paths" + // check the heading 2 "Degree" + degreeCentrality: function degreeCentrality(options) { + options = defaults$f(options); + var cy = this.cy(); + var callingEles = this; + var _options = options, root2 = _options.root, weight = _options.weight, directed = _options.directed, alpha = _options.alpha; + root2 = cy.collection(root2)[0]; + if (!directed) { + var connEdges = root2.connectedEdges().intersection(callingEles); + var k = connEdges.length; + var s = 0; + for (var i2 = 0; i2 < connEdges.length; i2++) { + s += weight(connEdges[i2]); + } + return { + degree: Math.pow(k, 1 - alpha) * Math.pow(s, alpha) + }; + } else { + var edges = root2.connectedEdges(); + var incoming = edges.filter(function(edge) { + return edge.target().same(root2) && callingEles.has(edge); + }); + var outgoing = edges.filter(function(edge) { + return edge.source().same(root2) && callingEles.has(edge); + }); + var k_in = incoming.length; + var k_out = outgoing.length; + var s_in = 0; + var s_out = 0; + for (var _i2 = 0; _i2 < incoming.length; _i2++) { + s_in += weight(incoming[_i2]); + } + for (var _i3 = 0; _i3 < outgoing.length; _i3++) { + s_out += weight(outgoing[_i3]); + } + return { + indegree: Math.pow(k_in, 1 - alpha) * Math.pow(s_in, alpha), + outdegree: Math.pow(k_out, 1 - alpha) * Math.pow(s_out, alpha) + }; + } + } + // degreeCentrality + }; + elesfn$n.dc = elesfn$n.degreeCentrality; + elesfn$n.dcn = elesfn$n.degreeCentralityNormalised = elesfn$n.degreeCentralityNormalized; + var defaults$e = defaults$g({ + harmonic: true, + weight: function weight() { + return 1; + }, + directed: false, + root: null + }); + var elesfn$m = { + closenessCentralityNormalized: function closenessCentralityNormalized(options) { + var _defaults = defaults$e(options), harmonic = _defaults.harmonic, weight = _defaults.weight, directed = _defaults.directed; + var cy = this.cy(); + var closenesses = {}; + var maxCloseness = 0; + var nodes2 = this.nodes(); + var fw = this.floydWarshall({ + weight, + directed + }); + for (var i2 = 0; i2 < nodes2.length; i2++) { + var currCloseness = 0; + var node_i = nodes2[i2]; + for (var j = 0; j < nodes2.length; j++) { + if (i2 !== j) { + var d = fw.distance(node_i, nodes2[j]); + if (harmonic) { + currCloseness += 1 / d; + } else { + currCloseness += d; + } + } + } + if (!harmonic) { + currCloseness = 1 / currCloseness; + } + if (maxCloseness < currCloseness) { + maxCloseness = currCloseness; + } + closenesses[node_i.id()] = currCloseness; + } + return { + closeness: function closeness(node) { + if (maxCloseness == 0) { + return 0; + } + if (string(node)) { + node = cy.filter(node)[0].id(); + } else { + node = node.id(); + } + return closenesses[node] / maxCloseness; + } + }; + }, + // Implemented from pseudocode from wikipedia + closenessCentrality: function closenessCentrality(options) { + var _defaults2 = defaults$e(options), root2 = _defaults2.root, weight = _defaults2.weight, directed = _defaults2.directed, harmonic = _defaults2.harmonic; + root2 = this.filter(root2)[0]; + var dijkstra = this.dijkstra({ + root: root2, + weight, + directed + }); + var totalDistance = 0; + var nodes2 = this.nodes(); + for (var i2 = 0; i2 < nodes2.length; i2++) { + var n = nodes2[i2]; + if (!n.same(root2)) { + var d = dijkstra.distanceTo(n); + if (harmonic) { + totalDistance += 1 / d; + } else { + totalDistance += d; + } + } + } + return harmonic ? totalDistance : 1 / totalDistance; + } + // closenessCentrality + }; + elesfn$m.cc = elesfn$m.closenessCentrality; + elesfn$m.ccn = elesfn$m.closenessCentralityNormalised = elesfn$m.closenessCentralityNormalized; + var defaults$d = defaults$g({ + weight: null, + directed: false + }); + var elesfn$l = { + // Implemented from the algorithm in the paper "On Variants of Shortest-Path Betweenness Centrality and their Generic Computation" by Ulrik Brandes + betweennessCentrality: function betweennessCentrality(options) { + var _defaults = defaults$d(options), directed = _defaults.directed, weight = _defaults.weight; + var weighted = weight != null; + var cy = this.cy(); + var V = this.nodes(); + var A = {}; + var _C = {}; + var max2 = 0; + var C = { + set: function set2(key, val) { + _C[key] = val; + if (val > max2) { + max2 = val; + } + }, + get: function get2(key) { + return _C[key]; + } + }; + for (var i2 = 0; i2 < V.length; i2++) { + var v = V[i2]; + var vid = v.id(); + if (directed) { + A[vid] = v.outgoers().nodes(); + } else { + A[vid] = v.openNeighborhood().nodes(); + } + C.set(vid, 0); + } + var _loop = function _loop2(s2) { + var sid = V[s2].id(); + var S = []; + var P = {}; + var g = {}; + var d = {}; + var Q = new heap(function(a, b) { + return d[a] - d[b]; + }); + for (var _i = 0; _i < V.length; _i++) { + var _vid = V[_i].id(); + P[_vid] = []; + g[_vid] = 0; + d[_vid] = Infinity; + } + g[sid] = 1; + d[sid] = 0; + Q.push(sid); + while (!Q.empty()) { + var _v = Q.pop(); + S.push(_v); + if (weighted) { + for (var j = 0; j < A[_v].length; j++) { + var w = A[_v][j]; + var vEle = cy.getElementById(_v); + var edge = void 0; + if (vEle.edgesTo(w).length > 0) { + edge = vEle.edgesTo(w)[0]; + } else { + edge = w.edgesTo(vEle)[0]; + } + var edgeWeight = weight(edge); + w = w.id(); + if (d[w] > d[_v] + edgeWeight) { + d[w] = d[_v] + edgeWeight; + if (Q.nodes.indexOf(w) < 0) { + Q.push(w); + } else { + Q.updateItem(w); + } + g[w] = 0; + P[w] = []; + } + if (d[w] == d[_v] + edgeWeight) { + g[w] = g[w] + g[_v]; + P[w].push(_v); + } + } + } else { + for (var _j = 0; _j < A[_v].length; _j++) { + var _w = A[_v][_j].id(); + if (d[_w] == Infinity) { + Q.push(_w); + d[_w] = d[_v] + 1; + } + if (d[_w] == d[_v] + 1) { + g[_w] = g[_w] + g[_v]; + P[_w].push(_v); + } + } + } + } + var e = {}; + for (var _i2 = 0; _i2 < V.length; _i2++) { + e[V[_i2].id()] = 0; + } + while (S.length > 0) { + var _w2 = S.pop(); + for (var _j2 = 0; _j2 < P[_w2].length; _j2++) { + var _v2 = P[_w2][_j2]; + e[_v2] = e[_v2] + g[_v2] / g[_w2] * (1 + e[_w2]); + } + if (_w2 != V[s2].id()) { + C.set(_w2, C.get(_w2) + e[_w2]); + } + } + }; + for (var s = 0; s < V.length; s++) { + _loop(s); + } + var ret = { + betweenness: function betweenness(node) { + var id = cy.collection(node).id(); + return C.get(id); + }, + betweennessNormalized: function betweennessNormalized(node) { + if (max2 == 0) { + return 0; + } + var id = cy.collection(node).id(); + return C.get(id) / max2; + } + }; + ret.betweennessNormalised = ret.betweennessNormalized; + return ret; + } + // betweennessCentrality + }; + elesfn$l.bc = elesfn$l.betweennessCentrality; + var defaults$c = defaults$g({ + expandFactor: 2, + // affects time of computation and cluster granularity to some extent: M * M + inflateFactor: 2, + // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j) + multFactor: 1, + // optional self loops for each node. Use a neutral value to improve cluster computations. + maxIterations: 20, + // maximum number of iterations of the MCL algorithm in a single run + attributes: [ + // attributes/features used to group nodes, ie. similarity values between nodes + function(edge) { + return 1; + } + ] + }); + var setOptions$3 = function setOptions2(options) { + return defaults$c(options); + }; + var getSimilarity$1 = function getSimilarity2(edge, attributes) { + var total = 0; + for (var i2 = 0; i2 < attributes.length; i2++) { + total += attributes[i2](edge); + } + return total; + }; + var addLoops = function addLoops2(M, n, val) { + for (var i2 = 0; i2 < n; i2++) { + M[i2 * n + i2] = val; + } + }; + var normalize = function normalize2(M, n) { + var sum; + for (var col = 0; col < n; col++) { + sum = 0; + for (var row = 0; row < n; row++) { + sum += M[row * n + col]; + } + for (var _row = 0; _row < n; _row++) { + M[_row * n + col] = M[_row * n + col] / sum; + } + } + }; + var mmult = function mmult2(A, B, n) { + var C = new Array(n * n); + for (var i2 = 0; i2 < n; i2++) { + for (var j = 0; j < n; j++) { + C[i2 * n + j] = 0; + } + for (var k = 0; k < n; k++) { + for (var _j = 0; _j < n; _j++) { + C[i2 * n + _j] += A[i2 * n + k] * B[k * n + _j]; + } + } + } + return C; + }; + var expand = function expand2(M, n, expandFactor) { + var _M = M.slice(0); + for (var p2 = 1; p2 < expandFactor; p2++) { + M = mmult(M, _M, n); + } + return M; + }; + var inflate = function inflate2(M, n, inflateFactor) { + var _M = new Array(n * n); + for (var i2 = 0; i2 < n * n; i2++) { + _M[i2] = Math.pow(M[i2], inflateFactor); + } + normalize(_M, n); + return _M; + }; + var hasConverged = function hasConverged2(M, _M, n2, roundFactor) { + for (var i2 = 0; i2 < n2; i2++) { + var v1 = Math.round(M[i2] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor); + var v2 = Math.round(_M[i2] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor); + if (v1 !== v2) { + return false; + } + } + return true; + }; + var assign$2 = function assign2(M, n, nodes2, cy) { + var clusters = []; + for (var i2 = 0; i2 < n; i2++) { + var cluster = []; + for (var j = 0; j < n; j++) { + if (Math.round(M[i2 * n + j] * 1e3) / 1e3 > 0) { + cluster.push(nodes2[j]); + } + } + if (cluster.length !== 0) { + clusters.push(cy.collection(cluster)); + } + } + return clusters; + }; + var isDuplicate = function isDuplicate2(c1, c2) { + for (var i2 = 0; i2 < c1.length; i2++) { + if (!c2[i2] || c1[i2].id() !== c2[i2].id()) { + return false; + } + } + return true; + }; + var removeDuplicates = function removeDuplicates2(clusters) { + for (var i2 = 0; i2 < clusters.length; i2++) { + for (var j = 0; j < clusters.length; j++) { + if (i2 != j && isDuplicate(clusters[i2], clusters[j])) { + clusters.splice(j, 1); + } + } + } + return clusters; + }; + var markovClustering = function markovClustering2(options) { + var nodes2 = this.nodes(); + var edges = this.edges(); + var cy = this.cy(); + var opts = setOptions$3(options); + var id2position = {}; + for (var i2 = 0; i2 < nodes2.length; i2++) { + id2position[nodes2[i2].id()] = i2; + } + var n = nodes2.length, n2 = n * n; + var M = new Array(n2), _M; + for (var _i = 0; _i < n2; _i++) { + M[_i] = 0; + } + for (var e = 0; e < edges.length; e++) { + var edge = edges[e]; + var _i2 = id2position[edge.source().id()]; + var j = id2position[edge.target().id()]; + var sim = getSimilarity$1(edge, opts.attributes); + M[_i2 * n + j] += sim; + M[j * n + _i2] += sim; + } + addLoops(M, n, opts.multFactor); + normalize(M, n); + var isStillMoving = true; + var iterations = 0; + while (isStillMoving && iterations < opts.maxIterations) { + isStillMoving = false; + _M = expand(M, n, opts.expandFactor); + M = inflate(_M, n, opts.inflateFactor); + if (!hasConverged(M, _M, n2, 4)) { + isStillMoving = true; + } + iterations++; + } + var clusters = assign$2(M, n, nodes2, cy); + clusters = removeDuplicates(clusters); + return clusters; + }; + var markovClustering$1 = { + markovClustering, + mcl: markovClustering + }; + var identity = function identity2(x) { + return x; + }; + var absDiff = function absDiff2(p2, q) { + return Math.abs(q - p2); + }; + var addAbsDiff = function addAbsDiff2(total, p2, q) { + return total + absDiff(p2, q); + }; + var addSquaredDiff = function addSquaredDiff2(total, p2, q) { + return total + Math.pow(q - p2, 2); + }; + var sqrt = function sqrt3(x) { + return Math.sqrt(x); + }; + var maxAbsDiff = function maxAbsDiff2(currentMax, p2, q) { + return Math.max(currentMax, absDiff(p2, q)); + }; + var getDistance = function getDistance2(length, getP, getQ, init, visit) { + var post = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : identity; + var ret = init; + var p2, q; + for (var dim = 0; dim < length; dim++) { + p2 = getP(dim); + q = getQ(dim); + ret = visit(ret, p2, q); + } + return post(ret); + }; + var distances = { + euclidean: function euclidean(length, getP, getQ) { + if (length >= 2) { + return getDistance(length, getP, getQ, 0, addSquaredDiff, sqrt); + } else { + return getDistance(length, getP, getQ, 0, addAbsDiff); + } + }, + squaredEuclidean: function squaredEuclidean(length, getP, getQ) { + return getDistance(length, getP, getQ, 0, addSquaredDiff); + }, + manhattan: function manhattan(length, getP, getQ) { + return getDistance(length, getP, getQ, 0, addAbsDiff); + }, + max: function max2(length, getP, getQ) { + return getDistance(length, getP, getQ, -Infinity, maxAbsDiff); + } + }; + distances["squared-euclidean"] = distances["squaredEuclidean"]; + distances["squaredeuclidean"] = distances["squaredEuclidean"]; + function clusteringDistance(method, length, getP, getQ, nodeP, nodeQ) { + var impl2; + if (fn$6(method)) { + impl2 = method; + } else { + impl2 = distances[method] || distances.euclidean; + } + if (length === 0 && fn$6(method)) { + return impl2(nodeP, nodeQ); + } else { + return impl2(length, getP, getQ, nodeP, nodeQ); + } + } + var defaults$b = defaults$g({ + k: 2, + m: 2, + sensitivityThreshold: 1e-4, + distance: "euclidean", + maxIterations: 10, + attributes: [], + testMode: false, + testCentroids: null + }); + var setOptions$2 = function setOptions2(options) { + return defaults$b(options); + }; + var getDist = function getDist2(type, node, centroid, attributes, mode) { + var noNodeP = mode !== "kMedoids"; + var getP = noNodeP ? function(i2) { + return centroid[i2]; + } : function(i2) { + return attributes[i2](centroid); + }; + var getQ = function getQ2(i2) { + return attributes[i2](node); + }; + var nodeP = centroid; + var nodeQ = node; + return clusteringDistance(type, attributes.length, getP, getQ, nodeP, nodeQ); + }; + var randomCentroids = function randomCentroids2(nodes2, k, attributes) { + var ndim = attributes.length; + var min2 = new Array(ndim); + var max2 = new Array(ndim); + var centroids = new Array(k); + var centroid = null; + for (var i2 = 0; i2 < ndim; i2++) { + min2[i2] = nodes2.min(attributes[i2]).value; + max2[i2] = nodes2.max(attributes[i2]).value; + } + for (var c = 0; c < k; c++) { + centroid = []; + for (var _i = 0; _i < ndim; _i++) { + centroid[_i] = Math.random() * (max2[_i] - min2[_i]) + min2[_i]; + } + centroids[c] = centroid; + } + return centroids; + }; + var classify = function classify2(node, centroids, distance, attributes, type) { + var min2 = Infinity; + var index = 0; + for (var i2 = 0; i2 < centroids.length; i2++) { + var dist2 = getDist(distance, node, centroids[i2], attributes, type); + if (dist2 < min2) { + min2 = dist2; + index = i2; + } + } + return index; + }; + var buildCluster = function buildCluster2(centroid, nodes2, assignment) { + var cluster = []; + var node = null; + for (var n = 0; n < nodes2.length; n++) { + node = nodes2[n]; + if (assignment[node.id()] === centroid) { + cluster.push(node); + } + } + return cluster; + }; + var haveValuesConverged = function haveValuesConverged2(v1, v2, sensitivityThreshold) { + return Math.abs(v2 - v1) <= sensitivityThreshold; + }; + var haveMatricesConverged = function haveMatricesConverged2(v1, v2, sensitivityThreshold) { + for (var i2 = 0; i2 < v1.length; i2++) { + for (var j = 0; j < v1[i2].length; j++) { + var diff = Math.abs(v1[i2][j] - v2[i2][j]); + if (diff > sensitivityThreshold) { + return false; + } + } + } + return true; + }; + var seenBefore = function seenBefore2(node, medoids, n) { + for (var i2 = 0; i2 < n; i2++) { + if (node === medoids[i2]) + return true; + } + return false; + }; + var randomMedoids = function randomMedoids2(nodes2, k) { + var medoids = new Array(k); + if (nodes2.length < 50) { + for (var i2 = 0; i2 < k; i2++) { + var node = nodes2[Math.floor(Math.random() * nodes2.length)]; + while (seenBefore(node, medoids, i2)) { + node = nodes2[Math.floor(Math.random() * nodes2.length)]; + } + medoids[i2] = node; + } + } else { + for (var _i2 = 0; _i2 < k; _i2++) { + medoids[_i2] = nodes2[Math.floor(Math.random() * nodes2.length)]; + } + } + return medoids; + }; + var findCost = function findCost2(potentialNewMedoid, cluster, attributes) { + var cost = 0; + for (var n = 0; n < cluster.length; n++) { + cost += getDist("manhattan", cluster[n], potentialNewMedoid, attributes, "kMedoids"); + } + return cost; + }; + var kMeans = function kMeans2(options) { + var cy = this.cy(); + var nodes2 = this.nodes(); + var node = null; + var opts = setOptions$2(options); + var clusters = new Array(opts.k); + var assignment = {}; + var centroids; + if (opts.testMode) { + if (typeof opts.testCentroids === "number") { + opts.testCentroids; + centroids = randomCentroids(nodes2, opts.k, opts.attributes); + } else if (_typeof(opts.testCentroids) === "object") { + centroids = opts.testCentroids; + } else { + centroids = randomCentroids(nodes2, opts.k, opts.attributes); + } + } else { + centroids = randomCentroids(nodes2, opts.k, opts.attributes); + } + var isStillMoving = true; + var iterations = 0; + while (isStillMoving && iterations < opts.maxIterations) { + for (var n = 0; n < nodes2.length; n++) { + node = nodes2[n]; + assignment[node.id()] = classify(node, centroids, opts.distance, opts.attributes, "kMeans"); + } + isStillMoving = false; + for (var c = 0; c < opts.k; c++) { + var cluster = buildCluster(c, nodes2, assignment); + if (cluster.length === 0) { + continue; + } + var ndim = opts.attributes.length; + var centroid = centroids[c]; + var newCentroid = new Array(ndim); + var sum = new Array(ndim); + for (var d = 0; d < ndim; d++) { + sum[d] = 0; + for (var i2 = 0; i2 < cluster.length; i2++) { + node = cluster[i2]; + sum[d] += opts.attributes[d](node); + } + newCentroid[d] = sum[d] / cluster.length; + if (!haveValuesConverged(newCentroid[d], centroid[d], opts.sensitivityThreshold)) { + isStillMoving = true; + } + } + centroids[c] = newCentroid; + clusters[c] = cy.collection(cluster); + } + iterations++; + } + return clusters; + }; + var kMedoids = function kMedoids2(options) { + var cy = this.cy(); + var nodes2 = this.nodes(); + var node = null; + var opts = setOptions$2(options); + var clusters = new Array(opts.k); + var medoids; + var assignment = {}; + var curCost; + var minCosts = new Array(opts.k); + if (opts.testMode) { + if (typeof opts.testCentroids === "number") + ; + else if (_typeof(opts.testCentroids) === "object") { + medoids = opts.testCentroids; + } else { + medoids = randomMedoids(nodes2, opts.k); + } + } else { + medoids = randomMedoids(nodes2, opts.k); + } + var isStillMoving = true; + var iterations = 0; + while (isStillMoving && iterations < opts.maxIterations) { + for (var n = 0; n < nodes2.length; n++) { + node = nodes2[n]; + assignment[node.id()] = classify(node, medoids, opts.distance, opts.attributes, "kMedoids"); + } + isStillMoving = false; + for (var m = 0; m < medoids.length; m++) { + var cluster = buildCluster(m, nodes2, assignment); + if (cluster.length === 0) { + continue; + } + minCosts[m] = findCost(medoids[m], cluster, opts.attributes); + for (var _n = 0; _n < cluster.length; _n++) { + curCost = findCost(cluster[_n], cluster, opts.attributes); + if (curCost < minCosts[m]) { + minCosts[m] = curCost; + medoids[m] = cluster[_n]; + isStillMoving = true; + } + } + clusters[m] = cy.collection(cluster); + } + iterations++; + } + return clusters; + }; + var updateCentroids = function updateCentroids2(centroids, nodes2, U, weight, opts) { + var numerator, denominator; + for (var n = 0; n < nodes2.length; n++) { + for (var c = 0; c < centroids.length; c++) { + weight[n][c] = Math.pow(U[n][c], opts.m); + } + } + for (var _c = 0; _c < centroids.length; _c++) { + for (var dim = 0; dim < opts.attributes.length; dim++) { + numerator = 0; + denominator = 0; + for (var _n2 = 0; _n2 < nodes2.length; _n2++) { + numerator += weight[_n2][_c] * opts.attributes[dim](nodes2[_n2]); + denominator += weight[_n2][_c]; + } + centroids[_c][dim] = numerator / denominator; + } + } + }; + var updateMembership = function updateMembership2(U, _U, centroids, nodes2, opts) { + for (var i2 = 0; i2 < U.length; i2++) { + _U[i2] = U[i2].slice(); + } + var sum, numerator, denominator; + var pow = 2 / (opts.m - 1); + for (var c = 0; c < centroids.length; c++) { + for (var n = 0; n < nodes2.length; n++) { + sum = 0; + for (var k = 0; k < centroids.length; k++) { + numerator = getDist(opts.distance, nodes2[n], centroids[c], opts.attributes, "cmeans"); + denominator = getDist(opts.distance, nodes2[n], centroids[k], opts.attributes, "cmeans"); + sum += Math.pow(numerator / denominator, pow); + } + U[n][c] = 1 / sum; + } + } + }; + var assign$1 = function assign2(nodes2, U, opts, cy) { + var clusters = new Array(opts.k); + for (var c = 0; c < clusters.length; c++) { + clusters[c] = []; + } + var max2; + var index; + for (var n = 0; n < U.length; n++) { + max2 = -Infinity; + index = -1; + for (var _c2 = 0; _c2 < U[0].length; _c2++) { + if (U[n][_c2] > max2) { + max2 = U[n][_c2]; + index = _c2; + } + } + clusters[index].push(nodes2[n]); + } + for (var _c3 = 0; _c3 < clusters.length; _c3++) { + clusters[_c3] = cy.collection(clusters[_c3]); + } + return clusters; + }; + var fuzzyCMeans = function fuzzyCMeans2(options) { + var cy = this.cy(); + var nodes2 = this.nodes(); + var opts = setOptions$2(options); + var clusters; + var centroids; + var U; + var _U; + var weight; + _U = new Array(nodes2.length); + for (var i2 = 0; i2 < nodes2.length; i2++) { + _U[i2] = new Array(opts.k); + } + U = new Array(nodes2.length); + for (var _i3 = 0; _i3 < nodes2.length; _i3++) { + U[_i3] = new Array(opts.k); + } + for (var _i4 = 0; _i4 < nodes2.length; _i4++) { + var total = 0; + for (var j = 0; j < opts.k; j++) { + U[_i4][j] = Math.random(); + total += U[_i4][j]; + } + for (var _j = 0; _j < opts.k; _j++) { + U[_i4][_j] = U[_i4][_j] / total; + } + } + centroids = new Array(opts.k); + for (var _i5 = 0; _i5 < opts.k; _i5++) { + centroids[_i5] = new Array(opts.attributes.length); + } + weight = new Array(nodes2.length); + for (var _i6 = 0; _i6 < nodes2.length; _i6++) { + weight[_i6] = new Array(opts.k); + } + var isStillMoving = true; + var iterations = 0; + while (isStillMoving && iterations < opts.maxIterations) { + isStillMoving = false; + updateCentroids(centroids, nodes2, U, weight, opts); + updateMembership(U, _U, centroids, nodes2, opts); + if (!haveMatricesConverged(U, _U, opts.sensitivityThreshold)) { + isStillMoving = true; + } + iterations++; + } + clusters = assign$1(nodes2, U, opts, cy); + return { + clusters, + degreeOfMembership: U + }; + }; + var kClustering = { + kMeans, + kMedoids, + fuzzyCMeans, + fcm: fuzzyCMeans + }; + var defaults$a = defaults$g({ + distance: "euclidean", + // distance metric to compare nodes + linkage: "min", + // linkage criterion : how to determine the distance between clusters of nodes + mode: "threshold", + // mode:'threshold' => clusters must be threshold distance apart + threshold: Infinity, + // the distance threshold + // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters + addDendrogram: false, + // whether to add the dendrogram to the graph for viz + dendrogramDepth: 0, + // depth at which dendrogram branches are merged into the returned clusters + attributes: [] + // array of attr functions + }); + var linkageAliases = { + "single": "min", + "complete": "max" + }; + var setOptions$1 = function setOptions2(options) { + var opts = defaults$a(options); + var preferredAlias = linkageAliases[opts.linkage]; + if (preferredAlias != null) { + opts.linkage = preferredAlias; + } + return opts; + }; + var mergeClosest = function mergeClosest2(clusters, index, dists, mins, opts) { + var minKey = 0; + var min2 = Infinity; + var dist2; + var attrs = opts.attributes; + var getDist2 = function getDist3(n1, n2) { + return clusteringDistance(opts.distance, attrs.length, function(i3) { + return attrs[i3](n1); + }, function(i3) { + return attrs[i3](n2); + }, n1, n2); + }; + for (var i2 = 0; i2 < clusters.length; i2++) { + var key = clusters[i2].key; + var _dist = dists[key][mins[key]]; + if (_dist < min2) { + minKey = key; + min2 = _dist; + } + } + if (opts.mode === "threshold" && min2 >= opts.threshold || opts.mode === "dendrogram" && clusters.length === 1) { + return false; + } + var c1 = index[minKey]; + var c2 = index[mins[minKey]]; + var merged; + if (opts.mode === "dendrogram") { + merged = { + left: c1, + right: c2, + key: c1.key + }; + } else { + merged = { + value: c1.value.concat(c2.value), + key: c1.key + }; + } + clusters[c1.index] = merged; + clusters.splice(c2.index, 1); + index[c1.key] = merged; + for (var _i = 0; _i < clusters.length; _i++) { + var cur = clusters[_i]; + if (c1.key === cur.key) { + dist2 = Infinity; + } else if (opts.linkage === "min") { + dist2 = dists[c1.key][cur.key]; + if (dists[c1.key][cur.key] > dists[c2.key][cur.key]) { + dist2 = dists[c2.key][cur.key]; + } + } else if (opts.linkage === "max") { + dist2 = dists[c1.key][cur.key]; + if (dists[c1.key][cur.key] < dists[c2.key][cur.key]) { + dist2 = dists[c2.key][cur.key]; + } + } else if (opts.linkage === "mean") { + dist2 = (dists[c1.key][cur.key] * c1.size + dists[c2.key][cur.key] * c2.size) / (c1.size + c2.size); + } else { + if (opts.mode === "dendrogram") + dist2 = getDist2(cur.value, c1.value); + else + dist2 = getDist2(cur.value[0], c1.value[0]); + } + dists[c1.key][cur.key] = dists[cur.key][c1.key] = dist2; + } + for (var _i2 = 0; _i2 < clusters.length; _i2++) { + var key1 = clusters[_i2].key; + if (mins[key1] === c1.key || mins[key1] === c2.key) { + var _min = key1; + for (var j = 0; j < clusters.length; j++) { + var key2 = clusters[j].key; + if (dists[key1][key2] < dists[key1][_min]) { + _min = key2; + } + } + mins[key1] = _min; + } + clusters[_i2].index = _i2; + } + c1.key = c2.key = c1.index = c2.index = null; + return true; + }; + var getAllChildren = function getAllChildren2(root2, arr, cy) { + if (!root2) + return; + if (root2.value) { + arr.push(root2.value); + } else { + if (root2.left) + getAllChildren2(root2.left, arr); + if (root2.right) + getAllChildren2(root2.right, arr); + } + }; + var buildDendrogram = function buildDendrogram2(root2, cy) { + if (!root2) + return ""; + if (root2.left && root2.right) { + var leftStr = buildDendrogram2(root2.left, cy); + var rightStr = buildDendrogram2(root2.right, cy); + var node = cy.add({ + group: "nodes", + data: { + id: leftStr + "," + rightStr + } + }); + cy.add({ + group: "edges", + data: { + source: leftStr, + target: node.id() + } + }); + cy.add({ + group: "edges", + data: { + source: rightStr, + target: node.id() + } + }); + return node.id(); + } else if (root2.value) { + return root2.value.id(); + } + }; + var buildClustersFromTree = function buildClustersFromTree2(root2, k, cy) { + if (!root2) + return []; + var left = [], right = [], leaves = []; + if (k === 0) { + if (root2.left) + getAllChildren(root2.left, left); + if (root2.right) + getAllChildren(root2.right, right); + leaves = left.concat(right); + return [cy.collection(leaves)]; + } else if (k === 1) { + if (root2.value) { + return [cy.collection(root2.value)]; + } else { + if (root2.left) + getAllChildren(root2.left, left); + if (root2.right) + getAllChildren(root2.right, right); + return [cy.collection(left), cy.collection(right)]; + } + } else { + if (root2.value) { + return [cy.collection(root2.value)]; + } else { + if (root2.left) + left = buildClustersFromTree2(root2.left, k - 1, cy); + if (root2.right) + right = buildClustersFromTree2(root2.right, k - 1, cy); + return left.concat(right); + } + } + }; + var hierarchicalClustering = function hierarchicalClustering2(options) { + var cy = this.cy(); + var nodes2 = this.nodes(); + var opts = setOptions$1(options); + var attrs = opts.attributes; + var getDist2 = function getDist3(n1, n2) { + return clusteringDistance(opts.distance, attrs.length, function(i3) { + return attrs[i3](n1); + }, function(i3) { + return attrs[i3](n2); + }, n1, n2); + }; + var clusters = []; + var dists = []; + var mins = []; + var index = []; + for (var n = 0; n < nodes2.length; n++) { + var cluster = { + value: opts.mode === "dendrogram" ? nodes2[n] : [nodes2[n]], + key: n, + index: n + }; + clusters[n] = cluster; + index[n] = cluster; + dists[n] = []; + mins[n] = 0; + } + for (var i2 = 0; i2 < clusters.length; i2++) { + for (var j = 0; j <= i2; j++) { + var dist2 = void 0; + if (opts.mode === "dendrogram") { + dist2 = i2 === j ? Infinity : getDist2(clusters[i2].value, clusters[j].value); + } else { + dist2 = i2 === j ? Infinity : getDist2(clusters[i2].value[0], clusters[j].value[0]); + } + dists[i2][j] = dist2; + dists[j][i2] = dist2; + if (dist2 < dists[i2][mins[i2]]) { + mins[i2] = j; + } + } + } + var merged = mergeClosest(clusters, index, dists, mins, opts); + while (merged) { + merged = mergeClosest(clusters, index, dists, mins, opts); + } + var retClusters; + if (opts.mode === "dendrogram") { + retClusters = buildClustersFromTree(clusters[0], opts.dendrogramDepth, cy); + if (opts.addDendrogram) + buildDendrogram(clusters[0], cy); + } else { + retClusters = new Array(clusters.length); + clusters.forEach(function(cluster2, i3) { + cluster2.key = cluster2.index = null; + retClusters[i3] = cy.collection(cluster2.value); + }); + } + return retClusters; + }; + var hierarchicalClustering$1 = { + hierarchicalClustering, + hca: hierarchicalClustering + }; + var defaults$9 = defaults$g({ + distance: "euclidean", + // distance metric to compare attributes between two nodes + preference: "median", + // suitability of a data point to serve as an exemplar + damping: 0.8, + // damping factor between [0.5, 1) + maxIterations: 1e3, + // max number of iterations to run + minIterations: 100, + // min number of iterations to run in order for clustering to stop + attributes: [ + // functions to quantify the similarity between any two points + // e.g. node => node.data('weight') + ] + }); + var setOptions = function setOptions2(options) { + var dmp = options.damping; + var pref = options.preference; + if (!(0.5 <= dmp && dmp < 1)) { + error("Damping must range on [0.5, 1). Got: ".concat(dmp)); + } + var validPrefs = ["median", "mean", "min", "max"]; + if (!(validPrefs.some(function(v) { + return v === pref; + }) || number$1(pref))) { + error("Preference must be one of [".concat(validPrefs.map(function(p2) { + return "'".concat(p2, "'"); + }).join(", "), "] or a number. Got: ").concat(pref)); + } + return defaults$9(options); + }; + var getSimilarity = function getSimilarity2(type, n1, n2, attributes) { + var attr = function attr2(n, i2) { + return attributes[i2](n); + }; + return -clusteringDistance(type, attributes.length, function(i2) { + return attr(n1, i2); + }, function(i2) { + return attr(n2, i2); + }, n1, n2); + }; + var getPreference = function getPreference2(S, preference) { + var p2 = null; + if (preference === "median") { + p2 = median(S); + } else if (preference === "mean") { + p2 = mean(S); + } else if (preference === "min") { + p2 = min(S); + } else if (preference === "max") { + p2 = max(S); + } else { + p2 = preference; + } + return p2; + }; + var findExemplars = function findExemplars2(n, R, A) { + var indices = []; + for (var i2 = 0; i2 < n; i2++) { + if (R[i2 * n + i2] + A[i2 * n + i2] > 0) { + indices.push(i2); + } + } + return indices; + }; + var assignClusters = function assignClusters2(n, S, exemplars) { + var clusters = []; + for (var i2 = 0; i2 < n; i2++) { + var index = -1; + var max2 = -Infinity; + for (var ei = 0; ei < exemplars.length; ei++) { + var e = exemplars[ei]; + if (S[i2 * n + e] > max2) { + index = e; + max2 = S[i2 * n + e]; + } + } + if (index > 0) { + clusters.push(index); + } + } + for (var _ei = 0; _ei < exemplars.length; _ei++) { + clusters[exemplars[_ei]] = exemplars[_ei]; + } + return clusters; + }; + var assign = function assign2(n, S, exemplars) { + var clusters = assignClusters(n, S, exemplars); + for (var ei = 0; ei < exemplars.length; ei++) { + var ii = []; + for (var c = 0; c < clusters.length; c++) { + if (clusters[c] === exemplars[ei]) { + ii.push(c); + } + } + var maxI = -1; + var maxSum = -Infinity; + for (var i2 = 0; i2 < ii.length; i2++) { + var sum = 0; + for (var j = 0; j < ii.length; j++) { + sum += S[ii[j] * n + ii[i2]]; + } + if (sum > maxSum) { + maxI = i2; + maxSum = sum; + } + } + exemplars[ei] = ii[maxI]; + } + clusters = assignClusters(n, S, exemplars); + return clusters; + }; + var affinityPropagation = function affinityPropagation2(options) { + var cy = this.cy(); + var nodes2 = this.nodes(); + var opts = setOptions(options); + var id2position = {}; + for (var i2 = 0; i2 < nodes2.length; i2++) { + id2position[nodes2[i2].id()] = i2; + } + var n; + var n2; + var S; + var p2; + var R; + var A; + n = nodes2.length; + n2 = n * n; + S = new Array(n2); + for (var _i = 0; _i < n2; _i++) { + S[_i] = -Infinity; + } + for (var _i2 = 0; _i2 < n; _i2++) { + for (var j = 0; j < n; j++) { + if (_i2 !== j) { + S[_i2 * n + j] = getSimilarity(opts.distance, nodes2[_i2], nodes2[j], opts.attributes); + } + } + } + p2 = getPreference(S, opts.preference); + for (var _i3 = 0; _i3 < n; _i3++) { + S[_i3 * n + _i3] = p2; + } + R = new Array(n2); + for (var _i4 = 0; _i4 < n2; _i4++) { + R[_i4] = 0; + } + A = new Array(n2); + for (var _i5 = 0; _i5 < n2; _i5++) { + A[_i5] = 0; + } + var old = new Array(n); + var Rp = new Array(n); + var se = new Array(n); + for (var _i6 = 0; _i6 < n; _i6++) { + old[_i6] = 0; + Rp[_i6] = 0; + se[_i6] = 0; + } + var e = new Array(n * opts.minIterations); + for (var _i7 = 0; _i7 < e.length; _i7++) { + e[_i7] = 0; + } + var iter; + for (iter = 0; iter < opts.maxIterations; iter++) { + for (var _i8 = 0; _i8 < n; _i8++) { + var max2 = -Infinity, max22 = -Infinity, maxI = -1, AS = 0; + for (var _j = 0; _j < n; _j++) { + old[_j] = R[_i8 * n + _j]; + AS = A[_i8 * n + _j] + S[_i8 * n + _j]; + if (AS >= max2) { + max22 = max2; + max2 = AS; + maxI = _j; + } else if (AS > max22) { + max22 = AS; + } + } + for (var _j2 = 0; _j2 < n; _j2++) { + R[_i8 * n + _j2] = (1 - opts.damping) * (S[_i8 * n + _j2] - max2) + opts.damping * old[_j2]; + } + R[_i8 * n + maxI] = (1 - opts.damping) * (S[_i8 * n + maxI] - max22) + opts.damping * old[maxI]; + } + for (var _i9 = 0; _i9 < n; _i9++) { + var sum = 0; + for (var _j3 = 0; _j3 < n; _j3++) { + old[_j3] = A[_j3 * n + _i9]; + Rp[_j3] = Math.max(0, R[_j3 * n + _i9]); + sum += Rp[_j3]; + } + sum -= Rp[_i9]; + Rp[_i9] = R[_i9 * n + _i9]; + sum += Rp[_i9]; + for (var _j4 = 0; _j4 < n; _j4++) { + A[_j4 * n + _i9] = (1 - opts.damping) * Math.min(0, sum - Rp[_j4]) + opts.damping * old[_j4]; + } + A[_i9 * n + _i9] = (1 - opts.damping) * (sum - Rp[_i9]) + opts.damping * old[_i9]; + } + var K2 = 0; + for (var _i10 = 0; _i10 < n; _i10++) { + var E = A[_i10 * n + _i10] + R[_i10 * n + _i10] > 0 ? 1 : 0; + e[iter % opts.minIterations * n + _i10] = E; + K2 += E; + } + if (K2 > 0 && (iter >= opts.minIterations - 1 || iter == opts.maxIterations - 1)) { + var _sum = 0; + for (var _i11 = 0; _i11 < n; _i11++) { + se[_i11] = 0; + for (var _j5 = 0; _j5 < opts.minIterations; _j5++) { + se[_i11] += e[_j5 * n + _i11]; + } + if (se[_i11] === 0 || se[_i11] === opts.minIterations) { + _sum++; + } + } + if (_sum === n) { + break; + } + } + } + var exemplarsIndices = findExemplars(n, R, A); + var clusterIndices = assign(n, S, exemplarsIndices); + var clusters = {}; + for (var c = 0; c < exemplarsIndices.length; c++) { + clusters[exemplarsIndices[c]] = []; + } + for (var _i12 = 0; _i12 < nodes2.length; _i12++) { + var pos = id2position[nodes2[_i12].id()]; + var clusterIndex = clusterIndices[pos]; + if (clusterIndex != null) { + clusters[clusterIndex].push(nodes2[_i12]); + } + } + var retClusters = new Array(exemplarsIndices.length); + for (var _c = 0; _c < exemplarsIndices.length; _c++) { + retClusters[_c] = cy.collection(clusters[exemplarsIndices[_c]]); + } + return retClusters; + }; + var affinityPropagation$1 = { + affinityPropagation, + ap: affinityPropagation + }; + var hierholzerDefaults = defaults$g({ + root: void 0, + directed: false + }); + var elesfn$k = { + hierholzer: function hierholzer(options) { + if (!plainObject(options)) { + var args = arguments; + options = { + root: args[0], + directed: args[1] + }; + } + var _hierholzerDefaults = hierholzerDefaults(options), root2 = _hierholzerDefaults.root, directed = _hierholzerDefaults.directed; + var eles = this; + var dflag = false; + var oddIn; + var oddOut; + var startVertex; + if (root2) + startVertex = string(root2) ? this.filter(root2)[0].id() : root2[0].id(); + var nodes2 = {}; + var edges = {}; + if (directed) { + eles.forEach(function(ele) { + var id = ele.id(); + if (ele.isNode()) { + var ind = ele.indegree(true); + var outd = ele.outdegree(true); + var d1 = ind - outd; + var d2 = outd - ind; + if (d1 == 1) { + if (oddIn) + dflag = true; + else + oddIn = id; + } else if (d2 == 1) { + if (oddOut) + dflag = true; + else + oddOut = id; + } else if (d2 > 1 || d1 > 1) { + dflag = true; + } + nodes2[id] = []; + ele.outgoers().forEach(function(e) { + if (e.isEdge()) + nodes2[id].push(e.id()); + }); + } else { + edges[id] = [void 0, ele.target().id()]; + } + }); + } else { + eles.forEach(function(ele) { + var id = ele.id(); + if (ele.isNode()) { + var d2 = ele.degree(true); + if (d2 % 2) { + if (!oddIn) + oddIn = id; + else if (!oddOut) + oddOut = id; + else + dflag = true; + } + nodes2[id] = []; + ele.connectedEdges().forEach(function(e) { + return nodes2[id].push(e.id()); + }); + } else { + edges[id] = [ele.source().id(), ele.target().id()]; + } + }); + } + var result = { + found: false, + trail: void 0 + }; + if (dflag) + return result; + else if (oddOut && oddIn) { + if (directed) { + if (startVertex && oddOut != startVertex) { + return result; + } + startVertex = oddOut; + } else { + if (startVertex && oddOut != startVertex && oddIn != startVertex) { + return result; + } else if (!startVertex) { + startVertex = oddOut; + } + } + } else { + if (!startVertex) + startVertex = eles[0].id(); + } + var walk = function walk2(v) { + var currentNode = v; + var subtour2 = [v]; + var adj, adjTail, adjHead; + while (nodes2[currentNode].length) { + adj = nodes2[currentNode].shift(); + adjTail = edges[adj][0]; + adjHead = edges[adj][1]; + if (currentNode != adjHead) { + nodes2[adjHead] = nodes2[adjHead].filter(function(e) { + return e != adj; + }); + currentNode = adjHead; + } else if (!directed && currentNode != adjTail) { + nodes2[adjTail] = nodes2[adjTail].filter(function(e) { + return e != adj; + }); + currentNode = adjTail; + } + subtour2.unshift(adj); + subtour2.unshift(currentNode); + } + return subtour2; + }; + var trail = []; + var subtour = []; + subtour = walk(startVertex); + while (subtour.length != 1) { + if (nodes2[subtour[0]].length == 0) { + trail.unshift(eles.getElementById(subtour.shift())); + trail.unshift(eles.getElementById(subtour.shift())); + } else { + subtour = walk(subtour.shift()).concat(subtour); + } + } + trail.unshift(eles.getElementById(subtour.shift())); + for (var d in nodes2) { + if (nodes2[d].length) { + return result; + } + } + result.found = true; + result.trail = this.spawn(trail, true); + return result; + } + }; + var hopcroftTarjanBiconnected = function hopcroftTarjanBiconnected2() { + var eles = this; + var nodes2 = {}; + var id = 0; + var edgeCount = 0; + var components = []; + var stack = []; + var visitedEdges = {}; + var buildComponent = function buildComponent2(x, y) { + var i2 = stack.length - 1; + var cutset = []; + var component = eles.spawn(); + while (stack[i2].x != x || stack[i2].y != y) { + cutset.push(stack.pop().edge); + i2--; + } + cutset.push(stack.pop().edge); + cutset.forEach(function(edge) { + var connectedNodes = edge.connectedNodes().intersection(eles); + component.merge(edge); + connectedNodes.forEach(function(node) { + var nodeId = node.id(); + var connectedEdges = node.connectedEdges().intersection(eles); + component.merge(node); + if (!nodes2[nodeId].cutVertex) { + component.merge(connectedEdges); + } else { + component.merge(connectedEdges.filter(function(edge2) { + return edge2.isLoop(); + })); + } + }); + }); + components.push(component); + }; + var biconnectedSearch = function biconnectedSearch2(root2, currentNode, parent) { + if (root2 === parent) + edgeCount += 1; + nodes2[currentNode] = { + id, + low: id++, + cutVertex: false + }; + var edges = eles.getElementById(currentNode).connectedEdges().intersection(eles); + if (edges.size() === 0) { + components.push(eles.spawn(eles.getElementById(currentNode))); + } else { + var sourceId, targetId, otherNodeId, edgeId; + edges.forEach(function(edge) { + sourceId = edge.source().id(); + targetId = edge.target().id(); + otherNodeId = sourceId === currentNode ? targetId : sourceId; + if (otherNodeId !== parent) { + edgeId = edge.id(); + if (!visitedEdges[edgeId]) { + visitedEdges[edgeId] = true; + stack.push({ + x: currentNode, + y: otherNodeId, + edge + }); + } + if (!(otherNodeId in nodes2)) { + biconnectedSearch2(root2, otherNodeId, currentNode); + nodes2[currentNode].low = Math.min(nodes2[currentNode].low, nodes2[otherNodeId].low); + if (nodes2[currentNode].id <= nodes2[otherNodeId].low) { + nodes2[currentNode].cutVertex = true; + buildComponent(currentNode, otherNodeId); + } + } else { + nodes2[currentNode].low = Math.min(nodes2[currentNode].low, nodes2[otherNodeId].id); + } + } + }); + } + }; + eles.forEach(function(ele) { + if (ele.isNode()) { + var nodeId = ele.id(); + if (!(nodeId in nodes2)) { + edgeCount = 0; + biconnectedSearch(nodeId, nodeId); + nodes2[nodeId].cutVertex = edgeCount > 1; + } + } + }); + var cutVertices = Object.keys(nodes2).filter(function(id2) { + return nodes2[id2].cutVertex; + }).map(function(id2) { + return eles.getElementById(id2); + }); + return { + cut: eles.spawn(cutVertices), + components + }; + }; + var hopcroftTarjanBiconnected$1 = { + hopcroftTarjanBiconnected, + htbc: hopcroftTarjanBiconnected, + htb: hopcroftTarjanBiconnected, + hopcroftTarjanBiconnectedComponents: hopcroftTarjanBiconnected + }; + var tarjanStronglyConnected = function tarjanStronglyConnected2() { + var eles = this; + var nodes2 = {}; + var index = 0; + var components = []; + var stack = []; + var cut = eles.spawn(eles); + var stronglyConnectedSearch = function stronglyConnectedSearch2(sourceNodeId) { + stack.push(sourceNodeId); + nodes2[sourceNodeId] = { + index, + low: index++, + explored: false + }; + var connectedEdges = eles.getElementById(sourceNodeId).connectedEdges().intersection(eles); + connectedEdges.forEach(function(edge) { + var targetNodeId = edge.target().id(); + if (targetNodeId !== sourceNodeId) { + if (!(targetNodeId in nodes2)) { + stronglyConnectedSearch2(targetNodeId); + } + if (!nodes2[targetNodeId].explored) { + nodes2[sourceNodeId].low = Math.min(nodes2[sourceNodeId].low, nodes2[targetNodeId].low); + } + } + }); + if (nodes2[sourceNodeId].index === nodes2[sourceNodeId].low) { + var componentNodes = eles.spawn(); + for (; ; ) { + var nodeId = stack.pop(); + componentNodes.merge(eles.getElementById(nodeId)); + nodes2[nodeId].low = nodes2[sourceNodeId].index; + nodes2[nodeId].explored = true; + if (nodeId === sourceNodeId) { + break; + } + } + var componentEdges = componentNodes.edgesWith(componentNodes); + var component = componentNodes.merge(componentEdges); + components.push(component); + cut = cut.difference(component); + } + }; + eles.forEach(function(ele) { + if (ele.isNode()) { + var nodeId = ele.id(); + if (!(nodeId in nodes2)) { + stronglyConnectedSearch(nodeId); + } + } + }); + return { + cut, + components + }; + }; + var tarjanStronglyConnected$1 = { + tarjanStronglyConnected, + tsc: tarjanStronglyConnected, + tscc: tarjanStronglyConnected, + tarjanStronglyConnectedComponents: tarjanStronglyConnected + }; + var elesfn$j = {}; + [elesfn$v, elesfn$u, elesfn$t, elesfn$s, elesfn$r, elesfn$q, elesfn$p, elesfn$o, elesfn$n, elesfn$m, elesfn$l, markovClustering$1, kClustering, hierarchicalClustering$1, affinityPropagation$1, elesfn$k, hopcroftTarjanBiconnected$1, tarjanStronglyConnected$1].forEach(function(props) { + extend(elesfn$j, props); + }); + /*! + Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable + Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) + Licensed under The MIT License (http://opensource.org/licenses/MIT) + */ + var STATE_PENDING = 0; + var STATE_FULFILLED = 1; + var STATE_REJECTED = 2; + var api = function api2(executor) { + if (!(this instanceof api2)) + return new api2(executor); + this.id = "Thenable/1.0.7"; + this.state = STATE_PENDING; + this.fulfillValue = void 0; + this.rejectReason = void 0; + this.onFulfilled = []; + this.onRejected = []; + this.proxy = { + then: this.then.bind(this) + }; + if (typeof executor === "function") + executor.call(this, this.fulfill.bind(this), this.reject.bind(this)); + }; + api.prototype = { + /* promise resolving methods */ + fulfill: function fulfill(value) { + return deliver(this, STATE_FULFILLED, "fulfillValue", value); + }, + reject: function reject(value) { + return deliver(this, STATE_REJECTED, "rejectReason", value); + }, + /* "The then Method" [Promises/A+ 1.1, 1.2, 2.2] */ + then: function then(onFulfilled, onRejected) { + var curr = this; + var next2 = new api(); + curr.onFulfilled.push(resolver(onFulfilled, next2, "fulfill")); + curr.onRejected.push(resolver(onRejected, next2, "reject")); + execute(curr); + return next2.proxy; + } + }; + var deliver = function deliver2(curr, state, name, value) { + if (curr.state === STATE_PENDING) { + curr.state = state; + curr[name] = value; + execute(curr); + } + return curr; + }; + var execute = function execute2(curr) { + if (curr.state === STATE_FULFILLED) + execute_handlers(curr, "onFulfilled", curr.fulfillValue); + else if (curr.state === STATE_REJECTED) + execute_handlers(curr, "onRejected", curr.rejectReason); + }; + var execute_handlers = function execute_handlers2(curr, name, value) { + if (curr[name].length === 0) + return; + var handlers = curr[name]; + curr[name] = []; + var func = function func2() { + for (var i2 = 0; i2 < handlers.length; i2++) { + handlers[i2](value); + } + }; + if (typeof setImmediate === "function") + setImmediate(func); + else + setTimeout(func, 0); + }; + var resolver = function resolver2(cb, next2, method) { + return function(value) { + if (typeof cb !== "function") + next2[method].call(next2, value); + else { + var result; + try { + result = cb(value); + } catch (e) { + next2.reject(e); + return; + } + resolve(next2, result); + } + }; + }; + var resolve = function resolve2(promise2, x) { + if (promise2 === x || promise2.proxy === x) { + promise2.reject(new TypeError("cannot resolve promise with itself")); + return; + } + var then; + if (_typeof(x) === "object" && x !== null || typeof x === "function") { + try { + then = x.then; + } catch (e) { + promise2.reject(e); + return; + } + } + if (typeof then === "function") { + var resolved = false; + try { + then.call( + x, + /* resolvePromise */ + /* [Promises/A+ 2.3.3.3.1] */ + function(y) { + if (resolved) + return; + resolved = true; + if (y === x) + promise2.reject(new TypeError("circular thenable chain")); + else + resolve2(promise2, y); + }, + /* rejectPromise */ + /* [Promises/A+ 2.3.3.3.2] */ + function(r) { + if (resolved) + return; + resolved = true; + promise2.reject(r); + } + ); + } catch (e) { + if (!resolved) + promise2.reject(e); + } + return; + } + promise2.fulfill(x); + }; + api.all = function(ps) { + return new api(function(resolveAll, rejectAll) { + var vals = new Array(ps.length); + var doneCount = 0; + var fulfill = function fulfill2(i3, val) { + vals[i3] = val; + doneCount++; + if (doneCount === ps.length) { + resolveAll(vals); + } + }; + for (var i2 = 0; i2 < ps.length; i2++) { + (function(i3) { + var p2 = ps[i3]; + var isPromise = p2 != null && p2.then != null; + if (isPromise) { + p2.then(function(val2) { + fulfill(i3, val2); + }, function(err) { + rejectAll(err); + }); + } else { + var val = p2; + fulfill(i3, val); + } + })(i2); + } + }); + }; + api.resolve = function(val) { + return new api(function(resolve2, reject) { + resolve2(val); + }); + }; + api.reject = function(val) { + return new api(function(resolve2, reject) { + reject(val); + }); + }; + var Promise$1 = typeof Promise !== "undefined" ? Promise : api; + var Animation = function Animation2(target, opts, opts2) { + var isCore = core(target); + var isEle = !isCore; + var _p = this._private = extend({ + duration: 1e3 + }, opts, opts2); + _p.target = target; + _p.style = _p.style || _p.css; + _p.started = false; + _p.playing = false; + _p.hooked = false; + _p.applying = false; + _p.progress = 0; + _p.completes = []; + _p.frames = []; + if (_p.complete && fn$6(_p.complete)) { + _p.completes.push(_p.complete); + } + if (isEle) { + var pos = target.position(); + _p.startPosition = _p.startPosition || { + x: pos.x, + y: pos.y + }; + _p.startStyle = _p.startStyle || target.cy().style().getAnimationStartStyle(target, _p.style); + } + if (isCore) { + var pan = target.pan(); + _p.startPan = { + x: pan.x, + y: pan.y + }; + _p.startZoom = target.zoom(); + } + this.length = 1; + this[0] = this; + }; + var anifn = Animation.prototype; + extend(anifn, { + instanceString: function instanceString() { + return "animation"; + }, + hook: function hook() { + var _p = this._private; + if (!_p.hooked) { + var q; + var tAni = _p.target._private.animation; + if (_p.queue) { + q = tAni.queue; + } else { + q = tAni.current; + } + q.push(this); + if (elementOrCollection(_p.target)) { + _p.target.cy().addToAnimationPool(_p.target); + } + _p.hooked = true; + } + return this; + }, + play: function play() { + var _p = this._private; + if (_p.progress === 1) { + _p.progress = 0; + } + _p.playing = true; + _p.started = false; + _p.stopped = false; + this.hook(); + return this; + }, + playing: function playing() { + return this._private.playing; + }, + apply: function apply() { + var _p = this._private; + _p.applying = true; + _p.started = false; + _p.stopped = false; + this.hook(); + return this; + }, + applying: function applying() { + return this._private.applying; + }, + pause: function pause() { + var _p = this._private; + _p.playing = false; + _p.started = false; + return this; + }, + stop: function stop() { + var _p = this._private; + _p.playing = false; + _p.started = false; + _p.stopped = true; + return this; + }, + rewind: function rewind() { + return this.progress(0); + }, + fastforward: function fastforward() { + return this.progress(1); + }, + time: function time(t) { + var _p = this._private; + if (t === void 0) { + return _p.progress * _p.duration; + } else { + return this.progress(t / _p.duration); + } + }, + progress: function progress(p2) { + var _p = this._private; + var wasPlaying = _p.playing; + if (p2 === void 0) { + return _p.progress; + } else { + if (wasPlaying) { + this.pause(); + } + _p.progress = p2; + _p.started = false; + if (wasPlaying) { + this.play(); + } + } + return this; + }, + completed: function completed() { + return this._private.progress === 1; + }, + reverse: function reverse() { + var _p = this._private; + var wasPlaying = _p.playing; + if (wasPlaying) { + this.pause(); + } + _p.progress = 1 - _p.progress; + _p.started = false; + var swap = function swap2(a, b) { + var _pa = _p[a]; + if (_pa == null) { + return; + } + _p[a] = _p[b]; + _p[b] = _pa; + }; + swap("zoom", "startZoom"); + swap("pan", "startPan"); + swap("position", "startPosition"); + if (_p.style) { + for (var i2 = 0; i2 < _p.style.length; i2++) { + var prop = _p.style[i2]; + var name = prop.name; + var startStyleProp = _p.startStyle[name]; + _p.startStyle[name] = prop; + _p.style[i2] = startStyleProp; + } + } + if (wasPlaying) { + this.play(); + } + return this; + }, + promise: function promise2(type) { + var _p = this._private; + var arr; + switch (type) { + case "frame": + arr = _p.frames; + break; + default: + case "complete": + case "completed": + arr = _p.completes; + } + return new Promise$1(function(resolve2, reject) { + arr.push(function() { + resolve2(); + }); + }); + } + }); + anifn.complete = anifn.completed; + anifn.run = anifn.play; + anifn.running = anifn.playing; + var define$3 = { + animated: function animated() { + return function animatedImpl() { + var self2 = this; + var selfIsArrayLike = self2.length !== void 0; + var all = selfIsArrayLike ? self2 : [self2]; + var cy = this._private.cy || this; + if (!cy.styleEnabled()) { + return false; + } + var ele = all[0]; + if (ele) { + return ele._private.animation.current.length > 0; + } + }; + }, + // animated + clearQueue: function clearQueue() { + return function clearQueueImpl() { + var self2 = this; + var selfIsArrayLike = self2.length !== void 0; + var all = selfIsArrayLike ? self2 : [self2]; + var cy = this._private.cy || this; + if (!cy.styleEnabled()) { + return this; + } + for (var i2 = 0; i2 < all.length; i2++) { + var ele = all[i2]; + ele._private.animation.queue = []; + } + return this; + }; + }, + // clearQueue + delay: function delay() { + return function delayImpl(time, complete) { + var cy = this._private.cy || this; + if (!cy.styleEnabled()) { + return this; + } + return this.animate({ + delay: time, + duration: time, + complete + }); + }; + }, + // delay + delayAnimation: function delayAnimation() { + return function delayAnimationImpl(time, complete) { + var cy = this._private.cy || this; + if (!cy.styleEnabled()) { + return this; + } + return this.animation({ + delay: time, + duration: time, + complete + }); + }; + }, + // delay + animation: function animation() { + return function animationImpl(properties, params) { + var self2 = this; + var selfIsArrayLike = self2.length !== void 0; + var all = selfIsArrayLike ? self2 : [self2]; + var cy = this._private.cy || this; + var isCore = !selfIsArrayLike; + var isEles = !isCore; + if (!cy.styleEnabled()) { + return this; + } + var style = cy.style(); + properties = extend({}, properties, params); + var propertiesEmpty = Object.keys(properties).length === 0; + if (propertiesEmpty) { + return new Animation(all[0], properties); + } + if (properties.duration === void 0) { + properties.duration = 400; + } + switch (properties.duration) { + case "slow": + properties.duration = 600; + break; + case "fast": + properties.duration = 200; + break; + } + if (isEles) { + properties.style = style.getPropsList(properties.style || properties.css); + properties.css = void 0; + } + if (isEles && properties.renderedPosition != null) { + var rpos = properties.renderedPosition; + var pan = cy.pan(); + var zoom = cy.zoom(); + properties.position = renderedToModelPosition(rpos, zoom, pan); + } + if (isCore && properties.panBy != null) { + var panBy = properties.panBy; + var cyPan = cy.pan(); + properties.pan = { + x: cyPan.x + panBy.x, + y: cyPan.y + panBy.y + }; + } + var center = properties.center || properties.centre; + if (isCore && center != null) { + var centerPan = cy.getCenterPan(center.eles, properties.zoom); + if (centerPan != null) { + properties.pan = centerPan; + } + } + if (isCore && properties.fit != null) { + var fit = properties.fit; + var fitVp = cy.getFitViewport(fit.eles || fit.boundingBox, fit.padding); + if (fitVp != null) { + properties.pan = fitVp.pan; + properties.zoom = fitVp.zoom; + } + } + if (isCore && plainObject(properties.zoom)) { + var vp = cy.getZoomedViewport(properties.zoom); + if (vp != null) { + if (vp.zoomed) { + properties.zoom = vp.zoom; + } + if (vp.panned) { + properties.pan = vp.pan; + } + } else { + properties.zoom = null; + } + } + return new Animation(all[0], properties); + }; + }, + // animate + animate: function animate() { + return function animateImpl(properties, params) { + var self2 = this; + var selfIsArrayLike = self2.length !== void 0; + var all = selfIsArrayLike ? self2 : [self2]; + var cy = this._private.cy || this; + if (!cy.styleEnabled()) { + return this; + } + if (params) { + properties = extend({}, properties, params); + } + for (var i2 = 0; i2 < all.length; i2++) { + var ele = all[i2]; + var queue = ele.animated() && (properties.queue === void 0 || properties.queue); + var ani = ele.animation(properties, queue ? { + queue: true + } : void 0); + ani.play(); + } + return this; + }; + }, + // animate + stop: function stop() { + return function stopImpl(clearQueue, jumpToEnd) { + var self2 = this; + var selfIsArrayLike = self2.length !== void 0; + var all = selfIsArrayLike ? self2 : [self2]; + var cy = this._private.cy || this; + if (!cy.styleEnabled()) { + return this; + } + for (var i2 = 0; i2 < all.length; i2++) { + var ele = all[i2]; + var _p = ele._private; + var anis = _p.animation.current; + for (var j = 0; j < anis.length; j++) { + var ani = anis[j]; + var ani_p = ani._private; + if (jumpToEnd) { + ani_p.duration = 0; + } + } + if (clearQueue) { + _p.animation.queue = []; + } + if (!jumpToEnd) { + _p.animation.current = []; + } + } + cy.notify("draw"); + return this; + }; + } + // stop + }; + var isArray = Array.isArray; + var isArray_1 = isArray; + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/; + function isKey(value, object2) { + if (isArray_1(value)) { + return false; + } + var type = typeof value; + if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol_1(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object2 != null && value in Object(object2); + } + var _isKey = isKey; + var asyncTag = "[object AsyncFunction]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", proxyTag = "[object Proxy]"; + function isFunction(value) { + if (!isObject_1(value)) { + return false; + } + var tag = _baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + } + var isFunction_1 = isFunction; + var coreJsData = _root["__core-js_shared__"]; + var _coreJsData = coreJsData; + var maskSrcKey = function() { + var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || ""); + return uid ? "Symbol(src)_1." + uid : ""; + }(); + function isMasked(func) { + return !!maskSrcKey && maskSrcKey in func; + } + var _isMasked = isMasked; + var funcProto$1 = Function.prototype; + var funcToString$1 = funcProto$1.toString; + function toSource(func) { + if (func != null) { + try { + return funcToString$1.call(func); + } catch (e) { + } + try { + return func + ""; + } catch (e) { + } + } + return ""; + } + var _toSource = toSource; + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + var reIsHostCtor = /^\[object .+?Constructor\]$/; + var funcProto = Function.prototype, objectProto$3 = Object.prototype; + var funcToString = funcProto.toString; + var hasOwnProperty$3 = objectProto$3.hasOwnProperty; + var reIsNative = RegExp( + "^" + funcToString.call(hasOwnProperty$3).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" + ); + function baseIsNative(value) { + if (!isObject_1(value) || _isMasked(value)) { + return false; + } + var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor; + return pattern.test(_toSource(value)); + } + var _baseIsNative = baseIsNative; + function getValue$1(object2, key) { + return object2 == null ? void 0 : object2[key]; + } + var _getValue = getValue$1; + function getNative(object2, key) { + var value = _getValue(object2, key); + return _baseIsNative(value) ? value : void 0; + } + var _getNative = getNative; + var nativeCreate = _getNative(Object, "create"); + var _nativeCreate = nativeCreate; + function hashClear() { + this.__data__ = _nativeCreate ? _nativeCreate(null) : {}; + this.size = 0; + } + var _hashClear = hashClear; + function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; + } + var _hashDelete = hashDelete; + var HASH_UNDEFINED$1 = "__lodash_hash_undefined__"; + var objectProto$2 = Object.prototype; + var hasOwnProperty$2 = objectProto$2.hasOwnProperty; + function hashGet(key) { + var data2 = this.__data__; + if (_nativeCreate) { + var result = data2[key]; + return result === HASH_UNDEFINED$1 ? void 0 : result; + } + return hasOwnProperty$2.call(data2, key) ? data2[key] : void 0; + } + var _hashGet = hashGet; + var objectProto$1 = Object.prototype; + var hasOwnProperty$1 = objectProto$1.hasOwnProperty; + function hashHas(key) { + var data2 = this.__data__; + return _nativeCreate ? data2[key] !== void 0 : hasOwnProperty$1.call(data2, key); + } + var _hashHas = hashHas; + var HASH_UNDEFINED = "__lodash_hash_undefined__"; + function hashSet(key, value) { + var data2 = this.__data__; + this.size += this.has(key) ? 0 : 1; + data2[key] = _nativeCreate && value === void 0 ? HASH_UNDEFINED : value; + return this; + } + var _hashSet = hashSet; + function Hash(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + Hash.prototype.clear = _hashClear; + Hash.prototype["delete"] = _hashDelete; + Hash.prototype.get = _hashGet; + Hash.prototype.has = _hashHas; + Hash.prototype.set = _hashSet; + var _Hash = Hash; + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + var _listCacheClear = listCacheClear; + function eq(value, other) { + return value === other || value !== value && other !== other; + } + var eq_1 = eq; + function assocIndexOf(array2, key) { + var length = array2.length; + while (length--) { + if (eq_1(array2[length][0], key)) { + return length; + } + } + return -1; + } + var _assocIndexOf = assocIndexOf; + var arrayProto = Array.prototype; + var splice = arrayProto.splice; + function listCacheDelete(key) { + var data2 = this.__data__, index = _assocIndexOf(data2, key); + if (index < 0) { + return false; + } + var lastIndex = data2.length - 1; + if (index == lastIndex) { + data2.pop(); + } else { + splice.call(data2, index, 1); + } + --this.size; + return true; + } + var _listCacheDelete = listCacheDelete; + function listCacheGet(key) { + var data2 = this.__data__, index = _assocIndexOf(data2, key); + return index < 0 ? void 0 : data2[index][1]; + } + var _listCacheGet = listCacheGet; + function listCacheHas(key) { + return _assocIndexOf(this.__data__, key) > -1; + } + var _listCacheHas = listCacheHas; + function listCacheSet(key, value) { + var data2 = this.__data__, index = _assocIndexOf(data2, key); + if (index < 0) { + ++this.size; + data2.push([key, value]); + } else { + data2[index][1] = value; + } + return this; + } + var _listCacheSet = listCacheSet; + function ListCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + ListCache.prototype.clear = _listCacheClear; + ListCache.prototype["delete"] = _listCacheDelete; + ListCache.prototype.get = _listCacheGet; + ListCache.prototype.has = _listCacheHas; + ListCache.prototype.set = _listCacheSet; + var _ListCache = ListCache; + var Map$1 = _getNative(_root, "Map"); + var _Map = Map$1; + function mapCacheClear() { + this.size = 0; + this.__data__ = { + "hash": new _Hash(), + "map": new (_Map || _ListCache)(), + "string": new _Hash() + }; + } + var _mapCacheClear = mapCacheClear; + function isKeyable(value) { + var type = typeof value; + return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; + } + var _isKeyable = isKeyable; + function getMapData(map, key) { + var data2 = map.__data__; + return _isKeyable(key) ? data2[typeof key == "string" ? "string" : "hash"] : data2.map; + } + var _getMapData = getMapData; + function mapCacheDelete(key) { + var result = _getMapData(this, key)["delete"](key); + this.size -= result ? 1 : 0; + return result; + } + var _mapCacheDelete = mapCacheDelete; + function mapCacheGet(key) { + return _getMapData(this, key).get(key); + } + var _mapCacheGet = mapCacheGet; + function mapCacheHas(key) { + return _getMapData(this, key).has(key); + } + var _mapCacheHas = mapCacheHas; + function mapCacheSet(key, value) { + var data2 = _getMapData(this, key), size = data2.size; + data2.set(key, value); + this.size += data2.size == size ? 0 : 1; + return this; + } + var _mapCacheSet = mapCacheSet; + function MapCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + MapCache.prototype.clear = _mapCacheClear; + MapCache.prototype["delete"] = _mapCacheDelete; + MapCache.prototype.get = _mapCacheGet; + MapCache.prototype.has = _mapCacheHas; + MapCache.prototype.set = _mapCacheSet; + var _MapCache = MapCache; + var FUNC_ERROR_TEXT = "Expected a function"; + function memoize(func, resolver2) { + if (typeof func != "function" || resolver2 != null && typeof resolver2 != "function") { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, key = resolver2 ? resolver2.apply(this, args) : args[0], cache2 = memoized.cache; + if (cache2.has(key)) { + return cache2.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache2.set(key, result) || cache2; + return result; + }; + memoized.cache = new (memoize.Cache || _MapCache)(); + return memoized; + } + memoize.Cache = _MapCache; + var memoize_1 = memoize; + var MAX_MEMOIZE_SIZE = 500; + function memoizeCapped(func) { + var result = memoize_1(func, function(key) { + if (cache2.size === MAX_MEMOIZE_SIZE) { + cache2.clear(); + } + return key; + }); + var cache2 = result.cache; + return result; + } + var _memoizeCapped = memoizeCapped; + var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + var reEscapeChar = /\\(\\)?/g; + var stringToPath = _memoizeCapped(function(string2) { + var result = []; + if (string2.charCodeAt(0) === 46) { + result.push(""); + } + string2.replace(rePropName, function(match2, number2, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, "$1") : number2 || match2); + }); + return result; + }); + var _stringToPath = stringToPath; + function arrayMap(array2, iteratee) { + var index = -1, length = array2 == null ? 0 : array2.length, result = Array(length); + while (++index < length) { + result[index] = iteratee(array2[index], index, array2); + } + return result; + } + var _arrayMap = arrayMap; + var INFINITY$1 = 1 / 0; + var symbolProto = _Symbol ? _Symbol.prototype : void 0, symbolToString = symbolProto ? symbolProto.toString : void 0; + function baseToString(value) { + if (typeof value == "string") { + return value; + } + if (isArray_1(value)) { + return _arrayMap(value, baseToString) + ""; + } + if (isSymbol_1(value)) { + return symbolToString ? symbolToString.call(value) : ""; + } + var result = value + ""; + return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result; + } + var _baseToString = baseToString; + function toString$1(value) { + return value == null ? "" : _baseToString(value); + } + var toString_1 = toString$1; + function castPath(value, object2) { + if (isArray_1(value)) { + return value; + } + return _isKey(value, object2) ? [value] : _stringToPath(toString_1(value)); + } + var _castPath = castPath; + var INFINITY = 1 / 0; + function toKey(value) { + if (typeof value == "string" || isSymbol_1(value)) { + return value; + } + var result = value + ""; + return result == "0" && 1 / value == -INFINITY ? "-0" : result; + } + var _toKey = toKey; + function baseGet(object2, path) { + path = _castPath(path, object2); + var index = 0, length = path.length; + while (object2 != null && index < length) { + object2 = object2[_toKey(path[index++])]; + } + return index && index == length ? object2 : void 0; + } + var _baseGet = baseGet; + function get(object2, path, defaultValue) { + var result = object2 == null ? void 0 : _baseGet(object2, path); + return result === void 0 ? defaultValue : result; + } + var get_1 = get; + var defineProperty = function() { + try { + var func = _getNative(Object, "defineProperty"); + func({}, "", {}); + return func; + } catch (e) { + } + }(); + var _defineProperty = defineProperty; + function baseAssignValue(object2, key, value) { + if (key == "__proto__" && _defineProperty) { + _defineProperty(object2, key, { + "configurable": true, + "enumerable": true, + "value": value, + "writable": true + }); + } else { + object2[key] = value; + } + } + var _baseAssignValue = baseAssignValue; + var objectProto = Object.prototype; + var hasOwnProperty = objectProto.hasOwnProperty; + function assignValue(object2, key, value) { + var objValue = object2[key]; + if (!(hasOwnProperty.call(object2, key) && eq_1(objValue, value)) || value === void 0 && !(key in object2)) { + _baseAssignValue(object2, key, value); + } + } + var _assignValue = assignValue; + var MAX_SAFE_INTEGER = 9007199254740991; + var reIsUint = /^(?:0|[1-9]\d*)$/; + function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); + } + var _isIndex = isIndex; + function baseSet(object2, path, value, customizer) { + if (!isObject_1(object2)) { + return object2; + } + path = _castPath(path, object2); + var index = -1, length = path.length, lastIndex = length - 1, nested = object2; + while (nested != null && ++index < length) { + var key = _toKey(path[index]), newValue = value; + if (key === "__proto__" || key === "constructor" || key === "prototype") { + return object2; + } + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : void 0; + if (newValue === void 0) { + newValue = isObject_1(objValue) ? objValue : _isIndex(path[index + 1]) ? [] : {}; + } + } + _assignValue(nested, key, newValue); + nested = nested[key]; + } + return object2; + } + var _baseSet = baseSet; + function set(object2, path, value) { + return object2 == null ? object2 : _baseSet(object2, path, value); + } + var set_1 = set; + function copyArray(source, array2) { + var index = -1, length = source.length; + array2 || (array2 = Array(length)); + while (++index < length) { + array2[index] = source[index]; + } + return array2; + } + var _copyArray = copyArray; + function toPath(value) { + if (isArray_1(value)) { + return _arrayMap(value, _toKey); + } + return isSymbol_1(value) ? [value] : _copyArray(_stringToPath(toString_1(value))); + } + var toPath_1 = toPath; + var define$2 = { + // access data field + data: function data2(params) { + var defaults2 = { + field: "data", + bindingEvent: "data", + allowBinding: false, + allowSetting: false, + allowGetting: false, + settingEvent: "data", + settingTriggersEvent: false, + triggerFnName: "trigger", + immutableKeys: {}, + // key => true if immutable + updateStyle: false, + beforeGet: function beforeGet(self2) { + }, + beforeSet: function beforeSet(self2, obj) { + }, + onSet: function onSet(self2) { + }, + canSet: function canSet(self2) { + return true; + } + }; + params = extend({}, defaults2, params); + return function dataImpl(name, value) { + var p2 = params; + var self2 = this; + var selfIsArrayLike = self2.length !== void 0; + var all = selfIsArrayLike ? self2 : [self2]; + var single = selfIsArrayLike ? self2[0] : self2; + if (string(name)) { + var isPathLike = name.indexOf(".") !== -1; + var path = isPathLike && toPath_1(name); + if (p2.allowGetting && value === void 0) { + var ret; + if (single) { + p2.beforeGet(single); + if (path && single._private[p2.field][name] === void 0) { + ret = get_1(single._private[p2.field], path); + } else { + ret = single._private[p2.field][name]; + } + } + return ret; + } else if (p2.allowSetting && value !== void 0) { + var valid2 = !p2.immutableKeys[name]; + if (valid2) { + var change = _defineProperty$1({}, name, value); + p2.beforeSet(self2, change); + for (var i2 = 0, l = all.length; i2 < l; i2++) { + var ele = all[i2]; + if (p2.canSet(ele)) { + if (path && single._private[p2.field][name] === void 0) { + set_1(ele._private[p2.field], path, value); + } else { + ele._private[p2.field][name] = value; + } + } + } + if (p2.updateStyle) { + self2.updateStyle(); + } + p2.onSet(self2); + if (p2.settingTriggersEvent) { + self2[p2.triggerFnName](p2.settingEvent); + } + } + } + } else if (p2.allowSetting && plainObject(name)) { + var obj = name; + var k, v; + var keys = Object.keys(obj); + p2.beforeSet(self2, obj); + for (var _i = 0; _i < keys.length; _i++) { + k = keys[_i]; + v = obj[k]; + var _valid = !p2.immutableKeys[k]; + if (_valid) { + for (var j = 0; j < all.length; j++) { + var _ele = all[j]; + if (p2.canSet(_ele)) { + _ele._private[p2.field][k] = v; + } + } + } + } + if (p2.updateStyle) { + self2.updateStyle(); + } + p2.onSet(self2); + if (p2.settingTriggersEvent) { + self2[p2.triggerFnName](p2.settingEvent); + } + } else if (p2.allowBinding && fn$6(name)) { + var fn2 = name; + self2.on(p2.bindingEvent, fn2); + } else if (p2.allowGetting && name === void 0) { + var _ret; + if (single) { + p2.beforeGet(single); + _ret = single._private[p2.field]; + } + return _ret; + } + return self2; + }; + }, + // data + // remove data field + removeData: function removeData(params) { + var defaults2 = { + field: "data", + event: "data", + triggerFnName: "trigger", + triggerEvent: false, + immutableKeys: {} + // key => true if immutable + }; + params = extend({}, defaults2, params); + return function removeDataImpl(names) { + var p2 = params; + var self2 = this; + var selfIsArrayLike = self2.length !== void 0; + var all = selfIsArrayLike ? self2 : [self2]; + if (string(names)) { + var keys = names.split(/\s+/); + var l = keys.length; + for (var i2 = 0; i2 < l; i2++) { + var key = keys[i2]; + if (emptyString(key)) { + continue; + } + var valid2 = !p2.immutableKeys[key]; + if (valid2) { + for (var i_a = 0, l_a = all.length; i_a < l_a; i_a++) { + all[i_a]._private[p2.field][key] = void 0; + } + } + } + if (p2.triggerEvent) { + self2[p2.triggerFnName](p2.event); + } + } else if (names === void 0) { + for (var _i_a = 0, _l_a = all.length; _i_a < _l_a; _i_a++) { + var _privateFields = all[_i_a]._private[p2.field]; + var _keys = Object.keys(_privateFields); + for (var _i2 = 0; _i2 < _keys.length; _i2++) { + var _key = _keys[_i2]; + var validKeyToDelete = !p2.immutableKeys[_key]; + if (validKeyToDelete) { + _privateFields[_key] = void 0; + } + } + } + if (p2.triggerEvent) { + self2[p2.triggerFnName](p2.event); + } + } + return self2; + }; + } + // removeData + }; + var define$1 = { + eventAliasesOn: function eventAliasesOn(proto) { + var p2 = proto; + p2.addListener = p2.listen = p2.bind = p2.on; + p2.unlisten = p2.unbind = p2.off = p2.removeListener; + p2.trigger = p2.emit; + p2.pon = p2.promiseOn = function(events, selector) { + var self2 = this; + var args = Array.prototype.slice.call(arguments, 0); + return new Promise$1(function(resolve2, reject) { + var callback = function callback2(e) { + self2.off.apply(self2, offArgs); + resolve2(e); + }; + var onArgs = args.concat([callback]); + var offArgs = onArgs.concat([]); + self2.on.apply(self2, onArgs); + }); + }; + } + }; + var define = {}; + [define$3, define$2, define$1].forEach(function(m) { + extend(define, m); + }); + var elesfn$i = { + animate: define.animate(), + animation: define.animation(), + animated: define.animated(), + clearQueue: define.clearQueue(), + delay: define.delay(), + delayAnimation: define.delayAnimation(), + stop: define.stop() + }; + var elesfn$h = { + classes: function classes(_classes) { + var self2 = this; + if (_classes === void 0) { + var ret = []; + self2[0]._private.classes.forEach(function(cls2) { + return ret.push(cls2); + }); + return ret; + } else if (!array(_classes)) { + _classes = (_classes || "").match(/\S+/g) || []; + } + var changed = []; + var classesSet = new Set$1(_classes); + for (var j = 0; j < self2.length; j++) { + var ele = self2[j]; + var _p = ele._private; + var eleClasses = _p.classes; + var changedEle = false; + for (var i2 = 0; i2 < _classes.length; i2++) { + var cls = _classes[i2]; + var eleHasClass = eleClasses.has(cls); + if (!eleHasClass) { + changedEle = true; + break; + } + } + if (!changedEle) { + changedEle = eleClasses.size !== _classes.length; + } + if (changedEle) { + _p.classes = classesSet; + changed.push(ele); + } + } + if (changed.length > 0) { + this.spawn(changed).updateStyle().emit("class"); + } + return self2; + }, + addClass: function addClass(classes) { + return this.toggleClass(classes, true); + }, + hasClass: function hasClass(className) { + var ele = this[0]; + return ele != null && ele._private.classes.has(className); + }, + toggleClass: function toggleClass(classes, toggle) { + if (!array(classes)) { + classes = classes.match(/\S+/g) || []; + } + var self2 = this; + var toggleUndefd = toggle === void 0; + var changed = []; + for (var i2 = 0, il = self2.length; i2 < il; i2++) { + var ele = self2[i2]; + var eleClasses = ele._private.classes; + var changedEle = false; + for (var j = 0; j < classes.length; j++) { + var cls = classes[j]; + var hasClass = eleClasses.has(cls); + var changedNow = false; + if (toggle || toggleUndefd && !hasClass) { + eleClasses.add(cls); + changedNow = true; + } else if (!toggle || toggleUndefd && hasClass) { + eleClasses["delete"](cls); + changedNow = true; + } + if (!changedEle && changedNow) { + changed.push(ele); + changedEle = true; + } + } + } + if (changed.length > 0) { + this.spawn(changed).updateStyle().emit("class"); + } + return self2; + }, + removeClass: function removeClass(classes) { + return this.toggleClass(classes, false); + }, + flashClass: function flashClass(classes, duration) { + var self2 = this; + if (duration == null) { + duration = 250; + } else if (duration === 0) { + return self2; + } + self2.addClass(classes); + setTimeout(function() { + self2.removeClass(classes); + }, duration); + return self2; + } + }; + elesfn$h.className = elesfn$h.classNames = elesfn$h.classes; + var tokens = { + metaChar: "[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]", + // chars we need to escape in let names, etc + comparatorOp: "=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=", + // binary comparison op (used in data selectors) + boolOp: "\\?|\\!|\\^", + // boolean (unary) operators (used in data selectors) + string: `"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`, + // string literals (used in data selectors) -- doublequotes | singlequotes + number, + // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123 + meta: "degree|indegree|outdegree", + // allowed metadata fields (i.e. allowed functions to use from Collection) + separator: "\\s*,\\s*", + // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass + descendant: "\\s+", + child: "\\s+>\\s+", + subject: "\\$", + group: "node|edge|\\*", + directedEdge: "\\s+->\\s+", + undirectedEdge: "\\s+<->\\s+" + }; + tokens.variable = "(?:[\\w-.]|(?:\\\\" + tokens.metaChar + "))+"; + tokens.className = "(?:[\\w-]|(?:\\\\" + tokens.metaChar + "))+"; + tokens.value = tokens.string + "|" + tokens.number; + tokens.id = tokens.variable; + (function() { + var ops, op, i2; + ops = tokens.comparatorOp.split("|"); + for (i2 = 0; i2 < ops.length; i2++) { + op = ops[i2]; + tokens.comparatorOp += "|@" + op; + } + ops = tokens.comparatorOp.split("|"); + for (i2 = 0; i2 < ops.length; i2++) { + op = ops[i2]; + if (op.indexOf("!") >= 0) { + continue; + } + if (op === "=") { + continue; + } + tokens.comparatorOp += "|\\!" + op; + } + })(); + var newQuery = function newQuery2() { + return { + checks: [] + }; + }; + var Type = { + /** E.g. node */ + GROUP: 0, + /** A collection of elements */ + COLLECTION: 1, + /** A filter(ele) function */ + FILTER: 2, + /** E.g. [foo > 1] */ + DATA_COMPARE: 3, + /** E.g. [foo] */ + DATA_EXIST: 4, + /** E.g. [?foo] */ + DATA_BOOL: 5, + /** E.g. [[degree > 2]] */ + META_COMPARE: 6, + /** E.g. :selected */ + STATE: 7, + /** E.g. #foo */ + ID: 8, + /** E.g. .foo */ + CLASS: 9, + /** E.g. #foo <-> #bar */ + UNDIRECTED_EDGE: 10, + /** E.g. #foo -> #bar */ + DIRECTED_EDGE: 11, + /** E.g. $#foo -> #bar */ + NODE_SOURCE: 12, + /** E.g. #foo -> $#bar */ + NODE_TARGET: 13, + /** E.g. $#foo <-> #bar */ + NODE_NEIGHBOR: 14, + /** E.g. #foo > #bar */ + CHILD: 15, + /** E.g. #foo #bar */ + DESCENDANT: 16, + /** E.g. $#foo > #bar */ + PARENT: 17, + /** E.g. $#foo #bar */ + ANCESTOR: 18, + /** E.g. #foo > $bar > #baz */ + COMPOUND_SPLIT: 19, + /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */ + TRUE: 20 + }; + var stateSelectors = [{ + selector: ":selected", + matches: function matches2(ele) { + return ele.selected(); + } + }, { + selector: ":unselected", + matches: function matches2(ele) { + return !ele.selected(); + } + }, { + selector: ":selectable", + matches: function matches2(ele) { + return ele.selectable(); + } + }, { + selector: ":unselectable", + matches: function matches2(ele) { + return !ele.selectable(); + } + }, { + selector: ":locked", + matches: function matches2(ele) { + return ele.locked(); + } + }, { + selector: ":unlocked", + matches: function matches2(ele) { + return !ele.locked(); + } + }, { + selector: ":visible", + matches: function matches2(ele) { + return ele.visible(); + } + }, { + selector: ":hidden", + matches: function matches2(ele) { + return !ele.visible(); + } + }, { + selector: ":transparent", + matches: function matches2(ele) { + return ele.transparent(); + } + }, { + selector: ":grabbed", + matches: function matches2(ele) { + return ele.grabbed(); + } + }, { + selector: ":free", + matches: function matches2(ele) { + return !ele.grabbed(); + } + }, { + selector: ":removed", + matches: function matches2(ele) { + return ele.removed(); + } + }, { + selector: ":inside", + matches: function matches2(ele) { + return !ele.removed(); + } + }, { + selector: ":grabbable", + matches: function matches2(ele) { + return ele.grabbable(); + } + }, { + selector: ":ungrabbable", + matches: function matches2(ele) { + return !ele.grabbable(); + } + }, { + selector: ":animated", + matches: function matches2(ele) { + return ele.animated(); + } + }, { + selector: ":unanimated", + matches: function matches2(ele) { + return !ele.animated(); + } + }, { + selector: ":parent", + matches: function matches2(ele) { + return ele.isParent(); + } + }, { + selector: ":childless", + matches: function matches2(ele) { + return ele.isChildless(); + } + }, { + selector: ":child", + matches: function matches2(ele) { + return ele.isChild(); + } + }, { + selector: ":orphan", + matches: function matches2(ele) { + return ele.isOrphan(); + } + }, { + selector: ":nonorphan", + matches: function matches2(ele) { + return ele.isChild(); + } + }, { + selector: ":compound", + matches: function matches2(ele) { + if (ele.isNode()) { + return ele.isParent(); + } else { + return ele.source().isParent() || ele.target().isParent(); + } + } + }, { + selector: ":loop", + matches: function matches2(ele) { + return ele.isLoop(); + } + }, { + selector: ":simple", + matches: function matches2(ele) { + return ele.isSimple(); + } + }, { + selector: ":active", + matches: function matches2(ele) { + return ele.active(); + } + }, { + selector: ":inactive", + matches: function matches2(ele) { + return !ele.active(); + } + }, { + selector: ":backgrounding", + matches: function matches2(ele) { + return ele.backgrounding(); + } + }, { + selector: ":nonbackgrounding", + matches: function matches2(ele) { + return !ele.backgrounding(); + } + }].sort(function(a, b) { + return descending(a.selector, b.selector); + }); + var lookup = function() { + var selToFn = {}; + var s; + for (var i2 = 0; i2 < stateSelectors.length; i2++) { + s = stateSelectors[i2]; + selToFn[s.selector] = s.matches; + } + return selToFn; + }(); + var stateSelectorMatches = function stateSelectorMatches2(sel, ele) { + return lookup[sel](ele); + }; + var stateSelectorRegex = "(" + stateSelectors.map(function(s) { + return s.selector; + }).join("|") + ")"; + var cleanMetaChars = function cleanMetaChars2(str) { + return str.replace(new RegExp("\\\\(" + tokens.metaChar + ")", "g"), function(match2, $1) { + return $1; + }); + }; + var replaceLastQuery = function replaceLastQuery2(selector, examiningQuery, replacementQuery) { + selector[selector.length - 1] = replacementQuery; + }; + var exprs = [{ + name: "group", + // just used for identifying when debugging + query: true, + regex: "(" + tokens.group + ")", + populate: function populate(selector, query, _ref) { + var _ref2 = _slicedToArray(_ref, 1), group = _ref2[0]; + query.checks.push({ + type: Type.GROUP, + value: group === "*" ? group : group + "s" + }); + } + }, { + name: "state", + query: true, + regex: stateSelectorRegex, + populate: function populate(selector, query, _ref3) { + var _ref4 = _slicedToArray(_ref3, 1), state = _ref4[0]; + query.checks.push({ + type: Type.STATE, + value: state + }); + } + }, { + name: "id", + query: true, + regex: "\\#(" + tokens.id + ")", + populate: function populate(selector, query, _ref5) { + var _ref6 = _slicedToArray(_ref5, 1), id = _ref6[0]; + query.checks.push({ + type: Type.ID, + value: cleanMetaChars(id) + }); + } + }, { + name: "className", + query: true, + regex: "\\.(" + tokens.className + ")", + populate: function populate(selector, query, _ref7) { + var _ref8 = _slicedToArray(_ref7, 1), className = _ref8[0]; + query.checks.push({ + type: Type.CLASS, + value: cleanMetaChars(className) + }); + } + }, { + name: "dataExists", + query: true, + regex: "\\[\\s*(" + tokens.variable + ")\\s*\\]", + populate: function populate(selector, query, _ref9) { + var _ref10 = _slicedToArray(_ref9, 1), variable = _ref10[0]; + query.checks.push({ + type: Type.DATA_EXIST, + field: cleanMetaChars(variable) + }); + } + }, { + name: "dataCompare", + query: true, + regex: "\\[\\s*(" + tokens.variable + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.value + ")\\s*\\]", + populate: function populate(selector, query, _ref11) { + var _ref12 = _slicedToArray(_ref11, 3), variable = _ref12[0], comparatorOp = _ref12[1], value = _ref12[2]; + var valueIsString = new RegExp("^" + tokens.string + "$").exec(value) != null; + if (valueIsString) { + value = value.substring(1, value.length - 1); + } else { + value = parseFloat(value); + } + query.checks.push({ + type: Type.DATA_COMPARE, + field: cleanMetaChars(variable), + operator: comparatorOp, + value + }); + } + }, { + name: "dataBool", + query: true, + regex: "\\[\\s*(" + tokens.boolOp + ")\\s*(" + tokens.variable + ")\\s*\\]", + populate: function populate(selector, query, _ref13) { + var _ref14 = _slicedToArray(_ref13, 2), boolOp = _ref14[0], variable = _ref14[1]; + query.checks.push({ + type: Type.DATA_BOOL, + field: cleanMetaChars(variable), + operator: boolOp + }); + } + }, { + name: "metaCompare", + query: true, + regex: "\\[\\[\\s*(" + tokens.meta + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.number + ")\\s*\\]\\]", + populate: function populate(selector, query, _ref15) { + var _ref16 = _slicedToArray(_ref15, 3), meta2 = _ref16[0], comparatorOp = _ref16[1], number2 = _ref16[2]; + query.checks.push({ + type: Type.META_COMPARE, + field: cleanMetaChars(meta2), + operator: comparatorOp, + value: parseFloat(number2) + }); + } + }, { + name: "nextQuery", + separator: true, + regex: tokens.separator, + populate: function populate(selector, query) { + var currentSubject = selector.currentSubject; + var edgeCount = selector.edgeCount; + var compoundCount = selector.compoundCount; + var lastQ = selector[selector.length - 1]; + if (currentSubject != null) { + lastQ.subject = currentSubject; + selector.currentSubject = null; + } + lastQ.edgeCount = edgeCount; + lastQ.compoundCount = compoundCount; + selector.edgeCount = 0; + selector.compoundCount = 0; + var nextQuery = selector[selector.length++] = newQuery(); + return nextQuery; + } + }, { + name: "directedEdge", + separator: true, + regex: tokens.directedEdge, + populate: function populate(selector, query) { + if (selector.currentSubject == null) { + var edgeQuery = newQuery(); + var source = query; + var target = newQuery(); + edgeQuery.checks.push({ + type: Type.DIRECTED_EDGE, + source, + target + }); + replaceLastQuery(selector, query, edgeQuery); + selector.edgeCount++; + return target; + } else { + var srcTgtQ = newQuery(); + var _source = query; + var _target = newQuery(); + srcTgtQ.checks.push({ + type: Type.NODE_SOURCE, + source: _source, + target: _target + }); + replaceLastQuery(selector, query, srcTgtQ); + selector.edgeCount++; + return _target; + } + } + }, { + name: "undirectedEdge", + separator: true, + regex: tokens.undirectedEdge, + populate: function populate(selector, query) { + if (selector.currentSubject == null) { + var edgeQuery = newQuery(); + var source = query; + var target = newQuery(); + edgeQuery.checks.push({ + type: Type.UNDIRECTED_EDGE, + nodes: [source, target] + }); + replaceLastQuery(selector, query, edgeQuery); + selector.edgeCount++; + return target; + } else { + var nhoodQ = newQuery(); + var node = query; + var neighbor = newQuery(); + nhoodQ.checks.push({ + type: Type.NODE_NEIGHBOR, + node, + neighbor + }); + replaceLastQuery(selector, query, nhoodQ); + return neighbor; + } + } + }, { + name: "child", + separator: true, + regex: tokens.child, + populate: function populate(selector, query) { + if (selector.currentSubject == null) { + var parentChildQuery = newQuery(); + var child = newQuery(); + var parent = selector[selector.length - 1]; + parentChildQuery.checks.push({ + type: Type.CHILD, + parent, + child + }); + replaceLastQuery(selector, query, parentChildQuery); + selector.compoundCount++; + return child; + } else if (selector.currentSubject === query) { + var compound = newQuery(); + var left = selector[selector.length - 1]; + var right = newQuery(); + var subject = newQuery(); + var _child = newQuery(); + var _parent = newQuery(); + compound.checks.push({ + type: Type.COMPOUND_SPLIT, + left, + right, + subject + }); + subject.checks = query.checks; + query.checks = [{ + type: Type.TRUE + }]; + _parent.checks.push({ + type: Type.TRUE + }); + right.checks.push({ + type: Type.PARENT, + // type is swapped on right side queries + parent: _parent, + child: _child + // empty for now + }); + replaceLastQuery(selector, left, compound); + selector.currentSubject = subject; + selector.compoundCount++; + return _child; + } else { + var _parent2 = newQuery(); + var _child2 = newQuery(); + var pcQChecks = [{ + type: Type.PARENT, + parent: _parent2, + child: _child2 + }]; + _parent2.checks = query.checks; + query.checks = pcQChecks; + selector.compoundCount++; + return _child2; + } + } + }, { + name: "descendant", + separator: true, + regex: tokens.descendant, + populate: function populate(selector, query) { + if (selector.currentSubject == null) { + var ancChQuery = newQuery(); + var descendant = newQuery(); + var ancestor = selector[selector.length - 1]; + ancChQuery.checks.push({ + type: Type.DESCENDANT, + ancestor, + descendant + }); + replaceLastQuery(selector, query, ancChQuery); + selector.compoundCount++; + return descendant; + } else if (selector.currentSubject === query) { + var compound = newQuery(); + var left = selector[selector.length - 1]; + var right = newQuery(); + var subject = newQuery(); + var _descendant = newQuery(); + var _ancestor = newQuery(); + compound.checks.push({ + type: Type.COMPOUND_SPLIT, + left, + right, + subject + }); + subject.checks = query.checks; + query.checks = [{ + type: Type.TRUE + }]; + _ancestor.checks.push({ + type: Type.TRUE + }); + right.checks.push({ + type: Type.ANCESTOR, + // type is swapped on right side queries + ancestor: _ancestor, + descendant: _descendant + // empty for now + }); + replaceLastQuery(selector, left, compound); + selector.currentSubject = subject; + selector.compoundCount++; + return _descendant; + } else { + var _ancestor2 = newQuery(); + var _descendant2 = newQuery(); + var adQChecks = [{ + type: Type.ANCESTOR, + ancestor: _ancestor2, + descendant: _descendant2 + }]; + _ancestor2.checks = query.checks; + query.checks = adQChecks; + selector.compoundCount++; + return _descendant2; + } + } + }, { + name: "subject", + modifier: true, + regex: tokens.subject, + populate: function populate(selector, query) { + if (selector.currentSubject != null && selector.currentSubject !== query) { + warn("Redefinition of subject in selector `" + selector.toString() + "`"); + return false; + } + selector.currentSubject = query; + var topQ = selector[selector.length - 1]; + var topChk = topQ.checks[0]; + var topType = topChk == null ? null : topChk.type; + if (topType === Type.DIRECTED_EDGE) { + topChk.type = Type.NODE_TARGET; + } else if (topType === Type.UNDIRECTED_EDGE) { + topChk.type = Type.NODE_NEIGHBOR; + topChk.node = topChk.nodes[1]; + topChk.neighbor = topChk.nodes[0]; + topChk.nodes = null; + } + } + }]; + exprs.forEach(function(e) { + return e.regexObj = new RegExp("^" + e.regex); + }); + var consumeExpr = function consumeExpr2(remaining) { + var expr; + var match2; + var name; + for (var j = 0; j < exprs.length; j++) { + var e = exprs[j]; + var n = e.name; + var m = remaining.match(e.regexObj); + if (m != null) { + match2 = m; + expr = e; + name = n; + var consumed = m[0]; + remaining = remaining.substring(consumed.length); + break; + } + } + return { + expr, + match: match2, + name, + remaining + }; + }; + var consumeWhitespace = function consumeWhitespace2(remaining) { + var match2 = remaining.match(/^\s+/); + if (match2) { + var consumed = match2[0]; + remaining = remaining.substring(consumed.length); + } + return remaining; + }; + var parse = function parse2(selector) { + var self2 = this; + var remaining = self2.inputText = selector; + var currentQuery = self2[0] = newQuery(); + self2.length = 1; + remaining = consumeWhitespace(remaining); + for (; ; ) { + var exprInfo = consumeExpr(remaining); + if (exprInfo.expr == null) { + warn("The selector `" + selector + "`is invalid"); + return false; + } else { + var args = exprInfo.match.slice(1); + var ret = exprInfo.expr.populate(self2, currentQuery, args); + if (ret === false) { + return false; + } else if (ret != null) { + currentQuery = ret; + } + } + remaining = exprInfo.remaining; + if (remaining.match(/^\s*$/)) { + break; + } + } + var lastQ = self2[self2.length - 1]; + if (self2.currentSubject != null) { + lastQ.subject = self2.currentSubject; + } + lastQ.edgeCount = self2.edgeCount; + lastQ.compoundCount = self2.compoundCount; + for (var i2 = 0; i2 < self2.length; i2++) { + var q = self2[i2]; + if (q.compoundCount > 0 && q.edgeCount > 0) { + warn("The selector `" + selector + "` is invalid because it uses both a compound selector and an edge selector"); + return false; + } + if (q.edgeCount > 1) { + warn("The selector `" + selector + "` is invalid because it uses multiple edge selectors"); + return false; + } else if (q.edgeCount === 1) { + warn("The selector `" + selector + "` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes."); + } + } + return true; + }; + var toString = function toString2() { + if (this.toStringCache != null) { + return this.toStringCache; + } + var clean = function clean2(obj) { + if (obj == null) { + return ""; + } else { + return obj; + } + }; + var cleanVal = function cleanVal2(val) { + if (string(val)) { + return '"' + val + '"'; + } else { + return clean(val); + } + }; + var space = function space2(val) { + return " " + val + " "; + }; + var checkToString = function checkToString2(check, subject) { + var type = check.type, value = check.value; + switch (type) { + case Type.GROUP: { + var group = clean(value); + return group.substring(0, group.length - 1); + } + case Type.DATA_COMPARE: { + var field = check.field, operator = check.operator; + return "[" + field + space(clean(operator)) + cleanVal(value) + "]"; + } + case Type.DATA_BOOL: { + var _operator = check.operator, _field = check.field; + return "[" + clean(_operator) + _field + "]"; + } + case Type.DATA_EXIST: { + var _field2 = check.field; + return "[" + _field2 + "]"; + } + case Type.META_COMPARE: { + var _operator2 = check.operator, _field3 = check.field; + return "[[" + _field3 + space(clean(_operator2)) + cleanVal(value) + "]]"; + } + case Type.STATE: { + return value; + } + case Type.ID: { + return "#" + value; + } + case Type.CLASS: { + return "." + value; + } + case Type.PARENT: + case Type.CHILD: { + return queryToString(check.parent, subject) + space(">") + queryToString(check.child, subject); + } + case Type.ANCESTOR: + case Type.DESCENDANT: { + return queryToString(check.ancestor, subject) + " " + queryToString(check.descendant, subject); + } + case Type.COMPOUND_SPLIT: { + var lhs = queryToString(check.left, subject); + var sub = queryToString(check.subject, subject); + var rhs = queryToString(check.right, subject); + return lhs + (lhs.length > 0 ? " " : "") + sub + rhs; + } + case Type.TRUE: { + return ""; + } + } + }; + var queryToString = function queryToString2(query2, subject) { + return query2.checks.reduce(function(str2, chk, i3) { + return str2 + (subject === query2 && i3 === 0 ? "$" : "") + checkToString(chk, subject); + }, ""); + }; + var str = ""; + for (var i2 = 0; i2 < this.length; i2++) { + var query = this[i2]; + str += queryToString(query, query.subject); + if (this.length > 1 && i2 < this.length - 1) { + str += ", "; + } + } + this.toStringCache = str; + return str; + }; + var parse$1 = { + parse, + toString + }; + var valCmp = function valCmp2(fieldVal, operator, value) { + var matches2; + var isFieldStr = string(fieldVal); + var isFieldNum = number$1(fieldVal); + var isValStr = string(value); + var fieldStr, valStr; + var caseInsensitive = false; + var notExpr = false; + var isIneqCmp = false; + if (operator.indexOf("!") >= 0) { + operator = operator.replace("!", ""); + notExpr = true; + } + if (operator.indexOf("@") >= 0) { + operator = operator.replace("@", ""); + caseInsensitive = true; + } + if (isFieldStr || isValStr || caseInsensitive) { + fieldStr = !isFieldStr && !isFieldNum ? "" : "" + fieldVal; + valStr = "" + value; + } + if (caseInsensitive) { + fieldVal = fieldStr = fieldStr.toLowerCase(); + value = valStr = valStr.toLowerCase(); + } + switch (operator) { + case "*=": + matches2 = fieldStr.indexOf(valStr) >= 0; + break; + case "$=": + matches2 = fieldStr.indexOf(valStr, fieldStr.length - valStr.length) >= 0; + break; + case "^=": + matches2 = fieldStr.indexOf(valStr) === 0; + break; + case "=": + matches2 = fieldVal === value; + break; + case ">": + isIneqCmp = true; + matches2 = fieldVal > value; + break; + case ">=": + isIneqCmp = true; + matches2 = fieldVal >= value; + break; + case "<": + isIneqCmp = true; + matches2 = fieldVal < value; + break; + case "<=": + isIneqCmp = true; + matches2 = fieldVal <= value; + break; + default: + matches2 = false; + break; + } + if (notExpr && (fieldVal != null || !isIneqCmp)) { + matches2 = !matches2; + } + return matches2; + }; + var boolCmp = function boolCmp2(fieldVal, operator) { + switch (operator) { + case "?": + return fieldVal ? true : false; + case "!": + return fieldVal ? false : true; + case "^": + return fieldVal === void 0; + } + }; + var existCmp = function existCmp2(fieldVal) { + return fieldVal !== void 0; + }; + var data$1 = function data2(ele, field) { + return ele.data(field); + }; + var meta = function meta2(ele, field) { + return ele[field](); + }; + var match = []; + var matches$1 = function matches2(query, ele) { + return query.checks.every(function(chk) { + return match[chk.type](chk, ele); + }); + }; + match[Type.GROUP] = function(check, ele) { + var group = check.value; + return group === "*" || group === ele.group(); + }; + match[Type.STATE] = function(check, ele) { + var stateSelector = check.value; + return stateSelectorMatches(stateSelector, ele); + }; + match[Type.ID] = function(check, ele) { + var id = check.value; + return ele.id() === id; + }; + match[Type.CLASS] = function(check, ele) { + var cls = check.value; + return ele.hasClass(cls); + }; + match[Type.META_COMPARE] = function(check, ele) { + var field = check.field, operator = check.operator, value = check.value; + return valCmp(meta(ele, field), operator, value); + }; + match[Type.DATA_COMPARE] = function(check, ele) { + var field = check.field, operator = check.operator, value = check.value; + return valCmp(data$1(ele, field), operator, value); + }; + match[Type.DATA_BOOL] = function(check, ele) { + var field = check.field, operator = check.operator; + return boolCmp(data$1(ele, field), operator); + }; + match[Type.DATA_EXIST] = function(check, ele) { + var field = check.field; + check.operator; + return existCmp(data$1(ele, field)); + }; + match[Type.UNDIRECTED_EDGE] = function(check, ele) { + var qA = check.nodes[0]; + var qB = check.nodes[1]; + var src = ele.source(); + var tgt = ele.target(); + return matches$1(qA, src) && matches$1(qB, tgt) || matches$1(qB, src) && matches$1(qA, tgt); + }; + match[Type.NODE_NEIGHBOR] = function(check, ele) { + return matches$1(check.node, ele) && ele.neighborhood().some(function(n) { + return n.isNode() && matches$1(check.neighbor, n); + }); + }; + match[Type.DIRECTED_EDGE] = function(check, ele) { + return matches$1(check.source, ele.source()) && matches$1(check.target, ele.target()); + }; + match[Type.NODE_SOURCE] = function(check, ele) { + return matches$1(check.source, ele) && ele.outgoers().some(function(n) { + return n.isNode() && matches$1(check.target, n); + }); + }; + match[Type.NODE_TARGET] = function(check, ele) { + return matches$1(check.target, ele) && ele.incomers().some(function(n) { + return n.isNode() && matches$1(check.source, n); + }); + }; + match[Type.CHILD] = function(check, ele) { + return matches$1(check.child, ele) && matches$1(check.parent, ele.parent()); + }; + match[Type.PARENT] = function(check, ele) { + return matches$1(check.parent, ele) && ele.children().some(function(c) { + return matches$1(check.child, c); + }); + }; + match[Type.DESCENDANT] = function(check, ele) { + return matches$1(check.descendant, ele) && ele.ancestors().some(function(a) { + return matches$1(check.ancestor, a); + }); + }; + match[Type.ANCESTOR] = function(check, ele) { + return matches$1(check.ancestor, ele) && ele.descendants().some(function(d) { + return matches$1(check.descendant, d); + }); + }; + match[Type.COMPOUND_SPLIT] = function(check, ele) { + return matches$1(check.subject, ele) && matches$1(check.left, ele) && matches$1(check.right, ele); + }; + match[Type.TRUE] = function() { + return true; + }; + match[Type.COLLECTION] = function(check, ele) { + var collection2 = check.value; + return collection2.has(ele); + }; + match[Type.FILTER] = function(check, ele) { + var filter2 = check.value; + return filter2(ele); + }; + var filter = function filter2(collection2) { + var self2 = this; + if (self2.length === 1 && self2[0].checks.length === 1 && self2[0].checks[0].type === Type.ID) { + return collection2.getElementById(self2[0].checks[0].value).collection(); + } + var selectorFunction = function selectorFunction2(element2) { + for (var j = 0; j < self2.length; j++) { + var query = self2[j]; + if (matches$1(query, element2)) { + return true; + } + } + return false; + }; + if (self2.text() == null) { + selectorFunction = function selectorFunction2() { + return true; + }; + } + return collection2.filter(selectorFunction); + }; + var matches = function matches2(ele) { + var self2 = this; + for (var j = 0; j < self2.length; j++) { + var query = self2[j]; + if (matches$1(query, ele)) { + return true; + } + } + return false; + }; + var matching = { + matches, + filter + }; + var Selector = function Selector2(selector) { + this.inputText = selector; + this.currentSubject = null; + this.compoundCount = 0; + this.edgeCount = 0; + this.length = 0; + if (selector == null || string(selector) && selector.match(/^\s*$/)) + ; + else if (elementOrCollection(selector)) { + this.addQuery({ + checks: [{ + type: Type.COLLECTION, + value: selector.collection() + }] + }); + } else if (fn$6(selector)) { + this.addQuery({ + checks: [{ + type: Type.FILTER, + value: selector + }] + }); + } else if (string(selector)) { + if (!this.parse(selector)) { + this.invalid = true; + } + } else { + error("A selector must be created from a string; found "); + } + }; + var selfn = Selector.prototype; + [parse$1, matching].forEach(function(p2) { + return extend(selfn, p2); + }); + selfn.text = function() { + return this.inputText; + }; + selfn.size = function() { + return this.length; + }; + selfn.eq = function(i2) { + return this[i2]; + }; + selfn.sameText = function(otherSel) { + return !this.invalid && !otherSel.invalid && this.text() === otherSel.text(); + }; + selfn.addQuery = function(q) { + this[this.length++] = q; + }; + selfn.selector = selfn.toString; + var elesfn$g = { + allAre: function allAre(selector) { + var selObj = new Selector(selector); + return this.every(function(ele) { + return selObj.matches(ele); + }); + }, + is: function is(selector) { + var selObj = new Selector(selector); + return this.some(function(ele) { + return selObj.matches(ele); + }); + }, + some: function some(fn2, thisArg) { + for (var i2 = 0; i2 < this.length; i2++) { + var ret = !thisArg ? fn2(this[i2], i2, this) : fn2.apply(thisArg, [this[i2], i2, this]); + if (ret) { + return true; + } + } + return false; + }, + every: function every(fn2, thisArg) { + for (var i2 = 0; i2 < this.length; i2++) { + var ret = !thisArg ? fn2(this[i2], i2, this) : fn2.apply(thisArg, [this[i2], i2, this]); + if (!ret) { + return false; + } + } + return true; + }, + same: function same(collection2) { + if (this === collection2) { + return true; + } + collection2 = this.cy().collection(collection2); + var thisLength = this.length; + var collectionLength = collection2.length; + if (thisLength !== collectionLength) { + return false; + } + if (thisLength === 1) { + return this[0] === collection2[0]; + } + return this.every(function(ele) { + return collection2.hasElementWithId(ele.id()); + }); + }, + anySame: function anySame(collection2) { + collection2 = this.cy().collection(collection2); + return this.some(function(ele) { + return collection2.hasElementWithId(ele.id()); + }); + }, + allAreNeighbors: function allAreNeighbors(collection2) { + collection2 = this.cy().collection(collection2); + var nhood = this.neighborhood(); + return collection2.every(function(ele) { + return nhood.hasElementWithId(ele.id()); + }); + }, + contains: function contains(collection2) { + collection2 = this.cy().collection(collection2); + var self2 = this; + return collection2.every(function(ele) { + return self2.hasElementWithId(ele.id()); + }); + } + }; + elesfn$g.allAreNeighbours = elesfn$g.allAreNeighbors; + elesfn$g.has = elesfn$g.contains; + elesfn$g.equal = elesfn$g.equals = elesfn$g.same; + var cache = function cache2(fn2, name) { + return function traversalCache(arg1, arg2, arg3, arg4) { + var selectorOrEles = arg1; + var eles = this; + var key; + if (selectorOrEles == null) { + key = ""; + } else if (elementOrCollection(selectorOrEles) && selectorOrEles.length === 1) { + key = selectorOrEles.id(); + } + if (eles.length === 1 && key) { + var _p = eles[0]._private; + var tch = _p.traversalCache = _p.traversalCache || {}; + var ch = tch[name] = tch[name] || []; + var hash = hashString(key); + var cacheHit = ch[hash]; + if (cacheHit) { + return cacheHit; + } else { + return ch[hash] = fn2.call(eles, arg1, arg2, arg3, arg4); + } + } else { + return fn2.call(eles, arg1, arg2, arg3, arg4); + } + }; + }; + var elesfn$f = { + parent: function parent(selector) { + var parents = []; + if (this.length === 1) { + var parent2 = this[0]._private.parent; + if (parent2) { + return parent2; + } + } + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + var _parent = ele._private.parent; + if (_parent) { + parents.push(_parent); + } + } + return this.spawn(parents, true).filter(selector); + }, + parents: function parents(selector) { + var parents2 = []; + var eles = this.parent(); + while (eles.nonempty()) { + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + parents2.push(ele); + } + eles = eles.parent(); + } + return this.spawn(parents2, true).filter(selector); + }, + commonAncestors: function commonAncestors(selector) { + var ancestors; + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + var parents = ele.parents(); + ancestors = ancestors || parents; + ancestors = ancestors.intersect(parents); + } + return ancestors.filter(selector); + }, + orphans: function orphans(selector) { + return this.stdFilter(function(ele) { + return ele.isOrphan(); + }).filter(selector); + }, + nonorphans: function nonorphans(selector) { + return this.stdFilter(function(ele) { + return ele.isChild(); + }).filter(selector); + }, + children: cache(function(selector) { + var children = []; + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + var eleChildren = ele._private.children; + for (var j = 0; j < eleChildren.length; j++) { + children.push(eleChildren[j]); + } + } + return this.spawn(children, true).filter(selector); + }, "children"), + siblings: function siblings(selector) { + return this.parent().children().not(this).filter(selector); + }, + isParent: function isParent() { + var ele = this[0]; + if (ele) { + return ele.isNode() && ele._private.children.length !== 0; + } + }, + isChildless: function isChildless() { + var ele = this[0]; + if (ele) { + return ele.isNode() && ele._private.children.length === 0; + } + }, + isChild: function isChild() { + var ele = this[0]; + if (ele) { + return ele.isNode() && ele._private.parent != null; + } + }, + isOrphan: function isOrphan() { + var ele = this[0]; + if (ele) { + return ele.isNode() && ele._private.parent == null; + } + }, + descendants: function descendants(selector) { + var elements2 = []; + function add(eles) { + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + elements2.push(ele); + if (ele.children().nonempty()) { + add(ele.children()); + } + } + } + add(this.children()); + return this.spawn(elements2, true).filter(selector); + } + }; + function forEachCompound(eles, fn2, includeSelf, recursiveStep) { + var q = []; + var did = new Set$1(); + var cy = eles.cy(); + var hasCompounds = cy.hasCompoundNodes(); + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + if (includeSelf) { + q.push(ele); + } else if (hasCompounds) { + recursiveStep(q, did, ele); + } + } + while (q.length > 0) { + var _ele = q.shift(); + fn2(_ele); + did.add(_ele.id()); + if (hasCompounds) { + recursiveStep(q, did, _ele); + } + } + return eles; + } + function addChildren(q, did, ele) { + if (ele.isParent()) { + var children = ele._private.children; + for (var i2 = 0; i2 < children.length; i2++) { + var child = children[i2]; + if (!did.has(child.id())) { + q.push(child); + } + } + } + } + elesfn$f.forEachDown = function(fn2) { + var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; + return forEachCompound(this, fn2, includeSelf, addChildren); + }; + function addParent(q, did, ele) { + if (ele.isChild()) { + var parent = ele._private.parent; + if (!did.has(parent.id())) { + q.push(parent); + } + } + } + elesfn$f.forEachUp = function(fn2) { + var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; + return forEachCompound(this, fn2, includeSelf, addParent); + }; + function addParentAndChildren(q, did, ele) { + addParent(q, did, ele); + addChildren(q, did, ele); + } + elesfn$f.forEachUpAndDown = function(fn2) { + var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; + return forEachCompound(this, fn2, includeSelf, addParentAndChildren); + }; + elesfn$f.ancestors = elesfn$f.parents; + var fn$5, elesfn$e; + fn$5 = elesfn$e = { + data: define.data({ + field: "data", + bindingEvent: "data", + allowBinding: true, + allowSetting: true, + settingEvent: "data", + settingTriggersEvent: true, + triggerFnName: "trigger", + allowGetting: true, + immutableKeys: { + "id": true, + "source": true, + "target": true, + "parent": true + }, + updateStyle: true + }), + removeData: define.removeData({ + field: "data", + event: "data", + triggerFnName: "trigger", + triggerEvent: true, + immutableKeys: { + "id": true, + "source": true, + "target": true, + "parent": true + }, + updateStyle: true + }), + scratch: define.data({ + field: "scratch", + bindingEvent: "scratch", + allowBinding: true, + allowSetting: true, + settingEvent: "scratch", + settingTriggersEvent: true, + triggerFnName: "trigger", + allowGetting: true, + updateStyle: true + }), + removeScratch: define.removeData({ + field: "scratch", + event: "scratch", + triggerFnName: "trigger", + triggerEvent: true, + updateStyle: true + }), + rscratch: define.data({ + field: "rscratch", + allowBinding: false, + allowSetting: true, + settingTriggersEvent: false, + allowGetting: true + }), + removeRscratch: define.removeData({ + field: "rscratch", + triggerEvent: false + }), + id: function id() { + var ele = this[0]; + if (ele) { + return ele._private.data.id; + } + } + }; + fn$5.attr = fn$5.data; + fn$5.removeAttr = fn$5.removeData; + var data = elesfn$e; + var elesfn$d = {}; + function defineDegreeFunction(callback) { + return function(includeLoops) { + var self2 = this; + if (includeLoops === void 0) { + includeLoops = true; + } + if (self2.length === 0) { + return; + } + if (self2.isNode() && !self2.removed()) { + var degree = 0; + var node = self2[0]; + var connectedEdges = node._private.edges; + for (var i2 = 0; i2 < connectedEdges.length; i2++) { + var edge = connectedEdges[i2]; + if (!includeLoops && edge.isLoop()) { + continue; + } + degree += callback(node, edge); + } + return degree; + } else { + return; + } + }; + } + extend(elesfn$d, { + degree: defineDegreeFunction(function(node, edge) { + if (edge.source().same(edge.target())) { + return 2; + } else { + return 1; + } + }), + indegree: defineDegreeFunction(function(node, edge) { + if (edge.target().same(node)) { + return 1; + } else { + return 0; + } + }), + outdegree: defineDegreeFunction(function(node, edge) { + if (edge.source().same(node)) { + return 1; + } else { + return 0; + } + }) + }); + function defineDegreeBoundsFunction(degreeFn, callback) { + return function(includeLoops) { + var ret; + var nodes2 = this.nodes(); + for (var i2 = 0; i2 < nodes2.length; i2++) { + var ele = nodes2[i2]; + var degree = ele[degreeFn](includeLoops); + if (degree !== void 0 && (ret === void 0 || callback(degree, ret))) { + ret = degree; + } + } + return ret; + }; + } + extend(elesfn$d, { + minDegree: defineDegreeBoundsFunction("degree", function(degree, min2) { + return degree < min2; + }), + maxDegree: defineDegreeBoundsFunction("degree", function(degree, max2) { + return degree > max2; + }), + minIndegree: defineDegreeBoundsFunction("indegree", function(degree, min2) { + return degree < min2; + }), + maxIndegree: defineDegreeBoundsFunction("indegree", function(degree, max2) { + return degree > max2; + }), + minOutdegree: defineDegreeBoundsFunction("outdegree", function(degree, min2) { + return degree < min2; + }), + maxOutdegree: defineDegreeBoundsFunction("outdegree", function(degree, max2) { + return degree > max2; + }) + }); + extend(elesfn$d, { + totalDegree: function totalDegree(includeLoops) { + var total = 0; + var nodes2 = this.nodes(); + for (var i2 = 0; i2 < nodes2.length; i2++) { + total += nodes2[i2].degree(includeLoops); + } + return total; + } + }); + var fn$4, elesfn$c; + var beforePositionSet = function beforePositionSet2(eles, newPos, silent) { + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + if (!ele.locked()) { + var oldPos = ele._private.position; + var delta = { + x: newPos.x != null ? newPos.x - oldPos.x : 0, + y: newPos.y != null ? newPos.y - oldPos.y : 0 + }; + if (ele.isParent() && !(delta.x === 0 && delta.y === 0)) { + ele.children().shift(delta, silent); + } + ele.dirtyBoundingBoxCache(); + } + } + }; + var positionDef = { + field: "position", + bindingEvent: "position", + allowBinding: true, + allowSetting: true, + settingEvent: "position", + settingTriggersEvent: true, + triggerFnName: "emitAndNotify", + allowGetting: true, + validKeys: ["x", "y"], + beforeGet: function beforeGet(ele) { + ele.updateCompoundBounds(); + }, + beforeSet: function beforeSet(eles, newPos) { + beforePositionSet(eles, newPos, false); + }, + onSet: function onSet(eles) { + eles.dirtyCompoundBoundsCache(); + }, + canSet: function canSet(ele) { + return !ele.locked(); + } + }; + fn$4 = elesfn$c = { + position: define.data(positionDef), + // position but no notification to renderer + silentPosition: define.data(extend({}, positionDef, { + allowBinding: false, + allowSetting: true, + settingTriggersEvent: false, + allowGetting: false, + beforeSet: function beforeSet(eles, newPos) { + beforePositionSet(eles, newPos, true); + }, + onSet: function onSet(eles) { + eles.dirtyCompoundBoundsCache(); + } + })), + positions: function positions(pos, silent) { + if (plainObject(pos)) { + if (silent) { + this.silentPosition(pos); + } else { + this.position(pos); + } + } else if (fn$6(pos)) { + var _fn = pos; + var cy = this.cy(); + cy.startBatch(); + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + var _pos = void 0; + if (_pos = _fn(ele, i2)) { + if (silent) { + ele.silentPosition(_pos); + } else { + ele.position(_pos); + } + } + } + cy.endBatch(); + } + return this; + }, + silentPositions: function silentPositions(pos) { + return this.positions(pos, true); + }, + shift: function shift(dim, val, silent) { + var delta; + if (plainObject(dim)) { + delta = { + x: number$1(dim.x) ? dim.x : 0, + y: number$1(dim.y) ? dim.y : 0 + }; + silent = val; + } else if (string(dim) && number$1(val)) { + delta = { + x: 0, + y: 0 + }; + delta[dim] = val; + } + if (delta != null) { + var cy = this.cy(); + cy.startBatch(); + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + if (cy.hasCompoundNodes() && ele.isChild() && ele.ancestors().anySame(this)) { + continue; + } + var pos = ele.position(); + var newPos = { + x: pos.x + delta.x, + y: pos.y + delta.y + }; + if (silent) { + ele.silentPosition(newPos); + } else { + ele.position(newPos); + } + } + cy.endBatch(); + } + return this; + }, + silentShift: function silentShift(dim, val) { + if (plainObject(dim)) { + this.shift(dim, true); + } else if (string(dim) && number$1(val)) { + this.shift(dim, val, true); + } + return this; + }, + // get/set the rendered (i.e. on screen) positon of the element + renderedPosition: function renderedPosition(dim, val) { + var ele = this[0]; + var cy = this.cy(); + var zoom = cy.zoom(); + var pan = cy.pan(); + var rpos = plainObject(dim) ? dim : void 0; + var setting = rpos !== void 0 || val !== void 0 && string(dim); + if (ele && ele.isNode()) { + if (setting) { + for (var i2 = 0; i2 < this.length; i2++) { + var _ele = this[i2]; + if (val !== void 0) { + _ele.position(dim, (val - pan[dim]) / zoom); + } else if (rpos !== void 0) { + _ele.position(renderedToModelPosition(rpos, zoom, pan)); + } + } + } else { + var pos = ele.position(); + rpos = modelToRenderedPosition(pos, zoom, pan); + if (dim === void 0) { + return rpos; + } else { + return rpos[dim]; + } + } + } else if (!setting) { + return void 0; + } + return this; + }, + // get/set the position relative to the parent + relativePosition: function relativePosition(dim, val) { + var ele = this[0]; + var cy = this.cy(); + var ppos = plainObject(dim) ? dim : void 0; + var setting = ppos !== void 0 || val !== void 0 && string(dim); + var hasCompoundNodes = cy.hasCompoundNodes(); + if (ele && ele.isNode()) { + if (setting) { + for (var i2 = 0; i2 < this.length; i2++) { + var _ele2 = this[i2]; + var parent = hasCompoundNodes ? _ele2.parent() : null; + var hasParent = parent && parent.length > 0; + var relativeToParent = hasParent; + if (hasParent) { + parent = parent[0]; + } + var origin = relativeToParent ? parent.position() : { + x: 0, + y: 0 + }; + if (val !== void 0) { + _ele2.position(dim, val + origin[dim]); + } else if (ppos !== void 0) { + _ele2.position({ + x: ppos.x + origin.x, + y: ppos.y + origin.y + }); + } + } + } else { + var pos = ele.position(); + var _parent = hasCompoundNodes ? ele.parent() : null; + var _hasParent = _parent && _parent.length > 0; + var _relativeToParent = _hasParent; + if (_hasParent) { + _parent = _parent[0]; + } + var _origin = _relativeToParent ? _parent.position() : { + x: 0, + y: 0 + }; + ppos = { + x: pos.x - _origin.x, + y: pos.y - _origin.y + }; + if (dim === void 0) { + return ppos; + } else { + return ppos[dim]; + } + } + } else if (!setting) { + return void 0; + } + return this; + } + }; + fn$4.modelPosition = fn$4.point = fn$4.position; + fn$4.modelPositions = fn$4.points = fn$4.positions; + fn$4.renderedPoint = fn$4.renderedPosition; + fn$4.relativePoint = fn$4.relativePosition; + var position = elesfn$c; + var fn$3, elesfn$b; + fn$3 = elesfn$b = {}; + elesfn$b.renderedBoundingBox = function(options) { + var bb = this.boundingBox(options); + var cy = this.cy(); + var zoom = cy.zoom(); + var pan = cy.pan(); + var x1 = bb.x1 * zoom + pan.x; + var x2 = bb.x2 * zoom + pan.x; + var y1 = bb.y1 * zoom + pan.y; + var y2 = bb.y2 * zoom + pan.y; + return { + x1, + x2, + y1, + y2, + w: x2 - x1, + h: y2 - y1 + }; + }; + elesfn$b.dirtyCompoundBoundsCache = function() { + var silent = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false; + var cy = this.cy(); + if (!cy.styleEnabled() || !cy.hasCompoundNodes()) { + return this; + } + this.forEachUp(function(ele) { + if (ele.isParent()) { + var _p = ele._private; + _p.compoundBoundsClean = false; + _p.bbCache = null; + if (!silent) { + ele.emitAndNotify("bounds"); + } + } + }); + return this; + }; + elesfn$b.updateCompoundBounds = function() { + var force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false; + var cy = this.cy(); + if (!cy.styleEnabled() || !cy.hasCompoundNodes()) { + return this; + } + if (!force && cy.batching()) { + return this; + } + function update2(parent) { + if (!parent.isParent()) { + return; + } + var _p2 = parent._private; + var children = parent.children(); + var includeLabels = parent.pstyle("compound-sizing-wrt-labels").value === "include"; + var min2 = { + width: { + val: parent.pstyle("min-width").pfValue, + left: parent.pstyle("min-width-bias-left"), + right: parent.pstyle("min-width-bias-right") + }, + height: { + val: parent.pstyle("min-height").pfValue, + top: parent.pstyle("min-height-bias-top"), + bottom: parent.pstyle("min-height-bias-bottom") + } + }; + var bb = children.boundingBox({ + includeLabels, + includeOverlays: false, + // updating the compound bounds happens outside of the regular + // cache cycle (i.e. before fired events) + useCache: false + }); + var pos = _p2.position; + if (bb.w === 0 || bb.h === 0) { + bb = { + w: parent.pstyle("width").pfValue, + h: parent.pstyle("height").pfValue + }; + bb.x1 = pos.x - bb.w / 2; + bb.x2 = pos.x + bb.w / 2; + bb.y1 = pos.y - bb.h / 2; + bb.y2 = pos.y + bb.h / 2; + } + function computeBiasValues(propDiff, propBias, propBiasComplement) { + var biasDiff = 0; + var biasComplementDiff = 0; + var biasTotal = propBias + propBiasComplement; + if (propDiff > 0 && biasTotal > 0) { + biasDiff = propBias / biasTotal * propDiff; + biasComplementDiff = propBiasComplement / biasTotal * propDiff; + } + return { + biasDiff, + biasComplementDiff + }; + } + function computePaddingValues(width, height, paddingObject, relativeTo) { + if (paddingObject.units === "%") { + switch (relativeTo) { + case "width": + return width > 0 ? paddingObject.pfValue * width : 0; + case "height": + return height > 0 ? paddingObject.pfValue * height : 0; + case "average": + return width > 0 && height > 0 ? paddingObject.pfValue * (width + height) / 2 : 0; + case "min": + return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * height : paddingObject.pfValue * width : 0; + case "max": + return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * width : paddingObject.pfValue * height : 0; + default: + return 0; + } + } else if (paddingObject.units === "px") { + return paddingObject.pfValue; + } else { + return 0; + } + } + var leftVal = min2.width.left.value; + if (min2.width.left.units === "px" && min2.width.val > 0) { + leftVal = leftVal * 100 / min2.width.val; + } + var rightVal = min2.width.right.value; + if (min2.width.right.units === "px" && min2.width.val > 0) { + rightVal = rightVal * 100 / min2.width.val; + } + var topVal = min2.height.top.value; + if (min2.height.top.units === "px" && min2.height.val > 0) { + topVal = topVal * 100 / min2.height.val; + } + var bottomVal = min2.height.bottom.value; + if (min2.height.bottom.units === "px" && min2.height.val > 0) { + bottomVal = bottomVal * 100 / min2.height.val; + } + var widthBiasDiffs = computeBiasValues(min2.width.val - bb.w, leftVal, rightVal); + var diffLeft = widthBiasDiffs.biasDiff; + var diffRight = widthBiasDiffs.biasComplementDiff; + var heightBiasDiffs = computeBiasValues(min2.height.val - bb.h, topVal, bottomVal); + var diffTop = heightBiasDiffs.biasDiff; + var diffBottom = heightBiasDiffs.biasComplementDiff; + _p2.autoPadding = computePaddingValues(bb.w, bb.h, parent.pstyle("padding"), parent.pstyle("padding-relative-to").value); + _p2.autoWidth = Math.max(bb.w, min2.width.val); + pos.x = (-diffLeft + bb.x1 + bb.x2 + diffRight) / 2; + _p2.autoHeight = Math.max(bb.h, min2.height.val); + pos.y = (-diffTop + bb.y1 + bb.y2 + diffBottom) / 2; + } + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + var _p = ele._private; + if (!_p.compoundBoundsClean || force) { + update2(ele); + if (!cy.batching()) { + _p.compoundBoundsClean = true; + } + } + } + return this; + }; + var noninf = function noninf2(x) { + if (x === Infinity || x === -Infinity) { + return 0; + } + return x; + }; + var updateBounds = function updateBounds2(b, x1, y1, x2, y2) { + if (x2 - x1 === 0 || y2 - y1 === 0) { + return; + } + if (x1 == null || y1 == null || x2 == null || y2 == null) { + return; + } + b.x1 = x1 < b.x1 ? x1 : b.x1; + b.x2 = x2 > b.x2 ? x2 : b.x2; + b.y1 = y1 < b.y1 ? y1 : b.y1; + b.y2 = y2 > b.y2 ? y2 : b.y2; + b.w = b.x2 - b.x1; + b.h = b.y2 - b.y1; + }; + var updateBoundsFromBox = function updateBoundsFromBox2(b, b2) { + if (b2 == null) { + return b; + } + return updateBounds(b, b2.x1, b2.y1, b2.x2, b2.y2); + }; + var prefixedProperty = function prefixedProperty2(obj, field, prefix) { + return getPrefixedProperty(obj, field, prefix); + }; + var updateBoundsFromArrow = function updateBoundsFromArrow2(bounds2, ele, prefix) { + if (ele.cy().headless()) { + return; + } + var _p = ele._private; + var rstyle = _p.rstyle; + var halfArW = rstyle.arrowWidth / 2; + var arrowType = ele.pstyle(prefix + "-arrow-shape").value; + var x; + var y; + if (arrowType !== "none") { + if (prefix === "source") { + x = rstyle.srcX; + y = rstyle.srcY; + } else if (prefix === "target") { + x = rstyle.tgtX; + y = rstyle.tgtY; + } else { + x = rstyle.midX; + y = rstyle.midY; + } + var bbs = _p.arrowBounds = _p.arrowBounds || {}; + var bb = bbs[prefix] = bbs[prefix] || {}; + bb.x1 = x - halfArW; + bb.y1 = y - halfArW; + bb.x2 = x + halfArW; + bb.y2 = y + halfArW; + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + expandBoundingBox(bb, 1); + updateBounds(bounds2, bb.x1, bb.y1, bb.x2, bb.y2); + } + }; + var updateBoundsFromLabel = function updateBoundsFromLabel2(bounds2, ele, prefix) { + if (ele.cy().headless()) { + return; + } + var prefixDash; + if (prefix) { + prefixDash = prefix + "-"; + } else { + prefixDash = ""; + } + var _p = ele._private; + var rstyle = _p.rstyle; + var label = ele.pstyle(prefixDash + "label").strValue; + if (label) { + var halign = ele.pstyle("text-halign"); + var valign = ele.pstyle("text-valign"); + var labelWidth = prefixedProperty(rstyle, "labelWidth", prefix); + var labelHeight = prefixedProperty(rstyle, "labelHeight", prefix); + var labelX = prefixedProperty(rstyle, "labelX", prefix); + var labelY = prefixedProperty(rstyle, "labelY", prefix); + var marginX = ele.pstyle(prefixDash + "text-margin-x").pfValue; + var marginY = ele.pstyle(prefixDash + "text-margin-y").pfValue; + var isEdge = ele.isEdge(); + var rotation = ele.pstyle(prefixDash + "text-rotation"); + var outlineWidth = ele.pstyle("text-outline-width").pfValue; + var borderWidth = ele.pstyle("text-border-width").pfValue; + var halfBorderWidth = borderWidth / 2; + var padding = ele.pstyle("text-background-padding").pfValue; + var marginOfError = 2; + var lh = labelHeight; + var lw = labelWidth; + var lw_2 = lw / 2; + var lh_2 = lh / 2; + var lx1, lx2, ly1, ly2; + if (isEdge) { + lx1 = labelX - lw_2; + lx2 = labelX + lw_2; + ly1 = labelY - lh_2; + ly2 = labelY + lh_2; + } else { + switch (halign.value) { + case "left": + lx1 = labelX - lw; + lx2 = labelX; + break; + case "center": + lx1 = labelX - lw_2; + lx2 = labelX + lw_2; + break; + case "right": + lx1 = labelX; + lx2 = labelX + lw; + break; + } + switch (valign.value) { + case "top": + ly1 = labelY - lh; + ly2 = labelY; + break; + case "center": + ly1 = labelY - lh_2; + ly2 = labelY + lh_2; + break; + case "bottom": + ly1 = labelY; + ly2 = labelY + lh; + break; + } + } + lx1 += marginX - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError; + lx2 += marginX + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError; + ly1 += marginY - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError; + ly2 += marginY + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError; + var bbPrefix = prefix || "main"; + var bbs = _p.labelBounds; + var bb = bbs[bbPrefix] = bbs[bbPrefix] || {}; + bb.x1 = lx1; + bb.y1 = ly1; + bb.x2 = lx2; + bb.y2 = ly2; + bb.w = lx2 - lx1; + bb.h = ly2 - ly1; + var isAutorotate = isEdge && rotation.strValue === "autorotate"; + var isPfValue = rotation.pfValue != null && rotation.pfValue !== 0; + if (isAutorotate || isPfValue) { + var theta = isAutorotate ? prefixedProperty(_p.rstyle, "labelAngle", prefix) : rotation.pfValue; + var cos2 = Math.cos(theta); + var sin2 = Math.sin(theta); + var xo = (lx1 + lx2) / 2; + var yo = (ly1 + ly2) / 2; + if (!isEdge) { + switch (halign.value) { + case "left": + xo = lx2; + break; + case "right": + xo = lx1; + break; + } + switch (valign.value) { + case "top": + yo = ly2; + break; + case "bottom": + yo = ly1; + break; + } + } + var rotate = function rotate2(x, y) { + x = x - xo; + y = y - yo; + return { + x: x * cos2 - y * sin2 + xo, + y: x * sin2 + y * cos2 + yo + }; + }; + var px1y1 = rotate(lx1, ly1); + var px1y2 = rotate(lx1, ly2); + var px2y1 = rotate(lx2, ly1); + var px2y2 = rotate(lx2, ly2); + lx1 = Math.min(px1y1.x, px1y2.x, px2y1.x, px2y2.x); + lx2 = Math.max(px1y1.x, px1y2.x, px2y1.x, px2y2.x); + ly1 = Math.min(px1y1.y, px1y2.y, px2y1.y, px2y2.y); + ly2 = Math.max(px1y1.y, px1y2.y, px2y1.y, px2y2.y); + } + var bbPrefixRot = bbPrefix + "Rot"; + var bbRot = bbs[bbPrefixRot] = bbs[bbPrefixRot] || {}; + bbRot.x1 = lx1; + bbRot.y1 = ly1; + bbRot.x2 = lx2; + bbRot.y2 = ly2; + bbRot.w = lx2 - lx1; + bbRot.h = ly2 - ly1; + updateBounds(bounds2, lx1, ly1, lx2, ly2); + updateBounds(_p.labelBounds.all, lx1, ly1, lx2, ly2); + } + return bounds2; + }; + var updateBoundsFromOutline = function updateBoundsFromOutline2(bounds2, ele) { + if (ele.cy().headless()) { + return; + } + var outlineOpacity = ele.pstyle("outline-opacity").value; + var outlineWidth = ele.pstyle("outline-width").value; + if (outlineOpacity > 0 && outlineWidth > 0) { + var outlineOffset = ele.pstyle("outline-offset").value; + var nodeShape = ele.pstyle("shape").value; + var outlineSize = outlineWidth + outlineOffset; + var scaleX = (bounds2.w + outlineSize * 2) / bounds2.w; + var scaleY = (bounds2.h + outlineSize * 2) / bounds2.h; + var xOffset = 0; + var yOffset = 0; + if (["diamond", "pentagon", "round-triangle"].includes(nodeShape)) { + scaleX = (bounds2.w + outlineSize * 2.4) / bounds2.w; + yOffset = -outlineSize / 3.6; + } else if (["concave-hexagon", "rhomboid", "right-rhomboid"].includes(nodeShape)) { + scaleX = (bounds2.w + outlineSize * 2.4) / bounds2.w; + } else if (nodeShape === "star") { + scaleX = (bounds2.w + outlineSize * 2.8) / bounds2.w; + scaleY = (bounds2.h + outlineSize * 2.6) / bounds2.h; + yOffset = -outlineSize / 3.8; + } else if (nodeShape === "triangle") { + scaleX = (bounds2.w + outlineSize * 2.8) / bounds2.w; + scaleY = (bounds2.h + outlineSize * 2.4) / bounds2.h; + yOffset = -outlineSize / 1.4; + } else if (nodeShape === "vee") { + scaleX = (bounds2.w + outlineSize * 4.4) / bounds2.w; + scaleY = (bounds2.h + outlineSize * 3.8) / bounds2.h; + yOffset = -outlineSize * 0.5; + } + var hDelta = bounds2.h * scaleY - bounds2.h; + var wDelta = bounds2.w * scaleX - bounds2.w; + expandBoundingBoxSides(bounds2, [Math.ceil(hDelta / 2), Math.ceil(wDelta / 2)]); + if (xOffset != 0 || yOffset !== 0) { + var oBounds = shiftBoundingBox(bounds2, xOffset, yOffset); + updateBoundingBox(bounds2, oBounds); + } + } + }; + var boundingBoxImpl = function boundingBoxImpl2(ele, options) { + var cy = ele._private.cy; + var styleEnabled = cy.styleEnabled(); + var headless = cy.headless(); + var bounds2 = makeBoundingBox(); + var _p = ele._private; + var isNode = ele.isNode(); + var isEdge = ele.isEdge(); + var ex1, ex2, ey1, ey2; + var x, y; + var rstyle = _p.rstyle; + var manualExpansion = isNode && styleEnabled ? ele.pstyle("bounds-expansion").pfValue : [0]; + var isDisplayed = function isDisplayed2(ele2) { + return ele2.pstyle("display").value !== "none"; + }; + var displayed = !styleEnabled || isDisplayed(ele) && (!isEdge || isDisplayed(ele.source()) && isDisplayed(ele.target())); + if (displayed) { + var overlayOpacity = 0; + var overlayPadding = 0; + if (styleEnabled && options.includeOverlays) { + overlayOpacity = ele.pstyle("overlay-opacity").value; + if (overlayOpacity !== 0) { + overlayPadding = ele.pstyle("overlay-padding").value; + } + } + var underlayOpacity = 0; + var underlayPadding = 0; + if (styleEnabled && options.includeUnderlays) { + underlayOpacity = ele.pstyle("underlay-opacity").value; + if (underlayOpacity !== 0) { + underlayPadding = ele.pstyle("underlay-padding").value; + } + } + var padding = Math.max(overlayPadding, underlayPadding); + var w = 0; + var wHalf = 0; + if (styleEnabled) { + w = ele.pstyle("width").pfValue; + wHalf = w / 2; + } + if (isNode && options.includeNodes) { + var pos = ele.position(); + x = pos.x; + y = pos.y; + var _w = ele.outerWidth(); + var halfW = _w / 2; + var h = ele.outerHeight(); + var halfH = h / 2; + ex1 = x - halfW; + ex2 = x + halfW; + ey1 = y - halfH; + ey2 = y + halfH; + updateBounds(bounds2, ex1, ey1, ex2, ey2); + if (styleEnabled && options.includeOutlines) { + updateBoundsFromOutline(bounds2, ele); + } + } else if (isEdge && options.includeEdges) { + if (styleEnabled && !headless) { + var curveStyle = ele.pstyle("curve-style").strValue; + ex1 = Math.min(rstyle.srcX, rstyle.midX, rstyle.tgtX); + ex2 = Math.max(rstyle.srcX, rstyle.midX, rstyle.tgtX); + ey1 = Math.min(rstyle.srcY, rstyle.midY, rstyle.tgtY); + ey2 = Math.max(rstyle.srcY, rstyle.midY, rstyle.tgtY); + ex1 -= wHalf; + ex2 += wHalf; + ey1 -= wHalf; + ey2 += wHalf; + updateBounds(bounds2, ex1, ey1, ex2, ey2); + if (curveStyle === "haystack") { + var hpts = rstyle.haystackPts; + if (hpts && hpts.length === 2) { + ex1 = hpts[0].x; + ey1 = hpts[0].y; + ex2 = hpts[1].x; + ey2 = hpts[1].y; + if (ex1 > ex2) { + var temp = ex1; + ex1 = ex2; + ex2 = temp; + } + if (ey1 > ey2) { + var _temp = ey1; + ey1 = ey2; + ey2 = _temp; + } + updateBounds(bounds2, ex1 - wHalf, ey1 - wHalf, ex2 + wHalf, ey2 + wHalf); + } + } else if (curveStyle === "bezier" || curveStyle === "unbundled-bezier" || curveStyle === "segments" || curveStyle === "taxi") { + var pts2; + switch (curveStyle) { + case "bezier": + case "unbundled-bezier": + pts2 = rstyle.bezierPts; + break; + case "segments": + case "taxi": + pts2 = rstyle.linePts; + break; + } + if (pts2 != null) { + for (var j = 0; j < pts2.length; j++) { + var pt = pts2[j]; + ex1 = pt.x - wHalf; + ex2 = pt.x + wHalf; + ey1 = pt.y - wHalf; + ey2 = pt.y + wHalf; + updateBounds(bounds2, ex1, ey1, ex2, ey2); + } + } + } + } else { + var n1 = ele.source(); + var n1pos = n1.position(); + var n2 = ele.target(); + var n2pos = n2.position(); + ex1 = n1pos.x; + ex2 = n2pos.x; + ey1 = n1pos.y; + ey2 = n2pos.y; + if (ex1 > ex2) { + var _temp2 = ex1; + ex1 = ex2; + ex2 = _temp2; + } + if (ey1 > ey2) { + var _temp3 = ey1; + ey1 = ey2; + ey2 = _temp3; + } + ex1 -= wHalf; + ex2 += wHalf; + ey1 -= wHalf; + ey2 += wHalf; + updateBounds(bounds2, ex1, ey1, ex2, ey2); + } + } + if (styleEnabled && options.includeEdges && isEdge) { + updateBoundsFromArrow(bounds2, ele, "mid-source"); + updateBoundsFromArrow(bounds2, ele, "mid-target"); + updateBoundsFromArrow(bounds2, ele, "source"); + updateBoundsFromArrow(bounds2, ele, "target"); + } + if (styleEnabled) { + var ghost = ele.pstyle("ghost").value === "yes"; + if (ghost) { + var gx = ele.pstyle("ghost-offset-x").pfValue; + var gy = ele.pstyle("ghost-offset-y").pfValue; + updateBounds(bounds2, bounds2.x1 + gx, bounds2.y1 + gy, bounds2.x2 + gx, bounds2.y2 + gy); + } + } + var bbBody = _p.bodyBounds = _p.bodyBounds || {}; + assignBoundingBox(bbBody, bounds2); + expandBoundingBoxSides(bbBody, manualExpansion); + expandBoundingBox(bbBody, 1); + if (styleEnabled) { + ex1 = bounds2.x1; + ex2 = bounds2.x2; + ey1 = bounds2.y1; + ey2 = bounds2.y2; + updateBounds(bounds2, ex1 - padding, ey1 - padding, ex2 + padding, ey2 + padding); + } + var bbOverlay = _p.overlayBounds = _p.overlayBounds || {}; + assignBoundingBox(bbOverlay, bounds2); + expandBoundingBoxSides(bbOverlay, manualExpansion); + expandBoundingBox(bbOverlay, 1); + var bbLabels = _p.labelBounds = _p.labelBounds || {}; + if (bbLabels.all != null) { + clearBoundingBox(bbLabels.all); + } else { + bbLabels.all = makeBoundingBox(); + } + if (styleEnabled && options.includeLabels) { + if (options.includeMainLabels) { + updateBoundsFromLabel(bounds2, ele, null); + } + if (isEdge) { + if (options.includeSourceLabels) { + updateBoundsFromLabel(bounds2, ele, "source"); + } + if (options.includeTargetLabels) { + updateBoundsFromLabel(bounds2, ele, "target"); + } + } + } + } + bounds2.x1 = noninf(bounds2.x1); + bounds2.y1 = noninf(bounds2.y1); + bounds2.x2 = noninf(bounds2.x2); + bounds2.y2 = noninf(bounds2.y2); + bounds2.w = noninf(bounds2.x2 - bounds2.x1); + bounds2.h = noninf(bounds2.y2 - bounds2.y1); + if (bounds2.w > 0 && bounds2.h > 0 && displayed) { + expandBoundingBoxSides(bounds2, manualExpansion); + expandBoundingBox(bounds2, 1); + } + return bounds2; + }; + var getKey = function getKey2(opts) { + var i2 = 0; + var tf = function tf2(val) { + return (val ? 1 : 0) << i2++; + }; + var key = 0; + key += tf(opts.incudeNodes); + key += tf(opts.includeEdges); + key += tf(opts.includeLabels); + key += tf(opts.includeMainLabels); + key += tf(opts.includeSourceLabels); + key += tf(opts.includeTargetLabels); + key += tf(opts.includeOverlays); + key += tf(opts.includeOutlines); + return key; + }; + var getBoundingBoxPosKey = function getBoundingBoxPosKey2(ele) { + if (ele.isEdge()) { + var p1 = ele.source().position(); + var p2 = ele.target().position(); + var r = function r2(x) { + return Math.round(x); + }; + return hashIntsArray([r(p1.x), r(p1.y), r(p2.x), r(p2.y)]); + } else { + return 0; + } + }; + var cachedBoundingBoxImpl = function cachedBoundingBoxImpl2(ele, opts) { + var _p = ele._private; + var bb; + var isEdge = ele.isEdge(); + var key = opts == null ? defBbOptsKey : getKey(opts); + var usingDefOpts = key === defBbOptsKey; + var currPosKey = getBoundingBoxPosKey(ele); + var isPosKeySame = _p.bbCachePosKey === currPosKey; + var useCache = opts.useCache && isPosKeySame; + var isDirty = function isDirty2(ele2) { + return ele2._private.bbCache == null || ele2._private.styleDirty; + }; + var needRecalc = !useCache || isDirty(ele) || isEdge && isDirty(ele.source()) || isDirty(ele.target()); + if (needRecalc) { + if (!isPosKeySame) { + ele.recalculateRenderedStyle(useCache); + } + bb = boundingBoxImpl(ele, defBbOpts); + _p.bbCache = bb; + _p.bbCachePosKey = currPosKey; + } else { + bb = _p.bbCache; + } + if (!usingDefOpts) { + var isNode = ele.isNode(); + bb = makeBoundingBox(); + if (opts.includeNodes && isNode || opts.includeEdges && !isNode) { + if (opts.includeOverlays) { + updateBoundsFromBox(bb, _p.overlayBounds); + } else { + updateBoundsFromBox(bb, _p.bodyBounds); + } + } + if (opts.includeLabels) { + if (opts.includeMainLabels && (!isEdge || opts.includeSourceLabels && opts.includeTargetLabels)) { + updateBoundsFromBox(bb, _p.labelBounds.all); + } else { + if (opts.includeMainLabels) { + updateBoundsFromBox(bb, _p.labelBounds.mainRot); + } + if (opts.includeSourceLabels) { + updateBoundsFromBox(bb, _p.labelBounds.sourceRot); + } + if (opts.includeTargetLabels) { + updateBoundsFromBox(bb, _p.labelBounds.targetRot); + } + } + } + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + } + return bb; + }; + var defBbOpts = { + includeNodes: true, + includeEdges: true, + includeLabels: true, + includeMainLabels: true, + includeSourceLabels: true, + includeTargetLabels: true, + includeOverlays: true, + includeUnderlays: true, + includeOutlines: true, + useCache: true + }; + var defBbOptsKey = getKey(defBbOpts); + var filledBbOpts = defaults$g(defBbOpts); + elesfn$b.boundingBox = function(options) { + var bounds2; + if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (options === void 0 || options.useCache === void 0 || options.useCache === true)) { + if (options === void 0) { + options = defBbOpts; + } else { + options = filledBbOpts(options); + } + bounds2 = cachedBoundingBoxImpl(this[0], options); + } else { + bounds2 = makeBoundingBox(); + options = options || defBbOpts; + var opts = filledBbOpts(options); + var eles = this; + var cy = eles.cy(); + var styleEnabled = cy.styleEnabled(); + if (styleEnabled) { + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + var _p = ele._private; + var currPosKey = getBoundingBoxPosKey(ele); + var isPosKeySame = _p.bbCachePosKey === currPosKey; + var useCache = opts.useCache && isPosKeySame && !_p.styleDirty; + ele.recalculateRenderedStyle(useCache); + } + } + this.updateCompoundBounds(!options.useCache); + for (var _i = 0; _i < eles.length; _i++) { + var _ele = eles[_i]; + updateBoundsFromBox(bounds2, cachedBoundingBoxImpl(_ele, opts)); + } + } + bounds2.x1 = noninf(bounds2.x1); + bounds2.y1 = noninf(bounds2.y1); + bounds2.x2 = noninf(bounds2.x2); + bounds2.y2 = noninf(bounds2.y2); + bounds2.w = noninf(bounds2.x2 - bounds2.x1); + bounds2.h = noninf(bounds2.y2 - bounds2.y1); + return bounds2; + }; + elesfn$b.dirtyBoundingBoxCache = function() { + for (var i2 = 0; i2 < this.length; i2++) { + var _p = this[i2]._private; + _p.bbCache = null; + _p.bbCachePosKey = null; + _p.bodyBounds = null; + _p.overlayBounds = null; + _p.labelBounds.all = null; + _p.labelBounds.source = null; + _p.labelBounds.target = null; + _p.labelBounds.main = null; + _p.labelBounds.sourceRot = null; + _p.labelBounds.targetRot = null; + _p.labelBounds.mainRot = null; + _p.arrowBounds.source = null; + _p.arrowBounds.target = null; + _p.arrowBounds["mid-source"] = null; + _p.arrowBounds["mid-target"] = null; + } + this.emitAndNotify("bounds"); + return this; + }; + elesfn$b.boundingBoxAt = function(fn2) { + var nodes2 = this.nodes(); + var cy = this.cy(); + var hasCompoundNodes = cy.hasCompoundNodes(); + var parents = cy.collection(); + if (hasCompoundNodes) { + parents = nodes2.filter(function(node) { + return node.isParent(); + }); + nodes2 = nodes2.not(parents); + } + if (plainObject(fn2)) { + var obj = fn2; + fn2 = function fn3() { + return obj; + }; + } + var storeOldPos = function storeOldPos2(node, i2) { + return node._private.bbAtOldPos = fn2(node, i2); + }; + var getOldPos = function getOldPos2(node) { + return node._private.bbAtOldPos; + }; + cy.startBatch(); + nodes2.forEach(storeOldPos).silentPositions(fn2); + if (hasCompoundNodes) { + parents.dirtyCompoundBoundsCache(); + parents.dirtyBoundingBoxCache(); + parents.updateCompoundBounds(true); + } + var bb = copyBoundingBox(this.boundingBox({ + useCache: false + })); + nodes2.silentPositions(getOldPos); + if (hasCompoundNodes) { + parents.dirtyCompoundBoundsCache(); + parents.dirtyBoundingBoxCache(); + parents.updateCompoundBounds(true); + } + cy.endBatch(); + return bb; + }; + fn$3.boundingbox = fn$3.bb = fn$3.boundingBox; + fn$3.renderedBoundingbox = fn$3.renderedBoundingBox; + var bounds = elesfn$b; + var fn$2, elesfn$a; + fn$2 = elesfn$a = {}; + var defineDimFns = function defineDimFns2(opts) { + opts.uppercaseName = capitalize(opts.name); + opts.autoName = "auto" + opts.uppercaseName; + opts.labelName = "label" + opts.uppercaseName; + opts.outerName = "outer" + opts.uppercaseName; + opts.uppercaseOuterName = capitalize(opts.outerName); + fn$2[opts.name] = function dimImpl() { + var ele = this[0]; + var _p = ele._private; + var cy = _p.cy; + var styleEnabled = cy._private.styleEnabled; + if (ele) { + if (styleEnabled) { + if (ele.isParent()) { + ele.updateCompoundBounds(); + return _p[opts.autoName] || 0; + } + var d = ele.pstyle(opts.name); + switch (d.strValue) { + case "label": + ele.recalculateRenderedStyle(); + return _p.rstyle[opts.labelName] || 0; + default: + return d.pfValue; + } + } else { + return 1; + } + } + }; + fn$2["outer" + opts.uppercaseName] = function outerDimImpl() { + var ele = this[0]; + var _p = ele._private; + var cy = _p.cy; + var styleEnabled = cy._private.styleEnabled; + if (ele) { + if (styleEnabled) { + var dim = ele[opts.name](); + var border = ele.pstyle("border-width").pfValue; + var padding = 2 * ele.padding(); + return dim + border + padding; + } else { + return 1; + } + } + }; + fn$2["rendered" + opts.uppercaseName] = function renderedDimImpl() { + var ele = this[0]; + if (ele) { + var d = ele[opts.name](); + return d * this.cy().zoom(); + } + }; + fn$2["rendered" + opts.uppercaseOuterName] = function renderedOuterDimImpl() { + var ele = this[0]; + if (ele) { + var od = ele[opts.outerName](); + return od * this.cy().zoom(); + } + }; + }; + defineDimFns({ + name: "width" + }); + defineDimFns({ + name: "height" + }); + elesfn$a.padding = function() { + var ele = this[0]; + var _p = ele._private; + if (ele.isParent()) { + ele.updateCompoundBounds(); + if (_p.autoPadding !== void 0) { + return _p.autoPadding; + } else { + return ele.pstyle("padding").pfValue; + } + } else { + return ele.pstyle("padding").pfValue; + } + }; + elesfn$a.paddedHeight = function() { + var ele = this[0]; + return ele.height() + 2 * ele.padding(); + }; + elesfn$a.paddedWidth = function() { + var ele = this[0]; + return ele.width() + 2 * ele.padding(); + }; + var widthHeight = elesfn$a; + var ifEdge = function ifEdge2(ele, getValue2) { + if (ele.isEdge()) { + return getValue2(ele); + } + }; + var ifEdgeRenderedPosition = function ifEdgeRenderedPosition2(ele, getPoint) { + if (ele.isEdge()) { + var cy = ele.cy(); + return modelToRenderedPosition(getPoint(ele), cy.zoom(), cy.pan()); + } + }; + var ifEdgeRenderedPositions = function ifEdgeRenderedPositions2(ele, getPoints) { + if (ele.isEdge()) { + var cy = ele.cy(); + var pan = cy.pan(); + var zoom = cy.zoom(); + return getPoints(ele).map(function(p2) { + return modelToRenderedPosition(p2, zoom, pan); + }); + } + }; + var controlPoints = function controlPoints2(ele) { + return ele.renderer().getControlPoints(ele); + }; + var segmentPoints = function segmentPoints2(ele) { + return ele.renderer().getSegmentPoints(ele); + }; + var sourceEndpoint = function sourceEndpoint2(ele) { + return ele.renderer().getSourceEndpoint(ele); + }; + var targetEndpoint = function targetEndpoint2(ele) { + return ele.renderer().getTargetEndpoint(ele); + }; + var midpoint = function midpoint2(ele) { + return ele.renderer().getEdgeMidpoint(ele); + }; + var pts = { + controlPoints: { + get: controlPoints, + mult: true + }, + segmentPoints: { + get: segmentPoints, + mult: true + }, + sourceEndpoint: { + get: sourceEndpoint + }, + targetEndpoint: { + get: targetEndpoint + }, + midpoint: { + get: midpoint + } + }; + var renderedName = function renderedName2(name) { + return "rendered" + name[0].toUpperCase() + name.substr(1); + }; + var edgePoints = Object.keys(pts).reduce(function(obj, name) { + var spec = pts[name]; + var rName = renderedName(name); + obj[name] = function() { + return ifEdge(this, spec.get); + }; + if (spec.mult) { + obj[rName] = function() { + return ifEdgeRenderedPositions(this, spec.get); + }; + } else { + obj[rName] = function() { + return ifEdgeRenderedPosition(this, spec.get); + }; + } + return obj; + }, {}); + var dimensions = extend({}, position, bounds, widthHeight, edgePoints); + /*! + Event object based on jQuery events, MIT license + + https://jquery.org/license/ + https://tldrlegal.com/license/mit-license + https://github.com/jquery/jquery/blob/master/src/event.js + */ + var Event = function Event2(src, props) { + this.recycle(src, props); + }; + function returnFalse() { + return false; + } + function returnTrue() { + return true; + } + Event.prototype = { + instanceString: function instanceString() { + return "event"; + }, + recycle: function recycle(src, props) { + this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = returnFalse; + if (src != null && src.preventDefault) { + this.type = src.type; + this.isDefaultPrevented = src.defaultPrevented ? returnTrue : returnFalse; + } else if (src != null && src.type) { + props = src; + } else { + this.type = src; + } + if (props != null) { + this.originalEvent = props.originalEvent; + this.type = props.type != null ? props.type : this.type; + this.cy = props.cy; + this.target = props.target; + this.position = props.position; + this.renderedPosition = props.renderedPosition; + this.namespace = props.namespace; + this.layout = props.layout; + } + if (this.cy != null && this.position != null && this.renderedPosition == null) { + var pos = this.position; + var zoom = this.cy.zoom(); + var pan = this.cy.pan(); + this.renderedPosition = { + x: pos.x * zoom + pan.x, + y: pos.y * zoom + pan.y + }; + } + this.timeStamp = src && src.timeStamp || Date.now(); + }, + preventDefault: function preventDefault() { + this.isDefaultPrevented = returnTrue; + var e = this.originalEvent; + if (!e) { + return; + } + if (e.preventDefault) { + e.preventDefault(); + } + }, + stopPropagation: function stopPropagation() { + this.isPropagationStopped = returnTrue; + var e = this.originalEvent; + if (!e) { + return; + } + if (e.stopPropagation) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function stopImmediatePropagation() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse + }; + var eventRegex = /^([^.]+)(\.(?:[^.]+))?$/; + var universalNamespace = ".*"; + var defaults$8 = { + qualifierCompare: function qualifierCompare(q1, q2) { + return q1 === q2; + }, + eventMatches: function eventMatches() { + return true; + }, + addEventFields: function addEventFields() { + }, + callbackContext: function callbackContext(context) { + return context; + }, + beforeEmit: function beforeEmit() { + }, + afterEmit: function afterEmit() { + }, + bubble: function bubble() { + return false; + }, + parent: function parent() { + return null; + }, + context: null + }; + var defaultsKeys = Object.keys(defaults$8); + var emptyOpts = {}; + function Emitter() { + var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : emptyOpts; + var context = arguments.length > 1 ? arguments[1] : void 0; + for (var i2 = 0; i2 < defaultsKeys.length; i2++) { + var key = defaultsKeys[i2]; + this[key] = opts[key] || defaults$8[key]; + } + this.context = context || this.context; + this.listeners = []; + this.emitting = 0; + } + var p = Emitter.prototype; + var forEachEvent = function forEachEvent2(self2, handler, events, qualifier, callback, conf, confOverrides) { + if (fn$6(qualifier)) { + callback = qualifier; + qualifier = null; + } + if (confOverrides) { + if (conf == null) { + conf = confOverrides; + } else { + conf = extend({}, conf, confOverrides); + } + } + var eventList = array(events) ? events : events.split(/\s+/); + for (var i2 = 0; i2 < eventList.length; i2++) { + var evt = eventList[i2]; + if (emptyString(evt)) { + continue; + } + var match2 = evt.match(eventRegex); + if (match2) { + var type = match2[1]; + var namespace = match2[2] ? match2[2] : null; + var ret = handler(self2, evt, type, namespace, qualifier, callback, conf); + if (ret === false) { + break; + } + } + } + }; + var makeEventObj = function makeEventObj2(self2, obj) { + self2.addEventFields(self2.context, obj); + return new Event(obj.type, obj); + }; + var forEachEventObj = function forEachEventObj2(self2, handler, events) { + if (event(events)) { + handler(self2, events); + return; + } else if (plainObject(events)) { + handler(self2, makeEventObj(self2, events)); + return; + } + var eventList = array(events) ? events : events.split(/\s+/); + for (var i2 = 0; i2 < eventList.length; i2++) { + var evt = eventList[i2]; + if (emptyString(evt)) { + continue; + } + var match2 = evt.match(eventRegex); + if (match2) { + var type = match2[1]; + var namespace = match2[2] ? match2[2] : null; + var eventObj = makeEventObj(self2, { + type, + namespace, + target: self2.context + }); + handler(self2, eventObj); + } + } + }; + p.on = p.addListener = function(events, qualifier, callback, conf, confOverrides) { + forEachEvent(this, function(self2, event2, type, namespace, qualifier2, callback2, conf2) { + if (fn$6(callback2)) { + self2.listeners.push({ + event: event2, + // full event string + callback: callback2, + // callback to run + type, + // the event type (e.g. 'click') + namespace, + // the event namespace (e.g. ".foo") + qualifier: qualifier2, + // a restriction on whether to match this emitter + conf: conf2 + // additional configuration + }); + } + }, events, qualifier, callback, conf, confOverrides); + return this; + }; + p.one = function(events, qualifier, callback, conf) { + return this.on(events, qualifier, callback, conf, { + one: true + }); + }; + p.removeListener = p.off = function(events, qualifier, callback, conf) { + var _this = this; + if (this.emitting !== 0) { + this.listeners = copyArray$1(this.listeners); + } + var listeners = this.listeners; + var _loop = function _loop2(i3) { + var listener = listeners[i3]; + forEachEvent(_this, function(self2, event2, type, namespace, qualifier2, callback2) { + if ((listener.type === type || events === "*") && (!namespace && listener.namespace !== ".*" || listener.namespace === namespace) && (!qualifier2 || self2.qualifierCompare(listener.qualifier, qualifier2)) && (!callback2 || listener.callback === callback2)) { + listeners.splice(i3, 1); + return false; + } + }, events, qualifier, callback, conf); + }; + for (var i2 = listeners.length - 1; i2 >= 0; i2--) { + _loop(i2); + } + return this; + }; + p.removeAllListeners = function() { + return this.removeListener("*"); + }; + p.emit = p.trigger = function(events, extraParams, manualCallback) { + var listeners = this.listeners; + var numListenersBeforeEmit = listeners.length; + this.emitting++; + if (!array(extraParams)) { + extraParams = [extraParams]; + } + forEachEventObj(this, function(self2, eventObj) { + if (manualCallback != null) { + listeners = [{ + event: eventObj.event, + type: eventObj.type, + namespace: eventObj.namespace, + callback: manualCallback + }]; + numListenersBeforeEmit = listeners.length; + } + var _loop2 = function _loop22(i3) { + var listener = listeners[i3]; + if (listener.type === eventObj.type && (!listener.namespace || listener.namespace === eventObj.namespace || listener.namespace === universalNamespace) && self2.eventMatches(self2.context, listener, eventObj)) { + var args = [eventObj]; + if (extraParams != null) { + push(args, extraParams); + } + self2.beforeEmit(self2.context, listener, eventObj); + if (listener.conf && listener.conf.one) { + self2.listeners = self2.listeners.filter(function(l) { + return l !== listener; + }); + } + var context = self2.callbackContext(self2.context, listener, eventObj); + var ret = listener.callback.apply(context, args); + self2.afterEmit(self2.context, listener, eventObj); + if (ret === false) { + eventObj.stopPropagation(); + eventObj.preventDefault(); + } + } + }; + for (var i2 = 0; i2 < numListenersBeforeEmit; i2++) { + _loop2(i2); + } + if (self2.bubble(self2.context) && !eventObj.isPropagationStopped()) { + self2.parent(self2.context).emit(eventObj, extraParams); + } + }, events); + this.emitting--; + return this; + }; + var emitterOptions$1 = { + qualifierCompare: function qualifierCompare(selector1, selector2) { + if (selector1 == null || selector2 == null) { + return selector1 == null && selector2 == null; + } else { + return selector1.sameText(selector2); + } + }, + eventMatches: function eventMatches(ele, listener, eventObj) { + var selector = listener.qualifier; + if (selector != null) { + return ele !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target); + } + return true; + }, + addEventFields: function addEventFields(ele, evt) { + evt.cy = ele.cy(); + evt.target = ele; + }, + callbackContext: function callbackContext(ele, listener, eventObj) { + return listener.qualifier != null ? eventObj.target : ele; + }, + beforeEmit: function beforeEmit(context, listener) { + if (listener.conf && listener.conf.once) { + listener.conf.onceCollection.removeListener(listener.event, listener.qualifier, listener.callback); + } + }, + bubble: function bubble() { + return true; + }, + parent: function parent(ele) { + return ele.isChild() ? ele.parent() : ele.cy(); + } + }; + var argSelector$1 = function argSelector2(arg) { + if (string(arg)) { + return new Selector(arg); + } else { + return arg; + } + }; + var elesfn$9 = { + createEmitter: function createEmitter() { + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + var _p = ele._private; + if (!_p.emitter) { + _p.emitter = new Emitter(emitterOptions$1, ele); + } + } + return this; + }, + emitter: function emitter() { + return this._private.emitter; + }, + on: function on(events, selector, callback) { + var argSel = argSelector$1(selector); + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + ele.emitter().on(events, argSel, callback); + } + return this; + }, + removeListener: function removeListener(events, selector, callback) { + var argSel = argSelector$1(selector); + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + ele.emitter().removeListener(events, argSel, callback); + } + return this; + }, + removeAllListeners: function removeAllListeners() { + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + ele.emitter().removeAllListeners(); + } + return this; + }, + one: function one(events, selector, callback) { + var argSel = argSelector$1(selector); + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + ele.emitter().one(events, argSel, callback); + } + return this; + }, + once: function once(events, selector, callback) { + var argSel = argSelector$1(selector); + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + ele.emitter().on(events, argSel, callback, { + once: true, + onceCollection: this + }); + } + }, + emit: function emit(events, extraParams) { + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + ele.emitter().emit(events, extraParams); + } + return this; + }, + emitAndNotify: function emitAndNotify(event2, extraParams) { + if (this.length === 0) { + return; + } + this.cy().notify(event2, this); + this.emit(event2, extraParams); + return this; + } + }; + define.eventAliasesOn(elesfn$9); + var elesfn$8 = { + nodes: function nodes2(selector) { + return this.filter(function(ele) { + return ele.isNode(); + }).filter(selector); + }, + edges: function edges(selector) { + return this.filter(function(ele) { + return ele.isEdge(); + }).filter(selector); + }, + // internal helper to get nodes and edges as separate collections with single iteration over elements + byGroup: function byGroup() { + var nodes2 = this.spawn(); + var edges = this.spawn(); + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + if (ele.isNode()) { + nodes2.push(ele); + } else { + edges.push(ele); + } + } + return { + nodes: nodes2, + edges + }; + }, + filter: function filter2(_filter, thisArg) { + if (_filter === void 0) { + return this; + } else if (string(_filter) || elementOrCollection(_filter)) { + return new Selector(_filter).filter(this); + } else if (fn$6(_filter)) { + var filterEles = this.spawn(); + var eles = this; + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + var include = thisArg ? _filter.apply(thisArg, [ele, i2, eles]) : _filter(ele, i2, eles); + if (include) { + filterEles.push(ele); + } + } + return filterEles; + } + return this.spawn(); + }, + not: function not(toRemove) { + if (!toRemove) { + return this; + } else { + if (string(toRemove)) { + toRemove = this.filter(toRemove); + } + var elements2 = this.spawn(); + for (var i2 = 0; i2 < this.length; i2++) { + var element2 = this[i2]; + var remove = toRemove.has(element2); + if (!remove) { + elements2.push(element2); + } + } + return elements2; + } + }, + absoluteComplement: function absoluteComplement() { + var cy = this.cy(); + return cy.mutableElements().not(this); + }, + intersect: function intersect(other) { + if (string(other)) { + var selector = other; + return this.filter(selector); + } + var elements2 = this.spawn(); + var col1 = this; + var col2 = other; + var col1Smaller = this.length < other.length; + var colS = col1Smaller ? col1 : col2; + var colL = col1Smaller ? col2 : col1; + for (var i2 = 0; i2 < colS.length; i2++) { + var ele = colS[i2]; + if (colL.has(ele)) { + elements2.push(ele); + } + } + return elements2; + }, + xor: function xor(other) { + var cy = this._private.cy; + if (string(other)) { + other = cy.$(other); + } + var elements2 = this.spawn(); + var col1 = this; + var col2 = other; + var add = function add2(col, other2) { + for (var i2 = 0; i2 < col.length; i2++) { + var ele = col[i2]; + var id = ele._private.data.id; + var inOther = other2.hasElementWithId(id); + if (!inOther) { + elements2.push(ele); + } + } + }; + add(col1, col2); + add(col2, col1); + return elements2; + }, + diff: function diff(other) { + var cy = this._private.cy; + if (string(other)) { + other = cy.$(other); + } + var left = this.spawn(); + var right = this.spawn(); + var both = this.spawn(); + var col1 = this; + var col2 = other; + var add = function add2(col, other2, retEles) { + for (var i2 = 0; i2 < col.length; i2++) { + var ele = col[i2]; + var id = ele._private.data.id; + var inOther = other2.hasElementWithId(id); + if (inOther) { + both.merge(ele); + } else { + retEles.push(ele); + } + } + }; + add(col1, col2, left); + add(col2, col1, right); + return { + left, + right, + both + }; + }, + add: function add(toAdd) { + var cy = this._private.cy; + if (!toAdd) { + return this; + } + if (string(toAdd)) { + var selector = toAdd; + toAdd = cy.mutableElements().filter(selector); + } + var elements2 = this.spawnSelf(); + for (var i2 = 0; i2 < toAdd.length; i2++) { + var ele = toAdd[i2]; + var add2 = !this.has(ele); + if (add2) { + elements2.push(ele); + } + } + return elements2; + }, + // in place merge on calling collection + merge: function merge(toAdd) { + var _p = this._private; + var cy = _p.cy; + if (!toAdd) { + return this; + } + if (toAdd && string(toAdd)) { + var selector = toAdd; + toAdd = cy.mutableElements().filter(selector); + } + var map = _p.map; + for (var i2 = 0; i2 < toAdd.length; i2++) { + var toAddEle = toAdd[i2]; + var id = toAddEle._private.data.id; + var add = !map.has(id); + if (add) { + var index = this.length++; + this[index] = toAddEle; + map.set(id, { + ele: toAddEle, + index + }); + } + } + return this; + }, + unmergeAt: function unmergeAt(i2) { + var ele = this[i2]; + var id = ele.id(); + var _p = this._private; + var map = _p.map; + this[i2] = void 0; + map["delete"](id); + var unmergedLastEle = i2 === this.length - 1; + if (this.length > 1 && !unmergedLastEle) { + var lastEleI = this.length - 1; + var lastEle = this[lastEleI]; + var lastEleId = lastEle._private.data.id; + this[lastEleI] = void 0; + this[i2] = lastEle; + map.set(lastEleId, { + ele: lastEle, + index: i2 + }); + } + this.length--; + return this; + }, + // remove single ele in place in calling collection + unmergeOne: function unmergeOne(ele) { + ele = ele[0]; + var _p = this._private; + var id = ele._private.data.id; + var map = _p.map; + var entry = map.get(id); + if (!entry) { + return this; + } + var i2 = entry.index; + this.unmergeAt(i2); + return this; + }, + // remove eles in place on calling collection + unmerge: function unmerge(toRemove) { + var cy = this._private.cy; + if (!toRemove) { + return this; + } + if (toRemove && string(toRemove)) { + var selector = toRemove; + toRemove = cy.mutableElements().filter(selector); + } + for (var i2 = 0; i2 < toRemove.length; i2++) { + this.unmergeOne(toRemove[i2]); + } + return this; + }, + unmergeBy: function unmergeBy(toRmFn) { + for (var i2 = this.length - 1; i2 >= 0; i2--) { + var ele = this[i2]; + if (toRmFn(ele)) { + this.unmergeAt(i2); + } + } + return this; + }, + map: function map(mapFn, thisArg) { + var arr = []; + var eles = this; + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + var ret = thisArg ? mapFn.apply(thisArg, [ele, i2, eles]) : mapFn(ele, i2, eles); + arr.push(ret); + } + return arr; + }, + reduce: function reduce(fn2, initialValue) { + var val = initialValue; + var eles = this; + for (var i2 = 0; i2 < eles.length; i2++) { + val = fn2(val, eles[i2], i2, eles); + } + return val; + }, + max: function max2(valFn, thisArg) { + var max3 = -Infinity; + var maxEle; + var eles = this; + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + var val = thisArg ? valFn.apply(thisArg, [ele, i2, eles]) : valFn(ele, i2, eles); + if (val > max3) { + max3 = val; + maxEle = ele; + } + } + return { + value: max3, + ele: maxEle + }; + }, + min: function min2(valFn, thisArg) { + var min3 = Infinity; + var minEle; + var eles = this; + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + var val = thisArg ? valFn.apply(thisArg, [ele, i2, eles]) : valFn(ele, i2, eles); + if (val < min3) { + min3 = val; + minEle = ele; + } + } + return { + value: min3, + ele: minEle + }; + } + }; + var fn$1 = elesfn$8; + fn$1["u"] = fn$1["|"] = fn$1["+"] = fn$1.union = fn$1.or = fn$1.add; + fn$1["\\"] = fn$1["!"] = fn$1["-"] = fn$1.difference = fn$1.relativeComplement = fn$1.subtract = fn$1.not; + fn$1["n"] = fn$1["&"] = fn$1["."] = fn$1.and = fn$1.intersection = fn$1.intersect; + fn$1["^"] = fn$1["(+)"] = fn$1["(-)"] = fn$1.symmetricDifference = fn$1.symdiff = fn$1.xor; + fn$1.fnFilter = fn$1.filterFn = fn$1.stdFilter = fn$1.filter; + fn$1.complement = fn$1.abscomp = fn$1.absoluteComplement; + var elesfn$7 = { + isNode: function isNode() { + return this.group() === "nodes"; + }, + isEdge: function isEdge() { + return this.group() === "edges"; + }, + isLoop: function isLoop() { + return this.isEdge() && this.source()[0] === this.target()[0]; + }, + isSimple: function isSimple() { + return this.isEdge() && this.source()[0] !== this.target()[0]; + }, + group: function group() { + var ele = this[0]; + if (ele) { + return ele._private.group; + } + } + }; + var zIndexSort = function zIndexSort2(a, b) { + var cy = a.cy(); + var hasCompoundNodes = cy.hasCompoundNodes(); + function getDepth(ele) { + var style = ele.pstyle("z-compound-depth"); + if (style.value === "auto") { + return hasCompoundNodes ? ele.zDepth() : 0; + } else if (style.value === "bottom") { + return -1; + } else if (style.value === "top") { + return MAX_INT$1; + } + return 0; + } + var depthDiff = getDepth(a) - getDepth(b); + if (depthDiff !== 0) { + return depthDiff; + } + function getEleDepth(ele) { + var style = ele.pstyle("z-index-compare"); + if (style.value === "auto") { + return ele.isNode() ? 1 : 0; + } + return 0; + } + var eleDiff = getEleDepth(a) - getEleDepth(b); + if (eleDiff !== 0) { + return eleDiff; + } + var zDiff = a.pstyle("z-index").value - b.pstyle("z-index").value; + if (zDiff !== 0) { + return zDiff; + } + return a.poolIndex() - b.poolIndex(); + }; + var elesfn$6 = { + forEach: function forEach(fn2, thisArg) { + if (fn$6(fn2)) { + var N = this.length; + for (var i2 = 0; i2 < N; i2++) { + var ele = this[i2]; + var ret = thisArg ? fn2.apply(thisArg, [ele, i2, this]) : fn2(ele, i2, this); + if (ret === false) { + break; + } + } + } + return this; + }, + toArray: function toArray() { + var array2 = []; + for (var i2 = 0; i2 < this.length; i2++) { + array2.push(this[i2]); + } + return array2; + }, + slice: function slice(start, end) { + var array2 = []; + var thisSize = this.length; + if (end == null) { + end = thisSize; + } + if (start == null) { + start = 0; + } + if (start < 0) { + start = thisSize + start; + } + if (end < 0) { + end = thisSize + end; + } + for (var i2 = start; i2 >= 0 && i2 < end && i2 < thisSize; i2++) { + array2.push(this[i2]); + } + return this.spawn(array2); + }, + size: function size() { + return this.length; + }, + eq: function eq2(i2) { + return this[i2] || this.spawn(); + }, + first: function first() { + return this[0] || this.spawn(); + }, + last: function last() { + return this[this.length - 1] || this.spawn(); + }, + empty: function empty() { + return this.length === 0; + }, + nonempty: function nonempty() { + return !this.empty(); + }, + sort: function sort(sortFn) { + if (!fn$6(sortFn)) { + return this; + } + var sorted = this.toArray().sort(sortFn); + return this.spawn(sorted); + }, + sortByZIndex: function sortByZIndex() { + return this.sort(zIndexSort); + }, + zDepth: function zDepth() { + var ele = this[0]; + if (!ele) { + return void 0; + } + var _p = ele._private; + var group = _p.group; + if (group === "nodes") { + var depth = _p.data.parent ? ele.parents().size() : 0; + if (!ele.isParent()) { + return MAX_INT$1 - 1; + } + return depth; + } else { + var src = _p.source; + var tgt = _p.target; + var srcDepth = src.zDepth(); + var tgtDepth = tgt.zDepth(); + return Math.max(srcDepth, tgtDepth, 0); + } + } + }; + elesfn$6.each = elesfn$6.forEach; + var defineSymbolIterator = function defineSymbolIterator2() { + var typeofUndef = "undefined"; + var isIteratorSupported = (typeof Symbol === "undefined" ? "undefined" : _typeof(Symbol)) != typeofUndef && _typeof(Symbol.iterator) != typeofUndef; + if (isIteratorSupported) { + elesfn$6[Symbol.iterator] = function() { + var _this = this; + var entry = { + value: void 0, + done: false + }; + var i2 = 0; + var length = this.length; + return _defineProperty$1({ + next: function next2() { + if (i2 < length) { + entry.value = _this[i2++]; + } else { + entry.value = void 0; + entry.done = true; + } + return entry; + } + }, Symbol.iterator, function() { + return this; + }); + }; + } + }; + defineSymbolIterator(); + var getLayoutDimensionOptions = defaults$g({ + nodeDimensionsIncludeLabels: false + }); + var elesfn$5 = { + // Calculates and returns node dimensions { x, y } based on options given + layoutDimensions: function layoutDimensions(options) { + options = getLayoutDimensionOptions(options); + var dims; + if (!this.takesUpSpace()) { + dims = { + w: 0, + h: 0 + }; + } else if (options.nodeDimensionsIncludeLabels) { + var bbDim = this.boundingBox(); + dims = { + w: bbDim.w, + h: bbDim.h + }; + } else { + dims = { + w: this.outerWidth(), + h: this.outerHeight() + }; + } + if (dims.w === 0 || dims.h === 0) { + dims.w = dims.h = 1; + } + return dims; + }, + // using standard layout options, apply position function (w/ or w/o animation) + layoutPositions: function layoutPositions(layout2, options, fn2) { + var nodes2 = this.nodes().filter(function(n) { + return !n.isParent(); + }); + var cy = this.cy(); + var layoutEles = options.eles; + var getMemoizeKey = function getMemoizeKey2(node2) { + return node2.id(); + }; + var fnMem = memoize$1(fn2, getMemoizeKey); + layout2.emit({ + type: "layoutstart", + layout: layout2 + }); + layout2.animations = []; + var calculateSpacing = function calculateSpacing2(spacing, nodesBb, pos) { + var center = { + x: nodesBb.x1 + nodesBb.w / 2, + y: nodesBb.y1 + nodesBb.h / 2 + }; + var spacingVector = { + // scale from center of bounding box (not necessarily 0,0) + x: (pos.x - center.x) * spacing, + y: (pos.y - center.y) * spacing + }; + return { + x: center.x + spacingVector.x, + y: center.y + spacingVector.y + }; + }; + var useSpacingFactor = options.spacingFactor && options.spacingFactor !== 1; + var spacingBb = function spacingBb2() { + if (!useSpacingFactor) { + return null; + } + var bb2 = makeBoundingBox(); + for (var i3 = 0; i3 < nodes2.length; i3++) { + var node2 = nodes2[i3]; + var pos = fnMem(node2, i3); + expandBoundingBoxByPoint(bb2, pos.x, pos.y); + } + return bb2; + }; + var bb = spacingBb(); + var getFinalPos = memoize$1(function(node2, i3) { + var newPos2 = fnMem(node2, i3); + if (useSpacingFactor) { + var spacing = Math.abs(options.spacingFactor); + newPos2 = calculateSpacing(spacing, bb, newPos2); + } + if (options.transform != null) { + newPos2 = options.transform(node2, newPos2); + } + return newPos2; + }, getMemoizeKey); + if (options.animate) { + for (var i2 = 0; i2 < nodes2.length; i2++) { + var node = nodes2[i2]; + var newPos = getFinalPos(node, i2); + var animateNode = options.animateFilter == null || options.animateFilter(node, i2); + if (animateNode) { + var ani = node.animation({ + position: newPos, + duration: options.animationDuration, + easing: options.animationEasing + }); + layout2.animations.push(ani); + } else { + node.position(newPos); + } + } + if (options.fit) { + var fitAni = cy.animation({ + fit: { + boundingBox: layoutEles.boundingBoxAt(getFinalPos), + padding: options.padding + }, + duration: options.animationDuration, + easing: options.animationEasing + }); + layout2.animations.push(fitAni); + } else if (options.zoom !== void 0 && options.pan !== void 0) { + var zoomPanAni = cy.animation({ + zoom: options.zoom, + pan: options.pan, + duration: options.animationDuration, + easing: options.animationEasing + }); + layout2.animations.push(zoomPanAni); + } + layout2.animations.forEach(function(ani2) { + return ani2.play(); + }); + layout2.one("layoutready", options.ready); + layout2.emit({ + type: "layoutready", + layout: layout2 + }); + Promise$1.all(layout2.animations.map(function(ani2) { + return ani2.promise(); + })).then(function() { + layout2.one("layoutstop", options.stop); + layout2.emit({ + type: "layoutstop", + layout: layout2 + }); + }); + } else { + nodes2.positions(getFinalPos); + if (options.fit) { + cy.fit(options.eles, options.padding); + } + if (options.zoom != null) { + cy.zoom(options.zoom); + } + if (options.pan) { + cy.pan(options.pan); + } + layout2.one("layoutready", options.ready); + layout2.emit({ + type: "layoutready", + layout: layout2 + }); + layout2.one("layoutstop", options.stop); + layout2.emit({ + type: "layoutstop", + layout: layout2 + }); + } + return this; + }, + layout: function layout2(options) { + var cy = this.cy(); + return cy.makeLayout(extend({}, options, { + eles: this + })); + } + }; + elesfn$5.createLayout = elesfn$5.makeLayout = elesfn$5.layout; + function styleCache(key, fn2, ele) { + var _p = ele._private; + var cache2 = _p.styleCache = _p.styleCache || []; + var val; + if ((val = cache2[key]) != null) { + return val; + } else { + val = cache2[key] = fn2(ele); + return val; + } + } + function cacheStyleFunction(key, fn2) { + key = hashString(key); + return function cachedStyleFunction(ele) { + return styleCache(key, fn2, ele); + }; + } + function cachePrototypeStyleFunction(key, fn2) { + key = hashString(key); + var selfFn = function selfFn2(ele) { + return fn2.call(ele); + }; + return function cachedPrototypeStyleFunction() { + var ele = this[0]; + if (ele) { + return styleCache(key, selfFn, ele); + } + }; + } + var elesfn$4 = { + recalculateRenderedStyle: function recalculateRenderedStyle(useCache) { + var cy = this.cy(); + var renderer3 = cy.renderer(); + var styleEnabled = cy.styleEnabled(); + if (renderer3 && styleEnabled) { + renderer3.recalculateRenderedStyle(this, useCache); + } + return this; + }, + dirtyStyleCache: function dirtyStyleCache() { + var cy = this.cy(); + var dirty = function dirty2(ele) { + return ele._private.styleCache = null; + }; + if (cy.hasCompoundNodes()) { + var eles; + eles = this.spawnSelf().merge(this.descendants()).merge(this.parents()); + eles.merge(eles.connectedEdges()); + eles.forEach(dirty); + } else { + this.forEach(function(ele) { + dirty(ele); + ele.connectedEdges().forEach(dirty); + }); + } + return this; + }, + // fully updates (recalculates) the style for the elements + updateStyle: function updateStyle(notifyRenderer) { + var cy = this._private.cy; + if (!cy.styleEnabled()) { + return this; + } + if (cy.batching()) { + var bEles = cy._private.batchStyleEles; + bEles.merge(this); + return this; + } + var hasCompounds = cy.hasCompoundNodes(); + var updatedEles = this; + notifyRenderer = notifyRenderer || notifyRenderer === void 0 ? true : false; + if (hasCompounds) { + updatedEles = this.spawnSelf().merge(this.descendants()).merge(this.parents()); + } + var changedEles = updatedEles; + if (notifyRenderer) { + changedEles.emitAndNotify("style"); + } else { + changedEles.emit("style"); + } + updatedEles.forEach(function(ele) { + return ele._private.styleDirty = true; + }); + return this; + }, + // private: clears dirty flag and recalculates style + cleanStyle: function cleanStyle() { + var cy = this.cy(); + if (!cy.styleEnabled()) { + return; + } + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + if (ele._private.styleDirty) { + ele._private.styleDirty = false; + cy.style().apply(ele); + } + } + }, + // get the internal parsed style object for the specified property + parsedStyle: function parsedStyle(property) { + var includeNonDefault = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; + var ele = this[0]; + var cy = ele.cy(); + if (!cy.styleEnabled()) { + return; + } + if (ele) { + this.cleanStyle(); + var overriddenStyle = ele._private.style[property]; + if (overriddenStyle != null) { + return overriddenStyle; + } else if (includeNonDefault) { + return cy.style().getDefaultProperty(property); + } else { + return null; + } + } + }, + numericStyle: function numericStyle(property) { + var ele = this[0]; + if (!ele.cy().styleEnabled()) { + return; + } + if (ele) { + var pstyle = ele.pstyle(property); + return pstyle.pfValue !== void 0 ? pstyle.pfValue : pstyle.value; + } + }, + numericStyleUnits: function numericStyleUnits(property) { + var ele = this[0]; + if (!ele.cy().styleEnabled()) { + return; + } + if (ele) { + return ele.pstyle(property).units; + } + }, + // get the specified css property as a rendered value (i.e. on-screen value) + // or get the whole rendered style if no property specified (NB doesn't allow setting) + renderedStyle: function renderedStyle(property) { + var cy = this.cy(); + if (!cy.styleEnabled()) { + return this; + } + var ele = this[0]; + if (ele) { + return cy.style().getRenderedStyle(ele, property); + } + }, + // read the calculated css style of the element or override the style (via a bypass) + style: function style(name, value) { + var cy = this.cy(); + if (!cy.styleEnabled()) { + return this; + } + var updateTransitions = false; + var style2 = cy.style(); + if (plainObject(name)) { + var props = name; + style2.applyBypass(this, props, updateTransitions); + this.emitAndNotify("style"); + } else if (string(name)) { + if (value === void 0) { + var ele = this[0]; + if (ele) { + return style2.getStylePropertyValue(ele, name); + } else { + return; + } + } else { + style2.applyBypass(this, name, value, updateTransitions); + this.emitAndNotify("style"); + } + } else if (name === void 0) { + var _ele = this[0]; + if (_ele) { + return style2.getRawStyle(_ele); + } else { + return; + } + } + return this; + }, + removeStyle: function removeStyle(names) { + var cy = this.cy(); + if (!cy.styleEnabled()) { + return this; + } + var updateTransitions = false; + var style = cy.style(); + var eles = this; + if (names === void 0) { + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + style.removeAllBypasses(ele, updateTransitions); + } + } else { + names = names.split(/\s+/); + for (var _i = 0; _i < eles.length; _i++) { + var _ele2 = eles[_i]; + style.removeBypasses(_ele2, names, updateTransitions); + } + } + this.emitAndNotify("style"); + return this; + }, + show: function show() { + this.css("display", "element"); + return this; + }, + hide: function hide() { + this.css("display", "none"); + return this; + }, + effectiveOpacity: function effectiveOpacity() { + var cy = this.cy(); + if (!cy.styleEnabled()) { + return 1; + } + var hasCompoundNodes = cy.hasCompoundNodes(); + var ele = this[0]; + if (ele) { + var _p = ele._private; + var parentOpacity = ele.pstyle("opacity").value; + if (!hasCompoundNodes) { + return parentOpacity; + } + var parents = !_p.data.parent ? null : ele.parents(); + if (parents) { + for (var i2 = 0; i2 < parents.length; i2++) { + var parent = parents[i2]; + var opacity = parent.pstyle("opacity").value; + parentOpacity = opacity * parentOpacity; + } + } + return parentOpacity; + } + }, + transparent: function transparent() { + var cy = this.cy(); + if (!cy.styleEnabled()) { + return false; + } + var ele = this[0]; + var hasCompoundNodes = ele.cy().hasCompoundNodes(); + if (ele) { + if (!hasCompoundNodes) { + return ele.pstyle("opacity").value === 0; + } else { + return ele.effectiveOpacity() === 0; + } + } + }, + backgrounding: function backgrounding() { + var cy = this.cy(); + if (!cy.styleEnabled()) { + return false; + } + var ele = this[0]; + return ele._private.backgrounding ? true : false; + } + }; + function checkCompound(ele, parentOk) { + var _p = ele._private; + var parents = _p.data.parent ? ele.parents() : null; + if (parents) { + for (var i2 = 0; i2 < parents.length; i2++) { + var parent = parents[i2]; + if (!parentOk(parent)) { + return false; + } + } + } + return true; + } + function defineDerivedStateFunction(specs) { + var ok = specs.ok; + var edgeOkViaNode = specs.edgeOkViaNode || specs.ok; + var parentOk = specs.parentOk || specs.ok; + return function() { + var cy = this.cy(); + if (!cy.styleEnabled()) { + return true; + } + var ele = this[0]; + var hasCompoundNodes = cy.hasCompoundNodes(); + if (ele) { + var _p = ele._private; + if (!ok(ele)) { + return false; + } + if (ele.isNode()) { + return !hasCompoundNodes || checkCompound(ele, parentOk); + } else { + var src = _p.source; + var tgt = _p.target; + return edgeOkViaNode(src) && (!hasCompoundNodes || checkCompound(src, edgeOkViaNode)) && (src === tgt || edgeOkViaNode(tgt) && (!hasCompoundNodes || checkCompound(tgt, edgeOkViaNode))); + } + } + }; + } + var eleTakesUpSpace = cacheStyleFunction("eleTakesUpSpace", function(ele) { + return ele.pstyle("display").value === "element" && ele.width() !== 0 && (ele.isNode() ? ele.height() !== 0 : true); + }); + elesfn$4.takesUpSpace = cachePrototypeStyleFunction("takesUpSpace", defineDerivedStateFunction({ + ok: eleTakesUpSpace + })); + var eleInteractive = cacheStyleFunction("eleInteractive", function(ele) { + return ele.pstyle("events").value === "yes" && ele.pstyle("visibility").value === "visible" && eleTakesUpSpace(ele); + }); + var parentInteractive = cacheStyleFunction("parentInteractive", function(parent) { + return parent.pstyle("visibility").value === "visible" && eleTakesUpSpace(parent); + }); + elesfn$4.interactive = cachePrototypeStyleFunction("interactive", defineDerivedStateFunction({ + ok: eleInteractive, + parentOk: parentInteractive, + edgeOkViaNode: eleTakesUpSpace + })); + elesfn$4.noninteractive = function() { + var ele = this[0]; + if (ele) { + return !ele.interactive(); + } + }; + var eleVisible = cacheStyleFunction("eleVisible", function(ele) { + return ele.pstyle("visibility").value === "visible" && ele.pstyle("opacity").pfValue !== 0 && eleTakesUpSpace(ele); + }); + var edgeVisibleViaNode = eleTakesUpSpace; + elesfn$4.visible = cachePrototypeStyleFunction("visible", defineDerivedStateFunction({ + ok: eleVisible, + edgeOkViaNode: edgeVisibleViaNode + })); + elesfn$4.hidden = function() { + var ele = this[0]; + if (ele) { + return !ele.visible(); + } + }; + elesfn$4.isBundledBezier = cachePrototypeStyleFunction("isBundledBezier", function() { + if (!this.cy().styleEnabled()) { + return false; + } + return !this.removed() && this.pstyle("curve-style").value === "bezier" && this.takesUpSpace(); + }); + elesfn$4.bypass = elesfn$4.css = elesfn$4.style; + elesfn$4.renderedCss = elesfn$4.renderedStyle; + elesfn$4.removeBypass = elesfn$4.removeCss = elesfn$4.removeStyle; + elesfn$4.pstyle = elesfn$4.parsedStyle; + var elesfn$3 = {}; + function defineSwitchFunction(params) { + return function() { + var args = arguments; + var changedEles = []; + if (args.length === 2) { + var data2 = args[0]; + var handler = args[1]; + this.on(params.event, data2, handler); + } else if (args.length === 1 && fn$6(args[0])) { + var _handler = args[0]; + this.on(params.event, _handler); + } else if (args.length === 0 || args.length === 1 && array(args[0])) { + var addlEvents = args.length === 1 ? args[0] : null; + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + var able = !params.ableField || ele._private[params.ableField]; + var changed = ele._private[params.field] != params.value; + if (params.overrideAble) { + var overrideAble = params.overrideAble(ele); + if (overrideAble !== void 0) { + able = overrideAble; + if (!overrideAble) { + return this; + } + } + } + if (able) { + ele._private[params.field] = params.value; + if (changed) { + changedEles.push(ele); + } + } + } + var changedColl = this.spawn(changedEles); + changedColl.updateStyle(); + changedColl.emit(params.event); + if (addlEvents) { + changedColl.emit(addlEvents); + } + } + return this; + }; + } + function defineSwitchSet(params) { + elesfn$3[params.field] = function() { + var ele = this[0]; + if (ele) { + if (params.overrideField) { + var val = params.overrideField(ele); + if (val !== void 0) { + return val; + } + } + return ele._private[params.field]; + } + }; + elesfn$3[params.on] = defineSwitchFunction({ + event: params.on, + field: params.field, + ableField: params.ableField, + overrideAble: params.overrideAble, + value: true + }); + elesfn$3[params.off] = defineSwitchFunction({ + event: params.off, + field: params.field, + ableField: params.ableField, + overrideAble: params.overrideAble, + value: false + }); + } + defineSwitchSet({ + field: "locked", + overrideField: function overrideField(ele) { + return ele.cy().autolock() ? true : void 0; + }, + on: "lock", + off: "unlock" + }); + defineSwitchSet({ + field: "grabbable", + overrideField: function overrideField(ele) { + return ele.cy().autoungrabify() || ele.pannable() ? false : void 0; + }, + on: "grabify", + off: "ungrabify" + }); + defineSwitchSet({ + field: "selected", + ableField: "selectable", + overrideAble: function overrideAble(ele) { + return ele.cy().autounselectify() ? false : void 0; + }, + on: "select", + off: "unselect" + }); + defineSwitchSet({ + field: "selectable", + overrideField: function overrideField(ele) { + return ele.cy().autounselectify() ? false : void 0; + }, + on: "selectify", + off: "unselectify" + }); + elesfn$3.deselect = elesfn$3.unselect; + elesfn$3.grabbed = function() { + var ele = this[0]; + if (ele) { + return ele._private.grabbed; + } + }; + defineSwitchSet({ + field: "active", + on: "activate", + off: "unactivate" + }); + defineSwitchSet({ + field: "pannable", + on: "panify", + off: "unpanify" + }); + elesfn$3.inactive = function() { + var ele = this[0]; + if (ele) { + return !ele._private.active; + } + }; + var elesfn$2 = {}; + var defineDagExtremity = function defineDagExtremity2(params) { + return function dagExtremityImpl(selector) { + var eles = this; + var ret = []; + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + if (!ele.isNode()) { + continue; + } + var disqualified = false; + var edges = ele.connectedEdges(); + for (var j = 0; j < edges.length; j++) { + var edge = edges[j]; + var src = edge.source(); + var tgt = edge.target(); + if (params.noIncomingEdges && tgt === ele && src !== ele || params.noOutgoingEdges && src === ele && tgt !== ele) { + disqualified = true; + break; + } + } + if (!disqualified) { + ret.push(ele); + } + } + return this.spawn(ret, true).filter(selector); + }; + }; + var defineDagOneHop = function defineDagOneHop2(params) { + return function(selector) { + var eles = this; + var oEles = []; + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + if (!ele.isNode()) { + continue; + } + var edges = ele.connectedEdges(); + for (var j = 0; j < edges.length; j++) { + var edge = edges[j]; + var src = edge.source(); + var tgt = edge.target(); + if (params.outgoing && src === ele) { + oEles.push(edge); + oEles.push(tgt); + } else if (params.incoming && tgt === ele) { + oEles.push(edge); + oEles.push(src); + } + } + } + return this.spawn(oEles, true).filter(selector); + }; + }; + var defineDagAllHops = function defineDagAllHops2(params) { + return function(selector) { + var eles = this; + var sEles = []; + var sElesIds = {}; + for (; ; ) { + var next2 = params.outgoing ? eles.outgoers() : eles.incomers(); + if (next2.length === 0) { + break; + } + var newNext = false; + for (var i2 = 0; i2 < next2.length; i2++) { + var n = next2[i2]; + var nid = n.id(); + if (!sElesIds[nid]) { + sElesIds[nid] = true; + sEles.push(n); + newNext = true; + } + } + if (!newNext) { + break; + } + eles = next2; + } + return this.spawn(sEles, true).filter(selector); + }; + }; + elesfn$2.clearTraversalCache = function() { + for (var i2 = 0; i2 < this.length; i2++) { + this[i2]._private.traversalCache = null; + } + }; + extend(elesfn$2, { + // get the root nodes in the DAG + roots: defineDagExtremity({ + noIncomingEdges: true + }), + // get the leaf nodes in the DAG + leaves: defineDagExtremity({ + noOutgoingEdges: true + }), + // normally called children in graph theory + // these nodes =edges=> outgoing nodes + outgoers: cache(defineDagOneHop({ + outgoing: true + }), "outgoers"), + // aka DAG descendants + successors: defineDagAllHops({ + outgoing: true + }), + // normally called parents in graph theory + // these nodes <=edges= incoming nodes + incomers: cache(defineDagOneHop({ + incoming: true + }), "incomers"), + // aka DAG ancestors + predecessors: defineDagAllHops({ + incoming: true + }) + }); + extend(elesfn$2, { + neighborhood: cache(function(selector) { + var elements2 = []; + var nodes2 = this.nodes(); + for (var i2 = 0; i2 < nodes2.length; i2++) { + var node = nodes2[i2]; + var connectedEdges = node.connectedEdges(); + for (var j = 0; j < connectedEdges.length; j++) { + var edge = connectedEdges[j]; + var src = edge.source(); + var tgt = edge.target(); + var otherNode = node === src ? tgt : src; + if (otherNode.length > 0) { + elements2.push(otherNode[0]); + } + elements2.push(edge[0]); + } + } + return this.spawn(elements2, true).filter(selector); + }, "neighborhood"), + closedNeighborhood: function closedNeighborhood(selector) { + return this.neighborhood().add(this).filter(selector); + }, + openNeighborhood: function openNeighborhood(selector) { + return this.neighborhood(selector); + } + }); + elesfn$2.neighbourhood = elesfn$2.neighborhood; + elesfn$2.closedNeighbourhood = elesfn$2.closedNeighborhood; + elesfn$2.openNeighbourhood = elesfn$2.openNeighborhood; + extend(elesfn$2, { + source: cache(function sourceImpl(selector) { + var ele = this[0]; + var src; + if (ele) { + src = ele._private.source || ele.cy().collection(); + } + return src && selector ? src.filter(selector) : src; + }, "source"), + target: cache(function targetImpl(selector) { + var ele = this[0]; + var tgt; + if (ele) { + tgt = ele._private.target || ele.cy().collection(); + } + return tgt && selector ? tgt.filter(selector) : tgt; + }, "target"), + sources: defineSourceFunction({ + attr: "source" + }), + targets: defineSourceFunction({ + attr: "target" + }) + }); + function defineSourceFunction(params) { + return function sourceImpl(selector) { + var sources = []; + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + var src = ele._private[params.attr]; + if (src) { + sources.push(src); + } + } + return this.spawn(sources, true).filter(selector); + }; + } + extend(elesfn$2, { + edgesWith: cache(defineEdgesWithFunction(), "edgesWith"), + edgesTo: cache(defineEdgesWithFunction({ + thisIsSrc: true + }), "edgesTo") + }); + function defineEdgesWithFunction(params) { + return function edgesWithImpl(otherNodes) { + var elements2 = []; + var cy = this._private.cy; + var p2 = params || {}; + if (string(otherNodes)) { + otherNodes = cy.$(otherNodes); + } + for (var h = 0; h < otherNodes.length; h++) { + var edges = otherNodes[h]._private.edges; + for (var i2 = 0; i2 < edges.length; i2++) { + var edge = edges[i2]; + var edgeData = edge._private.data; + var thisToOther = this.hasElementWithId(edgeData.source) && otherNodes.hasElementWithId(edgeData.target); + var otherToThis = otherNodes.hasElementWithId(edgeData.source) && this.hasElementWithId(edgeData.target); + var edgeConnectsThisAndOther = thisToOther || otherToThis; + if (!edgeConnectsThisAndOther) { + continue; + } + if (p2.thisIsSrc || p2.thisIsTgt) { + if (p2.thisIsSrc && !thisToOther) { + continue; + } + if (p2.thisIsTgt && !otherToThis) { + continue; + } + } + elements2.push(edge); + } + } + return this.spawn(elements2, true); + }; + } + extend(elesfn$2, { + connectedEdges: cache(function(selector) { + var retEles = []; + var eles = this; + for (var i2 = 0; i2 < eles.length; i2++) { + var node = eles[i2]; + if (!node.isNode()) { + continue; + } + var edges = node._private.edges; + for (var j = 0; j < edges.length; j++) { + var edge = edges[j]; + retEles.push(edge); + } + } + return this.spawn(retEles, true).filter(selector); + }, "connectedEdges"), + connectedNodes: cache(function(selector) { + var retEles = []; + var eles = this; + for (var i2 = 0; i2 < eles.length; i2++) { + var edge = eles[i2]; + if (!edge.isEdge()) { + continue; + } + retEles.push(edge.source()[0]); + retEles.push(edge.target()[0]); + } + return this.spawn(retEles, true).filter(selector); + }, "connectedNodes"), + parallelEdges: cache(defineParallelEdgesFunction(), "parallelEdges"), + codirectedEdges: cache(defineParallelEdgesFunction({ + codirected: true + }), "codirectedEdges") + }); + function defineParallelEdgesFunction(params) { + var defaults2 = { + codirected: false + }; + params = extend({}, defaults2, params); + return function parallelEdgesImpl(selector) { + var elements2 = []; + var edges = this.edges(); + var p2 = params; + for (var i2 = 0; i2 < edges.length; i2++) { + var edge1 = edges[i2]; + var edge1_p = edge1._private; + var src1 = edge1_p.source; + var srcid1 = src1._private.data.id; + var tgtid1 = edge1_p.data.target; + var srcEdges1 = src1._private.edges; + for (var j = 0; j < srcEdges1.length; j++) { + var edge2 = srcEdges1[j]; + var edge2data = edge2._private.data; + var tgtid2 = edge2data.target; + var srcid2 = edge2data.source; + var codirected = tgtid2 === tgtid1 && srcid2 === srcid1; + var oppdirected = srcid1 === tgtid2 && tgtid1 === srcid2; + if (p2.codirected && codirected || !p2.codirected && (codirected || oppdirected)) { + elements2.push(edge2); + } + } + } + return this.spawn(elements2, true).filter(selector); + }; + } + extend(elesfn$2, { + components: function components(root2) { + var self2 = this; + var cy = self2.cy(); + var visited = cy.collection(); + var unvisited = root2 == null ? self2.nodes() : root2.nodes(); + var components2 = []; + if (root2 != null && unvisited.empty()) { + unvisited = root2.sources(); + } + var visitInComponent = function visitInComponent2(node, component) { + visited.merge(node); + unvisited.unmerge(node); + component.merge(node); + }; + if (unvisited.empty()) { + return self2.spawn(); + } + var _loop = function _loop2() { + var cmpt = cy.collection(); + components2.push(cmpt); + var root3 = unvisited[0]; + visitInComponent(root3, cmpt); + self2.bfs({ + directed: false, + roots: root3, + visit: function visit(v) { + return visitInComponent(v, cmpt); + } + }); + cmpt.forEach(function(node) { + node.connectedEdges().forEach(function(e) { + if (self2.has(e) && cmpt.has(e.source()) && cmpt.has(e.target())) { + cmpt.merge(e); + } + }); + }); + }; + do { + _loop(); + } while (unvisited.length > 0); + return components2; + }, + component: function component() { + var ele = this[0]; + return ele.cy().mutableElements().components(ele)[0]; + } + }); + elesfn$2.componentsOf = elesfn$2.components; + var Collection = function Collection2(cy, elements2) { + var unique = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false; + var removed = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false; + if (cy === void 0) { + error("A collection must have a reference to the core"); + return; + } + var map = new Map$2(); + var createdElements = false; + if (!elements2) { + elements2 = []; + } else if (elements2.length > 0 && plainObject(elements2[0]) && !element(elements2[0])) { + createdElements = true; + var eles = []; + var elesIds = new Set$1(); + for (var i2 = 0, l = elements2.length; i2 < l; i2++) { + var json = elements2[i2]; + if (json.data == null) { + json.data = {}; + } + var _data = json.data; + if (_data.id == null) { + _data.id = uuid(); + } else if (cy.hasElementWithId(_data.id) || elesIds.has(_data.id)) { + continue; + } + var ele = new Element(cy, json, false); + eles.push(ele); + elesIds.add(_data.id); + } + elements2 = eles; + } + this.length = 0; + for (var _i = 0, _l = elements2.length; _i < _l; _i++) { + var element$1 = elements2[_i][0]; + if (element$1 == null) { + continue; + } + var id = element$1._private.data.id; + if (!unique || !map.has(id)) { + if (unique) { + map.set(id, { + index: this.length, + ele: element$1 + }); + } + this[this.length] = element$1; + this.length++; + } + } + this._private = { + eles: this, + cy, + get map() { + if (this.lazyMap == null) { + this.rebuildMap(); + } + return this.lazyMap; + }, + set map(m) { + this.lazyMap = m; + }, + rebuildMap: function rebuildMap() { + var m = this.lazyMap = new Map$2(); + var eles2 = this.eles; + for (var _i2 = 0; _i2 < eles2.length; _i2++) { + var _ele = eles2[_i2]; + m.set(_ele.id(), { + index: _i2, + ele: _ele + }); + } + } + }; + if (unique) { + this._private.map = map; + } + if (createdElements && !removed) { + this.restore(); + } + }; + var elesfn$1 = Element.prototype = Collection.prototype = Object.create(Array.prototype); + elesfn$1.instanceString = function() { + return "collection"; + }; + elesfn$1.spawn = function(eles, unique) { + return new Collection(this.cy(), eles, unique); + }; + elesfn$1.spawnSelf = function() { + return this.spawn(this); + }; + elesfn$1.cy = function() { + return this._private.cy; + }; + elesfn$1.renderer = function() { + return this._private.cy.renderer(); + }; + elesfn$1.element = function() { + return this[0]; + }; + elesfn$1.collection = function() { + if (collection(this)) { + return this; + } else { + return new Collection(this._private.cy, [this]); + } + }; + elesfn$1.unique = function() { + return new Collection(this._private.cy, this, true); + }; + elesfn$1.hasElementWithId = function(id) { + id = "" + id; + return this._private.map.has(id); + }; + elesfn$1.getElementById = function(id) { + id = "" + id; + var cy = this._private.cy; + var entry = this._private.map.get(id); + return entry ? entry.ele : new Collection(cy); + }; + elesfn$1.$id = elesfn$1.getElementById; + elesfn$1.poolIndex = function() { + var cy = this._private.cy; + var eles = cy._private.elements; + var id = this[0]._private.data.id; + return eles._private.map.get(id).index; + }; + elesfn$1.indexOf = function(ele) { + var id = ele[0]._private.data.id; + return this._private.map.get(id).index; + }; + elesfn$1.indexOfId = function(id) { + id = "" + id; + return this._private.map.get(id).index; + }; + elesfn$1.json = function(obj) { + var ele = this.element(); + var cy = this.cy(); + if (ele == null && obj) { + return this; + } + if (ele == null) { + return void 0; + } + var p2 = ele._private; + if (plainObject(obj)) { + cy.startBatch(); + if (obj.data) { + ele.data(obj.data); + var _data2 = p2.data; + if (ele.isEdge()) { + var move = false; + var spec = {}; + var src = obj.data.source; + var tgt = obj.data.target; + if (src != null && src != _data2.source) { + spec.source = "" + src; + move = true; + } + if (tgt != null && tgt != _data2.target) { + spec.target = "" + tgt; + move = true; + } + if (move) { + ele = ele.move(spec); + } + } else { + var newParentValSpecd = "parent" in obj.data; + var parent = obj.data.parent; + if (newParentValSpecd && (parent != null || _data2.parent != null) && parent != _data2.parent) { + if (parent === void 0) { + parent = null; + } + if (parent != null) { + parent = "" + parent; + } + ele = ele.move({ + parent + }); + } + } + } + if (obj.position) { + ele.position(obj.position); + } + var checkSwitch = function checkSwitch2(k, trueFnName, falseFnName) { + var obj_k = obj[k]; + if (obj_k != null && obj_k !== p2[k]) { + if (obj_k) { + ele[trueFnName](); + } else { + ele[falseFnName](); + } + } + }; + checkSwitch("removed", "remove", "restore"); + checkSwitch("selected", "select", "unselect"); + checkSwitch("selectable", "selectify", "unselectify"); + checkSwitch("locked", "lock", "unlock"); + checkSwitch("grabbable", "grabify", "ungrabify"); + checkSwitch("pannable", "panify", "unpanify"); + if (obj.classes != null) { + ele.classes(obj.classes); + } + cy.endBatch(); + return this; + } else if (obj === void 0) { + var json = { + data: copy(p2.data), + position: copy(p2.position), + group: p2.group, + removed: p2.removed, + selected: p2.selected, + selectable: p2.selectable, + locked: p2.locked, + grabbable: p2.grabbable, + pannable: p2.pannable, + classes: null + }; + json.classes = ""; + var i2 = 0; + p2.classes.forEach(function(cls) { + return json.classes += i2++ === 0 ? cls : " " + cls; + }); + return json; + } + }; + elesfn$1.jsons = function() { + var jsons = []; + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + var json = ele.json(); + jsons.push(json); + } + return jsons; + }; + elesfn$1.clone = function() { + var cy = this.cy(); + var elesArr = []; + for (var i2 = 0; i2 < this.length; i2++) { + var ele = this[i2]; + var json = ele.json(); + var clone2 = new Element(cy, json, false); + elesArr.push(clone2); + } + return new Collection(cy, elesArr); + }; + elesfn$1.copy = elesfn$1.clone; + elesfn$1.restore = function() { + var notifyRenderer = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true; + var addToPool = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; + var self2 = this; + var cy = self2.cy(); + var cy_p = cy._private; + var nodes2 = []; + var edges = []; + var elements2; + for (var _i3 = 0, l = self2.length; _i3 < l; _i3++) { + var ele = self2[_i3]; + if (addToPool && !ele.removed()) { + continue; + } + if (ele.isNode()) { + nodes2.push(ele); + } else { + edges.push(ele); + } + } + elements2 = nodes2.concat(edges); + var i2; + var removeFromElements = function removeFromElements2() { + elements2.splice(i2, 1); + i2--; + }; + for (i2 = 0; i2 < elements2.length; i2++) { + var _ele2 = elements2[i2]; + var _private = _ele2._private; + var _data3 = _private.data; + _ele2.clearTraversalCache(); + if (!addToPool && !_private.removed) + ; + else if (_data3.id === void 0) { + _data3.id = uuid(); + } else if (number$1(_data3.id)) { + _data3.id = "" + _data3.id; + } else if (emptyString(_data3.id) || !string(_data3.id)) { + error("Can not create element with invalid string ID `" + _data3.id + "`"); + removeFromElements(); + continue; + } else if (cy.hasElementWithId(_data3.id)) { + error("Can not create second element with ID `" + _data3.id + "`"); + removeFromElements(); + continue; + } + var id = _data3.id; + if (_ele2.isNode()) { + var pos = _private.position; + if (pos.x == null) { + pos.x = 0; + } + if (pos.y == null) { + pos.y = 0; + } + } + if (_ele2.isEdge()) { + var edge = _ele2; + var fields = ["source", "target"]; + var fieldsLength = fields.length; + var badSourceOrTarget = false; + for (var j = 0; j < fieldsLength; j++) { + var field = fields[j]; + var val = _data3[field]; + if (number$1(val)) { + val = _data3[field] = "" + _data3[field]; + } + if (val == null || val === "") { + error("Can not create edge `" + id + "` with unspecified " + field); + badSourceOrTarget = true; + } else if (!cy.hasElementWithId(val)) { + error("Can not create edge `" + id + "` with nonexistant " + field + " `" + val + "`"); + badSourceOrTarget = true; + } + } + if (badSourceOrTarget) { + removeFromElements(); + continue; + } + var src = cy.getElementById(_data3.source); + var tgt = cy.getElementById(_data3.target); + if (src.same(tgt)) { + src._private.edges.push(edge); + } else { + src._private.edges.push(edge); + tgt._private.edges.push(edge); + } + edge._private.source = src; + edge._private.target = tgt; + } + _private.map = new Map$2(); + _private.map.set(id, { + ele: _ele2, + index: 0 + }); + _private.removed = false; + if (addToPool) { + cy.addToPool(_ele2); + } + } + for (var _i4 = 0; _i4 < nodes2.length; _i4++) { + var node = nodes2[_i4]; + var _data4 = node._private.data; + if (number$1(_data4.parent)) { + _data4.parent = "" + _data4.parent; + } + var parentId = _data4.parent; + var specifiedParent = parentId != null; + if (specifiedParent || node._private.parent) { + var parent = node._private.parent ? cy.collection().merge(node._private.parent) : cy.getElementById(parentId); + if (parent.empty()) { + _data4.parent = void 0; + } else if (parent[0].removed()) { + warn("Node added with missing parent, reference to parent removed"); + _data4.parent = void 0; + node._private.parent = null; + } else { + var selfAsParent = false; + var ancestor = parent; + while (!ancestor.empty()) { + if (node.same(ancestor)) { + selfAsParent = true; + _data4.parent = void 0; + break; + } + ancestor = ancestor.parent(); + } + if (!selfAsParent) { + parent[0]._private.children.push(node); + node._private.parent = parent[0]; + cy_p.hasCompoundNodes = true; + } + } + } + } + if (elements2.length > 0) { + var restored = elements2.length === self2.length ? self2 : new Collection(cy, elements2); + for (var _i5 = 0; _i5 < restored.length; _i5++) { + var _ele3 = restored[_i5]; + if (_ele3.isNode()) { + continue; + } + _ele3.parallelEdges().clearTraversalCache(); + _ele3.source().clearTraversalCache(); + _ele3.target().clearTraversalCache(); + } + var toUpdateStyle; + if (cy_p.hasCompoundNodes) { + toUpdateStyle = cy.collection().merge(restored).merge(restored.connectedNodes()).merge(restored.parent()); + } else { + toUpdateStyle = restored; + } + toUpdateStyle.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(notifyRenderer); + if (notifyRenderer) { + restored.emitAndNotify("add"); + } else if (addToPool) { + restored.emit("add"); + } + } + return self2; + }; + elesfn$1.removed = function() { + var ele = this[0]; + return ele && ele._private.removed; + }; + elesfn$1.inside = function() { + var ele = this[0]; + return ele && !ele._private.removed; + }; + elesfn$1.remove = function() { + var notifyRenderer = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true; + var removeFromPool = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; + var self2 = this; + var elesToRemove = []; + var elesToRemoveIds = {}; + var cy = self2._private.cy; + function addConnectedEdges(node) { + var edges = node._private.edges; + for (var i3 = 0; i3 < edges.length; i3++) { + add(edges[i3]); + } + } + function addChildren2(node) { + var children = node._private.children; + for (var i3 = 0; i3 < children.length; i3++) { + add(children[i3]); + } + } + function add(ele2) { + var alreadyAdded = elesToRemoveIds[ele2.id()]; + if (removeFromPool && ele2.removed() || alreadyAdded) { + return; + } else { + elesToRemoveIds[ele2.id()] = true; + } + if (ele2.isNode()) { + elesToRemove.push(ele2); + addConnectedEdges(ele2); + addChildren2(ele2); + } else { + elesToRemove.unshift(ele2); + } + } + for (var i2 = 0, l = self2.length; i2 < l; i2++) { + var ele = self2[i2]; + add(ele); + } + function removeEdgeRef(node, edge) { + var connectedEdges = node._private.edges; + removeFromArray(connectedEdges, edge); + node.clearTraversalCache(); + } + function removeParallelRef(pllEdge2) { + pllEdge2.clearTraversalCache(); + } + var alteredParents = []; + alteredParents.ids = {}; + function removeChildRef(parent2, ele2) { + ele2 = ele2[0]; + parent2 = parent2[0]; + var children = parent2._private.children; + var pid = parent2.id(); + removeFromArray(children, ele2); + ele2._private.parent = null; + if (!alteredParents.ids[pid]) { + alteredParents.ids[pid] = true; + alteredParents.push(parent2); + } + } + self2.dirtyCompoundBoundsCache(); + if (removeFromPool) { + cy.removeFromPool(elesToRemove); + } + for (var _i6 = 0; _i6 < elesToRemove.length; _i6++) { + var _ele4 = elesToRemove[_i6]; + if (_ele4.isEdge()) { + var src = _ele4.source()[0]; + var tgt = _ele4.target()[0]; + removeEdgeRef(src, _ele4); + removeEdgeRef(tgt, _ele4); + var pllEdges = _ele4.parallelEdges(); + for (var j = 0; j < pllEdges.length; j++) { + var pllEdge = pllEdges[j]; + removeParallelRef(pllEdge); + if (pllEdge.isBundledBezier()) { + pllEdge.dirtyBoundingBoxCache(); + } + } + } else { + var parent = _ele4.parent(); + if (parent.length !== 0) { + removeChildRef(parent, _ele4); + } + } + if (removeFromPool) { + _ele4._private.removed = true; + } + } + var elesStillInside = cy._private.elements; + cy._private.hasCompoundNodes = false; + for (var _i7 = 0; _i7 < elesStillInside.length; _i7++) { + var _ele5 = elesStillInside[_i7]; + if (_ele5.isParent()) { + cy._private.hasCompoundNodes = true; + break; + } + } + var removedElements = new Collection(this.cy(), elesToRemove); + if (removedElements.size() > 0) { + if (notifyRenderer) { + removedElements.emitAndNotify("remove"); + } else if (removeFromPool) { + removedElements.emit("remove"); + } + } + for (var _i8 = 0; _i8 < alteredParents.length; _i8++) { + var _ele6 = alteredParents[_i8]; + if (!removeFromPool || !_ele6.removed()) { + _ele6.updateStyle(); + } + } + return removedElements; + }; + elesfn$1.move = function(struct) { + var cy = this._private.cy; + var eles = this; + var notifyRenderer = false; + var modifyPool = false; + var toString2 = function toString3(id) { + return id == null ? id : "" + id; + }; + if (struct.source !== void 0 || struct.target !== void 0) { + var srcId = toString2(struct.source); + var tgtId = toString2(struct.target); + var srcExists = srcId != null && cy.hasElementWithId(srcId); + var tgtExists = tgtId != null && cy.hasElementWithId(tgtId); + if (srcExists || tgtExists) { + cy.batch(function() { + eles.remove(notifyRenderer, modifyPool); + eles.emitAndNotify("moveout"); + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + var _data5 = ele._private.data; + if (ele.isEdge()) { + if (srcExists) { + _data5.source = srcId; + } + if (tgtExists) { + _data5.target = tgtId; + } + } + } + eles.restore(notifyRenderer, modifyPool); + }); + eles.emitAndNotify("move"); + } + } else if (struct.parent !== void 0) { + var parentId = toString2(struct.parent); + var parentExists = parentId === null || cy.hasElementWithId(parentId); + if (parentExists) { + var pidToAssign = parentId === null ? void 0 : parentId; + cy.batch(function() { + var updated = eles.remove(notifyRenderer, modifyPool); + updated.emitAndNotify("moveout"); + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + var _data6 = ele._private.data; + if (ele.isNode()) { + _data6.parent = pidToAssign; + } + } + updated.restore(notifyRenderer, modifyPool); + }); + eles.emitAndNotify("move"); + } + } + return this; + }; + [elesfn$j, elesfn$i, elesfn$h, elesfn$g, elesfn$f, data, elesfn$d, dimensions, elesfn$9, elesfn$8, elesfn$7, elesfn$6, elesfn$5, elesfn$4, elesfn$3, elesfn$2].forEach(function(props) { + extend(elesfn$1, props); + }); + var corefn$9 = { + add: function add(opts) { + var elements2; + var cy = this; + if (elementOrCollection(opts)) { + var eles = opts; + if (eles._private.cy === cy) { + elements2 = eles.restore(); + } else { + var jsons = []; + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + jsons.push(ele.json()); + } + elements2 = new Collection(cy, jsons); + } + } else if (array(opts)) { + var _jsons = opts; + elements2 = new Collection(cy, _jsons); + } else if (plainObject(opts) && (array(opts.nodes) || array(opts.edges))) { + var elesByGroup = opts; + var _jsons2 = []; + var grs = ["nodes", "edges"]; + for (var _i = 0, il = grs.length; _i < il; _i++) { + var group = grs[_i]; + var elesArray = elesByGroup[group]; + if (array(elesArray)) { + for (var j = 0, jl = elesArray.length; j < jl; j++) { + var json = extend({ + group + }, elesArray[j]); + _jsons2.push(json); + } + } + } + elements2 = new Collection(cy, _jsons2); + } else { + var _json = opts; + elements2 = new Element(cy, _json).collection(); + } + return elements2; + }, + remove: function remove(collection2) { + if (elementOrCollection(collection2)) + ; + else if (string(collection2)) { + var selector = collection2; + collection2 = this.$(selector); + } + return collection2.remove(); + } + }; + /*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */ + function generateCubicBezier(mX1, mY1, mX2, mY2) { + var NEWTON_ITERATIONS = 4, NEWTON_MIN_SLOPE = 1e-3, SUBDIVISION_PRECISION = 1e-7, SUBDIVISION_MAX_ITERATIONS = 10, kSplineTableSize = 11, kSampleStepSize = 1 / (kSplineTableSize - 1), float32ArraySupported = typeof Float32Array !== "undefined"; + if (arguments.length !== 4) { + return false; + } + for (var i2 = 0; i2 < 4; ++i2) { + if (typeof arguments[i2] !== "number" || isNaN(arguments[i2]) || !isFinite(arguments[i2])) { + return false; + } + } + mX1 = Math.min(mX1, 1); + mX2 = Math.min(mX2, 1); + mX1 = Math.max(mX1, 0); + mX2 = Math.max(mX2, 0); + var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); + function A(aA1, aA2) { + return 1 - 3 * aA2 + 3 * aA1; + } + function B(aA1, aA2) { + return 3 * aA2 - 6 * aA1; + } + function C(aA1) { + return 3 * aA1; + } + function calcBezier(aT, aA1, aA2) { + return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; + } + function getSlope(aT, aA1, aA2) { + return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1); + } + function newtonRaphsonIterate(aX, aGuessT) { + for (var _i = 0; _i < NEWTON_ITERATIONS; ++_i) { + var currentSlope = getSlope(aGuessT, mX1, mX2); + if (currentSlope === 0) { + return aGuessT; + } + var currentX = calcBezier(aGuessT, mX1, mX2) - aX; + aGuessT -= currentX / currentSlope; + } + return aGuessT; + } + function calcSampleValues() { + for (var _i2 = 0; _i2 < kSplineTableSize; ++_i2) { + mSampleValues[_i2] = calcBezier(_i2 * kSampleStepSize, mX1, mX2); + } + } + function binarySubdivide(aX, aA, aB) { + var currentX, currentT, i3 = 0; + do { + currentT = aA + (aB - aA) / 2; + currentX = calcBezier(currentT, mX1, mX2) - aX; + if (currentX > 0) { + aB = currentT; + } else { + aA = currentT; + } + } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i3 < SUBDIVISION_MAX_ITERATIONS); + return currentT; + } + function getTForX(aX) { + var intervalStart = 0, currentSample = 1, lastSample = kSplineTableSize - 1; + for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) { + intervalStart += kSampleStepSize; + } + --currentSample; + var dist2 = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]), guessForT = intervalStart + dist2 * kSampleStepSize, initialSlope = getSlope(guessForT, mX1, mX2); + if (initialSlope >= NEWTON_MIN_SLOPE) { + return newtonRaphsonIterate(aX, guessForT); + } else if (initialSlope === 0) { + return guessForT; + } else { + return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize); + } + } + var _precomputed = false; + function precompute() { + _precomputed = true; + if (mX1 !== mY1 || mX2 !== mY2) { + calcSampleValues(); + } + } + var f = function f2(aX) { + if (!_precomputed) { + precompute(); + } + if (mX1 === mY1 && mX2 === mY2) { + return aX; + } + if (aX === 0) { + return 0; + } + if (aX === 1) { + return 1; + } + return calcBezier(getTForX(aX), mY1, mY2); + }; + f.getControlPoints = function() { + return [{ + x: mX1, + y: mY1 + }, { + x: mX2, + y: mY2 + }]; + }; + var str = "generateBezier(" + [mX1, mY1, mX2, mY2] + ")"; + f.toString = function() { + return str; + }; + return f; + } + /*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */ + var generateSpringRK4 = function() { + function springAccelerationForState(state) { + return -state.tension * state.x - state.friction * state.v; + } + function springEvaluateStateWithDerivative(initialState, dt, derivative) { + var state = { + x: initialState.x + derivative.dx * dt, + v: initialState.v + derivative.dv * dt, + tension: initialState.tension, + friction: initialState.friction + }; + return { + dx: state.v, + dv: springAccelerationForState(state) + }; + } + function springIntegrateState(state, dt) { + var a = { + dx: state.v, + dv: springAccelerationForState(state) + }, b = springEvaluateStateWithDerivative(state, dt * 0.5, a), c = springEvaluateStateWithDerivative(state, dt * 0.5, b), d = springEvaluateStateWithDerivative(state, dt, c), dxdt = 1 / 6 * (a.dx + 2 * (b.dx + c.dx) + d.dx), dvdt = 1 / 6 * (a.dv + 2 * (b.dv + c.dv) + d.dv); + state.x = state.x + dxdt * dt; + state.v = state.v + dvdt * dt; + return state; + } + return function springRK4Factory(tension, friction, duration) { + var initState = { + x: -1, + v: 0, + tension: null, + friction: null + }, path = [0], time_lapsed = 0, tolerance = 1 / 1e4, DT = 16 / 1e3, have_duration, dt, last_state; + tension = parseFloat(tension) || 500; + friction = parseFloat(friction) || 20; + duration = duration || null; + initState.tension = tension; + initState.friction = friction; + have_duration = duration !== null; + if (have_duration) { + time_lapsed = springRK4Factory(tension, friction); + dt = time_lapsed / duration * DT; + } else { + dt = DT; + } + for (; ; ) { + last_state = springIntegrateState(last_state || initState, dt); + path.push(1 + last_state.x); + time_lapsed += 16; + if (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) { + break; + } + } + return !have_duration ? time_lapsed : function(percentComplete) { + return path[percentComplete * (path.length - 1) | 0]; + }; + }; + }(); + var cubicBezier = function cubicBezier2(t1, p1, t2, p2) { + var bezier = generateCubicBezier(t1, p1, t2, p2); + return function(start, end, percent) { + return start + (end - start) * bezier(percent); + }; + }; + var easings = { + "linear": function linear(start, end, percent) { + return start + (end - start) * percent; + }, + // default easings + "ease": cubicBezier(0.25, 0.1, 0.25, 1), + "ease-in": cubicBezier(0.42, 0, 1, 1), + "ease-out": cubicBezier(0, 0, 0.58, 1), + "ease-in-out": cubicBezier(0.42, 0, 0.58, 1), + // sine + "ease-in-sine": cubicBezier(0.47, 0, 0.745, 0.715), + "ease-out-sine": cubicBezier(0.39, 0.575, 0.565, 1), + "ease-in-out-sine": cubicBezier(0.445, 0.05, 0.55, 0.95), + // quad + "ease-in-quad": cubicBezier(0.55, 0.085, 0.68, 0.53), + "ease-out-quad": cubicBezier(0.25, 0.46, 0.45, 0.94), + "ease-in-out-quad": cubicBezier(0.455, 0.03, 0.515, 0.955), + // cubic + "ease-in-cubic": cubicBezier(0.55, 0.055, 0.675, 0.19), + "ease-out-cubic": cubicBezier(0.215, 0.61, 0.355, 1), + "ease-in-out-cubic": cubicBezier(0.645, 0.045, 0.355, 1), + // quart + "ease-in-quart": cubicBezier(0.895, 0.03, 0.685, 0.22), + "ease-out-quart": cubicBezier(0.165, 0.84, 0.44, 1), + "ease-in-out-quart": cubicBezier(0.77, 0, 0.175, 1), + // quint + "ease-in-quint": cubicBezier(0.755, 0.05, 0.855, 0.06), + "ease-out-quint": cubicBezier(0.23, 1, 0.32, 1), + "ease-in-out-quint": cubicBezier(0.86, 0, 0.07, 1), + // expo + "ease-in-expo": cubicBezier(0.95, 0.05, 0.795, 0.035), + "ease-out-expo": cubicBezier(0.19, 1, 0.22, 1), + "ease-in-out-expo": cubicBezier(1, 0, 0, 1), + // circ + "ease-in-circ": cubicBezier(0.6, 0.04, 0.98, 0.335), + "ease-out-circ": cubicBezier(0.075, 0.82, 0.165, 1), + "ease-in-out-circ": cubicBezier(0.785, 0.135, 0.15, 0.86), + // user param easings... + "spring": function spring(tension, friction, duration) { + if (duration === 0) { + return easings.linear; + } + var spring2 = generateSpringRK4(tension, friction, duration); + return function(start, end, percent) { + return start + (end - start) * spring2(percent); + }; + }, + "cubic-bezier": cubicBezier + }; + function getEasedValue(type, start, end, percent, easingFn) { + if (percent === 1) { + return end; + } + if (start === end) { + return end; + } + var val = easingFn(start, end, percent); + if (type == null) { + return val; + } + if (type.roundValue || type.color) { + val = Math.round(val); + } + if (type.min !== void 0) { + val = Math.max(val, type.min); + } + if (type.max !== void 0) { + val = Math.min(val, type.max); + } + return val; + } + function getValue(prop, spec) { + if (prop.pfValue != null || prop.value != null) { + if (prop.pfValue != null && (spec == null || spec.type.units !== "%")) { + return prop.pfValue; + } else { + return prop.value; + } + } else { + return prop; + } + } + function ease(startProp, endProp, percent, easingFn, propSpec) { + var type = propSpec != null ? propSpec.type : null; + if (percent < 0) { + percent = 0; + } else if (percent > 1) { + percent = 1; + } + var start = getValue(startProp, propSpec); + var end = getValue(endProp, propSpec); + if (number$1(start) && number$1(end)) { + return getEasedValue(type, start, end, percent, easingFn); + } else if (array(start) && array(end)) { + var easedArr = []; + for (var i2 = 0; i2 < end.length; i2++) { + var si = start[i2]; + var ei = end[i2]; + if (si != null && ei != null) { + var val = getEasedValue(type, si, ei, percent, easingFn); + easedArr.push(val); + } else { + easedArr.push(ei); + } + } + return easedArr; + } + return void 0; + } + function step$1(self2, ani, now2, isCore) { + var isEles = !isCore; + var _p = self2._private; + var ani_p = ani._private; + var pEasing = ani_p.easing; + var startTime = ani_p.startTime; + var cy = isCore ? self2 : self2.cy(); + var style = cy.style(); + if (!ani_p.easingImpl) { + if (pEasing == null) { + ani_p.easingImpl = easings["linear"]; + } else { + var easingVals; + if (string(pEasing)) { + var easingProp = style.parse("transition-timing-function", pEasing); + easingVals = easingProp.value; + } else { + easingVals = pEasing; + } + var name, args; + if (string(easingVals)) { + name = easingVals; + args = []; + } else { + name = easingVals[1]; + args = easingVals.slice(2).map(function(n) { + return +n; + }); + } + if (args.length > 0) { + if (name === "spring") { + args.push(ani_p.duration); + } + ani_p.easingImpl = easings[name].apply(null, args); + } else { + ani_p.easingImpl = easings[name]; + } + } + } + var easing = ani_p.easingImpl; + var percent; + if (ani_p.duration === 0) { + percent = 1; + } else { + percent = (now2 - startTime) / ani_p.duration; + } + if (ani_p.applying) { + percent = ani_p.progress; + } + if (percent < 0) { + percent = 0; + } else if (percent > 1) { + percent = 1; + } + if (ani_p.delay == null) { + var startPos = ani_p.startPosition; + var endPos = ani_p.position; + if (endPos && isEles && !self2.locked()) { + var newPos = {}; + if (valid(startPos.x, endPos.x)) { + newPos.x = ease(startPos.x, endPos.x, percent, easing); + } + if (valid(startPos.y, endPos.y)) { + newPos.y = ease(startPos.y, endPos.y, percent, easing); + } + self2.position(newPos); + } + var startPan = ani_p.startPan; + var endPan = ani_p.pan; + var pan = _p.pan; + var animatingPan = endPan != null && isCore; + if (animatingPan) { + if (valid(startPan.x, endPan.x)) { + pan.x = ease(startPan.x, endPan.x, percent, easing); + } + if (valid(startPan.y, endPan.y)) { + pan.y = ease(startPan.y, endPan.y, percent, easing); + } + self2.emit("pan"); + } + var startZoom = ani_p.startZoom; + var endZoom = ani_p.zoom; + var animatingZoom = endZoom != null && isCore; + if (animatingZoom) { + if (valid(startZoom, endZoom)) { + _p.zoom = bound(_p.minZoom, ease(startZoom, endZoom, percent, easing), _p.maxZoom); + } + self2.emit("zoom"); + } + if (animatingPan || animatingZoom) { + self2.emit("viewport"); + } + var props = ani_p.style; + if (props && props.length > 0 && isEles) { + for (var i2 = 0; i2 < props.length; i2++) { + var prop = props[i2]; + var _name = prop.name; + var end = prop; + var start = ani_p.startStyle[_name]; + var propSpec = style.properties[start.name]; + var easedVal = ease(start, end, percent, easing, propSpec); + style.overrideBypass(self2, _name, easedVal); + } + self2.emit("style"); + } + } + ani_p.progress = percent; + return percent; + } + function valid(start, end) { + if (start == null || end == null) { + return false; + } + if (number$1(start) && number$1(end)) { + return true; + } else if (start && end) { + return true; + } + return false; + } + function startAnimation(self2, ani, now2, isCore) { + var ani_p = ani._private; + ani_p.started = true; + ani_p.startTime = now2 - ani_p.progress * ani_p.duration; + } + function stepAll(now2, cy) { + var eles = cy._private.aniEles; + var doneEles = []; + function stepOne(ele2, isCore) { + var _p = ele2._private; + var current = _p.animation.current; + var queue = _p.animation.queue; + var ranAnis = false; + if (current.length === 0) { + var next2 = queue.shift(); + if (next2) { + current.push(next2); + } + } + var callbacks = function callbacks2(_callbacks) { + for (var j = _callbacks.length - 1; j >= 0; j--) { + var cb = _callbacks[j]; + cb(); + } + _callbacks.splice(0, _callbacks.length); + }; + for (var i2 = current.length - 1; i2 >= 0; i2--) { + var ani = current[i2]; + var ani_p = ani._private; + if (ani_p.stopped) { + current.splice(i2, 1); + ani_p.hooked = false; + ani_p.playing = false; + ani_p.started = false; + callbacks(ani_p.frames); + continue; + } + if (!ani_p.playing && !ani_p.applying) { + continue; + } + if (ani_p.playing && ani_p.applying) { + ani_p.applying = false; + } + if (!ani_p.started) { + startAnimation(ele2, ani, now2); + } + step$1(ele2, ani, now2, isCore); + if (ani_p.applying) { + ani_p.applying = false; + } + callbacks(ani_p.frames); + if (ani_p.step != null) { + ani_p.step(now2); + } + if (ani.completed()) { + current.splice(i2, 1); + ani_p.hooked = false; + ani_p.playing = false; + ani_p.started = false; + callbacks(ani_p.completes); + } + ranAnis = true; + } + if (!isCore && current.length === 0 && queue.length === 0) { + doneEles.push(ele2); + } + return ranAnis; + } + var ranEleAni = false; + for (var e = 0; e < eles.length; e++) { + var ele = eles[e]; + var handledThisEle = stepOne(ele); + ranEleAni = ranEleAni || handledThisEle; + } + var ranCoreAni = stepOne(cy, true); + if (ranEleAni || ranCoreAni) { + if (eles.length > 0) { + cy.notify("draw", eles); + } else { + cy.notify("draw"); + } + } + eles.unmerge(doneEles); + cy.emit("step"); + } + var corefn$8 = { + // pull in animation functions + animate: define.animate(), + animation: define.animation(), + animated: define.animated(), + clearQueue: define.clearQueue(), + delay: define.delay(), + delayAnimation: define.delayAnimation(), + stop: define.stop(), + addToAnimationPool: function addToAnimationPool(eles) { + var cy = this; + if (!cy.styleEnabled()) { + return; + } + cy._private.aniEles.merge(eles); + }, + stopAnimationLoop: function stopAnimationLoop() { + this._private.animationsRunning = false; + }, + startAnimationLoop: function startAnimationLoop() { + var cy = this; + cy._private.animationsRunning = true; + if (!cy.styleEnabled()) { + return; + } + function headlessStep() { + if (!cy._private.animationsRunning) { + return; + } + requestAnimationFrame2(function animationStep(now2) { + stepAll(now2, cy); + headlessStep(); + }); + } + var renderer3 = cy.renderer(); + if (renderer3 && renderer3.beforeRender) { + renderer3.beforeRender(function rendererAnimationStep(willDraw, now2) { + stepAll(now2, cy); + }, renderer3.beforeRenderPriorities.animations); + } else { + headlessStep(); + } + } + }; + var emitterOptions = { + qualifierCompare: function qualifierCompare(selector1, selector2) { + if (selector1 == null || selector2 == null) { + return selector1 == null && selector2 == null; + } else { + return selector1.sameText(selector2); + } + }, + eventMatches: function eventMatches(cy, listener, eventObj) { + var selector = listener.qualifier; + if (selector != null) { + return cy !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target); + } + return true; + }, + addEventFields: function addEventFields(cy, evt) { + evt.cy = cy; + evt.target = cy; + }, + callbackContext: function callbackContext(cy, listener, eventObj) { + return listener.qualifier != null ? eventObj.target : cy; + } + }; + var argSelector = function argSelector2(arg) { + if (string(arg)) { + return new Selector(arg); + } else { + return arg; + } + }; + var elesfn = { + createEmitter: function createEmitter() { + var _p = this._private; + if (!_p.emitter) { + _p.emitter = new Emitter(emitterOptions, this); + } + return this; + }, + emitter: function emitter() { + return this._private.emitter; + }, + on: function on(events, selector, callback) { + this.emitter().on(events, argSelector(selector), callback); + return this; + }, + removeListener: function removeListener(events, selector, callback) { + this.emitter().removeListener(events, argSelector(selector), callback); + return this; + }, + removeAllListeners: function removeAllListeners() { + this.emitter().removeAllListeners(); + return this; + }, + one: function one(events, selector, callback) { + this.emitter().one(events, argSelector(selector), callback); + return this; + }, + once: function once(events, selector, callback) { + this.emitter().one(events, argSelector(selector), callback); + return this; + }, + emit: function emit(events, extraParams) { + this.emitter().emit(events, extraParams); + return this; + }, + emitAndNotify: function emitAndNotify(event2, eles) { + this.emit(event2); + this.notify(event2, eles); + return this; + } + }; + define.eventAliasesOn(elesfn); + var corefn$7 = { + png: function png(options) { + var renderer3 = this._private.renderer; + options = options || {}; + return renderer3.png(options); + }, + jpg: function jpg(options) { + var renderer3 = this._private.renderer; + options = options || {}; + options.bg = options.bg || "#fff"; + return renderer3.jpg(options); + } + }; + corefn$7.jpeg = corefn$7.jpg; + var corefn$6 = { + layout: function layout2(options) { + var cy = this; + if (options == null) { + error("Layout options must be specified to make a layout"); + return; + } + if (options.name == null) { + error("A `name` must be specified to make a layout"); + return; + } + var name = options.name; + var Layout2 = cy.extension("layout", name); + if (Layout2 == null) { + error("No such layout `" + name + "` found. Did you forget to import it and `cytoscape.use()` it?"); + return; + } + var eles; + if (string(options.eles)) { + eles = cy.$(options.eles); + } else { + eles = options.eles != null ? options.eles : cy.$(); + } + var layout3 = new Layout2(extend({}, options, { + cy, + eles + })); + return layout3; + } + }; + corefn$6.createLayout = corefn$6.makeLayout = corefn$6.layout; + var corefn$5 = { + notify: function notify(eventName, eventEles) { + var _p = this._private; + if (this.batching()) { + _p.batchNotifications = _p.batchNotifications || {}; + var eles = _p.batchNotifications[eventName] = _p.batchNotifications[eventName] || this.collection(); + if (eventEles != null) { + eles.merge(eventEles); + } + return; + } + if (!_p.notificationsEnabled) { + return; + } + var renderer3 = this.renderer(); + if (this.destroyed() || !renderer3) { + return; + } + renderer3.notify(eventName, eventEles); + }, + notifications: function notifications(bool) { + var p2 = this._private; + if (bool === void 0) { + return p2.notificationsEnabled; + } else { + p2.notificationsEnabled = bool ? true : false; + } + return this; + }, + noNotifications: function noNotifications(callback) { + this.notifications(false); + callback(); + this.notifications(true); + }, + batching: function batching() { + return this._private.batchCount > 0; + }, + startBatch: function startBatch() { + var _p = this._private; + if (_p.batchCount == null) { + _p.batchCount = 0; + } + if (_p.batchCount === 0) { + _p.batchStyleEles = this.collection(); + _p.batchNotifications = {}; + } + _p.batchCount++; + return this; + }, + endBatch: function endBatch() { + var _p = this._private; + if (_p.batchCount === 0) { + return this; + } + _p.batchCount--; + if (_p.batchCount === 0) { + _p.batchStyleEles.updateStyle(); + var renderer3 = this.renderer(); + Object.keys(_p.batchNotifications).forEach(function(eventName) { + var eles = _p.batchNotifications[eventName]; + if (eles.empty()) { + renderer3.notify(eventName); + } else { + renderer3.notify(eventName, eles); + } + }); + } + return this; + }, + batch: function batch(callback) { + this.startBatch(); + callback(); + this.endBatch(); + return this; + }, + // for backwards compatibility + batchData: function batchData(map) { + var cy = this; + return this.batch(function() { + var ids = Object.keys(map); + for (var i2 = 0; i2 < ids.length; i2++) { + var id = ids[i2]; + var data2 = map[id]; + var ele = cy.getElementById(id); + ele.data(data2); + } + }); + } + }; + var rendererDefaults = defaults$g({ + hideEdgesOnViewport: false, + textureOnViewport: false, + motionBlur: false, + motionBlurOpacity: 0.05, + pixelRatio: void 0, + desktopTapThreshold: 4, + touchTapThreshold: 8, + wheelSensitivity: 1, + debug: false, + showFps: false + }); + var corefn$4 = { + renderTo: function renderTo(context, zoom, pan, pxRatio) { + var r = this._private.renderer; + r.renderTo(context, zoom, pan, pxRatio); + return this; + }, + renderer: function renderer3() { + return this._private.renderer; + }, + forceRender: function forceRender() { + this.notify("draw"); + return this; + }, + resize: function resize() { + this.invalidateSize(); + this.emitAndNotify("resize"); + return this; + }, + initRenderer: function initRenderer(options) { + var cy = this; + var RendererProto = cy.extension("renderer", options.name); + if (RendererProto == null) { + error("Can not initialise: No such renderer `".concat(options.name, "` found. Did you forget to import it and `cytoscape.use()` it?")); + return; + } + if (options.wheelSensitivity !== void 0) { + warn("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine."); + } + var rOpts = rendererDefaults(options); + rOpts.cy = cy; + cy._private.renderer = new RendererProto(rOpts); + this.notify("init"); + }, + destroyRenderer: function destroyRenderer() { + var cy = this; + cy.notify("destroy"); + var domEle = cy.container(); + if (domEle) { + domEle._cyreg = null; + while (domEle.childNodes.length > 0) { + domEle.removeChild(domEle.childNodes[0]); + } + } + cy._private.renderer = null; + cy.mutableElements().forEach(function(ele) { + var _p = ele._private; + _p.rscratch = {}; + _p.rstyle = {}; + _p.animation.current = []; + _p.animation.queue = []; + }); + }, + onRender: function onRender(fn2) { + return this.on("render", fn2); + }, + offRender: function offRender(fn2) { + return this.off("render", fn2); + } + }; + corefn$4.invalidateDimensions = corefn$4.resize; + var corefn$3 = { + // get a collection + // - empty collection on no args + // - collection of elements in the graph on selector arg + // - guarantee a returned collection when elements or collection specified + collection: function collection2(eles, opts) { + if (string(eles)) { + return this.$(eles); + } else if (elementOrCollection(eles)) { + return eles.collection(); + } else if (array(eles)) { + if (!opts) { + opts = {}; + } + return new Collection(this, eles, opts.unique, opts.removed); + } + return new Collection(this); + }, + nodes: function nodes2(selector) { + var nodes3 = this.$(function(ele) { + return ele.isNode(); + }); + if (selector) { + return nodes3.filter(selector); + } + return nodes3; + }, + edges: function edges(selector) { + var edges2 = this.$(function(ele) { + return ele.isEdge(); + }); + if (selector) { + return edges2.filter(selector); + } + return edges2; + }, + // search the graph like jQuery + $: function $(selector) { + var eles = this._private.elements; + if (selector) { + return eles.filter(selector); + } else { + return eles.spawnSelf(); + } + }, + mutableElements: function mutableElements() { + return this._private.elements; + } + }; + corefn$3.elements = corefn$3.filter = corefn$3.$; + var styfn$8 = {}; + var TRUE = "t"; + var FALSE = "f"; + styfn$8.apply = function(eles) { + var self2 = this; + var _p = self2._private; + var cy = _p.cy; + var updatedEles = cy.collection(); + for (var ie = 0; ie < eles.length; ie++) { + var ele = eles[ie]; + var cxtMeta = self2.getContextMeta(ele); + if (cxtMeta.empty) { + continue; + } + var cxtStyle = self2.getContextStyle(cxtMeta); + var app = self2.applyContextStyle(cxtMeta, cxtStyle, ele); + if (ele._private.appliedInitStyle) { + self2.updateTransitions(ele, app.diffProps); + } else { + ele._private.appliedInitStyle = true; + } + var hintsDiff = self2.updateStyleHints(ele); + if (hintsDiff) { + updatedEles.push(ele); + } + } + return updatedEles; + }; + styfn$8.getPropertiesDiff = function(oldCxtKey, newCxtKey) { + var self2 = this; + var cache2 = self2._private.propDiffs = self2._private.propDiffs || {}; + var dualCxtKey = oldCxtKey + "-" + newCxtKey; + var cachedVal = cache2[dualCxtKey]; + if (cachedVal) { + return cachedVal; + } + var diffProps = []; + var addedProp = {}; + for (var i2 = 0; i2 < self2.length; i2++) { + var cxt = self2[i2]; + var oldHasCxt = oldCxtKey[i2] === TRUE; + var newHasCxt = newCxtKey[i2] === TRUE; + var cxtHasDiffed = oldHasCxt !== newHasCxt; + var cxtHasMappedProps = cxt.mappedProperties.length > 0; + if (cxtHasDiffed || newHasCxt && cxtHasMappedProps) { + var props = void 0; + if (cxtHasDiffed && cxtHasMappedProps) { + props = cxt.properties; + } else if (cxtHasDiffed) { + props = cxt.properties; + } else if (cxtHasMappedProps) { + props = cxt.mappedProperties; + } + for (var j = 0; j < props.length; j++) { + var prop = props[j]; + var name = prop.name; + var laterCxtOverrides = false; + for (var k = i2 + 1; k < self2.length; k++) { + var laterCxt = self2[k]; + var hasLaterCxt = newCxtKey[k] === TRUE; + if (!hasLaterCxt) { + continue; + } + laterCxtOverrides = laterCxt.properties[prop.name] != null; + if (laterCxtOverrides) { + break; + } + } + if (!addedProp[name] && !laterCxtOverrides) { + addedProp[name] = true; + diffProps.push(name); + } + } + } + } + cache2[dualCxtKey] = diffProps; + return diffProps; + }; + styfn$8.getContextMeta = function(ele) { + var self2 = this; + var cxtKey = ""; + var diffProps; + var prevKey = ele._private.styleCxtKey || ""; + for (var i2 = 0; i2 < self2.length; i2++) { + var context = self2[i2]; + var contextSelectorMatches = context.selector && context.selector.matches(ele); + if (contextSelectorMatches) { + cxtKey += TRUE; + } else { + cxtKey += FALSE; + } + } + diffProps = self2.getPropertiesDiff(prevKey, cxtKey); + ele._private.styleCxtKey = cxtKey; + return { + key: cxtKey, + diffPropNames: diffProps, + empty: diffProps.length === 0 + }; + }; + styfn$8.getContextStyle = function(cxtMeta) { + var cxtKey = cxtMeta.key; + var self2 = this; + var cxtStyles = this._private.contextStyles = this._private.contextStyles || {}; + if (cxtStyles[cxtKey]) { + return cxtStyles[cxtKey]; + } + var style = { + _private: { + key: cxtKey + } + }; + for (var i2 = 0; i2 < self2.length; i2++) { + var cxt = self2[i2]; + var hasCxt = cxtKey[i2] === TRUE; + if (!hasCxt) { + continue; + } + for (var j = 0; j < cxt.properties.length; j++) { + var prop = cxt.properties[j]; + style[prop.name] = prop; + } + } + cxtStyles[cxtKey] = style; + return style; + }; + styfn$8.applyContextStyle = function(cxtMeta, cxtStyle, ele) { + var self2 = this; + var diffProps = cxtMeta.diffPropNames; + var retDiffProps = {}; + var types = self2.types; + for (var i2 = 0; i2 < diffProps.length; i2++) { + var diffPropName = diffProps[i2]; + var cxtProp = cxtStyle[diffPropName]; + var eleProp = ele.pstyle(diffPropName); + if (!cxtProp) { + if (!eleProp) { + continue; + } else if (eleProp.bypass) { + cxtProp = { + name: diffPropName, + deleteBypassed: true + }; + } else { + cxtProp = { + name: diffPropName, + "delete": true + }; + } + } + if (eleProp === cxtProp) { + continue; + } + if (cxtProp.mapped === types.fn && eleProp != null && eleProp.mapping != null && eleProp.mapping.value === cxtProp.value) { + var mapping = eleProp.mapping; + var fnValue = mapping.fnValue = cxtProp.value(ele); + if (fnValue === mapping.prevFnValue) { + continue; + } + } + var retDiffProp = retDiffProps[diffPropName] = { + prev: eleProp + }; + self2.applyParsedProperty(ele, cxtProp); + retDiffProp.next = ele.pstyle(diffPropName); + if (retDiffProp.next && retDiffProp.next.bypass) { + retDiffProp.next = retDiffProp.next.bypassed; + } + } + return { + diffProps: retDiffProps + }; + }; + styfn$8.updateStyleHints = function(ele) { + var _p = ele._private; + var self2 = this; + var propNames = self2.propertyGroupNames; + var propGrKeys = self2.propertyGroupKeys; + var propHash = function propHash2(ele2, propNames2, seedKey) { + return self2.getPropertiesHash(ele2, propNames2, seedKey); + }; + var oldStyleKey = _p.styleKey; + if (ele.removed()) { + return false; + } + var isNode = _p.group === "nodes"; + var overriddenStyles = ele._private.style; + propNames = Object.keys(overriddenStyles); + for (var i2 = 0; i2 < propGrKeys.length; i2++) { + var grKey = propGrKeys[i2]; + _p.styleKeys[grKey] = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]; + } + var updateGrKey1 = function updateGrKey12(val, grKey2) { + return _p.styleKeys[grKey2][0] = hashInt(val, _p.styleKeys[grKey2][0]); + }; + var updateGrKey2 = function updateGrKey22(val, grKey2) { + return _p.styleKeys[grKey2][1] = hashIntAlt(val, _p.styleKeys[grKey2][1]); + }; + var updateGrKey = function updateGrKey3(val, grKey2) { + updateGrKey1(val, grKey2); + updateGrKey2(val, grKey2); + }; + var updateGrKeyWStr = function updateGrKeyWStr2(strVal, grKey2) { + for (var j = 0; j < strVal.length; j++) { + var ch = strVal.charCodeAt(j); + updateGrKey1(ch, grKey2); + updateGrKey2(ch, grKey2); + } + }; + var N = 2e9; + var cleanNum = function cleanNum2(val) { + return -128 < val && val < 128 && Math.floor(val) !== val ? N - (val * 1024 | 0) : val; + }; + for (var _i = 0; _i < propNames.length; _i++) { + var name = propNames[_i]; + var parsedProp = overriddenStyles[name]; + if (parsedProp == null) { + continue; + } + var propInfo = this.properties[name]; + var type = propInfo.type; + var _grKey = propInfo.groupKey; + var normalizedNumberVal = void 0; + if (propInfo.hashOverride != null) { + normalizedNumberVal = propInfo.hashOverride(ele, parsedProp); + } else if (parsedProp.pfValue != null) { + normalizedNumberVal = parsedProp.pfValue; + } + var numberVal = propInfo.enums == null ? parsedProp.value : null; + var haveNormNum = normalizedNumberVal != null; + var haveUnitedNum = numberVal != null; + var haveNum = haveNormNum || haveUnitedNum; + var units = parsedProp.units; + if (type.number && haveNum && !type.multiple) { + var v = haveNormNum ? normalizedNumberVal : numberVal; + updateGrKey(cleanNum(v), _grKey); + if (!haveNormNum && units != null) { + updateGrKeyWStr(units, _grKey); + } + } else { + updateGrKeyWStr(parsedProp.strValue, _grKey); + } + } + var hash = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]; + for (var _i2 = 0; _i2 < propGrKeys.length; _i2++) { + var _grKey2 = propGrKeys[_i2]; + var grHash = _p.styleKeys[_grKey2]; + hash[0] = hashInt(grHash[0], hash[0]); + hash[1] = hashIntAlt(grHash[1], hash[1]); + } + _p.styleKey = combineHashes(hash[0], hash[1]); + var sk = _p.styleKeys; + _p.labelDimsKey = combineHashesArray(sk.labelDimensions); + var labelKeys = propHash(ele, ["label"], sk.labelDimensions); + _p.labelKey = combineHashesArray(labelKeys); + _p.labelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, labelKeys)); + if (!isNode) { + var sourceLabelKeys = propHash(ele, ["source-label"], sk.labelDimensions); + _p.sourceLabelKey = combineHashesArray(sourceLabelKeys); + _p.sourceLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, sourceLabelKeys)); + var targetLabelKeys = propHash(ele, ["target-label"], sk.labelDimensions); + _p.targetLabelKey = combineHashesArray(targetLabelKeys); + _p.targetLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, targetLabelKeys)); + } + if (isNode) { + var _p$styleKeys = _p.styleKeys, nodeBody = _p$styleKeys.nodeBody, nodeBorder = _p$styleKeys.nodeBorder, nodeOutline = _p$styleKeys.nodeOutline, backgroundImage = _p$styleKeys.backgroundImage, compound = _p$styleKeys.compound, pie = _p$styleKeys.pie; + var nodeKeys = [nodeBody, nodeBorder, nodeOutline, backgroundImage, compound, pie].filter(function(k) { + return k != null; + }).reduce(hashArrays, [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]); + _p.nodeKey = combineHashesArray(nodeKeys); + _p.hasPie = pie != null && pie[0] !== DEFAULT_HASH_SEED && pie[1] !== DEFAULT_HASH_SEED_ALT; + } + return oldStyleKey !== _p.styleKey; + }; + styfn$8.clearStyleHints = function(ele) { + var _p = ele._private; + _p.styleCxtKey = ""; + _p.styleKeys = {}; + _p.styleKey = null; + _p.labelKey = null; + _p.labelStyleKey = null; + _p.sourceLabelKey = null; + _p.sourceLabelStyleKey = null; + _p.targetLabelKey = null; + _p.targetLabelStyleKey = null; + _p.nodeKey = null; + _p.hasPie = null; + }; + styfn$8.applyParsedProperty = function(ele, parsedProp) { + var self2 = this; + var prop = parsedProp; + var style = ele._private.style; + var flatProp; + var types = self2.types; + var type = self2.properties[prop.name].type; + var propIsBypass = prop.bypass; + var origProp = style[prop.name]; + var origPropIsBypass = origProp && origProp.bypass; + var _p = ele._private; + var flatPropMapping = "mapping"; + var getVal = function getVal2(p2) { + if (p2 == null) { + return null; + } else if (p2.pfValue != null) { + return p2.pfValue; + } else { + return p2.value; + } + }; + var checkTriggers = function checkTriggers2() { + var fromVal = getVal(origProp); + var toVal = getVal(prop); + self2.checkTriggers(ele, prop.name, fromVal, toVal); + }; + if (parsedProp.name === "curve-style" && ele.isEdge() && // loops must be bundled beziers + (parsedProp.value !== "bezier" && ele.isLoop() || // edges connected to compound nodes can not be haystacks + parsedProp.value === "haystack" && (ele.source().isParent() || ele.target().isParent()))) { + prop = parsedProp = this.parse(parsedProp.name, "bezier", propIsBypass); + } + if (prop["delete"]) { + style[prop.name] = void 0; + checkTriggers(); + return true; + } + if (prop.deleteBypassed) { + if (!origProp) { + checkTriggers(); + return true; + } else if (origProp.bypass) { + origProp.bypassed = void 0; + checkTriggers(); + return true; + } else { + return false; + } + } + if (prop.deleteBypass) { + if (!origProp) { + checkTriggers(); + return true; + } else if (origProp.bypass) { + style[prop.name] = origProp.bypassed; + checkTriggers(); + return true; + } else { + return false; + } + } + var printMappingErr = function printMappingErr2() { + warn("Do not assign mappings to elements without corresponding data (i.e. ele `" + ele.id() + "` has no mapping for property `" + prop.name + "` with data field `" + prop.field + "`); try a `[" + prop.field + "]` selector to limit scope to elements with `" + prop.field + "` defined"); + }; + switch (prop.mapped) { + case types.mapData: { + var fields = prop.field.split("."); + var fieldVal = _p.data; + for (var i2 = 0; i2 < fields.length && fieldVal; i2++) { + var field = fields[i2]; + fieldVal = fieldVal[field]; + } + if (fieldVal == null) { + printMappingErr(); + return false; + } + var percent; + if (!number$1(fieldVal)) { + warn("Do not use continuous mappers without specifying numeric data (i.e. `" + prop.field + ": " + fieldVal + "` for `" + ele.id() + "` is non-numeric)"); + return false; + } else { + var fieldWidth = prop.fieldMax - prop.fieldMin; + if (fieldWidth === 0) { + percent = 0; + } else { + percent = (fieldVal - prop.fieldMin) / fieldWidth; + } + } + if (percent < 0) { + percent = 0; + } else if (percent > 1) { + percent = 1; + } + if (type.color) { + var r1 = prop.valueMin[0]; + var r2 = prop.valueMax[0]; + var g1 = prop.valueMin[1]; + var g2 = prop.valueMax[1]; + var b1 = prop.valueMin[2]; + var b2 = prop.valueMax[2]; + var a1 = prop.valueMin[3] == null ? 1 : prop.valueMin[3]; + var a2 = prop.valueMax[3] == null ? 1 : prop.valueMax[3]; + var clr = [Math.round(r1 + (r2 - r1) * percent), Math.round(g1 + (g2 - g1) * percent), Math.round(b1 + (b2 - b1) * percent), Math.round(a1 + (a2 - a1) * percent)]; + flatProp = { + // colours are simple, so just create the flat property instead of expensive string parsing + bypass: prop.bypass, + // we're a bypass if the mapping property is a bypass + name: prop.name, + value: clr, + strValue: "rgb(" + clr[0] + ", " + clr[1] + ", " + clr[2] + ")" + }; + } else if (type.number) { + var calcValue = prop.valueMin + (prop.valueMax - prop.valueMin) * percent; + flatProp = this.parse(prop.name, calcValue, prop.bypass, flatPropMapping); + } else { + return false; + } + if (!flatProp) { + printMappingErr(); + return false; + } + flatProp.mapping = prop; + prop = flatProp; + break; + } + case types.data: { + var _fields = prop.field.split("."); + var _fieldVal = _p.data; + for (var _i3 = 0; _i3 < _fields.length && _fieldVal; _i3++) { + var _field = _fields[_i3]; + _fieldVal = _fieldVal[_field]; + } + if (_fieldVal != null) { + flatProp = this.parse(prop.name, _fieldVal, prop.bypass, flatPropMapping); + } + if (!flatProp) { + printMappingErr(); + return false; + } + flatProp.mapping = prop; + prop = flatProp; + break; + } + case types.fn: { + var fn2 = prop.value; + var fnRetVal = prop.fnValue != null ? prop.fnValue : fn2(ele); + prop.prevFnValue = fnRetVal; + if (fnRetVal == null) { + warn("Custom function mappers may not return null (i.e. `" + prop.name + "` for ele `" + ele.id() + "` is null)"); + return false; + } + flatProp = this.parse(prop.name, fnRetVal, prop.bypass, flatPropMapping); + if (!flatProp) { + warn("Custom function mappers may not return invalid values for the property type (i.e. `" + prop.name + "` for ele `" + ele.id() + "` is invalid)"); + return false; + } + flatProp.mapping = copy(prop); + prop = flatProp; + break; + } + case void 0: + break; + default: + return false; + } + if (propIsBypass) { + if (origPropIsBypass) { + prop.bypassed = origProp.bypassed; + } else { + prop.bypassed = origProp; + } + style[prop.name] = prop; + } else { + if (origPropIsBypass) { + origProp.bypassed = prop; + } else { + style[prop.name] = prop; + } + } + checkTriggers(); + return true; + }; + styfn$8.cleanElements = function(eles, keepBypasses) { + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + this.clearStyleHints(ele); + ele.dirtyCompoundBoundsCache(); + ele.dirtyBoundingBoxCache(); + if (!keepBypasses) { + ele._private.style = {}; + } else { + var style = ele._private.style; + var propNames = Object.keys(style); + for (var j = 0; j < propNames.length; j++) { + var propName = propNames[j]; + var eleProp = style[propName]; + if (eleProp != null) { + if (eleProp.bypass) { + eleProp.bypassed = null; + } else { + style[propName] = null; + } + } + } + } + } + }; + styfn$8.update = function() { + var cy = this._private.cy; + var eles = cy.mutableElements(); + eles.updateStyle(); + }; + styfn$8.updateTransitions = function(ele, diffProps) { + var self2 = this; + var _p = ele._private; + var props = ele.pstyle("transition-property").value; + var duration = ele.pstyle("transition-duration").pfValue; + var delay = ele.pstyle("transition-delay").pfValue; + if (props.length > 0 && duration > 0) { + var style = {}; + var anyPrev = false; + for (var i2 = 0; i2 < props.length; i2++) { + var prop = props[i2]; + var styProp = ele.pstyle(prop); + var diffProp = diffProps[prop]; + if (!diffProp) { + continue; + } + var prevProp = diffProp.prev; + var fromProp = prevProp; + var toProp = diffProp.next != null ? diffProp.next : styProp; + var diff = false; + var initVal = void 0; + var initDt = 1e-6; + if (!fromProp) { + continue; + } + if (number$1(fromProp.pfValue) && number$1(toProp.pfValue)) { + diff = toProp.pfValue - fromProp.pfValue; + initVal = fromProp.pfValue + initDt * diff; + } else if (number$1(fromProp.value) && number$1(toProp.value)) { + diff = toProp.value - fromProp.value; + initVal = fromProp.value + initDt * diff; + } else if (array(fromProp.value) && array(toProp.value)) { + diff = fromProp.value[0] !== toProp.value[0] || fromProp.value[1] !== toProp.value[1] || fromProp.value[2] !== toProp.value[2]; + initVal = fromProp.strValue; + } + if (diff) { + style[prop] = toProp.strValue; + this.applyBypass(ele, prop, initVal); + anyPrev = true; + } + } + if (!anyPrev) { + return; + } + _p.transitioning = true; + new Promise$1(function(resolve2) { + if (delay > 0) { + ele.delayAnimation(delay).play().promise().then(resolve2); + } else { + resolve2(); + } + }).then(function() { + return ele.animation({ + style, + duration, + easing: ele.pstyle("transition-timing-function").value, + queue: false + }).play().promise(); + }).then(function() { + self2.removeBypasses(ele, props); + ele.emitAndNotify("style"); + _p.transitioning = false; + }); + } else if (_p.transitioning) { + this.removeBypasses(ele, props); + ele.emitAndNotify("style"); + _p.transitioning = false; + } + }; + styfn$8.checkTrigger = function(ele, name, fromValue, toValue, getTrigger, onTrigger) { + var prop = this.properties[name]; + var triggerCheck = getTrigger(prop); + if (triggerCheck != null && triggerCheck(fromValue, toValue)) { + onTrigger(prop); + } + }; + styfn$8.checkZOrderTrigger = function(ele, name, fromValue, toValue) { + var _this = this; + this.checkTrigger(ele, name, fromValue, toValue, function(prop) { + return prop.triggersZOrder; + }, function() { + _this._private.cy.notify("zorder", ele); + }); + }; + styfn$8.checkBoundsTrigger = function(ele, name, fromValue, toValue) { + this.checkTrigger(ele, name, fromValue, toValue, function(prop) { + return prop.triggersBounds; + }, function(prop) { + ele.dirtyCompoundBoundsCache(); + ele.dirtyBoundingBoxCache(); + if ( + // only for beziers -- so performance of other edges isn't affected + prop.triggersBoundsOfParallelBeziers && name === "curve-style" && (fromValue === "bezier" || toValue === "bezier") + ) { + ele.parallelEdges().forEach(function(pllEdge) { + if (pllEdge.isBundledBezier()) { + pllEdge.dirtyBoundingBoxCache(); + } + }); + } + if (prop.triggersBoundsOfConnectedEdges && name === "display" && (fromValue === "none" || toValue === "none")) { + ele.connectedEdges().forEach(function(edge) { + edge.dirtyBoundingBoxCache(); + }); + } + }); + }; + styfn$8.checkTriggers = function(ele, name, fromValue, toValue) { + ele.dirtyStyleCache(); + this.checkZOrderTrigger(ele, name, fromValue, toValue); + this.checkBoundsTrigger(ele, name, fromValue, toValue); + }; + var styfn$7 = {}; + styfn$7.applyBypass = function(eles, name, value, updateTransitions) { + var self2 = this; + var props = []; + var isBypass = true; + if (name === "*" || name === "**") { + if (value !== void 0) { + for (var i2 = 0; i2 < self2.properties.length; i2++) { + var prop = self2.properties[i2]; + var _name = prop.name; + var parsedProp = this.parse(_name, value, true); + if (parsedProp) { + props.push(parsedProp); + } + } + } + } else if (string(name)) { + var _parsedProp = this.parse(name, value, true); + if (_parsedProp) { + props.push(_parsedProp); + } + } else if (plainObject(name)) { + var specifiedProps = name; + updateTransitions = value; + var names = Object.keys(specifiedProps); + for (var _i = 0; _i < names.length; _i++) { + var _name2 = names[_i]; + var _value = specifiedProps[_name2]; + if (_value === void 0) { + _value = specifiedProps[dash2camel(_name2)]; + } + if (_value !== void 0) { + var _parsedProp2 = this.parse(_name2, _value, true); + if (_parsedProp2) { + props.push(_parsedProp2); + } + } + } + } else { + return false; + } + if (props.length === 0) { + return false; + } + var ret = false; + for (var _i2 = 0; _i2 < eles.length; _i2++) { + var ele = eles[_i2]; + var diffProps = {}; + var diffProp = void 0; + for (var j = 0; j < props.length; j++) { + var _prop = props[j]; + if (updateTransitions) { + var prevProp = ele.pstyle(_prop.name); + diffProp = diffProps[_prop.name] = { + prev: prevProp + }; + } + ret = this.applyParsedProperty(ele, copy(_prop)) || ret; + if (updateTransitions) { + diffProp.next = ele.pstyle(_prop.name); + } + } + if (ret) { + this.updateStyleHints(ele); + } + if (updateTransitions) { + this.updateTransitions(ele, diffProps, isBypass); + } + } + return ret; + }; + styfn$7.overrideBypass = function(eles, name, value) { + name = camel2dash(name); + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + var prop = ele._private.style[name]; + var type = this.properties[name].type; + var isColor = type.color; + var isMulti = type.mutiple; + var oldValue = !prop ? null : prop.pfValue != null ? prop.pfValue : prop.value; + if (!prop || !prop.bypass) { + this.applyBypass(ele, name, value); + } else { + prop.value = value; + if (prop.pfValue != null) { + prop.pfValue = value; + } + if (isColor) { + prop.strValue = "rgb(" + value.join(",") + ")"; + } else if (isMulti) { + prop.strValue = value.join(" "); + } else { + prop.strValue = "" + value; + } + this.updateStyleHints(ele); + } + this.checkTriggers(ele, name, oldValue, value); + } + }; + styfn$7.removeAllBypasses = function(eles, updateTransitions) { + return this.removeBypasses(eles, this.propertyNames, updateTransitions); + }; + styfn$7.removeBypasses = function(eles, props, updateTransitions) { + var isBypass = true; + for (var j = 0; j < eles.length; j++) { + var ele = eles[j]; + var diffProps = {}; + for (var i2 = 0; i2 < props.length; i2++) { + var name = props[i2]; + var prop = this.properties[name]; + var prevProp = ele.pstyle(prop.name); + if (!prevProp || !prevProp.bypass) { + continue; + } + var value = ""; + var parsedProp = this.parse(name, value, true); + var diffProp = diffProps[prop.name] = { + prev: prevProp + }; + this.applyParsedProperty(ele, parsedProp); + diffProp.next = ele.pstyle(prop.name); + } + this.updateStyleHints(ele); + if (updateTransitions) { + this.updateTransitions(ele, diffProps, isBypass); + } + } + }; + var styfn$6 = {}; + styfn$6.getEmSizeInPixels = function() { + var px = this.containerCss("font-size"); + if (px != null) { + return parseFloat(px); + } else { + return 1; + } + }; + styfn$6.containerCss = function(propName) { + var cy = this._private.cy; + var domElement2 = cy.container(); + var containerWindow = cy.window(); + if (containerWindow && domElement2 && containerWindow.getComputedStyle) { + return containerWindow.getComputedStyle(domElement2).getPropertyValue(propName); + } + }; + var styfn$5 = {}; + styfn$5.getRenderedStyle = function(ele, prop) { + if (prop) { + return this.getStylePropertyValue(ele, prop, true); + } else { + return this.getRawStyle(ele, true); + } + }; + styfn$5.getRawStyle = function(ele, isRenderedVal) { + var self2 = this; + ele = ele[0]; + if (ele) { + var rstyle = {}; + for (var i2 = 0; i2 < self2.properties.length; i2++) { + var prop = self2.properties[i2]; + var val = self2.getStylePropertyValue(ele, prop.name, isRenderedVal); + if (val != null) { + rstyle[prop.name] = val; + rstyle[dash2camel(prop.name)] = val; + } + } + return rstyle; + } + }; + styfn$5.getIndexedStyle = function(ele, property, subproperty, index) { + var pstyle = ele.pstyle(property)[subproperty][index]; + return pstyle != null ? pstyle : ele.cy().style().getDefaultProperty(property)[subproperty][0]; + }; + styfn$5.getStylePropertyValue = function(ele, propName, isRenderedVal) { + var self2 = this; + ele = ele[0]; + if (ele) { + var prop = self2.properties[propName]; + if (prop.alias) { + prop = prop.pointsTo; + } + var type = prop.type; + var styleProp = ele.pstyle(prop.name); + if (styleProp) { + var value = styleProp.value, units = styleProp.units, strValue = styleProp.strValue; + if (isRenderedVal && type.number && value != null && number$1(value)) { + var zoom = ele.cy().zoom(); + var getRenderedValue = function getRenderedValue2(val) { + return val * zoom; + }; + var getValueStringWithUnits = function getValueStringWithUnits2(val, units2) { + return getRenderedValue(val) + units2; + }; + var isArrayValue = array(value); + var haveUnits = isArrayValue ? units.every(function(u) { + return u != null; + }) : units != null; + if (haveUnits) { + if (isArrayValue) { + return value.map(function(v, i2) { + return getValueStringWithUnits(v, units[i2]); + }).join(" "); + } else { + return getValueStringWithUnits(value, units); + } + } else { + if (isArrayValue) { + return value.map(function(v) { + return string(v) ? v : "" + getRenderedValue(v); + }).join(" "); + } else { + return "" + getRenderedValue(value); + } + } + } else if (strValue != null) { + return strValue; + } + } + return null; + } + }; + styfn$5.getAnimationStartStyle = function(ele, aniProps) { + var rstyle = {}; + for (var i2 = 0; i2 < aniProps.length; i2++) { + var aniProp = aniProps[i2]; + var name = aniProp.name; + var styleProp = ele.pstyle(name); + if (styleProp !== void 0) { + if (plainObject(styleProp)) { + styleProp = this.parse(name, styleProp.strValue); + } else { + styleProp = this.parse(name, styleProp); + } + } + if (styleProp) { + rstyle[name] = styleProp; + } + } + return rstyle; + }; + styfn$5.getPropsList = function(propsObj) { + var self2 = this; + var rstyle = []; + var style = propsObj; + var props = self2.properties; + if (style) { + var names = Object.keys(style); + for (var i2 = 0; i2 < names.length; i2++) { + var name = names[i2]; + var val = style[name]; + var prop = props[name] || props[camel2dash(name)]; + var styleProp = this.parse(prop.name, val); + if (styleProp) { + rstyle.push(styleProp); + } + } + } + return rstyle; + }; + styfn$5.getNonDefaultPropertiesHash = function(ele, propNames, seed) { + var hash = seed.slice(); + var name, val, strVal, chVal; + var i2, j; + for (i2 = 0; i2 < propNames.length; i2++) { + name = propNames[i2]; + val = ele.pstyle(name, false); + if (val == null) { + continue; + } else if (val.pfValue != null) { + hash[0] = hashInt(chVal, hash[0]); + hash[1] = hashIntAlt(chVal, hash[1]); + } else { + strVal = val.strValue; + for (j = 0; j < strVal.length; j++) { + chVal = strVal.charCodeAt(j); + hash[0] = hashInt(chVal, hash[0]); + hash[1] = hashIntAlt(chVal, hash[1]); + } + } + } + return hash; + }; + styfn$5.getPropertiesHash = styfn$5.getNonDefaultPropertiesHash; + var styfn$4 = {}; + styfn$4.appendFromJson = function(json) { + var style = this; + for (var i2 = 0; i2 < json.length; i2++) { + var context = json[i2]; + var selector = context.selector; + var props = context.style || context.css; + var names = Object.keys(props); + style.selector(selector); + for (var j = 0; j < names.length; j++) { + var name = names[j]; + var value = props[name]; + style.css(name, value); + } + } + return style; + }; + styfn$4.fromJson = function(json) { + var style = this; + style.resetToDefault(); + style.appendFromJson(json); + return style; + }; + styfn$4.json = function() { + var json = []; + for (var i2 = this.defaultLength; i2 < this.length; i2++) { + var cxt = this[i2]; + var selector = cxt.selector; + var props = cxt.properties; + var css = {}; + for (var j = 0; j < props.length; j++) { + var prop = props[j]; + css[prop.name] = prop.strValue; + } + json.push({ + selector: !selector ? "core" : selector.toString(), + style: css + }); + } + return json; + }; + var styfn$3 = {}; + styfn$3.appendFromString = function(string2) { + var self2 = this; + var style = this; + var remaining = "" + string2; + var selAndBlockStr; + var blockRem; + var propAndValStr; + remaining = remaining.replace(/[/][*](\s|.)+?[*][/]/g, ""); + function removeSelAndBlockFromRemaining() { + if (remaining.length > selAndBlockStr.length) { + remaining = remaining.substr(selAndBlockStr.length); + } else { + remaining = ""; + } + } + function removePropAndValFromRem() { + if (blockRem.length > propAndValStr.length) { + blockRem = blockRem.substr(propAndValStr.length); + } else { + blockRem = ""; + } + } + for (; ; ) { + var nothingLeftToParse = remaining.match(/^\s*$/); + if (nothingLeftToParse) { + break; + } + var selAndBlock = remaining.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/); + if (!selAndBlock) { + warn("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: " + remaining); + break; + } + selAndBlockStr = selAndBlock[0]; + var selectorStr = selAndBlock[1]; + if (selectorStr !== "core") { + var selector = new Selector(selectorStr); + if (selector.invalid) { + warn("Skipping parsing of block: Invalid selector found in string stylesheet: " + selectorStr); + removeSelAndBlockFromRemaining(); + continue; + } + } + var blockStr = selAndBlock[2]; + var invalidBlock = false; + blockRem = blockStr; + var props = []; + for (; ; ) { + var _nothingLeftToParse = blockRem.match(/^\s*$/); + if (_nothingLeftToParse) { + break; + } + var propAndVal = blockRem.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/); + if (!propAndVal) { + warn("Skipping parsing of block: Invalid formatting of style property and value definitions found in:" + blockStr); + invalidBlock = true; + break; + } + propAndValStr = propAndVal[0]; + var propStr = propAndVal[1]; + var valStr = propAndVal[2]; + var prop = self2.properties[propStr]; + if (!prop) { + warn("Skipping property: Invalid property name in: " + propAndValStr); + removePropAndValFromRem(); + continue; + } + var parsedProp = style.parse(propStr, valStr); + if (!parsedProp) { + warn("Skipping property: Invalid property definition in: " + propAndValStr); + removePropAndValFromRem(); + continue; + } + props.push({ + name: propStr, + val: valStr + }); + removePropAndValFromRem(); + } + if (invalidBlock) { + removeSelAndBlockFromRemaining(); + break; + } + style.selector(selectorStr); + for (var i2 = 0; i2 < props.length; i2++) { + var _prop = props[i2]; + style.css(_prop.name, _prop.val); + } + removeSelAndBlockFromRemaining(); + } + return style; + }; + styfn$3.fromString = function(string2) { + var style = this; + style.resetToDefault(); + style.appendFromString(string2); + return style; + }; + var styfn$2 = {}; + (function() { + var number$12 = number; + var rgba2 = rgbaNoBackRefs; + var hsla2 = hslaNoBackRefs; + var hex3$1 = hex3; + var hex6$1 = hex6; + var data2 = function data3(prefix) { + return "^" + prefix + "\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"; + }; + var mapData = function mapData2(prefix) { + var mapArg = number$12 + "|\\w+|" + rgba2 + "|" + hsla2 + "|" + hex3$1 + "|" + hex6$1; + return "^" + prefix + "\\s*\\(([\\w\\.]+)\\s*\\,\\s*(" + number$12 + ")\\s*\\,\\s*(" + number$12 + ")\\s*,\\s*(" + mapArg + ")\\s*\\,\\s*(" + mapArg + ")\\)$"; + }; + var urlRegexes = [`^url\\s*\\(\\s*['"]?(.+?)['"]?\\s*\\)$`, "^(none)$", "^(.+)$"]; + styfn$2.types = { + time: { + number: true, + min: 0, + units: "s|ms", + implicitUnits: "ms" + }, + percent: { + number: true, + min: 0, + max: 100, + units: "%", + implicitUnits: "%" + }, + percentages: { + number: true, + min: 0, + max: 100, + units: "%", + implicitUnits: "%", + multiple: true + }, + zeroOneNumber: { + number: true, + min: 0, + max: 1, + unitless: true + }, + zeroOneNumbers: { + number: true, + min: 0, + max: 1, + unitless: true, + multiple: true + }, + nOneOneNumber: { + number: true, + min: -1, + max: 1, + unitless: true + }, + nonNegativeInt: { + number: true, + min: 0, + integer: true, + unitless: true + }, + nonNegativeNumber: { + number: true, + min: 0, + unitless: true + }, + position: { + enums: ["parent", "origin"] + }, + nodeSize: { + number: true, + min: 0, + enums: ["label"] + }, + number: { + number: true, + unitless: true + }, + numbers: { + number: true, + unitless: true, + multiple: true + }, + positiveNumber: { + number: true, + unitless: true, + min: 0, + strictMin: true + }, + size: { + number: true, + min: 0 + }, + bidirectionalSize: { + number: true + }, + // allows negative + bidirectionalSizeMaybePercent: { + number: true, + allowPercent: true + }, + // allows negative + bidirectionalSizes: { + number: true, + multiple: true + }, + // allows negative + sizeMaybePercent: { + number: true, + min: 0, + allowPercent: true + }, + axisDirection: { + enums: ["horizontal", "leftward", "rightward", "vertical", "upward", "downward", "auto"] + }, + paddingRelativeTo: { + enums: ["width", "height", "average", "min", "max"] + }, + bgWH: { + number: true, + min: 0, + allowPercent: true, + enums: ["auto"], + multiple: true + }, + bgPos: { + number: true, + allowPercent: true, + multiple: true + }, + bgRelativeTo: { + enums: ["inner", "include-padding"], + multiple: true + }, + bgRepeat: { + enums: ["repeat", "repeat-x", "repeat-y", "no-repeat"], + multiple: true + }, + bgFit: { + enums: ["none", "contain", "cover"], + multiple: true + }, + bgCrossOrigin: { + enums: ["anonymous", "use-credentials", "null"], + multiple: true + }, + bgClip: { + enums: ["none", "node"], + multiple: true + }, + bgContainment: { + enums: ["inside", "over"], + multiple: true + }, + color: { + color: true + }, + colors: { + color: true, + multiple: true + }, + fill: { + enums: ["solid", "linear-gradient", "radial-gradient"] + }, + bool: { + enums: ["yes", "no"] + }, + bools: { + enums: ["yes", "no"], + multiple: true + }, + lineStyle: { + enums: ["solid", "dotted", "dashed"] + }, + lineCap: { + enums: ["butt", "round", "square"] + }, + borderStyle: { + enums: ["solid", "dotted", "dashed", "double"] + }, + curveStyle: { + enums: ["bezier", "unbundled-bezier", "haystack", "segments", "straight", "straight-triangle", "taxi"] + }, + fontFamily: { + regex: '^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$' + }, + fontStyle: { + enums: ["italic", "normal", "oblique"] + }, + fontWeight: { + enums: ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "800", "900", 100, 200, 300, 400, 500, 600, 700, 800, 900] + }, + textDecoration: { + enums: ["none", "underline", "overline", "line-through"] + }, + textTransform: { + enums: ["none", "uppercase", "lowercase"] + }, + textWrap: { + enums: ["none", "wrap", "ellipsis"] + }, + textOverflowWrap: { + enums: ["whitespace", "anywhere"] + }, + textBackgroundShape: { + enums: ["rectangle", "roundrectangle", "round-rectangle"] + }, + nodeShape: { + enums: ["rectangle", "roundrectangle", "round-rectangle", "cutrectangle", "cut-rectangle", "bottomroundrectangle", "bottom-round-rectangle", "barrel", "ellipse", "triangle", "round-triangle", "square", "pentagon", "round-pentagon", "hexagon", "round-hexagon", "concavehexagon", "concave-hexagon", "heptagon", "round-heptagon", "octagon", "round-octagon", "tag", "round-tag", "star", "diamond", "round-diamond", "vee", "rhomboid", "right-rhomboid", "polygon"] + }, + overlayShape: { + enums: ["roundrectangle", "round-rectangle", "ellipse"] + }, + compoundIncludeLabels: { + enums: ["include", "exclude"] + }, + arrowShape: { + enums: ["tee", "triangle", "triangle-tee", "circle-triangle", "triangle-cross", "triangle-backcurve", "vee", "square", "circle", "diamond", "chevron", "none"] + }, + arrowFill: { + enums: ["filled", "hollow"] + }, + arrowWidth: { + number: true, + units: "%|px|em", + implicitUnits: "px", + enums: ["match-line"] + }, + display: { + enums: ["element", "none"] + }, + visibility: { + enums: ["hidden", "visible"] + }, + zCompoundDepth: { + enums: ["bottom", "orphan", "auto", "top"] + }, + zIndexCompare: { + enums: ["auto", "manual"] + }, + valign: { + enums: ["top", "center", "bottom"] + }, + halign: { + enums: ["left", "center", "right"] + }, + justification: { + enums: ["left", "center", "right", "auto"] + }, + text: { + string: true + }, + data: { + mapping: true, + regex: data2("data") + }, + layoutData: { + mapping: true, + regex: data2("layoutData") + }, + scratch: { + mapping: true, + regex: data2("scratch") + }, + mapData: { + mapping: true, + regex: mapData("mapData") + }, + mapLayoutData: { + mapping: true, + regex: mapData("mapLayoutData") + }, + mapScratch: { + mapping: true, + regex: mapData("mapScratch") + }, + fn: { + mapping: true, + fn: true + }, + url: { + regexes: urlRegexes, + singleRegexMatchValue: true + }, + urls: { + regexes: urlRegexes, + singleRegexMatchValue: true, + multiple: true + }, + propList: { + propList: true + }, + angle: { + number: true, + units: "deg|rad", + implicitUnits: "rad" + }, + textRotation: { + number: true, + units: "deg|rad", + implicitUnits: "rad", + enums: ["none", "autorotate"] + }, + polygonPointList: { + number: true, + multiple: true, + evenMultiple: true, + min: -1, + max: 1, + unitless: true + }, + edgeDistances: { + enums: ["intersection", "node-position", "endpoints"] + }, + edgeEndpoint: { + number: true, + multiple: true, + units: "%|px|em|deg|rad", + implicitUnits: "px", + enums: ["inside-to-node", "outside-to-node", "outside-to-node-or-label", "outside-to-line", "outside-to-line-or-label"], + singleEnum: true, + validate: function validate(valArr, unitsArr) { + switch (valArr.length) { + case 2: + return unitsArr[0] !== "deg" && unitsArr[0] !== "rad" && unitsArr[1] !== "deg" && unitsArr[1] !== "rad"; + case 1: + return string(valArr[0]) || unitsArr[0] === "deg" || unitsArr[0] === "rad"; + default: + return false; + } + } + }, + easing: { + regexes: ["^(spring)\\s*\\(\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*\\)$", "^(cubic-bezier)\\s*\\(\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*\\)$"], + enums: ["linear", "ease", "ease-in", "ease-out", "ease-in-out", "ease-in-sine", "ease-out-sine", "ease-in-out-sine", "ease-in-quad", "ease-out-quad", "ease-in-out-quad", "ease-in-cubic", "ease-out-cubic", "ease-in-out-cubic", "ease-in-quart", "ease-out-quart", "ease-in-out-quart", "ease-in-quint", "ease-out-quint", "ease-in-out-quint", "ease-in-expo", "ease-out-expo", "ease-in-out-expo", "ease-in-circ", "ease-out-circ", "ease-in-out-circ"] + }, + gradientDirection: { + enums: [ + "to-bottom", + "to-top", + "to-left", + "to-right", + "to-bottom-right", + "to-bottom-left", + "to-top-right", + "to-top-left", + "to-right-bottom", + "to-left-bottom", + "to-right-top", + "to-left-top" + // different order + ] + }, + boundsExpansion: { + number: true, + multiple: true, + min: 0, + validate: function validate(valArr) { + var length = valArr.length; + return length === 1 || length === 2 || length === 4; + } + } + }; + var diff = { + zeroNonZero: function zeroNonZero(val1, val2) { + if ((val1 == null || val2 == null) && val1 !== val2) { + return true; + } + if (val1 == 0 && val2 != 0) { + return true; + } else if (val1 != 0 && val2 == 0) { + return true; + } else { + return false; + } + }, + any: function any(val1, val2) { + return val1 != val2; + }, + emptyNonEmpty: function emptyNonEmpty(str1, str2) { + var empty1 = emptyString(str1); + var empty2 = emptyString(str2); + return empty1 && !empty2 || !empty1 && empty2; + } + }; + var t = styfn$2.types; + var mainLabel = [{ + name: "label", + type: t.text, + triggersBounds: diff.any, + triggersZOrder: diff.emptyNonEmpty + }, { + name: "text-rotation", + type: t.textRotation, + triggersBounds: diff.any + }, { + name: "text-margin-x", + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: "text-margin-y", + type: t.bidirectionalSize, + triggersBounds: diff.any + }]; + var sourceLabel = [{ + name: "source-label", + type: t.text, + triggersBounds: diff.any + }, { + name: "source-text-rotation", + type: t.textRotation, + triggersBounds: diff.any + }, { + name: "source-text-margin-x", + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: "source-text-margin-y", + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: "source-text-offset", + type: t.size, + triggersBounds: diff.any + }]; + var targetLabel = [{ + name: "target-label", + type: t.text, + triggersBounds: diff.any + }, { + name: "target-text-rotation", + type: t.textRotation, + triggersBounds: diff.any + }, { + name: "target-text-margin-x", + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: "target-text-margin-y", + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: "target-text-offset", + type: t.size, + triggersBounds: diff.any + }]; + var labelDimensions = [{ + name: "font-family", + type: t.fontFamily, + triggersBounds: diff.any + }, { + name: "font-style", + type: t.fontStyle, + triggersBounds: diff.any + }, { + name: "font-weight", + type: t.fontWeight, + triggersBounds: diff.any + }, { + name: "font-size", + type: t.size, + triggersBounds: diff.any + }, { + name: "text-transform", + type: t.textTransform, + triggersBounds: diff.any + }, { + name: "text-wrap", + type: t.textWrap, + triggersBounds: diff.any + }, { + name: "text-overflow-wrap", + type: t.textOverflowWrap, + triggersBounds: diff.any + }, { + name: "text-max-width", + type: t.size, + triggersBounds: diff.any + }, { + name: "text-outline-width", + type: t.size, + triggersBounds: diff.any + }, { + name: "line-height", + type: t.positiveNumber, + triggersBounds: diff.any + }]; + var commonLabel = [{ + name: "text-valign", + type: t.valign, + triggersBounds: diff.any + }, { + name: "text-halign", + type: t.halign, + triggersBounds: diff.any + }, { + name: "color", + type: t.color + }, { + name: "text-outline-color", + type: t.color + }, { + name: "text-outline-opacity", + type: t.zeroOneNumber + }, { + name: "text-background-color", + type: t.color + }, { + name: "text-background-opacity", + type: t.zeroOneNumber + }, { + name: "text-background-padding", + type: t.size, + triggersBounds: diff.any + }, { + name: "text-border-opacity", + type: t.zeroOneNumber + }, { + name: "text-border-color", + type: t.color + }, { + name: "text-border-width", + type: t.size, + triggersBounds: diff.any + }, { + name: "text-border-style", + type: t.borderStyle, + triggersBounds: diff.any + }, { + name: "text-background-shape", + type: t.textBackgroundShape, + triggersBounds: diff.any + }, { + name: "text-justification", + type: t.justification + }]; + var behavior = [{ + name: "events", + type: t.bool, + triggersZOrder: diff.any + }, { + name: "text-events", + type: t.bool, + triggersZOrder: diff.any + }]; + var visibility = [{ + name: "display", + type: t.display, + triggersZOrder: diff.any, + triggersBounds: diff.any, + triggersBoundsOfConnectedEdges: true + }, { + name: "visibility", + type: t.visibility, + triggersZOrder: diff.any + }, { + name: "opacity", + type: t.zeroOneNumber, + triggersZOrder: diff.zeroNonZero + }, { + name: "text-opacity", + type: t.zeroOneNumber + }, { + name: "min-zoomed-font-size", + type: t.size + }, { + name: "z-compound-depth", + type: t.zCompoundDepth, + triggersZOrder: diff.any + }, { + name: "z-index-compare", + type: t.zIndexCompare, + triggersZOrder: diff.any + }, { + name: "z-index", + type: t.number, + triggersZOrder: diff.any + }]; + var overlay = [{ + name: "overlay-padding", + type: t.size, + triggersBounds: diff.any + }, { + name: "overlay-color", + type: t.color + }, { + name: "overlay-opacity", + type: t.zeroOneNumber, + triggersBounds: diff.zeroNonZero + }, { + name: "overlay-shape", + type: t.overlayShape, + triggersBounds: diff.any + }]; + var underlay = [{ + name: "underlay-padding", + type: t.size, + triggersBounds: diff.any + }, { + name: "underlay-color", + type: t.color + }, { + name: "underlay-opacity", + type: t.zeroOneNumber, + triggersBounds: diff.zeroNonZero + }, { + name: "underlay-shape", + type: t.overlayShape, + triggersBounds: diff.any + }]; + var transition = [{ + name: "transition-property", + type: t.propList + }, { + name: "transition-duration", + type: t.time + }, { + name: "transition-delay", + type: t.time + }, { + name: "transition-timing-function", + type: t.easing + }]; + var nodeSizeHashOverride = function nodeSizeHashOverride2(ele, parsedProp) { + if (parsedProp.value === "label") { + return -ele.poolIndex(); + } else { + return parsedProp.pfValue; + } + }; + var nodeBody = [{ + name: "height", + type: t.nodeSize, + triggersBounds: diff.any, + hashOverride: nodeSizeHashOverride + }, { + name: "width", + type: t.nodeSize, + triggersBounds: diff.any, + hashOverride: nodeSizeHashOverride + }, { + name: "shape", + type: t.nodeShape, + triggersBounds: diff.any + }, { + name: "shape-polygon-points", + type: t.polygonPointList, + triggersBounds: diff.any + }, { + name: "background-color", + type: t.color + }, { + name: "background-fill", + type: t.fill + }, { + name: "background-opacity", + type: t.zeroOneNumber + }, { + name: "background-blacken", + type: t.nOneOneNumber + }, { + name: "background-gradient-stop-colors", + type: t.colors + }, { + name: "background-gradient-stop-positions", + type: t.percentages + }, { + name: "background-gradient-direction", + type: t.gradientDirection + }, { + name: "padding", + type: t.sizeMaybePercent, + triggersBounds: diff.any + }, { + name: "padding-relative-to", + type: t.paddingRelativeTo, + triggersBounds: diff.any + }, { + name: "bounds-expansion", + type: t.boundsExpansion, + triggersBounds: diff.any + }]; + var nodeBorder = [{ + name: "border-color", + type: t.color + }, { + name: "border-opacity", + type: t.zeroOneNumber + }, { + name: "border-width", + type: t.size, + triggersBounds: diff.any + }, { + name: "border-style", + type: t.borderStyle + }]; + var nodeOutline = [{ + name: "outline-color", + type: t.color + }, { + name: "outline-opacity", + type: t.zeroOneNumber + }, { + name: "outline-width", + type: t.size, + triggersBounds: diff.any + }, { + name: "outline-style", + type: t.borderStyle + }, { + name: "outline-offset", + type: t.size, + triggersBounds: diff.any + }]; + var backgroundImage = [{ + name: "background-image", + type: t.urls + }, { + name: "background-image-crossorigin", + type: t.bgCrossOrigin + }, { + name: "background-image-opacity", + type: t.zeroOneNumbers + }, { + name: "background-image-containment", + type: t.bgContainment + }, { + name: "background-image-smoothing", + type: t.bools + }, { + name: "background-position-x", + type: t.bgPos + }, { + name: "background-position-y", + type: t.bgPos + }, { + name: "background-width-relative-to", + type: t.bgRelativeTo + }, { + name: "background-height-relative-to", + type: t.bgRelativeTo + }, { + name: "background-repeat", + type: t.bgRepeat + }, { + name: "background-fit", + type: t.bgFit + }, { + name: "background-clip", + type: t.bgClip + }, { + name: "background-width", + type: t.bgWH + }, { + name: "background-height", + type: t.bgWH + }, { + name: "background-offset-x", + type: t.bgPos + }, { + name: "background-offset-y", + type: t.bgPos + }]; + var compound = [{ + name: "position", + type: t.position, + triggersBounds: diff.any + }, { + name: "compound-sizing-wrt-labels", + type: t.compoundIncludeLabels, + triggersBounds: diff.any + }, { + name: "min-width", + type: t.size, + triggersBounds: diff.any + }, { + name: "min-width-bias-left", + type: t.sizeMaybePercent, + triggersBounds: diff.any + }, { + name: "min-width-bias-right", + type: t.sizeMaybePercent, + triggersBounds: diff.any + }, { + name: "min-height", + type: t.size, + triggersBounds: diff.any + }, { + name: "min-height-bias-top", + type: t.sizeMaybePercent, + triggersBounds: diff.any + }, { + name: "min-height-bias-bottom", + type: t.sizeMaybePercent, + triggersBounds: diff.any + }]; + var edgeLine = [{ + name: "line-style", + type: t.lineStyle + }, { + name: "line-color", + type: t.color + }, { + name: "line-fill", + type: t.fill + }, { + name: "line-cap", + type: t.lineCap + }, { + name: "line-opacity", + type: t.zeroOneNumber + }, { + name: "line-dash-pattern", + type: t.numbers + }, { + name: "line-dash-offset", + type: t.number + }, { + name: "line-gradient-stop-colors", + type: t.colors + }, { + name: "line-gradient-stop-positions", + type: t.percentages + }, { + name: "curve-style", + type: t.curveStyle, + triggersBounds: diff.any, + triggersBoundsOfParallelBeziers: true + }, { + name: "haystack-radius", + type: t.zeroOneNumber, + triggersBounds: diff.any + }, { + name: "source-endpoint", + type: t.edgeEndpoint, + triggersBounds: diff.any + }, { + name: "target-endpoint", + type: t.edgeEndpoint, + triggersBounds: diff.any + }, { + name: "control-point-step-size", + type: t.size, + triggersBounds: diff.any + }, { + name: "control-point-distances", + type: t.bidirectionalSizes, + triggersBounds: diff.any + }, { + name: "control-point-weights", + type: t.numbers, + triggersBounds: diff.any + }, { + name: "segment-distances", + type: t.bidirectionalSizes, + triggersBounds: diff.any + }, { + name: "segment-weights", + type: t.numbers, + triggersBounds: diff.any + }, { + name: "taxi-turn", + type: t.bidirectionalSizeMaybePercent, + triggersBounds: diff.any + }, { + name: "taxi-turn-min-distance", + type: t.size, + triggersBounds: diff.any + }, { + name: "taxi-direction", + type: t.axisDirection, + triggersBounds: diff.any + }, { + name: "edge-distances", + type: t.edgeDistances, + triggersBounds: diff.any + }, { + name: "arrow-scale", + type: t.positiveNumber, + triggersBounds: diff.any + }, { + name: "loop-direction", + type: t.angle, + triggersBounds: diff.any + }, { + name: "loop-sweep", + type: t.angle, + triggersBounds: diff.any + }, { + name: "source-distance-from-node", + type: t.size, + triggersBounds: diff.any + }, { + name: "target-distance-from-node", + type: t.size, + triggersBounds: diff.any + }]; + var ghost = [{ + name: "ghost", + type: t.bool, + triggersBounds: diff.any + }, { + name: "ghost-offset-x", + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: "ghost-offset-y", + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: "ghost-opacity", + type: t.zeroOneNumber + }]; + var core2 = [{ + name: "selection-box-color", + type: t.color + }, { + name: "selection-box-opacity", + type: t.zeroOneNumber + }, { + name: "selection-box-border-color", + type: t.color + }, { + name: "selection-box-border-width", + type: t.size + }, { + name: "active-bg-color", + type: t.color + }, { + name: "active-bg-opacity", + type: t.zeroOneNumber + }, { + name: "active-bg-size", + type: t.size + }, { + name: "outside-texture-bg-color", + type: t.color + }, { + name: "outside-texture-bg-opacity", + type: t.zeroOneNumber + }]; + var pie = []; + styfn$2.pieBackgroundN = 16; + pie.push({ + name: "pie-size", + type: t.sizeMaybePercent + }); + for (var i2 = 1; i2 <= styfn$2.pieBackgroundN; i2++) { + pie.push({ + name: "pie-" + i2 + "-background-color", + type: t.color + }); + pie.push({ + name: "pie-" + i2 + "-background-size", + type: t.percent + }); + pie.push({ + name: "pie-" + i2 + "-background-opacity", + type: t.zeroOneNumber + }); + } + var edgeArrow = []; + var arrowPrefixes = styfn$2.arrowPrefixes = ["source", "mid-source", "target", "mid-target"]; + [{ + name: "arrow-shape", + type: t.arrowShape, + triggersBounds: diff.any + }, { + name: "arrow-color", + type: t.color + }, { + name: "arrow-fill", + type: t.arrowFill + }, { + name: "arrow-width", + type: t.arrowWidth + }].forEach(function(prop2) { + arrowPrefixes.forEach(function(prefix) { + var name = prefix + "-" + prop2.name; + var type = prop2.type, triggersBounds = prop2.triggersBounds; + edgeArrow.push({ + name, + type, + triggersBounds + }); + }); + }, {}); + var props = styfn$2.properties = [].concat(behavior, transition, visibility, overlay, underlay, ghost, commonLabel, labelDimensions, mainLabel, sourceLabel, targetLabel, nodeBody, nodeBorder, nodeOutline, backgroundImage, pie, compound, edgeLine, edgeArrow, core2); + var propGroups = styfn$2.propertyGroups = { + // common to all eles + behavior, + transition, + visibility, + overlay, + underlay, + ghost, + // labels + commonLabel, + labelDimensions, + mainLabel, + sourceLabel, + targetLabel, + // node props + nodeBody, + nodeBorder, + nodeOutline, + backgroundImage, + pie, + compound, + // edge props + edgeLine, + edgeArrow, + core: core2 + }; + var propGroupNames = styfn$2.propertyGroupNames = {}; + var propGroupKeys = styfn$2.propertyGroupKeys = Object.keys(propGroups); + propGroupKeys.forEach(function(key) { + propGroupNames[key] = propGroups[key].map(function(prop2) { + return prop2.name; + }); + propGroups[key].forEach(function(prop2) { + return prop2.groupKey = key; + }); + }); + var aliases = styfn$2.aliases = [{ + name: "content", + pointsTo: "label" + }, { + name: "control-point-distance", + pointsTo: "control-point-distances" + }, { + name: "control-point-weight", + pointsTo: "control-point-weights" + }, { + name: "edge-text-rotation", + pointsTo: "text-rotation" + }, { + name: "padding-left", + pointsTo: "padding" + }, { + name: "padding-right", + pointsTo: "padding" + }, { + name: "padding-top", + pointsTo: "padding" + }, { + name: "padding-bottom", + pointsTo: "padding" + }]; + styfn$2.propertyNames = props.map(function(p2) { + return p2.name; + }); + for (var _i = 0; _i < props.length; _i++) { + var prop = props[_i]; + props[prop.name] = prop; + } + for (var _i2 = 0; _i2 < aliases.length; _i2++) { + var alias = aliases[_i2]; + var pointsToProp = props[alias.pointsTo]; + var aliasProp = { + name: alias.name, + alias: true, + pointsTo: pointsToProp + }; + props.push(aliasProp); + props[alias.name] = aliasProp; + } + })(); + styfn$2.getDefaultProperty = function(name) { + return this.getDefaultProperties()[name]; + }; + styfn$2.getDefaultProperties = function() { + var _p = this._private; + if (_p.defaultProperties != null) { + return _p.defaultProperties; + } + var rawProps = extend({ + // core props + "selection-box-color": "#ddd", + "selection-box-opacity": 0.65, + "selection-box-border-color": "#aaa", + "selection-box-border-width": 1, + "active-bg-color": "black", + "active-bg-opacity": 0.15, + "active-bg-size": 30, + "outside-texture-bg-color": "#000", + "outside-texture-bg-opacity": 0.125, + // common node/edge props + "events": "yes", + "text-events": "no", + "text-valign": "top", + "text-halign": "center", + "text-justification": "auto", + "line-height": 1, + "color": "#000", + "text-outline-color": "#000", + "text-outline-width": 0, + "text-outline-opacity": 1, + "text-opacity": 1, + "text-decoration": "none", + "text-transform": "none", + "text-wrap": "none", + "text-overflow-wrap": "whitespace", + "text-max-width": 9999, + "text-background-color": "#000", + "text-background-opacity": 0, + "text-background-shape": "rectangle", + "text-background-padding": 0, + "text-border-opacity": 0, + "text-border-width": 0, + "text-border-style": "solid", + "text-border-color": "#000", + "font-family": "Helvetica Neue, Helvetica, sans-serif", + "font-style": "normal", + "font-weight": "normal", + "font-size": 16, + "min-zoomed-font-size": 0, + "text-rotation": "none", + "source-text-rotation": "none", + "target-text-rotation": "none", + "visibility": "visible", + "display": "element", + "opacity": 1, + "z-compound-depth": "auto", + "z-index-compare": "auto", + "z-index": 0, + "label": "", + "text-margin-x": 0, + "text-margin-y": 0, + "source-label": "", + "source-text-offset": 0, + "source-text-margin-x": 0, + "source-text-margin-y": 0, + "target-label": "", + "target-text-offset": 0, + "target-text-margin-x": 0, + "target-text-margin-y": 0, + "overlay-opacity": 0, + "overlay-color": "#000", + "overlay-padding": 10, + "overlay-shape": "round-rectangle", + "underlay-opacity": 0, + "underlay-color": "#000", + "underlay-padding": 10, + "underlay-shape": "round-rectangle", + "transition-property": "none", + "transition-duration": 0, + "transition-delay": 0, + "transition-timing-function": "linear", + // node props + "background-blacken": 0, + "background-color": "#999", + "background-fill": "solid", + "background-opacity": 1, + "background-image": "none", + "background-image-crossorigin": "anonymous", + "background-image-opacity": 1, + "background-image-containment": "inside", + "background-image-smoothing": "yes", + "background-position-x": "50%", + "background-position-y": "50%", + "background-offset-x": 0, + "background-offset-y": 0, + "background-width-relative-to": "include-padding", + "background-height-relative-to": "include-padding", + "background-repeat": "no-repeat", + "background-fit": "none", + "background-clip": "node", + "background-width": "auto", + "background-height": "auto", + "border-color": "#000", + "border-opacity": 1, + "border-width": 0, + "border-style": "solid", + "outline-color": "#999", + "outline-opacity": 1, + "outline-width": 0, + "outline-offset": 0, + "outline-style": "solid", + "height": 30, + "width": 30, + "shape": "ellipse", + "shape-polygon-points": "-1, -1, 1, -1, 1, 1, -1, 1", + "bounds-expansion": 0, + // node gradient + "background-gradient-direction": "to-bottom", + "background-gradient-stop-colors": "#999", + "background-gradient-stop-positions": "0%", + // ghost props + "ghost": "no", + "ghost-offset-y": 0, + "ghost-offset-x": 0, + "ghost-opacity": 0, + // compound props + "padding": 0, + "padding-relative-to": "width", + "position": "origin", + "compound-sizing-wrt-labels": "include", + "min-width": 0, + "min-width-bias-left": 0, + "min-width-bias-right": 0, + "min-height": 0, + "min-height-bias-top": 0, + "min-height-bias-bottom": 0 + }, { + // node pie bg + "pie-size": "100%" + }, [{ + name: "pie-{{i}}-background-color", + value: "black" + }, { + name: "pie-{{i}}-background-size", + value: "0%" + }, { + name: "pie-{{i}}-background-opacity", + value: 1 + }].reduce(function(css, prop2) { + for (var i3 = 1; i3 <= styfn$2.pieBackgroundN; i3++) { + var name2 = prop2.name.replace("{{i}}", i3); + var val2 = prop2.value; + css[name2] = val2; + } + return css; + }, {}), { + // edge props + "line-style": "solid", + "line-color": "#999", + "line-fill": "solid", + "line-cap": "butt", + "line-opacity": 1, + "line-gradient-stop-colors": "#999", + "line-gradient-stop-positions": "0%", + "control-point-step-size": 40, + "control-point-weights": 0.5, + "segment-weights": 0.5, + "segment-distances": 20, + "taxi-turn": "50%", + "taxi-turn-min-distance": 10, + "taxi-direction": "auto", + "edge-distances": "intersection", + "curve-style": "haystack", + "haystack-radius": 0, + "arrow-scale": 1, + "loop-direction": "-45deg", + "loop-sweep": "-90deg", + "source-distance-from-node": 0, + "target-distance-from-node": 0, + "source-endpoint": "outside-to-node", + "target-endpoint": "outside-to-node", + "line-dash-pattern": [6, 3], + "line-dash-offset": 0 + }, [{ + name: "arrow-shape", + value: "none" + }, { + name: "arrow-color", + value: "#999" + }, { + name: "arrow-fill", + value: "filled" + }, { + name: "arrow-width", + value: 1 + }].reduce(function(css, prop2) { + styfn$2.arrowPrefixes.forEach(function(prefix) { + var name2 = prefix + "-" + prop2.name; + var val2 = prop2.value; + css[name2] = val2; + }); + return css; + }, {})); + var parsedProps = {}; + for (var i2 = 0; i2 < this.properties.length; i2++) { + var prop = this.properties[i2]; + if (prop.pointsTo) { + continue; + } + var name = prop.name; + var val = rawProps[name]; + var parsedProp = this.parse(name, val); + parsedProps[name] = parsedProp; + } + _p.defaultProperties = parsedProps; + return _p.defaultProperties; + }; + styfn$2.addDefaultStylesheet = function() { + this.selector(":parent").css({ + "shape": "rectangle", + "padding": 10, + "background-color": "#eee", + "border-color": "#ccc", + "border-width": 1 + }).selector("edge").css({ + "width": 3 + }).selector(":loop").css({ + "curve-style": "bezier" + }).selector("edge:compound").css({ + "curve-style": "bezier", + "source-endpoint": "outside-to-line", + "target-endpoint": "outside-to-line" + }).selector(":selected").css({ + "background-color": "#0169D9", + "line-color": "#0169D9", + "source-arrow-color": "#0169D9", + "target-arrow-color": "#0169D9", + "mid-source-arrow-color": "#0169D9", + "mid-target-arrow-color": "#0169D9" + }).selector(":parent:selected").css({ + "background-color": "#CCE1F9", + "border-color": "#aec8e5" + }).selector(":active").css({ + "overlay-color": "black", + "overlay-padding": 10, + "overlay-opacity": 0.25 + }); + this.defaultLength = this.length; + }; + var styfn$1 = {}; + styfn$1.parse = function(name, value, propIsBypass, propIsFlat) { + var self2 = this; + if (fn$6(value)) { + return self2.parseImplWarn(name, value, propIsBypass, propIsFlat); + } + var flatKey = propIsFlat === "mapping" || propIsFlat === true || propIsFlat === false || propIsFlat == null ? "dontcare" : propIsFlat; + var bypassKey = propIsBypass ? "t" : "f"; + var valueKey = "" + value; + var argHash = hashStrings(name, valueKey, bypassKey, flatKey); + var propCache = self2.propCache = self2.propCache || []; + var ret; + if (!(ret = propCache[argHash])) { + ret = propCache[argHash] = self2.parseImplWarn(name, value, propIsBypass, propIsFlat); + } + if (propIsBypass || propIsFlat === "mapping") { + ret = copy(ret); + if (ret) { + ret.value = copy(ret.value); + } + } + return ret; + }; + styfn$1.parseImplWarn = function(name, value, propIsBypass, propIsFlat) { + var prop = this.parseImpl(name, value, propIsBypass, propIsFlat); + if (!prop && value != null) { + warn("The style property `".concat(name, ": ").concat(value, "` is invalid")); + } + if (prop && (prop.name === "width" || prop.name === "height") && value === "label") { + warn("The style value of `label` is deprecated for `" + prop.name + "`"); + } + return prop; + }; + styfn$1.parseImpl = function(name, value, propIsBypass, propIsFlat) { + var self2 = this; + name = camel2dash(name); + var property = self2.properties[name]; + var passedValue = value; + var types = self2.types; + if (!property) { + return null; + } + if (value === void 0) { + return null; + } + if (property.alias) { + property = property.pointsTo; + name = property.name; + } + var valueIsString = string(value); + if (valueIsString) { + value = value.trim(); + } + var type = property.type; + if (!type) { + return null; + } + if (propIsBypass && (value === "" || value === null)) { + return { + name, + value, + bypass: true, + deleteBypass: true + }; + } + if (fn$6(value)) { + return { + name, + value, + strValue: "fn", + mapped: types.fn, + bypass: propIsBypass + }; + } + var data2, mapData; + if (!valueIsString || propIsFlat || value.length < 7 || value[1] !== "a") + ; + else if (value.length >= 7 && value[0] === "d" && (data2 = new RegExp(types.data.regex).exec(value))) { + if (propIsBypass) { + return false; + } + var mapped = types.data; + return { + name, + value: data2, + strValue: "" + value, + mapped, + field: data2[1], + bypass: propIsBypass + }; + } else if (value.length >= 10 && value[0] === "m" && (mapData = new RegExp(types.mapData.regex).exec(value))) { + if (propIsBypass) { + return false; + } + if (type.multiple) { + return false; + } + var _mapped = types.mapData; + if (!(type.color || type.number)) { + return false; + } + var valueMin = this.parse(name, mapData[4]); + if (!valueMin || valueMin.mapped) { + return false; + } + var valueMax = this.parse(name, mapData[5]); + if (!valueMax || valueMax.mapped) { + return false; + } + if (valueMin.pfValue === valueMax.pfValue || valueMin.strValue === valueMax.strValue) { + warn("`" + name + ": " + value + "` is not a valid mapper because the output range is zero; converting to `" + name + ": " + valueMin.strValue + "`"); + return this.parse(name, valueMin.strValue); + } else if (type.color) { + var c1 = valueMin.value; + var c2 = valueMax.value; + var same = c1[0] === c2[0] && c1[1] === c2[1] && c1[2] === c2[2] && // optional alpha + (c1[3] === c2[3] || (c1[3] == null || c1[3] === 1) && (c2[3] == null || c2[3] === 1)); + if (same) { + return false; + } + } + return { + name, + value: mapData, + strValue: "" + value, + mapped: _mapped, + field: mapData[1], + fieldMin: parseFloat(mapData[2]), + // min & max are numeric + fieldMax: parseFloat(mapData[3]), + valueMin: valueMin.value, + valueMax: valueMax.value, + bypass: propIsBypass + }; + } + if (type.multiple && propIsFlat !== "multiple") { + var vals; + if (valueIsString) { + vals = value.split(/\s+/); + } else if (array(value)) { + vals = value; + } else { + vals = [value]; + } + if (type.evenMultiple && vals.length % 2 !== 0) { + return null; + } + var valArr = []; + var unitsArr = []; + var pfValArr = []; + var strVal = ""; + var hasEnum = false; + for (var i2 = 0; i2 < vals.length; i2++) { + var p2 = self2.parse(name, vals[i2], propIsBypass, "multiple"); + hasEnum = hasEnum || string(p2.value); + valArr.push(p2.value); + pfValArr.push(p2.pfValue != null ? p2.pfValue : p2.value); + unitsArr.push(p2.units); + strVal += (i2 > 0 ? " " : "") + p2.strValue; + } + if (type.validate && !type.validate(valArr, unitsArr)) { + return null; + } + if (type.singleEnum && hasEnum) { + if (valArr.length === 1 && string(valArr[0])) { + return { + name, + value: valArr[0], + strValue: valArr[0], + bypass: propIsBypass + }; + } else { + return null; + } + } + return { + name, + value: valArr, + pfValue: pfValArr, + strValue: strVal, + bypass: propIsBypass, + units: unitsArr + }; + } + var checkEnums = function checkEnums2() { + for (var _i = 0; _i < type.enums.length; _i++) { + var en = type.enums[_i]; + if (en === value) { + return { + name, + value, + strValue: "" + value, + bypass: propIsBypass + }; + } + } + return null; + }; + if (type.number) { + var units; + var implicitUnits = "px"; + if (type.units) { + units = type.units; + } + if (type.implicitUnits) { + implicitUnits = type.implicitUnits; + } + if (!type.unitless) { + if (valueIsString) { + var unitsRegex = "px|em" + (type.allowPercent ? "|\\%" : ""); + if (units) { + unitsRegex = units; + } + var match2 = value.match("^(" + number + ")(" + unitsRegex + ")?$"); + if (match2) { + value = match2[1]; + units = match2[2] || implicitUnits; + } + } else if (!units || type.implicitUnits) { + units = implicitUnits; + } + } + value = parseFloat(value); + if (isNaN(value) && type.enums === void 0) { + return null; + } + if (isNaN(value) && type.enums !== void 0) { + value = passedValue; + return checkEnums(); + } + if (type.integer && !integer(value)) { + return null; + } + if (type.min !== void 0 && (value < type.min || type.strictMin && value === type.min) || type.max !== void 0 && (value > type.max || type.strictMax && value === type.max)) { + return null; + } + var ret = { + name, + value, + strValue: "" + value + (units ? units : ""), + units, + bypass: propIsBypass + }; + if (type.unitless || units !== "px" && units !== "em") { + ret.pfValue = value; + } else { + ret.pfValue = units === "px" || !units ? value : this.getEmSizeInPixels() * value; + } + if (units === "ms" || units === "s") { + ret.pfValue = units === "ms" ? value : 1e3 * value; + } + if (units === "deg" || units === "rad") { + ret.pfValue = units === "rad" ? value : deg2rad(value); + } + if (units === "%") { + ret.pfValue = value / 100; + } + return ret; + } else if (type.propList) { + var props = []; + var propsStr = "" + value; + if (propsStr === "none") + ; + else { + var propsSplit = propsStr.split(/\s*,\s*|\s+/); + for (var _i2 = 0; _i2 < propsSplit.length; _i2++) { + var propName = propsSplit[_i2].trim(); + if (self2.properties[propName]) { + props.push(propName); + } else { + warn("`" + propName + "` is not a valid property name"); + } + } + if (props.length === 0) { + return null; + } + } + return { + name, + value: props, + strValue: props.length === 0 ? "none" : props.join(" "), + bypass: propIsBypass + }; + } else if (type.color) { + var tuple = color2tuple(value); + if (!tuple) { + return null; + } + return { + name, + value: tuple, + pfValue: tuple, + strValue: "rgb(" + tuple[0] + "," + tuple[1] + "," + tuple[2] + ")", + // n.b. no spaces b/c of multiple support + bypass: propIsBypass + }; + } else if (type.regex || type.regexes) { + if (type.enums) { + var enumProp = checkEnums(); + if (enumProp) { + return enumProp; + } + } + var regexes = type.regexes ? type.regexes : [type.regex]; + for (var _i3 = 0; _i3 < regexes.length; _i3++) { + var regex = new RegExp(regexes[_i3]); + var m = regex.exec(value); + if (m) { + return { + name, + value: type.singleRegexMatchValue ? m[1] : m, + strValue: "" + value, + bypass: propIsBypass + }; + } + } + return null; + } else if (type.string) { + return { + name, + value: "" + value, + strValue: "" + value, + bypass: propIsBypass + }; + } else if (type.enums) { + return checkEnums(); + } else { + return null; + } + }; + var Style = function Style2(cy) { + if (!(this instanceof Style2)) { + return new Style2(cy); + } + if (!core(cy)) { + error("A style must have a core reference"); + return; + } + this._private = { + cy, + coreStyle: {} + }; + this.length = 0; + this.resetToDefault(); + }; + var styfn = Style.prototype; + styfn.instanceString = function() { + return "style"; + }; + styfn.clear = function() { + var _p = this._private; + var cy = _p.cy; + var eles = cy.elements(); + for (var i2 = 0; i2 < this.length; i2++) { + this[i2] = void 0; + } + this.length = 0; + _p.contextStyles = {}; + _p.propDiffs = {}; + this.cleanElements(eles, true); + eles.forEach(function(ele) { + var ele_p = ele[0]._private; + ele_p.styleDirty = true; + ele_p.appliedInitStyle = false; + }); + return this; + }; + styfn.resetToDefault = function() { + this.clear(); + this.addDefaultStylesheet(); + return this; + }; + styfn.core = function(propName) { + return this._private.coreStyle[propName] || this.getDefaultProperty(propName); + }; + styfn.selector = function(selectorStr) { + var selector = selectorStr === "core" ? null : new Selector(selectorStr); + var i2 = this.length++; + this[i2] = { + selector, + properties: [], + mappedProperties: [], + index: i2 + }; + return this; + }; + styfn.css = function() { + var self2 = this; + var args = arguments; + if (args.length === 1) { + var map = args[0]; + for (var i2 = 0; i2 < self2.properties.length; i2++) { + var prop = self2.properties[i2]; + var mapVal = map[prop.name]; + if (mapVal === void 0) { + mapVal = map[dash2camel(prop.name)]; + } + if (mapVal !== void 0) { + this.cssRule(prop.name, mapVal); + } + } + } else if (args.length === 2) { + this.cssRule(args[0], args[1]); + } + return this; + }; + styfn.style = styfn.css; + styfn.cssRule = function(name, value) { + var property = this.parse(name, value); + if (property) { + var i2 = this.length - 1; + this[i2].properties.push(property); + this[i2].properties[property.name] = property; + if (property.name.match(/pie-(\d+)-background-size/) && property.value) { + this._private.hasPie = true; + } + if (property.mapped) { + this[i2].mappedProperties.push(property); + } + var currentSelectorIsCore = !this[i2].selector; + if (currentSelectorIsCore) { + this._private.coreStyle[property.name] = property; + } + } + return this; + }; + styfn.append = function(style) { + if (stylesheet(style)) { + style.appendToStyle(this); + } else if (array(style)) { + this.appendFromJson(style); + } else if (string(style)) { + this.appendFromString(style); + } + return this; + }; + Style.fromJson = function(cy, json) { + var style = new Style(cy); + style.fromJson(json); + return style; + }; + Style.fromString = function(cy, string2) { + return new Style(cy).fromString(string2); + }; + [styfn$8, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1].forEach(function(props) { + extend(styfn, props); + }); + Style.types = styfn.types; + Style.properties = styfn.properties; + Style.propertyGroups = styfn.propertyGroups; + Style.propertyGroupNames = styfn.propertyGroupNames; + Style.propertyGroupKeys = styfn.propertyGroupKeys; + var corefn$2 = { + style: function style(newStyle) { + if (newStyle) { + var s = this.setStyle(newStyle); + s.update(); + } + return this._private.style; + }, + setStyle: function setStyle(style) { + var _p = this._private; + if (stylesheet(style)) { + _p.style = style.generateStyle(this); + } else if (array(style)) { + _p.style = Style.fromJson(this, style); + } else if (string(style)) { + _p.style = Style.fromString(this, style); + } else { + _p.style = Style(this); + } + return _p.style; + }, + // e.g. cy.data() changed => recalc ele mappers + updateStyle: function updateStyle() { + this.mutableElements().updateStyle(); + } + }; + var defaultSelectionType = "single"; + var corefn$1 = { + autolock: function autolock(bool) { + if (bool !== void 0) { + this._private.autolock = bool ? true : false; + } else { + return this._private.autolock; + } + return this; + }, + autoungrabify: function autoungrabify(bool) { + if (bool !== void 0) { + this._private.autoungrabify = bool ? true : false; + } else { + return this._private.autoungrabify; + } + return this; + }, + autounselectify: function autounselectify(bool) { + if (bool !== void 0) { + this._private.autounselectify = bool ? true : false; + } else { + return this._private.autounselectify; + } + return this; + }, + selectionType: function selectionType(selType) { + var _p = this._private; + if (_p.selectionType == null) { + _p.selectionType = defaultSelectionType; + } + if (selType !== void 0) { + if (selType === "additive" || selType === "single") { + _p.selectionType = selType; + } + } else { + return _p.selectionType; + } + return this; + }, + panningEnabled: function panningEnabled(bool) { + if (bool !== void 0) { + this._private.panningEnabled = bool ? true : false; + } else { + return this._private.panningEnabled; + } + return this; + }, + userPanningEnabled: function userPanningEnabled(bool) { + if (bool !== void 0) { + this._private.userPanningEnabled = bool ? true : false; + } else { + return this._private.userPanningEnabled; + } + return this; + }, + zoomingEnabled: function zoomingEnabled(bool) { + if (bool !== void 0) { + this._private.zoomingEnabled = bool ? true : false; + } else { + return this._private.zoomingEnabled; + } + return this; + }, + userZoomingEnabled: function userZoomingEnabled(bool) { + if (bool !== void 0) { + this._private.userZoomingEnabled = bool ? true : false; + } else { + return this._private.userZoomingEnabled; + } + return this; + }, + boxSelectionEnabled: function boxSelectionEnabled(bool) { + if (bool !== void 0) { + this._private.boxSelectionEnabled = bool ? true : false; + } else { + return this._private.boxSelectionEnabled; + } + return this; + }, + pan: function pan() { + var args = arguments; + var pan2 = this._private.pan; + var dim, val, dims, x, y; + switch (args.length) { + case 0: + return pan2; + case 1: + if (string(args[0])) { + dim = args[0]; + return pan2[dim]; + } else if (plainObject(args[0])) { + if (!this._private.panningEnabled) { + return this; + } + dims = args[0]; + x = dims.x; + y = dims.y; + if (number$1(x)) { + pan2.x = x; + } + if (number$1(y)) { + pan2.y = y; + } + this.emit("pan viewport"); + } + break; + case 2: + if (!this._private.panningEnabled) { + return this; + } + dim = args[0]; + val = args[1]; + if ((dim === "x" || dim === "y") && number$1(val)) { + pan2[dim] = val; + } + this.emit("pan viewport"); + break; + } + this.notify("viewport"); + return this; + }, + panBy: function panBy(arg0, arg1) { + var args = arguments; + var pan = this._private.pan; + var dim, val, dims, x, y; + if (!this._private.panningEnabled) { + return this; + } + switch (args.length) { + case 1: + if (plainObject(arg0)) { + dims = args[0]; + x = dims.x; + y = dims.y; + if (number$1(x)) { + pan.x += x; + } + if (number$1(y)) { + pan.y += y; + } + this.emit("pan viewport"); + } + break; + case 2: + dim = arg0; + val = arg1; + if ((dim === "x" || dim === "y") && number$1(val)) { + pan[dim] += val; + } + this.emit("pan viewport"); + break; + } + this.notify("viewport"); + return this; + }, + fit: function fit(elements2, padding) { + var viewportState = this.getFitViewport(elements2, padding); + if (viewportState) { + var _p = this._private; + _p.zoom = viewportState.zoom; + _p.pan = viewportState.pan; + this.emit("pan zoom viewport"); + this.notify("viewport"); + } + return this; + }, + getFitViewport: function getFitViewport(elements2, padding) { + if (number$1(elements2) && padding === void 0) { + padding = elements2; + elements2 = void 0; + } + if (!this._private.panningEnabled || !this._private.zoomingEnabled) { + return; + } + var bb; + if (string(elements2)) { + var sel = elements2; + elements2 = this.$(sel); + } else if (boundingBox(elements2)) { + var bbe = elements2; + bb = { + x1: bbe.x1, + y1: bbe.y1, + x2: bbe.x2, + y2: bbe.y2 + }; + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + } else if (!elementOrCollection(elements2)) { + elements2 = this.mutableElements(); + } + if (elementOrCollection(elements2) && elements2.empty()) { + return; + } + bb = bb || elements2.boundingBox(); + var w = this.width(); + var h = this.height(); + var zoom; + padding = number$1(padding) ? padding : 0; + if (!isNaN(w) && !isNaN(h) && w > 0 && h > 0 && !isNaN(bb.w) && !isNaN(bb.h) && bb.w > 0 && bb.h > 0) { + zoom = Math.min((w - 2 * padding) / bb.w, (h - 2 * padding) / bb.h); + zoom = zoom > this._private.maxZoom ? this._private.maxZoom : zoom; + zoom = zoom < this._private.minZoom ? this._private.minZoom : zoom; + var pan = { + // now pan to middle + x: (w - zoom * (bb.x1 + bb.x2)) / 2, + y: (h - zoom * (bb.y1 + bb.y2)) / 2 + }; + return { + zoom, + pan + }; + } + return; + }, + zoomRange: function zoomRange(min2, max2) { + var _p = this._private; + if (max2 == null) { + var opts = min2; + min2 = opts.min; + max2 = opts.max; + } + if (number$1(min2) && number$1(max2) && min2 <= max2) { + _p.minZoom = min2; + _p.maxZoom = max2; + } else if (number$1(min2) && max2 === void 0 && min2 <= _p.maxZoom) { + _p.minZoom = min2; + } else if (number$1(max2) && min2 === void 0 && max2 >= _p.minZoom) { + _p.maxZoom = max2; + } + return this; + }, + minZoom: function minZoom(zoom) { + if (zoom === void 0) { + return this._private.minZoom; + } else { + return this.zoomRange({ + min: zoom + }); + } + }, + maxZoom: function maxZoom2(zoom) { + if (zoom === void 0) { + return this._private.maxZoom; + } else { + return this.zoomRange({ + max: zoom + }); + } + }, + getZoomedViewport: function getZoomedViewport(params) { + var _p = this._private; + var currentPan = _p.pan; + var currentZoom = _p.zoom; + var pos; + var zoom; + var bail = false; + if (!_p.zoomingEnabled) { + bail = true; + } + if (number$1(params)) { + zoom = params; + } else if (plainObject(params)) { + zoom = params.level; + if (params.position != null) { + pos = modelToRenderedPosition(params.position, currentZoom, currentPan); + } else if (params.renderedPosition != null) { + pos = params.renderedPosition; + } + if (pos != null && !_p.panningEnabled) { + bail = true; + } + } + zoom = zoom > _p.maxZoom ? _p.maxZoom : zoom; + zoom = zoom < _p.minZoom ? _p.minZoom : zoom; + if (bail || !number$1(zoom) || zoom === currentZoom || pos != null && (!number$1(pos.x) || !number$1(pos.y))) { + return null; + } + if (pos != null) { + var pan1 = currentPan; + var zoom1 = currentZoom; + var zoom2 = zoom; + var pan2 = { + x: -zoom2 / zoom1 * (pos.x - pan1.x) + pos.x, + y: -zoom2 / zoom1 * (pos.y - pan1.y) + pos.y + }; + return { + zoomed: true, + panned: true, + zoom: zoom2, + pan: pan2 + }; + } else { + return { + zoomed: true, + panned: false, + zoom, + pan: currentPan + }; + } + }, + zoom: function zoom(params) { + if (params === void 0) { + return this._private.zoom; + } else { + var vp = this.getZoomedViewport(params); + var _p = this._private; + if (vp == null || !vp.zoomed) { + return this; + } + _p.zoom = vp.zoom; + if (vp.panned) { + _p.pan.x = vp.pan.x; + _p.pan.y = vp.pan.y; + } + this.emit("zoom" + (vp.panned ? " pan" : "") + " viewport"); + this.notify("viewport"); + return this; + } + }, + viewport: function viewport(opts) { + var _p = this._private; + var zoomDefd = true; + var panDefd = true; + var events = []; + var zoomFailed = false; + var panFailed = false; + if (!opts) { + return this; + } + if (!number$1(opts.zoom)) { + zoomDefd = false; + } + if (!plainObject(opts.pan)) { + panDefd = false; + } + if (!zoomDefd && !panDefd) { + return this; + } + if (zoomDefd) { + var z = opts.zoom; + if (z < _p.minZoom || z > _p.maxZoom || !_p.zoomingEnabled) { + zoomFailed = true; + } else { + _p.zoom = z; + events.push("zoom"); + } + } + if (panDefd && (!zoomFailed || !opts.cancelOnFailedZoom) && _p.panningEnabled) { + var p2 = opts.pan; + if (number$1(p2.x)) { + _p.pan.x = p2.x; + panFailed = false; + } + if (number$1(p2.y)) { + _p.pan.y = p2.y; + panFailed = false; + } + if (!panFailed) { + events.push("pan"); + } + } + if (events.length > 0) { + events.push("viewport"); + this.emit(events.join(" ")); + this.notify("viewport"); + } + return this; + }, + center: function center(elements2) { + var pan = this.getCenterPan(elements2); + if (pan) { + this._private.pan = pan; + this.emit("pan viewport"); + this.notify("viewport"); + } + return this; + }, + getCenterPan: function getCenterPan(elements2, zoom) { + if (!this._private.panningEnabled) { + return; + } + if (string(elements2)) { + var selector = elements2; + elements2 = this.mutableElements().filter(selector); + } else if (!elementOrCollection(elements2)) { + elements2 = this.mutableElements(); + } + if (elements2.length === 0) { + return; + } + var bb = elements2.boundingBox(); + var w = this.width(); + var h = this.height(); + zoom = zoom === void 0 ? this._private.zoom : zoom; + var pan = { + // middle + x: (w - zoom * (bb.x1 + bb.x2)) / 2, + y: (h - zoom * (bb.y1 + bb.y2)) / 2 + }; + return pan; + }, + reset: function reset() { + if (!this._private.panningEnabled || !this._private.zoomingEnabled) { + return this; + } + this.viewport({ + pan: { + x: 0, + y: 0 + }, + zoom: 1 + }); + return this; + }, + invalidateSize: function invalidateSize() { + this._private.sizeCache = null; + }, + size: function size() { + var _p = this._private; + var container = _p.container; + var cy = this; + return _p.sizeCache = _p.sizeCache || (container ? function() { + var style = cy.window().getComputedStyle(container); + var val = function val2(name) { + return parseFloat(style.getPropertyValue(name)); + }; + return { + width: container.clientWidth - val("padding-left") - val("padding-right"), + height: container.clientHeight - val("padding-top") - val("padding-bottom") + }; + }() : { + // fallback if no container (not 0 b/c can be used for dividing etc) + width: 1, + height: 1 + }); + }, + width: function width() { + return this.size().width; + }, + height: function height() { + return this.size().height; + }, + extent: function extent() { + var pan = this._private.pan; + var zoom = this._private.zoom; + var rb = this.renderedExtent(); + var b = { + x1: (rb.x1 - pan.x) / zoom, + x2: (rb.x2 - pan.x) / zoom, + y1: (rb.y1 - pan.y) / zoom, + y2: (rb.y2 - pan.y) / zoom + }; + b.w = b.x2 - b.x1; + b.h = b.y2 - b.y1; + return b; + }, + renderedExtent: function renderedExtent() { + var width = this.width(); + var height = this.height(); + return { + x1: 0, + y1: 0, + x2: width, + y2: height, + w: width, + h: height + }; + }, + multiClickDebounceTime: function multiClickDebounceTime(_int) { + if (_int) + this._private.multiClickDebounceTime = _int; + else + return this._private.multiClickDebounceTime; + return this; + } + }; + corefn$1.centre = corefn$1.center; + corefn$1.autolockNodes = corefn$1.autolock; + corefn$1.autoungrabifyNodes = corefn$1.autoungrabify; + var fn = { + data: define.data({ + field: "data", + bindingEvent: "data", + allowBinding: true, + allowSetting: true, + settingEvent: "data", + settingTriggersEvent: true, + triggerFnName: "trigger", + allowGetting: true, + updateStyle: true + }), + removeData: define.removeData({ + field: "data", + event: "data", + triggerFnName: "trigger", + triggerEvent: true, + updateStyle: true + }), + scratch: define.data({ + field: "scratch", + bindingEvent: "scratch", + allowBinding: true, + allowSetting: true, + settingEvent: "scratch", + settingTriggersEvent: true, + triggerFnName: "trigger", + allowGetting: true, + updateStyle: true + }), + removeScratch: define.removeData({ + field: "scratch", + event: "scratch", + triggerFnName: "trigger", + triggerEvent: true, + updateStyle: true + }) + }; + fn.attr = fn.data; + fn.removeAttr = fn.removeData; + var Core = function Core2(opts) { + var cy = this; + opts = extend({}, opts); + var container = opts.container; + if (container && !htmlElement(container) && htmlElement(container[0])) { + container = container[0]; + } + var reg = container ? container._cyreg : null; + reg = reg || {}; + if (reg && reg.cy) { + reg.cy.destroy(); + reg = {}; + } + var readies = reg.readies = reg.readies || []; + if (container) { + container._cyreg = reg; + } + reg.cy = cy; + var head = _window !== void 0 && container !== void 0 && !opts.headless; + var options = opts; + options.layout = extend({ + name: head ? "grid" : "null" + }, options.layout); + options.renderer = extend({ + name: head ? "canvas" : "null" + }, options.renderer); + var defVal = function defVal2(def, val, altVal) { + if (val !== void 0) { + return val; + } else if (altVal !== void 0) { + return altVal; + } else { + return def; + } + }; + var _p = this._private = { + container, + // html dom ele container + ready: false, + // whether ready has been triggered + options, + // cached options + elements: new Collection(this), + // elements in the graph + listeners: [], + // list of listeners + aniEles: new Collection(this), + // elements being animated + data: options.data || {}, + // data for the core + scratch: {}, + // scratch object for core + layout: null, + renderer: null, + destroyed: false, + // whether destroy was called + notificationsEnabled: true, + // whether notifications are sent to the renderer + minZoom: 1e-50, + maxZoom: 1e50, + zoomingEnabled: defVal(true, options.zoomingEnabled), + userZoomingEnabled: defVal(true, options.userZoomingEnabled), + panningEnabled: defVal(true, options.panningEnabled), + userPanningEnabled: defVal(true, options.userPanningEnabled), + boxSelectionEnabled: defVal(true, options.boxSelectionEnabled), + autolock: defVal(false, options.autolock, options.autolockNodes), + autoungrabify: defVal(false, options.autoungrabify, options.autoungrabifyNodes), + autounselectify: defVal(false, options.autounselectify), + styleEnabled: options.styleEnabled === void 0 ? head : options.styleEnabled, + zoom: number$1(options.zoom) ? options.zoom : 1, + pan: { + x: plainObject(options.pan) && number$1(options.pan.x) ? options.pan.x : 0, + y: plainObject(options.pan) && number$1(options.pan.y) ? options.pan.y : 0 + }, + animation: { + // object for currently-running animations + current: [], + queue: [] + }, + hasCompoundNodes: false, + multiClickDebounceTime: defVal(250, options.multiClickDebounceTime) + }; + this.createEmitter(); + this.selectionType(options.selectionType); + this.zoomRange({ + min: options.minZoom, + max: options.maxZoom + }); + var loadExtData = function loadExtData2(extData, next2) { + var anyIsPromise = extData.some(promise); + if (anyIsPromise) { + return Promise$1.all(extData).then(next2); + } else { + next2(extData); + } + }; + if (_p.styleEnabled) { + cy.setStyle([]); + } + var rendererOptions = extend({}, options, options.renderer); + cy.initRenderer(rendererOptions); + var setElesAndLayout = function setElesAndLayout2(elements2, onload, ondone) { + cy.notifications(false); + var oldEles = cy.mutableElements(); + if (oldEles.length > 0) { + oldEles.remove(); + } + if (elements2 != null) { + if (plainObject(elements2) || array(elements2)) { + cy.add(elements2); + } + } + cy.one("layoutready", function(e) { + cy.notifications(true); + cy.emit(e); + cy.one("load", onload); + cy.emitAndNotify("load"); + }).one("layoutstop", function() { + cy.one("done", ondone); + cy.emit("done"); + }); + var layoutOpts = extend({}, cy._private.options.layout); + layoutOpts.eles = cy.elements(); + cy.layout(layoutOpts).run(); + }; + loadExtData([options.style, options.elements], function(thens) { + var initStyle = thens[0]; + var initEles = thens[1]; + if (_p.styleEnabled) { + cy.style().append(initStyle); + } + setElesAndLayout(initEles, function() { + cy.startAnimationLoop(); + _p.ready = true; + if (fn$6(options.ready)) { + cy.on("ready", options.ready); + } + for (var i2 = 0; i2 < readies.length; i2++) { + var fn2 = readies[i2]; + cy.on("ready", fn2); + } + if (reg) { + reg.readies = []; + } + cy.emit("ready"); + }, options.done); + }); + }; + var corefn = Core.prototype; + extend(corefn, { + instanceString: function instanceString() { + return "core"; + }, + isReady: function isReady() { + return this._private.ready; + }, + destroyed: function destroyed() { + return this._private.destroyed; + }, + ready: function ready(fn2) { + if (this.isReady()) { + this.emitter().emit("ready", [], fn2); + } else { + this.on("ready", fn2); + } + return this; + }, + destroy: function destroy() { + var cy = this; + if (cy.destroyed()) + return; + cy.stopAnimationLoop(); + cy.destroyRenderer(); + this.emit("destroy"); + cy._private.destroyed = true; + return cy; + }, + hasElementWithId: function hasElementWithId(id) { + return this._private.elements.hasElementWithId(id); + }, + getElementById: function getElementById2(id) { + return this._private.elements.getElementById(id); + }, + hasCompoundNodes: function hasCompoundNodes() { + return this._private.hasCompoundNodes; + }, + headless: function headless() { + return this._private.renderer.isHeadless(); + }, + styleEnabled: function styleEnabled() { + return this._private.styleEnabled; + }, + addToPool: function addToPool(eles) { + this._private.elements.merge(eles); + return this; + }, + removeFromPool: function removeFromPool(eles) { + this._private.elements.unmerge(eles); + return this; + }, + container: function container() { + return this._private.container || null; + }, + window: function window2() { + var container = this._private.container; + if (container == null) + return _window; + var ownerDocument = this._private.container.ownerDocument; + if (ownerDocument === void 0 || ownerDocument == null) { + return _window; + } + return ownerDocument.defaultView || _window; + }, + mount: function mount(container) { + if (container == null) { + return; + } + var cy = this; + var _p = cy._private; + var options = _p.options; + if (!htmlElement(container) && htmlElement(container[0])) { + container = container[0]; + } + cy.stopAnimationLoop(); + cy.destroyRenderer(); + _p.container = container; + _p.styleEnabled = true; + cy.invalidateSize(); + cy.initRenderer(extend({}, options, options.renderer, { + // allow custom renderer name to be re-used, otherwise use canvas + name: options.renderer.name === "null" ? "canvas" : options.renderer.name + })); + cy.startAnimationLoop(); + cy.style(options.style); + cy.emit("mount"); + return cy; + }, + unmount: function unmount() { + var cy = this; + cy.stopAnimationLoop(); + cy.destroyRenderer(); + cy.initRenderer({ + name: "null" + }); + cy.emit("unmount"); + return cy; + }, + options: function options() { + return copy(this._private.options); + }, + json: function json(obj) { + var cy = this; + var _p = cy._private; + var eles = cy.mutableElements(); + var getFreshRef = function getFreshRef2(ele) { + return cy.getElementById(ele.id()); + }; + if (plainObject(obj)) { + cy.startBatch(); + if (obj.elements) { + var idInJson = {}; + var updateEles = function updateEles2(jsons, gr2) { + var toAdd = []; + var toMod = []; + for (var i3 = 0; i3 < jsons.length; i3++) { + var json3 = jsons[i3]; + if (!json3.data.id) { + warn("cy.json() cannot handle elements without an ID attribute"); + continue; + } + var id = "" + json3.data.id; + var ele = cy.getElementById(id); + idInJson[id] = true; + if (ele.length !== 0) { + toMod.push({ + ele, + json: json3 + }); + } else { + if (gr2) { + json3.group = gr2; + toAdd.push(json3); + } else { + toAdd.push(json3); + } + } + } + cy.add(toAdd); + for (var _i = 0; _i < toMod.length; _i++) { + var _toMod$_i = toMod[_i], _ele = _toMod$_i.ele, _json = _toMod$_i.json; + _ele.json(_json); + } + }; + if (array(obj.elements)) { + updateEles(obj.elements); + } else { + var grs = ["nodes", "edges"]; + for (var i2 = 0; i2 < grs.length; i2++) { + var gr = grs[i2]; + var elements2 = obj.elements[gr]; + if (array(elements2)) { + updateEles(elements2, gr); + } + } + } + var parentsToRemove = cy.collection(); + eles.filter(function(ele) { + return !idInJson[ele.id()]; + }).forEach(function(ele) { + if (ele.isParent()) { + parentsToRemove.merge(ele); + } else { + ele.remove(); + } + }); + parentsToRemove.forEach(function(ele) { + return ele.children().move({ + parent: null + }); + }); + parentsToRemove.forEach(function(ele) { + return getFreshRef(ele).remove(); + }); + } + if (obj.style) { + cy.style(obj.style); + } + if (obj.zoom != null && obj.zoom !== _p.zoom) { + cy.zoom(obj.zoom); + } + if (obj.pan) { + if (obj.pan.x !== _p.pan.x || obj.pan.y !== _p.pan.y) { + cy.pan(obj.pan); + } + } + if (obj.data) { + cy.data(obj.data); + } + var fields = ["minZoom", "maxZoom", "zoomingEnabled", "userZoomingEnabled", "panningEnabled", "userPanningEnabled", "boxSelectionEnabled", "autolock", "autoungrabify", "autounselectify", "multiClickDebounceTime"]; + for (var _i2 = 0; _i2 < fields.length; _i2++) { + var f = fields[_i2]; + if (obj[f] != null) { + cy[f](obj[f]); + } + } + cy.endBatch(); + return this; + } else { + var flat = !!obj; + var json2 = {}; + if (flat) { + json2.elements = this.elements().map(function(ele) { + return ele.json(); + }); + } else { + json2.elements = {}; + eles.forEach(function(ele) { + var group = ele.group(); + if (!json2.elements[group]) { + json2.elements[group] = []; + } + json2.elements[group].push(ele.json()); + }); + } + if (this._private.styleEnabled) { + json2.style = cy.style().json(); + } + json2.data = copy(cy.data()); + var options = _p.options; + json2.zoomingEnabled = _p.zoomingEnabled; + json2.userZoomingEnabled = _p.userZoomingEnabled; + json2.zoom = _p.zoom; + json2.minZoom = _p.minZoom; + json2.maxZoom = _p.maxZoom; + json2.panningEnabled = _p.panningEnabled; + json2.userPanningEnabled = _p.userPanningEnabled; + json2.pan = copy(_p.pan); + json2.boxSelectionEnabled = _p.boxSelectionEnabled; + json2.renderer = copy(options.renderer); + json2.hideEdgesOnViewport = options.hideEdgesOnViewport; + json2.textureOnViewport = options.textureOnViewport; + json2.wheelSensitivity = options.wheelSensitivity; + json2.motionBlur = options.motionBlur; + json2.multiClickDebounceTime = options.multiClickDebounceTime; + return json2; + } + } + }); + corefn.$id = corefn.getElementById; + [corefn$9, corefn$8, elesfn, corefn$7, corefn$6, corefn$5, corefn$4, corefn$3, corefn$2, corefn$1, fn].forEach(function(props) { + extend(corefn, props); + }); + var defaults$7 = { + fit: true, + // whether to fit the viewport to the graph + directed: false, + // whether the tree is directed downwards (or edges can point in any direction if false) + padding: 30, + // padding on fit + circle: false, + // put depths in concentric circles if true, put depths top down if false + grid: false, + // whether to create an even grid into which the DAG is placed (circle:false only) + spacingFactor: 1.75, + // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap) + boundingBox: void 0, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: true, + // prevents node overlap, may overflow boundingBox if not enough space + nodeDimensionsIncludeLabels: false, + // Excludes the label when calculating node bounding boxes for the layout algorithm + roots: void 0, + // the roots of the trees + depthSort: void 0, + // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') } + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: void 0, + // easing of animation if enabled, + animateFilter: function animateFilter(node, i2) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: void 0, + // callback on layoutready + stop: void 0, + // callback on layoutstop + transform: function transform(node, position2) { + return position2; + } + // transform a given node position. Useful for changing flow direction in discrete layouts + }; + var deprecatedOptionDefaults = { + maximal: false, + // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only); setting acyclic to true sets maximal to true also + acyclic: false + // whether the tree is acyclic and thus a node could be shifted (due to the maximal option) multiple times without causing an infinite loop; setting to true sets maximal to true also; if you are uncertain whether a tree is acyclic, set to false to avoid potential infinite loops + }; + var getInfo = function getInfo2(ele) { + return ele.scratch("breadthfirst"); + }; + var setInfo = function setInfo2(ele, obj) { + return ele.scratch("breadthfirst", obj); + }; + function BreadthFirstLayout(options) { + this.options = extend({}, defaults$7, deprecatedOptionDefaults, options); + } + BreadthFirstLayout.prototype.run = function() { + var params = this.options; + var options = params; + var cy = params.cy; + var eles = options.eles; + var nodes2 = eles.nodes().filter(function(n2) { + return !n2.isParent(); + }); + var graph = eles; + var directed = options.directed; + var maximal = options.acyclic || options.maximal || options.maximalAdjustments > 0; + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + var roots; + if (elementOrCollection(options.roots)) { + roots = options.roots; + } else if (array(options.roots)) { + var rootsArray = []; + for (var i2 = 0; i2 < options.roots.length; i2++) { + var id = options.roots[i2]; + var ele = cy.getElementById(id); + rootsArray.push(ele); + } + roots = cy.collection(rootsArray); + } else if (string(options.roots)) { + roots = cy.$(options.roots); + } else { + if (directed) { + roots = nodes2.roots(); + } else { + var components = eles.components(); + roots = cy.collection(); + var _loop = function _loop2(_i3) { + var comp = components[_i3]; + var maxDegree = comp.maxDegree(false); + var compRoots = comp.filter(function(ele2) { + return ele2.degree(false) === maxDegree; + }); + roots = roots.add(compRoots); + }; + for (var _i = 0; _i < components.length; _i++) { + _loop(_i); + } + } + } + var depths = []; + var foundByBfs = {}; + var addToDepth = function addToDepth2(ele2, d) { + if (depths[d] == null) { + depths[d] = []; + } + var i3 = depths[d].length; + depths[d].push(ele2); + setInfo(ele2, { + index: i3, + depth: d + }); + }; + var changeDepth = function changeDepth2(ele2, newDepth) { + var _getInfo = getInfo(ele2), depth = _getInfo.depth, index = _getInfo.index; + depths[depth][index] = null; + addToDepth(ele2, newDepth); + }; + graph.bfs({ + roots, + directed: options.directed, + visit: function visit(node, edge, pNode, i3, depth) { + var ele2 = node[0]; + var id2 = ele2.id(); + addToDepth(ele2, depth); + foundByBfs[id2] = true; + } + }); + var orphanNodes = []; + for (var _i2 = 0; _i2 < nodes2.length; _i2++) { + var _ele = nodes2[_i2]; + if (foundByBfs[_ele.id()]) { + continue; + } else { + orphanNodes.push(_ele); + } + } + var assignDepthsAt = function assignDepthsAt2(i3) { + var eles2 = depths[i3]; + for (var j = 0; j < eles2.length; j++) { + var _ele2 = eles2[j]; + if (_ele2 == null) { + eles2.splice(j, 1); + j--; + continue; + } + setInfo(_ele2, { + depth: i3, + index: j + }); + } + }; + var assignDepths = function assignDepths2() { + for (var _i3 = 0; _i3 < depths.length; _i3++) { + assignDepthsAt(_i3); + } + }; + var adjustMaximally = function adjustMaximally2(ele2, shifted2) { + var eInfo = getInfo(ele2); + var incomers = ele2.incomers().filter(function(el) { + return el.isNode() && eles.has(el); + }); + var maxDepth = -1; + var id2 = ele2.id(); + for (var k = 0; k < incomers.length; k++) { + var incmr = incomers[k]; + var iInfo = getInfo(incmr); + maxDepth = Math.max(maxDepth, iInfo.depth); + } + if (eInfo.depth <= maxDepth) { + if (!options.acyclic && shifted2[id2]) { + return null; + } + var newDepth = maxDepth + 1; + changeDepth(ele2, newDepth); + shifted2[id2] = newDepth; + return true; + } + return false; + }; + if (directed && maximal) { + var Q = []; + var shifted = {}; + var enqueue = function enqueue2(n2) { + return Q.push(n2); + }; + var dequeue = function dequeue2() { + return Q.shift(); + }; + nodes2.forEach(function(n2) { + return Q.push(n2); + }); + while (Q.length > 0) { + var _ele3 = dequeue(); + var didShift = adjustMaximally(_ele3, shifted); + if (didShift) { + _ele3.outgoers().filter(function(el) { + return el.isNode() && eles.has(el); + }).forEach(enqueue); + } else if (didShift === null) { + warn("Detected double maximal shift for node `" + _ele3.id() + "`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs."); + break; + } + } + } + assignDepths(); + var minDistance = 0; + if (options.avoidOverlap) { + for (var _i4 = 0; _i4 < nodes2.length; _i4++) { + var n = nodes2[_i4]; + var nbb = n.layoutDimensions(options); + var w = nbb.w; + var h = nbb.h; + minDistance = Math.max(minDistance, w, h); + } + } + var cachedWeightedPercent = {}; + var getWeightedPercent = function getWeightedPercent2(ele2) { + if (cachedWeightedPercent[ele2.id()]) { + return cachedWeightedPercent[ele2.id()]; + } + var eleDepth = getInfo(ele2).depth; + var neighbors = ele2.neighborhood(); + var percent = 0; + var samples = 0; + for (var _i5 = 0; _i5 < neighbors.length; _i5++) { + var neighbor = neighbors[_i5]; + if (neighbor.isEdge() || neighbor.isParent() || !nodes2.has(neighbor)) { + continue; + } + var bf = getInfo(neighbor); + if (bf == null) { + continue; + } + var index = bf.index; + var depth = bf.depth; + if (index == null || depth == null) { + continue; + } + var nDepth = depths[depth].length; + if (depth < eleDepth) { + percent += index / nDepth; + samples++; + } + } + samples = Math.max(1, samples); + percent = percent / samples; + if (samples === 0) { + percent = 0; + } + cachedWeightedPercent[ele2.id()] = percent; + return percent; + }; + var sortFn = function sortFn2(a, b) { + var apct = getWeightedPercent(a); + var bpct = getWeightedPercent(b); + var diff = apct - bpct; + if (diff === 0) { + return ascending(a.id(), b.id()); + } else { + return diff; + } + }; + if (options.depthSort !== void 0) { + sortFn = options.depthSort; + } + for (var _i6 = 0; _i6 < depths.length; _i6++) { + depths[_i6].sort(sortFn); + assignDepthsAt(_i6); + } + var orphanDepth = []; + for (var _i7 = 0; _i7 < orphanNodes.length; _i7++) { + orphanDepth.push(orphanNodes[_i7]); + } + depths.unshift(orphanDepth); + assignDepths(); + var biggestDepthSize = 0; + for (var _i8 = 0; _i8 < depths.length; _i8++) { + biggestDepthSize = Math.max(depths[_i8].length, biggestDepthSize); + } + var center = { + x: bb.x1 + bb.w / 2, + y: bb.x1 + bb.h / 2 + }; + var maxDepthSize = depths.reduce(function(max2, eles2) { + return Math.max(max2, eles2.length); + }, 0); + var getPosition = function getPosition2(ele2) { + var _getInfo2 = getInfo(ele2), depth = _getInfo2.depth, index = _getInfo2.index; + var depthSize = depths[depth].length; + var distanceX = Math.max(bb.w / ((options.grid ? maxDepthSize : depthSize) + 1), minDistance); + var distanceY = Math.max(bb.h / (depths.length + 1), minDistance); + var radiusStepSize = Math.min(bb.w / 2 / depths.length, bb.h / 2 / depths.length); + radiusStepSize = Math.max(radiusStepSize, minDistance); + if (!options.circle) { + var epos = { + x: center.x + (index + 1 - (depthSize + 1) / 2) * distanceX, + y: (depth + 1) * distanceY + }; + return epos; + } else { + var radius = radiusStepSize * depth + radiusStepSize - (depths.length > 0 && depths[0].length <= 3 ? radiusStepSize / 2 : 0); + var theta = 2 * Math.PI / depths[depth].length * index; + if (depth === 0 && depths[0].length === 1) { + radius = 1; + } + return { + x: center.x + radius * Math.cos(theta), + y: center.y + radius * Math.sin(theta) + }; + } + }; + eles.nodes().layoutPositions(this, options, getPosition); + return this; + }; + var defaults$6 = { + fit: true, + // whether to fit the viewport to the graph + padding: 30, + // the padding on fit + boundingBox: void 0, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: true, + // prevents node overlap, may overflow boundingBox and radius if not enough space + nodeDimensionsIncludeLabels: false, + // Excludes the label when calculating node bounding boxes for the layout algorithm + spacingFactor: void 0, + // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up + radius: void 0, + // the radius of the circle + startAngle: 3 / 2 * Math.PI, + // where nodes start in radians + sweep: void 0, + // how many radians should be between the first and last node (defaults to full circle) + clockwise: true, + // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false) + sort: void 0, + // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') } + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: void 0, + // easing of animation if enabled + animateFilter: function animateFilter(node, i2) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: void 0, + // callback on layoutready + stop: void 0, + // callback on layoutstop + transform: function transform(node, position2) { + return position2; + } + // transform a given node position. Useful for changing flow direction in discrete layouts + }; + function CircleLayout(options) { + this.options = extend({}, defaults$6, options); + } + CircleLayout.prototype.run = function() { + var params = this.options; + var options = params; + var cy = params.cy; + var eles = options.eles; + var clockwise = options.counterclockwise !== void 0 ? !options.counterclockwise : options.clockwise; + var nodes2 = eles.nodes().not(":parent"); + if (options.sort) { + nodes2 = nodes2.sort(options.sort); + } + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + var center = { + x: bb.x1 + bb.w / 2, + y: bb.y1 + bb.h / 2 + }; + var sweep = options.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / nodes2.length : options.sweep; + var dTheta = sweep / Math.max(1, nodes2.length - 1); + var r; + var minDistance = 0; + for (var i2 = 0; i2 < nodes2.length; i2++) { + var n = nodes2[i2]; + var nbb = n.layoutDimensions(options); + var w = nbb.w; + var h = nbb.h; + minDistance = Math.max(minDistance, w, h); + } + if (number$1(options.radius)) { + r = options.radius; + } else if (nodes2.length <= 1) { + r = 0; + } else { + r = Math.min(bb.h, bb.w) / 2 - minDistance; + } + if (nodes2.length > 1 && options.avoidOverlap) { + minDistance *= 1.75; + var dcos = Math.cos(dTheta) - Math.cos(0); + var dsin = Math.sin(dTheta) - Math.sin(0); + var rMin = Math.sqrt(minDistance * minDistance / (dcos * dcos + dsin * dsin)); + r = Math.max(rMin, r); + } + var getPos = function getPos2(ele, i3) { + var theta = options.startAngle + i3 * dTheta * (clockwise ? 1 : -1); + var rx = r * Math.cos(theta); + var ry = r * Math.sin(theta); + var pos = { + x: center.x + rx, + y: center.y + ry + }; + return pos; + }; + eles.nodes().layoutPositions(this, options, getPos); + return this; + }; + var defaults$5 = { + fit: true, + // whether to fit the viewport to the graph + padding: 30, + // the padding on fit + startAngle: 3 / 2 * Math.PI, + // where nodes start in radians + sweep: void 0, + // how many radians should be between the first and last node (defaults to full circle) + clockwise: true, + // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false) + equidistant: false, + // whether levels have an equal radial distance betwen them, may cause bounding box overflow + minNodeSpacing: 10, + // min spacing between outside of nodes (used for radius adjustment) + boundingBox: void 0, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: true, + // prevents node overlap, may overflow boundingBox if not enough space + nodeDimensionsIncludeLabels: false, + // Excludes the label when calculating node bounding boxes for the layout algorithm + height: void 0, + // height of layout area (overrides container height) + width: void 0, + // width of layout area (overrides container width) + spacingFactor: void 0, + // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up + concentric: function concentric(node) { + return node.degree(); + }, + levelWidth: function levelWidth(nodes2) { + return nodes2.maxDegree() / 4; + }, + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: void 0, + // easing of animation if enabled + animateFilter: function animateFilter(node, i2) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: void 0, + // callback on layoutready + stop: void 0, + // callback on layoutstop + transform: function transform(node, position2) { + return position2; + } + // transform a given node position. Useful for changing flow direction in discrete layouts + }; + function ConcentricLayout(options) { + this.options = extend({}, defaults$5, options); + } + ConcentricLayout.prototype.run = function() { + var params = this.options; + var options = params; + var clockwise = options.counterclockwise !== void 0 ? !options.counterclockwise : options.clockwise; + var cy = params.cy; + var eles = options.eles; + var nodes2 = eles.nodes().not(":parent"); + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + var center = { + x: bb.x1 + bb.w / 2, + y: bb.y1 + bb.h / 2 + }; + var nodeValues = []; + var maxNodeSize = 0; + for (var i2 = 0; i2 < nodes2.length; i2++) { + var node = nodes2[i2]; + var value = void 0; + value = options.concentric(node); + nodeValues.push({ + value, + node + }); + node._private.scratch.concentric = value; + } + nodes2.updateStyle(); + for (var _i = 0; _i < nodes2.length; _i++) { + var _node = nodes2[_i]; + var nbb = _node.layoutDimensions(options); + maxNodeSize = Math.max(maxNodeSize, nbb.w, nbb.h); + } + nodeValues.sort(function(a, b) { + return b.value - a.value; + }); + var levelWidth = options.levelWidth(nodes2); + var levels = [[]]; + var currentLevel = levels[0]; + for (var _i2 = 0; _i2 < nodeValues.length; _i2++) { + var val = nodeValues[_i2]; + if (currentLevel.length > 0) { + var diff = Math.abs(currentLevel[0].value - val.value); + if (diff >= levelWidth) { + currentLevel = []; + levels.push(currentLevel); + } + } + currentLevel.push(val); + } + var minDist = maxNodeSize + options.minNodeSpacing; + if (!options.avoidOverlap) { + var firstLvlHasMulti = levels.length > 0 && levels[0].length > 1; + var maxR = Math.min(bb.w, bb.h) / 2 - minDist; + var rStep = maxR / (levels.length + firstLvlHasMulti ? 1 : 0); + minDist = Math.min(minDist, rStep); + } + var r = 0; + for (var _i3 = 0; _i3 < levels.length; _i3++) { + var level = levels[_i3]; + var sweep = options.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / level.length : options.sweep; + var dTheta = level.dTheta = sweep / Math.max(1, level.length - 1); + if (level.length > 1 && options.avoidOverlap) { + var dcos = Math.cos(dTheta) - Math.cos(0); + var dsin = Math.sin(dTheta) - Math.sin(0); + var rMin = Math.sqrt(minDist * minDist / (dcos * dcos + dsin * dsin)); + r = Math.max(rMin, r); + } + level.r = r; + r += minDist; + } + if (options.equidistant) { + var rDeltaMax = 0; + var _r = 0; + for (var _i4 = 0; _i4 < levels.length; _i4++) { + var _level = levels[_i4]; + var rDelta = _level.r - _r; + rDeltaMax = Math.max(rDeltaMax, rDelta); + } + _r = 0; + for (var _i5 = 0; _i5 < levels.length; _i5++) { + var _level2 = levels[_i5]; + if (_i5 === 0) { + _r = _level2.r; + } + _level2.r = _r; + _r += rDeltaMax; + } + } + var pos = {}; + for (var _i6 = 0; _i6 < levels.length; _i6++) { + var _level3 = levels[_i6]; + var _dTheta = _level3.dTheta; + var _r2 = _level3.r; + for (var j = 0; j < _level3.length; j++) { + var _val = _level3[j]; + var theta = options.startAngle + (clockwise ? 1 : -1) * _dTheta * j; + var p2 = { + x: center.x + _r2 * Math.cos(theta), + y: center.y + _r2 * Math.sin(theta) + }; + pos[_val.node.id()] = p2; + } + } + eles.nodes().layoutPositions(this, options, function(ele) { + var id = ele.id(); + return pos[id]; + }); + return this; + }; + var DEBUG; + var defaults$4 = { + // Called on `layoutready` + ready: function ready() { + }, + // Called on `layoutstop` + stop: function stop() { + }, + // Whether to animate while running the layout + // true : Animate continuously as the layout is running + // false : Just show the end result + // 'end' : Animate with the end result, from the initial positions to the end positions + animate: true, + // Easing of the animation for animate:'end' + animationEasing: void 0, + // The duration of the animation for animate:'end' + animationDuration: void 0, + // A function that determines whether the node should be animated + // All nodes animated by default on animate enabled + // Non-animated nodes are positioned immediately when the layout starts + animateFilter: function animateFilter(node, i2) { + return true; + }, + // The layout animates only after this many milliseconds for animate:true + // (prevents flashing on fast runs) + animationThreshold: 250, + // Number of iterations between consecutive screen positions update + refresh: 20, + // Whether to fit the network view after when done + fit: true, + // Padding on fit + padding: 30, + // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + boundingBox: void 0, + // Excludes the label when calculating node bounding boxes for the layout algorithm + nodeDimensionsIncludeLabels: false, + // Randomize the initial positions of the nodes (true) or use existing positions (false) + randomize: false, + // Extra spacing between components in non-compound graphs + componentSpacing: 40, + // Node repulsion (non overlapping) multiplier + nodeRepulsion: function nodeRepulsion2(node) { + return 2048; + }, + // Node repulsion (overlapping) multiplier + nodeOverlap: 4, + // Ideal edge (non nested) length + idealEdgeLength: function idealEdgeLength(edge) { + return 32; + }, + // Divisor to compute edge forces + edgeElasticity: function edgeElasticity(edge) { + return 32; + }, + // Nesting factor (multiplier) to compute ideal edge length for nested edges + nestingFactor: 1.2, + // Gravity force (constant) + gravity: 1, + // Maximum number of iterations to perform + numIter: 1e3, + // Initial temperature (maximum node displacement) + initialTemp: 1e3, + // Cooling factor (how the temperature is reduced between consecutive iterations + coolingFactor: 0.99, + // Lower temperature threshold (below this point the layout will end) + minTemp: 1 + }; + function CoseLayout(options) { + this.options = extend({}, defaults$4, options); + this.options.layout = this; + var nodes2 = this.options.eles.nodes(); + var edges = this.options.eles.edges(); + var notEdges = edges.filter(function(e) { + var sourceId = e.source().data("id"); + var targetId = e.target().data("id"); + var hasSource = nodes2.some(function(n) { + return n.data("id") === sourceId; + }); + var hasTarget = nodes2.some(function(n) { + return n.data("id") === targetId; + }); + return !hasSource || !hasTarget; + }); + this.options.eles = this.options.eles.not(notEdges); + } + CoseLayout.prototype.run = function() { + var options = this.options; + var cy = options.cy; + var layout2 = this; + layout2.stopped = false; + if (options.animate === true || options.animate === false) { + layout2.emit({ + type: "layoutstart", + layout: layout2 + }); + } + if (true === options.debug) { + DEBUG = true; + } else { + DEBUG = false; + } + var layoutInfo = createLayoutInfo(cy, layout2, options); + if (DEBUG) { + printLayoutInfo(layoutInfo); + } + if (options.randomize) { + randomizePositions(layoutInfo); + } + var startTime = performanceNow(); + var refresh = function refresh2() { + refreshPositions(layoutInfo, cy, options); + if (true === options.fit) { + cy.fit(options.padding); + } + }; + var mainLoop = function mainLoop2(i3) { + if (layout2.stopped || i3 >= options.numIter) { + return false; + } + step(layoutInfo, options); + layoutInfo.temperature = layoutInfo.temperature * options.coolingFactor; + if (layoutInfo.temperature < options.minTemp) { + return false; + } + return true; + }; + var done = function done2() { + if (options.animate === true || options.animate === false) { + refresh(); + layout2.one("layoutstop", options.stop); + layout2.emit({ + type: "layoutstop", + layout: layout2 + }); + } else { + var nodes2 = options.eles.nodes(); + var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes2); + nodes2.layoutPositions(layout2, options, getScaledPos); + } + }; + var i2 = 0; + var loopRet = true; + if (options.animate === true) { + var frame = function frame2() { + var f = 0; + while (loopRet && f < options.refresh) { + loopRet = mainLoop(i2); + i2++; + f++; + } + if (!loopRet) { + separateComponents(layoutInfo, options); + done(); + } else { + var now2 = performanceNow(); + if (now2 - startTime >= options.animationThreshold) { + refresh(); + } + requestAnimationFrame2(frame2); + } + }; + frame(); + } else { + while (loopRet) { + loopRet = mainLoop(i2); + i2++; + } + separateComponents(layoutInfo, options); + done(); + } + return this; + }; + CoseLayout.prototype.stop = function() { + this.stopped = true; + if (this.thread) { + this.thread.stop(); + } + this.emit("layoutstop"); + return this; + }; + CoseLayout.prototype.destroy = function() { + if (this.thread) { + this.thread.stop(); + } + return this; + }; + var createLayoutInfo = function createLayoutInfo2(cy, layout2, options) { + var edges = options.eles.edges(); + var nodes2 = options.eles.nodes(); + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + var layoutInfo = { + isCompound: cy.hasCompoundNodes(), + layoutNodes: [], + idToIndex: {}, + nodeSize: nodes2.size(), + graphSet: [], + indexToGraph: [], + layoutEdges: [], + edgeSize: edges.size(), + temperature: options.initialTemp, + clientWidth: bb.w, + clientHeight: bb.h, + boundingBox: bb + }; + var components = options.eles.components(); + var id2cmptId = {}; + for (var i2 = 0; i2 < components.length; i2++) { + var component = components[i2]; + for (var j = 0; j < component.length; j++) { + var node = component[j]; + id2cmptId[node.id()] = i2; + } + } + for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) { + var n = nodes2[i2]; + var nbb = n.layoutDimensions(options); + var tempNode = {}; + tempNode.isLocked = n.locked(); + tempNode.id = n.data("id"); + tempNode.parentId = n.data("parent"); + tempNode.cmptId = id2cmptId[n.id()]; + tempNode.children = []; + tempNode.positionX = n.position("x"); + tempNode.positionY = n.position("y"); + tempNode.offsetX = 0; + tempNode.offsetY = 0; + tempNode.height = nbb.w; + tempNode.width = nbb.h; + tempNode.maxX = tempNode.positionX + tempNode.width / 2; + tempNode.minX = tempNode.positionX - tempNode.width / 2; + tempNode.maxY = tempNode.positionY + tempNode.height / 2; + tempNode.minY = tempNode.positionY - tempNode.height / 2; + tempNode.padLeft = parseFloat(n.style("padding")); + tempNode.padRight = parseFloat(n.style("padding")); + tempNode.padTop = parseFloat(n.style("padding")); + tempNode.padBottom = parseFloat(n.style("padding")); + tempNode.nodeRepulsion = fn$6(options.nodeRepulsion) ? options.nodeRepulsion(n) : options.nodeRepulsion; + layoutInfo.layoutNodes.push(tempNode); + layoutInfo.idToIndex[tempNode.id] = i2; + } + var queue = []; + var start = 0; + var end = -1; + var tempGraph = []; + for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) { + var n = layoutInfo.layoutNodes[i2]; + var p_id = n.parentId; + if (null != p_id) { + layoutInfo.layoutNodes[layoutInfo.idToIndex[p_id]].children.push(n.id); + } else { + queue[++end] = n.id; + tempGraph.push(n.id); + } + } + layoutInfo.graphSet.push(tempGraph); + while (start <= end) { + var node_id = queue[start++]; + var node_ix = layoutInfo.idToIndex[node_id]; + var node = layoutInfo.layoutNodes[node_ix]; + var children = node.children; + if (children.length > 0) { + layoutInfo.graphSet.push(children); + for (var i2 = 0; i2 < children.length; i2++) { + queue[++end] = children[i2]; + } + } + } + for (var i2 = 0; i2 < layoutInfo.graphSet.length; i2++) { + var graph = layoutInfo.graphSet[i2]; + for (var j = 0; j < graph.length; j++) { + var index = layoutInfo.idToIndex[graph[j]]; + layoutInfo.indexToGraph[index] = i2; + } + } + for (var i2 = 0; i2 < layoutInfo.edgeSize; i2++) { + var e = edges[i2]; + var tempEdge = {}; + tempEdge.id = e.data("id"); + tempEdge.sourceId = e.data("source"); + tempEdge.targetId = e.data("target"); + var idealLength = fn$6(options.idealEdgeLength) ? options.idealEdgeLength(e) : options.idealEdgeLength; + var elasticity = fn$6(options.edgeElasticity) ? options.edgeElasticity(e) : options.edgeElasticity; + var sourceIx = layoutInfo.idToIndex[tempEdge.sourceId]; + var targetIx = layoutInfo.idToIndex[tempEdge.targetId]; + var sourceGraph = layoutInfo.indexToGraph[sourceIx]; + var targetGraph = layoutInfo.indexToGraph[targetIx]; + if (sourceGraph != targetGraph) { + var lca = findLCA(tempEdge.sourceId, tempEdge.targetId, layoutInfo); + var lcaGraph = layoutInfo.graphSet[lca]; + var depth = 0; + var tempNode = layoutInfo.layoutNodes[sourceIx]; + while (-1 === lcaGraph.indexOf(tempNode.id)) { + tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]]; + depth++; + } + tempNode = layoutInfo.layoutNodes[targetIx]; + while (-1 === lcaGraph.indexOf(tempNode.id)) { + tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]]; + depth++; + } + idealLength *= depth * options.nestingFactor; + } + tempEdge.idealLength = idealLength; + tempEdge.elasticity = elasticity; + layoutInfo.layoutEdges.push(tempEdge); + } + return layoutInfo; + }; + var findLCA = function findLCA2(node1, node2, layoutInfo) { + var res = findLCA_aux(node1, node2, 0, layoutInfo); + if (2 > res.count) { + return 0; + } else { + return res.graph; + } + }; + var findLCA_aux = function findLCA_aux2(node1, node2, graphIx, layoutInfo) { + var graph = layoutInfo.graphSet[graphIx]; + if (-1 < graph.indexOf(node1) && -1 < graph.indexOf(node2)) { + return { + count: 2, + graph: graphIx + }; + } + var c = 0; + for (var i2 = 0; i2 < graph.length; i2++) { + var nodeId = graph[i2]; + var nodeIx = layoutInfo.idToIndex[nodeId]; + var children = layoutInfo.layoutNodes[nodeIx].children; + if (0 === children.length) { + continue; + } + var childGraphIx = layoutInfo.indexToGraph[layoutInfo.idToIndex[children[0]]]; + var result = findLCA_aux2(node1, node2, childGraphIx, layoutInfo); + if (0 === result.count) { + continue; + } else if (1 === result.count) { + c++; + if (2 === c) { + break; + } + } else { + return result; + } + } + return { + count: c, + graph: graphIx + }; + }; + var printLayoutInfo; + var randomizePositions = function randomizePositions2(layoutInfo, cy) { + var width = layoutInfo.clientWidth; + var height = layoutInfo.clientHeight; + for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) { + var n = layoutInfo.layoutNodes[i2]; + if (0 === n.children.length && !n.isLocked) { + n.positionX = Math.random() * width; + n.positionY = Math.random() * height; + } + } + }; + var getScaleInBoundsFn = function getScaleInBoundsFn2(layoutInfo, options, nodes2) { + var bb = layoutInfo.boundingBox; + var coseBB = { + x1: Infinity, + x2: -Infinity, + y1: Infinity, + y2: -Infinity + }; + if (options.boundingBox) { + nodes2.forEach(function(node) { + var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[node.data("id")]]; + coseBB.x1 = Math.min(coseBB.x1, lnode.positionX); + coseBB.x2 = Math.max(coseBB.x2, lnode.positionX); + coseBB.y1 = Math.min(coseBB.y1, lnode.positionY); + coseBB.y2 = Math.max(coseBB.y2, lnode.positionY); + }); + coseBB.w = coseBB.x2 - coseBB.x1; + coseBB.h = coseBB.y2 - coseBB.y1; + } + return function(ele, i2) { + var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[ele.data("id")]]; + if (options.boundingBox) { + var pctX = (lnode.positionX - coseBB.x1) / coseBB.w; + var pctY = (lnode.positionY - coseBB.y1) / coseBB.h; + return { + x: bb.x1 + pctX * bb.w, + y: bb.y1 + pctY * bb.h + }; + } else { + return { + x: lnode.positionX, + y: lnode.positionY + }; + } + }; + }; + var refreshPositions = function refreshPositions2(layoutInfo, cy, options) { + var layout2 = options.layout; + var nodes2 = options.eles.nodes(); + var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes2); + nodes2.positions(getScaledPos); + if (true !== layoutInfo.ready) { + layoutInfo.ready = true; + layout2.one("layoutready", options.ready); + layout2.emit({ + type: "layoutready", + layout: this + }); + } + }; + var step = function step2(layoutInfo, options, _step) { + calculateNodeForces(layoutInfo, options); + calculateEdgeForces(layoutInfo); + calculateGravityForces(layoutInfo, options); + propagateForces(layoutInfo); + updatePositions(layoutInfo); + }; + var calculateNodeForces = function calculateNodeForces2(layoutInfo, options) { + for (var i2 = 0; i2 < layoutInfo.graphSet.length; i2++) { + var graph = layoutInfo.graphSet[i2]; + var numNodes = graph.length; + for (var j = 0; j < numNodes; j++) { + var node1 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]]; + for (var k = j + 1; k < numNodes; k++) { + var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[k]]]; + nodeRepulsion(node1, node2, layoutInfo, options); + } + } + } + }; + var randomDistance = function randomDistance2(max2) { + return -max2 + 2 * max2 * Math.random(); + }; + var nodeRepulsion = function nodeRepulsion2(node1, node2, layoutInfo, options) { + var cmptId1 = node1.cmptId; + var cmptId2 = node2.cmptId; + if (cmptId1 !== cmptId2 && !layoutInfo.isCompound) { + return; + } + var directionX = node2.positionX - node1.positionX; + var directionY = node2.positionY - node1.positionY; + var maxRandDist = 1; + if (0 === directionX && 0 === directionY) { + directionX = randomDistance(maxRandDist); + directionY = randomDistance(maxRandDist); + } + var overlap = nodesOverlap(node1, node2, directionX, directionY); + if (overlap > 0) { + var force = options.nodeOverlap * overlap; + var distance = Math.sqrt(directionX * directionX + directionY * directionY); + var forceX = force * directionX / distance; + var forceY = force * directionY / distance; + } else { + var point1 = findClippingPoint(node1, directionX, directionY); + var point2 = findClippingPoint(node2, -1 * directionX, -1 * directionY); + var distanceX = point2.x - point1.x; + var distanceY = point2.y - point1.y; + var distanceSqr = distanceX * distanceX + distanceY * distanceY; + var distance = Math.sqrt(distanceSqr); + var force = (node1.nodeRepulsion + node2.nodeRepulsion) / distanceSqr; + var forceX = force * distanceX / distance; + var forceY = force * distanceY / distance; + } + if (!node1.isLocked) { + node1.offsetX -= forceX; + node1.offsetY -= forceY; + } + if (!node2.isLocked) { + node2.offsetX += forceX; + node2.offsetY += forceY; + } + return; + }; + var nodesOverlap = function nodesOverlap2(node1, node2, dX, dY) { + if (dX > 0) { + var overlapX = node1.maxX - node2.minX; + } else { + var overlapX = node2.maxX - node1.minX; + } + if (dY > 0) { + var overlapY = node1.maxY - node2.minY; + } else { + var overlapY = node2.maxY - node1.minY; + } + if (overlapX >= 0 && overlapY >= 0) { + return Math.sqrt(overlapX * overlapX + overlapY * overlapY); + } else { + return 0; + } + }; + var findClippingPoint = function findClippingPoint2(node, dX, dY) { + var X = node.positionX; + var Y = node.positionY; + var H = node.height || 1; + var W = node.width || 1; + var dirSlope = dY / dX; + var nodeSlope = H / W; + var res = {}; + if (0 === dX && 0 < dY) { + res.x = X; + res.y = Y + H / 2; + return res; + } + if (0 === dX && 0 > dY) { + res.x = X; + res.y = Y + H / 2; + return res; + } + if (0 < dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) { + res.x = X + W / 2; + res.y = Y + W * dY / 2 / dX; + return res; + } + if (0 > dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) { + res.x = X - W / 2; + res.y = Y - W * dY / 2 / dX; + return res; + } + if (0 < dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) { + res.x = X + H * dX / 2 / dY; + res.y = Y + H / 2; + return res; + } + if (0 > dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) { + res.x = X - H * dX / 2 / dY; + res.y = Y - H / 2; + return res; + } + return res; + }; + var calculateEdgeForces = function calculateEdgeForces2(layoutInfo, options) { + for (var i2 = 0; i2 < layoutInfo.edgeSize; i2++) { + var edge = layoutInfo.layoutEdges[i2]; + var sourceIx = layoutInfo.idToIndex[edge.sourceId]; + var source = layoutInfo.layoutNodes[sourceIx]; + var targetIx = layoutInfo.idToIndex[edge.targetId]; + var target = layoutInfo.layoutNodes[targetIx]; + var directionX = target.positionX - source.positionX; + var directionY = target.positionY - source.positionY; + if (0 === directionX && 0 === directionY) { + continue; + } + var point1 = findClippingPoint(source, directionX, directionY); + var point2 = findClippingPoint(target, -1 * directionX, -1 * directionY); + var lx = point2.x - point1.x; + var ly = point2.y - point1.y; + var l = Math.sqrt(lx * lx + ly * ly); + var force = Math.pow(edge.idealLength - l, 2) / edge.elasticity; + if (0 !== l) { + var forceX = force * lx / l; + var forceY = force * ly / l; + } else { + var forceX = 0; + var forceY = 0; + } + if (!source.isLocked) { + source.offsetX += forceX; + source.offsetY += forceY; + } + if (!target.isLocked) { + target.offsetX -= forceX; + target.offsetY -= forceY; + } + } + }; + var calculateGravityForces = function calculateGravityForces2(layoutInfo, options) { + if (options.gravity === 0) { + return; + } + var distThreshold = 1; + for (var i2 = 0; i2 < layoutInfo.graphSet.length; i2++) { + var graph = layoutInfo.graphSet[i2]; + var numNodes = graph.length; + if (0 === i2) { + var centerX = layoutInfo.clientHeight / 2; + var centerY = layoutInfo.clientWidth / 2; + } else { + var temp = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[0]]]; + var parent = layoutInfo.layoutNodes[layoutInfo.idToIndex[temp.parentId]]; + var centerX = parent.positionX; + var centerY = parent.positionY; + } + for (var j = 0; j < numNodes; j++) { + var node = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]]; + if (node.isLocked) { + continue; + } + var dx = centerX - node.positionX; + var dy = centerY - node.positionY; + var d = Math.sqrt(dx * dx + dy * dy); + if (d > distThreshold) { + var fx = options.gravity * dx / d; + var fy = options.gravity * dy / d; + node.offsetX += fx; + node.offsetY += fy; + } + } + } + }; + var propagateForces = function propagateForces2(layoutInfo, options) { + var queue = []; + var start = 0; + var end = -1; + queue.push.apply(queue, layoutInfo.graphSet[0]); + end += layoutInfo.graphSet[0].length; + while (start <= end) { + var nodeId = queue[start++]; + var nodeIndex = layoutInfo.idToIndex[nodeId]; + var node = layoutInfo.layoutNodes[nodeIndex]; + var children = node.children; + if (0 < children.length && !node.isLocked) { + var offX = node.offsetX; + var offY = node.offsetY; + for (var i2 = 0; i2 < children.length; i2++) { + var childNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[children[i2]]]; + childNode.offsetX += offX; + childNode.offsetY += offY; + queue[++end] = children[i2]; + } + node.offsetX = 0; + node.offsetY = 0; + } + } + }; + var updatePositions = function updatePositions2(layoutInfo, options) { + for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) { + var n = layoutInfo.layoutNodes[i2]; + if (0 < n.children.length) { + n.maxX = void 0; + n.minX = void 0; + n.maxY = void 0; + n.minY = void 0; + } + } + for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) { + var n = layoutInfo.layoutNodes[i2]; + if (0 < n.children.length || n.isLocked) { + continue; + } + var tempForce = limitForce(n.offsetX, n.offsetY, layoutInfo.temperature); + n.positionX += tempForce.x; + n.positionY += tempForce.y; + n.offsetX = 0; + n.offsetY = 0; + n.minX = n.positionX - n.width; + n.maxX = n.positionX + n.width; + n.minY = n.positionY - n.height; + n.maxY = n.positionY + n.height; + updateAncestryBoundaries(n, layoutInfo); + } + for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) { + var n = layoutInfo.layoutNodes[i2]; + if (0 < n.children.length && !n.isLocked) { + n.positionX = (n.maxX + n.minX) / 2; + n.positionY = (n.maxY + n.minY) / 2; + n.width = n.maxX - n.minX; + n.height = n.maxY - n.minY; + } + } + }; + var limitForce = function limitForce2(forceX, forceY, max2) { + var force = Math.sqrt(forceX * forceX + forceY * forceY); + if (force > max2) { + var res = { + x: max2 * forceX / force, + y: max2 * forceY / force + }; + } else { + var res = { + x: forceX, + y: forceY + }; + } + return res; + }; + var updateAncestryBoundaries = function updateAncestryBoundaries2(node, layoutInfo) { + var parentId = node.parentId; + if (null == parentId) { + return; + } + var p2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[parentId]]; + var flag = false; + if (null == p2.maxX || node.maxX + p2.padRight > p2.maxX) { + p2.maxX = node.maxX + p2.padRight; + flag = true; + } + if (null == p2.minX || node.minX - p2.padLeft < p2.minX) { + p2.minX = node.minX - p2.padLeft; + flag = true; + } + if (null == p2.maxY || node.maxY + p2.padBottom > p2.maxY) { + p2.maxY = node.maxY + p2.padBottom; + flag = true; + } + if (null == p2.minY || node.minY - p2.padTop < p2.minY) { + p2.minY = node.minY - p2.padTop; + flag = true; + } + if (flag) { + return updateAncestryBoundaries2(p2, layoutInfo); + } + return; + }; + var separateComponents = function separateComponents2(layoutInfo, options) { + var nodes2 = layoutInfo.layoutNodes; + var components = []; + for (var i2 = 0; i2 < nodes2.length; i2++) { + var node = nodes2[i2]; + var cid = node.cmptId; + var component = components[cid] = components[cid] || []; + component.push(node); + } + var totalA = 0; + for (var i2 = 0; i2 < components.length; i2++) { + var c = components[i2]; + if (!c) { + continue; + } + c.x1 = Infinity; + c.x2 = -Infinity; + c.y1 = Infinity; + c.y2 = -Infinity; + for (var j = 0; j < c.length; j++) { + var n = c[j]; + c.x1 = Math.min(c.x1, n.positionX - n.width / 2); + c.x2 = Math.max(c.x2, n.positionX + n.width / 2); + c.y1 = Math.min(c.y1, n.positionY - n.height / 2); + c.y2 = Math.max(c.y2, n.positionY + n.height / 2); + } + c.w = c.x2 - c.x1; + c.h = c.y2 - c.y1; + totalA += c.w * c.h; + } + components.sort(function(c1, c2) { + return c2.w * c2.h - c1.w * c1.h; + }); + var x = 0; + var y = 0; + var usedW = 0; + var rowH = 0; + var maxRowW = Math.sqrt(totalA) * layoutInfo.clientWidth / layoutInfo.clientHeight; + for (var i2 = 0; i2 < components.length; i2++) { + var c = components[i2]; + if (!c) { + continue; + } + for (var j = 0; j < c.length; j++) { + var n = c[j]; + if (!n.isLocked) { + n.positionX += x - c.x1; + n.positionY += y - c.y1; + } + } + x += c.w + options.componentSpacing; + usedW += c.w + options.componentSpacing; + rowH = Math.max(rowH, c.h); + if (usedW > maxRowW) { + y += rowH + options.componentSpacing; + x = 0; + usedW = 0; + rowH = 0; + } + } + }; + var defaults$3 = { + fit: true, + // whether to fit the viewport to the graph + padding: 30, + // padding used on fit + boundingBox: void 0, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: true, + // prevents node overlap, may overflow boundingBox if not enough space + avoidOverlapPadding: 10, + // extra spacing around nodes when avoidOverlap: true + nodeDimensionsIncludeLabels: false, + // Excludes the label when calculating node bounding boxes for the layout algorithm + spacingFactor: void 0, + // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up + condense: false, + // uses all available space on false, uses minimal space on true + rows: void 0, + // force num of rows in the grid + cols: void 0, + // force num of columns in the grid + position: function position2(node) { + }, + // returns { row, col } for element + sort: void 0, + // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') } + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: void 0, + // easing of animation if enabled + animateFilter: function animateFilter(node, i2) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: void 0, + // callback on layoutready + stop: void 0, + // callback on layoutstop + transform: function transform(node, position2) { + return position2; + } + // transform a given node position. Useful for changing flow direction in discrete layouts + }; + function GridLayout(options) { + this.options = extend({}, defaults$3, options); + } + GridLayout.prototype.run = function() { + var params = this.options; + var options = params; + var cy = params.cy; + var eles = options.eles; + var nodes2 = eles.nodes().not(":parent"); + if (options.sort) { + nodes2 = nodes2.sort(options.sort); + } + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + if (bb.h === 0 || bb.w === 0) { + eles.nodes().layoutPositions(this, options, function(ele) { + return { + x: bb.x1, + y: bb.y1 + }; + }); + } else { + var cells = nodes2.size(); + var splits = Math.sqrt(cells * bb.h / bb.w); + var rows = Math.round(splits); + var cols = Math.round(bb.w / bb.h * splits); + var small = function small2(val) { + if (val == null) { + return Math.min(rows, cols); + } else { + var min2 = Math.min(rows, cols); + if (min2 == rows) { + rows = val; + } else { + cols = val; + } + } + }; + var large = function large2(val) { + if (val == null) { + return Math.max(rows, cols); + } else { + var max2 = Math.max(rows, cols); + if (max2 == rows) { + rows = val; + } else { + cols = val; + } + } + }; + var oRows = options.rows; + var oCols = options.cols != null ? options.cols : options.columns; + if (oRows != null && oCols != null) { + rows = oRows; + cols = oCols; + } else if (oRows != null && oCols == null) { + rows = oRows; + cols = Math.ceil(cells / rows); + } else if (oRows == null && oCols != null) { + cols = oCols; + rows = Math.ceil(cells / cols); + } else if (cols * rows > cells) { + var sm = small(); + var lg = large(); + if ((sm - 1) * lg >= cells) { + small(sm - 1); + } else if ((lg - 1) * sm >= cells) { + large(lg - 1); + } + } else { + while (cols * rows < cells) { + var _sm = small(); + var _lg = large(); + if ((_lg + 1) * _sm >= cells) { + large(_lg + 1); + } else { + small(_sm + 1); + } + } + } + var cellWidth = bb.w / cols; + var cellHeight = bb.h / rows; + if (options.condense) { + cellWidth = 0; + cellHeight = 0; + } + if (options.avoidOverlap) { + for (var i2 = 0; i2 < nodes2.length; i2++) { + var node = nodes2[i2]; + var pos = node._private.position; + if (pos.x == null || pos.y == null) { + pos.x = 0; + pos.y = 0; + } + var nbb = node.layoutDimensions(options); + var p2 = options.avoidOverlapPadding; + var w = nbb.w + p2; + var h = nbb.h + p2; + cellWidth = Math.max(cellWidth, w); + cellHeight = Math.max(cellHeight, h); + } + } + var cellUsed = {}; + var used = function used2(row2, col2) { + return cellUsed["c-" + row2 + "-" + col2] ? true : false; + }; + var use = function use2(row2, col2) { + cellUsed["c-" + row2 + "-" + col2] = true; + }; + var row = 0; + var col = 0; + var moveToNextCell = function moveToNextCell2() { + col++; + if (col >= cols) { + col = 0; + row++; + } + }; + var id2manPos = {}; + for (var _i = 0; _i < nodes2.length; _i++) { + var _node = nodes2[_i]; + var rcPos = options.position(_node); + if (rcPos && (rcPos.row !== void 0 || rcPos.col !== void 0)) { + var _pos = { + row: rcPos.row, + col: rcPos.col + }; + if (_pos.col === void 0) { + _pos.col = 0; + while (used(_pos.row, _pos.col)) { + _pos.col++; + } + } else if (_pos.row === void 0) { + _pos.row = 0; + while (used(_pos.row, _pos.col)) { + _pos.row++; + } + } + id2manPos[_node.id()] = _pos; + use(_pos.row, _pos.col); + } + } + var getPos = function getPos2(element2, i3) { + var x, y; + if (element2.locked() || element2.isParent()) { + return false; + } + var rcPos2 = id2manPos[element2.id()]; + if (rcPos2) { + x = rcPos2.col * cellWidth + cellWidth / 2 + bb.x1; + y = rcPos2.row * cellHeight + cellHeight / 2 + bb.y1; + } else { + while (used(row, col)) { + moveToNextCell(); + } + x = col * cellWidth + cellWidth / 2 + bb.x1; + y = row * cellHeight + cellHeight / 2 + bb.y1; + use(row, col); + moveToNextCell(); + } + return { + x, + y + }; + }; + nodes2.layoutPositions(this, options, getPos); + } + return this; + }; + var defaults$2 = { + ready: function ready() { + }, + // on layoutready + stop: function stop() { + } + // on layoutstop + }; + function NullLayout(options) { + this.options = extend({}, defaults$2, options); + } + NullLayout.prototype.run = function() { + var options = this.options; + var eles = options.eles; + var layout2 = this; + options.cy; + layout2.emit("layoutstart"); + eles.nodes().positions(function() { + return { + x: 0, + y: 0 + }; + }); + layout2.one("layoutready", options.ready); + layout2.emit("layoutready"); + layout2.one("layoutstop", options.stop); + layout2.emit("layoutstop"); + return this; + }; + NullLayout.prototype.stop = function() { + return this; + }; + var defaults$1 = { + positions: void 0, + // map of (node id) => (position obj); or function(node){ return somPos; } + zoom: void 0, + // the zoom level to set (prob want fit = false if set) + pan: void 0, + // the pan level to set (prob want fit = false if set) + fit: true, + // whether to fit to viewport + padding: 30, + // padding on fit + spacingFactor: void 0, + // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: void 0, + // easing of animation if enabled + animateFilter: function animateFilter(node, i2) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: void 0, + // callback on layoutready + stop: void 0, + // callback on layoutstop + transform: function transform(node, position2) { + return position2; + } + // transform a given node position. Useful for changing flow direction in discrete layouts + }; + function PresetLayout(options) { + this.options = extend({}, defaults$1, options); + } + PresetLayout.prototype.run = function() { + var options = this.options; + var eles = options.eles; + var nodes2 = eles.nodes(); + var posIsFn = fn$6(options.positions); + function getPosition(node) { + if (options.positions == null) { + return copyPosition(node.position()); + } + if (posIsFn) { + return options.positions(node); + } + var pos = options.positions[node._private.data.id]; + if (pos == null) { + return null; + } + return pos; + } + nodes2.layoutPositions(this, options, function(node, i2) { + var position2 = getPosition(node); + if (node.locked() || position2 == null) { + return false; + } + return position2; + }); + return this; + }; + var defaults = { + fit: true, + // whether to fit to viewport + padding: 30, + // fit padding + boundingBox: void 0, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: void 0, + // easing of animation if enabled + animateFilter: function animateFilter(node, i2) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: void 0, + // callback on layoutready + stop: void 0, + // callback on layoutstop + transform: function transform(node, position2) { + return position2; + } + // transform a given node position. Useful for changing flow direction in discrete layouts + }; + function RandomLayout(options) { + this.options = extend({}, defaults, options); + } + RandomLayout.prototype.run = function() { + var options = this.options; + var cy = options.cy; + var eles = options.eles; + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + var getPos = function getPos2(node, i2) { + return { + x: bb.x1 + Math.round(Math.random() * bb.w), + y: bb.y1 + Math.round(Math.random() * bb.h) + }; + }; + eles.nodes().layoutPositions(this, options, getPos); + return this; + }; + var layout = [{ + name: "breadthfirst", + impl: BreadthFirstLayout + }, { + name: "circle", + impl: CircleLayout + }, { + name: "concentric", + impl: ConcentricLayout + }, { + name: "cose", + impl: CoseLayout + }, { + name: "grid", + impl: GridLayout + }, { + name: "null", + impl: NullLayout + }, { + name: "preset", + impl: PresetLayout + }, { + name: "random", + impl: RandomLayout + }]; + function NullRenderer(options) { + this.options = options; + this.notifications = 0; + } + var noop = function noop2() { + }; + var throwImgErr = function throwImgErr2() { + throw new Error("A headless instance can not render images"); + }; + NullRenderer.prototype = { + recalculateRenderedStyle: noop, + notify: function notify() { + this.notifications++; + }, + init: noop, + isHeadless: function isHeadless() { + return true; + }, + png: throwImgErr, + jpg: throwImgErr + }; + var BRp$f = {}; + BRp$f.arrowShapeWidth = 0.3; + BRp$f.registerArrowShapes = function() { + var arrowShapes = this.arrowShapes = {}; + var renderer3 = this; + var bbCollide = function bbCollide2(x, y, size, angle, translation, edgeWidth, padding) { + var x1 = translation.x - size / 2 - padding; + var x2 = translation.x + size / 2 + padding; + var y1 = translation.y - size / 2 - padding; + var y2 = translation.y + size / 2 + padding; + var inside = x1 <= x && x <= x2 && y1 <= y && y <= y2; + return inside; + }; + var transform = function transform2(x, y, size, angle, translation) { + var xRotated = x * Math.cos(angle) - y * Math.sin(angle); + var yRotated = x * Math.sin(angle) + y * Math.cos(angle); + var xScaled = xRotated * size; + var yScaled = yRotated * size; + var xTranslated = xScaled + translation.x; + var yTranslated = yScaled + translation.y; + return { + x: xTranslated, + y: yTranslated + }; + }; + var transformPoints = function transformPoints2(pts2, size, angle, translation) { + var retPts = []; + for (var i2 = 0; i2 < pts2.length; i2 += 2) { + var x = pts2[i2]; + var y = pts2[i2 + 1]; + retPts.push(transform(x, y, size, angle, translation)); + } + return retPts; + }; + var pointsToArr = function pointsToArr2(pts2) { + var ret = []; + for (var i2 = 0; i2 < pts2.length; i2++) { + var p2 = pts2[i2]; + ret.push(p2.x, p2.y); + } + return ret; + }; + var standardGap = function standardGap2(edge) { + return edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").pfValue * 2; + }; + var defineArrowShape = function defineArrowShape2(name, defn) { + if (string(defn)) { + defn = arrowShapes[defn]; + } + arrowShapes[name] = extend({ + name, + points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3], + collide: function collide(x, y, size, angle, translation, padding) { + var points = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); + var inside = pointInsidePolygonPoints(x, y, points); + return inside; + }, + roughCollide: bbCollide, + draw: function draw2(context, size, angle, translation) { + var points = transformPoints(this.points, size, angle, translation); + renderer3.arrowShapeImpl("polygon")(context, points); + }, + spacing: function spacing(edge) { + return 0; + }, + gap: standardGap + }, defn); + }; + defineArrowShape("none", { + collide: falsify, + roughCollide: falsify, + draw: noop$1, + spacing: zeroify, + gap: zeroify + }); + defineArrowShape("triangle", { + points: [-0.15, -0.3, 0, 0, 0.15, -0.3] + }); + defineArrowShape("arrow", "triangle"); + defineArrowShape("triangle-backcurve", { + points: arrowShapes["triangle"].points, + controlPoint: [0, -0.15], + roughCollide: bbCollide, + draw: function draw2(context, size, angle, translation, edgeWidth) { + var ptsTrans = transformPoints(this.points, size, angle, translation); + var ctrlPt = this.controlPoint; + var ctrlPtTrans = transform(ctrlPt[0], ctrlPt[1], size, angle, translation); + renderer3.arrowShapeImpl(this.name)(context, ptsTrans, ctrlPtTrans); + }, + gap: function gap(edge) { + return standardGap(edge) * 0.8; + } + }); + defineArrowShape("triangle-tee", { + points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0], + pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4], + collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { + var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); + var teePts = pointsToArr(transformPoints(this.pointsTee, size + 2 * padding, angle, translation)); + var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts); + return inside; + }, + draw: function draw2(context, size, angle, translation, edgeWidth) { + var triPts = transformPoints(this.points, size, angle, translation); + var teePts = transformPoints(this.pointsTee, size, angle, translation); + renderer3.arrowShapeImpl(this.name)(context, triPts, teePts); + } + }); + defineArrowShape("circle-triangle", { + radius: 0.15, + pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15], + collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { + var t = translation; + var circleInside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2); + var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); + return pointInsidePolygonPoints(x, y, triPts) || circleInside; + }, + draw: function draw2(context, size, angle, translation, edgeWidth) { + var triPts = transformPoints(this.pointsTr, size, angle, translation); + renderer3.arrowShapeImpl(this.name)(context, triPts, translation.x, translation.y, this.radius * size); + }, + spacing: function spacing(edge) { + return renderer3.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.radius; + } + }); + defineArrowShape("triangle-cross", { + points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0], + baseCrossLinePts: [ + -0.15, + -0.4, + // first half of the rectangle + -0.15, + -0.4, + 0.15, + -0.4, + // second half of the rectangle + 0.15, + -0.4 + ], + crossLinePts: function crossLinePts(size, edgeWidth) { + var p2 = this.baseCrossLinePts.slice(); + var shiftFactor = edgeWidth / size; + var y0 = 3; + var y1 = 5; + p2[y0] = p2[y0] - shiftFactor; + p2[y1] = p2[y1] - shiftFactor; + return p2; + }, + collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { + var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); + var teePts = pointsToArr(transformPoints(this.crossLinePts(size, edgeWidth), size + 2 * padding, angle, translation)); + var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts); + return inside; + }, + draw: function draw2(context, size, angle, translation, edgeWidth) { + var triPts = transformPoints(this.points, size, angle, translation); + var crossLinePts = transformPoints(this.crossLinePts(size, edgeWidth), size, angle, translation); + renderer3.arrowShapeImpl(this.name)(context, triPts, crossLinePts); + } + }); + defineArrowShape("vee", { + points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15], + gap: function gap(edge) { + return standardGap(edge) * 0.525; + } + }); + defineArrowShape("circle", { + radius: 0.15, + collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { + var t = translation; + var inside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2); + return inside; + }, + draw: function draw2(context, size, angle, translation, edgeWidth) { + renderer3.arrowShapeImpl(this.name)(context, translation.x, translation.y, this.radius * size); + }, + spacing: function spacing(edge) { + return renderer3.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.radius; + } + }); + defineArrowShape("tee", { + points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0], + spacing: function spacing(edge) { + return 1; + }, + gap: function gap(edge) { + return 1; + } + }); + defineArrowShape("square", { + points: [-0.15, 0, 0.15, 0, 0.15, -0.3, -0.15, -0.3] + }); + defineArrowShape("diamond", { + points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0], + gap: function gap(edge) { + return edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").value; + } + }); + defineArrowShape("chevron", { + points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15], + gap: function gap(edge) { + return 0.95 * edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").value; + } + }); + }; + var BRp$e = {}; + BRp$e.projectIntoViewport = function(clientX, clientY) { + var cy = this.cy; + var offsets = this.findContainerClientCoords(); + var offsetLeft = offsets[0]; + var offsetTop = offsets[1]; + var scale = offsets[4]; + var pan = cy.pan(); + var zoom = cy.zoom(); + var x = ((clientX - offsetLeft) / scale - pan.x) / zoom; + var y = ((clientY - offsetTop) / scale - pan.y) / zoom; + return [x, y]; + }; + BRp$e.findContainerClientCoords = function() { + if (this.containerBB) { + return this.containerBB; + } + var container = this.container; + var rect = container.getBoundingClientRect(); + var style = this.cy.window().getComputedStyle(container); + var styleValue = function styleValue2(name) { + return parseFloat(style.getPropertyValue(name)); + }; + var padding = { + left: styleValue("padding-left"), + right: styleValue("padding-right"), + top: styleValue("padding-top"), + bottom: styleValue("padding-bottom") + }; + var border = { + left: styleValue("border-left-width"), + right: styleValue("border-right-width"), + top: styleValue("border-top-width"), + bottom: styleValue("border-bottom-width") + }; + var clientWidth = container.clientWidth; + var clientHeight = container.clientHeight; + var paddingHor = padding.left + padding.right; + var paddingVer = padding.top + padding.bottom; + var borderHor = border.left + border.right; + var scale = rect.width / (clientWidth + borderHor); + var unscaledW = clientWidth - paddingHor; + var unscaledH = clientHeight - paddingVer; + var left = rect.left + padding.left + border.left; + var top = rect.top + padding.top + border.top; + return this.containerBB = [left, top, unscaledW, unscaledH, scale]; + }; + BRp$e.invalidateContainerClientCoordsCache = function() { + this.containerBB = null; + }; + BRp$e.findNearestElement = function(x, y, interactiveElementsOnly, isTouch) { + return this.findNearestElements(x, y, interactiveElementsOnly, isTouch)[0]; + }; + BRp$e.findNearestElements = function(x, y, interactiveElementsOnly, isTouch) { + var self2 = this; + var r = this; + var eles = r.getCachedZSortedEles(); + var near = []; + var zoom = r.cy.zoom(); + var hasCompounds = r.cy.hasCompoundNodes(); + var edgeThreshold = (isTouch ? 24 : 8) / zoom; + var nodeThreshold = (isTouch ? 8 : 2) / zoom; + var labelThreshold = (isTouch ? 8 : 2) / zoom; + var minSqDist = Infinity; + var nearEdge; + var nearNode; + if (interactiveElementsOnly) { + eles = eles.interactive; + } + function addEle(ele2, sqDist) { + if (ele2.isNode()) { + if (nearNode) { + return; + } else { + nearNode = ele2; + near.push(ele2); + } + } + if (ele2.isEdge() && (sqDist == null || sqDist < minSqDist)) { + if (nearEdge) { + if (nearEdge.pstyle("z-compound-depth").value === ele2.pstyle("z-compound-depth").value && nearEdge.pstyle("z-compound-depth").value === ele2.pstyle("z-compound-depth").value) { + for (var i3 = 0; i3 < near.length; i3++) { + if (near[i3].isEdge()) { + near[i3] = ele2; + nearEdge = ele2; + minSqDist = sqDist != null ? sqDist : minSqDist; + break; + } + } + } + } else { + near.push(ele2); + nearEdge = ele2; + minSqDist = sqDist != null ? sqDist : minSqDist; + } + } + } + function checkNode(node) { + var width = node.outerWidth() + 2 * nodeThreshold; + var height = node.outerHeight() + 2 * nodeThreshold; + var hw = width / 2; + var hh = height / 2; + var pos = node.position(); + if (pos.x - hw <= x && x <= pos.x + hw && pos.y - hh <= y && y <= pos.y + hh) { + var shape = r.nodeShapes[self2.getNodeShape(node)]; + if (shape.checkPoint(x, y, 0, width, height, pos.x, pos.y)) { + addEle(node, 0); + return true; + } + } + } + function checkEdge(edge) { + var _p = edge._private; + var rs = _p.rscratch; + var styleWidth = edge.pstyle("width").pfValue; + var scale = edge.pstyle("arrow-scale").value; + var width = styleWidth / 2 + edgeThreshold; + var widthSq = width * width; + var width2 = width * 2; + var src = _p.source; + var tgt = _p.target; + var sqDist; + if (rs.edgeType === "segments" || rs.edgeType === "straight" || rs.edgeType === "haystack") { + var pts2 = rs.allpts; + for (var i3 = 0; i3 + 3 < pts2.length; i3 += 2) { + if (inLineVicinity(x, y, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3], width2) && widthSq > (sqDist = sqdistToFiniteLine(x, y, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3]))) { + addEle(edge, sqDist); + return true; + } + } + } else if (rs.edgeType === "bezier" || rs.edgeType === "multibezier" || rs.edgeType === "self" || rs.edgeType === "compound") { + var pts2 = rs.allpts; + for (var i3 = 0; i3 + 5 < rs.allpts.length; i3 += 4) { + if (inBezierVicinity(x, y, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3], pts2[i3 + 4], pts2[i3 + 5], width2) && widthSq > (sqDist = sqdistToQuadraticBezier(x, y, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3], pts2[i3 + 4], pts2[i3 + 5]))) { + addEle(edge, sqDist); + return true; + } + } + } + var src = src || _p.source; + var tgt = tgt || _p.target; + var arSize = self2.getArrowWidth(styleWidth, scale); + var arrows = [{ + name: "source", + x: rs.arrowStartX, + y: rs.arrowStartY, + angle: rs.srcArrowAngle + }, { + name: "target", + x: rs.arrowEndX, + y: rs.arrowEndY, + angle: rs.tgtArrowAngle + }, { + name: "mid-source", + x: rs.midX, + y: rs.midY, + angle: rs.midsrcArrowAngle + }, { + name: "mid-target", + x: rs.midX, + y: rs.midY, + angle: rs.midtgtArrowAngle + }]; + for (var i3 = 0; i3 < arrows.length; i3++) { + var ar = arrows[i3]; + var shape = r.arrowShapes[edge.pstyle(ar.name + "-arrow-shape").value]; + var edgeWidth = edge.pstyle("width").pfValue; + if (shape.roughCollide(x, y, arSize, ar.angle, { + x: ar.x, + y: ar.y + }, edgeWidth, edgeThreshold) && shape.collide(x, y, arSize, ar.angle, { + x: ar.x, + y: ar.y + }, edgeWidth, edgeThreshold)) { + addEle(edge); + return true; + } + } + if (hasCompounds && near.length > 0) { + checkNode(src); + checkNode(tgt); + } + } + function preprop(obj, name, pre) { + return getPrefixedProperty(obj, name, pre); + } + function checkLabel(ele2, prefix) { + var _p = ele2._private; + var th = labelThreshold; + var prefixDash; + if (prefix) { + prefixDash = prefix + "-"; + } else { + prefixDash = ""; + } + ele2.boundingBox(); + var bb = _p.labelBounds[prefix || "main"]; + var text = ele2.pstyle(prefixDash + "label").value; + var eventsEnabled = ele2.pstyle("text-events").strValue === "yes"; + if (!eventsEnabled || !text) { + return; + } + var lx = preprop(_p.rscratch, "labelX", prefix); + var ly = preprop(_p.rscratch, "labelY", prefix); + var theta = preprop(_p.rscratch, "labelAngle", prefix); + var ox = ele2.pstyle(prefixDash + "text-margin-x").pfValue; + var oy = ele2.pstyle(prefixDash + "text-margin-y").pfValue; + var lx1 = bb.x1 - th - ox; + var lx2 = bb.x2 + th - ox; + var ly1 = bb.y1 - th - oy; + var ly2 = bb.y2 + th - oy; + if (theta) { + var cos2 = Math.cos(theta); + var sin2 = Math.sin(theta); + var rotate = function rotate2(x2, y2) { + x2 = x2 - lx; + y2 = y2 - ly; + return { + x: x2 * cos2 - y2 * sin2 + lx, + y: x2 * sin2 + y2 * cos2 + ly + }; + }; + var px1y1 = rotate(lx1, ly1); + var px1y2 = rotate(lx1, ly2); + var px2y1 = rotate(lx2, ly1); + var px2y2 = rotate(lx2, ly2); + var points = [ + // with the margin added after the rotation is applied + px1y1.x + ox, + px1y1.y + oy, + px2y1.x + ox, + px2y1.y + oy, + px2y2.x + ox, + px2y2.y + oy, + px1y2.x + ox, + px1y2.y + oy + ]; + if (pointInsidePolygonPoints(x, y, points)) { + addEle(ele2); + return true; + } + } else { + if (inBoundingBox(bb, x, y)) { + addEle(ele2); + return true; + } + } + } + for (var i2 = eles.length - 1; i2 >= 0; i2--) { + var ele = eles[i2]; + if (ele.isNode()) { + checkNode(ele) || checkLabel(ele); + } else { + checkEdge(ele) || checkLabel(ele) || checkLabel(ele, "source") || checkLabel(ele, "target"); + } + } + return near; + }; + BRp$e.getAllInBox = function(x1, y1, x2, y2) { + var eles = this.getCachedZSortedEles().interactive; + var box = []; + var x1c = Math.min(x1, x2); + var x2c = Math.max(x1, x2); + var y1c = Math.min(y1, y2); + var y2c = Math.max(y1, y2); + x1 = x1c; + x2 = x2c; + y1 = y1c; + y2 = y2c; + var boxBb = makeBoundingBox({ + x1, + y1, + x2, + y2 + }); + for (var e = 0; e < eles.length; e++) { + var ele = eles[e]; + if (ele.isNode()) { + var node = ele; + var nodeBb = node.boundingBox({ + includeNodes: true, + includeEdges: false, + includeLabels: false + }); + if (boundingBoxesIntersect(boxBb, nodeBb) && !boundingBoxInBoundingBox(nodeBb, boxBb)) { + box.push(node); + } + } else { + var edge = ele; + var _p = edge._private; + var rs = _p.rscratch; + if (rs.startX != null && rs.startY != null && !inBoundingBox(boxBb, rs.startX, rs.startY)) { + continue; + } + if (rs.endX != null && rs.endY != null && !inBoundingBox(boxBb, rs.endX, rs.endY)) { + continue; + } + if (rs.edgeType === "bezier" || rs.edgeType === "multibezier" || rs.edgeType === "self" || rs.edgeType === "compound" || rs.edgeType === "segments" || rs.edgeType === "haystack") { + var pts2 = _p.rstyle.bezierPts || _p.rstyle.linePts || _p.rstyle.haystackPts; + var allInside = true; + for (var i2 = 0; i2 < pts2.length; i2++) { + if (!pointInBoundingBox(boxBb, pts2[i2])) { + allInside = false; + break; + } + } + if (allInside) { + box.push(edge); + } + } else if (rs.edgeType === "haystack" || rs.edgeType === "straight") { + box.push(edge); + } + } + } + return box; + }; + var BRp$d = {}; + BRp$d.calculateArrowAngles = function(edge) { + var rs = edge._private.rscratch; + var isHaystack = rs.edgeType === "haystack"; + var isBezier = rs.edgeType === "bezier"; + var isMultibezier = rs.edgeType === "multibezier"; + var isSegments = rs.edgeType === "segments"; + var isCompound = rs.edgeType === "compound"; + var isSelf = rs.edgeType === "self"; + var dispX, dispY; + var startX, startY, endX, endY, midX, midY; + if (isHaystack) { + startX = rs.haystackPts[0]; + startY = rs.haystackPts[1]; + endX = rs.haystackPts[2]; + endY = rs.haystackPts[3]; + } else { + startX = rs.arrowStartX; + startY = rs.arrowStartY; + endX = rs.arrowEndX; + endY = rs.arrowEndY; + } + midX = rs.midX; + midY = rs.midY; + if (isSegments) { + dispX = startX - rs.segpts[0]; + dispY = startY - rs.segpts[1]; + } else if (isMultibezier || isCompound || isSelf || isBezier) { + var pts2 = rs.allpts; + var bX = qbezierAt(pts2[0], pts2[2], pts2[4], 0.1); + var bY = qbezierAt(pts2[1], pts2[3], pts2[5], 0.1); + dispX = startX - bX; + dispY = startY - bY; + } else { + dispX = startX - midX; + dispY = startY - midY; + } + rs.srcArrowAngle = getAngleFromDisp(dispX, dispY); + var midX = rs.midX; + var midY = rs.midY; + if (isHaystack) { + midX = (startX + endX) / 2; + midY = (startY + endY) / 2; + } + dispX = endX - startX; + dispY = endY - startY; + if (isSegments) { + var pts2 = rs.allpts; + if (pts2.length / 2 % 2 === 0) { + var i2 = pts2.length / 2; + var i1 = i2 - 2; + dispX = pts2[i2] - pts2[i1]; + dispY = pts2[i2 + 1] - pts2[i1 + 1]; + } else { + var i2 = pts2.length / 2 - 1; + var i1 = i2 - 2; + var i3 = i2 + 2; + dispX = pts2[i2] - pts2[i1]; + dispY = pts2[i2 + 1] - pts2[i1 + 1]; + } + } else if (isMultibezier || isCompound || isSelf) { + var pts2 = rs.allpts; + var cpts = rs.ctrlpts; + var bp0x, bp0y; + var bp1x, bp1y; + if (cpts.length / 2 % 2 === 0) { + var p0 = pts2.length / 2 - 1; + var ic = p0 + 2; + var p1 = ic + 2; + bp0x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0); + bp0y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0); + bp1x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 1e-4); + bp1y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 1e-4); + } else { + var ic = pts2.length / 2 - 1; + var p0 = ic - 2; + var p1 = ic + 2; + bp0x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0.4999); + bp0y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0.4999); + bp1x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0.5); + bp1y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0.5); + } + dispX = bp1x - bp0x; + dispY = bp1y - bp0y; + } + rs.midtgtArrowAngle = getAngleFromDisp(dispX, dispY); + rs.midDispX = dispX; + rs.midDispY = dispY; + dispX *= -1; + dispY *= -1; + if (isSegments) { + var pts2 = rs.allpts; + if (pts2.length / 2 % 2 === 0) + ; + else { + var i2 = pts2.length / 2 - 1; + var i3 = i2 + 2; + dispX = -(pts2[i3] - pts2[i2]); + dispY = -(pts2[i3 + 1] - pts2[i2 + 1]); + } + } + rs.midsrcArrowAngle = getAngleFromDisp(dispX, dispY); + if (isSegments) { + dispX = endX - rs.segpts[rs.segpts.length - 2]; + dispY = endY - rs.segpts[rs.segpts.length - 1]; + } else if (isMultibezier || isCompound || isSelf || isBezier) { + var pts2 = rs.allpts; + var l = pts2.length; + var bX = qbezierAt(pts2[l - 6], pts2[l - 4], pts2[l - 2], 0.9); + var bY = qbezierAt(pts2[l - 5], pts2[l - 3], pts2[l - 1], 0.9); + dispX = endX - bX; + dispY = endY - bY; + } else { + dispX = endX - midX; + dispY = endY - midY; + } + rs.tgtArrowAngle = getAngleFromDisp(dispX, dispY); + }; + BRp$d.getArrowWidth = BRp$d.getArrowHeight = function(edgeWidth, scale) { + var cache2 = this.arrowWidthCache = this.arrowWidthCache || {}; + var cachedVal = cache2[edgeWidth + ", " + scale]; + if (cachedVal) { + return cachedVal; + } + cachedVal = Math.max(Math.pow(edgeWidth * 13.37, 0.9), 29) * scale; + cache2[edgeWidth + ", " + scale] = cachedVal; + return cachedVal; + }; + var BRp$c = {}; + BRp$c.findMidptPtsEtc = function(edge, pairInfo) { + var posPts = pairInfo.posPts, intersectionPts = pairInfo.intersectionPts, vectorNormInverse = pairInfo.vectorNormInverse; + var midptPts; + var srcManEndpt = edge.pstyle("source-endpoint"); + var tgtManEndpt = edge.pstyle("target-endpoint"); + var haveManualEndPts = srcManEndpt.units != null && tgtManEndpt.units != null; + var recalcVectorNormInverse = function recalcVectorNormInverse2(x12, y12, x22, y22) { + var dy = y22 - y12; + var dx = x22 - x12; + var l = Math.sqrt(dx * dx + dy * dy); + return { + x: -dy / l, + y: dx / l + }; + }; + var edgeDistances = edge.pstyle("edge-distances").value; + switch (edgeDistances) { + case "node-position": + midptPts = posPts; + break; + case "intersection": + midptPts = intersectionPts; + break; + case "endpoints": { + if (haveManualEndPts) { + var _this$manualEndptToPx = this.manualEndptToPx(edge.source()[0], srcManEndpt), _this$manualEndptToPx2 = _slicedToArray(_this$manualEndptToPx, 2), x1 = _this$manualEndptToPx2[0], y1 = _this$manualEndptToPx2[1]; + var _this$manualEndptToPx3 = this.manualEndptToPx(edge.target()[0], tgtManEndpt), _this$manualEndptToPx4 = _slicedToArray(_this$manualEndptToPx3, 2), x2 = _this$manualEndptToPx4[0], y2 = _this$manualEndptToPx4[1]; + var endPts = { + x1, + y1, + x2, + y2 + }; + vectorNormInverse = recalcVectorNormInverse(x1, y1, x2, y2); + midptPts = endPts; + } else { + warn("Edge ".concat(edge.id(), " has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")); + midptPts = intersectionPts; + } + break; + } + } + return { + midptPts, + vectorNormInverse + }; + }; + BRp$c.findHaystackPoints = function(edges) { + for (var i2 = 0; i2 < edges.length; i2++) { + var edge = edges[i2]; + var _p = edge._private; + var rs = _p.rscratch; + if (!rs.haystack) { + var angle = Math.random() * 2 * Math.PI; + rs.source = { + x: Math.cos(angle), + y: Math.sin(angle) + }; + angle = Math.random() * 2 * Math.PI; + rs.target = { + x: Math.cos(angle), + y: Math.sin(angle) + }; + } + var src = _p.source; + var tgt = _p.target; + var srcPos = src.position(); + var tgtPos = tgt.position(); + var srcW = src.width(); + var tgtW = tgt.width(); + var srcH = src.height(); + var tgtH = tgt.height(); + var radius = edge.pstyle("haystack-radius").value; + var halfRadius = radius / 2; + rs.haystackPts = rs.allpts = [rs.source.x * srcW * halfRadius + srcPos.x, rs.source.y * srcH * halfRadius + srcPos.y, rs.target.x * tgtW * halfRadius + tgtPos.x, rs.target.y * tgtH * halfRadius + tgtPos.y]; + rs.midX = (rs.allpts[0] + rs.allpts[2]) / 2; + rs.midY = (rs.allpts[1] + rs.allpts[3]) / 2; + rs.edgeType = "haystack"; + rs.haystack = true; + this.storeEdgeProjections(edge); + this.calculateArrowAngles(edge); + this.recalculateEdgeLabelProjections(edge); + this.calculateLabelAngles(edge); + } + }; + BRp$c.findSegmentsPoints = function(edge, pairInfo) { + var rs = edge._private.rscratch; + var segmentWs = edge.pstyle("segment-weights"); + var segmentDs = edge.pstyle("segment-distances"); + var segmentsN = Math.min(segmentWs.pfValue.length, segmentDs.pfValue.length); + rs.edgeType = "segments"; + rs.segpts = []; + for (var s = 0; s < segmentsN; s++) { + var w = segmentWs.pfValue[s]; + var d = segmentDs.pfValue[s]; + var w1 = 1 - w; + var w2 = w; + var _this$findMidptPtsEtc = this.findMidptPtsEtc(edge, pairInfo), midptPts = _this$findMidptPtsEtc.midptPts, vectorNormInverse = _this$findMidptPtsEtc.vectorNormInverse; + var adjustedMidpt = { + x: midptPts.x1 * w1 + midptPts.x2 * w2, + y: midptPts.y1 * w1 + midptPts.y2 * w2 + }; + rs.segpts.push(adjustedMidpt.x + vectorNormInverse.x * d, adjustedMidpt.y + vectorNormInverse.y * d); + } + }; + BRp$c.findLoopPoints = function(edge, pairInfo, i2, edgeIsUnbundled) { + var rs = edge._private.rscratch; + var dirCounts = pairInfo.dirCounts, srcPos = pairInfo.srcPos; + var ctrlptDists = edge.pstyle("control-point-distances"); + var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0; + var loopDir = edge.pstyle("loop-direction").pfValue; + var loopSwp = edge.pstyle("loop-sweep").pfValue; + var stepSize = edge.pstyle("control-point-step-size").pfValue; + rs.edgeType = "self"; + var j = i2; + var loopDist = stepSize; + if (edgeIsUnbundled) { + j = 0; + loopDist = ctrlptDist; + } + var loopAngle = loopDir - Math.PI / 2; + var outAngle = loopAngle - loopSwp / 2; + var inAngle = loopAngle + loopSwp / 2; + var dc = String(loopDir + "_" + loopSwp); + j = dirCounts[dc] === void 0 ? dirCounts[dc] = 0 : ++dirCounts[dc]; + rs.ctrlpts = [srcPos.x + Math.cos(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.x + Math.cos(inAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(inAngle) * 1.4 * loopDist * (j / 3 + 1)]; + }; + BRp$c.findCompoundLoopPoints = function(edge, pairInfo, i2, edgeIsUnbundled) { + var rs = edge._private.rscratch; + rs.edgeType = "compound"; + var srcPos = pairInfo.srcPos, tgtPos = pairInfo.tgtPos, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH; + var stepSize = edge.pstyle("control-point-step-size").pfValue; + var ctrlptDists = edge.pstyle("control-point-distances"); + var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0; + var j = i2; + var loopDist = stepSize; + if (edgeIsUnbundled) { + j = 0; + loopDist = ctrlptDist; + } + var loopW = 50; + var loopaPos = { + x: srcPos.x - srcW / 2, + y: srcPos.y - srcH / 2 + }; + var loopbPos = { + x: tgtPos.x - tgtW / 2, + y: tgtPos.y - tgtH / 2 + }; + var loopPos = { + x: Math.min(loopaPos.x, loopbPos.x), + y: Math.min(loopaPos.y, loopbPos.y) + }; + var minCompoundStretch = 0.5; + var compoundStretchA = Math.max(minCompoundStretch, Math.log(srcW * 0.01)); + var compoundStretchB = Math.max(minCompoundStretch, Math.log(tgtW * 0.01)); + rs.ctrlpts = [loopPos.x, loopPos.y - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchA, loopPos.x - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchB, loopPos.y]; + }; + BRp$c.findStraightEdgePoints = function(edge) { + edge._private.rscratch.edgeType = "straight"; + }; + BRp$c.findBezierPoints = function(edge, pairInfo, i2, edgeIsUnbundled, edgeIsSwapped) { + var rs = edge._private.rscratch; + var stepSize = edge.pstyle("control-point-step-size").pfValue; + var ctrlptDists = edge.pstyle("control-point-distances"); + var ctrlptWs = edge.pstyle("control-point-weights"); + var bezierN = ctrlptDists && ctrlptWs ? Math.min(ctrlptDists.value.length, ctrlptWs.value.length) : 1; + var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0; + var ctrlptWeight = ctrlptWs.value[0]; + var multi = edgeIsUnbundled; + rs.edgeType = multi ? "multibezier" : "bezier"; + rs.ctrlpts = []; + for (var b = 0; b < bezierN; b++) { + var normctrlptDist = (0.5 - pairInfo.eles.length / 2 + i2) * stepSize * (edgeIsSwapped ? -1 : 1); + var manctrlptDist = void 0; + var sign = signum(normctrlptDist); + if (multi) { + ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[b] : stepSize; + ctrlptWeight = ctrlptWs.value[b]; + } + if (edgeIsUnbundled) { + manctrlptDist = ctrlptDist; + } else { + manctrlptDist = ctrlptDist !== void 0 ? sign * ctrlptDist : void 0; + } + var distanceFromMidpoint = manctrlptDist !== void 0 ? manctrlptDist : normctrlptDist; + var w1 = 1 - ctrlptWeight; + var w2 = ctrlptWeight; + var _this$findMidptPtsEtc2 = this.findMidptPtsEtc(edge, pairInfo), midptPts = _this$findMidptPtsEtc2.midptPts, vectorNormInverse = _this$findMidptPtsEtc2.vectorNormInverse; + var adjustedMidpt = { + x: midptPts.x1 * w1 + midptPts.x2 * w2, + y: midptPts.y1 * w1 + midptPts.y2 * w2 + }; + rs.ctrlpts.push(adjustedMidpt.x + vectorNormInverse.x * distanceFromMidpoint, adjustedMidpt.y + vectorNormInverse.y * distanceFromMidpoint); + } + }; + BRp$c.findTaxiPoints = function(edge, pairInfo) { + var rs = edge._private.rscratch; + rs.edgeType = "segments"; + var VERTICAL = "vertical"; + var HORIZONTAL = "horizontal"; + var LEFTWARD = "leftward"; + var RIGHTWARD = "rightward"; + var DOWNWARD = "downward"; + var UPWARD = "upward"; + var AUTO = "auto"; + var posPts = pairInfo.posPts, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH; + var edgeDistances = edge.pstyle("edge-distances").value; + var dIncludesNodeBody = edgeDistances !== "node-position"; + var taxiDir = edge.pstyle("taxi-direction").value; + var rawTaxiDir = taxiDir; + var taxiTurn = edge.pstyle("taxi-turn"); + var turnIsPercent = taxiTurn.units === "%"; + var taxiTurnPfVal = taxiTurn.pfValue; + var turnIsNegative = taxiTurnPfVal < 0; + var minD = edge.pstyle("taxi-turn-min-distance").pfValue; + var dw = dIncludesNodeBody ? (srcW + tgtW) / 2 : 0; + var dh = dIncludesNodeBody ? (srcH + tgtH) / 2 : 0; + var pdx = posPts.x2 - posPts.x1; + var pdy = posPts.y2 - posPts.y1; + var subDWH = function subDWH2(dxy, dwh) { + if (dxy > 0) { + return Math.max(dxy - dwh, 0); + } else { + return Math.min(dxy + dwh, 0); + } + }; + var dx = subDWH(pdx, dw); + var dy = subDWH(pdy, dh); + var isExplicitDir = false; + if (rawTaxiDir === AUTO) { + taxiDir = Math.abs(dx) > Math.abs(dy) ? HORIZONTAL : VERTICAL; + } else if (rawTaxiDir === UPWARD || rawTaxiDir === DOWNWARD) { + taxiDir = VERTICAL; + isExplicitDir = true; + } else if (rawTaxiDir === LEFTWARD || rawTaxiDir === RIGHTWARD) { + taxiDir = HORIZONTAL; + isExplicitDir = true; + } + var isVert = taxiDir === VERTICAL; + var l = isVert ? dy : dx; + var pl = isVert ? pdy : pdx; + var sgnL = signum(pl); + var forcedDir = false; + if (!(isExplicitDir && (turnIsPercent || turnIsNegative)) && (rawTaxiDir === DOWNWARD && pl < 0 || rawTaxiDir === UPWARD && pl > 0 || rawTaxiDir === LEFTWARD && pl > 0 || rawTaxiDir === RIGHTWARD && pl < 0)) { + sgnL *= -1; + l = sgnL * Math.abs(l); + forcedDir = true; + } + var d; + if (turnIsPercent) { + var p2 = taxiTurnPfVal < 0 ? 1 + taxiTurnPfVal : taxiTurnPfVal; + d = p2 * l; + } else { + var k = taxiTurnPfVal < 0 ? l : 0; + d = k + taxiTurnPfVal * sgnL; + } + var getIsTooClose = function getIsTooClose2(d2) { + return Math.abs(d2) < minD || Math.abs(d2) >= Math.abs(l); + }; + var isTooCloseSrc = getIsTooClose(d); + var isTooCloseTgt = getIsTooClose(Math.abs(l) - Math.abs(d)); + var isTooClose = isTooCloseSrc || isTooCloseTgt; + if (isTooClose && !forcedDir) { + if (isVert) { + var lShapeInsideSrc = Math.abs(pl) <= srcH / 2; + var lShapeInsideTgt = Math.abs(pdx) <= tgtW / 2; + if (lShapeInsideSrc) { + var x = (posPts.x1 + posPts.x2) / 2; + var y1 = posPts.y1, y2 = posPts.y2; + rs.segpts = [x, y1, x, y2]; + } else if (lShapeInsideTgt) { + var y = (posPts.y1 + posPts.y2) / 2; + var x1 = posPts.x1, x2 = posPts.x2; + rs.segpts = [x1, y, x2, y]; + } else { + rs.segpts = [posPts.x1, posPts.y2]; + } + } else { + var _lShapeInsideSrc = Math.abs(pl) <= srcW / 2; + var _lShapeInsideTgt = Math.abs(pdy) <= tgtH / 2; + if (_lShapeInsideSrc) { + var _y = (posPts.y1 + posPts.y2) / 2; + var _x = posPts.x1, _x2 = posPts.x2; + rs.segpts = [_x, _y, _x2, _y]; + } else if (_lShapeInsideTgt) { + var _x3 = (posPts.x1 + posPts.x2) / 2; + var _y2 = posPts.y1, _y3 = posPts.y2; + rs.segpts = [_x3, _y2, _x3, _y3]; + } else { + rs.segpts = [posPts.x2, posPts.y1]; + } + } + } else { + if (isVert) { + var _y4 = posPts.y1 + d + (dIncludesNodeBody ? srcH / 2 * sgnL : 0); + var _x4 = posPts.x1, _x5 = posPts.x2; + rs.segpts = [_x4, _y4, _x5, _y4]; + } else { + var _x6 = posPts.x1 + d + (dIncludesNodeBody ? srcW / 2 * sgnL : 0); + var _y5 = posPts.y1, _y6 = posPts.y2; + rs.segpts = [_x6, _y5, _x6, _y6]; + } + } + }; + BRp$c.tryToCorrectInvalidPoints = function(edge, pairInfo) { + var rs = edge._private.rscratch; + if (rs.edgeType === "bezier") { + var srcPos = pairInfo.srcPos, tgtPos = pairInfo.tgtPos, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH, srcShape = pairInfo.srcShape, tgtShape = pairInfo.tgtShape; + var badStart = !number$1(rs.startX) || !number$1(rs.startY); + var badAStart = !number$1(rs.arrowStartX) || !number$1(rs.arrowStartY); + var badEnd = !number$1(rs.endX) || !number$1(rs.endY); + var badAEnd = !number$1(rs.arrowEndX) || !number$1(rs.arrowEndY); + var minCpADistFactor = 3; + var arrowW = this.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.arrowShapeWidth; + var minCpADist = minCpADistFactor * arrowW; + var startACpDist = dist({ + x: rs.ctrlpts[0], + y: rs.ctrlpts[1] + }, { + x: rs.startX, + y: rs.startY + }); + var closeStartACp = startACpDist < minCpADist; + var endACpDist = dist({ + x: rs.ctrlpts[0], + y: rs.ctrlpts[1] + }, { + x: rs.endX, + y: rs.endY + }); + var closeEndACp = endACpDist < minCpADist; + var overlapping = false; + if (badStart || badAStart || closeStartACp) { + overlapping = true; + var cpD = { + // delta + x: rs.ctrlpts[0] - srcPos.x, + y: rs.ctrlpts[1] - srcPos.y + }; + var cpL = Math.sqrt(cpD.x * cpD.x + cpD.y * cpD.y); + var cpM = { + // normalised delta + x: cpD.x / cpL, + y: cpD.y / cpL + }; + var radius = Math.max(srcW, srcH); + var cpProj = { + // *2 radius guarantees outside shape + x: rs.ctrlpts[0] + cpM.x * 2 * radius, + y: rs.ctrlpts[1] + cpM.y * 2 * radius + }; + var srcCtrlPtIntn = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, cpProj.x, cpProj.y, 0); + if (closeStartACp) { + rs.ctrlpts[0] = rs.ctrlpts[0] + cpM.x * (minCpADist - startACpDist); + rs.ctrlpts[1] = rs.ctrlpts[1] + cpM.y * (minCpADist - startACpDist); + } else { + rs.ctrlpts[0] = srcCtrlPtIntn[0] + cpM.x * minCpADist; + rs.ctrlpts[1] = srcCtrlPtIntn[1] + cpM.y * minCpADist; + } + } + if (badEnd || badAEnd || closeEndACp) { + overlapping = true; + var _cpD = { + // delta + x: rs.ctrlpts[0] - tgtPos.x, + y: rs.ctrlpts[1] - tgtPos.y + }; + var _cpL = Math.sqrt(_cpD.x * _cpD.x + _cpD.y * _cpD.y); + var _cpM = { + // normalised delta + x: _cpD.x / _cpL, + y: _cpD.y / _cpL + }; + var _radius = Math.max(srcW, srcH); + var _cpProj = { + // *2 radius guarantees outside shape + x: rs.ctrlpts[0] + _cpM.x * 2 * _radius, + y: rs.ctrlpts[1] + _cpM.y * 2 * _radius + }; + var tgtCtrlPtIntn = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, _cpProj.x, _cpProj.y, 0); + if (closeEndACp) { + rs.ctrlpts[0] = rs.ctrlpts[0] + _cpM.x * (minCpADist - endACpDist); + rs.ctrlpts[1] = rs.ctrlpts[1] + _cpM.y * (minCpADist - endACpDist); + } else { + rs.ctrlpts[0] = tgtCtrlPtIntn[0] + _cpM.x * minCpADist; + rs.ctrlpts[1] = tgtCtrlPtIntn[1] + _cpM.y * minCpADist; + } + } + if (overlapping) { + this.findEndpoints(edge); + } + } + }; + BRp$c.storeAllpts = function(edge) { + var rs = edge._private.rscratch; + if (rs.edgeType === "multibezier" || rs.edgeType === "bezier" || rs.edgeType === "self" || rs.edgeType === "compound") { + rs.allpts = []; + rs.allpts.push(rs.startX, rs.startY); + for (var b = 0; b + 1 < rs.ctrlpts.length; b += 2) { + rs.allpts.push(rs.ctrlpts[b], rs.ctrlpts[b + 1]); + if (b + 3 < rs.ctrlpts.length) { + rs.allpts.push((rs.ctrlpts[b] + rs.ctrlpts[b + 2]) / 2, (rs.ctrlpts[b + 1] + rs.ctrlpts[b + 3]) / 2); + } + } + rs.allpts.push(rs.endX, rs.endY); + var m, mt; + if (rs.ctrlpts.length / 2 % 2 === 0) { + m = rs.allpts.length / 2 - 1; + rs.midX = rs.allpts[m]; + rs.midY = rs.allpts[m + 1]; + } else { + m = rs.allpts.length / 2 - 3; + mt = 0.5; + rs.midX = qbezierAt(rs.allpts[m], rs.allpts[m + 2], rs.allpts[m + 4], mt); + rs.midY = qbezierAt(rs.allpts[m + 1], rs.allpts[m + 3], rs.allpts[m + 5], mt); + } + } else if (rs.edgeType === "straight") { + rs.allpts = [rs.startX, rs.startY, rs.endX, rs.endY]; + rs.midX = (rs.startX + rs.endX + rs.arrowStartX + rs.arrowEndX) / 4; + rs.midY = (rs.startY + rs.endY + rs.arrowStartY + rs.arrowEndY) / 4; + } else if (rs.edgeType === "segments") { + rs.allpts = []; + rs.allpts.push(rs.startX, rs.startY); + rs.allpts.push.apply(rs.allpts, rs.segpts); + rs.allpts.push(rs.endX, rs.endY); + if (rs.segpts.length % 4 === 0) { + var i2 = rs.segpts.length / 2; + var i1 = i2 - 2; + rs.midX = (rs.segpts[i1] + rs.segpts[i2]) / 2; + rs.midY = (rs.segpts[i1 + 1] + rs.segpts[i2 + 1]) / 2; + } else { + var _i = rs.segpts.length / 2 - 1; + rs.midX = rs.segpts[_i]; + rs.midY = rs.segpts[_i + 1]; + } + } + }; + BRp$c.checkForInvalidEdgeWarning = function(edge) { + var rs = edge[0]._private.rscratch; + if (rs.nodesOverlap || number$1(rs.startX) && number$1(rs.startY) && number$1(rs.endX) && number$1(rs.endY)) { + rs.loggedErr = false; + } else { + if (!rs.loggedErr) { + rs.loggedErr = true; + warn("Edge `" + edge.id() + "` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap."); + } + } + }; + BRp$c.findEdgeControlPoints = function(edges) { + var _this = this; + if (!edges || edges.length === 0) { + return; + } + var r = this; + var cy = r.cy; + var hasCompounds = cy.hasCompoundNodes(); + var hashTable = { + map: new Map$2(), + get: function get2(pairId2) { + var map2 = this.map.get(pairId2[0]); + if (map2 != null) { + return map2.get(pairId2[1]); + } else { + return null; + } + }, + set: function set2(pairId2, val) { + var map2 = this.map.get(pairId2[0]); + if (map2 == null) { + map2 = new Map$2(); + this.map.set(pairId2[0], map2); + } + map2.set(pairId2[1], val); + } + }; + var pairIds = []; + var haystackEdges = []; + for (var i2 = 0; i2 < edges.length; i2++) { + var edge = edges[i2]; + var _p = edge._private; + var curveStyle = edge.pstyle("curve-style").value; + if (edge.removed() || !edge.takesUpSpace()) { + continue; + } + if (curveStyle === "haystack") { + haystackEdges.push(edge); + continue; + } + var edgeIsUnbundled = curveStyle === "unbundled-bezier" || curveStyle === "segments" || curveStyle === "straight" || curveStyle === "straight-triangle" || curveStyle === "taxi"; + var edgeIsBezier = curveStyle === "unbundled-bezier" || curveStyle === "bezier"; + var src = _p.source; + var tgt = _p.target; + var srcIndex = src.poolIndex(); + var tgtIndex = tgt.poolIndex(); + var pairId = [srcIndex, tgtIndex].sort(); + var tableEntry = hashTable.get(pairId); + if (tableEntry == null) { + tableEntry = { + eles: [] + }; + hashTable.set(pairId, tableEntry); + pairIds.push(pairId); + } + tableEntry.eles.push(edge); + if (edgeIsUnbundled) { + tableEntry.hasUnbundled = true; + } + if (edgeIsBezier) { + tableEntry.hasBezier = true; + } + } + var _loop = function _loop2(p3) { + var pairId2 = pairIds[p3]; + var pairInfo = hashTable.get(pairId2); + var swappedpairInfo = void 0; + if (!pairInfo.hasUnbundled) { + var pllEdges = pairInfo.eles[0].parallelEdges().filter(function(e) { + return e.isBundledBezier(); + }); + clearArray(pairInfo.eles); + pllEdges.forEach(function(edge2) { + return pairInfo.eles.push(edge2); + }); + pairInfo.eles.sort(function(edge1, edge2) { + return edge1.poolIndex() - edge2.poolIndex(); + }); + } + var firstEdge = pairInfo.eles[0]; + var src2 = firstEdge.source(); + var tgt2 = firstEdge.target(); + if (src2.poolIndex() > tgt2.poolIndex()) { + var temp = src2; + src2 = tgt2; + tgt2 = temp; + } + var srcPos = pairInfo.srcPos = src2.position(); + var tgtPos = pairInfo.tgtPos = tgt2.position(); + var srcW = pairInfo.srcW = src2.outerWidth(); + var srcH = pairInfo.srcH = src2.outerHeight(); + var tgtW = pairInfo.tgtW = tgt2.outerWidth(); + var tgtH = pairInfo.tgtH = tgt2.outerHeight(); + var srcShape = pairInfo.srcShape = r.nodeShapes[_this.getNodeShape(src2)]; + var tgtShape = pairInfo.tgtShape = r.nodeShapes[_this.getNodeShape(tgt2)]; + pairInfo.dirCounts = { + "north": 0, + "west": 0, + "south": 0, + "east": 0, + "northwest": 0, + "southwest": 0, + "northeast": 0, + "southeast": 0 + }; + for (var _i2 = 0; _i2 < pairInfo.eles.length; _i2++) { + var _edge = pairInfo.eles[_i2]; + var rs = _edge[0]._private.rscratch; + var _curveStyle = _edge.pstyle("curve-style").value; + var _edgeIsUnbundled = _curveStyle === "unbundled-bezier" || _curveStyle === "segments" || _curveStyle === "taxi"; + var edgeIsSwapped = !src2.same(_edge.source()); + if (!pairInfo.calculatedIntersection && src2 !== tgt2 && (pairInfo.hasBezier || pairInfo.hasUnbundled)) { + pairInfo.calculatedIntersection = true; + var srcOutside = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, tgtPos.x, tgtPos.y, 0); + var srcIntn = pairInfo.srcIntn = srcOutside; + var tgtOutside = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, srcPos.x, srcPos.y, 0); + var tgtIntn = pairInfo.tgtIntn = tgtOutside; + var intersectionPts = pairInfo.intersectionPts = { + x1: srcOutside[0], + x2: tgtOutside[0], + y1: srcOutside[1], + y2: tgtOutside[1] + }; + var posPts = pairInfo.posPts = { + x1: srcPos.x, + x2: tgtPos.x, + y1: srcPos.y, + y2: tgtPos.y + }; + var dy = tgtOutside[1] - srcOutside[1]; + var dx = tgtOutside[0] - srcOutside[0]; + var l = Math.sqrt(dx * dx + dy * dy); + var vector = pairInfo.vector = { + x: dx, + y: dy + }; + var vectorNorm = pairInfo.vectorNorm = { + x: vector.x / l, + y: vector.y / l + }; + var vectorNormInverse = { + x: -vectorNorm.y, + y: vectorNorm.x + }; + pairInfo.nodesOverlap = !number$1(l) || tgtShape.checkPoint(srcOutside[0], srcOutside[1], 0, tgtW, tgtH, tgtPos.x, tgtPos.y) || srcShape.checkPoint(tgtOutside[0], tgtOutside[1], 0, srcW, srcH, srcPos.x, srcPos.y); + pairInfo.vectorNormInverse = vectorNormInverse; + swappedpairInfo = { + nodesOverlap: pairInfo.nodesOverlap, + dirCounts: pairInfo.dirCounts, + calculatedIntersection: true, + hasBezier: pairInfo.hasBezier, + hasUnbundled: pairInfo.hasUnbundled, + eles: pairInfo.eles, + srcPos: tgtPos, + tgtPos: srcPos, + srcW: tgtW, + srcH: tgtH, + tgtW: srcW, + tgtH: srcH, + srcIntn: tgtIntn, + tgtIntn: srcIntn, + srcShape: tgtShape, + tgtShape: srcShape, + posPts: { + x1: posPts.x2, + y1: posPts.y2, + x2: posPts.x1, + y2: posPts.y1 + }, + intersectionPts: { + x1: intersectionPts.x2, + y1: intersectionPts.y2, + x2: intersectionPts.x1, + y2: intersectionPts.y1 + }, + vector: { + x: -vector.x, + y: -vector.y + }, + vectorNorm: { + x: -vectorNorm.x, + y: -vectorNorm.y + }, + vectorNormInverse: { + x: -vectorNormInverse.x, + y: -vectorNormInverse.y + } + }; + } + var passedPairInfo = edgeIsSwapped ? swappedpairInfo : pairInfo; + rs.nodesOverlap = passedPairInfo.nodesOverlap; + rs.srcIntn = passedPairInfo.srcIntn; + rs.tgtIntn = passedPairInfo.tgtIntn; + if (hasCompounds && (src2.isParent() || src2.isChild() || tgt2.isParent() || tgt2.isChild()) && (src2.parents().anySame(tgt2) || tgt2.parents().anySame(src2) || src2.same(tgt2) && src2.isParent())) { + _this.findCompoundLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled); + } else if (src2 === tgt2) { + _this.findLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled); + } else if (_curveStyle === "segments") { + _this.findSegmentsPoints(_edge, passedPairInfo); + } else if (_curveStyle === "taxi") { + _this.findTaxiPoints(_edge, passedPairInfo); + } else if (_curveStyle === "straight" || !_edgeIsUnbundled && pairInfo.eles.length % 2 === 1 && _i2 === Math.floor(pairInfo.eles.length / 2)) { + _this.findStraightEdgePoints(_edge); + } else { + _this.findBezierPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled, edgeIsSwapped); + } + _this.findEndpoints(_edge); + _this.tryToCorrectInvalidPoints(_edge, passedPairInfo); + _this.checkForInvalidEdgeWarning(_edge); + _this.storeAllpts(_edge); + _this.storeEdgeProjections(_edge); + _this.calculateArrowAngles(_edge); + _this.recalculateEdgeLabelProjections(_edge); + _this.calculateLabelAngles(_edge); + } + }; + for (var p2 = 0; p2 < pairIds.length; p2++) { + _loop(p2); + } + this.findHaystackPoints(haystackEdges); + }; + function getPts(pts2) { + var retPts = []; + if (pts2 == null) { + return; + } + for (var i2 = 0; i2 < pts2.length; i2 += 2) { + var x = pts2[i2]; + var y = pts2[i2 + 1]; + retPts.push({ + x, + y + }); + } + return retPts; + } + BRp$c.getSegmentPoints = function(edge) { + var rs = edge[0]._private.rscratch; + var type = rs.edgeType; + if (type === "segments") { + this.recalculateRenderedStyle(edge); + return getPts(rs.segpts); + } + }; + BRp$c.getControlPoints = function(edge) { + var rs = edge[0]._private.rscratch; + var type = rs.edgeType; + if (type === "bezier" || type === "multibezier" || type === "self" || type === "compound") { + this.recalculateRenderedStyle(edge); + return getPts(rs.ctrlpts); + } + }; + BRp$c.getEdgeMidpoint = function(edge) { + var rs = edge[0]._private.rscratch; + this.recalculateRenderedStyle(edge); + return { + x: rs.midX, + y: rs.midY + }; + }; + var BRp$b = {}; + BRp$b.manualEndptToPx = function(node, prop) { + var r = this; + var npos = node.position(); + var w = node.outerWidth(); + var h = node.outerHeight(); + if (prop.value.length === 2) { + var p2 = [prop.pfValue[0], prop.pfValue[1]]; + if (prop.units[0] === "%") { + p2[0] = p2[0] * w; + } + if (prop.units[1] === "%") { + p2[1] = p2[1] * h; + } + p2[0] += npos.x; + p2[1] += npos.y; + return p2; + } else { + var angle = prop.pfValue[0]; + angle = -Math.PI / 2 + angle; + var l = 2 * Math.max(w, h); + var _p = [npos.x + Math.cos(angle) * l, npos.y + Math.sin(angle) * l]; + return r.nodeShapes[this.getNodeShape(node)].intersectLine(npos.x, npos.y, w, h, _p[0], _p[1], 0); + } + }; + BRp$b.findEndpoints = function(edge) { + var r = this; + var intersect; + var source = edge.source()[0]; + var target = edge.target()[0]; + var srcPos = source.position(); + var tgtPos = target.position(); + var tgtArShape = edge.pstyle("target-arrow-shape").value; + var srcArShape = edge.pstyle("source-arrow-shape").value; + var tgtDist = edge.pstyle("target-distance-from-node").pfValue; + var srcDist = edge.pstyle("source-distance-from-node").pfValue; + var curveStyle = edge.pstyle("curve-style").value; + var rs = edge._private.rscratch; + var et = rs.edgeType; + var taxi = curveStyle === "taxi"; + var self2 = et === "self" || et === "compound"; + var bezier = et === "bezier" || et === "multibezier" || self2; + var multi = et !== "bezier"; + var lines = et === "straight" || et === "segments"; + var segments = et === "segments"; + var hasEndpts = bezier || multi || lines; + var overrideEndpts = self2 || taxi; + var srcManEndpt = edge.pstyle("source-endpoint"); + var srcManEndptVal = overrideEndpts ? "outside-to-node" : srcManEndpt.value; + var tgtManEndpt = edge.pstyle("target-endpoint"); + var tgtManEndptVal = overrideEndpts ? "outside-to-node" : tgtManEndpt.value; + rs.srcManEndpt = srcManEndpt; + rs.tgtManEndpt = tgtManEndpt; + var p1; + var p2; + var p1_i; + var p2_i; + if (bezier) { + var cpStart = [rs.ctrlpts[0], rs.ctrlpts[1]]; + var cpEnd = multi ? [rs.ctrlpts[rs.ctrlpts.length - 2], rs.ctrlpts[rs.ctrlpts.length - 1]] : cpStart; + p1 = cpEnd; + p2 = cpStart; + } else if (lines) { + var srcArrowFromPt = !segments ? [tgtPos.x, tgtPos.y] : rs.segpts.slice(0, 2); + var tgtArrowFromPt = !segments ? [srcPos.x, srcPos.y] : rs.segpts.slice(rs.segpts.length - 2); + p1 = tgtArrowFromPt; + p2 = srcArrowFromPt; + } + if (tgtManEndptVal === "inside-to-node") { + intersect = [tgtPos.x, tgtPos.y]; + } else if (tgtManEndpt.units) { + intersect = this.manualEndptToPx(target, tgtManEndpt); + } else if (tgtManEndptVal === "outside-to-line") { + intersect = rs.tgtIntn; + } else { + if (tgtManEndptVal === "outside-to-node" || tgtManEndptVal === "outside-to-node-or-label") { + p1_i = p1; + } else if (tgtManEndptVal === "outside-to-line" || tgtManEndptVal === "outside-to-line-or-label") { + p1_i = [srcPos.x, srcPos.y]; + } + intersect = r.nodeShapes[this.getNodeShape(target)].intersectLine(tgtPos.x, tgtPos.y, target.outerWidth(), target.outerHeight(), p1_i[0], p1_i[1], 0); + if (tgtManEndptVal === "outside-to-node-or-label" || tgtManEndptVal === "outside-to-line-or-label") { + var trs = target._private.rscratch; + var lw = trs.labelWidth; + var lh = trs.labelHeight; + var lx = trs.labelX; + var ly = trs.labelY; + var lw2 = lw / 2; + var lh2 = lh / 2; + var va = target.pstyle("text-valign").value; + if (va === "top") { + ly -= lh2; + } else if (va === "bottom") { + ly += lh2; + } + var ha = target.pstyle("text-halign").value; + if (ha === "left") { + lx -= lw2; + } else if (ha === "right") { + lx += lw2; + } + var labelIntersect = polygonIntersectLine(p1_i[0], p1_i[1], [lx - lw2, ly - lh2, lx + lw2, ly - lh2, lx + lw2, ly + lh2, lx - lw2, ly + lh2], tgtPos.x, tgtPos.y); + if (labelIntersect.length > 0) { + var refPt = srcPos; + var intSqdist = sqdist(refPt, array2point(intersect)); + var labIntSqdist = sqdist(refPt, array2point(labelIntersect)); + var minSqDist = intSqdist; + if (labIntSqdist < intSqdist) { + intersect = labelIntersect; + minSqDist = labIntSqdist; + } + if (labelIntersect.length > 2) { + var labInt2SqDist = sqdist(refPt, { + x: labelIntersect[2], + y: labelIntersect[3] + }); + if (labInt2SqDist < minSqDist) { + intersect = [labelIntersect[2], labelIntersect[3]]; + } + } + } + } + } + var arrowEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].spacing(edge) + tgtDist); + var edgeEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].gap(edge) + tgtDist); + rs.endX = edgeEnd[0]; + rs.endY = edgeEnd[1]; + rs.arrowEndX = arrowEnd[0]; + rs.arrowEndY = arrowEnd[1]; + if (srcManEndptVal === "inside-to-node") { + intersect = [srcPos.x, srcPos.y]; + } else if (srcManEndpt.units) { + intersect = this.manualEndptToPx(source, srcManEndpt); + } else if (srcManEndptVal === "outside-to-line") { + intersect = rs.srcIntn; + } else { + if (srcManEndptVal === "outside-to-node" || srcManEndptVal === "outside-to-node-or-label") { + p2_i = p2; + } else if (srcManEndptVal === "outside-to-line" || srcManEndptVal === "outside-to-line-or-label") { + p2_i = [tgtPos.x, tgtPos.y]; + } + intersect = r.nodeShapes[this.getNodeShape(source)].intersectLine(srcPos.x, srcPos.y, source.outerWidth(), source.outerHeight(), p2_i[0], p2_i[1], 0); + if (srcManEndptVal === "outside-to-node-or-label" || srcManEndptVal === "outside-to-line-or-label") { + var srs = source._private.rscratch; + var _lw = srs.labelWidth; + var _lh = srs.labelHeight; + var _lx = srs.labelX; + var _ly = srs.labelY; + var _lw2 = _lw / 2; + var _lh2 = _lh / 2; + var _va = source.pstyle("text-valign").value; + if (_va === "top") { + _ly -= _lh2; + } else if (_va === "bottom") { + _ly += _lh2; + } + var _ha = source.pstyle("text-halign").value; + if (_ha === "left") { + _lx -= _lw2; + } else if (_ha === "right") { + _lx += _lw2; + } + var _labelIntersect = polygonIntersectLine(p2_i[0], p2_i[1], [_lx - _lw2, _ly - _lh2, _lx + _lw2, _ly - _lh2, _lx + _lw2, _ly + _lh2, _lx - _lw2, _ly + _lh2], srcPos.x, srcPos.y); + if (_labelIntersect.length > 0) { + var _refPt = tgtPos; + var _intSqdist = sqdist(_refPt, array2point(intersect)); + var _labIntSqdist = sqdist(_refPt, array2point(_labelIntersect)); + var _minSqDist = _intSqdist; + if (_labIntSqdist < _intSqdist) { + intersect = [_labelIntersect[0], _labelIntersect[1]]; + _minSqDist = _labIntSqdist; + } + if (_labelIntersect.length > 2) { + var _labInt2SqDist = sqdist(_refPt, { + x: _labelIntersect[2], + y: _labelIntersect[3] + }); + if (_labInt2SqDist < _minSqDist) { + intersect = [_labelIntersect[2], _labelIntersect[3]]; + } + } + } + } + } + var arrowStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].spacing(edge) + srcDist); + var edgeStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].gap(edge) + srcDist); + rs.startX = edgeStart[0]; + rs.startY = edgeStart[1]; + rs.arrowStartX = arrowStart[0]; + rs.arrowStartY = arrowStart[1]; + if (hasEndpts) { + if (!number$1(rs.startX) || !number$1(rs.startY) || !number$1(rs.endX) || !number$1(rs.endY)) { + rs.badLine = true; + } else { + rs.badLine = false; + } + } + }; + BRp$b.getSourceEndpoint = function(edge) { + var rs = edge[0]._private.rscratch; + this.recalculateRenderedStyle(edge); + switch (rs.edgeType) { + case "haystack": + return { + x: rs.haystackPts[0], + y: rs.haystackPts[1] + }; + default: + return { + x: rs.arrowStartX, + y: rs.arrowStartY + }; + } + }; + BRp$b.getTargetEndpoint = function(edge) { + var rs = edge[0]._private.rscratch; + this.recalculateRenderedStyle(edge); + switch (rs.edgeType) { + case "haystack": + return { + x: rs.haystackPts[2], + y: rs.haystackPts[3] + }; + default: + return { + x: rs.arrowEndX, + y: rs.arrowEndY + }; + } + }; + var BRp$a = {}; + function pushBezierPts(r, edge, pts2) { + var qbezierAt$1 = function qbezierAt$12(p1, p22, p3, t) { + return qbezierAt(p1, p22, p3, t); + }; + var _p = edge._private; + var bpts = _p.rstyle.bezierPts; + for (var i2 = 0; i2 < r.bezierProjPcts.length; i2++) { + var p2 = r.bezierProjPcts[i2]; + bpts.push({ + x: qbezierAt$1(pts2[0], pts2[2], pts2[4], p2), + y: qbezierAt$1(pts2[1], pts2[3], pts2[5], p2) + }); + } + } + BRp$a.storeEdgeProjections = function(edge) { + var _p = edge._private; + var rs = _p.rscratch; + var et = rs.edgeType; + _p.rstyle.bezierPts = null; + _p.rstyle.linePts = null; + _p.rstyle.haystackPts = null; + if (et === "multibezier" || et === "bezier" || et === "self" || et === "compound") { + _p.rstyle.bezierPts = []; + for (var i2 = 0; i2 + 5 < rs.allpts.length; i2 += 4) { + pushBezierPts(this, edge, rs.allpts.slice(i2, i2 + 6)); + } + } else if (et === "segments") { + var lpts = _p.rstyle.linePts = []; + for (var i2 = 0; i2 + 1 < rs.allpts.length; i2 += 2) { + lpts.push({ + x: rs.allpts[i2], + y: rs.allpts[i2 + 1] + }); + } + } else if (et === "haystack") { + var hpts = rs.haystackPts; + _p.rstyle.haystackPts = [{ + x: hpts[0], + y: hpts[1] + }, { + x: hpts[2], + y: hpts[3] + }]; + } + _p.rstyle.arrowWidth = this.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.arrowShapeWidth; + }; + BRp$a.recalculateEdgeProjections = function(edges) { + this.findEdgeControlPoints(edges); + }; + var BRp$9 = {}; + BRp$9.recalculateNodeLabelProjection = function(node) { + var content = node.pstyle("label").strValue; + if (emptyString(content)) { + return; + } + var textX, textY; + var _p = node._private; + var nodeWidth = node.width(); + var nodeHeight = node.height(); + var padding = node.padding(); + var nodePos = node.position(); + var textHalign = node.pstyle("text-halign").strValue; + var textValign = node.pstyle("text-valign").strValue; + var rs = _p.rscratch; + var rstyle = _p.rstyle; + switch (textHalign) { + case "left": + textX = nodePos.x - nodeWidth / 2 - padding; + break; + case "right": + textX = nodePos.x + nodeWidth / 2 + padding; + break; + default: + textX = nodePos.x; + } + switch (textValign) { + case "top": + textY = nodePos.y - nodeHeight / 2 - padding; + break; + case "bottom": + textY = nodePos.y + nodeHeight / 2 + padding; + break; + default: + textY = nodePos.y; + } + rs.labelX = textX; + rs.labelY = textY; + rstyle.labelX = textX; + rstyle.labelY = textY; + this.calculateLabelAngles(node); + this.applyLabelDimensions(node); + }; + var lineAngleFromDelta = function lineAngleFromDelta2(dx, dy) { + var angle = Math.atan(dy / dx); + if (dx === 0 && angle < 0) { + angle = angle * -1; + } + return angle; + }; + var lineAngle = function lineAngle2(p0, p1) { + var dx = p1.x - p0.x; + var dy = p1.y - p0.y; + return lineAngleFromDelta(dx, dy); + }; + var bezierAngle = function bezierAngle2(p0, p1, p2, t) { + var t0 = bound(0, t - 1e-3, 1); + var t1 = bound(0, t + 1e-3, 1); + var lp0 = qbezierPtAt(p0, p1, p2, t0); + var lp1 = qbezierPtAt(p0, p1, p2, t1); + return lineAngle(lp0, lp1); + }; + BRp$9.recalculateEdgeLabelProjections = function(edge) { + var p2; + var _p = edge._private; + var rs = _p.rscratch; + var r = this; + var content = { + mid: edge.pstyle("label").strValue, + source: edge.pstyle("source-label").strValue, + target: edge.pstyle("target-label").strValue + }; + if (content.mid || content.source || content.target) + ; + else { + return; + } + p2 = { + x: rs.midX, + y: rs.midY + }; + var setRs = function setRs2(propName, prefix, value) { + setPrefixedProperty(_p.rscratch, propName, prefix, value); + setPrefixedProperty(_p.rstyle, propName, prefix, value); + }; + setRs("labelX", null, p2.x); + setRs("labelY", null, p2.y); + var midAngle = lineAngleFromDelta(rs.midDispX, rs.midDispY); + setRs("labelAutoAngle", null, midAngle); + var createControlPointInfo = function createControlPointInfo2() { + if (createControlPointInfo2.cache) { + return createControlPointInfo2.cache; + } + var ctrlpts = []; + for (var i2 = 0; i2 + 5 < rs.allpts.length; i2 += 4) { + var p0 = { + x: rs.allpts[i2], + y: rs.allpts[i2 + 1] + }; + var p1 = { + x: rs.allpts[i2 + 2], + y: rs.allpts[i2 + 3] + }; + var p22 = { + x: rs.allpts[i2 + 4], + y: rs.allpts[i2 + 5] + }; + ctrlpts.push({ + p0, + p1, + p2: p22, + startDist: 0, + length: 0, + segments: [] + }); + } + var bpts = _p.rstyle.bezierPts; + var nProjs = r.bezierProjPcts.length; + function addSegment(cp2, p02, p12, t0, t1) { + var length = dist(p02, p12); + var prevSegment = cp2.segments[cp2.segments.length - 1]; + var segment = { + p0: p02, + p1: p12, + t0, + t1, + startDist: prevSegment ? prevSegment.startDist + prevSegment.length : 0, + length + }; + cp2.segments.push(segment); + cp2.length += length; + } + for (var _i = 0; _i < ctrlpts.length; _i++) { + var cp = ctrlpts[_i]; + var prevCp = ctrlpts[_i - 1]; + if (prevCp) { + cp.startDist = prevCp.startDist + prevCp.length; + } + addSegment(cp, cp.p0, bpts[_i * nProjs], 0, r.bezierProjPcts[0]); + for (var j = 0; j < nProjs - 1; j++) { + addSegment(cp, bpts[_i * nProjs + j], bpts[_i * nProjs + j + 1], r.bezierProjPcts[j], r.bezierProjPcts[j + 1]); + } + addSegment(cp, bpts[_i * nProjs + nProjs - 1], cp.p2, r.bezierProjPcts[nProjs - 1], 1); + } + return createControlPointInfo2.cache = ctrlpts; + }; + var calculateEndProjection = function calculateEndProjection2(prefix) { + var angle; + var isSrc = prefix === "source"; + if (!content[prefix]) { + return; + } + var offset = edge.pstyle(prefix + "-text-offset").pfValue; + switch (rs.edgeType) { + case "self": + case "compound": + case "bezier": + case "multibezier": { + var cps = createControlPointInfo(); + var selected; + var startDist = 0; + var totalDist = 0; + for (var i2 = 0; i2 < cps.length; i2++) { + var _cp = cps[isSrc ? i2 : cps.length - 1 - i2]; + for (var j = 0; j < _cp.segments.length; j++) { + var _seg = _cp.segments[isSrc ? j : _cp.segments.length - 1 - j]; + var lastSeg = i2 === cps.length - 1 && j === _cp.segments.length - 1; + startDist = totalDist; + totalDist += _seg.length; + if (totalDist >= offset || lastSeg) { + selected = { + cp: _cp, + segment: _seg + }; + break; + } + } + if (selected) { + break; + } + } + var cp = selected.cp; + var seg = selected.segment; + var tSegment = (offset - startDist) / seg.length; + var segDt = seg.t1 - seg.t0; + var t = isSrc ? seg.t0 + segDt * tSegment : seg.t1 - segDt * tSegment; + t = bound(0, t, 1); + p2 = qbezierPtAt(cp.p0, cp.p1, cp.p2, t); + angle = bezierAngle(cp.p0, cp.p1, cp.p2, t); + break; + } + case "straight": + case "segments": + case "haystack": { + var d = 0, di, d0; + var p0, p1; + var l = rs.allpts.length; + for (var _i2 = 0; _i2 + 3 < l; _i2 += 2) { + if (isSrc) { + p0 = { + x: rs.allpts[_i2], + y: rs.allpts[_i2 + 1] + }; + p1 = { + x: rs.allpts[_i2 + 2], + y: rs.allpts[_i2 + 3] + }; + } else { + p0 = { + x: rs.allpts[l - 2 - _i2], + y: rs.allpts[l - 1 - _i2] + }; + p1 = { + x: rs.allpts[l - 4 - _i2], + y: rs.allpts[l - 3 - _i2] + }; + } + di = dist(p0, p1); + d0 = d; + d += di; + if (d >= offset) { + break; + } + } + var pD = offset - d0; + var _t = pD / di; + _t = bound(0, _t, 1); + p2 = lineAt(p0, p1, _t); + angle = lineAngle(p0, p1); + break; + } + } + setRs("labelX", prefix, p2.x); + setRs("labelY", prefix, p2.y); + setRs("labelAutoAngle", prefix, angle); + }; + calculateEndProjection("source"); + calculateEndProjection("target"); + this.applyLabelDimensions(edge); + }; + BRp$9.applyLabelDimensions = function(ele) { + this.applyPrefixedLabelDimensions(ele); + if (ele.isEdge()) { + this.applyPrefixedLabelDimensions(ele, "source"); + this.applyPrefixedLabelDimensions(ele, "target"); + } + }; + BRp$9.applyPrefixedLabelDimensions = function(ele, prefix) { + var _p = ele._private; + var text = this.getLabelText(ele, prefix); + var labelDims = this.calculateLabelDimensions(ele, text); + var lineHeight = ele.pstyle("line-height").pfValue; + var textWrap = ele.pstyle("text-wrap").strValue; + var lines = getPrefixedProperty(_p.rscratch, "labelWrapCachedLines", prefix) || []; + var numLines = textWrap !== "wrap" ? 1 : Math.max(lines.length, 1); + var normPerLineHeight = labelDims.height / numLines; + var labelLineHeight = normPerLineHeight * lineHeight; + var width = labelDims.width; + var height = labelDims.height + (numLines - 1) * (lineHeight - 1) * normPerLineHeight; + setPrefixedProperty(_p.rstyle, "labelWidth", prefix, width); + setPrefixedProperty(_p.rscratch, "labelWidth", prefix, width); + setPrefixedProperty(_p.rstyle, "labelHeight", prefix, height); + setPrefixedProperty(_p.rscratch, "labelHeight", prefix, height); + setPrefixedProperty(_p.rscratch, "labelLineHeight", prefix, labelLineHeight); + }; + BRp$9.getLabelText = function(ele, prefix) { + var _p = ele._private; + var pfd = prefix ? prefix + "-" : ""; + var text = ele.pstyle(pfd + "label").strValue; + var textTransform = ele.pstyle("text-transform").value; + var rscratch = function rscratch2(propName, value) { + if (value) { + setPrefixedProperty(_p.rscratch, propName, prefix, value); + return value; + } else { + return getPrefixedProperty(_p.rscratch, propName, prefix); + } + }; + if (!text) { + return ""; + } + if (textTransform == "none") + ; + else if (textTransform == "uppercase") { + text = text.toUpperCase(); + } else if (textTransform == "lowercase") { + text = text.toLowerCase(); + } + var wrapStyle = ele.pstyle("text-wrap").value; + if (wrapStyle === "wrap") { + var labelKey = rscratch("labelKey"); + if (labelKey != null && rscratch("labelWrapKey") === labelKey) { + return rscratch("labelWrapCachedText"); + } + var zwsp = "​"; + var lines = text.split("\n"); + var maxW = ele.pstyle("text-max-width").pfValue; + var overflow = ele.pstyle("text-overflow-wrap").value; + var overflowAny = overflow === "anywhere"; + var wrappedLines = []; + var wordsRegex = /[\s\u200b]+/; + var wordSeparator = overflowAny ? "" : " "; + for (var l = 0; l < lines.length; l++) { + var line = lines[l]; + var lineDims = this.calculateLabelDimensions(ele, line); + var lineW = lineDims.width; + if (overflowAny) { + var processedLine = line.split("").join(zwsp); + line = processedLine; + } + if (lineW > maxW) { + var words = line.split(wordsRegex); + var subline = ""; + for (var w = 0; w < words.length; w++) { + var word = words[w]; + var testLine = subline.length === 0 ? word : subline + wordSeparator + word; + var testDims = this.calculateLabelDimensions(ele, testLine); + var testW = testDims.width; + if (testW <= maxW) { + subline += word + wordSeparator; + } else { + if (subline) { + wrappedLines.push(subline); + } + subline = word + wordSeparator; + } + } + if (!subline.match(/^[\s\u200b]+$/)) { + wrappedLines.push(subline); + } + } else { + wrappedLines.push(line); + } + } + rscratch("labelWrapCachedLines", wrappedLines); + text = rscratch("labelWrapCachedText", wrappedLines.join("\n")); + rscratch("labelWrapKey", labelKey); + } else if (wrapStyle === "ellipsis") { + var _maxW = ele.pstyle("text-max-width").pfValue; + var ellipsized = ""; + var ellipsis = "…"; + var incLastCh = false; + if (this.calculateLabelDimensions(ele, text).width < _maxW) { + return text; + } + for (var i2 = 0; i2 < text.length; i2++) { + var widthWithNextCh = this.calculateLabelDimensions(ele, ellipsized + text[i2] + ellipsis).width; + if (widthWithNextCh > _maxW) { + break; + } + ellipsized += text[i2]; + if (i2 === text.length - 1) { + incLastCh = true; + } + } + if (!incLastCh) { + ellipsized += ellipsis; + } + return ellipsized; + } + return text; + }; + BRp$9.getLabelJustification = function(ele) { + var justification = ele.pstyle("text-justification").strValue; + var textHalign = ele.pstyle("text-halign").strValue; + if (justification === "auto") { + if (ele.isNode()) { + switch (textHalign) { + case "left": + return "right"; + case "right": + return "left"; + default: + return "center"; + } + } else { + return "center"; + } + } else { + return justification; + } + }; + BRp$9.calculateLabelDimensions = function(ele, text) { + var r = this; + var cacheKey = hashString(text, ele._private.labelDimsKey); + var cache2 = r.labelDimCache || (r.labelDimCache = []); + var existingVal = cache2[cacheKey]; + if (existingVal != null) { + return existingVal; + } + var padding = 0; + var fStyle = ele.pstyle("font-style").strValue; + var size = ele.pstyle("font-size").pfValue; + var family = ele.pstyle("font-family").strValue; + var weight = ele.pstyle("font-weight").strValue; + var canvas = this.labelCalcCanvas; + var c2d = this.labelCalcCanvasContext; + if (!canvas) { + canvas = this.labelCalcCanvas = document.createElement("canvas"); + c2d = this.labelCalcCanvasContext = canvas.getContext("2d"); + var ds = canvas.style; + ds.position = "absolute"; + ds.left = "-9999px"; + ds.top = "-9999px"; + ds.zIndex = "-1"; + ds.visibility = "hidden"; + ds.pointerEvents = "none"; + } + c2d.font = "".concat(fStyle, " ").concat(weight, " ").concat(size, "px ").concat(family); + var width = 0; + var height = 0; + var lines = text.split("\n"); + for (var i2 = 0; i2 < lines.length; i2++) { + var line = lines[i2]; + var metrics = c2d.measureText(line); + var w = Math.ceil(metrics.width); + var h = size; + width = Math.max(w, width); + height += h; + } + width += padding; + height += padding; + return cache2[cacheKey] = { + width, + height + }; + }; + BRp$9.calculateLabelAngle = function(ele, prefix) { + var _p = ele._private; + var rs = _p.rscratch; + var isEdge = ele.isEdge(); + var prefixDash = prefix ? prefix + "-" : ""; + var rot = ele.pstyle(prefixDash + "text-rotation"); + var rotStr = rot.strValue; + if (rotStr === "none") { + return 0; + } else if (isEdge && rotStr === "autorotate") { + return rs.labelAutoAngle; + } else if (rotStr === "autorotate") { + return 0; + } else { + return rot.pfValue; + } + }; + BRp$9.calculateLabelAngles = function(ele) { + var r = this; + var isEdge = ele.isEdge(); + var _p = ele._private; + var rs = _p.rscratch; + rs.labelAngle = r.calculateLabelAngle(ele); + if (isEdge) { + rs.sourceLabelAngle = r.calculateLabelAngle(ele, "source"); + rs.targetLabelAngle = r.calculateLabelAngle(ele, "target"); + } + }; + var BRp$8 = {}; + var TOO_SMALL_CUT_RECT = 28; + var warnedCutRect = false; + BRp$8.getNodeShape = function(node) { + var r = this; + var shape = node.pstyle("shape").value; + if (shape === "cutrectangle" && (node.width() < TOO_SMALL_CUT_RECT || node.height() < TOO_SMALL_CUT_RECT)) { + if (!warnedCutRect) { + warn("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"); + warnedCutRect = true; + } + return "rectangle"; + } + if (node.isParent()) { + if (shape === "rectangle" || shape === "roundrectangle" || shape === "round-rectangle" || shape === "cutrectangle" || shape === "cut-rectangle" || shape === "barrel") { + return shape; + } else { + return "rectangle"; + } + } + if (shape === "polygon") { + var points = node.pstyle("shape-polygon-points").value; + return r.nodeShapes.makePolygon(points).name; + } + return shape; + }; + var BRp$7 = {}; + BRp$7.registerCalculationListeners = function() { + var cy = this.cy; + var elesToUpdate = cy.collection(); + var r = this; + var enqueue = function enqueue2(eles) { + var dirtyStyleCaches = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; + elesToUpdate.merge(eles); + if (dirtyStyleCaches) { + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + var _p = ele._private; + var rstyle = _p.rstyle; + rstyle.clean = false; + rstyle.cleanConnected = false; + } + } + }; + r.binder(cy).on("bounds.* dirty.*", function onDirtyBounds(e) { + var ele = e.target; + enqueue(ele); + }).on("style.* background.*", function onDirtyStyle(e) { + var ele = e.target; + enqueue(ele, false); + }); + var updateEleCalcs = function updateEleCalcs2(willDraw) { + if (willDraw) { + var fns = r.onUpdateEleCalcsFns; + elesToUpdate.cleanStyle(); + for (var i2 = 0; i2 < elesToUpdate.length; i2++) { + var ele = elesToUpdate[i2]; + var rstyle = ele._private.rstyle; + if (ele.isNode() && !rstyle.cleanConnected) { + enqueue(ele.connectedEdges()); + rstyle.cleanConnected = true; + } + } + if (fns) { + for (var _i = 0; _i < fns.length; _i++) { + var fn2 = fns[_i]; + fn2(willDraw, elesToUpdate); + } + } + r.recalculateRenderedStyle(elesToUpdate); + elesToUpdate = cy.collection(); + } + }; + r.flushRenderedStyleQueue = function() { + updateEleCalcs(true); + }; + r.beforeRender(updateEleCalcs, r.beforeRenderPriorities.eleCalcs); + }; + BRp$7.onUpdateEleCalcs = function(fn2) { + var fns = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || []; + fns.push(fn2); + }; + BRp$7.recalculateRenderedStyle = function(eles, useCache) { + var isCleanConnected = function isCleanConnected2(ele2) { + return ele2._private.rstyle.cleanConnected; + }; + var edges = []; + var nodes2 = []; + if (this.destroyed) { + return; + } + if (useCache === void 0) { + useCache = true; + } + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + var _p = ele._private; + var rstyle = _p.rstyle; + if (ele.isEdge() && (!isCleanConnected(ele.source()) || !isCleanConnected(ele.target()))) { + rstyle.clean = false; + } + if (useCache && rstyle.clean || ele.removed()) { + continue; + } + if (ele.pstyle("display").value === "none") { + continue; + } + if (_p.group === "nodes") { + nodes2.push(ele); + } else { + edges.push(ele); + } + rstyle.clean = true; + } + for (var _i2 = 0; _i2 < nodes2.length; _i2++) { + var _ele = nodes2[_i2]; + var _p2 = _ele._private; + var _rstyle = _p2.rstyle; + var pos = _ele.position(); + this.recalculateNodeLabelProjection(_ele); + _rstyle.nodeX = pos.x; + _rstyle.nodeY = pos.y; + _rstyle.nodeW = _ele.pstyle("width").pfValue; + _rstyle.nodeH = _ele.pstyle("height").pfValue; + } + this.recalculateEdgeProjections(edges); + for (var _i3 = 0; _i3 < edges.length; _i3++) { + var _ele2 = edges[_i3]; + var _p3 = _ele2._private; + var _rstyle2 = _p3.rstyle; + var rs = _p3.rscratch; + _rstyle2.srcX = rs.arrowStartX; + _rstyle2.srcY = rs.arrowStartY; + _rstyle2.tgtX = rs.arrowEndX; + _rstyle2.tgtY = rs.arrowEndY; + _rstyle2.midX = rs.midX; + _rstyle2.midY = rs.midY; + _rstyle2.labelAngle = rs.labelAngle; + _rstyle2.sourceLabelAngle = rs.sourceLabelAngle; + _rstyle2.targetLabelAngle = rs.targetLabelAngle; + } + }; + var BRp$6 = {}; + BRp$6.updateCachedGrabbedEles = function() { + var eles = this.cachedZSortedEles; + if (!eles) { + return; + } + eles.drag = []; + eles.nondrag = []; + var grabTargets = []; + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + var rs = ele._private.rscratch; + if (ele.grabbed() && !ele.isParent()) { + grabTargets.push(ele); + } else if (rs.inDragLayer) { + eles.drag.push(ele); + } else { + eles.nondrag.push(ele); + } + } + for (var i2 = 0; i2 < grabTargets.length; i2++) { + var ele = grabTargets[i2]; + eles.drag.push(ele); + } + }; + BRp$6.invalidateCachedZSortedEles = function() { + this.cachedZSortedEles = null; + }; + BRp$6.getCachedZSortedEles = function(forceRecalc) { + if (forceRecalc || !this.cachedZSortedEles) { + var eles = this.cy.mutableElements().toArray(); + eles.sort(zIndexSort); + eles.interactive = eles.filter(function(ele) { + return ele.interactive(); + }); + this.cachedZSortedEles = eles; + this.updateCachedGrabbedEles(); + } else { + eles = this.cachedZSortedEles; + } + return eles; + }; + var BRp$5 = {}; + [BRp$e, BRp$d, BRp$c, BRp$b, BRp$a, BRp$9, BRp$8, BRp$7, BRp$6].forEach(function(props) { + extend(BRp$5, props); + }); + var BRp$4 = {}; + BRp$4.getCachedImage = function(url, crossOrigin, onLoad) { + var r = this; + var imageCache = r.imageCache = r.imageCache || {}; + var cache2 = imageCache[url]; + if (cache2) { + if (!cache2.image.complete) { + cache2.image.addEventListener("load", onLoad); + } + return cache2.image; + } else { + cache2 = imageCache[url] = imageCache[url] || {}; + var image = cache2.image = new Image(); + image.addEventListener("load", onLoad); + image.addEventListener("error", function() { + image.error = true; + }); + var dataUriPrefix = "data:"; + var isDataUri = url.substring(0, dataUriPrefix.length).toLowerCase() === dataUriPrefix; + if (!isDataUri) { + crossOrigin = crossOrigin === "null" ? null : crossOrigin; + image.crossOrigin = crossOrigin; + } + image.src = url; + return image; + } + }; + var BRp$3 = {}; + BRp$3.registerBinding = function(target, event2, handler, useCapture) { + var args = Array.prototype.slice.apply(arguments, [1]); + var b = this.binder(target); + return b.on.apply(b, args); + }; + BRp$3.binder = function(tgt) { + var r = this; + var containerWindow = r.cy.window(); + var tgtIsDom = tgt === containerWindow || tgt === containerWindow.document || tgt === containerWindow.document.body || domElement(tgt); + if (r.supportsPassiveEvents == null) { + var supportsPassive = false; + try { + var opts = Object.defineProperty({}, "passive", { + get: function get2() { + supportsPassive = true; + return true; + } + }); + containerWindow.addEventListener("test", null, opts); + } catch (err) { + } + r.supportsPassiveEvents = supportsPassive; + } + var on = function on2(event2, handler, useCapture) { + var args = Array.prototype.slice.call(arguments); + if (tgtIsDom && r.supportsPassiveEvents) { + args[2] = { + capture: useCapture != null ? useCapture : false, + passive: false, + once: false + }; + } + r.bindings.push({ + target: tgt, + args + }); + (tgt.addEventListener || tgt.on).apply(tgt, args); + return this; + }; + return { + on, + addEventListener: on, + addListener: on, + bind: on + }; + }; + BRp$3.nodeIsDraggable = function(node) { + return node && node.isNode() && !node.locked() && node.grabbable(); + }; + BRp$3.nodeIsGrabbable = function(node) { + return this.nodeIsDraggable(node) && node.interactive(); + }; + BRp$3.load = function() { + var r = this; + var containerWindow = r.cy.window(); + var isSelected = function isSelected2(ele) { + return ele.selected(); + }; + var triggerEvents = function triggerEvents2(target, names, e, position2) { + if (target == null) { + target = r.cy; + } + for (var i2 = 0; i2 < names.length; i2++) { + var name = names[i2]; + target.emit({ + originalEvent: e, + type: name, + position: position2 + }); + } + }; + var isMultSelKeyDown = function isMultSelKeyDown2(e) { + return e.shiftKey || e.metaKey || e.ctrlKey; + }; + var allowPanningPassthrough = function allowPanningPassthrough2(down, downs) { + var allowPassthrough = true; + if (r.cy.hasCompoundNodes() && down && down.pannable()) { + for (var i2 = 0; downs && i2 < downs.length; i2++) { + var down = downs[i2]; + if (down.isNode() && down.isParent() && !down.pannable()) { + allowPassthrough = false; + break; + } + } + } else { + allowPassthrough = true; + } + return allowPassthrough; + }; + var setGrabbed = function setGrabbed2(ele) { + ele[0]._private.grabbed = true; + }; + var setFreed = function setFreed2(ele) { + ele[0]._private.grabbed = false; + }; + var setInDragLayer = function setInDragLayer2(ele) { + ele[0]._private.rscratch.inDragLayer = true; + }; + var setOutDragLayer = function setOutDragLayer2(ele) { + ele[0]._private.rscratch.inDragLayer = false; + }; + var setGrabTarget = function setGrabTarget2(ele) { + ele[0]._private.rscratch.isGrabTarget = true; + }; + var removeGrabTarget = function removeGrabTarget2(ele) { + ele[0]._private.rscratch.isGrabTarget = false; + }; + var addToDragList = function addToDragList2(ele, opts) { + var list = opts.addToList; + var listHasEle = list.has(ele); + if (!listHasEle && ele.grabbable() && !ele.locked()) { + list.merge(ele); + setGrabbed(ele); + } + }; + var addDescendantsToDrag = function addDescendantsToDrag2(node, opts) { + if (!node.cy().hasCompoundNodes()) { + return; + } + if (opts.inDragLayer == null && opts.addToList == null) { + return; + } + var innerNodes = node.descendants(); + if (opts.inDragLayer) { + innerNodes.forEach(setInDragLayer); + innerNodes.connectedEdges().forEach(setInDragLayer); + } + if (opts.addToList) { + addToDragList(innerNodes, opts); + } + }; + var addNodesToDrag = function addNodesToDrag2(nodes2, opts) { + opts = opts || {}; + var hasCompoundNodes = nodes2.cy().hasCompoundNodes(); + if (opts.inDragLayer) { + nodes2.forEach(setInDragLayer); + nodes2.neighborhood().stdFilter(function(ele) { + return !hasCompoundNodes || ele.isEdge(); + }).forEach(setInDragLayer); + } + if (opts.addToList) { + nodes2.forEach(function(ele) { + addToDragList(ele, opts); + }); + } + addDescendantsToDrag(nodes2, opts); + updateAncestorsInDragLayer(nodes2, { + inDragLayer: opts.inDragLayer + }); + r.updateCachedGrabbedEles(); + }; + var addNodeToDrag = addNodesToDrag; + var freeDraggedElements = function freeDraggedElements2(grabbedEles) { + if (!grabbedEles) { + return; + } + r.getCachedZSortedEles().forEach(function(ele) { + setFreed(ele); + setOutDragLayer(ele); + removeGrabTarget(ele); + }); + r.updateCachedGrabbedEles(); + }; + var updateAncestorsInDragLayer = function updateAncestorsInDragLayer2(node, opts) { + if (opts.inDragLayer == null && opts.addToList == null) { + return; + } + if (!node.cy().hasCompoundNodes()) { + return; + } + var parent = node.ancestors().orphans(); + if (parent.same(node)) { + return; + } + var nodes2 = parent.descendants().spawnSelf().merge(parent).unmerge(node).unmerge(node.descendants()); + var edges = nodes2.connectedEdges(); + if (opts.inDragLayer) { + edges.forEach(setInDragLayer); + nodes2.forEach(setInDragLayer); + } + if (opts.addToList) { + nodes2.forEach(function(ele) { + addToDragList(ele, opts); + }); + } + }; + var blurActiveDomElement = function blurActiveDomElement2() { + if (document.activeElement != null && document.activeElement.blur != null) { + document.activeElement.blur(); + } + }; + var haveMutationsApi = typeof MutationObserver !== "undefined"; + var haveResizeObserverApi = typeof ResizeObserver !== "undefined"; + if (haveMutationsApi) { + r.removeObserver = new MutationObserver(function(mutns) { + for (var i2 = 0; i2 < mutns.length; i2++) { + var mutn = mutns[i2]; + var rNodes = mutn.removedNodes; + if (rNodes) { + for (var j = 0; j < rNodes.length; j++) { + var rNode = rNodes[j]; + if (rNode === r.container) { + r.destroy(); + break; + } + } + } + } + }); + if (r.container.parentNode) { + r.removeObserver.observe(r.container.parentNode, { + childList: true + }); + } + } else { + r.registerBinding(r.container, "DOMNodeRemoved", function(e) { + r.destroy(); + }); + } + var onResize = debounce_1(function() { + r.cy.resize(); + }, 100); + if (haveMutationsApi) { + r.styleObserver = new MutationObserver(onResize); + r.styleObserver.observe(r.container, { + attributes: true + }); + } + r.registerBinding(containerWindow, "resize", onResize); + if (haveResizeObserverApi) { + r.resizeObserver = new ResizeObserver(onResize); + r.resizeObserver.observe(r.container); + } + var forEachUp = function forEachUp2(domEle, fn2) { + while (domEle != null) { + fn2(domEle); + domEle = domEle.parentNode; + } + }; + var invalidateCoords = function invalidateCoords2() { + r.invalidateContainerClientCoordsCache(); + }; + forEachUp(r.container, function(domEle) { + r.registerBinding(domEle, "transitionend", invalidateCoords); + r.registerBinding(domEle, "animationend", invalidateCoords); + r.registerBinding(domEle, "scroll", invalidateCoords); + }); + r.registerBinding(r.container, "contextmenu", function(e) { + e.preventDefault(); + }); + var inBoxSelection = function inBoxSelection2() { + return r.selection[4] !== 0; + }; + var eventInContainer = function eventInContainer2(e) { + var containerPageCoords = r.findContainerClientCoords(); + var x = containerPageCoords[0]; + var y = containerPageCoords[1]; + var width = containerPageCoords[2]; + var height = containerPageCoords[3]; + var positions = e.touches ? e.touches : [e]; + var atLeastOnePosInside = false; + for (var i2 = 0; i2 < positions.length; i2++) { + var p2 = positions[i2]; + if (x <= p2.clientX && p2.clientX <= x + width && y <= p2.clientY && p2.clientY <= y + height) { + atLeastOnePosInside = true; + break; + } + } + if (!atLeastOnePosInside) { + return false; + } + var container = r.container; + var target = e.target; + var tParent = target.parentNode; + var containerIsTarget = false; + while (tParent) { + if (tParent === container) { + containerIsTarget = true; + break; + } + tParent = tParent.parentNode; + } + if (!containerIsTarget) { + return false; + } + return true; + }; + r.registerBinding(r.container, "mousedown", function mousedownHandler(e) { + if (!eventInContainer(e)) { + return; + } + e.preventDefault(); + blurActiveDomElement(); + r.hoverData.capture = true; + r.hoverData.which = e.which; + var cy = r.cy; + var gpos = [e.clientX, e.clientY]; + var pos = r.projectIntoViewport(gpos[0], gpos[1]); + var select = r.selection; + var nears = r.findNearestElements(pos[0], pos[1], true, false); + var near = nears[0]; + var draggedElements = r.dragData.possibleDragElements; + r.hoverData.mdownPos = pos; + r.hoverData.mdownGPos = gpos; + var checkForTaphold = function checkForTaphold2() { + r.hoverData.tapholdCancelled = false; + clearTimeout(r.hoverData.tapholdTimeout); + r.hoverData.tapholdTimeout = setTimeout(function() { + if (r.hoverData.tapholdCancelled) { + return; + } else { + var ele = r.hoverData.down; + if (ele) { + ele.emit({ + originalEvent: e, + type: "taphold", + position: { + x: pos[0], + y: pos[1] + } + }); + } else { + cy.emit({ + originalEvent: e, + type: "taphold", + position: { + x: pos[0], + y: pos[1] + } + }); + } + } + }, r.tapholdDuration); + }; + if (e.which == 3) { + r.hoverData.cxtStarted = true; + var cxtEvt = { + originalEvent: e, + type: "cxttapstart", + position: { + x: pos[0], + y: pos[1] + } + }; + if (near) { + near.activate(); + near.emit(cxtEvt); + r.hoverData.down = near; + } else { + cy.emit(cxtEvt); + } + r.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime(); + r.hoverData.cxtDragged = false; + } else if (e.which == 1) { + if (near) { + near.activate(); + } + { + if (near != null) { + if (r.nodeIsGrabbable(near)) { + var makeEvent = function makeEvent2(type) { + return { + originalEvent: e, + type, + position: { + x: pos[0], + y: pos[1] + } + }; + }; + var triggerGrab = function triggerGrab2(ele) { + ele.emit(makeEvent("grab")); + }; + setGrabTarget(near); + if (!near.selected()) { + draggedElements = r.dragData.possibleDragElements = cy.collection(); + addNodeToDrag(near, { + addToList: draggedElements + }); + near.emit(makeEvent("grabon")).emit(makeEvent("grab")); + } else { + draggedElements = r.dragData.possibleDragElements = cy.collection(); + var selectedNodes = cy.$(function(ele) { + return ele.isNode() && ele.selected() && r.nodeIsGrabbable(ele); + }); + addNodesToDrag(selectedNodes, { + addToList: draggedElements + }); + near.emit(makeEvent("grabon")); + selectedNodes.forEach(triggerGrab); + } + r.redrawHint("eles", true); + r.redrawHint("drag", true); + } + } + r.hoverData.down = near; + r.hoverData.downs = nears; + r.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime(); + } + triggerEvents(near, ["mousedown", "tapstart", "vmousedown"], e, { + x: pos[0], + y: pos[1] + }); + if (near == null) { + select[4] = 1; + r.data.bgActivePosistion = { + x: pos[0], + y: pos[1] + }; + r.redrawHint("select", true); + r.redraw(); + } else if (near.pannable()) { + select[4] = 1; + } + checkForTaphold(); + } + select[0] = select[2] = pos[0]; + select[1] = select[3] = pos[1]; + }, false); + r.registerBinding(containerWindow, "mousemove", function mousemoveHandler(e) { + var capture = r.hoverData.capture; + if (!capture && !eventInContainer(e)) { + return; + } + var preventDefault = false; + var cy = r.cy; + var zoom = cy.zoom(); + var gpos = [e.clientX, e.clientY]; + var pos = r.projectIntoViewport(gpos[0], gpos[1]); + var mdownPos = r.hoverData.mdownPos; + var mdownGPos = r.hoverData.mdownGPos; + var select = r.selection; + var near = null; + if (!r.hoverData.draggingEles && !r.hoverData.dragging && !r.hoverData.selecting) { + near = r.findNearestElement(pos[0], pos[1], true, false); + } + var last = r.hoverData.last; + var down = r.hoverData.down; + var disp = [pos[0] - select[2], pos[1] - select[3]]; + var draggedElements = r.dragData.possibleDragElements; + var isOverThresholdDrag; + if (mdownGPos) { + var dx = gpos[0] - mdownGPos[0]; + var dx2 = dx * dx; + var dy = gpos[1] - mdownGPos[1]; + var dy2 = dy * dy; + var dist2 = dx2 + dy2; + r.hoverData.isOverThresholdDrag = isOverThresholdDrag = dist2 >= r.desktopTapThreshold2; + } + var multSelKeyDown = isMultSelKeyDown(e); + if (isOverThresholdDrag) { + r.hoverData.tapholdCancelled = true; + } + var updateDragDelta = function updateDragDelta2() { + var dragDelta2 = r.hoverData.dragDelta = r.hoverData.dragDelta || []; + if (dragDelta2.length === 0) { + dragDelta2.push(disp[0]); + dragDelta2.push(disp[1]); + } else { + dragDelta2[0] += disp[0]; + dragDelta2[1] += disp[1]; + } + }; + preventDefault = true; + triggerEvents(near, ["mousemove", "vmousemove", "tapdrag"], e, { + x: pos[0], + y: pos[1] + }); + var goIntoBoxMode = function goIntoBoxMode2() { + r.data.bgActivePosistion = void 0; + if (!r.hoverData.selecting) { + cy.emit({ + originalEvent: e, + type: "boxstart", + position: { + x: pos[0], + y: pos[1] + } + }); + } + select[4] = 1; + r.hoverData.selecting = true; + r.redrawHint("select", true); + r.redraw(); + }; + if (r.hoverData.which === 3) { + if (isOverThresholdDrag) { + var cxtEvt = { + originalEvent: e, + type: "cxtdrag", + position: { + x: pos[0], + y: pos[1] + } + }; + if (down) { + down.emit(cxtEvt); + } else { + cy.emit(cxtEvt); + } + r.hoverData.cxtDragged = true; + if (!r.hoverData.cxtOver || near !== r.hoverData.cxtOver) { + if (r.hoverData.cxtOver) { + r.hoverData.cxtOver.emit({ + originalEvent: e, + type: "cxtdragout", + position: { + x: pos[0], + y: pos[1] + } + }); + } + r.hoverData.cxtOver = near; + if (near) { + near.emit({ + originalEvent: e, + type: "cxtdragover", + position: { + x: pos[0], + y: pos[1] + } + }); + } + } + } + } else if (r.hoverData.dragging) { + preventDefault = true; + if (cy.panningEnabled() && cy.userPanningEnabled()) { + var deltaP; + if (r.hoverData.justStartedPan) { + var mdPos = r.hoverData.mdownPos; + deltaP = { + x: (pos[0] - mdPos[0]) * zoom, + y: (pos[1] - mdPos[1]) * zoom + }; + r.hoverData.justStartedPan = false; + } else { + deltaP = { + x: disp[0] * zoom, + y: disp[1] * zoom + }; + } + cy.panBy(deltaP); + cy.emit("dragpan"); + r.hoverData.dragged = true; + } + pos = r.projectIntoViewport(e.clientX, e.clientY); + } else if (select[4] == 1 && (down == null || down.pannable())) { + if (isOverThresholdDrag) { + if (!r.hoverData.dragging && cy.boxSelectionEnabled() && (multSelKeyDown || !cy.panningEnabled() || !cy.userPanningEnabled())) { + goIntoBoxMode(); + } else if (!r.hoverData.selecting && cy.panningEnabled() && cy.userPanningEnabled()) { + var allowPassthrough = allowPanningPassthrough(down, r.hoverData.downs); + if (allowPassthrough) { + r.hoverData.dragging = true; + r.hoverData.justStartedPan = true; + select[4] = 0; + r.data.bgActivePosistion = array2point(mdownPos); + r.redrawHint("select", true); + r.redraw(); + } + } + if (down && down.pannable() && down.active()) { + down.unactivate(); + } + } + } else { + if (down && down.pannable() && down.active()) { + down.unactivate(); + } + if ((!down || !down.grabbed()) && near != last) { + if (last) { + triggerEvents(last, ["mouseout", "tapdragout"], e, { + x: pos[0], + y: pos[1] + }); + } + if (near) { + triggerEvents(near, ["mouseover", "tapdragover"], e, { + x: pos[0], + y: pos[1] + }); + } + r.hoverData.last = near; + } + if (down) { + if (isOverThresholdDrag) { + if (cy.boxSelectionEnabled() && multSelKeyDown) { + if (down && down.grabbed()) { + freeDraggedElements(draggedElements); + down.emit("freeon"); + draggedElements.emit("free"); + if (r.dragData.didDrag) { + down.emit("dragfreeon"); + draggedElements.emit("dragfree"); + } + } + goIntoBoxMode(); + } else if (down && down.grabbed() && r.nodeIsDraggable(down)) { + var justStartedDrag = !r.dragData.didDrag; + if (justStartedDrag) { + r.redrawHint("eles", true); + } + r.dragData.didDrag = true; + if (!r.hoverData.draggingEles) { + addNodesToDrag(draggedElements, { + inDragLayer: true + }); + } + var totalShift = { + x: 0, + y: 0 + }; + if (number$1(disp[0]) && number$1(disp[1])) { + totalShift.x += disp[0]; + totalShift.y += disp[1]; + if (justStartedDrag) { + var dragDelta = r.hoverData.dragDelta; + if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) { + totalShift.x += dragDelta[0]; + totalShift.y += dragDelta[1]; + } + } + } + r.hoverData.draggingEles = true; + draggedElements.silentShift(totalShift).emit("position drag"); + r.redrawHint("drag", true); + r.redraw(); + } + } else { + updateDragDelta(); + } + } + preventDefault = true; + } + select[2] = pos[0]; + select[3] = pos[1]; + if (preventDefault) { + if (e.stopPropagation) + e.stopPropagation(); + if (e.preventDefault) + e.preventDefault(); + return false; + } + }, false); + var clickTimeout, didDoubleClick, prevClickTimeStamp; + r.registerBinding(containerWindow, "mouseup", function mouseupHandler(e) { + var capture = r.hoverData.capture; + if (!capture) { + return; + } + r.hoverData.capture = false; + var cy = r.cy; + var pos = r.projectIntoViewport(e.clientX, e.clientY); + var select = r.selection; + var near = r.findNearestElement(pos[0], pos[1], true, false); + var draggedElements = r.dragData.possibleDragElements; + var down = r.hoverData.down; + var multSelKeyDown = isMultSelKeyDown(e); + if (r.data.bgActivePosistion) { + r.redrawHint("select", true); + r.redraw(); + } + r.hoverData.tapholdCancelled = true; + r.data.bgActivePosistion = void 0; + if (down) { + down.unactivate(); + } + if (r.hoverData.which === 3) { + var cxtEvt = { + originalEvent: e, + type: "cxttapend", + position: { + x: pos[0], + y: pos[1] + } + }; + if (down) { + down.emit(cxtEvt); + } else { + cy.emit(cxtEvt); + } + if (!r.hoverData.cxtDragged) { + var cxtTap = { + originalEvent: e, + type: "cxttap", + position: { + x: pos[0], + y: pos[1] + } + }; + if (down) { + down.emit(cxtTap); + } else { + cy.emit(cxtTap); + } + } + r.hoverData.cxtDragged = false; + r.hoverData.which = null; + } else if (r.hoverData.which === 1) { + triggerEvents(near, ["mouseup", "tapend", "vmouseup"], e, { + x: pos[0], + y: pos[1] + }); + if (!r.dragData.didDrag && // didn't move a node around + !r.hoverData.dragged && // didn't pan + !r.hoverData.selecting && // not box selection + !r.hoverData.isOverThresholdDrag) { + triggerEvents(down, ["click", "tap", "vclick"], e, { + x: pos[0], + y: pos[1] + }); + didDoubleClick = false; + if (e.timeStamp - prevClickTimeStamp <= cy.multiClickDebounceTime()) { + clickTimeout && clearTimeout(clickTimeout); + didDoubleClick = true; + prevClickTimeStamp = null; + triggerEvents(down, ["dblclick", "dbltap", "vdblclick"], e, { + x: pos[0], + y: pos[1] + }); + } else { + clickTimeout = setTimeout(function() { + if (didDoubleClick) + return; + triggerEvents(down, ["oneclick", "onetap", "voneclick"], e, { + x: pos[0], + y: pos[1] + }); + }, cy.multiClickDebounceTime()); + prevClickTimeStamp = e.timeStamp; + } + } + if (down == null && !r.dragData.didDrag && !r.hoverData.selecting && !r.hoverData.dragged && !isMultSelKeyDown(e)) { + cy.$(isSelected).unselect(["tapunselect"]); + if (draggedElements.length > 0) { + r.redrawHint("eles", true); + } + r.dragData.possibleDragElements = draggedElements = cy.collection(); + } + if (near == down && !r.dragData.didDrag && !r.hoverData.selecting) { + if (near != null && near._private.selectable) { + if (r.hoverData.dragging) + ; + else if (cy.selectionType() === "additive" || multSelKeyDown) { + if (near.selected()) { + near.unselect(["tapunselect"]); + } else { + near.select(["tapselect"]); + } + } else { + if (!multSelKeyDown) { + cy.$(isSelected).unmerge(near).unselect(["tapunselect"]); + near.select(["tapselect"]); + } + } + r.redrawHint("eles", true); + } + } + if (r.hoverData.selecting) { + var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3])); + r.redrawHint("select", true); + if (box.length > 0) { + r.redrawHint("eles", true); + } + cy.emit({ + type: "boxend", + originalEvent: e, + position: { + x: pos[0], + y: pos[1] + } + }); + var eleWouldBeSelected = function eleWouldBeSelected2(ele) { + return ele.selectable() && !ele.selected(); + }; + if (cy.selectionType() === "additive") { + box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect"); + } else { + if (!multSelKeyDown) { + cy.$(isSelected).unmerge(box).unselect(); + } + box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect"); + } + r.redraw(); + } + if (r.hoverData.dragging) { + r.hoverData.dragging = false; + r.redrawHint("select", true); + r.redrawHint("eles", true); + r.redraw(); + } + if (!select[4]) { + r.redrawHint("drag", true); + r.redrawHint("eles", true); + var downWasGrabbed = down && down.grabbed(); + freeDraggedElements(draggedElements); + if (downWasGrabbed) { + down.emit("freeon"); + draggedElements.emit("free"); + if (r.dragData.didDrag) { + down.emit("dragfreeon"); + draggedElements.emit("dragfree"); + } + } + } + } + select[4] = 0; + r.hoverData.down = null; + r.hoverData.cxtStarted = false; + r.hoverData.draggingEles = false; + r.hoverData.selecting = false; + r.hoverData.isOverThresholdDrag = false; + r.dragData.didDrag = false; + r.hoverData.dragged = false; + r.hoverData.dragDelta = []; + r.hoverData.mdownPos = null; + r.hoverData.mdownGPos = null; + }, false); + var wheelHandler = function wheelHandler2(e) { + if (r.scrollingPage) { + return; + } + var cy = r.cy; + var zoom = cy.zoom(); + var pan = cy.pan(); + var pos = r.projectIntoViewport(e.clientX, e.clientY); + var rpos = [pos[0] * zoom + pan.x, pos[1] * zoom + pan.y]; + if (r.hoverData.draggingEles || r.hoverData.dragging || r.hoverData.cxtStarted || inBoxSelection()) { + e.preventDefault(); + return; + } + if (cy.panningEnabled() && cy.userPanningEnabled() && cy.zoomingEnabled() && cy.userZoomingEnabled()) { + e.preventDefault(); + r.data.wheelZooming = true; + clearTimeout(r.data.wheelTimeout); + r.data.wheelTimeout = setTimeout(function() { + r.data.wheelZooming = false; + r.redrawHint("eles", true); + r.redraw(); + }, 150); + var diff; + if (e.deltaY != null) { + diff = e.deltaY / -250; + } else if (e.wheelDeltaY != null) { + diff = e.wheelDeltaY / 1e3; + } else { + diff = e.wheelDelta / 1e3; + } + diff = diff * r.wheelSensitivity; + var needsWheelFix = e.deltaMode === 1; + if (needsWheelFix) { + diff *= 33; + } + var newZoom = cy.zoom() * Math.pow(10, diff); + if (e.type === "gesturechange") { + newZoom = r.gestureStartZoom * e.scale; + } + cy.zoom({ + level: newZoom, + renderedPosition: { + x: rpos[0], + y: rpos[1] + } + }); + cy.emit(e.type === "gesturechange" ? "pinchzoom" : "scrollzoom"); + } + }; + r.registerBinding(r.container, "wheel", wheelHandler, true); + r.registerBinding(containerWindow, "scroll", function scrollHandler(e) { + r.scrollingPage = true; + clearTimeout(r.scrollingPageTimeout); + r.scrollingPageTimeout = setTimeout(function() { + r.scrollingPage = false; + }, 250); + }, true); + r.registerBinding(r.container, "gesturestart", function gestureStartHandler(e) { + r.gestureStartZoom = r.cy.zoom(); + if (!r.hasTouchStarted) { + e.preventDefault(); + } + }, true); + r.registerBinding(r.container, "gesturechange", function(e) { + if (!r.hasTouchStarted) { + wheelHandler(e); + } + }, true); + r.registerBinding(r.container, "mouseout", function mouseOutHandler(e) { + var pos = r.projectIntoViewport(e.clientX, e.clientY); + r.cy.emit({ + originalEvent: e, + type: "mouseout", + position: { + x: pos[0], + y: pos[1] + } + }); + }, false); + r.registerBinding(r.container, "mouseover", function mouseOverHandler(e) { + var pos = r.projectIntoViewport(e.clientX, e.clientY); + r.cy.emit({ + originalEvent: e, + type: "mouseover", + position: { + x: pos[0], + y: pos[1] + } + }); + }, false); + var f1x1, f1y1, f2x1, f2y1; + var distance1, distance1Sq; + var center1, modelCenter1; + var offsetLeft, offsetTop; + var containerWidth, containerHeight; + var twoFingersStartInside; + var distance = function distance2(x1, y1, x2, y2) { + return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); + }; + var distanceSq = function distanceSq2(x1, y1, x2, y2) { + return (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1); + }; + var touchstartHandler; + r.registerBinding(r.container, "touchstart", touchstartHandler = function touchstartHandler2(e) { + r.hasTouchStarted = true; + if (!eventInContainer(e)) { + return; + } + blurActiveDomElement(); + r.touchData.capture = true; + r.data.bgActivePosistion = void 0; + var cy = r.cy; + var now2 = r.touchData.now; + var earlier = r.touchData.earlier; + if (e.touches[0]) { + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now2[0] = pos[0]; + now2[1] = pos[1]; + } + if (e.touches[1]) { + var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); + now2[2] = pos[0]; + now2[3] = pos[1]; + } + if (e.touches[2]) { + var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); + now2[4] = pos[0]; + now2[5] = pos[1]; + } + if (e.touches[1]) { + r.touchData.singleTouchMoved = true; + freeDraggedElements(r.dragData.touchDragEles); + var offsets = r.findContainerClientCoords(); + offsetLeft = offsets[0]; + offsetTop = offsets[1]; + containerWidth = offsets[2]; + containerHeight = offsets[3]; + f1x1 = e.touches[0].clientX - offsetLeft; + f1y1 = e.touches[0].clientY - offsetTop; + f2x1 = e.touches[1].clientX - offsetLeft; + f2y1 = e.touches[1].clientY - offsetTop; + twoFingersStartInside = 0 <= f1x1 && f1x1 <= containerWidth && 0 <= f2x1 && f2x1 <= containerWidth && 0 <= f1y1 && f1y1 <= containerHeight && 0 <= f2y1 && f2y1 <= containerHeight; + var pan = cy.pan(); + var zoom = cy.zoom(); + distance1 = distance(f1x1, f1y1, f2x1, f2y1); + distance1Sq = distanceSq(f1x1, f1y1, f2x1, f2y1); + center1 = [(f1x1 + f2x1) / 2, (f1y1 + f2y1) / 2]; + modelCenter1 = [(center1[0] - pan.x) / zoom, (center1[1] - pan.y) / zoom]; + var cxtDistThreshold = 200; + var cxtDistThresholdSq = cxtDistThreshold * cxtDistThreshold; + if (distance1Sq < cxtDistThresholdSq && !e.touches[2]) { + var near1 = r.findNearestElement(now2[0], now2[1], true, true); + var near2 = r.findNearestElement(now2[2], now2[3], true, true); + if (near1 && near1.isNode()) { + near1.activate().emit({ + originalEvent: e, + type: "cxttapstart", + position: { + x: now2[0], + y: now2[1] + } + }); + r.touchData.start = near1; + } else if (near2 && near2.isNode()) { + near2.activate().emit({ + originalEvent: e, + type: "cxttapstart", + position: { + x: now2[0], + y: now2[1] + } + }); + r.touchData.start = near2; + } else { + cy.emit({ + originalEvent: e, + type: "cxttapstart", + position: { + x: now2[0], + y: now2[1] + } + }); + } + if (r.touchData.start) { + r.touchData.start._private.grabbed = false; + } + r.touchData.cxt = true; + r.touchData.cxtDragged = false; + r.data.bgActivePosistion = void 0; + r.redraw(); + return; + } + } + if (e.touches[2]) { + if (cy.boxSelectionEnabled()) { + e.preventDefault(); + } + } else if (e.touches[1]) + ; + else if (e.touches[0]) { + var nears = r.findNearestElements(now2[0], now2[1], true, true); + var near = nears[0]; + if (near != null) { + near.activate(); + r.touchData.start = near; + r.touchData.starts = nears; + if (r.nodeIsGrabbable(near)) { + var draggedEles = r.dragData.touchDragEles = cy.collection(); + var selectedNodes = null; + r.redrawHint("eles", true); + r.redrawHint("drag", true); + if (near.selected()) { + selectedNodes = cy.$(function(ele) { + return ele.selected() && r.nodeIsGrabbable(ele); + }); + addNodesToDrag(selectedNodes, { + addToList: draggedEles + }); + } else { + addNodeToDrag(near, { + addToList: draggedEles + }); + } + setGrabTarget(near); + var makeEvent = function makeEvent2(type) { + return { + originalEvent: e, + type, + position: { + x: now2[0], + y: now2[1] + } + }; + }; + near.emit(makeEvent("grabon")); + if (selectedNodes) { + selectedNodes.forEach(function(n) { + n.emit(makeEvent("grab")); + }); + } else { + near.emit(makeEvent("grab")); + } + } + } + triggerEvents(near, ["touchstart", "tapstart", "vmousedown"], e, { + x: now2[0], + y: now2[1] + }); + if (near == null) { + r.data.bgActivePosistion = { + x: pos[0], + y: pos[1] + }; + r.redrawHint("select", true); + r.redraw(); + } + r.touchData.singleTouchMoved = false; + r.touchData.singleTouchStartTime = +/* @__PURE__ */ new Date(); + clearTimeout(r.touchData.tapholdTimeout); + r.touchData.tapholdTimeout = setTimeout(function() { + if (r.touchData.singleTouchMoved === false && !r.pinching && !r.touchData.selecting) { + triggerEvents(r.touchData.start, ["taphold"], e, { + x: now2[0], + y: now2[1] + }); + } + }, r.tapholdDuration); + } + if (e.touches.length >= 1) { + var sPos = r.touchData.startPosition = [null, null, null, null, null, null]; + for (var i2 = 0; i2 < now2.length; i2++) { + sPos[i2] = earlier[i2] = now2[i2]; + } + var touch0 = e.touches[0]; + r.touchData.startGPosition = [touch0.clientX, touch0.clientY]; + } + }, false); + var touchmoveHandler; + r.registerBinding(window, "touchmove", touchmoveHandler = function touchmoveHandler2(e) { + var capture = r.touchData.capture; + if (!capture && !eventInContainer(e)) { + return; + } + var select = r.selection; + var cy = r.cy; + var now2 = r.touchData.now; + var earlier = r.touchData.earlier; + var zoom = cy.zoom(); + if (e.touches[0]) { + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now2[0] = pos[0]; + now2[1] = pos[1]; + } + if (e.touches[1]) { + var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); + now2[2] = pos[0]; + now2[3] = pos[1]; + } + if (e.touches[2]) { + var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); + now2[4] = pos[0]; + now2[5] = pos[1]; + } + var startGPos = r.touchData.startGPosition; + var isOverThresholdDrag; + if (capture && e.touches[0] && startGPos) { + var disp = []; + for (var j = 0; j < now2.length; j++) { + disp[j] = now2[j] - earlier[j]; + } + var dx = e.touches[0].clientX - startGPos[0]; + var dx2 = dx * dx; + var dy = e.touches[0].clientY - startGPos[1]; + var dy2 = dy * dy; + var dist2 = dx2 + dy2; + isOverThresholdDrag = dist2 >= r.touchTapThreshold2; + } + if (capture && r.touchData.cxt) { + e.preventDefault(); + var f1x2 = e.touches[0].clientX - offsetLeft, f1y2 = e.touches[0].clientY - offsetTop; + var f2x2 = e.touches[1].clientX - offsetLeft, f2y2 = e.touches[1].clientY - offsetTop; + var distance2Sq = distanceSq(f1x2, f1y2, f2x2, f2y2); + var factorSq = distance2Sq / distance1Sq; + var distThreshold = 150; + var distThresholdSq = distThreshold * distThreshold; + var factorThreshold = 1.5; + var factorThresholdSq = factorThreshold * factorThreshold; + if (factorSq >= factorThresholdSq || distance2Sq >= distThresholdSq) { + r.touchData.cxt = false; + r.data.bgActivePosistion = void 0; + r.redrawHint("select", true); + var cxtEvt = { + originalEvent: e, + type: "cxttapend", + position: { + x: now2[0], + y: now2[1] + } + }; + if (r.touchData.start) { + r.touchData.start.unactivate().emit(cxtEvt); + r.touchData.start = null; + } else { + cy.emit(cxtEvt); + } + } + } + if (capture && r.touchData.cxt) { + var cxtEvt = { + originalEvent: e, + type: "cxtdrag", + position: { + x: now2[0], + y: now2[1] + } + }; + r.data.bgActivePosistion = void 0; + r.redrawHint("select", true); + if (r.touchData.start) { + r.touchData.start.emit(cxtEvt); + } else { + cy.emit(cxtEvt); + } + if (r.touchData.start) { + r.touchData.start._private.grabbed = false; + } + r.touchData.cxtDragged = true; + var near = r.findNearestElement(now2[0], now2[1], true, true); + if (!r.touchData.cxtOver || near !== r.touchData.cxtOver) { + if (r.touchData.cxtOver) { + r.touchData.cxtOver.emit({ + originalEvent: e, + type: "cxtdragout", + position: { + x: now2[0], + y: now2[1] + } + }); + } + r.touchData.cxtOver = near; + if (near) { + near.emit({ + originalEvent: e, + type: "cxtdragover", + position: { + x: now2[0], + y: now2[1] + } + }); + } + } + } else if (capture && e.touches[2] && cy.boxSelectionEnabled()) { + e.preventDefault(); + r.data.bgActivePosistion = void 0; + this.lastThreeTouch = +/* @__PURE__ */ new Date(); + if (!r.touchData.selecting) { + cy.emit({ + originalEvent: e, + type: "boxstart", + position: { + x: now2[0], + y: now2[1] + } + }); + } + r.touchData.selecting = true; + r.touchData.didSelect = true; + select[4] = 1; + if (!select || select.length === 0 || select[0] === void 0) { + select[0] = (now2[0] + now2[2] + now2[4]) / 3; + select[1] = (now2[1] + now2[3] + now2[5]) / 3; + select[2] = (now2[0] + now2[2] + now2[4]) / 3 + 1; + select[3] = (now2[1] + now2[3] + now2[5]) / 3 + 1; + } else { + select[2] = (now2[0] + now2[2] + now2[4]) / 3; + select[3] = (now2[1] + now2[3] + now2[5]) / 3; + } + r.redrawHint("select", true); + r.redraw(); + } else if (capture && e.touches[1] && !r.touchData.didSelect && cy.zoomingEnabled() && cy.panningEnabled() && cy.userZoomingEnabled() && cy.userPanningEnabled()) { + e.preventDefault(); + r.data.bgActivePosistion = void 0; + r.redrawHint("select", true); + var draggedEles = r.dragData.touchDragEles; + if (draggedEles) { + r.redrawHint("drag", true); + for (var i2 = 0; i2 < draggedEles.length; i2++) { + var de_p = draggedEles[i2]._private; + de_p.grabbed = false; + de_p.rscratch.inDragLayer = false; + } + } + var _start = r.touchData.start; + var f1x2 = e.touches[0].clientX - offsetLeft, f1y2 = e.touches[0].clientY - offsetTop; + var f2x2 = e.touches[1].clientX - offsetLeft, f2y2 = e.touches[1].clientY - offsetTop; + var distance2 = distance(f1x2, f1y2, f2x2, f2y2); + var factor = distance2 / distance1; + if (twoFingersStartInside) { + var df1x = f1x2 - f1x1; + var df1y = f1y2 - f1y1; + var df2x = f2x2 - f2x1; + var df2y = f2y2 - f2y1; + var tx = (df1x + df2x) / 2; + var ty = (df1y + df2y) / 2; + var zoom1 = cy.zoom(); + var zoom2 = zoom1 * factor; + var pan1 = cy.pan(); + var ctrx = modelCenter1[0] * zoom1 + pan1.x; + var ctry = modelCenter1[1] * zoom1 + pan1.y; + var pan2 = { + x: -zoom2 / zoom1 * (ctrx - pan1.x - tx) + ctrx, + y: -zoom2 / zoom1 * (ctry - pan1.y - ty) + ctry + }; + if (_start && _start.active()) { + var draggedEles = r.dragData.touchDragEles; + freeDraggedElements(draggedEles); + r.redrawHint("drag", true); + r.redrawHint("eles", true); + _start.unactivate().emit("freeon"); + draggedEles.emit("free"); + if (r.dragData.didDrag) { + _start.emit("dragfreeon"); + draggedEles.emit("dragfree"); + } + } + cy.viewport({ + zoom: zoom2, + pan: pan2, + cancelOnFailedZoom: true + }); + cy.emit("pinchzoom"); + distance1 = distance2; + f1x1 = f1x2; + f1y1 = f1y2; + f2x1 = f2x2; + f2y1 = f2y2; + r.pinching = true; + } + if (e.touches[0]) { + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now2[0] = pos[0]; + now2[1] = pos[1]; + } + if (e.touches[1]) { + var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); + now2[2] = pos[0]; + now2[3] = pos[1]; + } + if (e.touches[2]) { + var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); + now2[4] = pos[0]; + now2[5] = pos[1]; + } + } else if (e.touches[0] && !r.touchData.didSelect) { + var start = r.touchData.start; + var last = r.touchData.last; + var near; + if (!r.hoverData.draggingEles && !r.swipePanning) { + near = r.findNearestElement(now2[0], now2[1], true, true); + } + if (capture && start != null) { + e.preventDefault(); + } + if (capture && start != null && r.nodeIsDraggable(start)) { + if (isOverThresholdDrag) { + var draggedEles = r.dragData.touchDragEles; + var justStartedDrag = !r.dragData.didDrag; + if (justStartedDrag) { + addNodesToDrag(draggedEles, { + inDragLayer: true + }); + } + r.dragData.didDrag = true; + var totalShift = { + x: 0, + y: 0 + }; + if (number$1(disp[0]) && number$1(disp[1])) { + totalShift.x += disp[0]; + totalShift.y += disp[1]; + if (justStartedDrag) { + r.redrawHint("eles", true); + var dragDelta = r.touchData.dragDelta; + if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) { + totalShift.x += dragDelta[0]; + totalShift.y += dragDelta[1]; + } + } + } + r.hoverData.draggingEles = true; + draggedEles.silentShift(totalShift).emit("position drag"); + r.redrawHint("drag", true); + if (r.touchData.startPosition[0] == earlier[0] && r.touchData.startPosition[1] == earlier[1]) { + r.redrawHint("eles", true); + } + r.redraw(); + } else { + var dragDelta = r.touchData.dragDelta = r.touchData.dragDelta || []; + if (dragDelta.length === 0) { + dragDelta.push(disp[0]); + dragDelta.push(disp[1]); + } else { + dragDelta[0] += disp[0]; + dragDelta[1] += disp[1]; + } + } + } + { + triggerEvents(start || near, ["touchmove", "tapdrag", "vmousemove"], e, { + x: now2[0], + y: now2[1] + }); + if ((!start || !start.grabbed()) && near != last) { + if (last) { + last.emit({ + originalEvent: e, + type: "tapdragout", + position: { + x: now2[0], + y: now2[1] + } + }); + } + if (near) { + near.emit({ + originalEvent: e, + type: "tapdragover", + position: { + x: now2[0], + y: now2[1] + } + }); + } + } + r.touchData.last = near; + } + if (capture) { + for (var i2 = 0; i2 < now2.length; i2++) { + if (now2[i2] && r.touchData.startPosition[i2] && isOverThresholdDrag) { + r.touchData.singleTouchMoved = true; + } + } + } + if (capture && (start == null || start.pannable()) && cy.panningEnabled() && cy.userPanningEnabled()) { + var allowPassthrough = allowPanningPassthrough(start, r.touchData.starts); + if (allowPassthrough) { + e.preventDefault(); + if (!r.data.bgActivePosistion) { + r.data.bgActivePosistion = array2point(r.touchData.startPosition); + } + if (r.swipePanning) { + cy.panBy({ + x: disp[0] * zoom, + y: disp[1] * zoom + }); + cy.emit("dragpan"); + } else if (isOverThresholdDrag) { + r.swipePanning = true; + cy.panBy({ + x: dx * zoom, + y: dy * zoom + }); + cy.emit("dragpan"); + if (start) { + start.unactivate(); + r.redrawHint("select", true); + r.touchData.start = null; + } + } + } + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now2[0] = pos[0]; + now2[1] = pos[1]; + } + } + for (var j = 0; j < now2.length; j++) { + earlier[j] = now2[j]; + } + if (capture && e.touches.length > 0 && !r.hoverData.draggingEles && !r.swipePanning && r.data.bgActivePosistion != null) { + r.data.bgActivePosistion = void 0; + r.redrawHint("select", true); + r.redraw(); + } + }, false); + var touchcancelHandler; + r.registerBinding(containerWindow, "touchcancel", touchcancelHandler = function touchcancelHandler2(e) { + var start = r.touchData.start; + r.touchData.capture = false; + if (start) { + start.unactivate(); + } + }); + var touchendHandler, didDoubleTouch, touchTimeout, prevTouchTimeStamp; + r.registerBinding(containerWindow, "touchend", touchendHandler = function touchendHandler2(e) { + var start = r.touchData.start; + var capture = r.touchData.capture; + if (capture) { + if (e.touches.length === 0) { + r.touchData.capture = false; + } + e.preventDefault(); + } else { + return; + } + var select = r.selection; + r.swipePanning = false; + r.hoverData.draggingEles = false; + var cy = r.cy; + var zoom = cy.zoom(); + var now2 = r.touchData.now; + var earlier = r.touchData.earlier; + if (e.touches[0]) { + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now2[0] = pos[0]; + now2[1] = pos[1]; + } + if (e.touches[1]) { + var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); + now2[2] = pos[0]; + now2[3] = pos[1]; + } + if (e.touches[2]) { + var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); + now2[4] = pos[0]; + now2[5] = pos[1]; + } + if (start) { + start.unactivate(); + } + var ctxTapend; + if (r.touchData.cxt) { + ctxTapend = { + originalEvent: e, + type: "cxttapend", + position: { + x: now2[0], + y: now2[1] + } + }; + if (start) { + start.emit(ctxTapend); + } else { + cy.emit(ctxTapend); + } + if (!r.touchData.cxtDragged) { + var ctxTap = { + originalEvent: e, + type: "cxttap", + position: { + x: now2[0], + y: now2[1] + } + }; + if (start) { + start.emit(ctxTap); + } else { + cy.emit(ctxTap); + } + } + if (r.touchData.start) { + r.touchData.start._private.grabbed = false; + } + r.touchData.cxt = false; + r.touchData.start = null; + r.redraw(); + return; + } + if (!e.touches[2] && cy.boxSelectionEnabled() && r.touchData.selecting) { + r.touchData.selecting = false; + var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3])); + select[0] = void 0; + select[1] = void 0; + select[2] = void 0; + select[3] = void 0; + select[4] = 0; + r.redrawHint("select", true); + cy.emit({ + type: "boxend", + originalEvent: e, + position: { + x: now2[0], + y: now2[1] + } + }); + var eleWouldBeSelected = function eleWouldBeSelected2(ele) { + return ele.selectable() && !ele.selected(); + }; + box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect"); + if (box.nonempty()) { + r.redrawHint("eles", true); + } + r.redraw(); + } + if (start != null) { + start.unactivate(); + } + if (e.touches[2]) { + r.data.bgActivePosistion = void 0; + r.redrawHint("select", true); + } else if (e.touches[1]) + ; + else if (e.touches[0]) + ; + else if (!e.touches[0]) { + r.data.bgActivePosistion = void 0; + r.redrawHint("select", true); + var draggedEles = r.dragData.touchDragEles; + if (start != null) { + var startWasGrabbed = start._private.grabbed; + freeDraggedElements(draggedEles); + r.redrawHint("drag", true); + r.redrawHint("eles", true); + if (startWasGrabbed) { + start.emit("freeon"); + draggedEles.emit("free"); + if (r.dragData.didDrag) { + start.emit("dragfreeon"); + draggedEles.emit("dragfree"); + } + } + triggerEvents(start, ["touchend", "tapend", "vmouseup", "tapdragout"], e, { + x: now2[0], + y: now2[1] + }); + start.unactivate(); + r.touchData.start = null; + } else { + var near = r.findNearestElement(now2[0], now2[1], true, true); + triggerEvents(near, ["touchend", "tapend", "vmouseup", "tapdragout"], e, { + x: now2[0], + y: now2[1] + }); + } + var dx = r.touchData.startPosition[0] - now2[0]; + var dx2 = dx * dx; + var dy = r.touchData.startPosition[1] - now2[1]; + var dy2 = dy * dy; + var dist2 = dx2 + dy2; + var rdist2 = dist2 * zoom * zoom; + if (!r.touchData.singleTouchMoved) { + if (!start) { + cy.$(":selected").unselect(["tapunselect"]); + } + triggerEvents(start, ["tap", "vclick"], e, { + x: now2[0], + y: now2[1] + }); + didDoubleTouch = false; + if (e.timeStamp - prevTouchTimeStamp <= cy.multiClickDebounceTime()) { + touchTimeout && clearTimeout(touchTimeout); + didDoubleTouch = true; + prevTouchTimeStamp = null; + triggerEvents(start, ["dbltap", "vdblclick"], e, { + x: now2[0], + y: now2[1] + }); + } else { + touchTimeout = setTimeout(function() { + if (didDoubleTouch) + return; + triggerEvents(start, ["onetap", "voneclick"], e, { + x: now2[0], + y: now2[1] + }); + }, cy.multiClickDebounceTime()); + prevTouchTimeStamp = e.timeStamp; + } + } + if (start != null && !r.dragData.didDrag && start._private.selectable && rdist2 < r.touchTapThreshold2 && !r.pinching) { + if (cy.selectionType() === "single") { + cy.$(isSelected).unmerge(start).unselect(["tapunselect"]); + start.select(["tapselect"]); + } else { + if (start.selected()) { + start.unselect(["tapunselect"]); + } else { + start.select(["tapselect"]); + } + } + r.redrawHint("eles", true); + } + r.touchData.singleTouchMoved = true; + } + for (var j = 0; j < now2.length; j++) { + earlier[j] = now2[j]; + } + r.dragData.didDrag = false; + if (e.touches.length === 0) { + r.touchData.dragDelta = []; + r.touchData.startPosition = [null, null, null, null, null, null]; + r.touchData.startGPosition = null; + r.touchData.didSelect = false; + } + if (e.touches.length < 2) { + if (e.touches.length === 1) { + r.touchData.startGPosition = [e.touches[0].clientX, e.touches[0].clientY]; + } + r.pinching = false; + r.redrawHint("eles", true); + r.redraw(); + } + }, false); + if (typeof TouchEvent === "undefined") { + var pointers = []; + var makeTouch = function makeTouch2(e) { + return { + clientX: e.clientX, + clientY: e.clientY, + force: 1, + identifier: e.pointerId, + pageX: e.pageX, + pageY: e.pageY, + radiusX: e.width / 2, + radiusY: e.height / 2, + screenX: e.screenX, + screenY: e.screenY, + target: e.target + }; + }; + var makePointer = function makePointer2(e) { + return { + event: e, + touch: makeTouch(e) + }; + }; + var addPointer = function addPointer2(e) { + pointers.push(makePointer(e)); + }; + var removePointer = function removePointer2(e) { + for (var i2 = 0; i2 < pointers.length; i2++) { + var p2 = pointers[i2]; + if (p2.event.pointerId === e.pointerId) { + pointers.splice(i2, 1); + return; + } + } + }; + var updatePointer = function updatePointer2(e) { + var p2 = pointers.filter(function(p3) { + return p3.event.pointerId === e.pointerId; + })[0]; + p2.event = e; + p2.touch = makeTouch(e); + }; + var addTouchesToEvent = function addTouchesToEvent2(e) { + e.touches = pointers.map(function(p2) { + return p2.touch; + }); + }; + var pointerIsMouse = function pointerIsMouse2(e) { + return e.pointerType === "mouse" || e.pointerType === 4; + }; + r.registerBinding(r.container, "pointerdown", function(e) { + if (pointerIsMouse(e)) { + return; + } + e.preventDefault(); + addPointer(e); + addTouchesToEvent(e); + touchstartHandler(e); + }); + r.registerBinding(r.container, "pointerup", function(e) { + if (pointerIsMouse(e)) { + return; + } + removePointer(e); + addTouchesToEvent(e); + touchendHandler(e); + }); + r.registerBinding(r.container, "pointercancel", function(e) { + if (pointerIsMouse(e)) { + return; + } + removePointer(e); + addTouchesToEvent(e); + touchcancelHandler(e); + }); + r.registerBinding(r.container, "pointermove", function(e) { + if (pointerIsMouse(e)) { + return; + } + e.preventDefault(); + updatePointer(e); + addTouchesToEvent(e); + touchmoveHandler(e); + }); + } + }; + var BRp$2 = {}; + BRp$2.generatePolygon = function(name, points) { + return this.nodeShapes[name] = { + renderer: this, + name, + points, + draw: function draw2(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl("polygon", context, centerX, centerY, width, height, this.points); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + return polygonIntersectLine(x, y, this.points, nodeX, nodeY, width / 2, height / 2, padding); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + return pointInsidePolygon(x, y, this.points, centerX, centerY, width, height, [0, -1], padding); + } + }; + }; + BRp$2.generateEllipse = function() { + return this.nodeShapes["ellipse"] = { + renderer: this, + name: "ellipse", + draw: function draw2(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + return intersectLineEllipse(x, y, nodeX, nodeY, width / 2 + padding, height / 2 + padding); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + return checkInEllipse(x, y, width, height, centerX, centerY, padding); + } + }; + }; + BRp$2.generateRoundPolygon = function(name, points) { + var allPoints = new Array(points.length * 2); + for (var i2 = 0; i2 < points.length / 2; i2++) { + var sourceIndex = i2 * 2; + var destIndex = void 0; + if (i2 < points.length / 2 - 1) { + destIndex = (i2 + 1) * 2; + } else { + destIndex = 0; + } + allPoints[i2 * 4] = points[sourceIndex]; + allPoints[i2 * 4 + 1] = points[sourceIndex + 1]; + var xDest = points[destIndex] - points[sourceIndex]; + var yDest = points[destIndex + 1] - points[sourceIndex + 1]; + var norm = Math.sqrt(xDest * xDest + yDest * yDest); + allPoints[i2 * 4 + 2] = xDest / norm; + allPoints[i2 * 4 + 3] = yDest / norm; + } + return this.nodeShapes[name] = { + renderer: this, + name, + points: allPoints, + draw: function draw2(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl("round-polygon", context, centerX, centerY, width, height, this.points); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + return roundPolygonIntersectLine(x, y, this.points, nodeX, nodeY, width, height); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + return pointInsideRoundPolygon(x, y, this.points, centerX, centerY, width, height); + } + }; + }; + BRp$2.generateRoundRectangle = function() { + return this.nodeShapes["round-rectangle"] = this.nodeShapes["roundrectangle"] = { + renderer: this, + name: "round-rectangle", + points: generateUnitNgonPointsFitToSquare(4, 0), + draw: function draw2(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + var cornerRadius = getRoundRectangleRadius(width, height); + var diam = cornerRadius * 2; + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) { + return true; + } + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) { + return true; + } + if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY - height / 2 + cornerRadius, padding)) { + return true; + } + if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY - height / 2 + cornerRadius, padding)) { + return true; + } + if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) { + return true; + } + if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) { + return true; + } + return false; + } + }; + }; + BRp$2.generateCutRectangle = function() { + return this.nodeShapes["cut-rectangle"] = this.nodeShapes["cutrectangle"] = { + renderer: this, + name: "cut-rectangle", + cornerLength: getCutRectangleCornerLength(), + points: generateUnitNgonPointsFitToSquare(4, 0), + draw: function draw2(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + generateCutTrianglePts: function generateCutTrianglePts(width, height, centerX, centerY) { + var cl = this.cornerLength; + var hh = height / 2; + var hw = width / 2; + var xBegin = centerX - hw; + var xEnd = centerX + hw; + var yBegin = centerY - hh; + var yEnd = centerY + hh; + return { + topLeft: [xBegin, yBegin + cl, xBegin + cl, yBegin, xBegin + cl, yBegin + cl], + topRight: [xEnd - cl, yBegin, xEnd, yBegin + cl, xEnd - cl, yBegin + cl], + bottomRight: [xEnd, yEnd - cl, xEnd - cl, yEnd, xEnd - cl, yEnd - cl], + bottomLeft: [xBegin + cl, yEnd, xBegin, yEnd - cl, xBegin + cl, yEnd - cl] + }; + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + var cPts = this.generateCutTrianglePts(width + 2 * padding, height + 2 * padding, nodeX, nodeY); + var pts2 = [].concat.apply([], [cPts.topLeft.splice(0, 4), cPts.topRight.splice(0, 4), cPts.bottomRight.splice(0, 4), cPts.bottomLeft.splice(0, 4)]); + return polygonIntersectLine(x, y, pts2, nodeX, nodeY); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * this.cornerLength, [0, -1], padding)) { + return true; + } + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * this.cornerLength, height, [0, -1], padding)) { + return true; + } + var cutTrianglePts = this.generateCutTrianglePts(width, height, centerX, centerY); + return pointInsidePolygonPoints(x, y, cutTrianglePts.topLeft) || pointInsidePolygonPoints(x, y, cutTrianglePts.topRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomLeft); + } + }; + }; + BRp$2.generateBarrel = function() { + return this.nodeShapes["barrel"] = { + renderer: this, + name: "barrel", + points: generateUnitNgonPointsFitToSquare(4, 0), + draw: function draw2(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + var t0 = 0.15; + var t1 = 0.5; + var t2 = 0.85; + var bPts = this.generateBarrelBezierPts(width + 2 * padding, height + 2 * padding, nodeX, nodeY); + var approximateBarrelCurvePts = function approximateBarrelCurvePts2(pts3) { + var m0 = qbezierPtAt({ + x: pts3[0], + y: pts3[1] + }, { + x: pts3[2], + y: pts3[3] + }, { + x: pts3[4], + y: pts3[5] + }, t0); + var m1 = qbezierPtAt({ + x: pts3[0], + y: pts3[1] + }, { + x: pts3[2], + y: pts3[3] + }, { + x: pts3[4], + y: pts3[5] + }, t1); + var m2 = qbezierPtAt({ + x: pts3[0], + y: pts3[1] + }, { + x: pts3[2], + y: pts3[3] + }, { + x: pts3[4], + y: pts3[5] + }, t2); + return [pts3[0], pts3[1], m0.x, m0.y, m1.x, m1.y, m2.x, m2.y, pts3[4], pts3[5]]; + }; + var pts2 = [].concat(approximateBarrelCurvePts(bPts.topLeft), approximateBarrelCurvePts(bPts.topRight), approximateBarrelCurvePts(bPts.bottomRight), approximateBarrelCurvePts(bPts.bottomLeft)); + return polygonIntersectLine(x, y, pts2, nodeX, nodeY); + }, + generateBarrelBezierPts: function generateBarrelBezierPts(width, height, centerX, centerY) { + var hh = height / 2; + var hw = width / 2; + var xBegin = centerX - hw; + var xEnd = centerX + hw; + var yBegin = centerY - hh; + var yEnd = centerY + hh; + var curveConstants = getBarrelCurveConstants(width, height); + var hOffset = curveConstants.heightOffset; + var wOffset = curveConstants.widthOffset; + var ctrlPtXOffset = curveConstants.ctrlPtOffsetPct * width; + var pts2 = { + topLeft: [xBegin, yBegin + hOffset, xBegin + ctrlPtXOffset, yBegin, xBegin + wOffset, yBegin], + topRight: [xEnd - wOffset, yBegin, xEnd - ctrlPtXOffset, yBegin, xEnd, yBegin + hOffset], + bottomRight: [xEnd, yEnd - hOffset, xEnd - ctrlPtXOffset, yEnd, xEnd - wOffset, yEnd], + bottomLeft: [xBegin + wOffset, yEnd, xBegin + ctrlPtXOffset, yEnd, xBegin, yEnd - hOffset] + }; + pts2.topLeft.isTop = true; + pts2.topRight.isTop = true; + pts2.bottomLeft.isBottom = true; + pts2.bottomRight.isBottom = true; + return pts2; + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + var curveConstants = getBarrelCurveConstants(width, height); + var hOffset = curveConstants.heightOffset; + var wOffset = curveConstants.widthOffset; + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * hOffset, [0, -1], padding)) { + return true; + } + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * wOffset, height, [0, -1], padding)) { + return true; + } + var barrelCurvePts = this.generateBarrelBezierPts(width, height, centerX, centerY); + var getCurveT = function getCurveT2(x2, y3, curvePts) { + var x0 = curvePts[4]; + var x1 = curvePts[2]; + var x22 = curvePts[0]; + var y02 = curvePts[5]; + var y22 = curvePts[1]; + var xMin = Math.min(x0, x22); + var xMax = Math.max(x0, x22); + var yMin = Math.min(y02, y22); + var yMax = Math.max(y02, y22); + if (xMin <= x2 && x2 <= xMax && yMin <= y3 && y3 <= yMax) { + var coeff = bezierPtsToQuadCoeff(x0, x1, x22); + var roots = solveQuadratic(coeff[0], coeff[1], coeff[2], x2); + var validRoots = roots.filter(function(r) { + return 0 <= r && r <= 1; + }); + if (validRoots.length > 0) { + return validRoots[0]; + } + } + return null; + }; + var curveRegions = Object.keys(barrelCurvePts); + for (var i2 = 0; i2 < curveRegions.length; i2++) { + var corner = curveRegions[i2]; + var cornerPts = barrelCurvePts[corner]; + var t = getCurveT(x, y, cornerPts); + if (t == null) { + continue; + } + var y0 = cornerPts[5]; + var y1 = cornerPts[3]; + var y2 = cornerPts[1]; + var bezY = qbezierAt(y0, y1, y2, t); + if (cornerPts.isTop && bezY <= y) { + return true; + } + if (cornerPts.isBottom && y <= bezY) { + return true; + } + } + return false; + } + }; + }; + BRp$2.generateBottomRoundrectangle = function() { + return this.nodeShapes["bottom-round-rectangle"] = this.nodeShapes["bottomroundrectangle"] = { + renderer: this, + name: "bottom-round-rectangle", + points: generateUnitNgonPointsFitToSquare(4, 0), + draw: function draw2(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + var topStartX = nodeX - (width / 2 + padding); + var topStartY = nodeY - (height / 2 + padding); + var topEndY = topStartY; + var topEndX = nodeX + (width / 2 + padding); + var topIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false); + if (topIntersections.length > 0) { + return topIntersections; + } + return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + var cornerRadius = getRoundRectangleRadius(width, height); + var diam = 2 * cornerRadius; + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) { + return true; + } + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) { + return true; + } + var outerWidth = width / 2 + 2 * padding; + var outerHeight = height / 2 + 2 * padding; + var points = [centerX - outerWidth, centerY - outerHeight, centerX - outerWidth, centerY, centerX + outerWidth, centerY, centerX + outerWidth, centerY - outerHeight]; + if (pointInsidePolygonPoints(x, y, points)) { + return true; + } + if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) { + return true; + } + if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) { + return true; + } + return false; + } + }; + }; + BRp$2.registerNodeShapes = function() { + var nodeShapes = this.nodeShapes = {}; + var renderer3 = this; + this.generateEllipse(); + this.generatePolygon("triangle", generateUnitNgonPointsFitToSquare(3, 0)); + this.generateRoundPolygon("round-triangle", generateUnitNgonPointsFitToSquare(3, 0)); + this.generatePolygon("rectangle", generateUnitNgonPointsFitToSquare(4, 0)); + nodeShapes["square"] = nodeShapes["rectangle"]; + this.generateRoundRectangle(); + this.generateCutRectangle(); + this.generateBarrel(); + this.generateBottomRoundrectangle(); + { + var diamondPoints = [0, 1, 1, 0, 0, -1, -1, 0]; + this.generatePolygon("diamond", diamondPoints); + this.generateRoundPolygon("round-diamond", diamondPoints); + } + this.generatePolygon("pentagon", generateUnitNgonPointsFitToSquare(5, 0)); + this.generateRoundPolygon("round-pentagon", generateUnitNgonPointsFitToSquare(5, 0)); + this.generatePolygon("hexagon", generateUnitNgonPointsFitToSquare(6, 0)); + this.generateRoundPolygon("round-hexagon", generateUnitNgonPointsFitToSquare(6, 0)); + this.generatePolygon("heptagon", generateUnitNgonPointsFitToSquare(7, 0)); + this.generateRoundPolygon("round-heptagon", generateUnitNgonPointsFitToSquare(7, 0)); + this.generatePolygon("octagon", generateUnitNgonPointsFitToSquare(8, 0)); + this.generateRoundPolygon("round-octagon", generateUnitNgonPointsFitToSquare(8, 0)); + var star5Points = new Array(20); + { + var outerPoints = generateUnitNgonPoints(5, 0); + var innerPoints = generateUnitNgonPoints(5, Math.PI / 5); + var innerRadius = 0.5 * (3 - Math.sqrt(5)); + innerRadius *= 1.57; + for (var i2 = 0; i2 < innerPoints.length / 2; i2++) { + innerPoints[i2 * 2] *= innerRadius; + innerPoints[i2 * 2 + 1] *= innerRadius; + } + for (var i2 = 0; i2 < 20 / 4; i2++) { + star5Points[i2 * 4] = outerPoints[i2 * 2]; + star5Points[i2 * 4 + 1] = outerPoints[i2 * 2 + 1]; + star5Points[i2 * 4 + 2] = innerPoints[i2 * 2]; + star5Points[i2 * 4 + 3] = innerPoints[i2 * 2 + 1]; + } + } + star5Points = fitPolygonToSquare(star5Points); + this.generatePolygon("star", star5Points); + this.generatePolygon("vee", [-1, -1, 0, -0.333, 1, -1, 0, 1]); + this.generatePolygon("rhomboid", [-1, -1, 0.333, -1, 1, 1, -0.333, 1]); + this.generatePolygon("right-rhomboid", [-0.333, -1, 1, -1, 0.333, 1, -1, 1]); + this.nodeShapes["concavehexagon"] = this.generatePolygon("concave-hexagon", [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]); + { + var tagPoints = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1]; + this.generatePolygon("tag", tagPoints); + this.generateRoundPolygon("round-tag", tagPoints); + } + nodeShapes.makePolygon = function(points) { + var key = points.join("$"); + var name = "polygon-" + key; + var shape; + if (shape = this[name]) { + return shape; + } + return renderer3.generatePolygon(name, points); + }; + }; + var BRp$1 = {}; + BRp$1.timeToRender = function() { + return this.redrawTotalTime / this.redrawCount; + }; + BRp$1.redraw = function(options) { + options = options || staticEmptyObject(); + var r = this; + if (r.averageRedrawTime === void 0) { + r.averageRedrawTime = 0; + } + if (r.lastRedrawTime === void 0) { + r.lastRedrawTime = 0; + } + if (r.lastDrawTime === void 0) { + r.lastDrawTime = 0; + } + r.requestedFrame = true; + r.renderOptions = options; + }; + BRp$1.beforeRender = function(fn2, priority) { + if (this.destroyed) { + return; + } + if (priority == null) { + error("Priority is not optional for beforeRender"); + } + var cbs = this.beforeRenderCallbacks; + cbs.push({ + fn: fn2, + priority + }); + cbs.sort(function(a, b) { + return b.priority - a.priority; + }); + }; + var beforeRenderCallbacks = function beforeRenderCallbacks2(r, willDraw, startTime) { + var cbs = r.beforeRenderCallbacks; + for (var i2 = 0; i2 < cbs.length; i2++) { + cbs[i2].fn(willDraw, startTime); + } + }; + BRp$1.startRenderLoop = function() { + var r = this; + var cy = r.cy; + if (r.renderLoopStarted) { + return; + } else { + r.renderLoopStarted = true; + } + var renderFn = function renderFn2(requestTime) { + if (r.destroyed) { + return; + } + if (cy.batching()) + ; + else if (r.requestedFrame && !r.skipFrame) { + beforeRenderCallbacks(r, true, requestTime); + var startTime = performanceNow(); + r.render(r.renderOptions); + var endTime = r.lastDrawTime = performanceNow(); + if (r.averageRedrawTime === void 0) { + r.averageRedrawTime = endTime - startTime; + } + if (r.redrawCount === void 0) { + r.redrawCount = 0; + } + r.redrawCount++; + if (r.redrawTotalTime === void 0) { + r.redrawTotalTime = 0; + } + var duration = endTime - startTime; + r.redrawTotalTime += duration; + r.lastRedrawTime = duration; + r.averageRedrawTime = r.averageRedrawTime / 2 + duration / 2; + r.requestedFrame = false; + } else { + beforeRenderCallbacks(r, false, requestTime); + } + r.skipFrame = false; + requestAnimationFrame2(renderFn2); + }; + requestAnimationFrame2(renderFn); + }; + var BaseRenderer = function BaseRenderer2(options) { + this.init(options); + }; + var BR = BaseRenderer; + var BRp = BR.prototype; + BRp.clientFunctions = ["redrawHint", "render", "renderTo", "matchCanvasSize", "nodeShapeImpl", "arrowShapeImpl"]; + BRp.init = function(options) { + var r = this; + r.options = options; + r.cy = options.cy; + var ctr = r.container = options.cy.container(); + var containerWindow = r.cy.window(); + if (containerWindow) { + var document2 = containerWindow.document; + var head = document2.head; + var stylesheetId = "__________cytoscape_stylesheet"; + var className = "__________cytoscape_container"; + var stylesheetAlreadyExists = document2.getElementById(stylesheetId) != null; + if (ctr.className.indexOf(className) < 0) { + ctr.className = (ctr.className || "") + " " + className; + } + if (!stylesheetAlreadyExists) { + var stylesheet2 = document2.createElement("style"); + stylesheet2.id = stylesheetId; + stylesheet2.textContent = "." + className + " { position: relative; }"; + head.insertBefore(stylesheet2, head.children[0]); + } + var computedStyle = containerWindow.getComputedStyle(ctr); + var position2 = computedStyle.getPropertyValue("position"); + if (position2 === "static") { + warn("A Cytoscape container has style position:static and so can not use UI extensions properly"); + } + } + r.selection = [void 0, void 0, void 0, void 0, 0]; + r.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95]; + r.hoverData = { + down: null, + last: null, + downTime: null, + triggerMode: null, + dragging: false, + initialPan: [null, null], + capture: false + }; + r.dragData = { + possibleDragElements: [] + }; + r.touchData = { + start: null, + capture: false, + // These 3 fields related to tap, taphold events + startPosition: [null, null, null, null, null, null], + singleTouchStartTime: null, + singleTouchMoved: true, + now: [null, null, null, null, null, null], + earlier: [null, null, null, null, null, null] + }; + r.redraws = 0; + r.showFps = options.showFps; + r.debug = options.debug; + r.hideEdgesOnViewport = options.hideEdgesOnViewport; + r.textureOnViewport = options.textureOnViewport; + r.wheelSensitivity = options.wheelSensitivity; + r.motionBlurEnabled = options.motionBlur; + r.forcedPixelRatio = number$1(options.pixelRatio) ? options.pixelRatio : null; + r.motionBlur = options.motionBlur; + r.motionBlurOpacity = options.motionBlurOpacity; + r.motionBlurTransparency = 1 - r.motionBlurOpacity; + r.motionBlurPxRatio = 1; + r.mbPxRBlurry = 1; + r.minMbLowQualFrames = 4; + r.fullQualityMb = false; + r.clearedForMotionBlur = []; + r.desktopTapThreshold = options.desktopTapThreshold; + r.desktopTapThreshold2 = options.desktopTapThreshold * options.desktopTapThreshold; + r.touchTapThreshold = options.touchTapThreshold; + r.touchTapThreshold2 = options.touchTapThreshold * options.touchTapThreshold; + r.tapholdDuration = 500; + r.bindings = []; + r.beforeRenderCallbacks = []; + r.beforeRenderPriorities = { + // higher priority execs before lower one + animations: 400, + eleCalcs: 300, + eleTxrDeq: 200, + lyrTxrDeq: 150, + lyrTxrSkip: 100 + }; + r.registerNodeShapes(); + r.registerArrowShapes(); + r.registerCalculationListeners(); + }; + BRp.notify = function(eventName, eles) { + var r = this; + var cy = r.cy; + if (this.destroyed) { + return; + } + if (eventName === "init") { + r.load(); + return; + } + if (eventName === "destroy") { + r.destroy(); + return; + } + if (eventName === "add" || eventName === "remove" || eventName === "move" && cy.hasCompoundNodes() || eventName === "load" || eventName === "zorder" || eventName === "mount") { + r.invalidateCachedZSortedEles(); + } + if (eventName === "viewport") { + r.redrawHint("select", true); + } + if (eventName === "load" || eventName === "resize" || eventName === "mount") { + r.invalidateContainerClientCoordsCache(); + r.matchCanvasSize(r.container); + } + r.redrawHint("eles", true); + r.redrawHint("drag", true); + this.startRenderLoop(); + this.redraw(); + }; + BRp.destroy = function() { + var r = this; + r.destroyed = true; + r.cy.stopAnimationLoop(); + for (var i2 = 0; i2 < r.bindings.length; i2++) { + var binding = r.bindings[i2]; + var b = binding; + var tgt = b.target; + (tgt.off || tgt.removeEventListener).apply(tgt, b.args); + } + r.bindings = []; + r.beforeRenderCallbacks = []; + r.onUpdateEleCalcsFns = []; + if (r.removeObserver) { + r.removeObserver.disconnect(); + } + if (r.styleObserver) { + r.styleObserver.disconnect(); + } + if (r.resizeObserver) { + r.resizeObserver.disconnect(); + } + if (r.labelCalcDiv) { + try { + document.body.removeChild(r.labelCalcDiv); + } catch (e) { + } + } + }; + BRp.isHeadless = function() { + return false; + }; + [BRp$f, BRp$5, BRp$4, BRp$3, BRp$2, BRp$1].forEach(function(props) { + extend(BRp, props); + }); + var fullFpsTime = 1e3 / 60; + var defs = { + setupDequeueing: function setupDequeueing(opts) { + return function setupDequeueingImpl() { + var self2 = this; + var r = this.renderer; + if (self2.dequeueingSetup) { + return; + } else { + self2.dequeueingSetup = true; + } + var queueRedraw = debounce_1(function() { + r.redrawHint("eles", true); + r.redrawHint("drag", true); + r.redraw(); + }, opts.deqRedrawThreshold); + var dequeue = function dequeue2(willDraw, frameStartTime) { + var startTime = performanceNow(); + var avgRenderTime = r.averageRedrawTime; + var renderTime = r.lastRedrawTime; + var deqd = []; + var extent = r.cy.extent(); + var pixelRatio = r.getPixelRatio(); + if (!willDraw) { + r.flushRenderedStyleQueue(); + } + while (true) { + var now2 = performanceNow(); + var duration = now2 - startTime; + var frameDuration = now2 - frameStartTime; + if (renderTime < fullFpsTime) { + var timeAvailable = fullFpsTime - (willDraw ? avgRenderTime : 0); + if (frameDuration >= opts.deqFastCost * timeAvailable) { + break; + } + } else { + if (willDraw) { + if (duration >= opts.deqCost * renderTime || duration >= opts.deqAvgCost * avgRenderTime) { + break; + } + } else if (frameDuration >= opts.deqNoDrawCost * fullFpsTime) { + break; + } + } + var thisDeqd = opts.deq(self2, pixelRatio, extent); + if (thisDeqd.length > 0) { + for (var i2 = 0; i2 < thisDeqd.length; i2++) { + deqd.push(thisDeqd[i2]); + } + } else { + break; + } + } + if (deqd.length > 0) { + opts.onDeqd(self2, deqd); + if (!willDraw && opts.shouldRedraw(self2, deqd, pixelRatio, extent)) { + queueRedraw(); + } + } + }; + var priority = opts.priority || noop$1; + r.beforeRender(dequeue, priority(self2)); + }; + } + }; + var ElementTextureCacheLookup = /* @__PURE__ */ function() { + function ElementTextureCacheLookup2(getKey2) { + var doesEleInvalidateKey = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : falsify; + _classCallCheck(this, ElementTextureCacheLookup2); + this.idsByKey = new Map$2(); + this.keyForId = new Map$2(); + this.cachesByLvl = new Map$2(); + this.lvls = []; + this.getKey = getKey2; + this.doesEleInvalidateKey = doesEleInvalidateKey; + } + _createClass(ElementTextureCacheLookup2, [{ + key: "getIdsFor", + value: function getIdsFor(key) { + if (key == null) { + error("Can not get id list for null key"); + } + var idsByKey = this.idsByKey; + var ids = this.idsByKey.get(key); + if (!ids) { + ids = new Set$1(); + idsByKey.set(key, ids); + } + return ids; + } + }, { + key: "addIdForKey", + value: function addIdForKey(key, id) { + if (key != null) { + this.getIdsFor(key).add(id); + } + } + }, { + key: "deleteIdForKey", + value: function deleteIdForKey(key, id) { + if (key != null) { + this.getIdsFor(key)["delete"](id); + } + } + }, { + key: "getNumberOfIdsForKey", + value: function getNumberOfIdsForKey(key) { + if (key == null) { + return 0; + } else { + return this.getIdsFor(key).size; + } + } + }, { + key: "updateKeyMappingFor", + value: function updateKeyMappingFor(ele) { + var id = ele.id(); + var prevKey = this.keyForId.get(id); + var currKey = this.getKey(ele); + this.deleteIdForKey(prevKey, id); + this.addIdForKey(currKey, id); + this.keyForId.set(id, currKey); + } + }, { + key: "deleteKeyMappingFor", + value: function deleteKeyMappingFor(ele) { + var id = ele.id(); + var prevKey = this.keyForId.get(id); + this.deleteIdForKey(prevKey, id); + this.keyForId["delete"](id); + } + }, { + key: "keyHasChangedFor", + value: function keyHasChangedFor(ele) { + var id = ele.id(); + var prevKey = this.keyForId.get(id); + var newKey = this.getKey(ele); + return prevKey !== newKey; + } + }, { + key: "isInvalid", + value: function isInvalid(ele) { + return this.keyHasChangedFor(ele) || this.doesEleInvalidateKey(ele); + } + }, { + key: "getCachesAt", + value: function getCachesAt(lvl) { + var cachesByLvl = this.cachesByLvl, lvls = this.lvls; + var caches = cachesByLvl.get(lvl); + if (!caches) { + caches = new Map$2(); + cachesByLvl.set(lvl, caches); + lvls.push(lvl); + } + return caches; + } + }, { + key: "getCache", + value: function getCache(key, lvl) { + return this.getCachesAt(lvl).get(key); + } + }, { + key: "get", + value: function get2(ele, lvl) { + var key = this.getKey(ele); + var cache2 = this.getCache(key, lvl); + if (cache2 != null) { + this.updateKeyMappingFor(ele); + } + return cache2; + } + }, { + key: "getForCachedKey", + value: function getForCachedKey(ele, lvl) { + var key = this.keyForId.get(ele.id()); + var cache2 = this.getCache(key, lvl); + return cache2; + } + }, { + key: "hasCache", + value: function hasCache(key, lvl) { + return this.getCachesAt(lvl).has(key); + } + }, { + key: "has", + value: function has(ele, lvl) { + var key = this.getKey(ele); + return this.hasCache(key, lvl); + } + }, { + key: "setCache", + value: function setCache(key, lvl, cache2) { + cache2.key = key; + this.getCachesAt(lvl).set(key, cache2); + } + }, { + key: "set", + value: function set2(ele, lvl, cache2) { + var key = this.getKey(ele); + this.setCache(key, lvl, cache2); + this.updateKeyMappingFor(ele); + } + }, { + key: "deleteCache", + value: function deleteCache(key, lvl) { + this.getCachesAt(lvl)["delete"](key); + } + }, { + key: "delete", + value: function _delete(ele, lvl) { + var key = this.getKey(ele); + this.deleteCache(key, lvl); + } + }, { + key: "invalidateKey", + value: function invalidateKey(key) { + var _this = this; + this.lvls.forEach(function(lvl) { + return _this.deleteCache(key, lvl); + }); + } + // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key) + }, { + key: "invalidate", + value: function invalidate(ele) { + var id = ele.id(); + var key = this.keyForId.get(id); + this.deleteKeyMappingFor(ele); + var entireKeyInvalidated = this.doesEleInvalidateKey(ele); + if (entireKeyInvalidated) { + this.invalidateKey(key); + } + return entireKeyInvalidated || this.getNumberOfIdsForKey(key) === 0; + } + }]); + return ElementTextureCacheLookup2; + }(); + var minTxrH = 25; + var txrStepH = 50; + var minLvl$1 = -4; + var maxLvl$1 = 3; + var maxZoom$1 = 7.99; + var eleTxrSpacing = 8; + var defTxrWidth = 1024; + var maxTxrW = 1024; + var maxTxrH = 1024; + var minUtility = 0.2; + var maxFullness = 0.8; + var maxFullnessChecks = 10; + var deqCost$1 = 0.15; + var deqAvgCost$1 = 0.1; + var deqNoDrawCost$1 = 0.9; + var deqFastCost$1 = 0.9; + var deqRedrawThreshold$1 = 100; + var maxDeqSize$1 = 1; + var getTxrReasons = { + dequeue: "dequeue", + downscale: "downscale", + highQuality: "highQuality" + }; + var initDefaults = defaults$g({ + getKey: null, + doesEleInvalidateKey: falsify, + drawElement: null, + getBoundingBox: null, + getRotationPoint: null, + getRotationOffset: null, + isVisible: trueify, + allowEdgeTxrCaching: true, + allowParentTxrCaching: true + }); + var ElementTextureCache = function ElementTextureCache2(renderer3, initOptions) { + var self2 = this; + self2.renderer = renderer3; + self2.onDequeues = []; + var opts = initDefaults(initOptions); + extend(self2, opts); + self2.lookup = new ElementTextureCacheLookup(opts.getKey, opts.doesEleInvalidateKey); + self2.setupDequeueing(); + }; + var ETCp = ElementTextureCache.prototype; + ETCp.reasons = getTxrReasons; + ETCp.getTextureQueue = function(txrH) { + var self2 = this; + self2.eleImgCaches = self2.eleImgCaches || {}; + return self2.eleImgCaches[txrH] = self2.eleImgCaches[txrH] || []; + }; + ETCp.getRetiredTextureQueue = function(txrH) { + var self2 = this; + var rtxtrQs = self2.eleImgCaches.retired = self2.eleImgCaches.retired || {}; + var rtxtrQ = rtxtrQs[txrH] = rtxtrQs[txrH] || []; + return rtxtrQ; + }; + ETCp.getElementQueue = function() { + var self2 = this; + var q = self2.eleCacheQueue = self2.eleCacheQueue || new heap(function(a, b) { + return b.reqs - a.reqs; + }); + return q; + }; + ETCp.getElementKeyToQueue = function() { + var self2 = this; + var k2q = self2.eleKeyToCacheQueue = self2.eleKeyToCacheQueue || {}; + return k2q; + }; + ETCp.getElement = function(ele, bb, pxRatio, lvl, reason) { + var self2 = this; + var r = this.renderer; + var zoom = r.cy.zoom(); + var lookup2 = this.lookup; + if (!bb || bb.w === 0 || bb.h === 0 || isNaN(bb.w) || isNaN(bb.h) || !ele.visible() || ele.removed()) { + return null; + } + if (!self2.allowEdgeTxrCaching && ele.isEdge() || !self2.allowParentTxrCaching && ele.isParent()) { + return null; + } + if (lvl == null) { + lvl = Math.ceil(log2(zoom * pxRatio)); + } + if (lvl < minLvl$1) { + lvl = minLvl$1; + } else if (zoom >= maxZoom$1 || lvl > maxLvl$1) { + return null; + } + var scale = Math.pow(2, lvl); + var eleScaledH = bb.h * scale; + var eleScaledW = bb.w * scale; + var scaledLabelShown = r.eleTextBiggerThanMin(ele, scale); + if (!this.isVisible(ele, scaledLabelShown)) { + return null; + } + var eleCache = lookup2.get(ele, lvl); + if (eleCache && eleCache.invalidated) { + eleCache.invalidated = false; + eleCache.texture.invalidatedWidth -= eleCache.width; + } + if (eleCache) { + return eleCache; + } + var txrH; + if (eleScaledH <= minTxrH) { + txrH = minTxrH; + } else if (eleScaledH <= txrStepH) { + txrH = txrStepH; + } else { + txrH = Math.ceil(eleScaledH / txrStepH) * txrStepH; + } + if (eleScaledH > maxTxrH || eleScaledW > maxTxrW) { + return null; + } + var txrQ = self2.getTextureQueue(txrH); + var txr = txrQ[txrQ.length - 2]; + var addNewTxr = function addNewTxr2() { + return self2.recycleTexture(txrH, eleScaledW) || self2.addTexture(txrH, eleScaledW); + }; + if (!txr) { + txr = txrQ[txrQ.length - 1]; + } + if (!txr) { + txr = addNewTxr(); + } + if (txr.width - txr.usedWidth < eleScaledW) { + txr = addNewTxr(); + } + var scalableFrom = function scalableFrom2(otherCache) { + return otherCache && otherCache.scaledLabelShown === scaledLabelShown; + }; + var deqing = reason && reason === getTxrReasons.dequeue; + var highQualityReq = reason && reason === getTxrReasons.highQuality; + var downscaleReq = reason && reason === getTxrReasons.downscale; + var higherCache; + for (var l = lvl + 1; l <= maxLvl$1; l++) { + var c = lookup2.get(ele, l); + if (c) { + higherCache = c; + break; + } + } + var oneUpCache = higherCache && higherCache.level === lvl + 1 ? higherCache : null; + var downscale = function downscale2() { + txr.context.drawImage(oneUpCache.texture.canvas, oneUpCache.x, 0, oneUpCache.width, oneUpCache.height, txr.usedWidth, 0, eleScaledW, eleScaledH); + }; + txr.context.setTransform(1, 0, 0, 1, 0, 0); + txr.context.clearRect(txr.usedWidth, 0, eleScaledW, txrH); + if (scalableFrom(oneUpCache)) { + downscale(); + } else if (scalableFrom(higherCache)) { + if (highQualityReq) { + for (var _l = higherCache.level; _l > lvl; _l--) { + oneUpCache = self2.getElement(ele, bb, pxRatio, _l, getTxrReasons.downscale); + } + downscale(); + } else { + self2.queueElement(ele, higherCache.level - 1); + return higherCache; + } + } else { + var lowerCache; + if (!deqing && !highQualityReq && !downscaleReq) { + for (var _l2 = lvl - 1; _l2 >= minLvl$1; _l2--) { + var _c = lookup2.get(ele, _l2); + if (_c) { + lowerCache = _c; + break; + } + } + } + if (scalableFrom(lowerCache)) { + self2.queueElement(ele, lvl); + return lowerCache; + } + txr.context.translate(txr.usedWidth, 0); + txr.context.scale(scale, scale); + this.drawElement(txr.context, ele, bb, scaledLabelShown, false); + txr.context.scale(1 / scale, 1 / scale); + txr.context.translate(-txr.usedWidth, 0); + } + eleCache = { + x: txr.usedWidth, + texture: txr, + level: lvl, + scale, + width: eleScaledW, + height: eleScaledH, + scaledLabelShown + }; + txr.usedWidth += Math.ceil(eleScaledW + eleTxrSpacing); + txr.eleCaches.push(eleCache); + lookup2.set(ele, lvl, eleCache); + self2.checkTextureFullness(txr); + return eleCache; + }; + ETCp.invalidateElements = function(eles) { + for (var i2 = 0; i2 < eles.length; i2++) { + this.invalidateElement(eles[i2]); + } + }; + ETCp.invalidateElement = function(ele) { + var self2 = this; + var lookup2 = self2.lookup; + var caches = []; + var invalid = lookup2.isInvalid(ele); + if (!invalid) { + return; + } + for (var lvl = minLvl$1; lvl <= maxLvl$1; lvl++) { + var cache2 = lookup2.getForCachedKey(ele, lvl); + if (cache2) { + caches.push(cache2); + } + } + var noOtherElesUseCache = lookup2.invalidate(ele); + if (noOtherElesUseCache) { + for (var i2 = 0; i2 < caches.length; i2++) { + var _cache = caches[i2]; + var txr = _cache.texture; + txr.invalidatedWidth += _cache.width; + _cache.invalidated = true; + self2.checkTextureUtility(txr); + } + } + self2.removeFromQueue(ele); + }; + ETCp.checkTextureUtility = function(txr) { + if (txr.invalidatedWidth >= minUtility * txr.width) { + this.retireTexture(txr); + } + }; + ETCp.checkTextureFullness = function(txr) { + var self2 = this; + var txrQ = self2.getTextureQueue(txr.height); + if (txr.usedWidth / txr.width > maxFullness && txr.fullnessChecks >= maxFullnessChecks) { + removeFromArray(txrQ, txr); + } else { + txr.fullnessChecks++; + } + }; + ETCp.retireTexture = function(txr) { + var self2 = this; + var txrH = txr.height; + var txrQ = self2.getTextureQueue(txrH); + var lookup2 = this.lookup; + removeFromArray(txrQ, txr); + txr.retired = true; + var eleCaches = txr.eleCaches; + for (var i2 = 0; i2 < eleCaches.length; i2++) { + var eleCache = eleCaches[i2]; + lookup2.deleteCache(eleCache.key, eleCache.level); + } + clearArray(eleCaches); + var rtxtrQ = self2.getRetiredTextureQueue(txrH); + rtxtrQ.push(txr); + }; + ETCp.addTexture = function(txrH, minW) { + var self2 = this; + var txrQ = self2.getTextureQueue(txrH); + var txr = {}; + txrQ.push(txr); + txr.eleCaches = []; + txr.height = txrH; + txr.width = Math.max(defTxrWidth, minW); + txr.usedWidth = 0; + txr.invalidatedWidth = 0; + txr.fullnessChecks = 0; + txr.canvas = self2.renderer.makeOffscreenCanvas(txr.width, txr.height); + txr.context = txr.canvas.getContext("2d"); + return txr; + }; + ETCp.recycleTexture = function(txrH, minW) { + var self2 = this; + var txrQ = self2.getTextureQueue(txrH); + var rtxtrQ = self2.getRetiredTextureQueue(txrH); + for (var i2 = 0; i2 < rtxtrQ.length; i2++) { + var txr = rtxtrQ[i2]; + if (txr.width >= minW) { + txr.retired = false; + txr.usedWidth = 0; + txr.invalidatedWidth = 0; + txr.fullnessChecks = 0; + clearArray(txr.eleCaches); + txr.context.setTransform(1, 0, 0, 1, 0, 0); + txr.context.clearRect(0, 0, txr.width, txr.height); + removeFromArray(rtxtrQ, txr); + txrQ.push(txr); + return txr; + } + } + }; + ETCp.queueElement = function(ele, lvl) { + var self2 = this; + var q = self2.getElementQueue(); + var k2q = self2.getElementKeyToQueue(); + var key = this.getKey(ele); + var existingReq = k2q[key]; + if (existingReq) { + existingReq.level = Math.max(existingReq.level, lvl); + existingReq.eles.merge(ele); + existingReq.reqs++; + q.updateItem(existingReq); + } else { + var req = { + eles: ele.spawn().merge(ele), + level: lvl, + reqs: 1, + key + }; + q.push(req); + k2q[key] = req; + } + }; + ETCp.dequeue = function(pxRatio) { + var self2 = this; + var q = self2.getElementQueue(); + var k2q = self2.getElementKeyToQueue(); + var dequeued = []; + var lookup2 = self2.lookup; + for (var i2 = 0; i2 < maxDeqSize$1; i2++) { + if (q.size() > 0) { + var req = q.pop(); + var key = req.key; + var ele = req.eles[0]; + var cacheExists = lookup2.hasCache(ele, req.level); + k2q[key] = null; + if (cacheExists) { + continue; + } + dequeued.push(req); + var bb = self2.getBoundingBox(ele); + self2.getElement(ele, bb, pxRatio, req.level, getTxrReasons.dequeue); + } else { + break; + } + } + return dequeued; + }; + ETCp.removeFromQueue = function(ele) { + var self2 = this; + var q = self2.getElementQueue(); + var k2q = self2.getElementKeyToQueue(); + var key = this.getKey(ele); + var req = k2q[key]; + if (req != null) { + if (req.eles.length === 1) { + req.reqs = MAX_INT$1; + q.updateItem(req); + q.pop(); + k2q[key] = null; + } else { + req.eles.unmerge(ele); + } + } + }; + ETCp.onDequeue = function(fn2) { + this.onDequeues.push(fn2); + }; + ETCp.offDequeue = function(fn2) { + removeFromArray(this.onDequeues, fn2); + }; + ETCp.setupDequeueing = defs.setupDequeueing({ + deqRedrawThreshold: deqRedrawThreshold$1, + deqCost: deqCost$1, + deqAvgCost: deqAvgCost$1, + deqNoDrawCost: deqNoDrawCost$1, + deqFastCost: deqFastCost$1, + deq: function deq(self2, pxRatio, extent) { + return self2.dequeue(pxRatio, extent); + }, + onDeqd: function onDeqd(self2, deqd) { + for (var i2 = 0; i2 < self2.onDequeues.length; i2++) { + var fn2 = self2.onDequeues[i2]; + fn2(deqd); + } + }, + shouldRedraw: function shouldRedraw(self2, deqd, pxRatio, extent) { + for (var i2 = 0; i2 < deqd.length; i2++) { + var eles = deqd[i2].eles; + for (var j = 0; j < eles.length; j++) { + var bb = eles[j].boundingBox(); + if (boundingBoxesIntersect(bb, extent)) { + return true; + } + } + } + return false; + }, + priority: function priority(self2) { + return self2.renderer.beforeRenderPriorities.eleTxrDeq; + } + }); + var defNumLayers = 1; + var minLvl = -4; + var maxLvl = 2; + var maxZoom = 3.99; + var deqRedrawThreshold = 50; + var refineEleDebounceTime = 50; + var deqCost = 0.15; + var deqAvgCost = 0.1; + var deqNoDrawCost = 0.9; + var deqFastCost = 0.9; + var maxDeqSize = 1; + var invalidThreshold = 250; + var maxLayerArea = 4e3 * 4e3; + var useHighQualityEleTxrReqs = true; + var LayeredTextureCache = function LayeredTextureCache2(renderer3) { + var self2 = this; + var r = self2.renderer = renderer3; + var cy = r.cy; + self2.layersByLevel = {}; + self2.firstGet = true; + self2.lastInvalidationTime = performanceNow() - 2 * invalidThreshold; + self2.skipping = false; + self2.eleTxrDeqs = cy.collection(); + self2.scheduleElementRefinement = debounce_1(function() { + self2.refineElementTextures(self2.eleTxrDeqs); + self2.eleTxrDeqs.unmerge(self2.eleTxrDeqs); + }, refineEleDebounceTime); + r.beforeRender(function(willDraw, now2) { + if (now2 - self2.lastInvalidationTime <= invalidThreshold) { + self2.skipping = true; + } else { + self2.skipping = false; + } + }, r.beforeRenderPriorities.lyrTxrSkip); + var qSort = function qSort2(a, b) { + return b.reqs - a.reqs; + }; + self2.layersQueue = new heap(qSort); + self2.setupDequeueing(); + }; + var LTCp = LayeredTextureCache.prototype; + var layerIdPool = 0; + var MAX_INT = Math.pow(2, 53) - 1; + LTCp.makeLayer = function(bb, lvl) { + var scale = Math.pow(2, lvl); + var w = Math.ceil(bb.w * scale); + var h = Math.ceil(bb.h * scale); + var canvas = this.renderer.makeOffscreenCanvas(w, h); + var layer = { + id: layerIdPool = ++layerIdPool % MAX_INT, + bb, + level: lvl, + width: w, + height: h, + canvas, + context: canvas.getContext("2d"), + eles: [], + elesQueue: [], + reqs: 0 + }; + var cxt = layer.context; + var dx = -layer.bb.x1; + var dy = -layer.bb.y1; + cxt.scale(scale, scale); + cxt.translate(dx, dy); + return layer; + }; + LTCp.getLayers = function(eles, pxRatio, lvl) { + var self2 = this; + var r = self2.renderer; + var cy = r.cy; + var zoom = cy.zoom(); + var firstGet = self2.firstGet; + self2.firstGet = false; + if (lvl == null) { + lvl = Math.ceil(log2(zoom * pxRatio)); + if (lvl < minLvl) { + lvl = minLvl; + } else if (zoom >= maxZoom || lvl > maxLvl) { + return null; + } + } + self2.validateLayersElesOrdering(lvl, eles); + var layersByLvl = self2.layersByLevel; + var scale = Math.pow(2, lvl); + var layers = layersByLvl[lvl] = layersByLvl[lvl] || []; + var bb; + var lvlComplete = self2.levelIsComplete(lvl, eles); + var tmpLayers; + var checkTempLevels = function checkTempLevels2() { + var canUseAsTmpLvl = function canUseAsTmpLvl2(l) { + self2.validateLayersElesOrdering(l, eles); + if (self2.levelIsComplete(l, eles)) { + tmpLayers = layersByLvl[l]; + return true; + } + }; + var checkLvls = function checkLvls2(dir) { + if (tmpLayers) { + return; + } + for (var l = lvl + dir; minLvl <= l && l <= maxLvl; l += dir) { + if (canUseAsTmpLvl(l)) { + break; + } + } + }; + checkLvls(1); + checkLvls(-1); + for (var i3 = layers.length - 1; i3 >= 0; i3--) { + var layer2 = layers[i3]; + if (layer2.invalid) { + removeFromArray(layers, layer2); + } + } + }; + if (!lvlComplete) { + checkTempLevels(); + } else { + return layers; + } + var getBb = function getBb2() { + if (!bb) { + bb = makeBoundingBox(); + for (var i3 = 0; i3 < eles.length; i3++) { + updateBoundingBox(bb, eles[i3].boundingBox()); + } + } + return bb; + }; + var makeLayer = function makeLayer2(opts) { + opts = opts || {}; + var after = opts.after; + getBb(); + var area = bb.w * scale * (bb.h * scale); + if (area > maxLayerArea) { + return null; + } + var layer2 = self2.makeLayer(bb, lvl); + if (after != null) { + var index = layers.indexOf(after) + 1; + layers.splice(index, 0, layer2); + } else if (opts.insert === void 0 || opts.insert) { + layers.unshift(layer2); + } + return layer2; + }; + if (self2.skipping && !firstGet) { + return null; + } + var layer = null; + var maxElesPerLayer = eles.length / defNumLayers; + var allowLazyQueueing = !firstGet; + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + var rs = ele._private.rscratch; + var caches = rs.imgLayerCaches = rs.imgLayerCaches || {}; + var existingLayer = caches[lvl]; + if (existingLayer) { + layer = existingLayer; + continue; + } + if (!layer || layer.eles.length >= maxElesPerLayer || !boundingBoxInBoundingBox(layer.bb, ele.boundingBox())) { + layer = makeLayer({ + insert: true, + after: layer + }); + if (!layer) { + return null; + } + } + if (tmpLayers || allowLazyQueueing) { + self2.queueLayer(layer, ele); + } else { + self2.drawEleInLayer(layer, ele, lvl, pxRatio); + } + layer.eles.push(ele); + caches[lvl] = layer; + } + if (tmpLayers) { + return tmpLayers; + } + if (allowLazyQueueing) { + return null; + } + return layers; + }; + LTCp.getEleLevelForLayerLevel = function(lvl, pxRatio) { + return lvl; + }; + LTCp.drawEleInLayer = function(layer, ele, lvl, pxRatio) { + var self2 = this; + var r = this.renderer; + var context = layer.context; + var bb = ele.boundingBox(); + if (bb.w === 0 || bb.h === 0 || !ele.visible()) { + return; + } + lvl = self2.getEleLevelForLayerLevel(lvl, pxRatio); + { + r.setImgSmoothing(context, false); + } + { + r.drawCachedElement(context, ele, null, null, lvl, useHighQualityEleTxrReqs); + } + { + r.setImgSmoothing(context, true); + } + }; + LTCp.levelIsComplete = function(lvl, eles) { + var self2 = this; + var layers = self2.layersByLevel[lvl]; + if (!layers || layers.length === 0) { + return false; + } + var numElesInLayers = 0; + for (var i2 = 0; i2 < layers.length; i2++) { + var layer = layers[i2]; + if (layer.reqs > 0) { + return false; + } + if (layer.invalid) { + return false; + } + numElesInLayers += layer.eles.length; + } + if (numElesInLayers !== eles.length) { + return false; + } + return true; + }; + LTCp.validateLayersElesOrdering = function(lvl, eles) { + var layers = this.layersByLevel[lvl]; + if (!layers) { + return; + } + for (var i2 = 0; i2 < layers.length; i2++) { + var layer = layers[i2]; + var offset = -1; + for (var j = 0; j < eles.length; j++) { + if (layer.eles[0] === eles[j]) { + offset = j; + break; + } + } + if (offset < 0) { + this.invalidateLayer(layer); + continue; + } + var o = offset; + for (var j = 0; j < layer.eles.length; j++) { + if (layer.eles[j] !== eles[o + j]) { + this.invalidateLayer(layer); + break; + } + } + } + }; + LTCp.updateElementsInLayers = function(eles, update2) { + var self2 = this; + var isEles = element(eles[0]); + for (var i2 = 0; i2 < eles.length; i2++) { + var req = isEles ? null : eles[i2]; + var ele = isEles ? eles[i2] : eles[i2].ele; + var rs = ele._private.rscratch; + var caches = rs.imgLayerCaches = rs.imgLayerCaches || {}; + for (var l = minLvl; l <= maxLvl; l++) { + var layer = caches[l]; + if (!layer) { + continue; + } + if (req && self2.getEleLevelForLayerLevel(layer.level) !== req.level) { + continue; + } + update2(layer, ele, req); + } + } + }; + LTCp.haveLayers = function() { + var self2 = this; + var haveLayers = false; + for (var l = minLvl; l <= maxLvl; l++) { + var layers = self2.layersByLevel[l]; + if (layers && layers.length > 0) { + haveLayers = true; + break; + } + } + return haveLayers; + }; + LTCp.invalidateElements = function(eles) { + var self2 = this; + if (eles.length === 0) { + return; + } + self2.lastInvalidationTime = performanceNow(); + if (eles.length === 0 || !self2.haveLayers()) { + return; + } + self2.updateElementsInLayers(eles, function invalAssocLayers(layer, ele, req) { + self2.invalidateLayer(layer); + }); + }; + LTCp.invalidateLayer = function(layer) { + this.lastInvalidationTime = performanceNow(); + if (layer.invalid) { + return; + } + var lvl = layer.level; + var eles = layer.eles; + var layers = this.layersByLevel[lvl]; + removeFromArray(layers, layer); + layer.elesQueue = []; + layer.invalid = true; + if (layer.replacement) { + layer.replacement.invalid = true; + } + for (var i2 = 0; i2 < eles.length; i2++) { + var caches = eles[i2]._private.rscratch.imgLayerCaches; + if (caches) { + caches[lvl] = null; + } + } + }; + LTCp.refineElementTextures = function(eles) { + var self2 = this; + self2.updateElementsInLayers(eles, function refineEachEle(layer, ele, req) { + var rLyr = layer.replacement; + if (!rLyr) { + rLyr = layer.replacement = self2.makeLayer(layer.bb, layer.level); + rLyr.replaces = layer; + rLyr.eles = layer.eles; + } + if (!rLyr.reqs) { + for (var i2 = 0; i2 < rLyr.eles.length; i2++) { + self2.queueLayer(rLyr, rLyr.eles[i2]); + } + } + }); + }; + LTCp.enqueueElementRefinement = function(ele) { + this.eleTxrDeqs.merge(ele); + this.scheduleElementRefinement(); + }; + LTCp.queueLayer = function(layer, ele) { + var self2 = this; + var q = self2.layersQueue; + var elesQ = layer.elesQueue; + var hasId = elesQ.hasId = elesQ.hasId || {}; + if (layer.replacement) { + return; + } + if (ele) { + if (hasId[ele.id()]) { + return; + } + elesQ.push(ele); + hasId[ele.id()] = true; + } + if (layer.reqs) { + layer.reqs++; + q.updateItem(layer); + } else { + layer.reqs = 1; + q.push(layer); + } + }; + LTCp.dequeue = function(pxRatio) { + var self2 = this; + var q = self2.layersQueue; + var deqd = []; + var eleDeqs = 0; + while (eleDeqs < maxDeqSize) { + if (q.size() === 0) { + break; + } + var layer = q.peek(); + if (layer.replacement) { + q.pop(); + continue; + } + if (layer.replaces && layer !== layer.replaces.replacement) { + q.pop(); + continue; + } + if (layer.invalid) { + q.pop(); + continue; + } + var ele = layer.elesQueue.shift(); + if (ele) { + self2.drawEleInLayer(layer, ele, layer.level, pxRatio); + eleDeqs++; + } + if (deqd.length === 0) { + deqd.push(true); + } + if (layer.elesQueue.length === 0) { + q.pop(); + layer.reqs = 0; + if (layer.replaces) { + self2.applyLayerReplacement(layer); + } + self2.requestRedraw(); + } + } + return deqd; + }; + LTCp.applyLayerReplacement = function(layer) { + var self2 = this; + var layersInLevel = self2.layersByLevel[layer.level]; + var replaced = layer.replaces; + var index = layersInLevel.indexOf(replaced); + if (index < 0 || replaced.invalid) { + return; + } + layersInLevel[index] = layer; + for (var i2 = 0; i2 < layer.eles.length; i2++) { + var _p = layer.eles[i2]._private; + var cache2 = _p.imgLayerCaches = _p.imgLayerCaches || {}; + if (cache2) { + cache2[layer.level] = layer; + } + } + self2.requestRedraw(); + }; + LTCp.requestRedraw = debounce_1(function() { + var r = this.renderer; + r.redrawHint("eles", true); + r.redrawHint("drag", true); + r.redraw(); + }, 100); + LTCp.setupDequeueing = defs.setupDequeueing({ + deqRedrawThreshold, + deqCost, + deqAvgCost, + deqNoDrawCost, + deqFastCost, + deq: function deq(self2, pxRatio) { + return self2.dequeue(pxRatio); + }, + onDeqd: noop$1, + shouldRedraw: trueify, + priority: function priority(self2) { + return self2.renderer.beforeRenderPriorities.lyrTxrDeq; + } + }); + var CRp$a = {}; + var impl; + function polygon(context, points) { + for (var i2 = 0; i2 < points.length; i2++) { + var pt = points[i2]; + context.lineTo(pt.x, pt.y); + } + } + function triangleBackcurve(context, points, controlPoint) { + var firstPt; + for (var i2 = 0; i2 < points.length; i2++) { + var pt = points[i2]; + if (i2 === 0) { + firstPt = pt; + } + context.lineTo(pt.x, pt.y); + } + context.quadraticCurveTo(controlPoint.x, controlPoint.y, firstPt.x, firstPt.y); + } + function triangleTee(context, trianglePoints, teePoints) { + if (context.beginPath) { + context.beginPath(); + } + var triPts = trianglePoints; + for (var i2 = 0; i2 < triPts.length; i2++) { + var pt = triPts[i2]; + context.lineTo(pt.x, pt.y); + } + var teePts = teePoints; + var firstTeePt = teePoints[0]; + context.moveTo(firstTeePt.x, firstTeePt.y); + for (var i2 = 1; i2 < teePts.length; i2++) { + var pt = teePts[i2]; + context.lineTo(pt.x, pt.y); + } + if (context.closePath) { + context.closePath(); + } + } + function circleTriangle(context, trianglePoints, rx, ry, r) { + if (context.beginPath) { + context.beginPath(); + } + context.arc(rx, ry, r, 0, Math.PI * 2, false); + var triPts = trianglePoints; + var firstTrPt = triPts[0]; + context.moveTo(firstTrPt.x, firstTrPt.y); + for (var i2 = 0; i2 < triPts.length; i2++) { + var pt = triPts[i2]; + context.lineTo(pt.x, pt.y); + } + if (context.closePath) { + context.closePath(); + } + } + function circle(context, rx, ry, r) { + context.arc(rx, ry, r, 0, Math.PI * 2, false); + } + CRp$a.arrowShapeImpl = function(name) { + return (impl || (impl = { + "polygon": polygon, + "triangle-backcurve": triangleBackcurve, + "triangle-tee": triangleTee, + "circle-triangle": circleTriangle, + "triangle-cross": triangleTee, + "circle": circle + }))[name]; + }; + var CRp$9 = {}; + CRp$9.drawElement = function(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity) { + var r = this; + if (ele.isNode()) { + r.drawNode(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity); + } else { + r.drawEdge(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity); + } + }; + CRp$9.drawElementOverlay = function(context, ele) { + var r = this; + if (ele.isNode()) { + r.drawNodeOverlay(context, ele); + } else { + r.drawEdgeOverlay(context, ele); + } + }; + CRp$9.drawElementUnderlay = function(context, ele) { + var r = this; + if (ele.isNode()) { + r.drawNodeUnderlay(context, ele); + } else { + r.drawEdgeUnderlay(context, ele); + } + }; + CRp$9.drawCachedElementPortion = function(context, ele, eleTxrCache, pxRatio, lvl, reason, getRotation, getOpacity2) { + var r = this; + var bb = eleTxrCache.getBoundingBox(ele); + if (bb.w === 0 || bb.h === 0) { + return; + } + var eleCache = eleTxrCache.getElement(ele, bb, pxRatio, lvl, reason); + if (eleCache != null) { + var opacity = getOpacity2(r, ele); + if (opacity === 0) { + return; + } + var theta = getRotation(r, ele); + var x1 = bb.x1, y1 = bb.y1, w = bb.w, h = bb.h; + var x, y, sx, sy, smooth; + if (theta !== 0) { + var rotPt = eleTxrCache.getRotationPoint(ele); + sx = rotPt.x; + sy = rotPt.y; + context.translate(sx, sy); + context.rotate(theta); + smooth = r.getImgSmoothing(context); + if (!smooth) { + r.setImgSmoothing(context, true); + } + var off = eleTxrCache.getRotationOffset(ele); + x = off.x; + y = off.y; + } else { + x = x1; + y = y1; + } + var oldGlobalAlpha; + if (opacity !== 1) { + oldGlobalAlpha = context.globalAlpha; + context.globalAlpha = oldGlobalAlpha * opacity; + } + context.drawImage(eleCache.texture.canvas, eleCache.x, 0, eleCache.width, eleCache.height, x, y, w, h); + if (opacity !== 1) { + context.globalAlpha = oldGlobalAlpha; + } + if (theta !== 0) { + context.rotate(-theta); + context.translate(-sx, -sy); + if (!smooth) { + r.setImgSmoothing(context, false); + } + } + } else { + eleTxrCache.drawElement(context, ele); + } + }; + var getZeroRotation = function getZeroRotation2() { + return 0; + }; + var getLabelRotation = function getLabelRotation2(r, ele) { + return r.getTextAngle(ele, null); + }; + var getSourceLabelRotation = function getSourceLabelRotation2(r, ele) { + return r.getTextAngle(ele, "source"); + }; + var getTargetLabelRotation = function getTargetLabelRotation2(r, ele) { + return r.getTextAngle(ele, "target"); + }; + var getOpacity = function getOpacity2(r, ele) { + return ele.effectiveOpacity(); + }; + var getTextOpacity = function getTextOpacity2(e, ele) { + return ele.pstyle("text-opacity").pfValue * ele.effectiveOpacity(); + }; + CRp$9.drawCachedElement = function(context, ele, pxRatio, extent, lvl, requestHighQuality) { + var r = this; + var _r$data = r.data, eleTxrCache = _r$data.eleTxrCache, lblTxrCache = _r$data.lblTxrCache, slbTxrCache = _r$data.slbTxrCache, tlbTxrCache = _r$data.tlbTxrCache; + var bb = ele.boundingBox(); + var reason = requestHighQuality === true ? eleTxrCache.reasons.highQuality : null; + if (bb.w === 0 || bb.h === 0 || !ele.visible()) { + return; + } + if (!extent || boundingBoxesIntersect(bb, extent)) { + var isEdge = ele.isEdge(); + var badLine = ele.element()._private.rscratch.badLine; + r.drawElementUnderlay(context, ele); + r.drawCachedElementPortion(context, ele, eleTxrCache, pxRatio, lvl, reason, getZeroRotation, getOpacity); + if (!isEdge || !badLine) { + r.drawCachedElementPortion(context, ele, lblTxrCache, pxRatio, lvl, reason, getLabelRotation, getTextOpacity); + } + if (isEdge && !badLine) { + r.drawCachedElementPortion(context, ele, slbTxrCache, pxRatio, lvl, reason, getSourceLabelRotation, getTextOpacity); + r.drawCachedElementPortion(context, ele, tlbTxrCache, pxRatio, lvl, reason, getTargetLabelRotation, getTextOpacity); + } + r.drawElementOverlay(context, ele); + } + }; + CRp$9.drawElements = function(context, eles) { + var r = this; + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + r.drawElement(context, ele); + } + }; + CRp$9.drawCachedElements = function(context, eles, pxRatio, extent) { + var r = this; + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + r.drawCachedElement(context, ele, pxRatio, extent); + } + }; + CRp$9.drawCachedNodes = function(context, eles, pxRatio, extent) { + var r = this; + for (var i2 = 0; i2 < eles.length; i2++) { + var ele = eles[i2]; + if (!ele.isNode()) { + continue; + } + r.drawCachedElement(context, ele, pxRatio, extent); + } + }; + CRp$9.drawLayeredElements = function(context, eles, pxRatio, extent) { + var r = this; + var layers = r.data.lyrTxrCache.getLayers(eles, pxRatio); + if (layers) { + for (var i2 = 0; i2 < layers.length; i2++) { + var layer = layers[i2]; + var bb = layer.bb; + if (bb.w === 0 || bb.h === 0) { + continue; + } + context.drawImage(layer.canvas, bb.x1, bb.y1, bb.w, bb.h); + } + } else { + r.drawCachedElements(context, eles, pxRatio, extent); + } + }; + var CRp$8 = {}; + CRp$8.drawEdge = function(context, edge, shiftToOriginWithBb) { + var drawLabel = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true; + var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true; + var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true; + var r = this; + var rs = edge._private.rscratch; + if (shouldDrawOpacity && !edge.visible()) { + return; + } + if (rs.badLine || rs.allpts == null || isNaN(rs.allpts[0])) { + return; + } + var bb; + if (shiftToOriginWithBb) { + bb = shiftToOriginWithBb; + context.translate(-bb.x1, -bb.y1); + } + var opacity = shouldDrawOpacity ? edge.pstyle("opacity").value : 1; + var lineOpacity = shouldDrawOpacity ? edge.pstyle("line-opacity").value : 1; + var curveStyle = edge.pstyle("curve-style").value; + var lineStyle = edge.pstyle("line-style").value; + var edgeWidth = edge.pstyle("width").pfValue; + var lineCap = edge.pstyle("line-cap").value; + var effectiveLineOpacity = opacity * lineOpacity; + var effectiveArrowOpacity = opacity * lineOpacity; + var drawLine = function drawLine2() { + var strokeOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : effectiveLineOpacity; + if (curveStyle === "straight-triangle") { + r.eleStrokeStyle(context, edge, strokeOpacity); + r.drawEdgeTrianglePath(edge, context, rs.allpts); + } else { + context.lineWidth = edgeWidth; + context.lineCap = lineCap; + r.eleStrokeStyle(context, edge, strokeOpacity); + r.drawEdgePath(edge, context, rs.allpts, lineStyle); + context.lineCap = "butt"; + } + }; + var drawOverlay = function drawOverlay2() { + if (!shouldDrawOverlay) { + return; + } + r.drawEdgeOverlay(context, edge); + }; + var drawUnderlay = function drawUnderlay2() { + if (!shouldDrawOverlay) { + return; + } + r.drawEdgeUnderlay(context, edge); + }; + var drawArrows = function drawArrows2() { + var arrowOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : effectiveArrowOpacity; + r.drawArrowheads(context, edge, arrowOpacity); + }; + var drawText = function drawText2() { + r.drawElementText(context, edge, null, drawLabel); + }; + context.lineJoin = "round"; + var ghost = edge.pstyle("ghost").value === "yes"; + if (ghost) { + var gx = edge.pstyle("ghost-offset-x").pfValue; + var gy = edge.pstyle("ghost-offset-y").pfValue; + var ghostOpacity = edge.pstyle("ghost-opacity").value; + var effectiveGhostOpacity = effectiveLineOpacity * ghostOpacity; + context.translate(gx, gy); + drawLine(effectiveGhostOpacity); + drawArrows(effectiveGhostOpacity); + context.translate(-gx, -gy); + } + drawUnderlay(); + drawLine(); + drawArrows(); + drawOverlay(); + drawText(); + if (shiftToOriginWithBb) { + context.translate(bb.x1, bb.y1); + } + }; + var drawEdgeOverlayUnderlay = function drawEdgeOverlayUnderlay2(overlayOrUnderlay) { + if (!["overlay", "underlay"].includes(overlayOrUnderlay)) { + throw new Error("Invalid state"); + } + return function(context, edge) { + if (!edge.visible()) { + return; + } + var opacity = edge.pstyle("".concat(overlayOrUnderlay, "-opacity")).value; + if (opacity === 0) { + return; + } + var r = this; + var usePaths = r.usePaths(); + var rs = edge._private.rscratch; + var padding = edge.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue; + var width = 2 * padding; + var color = edge.pstyle("".concat(overlayOrUnderlay, "-color")).value; + context.lineWidth = width; + if (rs.edgeType === "self" && !usePaths) { + context.lineCap = "butt"; + } else { + context.lineCap = "round"; + } + r.colorStrokeStyle(context, color[0], color[1], color[2], opacity); + r.drawEdgePath(edge, context, rs.allpts, "solid"); + }; + }; + CRp$8.drawEdgeOverlay = drawEdgeOverlayUnderlay("overlay"); + CRp$8.drawEdgeUnderlay = drawEdgeOverlayUnderlay("underlay"); + CRp$8.drawEdgePath = function(edge, context, pts2, type) { + var rs = edge._private.rscratch; + var canvasCxt = context; + var path; + var pathCacheHit = false; + var usePaths = this.usePaths(); + var lineDashPattern = edge.pstyle("line-dash-pattern").pfValue; + var lineDashOffset = edge.pstyle("line-dash-offset").pfValue; + if (usePaths) { + var pathCacheKey = pts2.join("$"); + var keyMatches = rs.pathCacheKey && rs.pathCacheKey === pathCacheKey; + if (keyMatches) { + path = context = rs.pathCache; + pathCacheHit = true; + } else { + path = context = new Path2D(); + rs.pathCacheKey = pathCacheKey; + rs.pathCache = path; + } + } + if (canvasCxt.setLineDash) { + switch (type) { + case "dotted": + canvasCxt.setLineDash([1, 1]); + break; + case "dashed": + canvasCxt.setLineDash(lineDashPattern); + canvasCxt.lineDashOffset = lineDashOffset; + break; + case "solid": + canvasCxt.setLineDash([]); + break; + } + } + if (!pathCacheHit && !rs.badLine) { + if (context.beginPath) { + context.beginPath(); + } + context.moveTo(pts2[0], pts2[1]); + switch (rs.edgeType) { + case "bezier": + case "self": + case "compound": + case "multibezier": + for (var i2 = 2; i2 + 3 < pts2.length; i2 += 4) { + context.quadraticCurveTo(pts2[i2], pts2[i2 + 1], pts2[i2 + 2], pts2[i2 + 3]); + } + break; + case "straight": + case "segments": + case "haystack": + for (var _i = 2; _i + 1 < pts2.length; _i += 2) { + context.lineTo(pts2[_i], pts2[_i + 1]); + } + break; + } + } + context = canvasCxt; + if (usePaths) { + context.stroke(path); + } else { + context.stroke(); + } + if (context.setLineDash) { + context.setLineDash([]); + } + }; + CRp$8.drawEdgeTrianglePath = function(edge, context, pts2) { + context.fillStyle = context.strokeStyle; + var edgeWidth = edge.pstyle("width").pfValue; + for (var i2 = 0; i2 + 1 < pts2.length; i2 += 2) { + var vector = [pts2[i2 + 2] - pts2[i2], pts2[i2 + 3] - pts2[i2 + 1]]; + var length = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]); + var normal = [vector[1] / length, -vector[0] / length]; + var triangleHead = [normal[0] * edgeWidth / 2, normal[1] * edgeWidth / 2]; + context.beginPath(); + context.moveTo(pts2[i2] - triangleHead[0], pts2[i2 + 1] - triangleHead[1]); + context.lineTo(pts2[i2] + triangleHead[0], pts2[i2 + 1] + triangleHead[1]); + context.lineTo(pts2[i2 + 2], pts2[i2 + 3]); + context.closePath(); + context.fill(); + } + }; + CRp$8.drawArrowheads = function(context, edge, opacity) { + var rs = edge._private.rscratch; + var isHaystack = rs.edgeType === "haystack"; + if (!isHaystack) { + this.drawArrowhead(context, edge, "source", rs.arrowStartX, rs.arrowStartY, rs.srcArrowAngle, opacity); + } + this.drawArrowhead(context, edge, "mid-target", rs.midX, rs.midY, rs.midtgtArrowAngle, opacity); + this.drawArrowhead(context, edge, "mid-source", rs.midX, rs.midY, rs.midsrcArrowAngle, opacity); + if (!isHaystack) { + this.drawArrowhead(context, edge, "target", rs.arrowEndX, rs.arrowEndY, rs.tgtArrowAngle, opacity); + } + }; + CRp$8.drawArrowhead = function(context, edge, prefix, x, y, angle, opacity) { + if (isNaN(x) || x == null || isNaN(y) || y == null || isNaN(angle) || angle == null) { + return; + } + var self2 = this; + var arrowShape = edge.pstyle(prefix + "-arrow-shape").value; + if (arrowShape === "none") { + return; + } + var arrowClearFill = edge.pstyle(prefix + "-arrow-fill").value === "hollow" ? "both" : "filled"; + var arrowFill = edge.pstyle(prefix + "-arrow-fill").value; + var edgeWidth = edge.pstyle("width").pfValue; + var pArrowWidth = edge.pstyle(prefix + "-arrow-width"); + var arrowWidth = pArrowWidth.value === "match-line" ? edgeWidth : pArrowWidth.pfValue; + if (pArrowWidth.units === "%") + arrowWidth *= edgeWidth; + var edgeOpacity = edge.pstyle("opacity").value; + if (opacity === void 0) { + opacity = edgeOpacity; + } + var gco = context.globalCompositeOperation; + if (opacity !== 1 || arrowFill === "hollow") { + context.globalCompositeOperation = "destination-out"; + self2.colorFillStyle(context, 255, 255, 255, 1); + self2.colorStrokeStyle(context, 255, 255, 255, 1); + self2.drawArrowShape(edge, context, arrowClearFill, edgeWidth, arrowShape, arrowWidth, x, y, angle); + context.globalCompositeOperation = gco; + } + var color = edge.pstyle(prefix + "-arrow-color").value; + self2.colorFillStyle(context, color[0], color[1], color[2], opacity); + self2.colorStrokeStyle(context, color[0], color[1], color[2], opacity); + self2.drawArrowShape(edge, context, arrowFill, edgeWidth, arrowShape, arrowWidth, x, y, angle); + }; + CRp$8.drawArrowShape = function(edge, context, fill, edgeWidth, shape, shapeWidth, x, y, angle) { + var r = this; + var usePaths = this.usePaths() && shape !== "triangle-cross"; + var pathCacheHit = false; + var path; + var canvasContext = context; + var translation = { + x, + y + }; + var scale = edge.pstyle("arrow-scale").value; + var size = this.getArrowWidth(edgeWidth, scale); + var shapeImpl = r.arrowShapes[shape]; + if (usePaths) { + var cache2 = r.arrowPathCache = r.arrowPathCache || []; + var key = hashString(shape); + var cachedPath = cache2[key]; + if (cachedPath != null) { + path = context = cachedPath; + pathCacheHit = true; + } else { + path = context = new Path2D(); + cache2[key] = path; + } + } + if (!pathCacheHit) { + if (context.beginPath) { + context.beginPath(); + } + if (usePaths) { + shapeImpl.draw(context, 1, 0, { + x: 0, + y: 0 + }, 1); + } else { + shapeImpl.draw(context, size, angle, translation, edgeWidth); + } + if (context.closePath) { + context.closePath(); + } + } + context = canvasContext; + if (usePaths) { + context.translate(x, y); + context.rotate(angle); + context.scale(size, size); + } + if (fill === "filled" || fill === "both") { + if (usePaths) { + context.fill(path); + } else { + context.fill(); + } + } + if (fill === "hollow" || fill === "both") { + context.lineWidth = shapeWidth / (usePaths ? size : 1); + context.lineJoin = "miter"; + if (usePaths) { + context.stroke(path); + } else { + context.stroke(); + } + } + if (usePaths) { + context.scale(1 / size, 1 / size); + context.rotate(-angle); + context.translate(-x, -y); + } + }; + var CRp$7 = {}; + CRp$7.safeDrawImage = function(context, img, ix, iy, iw, ih, x, y, w, h) { + if (iw <= 0 || ih <= 0 || w <= 0 || h <= 0) { + return; + } + try { + context.drawImage(img, ix, iy, iw, ih, x, y, w, h); + } catch (e) { + warn(e); + } + }; + CRp$7.drawInscribedImage = function(context, img, node, index, nodeOpacity) { + var r = this; + var pos = node.position(); + var nodeX = pos.x; + var nodeY = pos.y; + var styleObj = node.cy().style(); + var getIndexedStyle = styleObj.getIndexedStyle.bind(styleObj); + var fit = getIndexedStyle(node, "background-fit", "value", index); + var repeat = getIndexedStyle(node, "background-repeat", "value", index); + var nodeW = node.width(); + var nodeH = node.height(); + var paddingX2 = node.padding() * 2; + var nodeTW = nodeW + (getIndexedStyle(node, "background-width-relative-to", "value", index) === "inner" ? 0 : paddingX2); + var nodeTH = nodeH + (getIndexedStyle(node, "background-height-relative-to", "value", index) === "inner" ? 0 : paddingX2); + var rs = node._private.rscratch; + var clip = getIndexedStyle(node, "background-clip", "value", index); + var shouldClip = clip === "node"; + var imgOpacity = getIndexedStyle(node, "background-image-opacity", "value", index) * nodeOpacity; + var smooth = getIndexedStyle(node, "background-image-smoothing", "value", index); + var imgW = img.width || img.cachedW; + var imgH = img.height || img.cachedH; + if (null == imgW || null == imgH) { + document.body.appendChild(img); + imgW = img.cachedW = img.width || img.offsetWidth; + imgH = img.cachedH = img.height || img.offsetHeight; + document.body.removeChild(img); + } + var w = imgW; + var h = imgH; + if (getIndexedStyle(node, "background-width", "value", index) !== "auto") { + if (getIndexedStyle(node, "background-width", "units", index) === "%") { + w = getIndexedStyle(node, "background-width", "pfValue", index) * nodeTW; + } else { + w = getIndexedStyle(node, "background-width", "pfValue", index); + } + } + if (getIndexedStyle(node, "background-height", "value", index) !== "auto") { + if (getIndexedStyle(node, "background-height", "units", index) === "%") { + h = getIndexedStyle(node, "background-height", "pfValue", index) * nodeTH; + } else { + h = getIndexedStyle(node, "background-height", "pfValue", index); + } + } + if (w === 0 || h === 0) { + return; + } + if (fit === "contain") { + var scale = Math.min(nodeTW / w, nodeTH / h); + w *= scale; + h *= scale; + } else if (fit === "cover") { + var scale = Math.max(nodeTW / w, nodeTH / h); + w *= scale; + h *= scale; + } + var x = nodeX - nodeTW / 2; + var posXUnits = getIndexedStyle(node, "background-position-x", "units", index); + var posXPfVal = getIndexedStyle(node, "background-position-x", "pfValue", index); + if (posXUnits === "%") { + x += (nodeTW - w) * posXPfVal; + } else { + x += posXPfVal; + } + var offXUnits = getIndexedStyle(node, "background-offset-x", "units", index); + var offXPfVal = getIndexedStyle(node, "background-offset-x", "pfValue", index); + if (offXUnits === "%") { + x += (nodeTW - w) * offXPfVal; + } else { + x += offXPfVal; + } + var y = nodeY - nodeTH / 2; + var posYUnits = getIndexedStyle(node, "background-position-y", "units", index); + var posYPfVal = getIndexedStyle(node, "background-position-y", "pfValue", index); + if (posYUnits === "%") { + y += (nodeTH - h) * posYPfVal; + } else { + y += posYPfVal; + } + var offYUnits = getIndexedStyle(node, "background-offset-y", "units", index); + var offYPfVal = getIndexedStyle(node, "background-offset-y", "pfValue", index); + if (offYUnits === "%") { + y += (nodeTH - h) * offYPfVal; + } else { + y += offYPfVal; + } + if (rs.pathCache) { + x -= nodeX; + y -= nodeY; + nodeX = 0; + nodeY = 0; + } + var gAlpha = context.globalAlpha; + context.globalAlpha = imgOpacity; + var smoothingEnabled = r.getImgSmoothing(context); + var isSmoothingSwitched = false; + if (smooth === "no" && smoothingEnabled) { + r.setImgSmoothing(context, false); + isSmoothingSwitched = true; + } else if (smooth === "yes" && !smoothingEnabled) { + r.setImgSmoothing(context, true); + isSmoothingSwitched = true; + } + if (repeat === "no-repeat") { + if (shouldClip) { + context.save(); + if (rs.pathCache) { + context.clip(rs.pathCache); + } else { + r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH); + context.clip(); + } + } + r.safeDrawImage(context, img, 0, 0, imgW, imgH, x, y, w, h); + if (shouldClip) { + context.restore(); + } + } else { + var pattern = context.createPattern(img, repeat); + context.fillStyle = pattern; + r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH); + context.translate(x, y); + context.fill(); + context.translate(-x, -y); + } + context.globalAlpha = gAlpha; + if (isSmoothingSwitched) { + r.setImgSmoothing(context, smoothingEnabled); + } + }; + var CRp$6 = {}; + CRp$6.eleTextBiggerThanMin = function(ele, scale) { + if (!scale) { + var zoom = ele.cy().zoom(); + var pxRatio = this.getPixelRatio(); + var lvl = Math.ceil(log2(zoom * pxRatio)); + scale = Math.pow(2, lvl); + } + var computedSize = ele.pstyle("font-size").pfValue * scale; + var minSize = ele.pstyle("min-zoomed-font-size").pfValue; + if (computedSize < minSize) { + return false; + } + return true; + }; + CRp$6.drawElementText = function(context, ele, shiftToOriginWithBb, force, prefix) { + var useEleOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true; + var r = this; + if (force == null) { + if (useEleOpacity && !r.eleTextBiggerThanMin(ele)) { + return; + } + } else if (force === false) { + return; + } + if (ele.isNode()) { + var label = ele.pstyle("label"); + if (!label || !label.value) { + return; + } + var justification = r.getLabelJustification(ele); + context.textAlign = justification; + context.textBaseline = "bottom"; + } else { + var badLine = ele.element()._private.rscratch.badLine; + var _label = ele.pstyle("label"); + var srcLabel = ele.pstyle("source-label"); + var tgtLabel = ele.pstyle("target-label"); + if (badLine || (!_label || !_label.value) && (!srcLabel || !srcLabel.value) && (!tgtLabel || !tgtLabel.value)) { + return; + } + context.textAlign = "center"; + context.textBaseline = "bottom"; + } + var applyRotation = !shiftToOriginWithBb; + var bb; + if (shiftToOriginWithBb) { + bb = shiftToOriginWithBb; + context.translate(-bb.x1, -bb.y1); + } + if (prefix == null) { + r.drawText(context, ele, null, applyRotation, useEleOpacity); + if (ele.isEdge()) { + r.drawText(context, ele, "source", applyRotation, useEleOpacity); + r.drawText(context, ele, "target", applyRotation, useEleOpacity); + } + } else { + r.drawText(context, ele, prefix, applyRotation, useEleOpacity); + } + if (shiftToOriginWithBb) { + context.translate(bb.x1, bb.y1); + } + }; + CRp$6.getFontCache = function(context) { + var cache2; + this.fontCaches = this.fontCaches || []; + for (var i2 = 0; i2 < this.fontCaches.length; i2++) { + cache2 = this.fontCaches[i2]; + if (cache2.context === context) { + return cache2; + } + } + cache2 = { + context + }; + this.fontCaches.push(cache2); + return cache2; + }; + CRp$6.setupTextStyle = function(context, ele) { + var useEleOpacity = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true; + var labelStyle = ele.pstyle("font-style").strValue; + var labelSize = ele.pstyle("font-size").pfValue + "px"; + var labelFamily = ele.pstyle("font-family").strValue; + var labelWeight = ele.pstyle("font-weight").strValue; + var opacity = useEleOpacity ? ele.effectiveOpacity() * ele.pstyle("text-opacity").value : 1; + var outlineOpacity = ele.pstyle("text-outline-opacity").value * opacity; + var color = ele.pstyle("color").value; + var outlineColor = ele.pstyle("text-outline-color").value; + context.font = labelStyle + " " + labelWeight + " " + labelSize + " " + labelFamily; + context.lineJoin = "round"; + this.colorFillStyle(context, color[0], color[1], color[2], opacity); + this.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], outlineOpacity); + }; + function roundRect(ctx, x, y, width, height) { + var radius = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 5; + var stroke = arguments.length > 6 ? arguments[6] : void 0; + ctx.beginPath(); + ctx.moveTo(x + radius, y); + ctx.lineTo(x + width - radius, y); + ctx.quadraticCurveTo(x + width, y, x + width, y + radius); + ctx.lineTo(x + width, y + height - radius); + ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height); + ctx.lineTo(x + radius, y + height); + ctx.quadraticCurveTo(x, y + height, x, y + height - radius); + ctx.lineTo(x, y + radius); + ctx.quadraticCurveTo(x, y, x + radius, y); + ctx.closePath(); + if (stroke) + ctx.stroke(); + else + ctx.fill(); + } + CRp$6.getTextAngle = function(ele, prefix) { + var theta; + var _p = ele._private; + var rscratch = _p.rscratch; + var pdash = prefix ? prefix + "-" : ""; + var rotation = ele.pstyle(pdash + "text-rotation"); + var textAngle = getPrefixedProperty(rscratch, "labelAngle", prefix); + if (rotation.strValue === "autorotate") { + theta = ele.isEdge() ? textAngle : 0; + } else if (rotation.strValue === "none") { + theta = 0; + } else { + theta = rotation.pfValue; + } + return theta; + }; + CRp$6.drawText = function(context, ele, prefix) { + var applyRotation = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true; + var useEleOpacity = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true; + var _p = ele._private; + var rscratch = _p.rscratch; + var parentOpacity = useEleOpacity ? ele.effectiveOpacity() : 1; + if (useEleOpacity && (parentOpacity === 0 || ele.pstyle("text-opacity").value === 0)) { + return; + } + if (prefix === "main") { + prefix = null; + } + var textX = getPrefixedProperty(rscratch, "labelX", prefix); + var textY = getPrefixedProperty(rscratch, "labelY", prefix); + var orgTextX, orgTextY; + var text = this.getLabelText(ele, prefix); + if (text != null && text !== "" && !isNaN(textX) && !isNaN(textY)) { + this.setupTextStyle(context, ele, useEleOpacity); + var pdash = prefix ? prefix + "-" : ""; + var textW = getPrefixedProperty(rscratch, "labelWidth", prefix); + var textH = getPrefixedProperty(rscratch, "labelHeight", prefix); + var marginX = ele.pstyle(pdash + "text-margin-x").pfValue; + var marginY = ele.pstyle(pdash + "text-margin-y").pfValue; + var isEdge = ele.isEdge(); + var halign = ele.pstyle("text-halign").value; + var valign = ele.pstyle("text-valign").value; + if (isEdge) { + halign = "center"; + valign = "center"; + } + textX += marginX; + textY += marginY; + var theta; + if (!applyRotation) { + theta = 0; + } else { + theta = this.getTextAngle(ele, prefix); + } + if (theta !== 0) { + orgTextX = textX; + orgTextY = textY; + context.translate(orgTextX, orgTextY); + context.rotate(theta); + textX = 0; + textY = 0; + } + switch (valign) { + case "top": + break; + case "center": + textY += textH / 2; + break; + case "bottom": + textY += textH; + break; + } + var backgroundOpacity = ele.pstyle("text-background-opacity").value; + var borderOpacity = ele.pstyle("text-border-opacity").value; + var textBorderWidth = ele.pstyle("text-border-width").pfValue; + var backgroundPadding = ele.pstyle("text-background-padding").pfValue; + var styleShape = ele.pstyle("text-background-shape").strValue; + var rounded = styleShape.indexOf("round") === 0; + var roundRadius = 2; + if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) { + var bgX = textX - backgroundPadding; + switch (halign) { + case "left": + bgX -= textW; + break; + case "center": + bgX -= textW / 2; + break; + } + var bgY = textY - textH - backgroundPadding; + var bgW = textW + 2 * backgroundPadding; + var bgH = textH + 2 * backgroundPadding; + if (backgroundOpacity > 0) { + var textFill = context.fillStyle; + var textBackgroundColor = ele.pstyle("text-background-color").value; + context.fillStyle = "rgba(" + textBackgroundColor[0] + "," + textBackgroundColor[1] + "," + textBackgroundColor[2] + "," + backgroundOpacity * parentOpacity + ")"; + if (rounded) { + roundRect(context, bgX, bgY, bgW, bgH, roundRadius); + } else { + context.fillRect(bgX, bgY, bgW, bgH); + } + context.fillStyle = textFill; + } + if (textBorderWidth > 0 && borderOpacity > 0) { + var textStroke = context.strokeStyle; + var textLineWidth = context.lineWidth; + var textBorderColor = ele.pstyle("text-border-color").value; + var textBorderStyle = ele.pstyle("text-border-style").value; + context.strokeStyle = "rgba(" + textBorderColor[0] + "," + textBorderColor[1] + "," + textBorderColor[2] + "," + borderOpacity * parentOpacity + ")"; + context.lineWidth = textBorderWidth; + if (context.setLineDash) { + switch (textBorderStyle) { + case "dotted": + context.setLineDash([1, 1]); + break; + case "dashed": + context.setLineDash([4, 2]); + break; + case "double": + context.lineWidth = textBorderWidth / 4; + context.setLineDash([]); + break; + case "solid": + context.setLineDash([]); + break; + } + } + if (rounded) { + roundRect(context, bgX, bgY, bgW, bgH, roundRadius, "stroke"); + } else { + context.strokeRect(bgX, bgY, bgW, bgH); + } + if (textBorderStyle === "double") { + var whiteWidth = textBorderWidth / 2; + if (rounded) { + roundRect(context, bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2, roundRadius, "stroke"); + } else { + context.strokeRect(bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2); + } + } + if (context.setLineDash) { + context.setLineDash([]); + } + context.lineWidth = textLineWidth; + context.strokeStyle = textStroke; + } + } + var lineWidth = 2 * ele.pstyle("text-outline-width").pfValue; + if (lineWidth > 0) { + context.lineWidth = lineWidth; + } + if (ele.pstyle("text-wrap").value === "wrap") { + var lines = getPrefixedProperty(rscratch, "labelWrapCachedLines", prefix); + var lineHeight = getPrefixedProperty(rscratch, "labelLineHeight", prefix); + var halfTextW = textW / 2; + var justification = this.getLabelJustification(ele); + if (justification === "auto") + ; + else if (halign === "left") { + if (justification === "left") { + textX += -textW; + } else if (justification === "center") { + textX += -halfTextW; + } + } else if (halign === "center") { + if (justification === "left") { + textX += -halfTextW; + } else if (justification === "right") { + textX += halfTextW; + } + } else if (halign === "right") { + if (justification === "center") { + textX += halfTextW; + } else if (justification === "right") { + textX += textW; + } + } + switch (valign) { + case "top": + textY -= (lines.length - 1) * lineHeight; + break; + case "center": + case "bottom": + textY -= (lines.length - 1) * lineHeight; + break; + } + for (var l = 0; l < lines.length; l++) { + if (lineWidth > 0) { + context.strokeText(lines[l], textX, textY); + } + context.fillText(lines[l], textX, textY); + textY += lineHeight; + } + } else { + if (lineWidth > 0) { + context.strokeText(text, textX, textY); + } + context.fillText(text, textX, textY); + } + if (theta !== 0) { + context.rotate(-theta); + context.translate(-orgTextX, -orgTextY); + } + } + }; + var CRp$5 = {}; + CRp$5.drawNode = function(context, node, shiftToOriginWithBb) { + var drawLabel = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true; + var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true; + var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true; + var r = this; + var nodeWidth, nodeHeight; + var _p = node._private; + var rs = _p.rscratch; + var pos = node.position(); + if (!number$1(pos.x) || !number$1(pos.y)) { + return; + } + if (shouldDrawOpacity && !node.visible()) { + return; + } + var eleOpacity = shouldDrawOpacity ? node.effectiveOpacity() : 1; + var usePaths = r.usePaths(); + var path; + var pathCacheHit = false; + var padding = node.padding(); + nodeWidth = node.width() + 2 * padding; + nodeHeight = node.height() + 2 * padding; + var bb; + if (shiftToOriginWithBb) { + bb = shiftToOriginWithBb; + context.translate(-bb.x1, -bb.y1); + } + var bgImgProp = node.pstyle("background-image"); + var urls = bgImgProp.value; + var urlDefined = new Array(urls.length); + var image = new Array(urls.length); + var numImages = 0; + for (var i2 = 0; i2 < urls.length; i2++) { + var url = urls[i2]; + var defd = urlDefined[i2] = url != null && url !== "none"; + if (defd) { + var bgImgCrossOrigin = node.cy().style().getIndexedStyle(node, "background-image-crossorigin", "value", i2); + numImages++; + image[i2] = r.getCachedImage(url, bgImgCrossOrigin, function() { + _p.backgroundTimestamp = Date.now(); + node.emitAndNotify("background"); + }); + } + } + var darkness = node.pstyle("background-blacken").value; + var borderWidth = node.pstyle("border-width").pfValue; + var bgOpacity = node.pstyle("background-opacity").value * eleOpacity; + var borderColor = node.pstyle("border-color").value; + var borderStyle = node.pstyle("border-style").value; + var borderOpacity = node.pstyle("border-opacity").value * eleOpacity; + var outlineWidth = node.pstyle("outline-width").pfValue; + var outlineColor = node.pstyle("outline-color").value; + var outlineStyle = node.pstyle("outline-style").value; + var outlineOpacity = node.pstyle("outline-opacity").value * eleOpacity; + var outlineOffset = node.pstyle("outline-offset").value; + context.lineJoin = "miter"; + var setupShapeColor = function setupShapeColor2() { + var bgOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : bgOpacity; + r.eleFillStyle(context, node, bgOpy); + }; + var setupBorderColor = function setupBorderColor2() { + var bdrOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : borderOpacity; + r.colorStrokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy); + }; + var setupOutlineColor = function setupOutlineColor2() { + var otlnOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : outlineOpacity; + r.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], otlnOpy); + }; + var getPath = function getPath2(width, height, shape, points) { + var pathCache = r.nodePathCache = r.nodePathCache || []; + var key = hashStrings(shape === "polygon" ? shape + "," + points.join(",") : shape, "" + height, "" + width); + var cachedPath = pathCache[key]; + var path2; + var cacheHit = false; + if (cachedPath != null) { + path2 = cachedPath; + cacheHit = true; + rs.pathCache = path2; + } else { + path2 = new Path2D(); + pathCache[key] = rs.pathCache = path2; + } + return { + path: path2, + cacheHit + }; + }; + var styleShape = node.pstyle("shape").strValue; + var shapePts = node.pstyle("shape-polygon-points").pfValue; + if (usePaths) { + context.translate(pos.x, pos.y); + var shapePath = getPath(nodeWidth, nodeHeight, styleShape, shapePts); + path = shapePath.path; + pathCacheHit = shapePath.cacheHit; + } + var drawShape = function drawShape2() { + if (!pathCacheHit) { + var npos = pos; + if (usePaths) { + npos = { + x: 0, + y: 0 + }; + } + r.nodeShapes[r.getNodeShape(node)].draw(path || context, npos.x, npos.y, nodeWidth, nodeHeight); + } + if (usePaths) { + context.fill(path); + } else { + context.fill(); + } + }; + var drawImages = function drawImages2() { + var nodeOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : eleOpacity; + var inside = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; + var prevBging = _p.backgrounding; + var totalCompleted = 0; + for (var _i = 0; _i < image.length; _i++) { + var bgContainment = node.cy().style().getIndexedStyle(node, "background-image-containment", "value", _i); + if (inside && bgContainment === "over" || !inside && bgContainment === "inside") { + totalCompleted++; + continue; + } + if (urlDefined[_i] && image[_i].complete && !image[_i].error) { + totalCompleted++; + r.drawInscribedImage(context, image[_i], node, _i, nodeOpacity); + } + } + _p.backgrounding = !(totalCompleted === numImages); + if (prevBging !== _p.backgrounding) { + node.updateStyle(false); + } + }; + var drawPie = function drawPie2() { + var redrawShape = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false; + var pieOpacity = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : eleOpacity; + if (r.hasPie(node)) { + r.drawPie(context, node, pieOpacity); + if (redrawShape) { + if (!usePaths) { + r.nodeShapes[r.getNodeShape(node)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight); + } + } + } + }; + var darken2 = function darken3() { + var darkenOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : eleOpacity; + var opacity = (darkness > 0 ? darkness : -darkness) * darkenOpacity; + var c = darkness > 0 ? 0 : 255; + if (darkness !== 0) { + r.colorFillStyle(context, c, c, c, opacity); + if (usePaths) { + context.fill(path); + } else { + context.fill(); + } + } + }; + var drawBorder = function drawBorder2() { + if (borderWidth > 0) { + context.lineWidth = borderWidth; + context.lineCap = "butt"; + if (context.setLineDash) { + switch (borderStyle) { + case "dotted": + context.setLineDash([1, 1]); + break; + case "dashed": + context.setLineDash([4, 2]); + break; + case "solid": + case "double": + context.setLineDash([]); + break; + } + } + if (usePaths) { + context.stroke(path); + } else { + context.stroke(); + } + if (borderStyle === "double") { + context.lineWidth = borderWidth / 3; + var gco = context.globalCompositeOperation; + context.globalCompositeOperation = "destination-out"; + if (usePaths) { + context.stroke(path); + } else { + context.stroke(); + } + context.globalCompositeOperation = gco; + } + if (context.setLineDash) { + context.setLineDash([]); + } + } + }; + var drawOutline = function drawOutline2() { + if (outlineWidth > 0) { + context.lineWidth = outlineWidth; + context.lineCap = "butt"; + if (context.setLineDash) { + switch (outlineStyle) { + case "dotted": + context.setLineDash([1, 1]); + break; + case "dashed": + context.setLineDash([4, 2]); + break; + case "solid": + case "double": + context.setLineDash([]); + break; + } + } + var npos = pos; + if (usePaths) { + npos = { + x: 0, + y: 0 + }; + } + var shape = r.getNodeShape(node); + var scaleX = (nodeWidth + borderWidth + (outlineWidth + outlineOffset)) / nodeWidth; + var scaleY = (nodeHeight + borderWidth + (outlineWidth + outlineOffset)) / nodeHeight; + var sWidth = nodeWidth * scaleX; + var sHeight = nodeHeight * scaleY; + var points = r.nodeShapes[shape].points; + var _path; + if (usePaths) { + var outlinePath = getPath(sWidth, sHeight, shape, points); + _path = outlinePath.path; + } + if (shape === "ellipse") { + r.drawEllipsePath(_path || context, npos.x, npos.y, sWidth, sHeight); + } else if (["round-diamond", "round-heptagon", "round-hexagon", "round-octagon", "round-pentagon", "round-polygon", "round-triangle", "round-tag"].includes(shape)) { + var sMult = 0; + var offsetX = 0; + var offsetY = 0; + if (shape === "round-diamond") { + sMult = (borderWidth + outlineOffset + outlineWidth) * 1.4; + } else if (shape === "round-heptagon") { + sMult = (borderWidth + outlineOffset + outlineWidth) * 1.075; + offsetY = -(borderWidth / 2 + outlineOffset + outlineWidth) / 35; + } else if (shape === "round-hexagon") { + sMult = (borderWidth + outlineOffset + outlineWidth) * 1.12; + } else if (shape === "round-pentagon") { + sMult = (borderWidth + outlineOffset + outlineWidth) * 1.13; + offsetY = -(borderWidth / 2 + outlineOffset + outlineWidth) / 15; + } else if (shape === "round-tag") { + sMult = (borderWidth + outlineOffset + outlineWidth) * 1.12; + offsetX = (borderWidth / 2 + outlineWidth + outlineOffset) * 0.07; + } else if (shape === "round-triangle") { + sMult = (borderWidth + outlineOffset + outlineWidth) * (Math.PI / 2); + offsetY = -(borderWidth + outlineOffset / 2 + outlineWidth) / Math.PI; + } + if (sMult !== 0) { + scaleX = (nodeWidth + sMult) / nodeWidth; + scaleY = (nodeHeight + sMult) / nodeHeight; + } + r.drawRoundPolygonPath(_path || context, npos.x + offsetX, npos.y + offsetY, nodeWidth * scaleX, nodeHeight * scaleY, points); + } else if (["roundrectangle", "round-rectangle"].includes(shape)) { + r.drawRoundRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight); + } else if (["cutrectangle", "cut-rectangle"].includes(shape)) { + r.drawCutRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight); + } else if (["bottomroundrectangle", "bottom-round-rectangle"].includes(shape)) { + r.drawBottomRoundRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight); + } else if (shape === "barrel") { + r.drawBarrelPath(_path || context, npos.x, npos.y, sWidth, sHeight); + } else if (shape.startsWith("polygon") || ["rhomboid", "right-rhomboid", "round-tag", "tag", "vee"].includes(shape)) { + var pad = (borderWidth + outlineWidth + outlineOffset) / nodeWidth; + points = joinLines(expandPolygon(points, pad)); + r.drawPolygonPath(_path || context, npos.x, npos.y, nodeWidth, nodeHeight, points); + } else { + var _pad = (borderWidth + outlineWidth + outlineOffset) / nodeWidth; + points = joinLines(expandPolygon(points, -_pad)); + r.drawPolygonPath(_path || context, npos.x, npos.y, nodeWidth, nodeHeight, points); + } + if (usePaths) { + context.stroke(_path); + } else { + context.stroke(); + } + if (outlineStyle === "double") { + context.lineWidth = borderWidth / 3; + var gco = context.globalCompositeOperation; + context.globalCompositeOperation = "destination-out"; + if (usePaths) { + context.stroke(_path); + } else { + context.stroke(); + } + context.globalCompositeOperation = gco; + } + if (context.setLineDash) { + context.setLineDash([]); + } + } + }; + var drawOverlay = function drawOverlay2() { + if (shouldDrawOverlay) { + r.drawNodeOverlay(context, node, pos, nodeWidth, nodeHeight); + } + }; + var drawUnderlay = function drawUnderlay2() { + if (shouldDrawOverlay) { + r.drawNodeUnderlay(context, node, pos, nodeWidth, nodeHeight); + } + }; + var drawText = function drawText2() { + r.drawElementText(context, node, null, drawLabel); + }; + var ghost = node.pstyle("ghost").value === "yes"; + if (ghost) { + var gx = node.pstyle("ghost-offset-x").pfValue; + var gy = node.pstyle("ghost-offset-y").pfValue; + var ghostOpacity = node.pstyle("ghost-opacity").value; + var effGhostOpacity = ghostOpacity * eleOpacity; + context.translate(gx, gy); + setupOutlineColor(); + drawOutline(); + setupShapeColor(ghostOpacity * bgOpacity); + drawShape(); + drawImages(effGhostOpacity, true); + setupBorderColor(ghostOpacity * borderOpacity); + drawBorder(); + drawPie(darkness !== 0 || borderWidth !== 0); + drawImages(effGhostOpacity, false); + darken2(effGhostOpacity); + context.translate(-gx, -gy); + } + if (usePaths) { + context.translate(-pos.x, -pos.y); + } + drawUnderlay(); + if (usePaths) { + context.translate(pos.x, pos.y); + } + setupOutlineColor(); + drawOutline(); + setupShapeColor(); + drawShape(); + drawImages(eleOpacity, true); + setupBorderColor(); + drawBorder(); + drawPie(darkness !== 0 || borderWidth !== 0); + drawImages(eleOpacity, false); + darken2(); + if (usePaths) { + context.translate(-pos.x, -pos.y); + } + drawText(); + drawOverlay(); + if (shiftToOriginWithBb) { + context.translate(bb.x1, bb.y1); + } + }; + var drawNodeOverlayUnderlay = function drawNodeOverlayUnderlay2(overlayOrUnderlay) { + if (!["overlay", "underlay"].includes(overlayOrUnderlay)) { + throw new Error("Invalid state"); + } + return function(context, node, pos, nodeWidth, nodeHeight) { + var r = this; + if (!node.visible()) { + return; + } + var padding = node.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue; + var opacity = node.pstyle("".concat(overlayOrUnderlay, "-opacity")).value; + var color = node.pstyle("".concat(overlayOrUnderlay, "-color")).value; + var shape = node.pstyle("".concat(overlayOrUnderlay, "-shape")).value; + if (opacity > 0) { + pos = pos || node.position(); + if (nodeWidth == null || nodeHeight == null) { + var _padding = node.padding(); + nodeWidth = node.width() + 2 * _padding; + nodeHeight = node.height() + 2 * _padding; + } + r.colorFillStyle(context, color[0], color[1], color[2], opacity); + r.nodeShapes[shape].draw(context, pos.x, pos.y, nodeWidth + padding * 2, nodeHeight + padding * 2); + context.fill(); + } + }; + }; + CRp$5.drawNodeOverlay = drawNodeOverlayUnderlay("overlay"); + CRp$5.drawNodeUnderlay = drawNodeOverlayUnderlay("underlay"); + CRp$5.hasPie = function(node) { + node = node[0]; + return node._private.hasPie; + }; + CRp$5.drawPie = function(context, node, nodeOpacity, pos) { + node = node[0]; + pos = pos || node.position(); + var cyStyle = node.cy().style(); + var pieSize = node.pstyle("pie-size"); + var x = pos.x; + var y = pos.y; + var nodeW = node.width(); + var nodeH = node.height(); + var radius = Math.min(nodeW, nodeH) / 2; + var lastPercent = 0; + var usePaths = this.usePaths(); + if (usePaths) { + x = 0; + y = 0; + } + if (pieSize.units === "%") { + radius = radius * pieSize.pfValue; + } else if (pieSize.pfValue !== void 0) { + radius = pieSize.pfValue / 2; + } + for (var i2 = 1; i2 <= cyStyle.pieBackgroundN; i2++) { + var size = node.pstyle("pie-" + i2 + "-background-size").value; + var color = node.pstyle("pie-" + i2 + "-background-color").value; + var opacity = node.pstyle("pie-" + i2 + "-background-opacity").value * nodeOpacity; + var percent = size / 100; + if (percent + lastPercent > 1) { + percent = 1 - lastPercent; + } + var angleStart = 1.5 * Math.PI + 2 * Math.PI * lastPercent; + var angleDelta = 2 * Math.PI * percent; + var angleEnd = angleStart + angleDelta; + if (size === 0 || lastPercent >= 1 || lastPercent + percent > 1) { + continue; + } + context.beginPath(); + context.moveTo(x, y); + context.arc(x, y, radius, angleStart, angleEnd); + context.closePath(); + this.colorFillStyle(context, color[0], color[1], color[2], opacity); + context.fill(); + lastPercent += percent; + } + }; + var CRp$4 = {}; + var motionBlurDelay = 100; + CRp$4.getPixelRatio = function() { + var context = this.data.contexts[0]; + if (this.forcedPixelRatio != null) { + return this.forcedPixelRatio; + } + var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1; + return (window.devicePixelRatio || 1) / backingStore; + }; + CRp$4.paintCache = function(context) { + var caches = this.paintCaches = this.paintCaches || []; + var needToCreateCache = true; + var cache2; + for (var i2 = 0; i2 < caches.length; i2++) { + cache2 = caches[i2]; + if (cache2.context === context) { + needToCreateCache = false; + break; + } + } + if (needToCreateCache) { + cache2 = { + context + }; + caches.push(cache2); + } + return cache2; + }; + CRp$4.createGradientStyleFor = function(context, shapeStyleName, ele, fill, opacity) { + var gradientStyle; + var usePaths = this.usePaths(); + var colors2 = ele.pstyle(shapeStyleName + "-gradient-stop-colors").value, positions = ele.pstyle(shapeStyleName + "-gradient-stop-positions").pfValue; + if (fill === "radial-gradient") { + if (ele.isEdge()) { + var start = ele.sourceEndpoint(), end = ele.targetEndpoint(), mid = ele.midpoint(); + var d1 = dist(start, mid); + var d2 = dist(end, mid); + gradientStyle = context.createRadialGradient(mid.x, mid.y, 0, mid.x, mid.y, Math.max(d1, d2)); + } else { + var pos = usePaths ? { + x: 0, + y: 0 + } : ele.position(), width = ele.paddedWidth(), height = ele.paddedHeight(); + gradientStyle = context.createRadialGradient(pos.x, pos.y, 0, pos.x, pos.y, Math.max(width, height)); + } + } else { + if (ele.isEdge()) { + var _start = ele.sourceEndpoint(), _end = ele.targetEndpoint(); + gradientStyle = context.createLinearGradient(_start.x, _start.y, _end.x, _end.y); + } else { + var _pos = usePaths ? { + x: 0, + y: 0 + } : ele.position(), _width = ele.paddedWidth(), _height = ele.paddedHeight(), halfWidth = _width / 2, halfHeight = _height / 2; + var direction = ele.pstyle("background-gradient-direction").value; + switch (direction) { + case "to-bottom": + gradientStyle = context.createLinearGradient(_pos.x, _pos.y - halfHeight, _pos.x, _pos.y + halfHeight); + break; + case "to-top": + gradientStyle = context.createLinearGradient(_pos.x, _pos.y + halfHeight, _pos.x, _pos.y - halfHeight); + break; + case "to-left": + gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y, _pos.x - halfWidth, _pos.y); + break; + case "to-right": + gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y, _pos.x + halfWidth, _pos.y); + break; + case "to-bottom-right": + case "to-right-bottom": + gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y - halfHeight, _pos.x + halfWidth, _pos.y + halfHeight); + break; + case "to-top-right": + case "to-right-top": + gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y + halfHeight, _pos.x + halfWidth, _pos.y - halfHeight); + break; + case "to-bottom-left": + case "to-left-bottom": + gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y - halfHeight, _pos.x - halfWidth, _pos.y + halfHeight); + break; + case "to-top-left": + case "to-left-top": + gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y + halfHeight, _pos.x - halfWidth, _pos.y - halfHeight); + break; + } + } + } + if (!gradientStyle) + return null; + var hasPositions = positions.length === colors2.length; + var length = colors2.length; + for (var i2 = 0; i2 < length; i2++) { + gradientStyle.addColorStop(hasPositions ? positions[i2] : i2 / (length - 1), "rgba(" + colors2[i2][0] + "," + colors2[i2][1] + "," + colors2[i2][2] + "," + opacity + ")"); + } + return gradientStyle; + }; + CRp$4.gradientFillStyle = function(context, ele, fill, opacity) { + var gradientStyle = this.createGradientStyleFor(context, "background", ele, fill, opacity); + if (!gradientStyle) + return null; + context.fillStyle = gradientStyle; + }; + CRp$4.colorFillStyle = function(context, r, g, b, a) { + context.fillStyle = "rgba(" + r + "," + g + "," + b + "," + a + ")"; + }; + CRp$4.eleFillStyle = function(context, ele, opacity) { + var backgroundFill = ele.pstyle("background-fill").value; + if (backgroundFill === "linear-gradient" || backgroundFill === "radial-gradient") { + this.gradientFillStyle(context, ele, backgroundFill, opacity); + } else { + var backgroundColor = ele.pstyle("background-color").value; + this.colorFillStyle(context, backgroundColor[0], backgroundColor[1], backgroundColor[2], opacity); + } + }; + CRp$4.gradientStrokeStyle = function(context, ele, fill, opacity) { + var gradientStyle = this.createGradientStyleFor(context, "line", ele, fill, opacity); + if (!gradientStyle) + return null; + context.strokeStyle = gradientStyle; + }; + CRp$4.colorStrokeStyle = function(context, r, g, b, a) { + context.strokeStyle = "rgba(" + r + "," + g + "," + b + "," + a + ")"; + }; + CRp$4.eleStrokeStyle = function(context, ele, opacity) { + var lineFill = ele.pstyle("line-fill").value; + if (lineFill === "linear-gradient" || lineFill === "radial-gradient") { + this.gradientStrokeStyle(context, ele, lineFill, opacity); + } else { + var lineColor = ele.pstyle("line-color").value; + this.colorStrokeStyle(context, lineColor[0], lineColor[1], lineColor[2], opacity); + } + }; + CRp$4.matchCanvasSize = function(container) { + var r = this; + var data2 = r.data; + var bb = r.findContainerClientCoords(); + var width = bb[2]; + var height = bb[3]; + var pixelRatio = r.getPixelRatio(); + var mbPxRatio = r.motionBlurPxRatio; + if (container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE] || container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]) { + pixelRatio = mbPxRatio; + } + var canvasWidth = width * pixelRatio; + var canvasHeight = height * pixelRatio; + var canvas; + if (canvasWidth === r.canvasWidth && canvasHeight === r.canvasHeight) { + return; + } + r.fontCaches = null; + var canvasContainer = data2.canvasContainer; + canvasContainer.style.width = width + "px"; + canvasContainer.style.height = height + "px"; + for (var i2 = 0; i2 < r.CANVAS_LAYERS; i2++) { + canvas = data2.canvases[i2]; + canvas.width = canvasWidth; + canvas.height = canvasHeight; + canvas.style.width = width + "px"; + canvas.style.height = height + "px"; + } + for (var i2 = 0; i2 < r.BUFFER_COUNT; i2++) { + canvas = data2.bufferCanvases[i2]; + canvas.width = canvasWidth; + canvas.height = canvasHeight; + canvas.style.width = width + "px"; + canvas.style.height = height + "px"; + } + r.textureMult = 1; + if (pixelRatio <= 1) { + canvas = data2.bufferCanvases[r.TEXTURE_BUFFER]; + r.textureMult = 2; + canvas.width = canvasWidth * r.textureMult; + canvas.height = canvasHeight * r.textureMult; + } + r.canvasWidth = canvasWidth; + r.canvasHeight = canvasHeight; + }; + CRp$4.renderTo = function(cxt, zoom, pan, pxRatio) { + this.render({ + forcedContext: cxt, + forcedZoom: zoom, + forcedPan: pan, + drawAllLayers: true, + forcedPxRatio: pxRatio + }); + }; + CRp$4.render = function(options) { + options = options || staticEmptyObject(); + var forcedContext = options.forcedContext; + var drawAllLayers = options.drawAllLayers; + var drawOnlyNodeLayer = options.drawOnlyNodeLayer; + var forcedZoom = options.forcedZoom; + var forcedPan = options.forcedPan; + var r = this; + var pixelRatio = options.forcedPxRatio === void 0 ? this.getPixelRatio() : options.forcedPxRatio; + var cy = r.cy; + var data2 = r.data; + var needDraw = data2.canvasNeedsRedraw; + var textureDraw = r.textureOnViewport && !forcedContext && (r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming); + var motionBlur = options.motionBlur !== void 0 ? options.motionBlur : r.motionBlur; + var mbPxRatio = r.motionBlurPxRatio; + var hasCompoundNodes = cy.hasCompoundNodes(); + var inNodeDragGesture = r.hoverData.draggingEles; + var inBoxSelection = r.hoverData.selecting || r.touchData.selecting ? true : false; + motionBlur = motionBlur && !forcedContext && r.motionBlurEnabled && !inBoxSelection; + var motionBlurFadeEffect = motionBlur; + if (!forcedContext) { + if (r.prevPxRatio !== pixelRatio) { + r.invalidateContainerClientCoordsCache(); + r.matchCanvasSize(r.container); + r.redrawHint("eles", true); + r.redrawHint("drag", true); + } + r.prevPxRatio = pixelRatio; + } + if (!forcedContext && r.motionBlurTimeout) { + clearTimeout(r.motionBlurTimeout); + } + if (motionBlur) { + if (r.mbFrames == null) { + r.mbFrames = 0; + } + r.mbFrames++; + if (r.mbFrames < 3) { + motionBlurFadeEffect = false; + } + if (r.mbFrames > r.minMbLowQualFrames) { + r.motionBlurPxRatio = r.mbPxRBlurry; + } + } + if (r.clearingMotionBlur) { + r.motionBlurPxRatio = 1; + } + if (r.textureDrawLastFrame && !textureDraw) { + needDraw[r.NODE] = true; + needDraw[r.SELECT_BOX] = true; + } + var style = cy.style(); + var zoom = cy.zoom(); + var effectiveZoom = forcedZoom !== void 0 ? forcedZoom : zoom; + var pan = cy.pan(); + var effectivePan = { + x: pan.x, + y: pan.y + }; + var vp = { + zoom, + pan: { + x: pan.x, + y: pan.y + } + }; + var prevVp = r.prevViewport; + var viewportIsDiff = prevVp === void 0 || vp.zoom !== prevVp.zoom || vp.pan.x !== prevVp.pan.x || vp.pan.y !== prevVp.pan.y; + if (!viewportIsDiff && !(inNodeDragGesture && !hasCompoundNodes)) { + r.motionBlurPxRatio = 1; + } + if (forcedPan) { + effectivePan = forcedPan; + } + effectiveZoom *= pixelRatio; + effectivePan.x *= pixelRatio; + effectivePan.y *= pixelRatio; + var eles = r.getCachedZSortedEles(); + function mbclear(context2, x, y, w, h) { + var gco = context2.globalCompositeOperation; + context2.globalCompositeOperation = "destination-out"; + r.colorFillStyle(context2, 255, 255, 255, r.motionBlurTransparency); + context2.fillRect(x, y, w, h); + context2.globalCompositeOperation = gco; + } + function setContextTransform(context2, clear3) { + var ePan, eZoom, w, h; + if (!r.clearingMotionBlur && (context2 === data2.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] || context2 === data2.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG])) { + ePan = { + x: pan.x * mbPxRatio, + y: pan.y * mbPxRatio + }; + eZoom = zoom * mbPxRatio; + w = r.canvasWidth * mbPxRatio; + h = r.canvasHeight * mbPxRatio; + } else { + ePan = effectivePan; + eZoom = effectiveZoom; + w = r.canvasWidth; + h = r.canvasHeight; + } + context2.setTransform(1, 0, 0, 1, 0, 0); + if (clear3 === "motionBlur") { + mbclear(context2, 0, 0, w, h); + } else if (!forcedContext && (clear3 === void 0 || clear3)) { + context2.clearRect(0, 0, w, h); + } + if (!drawAllLayers) { + context2.translate(ePan.x, ePan.y); + context2.scale(eZoom, eZoom); + } + if (forcedPan) { + context2.translate(forcedPan.x, forcedPan.y); + } + if (forcedZoom) { + context2.scale(forcedZoom, forcedZoom); + } + } + if (!textureDraw) { + r.textureDrawLastFrame = false; + } + if (textureDraw) { + r.textureDrawLastFrame = true; + if (!r.textureCache) { + r.textureCache = {}; + r.textureCache.bb = cy.mutableElements().boundingBox(); + r.textureCache.texture = r.data.bufferCanvases[r.TEXTURE_BUFFER]; + var cxt = r.data.bufferContexts[r.TEXTURE_BUFFER]; + cxt.setTransform(1, 0, 0, 1, 0, 0); + cxt.clearRect(0, 0, r.canvasWidth * r.textureMult, r.canvasHeight * r.textureMult); + r.render({ + forcedContext: cxt, + drawOnlyNodeLayer: true, + forcedPxRatio: pixelRatio * r.textureMult + }); + var vp = r.textureCache.viewport = { + zoom: cy.zoom(), + pan: cy.pan(), + width: r.canvasWidth, + height: r.canvasHeight + }; + vp.mpan = { + x: (0 - vp.pan.x) / vp.zoom, + y: (0 - vp.pan.y) / vp.zoom + }; + } + needDraw[r.DRAG] = false; + needDraw[r.NODE] = false; + var context = data2.contexts[r.NODE]; + var texture = r.textureCache.texture; + var vp = r.textureCache.viewport; + context.setTransform(1, 0, 0, 1, 0, 0); + if (motionBlur) { + mbclear(context, 0, 0, vp.width, vp.height); + } else { + context.clearRect(0, 0, vp.width, vp.height); + } + var outsideBgColor = style.core("outside-texture-bg-color").value; + var outsideBgOpacity = style.core("outside-texture-bg-opacity").value; + r.colorFillStyle(context, outsideBgColor[0], outsideBgColor[1], outsideBgColor[2], outsideBgOpacity); + context.fillRect(0, 0, vp.width, vp.height); + var zoom = cy.zoom(); + setContextTransform(context, false); + context.clearRect(vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio); + context.drawImage(texture, vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio); + } else if (r.textureOnViewport && !forcedContext) { + r.textureCache = null; + } + var extent = cy.extent(); + var vpManip = r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming || r.hoverData.draggingEles || r.cy.animated(); + var hideEdges = r.hideEdgesOnViewport && vpManip; + var needMbClear = []; + needMbClear[r.NODE] = !needDraw[r.NODE] && motionBlur && !r.clearedForMotionBlur[r.NODE] || r.clearingMotionBlur; + if (needMbClear[r.NODE]) { + r.clearedForMotionBlur[r.NODE] = true; + } + needMbClear[r.DRAG] = !needDraw[r.DRAG] && motionBlur && !r.clearedForMotionBlur[r.DRAG] || r.clearingMotionBlur; + if (needMbClear[r.DRAG]) { + r.clearedForMotionBlur[r.DRAG] = true; + } + if (needDraw[r.NODE] || drawAllLayers || drawOnlyNodeLayer || needMbClear[r.NODE]) { + var useBuffer = motionBlur && !needMbClear[r.NODE] && mbPxRatio !== 1; + var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] : data2.contexts[r.NODE]); + var clear2 = motionBlur && !useBuffer ? "motionBlur" : void 0; + setContextTransform(context, clear2); + if (hideEdges) { + r.drawCachedNodes(context, eles.nondrag, pixelRatio, extent); + } else { + r.drawLayeredElements(context, eles.nondrag, pixelRatio, extent); + } + if (r.debug) { + r.drawDebugPoints(context, eles.nondrag); + } + if (!drawAllLayers && !motionBlur) { + needDraw[r.NODE] = false; + } + } + if (!drawOnlyNodeLayer && (needDraw[r.DRAG] || drawAllLayers || needMbClear[r.DRAG])) { + var useBuffer = motionBlur && !needMbClear[r.DRAG] && mbPxRatio !== 1; + var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG] : data2.contexts[r.DRAG]); + setContextTransform(context, motionBlur && !useBuffer ? "motionBlur" : void 0); + if (hideEdges) { + r.drawCachedNodes(context, eles.drag, pixelRatio, extent); + } else { + r.drawCachedElements(context, eles.drag, pixelRatio, extent); + } + if (r.debug) { + r.drawDebugPoints(context, eles.drag); + } + if (!drawAllLayers && !motionBlur) { + needDraw[r.DRAG] = false; + } + } + if (r.showFps || !drawOnlyNodeLayer && needDraw[r.SELECT_BOX] && !drawAllLayers) { + var context = forcedContext || data2.contexts[r.SELECT_BOX]; + setContextTransform(context); + if (r.selection[4] == 1 && (r.hoverData.selecting || r.touchData.selecting)) { + var zoom = r.cy.zoom(); + var borderWidth = style.core("selection-box-border-width").value / zoom; + context.lineWidth = borderWidth; + context.fillStyle = "rgba(" + style.core("selection-box-color").value[0] + "," + style.core("selection-box-color").value[1] + "," + style.core("selection-box-color").value[2] + "," + style.core("selection-box-opacity").value + ")"; + context.fillRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]); + if (borderWidth > 0) { + context.strokeStyle = "rgba(" + style.core("selection-box-border-color").value[0] + "," + style.core("selection-box-border-color").value[1] + "," + style.core("selection-box-border-color").value[2] + "," + style.core("selection-box-opacity").value + ")"; + context.strokeRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]); + } + } + if (data2.bgActivePosistion && !r.hoverData.selecting) { + var zoom = r.cy.zoom(); + var pos = data2.bgActivePosistion; + context.fillStyle = "rgba(" + style.core("active-bg-color").value[0] + "," + style.core("active-bg-color").value[1] + "," + style.core("active-bg-color").value[2] + "," + style.core("active-bg-opacity").value + ")"; + context.beginPath(); + context.arc(pos.x, pos.y, style.core("active-bg-size").pfValue / zoom, 0, 2 * Math.PI); + context.fill(); + } + var timeToRender = r.lastRedrawTime; + if (r.showFps && timeToRender) { + timeToRender = Math.round(timeToRender); + var fps = Math.round(1e3 / timeToRender); + context.setTransform(1, 0, 0, 1, 0, 0); + context.fillStyle = "rgba(255, 0, 0, 0.75)"; + context.strokeStyle = "rgba(255, 0, 0, 0.75)"; + context.lineWidth = 1; + context.fillText("1 frame = " + timeToRender + " ms = " + fps + " fps", 0, 20); + var maxFps = 60; + context.strokeRect(0, 30, 250, 20); + context.fillRect(0, 30, 250 * Math.min(fps / maxFps, 1), 20); + } + if (!drawAllLayers) { + needDraw[r.SELECT_BOX] = false; + } + } + if (motionBlur && mbPxRatio !== 1) { + var cxtNode = data2.contexts[r.NODE]; + var txtNode = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE]; + var cxtDrag = data2.contexts[r.DRAG]; + var txtDrag = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]; + var drawMotionBlur = function drawMotionBlur2(cxt2, txt, needClear) { + cxt2.setTransform(1, 0, 0, 1, 0, 0); + if (needClear || !motionBlurFadeEffect) { + cxt2.clearRect(0, 0, r.canvasWidth, r.canvasHeight); + } else { + mbclear(cxt2, 0, 0, r.canvasWidth, r.canvasHeight); + } + var pxr = mbPxRatio; + cxt2.drawImage( + txt, + // img + 0, + 0, + // sx, sy + r.canvasWidth * pxr, + r.canvasHeight * pxr, + // sw, sh + 0, + 0, + // x, y + r.canvasWidth, + r.canvasHeight + // w, h + ); + }; + if (needDraw[r.NODE] || needMbClear[r.NODE]) { + drawMotionBlur(cxtNode, txtNode, needMbClear[r.NODE]); + needDraw[r.NODE] = false; + } + if (needDraw[r.DRAG] || needMbClear[r.DRAG]) { + drawMotionBlur(cxtDrag, txtDrag, needMbClear[r.DRAG]); + needDraw[r.DRAG] = false; + } + } + r.prevViewport = vp; + if (r.clearingMotionBlur) { + r.clearingMotionBlur = false; + r.motionBlurCleared = true; + r.motionBlur = true; + } + if (motionBlur) { + r.motionBlurTimeout = setTimeout(function() { + r.motionBlurTimeout = null; + r.clearedForMotionBlur[r.NODE] = false; + r.clearedForMotionBlur[r.DRAG] = false; + r.motionBlur = false; + r.clearingMotionBlur = !textureDraw; + r.mbFrames = 0; + needDraw[r.NODE] = true; + needDraw[r.DRAG] = true; + r.redraw(); + }, motionBlurDelay); + } + if (!forcedContext) { + cy.emit("render"); + } + }; + var CRp$3 = {}; + CRp$3.drawPolygonPath = function(context, x, y, width, height, points) { + var halfW = width / 2; + var halfH = height / 2; + if (context.beginPath) { + context.beginPath(); + } + context.moveTo(x + halfW * points[0], y + halfH * points[1]); + for (var i2 = 1; i2 < points.length / 2; i2++) { + context.lineTo(x + halfW * points[i2 * 2], y + halfH * points[i2 * 2 + 1]); + } + context.closePath(); + }; + CRp$3.drawRoundPolygonPath = function(context, x, y, width, height, points) { + var halfW = width / 2; + var halfH = height / 2; + var cornerRadius = getRoundPolygonRadius(width, height); + if (context.beginPath) { + context.beginPath(); + } + for (var _i = 0; _i < points.length / 4; _i++) { + var sourceUv = void 0, destUv = void 0; + if (_i === 0) { + sourceUv = points.length - 2; + } else { + sourceUv = _i * 4 - 2; + } + destUv = _i * 4 + 2; + var px = x + halfW * points[_i * 4]; + var py = y + halfH * points[_i * 4 + 1]; + var cosTheta = -points[sourceUv] * points[destUv] - points[sourceUv + 1] * points[destUv + 1]; + var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2); + var cp0x = px - offset * points[sourceUv]; + var cp0y = py - offset * points[sourceUv + 1]; + var cp1x = px + offset * points[destUv]; + var cp1y = py + offset * points[destUv + 1]; + if (_i === 0) { + context.moveTo(cp0x, cp0y); + } else { + context.lineTo(cp0x, cp0y); + } + context.arcTo(px, py, cp1x, cp1y, cornerRadius); + } + context.closePath(); + }; + CRp$3.drawRoundRectanglePath = function(context, x, y, width, height) { + var halfWidth = width / 2; + var halfHeight = height / 2; + var cornerRadius = getRoundRectangleRadius(width, height); + if (context.beginPath) { + context.beginPath(); + } + context.moveTo(x, y - halfHeight); + context.arcTo(x + halfWidth, y - halfHeight, x + halfWidth, y, cornerRadius); + context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius); + context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius); + context.arcTo(x - halfWidth, y - halfHeight, x, y - halfHeight, cornerRadius); + context.lineTo(x, y - halfHeight); + context.closePath(); + }; + CRp$3.drawBottomRoundRectanglePath = function(context, x, y, width, height) { + var halfWidth = width / 2; + var halfHeight = height / 2; + var cornerRadius = getRoundRectangleRadius(width, height); + if (context.beginPath) { + context.beginPath(); + } + context.moveTo(x, y - halfHeight); + context.lineTo(x + halfWidth, y - halfHeight); + context.lineTo(x + halfWidth, y); + context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius); + context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius); + context.lineTo(x - halfWidth, y - halfHeight); + context.lineTo(x, y - halfHeight); + context.closePath(); + }; + CRp$3.drawCutRectanglePath = function(context, x, y, width, height) { + var halfWidth = width / 2; + var halfHeight = height / 2; + var cornerLength = getCutRectangleCornerLength(); + if (context.beginPath) { + context.beginPath(); + } + context.moveTo(x - halfWidth + cornerLength, y - halfHeight); + context.lineTo(x + halfWidth - cornerLength, y - halfHeight); + context.lineTo(x + halfWidth, y - halfHeight + cornerLength); + context.lineTo(x + halfWidth, y + halfHeight - cornerLength); + context.lineTo(x + halfWidth - cornerLength, y + halfHeight); + context.lineTo(x - halfWidth + cornerLength, y + halfHeight); + context.lineTo(x - halfWidth, y + halfHeight - cornerLength); + context.lineTo(x - halfWidth, y - halfHeight + cornerLength); + context.closePath(); + }; + CRp$3.drawBarrelPath = function(context, x, y, width, height) { + var halfWidth = width / 2; + var halfHeight = height / 2; + var xBegin = x - halfWidth; + var xEnd = x + halfWidth; + var yBegin = y - halfHeight; + var yEnd = y + halfHeight; + var barrelCurveConstants = getBarrelCurveConstants(width, height); + var wOffset = barrelCurveConstants.widthOffset; + var hOffset = barrelCurveConstants.heightOffset; + var ctrlPtXOffset = barrelCurveConstants.ctrlPtOffsetPct * wOffset; + if (context.beginPath) { + context.beginPath(); + } + context.moveTo(xBegin, yBegin + hOffset); + context.lineTo(xBegin, yEnd - hOffset); + context.quadraticCurveTo(xBegin + ctrlPtXOffset, yEnd, xBegin + wOffset, yEnd); + context.lineTo(xEnd - wOffset, yEnd); + context.quadraticCurveTo(xEnd - ctrlPtXOffset, yEnd, xEnd, yEnd - hOffset); + context.lineTo(xEnd, yBegin + hOffset); + context.quadraticCurveTo(xEnd - ctrlPtXOffset, yBegin, xEnd - wOffset, yBegin); + context.lineTo(xBegin + wOffset, yBegin); + context.quadraticCurveTo(xBegin + ctrlPtXOffset, yBegin, xBegin, yBegin + hOffset); + context.closePath(); + }; + var sin0 = Math.sin(0); + var cos0 = Math.cos(0); + var sin = {}; + var cos = {}; + var ellipseStepSize = Math.PI / 40; + for (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) { + sin[i] = Math.sin(i); + cos[i] = Math.cos(i); + } + CRp$3.drawEllipsePath = function(context, centerX, centerY, width, height) { + if (context.beginPath) { + context.beginPath(); + } + if (context.ellipse) { + context.ellipse(centerX, centerY, width / 2, height / 2, 0, 0, 2 * Math.PI); + } else { + var xPos, yPos; + var rw = width / 2; + var rh = height / 2; + for (var i2 = 0 * Math.PI; i2 < 2 * Math.PI; i2 += ellipseStepSize) { + xPos = centerX - rw * sin[i2] * sin0 + rw * cos[i2] * cos0; + yPos = centerY + rh * cos[i2] * sin0 + rh * sin[i2] * cos0; + if (i2 === 0) { + context.moveTo(xPos, yPos); + } else { + context.lineTo(xPos, yPos); + } + } + } + context.closePath(); + }; + var CRp$2 = {}; + CRp$2.createBuffer = function(w, h) { + var buffer = document.createElement("canvas"); + buffer.width = w; + buffer.height = h; + return [buffer, buffer.getContext("2d")]; + }; + CRp$2.bufferCanvasImage = function(options) { + var cy = this.cy; + var eles = cy.mutableElements(); + var bb = eles.boundingBox(); + var ctrRect = this.findContainerClientCoords(); + var width = options.full ? Math.ceil(bb.w) : ctrRect[2]; + var height = options.full ? Math.ceil(bb.h) : ctrRect[3]; + var specdMaxDims = number$1(options.maxWidth) || number$1(options.maxHeight); + var pxRatio = this.getPixelRatio(); + var scale = 1; + if (options.scale !== void 0) { + width *= options.scale; + height *= options.scale; + scale = options.scale; + } else if (specdMaxDims) { + var maxScaleW = Infinity; + var maxScaleH = Infinity; + if (number$1(options.maxWidth)) { + maxScaleW = scale * options.maxWidth / width; + } + if (number$1(options.maxHeight)) { + maxScaleH = scale * options.maxHeight / height; + } + scale = Math.min(maxScaleW, maxScaleH); + width *= scale; + height *= scale; + } + if (!specdMaxDims) { + width *= pxRatio; + height *= pxRatio; + scale *= pxRatio; + } + var buffCanvas = document.createElement("canvas"); + buffCanvas.width = width; + buffCanvas.height = height; + buffCanvas.style.width = width + "px"; + buffCanvas.style.height = height + "px"; + var buffCxt = buffCanvas.getContext("2d"); + if (width > 0 && height > 0) { + buffCxt.clearRect(0, 0, width, height); + buffCxt.globalCompositeOperation = "source-over"; + var zsortedEles = this.getCachedZSortedEles(); + if (options.full) { + buffCxt.translate(-bb.x1 * scale, -bb.y1 * scale); + buffCxt.scale(scale, scale); + this.drawElements(buffCxt, zsortedEles); + buffCxt.scale(1 / scale, 1 / scale); + buffCxt.translate(bb.x1 * scale, bb.y1 * scale); + } else { + var pan = cy.pan(); + var translation = { + x: pan.x * scale, + y: pan.y * scale + }; + scale *= cy.zoom(); + buffCxt.translate(translation.x, translation.y); + buffCxt.scale(scale, scale); + this.drawElements(buffCxt, zsortedEles); + buffCxt.scale(1 / scale, 1 / scale); + buffCxt.translate(-translation.x, -translation.y); + } + if (options.bg) { + buffCxt.globalCompositeOperation = "destination-over"; + buffCxt.fillStyle = options.bg; + buffCxt.rect(0, 0, width, height); + buffCxt.fill(); + } + } + return buffCanvas; + }; + function b64ToBlob(b64, mimeType) { + var bytes = atob(b64); + var buff = new ArrayBuffer(bytes.length); + var buffUint8 = new Uint8Array(buff); + for (var i2 = 0; i2 < bytes.length; i2++) { + buffUint8[i2] = bytes.charCodeAt(i2); + } + return new Blob([buff], { + type: mimeType + }); + } + function b64UriToB64(b64uri) { + var i2 = b64uri.indexOf(","); + return b64uri.substr(i2 + 1); + } + function output(options, canvas, mimeType) { + var getB64Uri = function getB64Uri2() { + return canvas.toDataURL(mimeType, options.quality); + }; + switch (options.output) { + case "blob-promise": + return new Promise$1(function(resolve2, reject) { + try { + canvas.toBlob(function(blob) { + if (blob != null) { + resolve2(blob); + } else { + reject(new Error("`canvas.toBlob()` sent a null value in its callback")); + } + }, mimeType, options.quality); + } catch (err) { + reject(err); + } + }); + case "blob": + return b64ToBlob(b64UriToB64(getB64Uri()), mimeType); + case "base64": + return b64UriToB64(getB64Uri()); + case "base64uri": + default: + return getB64Uri(); + } + } + CRp$2.png = function(options) { + return output(options, this.bufferCanvasImage(options), "image/png"); + }; + CRp$2.jpg = function(options) { + return output(options, this.bufferCanvasImage(options), "image/jpeg"); + }; + var CRp$1 = {}; + CRp$1.nodeShapeImpl = function(name, context, centerX, centerY, width, height, points) { + switch (name) { + case "ellipse": + return this.drawEllipsePath(context, centerX, centerY, width, height); + case "polygon": + return this.drawPolygonPath(context, centerX, centerY, width, height, points); + case "round-polygon": + return this.drawRoundPolygonPath(context, centerX, centerY, width, height, points); + case "roundrectangle": + case "round-rectangle": + return this.drawRoundRectanglePath(context, centerX, centerY, width, height); + case "cutrectangle": + case "cut-rectangle": + return this.drawCutRectanglePath(context, centerX, centerY, width, height); + case "bottomroundrectangle": + case "bottom-round-rectangle": + return this.drawBottomRoundRectanglePath(context, centerX, centerY, width, height); + case "barrel": + return this.drawBarrelPath(context, centerX, centerY, width, height); + } + }; + var CR = CanvasRenderer; + var CRp = CanvasRenderer.prototype; + CRp.CANVAS_LAYERS = 3; + CRp.SELECT_BOX = 0; + CRp.DRAG = 1; + CRp.NODE = 2; + CRp.BUFFER_COUNT = 3; + CRp.TEXTURE_BUFFER = 0; + CRp.MOTIONBLUR_BUFFER_NODE = 1; + CRp.MOTIONBLUR_BUFFER_DRAG = 2; + function CanvasRenderer(options) { + var r = this; + r.data = { + canvases: new Array(CRp.CANVAS_LAYERS), + contexts: new Array(CRp.CANVAS_LAYERS), + canvasNeedsRedraw: new Array(CRp.CANVAS_LAYERS), + bufferCanvases: new Array(CRp.BUFFER_COUNT), + bufferContexts: new Array(CRp.CANVAS_LAYERS) + }; + var tapHlOffAttr = "-webkit-tap-highlight-color"; + var tapHlOffStyle = "rgba(0,0,0,0)"; + r.data.canvasContainer = document.createElement("div"); + var containerStyle = r.data.canvasContainer.style; + r.data.canvasContainer.style[tapHlOffAttr] = tapHlOffStyle; + containerStyle.position = "relative"; + containerStyle.zIndex = "0"; + containerStyle.overflow = "hidden"; + var container = options.cy.container(); + container.appendChild(r.data.canvasContainer); + container.style[tapHlOffAttr] = tapHlOffStyle; + var styleMap = { + "-webkit-user-select": "none", + "-moz-user-select": "-moz-none", + "user-select": "none", + "-webkit-tap-highlight-color": "rgba(0,0,0,0)", + "outline-style": "none" + }; + if (ms()) { + styleMap["-ms-touch-action"] = "none"; + styleMap["touch-action"] = "none"; + } + for (var i2 = 0; i2 < CRp.CANVAS_LAYERS; i2++) { + var canvas = r.data.canvases[i2] = document.createElement("canvas"); + r.data.contexts[i2] = canvas.getContext("2d"); + Object.keys(styleMap).forEach(function(k) { + canvas.style[k] = styleMap[k]; + }); + canvas.style.position = "absolute"; + canvas.setAttribute("data-id", "layer" + i2); + canvas.style.zIndex = String(CRp.CANVAS_LAYERS - i2); + r.data.canvasContainer.appendChild(canvas); + r.data.canvasNeedsRedraw[i2] = false; + } + r.data.topCanvas = r.data.canvases[0]; + r.data.canvases[CRp.NODE].setAttribute("data-id", "layer" + CRp.NODE + "-node"); + r.data.canvases[CRp.SELECT_BOX].setAttribute("data-id", "layer" + CRp.SELECT_BOX + "-selectbox"); + r.data.canvases[CRp.DRAG].setAttribute("data-id", "layer" + CRp.DRAG + "-drag"); + for (var i2 = 0; i2 < CRp.BUFFER_COUNT; i2++) { + r.data.bufferCanvases[i2] = document.createElement("canvas"); + r.data.bufferContexts[i2] = r.data.bufferCanvases[i2].getContext("2d"); + r.data.bufferCanvases[i2].style.position = "absolute"; + r.data.bufferCanvases[i2].setAttribute("data-id", "buffer" + i2); + r.data.bufferCanvases[i2].style.zIndex = String(-i2 - 1); + r.data.bufferCanvases[i2].style.visibility = "hidden"; + } + r.pathsEnabled = true; + var emptyBb = makeBoundingBox(); + var getBoxCenter = function getBoxCenter2(bb) { + return { + x: (bb.x1 + bb.x2) / 2, + y: (bb.y1 + bb.y2) / 2 + }; + }; + var getCenterOffset = function getCenterOffset2(bb) { + return { + x: -bb.w / 2, + y: -bb.h / 2 + }; + }; + var backgroundTimestampHasChanged = function backgroundTimestampHasChanged2(ele) { + var _p = ele[0]._private; + var same = _p.oldBackgroundTimestamp === _p.backgroundTimestamp; + return !same; + }; + var getStyleKey = function getStyleKey2(ele) { + return ele[0]._private.nodeKey; + }; + var getLabelKey = function getLabelKey2(ele) { + return ele[0]._private.labelStyleKey; + }; + var getSourceLabelKey = function getSourceLabelKey2(ele) { + return ele[0]._private.sourceLabelStyleKey; + }; + var getTargetLabelKey = function getTargetLabelKey2(ele) { + return ele[0]._private.targetLabelStyleKey; + }; + var drawElement = function drawElement2(context, ele, bb, scaledLabelShown, useEleOpacity) { + return r.drawElement(context, ele, bb, false, false, useEleOpacity); + }; + var drawLabel = function drawLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) { + return r.drawElementText(context, ele, bb, scaledLabelShown, "main", useEleOpacity); + }; + var drawSourceLabel = function drawSourceLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) { + return r.drawElementText(context, ele, bb, scaledLabelShown, "source", useEleOpacity); + }; + var drawTargetLabel = function drawTargetLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) { + return r.drawElementText(context, ele, bb, scaledLabelShown, "target", useEleOpacity); + }; + var getElementBox = function getElementBox2(ele) { + ele.boundingBox(); + return ele[0]._private.bodyBounds; + }; + var getLabelBox = function getLabelBox2(ele) { + ele.boundingBox(); + return ele[0]._private.labelBounds.main || emptyBb; + }; + var getSourceLabelBox = function getSourceLabelBox2(ele) { + ele.boundingBox(); + return ele[0]._private.labelBounds.source || emptyBb; + }; + var getTargetLabelBox = function getTargetLabelBox2(ele) { + ele.boundingBox(); + return ele[0]._private.labelBounds.target || emptyBb; + }; + var isLabelVisibleAtScale = function isLabelVisibleAtScale2(ele, scaledLabelShown) { + return scaledLabelShown; + }; + var getElementRotationPoint = function getElementRotationPoint2(ele) { + return getBoxCenter(getElementBox(ele)); + }; + var addTextMargin = function addTextMargin2(prefix, pt, ele) { + var pre = prefix ? prefix + "-" : ""; + return { + x: pt.x + ele.pstyle(pre + "text-margin-x").pfValue, + y: pt.y + ele.pstyle(pre + "text-margin-y").pfValue + }; + }; + var getRsPt = function getRsPt2(ele, x, y) { + var rs = ele[0]._private.rscratch; + return { + x: rs[x], + y: rs[y] + }; + }; + var getLabelRotationPoint = function getLabelRotationPoint2(ele) { + return addTextMargin("", getRsPt(ele, "labelX", "labelY"), ele); + }; + var getSourceLabelRotationPoint = function getSourceLabelRotationPoint2(ele) { + return addTextMargin("source", getRsPt(ele, "sourceLabelX", "sourceLabelY"), ele); + }; + var getTargetLabelRotationPoint = function getTargetLabelRotationPoint2(ele) { + return addTextMargin("target", getRsPt(ele, "targetLabelX", "targetLabelY"), ele); + }; + var getElementRotationOffset = function getElementRotationOffset2(ele) { + return getCenterOffset(getElementBox(ele)); + }; + var getSourceLabelRotationOffset = function getSourceLabelRotationOffset2(ele) { + return getCenterOffset(getSourceLabelBox(ele)); + }; + var getTargetLabelRotationOffset = function getTargetLabelRotationOffset2(ele) { + return getCenterOffset(getTargetLabelBox(ele)); + }; + var getLabelRotationOffset = function getLabelRotationOffset2(ele) { + var bb = getLabelBox(ele); + var p2 = getCenterOffset(getLabelBox(ele)); + if (ele.isNode()) { + switch (ele.pstyle("text-halign").value) { + case "left": + p2.x = -bb.w; + break; + case "right": + p2.x = 0; + break; + } + switch (ele.pstyle("text-valign").value) { + case "top": + p2.y = -bb.h; + break; + case "bottom": + p2.y = 0; + break; + } + } + return p2; + }; + var eleTxrCache = r.data.eleTxrCache = new ElementTextureCache(r, { + getKey: getStyleKey, + doesEleInvalidateKey: backgroundTimestampHasChanged, + drawElement, + getBoundingBox: getElementBox, + getRotationPoint: getElementRotationPoint, + getRotationOffset: getElementRotationOffset, + allowEdgeTxrCaching: false, + allowParentTxrCaching: false + }); + var lblTxrCache = r.data.lblTxrCache = new ElementTextureCache(r, { + getKey: getLabelKey, + drawElement: drawLabel, + getBoundingBox: getLabelBox, + getRotationPoint: getLabelRotationPoint, + getRotationOffset: getLabelRotationOffset, + isVisible: isLabelVisibleAtScale + }); + var slbTxrCache = r.data.slbTxrCache = new ElementTextureCache(r, { + getKey: getSourceLabelKey, + drawElement: drawSourceLabel, + getBoundingBox: getSourceLabelBox, + getRotationPoint: getSourceLabelRotationPoint, + getRotationOffset: getSourceLabelRotationOffset, + isVisible: isLabelVisibleAtScale + }); + var tlbTxrCache = r.data.tlbTxrCache = new ElementTextureCache(r, { + getKey: getTargetLabelKey, + drawElement: drawTargetLabel, + getBoundingBox: getTargetLabelBox, + getRotationPoint: getTargetLabelRotationPoint, + getRotationOffset: getTargetLabelRotationOffset, + isVisible: isLabelVisibleAtScale + }); + var lyrTxrCache = r.data.lyrTxrCache = new LayeredTextureCache(r); + r.onUpdateEleCalcs(function invalidateTextureCaches(willDraw, eles) { + eleTxrCache.invalidateElements(eles); + lblTxrCache.invalidateElements(eles); + slbTxrCache.invalidateElements(eles); + tlbTxrCache.invalidateElements(eles); + lyrTxrCache.invalidateElements(eles); + for (var _i = 0; _i < eles.length; _i++) { + var _p = eles[_i]._private; + _p.oldBackgroundTimestamp = _p.backgroundTimestamp; + } + }); + var refineInLayers = function refineInLayers2(reqs) { + for (var i3 = 0; i3 < reqs.length; i3++) { + lyrTxrCache.enqueueElementRefinement(reqs[i3].ele); + } + }; + eleTxrCache.onDequeue(refineInLayers); + lblTxrCache.onDequeue(refineInLayers); + slbTxrCache.onDequeue(refineInLayers); + tlbTxrCache.onDequeue(refineInLayers); + } + CRp.redrawHint = function(group, bool) { + var r = this; + switch (group) { + case "eles": + r.data.canvasNeedsRedraw[CRp.NODE] = bool; + break; + case "drag": + r.data.canvasNeedsRedraw[CRp.DRAG] = bool; + break; + case "select": + r.data.canvasNeedsRedraw[CRp.SELECT_BOX] = bool; + break; + } + }; + var pathsImpld = typeof Path2D !== "undefined"; + CRp.path2dEnabled = function(on) { + if (on === void 0) { + return this.pathsEnabled; + } + this.pathsEnabled = on ? true : false; + }; + CRp.usePaths = function() { + return pathsImpld && this.pathsEnabled; + }; + CRp.setImgSmoothing = function(context, bool) { + if (context.imageSmoothingEnabled != null) { + context.imageSmoothingEnabled = bool; + } else { + context.webkitImageSmoothingEnabled = bool; + context.mozImageSmoothingEnabled = bool; + context.msImageSmoothingEnabled = bool; + } + }; + CRp.getImgSmoothing = function(context) { + if (context.imageSmoothingEnabled != null) { + return context.imageSmoothingEnabled; + } else { + return context.webkitImageSmoothingEnabled || context.mozImageSmoothingEnabled || context.msImageSmoothingEnabled; + } + }; + CRp.makeOffscreenCanvas = function(width, height) { + var canvas; + if ((typeof OffscreenCanvas === "undefined" ? "undefined" : _typeof(OffscreenCanvas)) !== "undefined") { + canvas = new OffscreenCanvas(width, height); + } else { + canvas = document.createElement("canvas"); + canvas.width = width; + canvas.height = height; + } + return canvas; + }; + [CRp$a, CRp$9, CRp$8, CRp$7, CRp$6, CRp$5, CRp$4, CRp$3, CRp$2, CRp$1].forEach(function(props) { + extend(CRp, props); + }); + var renderer2 = [{ + name: "null", + impl: NullRenderer + }, { + name: "base", + impl: BR + }, { + name: "canvas", + impl: CR + }]; + var incExts = [{ + type: "layout", + extensions: layout + }, { + type: "renderer", + extensions: renderer2 + }]; + var extensions = {}; + var modules = {}; + function setExtension(type, name, registrant) { + var ext = registrant; + var overrideErr = function overrideErr2(field) { + warn("Can not register `" + name + "` for `" + type + "` since `" + field + "` already exists in the prototype and can not be overridden"); + }; + if (type === "core") { + if (Core.prototype[name]) { + return overrideErr(name); + } else { + Core.prototype[name] = registrant; + } + } else if (type === "collection") { + if (Collection.prototype[name]) { + return overrideErr(name); + } else { + Collection.prototype[name] = registrant; + } + } else if (type === "layout") { + var Layout2 = function Layout3(options) { + this.options = options; + registrant.call(this, options); + if (!plainObject(this._private)) { + this._private = {}; + } + this._private.cy = options.cy; + this._private.listeners = []; + this.createEmitter(); + }; + var layoutProto = Layout2.prototype = Object.create(registrant.prototype); + var optLayoutFns = []; + for (var i2 = 0; i2 < optLayoutFns.length; i2++) { + var fnName = optLayoutFns[i2]; + layoutProto[fnName] = layoutProto[fnName] || function() { + return this; + }; + } + if (layoutProto.start && !layoutProto.run) { + layoutProto.run = function() { + this.start(); + return this; + }; + } else if (!layoutProto.start && layoutProto.run) { + layoutProto.start = function() { + this.run(); + return this; + }; + } + var regStop = registrant.prototype.stop; + layoutProto.stop = function() { + var opts = this.options; + if (opts && opts.animate) { + var anis = this.animations; + if (anis) { + for (var _i = 0; _i < anis.length; _i++) { + anis[_i].stop(); + } + } + } + if (regStop) { + regStop.call(this); + } else { + this.emit("layoutstop"); + } + return this; + }; + if (!layoutProto.destroy) { + layoutProto.destroy = function() { + return this; + }; + } + layoutProto.cy = function() { + return this._private.cy; + }; + var getCy = function getCy2(layout2) { + return layout2._private.cy; + }; + var emitterOpts = { + addEventFields: function addEventFields(layout2, evt) { + evt.layout = layout2; + evt.cy = getCy(layout2); + evt.target = layout2; + }, + bubble: function bubble() { + return true; + }, + parent: function parent(layout2) { + return getCy(layout2); + } + }; + extend(layoutProto, { + createEmitter: function createEmitter() { + this._private.emitter = new Emitter(emitterOpts, this); + return this; + }, + emitter: function emitter() { + return this._private.emitter; + }, + on: function on(evt, cb) { + this.emitter().on(evt, cb); + return this; + }, + one: function one(evt, cb) { + this.emitter().one(evt, cb); + return this; + }, + once: function once(evt, cb) { + this.emitter().one(evt, cb); + return this; + }, + removeListener: function removeListener(evt, cb) { + this.emitter().removeListener(evt, cb); + return this; + }, + removeAllListeners: function removeAllListeners() { + this.emitter().removeAllListeners(); + return this; + }, + emit: function emit(evt, params) { + this.emitter().emit(evt, params); + return this; + } + }); + define.eventAliasesOn(layoutProto); + ext = Layout2; + } else if (type === "renderer" && name !== "null" && name !== "base") { + var BaseRenderer2 = getExtension("renderer", "base"); + var bProto = BaseRenderer2.prototype; + var RegistrantRenderer = registrant; + var rProto = registrant.prototype; + var Renderer = function Renderer2() { + BaseRenderer2.apply(this, arguments); + RegistrantRenderer.apply(this, arguments); + }; + var proto = Renderer.prototype; + for (var pName in bProto) { + var pVal = bProto[pName]; + var existsInR = rProto[pName] != null; + if (existsInR) { + return overrideErr(pName); + } + proto[pName] = pVal; + } + for (var _pName in rProto) { + proto[_pName] = rProto[_pName]; + } + bProto.clientFunctions.forEach(function(name2) { + proto[name2] = proto[name2] || function() { + error("Renderer does not implement `renderer." + name2 + "()` on its prototype"); + }; + }); + ext = Renderer; + } else if (type === "__proto__" || type === "constructor" || type === "prototype") { + return error(type + " is an illegal type to be registered, possibly lead to prototype pollutions"); + } + return setMap({ + map: extensions, + keys: [type, name], + value: ext + }); + } + function getExtension(type, name) { + return getMap({ + map: extensions, + keys: [type, name] + }); + } + function setModule(type, name, moduleType, moduleName, registrant) { + return setMap({ + map: modules, + keys: [type, name, moduleType, moduleName], + value: registrant + }); + } + function getModule(type, name, moduleType, moduleName) { + return getMap({ + map: modules, + keys: [type, name, moduleType, moduleName] + }); + } + var extension = function extension2() { + if (arguments.length === 2) { + return getExtension.apply(null, arguments); + } else if (arguments.length === 3) { + return setExtension.apply(null, arguments); + } else if (arguments.length === 4) { + return getModule.apply(null, arguments); + } else if (arguments.length === 5) { + return setModule.apply(null, arguments); + } else { + error("Invalid extension access syntax"); + } + }; + Core.prototype.extension = extension; + incExts.forEach(function(group) { + group.extensions.forEach(function(ext) { + setExtension(group.type, ext.name, ext.impl); + }); + }); + var Stylesheet = function Stylesheet2() { + if (!(this instanceof Stylesheet2)) { + return new Stylesheet2(); + } + this.length = 0; + }; + var sheetfn = Stylesheet.prototype; + sheetfn.instanceString = function() { + return "stylesheet"; + }; + sheetfn.selector = function(selector) { + var i2 = this.length++; + this[i2] = { + selector, + properties: [] + }; + return this; + }; + sheetfn.css = function(name, value) { + var i2 = this.length - 1; + if (string(name)) { + this[i2].properties.push({ + name, + value + }); + } else if (plainObject(name)) { + var map = name; + var propNames = Object.keys(map); + for (var j = 0; j < propNames.length; j++) { + var key = propNames[j]; + var mapVal = map[key]; + if (mapVal == null) { + continue; + } + var prop = Style.properties[key] || Style.properties[dash2camel(key)]; + if (prop == null) { + continue; + } + var _name = prop.name; + var _value = mapVal; + this[i2].properties.push({ + name: _name, + value: _value + }); + } + } + return this; + }; + sheetfn.style = sheetfn.css; + sheetfn.generateStyle = function(cy) { + var style = new Style(cy); + return this.appendToStyle(style); + }; + sheetfn.appendToStyle = function(style) { + for (var i2 = 0; i2 < this.length; i2++) { + var context = this[i2]; + var selector = context.selector; + var props = context.properties; + style.selector(selector); + for (var j = 0; j < props.length; j++) { + var prop = props[j]; + style.css(prop.name, prop.value); + } + } + return style; + }; + var version = "3.28.1"; + var cytoscape2 = function cytoscape3(options) { + if (options === void 0) { + options = {}; + } + if (plainObject(options)) { + return new Core(options); + } else if (string(options)) { + return extension.apply(extension, arguments); + } + }; + cytoscape2.use = function(ext) { + var args = Array.prototype.slice.call(arguments, 1); + args.unshift(cytoscape2); + ext.apply(null, args); + return this; + }; + cytoscape2.warnings = function(bool) { + return warnings(bool); + }; + cytoscape2.version = version; + cytoscape2.stylesheet = cytoscape2.Stylesheet = Stylesheet; + return cytoscape2; + }); +})(cytoscape_umd); +var cytoscape_umdExports = cytoscape_umd.exports; +const cytoscape$1 = /* @__PURE__ */ getDefaultExportFromCjs(cytoscape_umdExports); +var cytoscapeCoseBilkent = { exports: {} }; +var coseBase = { exports: {} }; +var layoutBase = { exports: {} }; +var hasRequiredLayoutBase; +function requireLayoutBase() { + if (hasRequiredLayoutBase) + return layoutBase.exports; + hasRequiredLayoutBase = 1; + (function(module, exports) { + (function webpackUniversalModuleDefinition(root, factory) { + module.exports = factory(); + })(commonjsGlobal, function() { + return ( + /******/ + function(modules) { + var installedModules = {}; + function __webpack_require__(moduleId) { + if (installedModules[moduleId]) { + return installedModules[moduleId].exports; + } + var module2 = installedModules[moduleId] = { + /******/ + i: moduleId, + /******/ + l: false, + /******/ + exports: {} + /******/ + }; + modules[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__); + module2.l = true; + return module2.exports; + } + __webpack_require__.m = modules; + __webpack_require__.c = installedModules; + __webpack_require__.i = function(value) { + return value; + }; + __webpack_require__.d = function(exports2, name, getter) { + if (!__webpack_require__.o(exports2, name)) { + Object.defineProperty(exports2, name, { + /******/ + configurable: false, + /******/ + enumerable: true, + /******/ + get: getter + /******/ + }); + } + }; + __webpack_require__.n = function(module2) { + var getter = module2 && module2.__esModule ? ( + /******/ + function getDefault() { + return module2["default"]; + } + ) : ( + /******/ + function getModuleExports() { + return module2; + } + ); + __webpack_require__.d(getter, "a", getter); + return getter; + }; + __webpack_require__.o = function(object, property) { + return Object.prototype.hasOwnProperty.call(object, property); + }; + __webpack_require__.p = ""; + return __webpack_require__(__webpack_require__.s = 26); + }([ + /* 0 */ + /***/ + function(module2, exports2, __webpack_require__) { + function LayoutConstants() { + } + LayoutConstants.QUALITY = 1; + LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED = false; + LayoutConstants.DEFAULT_INCREMENTAL = false; + LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT = true; + LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT = false; + LayoutConstants.DEFAULT_ANIMATION_PERIOD = 50; + LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = false; + LayoutConstants.DEFAULT_GRAPH_MARGIN = 15; + LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = false; + LayoutConstants.SIMPLE_NODE_SIZE = 40; + LayoutConstants.SIMPLE_NODE_HALF_SIZE = LayoutConstants.SIMPLE_NODE_SIZE / 2; + LayoutConstants.EMPTY_COMPOUND_NODE_SIZE = 40; + LayoutConstants.MIN_EDGE_LENGTH = 1; + LayoutConstants.WORLD_BOUNDARY = 1e6; + LayoutConstants.INITIAL_WORLD_BOUNDARY = LayoutConstants.WORLD_BOUNDARY / 1e3; + LayoutConstants.WORLD_CENTER_X = 1200; + LayoutConstants.WORLD_CENTER_Y = 900; + module2.exports = LayoutConstants; + }, + /* 1 */ + /***/ + function(module2, exports2, __webpack_require__) { + var LGraphObject = __webpack_require__(2); + var IGeometry = __webpack_require__(8); + var IMath = __webpack_require__(9); + function LEdge(source, target, vEdge) { + LGraphObject.call(this, vEdge); + this.isOverlapingSourceAndTarget = false; + this.vGraphObject = vEdge; + this.bendpoints = []; + this.source = source; + this.target = target; + } + LEdge.prototype = Object.create(LGraphObject.prototype); + for (var prop in LGraphObject) { + LEdge[prop] = LGraphObject[prop]; + } + LEdge.prototype.getSource = function() { + return this.source; + }; + LEdge.prototype.getTarget = function() { + return this.target; + }; + LEdge.prototype.isInterGraph = function() { + return this.isInterGraph; + }; + LEdge.prototype.getLength = function() { + return this.length; + }; + LEdge.prototype.isOverlapingSourceAndTarget = function() { + return this.isOverlapingSourceAndTarget; + }; + LEdge.prototype.getBendpoints = function() { + return this.bendpoints; + }; + LEdge.prototype.getLca = function() { + return this.lca; + }; + LEdge.prototype.getSourceInLca = function() { + return this.sourceInLca; + }; + LEdge.prototype.getTargetInLca = function() { + return this.targetInLca; + }; + LEdge.prototype.getOtherEnd = function(node) { + if (this.source === node) { + return this.target; + } else if (this.target === node) { + return this.source; + } else { + throw "Node is not incident with this edge"; + } + }; + LEdge.prototype.getOtherEndInGraph = function(node, graph) { + var otherEnd = this.getOtherEnd(node); + var root = graph.getGraphManager().getRoot(); + while (true) { + if (otherEnd.getOwner() == graph) { + return otherEnd; + } + if (otherEnd.getOwner() == root) { + break; + } + otherEnd = otherEnd.getOwner().getParent(); + } + return null; + }; + LEdge.prototype.updateLength = function() { + var clipPointCoordinates = new Array(4); + this.isOverlapingSourceAndTarget = IGeometry.getIntersection(this.target.getRect(), this.source.getRect(), clipPointCoordinates); + if (!this.isOverlapingSourceAndTarget) { + this.lengthX = clipPointCoordinates[0] - clipPointCoordinates[2]; + this.lengthY = clipPointCoordinates[1] - clipPointCoordinates[3]; + if (Math.abs(this.lengthX) < 1) { + this.lengthX = IMath.sign(this.lengthX); + } + if (Math.abs(this.lengthY) < 1) { + this.lengthY = IMath.sign(this.lengthY); + } + this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY); + } + }; + LEdge.prototype.updateLengthSimple = function() { + this.lengthX = this.target.getCenterX() - this.source.getCenterX(); + this.lengthY = this.target.getCenterY() - this.source.getCenterY(); + if (Math.abs(this.lengthX) < 1) { + this.lengthX = IMath.sign(this.lengthX); + } + if (Math.abs(this.lengthY) < 1) { + this.lengthY = IMath.sign(this.lengthY); + } + this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY); + }; + module2.exports = LEdge; + }, + /* 2 */ + /***/ + function(module2, exports2, __webpack_require__) { + function LGraphObject(vGraphObject) { + this.vGraphObject = vGraphObject; + } + module2.exports = LGraphObject; + }, + /* 3 */ + /***/ + function(module2, exports2, __webpack_require__) { + var LGraphObject = __webpack_require__(2); + var Integer = __webpack_require__(10); + var RectangleD = __webpack_require__(13); + var LayoutConstants = __webpack_require__(0); + var RandomSeed = __webpack_require__(16); + var PointD = __webpack_require__(4); + function LNode(gm, loc, size, vNode) { + if (size == null && vNode == null) { + vNode = loc; + } + LGraphObject.call(this, vNode); + if (gm.graphManager != null) + gm = gm.graphManager; + this.estimatedSize = Integer.MIN_VALUE; + this.inclusionTreeDepth = Integer.MAX_VALUE; + this.vGraphObject = vNode; + this.edges = []; + this.graphManager = gm; + if (size != null && loc != null) + this.rect = new RectangleD(loc.x, loc.y, size.width, size.height); + else + this.rect = new RectangleD(); + } + LNode.prototype = Object.create(LGraphObject.prototype); + for (var prop in LGraphObject) { + LNode[prop] = LGraphObject[prop]; + } + LNode.prototype.getEdges = function() { + return this.edges; + }; + LNode.prototype.getChild = function() { + return this.child; + }; + LNode.prototype.getOwner = function() { + return this.owner; + }; + LNode.prototype.getWidth = function() { + return this.rect.width; + }; + LNode.prototype.setWidth = function(width) { + this.rect.width = width; + }; + LNode.prototype.getHeight = function() { + return this.rect.height; + }; + LNode.prototype.setHeight = function(height) { + this.rect.height = height; + }; + LNode.prototype.getCenterX = function() { + return this.rect.x + this.rect.width / 2; + }; + LNode.prototype.getCenterY = function() { + return this.rect.y + this.rect.height / 2; + }; + LNode.prototype.getCenter = function() { + return new PointD(this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2); + }; + LNode.prototype.getLocation = function() { + return new PointD(this.rect.x, this.rect.y); + }; + LNode.prototype.getRect = function() { + return this.rect; + }; + LNode.prototype.getDiagonal = function() { + return Math.sqrt(this.rect.width * this.rect.width + this.rect.height * this.rect.height); + }; + LNode.prototype.getHalfTheDiagonal = function() { + return Math.sqrt(this.rect.height * this.rect.height + this.rect.width * this.rect.width) / 2; + }; + LNode.prototype.setRect = function(upperLeft, dimension) { + this.rect.x = upperLeft.x; + this.rect.y = upperLeft.y; + this.rect.width = dimension.width; + this.rect.height = dimension.height; + }; + LNode.prototype.setCenter = function(cx, cy) { + this.rect.x = cx - this.rect.width / 2; + this.rect.y = cy - this.rect.height / 2; + }; + LNode.prototype.setLocation = function(x, y) { + this.rect.x = x; + this.rect.y = y; + }; + LNode.prototype.moveBy = function(dx, dy) { + this.rect.x += dx; + this.rect.y += dy; + }; + LNode.prototype.getEdgeListToNode = function(to) { + var edgeList = []; + var self2 = this; + self2.edges.forEach(function(edge) { + if (edge.target == to) { + if (edge.source != self2) + throw "Incorrect edge source!"; + edgeList.push(edge); + } + }); + return edgeList; + }; + LNode.prototype.getEdgesBetween = function(other) { + var edgeList = []; + var self2 = this; + self2.edges.forEach(function(edge) { + if (!(edge.source == self2 || edge.target == self2)) + throw "Incorrect edge source and/or target"; + if (edge.target == other || edge.source == other) { + edgeList.push(edge); + } + }); + return edgeList; + }; + LNode.prototype.getNeighborsList = function() { + var neighbors = /* @__PURE__ */ new Set(); + var self2 = this; + self2.edges.forEach(function(edge) { + if (edge.source == self2) { + neighbors.add(edge.target); + } else { + if (edge.target != self2) { + throw "Incorrect incidency!"; + } + neighbors.add(edge.source); + } + }); + return neighbors; + }; + LNode.prototype.withChildren = function() { + var withNeighborsList = /* @__PURE__ */ new Set(); + var childNode; + var children; + withNeighborsList.add(this); + if (this.child != null) { + var nodes2 = this.child.getNodes(); + for (var i = 0; i < nodes2.length; i++) { + childNode = nodes2[i]; + children = childNode.withChildren(); + children.forEach(function(node) { + withNeighborsList.add(node); + }); + } + } + return withNeighborsList; + }; + LNode.prototype.getNoOfChildren = function() { + var noOfChildren = 0; + var childNode; + if (this.child == null) { + noOfChildren = 1; + } else { + var nodes2 = this.child.getNodes(); + for (var i = 0; i < nodes2.length; i++) { + childNode = nodes2[i]; + noOfChildren += childNode.getNoOfChildren(); + } + } + if (noOfChildren == 0) { + noOfChildren = 1; + } + return noOfChildren; + }; + LNode.prototype.getEstimatedSize = function() { + if (this.estimatedSize == Integer.MIN_VALUE) { + throw "assert failed"; + } + return this.estimatedSize; + }; + LNode.prototype.calcEstimatedSize = function() { + if (this.child == null) { + return this.estimatedSize = (this.rect.width + this.rect.height) / 2; + } else { + this.estimatedSize = this.child.calcEstimatedSize(); + this.rect.width = this.estimatedSize; + this.rect.height = this.estimatedSize; + return this.estimatedSize; + } + }; + LNode.prototype.scatter = function() { + var randomCenterX; + var randomCenterY; + var minX = -LayoutConstants.INITIAL_WORLD_BOUNDARY; + var maxX = LayoutConstants.INITIAL_WORLD_BOUNDARY; + randomCenterX = LayoutConstants.WORLD_CENTER_X + RandomSeed.nextDouble() * (maxX - minX) + minX; + var minY = -LayoutConstants.INITIAL_WORLD_BOUNDARY; + var maxY = LayoutConstants.INITIAL_WORLD_BOUNDARY; + randomCenterY = LayoutConstants.WORLD_CENTER_Y + RandomSeed.nextDouble() * (maxY - minY) + minY; + this.rect.x = randomCenterX; + this.rect.y = randomCenterY; + }; + LNode.prototype.updateBounds = function() { + if (this.getChild() == null) { + throw "assert failed"; + } + if (this.getChild().getNodes().length != 0) { + var childGraph = this.getChild(); + childGraph.updateBounds(true); + this.rect.x = childGraph.getLeft(); + this.rect.y = childGraph.getTop(); + this.setWidth(childGraph.getRight() - childGraph.getLeft()); + this.setHeight(childGraph.getBottom() - childGraph.getTop()); + if (LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS) { + var width = childGraph.getRight() - childGraph.getLeft(); + var height = childGraph.getBottom() - childGraph.getTop(); + if (this.labelWidth > width) { + this.rect.x -= (this.labelWidth - width) / 2; + this.setWidth(this.labelWidth); + } + if (this.labelHeight > height) { + if (this.labelPos == "center") { + this.rect.y -= (this.labelHeight - height) / 2; + } else if (this.labelPos == "top") { + this.rect.y -= this.labelHeight - height; + } + this.setHeight(this.labelHeight); + } + } + } + }; + LNode.prototype.getInclusionTreeDepth = function() { + if (this.inclusionTreeDepth == Integer.MAX_VALUE) { + throw "assert failed"; + } + return this.inclusionTreeDepth; + }; + LNode.prototype.transform = function(trans) { + var left = this.rect.x; + if (left > LayoutConstants.WORLD_BOUNDARY) { + left = LayoutConstants.WORLD_BOUNDARY; + } else if (left < -LayoutConstants.WORLD_BOUNDARY) { + left = -LayoutConstants.WORLD_BOUNDARY; + } + var top = this.rect.y; + if (top > LayoutConstants.WORLD_BOUNDARY) { + top = LayoutConstants.WORLD_BOUNDARY; + } else if (top < -LayoutConstants.WORLD_BOUNDARY) { + top = -LayoutConstants.WORLD_BOUNDARY; + } + var leftTop = new PointD(left, top); + var vLeftTop = trans.inverseTransformPoint(leftTop); + this.setLocation(vLeftTop.x, vLeftTop.y); + }; + LNode.prototype.getLeft = function() { + return this.rect.x; + }; + LNode.prototype.getRight = function() { + return this.rect.x + this.rect.width; + }; + LNode.prototype.getTop = function() { + return this.rect.y; + }; + LNode.prototype.getBottom = function() { + return this.rect.y + this.rect.height; + }; + LNode.prototype.getParent = function() { + if (this.owner == null) { + return null; + } + return this.owner.getParent(); + }; + module2.exports = LNode; + }, + /* 4 */ + /***/ + function(module2, exports2, __webpack_require__) { + function PointD(x, y) { + if (x == null && y == null) { + this.x = 0; + this.y = 0; + } else { + this.x = x; + this.y = y; + } + } + PointD.prototype.getX = function() { + return this.x; + }; + PointD.prototype.getY = function() { + return this.y; + }; + PointD.prototype.setX = function(x) { + this.x = x; + }; + PointD.prototype.setY = function(y) { + this.y = y; + }; + PointD.prototype.getDifference = function(pt) { + return new DimensionD(this.x - pt.x, this.y - pt.y); + }; + PointD.prototype.getCopy = function() { + return new PointD(this.x, this.y); + }; + PointD.prototype.translate = function(dim) { + this.x += dim.width; + this.y += dim.height; + return this; + }; + module2.exports = PointD; + }, + /* 5 */ + /***/ + function(module2, exports2, __webpack_require__) { + var LGraphObject = __webpack_require__(2); + var Integer = __webpack_require__(10); + var LayoutConstants = __webpack_require__(0); + var LGraphManager = __webpack_require__(6); + var LNode = __webpack_require__(3); + var LEdge = __webpack_require__(1); + var RectangleD = __webpack_require__(13); + var Point2 = __webpack_require__(12); + var LinkedList = __webpack_require__(11); + function LGraph(parent, obj2, vGraph) { + LGraphObject.call(this, vGraph); + this.estimatedSize = Integer.MIN_VALUE; + this.margin = LayoutConstants.DEFAULT_GRAPH_MARGIN; + this.edges = []; + this.nodes = []; + this.isConnected = false; + this.parent = parent; + if (obj2 != null && obj2 instanceof LGraphManager) { + this.graphManager = obj2; + } else if (obj2 != null && obj2 instanceof Layout) { + this.graphManager = obj2.graphManager; + } + } + LGraph.prototype = Object.create(LGraphObject.prototype); + for (var prop in LGraphObject) { + LGraph[prop] = LGraphObject[prop]; + } + LGraph.prototype.getNodes = function() { + return this.nodes; + }; + LGraph.prototype.getEdges = function() { + return this.edges; + }; + LGraph.prototype.getGraphManager = function() { + return this.graphManager; + }; + LGraph.prototype.getParent = function() { + return this.parent; + }; + LGraph.prototype.getLeft = function() { + return this.left; + }; + LGraph.prototype.getRight = function() { + return this.right; + }; + LGraph.prototype.getTop = function() { + return this.top; + }; + LGraph.prototype.getBottom = function() { + return this.bottom; + }; + LGraph.prototype.isConnected = function() { + return this.isConnected; + }; + LGraph.prototype.add = function(obj1, sourceNode, targetNode) { + if (sourceNode == null && targetNode == null) { + var newNode = obj1; + if (this.graphManager == null) { + throw "Graph has no graph mgr!"; + } + if (this.getNodes().indexOf(newNode) > -1) { + throw "Node already in graph!"; + } + newNode.owner = this; + this.getNodes().push(newNode); + return newNode; + } else { + var newEdge = obj1; + if (!(this.getNodes().indexOf(sourceNode) > -1 && this.getNodes().indexOf(targetNode) > -1)) { + throw "Source or target not in graph!"; + } + if (!(sourceNode.owner == targetNode.owner && sourceNode.owner == this)) { + throw "Both owners must be this graph!"; + } + if (sourceNode.owner != targetNode.owner) { + return null; + } + newEdge.source = sourceNode; + newEdge.target = targetNode; + newEdge.isInterGraph = false; + this.getEdges().push(newEdge); + sourceNode.edges.push(newEdge); + if (targetNode != sourceNode) { + targetNode.edges.push(newEdge); + } + return newEdge; + } + }; + LGraph.prototype.remove = function(obj) { + var node = obj; + if (obj instanceof LNode) { + if (node == null) { + throw "Node is null!"; + } + if (!(node.owner != null && node.owner == this)) { + throw "Owner graph is invalid!"; + } + if (this.graphManager == null) { + throw "Owner graph manager is invalid!"; + } + var edgesToBeRemoved = node.edges.slice(); + var edge; + var s = edgesToBeRemoved.length; + for (var i = 0; i < s; i++) { + edge = edgesToBeRemoved[i]; + if (edge.isInterGraph) { + this.graphManager.remove(edge); + } else { + edge.source.owner.remove(edge); + } + } + var index = this.nodes.indexOf(node); + if (index == -1) { + throw "Node not in owner node list!"; + } + this.nodes.splice(index, 1); + } else if (obj instanceof LEdge) { + var edge = obj; + if (edge == null) { + throw "Edge is null!"; + } + if (!(edge.source != null && edge.target != null)) { + throw "Source and/or target is null!"; + } + if (!(edge.source.owner != null && edge.target.owner != null && edge.source.owner == this && edge.target.owner == this)) { + throw "Source and/or target owner is invalid!"; + } + var sourceIndex = edge.source.edges.indexOf(edge); + var targetIndex = edge.target.edges.indexOf(edge); + if (!(sourceIndex > -1 && targetIndex > -1)) { + throw "Source and/or target doesn't know this edge!"; + } + edge.source.edges.splice(sourceIndex, 1); + if (edge.target != edge.source) { + edge.target.edges.splice(targetIndex, 1); + } + var index = edge.source.owner.getEdges().indexOf(edge); + if (index == -1) { + throw "Not in owner's edge list!"; + } + edge.source.owner.getEdges().splice(index, 1); + } + }; + LGraph.prototype.updateLeftTop = function() { + var top = Integer.MAX_VALUE; + var left = Integer.MAX_VALUE; + var nodeTop; + var nodeLeft; + var margin; + var nodes2 = this.getNodes(); + var s = nodes2.length; + for (var i = 0; i < s; i++) { + var lNode = nodes2[i]; + nodeTop = lNode.getTop(); + nodeLeft = lNode.getLeft(); + if (top > nodeTop) { + top = nodeTop; + } + if (left > nodeLeft) { + left = nodeLeft; + } + } + if (top == Integer.MAX_VALUE) { + return null; + } + if (nodes2[0].getParent().paddingLeft != void 0) { + margin = nodes2[0].getParent().paddingLeft; + } else { + margin = this.margin; + } + this.left = left - margin; + this.top = top - margin; + return new Point2(this.left, this.top); + }; + LGraph.prototype.updateBounds = function(recursive) { + var left = Integer.MAX_VALUE; + var right = -Integer.MAX_VALUE; + var top = Integer.MAX_VALUE; + var bottom = -Integer.MAX_VALUE; + var nodeLeft; + var nodeRight; + var nodeTop; + var nodeBottom; + var margin; + var nodes2 = this.nodes; + var s = nodes2.length; + for (var i = 0; i < s; i++) { + var lNode = nodes2[i]; + if (recursive && lNode.child != null) { + lNode.updateBounds(); + } + nodeLeft = lNode.getLeft(); + nodeRight = lNode.getRight(); + nodeTop = lNode.getTop(); + nodeBottom = lNode.getBottom(); + if (left > nodeLeft) { + left = nodeLeft; + } + if (right < nodeRight) { + right = nodeRight; + } + if (top > nodeTop) { + top = nodeTop; + } + if (bottom < nodeBottom) { + bottom = nodeBottom; + } + } + var boundingRect = new RectangleD(left, top, right - left, bottom - top); + if (left == Integer.MAX_VALUE) { + this.left = this.parent.getLeft(); + this.right = this.parent.getRight(); + this.top = this.parent.getTop(); + this.bottom = this.parent.getBottom(); + } + if (nodes2[0].getParent().paddingLeft != void 0) { + margin = nodes2[0].getParent().paddingLeft; + } else { + margin = this.margin; + } + this.left = boundingRect.x - margin; + this.right = boundingRect.x + boundingRect.width + margin; + this.top = boundingRect.y - margin; + this.bottom = boundingRect.y + boundingRect.height + margin; + }; + LGraph.calculateBounds = function(nodes2) { + var left = Integer.MAX_VALUE; + var right = -Integer.MAX_VALUE; + var top = Integer.MAX_VALUE; + var bottom = -Integer.MAX_VALUE; + var nodeLeft; + var nodeRight; + var nodeTop; + var nodeBottom; + var s = nodes2.length; + for (var i = 0; i < s; i++) { + var lNode = nodes2[i]; + nodeLeft = lNode.getLeft(); + nodeRight = lNode.getRight(); + nodeTop = lNode.getTop(); + nodeBottom = lNode.getBottom(); + if (left > nodeLeft) { + left = nodeLeft; + } + if (right < nodeRight) { + right = nodeRight; + } + if (top > nodeTop) { + top = nodeTop; + } + if (bottom < nodeBottom) { + bottom = nodeBottom; + } + } + var boundingRect = new RectangleD(left, top, right - left, bottom - top); + return boundingRect; + }; + LGraph.prototype.getInclusionTreeDepth = function() { + if (this == this.graphManager.getRoot()) { + return 1; + } else { + return this.parent.getInclusionTreeDepth(); + } + }; + LGraph.prototype.getEstimatedSize = function() { + if (this.estimatedSize == Integer.MIN_VALUE) { + throw "assert failed"; + } + return this.estimatedSize; + }; + LGraph.prototype.calcEstimatedSize = function() { + var size = 0; + var nodes2 = this.nodes; + var s = nodes2.length; + for (var i = 0; i < s; i++) { + var lNode = nodes2[i]; + size += lNode.calcEstimatedSize(); + } + if (size == 0) { + this.estimatedSize = LayoutConstants.EMPTY_COMPOUND_NODE_SIZE; + } else { + this.estimatedSize = size / Math.sqrt(this.nodes.length); + } + return this.estimatedSize; + }; + LGraph.prototype.updateConnected = function() { + var self2 = this; + if (this.nodes.length == 0) { + this.isConnected = true; + return; + } + var queue = new LinkedList(); + var visited = /* @__PURE__ */ new Set(); + var currentNode = this.nodes[0]; + var neighborEdges; + var currentNeighbor; + var childrenOfNode = currentNode.withChildren(); + childrenOfNode.forEach(function(node) { + queue.push(node); + visited.add(node); + }); + while (queue.length !== 0) { + currentNode = queue.shift(); + neighborEdges = currentNode.getEdges(); + var size = neighborEdges.length; + for (var i = 0; i < size; i++) { + var neighborEdge = neighborEdges[i]; + currentNeighbor = neighborEdge.getOtherEndInGraph(currentNode, this); + if (currentNeighbor != null && !visited.has(currentNeighbor)) { + var childrenOfNeighbor = currentNeighbor.withChildren(); + childrenOfNeighbor.forEach(function(node) { + queue.push(node); + visited.add(node); + }); + } + } + } + this.isConnected = false; + if (visited.size >= this.nodes.length) { + var noOfVisitedInThisGraph = 0; + visited.forEach(function(visitedNode) { + if (visitedNode.owner == self2) { + noOfVisitedInThisGraph++; + } + }); + if (noOfVisitedInThisGraph == this.nodes.length) { + this.isConnected = true; + } + } + }; + module2.exports = LGraph; + }, + /* 6 */ + /***/ + function(module2, exports2, __webpack_require__) { + var LGraph; + var LEdge = __webpack_require__(1); + function LGraphManager(layout) { + LGraph = __webpack_require__(5); + this.layout = layout; + this.graphs = []; + this.edges = []; + } + LGraphManager.prototype.addRoot = function() { + var ngraph = this.layout.newGraph(); + var nnode = this.layout.newNode(null); + var root = this.add(ngraph, nnode); + this.setRootGraph(root); + return this.rootGraph; + }; + LGraphManager.prototype.add = function(newGraph, parentNode, newEdge, sourceNode, targetNode) { + if (newEdge == null && sourceNode == null && targetNode == null) { + if (newGraph == null) { + throw "Graph is null!"; + } + if (parentNode == null) { + throw "Parent node is null!"; + } + if (this.graphs.indexOf(newGraph) > -1) { + throw "Graph already in this graph mgr!"; + } + this.graphs.push(newGraph); + if (newGraph.parent != null) { + throw "Already has a parent!"; + } + if (parentNode.child != null) { + throw "Already has a child!"; + } + newGraph.parent = parentNode; + parentNode.child = newGraph; + return newGraph; + } else { + targetNode = newEdge; + sourceNode = parentNode; + newEdge = newGraph; + var sourceGraph = sourceNode.getOwner(); + var targetGraph = targetNode.getOwner(); + if (!(sourceGraph != null && sourceGraph.getGraphManager() == this)) { + throw "Source not in this graph mgr!"; + } + if (!(targetGraph != null && targetGraph.getGraphManager() == this)) { + throw "Target not in this graph mgr!"; + } + if (sourceGraph == targetGraph) { + newEdge.isInterGraph = false; + return sourceGraph.add(newEdge, sourceNode, targetNode); + } else { + newEdge.isInterGraph = true; + newEdge.source = sourceNode; + newEdge.target = targetNode; + if (this.edges.indexOf(newEdge) > -1) { + throw "Edge already in inter-graph edge list!"; + } + this.edges.push(newEdge); + if (!(newEdge.source != null && newEdge.target != null)) { + throw "Edge source and/or target is null!"; + } + if (!(newEdge.source.edges.indexOf(newEdge) == -1 && newEdge.target.edges.indexOf(newEdge) == -1)) { + throw "Edge already in source and/or target incidency list!"; + } + newEdge.source.edges.push(newEdge); + newEdge.target.edges.push(newEdge); + return newEdge; + } + } + }; + LGraphManager.prototype.remove = function(lObj) { + if (lObj instanceof LGraph) { + var graph = lObj; + if (graph.getGraphManager() != this) { + throw "Graph not in this graph mgr"; + } + if (!(graph == this.rootGraph || graph.parent != null && graph.parent.graphManager == this)) { + throw "Invalid parent node!"; + } + var edgesToBeRemoved = []; + edgesToBeRemoved = edgesToBeRemoved.concat(graph.getEdges()); + var edge; + var s = edgesToBeRemoved.length; + for (var i = 0; i < s; i++) { + edge = edgesToBeRemoved[i]; + graph.remove(edge); + } + var nodesToBeRemoved = []; + nodesToBeRemoved = nodesToBeRemoved.concat(graph.getNodes()); + var node; + s = nodesToBeRemoved.length; + for (var i = 0; i < s; i++) { + node = nodesToBeRemoved[i]; + graph.remove(node); + } + if (graph == this.rootGraph) { + this.setRootGraph(null); + } + var index = this.graphs.indexOf(graph); + this.graphs.splice(index, 1); + graph.parent = null; + } else if (lObj instanceof LEdge) { + edge = lObj; + if (edge == null) { + throw "Edge is null!"; + } + if (!edge.isInterGraph) { + throw "Not an inter-graph edge!"; + } + if (!(edge.source != null && edge.target != null)) { + throw "Source and/or target is null!"; + } + if (!(edge.source.edges.indexOf(edge) != -1 && edge.target.edges.indexOf(edge) != -1)) { + throw "Source and/or target doesn't know this edge!"; + } + var index = edge.source.edges.indexOf(edge); + edge.source.edges.splice(index, 1); + index = edge.target.edges.indexOf(edge); + edge.target.edges.splice(index, 1); + if (!(edge.source.owner != null && edge.source.owner.getGraphManager() != null)) { + throw "Edge owner graph or owner graph manager is null!"; + } + if (edge.source.owner.getGraphManager().edges.indexOf(edge) == -1) { + throw "Not in owner graph manager's edge list!"; + } + var index = edge.source.owner.getGraphManager().edges.indexOf(edge); + edge.source.owner.getGraphManager().edges.splice(index, 1); + } + }; + LGraphManager.prototype.updateBounds = function() { + this.rootGraph.updateBounds(true); + }; + LGraphManager.prototype.getGraphs = function() { + return this.graphs; + }; + LGraphManager.prototype.getAllNodes = function() { + if (this.allNodes == null) { + var nodeList = []; + var graphs = this.getGraphs(); + var s = graphs.length; + for (var i = 0; i < s; i++) { + nodeList = nodeList.concat(graphs[i].getNodes()); + } + this.allNodes = nodeList; + } + return this.allNodes; + }; + LGraphManager.prototype.resetAllNodes = function() { + this.allNodes = null; + }; + LGraphManager.prototype.resetAllEdges = function() { + this.allEdges = null; + }; + LGraphManager.prototype.resetAllNodesToApplyGravitation = function() { + this.allNodesToApplyGravitation = null; + }; + LGraphManager.prototype.getAllEdges = function() { + if (this.allEdges == null) { + var edgeList = []; + var graphs = this.getGraphs(); + graphs.length; + for (var i = 0; i < graphs.length; i++) { + edgeList = edgeList.concat(graphs[i].getEdges()); + } + edgeList = edgeList.concat(this.edges); + this.allEdges = edgeList; + } + return this.allEdges; + }; + LGraphManager.prototype.getAllNodesToApplyGravitation = function() { + return this.allNodesToApplyGravitation; + }; + LGraphManager.prototype.setAllNodesToApplyGravitation = function(nodeList) { + if (this.allNodesToApplyGravitation != null) { + throw "assert failed"; + } + this.allNodesToApplyGravitation = nodeList; + }; + LGraphManager.prototype.getRoot = function() { + return this.rootGraph; + }; + LGraphManager.prototype.setRootGraph = function(graph) { + if (graph.getGraphManager() != this) { + throw "Root not in this graph mgr!"; + } + this.rootGraph = graph; + if (graph.parent == null) { + graph.parent = this.layout.newNode("Root node"); + } + }; + LGraphManager.prototype.getLayout = function() { + return this.layout; + }; + LGraphManager.prototype.isOneAncestorOfOther = function(firstNode, secondNode) { + if (!(firstNode != null && secondNode != null)) { + throw "assert failed"; + } + if (firstNode == secondNode) { + return true; + } + var ownerGraph = firstNode.getOwner(); + var parentNode; + do { + parentNode = ownerGraph.getParent(); + if (parentNode == null) { + break; + } + if (parentNode == secondNode) { + return true; + } + ownerGraph = parentNode.getOwner(); + if (ownerGraph == null) { + break; + } + } while (true); + ownerGraph = secondNode.getOwner(); + do { + parentNode = ownerGraph.getParent(); + if (parentNode == null) { + break; + } + if (parentNode == firstNode) { + return true; + } + ownerGraph = parentNode.getOwner(); + if (ownerGraph == null) { + break; + } + } while (true); + return false; + }; + LGraphManager.prototype.calcLowestCommonAncestors = function() { + var edge; + var sourceNode; + var targetNode; + var sourceAncestorGraph; + var targetAncestorGraph; + var edges = this.getAllEdges(); + var s = edges.length; + for (var i = 0; i < s; i++) { + edge = edges[i]; + sourceNode = edge.source; + targetNode = edge.target; + edge.lca = null; + edge.sourceInLca = sourceNode; + edge.targetInLca = targetNode; + if (sourceNode == targetNode) { + edge.lca = sourceNode.getOwner(); + continue; + } + sourceAncestorGraph = sourceNode.getOwner(); + while (edge.lca == null) { + edge.targetInLca = targetNode; + targetAncestorGraph = targetNode.getOwner(); + while (edge.lca == null) { + if (targetAncestorGraph == sourceAncestorGraph) { + edge.lca = targetAncestorGraph; + break; + } + if (targetAncestorGraph == this.rootGraph) { + break; + } + if (edge.lca != null) { + throw "assert failed"; + } + edge.targetInLca = targetAncestorGraph.getParent(); + targetAncestorGraph = edge.targetInLca.getOwner(); + } + if (sourceAncestorGraph == this.rootGraph) { + break; + } + if (edge.lca == null) { + edge.sourceInLca = sourceAncestorGraph.getParent(); + sourceAncestorGraph = edge.sourceInLca.getOwner(); + } + } + if (edge.lca == null) { + throw "assert failed"; + } + } + }; + LGraphManager.prototype.calcLowestCommonAncestor = function(firstNode, secondNode) { + if (firstNode == secondNode) { + return firstNode.getOwner(); + } + var firstOwnerGraph = firstNode.getOwner(); + do { + if (firstOwnerGraph == null) { + break; + } + var secondOwnerGraph = secondNode.getOwner(); + do { + if (secondOwnerGraph == null) { + break; + } + if (secondOwnerGraph == firstOwnerGraph) { + return secondOwnerGraph; + } + secondOwnerGraph = secondOwnerGraph.getParent().getOwner(); + } while (true); + firstOwnerGraph = firstOwnerGraph.getParent().getOwner(); + } while (true); + return firstOwnerGraph; + }; + LGraphManager.prototype.calcInclusionTreeDepths = function(graph, depth) { + if (graph == null && depth == null) { + graph = this.rootGraph; + depth = 1; + } + var node; + var nodes2 = graph.getNodes(); + var s = nodes2.length; + for (var i = 0; i < s; i++) { + node = nodes2[i]; + node.inclusionTreeDepth = depth; + if (node.child != null) { + this.calcInclusionTreeDepths(node.child, depth + 1); + } + } + }; + LGraphManager.prototype.includesInvalidEdge = function() { + var edge; + var s = this.edges.length; + for (var i = 0; i < s; i++) { + edge = this.edges[i]; + if (this.isOneAncestorOfOther(edge.source, edge.target)) { + return true; + } + } + return false; + }; + module2.exports = LGraphManager; + }, + /* 7 */ + /***/ + function(module2, exports2, __webpack_require__) { + var LayoutConstants = __webpack_require__(0); + function FDLayoutConstants() { + } + for (var prop in LayoutConstants) { + FDLayoutConstants[prop] = LayoutConstants[prop]; + } + FDLayoutConstants.MAX_ITERATIONS = 2500; + FDLayoutConstants.DEFAULT_EDGE_LENGTH = 50; + FDLayoutConstants.DEFAULT_SPRING_STRENGTH = 0.45; + FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = 4500; + FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = 0.4; + FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1; + FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8; + FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5; + FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = true; + FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = true; + FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3; + FDLayoutConstants.COOLING_ADAPTATION_FACTOR = 0.33; + FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT = 1e3; + FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT = 5e3; + FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100; + FDLayoutConstants.MAX_NODE_DISPLACEMENT = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3; + FDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10; + FDLayoutConstants.CONVERGENCE_CHECK_PERIOD = 100; + FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1; + FDLayoutConstants.MIN_EDGE_LENGTH = 1; + FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD = 10; + module2.exports = FDLayoutConstants; + }, + /* 8 */ + /***/ + function(module2, exports2, __webpack_require__) { + var Point2 = __webpack_require__(12); + function IGeometry() { + } + IGeometry.calcSeparationAmount = function(rectA, rectB, overlapAmount, separationBuffer) { + if (!rectA.intersects(rectB)) { + throw "assert failed"; + } + var directions = new Array(2); + this.decideDirectionsForOverlappingNodes(rectA, rectB, directions); + overlapAmount[0] = Math.min(rectA.getRight(), rectB.getRight()) - Math.max(rectA.x, rectB.x); + overlapAmount[1] = Math.min(rectA.getBottom(), rectB.getBottom()) - Math.max(rectA.y, rectB.y); + if (rectA.getX() <= rectB.getX() && rectA.getRight() >= rectB.getRight()) { + overlapAmount[0] += Math.min(rectB.getX() - rectA.getX(), rectA.getRight() - rectB.getRight()); + } else if (rectB.getX() <= rectA.getX() && rectB.getRight() >= rectA.getRight()) { + overlapAmount[0] += Math.min(rectA.getX() - rectB.getX(), rectB.getRight() - rectA.getRight()); + } + if (rectA.getY() <= rectB.getY() && rectA.getBottom() >= rectB.getBottom()) { + overlapAmount[1] += Math.min(rectB.getY() - rectA.getY(), rectA.getBottom() - rectB.getBottom()); + } else if (rectB.getY() <= rectA.getY() && rectB.getBottom() >= rectA.getBottom()) { + overlapAmount[1] += Math.min(rectA.getY() - rectB.getY(), rectB.getBottom() - rectA.getBottom()); + } + var slope = Math.abs((rectB.getCenterY() - rectA.getCenterY()) / (rectB.getCenterX() - rectA.getCenterX())); + if (rectB.getCenterY() === rectA.getCenterY() && rectB.getCenterX() === rectA.getCenterX()) { + slope = 1; + } + var moveByY = slope * overlapAmount[0]; + var moveByX = overlapAmount[1] / slope; + if (overlapAmount[0] < moveByX) { + moveByX = overlapAmount[0]; + } else { + moveByY = overlapAmount[1]; + } + overlapAmount[0] = -1 * directions[0] * (moveByX / 2 + separationBuffer); + overlapAmount[1] = -1 * directions[1] * (moveByY / 2 + separationBuffer); + }; + IGeometry.decideDirectionsForOverlappingNodes = function(rectA, rectB, directions) { + if (rectA.getCenterX() < rectB.getCenterX()) { + directions[0] = -1; + } else { + directions[0] = 1; + } + if (rectA.getCenterY() < rectB.getCenterY()) { + directions[1] = -1; + } else { + directions[1] = 1; + } + }; + IGeometry.getIntersection2 = function(rectA, rectB, result) { + var p1x = rectA.getCenterX(); + var p1y = rectA.getCenterY(); + var p2x = rectB.getCenterX(); + var p2y = rectB.getCenterY(); + if (rectA.intersects(rectB)) { + result[0] = p1x; + result[1] = p1y; + result[2] = p2x; + result[3] = p2y; + return true; + } + var topLeftAx = rectA.getX(); + var topLeftAy = rectA.getY(); + var topRightAx = rectA.getRight(); + var bottomLeftAx = rectA.getX(); + var bottomLeftAy = rectA.getBottom(); + var bottomRightAx = rectA.getRight(); + var halfWidthA = rectA.getWidthHalf(); + var halfHeightA = rectA.getHeightHalf(); + var topLeftBx = rectB.getX(); + var topLeftBy = rectB.getY(); + var topRightBx = rectB.getRight(); + var bottomLeftBx = rectB.getX(); + var bottomLeftBy = rectB.getBottom(); + var bottomRightBx = rectB.getRight(); + var halfWidthB = rectB.getWidthHalf(); + var halfHeightB = rectB.getHeightHalf(); + var clipPointAFound = false; + var clipPointBFound = false; + if (p1x === p2x) { + if (p1y > p2y) { + result[0] = p1x; + result[1] = topLeftAy; + result[2] = p2x; + result[3] = bottomLeftBy; + return false; + } else if (p1y < p2y) { + result[0] = p1x; + result[1] = bottomLeftAy; + result[2] = p2x; + result[3] = topLeftBy; + return false; + } else + ; + } else if (p1y === p2y) { + if (p1x > p2x) { + result[0] = topLeftAx; + result[1] = p1y; + result[2] = topRightBx; + result[3] = p2y; + return false; + } else if (p1x < p2x) { + result[0] = topRightAx; + result[1] = p1y; + result[2] = topLeftBx; + result[3] = p2y; + return false; + } else + ; + } else { + var slopeA = rectA.height / rectA.width; + var slopeB = rectB.height / rectB.width; + var slopePrime = (p2y - p1y) / (p2x - p1x); + var cardinalDirectionA = void 0; + var cardinalDirectionB = void 0; + var tempPointAx = void 0; + var tempPointAy = void 0; + var tempPointBx = void 0; + var tempPointBy = void 0; + if (-slopeA === slopePrime) { + if (p1x > p2x) { + result[0] = bottomLeftAx; + result[1] = bottomLeftAy; + clipPointAFound = true; + } else { + result[0] = topRightAx; + result[1] = topLeftAy; + clipPointAFound = true; + } + } else if (slopeA === slopePrime) { + if (p1x > p2x) { + result[0] = topLeftAx; + result[1] = topLeftAy; + clipPointAFound = true; + } else { + result[0] = bottomRightAx; + result[1] = bottomLeftAy; + clipPointAFound = true; + } + } + if (-slopeB === slopePrime) { + if (p2x > p1x) { + result[2] = bottomLeftBx; + result[3] = bottomLeftBy; + clipPointBFound = true; + } else { + result[2] = topRightBx; + result[3] = topLeftBy; + clipPointBFound = true; + } + } else if (slopeB === slopePrime) { + if (p2x > p1x) { + result[2] = topLeftBx; + result[3] = topLeftBy; + clipPointBFound = true; + } else { + result[2] = bottomRightBx; + result[3] = bottomLeftBy; + clipPointBFound = true; + } + } + if (clipPointAFound && clipPointBFound) { + return false; + } + if (p1x > p2x) { + if (p1y > p2y) { + cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 4); + cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 2); + } else { + cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 3); + cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 1); + } + } else { + if (p1y > p2y) { + cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 1); + cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 3); + } else { + cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 2); + cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 4); + } + } + if (!clipPointAFound) { + switch (cardinalDirectionA) { + case 1: + tempPointAy = topLeftAy; + tempPointAx = p1x + -halfHeightA / slopePrime; + result[0] = tempPointAx; + result[1] = tempPointAy; + break; + case 2: + tempPointAx = bottomRightAx; + tempPointAy = p1y + halfWidthA * slopePrime; + result[0] = tempPointAx; + result[1] = tempPointAy; + break; + case 3: + tempPointAy = bottomLeftAy; + tempPointAx = p1x + halfHeightA / slopePrime; + result[0] = tempPointAx; + result[1] = tempPointAy; + break; + case 4: + tempPointAx = bottomLeftAx; + tempPointAy = p1y + -halfWidthA * slopePrime; + result[0] = tempPointAx; + result[1] = tempPointAy; + break; + } + } + if (!clipPointBFound) { + switch (cardinalDirectionB) { + case 1: + tempPointBy = topLeftBy; + tempPointBx = p2x + -halfHeightB / slopePrime; + result[2] = tempPointBx; + result[3] = tempPointBy; + break; + case 2: + tempPointBx = bottomRightBx; + tempPointBy = p2y + halfWidthB * slopePrime; + result[2] = tempPointBx; + result[3] = tempPointBy; + break; + case 3: + tempPointBy = bottomLeftBy; + tempPointBx = p2x + halfHeightB / slopePrime; + result[2] = tempPointBx; + result[3] = tempPointBy; + break; + case 4: + tempPointBx = bottomLeftBx; + tempPointBy = p2y + -halfWidthB * slopePrime; + result[2] = tempPointBx; + result[3] = tempPointBy; + break; + } + } + } + return false; + }; + IGeometry.getCardinalDirection = function(slope, slopePrime, line) { + if (slope > slopePrime) { + return line; + } else { + return 1 + line % 4; + } + }; + IGeometry.getIntersection = function(s1, s2, f1, f2) { + if (f2 == null) { + return this.getIntersection2(s1, s2, f1); + } + var x1 = s1.x; + var y1 = s1.y; + var x2 = s2.x; + var y2 = s2.y; + var x3 = f1.x; + var y3 = f1.y; + var x4 = f2.x; + var y4 = f2.y; + var x = void 0, y = void 0; + var a1 = void 0, a2 = void 0, b1 = void 0, b2 = void 0, c1 = void 0, c2 = void 0; + var denom = void 0; + a1 = y2 - y1; + b1 = x1 - x2; + c1 = x2 * y1 - x1 * y2; + a2 = y4 - y3; + b2 = x3 - x4; + c2 = x4 * y3 - x3 * y4; + denom = a1 * b2 - a2 * b1; + if (denom === 0) { + return null; + } + x = (b1 * c2 - b2 * c1) / denom; + y = (a2 * c1 - a1 * c2) / denom; + return new Point2(x, y); + }; + IGeometry.angleOfVector = function(Cx, Cy, Nx, Ny) { + var C_angle = void 0; + if (Cx !== Nx) { + C_angle = Math.atan((Ny - Cy) / (Nx - Cx)); + if (Nx < Cx) { + C_angle += Math.PI; + } else if (Ny < Cy) { + C_angle += this.TWO_PI; + } + } else if (Ny < Cy) { + C_angle = this.ONE_AND_HALF_PI; + } else { + C_angle = this.HALF_PI; + } + return C_angle; + }; + IGeometry.doIntersect = function(p1, p2, p3, p4) { + var a = p1.x; + var b = p1.y; + var c = p2.x; + var d = p2.y; + var p = p3.x; + var q = p3.y; + var r = p4.x; + var s = p4.y; + var det = (c - a) * (s - q) - (r - p) * (d - b); + if (det === 0) { + return false; + } else { + var lambda = ((s - q) * (r - a) + (p - r) * (s - b)) / det; + var gamma = ((b - d) * (r - a) + (c - a) * (s - b)) / det; + return 0 < lambda && lambda < 1 && 0 < gamma && gamma < 1; + } + }; + IGeometry.HALF_PI = 0.5 * Math.PI; + IGeometry.ONE_AND_HALF_PI = 1.5 * Math.PI; + IGeometry.TWO_PI = 2 * Math.PI; + IGeometry.THREE_PI = 3 * Math.PI; + module2.exports = IGeometry; + }, + /* 9 */ + /***/ + function(module2, exports2, __webpack_require__) { + function IMath() { + } + IMath.sign = function(value) { + if (value > 0) { + return 1; + } else if (value < 0) { + return -1; + } else { + return 0; + } + }; + IMath.floor = function(value) { + return value < 0 ? Math.ceil(value) : Math.floor(value); + }; + IMath.ceil = function(value) { + return value < 0 ? Math.floor(value) : Math.ceil(value); + }; + module2.exports = IMath; + }, + /* 10 */ + /***/ + function(module2, exports2, __webpack_require__) { + function Integer() { + } + Integer.MAX_VALUE = 2147483647; + Integer.MIN_VALUE = -2147483648; + module2.exports = Integer; + }, + /* 11 */ + /***/ + function(module2, exports2, __webpack_require__) { + var _createClass = function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + return function(Constructor, protoProps, staticProps) { + if (protoProps) + defineProperties(Constructor.prototype, protoProps); + if (staticProps) + defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + function _classCallCheck(instance2, Constructor) { + if (!(instance2 instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var nodeFrom = function nodeFrom2(value) { + return { value, next: null, prev: null }; + }; + var add = function add2(prev, node, next2, list) { + if (prev !== null) { + prev.next = node; + } else { + list.head = node; + } + if (next2 !== null) { + next2.prev = node; + } else { + list.tail = node; + } + node.prev = prev; + node.next = next2; + list.length++; + return node; + }; + var _remove = function _remove2(node, list) { + var prev = node.prev, next2 = node.next; + if (prev !== null) { + prev.next = next2; + } else { + list.head = next2; + } + if (next2 !== null) { + next2.prev = prev; + } else { + list.tail = prev; + } + node.prev = node.next = null; + list.length--; + return node; + }; + var LinkedList = function() { + function LinkedList2(vals) { + var _this = this; + _classCallCheck(this, LinkedList2); + this.length = 0; + this.head = null; + this.tail = null; + if (vals != null) { + vals.forEach(function(v) { + return _this.push(v); + }); + } + } + _createClass(LinkedList2, [{ + key: "size", + value: function size() { + return this.length; + } + }, { + key: "insertBefore", + value: function insertBefore(val, otherNode) { + return add(otherNode.prev, nodeFrom(val), otherNode, this); + } + }, { + key: "insertAfter", + value: function insertAfter(val, otherNode) { + return add(otherNode, nodeFrom(val), otherNode.next, this); + } + }, { + key: "insertNodeBefore", + value: function insertNodeBefore(newNode, otherNode) { + return add(otherNode.prev, newNode, otherNode, this); + } + }, { + key: "insertNodeAfter", + value: function insertNodeAfter(newNode, otherNode) { + return add(otherNode, newNode, otherNode.next, this); + } + }, { + key: "push", + value: function push(val) { + return add(this.tail, nodeFrom(val), null, this); + } + }, { + key: "unshift", + value: function unshift(val) { + return add(null, nodeFrom(val), this.head, this); + } + }, { + key: "remove", + value: function remove(node) { + return _remove(node, this); + } + }, { + key: "pop", + value: function pop() { + return _remove(this.tail, this).value; + } + }, { + key: "popNode", + value: function popNode() { + return _remove(this.tail, this); + } + }, { + key: "shift", + value: function shift() { + return _remove(this.head, this).value; + } + }, { + key: "shiftNode", + value: function shiftNode() { + return _remove(this.head, this); + } + }, { + key: "get_object_at", + value: function get_object_at(index) { + if (index <= this.length()) { + var i = 1; + var current = this.head; + while (i < index) { + current = current.next; + i++; + } + return current.value; + } + } + }, { + key: "set_object_at", + value: function set_object_at(index, value) { + if (index <= this.length()) { + var i = 1; + var current = this.head; + while (i < index) { + current = current.next; + i++; + } + current.value = value; + } + } + }]); + return LinkedList2; + }(); + module2.exports = LinkedList; + }, + /* 12 */ + /***/ + function(module2, exports2, __webpack_require__) { + function Point2(x, y, p) { + this.x = null; + this.y = null; + if (x == null && y == null && p == null) { + this.x = 0; + this.y = 0; + } else if (typeof x == "number" && typeof y == "number" && p == null) { + this.x = x; + this.y = y; + } else if (x.constructor.name == "Point" && y == null && p == null) { + p = x; + this.x = p.x; + this.y = p.y; + } + } + Point2.prototype.getX = function() { + return this.x; + }; + Point2.prototype.getY = function() { + return this.y; + }; + Point2.prototype.getLocation = function() { + return new Point2(this.x, this.y); + }; + Point2.prototype.setLocation = function(x, y, p) { + if (x.constructor.name == "Point" && y == null && p == null) { + p = x; + this.setLocation(p.x, p.y); + } else if (typeof x == "number" && typeof y == "number" && p == null) { + if (parseInt(x) == x && parseInt(y) == y) { + this.move(x, y); + } else { + this.x = Math.floor(x + 0.5); + this.y = Math.floor(y + 0.5); + } + } + }; + Point2.prototype.move = function(x, y) { + this.x = x; + this.y = y; + }; + Point2.prototype.translate = function(dx, dy) { + this.x += dx; + this.y += dy; + }; + Point2.prototype.equals = function(obj) { + if (obj.constructor.name == "Point") { + var pt = obj; + return this.x == pt.x && this.y == pt.y; + } + return this == obj; + }; + Point2.prototype.toString = function() { + return new Point2().constructor.name + "[x=" + this.x + ",y=" + this.y + "]"; + }; + module2.exports = Point2; + }, + /* 13 */ + /***/ + function(module2, exports2, __webpack_require__) { + function RectangleD(x, y, width, height) { + this.x = 0; + this.y = 0; + this.width = 0; + this.height = 0; + if (x != null && y != null && width != null && height != null) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } + } + RectangleD.prototype.getX = function() { + return this.x; + }; + RectangleD.prototype.setX = function(x) { + this.x = x; + }; + RectangleD.prototype.getY = function() { + return this.y; + }; + RectangleD.prototype.setY = function(y) { + this.y = y; + }; + RectangleD.prototype.getWidth = function() { + return this.width; + }; + RectangleD.prototype.setWidth = function(width) { + this.width = width; + }; + RectangleD.prototype.getHeight = function() { + return this.height; + }; + RectangleD.prototype.setHeight = function(height) { + this.height = height; + }; + RectangleD.prototype.getRight = function() { + return this.x + this.width; + }; + RectangleD.prototype.getBottom = function() { + return this.y + this.height; + }; + RectangleD.prototype.intersects = function(a) { + if (this.getRight() < a.x) { + return false; + } + if (this.getBottom() < a.y) { + return false; + } + if (a.getRight() < this.x) { + return false; + } + if (a.getBottom() < this.y) { + return false; + } + return true; + }; + RectangleD.prototype.getCenterX = function() { + return this.x + this.width / 2; + }; + RectangleD.prototype.getMinX = function() { + return this.getX(); + }; + RectangleD.prototype.getMaxX = function() { + return this.getX() + this.width; + }; + RectangleD.prototype.getCenterY = function() { + return this.y + this.height / 2; + }; + RectangleD.prototype.getMinY = function() { + return this.getY(); + }; + RectangleD.prototype.getMaxY = function() { + return this.getY() + this.height; + }; + RectangleD.prototype.getWidthHalf = function() { + return this.width / 2; + }; + RectangleD.prototype.getHeightHalf = function() { + return this.height / 2; + }; + module2.exports = RectangleD; + }, + /* 14 */ + /***/ + function(module2, exports2, __webpack_require__) { + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + function UniqueIDGeneretor() { + } + UniqueIDGeneretor.lastID = 0; + UniqueIDGeneretor.createID = function(obj) { + if (UniqueIDGeneretor.isPrimitive(obj)) { + return obj; + } + if (obj.uniqueID != null) { + return obj.uniqueID; + } + obj.uniqueID = UniqueIDGeneretor.getString(); + UniqueIDGeneretor.lastID++; + return obj.uniqueID; + }; + UniqueIDGeneretor.getString = function(id) { + if (id == null) + id = UniqueIDGeneretor.lastID; + return "Object#" + id; + }; + UniqueIDGeneretor.isPrimitive = function(arg) { + var type = typeof arg === "undefined" ? "undefined" : _typeof(arg); + return arg == null || type != "object" && type != "function"; + }; + module2.exports = UniqueIDGeneretor; + }, + /* 15 */ + /***/ + function(module2, exports2, __webpack_require__) { + function _toConsumableArray(arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { + arr2[i] = arr[i]; + } + return arr2; + } else { + return Array.from(arr); + } + } + var LayoutConstants = __webpack_require__(0); + var LGraphManager = __webpack_require__(6); + var LNode = __webpack_require__(3); + var LEdge = __webpack_require__(1); + var LGraph = __webpack_require__(5); + var PointD = __webpack_require__(4); + var Transform = __webpack_require__(17); + var Emitter = __webpack_require__(27); + function Layout2(isRemoteUse) { + Emitter.call(this); + this.layoutQuality = LayoutConstants.QUALITY; + this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED; + this.incremental = LayoutConstants.DEFAULT_INCREMENTAL; + this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT; + this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT; + this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD; + this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES; + this.edgeToDummyNodes = /* @__PURE__ */ new Map(); + this.graphManager = new LGraphManager(this); + this.isLayoutFinished = false; + this.isSubLayout = false; + this.isRemoteUse = false; + if (isRemoteUse != null) { + this.isRemoteUse = isRemoteUse; + } + } + Layout2.RANDOM_SEED = 1; + Layout2.prototype = Object.create(Emitter.prototype); + Layout2.prototype.getGraphManager = function() { + return this.graphManager; + }; + Layout2.prototype.getAllNodes = function() { + return this.graphManager.getAllNodes(); + }; + Layout2.prototype.getAllEdges = function() { + return this.graphManager.getAllEdges(); + }; + Layout2.prototype.getAllNodesToApplyGravitation = function() { + return this.graphManager.getAllNodesToApplyGravitation(); + }; + Layout2.prototype.newGraphManager = function() { + var gm = new LGraphManager(this); + this.graphManager = gm; + return gm; + }; + Layout2.prototype.newGraph = function(vGraph) { + return new LGraph(null, this.graphManager, vGraph); + }; + Layout2.prototype.newNode = function(vNode) { + return new LNode(this.graphManager, vNode); + }; + Layout2.prototype.newEdge = function(vEdge) { + return new LEdge(null, null, vEdge); + }; + Layout2.prototype.checkLayoutSuccess = function() { + return this.graphManager.getRoot() == null || this.graphManager.getRoot().getNodes().length == 0 || this.graphManager.includesInvalidEdge(); + }; + Layout2.prototype.runLayout = function() { + this.isLayoutFinished = false; + if (this.tilingPreLayout) { + this.tilingPreLayout(); + } + this.initParameters(); + var isLayoutSuccessfull; + if (this.checkLayoutSuccess()) { + isLayoutSuccessfull = false; + } else { + isLayoutSuccessfull = this.layout(); + } + if (LayoutConstants.ANIMATE === "during") { + return false; + } + if (isLayoutSuccessfull) { + if (!this.isSubLayout) { + this.doPostLayout(); + } + } + if (this.tilingPostLayout) { + this.tilingPostLayout(); + } + this.isLayoutFinished = true; + return isLayoutSuccessfull; + }; + Layout2.prototype.doPostLayout = function() { + if (!this.incremental) { + this.transform(); + } + this.update(); + }; + Layout2.prototype.update2 = function() { + if (this.createBendsAsNeeded) { + this.createBendpointsFromDummyNodes(); + this.graphManager.resetAllEdges(); + } + if (!this.isRemoteUse) { + var allEdges = this.graphManager.getAllEdges(); + for (var i = 0; i < allEdges.length; i++) { + allEdges[i]; + } + var nodes2 = this.graphManager.getRoot().getNodes(); + for (var i = 0; i < nodes2.length; i++) { + nodes2[i]; + } + this.update(this.graphManager.getRoot()); + } + }; + Layout2.prototype.update = function(obj) { + if (obj == null) { + this.update2(); + } else if (obj instanceof LNode) { + var node = obj; + if (node.getChild() != null) { + var nodes2 = node.getChild().getNodes(); + for (var i = 0; i < nodes2.length; i++) { + update(nodes2[i]); + } + } + if (node.vGraphObject != null) { + var vNode = node.vGraphObject; + vNode.update(node); + } + } else if (obj instanceof LEdge) { + var edge = obj; + if (edge.vGraphObject != null) { + var vEdge = edge.vGraphObject; + vEdge.update(edge); + } + } else if (obj instanceof LGraph) { + var graph = obj; + if (graph.vGraphObject != null) { + var vGraph = graph.vGraphObject; + vGraph.update(graph); + } + } + }; + Layout2.prototype.initParameters = function() { + if (!this.isSubLayout) { + this.layoutQuality = LayoutConstants.QUALITY; + this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT; + this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD; + this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT; + this.incremental = LayoutConstants.DEFAULT_INCREMENTAL; + this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED; + this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES; + } + if (this.animationDuringLayout) { + this.animationOnLayout = false; + } + }; + Layout2.prototype.transform = function(newLeftTop) { + if (newLeftTop == void 0) { + this.transform(new PointD(0, 0)); + } else { + var trans = new Transform(); + var leftTop = this.graphManager.getRoot().updateLeftTop(); + if (leftTop != null) { + trans.setWorldOrgX(newLeftTop.x); + trans.setWorldOrgY(newLeftTop.y); + trans.setDeviceOrgX(leftTop.x); + trans.setDeviceOrgY(leftTop.y); + var nodes2 = this.getAllNodes(); + var node; + for (var i = 0; i < nodes2.length; i++) { + node = nodes2[i]; + node.transform(trans); + } + } + } + }; + Layout2.prototype.positionNodesRandomly = function(graph) { + if (graph == void 0) { + this.positionNodesRandomly(this.getGraphManager().getRoot()); + this.getGraphManager().getRoot().updateBounds(true); + } else { + var lNode; + var childGraph; + var nodes2 = graph.getNodes(); + for (var i = 0; i < nodes2.length; i++) { + lNode = nodes2[i]; + childGraph = lNode.getChild(); + if (childGraph == null) { + lNode.scatter(); + } else if (childGraph.getNodes().length == 0) { + lNode.scatter(); + } else { + this.positionNodesRandomly(childGraph); + lNode.updateBounds(); + } + } + } + }; + Layout2.prototype.getFlatForest = function() { + var flatForest = []; + var isForest = true; + var allNodes = this.graphManager.getRoot().getNodes(); + var isFlat = true; + for (var i = 0; i < allNodes.length; i++) { + if (allNodes[i].getChild() != null) { + isFlat = false; + } + } + if (!isFlat) { + return flatForest; + } + var visited = /* @__PURE__ */ new Set(); + var toBeVisited = []; + var parents = /* @__PURE__ */ new Map(); + var unProcessedNodes = []; + unProcessedNodes = unProcessedNodes.concat(allNodes); + while (unProcessedNodes.length > 0 && isForest) { + toBeVisited.push(unProcessedNodes[0]); + while (toBeVisited.length > 0 && isForest) { + var currentNode = toBeVisited[0]; + toBeVisited.splice(0, 1); + visited.add(currentNode); + var neighborEdges = currentNode.getEdges(); + for (var i = 0; i < neighborEdges.length; i++) { + var currentNeighbor = neighborEdges[i].getOtherEnd(currentNode); + if (parents.get(currentNode) != currentNeighbor) { + if (!visited.has(currentNeighbor)) { + toBeVisited.push(currentNeighbor); + parents.set(currentNeighbor, currentNode); + } else { + isForest = false; + break; + } + } + } + } + if (!isForest) { + flatForest = []; + } else { + var temp = [].concat(_toConsumableArray(visited)); + flatForest.push(temp); + for (var i = 0; i < temp.length; i++) { + var value = temp[i]; + var index = unProcessedNodes.indexOf(value); + if (index > -1) { + unProcessedNodes.splice(index, 1); + } + } + visited = /* @__PURE__ */ new Set(); + parents = /* @__PURE__ */ new Map(); + } + } + return flatForest; + }; + Layout2.prototype.createDummyNodesForBendpoints = function(edge) { + var dummyNodes = []; + var prev = edge.source; + var graph = this.graphManager.calcLowestCommonAncestor(edge.source, edge.target); + for (var i = 0; i < edge.bendpoints.length; i++) { + var dummyNode = this.newNode(null); + dummyNode.setRect(new Point(0, 0), new Dimension(1, 1)); + graph.add(dummyNode); + var dummyEdge = this.newEdge(null); + this.graphManager.add(dummyEdge, prev, dummyNode); + dummyNodes.add(dummyNode); + prev = dummyNode; + } + var dummyEdge = this.newEdge(null); + this.graphManager.add(dummyEdge, prev, edge.target); + this.edgeToDummyNodes.set(edge, dummyNodes); + if (edge.isInterGraph()) { + this.graphManager.remove(edge); + } else { + graph.remove(edge); + } + return dummyNodes; + }; + Layout2.prototype.createBendpointsFromDummyNodes = function() { + var edges = []; + edges = edges.concat(this.graphManager.getAllEdges()); + edges = [].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges); + for (var k = 0; k < edges.length; k++) { + var lEdge = edges[k]; + if (lEdge.bendpoints.length > 0) { + var path = this.edgeToDummyNodes.get(lEdge); + for (var i = 0; i < path.length; i++) { + var dummyNode = path[i]; + var p = new PointD(dummyNode.getCenterX(), dummyNode.getCenterY()); + var ebp = lEdge.bendpoints.get(i); + ebp.x = p.x; + ebp.y = p.y; + dummyNode.getOwner().remove(dummyNode); + } + this.graphManager.add(lEdge, lEdge.source, lEdge.target); + } + } + }; + Layout2.transform = function(sliderValue, defaultValue, minDiv, maxMul) { + if (minDiv != void 0 && maxMul != void 0) { + var value = defaultValue; + if (sliderValue <= 50) { + var minValue = defaultValue / minDiv; + value -= (defaultValue - minValue) / 50 * (50 - sliderValue); + } else { + var maxValue = defaultValue * maxMul; + value += (maxValue - defaultValue) / 50 * (sliderValue - 50); + } + return value; + } else { + var a, b; + if (sliderValue <= 50) { + a = 9 * defaultValue / 500; + b = defaultValue / 10; + } else { + a = 9 * defaultValue / 50; + b = -8 * defaultValue; + } + return a * sliderValue + b; + } + }; + Layout2.findCenterOfTree = function(nodes2) { + var list = []; + list = list.concat(nodes2); + var removedNodes = []; + var remainingDegrees = /* @__PURE__ */ new Map(); + var foundCenter = false; + var centerNode = null; + if (list.length == 1 || list.length == 2) { + foundCenter = true; + centerNode = list[0]; + } + for (var i = 0; i < list.length; i++) { + var node = list[i]; + var degree = node.getNeighborsList().size; + remainingDegrees.set(node, node.getNeighborsList().size); + if (degree == 1) { + removedNodes.push(node); + } + } + var tempList = []; + tempList = tempList.concat(removedNodes); + while (!foundCenter) { + var tempList2 = []; + tempList2 = tempList2.concat(tempList); + tempList = []; + for (var i = 0; i < list.length; i++) { + var node = list[i]; + var index = list.indexOf(node); + if (index >= 0) { + list.splice(index, 1); + } + var neighbours = node.getNeighborsList(); + neighbours.forEach(function(neighbour) { + if (removedNodes.indexOf(neighbour) < 0) { + var otherDegree = remainingDegrees.get(neighbour); + var newDegree = otherDegree - 1; + if (newDegree == 1) { + tempList.push(neighbour); + } + remainingDegrees.set(neighbour, newDegree); + } + }); + } + removedNodes = removedNodes.concat(tempList); + if (list.length == 1 || list.length == 2) { + foundCenter = true; + centerNode = list[0]; + } + } + return centerNode; + }; + Layout2.prototype.setGraphManager = function(gm) { + this.graphManager = gm; + }; + module2.exports = Layout2; + }, + /* 16 */ + /***/ + function(module2, exports2, __webpack_require__) { + function RandomSeed() { + } + RandomSeed.seed = 1; + RandomSeed.x = 0; + RandomSeed.nextDouble = function() { + RandomSeed.x = Math.sin(RandomSeed.seed++) * 1e4; + return RandomSeed.x - Math.floor(RandomSeed.x); + }; + module2.exports = RandomSeed; + }, + /* 17 */ + /***/ + function(module2, exports2, __webpack_require__) { + var PointD = __webpack_require__(4); + function Transform(x, y) { + this.lworldOrgX = 0; + this.lworldOrgY = 0; + this.ldeviceOrgX = 0; + this.ldeviceOrgY = 0; + this.lworldExtX = 1; + this.lworldExtY = 1; + this.ldeviceExtX = 1; + this.ldeviceExtY = 1; + } + Transform.prototype.getWorldOrgX = function() { + return this.lworldOrgX; + }; + Transform.prototype.setWorldOrgX = function(wox) { + this.lworldOrgX = wox; + }; + Transform.prototype.getWorldOrgY = function() { + return this.lworldOrgY; + }; + Transform.prototype.setWorldOrgY = function(woy) { + this.lworldOrgY = woy; + }; + Transform.prototype.getWorldExtX = function() { + return this.lworldExtX; + }; + Transform.prototype.setWorldExtX = function(wex) { + this.lworldExtX = wex; + }; + Transform.prototype.getWorldExtY = function() { + return this.lworldExtY; + }; + Transform.prototype.setWorldExtY = function(wey) { + this.lworldExtY = wey; + }; + Transform.prototype.getDeviceOrgX = function() { + return this.ldeviceOrgX; + }; + Transform.prototype.setDeviceOrgX = function(dox) { + this.ldeviceOrgX = dox; + }; + Transform.prototype.getDeviceOrgY = function() { + return this.ldeviceOrgY; + }; + Transform.prototype.setDeviceOrgY = function(doy) { + this.ldeviceOrgY = doy; + }; + Transform.prototype.getDeviceExtX = function() { + return this.ldeviceExtX; + }; + Transform.prototype.setDeviceExtX = function(dex) { + this.ldeviceExtX = dex; + }; + Transform.prototype.getDeviceExtY = function() { + return this.ldeviceExtY; + }; + Transform.prototype.setDeviceExtY = function(dey) { + this.ldeviceExtY = dey; + }; + Transform.prototype.transformX = function(x) { + var xDevice = 0; + var worldExtX = this.lworldExtX; + if (worldExtX != 0) { + xDevice = this.ldeviceOrgX + (x - this.lworldOrgX) * this.ldeviceExtX / worldExtX; + } + return xDevice; + }; + Transform.prototype.transformY = function(y) { + var yDevice = 0; + var worldExtY = this.lworldExtY; + if (worldExtY != 0) { + yDevice = this.ldeviceOrgY + (y - this.lworldOrgY) * this.ldeviceExtY / worldExtY; + } + return yDevice; + }; + Transform.prototype.inverseTransformX = function(x) { + var xWorld = 0; + var deviceExtX = this.ldeviceExtX; + if (deviceExtX != 0) { + xWorld = this.lworldOrgX + (x - this.ldeviceOrgX) * this.lworldExtX / deviceExtX; + } + return xWorld; + }; + Transform.prototype.inverseTransformY = function(y) { + var yWorld = 0; + var deviceExtY = this.ldeviceExtY; + if (deviceExtY != 0) { + yWorld = this.lworldOrgY + (y - this.ldeviceOrgY) * this.lworldExtY / deviceExtY; + } + return yWorld; + }; + Transform.prototype.inverseTransformPoint = function(inPoint) { + var outPoint = new PointD(this.inverseTransformX(inPoint.x), this.inverseTransformY(inPoint.y)); + return outPoint; + }; + module2.exports = Transform; + }, + /* 18 */ + /***/ + function(module2, exports2, __webpack_require__) { + function _toConsumableArray(arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { + arr2[i] = arr[i]; + } + return arr2; + } else { + return Array.from(arr); + } + } + var Layout2 = __webpack_require__(15); + var FDLayoutConstants = __webpack_require__(7); + var LayoutConstants = __webpack_require__(0); + var IGeometry = __webpack_require__(8); + var IMath = __webpack_require__(9); + function FDLayout() { + Layout2.call(this); + this.useSmartIdealEdgeLengthCalculation = FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION; + this.idealEdgeLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH; + this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH; + this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH; + this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH; + this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH; + this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR; + this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR; + this.displacementThresholdPerNode = 3 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100; + this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL; + this.initialCoolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL; + this.totalDisplacement = 0; + this.oldTotalDisplacement = 0; + this.maxIterations = FDLayoutConstants.MAX_ITERATIONS; + } + FDLayout.prototype = Object.create(Layout2.prototype); + for (var prop in Layout2) { + FDLayout[prop] = Layout2[prop]; + } + FDLayout.prototype.initParameters = function() { + Layout2.prototype.initParameters.call(this, arguments); + this.totalIterations = 0; + this.notAnimatedIterations = 0; + this.useFRGridVariant = FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION; + this.grid = []; + }; + FDLayout.prototype.calcIdealEdgeLengths = function() { + var edge; + var lcaDepth; + var source; + var target; + var sizeOfSourceInLca; + var sizeOfTargetInLca; + var allEdges = this.getGraphManager().getAllEdges(); + for (var i = 0; i < allEdges.length; i++) { + edge = allEdges[i]; + edge.idealLength = this.idealEdgeLength; + if (edge.isInterGraph) { + source = edge.getSource(); + target = edge.getTarget(); + sizeOfSourceInLca = edge.getSourceInLca().getEstimatedSize(); + sizeOfTargetInLca = edge.getTargetInLca().getEstimatedSize(); + if (this.useSmartIdealEdgeLengthCalculation) { + edge.idealLength += sizeOfSourceInLca + sizeOfTargetInLca - 2 * LayoutConstants.SIMPLE_NODE_SIZE; + } + lcaDepth = edge.getLca().getInclusionTreeDepth(); + edge.idealLength += FDLayoutConstants.DEFAULT_EDGE_LENGTH * FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (source.getInclusionTreeDepth() + target.getInclusionTreeDepth() - 2 * lcaDepth); + } + } + }; + FDLayout.prototype.initSpringEmbedder = function() { + var s = this.getAllNodes().length; + if (this.incremental) { + if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) { + this.coolingFactor = Math.max(this.coolingFactor * FDLayoutConstants.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR)); + } + this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL; + } else { + if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) { + this.coolingFactor = Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR, 1 - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR)); + } else { + this.coolingFactor = 1; + } + this.initialCoolingFactor = this.coolingFactor; + this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT; + } + this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations); + this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length; + this.repulsionRange = this.calcRepulsionRange(); + }; + FDLayout.prototype.calcSpringForces = function() { + var lEdges = this.getAllEdges(); + var edge; + for (var i = 0; i < lEdges.length; i++) { + edge = lEdges[i]; + this.calcSpringForce(edge, edge.idealLength); + } + }; + FDLayout.prototype.calcRepulsionForces = function() { + var gridUpdateAllowed = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true; + var forceToNodeSurroundingUpdate = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; + var i, j; + var nodeA, nodeB; + var lNodes = this.getAllNodes(); + var processedNodeSet; + if (this.useFRGridVariant) { + if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed) { + this.updateGrid(); + } + processedNodeSet = /* @__PURE__ */ new Set(); + for (i = 0; i < lNodes.length; i++) { + nodeA = lNodes[i]; + this.calculateRepulsionForceOfANode(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate); + processedNodeSet.add(nodeA); + } + } else { + for (i = 0; i < lNodes.length; i++) { + nodeA = lNodes[i]; + for (j = i + 1; j < lNodes.length; j++) { + nodeB = lNodes[j]; + if (nodeA.getOwner() != nodeB.getOwner()) { + continue; + } + this.calcRepulsionForce(nodeA, nodeB); + } + } + } + }; + FDLayout.prototype.calcGravitationalForces = function() { + var node; + var lNodes = this.getAllNodesToApplyGravitation(); + for (var i = 0; i < lNodes.length; i++) { + node = lNodes[i]; + this.calcGravitationalForce(node); + } + }; + FDLayout.prototype.moveNodes = function() { + var lNodes = this.getAllNodes(); + var node; + for (var i = 0; i < lNodes.length; i++) { + node = lNodes[i]; + node.move(); + } + }; + FDLayout.prototype.calcSpringForce = function(edge, idealLength) { + var sourceNode = edge.getSource(); + var targetNode = edge.getTarget(); + var length; + var springForce; + var springForceX; + var springForceY; + if (this.uniformLeafNodeSizes && sourceNode.getChild() == null && targetNode.getChild() == null) { + edge.updateLengthSimple(); + } else { + edge.updateLength(); + if (edge.isOverlapingSourceAndTarget) { + return; + } + } + length = edge.getLength(); + if (length == 0) + return; + springForce = this.springConstant * (length - idealLength); + springForceX = springForce * (edge.lengthX / length); + springForceY = springForce * (edge.lengthY / length); + sourceNode.springForceX += springForceX; + sourceNode.springForceY += springForceY; + targetNode.springForceX -= springForceX; + targetNode.springForceY -= springForceY; + }; + FDLayout.prototype.calcRepulsionForce = function(nodeA, nodeB) { + var rectA = nodeA.getRect(); + var rectB = nodeB.getRect(); + var overlapAmount = new Array(2); + var clipPoints = new Array(4); + var distanceX; + var distanceY; + var distanceSquared; + var distance; + var repulsionForce; + var repulsionForceX; + var repulsionForceY; + if (rectA.intersects(rectB)) { + IGeometry.calcSeparationAmount(rectA, rectB, overlapAmount, FDLayoutConstants.DEFAULT_EDGE_LENGTH / 2); + repulsionForceX = 2 * overlapAmount[0]; + repulsionForceY = 2 * overlapAmount[1]; + var childrenConstant = nodeA.noOfChildren * nodeB.noOfChildren / (nodeA.noOfChildren + nodeB.noOfChildren); + nodeA.repulsionForceX -= childrenConstant * repulsionForceX; + nodeA.repulsionForceY -= childrenConstant * repulsionForceY; + nodeB.repulsionForceX += childrenConstant * repulsionForceX; + nodeB.repulsionForceY += childrenConstant * repulsionForceY; + } else { + if (this.uniformLeafNodeSizes && nodeA.getChild() == null && nodeB.getChild() == null) { + distanceX = rectB.getCenterX() - rectA.getCenterX(); + distanceY = rectB.getCenterY() - rectA.getCenterY(); + } else { + IGeometry.getIntersection(rectA, rectB, clipPoints); + distanceX = clipPoints[2] - clipPoints[0]; + distanceY = clipPoints[3] - clipPoints[1]; + } + if (Math.abs(distanceX) < FDLayoutConstants.MIN_REPULSION_DIST) { + distanceX = IMath.sign(distanceX) * FDLayoutConstants.MIN_REPULSION_DIST; + } + if (Math.abs(distanceY) < FDLayoutConstants.MIN_REPULSION_DIST) { + distanceY = IMath.sign(distanceY) * FDLayoutConstants.MIN_REPULSION_DIST; + } + distanceSquared = distanceX * distanceX + distanceY * distanceY; + distance = Math.sqrt(distanceSquared); + repulsionForce = this.repulsionConstant * nodeA.noOfChildren * nodeB.noOfChildren / distanceSquared; + repulsionForceX = repulsionForce * distanceX / distance; + repulsionForceY = repulsionForce * distanceY / distance; + nodeA.repulsionForceX -= repulsionForceX; + nodeA.repulsionForceY -= repulsionForceY; + nodeB.repulsionForceX += repulsionForceX; + nodeB.repulsionForceY += repulsionForceY; + } + }; + FDLayout.prototype.calcGravitationalForce = function(node) { + var ownerGraph; + var ownerCenterX; + var ownerCenterY; + var distanceX; + var distanceY; + var absDistanceX; + var absDistanceY; + var estimatedSize; + ownerGraph = node.getOwner(); + ownerCenterX = (ownerGraph.getRight() + ownerGraph.getLeft()) / 2; + ownerCenterY = (ownerGraph.getTop() + ownerGraph.getBottom()) / 2; + distanceX = node.getCenterX() - ownerCenterX; + distanceY = node.getCenterY() - ownerCenterY; + absDistanceX = Math.abs(distanceX) + node.getWidth() / 2; + absDistanceY = Math.abs(distanceY) + node.getHeight() / 2; + if (node.getOwner() == this.graphManager.getRoot()) { + estimatedSize = ownerGraph.getEstimatedSize() * this.gravityRangeFactor; + if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) { + node.gravitationForceX = -this.gravityConstant * distanceX; + node.gravitationForceY = -this.gravityConstant * distanceY; + } + } else { + estimatedSize = ownerGraph.getEstimatedSize() * this.compoundGravityRangeFactor; + if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) { + node.gravitationForceX = -this.gravityConstant * distanceX * this.compoundGravityConstant; + node.gravitationForceY = -this.gravityConstant * distanceY * this.compoundGravityConstant; + } + } + }; + FDLayout.prototype.isConverged = function() { + var converged; + var oscilating = false; + if (this.totalIterations > this.maxIterations / 3) { + oscilating = Math.abs(this.totalDisplacement - this.oldTotalDisplacement) < 2; + } + converged = this.totalDisplacement < this.totalDisplacementThreshold; + this.oldTotalDisplacement = this.totalDisplacement; + return converged || oscilating; + }; + FDLayout.prototype.animate = function() { + if (this.animationDuringLayout && !this.isSubLayout) { + if (this.notAnimatedIterations == this.animationPeriod) { + this.update(); + this.notAnimatedIterations = 0; + } else { + this.notAnimatedIterations++; + } + } + }; + FDLayout.prototype.calcNoOfChildrenForAllNodes = function() { + var node; + var allNodes = this.graphManager.getAllNodes(); + for (var i = 0; i < allNodes.length; i++) { + node = allNodes[i]; + node.noOfChildren = node.getNoOfChildren(); + } + }; + FDLayout.prototype.calcGrid = function(graph) { + var sizeX = 0; + var sizeY = 0; + sizeX = parseInt(Math.ceil((graph.getRight() - graph.getLeft()) / this.repulsionRange)); + sizeY = parseInt(Math.ceil((graph.getBottom() - graph.getTop()) / this.repulsionRange)); + var grid = new Array(sizeX); + for (var i = 0; i < sizeX; i++) { + grid[i] = new Array(sizeY); + } + for (var i = 0; i < sizeX; i++) { + for (var j = 0; j < sizeY; j++) { + grid[i][j] = new Array(); + } + } + return grid; + }; + FDLayout.prototype.addNodeToGrid = function(v, left, top) { + var startX = 0; + var finishX = 0; + var startY = 0; + var finishY = 0; + startX = parseInt(Math.floor((v.getRect().x - left) / this.repulsionRange)); + finishX = parseInt(Math.floor((v.getRect().width + v.getRect().x - left) / this.repulsionRange)); + startY = parseInt(Math.floor((v.getRect().y - top) / this.repulsionRange)); + finishY = parseInt(Math.floor((v.getRect().height + v.getRect().y - top) / this.repulsionRange)); + for (var i = startX; i <= finishX; i++) { + for (var j = startY; j <= finishY; j++) { + this.grid[i][j].push(v); + v.setGridCoordinates(startX, finishX, startY, finishY); + } + } + }; + FDLayout.prototype.updateGrid = function() { + var i; + var nodeA; + var lNodes = this.getAllNodes(); + this.grid = this.calcGrid(this.graphManager.getRoot()); + for (i = 0; i < lNodes.length; i++) { + nodeA = lNodes[i]; + this.addNodeToGrid(nodeA, this.graphManager.getRoot().getLeft(), this.graphManager.getRoot().getTop()); + } + }; + FDLayout.prototype.calculateRepulsionForceOfANode = function(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate) { + if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed || forceToNodeSurroundingUpdate) { + var surrounding = /* @__PURE__ */ new Set(); + nodeA.surrounding = new Array(); + var nodeB; + var grid = this.grid; + for (var i = nodeA.startX - 1; i < nodeA.finishX + 2; i++) { + for (var j = nodeA.startY - 1; j < nodeA.finishY + 2; j++) { + if (!(i < 0 || j < 0 || i >= grid.length || j >= grid[0].length)) { + for (var k = 0; k < grid[i][j].length; k++) { + nodeB = grid[i][j][k]; + if (nodeA.getOwner() != nodeB.getOwner() || nodeA == nodeB) { + continue; + } + if (!processedNodeSet.has(nodeB) && !surrounding.has(nodeB)) { + var distanceX = Math.abs(nodeA.getCenterX() - nodeB.getCenterX()) - (nodeA.getWidth() / 2 + nodeB.getWidth() / 2); + var distanceY = Math.abs(nodeA.getCenterY() - nodeB.getCenterY()) - (nodeA.getHeight() / 2 + nodeB.getHeight() / 2); + if (distanceX <= this.repulsionRange && distanceY <= this.repulsionRange) { + surrounding.add(nodeB); + } + } + } + } + } + } + nodeA.surrounding = [].concat(_toConsumableArray(surrounding)); + } + for (i = 0; i < nodeA.surrounding.length; i++) { + this.calcRepulsionForce(nodeA, nodeA.surrounding[i]); + } + }; + FDLayout.prototype.calcRepulsionRange = function() { + return 0; + }; + module2.exports = FDLayout; + }, + /* 19 */ + /***/ + function(module2, exports2, __webpack_require__) { + var LEdge = __webpack_require__(1); + var FDLayoutConstants = __webpack_require__(7); + function FDLayoutEdge(source, target, vEdge) { + LEdge.call(this, source, target, vEdge); + this.idealLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH; + } + FDLayoutEdge.prototype = Object.create(LEdge.prototype); + for (var prop in LEdge) { + FDLayoutEdge[prop] = LEdge[prop]; + } + module2.exports = FDLayoutEdge; + }, + /* 20 */ + /***/ + function(module2, exports2, __webpack_require__) { + var LNode = __webpack_require__(3); + function FDLayoutNode(gm, loc, size, vNode) { + LNode.call(this, gm, loc, size, vNode); + this.springForceX = 0; + this.springForceY = 0; + this.repulsionForceX = 0; + this.repulsionForceY = 0; + this.gravitationForceX = 0; + this.gravitationForceY = 0; + this.displacementX = 0; + this.displacementY = 0; + this.startX = 0; + this.finishX = 0; + this.startY = 0; + this.finishY = 0; + this.surrounding = []; + } + FDLayoutNode.prototype = Object.create(LNode.prototype); + for (var prop in LNode) { + FDLayoutNode[prop] = LNode[prop]; + } + FDLayoutNode.prototype.setGridCoordinates = function(_startX, _finishX, _startY, _finishY) { + this.startX = _startX; + this.finishX = _finishX; + this.startY = _startY; + this.finishY = _finishY; + }; + module2.exports = FDLayoutNode; + }, + /* 21 */ + /***/ + function(module2, exports2, __webpack_require__) { + function DimensionD2(width, height) { + this.width = 0; + this.height = 0; + if (width !== null && height !== null) { + this.height = height; + this.width = width; + } + } + DimensionD2.prototype.getWidth = function() { + return this.width; + }; + DimensionD2.prototype.setWidth = function(width) { + this.width = width; + }; + DimensionD2.prototype.getHeight = function() { + return this.height; + }; + DimensionD2.prototype.setHeight = function(height) { + this.height = height; + }; + module2.exports = DimensionD2; + }, + /* 22 */ + /***/ + function(module2, exports2, __webpack_require__) { + var UniqueIDGeneretor = __webpack_require__(14); + function HashMap() { + this.map = {}; + this.keys = []; + } + HashMap.prototype.put = function(key, value) { + var theId = UniqueIDGeneretor.createID(key); + if (!this.contains(theId)) { + this.map[theId] = value; + this.keys.push(key); + } + }; + HashMap.prototype.contains = function(key) { + UniqueIDGeneretor.createID(key); + return this.map[key] != null; + }; + HashMap.prototype.get = function(key) { + var theId = UniqueIDGeneretor.createID(key); + return this.map[theId]; + }; + HashMap.prototype.keySet = function() { + return this.keys; + }; + module2.exports = HashMap; + }, + /* 23 */ + /***/ + function(module2, exports2, __webpack_require__) { + var UniqueIDGeneretor = __webpack_require__(14); + function HashSet() { + this.set = {}; + } + HashSet.prototype.add = function(obj) { + var theId = UniqueIDGeneretor.createID(obj); + if (!this.contains(theId)) + this.set[theId] = obj; + }; + HashSet.prototype.remove = function(obj) { + delete this.set[UniqueIDGeneretor.createID(obj)]; + }; + HashSet.prototype.clear = function() { + this.set = {}; + }; + HashSet.prototype.contains = function(obj) { + return this.set[UniqueIDGeneretor.createID(obj)] == obj; + }; + HashSet.prototype.isEmpty = function() { + return this.size() === 0; + }; + HashSet.prototype.size = function() { + return Object.keys(this.set).length; + }; + HashSet.prototype.addAllTo = function(list) { + var keys = Object.keys(this.set); + var length = keys.length; + for (var i = 0; i < length; i++) { + list.push(this.set[keys[i]]); + } + }; + HashSet.prototype.size = function() { + return Object.keys(this.set).length; + }; + HashSet.prototype.addAll = function(list) { + var s = list.length; + for (var i = 0; i < s; i++) { + var v = list[i]; + this.add(v); + } + }; + module2.exports = HashSet; + }, + /* 24 */ + /***/ + function(module2, exports2, __webpack_require__) { + var _createClass = function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + return function(Constructor, protoProps, staticProps) { + if (protoProps) + defineProperties(Constructor.prototype, protoProps); + if (staticProps) + defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + function _classCallCheck(instance2, Constructor) { + if (!(instance2 instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var LinkedList = __webpack_require__(11); + var Quicksort = function() { + function Quicksort2(A, compareFunction) { + _classCallCheck(this, Quicksort2); + if (compareFunction !== null || compareFunction !== void 0) + this.compareFunction = this._defaultCompareFunction; + var length = void 0; + if (A instanceof LinkedList) + length = A.size(); + else + length = A.length; + this._quicksort(A, 0, length - 1); + } + _createClass(Quicksort2, [{ + key: "_quicksort", + value: function _quicksort(A, p, r) { + if (p < r) { + var q = this._partition(A, p, r); + this._quicksort(A, p, q); + this._quicksort(A, q + 1, r); + } + } + }, { + key: "_partition", + value: function _partition(A, p, r) { + var x = this._get(A, p); + var i = p; + var j = r; + while (true) { + while (this.compareFunction(x, this._get(A, j))) { + j--; + } + while (this.compareFunction(this._get(A, i), x)) { + i++; + } + if (i < j) { + this._swap(A, i, j); + i++; + j--; + } else + return j; + } + } + }, { + key: "_get", + value: function _get(object, index) { + if (object instanceof LinkedList) + return object.get_object_at(index); + else + return object[index]; + } + }, { + key: "_set", + value: function _set(object, index, value) { + if (object instanceof LinkedList) + object.set_object_at(index, value); + else + object[index] = value; + } + }, { + key: "_swap", + value: function _swap(A, i, j) { + var temp = this._get(A, i); + this._set(A, i, this._get(A, j)); + this._set(A, j, temp); + } + }, { + key: "_defaultCompareFunction", + value: function _defaultCompareFunction(a, b) { + return b > a; + } + }]); + return Quicksort2; + }(); + module2.exports = Quicksort; + }, + /* 25 */ + /***/ + function(module2, exports2, __webpack_require__) { + var _createClass = function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + return function(Constructor, protoProps, staticProps) { + if (protoProps) + defineProperties(Constructor.prototype, protoProps); + if (staticProps) + defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + function _classCallCheck(instance2, Constructor) { + if (!(instance2 instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var NeedlemanWunsch = function() { + function NeedlemanWunsch2(sequence1, sequence2) { + var match_score = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1; + var mismatch_penalty = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : -1; + var gap_penalty = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : -1; + _classCallCheck(this, NeedlemanWunsch2); + this.sequence1 = sequence1; + this.sequence2 = sequence2; + this.match_score = match_score; + this.mismatch_penalty = mismatch_penalty; + this.gap_penalty = gap_penalty; + this.iMax = sequence1.length + 1; + this.jMax = sequence2.length + 1; + this.grid = new Array(this.iMax); + for (var i = 0; i < this.iMax; i++) { + this.grid[i] = new Array(this.jMax); + for (var j = 0; j < this.jMax; j++) { + this.grid[i][j] = 0; + } + } + this.tracebackGrid = new Array(this.iMax); + for (var _i = 0; _i < this.iMax; _i++) { + this.tracebackGrid[_i] = new Array(this.jMax); + for (var _j = 0; _j < this.jMax; _j++) { + this.tracebackGrid[_i][_j] = [null, null, null]; + } + } + this.alignments = []; + this.score = -1; + this.computeGrids(); + } + _createClass(NeedlemanWunsch2, [{ + key: "getScore", + value: function getScore() { + return this.score; + } + }, { + key: "getAlignments", + value: function getAlignments() { + return this.alignments; + } + // Main dynamic programming procedure + }, { + key: "computeGrids", + value: function computeGrids() { + for (var j = 1; j < this.jMax; j++) { + this.grid[0][j] = this.grid[0][j - 1] + this.gap_penalty; + this.tracebackGrid[0][j] = [false, false, true]; + } + for (var i = 1; i < this.iMax; i++) { + this.grid[i][0] = this.grid[i - 1][0] + this.gap_penalty; + this.tracebackGrid[i][0] = [false, true, false]; + } + for (var _i2 = 1; _i2 < this.iMax; _i2++) { + for (var _j2 = 1; _j2 < this.jMax; _j2++) { + var diag = void 0; + if (this.sequence1[_i2 - 1] === this.sequence2[_j2 - 1]) + diag = this.grid[_i2 - 1][_j2 - 1] + this.match_score; + else + diag = this.grid[_i2 - 1][_j2 - 1] + this.mismatch_penalty; + var up = this.grid[_i2 - 1][_j2] + this.gap_penalty; + var left = this.grid[_i2][_j2 - 1] + this.gap_penalty; + var maxOf = [diag, up, left]; + var indices = this.arrayAllMaxIndexes(maxOf); + this.grid[_i2][_j2] = maxOf[indices[0]]; + this.tracebackGrid[_i2][_j2] = [indices.includes(0), indices.includes(1), indices.includes(2)]; + } + } + this.score = this.grid[this.iMax - 1][this.jMax - 1]; + } + // Gets all possible valid sequence combinations + }, { + key: "alignmentTraceback", + value: function alignmentTraceback() { + var inProcessAlignments = []; + inProcessAlignments.push({ + pos: [this.sequence1.length, this.sequence2.length], + seq1: "", + seq2: "" + }); + while (inProcessAlignments[0]) { + var current = inProcessAlignments[0]; + var directions = this.tracebackGrid[current.pos[0]][current.pos[1]]; + if (directions[0]) { + inProcessAlignments.push({ + pos: [current.pos[0] - 1, current.pos[1] - 1], + seq1: this.sequence1[current.pos[0] - 1] + current.seq1, + seq2: this.sequence2[current.pos[1] - 1] + current.seq2 + }); + } + if (directions[1]) { + inProcessAlignments.push({ + pos: [current.pos[0] - 1, current.pos[1]], + seq1: this.sequence1[current.pos[0] - 1] + current.seq1, + seq2: "-" + current.seq2 + }); + } + if (directions[2]) { + inProcessAlignments.push({ + pos: [current.pos[0], current.pos[1] - 1], + seq1: "-" + current.seq1, + seq2: this.sequence2[current.pos[1] - 1] + current.seq2 + }); + } + if (current.pos[0] === 0 && current.pos[1] === 0) + this.alignments.push({ + sequence1: current.seq1, + sequence2: current.seq2 + }); + inProcessAlignments.shift(); + } + return this.alignments; + } + // Helper Functions + }, { + key: "getAllIndexes", + value: function getAllIndexes(arr, val) { + var indexes = [], i = -1; + while ((i = arr.indexOf(val, i + 1)) !== -1) { + indexes.push(i); + } + return indexes; + } + }, { + key: "arrayAllMaxIndexes", + value: function arrayAllMaxIndexes(array) { + return this.getAllIndexes(array, Math.max.apply(null, array)); + } + }]); + return NeedlemanWunsch2; + }(); + module2.exports = NeedlemanWunsch; + }, + /* 26 */ + /***/ + function(module2, exports2, __webpack_require__) { + var layoutBase2 = function layoutBase3() { + return; + }; + layoutBase2.FDLayout = __webpack_require__(18); + layoutBase2.FDLayoutConstants = __webpack_require__(7); + layoutBase2.FDLayoutEdge = __webpack_require__(19); + layoutBase2.FDLayoutNode = __webpack_require__(20); + layoutBase2.DimensionD = __webpack_require__(21); + layoutBase2.HashMap = __webpack_require__(22); + layoutBase2.HashSet = __webpack_require__(23); + layoutBase2.IGeometry = __webpack_require__(8); + layoutBase2.IMath = __webpack_require__(9); + layoutBase2.Integer = __webpack_require__(10); + layoutBase2.Point = __webpack_require__(12); + layoutBase2.PointD = __webpack_require__(4); + layoutBase2.RandomSeed = __webpack_require__(16); + layoutBase2.RectangleD = __webpack_require__(13); + layoutBase2.Transform = __webpack_require__(17); + layoutBase2.UniqueIDGeneretor = __webpack_require__(14); + layoutBase2.Quicksort = __webpack_require__(24); + layoutBase2.LinkedList = __webpack_require__(11); + layoutBase2.LGraphObject = __webpack_require__(2); + layoutBase2.LGraph = __webpack_require__(5); + layoutBase2.LEdge = __webpack_require__(1); + layoutBase2.LGraphManager = __webpack_require__(6); + layoutBase2.LNode = __webpack_require__(3); + layoutBase2.Layout = __webpack_require__(15); + layoutBase2.LayoutConstants = __webpack_require__(0); + layoutBase2.NeedlemanWunsch = __webpack_require__(25); + module2.exports = layoutBase2; + }, + /* 27 */ + /***/ + function(module2, exports2, __webpack_require__) { + function Emitter() { + this.listeners = []; + } + var p = Emitter.prototype; + p.addListener = function(event, callback) { + this.listeners.push({ + event, + callback + }); + }; + p.removeListener = function(event, callback) { + for (var i = this.listeners.length; i >= 0; i--) { + var l = this.listeners[i]; + if (l.event === event && l.callback === callback) { + this.listeners.splice(i, 1); + } + } + }; + p.emit = function(event, data) { + for (var i = 0; i < this.listeners.length; i++) { + var l = this.listeners[i]; + if (event === l.event) { + l.callback(data); + } + } + }; + module2.exports = Emitter; + } + /******/ + ]) + ); + }); + })(layoutBase); + return layoutBase.exports; +} +var hasRequiredCoseBase; +function requireCoseBase() { + if (hasRequiredCoseBase) + return coseBase.exports; + hasRequiredCoseBase = 1; + (function(module, exports) { + (function webpackUniversalModuleDefinition(root, factory) { + module.exports = factory(requireLayoutBase()); + })(commonjsGlobal, function(__WEBPACK_EXTERNAL_MODULE_0__) { + return ( + /******/ + function(modules) { + var installedModules = {}; + function __webpack_require__(moduleId) { + if (installedModules[moduleId]) { + return installedModules[moduleId].exports; + } + var module2 = installedModules[moduleId] = { + /******/ + i: moduleId, + /******/ + l: false, + /******/ + exports: {} + /******/ + }; + modules[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__); + module2.l = true; + return module2.exports; + } + __webpack_require__.m = modules; + __webpack_require__.c = installedModules; + __webpack_require__.i = function(value) { + return value; + }; + __webpack_require__.d = function(exports2, name, getter) { + if (!__webpack_require__.o(exports2, name)) { + Object.defineProperty(exports2, name, { + /******/ + configurable: false, + /******/ + enumerable: true, + /******/ + get: getter + /******/ + }); + } + }; + __webpack_require__.n = function(module2) { + var getter = module2 && module2.__esModule ? ( + /******/ + function getDefault() { + return module2["default"]; + } + ) : ( + /******/ + function getModuleExports() { + return module2; + } + ); + __webpack_require__.d(getter, "a", getter); + return getter; + }; + __webpack_require__.o = function(object, property) { + return Object.prototype.hasOwnProperty.call(object, property); + }; + __webpack_require__.p = ""; + return __webpack_require__(__webpack_require__.s = 7); + }([ + /* 0 */ + /***/ + function(module2, exports2) { + module2.exports = __WEBPACK_EXTERNAL_MODULE_0__; + }, + /* 1 */ + /***/ + function(module2, exports2, __webpack_require__) { + var FDLayoutConstants = __webpack_require__(0).FDLayoutConstants; + function CoSEConstants() { + } + for (var prop in FDLayoutConstants) { + CoSEConstants[prop] = FDLayoutConstants[prop]; + } + CoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false; + CoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH; + CoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60; + CoSEConstants.TILE = true; + CoSEConstants.TILING_PADDING_VERTICAL = 10; + CoSEConstants.TILING_PADDING_HORIZONTAL = 10; + CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false; + module2.exports = CoSEConstants; + }, + /* 2 */ + /***/ + function(module2, exports2, __webpack_require__) { + var FDLayoutEdge = __webpack_require__(0).FDLayoutEdge; + function CoSEEdge(source, target, vEdge) { + FDLayoutEdge.call(this, source, target, vEdge); + } + CoSEEdge.prototype = Object.create(FDLayoutEdge.prototype); + for (var prop in FDLayoutEdge) { + CoSEEdge[prop] = FDLayoutEdge[prop]; + } + module2.exports = CoSEEdge; + }, + /* 3 */ + /***/ + function(module2, exports2, __webpack_require__) { + var LGraph = __webpack_require__(0).LGraph; + function CoSEGraph(parent, graphMgr, vGraph) { + LGraph.call(this, parent, graphMgr, vGraph); + } + CoSEGraph.prototype = Object.create(LGraph.prototype); + for (var prop in LGraph) { + CoSEGraph[prop] = LGraph[prop]; + } + module2.exports = CoSEGraph; + }, + /* 4 */ + /***/ + function(module2, exports2, __webpack_require__) { + var LGraphManager = __webpack_require__(0).LGraphManager; + function CoSEGraphManager(layout) { + LGraphManager.call(this, layout); + } + CoSEGraphManager.prototype = Object.create(LGraphManager.prototype); + for (var prop in LGraphManager) { + CoSEGraphManager[prop] = LGraphManager[prop]; + } + module2.exports = CoSEGraphManager; + }, + /* 5 */ + /***/ + function(module2, exports2, __webpack_require__) { + var FDLayoutNode = __webpack_require__(0).FDLayoutNode; + var IMath = __webpack_require__(0).IMath; + function CoSENode(gm, loc, size, vNode) { + FDLayoutNode.call(this, gm, loc, size, vNode); + } + CoSENode.prototype = Object.create(FDLayoutNode.prototype); + for (var prop in FDLayoutNode) { + CoSENode[prop] = FDLayoutNode[prop]; + } + CoSENode.prototype.move = function() { + var layout = this.graphManager.getLayout(); + this.displacementX = layout.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren; + this.displacementY = layout.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren; + if (Math.abs(this.displacementX) > layout.coolingFactor * layout.maxNodeDisplacement) { + this.displacementX = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementX); + } + if (Math.abs(this.displacementY) > layout.coolingFactor * layout.maxNodeDisplacement) { + this.displacementY = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementY); + } + if (this.child == null) { + this.moveBy(this.displacementX, this.displacementY); + } else if (this.child.getNodes().length == 0) { + this.moveBy(this.displacementX, this.displacementY); + } else { + this.propogateDisplacementToChildren(this.displacementX, this.displacementY); + } + layout.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY); + this.springForceX = 0; + this.springForceY = 0; + this.repulsionForceX = 0; + this.repulsionForceY = 0; + this.gravitationForceX = 0; + this.gravitationForceY = 0; + this.displacementX = 0; + this.displacementY = 0; + }; + CoSENode.prototype.propogateDisplacementToChildren = function(dX, dY) { + var nodes2 = this.getChild().getNodes(); + var node; + for (var i = 0; i < nodes2.length; i++) { + node = nodes2[i]; + if (node.getChild() == null) { + node.moveBy(dX, dY); + node.displacementX += dX; + node.displacementY += dY; + } else { + node.propogateDisplacementToChildren(dX, dY); + } + } + }; + CoSENode.prototype.setPred1 = function(pred12) { + this.pred1 = pred12; + }; + CoSENode.prototype.getPred1 = function() { + return pred1; + }; + CoSENode.prototype.getPred2 = function() { + return pred2; + }; + CoSENode.prototype.setNext = function(next2) { + this.next = next2; + }; + CoSENode.prototype.getNext = function() { + return next; + }; + CoSENode.prototype.setProcessed = function(processed2) { + this.processed = processed2; + }; + CoSENode.prototype.isProcessed = function() { + return processed; + }; + module2.exports = CoSENode; + }, + /* 6 */ + /***/ + function(module2, exports2, __webpack_require__) { + var FDLayout = __webpack_require__(0).FDLayout; + var CoSEGraphManager = __webpack_require__(4); + var CoSEGraph = __webpack_require__(3); + var CoSENode = __webpack_require__(5); + var CoSEEdge = __webpack_require__(2); + var CoSEConstants = __webpack_require__(1); + var FDLayoutConstants = __webpack_require__(0).FDLayoutConstants; + var LayoutConstants = __webpack_require__(0).LayoutConstants; + var Point2 = __webpack_require__(0).Point; + var PointD = __webpack_require__(0).PointD; + var Layout2 = __webpack_require__(0).Layout; + var Integer = __webpack_require__(0).Integer; + var IGeometry = __webpack_require__(0).IGeometry; + var LGraph = __webpack_require__(0).LGraph; + var Transform = __webpack_require__(0).Transform; + function CoSELayout() { + FDLayout.call(this); + this.toBeTiled = {}; + } + CoSELayout.prototype = Object.create(FDLayout.prototype); + for (var prop in FDLayout) { + CoSELayout[prop] = FDLayout[prop]; + } + CoSELayout.prototype.newGraphManager = function() { + var gm = new CoSEGraphManager(this); + this.graphManager = gm; + return gm; + }; + CoSELayout.prototype.newGraph = function(vGraph) { + return new CoSEGraph(null, this.graphManager, vGraph); + }; + CoSELayout.prototype.newNode = function(vNode) { + return new CoSENode(this.graphManager, vNode); + }; + CoSELayout.prototype.newEdge = function(vEdge) { + return new CoSEEdge(null, null, vEdge); + }; + CoSELayout.prototype.initParameters = function() { + FDLayout.prototype.initParameters.call(this, arguments); + if (!this.isSubLayout) { + if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) { + this.idealEdgeLength = 10; + } else { + this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH; + } + this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION; + this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH; + this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH; + this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH; + this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH; + this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR; + this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR; + this.prunedNodesAll = []; + this.growTreeIterations = 0; + this.afterGrowthIterations = 0; + this.isTreeGrowing = false; + this.isGrowthFinished = false; + this.coolingCycle = 0; + this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD; + this.finalTemperature = FDLayoutConstants.CONVERGENCE_CHECK_PERIOD / this.maxIterations; + this.coolingAdjuster = 1; + } + }; + CoSELayout.prototype.layout = function() { + var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED; + if (createBendsAsNeeded) { + this.createBendpoints(); + this.graphManager.resetAllEdges(); + } + this.level = 0; + return this.classicLayout(); + }; + CoSELayout.prototype.classicLayout = function() { + this.nodesWithGravity = this.calculateNodesToApplyGravitationTo(); + this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity); + this.calcNoOfChildrenForAllNodes(); + this.graphManager.calcLowestCommonAncestors(); + this.graphManager.calcInclusionTreeDepths(); + this.graphManager.getRoot().calcEstimatedSize(); + this.calcIdealEdgeLengths(); + if (!this.incremental) { + var forest = this.getFlatForest(); + if (forest.length > 0) { + this.positionNodesRadially(forest); + } else { + this.reduceTrees(); + this.graphManager.resetAllNodesToApplyGravitation(); + var allNodes = new Set(this.getAllNodes()); + var intersection = this.nodesWithGravity.filter(function(x) { + return allNodes.has(x); + }); + this.graphManager.setAllNodesToApplyGravitation(intersection); + this.positionNodesRandomly(); + } + } else { + if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) { + this.reduceTrees(); + this.graphManager.resetAllNodesToApplyGravitation(); + var allNodes = new Set(this.getAllNodes()); + var intersection = this.nodesWithGravity.filter(function(x) { + return allNodes.has(x); + }); + this.graphManager.setAllNodesToApplyGravitation(intersection); + } + } + this.initSpringEmbedder(); + this.runSpringEmbedder(); + return true; + }; + CoSELayout.prototype.tick = function() { + this.totalIterations++; + if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) { + if (this.prunedNodesAll.length > 0) { + this.isTreeGrowing = true; + } else { + return true; + } + } + if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) { + if (this.isConverged()) { + if (this.prunedNodesAll.length > 0) { + this.isTreeGrowing = true; + } else { + return true; + } + } + this.coolingCycle++; + if (this.layoutQuality == 0) { + this.coolingAdjuster = this.coolingCycle; + } else if (this.layoutQuality == 1) { + this.coolingAdjuster = this.coolingCycle / 3; + } + this.coolingFactor = Math.max(this.initialCoolingFactor - Math.pow(this.coolingCycle, Math.log(100 * (this.initialCoolingFactor - this.finalTemperature)) / Math.log(this.maxCoolingCycle)) / 100 * this.coolingAdjuster, this.finalTemperature); + this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor)); + } + if (this.isTreeGrowing) { + if (this.growTreeIterations % 10 == 0) { + if (this.prunedNodesAll.length > 0) { + this.graphManager.updateBounds(); + this.updateGrid(); + this.growTree(this.prunedNodesAll); + this.graphManager.resetAllNodesToApplyGravitation(); + var allNodes = new Set(this.getAllNodes()); + var intersection = this.nodesWithGravity.filter(function(x) { + return allNodes.has(x); + }); + this.graphManager.setAllNodesToApplyGravitation(intersection); + this.graphManager.updateBounds(); + this.updateGrid(); + this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL; + } else { + this.isTreeGrowing = false; + this.isGrowthFinished = true; + } + } + this.growTreeIterations++; + } + if (this.isGrowthFinished) { + if (this.isConverged()) { + return true; + } + if (this.afterGrowthIterations % 10 == 0) { + this.graphManager.updateBounds(); + this.updateGrid(); + } + this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100); + this.afterGrowthIterations++; + } + var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished; + var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished; + this.totalDisplacement = 0; + this.graphManager.updateBounds(); + this.calcSpringForces(); + this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate); + this.calcGravitationalForces(); + this.moveNodes(); + this.animate(); + return false; + }; + CoSELayout.prototype.getPositionsData = function() { + var allNodes = this.graphManager.getAllNodes(); + var pData = {}; + for (var i = 0; i < allNodes.length; i++) { + var rect = allNodes[i].rect; + var id = allNodes[i].id; + pData[id] = { + id, + x: rect.getCenterX(), + y: rect.getCenterY(), + w: rect.width, + h: rect.height + }; + } + return pData; + }; + CoSELayout.prototype.runSpringEmbedder = function() { + this.initialAnimationPeriod = 25; + this.animationPeriod = this.initialAnimationPeriod; + var layoutEnded = false; + if (FDLayoutConstants.ANIMATE === "during") { + this.emit("layoutstarted"); + } else { + while (!layoutEnded) { + layoutEnded = this.tick(); + } + this.graphManager.updateBounds(); + } + }; + CoSELayout.prototype.calculateNodesToApplyGravitationTo = function() { + var nodeList = []; + var graph; + var graphs = this.graphManager.getGraphs(); + var size = graphs.length; + var i; + for (i = 0; i < size; i++) { + graph = graphs[i]; + graph.updateConnected(); + if (!graph.isConnected) { + nodeList = nodeList.concat(graph.getNodes()); + } + } + return nodeList; + }; + CoSELayout.prototype.createBendpoints = function() { + var edges = []; + edges = edges.concat(this.graphManager.getAllEdges()); + var visited = /* @__PURE__ */ new Set(); + var i; + for (i = 0; i < edges.length; i++) { + var edge = edges[i]; + if (!visited.has(edge)) { + var source = edge.getSource(); + var target = edge.getTarget(); + if (source == target) { + edge.getBendpoints().push(new PointD()); + edge.getBendpoints().push(new PointD()); + this.createDummyNodesForBendpoints(edge); + visited.add(edge); + } else { + var edgeList = []; + edgeList = edgeList.concat(source.getEdgeListToNode(target)); + edgeList = edgeList.concat(target.getEdgeListToNode(source)); + if (!visited.has(edgeList[0])) { + if (edgeList.length > 1) { + var k; + for (k = 0; k < edgeList.length; k++) { + var multiEdge = edgeList[k]; + multiEdge.getBendpoints().push(new PointD()); + this.createDummyNodesForBendpoints(multiEdge); + } + } + edgeList.forEach(function(edge2) { + visited.add(edge2); + }); + } + } + } + if (visited.size == edges.length) { + break; + } + } + }; + CoSELayout.prototype.positionNodesRadially = function(forest) { + var currentStartingPoint = new Point2(0, 0); + var numberOfColumns = Math.ceil(Math.sqrt(forest.length)); + var height = 0; + var currentY = 0; + var currentX = 0; + var point = new PointD(0, 0); + for (var i = 0; i < forest.length; i++) { + if (i % numberOfColumns == 0) { + currentX = 0; + currentY = height; + if (i != 0) { + currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION; + } + height = 0; + } + var tree = forest[i]; + var centerNode = Layout2.findCenterOfTree(tree); + currentStartingPoint.x = currentX; + currentStartingPoint.y = currentY; + point = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint); + if (point.y > height) { + height = Math.floor(point.y); + } + currentX = Math.floor(point.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION); + } + this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point.x / 2, LayoutConstants.WORLD_CENTER_Y - point.y / 2)); + }; + CoSELayout.radialLayout = function(tree, centerNode, startingPoint) { + var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION); + CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep); + var bounds = LGraph.calculateBounds(tree); + var transform = new Transform(); + transform.setDeviceOrgX(bounds.getMinX()); + transform.setDeviceOrgY(bounds.getMinY()); + transform.setWorldOrgX(startingPoint.x); + transform.setWorldOrgY(startingPoint.y); + for (var i = 0; i < tree.length; i++) { + var node = tree[i]; + node.transform(transform); + } + var bottomRight = new PointD(bounds.getMaxX(), bounds.getMaxY()); + return transform.inverseTransformPoint(bottomRight); + }; + CoSELayout.branchRadialLayout = function(node, parentOfNode, startAngle, endAngle, distance, radialSeparation) { + var halfInterval = (endAngle - startAngle + 1) / 2; + if (halfInterval < 0) { + halfInterval += 180; + } + var nodeAngle = (halfInterval + startAngle) % 360; + var teta = nodeAngle * IGeometry.TWO_PI / 360; + var x_ = distance * Math.cos(teta); + var y_ = distance * Math.sin(teta); + node.setCenter(x_, y_); + var neighborEdges = []; + neighborEdges = neighborEdges.concat(node.getEdges()); + var childCount = neighborEdges.length; + if (parentOfNode != null) { + childCount--; + } + var branchCount = 0; + var incEdgesCount = neighborEdges.length; + var startIndex; + var edges = node.getEdgesBetween(parentOfNode); + while (edges.length > 1) { + var temp = edges[0]; + edges.splice(0, 1); + var index = neighborEdges.indexOf(temp); + if (index >= 0) { + neighborEdges.splice(index, 1); + } + incEdgesCount--; + childCount--; + } + if (parentOfNode != null) { + startIndex = (neighborEdges.indexOf(edges[0]) + 1) % incEdgesCount; + } else { + startIndex = 0; + } + var stepAngle = Math.abs(endAngle - startAngle) / childCount; + for (var i = startIndex; branchCount != childCount; i = ++i % incEdgesCount) { + var currentNeighbor = neighborEdges[i].getOtherEnd(node); + if (currentNeighbor == parentOfNode) { + continue; + } + var childStartAngle = (startAngle + branchCount * stepAngle) % 360; + var childEndAngle = (childStartAngle + stepAngle) % 360; + CoSELayout.branchRadialLayout(currentNeighbor, node, childStartAngle, childEndAngle, distance + radialSeparation, radialSeparation); + branchCount++; + } + }; + CoSELayout.maxDiagonalInTree = function(tree) { + var maxDiagonal = Integer.MIN_VALUE; + for (var i = 0; i < tree.length; i++) { + var node = tree[i]; + var diagonal = node.getDiagonal(); + if (diagonal > maxDiagonal) { + maxDiagonal = diagonal; + } + } + return maxDiagonal; + }; + CoSELayout.prototype.calcRepulsionRange = function() { + return 2 * (this.level + 1) * this.idealEdgeLength; + }; + CoSELayout.prototype.groupZeroDegreeMembers = function() { + var self2 = this; + var tempMemberGroups = {}; + this.memberGroups = {}; + this.idToDummyNode = {}; + var zeroDegree = []; + var allNodes = this.graphManager.getAllNodes(); + for (var i = 0; i < allNodes.length; i++) { + var node = allNodes[i]; + var parent = node.getParent(); + if (this.getNodeDegreeWithChildren(node) === 0 && (parent.id == void 0 || !this.getToBeTiled(parent))) { + zeroDegree.push(node); + } + } + for (var i = 0; i < zeroDegree.length; i++) { + var node = zeroDegree[i]; + var p_id = node.getParent().id; + if (typeof tempMemberGroups[p_id] === "undefined") + tempMemberGroups[p_id] = []; + tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node); + } + Object.keys(tempMemberGroups).forEach(function(p_id2) { + if (tempMemberGroups[p_id2].length > 1) { + var dummyCompoundId = "DummyCompound_" + p_id2; + self2.memberGroups[dummyCompoundId] = tempMemberGroups[p_id2]; + var parent2 = tempMemberGroups[p_id2][0].getParent(); + var dummyCompound = new CoSENode(self2.graphManager); + dummyCompound.id = dummyCompoundId; + dummyCompound.paddingLeft = parent2.paddingLeft || 0; + dummyCompound.paddingRight = parent2.paddingRight || 0; + dummyCompound.paddingBottom = parent2.paddingBottom || 0; + dummyCompound.paddingTop = parent2.paddingTop || 0; + self2.idToDummyNode[dummyCompoundId] = dummyCompound; + var dummyParentGraph = self2.getGraphManager().add(self2.newGraph(), dummyCompound); + var parentGraph = parent2.getChild(); + parentGraph.add(dummyCompound); + for (var i2 = 0; i2 < tempMemberGroups[p_id2].length; i2++) { + var node2 = tempMemberGroups[p_id2][i2]; + parentGraph.remove(node2); + dummyParentGraph.add(node2); + } + } + }); + }; + CoSELayout.prototype.clearCompounds = function() { + var childGraphMap = {}; + var idToNode = {}; + this.performDFSOnCompounds(); + for (var i = 0; i < this.compoundOrder.length; i++) { + idToNode[this.compoundOrder[i].id] = this.compoundOrder[i]; + childGraphMap[this.compoundOrder[i].id] = [].concat(this.compoundOrder[i].getChild().getNodes()); + this.graphManager.remove(this.compoundOrder[i].getChild()); + this.compoundOrder[i].child = null; + } + this.graphManager.resetAllNodes(); + this.tileCompoundMembers(childGraphMap, idToNode); + }; + CoSELayout.prototype.clearZeroDegreeMembers = function() { + var self2 = this; + var tiledZeroDegreePack = this.tiledZeroDegreePack = []; + Object.keys(this.memberGroups).forEach(function(id) { + var compoundNode = self2.idToDummyNode[id]; + tiledZeroDegreePack[id] = self2.tileNodes(self2.memberGroups[id], compoundNode.paddingLeft + compoundNode.paddingRight); + compoundNode.rect.width = tiledZeroDegreePack[id].width; + compoundNode.rect.height = tiledZeroDegreePack[id].height; + }); + }; + CoSELayout.prototype.repopulateCompounds = function() { + for (var i = this.compoundOrder.length - 1; i >= 0; i--) { + var lCompoundNode = this.compoundOrder[i]; + var id = lCompoundNode.id; + var horizontalMargin = lCompoundNode.paddingLeft; + var verticalMargin = lCompoundNode.paddingTop; + this.adjustLocations(this.tiledMemberPack[id], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin); + } + }; + CoSELayout.prototype.repopulateZeroDegreeMembers = function() { + var self2 = this; + var tiledPack = this.tiledZeroDegreePack; + Object.keys(tiledPack).forEach(function(id) { + var compoundNode = self2.idToDummyNode[id]; + var horizontalMargin = compoundNode.paddingLeft; + var verticalMargin = compoundNode.paddingTop; + self2.adjustLocations(tiledPack[id], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin); + }); + }; + CoSELayout.prototype.getToBeTiled = function(node) { + var id = node.id; + if (this.toBeTiled[id] != null) { + return this.toBeTiled[id]; + } + var childGraph = node.getChild(); + if (childGraph == null) { + this.toBeTiled[id] = false; + return false; + } + var children = childGraph.getNodes(); + for (var i = 0; i < children.length; i++) { + var theChild = children[i]; + if (this.getNodeDegree(theChild) > 0) { + this.toBeTiled[id] = false; + return false; + } + if (theChild.getChild() == null) { + this.toBeTiled[theChild.id] = false; + continue; + } + if (!this.getToBeTiled(theChild)) { + this.toBeTiled[id] = false; + return false; + } + } + this.toBeTiled[id] = true; + return true; + }; + CoSELayout.prototype.getNodeDegree = function(node) { + node.id; + var edges = node.getEdges(); + var degree = 0; + for (var i = 0; i < edges.length; i++) { + var edge = edges[i]; + if (edge.getSource().id !== edge.getTarget().id) { + degree = degree + 1; + } + } + return degree; + }; + CoSELayout.prototype.getNodeDegreeWithChildren = function(node) { + var degree = this.getNodeDegree(node); + if (node.getChild() == null) { + return degree; + } + var children = node.getChild().getNodes(); + for (var i = 0; i < children.length; i++) { + var child = children[i]; + degree += this.getNodeDegreeWithChildren(child); + } + return degree; + }; + CoSELayout.prototype.performDFSOnCompounds = function() { + this.compoundOrder = []; + this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes()); + }; + CoSELayout.prototype.fillCompexOrderByDFS = function(children) { + for (var i = 0; i < children.length; i++) { + var child = children[i]; + if (child.getChild() != null) { + this.fillCompexOrderByDFS(child.getChild().getNodes()); + } + if (this.getToBeTiled(child)) { + this.compoundOrder.push(child); + } + } + }; + CoSELayout.prototype.adjustLocations = function(organization, x, y, compoundHorizontalMargin, compoundVerticalMargin) { + x += compoundHorizontalMargin; + y += compoundVerticalMargin; + var left = x; + for (var i = 0; i < organization.rows.length; i++) { + var row = organization.rows[i]; + x = left; + var maxHeight = 0; + for (var j = 0; j < row.length; j++) { + var lnode = row[j]; + lnode.rect.x = x; + lnode.rect.y = y; + x += lnode.rect.width + organization.horizontalPadding; + if (lnode.rect.height > maxHeight) + maxHeight = lnode.rect.height; + } + y += maxHeight + organization.verticalPadding; + } + }; + CoSELayout.prototype.tileCompoundMembers = function(childGraphMap, idToNode) { + var self2 = this; + this.tiledMemberPack = []; + Object.keys(childGraphMap).forEach(function(id) { + var compoundNode = idToNode[id]; + self2.tiledMemberPack[id] = self2.tileNodes(childGraphMap[id], compoundNode.paddingLeft + compoundNode.paddingRight); + compoundNode.rect.width = self2.tiledMemberPack[id].width; + compoundNode.rect.height = self2.tiledMemberPack[id].height; + }); + }; + CoSELayout.prototype.tileNodes = function(nodes2, minWidth) { + var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL; + var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL; + var organization = { + rows: [], + rowWidth: [], + rowHeight: [], + width: 0, + height: minWidth, + // assume minHeight equals to minWidth + verticalPadding, + horizontalPadding + }; + nodes2.sort(function(n1, n2) { + if (n1.rect.width * n1.rect.height > n2.rect.width * n2.rect.height) + return -1; + if (n1.rect.width * n1.rect.height < n2.rect.width * n2.rect.height) + return 1; + return 0; + }); + for (var i = 0; i < nodes2.length; i++) { + var lNode = nodes2[i]; + if (organization.rows.length == 0) { + this.insertNodeToRow(organization, lNode, 0, minWidth); + } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) { + this.insertNodeToRow(organization, lNode, this.getShortestRowIndex(organization), minWidth); + } else { + this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth); + } + this.shiftToLastRow(organization); + } + return organization; + }; + CoSELayout.prototype.insertNodeToRow = function(organization, node, rowIndex, minWidth) { + var minCompoundSize = minWidth; + if (rowIndex == organization.rows.length) { + var secondDimension = []; + organization.rows.push(secondDimension); + organization.rowWidth.push(minCompoundSize); + organization.rowHeight.push(0); + } + var w = organization.rowWidth[rowIndex] + node.rect.width; + if (organization.rows[rowIndex].length > 0) { + w += organization.horizontalPadding; + } + organization.rowWidth[rowIndex] = w; + if (organization.width < w) { + organization.width = w; + } + var h = node.rect.height; + if (rowIndex > 0) + h += organization.verticalPadding; + var extraHeight = 0; + if (h > organization.rowHeight[rowIndex]) { + extraHeight = organization.rowHeight[rowIndex]; + organization.rowHeight[rowIndex] = h; + extraHeight = organization.rowHeight[rowIndex] - extraHeight; + } + organization.height += extraHeight; + organization.rows[rowIndex].push(node); + }; + CoSELayout.prototype.getShortestRowIndex = function(organization) { + var r = -1; + var min = Number.MAX_VALUE; + for (var i = 0; i < organization.rows.length; i++) { + if (organization.rowWidth[i] < min) { + r = i; + min = organization.rowWidth[i]; + } + } + return r; + }; + CoSELayout.prototype.getLongestRowIndex = function(organization) { + var r = -1; + var max = Number.MIN_VALUE; + for (var i = 0; i < organization.rows.length; i++) { + if (organization.rowWidth[i] > max) { + r = i; + max = organization.rowWidth[i]; + } + } + return r; + }; + CoSELayout.prototype.canAddHorizontal = function(organization, extraWidth, extraHeight) { + var sri = this.getShortestRowIndex(organization); + if (sri < 0) { + return true; + } + var min = organization.rowWidth[sri]; + if (min + organization.horizontalPadding + extraWidth <= organization.width) + return true; + var hDiff = 0; + if (organization.rowHeight[sri] < extraHeight) { + if (sri > 0) + hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri]; + } + var add_to_row_ratio; + if (organization.width - min >= extraWidth + organization.horizontalPadding) { + add_to_row_ratio = (organization.height + hDiff) / (min + extraWidth + organization.horizontalPadding); + } else { + add_to_row_ratio = (organization.height + hDiff) / organization.width; + } + hDiff = extraHeight + organization.verticalPadding; + var add_new_row_ratio; + if (organization.width < extraWidth) { + add_new_row_ratio = (organization.height + hDiff) / extraWidth; + } else { + add_new_row_ratio = (organization.height + hDiff) / organization.width; + } + if (add_new_row_ratio < 1) + add_new_row_ratio = 1 / add_new_row_ratio; + if (add_to_row_ratio < 1) + add_to_row_ratio = 1 / add_to_row_ratio; + return add_to_row_ratio < add_new_row_ratio; + }; + CoSELayout.prototype.shiftToLastRow = function(organization) { + var longest = this.getLongestRowIndex(organization); + var last = organization.rowWidth.length - 1; + var row = organization.rows[longest]; + var node = row[row.length - 1]; + var diff = node.width + organization.horizontalPadding; + if (organization.width - organization.rowWidth[last] > diff && longest != last) { + row.splice(-1, 1); + organization.rows[last].push(node); + organization.rowWidth[longest] = organization.rowWidth[longest] - diff; + organization.rowWidth[last] = organization.rowWidth[last] + diff; + organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)]; + var maxHeight = Number.MIN_VALUE; + for (var i = 0; i < row.length; i++) { + if (row[i].height > maxHeight) + maxHeight = row[i].height; + } + if (longest > 0) + maxHeight += organization.verticalPadding; + var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last]; + organization.rowHeight[longest] = maxHeight; + if (organization.rowHeight[last] < node.height + organization.verticalPadding) + organization.rowHeight[last] = node.height + organization.verticalPadding; + var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last]; + organization.height += finalTotal - prevTotal; + this.shiftToLastRow(organization); + } + }; + CoSELayout.prototype.tilingPreLayout = function() { + if (CoSEConstants.TILE) { + this.groupZeroDegreeMembers(); + this.clearCompounds(); + this.clearZeroDegreeMembers(); + } + }; + CoSELayout.prototype.tilingPostLayout = function() { + if (CoSEConstants.TILE) { + this.repopulateZeroDegreeMembers(); + this.repopulateCompounds(); + } + }; + CoSELayout.prototype.reduceTrees = function() { + var prunedNodesAll = []; + var containsLeaf = true; + var node; + while (containsLeaf) { + var allNodes = this.graphManager.getAllNodes(); + var prunedNodesInStepTemp = []; + containsLeaf = false; + for (var i = 0; i < allNodes.length; i++) { + node = allNodes[i]; + if (node.getEdges().length == 1 && !node.getEdges()[0].isInterGraph && node.getChild() == null) { + prunedNodesInStepTemp.push([node, node.getEdges()[0], node.getOwner()]); + containsLeaf = true; + } + } + if (containsLeaf == true) { + var prunedNodesInStep = []; + for (var j = 0; j < prunedNodesInStepTemp.length; j++) { + if (prunedNodesInStepTemp[j][0].getEdges().length == 1) { + prunedNodesInStep.push(prunedNodesInStepTemp[j]); + prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]); + } + } + prunedNodesAll.push(prunedNodesInStep); + this.graphManager.resetAllNodes(); + this.graphManager.resetAllEdges(); + } + } + this.prunedNodesAll = prunedNodesAll; + }; + CoSELayout.prototype.growTree = function(prunedNodesAll) { + var lengthOfPrunedNodesInStep = prunedNodesAll.length; + var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1]; + var nodeData; + for (var i = 0; i < prunedNodesInStep.length; i++) { + nodeData = prunedNodesInStep[i]; + this.findPlaceforPrunedNode(nodeData); + nodeData[2].add(nodeData[0]); + nodeData[2].add(nodeData[1], nodeData[1].source, nodeData[1].target); + } + prunedNodesAll.splice(prunedNodesAll.length - 1, 1); + this.graphManager.resetAllNodes(); + this.graphManager.resetAllEdges(); + }; + CoSELayout.prototype.findPlaceforPrunedNode = function(nodeData) { + var gridForPrunedNode; + var nodeToConnect; + var prunedNode = nodeData[0]; + if (prunedNode == nodeData[1].source) { + nodeToConnect = nodeData[1].target; + } else { + nodeToConnect = nodeData[1].source; + } + var startGridX = nodeToConnect.startX; + var finishGridX = nodeToConnect.finishX; + var startGridY = nodeToConnect.startY; + var finishGridY = nodeToConnect.finishY; + var upNodeCount = 0; + var downNodeCount = 0; + var rightNodeCount = 0; + var leftNodeCount = 0; + var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount]; + if (startGridY > 0) { + for (var i = startGridX; i <= finishGridX; i++) { + controlRegions[0] += this.grid[i][startGridY - 1].length + this.grid[i][startGridY].length - 1; + } + } + if (finishGridX < this.grid.length - 1) { + for (var i = startGridY; i <= finishGridY; i++) { + controlRegions[1] += this.grid[finishGridX + 1][i].length + this.grid[finishGridX][i].length - 1; + } + } + if (finishGridY < this.grid[0].length - 1) { + for (var i = startGridX; i <= finishGridX; i++) { + controlRegions[2] += this.grid[i][finishGridY + 1].length + this.grid[i][finishGridY].length - 1; + } + } + if (startGridX > 0) { + for (var i = startGridY; i <= finishGridY; i++) { + controlRegions[3] += this.grid[startGridX - 1][i].length + this.grid[startGridX][i].length - 1; + } + } + var min = Integer.MAX_VALUE; + var minCount; + var minIndex; + for (var j = 0; j < controlRegions.length; j++) { + if (controlRegions[j] < min) { + min = controlRegions[j]; + minCount = 1; + minIndex = j; + } else if (controlRegions[j] == min) { + minCount++; + } + } + if (minCount == 3 && min == 0) { + if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) { + gridForPrunedNode = 1; + } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) { + gridForPrunedNode = 0; + } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) { + gridForPrunedNode = 3; + } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) { + gridForPrunedNode = 2; + } + } else if (minCount == 2 && min == 0) { + var random = Math.floor(Math.random() * 2); + if (controlRegions[0] == 0 && controlRegions[1] == 0) { + if (random == 0) { + gridForPrunedNode = 0; + } else { + gridForPrunedNode = 1; + } + } else if (controlRegions[0] == 0 && controlRegions[2] == 0) { + if (random == 0) { + gridForPrunedNode = 0; + } else { + gridForPrunedNode = 2; + } + } else if (controlRegions[0] == 0 && controlRegions[3] == 0) { + if (random == 0) { + gridForPrunedNode = 0; + } else { + gridForPrunedNode = 3; + } + } else if (controlRegions[1] == 0 && controlRegions[2] == 0) { + if (random == 0) { + gridForPrunedNode = 1; + } else { + gridForPrunedNode = 2; + } + } else if (controlRegions[1] == 0 && controlRegions[3] == 0) { + if (random == 0) { + gridForPrunedNode = 1; + } else { + gridForPrunedNode = 3; + } + } else { + if (random == 0) { + gridForPrunedNode = 2; + } else { + gridForPrunedNode = 3; + } + } + } else if (minCount == 4 && min == 0) { + var random = Math.floor(Math.random() * 4); + gridForPrunedNode = random; + } else { + gridForPrunedNode = minIndex; + } + if (gridForPrunedNode == 0) { + prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2); + } else if (gridForPrunedNode == 1) { + prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY()); + } else if (gridForPrunedNode == 2) { + prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2); + } else { + prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY()); + } + }; + module2.exports = CoSELayout; + }, + /* 7 */ + /***/ + function(module2, exports2, __webpack_require__) { + var coseBase2 = {}; + coseBase2.layoutBase = __webpack_require__(0); + coseBase2.CoSEConstants = __webpack_require__(1); + coseBase2.CoSEEdge = __webpack_require__(2); + coseBase2.CoSEGraph = __webpack_require__(3); + coseBase2.CoSEGraphManager = __webpack_require__(4); + coseBase2.CoSELayout = __webpack_require__(6); + coseBase2.CoSENode = __webpack_require__(5); + module2.exports = coseBase2; + } + /******/ + ]) + ); + }); + })(coseBase); + return coseBase.exports; +} +(function(module, exports) { + (function webpackUniversalModuleDefinition(root, factory) { + module.exports = factory(requireCoseBase()); + })(commonjsGlobal, function(__WEBPACK_EXTERNAL_MODULE_0__) { + return ( + /******/ + function(modules) { + var installedModules = {}; + function __webpack_require__(moduleId) { + if (installedModules[moduleId]) { + return installedModules[moduleId].exports; + } + var module2 = installedModules[moduleId] = { + /******/ + i: moduleId, + /******/ + l: false, + /******/ + exports: {} + /******/ + }; + modules[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__); + module2.l = true; + return module2.exports; + } + __webpack_require__.m = modules; + __webpack_require__.c = installedModules; + __webpack_require__.i = function(value) { + return value; + }; + __webpack_require__.d = function(exports2, name, getter) { + if (!__webpack_require__.o(exports2, name)) { + Object.defineProperty(exports2, name, { + /******/ + configurable: false, + /******/ + enumerable: true, + /******/ + get: getter + /******/ + }); + } + }; + __webpack_require__.n = function(module2) { + var getter = module2 && module2.__esModule ? ( + /******/ + function getDefault() { + return module2["default"]; + } + ) : ( + /******/ + function getModuleExports() { + return module2; + } + ); + __webpack_require__.d(getter, "a", getter); + return getter; + }; + __webpack_require__.o = function(object, property) { + return Object.prototype.hasOwnProperty.call(object, property); + }; + __webpack_require__.p = ""; + return __webpack_require__(__webpack_require__.s = 1); + }([ + /* 0 */ + /***/ + function(module2, exports2) { + module2.exports = __WEBPACK_EXTERNAL_MODULE_0__; + }, + /* 1 */ + /***/ + function(module2, exports2, __webpack_require__) { + var LayoutConstants = __webpack_require__(0).layoutBase.LayoutConstants; + var FDLayoutConstants = __webpack_require__(0).layoutBase.FDLayoutConstants; + var CoSEConstants = __webpack_require__(0).CoSEConstants; + var CoSELayout = __webpack_require__(0).CoSELayout; + var CoSENode = __webpack_require__(0).CoSENode; + var PointD = __webpack_require__(0).layoutBase.PointD; + var DimensionD2 = __webpack_require__(0).layoutBase.DimensionD; + var defaults = { + // Called on `layoutready` + ready: function ready() { + }, + // Called on `layoutstop` + stop: function stop() { + }, + // 'draft', 'default' or 'proof" + // - 'draft' fast cooling rate + // - 'default' moderate cooling rate + // - "proof" slow cooling rate + quality: "default", + // include labels in node dimensions + nodeDimensionsIncludeLabels: false, + // number of ticks per frame; higher is faster but more jerky + refresh: 30, + // Whether to fit the network view after when done + fit: true, + // Padding on fit + padding: 10, + // Whether to enable incremental mode + randomize: true, + // Node repulsion (non overlapping) multiplier + nodeRepulsion: 4500, + // Ideal edge (non nested) length + idealEdgeLength: 50, + // Divisor to compute edge forces + edgeElasticity: 0.45, + // Nesting factor (multiplier) to compute ideal edge length for nested edges + nestingFactor: 0.1, + // Gravity force (constant) + gravity: 0.25, + // Maximum number of iterations to perform + numIter: 2500, + // For enabling tiling + tile: true, + // Type of layout animation. The option set is {'during', 'end', false} + animate: "end", + // Duration for animate:end + animationDuration: 500, + // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function) + tilingPaddingVertical: 10, + // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function) + tilingPaddingHorizontal: 10, + // Gravity range (constant) for compounds + gravityRangeCompound: 1.5, + // Gravity force (constant) for compounds + gravityCompound: 1, + // Gravity range (constant) + gravityRange: 3.8, + // Initial cooling factor for incremental layout + initialEnergyOnIncremental: 0.5 + }; + function extend(defaults2, options) { + var obj = {}; + for (var i in defaults2) { + obj[i] = defaults2[i]; + } + for (var i in options) { + obj[i] = options[i]; + } + return obj; + } + function _CoSELayout(_options) { + this.options = extend(defaults, _options); + getUserOptions(this.options); + } + var getUserOptions = function getUserOptions2(options) { + if (options.nodeRepulsion != null) + CoSEConstants.DEFAULT_REPULSION_STRENGTH = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = options.nodeRepulsion; + if (options.idealEdgeLength != null) + CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = options.idealEdgeLength; + if (options.edgeElasticity != null) + CoSEConstants.DEFAULT_SPRING_STRENGTH = FDLayoutConstants.DEFAULT_SPRING_STRENGTH = options.edgeElasticity; + if (options.nestingFactor != null) + CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = options.nestingFactor; + if (options.gravity != null) + CoSEConstants.DEFAULT_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = options.gravity; + if (options.numIter != null) + CoSEConstants.MAX_ITERATIONS = FDLayoutConstants.MAX_ITERATIONS = options.numIter; + if (options.gravityRange != null) + CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = options.gravityRange; + if (options.gravityCompound != null) + CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = options.gravityCompound; + if (options.gravityRangeCompound != null) + CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = options.gravityRangeCompound; + if (options.initialEnergyOnIncremental != null) + CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = options.initialEnergyOnIncremental; + if (options.quality == "draft") + LayoutConstants.QUALITY = 0; + else if (options.quality == "proof") + LayoutConstants.QUALITY = 2; + else + LayoutConstants.QUALITY = 1; + CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS = FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = options.nodeDimensionsIncludeLabels; + CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = !options.randomize; + CoSEConstants.ANIMATE = FDLayoutConstants.ANIMATE = LayoutConstants.ANIMATE = options.animate; + CoSEConstants.TILE = options.tile; + CoSEConstants.TILING_PADDING_VERTICAL = typeof options.tilingPaddingVertical === "function" ? options.tilingPaddingVertical.call() : options.tilingPaddingVertical; + CoSEConstants.TILING_PADDING_HORIZONTAL = typeof options.tilingPaddingHorizontal === "function" ? options.tilingPaddingHorizontal.call() : options.tilingPaddingHorizontal; + }; + _CoSELayout.prototype.run = function() { + var ready; + var frameId; + var options = this.options; + this.idToLNode = {}; + var layout = this.layout = new CoSELayout(); + var self2 = this; + self2.stopped = false; + this.cy = this.options.cy; + this.cy.trigger({ type: "layoutstart", layout: this }); + var gm = layout.newGraphManager(); + this.gm = gm; + var nodes2 = this.options.eles.nodes(); + var edges = this.options.eles.edges(); + this.root = gm.addRoot(); + this.processChildrenList(this.root, this.getTopMostNodes(nodes2), layout); + for (var i = 0; i < edges.length; i++) { + var edge = edges[i]; + var sourceNode = this.idToLNode[edge.data("source")]; + var targetNode = this.idToLNode[edge.data("target")]; + if (sourceNode !== targetNode && sourceNode.getEdgesBetween(targetNode).length == 0) { + var e1 = gm.add(layout.newEdge(), sourceNode, targetNode); + e1.id = edge.id(); + } + } + var getPositions = function getPositions2(ele, i2) { + if (typeof ele === "number") { + ele = i2; + } + var theId = ele.data("id"); + var lNode = self2.idToLNode[theId]; + return { + x: lNode.getRect().getCenterX(), + y: lNode.getRect().getCenterY() + }; + }; + var iterateAnimated = function iterateAnimated2() { + var afterReposition = function afterReposition2() { + if (options.fit) { + options.cy.fit(options.eles, options.padding); + } + if (!ready) { + ready = true; + self2.cy.one("layoutready", options.ready); + self2.cy.trigger({ type: "layoutready", layout: self2 }); + } + }; + var ticksPerFrame = self2.options.refresh; + var isDone; + for (var i2 = 0; i2 < ticksPerFrame && !isDone; i2++) { + isDone = self2.stopped || self2.layout.tick(); + } + if (isDone) { + if (layout.checkLayoutSuccess() && !layout.isSubLayout) { + layout.doPostLayout(); + } + if (layout.tilingPostLayout) { + layout.tilingPostLayout(); + } + layout.isLayoutFinished = true; + self2.options.eles.nodes().positions(getPositions); + afterReposition(); + self2.cy.one("layoutstop", self2.options.stop); + self2.cy.trigger({ type: "layoutstop", layout: self2 }); + if (frameId) { + cancelAnimationFrame(frameId); + } + ready = false; + return; + } + var animationData = self2.layout.getPositionsData(); + options.eles.nodes().positions(function(ele, i3) { + if (typeof ele === "number") { + ele = i3; + } + if (!ele.isParent()) { + var theId = ele.id(); + var pNode = animationData[theId]; + var temp = ele; + while (pNode == null) { + pNode = animationData[temp.data("parent")] || animationData["DummyCompound_" + temp.data("parent")]; + animationData[theId] = pNode; + temp = temp.parent()[0]; + if (temp == void 0) { + break; + } + } + if (pNode != null) { + return { + x: pNode.x, + y: pNode.y + }; + } else { + return { + x: ele.position("x"), + y: ele.position("y") + }; + } + } + }); + afterReposition(); + frameId = requestAnimationFrame(iterateAnimated2); + }; + layout.addListener("layoutstarted", function() { + if (self2.options.animate === "during") { + frameId = requestAnimationFrame(iterateAnimated); + } + }); + layout.runLayout(); + if (this.options.animate !== "during") { + self2.options.eles.nodes().not(":parent").layoutPositions(self2, self2.options, getPositions); + ready = false; + } + return this; + }; + _CoSELayout.prototype.getTopMostNodes = function(nodes2) { + var nodesMap = {}; + for (var i = 0; i < nodes2.length; i++) { + nodesMap[nodes2[i].id()] = true; + } + var roots = nodes2.filter(function(ele, i2) { + if (typeof ele === "number") { + ele = i2; + } + var parent = ele.parent()[0]; + while (parent != null) { + if (nodesMap[parent.id()]) { + return false; + } + parent = parent.parent()[0]; + } + return true; + }); + return roots; + }; + _CoSELayout.prototype.processChildrenList = function(parent, children, layout) { + var size = children.length; + for (var i = 0; i < size; i++) { + var theChild = children[i]; + var children_of_children = theChild.children(); + var theNode; + var dimensions = theChild.layoutDimensions({ + nodeDimensionsIncludeLabels: this.options.nodeDimensionsIncludeLabels + }); + if (theChild.outerWidth() != null && theChild.outerHeight() != null) { + theNode = parent.add(new CoSENode(layout.graphManager, new PointD(theChild.position("x") - dimensions.w / 2, theChild.position("y") - dimensions.h / 2), new DimensionD2(parseFloat(dimensions.w), parseFloat(dimensions.h)))); + } else { + theNode = parent.add(new CoSENode(this.graphManager)); + } + theNode.id = theChild.data("id"); + theNode.paddingLeft = parseInt(theChild.css("padding")); + theNode.paddingTop = parseInt(theChild.css("padding")); + theNode.paddingRight = parseInt(theChild.css("padding")); + theNode.paddingBottom = parseInt(theChild.css("padding")); + if (this.options.nodeDimensionsIncludeLabels) { + if (theChild.isParent()) { + var labelWidth = theChild.boundingBox({ includeLabels: true, includeNodes: false }).w; + var labelHeight = theChild.boundingBox({ includeLabels: true, includeNodes: false }).h; + var labelPos = theChild.css("text-halign"); + theNode.labelWidth = labelWidth; + theNode.labelHeight = labelHeight; + theNode.labelPos = labelPos; + } + } + this.idToLNode[theChild.data("id")] = theNode; + if (isNaN(theNode.rect.x)) { + theNode.rect.x = 0; + } + if (isNaN(theNode.rect.y)) { + theNode.rect.y = 0; + } + if (children_of_children != null && children_of_children.length > 0) { + var theNewGraph; + theNewGraph = layout.getGraphManager().add(layout.newGraph(), theNode); + this.processChildrenList(theNewGraph, children_of_children, layout); + } + } + }; + _CoSELayout.prototype.stop = function() { + this.stopped = true; + return this; + }; + var register = function register2(cytoscape2) { + cytoscape2("layout", "cose-bilkent", _CoSELayout); + }; + if (typeof cytoscape !== "undefined") { + register(cytoscape); + } + module2.exports = register; + } + /******/ + ]) + ); + }); +})(cytoscapeCoseBilkent); +var cytoscapeCoseBilkentExports = cytoscapeCoseBilkent.exports; +const coseBilkent = /* @__PURE__ */ getDefaultExportFromCjs(cytoscapeCoseBilkentExports); +const MAX_SECTIONS = 12; +const defaultBkg = function(db2, elem, node, section) { + const rd = 5; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + db2.type2Str(node.type)).attr( + "d", + `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z` + ); + elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height); +}; +const rectBkg = function(db2, elem, node) { + elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + db2.type2Str(node.type)).attr("height", node.height).attr("width", node.width); +}; +const cloudBkg = function(db2, elem, node) { + const w = node.width; + const h = node.height; + const r1 = 0.15 * w; + const r2 = 0.25 * w; + const r3 = 0.35 * w; + const r4 = 0.2 * w; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + db2.type2Str(node.type)).attr( + "d", + `M0 0 a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1} + a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1} + a${r2},${r2} 1 0,1 ${w * 0.35},${1 * w * 0.2} + + a${r1},${r1} 1 0,1 ${w * 0.15},${1 * h * 0.35} + a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${1 * h * 0.65} + + a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15} + a${r3},${r3} 1 0,1 ${-1 * w * 0.5},${0} + a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15} + + a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35} + a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65} + + H0 V0 Z` + ); +}; +const bangBkg = function(db2, elem, node) { + const w = node.width; + const h = node.height; + const r = 0.15 * w; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + db2.type2Str(node.type)).attr( + "d", + `M0 0 a${r},${r} 1 0,0 ${w * 0.25},${-1 * h * 0.1} + a${r},${r} 1 0,0 ${w * 0.25},${0} + a${r},${r} 1 0,0 ${w * 0.25},${0} + a${r},${r} 1 0,0 ${w * 0.25},${1 * h * 0.1} + + a${r},${r} 1 0,0 ${w * 0.15},${1 * h * 0.33} + a${r * 0.8},${r * 0.8} 1 0,0 ${0},${1 * h * 0.34} + a${r},${r} 1 0,0 ${-1 * w * 0.15},${1 * h * 0.33} + + a${r},${r} 1 0,0 ${-1 * w * 0.25},${h * 0.15} + a${r},${r} 1 0,0 ${-1 * w * 0.25},${0} + a${r},${r} 1 0,0 ${-1 * w * 0.25},${0} + a${r},${r} 1 0,0 ${-1 * w * 0.25},${-1 * h * 0.15} + + a${r},${r} 1 0,0 ${-1 * w * 0.1},${-1 * h * 0.33} + a${r * 0.8},${r * 0.8} 1 0,0 ${0},${-1 * h * 0.34} + a${r},${r} 1 0,0 ${w * 0.1},${-1 * h * 0.33} + + H0 V0 Z` + ); +}; +const circleBkg = function(db2, elem, node) { + elem.append("circle").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + db2.type2Str(node.type)).attr("r", node.width / 2); +}; +function insertPolygonShape(parent, w, h, points, node) { + return parent.insert("polygon", ":first-child").attr( + "points", + points.map(function(d) { + return d.x + "," + d.y; + }).join(" ") + ).attr("transform", "translate(" + (node.width - w) / 2 + ", " + h + ")"); +} +const hexagonBkg = function(_db, elem, node) { + const h = node.height; + const f = 4; + const m = h / f; + const w = node.width - node.padding + 2 * m; + const points = [ + { x: m, y: 0 }, + { x: w - m, y: 0 }, + { x: w, y: -h / 2 }, + { x: w - m, y: -h }, + { x: m, y: -h }, + { x: 0, y: -h / 2 } + ]; + insertPolygonShape(elem, w, h, points, node); +}; +const roundedRectBkg = function(db2, elem, node) { + elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + db2.type2Str(node.type)).attr("height", node.height).attr("rx", node.padding).attr("ry", node.padding).attr("width", node.width); +}; +const drawNode = function(db2, elem, node, fullSection, conf) { + const htmlLabels = conf.htmlLabels; + const section = fullSection % (MAX_SECTIONS - 1); + const nodeElem = elem.append("g"); + node.section = section; + let sectionClass = "section-" + section; + if (section < 0) { + sectionClass += " section-root"; + } + nodeElem.attr("class", (node.class ? node.class + " " : "") + "mindmap-node " + sectionClass); + const bkgElem = nodeElem.append("g"); + const textElem = nodeElem.append("g"); + const description = node.descr.replace(/()/g, "\n"); + createText(textElem, description, { + useHtmlLabels: htmlLabels, + width: node.width, + classes: "mindmap-node-label" + }); + if (!htmlLabels) { + textElem.attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle"); + } + const bbox = textElem.node().getBBox(); + const [fontSize] = parseFontSize(conf.fontSize); + node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding; + node.width = bbox.width + 2 * node.padding; + if (node.icon) { + if (node.type === db2.nodeType.CIRCLE) { + node.height += 50; + node.width += 50; + const icon = nodeElem.append("foreignObject").attr("height", "50px").attr("width", node.width).attr("style", "text-align: center;"); + icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon); + textElem.attr( + "transform", + "translate(" + node.width / 2 + ", " + (node.height / 2 - 1.5 * node.padding) + ")" + ); + } else { + node.width += 50; + const orgHeight = node.height; + node.height = Math.max(orgHeight, 60); + const heightDiff = Math.abs(node.height - orgHeight); + const icon = nodeElem.append("foreignObject").attr("width", "60px").attr("height", node.height).attr("style", "text-align: center;margin-top:" + heightDiff / 2 + "px;"); + icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon); + textElem.attr( + "transform", + "translate(" + (25 + node.width / 2) + ", " + (heightDiff / 2 + node.padding / 2) + ")" + ); + } + } else { + if (!htmlLabels) { + const dx = node.width / 2; + const dy = node.padding / 2; + textElem.attr("transform", "translate(" + dx + ", " + dy + ")"); + } else { + const dx = (node.width - bbox.width) / 2; + const dy = (node.height - bbox.height) / 2; + textElem.attr("transform", "translate(" + dx + ", " + dy + ")"); + } + } + switch (node.type) { + case db2.nodeType.DEFAULT: + defaultBkg(db2, bkgElem, node, section); + break; + case db2.nodeType.ROUNDED_RECT: + roundedRectBkg(db2, bkgElem, node); + break; + case db2.nodeType.RECT: + rectBkg(db2, bkgElem, node); + break; + case db2.nodeType.CIRCLE: + bkgElem.attr("transform", "translate(" + node.width / 2 + ", " + +node.height / 2 + ")"); + circleBkg(db2, bkgElem, node); + break; + case db2.nodeType.CLOUD: + cloudBkg(db2, bkgElem, node); + break; + case db2.nodeType.BANG: + bangBkg(db2, bkgElem, node); + break; + case db2.nodeType.HEXAGON: + hexagonBkg(db2, bkgElem, node); + break; + } + db2.setElementForId(node.id, nodeElem); + return node.height; +}; +const positionNode = function(db2, node) { + const nodeElem = db2.getElementById(node.id); + const x = node.x || 0; + const y = node.y || 0; + nodeElem.attr("transform", "translate(" + x + "," + y + ")"); +}; +cytoscape$1.use(coseBilkent); +function drawNodes(db2, svg, mindmap, section, conf) { + drawNode(db2, svg, mindmap, section, conf); + if (mindmap.children) { + mindmap.children.forEach((child, index) => { + drawNodes(db2, svg, child, section < 0 ? index : section, conf); + }); + } +} +function drawEdges(edgesEl, cy) { + cy.edges().map((edge, id) => { + const data = edge.data(); + if (edge[0]._private.bodyBounds) { + const bounds = edge[0]._private.rscratch; + log.trace("Edge: ", id, data); + edgesEl.insert("path").attr( + "d", + `M ${bounds.startX},${bounds.startY} L ${bounds.midX},${bounds.midY} L${bounds.endX},${bounds.endY} ` + ).attr("class", "edge section-edge-" + data.section + " edge-depth-" + data.depth); + } + }); +} +function addNodes(mindmap, cy, conf, level) { + cy.add({ + group: "nodes", + data: { + id: mindmap.id.toString(), + labelText: mindmap.descr, + height: mindmap.height, + width: mindmap.width, + level, + nodeId: mindmap.id, + padding: mindmap.padding, + type: mindmap.type + }, + position: { + x: mindmap.x, + y: mindmap.y + } + }); + if (mindmap.children) { + mindmap.children.forEach((child) => { + addNodes(child, cy, conf, level + 1); + cy.add({ + group: "edges", + data: { + id: `${mindmap.id}_${child.id}`, + source: mindmap.id, + target: child.id, + depth: level, + section: child.section + } + }); + }); + } +} +function layoutMindmap(node, conf) { + return new Promise((resolve) => { + const renderEl = d3select("body").append("div").attr("id", "cy").attr("style", "display:none"); + const cy = cytoscape$1({ + container: document.getElementById("cy"), + // container to render in + style: [ + { + selector: "edge", + style: { + "curve-style": "bezier" + } + } + ] + }); + renderEl.remove(); + addNodes(node, cy, conf, 0); + cy.nodes().forEach(function(n) { + n.layoutDimensions = () => { + const data = n.data(); + return { w: data.width, h: data.height }; + }; + }); + cy.layout({ + name: "cose-bilkent", + // @ts-ignore Types for cose-bilkent are not correct? + quality: "proof", + styleEnabled: false, + animate: false + }).run(); + cy.ready((e) => { + log.info("Ready", e); + resolve(cy); + }); + }); +} +function positionNodes(db2, cy) { + cy.nodes().map((node, id) => { + const data = node.data(); + data.x = node.position().x; + data.y = node.position().y; + positionNode(db2, data); + const el = db2.getElementById(data.nodeId); + log.info("Id:", id, "Position: (", node.position().x, ", ", node.position().y, ")", data); + el.attr( + "transform", + `translate(${node.position().x - data.width / 2}, ${node.position().y - data.height / 2})` + ); + el.attr("attr", `apa-${id})`); + }); +} +const draw = async (text, id, _version, diagObj) => { + var _a, _b; + log.debug("Rendering mindmap diagram\n" + text); + const db2 = diagObj.db; + const mm = db2.getMindmap(); + if (!mm) { + return; + } + const conf = getConfig(); + conf.htmlLabels = false; + const svg = selectSvgElement(id); + const edgesElem = svg.append("g"); + edgesElem.attr("class", "mindmap-edges"); + const nodesElem = svg.append("g"); + nodesElem.attr("class", "mindmap-nodes"); + drawNodes(db2, nodesElem, mm, -1, conf); + const cy = await layoutMindmap(mm, conf); + drawEdges(edgesElem, cy); + positionNodes(db2, cy); + setupGraphViewbox( + void 0, + svg, + ((_a = conf.mindmap) == null ? void 0 : _a.padding) ?? defaultConfig.mindmap.padding, + ((_b = conf.mindmap) == null ? void 0 : _b.useMaxWidth) ?? defaultConfig.mindmap.useMaxWidth + ); +}; +const renderer = { + draw +}; +const genSections = (options) => { + let sections = ""; + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i]; + if (isDark(options["lineColor" + i])) { + options["lineColor" + i] = lighten(options["lineColor" + i], 20); + } else { + options["lineColor" + i] = darken(options["lineColor" + i], 20); + } + } + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + const sw = "" + (17 - 3 * i); + sections += ` + .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} polygon, .section-${i - 1} path { + fill: ${options["cScale" + i]}; + } + .section-${i - 1} text { + fill: ${options["cScaleLabel" + i]}; + } + .node-icon-${i - 1} { + font-size: 40px; + color: ${options["cScaleLabel" + i]}; + } + .section-edge-${i - 1}{ + stroke: ${options["cScale" + i]}; + } + .edge-depth-${i - 1}{ + stroke-width: ${sw}; + } + .section-${i - 1} line { + stroke: ${options["cScaleInv" + i]} ; + stroke-width: 3; + } + + .disabled, .disabled circle, .disabled text { + fill: lightgray; + } + .disabled text { + fill: #efefef; + } + `; + } + return sections; +}; +const getStyles = (options) => ` + .edge { + stroke-width: 3; + } + ${genSections(options)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${options.git0}; + } + .section-root text { + fill: ${options.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`; +const styles = getStyles; +const diagram = { + db: db$1, + renderer, + parser: parser$1, + styles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/mindmap-definition-9399c7e6.js b/assets/lib/mermaid/mindmap-definition-9399c7e6.js new file mode 100644 index 000000000..e435604f0 --- /dev/null +++ b/assets/lib/mermaid/mindmap-definition-9399c7e6.js @@ -0,0 +1,18760 @@ +import { l as qr, c as Ji, W as ti, d as ri, P as Ca, Q as $l, Y as pp, U as yp, t as mp, j as bp, at as Ep, au as wp, av as xp } from "./mermaid-9f2aa176.js"; +import { a as Tp } from "./createText-03b82060.js"; +var Qi = function() { + var de = function(ee, H, te, S) { + for (te = te || {}, S = ee.length; S--; te[ee[S]] = H) + ; + return te; + }, Pe = [1, 4], _ = [1, 13], fe = [1, 12], Q = [1, 15], C = [1, 16], T = [1, 20], x = [1, 19], I = [6, 7, 8], z = [1, 26], Y = [1, 24], P = [1, 25], Z = [6, 7, 11], A = [1, 6, 13, 15, 16, 19, 22], $ = [1, 33], U = [1, 34], J = [1, 6, 7, 11, 13, 15, 16, 19, 22], ne = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, mindMap: 4, spaceLines: 5, SPACELINE: 6, NL: 7, MINDMAP: 8, document: 9, stop: 10, EOF: 11, statement: 12, SPACELIST: 13, node: 14, ICON: 15, CLASS: 16, nodeWithId: 17, nodeWithoutId: 18, NODE_DSTART: 19, NODE_DESCR: 20, NODE_DEND: 21, NODE_ID: 22, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 6: "SPACELINE", 7: "NL", 8: "MINDMAP", 11: "EOF", 13: "SPACELIST", 15: "ICON", 16: "CLASS", 19: "NODE_DSTART", 20: "NODE_DESCR", 21: "NODE_DEND", 22: "NODE_ID" }, + productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]], + performAction: function(H, te, S, V, R, q, ve) { + var pe = q.length - 1; + switch (R) { + case 6: + case 7: + return V; + case 8: + V.getLogger().trace("Stop NL "); + break; + case 9: + V.getLogger().trace("Stop EOF "); + break; + case 11: + V.getLogger().trace("Stop NL2 "); + break; + case 12: + V.getLogger().trace("Stop EOF2 "); + break; + case 15: + V.getLogger().info("Node: ", q[pe].id), V.addNode(q[pe - 1].length, q[pe].id, q[pe].descr, q[pe].type); + break; + case 16: + V.getLogger().trace("Icon: ", q[pe]), V.decorateNode({ icon: q[pe] }); + break; + case 17: + case 21: + V.decorateNode({ class: q[pe] }); + break; + case 18: + V.getLogger().trace("SPACELIST"); + break; + case 19: + V.getLogger().trace("Node: ", q[pe].id), V.addNode(0, q[pe].id, q[pe].descr, q[pe].type); + break; + case 20: + V.decorateNode({ icon: q[pe] }); + break; + case 25: + V.getLogger().trace("node found ..", q[pe - 2]), this.$ = { id: q[pe - 1], descr: q[pe - 1], type: V.getType(q[pe - 2], q[pe]) }; + break; + case 26: + this.$ = { id: q[pe], descr: q[pe], type: V.nodeType.DEFAULT }; + break; + case 27: + V.getLogger().trace("node found ..", q[pe - 3]), this.$ = { id: q[pe - 3], descr: q[pe - 1], type: V.getType(q[pe - 2], q[pe]) }; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: Pe }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: Pe }, { 6: _, 7: [1, 10], 9: 9, 12: 11, 13: fe, 14: 14, 15: Q, 16: C, 17: 17, 18: 18, 19: T, 22: x }, de(I, [2, 3]), { 1: [2, 2] }, de(I, [2, 4]), de(I, [2, 5]), { 1: [2, 6], 6: _, 12: 21, 13: fe, 14: 14, 15: Q, 16: C, 17: 17, 18: 18, 19: T, 22: x }, { 6: _, 9: 22, 12: 11, 13: fe, 14: 14, 15: Q, 16: C, 17: 17, 18: 18, 19: T, 22: x }, { 6: z, 7: Y, 10: 23, 11: P }, de(Z, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: T, 22: x }), de(Z, [2, 18]), de(Z, [2, 19]), de(Z, [2, 20]), de(Z, [2, 21]), de(Z, [2, 23]), de(Z, [2, 24]), de(Z, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: z, 7: Y, 10: 32, 11: P }, { 1: [2, 7], 6: _, 12: 21, 13: fe, 14: 14, 15: Q, 16: C, 17: 17, 18: 18, 19: T, 22: x }, de(A, [2, 14], { 7: $, 11: U }), de(J, [2, 8]), de(J, [2, 9]), de(J, [2, 10]), de(Z, [2, 15]), de(Z, [2, 16]), de(Z, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, de(A, [2, 13], { 7: $, 11: U }), de(J, [2, 11]), de(J, [2, 12]), { 21: [1, 37] }, de(Z, [2, 25]), de(Z, [2, 27])], + defaultActions: { 2: [2, 1], 6: [2, 2] }, + parseError: function(H, te) { + if (te.recoverable) + this.trace(H); + else { + var S = new Error(H); + throw S.hash = te, S; + } + }, + parse: function(H) { + var te = this, S = [0], V = [], R = [null], q = [], ve = this.table, pe = "", Ae = 0, Ne = 0, Ye = 2, at = 1, dt = q.slice.call(arguments, 1), Re = Object.create(this.lexer), Ve = { yy: {} }; + for (var Ze in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, Ze) && (Ve.yy[Ze] = this.yy[Ze]); + Re.setInput(H, Ve.yy), Ve.yy.lexer = Re, Ve.yy.parser = this, typeof Re.yylloc > "u" && (Re.yylloc = {}); + var nt = Re.yylloc; + q.push(nt); + var ht = Re.options && Re.options.ranges; + typeof Ve.yy.parseError == "function" ? this.parseError = Ve.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function it() { + var jt; + return jt = V.pop() || Re.lex() || at, typeof jt != "number" && (jt instanceof Array && (V = jt, jt = V.pop()), jt = te.symbols_[jt] || jt), jt; + } + for (var tt, yt, Et, Pt, gt = {}, dr, qt, nn, Kr; ; ) { + if (yt = S[S.length - 1], this.defaultActions[yt] ? Et = this.defaultActions[yt] : ((tt === null || typeof tt > "u") && (tt = it()), Et = ve[yt] && ve[yt][tt]), typeof Et > "u" || !Et.length || !Et[0]) { + var Da = ""; + Kr = []; + for (dr in ve[yt]) + this.terminals_[dr] && dr > Ye && Kr.push("'" + this.terminals_[dr] + "'"); + Re.showPosition ? Da = "Parse error on line " + (Ae + 1) + `: +` + Re.showPosition() + ` +Expecting ` + Kr.join(", ") + ", got '" + (this.terminals_[tt] || tt) + "'" : Da = "Parse error on line " + (Ae + 1) + ": Unexpected " + (tt == at ? "end of input" : "'" + (this.terminals_[tt] || tt) + "'"), this.parseError(Da, { + text: Re.match, + token: this.terminals_[tt] || tt, + line: Re.yylineno, + loc: nt, + expected: Kr + }); + } + if (Et[0] instanceof Array && Et.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + yt + ", token: " + tt); + switch (Et[0]) { + case 1: + S.push(tt), R.push(Re.yytext), q.push(Re.yylloc), S.push(Et[1]), tt = null, Ne = Re.yyleng, pe = Re.yytext, Ae = Re.yylineno, nt = Re.yylloc; + break; + case 2: + if (qt = this.productions_[Et[1]][1], gt.$ = R[R.length - qt], gt._$ = { + first_line: q[q.length - (qt || 1)].first_line, + last_line: q[q.length - 1].last_line, + first_column: q[q.length - (qt || 1)].first_column, + last_column: q[q.length - 1].last_column + }, ht && (gt._$.range = [ + q[q.length - (qt || 1)].range[0], + q[q.length - 1].range[1] + ]), Pt = this.performAction.apply(gt, [ + pe, + Ne, + Ae, + Ve.yy, + Et[1], + R, + q + ].concat(dt)), typeof Pt < "u") + return Pt; + qt && (S = S.slice(0, -1 * qt * 2), R = R.slice(0, -1 * qt), q = q.slice(0, -1 * qt)), S.push(this.productions_[Et[1]][0]), R.push(gt.$), q.push(gt._$), nn = ve[S[S.length - 2]][S[S.length - 1]], S.push(nn); + break; + case 3: + return !0; + } + } + return !0; + } + }, le = function() { + var ee = { + EOF: 1, + parseError: function(te, S) { + if (this.yy.parser) + this.yy.parser.parseError(te, S); + else + throw new Error(te); + }, + // resets the lexer, sets new input + setInput: function(H, te) { + return this.yy = te || this.yy || {}, this._input = H, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var H = this._input[0]; + this.yytext += H, this.yyleng++, this.offset++, this.match += H, this.matched += H; + var te = H.match(/(?:\r\n?|\n).*/g); + return te ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), H; + }, + // unshifts one char (or a string) into the input + unput: function(H) { + var te = H.length, S = H.split(/(?:\r\n?|\n)/g); + this._input = H + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - te), this.offset -= te; + var V = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), S.length - 1 && (this.yylineno -= S.length - 1); + var R = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: S ? (S.length === V.length ? this.yylloc.first_column : 0) + V[V.length - S.length].length - S[0].length : this.yylloc.first_column - te + }, this.options.ranges && (this.yylloc.range = [R[0], R[0] + this.yyleng - te]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(H) { + this.unput(this.match.slice(H)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var H = this.matched.substr(0, this.matched.length - this.match.length); + return (H.length > 20 ? "..." : "") + H.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var H = this.match; + return H.length < 20 && (H += this._input.substr(0, 20 - H.length)), (H.substr(0, 20) + (H.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var H = this.pastInput(), te = new Array(H.length + 1).join("-"); + return H + this.upcomingInput() + ` +` + te + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(H, te) { + var S, V, R; + if (this.options.backtrack_lexer && (R = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (R.yylloc.range = this.yylloc.range.slice(0))), V = H[0].match(/(?:\r\n?|\n).*/g), V && (this.yylineno += V.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: V ? V[V.length - 1].length - V[V.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + H[0].length + }, this.yytext += H[0], this.match += H[0], this.matches = H, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(H[0].length), this.matched += H[0], S = this.performAction.call(this, this.yy, this, te, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), S) + return S; + if (this._backtrack) { + for (var q in R) + this[q] = R[q]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var H, te, S, V; + this._more || (this.yytext = "", this.match = ""); + for (var R = this._currentRules(), q = 0; q < R.length; q++) + if (S = this._input.match(this.rules[R[q]]), S && (!te || S[0].length > te[0].length)) { + if (te = S, V = q, this.options.backtrack_lexer) { + if (H = this.test_match(S, R[q]), H !== !1) + return H; + if (this._backtrack) { + te = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return te ? (H = this.test_match(te, R[V]), H !== !1 ? H : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var te = this.next(); + return te || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(te) { + this.conditionStack.push(te); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var te = this.conditionStack.length - 1; + return te > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(te) { + return te = this.conditionStack.length - 1 - Math.abs(te || 0), te >= 0 ? this.conditionStack[te] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(te) { + this.begin(te); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: { "case-insensitive": !0 }, + performAction: function(te, S, V, R) { + switch (V) { + case 0: + return te.getLogger().trace("Found comment", S.yytext), 6; + case 1: + return 8; + case 2: + this.begin("CLASS"); + break; + case 3: + return this.popState(), 16; + case 4: + this.popState(); + break; + case 5: + te.getLogger().trace("Begin icon"), this.begin("ICON"); + break; + case 6: + return te.getLogger().trace("SPACELINE"), 6; + case 7: + return 7; + case 8: + return 15; + case 9: + te.getLogger().trace("end icon"), this.popState(); + break; + case 10: + return te.getLogger().trace("Exploding node"), this.begin("NODE"), 19; + case 11: + return te.getLogger().trace("Cloud"), this.begin("NODE"), 19; + case 12: + return te.getLogger().trace("Explosion Bang"), this.begin("NODE"), 19; + case 13: + return te.getLogger().trace("Cloud Bang"), this.begin("NODE"), 19; + case 14: + return this.begin("NODE"), 19; + case 15: + return this.begin("NODE"), 19; + case 16: + return this.begin("NODE"), 19; + case 17: + return this.begin("NODE"), 19; + case 18: + return 13; + case 19: + return 22; + case 20: + return 11; + case 21: + this.begin("NSTR2"); + break; + case 22: + return "NODE_DESCR"; + case 23: + this.popState(); + break; + case 24: + te.getLogger().trace("Starting NSTR"), this.begin("NSTR"); + break; + case 25: + return te.getLogger().trace("description:", S.yytext), "NODE_DESCR"; + case 26: + this.popState(); + break; + case 27: + return this.popState(), te.getLogger().trace("node end ))"), "NODE_DEND"; + case 28: + return this.popState(), te.getLogger().trace("node end )"), "NODE_DEND"; + case 29: + return this.popState(), te.getLogger().trace("node end ...", S.yytext), "NODE_DEND"; + case 30: + return this.popState(), te.getLogger().trace("node end (("), "NODE_DEND"; + case 31: + return this.popState(), te.getLogger().trace("node end (-"), "NODE_DEND"; + case 32: + return this.popState(), te.getLogger().trace("node end (-"), "NODE_DEND"; + case 33: + return this.popState(), te.getLogger().trace("node end (("), "NODE_DEND"; + case 34: + return this.popState(), te.getLogger().trace("node end (("), "NODE_DEND"; + case 35: + return te.getLogger().trace("Long description:", S.yytext), 20; + case 36: + return te.getLogger().trace("Long description:", S.yytext), 20; + } + }, + rules: [/^(?:\s*%%.*)/i, /^(?:mindmap\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\n)/i, /^(?:::icon\()/i, /^(?:[\s]+[\n])/i, /^(?:[\n]+)/i, /^(?:[^\)]+)/i, /^(?:\))/i, /^(?:-\))/i, /^(?:\(-)/i, /^(?:\)\))/i, /^(?:\))/i, /^(?:\(\()/i, /^(?:\{\{)/i, /^(?:\()/i, /^(?:\[)/i, /^(?:[\s]+)/i, /^(?:[^\(\[\n\)\{\}]+)/i, /^(?:$)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:[^"]+)/i, /^(?:["])/i, /^(?:[\)]\))/i, /^(?:[\)])/i, /^(?:[\]])/i, /^(?:\}\})/i, /^(?:\(-)/i, /^(?:-\))/i, /^(?:\(\()/i, /^(?:\()/i, /^(?:[^\)\]\(\}]+)/i, /^(?:.+(?!\(\())/i], + conditions: { CLASS: { rules: [3, 4], inclusive: !1 }, ICON: { rules: [8, 9], inclusive: !1 }, NSTR2: { rules: [22, 23], inclusive: !1 }, NSTR: { rules: [25, 26], inclusive: !1 }, NODE: { rules: [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], inclusive: !0 } } + }; + return ee; + }(); + ne.lexer = le; + function j() { + this.yy = {}; + } + return j.prototype = ne, ne.Parser = j, new j(); +}(); +Qi.parser = Qi; +const Cp = Qi; +let or = [], _l = 0, ji = {}; +const Dp = () => { + or = [], _l = 0, ji = {}; +}, Sp = function(de) { + for (let Pe = or.length - 1; Pe >= 0; Pe--) + if (or[Pe].level < de) + return or[Pe]; + return null; +}, Lp = () => or.length > 0 ? or[0] : null, Ap = (de, Pe, _, fe) => { + var I, z; + qr.info("addNode", de, Pe, _, fe); + const Q = Ji(); + let C = ((I = Q.mindmap) == null ? void 0 : I.padding) ?? ti.mindmap.padding; + switch (fe) { + case St.ROUNDED_RECT: + case St.RECT: + case St.HEXAGON: + C *= 2; + } + const T = { + id: _l++, + nodeId: ri(Pe, Q), + level: de, + descr: ri(_, Q), + type: fe, + children: [], + width: ((z = Q.mindmap) == null ? void 0 : z.maxNodeWidth) ?? ti.mindmap.maxNodeWidth, + padding: C + }, x = Sp(de); + if (x) + x.children.push(T), or.push(T); + else if (or.length === 0) + or.push(T); + else + throw new Error( + 'There can be only one root. No parent could be found for ("' + T.descr + '")' + ); +}, St = { + DEFAULT: 0, + NO_BORDER: 0, + ROUNDED_RECT: 1, + RECT: 2, + CIRCLE: 3, + CLOUD: 4, + BANG: 5, + HEXAGON: 6 +}, Op = (de, Pe) => { + switch (qr.debug("In get type", de, Pe), de) { + case "[": + return St.RECT; + case "(": + return Pe === ")" ? St.ROUNDED_RECT : St.CLOUD; + case "((": + return St.CIRCLE; + case ")": + return St.CLOUD; + case "))": + return St.BANG; + case "{{": + return St.HEXAGON; + default: + return St.DEFAULT; + } +}, Np = (de, Pe) => { + ji[de] = Pe; +}, Ip = (de) => { + if (!de) + return; + const Pe = Ji(), _ = or[or.length - 1]; + de.icon && (_.icon = ri(de.icon, Pe)), de.class && (_.class = ri(de.class, Pe)); +}, Mp = (de) => { + switch (de) { + case St.DEFAULT: + return "no-border"; + case St.RECT: + return "rect"; + case St.ROUNDED_RECT: + return "rounded-rect"; + case St.CIRCLE: + return "circle"; + case St.CLOUD: + return "cloud"; + case St.BANG: + return "bang"; + case St.HEXAGON: + return "hexgon"; + default: + return "no-border"; + } +}, Rp = () => qr, kp = (de) => ji[de], Pp = { + clear: Dp, + addNode: Ap, + getMindmap: Lp, + nodeType: St, + getType: Op, + setElementForId: Np, + decorateNode: Ip, + type2Str: Mp, + getLogger: Rp, + getElementById: kp +}, Bp = Pp; +var Yl = { exports: {} }; +(function(de, Pe) { + (function(_, fe) { + de.exports = fe(); + })(Ca, function() { + function _(t) { + "@babel/helpers - typeof"; + return _ = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { + return typeof e; + } : function(e) { + return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; + }, _(t); + } + function fe(t, e) { + if (!(t instanceof e)) + throw new TypeError("Cannot call a class as a function"); + } + function Q(t, e) { + for (var r = 0; r < e.length; r++) { + var a = e[r]; + a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(t, a.key, a); + } + } + function C(t, e, r) { + return e && Q(t.prototype, e), r && Q(t, r), Object.defineProperty(t, "prototype", { + writable: !1 + }), t; + } + function T(t, e, r) { + return e in t ? Object.defineProperty(t, e, { + value: r, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[e] = r, t; + } + function x(t, e) { + return I(t) || z(t, e) || Y(t, e) || Z(); + } + function I(t) { + if (Array.isArray(t)) + return t; + } + function z(t, e) { + var r = t == null ? null : typeof Symbol < "u" && t[Symbol.iterator] || t["@@iterator"]; + if (r != null) { + var a = [], n = !0, i = !1, s, o; + try { + for (r = r.call(t); !(n = (s = r.next()).done) && (a.push(s.value), !(e && a.length === e)); n = !0) + ; + } catch (u) { + i = !0, o = u; + } finally { + try { + !n && r.return != null && r.return(); + } finally { + if (i) + throw o; + } + } + return a; + } + } + function Y(t, e) { + if (t) { + if (typeof t == "string") + return P(t, e); + var r = Object.prototype.toString.call(t).slice(8, -1); + if (r === "Object" && t.constructor && (r = t.constructor.name), r === "Map" || r === "Set") + return Array.from(t); + if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) + return P(t, e); + } + } + function P(t, e) { + (e == null || e > t.length) && (e = t.length); + for (var r = 0, a = new Array(e); r < e; r++) + a[r] = t[r]; + return a; + } + function Z() { + throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`); + } + var A = typeof window > "u" ? null : window, $ = A ? A.navigator : null; + A && A.document; + var U = _(""), J = _({}), ne = _(function() { + }), le = typeof HTMLElement > "u" ? "undefined" : _(HTMLElement), j = function(e) { + return e && e.instanceString && H(e.instanceString) ? e.instanceString() : null; + }, ee = function(e) { + return e != null && _(e) == U; + }, H = function(e) { + return e != null && _(e) === ne; + }, te = function(e) { + return !pe(e) && (Array.isArray ? Array.isArray(e) : e != null && e instanceof Array); + }, S = function(e) { + return e != null && _(e) === J && !te(e) && e.constructor === Object; + }, V = function(e) { + return e != null && _(e) === J; + }, R = function(e) { + return e != null && _(e) === _(1) && !isNaN(e); + }, q = function(e) { + return R(e) && Math.floor(e) === e; + }, ve = function(e) { + if (le !== "undefined") + return e != null && e instanceof HTMLElement; + }, pe = function(e) { + return Ae(e) || Ne(e); + }, Ae = function(e) { + return j(e) === "collection" && e._private.single; + }, Ne = function(e) { + return j(e) === "collection" && !e._private.single; + }, Ye = function(e) { + return j(e) === "core"; + }, at = function(e) { + return j(e) === "stylesheet"; + }, dt = function(e) { + return j(e) === "event"; + }, Re = function(e) { + return e == null ? !0 : !!(e === "" || e.match(/^\s+$/)); + }, Ve = function(e) { + return typeof HTMLElement > "u" ? !1 : e instanceof HTMLElement; + }, Ze = function(e) { + return S(e) && R(e.x1) && R(e.x2) && R(e.y1) && R(e.y2); + }, nt = function(e) { + return V(e) && H(e.then); + }, ht = function() { + return $ && $.userAgent.match(/msie|trident|edge/i); + }, it = function(e, r) { + r || (r = function() { + if (arguments.length === 1) + return arguments[0]; + if (arguments.length === 0) + return "undefined"; + for (var i = [], s = 0; s < arguments.length; s++) + i.push(arguments[s]); + return i.join("$"); + }); + var a = function n() { + var i = this, s = arguments, o, u = r.apply(i, s), l = n.cache; + return (o = l[u]) || (o = l[u] = e.apply(i, s)), o; + }; + return a.cache = {}, a; + }, tt = it(function(t) { + return t.replace(/([A-Z])/g, function(e) { + return "-" + e.toLowerCase(); + }); + }), yt = it(function(t) { + return t.replace(/(-\w)/g, function(e) { + return e[1].toUpperCase(); + }); + }), Et = it(function(t, e) { + return t + e[0].toUpperCase() + e.substring(1); + }, function(t, e) { + return t + "$" + e; + }), Pt = function(e) { + return Re(e) ? e : e.charAt(0).toUpperCase() + e.substring(1); + }, gt = "(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))", dr = "rgb[a]?\\((" + gt + "[%]?)\\s*,\\s*(" + gt + "[%]?)\\s*,\\s*(" + gt + "[%]?)(?:\\s*,\\s*(" + gt + "))?\\)", qt = "rgb[a]?\\((?:" + gt + "[%]?)\\s*,\\s*(?:" + gt + "[%]?)\\s*,\\s*(?:" + gt + "[%]?)(?:\\s*,\\s*(?:" + gt + "))?\\)", nn = "hsl[a]?\\((" + gt + ")\\s*,\\s*(" + gt + "[%])\\s*,\\s*(" + gt + "[%])(?:\\s*,\\s*(" + gt + "))?\\)", Kr = "hsl[a]?\\((?:" + gt + ")\\s*,\\s*(?:" + gt + "[%])\\s*,\\s*(?:" + gt + "[%])(?:\\s*,\\s*(?:" + gt + "))?\\)", Da = "\\#[0-9a-fA-F]{3}", jt = "\\#[0-9a-fA-F]{6}", es = function(e, r) { + return e < r ? -1 : e > r ? 1 : 0; + }, Kl = function(e, r) { + return -1 * es(e, r); + }, He = Object.assign != null ? Object.assign.bind(Object) : function(t) { + for (var e = arguments, r = 1; r < e.length; r++) { + var a = e[r]; + if (a != null) + for (var n = Object.keys(a), i = 0; i < n.length; i++) { + var s = n[i]; + t[s] = a[s]; + } + } + return t; + }, Zl = function(e) { + if (!(!(e.length === 4 || e.length === 7) || e[0] !== "#")) { + var r = e.length === 4, a, n, i, s = 16; + return r ? (a = parseInt(e[1] + e[1], s), n = parseInt(e[2] + e[2], s), i = parseInt(e[3] + e[3], s)) : (a = parseInt(e[1] + e[2], s), n = parseInt(e[3] + e[4], s), i = parseInt(e[5] + e[6], s)), [a, n, i]; + } + }, Ql = function(e) { + var r, a, n, i, s, o, u, l; + function f(c, y, p) { + return p < 0 && (p += 1), p > 1 && (p -= 1), p < 1 / 6 ? c + (y - c) * 6 * p : p < 1 / 2 ? y : p < 2 / 3 ? c + (y - c) * (2 / 3 - p) * 6 : c; + } + var h = new RegExp("^" + nn + "$").exec(e); + if (h) { + if (a = parseInt(h[1]), a < 0 ? a = (360 - -1 * a % 360) % 360 : a > 360 && (a = a % 360), a /= 360, n = parseFloat(h[2]), n < 0 || n > 100 || (n = n / 100, i = parseFloat(h[3]), i < 0 || i > 100) || (i = i / 100, s = h[4], s !== void 0 && (s = parseFloat(s), s < 0 || s > 1))) + return; + if (n === 0) + o = u = l = Math.round(i * 255); + else { + var v = i < 0.5 ? i * (1 + n) : i + n - i * n, d = 2 * i - v; + o = Math.round(255 * f(d, v, a + 1 / 3)), u = Math.round(255 * f(d, v, a)), l = Math.round(255 * f(d, v, a - 1 / 3)); + } + r = [o, u, l, s]; + } + return r; + }, Jl = function(e) { + var r, a = new RegExp("^" + dr + "$").exec(e); + if (a) { + r = []; + for (var n = [], i = 1; i <= 3; i++) { + var s = a[i]; + if (s[s.length - 1] === "%" && (n[i] = !0), s = parseFloat(s), n[i] && (s = s / 100 * 255), s < 0 || s > 255) + return; + r.push(Math.floor(s)); + } + var o = n[1] || n[2] || n[3], u = n[1] && n[2] && n[3]; + if (o && !u) + return; + var l = a[4]; + if (l !== void 0) { + if (l = parseFloat(l), l < 0 || l > 1) + return; + r.push(l); + } + } + return r; + }, jl = function(e) { + return tu[e.toLowerCase()]; + }, eu = function(e) { + return (te(e) ? e : null) || jl(e) || Zl(e) || Jl(e) || Ql(e); + }, tu = { + // special colour names + transparent: [0, 0, 0, 0], + // NB alpha === 0 + // regular colours + aliceblue: [240, 248, 255], + antiquewhite: [250, 235, 215], + aqua: [0, 255, 255], + aquamarine: [127, 255, 212], + azure: [240, 255, 255], + beige: [245, 245, 220], + bisque: [255, 228, 196], + black: [0, 0, 0], + blanchedalmond: [255, 235, 205], + blue: [0, 0, 255], + blueviolet: [138, 43, 226], + brown: [165, 42, 42], + burlywood: [222, 184, 135], + cadetblue: [95, 158, 160], + chartreuse: [127, 255, 0], + chocolate: [210, 105, 30], + coral: [255, 127, 80], + cornflowerblue: [100, 149, 237], + cornsilk: [255, 248, 220], + crimson: [220, 20, 60], + cyan: [0, 255, 255], + darkblue: [0, 0, 139], + darkcyan: [0, 139, 139], + darkgoldenrod: [184, 134, 11], + darkgray: [169, 169, 169], + darkgreen: [0, 100, 0], + darkgrey: [169, 169, 169], + darkkhaki: [189, 183, 107], + darkmagenta: [139, 0, 139], + darkolivegreen: [85, 107, 47], + darkorange: [255, 140, 0], + darkorchid: [153, 50, 204], + darkred: [139, 0, 0], + darksalmon: [233, 150, 122], + darkseagreen: [143, 188, 143], + darkslateblue: [72, 61, 139], + darkslategray: [47, 79, 79], + darkslategrey: [47, 79, 79], + darkturquoise: [0, 206, 209], + darkviolet: [148, 0, 211], + deeppink: [255, 20, 147], + deepskyblue: [0, 191, 255], + dimgray: [105, 105, 105], + dimgrey: [105, 105, 105], + dodgerblue: [30, 144, 255], + firebrick: [178, 34, 34], + floralwhite: [255, 250, 240], + forestgreen: [34, 139, 34], + fuchsia: [255, 0, 255], + gainsboro: [220, 220, 220], + ghostwhite: [248, 248, 255], + gold: [255, 215, 0], + goldenrod: [218, 165, 32], + gray: [128, 128, 128], + grey: [128, 128, 128], + green: [0, 128, 0], + greenyellow: [173, 255, 47], + honeydew: [240, 255, 240], + hotpink: [255, 105, 180], + indianred: [205, 92, 92], + indigo: [75, 0, 130], + ivory: [255, 255, 240], + khaki: [240, 230, 140], + lavender: [230, 230, 250], + lavenderblush: [255, 240, 245], + lawngreen: [124, 252, 0], + lemonchiffon: [255, 250, 205], + lightblue: [173, 216, 230], + lightcoral: [240, 128, 128], + lightcyan: [224, 255, 255], + lightgoldenrodyellow: [250, 250, 210], + lightgray: [211, 211, 211], + lightgreen: [144, 238, 144], + lightgrey: [211, 211, 211], + lightpink: [255, 182, 193], + lightsalmon: [255, 160, 122], + lightseagreen: [32, 178, 170], + lightskyblue: [135, 206, 250], + lightslategray: [119, 136, 153], + lightslategrey: [119, 136, 153], + lightsteelblue: [176, 196, 222], + lightyellow: [255, 255, 224], + lime: [0, 255, 0], + limegreen: [50, 205, 50], + linen: [250, 240, 230], + magenta: [255, 0, 255], + maroon: [128, 0, 0], + mediumaquamarine: [102, 205, 170], + mediumblue: [0, 0, 205], + mediumorchid: [186, 85, 211], + mediumpurple: [147, 112, 219], + mediumseagreen: [60, 179, 113], + mediumslateblue: [123, 104, 238], + mediumspringgreen: [0, 250, 154], + mediumturquoise: [72, 209, 204], + mediumvioletred: [199, 21, 133], + midnightblue: [25, 25, 112], + mintcream: [245, 255, 250], + mistyrose: [255, 228, 225], + moccasin: [255, 228, 181], + navajowhite: [255, 222, 173], + navy: [0, 0, 128], + oldlace: [253, 245, 230], + olive: [128, 128, 0], + olivedrab: [107, 142, 35], + orange: [255, 165, 0], + orangered: [255, 69, 0], + orchid: [218, 112, 214], + palegoldenrod: [238, 232, 170], + palegreen: [152, 251, 152], + paleturquoise: [175, 238, 238], + palevioletred: [219, 112, 147], + papayawhip: [255, 239, 213], + peachpuff: [255, 218, 185], + peru: [205, 133, 63], + pink: [255, 192, 203], + plum: [221, 160, 221], + powderblue: [176, 224, 230], + purple: [128, 0, 128], + red: [255, 0, 0], + rosybrown: [188, 143, 143], + royalblue: [65, 105, 225], + saddlebrown: [139, 69, 19], + salmon: [250, 128, 114], + sandybrown: [244, 164, 96], + seagreen: [46, 139, 87], + seashell: [255, 245, 238], + sienna: [160, 82, 45], + silver: [192, 192, 192], + skyblue: [135, 206, 235], + slateblue: [106, 90, 205], + slategray: [112, 128, 144], + slategrey: [112, 128, 144], + snow: [255, 250, 250], + springgreen: [0, 255, 127], + steelblue: [70, 130, 180], + tan: [210, 180, 140], + teal: [0, 128, 128], + thistle: [216, 191, 216], + tomato: [255, 99, 71], + turquoise: [64, 224, 208], + violet: [238, 130, 238], + wheat: [245, 222, 179], + white: [255, 255, 255], + whitesmoke: [245, 245, 245], + yellow: [255, 255, 0], + yellowgreen: [154, 205, 50] + }, ts = function(e) { + for (var r = e.map, a = e.keys, n = a.length, i = 0; i < n; i++) { + var s = a[i]; + if (S(s)) + throw Error("Tried to set map with object key"); + i < a.length - 1 ? (r[s] == null && (r[s] = {}), r = r[s]) : r[s] = e.value; + } + }, rs = function(e) { + for (var r = e.map, a = e.keys, n = a.length, i = 0; i < n; i++) { + var s = a[i]; + if (S(s)) + throw Error("Tried to get map with object key"); + if (r = r[s], r == null) + return r; + } + return r; + }; + function ru(t) { + var e = typeof t; + return t != null && (e == "object" || e == "function"); + } + var kr = ru, Sa = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof Ca < "u" ? Ca : typeof self < "u" ? self : {}; + function au(t, e) { + return e = { exports: {} }, t(e, e.exports), e.exports; + } + var nu = typeof Sa == "object" && Sa && Sa.Object === Object && Sa, iu = nu, su = typeof self == "object" && self && self.Object === Object && self, ou = iu || su || Function("return this")(), sn = ou, lu = function() { + return sn.Date.now(); + }, ai = lu, uu = /\s/; + function fu(t) { + for (var e = t.length; e-- && uu.test(t.charAt(e)); ) + ; + return e; + } + var hu = fu, vu = /^\s+/; + function cu(t) { + return t && t.slice(0, hu(t) + 1).replace(vu, ""); + } + var du = cu, gu = sn.Symbol, Zr = gu, as = Object.prototype, pu = as.hasOwnProperty, yu = as.toString, La = Zr ? Zr.toStringTag : void 0; + function mu(t) { + var e = pu.call(t, La), r = t[La]; + try { + t[La] = void 0; + var a = !0; + } catch { + } + var n = yu.call(t); + return a && (e ? t[La] = r : delete t[La]), n; + } + var bu = mu, Eu = Object.prototype, wu = Eu.toString; + function xu(t) { + return wu.call(t); + } + var Tu = xu, Cu = "[object Null]", Du = "[object Undefined]", ns = Zr ? Zr.toStringTag : void 0; + function Su(t) { + return t == null ? t === void 0 ? Du : Cu : ns && ns in Object(t) ? bu(t) : Tu(t); + } + var is = Su; + function Lu(t) { + return t != null && typeof t == "object"; + } + var Au = Lu, Ou = "[object Symbol]"; + function Nu(t) { + return typeof t == "symbol" || Au(t) && is(t) == Ou; + } + var Aa = Nu, ss = 0 / 0, Iu = /^[-+]0x[0-9a-f]+$/i, Mu = /^0b[01]+$/i, Ru = /^0o[0-7]+$/i, ku = parseInt; + function Pu(t) { + if (typeof t == "number") + return t; + if (Aa(t)) + return ss; + if (kr(t)) { + var e = typeof t.valueOf == "function" ? t.valueOf() : t; + t = kr(e) ? e + "" : e; + } + if (typeof t != "string") + return t === 0 ? t : +t; + t = du(t); + var r = Mu.test(t); + return r || Ru.test(t) ? ku(t.slice(2), r ? 2 : 8) : Iu.test(t) ? ss : +t; + } + var os = Pu, Bu = "Expected a function", Fu = Math.max, Gu = Math.min; + function zu(t, e, r) { + var a, n, i, s, o, u, l = 0, f = !1, h = !1, v = !0; + if (typeof t != "function") + throw new TypeError(Bu); + e = os(e) || 0, kr(r) && (f = !!r.leading, h = "maxWait" in r, i = h ? Fu(os(r.maxWait) || 0, e) : i, v = "trailing" in r ? !!r.trailing : v); + function d(L) { + var w = a, k = n; + return a = n = void 0, l = L, s = t.apply(k, w), s; + } + function c(L) { + return l = L, o = setTimeout(g, e), f ? d(L) : s; + } + function y(L) { + var w = L - u, k = L - l, D = e - w; + return h ? Gu(D, i - k) : D; + } + function p(L) { + var w = L - u, k = L - l; + return u === void 0 || w >= e || w < 0 || h && k >= i; + } + function g() { + var L = ai(); + if (p(L)) + return m(L); + o = setTimeout(g, y(L)); + } + function m(L) { + return o = void 0, v && a ? d(L) : (a = n = void 0, s); + } + function b() { + o !== void 0 && clearTimeout(o), l = 0, a = u = n = o = void 0; + } + function E() { + return o === void 0 ? s : m(ai()); + } + function M() { + var L = ai(), w = p(L); + if (a = arguments, n = this, u = L, w) { + if (o === void 0) + return c(u); + if (h) + return clearTimeout(o), o = setTimeout(g, e), d(u); + } + return o === void 0 && (o = setTimeout(g, e)), s; + } + return M.cancel = b, M.flush = E, M; + } + var on = zu, ni = A ? A.performance : null, ls = ni && ni.now ? function() { + return ni.now(); + } : function() { + return Date.now(); + }, Vu = function() { + if (A) { + if (A.requestAnimationFrame) + return function(t) { + A.requestAnimationFrame(t); + }; + if (A.mozRequestAnimationFrame) + return function(t) { + A.mozRequestAnimationFrame(t); + }; + if (A.webkitRequestAnimationFrame) + return function(t) { + A.webkitRequestAnimationFrame(t); + }; + if (A.msRequestAnimationFrame) + return function(t) { + A.msRequestAnimationFrame(t); + }; + } + return function(t) { + t && setTimeout(function() { + t(ls()); + }, 1e3 / 60); + }; + }(), ln = function(e) { + return Vu(e); + }, gr = ls, Qr = 9261, us = 65599, Oa = 5381, fs = function(e) { + for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Qr, a = r, n; n = e.next(), !n.done; ) + a = a * us + n.value | 0; + return a; + }, Na = function(e) { + var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Qr; + return r * us + e | 0; + }, Ia = function(e) { + var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Oa; + return (r << 5) + r + e | 0; + }, Uu = function(e, r) { + return e * 2097152 + r; + }, wr = function(e) { + return e[0] * 2097152 + e[1]; + }, un = function(e, r) { + return [Na(e[0], r[0]), Ia(e[1], r[1])]; + }, $u = function(e, r) { + var a = { + value: 0, + done: !1 + }, n = 0, i = e.length, s = { + next: function() { + return n < i ? a.value = e[n++] : a.done = !0, a; + } + }; + return fs(s, r); + }, Pr = function(e, r) { + var a = { + value: 0, + done: !1 + }, n = 0, i = e.length, s = { + next: function() { + return n < i ? a.value = e.charCodeAt(n++) : a.done = !0, a; + } + }; + return fs(s, r); + }, hs = function() { + return _u(arguments); + }, _u = function(e) { + for (var r, a = 0; a < e.length; a++) { + var n = e[a]; + a === 0 ? r = Pr(n) : r = Pr(n, r); + } + return r; + }, vs = !0, Yu = console.warn != null, Hu = console.trace != null, ii = Number.MAX_SAFE_INTEGER || 9007199254740991, cs = function() { + return !0; + }, fn = function() { + return !1; + }, ds = function() { + return 0; + }, si = function() { + }, xt = function(e) { + throw new Error(e); + }, gs = function(e) { + if (e !== void 0) + vs = !!e; + else + return vs; + }, vt = function(e) { + gs() && (Yu ? console.warn(e) : (console.log(e), Hu && console.trace())); + }, Xu = function(e) { + return He({}, e); + }, lr = function(e) { + return e == null ? e : te(e) ? e.slice() : S(e) ? Xu(e) : e; + }, Wu = function(e) { + return e.slice(); + }, ps = function(e, r) { + for ( + // loop :) + r = e = ""; + // b - result , a - numeric letiable + e++ < 36; + // + r += e * 51 & 52 ? ( + // return a random number or 4 + (e ^ 15 ? ( + // generate a random number from 0 to 15 + 8 ^ Math.random() * (e ^ 20 ? 16 : 4) + ) : 4).toString(16) + ) : "-" + ) + ; + return r; + }, qu = {}, ys = function() { + return qu; + }, At = function(e) { + var r = Object.keys(e); + return function(a) { + for (var n = {}, i = 0; i < r.length; i++) { + var s = r[i], o = a == null ? void 0 : a[s]; + n[s] = o === void 0 ? e[s] : o; + } + return n; + }; + }, xr = function(e, r, a) { + for (var n = e.length - 1; n >= 0 && !(e[n] === r && (e.splice(n, 1), a)); n--) + ; + }, oi = function(e) { + e.splice(0, e.length); + }, Ku = function(e, r) { + for (var a = 0; a < r.length; a++) { + var n = r[a]; + e.push(n); + } + }, er = function(e, r, a) { + return a && (r = Et(a, r)), e[r]; + }, Tr = function(e, r, a, n) { + a && (r = Et(a, r)), e[r] = n; + }, Zu = /* @__PURE__ */ function() { + function t() { + fe(this, t), this._obj = {}; + } + return C(t, [{ + key: "set", + value: function(r, a) { + return this._obj[r] = a, this; + } + }, { + key: "delete", + value: function(r) { + return this._obj[r] = void 0, this; + } + }, { + key: "clear", + value: function() { + this._obj = {}; + } + }, { + key: "has", + value: function(r) { + return this._obj[r] !== void 0; + } + }, { + key: "get", + value: function(r) { + return this._obj[r]; + } + }]), t; + }(), ur = typeof Map < "u" ? Map : Zu, Qu = "undefined", Ju = /* @__PURE__ */ function() { + function t(e) { + if (fe(this, t), this._obj = /* @__PURE__ */ Object.create(null), this.size = 0, e != null) { + var r; + e.instanceString != null && e.instanceString() === this.instanceString() ? r = e.toArray() : r = e; + for (var a = 0; a < r.length; a++) + this.add(r[a]); + } + } + return C(t, [{ + key: "instanceString", + value: function() { + return "set"; + } + }, { + key: "add", + value: function(r) { + var a = this._obj; + a[r] !== 1 && (a[r] = 1, this.size++); + } + }, { + key: "delete", + value: function(r) { + var a = this._obj; + a[r] === 1 && (a[r] = 0, this.size--); + } + }, { + key: "clear", + value: function() { + this._obj = /* @__PURE__ */ Object.create(null); + } + }, { + key: "has", + value: function(r) { + return this._obj[r] === 1; + } + }, { + key: "toArray", + value: function() { + var r = this; + return Object.keys(this._obj).filter(function(a) { + return r.has(a); + }); + } + }, { + key: "forEach", + value: function(r, a) { + return this.toArray().forEach(r, a); + } + }]), t; + }(), Jr = (typeof Set > "u" ? "undefined" : _(Set)) !== Qu ? Set : Ju, hn = function(e, r) { + var a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !0; + if (e === void 0 || r === void 0 || !Ye(e)) { + xt("An element must have a core reference and parameters set"); + return; + } + var n = r.group; + if (n == null && (r.data && r.data.source != null && r.data.target != null ? n = "edges" : n = "nodes"), n !== "nodes" && n !== "edges") { + xt("An element must be of type `nodes` or `edges`; you specified `" + n + "`"); + return; + } + this.length = 1, this[0] = this; + var i = this._private = { + cy: e, + single: !0, + // indicates this is an element + data: r.data || {}, + // data object + position: r.position || { + x: 0, + y: 0 + }, + // (x, y) position pair + autoWidth: void 0, + // width and height of nodes calculated by the renderer when set to special 'auto' value + autoHeight: void 0, + autoPadding: void 0, + compoundBoundsClean: !1, + // whether the compound dimensions need to be recalculated the next time dimensions are read + listeners: [], + // array of bound listeners + group: n, + // string; 'nodes' or 'edges' + style: {}, + // properties as set by the style + rstyle: {}, + // properties for style sent from the renderer to the core + styleCxts: [], + // applied style contexts from the styler + styleKeys: {}, + // per-group keys of style property values + removed: !0, + // whether it's inside the vis; true if removed (set true here since we call restore) + selected: !!r.selected, + // whether it's selected + selectable: r.selectable === void 0 ? !0 : !!r.selectable, + // whether it's selectable + locked: !!r.locked, + // whether the element is locked (cannot be moved) + grabbed: !1, + // whether the element is grabbed by the mouse; renderer sets this privately + grabbable: r.grabbable === void 0 ? !0 : !!r.grabbable, + // whether the element can be grabbed + pannable: r.pannable === void 0 ? n === "edges" : !!r.pannable, + // whether the element has passthrough panning enabled + active: !1, + // whether the element is active from user interaction + classes: new Jr(), + // map ( className => true ) + animation: { + // object for currently-running animations + current: [], + queue: [] + }, + rscratch: {}, + // object in which the renderer can store information + scratch: r.scratch || {}, + // scratch objects + edges: [], + // array of connected edges + children: [], + // array of children + parent: r.parent && r.parent.isNode() ? r.parent : null, + // parent ref + traversalCache: {}, + // cache of output of traversal functions + backgrounding: !1, + // whether background images are loading + bbCache: null, + // cache of the current bounding box + bbCacheShift: { + x: 0, + y: 0 + }, + // shift applied to cached bb to be applied on next get + bodyBounds: null, + // bounds cache of element body, w/o overlay + overlayBounds: null, + // bounds cache of element body, including overlay + labelBounds: { + // bounds cache of labels + all: null, + source: null, + target: null, + main: null + }, + arrowBounds: { + // bounds cache of edge arrows + source: null, + target: null, + "mid-source": null, + "mid-target": null + } + }; + if (i.position.x == null && (i.position.x = 0), i.position.y == null && (i.position.y = 0), r.renderedPosition) { + var s = r.renderedPosition, o = e.pan(), u = e.zoom(); + i.position = { + x: (s.x - o.x) / u, + y: (s.y - o.y) / u + }; + } + var l = []; + te(r.classes) ? l = r.classes : ee(r.classes) && (l = r.classes.split(/\s+/)); + for (var f = 0, h = l.length; f < h; f++) { + var v = l[f]; + !v || v === "" || i.classes.add(v); + } + this.createEmitter(); + var d = r.style || r.css; + d && (vt("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."), this.style(d)), (a === void 0 || a) && this.restore(); + }, ms = function(e) { + return e = { + bfs: e.bfs || !e.dfs, + dfs: e.dfs || !e.bfs + }, function(a, n, i) { + var s; + S(a) && !pe(a) && (s = a, a = s.roots || s.root, n = s.visit, i = s.directed), i = arguments.length === 2 && !H(n) ? n : i, n = H(n) ? n : function() { + }; + for (var o = this._private.cy, u = a = ee(a) ? this.filter(a) : a, l = [], f = [], h = {}, v = {}, d = {}, c = 0, y, p = this.byGroup(), g = p.nodes, m = p.edges, b = 0; b < u.length; b++) { + var E = u[b], M = E.id(); + E.isNode() && (l.unshift(E), e.bfs && (d[M] = !0, f.push(E)), v[M] = 0); + } + for (var L = function() { + var X = e.bfs ? l.shift() : l.pop(), B = X.id(); + if (e.dfs) { + if (d[B]) + return "continue"; + d[B] = !0, f.push(X); + } + var re = v[B], K = h[B], W = K != null ? K.source() : null, ae = K != null ? K.target() : null, ue = K == null ? void 0 : X.same(W) ? ae[0] : W[0], me = void 0; + if (me = n(X, K, ue, c++, re), me === !0) + return y = X, "break"; + if (me === !1) + return "break"; + for (var ie = X.connectedEdges().filter(function(De) { + return (!i || De.source().same(X)) && m.has(De); + }), ge = 0; ge < ie.length; ge++) { + var Ee = ie[ge], Ce = Ee.connectedNodes().filter(function(De) { + return !De.same(X) && g.has(De); + }), we = Ce.id(); + Ce.length !== 0 && !d[we] && (Ce = Ce[0], l.push(Ce), e.bfs && (d[we] = !0, f.push(Ce)), h[we] = Ee, v[we] = v[B] + 1); + } + }; l.length !== 0; ) { + var w = L(); + if (w !== "continue" && w === "break") + break; + } + for (var k = o.collection(), D = 0; D < f.length; D++) { + var F = f[D], G = h[F.id()]; + G != null && k.push(G), k.push(F); + } + return { + path: o.collection(k), + found: o.collection(y) + }; + }; + }, Ma = { + breadthFirstSearch: ms({ + bfs: !0 + }), + depthFirstSearch: ms({ + dfs: !0 + }) + }; + Ma.bfs = Ma.breadthFirstSearch, Ma.dfs = Ma.depthFirstSearch; + var ju = au(function(t, e) { + (function() { + var r, a, n, i, s, o, u, l, f, h, v, d, c, y, p; + n = Math.floor, h = Math.min, a = function(g, m) { + return g < m ? -1 : g > m ? 1 : 0; + }, f = function(g, m, b, E, M) { + var L; + if (b == null && (b = 0), M == null && (M = a), b < 0) + throw new Error("lo must be non-negative"); + for (E == null && (E = g.length); b < E; ) + L = n((b + E) / 2), M(m, g[L]) < 0 ? E = L : b = L + 1; + return [].splice.apply(g, [b, b - b].concat(m)), m; + }, o = function(g, m, b) { + return b == null && (b = a), g.push(m), y(g, 0, g.length - 1, b); + }, s = function(g, m) { + var b, E; + return m == null && (m = a), b = g.pop(), g.length ? (E = g[0], g[0] = b, p(g, 0, m)) : E = b, E; + }, l = function(g, m, b) { + var E; + return b == null && (b = a), E = g[0], g[0] = m, p(g, 0, b), E; + }, u = function(g, m, b) { + var E; + return b == null && (b = a), g.length && b(g[0], m) < 0 && (E = [g[0], m], m = E[0], g[0] = E[1], p(g, 0, b)), m; + }, i = function(g, m) { + var b, E, M, L, w, k; + for (m == null && (m = a), L = (function() { + k = []; + for (var D = 0, F = n(g.length / 2); 0 <= F ? D < F : D > F; 0 <= F ? D++ : D--) + k.push(D); + return k; + }).apply(this).reverse(), w = [], E = 0, M = L.length; E < M; E++) + b = L[E], w.push(p(g, b, m)); + return w; + }, c = function(g, m, b) { + var E; + if (b == null && (b = a), E = g.indexOf(m), E !== -1) + return y(g, 0, E, b), p(g, E, b); + }, v = function(g, m, b) { + var E, M, L, w, k; + if (b == null && (b = a), M = g.slice(0, m), !M.length) + return M; + for (i(M, b), k = g.slice(m), L = 0, w = k.length; L < w; L++) + E = k[L], u(M, E, b); + return M.sort(b).reverse(); + }, d = function(g, m, b) { + var E, M, L, w, k, D, F, G, N; + if (b == null && (b = a), m * 10 <= g.length) { + if (L = g.slice(0, m).sort(b), !L.length) + return L; + for (M = L[L.length - 1], F = g.slice(m), w = 0, D = F.length; w < D; w++) + E = F[w], b(E, M) < 0 && (f(L, E, 0, null, b), L.pop(), M = L[L.length - 1]); + return L; + } + for (i(g, b), N = [], k = 0, G = h(m, g.length); 0 <= G ? k < G : k > G; 0 <= G ? ++k : --k) + N.push(s(g, b)); + return N; + }, y = function(g, m, b, E) { + var M, L, w; + for (E == null && (E = a), M = g[b]; b > m; ) { + if (w = b - 1 >> 1, L = g[w], E(M, L) < 0) { + g[b] = L, b = w; + continue; + } + break; + } + return g[b] = M; + }, p = function(g, m, b) { + var E, M, L, w, k; + for (b == null && (b = a), M = g.length, k = m, L = g[m], E = 2 * m + 1; E < M; ) + w = E + 1, w < M && !(b(g[E], g[w]) < 0) && (E = w), g[m] = g[E], m = E, E = 2 * m + 1; + return g[m] = L, y(g, k, m, b); + }, r = function() { + g.push = o, g.pop = s, g.replace = l, g.pushpop = u, g.heapify = i, g.updateItem = c, g.nlargest = v, g.nsmallest = d; + function g(m) { + this.cmp = m ?? a, this.nodes = []; + } + return g.prototype.push = function(m) { + return o(this.nodes, m, this.cmp); + }, g.prototype.pop = function() { + return s(this.nodes, this.cmp); + }, g.prototype.peek = function() { + return this.nodes[0]; + }, g.prototype.contains = function(m) { + return this.nodes.indexOf(m) !== -1; + }, g.prototype.replace = function(m) { + return l(this.nodes, m, this.cmp); + }, g.prototype.pushpop = function(m) { + return u(this.nodes, m, this.cmp); + }, g.prototype.heapify = function() { + return i(this.nodes, this.cmp); + }, g.prototype.updateItem = function(m) { + return c(this.nodes, m, this.cmp); + }, g.prototype.clear = function() { + return this.nodes = []; + }, g.prototype.empty = function() { + return this.nodes.length === 0; + }, g.prototype.size = function() { + return this.nodes.length; + }, g.prototype.clone = function() { + var m; + return m = new g(), m.nodes = this.nodes.slice(0), m; + }, g.prototype.toArray = function() { + return this.nodes.slice(0); + }, g.prototype.insert = g.prototype.push, g.prototype.top = g.prototype.peek, g.prototype.front = g.prototype.peek, g.prototype.has = g.prototype.contains, g.prototype.copy = g.prototype.clone, g; + }(), function(g, m) { + return t.exports = m(); + }(this, function() { + return r; + }); + }).call(Sa); + }), Ra = ju, ef = At({ + root: null, + weight: function(e) { + return 1; + }, + directed: !1 + }), tf = { + dijkstra: function(e) { + if (!S(e)) { + var r = arguments; + e = { + root: r[0], + weight: r[1], + directed: r[2] + }; + } + var a = ef(e), n = a.root, i = a.weight, s = a.directed, o = this, u = i, l = ee(n) ? this.filter(n)[0] : n[0], f = {}, h = {}, v = {}, d = this.byGroup(), c = d.nodes, y = d.edges; + y.unmergeBy(function(re) { + return re.isLoop(); + }); + for (var p = function(K) { + return f[K.id()]; + }, g = function(K, W) { + f[K.id()] = W, m.updateItem(K); + }, m = new Ra(function(re, K) { + return p(re) - p(K); + }), b = 0; b < c.length; b++) { + var E = c[b]; + f[E.id()] = E.same(l) ? 0 : 1 / 0, m.push(E); + } + for (var M = function(K, W) { + for (var ae = (s ? K.edgesTo(W) : K.edgesWith(W)).intersect(y), ue = 1 / 0, me, ie = 0; ie < ae.length; ie++) { + var ge = ae[ie], Ee = u(ge); + (Ee < ue || !me) && (ue = Ee, me = ge); + } + return { + edge: me, + dist: ue + }; + }; m.size() > 0; ) { + var L = m.pop(), w = p(L), k = L.id(); + if (v[k] = w, w !== 1 / 0) + for (var D = L.neighborhood().intersect(c), F = 0; F < D.length; F++) { + var G = D[F], N = G.id(), X = M(L, G), B = w + X.dist; + B < p(G) && (g(G, B), h[N] = { + node: L, + edge: X.edge + }); + } + } + return { + distanceTo: function(K) { + var W = ee(K) ? c.filter(K)[0] : K[0]; + return v[W.id()]; + }, + pathTo: function(K) { + var W = ee(K) ? c.filter(K)[0] : K[0], ae = [], ue = W, me = ue.id(); + if (W.length > 0) + for (ae.unshift(W); h[me]; ) { + var ie = h[me]; + ae.unshift(ie.edge), ae.unshift(ie.node), ue = ie.node, me = ue.id(); + } + return o.spawn(ae); + } + }; + } + }, rf = { + // kruskal's algorithm (finds min spanning tree, assuming undirected graph) + // implemented from pseudocode from wikipedia + kruskal: function(e) { + e = e || function(b) { + return 1; + }; + for (var r = this.byGroup(), a = r.nodes, n = r.edges, i = a.length, s = new Array(i), o = a, u = function(E) { + for (var M = 0; M < s.length; M++) { + var L = s[M]; + if (L.has(E)) + return M; + } + }, l = 0; l < i; l++) + s[l] = this.spawn(a[l]); + for (var f = n.sort(function(b, E) { + return e(b) - e(E); + }), h = 0; h < f.length; h++) { + var v = f[h], d = v.source()[0], c = v.target()[0], y = u(d), p = u(c), g = s[y], m = s[p]; + y !== p && (o.merge(v), g.merge(m), s.splice(p, 1)); + } + return o; + } + }, af = At({ + root: null, + goal: null, + weight: function(e) { + return 1; + }, + heuristic: function(e) { + return 0; + }, + directed: !1 + }), nf = { + // Implemented from pseudocode from wikipedia + aStar: function(e) { + var r = this.cy(), a = af(e), n = a.root, i = a.goal, s = a.heuristic, o = a.directed, u = a.weight; + n = r.collection(n)[0], i = r.collection(i)[0]; + var l = n.id(), f = i.id(), h = {}, v = {}, d = {}, c = new Ra(function(me, ie) { + return v[me.id()] - v[ie.id()]; + }), y = new Jr(), p = {}, g = {}, m = function(ie, ge) { + c.push(ie), y.add(ge); + }, b, E, M = function() { + b = c.pop(), E = b.id(), y.delete(E); + }, L = function(ie) { + return y.has(ie); + }; + m(n, l), h[l] = 0, v[l] = s(n); + for (var w = 0; c.size() > 0; ) { + if (M(), w++, E === f) { + for (var k = [], D = i, F = f, G = g[F]; k.unshift(D), G != null && k.unshift(G), D = p[F], D != null; ) + F = D.id(), G = g[F]; + return { + found: !0, + distance: h[E], + path: this.spawn(k), + steps: w + }; + } + d[E] = !0; + for (var N = b._private.edges, X = 0; X < N.length; X++) { + var B = N[X]; + if (this.hasElementWithId(B.id()) && !(o && B.data("source") !== E)) { + var re = B.source(), K = B.target(), W = re.id() !== E ? re : K, ae = W.id(); + if (this.hasElementWithId(ae) && !d[ae]) { + var ue = h[E] + u(B); + if (!L(ae)) { + h[ae] = ue, v[ae] = ue + s(W), m(W, ae), p[ae] = b, g[ae] = B; + continue; + } + ue < h[ae] && (h[ae] = ue, v[ae] = ue + s(W), p[ae] = b, g[ae] = B); + } + } + } + } + return { + found: !1, + distance: void 0, + path: void 0, + steps: w + }; + } + }, sf = At({ + weight: function(e) { + return 1; + }, + directed: !1 + }), of = { + // Implemented from pseudocode from wikipedia + floydWarshall: function(e) { + for (var r = this.cy(), a = sf(e), n = a.weight, i = a.directed, s = n, o = this.byGroup(), u = o.nodes, l = o.edges, f = u.length, h = f * f, v = function(Ee) { + return u.indexOf(Ee); + }, d = function(Ee) { + return u[Ee]; + }, c = new Array(h), y = 0; y < h; y++) { + var p = y % f, g = (y - p) / f; + g === p ? c[y] = 0 : c[y] = 1 / 0; + } + for (var m = new Array(h), b = new Array(h), E = 0; E < l.length; E++) { + var M = l[E], L = M.source()[0], w = M.target()[0]; + if (L !== w) { + var k = v(L), D = v(w), F = k * f + D, G = s(M); + if (c[F] > G && (c[F] = G, m[F] = D, b[F] = M), !i) { + var N = D * f + k; + !i && c[N] > G && (c[N] = G, m[N] = k, b[N] = M); + } + } + } + for (var X = 0; X < f; X++) + for (var B = 0; B < f; B++) + for (var re = B * f + X, K = 0; K < f; K++) { + var W = B * f + K, ae = X * f + K; + c[re] + c[ae] < c[W] && (c[W] = c[re] + c[ae], m[W] = m[re]); + } + var ue = function(Ee) { + return (ee(Ee) ? r.filter(Ee) : Ee)[0]; + }, me = function(Ee) { + return v(ue(Ee)); + }, ie = { + distance: function(Ee, Ce) { + var we = me(Ee), De = me(Ce); + return c[we * f + De]; + }, + path: function(Ee, Ce) { + var we = me(Ee), De = me(Ce), se = d(we); + if (we === De) + return se.collection(); + if (m[we * f + De] == null) + return r.collection(); + var xe = r.collection(), Le = we, Se; + for (xe.merge(se); we !== De; ) + Le = we, we = m[we * f + De], Se = b[Le * f + we], xe.merge(Se), xe.merge(d(we)); + return xe; + } + }; + return ie; + } + // floydWarshall + }, lf = At({ + weight: function(e) { + return 1; + }, + directed: !1, + root: null + }), uf = { + // Implemented from pseudocode from wikipedia + bellmanFord: function(e) { + var r = this, a = lf(e), n = a.weight, i = a.directed, s = a.root, o = n, u = this, l = this.cy(), f = this.byGroup(), h = f.edges, v = f.nodes, d = v.length, c = new ur(), y = !1, p = []; + s = l.collection(s)[0], h.unmergeBy(function(ze) { + return ze.isLoop(); + }); + for (var g = h.length, m = function(Be) { + var $e = c.get(Be.id()); + return $e || ($e = {}, c.set(Be.id(), $e)), $e; + }, b = function(Be) { + return (ee(Be) ? l.$(Be) : Be)[0]; + }, E = function(Be) { + return m(b(Be)).dist; + }, M = function(Be) { + for (var $e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : s, rt = b(Be), je = [], We = rt; ; ) { + if (We == null) + return r.spawn(); + var et = m(We), he = et.edge, O = et.pred; + if (je.unshift(We[0]), We.same($e) && je.length > 0) + break; + he != null && je.unshift(he), We = O; + } + return u.spawn(je); + }, L = 0; L < d; L++) { + var w = v[L], k = m(w); + w.same(s) ? k.dist = 0 : k.dist = 1 / 0, k.pred = null, k.edge = null; + } + for (var D = !1, F = function(Be, $e, rt, je, We, et) { + var he = je.dist + et; + he < We.dist && !rt.same(je.edge) && (We.dist = he, We.pred = Be, We.edge = rt, D = !0); + }, G = 1; G < d; G++) { + D = !1; + for (var N = 0; N < g; N++) { + var X = h[N], B = X.source(), re = X.target(), K = o(X), W = m(B), ae = m(re); + F(B, re, X, W, ae, K), i || F(re, B, X, ae, W, K); + } + if (!D) + break; + } + if (D) + for (var ue = [], me = 0; me < g; me++) { + var ie = h[me], ge = ie.source(), Ee = ie.target(), Ce = o(ie), we = m(ge).dist, De = m(Ee).dist; + if (we + Ce < De || !i && De + Ce < we) + if (y || (vt("Graph contains a negative weight cycle for Bellman-Ford"), y = !0), e.findNegativeWeightCycles !== !1) { + var se = []; + we + Ce < De && se.push(ge), !i && De + Ce < we && se.push(Ee); + for (var xe = se.length, Le = 0; Le < xe; Le++) { + var Se = se[Le], Oe = [Se]; + Oe.push(m(Se).edge); + for (var Fe = m(Se).pred; Oe.indexOf(Fe) === -1; ) + Oe.push(Fe), Oe.push(m(Fe).edge), Fe = m(Fe).pred; + Oe = Oe.slice(Oe.indexOf(Fe)); + for (var Xe = Oe[0].id(), Ie = 0, Me = 2; Me < Oe.length; Me += 2) + Oe[Me].id() < Xe && (Xe = Oe[Me].id(), Ie = Me); + Oe = Oe.slice(Ie).concat(Oe.slice(0, Ie)), Oe.push(Oe[0]); + var Ue = Oe.map(function(ze) { + return ze.id(); + }).join(","); + ue.indexOf(Ue) === -1 && (p.push(u.spawn(Oe)), ue.push(Ue)); + } + } else + break; + } + return { + distanceTo: E, + pathTo: M, + hasNegativeWeightCycle: y, + negativeWeightCycles: p + }; + } + // bellmanFord + }, ff = Math.sqrt(2), hf = function(e, r, a) { + a.length === 0 && xt("Karger-Stein must be run on a connected (sub)graph"); + for (var n = a[e], i = n[1], s = n[2], o = r[i], u = r[s], l = a, f = l.length - 1; f >= 0; f--) { + var h = l[f], v = h[1], d = h[2]; + (r[v] === o && r[d] === u || r[v] === u && r[d] === o) && l.splice(f, 1); + } + for (var c = 0; c < l.length; c++) { + var y = l[c]; + y[1] === u ? (l[c] = y.slice(), l[c][1] = o) : y[2] === u && (l[c] = y.slice(), l[c][2] = o); + } + for (var p = 0; p < r.length; p++) + r[p] === u && (r[p] = o); + return l; + }, li = function(e, r, a, n) { + for (; a > n; ) { + var i = Math.floor(Math.random() * r.length); + r = hf(i, e, r), a--; + } + return r; + }, vf = { + // Computes the minimum cut of an undirected graph + // Returns the correct answer with high probability + kargerStein: function() { + var e = this, r = this.byGroup(), a = r.nodes, n = r.edges; + n.unmergeBy(function(ae) { + return ae.isLoop(); + }); + var i = a.length, s = n.length, o = Math.ceil(Math.pow(Math.log(i) / Math.LN2, 2)), u = Math.floor(i / ff); + if (i < 2) { + xt("At least 2 nodes are required for Karger-Stein algorithm"); + return; + } + for (var l = [], f = 0; f < s; f++) { + var h = n[f]; + l.push([f, a.indexOf(h.source()), a.indexOf(h.target())]); + } + for (var v = 1 / 0, d = [], c = new Array(i), y = new Array(i), p = new Array(i), g = function(ue, me) { + for (var ie = 0; ie < i; ie++) + me[ie] = ue[ie]; + }, m = 0; m <= o; m++) { + for (var b = 0; b < i; b++) + y[b] = b; + var E = li(y, l.slice(), i, u), M = E.slice(); + g(y, p); + var L = li(y, E, u, 2), w = li(p, M, u, 2); + L.length <= w.length && L.length < v ? (v = L.length, d = L, g(y, c)) : w.length <= L.length && w.length < v && (v = w.length, d = w, g(p, c)); + } + for (var k = this.spawn(d.map(function(ae) { + return n[ae[0]]; + })), D = this.spawn(), F = this.spawn(), G = c[0], N = 0; N < c.length; N++) { + var X = c[N], B = a[N]; + X === G ? D.merge(B) : F.merge(B); + } + var re = function(ue) { + var me = e.spawn(); + return ue.forEach(function(ie) { + me.merge(ie), ie.connectedEdges().forEach(function(ge) { + e.contains(ge) && !k.contains(ge) && me.merge(ge); + }); + }), me; + }, K = [re(D), re(F)], W = { + cut: k, + components: K, + // n.b. partitions are included to be compatible with the old api spec + // (could be removed in a future major version) + partition1: D, + partition2: F + }; + return W; + } + }, cf = function(e) { + return { + x: e.x, + y: e.y + }; + }, vn = function(e, r, a) { + return { + x: e.x * r + a.x, + y: e.y * r + a.y + }; + }, bs = function(e, r, a) { + return { + x: (e.x - a.x) / r, + y: (e.y - a.y) / r + }; + }, jr = function(e) { + return { + x: e[0], + y: e[1] + }; + }, df = function(e) { + for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, n = 1 / 0, i = r; i < a; i++) { + var s = e[i]; + isFinite(s) && (n = Math.min(s, n)); + } + return n; + }, gf = function(e) { + for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, n = -1 / 0, i = r; i < a; i++) { + var s = e[i]; + isFinite(s) && (n = Math.max(s, n)); + } + return n; + }, pf = function(e) { + for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, n = 0, i = 0, s = r; s < a; s++) { + var o = e[s]; + isFinite(o) && (n += o, i++); + } + return n / i; + }, yf = function(e) { + var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !0, i = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, s = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !0; + n ? e = e.slice(r, a) : (a < e.length && e.splice(a, e.length - a), r > 0 && e.splice(0, r)); + for (var o = 0, u = e.length - 1; u >= 0; u--) { + var l = e[u]; + s ? isFinite(l) || (e[u] = -1 / 0, o++) : e.splice(u, 1); + } + i && e.sort(function(v, d) { + return v - d; + }); + var f = e.length, h = Math.floor(f / 2); + return f % 2 !== 0 ? e[h + 1 + o] : (e[h - 1 + o] + e[h + o]) / 2; + }, mf = function(e) { + return Math.PI * e / 180; + }, cn = function(e, r) { + return Math.atan2(r, e) - Math.PI / 2; + }, ui = Math.log2 || function(t) { + return Math.log(t) / Math.log(2); + }, Es = function(e) { + return e > 0 ? 1 : e < 0 ? -1 : 0; + }, Br = function(e, r) { + return Math.sqrt(Fr(e, r)); + }, Fr = function(e, r) { + var a = r.x - e.x, n = r.y - e.y; + return a * a + n * n; + }, bf = function(e) { + for (var r = e.length, a = 0, n = 0; n < r; n++) + a += e[n]; + for (var i = 0; i < r; i++) + e[i] = e[i] / a; + return e; + }, Lt = function(e, r, a, n) { + return (1 - n) * (1 - n) * e + 2 * (1 - n) * n * r + n * n * a; + }, ea = function(e, r, a, n) { + return { + x: Lt(e.x, r.x, a.x, n), + y: Lt(e.y, r.y, a.y, n) + }; + }, Ef = function(e, r, a, n) { + var i = { + x: r.x - e.x, + y: r.y - e.y + }, s = Br(e, r), o = { + x: i.x / s, + y: i.y / s + }; + return a = a ?? 0, n = n ?? a * s, { + x: e.x + o.x * n, + y: e.y + o.y * n + }; + }, ka = function(e, r, a) { + return Math.max(e, Math.min(a, r)); + }, Yt = function(e) { + if (e == null) + return { + x1: 1 / 0, + y1: 1 / 0, + x2: -1 / 0, + y2: -1 / 0, + w: 0, + h: 0 + }; + if (e.x1 != null && e.y1 != null) { + if (e.x2 != null && e.y2 != null && e.x2 >= e.x1 && e.y2 >= e.y1) + return { + x1: e.x1, + y1: e.y1, + x2: e.x2, + y2: e.y2, + w: e.x2 - e.x1, + h: e.y2 - e.y1 + }; + if (e.w != null && e.h != null && e.w >= 0 && e.h >= 0) + return { + x1: e.x1, + y1: e.y1, + x2: e.x1 + e.w, + y2: e.y1 + e.h, + w: e.w, + h: e.h + }; + } + }, wf = function(e) { + return { + x1: e.x1, + x2: e.x2, + w: e.w, + y1: e.y1, + y2: e.y2, + h: e.h + }; + }, xf = function(e) { + e.x1 = 1 / 0, e.y1 = 1 / 0, e.x2 = -1 / 0, e.y2 = -1 / 0, e.w = 0, e.h = 0; + }, Tf = function(e, r, a) { + return { + x1: e.x1 + r, + x2: e.x2 + r, + y1: e.y1 + a, + y2: e.y2 + a, + w: e.w, + h: e.h + }; + }, ws = function(e, r) { + e.x1 = Math.min(e.x1, r.x1), e.x2 = Math.max(e.x2, r.x2), e.w = e.x2 - e.x1, e.y1 = Math.min(e.y1, r.y1), e.y2 = Math.max(e.y2, r.y2), e.h = e.y2 - e.y1; + }, Cf = function(e, r, a) { + e.x1 = Math.min(e.x1, r), e.x2 = Math.max(e.x2, r), e.w = e.x2 - e.x1, e.y1 = Math.min(e.y1, a), e.y2 = Math.max(e.y2, a), e.h = e.y2 - e.y1; + }, dn = function(e) { + var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + return e.x1 -= r, e.x2 += r, e.y1 -= r, e.y2 += r, e.w = e.x2 - e.x1, e.h = e.y2 - e.y1, e; + }, gn = function(e) { + var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [0], a, n, i, s; + if (r.length === 1) + a = n = i = s = r[0]; + else if (r.length === 2) + a = i = r[0], s = n = r[1]; + else if (r.length === 4) { + var o = x(r, 4); + a = o[0], n = o[1], i = o[2], s = o[3]; + } + return e.x1 -= s, e.x2 += n, e.y1 -= a, e.y2 += i, e.w = e.x2 - e.x1, e.h = e.y2 - e.y1, e; + }, xs = function(e, r) { + e.x1 = r.x1, e.y1 = r.y1, e.x2 = r.x2, e.y2 = r.y2, e.w = e.x2 - e.x1, e.h = e.y2 - e.y1; + }, fi = function(e, r) { + return !(e.x1 > r.x2 || r.x1 > e.x2 || e.x2 < r.x1 || r.x2 < e.x1 || e.y2 < r.y1 || r.y2 < e.y1 || e.y1 > r.y2 || r.y1 > e.y2); + }, ta = function(e, r, a) { + return e.x1 <= r && r <= e.x2 && e.y1 <= a && a <= e.y2; + }, Df = function(e, r) { + return ta(e, r.x, r.y); + }, Ts = function(e, r) { + return ta(e, r.x1, r.y1) && ta(e, r.x2, r.y2); + }, Cs = function(e, r, a, n, i, s, o) { + var u = Fa(i, s), l = i / 2, f = s / 2, h; + { + var v = a - l + u - o, d = n - f - o, c = a + l - u + o, y = d; + if (h = Cr(e, r, a, n, v, d, c, y, !1), h.length > 0) + return h; + } + { + var p = a + l + o, g = n - f + u - o, m = p, b = n + f - u + o; + if (h = Cr(e, r, a, n, p, g, m, b, !1), h.length > 0) + return h; + } + { + var E = a - l + u - o, M = n + f + o, L = a + l - u + o, w = M; + if (h = Cr(e, r, a, n, E, M, L, w, !1), h.length > 0) + return h; + } + { + var k = a - l - o, D = n - f + u - o, F = k, G = n + f - u + o; + if (h = Cr(e, r, a, n, k, D, F, G, !1), h.length > 0) + return h; + } + var N; + { + var X = a - l + u, B = n - f + u; + if (N = Pa(e, r, a, n, X, B, u + o), N.length > 0 && N[0] <= X && N[1] <= B) + return [N[0], N[1]]; + } + { + var re = a + l - u, K = n - f + u; + if (N = Pa(e, r, a, n, re, K, u + o), N.length > 0 && N[0] >= re && N[1] <= K) + return [N[0], N[1]]; + } + { + var W = a + l - u, ae = n + f - u; + if (N = Pa(e, r, a, n, W, ae, u + o), N.length > 0 && N[0] >= W && N[1] >= ae) + return [N[0], N[1]]; + } + { + var ue = a - l + u, me = n + f - u; + if (N = Pa(e, r, a, n, ue, me, u + o), N.length > 0 && N[0] <= ue && N[1] >= me) + return [N[0], N[1]]; + } + return []; + }, Sf = function(e, r, a, n, i, s, o) { + var u = o, l = Math.min(a, i), f = Math.max(a, i), h = Math.min(n, s), v = Math.max(n, s); + return l - u <= e && e <= f + u && h - u <= r && r <= v + u; + }, Lf = function(e, r, a, n, i, s, o, u, l) { + var f = { + x1: Math.min(a, o, i) - l, + x2: Math.max(a, o, i) + l, + y1: Math.min(n, u, s) - l, + y2: Math.max(n, u, s) + l + }; + return !(e < f.x1 || e > f.x2 || r < f.y1 || r > f.y2); + }, Af = function(e, r, a, n) { + a -= n; + var i = r * r - 4 * e * a; + if (i < 0) + return []; + var s = Math.sqrt(i), o = 2 * e, u = (-r + s) / o, l = (-r - s) / o; + return [u, l]; + }, Of = function(e, r, a, n, i) { + var s = 1e-5; + e === 0 && (e = s), r /= e, a /= e, n /= e; + var o, u, l, f, h, v, d, c; + if (u = (3 * a - r * r) / 9, l = -(27 * n) + r * (9 * a - 2 * (r * r)), l /= 54, o = u * u * u + l * l, i[1] = 0, d = r / 3, o > 0) { + h = l + Math.sqrt(o), h = h < 0 ? -Math.pow(-h, 1 / 3) : Math.pow(h, 1 / 3), v = l - Math.sqrt(o), v = v < 0 ? -Math.pow(-v, 1 / 3) : Math.pow(v, 1 / 3), i[0] = -d + h + v, d += (h + v) / 2, i[4] = i[2] = -d, d = Math.sqrt(3) * (-v + h) / 2, i[3] = d, i[5] = -d; + return; + } + if (i[5] = i[3] = 0, o === 0) { + c = l < 0 ? -Math.pow(-l, 1 / 3) : Math.pow(l, 1 / 3), i[0] = -d + 2 * c, i[4] = i[2] = -(c + d); + return; + } + u = -u, f = u * u * u, f = Math.acos(l / Math.sqrt(f)), c = 2 * Math.sqrt(u), i[0] = -d + c * Math.cos(f / 3), i[2] = -d + c * Math.cos((f + 2 * Math.PI) / 3), i[4] = -d + c * Math.cos((f + 4 * Math.PI) / 3); + }, Nf = function(e, r, a, n, i, s, o, u) { + var l = 1 * a * a - 4 * a * i + 2 * a * o + 4 * i * i - 4 * i * o + o * o + n * n - 4 * n * s + 2 * n * u + 4 * s * s - 4 * s * u + u * u, f = 1 * 9 * a * i - 3 * a * a - 3 * a * o - 6 * i * i + 3 * i * o + 9 * n * s - 3 * n * n - 3 * n * u - 6 * s * s + 3 * s * u, h = 1 * 3 * a * a - 6 * a * i + a * o - a * e + 2 * i * i + 2 * i * e - o * e + 3 * n * n - 6 * n * s + n * u - n * r + 2 * s * s + 2 * s * r - u * r, v = 1 * a * i - a * a + a * e - i * e + n * s - n * n + n * r - s * r, d = []; + Of(l, f, h, v, d); + for (var c = 1e-7, y = [], p = 0; p < 6; p += 2) + Math.abs(d[p + 1]) < c && d[p] >= 0 && d[p] <= 1 && y.push(d[p]); + y.push(1), y.push(0); + for (var g = -1, m, b, E, M = 0; M < y.length; M++) + m = Math.pow(1 - y[M], 2) * a + 2 * (1 - y[M]) * y[M] * i + y[M] * y[M] * o, b = Math.pow(1 - y[M], 2) * n + 2 * (1 - y[M]) * y[M] * s + y[M] * y[M] * u, E = Math.pow(m - e, 2) + Math.pow(b - r, 2), g >= 0 ? E < g && (g = E) : g = E; + return g; + }, If = function(e, r, a, n, i, s) { + var o = [e - a, r - n], u = [i - a, s - n], l = u[0] * u[0] + u[1] * u[1], f = o[0] * o[0] + o[1] * o[1], h = o[0] * u[0] + o[1] * u[1], v = h * h / l; + return h < 0 ? f : v > l ? (e - i) * (e - i) + (r - s) * (r - s) : f - v; + }, Ht = function(e, r, a) { + for (var n, i, s, o, u, l = 0, f = 0; f < a.length / 2; f++) + if (n = a[f * 2], i = a[f * 2 + 1], f + 1 < a.length / 2 ? (s = a[(f + 1) * 2], o = a[(f + 1) * 2 + 1]) : (s = a[(f + 1 - a.length / 2) * 2], o = a[(f + 1 - a.length / 2) * 2 + 1]), !(n == e && s == e)) + if (n >= e && e >= s || n <= e && e <= s) + u = (e - n) / (s - n) * (o - i) + i, u > r && l++; + else + continue; + return l % 2 !== 0; + }, pr = function(e, r, a, n, i, s, o, u, l) { + var f = new Array(a.length), h; + u[0] != null ? (h = Math.atan(u[1] / u[0]), u[0] < 0 ? h = h + Math.PI / 2 : h = -h - Math.PI / 2) : h = u; + for (var v = Math.cos(-h), d = Math.sin(-h), c = 0; c < f.length / 2; c++) + f[c * 2] = s / 2 * (a[c * 2] * v - a[c * 2 + 1] * d), f[c * 2 + 1] = o / 2 * (a[c * 2 + 1] * v + a[c * 2] * d), f[c * 2] += n, f[c * 2 + 1] += i; + var y; + if (l > 0) { + var p = yn(f, -l); + y = pn(p); + } else + y = f; + return Ht(e, r, y); + }, Mf = function(e, r, a, n, i, s, o) { + for (var u = new Array(a.length), l = s / 2, f = o / 2, h = ci(s, o), v = h * h, d = 0; d < a.length / 4; d++) { + var c = void 0, y = void 0; + d === 0 ? c = a.length - 2 : c = d * 4 - 2, y = d * 4 + 2; + var p = n + l * a[d * 4], g = i + f * a[d * 4 + 1], m = -a[c] * a[y] - a[c + 1] * a[y + 1], b = h / Math.tan(Math.acos(m) / 2), E = p - b * a[c], M = g - b * a[c + 1], L = p + b * a[y], w = g + b * a[y + 1]; + u[d * 4] = E, u[d * 4 + 1] = M, u[d * 4 + 2] = L, u[d * 4 + 3] = w; + var k = a[c + 1], D = -a[c], F = k * a[y] + D * a[y + 1]; + F < 0 && (k *= -1, D *= -1); + var G = E + k * h, N = M + D * h, X = Math.pow(G - e, 2) + Math.pow(N - r, 2); + if (X <= v) + return !0; + } + return Ht(e, r, u); + }, pn = function(e) { + for (var r = new Array(e.length / 2), a, n, i, s, o, u, l, f, h = 0; h < e.length / 4; h++) { + a = e[h * 4], n = e[h * 4 + 1], i = e[h * 4 + 2], s = e[h * 4 + 3], h < e.length / 4 - 1 ? (o = e[(h + 1) * 4], u = e[(h + 1) * 4 + 1], l = e[(h + 1) * 4 + 2], f = e[(h + 1) * 4 + 3]) : (o = e[0], u = e[1], l = e[2], f = e[3]); + var v = Cr(a, n, i, s, o, u, l, f, !0); + r[h * 2] = v[0], r[h * 2 + 1] = v[1]; + } + return r; + }, yn = function(e, r) { + for (var a = new Array(e.length * 2), n, i, s, o, u = 0; u < e.length / 2; u++) { + n = e[u * 2], i = e[u * 2 + 1], u < e.length / 2 - 1 ? (s = e[(u + 1) * 2], o = e[(u + 1) * 2 + 1]) : (s = e[0], o = e[1]); + var l = o - i, f = -(s - n), h = Math.sqrt(l * l + f * f), v = l / h, d = f / h; + a[u * 4] = n + v * r, a[u * 4 + 1] = i + d * r, a[u * 4 + 2] = s + v * r, a[u * 4 + 3] = o + d * r; + } + return a; + }, Rf = function(e, r, a, n, i, s) { + var o = a - e, u = n - r; + o /= i, u /= s; + var l = Math.sqrt(o * o + u * u), f = l - 1; + if (f < 0) + return []; + var h = f / l; + return [(a - e) * h + e, (n - r) * h + r]; + }, Gr = function(e, r, a, n, i, s, o) { + return e -= i, r -= s, e /= a / 2 + o, r /= n / 2 + o, e * e + r * r <= 1; + }, Pa = function(e, r, a, n, i, s, o) { + var u = [a - e, n - r], l = [e - i, r - s], f = u[0] * u[0] + u[1] * u[1], h = 2 * (l[0] * u[0] + l[1] * u[1]), v = l[0] * l[0] + l[1] * l[1] - o * o, d = h * h - 4 * f * v; + if (d < 0) + return []; + var c = (-h + Math.sqrt(d)) / (2 * f), y = (-h - Math.sqrt(d)) / (2 * f), p = Math.min(c, y), g = Math.max(c, y), m = []; + if (p >= 0 && p <= 1 && m.push(p), g >= 0 && g <= 1 && m.push(g), m.length === 0) + return []; + var b = m[0] * u[0] + e, E = m[0] * u[1] + r; + if (m.length > 1) { + if (m[0] == m[1]) + return [b, E]; + var M = m[1] * u[0] + e, L = m[1] * u[1] + r; + return [b, E, M, L]; + } else + return [b, E]; + }, hi = function(e, r, a) { + return r <= e && e <= a || a <= e && e <= r ? e : e <= r && r <= a || a <= r && r <= e ? r : a; + }, Cr = function(e, r, a, n, i, s, o, u, l) { + var f = e - i, h = a - e, v = o - i, d = r - s, c = n - r, y = u - s, p = v * d - y * f, g = h * d - c * f, m = y * h - v * c; + if (m !== 0) { + var b = p / m, E = g / m, M = 1e-3, L = 0 - M, w = 1 + M; + return L <= b && b <= w && L <= E && E <= w ? [e + b * h, r + b * c] : l ? [e + b * h, r + b * c] : []; + } else + return p === 0 || g === 0 ? hi(e, a, o) === o ? [o, u] : hi(e, a, i) === i ? [i, s] : hi(i, o, a) === a ? [a, n] : [] : []; + }, Ba = function(e, r, a, n, i, s, o, u) { + var l = [], f, h = new Array(a.length), v = !0; + s == null && (v = !1); + var d; + if (v) { + for (var c = 0; c < h.length / 2; c++) + h[c * 2] = a[c * 2] * s + n, h[c * 2 + 1] = a[c * 2 + 1] * o + i; + if (u > 0) { + var y = yn(h, -u); + d = pn(y); + } else + d = h; + } else + d = a; + for (var p, g, m, b, E = 0; E < d.length / 2; E++) + p = d[E * 2], g = d[E * 2 + 1], E < d.length / 2 - 1 ? (m = d[(E + 1) * 2], b = d[(E + 1) * 2 + 1]) : (m = d[0], b = d[1]), f = Cr(e, r, n, i, p, g, m, b), f.length !== 0 && l.push(f[0], f[1]); + return l; + }, kf = function(e, r, a, n, i, s, o, u) { + for (var l = [], f, h = new Array(a.length), v = s / 2, d = o / 2, c = ci(s, o), y = 0; y < a.length / 4; y++) { + var p = void 0, g = void 0; + y === 0 ? p = a.length - 2 : p = y * 4 - 2, g = y * 4 + 2; + var m = n + v * a[y * 4], b = i + d * a[y * 4 + 1], E = -a[p] * a[g] - a[p + 1] * a[g + 1], M = c / Math.tan(Math.acos(E) / 2), L = m - M * a[p], w = b - M * a[p + 1], k = m + M * a[g], D = b + M * a[g + 1]; + y === 0 ? (h[a.length - 2] = L, h[a.length - 1] = w) : (h[y * 4 - 2] = L, h[y * 4 - 1] = w), h[y * 4] = k, h[y * 4 + 1] = D; + var F = a[p + 1], G = -a[p], N = F * a[g] + G * a[g + 1]; + N < 0 && (F *= -1, G *= -1); + var X = L + F * c, B = w + G * c; + f = Pa(e, r, n, i, X, B, c), f.length !== 0 && l.push(f[0], f[1]); + } + for (var re = 0; re < h.length / 4; re++) + f = Cr(e, r, n, i, h[re * 4], h[re * 4 + 1], h[re * 4 + 2], h[re * 4 + 3], !1), f.length !== 0 && l.push(f[0], f[1]); + if (l.length > 2) { + for (var K = [l[0], l[1]], W = Math.pow(K[0] - e, 2) + Math.pow(K[1] - r, 2), ae = 1; ae < l.length / 2; ae++) { + var ue = Math.pow(l[ae * 2] - e, 2) + Math.pow(l[ae * 2 + 1] - r, 2); + ue <= W && (K[0] = l[ae * 2], K[1] = l[ae * 2 + 1], W = ue); + } + return K; + } + return l; + }, mn = function(e, r, a) { + var n = [e[0] - r[0], e[1] - r[1]], i = Math.sqrt(n[0] * n[0] + n[1] * n[1]), s = (i - a) / i; + return s < 0 && (s = 1e-5), [r[0] + s * n[0], r[1] + s * n[1]]; + }, $t = function(e, r) { + var a = vi(e, r); + return a = Ds(a), a; + }, Ds = function(e) { + for (var r, a, n = e.length / 2, i = 1 / 0, s = 1 / 0, o = -1 / 0, u = -1 / 0, l = 0; l < n; l++) + r = e[2 * l], a = e[2 * l + 1], i = Math.min(i, r), o = Math.max(o, r), s = Math.min(s, a), u = Math.max(u, a); + for (var f = 2 / (o - i), h = 2 / (u - s), v = 0; v < n; v++) + r = e[2 * v] = e[2 * v] * f, a = e[2 * v + 1] = e[2 * v + 1] * h, i = Math.min(i, r), o = Math.max(o, r), s = Math.min(s, a), u = Math.max(u, a); + if (s < -1) + for (var d = 0; d < n; d++) + a = e[2 * d + 1] = e[2 * d + 1] + (-1 - s); + return e; + }, vi = function(e, r) { + var a = 1 / e * 2 * Math.PI, n = e % 2 === 0 ? Math.PI / 2 + a / 2 : Math.PI / 2; + n += r; + for (var i = new Array(e * 2), s, o = 0; o < e; o++) + s = o * a + n, i[2 * o] = Math.cos(s), i[2 * o + 1] = Math.sin(-s); + return i; + }, Fa = function(e, r) { + return Math.min(e / 4, r / 4, 8); + }, ci = function(e, r) { + return Math.min(e / 10, r / 10, 8); + }, Ss = function() { + return 8; + }, Pf = function(e, r, a) { + return [e - 2 * r + a, 2 * (r - e), e]; + }, di = function(e, r) { + return { + heightOffset: Math.min(15, 0.05 * r), + widthOffset: Math.min(100, 0.25 * e), + ctrlPtOffsetPct: 0.05 + }; + }, Bf = At({ + dampingFactor: 0.8, + precision: 1e-6, + iterations: 200, + weight: function(e) { + return 1; + } + }), Ff = { + pageRank: function(e) { + for (var r = Bf(e), a = r.dampingFactor, n = r.precision, i = r.iterations, s = r.weight, o = this._private.cy, u = this.byGroup(), l = u.nodes, f = u.edges, h = l.length, v = h * h, d = f.length, c = new Array(v), y = new Array(h), p = (1 - a) / h, g = 0; g < h; g++) { + for (var m = 0; m < h; m++) { + var b = g * h + m; + c[b] = 0; + } + y[g] = 0; + } + for (var E = 0; E < d; E++) { + var M = f[E], L = M.data("source"), w = M.data("target"); + if (L !== w) { + var k = l.indexOfId(L), D = l.indexOfId(w), F = s(M), G = D * h + k; + c[G] += F, y[k] += F; + } + } + for (var N = 1 / h + p, X = 0; X < h; X++) + if (y[X] === 0) + for (var B = 0; B < h; B++) { + var re = B * h + X; + c[re] = N; + } + else + for (var K = 0; K < h; K++) { + var W = K * h + X; + c[W] = c[W] / y[X] + p; + } + for (var ae = new Array(h), ue = new Array(h), me, ie = 0; ie < h; ie++) + ae[ie] = 1; + for (var ge = 0; ge < i; ge++) { + for (var Ee = 0; Ee < h; Ee++) + ue[Ee] = 0; + for (var Ce = 0; Ce < h; Ce++) + for (var we = 0; we < h; we++) { + var De = Ce * h + we; + ue[Ce] += c[De] * ae[we]; + } + bf(ue), me = ae, ae = ue, ue = me; + for (var se = 0, xe = 0; xe < h; xe++) { + var Le = me[xe] - ae[xe]; + se += Le * Le; + } + if (se < n) + break; + } + var Se = { + rank: function(Fe) { + return Fe = o.collection(Fe)[0], ae[l.indexOf(Fe)]; + } + }; + return Se; + } + // pageRank + }, Ls = At({ + root: null, + weight: function(e) { + return 1; + }, + directed: !1, + alpha: 0 + }), ra = { + degreeCentralityNormalized: function(e) { + e = Ls(e); + var r = this.cy(), a = this.nodes(), n = a.length; + if (e.directed) { + for (var f = {}, h = {}, v = 0, d = 0, c = 0; c < n; c++) { + var y = a[c], p = y.id(); + e.root = y; + var g = this.degreeCentrality(e); + v < g.indegree && (v = g.indegree), d < g.outdegree && (d = g.outdegree), f[p] = g.indegree, h[p] = g.outdegree; + } + return { + indegree: function(b) { + return v == 0 ? 0 : (ee(b) && (b = r.filter(b)), f[b.id()] / v); + }, + outdegree: function(b) { + return d === 0 ? 0 : (ee(b) && (b = r.filter(b)), h[b.id()] / d); + } + }; + } else { + for (var i = {}, s = 0, o = 0; o < n; o++) { + var u = a[o]; + e.root = u; + var l = this.degreeCentrality(e); + s < l.degree && (s = l.degree), i[u.id()] = l.degree; + } + return { + degree: function(b) { + return s === 0 ? 0 : (ee(b) && (b = r.filter(b)), i[b.id()] / s); + } + }; + } + }, + // degreeCentralityNormalized + // Implemented from the algorithm in Opsahl's paper + // "Node centrality in weighted networks: Generalizing degree and shortest paths" + // check the heading 2 "Degree" + degreeCentrality: function(e) { + e = Ls(e); + var r = this.cy(), a = this, n = e, i = n.root, s = n.weight, o = n.directed, u = n.alpha; + if (i = r.collection(i)[0], o) { + for (var d = i.connectedEdges(), c = d.filter(function(L) { + return L.target().same(i) && a.has(L); + }), y = d.filter(function(L) { + return L.source().same(i) && a.has(L); + }), p = c.length, g = y.length, m = 0, b = 0, E = 0; E < c.length; E++) + m += s(c[E]); + for (var M = 0; M < y.length; M++) + b += s(y[M]); + return { + indegree: Math.pow(p, 1 - u) * Math.pow(m, u), + outdegree: Math.pow(g, 1 - u) * Math.pow(b, u) + }; + } else { + for (var l = i.connectedEdges().intersection(a), f = l.length, h = 0, v = 0; v < l.length; v++) + h += s(l[v]); + return { + degree: Math.pow(f, 1 - u) * Math.pow(h, u) + }; + } + } + // degreeCentrality + }; + ra.dc = ra.degreeCentrality, ra.dcn = ra.degreeCentralityNormalised = ra.degreeCentralityNormalized; + var As = At({ + harmonic: !0, + weight: function() { + return 1; + }, + directed: !1, + root: null + }), aa = { + closenessCentralityNormalized: function(e) { + for (var r = As(e), a = r.harmonic, n = r.weight, i = r.directed, s = this.cy(), o = {}, u = 0, l = this.nodes(), f = this.floydWarshall({ + weight: n, + directed: i + }), h = 0; h < l.length; h++) { + for (var v = 0, d = l[h], c = 0; c < l.length; c++) + if (h !== c) { + var y = f.distance(d, l[c]); + a ? v += 1 / y : v += y; + } + a || (v = 1 / v), u < v && (u = v), o[d.id()] = v; + } + return { + closeness: function(g) { + return u == 0 ? 0 : (ee(g) ? g = s.filter(g)[0].id() : g = g.id(), o[g] / u); + } + }; + }, + // Implemented from pseudocode from wikipedia + closenessCentrality: function(e) { + var r = As(e), a = r.root, n = r.weight, i = r.directed, s = r.harmonic; + a = this.filter(a)[0]; + for (var o = this.dijkstra({ + root: a, + weight: n, + directed: i + }), u = 0, l = this.nodes(), f = 0; f < l.length; f++) { + var h = l[f]; + if (!h.same(a)) { + var v = o.distanceTo(h); + s ? u += 1 / v : u += v; + } + } + return s ? u : 1 / u; + } + // closenessCentrality + }; + aa.cc = aa.closenessCentrality, aa.ccn = aa.closenessCentralityNormalised = aa.closenessCentralityNormalized; + var Gf = At({ + weight: null, + directed: !1 + }), gi = { + // Implemented from the algorithm in the paper "On Variants of Shortest-Path Betweenness Centrality and their Generic Computation" by Ulrik Brandes + betweennessCentrality: function(e) { + for (var r = Gf(e), a = r.directed, n = r.weight, i = n != null, s = this.cy(), o = this.nodes(), u = {}, l = {}, f = 0, h = { + set: function(b, E) { + l[b] = E, E > f && (f = E); + }, + get: function(b) { + return l[b]; + } + }, v = 0; v < o.length; v++) { + var d = o[v], c = d.id(); + a ? u[c] = d.outgoers().nodes() : u[c] = d.openNeighborhood().nodes(), h.set(c, 0); + } + for (var y = function(b) { + for (var E = o[b].id(), M = [], L = {}, w = {}, k = {}, D = new Ra(function(we, De) { + return k[we] - k[De]; + }), F = 0; F < o.length; F++) { + var G = o[F].id(); + L[G] = [], w[G] = 0, k[G] = 1 / 0; + } + for (w[E] = 1, k[E] = 0, D.push(E); !D.empty(); ) { + var N = D.pop(); + if (M.push(N), i) + for (var X = 0; X < u[N].length; X++) { + var B = u[N][X], re = s.getElementById(N), K = void 0; + re.edgesTo(B).length > 0 ? K = re.edgesTo(B)[0] : K = B.edgesTo(re)[0]; + var W = n(K); + B = B.id(), k[B] > k[N] + W && (k[B] = k[N] + W, D.nodes.indexOf(B) < 0 ? D.push(B) : D.updateItem(B), w[B] = 0, L[B] = []), k[B] == k[N] + W && (w[B] = w[B] + w[N], L[B].push(N)); + } + else + for (var ae = 0; ae < u[N].length; ae++) { + var ue = u[N][ae].id(); + k[ue] == 1 / 0 && (D.push(ue), k[ue] = k[N] + 1), k[ue] == k[N] + 1 && (w[ue] = w[ue] + w[N], L[ue].push(N)); + } + } + for (var me = {}, ie = 0; ie < o.length; ie++) + me[o[ie].id()] = 0; + for (; M.length > 0; ) { + for (var ge = M.pop(), Ee = 0; Ee < L[ge].length; Ee++) { + var Ce = L[ge][Ee]; + me[Ce] = me[Ce] + w[Ce] / w[ge] * (1 + me[ge]); + } + ge != o[b].id() && h.set(ge, h.get(ge) + me[ge]); + } + }, p = 0; p < o.length; p++) + y(p); + var g = { + betweenness: function(b) { + var E = s.collection(b).id(); + return h.get(E); + }, + betweennessNormalized: function(b) { + if (f == 0) + return 0; + var E = s.collection(b).id(); + return h.get(E) / f; + } + }; + return g.betweennessNormalised = g.betweennessNormalized, g; + } + // betweennessCentrality + }; + gi.bc = gi.betweennessCentrality; + var zf = At({ + expandFactor: 2, + // affects time of computation and cluster granularity to some extent: M * M + inflateFactor: 2, + // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j) + multFactor: 1, + // optional self loops for each node. Use a neutral value to improve cluster computations. + maxIterations: 20, + // maximum number of iterations of the MCL algorithm in a single run + attributes: [ + // attributes/features used to group nodes, ie. similarity values between nodes + function(t) { + return 1; + } + ] + }), Vf = function(e) { + return zf(e); + }, Uf = function(e, r) { + for (var a = 0, n = 0; n < r.length; n++) + a += r[n](e); + return a; + }, $f = function(e, r, a) { + for (var n = 0; n < r; n++) + e[n * r + n] = a; + }, Os = function(e, r) { + for (var a, n = 0; n < r; n++) { + a = 0; + for (var i = 0; i < r; i++) + a += e[i * r + n]; + for (var s = 0; s < r; s++) + e[s * r + n] = e[s * r + n] / a; + } + }, _f = function(e, r, a) { + for (var n = new Array(a * a), i = 0; i < a; i++) { + for (var s = 0; s < a; s++) + n[i * a + s] = 0; + for (var o = 0; o < a; o++) + for (var u = 0; u < a; u++) + n[i * a + u] += e[i * a + o] * r[o * a + u]; + } + return n; + }, Yf = function(e, r, a) { + for (var n = e.slice(0), i = 1; i < a; i++) + e = _f(e, n, r); + return e; + }, Hf = function(e, r, a) { + for (var n = new Array(r * r), i = 0; i < r * r; i++) + n[i] = Math.pow(e[i], a); + return Os(n, r), n; + }, Xf = function(e, r, a, n) { + for (var i = 0; i < a; i++) { + var s = Math.round(e[i] * Math.pow(10, n)) / Math.pow(10, n), o = Math.round(r[i] * Math.pow(10, n)) / Math.pow(10, n); + if (s !== o) + return !1; + } + return !0; + }, Wf = function(e, r, a, n) { + for (var i = [], s = 0; s < r; s++) { + for (var o = [], u = 0; u < r; u++) + Math.round(e[s * r + u] * 1e3) / 1e3 > 0 && o.push(a[u]); + o.length !== 0 && i.push(n.collection(o)); + } + return i; + }, qf = function(e, r) { + for (var a = 0; a < e.length; a++) + if (!r[a] || e[a].id() !== r[a].id()) + return !1; + return !0; + }, Kf = function(e) { + for (var r = 0; r < e.length; r++) + for (var a = 0; a < e.length; a++) + r != a && qf(e[r], e[a]) && e.splice(a, 1); + return e; + }, Ns = function(e) { + for (var r = this.nodes(), a = this.edges(), n = this.cy(), i = Vf(e), s = {}, o = 0; o < r.length; o++) + s[r[o].id()] = o; + for (var u = r.length, l = u * u, f = new Array(l), h, v = 0; v < l; v++) + f[v] = 0; + for (var d = 0; d < a.length; d++) { + var c = a[d], y = s[c.source().id()], p = s[c.target().id()], g = Uf(c, i.attributes); + f[y * u + p] += g, f[p * u + y] += g; + } + $f(f, u, i.multFactor), Os(f, u); + for (var m = !0, b = 0; m && b < i.maxIterations; ) + m = !1, h = Yf(f, u, i.expandFactor), f = Hf(h, u, i.inflateFactor), Xf(f, h, l, 4) || (m = !0), b++; + var E = Wf(f, u, r, n); + return E = Kf(E), E; + }, Zf = { + markovClustering: Ns, + mcl: Ns + }, Qf = function(e) { + return e; + }, Is = function(e, r) { + return Math.abs(r - e); + }, Ms = function(e, r, a) { + return e + Is(r, a); + }, Rs = function(e, r, a) { + return e + Math.pow(a - r, 2); + }, Jf = function(e) { + return Math.sqrt(e); + }, jf = function(e, r, a) { + return Math.max(e, Is(r, a)); + }, Ga = function(e, r, a, n, i) { + for (var s = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : Qf, o = n, u, l, f = 0; f < e; f++) + u = r(f), l = a(f), o = i(o, u, l); + return s(o); + }, na = { + euclidean: function(e, r, a) { + return e >= 2 ? Ga(e, r, a, 0, Rs, Jf) : Ga(e, r, a, 0, Ms); + }, + squaredEuclidean: function(e, r, a) { + return Ga(e, r, a, 0, Rs); + }, + manhattan: function(e, r, a) { + return Ga(e, r, a, 0, Ms); + }, + max: function(e, r, a) { + return Ga(e, r, a, -1 / 0, jf); + } + }; + na["squared-euclidean"] = na.squaredEuclidean, na.squaredeuclidean = na.squaredEuclidean; + function bn(t, e, r, a, n, i) { + var s; + return H(t) ? s = t : s = na[t] || na.euclidean, e === 0 && H(t) ? s(n, i) : s(e, r, a, n, i); + } + var eh = At({ + k: 2, + m: 2, + sensitivityThreshold: 1e-4, + distance: "euclidean", + maxIterations: 10, + attributes: [], + testMode: !1, + testCentroids: null + }), pi = function(e) { + return eh(e); + }, En = function(e, r, a, n, i) { + var s = i !== "kMedoids", o = s ? function(h) { + return a[h]; + } : function(h) { + return n[h](a); + }, u = function(v) { + return n[v](r); + }, l = a, f = r; + return bn(e, n.length, o, u, l, f); + }, yi = function(e, r, a) { + for (var n = a.length, i = new Array(n), s = new Array(n), o = new Array(r), u = null, l = 0; l < n; l++) + i[l] = e.min(a[l]).value, s[l] = e.max(a[l]).value; + for (var f = 0; f < r; f++) { + u = []; + for (var h = 0; h < n; h++) + u[h] = Math.random() * (s[h] - i[h]) + i[h]; + o[f] = u; + } + return o; + }, ks = function(e, r, a, n, i) { + for (var s = 1 / 0, o = 0, u = 0; u < r.length; u++) { + var l = En(a, e, r[u], n, i); + l < s && (s = l, o = u); + } + return o; + }, Ps = function(e, r, a) { + for (var n = [], i = null, s = 0; s < r.length; s++) + i = r[s], a[i.id()] === e && n.push(i); + return n; + }, th = function(e, r, a) { + return Math.abs(r - e) <= a; + }, rh = function(e, r, a) { + for (var n = 0; n < e.length; n++) + for (var i = 0; i < e[n].length; i++) { + var s = Math.abs(e[n][i] - r[n][i]); + if (s > a) + return !1; + } + return !0; + }, ah = function(e, r, a) { + for (var n = 0; n < a; n++) + if (e === r[n]) + return !0; + return !1; + }, Bs = function(e, r) { + var a = new Array(r); + if (e.length < 50) + for (var n = 0; n < r; n++) { + for (var i = e[Math.floor(Math.random() * e.length)]; ah(i, a, n); ) + i = e[Math.floor(Math.random() * e.length)]; + a[n] = i; + } + else + for (var s = 0; s < r; s++) + a[s] = e[Math.floor(Math.random() * e.length)]; + return a; + }, Fs = function(e, r, a) { + for (var n = 0, i = 0; i < r.length; i++) + n += En("manhattan", r[i], e, a, "kMedoids"); + return n; + }, nh = function(e) { + var r = this.cy(), a = this.nodes(), n = null, i = pi(e), s = new Array(i.k), o = {}, u; + i.testMode ? typeof i.testCentroids == "number" ? (i.testCentroids, u = yi(a, i.k, i.attributes)) : _(i.testCentroids) === "object" ? u = i.testCentroids : u = yi(a, i.k, i.attributes) : u = yi(a, i.k, i.attributes); + for (var l = !0, f = 0; l && f < i.maxIterations; ) { + for (var h = 0; h < a.length; h++) + n = a[h], o[n.id()] = ks(n, u, i.distance, i.attributes, "kMeans"); + l = !1; + for (var v = 0; v < i.k; v++) { + var d = Ps(v, a, o); + if (d.length !== 0) { + for (var c = i.attributes.length, y = u[v], p = new Array(c), g = new Array(c), m = 0; m < c; m++) { + g[m] = 0; + for (var b = 0; b < d.length; b++) + n = d[b], g[m] += i.attributes[m](n); + p[m] = g[m] / d.length, th(p[m], y[m], i.sensitivityThreshold) || (l = !0); + } + u[v] = p, s[v] = r.collection(d); + } + } + f++; + } + return s; + }, ih = function(e) { + var r = this.cy(), a = this.nodes(), n = null, i = pi(e), s = new Array(i.k), o, u = {}, l, f = new Array(i.k); + i.testMode ? typeof i.testCentroids == "number" || (_(i.testCentroids) === "object" ? o = i.testCentroids : o = Bs(a, i.k)) : o = Bs(a, i.k); + for (var h = !0, v = 0; h && v < i.maxIterations; ) { + for (var d = 0; d < a.length; d++) + n = a[d], u[n.id()] = ks(n, o, i.distance, i.attributes, "kMedoids"); + h = !1; + for (var c = 0; c < o.length; c++) { + var y = Ps(c, a, u); + if (y.length !== 0) { + f[c] = Fs(o[c], y, i.attributes); + for (var p = 0; p < y.length; p++) + l = Fs(y[p], y, i.attributes), l < f[c] && (f[c] = l, o[c] = y[p], h = !0); + s[c] = r.collection(y); + } + } + v++; + } + return s; + }, sh = function(e, r, a, n, i) { + for (var s, o, u = 0; u < r.length; u++) + for (var l = 0; l < e.length; l++) + n[u][l] = Math.pow(a[u][l], i.m); + for (var f = 0; f < e.length; f++) + for (var h = 0; h < i.attributes.length; h++) { + s = 0, o = 0; + for (var v = 0; v < r.length; v++) + s += n[v][f] * i.attributes[h](r[v]), o += n[v][f]; + e[f][h] = s / o; + } + }, oh = function(e, r, a, n, i) { + for (var s = 0; s < e.length; s++) + r[s] = e[s].slice(); + for (var o, u, l, f = 2 / (i.m - 1), h = 0; h < a.length; h++) + for (var v = 0; v < n.length; v++) { + o = 0; + for (var d = 0; d < a.length; d++) + u = En(i.distance, n[v], a[h], i.attributes, "cmeans"), l = En(i.distance, n[v], a[d], i.attributes, "cmeans"), o += Math.pow(u / l, f); + e[v][h] = 1 / o; + } + }, lh = function(e, r, a, n) { + for (var i = new Array(a.k), s = 0; s < i.length; s++) + i[s] = []; + for (var o, u, l = 0; l < r.length; l++) { + o = -1 / 0, u = -1; + for (var f = 0; f < r[0].length; f++) + r[l][f] > o && (o = r[l][f], u = f); + i[u].push(e[l]); + } + for (var h = 0; h < i.length; h++) + i[h] = n.collection(i[h]); + return i; + }, Gs = function(e) { + var r = this.cy(), a = this.nodes(), n = pi(e), i, s, o, u, l; + u = new Array(a.length); + for (var f = 0; f < a.length; f++) + u[f] = new Array(n.k); + o = new Array(a.length); + for (var h = 0; h < a.length; h++) + o[h] = new Array(n.k); + for (var v = 0; v < a.length; v++) { + for (var d = 0, c = 0; c < n.k; c++) + o[v][c] = Math.random(), d += o[v][c]; + for (var y = 0; y < n.k; y++) + o[v][y] = o[v][y] / d; + } + s = new Array(n.k); + for (var p = 0; p < n.k; p++) + s[p] = new Array(n.attributes.length); + l = new Array(a.length); + for (var g = 0; g < a.length; g++) + l[g] = new Array(n.k); + for (var m = !0, b = 0; m && b < n.maxIterations; ) + m = !1, sh(s, a, o, l, n), oh(o, u, s, a, n), rh(o, u, n.sensitivityThreshold) || (m = !0), b++; + return i = lh(a, o, n, r), { + clusters: i, + degreeOfMembership: o + }; + }, uh = { + kMeans: nh, + kMedoids: ih, + fuzzyCMeans: Gs, + fcm: Gs + }, fh = At({ + distance: "euclidean", + // distance metric to compare nodes + linkage: "min", + // linkage criterion : how to determine the distance between clusters of nodes + mode: "threshold", + // mode:'threshold' => clusters must be threshold distance apart + threshold: 1 / 0, + // the distance threshold + // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters + addDendrogram: !1, + // whether to add the dendrogram to the graph for viz + dendrogramDepth: 0, + // depth at which dendrogram branches are merged into the returned clusters + attributes: [] + // array of attr functions + }), hh = { + single: "min", + complete: "max" + }, vh = function(e) { + var r = fh(e), a = hh[r.linkage]; + return a != null && (r.linkage = a), r; + }, zs = function(e, r, a, n, i) { + for (var s = 0, o = 1 / 0, u, l = i.attributes, f = function(D, F) { + return bn(i.distance, l.length, function(G) { + return l[G](D); + }, function(G) { + return l[G](F); + }, D, F); + }, h = 0; h < e.length; h++) { + var v = e[h].key, d = a[v][n[v]]; + d < o && (s = v, o = d); + } + if (i.mode === "threshold" && o >= i.threshold || i.mode === "dendrogram" && e.length === 1) + return !1; + var c = r[s], y = r[n[s]], p; + i.mode === "dendrogram" ? p = { + left: c, + right: y, + key: c.key + } : p = { + value: c.value.concat(y.value), + key: c.key + }, e[c.index] = p, e.splice(y.index, 1), r[c.key] = p; + for (var g = 0; g < e.length; g++) { + var m = e[g]; + c.key === m.key ? u = 1 / 0 : i.linkage === "min" ? (u = a[c.key][m.key], a[c.key][m.key] > a[y.key][m.key] && (u = a[y.key][m.key])) : i.linkage === "max" ? (u = a[c.key][m.key], a[c.key][m.key] < a[y.key][m.key] && (u = a[y.key][m.key])) : i.linkage === "mean" ? u = (a[c.key][m.key] * c.size + a[y.key][m.key] * y.size) / (c.size + y.size) : i.mode === "dendrogram" ? u = f(m.value, c.value) : u = f(m.value[0], c.value[0]), a[c.key][m.key] = a[m.key][c.key] = u; + } + for (var b = 0; b < e.length; b++) { + var E = e[b].key; + if (n[E] === c.key || n[E] === y.key) { + for (var M = E, L = 0; L < e.length; L++) { + var w = e[L].key; + a[E][w] < a[E][M] && (M = w); + } + n[E] = M; + } + e[b].index = b; + } + return c.key = y.key = c.index = y.index = null, !0; + }, wn = function t(e, r, a) { + e && (e.value ? r.push(e.value) : (e.left && t(e.left, r), e.right && t(e.right, r))); + }, ch = function t(e, r) { + if (!e) + return ""; + if (e.left && e.right) { + var a = t(e.left, r), n = t(e.right, r), i = r.add({ + group: "nodes", + data: { + id: a + "," + n + } + }); + return r.add({ + group: "edges", + data: { + source: a, + target: i.id() + } + }), r.add({ + group: "edges", + data: { + source: n, + target: i.id() + } + }), i.id(); + } else if (e.value) + return e.value.id(); + }, dh = function t(e, r, a) { + if (!e) + return []; + var n = [], i = [], s = []; + return r === 0 ? (e.left && wn(e.left, n), e.right && wn(e.right, i), s = n.concat(i), [a.collection(s)]) : r === 1 ? e.value ? [a.collection(e.value)] : (e.left && wn(e.left, n), e.right && wn(e.right, i), [a.collection(n), a.collection(i)]) : e.value ? [a.collection(e.value)] : (e.left && (n = t(e.left, r - 1, a)), e.right && (i = t(e.right, r - 1, a)), n.concat(i)); + }, Vs = function(e) { + for (var r = this.cy(), a = this.nodes(), n = vh(e), i = n.attributes, s = function(b, E) { + return bn(n.distance, i.length, function(M) { + return i[M](b); + }, function(M) { + return i[M](E); + }, b, E); + }, o = [], u = [], l = [], f = [], h = 0; h < a.length; h++) { + var v = { + value: n.mode === "dendrogram" ? a[h] : [a[h]], + key: h, + index: h + }; + o[h] = v, f[h] = v, u[h] = [], l[h] = 0; + } + for (var d = 0; d < o.length; d++) + for (var c = 0; c <= d; c++) { + var y = void 0; + n.mode === "dendrogram" ? y = d === c ? 1 / 0 : s(o[d].value, o[c].value) : y = d === c ? 1 / 0 : s(o[d].value[0], o[c].value[0]), u[d][c] = y, u[c][d] = y, y < u[d][l[d]] && (l[d] = c); + } + for (var p = zs(o, f, u, l, n); p; ) + p = zs(o, f, u, l, n); + var g; + return n.mode === "dendrogram" ? (g = dh(o[0], n.dendrogramDepth, r), n.addDendrogram && ch(o[0], r)) : (g = new Array(o.length), o.forEach(function(m, b) { + m.key = m.index = null, g[b] = r.collection(m.value); + })), g; + }, gh = { + hierarchicalClustering: Vs, + hca: Vs + }, ph = At({ + distance: "euclidean", + // distance metric to compare attributes between two nodes + preference: "median", + // suitability of a data point to serve as an exemplar + damping: 0.8, + // damping factor between [0.5, 1) + maxIterations: 1e3, + // max number of iterations to run + minIterations: 100, + // min number of iterations to run in order for clustering to stop + attributes: [ + // functions to quantify the similarity between any two points + // e.g. node => node.data('weight') + ] + }), yh = function(e) { + var r = e.damping, a = e.preference; + 0.5 <= r && r < 1 || xt("Damping must range on [0.5, 1). Got: ".concat(r)); + var n = ["median", "mean", "min", "max"]; + return n.some(function(i) { + return i === a; + }) || R(a) || xt("Preference must be one of [".concat(n.map(function(i) { + return "'".concat(i, "'"); + }).join(", "), "] or a number. Got: ").concat(a)), ph(e); + }, mh = function(e, r, a, n) { + var i = function(o, u) { + return n[u](o); + }; + return -bn(e, n.length, function(s) { + return i(r, s); + }, function(s) { + return i(a, s); + }, r, a); + }, bh = function(e, r) { + var a = null; + return r === "median" ? a = yf(e) : r === "mean" ? a = pf(e) : r === "min" ? a = df(e) : r === "max" ? a = gf(e) : a = r, a; + }, Eh = function(e, r, a) { + for (var n = [], i = 0; i < e; i++) + r[i * e + i] + a[i * e + i] > 0 && n.push(i); + return n; + }, Us = function(e, r, a) { + for (var n = [], i = 0; i < e; i++) { + for (var s = -1, o = -1 / 0, u = 0; u < a.length; u++) { + var l = a[u]; + r[i * e + l] > o && (s = l, o = r[i * e + l]); + } + s > 0 && n.push(s); + } + for (var f = 0; f < a.length; f++) + n[a[f]] = a[f]; + return n; + }, wh = function(e, r, a) { + for (var n = Us(e, r, a), i = 0; i < a.length; i++) { + for (var s = [], o = 0; o < n.length; o++) + n[o] === a[i] && s.push(o); + for (var u = -1, l = -1 / 0, f = 0; f < s.length; f++) { + for (var h = 0, v = 0; v < s.length; v++) + h += r[s[v] * e + s[f]]; + h > l && (u = f, l = h); + } + a[i] = s[u]; + } + return n = Us(e, r, a), n; + }, $s = function(e) { + for (var r = this.cy(), a = this.nodes(), n = yh(e), i = {}, s = 0; s < a.length; s++) + i[a[s].id()] = s; + var o, u, l, f, h, v; + o = a.length, u = o * o, l = new Array(u); + for (var d = 0; d < u; d++) + l[d] = -1 / 0; + for (var c = 0; c < o; c++) + for (var y = 0; y < o; y++) + c !== y && (l[c * o + y] = mh(n.distance, a[c], a[y], n.attributes)); + f = bh(l, n.preference); + for (var p = 0; p < o; p++) + l[p * o + p] = f; + h = new Array(u); + for (var g = 0; g < u; g++) + h[g] = 0; + v = new Array(u); + for (var m = 0; m < u; m++) + v[m] = 0; + for (var b = new Array(o), E = new Array(o), M = new Array(o), L = 0; L < o; L++) + b[L] = 0, E[L] = 0, M[L] = 0; + for (var w = new Array(o * n.minIterations), k = 0; k < w.length; k++) + w[k] = 0; + var D; + for (D = 0; D < n.maxIterations; D++) { + for (var F = 0; F < o; F++) { + for (var G = -1 / 0, N = -1 / 0, X = -1, B = 0, re = 0; re < o; re++) + b[re] = h[F * o + re], B = v[F * o + re] + l[F * o + re], B >= G ? (N = G, G = B, X = re) : B > N && (N = B); + for (var K = 0; K < o; K++) + h[F * o + K] = (1 - n.damping) * (l[F * o + K] - G) + n.damping * b[K]; + h[F * o + X] = (1 - n.damping) * (l[F * o + X] - N) + n.damping * b[X]; + } + for (var W = 0; W < o; W++) { + for (var ae = 0, ue = 0; ue < o; ue++) + b[ue] = v[ue * o + W], E[ue] = Math.max(0, h[ue * o + W]), ae += E[ue]; + ae -= E[W], E[W] = h[W * o + W], ae += E[W]; + for (var me = 0; me < o; me++) + v[me * o + W] = (1 - n.damping) * Math.min(0, ae - E[me]) + n.damping * b[me]; + v[W * o + W] = (1 - n.damping) * (ae - E[W]) + n.damping * b[W]; + } + for (var ie = 0, ge = 0; ge < o; ge++) { + var Ee = v[ge * o + ge] + h[ge * o + ge] > 0 ? 1 : 0; + w[D % n.minIterations * o + ge] = Ee, ie += Ee; + } + if (ie > 0 && (D >= n.minIterations - 1 || D == n.maxIterations - 1)) { + for (var Ce = 0, we = 0; we < o; we++) { + M[we] = 0; + for (var De = 0; De < n.minIterations; De++) + M[we] += w[De * o + we]; + (M[we] === 0 || M[we] === n.minIterations) && Ce++; + } + if (Ce === o) + break; + } + } + for (var se = Eh(o, h, v), xe = wh(o, l, se), Le = {}, Se = 0; Se < se.length; Se++) + Le[se[Se]] = []; + for (var Oe = 0; Oe < a.length; Oe++) { + var Fe = i[a[Oe].id()], Xe = xe[Fe]; + Xe != null && Le[Xe].push(a[Oe]); + } + for (var Ie = new Array(se.length), Me = 0; Me < se.length; Me++) + Ie[Me] = r.collection(Le[se[Me]]); + return Ie; + }, xh = { + affinityPropagation: $s, + ap: $s + }, Th = At({ + root: void 0, + directed: !1 + }), Ch = { + hierholzer: function(e) { + if (!S(e)) { + var r = arguments; + e = { + root: r[0], + directed: r[1] + }; + } + var a = Th(e), n = a.root, i = a.directed, s = this, o = !1, u, l, f; + n && (f = ee(n) ? this.filter(n)[0].id() : n[0].id()); + var h = {}, v = {}; + i ? s.forEach(function(m) { + var b = m.id(); + if (m.isNode()) { + var E = m.indegree(!0), M = m.outdegree(!0), L = E - M, w = M - E; + L == 1 ? u ? o = !0 : u = b : w == 1 ? l ? o = !0 : l = b : (w > 1 || L > 1) && (o = !0), h[b] = [], m.outgoers().forEach(function(k) { + k.isEdge() && h[b].push(k.id()); + }); + } else + v[b] = [void 0, m.target().id()]; + }) : s.forEach(function(m) { + var b = m.id(); + if (m.isNode()) { + var E = m.degree(!0); + E % 2 && (u ? l ? o = !0 : l = b : u = b), h[b] = [], m.connectedEdges().forEach(function(M) { + return h[b].push(M.id()); + }); + } else + v[b] = [m.source().id(), m.target().id()]; + }); + var d = { + found: !1, + trail: void 0 + }; + if (o) + return d; + if (l && u) + if (i) { + if (f && l != f) + return d; + f = l; + } else { + if (f && l != f && u != f) + return d; + f || (f = l); + } + else + f || (f = s[0].id()); + var c = function(b) { + for (var E = b, M = [b], L, w, k; h[E].length; ) + L = h[E].shift(), w = v[L][0], k = v[L][1], E != k ? (h[k] = h[k].filter(function(D) { + return D != L; + }), E = k) : !i && E != w && (h[w] = h[w].filter(function(D) { + return D != L; + }), E = w), M.unshift(L), M.unshift(E); + return M; + }, y = [], p = []; + for (p = c(f); p.length != 1; ) + h[p[0]].length == 0 ? (y.unshift(s.getElementById(p.shift())), y.unshift(s.getElementById(p.shift()))) : p = c(p.shift()).concat(p); + y.unshift(s.getElementById(p.shift())); + for (var g in h) + if (h[g].length) + return d; + return d.found = !0, d.trail = this.spawn(y, !0), d; + } + }, xn = function() { + var e = this, r = {}, a = 0, n = 0, i = [], s = [], o = {}, u = function(v, d) { + for (var c = s.length - 1, y = [], p = e.spawn(); s[c].x != v || s[c].y != d; ) + y.push(s.pop().edge), c--; + y.push(s.pop().edge), y.forEach(function(g) { + var m = g.connectedNodes().intersection(e); + p.merge(g), m.forEach(function(b) { + var E = b.id(), M = b.connectedEdges().intersection(e); + p.merge(b), r[E].cutVertex ? p.merge(M.filter(function(L) { + return L.isLoop(); + })) : p.merge(M); + }); + }), i.push(p); + }, l = function h(v, d, c) { + v === c && (n += 1), r[d] = { + id: a, + low: a++, + cutVertex: !1 + }; + var y = e.getElementById(d).connectedEdges().intersection(e); + if (y.size() === 0) + i.push(e.spawn(e.getElementById(d))); + else { + var p, g, m, b; + y.forEach(function(E) { + p = E.source().id(), g = E.target().id(), m = p === d ? g : p, m !== c && (b = E.id(), o[b] || (o[b] = !0, s.push({ + x: d, + y: m, + edge: E + })), m in r ? r[d].low = Math.min(r[d].low, r[m].id) : (h(v, m, d), r[d].low = Math.min(r[d].low, r[m].low), r[d].id <= r[m].low && (r[d].cutVertex = !0, u(d, m)))); + }); + } + }; + e.forEach(function(h) { + if (h.isNode()) { + var v = h.id(); + v in r || (n = 0, l(v, v), r[v].cutVertex = n > 1); + } + }); + var f = Object.keys(r).filter(function(h) { + return r[h].cutVertex; + }).map(function(h) { + return e.getElementById(h); + }); + return { + cut: e.spawn(f), + components: i + }; + }, Dh = { + hopcroftTarjanBiconnected: xn, + htbc: xn, + htb: xn, + hopcroftTarjanBiconnectedComponents: xn + }, Tn = function() { + var e = this, r = {}, a = 0, n = [], i = [], s = e.spawn(e), o = function u(l) { + i.push(l), r[l] = { + index: a, + low: a++, + explored: !1 + }; + var f = e.getElementById(l).connectedEdges().intersection(e); + if (f.forEach(function(y) { + var p = y.target().id(); + p !== l && (p in r || u(p), r[p].explored || (r[l].low = Math.min(r[l].low, r[p].low))); + }), r[l].index === r[l].low) { + for (var h = e.spawn(); ; ) { + var v = i.pop(); + if (h.merge(e.getElementById(v)), r[v].low = r[l].index, r[v].explored = !0, v === l) + break; + } + var d = h.edgesWith(h), c = h.merge(d); + n.push(c), s = s.difference(c); + } + }; + return e.forEach(function(u) { + if (u.isNode()) { + var l = u.id(); + l in r || o(l); + } + }), { + cut: s, + components: n + }; + }, Sh = { + tarjanStronglyConnected: Tn, + tsc: Tn, + tscc: Tn, + tarjanStronglyConnectedComponents: Tn + }, _s = {}; + [Ma, tf, rf, nf, of, uf, vf, Ff, ra, aa, gi, Zf, uh, gh, xh, Ch, Dh, Sh].forEach(function(t) { + He(_s, t); + }); + /*! + Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable + Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) + Licensed under The MIT License (http://opensource.org/licenses/MIT) + */ + var Ys = 0, Hs = 1, Xs = 2, yr = function t(e) { + if (!(this instanceof t)) + return new t(e); + this.id = "Thenable/1.0.7", this.state = Ys, this.fulfillValue = void 0, this.rejectReason = void 0, this.onFulfilled = [], this.onRejected = [], this.proxy = { + then: this.then.bind(this) + }, typeof e == "function" && e.call(this, this.fulfill.bind(this), this.reject.bind(this)); + }; + yr.prototype = { + /* promise resolving methods */ + fulfill: function(e) { + return Ws(this, Hs, "fulfillValue", e); + }, + reject: function(e) { + return Ws(this, Xs, "rejectReason", e); + }, + /* "The then Method" [Promises/A+ 1.1, 1.2, 2.2] */ + then: function(e, r) { + var a = this, n = new yr(); + return a.onFulfilled.push(Zs(e, n, "fulfill")), a.onRejected.push(Zs(r, n, "reject")), qs(a), n.proxy; + } + }; + var Ws = function(e, r, a, n) { + return e.state === Ys && (e.state = r, e[a] = n, qs(e)), e; + }, qs = function(e) { + e.state === Hs ? Ks(e, "onFulfilled", e.fulfillValue) : e.state === Xs && Ks(e, "onRejected", e.rejectReason); + }, Ks = function(e, r, a) { + if (e[r].length !== 0) { + var n = e[r]; + e[r] = []; + var i = function() { + for (var o = 0; o < n.length; o++) + n[o](a); + }; + typeof setImmediate == "function" ? setImmediate(i) : setTimeout(i, 0); + } + }, Zs = function(e, r, a) { + return function(n) { + if (typeof e != "function") + r[a].call(r, n); + else { + var i; + try { + i = e(n); + } catch (s) { + r.reject(s); + return; + } + Lh(r, i); + } + }; + }, Lh = function t(e, r) { + if (e === r || e.proxy === r) { + e.reject(new TypeError("cannot resolve promise with itself")); + return; + } + var a; + if (_(r) === "object" && r !== null || typeof r == "function") + try { + a = r.then; + } catch (i) { + e.reject(i); + return; + } + if (typeof a == "function") { + var n = !1; + try { + a.call( + r, + /* resolvePromise */ + /* [Promises/A+ 2.3.3.3.1] */ + function(i) { + n || (n = !0, i === r ? e.reject(new TypeError("circular thenable chain")) : t(e, i)); + }, + /* rejectPromise */ + /* [Promises/A+ 2.3.3.3.2] */ + function(i) { + n || (n = !0, e.reject(i)); + } + ); + } catch (i) { + n || e.reject(i); + } + return; + } + e.fulfill(r); + }; + yr.all = function(t) { + return new yr(function(e, r) { + for (var a = new Array(t.length), n = 0, i = function(u, l) { + a[u] = l, n++, n === t.length && e(a); + }, s = 0; s < t.length; s++) + (function(o) { + var u = t[o], l = u != null && u.then != null; + if (l) + u.then(function(h) { + i(o, h); + }, function(h) { + r(h); + }); + else { + var f = u; + i(o, f); + } + })(s); + }); + }, yr.resolve = function(t) { + return new yr(function(e, r) { + e(t); + }); + }, yr.reject = function(t) { + return new yr(function(e, r) { + r(t); + }); + }; + var ia = typeof Promise < "u" ? Promise : yr, mi = function(e, r, a) { + var n = Ye(e), i = !n, s = this._private = He({ + duration: 1e3 + }, r, a); + if (s.target = e, s.style = s.style || s.css, s.started = !1, s.playing = !1, s.hooked = !1, s.applying = !1, s.progress = 0, s.completes = [], s.frames = [], s.complete && H(s.complete) && s.completes.push(s.complete), i) { + var o = e.position(); + s.startPosition = s.startPosition || { + x: o.x, + y: o.y + }, s.startStyle = s.startStyle || e.cy().style().getAnimationStartStyle(e, s.style); + } + if (n) { + var u = e.pan(); + s.startPan = { + x: u.x, + y: u.y + }, s.startZoom = e.zoom(); + } + this.length = 1, this[0] = this; + }, zr = mi.prototype; + He(zr, { + instanceString: function() { + return "animation"; + }, + hook: function() { + var e = this._private; + if (!e.hooked) { + var r, a = e.target._private.animation; + e.queue ? r = a.queue : r = a.current, r.push(this), pe(e.target) && e.target.cy().addToAnimationPool(e.target), e.hooked = !0; + } + return this; + }, + play: function() { + var e = this._private; + return e.progress === 1 && (e.progress = 0), e.playing = !0, e.started = !1, e.stopped = !1, this.hook(), this; + }, + playing: function() { + return this._private.playing; + }, + apply: function() { + var e = this._private; + return e.applying = !0, e.started = !1, e.stopped = !1, this.hook(), this; + }, + applying: function() { + return this._private.applying; + }, + pause: function() { + var e = this._private; + return e.playing = !1, e.started = !1, this; + }, + stop: function() { + var e = this._private; + return e.playing = !1, e.started = !1, e.stopped = !0, this; + }, + rewind: function() { + return this.progress(0); + }, + fastforward: function() { + return this.progress(1); + }, + time: function(e) { + var r = this._private; + return e === void 0 ? r.progress * r.duration : this.progress(e / r.duration); + }, + progress: function(e) { + var r = this._private, a = r.playing; + return e === void 0 ? r.progress : (a && this.pause(), r.progress = e, r.started = !1, a && this.play(), this); + }, + completed: function() { + return this._private.progress === 1; + }, + reverse: function() { + var e = this._private, r = e.playing; + r && this.pause(), e.progress = 1 - e.progress, e.started = !1; + var a = function(l, f) { + var h = e[l]; + h != null && (e[l] = e[f], e[f] = h); + }; + if (a("zoom", "startZoom"), a("pan", "startPan"), a("position", "startPosition"), e.style) + for (var n = 0; n < e.style.length; n++) { + var i = e.style[n], s = i.name, o = e.startStyle[s]; + e.startStyle[s] = i, e.style[n] = o; + } + return r && this.play(), this; + }, + promise: function(e) { + var r = this._private, a; + switch (e) { + case "frame": + a = r.frames; + break; + default: + case "complete": + case "completed": + a = r.completes; + } + return new ia(function(n, i) { + a.push(function() { + n(); + }); + }); + } + }), zr.complete = zr.completed, zr.run = zr.play, zr.running = zr.playing; + var Ah = { + animated: function() { + return function() { + var r = this, a = r.length !== void 0, n = a ? r : [r], i = this._private.cy || this; + if (!i.styleEnabled()) + return !1; + var s = n[0]; + if (s) + return s._private.animation.current.length > 0; + }; + }, + // animated + clearQueue: function() { + return function() { + var r = this, a = r.length !== void 0, n = a ? r : [r], i = this._private.cy || this; + if (!i.styleEnabled()) + return this; + for (var s = 0; s < n.length; s++) { + var o = n[s]; + o._private.animation.queue = []; + } + return this; + }; + }, + // clearQueue + delay: function() { + return function(r, a) { + var n = this._private.cy || this; + return n.styleEnabled() ? this.animate({ + delay: r, + duration: r, + complete: a + }) : this; + }; + }, + // delay + delayAnimation: function() { + return function(r, a) { + var n = this._private.cy || this; + return n.styleEnabled() ? this.animation({ + delay: r, + duration: r, + complete: a + }) : this; + }; + }, + // delay + animation: function() { + return function(r, a) { + var n = this, i = n.length !== void 0, s = i ? n : [n], o = this._private.cy || this, u = !i, l = !u; + if (!o.styleEnabled()) + return this; + var f = o.style(); + r = He({}, r, a); + var h = Object.keys(r).length === 0; + if (h) + return new mi(s[0], r); + switch (r.duration === void 0 && (r.duration = 400), r.duration) { + case "slow": + r.duration = 600; + break; + case "fast": + r.duration = 200; + break; + } + if (l && (r.style = f.getPropsList(r.style || r.css), r.css = void 0), l && r.renderedPosition != null) { + var v = r.renderedPosition, d = o.pan(), c = o.zoom(); + r.position = bs(v, c, d); + } + if (u && r.panBy != null) { + var y = r.panBy, p = o.pan(); + r.pan = { + x: p.x + y.x, + y: p.y + y.y + }; + } + var g = r.center || r.centre; + if (u && g != null) { + var m = o.getCenterPan(g.eles, r.zoom); + m != null && (r.pan = m); + } + if (u && r.fit != null) { + var b = r.fit, E = o.getFitViewport(b.eles || b.boundingBox, b.padding); + E != null && (r.pan = E.pan, r.zoom = E.zoom); + } + if (u && S(r.zoom)) { + var M = o.getZoomedViewport(r.zoom); + M != null ? (M.zoomed && (r.zoom = M.zoom), M.panned && (r.pan = M.pan)) : r.zoom = null; + } + return new mi(s[0], r); + }; + }, + // animate + animate: function() { + return function(r, a) { + var n = this, i = n.length !== void 0, s = i ? n : [n], o = this._private.cy || this; + if (!o.styleEnabled()) + return this; + a && (r = He({}, r, a)); + for (var u = 0; u < s.length; u++) { + var l = s[u], f = l.animated() && (r.queue === void 0 || r.queue), h = l.animation(r, f ? { + queue: !0 + } : void 0); + h.play(); + } + return this; + }; + }, + // animate + stop: function() { + return function(r, a) { + var n = this, i = n.length !== void 0, s = i ? n : [n], o = this._private.cy || this; + if (!o.styleEnabled()) + return this; + for (var u = 0; u < s.length; u++) { + for (var l = s[u], f = l._private, h = f.animation.current, v = 0; v < h.length; v++) { + var d = h[v], c = d._private; + a && (c.duration = 0); + } + r && (f.animation.queue = []), a || (f.animation.current = []); + } + return o.notify("draw"), this; + }; + } + // stop + }, Oh = Array.isArray, Cn = Oh, Nh = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, Ih = /^\w*$/; + function Mh(t, e) { + if (Cn(t)) + return !1; + var r = typeof t; + return r == "number" || r == "symbol" || r == "boolean" || t == null || Aa(t) ? !0 : Ih.test(t) || !Nh.test(t) || e != null && t in Object(e); + } + var Rh = Mh, kh = "[object AsyncFunction]", Ph = "[object Function]", Bh = "[object GeneratorFunction]", Fh = "[object Proxy]"; + function Gh(t) { + if (!kr(t)) + return !1; + var e = is(t); + return e == Ph || e == Bh || e == kh || e == Fh; + } + var zh = Gh, Vh = sn["__core-js_shared__"], bi = Vh, Qs = function() { + var t = /[^.]+$/.exec(bi && bi.keys && bi.keys.IE_PROTO || ""); + return t ? "Symbol(src)_1." + t : ""; + }(); + function Uh(t) { + return !!Qs && Qs in t; + } + var $h = Uh, _h = Function.prototype, Yh = _h.toString; + function Hh(t) { + if (t != null) { + try { + return Yh.call(t); + } catch { + } + try { + return t + ""; + } catch { + } + } + return ""; + } + var Xh = Hh, Wh = /[\\^$.*+?()[\]{}|]/g, qh = /^\[object .+?Constructor\]$/, Kh = Function.prototype, Zh = Object.prototype, Qh = Kh.toString, Jh = Zh.hasOwnProperty, jh = RegExp( + "^" + Qh.call(Jh).replace(Wh, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" + ); + function ev(t) { + if (!kr(t) || $h(t)) + return !1; + var e = zh(t) ? jh : qh; + return e.test(Xh(t)); + } + var tv = ev; + function rv(t, e) { + return t == null ? void 0 : t[e]; + } + var av = rv; + function nv(t, e) { + var r = av(t, e); + return tv(r) ? r : void 0; + } + var Ei = nv, iv = Ei(Object, "create"), za = iv; + function sv() { + this.__data__ = za ? za(null) : {}, this.size = 0; + } + var ov = sv; + function lv(t) { + var e = this.has(t) && delete this.__data__[t]; + return this.size -= e ? 1 : 0, e; + } + var uv = lv, fv = "__lodash_hash_undefined__", hv = Object.prototype, vv = hv.hasOwnProperty; + function cv(t) { + var e = this.__data__; + if (za) { + var r = e[t]; + return r === fv ? void 0 : r; + } + return vv.call(e, t) ? e[t] : void 0; + } + var dv = cv, gv = Object.prototype, pv = gv.hasOwnProperty; + function yv(t) { + var e = this.__data__; + return za ? e[t] !== void 0 : pv.call(e, t); + } + var mv = yv, bv = "__lodash_hash_undefined__"; + function Ev(t, e) { + var r = this.__data__; + return this.size += this.has(t) ? 0 : 1, r[t] = za && e === void 0 ? bv : e, this; + } + var wv = Ev; + function sa(t) { + var e = -1, r = t == null ? 0 : t.length; + for (this.clear(); ++e < r; ) { + var a = t[e]; + this.set(a[0], a[1]); + } + } + sa.prototype.clear = ov, sa.prototype.delete = uv, sa.prototype.get = dv, sa.prototype.has = mv, sa.prototype.set = wv; + var Js = sa; + function xv() { + this.__data__ = [], this.size = 0; + } + var Tv = xv; + function Cv(t, e) { + return t === e || t !== t && e !== e; + } + var js = Cv; + function Dv(t, e) { + for (var r = t.length; r--; ) + if (js(t[r][0], e)) + return r; + return -1; + } + var Dn = Dv, Sv = Array.prototype, Lv = Sv.splice; + function Av(t) { + var e = this.__data__, r = Dn(e, t); + if (r < 0) + return !1; + var a = e.length - 1; + return r == a ? e.pop() : Lv.call(e, r, 1), --this.size, !0; + } + var Ov = Av; + function Nv(t) { + var e = this.__data__, r = Dn(e, t); + return r < 0 ? void 0 : e[r][1]; + } + var Iv = Nv; + function Mv(t) { + return Dn(this.__data__, t) > -1; + } + var Rv = Mv; + function kv(t, e) { + var r = this.__data__, a = Dn(r, t); + return a < 0 ? (++this.size, r.push([t, e])) : r[a][1] = e, this; + } + var Pv = kv; + function oa(t) { + var e = -1, r = t == null ? 0 : t.length; + for (this.clear(); ++e < r; ) { + var a = t[e]; + this.set(a[0], a[1]); + } + } + oa.prototype.clear = Tv, oa.prototype.delete = Ov, oa.prototype.get = Iv, oa.prototype.has = Rv, oa.prototype.set = Pv; + var Bv = oa, Fv = Ei(sn, "Map"), Gv = Fv; + function zv() { + this.size = 0, this.__data__ = { + hash: new Js(), + map: new (Gv || Bv)(), + string: new Js() + }; + } + var Vv = zv; + function Uv(t) { + var e = typeof t; + return e == "string" || e == "number" || e == "symbol" || e == "boolean" ? t !== "__proto__" : t === null; + } + var $v = Uv; + function _v(t, e) { + var r = t.__data__; + return $v(e) ? r[typeof e == "string" ? "string" : "hash"] : r.map; + } + var Sn = _v; + function Yv(t) { + var e = Sn(this, t).delete(t); + return this.size -= e ? 1 : 0, e; + } + var Hv = Yv; + function Xv(t) { + return Sn(this, t).get(t); + } + var Wv = Xv; + function qv(t) { + return Sn(this, t).has(t); + } + var Kv = qv; + function Zv(t, e) { + var r = Sn(this, t), a = r.size; + return r.set(t, e), this.size += r.size == a ? 0 : 1, this; + } + var Qv = Zv; + function la(t) { + var e = -1, r = t == null ? 0 : t.length; + for (this.clear(); ++e < r; ) { + var a = t[e]; + this.set(a[0], a[1]); + } + } + la.prototype.clear = Vv, la.prototype.delete = Hv, la.prototype.get = Wv, la.prototype.has = Kv, la.prototype.set = Qv; + var eo = la, Jv = "Expected a function"; + function wi(t, e) { + if (typeof t != "function" || e != null && typeof e != "function") + throw new TypeError(Jv); + var r = function() { + var a = arguments, n = e ? e.apply(this, a) : a[0], i = r.cache; + if (i.has(n)) + return i.get(n); + var s = t.apply(this, a); + return r.cache = i.set(n, s) || i, s; + }; + return r.cache = new (wi.Cache || eo)(), r; + } + wi.Cache = eo; + var jv = wi, ec = 500; + function tc(t) { + var e = jv(t, function(a) { + return r.size === ec && r.clear(), a; + }), r = e.cache; + return e; + } + var rc = tc, ac = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, nc = /\\(\\)?/g, ic = rc(function(t) { + var e = []; + return t.charCodeAt(0) === 46 && e.push(""), t.replace(ac, function(r, a, n, i) { + e.push(n ? i.replace(nc, "$1") : a || r); + }), e; + }), to = ic; + function sc(t, e) { + for (var r = -1, a = t == null ? 0 : t.length, n = Array(a); ++r < a; ) + n[r] = e(t[r], r, t); + return n; + } + var ro = sc, oc = 1 / 0, ao = Zr ? Zr.prototype : void 0, no = ao ? ao.toString : void 0; + function io(t) { + if (typeof t == "string") + return t; + if (Cn(t)) + return ro(t, io) + ""; + if (Aa(t)) + return no ? no.call(t) : ""; + var e = t + ""; + return e == "0" && 1 / t == -oc ? "-0" : e; + } + var lc = io; + function uc(t) { + return t == null ? "" : lc(t); + } + var so = uc; + function fc(t, e) { + return Cn(t) ? t : Rh(t, e) ? [t] : to(so(t)); + } + var oo = fc, hc = 1 / 0; + function vc(t) { + if (typeof t == "string" || Aa(t)) + return t; + var e = t + ""; + return e == "0" && 1 / t == -hc ? "-0" : e; + } + var xi = vc; + function cc(t, e) { + e = oo(e, t); + for (var r = 0, a = e.length; t != null && r < a; ) + t = t[xi(e[r++])]; + return r && r == a ? t : void 0; + } + var dc = cc; + function gc(t, e, r) { + var a = t == null ? void 0 : dc(t, e); + return a === void 0 ? r : a; + } + var pc = gc, yc = function() { + try { + var t = Ei(Object, "defineProperty"); + return t({}, "", {}), t; + } catch { + } + }(), lo = yc; + function mc(t, e, r) { + e == "__proto__" && lo ? lo(t, e, { + configurable: !0, + enumerable: !0, + value: r, + writable: !0 + }) : t[e] = r; + } + var bc = mc, Ec = Object.prototype, wc = Ec.hasOwnProperty; + function xc(t, e, r) { + var a = t[e]; + (!(wc.call(t, e) && js(a, r)) || r === void 0 && !(e in t)) && bc(t, e, r); + } + var Tc = xc, Cc = 9007199254740991, Dc = /^(?:0|[1-9]\d*)$/; + function Sc(t, e) { + var r = typeof t; + return e = e ?? Cc, !!e && (r == "number" || r != "symbol" && Dc.test(t)) && t > -1 && t % 1 == 0 && t < e; + } + var Lc = Sc; + function Ac(t, e, r, a) { + if (!kr(t)) + return t; + e = oo(e, t); + for (var n = -1, i = e.length, s = i - 1, o = t; o != null && ++n < i; ) { + var u = xi(e[n]), l = r; + if (u === "__proto__" || u === "constructor" || u === "prototype") + return t; + if (n != s) { + var f = o[u]; + l = a ? a(f, u, o) : void 0, l === void 0 && (l = kr(f) ? f : Lc(e[n + 1]) ? [] : {}); + } + Tc(o, u, l), o = o[u]; + } + return t; + } + var Oc = Ac; + function Nc(t, e, r) { + return t == null ? t : Oc(t, e, r); + } + var Ic = Nc; + function Mc(t, e) { + var r = -1, a = t.length; + for (e || (e = Array(a)); ++r < a; ) + e[r] = t[r]; + return e; + } + var Rc = Mc; + function kc(t) { + return Cn(t) ? ro(t, xi) : Aa(t) ? [t] : Rc(to(so(t))); + } + var Pc = kc, Bc = { + // access data field + data: function(e) { + var r = { + field: "data", + bindingEvent: "data", + allowBinding: !1, + allowSetting: !1, + allowGetting: !1, + settingEvent: "data", + settingTriggersEvent: !1, + triggerFnName: "trigger", + immutableKeys: {}, + // key => true if immutable + updateStyle: !1, + beforeGet: function(n) { + }, + beforeSet: function(n, i) { + }, + onSet: function(n) { + }, + canSet: function(n) { + return !0; + } + }; + return e = He({}, r, e), function(n, i) { + var s = e, o = this, u = o.length !== void 0, l = u ? o : [o], f = u ? o[0] : o; + if (ee(n)) { + var h = n.indexOf(".") !== -1, v = h && Pc(n); + if (s.allowGetting && i === void 0) { + var d; + return f && (s.beforeGet(f), v && f._private[s.field][n] === void 0 ? d = pc(f._private[s.field], v) : d = f._private[s.field][n]), d; + } else if (s.allowSetting && i !== void 0) { + var c = !s.immutableKeys[n]; + if (c) { + var y = T({}, n, i); + s.beforeSet(o, y); + for (var p = 0, g = l.length; p < g; p++) { + var m = l[p]; + s.canSet(m) && (v && f._private[s.field][n] === void 0 ? Ic(m._private[s.field], v, i) : m._private[s.field][n] = i); + } + s.updateStyle && o.updateStyle(), s.onSet(o), s.settingTriggersEvent && o[s.triggerFnName](s.settingEvent); + } + } + } else if (s.allowSetting && S(n)) { + var b = n, E, M, L = Object.keys(b); + s.beforeSet(o, b); + for (var w = 0; w < L.length; w++) { + E = L[w], M = b[E]; + var k = !s.immutableKeys[E]; + if (k) + for (var D = 0; D < l.length; D++) { + var F = l[D]; + s.canSet(F) && (F._private[s.field][E] = M); + } + } + s.updateStyle && o.updateStyle(), s.onSet(o), s.settingTriggersEvent && o[s.triggerFnName](s.settingEvent); + } else if (s.allowBinding && H(n)) { + var G = n; + o.on(s.bindingEvent, G); + } else if (s.allowGetting && n === void 0) { + var N; + return f && (s.beforeGet(f), N = f._private[s.field]), N; + } + return o; + }; + }, + // data + // remove data field + removeData: function(e) { + var r = { + field: "data", + event: "data", + triggerFnName: "trigger", + triggerEvent: !1, + immutableKeys: {} + // key => true if immutable + }; + return e = He({}, r, e), function(n) { + var i = e, s = this, o = s.length !== void 0, u = o ? s : [s]; + if (ee(n)) { + for (var l = n.split(/\s+/), f = l.length, h = 0; h < f; h++) { + var v = l[h]; + if (!Re(v)) { + var d = !i.immutableKeys[v]; + if (d) + for (var c = 0, y = u.length; c < y; c++) + u[c]._private[i.field][v] = void 0; + } + } + i.triggerEvent && s[i.triggerFnName](i.event); + } else if (n === void 0) { + for (var p = 0, g = u.length; p < g; p++) + for (var m = u[p]._private[i.field], b = Object.keys(m), E = 0; E < b.length; E++) { + var M = b[E], L = !i.immutableKeys[M]; + L && (m[M] = void 0); + } + i.triggerEvent && s[i.triggerFnName](i.event); + } + return s; + }; + } + // removeData + }, Fc = { + eventAliasesOn: function(e) { + var r = e; + r.addListener = r.listen = r.bind = r.on, r.unlisten = r.unbind = r.off = r.removeListener, r.trigger = r.emit, r.pon = r.promiseOn = function(a, n) { + var i = this, s = Array.prototype.slice.call(arguments, 0); + return new ia(function(o, u) { + var l = function(d) { + i.off.apply(i, h), o(d); + }, f = s.concat([l]), h = f.concat([]); + i.on.apply(i, f); + }); + }; + } + }, ct = {}; + [Ah, Bc, Fc].forEach(function(t) { + He(ct, t); + }); + var Gc = { + animate: ct.animate(), + animation: ct.animation(), + animated: ct.animated(), + clearQueue: ct.clearQueue(), + delay: ct.delay(), + delayAnimation: ct.delayAnimation(), + stop: ct.stop() + }, Ln = { + classes: function(e) { + var r = this; + if (e === void 0) { + var a = []; + return r[0]._private.classes.forEach(function(c) { + return a.push(c); + }), a; + } else + te(e) || (e = (e || "").match(/\S+/g) || []); + for (var n = [], i = new Jr(e), s = 0; s < r.length; s++) { + for (var o = r[s], u = o._private, l = u.classes, f = !1, h = 0; h < e.length; h++) { + var v = e[h], d = l.has(v); + if (!d) { + f = !0; + break; + } + } + f || (f = l.size !== e.length), f && (u.classes = i, n.push(o)); + } + return n.length > 0 && this.spawn(n).updateStyle().emit("class"), r; + }, + addClass: function(e) { + return this.toggleClass(e, !0); + }, + hasClass: function(e) { + var r = this[0]; + return r != null && r._private.classes.has(e); + }, + toggleClass: function(e, r) { + te(e) || (e = e.match(/\S+/g) || []); + for (var a = this, n = r === void 0, i = [], s = 0, o = a.length; s < o; s++) + for (var u = a[s], l = u._private.classes, f = !1, h = 0; h < e.length; h++) { + var v = e[h], d = l.has(v), c = !1; + r || n && !d ? (l.add(v), c = !0) : (!r || n && d) && (l.delete(v), c = !0), !f && c && (i.push(u), f = !0); + } + return i.length > 0 && this.spawn(i).updateStyle().emit("class"), a; + }, + removeClass: function(e) { + return this.toggleClass(e, !1); + }, + flashClass: function(e, r) { + var a = this; + if (r == null) + r = 250; + else if (r === 0) + return a; + return a.addClass(e), setTimeout(function() { + a.removeClass(e); + }, r), a; + } + }; + Ln.className = Ln.classNames = Ln.classes; + var st = { + metaChar: "[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]", + // chars we need to escape in let names, etc + comparatorOp: "=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=", + // binary comparison op (used in data selectors) + boolOp: "\\?|\\!|\\^", + // boolean (unary) operators (used in data selectors) + string: `"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`, + // string literals (used in data selectors) -- doublequotes | singlequotes + number: gt, + // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123 + meta: "degree|indegree|outdegree", + // allowed metadata fields (i.e. allowed functions to use from Collection) + separator: "\\s*,\\s*", + // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass + descendant: "\\s+", + child: "\\s+>\\s+", + subject: "\\$", + group: "node|edge|\\*", + directedEdge: "\\s+->\\s+", + undirectedEdge: "\\s+<->\\s+" + }; + st.variable = "(?:[\\w-.]|(?:\\\\" + st.metaChar + "))+", st.className = "(?:[\\w-]|(?:\\\\" + st.metaChar + "))+", st.value = st.string + "|" + st.number, st.id = st.variable, function() { + var t, e, r; + for (t = st.comparatorOp.split("|"), r = 0; r < t.length; r++) + e = t[r], st.comparatorOp += "|@" + e; + for (t = st.comparatorOp.split("|"), r = 0; r < t.length; r++) + e = t[r], !(e.indexOf("!") >= 0) && e !== "=" && (st.comparatorOp += "|\\!" + e); + }(); + var pt = function() { + return { + checks: [] + }; + }, ke = { + /** E.g. node */ + GROUP: 0, + /** A collection of elements */ + COLLECTION: 1, + /** A filter(ele) function */ + FILTER: 2, + /** E.g. [foo > 1] */ + DATA_COMPARE: 3, + /** E.g. [foo] */ + DATA_EXIST: 4, + /** E.g. [?foo] */ + DATA_BOOL: 5, + /** E.g. [[degree > 2]] */ + META_COMPARE: 6, + /** E.g. :selected */ + STATE: 7, + /** E.g. #foo */ + ID: 8, + /** E.g. .foo */ + CLASS: 9, + /** E.g. #foo <-> #bar */ + UNDIRECTED_EDGE: 10, + /** E.g. #foo -> #bar */ + DIRECTED_EDGE: 11, + /** E.g. $#foo -> #bar */ + NODE_SOURCE: 12, + /** E.g. #foo -> $#bar */ + NODE_TARGET: 13, + /** E.g. $#foo <-> #bar */ + NODE_NEIGHBOR: 14, + /** E.g. #foo > #bar */ + CHILD: 15, + /** E.g. #foo #bar */ + DESCENDANT: 16, + /** E.g. $#foo > #bar */ + PARENT: 17, + /** E.g. $#foo #bar */ + ANCESTOR: 18, + /** E.g. #foo > $bar > #baz */ + COMPOUND_SPLIT: 19, + /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */ + TRUE: 20 + }, Ti = [{ + selector: ":selected", + matches: function(e) { + return e.selected(); + } + }, { + selector: ":unselected", + matches: function(e) { + return !e.selected(); + } + }, { + selector: ":selectable", + matches: function(e) { + return e.selectable(); + } + }, { + selector: ":unselectable", + matches: function(e) { + return !e.selectable(); + } + }, { + selector: ":locked", + matches: function(e) { + return e.locked(); + } + }, { + selector: ":unlocked", + matches: function(e) { + return !e.locked(); + } + }, { + selector: ":visible", + matches: function(e) { + return e.visible(); + } + }, { + selector: ":hidden", + matches: function(e) { + return !e.visible(); + } + }, { + selector: ":transparent", + matches: function(e) { + return e.transparent(); + } + }, { + selector: ":grabbed", + matches: function(e) { + return e.grabbed(); + } + }, { + selector: ":free", + matches: function(e) { + return !e.grabbed(); + } + }, { + selector: ":removed", + matches: function(e) { + return e.removed(); + } + }, { + selector: ":inside", + matches: function(e) { + return !e.removed(); + } + }, { + selector: ":grabbable", + matches: function(e) { + return e.grabbable(); + } + }, { + selector: ":ungrabbable", + matches: function(e) { + return !e.grabbable(); + } + }, { + selector: ":animated", + matches: function(e) { + return e.animated(); + } + }, { + selector: ":unanimated", + matches: function(e) { + return !e.animated(); + } + }, { + selector: ":parent", + matches: function(e) { + return e.isParent(); + } + }, { + selector: ":childless", + matches: function(e) { + return e.isChildless(); + } + }, { + selector: ":child", + matches: function(e) { + return e.isChild(); + } + }, { + selector: ":orphan", + matches: function(e) { + return e.isOrphan(); + } + }, { + selector: ":nonorphan", + matches: function(e) { + return e.isChild(); + } + }, { + selector: ":compound", + matches: function(e) { + return e.isNode() ? e.isParent() : e.source().isParent() || e.target().isParent(); + } + }, { + selector: ":loop", + matches: function(e) { + return e.isLoop(); + } + }, { + selector: ":simple", + matches: function(e) { + return e.isSimple(); + } + }, { + selector: ":active", + matches: function(e) { + return e.active(); + } + }, { + selector: ":inactive", + matches: function(e) { + return !e.active(); + } + }, { + selector: ":backgrounding", + matches: function(e) { + return e.backgrounding(); + } + }, { + selector: ":nonbackgrounding", + matches: function(e) { + return !e.backgrounding(); + } + }].sort(function(t, e) { + return Kl(t.selector, e.selector); + }), zc = function() { + for (var t = {}, e, r = 0; r < Ti.length; r++) + e = Ti[r], t[e.selector] = e.matches; + return t; + }(), Vc = function(e, r) { + return zc[e](r); + }, Uc = "(" + Ti.map(function(t) { + return t.selector; + }).join("|") + ")", ua = function(e) { + return e.replace(new RegExp("\\\\(" + st.metaChar + ")", "g"), function(r, a) { + return a; + }); + }, Dr = function(e, r, a) { + e[e.length - 1] = a; + }, Ci = [{ + name: "group", + // just used for identifying when debugging + query: !0, + regex: "(" + st.group + ")", + populate: function(e, r, a) { + var n = x(a, 1), i = n[0]; + r.checks.push({ + type: ke.GROUP, + value: i === "*" ? i : i + "s" + }); + } + }, { + name: "state", + query: !0, + regex: Uc, + populate: function(e, r, a) { + var n = x(a, 1), i = n[0]; + r.checks.push({ + type: ke.STATE, + value: i + }); + } + }, { + name: "id", + query: !0, + regex: "\\#(" + st.id + ")", + populate: function(e, r, a) { + var n = x(a, 1), i = n[0]; + r.checks.push({ + type: ke.ID, + value: ua(i) + }); + } + }, { + name: "className", + query: !0, + regex: "\\.(" + st.className + ")", + populate: function(e, r, a) { + var n = x(a, 1), i = n[0]; + r.checks.push({ + type: ke.CLASS, + value: ua(i) + }); + } + }, { + name: "dataExists", + query: !0, + regex: "\\[\\s*(" + st.variable + ")\\s*\\]", + populate: function(e, r, a) { + var n = x(a, 1), i = n[0]; + r.checks.push({ + type: ke.DATA_EXIST, + field: ua(i) + }); + } + }, { + name: "dataCompare", + query: !0, + regex: "\\[\\s*(" + st.variable + ")\\s*(" + st.comparatorOp + ")\\s*(" + st.value + ")\\s*\\]", + populate: function(e, r, a) { + var n = x(a, 3), i = n[0], s = n[1], o = n[2], u = new RegExp("^" + st.string + "$").exec(o) != null; + u ? o = o.substring(1, o.length - 1) : o = parseFloat(o), r.checks.push({ + type: ke.DATA_COMPARE, + field: ua(i), + operator: s, + value: o + }); + } + }, { + name: "dataBool", + query: !0, + regex: "\\[\\s*(" + st.boolOp + ")\\s*(" + st.variable + ")\\s*\\]", + populate: function(e, r, a) { + var n = x(a, 2), i = n[0], s = n[1]; + r.checks.push({ + type: ke.DATA_BOOL, + field: ua(s), + operator: i + }); + } + }, { + name: "metaCompare", + query: !0, + regex: "\\[\\[\\s*(" + st.meta + ")\\s*(" + st.comparatorOp + ")\\s*(" + st.number + ")\\s*\\]\\]", + populate: function(e, r, a) { + var n = x(a, 3), i = n[0], s = n[1], o = n[2]; + r.checks.push({ + type: ke.META_COMPARE, + field: ua(i), + operator: s, + value: parseFloat(o) + }); + } + }, { + name: "nextQuery", + separator: !0, + regex: st.separator, + populate: function(e, r) { + var a = e.currentSubject, n = e.edgeCount, i = e.compoundCount, s = e[e.length - 1]; + a != null && (s.subject = a, e.currentSubject = null), s.edgeCount = n, s.compoundCount = i, e.edgeCount = 0, e.compoundCount = 0; + var o = e[e.length++] = pt(); + return o; + } + }, { + name: "directedEdge", + separator: !0, + regex: st.directedEdge, + populate: function(e, r) { + if (e.currentSubject == null) { + var a = pt(), n = r, i = pt(); + return a.checks.push({ + type: ke.DIRECTED_EDGE, + source: n, + target: i + }), Dr(e, r, a), e.edgeCount++, i; + } else { + var s = pt(), o = r, u = pt(); + return s.checks.push({ + type: ke.NODE_SOURCE, + source: o, + target: u + }), Dr(e, r, s), e.edgeCount++, u; + } + } + }, { + name: "undirectedEdge", + separator: !0, + regex: st.undirectedEdge, + populate: function(e, r) { + if (e.currentSubject == null) { + var a = pt(), n = r, i = pt(); + return a.checks.push({ + type: ke.UNDIRECTED_EDGE, + nodes: [n, i] + }), Dr(e, r, a), e.edgeCount++, i; + } else { + var s = pt(), o = r, u = pt(); + return s.checks.push({ + type: ke.NODE_NEIGHBOR, + node: o, + neighbor: u + }), Dr(e, r, s), u; + } + } + }, { + name: "child", + separator: !0, + regex: st.child, + populate: function(e, r) { + if (e.currentSubject == null) { + var a = pt(), n = pt(), i = e[e.length - 1]; + return a.checks.push({ + type: ke.CHILD, + parent: i, + child: n + }), Dr(e, r, a), e.compoundCount++, n; + } else if (e.currentSubject === r) { + var s = pt(), o = e[e.length - 1], u = pt(), l = pt(), f = pt(), h = pt(); + return s.checks.push({ + type: ke.COMPOUND_SPLIT, + left: o, + right: u, + subject: l + }), l.checks = r.checks, r.checks = [{ + type: ke.TRUE + }], h.checks.push({ + type: ke.TRUE + }), u.checks.push({ + type: ke.PARENT, + // type is swapped on right side queries + parent: h, + child: f + // empty for now + }), Dr(e, o, s), e.currentSubject = l, e.compoundCount++, f; + } else { + var v = pt(), d = pt(), c = [{ + type: ke.PARENT, + parent: v, + child: d + }]; + return v.checks = r.checks, r.checks = c, e.compoundCount++, d; + } + } + }, { + name: "descendant", + separator: !0, + regex: st.descendant, + populate: function(e, r) { + if (e.currentSubject == null) { + var a = pt(), n = pt(), i = e[e.length - 1]; + return a.checks.push({ + type: ke.DESCENDANT, + ancestor: i, + descendant: n + }), Dr(e, r, a), e.compoundCount++, n; + } else if (e.currentSubject === r) { + var s = pt(), o = e[e.length - 1], u = pt(), l = pt(), f = pt(), h = pt(); + return s.checks.push({ + type: ke.COMPOUND_SPLIT, + left: o, + right: u, + subject: l + }), l.checks = r.checks, r.checks = [{ + type: ke.TRUE + }], h.checks.push({ + type: ke.TRUE + }), u.checks.push({ + type: ke.ANCESTOR, + // type is swapped on right side queries + ancestor: h, + descendant: f + // empty for now + }), Dr(e, o, s), e.currentSubject = l, e.compoundCount++, f; + } else { + var v = pt(), d = pt(), c = [{ + type: ke.ANCESTOR, + ancestor: v, + descendant: d + }]; + return v.checks = r.checks, r.checks = c, e.compoundCount++, d; + } + } + }, { + name: "subject", + modifier: !0, + regex: st.subject, + populate: function(e, r) { + if (e.currentSubject != null && e.currentSubject !== r) + return vt("Redefinition of subject in selector `" + e.toString() + "`"), !1; + e.currentSubject = r; + var a = e[e.length - 1], n = a.checks[0], i = n == null ? null : n.type; + i === ke.DIRECTED_EDGE ? n.type = ke.NODE_TARGET : i === ke.UNDIRECTED_EDGE && (n.type = ke.NODE_NEIGHBOR, n.node = n.nodes[1], n.neighbor = n.nodes[0], n.nodes = null); + } + }]; + Ci.forEach(function(t) { + return t.regexObj = new RegExp("^" + t.regex); + }); + var $c = function(e) { + for (var r, a, n, i = 0; i < Ci.length; i++) { + var s = Ci[i], o = s.name, u = e.match(s.regexObj); + if (u != null) { + a = u, r = s, n = o; + var l = u[0]; + e = e.substring(l.length); + break; + } + } + return { + expr: r, + match: a, + name: n, + remaining: e + }; + }, _c = function(e) { + var r = e.match(/^\s+/); + if (r) { + var a = r[0]; + e = e.substring(a.length); + } + return e; + }, Yc = function(e) { + var r = this, a = r.inputText = e, n = r[0] = pt(); + for (r.length = 1, a = _c(a); ; ) { + var i = $c(a); + if (i.expr == null) + return vt("The selector `" + e + "`is invalid"), !1; + var s = i.match.slice(1), o = i.expr.populate(r, n, s); + if (o === !1) + return !1; + if (o != null && (n = o), a = i.remaining, a.match(/^\s*$/)) + break; + } + var u = r[r.length - 1]; + r.currentSubject != null && (u.subject = r.currentSubject), u.edgeCount = r.edgeCount, u.compoundCount = r.compoundCount; + for (var l = 0; l < r.length; l++) { + var f = r[l]; + if (f.compoundCount > 0 && f.edgeCount > 0) + return vt("The selector `" + e + "` is invalid because it uses both a compound selector and an edge selector"), !1; + if (f.edgeCount > 1) + return vt("The selector `" + e + "` is invalid because it uses multiple edge selectors"), !1; + f.edgeCount === 1 && vt("The selector `" + e + "` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes."); + } + return !0; + }, Hc = function() { + if (this.toStringCache != null) + return this.toStringCache; + for (var e = function(f) { + return f ?? ""; + }, r = function(f) { + return ee(f) ? '"' + f + '"' : e(f); + }, a = function(f) { + return " " + f + " "; + }, n = function(f, h) { + var v = f.type, d = f.value; + switch (v) { + case ke.GROUP: { + var c = e(d); + return c.substring(0, c.length - 1); + } + case ke.DATA_COMPARE: { + var y = f.field, p = f.operator; + return "[" + y + a(e(p)) + r(d) + "]"; + } + case ke.DATA_BOOL: { + var g = f.operator, m = f.field; + return "[" + e(g) + m + "]"; + } + case ke.DATA_EXIST: { + var b = f.field; + return "[" + b + "]"; + } + case ke.META_COMPARE: { + var E = f.operator, M = f.field; + return "[[" + M + a(e(E)) + r(d) + "]]"; + } + case ke.STATE: + return d; + case ke.ID: + return "#" + d; + case ke.CLASS: + return "." + d; + case ke.PARENT: + case ke.CHILD: + return i(f.parent, h) + a(">") + i(f.child, h); + case ke.ANCESTOR: + case ke.DESCENDANT: + return i(f.ancestor, h) + " " + i(f.descendant, h); + case ke.COMPOUND_SPLIT: { + var L = i(f.left, h), w = i(f.subject, h), k = i(f.right, h); + return L + (L.length > 0 ? " " : "") + w + k; + } + case ke.TRUE: + return ""; + } + }, i = function(f, h) { + return f.checks.reduce(function(v, d, c) { + return v + (h === f && c === 0 ? "$" : "") + n(d, h); + }, ""); + }, s = "", o = 0; o < this.length; o++) { + var u = this[o]; + s += i(u, u.subject), this.length > 1 && o < this.length - 1 && (s += ", "); + } + return this.toStringCache = s, s; + }, Xc = { + parse: Yc, + toString: Hc + }, uo = function(e, r, a) { + var n, i = ee(e), s = R(e), o = ee(a), u, l, f = !1, h = !1, v = !1; + switch (r.indexOf("!") >= 0 && (r = r.replace("!", ""), h = !0), r.indexOf("@") >= 0 && (r = r.replace("@", ""), f = !0), (i || o || f) && (u = !i && !s ? "" : "" + e, l = "" + a), f && (e = u = u.toLowerCase(), a = l = l.toLowerCase()), r) { + case "*=": + n = u.indexOf(l) >= 0; + break; + case "$=": + n = u.indexOf(l, u.length - l.length) >= 0; + break; + case "^=": + n = u.indexOf(l) === 0; + break; + case "=": + n = e === a; + break; + case ">": + v = !0, n = e > a; + break; + case ">=": + v = !0, n = e >= a; + break; + case "<": + v = !0, n = e < a; + break; + case "<=": + v = !0, n = e <= a; + break; + default: + n = !1; + break; + } + return h && (e != null || !v) && (n = !n), n; + }, Wc = function(e, r) { + switch (r) { + case "?": + return !!e; + case "!": + return !e; + case "^": + return e === void 0; + } + }, qc = function(e) { + return e !== void 0; + }, Di = function(e, r) { + return e.data(r); + }, Kc = function(e, r) { + return e[r](); + }, Tt = [], wt = function(e, r) { + return e.checks.every(function(a) { + return Tt[a.type](a, r); + }); + }; + Tt[ke.GROUP] = function(t, e) { + var r = t.value; + return r === "*" || r === e.group(); + }, Tt[ke.STATE] = function(t, e) { + var r = t.value; + return Vc(r, e); + }, Tt[ke.ID] = function(t, e) { + var r = t.value; + return e.id() === r; + }, Tt[ke.CLASS] = function(t, e) { + var r = t.value; + return e.hasClass(r); + }, Tt[ke.META_COMPARE] = function(t, e) { + var r = t.field, a = t.operator, n = t.value; + return uo(Kc(e, r), a, n); + }, Tt[ke.DATA_COMPARE] = function(t, e) { + var r = t.field, a = t.operator, n = t.value; + return uo(Di(e, r), a, n); + }, Tt[ke.DATA_BOOL] = function(t, e) { + var r = t.field, a = t.operator; + return Wc(Di(e, r), a); + }, Tt[ke.DATA_EXIST] = function(t, e) { + var r = t.field; + return t.operator, qc(Di(e, r)); + }, Tt[ke.UNDIRECTED_EDGE] = function(t, e) { + var r = t.nodes[0], a = t.nodes[1], n = e.source(), i = e.target(); + return wt(r, n) && wt(a, i) || wt(a, n) && wt(r, i); + }, Tt[ke.NODE_NEIGHBOR] = function(t, e) { + return wt(t.node, e) && e.neighborhood().some(function(r) { + return r.isNode() && wt(t.neighbor, r); + }); + }, Tt[ke.DIRECTED_EDGE] = function(t, e) { + return wt(t.source, e.source()) && wt(t.target, e.target()); + }, Tt[ke.NODE_SOURCE] = function(t, e) { + return wt(t.source, e) && e.outgoers().some(function(r) { + return r.isNode() && wt(t.target, r); + }); + }, Tt[ke.NODE_TARGET] = function(t, e) { + return wt(t.target, e) && e.incomers().some(function(r) { + return r.isNode() && wt(t.source, r); + }); + }, Tt[ke.CHILD] = function(t, e) { + return wt(t.child, e) && wt(t.parent, e.parent()); + }, Tt[ke.PARENT] = function(t, e) { + return wt(t.parent, e) && e.children().some(function(r) { + return wt(t.child, r); + }); + }, Tt[ke.DESCENDANT] = function(t, e) { + return wt(t.descendant, e) && e.ancestors().some(function(r) { + return wt(t.ancestor, r); + }); + }, Tt[ke.ANCESTOR] = function(t, e) { + return wt(t.ancestor, e) && e.descendants().some(function(r) { + return wt(t.descendant, r); + }); + }, Tt[ke.COMPOUND_SPLIT] = function(t, e) { + return wt(t.subject, e) && wt(t.left, e) && wt(t.right, e); + }, Tt[ke.TRUE] = function() { + return !0; + }, Tt[ke.COLLECTION] = function(t, e) { + var r = t.value; + return r.has(e); + }, Tt[ke.FILTER] = function(t, e) { + var r = t.value; + return r(e); + }; + var Zc = function(e) { + var r = this; + if (r.length === 1 && r[0].checks.length === 1 && r[0].checks[0].type === ke.ID) + return e.getElementById(r[0].checks[0].value).collection(); + var a = function(i) { + for (var s = 0; s < r.length; s++) { + var o = r[s]; + if (wt(o, i)) + return !0; + } + return !1; + }; + return r.text() == null && (a = function() { + return !0; + }), e.filter(a); + }, Qc = function(e) { + for (var r = this, a = 0; a < r.length; a++) { + var n = r[a]; + if (wt(n, e)) + return !0; + } + return !1; + }, Jc = { + matches: Qc, + filter: Zc + }, Sr = function(e) { + this.inputText = e, this.currentSubject = null, this.compoundCount = 0, this.edgeCount = 0, this.length = 0, e == null || ee(e) && e.match(/^\s*$/) || (pe(e) ? this.addQuery({ + checks: [{ + type: ke.COLLECTION, + value: e.collection() + }] + }) : H(e) ? this.addQuery({ + checks: [{ + type: ke.FILTER, + value: e + }] + }) : ee(e) ? this.parse(e) || (this.invalid = !0) : xt("A selector must be created from a string; found ")); + }, Lr = Sr.prototype; + [Xc, Jc].forEach(function(t) { + return He(Lr, t); + }), Lr.text = function() { + return this.inputText; + }, Lr.size = function() { + return this.length; + }, Lr.eq = function(t) { + return this[t]; + }, Lr.sameText = function(t) { + return !this.invalid && !t.invalid && this.text() === t.text(); + }, Lr.addQuery = function(t) { + this[this.length++] = t; + }, Lr.selector = Lr.toString; + var Ar = { + allAre: function(e) { + var r = new Sr(e); + return this.every(function(a) { + return r.matches(a); + }); + }, + is: function(e) { + var r = new Sr(e); + return this.some(function(a) { + return r.matches(a); + }); + }, + some: function(e, r) { + for (var a = 0; a < this.length; a++) { + var n = r ? e.apply(r, [this[a], a, this]) : e(this[a], a, this); + if (n) + return !0; + } + return !1; + }, + every: function(e, r) { + for (var a = 0; a < this.length; a++) { + var n = r ? e.apply(r, [this[a], a, this]) : e(this[a], a, this); + if (!n) + return !1; + } + return !0; + }, + same: function(e) { + if (this === e) + return !0; + e = this.cy().collection(e); + var r = this.length, a = e.length; + return r !== a ? !1 : r === 1 ? this[0] === e[0] : this.every(function(n) { + return e.hasElementWithId(n.id()); + }); + }, + anySame: function(e) { + return e = this.cy().collection(e), this.some(function(r) { + return e.hasElementWithId(r.id()); + }); + }, + allAreNeighbors: function(e) { + e = this.cy().collection(e); + var r = this.neighborhood(); + return e.every(function(a) { + return r.hasElementWithId(a.id()); + }); + }, + contains: function(e) { + e = this.cy().collection(e); + var r = this; + return e.every(function(a) { + return r.hasElementWithId(a.id()); + }); + } + }; + Ar.allAreNeighbours = Ar.allAreNeighbors, Ar.has = Ar.contains, Ar.equal = Ar.equals = Ar.same; + var Zt = function(e, r) { + return function(n, i, s, o) { + var u = n, l = this, f; + if (u == null ? f = "" : pe(u) && u.length === 1 && (f = u.id()), l.length === 1 && f) { + var h = l[0]._private, v = h.traversalCache = h.traversalCache || {}, d = v[r] = v[r] || [], c = Pr(f), y = d[c]; + return y || (d[c] = e.call(l, n, i, s, o)); + } else + return e.call(l, n, i, s, o); + }; + }, fa = { + parent: function(e) { + var r = []; + if (this.length === 1) { + var a = this[0]._private.parent; + if (a) + return a; + } + for (var n = 0; n < this.length; n++) { + var i = this[n], s = i._private.parent; + s && r.push(s); + } + return this.spawn(r, !0).filter(e); + }, + parents: function(e) { + for (var r = [], a = this.parent(); a.nonempty(); ) { + for (var n = 0; n < a.length; n++) { + var i = a[n]; + r.push(i); + } + a = a.parent(); + } + return this.spawn(r, !0).filter(e); + }, + commonAncestors: function(e) { + for (var r, a = 0; a < this.length; a++) { + var n = this[a], i = n.parents(); + r = r || i, r = r.intersect(i); + } + return r.filter(e); + }, + orphans: function(e) { + return this.stdFilter(function(r) { + return r.isOrphan(); + }).filter(e); + }, + nonorphans: function(e) { + return this.stdFilter(function(r) { + return r.isChild(); + }).filter(e); + }, + children: Zt(function(t) { + for (var e = [], r = 0; r < this.length; r++) + for (var a = this[r], n = a._private.children, i = 0; i < n.length; i++) + e.push(n[i]); + return this.spawn(e, !0).filter(t); + }, "children"), + siblings: function(e) { + return this.parent().children().not(this).filter(e); + }, + isParent: function() { + var e = this[0]; + if (e) + return e.isNode() && e._private.children.length !== 0; + }, + isChildless: function() { + var e = this[0]; + if (e) + return e.isNode() && e._private.children.length === 0; + }, + isChild: function() { + var e = this[0]; + if (e) + return e.isNode() && e._private.parent != null; + }, + isOrphan: function() { + var e = this[0]; + if (e) + return e.isNode() && e._private.parent == null; + }, + descendants: function(e) { + var r = []; + function a(n) { + for (var i = 0; i < n.length; i++) { + var s = n[i]; + r.push(s), s.children().nonempty() && a(s.children()); + } + } + return a(this.children()), this.spawn(r, !0).filter(e); + } + }; + function Si(t, e, r, a) { + for (var n = [], i = new Jr(), s = t.cy(), o = s.hasCompoundNodes(), u = 0; u < t.length; u++) { + var l = t[u]; + r ? n.push(l) : o && a(n, i, l); + } + for (; n.length > 0; ) { + var f = n.shift(); + e(f), i.add(f.id()), o && a(n, i, f); + } + return t; + } + function fo(t, e, r) { + if (r.isParent()) + for (var a = r._private.children, n = 0; n < a.length; n++) { + var i = a[n]; + e.has(i.id()) || t.push(i); + } + } + fa.forEachDown = function(t) { + var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0; + return Si(this, t, e, fo); + }; + function ho(t, e, r) { + if (r.isChild()) { + var a = r._private.parent; + e.has(a.id()) || t.push(a); + } + } + fa.forEachUp = function(t) { + var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0; + return Si(this, t, e, ho); + }; + function jc(t, e, r) { + ho(t, e, r), fo(t, e, r); + } + fa.forEachUpAndDown = function(t) { + var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0; + return Si(this, t, e, jc); + }, fa.ancestors = fa.parents; + var Va, vo; + Va = vo = { + data: ct.data({ + field: "data", + bindingEvent: "data", + allowBinding: !0, + allowSetting: !0, + settingEvent: "data", + settingTriggersEvent: !0, + triggerFnName: "trigger", + allowGetting: !0, + immutableKeys: { + id: !0, + source: !0, + target: !0, + parent: !0 + }, + updateStyle: !0 + }), + removeData: ct.removeData({ + field: "data", + event: "data", + triggerFnName: "trigger", + triggerEvent: !0, + immutableKeys: { + id: !0, + source: !0, + target: !0, + parent: !0 + }, + updateStyle: !0 + }), + scratch: ct.data({ + field: "scratch", + bindingEvent: "scratch", + allowBinding: !0, + allowSetting: !0, + settingEvent: "scratch", + settingTriggersEvent: !0, + triggerFnName: "trigger", + allowGetting: !0, + updateStyle: !0 + }), + removeScratch: ct.removeData({ + field: "scratch", + event: "scratch", + triggerFnName: "trigger", + triggerEvent: !0, + updateStyle: !0 + }), + rscratch: ct.data({ + field: "rscratch", + allowBinding: !1, + allowSetting: !0, + settingTriggersEvent: !1, + allowGetting: !0 + }), + removeRscratch: ct.removeData({ + field: "rscratch", + triggerEvent: !1 + }), + id: function() { + var e = this[0]; + if (e) + return e._private.data.id; + } + }, Va.attr = Va.data, Va.removeAttr = Va.removeData; + var ed = vo, An = {}; + function Li(t) { + return function(e) { + var r = this; + if (e === void 0 && (e = !0), r.length !== 0) + if (r.isNode() && !r.removed()) { + for (var a = 0, n = r[0], i = n._private.edges, s = 0; s < i.length; s++) { + var o = i[s]; + !e && o.isLoop() || (a += t(n, o)); + } + return a; + } else + return; + }; + } + He(An, { + degree: Li(function(t, e) { + return e.source().same(e.target()) ? 2 : 1; + }), + indegree: Li(function(t, e) { + return e.target().same(t) ? 1 : 0; + }), + outdegree: Li(function(t, e) { + return e.source().same(t) ? 1 : 0; + }) + }); + function ha(t, e) { + return function(r) { + for (var a, n = this.nodes(), i = 0; i < n.length; i++) { + var s = n[i], o = s[t](r); + o !== void 0 && (a === void 0 || e(o, a)) && (a = o); + } + return a; + }; + } + He(An, { + minDegree: ha("degree", function(t, e) { + return t < e; + }), + maxDegree: ha("degree", function(t, e) { + return t > e; + }), + minIndegree: ha("indegree", function(t, e) { + return t < e; + }), + maxIndegree: ha("indegree", function(t, e) { + return t > e; + }), + minOutdegree: ha("outdegree", function(t, e) { + return t < e; + }), + maxOutdegree: ha("outdegree", function(t, e) { + return t > e; + }) + }), He(An, { + totalDegree: function(e) { + for (var r = 0, a = this.nodes(), n = 0; n < a.length; n++) + r += a[n].degree(e); + return r; + } + }); + var tr, co, go = function(e, r, a) { + for (var n = 0; n < e.length; n++) { + var i = e[n]; + if (!i.locked()) { + var s = i._private.position, o = { + x: r.x != null ? r.x - s.x : 0, + y: r.y != null ? r.y - s.y : 0 + }; + i.isParent() && !(o.x === 0 && o.y === 0) && i.children().shift(o, a), i.dirtyBoundingBoxCache(); + } + } + }, po = { + field: "position", + bindingEvent: "position", + allowBinding: !0, + allowSetting: !0, + settingEvent: "position", + settingTriggersEvent: !0, + triggerFnName: "emitAndNotify", + allowGetting: !0, + validKeys: ["x", "y"], + beforeGet: function(e) { + e.updateCompoundBounds(); + }, + beforeSet: function(e, r) { + go(e, r, !1); + }, + onSet: function(e) { + e.dirtyCompoundBoundsCache(); + }, + canSet: function(e) { + return !e.locked(); + } + }; + tr = co = { + position: ct.data(po), + // position but no notification to renderer + silentPosition: ct.data(He({}, po, { + allowBinding: !1, + allowSetting: !0, + settingTriggersEvent: !1, + allowGetting: !1, + beforeSet: function(e, r) { + go(e, r, !0); + }, + onSet: function(e) { + e.dirtyCompoundBoundsCache(); + } + })), + positions: function(e, r) { + if (S(e)) + r ? this.silentPosition(e) : this.position(e); + else if (H(e)) { + var a = e, n = this.cy(); + n.startBatch(); + for (var i = 0; i < this.length; i++) { + var s = this[i], o = void 0; + (o = a(s, i)) && (r ? s.silentPosition(o) : s.position(o)); + } + n.endBatch(); + } + return this; + }, + silentPositions: function(e) { + return this.positions(e, !0); + }, + shift: function(e, r, a) { + var n; + if (S(e) ? (n = { + x: R(e.x) ? e.x : 0, + y: R(e.y) ? e.y : 0 + }, a = r) : ee(e) && R(r) && (n = { + x: 0, + y: 0 + }, n[e] = r), n != null) { + var i = this.cy(); + i.startBatch(); + for (var s = 0; s < this.length; s++) { + var o = this[s]; + if (!(i.hasCompoundNodes() && o.isChild() && o.ancestors().anySame(this))) { + var u = o.position(), l = { + x: u.x + n.x, + y: u.y + n.y + }; + a ? o.silentPosition(l) : o.position(l); + } + } + i.endBatch(); + } + return this; + }, + silentShift: function(e, r) { + return S(e) ? this.shift(e, !0) : ee(e) && R(r) && this.shift(e, r, !0), this; + }, + // get/set the rendered (i.e. on screen) positon of the element + renderedPosition: function(e, r) { + var a = this[0], n = this.cy(), i = n.zoom(), s = n.pan(), o = S(e) ? e : void 0, u = o !== void 0 || r !== void 0 && ee(e); + if (a && a.isNode()) + if (u) + for (var l = 0; l < this.length; l++) { + var f = this[l]; + r !== void 0 ? f.position(e, (r - s[e]) / i) : o !== void 0 && f.position(bs(o, i, s)); + } + else { + var h = a.position(); + return o = vn(h, i, s), e === void 0 ? o : o[e]; + } + else if (!u) + return; + return this; + }, + // get/set the position relative to the parent + relativePosition: function(e, r) { + var a = this[0], n = this.cy(), i = S(e) ? e : void 0, s = i !== void 0 || r !== void 0 && ee(e), o = n.hasCompoundNodes(); + if (a && a.isNode()) + if (s) + for (var u = 0; u < this.length; u++) { + var l = this[u], f = o ? l.parent() : null, h = f && f.length > 0, v = h; + h && (f = f[0]); + var d = v ? f.position() : { + x: 0, + y: 0 + }; + r !== void 0 ? l.position(e, r + d[e]) : i !== void 0 && l.position({ + x: i.x + d.x, + y: i.y + d.y + }); + } + else { + var c = a.position(), y = o ? a.parent() : null, p = y && y.length > 0, g = p; + p && (y = y[0]); + var m = g ? y.position() : { + x: 0, + y: 0 + }; + return i = { + x: c.x - m.x, + y: c.y - m.y + }, e === void 0 ? i : i[e]; + } + else if (!s) + return; + return this; + } + }, tr.modelPosition = tr.point = tr.position, tr.modelPositions = tr.points = tr.positions, tr.renderedPoint = tr.renderedPosition, tr.relativePoint = tr.relativePosition; + var td = co, va, Or; + va = Or = {}, Or.renderedBoundingBox = function(t) { + var e = this.boundingBox(t), r = this.cy(), a = r.zoom(), n = r.pan(), i = e.x1 * a + n.x, s = e.x2 * a + n.x, o = e.y1 * a + n.y, u = e.y2 * a + n.y; + return { + x1: i, + x2: s, + y1: o, + y2: u, + w: s - i, + h: u - o + }; + }, Or.dirtyCompoundBoundsCache = function() { + var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1, e = this.cy(); + return !e.styleEnabled() || !e.hasCompoundNodes() ? this : (this.forEachUp(function(r) { + if (r.isParent()) { + var a = r._private; + a.compoundBoundsClean = !1, a.bbCache = null, t || r.emitAndNotify("bounds"); + } + }), this); + }, Or.updateCompoundBounds = function() { + var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1, e = this.cy(); + if (!e.styleEnabled() || !e.hasCompoundNodes()) + return this; + if (!t && e.batching()) + return this; + function r(s) { + if (!s.isParent()) + return; + var o = s._private, u = s.children(), l = s.pstyle("compound-sizing-wrt-labels").value === "include", f = { + width: { + val: s.pstyle("min-width").pfValue, + left: s.pstyle("min-width-bias-left"), + right: s.pstyle("min-width-bias-right") + }, + height: { + val: s.pstyle("min-height").pfValue, + top: s.pstyle("min-height-bias-top"), + bottom: s.pstyle("min-height-bias-bottom") + } + }, h = u.boundingBox({ + includeLabels: l, + includeOverlays: !1, + // updating the compound bounds happens outside of the regular + // cache cycle (i.e. before fired events) + useCache: !1 + }), v = o.position; + (h.w === 0 || h.h === 0) && (h = { + w: s.pstyle("width").pfValue, + h: s.pstyle("height").pfValue + }, h.x1 = v.x - h.w / 2, h.x2 = v.x + h.w / 2, h.y1 = v.y - h.h / 2, h.y2 = v.y + h.h / 2); + function d(D, F, G) { + var N = 0, X = 0, B = F + G; + return D > 0 && B > 0 && (N = F / B * D, X = G / B * D), { + biasDiff: N, + biasComplementDiff: X + }; + } + function c(D, F, G, N) { + if (G.units === "%") + switch (N) { + case "width": + return D > 0 ? G.pfValue * D : 0; + case "height": + return F > 0 ? G.pfValue * F : 0; + case "average": + return D > 0 && F > 0 ? G.pfValue * (D + F) / 2 : 0; + case "min": + return D > 0 && F > 0 ? D > F ? G.pfValue * F : G.pfValue * D : 0; + case "max": + return D > 0 && F > 0 ? D > F ? G.pfValue * D : G.pfValue * F : 0; + default: + return 0; + } + else + return G.units === "px" ? G.pfValue : 0; + } + var y = f.width.left.value; + f.width.left.units === "px" && f.width.val > 0 && (y = y * 100 / f.width.val); + var p = f.width.right.value; + f.width.right.units === "px" && f.width.val > 0 && (p = p * 100 / f.width.val); + var g = f.height.top.value; + f.height.top.units === "px" && f.height.val > 0 && (g = g * 100 / f.height.val); + var m = f.height.bottom.value; + f.height.bottom.units === "px" && f.height.val > 0 && (m = m * 100 / f.height.val); + var b = d(f.width.val - h.w, y, p), E = b.biasDiff, M = b.biasComplementDiff, L = d(f.height.val - h.h, g, m), w = L.biasDiff, k = L.biasComplementDiff; + o.autoPadding = c(h.w, h.h, s.pstyle("padding"), s.pstyle("padding-relative-to").value), o.autoWidth = Math.max(h.w, f.width.val), v.x = (-E + h.x1 + h.x2 + M) / 2, o.autoHeight = Math.max(h.h, f.height.val), v.y = (-w + h.y1 + h.y2 + k) / 2; + } + for (var a = 0; a < this.length; a++) { + var n = this[a], i = n._private; + (!i.compoundBoundsClean || t) && (r(n), e.batching() || (i.compoundBoundsClean = !0)); + } + return this; + }; + var Qt = function(e) { + return e === 1 / 0 || e === -1 / 0 ? 0 : e; + }, rr = function(e, r, a, n, i) { + n - r === 0 || i - a === 0 || r == null || a == null || n == null || i == null || (e.x1 = r < e.x1 ? r : e.x1, e.x2 = n > e.x2 ? n : e.x2, e.y1 = a < e.y1 ? a : e.y1, e.y2 = i > e.y2 ? i : e.y2, e.w = e.x2 - e.x1, e.h = e.y2 - e.y1); + }, Vr = function(e, r) { + return r == null ? e : rr(e, r.x1, r.y1, r.x2, r.y2); + }, Ua = function(e, r, a) { + return er(e, r, a); + }, On = function(e, r, a) { + if (!r.cy().headless()) { + var n = r._private, i = n.rstyle, s = i.arrowWidth / 2, o = r.pstyle(a + "-arrow-shape").value, u, l; + if (o !== "none") { + a === "source" ? (u = i.srcX, l = i.srcY) : a === "target" ? (u = i.tgtX, l = i.tgtY) : (u = i.midX, l = i.midY); + var f = n.arrowBounds = n.arrowBounds || {}, h = f[a] = f[a] || {}; + h.x1 = u - s, h.y1 = l - s, h.x2 = u + s, h.y2 = l + s, h.w = h.x2 - h.x1, h.h = h.y2 - h.y1, dn(h, 1), rr(e, h.x1, h.y1, h.x2, h.y2); + } + } + }, Ai = function(e, r, a) { + if (!r.cy().headless()) { + var n; + a ? n = a + "-" : n = ""; + var i = r._private, s = i.rstyle, o = r.pstyle(n + "label").strValue; + if (o) { + var u = r.pstyle("text-halign"), l = r.pstyle("text-valign"), f = Ua(s, "labelWidth", a), h = Ua(s, "labelHeight", a), v = Ua(s, "labelX", a), d = Ua(s, "labelY", a), c = r.pstyle(n + "text-margin-x").pfValue, y = r.pstyle(n + "text-margin-y").pfValue, p = r.isEdge(), g = r.pstyle(n + "text-rotation"), m = r.pstyle("text-outline-width").pfValue, b = r.pstyle("text-border-width").pfValue, E = b / 2, M = r.pstyle("text-background-padding").pfValue, L = 2, w = h, k = f, D = k / 2, F = w / 2, G, N, X, B; + if (p) + G = v - D, N = v + D, X = d - F, B = d + F; + else { + switch (u.value) { + case "left": + G = v - k, N = v; + break; + case "center": + G = v - D, N = v + D; + break; + case "right": + G = v, N = v + k; + break; + } + switch (l.value) { + case "top": + X = d - w, B = d; + break; + case "center": + X = d - F, B = d + F; + break; + case "bottom": + X = d, B = d + w; + break; + } + } + G += c - Math.max(m, E) - M - L, N += c + Math.max(m, E) + M + L, X += y - Math.max(m, E) - M - L, B += y + Math.max(m, E) + M + L; + var re = a || "main", K = i.labelBounds, W = K[re] = K[re] || {}; + W.x1 = G, W.y1 = X, W.x2 = N, W.y2 = B, W.w = N - G, W.h = B - X; + var ae = p && g.strValue === "autorotate", ue = g.pfValue != null && g.pfValue !== 0; + if (ae || ue) { + var me = ae ? Ua(i.rstyle, "labelAngle", a) : g.pfValue, ie = Math.cos(me), ge = Math.sin(me), Ee = (G + N) / 2, Ce = (X + B) / 2; + if (!p) { + switch (u.value) { + case "left": + Ee = N; + break; + case "right": + Ee = G; + break; + } + switch (l.value) { + case "top": + Ce = B; + break; + case "bottom": + Ce = X; + break; + } + } + var we = function(Xe, Ie) { + return Xe = Xe - Ee, Ie = Ie - Ce, { + x: Xe * ie - Ie * ge + Ee, + y: Xe * ge + Ie * ie + Ce + }; + }, De = we(G, X), se = we(G, B), xe = we(N, X), Le = we(N, B); + G = Math.min(De.x, se.x, xe.x, Le.x), N = Math.max(De.x, se.x, xe.x, Le.x), X = Math.min(De.y, se.y, xe.y, Le.y), B = Math.max(De.y, se.y, xe.y, Le.y); + } + var Se = re + "Rot", Oe = K[Se] = K[Se] || {}; + Oe.x1 = G, Oe.y1 = X, Oe.x2 = N, Oe.y2 = B, Oe.w = N - G, Oe.h = B - X, rr(e, G, X, N, B), rr(i.labelBounds.all, G, X, N, B); + } + return e; + } + }, rd = function(e, r) { + if (!r.cy().headless()) { + var a = r.pstyle("outline-opacity").value, n = r.pstyle("outline-width").value; + if (a > 0 && n > 0) { + var i = r.pstyle("outline-offset").value, s = r.pstyle("shape").value, o = n + i, u = (e.w + o * 2) / e.w, l = (e.h + o * 2) / e.h, f = 0, h = 0; + ["diamond", "pentagon", "round-triangle"].includes(s) ? (u = (e.w + o * 2.4) / e.w, h = -o / 3.6) : ["concave-hexagon", "rhomboid", "right-rhomboid"].includes(s) ? u = (e.w + o * 2.4) / e.w : s === "star" ? (u = (e.w + o * 2.8) / e.w, l = (e.h + o * 2.6) / e.h, h = -o / 3.8) : s === "triangle" ? (u = (e.w + o * 2.8) / e.w, l = (e.h + o * 2.4) / e.h, h = -o / 1.4) : s === "vee" && (u = (e.w + o * 4.4) / e.w, l = (e.h + o * 3.8) / e.h, h = -o * 0.5); + var v = e.h * l - e.h, d = e.w * u - e.w; + if (gn(e, [Math.ceil(v / 2), Math.ceil(d / 2)]), f != 0 || h !== 0) { + var c = Tf(e, f, h); + ws(e, c); + } + } + } + }, ad = function(e, r) { + var a = e._private.cy, n = a.styleEnabled(), i = a.headless(), s = Yt(), o = e._private, u = e.isNode(), l = e.isEdge(), f, h, v, d, c, y, p = o.rstyle, g = u && n ? e.pstyle("bounds-expansion").pfValue : [0], m = function(Ue) { + return Ue.pstyle("display").value !== "none"; + }, b = !n || m(e) && (!l || m(e.source()) && m(e.target())); + if (b) { + var E = 0, M = 0; + n && r.includeOverlays && (E = e.pstyle("overlay-opacity").value, E !== 0 && (M = e.pstyle("overlay-padding").value)); + var L = 0, w = 0; + n && r.includeUnderlays && (L = e.pstyle("underlay-opacity").value, L !== 0 && (w = e.pstyle("underlay-padding").value)); + var k = Math.max(M, w), D = 0, F = 0; + if (n && (D = e.pstyle("width").pfValue, F = D / 2), u && r.includeNodes) { + var G = e.position(); + c = G.x, y = G.y; + var N = e.outerWidth(), X = N / 2, B = e.outerHeight(), re = B / 2; + f = c - X, h = c + X, v = y - re, d = y + re, rr(s, f, v, h, d), n && r.includeOutlines && rd(s, e); + } else if (l && r.includeEdges) + if (n && !i) { + var K = e.pstyle("curve-style").strValue; + if (f = Math.min(p.srcX, p.midX, p.tgtX), h = Math.max(p.srcX, p.midX, p.tgtX), v = Math.min(p.srcY, p.midY, p.tgtY), d = Math.max(p.srcY, p.midY, p.tgtY), f -= F, h += F, v -= F, d += F, rr(s, f, v, h, d), K === "haystack") { + var W = p.haystackPts; + if (W && W.length === 2) { + if (f = W[0].x, v = W[0].y, h = W[1].x, d = W[1].y, f > h) { + var ae = f; + f = h, h = ae; + } + if (v > d) { + var ue = v; + v = d, d = ue; + } + rr(s, f - F, v - F, h + F, d + F); + } + } else if (K === "bezier" || K === "unbundled-bezier" || K === "segments" || K === "taxi") { + var me; + switch (K) { + case "bezier": + case "unbundled-bezier": + me = p.bezierPts; + break; + case "segments": + case "taxi": + me = p.linePts; + break; + } + if (me != null) + for (var ie = 0; ie < me.length; ie++) { + var ge = me[ie]; + f = ge.x - F, h = ge.x + F, v = ge.y - F, d = ge.y + F, rr(s, f, v, h, d); + } + } + } else { + var Ee = e.source(), Ce = Ee.position(), we = e.target(), De = we.position(); + if (f = Ce.x, h = De.x, v = Ce.y, d = De.y, f > h) { + var se = f; + f = h, h = se; + } + if (v > d) { + var xe = v; + v = d, d = xe; + } + f -= F, h += F, v -= F, d += F, rr(s, f, v, h, d); + } + if (n && r.includeEdges && l && (On(s, e, "mid-source"), On(s, e, "mid-target"), On(s, e, "source"), On(s, e, "target")), n) { + var Le = e.pstyle("ghost").value === "yes"; + if (Le) { + var Se = e.pstyle("ghost-offset-x").pfValue, Oe = e.pstyle("ghost-offset-y").pfValue; + rr(s, s.x1 + Se, s.y1 + Oe, s.x2 + Se, s.y2 + Oe); + } + } + var Fe = o.bodyBounds = o.bodyBounds || {}; + xs(Fe, s), gn(Fe, g), dn(Fe, 1), n && (f = s.x1, h = s.x2, v = s.y1, d = s.y2, rr(s, f - k, v - k, h + k, d + k)); + var Xe = o.overlayBounds = o.overlayBounds || {}; + xs(Xe, s), gn(Xe, g), dn(Xe, 1); + var Ie = o.labelBounds = o.labelBounds || {}; + Ie.all != null ? xf(Ie.all) : Ie.all = Yt(), n && r.includeLabels && (r.includeMainLabels && Ai(s, e, null), l && (r.includeSourceLabels && Ai(s, e, "source"), r.includeTargetLabels && Ai(s, e, "target"))); + } + return s.x1 = Qt(s.x1), s.y1 = Qt(s.y1), s.x2 = Qt(s.x2), s.y2 = Qt(s.y2), s.w = Qt(s.x2 - s.x1), s.h = Qt(s.y2 - s.y1), s.w > 0 && s.h > 0 && b && (gn(s, g), dn(s, 1)), s; + }, yo = function(e) { + var r = 0, a = function(s) { + return (s ? 1 : 0) << r++; + }, n = 0; + return n += a(e.incudeNodes), n += a(e.includeEdges), n += a(e.includeLabels), n += a(e.includeMainLabels), n += a(e.includeSourceLabels), n += a(e.includeTargetLabels), n += a(e.includeOverlays), n += a(e.includeOutlines), n; + }, mo = function(e) { + if (e.isEdge()) { + var r = e.source().position(), a = e.target().position(), n = function(s) { + return Math.round(s); + }; + return $u([n(r.x), n(r.y), n(a.x), n(a.y)]); + } else + return 0; + }, bo = function(e, r) { + var a = e._private, n, i = e.isEdge(), s = r == null ? Eo : yo(r), o = s === Eo, u = mo(e), l = a.bbCachePosKey === u, f = r.useCache && l, h = function(y) { + return y._private.bbCache == null || y._private.styleDirty; + }, v = !f || h(e) || i && h(e.source()) || h(e.target()); + if (v ? (l || e.recalculateRenderedStyle(f), n = ad(e, $a), a.bbCache = n, a.bbCachePosKey = u) : n = a.bbCache, !o) { + var d = e.isNode(); + n = Yt(), (r.includeNodes && d || r.includeEdges && !d) && (r.includeOverlays ? Vr(n, a.overlayBounds) : Vr(n, a.bodyBounds)), r.includeLabels && (r.includeMainLabels && (!i || r.includeSourceLabels && r.includeTargetLabels) ? Vr(n, a.labelBounds.all) : (r.includeMainLabels && Vr(n, a.labelBounds.mainRot), r.includeSourceLabels && Vr(n, a.labelBounds.sourceRot), r.includeTargetLabels && Vr(n, a.labelBounds.targetRot))), n.w = n.x2 - n.x1, n.h = n.y2 - n.y1; + } + return n; + }, $a = { + includeNodes: !0, + includeEdges: !0, + includeLabels: !0, + includeMainLabels: !0, + includeSourceLabels: !0, + includeTargetLabels: !0, + includeOverlays: !0, + includeUnderlays: !0, + includeOutlines: !0, + useCache: !0 + }, Eo = yo($a), wo = At($a); + Or.boundingBox = function(t) { + var e; + if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (t === void 0 || t.useCache === void 0 || t.useCache === !0)) + t === void 0 ? t = $a : t = wo(t), e = bo(this[0], t); + else { + e = Yt(), t = t || $a; + var r = wo(t), a = this, n = a.cy(), i = n.styleEnabled(); + if (i) + for (var s = 0; s < a.length; s++) { + var o = a[s], u = o._private, l = mo(o), f = u.bbCachePosKey === l, h = r.useCache && f && !u.styleDirty; + o.recalculateRenderedStyle(h); + } + this.updateCompoundBounds(!t.useCache); + for (var v = 0; v < a.length; v++) { + var d = a[v]; + Vr(e, bo(d, r)); + } + } + return e.x1 = Qt(e.x1), e.y1 = Qt(e.y1), e.x2 = Qt(e.x2), e.y2 = Qt(e.y2), e.w = Qt(e.x2 - e.x1), e.h = Qt(e.y2 - e.y1), e; + }, Or.dirtyBoundingBoxCache = function() { + for (var t = 0; t < this.length; t++) { + var e = this[t]._private; + e.bbCache = null, e.bbCachePosKey = null, e.bodyBounds = null, e.overlayBounds = null, e.labelBounds.all = null, e.labelBounds.source = null, e.labelBounds.target = null, e.labelBounds.main = null, e.labelBounds.sourceRot = null, e.labelBounds.targetRot = null, e.labelBounds.mainRot = null, e.arrowBounds.source = null, e.arrowBounds.target = null, e.arrowBounds["mid-source"] = null, e.arrowBounds["mid-target"] = null; + } + return this.emitAndNotify("bounds"), this; + }, Or.boundingBoxAt = function(t) { + var e = this.nodes(), r = this.cy(), a = r.hasCompoundNodes(), n = r.collection(); + if (a && (n = e.filter(function(l) { + return l.isParent(); + }), e = e.not(n)), S(t)) { + var i = t; + t = function() { + return i; + }; + } + var s = function(f, h) { + return f._private.bbAtOldPos = t(f, h); + }, o = function(f) { + return f._private.bbAtOldPos; + }; + r.startBatch(), e.forEach(s).silentPositions(t), a && (n.dirtyCompoundBoundsCache(), n.dirtyBoundingBoxCache(), n.updateCompoundBounds(!0)); + var u = wf(this.boundingBox({ + useCache: !1 + })); + return e.silentPositions(o), a && (n.dirtyCompoundBoundsCache(), n.dirtyBoundingBoxCache(), n.updateCompoundBounds(!0)), r.endBatch(), u; + }, va.boundingbox = va.bb = va.boundingBox, va.renderedBoundingbox = va.renderedBoundingBox; + var nd = Or, _a, Ya; + _a = Ya = {}; + var xo = function(e) { + e.uppercaseName = Pt(e.name), e.autoName = "auto" + e.uppercaseName, e.labelName = "label" + e.uppercaseName, e.outerName = "outer" + e.uppercaseName, e.uppercaseOuterName = Pt(e.outerName), _a[e.name] = function() { + var a = this[0], n = a._private, i = n.cy, s = i._private.styleEnabled; + if (a) + if (s) { + if (a.isParent()) + return a.updateCompoundBounds(), n[e.autoName] || 0; + var o = a.pstyle(e.name); + switch (o.strValue) { + case "label": + return a.recalculateRenderedStyle(), n.rstyle[e.labelName] || 0; + default: + return o.pfValue; + } + } else + return 1; + }, _a["outer" + e.uppercaseName] = function() { + var a = this[0], n = a._private, i = n.cy, s = i._private.styleEnabled; + if (a) + if (s) { + var o = a[e.name](), u = a.pstyle("border-width").pfValue, l = 2 * a.padding(); + return o + u + l; + } else + return 1; + }, _a["rendered" + e.uppercaseName] = function() { + var a = this[0]; + if (a) { + var n = a[e.name](); + return n * this.cy().zoom(); + } + }, _a["rendered" + e.uppercaseOuterName] = function() { + var a = this[0]; + if (a) { + var n = a[e.outerName](); + return n * this.cy().zoom(); + } + }; + }; + xo({ + name: "width" + }), xo({ + name: "height" + }), Ya.padding = function() { + var t = this[0], e = t._private; + return t.isParent() ? (t.updateCompoundBounds(), e.autoPadding !== void 0 ? e.autoPadding : t.pstyle("padding").pfValue) : t.pstyle("padding").pfValue; + }, Ya.paddedHeight = function() { + var t = this[0]; + return t.height() + 2 * t.padding(); + }, Ya.paddedWidth = function() { + var t = this[0]; + return t.width() + 2 * t.padding(); + }; + var id = Ya, sd = function(e, r) { + if (e.isEdge()) + return r(e); + }, od = function(e, r) { + if (e.isEdge()) { + var a = e.cy(); + return vn(r(e), a.zoom(), a.pan()); + } + }, ld = function(e, r) { + if (e.isEdge()) { + var a = e.cy(), n = a.pan(), i = a.zoom(); + return r(e).map(function(s) { + return vn(s, i, n); + }); + } + }, ud = function(e) { + return e.renderer().getControlPoints(e); + }, fd = function(e) { + return e.renderer().getSegmentPoints(e); + }, hd = function(e) { + return e.renderer().getSourceEndpoint(e); + }, vd = function(e) { + return e.renderer().getTargetEndpoint(e); + }, cd = function(e) { + return e.renderer().getEdgeMidpoint(e); + }, To = { + controlPoints: { + get: ud, + mult: !0 + }, + segmentPoints: { + get: fd, + mult: !0 + }, + sourceEndpoint: { + get: hd + }, + targetEndpoint: { + get: vd + }, + midpoint: { + get: cd + } + }, dd = function(e) { + return "rendered" + e[0].toUpperCase() + e.substr(1); + }, gd = Object.keys(To).reduce(function(t, e) { + var r = To[e], a = dd(e); + return t[e] = function() { + return sd(this, r.get); + }, r.mult ? t[a] = function() { + return ld(this, r.get); + } : t[a] = function() { + return od(this, r.get); + }, t; + }, {}), pd = He({}, td, nd, id, gd); + /*! + Event object based on jQuery events, MIT license + + https://jquery.org/license/ + https://tldrlegal.com/license/mit-license + https://github.com/jquery/jquery/blob/master/src/event.js + */ + var Co = function(e, r) { + this.recycle(e, r); + }; + function Ha() { + return !1; + } + function Nn() { + return !0; + } + Co.prototype = { + instanceString: function() { + return "event"; + }, + recycle: function(e, r) { + if (this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = Ha, e != null && e.preventDefault ? (this.type = e.type, this.isDefaultPrevented = e.defaultPrevented ? Nn : Ha) : e != null && e.type ? r = e : this.type = e, r != null && (this.originalEvent = r.originalEvent, this.type = r.type != null ? r.type : this.type, this.cy = r.cy, this.target = r.target, this.position = r.position, this.renderedPosition = r.renderedPosition, this.namespace = r.namespace, this.layout = r.layout), this.cy != null && this.position != null && this.renderedPosition == null) { + var a = this.position, n = this.cy.zoom(), i = this.cy.pan(); + this.renderedPosition = { + x: a.x * n + i.x, + y: a.y * n + i.y + }; + } + this.timeStamp = e && e.timeStamp || Date.now(); + }, + preventDefault: function() { + this.isDefaultPrevented = Nn; + var e = this.originalEvent; + e && e.preventDefault && e.preventDefault(); + }, + stopPropagation: function() { + this.isPropagationStopped = Nn; + var e = this.originalEvent; + e && e.stopPropagation && e.stopPropagation(); + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = Nn, this.stopPropagation(); + }, + isDefaultPrevented: Ha, + isPropagationStopped: Ha, + isImmediatePropagationStopped: Ha + }; + var Do = /^([^.]+)(\.(?:[^.]+))?$/, yd = ".*", So = { + qualifierCompare: function(e, r) { + return e === r; + }, + eventMatches: function() { + return !0; + }, + addEventFields: function() { + }, + callbackContext: function(e) { + return e; + }, + beforeEmit: function() { + }, + afterEmit: function() { + }, + bubble: function() { + return !1; + }, + parent: function() { + return null; + }, + context: null + }, Lo = Object.keys(So), md = {}; + function In() { + for (var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : md, e = arguments.length > 1 ? arguments[1] : void 0, r = 0; r < Lo.length; r++) { + var a = Lo[r]; + this[a] = t[a] || So[a]; + } + this.context = e || this.context, this.listeners = [], this.emitting = 0; + } + var Nr = In.prototype, Ao = function(e, r, a, n, i, s, o) { + H(n) && (i = n, n = null), o && (s == null ? s = o : s = He({}, s, o)); + for (var u = te(a) ? a : a.split(/\s+/), l = 0; l < u.length; l++) { + var f = u[l]; + if (!Re(f)) { + var h = f.match(Do); + if (h) { + var v = h[1], d = h[2] ? h[2] : null, c = r(e, f, v, d, n, i, s); + if (c === !1) + break; + } + } + } + }, Oo = function(e, r) { + return e.addEventFields(e.context, r), new Co(r.type, r); + }, bd = function(e, r, a) { + if (dt(a)) { + r(e, a); + return; + } else if (S(a)) { + r(e, Oo(e, a)); + return; + } + for (var n = te(a) ? a : a.split(/\s+/), i = 0; i < n.length; i++) { + var s = n[i]; + if (!Re(s)) { + var o = s.match(Do); + if (o) { + var u = o[1], l = o[2] ? o[2] : null, f = Oo(e, { + type: u, + namespace: l, + target: e.context + }); + r(e, f); + } + } + } + }; + Nr.on = Nr.addListener = function(t, e, r, a, n) { + return Ao(this, function(i, s, o, u, l, f, h) { + H(f) && i.listeners.push({ + event: s, + // full event string + callback: f, + // callback to run + type: o, + // the event type (e.g. 'click') + namespace: u, + // the event namespace (e.g. ".foo") + qualifier: l, + // a restriction on whether to match this emitter + conf: h + // additional configuration + }); + }, t, e, r, a, n), this; + }, Nr.one = function(t, e, r, a) { + return this.on(t, e, r, a, { + one: !0 + }); + }, Nr.removeListener = Nr.off = function(t, e, r, a) { + var n = this; + this.emitting !== 0 && (this.listeners = Wu(this.listeners)); + for (var i = this.listeners, s = function(l) { + var f = i[l]; + Ao(n, function(h, v, d, c, y, p) { + if ((f.type === d || t === "*") && (!c && f.namespace !== ".*" || f.namespace === c) && (!y || h.qualifierCompare(f.qualifier, y)) && (!p || f.callback === p)) + return i.splice(l, 1), !1; + }, t, e, r, a); + }, o = i.length - 1; o >= 0; o--) + s(o); + return this; + }, Nr.removeAllListeners = function() { + return this.removeListener("*"); + }, Nr.emit = Nr.trigger = function(t, e, r) { + var a = this.listeners, n = a.length; + return this.emitting++, te(e) || (e = [e]), bd(this, function(i, s) { + r != null && (a = [{ + event: s.event, + type: s.type, + namespace: s.namespace, + callback: r + }], n = a.length); + for (var o = function(f) { + var h = a[f]; + if (h.type === s.type && (!h.namespace || h.namespace === s.namespace || h.namespace === yd) && i.eventMatches(i.context, h, s)) { + var v = [s]; + e != null && Ku(v, e), i.beforeEmit(i.context, h, s), h.conf && h.conf.one && (i.listeners = i.listeners.filter(function(y) { + return y !== h; + })); + var d = i.callbackContext(i.context, h, s), c = h.callback.apply(d, v); + i.afterEmit(i.context, h, s), c === !1 && (s.stopPropagation(), s.preventDefault()); + } + }, u = 0; u < n; u++) + o(u); + i.bubble(i.context) && !s.isPropagationStopped() && i.parent(i.context).emit(s, e); + }, t), this.emitting--, this; + }; + var Ed = { + qualifierCompare: function(e, r) { + return e == null || r == null ? e == null && r == null : e.sameText(r); + }, + eventMatches: function(e, r, a) { + var n = r.qualifier; + return n != null ? e !== a.target && Ae(a.target) && n.matches(a.target) : !0; + }, + addEventFields: function(e, r) { + r.cy = e.cy(), r.target = e; + }, + callbackContext: function(e, r, a) { + return r.qualifier != null ? a.target : e; + }, + beforeEmit: function(e, r) { + r.conf && r.conf.once && r.conf.onceCollection.removeListener(r.event, r.qualifier, r.callback); + }, + bubble: function() { + return !0; + }, + parent: function(e) { + return e.isChild() ? e.parent() : e.cy(); + } + }, Mn = function(e) { + return ee(e) ? new Sr(e) : e; + }, No = { + createEmitter: function() { + for (var e = 0; e < this.length; e++) { + var r = this[e], a = r._private; + a.emitter || (a.emitter = new In(Ed, r)); + } + return this; + }, + emitter: function() { + return this._private.emitter; + }, + on: function(e, r, a) { + for (var n = Mn(r), i = 0; i < this.length; i++) { + var s = this[i]; + s.emitter().on(e, n, a); + } + return this; + }, + removeListener: function(e, r, a) { + for (var n = Mn(r), i = 0; i < this.length; i++) { + var s = this[i]; + s.emitter().removeListener(e, n, a); + } + return this; + }, + removeAllListeners: function() { + for (var e = 0; e < this.length; e++) { + var r = this[e]; + r.emitter().removeAllListeners(); + } + return this; + }, + one: function(e, r, a) { + for (var n = Mn(r), i = 0; i < this.length; i++) { + var s = this[i]; + s.emitter().one(e, n, a); + } + return this; + }, + once: function(e, r, a) { + for (var n = Mn(r), i = 0; i < this.length; i++) { + var s = this[i]; + s.emitter().on(e, n, a, { + once: !0, + onceCollection: this + }); + } + }, + emit: function(e, r) { + for (var a = 0; a < this.length; a++) { + var n = this[a]; + n.emitter().emit(e, r); + } + return this; + }, + emitAndNotify: function(e, r) { + if (this.length !== 0) + return this.cy().notify(e, this), this.emit(e, r), this; + } + }; + ct.eventAliasesOn(No); + var Io = { + nodes: function(e) { + return this.filter(function(r) { + return r.isNode(); + }).filter(e); + }, + edges: function(e) { + return this.filter(function(r) { + return r.isEdge(); + }).filter(e); + }, + // internal helper to get nodes and edges as separate collections with single iteration over elements + byGroup: function() { + for (var e = this.spawn(), r = this.spawn(), a = 0; a < this.length; a++) { + var n = this[a]; + n.isNode() ? e.push(n) : r.push(n); + } + return { + nodes: e, + edges: r + }; + }, + filter: function(e, r) { + if (e === void 0) + return this; + if (ee(e) || pe(e)) + return new Sr(e).filter(this); + if (H(e)) { + for (var a = this.spawn(), n = this, i = 0; i < n.length; i++) { + var s = n[i], o = r ? e.apply(r, [s, i, n]) : e(s, i, n); + o && a.push(s); + } + return a; + } + return this.spawn(); + }, + not: function(e) { + if (e) { + ee(e) && (e = this.filter(e)); + for (var r = this.spawn(), a = 0; a < this.length; a++) { + var n = this[a], i = e.has(n); + i || r.push(n); + } + return r; + } else + return this; + }, + absoluteComplement: function() { + var e = this.cy(); + return e.mutableElements().not(this); + }, + intersect: function(e) { + if (ee(e)) { + var r = e; + return this.filter(r); + } + for (var a = this.spawn(), n = this, i = e, s = this.length < e.length, o = s ? n : i, u = s ? i : n, l = 0; l < o.length; l++) { + var f = o[l]; + u.has(f) && a.push(f); + } + return a; + }, + xor: function(e) { + var r = this._private.cy; + ee(e) && (e = r.$(e)); + var a = this.spawn(), n = this, i = e, s = function(u, l) { + for (var f = 0; f < u.length; f++) { + var h = u[f], v = h._private.data.id, d = l.hasElementWithId(v); + d || a.push(h); + } + }; + return s(n, i), s(i, n), a; + }, + diff: function(e) { + var r = this._private.cy; + ee(e) && (e = r.$(e)); + var a = this.spawn(), n = this.spawn(), i = this.spawn(), s = this, o = e, u = function(f, h, v) { + for (var d = 0; d < f.length; d++) { + var c = f[d], y = c._private.data.id, p = h.hasElementWithId(y); + p ? i.merge(c) : v.push(c); + } + }; + return u(s, o, a), u(o, s, n), { + left: a, + right: n, + both: i + }; + }, + add: function(e) { + var r = this._private.cy; + if (!e) + return this; + if (ee(e)) { + var a = e; + e = r.mutableElements().filter(a); + } + for (var n = this.spawnSelf(), i = 0; i < e.length; i++) { + var s = e[i], o = !this.has(s); + o && n.push(s); + } + return n; + }, + // in place merge on calling collection + merge: function(e) { + var r = this._private, a = r.cy; + if (!e) + return this; + if (e && ee(e)) { + var n = e; + e = a.mutableElements().filter(n); + } + for (var i = r.map, s = 0; s < e.length; s++) { + var o = e[s], u = o._private.data.id, l = !i.has(u); + if (l) { + var f = this.length++; + this[f] = o, i.set(u, { + ele: o, + index: f + }); + } + } + return this; + }, + unmergeAt: function(e) { + var r = this[e], a = r.id(), n = this._private, i = n.map; + this[e] = void 0, i.delete(a); + var s = e === this.length - 1; + if (this.length > 1 && !s) { + var o = this.length - 1, u = this[o], l = u._private.data.id; + this[o] = void 0, this[e] = u, i.set(l, { + ele: u, + index: e + }); + } + return this.length--, this; + }, + // remove single ele in place in calling collection + unmergeOne: function(e) { + e = e[0]; + var r = this._private, a = e._private.data.id, n = r.map, i = n.get(a); + if (!i) + return this; + var s = i.index; + return this.unmergeAt(s), this; + }, + // remove eles in place on calling collection + unmerge: function(e) { + var r = this._private.cy; + if (!e) + return this; + if (e && ee(e)) { + var a = e; + e = r.mutableElements().filter(a); + } + for (var n = 0; n < e.length; n++) + this.unmergeOne(e[n]); + return this; + }, + unmergeBy: function(e) { + for (var r = this.length - 1; r >= 0; r--) { + var a = this[r]; + e(a) && this.unmergeAt(r); + } + return this; + }, + map: function(e, r) { + for (var a = [], n = this, i = 0; i < n.length; i++) { + var s = n[i], o = r ? e.apply(r, [s, i, n]) : e(s, i, n); + a.push(o); + } + return a; + }, + reduce: function(e, r) { + for (var a = r, n = this, i = 0; i < n.length; i++) + a = e(a, n[i], i, n); + return a; + }, + max: function(e, r) { + for (var a = -1 / 0, n, i = this, s = 0; s < i.length; s++) { + var o = i[s], u = r ? e.apply(r, [o, s, i]) : e(o, s, i); + u > a && (a = u, n = o); + } + return { + value: a, + ele: n + }; + }, + min: function(e, r) { + for (var a = 1 / 0, n, i = this, s = 0; s < i.length; s++) { + var o = i[s], u = r ? e.apply(r, [o, s, i]) : e(o, s, i); + u < a && (a = u, n = o); + } + return { + value: a, + ele: n + }; + } + }, lt = Io; + lt.u = lt["|"] = lt["+"] = lt.union = lt.or = lt.add, lt["\\"] = lt["!"] = lt["-"] = lt.difference = lt.relativeComplement = lt.subtract = lt.not, lt.n = lt["&"] = lt["."] = lt.and = lt.intersection = lt.intersect, lt["^"] = lt["(+)"] = lt["(-)"] = lt.symmetricDifference = lt.symdiff = lt.xor, lt.fnFilter = lt.filterFn = lt.stdFilter = lt.filter, lt.complement = lt.abscomp = lt.absoluteComplement; + var wd = { + isNode: function() { + return this.group() === "nodes"; + }, + isEdge: function() { + return this.group() === "edges"; + }, + isLoop: function() { + return this.isEdge() && this.source()[0] === this.target()[0]; + }, + isSimple: function() { + return this.isEdge() && this.source()[0] !== this.target()[0]; + }, + group: function() { + var e = this[0]; + if (e) + return e._private.group; + } + }, Mo = function(e, r) { + var a = e.cy(), n = a.hasCompoundNodes(); + function i(f) { + var h = f.pstyle("z-compound-depth"); + return h.value === "auto" ? n ? f.zDepth() : 0 : h.value === "bottom" ? -1 : h.value === "top" ? ii : 0; + } + var s = i(e) - i(r); + if (s !== 0) + return s; + function o(f) { + var h = f.pstyle("z-index-compare"); + return h.value === "auto" && f.isNode() ? 1 : 0; + } + var u = o(e) - o(r); + if (u !== 0) + return u; + var l = e.pstyle("z-index").value - r.pstyle("z-index").value; + return l !== 0 ? l : e.poolIndex() - r.poolIndex(); + }, Rn = { + forEach: function(e, r) { + if (H(e)) + for (var a = this.length, n = 0; n < a; n++) { + var i = this[n], s = r ? e.apply(r, [i, n, this]) : e(i, n, this); + if (s === !1) + break; + } + return this; + }, + toArray: function() { + for (var e = [], r = 0; r < this.length; r++) + e.push(this[r]); + return e; + }, + slice: function(e, r) { + var a = [], n = this.length; + r == null && (r = n), e == null && (e = 0), e < 0 && (e = n + e), r < 0 && (r = n + r); + for (var i = e; i >= 0 && i < r && i < n; i++) + a.push(this[i]); + return this.spawn(a); + }, + size: function() { + return this.length; + }, + eq: function(e) { + return this[e] || this.spawn(); + }, + first: function() { + return this[0] || this.spawn(); + }, + last: function() { + return this[this.length - 1] || this.spawn(); + }, + empty: function() { + return this.length === 0; + }, + nonempty: function() { + return !this.empty(); + }, + sort: function(e) { + if (!H(e)) + return this; + var r = this.toArray().sort(e); + return this.spawn(r); + }, + sortByZIndex: function() { + return this.sort(Mo); + }, + zDepth: function() { + var e = this[0]; + if (e) { + var r = e._private, a = r.group; + if (a === "nodes") { + var n = r.data.parent ? e.parents().size() : 0; + return e.isParent() ? n : ii - 1; + } else { + var i = r.source, s = r.target, o = i.zDepth(), u = s.zDepth(); + return Math.max(o, u, 0); + } + } + } + }; + Rn.each = Rn.forEach; + var xd = function() { + var e = "undefined", r = (typeof Symbol > "u" ? "undefined" : _(Symbol)) != e && _(Symbol.iterator) != e; + r && (Rn[Symbol.iterator] = function() { + var a = this, n = { + value: void 0, + done: !1 + }, i = 0, s = this.length; + return T({ + next: function() { + return i < s ? n.value = a[i++] : (n.value = void 0, n.done = !0), n; + } + }, Symbol.iterator, function() { + return this; + }); + }); + }; + xd(); + var Td = At({ + nodeDimensionsIncludeLabels: !1 + }), kn = { + // Calculates and returns node dimensions { x, y } based on options given + layoutDimensions: function(e) { + e = Td(e); + var r; + if (!this.takesUpSpace()) + r = { + w: 0, + h: 0 + }; + else if (e.nodeDimensionsIncludeLabels) { + var a = this.boundingBox(); + r = { + w: a.w, + h: a.h + }; + } else + r = { + w: this.outerWidth(), + h: this.outerHeight() + }; + return (r.w === 0 || r.h === 0) && (r.w = r.h = 1), r; + }, + // using standard layout options, apply position function (w/ or w/o animation) + layoutPositions: function(e, r, a) { + var n = this.nodes().filter(function(M) { + return !M.isParent(); + }), i = this.cy(), s = r.eles, o = function(L) { + return L.id(); + }, u = it(a, o); + e.emit({ + type: "layoutstart", + layout: e + }), e.animations = []; + var l = function(L, w, k) { + var D = { + x: w.x1 + w.w / 2, + y: w.y1 + w.h / 2 + }, F = { + // scale from center of bounding box (not necessarily 0,0) + x: (k.x - D.x) * L, + y: (k.y - D.y) * L + }; + return { + x: D.x + F.x, + y: D.y + F.y + }; + }, f = r.spacingFactor && r.spacingFactor !== 1, h = function() { + if (!f) + return null; + for (var L = Yt(), w = 0; w < n.length; w++) { + var k = n[w], D = u(k, w); + Cf(L, D.x, D.y); + } + return L; + }, v = h(), d = it(function(M, L) { + var w = u(M, L); + if (f) { + var k = Math.abs(r.spacingFactor); + w = l(k, v, w); + } + return r.transform != null && (w = r.transform(M, w)), w; + }, o); + if (r.animate) { + for (var c = 0; c < n.length; c++) { + var y = n[c], p = d(y, c), g = r.animateFilter == null || r.animateFilter(y, c); + if (g) { + var m = y.animation({ + position: p, + duration: r.animationDuration, + easing: r.animationEasing + }); + e.animations.push(m); + } else + y.position(p); + } + if (r.fit) { + var b = i.animation({ + fit: { + boundingBox: s.boundingBoxAt(d), + padding: r.padding + }, + duration: r.animationDuration, + easing: r.animationEasing + }); + e.animations.push(b); + } else if (r.zoom !== void 0 && r.pan !== void 0) { + var E = i.animation({ + zoom: r.zoom, + pan: r.pan, + duration: r.animationDuration, + easing: r.animationEasing + }); + e.animations.push(E); + } + e.animations.forEach(function(M) { + return M.play(); + }), e.one("layoutready", r.ready), e.emit({ + type: "layoutready", + layout: e + }), ia.all(e.animations.map(function(M) { + return M.promise(); + })).then(function() { + e.one("layoutstop", r.stop), e.emit({ + type: "layoutstop", + layout: e + }); + }); + } else + n.positions(d), r.fit && i.fit(r.eles, r.padding), r.zoom != null && i.zoom(r.zoom), r.pan && i.pan(r.pan), e.one("layoutready", r.ready), e.emit({ + type: "layoutready", + layout: e + }), e.one("layoutstop", r.stop), e.emit({ + type: "layoutstop", + layout: e + }); + return this; + }, + layout: function(e) { + var r = this.cy(); + return r.makeLayout(He({}, e, { + eles: this + })); + } + }; + kn.createLayout = kn.makeLayout = kn.layout; + function Ro(t, e, r) { + var a = r._private, n = a.styleCache = a.styleCache || [], i; + return (i = n[t]) != null || (i = n[t] = e(r)), i; + } + function Pn(t, e) { + return t = Pr(t), function(a) { + return Ro(t, e, a); + }; + } + function Bn(t, e) { + t = Pr(t); + var r = function(n) { + return e.call(n); + }; + return function() { + var n = this[0]; + if (n) + return Ro(t, r, n); + }; + } + var Ot = { + recalculateRenderedStyle: function(e) { + var r = this.cy(), a = r.renderer(), n = r.styleEnabled(); + return a && n && a.recalculateRenderedStyle(this, e), this; + }, + dirtyStyleCache: function() { + var e = this.cy(), r = function(i) { + return i._private.styleCache = null; + }; + if (e.hasCompoundNodes()) { + var a; + a = this.spawnSelf().merge(this.descendants()).merge(this.parents()), a.merge(a.connectedEdges()), a.forEach(r); + } else + this.forEach(function(n) { + r(n), n.connectedEdges().forEach(r); + }); + return this; + }, + // fully updates (recalculates) the style for the elements + updateStyle: function(e) { + var r = this._private.cy; + if (!r.styleEnabled()) + return this; + if (r.batching()) { + var a = r._private.batchStyleEles; + return a.merge(this), this; + } + var n = r.hasCompoundNodes(), i = this; + e = !!(e || e === void 0), n && (i = this.spawnSelf().merge(this.descendants()).merge(this.parents())); + var s = i; + return e ? s.emitAndNotify("style") : s.emit("style"), i.forEach(function(o) { + return o._private.styleDirty = !0; + }), this; + }, + // private: clears dirty flag and recalculates style + cleanStyle: function() { + var e = this.cy(); + if (e.styleEnabled()) + for (var r = 0; r < this.length; r++) { + var a = this[r]; + a._private.styleDirty && (a._private.styleDirty = !1, e.style().apply(a)); + } + }, + // get the internal parsed style object for the specified property + parsedStyle: function(e) { + var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0, a = this[0], n = a.cy(); + if (n.styleEnabled() && a) { + this.cleanStyle(); + var i = a._private.style[e]; + return i ?? (r ? n.style().getDefaultProperty(e) : null); + } + }, + numericStyle: function(e) { + var r = this[0]; + if (r.cy().styleEnabled() && r) { + var a = r.pstyle(e); + return a.pfValue !== void 0 ? a.pfValue : a.value; + } + }, + numericStyleUnits: function(e) { + var r = this[0]; + if (r.cy().styleEnabled() && r) + return r.pstyle(e).units; + }, + // get the specified css property as a rendered value (i.e. on-screen value) + // or get the whole rendered style if no property specified (NB doesn't allow setting) + renderedStyle: function(e) { + var r = this.cy(); + if (!r.styleEnabled()) + return this; + var a = this[0]; + if (a) + return r.style().getRenderedStyle(a, e); + }, + // read the calculated css style of the element or override the style (via a bypass) + style: function(e, r) { + var a = this.cy(); + if (!a.styleEnabled()) + return this; + var n = !1, i = a.style(); + if (S(e)) { + var s = e; + i.applyBypass(this, s, n), this.emitAndNotify("style"); + } else if (ee(e)) + if (r === void 0) { + var o = this[0]; + return o ? i.getStylePropertyValue(o, e) : void 0; + } else + i.applyBypass(this, e, r, n), this.emitAndNotify("style"); + else if (e === void 0) { + var u = this[0]; + return u ? i.getRawStyle(u) : void 0; + } + return this; + }, + removeStyle: function(e) { + var r = this.cy(); + if (!r.styleEnabled()) + return this; + var a = !1, n = r.style(), i = this; + if (e === void 0) + for (var s = 0; s < i.length; s++) { + var o = i[s]; + n.removeAllBypasses(o, a); + } + else { + e = e.split(/\s+/); + for (var u = 0; u < i.length; u++) { + var l = i[u]; + n.removeBypasses(l, e, a); + } + } + return this.emitAndNotify("style"), this; + }, + show: function() { + return this.css("display", "element"), this; + }, + hide: function() { + return this.css("display", "none"), this; + }, + effectiveOpacity: function() { + var e = this.cy(); + if (!e.styleEnabled()) + return 1; + var r = e.hasCompoundNodes(), a = this[0]; + if (a) { + var n = a._private, i = a.pstyle("opacity").value; + if (!r) + return i; + var s = n.data.parent ? a.parents() : null; + if (s) + for (var o = 0; o < s.length; o++) { + var u = s[o], l = u.pstyle("opacity").value; + i = l * i; + } + return i; + } + }, + transparent: function() { + var e = this.cy(); + if (!e.styleEnabled()) + return !1; + var r = this[0], a = r.cy().hasCompoundNodes(); + if (r) + return a ? r.effectiveOpacity() === 0 : r.pstyle("opacity").value === 0; + }, + backgrounding: function() { + var e = this.cy(); + if (!e.styleEnabled()) + return !1; + var r = this[0]; + return !!r._private.backgrounding; + } + }; + function Oi(t, e) { + var r = t._private, a = r.data.parent ? t.parents() : null; + if (a) + for (var n = 0; n < a.length; n++) { + var i = a[n]; + if (!e(i)) + return !1; + } + return !0; + } + function Ni(t) { + var e = t.ok, r = t.edgeOkViaNode || t.ok, a = t.parentOk || t.ok; + return function() { + var n = this.cy(); + if (!n.styleEnabled()) + return !0; + var i = this[0], s = n.hasCompoundNodes(); + if (i) { + var o = i._private; + if (!e(i)) + return !1; + if (i.isNode()) + return !s || Oi(i, a); + var u = o.source, l = o.target; + return r(u) && (!s || Oi(u, r)) && (u === l || r(l) && (!s || Oi(l, r))); + } + }; + } + var ca = Pn("eleTakesUpSpace", function(t) { + return t.pstyle("display").value === "element" && t.width() !== 0 && (t.isNode() ? t.height() !== 0 : !0); + }); + Ot.takesUpSpace = Bn("takesUpSpace", Ni({ + ok: ca + })); + var Cd = Pn("eleInteractive", function(t) { + return t.pstyle("events").value === "yes" && t.pstyle("visibility").value === "visible" && ca(t); + }), Dd = Pn("parentInteractive", function(t) { + return t.pstyle("visibility").value === "visible" && ca(t); + }); + Ot.interactive = Bn("interactive", Ni({ + ok: Cd, + parentOk: Dd, + edgeOkViaNode: ca + })), Ot.noninteractive = function() { + var t = this[0]; + if (t) + return !t.interactive(); + }; + var Sd = Pn("eleVisible", function(t) { + return t.pstyle("visibility").value === "visible" && t.pstyle("opacity").pfValue !== 0 && ca(t); + }), Ld = ca; + Ot.visible = Bn("visible", Ni({ + ok: Sd, + edgeOkViaNode: Ld + })), Ot.hidden = function() { + var t = this[0]; + if (t) + return !t.visible(); + }, Ot.isBundledBezier = Bn("isBundledBezier", function() { + return this.cy().styleEnabled() ? !this.removed() && this.pstyle("curve-style").value === "bezier" && this.takesUpSpace() : !1; + }), Ot.bypass = Ot.css = Ot.style, Ot.renderedCss = Ot.renderedStyle, Ot.removeBypass = Ot.removeCss = Ot.removeStyle, Ot.pstyle = Ot.parsedStyle; + var Ir = {}; + function ko(t) { + return function() { + var e = arguments, r = []; + if (e.length === 2) { + var a = e[0], n = e[1]; + this.on(t.event, a, n); + } else if (e.length === 1 && H(e[0])) { + var i = e[0]; + this.on(t.event, i); + } else if (e.length === 0 || e.length === 1 && te(e[0])) { + for (var s = e.length === 1 ? e[0] : null, o = 0; o < this.length; o++) { + var u = this[o], l = !t.ableField || u._private[t.ableField], f = u._private[t.field] != t.value; + if (t.overrideAble) { + var h = t.overrideAble(u); + if (h !== void 0 && (l = h, !h)) + return this; + } + l && (u._private[t.field] = t.value, f && r.push(u)); + } + var v = this.spawn(r); + v.updateStyle(), v.emit(t.event), s && v.emit(s); + } + return this; + }; + } + function da(t) { + Ir[t.field] = function() { + var e = this[0]; + if (e) { + if (t.overrideField) { + var r = t.overrideField(e); + if (r !== void 0) + return r; + } + return e._private[t.field]; + } + }, Ir[t.on] = ko({ + event: t.on, + field: t.field, + ableField: t.ableField, + overrideAble: t.overrideAble, + value: !0 + }), Ir[t.off] = ko({ + event: t.off, + field: t.field, + ableField: t.ableField, + overrideAble: t.overrideAble, + value: !1 + }); + } + da({ + field: "locked", + overrideField: function(e) { + return e.cy().autolock() ? !0 : void 0; + }, + on: "lock", + off: "unlock" + }), da({ + field: "grabbable", + overrideField: function(e) { + return e.cy().autoungrabify() || e.pannable() ? !1 : void 0; + }, + on: "grabify", + off: "ungrabify" + }), da({ + field: "selected", + ableField: "selectable", + overrideAble: function(e) { + return e.cy().autounselectify() ? !1 : void 0; + }, + on: "select", + off: "unselect" + }), da({ + field: "selectable", + overrideField: function(e) { + return e.cy().autounselectify() ? !1 : void 0; + }, + on: "selectify", + off: "unselectify" + }), Ir.deselect = Ir.unselect, Ir.grabbed = function() { + var t = this[0]; + if (t) + return t._private.grabbed; + }, da({ + field: "active", + on: "activate", + off: "unactivate" + }), da({ + field: "pannable", + on: "panify", + off: "unpanify" + }), Ir.inactive = function() { + var t = this[0]; + if (t) + return !t._private.active; + }; + var Bt = {}, Po = function(e) { + return function(a) { + for (var n = this, i = [], s = 0; s < n.length; s++) { + var o = n[s]; + if (o.isNode()) { + for (var u = !1, l = o.connectedEdges(), f = 0; f < l.length; f++) { + var h = l[f], v = h.source(), d = h.target(); + if (e.noIncomingEdges && d === o && v !== o || e.noOutgoingEdges && v === o && d !== o) { + u = !0; + break; + } + } + u || i.push(o); + } + } + return this.spawn(i, !0).filter(a); + }; + }, Bo = function(e) { + return function(r) { + for (var a = this, n = [], i = 0; i < a.length; i++) { + var s = a[i]; + if (s.isNode()) + for (var o = s.connectedEdges(), u = 0; u < o.length; u++) { + var l = o[u], f = l.source(), h = l.target(); + e.outgoing && f === s ? (n.push(l), n.push(h)) : e.incoming && h === s && (n.push(l), n.push(f)); + } + } + return this.spawn(n, !0).filter(r); + }; + }, Fo = function(e) { + return function(r) { + for (var a = this, n = [], i = {}; ; ) { + var s = e.outgoing ? a.outgoers() : a.incomers(); + if (s.length === 0) + break; + for (var o = !1, u = 0; u < s.length; u++) { + var l = s[u], f = l.id(); + i[f] || (i[f] = !0, n.push(l), o = !0); + } + if (!o) + break; + a = s; + } + return this.spawn(n, !0).filter(r); + }; + }; + Bt.clearTraversalCache = function() { + for (var t = 0; t < this.length; t++) + this[t]._private.traversalCache = null; + }, He(Bt, { + // get the root nodes in the DAG + roots: Po({ + noIncomingEdges: !0 + }), + // get the leaf nodes in the DAG + leaves: Po({ + noOutgoingEdges: !0 + }), + // normally called children in graph theory + // these nodes =edges=> outgoing nodes + outgoers: Zt(Bo({ + outgoing: !0 + }), "outgoers"), + // aka DAG descendants + successors: Fo({ + outgoing: !0 + }), + // normally called parents in graph theory + // these nodes <=edges= incoming nodes + incomers: Zt(Bo({ + incoming: !0 + }), "incomers"), + // aka DAG ancestors + predecessors: Fo({ + incoming: !0 + }) + }), He(Bt, { + neighborhood: Zt(function(t) { + for (var e = [], r = this.nodes(), a = 0; a < r.length; a++) + for (var n = r[a], i = n.connectedEdges(), s = 0; s < i.length; s++) { + var o = i[s], u = o.source(), l = o.target(), f = n === u ? l : u; + f.length > 0 && e.push(f[0]), e.push(o[0]); + } + return this.spawn(e, !0).filter(t); + }, "neighborhood"), + closedNeighborhood: function(e) { + return this.neighborhood().add(this).filter(e); + }, + openNeighborhood: function(e) { + return this.neighborhood(e); + } + }), Bt.neighbourhood = Bt.neighborhood, Bt.closedNeighbourhood = Bt.closedNeighborhood, Bt.openNeighbourhood = Bt.openNeighborhood, He(Bt, { + source: Zt(function(e) { + var r = this[0], a; + return r && (a = r._private.source || r.cy().collection()), a && e ? a.filter(e) : a; + }, "source"), + target: Zt(function(e) { + var r = this[0], a; + return r && (a = r._private.target || r.cy().collection()), a && e ? a.filter(e) : a; + }, "target"), + sources: Go({ + attr: "source" + }), + targets: Go({ + attr: "target" + }) + }); + function Go(t) { + return function(r) { + for (var a = [], n = 0; n < this.length; n++) { + var i = this[n], s = i._private[t.attr]; + s && a.push(s); + } + return this.spawn(a, !0).filter(r); + }; + } + He(Bt, { + edgesWith: Zt(zo(), "edgesWith"), + edgesTo: Zt(zo({ + thisIsSrc: !0 + }), "edgesTo") + }); + function zo(t) { + return function(r) { + var a = [], n = this._private.cy, i = t || {}; + ee(r) && (r = n.$(r)); + for (var s = 0; s < r.length; s++) + for (var o = r[s]._private.edges, u = 0; u < o.length; u++) { + var l = o[u], f = l._private.data, h = this.hasElementWithId(f.source) && r.hasElementWithId(f.target), v = r.hasElementWithId(f.source) && this.hasElementWithId(f.target), d = h || v; + d && ((i.thisIsSrc || i.thisIsTgt) && (i.thisIsSrc && !h || i.thisIsTgt && !v) || a.push(l)); + } + return this.spawn(a, !0); + }; + } + He(Bt, { + connectedEdges: Zt(function(t) { + for (var e = [], r = this, a = 0; a < r.length; a++) { + var n = r[a]; + if (n.isNode()) + for (var i = n._private.edges, s = 0; s < i.length; s++) { + var o = i[s]; + e.push(o); + } + } + return this.spawn(e, !0).filter(t); + }, "connectedEdges"), + connectedNodes: Zt(function(t) { + for (var e = [], r = this, a = 0; a < r.length; a++) { + var n = r[a]; + n.isEdge() && (e.push(n.source()[0]), e.push(n.target()[0])); + } + return this.spawn(e, !0).filter(t); + }, "connectedNodes"), + parallelEdges: Zt(Vo(), "parallelEdges"), + codirectedEdges: Zt(Vo({ + codirected: !0 + }), "codirectedEdges") + }); + function Vo(t) { + var e = { + codirected: !1 + }; + return t = He({}, e, t), function(a) { + for (var n = [], i = this.edges(), s = t, o = 0; o < i.length; o++) + for (var u = i[o], l = u._private, f = l.source, h = f._private.data.id, v = l.data.target, d = f._private.edges, c = 0; c < d.length; c++) { + var y = d[c], p = y._private.data, g = p.target, m = p.source, b = g === v && m === h, E = h === g && v === m; + (s.codirected && b || !s.codirected && (b || E)) && n.push(y); + } + return this.spawn(n, !0).filter(a); + }; + } + He(Bt, { + components: function(e) { + var r = this, a = r.cy(), n = a.collection(), i = e == null ? r.nodes() : e.nodes(), s = []; + e != null && i.empty() && (i = e.sources()); + var o = function(f, h) { + n.merge(f), i.unmerge(f), h.merge(f); + }; + if (i.empty()) + return r.spawn(); + var u = function() { + var f = a.collection(); + s.push(f); + var h = i[0]; + o(h, f), r.bfs({ + directed: !1, + roots: h, + visit: function(d) { + return o(d, f); + } + }), f.forEach(function(v) { + v.connectedEdges().forEach(function(d) { + r.has(d) && f.has(d.source()) && f.has(d.target()) && f.merge(d); + }); + }); + }; + do + u(); + while (i.length > 0); + return s; + }, + component: function() { + var e = this[0]; + return e.cy().mutableElements().components(e)[0]; + } + }), Bt.componentsOf = Bt.components; + var Nt = function(e, r) { + var a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !1; + if (e === void 0) { + xt("A collection must have a reference to the core"); + return; + } + var i = new ur(), s = !1; + if (!r) + r = []; + else if (r.length > 0 && S(r[0]) && !Ae(r[0])) { + s = !0; + for (var o = [], u = new Jr(), l = 0, f = r.length; l < f; l++) { + var h = r[l]; + h.data == null && (h.data = {}); + var v = h.data; + if (v.id == null) + v.id = ps(); + else if (e.hasElementWithId(v.id) || u.has(v.id)) + continue; + var d = new hn(e, h, !1); + o.push(d), u.add(v.id); + } + r = o; + } + this.length = 0; + for (var c = 0, y = r.length; c < y; c++) { + var p = r[c][0]; + if (p != null) { + var g = p._private.data.id; + (!a || !i.has(g)) && (a && i.set(g, { + index: this.length, + ele: p + }), this[this.length] = p, this.length++); + } + } + this._private = { + eles: this, + cy: e, + get map() { + return this.lazyMap == null && this.rebuildMap(), this.lazyMap; + }, + set map(m) { + this.lazyMap = m; + }, + rebuildMap: function() { + for (var b = this.lazyMap = new ur(), E = this.eles, M = 0; M < E.length; M++) { + var L = E[M]; + b.set(L.id(), { + index: M, + ele: L + }); + } + } + }, a && (this._private.map = i), s && !n && this.restore(); + }, mt = hn.prototype = Nt.prototype = Object.create(Array.prototype); + mt.instanceString = function() { + return "collection"; + }, mt.spawn = function(t, e) { + return new Nt(this.cy(), t, e); + }, mt.spawnSelf = function() { + return this.spawn(this); + }, mt.cy = function() { + return this._private.cy; + }, mt.renderer = function() { + return this._private.cy.renderer(); + }, mt.element = function() { + return this[0]; + }, mt.collection = function() { + return Ne(this) ? this : new Nt(this._private.cy, [this]); + }, mt.unique = function() { + return new Nt(this._private.cy, this, !0); + }, mt.hasElementWithId = function(t) { + return t = "" + t, this._private.map.has(t); + }, mt.getElementById = function(t) { + t = "" + t; + var e = this._private.cy, r = this._private.map.get(t); + return r ? r.ele : new Nt(e); + }, mt.$id = mt.getElementById, mt.poolIndex = function() { + var t = this._private.cy, e = t._private.elements, r = this[0]._private.data.id; + return e._private.map.get(r).index; + }, mt.indexOf = function(t) { + var e = t[0]._private.data.id; + return this._private.map.get(e).index; + }, mt.indexOfId = function(t) { + return t = "" + t, this._private.map.get(t).index; + }, mt.json = function(t) { + var e = this.element(), r = this.cy(); + if (e == null && t) + return this; + if (e != null) { + var a = e._private; + if (S(t)) { + if (r.startBatch(), t.data) { + e.data(t.data); + var n = a.data; + if (e.isEdge()) { + var i = !1, s = {}, o = t.data.source, u = t.data.target; + o != null && o != n.source && (s.source = "" + o, i = !0), u != null && u != n.target && (s.target = "" + u, i = !0), i && (e = e.move(s)); + } else { + var l = "parent" in t.data, f = t.data.parent; + l && (f != null || n.parent != null) && f != n.parent && (f === void 0 && (f = null), f != null && (f = "" + f), e = e.move({ + parent: f + })); + } + } + t.position && e.position(t.position); + var h = function(y, p, g) { + var m = t[y]; + m != null && m !== a[y] && (m ? e[p]() : e[g]()); + }; + return h("removed", "remove", "restore"), h("selected", "select", "unselect"), h("selectable", "selectify", "unselectify"), h("locked", "lock", "unlock"), h("grabbable", "grabify", "ungrabify"), h("pannable", "panify", "unpanify"), t.classes != null && e.classes(t.classes), r.endBatch(), this; + } else if (t === void 0) { + var v = { + data: lr(a.data), + position: lr(a.position), + group: a.group, + removed: a.removed, + selected: a.selected, + selectable: a.selectable, + locked: a.locked, + grabbable: a.grabbable, + pannable: a.pannable, + classes: null + }; + v.classes = ""; + var d = 0; + return a.classes.forEach(function(c) { + return v.classes += d++ === 0 ? c : " " + c; + }), v; + } + } + }, mt.jsons = function() { + for (var t = [], e = 0; e < this.length; e++) { + var r = this[e], a = r.json(); + t.push(a); + } + return t; + }, mt.clone = function() { + for (var t = this.cy(), e = [], r = 0; r < this.length; r++) { + var a = this[r], n = a.json(), i = new hn(t, n, !1); + e.push(i); + } + return new Nt(t, e); + }, mt.copy = mt.clone, mt.restore = function() { + for (var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !0, e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0, r = this, a = r.cy(), n = a._private, i = [], s = [], o, u = 0, l = r.length; u < l; u++) { + var f = r[u]; + e && !f.removed() || (f.isNode() ? i.push(f) : s.push(f)); + } + o = i.concat(s); + var h, v = function() { + o.splice(h, 1), h--; + }; + for (h = 0; h < o.length; h++) { + var d = o[h], c = d._private, y = c.data; + if (d.clearTraversalCache(), !(!e && !c.removed)) { + if (y.id === void 0) + y.id = ps(); + else if (R(y.id)) + y.id = "" + y.id; + else if (Re(y.id) || !ee(y.id)) { + xt("Can not create element with invalid string ID `" + y.id + "`"), v(); + continue; + } else if (a.hasElementWithId(y.id)) { + xt("Can not create second element with ID `" + y.id + "`"), v(); + continue; + } + } + var p = y.id; + if (d.isNode()) { + var g = c.position; + g.x == null && (g.x = 0), g.y == null && (g.y = 0); + } + if (d.isEdge()) { + for (var m = d, b = ["source", "target"], E = b.length, M = !1, L = 0; L < E; L++) { + var w = b[L], k = y[w]; + R(k) && (k = y[w] = "" + y[w]), k == null || k === "" ? (xt("Can not create edge `" + p + "` with unspecified " + w), M = !0) : a.hasElementWithId(k) || (xt("Can not create edge `" + p + "` with nonexistant " + w + " `" + k + "`"), M = !0); + } + if (M) { + v(); + continue; + } + var D = a.getElementById(y.source), F = a.getElementById(y.target); + D.same(F) ? D._private.edges.push(m) : (D._private.edges.push(m), F._private.edges.push(m)), m._private.source = D, m._private.target = F; + } + c.map = new ur(), c.map.set(p, { + ele: d, + index: 0 + }), c.removed = !1, e && a.addToPool(d); + } + for (var G = 0; G < i.length; G++) { + var N = i[G], X = N._private.data; + R(X.parent) && (X.parent = "" + X.parent); + var B = X.parent, re = B != null; + if (re || N._private.parent) { + var K = N._private.parent ? a.collection().merge(N._private.parent) : a.getElementById(B); + if (K.empty()) + X.parent = void 0; + else if (K[0].removed()) + vt("Node added with missing parent, reference to parent removed"), X.parent = void 0, N._private.parent = null; + else { + for (var W = !1, ae = K; !ae.empty(); ) { + if (N.same(ae)) { + W = !0, X.parent = void 0; + break; + } + ae = ae.parent(); + } + W || (K[0]._private.children.push(N), N._private.parent = K[0], n.hasCompoundNodes = !0); + } + } + } + if (o.length > 0) { + for (var ue = o.length === r.length ? r : new Nt(a, o), me = 0; me < ue.length; me++) { + var ie = ue[me]; + ie.isNode() || (ie.parallelEdges().clearTraversalCache(), ie.source().clearTraversalCache(), ie.target().clearTraversalCache()); + } + var ge; + n.hasCompoundNodes ? ge = a.collection().merge(ue).merge(ue.connectedNodes()).merge(ue.parent()) : ge = ue, ge.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(t), t ? ue.emitAndNotify("add") : e && ue.emit("add"); + } + return r; + }, mt.removed = function() { + var t = this[0]; + return t && t._private.removed; + }, mt.inside = function() { + var t = this[0]; + return t && !t._private.removed; + }, mt.remove = function() { + var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !0, e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0, r = this, a = [], n = {}, i = r._private.cy; + function s(B) { + for (var re = B._private.edges, K = 0; K < re.length; K++) + u(re[K]); + } + function o(B) { + for (var re = B._private.children, K = 0; K < re.length; K++) + u(re[K]); + } + function u(B) { + var re = n[B.id()]; + e && B.removed() || re || (n[B.id()] = !0, B.isNode() ? (a.push(B), s(B), o(B)) : a.unshift(B)); + } + for (var l = 0, f = r.length; l < f; l++) { + var h = r[l]; + u(h); + } + function v(B, re) { + var K = B._private.edges; + xr(K, re), B.clearTraversalCache(); + } + function d(B) { + B.clearTraversalCache(); + } + var c = []; + c.ids = {}; + function y(B, re) { + re = re[0], B = B[0]; + var K = B._private.children, W = B.id(); + xr(K, re), re._private.parent = null, c.ids[W] || (c.ids[W] = !0, c.push(B)); + } + r.dirtyCompoundBoundsCache(), e && i.removeFromPool(a); + for (var p = 0; p < a.length; p++) { + var g = a[p]; + if (g.isEdge()) { + var m = g.source()[0], b = g.target()[0]; + v(m, g), v(b, g); + for (var E = g.parallelEdges(), M = 0; M < E.length; M++) { + var L = E[M]; + d(L), L.isBundledBezier() && L.dirtyBoundingBoxCache(); + } + } else { + var w = g.parent(); + w.length !== 0 && y(w, g); + } + e && (g._private.removed = !0); + } + var k = i._private.elements; + i._private.hasCompoundNodes = !1; + for (var D = 0; D < k.length; D++) { + var F = k[D]; + if (F.isParent()) { + i._private.hasCompoundNodes = !0; + break; + } + } + var G = new Nt(this.cy(), a); + G.size() > 0 && (t ? G.emitAndNotify("remove") : e && G.emit("remove")); + for (var N = 0; N < c.length; N++) { + var X = c[N]; + (!e || !X.removed()) && X.updateStyle(); + } + return G; + }, mt.move = function(t) { + var e = this._private.cy, r = this, a = !1, n = !1, i = function(c) { + return c == null ? c : "" + c; + }; + if (t.source !== void 0 || t.target !== void 0) { + var s = i(t.source), o = i(t.target), u = s != null && e.hasElementWithId(s), l = o != null && e.hasElementWithId(o); + (u || l) && (e.batch(function() { + r.remove(a, n), r.emitAndNotify("moveout"); + for (var d = 0; d < r.length; d++) { + var c = r[d], y = c._private.data; + c.isEdge() && (u && (y.source = s), l && (y.target = o)); + } + r.restore(a, n); + }), r.emitAndNotify("move")); + } else if (t.parent !== void 0) { + var f = i(t.parent), h = f === null || e.hasElementWithId(f); + if (h) { + var v = f === null ? void 0 : f; + e.batch(function() { + var d = r.remove(a, n); + d.emitAndNotify("moveout"); + for (var c = 0; c < r.length; c++) { + var y = r[c], p = y._private.data; + y.isNode() && (p.parent = v); + } + d.restore(a, n); + }), r.emitAndNotify("move"); + } + } + return this; + }, [_s, Gc, Ln, Ar, fa, ed, An, pd, No, Io, wd, Rn, kn, Ot, Ir, Bt].forEach(function(t) { + He(mt, t); + }); + var Ad = { + add: function(e) { + var r, a = this; + if (pe(e)) { + var n = e; + if (n._private.cy === a) + r = n.restore(); + else { + for (var i = [], s = 0; s < n.length; s++) { + var o = n[s]; + i.push(o.json()); + } + r = new Nt(a, i); + } + } else if (te(e)) { + var u = e; + r = new Nt(a, u); + } else if (S(e) && (te(e.nodes) || te(e.edges))) { + for (var l = e, f = [], h = ["nodes", "edges"], v = 0, d = h.length; v < d; v++) { + var c = h[v], y = l[c]; + if (te(y)) + for (var p = 0, g = y.length; p < g; p++) { + var m = He({ + group: c + }, y[p]); + f.push(m); + } + } + r = new Nt(a, f); + } else { + var b = e; + r = new hn(a, b).collection(); + } + return r; + }, + remove: function(e) { + if (!pe(e)) { + if (ee(e)) { + var r = e; + e = this.$(r); + } + } + return e.remove(); + } + }; + /*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */ + function Od(t, e, r, a) { + var n = 4, i = 1e-3, s = 1e-7, o = 10, u = 11, l = 1 / (u - 1), f = typeof Float32Array < "u"; + if (arguments.length !== 4) + return !1; + for (var h = 0; h < 4; ++h) + if (typeof arguments[h] != "number" || isNaN(arguments[h]) || !isFinite(arguments[h])) + return !1; + t = Math.min(t, 1), r = Math.min(r, 1), t = Math.max(t, 0), r = Math.max(r, 0); + var v = f ? new Float32Array(u) : new Array(u); + function d(F, G) { + return 1 - 3 * G + 3 * F; + } + function c(F, G) { + return 3 * G - 6 * F; + } + function y(F) { + return 3 * F; + } + function p(F, G, N) { + return ((d(G, N) * F + c(G, N)) * F + y(G)) * F; + } + function g(F, G, N) { + return 3 * d(G, N) * F * F + 2 * c(G, N) * F + y(G); + } + function m(F, G) { + for (var N = 0; N < n; ++N) { + var X = g(G, t, r); + if (X === 0) + return G; + var B = p(G, t, r) - F; + G -= B / X; + } + return G; + } + function b() { + for (var F = 0; F < u; ++F) + v[F] = p(F * l, t, r); + } + function E(F, G, N) { + var X, B, re = 0; + do + B = G + (N - G) / 2, X = p(B, t, r) - F, X > 0 ? N = B : G = B; + while (Math.abs(X) > s && ++re < o); + return B; + } + function M(F) { + for (var G = 0, N = 1, X = u - 1; N !== X && v[N] <= F; ++N) + G += l; + --N; + var B = (F - v[N]) / (v[N + 1] - v[N]), re = G + B * l, K = g(re, t, r); + return K >= i ? m(F, re) : K === 0 ? re : E(F, G, G + l); + } + var L = !1; + function w() { + L = !0, (t !== e || r !== a) && b(); + } + var k = function(G) { + return L || w(), t === e && r === a ? G : G === 0 ? 0 : G === 1 ? 1 : p(M(G), e, a); + }; + k.getControlPoints = function() { + return [{ + x: t, + y: e + }, { + x: r, + y: a + }]; + }; + var D = "generateBezier(" + [t, e, r, a] + ")"; + return k.toString = function() { + return D; + }, k; + } + /*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */ + var Nd = function() { + function t(a) { + return -a.tension * a.x - a.friction * a.v; + } + function e(a, n, i) { + var s = { + x: a.x + i.dx * n, + v: a.v + i.dv * n, + tension: a.tension, + friction: a.friction + }; + return { + dx: s.v, + dv: t(s) + }; + } + function r(a, n) { + var i = { + dx: a.v, + dv: t(a) + }, s = e(a, n * 0.5, i), o = e(a, n * 0.5, s), u = e(a, n, o), l = 1 / 6 * (i.dx + 2 * (s.dx + o.dx) + u.dx), f = 1 / 6 * (i.dv + 2 * (s.dv + o.dv) + u.dv); + return a.x = a.x + l * n, a.v = a.v + f * n, a; + } + return function a(n, i, s) { + var o = { + x: -1, + v: 0, + tension: null, + friction: null + }, u = [0], l = 0, f = 1 / 1e4, h = 16 / 1e3, v, d, c; + for (n = parseFloat(n) || 500, i = parseFloat(i) || 20, s = s || null, o.tension = n, o.friction = i, v = s !== null, v ? (l = a(n, i), d = l / s * h) : d = h; c = r(c || o, d), u.push(1 + c.x), l += 16, Math.abs(c.x) > f && Math.abs(c.v) > f; ) + ; + return v ? function(y) { + return u[y * (u.length - 1) | 0]; + } : l; + }; + }(), bt = function(e, r, a, n) { + var i = Od(e, r, a, n); + return function(s, o, u) { + return s + (o - s) * i(u); + }; + }, Fn = { + linear: function(e, r, a) { + return e + (r - e) * a; + }, + // default easings + ease: bt(0.25, 0.1, 0.25, 1), + "ease-in": bt(0.42, 0, 1, 1), + "ease-out": bt(0, 0, 0.58, 1), + "ease-in-out": bt(0.42, 0, 0.58, 1), + // sine + "ease-in-sine": bt(0.47, 0, 0.745, 0.715), + "ease-out-sine": bt(0.39, 0.575, 0.565, 1), + "ease-in-out-sine": bt(0.445, 0.05, 0.55, 0.95), + // quad + "ease-in-quad": bt(0.55, 0.085, 0.68, 0.53), + "ease-out-quad": bt(0.25, 0.46, 0.45, 0.94), + "ease-in-out-quad": bt(0.455, 0.03, 0.515, 0.955), + // cubic + "ease-in-cubic": bt(0.55, 0.055, 0.675, 0.19), + "ease-out-cubic": bt(0.215, 0.61, 0.355, 1), + "ease-in-out-cubic": bt(0.645, 0.045, 0.355, 1), + // quart + "ease-in-quart": bt(0.895, 0.03, 0.685, 0.22), + "ease-out-quart": bt(0.165, 0.84, 0.44, 1), + "ease-in-out-quart": bt(0.77, 0, 0.175, 1), + // quint + "ease-in-quint": bt(0.755, 0.05, 0.855, 0.06), + "ease-out-quint": bt(0.23, 1, 0.32, 1), + "ease-in-out-quint": bt(0.86, 0, 0.07, 1), + // expo + "ease-in-expo": bt(0.95, 0.05, 0.795, 0.035), + "ease-out-expo": bt(0.19, 1, 0.22, 1), + "ease-in-out-expo": bt(1, 0, 0, 1), + // circ + "ease-in-circ": bt(0.6, 0.04, 0.98, 0.335), + "ease-out-circ": bt(0.075, 0.82, 0.165, 1), + "ease-in-out-circ": bt(0.785, 0.135, 0.15, 0.86), + // user param easings... + spring: function(e, r, a) { + if (a === 0) + return Fn.linear; + var n = Nd(e, r, a); + return function(i, s, o) { + return i + (s - i) * n(o); + }; + }, + "cubic-bezier": bt + }; + function Uo(t, e, r, a, n) { + if (a === 1 || e === r) + return r; + var i = n(e, r, a); + return t == null || ((t.roundValue || t.color) && (i = Math.round(i)), t.min !== void 0 && (i = Math.max(i, t.min)), t.max !== void 0 && (i = Math.min(i, t.max))), i; + } + function $o(t, e) { + return t.pfValue != null || t.value != null ? t.pfValue != null && (e == null || e.type.units !== "%") ? t.pfValue : t.value : t; + } + function ga(t, e, r, a, n) { + var i = n != null ? n.type : null; + r < 0 ? r = 0 : r > 1 && (r = 1); + var s = $o(t, n), o = $o(e, n); + if (R(s) && R(o)) + return Uo(i, s, o, r, a); + if (te(s) && te(o)) { + for (var u = [], l = 0; l < o.length; l++) { + var f = s[l], h = o[l]; + if (f != null && h != null) { + var v = Uo(i, f, h, r, a); + u.push(v); + } else + u.push(h); + } + return u; + } + } + function Id(t, e, r, a) { + var n = !a, i = t._private, s = e._private, o = s.easing, u = s.startTime, l = a ? t : t.cy(), f = l.style(); + if (!s.easingImpl) + if (o == null) + s.easingImpl = Fn.linear; + else { + var h; + if (ee(o)) { + var v = f.parse("transition-timing-function", o); + h = v.value; + } else + h = o; + var d, c; + ee(h) ? (d = h, c = []) : (d = h[1], c = h.slice(2).map(function(ue) { + return +ue; + })), c.length > 0 ? (d === "spring" && c.push(s.duration), s.easingImpl = Fn[d].apply(null, c)) : s.easingImpl = Fn[d]; + } + var y = s.easingImpl, p; + if (s.duration === 0 ? p = 1 : p = (r - u) / s.duration, s.applying && (p = s.progress), p < 0 ? p = 0 : p > 1 && (p = 1), s.delay == null) { + var g = s.startPosition, m = s.position; + if (m && n && !t.locked()) { + var b = {}; + Xa(g.x, m.x) && (b.x = ga(g.x, m.x, p, y)), Xa(g.y, m.y) && (b.y = ga(g.y, m.y, p, y)), t.position(b); + } + var E = s.startPan, M = s.pan, L = i.pan, w = M != null && a; + w && (Xa(E.x, M.x) && (L.x = ga(E.x, M.x, p, y)), Xa(E.y, M.y) && (L.y = ga(E.y, M.y, p, y)), t.emit("pan")); + var k = s.startZoom, D = s.zoom, F = D != null && a; + F && (Xa(k, D) && (i.zoom = ka(i.minZoom, ga(k, D, p, y), i.maxZoom)), t.emit("zoom")), (w || F) && t.emit("viewport"); + var G = s.style; + if (G && G.length > 0 && n) { + for (var N = 0; N < G.length; N++) { + var X = G[N], B = X.name, re = X, K = s.startStyle[B], W = f.properties[K.name], ae = ga(K, re, p, y, W); + f.overrideBypass(t, B, ae); + } + t.emit("style"); + } + } + return s.progress = p, p; + } + function Xa(t, e) { + return t == null || e == null ? !1 : R(t) && R(e) ? !0 : !!(t && e); + } + function Md(t, e, r, a) { + var n = e._private; + n.started = !0, n.startTime = r - n.progress * n.duration; + } + function _o(t, e) { + var r = e._private.aniEles, a = []; + function n(f, h) { + var v = f._private, d = v.animation.current, c = v.animation.queue, y = !1; + if (d.length === 0) { + var p = c.shift(); + p && d.push(p); + } + for (var g = function(L) { + for (var w = L.length - 1; w >= 0; w--) { + var k = L[w]; + k(); + } + L.splice(0, L.length); + }, m = d.length - 1; m >= 0; m--) { + var b = d[m], E = b._private; + if (E.stopped) { + d.splice(m, 1), E.hooked = !1, E.playing = !1, E.started = !1, g(E.frames); + continue; + } + !E.playing && !E.applying || (E.playing && E.applying && (E.applying = !1), E.started || Md(f, b, t), Id(f, b, t, h), E.applying && (E.applying = !1), g(E.frames), E.step != null && E.step(t), b.completed() && (d.splice(m, 1), E.hooked = !1, E.playing = !1, E.started = !1, g(E.completes)), y = !0); + } + return !h && d.length === 0 && c.length === 0 && a.push(f), y; + } + for (var i = !1, s = 0; s < r.length; s++) { + var o = r[s], u = n(o); + i = i || u; + } + var l = n(e, !0); + (i || l) && (r.length > 0 ? e.notify("draw", r) : e.notify("draw")), r.unmerge(a), e.emit("step"); + } + var Rd = { + // pull in animation functions + animate: ct.animate(), + animation: ct.animation(), + animated: ct.animated(), + clearQueue: ct.clearQueue(), + delay: ct.delay(), + delayAnimation: ct.delayAnimation(), + stop: ct.stop(), + addToAnimationPool: function(e) { + var r = this; + r.styleEnabled() && r._private.aniEles.merge(e); + }, + stopAnimationLoop: function() { + this._private.animationsRunning = !1; + }, + startAnimationLoop: function() { + var e = this; + if (e._private.animationsRunning = !0, !e.styleEnabled()) + return; + function r() { + e._private.animationsRunning && ln(function(i) { + _o(i, e), r(); + }); + } + var a = e.renderer(); + a && a.beforeRender ? a.beforeRender(function(i, s) { + _o(s, e); + }, a.beforeRenderPriorities.animations) : r(); + } + }, kd = { + qualifierCompare: function(e, r) { + return e == null || r == null ? e == null && r == null : e.sameText(r); + }, + eventMatches: function(e, r, a) { + var n = r.qualifier; + return n != null ? e !== a.target && Ae(a.target) && n.matches(a.target) : !0; + }, + addEventFields: function(e, r) { + r.cy = e, r.target = e; + }, + callbackContext: function(e, r, a) { + return r.qualifier != null ? a.target : e; + } + }, Gn = function(e) { + return ee(e) ? new Sr(e) : e; + }, Yo = { + createEmitter: function() { + var e = this._private; + return e.emitter || (e.emitter = new In(kd, this)), this; + }, + emitter: function() { + return this._private.emitter; + }, + on: function(e, r, a) { + return this.emitter().on(e, Gn(r), a), this; + }, + removeListener: function(e, r, a) { + return this.emitter().removeListener(e, Gn(r), a), this; + }, + removeAllListeners: function() { + return this.emitter().removeAllListeners(), this; + }, + one: function(e, r, a) { + return this.emitter().one(e, Gn(r), a), this; + }, + once: function(e, r, a) { + return this.emitter().one(e, Gn(r), a), this; + }, + emit: function(e, r) { + return this.emitter().emit(e, r), this; + }, + emitAndNotify: function(e, r) { + return this.emit(e), this.notify(e, r), this; + } + }; + ct.eventAliasesOn(Yo); + var Ii = { + png: function(e) { + var r = this._private.renderer; + return e = e || {}, r.png(e); + }, + jpg: function(e) { + var r = this._private.renderer; + return e = e || {}, e.bg = e.bg || "#fff", r.jpg(e); + } + }; + Ii.jpeg = Ii.jpg; + var zn = { + layout: function(e) { + var r = this; + if (e == null) { + xt("Layout options must be specified to make a layout"); + return; + } + if (e.name == null) { + xt("A `name` must be specified to make a layout"); + return; + } + var a = e.name, n = r.extension("layout", a); + if (n == null) { + xt("No such layout `" + a + "` found. Did you forget to import it and `cytoscape.use()` it?"); + return; + } + var i; + ee(e.eles) ? i = r.$(e.eles) : i = e.eles != null ? e.eles : r.$(); + var s = new n(He({}, e, { + cy: r, + eles: i + })); + return s; + } + }; + zn.createLayout = zn.makeLayout = zn.layout; + var Pd = { + notify: function(e, r) { + var a = this._private; + if (this.batching()) { + a.batchNotifications = a.batchNotifications || {}; + var n = a.batchNotifications[e] = a.batchNotifications[e] || this.collection(); + r != null && n.merge(r); + return; + } + if (a.notificationsEnabled) { + var i = this.renderer(); + this.destroyed() || !i || i.notify(e, r); + } + }, + notifications: function(e) { + var r = this._private; + return e === void 0 ? r.notificationsEnabled : (r.notificationsEnabled = !!e, this); + }, + noNotifications: function(e) { + this.notifications(!1), e(), this.notifications(!0); + }, + batching: function() { + return this._private.batchCount > 0; + }, + startBatch: function() { + var e = this._private; + return e.batchCount == null && (e.batchCount = 0), e.batchCount === 0 && (e.batchStyleEles = this.collection(), e.batchNotifications = {}), e.batchCount++, this; + }, + endBatch: function() { + var e = this._private; + if (e.batchCount === 0) + return this; + if (e.batchCount--, e.batchCount === 0) { + e.batchStyleEles.updateStyle(); + var r = this.renderer(); + Object.keys(e.batchNotifications).forEach(function(a) { + var n = e.batchNotifications[a]; + n.empty() ? r.notify(a) : r.notify(a, n); + }); + } + return this; + }, + batch: function(e) { + return this.startBatch(), e(), this.endBatch(), this; + }, + // for backwards compatibility + batchData: function(e) { + var r = this; + return this.batch(function() { + for (var a = Object.keys(e), n = 0; n < a.length; n++) { + var i = a[n], s = e[i], o = r.getElementById(i); + o.data(s); + } + }); + } + }, Bd = At({ + hideEdgesOnViewport: !1, + textureOnViewport: !1, + motionBlur: !1, + motionBlurOpacity: 0.05, + pixelRatio: void 0, + desktopTapThreshold: 4, + touchTapThreshold: 8, + wheelSensitivity: 1, + debug: !1, + showFps: !1 + }), Mi = { + renderTo: function(e, r, a, n) { + var i = this._private.renderer; + return i.renderTo(e, r, a, n), this; + }, + renderer: function() { + return this._private.renderer; + }, + forceRender: function() { + return this.notify("draw"), this; + }, + resize: function() { + return this.invalidateSize(), this.emitAndNotify("resize"), this; + }, + initRenderer: function(e) { + var r = this, a = r.extension("renderer", e.name); + if (a == null) { + xt("Can not initialise: No such renderer `".concat(e.name, "` found. Did you forget to import it and `cytoscape.use()` it?")); + return; + } + e.wheelSensitivity !== void 0 && vt("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine."); + var n = Bd(e); + n.cy = r, r._private.renderer = new a(n), this.notify("init"); + }, + destroyRenderer: function() { + var e = this; + e.notify("destroy"); + var r = e.container(); + if (r) + for (r._cyreg = null; r.childNodes.length > 0; ) + r.removeChild(r.childNodes[0]); + e._private.renderer = null, e.mutableElements().forEach(function(a) { + var n = a._private; + n.rscratch = {}, n.rstyle = {}, n.animation.current = [], n.animation.queue = []; + }); + }, + onRender: function(e) { + return this.on("render", e); + }, + offRender: function(e) { + return this.off("render", e); + } + }; + Mi.invalidateDimensions = Mi.resize; + var Vn = { + // get a collection + // - empty collection on no args + // - collection of elements in the graph on selector arg + // - guarantee a returned collection when elements or collection specified + collection: function(e, r) { + return ee(e) ? this.$(e) : pe(e) ? e.collection() : te(e) ? (r || (r = {}), new Nt(this, e, r.unique, r.removed)) : new Nt(this); + }, + nodes: function(e) { + var r = this.$(function(a) { + return a.isNode(); + }); + return e ? r.filter(e) : r; + }, + edges: function(e) { + var r = this.$(function(a) { + return a.isEdge(); + }); + return e ? r.filter(e) : r; + }, + // search the graph like jQuery + $: function(e) { + var r = this._private.elements; + return e ? r.filter(e) : r.spawnSelf(); + }, + mutableElements: function() { + return this._private.elements; + } + }; + Vn.elements = Vn.filter = Vn.$; + var Ft = {}, Wa = "t", Fd = "f"; + Ft.apply = function(t) { + for (var e = this, r = e._private, a = r.cy, n = a.collection(), i = 0; i < t.length; i++) { + var s = t[i], o = e.getContextMeta(s); + if (!o.empty) { + var u = e.getContextStyle(o), l = e.applyContextStyle(o, u, s); + s._private.appliedInitStyle ? e.updateTransitions(s, l.diffProps) : s._private.appliedInitStyle = !0; + var f = e.updateStyleHints(s); + f && n.push(s); + } + } + return n; + }, Ft.getPropertiesDiff = function(t, e) { + var r = this, a = r._private.propDiffs = r._private.propDiffs || {}, n = t + "-" + e, i = a[n]; + if (i) + return i; + for (var s = [], o = {}, u = 0; u < r.length; u++) { + var l = r[u], f = t[u] === Wa, h = e[u] === Wa, v = f !== h, d = l.mappedProperties.length > 0; + if (v || h && d) { + var c = void 0; + v && d || v ? c = l.properties : d && (c = l.mappedProperties); + for (var y = 0; y < c.length; y++) { + for (var p = c[y], g = p.name, m = !1, b = u + 1; b < r.length; b++) { + var E = r[b], M = e[b] === Wa; + if (M && (m = E.properties[p.name] != null, m)) + break; + } + !o[g] && !m && (o[g] = !0, s.push(g)); + } + } + } + return a[n] = s, s; + }, Ft.getContextMeta = function(t) { + for (var e = this, r = "", a, n = t._private.styleCxtKey || "", i = 0; i < e.length; i++) { + var s = e[i], o = s.selector && s.selector.matches(t); + o ? r += Wa : r += Fd; + } + return a = e.getPropertiesDiff(n, r), t._private.styleCxtKey = r, { + key: r, + diffPropNames: a, + empty: a.length === 0 + }; + }, Ft.getContextStyle = function(t) { + var e = t.key, r = this, a = this._private.contextStyles = this._private.contextStyles || {}; + if (a[e]) + return a[e]; + for (var n = { + _private: { + key: e + } + }, i = 0; i < r.length; i++) { + var s = r[i], o = e[i] === Wa; + if (o) + for (var u = 0; u < s.properties.length; u++) { + var l = s.properties[u]; + n[l.name] = l; + } + } + return a[e] = n, n; + }, Ft.applyContextStyle = function(t, e, r) { + for (var a = this, n = t.diffPropNames, i = {}, s = a.types, o = 0; o < n.length; o++) { + var u = n[o], l = e[u], f = r.pstyle(u); + if (!l) + if (f) + f.bypass ? l = { + name: u, + deleteBypassed: !0 + } : l = { + name: u, + delete: !0 + }; + else + continue; + if (f !== l) { + if (l.mapped === s.fn && f != null && f.mapping != null && f.mapping.value === l.value) { + var h = f.mapping, v = h.fnValue = l.value(r); + if (v === h.prevFnValue) + continue; + } + var d = i[u] = { + prev: f + }; + a.applyParsedProperty(r, l), d.next = r.pstyle(u), d.next && d.next.bypass && (d.next = d.next.bypassed); + } + } + return { + diffProps: i + }; + }, Ft.updateStyleHints = function(t) { + var e = t._private, r = this, a = r.propertyGroupNames, n = r.propertyGroupKeys, i = function(Oe, Fe, Xe) { + return r.getPropertiesHash(Oe, Fe, Xe); + }, s = e.styleKey; + if (t.removed()) + return !1; + var o = e.group === "nodes", u = t._private.style; + a = Object.keys(u); + for (var l = 0; l < n.length; l++) { + var f = n[l]; + e.styleKeys[f] = [Qr, Oa]; + } + for (var h = function(Oe, Fe) { + return e.styleKeys[Fe][0] = Na(Oe, e.styleKeys[Fe][0]); + }, v = function(Oe, Fe) { + return e.styleKeys[Fe][1] = Ia(Oe, e.styleKeys[Fe][1]); + }, d = function(Oe, Fe) { + h(Oe, Fe), v(Oe, Fe); + }, c = function(Oe, Fe) { + for (var Xe = 0; Xe < Oe.length; Xe++) { + var Ie = Oe.charCodeAt(Xe); + h(Ie, Fe), v(Ie, Fe); + } + }, y = 2e9, p = function(Oe) { + return -128 < Oe && Oe < 128 && Math.floor(Oe) !== Oe ? y - (Oe * 1024 | 0) : Oe; + }, g = 0; g < a.length; g++) { + var m = a[g], b = u[m]; + if (b != null) { + var E = this.properties[m], M = E.type, L = E.groupKey, w = void 0; + E.hashOverride != null ? w = E.hashOverride(t, b) : b.pfValue != null && (w = b.pfValue); + var k = E.enums == null ? b.value : null, D = w != null, F = k != null, G = D || F, N = b.units; + if (M.number && G && !M.multiple) { + var X = D ? w : k; + d(p(X), L), !D && N != null && c(N, L); + } else + c(b.strValue, L); + } + } + for (var B = [Qr, Oa], re = 0; re < n.length; re++) { + var K = n[re], W = e.styleKeys[K]; + B[0] = Na(W[0], B[0]), B[1] = Ia(W[1], B[1]); + } + e.styleKey = Uu(B[0], B[1]); + var ae = e.styleKeys; + e.labelDimsKey = wr(ae.labelDimensions); + var ue = i(t, ["label"], ae.labelDimensions); + if (e.labelKey = wr(ue), e.labelStyleKey = wr(un(ae.commonLabel, ue)), !o) { + var me = i(t, ["source-label"], ae.labelDimensions); + e.sourceLabelKey = wr(me), e.sourceLabelStyleKey = wr(un(ae.commonLabel, me)); + var ie = i(t, ["target-label"], ae.labelDimensions); + e.targetLabelKey = wr(ie), e.targetLabelStyleKey = wr(un(ae.commonLabel, ie)); + } + if (o) { + var ge = e.styleKeys, Ee = ge.nodeBody, Ce = ge.nodeBorder, we = ge.nodeOutline, De = ge.backgroundImage, se = ge.compound, xe = ge.pie, Le = [Ee, Ce, we, De, se, xe].filter(function(Se) { + return Se != null; + }).reduce(un, [Qr, Oa]); + e.nodeKey = wr(Le), e.hasPie = xe != null && xe[0] !== Qr && xe[1] !== Oa; + } + return s !== e.styleKey; + }, Ft.clearStyleHints = function(t) { + var e = t._private; + e.styleCxtKey = "", e.styleKeys = {}, e.styleKey = null, e.labelKey = null, e.labelStyleKey = null, e.sourceLabelKey = null, e.sourceLabelStyleKey = null, e.targetLabelKey = null, e.targetLabelStyleKey = null, e.nodeKey = null, e.hasPie = null; + }, Ft.applyParsedProperty = function(t, e) { + var r = this, a = e, n = t._private.style, i, s = r.types, o = r.properties[a.name].type, u = a.bypass, l = n[a.name], f = l && l.bypass, h = t._private, v = "mapping", d = function(Ee) { + return Ee == null ? null : Ee.pfValue != null ? Ee.pfValue : Ee.value; + }, c = function() { + var Ee = d(l), Ce = d(a); + r.checkTriggers(t, a.name, Ee, Ce); + }; + if (e.name === "curve-style" && t.isEdge() && // loops must be bundled beziers + (e.value !== "bezier" && t.isLoop() || // edges connected to compound nodes can not be haystacks + e.value === "haystack" && (t.source().isParent() || t.target().isParent())) && (a = e = this.parse(e.name, "bezier", u)), a.delete) + return n[a.name] = void 0, c(), !0; + if (a.deleteBypassed) + return l ? l.bypass ? (l.bypassed = void 0, c(), !0) : !1 : (c(), !0); + if (a.deleteBypass) + return l ? l.bypass ? (n[a.name] = l.bypassed, c(), !0) : !1 : (c(), !0); + var y = function() { + vt("Do not assign mappings to elements without corresponding data (i.e. ele `" + t.id() + "` has no mapping for property `" + a.name + "` with data field `" + a.field + "`); try a `[" + a.field + "]` selector to limit scope to elements with `" + a.field + "` defined"); + }; + switch (a.mapped) { + case s.mapData: { + for (var p = a.field.split("."), g = h.data, m = 0; m < p.length && g; m++) { + var b = p[m]; + g = g[b]; + } + if (g == null) + return y(), !1; + var E; + if (R(g)) { + var M = a.fieldMax - a.fieldMin; + M === 0 ? E = 0 : E = (g - a.fieldMin) / M; + } else + return vt("Do not use continuous mappers without specifying numeric data (i.e. `" + a.field + ": " + g + "` for `" + t.id() + "` is non-numeric)"), !1; + if (E < 0 ? E = 0 : E > 1 && (E = 1), o.color) { + var L = a.valueMin[0], w = a.valueMax[0], k = a.valueMin[1], D = a.valueMax[1], F = a.valueMin[2], G = a.valueMax[2], N = a.valueMin[3] == null ? 1 : a.valueMin[3], X = a.valueMax[3] == null ? 1 : a.valueMax[3], B = [Math.round(L + (w - L) * E), Math.round(k + (D - k) * E), Math.round(F + (G - F) * E), Math.round(N + (X - N) * E)]; + i = { + // colours are simple, so just create the flat property instead of expensive string parsing + bypass: a.bypass, + // we're a bypass if the mapping property is a bypass + name: a.name, + value: B, + strValue: "rgb(" + B[0] + ", " + B[1] + ", " + B[2] + ")" + }; + } else if (o.number) { + var re = a.valueMin + (a.valueMax - a.valueMin) * E; + i = this.parse(a.name, re, a.bypass, v); + } else + return !1; + if (!i) + return y(), !1; + i.mapping = a, a = i; + break; + } + case s.data: { + for (var K = a.field.split("."), W = h.data, ae = 0; ae < K.length && W; ae++) { + var ue = K[ae]; + W = W[ue]; + } + if (W != null && (i = this.parse(a.name, W, a.bypass, v)), !i) + return y(), !1; + i.mapping = a, a = i; + break; + } + case s.fn: { + var me = a.value, ie = a.fnValue != null ? a.fnValue : me(t); + if (a.prevFnValue = ie, ie == null) + return vt("Custom function mappers may not return null (i.e. `" + a.name + "` for ele `" + t.id() + "` is null)"), !1; + if (i = this.parse(a.name, ie, a.bypass, v), !i) + return vt("Custom function mappers may not return invalid values for the property type (i.e. `" + a.name + "` for ele `" + t.id() + "` is invalid)"), !1; + i.mapping = lr(a), a = i; + break; + } + case void 0: + break; + default: + return !1; + } + return u ? (f ? a.bypassed = l.bypassed : a.bypassed = l, n[a.name] = a) : f ? l.bypassed = a : n[a.name] = a, c(), !0; + }, Ft.cleanElements = function(t, e) { + for (var r = 0; r < t.length; r++) { + var a = t[r]; + if (this.clearStyleHints(a), a.dirtyCompoundBoundsCache(), a.dirtyBoundingBoxCache(), !e) + a._private.style = {}; + else + for (var n = a._private.style, i = Object.keys(n), s = 0; s < i.length; s++) { + var o = i[s], u = n[o]; + u != null && (u.bypass ? u.bypassed = null : n[o] = null); + } + } + }, Ft.update = function() { + var t = this._private.cy, e = t.mutableElements(); + e.updateStyle(); + }, Ft.updateTransitions = function(t, e) { + var r = this, a = t._private, n = t.pstyle("transition-property").value, i = t.pstyle("transition-duration").pfValue, s = t.pstyle("transition-delay").pfValue; + if (n.length > 0 && i > 0) { + for (var o = {}, u = !1, l = 0; l < n.length; l++) { + var f = n[l], h = t.pstyle(f), v = e[f]; + if (v) { + var d = v.prev, c = d, y = v.next != null ? v.next : h, p = !1, g = void 0, m = 1e-6; + c && (R(c.pfValue) && R(y.pfValue) ? (p = y.pfValue - c.pfValue, g = c.pfValue + m * p) : R(c.value) && R(y.value) ? (p = y.value - c.value, g = c.value + m * p) : te(c.value) && te(y.value) && (p = c.value[0] !== y.value[0] || c.value[1] !== y.value[1] || c.value[2] !== y.value[2], g = c.strValue), p && (o[f] = y.strValue, this.applyBypass(t, f, g), u = !0)); + } + } + if (!u) + return; + a.transitioning = !0, new ia(function(b) { + s > 0 ? t.delayAnimation(s).play().promise().then(b) : b(); + }).then(function() { + return t.animation({ + style: o, + duration: i, + easing: t.pstyle("transition-timing-function").value, + queue: !1 + }).play().promise(); + }).then(function() { + r.removeBypasses(t, n), t.emitAndNotify("style"), a.transitioning = !1; + }); + } else + a.transitioning && (this.removeBypasses(t, n), t.emitAndNotify("style"), a.transitioning = !1); + }, Ft.checkTrigger = function(t, e, r, a, n, i) { + var s = this.properties[e], o = n(s); + o != null && o(r, a) && i(s); + }, Ft.checkZOrderTrigger = function(t, e, r, a) { + var n = this; + this.checkTrigger(t, e, r, a, function(i) { + return i.triggersZOrder; + }, function() { + n._private.cy.notify("zorder", t); + }); + }, Ft.checkBoundsTrigger = function(t, e, r, a) { + this.checkTrigger(t, e, r, a, function(n) { + return n.triggersBounds; + }, function(n) { + t.dirtyCompoundBoundsCache(), t.dirtyBoundingBoxCache(), // only for beziers -- so performance of other edges isn't affected + n.triggersBoundsOfParallelBeziers && e === "curve-style" && (r === "bezier" || a === "bezier") && t.parallelEdges().forEach(function(i) { + i.isBundledBezier() && i.dirtyBoundingBoxCache(); + }), n.triggersBoundsOfConnectedEdges && e === "display" && (r === "none" || a === "none") && t.connectedEdges().forEach(function(i) { + i.dirtyBoundingBoxCache(); + }); + }); + }, Ft.checkTriggers = function(t, e, r, a) { + t.dirtyStyleCache(), this.checkZOrderTrigger(t, e, r, a), this.checkBoundsTrigger(t, e, r, a); + }; + var qa = {}; + qa.applyBypass = function(t, e, r, a) { + var n = this, i = [], s = !0; + if (e === "*" || e === "**") { + if (r !== void 0) + for (var o = 0; o < n.properties.length; o++) { + var u = n.properties[o], l = u.name, f = this.parse(l, r, !0); + f && i.push(f); + } + } else if (ee(e)) { + var h = this.parse(e, r, !0); + h && i.push(h); + } else if (S(e)) { + var v = e; + a = r; + for (var d = Object.keys(v), c = 0; c < d.length; c++) { + var y = d[c], p = v[y]; + if (p === void 0 && (p = v[yt(y)]), p !== void 0) { + var g = this.parse(y, p, !0); + g && i.push(g); + } + } + } else + return !1; + if (i.length === 0) + return !1; + for (var m = !1, b = 0; b < t.length; b++) { + for (var E = t[b], M = {}, L = void 0, w = 0; w < i.length; w++) { + var k = i[w]; + if (a) { + var D = E.pstyle(k.name); + L = M[k.name] = { + prev: D + }; + } + m = this.applyParsedProperty(E, lr(k)) || m, a && (L.next = E.pstyle(k.name)); + } + m && this.updateStyleHints(E), a && this.updateTransitions(E, M, s); + } + return m; + }, qa.overrideBypass = function(t, e, r) { + e = tt(e); + for (var a = 0; a < t.length; a++) { + var n = t[a], i = n._private.style[e], s = this.properties[e].type, o = s.color, u = s.mutiple, l = i ? i.pfValue != null ? i.pfValue : i.value : null; + !i || !i.bypass ? this.applyBypass(n, e, r) : (i.value = r, i.pfValue != null && (i.pfValue = r), o ? i.strValue = "rgb(" + r.join(",") + ")" : u ? i.strValue = r.join(" ") : i.strValue = "" + r, this.updateStyleHints(n)), this.checkTriggers(n, e, l, r); + } + }, qa.removeAllBypasses = function(t, e) { + return this.removeBypasses(t, this.propertyNames, e); + }, qa.removeBypasses = function(t, e, r) { + for (var a = !0, n = 0; n < t.length; n++) { + for (var i = t[n], s = {}, o = 0; o < e.length; o++) { + var u = e[o], l = this.properties[u], f = i.pstyle(l.name); + if (!(!f || !f.bypass)) { + var h = "", v = this.parse(u, h, !0), d = s[l.name] = { + prev: f + }; + this.applyParsedProperty(i, v), d.next = i.pstyle(l.name); + } + } + this.updateStyleHints(i), r && this.updateTransitions(i, s, a); + } + }; + var Ri = {}; + Ri.getEmSizeInPixels = function() { + var t = this.containerCss("font-size"); + return t != null ? parseFloat(t) : 1; + }, Ri.containerCss = function(t) { + var e = this._private.cy, r = e.container(), a = e.window(); + if (a && r && a.getComputedStyle) + return a.getComputedStyle(r).getPropertyValue(t); + }; + var fr = {}; + fr.getRenderedStyle = function(t, e) { + return e ? this.getStylePropertyValue(t, e, !0) : this.getRawStyle(t, !0); + }, fr.getRawStyle = function(t, e) { + var r = this; + if (t = t[0], t) { + for (var a = {}, n = 0; n < r.properties.length; n++) { + var i = r.properties[n], s = r.getStylePropertyValue(t, i.name, e); + s != null && (a[i.name] = s, a[yt(i.name)] = s); + } + return a; + } + }, fr.getIndexedStyle = function(t, e, r, a) { + var n = t.pstyle(e)[r][a]; + return n ?? t.cy().style().getDefaultProperty(e)[r][0]; + }, fr.getStylePropertyValue = function(t, e, r) { + var a = this; + if (t = t[0], t) { + var n = a.properties[e]; + n.alias && (n = n.pointsTo); + var i = n.type, s = t.pstyle(n.name); + if (s) { + var o = s.value, u = s.units, l = s.strValue; + if (r && i.number && o != null && R(o)) { + var f = t.cy().zoom(), h = function(p) { + return p * f; + }, v = function(p, g) { + return h(p) + g; + }, d = te(o), c = d ? u.every(function(y) { + return y != null; + }) : u != null; + return c ? d ? o.map(function(y, p) { + return v(y, u[p]); + }).join(" ") : v(o, u) : d ? o.map(function(y) { + return ee(y) ? y : "" + h(y); + }).join(" ") : "" + h(o); + } else if (l != null) + return l; + } + return null; + } + }, fr.getAnimationStartStyle = function(t, e) { + for (var r = {}, a = 0; a < e.length; a++) { + var n = e[a], i = n.name, s = t.pstyle(i); + s !== void 0 && (S(s) ? s = this.parse(i, s.strValue) : s = this.parse(i, s)), s && (r[i] = s); + } + return r; + }, fr.getPropsList = function(t) { + var e = this, r = [], a = t, n = e.properties; + if (a) + for (var i = Object.keys(a), s = 0; s < i.length; s++) { + var o = i[s], u = a[o], l = n[o] || n[tt(o)], f = this.parse(l.name, u); + f && r.push(f); + } + return r; + }, fr.getNonDefaultPropertiesHash = function(t, e, r) { + var a = r.slice(), n, i, s, o, u, l; + for (u = 0; u < e.length; u++) + if (n = e[u], i = t.pstyle(n, !1), i != null) + if (i.pfValue != null) + a[0] = Na(o, a[0]), a[1] = Ia(o, a[1]); + else + for (s = i.strValue, l = 0; l < s.length; l++) + o = s.charCodeAt(l), a[0] = Na(o, a[0]), a[1] = Ia(o, a[1]); + return a; + }, fr.getPropertiesHash = fr.getNonDefaultPropertiesHash; + var Un = {}; + Un.appendFromJson = function(t) { + for (var e = this, r = 0; r < t.length; r++) { + var a = t[r], n = a.selector, i = a.style || a.css, s = Object.keys(i); + e.selector(n); + for (var o = 0; o < s.length; o++) { + var u = s[o], l = i[u]; + e.css(u, l); + } + } + return e; + }, Un.fromJson = function(t) { + var e = this; + return e.resetToDefault(), e.appendFromJson(t), e; + }, Un.json = function() { + for (var t = [], e = this.defaultLength; e < this.length; e++) { + for (var r = this[e], a = r.selector, n = r.properties, i = {}, s = 0; s < n.length; s++) { + var o = n[s]; + i[o.name] = o.strValue; + } + t.push({ + selector: a ? a.toString() : "core", + style: i + }); + } + return t; + }; + var ki = {}; + ki.appendFromString = function(t) { + var e = this, r = this, a = "" + t, n, i, s; + a = a.replace(/[/][*](\s|.)+?[*][/]/g, ""); + function o() { + a.length > n.length ? a = a.substr(n.length) : a = ""; + } + function u() { + i.length > s.length ? i = i.substr(s.length) : i = ""; + } + for (; ; ) { + var l = a.match(/^\s*$/); + if (l) + break; + var f = a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/); + if (!f) { + vt("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: " + a); + break; + } + n = f[0]; + var h = f[1]; + if (h !== "core") { + var v = new Sr(h); + if (v.invalid) { + vt("Skipping parsing of block: Invalid selector found in string stylesheet: " + h), o(); + continue; + } + } + var d = f[2], c = !1; + i = d; + for (var y = []; ; ) { + var p = i.match(/^\s*$/); + if (p) + break; + var g = i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/); + if (!g) { + vt("Skipping parsing of block: Invalid formatting of style property and value definitions found in:" + d), c = !0; + break; + } + s = g[0]; + var m = g[1], b = g[2], E = e.properties[m]; + if (!E) { + vt("Skipping property: Invalid property name in: " + s), u(); + continue; + } + var M = r.parse(m, b); + if (!M) { + vt("Skipping property: Invalid property definition in: " + s), u(); + continue; + } + y.push({ + name: m, + val: b + }), u(); + } + if (c) { + o(); + break; + } + r.selector(h); + for (var L = 0; L < y.length; L++) { + var w = y[L]; + r.css(w.name, w.val); + } + o(); + } + return r; + }, ki.fromString = function(t) { + var e = this; + return e.resetToDefault(), e.appendFromString(t), e; + }; + var It = {}; + (function() { + var t = gt, e = qt, r = Kr, a = Da, n = jt, i = function(Le) { + return "^" + Le + "\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"; + }, s = function(Le) { + var Se = t + "|\\w+|" + e + "|" + r + "|" + a + "|" + n; + return "^" + Le + "\\s*\\(([\\w\\.]+)\\s*\\,\\s*(" + t + ")\\s*\\,\\s*(" + t + ")\\s*,\\s*(" + Se + ")\\s*\\,\\s*(" + Se + ")\\)$"; + }, o = [`^url\\s*\\(\\s*['"]?(.+?)['"]?\\s*\\)$`, "^(none)$", "^(.+)$"]; + It.types = { + time: { + number: !0, + min: 0, + units: "s|ms", + implicitUnits: "ms" + }, + percent: { + number: !0, + min: 0, + max: 100, + units: "%", + implicitUnits: "%" + }, + percentages: { + number: !0, + min: 0, + max: 100, + units: "%", + implicitUnits: "%", + multiple: !0 + }, + zeroOneNumber: { + number: !0, + min: 0, + max: 1, + unitless: !0 + }, + zeroOneNumbers: { + number: !0, + min: 0, + max: 1, + unitless: !0, + multiple: !0 + }, + nOneOneNumber: { + number: !0, + min: -1, + max: 1, + unitless: !0 + }, + nonNegativeInt: { + number: !0, + min: 0, + integer: !0, + unitless: !0 + }, + nonNegativeNumber: { + number: !0, + min: 0, + unitless: !0 + }, + position: { + enums: ["parent", "origin"] + }, + nodeSize: { + number: !0, + min: 0, + enums: ["label"] + }, + number: { + number: !0, + unitless: !0 + }, + numbers: { + number: !0, + unitless: !0, + multiple: !0 + }, + positiveNumber: { + number: !0, + unitless: !0, + min: 0, + strictMin: !0 + }, + size: { + number: !0, + min: 0 + }, + bidirectionalSize: { + number: !0 + }, + // allows negative + bidirectionalSizeMaybePercent: { + number: !0, + allowPercent: !0 + }, + // allows negative + bidirectionalSizes: { + number: !0, + multiple: !0 + }, + // allows negative + sizeMaybePercent: { + number: !0, + min: 0, + allowPercent: !0 + }, + axisDirection: { + enums: ["horizontal", "leftward", "rightward", "vertical", "upward", "downward", "auto"] + }, + paddingRelativeTo: { + enums: ["width", "height", "average", "min", "max"] + }, + bgWH: { + number: !0, + min: 0, + allowPercent: !0, + enums: ["auto"], + multiple: !0 + }, + bgPos: { + number: !0, + allowPercent: !0, + multiple: !0 + }, + bgRelativeTo: { + enums: ["inner", "include-padding"], + multiple: !0 + }, + bgRepeat: { + enums: ["repeat", "repeat-x", "repeat-y", "no-repeat"], + multiple: !0 + }, + bgFit: { + enums: ["none", "contain", "cover"], + multiple: !0 + }, + bgCrossOrigin: { + enums: ["anonymous", "use-credentials", "null"], + multiple: !0 + }, + bgClip: { + enums: ["none", "node"], + multiple: !0 + }, + bgContainment: { + enums: ["inside", "over"], + multiple: !0 + }, + color: { + color: !0 + }, + colors: { + color: !0, + multiple: !0 + }, + fill: { + enums: ["solid", "linear-gradient", "radial-gradient"] + }, + bool: { + enums: ["yes", "no"] + }, + bools: { + enums: ["yes", "no"], + multiple: !0 + }, + lineStyle: { + enums: ["solid", "dotted", "dashed"] + }, + lineCap: { + enums: ["butt", "round", "square"] + }, + borderStyle: { + enums: ["solid", "dotted", "dashed", "double"] + }, + curveStyle: { + enums: ["bezier", "unbundled-bezier", "haystack", "segments", "straight", "straight-triangle", "taxi"] + }, + fontFamily: { + regex: '^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$' + }, + fontStyle: { + enums: ["italic", "normal", "oblique"] + }, + fontWeight: { + enums: ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "800", "900", 100, 200, 300, 400, 500, 600, 700, 800, 900] + }, + textDecoration: { + enums: ["none", "underline", "overline", "line-through"] + }, + textTransform: { + enums: ["none", "uppercase", "lowercase"] + }, + textWrap: { + enums: ["none", "wrap", "ellipsis"] + }, + textOverflowWrap: { + enums: ["whitespace", "anywhere"] + }, + textBackgroundShape: { + enums: ["rectangle", "roundrectangle", "round-rectangle"] + }, + nodeShape: { + enums: ["rectangle", "roundrectangle", "round-rectangle", "cutrectangle", "cut-rectangle", "bottomroundrectangle", "bottom-round-rectangle", "barrel", "ellipse", "triangle", "round-triangle", "square", "pentagon", "round-pentagon", "hexagon", "round-hexagon", "concavehexagon", "concave-hexagon", "heptagon", "round-heptagon", "octagon", "round-octagon", "tag", "round-tag", "star", "diamond", "round-diamond", "vee", "rhomboid", "right-rhomboid", "polygon"] + }, + overlayShape: { + enums: ["roundrectangle", "round-rectangle", "ellipse"] + }, + compoundIncludeLabels: { + enums: ["include", "exclude"] + }, + arrowShape: { + enums: ["tee", "triangle", "triangle-tee", "circle-triangle", "triangle-cross", "triangle-backcurve", "vee", "square", "circle", "diamond", "chevron", "none"] + }, + arrowFill: { + enums: ["filled", "hollow"] + }, + arrowWidth: { + number: !0, + units: "%|px|em", + implicitUnits: "px", + enums: ["match-line"] + }, + display: { + enums: ["element", "none"] + }, + visibility: { + enums: ["hidden", "visible"] + }, + zCompoundDepth: { + enums: ["bottom", "orphan", "auto", "top"] + }, + zIndexCompare: { + enums: ["auto", "manual"] + }, + valign: { + enums: ["top", "center", "bottom"] + }, + halign: { + enums: ["left", "center", "right"] + }, + justification: { + enums: ["left", "center", "right", "auto"] + }, + text: { + string: !0 + }, + data: { + mapping: !0, + regex: i("data") + }, + layoutData: { + mapping: !0, + regex: i("layoutData") + }, + scratch: { + mapping: !0, + regex: i("scratch") + }, + mapData: { + mapping: !0, + regex: s("mapData") + }, + mapLayoutData: { + mapping: !0, + regex: s("mapLayoutData") + }, + mapScratch: { + mapping: !0, + regex: s("mapScratch") + }, + fn: { + mapping: !0, + fn: !0 + }, + url: { + regexes: o, + singleRegexMatchValue: !0 + }, + urls: { + regexes: o, + singleRegexMatchValue: !0, + multiple: !0 + }, + propList: { + propList: !0 + }, + angle: { + number: !0, + units: "deg|rad", + implicitUnits: "rad" + }, + textRotation: { + number: !0, + units: "deg|rad", + implicitUnits: "rad", + enums: ["none", "autorotate"] + }, + polygonPointList: { + number: !0, + multiple: !0, + evenMultiple: !0, + min: -1, + max: 1, + unitless: !0 + }, + edgeDistances: { + enums: ["intersection", "node-position", "endpoints"] + }, + edgeEndpoint: { + number: !0, + multiple: !0, + units: "%|px|em|deg|rad", + implicitUnits: "px", + enums: ["inside-to-node", "outside-to-node", "outside-to-node-or-label", "outside-to-line", "outside-to-line-or-label"], + singleEnum: !0, + validate: function(Le, Se) { + switch (Le.length) { + case 2: + return Se[0] !== "deg" && Se[0] !== "rad" && Se[1] !== "deg" && Se[1] !== "rad"; + case 1: + return ee(Le[0]) || Se[0] === "deg" || Se[0] === "rad"; + default: + return !1; + } + } + }, + easing: { + regexes: ["^(spring)\\s*\\(\\s*(" + t + ")\\s*,\\s*(" + t + ")\\s*\\)$", "^(cubic-bezier)\\s*\\(\\s*(" + t + ")\\s*,\\s*(" + t + ")\\s*,\\s*(" + t + ")\\s*,\\s*(" + t + ")\\s*\\)$"], + enums: ["linear", "ease", "ease-in", "ease-out", "ease-in-out", "ease-in-sine", "ease-out-sine", "ease-in-out-sine", "ease-in-quad", "ease-out-quad", "ease-in-out-quad", "ease-in-cubic", "ease-out-cubic", "ease-in-out-cubic", "ease-in-quart", "ease-out-quart", "ease-in-out-quart", "ease-in-quint", "ease-out-quint", "ease-in-out-quint", "ease-in-expo", "ease-out-expo", "ease-in-out-expo", "ease-in-circ", "ease-out-circ", "ease-in-out-circ"] + }, + gradientDirection: { + enums: [ + "to-bottom", + "to-top", + "to-left", + "to-right", + "to-bottom-right", + "to-bottom-left", + "to-top-right", + "to-top-left", + "to-right-bottom", + "to-left-bottom", + "to-right-top", + "to-left-top" + // different order + ] + }, + boundsExpansion: { + number: !0, + multiple: !0, + min: 0, + validate: function(Le) { + var Se = Le.length; + return Se === 1 || Se === 2 || Se === 4; + } + } + }; + var u = { + zeroNonZero: function(Le, Se) { + return (Le == null || Se == null) && Le !== Se || Le == 0 && Se != 0 ? !0 : Le != 0 && Se == 0; + }, + any: function(Le, Se) { + return Le != Se; + }, + emptyNonEmpty: function(Le, Se) { + var Oe = Re(Le), Fe = Re(Se); + return Oe && !Fe || !Oe && Fe; + } + }, l = It.types, f = [{ + name: "label", + type: l.text, + triggersBounds: u.any, + triggersZOrder: u.emptyNonEmpty + }, { + name: "text-rotation", + type: l.textRotation, + triggersBounds: u.any + }, { + name: "text-margin-x", + type: l.bidirectionalSize, + triggersBounds: u.any + }, { + name: "text-margin-y", + type: l.bidirectionalSize, + triggersBounds: u.any + }], h = [{ + name: "source-label", + type: l.text, + triggersBounds: u.any + }, { + name: "source-text-rotation", + type: l.textRotation, + triggersBounds: u.any + }, { + name: "source-text-margin-x", + type: l.bidirectionalSize, + triggersBounds: u.any + }, { + name: "source-text-margin-y", + type: l.bidirectionalSize, + triggersBounds: u.any + }, { + name: "source-text-offset", + type: l.size, + triggersBounds: u.any + }], v = [{ + name: "target-label", + type: l.text, + triggersBounds: u.any + }, { + name: "target-text-rotation", + type: l.textRotation, + triggersBounds: u.any + }, { + name: "target-text-margin-x", + type: l.bidirectionalSize, + triggersBounds: u.any + }, { + name: "target-text-margin-y", + type: l.bidirectionalSize, + triggersBounds: u.any + }, { + name: "target-text-offset", + type: l.size, + triggersBounds: u.any + }], d = [{ + name: "font-family", + type: l.fontFamily, + triggersBounds: u.any + }, { + name: "font-style", + type: l.fontStyle, + triggersBounds: u.any + }, { + name: "font-weight", + type: l.fontWeight, + triggersBounds: u.any + }, { + name: "font-size", + type: l.size, + triggersBounds: u.any + }, { + name: "text-transform", + type: l.textTransform, + triggersBounds: u.any + }, { + name: "text-wrap", + type: l.textWrap, + triggersBounds: u.any + }, { + name: "text-overflow-wrap", + type: l.textOverflowWrap, + triggersBounds: u.any + }, { + name: "text-max-width", + type: l.size, + triggersBounds: u.any + }, { + name: "text-outline-width", + type: l.size, + triggersBounds: u.any + }, { + name: "line-height", + type: l.positiveNumber, + triggersBounds: u.any + }], c = [{ + name: "text-valign", + type: l.valign, + triggersBounds: u.any + }, { + name: "text-halign", + type: l.halign, + triggersBounds: u.any + }, { + name: "color", + type: l.color + }, { + name: "text-outline-color", + type: l.color + }, { + name: "text-outline-opacity", + type: l.zeroOneNumber + }, { + name: "text-background-color", + type: l.color + }, { + name: "text-background-opacity", + type: l.zeroOneNumber + }, { + name: "text-background-padding", + type: l.size, + triggersBounds: u.any + }, { + name: "text-border-opacity", + type: l.zeroOneNumber + }, { + name: "text-border-color", + type: l.color + }, { + name: "text-border-width", + type: l.size, + triggersBounds: u.any + }, { + name: "text-border-style", + type: l.borderStyle, + triggersBounds: u.any + }, { + name: "text-background-shape", + type: l.textBackgroundShape, + triggersBounds: u.any + }, { + name: "text-justification", + type: l.justification + }], y = [{ + name: "events", + type: l.bool, + triggersZOrder: u.any + }, { + name: "text-events", + type: l.bool, + triggersZOrder: u.any + }], p = [{ + name: "display", + type: l.display, + triggersZOrder: u.any, + triggersBounds: u.any, + triggersBoundsOfConnectedEdges: !0 + }, { + name: "visibility", + type: l.visibility, + triggersZOrder: u.any + }, { + name: "opacity", + type: l.zeroOneNumber, + triggersZOrder: u.zeroNonZero + }, { + name: "text-opacity", + type: l.zeroOneNumber + }, { + name: "min-zoomed-font-size", + type: l.size + }, { + name: "z-compound-depth", + type: l.zCompoundDepth, + triggersZOrder: u.any + }, { + name: "z-index-compare", + type: l.zIndexCompare, + triggersZOrder: u.any + }, { + name: "z-index", + type: l.number, + triggersZOrder: u.any + }], g = [{ + name: "overlay-padding", + type: l.size, + triggersBounds: u.any + }, { + name: "overlay-color", + type: l.color + }, { + name: "overlay-opacity", + type: l.zeroOneNumber, + triggersBounds: u.zeroNonZero + }, { + name: "overlay-shape", + type: l.overlayShape, + triggersBounds: u.any + }], m = [{ + name: "underlay-padding", + type: l.size, + triggersBounds: u.any + }, { + name: "underlay-color", + type: l.color + }, { + name: "underlay-opacity", + type: l.zeroOneNumber, + triggersBounds: u.zeroNonZero + }, { + name: "underlay-shape", + type: l.overlayShape, + triggersBounds: u.any + }], b = [{ + name: "transition-property", + type: l.propList + }, { + name: "transition-duration", + type: l.time + }, { + name: "transition-delay", + type: l.time + }, { + name: "transition-timing-function", + type: l.easing + }], E = function(Le, Se) { + return Se.value === "label" ? -Le.poolIndex() : Se.pfValue; + }, M = [{ + name: "height", + type: l.nodeSize, + triggersBounds: u.any, + hashOverride: E + }, { + name: "width", + type: l.nodeSize, + triggersBounds: u.any, + hashOverride: E + }, { + name: "shape", + type: l.nodeShape, + triggersBounds: u.any + }, { + name: "shape-polygon-points", + type: l.polygonPointList, + triggersBounds: u.any + }, { + name: "background-color", + type: l.color + }, { + name: "background-fill", + type: l.fill + }, { + name: "background-opacity", + type: l.zeroOneNumber + }, { + name: "background-blacken", + type: l.nOneOneNumber + }, { + name: "background-gradient-stop-colors", + type: l.colors + }, { + name: "background-gradient-stop-positions", + type: l.percentages + }, { + name: "background-gradient-direction", + type: l.gradientDirection + }, { + name: "padding", + type: l.sizeMaybePercent, + triggersBounds: u.any + }, { + name: "padding-relative-to", + type: l.paddingRelativeTo, + triggersBounds: u.any + }, { + name: "bounds-expansion", + type: l.boundsExpansion, + triggersBounds: u.any + }], L = [{ + name: "border-color", + type: l.color + }, { + name: "border-opacity", + type: l.zeroOneNumber + }, { + name: "border-width", + type: l.size, + triggersBounds: u.any + }, { + name: "border-style", + type: l.borderStyle + }], w = [{ + name: "outline-color", + type: l.color + }, { + name: "outline-opacity", + type: l.zeroOneNumber + }, { + name: "outline-width", + type: l.size, + triggersBounds: u.any + }, { + name: "outline-style", + type: l.borderStyle + }, { + name: "outline-offset", + type: l.size, + triggersBounds: u.any + }], k = [{ + name: "background-image", + type: l.urls + }, { + name: "background-image-crossorigin", + type: l.bgCrossOrigin + }, { + name: "background-image-opacity", + type: l.zeroOneNumbers + }, { + name: "background-image-containment", + type: l.bgContainment + }, { + name: "background-image-smoothing", + type: l.bools + }, { + name: "background-position-x", + type: l.bgPos + }, { + name: "background-position-y", + type: l.bgPos + }, { + name: "background-width-relative-to", + type: l.bgRelativeTo + }, { + name: "background-height-relative-to", + type: l.bgRelativeTo + }, { + name: "background-repeat", + type: l.bgRepeat + }, { + name: "background-fit", + type: l.bgFit + }, { + name: "background-clip", + type: l.bgClip + }, { + name: "background-width", + type: l.bgWH + }, { + name: "background-height", + type: l.bgWH + }, { + name: "background-offset-x", + type: l.bgPos + }, { + name: "background-offset-y", + type: l.bgPos + }], D = [{ + name: "position", + type: l.position, + triggersBounds: u.any + }, { + name: "compound-sizing-wrt-labels", + type: l.compoundIncludeLabels, + triggersBounds: u.any + }, { + name: "min-width", + type: l.size, + triggersBounds: u.any + }, { + name: "min-width-bias-left", + type: l.sizeMaybePercent, + triggersBounds: u.any + }, { + name: "min-width-bias-right", + type: l.sizeMaybePercent, + triggersBounds: u.any + }, { + name: "min-height", + type: l.size, + triggersBounds: u.any + }, { + name: "min-height-bias-top", + type: l.sizeMaybePercent, + triggersBounds: u.any + }, { + name: "min-height-bias-bottom", + type: l.sizeMaybePercent, + triggersBounds: u.any + }], F = [{ + name: "line-style", + type: l.lineStyle + }, { + name: "line-color", + type: l.color + }, { + name: "line-fill", + type: l.fill + }, { + name: "line-cap", + type: l.lineCap + }, { + name: "line-opacity", + type: l.zeroOneNumber + }, { + name: "line-dash-pattern", + type: l.numbers + }, { + name: "line-dash-offset", + type: l.number + }, { + name: "line-gradient-stop-colors", + type: l.colors + }, { + name: "line-gradient-stop-positions", + type: l.percentages + }, { + name: "curve-style", + type: l.curveStyle, + triggersBounds: u.any, + triggersBoundsOfParallelBeziers: !0 + }, { + name: "haystack-radius", + type: l.zeroOneNumber, + triggersBounds: u.any + }, { + name: "source-endpoint", + type: l.edgeEndpoint, + triggersBounds: u.any + }, { + name: "target-endpoint", + type: l.edgeEndpoint, + triggersBounds: u.any + }, { + name: "control-point-step-size", + type: l.size, + triggersBounds: u.any + }, { + name: "control-point-distances", + type: l.bidirectionalSizes, + triggersBounds: u.any + }, { + name: "control-point-weights", + type: l.numbers, + triggersBounds: u.any + }, { + name: "segment-distances", + type: l.bidirectionalSizes, + triggersBounds: u.any + }, { + name: "segment-weights", + type: l.numbers, + triggersBounds: u.any + }, { + name: "taxi-turn", + type: l.bidirectionalSizeMaybePercent, + triggersBounds: u.any + }, { + name: "taxi-turn-min-distance", + type: l.size, + triggersBounds: u.any + }, { + name: "taxi-direction", + type: l.axisDirection, + triggersBounds: u.any + }, { + name: "edge-distances", + type: l.edgeDistances, + triggersBounds: u.any + }, { + name: "arrow-scale", + type: l.positiveNumber, + triggersBounds: u.any + }, { + name: "loop-direction", + type: l.angle, + triggersBounds: u.any + }, { + name: "loop-sweep", + type: l.angle, + triggersBounds: u.any + }, { + name: "source-distance-from-node", + type: l.size, + triggersBounds: u.any + }, { + name: "target-distance-from-node", + type: l.size, + triggersBounds: u.any + }], G = [{ + name: "ghost", + type: l.bool, + triggersBounds: u.any + }, { + name: "ghost-offset-x", + type: l.bidirectionalSize, + triggersBounds: u.any + }, { + name: "ghost-offset-y", + type: l.bidirectionalSize, + triggersBounds: u.any + }, { + name: "ghost-opacity", + type: l.zeroOneNumber + }], N = [{ + name: "selection-box-color", + type: l.color + }, { + name: "selection-box-opacity", + type: l.zeroOneNumber + }, { + name: "selection-box-border-color", + type: l.color + }, { + name: "selection-box-border-width", + type: l.size + }, { + name: "active-bg-color", + type: l.color + }, { + name: "active-bg-opacity", + type: l.zeroOneNumber + }, { + name: "active-bg-size", + type: l.size + }, { + name: "outside-texture-bg-color", + type: l.color + }, { + name: "outside-texture-bg-opacity", + type: l.zeroOneNumber + }], X = []; + It.pieBackgroundN = 16, X.push({ + name: "pie-size", + type: l.sizeMaybePercent + }); + for (var B = 1; B <= It.pieBackgroundN; B++) + X.push({ + name: "pie-" + B + "-background-color", + type: l.color + }), X.push({ + name: "pie-" + B + "-background-size", + type: l.percent + }), X.push({ + name: "pie-" + B + "-background-opacity", + type: l.zeroOneNumber + }); + var re = [], K = It.arrowPrefixes = ["source", "mid-source", "target", "mid-target"]; + [{ + name: "arrow-shape", + type: l.arrowShape, + triggersBounds: u.any + }, { + name: "arrow-color", + type: l.color + }, { + name: "arrow-fill", + type: l.arrowFill + }, { + name: "arrow-width", + type: l.arrowWidth + }].forEach(function(xe) { + K.forEach(function(Le) { + var Se = Le + "-" + xe.name, Oe = xe.type, Fe = xe.triggersBounds; + re.push({ + name: Se, + type: Oe, + triggersBounds: Fe + }); + }); + }, {}); + var W = It.properties = [].concat(y, b, p, g, m, G, c, d, f, h, v, M, L, w, k, X, D, F, re, N), ae = It.propertyGroups = { + // common to all eles + behavior: y, + transition: b, + visibility: p, + overlay: g, + underlay: m, + ghost: G, + // labels + commonLabel: c, + labelDimensions: d, + mainLabel: f, + sourceLabel: h, + targetLabel: v, + // node props + nodeBody: M, + nodeBorder: L, + nodeOutline: w, + backgroundImage: k, + pie: X, + compound: D, + // edge props + edgeLine: F, + edgeArrow: re, + core: N + }, ue = It.propertyGroupNames = {}, me = It.propertyGroupKeys = Object.keys(ae); + me.forEach(function(xe) { + ue[xe] = ae[xe].map(function(Le) { + return Le.name; + }), ae[xe].forEach(function(Le) { + return Le.groupKey = xe; + }); + }); + var ie = It.aliases = [{ + name: "content", + pointsTo: "label" + }, { + name: "control-point-distance", + pointsTo: "control-point-distances" + }, { + name: "control-point-weight", + pointsTo: "control-point-weights" + }, { + name: "edge-text-rotation", + pointsTo: "text-rotation" + }, { + name: "padding-left", + pointsTo: "padding" + }, { + name: "padding-right", + pointsTo: "padding" + }, { + name: "padding-top", + pointsTo: "padding" + }, { + name: "padding-bottom", + pointsTo: "padding" + }]; + It.propertyNames = W.map(function(xe) { + return xe.name; + }); + for (var ge = 0; ge < W.length; ge++) { + var Ee = W[ge]; + W[Ee.name] = Ee; + } + for (var Ce = 0; Ce < ie.length; Ce++) { + var we = ie[Ce], De = W[we.pointsTo], se = { + name: we.name, + alias: !0, + pointsTo: De + }; + W.push(se), W[we.name] = se; + } + })(), It.getDefaultProperty = function(t) { + return this.getDefaultProperties()[t]; + }, It.getDefaultProperties = function() { + var t = this._private; + if (t.defaultProperties != null) + return t.defaultProperties; + for (var e = He({ + // core props + "selection-box-color": "#ddd", + "selection-box-opacity": 0.65, + "selection-box-border-color": "#aaa", + "selection-box-border-width": 1, + "active-bg-color": "black", + "active-bg-opacity": 0.15, + "active-bg-size": 30, + "outside-texture-bg-color": "#000", + "outside-texture-bg-opacity": 0.125, + // common node/edge props + events: "yes", + "text-events": "no", + "text-valign": "top", + "text-halign": "center", + "text-justification": "auto", + "line-height": 1, + color: "#000", + "text-outline-color": "#000", + "text-outline-width": 0, + "text-outline-opacity": 1, + "text-opacity": 1, + "text-decoration": "none", + "text-transform": "none", + "text-wrap": "none", + "text-overflow-wrap": "whitespace", + "text-max-width": 9999, + "text-background-color": "#000", + "text-background-opacity": 0, + "text-background-shape": "rectangle", + "text-background-padding": 0, + "text-border-opacity": 0, + "text-border-width": 0, + "text-border-style": "solid", + "text-border-color": "#000", + "font-family": "Helvetica Neue, Helvetica, sans-serif", + "font-style": "normal", + "font-weight": "normal", + "font-size": 16, + "min-zoomed-font-size": 0, + "text-rotation": "none", + "source-text-rotation": "none", + "target-text-rotation": "none", + visibility: "visible", + display: "element", + opacity: 1, + "z-compound-depth": "auto", + "z-index-compare": "auto", + "z-index": 0, + label: "", + "text-margin-x": 0, + "text-margin-y": 0, + "source-label": "", + "source-text-offset": 0, + "source-text-margin-x": 0, + "source-text-margin-y": 0, + "target-label": "", + "target-text-offset": 0, + "target-text-margin-x": 0, + "target-text-margin-y": 0, + "overlay-opacity": 0, + "overlay-color": "#000", + "overlay-padding": 10, + "overlay-shape": "round-rectangle", + "underlay-opacity": 0, + "underlay-color": "#000", + "underlay-padding": 10, + "underlay-shape": "round-rectangle", + "transition-property": "none", + "transition-duration": 0, + "transition-delay": 0, + "transition-timing-function": "linear", + // node props + "background-blacken": 0, + "background-color": "#999", + "background-fill": "solid", + "background-opacity": 1, + "background-image": "none", + "background-image-crossorigin": "anonymous", + "background-image-opacity": 1, + "background-image-containment": "inside", + "background-image-smoothing": "yes", + "background-position-x": "50%", + "background-position-y": "50%", + "background-offset-x": 0, + "background-offset-y": 0, + "background-width-relative-to": "include-padding", + "background-height-relative-to": "include-padding", + "background-repeat": "no-repeat", + "background-fit": "none", + "background-clip": "node", + "background-width": "auto", + "background-height": "auto", + "border-color": "#000", + "border-opacity": 1, + "border-width": 0, + "border-style": "solid", + "outline-color": "#999", + "outline-opacity": 1, + "outline-width": 0, + "outline-offset": 0, + "outline-style": "solid", + height: 30, + width: 30, + shape: "ellipse", + "shape-polygon-points": "-1, -1, 1, -1, 1, 1, -1, 1", + "bounds-expansion": 0, + // node gradient + "background-gradient-direction": "to-bottom", + "background-gradient-stop-colors": "#999", + "background-gradient-stop-positions": "0%", + // ghost props + ghost: "no", + "ghost-offset-y": 0, + "ghost-offset-x": 0, + "ghost-opacity": 0, + // compound props + padding: 0, + "padding-relative-to": "width", + position: "origin", + "compound-sizing-wrt-labels": "include", + "min-width": 0, + "min-width-bias-left": 0, + "min-width-bias-right": 0, + "min-height": 0, + "min-height-bias-top": 0, + "min-height-bias-bottom": 0 + }, { + // node pie bg + "pie-size": "100%" + }, [{ + name: "pie-{{i}}-background-color", + value: "black" + }, { + name: "pie-{{i}}-background-size", + value: "0%" + }, { + name: "pie-{{i}}-background-opacity", + value: 1 + }].reduce(function(u, l) { + for (var f = 1; f <= It.pieBackgroundN; f++) { + var h = l.name.replace("{{i}}", f), v = l.value; + u[h] = v; + } + return u; + }, {}), { + // edge props + "line-style": "solid", + "line-color": "#999", + "line-fill": "solid", + "line-cap": "butt", + "line-opacity": 1, + "line-gradient-stop-colors": "#999", + "line-gradient-stop-positions": "0%", + "control-point-step-size": 40, + "control-point-weights": 0.5, + "segment-weights": 0.5, + "segment-distances": 20, + "taxi-turn": "50%", + "taxi-turn-min-distance": 10, + "taxi-direction": "auto", + "edge-distances": "intersection", + "curve-style": "haystack", + "haystack-radius": 0, + "arrow-scale": 1, + "loop-direction": "-45deg", + "loop-sweep": "-90deg", + "source-distance-from-node": 0, + "target-distance-from-node": 0, + "source-endpoint": "outside-to-node", + "target-endpoint": "outside-to-node", + "line-dash-pattern": [6, 3], + "line-dash-offset": 0 + }, [{ + name: "arrow-shape", + value: "none" + }, { + name: "arrow-color", + value: "#999" + }, { + name: "arrow-fill", + value: "filled" + }, { + name: "arrow-width", + value: 1 + }].reduce(function(u, l) { + return It.arrowPrefixes.forEach(function(f) { + var h = f + "-" + l.name, v = l.value; + u[h] = v; + }), u; + }, {})), r = {}, a = 0; a < this.properties.length; a++) { + var n = this.properties[a]; + if (!n.pointsTo) { + var i = n.name, s = e[i], o = this.parse(i, s); + r[i] = o; + } + } + return t.defaultProperties = r, t.defaultProperties; + }, It.addDefaultStylesheet = function() { + this.selector(":parent").css({ + shape: "rectangle", + padding: 10, + "background-color": "#eee", + "border-color": "#ccc", + "border-width": 1 + }).selector("edge").css({ + width: 3 + }).selector(":loop").css({ + "curve-style": "bezier" + }).selector("edge:compound").css({ + "curve-style": "bezier", + "source-endpoint": "outside-to-line", + "target-endpoint": "outside-to-line" + }).selector(":selected").css({ + "background-color": "#0169D9", + "line-color": "#0169D9", + "source-arrow-color": "#0169D9", + "target-arrow-color": "#0169D9", + "mid-source-arrow-color": "#0169D9", + "mid-target-arrow-color": "#0169D9" + }).selector(":parent:selected").css({ + "background-color": "#CCE1F9", + "border-color": "#aec8e5" + }).selector(":active").css({ + "overlay-color": "black", + "overlay-padding": 10, + "overlay-opacity": 0.25 + }), this.defaultLength = this.length; + }; + var $n = {}; + $n.parse = function(t, e, r, a) { + var n = this; + if (H(e)) + return n.parseImplWarn(t, e, r, a); + var i = a === "mapping" || a === !0 || a === !1 || a == null ? "dontcare" : a, s = r ? "t" : "f", o = "" + e, u = hs(t, o, s, i), l = n.propCache = n.propCache || [], f; + return (f = l[u]) || (f = l[u] = n.parseImplWarn(t, e, r, a)), (r || a === "mapping") && (f = lr(f), f && (f.value = lr(f.value))), f; + }, $n.parseImplWarn = function(t, e, r, a) { + var n = this.parseImpl(t, e, r, a); + return !n && e != null && vt("The style property `".concat(t, ": ").concat(e, "` is invalid")), n && (n.name === "width" || n.name === "height") && e === "label" && vt("The style value of `label` is deprecated for `" + n.name + "`"), n; + }, $n.parseImpl = function(t, e, r, a) { + var n = this; + t = tt(t); + var i = n.properties[t], s = e, o = n.types; + if (!i || e === void 0) + return null; + i.alias && (i = i.pointsTo, t = i.name); + var u = ee(e); + u && (e = e.trim()); + var l = i.type; + if (!l) + return null; + if (r && (e === "" || e === null)) + return { + name: t, + value: e, + bypass: !0, + deleteBypass: !0 + }; + if (H(e)) + return { + name: t, + value: e, + strValue: "fn", + mapped: o.fn, + bypass: r + }; + var f, h; + if (!(!u || a || e.length < 7 || e[1] !== "a")) { + if (e.length >= 7 && e[0] === "d" && (f = new RegExp(o.data.regex).exec(e))) { + if (r) + return !1; + var v = o.data; + return { + name: t, + value: f, + strValue: "" + e, + mapped: v, + field: f[1], + bypass: r + }; + } else if (e.length >= 10 && e[0] === "m" && (h = new RegExp(o.mapData.regex).exec(e))) { + if (r || l.multiple) + return !1; + var d = o.mapData; + if (!(l.color || l.number)) + return !1; + var c = this.parse(t, h[4]); + if (!c || c.mapped) + return !1; + var y = this.parse(t, h[5]); + if (!y || y.mapped) + return !1; + if (c.pfValue === y.pfValue || c.strValue === y.strValue) + return vt("`" + t + ": " + e + "` is not a valid mapper because the output range is zero; converting to `" + t + ": " + c.strValue + "`"), this.parse(t, c.strValue); + if (l.color) { + var p = c.value, g = y.value, m = p[0] === g[0] && p[1] === g[1] && p[2] === g[2] && // optional alpha + (p[3] === g[3] || (p[3] == null || p[3] === 1) && (g[3] == null || g[3] === 1)); + if (m) + return !1; + } + return { + name: t, + value: h, + strValue: "" + e, + mapped: d, + field: h[1], + fieldMin: parseFloat(h[2]), + // min & max are numeric + fieldMax: parseFloat(h[3]), + valueMin: c.value, + valueMax: y.value, + bypass: r + }; + } + } + if (l.multiple && a !== "multiple") { + var b; + if (u ? b = e.split(/\s+/) : te(e) ? b = e : b = [e], l.evenMultiple && b.length % 2 !== 0) + return null; + for (var E = [], M = [], L = [], w = "", k = !1, D = 0; D < b.length; D++) { + var F = n.parse(t, b[D], r, "multiple"); + k = k || ee(F.value), E.push(F.value), L.push(F.pfValue != null ? F.pfValue : F.value), M.push(F.units), w += (D > 0 ? " " : "") + F.strValue; + } + return l.validate && !l.validate(E, M) ? null : l.singleEnum && k ? E.length === 1 && ee(E[0]) ? { + name: t, + value: E[0], + strValue: E[0], + bypass: r + } : null : { + name: t, + value: E, + pfValue: L, + strValue: w, + bypass: r, + units: M + }; + } + var G = function() { + for (var Le = 0; Le < l.enums.length; Le++) { + var Se = l.enums[Le]; + if (Se === e) + return { + name: t, + value: e, + strValue: "" + e, + bypass: r + }; + } + return null; + }; + if (l.number) { + var N, X = "px"; + if (l.units && (N = l.units), l.implicitUnits && (X = l.implicitUnits), !l.unitless) + if (u) { + var B = "px|em" + (l.allowPercent ? "|\\%" : ""); + N && (B = N); + var re = e.match("^(" + gt + ")(" + B + ")?$"); + re && (e = re[1], N = re[2] || X); + } else + (!N || l.implicitUnits) && (N = X); + if (e = parseFloat(e), isNaN(e) && l.enums === void 0) + return null; + if (isNaN(e) && l.enums !== void 0) + return e = s, G(); + if (l.integer && !q(e) || l.min !== void 0 && (e < l.min || l.strictMin && e === l.min) || l.max !== void 0 && (e > l.max || l.strictMax && e === l.max)) + return null; + var K = { + name: t, + value: e, + strValue: "" + e + (N || ""), + units: N, + bypass: r + }; + return l.unitless || N !== "px" && N !== "em" ? K.pfValue = e : K.pfValue = N === "px" || !N ? e : this.getEmSizeInPixels() * e, (N === "ms" || N === "s") && (K.pfValue = N === "ms" ? e : 1e3 * e), (N === "deg" || N === "rad") && (K.pfValue = N === "rad" ? e : mf(e)), N === "%" && (K.pfValue = e / 100), K; + } else if (l.propList) { + var W = [], ae = "" + e; + if (ae !== "none") { + for (var ue = ae.split(/\s*,\s*|\s+/), me = 0; me < ue.length; me++) { + var ie = ue[me].trim(); + n.properties[ie] ? W.push(ie) : vt("`" + ie + "` is not a valid property name"); + } + if (W.length === 0) + return null; + } + return { + name: t, + value: W, + strValue: W.length === 0 ? "none" : W.join(" "), + bypass: r + }; + } else if (l.color) { + var ge = eu(e); + return ge ? { + name: t, + value: ge, + pfValue: ge, + strValue: "rgb(" + ge[0] + "," + ge[1] + "," + ge[2] + ")", + // n.b. no spaces b/c of multiple support + bypass: r + } : null; + } else if (l.regex || l.regexes) { + if (l.enums) { + var Ee = G(); + if (Ee) + return Ee; + } + for (var Ce = l.regexes ? l.regexes : [l.regex], we = 0; we < Ce.length; we++) { + var De = new RegExp(Ce[we]), se = De.exec(e); + if (se) + return { + name: t, + value: l.singleRegexMatchValue ? se[1] : se, + strValue: "" + e, + bypass: r + }; + } + return null; + } else + return l.string ? { + name: t, + value: "" + e, + strValue: "" + e, + bypass: r + } : l.enums ? G() : null; + }; + var Gt = function t(e) { + if (!(this instanceof t)) + return new t(e); + if (!Ye(e)) { + xt("A style must have a core reference"); + return; + } + this._private = { + cy: e, + coreStyle: {} + }, this.length = 0, this.resetToDefault(); + }, zt = Gt.prototype; + zt.instanceString = function() { + return "style"; + }, zt.clear = function() { + for (var t = this._private, e = t.cy, r = e.elements(), a = 0; a < this.length; a++) + this[a] = void 0; + return this.length = 0, t.contextStyles = {}, t.propDiffs = {}, this.cleanElements(r, !0), r.forEach(function(n) { + var i = n[0]._private; + i.styleDirty = !0, i.appliedInitStyle = !1; + }), this; + }, zt.resetToDefault = function() { + return this.clear(), this.addDefaultStylesheet(), this; + }, zt.core = function(t) { + return this._private.coreStyle[t] || this.getDefaultProperty(t); + }, zt.selector = function(t) { + var e = t === "core" ? null : new Sr(t), r = this.length++; + return this[r] = { + selector: e, + properties: [], + mappedProperties: [], + index: r + }, this; + }, zt.css = function() { + var t = this, e = arguments; + if (e.length === 1) + for (var r = e[0], a = 0; a < t.properties.length; a++) { + var n = t.properties[a], i = r[n.name]; + i === void 0 && (i = r[yt(n.name)]), i !== void 0 && this.cssRule(n.name, i); + } + else + e.length === 2 && this.cssRule(e[0], e[1]); + return this; + }, zt.style = zt.css, zt.cssRule = function(t, e) { + var r = this.parse(t, e); + if (r) { + var a = this.length - 1; + this[a].properties.push(r), this[a].properties[r.name] = r, r.name.match(/pie-(\d+)-background-size/) && r.value && (this._private.hasPie = !0), r.mapped && this[a].mappedProperties.push(r); + var n = !this[a].selector; + n && (this._private.coreStyle[r.name] = r); + } + return this; + }, zt.append = function(t) { + return at(t) ? t.appendToStyle(this) : te(t) ? this.appendFromJson(t) : ee(t) && this.appendFromString(t), this; + }, Gt.fromJson = function(t, e) { + var r = new Gt(t); + return r.fromJson(e), r; + }, Gt.fromString = function(t, e) { + return new Gt(t).fromString(e); + }, [Ft, qa, Ri, fr, Un, ki, It, $n].forEach(function(t) { + He(zt, t); + }), Gt.types = zt.types, Gt.properties = zt.properties, Gt.propertyGroups = zt.propertyGroups, Gt.propertyGroupNames = zt.propertyGroupNames, Gt.propertyGroupKeys = zt.propertyGroupKeys; + var Gd = { + style: function(e) { + if (e) { + var r = this.setStyle(e); + r.update(); + } + return this._private.style; + }, + setStyle: function(e) { + var r = this._private; + return at(e) ? r.style = e.generateStyle(this) : te(e) ? r.style = Gt.fromJson(this, e) : ee(e) ? r.style = Gt.fromString(this, e) : r.style = Gt(this), r.style; + }, + // e.g. cy.data() changed => recalc ele mappers + updateStyle: function() { + this.mutableElements().updateStyle(); + } + }, zd = "single", Ur = { + autolock: function(e) { + if (e !== void 0) + this._private.autolock = !!e; + else + return this._private.autolock; + return this; + }, + autoungrabify: function(e) { + if (e !== void 0) + this._private.autoungrabify = !!e; + else + return this._private.autoungrabify; + return this; + }, + autounselectify: function(e) { + if (e !== void 0) + this._private.autounselectify = !!e; + else + return this._private.autounselectify; + return this; + }, + selectionType: function(e) { + var r = this._private; + if (r.selectionType == null && (r.selectionType = zd), e !== void 0) + (e === "additive" || e === "single") && (r.selectionType = e); + else + return r.selectionType; + return this; + }, + panningEnabled: function(e) { + if (e !== void 0) + this._private.panningEnabled = !!e; + else + return this._private.panningEnabled; + return this; + }, + userPanningEnabled: function(e) { + if (e !== void 0) + this._private.userPanningEnabled = !!e; + else + return this._private.userPanningEnabled; + return this; + }, + zoomingEnabled: function(e) { + if (e !== void 0) + this._private.zoomingEnabled = !!e; + else + return this._private.zoomingEnabled; + return this; + }, + userZoomingEnabled: function(e) { + if (e !== void 0) + this._private.userZoomingEnabled = !!e; + else + return this._private.userZoomingEnabled; + return this; + }, + boxSelectionEnabled: function(e) { + if (e !== void 0) + this._private.boxSelectionEnabled = !!e; + else + return this._private.boxSelectionEnabled; + return this; + }, + pan: function() { + var e = arguments, r = this._private.pan, a, n, i, s, o; + switch (e.length) { + case 0: + return r; + case 1: + if (ee(e[0])) + return a = e[0], r[a]; + if (S(e[0])) { + if (!this._private.panningEnabled) + return this; + i = e[0], s = i.x, o = i.y, R(s) && (r.x = s), R(o) && (r.y = o), this.emit("pan viewport"); + } + break; + case 2: + if (!this._private.panningEnabled) + return this; + a = e[0], n = e[1], (a === "x" || a === "y") && R(n) && (r[a] = n), this.emit("pan viewport"); + break; + } + return this.notify("viewport"), this; + }, + panBy: function(e, r) { + var a = arguments, n = this._private.pan, i, s, o, u, l; + if (!this._private.panningEnabled) + return this; + switch (a.length) { + case 1: + S(e) && (o = a[0], u = o.x, l = o.y, R(u) && (n.x += u), R(l) && (n.y += l), this.emit("pan viewport")); + break; + case 2: + i = e, s = r, (i === "x" || i === "y") && R(s) && (n[i] += s), this.emit("pan viewport"); + break; + } + return this.notify("viewport"), this; + }, + fit: function(e, r) { + var a = this.getFitViewport(e, r); + if (a) { + var n = this._private; + n.zoom = a.zoom, n.pan = a.pan, this.emit("pan zoom viewport"), this.notify("viewport"); + } + return this; + }, + getFitViewport: function(e, r) { + if (R(e) && r === void 0 && (r = e, e = void 0), !(!this._private.panningEnabled || !this._private.zoomingEnabled)) { + var a; + if (ee(e)) { + var n = e; + e = this.$(n); + } else if (Ze(e)) { + var i = e; + a = { + x1: i.x1, + y1: i.y1, + x2: i.x2, + y2: i.y2 + }, a.w = a.x2 - a.x1, a.h = a.y2 - a.y1; + } else + pe(e) || (e = this.mutableElements()); + if (!(pe(e) && e.empty())) { + a = a || e.boundingBox(); + var s = this.width(), o = this.height(), u; + if (r = R(r) ? r : 0, !isNaN(s) && !isNaN(o) && s > 0 && o > 0 && !isNaN(a.w) && !isNaN(a.h) && a.w > 0 && a.h > 0) { + u = Math.min((s - 2 * r) / a.w, (o - 2 * r) / a.h), u = u > this._private.maxZoom ? this._private.maxZoom : u, u = u < this._private.minZoom ? this._private.minZoom : u; + var l = { + // now pan to middle + x: (s - u * (a.x1 + a.x2)) / 2, + y: (o - u * (a.y1 + a.y2)) / 2 + }; + return { + zoom: u, + pan: l + }; + } + } + } + }, + zoomRange: function(e, r) { + var a = this._private; + if (r == null) { + var n = e; + e = n.min, r = n.max; + } + return R(e) && R(r) && e <= r ? (a.minZoom = e, a.maxZoom = r) : R(e) && r === void 0 && e <= a.maxZoom ? a.minZoom = e : R(r) && e === void 0 && r >= a.minZoom && (a.maxZoom = r), this; + }, + minZoom: function(e) { + return e === void 0 ? this._private.minZoom : this.zoomRange({ + min: e + }); + }, + maxZoom: function(e) { + return e === void 0 ? this._private.maxZoom : this.zoomRange({ + max: e + }); + }, + getZoomedViewport: function(e) { + var r = this._private, a = r.pan, n = r.zoom, i, s, o = !1; + if (r.zoomingEnabled || (o = !0), R(e) ? s = e : S(e) && (s = e.level, e.position != null ? i = vn(e.position, n, a) : e.renderedPosition != null && (i = e.renderedPosition), i != null && !r.panningEnabled && (o = !0)), s = s > r.maxZoom ? r.maxZoom : s, s = s < r.minZoom ? r.minZoom : s, o || !R(s) || s === n || i != null && (!R(i.x) || !R(i.y))) + return null; + if (i != null) { + var u = a, l = n, f = s, h = { + x: -f / l * (i.x - u.x) + i.x, + y: -f / l * (i.y - u.y) + i.y + }; + return { + zoomed: !0, + panned: !0, + zoom: f, + pan: h + }; + } else + return { + zoomed: !0, + panned: !1, + zoom: s, + pan: a + }; + }, + zoom: function(e) { + if (e === void 0) + return this._private.zoom; + var r = this.getZoomedViewport(e), a = this._private; + return r == null || !r.zoomed ? this : (a.zoom = r.zoom, r.panned && (a.pan.x = r.pan.x, a.pan.y = r.pan.y), this.emit("zoom" + (r.panned ? " pan" : "") + " viewport"), this.notify("viewport"), this); + }, + viewport: function(e) { + var r = this._private, a = !0, n = !0, i = [], s = !1, o = !1; + if (!e) + return this; + if (R(e.zoom) || (a = !1), S(e.pan) || (n = !1), !a && !n) + return this; + if (a) { + var u = e.zoom; + u < r.minZoom || u > r.maxZoom || !r.zoomingEnabled ? s = !0 : (r.zoom = u, i.push("zoom")); + } + if (n && (!s || !e.cancelOnFailedZoom) && r.panningEnabled) { + var l = e.pan; + R(l.x) && (r.pan.x = l.x, o = !1), R(l.y) && (r.pan.y = l.y, o = !1), o || i.push("pan"); + } + return i.length > 0 && (i.push("viewport"), this.emit(i.join(" ")), this.notify("viewport")), this; + }, + center: function(e) { + var r = this.getCenterPan(e); + return r && (this._private.pan = r, this.emit("pan viewport"), this.notify("viewport")), this; + }, + getCenterPan: function(e, r) { + if (this._private.panningEnabled) { + if (ee(e)) { + var a = e; + e = this.mutableElements().filter(a); + } else + pe(e) || (e = this.mutableElements()); + if (e.length !== 0) { + var n = e.boundingBox(), i = this.width(), s = this.height(); + r = r === void 0 ? this._private.zoom : r; + var o = { + // middle + x: (i - r * (n.x1 + n.x2)) / 2, + y: (s - r * (n.y1 + n.y2)) / 2 + }; + return o; + } + } + }, + reset: function() { + return !this._private.panningEnabled || !this._private.zoomingEnabled ? this : (this.viewport({ + pan: { + x: 0, + y: 0 + }, + zoom: 1 + }), this); + }, + invalidateSize: function() { + this._private.sizeCache = null; + }, + size: function() { + var e = this._private, r = e.container, a = this; + return e.sizeCache = e.sizeCache || (r ? function() { + var n = a.window().getComputedStyle(r), i = function(o) { + return parseFloat(n.getPropertyValue(o)); + }; + return { + width: r.clientWidth - i("padding-left") - i("padding-right"), + height: r.clientHeight - i("padding-top") - i("padding-bottom") + }; + }() : { + // fallback if no container (not 0 b/c can be used for dividing etc) + width: 1, + height: 1 + }); + }, + width: function() { + return this.size().width; + }, + height: function() { + return this.size().height; + }, + extent: function() { + var e = this._private.pan, r = this._private.zoom, a = this.renderedExtent(), n = { + x1: (a.x1 - e.x) / r, + x2: (a.x2 - e.x) / r, + y1: (a.y1 - e.y) / r, + y2: (a.y2 - e.y) / r + }; + return n.w = n.x2 - n.x1, n.h = n.y2 - n.y1, n; + }, + renderedExtent: function() { + var e = this.width(), r = this.height(); + return { + x1: 0, + y1: 0, + x2: e, + y2: r, + w: e, + h: r + }; + }, + multiClickDebounceTime: function(e) { + if (e) + this._private.multiClickDebounceTime = e; + else + return this._private.multiClickDebounceTime; + return this; + } + }; + Ur.centre = Ur.center, Ur.autolockNodes = Ur.autolock, Ur.autoungrabifyNodes = Ur.autoungrabify; + var Ka = { + data: ct.data({ + field: "data", + bindingEvent: "data", + allowBinding: !0, + allowSetting: !0, + settingEvent: "data", + settingTriggersEvent: !0, + triggerFnName: "trigger", + allowGetting: !0, + updateStyle: !0 + }), + removeData: ct.removeData({ + field: "data", + event: "data", + triggerFnName: "trigger", + triggerEvent: !0, + updateStyle: !0 + }), + scratch: ct.data({ + field: "scratch", + bindingEvent: "scratch", + allowBinding: !0, + allowSetting: !0, + settingEvent: "scratch", + settingTriggersEvent: !0, + triggerFnName: "trigger", + allowGetting: !0, + updateStyle: !0 + }), + removeScratch: ct.removeData({ + field: "scratch", + event: "scratch", + triggerFnName: "trigger", + triggerEvent: !0, + updateStyle: !0 + }) + }; + Ka.attr = Ka.data, Ka.removeAttr = Ka.removeData; + var Za = function(e) { + var r = this; + e = He({}, e); + var a = e.container; + a && !ve(a) && ve(a[0]) && (a = a[0]); + var n = a ? a._cyreg : null; + n = n || {}, n && n.cy && (n.cy.destroy(), n = {}); + var i = n.readies = n.readies || []; + a && (a._cyreg = n), n.cy = r; + var s = A !== void 0 && a !== void 0 && !e.headless, o = e; + o.layout = He({ + name: s ? "grid" : "null" + }, o.layout), o.renderer = He({ + name: s ? "canvas" : "null" + }, o.renderer); + var u = function(c, y, p) { + return y !== void 0 ? y : p !== void 0 ? p : c; + }, l = this._private = { + container: a, + // html dom ele container + ready: !1, + // whether ready has been triggered + options: o, + // cached options + elements: new Nt(this), + // elements in the graph + listeners: [], + // list of listeners + aniEles: new Nt(this), + // elements being animated + data: o.data || {}, + // data for the core + scratch: {}, + // scratch object for core + layout: null, + renderer: null, + destroyed: !1, + // whether destroy was called + notificationsEnabled: !0, + // whether notifications are sent to the renderer + minZoom: 1e-50, + maxZoom: 1e50, + zoomingEnabled: u(!0, o.zoomingEnabled), + userZoomingEnabled: u(!0, o.userZoomingEnabled), + panningEnabled: u(!0, o.panningEnabled), + userPanningEnabled: u(!0, o.userPanningEnabled), + boxSelectionEnabled: u(!0, o.boxSelectionEnabled), + autolock: u(!1, o.autolock, o.autolockNodes), + autoungrabify: u(!1, o.autoungrabify, o.autoungrabifyNodes), + autounselectify: u(!1, o.autounselectify), + styleEnabled: o.styleEnabled === void 0 ? s : o.styleEnabled, + zoom: R(o.zoom) ? o.zoom : 1, + pan: { + x: S(o.pan) && R(o.pan.x) ? o.pan.x : 0, + y: S(o.pan) && R(o.pan.y) ? o.pan.y : 0 + }, + animation: { + // object for currently-running animations + current: [], + queue: [] + }, + hasCompoundNodes: !1, + multiClickDebounceTime: u(250, o.multiClickDebounceTime) + }; + this.createEmitter(), this.selectionType(o.selectionType), this.zoomRange({ + min: o.minZoom, + max: o.maxZoom + }); + var f = function(c, y) { + var p = c.some(nt); + if (p) + return ia.all(c).then(y); + y(c); + }; + l.styleEnabled && r.setStyle([]); + var h = He({}, o, o.renderer); + r.initRenderer(h); + var v = function(c, y, p) { + r.notifications(!1); + var g = r.mutableElements(); + g.length > 0 && g.remove(), c != null && (S(c) || te(c)) && r.add(c), r.one("layoutready", function(b) { + r.notifications(!0), r.emit(b), r.one("load", y), r.emitAndNotify("load"); + }).one("layoutstop", function() { + r.one("done", p), r.emit("done"); + }); + var m = He({}, r._private.options.layout); + m.eles = r.elements(), r.layout(m).run(); + }; + f([o.style, o.elements], function(d) { + var c = d[0], y = d[1]; + l.styleEnabled && r.style().append(c), v(y, function() { + r.startAnimationLoop(), l.ready = !0, H(o.ready) && r.on("ready", o.ready); + for (var p = 0; p < i.length; p++) { + var g = i[p]; + r.on("ready", g); + } + n && (n.readies = []), r.emit("ready"); + }, o.done); + }); + }, _n = Za.prototype; + He(_n, { + instanceString: function() { + return "core"; + }, + isReady: function() { + return this._private.ready; + }, + destroyed: function() { + return this._private.destroyed; + }, + ready: function(e) { + return this.isReady() ? this.emitter().emit("ready", [], e) : this.on("ready", e), this; + }, + destroy: function() { + var e = this; + if (!e.destroyed()) + return e.stopAnimationLoop(), e.destroyRenderer(), this.emit("destroy"), e._private.destroyed = !0, e; + }, + hasElementWithId: function(e) { + return this._private.elements.hasElementWithId(e); + }, + getElementById: function(e) { + return this._private.elements.getElementById(e); + }, + hasCompoundNodes: function() { + return this._private.hasCompoundNodes; + }, + headless: function() { + return this._private.renderer.isHeadless(); + }, + styleEnabled: function() { + return this._private.styleEnabled; + }, + addToPool: function(e) { + return this._private.elements.merge(e), this; + }, + removeFromPool: function(e) { + return this._private.elements.unmerge(e), this; + }, + container: function() { + return this._private.container || null; + }, + window: function() { + var e = this._private.container; + if (e == null) + return A; + var r = this._private.container.ownerDocument; + return r === void 0 || r == null ? A : r.defaultView || A; + }, + mount: function(e) { + if (e != null) { + var r = this, a = r._private, n = a.options; + return !ve(e) && ve(e[0]) && (e = e[0]), r.stopAnimationLoop(), r.destroyRenderer(), a.container = e, a.styleEnabled = !0, r.invalidateSize(), r.initRenderer(He({}, n, n.renderer, { + // allow custom renderer name to be re-used, otherwise use canvas + name: n.renderer.name === "null" ? "canvas" : n.renderer.name + })), r.startAnimationLoop(), r.style(n.style), r.emit("mount"), r; + } + }, + unmount: function() { + var e = this; + return e.stopAnimationLoop(), e.destroyRenderer(), e.initRenderer({ + name: "null" + }), e.emit("unmount"), e; + }, + options: function() { + return lr(this._private.options); + }, + json: function(e) { + var r = this, a = r._private, n = r.mutableElements(), i = function(E) { + return r.getElementById(E.id()); + }; + if (S(e)) { + if (r.startBatch(), e.elements) { + var s = {}, o = function(E, M) { + for (var L = [], w = [], k = 0; k < E.length; k++) { + var D = E[k]; + if (!D.data.id) { + vt("cy.json() cannot handle elements without an ID attribute"); + continue; + } + var F = "" + D.data.id, G = r.getElementById(F); + s[F] = !0, G.length !== 0 ? w.push({ + ele: G, + json: D + }) : (M && (D.group = M), L.push(D)); + } + r.add(L); + for (var N = 0; N < w.length; N++) { + var X = w[N], B = X.ele, re = X.json; + B.json(re); + } + }; + if (te(e.elements)) + o(e.elements); + else + for (var u = ["nodes", "edges"], l = 0; l < u.length; l++) { + var f = u[l], h = e.elements[f]; + te(h) && o(h, f); + } + var v = r.collection(); + n.filter(function(b) { + return !s[b.id()]; + }).forEach(function(b) { + b.isParent() ? v.merge(b) : b.remove(); + }), v.forEach(function(b) { + return b.children().move({ + parent: null + }); + }), v.forEach(function(b) { + return i(b).remove(); + }); + } + e.style && r.style(e.style), e.zoom != null && e.zoom !== a.zoom && r.zoom(e.zoom), e.pan && (e.pan.x !== a.pan.x || e.pan.y !== a.pan.y) && r.pan(e.pan), e.data && r.data(e.data); + for (var d = ["minZoom", "maxZoom", "zoomingEnabled", "userZoomingEnabled", "panningEnabled", "userPanningEnabled", "boxSelectionEnabled", "autolock", "autoungrabify", "autounselectify", "multiClickDebounceTime"], c = 0; c < d.length; c++) { + var y = d[c]; + e[y] != null && r[y](e[y]); + } + return r.endBatch(), this; + } else { + var p = !!e, g = {}; + p ? g.elements = this.elements().map(function(b) { + return b.json(); + }) : (g.elements = {}, n.forEach(function(b) { + var E = b.group(); + g.elements[E] || (g.elements[E] = []), g.elements[E].push(b.json()); + })), this._private.styleEnabled && (g.style = r.style().json()), g.data = lr(r.data()); + var m = a.options; + return g.zoomingEnabled = a.zoomingEnabled, g.userZoomingEnabled = a.userZoomingEnabled, g.zoom = a.zoom, g.minZoom = a.minZoom, g.maxZoom = a.maxZoom, g.panningEnabled = a.panningEnabled, g.userPanningEnabled = a.userPanningEnabled, g.pan = lr(a.pan), g.boxSelectionEnabled = a.boxSelectionEnabled, g.renderer = lr(m.renderer), g.hideEdgesOnViewport = m.hideEdgesOnViewport, g.textureOnViewport = m.textureOnViewport, g.wheelSensitivity = m.wheelSensitivity, g.motionBlur = m.motionBlur, g.multiClickDebounceTime = m.multiClickDebounceTime, g; + } + } + }), _n.$id = _n.getElementById, [Ad, Rd, Yo, Ii, zn, Pd, Mi, Vn, Gd, Ur, Ka].forEach(function(t) { + He(_n, t); + }); + var Vd = { + fit: !0, + // whether to fit the viewport to the graph + directed: !1, + // whether the tree is directed downwards (or edges can point in any direction if false) + padding: 30, + // padding on fit + circle: !1, + // put depths in concentric circles if true, put depths top down if false + grid: !1, + // whether to create an even grid into which the DAG is placed (circle:false only) + spacingFactor: 1.75, + // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap) + boundingBox: void 0, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: !0, + // prevents node overlap, may overflow boundingBox if not enough space + nodeDimensionsIncludeLabels: !1, + // Excludes the label when calculating node bounding boxes for the layout algorithm + roots: void 0, + // the roots of the trees + depthSort: void 0, + // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') } + animate: !1, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: void 0, + // easing of animation if enabled, + animateFilter: function(e, r) { + return !0; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: void 0, + // callback on layoutready + stop: void 0, + // callback on layoutstop + transform: function(e, r) { + return r; + } + // transform a given node position. Useful for changing flow direction in discrete layouts + }, Ud = { + maximal: !1, + // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only); setting acyclic to true sets maximal to true also + acyclic: !1 + // whether the tree is acyclic and thus a node could be shifted (due to the maximal option) multiple times without causing an infinite loop; setting to true sets maximal to true also; if you are uncertain whether a tree is acyclic, set to false to avoid potential infinite loops + }, pa = function(e) { + return e.scratch("breadthfirst"); + }, Ho = function(e, r) { + return e.scratch("breadthfirst", r); + }; + function Xo(t) { + this.options = He({}, Vd, Ud, t); + } + Xo.prototype.run = function() { + var t = this.options, e = t, r = t.cy, a = e.eles, n = a.nodes().filter(function(Ie) { + return !Ie.isParent(); + }), i = a, s = e.directed, o = e.acyclic || e.maximal || e.maximalAdjustments > 0, u = Yt(e.boundingBox ? e.boundingBox : { + x1: 0, + y1: 0, + w: r.width(), + h: r.height() + }), l; + if (pe(e.roots)) + l = e.roots; + else if (te(e.roots)) { + for (var f = [], h = 0; h < e.roots.length; h++) { + var v = e.roots[h], d = r.getElementById(v); + f.push(d); + } + l = r.collection(f); + } else if (ee(e.roots)) + l = r.$(e.roots); + else if (s) + l = n.roots(); + else { + var c = a.components(); + l = r.collection(); + for (var y = function(Me) { + var Ue = c[Me], ze = Ue.maxDegree(!1), Be = Ue.filter(function($e) { + return $e.degree(!1) === ze; + }); + l = l.add(Be); + }, p = 0; p < c.length; p++) + y(p); + } + var g = [], m = {}, b = function(Me, Ue) { + g[Ue] == null && (g[Ue] = []); + var ze = g[Ue].length; + g[Ue].push(Me), Ho(Me, { + index: ze, + depth: Ue + }); + }, E = function(Me, Ue) { + var ze = pa(Me), Be = ze.depth, $e = ze.index; + g[Be][$e] = null, b(Me, Ue); + }; + i.bfs({ + roots: l, + directed: e.directed, + visit: function(Me, Ue, ze, Be, $e) { + var rt = Me[0], je = rt.id(); + b(rt, $e), m[je] = !0; + } + }); + for (var M = [], L = 0; L < n.length; L++) { + var w = n[L]; + m[w.id()] || M.push(w); + } + var k = function(Me) { + for (var Ue = g[Me], ze = 0; ze < Ue.length; ze++) { + var Be = Ue[ze]; + if (Be == null) { + Ue.splice(ze, 1), ze--; + continue; + } + Ho(Be, { + depth: Me, + index: ze + }); + } + }, D = function() { + for (var Me = 0; Me < g.length; Me++) + k(Me); + }, F = function(Me, Ue) { + for (var ze = pa(Me), Be = Me.incomers().filter(function(O) { + return O.isNode() && a.has(O); + }), $e = -1, rt = Me.id(), je = 0; je < Be.length; je++) { + var We = Be[je], et = pa(We); + $e = Math.max($e, et.depth); + } + if (ze.depth <= $e) { + if (!e.acyclic && Ue[rt]) + return null; + var he = $e + 1; + return E(Me, he), Ue[rt] = he, !0; + } + return !1; + }; + if (s && o) { + var G = [], N = {}, X = function(Me) { + return G.push(Me); + }, B = function() { + return G.shift(); + }; + for (n.forEach(function(Ie) { + return G.push(Ie); + }); G.length > 0; ) { + var re = B(), K = F(re, N); + if (K) + re.outgoers().filter(function(Ie) { + return Ie.isNode() && a.has(Ie); + }).forEach(X); + else if (K === null) { + vt("Detected double maximal shift for node `" + re.id() + "`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs."); + break; + } + } + } + D(); + var W = 0; + if (e.avoidOverlap) + for (var ae = 0; ae < n.length; ae++) { + var ue = n[ae], me = ue.layoutDimensions(e), ie = me.w, ge = me.h; + W = Math.max(W, ie, ge); + } + var Ee = {}, Ce = function(Me) { + if (Ee[Me.id()]) + return Ee[Me.id()]; + for (var Ue = pa(Me).depth, ze = Me.neighborhood(), Be = 0, $e = 0, rt = 0; rt < ze.length; rt++) { + var je = ze[rt]; + if (!(je.isEdge() || je.isParent() || !n.has(je))) { + var We = pa(je); + if (We != null) { + var et = We.index, he = We.depth; + if (!(et == null || he == null)) { + var O = g[he].length; + he < Ue && (Be += et / O, $e++); + } + } + } + } + return $e = Math.max(1, $e), Be = Be / $e, $e === 0 && (Be = 0), Ee[Me.id()] = Be, Be; + }, we = function(Me, Ue) { + var ze = Ce(Me), Be = Ce(Ue), $e = ze - Be; + return $e === 0 ? es(Me.id(), Ue.id()) : $e; + }; + e.depthSort !== void 0 && (we = e.depthSort); + for (var De = 0; De < g.length; De++) + g[De].sort(we), k(De); + for (var se = [], xe = 0; xe < M.length; xe++) + se.push(M[xe]); + g.unshift(se), D(); + for (var Le = 0, Se = 0; Se < g.length; Se++) + Le = Math.max(g[Se].length, Le); + var Oe = { + x: u.x1 + u.w / 2, + y: u.x1 + u.h / 2 + }, Fe = g.reduce(function(Ie, Me) { + return Math.max(Ie, Me.length); + }, 0), Xe = function(Me) { + var Ue = pa(Me), ze = Ue.depth, Be = Ue.index, $e = g[ze].length, rt = Math.max(u.w / ((e.grid ? Fe : $e) + 1), W), je = Math.max(u.h / (g.length + 1), W), We = Math.min(u.w / 2 / g.length, u.h / 2 / g.length); + if (We = Math.max(We, W), e.circle) { + var he = We * ze + We - (g.length > 0 && g[0].length <= 3 ? We / 2 : 0), O = 2 * Math.PI / g[ze].length * Be; + return ze === 0 && g[0].length === 1 && (he = 1), { + x: Oe.x + he * Math.cos(O), + y: Oe.y + he * Math.sin(O) + }; + } else { + var et = { + x: Oe.x + (Be + 1 - ($e + 1) / 2) * rt, + y: (ze + 1) * je + }; + return et; + } + }; + return a.nodes().layoutPositions(this, e, Xe), this; + }; + var $d = { + fit: !0, + // whether to fit the viewport to the graph + padding: 30, + // the padding on fit + boundingBox: void 0, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: !0, + // prevents node overlap, may overflow boundingBox and radius if not enough space + nodeDimensionsIncludeLabels: !1, + // Excludes the label when calculating node bounding boxes for the layout algorithm + spacingFactor: void 0, + // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up + radius: void 0, + // the radius of the circle + startAngle: 3 / 2 * Math.PI, + // where nodes start in radians + sweep: void 0, + // how many radians should be between the first and last node (defaults to full circle) + clockwise: !0, + // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false) + sort: void 0, + // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') } + animate: !1, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: void 0, + // easing of animation if enabled + animateFilter: function(e, r) { + return !0; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: void 0, + // callback on layoutready + stop: void 0, + // callback on layoutstop + transform: function(e, r) { + return r; + } + // transform a given node position. Useful for changing flow direction in discrete layouts + }; + function Wo(t) { + this.options = He({}, $d, t); + } + Wo.prototype.run = function() { + var t = this.options, e = t, r = t.cy, a = e.eles, n = e.counterclockwise !== void 0 ? !e.counterclockwise : e.clockwise, i = a.nodes().not(":parent"); + e.sort && (i = i.sort(e.sort)); + for (var s = Yt(e.boundingBox ? e.boundingBox : { + x1: 0, + y1: 0, + w: r.width(), + h: r.height() + }), o = { + x: s.x1 + s.w / 2, + y: s.y1 + s.h / 2 + }, u = e.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / i.length : e.sweep, l = u / Math.max(1, i.length - 1), f, h = 0, v = 0; v < i.length; v++) { + var d = i[v], c = d.layoutDimensions(e), y = c.w, p = c.h; + h = Math.max(h, y, p); + } + if (R(e.radius) ? f = e.radius : i.length <= 1 ? f = 0 : f = Math.min(s.h, s.w) / 2 - h, i.length > 1 && e.avoidOverlap) { + h *= 1.75; + var g = Math.cos(l) - Math.cos(0), m = Math.sin(l) - Math.sin(0), b = Math.sqrt(h * h / (g * g + m * m)); + f = Math.max(b, f); + } + var E = function(L, w) { + var k = e.startAngle + w * l * (n ? 1 : -1), D = f * Math.cos(k), F = f * Math.sin(k), G = { + x: o.x + D, + y: o.y + F + }; + return G; + }; + return a.nodes().layoutPositions(this, e, E), this; + }; + var _d = { + fit: !0, + // whether to fit the viewport to the graph + padding: 30, + // the padding on fit + startAngle: 3 / 2 * Math.PI, + // where nodes start in radians + sweep: void 0, + // how many radians should be between the first and last node (defaults to full circle) + clockwise: !0, + // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false) + equidistant: !1, + // whether levels have an equal radial distance betwen them, may cause bounding box overflow + minNodeSpacing: 10, + // min spacing between outside of nodes (used for radius adjustment) + boundingBox: void 0, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: !0, + // prevents node overlap, may overflow boundingBox if not enough space + nodeDimensionsIncludeLabels: !1, + // Excludes the label when calculating node bounding boxes for the layout algorithm + height: void 0, + // height of layout area (overrides container height) + width: void 0, + // width of layout area (overrides container width) + spacingFactor: void 0, + // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up + concentric: function(e) { + return e.degree(); + }, + levelWidth: function(e) { + return e.maxDegree() / 4; + }, + animate: !1, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: void 0, + // easing of animation if enabled + animateFilter: function(e, r) { + return !0; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: void 0, + // callback on layoutready + stop: void 0, + // callback on layoutstop + transform: function(e, r) { + return r; + } + // transform a given node position. Useful for changing flow direction in discrete layouts + }; + function qo(t) { + this.options = He({}, _d, t); + } + qo.prototype.run = function() { + for (var t = this.options, e = t, r = e.counterclockwise !== void 0 ? !e.counterclockwise : e.clockwise, a = t.cy, n = e.eles, i = n.nodes().not(":parent"), s = Yt(e.boundingBox ? e.boundingBox : { + x1: 0, + y1: 0, + w: a.width(), + h: a.height() + }), o = { + x: s.x1 + s.w / 2, + y: s.y1 + s.h / 2 + }, u = [], l = 0, f = 0; f < i.length; f++) { + var h = i[f], v = void 0; + v = e.concentric(h), u.push({ + value: v, + node: h + }), h._private.scratch.concentric = v; + } + i.updateStyle(); + for (var d = 0; d < i.length; d++) { + var c = i[d], y = c.layoutDimensions(e); + l = Math.max(l, y.w, y.h); + } + u.sort(function(Ie, Me) { + return Me.value - Ie.value; + }); + for (var p = e.levelWidth(i), g = [[]], m = g[0], b = 0; b < u.length; b++) { + var E = u[b]; + if (m.length > 0) { + var M = Math.abs(m[0].value - E.value); + M >= p && (m = [], g.push(m)); + } + m.push(E); + } + var L = l + e.minNodeSpacing; + if (!e.avoidOverlap) { + var w = g.length > 0 && g[0].length > 1, k = Math.min(s.w, s.h) / 2 - L, D = k / (g.length + w ? 1 : 0); + L = Math.min(L, D); + } + for (var F = 0, G = 0; G < g.length; G++) { + var N = g[G], X = e.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / N.length : e.sweep, B = N.dTheta = X / Math.max(1, N.length - 1); + if (N.length > 1 && e.avoidOverlap) { + var re = Math.cos(B) - Math.cos(0), K = Math.sin(B) - Math.sin(0), W = Math.sqrt(L * L / (re * re + K * K)); + F = Math.max(W, F); + } + N.r = F, F += L; + } + if (e.equidistant) { + for (var ae = 0, ue = 0, me = 0; me < g.length; me++) { + var ie = g[me], ge = ie.r - ue; + ae = Math.max(ae, ge); + } + ue = 0; + for (var Ee = 0; Ee < g.length; Ee++) { + var Ce = g[Ee]; + Ee === 0 && (ue = Ce.r), Ce.r = ue, ue += ae; + } + } + for (var we = {}, De = 0; De < g.length; De++) + for (var se = g[De], xe = se.dTheta, Le = se.r, Se = 0; Se < se.length; Se++) { + var Oe = se[Se], Fe = e.startAngle + (r ? 1 : -1) * xe * Se, Xe = { + x: o.x + Le * Math.cos(Fe), + y: o.y + Le * Math.sin(Fe) + }; + we[Oe.node.id()] = Xe; + } + return n.nodes().layoutPositions(this, e, function(Ie) { + var Me = Ie.id(); + return we[Me]; + }), this; + }; + var Pi, Yd = { + // Called on `layoutready` + ready: function() { + }, + // Called on `layoutstop` + stop: function() { + }, + // Whether to animate while running the layout + // true : Animate continuously as the layout is running + // false : Just show the end result + // 'end' : Animate with the end result, from the initial positions to the end positions + animate: !0, + // Easing of the animation for animate:'end' + animationEasing: void 0, + // The duration of the animation for animate:'end' + animationDuration: void 0, + // A function that determines whether the node should be animated + // All nodes animated by default on animate enabled + // Non-animated nodes are positioned immediately when the layout starts + animateFilter: function(e, r) { + return !0; + }, + // The layout animates only after this many milliseconds for animate:true + // (prevents flashing on fast runs) + animationThreshold: 250, + // Number of iterations between consecutive screen positions update + refresh: 20, + // Whether to fit the network view after when done + fit: !0, + // Padding on fit + padding: 30, + // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + boundingBox: void 0, + // Excludes the label when calculating node bounding boxes for the layout algorithm + nodeDimensionsIncludeLabels: !1, + // Randomize the initial positions of the nodes (true) or use existing positions (false) + randomize: !1, + // Extra spacing between components in non-compound graphs + componentSpacing: 40, + // Node repulsion (non overlapping) multiplier + nodeRepulsion: function(e) { + return 2048; + }, + // Node repulsion (overlapping) multiplier + nodeOverlap: 4, + // Ideal edge (non nested) length + idealEdgeLength: function(e) { + return 32; + }, + // Divisor to compute edge forces + edgeElasticity: function(e) { + return 32; + }, + // Nesting factor (multiplier) to compute ideal edge length for nested edges + nestingFactor: 1.2, + // Gravity force (constant) + gravity: 1, + // Maximum number of iterations to perform + numIter: 1e3, + // Initial temperature (maximum node displacement) + initialTemp: 1e3, + // Cooling factor (how the temperature is reduced between consecutive iterations + coolingFactor: 0.99, + // Lower temperature threshold (below this point the layout will end) + minTemp: 1 + }; + function Yn(t) { + this.options = He({}, Yd, t), this.options.layout = this; + var e = this.options.eles.nodes(), r = this.options.eles.edges(), a = r.filter(function(n) { + var i = n.source().data("id"), s = n.target().data("id"), o = e.some(function(l) { + return l.data("id") === i; + }), u = e.some(function(l) { + return l.data("id") === s; + }); + return !o || !u; + }); + this.options.eles = this.options.eles.not(a); + } + Yn.prototype.run = function() { + var t = this.options, e = t.cy, r = this; + r.stopped = !1, (t.animate === !0 || t.animate === !1) && r.emit({ + type: "layoutstart", + layout: r + }), t.debug === !0 ? Pi = !0 : Pi = !1; + var a = Hd(e, r, t); + Pi && qd(a), t.randomize && Kd(a); + var n = gr(), i = function() { + Zd(a, e, t), t.fit === !0 && e.fit(t.padding); + }, s = function(v) { + return !(r.stopped || v >= t.numIter || (Qd(a, t), a.temperature = a.temperature * t.coolingFactor, a.temperature < t.minTemp)); + }, o = function() { + if (t.animate === !0 || t.animate === !1) + i(), r.one("layoutstop", t.stop), r.emit({ + type: "layoutstop", + layout: r + }); + else { + var v = t.eles.nodes(), d = Ko(a, t, v); + v.layoutPositions(r, t, d); + } + }, u = 0, l = !0; + if (t.animate === !0) { + var f = function h() { + for (var v = 0; l && v < t.refresh; ) + l = s(u), u++, v++; + if (!l) + Qo(a, t), o(); + else { + var d = gr(); + d - n >= t.animationThreshold && i(), ln(h); + } + }; + f(); + } else { + for (; l; ) + l = s(u), u++; + Qo(a, t), o(); + } + return this; + }, Yn.prototype.stop = function() { + return this.stopped = !0, this.thread && this.thread.stop(), this.emit("layoutstop"), this; + }, Yn.prototype.destroy = function() { + return this.thread && this.thread.stop(), this; + }; + var Hd = function(e, r, a) { + for (var n = a.eles.edges(), i = a.eles.nodes(), s = Yt(a.boundingBox ? a.boundingBox : { + x1: 0, + y1: 0, + w: e.width(), + h: e.height() + }), o = { + isCompound: e.hasCompoundNodes(), + layoutNodes: [], + idToIndex: {}, + nodeSize: i.size(), + graphSet: [], + indexToGraph: [], + layoutEdges: [], + edgeSize: n.size(), + temperature: a.initialTemp, + clientWidth: s.w, + clientHeight: s.h, + boundingBox: s + }, u = a.eles.components(), l = {}, f = 0; f < u.length; f++) + for (var h = u[f], v = 0; v < h.length; v++) { + var d = h[v]; + l[d.id()] = f; + } + for (var f = 0; f < o.nodeSize; f++) { + var c = i[f], y = c.layoutDimensions(a), p = {}; + p.isLocked = c.locked(), p.id = c.data("id"), p.parentId = c.data("parent"), p.cmptId = l[c.id()], p.children = [], p.positionX = c.position("x"), p.positionY = c.position("y"), p.offsetX = 0, p.offsetY = 0, p.height = y.w, p.width = y.h, p.maxX = p.positionX + p.width / 2, p.minX = p.positionX - p.width / 2, p.maxY = p.positionY + p.height / 2, p.minY = p.positionY - p.height / 2, p.padLeft = parseFloat(c.style("padding")), p.padRight = parseFloat(c.style("padding")), p.padTop = parseFloat(c.style("padding")), p.padBottom = parseFloat(c.style("padding")), p.nodeRepulsion = H(a.nodeRepulsion) ? a.nodeRepulsion(c) : a.nodeRepulsion, o.layoutNodes.push(p), o.idToIndex[p.id] = f; + } + for (var g = [], m = 0, b = -1, E = [], f = 0; f < o.nodeSize; f++) { + var c = o.layoutNodes[f], M = c.parentId; + M != null ? o.layoutNodes[o.idToIndex[M]].children.push(c.id) : (g[++b] = c.id, E.push(c.id)); + } + for (o.graphSet.push(E); m <= b; ) { + var L = g[m++], w = o.idToIndex[L], d = o.layoutNodes[w], k = d.children; + if (k.length > 0) { + o.graphSet.push(k); + for (var f = 0; f < k.length; f++) + g[++b] = k[f]; + } + } + for (var f = 0; f < o.graphSet.length; f++) + for (var D = o.graphSet[f], v = 0; v < D.length; v++) { + var F = o.idToIndex[D[v]]; + o.indexToGraph[F] = f; + } + for (var f = 0; f < o.edgeSize; f++) { + var G = n[f], N = {}; + N.id = G.data("id"), N.sourceId = G.data("source"), N.targetId = G.data("target"); + var X = H(a.idealEdgeLength) ? a.idealEdgeLength(G) : a.idealEdgeLength, B = H(a.edgeElasticity) ? a.edgeElasticity(G) : a.edgeElasticity, re = o.idToIndex[N.sourceId], K = o.idToIndex[N.targetId], W = o.indexToGraph[re], ae = o.indexToGraph[K]; + if (W != ae) { + for (var ue = Xd(N.sourceId, N.targetId, o), me = o.graphSet[ue], ie = 0, p = o.layoutNodes[re]; me.indexOf(p.id) === -1; ) + p = o.layoutNodes[o.idToIndex[p.parentId]], ie++; + for (p = o.layoutNodes[K]; me.indexOf(p.id) === -1; ) + p = o.layoutNodes[o.idToIndex[p.parentId]], ie++; + X *= ie * a.nestingFactor; + } + N.idealLength = X, N.elasticity = B, o.layoutEdges.push(N); + } + return o; + }, Xd = function(e, r, a) { + var n = Wd(e, r, 0, a); + return 2 > n.count ? 0 : n.graph; + }, Wd = function t(e, r, a, n) { + var i = n.graphSet[a]; + if (-1 < i.indexOf(e) && -1 < i.indexOf(r)) + return { + count: 2, + graph: a + }; + for (var s = 0, o = 0; o < i.length; o++) { + var u = i[o], l = n.idToIndex[u], f = n.layoutNodes[l].children; + if (f.length !== 0) { + var h = n.indexToGraph[n.idToIndex[f[0]]], v = t(e, r, h, n); + if (v.count !== 0) + if (v.count === 1) { + if (s++, s === 2) + break; + } else + return v; + } + } + return { + count: s, + graph: a + }; + }, qd, Kd = function(e, r) { + for (var a = e.clientWidth, n = e.clientHeight, i = 0; i < e.nodeSize; i++) { + var s = e.layoutNodes[i]; + s.children.length === 0 && !s.isLocked && (s.positionX = Math.random() * a, s.positionY = Math.random() * n); + } + }, Ko = function(e, r, a) { + var n = e.boundingBox, i = { + x1: 1 / 0, + x2: -1 / 0, + y1: 1 / 0, + y2: -1 / 0 + }; + return r.boundingBox && (a.forEach(function(s) { + var o = e.layoutNodes[e.idToIndex[s.data("id")]]; + i.x1 = Math.min(i.x1, o.positionX), i.x2 = Math.max(i.x2, o.positionX), i.y1 = Math.min(i.y1, o.positionY), i.y2 = Math.max(i.y2, o.positionY); + }), i.w = i.x2 - i.x1, i.h = i.y2 - i.y1), function(s, o) { + var u = e.layoutNodes[e.idToIndex[s.data("id")]]; + if (r.boundingBox) { + var l = (u.positionX - i.x1) / i.w, f = (u.positionY - i.y1) / i.h; + return { + x: n.x1 + l * n.w, + y: n.y1 + f * n.h + }; + } else + return { + x: u.positionX, + y: u.positionY + }; + }; + }, Zd = function(e, r, a) { + var n = a.layout, i = a.eles.nodes(), s = Ko(e, a, i); + i.positions(s), e.ready !== !0 && (e.ready = !0, n.one("layoutready", a.ready), n.emit({ + type: "layoutready", + layout: this + })); + }, Qd = function(e, r, a) { + Jd(e, r), tg(e), rg(e, r), ag(e), ng(e); + }, Jd = function(e, r) { + for (var a = 0; a < e.graphSet.length; a++) + for (var n = e.graphSet[a], i = n.length, s = 0; s < i; s++) + for (var o = e.layoutNodes[e.idToIndex[n[s]]], u = s + 1; u < i; u++) { + var l = e.layoutNodes[e.idToIndex[n[u]]]; + jd(o, l, e, r); + } + }, Zo = function(e) { + return -e + 2 * e * Math.random(); + }, jd = function(e, r, a, n) { + var i = e.cmptId, s = r.cmptId; + if (!(i !== s && !a.isCompound)) { + var o = r.positionX - e.positionX, u = r.positionY - e.positionY, l = 1; + o === 0 && u === 0 && (o = Zo(l), u = Zo(l)); + var f = eg(e, r, o, u); + if (f > 0) + var h = n.nodeOverlap * f, v = Math.sqrt(o * o + u * u), d = h * o / v, c = h * u / v; + else + var y = Hn(e, o, u), p = Hn(r, -1 * o, -1 * u), g = p.x - y.x, m = p.y - y.y, b = g * g + m * m, v = Math.sqrt(b), h = (e.nodeRepulsion + r.nodeRepulsion) / b, d = h * g / v, c = h * m / v; + e.isLocked || (e.offsetX -= d, e.offsetY -= c), r.isLocked || (r.offsetX += d, r.offsetY += c); + } + }, eg = function(e, r, a, n) { + if (a > 0) + var i = e.maxX - r.minX; + else + var i = r.maxX - e.minX; + if (n > 0) + var s = e.maxY - r.minY; + else + var s = r.maxY - e.minY; + return i >= 0 && s >= 0 ? Math.sqrt(i * i + s * s) : 0; + }, Hn = function(e, r, a) { + var n = e.positionX, i = e.positionY, s = e.height || 1, o = e.width || 1, u = a / r, l = s / o, f = {}; + return r === 0 && 0 < a || r === 0 && 0 > a ? (f.x = n, f.y = i + s / 2, f) : 0 < r && -1 * l <= u && u <= l ? (f.x = n + o / 2, f.y = i + o * a / 2 / r, f) : 0 > r && -1 * l <= u && u <= l ? (f.x = n - o / 2, f.y = i - o * a / 2 / r, f) : 0 < a && (u <= -1 * l || u >= l) ? (f.x = n + s * r / 2 / a, f.y = i + s / 2, f) : (0 > a && (u <= -1 * l || u >= l) && (f.x = n - s * r / 2 / a, f.y = i - s / 2), f); + }, tg = function(e, r) { + for (var a = 0; a < e.edgeSize; a++) { + var n = e.layoutEdges[a], i = e.idToIndex[n.sourceId], s = e.layoutNodes[i], o = e.idToIndex[n.targetId], u = e.layoutNodes[o], l = u.positionX - s.positionX, f = u.positionY - s.positionY; + if (!(l === 0 && f === 0)) { + var h = Hn(s, l, f), v = Hn(u, -1 * l, -1 * f), d = v.x - h.x, c = v.y - h.y, y = Math.sqrt(d * d + c * c), p = Math.pow(n.idealLength - y, 2) / n.elasticity; + if (y !== 0) + var g = p * d / y, m = p * c / y; + else + var g = 0, m = 0; + s.isLocked || (s.offsetX += g, s.offsetY += m), u.isLocked || (u.offsetX -= g, u.offsetY -= m); + } + } + }, rg = function(e, r) { + if (r.gravity !== 0) + for (var a = 1, n = 0; n < e.graphSet.length; n++) { + var i = e.graphSet[n], s = i.length; + if (n === 0) + var o = e.clientHeight / 2, u = e.clientWidth / 2; + else + var l = e.layoutNodes[e.idToIndex[i[0]]], f = e.layoutNodes[e.idToIndex[l.parentId]], o = f.positionX, u = f.positionY; + for (var h = 0; h < s; h++) { + var v = e.layoutNodes[e.idToIndex[i[h]]]; + if (!v.isLocked) { + var d = o - v.positionX, c = u - v.positionY, y = Math.sqrt(d * d + c * c); + if (y > a) { + var p = r.gravity * d / y, g = r.gravity * c / y; + v.offsetX += p, v.offsetY += g; + } + } + } + } + }, ag = function(e, r) { + var a = [], n = 0, i = -1; + for (a.push.apply(a, e.graphSet[0]), i += e.graphSet[0].length; n <= i; ) { + var s = a[n++], o = e.idToIndex[s], u = e.layoutNodes[o], l = u.children; + if (0 < l.length && !u.isLocked) { + for (var f = u.offsetX, h = u.offsetY, v = 0; v < l.length; v++) { + var d = e.layoutNodes[e.idToIndex[l[v]]]; + d.offsetX += f, d.offsetY += h, a[++i] = l[v]; + } + u.offsetX = 0, u.offsetY = 0; + } + } + }, ng = function(e, r) { + for (var a = 0; a < e.nodeSize; a++) { + var n = e.layoutNodes[a]; + 0 < n.children.length && (n.maxX = void 0, n.minX = void 0, n.maxY = void 0, n.minY = void 0); + } + for (var a = 0; a < e.nodeSize; a++) { + var n = e.layoutNodes[a]; + if (!(0 < n.children.length || n.isLocked)) { + var i = ig(n.offsetX, n.offsetY, e.temperature); + n.positionX += i.x, n.positionY += i.y, n.offsetX = 0, n.offsetY = 0, n.minX = n.positionX - n.width, n.maxX = n.positionX + n.width, n.minY = n.positionY - n.height, n.maxY = n.positionY + n.height, sg(n, e); + } + } + for (var a = 0; a < e.nodeSize; a++) { + var n = e.layoutNodes[a]; + 0 < n.children.length && !n.isLocked && (n.positionX = (n.maxX + n.minX) / 2, n.positionY = (n.maxY + n.minY) / 2, n.width = n.maxX - n.minX, n.height = n.maxY - n.minY); + } + }, ig = function(e, r, a) { + var n = Math.sqrt(e * e + r * r); + if (n > a) + var i = { + x: a * e / n, + y: a * r / n + }; + else + var i = { + x: e, + y: r + }; + return i; + }, sg = function t(e, r) { + var a = e.parentId; + if (a != null) { + var n = r.layoutNodes[r.idToIndex[a]], i = !1; + if ((n.maxX == null || e.maxX + n.padRight > n.maxX) && (n.maxX = e.maxX + n.padRight, i = !0), (n.minX == null || e.minX - n.padLeft < n.minX) && (n.minX = e.minX - n.padLeft, i = !0), (n.maxY == null || e.maxY + n.padBottom > n.maxY) && (n.maxY = e.maxY + n.padBottom, i = !0), (n.minY == null || e.minY - n.padTop < n.minY) && (n.minY = e.minY - n.padTop, i = !0), i) + return t(n, r); + } + }, Qo = function(e, r) { + for (var a = e.layoutNodes, n = [], i = 0; i < a.length; i++) { + var s = a[i], o = s.cmptId, u = n[o] = n[o] || []; + u.push(s); + } + for (var l = 0, i = 0; i < n.length; i++) { + var f = n[i]; + if (f) { + f.x1 = 1 / 0, f.x2 = -1 / 0, f.y1 = 1 / 0, f.y2 = -1 / 0; + for (var h = 0; h < f.length; h++) { + var v = f[h]; + f.x1 = Math.min(f.x1, v.positionX - v.width / 2), f.x2 = Math.max(f.x2, v.positionX + v.width / 2), f.y1 = Math.min(f.y1, v.positionY - v.height / 2), f.y2 = Math.max(f.y2, v.positionY + v.height / 2); + } + f.w = f.x2 - f.x1, f.h = f.y2 - f.y1, l += f.w * f.h; + } + } + n.sort(function(m, b) { + return b.w * b.h - m.w * m.h; + }); + for (var d = 0, c = 0, y = 0, p = 0, g = Math.sqrt(l) * e.clientWidth / e.clientHeight, i = 0; i < n.length; i++) { + var f = n[i]; + if (f) { + for (var h = 0; h < f.length; h++) { + var v = f[h]; + v.isLocked || (v.positionX += d - f.x1, v.positionY += c - f.y1); + } + d += f.w + r.componentSpacing, y += f.w + r.componentSpacing, p = Math.max(p, f.h), y > g && (c += p + r.componentSpacing, d = 0, y = 0, p = 0); + } + } + }, og = { + fit: !0, + // whether to fit the viewport to the graph + padding: 30, + // padding used on fit + boundingBox: void 0, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: !0, + // prevents node overlap, may overflow boundingBox if not enough space + avoidOverlapPadding: 10, + // extra spacing around nodes when avoidOverlap: true + nodeDimensionsIncludeLabels: !1, + // Excludes the label when calculating node bounding boxes for the layout algorithm + spacingFactor: void 0, + // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up + condense: !1, + // uses all available space on false, uses minimal space on true + rows: void 0, + // force num of rows in the grid + cols: void 0, + // force num of columns in the grid + position: function(e) { + }, + // returns { row, col } for element + sort: void 0, + // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') } + animate: !1, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: void 0, + // easing of animation if enabled + animateFilter: function(e, r) { + return !0; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: void 0, + // callback on layoutready + stop: void 0, + // callback on layoutstop + transform: function(e, r) { + return r; + } + // transform a given node position. Useful for changing flow direction in discrete layouts + }; + function Jo(t) { + this.options = He({}, og, t); + } + Jo.prototype.run = function() { + var t = this.options, e = t, r = t.cy, a = e.eles, n = a.nodes().not(":parent"); + e.sort && (n = n.sort(e.sort)); + var i = Yt(e.boundingBox ? e.boundingBox : { + x1: 0, + y1: 0, + w: r.width(), + h: r.height() + }); + if (i.h === 0 || i.w === 0) + a.nodes().layoutPositions(this, e, function(Ee) { + return { + x: i.x1, + y: i.y1 + }; + }); + else { + var s = n.size(), o = Math.sqrt(s * i.h / i.w), u = Math.round(o), l = Math.round(i.w / i.h * o), f = function(Ce) { + if (Ce == null) + return Math.min(u, l); + var we = Math.min(u, l); + we == u ? u = Ce : l = Ce; + }, h = function(Ce) { + if (Ce == null) + return Math.max(u, l); + var we = Math.max(u, l); + we == u ? u = Ce : l = Ce; + }, v = e.rows, d = e.cols != null ? e.cols : e.columns; + if (v != null && d != null) + u = v, l = d; + else if (v != null && d == null) + u = v, l = Math.ceil(s / u); + else if (v == null && d != null) + l = d, u = Math.ceil(s / l); + else if (l * u > s) { + var c = f(), y = h(); + (c - 1) * y >= s ? f(c - 1) : (y - 1) * c >= s && h(y - 1); + } else + for (; l * u < s; ) { + var p = f(), g = h(); + (g + 1) * p >= s ? h(g + 1) : f(p + 1); + } + var m = i.w / l, b = i.h / u; + if (e.condense && (m = 0, b = 0), e.avoidOverlap) + for (var E = 0; E < n.length; E++) { + var M = n[E], L = M._private.position; + (L.x == null || L.y == null) && (L.x = 0, L.y = 0); + var w = M.layoutDimensions(e), k = e.avoidOverlapPadding, D = w.w + k, F = w.h + k; + m = Math.max(m, D), b = Math.max(b, F); + } + for (var G = {}, N = function(Ce, we) { + return !!G["c-" + Ce + "-" + we]; + }, X = function(Ce, we) { + G["c-" + Ce + "-" + we] = !0; + }, B = 0, re = 0, K = function() { + re++, re >= l && (re = 0, B++); + }, W = {}, ae = 0; ae < n.length; ae++) { + var ue = n[ae], me = e.position(ue); + if (me && (me.row !== void 0 || me.col !== void 0)) { + var ie = { + row: me.row, + col: me.col + }; + if (ie.col === void 0) + for (ie.col = 0; N(ie.row, ie.col); ) + ie.col++; + else if (ie.row === void 0) + for (ie.row = 0; N(ie.row, ie.col); ) + ie.row++; + W[ue.id()] = ie, X(ie.row, ie.col); + } + } + var ge = function(Ce, we) { + var De, se; + if (Ce.locked() || Ce.isParent()) + return !1; + var xe = W[Ce.id()]; + if (xe) + De = xe.col * m + m / 2 + i.x1, se = xe.row * b + b / 2 + i.y1; + else { + for (; N(B, re); ) + K(); + De = re * m + m / 2 + i.x1, se = B * b + b / 2 + i.y1, X(B, re), K(); + } + return { + x: De, + y: se + }; + }; + n.layoutPositions(this, e, ge); + } + return this; + }; + var lg = { + ready: function() { + }, + // on layoutready + stop: function() { + } + // on layoutstop + }; + function Bi(t) { + this.options = He({}, lg, t); + } + Bi.prototype.run = function() { + var t = this.options, e = t.eles, r = this; + return t.cy, r.emit("layoutstart"), e.nodes().positions(function() { + return { + x: 0, + y: 0 + }; + }), r.one("layoutready", t.ready), r.emit("layoutready"), r.one("layoutstop", t.stop), r.emit("layoutstop"), this; + }, Bi.prototype.stop = function() { + return this; + }; + var ug = { + positions: void 0, + // map of (node id) => (position obj); or function(node){ return somPos; } + zoom: void 0, + // the zoom level to set (prob want fit = false if set) + pan: void 0, + // the pan level to set (prob want fit = false if set) + fit: !0, + // whether to fit to viewport + padding: 30, + // padding on fit + spacingFactor: void 0, + // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up + animate: !1, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: void 0, + // easing of animation if enabled + animateFilter: function(e, r) { + return !0; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: void 0, + // callback on layoutready + stop: void 0, + // callback on layoutstop + transform: function(e, r) { + return r; + } + // transform a given node position. Useful for changing flow direction in discrete layouts + }; + function jo(t) { + this.options = He({}, ug, t); + } + jo.prototype.run = function() { + var t = this.options, e = t.eles, r = e.nodes(), a = H(t.positions); + function n(i) { + if (t.positions == null) + return cf(i.position()); + if (a) + return t.positions(i); + var s = t.positions[i._private.data.id]; + return s ?? null; + } + return r.layoutPositions(this, t, function(i, s) { + var o = n(i); + return i.locked() || o == null ? !1 : o; + }), this; + }; + var fg = { + fit: !0, + // whether to fit to viewport + padding: 30, + // fit padding + boundingBox: void 0, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + animate: !1, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: void 0, + // easing of animation if enabled + animateFilter: function(e, r) { + return !0; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: void 0, + // callback on layoutready + stop: void 0, + // callback on layoutstop + transform: function(e, r) { + return r; + } + // transform a given node position. Useful for changing flow direction in discrete layouts + }; + function el(t) { + this.options = He({}, fg, t); + } + el.prototype.run = function() { + var t = this.options, e = t.cy, r = t.eles, a = Yt(t.boundingBox ? t.boundingBox : { + x1: 0, + y1: 0, + w: e.width(), + h: e.height() + }), n = function(s, o) { + return { + x: a.x1 + Math.round(Math.random() * a.w), + y: a.y1 + Math.round(Math.random() * a.h) + }; + }; + return r.nodes().layoutPositions(this, t, n), this; + }; + var hg = [{ + name: "breadthfirst", + impl: Xo + }, { + name: "circle", + impl: Wo + }, { + name: "concentric", + impl: qo + }, { + name: "cose", + impl: Yn + }, { + name: "grid", + impl: Jo + }, { + name: "null", + impl: Bi + }, { + name: "preset", + impl: jo + }, { + name: "random", + impl: el + }]; + function tl(t) { + this.options = t, this.notifications = 0; + } + var rl = function() { + }, al = function() { + throw new Error("A headless instance can not render images"); + }; + tl.prototype = { + recalculateRenderedStyle: rl, + notify: function() { + this.notifications++; + }, + init: rl, + isHeadless: function() { + return !0; + }, + png: al, + jpg: al + }; + var Fi = {}; + Fi.arrowShapeWidth = 0.3, Fi.registerArrowShapes = function() { + var t = this.arrowShapes = {}, e = this, r = function(l, f, h, v, d, c, y) { + var p = d.x - h / 2 - y, g = d.x + h / 2 + y, m = d.y - h / 2 - y, b = d.y + h / 2 + y, E = p <= l && l <= g && m <= f && f <= b; + return E; + }, a = function(l, f, h, v, d) { + var c = l * Math.cos(v) - f * Math.sin(v), y = l * Math.sin(v) + f * Math.cos(v), p = c * h, g = y * h, m = p + d.x, b = g + d.y; + return { + x: m, + y: b + }; + }, n = function(l, f, h, v) { + for (var d = [], c = 0; c < l.length; c += 2) { + var y = l[c], p = l[c + 1]; + d.push(a(y, p, f, h, v)); + } + return d; + }, i = function(l) { + for (var f = [], h = 0; h < l.length; h++) { + var v = l[h]; + f.push(v.x, v.y); + } + return f; + }, s = function(l) { + return l.pstyle("width").pfValue * l.pstyle("arrow-scale").pfValue * 2; + }, o = function(l, f) { + ee(f) && (f = t[f]), t[l] = He({ + name: l, + points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3], + collide: function(v, d, c, y, p, g) { + var m = i(n(this.points, c + 2 * g, y, p)), b = Ht(v, d, m); + return b; + }, + roughCollide: r, + draw: function(v, d, c, y) { + var p = n(this.points, d, c, y); + e.arrowShapeImpl("polygon")(v, p); + }, + spacing: function(v) { + return 0; + }, + gap: s + }, f); + }; + o("none", { + collide: fn, + roughCollide: fn, + draw: si, + spacing: ds, + gap: ds + }), o("triangle", { + points: [-0.15, -0.3, 0, 0, 0.15, -0.3] + }), o("arrow", "triangle"), o("triangle-backcurve", { + points: t.triangle.points, + controlPoint: [0, -0.15], + roughCollide: r, + draw: function(l, f, h, v, d) { + var c = n(this.points, f, h, v), y = this.controlPoint, p = a(y[0], y[1], f, h, v); + e.arrowShapeImpl(this.name)(l, c, p); + }, + gap: function(l) { + return s(l) * 0.8; + } + }), o("triangle-tee", { + points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0], + pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4], + collide: function(l, f, h, v, d, c, y) { + var p = i(n(this.points, h + 2 * y, v, d)), g = i(n(this.pointsTee, h + 2 * y, v, d)), m = Ht(l, f, p) || Ht(l, f, g); + return m; + }, + draw: function(l, f, h, v, d) { + var c = n(this.points, f, h, v), y = n(this.pointsTee, f, h, v); + e.arrowShapeImpl(this.name)(l, c, y); + } + }), o("circle-triangle", { + radius: 0.15, + pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15], + collide: function(l, f, h, v, d, c, y) { + var p = d, g = Math.pow(p.x - l, 2) + Math.pow(p.y - f, 2) <= Math.pow((h + 2 * y) * this.radius, 2), m = i(n(this.points, h + 2 * y, v, d)); + return Ht(l, f, m) || g; + }, + draw: function(l, f, h, v, d) { + var c = n(this.pointsTr, f, h, v); + e.arrowShapeImpl(this.name)(l, c, v.x, v.y, this.radius * f); + }, + spacing: function(l) { + return e.getArrowWidth(l.pstyle("width").pfValue, l.pstyle("arrow-scale").value) * this.radius; + } + }), o("triangle-cross", { + points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0], + baseCrossLinePts: [ + -0.15, + -0.4, + // first half of the rectangle + -0.15, + -0.4, + 0.15, + -0.4, + // second half of the rectangle + 0.15, + -0.4 + ], + crossLinePts: function(l, f) { + var h = this.baseCrossLinePts.slice(), v = f / l, d = 3, c = 5; + return h[d] = h[d] - v, h[c] = h[c] - v, h; + }, + collide: function(l, f, h, v, d, c, y) { + var p = i(n(this.points, h + 2 * y, v, d)), g = i(n(this.crossLinePts(h, c), h + 2 * y, v, d)), m = Ht(l, f, p) || Ht(l, f, g); + return m; + }, + draw: function(l, f, h, v, d) { + var c = n(this.points, f, h, v), y = n(this.crossLinePts(f, d), f, h, v); + e.arrowShapeImpl(this.name)(l, c, y); + } + }), o("vee", { + points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15], + gap: function(l) { + return s(l) * 0.525; + } + }), o("circle", { + radius: 0.15, + collide: function(l, f, h, v, d, c, y) { + var p = d, g = Math.pow(p.x - l, 2) + Math.pow(p.y - f, 2) <= Math.pow((h + 2 * y) * this.radius, 2); + return g; + }, + draw: function(l, f, h, v, d) { + e.arrowShapeImpl(this.name)(l, v.x, v.y, this.radius * f); + }, + spacing: function(l) { + return e.getArrowWidth(l.pstyle("width").pfValue, l.pstyle("arrow-scale").value) * this.radius; + } + }), o("tee", { + points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0], + spacing: function(l) { + return 1; + }, + gap: function(l) { + return 1; + } + }), o("square", { + points: [-0.15, 0, 0.15, 0, 0.15, -0.3, -0.15, -0.3] + }), o("diamond", { + points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0], + gap: function(l) { + return l.pstyle("width").pfValue * l.pstyle("arrow-scale").value; + } + }), o("chevron", { + points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15], + gap: function(l) { + return 0.95 * l.pstyle("width").pfValue * l.pstyle("arrow-scale").value; + } + }); + }; + var $r = {}; + $r.projectIntoViewport = function(t, e) { + var r = this.cy, a = this.findContainerClientCoords(), n = a[0], i = a[1], s = a[4], o = r.pan(), u = r.zoom(), l = ((t - n) / s - o.x) / u, f = ((e - i) / s - o.y) / u; + return [l, f]; + }, $r.findContainerClientCoords = function() { + if (this.containerBB) + return this.containerBB; + var t = this.container, e = t.getBoundingClientRect(), r = this.cy.window().getComputedStyle(t), a = function(g) { + return parseFloat(r.getPropertyValue(g)); + }, n = { + left: a("padding-left"), + right: a("padding-right"), + top: a("padding-top"), + bottom: a("padding-bottom") + }, i = { + left: a("border-left-width"), + right: a("border-right-width"), + top: a("border-top-width"), + bottom: a("border-bottom-width") + }, s = t.clientWidth, o = t.clientHeight, u = n.left + n.right, l = n.top + n.bottom, f = i.left + i.right, h = e.width / (s + f), v = s - u, d = o - l, c = e.left + n.left + i.left, y = e.top + n.top + i.top; + return this.containerBB = [c, y, v, d, h]; + }, $r.invalidateContainerClientCoordsCache = function() { + this.containerBB = null; + }, $r.findNearestElement = function(t, e, r, a) { + return this.findNearestElements(t, e, r, a)[0]; + }, $r.findNearestElements = function(t, e, r, a) { + var n = this, i = this, s = i.getCachedZSortedEles(), o = [], u = i.cy.zoom(), l = i.cy.hasCompoundNodes(), f = (a ? 24 : 8) / u, h = (a ? 8 : 2) / u, v = (a ? 8 : 2) / u, d = 1 / 0, c, y; + r && (s = s.interactive); + function p(w, k) { + if (w.isNode()) { + if (y) + return; + y = w, o.push(w); + } + if (w.isEdge() && (k == null || k < d)) + if (c) { + if (c.pstyle("z-compound-depth").value === w.pstyle("z-compound-depth").value && c.pstyle("z-compound-depth").value === w.pstyle("z-compound-depth").value) { + for (var D = 0; D < o.length; D++) + if (o[D].isEdge()) { + o[D] = w, c = w, d = k ?? d; + break; + } + } + } else + o.push(w), c = w, d = k ?? d; + } + function g(w) { + var k = w.outerWidth() + 2 * h, D = w.outerHeight() + 2 * h, F = k / 2, G = D / 2, N = w.position(); + if (N.x - F <= t && t <= N.x + F && N.y - G <= e && e <= N.y + G) { + var X = i.nodeShapes[n.getNodeShape(w)]; + if (X.checkPoint(t, e, 0, k, D, N.x, N.y)) + return p(w, 0), !0; + } + } + function m(w) { + var k = w._private, D = k.rscratch, F = w.pstyle("width").pfValue, G = w.pstyle("arrow-scale").value, N = F / 2 + f, X = N * N, B = N * 2, ae = k.source, ue = k.target, re; + if (D.edgeType === "segments" || D.edgeType === "straight" || D.edgeType === "haystack") { + for (var K = D.allpts, W = 0; W + 3 < K.length; W += 2) + if (Sf(t, e, K[W], K[W + 1], K[W + 2], K[W + 3], B) && X > (re = If(t, e, K[W], K[W + 1], K[W + 2], K[W + 3]))) + return p(w, re), !0; + } else if (D.edgeType === "bezier" || D.edgeType === "multibezier" || D.edgeType === "self" || D.edgeType === "compound") { + for (var K = D.allpts, W = 0; W + 5 < D.allpts.length; W += 4) + if (Lf(t, e, K[W], K[W + 1], K[W + 2], K[W + 3], K[W + 4], K[W + 5], B) && X > (re = Nf(t, e, K[W], K[W + 1], K[W + 2], K[W + 3], K[W + 4], K[W + 5]))) + return p(w, re), !0; + } + for (var ae = ae || k.source, ue = ue || k.target, me = n.getArrowWidth(F, G), ie = [{ + name: "source", + x: D.arrowStartX, + y: D.arrowStartY, + angle: D.srcArrowAngle + }, { + name: "target", + x: D.arrowEndX, + y: D.arrowEndY, + angle: D.tgtArrowAngle + }, { + name: "mid-source", + x: D.midX, + y: D.midY, + angle: D.midsrcArrowAngle + }, { + name: "mid-target", + x: D.midX, + y: D.midY, + angle: D.midtgtArrowAngle + }], W = 0; W < ie.length; W++) { + var ge = ie[W], Ee = i.arrowShapes[w.pstyle(ge.name + "-arrow-shape").value], Ce = w.pstyle("width").pfValue; + if (Ee.roughCollide(t, e, me, ge.angle, { + x: ge.x, + y: ge.y + }, Ce, f) && Ee.collide(t, e, me, ge.angle, { + x: ge.x, + y: ge.y + }, Ce, f)) + return p(w), !0; + } + l && o.length > 0 && (g(ae), g(ue)); + } + function b(w, k, D) { + return er(w, k, D); + } + function E(w, k) { + var D = w._private, F = v, G; + k ? G = k + "-" : G = "", w.boundingBox(); + var N = D.labelBounds[k || "main"], X = w.pstyle(G + "label").value, B = w.pstyle("text-events").strValue === "yes"; + if (!(!B || !X)) { + var re = b(D.rscratch, "labelX", k), K = b(D.rscratch, "labelY", k), W = b(D.rscratch, "labelAngle", k), ae = w.pstyle(G + "text-margin-x").pfValue, ue = w.pstyle(G + "text-margin-y").pfValue, me = N.x1 - F - ae, ie = N.x2 + F - ae, ge = N.y1 - F - ue, Ee = N.y2 + F - ue; + if (W) { + var Ce = Math.cos(W), we = Math.sin(W), De = function(Xe, Ie) { + return Xe = Xe - re, Ie = Ie - K, { + x: Xe * Ce - Ie * we + re, + y: Xe * we + Ie * Ce + K + }; + }, se = De(me, ge), xe = De(me, Ee), Le = De(ie, ge), Se = De(ie, Ee), Oe = [ + // with the margin added after the rotation is applied + se.x + ae, + se.y + ue, + Le.x + ae, + Le.y + ue, + Se.x + ae, + Se.y + ue, + xe.x + ae, + xe.y + ue + ]; + if (Ht(t, e, Oe)) + return p(w), !0; + } else if (ta(N, t, e)) + return p(w), !0; + } + } + for (var M = s.length - 1; M >= 0; M--) { + var L = s[M]; + L.isNode() ? g(L) || E(L) : m(L) || E(L) || E(L, "source") || E(L, "target"); + } + return o; + }, $r.getAllInBox = function(t, e, r, a) { + var n = this.getCachedZSortedEles().interactive, i = [], s = Math.min(t, r), o = Math.max(t, r), u = Math.min(e, a), l = Math.max(e, a); + t = s, r = o, e = u, a = l; + for (var f = Yt({ + x1: t, + y1: e, + x2: r, + y2: a + }), h = 0; h < n.length; h++) { + var v = n[h]; + if (v.isNode()) { + var d = v, c = d.boundingBox({ + includeNodes: !0, + includeEdges: !1, + includeLabels: !1 + }); + fi(f, c) && !Ts(c, f) && i.push(d); + } else { + var y = v, p = y._private, g = p.rscratch; + if (g.startX != null && g.startY != null && !ta(f, g.startX, g.startY) || g.endX != null && g.endY != null && !ta(f, g.endX, g.endY)) + continue; + if (g.edgeType === "bezier" || g.edgeType === "multibezier" || g.edgeType === "self" || g.edgeType === "compound" || g.edgeType === "segments" || g.edgeType === "haystack") { + for (var m = p.rstyle.bezierPts || p.rstyle.linePts || p.rstyle.haystackPts, b = !0, E = 0; E < m.length; E++) + if (!Df(f, m[E])) { + b = !1; + break; + } + b && i.push(y); + } else + (g.edgeType === "haystack" || g.edgeType === "straight") && i.push(y); + } + } + return i; + }; + var Xn = {}; + Xn.calculateArrowAngles = function(t) { + var e = t._private.rscratch, r = e.edgeType === "haystack", a = e.edgeType === "bezier", n = e.edgeType === "multibezier", i = e.edgeType === "segments", s = e.edgeType === "compound", o = e.edgeType === "self", u, l, f, h, v, d, g, m; + if (r ? (f = e.haystackPts[0], h = e.haystackPts[1], v = e.haystackPts[2], d = e.haystackPts[3]) : (f = e.arrowStartX, h = e.arrowStartY, v = e.arrowEndX, d = e.arrowEndY), g = e.midX, m = e.midY, i) + u = f - e.segpts[0], l = h - e.segpts[1]; + else if (n || s || o || a) { + var c = e.allpts, y = Lt(c[0], c[2], c[4], 0.1), p = Lt(c[1], c[3], c[5], 0.1); + u = f - y, l = h - p; + } else + u = f - g, l = h - m; + e.srcArrowAngle = cn(u, l); + var g = e.midX, m = e.midY; + if (r && (g = (f + v) / 2, m = (h + d) / 2), u = v - f, l = d - h, i) { + var c = e.allpts; + if (c.length / 2 % 2 === 0) { + var b = c.length / 2, E = b - 2; + u = c[b] - c[E], l = c[b + 1] - c[E + 1]; + } else { + var b = c.length / 2 - 1, E = b - 2, M = b + 2; + u = c[b] - c[E], l = c[b + 1] - c[E + 1]; + } + } else if (n || s || o) { + var c = e.allpts, L = e.ctrlpts, w, k, D, F; + if (L.length / 2 % 2 === 0) { + var G = c.length / 2 - 1, N = G + 2, X = N + 2; + w = Lt(c[G], c[N], c[X], 0), k = Lt(c[G + 1], c[N + 1], c[X + 1], 0), D = Lt(c[G], c[N], c[X], 1e-4), F = Lt(c[G + 1], c[N + 1], c[X + 1], 1e-4); + } else { + var N = c.length / 2 - 1, G = N - 2, X = N + 2; + w = Lt(c[G], c[N], c[X], 0.4999), k = Lt(c[G + 1], c[N + 1], c[X + 1], 0.4999), D = Lt(c[G], c[N], c[X], 0.5), F = Lt(c[G + 1], c[N + 1], c[X + 1], 0.5); + } + u = D - w, l = F - k; + } + if (e.midtgtArrowAngle = cn(u, l), e.midDispX = u, e.midDispY = l, u *= -1, l *= -1, i) { + var c = e.allpts; + if (c.length / 2 % 2 !== 0) { + var b = c.length / 2 - 1, M = b + 2; + u = -(c[M] - c[b]), l = -(c[M + 1] - c[b + 1]); + } + } + if (e.midsrcArrowAngle = cn(u, l), i) + u = v - e.segpts[e.segpts.length - 2], l = d - e.segpts[e.segpts.length - 1]; + else if (n || s || o || a) { + var c = e.allpts, B = c.length, y = Lt(c[B - 6], c[B - 4], c[B - 2], 0.9), p = Lt(c[B - 5], c[B - 3], c[B - 1], 0.9); + u = v - y, l = d - p; + } else + u = v - g, l = d - m; + e.tgtArrowAngle = cn(u, l); + }, Xn.getArrowWidth = Xn.getArrowHeight = function(t, e) { + var r = this.arrowWidthCache = this.arrowWidthCache || {}, a = r[t + ", " + e]; + return a || (a = Math.max(Math.pow(t * 13.37, 0.9), 29) * e, r[t + ", " + e] = a, a); + }; + var Vt = {}; + Vt.findMidptPtsEtc = function(t, e) { + var r = e.posPts, a = e.intersectionPts, n = e.vectorNormInverse, i, s = t.pstyle("source-endpoint"), o = t.pstyle("target-endpoint"), u = s.units != null && o.units != null, l = function(M, L, w, k) { + var D = k - L, F = w - M, G = Math.sqrt(F * F + D * D); + return { + x: -D / G, + y: F / G + }; + }, f = t.pstyle("edge-distances").value; + switch (f) { + case "node-position": + i = r; + break; + case "intersection": + i = a; + break; + case "endpoints": { + if (u) { + var h = this.manualEndptToPx(t.source()[0], s), v = x(h, 2), d = v[0], c = v[1], y = this.manualEndptToPx(t.target()[0], o), p = x(y, 2), g = p[0], m = p[1], b = { + x1: d, + y1: c, + x2: g, + y2: m + }; + n = l(d, c, g, m), i = b; + } else + vt("Edge ".concat(t.id(), " has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")), i = a; + break; + } + } + return { + midptPts: i, + vectorNormInverse: n + }; + }, Vt.findHaystackPoints = function(t) { + for (var e = 0; e < t.length; e++) { + var r = t[e], a = r._private, n = a.rscratch; + if (!n.haystack) { + var i = Math.random() * 2 * Math.PI; + n.source = { + x: Math.cos(i), + y: Math.sin(i) + }, i = Math.random() * 2 * Math.PI, n.target = { + x: Math.cos(i), + y: Math.sin(i) + }; + } + var s = a.source, o = a.target, u = s.position(), l = o.position(), f = s.width(), h = o.width(), v = s.height(), d = o.height(), c = r.pstyle("haystack-radius").value, y = c / 2; + n.haystackPts = n.allpts = [n.source.x * f * y + u.x, n.source.y * v * y + u.y, n.target.x * h * y + l.x, n.target.y * d * y + l.y], n.midX = (n.allpts[0] + n.allpts[2]) / 2, n.midY = (n.allpts[1] + n.allpts[3]) / 2, n.edgeType = "haystack", n.haystack = !0, this.storeEdgeProjections(r), this.calculateArrowAngles(r), this.recalculateEdgeLabelProjections(r), this.calculateLabelAngles(r); + } + }, Vt.findSegmentsPoints = function(t, e) { + var r = t._private.rscratch, a = t.pstyle("segment-weights"), n = t.pstyle("segment-distances"), i = Math.min(a.pfValue.length, n.pfValue.length); + r.edgeType = "segments", r.segpts = []; + for (var s = 0; s < i; s++) { + var o = a.pfValue[s], u = n.pfValue[s], l = 1 - o, f = o, h = this.findMidptPtsEtc(t, e), v = h.midptPts, d = h.vectorNormInverse, c = { + x: v.x1 * l + v.x2 * f, + y: v.y1 * l + v.y2 * f + }; + r.segpts.push(c.x + d.x * u, c.y + d.y * u); + } + }, Vt.findLoopPoints = function(t, e, r, a) { + var n = t._private.rscratch, i = e.dirCounts, s = e.srcPos, o = t.pstyle("control-point-distances"), u = o ? o.pfValue[0] : void 0, l = t.pstyle("loop-direction").pfValue, f = t.pstyle("loop-sweep").pfValue, h = t.pstyle("control-point-step-size").pfValue; + n.edgeType = "self"; + var v = r, d = h; + a && (v = 0, d = u); + var c = l - Math.PI / 2, y = c - f / 2, p = c + f / 2, g = l + "_" + f; + v = i[g] === void 0 ? i[g] = 0 : ++i[g], n.ctrlpts = [s.x + Math.cos(y) * 1.4 * d * (v / 3 + 1), s.y + Math.sin(y) * 1.4 * d * (v / 3 + 1), s.x + Math.cos(p) * 1.4 * d * (v / 3 + 1), s.y + Math.sin(p) * 1.4 * d * (v / 3 + 1)]; + }, Vt.findCompoundLoopPoints = function(t, e, r, a) { + var n = t._private.rscratch; + n.edgeType = "compound"; + var i = e.srcPos, s = e.tgtPos, o = e.srcW, u = e.srcH, l = e.tgtW, f = e.tgtH, h = t.pstyle("control-point-step-size").pfValue, v = t.pstyle("control-point-distances"), d = v ? v.pfValue[0] : void 0, c = r, y = h; + a && (c = 0, y = d); + var p = 50, g = { + x: i.x - o / 2, + y: i.y - u / 2 + }, m = { + x: s.x - l / 2, + y: s.y - f / 2 + }, b = { + x: Math.min(g.x, m.x), + y: Math.min(g.y, m.y) + }, E = 0.5, M = Math.max(E, Math.log(o * 0.01)), L = Math.max(E, Math.log(l * 0.01)); + n.ctrlpts = [b.x, b.y - (1 + Math.pow(p, 1.12) / 100) * y * (c / 3 + 1) * M, b.x - (1 + Math.pow(p, 1.12) / 100) * y * (c / 3 + 1) * L, b.y]; + }, Vt.findStraightEdgePoints = function(t) { + t._private.rscratch.edgeType = "straight"; + }, Vt.findBezierPoints = function(t, e, r, a, n) { + var i = t._private.rscratch, s = t.pstyle("control-point-step-size").pfValue, o = t.pstyle("control-point-distances"), u = t.pstyle("control-point-weights"), l = o && u ? Math.min(o.value.length, u.value.length) : 1, f = o ? o.pfValue[0] : void 0, h = u.value[0], v = a; + i.edgeType = v ? "multibezier" : "bezier", i.ctrlpts = []; + for (var d = 0; d < l; d++) { + var c = (0.5 - e.eles.length / 2 + r) * s * (n ? -1 : 1), y = void 0, p = Es(c); + v && (f = o ? o.pfValue[d] : s, h = u.value[d]), a ? y = f : y = f !== void 0 ? p * f : void 0; + var g = y !== void 0 ? y : c, m = 1 - h, b = h, E = this.findMidptPtsEtc(t, e), M = E.midptPts, L = E.vectorNormInverse, w = { + x: M.x1 * m + M.x2 * b, + y: M.y1 * m + M.y2 * b + }; + i.ctrlpts.push(w.x + L.x * g, w.y + L.y * g); + } + }, Vt.findTaxiPoints = function(t, e) { + var r = t._private.rscratch; + r.edgeType = "segments"; + var a = "vertical", n = "horizontal", i = "leftward", s = "rightward", o = "downward", u = "upward", l = "auto", f = e.posPts, h = e.srcW, v = e.srcH, d = e.tgtW, c = e.tgtH, y = t.pstyle("edge-distances").value, p = y !== "node-position", g = t.pstyle("taxi-direction").value, m = g, b = t.pstyle("taxi-turn"), E = b.units === "%", M = b.pfValue, L = M < 0, w = t.pstyle("taxi-turn-min-distance").pfValue, k = p ? (h + d) / 2 : 0, D = p ? (v + c) / 2 : 0, F = f.x2 - f.x1, G = f.y2 - f.y1, N = function(be, Ge) { + return be > 0 ? Math.max(be - Ge, 0) : Math.min(be + Ge, 0); + }, X = N(F, k), B = N(G, D), re = !1; + m === l ? g = Math.abs(X) > Math.abs(B) ? n : a : m === u || m === o ? (g = a, re = !0) : (m === i || m === s) && (g = n, re = !0); + var K = g === a, W = K ? B : X, ae = K ? G : F, ue = Es(ae), me = !1; + !(re && (E || L)) && (m === o && ae < 0 || m === u && ae > 0 || m === i && ae > 0 || m === s && ae < 0) && (ue *= -1, W = ue * Math.abs(W), me = !0); + var ie; + if (E) { + var ge = M < 0 ? 1 + M : M; + ie = ge * W; + } else { + var Ee = M < 0 ? W : 0; + ie = Ee + M * ue; + } + var Ce = function(be) { + return Math.abs(be) < w || Math.abs(be) >= Math.abs(W); + }, we = Ce(ie), De = Ce(Math.abs(W) - Math.abs(ie)), se = we || De; + if (se && !me) + if (K) { + var xe = Math.abs(ae) <= v / 2, Le = Math.abs(F) <= d / 2; + if (xe) { + var Se = (f.x1 + f.x2) / 2, Oe = f.y1, Fe = f.y2; + r.segpts = [Se, Oe, Se, Fe]; + } else if (Le) { + var Xe = (f.y1 + f.y2) / 2, Ie = f.x1, Me = f.x2; + r.segpts = [Ie, Xe, Me, Xe]; + } else + r.segpts = [f.x1, f.y2]; + } else { + var Ue = Math.abs(ae) <= h / 2, ze = Math.abs(G) <= c / 2; + if (Ue) { + var Be = (f.y1 + f.y2) / 2, $e = f.x1, rt = f.x2; + r.segpts = [$e, Be, rt, Be]; + } else if (ze) { + var je = (f.x1 + f.x2) / 2, We = f.y1, et = f.y2; + r.segpts = [je, We, je, et]; + } else + r.segpts = [f.x2, f.y1]; + } + else if (K) { + var he = f.y1 + ie + (p ? v / 2 * ue : 0), O = f.x1, oe = f.x2; + r.segpts = [O, he, oe, he]; + } else { + var Te = f.x1 + ie + (p ? h / 2 * ue : 0), ce = f.y1, ye = f.y2; + r.segpts = [Te, ce, Te, ye]; + } + }, Vt.tryToCorrectInvalidPoints = function(t, e) { + var r = t._private.rscratch; + if (r.edgeType === "bezier") { + var a = e.srcPos, n = e.tgtPos, i = e.srcW, s = e.srcH, o = e.tgtW, u = e.tgtH, l = e.srcShape, f = e.tgtShape, h = !R(r.startX) || !R(r.startY), v = !R(r.arrowStartX) || !R(r.arrowStartY), d = !R(r.endX) || !R(r.endY), c = !R(r.arrowEndX) || !R(r.arrowEndY), y = 3, p = this.getArrowWidth(t.pstyle("width").pfValue, t.pstyle("arrow-scale").value) * this.arrowShapeWidth, g = y * p, m = Br({ + x: r.ctrlpts[0], + y: r.ctrlpts[1] + }, { + x: r.startX, + y: r.startY + }), b = m < g, E = Br({ + x: r.ctrlpts[0], + y: r.ctrlpts[1] + }, { + x: r.endX, + y: r.endY + }), M = E < g, L = !1; + if (h || v || b) { + L = !0; + var w = { + // delta + x: r.ctrlpts[0] - a.x, + y: r.ctrlpts[1] - a.y + }, k = Math.sqrt(w.x * w.x + w.y * w.y), D = { + // normalised delta + x: w.x / k, + y: w.y / k + }, F = Math.max(i, s), G = { + // *2 radius guarantees outside shape + x: r.ctrlpts[0] + D.x * 2 * F, + y: r.ctrlpts[1] + D.y * 2 * F + }, N = l.intersectLine(a.x, a.y, i, s, G.x, G.y, 0); + b ? (r.ctrlpts[0] = r.ctrlpts[0] + D.x * (g - m), r.ctrlpts[1] = r.ctrlpts[1] + D.y * (g - m)) : (r.ctrlpts[0] = N[0] + D.x * g, r.ctrlpts[1] = N[1] + D.y * g); + } + if (d || c || M) { + L = !0; + var X = { + // delta + x: r.ctrlpts[0] - n.x, + y: r.ctrlpts[1] - n.y + }, B = Math.sqrt(X.x * X.x + X.y * X.y), re = { + // normalised delta + x: X.x / B, + y: X.y / B + }, K = Math.max(i, s), W = { + // *2 radius guarantees outside shape + x: r.ctrlpts[0] + re.x * 2 * K, + y: r.ctrlpts[1] + re.y * 2 * K + }, ae = f.intersectLine(n.x, n.y, o, u, W.x, W.y, 0); + M ? (r.ctrlpts[0] = r.ctrlpts[0] + re.x * (g - E), r.ctrlpts[1] = r.ctrlpts[1] + re.y * (g - E)) : (r.ctrlpts[0] = ae[0] + re.x * g, r.ctrlpts[1] = ae[1] + re.y * g); + } + L && this.findEndpoints(t); + } + }, Vt.storeAllpts = function(t) { + var e = t._private.rscratch; + if (e.edgeType === "multibezier" || e.edgeType === "bezier" || e.edgeType === "self" || e.edgeType === "compound") { + e.allpts = [], e.allpts.push(e.startX, e.startY); + for (var r = 0; r + 1 < e.ctrlpts.length; r += 2) + e.allpts.push(e.ctrlpts[r], e.ctrlpts[r + 1]), r + 3 < e.ctrlpts.length && e.allpts.push((e.ctrlpts[r] + e.ctrlpts[r + 2]) / 2, (e.ctrlpts[r + 1] + e.ctrlpts[r + 3]) / 2); + e.allpts.push(e.endX, e.endY); + var a, n; + e.ctrlpts.length / 2 % 2 === 0 ? (a = e.allpts.length / 2 - 1, e.midX = e.allpts[a], e.midY = e.allpts[a + 1]) : (a = e.allpts.length / 2 - 3, n = 0.5, e.midX = Lt(e.allpts[a], e.allpts[a + 2], e.allpts[a + 4], n), e.midY = Lt(e.allpts[a + 1], e.allpts[a + 3], e.allpts[a + 5], n)); + } else if (e.edgeType === "straight") + e.allpts = [e.startX, e.startY, e.endX, e.endY], e.midX = (e.startX + e.endX + e.arrowStartX + e.arrowEndX) / 4, e.midY = (e.startY + e.endY + e.arrowStartY + e.arrowEndY) / 4; + else if (e.edgeType === "segments") + if (e.allpts = [], e.allpts.push(e.startX, e.startY), e.allpts.push.apply(e.allpts, e.segpts), e.allpts.push(e.endX, e.endY), e.segpts.length % 4 === 0) { + var i = e.segpts.length / 2, s = i - 2; + e.midX = (e.segpts[s] + e.segpts[i]) / 2, e.midY = (e.segpts[s + 1] + e.segpts[i + 1]) / 2; + } else { + var o = e.segpts.length / 2 - 1; + e.midX = e.segpts[o], e.midY = e.segpts[o + 1]; + } + }, Vt.checkForInvalidEdgeWarning = function(t) { + var e = t[0]._private.rscratch; + e.nodesOverlap || R(e.startX) && R(e.startY) && R(e.endX) && R(e.endY) ? e.loggedErr = !1 : e.loggedErr || (e.loggedErr = !0, vt("Edge `" + t.id() + "` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap.")); + }, Vt.findEdgeControlPoints = function(t) { + var e = this; + if (!(!t || t.length === 0)) { + for (var r = this, a = r.cy, n = a.hasCompoundNodes(), i = { + map: new ur(), + get: function(w) { + var k = this.map.get(w[0]); + return k != null ? k.get(w[1]) : null; + }, + set: function(w, k) { + var D = this.map.get(w[0]); + D == null && (D = new ur(), this.map.set(w[0], D)), D.set(w[1], k); + } + }, s = [], o = [], u = 0; u < t.length; u++) { + var l = t[u], f = l._private, h = l.pstyle("curve-style").value; + if (!(l.removed() || !l.takesUpSpace())) { + if (h === "haystack") { + o.push(l); + continue; + } + var v = h === "unbundled-bezier" || h === "segments" || h === "straight" || h === "straight-triangle" || h === "taxi", d = h === "unbundled-bezier" || h === "bezier", c = f.source, y = f.target, p = c.poolIndex(), g = y.poolIndex(), m = [p, g].sort(), b = i.get(m); + b == null && (b = { + eles: [] + }, i.set(m, b), s.push(m)), b.eles.push(l), v && (b.hasUnbundled = !0), d && (b.hasBezier = !0); + } + } + for (var E = function(w) { + var k = s[w], D = i.get(k), F = void 0; + if (!D.hasUnbundled) { + var G = D.eles[0].parallelEdges().filter(function(et) { + return et.isBundledBezier(); + }); + oi(D.eles), G.forEach(function(et) { + return D.eles.push(et); + }), D.eles.sort(function(et, he) { + return et.poolIndex() - he.poolIndex(); + }); + } + var N = D.eles[0], X = N.source(), B = N.target(); + if (X.poolIndex() > B.poolIndex()) { + var re = X; + X = B, B = re; + } + var K = D.srcPos = X.position(), W = D.tgtPos = B.position(), ae = D.srcW = X.outerWidth(), ue = D.srcH = X.outerHeight(), me = D.tgtW = B.outerWidth(), ie = D.tgtH = B.outerHeight(), ge = D.srcShape = r.nodeShapes[e.getNodeShape(X)], Ee = D.tgtShape = r.nodeShapes[e.getNodeShape(B)]; + D.dirCounts = { + north: 0, + west: 0, + south: 0, + east: 0, + northwest: 0, + southwest: 0, + northeast: 0, + southeast: 0 + }; + for (var Ce = 0; Ce < D.eles.length; Ce++) { + var we = D.eles[Ce], De = we[0]._private.rscratch, se = we.pstyle("curve-style").value, xe = se === "unbundled-bezier" || se === "segments" || se === "taxi", Le = !X.same(we.source()); + if (!D.calculatedIntersection && X !== B && (D.hasBezier || D.hasUnbundled)) { + D.calculatedIntersection = !0; + var Se = ge.intersectLine(K.x, K.y, ae, ue, W.x, W.y, 0), Oe = D.srcIntn = Se, Fe = Ee.intersectLine(W.x, W.y, me, ie, K.x, K.y, 0), Xe = D.tgtIntn = Fe, Ie = D.intersectionPts = { + x1: Se[0], + x2: Fe[0], + y1: Se[1], + y2: Fe[1] + }, Me = D.posPts = { + x1: K.x, + x2: W.x, + y1: K.y, + y2: W.y + }, Ue = Fe[1] - Se[1], ze = Fe[0] - Se[0], Be = Math.sqrt(ze * ze + Ue * Ue), $e = D.vector = { + x: ze, + y: Ue + }, rt = D.vectorNorm = { + x: $e.x / Be, + y: $e.y / Be + }, je = { + x: -rt.y, + y: rt.x + }; + D.nodesOverlap = !R(Be) || Ee.checkPoint(Se[0], Se[1], 0, me, ie, W.x, W.y) || ge.checkPoint(Fe[0], Fe[1], 0, ae, ue, K.x, K.y), D.vectorNormInverse = je, F = { + nodesOverlap: D.nodesOverlap, + dirCounts: D.dirCounts, + calculatedIntersection: !0, + hasBezier: D.hasBezier, + hasUnbundled: D.hasUnbundled, + eles: D.eles, + srcPos: W, + tgtPos: K, + srcW: me, + srcH: ie, + tgtW: ae, + tgtH: ue, + srcIntn: Xe, + tgtIntn: Oe, + srcShape: Ee, + tgtShape: ge, + posPts: { + x1: Me.x2, + y1: Me.y2, + x2: Me.x1, + y2: Me.y1 + }, + intersectionPts: { + x1: Ie.x2, + y1: Ie.y2, + x2: Ie.x1, + y2: Ie.y1 + }, + vector: { + x: -$e.x, + y: -$e.y + }, + vectorNorm: { + x: -rt.x, + y: -rt.y + }, + vectorNormInverse: { + x: -je.x, + y: -je.y + } + }; + } + var We = Le ? F : D; + De.nodesOverlap = We.nodesOverlap, De.srcIntn = We.srcIntn, De.tgtIntn = We.tgtIntn, n && (X.isParent() || X.isChild() || B.isParent() || B.isChild()) && (X.parents().anySame(B) || B.parents().anySame(X) || X.same(B) && X.isParent()) ? e.findCompoundLoopPoints(we, We, Ce, xe) : X === B ? e.findLoopPoints(we, We, Ce, xe) : se === "segments" ? e.findSegmentsPoints(we, We) : se === "taxi" ? e.findTaxiPoints(we, We) : se === "straight" || !xe && D.eles.length % 2 === 1 && Ce === Math.floor(D.eles.length / 2) ? e.findStraightEdgePoints(we) : e.findBezierPoints(we, We, Ce, xe, Le), e.findEndpoints(we), e.tryToCorrectInvalidPoints(we, We), e.checkForInvalidEdgeWarning(we), e.storeAllpts(we), e.storeEdgeProjections(we), e.calculateArrowAngles(we), e.recalculateEdgeLabelProjections(we), e.calculateLabelAngles(we); + } + }, M = 0; M < s.length; M++) + E(M); + this.findHaystackPoints(o); + } + }; + function nl(t) { + var e = []; + if (t != null) { + for (var r = 0; r < t.length; r += 2) { + var a = t[r], n = t[r + 1]; + e.push({ + x: a, + y: n + }); + } + return e; + } + } + Vt.getSegmentPoints = function(t) { + var e = t[0]._private.rscratch, r = e.edgeType; + if (r === "segments") + return this.recalculateRenderedStyle(t), nl(e.segpts); + }, Vt.getControlPoints = function(t) { + var e = t[0]._private.rscratch, r = e.edgeType; + if (r === "bezier" || r === "multibezier" || r === "self" || r === "compound") + return this.recalculateRenderedStyle(t), nl(e.ctrlpts); + }, Vt.getEdgeMidpoint = function(t) { + var e = t[0]._private.rscratch; + return this.recalculateRenderedStyle(t), { + x: e.midX, + y: e.midY + }; + }; + var Qa = {}; + Qa.manualEndptToPx = function(t, e) { + var r = this, a = t.position(), n = t.outerWidth(), i = t.outerHeight(); + if (e.value.length === 2) { + var s = [e.pfValue[0], e.pfValue[1]]; + return e.units[0] === "%" && (s[0] = s[0] * n), e.units[1] === "%" && (s[1] = s[1] * i), s[0] += a.x, s[1] += a.y, s; + } else { + var o = e.pfValue[0]; + o = -Math.PI / 2 + o; + var u = 2 * Math.max(n, i), l = [a.x + Math.cos(o) * u, a.y + Math.sin(o) * u]; + return r.nodeShapes[this.getNodeShape(t)].intersectLine(a.x, a.y, n, i, l[0], l[1], 0); + } + }, Qa.findEndpoints = function(t) { + var e = this, r, a = t.source()[0], n = t.target()[0], i = a.position(), s = n.position(), o = t.pstyle("target-arrow-shape").value, u = t.pstyle("source-arrow-shape").value, l = t.pstyle("target-distance-from-node").pfValue, f = t.pstyle("source-distance-from-node").pfValue, h = t.pstyle("curve-style").value, v = t._private.rscratch, d = v.edgeType, c = h === "taxi", y = d === "self" || d === "compound", p = d === "bezier" || d === "multibezier" || y, g = d !== "bezier", m = d === "straight" || d === "segments", b = d === "segments", E = p || g || m, M = y || c, L = t.pstyle("source-endpoint"), w = M ? "outside-to-node" : L.value, k = t.pstyle("target-endpoint"), D = M ? "outside-to-node" : k.value; + v.srcManEndpt = L, v.tgtManEndpt = k; + var F, G, N, X; + if (p) { + var B = [v.ctrlpts[0], v.ctrlpts[1]], re = g ? [v.ctrlpts[v.ctrlpts.length - 2], v.ctrlpts[v.ctrlpts.length - 1]] : B; + F = re, G = B; + } else if (m) { + var K = b ? v.segpts.slice(0, 2) : [s.x, s.y], W = b ? v.segpts.slice(v.segpts.length - 2) : [i.x, i.y]; + F = W, G = K; + } + if (D === "inside-to-node") + r = [s.x, s.y]; + else if (k.units) + r = this.manualEndptToPx(n, k); + else if (D === "outside-to-line") + r = v.tgtIntn; + else if (D === "outside-to-node" || D === "outside-to-node-or-label" ? N = F : (D === "outside-to-line" || D === "outside-to-line-or-label") && (N = [i.x, i.y]), r = e.nodeShapes[this.getNodeShape(n)].intersectLine(s.x, s.y, n.outerWidth(), n.outerHeight(), N[0], N[1], 0), D === "outside-to-node-or-label" || D === "outside-to-line-or-label") { + var ae = n._private.rscratch, ue = ae.labelWidth, me = ae.labelHeight, ie = ae.labelX, ge = ae.labelY, Ee = ue / 2, Ce = me / 2, we = n.pstyle("text-valign").value; + we === "top" ? ge -= Ce : we === "bottom" && (ge += Ce); + var De = n.pstyle("text-halign").value; + De === "left" ? ie -= Ee : De === "right" && (ie += Ee); + var se = Ba(N[0], N[1], [ie - Ee, ge - Ce, ie + Ee, ge - Ce, ie + Ee, ge + Ce, ie - Ee, ge + Ce], s.x, s.y); + if (se.length > 0) { + var xe = i, Le = Fr(xe, jr(r)), Se = Fr(xe, jr(se)), Oe = Le; + if (Se < Le && (r = se, Oe = Se), se.length > 2) { + var Fe = Fr(xe, { + x: se[2], + y: se[3] + }); + Fe < Oe && (r = [se[2], se[3]]); + } + } + } + var Xe = mn(r, F, e.arrowShapes[o].spacing(t) + l), Ie = mn(r, F, e.arrowShapes[o].gap(t) + l); + if (v.endX = Ie[0], v.endY = Ie[1], v.arrowEndX = Xe[0], v.arrowEndY = Xe[1], w === "inside-to-node") + r = [i.x, i.y]; + else if (L.units) + r = this.manualEndptToPx(a, L); + else if (w === "outside-to-line") + r = v.srcIntn; + else if (w === "outside-to-node" || w === "outside-to-node-or-label" ? X = G : (w === "outside-to-line" || w === "outside-to-line-or-label") && (X = [s.x, s.y]), r = e.nodeShapes[this.getNodeShape(a)].intersectLine(i.x, i.y, a.outerWidth(), a.outerHeight(), X[0], X[1], 0), w === "outside-to-node-or-label" || w === "outside-to-line-or-label") { + var Me = a._private.rscratch, Ue = Me.labelWidth, ze = Me.labelHeight, Be = Me.labelX, $e = Me.labelY, rt = Ue / 2, je = ze / 2, We = a.pstyle("text-valign").value; + We === "top" ? $e -= je : We === "bottom" && ($e += je); + var et = a.pstyle("text-halign").value; + et === "left" ? Be -= rt : et === "right" && (Be += rt); + var he = Ba(X[0], X[1], [Be - rt, $e - je, Be + rt, $e - je, Be + rt, $e + je, Be - rt, $e + je], i.x, i.y); + if (he.length > 0) { + var O = s, oe = Fr(O, jr(r)), Te = Fr(O, jr(he)), ce = oe; + if (Te < oe && (r = [he[0], he[1]], ce = Te), he.length > 2) { + var ye = Fr(O, { + x: he[2], + y: he[3] + }); + ye < ce && (r = [he[2], he[3]]); + } + } + } + var _e = mn(r, G, e.arrowShapes[u].spacing(t) + f), be = mn(r, G, e.arrowShapes[u].gap(t) + f); + v.startX = be[0], v.startY = be[1], v.arrowStartX = _e[0], v.arrowStartY = _e[1], E && (!R(v.startX) || !R(v.startY) || !R(v.endX) || !R(v.endY) ? v.badLine = !0 : v.badLine = !1); + }, Qa.getSourceEndpoint = function(t) { + var e = t[0]._private.rscratch; + switch (this.recalculateRenderedStyle(t), e.edgeType) { + case "haystack": + return { + x: e.haystackPts[0], + y: e.haystackPts[1] + }; + default: + return { + x: e.arrowStartX, + y: e.arrowStartY + }; + } + }, Qa.getTargetEndpoint = function(t) { + var e = t[0]._private.rscratch; + switch (this.recalculateRenderedStyle(t), e.edgeType) { + case "haystack": + return { + x: e.haystackPts[2], + y: e.haystackPts[3] + }; + default: + return { + x: e.arrowEndX, + y: e.arrowEndY + }; + } + }; + var Gi = {}; + function vg(t, e, r) { + for (var a = function(l, f, h, v) { + return Lt(l, f, h, v); + }, n = e._private, i = n.rstyle.bezierPts, s = 0; s < t.bezierProjPcts.length; s++) { + var o = t.bezierProjPcts[s]; + i.push({ + x: a(r[0], r[2], r[4], o), + y: a(r[1], r[3], r[5], o) + }); + } + } + Gi.storeEdgeProjections = function(t) { + var e = t._private, r = e.rscratch, a = r.edgeType; + if (e.rstyle.bezierPts = null, e.rstyle.linePts = null, e.rstyle.haystackPts = null, a === "multibezier" || a === "bezier" || a === "self" || a === "compound") { + e.rstyle.bezierPts = []; + for (var n = 0; n + 5 < r.allpts.length; n += 4) + vg(this, t, r.allpts.slice(n, n + 6)); + } else if (a === "segments") + for (var i = e.rstyle.linePts = [], n = 0; n + 1 < r.allpts.length; n += 2) + i.push({ + x: r.allpts[n], + y: r.allpts[n + 1] + }); + else if (a === "haystack") { + var s = r.haystackPts; + e.rstyle.haystackPts = [{ + x: s[0], + y: s[1] + }, { + x: s[2], + y: s[3] + }]; + } + e.rstyle.arrowWidth = this.getArrowWidth(t.pstyle("width").pfValue, t.pstyle("arrow-scale").value) * this.arrowShapeWidth; + }, Gi.recalculateEdgeProjections = function(t) { + this.findEdgeControlPoints(t); + }; + var hr = {}; + hr.recalculateNodeLabelProjection = function(t) { + var e = t.pstyle("label").strValue; + if (!Re(e)) { + var r, a, n = t._private, i = t.width(), s = t.height(), o = t.padding(), u = t.position(), l = t.pstyle("text-halign").strValue, f = t.pstyle("text-valign").strValue, h = n.rscratch, v = n.rstyle; + switch (l) { + case "left": + r = u.x - i / 2 - o; + break; + case "right": + r = u.x + i / 2 + o; + break; + default: + r = u.x; + } + switch (f) { + case "top": + a = u.y - s / 2 - o; + break; + case "bottom": + a = u.y + s / 2 + o; + break; + default: + a = u.y; + } + h.labelX = r, h.labelY = a, v.labelX = r, v.labelY = a, this.calculateLabelAngles(t), this.applyLabelDimensions(t); + } + }; + var il = function(e, r) { + var a = Math.atan(r / e); + return e === 0 && a < 0 && (a = a * -1), a; + }, sl = function(e, r) { + var a = r.x - e.x, n = r.y - e.y; + return il(a, n); + }, cg = function(e, r, a, n) { + var i = ka(0, n - 1e-3, 1), s = ka(0, n + 1e-3, 1), o = ea(e, r, a, i), u = ea(e, r, a, s); + return sl(o, u); + }; + hr.recalculateEdgeLabelProjections = function(t) { + var e, r = t._private, a = r.rscratch, n = this, i = { + mid: t.pstyle("label").strValue, + source: t.pstyle("source-label").strValue, + target: t.pstyle("target-label").strValue + }; + if (i.mid || i.source || i.target) { + e = { + x: a.midX, + y: a.midY + }; + var s = function(h, v, d) { + Tr(r.rscratch, h, v, d), Tr(r.rstyle, h, v, d); + }; + s("labelX", null, e.x), s("labelY", null, e.y); + var o = il(a.midDispX, a.midDispY); + s("labelAutoAngle", null, o); + var u = function f() { + if (f.cache) + return f.cache; + for (var h = [], v = 0; v + 5 < a.allpts.length; v += 4) { + var d = { + x: a.allpts[v], + y: a.allpts[v + 1] + }, c = { + x: a.allpts[v + 2], + y: a.allpts[v + 3] + }, y = { + x: a.allpts[v + 4], + y: a.allpts[v + 5] + }; + h.push({ + p0: d, + p1: c, + p2: y, + startDist: 0, + length: 0, + segments: [] + }); + } + var p = r.rstyle.bezierPts, g = n.bezierProjPcts.length; + function m(w, k, D, F, G) { + var N = Br(k, D), X = w.segments[w.segments.length - 1], B = { + p0: k, + p1: D, + t0: F, + t1: G, + startDist: X ? X.startDist + X.length : 0, + length: N + }; + w.segments.push(B), w.length += N; + } + for (var b = 0; b < h.length; b++) { + var E = h[b], M = h[b - 1]; + M && (E.startDist = M.startDist + M.length), m(E, E.p0, p[b * g], 0, n.bezierProjPcts[0]); + for (var L = 0; L < g - 1; L++) + m(E, p[b * g + L], p[b * g + L + 1], n.bezierProjPcts[L], n.bezierProjPcts[L + 1]); + m(E, p[b * g + g - 1], E.p2, n.bezierProjPcts[g - 1], 1); + } + return f.cache = h; + }, l = function(h) { + var v, d = h === "source"; + if (i[h]) { + var c = t.pstyle(h + "-text-offset").pfValue; + switch (a.edgeType) { + case "self": + case "compound": + case "bezier": + case "multibezier": { + for (var y = u(), p, g = 0, m = 0, b = 0; b < y.length; b++) { + for (var E = y[d ? b : y.length - 1 - b], M = 0; M < E.segments.length; M++) { + var L = E.segments[d ? M : E.segments.length - 1 - M], w = b === y.length - 1 && M === E.segments.length - 1; + if (g = m, m += L.length, m >= c || w) { + p = { + cp: E, + segment: L + }; + break; + } + } + if (p) + break; + } + var k = p.cp, D = p.segment, F = (c - g) / D.length, G = D.t1 - D.t0, N = d ? D.t0 + G * F : D.t1 - G * F; + N = ka(0, N, 1), e = ea(k.p0, k.p1, k.p2, N), v = cg(k.p0, k.p1, k.p2, N); + break; + } + case "straight": + case "segments": + case "haystack": { + for (var X = 0, B, re, K, W, ae = a.allpts.length, ue = 0; ue + 3 < ae && (d ? (K = { + x: a.allpts[ue], + y: a.allpts[ue + 1] + }, W = { + x: a.allpts[ue + 2], + y: a.allpts[ue + 3] + }) : (K = { + x: a.allpts[ae - 2 - ue], + y: a.allpts[ae - 1 - ue] + }, W = { + x: a.allpts[ae - 4 - ue], + y: a.allpts[ae - 3 - ue] + }), B = Br(K, W), re = X, X += B, !(X >= c)); ue += 2) + ; + var me = c - re, ie = me / B; + ie = ka(0, ie, 1), e = Ef(K, W, ie), v = sl(K, W); + break; + } + } + s("labelX", h, e.x), s("labelY", h, e.y), s("labelAutoAngle", h, v); + } + }; + l("source"), l("target"), this.applyLabelDimensions(t); + } + }, hr.applyLabelDimensions = function(t) { + this.applyPrefixedLabelDimensions(t), t.isEdge() && (this.applyPrefixedLabelDimensions(t, "source"), this.applyPrefixedLabelDimensions(t, "target")); + }, hr.applyPrefixedLabelDimensions = function(t, e) { + var r = t._private, a = this.getLabelText(t, e), n = this.calculateLabelDimensions(t, a), i = t.pstyle("line-height").pfValue, s = t.pstyle("text-wrap").strValue, o = er(r.rscratch, "labelWrapCachedLines", e) || [], u = s !== "wrap" ? 1 : Math.max(o.length, 1), l = n.height / u, f = l * i, h = n.width, v = n.height + (u - 1) * (i - 1) * l; + Tr(r.rstyle, "labelWidth", e, h), Tr(r.rscratch, "labelWidth", e, h), Tr(r.rstyle, "labelHeight", e, v), Tr(r.rscratch, "labelHeight", e, v), Tr(r.rscratch, "labelLineHeight", e, f); + }, hr.getLabelText = function(t, e) { + var r = t._private, a = e ? e + "-" : "", n = t.pstyle(a + "label").strValue, i = t.pstyle("text-transform").value, s = function(me, ie) { + return ie ? (Tr(r.rscratch, me, e, ie), ie) : er(r.rscratch, me, e); + }; + if (!n) + return ""; + i == "none" || (i == "uppercase" ? n = n.toUpperCase() : i == "lowercase" && (n = n.toLowerCase())); + var o = t.pstyle("text-wrap").value; + if (o === "wrap") { + var u = s("labelKey"); + if (u != null && s("labelWrapKey") === u) + return s("labelWrapCachedText"); + for (var l = "​", f = n.split(` +`), h = t.pstyle("text-max-width").pfValue, v = t.pstyle("text-overflow-wrap").value, d = v === "anywhere", c = [], y = /[\s\u200b]+/, p = d ? "" : " ", g = 0; g < f.length; g++) { + var m = f[g], b = this.calculateLabelDimensions(t, m), E = b.width; + if (d) { + var M = m.split("").join(l); + m = M; + } + if (E > h) { + for (var L = m.split(y), w = "", k = 0; k < L.length; k++) { + var D = L[k], F = w.length === 0 ? D : w + p + D, G = this.calculateLabelDimensions(t, F), N = G.width; + N <= h ? w += D + p : (w && c.push(w), w = D + p); + } + w.match(/^[\s\u200b]+$/) || c.push(w); + } else + c.push(m); + } + s("labelWrapCachedLines", c), n = s("labelWrapCachedText", c.join(` +`)), s("labelWrapKey", u); + } else if (o === "ellipsis") { + var X = t.pstyle("text-max-width").pfValue, B = "", re = "…", K = !1; + if (this.calculateLabelDimensions(t, n).width < X) + return n; + for (var W = 0; W < n.length; W++) { + var ae = this.calculateLabelDimensions(t, B + n[W] + re).width; + if (ae > X) + break; + B += n[W], W === n.length - 1 && (K = !0); + } + return K || (B += re), B; + } + return n; + }, hr.getLabelJustification = function(t) { + var e = t.pstyle("text-justification").strValue, r = t.pstyle("text-halign").strValue; + if (e === "auto") + if (t.isNode()) + switch (r) { + case "left": + return "right"; + case "right": + return "left"; + default: + return "center"; + } + else + return "center"; + else + return e; + }, hr.calculateLabelDimensions = function(t, e) { + var r = this, a = Pr(e, t._private.labelDimsKey), n = r.labelDimCache || (r.labelDimCache = []), i = n[a]; + if (i != null) + return i; + var s = 0, o = t.pstyle("font-style").strValue, u = t.pstyle("font-size").pfValue, l = t.pstyle("font-family").strValue, f = t.pstyle("font-weight").strValue, h = this.labelCalcCanvas, v = this.labelCalcCanvasContext; + if (!h) { + h = this.labelCalcCanvas = document.createElement("canvas"), v = this.labelCalcCanvasContext = h.getContext("2d"); + var d = h.style; + d.position = "absolute", d.left = "-9999px", d.top = "-9999px", d.zIndex = "-1", d.visibility = "hidden", d.pointerEvents = "none"; + } + v.font = "".concat(o, " ").concat(f, " ").concat(u, "px ").concat(l); + for (var c = 0, y = 0, p = e.split(` +`), g = 0; g < p.length; g++) { + var m = p[g], b = v.measureText(m), E = Math.ceil(b.width), M = u; + c = Math.max(E, c), y += M; + } + return c += s, y += s, n[a] = { + width: c, + height: y + }; + }, hr.calculateLabelAngle = function(t, e) { + var r = t._private, a = r.rscratch, n = t.isEdge(), i = e ? e + "-" : "", s = t.pstyle(i + "text-rotation"), o = s.strValue; + return o === "none" ? 0 : n && o === "autorotate" ? a.labelAutoAngle : o === "autorotate" ? 0 : s.pfValue; + }, hr.calculateLabelAngles = function(t) { + var e = this, r = t.isEdge(), a = t._private, n = a.rscratch; + n.labelAngle = e.calculateLabelAngle(t), r && (n.sourceLabelAngle = e.calculateLabelAngle(t, "source"), n.targetLabelAngle = e.calculateLabelAngle(t, "target")); + }; + var ol = {}, ll = 28, ul = !1; + ol.getNodeShape = function(t) { + var e = this, r = t.pstyle("shape").value; + if (r === "cutrectangle" && (t.width() < ll || t.height() < ll)) + return ul || (vt("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"), ul = !0), "rectangle"; + if (t.isParent()) + return r === "rectangle" || r === "roundrectangle" || r === "round-rectangle" || r === "cutrectangle" || r === "cut-rectangle" || r === "barrel" ? r : "rectangle"; + if (r === "polygon") { + var a = t.pstyle("shape-polygon-points").value; + return e.nodeShapes.makePolygon(a).name; + } + return r; + }; + var Wn = {}; + Wn.registerCalculationListeners = function() { + var t = this.cy, e = t.collection(), r = this, a = function(s) { + var o = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0; + if (e.merge(s), o) + for (var u = 0; u < s.length; u++) { + var l = s[u], f = l._private, h = f.rstyle; + h.clean = !1, h.cleanConnected = !1; + } + }; + r.binder(t).on("bounds.* dirty.*", function(s) { + var o = s.target; + a(o); + }).on("style.* background.*", function(s) { + var o = s.target; + a(o, !1); + }); + var n = function(s) { + if (s) { + var o = r.onUpdateEleCalcsFns; + e.cleanStyle(); + for (var u = 0; u < e.length; u++) { + var l = e[u], f = l._private.rstyle; + l.isNode() && !f.cleanConnected && (a(l.connectedEdges()), f.cleanConnected = !0); + } + if (o) + for (var h = 0; h < o.length; h++) { + var v = o[h]; + v(s, e); + } + r.recalculateRenderedStyle(e), e = t.collection(); + } + }; + r.flushRenderedStyleQueue = function() { + n(!0); + }, r.beforeRender(n, r.beforeRenderPriorities.eleCalcs); + }, Wn.onUpdateEleCalcs = function(t) { + var e = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || []; + e.push(t); + }, Wn.recalculateRenderedStyle = function(t, e) { + var r = function(E) { + return E._private.rstyle.cleanConnected; + }, a = [], n = []; + if (!this.destroyed) { + e === void 0 && (e = !0); + for (var i = 0; i < t.length; i++) { + var s = t[i], o = s._private, u = o.rstyle; + s.isEdge() && (!r(s.source()) || !r(s.target())) && (u.clean = !1), !(e && u.clean || s.removed()) && s.pstyle("display").value !== "none" && (o.group === "nodes" ? n.push(s) : a.push(s), u.clean = !0); + } + for (var l = 0; l < n.length; l++) { + var f = n[l], h = f._private, v = h.rstyle, d = f.position(); + this.recalculateNodeLabelProjection(f), v.nodeX = d.x, v.nodeY = d.y, v.nodeW = f.pstyle("width").pfValue, v.nodeH = f.pstyle("height").pfValue; + } + this.recalculateEdgeProjections(a); + for (var c = 0; c < a.length; c++) { + var y = a[c], p = y._private, g = p.rstyle, m = p.rscratch; + g.srcX = m.arrowStartX, g.srcY = m.arrowStartY, g.tgtX = m.arrowEndX, g.tgtY = m.arrowEndY, g.midX = m.midX, g.midY = m.midY, g.labelAngle = m.labelAngle, g.sourceLabelAngle = m.sourceLabelAngle, g.targetLabelAngle = m.targetLabelAngle; + } + } + }; + var qn = {}; + qn.updateCachedGrabbedEles = function() { + var t = this.cachedZSortedEles; + if (t) { + t.drag = [], t.nondrag = []; + for (var e = [], r = 0; r < t.length; r++) { + var a = t[r], n = a._private.rscratch; + a.grabbed() && !a.isParent() ? e.push(a) : n.inDragLayer ? t.drag.push(a) : t.nondrag.push(a); + } + for (var r = 0; r < e.length; r++) { + var a = e[r]; + t.drag.push(a); + } + } + }, qn.invalidateCachedZSortedEles = function() { + this.cachedZSortedEles = null; + }, qn.getCachedZSortedEles = function(t) { + if (t || !this.cachedZSortedEles) { + var e = this.cy.mutableElements().toArray(); + e.sort(Mo), e.interactive = e.filter(function(r) { + return r.interactive(); + }), this.cachedZSortedEles = e, this.updateCachedGrabbedEles(); + } else + e = this.cachedZSortedEles; + return e; + }; + var fl = {}; + [$r, Xn, Vt, Qa, Gi, hr, ol, Wn, qn].forEach(function(t) { + He(fl, t); + }); + var hl = {}; + hl.getCachedImage = function(t, e, r) { + var a = this, n = a.imageCache = a.imageCache || {}, i = n[t]; + if (i) + return i.image.complete || i.image.addEventListener("load", r), i.image; + i = n[t] = n[t] || {}; + var s = i.image = new Image(); + s.addEventListener("load", r), s.addEventListener("error", function() { + s.error = !0; + }); + var o = "data:", u = t.substring(0, o.length).toLowerCase() === o; + return u || (e = e === "null" ? null : e, s.crossOrigin = e), s.src = t, s; + }; + var ya = {}; + ya.registerBinding = function(t, e, r, a) { + var n = Array.prototype.slice.apply(arguments, [1]), i = this.binder(t); + return i.on.apply(i, n); + }, ya.binder = function(t) { + var e = this, r = e.cy.window(), a = t === r || t === r.document || t === r.document.body || Ve(t); + if (e.supportsPassiveEvents == null) { + var n = !1; + try { + var i = Object.defineProperty({}, "passive", { + get: function() { + return n = !0, !0; + } + }); + r.addEventListener("test", null, i); + } catch { + } + e.supportsPassiveEvents = n; + } + var s = function(u, l, f) { + var h = Array.prototype.slice.call(arguments); + return a && e.supportsPassiveEvents && (h[2] = { + capture: f ?? !1, + passive: !1, + once: !1 + }), e.bindings.push({ + target: t, + args: h + }), (t.addEventListener || t.on).apply(t, h), this; + }; + return { + on: s, + addEventListener: s, + addListener: s, + bind: s + }; + }, ya.nodeIsDraggable = function(t) { + return t && t.isNode() && !t.locked() && t.grabbable(); + }, ya.nodeIsGrabbable = function(t) { + return this.nodeIsDraggable(t) && t.interactive(); + }, ya.load = function() { + var t = this, e = t.cy.window(), r = function(O) { + return O.selected(); + }, a = function(O, oe, Te, ce) { + O == null && (O = t.cy); + for (var ye = 0; ye < oe.length; ye++) { + var _e = oe[ye]; + O.emit({ + originalEvent: Te, + type: _e, + position: ce + }); + } + }, n = function(O) { + return O.shiftKey || O.metaKey || O.ctrlKey; + }, i = function(O, oe) { + var Te = !0; + if (t.cy.hasCompoundNodes() && O && O.pannable()) + for (var ce = 0; oe && ce < oe.length; ce++) { + var O = oe[ce]; + if (O.isNode() && O.isParent() && !O.pannable()) { + Te = !1; + break; + } + } + else + Te = !0; + return Te; + }, s = function(O) { + O[0]._private.grabbed = !0; + }, o = function(O) { + O[0]._private.grabbed = !1; + }, u = function(O) { + O[0]._private.rscratch.inDragLayer = !0; + }, l = function(O) { + O[0]._private.rscratch.inDragLayer = !1; + }, f = function(O) { + O[0]._private.rscratch.isGrabTarget = !0; + }, h = function(O) { + O[0]._private.rscratch.isGrabTarget = !1; + }, v = function(O, oe) { + var Te = oe.addToList, ce = Te.has(O); + !ce && O.grabbable() && !O.locked() && (Te.merge(O), s(O)); + }, d = function(O, oe) { + if (O.cy().hasCompoundNodes() && !(oe.inDragLayer == null && oe.addToList == null)) { + var Te = O.descendants(); + oe.inDragLayer && (Te.forEach(u), Te.connectedEdges().forEach(u)), oe.addToList && v(Te, oe); + } + }, c = function(O, oe) { + oe = oe || {}; + var Te = O.cy().hasCompoundNodes(); + oe.inDragLayer && (O.forEach(u), O.neighborhood().stdFilter(function(ce) { + return !Te || ce.isEdge(); + }).forEach(u)), oe.addToList && O.forEach(function(ce) { + v(ce, oe); + }), d(O, oe), g(O, { + inDragLayer: oe.inDragLayer + }), t.updateCachedGrabbedEles(); + }, y = c, p = function(O) { + O && (t.getCachedZSortedEles().forEach(function(oe) { + o(oe), l(oe), h(oe); + }), t.updateCachedGrabbedEles()); + }, g = function(O, oe) { + if (!(oe.inDragLayer == null && oe.addToList == null) && O.cy().hasCompoundNodes()) { + var Te = O.ancestors().orphans(); + if (!Te.same(O)) { + var ce = Te.descendants().spawnSelf().merge(Te).unmerge(O).unmerge(O.descendants()), ye = ce.connectedEdges(); + oe.inDragLayer && (ye.forEach(u), ce.forEach(u)), oe.addToList && ce.forEach(function(_e) { + v(_e, oe); + }); + } + } + }, m = function() { + document.activeElement != null && document.activeElement.blur != null && document.activeElement.blur(); + }, b = typeof MutationObserver < "u", E = typeof ResizeObserver < "u"; + b ? (t.removeObserver = new MutationObserver(function(he) { + for (var O = 0; O < he.length; O++) { + var oe = he[O], Te = oe.removedNodes; + if (Te) + for (var ce = 0; ce < Te.length; ce++) { + var ye = Te[ce]; + if (ye === t.container) { + t.destroy(); + break; + } + } + } + }), t.container.parentNode && t.removeObserver.observe(t.container.parentNode, { + childList: !0 + })) : t.registerBinding(t.container, "DOMNodeRemoved", function(he) { + t.destroy(); + }); + var M = on(function() { + t.cy.resize(); + }, 100); + b && (t.styleObserver = new MutationObserver(M), t.styleObserver.observe(t.container, { + attributes: !0 + })), t.registerBinding(e, "resize", M), E && (t.resizeObserver = new ResizeObserver(M), t.resizeObserver.observe(t.container)); + var L = function(O, oe) { + for (; O != null; ) + oe(O), O = O.parentNode; + }, w = function() { + t.invalidateContainerClientCoordsCache(); + }; + L(t.container, function(he) { + t.registerBinding(he, "transitionend", w), t.registerBinding(he, "animationend", w), t.registerBinding(he, "scroll", w); + }), t.registerBinding(t.container, "contextmenu", function(he) { + he.preventDefault(); + }); + var k = function() { + return t.selection[4] !== 0; + }, D = function(O) { + for (var oe = t.findContainerClientCoords(), Te = oe[0], ce = oe[1], ye = oe[2], _e = oe[3], be = O.touches ? O.touches : [O], Ge = !1, Qe = 0; Qe < be.length; Qe++) { + var ft = be[Qe]; + if (Te <= ft.clientX && ft.clientX <= Te + ye && ce <= ft.clientY && ft.clientY <= ce + _e) { + Ge = !0; + break; + } + } + if (!Ge) + return !1; + for (var qe = t.container, ot = O.target, Ke = ot.parentNode, Je = !1; Ke; ) { + if (Ke === qe) { + Je = !0; + break; + } + Ke = Ke.parentNode; + } + return !!Je; + }; + t.registerBinding(t.container, "mousedown", function(O) { + if (D(O)) { + O.preventDefault(), m(), t.hoverData.capture = !0, t.hoverData.which = O.which; + var oe = t.cy, Te = [O.clientX, O.clientY], ce = t.projectIntoViewport(Te[0], Te[1]), ye = t.selection, _e = t.findNearestElements(ce[0], ce[1], !0, !1), be = _e[0], Ge = t.dragData.possibleDragElements; + t.hoverData.mdownPos = ce, t.hoverData.mdownGPos = Te; + var Qe = function() { + t.hoverData.tapholdCancelled = !1, clearTimeout(t.hoverData.tapholdTimeout), t.hoverData.tapholdTimeout = setTimeout(function() { + if (!t.hoverData.tapholdCancelled) { + var Ct = t.hoverData.down; + Ct ? Ct.emit({ + originalEvent: O, + type: "taphold", + position: { + x: ce[0], + y: ce[1] + } + }) : oe.emit({ + originalEvent: O, + type: "taphold", + position: { + x: ce[0], + y: ce[1] + } + }); + } + }, t.tapholdDuration); + }; + if (O.which == 3) { + t.hoverData.cxtStarted = !0; + var ft = { + originalEvent: O, + type: "cxttapstart", + position: { + x: ce[0], + y: ce[1] + } + }; + be ? (be.activate(), be.emit(ft), t.hoverData.down = be) : oe.emit(ft), t.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime(), t.hoverData.cxtDragged = !1; + } else if (O.which == 1) { + be && be.activate(); + { + if (be != null && t.nodeIsGrabbable(be)) { + var qe = function(Ct) { + return { + originalEvent: O, + type: Ct, + position: { + x: ce[0], + y: ce[1] + } + }; + }, ot = function(Ct) { + Ct.emit(qe("grab")); + }; + if (f(be), !be.selected()) + Ge = t.dragData.possibleDragElements = oe.collection(), y(be, { + addToList: Ge + }), be.emit(qe("grabon")).emit(qe("grab")); + else { + Ge = t.dragData.possibleDragElements = oe.collection(); + var Ke = oe.$(function(Je) { + return Je.isNode() && Je.selected() && t.nodeIsGrabbable(Je); + }); + c(Ke, { + addToList: Ge + }), be.emit(qe("grabon")), Ke.forEach(ot); + } + t.redrawHint("eles", !0), t.redrawHint("drag", !0); + } + t.hoverData.down = be, t.hoverData.downs = _e, t.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime(); + } + a(be, ["mousedown", "tapstart", "vmousedown"], O, { + x: ce[0], + y: ce[1] + }), be == null ? (ye[4] = 1, t.data.bgActivePosistion = { + x: ce[0], + y: ce[1] + }, t.redrawHint("select", !0), t.redraw()) : be.pannable() && (ye[4] = 1), Qe(); + } + ye[0] = ye[2] = ce[0], ye[1] = ye[3] = ce[1]; + } + }, !1), t.registerBinding(e, "mousemove", function(O) { + var oe = t.hoverData.capture; + if (!(!oe && !D(O))) { + var Te = !1, ce = t.cy, ye = ce.zoom(), _e = [O.clientX, O.clientY], be = t.projectIntoViewport(_e[0], _e[1]), Ge = t.hoverData.mdownPos, Qe = t.hoverData.mdownGPos, ft = t.selection, qe = null; + !t.hoverData.draggingEles && !t.hoverData.dragging && !t.hoverData.selecting && (qe = t.findNearestElement(be[0], be[1], !0, !1)); + var ot = t.hoverData.last, Ke = t.hoverData.down, Je = [be[0] - ft[2], be[1] - ft[3]], Ct = t.dragData.possibleDragElements, Rt; + if (Qe) { + var ar = _e[0] - Qe[0], nr = ar * ar, kt = _e[1] - Qe[1], Jt = kt * kt, _t = nr + Jt; + t.hoverData.isOverThresholdDrag = Rt = _t >= t.desktopTapThreshold2; + } + var Er = n(O); + Rt && (t.hoverData.tapholdCancelled = !0); + var Rr = function() { + var cr = t.hoverData.dragDelta = t.hoverData.dragDelta || []; + cr.length === 0 ? (cr.push(Je[0]), cr.push(Je[1])) : (cr[0] += Je[0], cr[1] += Je[1]); + }; + Te = !0, a(qe, ["mousemove", "vmousemove", "tapdrag"], O, { + x: be[0], + y: be[1] + }); + var xa = function() { + t.data.bgActivePosistion = void 0, t.hoverData.selecting || ce.emit({ + originalEvent: O, + type: "boxstart", + position: { + x: be[0], + y: be[1] + } + }), ft[4] = 1, t.hoverData.selecting = !0, t.redrawHint("select", !0), t.redraw(); + }; + if (t.hoverData.which === 3) { + if (Rt) { + var Xr = { + originalEvent: O, + type: "cxtdrag", + position: { + x: be[0], + y: be[1] + } + }; + Ke ? Ke.emit(Xr) : ce.emit(Xr), t.hoverData.cxtDragged = !0, (!t.hoverData.cxtOver || qe !== t.hoverData.cxtOver) && (t.hoverData.cxtOver && t.hoverData.cxtOver.emit({ + originalEvent: O, + type: "cxtdragout", + position: { + x: be[0], + y: be[1] + } + }), t.hoverData.cxtOver = qe, qe && qe.emit({ + originalEvent: O, + type: "cxtdragover", + position: { + x: be[0], + y: be[1] + } + })); + } + } else if (t.hoverData.dragging) { + if (Te = !0, ce.panningEnabled() && ce.userPanningEnabled()) { + var Ta; + if (t.hoverData.justStartedPan) { + var Jn = t.hoverData.mdownPos; + Ta = { + x: (be[0] - Jn[0]) * ye, + y: (be[1] - Jn[1]) * ye + }, t.hoverData.justStartedPan = !1; + } else + Ta = { + x: Je[0] * ye, + y: Je[1] * ye + }; + ce.panBy(Ta), ce.emit("dragpan"), t.hoverData.dragged = !0; + } + be = t.projectIntoViewport(O.clientX, O.clientY); + } else if (ft[4] == 1 && (Ke == null || Ke.pannable())) { + if (Rt) { + if (!t.hoverData.dragging && ce.boxSelectionEnabled() && (Er || !ce.panningEnabled() || !ce.userPanningEnabled())) + xa(); + else if (!t.hoverData.selecting && ce.panningEnabled() && ce.userPanningEnabled()) { + var Wr = i(Ke, t.hoverData.downs); + Wr && (t.hoverData.dragging = !0, t.hoverData.justStartedPan = !0, ft[4] = 0, t.data.bgActivePosistion = jr(Ge), t.redrawHint("select", !0), t.redraw()); + } + Ke && Ke.pannable() && Ke.active() && Ke.unactivate(); + } + } else { + if (Ke && Ke.pannable() && Ke.active() && Ke.unactivate(), (!Ke || !Ke.grabbed()) && qe != ot && (ot && a(ot, ["mouseout", "tapdragout"], O, { + x: be[0], + y: be[1] + }), qe && a(qe, ["mouseover", "tapdragover"], O, { + x: be[0], + y: be[1] + }), t.hoverData.last = qe), Ke) + if (Rt) { + if (ce.boxSelectionEnabled() && Er) + Ke && Ke.grabbed() && (p(Ct), Ke.emit("freeon"), Ct.emit("free"), t.dragData.didDrag && (Ke.emit("dragfreeon"), Ct.emit("dragfree"))), xa(); + else if (Ke && Ke.grabbed() && t.nodeIsDraggable(Ke)) { + var Xt = !t.dragData.didDrag; + Xt && t.redrawHint("eles", !0), t.dragData.didDrag = !0, t.hoverData.draggingEles || c(Ct, { + inDragLayer: !0 + }); + var Ut = { + x: 0, + y: 0 + }; + if (R(Je[0]) && R(Je[1]) && (Ut.x += Je[0], Ut.y += Je[1], Xt)) { + var Wt = t.hoverData.dragDelta; + Wt && R(Wt[0]) && R(Wt[1]) && (Ut.x += Wt[0], Ut.y += Wt[1]); + } + t.hoverData.draggingEles = !0, Ct.silentShift(Ut).emit("position drag"), t.redrawHint("drag", !0), t.redraw(); + } + } else + Rr(); + Te = !0; + } + if (ft[2] = be[0], ft[3] = be[1], Te) + return O.stopPropagation && O.stopPropagation(), O.preventDefault && O.preventDefault(), !1; + } + }, !1); + var F, G, N; + t.registerBinding(e, "mouseup", function(O) { + var oe = t.hoverData.capture; + if (oe) { + t.hoverData.capture = !1; + var Te = t.cy, ce = t.projectIntoViewport(O.clientX, O.clientY), ye = t.selection, _e = t.findNearestElement(ce[0], ce[1], !0, !1), be = t.dragData.possibleDragElements, Ge = t.hoverData.down, Qe = n(O); + if (t.data.bgActivePosistion && (t.redrawHint("select", !0), t.redraw()), t.hoverData.tapholdCancelled = !0, t.data.bgActivePosistion = void 0, Ge && Ge.unactivate(), t.hoverData.which === 3) { + var ft = { + originalEvent: O, + type: "cxttapend", + position: { + x: ce[0], + y: ce[1] + } + }; + if (Ge ? Ge.emit(ft) : Te.emit(ft), !t.hoverData.cxtDragged) { + var qe = { + originalEvent: O, + type: "cxttap", + position: { + x: ce[0], + y: ce[1] + } + }; + Ge ? Ge.emit(qe) : Te.emit(qe); + } + t.hoverData.cxtDragged = !1, t.hoverData.which = null; + } else if (t.hoverData.which === 1) { + if (a(_e, ["mouseup", "tapend", "vmouseup"], O, { + x: ce[0], + y: ce[1] + }), !t.dragData.didDrag && // didn't move a node around + !t.hoverData.dragged && // didn't pan + !t.hoverData.selecting && // not box selection + !t.hoverData.isOverThresholdDrag && (a(Ge, ["click", "tap", "vclick"], O, { + x: ce[0], + y: ce[1] + }), G = !1, O.timeStamp - N <= Te.multiClickDebounceTime() ? (F && clearTimeout(F), G = !0, N = null, a(Ge, ["dblclick", "dbltap", "vdblclick"], O, { + x: ce[0], + y: ce[1] + })) : (F = setTimeout(function() { + G || a(Ge, ["oneclick", "onetap", "voneclick"], O, { + x: ce[0], + y: ce[1] + }); + }, Te.multiClickDebounceTime()), N = O.timeStamp)), Ge == null && !t.dragData.didDrag && !t.hoverData.selecting && !t.hoverData.dragged && !n(O) && (Te.$(r).unselect(["tapunselect"]), be.length > 0 && t.redrawHint("eles", !0), t.dragData.possibleDragElements = be = Te.collection()), _e == Ge && !t.dragData.didDrag && !t.hoverData.selecting && _e != null && _e._private.selectable && (t.hoverData.dragging || (Te.selectionType() === "additive" || Qe ? _e.selected() ? _e.unselect(["tapunselect"]) : _e.select(["tapselect"]) : Qe || (Te.$(r).unmerge(_e).unselect(["tapunselect"]), _e.select(["tapselect"]))), t.redrawHint("eles", !0)), t.hoverData.selecting) { + var ot = Te.collection(t.getAllInBox(ye[0], ye[1], ye[2], ye[3])); + t.redrawHint("select", !0), ot.length > 0 && t.redrawHint("eles", !0), Te.emit({ + type: "boxend", + originalEvent: O, + position: { + x: ce[0], + y: ce[1] + } + }); + var Ke = function(Rt) { + return Rt.selectable() && !Rt.selected(); + }; + Te.selectionType() === "additive" || Qe || Te.$(r).unmerge(ot).unselect(), ot.emit("box").stdFilter(Ke).select().emit("boxselect"), t.redraw(); + } + if (t.hoverData.dragging && (t.hoverData.dragging = !1, t.redrawHint("select", !0), t.redrawHint("eles", !0), t.redraw()), !ye[4]) { + t.redrawHint("drag", !0), t.redrawHint("eles", !0); + var Je = Ge && Ge.grabbed(); + p(be), Je && (Ge.emit("freeon"), be.emit("free"), t.dragData.didDrag && (Ge.emit("dragfreeon"), be.emit("dragfree"))); + } + } + ye[4] = 0, t.hoverData.down = null, t.hoverData.cxtStarted = !1, t.hoverData.draggingEles = !1, t.hoverData.selecting = !1, t.hoverData.isOverThresholdDrag = !1, t.dragData.didDrag = !1, t.hoverData.dragged = !1, t.hoverData.dragDelta = [], t.hoverData.mdownPos = null, t.hoverData.mdownGPos = null; + } + }, !1); + var X = function(O) { + if (!t.scrollingPage) { + var oe = t.cy, Te = oe.zoom(), ce = oe.pan(), ye = t.projectIntoViewport(O.clientX, O.clientY), _e = [ye[0] * Te + ce.x, ye[1] * Te + ce.y]; + if (t.hoverData.draggingEles || t.hoverData.dragging || t.hoverData.cxtStarted || k()) { + O.preventDefault(); + return; + } + if (oe.panningEnabled() && oe.userPanningEnabled() && oe.zoomingEnabled() && oe.userZoomingEnabled()) { + O.preventDefault(), t.data.wheelZooming = !0, clearTimeout(t.data.wheelTimeout), t.data.wheelTimeout = setTimeout(function() { + t.data.wheelZooming = !1, t.redrawHint("eles", !0), t.redraw(); + }, 150); + var be; + O.deltaY != null ? be = O.deltaY / -250 : O.wheelDeltaY != null ? be = O.wheelDeltaY / 1e3 : be = O.wheelDelta / 1e3, be = be * t.wheelSensitivity; + var Ge = O.deltaMode === 1; + Ge && (be *= 33); + var Qe = oe.zoom() * Math.pow(10, be); + O.type === "gesturechange" && (Qe = t.gestureStartZoom * O.scale), oe.zoom({ + level: Qe, + renderedPosition: { + x: _e[0], + y: _e[1] + } + }), oe.emit(O.type === "gesturechange" ? "pinchzoom" : "scrollzoom"); + } + } + }; + t.registerBinding(t.container, "wheel", X, !0), t.registerBinding(e, "scroll", function(O) { + t.scrollingPage = !0, clearTimeout(t.scrollingPageTimeout), t.scrollingPageTimeout = setTimeout(function() { + t.scrollingPage = !1; + }, 250); + }, !0), t.registerBinding(t.container, "gesturestart", function(O) { + t.gestureStartZoom = t.cy.zoom(), t.hasTouchStarted || O.preventDefault(); + }, !0), t.registerBinding(t.container, "gesturechange", function(he) { + t.hasTouchStarted || X(he); + }, !0), t.registerBinding(t.container, "mouseout", function(O) { + var oe = t.projectIntoViewport(O.clientX, O.clientY); + t.cy.emit({ + originalEvent: O, + type: "mouseout", + position: { + x: oe[0], + y: oe[1] + } + }); + }, !1), t.registerBinding(t.container, "mouseover", function(O) { + var oe = t.projectIntoViewport(O.clientX, O.clientY); + t.cy.emit({ + originalEvent: O, + type: "mouseover", + position: { + x: oe[0], + y: oe[1] + } + }); + }, !1); + var B, re, K, W, ae, ue, me, ie, ge, Ee, Ce, we, De, se = function(O, oe, Te, ce) { + return Math.sqrt((Te - O) * (Te - O) + (ce - oe) * (ce - oe)); + }, xe = function(O, oe, Te, ce) { + return (Te - O) * (Te - O) + (ce - oe) * (ce - oe); + }, Le; + t.registerBinding(t.container, "touchstart", Le = function(O) { + if (t.hasTouchStarted = !0, !!D(O)) { + m(), t.touchData.capture = !0, t.data.bgActivePosistion = void 0; + var oe = t.cy, Te = t.touchData.now, ce = t.touchData.earlier; + if (O.touches[0]) { + var ye = t.projectIntoViewport(O.touches[0].clientX, O.touches[0].clientY); + Te[0] = ye[0], Te[1] = ye[1]; + } + if (O.touches[1]) { + var ye = t.projectIntoViewport(O.touches[1].clientX, O.touches[1].clientY); + Te[2] = ye[0], Te[3] = ye[1]; + } + if (O.touches[2]) { + var ye = t.projectIntoViewport(O.touches[2].clientX, O.touches[2].clientY); + Te[4] = ye[0], Te[5] = ye[1]; + } + if (O.touches[1]) { + t.touchData.singleTouchMoved = !0, p(t.dragData.touchDragEles); + var _e = t.findContainerClientCoords(); + ge = _e[0], Ee = _e[1], Ce = _e[2], we = _e[3], B = O.touches[0].clientX - ge, re = O.touches[0].clientY - Ee, K = O.touches[1].clientX - ge, W = O.touches[1].clientY - Ee, De = 0 <= B && B <= Ce && 0 <= K && K <= Ce && 0 <= re && re <= we && 0 <= W && W <= we; + var be = oe.pan(), Ge = oe.zoom(); + ae = se(B, re, K, W), ue = xe(B, re, K, W), me = [(B + K) / 2, (re + W) / 2], ie = [(me[0] - be.x) / Ge, (me[1] - be.y) / Ge]; + var Qe = 200, ft = Qe * Qe; + if (ue < ft && !O.touches[2]) { + var qe = t.findNearestElement(Te[0], Te[1], !0, !0), ot = t.findNearestElement(Te[2], Te[3], !0, !0); + qe && qe.isNode() ? (qe.activate().emit({ + originalEvent: O, + type: "cxttapstart", + position: { + x: Te[0], + y: Te[1] + } + }), t.touchData.start = qe) : ot && ot.isNode() ? (ot.activate().emit({ + originalEvent: O, + type: "cxttapstart", + position: { + x: Te[0], + y: Te[1] + } + }), t.touchData.start = ot) : oe.emit({ + originalEvent: O, + type: "cxttapstart", + position: { + x: Te[0], + y: Te[1] + } + }), t.touchData.start && (t.touchData.start._private.grabbed = !1), t.touchData.cxt = !0, t.touchData.cxtDragged = !1, t.data.bgActivePosistion = void 0, t.redraw(); + return; + } + } + if (O.touches[2]) + oe.boxSelectionEnabled() && O.preventDefault(); + else if (!O.touches[1]) { + if (O.touches[0]) { + var Ke = t.findNearestElements(Te[0], Te[1], !0, !0), Je = Ke[0]; + if (Je != null && (Je.activate(), t.touchData.start = Je, t.touchData.starts = Ke, t.nodeIsGrabbable(Je))) { + var Ct = t.dragData.touchDragEles = oe.collection(), Rt = null; + t.redrawHint("eles", !0), t.redrawHint("drag", !0), Je.selected() ? (Rt = oe.$(function(_t) { + return _t.selected() && t.nodeIsGrabbable(_t); + }), c(Rt, { + addToList: Ct + })) : y(Je, { + addToList: Ct + }), f(Je); + var ar = function(Er) { + return { + originalEvent: O, + type: Er, + position: { + x: Te[0], + y: Te[1] + } + }; + }; + Je.emit(ar("grabon")), Rt ? Rt.forEach(function(_t) { + _t.emit(ar("grab")); + }) : Je.emit(ar("grab")); + } + a(Je, ["touchstart", "tapstart", "vmousedown"], O, { + x: Te[0], + y: Te[1] + }), Je == null && (t.data.bgActivePosistion = { + x: ye[0], + y: ye[1] + }, t.redrawHint("select", !0), t.redraw()), t.touchData.singleTouchMoved = !1, t.touchData.singleTouchStartTime = +/* @__PURE__ */ new Date(), clearTimeout(t.touchData.tapholdTimeout), t.touchData.tapholdTimeout = setTimeout(function() { + t.touchData.singleTouchMoved === !1 && !t.pinching && !t.touchData.selecting && a(t.touchData.start, ["taphold"], O, { + x: Te[0], + y: Te[1] + }); + }, t.tapholdDuration); + } + } + if (O.touches.length >= 1) { + for (var nr = t.touchData.startPosition = [null, null, null, null, null, null], kt = 0; kt < Te.length; kt++) + nr[kt] = ce[kt] = Te[kt]; + var Jt = O.touches[0]; + t.touchData.startGPosition = [Jt.clientX, Jt.clientY]; + } + } + }, !1); + var Se; + t.registerBinding(window, "touchmove", Se = function(O) { + var oe = t.touchData.capture; + if (!(!oe && !D(O))) { + var Te = t.selection, ce = t.cy, ye = t.touchData.now, _e = t.touchData.earlier, be = ce.zoom(); + if (O.touches[0]) { + var Ge = t.projectIntoViewport(O.touches[0].clientX, O.touches[0].clientY); + ye[0] = Ge[0], ye[1] = Ge[1]; + } + if (O.touches[1]) { + var Ge = t.projectIntoViewport(O.touches[1].clientX, O.touches[1].clientY); + ye[2] = Ge[0], ye[3] = Ge[1]; + } + if (O.touches[2]) { + var Ge = t.projectIntoViewport(O.touches[2].clientX, O.touches[2].clientY); + ye[4] = Ge[0], ye[5] = Ge[1]; + } + var Qe = t.touchData.startGPosition, ft; + if (oe && O.touches[0] && Qe) { + for (var qe = [], ot = 0; ot < ye.length; ot++) + qe[ot] = ye[ot] - _e[ot]; + var Ke = O.touches[0].clientX - Qe[0], Je = Ke * Ke, Ct = O.touches[0].clientY - Qe[1], Rt = Ct * Ct, ar = Je + Rt; + ft = ar >= t.touchTapThreshold2; + } + if (oe && t.touchData.cxt) { + O.preventDefault(); + var nr = O.touches[0].clientX - ge, kt = O.touches[0].clientY - Ee, Jt = O.touches[1].clientX - ge, _t = O.touches[1].clientY - Ee, Er = xe(nr, kt, Jt, _t), Rr = Er / ue, xa = 150, Xr = xa * xa, Ta = 1.5, Jn = Ta * Ta; + if (Rr >= Jn || Er >= Xr) { + t.touchData.cxt = !1, t.data.bgActivePosistion = void 0, t.redrawHint("select", !0); + var Wr = { + originalEvent: O, + type: "cxttapend", + position: { + x: ye[0], + y: ye[1] + } + }; + t.touchData.start ? (t.touchData.start.unactivate().emit(Wr), t.touchData.start = null) : ce.emit(Wr); + } + } + if (oe && t.touchData.cxt) { + var Wr = { + originalEvent: O, + type: "cxtdrag", + position: { + x: ye[0], + y: ye[1] + } + }; + t.data.bgActivePosistion = void 0, t.redrawHint("select", !0), t.touchData.start ? t.touchData.start.emit(Wr) : ce.emit(Wr), t.touchData.start && (t.touchData.start._private.grabbed = !1), t.touchData.cxtDragged = !0; + var Xt = t.findNearestElement(ye[0], ye[1], !0, !0); + (!t.touchData.cxtOver || Xt !== t.touchData.cxtOver) && (t.touchData.cxtOver && t.touchData.cxtOver.emit({ + originalEvent: O, + type: "cxtdragout", + position: { + x: ye[0], + y: ye[1] + } + }), t.touchData.cxtOver = Xt, Xt && Xt.emit({ + originalEvent: O, + type: "cxtdragover", + position: { + x: ye[0], + y: ye[1] + } + })); + } else if (oe && O.touches[2] && ce.boxSelectionEnabled()) + O.preventDefault(), t.data.bgActivePosistion = void 0, this.lastThreeTouch = +/* @__PURE__ */ new Date(), t.touchData.selecting || ce.emit({ + originalEvent: O, + type: "boxstart", + position: { + x: ye[0], + y: ye[1] + } + }), t.touchData.selecting = !0, t.touchData.didSelect = !0, Te[4] = 1, !Te || Te.length === 0 || Te[0] === void 0 ? (Te[0] = (ye[0] + ye[2] + ye[4]) / 3, Te[1] = (ye[1] + ye[3] + ye[5]) / 3, Te[2] = (ye[0] + ye[2] + ye[4]) / 3 + 1, Te[3] = (ye[1] + ye[3] + ye[5]) / 3 + 1) : (Te[2] = (ye[0] + ye[2] + ye[4]) / 3, Te[3] = (ye[1] + ye[3] + ye[5]) / 3), t.redrawHint("select", !0), t.redraw(); + else if (oe && O.touches[1] && !t.touchData.didSelect && ce.zoomingEnabled() && ce.panningEnabled() && ce.userZoomingEnabled() && ce.userPanningEnabled()) { + O.preventDefault(), t.data.bgActivePosistion = void 0, t.redrawHint("select", !0); + var Ut = t.dragData.touchDragEles; + if (Ut) { + t.redrawHint("drag", !0); + for (var Wt = 0; Wt < Ut.length; Wt++) { + var jn = Ut[Wt]._private; + jn.grabbed = !1, jn.rscratch.inDragLayer = !1; + } + } + var cr = t.touchData.start, nr = O.touches[0].clientX - ge, kt = O.touches[0].clientY - Ee, Jt = O.touches[1].clientX - ge, _t = O.touches[1].clientY - Ee, Bl = se(nr, kt, Jt, _t), op = Bl / ae; + if (De) { + var lp = nr - B, up = kt - re, fp = Jt - K, hp = _t - W, vp = (lp + fp) / 2, cp = (up + hp) / 2, rn = ce.zoom(), Wi = rn * op, ei = ce.pan(), Fl = ie[0] * rn + ei.x, Gl = ie[1] * rn + ei.y, dp = { + x: -Wi / rn * (Fl - ei.x - vp) + Fl, + y: -Wi / rn * (Gl - ei.y - cp) + Gl + }; + if (cr && cr.active()) { + var Ut = t.dragData.touchDragEles; + p(Ut), t.redrawHint("drag", !0), t.redrawHint("eles", !0), cr.unactivate().emit("freeon"), Ut.emit("free"), t.dragData.didDrag && (cr.emit("dragfreeon"), Ut.emit("dragfree")); + } + ce.viewport({ + zoom: Wi, + pan: dp, + cancelOnFailedZoom: !0 + }), ce.emit("pinchzoom"), ae = Bl, B = nr, re = kt, K = Jt, W = _t, t.pinching = !0; + } + if (O.touches[0]) { + var Ge = t.projectIntoViewport(O.touches[0].clientX, O.touches[0].clientY); + ye[0] = Ge[0], ye[1] = Ge[1]; + } + if (O.touches[1]) { + var Ge = t.projectIntoViewport(O.touches[1].clientX, O.touches[1].clientY); + ye[2] = Ge[0], ye[3] = Ge[1]; + } + if (O.touches[2]) { + var Ge = t.projectIntoViewport(O.touches[2].clientX, O.touches[2].clientY); + ye[4] = Ge[0], ye[5] = Ge[1]; + } + } else if (O.touches[0] && !t.touchData.didSelect) { + var ir = t.touchData.start, qi = t.touchData.last, Xt; + if (!t.hoverData.draggingEles && !t.swipePanning && (Xt = t.findNearestElement(ye[0], ye[1], !0, !0)), oe && ir != null && O.preventDefault(), oe && ir != null && t.nodeIsDraggable(ir)) + if (ft) { + var Ut = t.dragData.touchDragEles, zl = !t.dragData.didDrag; + zl && c(Ut, { + inDragLayer: !0 + }), t.dragData.didDrag = !0; + var an = { + x: 0, + y: 0 + }; + if (R(qe[0]) && R(qe[1]) && (an.x += qe[0], an.y += qe[1], zl)) { + t.redrawHint("eles", !0); + var sr = t.touchData.dragDelta; + sr && R(sr[0]) && R(sr[1]) && (an.x += sr[0], an.y += sr[1]); + } + t.hoverData.draggingEles = !0, Ut.silentShift(an).emit("position drag"), t.redrawHint("drag", !0), t.touchData.startPosition[0] == _e[0] && t.touchData.startPosition[1] == _e[1] && t.redrawHint("eles", !0), t.redraw(); + } else { + var sr = t.touchData.dragDelta = t.touchData.dragDelta || []; + sr.length === 0 ? (sr.push(qe[0]), sr.push(qe[1])) : (sr[0] += qe[0], sr[1] += qe[1]); + } + if (a(ir || Xt, ["touchmove", "tapdrag", "vmousemove"], O, { + x: ye[0], + y: ye[1] + }), (!ir || !ir.grabbed()) && Xt != qi && (qi && qi.emit({ + originalEvent: O, + type: "tapdragout", + position: { + x: ye[0], + y: ye[1] + } + }), Xt && Xt.emit({ + originalEvent: O, + type: "tapdragover", + position: { + x: ye[0], + y: ye[1] + } + })), t.touchData.last = Xt, oe) + for (var Wt = 0; Wt < ye.length; Wt++) + ye[Wt] && t.touchData.startPosition[Wt] && ft && (t.touchData.singleTouchMoved = !0); + if (oe && (ir == null || ir.pannable()) && ce.panningEnabled() && ce.userPanningEnabled()) { + var gp = i(ir, t.touchData.starts); + gp && (O.preventDefault(), t.data.bgActivePosistion || (t.data.bgActivePosistion = jr(t.touchData.startPosition)), t.swipePanning ? (ce.panBy({ + x: qe[0] * be, + y: qe[1] * be + }), ce.emit("dragpan")) : ft && (t.swipePanning = !0, ce.panBy({ + x: Ke * be, + y: Ct * be + }), ce.emit("dragpan"), ir && (ir.unactivate(), t.redrawHint("select", !0), t.touchData.start = null))); + var Ge = t.projectIntoViewport(O.touches[0].clientX, O.touches[0].clientY); + ye[0] = Ge[0], ye[1] = Ge[1]; + } + } + for (var ot = 0; ot < ye.length; ot++) + _e[ot] = ye[ot]; + oe && O.touches.length > 0 && !t.hoverData.draggingEles && !t.swipePanning && t.data.bgActivePosistion != null && (t.data.bgActivePosistion = void 0, t.redrawHint("select", !0), t.redraw()); + } + }, !1); + var Oe; + t.registerBinding(e, "touchcancel", Oe = function(O) { + var oe = t.touchData.start; + t.touchData.capture = !1, oe && oe.unactivate(); + }); + var Fe, Xe, Ie, Me; + if (t.registerBinding(e, "touchend", Fe = function(O) { + var oe = t.touchData.start, Te = t.touchData.capture; + if (Te) + O.touches.length === 0 && (t.touchData.capture = !1), O.preventDefault(); + else + return; + var ce = t.selection; + t.swipePanning = !1, t.hoverData.draggingEles = !1; + var ye = t.cy, _e = ye.zoom(), be = t.touchData.now, Ge = t.touchData.earlier; + if (O.touches[0]) { + var Qe = t.projectIntoViewport(O.touches[0].clientX, O.touches[0].clientY); + be[0] = Qe[0], be[1] = Qe[1]; + } + if (O.touches[1]) { + var Qe = t.projectIntoViewport(O.touches[1].clientX, O.touches[1].clientY); + be[2] = Qe[0], be[3] = Qe[1]; + } + if (O.touches[2]) { + var Qe = t.projectIntoViewport(O.touches[2].clientX, O.touches[2].clientY); + be[4] = Qe[0], be[5] = Qe[1]; + } + oe && oe.unactivate(); + var ft; + if (t.touchData.cxt) { + if (ft = { + originalEvent: O, + type: "cxttapend", + position: { + x: be[0], + y: be[1] + } + }, oe ? oe.emit(ft) : ye.emit(ft), !t.touchData.cxtDragged) { + var qe = { + originalEvent: O, + type: "cxttap", + position: { + x: be[0], + y: be[1] + } + }; + oe ? oe.emit(qe) : ye.emit(qe); + } + t.touchData.start && (t.touchData.start._private.grabbed = !1), t.touchData.cxt = !1, t.touchData.start = null, t.redraw(); + return; + } + if (!O.touches[2] && ye.boxSelectionEnabled() && t.touchData.selecting) { + t.touchData.selecting = !1; + var ot = ye.collection(t.getAllInBox(ce[0], ce[1], ce[2], ce[3])); + ce[0] = void 0, ce[1] = void 0, ce[2] = void 0, ce[3] = void 0, ce[4] = 0, t.redrawHint("select", !0), ye.emit({ + type: "boxend", + originalEvent: O, + position: { + x: be[0], + y: be[1] + } + }); + var Ke = function(Xr) { + return Xr.selectable() && !Xr.selected(); + }; + ot.emit("box").stdFilter(Ke).select().emit("boxselect"), ot.nonempty() && t.redrawHint("eles", !0), t.redraw(); + } + if (oe != null && oe.unactivate(), O.touches[2]) + t.data.bgActivePosistion = void 0, t.redrawHint("select", !0); + else if (!O.touches[1]) { + if (!O.touches[0]) { + if (!O.touches[0]) { + t.data.bgActivePosistion = void 0, t.redrawHint("select", !0); + var Je = t.dragData.touchDragEles; + if (oe != null) { + var Ct = oe._private.grabbed; + p(Je), t.redrawHint("drag", !0), t.redrawHint("eles", !0), Ct && (oe.emit("freeon"), Je.emit("free"), t.dragData.didDrag && (oe.emit("dragfreeon"), Je.emit("dragfree"))), a(oe, ["touchend", "tapend", "vmouseup", "tapdragout"], O, { + x: be[0], + y: be[1] + }), oe.unactivate(), t.touchData.start = null; + } else { + var Rt = t.findNearestElement(be[0], be[1], !0, !0); + a(Rt, ["touchend", "tapend", "vmouseup", "tapdragout"], O, { + x: be[0], + y: be[1] + }); + } + var ar = t.touchData.startPosition[0] - be[0], nr = ar * ar, kt = t.touchData.startPosition[1] - be[1], Jt = kt * kt, _t = nr + Jt, Er = _t * _e * _e; + t.touchData.singleTouchMoved || (oe || ye.$(":selected").unselect(["tapunselect"]), a(oe, ["tap", "vclick"], O, { + x: be[0], + y: be[1] + }), Xe = !1, O.timeStamp - Me <= ye.multiClickDebounceTime() ? (Ie && clearTimeout(Ie), Xe = !0, Me = null, a(oe, ["dbltap", "vdblclick"], O, { + x: be[0], + y: be[1] + })) : (Ie = setTimeout(function() { + Xe || a(oe, ["onetap", "voneclick"], O, { + x: be[0], + y: be[1] + }); + }, ye.multiClickDebounceTime()), Me = O.timeStamp)), oe != null && !t.dragData.didDrag && oe._private.selectable && Er < t.touchTapThreshold2 && !t.pinching && (ye.selectionType() === "single" ? (ye.$(r).unmerge(oe).unselect(["tapunselect"]), oe.select(["tapselect"])) : oe.selected() ? oe.unselect(["tapunselect"]) : oe.select(["tapselect"]), t.redrawHint("eles", !0)), t.touchData.singleTouchMoved = !0; + } + } + } + for (var Rr = 0; Rr < be.length; Rr++) + Ge[Rr] = be[Rr]; + t.dragData.didDrag = !1, O.touches.length === 0 && (t.touchData.dragDelta = [], t.touchData.startPosition = [null, null, null, null, null, null], t.touchData.startGPosition = null, t.touchData.didSelect = !1), O.touches.length < 2 && (O.touches.length === 1 && (t.touchData.startGPosition = [O.touches[0].clientX, O.touches[0].clientY]), t.pinching = !1, t.redrawHint("eles", !0), t.redraw()); + }, !1), typeof TouchEvent > "u") { + var Ue = [], ze = function(O) { + return { + clientX: O.clientX, + clientY: O.clientY, + force: 1, + identifier: O.pointerId, + pageX: O.pageX, + pageY: O.pageY, + radiusX: O.width / 2, + radiusY: O.height / 2, + screenX: O.screenX, + screenY: O.screenY, + target: O.target + }; + }, Be = function(O) { + return { + event: O, + touch: ze(O) + }; + }, $e = function(O) { + Ue.push(Be(O)); + }, rt = function(O) { + for (var oe = 0; oe < Ue.length; oe++) { + var Te = Ue[oe]; + if (Te.event.pointerId === O.pointerId) { + Ue.splice(oe, 1); + return; + } + } + }, je = function(O) { + var oe = Ue.filter(function(Te) { + return Te.event.pointerId === O.pointerId; + })[0]; + oe.event = O, oe.touch = ze(O); + }, We = function(O) { + O.touches = Ue.map(function(oe) { + return oe.touch; + }); + }, et = function(O) { + return O.pointerType === "mouse" || O.pointerType === 4; + }; + t.registerBinding(t.container, "pointerdown", function(he) { + et(he) || (he.preventDefault(), $e(he), We(he), Le(he)); + }), t.registerBinding(t.container, "pointerup", function(he) { + et(he) || (rt(he), We(he), Fe(he)); + }), t.registerBinding(t.container, "pointercancel", function(he) { + et(he) || (rt(he), We(he), Oe(he)); + }), t.registerBinding(t.container, "pointermove", function(he) { + et(he) || (he.preventDefault(), je(he), We(he), Se(he)); + }); + } + }; + var mr = {}; + mr.generatePolygon = function(t, e) { + return this.nodeShapes[t] = { + renderer: this, + name: t, + points: e, + draw: function(a, n, i, s, o) { + this.renderer.nodeShapeImpl("polygon", a, n, i, s, o, this.points); + }, + intersectLine: function(a, n, i, s, o, u, l) { + return Ba(o, u, this.points, a, n, i / 2, s / 2, l); + }, + checkPoint: function(a, n, i, s, o, u, l) { + return pr(a, n, this.points, u, l, s, o, [0, -1], i); + } + }; + }, mr.generateEllipse = function() { + return this.nodeShapes.ellipse = { + renderer: this, + name: "ellipse", + draw: function(e, r, a, n, i) { + this.renderer.nodeShapeImpl(this.name, e, r, a, n, i); + }, + intersectLine: function(e, r, a, n, i, s, o) { + return Rf(i, s, e, r, a / 2 + o, n / 2 + o); + }, + checkPoint: function(e, r, a, n, i, s, o) { + return Gr(e, r, n, i, s, o, a); + } + }; + }, mr.generateRoundPolygon = function(t, e) { + for (var r = new Array(e.length * 2), a = 0; a < e.length / 2; a++) { + var n = a * 2, i = void 0; + a < e.length / 2 - 1 ? i = (a + 1) * 2 : i = 0, r[a * 4] = e[n], r[a * 4 + 1] = e[n + 1]; + var s = e[i] - e[n], o = e[i + 1] - e[n + 1], u = Math.sqrt(s * s + o * o); + r[a * 4 + 2] = s / u, r[a * 4 + 3] = o / u; + } + return this.nodeShapes[t] = { + renderer: this, + name: t, + points: r, + draw: function(f, h, v, d, c) { + this.renderer.nodeShapeImpl("round-polygon", f, h, v, d, c, this.points); + }, + intersectLine: function(f, h, v, d, c, y, p) { + return kf(c, y, this.points, f, h, v, d); + }, + checkPoint: function(f, h, v, d, c, y, p) { + return Mf(f, h, this.points, y, p, d, c); + } + }; + }, mr.generateRoundRectangle = function() { + return this.nodeShapes["round-rectangle"] = this.nodeShapes.roundrectangle = { + renderer: this, + name: "round-rectangle", + points: $t(4, 0), + draw: function(e, r, a, n, i) { + this.renderer.nodeShapeImpl(this.name, e, r, a, n, i); + }, + intersectLine: function(e, r, a, n, i, s, o) { + return Cs(i, s, e, r, a, n, o); + }, + checkPoint: function(e, r, a, n, i, s, o) { + var u = Fa(n, i), l = u * 2; + return !!(pr(e, r, this.points, s, o, n, i - l, [0, -1], a) || pr(e, r, this.points, s, o, n - l, i, [0, -1], a) || Gr(e, r, l, l, s - n / 2 + u, o - i / 2 + u, a) || Gr(e, r, l, l, s + n / 2 - u, o - i / 2 + u, a) || Gr(e, r, l, l, s + n / 2 - u, o + i / 2 - u, a) || Gr(e, r, l, l, s - n / 2 + u, o + i / 2 - u, a)); + } + }; + }, mr.generateCutRectangle = function() { + return this.nodeShapes["cut-rectangle"] = this.nodeShapes.cutrectangle = { + renderer: this, + name: "cut-rectangle", + cornerLength: Ss(), + points: $t(4, 0), + draw: function(e, r, a, n, i) { + this.renderer.nodeShapeImpl(this.name, e, r, a, n, i); + }, + generateCutTrianglePts: function(e, r, a, n) { + var i = this.cornerLength, s = r / 2, o = e / 2, u = a - o, l = a + o, f = n - s, h = n + s; + return { + topLeft: [u, f + i, u + i, f, u + i, f + i], + topRight: [l - i, f, l, f + i, l - i, f + i], + bottomRight: [l, h - i, l - i, h, l - i, h - i], + bottomLeft: [u + i, h, u, h - i, u + i, h - i] + }; + }, + intersectLine: function(e, r, a, n, i, s, o) { + var u = this.generateCutTrianglePts(a + 2 * o, n + 2 * o, e, r), l = [].concat.apply([], [u.topLeft.splice(0, 4), u.topRight.splice(0, 4), u.bottomRight.splice(0, 4), u.bottomLeft.splice(0, 4)]); + return Ba(i, s, l, e, r); + }, + checkPoint: function(e, r, a, n, i, s, o) { + if (pr(e, r, this.points, s, o, n, i - 2 * this.cornerLength, [0, -1], a) || pr(e, r, this.points, s, o, n - 2 * this.cornerLength, i, [0, -1], a)) + return !0; + var u = this.generateCutTrianglePts(n, i, s, o); + return Ht(e, r, u.topLeft) || Ht(e, r, u.topRight) || Ht(e, r, u.bottomRight) || Ht(e, r, u.bottomLeft); + } + }; + }, mr.generateBarrel = function() { + return this.nodeShapes.barrel = { + renderer: this, + name: "barrel", + points: $t(4, 0), + draw: function(e, r, a, n, i) { + this.renderer.nodeShapeImpl(this.name, e, r, a, n, i); + }, + intersectLine: function(e, r, a, n, i, s, o) { + var u = 0.15, l = 0.5, f = 0.85, h = this.generateBarrelBezierPts(a + 2 * o, n + 2 * o, e, r), v = function(y) { + var p = ea({ + x: y[0], + y: y[1] + }, { + x: y[2], + y: y[3] + }, { + x: y[4], + y: y[5] + }, u), g = ea({ + x: y[0], + y: y[1] + }, { + x: y[2], + y: y[3] + }, { + x: y[4], + y: y[5] + }, l), m = ea({ + x: y[0], + y: y[1] + }, { + x: y[2], + y: y[3] + }, { + x: y[4], + y: y[5] + }, f); + return [y[0], y[1], p.x, p.y, g.x, g.y, m.x, m.y, y[4], y[5]]; + }, d = [].concat(v(h.topLeft), v(h.topRight), v(h.bottomRight), v(h.bottomLeft)); + return Ba(i, s, d, e, r); + }, + generateBarrelBezierPts: function(e, r, a, n) { + var i = r / 2, s = e / 2, o = a - s, u = a + s, l = n - i, f = n + i, h = di(e, r), v = h.heightOffset, d = h.widthOffset, c = h.ctrlPtOffsetPct * e, y = { + topLeft: [o, l + v, o + c, l, o + d, l], + topRight: [u - d, l, u - c, l, u, l + v], + bottomRight: [u, f - v, u - c, f, u - d, f], + bottomLeft: [o + d, f, o + c, f, o, f - v] + }; + return y.topLeft.isTop = !0, y.topRight.isTop = !0, y.bottomLeft.isBottom = !0, y.bottomRight.isBottom = !0, y; + }, + checkPoint: function(e, r, a, n, i, s, o) { + var u = di(n, i), l = u.heightOffset, f = u.widthOffset; + if (pr(e, r, this.points, s, o, n, i - 2 * l, [0, -1], a) || pr(e, r, this.points, s, o, n - 2 * f, i, [0, -1], a)) + return !0; + for (var h = this.generateBarrelBezierPts(n, i, s, o), v = function(w, k, D) { + var F = D[4], G = D[2], N = D[0], X = D[5], B = D[1], re = Math.min(F, N), K = Math.max(F, N), W = Math.min(X, B), ae = Math.max(X, B); + if (re <= w && w <= K && W <= k && k <= ae) { + var ue = Pf(F, G, N), me = Af(ue[0], ue[1], ue[2], w), ie = me.filter(function(ge) { + return 0 <= ge && ge <= 1; + }); + if (ie.length > 0) + return ie[0]; + } + return null; + }, d = Object.keys(h), c = 0; c < d.length; c++) { + var y = d[c], p = h[y], g = v(e, r, p); + if (g != null) { + var m = p[5], b = p[3], E = p[1], M = Lt(m, b, E, g); + if (p.isTop && M <= r || p.isBottom && r <= M) + return !0; + } + } + return !1; + } + }; + }, mr.generateBottomRoundrectangle = function() { + return this.nodeShapes["bottom-round-rectangle"] = this.nodeShapes.bottomroundrectangle = { + renderer: this, + name: "bottom-round-rectangle", + points: $t(4, 0), + draw: function(e, r, a, n, i) { + this.renderer.nodeShapeImpl(this.name, e, r, a, n, i); + }, + intersectLine: function(e, r, a, n, i, s, o) { + var u = e - (a / 2 + o), l = r - (n / 2 + o), f = l, h = e + (a / 2 + o), v = Cr(i, s, e, r, u, l, h, f, !1); + return v.length > 0 ? v : Cs(i, s, e, r, a, n, o); + }, + checkPoint: function(e, r, a, n, i, s, o) { + var u = Fa(n, i), l = 2 * u; + if (pr(e, r, this.points, s, o, n, i - l, [0, -1], a) || pr(e, r, this.points, s, o, n - l, i, [0, -1], a)) + return !0; + var f = n / 2 + 2 * a, h = i / 2 + 2 * a, v = [s - f, o - h, s - f, o, s + f, o, s + f, o - h]; + return !!(Ht(e, r, v) || Gr(e, r, l, l, s + n / 2 - u, o + i / 2 - u, a) || Gr(e, r, l, l, s - n / 2 + u, o + i / 2 - u, a)); + } + }; + }, mr.registerNodeShapes = function() { + var t = this.nodeShapes = {}, e = this; + this.generateEllipse(), this.generatePolygon("triangle", $t(3, 0)), this.generateRoundPolygon("round-triangle", $t(3, 0)), this.generatePolygon("rectangle", $t(4, 0)), t.square = t.rectangle, this.generateRoundRectangle(), this.generateCutRectangle(), this.generateBarrel(), this.generateBottomRoundrectangle(); + { + var r = [0, 1, 1, 0, 0, -1, -1, 0]; + this.generatePolygon("diamond", r), this.generateRoundPolygon("round-diamond", r); + } + this.generatePolygon("pentagon", $t(5, 0)), this.generateRoundPolygon("round-pentagon", $t(5, 0)), this.generatePolygon("hexagon", $t(6, 0)), this.generateRoundPolygon("round-hexagon", $t(6, 0)), this.generatePolygon("heptagon", $t(7, 0)), this.generateRoundPolygon("round-heptagon", $t(7, 0)), this.generatePolygon("octagon", $t(8, 0)), this.generateRoundPolygon("round-octagon", $t(8, 0)); + var a = new Array(20); + { + var n = vi(5, 0), i = vi(5, Math.PI / 5), s = 0.5 * (3 - Math.sqrt(5)); + s *= 1.57; + for (var o = 0; o < i.length / 2; o++) + i[o * 2] *= s, i[o * 2 + 1] *= s; + for (var o = 0; o < 20 / 4; o++) + a[o * 4] = n[o * 2], a[o * 4 + 1] = n[o * 2 + 1], a[o * 4 + 2] = i[o * 2], a[o * 4 + 3] = i[o * 2 + 1]; + } + a = Ds(a), this.generatePolygon("star", a), this.generatePolygon("vee", [-1, -1, 0, -0.333, 1, -1, 0, 1]), this.generatePolygon("rhomboid", [-1, -1, 0.333, -1, 1, 1, -0.333, 1]), this.generatePolygon("right-rhomboid", [-0.333, -1, 1, -1, 0.333, 1, -1, 1]), this.nodeShapes.concavehexagon = this.generatePolygon("concave-hexagon", [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]); + { + var u = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1]; + this.generatePolygon("tag", u), this.generateRoundPolygon("round-tag", u); + } + t.makePolygon = function(l) { + var f = l.join("$"), h = "polygon-" + f, v; + return (v = this[h]) ? v : e.generatePolygon(h, l); + }; + }; + var Ja = {}; + Ja.timeToRender = function() { + return this.redrawTotalTime / this.redrawCount; + }, Ja.redraw = function(t) { + t = t || ys(); + var e = this; + e.averageRedrawTime === void 0 && (e.averageRedrawTime = 0), e.lastRedrawTime === void 0 && (e.lastRedrawTime = 0), e.lastDrawTime === void 0 && (e.lastDrawTime = 0), e.requestedFrame = !0, e.renderOptions = t; + }, Ja.beforeRender = function(t, e) { + if (!this.destroyed) { + e == null && xt("Priority is not optional for beforeRender"); + var r = this.beforeRenderCallbacks; + r.push({ + fn: t, + priority: e + }), r.sort(function(a, n) { + return n.priority - a.priority; + }); + } + }; + var vl = function(e, r, a) { + for (var n = e.beforeRenderCallbacks, i = 0; i < n.length; i++) + n[i].fn(r, a); + }; + Ja.startRenderLoop = function() { + var t = this, e = t.cy; + if (!t.renderLoopStarted) { + t.renderLoopStarted = !0; + var r = function a(n) { + if (!t.destroyed) { + if (!e.batching()) + if (t.requestedFrame && !t.skipFrame) { + vl(t, !0, n); + var i = gr(); + t.render(t.renderOptions); + var s = t.lastDrawTime = gr(); + t.averageRedrawTime === void 0 && (t.averageRedrawTime = s - i), t.redrawCount === void 0 && (t.redrawCount = 0), t.redrawCount++, t.redrawTotalTime === void 0 && (t.redrawTotalTime = 0); + var o = s - i; + t.redrawTotalTime += o, t.lastRedrawTime = o, t.averageRedrawTime = t.averageRedrawTime / 2 + o / 2, t.requestedFrame = !1; + } else + vl(t, !1, n); + t.skipFrame = !1, ln(a); + } + }; + ln(r); + } + }; + var dg = function(e) { + this.init(e); + }, cl = dg, ma = cl.prototype; + ma.clientFunctions = ["redrawHint", "render", "renderTo", "matchCanvasSize", "nodeShapeImpl", "arrowShapeImpl"], ma.init = function(t) { + var e = this; + e.options = t, e.cy = t.cy; + var r = e.container = t.cy.container(), a = e.cy.window(); + if (a) { + var n = a.document, i = n.head, s = "__________cytoscape_stylesheet", o = "__________cytoscape_container", u = n.getElementById(s) != null; + if (r.className.indexOf(o) < 0 && (r.className = (r.className || "") + " " + o), !u) { + var l = n.createElement("style"); + l.id = s, l.textContent = "." + o + " { position: relative; }", i.insertBefore(l, i.children[0]); + } + var f = a.getComputedStyle(r), h = f.getPropertyValue("position"); + h === "static" && vt("A Cytoscape container has style position:static and so can not use UI extensions properly"); + } + e.selection = [void 0, void 0, void 0, void 0, 0], e.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95], e.hoverData = { + down: null, + last: null, + downTime: null, + triggerMode: null, + dragging: !1, + initialPan: [null, null], + capture: !1 + }, e.dragData = { + possibleDragElements: [] + }, e.touchData = { + start: null, + capture: !1, + // These 3 fields related to tap, taphold events + startPosition: [null, null, null, null, null, null], + singleTouchStartTime: null, + singleTouchMoved: !0, + now: [null, null, null, null, null, null], + earlier: [null, null, null, null, null, null] + }, e.redraws = 0, e.showFps = t.showFps, e.debug = t.debug, e.hideEdgesOnViewport = t.hideEdgesOnViewport, e.textureOnViewport = t.textureOnViewport, e.wheelSensitivity = t.wheelSensitivity, e.motionBlurEnabled = t.motionBlur, e.forcedPixelRatio = R(t.pixelRatio) ? t.pixelRatio : null, e.motionBlur = t.motionBlur, e.motionBlurOpacity = t.motionBlurOpacity, e.motionBlurTransparency = 1 - e.motionBlurOpacity, e.motionBlurPxRatio = 1, e.mbPxRBlurry = 1, e.minMbLowQualFrames = 4, e.fullQualityMb = !1, e.clearedForMotionBlur = [], e.desktopTapThreshold = t.desktopTapThreshold, e.desktopTapThreshold2 = t.desktopTapThreshold * t.desktopTapThreshold, e.touchTapThreshold = t.touchTapThreshold, e.touchTapThreshold2 = t.touchTapThreshold * t.touchTapThreshold, e.tapholdDuration = 500, e.bindings = [], e.beforeRenderCallbacks = [], e.beforeRenderPriorities = { + // higher priority execs before lower one + animations: 400, + eleCalcs: 300, + eleTxrDeq: 200, + lyrTxrDeq: 150, + lyrTxrSkip: 100 + }, e.registerNodeShapes(), e.registerArrowShapes(), e.registerCalculationListeners(); + }, ma.notify = function(t, e) { + var r = this, a = r.cy; + if (!this.destroyed) { + if (t === "init") { + r.load(); + return; + } + if (t === "destroy") { + r.destroy(); + return; + } + (t === "add" || t === "remove" || t === "move" && a.hasCompoundNodes() || t === "load" || t === "zorder" || t === "mount") && r.invalidateCachedZSortedEles(), t === "viewport" && r.redrawHint("select", !0), (t === "load" || t === "resize" || t === "mount") && (r.invalidateContainerClientCoordsCache(), r.matchCanvasSize(r.container)), r.redrawHint("eles", !0), r.redrawHint("drag", !0), this.startRenderLoop(), this.redraw(); + } + }, ma.destroy = function() { + var t = this; + t.destroyed = !0, t.cy.stopAnimationLoop(); + for (var e = 0; e < t.bindings.length; e++) { + var r = t.bindings[e], a = r, n = a.target; + (n.off || n.removeEventListener).apply(n, a.args); + } + if (t.bindings = [], t.beforeRenderCallbacks = [], t.onUpdateEleCalcsFns = [], t.removeObserver && t.removeObserver.disconnect(), t.styleObserver && t.styleObserver.disconnect(), t.resizeObserver && t.resizeObserver.disconnect(), t.labelCalcDiv) + try { + document.body.removeChild(t.labelCalcDiv); + } catch { + } + }, ma.isHeadless = function() { + return !1; + }, [Fi, fl, hl, ya, mr, Ja].forEach(function(t) { + He(ma, t); + }); + var zi = 1e3 / 60, dl = { + setupDequeueing: function(e) { + return function() { + var a = this, n = this.renderer; + if (!a.dequeueingSetup) { + a.dequeueingSetup = !0; + var i = on(function() { + n.redrawHint("eles", !0), n.redrawHint("drag", !0), n.redraw(); + }, e.deqRedrawThreshold), s = function(l, f) { + var h = gr(), v = n.averageRedrawTime, d = n.lastRedrawTime, c = [], y = n.cy.extent(), p = n.getPixelRatio(); + for (l || n.flushRenderedStyleQueue(); ; ) { + var g = gr(), m = g - h, b = g - f; + if (d < zi) { + var E = zi - (l ? v : 0); + if (b >= e.deqFastCost * E) + break; + } else if (l) { + if (m >= e.deqCost * d || m >= e.deqAvgCost * v) + break; + } else if (b >= e.deqNoDrawCost * zi) + break; + var M = e.deq(a, p, y); + if (M.length > 0) + for (var L = 0; L < M.length; L++) + c.push(M[L]); + else + break; + } + c.length > 0 && (e.onDeqd(a, c), !l && e.shouldRedraw(a, c, p, y) && i()); + }, o = e.priority || si; + n.beforeRender(s, o(a)); + } + }; + } + }, gg = /* @__PURE__ */ function() { + function t(e) { + var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : fn; + fe(this, t), this.idsByKey = new ur(), this.keyForId = new ur(), this.cachesByLvl = new ur(), this.lvls = [], this.getKey = e, this.doesEleInvalidateKey = r; + } + return C(t, [{ + key: "getIdsFor", + value: function(r) { + r == null && xt("Can not get id list for null key"); + var a = this.idsByKey, n = this.idsByKey.get(r); + return n || (n = new Jr(), a.set(r, n)), n; + } + }, { + key: "addIdForKey", + value: function(r, a) { + r != null && this.getIdsFor(r).add(a); + } + }, { + key: "deleteIdForKey", + value: function(r, a) { + r != null && this.getIdsFor(r).delete(a); + } + }, { + key: "getNumberOfIdsForKey", + value: function(r) { + return r == null ? 0 : this.getIdsFor(r).size; + } + }, { + key: "updateKeyMappingFor", + value: function(r) { + var a = r.id(), n = this.keyForId.get(a), i = this.getKey(r); + this.deleteIdForKey(n, a), this.addIdForKey(i, a), this.keyForId.set(a, i); + } + }, { + key: "deleteKeyMappingFor", + value: function(r) { + var a = r.id(), n = this.keyForId.get(a); + this.deleteIdForKey(n, a), this.keyForId.delete(a); + } + }, { + key: "keyHasChangedFor", + value: function(r) { + var a = r.id(), n = this.keyForId.get(a), i = this.getKey(r); + return n !== i; + } + }, { + key: "isInvalid", + value: function(r) { + return this.keyHasChangedFor(r) || this.doesEleInvalidateKey(r); + } + }, { + key: "getCachesAt", + value: function(r) { + var a = this.cachesByLvl, n = this.lvls, i = a.get(r); + return i || (i = new ur(), a.set(r, i), n.push(r)), i; + } + }, { + key: "getCache", + value: function(r, a) { + return this.getCachesAt(a).get(r); + } + }, { + key: "get", + value: function(r, a) { + var n = this.getKey(r), i = this.getCache(n, a); + return i != null && this.updateKeyMappingFor(r), i; + } + }, { + key: "getForCachedKey", + value: function(r, a) { + var n = this.keyForId.get(r.id()), i = this.getCache(n, a); + return i; + } + }, { + key: "hasCache", + value: function(r, a) { + return this.getCachesAt(a).has(r); + } + }, { + key: "has", + value: function(r, a) { + var n = this.getKey(r); + return this.hasCache(n, a); + } + }, { + key: "setCache", + value: function(r, a, n) { + n.key = r, this.getCachesAt(a).set(r, n); + } + }, { + key: "set", + value: function(r, a, n) { + var i = this.getKey(r); + this.setCache(i, a, n), this.updateKeyMappingFor(r); + } + }, { + key: "deleteCache", + value: function(r, a) { + this.getCachesAt(a).delete(r); + } + }, { + key: "delete", + value: function(r, a) { + var n = this.getKey(r); + this.deleteCache(n, a); + } + }, { + key: "invalidateKey", + value: function(r) { + var a = this; + this.lvls.forEach(function(n) { + return a.deleteCache(r, n); + }); + } + // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key) + }, { + key: "invalidate", + value: function(r) { + var a = r.id(), n = this.keyForId.get(a); + this.deleteKeyMappingFor(r); + var i = this.doesEleInvalidateKey(r); + return i && this.invalidateKey(n), i || this.getNumberOfIdsForKey(n) === 0; + } + }]), t; + }(), gl = 25, Kn = 50, Zn = -4, Vi = 3, pg = 7.99, yg = 8, mg = 1024, bg = 1024, Eg = 1024, wg = 0.2, xg = 0.8, Tg = 10, Cg = 0.15, Dg = 0.1, Sg = 0.9, Lg = 0.9, Ag = 100, Og = 1, ba = { + dequeue: "dequeue", + downscale: "downscale", + highQuality: "highQuality" + }, Ng = At({ + getKey: null, + doesEleInvalidateKey: fn, + drawElement: null, + getBoundingBox: null, + getRotationPoint: null, + getRotationOffset: null, + isVisible: cs, + allowEdgeTxrCaching: !0, + allowParentTxrCaching: !0 + }), ja = function(e, r) { + var a = this; + a.renderer = e, a.onDequeues = []; + var n = Ng(r); + He(a, n), a.lookup = new gg(n.getKey, n.doesEleInvalidateKey), a.setupDequeueing(); + }, Dt = ja.prototype; + Dt.reasons = ba, Dt.getTextureQueue = function(t) { + var e = this; + return e.eleImgCaches = e.eleImgCaches || {}, e.eleImgCaches[t] = e.eleImgCaches[t] || []; + }, Dt.getRetiredTextureQueue = function(t) { + var e = this, r = e.eleImgCaches.retired = e.eleImgCaches.retired || {}, a = r[t] = r[t] || []; + return a; + }, Dt.getElementQueue = function() { + var t = this, e = t.eleCacheQueue = t.eleCacheQueue || new Ra(function(r, a) { + return a.reqs - r.reqs; + }); + return e; + }, Dt.getElementKeyToQueue = function() { + var t = this, e = t.eleKeyToCacheQueue = t.eleKeyToCacheQueue || {}; + return e; + }, Dt.getElement = function(t, e, r, a, n) { + var i = this, s = this.renderer, o = s.cy.zoom(), u = this.lookup; + if (!e || e.w === 0 || e.h === 0 || isNaN(e.w) || isNaN(e.h) || !t.visible() || t.removed() || !i.allowEdgeTxrCaching && t.isEdge() || !i.allowParentTxrCaching && t.isParent()) + return null; + if (a == null && (a = Math.ceil(ui(o * r))), a < Zn) + a = Zn; + else if (o >= pg || a > Vi) + return null; + var l = Math.pow(2, a), f = e.h * l, h = e.w * l, v = s.eleTextBiggerThanMin(t, l); + if (!this.isVisible(t, v)) + return null; + var d = u.get(t, a); + if (d && d.invalidated && (d.invalidated = !1, d.texture.invalidatedWidth -= d.width), d) + return d; + var c; + if (f <= gl ? c = gl : f <= Kn ? c = Kn : c = Math.ceil(f / Kn) * Kn, f > Eg || h > bg) + return null; + var y = i.getTextureQueue(c), p = y[y.length - 2], g = function() { + return i.recycleTexture(c, h) || i.addTexture(c, h); + }; + p || (p = y[y.length - 1]), p || (p = g()), p.width - p.usedWidth < h && (p = g()); + for (var m = function(K) { + return K && K.scaledLabelShown === v; + }, b = n && n === ba.dequeue, E = n && n === ba.highQuality, M = n && n === ba.downscale, L, w = a + 1; w <= Vi; w++) { + var k = u.get(t, w); + if (k) { + L = k; + break; + } + } + var D = L && L.level === a + 1 ? L : null, F = function() { + p.context.drawImage(D.texture.canvas, D.x, 0, D.width, D.height, p.usedWidth, 0, h, f); + }; + if (p.context.setTransform(1, 0, 0, 1, 0, 0), p.context.clearRect(p.usedWidth, 0, h, c), m(D)) + F(); + else if (m(L)) + if (E) { + for (var G = L.level; G > a; G--) + D = i.getElement(t, e, r, G, ba.downscale); + F(); + } else + return i.queueElement(t, L.level - 1), L; + else { + var N; + if (!b && !E && !M) + for (var X = a - 1; X >= Zn; X--) { + var B = u.get(t, X); + if (B) { + N = B; + break; + } + } + if (m(N)) + return i.queueElement(t, a), N; + p.context.translate(p.usedWidth, 0), p.context.scale(l, l), this.drawElement(p.context, t, e, v, !1), p.context.scale(1 / l, 1 / l), p.context.translate(-p.usedWidth, 0); + } + return d = { + x: p.usedWidth, + texture: p, + level: a, + scale: l, + width: h, + height: f, + scaledLabelShown: v + }, p.usedWidth += Math.ceil(h + yg), p.eleCaches.push(d), u.set(t, a, d), i.checkTextureFullness(p), d; + }, Dt.invalidateElements = function(t) { + for (var e = 0; e < t.length; e++) + this.invalidateElement(t[e]); + }, Dt.invalidateElement = function(t) { + var e = this, r = e.lookup, a = [], n = r.isInvalid(t); + if (n) { + for (var i = Zn; i <= Vi; i++) { + var s = r.getForCachedKey(t, i); + s && a.push(s); + } + var o = r.invalidate(t); + if (o) + for (var u = 0; u < a.length; u++) { + var l = a[u], f = l.texture; + f.invalidatedWidth += l.width, l.invalidated = !0, e.checkTextureUtility(f); + } + e.removeFromQueue(t); + } + }, Dt.checkTextureUtility = function(t) { + t.invalidatedWidth >= wg * t.width && this.retireTexture(t); + }, Dt.checkTextureFullness = function(t) { + var e = this, r = e.getTextureQueue(t.height); + t.usedWidth / t.width > xg && t.fullnessChecks >= Tg ? xr(r, t) : t.fullnessChecks++; + }, Dt.retireTexture = function(t) { + var e = this, r = t.height, a = e.getTextureQueue(r), n = this.lookup; + xr(a, t), t.retired = !0; + for (var i = t.eleCaches, s = 0; s < i.length; s++) { + var o = i[s]; + n.deleteCache(o.key, o.level); + } + oi(i); + var u = e.getRetiredTextureQueue(r); + u.push(t); + }, Dt.addTexture = function(t, e) { + var r = this, a = r.getTextureQueue(t), n = {}; + return a.push(n), n.eleCaches = [], n.height = t, n.width = Math.max(mg, e), n.usedWidth = 0, n.invalidatedWidth = 0, n.fullnessChecks = 0, n.canvas = r.renderer.makeOffscreenCanvas(n.width, n.height), n.context = n.canvas.getContext("2d"), n; + }, Dt.recycleTexture = function(t, e) { + for (var r = this, a = r.getTextureQueue(t), n = r.getRetiredTextureQueue(t), i = 0; i < n.length; i++) { + var s = n[i]; + if (s.width >= e) + return s.retired = !1, s.usedWidth = 0, s.invalidatedWidth = 0, s.fullnessChecks = 0, oi(s.eleCaches), s.context.setTransform(1, 0, 0, 1, 0, 0), s.context.clearRect(0, 0, s.width, s.height), xr(n, s), a.push(s), s; + } + }, Dt.queueElement = function(t, e) { + var r = this, a = r.getElementQueue(), n = r.getElementKeyToQueue(), i = this.getKey(t), s = n[i]; + if (s) + s.level = Math.max(s.level, e), s.eles.merge(t), s.reqs++, a.updateItem(s); + else { + var o = { + eles: t.spawn().merge(t), + level: e, + reqs: 1, + key: i + }; + a.push(o), n[i] = o; + } + }, Dt.dequeue = function(t) { + for (var e = this, r = e.getElementQueue(), a = e.getElementKeyToQueue(), n = [], i = e.lookup, s = 0; s < Og && r.size() > 0; s++) { + var o = r.pop(), u = o.key, l = o.eles[0], f = i.hasCache(l, o.level); + if (a[u] = null, f) + continue; + n.push(o); + var h = e.getBoundingBox(l); + e.getElement(l, h, t, o.level, ba.dequeue); + } + return n; + }, Dt.removeFromQueue = function(t) { + var e = this, r = e.getElementQueue(), a = e.getElementKeyToQueue(), n = this.getKey(t), i = a[n]; + i != null && (i.eles.length === 1 ? (i.reqs = ii, r.updateItem(i), r.pop(), a[n] = null) : i.eles.unmerge(t)); + }, Dt.onDequeue = function(t) { + this.onDequeues.push(t); + }, Dt.offDequeue = function(t) { + xr(this.onDequeues, t); + }, Dt.setupDequeueing = dl.setupDequeueing({ + deqRedrawThreshold: Ag, + deqCost: Cg, + deqAvgCost: Dg, + deqNoDrawCost: Sg, + deqFastCost: Lg, + deq: function(e, r, a) { + return e.dequeue(r, a); + }, + onDeqd: function(e, r) { + for (var a = 0; a < e.onDequeues.length; a++) { + var n = e.onDequeues[a]; + n(r); + } + }, + shouldRedraw: function(e, r, a, n) { + for (var i = 0; i < r.length; i++) + for (var s = r[i].eles, o = 0; o < s.length; o++) { + var u = s[o].boundingBox(); + if (fi(u, n)) + return !0; + } + return !1; + }, + priority: function(e) { + return e.renderer.beforeRenderPriorities.eleTxrDeq; + } + }); + var Ig = 1, en = -4, Qn = 2, Mg = 3.99, Rg = 50, kg = 50, Pg = 0.15, Bg = 0.1, Fg = 0.9, Gg = 0.9, zg = 1, pl = 250, Vg = 4e3 * 4e3, Ug = !0, yl = function(e) { + var r = this, a = r.renderer = e, n = a.cy; + r.layersByLevel = {}, r.firstGet = !0, r.lastInvalidationTime = gr() - 2 * pl, r.skipping = !1, r.eleTxrDeqs = n.collection(), r.scheduleElementRefinement = on(function() { + r.refineElementTextures(r.eleTxrDeqs), r.eleTxrDeqs.unmerge(r.eleTxrDeqs); + }, kg), a.beforeRender(function(s, o) { + o - r.lastInvalidationTime <= pl ? r.skipping = !0 : r.skipping = !1; + }, a.beforeRenderPriorities.lyrTxrSkip); + var i = function(o, u) { + return u.reqs - o.reqs; + }; + r.layersQueue = new Ra(i), r.setupDequeueing(); + }, Mt = yl.prototype, ml = 0, $g = Math.pow(2, 53) - 1; + Mt.makeLayer = function(t, e) { + var r = Math.pow(2, e), a = Math.ceil(t.w * r), n = Math.ceil(t.h * r), i = this.renderer.makeOffscreenCanvas(a, n), s = { + id: ml = ++ml % $g, + bb: t, + level: e, + width: a, + height: n, + canvas: i, + context: i.getContext("2d"), + eles: [], + elesQueue: [], + reqs: 0 + }, o = s.context, u = -s.bb.x1, l = -s.bb.y1; + return o.scale(r, r), o.translate(u, l), s; + }, Mt.getLayers = function(t, e, r) { + var a = this, n = a.renderer, i = n.cy, s = i.zoom(), o = a.firstGet; + if (a.firstGet = !1, r == null) { + if (r = Math.ceil(ui(s * e)), r < en) + r = en; + else if (s >= Mg || r > Qn) + return null; + } + a.validateLayersElesOrdering(r, t); + var u = a.layersByLevel, l = Math.pow(2, r), f = u[r] = u[r] || [], h, v = a.levelIsComplete(r, t), d, c = function() { + var F = function(re) { + if (a.validateLayersElesOrdering(re, t), a.levelIsComplete(re, t)) + return d = u[re], !0; + }, G = function(re) { + if (!d) + for (var K = r + re; en <= K && K <= Qn && !F(K); K += re) + ; + }; + G(1), G(-1); + for (var N = f.length - 1; N >= 0; N--) { + var X = f[N]; + X.invalid && xr(f, X); + } + }; + if (!v) + c(); + else + return f; + var y = function() { + if (!h) { + h = Yt(); + for (var F = 0; F < t.length; F++) + ws(h, t[F].boundingBox()); + } + return h; + }, p = function(F) { + F = F || {}; + var G = F.after; + y(); + var N = h.w * l * (h.h * l); + if (N > Vg) + return null; + var X = a.makeLayer(h, r); + if (G != null) { + var B = f.indexOf(G) + 1; + f.splice(B, 0, X); + } else + (F.insert === void 0 || F.insert) && f.unshift(X); + return X; + }; + if (a.skipping && !o) + return null; + for (var g = null, m = t.length / Ig, b = !o, E = 0; E < t.length; E++) { + var M = t[E], L = M._private.rscratch, w = L.imgLayerCaches = L.imgLayerCaches || {}, k = w[r]; + if (k) { + g = k; + continue; + } + if ((!g || g.eles.length >= m || !Ts(g.bb, M.boundingBox())) && (g = p({ + insert: !0, + after: g + }), !g)) + return null; + d || b ? a.queueLayer(g, M) : a.drawEleInLayer(g, M, r, e), g.eles.push(M), w[r] = g; + } + return d || (b ? null : f); + }, Mt.getEleLevelForLayerLevel = function(t, e) { + return t; + }, Mt.drawEleInLayer = function(t, e, r, a) { + var n = this, i = this.renderer, s = t.context, o = e.boundingBox(); + o.w === 0 || o.h === 0 || !e.visible() || (r = n.getEleLevelForLayerLevel(r, a), i.setImgSmoothing(s, !1), i.drawCachedElement(s, e, null, null, r, Ug), i.setImgSmoothing(s, !0)); + }, Mt.levelIsComplete = function(t, e) { + var r = this, a = r.layersByLevel[t]; + if (!a || a.length === 0) + return !1; + for (var n = 0, i = 0; i < a.length; i++) { + var s = a[i]; + if (s.reqs > 0 || s.invalid) + return !1; + n += s.eles.length; + } + return n === e.length; + }, Mt.validateLayersElesOrdering = function(t, e) { + var r = this.layersByLevel[t]; + if (r) + for (var a = 0; a < r.length; a++) { + for (var n = r[a], i = -1, s = 0; s < e.length; s++) + if (n.eles[0] === e[s]) { + i = s; + break; + } + if (i < 0) { + this.invalidateLayer(n); + continue; + } + for (var o = i, s = 0; s < n.eles.length; s++) + if (n.eles[s] !== e[o + s]) { + this.invalidateLayer(n); + break; + } + } + }, Mt.updateElementsInLayers = function(t, e) { + for (var r = this, a = Ae(t[0]), n = 0; n < t.length; n++) + for (var i = a ? null : t[n], s = a ? t[n] : t[n].ele, o = s._private.rscratch, u = o.imgLayerCaches = o.imgLayerCaches || {}, l = en; l <= Qn; l++) { + var f = u[l]; + f && (i && r.getEleLevelForLayerLevel(f.level) !== i.level || e(f, s, i)); + } + }, Mt.haveLayers = function() { + for (var t = this, e = !1, r = en; r <= Qn; r++) { + var a = t.layersByLevel[r]; + if (a && a.length > 0) { + e = !0; + break; + } + } + return e; + }, Mt.invalidateElements = function(t) { + var e = this; + t.length !== 0 && (e.lastInvalidationTime = gr(), !(t.length === 0 || !e.haveLayers()) && e.updateElementsInLayers(t, function(a, n, i) { + e.invalidateLayer(a); + })); + }, Mt.invalidateLayer = function(t) { + if (this.lastInvalidationTime = gr(), !t.invalid) { + var e = t.level, r = t.eles, a = this.layersByLevel[e]; + xr(a, t), t.elesQueue = [], t.invalid = !0, t.replacement && (t.replacement.invalid = !0); + for (var n = 0; n < r.length; n++) { + var i = r[n]._private.rscratch.imgLayerCaches; + i && (i[e] = null); + } + } + }, Mt.refineElementTextures = function(t) { + var e = this; + e.updateElementsInLayers(t, function(a, n, i) { + var s = a.replacement; + if (s || (s = a.replacement = e.makeLayer(a.bb, a.level), s.replaces = a, s.eles = a.eles), !s.reqs) + for (var o = 0; o < s.eles.length; o++) + e.queueLayer(s, s.eles[o]); + }); + }, Mt.enqueueElementRefinement = function(t) { + this.eleTxrDeqs.merge(t), this.scheduleElementRefinement(); + }, Mt.queueLayer = function(t, e) { + var r = this, a = r.layersQueue, n = t.elesQueue, i = n.hasId = n.hasId || {}; + if (!t.replacement) { + if (e) { + if (i[e.id()]) + return; + n.push(e), i[e.id()] = !0; + } + t.reqs ? (t.reqs++, a.updateItem(t)) : (t.reqs = 1, a.push(t)); + } + }, Mt.dequeue = function(t) { + for (var e = this, r = e.layersQueue, a = [], n = 0; n < zg && r.size() !== 0; ) { + var i = r.peek(); + if (i.replacement) { + r.pop(); + continue; + } + if (i.replaces && i !== i.replaces.replacement) { + r.pop(); + continue; + } + if (i.invalid) { + r.pop(); + continue; + } + var s = i.elesQueue.shift(); + s && (e.drawEleInLayer(i, s, i.level, t), n++), a.length === 0 && a.push(!0), i.elesQueue.length === 0 && (r.pop(), i.reqs = 0, i.replaces && e.applyLayerReplacement(i), e.requestRedraw()); + } + return a; + }, Mt.applyLayerReplacement = function(t) { + var e = this, r = e.layersByLevel[t.level], a = t.replaces, n = r.indexOf(a); + if (!(n < 0 || a.invalid)) { + r[n] = t; + for (var i = 0; i < t.eles.length; i++) { + var s = t.eles[i]._private, o = s.imgLayerCaches = s.imgLayerCaches || {}; + o && (o[t.level] = t); + } + e.requestRedraw(); + } + }, Mt.requestRedraw = on(function() { + var t = this.renderer; + t.redrawHint("eles", !0), t.redrawHint("drag", !0), t.redraw(); + }, 100), Mt.setupDequeueing = dl.setupDequeueing({ + deqRedrawThreshold: Rg, + deqCost: Pg, + deqAvgCost: Bg, + deqNoDrawCost: Fg, + deqFastCost: Gg, + deq: function(e, r) { + return e.dequeue(r); + }, + onDeqd: si, + shouldRedraw: cs, + priority: function(e) { + return e.renderer.beforeRenderPriorities.lyrTxrDeq; + } + }); + var bl = {}, El; + function _g(t, e) { + for (var r = 0; r < e.length; r++) { + var a = e[r]; + t.lineTo(a.x, a.y); + } + } + function Yg(t, e, r) { + for (var a, n = 0; n < e.length; n++) { + var i = e[n]; + n === 0 && (a = i), t.lineTo(i.x, i.y); + } + t.quadraticCurveTo(r.x, r.y, a.x, a.y); + } + function wl(t, e, r) { + t.beginPath && t.beginPath(); + for (var a = e, n = 0; n < a.length; n++) { + var i = a[n]; + t.lineTo(i.x, i.y); + } + var s = r, o = r[0]; + t.moveTo(o.x, o.y); + for (var n = 1; n < s.length; n++) { + var i = s[n]; + t.lineTo(i.x, i.y); + } + t.closePath && t.closePath(); + } + function Hg(t, e, r, a, n) { + t.beginPath && t.beginPath(), t.arc(r, a, n, 0, Math.PI * 2, !1); + var i = e, s = i[0]; + t.moveTo(s.x, s.y); + for (var o = 0; o < i.length; o++) { + var u = i[o]; + t.lineTo(u.x, u.y); + } + t.closePath && t.closePath(); + } + function Xg(t, e, r, a) { + t.arc(e, r, a, 0, Math.PI * 2, !1); + } + bl.arrowShapeImpl = function(t) { + return (El || (El = { + polygon: _g, + "triangle-backcurve": Yg, + "triangle-tee": wl, + "circle-triangle": Hg, + "triangle-cross": wl, + circle: Xg + }))[t]; + }; + var vr = {}; + vr.drawElement = function(t, e, r, a, n, i) { + var s = this; + e.isNode() ? s.drawNode(t, e, r, a, n, i) : s.drawEdge(t, e, r, a, n, i); + }, vr.drawElementOverlay = function(t, e) { + var r = this; + e.isNode() ? r.drawNodeOverlay(t, e) : r.drawEdgeOverlay(t, e); + }, vr.drawElementUnderlay = function(t, e) { + var r = this; + e.isNode() ? r.drawNodeUnderlay(t, e) : r.drawEdgeUnderlay(t, e); + }, vr.drawCachedElementPortion = function(t, e, r, a, n, i, s, o) { + var u = this, l = r.getBoundingBox(e); + if (!(l.w === 0 || l.h === 0)) { + var f = r.getElement(e, l, a, n, i); + if (f != null) { + var h = o(u, e); + if (h === 0) + return; + var v = s(u, e), d = l.x1, c = l.y1, y = l.w, p = l.h, g, m, b, E, M; + if (v !== 0) { + var L = r.getRotationPoint(e); + b = L.x, E = L.y, t.translate(b, E), t.rotate(v), M = u.getImgSmoothing(t), M || u.setImgSmoothing(t, !0); + var w = r.getRotationOffset(e); + g = w.x, m = w.y; + } else + g = d, m = c; + var k; + h !== 1 && (k = t.globalAlpha, t.globalAlpha = k * h), t.drawImage(f.texture.canvas, f.x, 0, f.width, f.height, g, m, y, p), h !== 1 && (t.globalAlpha = k), v !== 0 && (t.rotate(-v), t.translate(-b, -E), M || u.setImgSmoothing(t, !1)); + } else + r.drawElement(t, e); + } + }; + var Wg = function() { + return 0; + }, qg = function(e, r) { + return e.getTextAngle(r, null); + }, Kg = function(e, r) { + return e.getTextAngle(r, "source"); + }, Zg = function(e, r) { + return e.getTextAngle(r, "target"); + }, Qg = function(e, r) { + return r.effectiveOpacity(); + }, Ui = function(e, r) { + return r.pstyle("text-opacity").pfValue * r.effectiveOpacity(); + }; + vr.drawCachedElement = function(t, e, r, a, n, i) { + var s = this, o = s.data, u = o.eleTxrCache, l = o.lblTxrCache, f = o.slbTxrCache, h = o.tlbTxrCache, v = e.boundingBox(), d = i === !0 ? u.reasons.highQuality : null; + if (!(v.w === 0 || v.h === 0 || !e.visible()) && (!a || fi(v, a))) { + var c = e.isEdge(), y = e.element()._private.rscratch.badLine; + s.drawElementUnderlay(t, e), s.drawCachedElementPortion(t, e, u, r, n, d, Wg, Qg), (!c || !y) && s.drawCachedElementPortion(t, e, l, r, n, d, qg, Ui), c && !y && (s.drawCachedElementPortion(t, e, f, r, n, d, Kg, Ui), s.drawCachedElementPortion(t, e, h, r, n, d, Zg, Ui)), s.drawElementOverlay(t, e); + } + }, vr.drawElements = function(t, e) { + for (var r = this, a = 0; a < e.length; a++) { + var n = e[a]; + r.drawElement(t, n); + } + }, vr.drawCachedElements = function(t, e, r, a) { + for (var n = this, i = 0; i < e.length; i++) { + var s = e[i]; + n.drawCachedElement(t, s, r, a); + } + }, vr.drawCachedNodes = function(t, e, r, a) { + for (var n = this, i = 0; i < e.length; i++) { + var s = e[i]; + s.isNode() && n.drawCachedElement(t, s, r, a); + } + }, vr.drawLayeredElements = function(t, e, r, a) { + var n = this, i = n.data.lyrTxrCache.getLayers(e, r); + if (i) + for (var s = 0; s < i.length; s++) { + var o = i[s], u = o.bb; + u.w === 0 || u.h === 0 || t.drawImage(o.canvas, u.x1, u.y1, u.w, u.h); + } + else + n.drawCachedElements(t, e, r, a); + }; + var br = {}; + br.drawEdge = function(t, e, r) { + var a = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !0, n = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !0, s = this, o = e._private.rscratch; + if (!(i && !e.visible()) && !(o.badLine || o.allpts == null || isNaN(o.allpts[0]))) { + var u; + r && (u = r, t.translate(-u.x1, -u.y1)); + var l = i ? e.pstyle("opacity").value : 1, f = i ? e.pstyle("line-opacity").value : 1, h = e.pstyle("curve-style").value, v = e.pstyle("line-style").value, d = e.pstyle("width").pfValue, c = e.pstyle("line-cap").value, y = l * f, p = l * f, g = function() { + var N = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : y; + h === "straight-triangle" ? (s.eleStrokeStyle(t, e, N), s.drawEdgeTrianglePath(e, t, o.allpts)) : (t.lineWidth = d, t.lineCap = c, s.eleStrokeStyle(t, e, N), s.drawEdgePath(e, t, o.allpts, v), t.lineCap = "butt"); + }, m = function() { + n && s.drawEdgeOverlay(t, e); + }, b = function() { + n && s.drawEdgeUnderlay(t, e); + }, E = function() { + var N = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : p; + s.drawArrowheads(t, e, N); + }, M = function() { + s.drawElementText(t, e, null, a); + }; + t.lineJoin = "round"; + var L = e.pstyle("ghost").value === "yes"; + if (L) { + var w = e.pstyle("ghost-offset-x").pfValue, k = e.pstyle("ghost-offset-y").pfValue, D = e.pstyle("ghost-opacity").value, F = y * D; + t.translate(w, k), g(F), E(F), t.translate(-w, -k); + } + b(), g(), E(), m(), M(), r && t.translate(u.x1, u.y1); + } + }; + var xl = function(e) { + if (!["overlay", "underlay"].includes(e)) + throw new Error("Invalid state"); + return function(r, a) { + if (a.visible()) { + var n = a.pstyle("".concat(e, "-opacity")).value; + if (n !== 0) { + var i = this, s = i.usePaths(), o = a._private.rscratch, u = a.pstyle("".concat(e, "-padding")).pfValue, l = 2 * u, f = a.pstyle("".concat(e, "-color")).value; + r.lineWidth = l, o.edgeType === "self" && !s ? r.lineCap = "butt" : r.lineCap = "round", i.colorStrokeStyle(r, f[0], f[1], f[2], n), i.drawEdgePath(a, r, o.allpts, "solid"); + } + } + }; + }; + br.drawEdgeOverlay = xl("overlay"), br.drawEdgeUnderlay = xl("underlay"), br.drawEdgePath = function(t, e, r, a) { + var n = t._private.rscratch, i = e, s, o = !1, u = this.usePaths(), l = t.pstyle("line-dash-pattern").pfValue, f = t.pstyle("line-dash-offset").pfValue; + if (u) { + var h = r.join("$"), v = n.pathCacheKey && n.pathCacheKey === h; + v ? (s = e = n.pathCache, o = !0) : (s = e = new Path2D(), n.pathCacheKey = h, n.pathCache = s); + } + if (i.setLineDash) + switch (a) { + case "dotted": + i.setLineDash([1, 1]); + break; + case "dashed": + i.setLineDash(l), i.lineDashOffset = f; + break; + case "solid": + i.setLineDash([]); + break; + } + if (!o && !n.badLine) + switch (e.beginPath && e.beginPath(), e.moveTo(r[0], r[1]), n.edgeType) { + case "bezier": + case "self": + case "compound": + case "multibezier": + for (var d = 2; d + 3 < r.length; d += 4) + e.quadraticCurveTo(r[d], r[d + 1], r[d + 2], r[d + 3]); + break; + case "straight": + case "segments": + case "haystack": + for (var c = 2; c + 1 < r.length; c += 2) + e.lineTo(r[c], r[c + 1]); + break; + } + e = i, u ? e.stroke(s) : e.stroke(), e.setLineDash && e.setLineDash([]); + }, br.drawEdgeTrianglePath = function(t, e, r) { + e.fillStyle = e.strokeStyle; + for (var a = t.pstyle("width").pfValue, n = 0; n + 1 < r.length; n += 2) { + var i = [r[n + 2] - r[n], r[n + 3] - r[n + 1]], s = Math.sqrt(i[0] * i[0] + i[1] * i[1]), o = [i[1] / s, -i[0] / s], u = [o[0] * a / 2, o[1] * a / 2]; + e.beginPath(), e.moveTo(r[n] - u[0], r[n + 1] - u[1]), e.lineTo(r[n] + u[0], r[n + 1] + u[1]), e.lineTo(r[n + 2], r[n + 3]), e.closePath(), e.fill(); + } + }, br.drawArrowheads = function(t, e, r) { + var a = e._private.rscratch, n = a.edgeType === "haystack"; + n || this.drawArrowhead(t, e, "source", a.arrowStartX, a.arrowStartY, a.srcArrowAngle, r), this.drawArrowhead(t, e, "mid-target", a.midX, a.midY, a.midtgtArrowAngle, r), this.drawArrowhead(t, e, "mid-source", a.midX, a.midY, a.midsrcArrowAngle, r), n || this.drawArrowhead(t, e, "target", a.arrowEndX, a.arrowEndY, a.tgtArrowAngle, r); + }, br.drawArrowhead = function(t, e, r, a, n, i, s) { + if (!(isNaN(a) || a == null || isNaN(n) || n == null || isNaN(i) || i == null)) { + var o = this, u = e.pstyle(r + "-arrow-shape").value; + if (u !== "none") { + var l = e.pstyle(r + "-arrow-fill").value === "hollow" ? "both" : "filled", f = e.pstyle(r + "-arrow-fill").value, h = e.pstyle("width").pfValue, v = e.pstyle(r + "-arrow-width"), d = v.value === "match-line" ? h : v.pfValue; + v.units === "%" && (d *= h); + var c = e.pstyle("opacity").value; + s === void 0 && (s = c); + var y = t.globalCompositeOperation; + (s !== 1 || f === "hollow") && (t.globalCompositeOperation = "destination-out", o.colorFillStyle(t, 255, 255, 255, 1), o.colorStrokeStyle(t, 255, 255, 255, 1), o.drawArrowShape(e, t, l, h, u, d, a, n, i), t.globalCompositeOperation = y); + var p = e.pstyle(r + "-arrow-color").value; + o.colorFillStyle(t, p[0], p[1], p[2], s), o.colorStrokeStyle(t, p[0], p[1], p[2], s), o.drawArrowShape(e, t, f, h, u, d, a, n, i); + } + } + }, br.drawArrowShape = function(t, e, r, a, n, i, s, o, u) { + var l = this, f = this.usePaths() && n !== "triangle-cross", h = !1, v, d = e, c = { + x: s, + y: o + }, y = t.pstyle("arrow-scale").value, p = this.getArrowWidth(a, y), g = l.arrowShapes[n]; + if (f) { + var m = l.arrowPathCache = l.arrowPathCache || [], b = Pr(n), E = m[b]; + E != null ? (v = e = E, h = !0) : (v = e = new Path2D(), m[b] = v); + } + h || (e.beginPath && e.beginPath(), f ? g.draw(e, 1, 0, { + x: 0, + y: 0 + }, 1) : g.draw(e, p, u, c, a), e.closePath && e.closePath()), e = d, f && (e.translate(s, o), e.rotate(u), e.scale(p, p)), (r === "filled" || r === "both") && (f ? e.fill(v) : e.fill()), (r === "hollow" || r === "both") && (e.lineWidth = i / (f ? p : 1), e.lineJoin = "miter", f ? e.stroke(v) : e.stroke()), f && (e.scale(1 / p, 1 / p), e.rotate(-u), e.translate(-s, -o)); + }; + var $i = {}; + $i.safeDrawImage = function(t, e, r, a, n, i, s, o, u, l) { + if (!(n <= 0 || i <= 0 || u <= 0 || l <= 0)) + try { + t.drawImage(e, r, a, n, i, s, o, u, l); + } catch (f) { + vt(f); + } + }, $i.drawInscribedImage = function(t, e, r, a, n) { + var i = this, s = r.position(), o = s.x, u = s.y, l = r.cy().style(), f = l.getIndexedStyle.bind(l), h = f(r, "background-fit", "value", a), v = f(r, "background-repeat", "value", a), d = r.width(), c = r.height(), y = r.padding() * 2, p = d + (f(r, "background-width-relative-to", "value", a) === "inner" ? 0 : y), g = c + (f(r, "background-height-relative-to", "value", a) === "inner" ? 0 : y), m = r._private.rscratch, b = f(r, "background-clip", "value", a), E = b === "node", M = f(r, "background-image-opacity", "value", a) * n, L = f(r, "background-image-smoothing", "value", a), w = e.width || e.cachedW, k = e.height || e.cachedH; + (w == null || k == null) && (document.body.appendChild(e), w = e.cachedW = e.width || e.offsetWidth, k = e.cachedH = e.height || e.offsetHeight, document.body.removeChild(e)); + var D = w, F = k; + if (f(r, "background-width", "value", a) !== "auto" && (f(r, "background-width", "units", a) === "%" ? D = f(r, "background-width", "pfValue", a) * p : D = f(r, "background-width", "pfValue", a)), f(r, "background-height", "value", a) !== "auto" && (f(r, "background-height", "units", a) === "%" ? F = f(r, "background-height", "pfValue", a) * g : F = f(r, "background-height", "pfValue", a)), !(D === 0 || F === 0)) { + if (h === "contain") { + var G = Math.min(p / D, g / F); + D *= G, F *= G; + } else if (h === "cover") { + var G = Math.max(p / D, g / F); + D *= G, F *= G; + } + var N = o - p / 2, X = f(r, "background-position-x", "units", a), B = f(r, "background-position-x", "pfValue", a); + X === "%" ? N += (p - D) * B : N += B; + var re = f(r, "background-offset-x", "units", a), K = f(r, "background-offset-x", "pfValue", a); + re === "%" ? N += (p - D) * K : N += K; + var W = u - g / 2, ae = f(r, "background-position-y", "units", a), ue = f(r, "background-position-y", "pfValue", a); + ae === "%" ? W += (g - F) * ue : W += ue; + var me = f(r, "background-offset-y", "units", a), ie = f(r, "background-offset-y", "pfValue", a); + me === "%" ? W += (g - F) * ie : W += ie, m.pathCache && (N -= o, W -= u, o = 0, u = 0); + var ge = t.globalAlpha; + t.globalAlpha = M; + var Ee = i.getImgSmoothing(t), Ce = !1; + if (L === "no" && Ee ? (i.setImgSmoothing(t, !1), Ce = !0) : L === "yes" && !Ee && (i.setImgSmoothing(t, !0), Ce = !0), v === "no-repeat") + E && (t.save(), m.pathCache ? t.clip(m.pathCache) : (i.nodeShapes[i.getNodeShape(r)].draw(t, o, u, p, g), t.clip())), i.safeDrawImage(t, e, 0, 0, w, k, N, W, D, F), E && t.restore(); + else { + var we = t.createPattern(e, v); + t.fillStyle = we, i.nodeShapes[i.getNodeShape(r)].draw(t, o, u, p, g), t.translate(N, W), t.fill(), t.translate(-N, -W); + } + t.globalAlpha = ge, Ce && i.setImgSmoothing(t, Ee); + } + }; + var _r = {}; + _r.eleTextBiggerThanMin = function(t, e) { + if (!e) { + var r = t.cy().zoom(), a = this.getPixelRatio(), n = Math.ceil(ui(r * a)); + e = Math.pow(2, n); + } + var i = t.pstyle("font-size").pfValue * e, s = t.pstyle("min-zoomed-font-size").pfValue; + return !(i < s); + }, _r.drawElementText = function(t, e, r, a, n) { + var i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !0, s = this; + if (a == null) { + if (i && !s.eleTextBiggerThanMin(e)) + return; + } else if (a === !1) + return; + if (e.isNode()) { + var o = e.pstyle("label"); + if (!o || !o.value) + return; + var u = s.getLabelJustification(e); + t.textAlign = u, t.textBaseline = "bottom"; + } else { + var l = e.element()._private.rscratch.badLine, f = e.pstyle("label"), h = e.pstyle("source-label"), v = e.pstyle("target-label"); + if (l || (!f || !f.value) && (!h || !h.value) && (!v || !v.value)) + return; + t.textAlign = "center", t.textBaseline = "bottom"; + } + var d = !r, c; + r && (c = r, t.translate(-c.x1, -c.y1)), n == null ? (s.drawText(t, e, null, d, i), e.isEdge() && (s.drawText(t, e, "source", d, i), s.drawText(t, e, "target", d, i))) : s.drawText(t, e, n, d, i), r && t.translate(c.x1, c.y1); + }, _r.getFontCache = function(t) { + var e; + this.fontCaches = this.fontCaches || []; + for (var r = 0; r < this.fontCaches.length; r++) + if (e = this.fontCaches[r], e.context === t) + return e; + return e = { + context: t + }, this.fontCaches.push(e), e; + }, _r.setupTextStyle = function(t, e) { + var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !0, a = e.pstyle("font-style").strValue, n = e.pstyle("font-size").pfValue + "px", i = e.pstyle("font-family").strValue, s = e.pstyle("font-weight").strValue, o = r ? e.effectiveOpacity() * e.pstyle("text-opacity").value : 1, u = e.pstyle("text-outline-opacity").value * o, l = e.pstyle("color").value, f = e.pstyle("text-outline-color").value; + t.font = a + " " + s + " " + n + " " + i, t.lineJoin = "round", this.colorFillStyle(t, l[0], l[1], l[2], o), this.colorStrokeStyle(t, f[0], f[1], f[2], u); + }; + function _i(t, e, r, a, n) { + var i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 5, s = arguments.length > 6 ? arguments[6] : void 0; + t.beginPath(), t.moveTo(e + i, r), t.lineTo(e + a - i, r), t.quadraticCurveTo(e + a, r, e + a, r + i), t.lineTo(e + a, r + n - i), t.quadraticCurveTo(e + a, r + n, e + a - i, r + n), t.lineTo(e + i, r + n), t.quadraticCurveTo(e, r + n, e, r + n - i), t.lineTo(e, r + i), t.quadraticCurveTo(e, r, e + i, r), t.closePath(), s ? t.stroke() : t.fill(); + } + _r.getTextAngle = function(t, e) { + var r, a = t._private, n = a.rscratch, i = e ? e + "-" : "", s = t.pstyle(i + "text-rotation"), o = er(n, "labelAngle", e); + return s.strValue === "autorotate" ? r = t.isEdge() ? o : 0 : s.strValue === "none" ? r = 0 : r = s.pfValue, r; + }, _r.drawText = function(t, e, r) { + var a = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !0, n = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, i = e._private, s = i.rscratch, o = n ? e.effectiveOpacity() : 1; + if (!(n && (o === 0 || e.pstyle("text-opacity").value === 0))) { + r === "main" && (r = null); + var u = er(s, "labelX", r), l = er(s, "labelY", r), f, h, v = this.getLabelText(e, r); + if (v != null && v !== "" && !isNaN(u) && !isNaN(l)) { + this.setupTextStyle(t, e, n); + var d = r ? r + "-" : "", c = er(s, "labelWidth", r), y = er(s, "labelHeight", r), p = e.pstyle(d + "text-margin-x").pfValue, g = e.pstyle(d + "text-margin-y").pfValue, m = e.isEdge(), b = e.pstyle("text-halign").value, E = e.pstyle("text-valign").value; + m && (b = "center", E = "center"), u += p, l += g; + var M; + switch (a ? M = this.getTextAngle(e, r) : M = 0, M !== 0 && (f = u, h = l, t.translate(f, h), t.rotate(M), u = 0, l = 0), E) { + case "top": + break; + case "center": + l += y / 2; + break; + case "bottom": + l += y; + break; + } + var L = e.pstyle("text-background-opacity").value, w = e.pstyle("text-border-opacity").value, k = e.pstyle("text-border-width").pfValue, D = e.pstyle("text-background-padding").pfValue, F = e.pstyle("text-background-shape").strValue, G = F.indexOf("round") === 0, N = 2; + if (L > 0 || k > 0 && w > 0) { + var X = u - D; + switch (b) { + case "left": + X -= c; + break; + case "center": + X -= c / 2; + break; + } + var B = l - y - D, re = c + 2 * D, K = y + 2 * D; + if (L > 0) { + var W = t.fillStyle, ae = e.pstyle("text-background-color").value; + t.fillStyle = "rgba(" + ae[0] + "," + ae[1] + "," + ae[2] + "," + L * o + ")", G ? _i(t, X, B, re, K, N) : t.fillRect(X, B, re, K), t.fillStyle = W; + } + if (k > 0 && w > 0) { + var ue = t.strokeStyle, me = t.lineWidth, ie = e.pstyle("text-border-color").value, ge = e.pstyle("text-border-style").value; + if (t.strokeStyle = "rgba(" + ie[0] + "," + ie[1] + "," + ie[2] + "," + w * o + ")", t.lineWidth = k, t.setLineDash) + switch (ge) { + case "dotted": + t.setLineDash([1, 1]); + break; + case "dashed": + t.setLineDash([4, 2]); + break; + case "double": + t.lineWidth = k / 4, t.setLineDash([]); + break; + case "solid": + t.setLineDash([]); + break; + } + if (G ? _i(t, X, B, re, K, N, "stroke") : t.strokeRect(X, B, re, K), ge === "double") { + var Ee = k / 2; + G ? _i(t, X + Ee, B + Ee, re - Ee * 2, K - Ee * 2, N, "stroke") : t.strokeRect(X + Ee, B + Ee, re - Ee * 2, K - Ee * 2); + } + t.setLineDash && t.setLineDash([]), t.lineWidth = me, t.strokeStyle = ue; + } + } + var Ce = 2 * e.pstyle("text-outline-width").pfValue; + if (Ce > 0 && (t.lineWidth = Ce), e.pstyle("text-wrap").value === "wrap") { + var we = er(s, "labelWrapCachedLines", r), De = er(s, "labelLineHeight", r), se = c / 2, xe = this.getLabelJustification(e); + switch (xe === "auto" || (b === "left" ? xe === "left" ? u += -c : xe === "center" && (u += -se) : b === "center" ? xe === "left" ? u += -se : xe === "right" && (u += se) : b === "right" && (xe === "center" ? u += se : xe === "right" && (u += c))), E) { + case "top": + l -= (we.length - 1) * De; + break; + case "center": + case "bottom": + l -= (we.length - 1) * De; + break; + } + for (var Le = 0; Le < we.length; Le++) + Ce > 0 && t.strokeText(we[Le], u, l), t.fillText(we[Le], u, l), l += De; + } else + Ce > 0 && t.strokeText(v, u, l), t.fillText(v, u, l); + M !== 0 && (t.rotate(-M), t.translate(-f, -h)); + } + } + }; + var Ea = {}; + Ea.drawNode = function(t, e, r) { + var a = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !0, n = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !0, s = this, o, u, l = e._private, f = l.rscratch, h = e.position(); + if (!(!R(h.x) || !R(h.y)) && !(i && !e.visible())) { + var v = i ? e.effectiveOpacity() : 1, d = s.usePaths(), c, y = !1, p = e.padding(); + o = e.width() + 2 * p, u = e.height() + 2 * p; + var g; + r && (g = r, t.translate(-g.x1, -g.y1)); + for (var m = e.pstyle("background-image"), b = m.value, E = new Array(b.length), M = new Array(b.length), L = 0, w = 0; w < b.length; w++) { + var k = b[w], D = E[w] = k != null && k !== "none"; + if (D) { + var F = e.cy().style().getIndexedStyle(e, "background-image-crossorigin", "value", w); + L++, M[w] = s.getCachedImage(k, F, function() { + l.backgroundTimestamp = Date.now(), e.emitAndNotify("background"); + }); + } + } + var G = e.pstyle("background-blacken").value, N = e.pstyle("border-width").pfValue, X = e.pstyle("background-opacity").value * v, B = e.pstyle("border-color").value, re = e.pstyle("border-style").value, K = e.pstyle("border-opacity").value * v, W = e.pstyle("outline-width").pfValue, ae = e.pstyle("outline-color").value, ue = e.pstyle("outline-style").value, me = e.pstyle("outline-opacity").value * v, ie = e.pstyle("outline-offset").value; + t.lineJoin = "miter"; + var ge = function() { + var he = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : X; + s.eleFillStyle(t, e, he); + }, Ee = function() { + var he = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : K; + s.colorStrokeStyle(t, B[0], B[1], B[2], he); + }, Ce = function() { + var he = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : me; + s.colorStrokeStyle(t, ae[0], ae[1], ae[2], he); + }, we = function(he, O, oe, Te) { + var ce = s.nodePathCache = s.nodePathCache || [], ye = hs(oe === "polygon" ? oe + "," + Te.join(",") : oe, "" + O, "" + he), _e = ce[ye], be, Ge = !1; + return _e != null ? (be = _e, Ge = !0, f.pathCache = be) : (be = new Path2D(), ce[ye] = f.pathCache = be), { + path: be, + cacheHit: Ge + }; + }, De = e.pstyle("shape").strValue, se = e.pstyle("shape-polygon-points").pfValue; + if (d) { + t.translate(h.x, h.y); + var xe = we(o, u, De, se); + c = xe.path, y = xe.cacheHit; + } + var Le = function() { + if (!y) { + var he = h; + d && (he = { + x: 0, + y: 0 + }), s.nodeShapes[s.getNodeShape(e)].draw(c || t, he.x, he.y, o, u); + } + d ? t.fill(c) : t.fill(); + }, Se = function() { + for (var he = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : v, O = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0, oe = l.backgrounding, Te = 0, ce = 0; ce < M.length; ce++) { + var ye = e.cy().style().getIndexedStyle(e, "background-image-containment", "value", ce); + if (O && ye === "over" || !O && ye === "inside") { + Te++; + continue; + } + E[ce] && M[ce].complete && !M[ce].error && (Te++, s.drawInscribedImage(t, M[ce], e, ce, he)); + } + l.backgrounding = Te !== L, oe !== l.backgrounding && e.updateStyle(!1); + }, Oe = function() { + var he = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1, O = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : v; + s.hasPie(e) && (s.drawPie(t, e, O), he && (d || s.nodeShapes[s.getNodeShape(e)].draw(t, h.x, h.y, o, u))); + }, Fe = function() { + var he = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : v, O = (G > 0 ? G : -G) * he, oe = G > 0 ? 0 : 255; + G !== 0 && (s.colorFillStyle(t, oe, oe, oe, O), d ? t.fill(c) : t.fill()); + }, Xe = function() { + if (N > 0) { + if (t.lineWidth = N, t.lineCap = "butt", t.setLineDash) + switch (re) { + case "dotted": + t.setLineDash([1, 1]); + break; + case "dashed": + t.setLineDash([4, 2]); + break; + case "solid": + case "double": + t.setLineDash([]); + break; + } + if (d ? t.stroke(c) : t.stroke(), re === "double") { + t.lineWidth = N / 3; + var he = t.globalCompositeOperation; + t.globalCompositeOperation = "destination-out", d ? t.stroke(c) : t.stroke(), t.globalCompositeOperation = he; + } + t.setLineDash && t.setLineDash([]); + } + }, Ie = function() { + if (W > 0) { + if (t.lineWidth = W, t.lineCap = "butt", t.setLineDash) + switch (ue) { + case "dotted": + t.setLineDash([1, 1]); + break; + case "dashed": + t.setLineDash([4, 2]); + break; + case "solid": + case "double": + t.setLineDash([]); + break; + } + var he = h; + d && (he = { + x: 0, + y: 0 + }); + var O = s.getNodeShape(e), oe = (o + N + (W + ie)) / o, Te = (u + N + (W + ie)) / u, ce = o * oe, ye = u * Te, _e = s.nodeShapes[O].points, be; + if (d) { + var Ge = we(ce, ye, O, _e); + be = Ge.path; + } + if (O === "ellipse") + s.drawEllipsePath(be || t, he.x, he.y, ce, ye); + else if (["round-diamond", "round-heptagon", "round-hexagon", "round-octagon", "round-pentagon", "round-polygon", "round-triangle", "round-tag"].includes(O)) { + var Qe = 0, ft = 0, qe = 0; + O === "round-diamond" ? Qe = (N + ie + W) * 1.4 : O === "round-heptagon" ? (Qe = (N + ie + W) * 1.075, qe = -(N / 2 + ie + W) / 35) : O === "round-hexagon" ? Qe = (N + ie + W) * 1.12 : O === "round-pentagon" ? (Qe = (N + ie + W) * 1.13, qe = -(N / 2 + ie + W) / 15) : O === "round-tag" ? (Qe = (N + ie + W) * 1.12, ft = (N / 2 + W + ie) * 0.07) : O === "round-triangle" && (Qe = (N + ie + W) * (Math.PI / 2), qe = -(N + ie / 2 + W) / Math.PI), Qe !== 0 && (oe = (o + Qe) / o, Te = (u + Qe) / u), s.drawRoundPolygonPath(be || t, he.x + ft, he.y + qe, o * oe, u * Te, _e); + } else if (["roundrectangle", "round-rectangle"].includes(O)) + s.drawRoundRectanglePath(be || t, he.x, he.y, ce, ye); + else if (["cutrectangle", "cut-rectangle"].includes(O)) + s.drawCutRectanglePath(be || t, he.x, he.y, ce, ye); + else if (["bottomroundrectangle", "bottom-round-rectangle"].includes(O)) + s.drawBottomRoundRectanglePath(be || t, he.x, he.y, ce, ye); + else if (O === "barrel") + s.drawBarrelPath(be || t, he.x, he.y, ce, ye); + else if (O.startsWith("polygon") || ["rhomboid", "right-rhomboid", "round-tag", "tag", "vee"].includes(O)) { + var ot = (N + W + ie) / o; + _e = pn(yn(_e, ot)), s.drawPolygonPath(be || t, he.x, he.y, o, u, _e); + } else { + var Ke = (N + W + ie) / o; + _e = pn(yn(_e, -Ke)), s.drawPolygonPath(be || t, he.x, he.y, o, u, _e); + } + if (d ? t.stroke(be) : t.stroke(), ue === "double") { + t.lineWidth = N / 3; + var Je = t.globalCompositeOperation; + t.globalCompositeOperation = "destination-out", d ? t.stroke(be) : t.stroke(), t.globalCompositeOperation = Je; + } + t.setLineDash && t.setLineDash([]); + } + }, Me = function() { + n && s.drawNodeOverlay(t, e, h, o, u); + }, Ue = function() { + n && s.drawNodeUnderlay(t, e, h, o, u); + }, ze = function() { + s.drawElementText(t, e, null, a); + }, Be = e.pstyle("ghost").value === "yes"; + if (Be) { + var $e = e.pstyle("ghost-offset-x").pfValue, rt = e.pstyle("ghost-offset-y").pfValue, je = e.pstyle("ghost-opacity").value, We = je * v; + t.translate($e, rt), Ce(), Ie(), ge(je * X), Le(), Se(We, !0), Ee(je * K), Xe(), Oe(G !== 0 || N !== 0), Se(We, !1), Fe(We), t.translate(-$e, -rt); + } + d && t.translate(-h.x, -h.y), Ue(), d && t.translate(h.x, h.y), Ce(), Ie(), ge(), Le(), Se(v, !0), Ee(), Xe(), Oe(G !== 0 || N !== 0), Se(v, !1), Fe(), d && t.translate(-h.x, -h.y), ze(), Me(), r && t.translate(g.x1, g.y1); + } + }; + var Tl = function(e) { + if (!["overlay", "underlay"].includes(e)) + throw new Error("Invalid state"); + return function(r, a, n, i, s) { + var o = this; + if (a.visible()) { + var u = a.pstyle("".concat(e, "-padding")).pfValue, l = a.pstyle("".concat(e, "-opacity")).value, f = a.pstyle("".concat(e, "-color")).value, h = a.pstyle("".concat(e, "-shape")).value; + if (l > 0) { + if (n = n || a.position(), i == null || s == null) { + var v = a.padding(); + i = a.width() + 2 * v, s = a.height() + 2 * v; + } + o.colorFillStyle(r, f[0], f[1], f[2], l), o.nodeShapes[h].draw(r, n.x, n.y, i + u * 2, s + u * 2), r.fill(); + } + } + }; + }; + Ea.drawNodeOverlay = Tl("overlay"), Ea.drawNodeUnderlay = Tl("underlay"), Ea.hasPie = function(t) { + return t = t[0], t._private.hasPie; + }, Ea.drawPie = function(t, e, r, a) { + e = e[0], a = a || e.position(); + var n = e.cy().style(), i = e.pstyle("pie-size"), s = a.x, o = a.y, u = e.width(), l = e.height(), f = Math.min(u, l) / 2, h = 0, v = this.usePaths(); + v && (s = 0, o = 0), i.units === "%" ? f = f * i.pfValue : i.pfValue !== void 0 && (f = i.pfValue / 2); + for (var d = 1; d <= n.pieBackgroundN; d++) { + var c = e.pstyle("pie-" + d + "-background-size").value, y = e.pstyle("pie-" + d + "-background-color").value, p = e.pstyle("pie-" + d + "-background-opacity").value * r, g = c / 100; + g + h > 1 && (g = 1 - h); + var m = 1.5 * Math.PI + 2 * Math.PI * h, b = 2 * Math.PI * g, E = m + b; + c === 0 || h >= 1 || h + g > 1 || (t.beginPath(), t.moveTo(s, o), t.arc(s, o, f, m, E), t.closePath(), this.colorFillStyle(t, y[0], y[1], y[2], p), t.fill(), h += g); + } + }; + var Kt = {}, Jg = 100; + Kt.getPixelRatio = function() { + var t = this.data.contexts[0]; + if (this.forcedPixelRatio != null) + return this.forcedPixelRatio; + var e = t.backingStorePixelRatio || t.webkitBackingStorePixelRatio || t.mozBackingStorePixelRatio || t.msBackingStorePixelRatio || t.oBackingStorePixelRatio || t.backingStorePixelRatio || 1; + return (window.devicePixelRatio || 1) / e; + }, Kt.paintCache = function(t) { + for (var e = this.paintCaches = this.paintCaches || [], r = !0, a, n = 0; n < e.length; n++) + if (a = e[n], a.context === t) { + r = !1; + break; + } + return r && (a = { + context: t + }, e.push(a)), a; + }, Kt.createGradientStyleFor = function(t, e, r, a, n) { + var i, s = this.usePaths(), o = r.pstyle(e + "-gradient-stop-colors").value, u = r.pstyle(e + "-gradient-stop-positions").pfValue; + if (a === "radial-gradient") + if (r.isEdge()) { + var l = r.sourceEndpoint(), f = r.targetEndpoint(), h = r.midpoint(), v = Br(l, h), d = Br(f, h); + i = t.createRadialGradient(h.x, h.y, 0, h.x, h.y, Math.max(v, d)); + } else { + var c = s ? { + x: 0, + y: 0 + } : r.position(), y = r.paddedWidth(), p = r.paddedHeight(); + i = t.createRadialGradient(c.x, c.y, 0, c.x, c.y, Math.max(y, p)); + } + else if (r.isEdge()) { + var g = r.sourceEndpoint(), m = r.targetEndpoint(); + i = t.createLinearGradient(g.x, g.y, m.x, m.y); + } else { + var b = s ? { + x: 0, + y: 0 + } : r.position(), E = r.paddedWidth(), M = r.paddedHeight(), L = E / 2, w = M / 2, k = r.pstyle("background-gradient-direction").value; + switch (k) { + case "to-bottom": + i = t.createLinearGradient(b.x, b.y - w, b.x, b.y + w); + break; + case "to-top": + i = t.createLinearGradient(b.x, b.y + w, b.x, b.y - w); + break; + case "to-left": + i = t.createLinearGradient(b.x + L, b.y, b.x - L, b.y); + break; + case "to-right": + i = t.createLinearGradient(b.x - L, b.y, b.x + L, b.y); + break; + case "to-bottom-right": + case "to-right-bottom": + i = t.createLinearGradient(b.x - L, b.y - w, b.x + L, b.y + w); + break; + case "to-top-right": + case "to-right-top": + i = t.createLinearGradient(b.x - L, b.y + w, b.x + L, b.y - w); + break; + case "to-bottom-left": + case "to-left-bottom": + i = t.createLinearGradient(b.x + L, b.y - w, b.x - L, b.y + w); + break; + case "to-top-left": + case "to-left-top": + i = t.createLinearGradient(b.x + L, b.y + w, b.x - L, b.y - w); + break; + } + } + if (!i) + return null; + for (var D = u.length === o.length, F = o.length, G = 0; G < F; G++) + i.addColorStop(D ? u[G] : G / (F - 1), "rgba(" + o[G][0] + "," + o[G][1] + "," + o[G][2] + "," + n + ")"); + return i; + }, Kt.gradientFillStyle = function(t, e, r, a) { + var n = this.createGradientStyleFor(t, "background", e, r, a); + if (!n) + return null; + t.fillStyle = n; + }, Kt.colorFillStyle = function(t, e, r, a, n) { + t.fillStyle = "rgba(" + e + "," + r + "," + a + "," + n + ")"; + }, Kt.eleFillStyle = function(t, e, r) { + var a = e.pstyle("background-fill").value; + if (a === "linear-gradient" || a === "radial-gradient") + this.gradientFillStyle(t, e, a, r); + else { + var n = e.pstyle("background-color").value; + this.colorFillStyle(t, n[0], n[1], n[2], r); + } + }, Kt.gradientStrokeStyle = function(t, e, r, a) { + var n = this.createGradientStyleFor(t, "line", e, r, a); + if (!n) + return null; + t.strokeStyle = n; + }, Kt.colorStrokeStyle = function(t, e, r, a, n) { + t.strokeStyle = "rgba(" + e + "," + r + "," + a + "," + n + ")"; + }, Kt.eleStrokeStyle = function(t, e, r) { + var a = e.pstyle("line-fill").value; + if (a === "linear-gradient" || a === "radial-gradient") + this.gradientStrokeStyle(t, e, a, r); + else { + var n = e.pstyle("line-color").value; + this.colorStrokeStyle(t, n[0], n[1], n[2], r); + } + }, Kt.matchCanvasSize = function(t) { + var e = this, r = e.data, a = e.findContainerClientCoords(), n = a[2], i = a[3], s = e.getPixelRatio(), o = e.motionBlurPxRatio; + (t === e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE] || t === e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG]) && (s = o); + var u = n * s, l = i * s, f; + if (!(u === e.canvasWidth && l === e.canvasHeight)) { + e.fontCaches = null; + var h = r.canvasContainer; + h.style.width = n + "px", h.style.height = i + "px"; + for (var v = 0; v < e.CANVAS_LAYERS; v++) + f = r.canvases[v], f.width = u, f.height = l, f.style.width = n + "px", f.style.height = i + "px"; + for (var v = 0; v < e.BUFFER_COUNT; v++) + f = r.bufferCanvases[v], f.width = u, f.height = l, f.style.width = n + "px", f.style.height = i + "px"; + e.textureMult = 1, s <= 1 && (f = r.bufferCanvases[e.TEXTURE_BUFFER], e.textureMult = 2, f.width = u * e.textureMult, f.height = l * e.textureMult), e.canvasWidth = u, e.canvasHeight = l; + } + }, Kt.renderTo = function(t, e, r, a) { + this.render({ + forcedContext: t, + forcedZoom: e, + forcedPan: r, + drawAllLayers: !0, + forcedPxRatio: a + }); + }, Kt.render = function(t) { + t = t || ys(); + var e = t.forcedContext, r = t.drawAllLayers, a = t.drawOnlyNodeLayer, n = t.forcedZoom, i = t.forcedPan, s = this, o = t.forcedPxRatio === void 0 ? this.getPixelRatio() : t.forcedPxRatio, u = s.cy, l = s.data, f = l.canvasNeedsRedraw, h = s.textureOnViewport && !e && (s.pinching || s.hoverData.dragging || s.swipePanning || s.data.wheelZooming), v = t.motionBlur !== void 0 ? t.motionBlur : s.motionBlur, d = s.motionBlurPxRatio, c = u.hasCompoundNodes(), y = s.hoverData.draggingEles, p = !!(s.hoverData.selecting || s.touchData.selecting); + v = v && !e && s.motionBlurEnabled && !p; + var g = v; + e || (s.prevPxRatio !== o && (s.invalidateContainerClientCoordsCache(), s.matchCanvasSize(s.container), s.redrawHint("eles", !0), s.redrawHint("drag", !0)), s.prevPxRatio = o), !e && s.motionBlurTimeout && clearTimeout(s.motionBlurTimeout), v && (s.mbFrames == null && (s.mbFrames = 0), s.mbFrames++, s.mbFrames < 3 && (g = !1), s.mbFrames > s.minMbLowQualFrames && (s.motionBlurPxRatio = s.mbPxRBlurry)), s.clearingMotionBlur && (s.motionBlurPxRatio = 1), s.textureDrawLastFrame && !h && (f[s.NODE] = !0, f[s.SELECT_BOX] = !0); + var m = u.style(), b = u.zoom(), E = n !== void 0 ? n : b, M = u.pan(), L = { + x: M.x, + y: M.y + }, w = { + zoom: b, + pan: { + x: M.x, + y: M.y + } + }, k = s.prevViewport, D = k === void 0 || w.zoom !== k.zoom || w.pan.x !== k.pan.x || w.pan.y !== k.pan.y; + !D && !(y && !c) && (s.motionBlurPxRatio = 1), i && (L = i), E *= o, L.x *= o, L.y *= o; + var F = s.getCachedZSortedEles(); + function G(Ie, Me, Ue, ze, Be) { + var $e = Ie.globalCompositeOperation; + Ie.globalCompositeOperation = "destination-out", s.colorFillStyle(Ie, 255, 255, 255, s.motionBlurTransparency), Ie.fillRect(Me, Ue, ze, Be), Ie.globalCompositeOperation = $e; + } + function N(Ie, Me) { + var Ue, ze, Be, $e; + !s.clearingMotionBlur && (Ie === l.bufferContexts[s.MOTIONBLUR_BUFFER_NODE] || Ie === l.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]) ? (Ue = { + x: M.x * d, + y: M.y * d + }, ze = b * d, Be = s.canvasWidth * d, $e = s.canvasHeight * d) : (Ue = L, ze = E, Be = s.canvasWidth, $e = s.canvasHeight), Ie.setTransform(1, 0, 0, 1, 0, 0), Me === "motionBlur" ? G(Ie, 0, 0, Be, $e) : !e && (Me === void 0 || Me) && Ie.clearRect(0, 0, Be, $e), r || (Ie.translate(Ue.x, Ue.y), Ie.scale(ze, ze)), i && Ie.translate(i.x, i.y), n && Ie.scale(n, n); + } + if (h || (s.textureDrawLastFrame = !1), h) { + if (s.textureDrawLastFrame = !0, !s.textureCache) { + s.textureCache = {}, s.textureCache.bb = u.mutableElements().boundingBox(), s.textureCache.texture = s.data.bufferCanvases[s.TEXTURE_BUFFER]; + var X = s.data.bufferContexts[s.TEXTURE_BUFFER]; + X.setTransform(1, 0, 0, 1, 0, 0), X.clearRect(0, 0, s.canvasWidth * s.textureMult, s.canvasHeight * s.textureMult), s.render({ + forcedContext: X, + drawOnlyNodeLayer: !0, + forcedPxRatio: o * s.textureMult + }); + var w = s.textureCache.viewport = { + zoom: u.zoom(), + pan: u.pan(), + width: s.canvasWidth, + height: s.canvasHeight + }; + w.mpan = { + x: (0 - w.pan.x) / w.zoom, + y: (0 - w.pan.y) / w.zoom + }; + } + f[s.DRAG] = !1, f[s.NODE] = !1; + var B = l.contexts[s.NODE], re = s.textureCache.texture, w = s.textureCache.viewport; + B.setTransform(1, 0, 0, 1, 0, 0), v ? G(B, 0, 0, w.width, w.height) : B.clearRect(0, 0, w.width, w.height); + var K = m.core("outside-texture-bg-color").value, W = m.core("outside-texture-bg-opacity").value; + s.colorFillStyle(B, K[0], K[1], K[2], W), B.fillRect(0, 0, w.width, w.height); + var b = u.zoom(); + N(B, !1), B.clearRect(w.mpan.x, w.mpan.y, w.width / w.zoom / o, w.height / w.zoom / o), B.drawImage(re, w.mpan.x, w.mpan.y, w.width / w.zoom / o, w.height / w.zoom / o); + } else + s.textureOnViewport && !e && (s.textureCache = null); + var ae = u.extent(), ue = s.pinching || s.hoverData.dragging || s.swipePanning || s.data.wheelZooming || s.hoverData.draggingEles || s.cy.animated(), me = s.hideEdgesOnViewport && ue, ie = []; + if (ie[s.NODE] = !f[s.NODE] && v && !s.clearedForMotionBlur[s.NODE] || s.clearingMotionBlur, ie[s.NODE] && (s.clearedForMotionBlur[s.NODE] = !0), ie[s.DRAG] = !f[s.DRAG] && v && !s.clearedForMotionBlur[s.DRAG] || s.clearingMotionBlur, ie[s.DRAG] && (s.clearedForMotionBlur[s.DRAG] = !0), f[s.NODE] || r || a || ie[s.NODE]) { + var ge = v && !ie[s.NODE] && d !== 1, B = e || (ge ? s.data.bufferContexts[s.MOTIONBLUR_BUFFER_NODE] : l.contexts[s.NODE]), Ee = v && !ge ? "motionBlur" : void 0; + N(B, Ee), me ? s.drawCachedNodes(B, F.nondrag, o, ae) : s.drawLayeredElements(B, F.nondrag, o, ae), s.debug && s.drawDebugPoints(B, F.nondrag), !r && !v && (f[s.NODE] = !1); + } + if (!a && (f[s.DRAG] || r || ie[s.DRAG])) { + var ge = v && !ie[s.DRAG] && d !== 1, B = e || (ge ? s.data.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG] : l.contexts[s.DRAG]); + N(B, v && !ge ? "motionBlur" : void 0), me ? s.drawCachedNodes(B, F.drag, o, ae) : s.drawCachedElements(B, F.drag, o, ae), s.debug && s.drawDebugPoints(B, F.drag), !r && !v && (f[s.DRAG] = !1); + } + if (s.showFps || !a && f[s.SELECT_BOX] && !r) { + var B = e || l.contexts[s.SELECT_BOX]; + if (N(B), s.selection[4] == 1 && (s.hoverData.selecting || s.touchData.selecting)) { + var b = s.cy.zoom(), Ce = m.core("selection-box-border-width").value / b; + B.lineWidth = Ce, B.fillStyle = "rgba(" + m.core("selection-box-color").value[0] + "," + m.core("selection-box-color").value[1] + "," + m.core("selection-box-color").value[2] + "," + m.core("selection-box-opacity").value + ")", B.fillRect(s.selection[0], s.selection[1], s.selection[2] - s.selection[0], s.selection[3] - s.selection[1]), Ce > 0 && (B.strokeStyle = "rgba(" + m.core("selection-box-border-color").value[0] + "," + m.core("selection-box-border-color").value[1] + "," + m.core("selection-box-border-color").value[2] + "," + m.core("selection-box-opacity").value + ")", B.strokeRect(s.selection[0], s.selection[1], s.selection[2] - s.selection[0], s.selection[3] - s.selection[1])); + } + if (l.bgActivePosistion && !s.hoverData.selecting) { + var b = s.cy.zoom(), we = l.bgActivePosistion; + B.fillStyle = "rgba(" + m.core("active-bg-color").value[0] + "," + m.core("active-bg-color").value[1] + "," + m.core("active-bg-color").value[2] + "," + m.core("active-bg-opacity").value + ")", B.beginPath(), B.arc(we.x, we.y, m.core("active-bg-size").pfValue / b, 0, 2 * Math.PI), B.fill(); + } + var De = s.lastRedrawTime; + if (s.showFps && De) { + De = Math.round(De); + var se = Math.round(1e3 / De); + B.setTransform(1, 0, 0, 1, 0, 0), B.fillStyle = "rgba(255, 0, 0, 0.75)", B.strokeStyle = "rgba(255, 0, 0, 0.75)", B.lineWidth = 1, B.fillText("1 frame = " + De + " ms = " + se + " fps", 0, 20); + var xe = 60; + B.strokeRect(0, 30, 250, 20), B.fillRect(0, 30, 250 * Math.min(se / xe, 1), 20); + } + r || (f[s.SELECT_BOX] = !1); + } + if (v && d !== 1) { + var Le = l.contexts[s.NODE], Se = s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_NODE], Oe = l.contexts[s.DRAG], Fe = s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_DRAG], Xe = function(Me, Ue, ze) { + Me.setTransform(1, 0, 0, 1, 0, 0), ze || !g ? Me.clearRect(0, 0, s.canvasWidth, s.canvasHeight) : G(Me, 0, 0, s.canvasWidth, s.canvasHeight); + var Be = d; + Me.drawImage( + Ue, + // img + 0, + 0, + // sx, sy + s.canvasWidth * Be, + s.canvasHeight * Be, + // sw, sh + 0, + 0, + // x, y + s.canvasWidth, + s.canvasHeight + // w, h + ); + }; + (f[s.NODE] || ie[s.NODE]) && (Xe(Le, Se, ie[s.NODE]), f[s.NODE] = !1), (f[s.DRAG] || ie[s.DRAG]) && (Xe(Oe, Fe, ie[s.DRAG]), f[s.DRAG] = !1); + } + s.prevViewport = w, s.clearingMotionBlur && (s.clearingMotionBlur = !1, s.motionBlurCleared = !0, s.motionBlur = !0), v && (s.motionBlurTimeout = setTimeout(function() { + s.motionBlurTimeout = null, s.clearedForMotionBlur[s.NODE] = !1, s.clearedForMotionBlur[s.DRAG] = !1, s.motionBlur = !1, s.clearingMotionBlur = !h, s.mbFrames = 0, f[s.NODE] = !0, f[s.DRAG] = !0, s.redraw(); + }, Jg)), e || u.emit("render"); + }; + var Mr = {}; + Mr.drawPolygonPath = function(t, e, r, a, n, i) { + var s = a / 2, o = n / 2; + t.beginPath && t.beginPath(), t.moveTo(e + s * i[0], r + o * i[1]); + for (var u = 1; u < i.length / 2; u++) + t.lineTo(e + s * i[u * 2], r + o * i[u * 2 + 1]); + t.closePath(); + }, Mr.drawRoundPolygonPath = function(t, e, r, a, n, i) { + var s = a / 2, o = n / 2, u = ci(a, n); + t.beginPath && t.beginPath(); + for (var l = 0; l < i.length / 4; l++) { + var f = void 0, h = void 0; + l === 0 ? f = i.length - 2 : f = l * 4 - 2, h = l * 4 + 2; + var v = e + s * i[l * 4], d = r + o * i[l * 4 + 1], c = -i[f] * i[h] - i[f + 1] * i[h + 1], y = u / Math.tan(Math.acos(c) / 2), p = v - y * i[f], g = d - y * i[f + 1], m = v + y * i[h], b = d + y * i[h + 1]; + l === 0 ? t.moveTo(p, g) : t.lineTo(p, g), t.arcTo(v, d, m, b, u); + } + t.closePath(); + }, Mr.drawRoundRectanglePath = function(t, e, r, a, n) { + var i = a / 2, s = n / 2, o = Fa(a, n); + t.beginPath && t.beginPath(), t.moveTo(e, r - s), t.arcTo(e + i, r - s, e + i, r, o), t.arcTo(e + i, r + s, e, r + s, o), t.arcTo(e - i, r + s, e - i, r, o), t.arcTo(e - i, r - s, e, r - s, o), t.lineTo(e, r - s), t.closePath(); + }, Mr.drawBottomRoundRectanglePath = function(t, e, r, a, n) { + var i = a / 2, s = n / 2, o = Fa(a, n); + t.beginPath && t.beginPath(), t.moveTo(e, r - s), t.lineTo(e + i, r - s), t.lineTo(e + i, r), t.arcTo(e + i, r + s, e, r + s, o), t.arcTo(e - i, r + s, e - i, r, o), t.lineTo(e - i, r - s), t.lineTo(e, r - s), t.closePath(); + }, Mr.drawCutRectanglePath = function(t, e, r, a, n) { + var i = a / 2, s = n / 2, o = Ss(); + t.beginPath && t.beginPath(), t.moveTo(e - i + o, r - s), t.lineTo(e + i - o, r - s), t.lineTo(e + i, r - s + o), t.lineTo(e + i, r + s - o), t.lineTo(e + i - o, r + s), t.lineTo(e - i + o, r + s), t.lineTo(e - i, r + s - o), t.lineTo(e - i, r - s + o), t.closePath(); + }, Mr.drawBarrelPath = function(t, e, r, a, n) { + var i = a / 2, s = n / 2, o = e - i, u = e + i, l = r - s, f = r + s, h = di(a, n), v = h.widthOffset, d = h.heightOffset, c = h.ctrlPtOffsetPct * v; + t.beginPath && t.beginPath(), t.moveTo(o, l + d), t.lineTo(o, f - d), t.quadraticCurveTo(o + c, f, o + v, f), t.lineTo(u - v, f), t.quadraticCurveTo(u - c, f, u, f - d), t.lineTo(u, l + d), t.quadraticCurveTo(u - c, l, u - v, l), t.lineTo(o + v, l), t.quadraticCurveTo(o + c, l, o, l + d), t.closePath(); + }; + for (var Cl = Math.sin(0), Dl = Math.cos(0), Yi = {}, Hi = {}, Sl = Math.PI / 40, wa = 0 * Math.PI; wa < 2 * Math.PI; wa += Sl) + Yi[wa] = Math.sin(wa), Hi[wa] = Math.cos(wa); + Mr.drawEllipsePath = function(t, e, r, a, n) { + if (t.beginPath && t.beginPath(), t.ellipse) + t.ellipse(e, r, a / 2, n / 2, 0, 0, 2 * Math.PI); + else + for (var i, s, o = a / 2, u = n / 2, l = 0 * Math.PI; l < 2 * Math.PI; l += Sl) + i = e - o * Yi[l] * Cl + o * Hi[l] * Dl, s = r + u * Hi[l] * Cl + u * Yi[l] * Dl, l === 0 ? t.moveTo(i, s) : t.lineTo(i, s); + t.closePath(); + }; + var tn = {}; + tn.createBuffer = function(t, e) { + var r = document.createElement("canvas"); + return r.width = t, r.height = e, [r, r.getContext("2d")]; + }, tn.bufferCanvasImage = function(t) { + var e = this.cy, r = e.mutableElements(), a = r.boundingBox(), n = this.findContainerClientCoords(), i = t.full ? Math.ceil(a.w) : n[2], s = t.full ? Math.ceil(a.h) : n[3], o = R(t.maxWidth) || R(t.maxHeight), u = this.getPixelRatio(), l = 1; + if (t.scale !== void 0) + i *= t.scale, s *= t.scale, l = t.scale; + else if (o) { + var f = 1 / 0, h = 1 / 0; + R(t.maxWidth) && (f = l * t.maxWidth / i), R(t.maxHeight) && (h = l * t.maxHeight / s), l = Math.min(f, h), i *= l, s *= l; + } + o || (i *= u, s *= u, l *= u); + var v = document.createElement("canvas"); + v.width = i, v.height = s, v.style.width = i + "px", v.style.height = s + "px"; + var d = v.getContext("2d"); + if (i > 0 && s > 0) { + d.clearRect(0, 0, i, s), d.globalCompositeOperation = "source-over"; + var c = this.getCachedZSortedEles(); + if (t.full) + d.translate(-a.x1 * l, -a.y1 * l), d.scale(l, l), this.drawElements(d, c), d.scale(1 / l, 1 / l), d.translate(a.x1 * l, a.y1 * l); + else { + var y = e.pan(), p = { + x: y.x * l, + y: y.y * l + }; + l *= e.zoom(), d.translate(p.x, p.y), d.scale(l, l), this.drawElements(d, c), d.scale(1 / l, 1 / l), d.translate(-p.x, -p.y); + } + t.bg && (d.globalCompositeOperation = "destination-over", d.fillStyle = t.bg, d.rect(0, 0, i, s), d.fill()); + } + return v; + }; + function jg(t, e) { + for (var r = atob(t), a = new ArrayBuffer(r.length), n = new Uint8Array(a), i = 0; i < r.length; i++) + n[i] = r.charCodeAt(i); + return new Blob([a], { + type: e + }); + } + function Ll(t) { + var e = t.indexOf(","); + return t.substr(e + 1); + } + function Al(t, e, r) { + var a = function() { + return e.toDataURL(r, t.quality); + }; + switch (t.output) { + case "blob-promise": + return new ia(function(n, i) { + try { + e.toBlob(function(s) { + s != null ? n(s) : i(new Error("`canvas.toBlob()` sent a null value in its callback")); + }, r, t.quality); + } catch (s) { + i(s); + } + }); + case "blob": + return jg(Ll(a()), r); + case "base64": + return Ll(a()); + case "base64uri": + default: + return a(); + } + } + tn.png = function(t) { + return Al(t, this.bufferCanvasImage(t), "image/png"); + }, tn.jpg = function(t) { + return Al(t, this.bufferCanvasImage(t), "image/jpeg"); + }; + var Ol = {}; + Ol.nodeShapeImpl = function(t, e, r, a, n, i, s) { + switch (t) { + case "ellipse": + return this.drawEllipsePath(e, r, a, n, i); + case "polygon": + return this.drawPolygonPath(e, r, a, n, i, s); + case "round-polygon": + return this.drawRoundPolygonPath(e, r, a, n, i, s); + case "roundrectangle": + case "round-rectangle": + return this.drawRoundRectanglePath(e, r, a, n, i); + case "cutrectangle": + case "cut-rectangle": + return this.drawCutRectanglePath(e, r, a, n, i); + case "bottomroundrectangle": + case "bottom-round-rectangle": + return this.drawBottomRoundRectanglePath(e, r, a, n, i); + case "barrel": + return this.drawBarrelPath(e, r, a, n, i); + } + }; + var ep = Nl, ut = Nl.prototype; + ut.CANVAS_LAYERS = 3, ut.SELECT_BOX = 0, ut.DRAG = 1, ut.NODE = 2, ut.BUFFER_COUNT = 3, ut.TEXTURE_BUFFER = 0, ut.MOTIONBLUR_BUFFER_NODE = 1, ut.MOTIONBLUR_BUFFER_DRAG = 2; + function Nl(t) { + var e = this; + e.data = { + canvases: new Array(ut.CANVAS_LAYERS), + contexts: new Array(ut.CANVAS_LAYERS), + canvasNeedsRedraw: new Array(ut.CANVAS_LAYERS), + bufferCanvases: new Array(ut.BUFFER_COUNT), + bufferContexts: new Array(ut.CANVAS_LAYERS) + }; + var r = "-webkit-tap-highlight-color", a = "rgba(0,0,0,0)"; + e.data.canvasContainer = document.createElement("div"); + var n = e.data.canvasContainer.style; + e.data.canvasContainer.style[r] = a, n.position = "relative", n.zIndex = "0", n.overflow = "hidden"; + var i = t.cy.container(); + i.appendChild(e.data.canvasContainer), i.style[r] = a; + var s = { + "-webkit-user-select": "none", + "-moz-user-select": "-moz-none", + "user-select": "none", + "-webkit-tap-highlight-color": "rgba(0,0,0,0)", + "outline-style": "none" + }; + ht() && (s["-ms-touch-action"] = "none", s["touch-action"] = "none"); + for (var o = 0; o < ut.CANVAS_LAYERS; o++) { + var u = e.data.canvases[o] = document.createElement("canvas"); + e.data.contexts[o] = u.getContext("2d"), Object.keys(s).forEach(function(De) { + u.style[De] = s[De]; + }), u.style.position = "absolute", u.setAttribute("data-id", "layer" + o), u.style.zIndex = String(ut.CANVAS_LAYERS - o), e.data.canvasContainer.appendChild(u), e.data.canvasNeedsRedraw[o] = !1; + } + e.data.topCanvas = e.data.canvases[0], e.data.canvases[ut.NODE].setAttribute("data-id", "layer" + ut.NODE + "-node"), e.data.canvases[ut.SELECT_BOX].setAttribute("data-id", "layer" + ut.SELECT_BOX + "-selectbox"), e.data.canvases[ut.DRAG].setAttribute("data-id", "layer" + ut.DRAG + "-drag"); + for (var o = 0; o < ut.BUFFER_COUNT; o++) + e.data.bufferCanvases[o] = document.createElement("canvas"), e.data.bufferContexts[o] = e.data.bufferCanvases[o].getContext("2d"), e.data.bufferCanvases[o].style.position = "absolute", e.data.bufferCanvases[o].setAttribute("data-id", "buffer" + o), e.data.bufferCanvases[o].style.zIndex = String(-o - 1), e.data.bufferCanvases[o].style.visibility = "hidden"; + e.pathsEnabled = !0; + var l = Yt(), f = function(se) { + return { + x: (se.x1 + se.x2) / 2, + y: (se.y1 + se.y2) / 2 + }; + }, h = function(se) { + return { + x: -se.w / 2, + y: -se.h / 2 + }; + }, v = function(se) { + var xe = se[0]._private, Le = xe.oldBackgroundTimestamp === xe.backgroundTimestamp; + return !Le; + }, d = function(se) { + return se[0]._private.nodeKey; + }, c = function(se) { + return se[0]._private.labelStyleKey; + }, y = function(se) { + return se[0]._private.sourceLabelStyleKey; + }, p = function(se) { + return se[0]._private.targetLabelStyleKey; + }, g = function(se, xe, Le, Se, Oe) { + return e.drawElement(se, xe, Le, !1, !1, Oe); + }, m = function(se, xe, Le, Se, Oe) { + return e.drawElementText(se, xe, Le, Se, "main", Oe); + }, b = function(se, xe, Le, Se, Oe) { + return e.drawElementText(se, xe, Le, Se, "source", Oe); + }, E = function(se, xe, Le, Se, Oe) { + return e.drawElementText(se, xe, Le, Se, "target", Oe); + }, M = function(se) { + return se.boundingBox(), se[0]._private.bodyBounds; + }, L = function(se) { + return se.boundingBox(), se[0]._private.labelBounds.main || l; + }, w = function(se) { + return se.boundingBox(), se[0]._private.labelBounds.source || l; + }, k = function(se) { + return se.boundingBox(), se[0]._private.labelBounds.target || l; + }, D = function(se, xe) { + return xe; + }, F = function(se) { + return f(M(se)); + }, G = function(se, xe, Le) { + var Se = se ? se + "-" : ""; + return { + x: xe.x + Le.pstyle(Se + "text-margin-x").pfValue, + y: xe.y + Le.pstyle(Se + "text-margin-y").pfValue + }; + }, N = function(se, xe, Le) { + var Se = se[0]._private.rscratch; + return { + x: Se[xe], + y: Se[Le] + }; + }, X = function(se) { + return G("", N(se, "labelX", "labelY"), se); + }, B = function(se) { + return G("source", N(se, "sourceLabelX", "sourceLabelY"), se); + }, re = function(se) { + return G("target", N(se, "targetLabelX", "targetLabelY"), se); + }, K = function(se) { + return h(M(se)); + }, W = function(se) { + return h(w(se)); + }, ae = function(se) { + return h(k(se)); + }, ue = function(se) { + var xe = L(se), Le = h(L(se)); + if (se.isNode()) { + switch (se.pstyle("text-halign").value) { + case "left": + Le.x = -xe.w; + break; + case "right": + Le.x = 0; + break; + } + switch (se.pstyle("text-valign").value) { + case "top": + Le.y = -xe.h; + break; + case "bottom": + Le.y = 0; + break; + } + } + return Le; + }, me = e.data.eleTxrCache = new ja(e, { + getKey: d, + doesEleInvalidateKey: v, + drawElement: g, + getBoundingBox: M, + getRotationPoint: F, + getRotationOffset: K, + allowEdgeTxrCaching: !1, + allowParentTxrCaching: !1 + }), ie = e.data.lblTxrCache = new ja(e, { + getKey: c, + drawElement: m, + getBoundingBox: L, + getRotationPoint: X, + getRotationOffset: ue, + isVisible: D + }), ge = e.data.slbTxrCache = new ja(e, { + getKey: y, + drawElement: b, + getBoundingBox: w, + getRotationPoint: B, + getRotationOffset: W, + isVisible: D + }), Ee = e.data.tlbTxrCache = new ja(e, { + getKey: p, + drawElement: E, + getBoundingBox: k, + getRotationPoint: re, + getRotationOffset: ae, + isVisible: D + }), Ce = e.data.lyrTxrCache = new yl(e); + e.onUpdateEleCalcs(function(se, xe) { + me.invalidateElements(xe), ie.invalidateElements(xe), ge.invalidateElements(xe), Ee.invalidateElements(xe), Ce.invalidateElements(xe); + for (var Le = 0; Le < xe.length; Le++) { + var Se = xe[Le]._private; + Se.oldBackgroundTimestamp = Se.backgroundTimestamp; + } + }); + var we = function(se) { + for (var xe = 0; xe < se.length; xe++) + Ce.enqueueElementRefinement(se[xe].ele); + }; + me.onDequeue(we), ie.onDequeue(we), ge.onDequeue(we), Ee.onDequeue(we); + } + ut.redrawHint = function(t, e) { + var r = this; + switch (t) { + case "eles": + r.data.canvasNeedsRedraw[ut.NODE] = e; + break; + case "drag": + r.data.canvasNeedsRedraw[ut.DRAG] = e; + break; + case "select": + r.data.canvasNeedsRedraw[ut.SELECT_BOX] = e; + break; + } + }; + var tp = typeof Path2D < "u"; + ut.path2dEnabled = function(t) { + if (t === void 0) + return this.pathsEnabled; + this.pathsEnabled = !!t; + }, ut.usePaths = function() { + return tp && this.pathsEnabled; + }, ut.setImgSmoothing = function(t, e) { + t.imageSmoothingEnabled != null ? t.imageSmoothingEnabled = e : (t.webkitImageSmoothingEnabled = e, t.mozImageSmoothingEnabled = e, t.msImageSmoothingEnabled = e); + }, ut.getImgSmoothing = function(t) { + return t.imageSmoothingEnabled != null ? t.imageSmoothingEnabled : t.webkitImageSmoothingEnabled || t.mozImageSmoothingEnabled || t.msImageSmoothingEnabled; + }, ut.makeOffscreenCanvas = function(t, e) { + var r; + return (typeof OffscreenCanvas > "u" ? "undefined" : _(OffscreenCanvas)) !== "undefined" ? r = new OffscreenCanvas(t, e) : (r = document.createElement("canvas"), r.width = t, r.height = e), r; + }, [bl, vr, br, $i, _r, Ea, Kt, Mr, tn, Ol].forEach(function(t) { + He(ut, t); + }); + var rp = [{ + name: "null", + impl: tl + }, { + name: "base", + impl: cl + }, { + name: "canvas", + impl: ep + }], ap = [{ + type: "layout", + extensions: hg + }, { + type: "renderer", + extensions: rp + }], Il = {}, Ml = {}; + function Rl(t, e, r) { + var a = r, n = function(k) { + vt("Can not register `" + e + "` for `" + t + "` since `" + k + "` already exists in the prototype and can not be overridden"); + }; + if (t === "core") { + if (Za.prototype[e]) + return n(e); + Za.prototype[e] = r; + } else if (t === "collection") { + if (Nt.prototype[e]) + return n(e); + Nt.prototype[e] = r; + } else if (t === "layout") { + for (var i = function(k) { + this.options = k, r.call(this, k), S(this._private) || (this._private = {}), this._private.cy = k.cy, this._private.listeners = [], this.createEmitter(); + }, s = i.prototype = Object.create(r.prototype), o = [], u = 0; u < o.length; u++) { + var l = o[u]; + s[l] = s[l] || function() { + return this; + }; + } + s.start && !s.run ? s.run = function() { + return this.start(), this; + } : !s.start && s.run && (s.start = function() { + return this.run(), this; + }); + var f = r.prototype.stop; + s.stop = function() { + var w = this.options; + if (w && w.animate) { + var k = this.animations; + if (k) + for (var D = 0; D < k.length; D++) + k[D].stop(); + } + return f ? f.call(this) : this.emit("layoutstop"), this; + }, s.destroy || (s.destroy = function() { + return this; + }), s.cy = function() { + return this._private.cy; + }; + var h = function(k) { + return k._private.cy; + }, v = { + addEventFields: function(k, D) { + D.layout = k, D.cy = h(k), D.target = k; + }, + bubble: function() { + return !0; + }, + parent: function(k) { + return h(k); + } + }; + He(s, { + createEmitter: function() { + return this._private.emitter = new In(v, this), this; + }, + emitter: function() { + return this._private.emitter; + }, + on: function(k, D) { + return this.emitter().on(k, D), this; + }, + one: function(k, D) { + return this.emitter().one(k, D), this; + }, + once: function(k, D) { + return this.emitter().one(k, D), this; + }, + removeListener: function(k, D) { + return this.emitter().removeListener(k, D), this; + }, + removeAllListeners: function() { + return this.emitter().removeAllListeners(), this; + }, + emit: function(k, D) { + return this.emitter().emit(k, D), this; + } + }), ct.eventAliasesOn(s), a = i; + } else if (t === "renderer" && e !== "null" && e !== "base") { + var d = kl("renderer", "base"), c = d.prototype, y = r, p = r.prototype, g = function() { + d.apply(this, arguments), y.apply(this, arguments); + }, m = g.prototype; + for (var b in c) { + var E = c[b], M = p[b] != null; + if (M) + return n(b); + m[b] = E; + } + for (var L in p) + m[L] = p[L]; + c.clientFunctions.forEach(function(w) { + m[w] = m[w] || function() { + xt("Renderer does not implement `renderer." + w + "()` on its prototype"); + }; + }), a = g; + } else if (t === "__proto__" || t === "constructor" || t === "prototype") + return xt(t + " is an illegal type to be registered, possibly lead to prototype pollutions"); + return ts({ + map: Il, + keys: [t, e], + value: a + }); + } + function kl(t, e) { + return rs({ + map: Il, + keys: [t, e] + }); + } + function np(t, e, r, a, n) { + return ts({ + map: Ml, + keys: [t, e, r, a], + value: n + }); + } + function ip(t, e, r, a) { + return rs({ + map: Ml, + keys: [t, e, r, a] + }); + } + var Xi = function() { + if (arguments.length === 2) + return kl.apply(null, arguments); + if (arguments.length === 3) + return Rl.apply(null, arguments); + if (arguments.length === 4) + return ip.apply(null, arguments); + if (arguments.length === 5) + return np.apply(null, arguments); + xt("Invalid extension access syntax"); + }; + Za.prototype.extension = Xi, ap.forEach(function(t) { + t.extensions.forEach(function(e) { + Rl(t.type, e.name, e.impl); + }); + }); + var Pl = function t() { + if (!(this instanceof t)) + return new t(); + this.length = 0; + }, Yr = Pl.prototype; + Yr.instanceString = function() { + return "stylesheet"; + }, Yr.selector = function(t) { + var e = this.length++; + return this[e] = { + selector: t, + properties: [] + }, this; + }, Yr.css = function(t, e) { + var r = this.length - 1; + if (ee(t)) + this[r].properties.push({ + name: t, + value: e + }); + else if (S(t)) + for (var a = t, n = Object.keys(a), i = 0; i < n.length; i++) { + var s = n[i], o = a[s]; + if (o != null) { + var u = Gt.properties[s] || Gt.properties[yt(s)]; + if (u != null) { + var l = u.name, f = o; + this[r].properties.push({ + name: l, + value: f + }); + } + } + } + return this; + }, Yr.style = Yr.css, Yr.generateStyle = function(t) { + var e = new Gt(t); + return this.appendToStyle(e); + }, Yr.appendToStyle = function(t) { + for (var e = 0; e < this.length; e++) { + var r = this[e], a = r.selector, n = r.properties; + t.selector(a); + for (var i = 0; i < n.length; i++) { + var s = n[i]; + t.css(s.name, s.value); + } + } + return t; + }; + var sp = "3.28.1", Hr = function(e) { + if (e === void 0 && (e = {}), S(e)) + return new Za(e); + if (ee(e)) + return Xi.apply(Xi, arguments); + }; + return Hr.use = function(t) { + var e = Array.prototype.slice.call(arguments, 1); + return e.unshift(Hr), t.apply(null, e), this; + }, Hr.warnings = function(t) { + return gs(t); + }, Hr.version = sp, Hr.stylesheet = Hr.Stylesheet = Pl, Hr; + }); +})(Yl); +var Fp = Yl.exports; +const Hl = /* @__PURE__ */ $l(Fp); +var Xl = { exports: {} }, Ki = { exports: {} }, Zi = { exports: {} }, Vl; +function Gp() { + return Vl || (Vl = 1, function(de, Pe) { + (function(fe, Q) { + de.exports = Q(); + })(Ca, function() { + return ( + /******/ + function(_) { + var fe = {}; + function Q(C) { + if (fe[C]) + return fe[C].exports; + var T = fe[C] = { + /******/ + i: C, + /******/ + l: !1, + /******/ + exports: {} + /******/ + }; + return _[C].call(T.exports, T, T.exports, Q), T.l = !0, T.exports; + } + return Q.m = _, Q.c = fe, Q.i = function(C) { + return C; + }, Q.d = function(C, T, x) { + Q.o(C, T) || Object.defineProperty(C, T, { + /******/ + configurable: !1, + /******/ + enumerable: !0, + /******/ + get: x + /******/ + }); + }, Q.n = function(C) { + var T = C && C.__esModule ? ( + /******/ + function() { + return C.default; + } + ) : ( + /******/ + function() { + return C; + } + ); + return Q.d(T, "a", T), T; + }, Q.o = function(C, T) { + return Object.prototype.hasOwnProperty.call(C, T); + }, Q.p = "", Q(Q.s = 26); + }([ + /* 0 */ + /***/ + function(_, fe, Q) { + function C() { + } + C.QUALITY = 1, C.DEFAULT_CREATE_BENDS_AS_NEEDED = !1, C.DEFAULT_INCREMENTAL = !1, C.DEFAULT_ANIMATION_ON_LAYOUT = !0, C.DEFAULT_ANIMATION_DURING_LAYOUT = !1, C.DEFAULT_ANIMATION_PERIOD = 50, C.DEFAULT_UNIFORM_LEAF_NODE_SIZES = !1, C.DEFAULT_GRAPH_MARGIN = 15, C.NODE_DIMENSIONS_INCLUDE_LABELS = !1, C.SIMPLE_NODE_SIZE = 40, C.SIMPLE_NODE_HALF_SIZE = C.SIMPLE_NODE_SIZE / 2, C.EMPTY_COMPOUND_NODE_SIZE = 40, C.MIN_EDGE_LENGTH = 1, C.WORLD_BOUNDARY = 1e6, C.INITIAL_WORLD_BOUNDARY = C.WORLD_BOUNDARY / 1e3, C.WORLD_CENTER_X = 1200, C.WORLD_CENTER_Y = 900, _.exports = C; + }, + /* 1 */ + /***/ + function(_, fe, Q) { + var C = Q(2), T = Q(8), x = Q(9); + function I(Y, P, Z) { + C.call(this, Z), this.isOverlapingSourceAndTarget = !1, this.vGraphObject = Z, this.bendpoints = [], this.source = Y, this.target = P; + } + I.prototype = Object.create(C.prototype); + for (var z in C) + I[z] = C[z]; + I.prototype.getSource = function() { + return this.source; + }, I.prototype.getTarget = function() { + return this.target; + }, I.prototype.isInterGraph = function() { + return this.isInterGraph; + }, I.prototype.getLength = function() { + return this.length; + }, I.prototype.isOverlapingSourceAndTarget = function() { + return this.isOverlapingSourceAndTarget; + }, I.prototype.getBendpoints = function() { + return this.bendpoints; + }, I.prototype.getLca = function() { + return this.lca; + }, I.prototype.getSourceInLca = function() { + return this.sourceInLca; + }, I.prototype.getTargetInLca = function() { + return this.targetInLca; + }, I.prototype.getOtherEnd = function(Y) { + if (this.source === Y) + return this.target; + if (this.target === Y) + return this.source; + throw "Node is not incident with this edge"; + }, I.prototype.getOtherEndInGraph = function(Y, P) { + for (var Z = this.getOtherEnd(Y), A = P.getGraphManager().getRoot(); ; ) { + if (Z.getOwner() == P) + return Z; + if (Z.getOwner() == A) + break; + Z = Z.getOwner().getParent(); + } + return null; + }, I.prototype.updateLength = function() { + var Y = new Array(4); + this.isOverlapingSourceAndTarget = T.getIntersection(this.target.getRect(), this.source.getRect(), Y), this.isOverlapingSourceAndTarget || (this.lengthX = Y[0] - Y[2], this.lengthY = Y[1] - Y[3], Math.abs(this.lengthX) < 1 && (this.lengthX = x.sign(this.lengthX)), Math.abs(this.lengthY) < 1 && (this.lengthY = x.sign(this.lengthY)), this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY)); + }, I.prototype.updateLengthSimple = function() { + this.lengthX = this.target.getCenterX() - this.source.getCenterX(), this.lengthY = this.target.getCenterY() - this.source.getCenterY(), Math.abs(this.lengthX) < 1 && (this.lengthX = x.sign(this.lengthX)), Math.abs(this.lengthY) < 1 && (this.lengthY = x.sign(this.lengthY)), this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY); + }, _.exports = I; + }, + /* 2 */ + /***/ + function(_, fe, Q) { + function C(T) { + this.vGraphObject = T; + } + _.exports = C; + }, + /* 3 */ + /***/ + function(_, fe, Q) { + var C = Q(2), T = Q(10), x = Q(13), I = Q(0), z = Q(16), Y = Q(4); + function P(A, $, U, J) { + U == null && J == null && (J = $), C.call(this, J), A.graphManager != null && (A = A.graphManager), this.estimatedSize = T.MIN_VALUE, this.inclusionTreeDepth = T.MAX_VALUE, this.vGraphObject = J, this.edges = [], this.graphManager = A, U != null && $ != null ? this.rect = new x($.x, $.y, U.width, U.height) : this.rect = new x(); + } + P.prototype = Object.create(C.prototype); + for (var Z in C) + P[Z] = C[Z]; + P.prototype.getEdges = function() { + return this.edges; + }, P.prototype.getChild = function() { + return this.child; + }, P.prototype.getOwner = function() { + return this.owner; + }, P.prototype.getWidth = function() { + return this.rect.width; + }, P.prototype.setWidth = function(A) { + this.rect.width = A; + }, P.prototype.getHeight = function() { + return this.rect.height; + }, P.prototype.setHeight = function(A) { + this.rect.height = A; + }, P.prototype.getCenterX = function() { + return this.rect.x + this.rect.width / 2; + }, P.prototype.getCenterY = function() { + return this.rect.y + this.rect.height / 2; + }, P.prototype.getCenter = function() { + return new Y(this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2); + }, P.prototype.getLocation = function() { + return new Y(this.rect.x, this.rect.y); + }, P.prototype.getRect = function() { + return this.rect; + }, P.prototype.getDiagonal = function() { + return Math.sqrt(this.rect.width * this.rect.width + this.rect.height * this.rect.height); + }, P.prototype.getHalfTheDiagonal = function() { + return Math.sqrt(this.rect.height * this.rect.height + this.rect.width * this.rect.width) / 2; + }, P.prototype.setRect = function(A, $) { + this.rect.x = A.x, this.rect.y = A.y, this.rect.width = $.width, this.rect.height = $.height; + }, P.prototype.setCenter = function(A, $) { + this.rect.x = A - this.rect.width / 2, this.rect.y = $ - this.rect.height / 2; + }, P.prototype.setLocation = function(A, $) { + this.rect.x = A, this.rect.y = $; + }, P.prototype.moveBy = function(A, $) { + this.rect.x += A, this.rect.y += $; + }, P.prototype.getEdgeListToNode = function(A) { + var $ = [], U = this; + return U.edges.forEach(function(J) { + if (J.target == A) { + if (J.source != U) + throw "Incorrect edge source!"; + $.push(J); + } + }), $; + }, P.prototype.getEdgesBetween = function(A) { + var $ = [], U = this; + return U.edges.forEach(function(J) { + if (!(J.source == U || J.target == U)) + throw "Incorrect edge source and/or target"; + (J.target == A || J.source == A) && $.push(J); + }), $; + }, P.prototype.getNeighborsList = function() { + var A = /* @__PURE__ */ new Set(), $ = this; + return $.edges.forEach(function(U) { + if (U.source == $) + A.add(U.target); + else { + if (U.target != $) + throw "Incorrect incidency!"; + A.add(U.source); + } + }), A; + }, P.prototype.withChildren = function() { + var A = /* @__PURE__ */ new Set(), $, U; + if (A.add(this), this.child != null) + for (var J = this.child.getNodes(), ne = 0; ne < J.length; ne++) + $ = J[ne], U = $.withChildren(), U.forEach(function(le) { + A.add(le); + }); + return A; + }, P.prototype.getNoOfChildren = function() { + var A = 0, $; + if (this.child == null) + A = 1; + else + for (var U = this.child.getNodes(), J = 0; J < U.length; J++) + $ = U[J], A += $.getNoOfChildren(); + return A == 0 && (A = 1), A; + }, P.prototype.getEstimatedSize = function() { + if (this.estimatedSize == T.MIN_VALUE) + throw "assert failed"; + return this.estimatedSize; + }, P.prototype.calcEstimatedSize = function() { + return this.child == null ? this.estimatedSize = (this.rect.width + this.rect.height) / 2 : (this.estimatedSize = this.child.calcEstimatedSize(), this.rect.width = this.estimatedSize, this.rect.height = this.estimatedSize, this.estimatedSize); + }, P.prototype.scatter = function() { + var A, $, U = -I.INITIAL_WORLD_BOUNDARY, J = I.INITIAL_WORLD_BOUNDARY; + A = I.WORLD_CENTER_X + z.nextDouble() * (J - U) + U; + var ne = -I.INITIAL_WORLD_BOUNDARY, le = I.INITIAL_WORLD_BOUNDARY; + $ = I.WORLD_CENTER_Y + z.nextDouble() * (le - ne) + ne, this.rect.x = A, this.rect.y = $; + }, P.prototype.updateBounds = function() { + if (this.getChild() == null) + throw "assert failed"; + if (this.getChild().getNodes().length != 0) { + var A = this.getChild(); + if (A.updateBounds(!0), this.rect.x = A.getLeft(), this.rect.y = A.getTop(), this.setWidth(A.getRight() - A.getLeft()), this.setHeight(A.getBottom() - A.getTop()), I.NODE_DIMENSIONS_INCLUDE_LABELS) { + var $ = A.getRight() - A.getLeft(), U = A.getBottom() - A.getTop(); + this.labelWidth > $ && (this.rect.x -= (this.labelWidth - $) / 2, this.setWidth(this.labelWidth)), this.labelHeight > U && (this.labelPos == "center" ? this.rect.y -= (this.labelHeight - U) / 2 : this.labelPos == "top" && (this.rect.y -= this.labelHeight - U), this.setHeight(this.labelHeight)); + } + } + }, P.prototype.getInclusionTreeDepth = function() { + if (this.inclusionTreeDepth == T.MAX_VALUE) + throw "assert failed"; + return this.inclusionTreeDepth; + }, P.prototype.transform = function(A) { + var $ = this.rect.x; + $ > I.WORLD_BOUNDARY ? $ = I.WORLD_BOUNDARY : $ < -I.WORLD_BOUNDARY && ($ = -I.WORLD_BOUNDARY); + var U = this.rect.y; + U > I.WORLD_BOUNDARY ? U = I.WORLD_BOUNDARY : U < -I.WORLD_BOUNDARY && (U = -I.WORLD_BOUNDARY); + var J = new Y($, U), ne = A.inverseTransformPoint(J); + this.setLocation(ne.x, ne.y); + }, P.prototype.getLeft = function() { + return this.rect.x; + }, P.prototype.getRight = function() { + return this.rect.x + this.rect.width; + }, P.prototype.getTop = function() { + return this.rect.y; + }, P.prototype.getBottom = function() { + return this.rect.y + this.rect.height; + }, P.prototype.getParent = function() { + return this.owner == null ? null : this.owner.getParent(); + }, _.exports = P; + }, + /* 4 */ + /***/ + function(_, fe, Q) { + function C(T, x) { + T == null && x == null ? (this.x = 0, this.y = 0) : (this.x = T, this.y = x); + } + C.prototype.getX = function() { + return this.x; + }, C.prototype.getY = function() { + return this.y; + }, C.prototype.setX = function(T) { + this.x = T; + }, C.prototype.setY = function(T) { + this.y = T; + }, C.prototype.getDifference = function(T) { + return new DimensionD(this.x - T.x, this.y - T.y); + }, C.prototype.getCopy = function() { + return new C(this.x, this.y); + }, C.prototype.translate = function(T) { + return this.x += T.width, this.y += T.height, this; + }, _.exports = C; + }, + /* 5 */ + /***/ + function(_, fe, Q) { + var C = Q(2), T = Q(10), x = Q(0), I = Q(6), z = Q(3), Y = Q(1), P = Q(13), Z = Q(12), A = Q(11); + function $(J, ne, le) { + C.call(this, le), this.estimatedSize = T.MIN_VALUE, this.margin = x.DEFAULT_GRAPH_MARGIN, this.edges = [], this.nodes = [], this.isConnected = !1, this.parent = J, ne != null && ne instanceof I ? this.graphManager = ne : ne != null && ne instanceof Layout && (this.graphManager = ne.graphManager); + } + $.prototype = Object.create(C.prototype); + for (var U in C) + $[U] = C[U]; + $.prototype.getNodes = function() { + return this.nodes; + }, $.prototype.getEdges = function() { + return this.edges; + }, $.prototype.getGraphManager = function() { + return this.graphManager; + }, $.prototype.getParent = function() { + return this.parent; + }, $.prototype.getLeft = function() { + return this.left; + }, $.prototype.getRight = function() { + return this.right; + }, $.prototype.getTop = function() { + return this.top; + }, $.prototype.getBottom = function() { + return this.bottom; + }, $.prototype.isConnected = function() { + return this.isConnected; + }, $.prototype.add = function(J, ne, le) { + if (ne == null && le == null) { + var j = J; + if (this.graphManager == null) + throw "Graph has no graph mgr!"; + if (this.getNodes().indexOf(j) > -1) + throw "Node already in graph!"; + return j.owner = this, this.getNodes().push(j), j; + } else { + var ee = J; + if (!(this.getNodes().indexOf(ne) > -1 && this.getNodes().indexOf(le) > -1)) + throw "Source or target not in graph!"; + if (!(ne.owner == le.owner && ne.owner == this)) + throw "Both owners must be this graph!"; + return ne.owner != le.owner ? null : (ee.source = ne, ee.target = le, ee.isInterGraph = !1, this.getEdges().push(ee), ne.edges.push(ee), le != ne && le.edges.push(ee), ee); + } + }, $.prototype.remove = function(J) { + var ne = J; + if (J instanceof z) { + if (ne == null) + throw "Node is null!"; + if (!(ne.owner != null && ne.owner == this)) + throw "Owner graph is invalid!"; + if (this.graphManager == null) + throw "Owner graph manager is invalid!"; + for (var le = ne.edges.slice(), j, ee = le.length, H = 0; H < ee; H++) + j = le[H], j.isInterGraph ? this.graphManager.remove(j) : j.source.owner.remove(j); + var te = this.nodes.indexOf(ne); + if (te == -1) + throw "Node not in owner node list!"; + this.nodes.splice(te, 1); + } else if (J instanceof Y) { + var j = J; + if (j == null) + throw "Edge is null!"; + if (!(j.source != null && j.target != null)) + throw "Source and/or target is null!"; + if (!(j.source.owner != null && j.target.owner != null && j.source.owner == this && j.target.owner == this)) + throw "Source and/or target owner is invalid!"; + var S = j.source.edges.indexOf(j), V = j.target.edges.indexOf(j); + if (!(S > -1 && V > -1)) + throw "Source and/or target doesn't know this edge!"; + j.source.edges.splice(S, 1), j.target != j.source && j.target.edges.splice(V, 1); + var te = j.source.owner.getEdges().indexOf(j); + if (te == -1) + throw "Not in owner's edge list!"; + j.source.owner.getEdges().splice(te, 1); + } + }, $.prototype.updateLeftTop = function() { + for (var J = T.MAX_VALUE, ne = T.MAX_VALUE, le, j, ee, H = this.getNodes(), te = H.length, S = 0; S < te; S++) { + var V = H[S]; + le = V.getTop(), j = V.getLeft(), J > le && (J = le), ne > j && (ne = j); + } + return J == T.MAX_VALUE ? null : (H[0].getParent().paddingLeft != null ? ee = H[0].getParent().paddingLeft : ee = this.margin, this.left = ne - ee, this.top = J - ee, new Z(this.left, this.top)); + }, $.prototype.updateBounds = function(J) { + for (var ne = T.MAX_VALUE, le = -T.MAX_VALUE, j = T.MAX_VALUE, ee = -T.MAX_VALUE, H, te, S, V, R, q = this.nodes, ve = q.length, pe = 0; pe < ve; pe++) { + var Ae = q[pe]; + J && Ae.child != null && Ae.updateBounds(), H = Ae.getLeft(), te = Ae.getRight(), S = Ae.getTop(), V = Ae.getBottom(), ne > H && (ne = H), le < te && (le = te), j > S && (j = S), ee < V && (ee = V); + } + var Ne = new P(ne, j, le - ne, ee - j); + ne == T.MAX_VALUE && (this.left = this.parent.getLeft(), this.right = this.parent.getRight(), this.top = this.parent.getTop(), this.bottom = this.parent.getBottom()), q[0].getParent().paddingLeft != null ? R = q[0].getParent().paddingLeft : R = this.margin, this.left = Ne.x - R, this.right = Ne.x + Ne.width + R, this.top = Ne.y - R, this.bottom = Ne.y + Ne.height + R; + }, $.calculateBounds = function(J) { + for (var ne = T.MAX_VALUE, le = -T.MAX_VALUE, j = T.MAX_VALUE, ee = -T.MAX_VALUE, H, te, S, V, R = J.length, q = 0; q < R; q++) { + var ve = J[q]; + H = ve.getLeft(), te = ve.getRight(), S = ve.getTop(), V = ve.getBottom(), ne > H && (ne = H), le < te && (le = te), j > S && (j = S), ee < V && (ee = V); + } + var pe = new P(ne, j, le - ne, ee - j); + return pe; + }, $.prototype.getInclusionTreeDepth = function() { + return this == this.graphManager.getRoot() ? 1 : this.parent.getInclusionTreeDepth(); + }, $.prototype.getEstimatedSize = function() { + if (this.estimatedSize == T.MIN_VALUE) + throw "assert failed"; + return this.estimatedSize; + }, $.prototype.calcEstimatedSize = function() { + for (var J = 0, ne = this.nodes, le = ne.length, j = 0; j < le; j++) { + var ee = ne[j]; + J += ee.calcEstimatedSize(); + } + return J == 0 ? this.estimatedSize = x.EMPTY_COMPOUND_NODE_SIZE : this.estimatedSize = J / Math.sqrt(this.nodes.length), this.estimatedSize; + }, $.prototype.updateConnected = function() { + var J = this; + if (this.nodes.length == 0) { + this.isConnected = !0; + return; + } + var ne = new A(), le = /* @__PURE__ */ new Set(), j = this.nodes[0], ee, H, te = j.withChildren(); + for (te.forEach(function(pe) { + ne.push(pe), le.add(pe); + }); ne.length !== 0; ) { + j = ne.shift(), ee = j.getEdges(); + for (var S = ee.length, V = 0; V < S; V++) { + var R = ee[V]; + if (H = R.getOtherEndInGraph(j, this), H != null && !le.has(H)) { + var q = H.withChildren(); + q.forEach(function(pe) { + ne.push(pe), le.add(pe); + }); + } + } + } + if (this.isConnected = !1, le.size >= this.nodes.length) { + var ve = 0; + le.forEach(function(pe) { + pe.owner == J && ve++; + }), ve == this.nodes.length && (this.isConnected = !0); + } + }, _.exports = $; + }, + /* 6 */ + /***/ + function(_, fe, Q) { + var C, T = Q(1); + function x(I) { + C = Q(5), this.layout = I, this.graphs = [], this.edges = []; + } + x.prototype.addRoot = function() { + var I = this.layout.newGraph(), z = this.layout.newNode(null), Y = this.add(I, z); + return this.setRootGraph(Y), this.rootGraph; + }, x.prototype.add = function(I, z, Y, P, Z) { + if (Y == null && P == null && Z == null) { + if (I == null) + throw "Graph is null!"; + if (z == null) + throw "Parent node is null!"; + if (this.graphs.indexOf(I) > -1) + throw "Graph already in this graph mgr!"; + if (this.graphs.push(I), I.parent != null) + throw "Already has a parent!"; + if (z.child != null) + throw "Already has a child!"; + return I.parent = z, z.child = I, I; + } else { + Z = Y, P = z, Y = I; + var A = P.getOwner(), $ = Z.getOwner(); + if (!(A != null && A.getGraphManager() == this)) + throw "Source not in this graph mgr!"; + if (!($ != null && $.getGraphManager() == this)) + throw "Target not in this graph mgr!"; + if (A == $) + return Y.isInterGraph = !1, A.add(Y, P, Z); + if (Y.isInterGraph = !0, Y.source = P, Y.target = Z, this.edges.indexOf(Y) > -1) + throw "Edge already in inter-graph edge list!"; + if (this.edges.push(Y), !(Y.source != null && Y.target != null)) + throw "Edge source and/or target is null!"; + if (!(Y.source.edges.indexOf(Y) == -1 && Y.target.edges.indexOf(Y) == -1)) + throw "Edge already in source and/or target incidency list!"; + return Y.source.edges.push(Y), Y.target.edges.push(Y), Y; + } + }, x.prototype.remove = function(I) { + if (I instanceof C) { + var z = I; + if (z.getGraphManager() != this) + throw "Graph not in this graph mgr"; + if (!(z == this.rootGraph || z.parent != null && z.parent.graphManager == this)) + throw "Invalid parent node!"; + var Y = []; + Y = Y.concat(z.getEdges()); + for (var P, Z = Y.length, A = 0; A < Z; A++) + P = Y[A], z.remove(P); + var $ = []; + $ = $.concat(z.getNodes()); + var U; + Z = $.length; + for (var A = 0; A < Z; A++) + U = $[A], z.remove(U); + z == this.rootGraph && this.setRootGraph(null); + var J = this.graphs.indexOf(z); + this.graphs.splice(J, 1), z.parent = null; + } else if (I instanceof T) { + if (P = I, P == null) + throw "Edge is null!"; + if (!P.isInterGraph) + throw "Not an inter-graph edge!"; + if (!(P.source != null && P.target != null)) + throw "Source and/or target is null!"; + if (!(P.source.edges.indexOf(P) != -1 && P.target.edges.indexOf(P) != -1)) + throw "Source and/or target doesn't know this edge!"; + var J = P.source.edges.indexOf(P); + if (P.source.edges.splice(J, 1), J = P.target.edges.indexOf(P), P.target.edges.splice(J, 1), !(P.source.owner != null && P.source.owner.getGraphManager() != null)) + throw "Edge owner graph or owner graph manager is null!"; + if (P.source.owner.getGraphManager().edges.indexOf(P) == -1) + throw "Not in owner graph manager's edge list!"; + var J = P.source.owner.getGraphManager().edges.indexOf(P); + P.source.owner.getGraphManager().edges.splice(J, 1); + } + }, x.prototype.updateBounds = function() { + this.rootGraph.updateBounds(!0); + }, x.prototype.getGraphs = function() { + return this.graphs; + }, x.prototype.getAllNodes = function() { + if (this.allNodes == null) { + for (var I = [], z = this.getGraphs(), Y = z.length, P = 0; P < Y; P++) + I = I.concat(z[P].getNodes()); + this.allNodes = I; + } + return this.allNodes; + }, x.prototype.resetAllNodes = function() { + this.allNodes = null; + }, x.prototype.resetAllEdges = function() { + this.allEdges = null; + }, x.prototype.resetAllNodesToApplyGravitation = function() { + this.allNodesToApplyGravitation = null; + }, x.prototype.getAllEdges = function() { + if (this.allEdges == null) { + var I = [], z = this.getGraphs(); + z.length; + for (var Y = 0; Y < z.length; Y++) + I = I.concat(z[Y].getEdges()); + I = I.concat(this.edges), this.allEdges = I; + } + return this.allEdges; + }, x.prototype.getAllNodesToApplyGravitation = function() { + return this.allNodesToApplyGravitation; + }, x.prototype.setAllNodesToApplyGravitation = function(I) { + if (this.allNodesToApplyGravitation != null) + throw "assert failed"; + this.allNodesToApplyGravitation = I; + }, x.prototype.getRoot = function() { + return this.rootGraph; + }, x.prototype.setRootGraph = function(I) { + if (I.getGraphManager() != this) + throw "Root not in this graph mgr!"; + this.rootGraph = I, I.parent == null && (I.parent = this.layout.newNode("Root node")); + }, x.prototype.getLayout = function() { + return this.layout; + }, x.prototype.isOneAncestorOfOther = function(I, z) { + if (!(I != null && z != null)) + throw "assert failed"; + if (I == z) + return !0; + var Y = I.getOwner(), P; + do { + if (P = Y.getParent(), P == null) + break; + if (P == z) + return !0; + if (Y = P.getOwner(), Y == null) + break; + } while (!0); + Y = z.getOwner(); + do { + if (P = Y.getParent(), P == null) + break; + if (P == I) + return !0; + if (Y = P.getOwner(), Y == null) + break; + } while (!0); + return !1; + }, x.prototype.calcLowestCommonAncestors = function() { + for (var I, z, Y, P, Z, A = this.getAllEdges(), $ = A.length, U = 0; U < $; U++) { + if (I = A[U], z = I.source, Y = I.target, I.lca = null, I.sourceInLca = z, I.targetInLca = Y, z == Y) { + I.lca = z.getOwner(); + continue; + } + for (P = z.getOwner(); I.lca == null; ) { + for (I.targetInLca = Y, Z = Y.getOwner(); I.lca == null; ) { + if (Z == P) { + I.lca = Z; + break; + } + if (Z == this.rootGraph) + break; + if (I.lca != null) + throw "assert failed"; + I.targetInLca = Z.getParent(), Z = I.targetInLca.getOwner(); + } + if (P == this.rootGraph) + break; + I.lca == null && (I.sourceInLca = P.getParent(), P = I.sourceInLca.getOwner()); + } + if (I.lca == null) + throw "assert failed"; + } + }, x.prototype.calcLowestCommonAncestor = function(I, z) { + if (I == z) + return I.getOwner(); + var Y = I.getOwner(); + do { + if (Y == null) + break; + var P = z.getOwner(); + do { + if (P == null) + break; + if (P == Y) + return P; + P = P.getParent().getOwner(); + } while (!0); + Y = Y.getParent().getOwner(); + } while (!0); + return Y; + }, x.prototype.calcInclusionTreeDepths = function(I, z) { + I == null && z == null && (I = this.rootGraph, z = 1); + for (var Y, P = I.getNodes(), Z = P.length, A = 0; A < Z; A++) + Y = P[A], Y.inclusionTreeDepth = z, Y.child != null && this.calcInclusionTreeDepths(Y.child, z + 1); + }, x.prototype.includesInvalidEdge = function() { + for (var I, z = this.edges.length, Y = 0; Y < z; Y++) + if (I = this.edges[Y], this.isOneAncestorOfOther(I.source, I.target)) + return !0; + return !1; + }, _.exports = x; + }, + /* 7 */ + /***/ + function(_, fe, Q) { + var C = Q(0); + function T() { + } + for (var x in C) + T[x] = C[x]; + T.MAX_ITERATIONS = 2500, T.DEFAULT_EDGE_LENGTH = 50, T.DEFAULT_SPRING_STRENGTH = 0.45, T.DEFAULT_REPULSION_STRENGTH = 4500, T.DEFAULT_GRAVITY_STRENGTH = 0.4, T.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1, T.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8, T.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5, T.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = !0, T.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = !0, T.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3, T.COOLING_ADAPTATION_FACTOR = 0.33, T.ADAPTATION_LOWER_NODE_LIMIT = 1e3, T.ADAPTATION_UPPER_NODE_LIMIT = 5e3, T.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100, T.MAX_NODE_DISPLACEMENT = T.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3, T.MIN_REPULSION_DIST = T.DEFAULT_EDGE_LENGTH / 10, T.CONVERGENCE_CHECK_PERIOD = 100, T.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1, T.MIN_EDGE_LENGTH = 1, T.GRID_CALCULATION_CHECK_PERIOD = 10, _.exports = T; + }, + /* 8 */ + /***/ + function(_, fe, Q) { + var C = Q(12); + function T() { + } + T.calcSeparationAmount = function(x, I, z, Y) { + if (!x.intersects(I)) + throw "assert failed"; + var P = new Array(2); + this.decideDirectionsForOverlappingNodes(x, I, P), z[0] = Math.min(x.getRight(), I.getRight()) - Math.max(x.x, I.x), z[1] = Math.min(x.getBottom(), I.getBottom()) - Math.max(x.y, I.y), x.getX() <= I.getX() && x.getRight() >= I.getRight() ? z[0] += Math.min(I.getX() - x.getX(), x.getRight() - I.getRight()) : I.getX() <= x.getX() && I.getRight() >= x.getRight() && (z[0] += Math.min(x.getX() - I.getX(), I.getRight() - x.getRight())), x.getY() <= I.getY() && x.getBottom() >= I.getBottom() ? z[1] += Math.min(I.getY() - x.getY(), x.getBottom() - I.getBottom()) : I.getY() <= x.getY() && I.getBottom() >= x.getBottom() && (z[1] += Math.min(x.getY() - I.getY(), I.getBottom() - x.getBottom())); + var Z = Math.abs((I.getCenterY() - x.getCenterY()) / (I.getCenterX() - x.getCenterX())); + I.getCenterY() === x.getCenterY() && I.getCenterX() === x.getCenterX() && (Z = 1); + var A = Z * z[0], $ = z[1] / Z; + z[0] < $ ? $ = z[0] : A = z[1], z[0] = -1 * P[0] * ($ / 2 + Y), z[1] = -1 * P[1] * (A / 2 + Y); + }, T.decideDirectionsForOverlappingNodes = function(x, I, z) { + x.getCenterX() < I.getCenterX() ? z[0] = -1 : z[0] = 1, x.getCenterY() < I.getCenterY() ? z[1] = -1 : z[1] = 1; + }, T.getIntersection2 = function(x, I, z) { + var Y = x.getCenterX(), P = x.getCenterY(), Z = I.getCenterX(), A = I.getCenterY(); + if (x.intersects(I)) + return z[0] = Y, z[1] = P, z[2] = Z, z[3] = A, !0; + var $ = x.getX(), U = x.getY(), J = x.getRight(), ne = x.getX(), le = x.getBottom(), j = x.getRight(), ee = x.getWidthHalf(), H = x.getHeightHalf(), te = I.getX(), S = I.getY(), V = I.getRight(), R = I.getX(), q = I.getBottom(), ve = I.getRight(), pe = I.getWidthHalf(), Ae = I.getHeightHalf(), Ne = !1, Ye = !1; + if (Y === Z) { + if (P > A) + return z[0] = Y, z[1] = U, z[2] = Z, z[3] = q, !1; + if (P < A) + return z[0] = Y, z[1] = le, z[2] = Z, z[3] = S, !1; + } else if (P === A) { + if (Y > Z) + return z[0] = $, z[1] = P, z[2] = V, z[3] = A, !1; + if (Y < Z) + return z[0] = J, z[1] = P, z[2] = te, z[3] = A, !1; + } else { + var at = x.height / x.width, dt = I.height / I.width, Re = (A - P) / (Z - Y), Ve = void 0, Ze = void 0, nt = void 0, ht = void 0, it = void 0, tt = void 0; + if (-at === Re ? Y > Z ? (z[0] = ne, z[1] = le, Ne = !0) : (z[0] = J, z[1] = U, Ne = !0) : at === Re && (Y > Z ? (z[0] = $, z[1] = U, Ne = !0) : (z[0] = j, z[1] = le, Ne = !0)), -dt === Re ? Z > Y ? (z[2] = R, z[3] = q, Ye = !0) : (z[2] = V, z[3] = S, Ye = !0) : dt === Re && (Z > Y ? (z[2] = te, z[3] = S, Ye = !0) : (z[2] = ve, z[3] = q, Ye = !0)), Ne && Ye) + return !1; + if (Y > Z ? P > A ? (Ve = this.getCardinalDirection(at, Re, 4), Ze = this.getCardinalDirection(dt, Re, 2)) : (Ve = this.getCardinalDirection(-at, Re, 3), Ze = this.getCardinalDirection(-dt, Re, 1)) : P > A ? (Ve = this.getCardinalDirection(-at, Re, 1), Ze = this.getCardinalDirection(-dt, Re, 3)) : (Ve = this.getCardinalDirection(at, Re, 2), Ze = this.getCardinalDirection(dt, Re, 4)), !Ne) + switch (Ve) { + case 1: + ht = U, nt = Y + -H / Re, z[0] = nt, z[1] = ht; + break; + case 2: + nt = j, ht = P + ee * Re, z[0] = nt, z[1] = ht; + break; + case 3: + ht = le, nt = Y + H / Re, z[0] = nt, z[1] = ht; + break; + case 4: + nt = ne, ht = P + -ee * Re, z[0] = nt, z[1] = ht; + break; + } + if (!Ye) + switch (Ze) { + case 1: + tt = S, it = Z + -Ae / Re, z[2] = it, z[3] = tt; + break; + case 2: + it = ve, tt = A + pe * Re, z[2] = it, z[3] = tt; + break; + case 3: + tt = q, it = Z + Ae / Re, z[2] = it, z[3] = tt; + break; + case 4: + it = R, tt = A + -pe * Re, z[2] = it, z[3] = tt; + break; + } + } + return !1; + }, T.getCardinalDirection = function(x, I, z) { + return x > I ? z : 1 + z % 4; + }, T.getIntersection = function(x, I, z, Y) { + if (Y == null) + return this.getIntersection2(x, I, z); + var P = x.x, Z = x.y, A = I.x, $ = I.y, U = z.x, J = z.y, ne = Y.x, le = Y.y, j = void 0, ee = void 0, H = void 0, te = void 0, S = void 0, V = void 0, R = void 0, q = void 0, ve = void 0; + return H = $ - Z, S = P - A, R = A * Z - P * $, te = le - J, V = U - ne, q = ne * J - U * le, ve = H * V - te * S, ve === 0 ? null : (j = (S * q - V * R) / ve, ee = (te * R - H * q) / ve, new C(j, ee)); + }, T.angleOfVector = function(x, I, z, Y) { + var P = void 0; + return x !== z ? (P = Math.atan((Y - I) / (z - x)), z < x ? P += Math.PI : Y < I && (P += this.TWO_PI)) : Y < I ? P = this.ONE_AND_HALF_PI : P = this.HALF_PI, P; + }, T.doIntersect = function(x, I, z, Y) { + var P = x.x, Z = x.y, A = I.x, $ = I.y, U = z.x, J = z.y, ne = Y.x, le = Y.y, j = (A - P) * (le - J) - (ne - U) * ($ - Z); + if (j === 0) + return !1; + var ee = ((le - J) * (ne - P) + (U - ne) * (le - Z)) / j, H = ((Z - $) * (ne - P) + (A - P) * (le - Z)) / j; + return 0 < ee && ee < 1 && 0 < H && H < 1; + }, T.HALF_PI = 0.5 * Math.PI, T.ONE_AND_HALF_PI = 1.5 * Math.PI, T.TWO_PI = 2 * Math.PI, T.THREE_PI = 3 * Math.PI, _.exports = T; + }, + /* 9 */ + /***/ + function(_, fe, Q) { + function C() { + } + C.sign = function(T) { + return T > 0 ? 1 : T < 0 ? -1 : 0; + }, C.floor = function(T) { + return T < 0 ? Math.ceil(T) : Math.floor(T); + }, C.ceil = function(T) { + return T < 0 ? Math.floor(T) : Math.ceil(T); + }, _.exports = C; + }, + /* 10 */ + /***/ + function(_, fe, Q) { + function C() { + } + C.MAX_VALUE = 2147483647, C.MIN_VALUE = -2147483648, _.exports = C; + }, + /* 11 */ + /***/ + function(_, fe, Q) { + var C = function() { + function P(Z, A) { + for (var $ = 0; $ < A.length; $++) { + var U = A[$]; + U.enumerable = U.enumerable || !1, U.configurable = !0, "value" in U && (U.writable = !0), Object.defineProperty(Z, U.key, U); + } + } + return function(Z, A, $) { + return A && P(Z.prototype, A), $ && P(Z, $), Z; + }; + }(); + function T(P, Z) { + if (!(P instanceof Z)) + throw new TypeError("Cannot call a class as a function"); + } + var x = function(Z) { + return { value: Z, next: null, prev: null }; + }, I = function(Z, A, $, U) { + return Z !== null ? Z.next = A : U.head = A, $ !== null ? $.prev = A : U.tail = A, A.prev = Z, A.next = $, U.length++, A; + }, z = function(Z, A) { + var $ = Z.prev, U = Z.next; + return $ !== null ? $.next = U : A.head = U, U !== null ? U.prev = $ : A.tail = $, Z.prev = Z.next = null, A.length--, Z; + }, Y = function() { + function P(Z) { + var A = this; + T(this, P), this.length = 0, this.head = null, this.tail = null, Z != null && Z.forEach(function($) { + return A.push($); + }); + } + return C(P, [{ + key: "size", + value: function() { + return this.length; + } + }, { + key: "insertBefore", + value: function(A, $) { + return I($.prev, x(A), $, this); + } + }, { + key: "insertAfter", + value: function(A, $) { + return I($, x(A), $.next, this); + } + }, { + key: "insertNodeBefore", + value: function(A, $) { + return I($.prev, A, $, this); + } + }, { + key: "insertNodeAfter", + value: function(A, $) { + return I($, A, $.next, this); + } + }, { + key: "push", + value: function(A) { + return I(this.tail, x(A), null, this); + } + }, { + key: "unshift", + value: function(A) { + return I(null, x(A), this.head, this); + } + }, { + key: "remove", + value: function(A) { + return z(A, this); + } + }, { + key: "pop", + value: function() { + return z(this.tail, this).value; + } + }, { + key: "popNode", + value: function() { + return z(this.tail, this); + } + }, { + key: "shift", + value: function() { + return z(this.head, this).value; + } + }, { + key: "shiftNode", + value: function() { + return z(this.head, this); + } + }, { + key: "get_object_at", + value: function(A) { + if (A <= this.length()) { + for (var $ = 1, U = this.head; $ < A; ) + U = U.next, $++; + return U.value; + } + } + }, { + key: "set_object_at", + value: function(A, $) { + if (A <= this.length()) { + for (var U = 1, J = this.head; U < A; ) + J = J.next, U++; + J.value = $; + } + } + }]), P; + }(); + _.exports = Y; + }, + /* 12 */ + /***/ + function(_, fe, Q) { + function C(T, x, I) { + this.x = null, this.y = null, T == null && x == null && I == null ? (this.x = 0, this.y = 0) : typeof T == "number" && typeof x == "number" && I == null ? (this.x = T, this.y = x) : T.constructor.name == "Point" && x == null && I == null && (I = T, this.x = I.x, this.y = I.y); + } + C.prototype.getX = function() { + return this.x; + }, C.prototype.getY = function() { + return this.y; + }, C.prototype.getLocation = function() { + return new C(this.x, this.y); + }, C.prototype.setLocation = function(T, x, I) { + T.constructor.name == "Point" && x == null && I == null ? (I = T, this.setLocation(I.x, I.y)) : typeof T == "number" && typeof x == "number" && I == null && (parseInt(T) == T && parseInt(x) == x ? this.move(T, x) : (this.x = Math.floor(T + 0.5), this.y = Math.floor(x + 0.5))); + }, C.prototype.move = function(T, x) { + this.x = T, this.y = x; + }, C.prototype.translate = function(T, x) { + this.x += T, this.y += x; + }, C.prototype.equals = function(T) { + if (T.constructor.name == "Point") { + var x = T; + return this.x == x.x && this.y == x.y; + } + return this == T; + }, C.prototype.toString = function() { + return new C().constructor.name + "[x=" + this.x + ",y=" + this.y + "]"; + }, _.exports = C; + }, + /* 13 */ + /***/ + function(_, fe, Q) { + function C(T, x, I, z) { + this.x = 0, this.y = 0, this.width = 0, this.height = 0, T != null && x != null && I != null && z != null && (this.x = T, this.y = x, this.width = I, this.height = z); + } + C.prototype.getX = function() { + return this.x; + }, C.prototype.setX = function(T) { + this.x = T; + }, C.prototype.getY = function() { + return this.y; + }, C.prototype.setY = function(T) { + this.y = T; + }, C.prototype.getWidth = function() { + return this.width; + }, C.prototype.setWidth = function(T) { + this.width = T; + }, C.prototype.getHeight = function() { + return this.height; + }, C.prototype.setHeight = function(T) { + this.height = T; + }, C.prototype.getRight = function() { + return this.x + this.width; + }, C.prototype.getBottom = function() { + return this.y + this.height; + }, C.prototype.intersects = function(T) { + return !(this.getRight() < T.x || this.getBottom() < T.y || T.getRight() < this.x || T.getBottom() < this.y); + }, C.prototype.getCenterX = function() { + return this.x + this.width / 2; + }, C.prototype.getMinX = function() { + return this.getX(); + }, C.prototype.getMaxX = function() { + return this.getX() + this.width; + }, C.prototype.getCenterY = function() { + return this.y + this.height / 2; + }, C.prototype.getMinY = function() { + return this.getY(); + }, C.prototype.getMaxY = function() { + return this.getY() + this.height; + }, C.prototype.getWidthHalf = function() { + return this.width / 2; + }, C.prototype.getHeightHalf = function() { + return this.height / 2; + }, _.exports = C; + }, + /* 14 */ + /***/ + function(_, fe, Q) { + var C = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(x) { + return typeof x; + } : function(x) { + return x && typeof Symbol == "function" && x.constructor === Symbol && x !== Symbol.prototype ? "symbol" : typeof x; + }; + function T() { + } + T.lastID = 0, T.createID = function(x) { + return T.isPrimitive(x) ? x : (x.uniqueID != null || (x.uniqueID = T.getString(), T.lastID++), x.uniqueID); + }, T.getString = function(x) { + return x == null && (x = T.lastID), "Object#" + x; + }, T.isPrimitive = function(x) { + var I = typeof x > "u" ? "undefined" : C(x); + return x == null || I != "object" && I != "function"; + }, _.exports = T; + }, + /* 15 */ + /***/ + function(_, fe, Q) { + function C(U) { + if (Array.isArray(U)) { + for (var J = 0, ne = Array(U.length); J < U.length; J++) + ne[J] = U[J]; + return ne; + } else + return Array.from(U); + } + var T = Q(0), x = Q(6), I = Q(3), z = Q(1), Y = Q(5), P = Q(4), Z = Q(17), A = Q(27); + function $(U) { + A.call(this), this.layoutQuality = T.QUALITY, this.createBendsAsNeeded = T.DEFAULT_CREATE_BENDS_AS_NEEDED, this.incremental = T.DEFAULT_INCREMENTAL, this.animationOnLayout = T.DEFAULT_ANIMATION_ON_LAYOUT, this.animationDuringLayout = T.DEFAULT_ANIMATION_DURING_LAYOUT, this.animationPeriod = T.DEFAULT_ANIMATION_PERIOD, this.uniformLeafNodeSizes = T.DEFAULT_UNIFORM_LEAF_NODE_SIZES, this.edgeToDummyNodes = /* @__PURE__ */ new Map(), this.graphManager = new x(this), this.isLayoutFinished = !1, this.isSubLayout = !1, this.isRemoteUse = !1, U != null && (this.isRemoteUse = U); + } + $.RANDOM_SEED = 1, $.prototype = Object.create(A.prototype), $.prototype.getGraphManager = function() { + return this.graphManager; + }, $.prototype.getAllNodes = function() { + return this.graphManager.getAllNodes(); + }, $.prototype.getAllEdges = function() { + return this.graphManager.getAllEdges(); + }, $.prototype.getAllNodesToApplyGravitation = function() { + return this.graphManager.getAllNodesToApplyGravitation(); + }, $.prototype.newGraphManager = function() { + var U = new x(this); + return this.graphManager = U, U; + }, $.prototype.newGraph = function(U) { + return new Y(null, this.graphManager, U); + }, $.prototype.newNode = function(U) { + return new I(this.graphManager, U); + }, $.prototype.newEdge = function(U) { + return new z(null, null, U); + }, $.prototype.checkLayoutSuccess = function() { + return this.graphManager.getRoot() == null || this.graphManager.getRoot().getNodes().length == 0 || this.graphManager.includesInvalidEdge(); + }, $.prototype.runLayout = function() { + this.isLayoutFinished = !1, this.tilingPreLayout && this.tilingPreLayout(), this.initParameters(); + var U; + return this.checkLayoutSuccess() ? U = !1 : U = this.layout(), T.ANIMATE === "during" ? !1 : (U && (this.isSubLayout || this.doPostLayout()), this.tilingPostLayout && this.tilingPostLayout(), this.isLayoutFinished = !0, U); + }, $.prototype.doPostLayout = function() { + this.incremental || this.transform(), this.update(); + }, $.prototype.update2 = function() { + if (this.createBendsAsNeeded && (this.createBendpointsFromDummyNodes(), this.graphManager.resetAllEdges()), !this.isRemoteUse) { + for (var U = this.graphManager.getAllEdges(), J = 0; J < U.length; J++) + U[J]; + for (var ne = this.graphManager.getRoot().getNodes(), J = 0; J < ne.length; J++) + ne[J]; + this.update(this.graphManager.getRoot()); + } + }, $.prototype.update = function(U) { + if (U == null) + this.update2(); + else if (U instanceof I) { + var J = U; + if (J.getChild() != null) + for (var ne = J.getChild().getNodes(), le = 0; le < ne.length; le++) + update(ne[le]); + if (J.vGraphObject != null) { + var j = J.vGraphObject; + j.update(J); + } + } else if (U instanceof z) { + var ee = U; + if (ee.vGraphObject != null) { + var H = ee.vGraphObject; + H.update(ee); + } + } else if (U instanceof Y) { + var te = U; + if (te.vGraphObject != null) { + var S = te.vGraphObject; + S.update(te); + } + } + }, $.prototype.initParameters = function() { + this.isSubLayout || (this.layoutQuality = T.QUALITY, this.animationDuringLayout = T.DEFAULT_ANIMATION_DURING_LAYOUT, this.animationPeriod = T.DEFAULT_ANIMATION_PERIOD, this.animationOnLayout = T.DEFAULT_ANIMATION_ON_LAYOUT, this.incremental = T.DEFAULT_INCREMENTAL, this.createBendsAsNeeded = T.DEFAULT_CREATE_BENDS_AS_NEEDED, this.uniformLeafNodeSizes = T.DEFAULT_UNIFORM_LEAF_NODE_SIZES), this.animationDuringLayout && (this.animationOnLayout = !1); + }, $.prototype.transform = function(U) { + if (U == null) + this.transform(new P(0, 0)); + else { + var J = new Z(), ne = this.graphManager.getRoot().updateLeftTop(); + if (ne != null) { + J.setWorldOrgX(U.x), J.setWorldOrgY(U.y), J.setDeviceOrgX(ne.x), J.setDeviceOrgY(ne.y); + for (var le = this.getAllNodes(), j, ee = 0; ee < le.length; ee++) + j = le[ee], j.transform(J); + } + } + }, $.prototype.positionNodesRandomly = function(U) { + if (U == null) + this.positionNodesRandomly(this.getGraphManager().getRoot()), this.getGraphManager().getRoot().updateBounds(!0); + else + for (var J, ne, le = U.getNodes(), j = 0; j < le.length; j++) + J = le[j], ne = J.getChild(), ne == null || ne.getNodes().length == 0 ? J.scatter() : (this.positionNodesRandomly(ne), J.updateBounds()); + }, $.prototype.getFlatForest = function() { + for (var U = [], J = !0, ne = this.graphManager.getRoot().getNodes(), le = !0, j = 0; j < ne.length; j++) + ne[j].getChild() != null && (le = !1); + if (!le) + return U; + var ee = /* @__PURE__ */ new Set(), H = [], te = /* @__PURE__ */ new Map(), S = []; + for (S = S.concat(ne); S.length > 0 && J; ) { + for (H.push(S[0]); H.length > 0 && J; ) { + var V = H[0]; + H.splice(0, 1), ee.add(V); + for (var R = V.getEdges(), j = 0; j < R.length; j++) { + var q = R[j].getOtherEnd(V); + if (te.get(V) != q) + if (!ee.has(q)) + H.push(q), te.set(q, V); + else { + J = !1; + break; + } + } + } + if (!J) + U = []; + else { + var ve = [].concat(C(ee)); + U.push(ve); + for (var j = 0; j < ve.length; j++) { + var pe = ve[j], Ae = S.indexOf(pe); + Ae > -1 && S.splice(Ae, 1); + } + ee = /* @__PURE__ */ new Set(), te = /* @__PURE__ */ new Map(); + } + } + return U; + }, $.prototype.createDummyNodesForBendpoints = function(U) { + for (var J = [], ne = U.source, le = this.graphManager.calcLowestCommonAncestor(U.source, U.target), j = 0; j < U.bendpoints.length; j++) { + var ee = this.newNode(null); + ee.setRect(new Point(0, 0), new Dimension(1, 1)), le.add(ee); + var H = this.newEdge(null); + this.graphManager.add(H, ne, ee), J.add(ee), ne = ee; + } + var H = this.newEdge(null); + return this.graphManager.add(H, ne, U.target), this.edgeToDummyNodes.set(U, J), U.isInterGraph() ? this.graphManager.remove(U) : le.remove(U), J; + }, $.prototype.createBendpointsFromDummyNodes = function() { + var U = []; + U = U.concat(this.graphManager.getAllEdges()), U = [].concat(C(this.edgeToDummyNodes.keys())).concat(U); + for (var J = 0; J < U.length; J++) { + var ne = U[J]; + if (ne.bendpoints.length > 0) { + for (var le = this.edgeToDummyNodes.get(ne), j = 0; j < le.length; j++) { + var ee = le[j], H = new P(ee.getCenterX(), ee.getCenterY()), te = ne.bendpoints.get(j); + te.x = H.x, te.y = H.y, ee.getOwner().remove(ee); + } + this.graphManager.add(ne, ne.source, ne.target); + } + } + }, $.transform = function(U, J, ne, le) { + if (ne != null && le != null) { + var j = J; + if (U <= 50) { + var ee = J / ne; + j -= (J - ee) / 50 * (50 - U); + } else { + var H = J * le; + j += (H - J) / 50 * (U - 50); + } + return j; + } else { + var te, S; + return U <= 50 ? (te = 9 * J / 500, S = J / 10) : (te = 9 * J / 50, S = -8 * J), te * U + S; + } + }, $.findCenterOfTree = function(U) { + var J = []; + J = J.concat(U); + var ne = [], le = /* @__PURE__ */ new Map(), j = !1, ee = null; + (J.length == 1 || J.length == 2) && (j = !0, ee = J[0]); + for (var H = 0; H < J.length; H++) { + var te = J[H], S = te.getNeighborsList().size; + le.set(te, te.getNeighborsList().size), S == 1 && ne.push(te); + } + var V = []; + for (V = V.concat(ne); !j; ) { + var R = []; + R = R.concat(V), V = []; + for (var H = 0; H < J.length; H++) { + var te = J[H], q = J.indexOf(te); + q >= 0 && J.splice(q, 1); + var ve = te.getNeighborsList(); + ve.forEach(function(Ne) { + if (ne.indexOf(Ne) < 0) { + var Ye = le.get(Ne), at = Ye - 1; + at == 1 && V.push(Ne), le.set(Ne, at); + } + }); + } + ne = ne.concat(V), (J.length == 1 || J.length == 2) && (j = !0, ee = J[0]); + } + return ee; + }, $.prototype.setGraphManager = function(U) { + this.graphManager = U; + }, _.exports = $; + }, + /* 16 */ + /***/ + function(_, fe, Q) { + function C() { + } + C.seed = 1, C.x = 0, C.nextDouble = function() { + return C.x = Math.sin(C.seed++) * 1e4, C.x - Math.floor(C.x); + }, _.exports = C; + }, + /* 17 */ + /***/ + function(_, fe, Q) { + var C = Q(4); + function T(x, I) { + this.lworldOrgX = 0, this.lworldOrgY = 0, this.ldeviceOrgX = 0, this.ldeviceOrgY = 0, this.lworldExtX = 1, this.lworldExtY = 1, this.ldeviceExtX = 1, this.ldeviceExtY = 1; + } + T.prototype.getWorldOrgX = function() { + return this.lworldOrgX; + }, T.prototype.setWorldOrgX = function(x) { + this.lworldOrgX = x; + }, T.prototype.getWorldOrgY = function() { + return this.lworldOrgY; + }, T.prototype.setWorldOrgY = function(x) { + this.lworldOrgY = x; + }, T.prototype.getWorldExtX = function() { + return this.lworldExtX; + }, T.prototype.setWorldExtX = function(x) { + this.lworldExtX = x; + }, T.prototype.getWorldExtY = function() { + return this.lworldExtY; + }, T.prototype.setWorldExtY = function(x) { + this.lworldExtY = x; + }, T.prototype.getDeviceOrgX = function() { + return this.ldeviceOrgX; + }, T.prototype.setDeviceOrgX = function(x) { + this.ldeviceOrgX = x; + }, T.prototype.getDeviceOrgY = function() { + return this.ldeviceOrgY; + }, T.prototype.setDeviceOrgY = function(x) { + this.ldeviceOrgY = x; + }, T.prototype.getDeviceExtX = function() { + return this.ldeviceExtX; + }, T.prototype.setDeviceExtX = function(x) { + this.ldeviceExtX = x; + }, T.prototype.getDeviceExtY = function() { + return this.ldeviceExtY; + }, T.prototype.setDeviceExtY = function(x) { + this.ldeviceExtY = x; + }, T.prototype.transformX = function(x) { + var I = 0, z = this.lworldExtX; + return z != 0 && (I = this.ldeviceOrgX + (x - this.lworldOrgX) * this.ldeviceExtX / z), I; + }, T.prototype.transformY = function(x) { + var I = 0, z = this.lworldExtY; + return z != 0 && (I = this.ldeviceOrgY + (x - this.lworldOrgY) * this.ldeviceExtY / z), I; + }, T.prototype.inverseTransformX = function(x) { + var I = 0, z = this.ldeviceExtX; + return z != 0 && (I = this.lworldOrgX + (x - this.ldeviceOrgX) * this.lworldExtX / z), I; + }, T.prototype.inverseTransformY = function(x) { + var I = 0, z = this.ldeviceExtY; + return z != 0 && (I = this.lworldOrgY + (x - this.ldeviceOrgY) * this.lworldExtY / z), I; + }, T.prototype.inverseTransformPoint = function(x) { + var I = new C(this.inverseTransformX(x.x), this.inverseTransformY(x.y)); + return I; + }, _.exports = T; + }, + /* 18 */ + /***/ + function(_, fe, Q) { + function C(A) { + if (Array.isArray(A)) { + for (var $ = 0, U = Array(A.length); $ < A.length; $++) + U[$] = A[$]; + return U; + } else + return Array.from(A); + } + var T = Q(15), x = Q(7), I = Q(0), z = Q(8), Y = Q(9); + function P() { + T.call(this), this.useSmartIdealEdgeLengthCalculation = x.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION, this.idealEdgeLength = x.DEFAULT_EDGE_LENGTH, this.springConstant = x.DEFAULT_SPRING_STRENGTH, this.repulsionConstant = x.DEFAULT_REPULSION_STRENGTH, this.gravityConstant = x.DEFAULT_GRAVITY_STRENGTH, this.compoundGravityConstant = x.DEFAULT_COMPOUND_GRAVITY_STRENGTH, this.gravityRangeFactor = x.DEFAULT_GRAVITY_RANGE_FACTOR, this.compoundGravityRangeFactor = x.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR, this.displacementThresholdPerNode = 3 * x.DEFAULT_EDGE_LENGTH / 100, this.coolingFactor = x.DEFAULT_COOLING_FACTOR_INCREMENTAL, this.initialCoolingFactor = x.DEFAULT_COOLING_FACTOR_INCREMENTAL, this.totalDisplacement = 0, this.oldTotalDisplacement = 0, this.maxIterations = x.MAX_ITERATIONS; + } + P.prototype = Object.create(T.prototype); + for (var Z in T) + P[Z] = T[Z]; + P.prototype.initParameters = function() { + T.prototype.initParameters.call(this, arguments), this.totalIterations = 0, this.notAnimatedIterations = 0, this.useFRGridVariant = x.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION, this.grid = []; + }, P.prototype.calcIdealEdgeLengths = function() { + for (var A, $, U, J, ne, le, j = this.getGraphManager().getAllEdges(), ee = 0; ee < j.length; ee++) + A = j[ee], A.idealLength = this.idealEdgeLength, A.isInterGraph && (U = A.getSource(), J = A.getTarget(), ne = A.getSourceInLca().getEstimatedSize(), le = A.getTargetInLca().getEstimatedSize(), this.useSmartIdealEdgeLengthCalculation && (A.idealLength += ne + le - 2 * I.SIMPLE_NODE_SIZE), $ = A.getLca().getInclusionTreeDepth(), A.idealLength += x.DEFAULT_EDGE_LENGTH * x.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (U.getInclusionTreeDepth() + J.getInclusionTreeDepth() - 2 * $)); + }, P.prototype.initSpringEmbedder = function() { + var A = this.getAllNodes().length; + this.incremental ? (A > x.ADAPTATION_LOWER_NODE_LIMIT && (this.coolingFactor = Math.max(this.coolingFactor * x.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (A - x.ADAPTATION_LOWER_NODE_LIMIT) / (x.ADAPTATION_UPPER_NODE_LIMIT - x.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - x.COOLING_ADAPTATION_FACTOR))), this.maxNodeDisplacement = x.MAX_NODE_DISPLACEMENT_INCREMENTAL) : (A > x.ADAPTATION_LOWER_NODE_LIMIT ? this.coolingFactor = Math.max(x.COOLING_ADAPTATION_FACTOR, 1 - (A - x.ADAPTATION_LOWER_NODE_LIMIT) / (x.ADAPTATION_UPPER_NODE_LIMIT - x.ADAPTATION_LOWER_NODE_LIMIT) * (1 - x.COOLING_ADAPTATION_FACTOR)) : this.coolingFactor = 1, this.initialCoolingFactor = this.coolingFactor, this.maxNodeDisplacement = x.MAX_NODE_DISPLACEMENT), this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations), this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length, this.repulsionRange = this.calcRepulsionRange(); + }, P.prototype.calcSpringForces = function() { + for (var A = this.getAllEdges(), $, U = 0; U < A.length; U++) + $ = A[U], this.calcSpringForce($, $.idealLength); + }, P.prototype.calcRepulsionForces = function() { + var A = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !0, $ = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, U, J, ne, le, j = this.getAllNodes(), ee; + if (this.useFRGridVariant) + for (this.totalIterations % x.GRID_CALCULATION_CHECK_PERIOD == 1 && A && this.updateGrid(), ee = /* @__PURE__ */ new Set(), U = 0; U < j.length; U++) + ne = j[U], this.calculateRepulsionForceOfANode(ne, ee, A, $), ee.add(ne); + else + for (U = 0; U < j.length; U++) + for (ne = j[U], J = U + 1; J < j.length; J++) + le = j[J], ne.getOwner() == le.getOwner() && this.calcRepulsionForce(ne, le); + }, P.prototype.calcGravitationalForces = function() { + for (var A, $ = this.getAllNodesToApplyGravitation(), U = 0; U < $.length; U++) + A = $[U], this.calcGravitationalForce(A); + }, P.prototype.moveNodes = function() { + for (var A = this.getAllNodes(), $, U = 0; U < A.length; U++) + $ = A[U], $.move(); + }, P.prototype.calcSpringForce = function(A, $) { + var U = A.getSource(), J = A.getTarget(), ne, le, j, ee; + if (this.uniformLeafNodeSizes && U.getChild() == null && J.getChild() == null) + A.updateLengthSimple(); + else if (A.updateLength(), A.isOverlapingSourceAndTarget) + return; + ne = A.getLength(), ne != 0 && (le = this.springConstant * (ne - $), j = le * (A.lengthX / ne), ee = le * (A.lengthY / ne), U.springForceX += j, U.springForceY += ee, J.springForceX -= j, J.springForceY -= ee); + }, P.prototype.calcRepulsionForce = function(A, $) { + var U = A.getRect(), J = $.getRect(), ne = new Array(2), le = new Array(4), j, ee, H, te, S, V, R; + if (U.intersects(J)) { + z.calcSeparationAmount(U, J, ne, x.DEFAULT_EDGE_LENGTH / 2), V = 2 * ne[0], R = 2 * ne[1]; + var q = A.noOfChildren * $.noOfChildren / (A.noOfChildren + $.noOfChildren); + A.repulsionForceX -= q * V, A.repulsionForceY -= q * R, $.repulsionForceX += q * V, $.repulsionForceY += q * R; + } else + this.uniformLeafNodeSizes && A.getChild() == null && $.getChild() == null ? (j = J.getCenterX() - U.getCenterX(), ee = J.getCenterY() - U.getCenterY()) : (z.getIntersection(U, J, le), j = le[2] - le[0], ee = le[3] - le[1]), Math.abs(j) < x.MIN_REPULSION_DIST && (j = Y.sign(j) * x.MIN_REPULSION_DIST), Math.abs(ee) < x.MIN_REPULSION_DIST && (ee = Y.sign(ee) * x.MIN_REPULSION_DIST), H = j * j + ee * ee, te = Math.sqrt(H), S = this.repulsionConstant * A.noOfChildren * $.noOfChildren / H, V = S * j / te, R = S * ee / te, A.repulsionForceX -= V, A.repulsionForceY -= R, $.repulsionForceX += V, $.repulsionForceY += R; + }, P.prototype.calcGravitationalForce = function(A) { + var $, U, J, ne, le, j, ee, H; + $ = A.getOwner(), U = ($.getRight() + $.getLeft()) / 2, J = ($.getTop() + $.getBottom()) / 2, ne = A.getCenterX() - U, le = A.getCenterY() - J, j = Math.abs(ne) + A.getWidth() / 2, ee = Math.abs(le) + A.getHeight() / 2, A.getOwner() == this.graphManager.getRoot() ? (H = $.getEstimatedSize() * this.gravityRangeFactor, (j > H || ee > H) && (A.gravitationForceX = -this.gravityConstant * ne, A.gravitationForceY = -this.gravityConstant * le)) : (H = $.getEstimatedSize() * this.compoundGravityRangeFactor, (j > H || ee > H) && (A.gravitationForceX = -this.gravityConstant * ne * this.compoundGravityConstant, A.gravitationForceY = -this.gravityConstant * le * this.compoundGravityConstant)); + }, P.prototype.isConverged = function() { + var A, $ = !1; + return this.totalIterations > this.maxIterations / 3 && ($ = Math.abs(this.totalDisplacement - this.oldTotalDisplacement) < 2), A = this.totalDisplacement < this.totalDisplacementThreshold, this.oldTotalDisplacement = this.totalDisplacement, A || $; + }, P.prototype.animate = function() { + this.animationDuringLayout && !this.isSubLayout && (this.notAnimatedIterations == this.animationPeriod ? (this.update(), this.notAnimatedIterations = 0) : this.notAnimatedIterations++); + }, P.prototype.calcNoOfChildrenForAllNodes = function() { + for (var A, $ = this.graphManager.getAllNodes(), U = 0; U < $.length; U++) + A = $[U], A.noOfChildren = A.getNoOfChildren(); + }, P.prototype.calcGrid = function(A) { + var $ = 0, U = 0; + $ = parseInt(Math.ceil((A.getRight() - A.getLeft()) / this.repulsionRange)), U = parseInt(Math.ceil((A.getBottom() - A.getTop()) / this.repulsionRange)); + for (var J = new Array($), ne = 0; ne < $; ne++) + J[ne] = new Array(U); + for (var ne = 0; ne < $; ne++) + for (var le = 0; le < U; le++) + J[ne][le] = new Array(); + return J; + }, P.prototype.addNodeToGrid = function(A, $, U) { + var J = 0, ne = 0, le = 0, j = 0; + J = parseInt(Math.floor((A.getRect().x - $) / this.repulsionRange)), ne = parseInt(Math.floor((A.getRect().width + A.getRect().x - $) / this.repulsionRange)), le = parseInt(Math.floor((A.getRect().y - U) / this.repulsionRange)), j = parseInt(Math.floor((A.getRect().height + A.getRect().y - U) / this.repulsionRange)); + for (var ee = J; ee <= ne; ee++) + for (var H = le; H <= j; H++) + this.grid[ee][H].push(A), A.setGridCoordinates(J, ne, le, j); + }, P.prototype.updateGrid = function() { + var A, $, U = this.getAllNodes(); + for (this.grid = this.calcGrid(this.graphManager.getRoot()), A = 0; A < U.length; A++) + $ = U[A], this.addNodeToGrid($, this.graphManager.getRoot().getLeft(), this.graphManager.getRoot().getTop()); + }, P.prototype.calculateRepulsionForceOfANode = function(A, $, U, J) { + if (this.totalIterations % x.GRID_CALCULATION_CHECK_PERIOD == 1 && U || J) { + var ne = /* @__PURE__ */ new Set(); + A.surrounding = new Array(); + for (var le, j = this.grid, ee = A.startX - 1; ee < A.finishX + 2; ee++) + for (var H = A.startY - 1; H < A.finishY + 2; H++) + if (!(ee < 0 || H < 0 || ee >= j.length || H >= j[0].length)) { + for (var te = 0; te < j[ee][H].length; te++) + if (le = j[ee][H][te], !(A.getOwner() != le.getOwner() || A == le) && !$.has(le) && !ne.has(le)) { + var S = Math.abs(A.getCenterX() - le.getCenterX()) - (A.getWidth() / 2 + le.getWidth() / 2), V = Math.abs(A.getCenterY() - le.getCenterY()) - (A.getHeight() / 2 + le.getHeight() / 2); + S <= this.repulsionRange && V <= this.repulsionRange && ne.add(le); + } + } + A.surrounding = [].concat(C(ne)); + } + for (ee = 0; ee < A.surrounding.length; ee++) + this.calcRepulsionForce(A, A.surrounding[ee]); + }, P.prototype.calcRepulsionRange = function() { + return 0; + }, _.exports = P; + }, + /* 19 */ + /***/ + function(_, fe, Q) { + var C = Q(1), T = Q(7); + function x(z, Y, P) { + C.call(this, z, Y, P), this.idealLength = T.DEFAULT_EDGE_LENGTH; + } + x.prototype = Object.create(C.prototype); + for (var I in C) + x[I] = C[I]; + _.exports = x; + }, + /* 20 */ + /***/ + function(_, fe, Q) { + var C = Q(3); + function T(I, z, Y, P) { + C.call(this, I, z, Y, P), this.springForceX = 0, this.springForceY = 0, this.repulsionForceX = 0, this.repulsionForceY = 0, this.gravitationForceX = 0, this.gravitationForceY = 0, this.displacementX = 0, this.displacementY = 0, this.startX = 0, this.finishX = 0, this.startY = 0, this.finishY = 0, this.surrounding = []; + } + T.prototype = Object.create(C.prototype); + for (var x in C) + T[x] = C[x]; + T.prototype.setGridCoordinates = function(I, z, Y, P) { + this.startX = I, this.finishX = z, this.startY = Y, this.finishY = P; + }, _.exports = T; + }, + /* 21 */ + /***/ + function(_, fe, Q) { + function C(T, x) { + this.width = 0, this.height = 0, T !== null && x !== null && (this.height = x, this.width = T); + } + C.prototype.getWidth = function() { + return this.width; + }, C.prototype.setWidth = function(T) { + this.width = T; + }, C.prototype.getHeight = function() { + return this.height; + }, C.prototype.setHeight = function(T) { + this.height = T; + }, _.exports = C; + }, + /* 22 */ + /***/ + function(_, fe, Q) { + var C = Q(14); + function T() { + this.map = {}, this.keys = []; + } + T.prototype.put = function(x, I) { + var z = C.createID(x); + this.contains(z) || (this.map[z] = I, this.keys.push(x)); + }, T.prototype.contains = function(x) { + return C.createID(x), this.map[x] != null; + }, T.prototype.get = function(x) { + var I = C.createID(x); + return this.map[I]; + }, T.prototype.keySet = function() { + return this.keys; + }, _.exports = T; + }, + /* 23 */ + /***/ + function(_, fe, Q) { + var C = Q(14); + function T() { + this.set = {}; + } + T.prototype.add = function(x) { + var I = C.createID(x); + this.contains(I) || (this.set[I] = x); + }, T.prototype.remove = function(x) { + delete this.set[C.createID(x)]; + }, T.prototype.clear = function() { + this.set = {}; + }, T.prototype.contains = function(x) { + return this.set[C.createID(x)] == x; + }, T.prototype.isEmpty = function() { + return this.size() === 0; + }, T.prototype.size = function() { + return Object.keys(this.set).length; + }, T.prototype.addAllTo = function(x) { + for (var I = Object.keys(this.set), z = I.length, Y = 0; Y < z; Y++) + x.push(this.set[I[Y]]); + }, T.prototype.size = function() { + return Object.keys(this.set).length; + }, T.prototype.addAll = function(x) { + for (var I = x.length, z = 0; z < I; z++) { + var Y = x[z]; + this.add(Y); + } + }, _.exports = T; + }, + /* 24 */ + /***/ + function(_, fe, Q) { + var C = function() { + function z(Y, P) { + for (var Z = 0; Z < P.length; Z++) { + var A = P[Z]; + A.enumerable = A.enumerable || !1, A.configurable = !0, "value" in A && (A.writable = !0), Object.defineProperty(Y, A.key, A); + } + } + return function(Y, P, Z) { + return P && z(Y.prototype, P), Z && z(Y, Z), Y; + }; + }(); + function T(z, Y) { + if (!(z instanceof Y)) + throw new TypeError("Cannot call a class as a function"); + } + var x = Q(11), I = function() { + function z(Y, P) { + T(this, z), (P !== null || P !== void 0) && (this.compareFunction = this._defaultCompareFunction); + var Z = void 0; + Y instanceof x ? Z = Y.size() : Z = Y.length, this._quicksort(Y, 0, Z - 1); + } + return C(z, [{ + key: "_quicksort", + value: function(P, Z, A) { + if (Z < A) { + var $ = this._partition(P, Z, A); + this._quicksort(P, Z, $), this._quicksort(P, $ + 1, A); + } + } + }, { + key: "_partition", + value: function(P, Z, A) { + for (var $ = this._get(P, Z), U = Z, J = A; ; ) { + for (; this.compareFunction($, this._get(P, J)); ) + J--; + for (; this.compareFunction(this._get(P, U), $); ) + U++; + if (U < J) + this._swap(P, U, J), U++, J--; + else + return J; + } + } + }, { + key: "_get", + value: function(P, Z) { + return P instanceof x ? P.get_object_at(Z) : P[Z]; + } + }, { + key: "_set", + value: function(P, Z, A) { + P instanceof x ? P.set_object_at(Z, A) : P[Z] = A; + } + }, { + key: "_swap", + value: function(P, Z, A) { + var $ = this._get(P, Z); + this._set(P, Z, this._get(P, A)), this._set(P, A, $); + } + }, { + key: "_defaultCompareFunction", + value: function(P, Z) { + return Z > P; + } + }]), z; + }(); + _.exports = I; + }, + /* 25 */ + /***/ + function(_, fe, Q) { + var C = function() { + function I(z, Y) { + for (var P = 0; P < Y.length; P++) { + var Z = Y[P]; + Z.enumerable = Z.enumerable || !1, Z.configurable = !0, "value" in Z && (Z.writable = !0), Object.defineProperty(z, Z.key, Z); + } + } + return function(z, Y, P) { + return Y && I(z.prototype, Y), P && I(z, P), z; + }; + }(); + function T(I, z) { + if (!(I instanceof z)) + throw new TypeError("Cannot call a class as a function"); + } + var x = function() { + function I(z, Y) { + var P = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1, Z = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : -1, A = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : -1; + T(this, I), this.sequence1 = z, this.sequence2 = Y, this.match_score = P, this.mismatch_penalty = Z, this.gap_penalty = A, this.iMax = z.length + 1, this.jMax = Y.length + 1, this.grid = new Array(this.iMax); + for (var $ = 0; $ < this.iMax; $++) { + this.grid[$] = new Array(this.jMax); + for (var U = 0; U < this.jMax; U++) + this.grid[$][U] = 0; + } + this.tracebackGrid = new Array(this.iMax); + for (var J = 0; J < this.iMax; J++) { + this.tracebackGrid[J] = new Array(this.jMax); + for (var ne = 0; ne < this.jMax; ne++) + this.tracebackGrid[J][ne] = [null, null, null]; + } + this.alignments = [], this.score = -1, this.computeGrids(); + } + return C(I, [{ + key: "getScore", + value: function() { + return this.score; + } + }, { + key: "getAlignments", + value: function() { + return this.alignments; + } + // Main dynamic programming procedure + }, { + key: "computeGrids", + value: function() { + for (var Y = 1; Y < this.jMax; Y++) + this.grid[0][Y] = this.grid[0][Y - 1] + this.gap_penalty, this.tracebackGrid[0][Y] = [!1, !1, !0]; + for (var P = 1; P < this.iMax; P++) + this.grid[P][0] = this.grid[P - 1][0] + this.gap_penalty, this.tracebackGrid[P][0] = [!1, !0, !1]; + for (var Z = 1; Z < this.iMax; Z++) + for (var A = 1; A < this.jMax; A++) { + var $ = void 0; + this.sequence1[Z - 1] === this.sequence2[A - 1] ? $ = this.grid[Z - 1][A - 1] + this.match_score : $ = this.grid[Z - 1][A - 1] + this.mismatch_penalty; + var U = this.grid[Z - 1][A] + this.gap_penalty, J = this.grid[Z][A - 1] + this.gap_penalty, ne = [$, U, J], le = this.arrayAllMaxIndexes(ne); + this.grid[Z][A] = ne[le[0]], this.tracebackGrid[Z][A] = [le.includes(0), le.includes(1), le.includes(2)]; + } + this.score = this.grid[this.iMax - 1][this.jMax - 1]; + } + // Gets all possible valid sequence combinations + }, { + key: "alignmentTraceback", + value: function() { + var Y = []; + for (Y.push({ + pos: [this.sequence1.length, this.sequence2.length], + seq1: "", + seq2: "" + }); Y[0]; ) { + var P = Y[0], Z = this.tracebackGrid[P.pos[0]][P.pos[1]]; + Z[0] && Y.push({ + pos: [P.pos[0] - 1, P.pos[1] - 1], + seq1: this.sequence1[P.pos[0] - 1] + P.seq1, + seq2: this.sequence2[P.pos[1] - 1] + P.seq2 + }), Z[1] && Y.push({ + pos: [P.pos[0] - 1, P.pos[1]], + seq1: this.sequence1[P.pos[0] - 1] + P.seq1, + seq2: "-" + P.seq2 + }), Z[2] && Y.push({ + pos: [P.pos[0], P.pos[1] - 1], + seq1: "-" + P.seq1, + seq2: this.sequence2[P.pos[1] - 1] + P.seq2 + }), P.pos[0] === 0 && P.pos[1] === 0 && this.alignments.push({ + sequence1: P.seq1, + sequence2: P.seq2 + }), Y.shift(); + } + return this.alignments; + } + // Helper Functions + }, { + key: "getAllIndexes", + value: function(Y, P) { + for (var Z = [], A = -1; (A = Y.indexOf(P, A + 1)) !== -1; ) + Z.push(A); + return Z; + } + }, { + key: "arrayAllMaxIndexes", + value: function(Y) { + return this.getAllIndexes(Y, Math.max.apply(null, Y)); + } + }]), I; + }(); + _.exports = x; + }, + /* 26 */ + /***/ + function(_, fe, Q) { + var C = function() { + }; + C.FDLayout = Q(18), C.FDLayoutConstants = Q(7), C.FDLayoutEdge = Q(19), C.FDLayoutNode = Q(20), C.DimensionD = Q(21), C.HashMap = Q(22), C.HashSet = Q(23), C.IGeometry = Q(8), C.IMath = Q(9), C.Integer = Q(10), C.Point = Q(12), C.PointD = Q(4), C.RandomSeed = Q(16), C.RectangleD = Q(13), C.Transform = Q(17), C.UniqueIDGeneretor = Q(14), C.Quicksort = Q(24), C.LinkedList = Q(11), C.LGraphObject = Q(2), C.LGraph = Q(5), C.LEdge = Q(1), C.LGraphManager = Q(6), C.LNode = Q(3), C.Layout = Q(15), C.LayoutConstants = Q(0), C.NeedlemanWunsch = Q(25), _.exports = C; + }, + /* 27 */ + /***/ + function(_, fe, Q) { + function C() { + this.listeners = []; + } + var T = C.prototype; + T.addListener = function(x, I) { + this.listeners.push({ + event: x, + callback: I + }); + }, T.removeListener = function(x, I) { + for (var z = this.listeners.length; z >= 0; z--) { + var Y = this.listeners[z]; + Y.event === x && Y.callback === I && this.listeners.splice(z, 1); + } + }, T.emit = function(x, I) { + for (var z = 0; z < this.listeners.length; z++) { + var Y = this.listeners[z]; + x === Y.event && Y.callback(I); + } + }, _.exports = C; + } + /******/ + ]) + ); + }); + }(Zi)), Zi.exports; +} +var Ul; +function zp() { + return Ul || (Ul = 1, function(de, Pe) { + (function(fe, Q) { + de.exports = Q(Gp()); + })(Ca, function(_) { + return ( + /******/ + function(fe) { + var Q = {}; + function C(T) { + if (Q[T]) + return Q[T].exports; + var x = Q[T] = { + /******/ + i: T, + /******/ + l: !1, + /******/ + exports: {} + /******/ + }; + return fe[T].call(x.exports, x, x.exports, C), x.l = !0, x.exports; + } + return C.m = fe, C.c = Q, C.i = function(T) { + return T; + }, C.d = function(T, x, I) { + C.o(T, x) || Object.defineProperty(T, x, { + /******/ + configurable: !1, + /******/ + enumerable: !0, + /******/ + get: I + /******/ + }); + }, C.n = function(T) { + var x = T && T.__esModule ? ( + /******/ + function() { + return T.default; + } + ) : ( + /******/ + function() { + return T; + } + ); + return C.d(x, "a", x), x; + }, C.o = function(T, x) { + return Object.prototype.hasOwnProperty.call(T, x); + }, C.p = "", C(C.s = 7); + }([ + /* 0 */ + /***/ + function(fe, Q) { + fe.exports = _; + }, + /* 1 */ + /***/ + function(fe, Q, C) { + var T = C(0).FDLayoutConstants; + function x() { + } + for (var I in T) + x[I] = T[I]; + x.DEFAULT_USE_MULTI_LEVEL_SCALING = !1, x.DEFAULT_RADIAL_SEPARATION = T.DEFAULT_EDGE_LENGTH, x.DEFAULT_COMPONENT_SEPERATION = 60, x.TILE = !0, x.TILING_PADDING_VERTICAL = 10, x.TILING_PADDING_HORIZONTAL = 10, x.TREE_REDUCTION_ON_INCREMENTAL = !1, fe.exports = x; + }, + /* 2 */ + /***/ + function(fe, Q, C) { + var T = C(0).FDLayoutEdge; + function x(z, Y, P) { + T.call(this, z, Y, P); + } + x.prototype = Object.create(T.prototype); + for (var I in T) + x[I] = T[I]; + fe.exports = x; + }, + /* 3 */ + /***/ + function(fe, Q, C) { + var T = C(0).LGraph; + function x(z, Y, P) { + T.call(this, z, Y, P); + } + x.prototype = Object.create(T.prototype); + for (var I in T) + x[I] = T[I]; + fe.exports = x; + }, + /* 4 */ + /***/ + function(fe, Q, C) { + var T = C(0).LGraphManager; + function x(z) { + T.call(this, z); + } + x.prototype = Object.create(T.prototype); + for (var I in T) + x[I] = T[I]; + fe.exports = x; + }, + /* 5 */ + /***/ + function(fe, Q, C) { + var T = C(0).FDLayoutNode, x = C(0).IMath; + function I(Y, P, Z, A) { + T.call(this, Y, P, Z, A); + } + I.prototype = Object.create(T.prototype); + for (var z in T) + I[z] = T[z]; + I.prototype.move = function() { + var Y = this.graphManager.getLayout(); + this.displacementX = Y.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren, this.displacementY = Y.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren, Math.abs(this.displacementX) > Y.coolingFactor * Y.maxNodeDisplacement && (this.displacementX = Y.coolingFactor * Y.maxNodeDisplacement * x.sign(this.displacementX)), Math.abs(this.displacementY) > Y.coolingFactor * Y.maxNodeDisplacement && (this.displacementY = Y.coolingFactor * Y.maxNodeDisplacement * x.sign(this.displacementY)), this.child == null ? this.moveBy(this.displacementX, this.displacementY) : this.child.getNodes().length == 0 ? this.moveBy(this.displacementX, this.displacementY) : this.propogateDisplacementToChildren(this.displacementX, this.displacementY), Y.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY), this.springForceX = 0, this.springForceY = 0, this.repulsionForceX = 0, this.repulsionForceY = 0, this.gravitationForceX = 0, this.gravitationForceY = 0, this.displacementX = 0, this.displacementY = 0; + }, I.prototype.propogateDisplacementToChildren = function(Y, P) { + for (var Z = this.getChild().getNodes(), A, $ = 0; $ < Z.length; $++) + A = Z[$], A.getChild() == null ? (A.moveBy(Y, P), A.displacementX += Y, A.displacementY += P) : A.propogateDisplacementToChildren(Y, P); + }, I.prototype.setPred1 = function(Y) { + this.pred1 = Y; + }, I.prototype.getPred1 = function() { + return pred1; + }, I.prototype.getPred2 = function() { + return pred2; + }, I.prototype.setNext = function(Y) { + this.next = Y; + }, I.prototype.getNext = function() { + return next; + }, I.prototype.setProcessed = function(Y) { + this.processed = Y; + }, I.prototype.isProcessed = function() { + return processed; + }, fe.exports = I; + }, + /* 6 */ + /***/ + function(fe, Q, C) { + var T = C(0).FDLayout, x = C(4), I = C(3), z = C(5), Y = C(2), P = C(1), Z = C(0).FDLayoutConstants, A = C(0).LayoutConstants, $ = C(0).Point, U = C(0).PointD, J = C(0).Layout, ne = C(0).Integer, le = C(0).IGeometry, j = C(0).LGraph, ee = C(0).Transform; + function H() { + T.call(this), this.toBeTiled = {}; + } + H.prototype = Object.create(T.prototype); + for (var te in T) + H[te] = T[te]; + H.prototype.newGraphManager = function() { + var S = new x(this); + return this.graphManager = S, S; + }, H.prototype.newGraph = function(S) { + return new I(null, this.graphManager, S); + }, H.prototype.newNode = function(S) { + return new z(this.graphManager, S); + }, H.prototype.newEdge = function(S) { + return new Y(null, null, S); + }, H.prototype.initParameters = function() { + T.prototype.initParameters.call(this, arguments), this.isSubLayout || (P.DEFAULT_EDGE_LENGTH < 10 ? this.idealEdgeLength = 10 : this.idealEdgeLength = P.DEFAULT_EDGE_LENGTH, this.useSmartIdealEdgeLengthCalculation = P.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION, this.springConstant = Z.DEFAULT_SPRING_STRENGTH, this.repulsionConstant = Z.DEFAULT_REPULSION_STRENGTH, this.gravityConstant = Z.DEFAULT_GRAVITY_STRENGTH, this.compoundGravityConstant = Z.DEFAULT_COMPOUND_GRAVITY_STRENGTH, this.gravityRangeFactor = Z.DEFAULT_GRAVITY_RANGE_FACTOR, this.compoundGravityRangeFactor = Z.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR, this.prunedNodesAll = [], this.growTreeIterations = 0, this.afterGrowthIterations = 0, this.isTreeGrowing = !1, this.isGrowthFinished = !1, this.coolingCycle = 0, this.maxCoolingCycle = this.maxIterations / Z.CONVERGENCE_CHECK_PERIOD, this.finalTemperature = Z.CONVERGENCE_CHECK_PERIOD / this.maxIterations, this.coolingAdjuster = 1); + }, H.prototype.layout = function() { + var S = A.DEFAULT_CREATE_BENDS_AS_NEEDED; + return S && (this.createBendpoints(), this.graphManager.resetAllEdges()), this.level = 0, this.classicLayout(); + }, H.prototype.classicLayout = function() { + if (this.nodesWithGravity = this.calculateNodesToApplyGravitationTo(), this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity), this.calcNoOfChildrenForAllNodes(), this.graphManager.calcLowestCommonAncestors(), this.graphManager.calcInclusionTreeDepths(), this.graphManager.getRoot().calcEstimatedSize(), this.calcIdealEdgeLengths(), this.incremental) { + if (P.TREE_REDUCTION_ON_INCREMENTAL) { + this.reduceTrees(), this.graphManager.resetAllNodesToApplyGravitation(); + var V = new Set(this.getAllNodes()), R = this.nodesWithGravity.filter(function(pe) { + return V.has(pe); + }); + this.graphManager.setAllNodesToApplyGravitation(R); + } + } else { + var S = this.getFlatForest(); + if (S.length > 0) + this.positionNodesRadially(S); + else { + this.reduceTrees(), this.graphManager.resetAllNodesToApplyGravitation(); + var V = new Set(this.getAllNodes()), R = this.nodesWithGravity.filter(function(q) { + return V.has(q); + }); + this.graphManager.setAllNodesToApplyGravitation(R), this.positionNodesRandomly(); + } + } + return this.initSpringEmbedder(), this.runSpringEmbedder(), !0; + }, H.prototype.tick = function() { + if (this.totalIterations++, this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) + if (this.prunedNodesAll.length > 0) + this.isTreeGrowing = !0; + else + return !0; + if (this.totalIterations % Z.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) { + if (this.isConverged()) + if (this.prunedNodesAll.length > 0) + this.isTreeGrowing = !0; + else + return !0; + this.coolingCycle++, this.layoutQuality == 0 ? this.coolingAdjuster = this.coolingCycle : this.layoutQuality == 1 && (this.coolingAdjuster = this.coolingCycle / 3), this.coolingFactor = Math.max(this.initialCoolingFactor - Math.pow(this.coolingCycle, Math.log(100 * (this.initialCoolingFactor - this.finalTemperature)) / Math.log(this.maxCoolingCycle)) / 100 * this.coolingAdjuster, this.finalTemperature), this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor)); + } + if (this.isTreeGrowing) { + if (this.growTreeIterations % 10 == 0) + if (this.prunedNodesAll.length > 0) { + this.graphManager.updateBounds(), this.updateGrid(), this.growTree(this.prunedNodesAll), this.graphManager.resetAllNodesToApplyGravitation(); + var S = new Set(this.getAllNodes()), V = this.nodesWithGravity.filter(function(ve) { + return S.has(ve); + }); + this.graphManager.setAllNodesToApplyGravitation(V), this.graphManager.updateBounds(), this.updateGrid(), this.coolingFactor = Z.DEFAULT_COOLING_FACTOR_INCREMENTAL; + } else + this.isTreeGrowing = !1, this.isGrowthFinished = !0; + this.growTreeIterations++; + } + if (this.isGrowthFinished) { + if (this.isConverged()) + return !0; + this.afterGrowthIterations % 10 == 0 && (this.graphManager.updateBounds(), this.updateGrid()), this.coolingFactor = Z.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100), this.afterGrowthIterations++; + } + var R = !this.isTreeGrowing && !this.isGrowthFinished, q = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished; + return this.totalDisplacement = 0, this.graphManager.updateBounds(), this.calcSpringForces(), this.calcRepulsionForces(R, q), this.calcGravitationalForces(), this.moveNodes(), this.animate(), !1; + }, H.prototype.getPositionsData = function() { + for (var S = this.graphManager.getAllNodes(), V = {}, R = 0; R < S.length; R++) { + var q = S[R].rect, ve = S[R].id; + V[ve] = { + id: ve, + x: q.getCenterX(), + y: q.getCenterY(), + w: q.width, + h: q.height + }; + } + return V; + }, H.prototype.runSpringEmbedder = function() { + this.initialAnimationPeriod = 25, this.animationPeriod = this.initialAnimationPeriod; + var S = !1; + if (Z.ANIMATE === "during") + this.emit("layoutstarted"); + else { + for (; !S; ) + S = this.tick(); + this.graphManager.updateBounds(); + } + }, H.prototype.calculateNodesToApplyGravitationTo = function() { + var S = [], V, R = this.graphManager.getGraphs(), q = R.length, ve; + for (ve = 0; ve < q; ve++) + V = R[ve], V.updateConnected(), V.isConnected || (S = S.concat(V.getNodes())); + return S; + }, H.prototype.createBendpoints = function() { + var S = []; + S = S.concat(this.graphManager.getAllEdges()); + var V = /* @__PURE__ */ new Set(), R; + for (R = 0; R < S.length; R++) { + var q = S[R]; + if (!V.has(q)) { + var ve = q.getSource(), pe = q.getTarget(); + if (ve == pe) + q.getBendpoints().push(new U()), q.getBendpoints().push(new U()), this.createDummyNodesForBendpoints(q), V.add(q); + else { + var Ae = []; + if (Ae = Ae.concat(ve.getEdgeListToNode(pe)), Ae = Ae.concat(pe.getEdgeListToNode(ve)), !V.has(Ae[0])) { + if (Ae.length > 1) { + var Ne; + for (Ne = 0; Ne < Ae.length; Ne++) { + var Ye = Ae[Ne]; + Ye.getBendpoints().push(new U()), this.createDummyNodesForBendpoints(Ye); + } + } + Ae.forEach(function(at) { + V.add(at); + }); + } + } + } + if (V.size == S.length) + break; + } + }, H.prototype.positionNodesRadially = function(S) { + for (var V = new $(0, 0), R = Math.ceil(Math.sqrt(S.length)), q = 0, ve = 0, pe = 0, Ae = new U(0, 0), Ne = 0; Ne < S.length; Ne++) { + Ne % R == 0 && (pe = 0, ve = q, Ne != 0 && (ve += P.DEFAULT_COMPONENT_SEPERATION), q = 0); + var Ye = S[Ne], at = J.findCenterOfTree(Ye); + V.x = pe, V.y = ve, Ae = H.radialLayout(Ye, at, V), Ae.y > q && (q = Math.floor(Ae.y)), pe = Math.floor(Ae.x + P.DEFAULT_COMPONENT_SEPERATION); + } + this.transform(new U(A.WORLD_CENTER_X - Ae.x / 2, A.WORLD_CENTER_Y - Ae.y / 2)); + }, H.radialLayout = function(S, V, R) { + var q = Math.max(this.maxDiagonalInTree(S), P.DEFAULT_RADIAL_SEPARATION); + H.branchRadialLayout(V, null, 0, 359, 0, q); + var ve = j.calculateBounds(S), pe = new ee(); + pe.setDeviceOrgX(ve.getMinX()), pe.setDeviceOrgY(ve.getMinY()), pe.setWorldOrgX(R.x), pe.setWorldOrgY(R.y); + for (var Ae = 0; Ae < S.length; Ae++) { + var Ne = S[Ae]; + Ne.transform(pe); + } + var Ye = new U(ve.getMaxX(), ve.getMaxY()); + return pe.inverseTransformPoint(Ye); + }, H.branchRadialLayout = function(S, V, R, q, ve, pe) { + var Ae = (q - R + 1) / 2; + Ae < 0 && (Ae += 180); + var Ne = (Ae + R) % 360, Ye = Ne * le.TWO_PI / 360, at = ve * Math.cos(Ye), dt = ve * Math.sin(Ye); + S.setCenter(at, dt); + var Re = []; + Re = Re.concat(S.getEdges()); + var Ve = Re.length; + V != null && Ve--; + for (var Ze = 0, nt = Re.length, ht, it = S.getEdgesBetween(V); it.length > 1; ) { + var tt = it[0]; + it.splice(0, 1); + var yt = Re.indexOf(tt); + yt >= 0 && Re.splice(yt, 1), nt--, Ve--; + } + V != null ? ht = (Re.indexOf(it[0]) + 1) % nt : ht = 0; + for (var Et = Math.abs(q - R) / Ve, Pt = ht; Ze != Ve; Pt = ++Pt % nt) { + var gt = Re[Pt].getOtherEnd(S); + if (gt != V) { + var dr = (R + Ze * Et) % 360, qt = (dr + Et) % 360; + H.branchRadialLayout(gt, S, dr, qt, ve + pe, pe), Ze++; + } + } + }, H.maxDiagonalInTree = function(S) { + for (var V = ne.MIN_VALUE, R = 0; R < S.length; R++) { + var q = S[R], ve = q.getDiagonal(); + ve > V && (V = ve); + } + return V; + }, H.prototype.calcRepulsionRange = function() { + return 2 * (this.level + 1) * this.idealEdgeLength; + }, H.prototype.groupZeroDegreeMembers = function() { + var S = this, V = {}; + this.memberGroups = {}, this.idToDummyNode = {}; + for (var R = [], q = this.graphManager.getAllNodes(), ve = 0; ve < q.length; ve++) { + var pe = q[ve], Ae = pe.getParent(); + this.getNodeDegreeWithChildren(pe) === 0 && (Ae.id == null || !this.getToBeTiled(Ae)) && R.push(pe); + } + for (var ve = 0; ve < R.length; ve++) { + var pe = R[ve], Ne = pe.getParent().id; + typeof V[Ne] > "u" && (V[Ne] = []), V[Ne] = V[Ne].concat(pe); + } + Object.keys(V).forEach(function(Ye) { + if (V[Ye].length > 1) { + var at = "DummyCompound_" + Ye; + S.memberGroups[at] = V[Ye]; + var dt = V[Ye][0].getParent(), Re = new z(S.graphManager); + Re.id = at, Re.paddingLeft = dt.paddingLeft || 0, Re.paddingRight = dt.paddingRight || 0, Re.paddingBottom = dt.paddingBottom || 0, Re.paddingTop = dt.paddingTop || 0, S.idToDummyNode[at] = Re; + var Ve = S.getGraphManager().add(S.newGraph(), Re), Ze = dt.getChild(); + Ze.add(Re); + for (var nt = 0; nt < V[Ye].length; nt++) { + var ht = V[Ye][nt]; + Ze.remove(ht), Ve.add(ht); + } + } + }); + }, H.prototype.clearCompounds = function() { + var S = {}, V = {}; + this.performDFSOnCompounds(); + for (var R = 0; R < this.compoundOrder.length; R++) + V[this.compoundOrder[R].id] = this.compoundOrder[R], S[this.compoundOrder[R].id] = [].concat(this.compoundOrder[R].getChild().getNodes()), this.graphManager.remove(this.compoundOrder[R].getChild()), this.compoundOrder[R].child = null; + this.graphManager.resetAllNodes(), this.tileCompoundMembers(S, V); + }, H.prototype.clearZeroDegreeMembers = function() { + var S = this, V = this.tiledZeroDegreePack = []; + Object.keys(this.memberGroups).forEach(function(R) { + var q = S.idToDummyNode[R]; + V[R] = S.tileNodes(S.memberGroups[R], q.paddingLeft + q.paddingRight), q.rect.width = V[R].width, q.rect.height = V[R].height; + }); + }, H.prototype.repopulateCompounds = function() { + for (var S = this.compoundOrder.length - 1; S >= 0; S--) { + var V = this.compoundOrder[S], R = V.id, q = V.paddingLeft, ve = V.paddingTop; + this.adjustLocations(this.tiledMemberPack[R], V.rect.x, V.rect.y, q, ve); + } + }, H.prototype.repopulateZeroDegreeMembers = function() { + var S = this, V = this.tiledZeroDegreePack; + Object.keys(V).forEach(function(R) { + var q = S.idToDummyNode[R], ve = q.paddingLeft, pe = q.paddingTop; + S.adjustLocations(V[R], q.rect.x, q.rect.y, ve, pe); + }); + }, H.prototype.getToBeTiled = function(S) { + var V = S.id; + if (this.toBeTiled[V] != null) + return this.toBeTiled[V]; + var R = S.getChild(); + if (R == null) + return this.toBeTiled[V] = !1, !1; + for (var q = R.getNodes(), ve = 0; ve < q.length; ve++) { + var pe = q[ve]; + if (this.getNodeDegree(pe) > 0) + return this.toBeTiled[V] = !1, !1; + if (pe.getChild() == null) { + this.toBeTiled[pe.id] = !1; + continue; + } + if (!this.getToBeTiled(pe)) + return this.toBeTiled[V] = !1, !1; + } + return this.toBeTiled[V] = !0, !0; + }, H.prototype.getNodeDegree = function(S) { + S.id; + for (var V = S.getEdges(), R = 0, q = 0; q < V.length; q++) { + var ve = V[q]; + ve.getSource().id !== ve.getTarget().id && (R = R + 1); + } + return R; + }, H.prototype.getNodeDegreeWithChildren = function(S) { + var V = this.getNodeDegree(S); + if (S.getChild() == null) + return V; + for (var R = S.getChild().getNodes(), q = 0; q < R.length; q++) { + var ve = R[q]; + V += this.getNodeDegreeWithChildren(ve); + } + return V; + }, H.prototype.performDFSOnCompounds = function() { + this.compoundOrder = [], this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes()); + }, H.prototype.fillCompexOrderByDFS = function(S) { + for (var V = 0; V < S.length; V++) { + var R = S[V]; + R.getChild() != null && this.fillCompexOrderByDFS(R.getChild().getNodes()), this.getToBeTiled(R) && this.compoundOrder.push(R); + } + }, H.prototype.adjustLocations = function(S, V, R, q, ve) { + V += q, R += ve; + for (var pe = V, Ae = 0; Ae < S.rows.length; Ae++) { + var Ne = S.rows[Ae]; + V = pe; + for (var Ye = 0, at = 0; at < Ne.length; at++) { + var dt = Ne[at]; + dt.rect.x = V, dt.rect.y = R, V += dt.rect.width + S.horizontalPadding, dt.rect.height > Ye && (Ye = dt.rect.height); + } + R += Ye + S.verticalPadding; + } + }, H.prototype.tileCompoundMembers = function(S, V) { + var R = this; + this.tiledMemberPack = [], Object.keys(S).forEach(function(q) { + var ve = V[q]; + R.tiledMemberPack[q] = R.tileNodes(S[q], ve.paddingLeft + ve.paddingRight), ve.rect.width = R.tiledMemberPack[q].width, ve.rect.height = R.tiledMemberPack[q].height; + }); + }, H.prototype.tileNodes = function(S, V) { + var R = P.TILING_PADDING_VERTICAL, q = P.TILING_PADDING_HORIZONTAL, ve = { + rows: [], + rowWidth: [], + rowHeight: [], + width: 0, + height: V, + // assume minHeight equals to minWidth + verticalPadding: R, + horizontalPadding: q + }; + S.sort(function(Ne, Ye) { + return Ne.rect.width * Ne.rect.height > Ye.rect.width * Ye.rect.height ? -1 : Ne.rect.width * Ne.rect.height < Ye.rect.width * Ye.rect.height ? 1 : 0; + }); + for (var pe = 0; pe < S.length; pe++) { + var Ae = S[pe]; + ve.rows.length == 0 ? this.insertNodeToRow(ve, Ae, 0, V) : this.canAddHorizontal(ve, Ae.rect.width, Ae.rect.height) ? this.insertNodeToRow(ve, Ae, this.getShortestRowIndex(ve), V) : this.insertNodeToRow(ve, Ae, ve.rows.length, V), this.shiftToLastRow(ve); + } + return ve; + }, H.prototype.insertNodeToRow = function(S, V, R, q) { + var ve = q; + if (R == S.rows.length) { + var pe = []; + S.rows.push(pe), S.rowWidth.push(ve), S.rowHeight.push(0); + } + var Ae = S.rowWidth[R] + V.rect.width; + S.rows[R].length > 0 && (Ae += S.horizontalPadding), S.rowWidth[R] = Ae, S.width < Ae && (S.width = Ae); + var Ne = V.rect.height; + R > 0 && (Ne += S.verticalPadding); + var Ye = 0; + Ne > S.rowHeight[R] && (Ye = S.rowHeight[R], S.rowHeight[R] = Ne, Ye = S.rowHeight[R] - Ye), S.height += Ye, S.rows[R].push(V); + }, H.prototype.getShortestRowIndex = function(S) { + for (var V = -1, R = Number.MAX_VALUE, q = 0; q < S.rows.length; q++) + S.rowWidth[q] < R && (V = q, R = S.rowWidth[q]); + return V; + }, H.prototype.getLongestRowIndex = function(S) { + for (var V = -1, R = Number.MIN_VALUE, q = 0; q < S.rows.length; q++) + S.rowWidth[q] > R && (V = q, R = S.rowWidth[q]); + return V; + }, H.prototype.canAddHorizontal = function(S, V, R) { + var q = this.getShortestRowIndex(S); + if (q < 0) + return !0; + var ve = S.rowWidth[q]; + if (ve + S.horizontalPadding + V <= S.width) + return !0; + var pe = 0; + S.rowHeight[q] < R && q > 0 && (pe = R + S.verticalPadding - S.rowHeight[q]); + var Ae; + S.width - ve >= V + S.horizontalPadding ? Ae = (S.height + pe) / (ve + V + S.horizontalPadding) : Ae = (S.height + pe) / S.width, pe = R + S.verticalPadding; + var Ne; + return S.width < V ? Ne = (S.height + pe) / V : Ne = (S.height + pe) / S.width, Ne < 1 && (Ne = 1 / Ne), Ae < 1 && (Ae = 1 / Ae), Ae < Ne; + }, H.prototype.shiftToLastRow = function(S) { + var V = this.getLongestRowIndex(S), R = S.rowWidth.length - 1, q = S.rows[V], ve = q[q.length - 1], pe = ve.width + S.horizontalPadding; + if (S.width - S.rowWidth[R] > pe && V != R) { + q.splice(-1, 1), S.rows[R].push(ve), S.rowWidth[V] = S.rowWidth[V] - pe, S.rowWidth[R] = S.rowWidth[R] + pe, S.width = S.rowWidth[instance.getLongestRowIndex(S)]; + for (var Ae = Number.MIN_VALUE, Ne = 0; Ne < q.length; Ne++) + q[Ne].height > Ae && (Ae = q[Ne].height); + V > 0 && (Ae += S.verticalPadding); + var Ye = S.rowHeight[V] + S.rowHeight[R]; + S.rowHeight[V] = Ae, S.rowHeight[R] < ve.height + S.verticalPadding && (S.rowHeight[R] = ve.height + S.verticalPadding); + var at = S.rowHeight[V] + S.rowHeight[R]; + S.height += at - Ye, this.shiftToLastRow(S); + } + }, H.prototype.tilingPreLayout = function() { + P.TILE && (this.groupZeroDegreeMembers(), this.clearCompounds(), this.clearZeroDegreeMembers()); + }, H.prototype.tilingPostLayout = function() { + P.TILE && (this.repopulateZeroDegreeMembers(), this.repopulateCompounds()); + }, H.prototype.reduceTrees = function() { + for (var S = [], V = !0, R; V; ) { + var q = this.graphManager.getAllNodes(), ve = []; + V = !1; + for (var pe = 0; pe < q.length; pe++) + R = q[pe], R.getEdges().length == 1 && !R.getEdges()[0].isInterGraph && R.getChild() == null && (ve.push([R, R.getEdges()[0], R.getOwner()]), V = !0); + if (V == !0) { + for (var Ae = [], Ne = 0; Ne < ve.length; Ne++) + ve[Ne][0].getEdges().length == 1 && (Ae.push(ve[Ne]), ve[Ne][0].getOwner().remove(ve[Ne][0])); + S.push(Ae), this.graphManager.resetAllNodes(), this.graphManager.resetAllEdges(); + } + } + this.prunedNodesAll = S; + }, H.prototype.growTree = function(S) { + for (var V = S.length, R = S[V - 1], q, ve = 0; ve < R.length; ve++) + q = R[ve], this.findPlaceforPrunedNode(q), q[2].add(q[0]), q[2].add(q[1], q[1].source, q[1].target); + S.splice(S.length - 1, 1), this.graphManager.resetAllNodes(), this.graphManager.resetAllEdges(); + }, H.prototype.findPlaceforPrunedNode = function(S) { + var V, R, q = S[0]; + q == S[1].source ? R = S[1].target : R = S[1].source; + var ve = R.startX, pe = R.finishX, Ae = R.startY, Ne = R.finishY, Ye = 0, at = 0, dt = 0, Re = 0, Ve = [Ye, dt, at, Re]; + if (Ae > 0) + for (var Ze = ve; Ze <= pe; Ze++) + Ve[0] += this.grid[Ze][Ae - 1].length + this.grid[Ze][Ae].length - 1; + if (pe < this.grid.length - 1) + for (var Ze = Ae; Ze <= Ne; Ze++) + Ve[1] += this.grid[pe + 1][Ze].length + this.grid[pe][Ze].length - 1; + if (Ne < this.grid[0].length - 1) + for (var Ze = ve; Ze <= pe; Ze++) + Ve[2] += this.grid[Ze][Ne + 1].length + this.grid[Ze][Ne].length - 1; + if (ve > 0) + for (var Ze = Ae; Ze <= Ne; Ze++) + Ve[3] += this.grid[ve - 1][Ze].length + this.grid[ve][Ze].length - 1; + for (var nt = ne.MAX_VALUE, ht, it, tt = 0; tt < Ve.length; tt++) + Ve[tt] < nt ? (nt = Ve[tt], ht = 1, it = tt) : Ve[tt] == nt && ht++; + if (ht == 3 && nt == 0) + Ve[0] == 0 && Ve[1] == 0 && Ve[2] == 0 ? V = 1 : Ve[0] == 0 && Ve[1] == 0 && Ve[3] == 0 ? V = 0 : Ve[0] == 0 && Ve[2] == 0 && Ve[3] == 0 ? V = 3 : Ve[1] == 0 && Ve[2] == 0 && Ve[3] == 0 && (V = 2); + else if (ht == 2 && nt == 0) { + var yt = Math.floor(Math.random() * 2); + Ve[0] == 0 && Ve[1] == 0 ? yt == 0 ? V = 0 : V = 1 : Ve[0] == 0 && Ve[2] == 0 ? yt == 0 ? V = 0 : V = 2 : Ve[0] == 0 && Ve[3] == 0 ? yt == 0 ? V = 0 : V = 3 : Ve[1] == 0 && Ve[2] == 0 ? yt == 0 ? V = 1 : V = 2 : Ve[1] == 0 && Ve[3] == 0 ? yt == 0 ? V = 1 : V = 3 : yt == 0 ? V = 2 : V = 3; + } else if (ht == 4 && nt == 0) { + var yt = Math.floor(Math.random() * 4); + V = yt; + } else + V = it; + V == 0 ? q.setCenter(R.getCenterX(), R.getCenterY() - R.getHeight() / 2 - Z.DEFAULT_EDGE_LENGTH - q.getHeight() / 2) : V == 1 ? q.setCenter(R.getCenterX() + R.getWidth() / 2 + Z.DEFAULT_EDGE_LENGTH + q.getWidth() / 2, R.getCenterY()) : V == 2 ? q.setCenter(R.getCenterX(), R.getCenterY() + R.getHeight() / 2 + Z.DEFAULT_EDGE_LENGTH + q.getHeight() / 2) : q.setCenter(R.getCenterX() - R.getWidth() / 2 - Z.DEFAULT_EDGE_LENGTH - q.getWidth() / 2, R.getCenterY()); + }, fe.exports = H; + }, + /* 7 */ + /***/ + function(fe, Q, C) { + var T = {}; + T.layoutBase = C(0), T.CoSEConstants = C(1), T.CoSEEdge = C(2), T.CoSEGraph = C(3), T.CoSEGraphManager = C(4), T.CoSELayout = C(6), T.CoSENode = C(5), fe.exports = T; + } + /******/ + ]) + ); + }); + }(Ki)), Ki.exports; +} +(function(de, Pe) { + (function(fe, Q) { + de.exports = Q(zp()); + })(Ca, function(_) { + return ( + /******/ + function(fe) { + var Q = {}; + function C(T) { + if (Q[T]) + return Q[T].exports; + var x = Q[T] = { + /******/ + i: T, + /******/ + l: !1, + /******/ + exports: {} + /******/ + }; + return fe[T].call(x.exports, x, x.exports, C), x.l = !0, x.exports; + } + return C.m = fe, C.c = Q, C.i = function(T) { + return T; + }, C.d = function(T, x, I) { + C.o(T, x) || Object.defineProperty(T, x, { + /******/ + configurable: !1, + /******/ + enumerable: !0, + /******/ + get: I + /******/ + }); + }, C.n = function(T) { + var x = T && T.__esModule ? ( + /******/ + function() { + return T.default; + } + ) : ( + /******/ + function() { + return T; + } + ); + return C.d(x, "a", x), x; + }, C.o = function(T, x) { + return Object.prototype.hasOwnProperty.call(T, x); + }, C.p = "", C(C.s = 1); + }([ + /* 0 */ + /***/ + function(fe, Q) { + fe.exports = _; + }, + /* 1 */ + /***/ + function(fe, Q, C) { + var T = C(0).layoutBase.LayoutConstants, x = C(0).layoutBase.FDLayoutConstants, I = C(0).CoSEConstants, z = C(0).CoSELayout, Y = C(0).CoSENode, P = C(0).layoutBase.PointD, Z = C(0).layoutBase.DimensionD, A = { + // Called on `layoutready` + ready: function() { + }, + // Called on `layoutstop` + stop: function() { + }, + // 'draft', 'default' or 'proof" + // - 'draft' fast cooling rate + // - 'default' moderate cooling rate + // - "proof" slow cooling rate + quality: "default", + // include labels in node dimensions + nodeDimensionsIncludeLabels: !1, + // number of ticks per frame; higher is faster but more jerky + refresh: 30, + // Whether to fit the network view after when done + fit: !0, + // Padding on fit + padding: 10, + // Whether to enable incremental mode + randomize: !0, + // Node repulsion (non overlapping) multiplier + nodeRepulsion: 4500, + // Ideal edge (non nested) length + idealEdgeLength: 50, + // Divisor to compute edge forces + edgeElasticity: 0.45, + // Nesting factor (multiplier) to compute ideal edge length for nested edges + nestingFactor: 0.1, + // Gravity force (constant) + gravity: 0.25, + // Maximum number of iterations to perform + numIter: 2500, + // For enabling tiling + tile: !0, + // Type of layout animation. The option set is {'during', 'end', false} + animate: "end", + // Duration for animate:end + animationDuration: 500, + // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function) + tilingPaddingVertical: 10, + // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function) + tilingPaddingHorizontal: 10, + // Gravity range (constant) for compounds + gravityRangeCompound: 1.5, + // Gravity force (constant) for compounds + gravityCompound: 1, + // Gravity range (constant) + gravityRange: 3.8, + // Initial cooling factor for incremental layout + initialEnergyOnIncremental: 0.5 + }; + function $(le, j) { + var ee = {}; + for (var H in le) + ee[H] = le[H]; + for (var H in j) + ee[H] = j[H]; + return ee; + } + function U(le) { + this.options = $(A, le), J(this.options); + } + var J = function(j) { + j.nodeRepulsion != null && (I.DEFAULT_REPULSION_STRENGTH = x.DEFAULT_REPULSION_STRENGTH = j.nodeRepulsion), j.idealEdgeLength != null && (I.DEFAULT_EDGE_LENGTH = x.DEFAULT_EDGE_LENGTH = j.idealEdgeLength), j.edgeElasticity != null && (I.DEFAULT_SPRING_STRENGTH = x.DEFAULT_SPRING_STRENGTH = j.edgeElasticity), j.nestingFactor != null && (I.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = x.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = j.nestingFactor), j.gravity != null && (I.DEFAULT_GRAVITY_STRENGTH = x.DEFAULT_GRAVITY_STRENGTH = j.gravity), j.numIter != null && (I.MAX_ITERATIONS = x.MAX_ITERATIONS = j.numIter), j.gravityRange != null && (I.DEFAULT_GRAVITY_RANGE_FACTOR = x.DEFAULT_GRAVITY_RANGE_FACTOR = j.gravityRange), j.gravityCompound != null && (I.DEFAULT_COMPOUND_GRAVITY_STRENGTH = x.DEFAULT_COMPOUND_GRAVITY_STRENGTH = j.gravityCompound), j.gravityRangeCompound != null && (I.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = x.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = j.gravityRangeCompound), j.initialEnergyOnIncremental != null && (I.DEFAULT_COOLING_FACTOR_INCREMENTAL = x.DEFAULT_COOLING_FACTOR_INCREMENTAL = j.initialEnergyOnIncremental), j.quality == "draft" ? T.QUALITY = 0 : j.quality == "proof" ? T.QUALITY = 2 : T.QUALITY = 1, I.NODE_DIMENSIONS_INCLUDE_LABELS = x.NODE_DIMENSIONS_INCLUDE_LABELS = T.NODE_DIMENSIONS_INCLUDE_LABELS = j.nodeDimensionsIncludeLabels, I.DEFAULT_INCREMENTAL = x.DEFAULT_INCREMENTAL = T.DEFAULT_INCREMENTAL = !j.randomize, I.ANIMATE = x.ANIMATE = T.ANIMATE = j.animate, I.TILE = j.tile, I.TILING_PADDING_VERTICAL = typeof j.tilingPaddingVertical == "function" ? j.tilingPaddingVertical.call() : j.tilingPaddingVertical, I.TILING_PADDING_HORIZONTAL = typeof j.tilingPaddingHorizontal == "function" ? j.tilingPaddingHorizontal.call() : j.tilingPaddingHorizontal; + }; + U.prototype.run = function() { + var le, j, ee = this.options; + this.idToLNode = {}; + var H = this.layout = new z(), te = this; + te.stopped = !1, this.cy = this.options.cy, this.cy.trigger({ type: "layoutstart", layout: this }); + var S = H.newGraphManager(); + this.gm = S; + var V = this.options.eles.nodes(), R = this.options.eles.edges(); + this.root = S.addRoot(), this.processChildrenList(this.root, this.getTopMostNodes(V), H); + for (var q = 0; q < R.length; q++) { + var ve = R[q], pe = this.idToLNode[ve.data("source")], Ae = this.idToLNode[ve.data("target")]; + if (pe !== Ae && pe.getEdgesBetween(Ae).length == 0) { + var Ne = S.add(H.newEdge(), pe, Ae); + Ne.id = ve.id(); + } + } + var Ye = function(Re, Ve) { + typeof Re == "number" && (Re = Ve); + var Ze = Re.data("id"), nt = te.idToLNode[Ze]; + return { + x: nt.getRect().getCenterX(), + y: nt.getRect().getCenterY() + }; + }, at = function dt() { + for (var Re = function() { + ee.fit && ee.cy.fit(ee.eles, ee.padding), le || (le = !0, te.cy.one("layoutready", ee.ready), te.cy.trigger({ type: "layoutready", layout: te })); + }, Ve = te.options.refresh, Ze, nt = 0; nt < Ve && !Ze; nt++) + Ze = te.stopped || te.layout.tick(); + if (Ze) { + H.checkLayoutSuccess() && !H.isSubLayout && H.doPostLayout(), H.tilingPostLayout && H.tilingPostLayout(), H.isLayoutFinished = !0, te.options.eles.nodes().positions(Ye), Re(), te.cy.one("layoutstop", te.options.stop), te.cy.trigger({ type: "layoutstop", layout: te }), j && cancelAnimationFrame(j), le = !1; + return; + } + var ht = te.layout.getPositionsData(); + ee.eles.nodes().positions(function(it, tt) { + if (typeof it == "number" && (it = tt), !it.isParent()) { + for (var yt = it.id(), Et = ht[yt], Pt = it; Et == null && (Et = ht[Pt.data("parent")] || ht["DummyCompound_" + Pt.data("parent")], ht[yt] = Et, Pt = Pt.parent()[0], Pt != null); ) + ; + return Et != null ? { + x: Et.x, + y: Et.y + } : { + x: it.position("x"), + y: it.position("y") + }; + } + }), Re(), j = requestAnimationFrame(dt); + }; + return H.addListener("layoutstarted", function() { + te.options.animate === "during" && (j = requestAnimationFrame(at)); + }), H.runLayout(), this.options.animate !== "during" && (te.options.eles.nodes().not(":parent").layoutPositions(te, te.options, Ye), le = !1), this; + }, U.prototype.getTopMostNodes = function(le) { + for (var j = {}, ee = 0; ee < le.length; ee++) + j[le[ee].id()] = !0; + var H = le.filter(function(te, S) { + typeof te == "number" && (te = S); + for (var V = te.parent()[0]; V != null; ) { + if (j[V.id()]) + return !1; + V = V.parent()[0]; + } + return !0; + }); + return H; + }, U.prototype.processChildrenList = function(le, j, ee) { + for (var H = j.length, te = 0; te < H; te++) { + var S = j[te], V = S.children(), R, q = S.layoutDimensions({ + nodeDimensionsIncludeLabels: this.options.nodeDimensionsIncludeLabels + }); + if (S.outerWidth() != null && S.outerHeight() != null ? R = le.add(new Y(ee.graphManager, new P(S.position("x") - q.w / 2, S.position("y") - q.h / 2), new Z(parseFloat(q.w), parseFloat(q.h)))) : R = le.add(new Y(this.graphManager)), R.id = S.data("id"), R.paddingLeft = parseInt(S.css("padding")), R.paddingTop = parseInt(S.css("padding")), R.paddingRight = parseInt(S.css("padding")), R.paddingBottom = parseInt(S.css("padding")), this.options.nodeDimensionsIncludeLabels && S.isParent()) { + var ve = S.boundingBox({ includeLabels: !0, includeNodes: !1 }).w, pe = S.boundingBox({ includeLabels: !0, includeNodes: !1 }).h, Ae = S.css("text-halign"); + R.labelWidth = ve, R.labelHeight = pe, R.labelPos = Ae; + } + if (this.idToLNode[S.data("id")] = R, isNaN(R.rect.x) && (R.rect.x = 0), isNaN(R.rect.y) && (R.rect.y = 0), V != null && V.length > 0) { + var Ne; + Ne = ee.getGraphManager().add(ee.newGraph(), R), this.processChildrenList(Ne, V, ee); + } + } + }, U.prototype.stop = function() { + return this.stopped = !0, this; + }; + var ne = function(j) { + j("layout", "cose-bilkent", U); + }; + typeof cytoscape < "u" && ne(cytoscape), fe.exports = ne; + } + /******/ + ]) + ); + }); +})(Xl); +var Vp = Xl.exports; +const Up = /* @__PURE__ */ $l(Vp), $p = 12, _p = function(de, Pe, _, fe) { + Pe.append("path").attr("id", "node-" + _.id).attr("class", "node-bkg node-" + de.type2Str(_.type)).attr( + "d", + `M0 ${_.height - 5} v${-_.height + 2 * 5} q0,-5 5,-5 h${_.width - 2 * 5} q5,0 5,5 v${_.height - 5} H0 Z` + ), Pe.append("line").attr("class", "node-line-" + fe).attr("x1", 0).attr("y1", _.height).attr("x2", _.width).attr("y2", _.height); +}, Yp = function(de, Pe, _) { + Pe.append("rect").attr("id", "node-" + _.id).attr("class", "node-bkg node-" + de.type2Str(_.type)).attr("height", _.height).attr("width", _.width); +}, Hp = function(de, Pe, _) { + const fe = _.width, Q = _.height, C = 0.15 * fe, T = 0.25 * fe, x = 0.35 * fe, I = 0.2 * fe; + Pe.append("path").attr("id", "node-" + _.id).attr("class", "node-bkg node-" + de.type2Str(_.type)).attr( + "d", + `M0 0 a${C},${C} 0 0,1 ${fe * 0.25},${-1 * fe * 0.1} + a${x},${x} 1 0,1 ${fe * 0.4},${-1 * fe * 0.1} + a${T},${T} 1 0,1 ${fe * 0.35},${1 * fe * 0.2} + + a${C},${C} 1 0,1 ${fe * 0.15},${1 * Q * 0.35} + a${I},${I} 1 0,1 ${-1 * fe * 0.15},${1 * Q * 0.65} + + a${T},${C} 1 0,1 ${-1 * fe * 0.25},${fe * 0.15} + a${x},${x} 1 0,1 ${-1 * fe * 0.5},0 + a${C},${C} 1 0,1 ${-1 * fe * 0.25},${-1 * fe * 0.15} + + a${C},${C} 1 0,1 ${-1 * fe * 0.1},${-1 * Q * 0.35} + a${I},${I} 1 0,1 ${fe * 0.1},${-1 * Q * 0.65} + + H0 V0 Z` + ); +}, Xp = function(de, Pe, _) { + const fe = _.width, Q = _.height, C = 0.15 * fe; + Pe.append("path").attr("id", "node-" + _.id).attr("class", "node-bkg node-" + de.type2Str(_.type)).attr( + "d", + `M0 0 a${C},${C} 1 0,0 ${fe * 0.25},${-1 * Q * 0.1} + a${C},${C} 1 0,0 ${fe * 0.25},0 + a${C},${C} 1 0,0 ${fe * 0.25},0 + a${C},${C} 1 0,0 ${fe * 0.25},${1 * Q * 0.1} + + a${C},${C} 1 0,0 ${fe * 0.15},${1 * Q * 0.33} + a${C * 0.8},${C * 0.8} 1 0,0 0,${1 * Q * 0.34} + a${C},${C} 1 0,0 ${-1 * fe * 0.15},${1 * Q * 0.33} + + a${C},${C} 1 0,0 ${-1 * fe * 0.25},${Q * 0.15} + a${C},${C} 1 0,0 ${-1 * fe * 0.25},0 + a${C},${C} 1 0,0 ${-1 * fe * 0.25},0 + a${C},${C} 1 0,0 ${-1 * fe * 0.25},${-1 * Q * 0.15} + + a${C},${C} 1 0,0 ${-1 * fe * 0.1},${-1 * Q * 0.33} + a${C * 0.8},${C * 0.8} 1 0,0 0,${-1 * Q * 0.34} + a${C},${C} 1 0,0 ${fe * 0.1},${-1 * Q * 0.33} + + H0 V0 Z` + ); +}, Wp = function(de, Pe, _) { + Pe.append("circle").attr("id", "node-" + _.id).attr("class", "node-bkg node-" + de.type2Str(_.type)).attr("r", _.width / 2); +}; +function qp(de, Pe, _, fe, Q) { + return de.insert("polygon", ":first-child").attr( + "points", + fe.map(function(C) { + return C.x + "," + C.y; + }).join(" ") + ).attr("transform", "translate(" + (Q.width - Pe) / 2 + ", " + _ + ")"); +} +const Kp = function(de, Pe, _) { + const fe = _.height, C = fe / 4, T = _.width - _.padding + 2 * C, x = [ + { x: C, y: 0 }, + { x: T - C, y: 0 }, + { x: T, y: -fe / 2 }, + { x: T - C, y: -fe }, + { x: C, y: -fe }, + { x: 0, y: -fe / 2 } + ]; + qp(Pe, T, fe, x, _); +}, Zp = function(de, Pe, _) { + Pe.append("rect").attr("id", "node-" + _.id).attr("class", "node-bkg node-" + de.type2Str(_.type)).attr("height", _.height).attr("rx", _.padding).attr("ry", _.padding).attr("width", _.width); +}, Qp = function(de, Pe, _, fe, Q) { + const C = Q.htmlLabels, T = fe % ($p - 1), x = Pe.append("g"); + _.section = T; + let I = "section-" + T; + T < 0 && (I += " section-root"), x.attr("class", (_.class ? _.class + " " : "") + "mindmap-node " + I); + const z = x.append("g"), Y = x.append("g"), P = _.descr.replace(/()/g, ` +`); + Tp(Y, P, { + useHtmlLabels: C, + width: _.width, + classes: "mindmap-node-label" + }), C || Y.attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle"); + const Z = Y.node().getBBox(), [A] = pp(Q.fontSize); + if (_.height = Z.height + A * 1.1 * 0.5 + _.padding, _.width = Z.width + 2 * _.padding, _.icon) + if (_.type === de.nodeType.CIRCLE) + _.height += 50, _.width += 50, x.append("foreignObject").attr("height", "50px").attr("width", _.width).attr("style", "text-align: center;").append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + T + " " + _.icon), Y.attr( + "transform", + "translate(" + _.width / 2 + ", " + (_.height / 2 - 1.5 * _.padding) + ")" + ); + else { + _.width += 50; + const $ = _.height; + _.height = Math.max($, 60); + const U = Math.abs(_.height - $); + x.append("foreignObject").attr("width", "60px").attr("height", _.height).attr("style", "text-align: center;margin-top:" + U / 2 + "px;").append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + T + " " + _.icon), Y.attr( + "transform", + "translate(" + (25 + _.width / 2) + ", " + (U / 2 + _.padding / 2) + ")" + ); + } + else if (C) { + const $ = (_.width - Z.width) / 2, U = (_.height - Z.height) / 2; + Y.attr("transform", "translate(" + $ + ", " + U + ")"); + } else { + const $ = _.width / 2, U = _.padding / 2; + Y.attr("transform", "translate(" + $ + ", " + U + ")"); + } + switch (_.type) { + case de.nodeType.DEFAULT: + _p(de, z, _, T); + break; + case de.nodeType.ROUNDED_RECT: + Zp(de, z, _); + break; + case de.nodeType.RECT: + Yp(de, z, _); + break; + case de.nodeType.CIRCLE: + z.attr("transform", "translate(" + _.width / 2 + ", " + +_.height / 2 + ")"), Wp(de, z, _); + break; + case de.nodeType.CLOUD: + Hp(de, z, _); + break; + case de.nodeType.BANG: + Xp(de, z, _); + break; + case de.nodeType.HEXAGON: + Kp(de, z, _); + break; + } + return de.setElementForId(_.id, x), _.height; +}, Jp = function(de, Pe) { + const _ = de.getElementById(Pe.id), fe = Pe.x || 0, Q = Pe.y || 0; + _.attr("transform", "translate(" + fe + "," + Q + ")"); +}; +Hl.use(Up); +function Wl(de, Pe, _, fe, Q) { + Qp(de, Pe, _, fe, Q), _.children && _.children.forEach((C, T) => { + Wl(de, Pe, C, fe < 0 ? T : fe, Q); + }); +} +function jp(de, Pe) { + Pe.edges().map((_, fe) => { + const Q = _.data(); + if (_[0]._private.bodyBounds) { + const C = _[0]._private.rscratch; + qr.trace("Edge: ", fe, Q), de.insert("path").attr( + "d", + `M ${C.startX},${C.startY} L ${C.midX},${C.midY} L${C.endX},${C.endY} ` + ).attr("class", "edge section-edge-" + Q.section + " edge-depth-" + Q.depth); + } + }); +} +function ql(de, Pe, _, fe) { + Pe.add({ + group: "nodes", + data: { + id: de.id.toString(), + labelText: de.descr, + height: de.height, + width: de.width, + level: fe, + nodeId: de.id, + padding: de.padding, + type: de.type + }, + position: { + x: de.x, + y: de.y + } + }), de.children && de.children.forEach((Q) => { + ql(Q, Pe, _, fe + 1), Pe.add({ + group: "edges", + data: { + id: `${de.id}_${Q.id}`, + source: de.id, + target: Q.id, + depth: fe, + section: Q.section + } + }); + }); +} +function ey(de, Pe) { + return new Promise((_) => { + const fe = bp("body").append("div").attr("id", "cy").attr("style", "display:none"), Q = Hl({ + container: document.getElementById("cy"), + // container to render in + style: [ + { + selector: "edge", + style: { + "curve-style": "bezier" + } + } + ] + }); + fe.remove(), ql(de, Q, Pe, 0), Q.nodes().forEach(function(C) { + C.layoutDimensions = () => { + const T = C.data(); + return { w: T.width, h: T.height }; + }; + }), Q.layout({ + name: "cose-bilkent", + // @ts-ignore Types for cose-bilkent are not correct? + quality: "proof", + styleEnabled: !1, + animate: !1 + }).run(), Q.ready((C) => { + qr.info("Ready", C), _(Q); + }); + }); +} +function ty(de, Pe) { + Pe.nodes().map((_, fe) => { + const Q = _.data(); + Q.x = _.position().x, Q.y = _.position().y, Jp(de, Q); + const C = de.getElementById(Q.nodeId); + qr.info("Id:", fe, "Position: (", _.position().x, ", ", _.position().y, ")", Q), C.attr( + "transform", + `translate(${_.position().x - Q.width / 2}, ${_.position().y - Q.height / 2})` + ), C.attr("attr", `apa-${fe})`); + }); +} +const ry = async (de, Pe, _, fe) => { + var P, Z; + qr.debug(`Rendering mindmap diagram +` + de); + const Q = fe.db, C = Q.getMindmap(); + if (!C) + return; + const T = Ji(); + T.htmlLabels = !1; + const x = yp(Pe), I = x.append("g"); + I.attr("class", "mindmap-edges"); + const z = x.append("g"); + z.attr("class", "mindmap-nodes"), Wl(Q, z, C, -1, T); + const Y = await ey(C, T); + jp(I, Y), ty(Q, Y), mp( + void 0, + x, + ((P = T.mindmap) == null ? void 0 : P.padding) ?? ti.mindmap.padding, + ((Z = T.mindmap) == null ? void 0 : Z.useMaxWidth) ?? ti.mindmap.useMaxWidth + ); +}, ay = { + draw: ry +}, ny = (de) => { + let Pe = ""; + for (let _ = 0; _ < de.THEME_COLOR_LIMIT; _++) + de["lineColor" + _] = de["lineColor" + _] || de["cScaleInv" + _], Ep(de["lineColor" + _]) ? de["lineColor" + _] = wp(de["lineColor" + _], 20) : de["lineColor" + _] = xp(de["lineColor" + _], 20); + for (let _ = 0; _ < de.THEME_COLOR_LIMIT; _++) { + const fe = "" + (17 - 3 * _); + Pe += ` + .section-${_ - 1} rect, .section-${_ - 1} path, .section-${_ - 1} circle, .section-${_ - 1} polygon, .section-${_ - 1} path { + fill: ${de["cScale" + _]}; + } + .section-${_ - 1} text { + fill: ${de["cScaleLabel" + _]}; + } + .node-icon-${_ - 1} { + font-size: 40px; + color: ${de["cScaleLabel" + _]}; + } + .section-edge-${_ - 1}{ + stroke: ${de["cScale" + _]}; + } + .edge-depth-${_ - 1}{ + stroke-width: ${fe}; + } + .section-${_ - 1} line { + stroke: ${de["cScaleInv" + _]} ; + stroke-width: 3; + } + + .disabled, .disabled circle, .disabled text { + fill: lightgray; + } + .disabled text { + fill: #efefef; + } + `; + } + return Pe; +}, iy = (de) => ` + .edge { + stroke-width: 3; + } + ${ny(de)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${de.git0}; + } + .section-root text { + fill: ${de.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`, sy = iy, uy = { + db: Bp, + renderer: ay, + parser: Cp, + styles: sy +}; +export { + uy as diagram +}; diff --git a/assets/lib/mermaid/pieDiagram-828dae43.js b/assets/lib/mermaid/pieDiagram-828dae43.js new file mode 100644 index 000000000..6be14d995 --- /dev/null +++ b/assets/lib/mermaid/pieDiagram-828dae43.js @@ -0,0 +1,502 @@ +import { V as H, W as at, C as lt, D as ct, s as ot, g as ht, b as ut, a as yt, E as ft, d as pt, c as et, l as it, X as gt, U as dt, Y as mt, k as _t } from "./mermaid-9f2aa176.js"; +import { d as tt } from "./arc-d1f6357e.js"; +import { o as xt } from "./ordinal-5695958c.js"; +import { a as kt } from "./array-2ff2c7a6.js"; +import { c as F } from "./path-428ebac9.js"; +import "./init-f9637058.js"; +function vt(e, u) { + return u < e ? -1 : u > e ? 1 : u >= e ? 0 : NaN; +} +function bt(e) { + return e; +} +function St() { + var e = bt, u = vt, E = null, p = F(0), g = F(H), A = F(0); + function y(a) { + var l, d = (a = kt(a)).length, m, I, $ = 0, _ = new Array(d), v = new Array(d), o = +p.apply(this, arguments), T = Math.min(H, Math.max(-H, g.apply(this, arguments) - o)), O, w = Math.min(Math.abs(T) / d, A.apply(this, arguments)), b = w * (T < 0 ? -1 : 1), t; + for (l = 0; l < d; ++l) + (t = v[_[l] = l] = +e(a[l], l, a)) > 0 && ($ += t); + for (u != null ? _.sort(function(i, n) { + return u(v[i], v[n]); + }) : E != null && _.sort(function(i, n) { + return E(a[i], a[n]); + }), l = 0, I = $ ? (T - d * b) / $ : 0; l < d; ++l, o = O) + m = _[l], t = v[m], O = o + (t > 0 ? t * I : 0) + b, v[m] = { + data: a[m], + index: l, + value: t, + startAngle: o, + endAngle: O, + padAngle: w + }; + return v; + } + return y.value = function(a) { + return arguments.length ? (e = typeof a == "function" ? a : F(+a), y) : e; + }, y.sortValues = function(a) { + return arguments.length ? (u = a, E = null, y) : u; + }, y.sort = function(a) { + return arguments.length ? (E = a, u = null, y) : E; + }, y.startAngle = function(a) { + return arguments.length ? (p = typeof a == "function" ? a : F(+a), y) : p; + }, y.endAngle = function(a) { + return arguments.length ? (g = typeof a == "function" ? a : F(+a), y) : g; + }, y.padAngle = function(a) { + return arguments.length ? (A = typeof a == "function" ? a : F(+a), y) : A; + }, y; +} +var J = function() { + var e = function(b, t, i, n) { + for (i = i || {}, n = b.length; n--; i[b[n]] = t) + ; + return i; + }, u = [1, 3], E = [1, 4], p = [1, 5], g = [1, 6], A = [1, 10, 12, 14, 16, 18, 19, 20, 21, 22], y = [2, 4], a = [1, 5, 10, 12, 14, 16, 18, 19, 20, 21, 22], l = [20, 21, 22], d = [2, 7], m = [1, 12], I = [1, 13], $ = [1, 14], _ = [1, 15], v = [1, 16], o = [1, 17], T = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, eol: 4, PIE: 5, document: 6, showData: 7, line: 8, statement: 9, txt: 10, value: 11, title: 12, title_value: 13, acc_title: 14, acc_title_value: 15, acc_descr: 16, acc_descr_value: 17, acc_descr_multiline_value: 18, section: 19, NEWLINE: 20, ";": 21, EOF: 22, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 5: "PIE", 7: "showData", 10: "txt", 11: "value", 12: "title", 13: "title_value", 14: "acc_title", 15: "acc_title_value", 16: "acc_descr", 17: "acc_descr_value", 18: "acc_descr_multiline_value", 19: "section", 20: "NEWLINE", 21: ";", 22: "EOF" }, + productions_: [0, [3, 2], [3, 2], [3, 3], [6, 0], [6, 2], [8, 2], [9, 0], [9, 2], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [4, 1], [4, 1], [4, 1]], + performAction: function(t, i, n, r, c, s, V) { + var x = s.length - 1; + switch (c) { + case 3: + r.setShowData(!0); + break; + case 6: + this.$ = s[x - 1]; + break; + case 8: + r.addSection(s[x - 1], r.cleanupValue(s[x])); + break; + case 9: + this.$ = s[x].trim(), r.setDiagramTitle(this.$); + break; + case 10: + this.$ = s[x].trim(), r.setAccTitle(this.$); + break; + case 11: + case 12: + this.$ = s[x].trim(), r.setAccDescription(this.$); + break; + case 13: + r.addSection(s[x].substr(8)), this.$ = s[x].substr(8); + break; + } + }, + table: [{ 3: 1, 4: 2, 5: u, 20: E, 21: p, 22: g }, { 1: [3] }, { 3: 7, 4: 2, 5: u, 20: E, 21: p, 22: g }, e(A, y, { 6: 8, 7: [1, 9] }), e(a, [2, 14]), e(a, [2, 15]), e(a, [2, 16]), { 1: [2, 1] }, e(l, d, { 8: 10, 9: 11, 1: [2, 2], 10: m, 12: I, 14: $, 16: _, 18: v, 19: o }), e(A, y, { 6: 18 }), e(A, [2, 5]), { 4: 19, 20: E, 21: p, 22: g }, { 11: [1, 20] }, { 13: [1, 21] }, { 15: [1, 22] }, { 17: [1, 23] }, e(l, [2, 12]), e(l, [2, 13]), e(l, d, { 8: 10, 9: 11, 1: [2, 3], 10: m, 12: I, 14: $, 16: _, 18: v, 19: o }), e(A, [2, 6]), e(l, [2, 8]), e(l, [2, 9]), e(l, [2, 10]), e(l, [2, 11])], + defaultActions: { 7: [2, 1] }, + parseError: function(t, i) { + if (i.recoverable) + this.trace(t); + else { + var n = new Error(t); + throw n.hash = i, n; + } + }, + parse: function(t) { + var i = this, n = [0], r = [], c = [null], s = [], V = this.table, x = "", f = 0, P = 0, R = 2, M = 1, Y = s.slice.call(arguments, 1), h = Object.create(this.lexer), N = { yy: {} }; + for (var B in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, B) && (N.yy[B] = this.yy[B]); + h.setInput(t, N.yy), N.yy.lexer = h, N.yy.parser = this, typeof h.yylloc > "u" && (h.yylloc = {}); + var X = h.yylloc; + s.push(X); + var st = h.options && h.options.ranges; + typeof N.yy.parseError == "function" ? this.parseError = N.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function rt() { + var C; + return C = r.pop() || h.lex() || M, typeof C != "number" && (C instanceof Array && (r = C, C = r.pop()), C = i.symbols_[C] || C), C; + } + for (var k, L, S, Z, z = {}, W, D, Q, j; ; ) { + if (L = n[n.length - 1], this.defaultActions[L] ? S = this.defaultActions[L] : ((k === null || typeof k > "u") && (k = rt()), S = V[L] && V[L][k]), typeof S > "u" || !S.length || !S[0]) { + var q = ""; + j = []; + for (W in V[L]) + this.terminals_[W] && W > R && j.push("'" + this.terminals_[W] + "'"); + h.showPosition ? q = "Parse error on line " + (f + 1) + `: +` + h.showPosition() + ` +Expecting ` + j.join(", ") + ", got '" + (this.terminals_[k] || k) + "'" : q = "Parse error on line " + (f + 1) + ": Unexpected " + (k == M ? "end of input" : "'" + (this.terminals_[k] || k) + "'"), this.parseError(q, { + text: h.match, + token: this.terminals_[k] || k, + line: h.yylineno, + loc: X, + expected: j + }); + } + if (S[0] instanceof Array && S.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + L + ", token: " + k); + switch (S[0]) { + case 1: + n.push(k), c.push(h.yytext), s.push(h.yylloc), n.push(S[1]), k = null, P = h.yyleng, x = h.yytext, f = h.yylineno, X = h.yylloc; + break; + case 2: + if (D = this.productions_[S[1]][1], z.$ = c[c.length - D], z._$ = { + first_line: s[s.length - (D || 1)].first_line, + last_line: s[s.length - 1].last_line, + first_column: s[s.length - (D || 1)].first_column, + last_column: s[s.length - 1].last_column + }, st && (z._$.range = [ + s[s.length - (D || 1)].range[0], + s[s.length - 1].range[1] + ]), Z = this.performAction.apply(z, [ + x, + P, + f, + N.yy, + S[1], + c, + s + ].concat(Y)), typeof Z < "u") + return Z; + D && (n = n.slice(0, -1 * D * 2), c = c.slice(0, -1 * D), s = s.slice(0, -1 * D)), n.push(this.productions_[S[1]][0]), c.push(z.$), s.push(z._$), Q = V[n[n.length - 2]][n[n.length - 1]], n.push(Q); + break; + case 3: + return !0; + } + } + return !0; + } + }, O = function() { + var b = { + EOF: 1, + parseError: function(i, n) { + if (this.yy.parser) + this.yy.parser.parseError(i, n); + else + throw new Error(i); + }, + // resets the lexer, sets new input + setInput: function(t, i) { + return this.yy = i || this.yy || {}, this._input = t, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var t = this._input[0]; + this.yytext += t, this.yyleng++, this.offset++, this.match += t, this.matched += t; + var i = t.match(/(?:\r\n?|\n).*/g); + return i ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), t; + }, + // unshifts one char (or a string) into the input + unput: function(t) { + var i = t.length, n = t.split(/(?:\r\n?|\n)/g); + this._input = t + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - i), this.offset -= i; + var r = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), n.length - 1 && (this.yylineno -= n.length - 1); + var c = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: n ? (n.length === r.length ? this.yylloc.first_column : 0) + r[r.length - n.length].length - n[0].length : this.yylloc.first_column - i + }, this.options.ranges && (this.yylloc.range = [c[0], c[0] + this.yyleng - i]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(t) { + this.unput(this.match.slice(t)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var t = this.matched.substr(0, this.matched.length - this.match.length); + return (t.length > 20 ? "..." : "") + t.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var t = this.match; + return t.length < 20 && (t += this._input.substr(0, 20 - t.length)), (t.substr(0, 20) + (t.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var t = this.pastInput(), i = new Array(t.length + 1).join("-"); + return t + this.upcomingInput() + ` +` + i + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(t, i) { + var n, r, c; + if (this.options.backtrack_lexer && (c = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (c.yylloc.range = this.yylloc.range.slice(0))), r = t[0].match(/(?:\r\n?|\n).*/g), r && (this.yylineno += r.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: r ? r[r.length - 1].length - r[r.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + t[0].length + }, this.yytext += t[0], this.match += t[0], this.matches = t, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(t[0].length), this.matched += t[0], n = this.performAction.call(this, this.yy, this, i, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), n) + return n; + if (this._backtrack) { + for (var s in c) + this[s] = c[s]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var t, i, n, r; + this._more || (this.yytext = "", this.match = ""); + for (var c = this._currentRules(), s = 0; s < c.length; s++) + if (n = this._input.match(this.rules[c[s]]), n && (!i || n[0].length > i[0].length)) { + if (i = n, r = s, this.options.backtrack_lexer) { + if (t = this.test_match(n, c[s]), t !== !1) + return t; + if (this._backtrack) { + i = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return i ? (t = this.test_match(i, c[r]), t !== !1 ? t : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var i = this.next(); + return i || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(i) { + this.conditionStack.push(i); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var i = this.conditionStack.length - 1; + return i > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(i) { + return i = this.conditionStack.length - 1 - Math.abs(i || 0), i >= 0 ? this.conditionStack[i] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(i) { + this.begin(i); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: { "case-insensitive": !0 }, + performAction: function(i, n, r, c) { + switch (r) { + case 0: + break; + case 1: + break; + case 2: + return 20; + case 3: + break; + case 4: + break; + case 5: + return this.begin("title"), 12; + case 6: + return this.popState(), "title_value"; + case 7: + return this.begin("acc_title"), 14; + case 8: + return this.popState(), "acc_title_value"; + case 9: + return this.begin("acc_descr"), 16; + case 10: + return this.popState(), "acc_descr_value"; + case 11: + this.begin("acc_descr_multiline"); + break; + case 12: + this.popState(); + break; + case 13: + return "acc_descr_multiline_value"; + case 14: + this.begin("string"); + break; + case 15: + this.popState(); + break; + case 16: + return "txt"; + case 17: + return 5; + case 18: + return 7; + case 19: + return "value"; + case 20: + return 22; + } + }, + rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:[\s]+)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:pie\b)/i, /^(?:showData\b)/i, /^(?::[\s]*[\d]+(?:\.[\d]+)?)/i, /^(?:$)/i], + conditions: { acc_descr_multiline: { rules: [12, 13], inclusive: !1 }, acc_descr: { rules: [10], inclusive: !1 }, acc_title: { rules: [8], inclusive: !1 }, title: { rules: [6], inclusive: !1 }, string: { rules: [15, 16], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 5, 7, 9, 11, 14, 17, 18, 19, 20], inclusive: !0 } } + }; + return b; + }(); + T.lexer = O; + function w() { + this.yy = {}; + } + return w.prototype = T, T.Parser = w, new w(); +}(); +J.parser = J; +const Et = J, nt = at.pie, G = { + sections: {}, + showData: !1, + config: nt +}; +let U = G.sections, K = G.showData; +const At = structuredClone(nt), wt = () => structuredClone(At), $t = () => { + U = structuredClone(G.sections), K = G.showData, ft(); +}, Tt = (e, u) => { + e = pt(e, et()), U[e] === void 0 && (U[e] = u, it.debug(`added new section: ${e}, with value: ${u}`)); +}, It = () => U, Dt = (e) => (e.substring(0, 1) === ":" && (e = e.substring(1).trim()), Number(e.trim())), Ct = (e) => { + K = e; +}, Ot = () => K, Vt = { + getConfig: wt, + clear: $t, + setDiagramTitle: lt, + getDiagramTitle: ct, + setAccTitle: ot, + getAccTitle: ht, + setAccDescription: ut, + getAccDescription: yt, + addSection: Tt, + getSections: It, + cleanupValue: Dt, + setShowData: Ct, + getShowData: Ot +}, Pt = (e) => ` + .pieCircle{ + stroke: ${e.pieStrokeColor}; + stroke-width : ${e.pieStrokeWidth}; + opacity : ${e.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${e.pieOuterStrokeColor}; + stroke-width: ${e.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${e.pieTitleTextSize}; + fill: ${e.pieTitleTextColor}; + font-family: ${e.fontFamily}; + } + .slice { + font-family: ${e.fontFamily}; + fill: ${e.pieSectionTextColor}; + font-size:${e.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${e.pieLegendTextColor}; + font-family: ${e.fontFamily}; + font-size: ${e.pieLegendTextSize}; + } +`, Nt = Pt, Lt = (e) => { + const u = Object.entries(e).map((p) => ({ + label: p[0], + value: p[1] + })).sort((p, g) => g.value - p.value); + return St().value( + (p) => p.value + )(u); +}, Ft = (e, u, E, p) => { + it.debug(`rendering pie chart +` + e); + const g = p.db, A = et(), y = gt(g.getConfig(), A.pie), a = 40, l = 18, d = 4, m = 450, I = m, $ = dt(u), _ = $.append("g"), v = g.getSections(); + _.attr("transform", "translate(" + I / 2 + "," + m / 2 + ")"); + const { themeVariables: o } = A; + let [T] = mt(o.pieOuterStrokeWidth); + T ?? (T = 2); + const O = y.textPosition, w = Math.min(I, m) / 2 - a, b = tt().innerRadius(0).outerRadius(w), t = tt().innerRadius(w * O).outerRadius(w * O); + _.append("circle").attr("cx", 0).attr("cy", 0).attr("r", w + T / 2).attr("class", "pieOuterCircle"); + const i = Lt(v), n = [ + o.pie1, + o.pie2, + o.pie3, + o.pie4, + o.pie5, + o.pie6, + o.pie7, + o.pie8, + o.pie9, + o.pie10, + o.pie11, + o.pie12 + ], r = xt(n); + _.selectAll("mySlices").data(i).enter().append("path").attr("d", b).attr("fill", (f) => r(f.data.label)).attr("class", "pieCircle"); + let c = 0; + Object.keys(v).forEach((f) => { + c += v[f]; + }), _.selectAll("mySlices").data(i).enter().append("text").text((f) => (f.data.value / c * 100).toFixed(0) + "%").attr("transform", (f) => "translate(" + t.centroid(f) + ")").style("text-anchor", "middle").attr("class", "slice"), _.append("text").text(g.getDiagramTitle()).attr("x", 0).attr("y", -(m - 50) / 2).attr("class", "pieTitleText"); + const s = _.selectAll(".legend").data(r.domain()).enter().append("g").attr("class", "legend").attr("transform", (f, P) => { + const R = l + d, M = R * r.domain().length / 2, Y = 12 * l, h = P * R - M; + return "translate(" + Y + "," + h + ")"; + }); + s.append("rect").attr("width", l).attr("height", l).style("fill", r).style("stroke", r), s.data(i).append("text").attr("x", l + d).attr("y", l - d).text((f) => { + const { label: P, value: R } = f.data; + return g.getShowData() ? `${P} [${R}]` : P; + }); + const V = Math.max( + ...s.selectAll("text").nodes().map((f) => (f == null ? void 0 : f.getBoundingClientRect().width) ?? 0) + ), x = I + a + l + d + V; + $.attr("viewBox", `0 0 ${x} ${m}`), _t($, m, x, y.useMaxWidth); +}, Rt = { draw: Ft }, Yt = { + parser: Et, + db: Vt, + renderer: Rt, + styles: Nt +}; +export { + Yt as diagram +}; diff --git a/assets/lib/mermaid/pieDiagram-bb1d19e5.js b/assets/lib/mermaid/pieDiagram-bb1d19e5.js new file mode 100644 index 000000000..658e2b033 --- /dev/null +++ b/assets/lib/mermaid/pieDiagram-bb1d19e5.js @@ -0,0 +1,722 @@ +import { B as defaultConfig, q as setDiagramTitle, t as getDiagramTitle, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, v as clear$1, d as sanitizeText, c as getConfig$1, l as log, C as cleanAndMerge, A as selectSvgElement, D as parseFontSize, i as configureSvgSize } from "./mermaid-6dc72991.js"; +import { arc, scaleOrdinal, pie } from "d3"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [1, 10, 12, 14, 16, 18, 19, 20, 21, 22], $V5 = [2, 4], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 20, 21, 22], $V7 = [20, 21, 22], $V8 = [2, 7], $V9 = [1, 12], $Va = [1, 13], $Vb = [1, 14], $Vc = [1, 15], $Vd = [1, 16], $Ve = [1, 17]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "eol": 4, "PIE": 5, "document": 6, "showData": 7, "line": 8, "statement": 9, "txt": 10, "value": 11, "title": 12, "title_value": 13, "acc_title": 14, "acc_title_value": 15, "acc_descr": 16, "acc_descr_value": 17, "acc_descr_multiline_value": 18, "section": 19, "NEWLINE": 20, ";": 21, "EOF": 22, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 5: "PIE", 7: "showData", 10: "txt", 11: "value", 12: "title", 13: "title_value", 14: "acc_title", 15: "acc_title_value", 16: "acc_descr", 17: "acc_descr_value", 18: "acc_descr_multiline_value", 19: "section", 20: "NEWLINE", 21: ";", 22: "EOF" }, + productions_: [0, [3, 2], [3, 2], [3, 3], [6, 0], [6, 2], [8, 2], [9, 0], [9, 2], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [4, 1], [4, 1], [4, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 3: + yy.setShowData(true); + break; + case 6: + this.$ = $$[$0 - 1]; + break; + case 8: + yy.addSection($$[$0 - 1], yy.cleanupValue($$[$0])); + break; + case 9: + this.$ = $$[$0].trim(); + yy.setDiagramTitle(this.$); + break; + case 10: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 11: + case 12: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 13: + yy.addSection($$[$0].substr(8)); + this.$ = $$[$0].substr(8); + break; + } + }, + table: [{ 3: 1, 4: 2, 5: $V0, 20: $V1, 21: $V2, 22: $V3 }, { 1: [3] }, { 3: 7, 4: 2, 5: $V0, 20: $V1, 21: $V2, 22: $V3 }, o($V4, $V5, { 6: 8, 7: [1, 9] }), o($V6, [2, 14]), o($V6, [2, 15]), o($V6, [2, 16]), { 1: [2, 1] }, o($V7, $V8, { 8: 10, 9: 11, 1: [2, 2], 10: $V9, 12: $Va, 14: $Vb, 16: $Vc, 18: $Vd, 19: $Ve }), o($V4, $V5, { 6: 18 }), o($V4, [2, 5]), { 4: 19, 20: $V1, 21: $V2, 22: $V3 }, { 11: [1, 20] }, { 13: [1, 21] }, { 15: [1, 22] }, { 17: [1, 23] }, o($V7, [2, 12]), o($V7, [2, 13]), o($V7, $V8, { 8: 10, 9: 11, 1: [2, 3], 10: $V9, 12: $Va, 14: $Vb, 16: $Vc, 18: $Vd, 19: $Ve }), o($V4, [2, 6]), o($V7, [2, 8]), o($V7, [2, 9]), o($V7, [2, 10]), o($V7, [2, 11])], + defaultActions: { 7: [2, 1] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + break; + case 1: + break; + case 2: + return 20; + case 3: + break; + case 4: + break; + case 5: + this.begin("title"); + return 12; + case 6: + this.popState(); + return "title_value"; + case 7: + this.begin("acc_title"); + return 14; + case 8: + this.popState(); + return "acc_title_value"; + case 9: + this.begin("acc_descr"); + return 16; + case 10: + this.popState(); + return "acc_descr_value"; + case 11: + this.begin("acc_descr_multiline"); + break; + case 12: + this.popState(); + break; + case 13: + return "acc_descr_multiline_value"; + case 14: + this.begin("string"); + break; + case 15: + this.popState(); + break; + case 16: + return "txt"; + case 17: + return 5; + case 18: + return 7; + case 19: + return "value"; + case 20: + return 22; + } + }, + rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:[\s]+)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:pie\b)/i, /^(?:showData\b)/i, /^(?::[\s]*[\d]+(?:\.[\d]+)?)/i, /^(?:$)/i], + conditions: { "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "title": { "rules": [6], "inclusive": false }, "string": { "rules": [15, 16], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 7, 9, 11, 14, 17, 18, 19, 20], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +const DEFAULT_PIE_CONFIG = defaultConfig.pie; +const DEFAULT_PIE_DB = { + sections: {}, + showData: false, + config: DEFAULT_PIE_CONFIG +}; +let sections = DEFAULT_PIE_DB.sections; +let showData = DEFAULT_PIE_DB.showData; +const config = structuredClone(DEFAULT_PIE_CONFIG); +const getConfig = () => structuredClone(config); +const clear = () => { + sections = structuredClone(DEFAULT_PIE_DB.sections); + showData = DEFAULT_PIE_DB.showData; + clear$1(); +}; +const addSection = (label, value) => { + label = sanitizeText(label, getConfig$1()); + if (sections[label] === void 0) { + sections[label] = value; + log.debug(`added new section: ${label}, with value: ${value}`); + } +}; +const getSections = () => sections; +const cleanupValue = (value) => { + if (value.substring(0, 1) === ":") { + value = value.substring(1).trim(); + } + return Number(value.trim()); +}; +const setShowData = (toggle) => { + showData = toggle; +}; +const getShowData = () => showData; +const db = { + getConfig, + clear, + setDiagramTitle, + getDiagramTitle, + setAccTitle, + getAccTitle, + setAccDescription, + getAccDescription, + addSection, + getSections, + cleanupValue, + setShowData, + getShowData +}; +const getStyles = (options) => ` + .pieCircle{ + stroke: ${options.pieStrokeColor}; + stroke-width : ${options.pieStrokeWidth}; + opacity : ${options.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${options.pieOuterStrokeColor}; + stroke-width: ${options.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${options.pieTitleTextSize}; + fill: ${options.pieTitleTextColor}; + font-family: ${options.fontFamily}; + } + .slice { + font-family: ${options.fontFamily}; + fill: ${options.pieSectionTextColor}; + font-size:${options.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${options.pieLegendTextColor}; + font-family: ${options.fontFamily}; + font-size: ${options.pieLegendTextSize}; + } +`; +const styles = getStyles; +const createPieArcs = (sections2) => { + const pieData = Object.entries(sections2).map((element) => { + return { + label: element[0], + value: element[1] + }; + }).sort((a, b) => { + return b.value - a.value; + }); + const pie$1 = pie().value( + (d3Section) => d3Section.value + ); + return pie$1(pieData); +}; +const draw = (text, id, _version, diagObj) => { + log.debug("rendering pie chart\n" + text); + const db2 = diagObj.db; + const globalConfig = getConfig$1(); + const pieConfig = cleanAndMerge(db2.getConfig(), globalConfig.pie); + const MARGIN = 40; + const LEGEND_RECT_SIZE = 18; + const LEGEND_SPACING = 4; + const height = 450; + const pieWidth = height; + const svg = selectSvgElement(id); + const group = svg.append("g"); + const sections2 = db2.getSections(); + group.attr("transform", "translate(" + pieWidth / 2 + "," + height / 2 + ")"); + const { themeVariables } = globalConfig; + let [outerStrokeWidth] = parseFontSize(themeVariables.pieOuterStrokeWidth); + outerStrokeWidth ?? (outerStrokeWidth = 2); + const textPosition = pieConfig.textPosition; + const radius = Math.min(pieWidth, height) / 2 - MARGIN; + const arcGenerator = arc().innerRadius(0).outerRadius(radius); + const labelArcGenerator = arc().innerRadius(radius * textPosition).outerRadius(radius * textPosition); + group.append("circle").attr("cx", 0).attr("cy", 0).attr("r", radius + outerStrokeWidth / 2).attr("class", "pieOuterCircle"); + const arcs = createPieArcs(sections2); + const myGeneratedColors = [ + themeVariables.pie1, + themeVariables.pie2, + themeVariables.pie3, + themeVariables.pie4, + themeVariables.pie5, + themeVariables.pie6, + themeVariables.pie7, + themeVariables.pie8, + themeVariables.pie9, + themeVariables.pie10, + themeVariables.pie11, + themeVariables.pie12 + ]; + const color = scaleOrdinal(myGeneratedColors); + group.selectAll("mySlices").data(arcs).enter().append("path").attr("d", arcGenerator).attr("fill", (datum) => { + return color(datum.data.label); + }).attr("class", "pieCircle"); + let sum = 0; + Object.keys(sections2).forEach((key) => { + sum += sections2[key]; + }); + group.selectAll("mySlices").data(arcs).enter().append("text").text((datum) => { + return (datum.data.value / sum * 100).toFixed(0) + "%"; + }).attr("transform", (datum) => { + return "translate(" + labelArcGenerator.centroid(datum) + ")"; + }).style("text-anchor", "middle").attr("class", "slice"); + group.append("text").text(db2.getDiagramTitle()).attr("x", 0).attr("y", -(height - 50) / 2).attr("class", "pieTitleText"); + const legend = group.selectAll(".legend").data(color.domain()).enter().append("g").attr("class", "legend").attr("transform", (_datum, index) => { + const height2 = LEGEND_RECT_SIZE + LEGEND_SPACING; + const offset = height2 * color.domain().length / 2; + const horizontal = 12 * LEGEND_RECT_SIZE; + const vertical = index * height2 - offset; + return "translate(" + horizontal + "," + vertical + ")"; + }); + legend.append("rect").attr("width", LEGEND_RECT_SIZE).attr("height", LEGEND_RECT_SIZE).style("fill", color).style("stroke", color); + legend.data(arcs).append("text").attr("x", LEGEND_RECT_SIZE + LEGEND_SPACING).attr("y", LEGEND_RECT_SIZE - LEGEND_SPACING).text((datum) => { + const { label, value } = datum.data; + if (db2.getShowData()) { + return `${label} [${value}]`; + } + return label; + }); + const longestTextWidth = Math.max( + ...legend.selectAll("text").nodes().map((node) => (node == null ? void 0 : node.getBoundingClientRect().width) ?? 0) + ); + const totalWidth = pieWidth + MARGIN + LEGEND_RECT_SIZE + LEGEND_SPACING + longestTextWidth; + svg.attr("viewBox", `0 0 ${totalWidth} ${height}`); + configureSvgSize(svg, height, totalWidth, pieConfig.useMaxWidth); +}; +const renderer = { draw }; +const diagram = { + parser: parser$1, + db, + renderer, + styles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/pieDiagram-e854eaf0.js b/assets/lib/mermaid/pieDiagram-e854eaf0.js new file mode 100644 index 000000000..59a09dc68 --- /dev/null +++ b/assets/lib/mermaid/pieDiagram-e854eaf0.js @@ -0,0 +1,772 @@ +import { V as tau, W as defaultConfig, C as setDiagramTitle, D as getDiagramTitle, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, E as clear$1, d as sanitizeText, c as getConfig$1, l as log, X as cleanAndMerge, U as selectSvgElement, Y as parseFontSize, k as configureSvgSize } from "./mermaid-dcacb631.js"; +import { d as d3arc } from "./arc-c0f908ab.js"; +import { o as ordinal } from "./ordinal-475e0c0c.js"; +import { a as array } from "./array-b7dcf730.js"; +import { c as constant } from "./path-39bad7e2.js"; +import "./init-cc95ec8e.js"; +function descending(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} +function identity(d) { + return d; +} +function d3pie() { + var value = identity, sortValues = descending, sort = null, startAngle = constant(0), endAngle = constant(tau), padAngle = constant(0); + function pie(data) { + var i, n = (data = array(data)).length, j, k, sum = 0, index = new Array(n), arcs = new Array(n), a0 = +startAngle.apply(this, arguments), da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)), a1, p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)), pa = p * (da < 0 ? -1 : 1), v; + for (i = 0; i < n; ++i) { + if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) { + sum += v; + } + } + if (sortValues != null) + index.sort(function(i2, j2) { + return sortValues(arcs[i2], arcs[j2]); + }); + else if (sort != null) + index.sort(function(i2, j2) { + return sort(data[i2], data[j2]); + }); + for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) { + j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = { + data: data[j], + index: i, + value: v, + startAngle: a0, + endAngle: a1, + padAngle: p + }; + } + return arcs; + } + pie.value = function(_) { + return arguments.length ? (value = typeof _ === "function" ? _ : constant(+_), pie) : value; + }; + pie.sortValues = function(_) { + return arguments.length ? (sortValues = _, sort = null, pie) : sortValues; + }; + pie.sort = function(_) { + return arguments.length ? (sort = _, sortValues = null, pie) : sort; + }; + pie.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), pie) : startAngle; + }; + pie.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), pie) : endAngle; + }; + pie.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), pie) : padAngle; + }; + return pie; +} +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [1, 10, 12, 14, 16, 18, 19, 20, 21, 22], $V5 = [2, 4], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 20, 21, 22], $V7 = [20, 21, 22], $V8 = [2, 7], $V9 = [1, 12], $Va = [1, 13], $Vb = [1, 14], $Vc = [1, 15], $Vd = [1, 16], $Ve = [1, 17]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "eol": 4, "PIE": 5, "document": 6, "showData": 7, "line": 8, "statement": 9, "txt": 10, "value": 11, "title": 12, "title_value": 13, "acc_title": 14, "acc_title_value": 15, "acc_descr": 16, "acc_descr_value": 17, "acc_descr_multiline_value": 18, "section": 19, "NEWLINE": 20, ";": 21, "EOF": 22, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 5: "PIE", 7: "showData", 10: "txt", 11: "value", 12: "title", 13: "title_value", 14: "acc_title", 15: "acc_title_value", 16: "acc_descr", 17: "acc_descr_value", 18: "acc_descr_multiline_value", 19: "section", 20: "NEWLINE", 21: ";", 22: "EOF" }, + productions_: [0, [3, 2], [3, 2], [3, 3], [6, 0], [6, 2], [8, 2], [9, 0], [9, 2], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [4, 1], [4, 1], [4, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 3: + yy.setShowData(true); + break; + case 6: + this.$ = $$[$0 - 1]; + break; + case 8: + yy.addSection($$[$0 - 1], yy.cleanupValue($$[$0])); + break; + case 9: + this.$ = $$[$0].trim(); + yy.setDiagramTitle(this.$); + break; + case 10: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 11: + case 12: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 13: + yy.addSection($$[$0].substr(8)); + this.$ = $$[$0].substr(8); + break; + } + }, + table: [{ 3: 1, 4: 2, 5: $V0, 20: $V1, 21: $V2, 22: $V3 }, { 1: [3] }, { 3: 7, 4: 2, 5: $V0, 20: $V1, 21: $V2, 22: $V3 }, o($V4, $V5, { 6: 8, 7: [1, 9] }), o($V6, [2, 14]), o($V6, [2, 15]), o($V6, [2, 16]), { 1: [2, 1] }, o($V7, $V8, { 8: 10, 9: 11, 1: [2, 2], 10: $V9, 12: $Va, 14: $Vb, 16: $Vc, 18: $Vd, 19: $Ve }), o($V4, $V5, { 6: 18 }), o($V4, [2, 5]), { 4: 19, 20: $V1, 21: $V2, 22: $V3 }, { 11: [1, 20] }, { 13: [1, 21] }, { 15: [1, 22] }, { 17: [1, 23] }, o($V7, [2, 12]), o($V7, [2, 13]), o($V7, $V8, { 8: 10, 9: 11, 1: [2, 3], 10: $V9, 12: $Va, 14: $Vb, 16: $Vc, 18: $Vd, 19: $Ve }), o($V4, [2, 6]), o($V7, [2, 8]), o($V7, [2, 9]), o($V7, [2, 10]), o($V7, [2, 11])], + defaultActions: { 7: [2, 1] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + break; + case 1: + break; + case 2: + return 20; + case 3: + break; + case 4: + break; + case 5: + this.begin("title"); + return 12; + case 6: + this.popState(); + return "title_value"; + case 7: + this.begin("acc_title"); + return 14; + case 8: + this.popState(); + return "acc_title_value"; + case 9: + this.begin("acc_descr"); + return 16; + case 10: + this.popState(); + return "acc_descr_value"; + case 11: + this.begin("acc_descr_multiline"); + break; + case 12: + this.popState(); + break; + case 13: + return "acc_descr_multiline_value"; + case 14: + this.begin("string"); + break; + case 15: + this.popState(); + break; + case 16: + return "txt"; + case 17: + return 5; + case 18: + return 7; + case 19: + return "value"; + case 20: + return 22; + } + }, + rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:[\s]+)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:pie\b)/i, /^(?:showData\b)/i, /^(?::[\s]*[\d]+(?:\.[\d]+)?)/i, /^(?:$)/i], + conditions: { "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "title": { "rules": [6], "inclusive": false }, "string": { "rules": [15, 16], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 7, 9, 11, 14, 17, 18, 19, 20], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +const DEFAULT_PIE_CONFIG = defaultConfig.pie; +const DEFAULT_PIE_DB = { + sections: {}, + showData: false, + config: DEFAULT_PIE_CONFIG +}; +let sections = DEFAULT_PIE_DB.sections; +let showData = DEFAULT_PIE_DB.showData; +const config = structuredClone(DEFAULT_PIE_CONFIG); +const getConfig = () => structuredClone(config); +const clear = () => { + sections = structuredClone(DEFAULT_PIE_DB.sections); + showData = DEFAULT_PIE_DB.showData; + clear$1(); +}; +const addSection = (label, value) => { + label = sanitizeText(label, getConfig$1()); + if (sections[label] === void 0) { + sections[label] = value; + log.debug(`added new section: ${label}, with value: ${value}`); + } +}; +const getSections = () => sections; +const cleanupValue = (value) => { + if (value.substring(0, 1) === ":") { + value = value.substring(1).trim(); + } + return Number(value.trim()); +}; +const setShowData = (toggle) => { + showData = toggle; +}; +const getShowData = () => showData; +const db = { + getConfig, + clear, + setDiagramTitle, + getDiagramTitle, + setAccTitle, + getAccTitle, + setAccDescription, + getAccDescription, + addSection, + getSections, + cleanupValue, + setShowData, + getShowData +}; +const getStyles = (options) => ` + .pieCircle{ + stroke: ${options.pieStrokeColor}; + stroke-width : ${options.pieStrokeWidth}; + opacity : ${options.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${options.pieOuterStrokeColor}; + stroke-width: ${options.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${options.pieTitleTextSize}; + fill: ${options.pieTitleTextColor}; + font-family: ${options.fontFamily}; + } + .slice { + font-family: ${options.fontFamily}; + fill: ${options.pieSectionTextColor}; + font-size:${options.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${options.pieLegendTextColor}; + font-family: ${options.fontFamily}; + font-size: ${options.pieLegendTextSize}; + } +`; +const styles = getStyles; +const createPieArcs = (sections2) => { + const pieData = Object.entries(sections2).map((element) => { + return { + label: element[0], + value: element[1] + }; + }).sort((a, b) => { + return b.value - a.value; + }); + const pie = d3pie().value( + (d3Section) => d3Section.value + ); + return pie(pieData); +}; +const draw = (text, id, _version, diagObj) => { + log.debug("rendering pie chart\n" + text); + const db2 = diagObj.db; + const globalConfig = getConfig$1(); + const pieConfig = cleanAndMerge(db2.getConfig(), globalConfig.pie); + const MARGIN = 40; + const LEGEND_RECT_SIZE = 18; + const LEGEND_SPACING = 4; + const height = 450; + const pieWidth = height; + const svg = selectSvgElement(id); + const group = svg.append("g"); + const sections2 = db2.getSections(); + group.attr("transform", "translate(" + pieWidth / 2 + "," + height / 2 + ")"); + const { themeVariables } = globalConfig; + let [outerStrokeWidth] = parseFontSize(themeVariables.pieOuterStrokeWidth); + outerStrokeWidth ?? (outerStrokeWidth = 2); + const textPosition = pieConfig.textPosition; + const radius = Math.min(pieWidth, height) / 2 - MARGIN; + const arcGenerator = d3arc().innerRadius(0).outerRadius(radius); + const labelArcGenerator = d3arc().innerRadius(radius * textPosition).outerRadius(radius * textPosition); + group.append("circle").attr("cx", 0).attr("cy", 0).attr("r", radius + outerStrokeWidth / 2).attr("class", "pieOuterCircle"); + const arcs = createPieArcs(sections2); + const myGeneratedColors = [ + themeVariables.pie1, + themeVariables.pie2, + themeVariables.pie3, + themeVariables.pie4, + themeVariables.pie5, + themeVariables.pie6, + themeVariables.pie7, + themeVariables.pie8, + themeVariables.pie9, + themeVariables.pie10, + themeVariables.pie11, + themeVariables.pie12 + ]; + const color = ordinal(myGeneratedColors); + group.selectAll("mySlices").data(arcs).enter().append("path").attr("d", arcGenerator).attr("fill", (datum) => { + return color(datum.data.label); + }).attr("class", "pieCircle"); + let sum = 0; + Object.keys(sections2).forEach((key) => { + sum += sections2[key]; + }); + group.selectAll("mySlices").data(arcs).enter().append("text").text((datum) => { + return (datum.data.value / sum * 100).toFixed(0) + "%"; + }).attr("transform", (datum) => { + return "translate(" + labelArcGenerator.centroid(datum) + ")"; + }).style("text-anchor", "middle").attr("class", "slice"); + group.append("text").text(db2.getDiagramTitle()).attr("x", 0).attr("y", -(height - 50) / 2).attr("class", "pieTitleText"); + const legend = group.selectAll(".legend").data(color.domain()).enter().append("g").attr("class", "legend").attr("transform", (_datum, index) => { + const height2 = LEGEND_RECT_SIZE + LEGEND_SPACING; + const offset = height2 * color.domain().length / 2; + const horizontal = 12 * LEGEND_RECT_SIZE; + const vertical = index * height2 - offset; + return "translate(" + horizontal + "," + vertical + ")"; + }); + legend.append("rect").attr("width", LEGEND_RECT_SIZE).attr("height", LEGEND_RECT_SIZE).style("fill", color).style("stroke", color); + legend.data(arcs).append("text").attr("x", LEGEND_RECT_SIZE + LEGEND_SPACING).attr("y", LEGEND_RECT_SIZE - LEGEND_SPACING).text((datum) => { + const { label, value } = datum.data; + if (db2.getShowData()) { + return `${label} [${value}]`; + } + return label; + }); + const longestTextWidth = Math.max( + ...legend.selectAll("text").nodes().map((node) => (node == null ? void 0 : node.getBoundingClientRect().width) ?? 0) + ); + const totalWidth = pieWidth + MARGIN + LEGEND_RECT_SIZE + LEGEND_SPACING + longestTextWidth; + svg.attr("viewBox", `0 0 ${totalWidth} ${height}`); + configureSvgSize(svg, height, totalWidth, pieConfig.useMaxWidth); +}; +const renderer = { draw }; +const diagram = { + parser: parser$1, + db, + renderer, + styles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/quadrantDiagram-25a9848b.js b/assets/lib/mermaid/quadrantDiagram-25a9848b.js new file mode 100644 index 000000000..53699f1cb --- /dev/null +++ b/assets/lib/mermaid/quadrantDiagram-25a9848b.js @@ -0,0 +1,1199 @@ +import { Z as getThemeVariables, W as defaultConfig, l as log, s as setAccTitle, g as getAccTitle, C as setDiagramTitle, D as getDiagramTitle, a as getAccDescription, b as setAccDescription, c as getConfig, E as clear$1, d as sanitizeText, j as d3select, k as configureSvgSize } from "./mermaid-dcacb631.js"; +import { l as linear } from "./linear-0ad15847.js"; +import "./init-cc95ec8e.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [1, 7], $V5 = [1, 5, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $V6 = [1, 5, 6, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $V7 = [32, 33, 34], $V8 = [2, 7], $V9 = [1, 13], $Va = [1, 17], $Vb = [1, 18], $Vc = [1, 19], $Vd = [1, 20], $Ve = [1, 21], $Vf = [1, 22], $Vg = [1, 23], $Vh = [1, 24], $Vi = [1, 25], $Vj = [1, 26], $Vk = [1, 27], $Vl = [1, 30], $Vm = [1, 31], $Vn = [1, 32], $Vo = [1, 33], $Vp = [1, 34], $Vq = [1, 35], $Vr = [1, 36], $Vs = [1, 37], $Vt = [1, 38], $Vu = [1, 39], $Vv = [1, 40], $Vw = [1, 41], $Vx = [1, 42], $Vy = [1, 57], $Vz = [1, 58], $VA = [5, 22, 26, 32, 33, 34, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "eol": 4, "SPACE": 5, "QUADRANT": 6, "document": 7, "line": 8, "statement": 9, "axisDetails": 10, "quadrantDetails": 11, "points": 12, "title": 13, "title_value": 14, "acc_title": 15, "acc_title_value": 16, "acc_descr": 17, "acc_descr_value": 18, "acc_descr_multiline_value": 19, "section": 20, "text": 21, "point_start": 22, "point_x": 23, "point_y": 24, "X-AXIS": 25, "AXIS-TEXT-DELIMITER": 26, "Y-AXIS": 27, "QUADRANT_1": 28, "QUADRANT_2": 29, "QUADRANT_3": 30, "QUADRANT_4": 31, "NEWLINE": 32, "SEMI": 33, "EOF": 34, "alphaNumToken": 35, "textNoTagsToken": 36, "STR": 37, "MD_STR": 38, "alphaNum": 39, "PUNCTUATION": 40, "AMP": 41, "NUM": 42, "ALPHA": 43, "COMMA": 44, "PLUS": 45, "EQUALS": 46, "MULT": 47, "DOT": 48, "BRKT": 49, "UNDERSCORE": 50, "MINUS": 51, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 5: "SPACE", 6: "QUADRANT", 13: "title", 14: "title_value", 15: "acc_title", 16: "acc_title_value", 17: "acc_descr", 18: "acc_descr_value", 19: "acc_descr_multiline_value", 20: "section", 22: "point_start", 23: "point_x", 24: "point_y", 25: "X-AXIS", 26: "AXIS-TEXT-DELIMITER", 27: "Y-AXIS", 28: "QUADRANT_1", 29: "QUADRANT_2", 30: "QUADRANT_3", 31: "QUADRANT_4", 32: "NEWLINE", 33: "SEMI", 34: "EOF", 37: "STR", 38: "MD_STR", 40: "PUNCTUATION", 41: "AMP", 42: "NUM", 43: "ALPHA", 44: "COMMA", 45: "PLUS", 46: "EQUALS", 47: "MULT", 48: "DOT", 49: "BRKT", 50: "UNDERSCORE", 51: "MINUS" }, + productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [9, 0], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [12, 4], [10, 4], [10, 3], [10, 2], [10, 4], [10, 3], [10, 2], [11, 2], [11, 2], [11, 2], [11, 2], [4, 1], [4, 1], [4, 1], [21, 1], [21, 2], [21, 1], [21, 1], [39, 1], [39, 2], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [36, 1], [36, 1], [36, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 12: + this.$ = $$[$0].trim(); + yy.setDiagramTitle(this.$); + break; + case 13: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 14: + case 15: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 16: + yy.addSection($$[$0].substr(8)); + this.$ = $$[$0].substr(8); + break; + case 17: + yy.addPoint($$[$0 - 3], $$[$0 - 1], $$[$0]); + break; + case 18: + yy.setXAxisLeftText($$[$0 - 2]); + yy.setXAxisRightText($$[$0]); + break; + case 19: + $$[$0 - 1].text += " ⟶ "; + yy.setXAxisLeftText($$[$0 - 1]); + break; + case 20: + yy.setXAxisLeftText($$[$0]); + break; + case 21: + yy.setYAxisBottomText($$[$0 - 2]); + yy.setYAxisTopText($$[$0]); + break; + case 22: + $$[$0 - 1].text += " ⟶ "; + yy.setYAxisBottomText($$[$0 - 1]); + break; + case 23: + yy.setYAxisBottomText($$[$0]); + break; + case 24: + yy.setQuadrant1Text($$[$0]); + break; + case 25: + yy.setQuadrant2Text($$[$0]); + break; + case 26: + yy.setQuadrant3Text($$[$0]); + break; + case 27: + yy.setQuadrant4Text($$[$0]); + break; + case 31: + this.$ = { text: $$[$0], type: "text" }; + break; + case 32: + this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type }; + break; + case 33: + this.$ = { text: $$[$0], type: "text" }; + break; + case 34: + this.$ = { text: $$[$0], type: "markdown" }; + break; + case 35: + this.$ = $$[$0]; + break; + case 36: + this.$ = $$[$0 - 1] + "" + $$[$0]; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, { 1: [3] }, { 3: 8, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, { 3: 9, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, o($V5, [2, 4], { 7: 10 }), o($V6, [2, 28]), o($V6, [2, 29]), o($V6, [2, 30]), { 1: [2, 1] }, { 1: [2, 2] }, o($V7, $V8, { 8: 11, 9: 12, 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 1: [2, 3], 5: $V9, 13: $Va, 15: $Vb, 17: $Vc, 19: $Vd, 20: $Ve, 25: $Vf, 27: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V5, [2, 5]), { 4: 43, 32: $V2, 33: $V3, 34: $V4 }, o($V7, $V8, { 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 9: 44, 5: $V9, 13: $Va, 15: $Vb, 17: $Vc, 19: $Vd, 20: $Ve, 25: $Vf, 27: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V7, [2, 9]), o($V7, [2, 10]), o($V7, [2, 11]), { 14: [1, 45] }, { 16: [1, 46] }, { 18: [1, 47] }, o($V7, [2, 15]), o($V7, [2, 16]), { 21: 48, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 49, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 50, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 51, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 52, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 53, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 5: $Vy, 22: [1, 54], 35: 56, 36: 55, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }, o($VA, [2, 31]), o($VA, [2, 33]), o($VA, [2, 34]), o($VA, [2, 37]), o($VA, [2, 38]), o($VA, [2, 39]), o($VA, [2, 40]), o($VA, [2, 41]), o($VA, [2, 42]), o($VA, [2, 43]), o($VA, [2, 44]), o($VA, [2, 45]), o($VA, [2, 46]), o($VA, [2, 47]), o($V5, [2, 6]), o($V7, [2, 8]), o($V7, [2, 12]), o($V7, [2, 13]), o($V7, [2, 14]), o($V7, [2, 20], { 36: 55, 35: 56, 5: $Vy, 26: [1, 59], 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 23], { 36: 55, 35: 56, 5: $Vy, 26: [1, 60], 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 24], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 25], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 26], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 27], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), { 23: [1, 61] }, o($VA, [2, 32]), o($VA, [2, 48]), o($VA, [2, 49]), o($VA, [2, 50]), o($V7, [2, 19], { 35: 29, 21: 62, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V7, [2, 22], { 35: 29, 21: 63, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), { 24: [1, 64] }, o($V7, [2, 18], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 21], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 17])], + defaultActions: { 8: [2, 1], 9: [2, 2] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + break; + case 1: + break; + case 2: + return 32; + case 3: + break; + case 4: + this.begin("title"); + return 13; + case 5: + this.popState(); + return "title_value"; + case 6: + this.begin("acc_title"); + return 15; + case 7: + this.popState(); + return "acc_title_value"; + case 8: + this.begin("acc_descr"); + return 17; + case 9: + this.popState(); + return "acc_descr_value"; + case 10: + this.begin("acc_descr_multiline"); + break; + case 11: + this.popState(); + break; + case 12: + return "acc_descr_multiline_value"; + case 13: + return 25; + case 14: + return 27; + case 15: + return 26; + case 16: + return 28; + case 17: + return 29; + case 18: + return 30; + case 19: + return 31; + case 20: + this.begin("md_string"); + break; + case 21: + return "MD_STR"; + case 22: + this.popState(); + break; + case 23: + this.begin("string"); + break; + case 24: + this.popState(); + break; + case 25: + return "STR"; + case 26: + this.begin("point_start"); + return 22; + case 27: + this.begin("point_x"); + return 23; + case 28: + this.popState(); + break; + case 29: + this.popState(); + this.begin("point_y"); + break; + case 30: + this.popState(); + return 24; + case 31: + return 6; + case 32: + return 43; + case 33: + return "COLON"; + case 34: + return 45; + case 35: + return 44; + case 36: + return 46; + case 37: + return 46; + case 38: + return 47; + case 39: + return 49; + case 40: + return 50; + case 41: + return 48; + case 42: + return 41; + case 43: + return 51; + case 44: + return 42; + case 45: + return 5; + case 46: + return 33; + case 47: + return 40; + case 48: + return 34; + } + }, + rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?: *x-axis *)/i, /^(?: *y-axis *)/i, /^(?: *--+> *)/i, /^(?: *quadrant-1 *)/i, /^(?: *quadrant-2 *)/i, /^(?: *quadrant-3 *)/i, /^(?: *quadrant-4 *)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:\s*:\s*\[\s*)/i, /^(?:(1)|(0(.\d+)?))/i, /^(?:\s*\] *)/i, /^(?:\s*,\s*)/i, /^(?:(1)|(0(.\d+)?))/i, /^(?: *quadrantChart *)/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:=)/i, /^(?:\*)/i, /^(?:#)/i, /^(?:[\_])/i, /^(?:\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\s)/i, /^(?:;)/i, /^(?:[!"#$%&'*+,-.`?\\_/])/i, /^(?:$)/i], + conditions: { "point_y": { "rules": [30], "inclusive": false }, "point_x": { "rules": [29], "inclusive": false }, "point_start": { "rules": [27, 28], "inclusive": false }, "acc_descr_multiline": { "rules": [11, 12], "inclusive": false }, "acc_descr": { "rules": [9], "inclusive": false }, "acc_title": { "rules": [7], "inclusive": false }, "title": { "rules": [5], "inclusive": false }, "md_string": { "rules": [21, 22], "inclusive": false }, "string": { "rules": [24, 25], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 23, 26, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +const defaultThemeVariables = getThemeVariables(); +class QuadrantBuilder { + constructor() { + this.config = this.getDefaultConfig(); + this.themeConfig = this.getDefaultThemeConfig(); + this.data = this.getDefaultData(); + } + getDefaultData() { + return { + titleText: "", + quadrant1Text: "", + quadrant2Text: "", + quadrant3Text: "", + quadrant4Text: "", + xAxisLeftText: "", + xAxisRightText: "", + yAxisBottomText: "", + yAxisTopText: "", + points: [] + }; + } + getDefaultConfig() { + var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r; + return { + showXAxis: true, + showYAxis: true, + showTitle: true, + chartHeight: ((_a = defaultConfig.quadrantChart) == null ? void 0 : _a.chartWidth) || 500, + chartWidth: ((_b = defaultConfig.quadrantChart) == null ? void 0 : _b.chartHeight) || 500, + titlePadding: ((_c = defaultConfig.quadrantChart) == null ? void 0 : _c.titlePadding) || 10, + titleFontSize: ((_d = defaultConfig.quadrantChart) == null ? void 0 : _d.titleFontSize) || 20, + quadrantPadding: ((_e = defaultConfig.quadrantChart) == null ? void 0 : _e.quadrantPadding) || 5, + xAxisLabelPadding: ((_f = defaultConfig.quadrantChart) == null ? void 0 : _f.xAxisLabelPadding) || 5, + yAxisLabelPadding: ((_g = defaultConfig.quadrantChart) == null ? void 0 : _g.yAxisLabelPadding) || 5, + xAxisLabelFontSize: ((_h = defaultConfig.quadrantChart) == null ? void 0 : _h.xAxisLabelFontSize) || 16, + yAxisLabelFontSize: ((_i = defaultConfig.quadrantChart) == null ? void 0 : _i.yAxisLabelFontSize) || 16, + quadrantLabelFontSize: ((_j = defaultConfig.quadrantChart) == null ? void 0 : _j.quadrantLabelFontSize) || 16, + quadrantTextTopPadding: ((_k = defaultConfig.quadrantChart) == null ? void 0 : _k.quadrantTextTopPadding) || 5, + pointTextPadding: ((_l = defaultConfig.quadrantChart) == null ? void 0 : _l.pointTextPadding) || 5, + pointLabelFontSize: ((_m = defaultConfig.quadrantChart) == null ? void 0 : _m.pointLabelFontSize) || 12, + pointRadius: ((_n = defaultConfig.quadrantChart) == null ? void 0 : _n.pointRadius) || 5, + xAxisPosition: ((_o = defaultConfig.quadrantChart) == null ? void 0 : _o.xAxisPosition) || "top", + yAxisPosition: ((_p = defaultConfig.quadrantChart) == null ? void 0 : _p.yAxisPosition) || "left", + quadrantInternalBorderStrokeWidth: ((_q = defaultConfig.quadrantChart) == null ? void 0 : _q.quadrantInternalBorderStrokeWidth) || 1, + quadrantExternalBorderStrokeWidth: ((_r = defaultConfig.quadrantChart) == null ? void 0 : _r.quadrantExternalBorderStrokeWidth) || 2 + }; + } + getDefaultThemeConfig() { + return { + quadrant1Fill: defaultThemeVariables.quadrant1Fill, + quadrant2Fill: defaultThemeVariables.quadrant2Fill, + quadrant3Fill: defaultThemeVariables.quadrant3Fill, + quadrant4Fill: defaultThemeVariables.quadrant4Fill, + quadrant1TextFill: defaultThemeVariables.quadrant1TextFill, + quadrant2TextFill: defaultThemeVariables.quadrant2TextFill, + quadrant3TextFill: defaultThemeVariables.quadrant3TextFill, + quadrant4TextFill: defaultThemeVariables.quadrant4TextFill, + quadrantPointFill: defaultThemeVariables.quadrantPointFill, + quadrantPointTextFill: defaultThemeVariables.quadrantPointTextFill, + quadrantXAxisTextFill: defaultThemeVariables.quadrantXAxisTextFill, + quadrantYAxisTextFill: defaultThemeVariables.quadrantYAxisTextFill, + quadrantTitleFill: defaultThemeVariables.quadrantTitleFill, + quadrantInternalBorderStrokeFill: defaultThemeVariables.quadrantInternalBorderStrokeFill, + quadrantExternalBorderStrokeFill: defaultThemeVariables.quadrantExternalBorderStrokeFill + }; + } + clear() { + this.config = this.getDefaultConfig(); + this.themeConfig = this.getDefaultThemeConfig(); + this.data = this.getDefaultData(); + log.info("clear called"); + } + setData(data) { + this.data = { ...this.data, ...data }; + } + addPoints(points) { + this.data.points = [...points, ...this.data.points]; + } + setConfig(config2) { + log.trace("setConfig called with: ", config2); + this.config = { ...this.config, ...config2 }; + } + setThemeConfig(themeConfig) { + log.trace("setThemeConfig called with: ", themeConfig); + this.themeConfig = { ...this.themeConfig, ...themeConfig }; + } + calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle) { + const xAxisSpaceCalculation = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize; + const xAxisSpace = { + top: xAxisPosition === "top" && showXAxis ? xAxisSpaceCalculation : 0, + bottom: xAxisPosition === "bottom" && showXAxis ? xAxisSpaceCalculation : 0 + }; + const yAxisSpaceCalculation = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize; + const yAxisSpace = { + left: this.config.yAxisPosition === "left" && showYAxis ? yAxisSpaceCalculation : 0, + right: this.config.yAxisPosition === "right" && showYAxis ? yAxisSpaceCalculation : 0 + }; + const titleSpaceCalculation = this.config.titleFontSize + this.config.titlePadding * 2; + const titleSpace = { + top: showTitle ? titleSpaceCalculation : 0 + }; + const quadrantLeft = this.config.quadrantPadding + yAxisSpace.left; + const quadrantTop = this.config.quadrantPadding + xAxisSpace.top + titleSpace.top; + const quadrantWidth = this.config.chartWidth - this.config.quadrantPadding * 2 - yAxisSpace.left - yAxisSpace.right; + const quadrantHeight = this.config.chartHeight - this.config.quadrantPadding * 2 - xAxisSpace.top - xAxisSpace.bottom - titleSpace.top; + const quadrantHalfWidth = quadrantWidth / 2; + const quadrantHalfHeight = quadrantHeight / 2; + const quadrantSpace = { + quadrantLeft, + quadrantTop, + quadrantWidth, + quadrantHalfWidth, + quadrantHeight, + quadrantHalfHeight + }; + return { + xAxisSpace, + yAxisSpace, + titleSpace, + quadrantSpace + }; + } + getAxisLabels(xAxisPosition, showXAxis, showYAxis, spaceData) { + const { quadrantSpace, titleSpace } = spaceData; + const { + quadrantHalfHeight, + quadrantHeight, + quadrantLeft, + quadrantHalfWidth, + quadrantTop, + quadrantWidth + } = quadrantSpace; + const drawXAxisLabelsInMiddle = Boolean(this.data.xAxisRightText); + const drawYAxisLabelsInMiddle = Boolean(this.data.yAxisTopText); + const axisLabels = []; + if (this.data.xAxisLeftText && showXAxis) { + axisLabels.push({ + text: this.data.xAxisLeftText, + fill: this.themeConfig.quadrantXAxisTextFill, + x: quadrantLeft + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0), + y: xAxisPosition === "top" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding, + fontSize: this.config.xAxisLabelFontSize, + verticalPos: drawXAxisLabelsInMiddle ? "center" : "left", + horizontalPos: "top", + rotation: 0 + }); + } + if (this.data.xAxisRightText && showXAxis) { + axisLabels.push({ + text: this.data.xAxisRightText, + fill: this.themeConfig.quadrantXAxisTextFill, + x: quadrantLeft + quadrantHalfWidth + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0), + y: xAxisPosition === "top" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding, + fontSize: this.config.xAxisLabelFontSize, + verticalPos: drawXAxisLabelsInMiddle ? "center" : "left", + horizontalPos: "top", + rotation: 0 + }); + } + if (this.data.yAxisBottomText && showYAxis) { + axisLabels.push({ + text: this.data.yAxisBottomText, + fill: this.themeConfig.quadrantYAxisTextFill, + x: this.config.yAxisPosition === "left" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding, + y: quadrantTop + quadrantHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0), + fontSize: this.config.yAxisLabelFontSize, + verticalPos: drawYAxisLabelsInMiddle ? "center" : "left", + horizontalPos: "top", + rotation: -90 + }); + } + if (this.data.yAxisTopText && showYAxis) { + axisLabels.push({ + text: this.data.yAxisTopText, + fill: this.themeConfig.quadrantYAxisTextFill, + x: this.config.yAxisPosition === "left" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding, + y: quadrantTop + quadrantHalfHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0), + fontSize: this.config.yAxisLabelFontSize, + verticalPos: drawYAxisLabelsInMiddle ? "center" : "left", + horizontalPos: "top", + rotation: -90 + }); + } + return axisLabels; + } + getQuadrants(spaceData) { + const { quadrantSpace } = spaceData; + const { quadrantHalfHeight, quadrantLeft, quadrantHalfWidth, quadrantTop } = quadrantSpace; + const quadrants = [ + { + text: { + text: this.data.quadrant1Text, + fill: this.themeConfig.quadrant1TextFill, + x: 0, + y: 0, + fontSize: this.config.quadrantLabelFontSize, + verticalPos: "center", + horizontalPos: "middle", + rotation: 0 + }, + x: quadrantLeft + quadrantHalfWidth, + y: quadrantTop, + width: quadrantHalfWidth, + height: quadrantHalfHeight, + fill: this.themeConfig.quadrant1Fill + }, + { + text: { + text: this.data.quadrant2Text, + fill: this.themeConfig.quadrant2TextFill, + x: 0, + y: 0, + fontSize: this.config.quadrantLabelFontSize, + verticalPos: "center", + horizontalPos: "middle", + rotation: 0 + }, + x: quadrantLeft, + y: quadrantTop, + width: quadrantHalfWidth, + height: quadrantHalfHeight, + fill: this.themeConfig.quadrant2Fill + }, + { + text: { + text: this.data.quadrant3Text, + fill: this.themeConfig.quadrant3TextFill, + x: 0, + y: 0, + fontSize: this.config.quadrantLabelFontSize, + verticalPos: "center", + horizontalPos: "middle", + rotation: 0 + }, + x: quadrantLeft, + y: quadrantTop + quadrantHalfHeight, + width: quadrantHalfWidth, + height: quadrantHalfHeight, + fill: this.themeConfig.quadrant3Fill + }, + { + text: { + text: this.data.quadrant4Text, + fill: this.themeConfig.quadrant4TextFill, + x: 0, + y: 0, + fontSize: this.config.quadrantLabelFontSize, + verticalPos: "center", + horizontalPos: "middle", + rotation: 0 + }, + x: quadrantLeft + quadrantHalfWidth, + y: quadrantTop + quadrantHalfHeight, + width: quadrantHalfWidth, + height: quadrantHalfHeight, + fill: this.themeConfig.quadrant4Fill + } + ]; + for (const quadrant of quadrants) { + quadrant.text.x = quadrant.x + quadrant.width / 2; + if (this.data.points.length === 0) { + quadrant.text.y = quadrant.y + quadrant.height / 2; + quadrant.text.horizontalPos = "middle"; + } else { + quadrant.text.y = quadrant.y + this.config.quadrantTextTopPadding; + quadrant.text.horizontalPos = "top"; + } + } + return quadrants; + } + getQuadrantPoints(spaceData) { + const { quadrantSpace } = spaceData; + const { quadrantHeight, quadrantLeft, quadrantTop, quadrantWidth } = quadrantSpace; + const xAxis = linear().domain([0, 1]).range([quadrantLeft, quadrantWidth + quadrantLeft]); + const yAxis = linear().domain([0, 1]).range([quadrantHeight + quadrantTop, quadrantTop]); + const points = this.data.points.map((point) => { + const props = { + x: xAxis(point.x), + y: yAxis(point.y), + fill: this.themeConfig.quadrantPointFill, + radius: this.config.pointRadius, + text: { + text: point.text, + fill: this.themeConfig.quadrantPointTextFill, + x: xAxis(point.x), + y: yAxis(point.y) + this.config.pointTextPadding, + verticalPos: "center", + horizontalPos: "top", + fontSize: this.config.pointLabelFontSize, + rotation: 0 + } + }; + return props; + }); + return points; + } + getBorders(spaceData) { + const halfExternalBorderWidth = this.config.quadrantExternalBorderStrokeWidth / 2; + const { quadrantSpace } = spaceData; + const { + quadrantHalfHeight, + quadrantHeight, + quadrantLeft, + quadrantHalfWidth, + quadrantTop, + quadrantWidth + } = quadrantSpace; + const borderLines = [ + // top border + { + strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, + strokeWidth: this.config.quadrantExternalBorderStrokeWidth, + x1: quadrantLeft - halfExternalBorderWidth, + y1: quadrantTop, + x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth, + y2: quadrantTop + }, + // right border + { + strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, + strokeWidth: this.config.quadrantExternalBorderStrokeWidth, + x1: quadrantLeft + quadrantWidth, + y1: quadrantTop + halfExternalBorderWidth, + x2: quadrantLeft + quadrantWidth, + y2: quadrantTop + quadrantHeight - halfExternalBorderWidth + }, + // bottom border + { + strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, + strokeWidth: this.config.quadrantExternalBorderStrokeWidth, + x1: quadrantLeft - halfExternalBorderWidth, + y1: quadrantTop + quadrantHeight, + x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth, + y2: quadrantTop + quadrantHeight + }, + // left border + { + strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, + strokeWidth: this.config.quadrantExternalBorderStrokeWidth, + x1: quadrantLeft, + y1: quadrantTop + halfExternalBorderWidth, + x2: quadrantLeft, + y2: quadrantTop + quadrantHeight - halfExternalBorderWidth + }, + // vertical inner border + { + strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill, + strokeWidth: this.config.quadrantInternalBorderStrokeWidth, + x1: quadrantLeft + quadrantHalfWidth, + y1: quadrantTop + halfExternalBorderWidth, + x2: quadrantLeft + quadrantHalfWidth, + y2: quadrantTop + quadrantHeight - halfExternalBorderWidth + }, + // horizontal inner border + { + strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill, + strokeWidth: this.config.quadrantInternalBorderStrokeWidth, + x1: quadrantLeft + halfExternalBorderWidth, + y1: quadrantTop + quadrantHalfHeight, + x2: quadrantLeft + quadrantWidth - halfExternalBorderWidth, + y2: quadrantTop + quadrantHalfHeight + } + ]; + return borderLines; + } + getTitle(showTitle) { + if (showTitle) { + return { + text: this.data.titleText, + fill: this.themeConfig.quadrantTitleFill, + fontSize: this.config.titleFontSize, + horizontalPos: "top", + verticalPos: "center", + rotation: 0, + y: this.config.titlePadding, + x: this.config.chartWidth / 2 + }; + } + return; + } + build() { + const showXAxis = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText); + const showYAxis = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText); + const showTitle = this.config.showTitle && !!this.data.titleText; + const xAxisPosition = this.data.points.length > 0 ? "bottom" : this.config.xAxisPosition; + const calculatedSpace = this.calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle); + return { + points: this.getQuadrantPoints(calculatedSpace), + quadrants: this.getQuadrants(calculatedSpace), + axisLabels: this.getAxisLabels(xAxisPosition, showXAxis, showYAxis, calculatedSpace), + borderLines: this.getBorders(calculatedSpace), + title: this.getTitle(showTitle) + }; + } +} +const config = getConfig(); +function textSanitizer(text) { + return sanitizeText(text.trim(), config); +} +const quadrantBuilder = new QuadrantBuilder(); +function setQuadrant1Text(textObj) { + quadrantBuilder.setData({ quadrant1Text: textSanitizer(textObj.text) }); +} +function setQuadrant2Text(textObj) { + quadrantBuilder.setData({ quadrant2Text: textSanitizer(textObj.text) }); +} +function setQuadrant3Text(textObj) { + quadrantBuilder.setData({ quadrant3Text: textSanitizer(textObj.text) }); +} +function setQuadrant4Text(textObj) { + quadrantBuilder.setData({ quadrant4Text: textSanitizer(textObj.text) }); +} +function setXAxisLeftText(textObj) { + quadrantBuilder.setData({ xAxisLeftText: textSanitizer(textObj.text) }); +} +function setXAxisRightText(textObj) { + quadrantBuilder.setData({ xAxisRightText: textSanitizer(textObj.text) }); +} +function setYAxisTopText(textObj) { + quadrantBuilder.setData({ yAxisTopText: textSanitizer(textObj.text) }); +} +function setYAxisBottomText(textObj) { + quadrantBuilder.setData({ yAxisBottomText: textSanitizer(textObj.text) }); +} +function addPoint(textObj, x, y) { + quadrantBuilder.addPoints([{ x, y, text: textSanitizer(textObj.text) }]); +} +function setWidth(width) { + quadrantBuilder.setConfig({ chartWidth: width }); +} +function setHeight(height) { + quadrantBuilder.setConfig({ chartHeight: height }); +} +function getQuadrantData() { + const config2 = getConfig(); + const { themeVariables, quadrantChart: quadrantChartConfig } = config2; + if (quadrantChartConfig) { + quadrantBuilder.setConfig(quadrantChartConfig); + } + quadrantBuilder.setThemeConfig({ + quadrant1Fill: themeVariables.quadrant1Fill, + quadrant2Fill: themeVariables.quadrant2Fill, + quadrant3Fill: themeVariables.quadrant3Fill, + quadrant4Fill: themeVariables.quadrant4Fill, + quadrant1TextFill: themeVariables.quadrant1TextFill, + quadrant2TextFill: themeVariables.quadrant2TextFill, + quadrant3TextFill: themeVariables.quadrant3TextFill, + quadrant4TextFill: themeVariables.quadrant4TextFill, + quadrantPointFill: themeVariables.quadrantPointFill, + quadrantPointTextFill: themeVariables.quadrantPointTextFill, + quadrantXAxisTextFill: themeVariables.quadrantXAxisTextFill, + quadrantYAxisTextFill: themeVariables.quadrantYAxisTextFill, + quadrantExternalBorderStrokeFill: themeVariables.quadrantExternalBorderStrokeFill, + quadrantInternalBorderStrokeFill: themeVariables.quadrantInternalBorderStrokeFill, + quadrantTitleFill: themeVariables.quadrantTitleFill + }); + quadrantBuilder.setData({ titleText: getDiagramTitle() }); + return quadrantBuilder.build(); +} +const clear = function() { + quadrantBuilder.clear(); + clear$1(); +}; +const db = { + setWidth, + setHeight, + setQuadrant1Text, + setQuadrant2Text, + setQuadrant3Text, + setQuadrant4Text, + setXAxisLeftText, + setXAxisRightText, + setYAxisTopText, + setYAxisBottomText, + addPoint, + getQuadrantData, + clear, + setAccTitle, + getAccTitle, + setDiagramTitle, + getDiagramTitle, + getAccDescription, + setAccDescription +}; +const draw = (txt, id, _version, diagObj) => { + var _a, _b, _c; + function getDominantBaseLine(horizontalPos) { + return horizontalPos === "top" ? "hanging" : "middle"; + } + function getTextAnchor(verticalPos) { + return verticalPos === "left" ? "start" : "middle"; + } + function getTransformation(data) { + return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`; + } + const conf = getConfig(); + log.debug("Rendering quadrant chart\n" + txt); + const securityLevel = conf.securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const svg = root.select(`[id="${id}"]`); + const group = svg.append("g").attr("class", "main"); + const width = ((_a = conf.quadrantChart) == null ? void 0 : _a.chartWidth) || 500; + const height = ((_b = conf.quadrantChart) == null ? void 0 : _b.chartHeight) || 500; + configureSvgSize(svg, height, width, ((_c = conf.quadrantChart) == null ? void 0 : _c.useMaxWidth) || true); + svg.attr("viewBox", "0 0 " + width + " " + height); + diagObj.db.setHeight(height); + diagObj.db.setWidth(width); + const quadrantData = diagObj.db.getQuadrantData(); + const quadrantsGroup = group.append("g").attr("class", "quadrants"); + const borderGroup = group.append("g").attr("class", "border"); + const dataPointGroup = group.append("g").attr("class", "data-points"); + const labelGroup = group.append("g").attr("class", "labels"); + const titleGroup = group.append("g").attr("class", "title"); + if (quadrantData.title) { + titleGroup.append("text").attr("x", 0).attr("y", 0).attr("fill", quadrantData.title.fill).attr("font-size", quadrantData.title.fontSize).attr("dominant-baseline", getDominantBaseLine(quadrantData.title.horizontalPos)).attr("text-anchor", getTextAnchor(quadrantData.title.verticalPos)).attr("transform", getTransformation(quadrantData.title)).text(quadrantData.title.text); + } + if (quadrantData.borderLines) { + borderGroup.selectAll("line").data(quadrantData.borderLines).enter().append("line").attr("x1", (data) => data.x1).attr("y1", (data) => data.y1).attr("x2", (data) => data.x2).attr("y2", (data) => data.y2).style("stroke", (data) => data.strokeFill).style("stroke-width", (data) => data.strokeWidth); + } + const quadrants = quadrantsGroup.selectAll("g.quadrant").data(quadrantData.quadrants).enter().append("g").attr("class", "quadrant"); + quadrants.append("rect").attr("x", (data) => data.x).attr("y", (data) => data.y).attr("width", (data) => data.width).attr("height", (data) => data.height).attr("fill", (data) => data.fill); + quadrants.append("text").attr("x", 0).attr("y", 0).attr("fill", (data) => data.text.fill).attr("font-size", (data) => data.text.fontSize).attr( + "dominant-baseline", + (data) => getDominantBaseLine(data.text.horizontalPos) + ).attr("text-anchor", (data) => getTextAnchor(data.text.verticalPos)).attr("transform", (data) => getTransformation(data.text)).text((data) => data.text.text); + const labels = labelGroup.selectAll("g.label").data(quadrantData.axisLabels).enter().append("g").attr("class", "label"); + labels.append("text").attr("x", 0).attr("y", 0).text((data) => data.text).attr("fill", (data) => data.fill).attr("font-size", (data) => data.fontSize).attr("dominant-baseline", (data) => getDominantBaseLine(data.horizontalPos)).attr("text-anchor", (data) => getTextAnchor(data.verticalPos)).attr("transform", (data) => getTransformation(data)); + const dataPoints = dataPointGroup.selectAll("g.data-point").data(quadrantData.points).enter().append("g").attr("class", "data-point"); + dataPoints.append("circle").attr("cx", (data) => data.x).attr("cy", (data) => data.y).attr("r", (data) => data.radius).attr("fill", (data) => data.fill); + dataPoints.append("text").attr("x", 0).attr("y", 0).text((data) => data.text.text).attr("fill", (data) => data.text.fill).attr("font-size", (data) => data.text.fontSize).attr( + "dominant-baseline", + (data) => getDominantBaseLine(data.text.horizontalPos) + ).attr("text-anchor", (data) => getTextAnchor(data.text.verticalPos)).attr("transform", (data) => getTransformation(data.text)); +}; +const renderer = { + draw +}; +const diagram = { + parser: parser$1, + db, + renderer, + styles: () => "" +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/quadrantDiagram-5fa00455.js b/assets/lib/mermaid/quadrantDiagram-5fa00455.js new file mode 100644 index 000000000..8b93854df --- /dev/null +++ b/assets/lib/mermaid/quadrantDiagram-5fa00455.js @@ -0,0 +1,904 @@ +import { Z as vt, W as E, l as lt, s as Lt, g as Ct, C as zt, D as bt, a as Et, b as Dt, c as yt, E as It, d as Bt, j as gt, k as wt } from "./mermaid-9f2aa176.js"; +import { l as At } from "./linear-9bcf74c4.js"; +import "./init-f9637058.js"; +var pt = function() { + var e = function($, n, r, o) { + for (r = r || {}, o = $.length; o--; r[$[o]] = n) + ; + return r; + }, s = [1, 3], c = [1, 4], x = [1, 5], f = [1, 6], d = [1, 7], l = [1, 5, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], g = [1, 5, 6, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], i = [32, 33, 34], q = [2, 7], b = [1, 13], D = [1, 17], w = [1, 18], I = [1, 19], B = [1, 20], p = [1, 21], H = [1, 22], G = [1, 23], K = [1, 24], at = [1, 25], nt = [1, 26], et = [1, 27], Q = [1, 30], N = [1, 31], T = [1, 32], m = [1, 33], A = [1, 34], t = [1, 35], _ = [1, 36], S = [1, 37], k = [1, 38], F = [1, 39], P = [1, 40], v = [1, 41], L = [1, 42], M = [1, 57], X = [1, 58], C = [5, 22, 26, 32, 33, 34, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], ht = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, eol: 4, SPACE: 5, QUADRANT: 6, document: 7, line: 8, statement: 9, axisDetails: 10, quadrantDetails: 11, points: 12, title: 13, title_value: 14, acc_title: 15, acc_title_value: 16, acc_descr: 17, acc_descr_value: 18, acc_descr_multiline_value: 19, section: 20, text: 21, point_start: 22, point_x: 23, point_y: 24, "X-AXIS": 25, "AXIS-TEXT-DELIMITER": 26, "Y-AXIS": 27, QUADRANT_1: 28, QUADRANT_2: 29, QUADRANT_3: 30, QUADRANT_4: 31, NEWLINE: 32, SEMI: 33, EOF: 34, alphaNumToken: 35, textNoTagsToken: 36, STR: 37, MD_STR: 38, alphaNum: 39, PUNCTUATION: 40, AMP: 41, NUM: 42, ALPHA: 43, COMMA: 44, PLUS: 45, EQUALS: 46, MULT: 47, DOT: 48, BRKT: 49, UNDERSCORE: 50, MINUS: 51, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 5: "SPACE", 6: "QUADRANT", 13: "title", 14: "title_value", 15: "acc_title", 16: "acc_title_value", 17: "acc_descr", 18: "acc_descr_value", 19: "acc_descr_multiline_value", 20: "section", 22: "point_start", 23: "point_x", 24: "point_y", 25: "X-AXIS", 26: "AXIS-TEXT-DELIMITER", 27: "Y-AXIS", 28: "QUADRANT_1", 29: "QUADRANT_2", 30: "QUADRANT_3", 31: "QUADRANT_4", 32: "NEWLINE", 33: "SEMI", 34: "EOF", 37: "STR", 38: "MD_STR", 40: "PUNCTUATION", 41: "AMP", 42: "NUM", 43: "ALPHA", 44: "COMMA", 45: "PLUS", 46: "EQUALS", 47: "MULT", 48: "DOT", 49: "BRKT", 50: "UNDERSCORE", 51: "MINUS" }, + productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [9, 0], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [12, 4], [10, 4], [10, 3], [10, 2], [10, 4], [10, 3], [10, 2], [11, 2], [11, 2], [11, 2], [11, 2], [4, 1], [4, 1], [4, 1], [21, 1], [21, 2], [21, 1], [21, 1], [39, 1], [39, 2], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [36, 1], [36, 1], [36, 1]], + performAction: function(n, r, o, h, y, a, it) { + var u = a.length - 1; + switch (y) { + case 12: + this.$ = a[u].trim(), h.setDiagramTitle(this.$); + break; + case 13: + this.$ = a[u].trim(), h.setAccTitle(this.$); + break; + case 14: + case 15: + this.$ = a[u].trim(), h.setAccDescription(this.$); + break; + case 16: + h.addSection(a[u].substr(8)), this.$ = a[u].substr(8); + break; + case 17: + h.addPoint(a[u - 3], a[u - 1], a[u]); + break; + case 18: + h.setXAxisLeftText(a[u - 2]), h.setXAxisRightText(a[u]); + break; + case 19: + a[u - 1].text += " ⟶ ", h.setXAxisLeftText(a[u - 1]); + break; + case 20: + h.setXAxisLeftText(a[u]); + break; + case 21: + h.setYAxisBottomText(a[u - 2]), h.setYAxisTopText(a[u]); + break; + case 22: + a[u - 1].text += " ⟶ ", h.setYAxisBottomText(a[u - 1]); + break; + case 23: + h.setYAxisBottomText(a[u]); + break; + case 24: + h.setQuadrant1Text(a[u]); + break; + case 25: + h.setQuadrant2Text(a[u]); + break; + case 26: + h.setQuadrant3Text(a[u]); + break; + case 27: + h.setQuadrant4Text(a[u]); + break; + case 31: + this.$ = { text: a[u], type: "text" }; + break; + case 32: + this.$ = { text: a[u - 1].text + "" + a[u], type: a[u - 1].type }; + break; + case 33: + this.$ = { text: a[u], type: "text" }; + break; + case 34: + this.$ = { text: a[u], type: "markdown" }; + break; + case 35: + this.$ = a[u]; + break; + case 36: + this.$ = a[u - 1] + "" + a[u]; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: s, 6: c, 32: x, 33: f, 34: d }, { 1: [3] }, { 3: 8, 4: 2, 5: s, 6: c, 32: x, 33: f, 34: d }, { 3: 9, 4: 2, 5: s, 6: c, 32: x, 33: f, 34: d }, e(l, [2, 4], { 7: 10 }), e(g, [2, 28]), e(g, [2, 29]), e(g, [2, 30]), { 1: [2, 1] }, { 1: [2, 2] }, e(i, q, { 8: 11, 9: 12, 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 1: [2, 3], 5: b, 13: D, 15: w, 17: I, 19: B, 20: p, 25: H, 27: G, 28: K, 29: at, 30: nt, 31: et, 37: Q, 38: N, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L }), e(l, [2, 5]), { 4: 43, 32: x, 33: f, 34: d }, e(i, q, { 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 9: 44, 5: b, 13: D, 15: w, 17: I, 19: B, 20: p, 25: H, 27: G, 28: K, 29: at, 30: nt, 31: et, 37: Q, 38: N, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L }), e(i, [2, 9]), e(i, [2, 10]), e(i, [2, 11]), { 14: [1, 45] }, { 16: [1, 46] }, { 18: [1, 47] }, e(i, [2, 15]), e(i, [2, 16]), { 21: 48, 35: 29, 37: Q, 38: N, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L }, { 21: 49, 35: 29, 37: Q, 38: N, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L }, { 21: 50, 35: 29, 37: Q, 38: N, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L }, { 21: 51, 35: 29, 37: Q, 38: N, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L }, { 21: 52, 35: 29, 37: Q, 38: N, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L }, { 21: 53, 35: 29, 37: Q, 38: N, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L }, { 5: M, 22: [1, 54], 35: 56, 36: 55, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: X }, e(C, [2, 31]), e(C, [2, 33]), e(C, [2, 34]), e(C, [2, 37]), e(C, [2, 38]), e(C, [2, 39]), e(C, [2, 40]), e(C, [2, 41]), e(C, [2, 42]), e(C, [2, 43]), e(C, [2, 44]), e(C, [2, 45]), e(C, [2, 46]), e(C, [2, 47]), e(l, [2, 6]), e(i, [2, 8]), e(i, [2, 12]), e(i, [2, 13]), e(i, [2, 14]), e(i, [2, 20], { 36: 55, 35: 56, 5: M, 26: [1, 59], 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: X }), e(i, [2, 23], { 36: 55, 35: 56, 5: M, 26: [1, 60], 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: X }), e(i, [2, 24], { 36: 55, 35: 56, 5: M, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: X }), e(i, [2, 25], { 36: 55, 35: 56, 5: M, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: X }), e(i, [2, 26], { 36: 55, 35: 56, 5: M, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: X }), e(i, [2, 27], { 36: 55, 35: 56, 5: M, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: X }), { 23: [1, 61] }, e(C, [2, 32]), e(C, [2, 48]), e(C, [2, 49]), e(C, [2, 50]), e(i, [2, 19], { 35: 29, 21: 62, 37: Q, 38: N, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L }), e(i, [2, 22], { 35: 29, 21: 63, 37: Q, 38: N, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L }), { 24: [1, 64] }, e(i, [2, 18], { 36: 55, 35: 56, 5: M, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: X }), e(i, [2, 21], { 36: 55, 35: 56, 5: M, 40: T, 41: m, 42: A, 43: t, 44: _, 45: S, 46: k, 47: F, 48: P, 49: v, 50: L, 51: X }), e(i, [2, 17])], + defaultActions: { 8: [2, 1], 9: [2, 2] }, + parseError: function(n, r) { + if (r.recoverable) + this.trace(n); + else { + var o = new Error(n); + throw o.hash = r, o; + } + }, + parse: function(n) { + var r = this, o = [0], h = [], y = [null], a = [], it = this.table, u = "", st = 0, qt = 0, St = 2, Tt = 1, kt = a.slice.call(arguments, 1), z = Object.create(this.lexer), Z = { yy: {} }; + for (var dt in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, dt) && (Z.yy[dt] = this.yy[dt]); + z.setInput(n, Z.yy), Z.yy.lexer = z, Z.yy.parser = this, typeof z.yylloc > "u" && (z.yylloc = {}); + var ut = z.yylloc; + a.push(ut); + var Ft = z.options && z.options.ranges; + typeof Z.yy.parseError == "function" ? this.parseError = Z.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function Pt() { + var Y; + return Y = h.pop() || z.lex() || Tt, typeof Y != "number" && (Y instanceof Array && (h = Y, Y = h.pop()), Y = r.symbols_[Y] || Y), Y; + } + for (var W, J, U, xt, tt = {}, rt, O, mt, ot; ; ) { + if (J = o[o.length - 1], this.defaultActions[J] ? U = this.defaultActions[J] : ((W === null || typeof W > "u") && (W = Pt()), U = it[J] && it[J][W]), typeof U > "u" || !U.length || !U[0]) { + var ft = ""; + ot = []; + for (rt in it[J]) + this.terminals_[rt] && rt > St && ot.push("'" + this.terminals_[rt] + "'"); + z.showPosition ? ft = "Parse error on line " + (st + 1) + `: +` + z.showPosition() + ` +Expecting ` + ot.join(", ") + ", got '" + (this.terminals_[W] || W) + "'" : ft = "Parse error on line " + (st + 1) + ": Unexpected " + (W == Tt ? "end of input" : "'" + (this.terminals_[W] || W) + "'"), this.parseError(ft, { + text: z.match, + token: this.terminals_[W] || W, + line: z.yylineno, + loc: ut, + expected: ot + }); + } + if (U[0] instanceof Array && U.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + J + ", token: " + W); + switch (U[0]) { + case 1: + o.push(W), y.push(z.yytext), a.push(z.yylloc), o.push(U[1]), W = null, qt = z.yyleng, u = z.yytext, st = z.yylineno, ut = z.yylloc; + break; + case 2: + if (O = this.productions_[U[1]][1], tt.$ = y[y.length - O], tt._$ = { + first_line: a[a.length - (O || 1)].first_line, + last_line: a[a.length - 1].last_line, + first_column: a[a.length - (O || 1)].first_column, + last_column: a[a.length - 1].last_column + }, Ft && (tt._$.range = [ + a[a.length - (O || 1)].range[0], + a[a.length - 1].range[1] + ]), xt = this.performAction.apply(tt, [ + u, + qt, + st, + Z.yy, + U[1], + y, + a + ].concat(kt)), typeof xt < "u") + return xt; + O && (o = o.slice(0, -1 * O * 2), y = y.slice(0, -1 * O), a = a.slice(0, -1 * O)), o.push(this.productions_[U[1]][0]), y.push(tt.$), a.push(tt._$), mt = it[o[o.length - 2]][o[o.length - 1]], o.push(mt); + break; + case 3: + return !0; + } + } + return !0; + } + }, _t = function() { + var $ = { + EOF: 1, + parseError: function(r, o) { + if (this.yy.parser) + this.yy.parser.parseError(r, o); + else + throw new Error(r); + }, + // resets the lexer, sets new input + setInput: function(n, r) { + return this.yy = r || this.yy || {}, this._input = n, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var n = this._input[0]; + this.yytext += n, this.yyleng++, this.offset++, this.match += n, this.matched += n; + var r = n.match(/(?:\r\n?|\n).*/g); + return r ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), n; + }, + // unshifts one char (or a string) into the input + unput: function(n) { + var r = n.length, o = n.split(/(?:\r\n?|\n)/g); + this._input = n + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - r), this.offset -= r; + var h = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), o.length - 1 && (this.yylineno -= o.length - 1); + var y = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: o ? (o.length === h.length ? this.yylloc.first_column : 0) + h[h.length - o.length].length - o[0].length : this.yylloc.first_column - r + }, this.options.ranges && (this.yylloc.range = [y[0], y[0] + this.yyleng - r]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var n = this.matched.substr(0, this.matched.length - this.match.length); + return (n.length > 20 ? "..." : "") + n.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var n = this.match; + return n.length < 20 && (n += this._input.substr(0, 20 - n.length)), (n.substr(0, 20) + (n.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var n = this.pastInput(), r = new Array(n.length + 1).join("-"); + return n + this.upcomingInput() + ` +` + r + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(n, r) { + var o, h, y; + if (this.options.backtrack_lexer && (y = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (y.yylloc.range = this.yylloc.range.slice(0))), h = n[0].match(/(?:\r\n?|\n).*/g), h && (this.yylineno += h.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: h ? h[h.length - 1].length - h[h.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + n[0].length + }, this.yytext += n[0], this.match += n[0], this.matches = n, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(n[0].length), this.matched += n[0], o = this.performAction.call(this, this.yy, this, r, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), o) + return o; + if (this._backtrack) { + for (var a in y) + this[a] = y[a]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var n, r, o, h; + this._more || (this.yytext = "", this.match = ""); + for (var y = this._currentRules(), a = 0; a < y.length; a++) + if (o = this._input.match(this.rules[y[a]]), o && (!r || o[0].length > r[0].length)) { + if (r = o, h = a, this.options.backtrack_lexer) { + if (n = this.test_match(o, y[a]), n !== !1) + return n; + if (this._backtrack) { + r = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return r ? (n = this.test_match(r, y[h]), n !== !1 ? n : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var r = this.next(); + return r || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(r) { + this.conditionStack.push(r); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var r = this.conditionStack.length - 1; + return r > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(r) { + return r = this.conditionStack.length - 1 - Math.abs(r || 0), r >= 0 ? this.conditionStack[r] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(r) { + this.begin(r); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: { "case-insensitive": !0 }, + performAction: function(r, o, h, y) { + switch (h) { + case 0: + break; + case 1: + break; + case 2: + return 32; + case 3: + break; + case 4: + return this.begin("title"), 13; + case 5: + return this.popState(), "title_value"; + case 6: + return this.begin("acc_title"), 15; + case 7: + return this.popState(), "acc_title_value"; + case 8: + return this.begin("acc_descr"), 17; + case 9: + return this.popState(), "acc_descr_value"; + case 10: + this.begin("acc_descr_multiline"); + break; + case 11: + this.popState(); + break; + case 12: + return "acc_descr_multiline_value"; + case 13: + return 25; + case 14: + return 27; + case 15: + return 26; + case 16: + return 28; + case 17: + return 29; + case 18: + return 30; + case 19: + return 31; + case 20: + this.begin("md_string"); + break; + case 21: + return "MD_STR"; + case 22: + this.popState(); + break; + case 23: + this.begin("string"); + break; + case 24: + this.popState(); + break; + case 25: + return "STR"; + case 26: + return this.begin("point_start"), 22; + case 27: + return this.begin("point_x"), 23; + case 28: + this.popState(); + break; + case 29: + this.popState(), this.begin("point_y"); + break; + case 30: + return this.popState(), 24; + case 31: + return 6; + case 32: + return 43; + case 33: + return "COLON"; + case 34: + return 45; + case 35: + return 44; + case 36: + return 46; + case 37: + return 46; + case 38: + return 47; + case 39: + return 49; + case 40: + return 50; + case 41: + return 48; + case 42: + return 41; + case 43: + return 51; + case 44: + return 42; + case 45: + return 5; + case 46: + return 33; + case 47: + return 40; + case 48: + return 34; + } + }, + rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?: *x-axis *)/i, /^(?: *y-axis *)/i, /^(?: *--+> *)/i, /^(?: *quadrant-1 *)/i, /^(?: *quadrant-2 *)/i, /^(?: *quadrant-3 *)/i, /^(?: *quadrant-4 *)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:\s*:\s*\[\s*)/i, /^(?:(1)|(0(.\d+)?))/i, /^(?:\s*\] *)/i, /^(?:\s*,\s*)/i, /^(?:(1)|(0(.\d+)?))/i, /^(?: *quadrantChart *)/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:=)/i, /^(?:\*)/i, /^(?:#)/i, /^(?:[\_])/i, /^(?:\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\s)/i, /^(?:;)/i, /^(?:[!"#$%&'*+,-.`?\\_/])/i, /^(?:$)/i], + conditions: { point_y: { rules: [30], inclusive: !1 }, point_x: { rules: [29], inclusive: !1 }, point_start: { rules: [27, 28], inclusive: !1 }, acc_descr_multiline: { rules: [11, 12], inclusive: !1 }, acc_descr: { rules: [9], inclusive: !1 }, acc_title: { rules: [7], inclusive: !1 }, title: { rules: [5], inclusive: !1 }, md_string: { rules: [21, 22], inclusive: !1 }, string: { rules: [24, 25], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 23, 26, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], inclusive: !0 } } + }; + return $; + }(); + ht.lexer = _t; + function ct() { + this.yy = {}; + } + return ct.prototype = ht, ht.Parser = ct, new ct(); +}(); +pt.parser = pt; +const Rt = pt, V = vt(); +class Vt { + constructor() { + this.config = this.getDefaultConfig(), this.themeConfig = this.getDefaultThemeConfig(), this.data = this.getDefaultData(); + } + getDefaultData() { + return { + titleText: "", + quadrant1Text: "", + quadrant2Text: "", + quadrant3Text: "", + quadrant4Text: "", + xAxisLeftText: "", + xAxisRightText: "", + yAxisBottomText: "", + yAxisTopText: "", + points: [] + }; + } + getDefaultConfig() { + var s, c, x, f, d, l, g, i, q, b, D, w, I, B, p, H, G, K; + return { + showXAxis: !0, + showYAxis: !0, + showTitle: !0, + chartHeight: ((s = E.quadrantChart) == null ? void 0 : s.chartWidth) || 500, + chartWidth: ((c = E.quadrantChart) == null ? void 0 : c.chartHeight) || 500, + titlePadding: ((x = E.quadrantChart) == null ? void 0 : x.titlePadding) || 10, + titleFontSize: ((f = E.quadrantChart) == null ? void 0 : f.titleFontSize) || 20, + quadrantPadding: ((d = E.quadrantChart) == null ? void 0 : d.quadrantPadding) || 5, + xAxisLabelPadding: ((l = E.quadrantChart) == null ? void 0 : l.xAxisLabelPadding) || 5, + yAxisLabelPadding: ((g = E.quadrantChart) == null ? void 0 : g.yAxisLabelPadding) || 5, + xAxisLabelFontSize: ((i = E.quadrantChart) == null ? void 0 : i.xAxisLabelFontSize) || 16, + yAxisLabelFontSize: ((q = E.quadrantChart) == null ? void 0 : q.yAxisLabelFontSize) || 16, + quadrantLabelFontSize: ((b = E.quadrantChart) == null ? void 0 : b.quadrantLabelFontSize) || 16, + quadrantTextTopPadding: ((D = E.quadrantChart) == null ? void 0 : D.quadrantTextTopPadding) || 5, + pointTextPadding: ((w = E.quadrantChart) == null ? void 0 : w.pointTextPadding) || 5, + pointLabelFontSize: ((I = E.quadrantChart) == null ? void 0 : I.pointLabelFontSize) || 12, + pointRadius: ((B = E.quadrantChart) == null ? void 0 : B.pointRadius) || 5, + xAxisPosition: ((p = E.quadrantChart) == null ? void 0 : p.xAxisPosition) || "top", + yAxisPosition: ((H = E.quadrantChart) == null ? void 0 : H.yAxisPosition) || "left", + quadrantInternalBorderStrokeWidth: ((G = E.quadrantChart) == null ? void 0 : G.quadrantInternalBorderStrokeWidth) || 1, + quadrantExternalBorderStrokeWidth: ((K = E.quadrantChart) == null ? void 0 : K.quadrantExternalBorderStrokeWidth) || 2 + }; + } + getDefaultThemeConfig() { + return { + quadrant1Fill: V.quadrant1Fill, + quadrant2Fill: V.quadrant2Fill, + quadrant3Fill: V.quadrant3Fill, + quadrant4Fill: V.quadrant4Fill, + quadrant1TextFill: V.quadrant1TextFill, + quadrant2TextFill: V.quadrant2TextFill, + quadrant3TextFill: V.quadrant3TextFill, + quadrant4TextFill: V.quadrant4TextFill, + quadrantPointFill: V.quadrantPointFill, + quadrantPointTextFill: V.quadrantPointTextFill, + quadrantXAxisTextFill: V.quadrantXAxisTextFill, + quadrantYAxisTextFill: V.quadrantYAxisTextFill, + quadrantTitleFill: V.quadrantTitleFill, + quadrantInternalBorderStrokeFill: V.quadrantInternalBorderStrokeFill, + quadrantExternalBorderStrokeFill: V.quadrantExternalBorderStrokeFill + }; + } + clear() { + this.config = this.getDefaultConfig(), this.themeConfig = this.getDefaultThemeConfig(), this.data = this.getDefaultData(), lt.info("clear called"); + } + setData(s) { + this.data = { ...this.data, ...s }; + } + addPoints(s) { + this.data.points = [...s, ...this.data.points]; + } + setConfig(s) { + lt.trace("setConfig called with: ", s), this.config = { ...this.config, ...s }; + } + setThemeConfig(s) { + lt.trace("setThemeConfig called with: ", s), this.themeConfig = { ...this.themeConfig, ...s }; + } + calculateSpace(s, c, x, f) { + const d = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize, l = { + top: s === "top" && c ? d : 0, + bottom: s === "bottom" && c ? d : 0 + }, g = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize, i = { + left: this.config.yAxisPosition === "left" && x ? g : 0, + right: this.config.yAxisPosition === "right" && x ? g : 0 + }, q = this.config.titleFontSize + this.config.titlePadding * 2, b = { + top: f ? q : 0 + }, D = this.config.quadrantPadding + i.left, w = this.config.quadrantPadding + l.top + b.top, I = this.config.chartWidth - this.config.quadrantPadding * 2 - i.left - i.right, B = this.config.chartHeight - this.config.quadrantPadding * 2 - l.top - l.bottom - b.top, p = I / 2, H = B / 2; + return { + xAxisSpace: l, + yAxisSpace: i, + titleSpace: b, + quadrantSpace: { + quadrantLeft: D, + quadrantTop: w, + quadrantWidth: I, + quadrantHalfWidth: p, + quadrantHeight: B, + quadrantHalfHeight: H + } + }; + } + getAxisLabels(s, c, x, f) { + const { quadrantSpace: d, titleSpace: l } = f, { + quadrantHalfHeight: g, + quadrantHeight: i, + quadrantLeft: q, + quadrantHalfWidth: b, + quadrantTop: D, + quadrantWidth: w + } = d, I = !!this.data.xAxisRightText, B = !!this.data.yAxisTopText, p = []; + return this.data.xAxisLeftText && c && p.push({ + text: this.data.xAxisLeftText, + fill: this.themeConfig.quadrantXAxisTextFill, + x: q + (I ? b / 2 : 0), + y: s === "top" ? this.config.xAxisLabelPadding + l.top : this.config.xAxisLabelPadding + D + i + this.config.quadrantPadding, + fontSize: this.config.xAxisLabelFontSize, + verticalPos: I ? "center" : "left", + horizontalPos: "top", + rotation: 0 + }), this.data.xAxisRightText && c && p.push({ + text: this.data.xAxisRightText, + fill: this.themeConfig.quadrantXAxisTextFill, + x: q + b + (I ? b / 2 : 0), + y: s === "top" ? this.config.xAxisLabelPadding + l.top : this.config.xAxisLabelPadding + D + i + this.config.quadrantPadding, + fontSize: this.config.xAxisLabelFontSize, + verticalPos: I ? "center" : "left", + horizontalPos: "top", + rotation: 0 + }), this.data.yAxisBottomText && x && p.push({ + text: this.data.yAxisBottomText, + fill: this.themeConfig.quadrantYAxisTextFill, + x: this.config.yAxisPosition === "left" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + q + w + this.config.quadrantPadding, + y: D + i - (B ? g / 2 : 0), + fontSize: this.config.yAxisLabelFontSize, + verticalPos: B ? "center" : "left", + horizontalPos: "top", + rotation: -90 + }), this.data.yAxisTopText && x && p.push({ + text: this.data.yAxisTopText, + fill: this.themeConfig.quadrantYAxisTextFill, + x: this.config.yAxisPosition === "left" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + q + w + this.config.quadrantPadding, + y: D + g - (B ? g / 2 : 0), + fontSize: this.config.yAxisLabelFontSize, + verticalPos: B ? "center" : "left", + horizontalPos: "top", + rotation: -90 + }), p; + } + getQuadrants(s) { + const { quadrantSpace: c } = s, { quadrantHalfHeight: x, quadrantLeft: f, quadrantHalfWidth: d, quadrantTop: l } = c, g = [ + { + text: { + text: this.data.quadrant1Text, + fill: this.themeConfig.quadrant1TextFill, + x: 0, + y: 0, + fontSize: this.config.quadrantLabelFontSize, + verticalPos: "center", + horizontalPos: "middle", + rotation: 0 + }, + x: f + d, + y: l, + width: d, + height: x, + fill: this.themeConfig.quadrant1Fill + }, + { + text: { + text: this.data.quadrant2Text, + fill: this.themeConfig.quadrant2TextFill, + x: 0, + y: 0, + fontSize: this.config.quadrantLabelFontSize, + verticalPos: "center", + horizontalPos: "middle", + rotation: 0 + }, + x: f, + y: l, + width: d, + height: x, + fill: this.themeConfig.quadrant2Fill + }, + { + text: { + text: this.data.quadrant3Text, + fill: this.themeConfig.quadrant3TextFill, + x: 0, + y: 0, + fontSize: this.config.quadrantLabelFontSize, + verticalPos: "center", + horizontalPos: "middle", + rotation: 0 + }, + x: f, + y: l + x, + width: d, + height: x, + fill: this.themeConfig.quadrant3Fill + }, + { + text: { + text: this.data.quadrant4Text, + fill: this.themeConfig.quadrant4TextFill, + x: 0, + y: 0, + fontSize: this.config.quadrantLabelFontSize, + verticalPos: "center", + horizontalPos: "middle", + rotation: 0 + }, + x: f + d, + y: l + x, + width: d, + height: x, + fill: this.themeConfig.quadrant4Fill + } + ]; + for (const i of g) + i.text.x = i.x + i.width / 2, this.data.points.length === 0 ? (i.text.y = i.y + i.height / 2, i.text.horizontalPos = "middle") : (i.text.y = i.y + this.config.quadrantTextTopPadding, i.text.horizontalPos = "top"); + return g; + } + getQuadrantPoints(s) { + const { quadrantSpace: c } = s, { quadrantHeight: x, quadrantLeft: f, quadrantTop: d, quadrantWidth: l } = c, g = At().domain([0, 1]).range([f, l + f]), i = At().domain([0, 1]).range([x + d, d]); + return this.data.points.map((b) => ({ + x: g(b.x), + y: i(b.y), + fill: this.themeConfig.quadrantPointFill, + radius: this.config.pointRadius, + text: { + text: b.text, + fill: this.themeConfig.quadrantPointTextFill, + x: g(b.x), + y: i(b.y) + this.config.pointTextPadding, + verticalPos: "center", + horizontalPos: "top", + fontSize: this.config.pointLabelFontSize, + rotation: 0 + } + })); + } + getBorders(s) { + const c = this.config.quadrantExternalBorderStrokeWidth / 2, { quadrantSpace: x } = s, { + quadrantHalfHeight: f, + quadrantHeight: d, + quadrantLeft: l, + quadrantHalfWidth: g, + quadrantTop: i, + quadrantWidth: q + } = x; + return [ + // top border + { + strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, + strokeWidth: this.config.quadrantExternalBorderStrokeWidth, + x1: l - c, + y1: i, + x2: l + q + c, + y2: i + }, + // right border + { + strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, + strokeWidth: this.config.quadrantExternalBorderStrokeWidth, + x1: l + q, + y1: i + c, + x2: l + q, + y2: i + d - c + }, + // bottom border + { + strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, + strokeWidth: this.config.quadrantExternalBorderStrokeWidth, + x1: l - c, + y1: i + d, + x2: l + q + c, + y2: i + d + }, + // left border + { + strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, + strokeWidth: this.config.quadrantExternalBorderStrokeWidth, + x1: l, + y1: i + c, + x2: l, + y2: i + d - c + }, + // vertical inner border + { + strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill, + strokeWidth: this.config.quadrantInternalBorderStrokeWidth, + x1: l + g, + y1: i + c, + x2: l + g, + y2: i + d - c + }, + // horizontal inner border + { + strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill, + strokeWidth: this.config.quadrantInternalBorderStrokeWidth, + x1: l + c, + y1: i + f, + x2: l + q - c, + y2: i + f + } + ]; + } + getTitle(s) { + if (s) + return { + text: this.data.titleText, + fill: this.themeConfig.quadrantTitleFill, + fontSize: this.config.titleFontSize, + horizontalPos: "top", + verticalPos: "center", + rotation: 0, + y: this.config.titlePadding, + x: this.config.chartWidth / 2 + }; + } + build() { + const s = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText), c = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText), x = this.config.showTitle && !!this.data.titleText, f = this.data.points.length > 0 ? "bottom" : this.config.xAxisPosition, d = this.calculateSpace(f, s, c, x); + return { + points: this.getQuadrantPoints(d), + quadrants: this.getQuadrants(d), + axisLabels: this.getAxisLabels(f, s, c, d), + borderLines: this.getBorders(d), + title: this.getTitle(x) + }; + } +} +const Wt = yt(); +function j(e) { + return Bt(e.trim(), Wt); +} +const R = new Vt(); +function Nt(e) { + R.setData({ quadrant1Text: j(e.text) }); +} +function Ut(e) { + R.setData({ quadrant2Text: j(e.text) }); +} +function Qt(e) { + R.setData({ quadrant3Text: j(e.text) }); +} +function Ht(e) { + R.setData({ quadrant4Text: j(e.text) }); +} +function Mt(e) { + R.setData({ xAxisLeftText: j(e.text) }); +} +function Xt(e) { + R.setData({ xAxisRightText: j(e.text) }); +} +function Ot(e) { + R.setData({ yAxisTopText: j(e.text) }); +} +function Yt(e) { + R.setData({ yAxisBottomText: j(e.text) }); +} +function jt(e, s, c) { + R.addPoints([{ x: s, y: c, text: j(e.text) }]); +} +function Gt(e) { + R.setConfig({ chartWidth: e }); +} +function $t(e) { + R.setConfig({ chartHeight: e }); +} +function Kt() { + const e = yt(), { themeVariables: s, quadrantChart: c } = e; + return c && R.setConfig(c), R.setThemeConfig({ + quadrant1Fill: s.quadrant1Fill, + quadrant2Fill: s.quadrant2Fill, + quadrant3Fill: s.quadrant3Fill, + quadrant4Fill: s.quadrant4Fill, + quadrant1TextFill: s.quadrant1TextFill, + quadrant2TextFill: s.quadrant2TextFill, + quadrant3TextFill: s.quadrant3TextFill, + quadrant4TextFill: s.quadrant4TextFill, + quadrantPointFill: s.quadrantPointFill, + quadrantPointTextFill: s.quadrantPointTextFill, + quadrantXAxisTextFill: s.quadrantXAxisTextFill, + quadrantYAxisTextFill: s.quadrantYAxisTextFill, + quadrantExternalBorderStrokeFill: s.quadrantExternalBorderStrokeFill, + quadrantInternalBorderStrokeFill: s.quadrantInternalBorderStrokeFill, + quadrantTitleFill: s.quadrantTitleFill + }), R.setData({ titleText: bt() }), R.build(); +} +const Zt = function() { + R.clear(), It(); +}, Jt = { + setWidth: Gt, + setHeight: $t, + setQuadrant1Text: Nt, + setQuadrant2Text: Ut, + setQuadrant3Text: Qt, + setQuadrant4Text: Ht, + setXAxisLeftText: Mt, + setXAxisRightText: Xt, + setYAxisTopText: Ot, + setYAxisBottomText: Yt, + addPoint: jt, + getQuadrantData: Kt, + clear: Zt, + setAccTitle: Lt, + getAccTitle: Ct, + setDiagramTitle: zt, + getDiagramTitle: bt, + getAccDescription: Et, + setAccDescription: Dt +}, te = (e, s, c, x) => { + var T, m, A; + function f(t) { + return t === "top" ? "hanging" : "middle"; + } + function d(t) { + return t === "left" ? "start" : "middle"; + } + function l(t) { + return `translate(${t.x}, ${t.y}) rotate(${t.rotation || 0})`; + } + const g = yt(); + lt.debug(`Rendering quadrant chart +` + e); + const i = g.securityLevel; + let q; + i === "sandbox" && (q = gt("#i" + s)); + const D = (i === "sandbox" ? gt(q.nodes()[0].contentDocument.body) : gt("body")).select(`[id="${s}"]`), w = D.append("g").attr("class", "main"), I = ((T = g.quadrantChart) == null ? void 0 : T.chartWidth) || 500, B = ((m = g.quadrantChart) == null ? void 0 : m.chartHeight) || 500; + wt(D, B, I, ((A = g.quadrantChart) == null ? void 0 : A.useMaxWidth) || !0), D.attr("viewBox", "0 0 " + I + " " + B), x.db.setHeight(B), x.db.setWidth(I); + const p = x.db.getQuadrantData(), H = w.append("g").attr("class", "quadrants"), G = w.append("g").attr("class", "border"), K = w.append("g").attr("class", "data-points"), at = w.append("g").attr("class", "labels"), nt = w.append("g").attr("class", "title"); + p.title && nt.append("text").attr("x", 0).attr("y", 0).attr("fill", p.title.fill).attr("font-size", p.title.fontSize).attr("dominant-baseline", f(p.title.horizontalPos)).attr("text-anchor", d(p.title.verticalPos)).attr("transform", l(p.title)).text(p.title.text), p.borderLines && G.selectAll("line").data(p.borderLines).enter().append("line").attr("x1", (t) => t.x1).attr("y1", (t) => t.y1).attr("x2", (t) => t.x2).attr("y2", (t) => t.y2).style("stroke", (t) => t.strokeFill).style("stroke-width", (t) => t.strokeWidth); + const et = H.selectAll("g.quadrant").data(p.quadrants).enter().append("g").attr("class", "quadrant"); + et.append("rect").attr("x", (t) => t.x).attr("y", (t) => t.y).attr("width", (t) => t.width).attr("height", (t) => t.height).attr("fill", (t) => t.fill), et.append("text").attr("x", 0).attr("y", 0).attr("fill", (t) => t.text.fill).attr("font-size", (t) => t.text.fontSize).attr( + "dominant-baseline", + (t) => f(t.text.horizontalPos) + ).attr("text-anchor", (t) => d(t.text.verticalPos)).attr("transform", (t) => l(t.text)).text((t) => t.text.text), at.selectAll("g.label").data(p.axisLabels).enter().append("g").attr("class", "label").append("text").attr("x", 0).attr("y", 0).text((t) => t.text).attr("fill", (t) => t.fill).attr("font-size", (t) => t.fontSize).attr("dominant-baseline", (t) => f(t.horizontalPos)).attr("text-anchor", (t) => d(t.verticalPos)).attr("transform", (t) => l(t)); + const N = K.selectAll("g.data-point").data(p.points).enter().append("g").attr("class", "data-point"); + N.append("circle").attr("cx", (t) => t.x).attr("cy", (t) => t.y).attr("r", (t) => t.radius).attr("fill", (t) => t.fill), N.append("text").attr("x", 0).attr("y", 0).text((t) => t.text.text).attr("fill", (t) => t.text.fill).attr("font-size", (t) => t.text.fontSize).attr( + "dominant-baseline", + (t) => f(t.text.horizontalPos) + ).attr("text-anchor", (t) => d(t.text.verticalPos)).attr("transform", (t) => l(t.text)); +}, ee = { + draw: te +}, se = { + parser: Rt, + db: Jt, + renderer: ee, + styles: () => "" +}; +export { + se as diagram +}; diff --git a/assets/lib/mermaid/quadrantDiagram-c759a472.js b/assets/lib/mermaid/quadrantDiagram-c759a472.js new file mode 100644 index 000000000..6964be95f --- /dev/null +++ b/assets/lib/mermaid/quadrantDiagram-c759a472.js @@ -0,0 +1,1207 @@ +import { E as getThemeVariables, B as defaultConfig, l as log, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, t as getDiagramTitle, a as getAccDescription, b as setAccDescription, c as getConfig, v as clear$1, d as sanitizeText, i as configureSvgSize } from "./mermaid-6dc72991.js"; +import { scaleLinear, select } from "d3"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [1, 7], $V5 = [1, 5, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $V6 = [1, 5, 6, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $V7 = [32, 33, 34], $V8 = [2, 7], $V9 = [1, 13], $Va = [1, 17], $Vb = [1, 18], $Vc = [1, 19], $Vd = [1, 20], $Ve = [1, 21], $Vf = [1, 22], $Vg = [1, 23], $Vh = [1, 24], $Vi = [1, 25], $Vj = [1, 26], $Vk = [1, 27], $Vl = [1, 30], $Vm = [1, 31], $Vn = [1, 32], $Vo = [1, 33], $Vp = [1, 34], $Vq = [1, 35], $Vr = [1, 36], $Vs = [1, 37], $Vt = [1, 38], $Vu = [1, 39], $Vv = [1, 40], $Vw = [1, 41], $Vx = [1, 42], $Vy = [1, 57], $Vz = [1, 58], $VA = [5, 22, 26, 32, 33, 34, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "eol": 4, "SPACE": 5, "QUADRANT": 6, "document": 7, "line": 8, "statement": 9, "axisDetails": 10, "quadrantDetails": 11, "points": 12, "title": 13, "title_value": 14, "acc_title": 15, "acc_title_value": 16, "acc_descr": 17, "acc_descr_value": 18, "acc_descr_multiline_value": 19, "section": 20, "text": 21, "point_start": 22, "point_x": 23, "point_y": 24, "X-AXIS": 25, "AXIS-TEXT-DELIMITER": 26, "Y-AXIS": 27, "QUADRANT_1": 28, "QUADRANT_2": 29, "QUADRANT_3": 30, "QUADRANT_4": 31, "NEWLINE": 32, "SEMI": 33, "EOF": 34, "alphaNumToken": 35, "textNoTagsToken": 36, "STR": 37, "MD_STR": 38, "alphaNum": 39, "PUNCTUATION": 40, "AMP": 41, "NUM": 42, "ALPHA": 43, "COMMA": 44, "PLUS": 45, "EQUALS": 46, "MULT": 47, "DOT": 48, "BRKT": 49, "UNDERSCORE": 50, "MINUS": 51, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 5: "SPACE", 6: "QUADRANT", 13: "title", 14: "title_value", 15: "acc_title", 16: "acc_title_value", 17: "acc_descr", 18: "acc_descr_value", 19: "acc_descr_multiline_value", 20: "section", 22: "point_start", 23: "point_x", 24: "point_y", 25: "X-AXIS", 26: "AXIS-TEXT-DELIMITER", 27: "Y-AXIS", 28: "QUADRANT_1", 29: "QUADRANT_2", 30: "QUADRANT_3", 31: "QUADRANT_4", 32: "NEWLINE", 33: "SEMI", 34: "EOF", 37: "STR", 38: "MD_STR", 40: "PUNCTUATION", 41: "AMP", 42: "NUM", 43: "ALPHA", 44: "COMMA", 45: "PLUS", 46: "EQUALS", 47: "MULT", 48: "DOT", 49: "BRKT", 50: "UNDERSCORE", 51: "MINUS" }, + productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [9, 0], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [12, 4], [10, 4], [10, 3], [10, 2], [10, 4], [10, 3], [10, 2], [11, 2], [11, 2], [11, 2], [11, 2], [4, 1], [4, 1], [4, 1], [21, 1], [21, 2], [21, 1], [21, 1], [39, 1], [39, 2], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [36, 1], [36, 1], [36, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 12: + this.$ = $$[$0].trim(); + yy.setDiagramTitle(this.$); + break; + case 13: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 14: + case 15: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 16: + yy.addSection($$[$0].substr(8)); + this.$ = $$[$0].substr(8); + break; + case 17: + yy.addPoint($$[$0 - 3], $$[$0 - 1], $$[$0]); + break; + case 18: + yy.setXAxisLeftText($$[$0 - 2]); + yy.setXAxisRightText($$[$0]); + break; + case 19: + $$[$0 - 1].text += " ⟶ "; + yy.setXAxisLeftText($$[$0 - 1]); + break; + case 20: + yy.setXAxisLeftText($$[$0]); + break; + case 21: + yy.setYAxisBottomText($$[$0 - 2]); + yy.setYAxisTopText($$[$0]); + break; + case 22: + $$[$0 - 1].text += " ⟶ "; + yy.setYAxisBottomText($$[$0 - 1]); + break; + case 23: + yy.setYAxisBottomText($$[$0]); + break; + case 24: + yy.setQuadrant1Text($$[$0]); + break; + case 25: + yy.setQuadrant2Text($$[$0]); + break; + case 26: + yy.setQuadrant3Text($$[$0]); + break; + case 27: + yy.setQuadrant4Text($$[$0]); + break; + case 31: + this.$ = { text: $$[$0], type: "text" }; + break; + case 32: + this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type }; + break; + case 33: + this.$ = { text: $$[$0], type: "text" }; + break; + case 34: + this.$ = { text: $$[$0], type: "markdown" }; + break; + case 35: + this.$ = $$[$0]; + break; + case 36: + this.$ = $$[$0 - 1] + "" + $$[$0]; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, { 1: [3] }, { 3: 8, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, { 3: 9, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, o($V5, [2, 4], { 7: 10 }), o($V6, [2, 28]), o($V6, [2, 29]), o($V6, [2, 30]), { 1: [2, 1] }, { 1: [2, 2] }, o($V7, $V8, { 8: 11, 9: 12, 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 1: [2, 3], 5: $V9, 13: $Va, 15: $Vb, 17: $Vc, 19: $Vd, 20: $Ve, 25: $Vf, 27: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V5, [2, 5]), { 4: 43, 32: $V2, 33: $V3, 34: $V4 }, o($V7, $V8, { 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 9: 44, 5: $V9, 13: $Va, 15: $Vb, 17: $Vc, 19: $Vd, 20: $Ve, 25: $Vf, 27: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V7, [2, 9]), o($V7, [2, 10]), o($V7, [2, 11]), { 14: [1, 45] }, { 16: [1, 46] }, { 18: [1, 47] }, o($V7, [2, 15]), o($V7, [2, 16]), { 21: 48, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 49, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 50, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 51, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 52, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 53, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 5: $Vy, 22: [1, 54], 35: 56, 36: 55, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }, o($VA, [2, 31]), o($VA, [2, 33]), o($VA, [2, 34]), o($VA, [2, 37]), o($VA, [2, 38]), o($VA, [2, 39]), o($VA, [2, 40]), o($VA, [2, 41]), o($VA, [2, 42]), o($VA, [2, 43]), o($VA, [2, 44]), o($VA, [2, 45]), o($VA, [2, 46]), o($VA, [2, 47]), o($V5, [2, 6]), o($V7, [2, 8]), o($V7, [2, 12]), o($V7, [2, 13]), o($V7, [2, 14]), o($V7, [2, 20], { 36: 55, 35: 56, 5: $Vy, 26: [1, 59], 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 23], { 36: 55, 35: 56, 5: $Vy, 26: [1, 60], 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 24], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 25], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 26], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 27], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), { 23: [1, 61] }, o($VA, [2, 32]), o($VA, [2, 48]), o($VA, [2, 49]), o($VA, [2, 50]), o($V7, [2, 19], { 35: 29, 21: 62, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V7, [2, 22], { 35: 29, 21: 63, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), { 24: [1, 64] }, o($V7, [2, 18], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 21], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 17])], + defaultActions: { 8: [2, 1], 9: [2, 2] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + break; + case 1: + break; + case 2: + return 32; + case 3: + break; + case 4: + this.begin("title"); + return 13; + case 5: + this.popState(); + return "title_value"; + case 6: + this.begin("acc_title"); + return 15; + case 7: + this.popState(); + return "acc_title_value"; + case 8: + this.begin("acc_descr"); + return 17; + case 9: + this.popState(); + return "acc_descr_value"; + case 10: + this.begin("acc_descr_multiline"); + break; + case 11: + this.popState(); + break; + case 12: + return "acc_descr_multiline_value"; + case 13: + return 25; + case 14: + return 27; + case 15: + return 26; + case 16: + return 28; + case 17: + return 29; + case 18: + return 30; + case 19: + return 31; + case 20: + this.begin("md_string"); + break; + case 21: + return "MD_STR"; + case 22: + this.popState(); + break; + case 23: + this.begin("string"); + break; + case 24: + this.popState(); + break; + case 25: + return "STR"; + case 26: + this.begin("point_start"); + return 22; + case 27: + this.begin("point_x"); + return 23; + case 28: + this.popState(); + break; + case 29: + this.popState(); + this.begin("point_y"); + break; + case 30: + this.popState(); + return 24; + case 31: + return 6; + case 32: + return 43; + case 33: + return "COLON"; + case 34: + return 45; + case 35: + return 44; + case 36: + return 46; + case 37: + return 46; + case 38: + return 47; + case 39: + return 49; + case 40: + return 50; + case 41: + return 48; + case 42: + return 41; + case 43: + return 51; + case 44: + return 42; + case 45: + return 5; + case 46: + return 33; + case 47: + return 40; + case 48: + return 34; + } + }, + rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?: *x-axis *)/i, /^(?: *y-axis *)/i, /^(?: *--+> *)/i, /^(?: *quadrant-1 *)/i, /^(?: *quadrant-2 *)/i, /^(?: *quadrant-3 *)/i, /^(?: *quadrant-4 *)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:\s*:\s*\[\s*)/i, /^(?:(1)|(0(.\d+)?))/i, /^(?:\s*\] *)/i, /^(?:\s*,\s*)/i, /^(?:(1)|(0(.\d+)?))/i, /^(?: *quadrantChart *)/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:=)/i, /^(?:\*)/i, /^(?:#)/i, /^(?:[\_])/i, /^(?:\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\s)/i, /^(?:;)/i, /^(?:[!"#$%&'*+,-.`?\\_/])/i, /^(?:$)/i], + conditions: { "point_y": { "rules": [30], "inclusive": false }, "point_x": { "rules": [29], "inclusive": false }, "point_start": { "rules": [27, 28], "inclusive": false }, "acc_descr_multiline": { "rules": [11, 12], "inclusive": false }, "acc_descr": { "rules": [9], "inclusive": false }, "acc_title": { "rules": [7], "inclusive": false }, "title": { "rules": [5], "inclusive": false }, "md_string": { "rules": [21, 22], "inclusive": false }, "string": { "rules": [24, 25], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 23, 26, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +const defaultThemeVariables = getThemeVariables(); +class QuadrantBuilder { + constructor() { + this.config = this.getDefaultConfig(); + this.themeConfig = this.getDefaultThemeConfig(); + this.data = this.getDefaultData(); + } + getDefaultData() { + return { + titleText: "", + quadrant1Text: "", + quadrant2Text: "", + quadrant3Text: "", + quadrant4Text: "", + xAxisLeftText: "", + xAxisRightText: "", + yAxisBottomText: "", + yAxisTopText: "", + points: [] + }; + } + getDefaultConfig() { + var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r; + return { + showXAxis: true, + showYAxis: true, + showTitle: true, + chartHeight: ((_a = defaultConfig.quadrantChart) == null ? void 0 : _a.chartWidth) || 500, + chartWidth: ((_b = defaultConfig.quadrantChart) == null ? void 0 : _b.chartHeight) || 500, + titlePadding: ((_c = defaultConfig.quadrantChart) == null ? void 0 : _c.titlePadding) || 10, + titleFontSize: ((_d = defaultConfig.quadrantChart) == null ? void 0 : _d.titleFontSize) || 20, + quadrantPadding: ((_e = defaultConfig.quadrantChart) == null ? void 0 : _e.quadrantPadding) || 5, + xAxisLabelPadding: ((_f = defaultConfig.quadrantChart) == null ? void 0 : _f.xAxisLabelPadding) || 5, + yAxisLabelPadding: ((_g = defaultConfig.quadrantChart) == null ? void 0 : _g.yAxisLabelPadding) || 5, + xAxisLabelFontSize: ((_h = defaultConfig.quadrantChart) == null ? void 0 : _h.xAxisLabelFontSize) || 16, + yAxisLabelFontSize: ((_i = defaultConfig.quadrantChart) == null ? void 0 : _i.yAxisLabelFontSize) || 16, + quadrantLabelFontSize: ((_j = defaultConfig.quadrantChart) == null ? void 0 : _j.quadrantLabelFontSize) || 16, + quadrantTextTopPadding: ((_k = defaultConfig.quadrantChart) == null ? void 0 : _k.quadrantTextTopPadding) || 5, + pointTextPadding: ((_l = defaultConfig.quadrantChart) == null ? void 0 : _l.pointTextPadding) || 5, + pointLabelFontSize: ((_m = defaultConfig.quadrantChart) == null ? void 0 : _m.pointLabelFontSize) || 12, + pointRadius: ((_n = defaultConfig.quadrantChart) == null ? void 0 : _n.pointRadius) || 5, + xAxisPosition: ((_o = defaultConfig.quadrantChart) == null ? void 0 : _o.xAxisPosition) || "top", + yAxisPosition: ((_p = defaultConfig.quadrantChart) == null ? void 0 : _p.yAxisPosition) || "left", + quadrantInternalBorderStrokeWidth: ((_q = defaultConfig.quadrantChart) == null ? void 0 : _q.quadrantInternalBorderStrokeWidth) || 1, + quadrantExternalBorderStrokeWidth: ((_r = defaultConfig.quadrantChart) == null ? void 0 : _r.quadrantExternalBorderStrokeWidth) || 2 + }; + } + getDefaultThemeConfig() { + return { + quadrant1Fill: defaultThemeVariables.quadrant1Fill, + quadrant2Fill: defaultThemeVariables.quadrant2Fill, + quadrant3Fill: defaultThemeVariables.quadrant3Fill, + quadrant4Fill: defaultThemeVariables.quadrant4Fill, + quadrant1TextFill: defaultThemeVariables.quadrant1TextFill, + quadrant2TextFill: defaultThemeVariables.quadrant2TextFill, + quadrant3TextFill: defaultThemeVariables.quadrant3TextFill, + quadrant4TextFill: defaultThemeVariables.quadrant4TextFill, + quadrantPointFill: defaultThemeVariables.quadrantPointFill, + quadrantPointTextFill: defaultThemeVariables.quadrantPointTextFill, + quadrantXAxisTextFill: defaultThemeVariables.quadrantXAxisTextFill, + quadrantYAxisTextFill: defaultThemeVariables.quadrantYAxisTextFill, + quadrantTitleFill: defaultThemeVariables.quadrantTitleFill, + quadrantInternalBorderStrokeFill: defaultThemeVariables.quadrantInternalBorderStrokeFill, + quadrantExternalBorderStrokeFill: defaultThemeVariables.quadrantExternalBorderStrokeFill + }; + } + clear() { + this.config = this.getDefaultConfig(); + this.themeConfig = this.getDefaultThemeConfig(); + this.data = this.getDefaultData(); + log.info("clear called"); + } + setData(data) { + this.data = { ...this.data, ...data }; + } + addPoints(points) { + this.data.points = [...points, ...this.data.points]; + } + setConfig(config2) { + log.trace("setConfig called with: ", config2); + this.config = { ...this.config, ...config2 }; + } + setThemeConfig(themeConfig) { + log.trace("setThemeConfig called with: ", themeConfig); + this.themeConfig = { ...this.themeConfig, ...themeConfig }; + } + calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle) { + const xAxisSpaceCalculation = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize; + const xAxisSpace = { + top: xAxisPosition === "top" && showXAxis ? xAxisSpaceCalculation : 0, + bottom: xAxisPosition === "bottom" && showXAxis ? xAxisSpaceCalculation : 0 + }; + const yAxisSpaceCalculation = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize; + const yAxisSpace = { + left: this.config.yAxisPosition === "left" && showYAxis ? yAxisSpaceCalculation : 0, + right: this.config.yAxisPosition === "right" && showYAxis ? yAxisSpaceCalculation : 0 + }; + const titleSpaceCalculation = this.config.titleFontSize + this.config.titlePadding * 2; + const titleSpace = { + top: showTitle ? titleSpaceCalculation : 0 + }; + const quadrantLeft = this.config.quadrantPadding + yAxisSpace.left; + const quadrantTop = this.config.quadrantPadding + xAxisSpace.top + titleSpace.top; + const quadrantWidth = this.config.chartWidth - this.config.quadrantPadding * 2 - yAxisSpace.left - yAxisSpace.right; + const quadrantHeight = this.config.chartHeight - this.config.quadrantPadding * 2 - xAxisSpace.top - xAxisSpace.bottom - titleSpace.top; + const quadrantHalfWidth = quadrantWidth / 2; + const quadrantHalfHeight = quadrantHeight / 2; + const quadrantSpace = { + quadrantLeft, + quadrantTop, + quadrantWidth, + quadrantHalfWidth, + quadrantHeight, + quadrantHalfHeight + }; + return { + xAxisSpace, + yAxisSpace, + titleSpace, + quadrantSpace + }; + } + getAxisLabels(xAxisPosition, showXAxis, showYAxis, spaceData) { + const { quadrantSpace, titleSpace } = spaceData; + const { + quadrantHalfHeight, + quadrantHeight, + quadrantLeft, + quadrantHalfWidth, + quadrantTop, + quadrantWidth + } = quadrantSpace; + const drawXAxisLabelsInMiddle = Boolean(this.data.xAxisRightText); + const drawYAxisLabelsInMiddle = Boolean(this.data.yAxisTopText); + const axisLabels = []; + if (this.data.xAxisLeftText && showXAxis) { + axisLabels.push({ + text: this.data.xAxisLeftText, + fill: this.themeConfig.quadrantXAxisTextFill, + x: quadrantLeft + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0), + y: xAxisPosition === "top" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding, + fontSize: this.config.xAxisLabelFontSize, + verticalPos: drawXAxisLabelsInMiddle ? "center" : "left", + horizontalPos: "top", + rotation: 0 + }); + } + if (this.data.xAxisRightText && showXAxis) { + axisLabels.push({ + text: this.data.xAxisRightText, + fill: this.themeConfig.quadrantXAxisTextFill, + x: quadrantLeft + quadrantHalfWidth + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0), + y: xAxisPosition === "top" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding, + fontSize: this.config.xAxisLabelFontSize, + verticalPos: drawXAxisLabelsInMiddle ? "center" : "left", + horizontalPos: "top", + rotation: 0 + }); + } + if (this.data.yAxisBottomText && showYAxis) { + axisLabels.push({ + text: this.data.yAxisBottomText, + fill: this.themeConfig.quadrantYAxisTextFill, + x: this.config.yAxisPosition === "left" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding, + y: quadrantTop + quadrantHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0), + fontSize: this.config.yAxisLabelFontSize, + verticalPos: drawYAxisLabelsInMiddle ? "center" : "left", + horizontalPos: "top", + rotation: -90 + }); + } + if (this.data.yAxisTopText && showYAxis) { + axisLabels.push({ + text: this.data.yAxisTopText, + fill: this.themeConfig.quadrantYAxisTextFill, + x: this.config.yAxisPosition === "left" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding, + y: quadrantTop + quadrantHalfHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0), + fontSize: this.config.yAxisLabelFontSize, + verticalPos: drawYAxisLabelsInMiddle ? "center" : "left", + horizontalPos: "top", + rotation: -90 + }); + } + return axisLabels; + } + getQuadrants(spaceData) { + const { quadrantSpace } = spaceData; + const { quadrantHalfHeight, quadrantLeft, quadrantHalfWidth, quadrantTop } = quadrantSpace; + const quadrants = [ + { + text: { + text: this.data.quadrant1Text, + fill: this.themeConfig.quadrant1TextFill, + x: 0, + y: 0, + fontSize: this.config.quadrantLabelFontSize, + verticalPos: "center", + horizontalPos: "middle", + rotation: 0 + }, + x: quadrantLeft + quadrantHalfWidth, + y: quadrantTop, + width: quadrantHalfWidth, + height: quadrantHalfHeight, + fill: this.themeConfig.quadrant1Fill + }, + { + text: { + text: this.data.quadrant2Text, + fill: this.themeConfig.quadrant2TextFill, + x: 0, + y: 0, + fontSize: this.config.quadrantLabelFontSize, + verticalPos: "center", + horizontalPos: "middle", + rotation: 0 + }, + x: quadrantLeft, + y: quadrantTop, + width: quadrantHalfWidth, + height: quadrantHalfHeight, + fill: this.themeConfig.quadrant2Fill + }, + { + text: { + text: this.data.quadrant3Text, + fill: this.themeConfig.quadrant3TextFill, + x: 0, + y: 0, + fontSize: this.config.quadrantLabelFontSize, + verticalPos: "center", + horizontalPos: "middle", + rotation: 0 + }, + x: quadrantLeft, + y: quadrantTop + quadrantHalfHeight, + width: quadrantHalfWidth, + height: quadrantHalfHeight, + fill: this.themeConfig.quadrant3Fill + }, + { + text: { + text: this.data.quadrant4Text, + fill: this.themeConfig.quadrant4TextFill, + x: 0, + y: 0, + fontSize: this.config.quadrantLabelFontSize, + verticalPos: "center", + horizontalPos: "middle", + rotation: 0 + }, + x: quadrantLeft + quadrantHalfWidth, + y: quadrantTop + quadrantHalfHeight, + width: quadrantHalfWidth, + height: quadrantHalfHeight, + fill: this.themeConfig.quadrant4Fill + } + ]; + for (const quadrant of quadrants) { + quadrant.text.x = quadrant.x + quadrant.width / 2; + if (this.data.points.length === 0) { + quadrant.text.y = quadrant.y + quadrant.height / 2; + quadrant.text.horizontalPos = "middle"; + } else { + quadrant.text.y = quadrant.y + this.config.quadrantTextTopPadding; + quadrant.text.horizontalPos = "top"; + } + } + return quadrants; + } + getQuadrantPoints(spaceData) { + const { quadrantSpace } = spaceData; + const { quadrantHeight, quadrantLeft, quadrantTop, quadrantWidth } = quadrantSpace; + const xAxis = scaleLinear().domain([0, 1]).range([quadrantLeft, quadrantWidth + quadrantLeft]); + const yAxis = scaleLinear().domain([0, 1]).range([quadrantHeight + quadrantTop, quadrantTop]); + const points = this.data.points.map((point) => { + const props = { + x: xAxis(point.x), + y: yAxis(point.y), + fill: this.themeConfig.quadrantPointFill, + radius: this.config.pointRadius, + text: { + text: point.text, + fill: this.themeConfig.quadrantPointTextFill, + x: xAxis(point.x), + y: yAxis(point.y) + this.config.pointTextPadding, + verticalPos: "center", + horizontalPos: "top", + fontSize: this.config.pointLabelFontSize, + rotation: 0 + } + }; + return props; + }); + return points; + } + getBorders(spaceData) { + const halfExternalBorderWidth = this.config.quadrantExternalBorderStrokeWidth / 2; + const { quadrantSpace } = spaceData; + const { + quadrantHalfHeight, + quadrantHeight, + quadrantLeft, + quadrantHalfWidth, + quadrantTop, + quadrantWidth + } = quadrantSpace; + const borderLines = [ + // top border + { + strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, + strokeWidth: this.config.quadrantExternalBorderStrokeWidth, + x1: quadrantLeft - halfExternalBorderWidth, + y1: quadrantTop, + x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth, + y2: quadrantTop + }, + // right border + { + strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, + strokeWidth: this.config.quadrantExternalBorderStrokeWidth, + x1: quadrantLeft + quadrantWidth, + y1: quadrantTop + halfExternalBorderWidth, + x2: quadrantLeft + quadrantWidth, + y2: quadrantTop + quadrantHeight - halfExternalBorderWidth + }, + // bottom border + { + strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, + strokeWidth: this.config.quadrantExternalBorderStrokeWidth, + x1: quadrantLeft - halfExternalBorderWidth, + y1: quadrantTop + quadrantHeight, + x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth, + y2: quadrantTop + quadrantHeight + }, + // left border + { + strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, + strokeWidth: this.config.quadrantExternalBorderStrokeWidth, + x1: quadrantLeft, + y1: quadrantTop + halfExternalBorderWidth, + x2: quadrantLeft, + y2: quadrantTop + quadrantHeight - halfExternalBorderWidth + }, + // vertical inner border + { + strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill, + strokeWidth: this.config.quadrantInternalBorderStrokeWidth, + x1: quadrantLeft + quadrantHalfWidth, + y1: quadrantTop + halfExternalBorderWidth, + x2: quadrantLeft + quadrantHalfWidth, + y2: quadrantTop + quadrantHeight - halfExternalBorderWidth + }, + // horizontal inner border + { + strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill, + strokeWidth: this.config.quadrantInternalBorderStrokeWidth, + x1: quadrantLeft + halfExternalBorderWidth, + y1: quadrantTop + quadrantHalfHeight, + x2: quadrantLeft + quadrantWidth - halfExternalBorderWidth, + y2: quadrantTop + quadrantHalfHeight + } + ]; + return borderLines; + } + getTitle(showTitle) { + if (showTitle) { + return { + text: this.data.titleText, + fill: this.themeConfig.quadrantTitleFill, + fontSize: this.config.titleFontSize, + horizontalPos: "top", + verticalPos: "center", + rotation: 0, + y: this.config.titlePadding, + x: this.config.chartWidth / 2 + }; + } + return; + } + build() { + const showXAxis = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText); + const showYAxis = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText); + const showTitle = this.config.showTitle && !!this.data.titleText; + const xAxisPosition = this.data.points.length > 0 ? "bottom" : this.config.xAxisPosition; + const calculatedSpace = this.calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle); + return { + points: this.getQuadrantPoints(calculatedSpace), + quadrants: this.getQuadrants(calculatedSpace), + axisLabels: this.getAxisLabels(xAxisPosition, showXAxis, showYAxis, calculatedSpace), + borderLines: this.getBorders(calculatedSpace), + title: this.getTitle(showTitle) + }; + } +} +const config = getConfig(); +function textSanitizer(text) { + return sanitizeText(text.trim(), config); +} +const quadrantBuilder = new QuadrantBuilder(); +function setQuadrant1Text(textObj) { + quadrantBuilder.setData({ quadrant1Text: textSanitizer(textObj.text) }); +} +function setQuadrant2Text(textObj) { + quadrantBuilder.setData({ quadrant2Text: textSanitizer(textObj.text) }); +} +function setQuadrant3Text(textObj) { + quadrantBuilder.setData({ quadrant3Text: textSanitizer(textObj.text) }); +} +function setQuadrant4Text(textObj) { + quadrantBuilder.setData({ quadrant4Text: textSanitizer(textObj.text) }); +} +function setXAxisLeftText(textObj) { + quadrantBuilder.setData({ xAxisLeftText: textSanitizer(textObj.text) }); +} +function setXAxisRightText(textObj) { + quadrantBuilder.setData({ xAxisRightText: textSanitizer(textObj.text) }); +} +function setYAxisTopText(textObj) { + quadrantBuilder.setData({ yAxisTopText: textSanitizer(textObj.text) }); +} +function setYAxisBottomText(textObj) { + quadrantBuilder.setData({ yAxisBottomText: textSanitizer(textObj.text) }); +} +function addPoint(textObj, x, y) { + quadrantBuilder.addPoints([{ x, y, text: textSanitizer(textObj.text) }]); +} +function setWidth(width) { + quadrantBuilder.setConfig({ chartWidth: width }); +} +function setHeight(height) { + quadrantBuilder.setConfig({ chartHeight: height }); +} +function getQuadrantData() { + const config2 = getConfig(); + const { themeVariables, quadrantChart: quadrantChartConfig } = config2; + if (quadrantChartConfig) { + quadrantBuilder.setConfig(quadrantChartConfig); + } + quadrantBuilder.setThemeConfig({ + quadrant1Fill: themeVariables.quadrant1Fill, + quadrant2Fill: themeVariables.quadrant2Fill, + quadrant3Fill: themeVariables.quadrant3Fill, + quadrant4Fill: themeVariables.quadrant4Fill, + quadrant1TextFill: themeVariables.quadrant1TextFill, + quadrant2TextFill: themeVariables.quadrant2TextFill, + quadrant3TextFill: themeVariables.quadrant3TextFill, + quadrant4TextFill: themeVariables.quadrant4TextFill, + quadrantPointFill: themeVariables.quadrantPointFill, + quadrantPointTextFill: themeVariables.quadrantPointTextFill, + quadrantXAxisTextFill: themeVariables.quadrantXAxisTextFill, + quadrantYAxisTextFill: themeVariables.quadrantYAxisTextFill, + quadrantExternalBorderStrokeFill: themeVariables.quadrantExternalBorderStrokeFill, + quadrantInternalBorderStrokeFill: themeVariables.quadrantInternalBorderStrokeFill, + quadrantTitleFill: themeVariables.quadrantTitleFill + }); + quadrantBuilder.setData({ titleText: getDiagramTitle() }); + return quadrantBuilder.build(); +} +const clear = function() { + quadrantBuilder.clear(); + clear$1(); +}; +const db = { + setWidth, + setHeight, + setQuadrant1Text, + setQuadrant2Text, + setQuadrant3Text, + setQuadrant4Text, + setXAxisLeftText, + setXAxisRightText, + setYAxisTopText, + setYAxisBottomText, + addPoint, + getQuadrantData, + clear, + setAccTitle, + getAccTitle, + setDiagramTitle, + getDiagramTitle, + getAccDescription, + setAccDescription +}; +const draw = (txt, id, _version, diagObj) => { + var _a, _b, _c; + function getDominantBaseLine(horizontalPos) { + return horizontalPos === "top" ? "hanging" : "middle"; + } + function getTextAnchor(verticalPos) { + return verticalPos === "left" ? "start" : "middle"; + } + function getTransformation(data) { + return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`; + } + const conf = getConfig(); + log.debug("Rendering quadrant chart\n" + txt); + const securityLevel = conf.securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const svg = root.select(`[id="${id}"]`); + const group = svg.append("g").attr("class", "main"); + const width = ((_a = conf.quadrantChart) == null ? void 0 : _a.chartWidth) || 500; + const height = ((_b = conf.quadrantChart) == null ? void 0 : _b.chartHeight) || 500; + configureSvgSize(svg, height, width, ((_c = conf.quadrantChart) == null ? void 0 : _c.useMaxWidth) || true); + svg.attr("viewBox", "0 0 " + width + " " + height); + diagObj.db.setHeight(height); + diagObj.db.setWidth(width); + const quadrantData = diagObj.db.getQuadrantData(); + const quadrantsGroup = group.append("g").attr("class", "quadrants"); + const borderGroup = group.append("g").attr("class", "border"); + const dataPointGroup = group.append("g").attr("class", "data-points"); + const labelGroup = group.append("g").attr("class", "labels"); + const titleGroup = group.append("g").attr("class", "title"); + if (quadrantData.title) { + titleGroup.append("text").attr("x", 0).attr("y", 0).attr("fill", quadrantData.title.fill).attr("font-size", quadrantData.title.fontSize).attr("dominant-baseline", getDominantBaseLine(quadrantData.title.horizontalPos)).attr("text-anchor", getTextAnchor(quadrantData.title.verticalPos)).attr("transform", getTransformation(quadrantData.title)).text(quadrantData.title.text); + } + if (quadrantData.borderLines) { + borderGroup.selectAll("line").data(quadrantData.borderLines).enter().append("line").attr("x1", (data) => data.x1).attr("y1", (data) => data.y1).attr("x2", (data) => data.x2).attr("y2", (data) => data.y2).style("stroke", (data) => data.strokeFill).style("stroke-width", (data) => data.strokeWidth); + } + const quadrants = quadrantsGroup.selectAll("g.quadrant").data(quadrantData.quadrants).enter().append("g").attr("class", "quadrant"); + quadrants.append("rect").attr("x", (data) => data.x).attr("y", (data) => data.y).attr("width", (data) => data.width).attr("height", (data) => data.height).attr("fill", (data) => data.fill); + quadrants.append("text").attr("x", 0).attr("y", 0).attr("fill", (data) => data.text.fill).attr("font-size", (data) => data.text.fontSize).attr( + "dominant-baseline", + (data) => getDominantBaseLine(data.text.horizontalPos) + ).attr("text-anchor", (data) => getTextAnchor(data.text.verticalPos)).attr("transform", (data) => getTransformation(data.text)).text((data) => data.text.text); + const labels = labelGroup.selectAll("g.label").data(quadrantData.axisLabels).enter().append("g").attr("class", "label"); + labels.append("text").attr("x", 0).attr("y", 0).text((data) => data.text).attr("fill", (data) => data.fill).attr("font-size", (data) => data.fontSize).attr("dominant-baseline", (data) => getDominantBaseLine(data.horizontalPos)).attr("text-anchor", (data) => getTextAnchor(data.verticalPos)).attr("transform", (data) => getTransformation(data)); + const dataPoints = dataPointGroup.selectAll("g.data-point").data(quadrantData.points).enter().append("g").attr("class", "data-point"); + dataPoints.append("circle").attr("cx", (data) => data.x).attr("cy", (data) => data.y).attr("r", (data) => data.radius).attr("fill", (data) => data.fill); + dataPoints.append("text").attr("x", 0).attr("y", 0).text((data) => data.text.text).attr("fill", (data) => data.text.fill).attr("font-size", (data) => data.text.fontSize).attr( + "dominant-baseline", + (data) => getDominantBaseLine(data.text.horizontalPos) + ).attr("text-anchor", (data) => getTextAnchor(data.text.verticalPos)).attr("transform", (data) => getTransformation(data.text)); +}; +const renderer = { + draw +}; +const diagram = { + parser: parser$1, + db, + renderer, + styles: () => "" +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/requirementDiagram-03163dc4.js b/assets/lib/mermaid/requirementDiagram-03163dc4.js new file mode 100644 index 000000000..cd6903411 --- /dev/null +++ b/assets/lib/mermaid/requirementDiagram-03163dc4.js @@ -0,0 +1,769 @@ +import { c as Te, s as Ce, g as Fe, b as Me, a as De, l as Ne, E as Pe, j as oe, k as Ye, f as ke } from "./mermaid-9f2aa176.js"; +import { G as Ue } from "./graph-0ee63739.js"; +import { l as Be } from "./layout-fd473db2.js"; +import { l as Qe } from "./line-24d93f1b.js"; +import "./array-2ff2c7a6.js"; +import "./path-428ebac9.js"; +var ce = function() { + var e = function(V, i, r, a) { + for (r = r || {}, a = V.length; a--; r[V[a]] = i) + ; + return r; + }, t = [1, 3], l = [1, 4], c = [1, 5], u = [1, 6], d = [5, 6, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 62, 63], f = [1, 18], h = [2, 7], o = [1, 22], E = [1, 23], R = [1, 24], A = [1, 25], T = [1, 26], N = [1, 27], w = [1, 20], k = [1, 28], x = [1, 29], F = [62, 63], de = [5, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 51, 53, 62, 63], fe = [1, 47], pe = [1, 48], ye = [1, 49], _e = [1, 50], Ee = [1, 51], ge = [1, 52], Re = [1, 53], O = [53, 54], M = [1, 64], D = [1, 60], P = [1, 61], Y = [1, 62], U = [1, 63], B = [1, 65], j = [1, 69], z = [1, 70], X = [1, 67], J = [1, 68], m = [5, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 62, 63], ie = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, directive: 4, NEWLINE: 5, RD: 6, diagram: 7, EOF: 8, acc_title: 9, acc_title_value: 10, acc_descr: 11, acc_descr_value: 12, acc_descr_multiline_value: 13, requirementDef: 14, elementDef: 15, relationshipDef: 16, requirementType: 17, requirementName: 18, STRUCT_START: 19, requirementBody: 20, ID: 21, COLONSEP: 22, id: 23, TEXT: 24, text: 25, RISK: 26, riskLevel: 27, VERIFYMTHD: 28, verifyType: 29, STRUCT_STOP: 30, REQUIREMENT: 31, FUNCTIONAL_REQUIREMENT: 32, INTERFACE_REQUIREMENT: 33, PERFORMANCE_REQUIREMENT: 34, PHYSICAL_REQUIREMENT: 35, DESIGN_CONSTRAINT: 36, LOW_RISK: 37, MED_RISK: 38, HIGH_RISK: 39, VERIFY_ANALYSIS: 40, VERIFY_DEMONSTRATION: 41, VERIFY_INSPECTION: 42, VERIFY_TEST: 43, ELEMENT: 44, elementName: 45, elementBody: 46, TYPE: 47, type: 48, DOCREF: 49, ref: 50, END_ARROW_L: 51, relationship: 52, LINE: 53, END_ARROW_R: 54, CONTAINS: 55, COPIES: 56, DERIVES: 57, SATISFIES: 58, VERIFIES: 59, REFINES: 60, TRACES: 61, unqString: 62, qString: 63, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 5: "NEWLINE", 6: "RD", 8: "EOF", 9: "acc_title", 10: "acc_title_value", 11: "acc_descr", 12: "acc_descr_value", 13: "acc_descr_multiline_value", 19: "STRUCT_START", 21: "ID", 22: "COLONSEP", 24: "TEXT", 26: "RISK", 28: "VERIFYMTHD", 30: "STRUCT_STOP", 31: "REQUIREMENT", 32: "FUNCTIONAL_REQUIREMENT", 33: "INTERFACE_REQUIREMENT", 34: "PERFORMANCE_REQUIREMENT", 35: "PHYSICAL_REQUIREMENT", 36: "DESIGN_CONSTRAINT", 37: "LOW_RISK", 38: "MED_RISK", 39: "HIGH_RISK", 40: "VERIFY_ANALYSIS", 41: "VERIFY_DEMONSTRATION", 42: "VERIFY_INSPECTION", 43: "VERIFY_TEST", 44: "ELEMENT", 47: "TYPE", 49: "DOCREF", 51: "END_ARROW_L", 53: "LINE", 54: "END_ARROW_R", 55: "CONTAINS", 56: "COPIES", 57: "DERIVES", 58: "SATISFIES", 59: "VERIFIES", 60: "REFINES", 61: "TRACES", 62: "unqString", 63: "qString" }, + productions_: [0, [3, 3], [3, 2], [3, 4], [4, 2], [4, 2], [4, 1], [7, 0], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [14, 5], [20, 5], [20, 5], [20, 5], [20, 5], [20, 2], [20, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [27, 1], [27, 1], [27, 1], [29, 1], [29, 1], [29, 1], [29, 1], [15, 5], [46, 5], [46, 5], [46, 2], [46, 1], [16, 5], [16, 5], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [18, 1], [18, 1], [23, 1], [23, 1], [25, 1], [25, 1], [45, 1], [45, 1], [48, 1], [48, 1], [50, 1], [50, 1]], + performAction: function(i, r, a, n, p, s, W) { + var _ = s.length - 1; + switch (p) { + case 4: + this.$ = s[_].trim(), n.setAccTitle(this.$); + break; + case 5: + case 6: + this.$ = s[_].trim(), n.setAccDescription(this.$); + break; + case 7: + this.$ = []; + break; + case 13: + n.addRequirement(s[_ - 3], s[_ - 4]); + break; + case 14: + n.setNewReqId(s[_ - 2]); + break; + case 15: + n.setNewReqText(s[_ - 2]); + break; + case 16: + n.setNewReqRisk(s[_ - 2]); + break; + case 17: + n.setNewReqVerifyMethod(s[_ - 2]); + break; + case 20: + this.$ = n.RequirementType.REQUIREMENT; + break; + case 21: + this.$ = n.RequirementType.FUNCTIONAL_REQUIREMENT; + break; + case 22: + this.$ = n.RequirementType.INTERFACE_REQUIREMENT; + break; + case 23: + this.$ = n.RequirementType.PERFORMANCE_REQUIREMENT; + break; + case 24: + this.$ = n.RequirementType.PHYSICAL_REQUIREMENT; + break; + case 25: + this.$ = n.RequirementType.DESIGN_CONSTRAINT; + break; + case 26: + this.$ = n.RiskLevel.LOW_RISK; + break; + case 27: + this.$ = n.RiskLevel.MED_RISK; + break; + case 28: + this.$ = n.RiskLevel.HIGH_RISK; + break; + case 29: + this.$ = n.VerifyType.VERIFY_ANALYSIS; + break; + case 30: + this.$ = n.VerifyType.VERIFY_DEMONSTRATION; + break; + case 31: + this.$ = n.VerifyType.VERIFY_INSPECTION; + break; + case 32: + this.$ = n.VerifyType.VERIFY_TEST; + break; + case 33: + n.addElement(s[_ - 3]); + break; + case 34: + n.setNewElementType(s[_ - 2]); + break; + case 35: + n.setNewElementDocRef(s[_ - 2]); + break; + case 38: + n.addRelationship(s[_ - 2], s[_], s[_ - 4]); + break; + case 39: + n.addRelationship(s[_ - 2], s[_ - 4], s[_]); + break; + case 40: + this.$ = n.Relationships.CONTAINS; + break; + case 41: + this.$ = n.Relationships.COPIES; + break; + case 42: + this.$ = n.Relationships.DERIVES; + break; + case 43: + this.$ = n.Relationships.SATISFIES; + break; + case 44: + this.$ = n.Relationships.VERIFIES; + break; + case 45: + this.$ = n.Relationships.REFINES; + break; + case 46: + this.$ = n.Relationships.TRACES; + break; + } + }, + table: [{ 3: 1, 4: 2, 6: t, 9: l, 11: c, 13: u }, { 1: [3] }, { 3: 8, 4: 2, 5: [1, 7], 6: t, 9: l, 11: c, 13: u }, { 5: [1, 9] }, { 10: [1, 10] }, { 12: [1, 11] }, e(d, [2, 6]), { 3: 12, 4: 2, 6: t, 9: l, 11: c, 13: u }, { 1: [2, 2] }, { 4: 17, 5: f, 7: 13, 8: h, 9: l, 11: c, 13: u, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: o, 32: E, 33: R, 34: A, 35: T, 36: N, 44: w, 62: k, 63: x }, e(d, [2, 4]), e(d, [2, 5]), { 1: [2, 1] }, { 8: [1, 30] }, { 4: 17, 5: f, 7: 31, 8: h, 9: l, 11: c, 13: u, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: o, 32: E, 33: R, 34: A, 35: T, 36: N, 44: w, 62: k, 63: x }, { 4: 17, 5: f, 7: 32, 8: h, 9: l, 11: c, 13: u, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: o, 32: E, 33: R, 34: A, 35: T, 36: N, 44: w, 62: k, 63: x }, { 4: 17, 5: f, 7: 33, 8: h, 9: l, 11: c, 13: u, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: o, 32: E, 33: R, 34: A, 35: T, 36: N, 44: w, 62: k, 63: x }, { 4: 17, 5: f, 7: 34, 8: h, 9: l, 11: c, 13: u, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: o, 32: E, 33: R, 34: A, 35: T, 36: N, 44: w, 62: k, 63: x }, { 4: 17, 5: f, 7: 35, 8: h, 9: l, 11: c, 13: u, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: o, 32: E, 33: R, 34: A, 35: T, 36: N, 44: w, 62: k, 63: x }, { 18: 36, 62: [1, 37], 63: [1, 38] }, { 45: 39, 62: [1, 40], 63: [1, 41] }, { 51: [1, 42], 53: [1, 43] }, e(F, [2, 20]), e(F, [2, 21]), e(F, [2, 22]), e(F, [2, 23]), e(F, [2, 24]), e(F, [2, 25]), e(de, [2, 49]), e(de, [2, 50]), { 1: [2, 3] }, { 8: [2, 8] }, { 8: [2, 9] }, { 8: [2, 10] }, { 8: [2, 11] }, { 8: [2, 12] }, { 19: [1, 44] }, { 19: [2, 47] }, { 19: [2, 48] }, { 19: [1, 45] }, { 19: [2, 53] }, { 19: [2, 54] }, { 52: 46, 55: fe, 56: pe, 57: ye, 58: _e, 59: Ee, 60: ge, 61: Re }, { 52: 54, 55: fe, 56: pe, 57: ye, 58: _e, 59: Ee, 60: ge, 61: Re }, { 5: [1, 55] }, { 5: [1, 56] }, { 53: [1, 57] }, e(O, [2, 40]), e(O, [2, 41]), e(O, [2, 42]), e(O, [2, 43]), e(O, [2, 44]), e(O, [2, 45]), e(O, [2, 46]), { 54: [1, 58] }, { 5: M, 20: 59, 21: D, 24: P, 26: Y, 28: U, 30: B }, { 5: j, 30: z, 46: 66, 47: X, 49: J }, { 23: 71, 62: k, 63: x }, { 23: 72, 62: k, 63: x }, e(m, [2, 13]), { 22: [1, 73] }, { 22: [1, 74] }, { 22: [1, 75] }, { 22: [1, 76] }, { 5: M, 20: 77, 21: D, 24: P, 26: Y, 28: U, 30: B }, e(m, [2, 19]), e(m, [2, 33]), { 22: [1, 78] }, { 22: [1, 79] }, { 5: j, 30: z, 46: 80, 47: X, 49: J }, e(m, [2, 37]), e(m, [2, 38]), e(m, [2, 39]), { 23: 81, 62: k, 63: x }, { 25: 82, 62: [1, 83], 63: [1, 84] }, { 27: 85, 37: [1, 86], 38: [1, 87], 39: [1, 88] }, { 29: 89, 40: [1, 90], 41: [1, 91], 42: [1, 92], 43: [1, 93] }, e(m, [2, 18]), { 48: 94, 62: [1, 95], 63: [1, 96] }, { 50: 97, 62: [1, 98], 63: [1, 99] }, e(m, [2, 36]), { 5: [1, 100] }, { 5: [1, 101] }, { 5: [2, 51] }, { 5: [2, 52] }, { 5: [1, 102] }, { 5: [2, 26] }, { 5: [2, 27] }, { 5: [2, 28] }, { 5: [1, 103] }, { 5: [2, 29] }, { 5: [2, 30] }, { 5: [2, 31] }, { 5: [2, 32] }, { 5: [1, 104] }, { 5: [2, 55] }, { 5: [2, 56] }, { 5: [1, 105] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: M, 20: 106, 21: D, 24: P, 26: Y, 28: U, 30: B }, { 5: M, 20: 107, 21: D, 24: P, 26: Y, 28: U, 30: B }, { 5: M, 20: 108, 21: D, 24: P, 26: Y, 28: U, 30: B }, { 5: M, 20: 109, 21: D, 24: P, 26: Y, 28: U, 30: B }, { 5: j, 30: z, 46: 110, 47: X, 49: J }, { 5: j, 30: z, 46: 111, 47: X, 49: J }, e(m, [2, 14]), e(m, [2, 15]), e(m, [2, 16]), e(m, [2, 17]), e(m, [2, 34]), e(m, [2, 35])], + defaultActions: { 8: [2, 2], 12: [2, 1], 30: [2, 3], 31: [2, 8], 32: [2, 9], 33: [2, 10], 34: [2, 11], 35: [2, 12], 37: [2, 47], 38: [2, 48], 40: [2, 53], 41: [2, 54], 83: [2, 51], 84: [2, 52], 86: [2, 26], 87: [2, 27], 88: [2, 28], 90: [2, 29], 91: [2, 30], 92: [2, 31], 93: [2, 32], 95: [2, 55], 96: [2, 56], 98: [2, 57], 99: [2, 58] }, + parseError: function(i, r) { + if (r.recoverable) + this.trace(i); + else { + var a = new Error(i); + throw a.hash = r, a; + } + }, + parse: function(i) { + var r = this, a = [0], n = [], p = [null], s = [], W = this.table, _ = "", Z = 0, me = 0, Ve = 2, Ie = 1, qe = s.slice.call(arguments, 1), g = Object.create(this.lexer), L = { yy: {} }; + for (var re in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, re) && (L.yy[re] = this.yy[re]); + g.setInput(i, L.yy), L.yy.lexer = g, L.yy.parser = this, typeof g.yylloc > "u" && (g.yylloc = {}); + var se = g.yylloc; + s.push(se); + var Oe = g.options && g.options.ranges; + typeof L.yy.parseError == "function" ? this.parseError = L.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function Le() { + var v; + return v = n.pop() || g.lex() || Ie, typeof v != "number" && (v instanceof Array && (n = v, v = n.pop()), v = r.symbols_[v] || v), v; + } + for (var I, C, S, ae, Q = {}, ee, $, be, te; ; ) { + if (C = a[a.length - 1], this.defaultActions[C] ? S = this.defaultActions[C] : ((I === null || typeof I > "u") && (I = Le()), S = W[C] && W[C][I]), typeof S > "u" || !S.length || !S[0]) { + var le = ""; + te = []; + for (ee in W[C]) + this.terminals_[ee] && ee > Ve && te.push("'" + this.terminals_[ee] + "'"); + g.showPosition ? le = "Parse error on line " + (Z + 1) + `: +` + g.showPosition() + ` +Expecting ` + te.join(", ") + ", got '" + (this.terminals_[I] || I) + "'" : le = "Parse error on line " + (Z + 1) + ": Unexpected " + (I == Ie ? "end of input" : "'" + (this.terminals_[I] || I) + "'"), this.parseError(le, { + text: g.match, + token: this.terminals_[I] || I, + line: g.yylineno, + loc: se, + expected: te + }); + } + if (S[0] instanceof Array && S.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + C + ", token: " + I); + switch (S[0]) { + case 1: + a.push(I), p.push(g.yytext), s.push(g.yylloc), a.push(S[1]), I = null, me = g.yyleng, _ = g.yytext, Z = g.yylineno, se = g.yylloc; + break; + case 2: + if ($ = this.productions_[S[1]][1], Q.$ = p[p.length - $], Q._$ = { + first_line: s[s.length - ($ || 1)].first_line, + last_line: s[s.length - 1].last_line, + first_column: s[s.length - ($ || 1)].first_column, + last_column: s[s.length - 1].last_column + }, Oe && (Q._$.range = [ + s[s.length - ($ || 1)].range[0], + s[s.length - 1].range[1] + ]), ae = this.performAction.apply(Q, [ + _, + me, + Z, + L.yy, + S[1], + p, + s + ].concat(qe)), typeof ae < "u") + return ae; + $ && (a = a.slice(0, -1 * $ * 2), p = p.slice(0, -1 * $), s = s.slice(0, -1 * $)), a.push(this.productions_[S[1]][0]), p.push(Q.$), s.push(Q._$), be = W[a[a.length - 2]][a[a.length - 1]], a.push(be); + break; + case 3: + return !0; + } + } + return !0; + } + }, ve = function() { + var V = { + EOF: 1, + parseError: function(r, a) { + if (this.yy.parser) + this.yy.parser.parseError(r, a); + else + throw new Error(r); + }, + // resets the lexer, sets new input + setInput: function(i, r) { + return this.yy = r || this.yy || {}, this._input = i, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var i = this._input[0]; + this.yytext += i, this.yyleng++, this.offset++, this.match += i, this.matched += i; + var r = i.match(/(?:\r\n?|\n).*/g); + return r ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), i; + }, + // unshifts one char (or a string) into the input + unput: function(i) { + var r = i.length, a = i.split(/(?:\r\n?|\n)/g); + this._input = i + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - r), this.offset -= r; + var n = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), a.length - 1 && (this.yylineno -= a.length - 1); + var p = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: a ? (a.length === n.length ? this.yylloc.first_column : 0) + n[n.length - a.length].length - a[0].length : this.yylloc.first_column - r + }, this.options.ranges && (this.yylloc.range = [p[0], p[0] + this.yyleng - r]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(i) { + this.unput(this.match.slice(i)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var i = this.matched.substr(0, this.matched.length - this.match.length); + return (i.length > 20 ? "..." : "") + i.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var i = this.match; + return i.length < 20 && (i += this._input.substr(0, 20 - i.length)), (i.substr(0, 20) + (i.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var i = this.pastInput(), r = new Array(i.length + 1).join("-"); + return i + this.upcomingInput() + ` +` + r + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(i, r) { + var a, n, p; + if (this.options.backtrack_lexer && (p = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (p.yylloc.range = this.yylloc.range.slice(0))), n = i[0].match(/(?:\r\n?|\n).*/g), n && (this.yylineno += n.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: n ? n[n.length - 1].length - n[n.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + i[0].length + }, this.yytext += i[0], this.match += i[0], this.matches = i, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(i[0].length), this.matched += i[0], a = this.performAction.call(this, this.yy, this, r, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), a) + return a; + if (this._backtrack) { + for (var s in p) + this[s] = p[s]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var i, r, a, n; + this._more || (this.yytext = "", this.match = ""); + for (var p = this._currentRules(), s = 0; s < p.length; s++) + if (a = this._input.match(this.rules[p[s]]), a && (!r || a[0].length > r[0].length)) { + if (r = a, n = s, this.options.backtrack_lexer) { + if (i = this.test_match(a, p[s]), i !== !1) + return i; + if (this._backtrack) { + r = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return r ? (i = this.test_match(r, p[n]), i !== !1 ? i : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var r = this.next(); + return r || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(r) { + this.conditionStack.push(r); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var r = this.conditionStack.length - 1; + return r > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(r) { + return r = this.conditionStack.length - 1 - Math.abs(r || 0), r >= 0 ? this.conditionStack[r] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(r) { + this.begin(r); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: { "case-insensitive": !0 }, + performAction: function(r, a, n, p) { + switch (n) { + case 0: + return "title"; + case 1: + return this.begin("acc_title"), 9; + case 2: + return this.popState(), "acc_title_value"; + case 3: + return this.begin("acc_descr"), 11; + case 4: + return this.popState(), "acc_descr_value"; + case 5: + this.begin("acc_descr_multiline"); + break; + case 6: + this.popState(); + break; + case 7: + return "acc_descr_multiline_value"; + case 8: + return 5; + case 9: + break; + case 10: + break; + case 11: + break; + case 12: + return 8; + case 13: + return 6; + case 14: + return 19; + case 15: + return 30; + case 16: + return 22; + case 17: + return 21; + case 18: + return 24; + case 19: + return 26; + case 20: + return 28; + case 21: + return 31; + case 22: + return 32; + case 23: + return 33; + case 24: + return 34; + case 25: + return 35; + case 26: + return 36; + case 27: + return 37; + case 28: + return 38; + case 29: + return 39; + case 30: + return 40; + case 31: + return 41; + case 32: + return 42; + case 33: + return 43; + case 34: + return 44; + case 35: + return 55; + case 36: + return 56; + case 37: + return 57; + case 38: + return 58; + case 39: + return 59; + case 40: + return 60; + case 41: + return 61; + case 42: + return 47; + case 43: + return 49; + case 44: + return 51; + case 45: + return 54; + case 46: + return 53; + case 47: + this.begin("string"); + break; + case 48: + this.popState(); + break; + case 49: + return "qString"; + case 50: + return a.yytext = a.yytext.trim(), 62; + } + }, + rules: [/^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:$)/i, /^(?:requirementDiagram\b)/i, /^(?:\{)/i, /^(?:\})/i, /^(?::)/i, /^(?:id\b)/i, /^(?:text\b)/i, /^(?:risk\b)/i, /^(?:verifyMethod\b)/i, /^(?:requirement\b)/i, /^(?:functionalRequirement\b)/i, /^(?:interfaceRequirement\b)/i, /^(?:performanceRequirement\b)/i, /^(?:physicalRequirement\b)/i, /^(?:designConstraint\b)/i, /^(?:low\b)/i, /^(?:medium\b)/i, /^(?:high\b)/i, /^(?:analysis\b)/i, /^(?:demonstration\b)/i, /^(?:inspection\b)/i, /^(?:test\b)/i, /^(?:element\b)/i, /^(?:contains\b)/i, /^(?:copies\b)/i, /^(?:derives\b)/i, /^(?:satisfies\b)/i, /^(?:verifies\b)/i, /^(?:refines\b)/i, /^(?:traces\b)/i, /^(?:type\b)/i, /^(?:docref\b)/i, /^(?:<-)/i, /^(?:->)/i, /^(?:-)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[\w][^\r\n\{\<\>\-\=]*)/i], + conditions: { acc_descr_multiline: { rules: [6, 7], inclusive: !1 }, acc_descr: { rules: [4], inclusive: !1 }, acc_title: { rules: [2], inclusive: !1 }, unqString: { rules: [], inclusive: !1 }, token: { rules: [], inclusive: !1 }, string: { rules: [48, 49], inclusive: !1 }, INITIAL: { rules: [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50], inclusive: !0 } } + }; + return V; + }(); + ie.lexer = ve; + function ne() { + this.yy = {}; + } + return ne.prototype = ie, ie.Parser = ne, new ne(); +}(); +ce.parser = ce; +const He = ce; +let ue = [], b = {}, K = {}, q = {}, G = {}; +const We = { + REQUIREMENT: "Requirement", + FUNCTIONAL_REQUIREMENT: "Functional Requirement", + INTERFACE_REQUIREMENT: "Interface Requirement", + PERFORMANCE_REQUIREMENT: "Performance Requirement", + PHYSICAL_REQUIREMENT: "Physical Requirement", + DESIGN_CONSTRAINT: "Design Constraint" +}, Ke = { + LOW_RISK: "Low", + MED_RISK: "Medium", + HIGH_RISK: "High" +}, Ge = { + VERIFY_ANALYSIS: "Analysis", + VERIFY_DEMONSTRATION: "Demonstration", + VERIFY_INSPECTION: "Inspection", + VERIFY_TEST: "Test" +}, je = { + CONTAINS: "contains", + COPIES: "copies", + DERIVES: "derives", + SATISFIES: "satisfies", + VERIFIES: "verifies", + REFINES: "refines", + TRACES: "traces" +}, ze = (e, t) => (K[e] === void 0 && (K[e] = { + name: e, + type: t, + id: b.id, + text: b.text, + risk: b.risk, + verifyMethod: b.verifyMethod +}), b = {}, K[e]), Xe = () => K, Je = (e) => { + b !== void 0 && (b.id = e); +}, Ze = (e) => { + b !== void 0 && (b.text = e); +}, et = (e) => { + b !== void 0 && (b.risk = e); +}, tt = (e) => { + b !== void 0 && (b.verifyMethod = e); +}, it = (e) => (G[e] === void 0 && (G[e] = { + name: e, + type: q.type, + docRef: q.docRef +}, Ne.info("Added new requirement: ", e)), q = {}, G[e]), nt = () => G, rt = (e) => { + q !== void 0 && (q.type = e); +}, st = (e) => { + q !== void 0 && (q.docRef = e); +}, at = (e, t, l) => { + ue.push({ + type: e, + src: t, + dst: l + }); +}, lt = () => ue, ot = () => { + ue = [], b = {}, K = {}, q = {}, G = {}, Pe(); +}, ct = { + RequirementType: We, + RiskLevel: Ke, + VerifyType: Ge, + Relationships: je, + getConfig: () => Te().req, + addRequirement: ze, + getRequirements: Xe, + setNewReqId: Je, + setNewReqText: Ze, + setNewReqRisk: et, + setNewReqVerifyMethod: tt, + setAccTitle: Ce, + getAccTitle: Fe, + setAccDescription: Me, + getAccDescription: De, + addElement: it, + getElements: nt, + setNewElementType: rt, + setNewElementDocRef: st, + addRelationship: at, + getRelationships: lt, + clear: ot +}, ht = (e) => ` + + marker { + fill: ${e.relationColor}; + stroke: ${e.relationColor}; + } + + marker.cross { + stroke: ${e.lineColor}; + } + + svg { + font-family: ${e.fontFamily}; + font-size: ${e.fontSize}; + } + + .reqBox { + fill: ${e.requirementBackground}; + fill-opacity: 1.0; + stroke: ${e.requirementBorderColor}; + stroke-width: ${e.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${e.requirementTextColor}; + } + .reqLabelBox { + fill: ${e.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${e.requirementBorderColor}; + stroke-width: ${e.requirementBorderSize}; + } + .relationshipLine { + stroke: ${e.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${e.relationLabelColor}; + } + +`, ut = ht, he = { + CONTAINS: "contains", + ARROW: "arrow" +}, dt = (e, t) => { + let l = e.append("defs").append("marker").attr("id", he.CONTAINS + "_line_ending").attr("refX", 0).attr("refY", t.line_height / 2).attr("markerWidth", t.line_height).attr("markerHeight", t.line_height).attr("orient", "auto").append("g"); + l.append("circle").attr("cx", t.line_height / 2).attr("cy", t.line_height / 2).attr("r", t.line_height / 2).attr("fill", "none"), l.append("line").attr("x1", 0).attr("x2", t.line_height).attr("y1", t.line_height / 2).attr("y2", t.line_height / 2).attr("stroke-width", 1), l.append("line").attr("y1", 0).attr("y2", t.line_height).attr("x1", t.line_height / 2).attr("x2", t.line_height / 2).attr("stroke-width", 1), e.append("defs").append("marker").attr("id", he.ARROW + "_line_ending").attr("refX", t.line_height).attr("refY", 0.5 * t.line_height).attr("markerWidth", t.line_height).attr("markerHeight", t.line_height).attr("orient", "auto").append("path").attr( + "d", + `M0,0 + L${t.line_height},${t.line_height / 2} + M${t.line_height},${t.line_height / 2} + L0,${t.line_height}` + ).attr("stroke-width", 1); +}, xe = { + ReqMarkers: he, + insertLineEndings: dt +}; +let y = {}, Se = 0; +const Ae = (e, t) => e.insert("rect", "#" + t).attr("class", "req reqBox").attr("x", 0).attr("y", 0).attr("width", y.rect_min_width + "px").attr("height", y.rect_min_height + "px"), we = (e, t, l) => { + let c = y.rect_min_width / 2, u = e.append("text").attr("class", "req reqLabel reqTitle").attr("id", t).attr("x", c).attr("y", y.rect_padding).attr("dominant-baseline", "hanging"), d = 0; + l.forEach((E) => { + d == 0 ? u.append("tspan").attr("text-anchor", "middle").attr("x", y.rect_min_width / 2).attr("dy", 0).text(E) : u.append("tspan").attr("text-anchor", "middle").attr("x", y.rect_min_width / 2).attr("dy", y.line_height * 0.75).text(E), d++; + }); + let f = 1.5 * y.rect_padding, h = d * y.line_height * 0.75, o = f + h; + return e.append("line").attr("class", "req-title-line").attr("x1", "0").attr("x2", y.rect_min_width).attr("y1", o).attr("y2", o), { + titleNode: u, + y: o + }; +}, $e = (e, t, l, c) => { + let u = e.append("text").attr("class", "req reqLabel").attr("id", t).attr("x", y.rect_padding).attr("y", c).attr("dominant-baseline", "hanging"), d = 0; + const f = 30; + let h = []; + return l.forEach((o) => { + let E = o.length; + for (; E > f && d < 3; ) { + let R = o.substring(0, f); + o = o.substring(f, o.length), E = o.length, h[h.length] = R, d++; + } + if (d == 3) { + let R = h[h.length - 1]; + h[h.length - 1] = R.substring(0, R.length - 4) + "..."; + } else + h[h.length] = o; + d = 0; + }), h.forEach((o) => { + u.append("tspan").attr("x", y.rect_padding).attr("dy", y.line_height).text(o); + }), u; +}, ft = (e, t, l, c) => { + const u = t.node().getTotalLength(), d = t.node().getPointAtLength(u * 0.5), f = "rel" + Se; + Se++; + const o = e.append("text").attr("class", "req relationshipLabel").attr("id", f).attr("x", d.x).attr("y", d.y).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(c).node().getBBox(); + e.insert("rect", "#" + f).attr("class", "req reqLabelBox").attr("x", d.x - o.width / 2).attr("y", d.y - o.height / 2).attr("width", o.width).attr("height", o.height).attr("fill", "white").attr("fill-opacity", "85%"); +}, pt = function(e, t, l, c, u) { + const d = l.edge(H(t.src), H(t.dst)), f = Qe().x(function(o) { + return o.x; + }).y(function(o) { + return o.y; + }), h = e.insert("path", "#" + c).attr("class", "er relationshipLine").attr("d", f(d.points)).attr("fill", "none"); + t.type == u.db.Relationships.CONTAINS ? h.attr( + "marker-start", + "url(" + ke.getUrl(y.arrowMarkerAbsolute) + "#" + t.type + "_line_ending)" + ) : (h.attr("stroke-dasharray", "10,7"), h.attr( + "marker-end", + "url(" + ke.getUrl(y.arrowMarkerAbsolute) + "#" + xe.ReqMarkers.ARROW + "_line_ending)" + )), ft(e, h, y, `<<${t.type}>>`); +}, yt = (e, t, l) => { + Object.keys(e).forEach((c) => { + let u = e[c]; + c = H(c), Ne.info("Added new requirement: ", c); + const d = l.append("g").attr("id", c), f = "req-" + c, h = Ae(d, f); + let o = we(d, c + "_title", [ + `<<${u.type}>>`, + `${u.name}` + ]); + $e( + d, + c + "_body", + [ + `Id: ${u.id}`, + `Text: ${u.text}`, + `Risk: ${u.risk}`, + `Verification: ${u.verifyMethod}` + ], + o.y + ); + const E = h.node().getBBox(); + t.setNode(c, { + width: E.width, + height: E.height, + shape: "rect", + id: c + }); + }); +}, _t = (e, t, l) => { + Object.keys(e).forEach((c) => { + let u = e[c]; + const d = H(c), f = l.append("g").attr("id", d), h = "element-" + d, o = Ae(f, h); + let E = we(f, h + "_title", ["<>", `${c}`]); + $e( + f, + h + "_body", + [`Type: ${u.type || "Not Specified"}`, `Doc Ref: ${u.docRef || "None"}`], + E.y + ); + const R = o.node().getBBox(); + t.setNode(d, { + width: R.width, + height: R.height, + shape: "rect", + id: d + }); + }); +}, Et = (e, t) => (e.forEach(function(l) { + let c = H(l.src), u = H(l.dst); + t.setEdge(c, u, { relationship: l }); +}), e), gt = function(e, t) { + t.nodes().forEach(function(l) { + l !== void 0 && t.node(l) !== void 0 && (e.select("#" + l), e.select("#" + l).attr( + "transform", + "translate(" + (t.node(l).x - t.node(l).width / 2) + "," + (t.node(l).y - t.node(l).height / 2) + " )" + )); + }); +}, H = (e) => e.replace(/\s/g, "").replace(/\./g, "_"), Rt = (e, t, l, c) => { + y = Te().requirement; + const u = y.securityLevel; + let d; + u === "sandbox" && (d = oe("#i" + t)); + const h = (u === "sandbox" ? oe(d.nodes()[0].contentDocument.body) : oe("body")).select(`[id='${t}']`); + xe.insertLineEndings(h, y); + const o = new Ue({ + multigraph: !1, + compound: !1, + directed: !0 + }).setGraph({ + rankdir: y.layoutDirection, + marginx: 20, + marginy: 20, + nodesep: 100, + edgesep: 100, + ranksep: 100 + }).setDefaultEdgeLabel(function() { + return {}; + }); + let E = c.db.getRequirements(), R = c.db.getElements(), A = c.db.getRelationships(); + yt(E, o, h), _t(R, o, h), Et(A, o), Be(o), gt(h, o), A.forEach(function(x) { + pt(h, x, o, t, c); + }); + const T = y.rect_padding, N = h.node().getBBox(), w = N.width + T * 2, k = N.height + T * 2; + Ye(h, k, w, y.useMaxWidth), h.attr("viewBox", `${N.x - T} ${N.y - T} ${w} ${k}`); +}, mt = { + draw: Rt +}, xt = { + parser: He, + db: ct, + renderer: mt, + styles: ut +}; +export { + xt as diagram +}; diff --git a/assets/lib/mermaid/requirementDiagram-87253d64.js b/assets/lib/mermaid/requirementDiagram-87253d64.js new file mode 100644 index 000000000..c8a036337 --- /dev/null +++ b/assets/lib/mermaid/requirementDiagram-87253d64.js @@ -0,0 +1,1098 @@ +import { c as getConfig, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, l as log, v as clear$1, i as configureSvgSize, e as common } from "./mermaid-6dc72991.js"; +import { select, line } from "d3"; +import { layout } from "dagre-d3-es/src/dagre/index.js"; +import * as graphlib from "dagre-d3-es/src/graphlib/index.js"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [5, 6, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 62, 63], $V5 = [1, 18], $V6 = [2, 7], $V7 = [1, 22], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 25], $Vb = [1, 26], $Vc = [1, 27], $Vd = [1, 20], $Ve = [1, 28], $Vf = [1, 29], $Vg = [62, 63], $Vh = [5, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 51, 53, 62, 63], $Vi = [1, 47], $Vj = [1, 48], $Vk = [1, 49], $Vl = [1, 50], $Vm = [1, 51], $Vn = [1, 52], $Vo = [1, 53], $Vp = [53, 54], $Vq = [1, 64], $Vr = [1, 60], $Vs = [1, 61], $Vt = [1, 62], $Vu = [1, 63], $Vv = [1, 65], $Vw = [1, 69], $Vx = [1, 70], $Vy = [1, 67], $Vz = [1, 68], $VA = [5, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 62, 63]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "directive": 4, "NEWLINE": 5, "RD": 6, "diagram": 7, "EOF": 8, "acc_title": 9, "acc_title_value": 10, "acc_descr": 11, "acc_descr_value": 12, "acc_descr_multiline_value": 13, "requirementDef": 14, "elementDef": 15, "relationshipDef": 16, "requirementType": 17, "requirementName": 18, "STRUCT_START": 19, "requirementBody": 20, "ID": 21, "COLONSEP": 22, "id": 23, "TEXT": 24, "text": 25, "RISK": 26, "riskLevel": 27, "VERIFYMTHD": 28, "verifyType": 29, "STRUCT_STOP": 30, "REQUIREMENT": 31, "FUNCTIONAL_REQUIREMENT": 32, "INTERFACE_REQUIREMENT": 33, "PERFORMANCE_REQUIREMENT": 34, "PHYSICAL_REQUIREMENT": 35, "DESIGN_CONSTRAINT": 36, "LOW_RISK": 37, "MED_RISK": 38, "HIGH_RISK": 39, "VERIFY_ANALYSIS": 40, "VERIFY_DEMONSTRATION": 41, "VERIFY_INSPECTION": 42, "VERIFY_TEST": 43, "ELEMENT": 44, "elementName": 45, "elementBody": 46, "TYPE": 47, "type": 48, "DOCREF": 49, "ref": 50, "END_ARROW_L": 51, "relationship": 52, "LINE": 53, "END_ARROW_R": 54, "CONTAINS": 55, "COPIES": 56, "DERIVES": 57, "SATISFIES": 58, "VERIFIES": 59, "REFINES": 60, "TRACES": 61, "unqString": 62, "qString": 63, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 5: "NEWLINE", 6: "RD", 8: "EOF", 9: "acc_title", 10: "acc_title_value", 11: "acc_descr", 12: "acc_descr_value", 13: "acc_descr_multiline_value", 19: "STRUCT_START", 21: "ID", 22: "COLONSEP", 24: "TEXT", 26: "RISK", 28: "VERIFYMTHD", 30: "STRUCT_STOP", 31: "REQUIREMENT", 32: "FUNCTIONAL_REQUIREMENT", 33: "INTERFACE_REQUIREMENT", 34: "PERFORMANCE_REQUIREMENT", 35: "PHYSICAL_REQUIREMENT", 36: "DESIGN_CONSTRAINT", 37: "LOW_RISK", 38: "MED_RISK", 39: "HIGH_RISK", 40: "VERIFY_ANALYSIS", 41: "VERIFY_DEMONSTRATION", 42: "VERIFY_INSPECTION", 43: "VERIFY_TEST", 44: "ELEMENT", 47: "TYPE", 49: "DOCREF", 51: "END_ARROW_L", 53: "LINE", 54: "END_ARROW_R", 55: "CONTAINS", 56: "COPIES", 57: "DERIVES", 58: "SATISFIES", 59: "VERIFIES", 60: "REFINES", 61: "TRACES", 62: "unqString", 63: "qString" }, + productions_: [0, [3, 3], [3, 2], [3, 4], [4, 2], [4, 2], [4, 1], [7, 0], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [14, 5], [20, 5], [20, 5], [20, 5], [20, 5], [20, 2], [20, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [27, 1], [27, 1], [27, 1], [29, 1], [29, 1], [29, 1], [29, 1], [15, 5], [46, 5], [46, 5], [46, 2], [46, 1], [16, 5], [16, 5], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [18, 1], [18, 1], [23, 1], [23, 1], [25, 1], [25, 1], [45, 1], [45, 1], [48, 1], [48, 1], [50, 1], [50, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 4: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 5: + case 6: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 7: + this.$ = []; + break; + case 13: + yy.addRequirement($$[$0 - 3], $$[$0 - 4]); + break; + case 14: + yy.setNewReqId($$[$0 - 2]); + break; + case 15: + yy.setNewReqText($$[$0 - 2]); + break; + case 16: + yy.setNewReqRisk($$[$0 - 2]); + break; + case 17: + yy.setNewReqVerifyMethod($$[$0 - 2]); + break; + case 20: + this.$ = yy.RequirementType.REQUIREMENT; + break; + case 21: + this.$ = yy.RequirementType.FUNCTIONAL_REQUIREMENT; + break; + case 22: + this.$ = yy.RequirementType.INTERFACE_REQUIREMENT; + break; + case 23: + this.$ = yy.RequirementType.PERFORMANCE_REQUIREMENT; + break; + case 24: + this.$ = yy.RequirementType.PHYSICAL_REQUIREMENT; + break; + case 25: + this.$ = yy.RequirementType.DESIGN_CONSTRAINT; + break; + case 26: + this.$ = yy.RiskLevel.LOW_RISK; + break; + case 27: + this.$ = yy.RiskLevel.MED_RISK; + break; + case 28: + this.$ = yy.RiskLevel.HIGH_RISK; + break; + case 29: + this.$ = yy.VerifyType.VERIFY_ANALYSIS; + break; + case 30: + this.$ = yy.VerifyType.VERIFY_DEMONSTRATION; + break; + case 31: + this.$ = yy.VerifyType.VERIFY_INSPECTION; + break; + case 32: + this.$ = yy.VerifyType.VERIFY_TEST; + break; + case 33: + yy.addElement($$[$0 - 3]); + break; + case 34: + yy.setNewElementType($$[$0 - 2]); + break; + case 35: + yy.setNewElementDocRef($$[$0 - 2]); + break; + case 38: + yy.addRelationship($$[$0 - 2], $$[$0], $$[$0 - 4]); + break; + case 39: + yy.addRelationship($$[$0 - 2], $$[$0 - 4], $$[$0]); + break; + case 40: + this.$ = yy.Relationships.CONTAINS; + break; + case 41: + this.$ = yy.Relationships.COPIES; + break; + case 42: + this.$ = yy.Relationships.DERIVES; + break; + case 43: + this.$ = yy.Relationships.SATISFIES; + break; + case 44: + this.$ = yy.Relationships.VERIFIES; + break; + case 45: + this.$ = yy.Relationships.REFINES; + break; + case 46: + this.$ = yy.Relationships.TRACES; + break; + } + }, + table: [{ 3: 1, 4: 2, 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 1: [3] }, { 3: 8, 4: 2, 5: [1, 7], 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 5: [1, 9] }, { 10: [1, 10] }, { 12: [1, 11] }, o($V4, [2, 6]), { 3: 12, 4: 2, 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 1: [2, 2] }, { 4: 17, 5: $V5, 7: 13, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, o($V4, [2, 4]), o($V4, [2, 5]), { 1: [2, 1] }, { 8: [1, 30] }, { 4: 17, 5: $V5, 7: 31, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 32, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 33, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 34, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 35, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 18: 36, 62: [1, 37], 63: [1, 38] }, { 45: 39, 62: [1, 40], 63: [1, 41] }, { 51: [1, 42], 53: [1, 43] }, o($Vg, [2, 20]), o($Vg, [2, 21]), o($Vg, [2, 22]), o($Vg, [2, 23]), o($Vg, [2, 24]), o($Vg, [2, 25]), o($Vh, [2, 49]), o($Vh, [2, 50]), { 1: [2, 3] }, { 8: [2, 8] }, { 8: [2, 9] }, { 8: [2, 10] }, { 8: [2, 11] }, { 8: [2, 12] }, { 19: [1, 44] }, { 19: [2, 47] }, { 19: [2, 48] }, { 19: [1, 45] }, { 19: [2, 53] }, { 19: [2, 54] }, { 52: 46, 55: $Vi, 56: $Vj, 57: $Vk, 58: $Vl, 59: $Vm, 60: $Vn, 61: $Vo }, { 52: 54, 55: $Vi, 56: $Vj, 57: $Vk, 58: $Vl, 59: $Vm, 60: $Vn, 61: $Vo }, { 5: [1, 55] }, { 5: [1, 56] }, { 53: [1, 57] }, o($Vp, [2, 40]), o($Vp, [2, 41]), o($Vp, [2, 42]), o($Vp, [2, 43]), o($Vp, [2, 44]), o($Vp, [2, 45]), o($Vp, [2, 46]), { 54: [1, 58] }, { 5: $Vq, 20: 59, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vw, 30: $Vx, 46: 66, 47: $Vy, 49: $Vz }, { 23: 71, 62: $Ve, 63: $Vf }, { 23: 72, 62: $Ve, 63: $Vf }, o($VA, [2, 13]), { 22: [1, 73] }, { 22: [1, 74] }, { 22: [1, 75] }, { 22: [1, 76] }, { 5: $Vq, 20: 77, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, o($VA, [2, 19]), o($VA, [2, 33]), { 22: [1, 78] }, { 22: [1, 79] }, { 5: $Vw, 30: $Vx, 46: 80, 47: $Vy, 49: $Vz }, o($VA, [2, 37]), o($VA, [2, 38]), o($VA, [2, 39]), { 23: 81, 62: $Ve, 63: $Vf }, { 25: 82, 62: [1, 83], 63: [1, 84] }, { 27: 85, 37: [1, 86], 38: [1, 87], 39: [1, 88] }, { 29: 89, 40: [1, 90], 41: [1, 91], 42: [1, 92], 43: [1, 93] }, o($VA, [2, 18]), { 48: 94, 62: [1, 95], 63: [1, 96] }, { 50: 97, 62: [1, 98], 63: [1, 99] }, o($VA, [2, 36]), { 5: [1, 100] }, { 5: [1, 101] }, { 5: [2, 51] }, { 5: [2, 52] }, { 5: [1, 102] }, { 5: [2, 26] }, { 5: [2, 27] }, { 5: [2, 28] }, { 5: [1, 103] }, { 5: [2, 29] }, { 5: [2, 30] }, { 5: [2, 31] }, { 5: [2, 32] }, { 5: [1, 104] }, { 5: [2, 55] }, { 5: [2, 56] }, { 5: [1, 105] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: $Vq, 20: 106, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 107, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 108, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 109, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vw, 30: $Vx, 46: 110, 47: $Vy, 49: $Vz }, { 5: $Vw, 30: $Vx, 46: 111, 47: $Vy, 49: $Vz }, o($VA, [2, 14]), o($VA, [2, 15]), o($VA, [2, 16]), o($VA, [2, 17]), o($VA, [2, 34]), o($VA, [2, 35])], + defaultActions: { 8: [2, 2], 12: [2, 1], 30: [2, 3], 31: [2, 8], 32: [2, 9], 33: [2, 10], 34: [2, 11], 35: [2, 12], 37: [2, 47], 38: [2, 48], 40: [2, 53], 41: [2, 54], 83: [2, 51], 84: [2, 52], 86: [2, 26], 87: [2, 27], 88: [2, 28], 90: [2, 29], 91: [2, 30], 92: [2, 31], 93: [2, 32], 95: [2, 55], 96: [2, 56], 98: [2, 57], 99: [2, 58] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + return "title"; + case 1: + this.begin("acc_title"); + return 9; + case 2: + this.popState(); + return "acc_title_value"; + case 3: + this.begin("acc_descr"); + return 11; + case 4: + this.popState(); + return "acc_descr_value"; + case 5: + this.begin("acc_descr_multiline"); + break; + case 6: + this.popState(); + break; + case 7: + return "acc_descr_multiline_value"; + case 8: + return 5; + case 9: + break; + case 10: + break; + case 11: + break; + case 12: + return 8; + case 13: + return 6; + case 14: + return 19; + case 15: + return 30; + case 16: + return 22; + case 17: + return 21; + case 18: + return 24; + case 19: + return 26; + case 20: + return 28; + case 21: + return 31; + case 22: + return 32; + case 23: + return 33; + case 24: + return 34; + case 25: + return 35; + case 26: + return 36; + case 27: + return 37; + case 28: + return 38; + case 29: + return 39; + case 30: + return 40; + case 31: + return 41; + case 32: + return 42; + case 33: + return 43; + case 34: + return 44; + case 35: + return 55; + case 36: + return 56; + case 37: + return 57; + case 38: + return 58; + case 39: + return 59; + case 40: + return 60; + case 41: + return 61; + case 42: + return 47; + case 43: + return 49; + case 44: + return 51; + case 45: + return 54; + case 46: + return 53; + case 47: + this.begin("string"); + break; + case 48: + this.popState(); + break; + case 49: + return "qString"; + case 50: + yy_.yytext = yy_.yytext.trim(); + return 62; + } + }, + rules: [/^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:$)/i, /^(?:requirementDiagram\b)/i, /^(?:\{)/i, /^(?:\})/i, /^(?::)/i, /^(?:id\b)/i, /^(?:text\b)/i, /^(?:risk\b)/i, /^(?:verifyMethod\b)/i, /^(?:requirement\b)/i, /^(?:functionalRequirement\b)/i, /^(?:interfaceRequirement\b)/i, /^(?:performanceRequirement\b)/i, /^(?:physicalRequirement\b)/i, /^(?:designConstraint\b)/i, /^(?:low\b)/i, /^(?:medium\b)/i, /^(?:high\b)/i, /^(?:analysis\b)/i, /^(?:demonstration\b)/i, /^(?:inspection\b)/i, /^(?:test\b)/i, /^(?:element\b)/i, /^(?:contains\b)/i, /^(?:copies\b)/i, /^(?:derives\b)/i, /^(?:satisfies\b)/i, /^(?:verifies\b)/i, /^(?:refines\b)/i, /^(?:traces\b)/i, /^(?:type\b)/i, /^(?:docref\b)/i, /^(?:<-)/i, /^(?:->)/i, /^(?:-)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[\w][^\r\n\{\<\>\-\=]*)/i], + conditions: { "acc_descr_multiline": { "rules": [6, 7], "inclusive": false }, "acc_descr": { "rules": [4], "inclusive": false }, "acc_title": { "rules": [2], "inclusive": false }, "unqString": { "rules": [], "inclusive": false }, "token": { "rules": [], "inclusive": false }, "string": { "rules": [48, 49], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let relations = []; +let latestRequirement = {}; +let requirements = {}; +let latestElement = {}; +let elements = {}; +const RequirementType = { + REQUIREMENT: "Requirement", + FUNCTIONAL_REQUIREMENT: "Functional Requirement", + INTERFACE_REQUIREMENT: "Interface Requirement", + PERFORMANCE_REQUIREMENT: "Performance Requirement", + PHYSICAL_REQUIREMENT: "Physical Requirement", + DESIGN_CONSTRAINT: "Design Constraint" +}; +const RiskLevel = { + LOW_RISK: "Low", + MED_RISK: "Medium", + HIGH_RISK: "High" +}; +const VerifyType = { + VERIFY_ANALYSIS: "Analysis", + VERIFY_DEMONSTRATION: "Demonstration", + VERIFY_INSPECTION: "Inspection", + VERIFY_TEST: "Test" +}; +const Relationships = { + CONTAINS: "contains", + COPIES: "copies", + DERIVES: "derives", + SATISFIES: "satisfies", + VERIFIES: "verifies", + REFINES: "refines", + TRACES: "traces" +}; +const addRequirement = (name, type) => { + if (requirements[name] === void 0) { + requirements[name] = { + name, + type, + id: latestRequirement.id, + text: latestRequirement.text, + risk: latestRequirement.risk, + verifyMethod: latestRequirement.verifyMethod + }; + } + latestRequirement = {}; + return requirements[name]; +}; +const getRequirements = () => requirements; +const setNewReqId = (id) => { + if (latestRequirement !== void 0) { + latestRequirement.id = id; + } +}; +const setNewReqText = (text) => { + if (latestRequirement !== void 0) { + latestRequirement.text = text; + } +}; +const setNewReqRisk = (risk) => { + if (latestRequirement !== void 0) { + latestRequirement.risk = risk; + } +}; +const setNewReqVerifyMethod = (verifyMethod) => { + if (latestRequirement !== void 0) { + latestRequirement.verifyMethod = verifyMethod; + } +}; +const addElement = (name) => { + if (elements[name] === void 0) { + elements[name] = { + name, + type: latestElement.type, + docRef: latestElement.docRef + }; + log.info("Added new requirement: ", name); + } + latestElement = {}; + return elements[name]; +}; +const getElements = () => elements; +const setNewElementType = (type) => { + if (latestElement !== void 0) { + latestElement.type = type; + } +}; +const setNewElementDocRef = (docRef) => { + if (latestElement !== void 0) { + latestElement.docRef = docRef; + } +}; +const addRelationship = (type, src, dst) => { + relations.push({ + type, + src, + dst + }); +}; +const getRelationships = () => relations; +const clear = () => { + relations = []; + latestRequirement = {}; + requirements = {}; + latestElement = {}; + elements = {}; + clear$1(); +}; +const db = { + RequirementType, + RiskLevel, + VerifyType, + Relationships, + getConfig: () => getConfig().req, + addRequirement, + getRequirements, + setNewReqId, + setNewReqText, + setNewReqRisk, + setNewReqVerifyMethod, + setAccTitle, + getAccTitle, + setAccDescription, + getAccDescription, + addElement, + getElements, + setNewElementType, + setNewElementDocRef, + addRelationship, + getRelationships, + clear +}; +const getStyles = (options) => ` + + marker { + fill: ${options.relationColor}; + stroke: ${options.relationColor}; + } + + marker.cross { + stroke: ${options.lineColor}; + } + + svg { + font-family: ${options.fontFamily}; + font-size: ${options.fontSize}; + } + + .reqBox { + fill: ${options.requirementBackground}; + fill-opacity: 1.0; + stroke: ${options.requirementBorderColor}; + stroke-width: ${options.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${options.requirementTextColor}; + } + .reqLabelBox { + fill: ${options.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${options.requirementBorderColor}; + stroke-width: ${options.requirementBorderSize}; + } + .relationshipLine { + stroke: ${options.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${options.relationLabelColor}; + } + +`; +const styles = getStyles; +const ReqMarkers = { + CONTAINS: "contains", + ARROW: "arrow" +}; +const insertLineEndings = (parentNode, conf2) => { + let containsNode = parentNode.append("defs").append("marker").attr("id", ReqMarkers.CONTAINS + "_line_ending").attr("refX", 0).attr("refY", conf2.line_height / 2).attr("markerWidth", conf2.line_height).attr("markerHeight", conf2.line_height).attr("orient", "auto").append("g"); + containsNode.append("circle").attr("cx", conf2.line_height / 2).attr("cy", conf2.line_height / 2).attr("r", conf2.line_height / 2).attr("fill", "none"); + containsNode.append("line").attr("x1", 0).attr("x2", conf2.line_height).attr("y1", conf2.line_height / 2).attr("y2", conf2.line_height / 2).attr("stroke-width", 1); + containsNode.append("line").attr("y1", 0).attr("y2", conf2.line_height).attr("x1", conf2.line_height / 2).attr("x2", conf2.line_height / 2).attr("stroke-width", 1); + parentNode.append("defs").append("marker").attr("id", ReqMarkers.ARROW + "_line_ending").attr("refX", conf2.line_height).attr("refY", 0.5 * conf2.line_height).attr("markerWidth", conf2.line_height).attr("markerHeight", conf2.line_height).attr("orient", "auto").append("path").attr( + "d", + `M0,0 + L${conf2.line_height},${conf2.line_height / 2} + M${conf2.line_height},${conf2.line_height / 2} + L0,${conf2.line_height}` + ).attr("stroke-width", 1); +}; +const markers = { + ReqMarkers, + insertLineEndings +}; +let conf = {}; +let relCnt = 0; +const newRectNode = (parentNode, id) => { + return parentNode.insert("rect", "#" + id).attr("class", "req reqBox").attr("x", 0).attr("y", 0).attr("width", conf.rect_min_width + "px").attr("height", conf.rect_min_height + "px"); +}; +const newTitleNode = (parentNode, id, txts) => { + let x = conf.rect_min_width / 2; + let title = parentNode.append("text").attr("class", "req reqLabel reqTitle").attr("id", id).attr("x", x).attr("y", conf.rect_padding).attr("dominant-baseline", "hanging"); + let i = 0; + txts.forEach((textStr) => { + if (i == 0) { + title.append("tspan").attr("text-anchor", "middle").attr("x", conf.rect_min_width / 2).attr("dy", 0).text(textStr); + } else { + title.append("tspan").attr("text-anchor", "middle").attr("x", conf.rect_min_width / 2).attr("dy", conf.line_height * 0.75).text(textStr); + } + i++; + }); + let yPadding = 1.5 * conf.rect_padding; + let linePadding = i * conf.line_height * 0.75; + let totalY = yPadding + linePadding; + parentNode.append("line").attr("class", "req-title-line").attr("x1", "0").attr("x2", conf.rect_min_width).attr("y1", totalY).attr("y2", totalY); + return { + titleNode: title, + y: totalY + }; +}; +const newBodyNode = (parentNode, id, txts, yStart) => { + let body = parentNode.append("text").attr("class", "req reqLabel").attr("id", id).attr("x", conf.rect_padding).attr("y", yStart).attr("dominant-baseline", "hanging"); + let currentRow = 0; + const charLimit = 30; + let wrappedTxts = []; + txts.forEach((textStr) => { + let currentTextLen = textStr.length; + while (currentTextLen > charLimit && currentRow < 3) { + let firstPart = textStr.substring(0, charLimit); + textStr = textStr.substring(charLimit, textStr.length); + currentTextLen = textStr.length; + wrappedTxts[wrappedTxts.length] = firstPart; + currentRow++; + } + if (currentRow == 3) { + let lastStr = wrappedTxts[wrappedTxts.length - 1]; + wrappedTxts[wrappedTxts.length - 1] = lastStr.substring(0, lastStr.length - 4) + "..."; + } else { + wrappedTxts[wrappedTxts.length] = textStr; + } + currentRow = 0; + }); + wrappedTxts.forEach((textStr) => { + body.append("tspan").attr("x", conf.rect_padding).attr("dy", conf.line_height).text(textStr); + }); + return body; +}; +const addEdgeLabel = (parentNode, svgPath, conf2, txt) => { + const len = svgPath.node().getTotalLength(); + const labelPoint = svgPath.node().getPointAtLength(len * 0.5); + const labelId = "rel" + relCnt; + relCnt++; + const labelNode = parentNode.append("text").attr("class", "req relationshipLabel").attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(txt); + const labelBBox = labelNode.node().getBBox(); + parentNode.insert("rect", "#" + labelId).attr("class", "req reqLabelBox").attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height).attr("fill", "white").attr("fill-opacity", "85%"); +}; +const drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) { + const edge = g.edge(elementString(rel.src), elementString(rel.dst)); + const lineFunction = line().x(function(d) { + return d.x; + }).y(function(d) { + return d.y; + }); + const svgPath = svg.insert("path", "#" + insert).attr("class", "er relationshipLine").attr("d", lineFunction(edge.points)).attr("fill", "none"); + if (rel.type == diagObj.db.Relationships.CONTAINS) { + svgPath.attr( + "marker-start", + "url(" + common.getUrl(conf.arrowMarkerAbsolute) + "#" + rel.type + "_line_ending)" + ); + } else { + svgPath.attr("stroke-dasharray", "10,7"); + svgPath.attr( + "marker-end", + "url(" + common.getUrl(conf.arrowMarkerAbsolute) + "#" + markers.ReqMarkers.ARROW + "_line_ending)" + ); + } + addEdgeLabel(svg, svgPath, conf, `<<${rel.type}>>`); + return; +}; +const drawReqs = (reqs, graph, svgNode) => { + Object.keys(reqs).forEach((reqName) => { + let req = reqs[reqName]; + reqName = elementString(reqName); + log.info("Added new requirement: ", reqName); + const groupNode = svgNode.append("g").attr("id", reqName); + const textId = "req-" + reqName; + const rectNode = newRectNode(groupNode, textId); + let titleNodeInfo = newTitleNode(groupNode, reqName + "_title", [ + `<<${req.type}>>`, + `${req.name}` + ]); + newBodyNode( + groupNode, + reqName + "_body", + [ + `Id: ${req.id}`, + `Text: ${req.text}`, + `Risk: ${req.risk}`, + `Verification: ${req.verifyMethod}` + ], + titleNodeInfo.y + ); + const rectBBox = rectNode.node().getBBox(); + graph.setNode(reqName, { + width: rectBBox.width, + height: rectBBox.height, + shape: "rect", + id: reqName + }); + }); +}; +const drawElements = (els, graph, svgNode) => { + Object.keys(els).forEach((elName) => { + let el = els[elName]; + const id = elementString(elName); + const groupNode = svgNode.append("g").attr("id", id); + const textId = "element-" + id; + const rectNode = newRectNode(groupNode, textId); + let titleNodeInfo = newTitleNode(groupNode, textId + "_title", [`<>`, `${elName}`]); + newBodyNode( + groupNode, + textId + "_body", + [`Type: ${el.type || "Not Specified"}`, `Doc Ref: ${el.docRef || "None"}`], + titleNodeInfo.y + ); + const rectBBox = rectNode.node().getBBox(); + graph.setNode(id, { + width: rectBBox.width, + height: rectBBox.height, + shape: "rect", + id + }); + }); +}; +const addRelationships = (relationships, g) => { + relationships.forEach(function(r) { + let src = elementString(r.src); + let dst = elementString(r.dst); + g.setEdge(src, dst, { relationship: r }); + }); + return relationships; +}; +const adjustEntities = function(svgNode, graph) { + graph.nodes().forEach(function(v) { + if (v !== void 0 && graph.node(v) !== void 0) { + svgNode.select("#" + v); + svgNode.select("#" + v).attr( + "transform", + "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y - graph.node(v).height / 2) + " )" + ); + } + }); + return; +}; +const elementString = (str) => { + return str.replace(/\s/g, "").replace(/\./g, "_"); +}; +const draw = (text, id, _version, diagObj) => { + conf = getConfig().requirement; + const securityLevel = conf.securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const svg = root.select(`[id='${id}']`); + markers.insertLineEndings(svg, conf); + const g = new graphlib.Graph({ + multigraph: false, + compound: false, + directed: true + }).setGraph({ + rankdir: conf.layoutDirection, + marginx: 20, + marginy: 20, + nodesep: 100, + edgesep: 100, + ranksep: 100 + }).setDefaultEdgeLabel(function() { + return {}; + }); + let requirements2 = diagObj.db.getRequirements(); + let elements2 = diagObj.db.getElements(); + let relationships = diagObj.db.getRelationships(); + drawReqs(requirements2, g, svg); + drawElements(elements2, g, svg); + addRelationships(relationships, g); + layout(g); + adjustEntities(svg, g); + relationships.forEach(function(rel) { + drawRelationshipFromLayout(svg, rel, g, id, diagObj); + }); + const padding = conf.rect_padding; + const svgBounds = svg.node().getBBox(); + const width = svgBounds.width + padding * 2; + const height = svgBounds.height + padding * 2; + configureSvgSize(svg, height, width, conf.useMaxWidth); + svg.attr("viewBox", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`); +}; +const renderer = { + draw +}; +const diagram = { + parser: parser$1, + db, + renderer, + styles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/requirementDiagram-a721e157.js b/assets/lib/mermaid/requirementDiagram-a721e157.js new file mode 100644 index 000000000..45f6c7c64 --- /dev/null +++ b/assets/lib/mermaid/requirementDiagram-a721e157.js @@ -0,0 +1,1091 @@ +import { c as getConfig, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, l as log, E as clear$1, j as d3select, k as configureSvgSize, f as common } from "./mermaid-dcacb631.js"; +import { G as Graph } from "./graph-fe24fab6.js"; +import { l as layout } from "./layout-163b9689.js"; +import { l as line } from "./line-87f517ef.js"; +import "./array-b7dcf730.js"; +import "./path-39bad7e2.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [5, 6, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 62, 63], $V5 = [1, 18], $V6 = [2, 7], $V7 = [1, 22], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 25], $Vb = [1, 26], $Vc = [1, 27], $Vd = [1, 20], $Ve = [1, 28], $Vf = [1, 29], $Vg = [62, 63], $Vh = [5, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 51, 53, 62, 63], $Vi = [1, 47], $Vj = [1, 48], $Vk = [1, 49], $Vl = [1, 50], $Vm = [1, 51], $Vn = [1, 52], $Vo = [1, 53], $Vp = [53, 54], $Vq = [1, 64], $Vr = [1, 60], $Vs = [1, 61], $Vt = [1, 62], $Vu = [1, 63], $Vv = [1, 65], $Vw = [1, 69], $Vx = [1, 70], $Vy = [1, 67], $Vz = [1, 68], $VA = [5, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 62, 63]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "directive": 4, "NEWLINE": 5, "RD": 6, "diagram": 7, "EOF": 8, "acc_title": 9, "acc_title_value": 10, "acc_descr": 11, "acc_descr_value": 12, "acc_descr_multiline_value": 13, "requirementDef": 14, "elementDef": 15, "relationshipDef": 16, "requirementType": 17, "requirementName": 18, "STRUCT_START": 19, "requirementBody": 20, "ID": 21, "COLONSEP": 22, "id": 23, "TEXT": 24, "text": 25, "RISK": 26, "riskLevel": 27, "VERIFYMTHD": 28, "verifyType": 29, "STRUCT_STOP": 30, "REQUIREMENT": 31, "FUNCTIONAL_REQUIREMENT": 32, "INTERFACE_REQUIREMENT": 33, "PERFORMANCE_REQUIREMENT": 34, "PHYSICAL_REQUIREMENT": 35, "DESIGN_CONSTRAINT": 36, "LOW_RISK": 37, "MED_RISK": 38, "HIGH_RISK": 39, "VERIFY_ANALYSIS": 40, "VERIFY_DEMONSTRATION": 41, "VERIFY_INSPECTION": 42, "VERIFY_TEST": 43, "ELEMENT": 44, "elementName": 45, "elementBody": 46, "TYPE": 47, "type": 48, "DOCREF": 49, "ref": 50, "END_ARROW_L": 51, "relationship": 52, "LINE": 53, "END_ARROW_R": 54, "CONTAINS": 55, "COPIES": 56, "DERIVES": 57, "SATISFIES": 58, "VERIFIES": 59, "REFINES": 60, "TRACES": 61, "unqString": 62, "qString": 63, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 5: "NEWLINE", 6: "RD", 8: "EOF", 9: "acc_title", 10: "acc_title_value", 11: "acc_descr", 12: "acc_descr_value", 13: "acc_descr_multiline_value", 19: "STRUCT_START", 21: "ID", 22: "COLONSEP", 24: "TEXT", 26: "RISK", 28: "VERIFYMTHD", 30: "STRUCT_STOP", 31: "REQUIREMENT", 32: "FUNCTIONAL_REQUIREMENT", 33: "INTERFACE_REQUIREMENT", 34: "PERFORMANCE_REQUIREMENT", 35: "PHYSICAL_REQUIREMENT", 36: "DESIGN_CONSTRAINT", 37: "LOW_RISK", 38: "MED_RISK", 39: "HIGH_RISK", 40: "VERIFY_ANALYSIS", 41: "VERIFY_DEMONSTRATION", 42: "VERIFY_INSPECTION", 43: "VERIFY_TEST", 44: "ELEMENT", 47: "TYPE", 49: "DOCREF", 51: "END_ARROW_L", 53: "LINE", 54: "END_ARROW_R", 55: "CONTAINS", 56: "COPIES", 57: "DERIVES", 58: "SATISFIES", 59: "VERIFIES", 60: "REFINES", 61: "TRACES", 62: "unqString", 63: "qString" }, + productions_: [0, [3, 3], [3, 2], [3, 4], [4, 2], [4, 2], [4, 1], [7, 0], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [14, 5], [20, 5], [20, 5], [20, 5], [20, 5], [20, 2], [20, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [27, 1], [27, 1], [27, 1], [29, 1], [29, 1], [29, 1], [29, 1], [15, 5], [46, 5], [46, 5], [46, 2], [46, 1], [16, 5], [16, 5], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [18, 1], [18, 1], [23, 1], [23, 1], [25, 1], [25, 1], [45, 1], [45, 1], [48, 1], [48, 1], [50, 1], [50, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 4: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 5: + case 6: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 7: + this.$ = []; + break; + case 13: + yy.addRequirement($$[$0 - 3], $$[$0 - 4]); + break; + case 14: + yy.setNewReqId($$[$0 - 2]); + break; + case 15: + yy.setNewReqText($$[$0 - 2]); + break; + case 16: + yy.setNewReqRisk($$[$0 - 2]); + break; + case 17: + yy.setNewReqVerifyMethod($$[$0 - 2]); + break; + case 20: + this.$ = yy.RequirementType.REQUIREMENT; + break; + case 21: + this.$ = yy.RequirementType.FUNCTIONAL_REQUIREMENT; + break; + case 22: + this.$ = yy.RequirementType.INTERFACE_REQUIREMENT; + break; + case 23: + this.$ = yy.RequirementType.PERFORMANCE_REQUIREMENT; + break; + case 24: + this.$ = yy.RequirementType.PHYSICAL_REQUIREMENT; + break; + case 25: + this.$ = yy.RequirementType.DESIGN_CONSTRAINT; + break; + case 26: + this.$ = yy.RiskLevel.LOW_RISK; + break; + case 27: + this.$ = yy.RiskLevel.MED_RISK; + break; + case 28: + this.$ = yy.RiskLevel.HIGH_RISK; + break; + case 29: + this.$ = yy.VerifyType.VERIFY_ANALYSIS; + break; + case 30: + this.$ = yy.VerifyType.VERIFY_DEMONSTRATION; + break; + case 31: + this.$ = yy.VerifyType.VERIFY_INSPECTION; + break; + case 32: + this.$ = yy.VerifyType.VERIFY_TEST; + break; + case 33: + yy.addElement($$[$0 - 3]); + break; + case 34: + yy.setNewElementType($$[$0 - 2]); + break; + case 35: + yy.setNewElementDocRef($$[$0 - 2]); + break; + case 38: + yy.addRelationship($$[$0 - 2], $$[$0], $$[$0 - 4]); + break; + case 39: + yy.addRelationship($$[$0 - 2], $$[$0 - 4], $$[$0]); + break; + case 40: + this.$ = yy.Relationships.CONTAINS; + break; + case 41: + this.$ = yy.Relationships.COPIES; + break; + case 42: + this.$ = yy.Relationships.DERIVES; + break; + case 43: + this.$ = yy.Relationships.SATISFIES; + break; + case 44: + this.$ = yy.Relationships.VERIFIES; + break; + case 45: + this.$ = yy.Relationships.REFINES; + break; + case 46: + this.$ = yy.Relationships.TRACES; + break; + } + }, + table: [{ 3: 1, 4: 2, 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 1: [3] }, { 3: 8, 4: 2, 5: [1, 7], 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 5: [1, 9] }, { 10: [1, 10] }, { 12: [1, 11] }, o($V4, [2, 6]), { 3: 12, 4: 2, 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 1: [2, 2] }, { 4: 17, 5: $V5, 7: 13, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, o($V4, [2, 4]), o($V4, [2, 5]), { 1: [2, 1] }, { 8: [1, 30] }, { 4: 17, 5: $V5, 7: 31, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 32, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 33, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 34, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 35, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 18: 36, 62: [1, 37], 63: [1, 38] }, { 45: 39, 62: [1, 40], 63: [1, 41] }, { 51: [1, 42], 53: [1, 43] }, o($Vg, [2, 20]), o($Vg, [2, 21]), o($Vg, [2, 22]), o($Vg, [2, 23]), o($Vg, [2, 24]), o($Vg, [2, 25]), o($Vh, [2, 49]), o($Vh, [2, 50]), { 1: [2, 3] }, { 8: [2, 8] }, { 8: [2, 9] }, { 8: [2, 10] }, { 8: [2, 11] }, { 8: [2, 12] }, { 19: [1, 44] }, { 19: [2, 47] }, { 19: [2, 48] }, { 19: [1, 45] }, { 19: [2, 53] }, { 19: [2, 54] }, { 52: 46, 55: $Vi, 56: $Vj, 57: $Vk, 58: $Vl, 59: $Vm, 60: $Vn, 61: $Vo }, { 52: 54, 55: $Vi, 56: $Vj, 57: $Vk, 58: $Vl, 59: $Vm, 60: $Vn, 61: $Vo }, { 5: [1, 55] }, { 5: [1, 56] }, { 53: [1, 57] }, o($Vp, [2, 40]), o($Vp, [2, 41]), o($Vp, [2, 42]), o($Vp, [2, 43]), o($Vp, [2, 44]), o($Vp, [2, 45]), o($Vp, [2, 46]), { 54: [1, 58] }, { 5: $Vq, 20: 59, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vw, 30: $Vx, 46: 66, 47: $Vy, 49: $Vz }, { 23: 71, 62: $Ve, 63: $Vf }, { 23: 72, 62: $Ve, 63: $Vf }, o($VA, [2, 13]), { 22: [1, 73] }, { 22: [1, 74] }, { 22: [1, 75] }, { 22: [1, 76] }, { 5: $Vq, 20: 77, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, o($VA, [2, 19]), o($VA, [2, 33]), { 22: [1, 78] }, { 22: [1, 79] }, { 5: $Vw, 30: $Vx, 46: 80, 47: $Vy, 49: $Vz }, o($VA, [2, 37]), o($VA, [2, 38]), o($VA, [2, 39]), { 23: 81, 62: $Ve, 63: $Vf }, { 25: 82, 62: [1, 83], 63: [1, 84] }, { 27: 85, 37: [1, 86], 38: [1, 87], 39: [1, 88] }, { 29: 89, 40: [1, 90], 41: [1, 91], 42: [1, 92], 43: [1, 93] }, o($VA, [2, 18]), { 48: 94, 62: [1, 95], 63: [1, 96] }, { 50: 97, 62: [1, 98], 63: [1, 99] }, o($VA, [2, 36]), { 5: [1, 100] }, { 5: [1, 101] }, { 5: [2, 51] }, { 5: [2, 52] }, { 5: [1, 102] }, { 5: [2, 26] }, { 5: [2, 27] }, { 5: [2, 28] }, { 5: [1, 103] }, { 5: [2, 29] }, { 5: [2, 30] }, { 5: [2, 31] }, { 5: [2, 32] }, { 5: [1, 104] }, { 5: [2, 55] }, { 5: [2, 56] }, { 5: [1, 105] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: $Vq, 20: 106, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 107, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 108, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 109, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vw, 30: $Vx, 46: 110, 47: $Vy, 49: $Vz }, { 5: $Vw, 30: $Vx, 46: 111, 47: $Vy, 49: $Vz }, o($VA, [2, 14]), o($VA, [2, 15]), o($VA, [2, 16]), o($VA, [2, 17]), o($VA, [2, 34]), o($VA, [2, 35])], + defaultActions: { 8: [2, 2], 12: [2, 1], 30: [2, 3], 31: [2, 8], 32: [2, 9], 33: [2, 10], 34: [2, 11], 35: [2, 12], 37: [2, 47], 38: [2, 48], 40: [2, 53], 41: [2, 54], 83: [2, 51], 84: [2, 52], 86: [2, 26], 87: [2, 27], 88: [2, 28], 90: [2, 29], 91: [2, 30], 92: [2, 31], 93: [2, 32], 95: [2, 55], 96: [2, 56], 98: [2, 57], 99: [2, 58] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + return "title"; + case 1: + this.begin("acc_title"); + return 9; + case 2: + this.popState(); + return "acc_title_value"; + case 3: + this.begin("acc_descr"); + return 11; + case 4: + this.popState(); + return "acc_descr_value"; + case 5: + this.begin("acc_descr_multiline"); + break; + case 6: + this.popState(); + break; + case 7: + return "acc_descr_multiline_value"; + case 8: + return 5; + case 9: + break; + case 10: + break; + case 11: + break; + case 12: + return 8; + case 13: + return 6; + case 14: + return 19; + case 15: + return 30; + case 16: + return 22; + case 17: + return 21; + case 18: + return 24; + case 19: + return 26; + case 20: + return 28; + case 21: + return 31; + case 22: + return 32; + case 23: + return 33; + case 24: + return 34; + case 25: + return 35; + case 26: + return 36; + case 27: + return 37; + case 28: + return 38; + case 29: + return 39; + case 30: + return 40; + case 31: + return 41; + case 32: + return 42; + case 33: + return 43; + case 34: + return 44; + case 35: + return 55; + case 36: + return 56; + case 37: + return 57; + case 38: + return 58; + case 39: + return 59; + case 40: + return 60; + case 41: + return 61; + case 42: + return 47; + case 43: + return 49; + case 44: + return 51; + case 45: + return 54; + case 46: + return 53; + case 47: + this.begin("string"); + break; + case 48: + this.popState(); + break; + case 49: + return "qString"; + case 50: + yy_.yytext = yy_.yytext.trim(); + return 62; + } + }, + rules: [/^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:$)/i, /^(?:requirementDiagram\b)/i, /^(?:\{)/i, /^(?:\})/i, /^(?::)/i, /^(?:id\b)/i, /^(?:text\b)/i, /^(?:risk\b)/i, /^(?:verifyMethod\b)/i, /^(?:requirement\b)/i, /^(?:functionalRequirement\b)/i, /^(?:interfaceRequirement\b)/i, /^(?:performanceRequirement\b)/i, /^(?:physicalRequirement\b)/i, /^(?:designConstraint\b)/i, /^(?:low\b)/i, /^(?:medium\b)/i, /^(?:high\b)/i, /^(?:analysis\b)/i, /^(?:demonstration\b)/i, /^(?:inspection\b)/i, /^(?:test\b)/i, /^(?:element\b)/i, /^(?:contains\b)/i, /^(?:copies\b)/i, /^(?:derives\b)/i, /^(?:satisfies\b)/i, /^(?:verifies\b)/i, /^(?:refines\b)/i, /^(?:traces\b)/i, /^(?:type\b)/i, /^(?:docref\b)/i, /^(?:<-)/i, /^(?:->)/i, /^(?:-)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[\w][^\r\n\{\<\>\-\=]*)/i], + conditions: { "acc_descr_multiline": { "rules": [6, 7], "inclusive": false }, "acc_descr": { "rules": [4], "inclusive": false }, "acc_title": { "rules": [2], "inclusive": false }, "unqString": { "rules": [], "inclusive": false }, "token": { "rules": [], "inclusive": false }, "string": { "rules": [48, 49], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let relations = []; +let latestRequirement = {}; +let requirements = {}; +let latestElement = {}; +let elements = {}; +const RequirementType = { + REQUIREMENT: "Requirement", + FUNCTIONAL_REQUIREMENT: "Functional Requirement", + INTERFACE_REQUIREMENT: "Interface Requirement", + PERFORMANCE_REQUIREMENT: "Performance Requirement", + PHYSICAL_REQUIREMENT: "Physical Requirement", + DESIGN_CONSTRAINT: "Design Constraint" +}; +const RiskLevel = { + LOW_RISK: "Low", + MED_RISK: "Medium", + HIGH_RISK: "High" +}; +const VerifyType = { + VERIFY_ANALYSIS: "Analysis", + VERIFY_DEMONSTRATION: "Demonstration", + VERIFY_INSPECTION: "Inspection", + VERIFY_TEST: "Test" +}; +const Relationships = { + CONTAINS: "contains", + COPIES: "copies", + DERIVES: "derives", + SATISFIES: "satisfies", + VERIFIES: "verifies", + REFINES: "refines", + TRACES: "traces" +}; +const addRequirement = (name, type) => { + if (requirements[name] === void 0) { + requirements[name] = { + name, + type, + id: latestRequirement.id, + text: latestRequirement.text, + risk: latestRequirement.risk, + verifyMethod: latestRequirement.verifyMethod + }; + } + latestRequirement = {}; + return requirements[name]; +}; +const getRequirements = () => requirements; +const setNewReqId = (id) => { + if (latestRequirement !== void 0) { + latestRequirement.id = id; + } +}; +const setNewReqText = (text) => { + if (latestRequirement !== void 0) { + latestRequirement.text = text; + } +}; +const setNewReqRisk = (risk) => { + if (latestRequirement !== void 0) { + latestRequirement.risk = risk; + } +}; +const setNewReqVerifyMethod = (verifyMethod) => { + if (latestRequirement !== void 0) { + latestRequirement.verifyMethod = verifyMethod; + } +}; +const addElement = (name) => { + if (elements[name] === void 0) { + elements[name] = { + name, + type: latestElement.type, + docRef: latestElement.docRef + }; + log.info("Added new requirement: ", name); + } + latestElement = {}; + return elements[name]; +}; +const getElements = () => elements; +const setNewElementType = (type) => { + if (latestElement !== void 0) { + latestElement.type = type; + } +}; +const setNewElementDocRef = (docRef) => { + if (latestElement !== void 0) { + latestElement.docRef = docRef; + } +}; +const addRelationship = (type, src, dst) => { + relations.push({ + type, + src, + dst + }); +}; +const getRelationships = () => relations; +const clear = () => { + relations = []; + latestRequirement = {}; + requirements = {}; + latestElement = {}; + elements = {}; + clear$1(); +}; +const db = { + RequirementType, + RiskLevel, + VerifyType, + Relationships, + getConfig: () => getConfig().req, + addRequirement, + getRequirements, + setNewReqId, + setNewReqText, + setNewReqRisk, + setNewReqVerifyMethod, + setAccTitle, + getAccTitle, + setAccDescription, + getAccDescription, + addElement, + getElements, + setNewElementType, + setNewElementDocRef, + addRelationship, + getRelationships, + clear +}; +const getStyles = (options) => ` + + marker { + fill: ${options.relationColor}; + stroke: ${options.relationColor}; + } + + marker.cross { + stroke: ${options.lineColor}; + } + + svg { + font-family: ${options.fontFamily}; + font-size: ${options.fontSize}; + } + + .reqBox { + fill: ${options.requirementBackground}; + fill-opacity: 1.0; + stroke: ${options.requirementBorderColor}; + stroke-width: ${options.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${options.requirementTextColor}; + } + .reqLabelBox { + fill: ${options.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${options.requirementBorderColor}; + stroke-width: ${options.requirementBorderSize}; + } + .relationshipLine { + stroke: ${options.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${options.relationLabelColor}; + } + +`; +const styles = getStyles; +const ReqMarkers = { + CONTAINS: "contains", + ARROW: "arrow" +}; +const insertLineEndings = (parentNode, conf2) => { + let containsNode = parentNode.append("defs").append("marker").attr("id", ReqMarkers.CONTAINS + "_line_ending").attr("refX", 0).attr("refY", conf2.line_height / 2).attr("markerWidth", conf2.line_height).attr("markerHeight", conf2.line_height).attr("orient", "auto").append("g"); + containsNode.append("circle").attr("cx", conf2.line_height / 2).attr("cy", conf2.line_height / 2).attr("r", conf2.line_height / 2).attr("fill", "none"); + containsNode.append("line").attr("x1", 0).attr("x2", conf2.line_height).attr("y1", conf2.line_height / 2).attr("y2", conf2.line_height / 2).attr("stroke-width", 1); + containsNode.append("line").attr("y1", 0).attr("y2", conf2.line_height).attr("x1", conf2.line_height / 2).attr("x2", conf2.line_height / 2).attr("stroke-width", 1); + parentNode.append("defs").append("marker").attr("id", ReqMarkers.ARROW + "_line_ending").attr("refX", conf2.line_height).attr("refY", 0.5 * conf2.line_height).attr("markerWidth", conf2.line_height).attr("markerHeight", conf2.line_height).attr("orient", "auto").append("path").attr( + "d", + `M0,0 + L${conf2.line_height},${conf2.line_height / 2} + M${conf2.line_height},${conf2.line_height / 2} + L0,${conf2.line_height}` + ).attr("stroke-width", 1); +}; +const markers = { + ReqMarkers, + insertLineEndings +}; +let conf = {}; +let relCnt = 0; +const newRectNode = (parentNode, id) => { + return parentNode.insert("rect", "#" + id).attr("class", "req reqBox").attr("x", 0).attr("y", 0).attr("width", conf.rect_min_width + "px").attr("height", conf.rect_min_height + "px"); +}; +const newTitleNode = (parentNode, id, txts) => { + let x = conf.rect_min_width / 2; + let title = parentNode.append("text").attr("class", "req reqLabel reqTitle").attr("id", id).attr("x", x).attr("y", conf.rect_padding).attr("dominant-baseline", "hanging"); + let i = 0; + txts.forEach((textStr) => { + if (i == 0) { + title.append("tspan").attr("text-anchor", "middle").attr("x", conf.rect_min_width / 2).attr("dy", 0).text(textStr); + } else { + title.append("tspan").attr("text-anchor", "middle").attr("x", conf.rect_min_width / 2).attr("dy", conf.line_height * 0.75).text(textStr); + } + i++; + }); + let yPadding = 1.5 * conf.rect_padding; + let linePadding = i * conf.line_height * 0.75; + let totalY = yPadding + linePadding; + parentNode.append("line").attr("class", "req-title-line").attr("x1", "0").attr("x2", conf.rect_min_width).attr("y1", totalY).attr("y2", totalY); + return { + titleNode: title, + y: totalY + }; +}; +const newBodyNode = (parentNode, id, txts, yStart) => { + let body = parentNode.append("text").attr("class", "req reqLabel").attr("id", id).attr("x", conf.rect_padding).attr("y", yStart).attr("dominant-baseline", "hanging"); + let currentRow = 0; + const charLimit = 30; + let wrappedTxts = []; + txts.forEach((textStr) => { + let currentTextLen = textStr.length; + while (currentTextLen > charLimit && currentRow < 3) { + let firstPart = textStr.substring(0, charLimit); + textStr = textStr.substring(charLimit, textStr.length); + currentTextLen = textStr.length; + wrappedTxts[wrappedTxts.length] = firstPart; + currentRow++; + } + if (currentRow == 3) { + let lastStr = wrappedTxts[wrappedTxts.length - 1]; + wrappedTxts[wrappedTxts.length - 1] = lastStr.substring(0, lastStr.length - 4) + "..."; + } else { + wrappedTxts[wrappedTxts.length] = textStr; + } + currentRow = 0; + }); + wrappedTxts.forEach((textStr) => { + body.append("tspan").attr("x", conf.rect_padding).attr("dy", conf.line_height).text(textStr); + }); + return body; +}; +const addEdgeLabel = (parentNode, svgPath, conf2, txt) => { + const len = svgPath.node().getTotalLength(); + const labelPoint = svgPath.node().getPointAtLength(len * 0.5); + const labelId = "rel" + relCnt; + relCnt++; + const labelNode = parentNode.append("text").attr("class", "req relationshipLabel").attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(txt); + const labelBBox = labelNode.node().getBBox(); + parentNode.insert("rect", "#" + labelId).attr("class", "req reqLabelBox").attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height).attr("fill", "white").attr("fill-opacity", "85%"); +}; +const drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) { + const edge = g.edge(elementString(rel.src), elementString(rel.dst)); + const lineFunction = line().x(function(d) { + return d.x; + }).y(function(d) { + return d.y; + }); + const svgPath = svg.insert("path", "#" + insert).attr("class", "er relationshipLine").attr("d", lineFunction(edge.points)).attr("fill", "none"); + if (rel.type == diagObj.db.Relationships.CONTAINS) { + svgPath.attr( + "marker-start", + "url(" + common.getUrl(conf.arrowMarkerAbsolute) + "#" + rel.type + "_line_ending)" + ); + } else { + svgPath.attr("stroke-dasharray", "10,7"); + svgPath.attr( + "marker-end", + "url(" + common.getUrl(conf.arrowMarkerAbsolute) + "#" + markers.ReqMarkers.ARROW + "_line_ending)" + ); + } + addEdgeLabel(svg, svgPath, conf, `<<${rel.type}>>`); + return; +}; +const drawReqs = (reqs, graph, svgNode) => { + Object.keys(reqs).forEach((reqName) => { + let req = reqs[reqName]; + reqName = elementString(reqName); + log.info("Added new requirement: ", reqName); + const groupNode = svgNode.append("g").attr("id", reqName); + const textId = "req-" + reqName; + const rectNode = newRectNode(groupNode, textId); + let titleNodeInfo = newTitleNode(groupNode, reqName + "_title", [ + `<<${req.type}>>`, + `${req.name}` + ]); + newBodyNode( + groupNode, + reqName + "_body", + [ + `Id: ${req.id}`, + `Text: ${req.text}`, + `Risk: ${req.risk}`, + `Verification: ${req.verifyMethod}` + ], + titleNodeInfo.y + ); + const rectBBox = rectNode.node().getBBox(); + graph.setNode(reqName, { + width: rectBBox.width, + height: rectBBox.height, + shape: "rect", + id: reqName + }); + }); +}; +const drawElements = (els, graph, svgNode) => { + Object.keys(els).forEach((elName) => { + let el = els[elName]; + const id = elementString(elName); + const groupNode = svgNode.append("g").attr("id", id); + const textId = "element-" + id; + const rectNode = newRectNode(groupNode, textId); + let titleNodeInfo = newTitleNode(groupNode, textId + "_title", [`<>`, `${elName}`]); + newBodyNode( + groupNode, + textId + "_body", + [`Type: ${el.type || "Not Specified"}`, `Doc Ref: ${el.docRef || "None"}`], + titleNodeInfo.y + ); + const rectBBox = rectNode.node().getBBox(); + graph.setNode(id, { + width: rectBBox.width, + height: rectBBox.height, + shape: "rect", + id + }); + }); +}; +const addRelationships = (relationships, g) => { + relationships.forEach(function(r) { + let src = elementString(r.src); + let dst = elementString(r.dst); + g.setEdge(src, dst, { relationship: r }); + }); + return relationships; +}; +const adjustEntities = function(svgNode, graph) { + graph.nodes().forEach(function(v) { + if (v !== void 0 && graph.node(v) !== void 0) { + svgNode.select("#" + v); + svgNode.select("#" + v).attr( + "transform", + "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y - graph.node(v).height / 2) + " )" + ); + } + }); + return; +}; +const elementString = (str) => { + return str.replace(/\s/g, "").replace(/\./g, "_"); +}; +const draw = (text, id, _version, diagObj) => { + conf = getConfig().requirement; + const securityLevel = conf.securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const svg = root.select(`[id='${id}']`); + markers.insertLineEndings(svg, conf); + const g = new Graph({ + multigraph: false, + compound: false, + directed: true + }).setGraph({ + rankdir: conf.layoutDirection, + marginx: 20, + marginy: 20, + nodesep: 100, + edgesep: 100, + ranksep: 100 + }).setDefaultEdgeLabel(function() { + return {}; + }); + let requirements2 = diagObj.db.getRequirements(); + let elements2 = diagObj.db.getElements(); + let relationships = diagObj.db.getRelationships(); + drawReqs(requirements2, g, svg); + drawElements(elements2, g, svg); + addRelationships(relationships, g); + layout(g); + adjustEntities(svg, g); + relationships.forEach(function(rel) { + drawRelationshipFromLayout(svg, rel, g, id, diagObj); + }); + const padding = conf.rect_padding; + const svgBounds = svg.node().getBBox(); + const width = svgBounds.width + padding * 2; + const height = svgBounds.height + padding * 2; + configureSvgSize(svg, height, width, conf.useMaxWidth); + svg.attr("viewBox", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`); +}; +const renderer = { + draw +}; +const diagram = { + parser: parser$1, + db, + renderer, + styles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/sankeyDiagram-33525efb.js b/assets/lib/mermaid/sankeyDiagram-33525efb.js new file mode 100644 index 000000000..b218580a8 --- /dev/null +++ b/assets/lib/mermaid/sankeyDiagram-33525efb.js @@ -0,0 +1,1198 @@ +import { c as getConfig, g as getAccTitle, s as setAccTitle, a as getAccDescription, b as setAccDescription, D as getDiagramTitle, C as setDiagramTitle, E as clear$1, f as common, ar as defaultConfig, j as d3select, t as setupGraphViewbox } from "./mermaid-dcacb631.js"; +import { o as ordinal } from "./ordinal-475e0c0c.js"; +import { d as d3schemeTableau10 } from "./Tableau10-31042135.js"; +import "./init-cc95ec8e.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 9], $V1 = [1, 10], $V2 = [1, 5, 10, 12]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "SANKEY": 4, "NEWLINE": 5, "csv": 6, "opt_eof": 7, "record": 8, "csv_tail": 9, "EOF": 10, "field[source]": 11, "COMMA": 12, "field[target]": 13, "field[value]": 14, "field": 15, "escaped": 16, "non_escaped": 17, "DQUOTE": 18, "ESCAPED_TEXT": 19, "NON_ESCAPED_TEXT": 20, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "SANKEY", 5: "NEWLINE", 10: "EOF", 11: "field[source]", 12: "COMMA", 13: "field[target]", 14: "field[value]", 18: "DQUOTE", 19: "ESCAPED_TEXT", 20: "NON_ESCAPED_TEXT" }, + productions_: [0, [3, 4], [6, 2], [9, 2], [9, 0], [7, 1], [7, 0], [8, 5], [15, 1], [15, 1], [16, 3], [17, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 7: + const source = yy.findOrCreateNode($$[$0 - 4].trim().replaceAll('""', '"')); + const target = yy.findOrCreateNode($$[$0 - 2].trim().replaceAll('""', '"')); + const value2 = parseFloat($$[$0].trim()); + yy.addLink(source, target, value2); + break; + case 8: + case 9: + case 11: + this.$ = $$[$0]; + break; + case 10: + this.$ = $$[$0 - 1]; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, { 5: [1, 3] }, { 6: 4, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 1: [2, 6], 7: 11, 10: [1, 12] }, o($V1, [2, 4], { 9: 13, 5: [1, 14] }), { 12: [1, 15] }, o($V2, [2, 8]), o($V2, [2, 9]), { 19: [1, 16] }, o($V2, [2, 11]), { 1: [2, 1] }, { 1: [2, 5] }, o($V1, [2, 2]), { 6: 17, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 15: 18, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 18: [1, 19] }, o($V1, [2, 3]), { 12: [1, 20] }, o($V2, [2, 10]), { 15: 21, 16: 7, 17: 8, 18: $V0, 20: $V1 }, o([1, 5, 10], [2, 7])], + defaultActions: { 11: [2, 1], 12: [2, 5] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + this.pushState("csv"); + return 4; + case 1: + return 10; + case 2: + return 5; + case 3: + return 12; + case 4: + this.pushState("escaped_text"); + return 18; + case 5: + return 20; + case 6: + this.popState("escaped_text"); + return 18; + case 7: + return 19; + } + }, + rules: [/^(?:sankey-beta\b)/i, /^(?:$)/i, /^(?:((\u000D\u000A)|(\u000A)))/i, /^(?:(\u002C))/i, /^(?:(\u0022))/i, /^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i, /^(?:(\u0022)(?!(\u0022)))/i, /^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i], + conditions: { "csv": { "rules": [1, 2, 3, 4, 5, 6, 7], "inclusive": false }, "escaped_text": { "rules": [6, 7], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let links = []; +let nodes = []; +let nodesMap = {}; +const clear = () => { + links = []; + nodes = []; + nodesMap = {}; + clear$1(); +}; +class SankeyLink { + constructor(source, target, value2 = 0) { + this.source = source; + this.target = target; + this.value = value2; + } +} +const addLink = (source, target, value2) => { + links.push(new SankeyLink(source, target, value2)); +}; +class SankeyNode { + constructor(ID) { + this.ID = ID; + } +} +const findOrCreateNode = (ID) => { + ID = common.sanitizeText(ID, getConfig()); + if (!nodesMap[ID]) { + nodesMap[ID] = new SankeyNode(ID); + nodes.push(nodesMap[ID]); + } + return nodesMap[ID]; +}; +const getNodes = () => nodes; +const getLinks = () => links; +const getGraph = () => ({ + nodes: nodes.map((node) => ({ id: node.ID })), + links: links.map((link2) => ({ + source: link2.source.ID, + target: link2.target.ID, + value: link2.value + })) +}); +const db = { + nodesMap, + getConfig: () => getConfig().sankey, + getNodes, + getLinks, + getGraph, + addLink, + findOrCreateNode, + getAccTitle, + setAccTitle, + getAccDescription, + setAccDescription, + getDiagramTitle, + setDiagramTitle, + clear +}; +function max(values, valueof) { + let max2; + if (valueof === void 0) { + for (const value2 of values) { + if (value2 != null && (max2 < value2 || max2 === void 0 && value2 >= value2)) { + max2 = value2; + } + } + } else { + let index = -1; + for (let value2 of values) { + if ((value2 = valueof(value2, ++index, values)) != null && (max2 < value2 || max2 === void 0 && value2 >= value2)) { + max2 = value2; + } + } + } + return max2; +} +function min(values, valueof) { + let min2; + if (valueof === void 0) { + for (const value2 of values) { + if (value2 != null && (min2 > value2 || min2 === void 0 && value2 >= value2)) { + min2 = value2; + } + } + } else { + let index = -1; + for (let value2 of values) { + if ((value2 = valueof(value2, ++index, values)) != null && (min2 > value2 || min2 === void 0 && value2 >= value2)) { + min2 = value2; + } + } + } + return min2; +} +function sum(values, valueof) { + let sum2 = 0; + if (valueof === void 0) { + for (let value2 of values) { + if (value2 = +value2) { + sum2 += value2; + } + } + } else { + let index = -1; + for (let value2 of values) { + if (value2 = +valueof(value2, ++index, values)) { + sum2 += value2; + } + } + } + return sum2; +} +function targetDepth(d) { + return d.target.depth; +} +function left(node) { + return node.depth; +} +function right(node, n) { + return n - 1 - node.height; +} +function justify(node, n) { + return node.sourceLinks.length ? node.depth : n - 1; +} +function center(node) { + return node.targetLinks.length ? node.depth : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1 : 0; +} +function constant$1(x2) { + return function() { + return x2; + }; +} +function ascendingSourceBreadth(a, b) { + return ascendingBreadth(a.source, b.source) || a.index - b.index; +} +function ascendingTargetBreadth(a, b) { + return ascendingBreadth(a.target, b.target) || a.index - b.index; +} +function ascendingBreadth(a, b) { + return a.y0 - b.y0; +} +function value(d) { + return d.value; +} +function defaultId(d) { + return d.index; +} +function defaultNodes(graph) { + return graph.nodes; +} +function defaultLinks(graph) { + return graph.links; +} +function find(nodeById, id) { + const node = nodeById.get(id); + if (!node) + throw new Error("missing: " + id); + return node; +} +function computeLinkBreadths({ nodes: nodes2 }) { + for (const node of nodes2) { + let y0 = node.y0; + let y1 = y0; + for (const link2 of node.sourceLinks) { + link2.y0 = y0 + link2.width / 2; + y0 += link2.width; + } + for (const link2 of node.targetLinks) { + link2.y1 = y1 + link2.width / 2; + y1 += link2.width; + } + } +} +function Sankey() { + let x0 = 0, y0 = 0, x1 = 1, y1 = 1; + let dx = 24; + let dy = 8, py; + let id = defaultId; + let align = justify; + let sort; + let linkSort; + let nodes2 = defaultNodes; + let links2 = defaultLinks; + let iterations = 6; + function sankey() { + const graph = { nodes: nodes2.apply(null, arguments), links: links2.apply(null, arguments) }; + computeNodeLinks(graph); + computeNodeValues(graph); + computeNodeDepths(graph); + computeNodeHeights(graph); + computeNodeBreadths(graph); + computeLinkBreadths(graph); + return graph; + } + sankey.update = function(graph) { + computeLinkBreadths(graph); + return graph; + }; + sankey.nodeId = function(_) { + return arguments.length ? (id = typeof _ === "function" ? _ : constant$1(_), sankey) : id; + }; + sankey.nodeAlign = function(_) { + return arguments.length ? (align = typeof _ === "function" ? _ : constant$1(_), sankey) : align; + }; + sankey.nodeSort = function(_) { + return arguments.length ? (sort = _, sankey) : sort; + }; + sankey.nodeWidth = function(_) { + return arguments.length ? (dx = +_, sankey) : dx; + }; + sankey.nodePadding = function(_) { + return arguments.length ? (dy = py = +_, sankey) : dy; + }; + sankey.nodes = function(_) { + return arguments.length ? (nodes2 = typeof _ === "function" ? _ : constant$1(_), sankey) : nodes2; + }; + sankey.links = function(_) { + return arguments.length ? (links2 = typeof _ === "function" ? _ : constant$1(_), sankey) : links2; + }; + sankey.linkSort = function(_) { + return arguments.length ? (linkSort = _, sankey) : linkSort; + }; + sankey.size = function(_) { + return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0]; + }; + sankey.extent = function(_) { + return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]]; + }; + sankey.iterations = function(_) { + return arguments.length ? (iterations = +_, sankey) : iterations; + }; + function computeNodeLinks({ nodes: nodes3, links: links3 }) { + for (const [i, node] of nodes3.entries()) { + node.index = i; + node.sourceLinks = []; + node.targetLinks = []; + } + const nodeById = new Map(nodes3.map((d, i) => [id(d, i, nodes3), d])); + for (const [i, link2] of links3.entries()) { + link2.index = i; + let { source, target } = link2; + if (typeof source !== "object") + source = link2.source = find(nodeById, source); + if (typeof target !== "object") + target = link2.target = find(nodeById, target); + source.sourceLinks.push(link2); + target.targetLinks.push(link2); + } + if (linkSort != null) { + for (const { sourceLinks, targetLinks } of nodes3) { + sourceLinks.sort(linkSort); + targetLinks.sort(linkSort); + } + } + } + function computeNodeValues({ nodes: nodes3 }) { + for (const node of nodes3) { + node.value = node.fixedValue === void 0 ? Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value)) : node.fixedValue; + } + } + function computeNodeDepths({ nodes: nodes3 }) { + const n = nodes3.length; + let current = new Set(nodes3); + let next = /* @__PURE__ */ new Set(); + let x2 = 0; + while (current.size) { + for (const node of current) { + node.depth = x2; + for (const { target } of node.sourceLinks) { + next.add(target); + } + } + if (++x2 > n) + throw new Error("circular link"); + current = next; + next = /* @__PURE__ */ new Set(); + } + } + function computeNodeHeights({ nodes: nodes3 }) { + const n = nodes3.length; + let current = new Set(nodes3); + let next = /* @__PURE__ */ new Set(); + let x2 = 0; + while (current.size) { + for (const node of current) { + node.height = x2; + for (const { source } of node.targetLinks) { + next.add(source); + } + } + if (++x2 > n) + throw new Error("circular link"); + current = next; + next = /* @__PURE__ */ new Set(); + } + } + function computeNodeLayers({ nodes: nodes3 }) { + const x2 = max(nodes3, (d) => d.depth) + 1; + const kx = (x1 - x0 - dx) / (x2 - 1); + const columns = new Array(x2); + for (const node of nodes3) { + const i = Math.max(0, Math.min(x2 - 1, Math.floor(align.call(null, node, x2)))); + node.layer = i; + node.x0 = x0 + i * kx; + node.x1 = node.x0 + dx; + if (columns[i]) + columns[i].push(node); + else + columns[i] = [node]; + } + if (sort) + for (const column of columns) { + column.sort(sort); + } + return columns; + } + function initializeNodeBreadths(columns) { + const ky = min(columns, (c) => (y1 - y0 - (c.length - 1) * py) / sum(c, value)); + for (const nodes3 of columns) { + let y2 = y0; + for (const node of nodes3) { + node.y0 = y2; + node.y1 = y2 + node.value * ky; + y2 = node.y1 + py; + for (const link2 of node.sourceLinks) { + link2.width = link2.value * ky; + } + } + y2 = (y1 - y2 + py) / (nodes3.length + 1); + for (let i = 0; i < nodes3.length; ++i) { + const node = nodes3[i]; + node.y0 += y2 * (i + 1); + node.y1 += y2 * (i + 1); + } + reorderLinks(nodes3); + } + } + function computeNodeBreadths(graph) { + const columns = computeNodeLayers(graph); + py = Math.min(dy, (y1 - y0) / (max(columns, (c) => c.length) - 1)); + initializeNodeBreadths(columns); + for (let i = 0; i < iterations; ++i) { + const alpha = Math.pow(0.99, i); + const beta = Math.max(1 - alpha, (i + 1) / iterations); + relaxRightToLeft(columns, alpha, beta); + relaxLeftToRight(columns, alpha, beta); + } + } + function relaxLeftToRight(columns, alpha, beta) { + for (let i = 1, n = columns.length; i < n; ++i) { + const column = columns[i]; + for (const target of column) { + let y2 = 0; + let w = 0; + for (const { source, value: value2 } of target.targetLinks) { + let v = value2 * (target.layer - source.layer); + y2 += targetTop(source, target) * v; + w += v; + } + if (!(w > 0)) + continue; + let dy2 = (y2 / w - target.y0) * alpha; + target.y0 += dy2; + target.y1 += dy2; + reorderNodeLinks(target); + } + if (sort === void 0) + column.sort(ascendingBreadth); + resolveCollisions(column, beta); + } + } + function relaxRightToLeft(columns, alpha, beta) { + for (let n = columns.length, i = n - 2; i >= 0; --i) { + const column = columns[i]; + for (const source of column) { + let y2 = 0; + let w = 0; + for (const { target, value: value2 } of source.sourceLinks) { + let v = value2 * (target.layer - source.layer); + y2 += sourceTop(source, target) * v; + w += v; + } + if (!(w > 0)) + continue; + let dy2 = (y2 / w - source.y0) * alpha; + source.y0 += dy2; + source.y1 += dy2; + reorderNodeLinks(source); + } + if (sort === void 0) + column.sort(ascendingBreadth); + resolveCollisions(column, beta); + } + } + function resolveCollisions(nodes3, alpha) { + const i = nodes3.length >> 1; + const subject = nodes3[i]; + resolveCollisionsBottomToTop(nodes3, subject.y0 - py, i - 1, alpha); + resolveCollisionsTopToBottom(nodes3, subject.y1 + py, i + 1, alpha); + resolveCollisionsBottomToTop(nodes3, y1, nodes3.length - 1, alpha); + resolveCollisionsTopToBottom(nodes3, y0, 0, alpha); + } + function resolveCollisionsTopToBottom(nodes3, y2, i, alpha) { + for (; i < nodes3.length; ++i) { + const node = nodes3[i]; + const dy2 = (y2 - node.y0) * alpha; + if (dy2 > 1e-6) + node.y0 += dy2, node.y1 += dy2; + y2 = node.y1 + py; + } + } + function resolveCollisionsBottomToTop(nodes3, y2, i, alpha) { + for (; i >= 0; --i) { + const node = nodes3[i]; + const dy2 = (node.y1 - y2) * alpha; + if (dy2 > 1e-6) + node.y0 -= dy2, node.y1 -= dy2; + y2 = node.y0 - py; + } + } + function reorderNodeLinks({ sourceLinks, targetLinks }) { + if (linkSort === void 0) { + for (const { source: { sourceLinks: sourceLinks2 } } of targetLinks) { + sourceLinks2.sort(ascendingTargetBreadth); + } + for (const { target: { targetLinks: targetLinks2 } } of sourceLinks) { + targetLinks2.sort(ascendingSourceBreadth); + } + } + } + function reorderLinks(nodes3) { + if (linkSort === void 0) { + for (const { sourceLinks, targetLinks } of nodes3) { + sourceLinks.sort(ascendingTargetBreadth); + targetLinks.sort(ascendingSourceBreadth); + } + } + } + function targetTop(source, target) { + let y2 = source.y0 - (source.sourceLinks.length - 1) * py / 2; + for (const { target: node, width } of source.sourceLinks) { + if (node === target) + break; + y2 += width + py; + } + for (const { source: node, width } of target.targetLinks) { + if (node === source) + break; + y2 -= width; + } + return y2; + } + function sourceTop(source, target) { + let y2 = target.y0 - (target.targetLinks.length - 1) * py / 2; + for (const { source: node, width } of target.targetLinks) { + if (node === source) + break; + y2 += width + py; + } + for (const { target: node, width } of source.sourceLinks) { + if (node === target) + break; + y2 -= width; + } + return y2; + } + return sankey; +} +var pi = Math.PI, tau = 2 * pi, epsilon = 1e-6, tauEpsilon = tau - epsilon; +function Path() { + this._x0 = this._y0 = // start of current subpath + this._x1 = this._y1 = null; + this._ = ""; +} +function path() { + return new Path(); +} +Path.prototype = path.prototype = { + constructor: Path, + moveTo: function(x2, y2) { + this._ += "M" + (this._x0 = this._x1 = +x2) + "," + (this._y0 = this._y1 = +y2); + }, + closePath: function() { + if (this._x1 !== null) { + this._x1 = this._x0, this._y1 = this._y0; + this._ += "Z"; + } + }, + lineTo: function(x2, y2) { + this._ += "L" + (this._x1 = +x2) + "," + (this._y1 = +y2); + }, + quadraticCurveTo: function(x1, y1, x2, y2) { + this._ += "Q" + +x1 + "," + +y1 + "," + (this._x1 = +x2) + "," + (this._y1 = +y2); + }, + bezierCurveTo: function(x1, y1, x2, y2, x3, y3) { + this._ += "C" + +x1 + "," + +y1 + "," + +x2 + "," + +y2 + "," + (this._x1 = +x3) + "," + (this._y1 = +y3); + }, + arcTo: function(x1, y1, x2, y2, r) { + x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r; + var x0 = this._x1, y0 = this._y1, x21 = x2 - x1, y21 = y2 - y1, x01 = x0 - x1, y01 = y0 - y1, l01_2 = x01 * x01 + y01 * y01; + if (r < 0) + throw new Error("negative radius: " + r); + if (this._x1 === null) { + this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1); + } else if (!(l01_2 > epsilon)) + ; + else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) { + this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1); + } else { + var x20 = x2 - x0, y20 = y2 - y0, l21_2 = x21 * x21 + y21 * y21, l20_2 = x20 * x20 + y20 * y20, l21 = Math.sqrt(l21_2), l01 = Math.sqrt(l01_2), l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), t01 = l / l01, t21 = l / l21; + if (Math.abs(t01 - 1) > epsilon) { + this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01); + } + this._ += "A" + r + "," + r + ",0,0," + +(y01 * x20 > x01 * y20) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21); + } + }, + arc: function(x2, y2, r, a0, a1, ccw) { + x2 = +x2, y2 = +y2, r = +r, ccw = !!ccw; + var dx = r * Math.cos(a0), dy = r * Math.sin(a0), x0 = x2 + dx, y0 = y2 + dy, cw = 1 ^ ccw, da = ccw ? a0 - a1 : a1 - a0; + if (r < 0) + throw new Error("negative radius: " + r); + if (this._x1 === null) { + this._ += "M" + x0 + "," + y0; + } else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) { + this._ += "L" + x0 + "," + y0; + } + if (!r) + return; + if (da < 0) + da = da % tau + tau; + if (da > tauEpsilon) { + this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x2 - dx) + "," + (y2 - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0); + } else if (da > epsilon) { + this._ += "A" + r + "," + r + ",0," + +(da >= pi) + "," + cw + "," + (this._x1 = x2 + r * Math.cos(a1)) + "," + (this._y1 = y2 + r * Math.sin(a1)); + } + }, + rect: function(x2, y2, w, h) { + this._ += "M" + (this._x0 = this._x1 = +x2) + "," + (this._y0 = this._y1 = +y2) + "h" + +w + "v" + +h + "h" + -w + "Z"; + }, + toString: function() { + return this._; + } +}; +function constant(x2) { + return function constant2() { + return x2; + }; +} +function x(p) { + return p[0]; +} +function y(p) { + return p[1]; +} +var slice = Array.prototype.slice; +function linkSource(d) { + return d.source; +} +function linkTarget(d) { + return d.target; +} +function link(curve) { + var source = linkSource, target = linkTarget, x$1 = x, y$1 = y, context = null; + function link2() { + var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv); + if (!context) + context = buffer = path(); + curve(context, +x$1.apply(this, (argv[0] = s, argv)), +y$1.apply(this, argv), +x$1.apply(this, (argv[0] = t, argv)), +y$1.apply(this, argv)); + if (buffer) + return context = null, buffer + "" || null; + } + link2.source = function(_) { + return arguments.length ? (source = _, link2) : source; + }; + link2.target = function(_) { + return arguments.length ? (target = _, link2) : target; + }; + link2.x = function(_) { + return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant(+_), link2) : x$1; + }; + link2.y = function(_) { + return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant(+_), link2) : y$1; + }; + link2.context = function(_) { + return arguments.length ? (context = _ == null ? null : _, link2) : context; + }; + return link2; +} +function curveHorizontal(context, x0, y0, x1, y1) { + context.moveTo(x0, y0); + context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1); +} +function linkHorizontal() { + return link(curveHorizontal); +} +function horizontalSource(d) { + return [d.source.x1, d.y0]; +} +function horizontalTarget(d) { + return [d.target.x0, d.y1]; +} +function d3SankeyLinkHorizontal() { + return linkHorizontal().source(horizontalSource).target(horizontalTarget); +} +const _Uid = class _Uid2 { + static next(name) { + return new _Uid2(name + ++_Uid2.count); + } + constructor(id) { + this.id = id; + this.href = `#${id}`; + } + toString() { + return "url(" + this.href + ")"; + } +}; +_Uid.count = 0; +let Uid = _Uid; +const alignmentsMap = { + left, + right, + center, + justify +}; +const draw = function(text, id, _version, diagObj) { + const { securityLevel, sankey: conf } = getConfig(); + const defaultSankeyConfig = defaultConfig.sankey; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const svg = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : d3select(`[id="${id}"]`); + const width = (conf == null ? void 0 : conf.width) ?? defaultSankeyConfig.width; + const height = (conf == null ? void 0 : conf.height) ?? defaultSankeyConfig.width; + const useMaxWidth = (conf == null ? void 0 : conf.useMaxWidth) ?? defaultSankeyConfig.useMaxWidth; + const nodeAlignment = (conf == null ? void 0 : conf.nodeAlignment) ?? defaultSankeyConfig.nodeAlignment; + const prefix = (conf == null ? void 0 : conf.prefix) ?? defaultSankeyConfig.prefix; + const suffix = (conf == null ? void 0 : conf.suffix) ?? defaultSankeyConfig.suffix; + const showValues = (conf == null ? void 0 : conf.showValues) ?? defaultSankeyConfig.showValues; + const graph = diagObj.db.getGraph(); + const nodeAlign = alignmentsMap[nodeAlignment]; + const nodeWidth = 10; + const sankey = Sankey().nodeId((d) => d.id).nodeWidth(nodeWidth).nodePadding(10 + (showValues ? 15 : 0)).nodeAlign(nodeAlign).extent([ + [0, 0], + [width, height] + ]); + sankey(graph); + const colorScheme = ordinal(d3schemeTableau10); + svg.append("g").attr("class", "nodes").selectAll(".node").data(graph.nodes).join("g").attr("class", "node").attr("id", (d) => (d.uid = Uid.next("node-")).id).attr("transform", function(d) { + return "translate(" + d.x0 + "," + d.y0 + ")"; + }).attr("x", (d) => d.x0).attr("y", (d) => d.y0).append("rect").attr("height", (d) => { + return d.y1 - d.y0; + }).attr("width", (d) => d.x1 - d.x0).attr("fill", (d) => colorScheme(d.id)); + const getText = ({ id: id2, value: value2 }) => { + if (!showValues) { + return id2; + } + return `${id2} +${prefix}${Math.round(value2 * 100) / 100}${suffix}`; + }; + svg.append("g").attr("class", "node-labels").attr("font-family", "sans-serif").attr("font-size", 14).selectAll("text").data(graph.nodes).join("text").attr("x", (d) => d.x0 < width / 2 ? d.x1 + 6 : d.x0 - 6).attr("y", (d) => (d.y1 + d.y0) / 2).attr("dy", `${showValues ? "0" : "0.35"}em`).attr("text-anchor", (d) => d.x0 < width / 2 ? "start" : "end").text(getText); + const link2 = svg.append("g").attr("class", "links").attr("fill", "none").attr("stroke-opacity", 0.5).selectAll(".link").data(graph.links).join("g").attr("class", "link").style("mix-blend-mode", "multiply"); + const linkColor = (conf == null ? void 0 : conf.linkColor) || "gradient"; + if (linkColor === "gradient") { + const gradient = link2.append("linearGradient").attr("id", (d) => (d.uid = Uid.next("linearGradient-")).id).attr("gradientUnits", "userSpaceOnUse").attr("x1", (d) => d.source.x1).attr("x2", (d) => d.target.x0); + gradient.append("stop").attr("offset", "0%").attr("stop-color", (d) => colorScheme(d.source.id)); + gradient.append("stop").attr("offset", "100%").attr("stop-color", (d) => colorScheme(d.target.id)); + } + let coloring; + switch (linkColor) { + case "gradient": + coloring = (d) => d.uid; + break; + case "source": + coloring = (d) => colorScheme(d.source.id); + break; + case "target": + coloring = (d) => colorScheme(d.target.id); + break; + default: + coloring = linkColor; + } + link2.append("path").attr("d", d3SankeyLinkHorizontal()).attr("stroke", coloring).attr("stroke-width", (d) => Math.max(1, d.width)); + setupGraphViewbox(void 0, svg, 0, useMaxWidth); +}; +const renderer = { + draw +}; +const prepareTextForParsing = (text) => { + const textToParse = text.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g, "").replaceAll(/([\n\r])+/g, "\n").trim(); + return textToParse; +}; +const originalParse = parser$1.parse.bind(parser$1); +parser$1.parse = (text) => originalParse(prepareTextForParsing(text)); +const diagram = { + parser: parser$1, + db, + renderer +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/sankeyDiagram-52ec8976.js b/assets/lib/mermaid/sankeyDiagram-52ec8976.js new file mode 100644 index 000000000..c30db0df3 --- /dev/null +++ b/assets/lib/mermaid/sankeyDiagram-52ec8976.js @@ -0,0 +1,818 @@ +import { c as rt, g as mt, s as kt, a as _t, b as xt, D as vt, C as bt, E as wt, f as St, ar as Lt, j as G, t as Et } from "./mermaid-9f2aa176.js"; +import { o as At } from "./ordinal-5695958c.js"; +import { d as Tt } from "./Tableau10-558cc280.js"; +import "./init-f9637058.js"; +var tt = function() { + var t = function(m, i, o, c) { + for (o = o || {}, c = m.length; c--; o[m[c]] = i) + ; + return o; + }, n = [1, 9], s = [1, 10], a = [1, 5, 10, 12], u = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, SANKEY: 4, NEWLINE: 5, csv: 6, opt_eof: 7, record: 8, csv_tail: 9, EOF: 10, "field[source]": 11, COMMA: 12, "field[target]": 13, "field[value]": 14, field: 15, escaped: 16, non_escaped: 17, DQUOTE: 18, ESCAPED_TEXT: 19, NON_ESCAPED_TEXT: 20, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 4: "SANKEY", 5: "NEWLINE", 10: "EOF", 11: "field[source]", 12: "COMMA", 13: "field[target]", 14: "field[value]", 18: "DQUOTE", 19: "ESCAPED_TEXT", 20: "NON_ESCAPED_TEXT" }, + productions_: [0, [3, 4], [6, 2], [9, 2], [9, 0], [7, 1], [7, 0], [8, 5], [15, 1], [15, 1], [16, 3], [17, 1]], + performAction: function(i, o, c, k, b, d, x) { + var E = d.length - 1; + switch (b) { + case 7: + const L = k.findOrCreateNode(d[E - 4].trim().replaceAll('""', '"')), A = k.findOrCreateNode(d[E - 2].trim().replaceAll('""', '"')), N = parseFloat(d[E].trim()); + k.addLink(L, A, N); + break; + case 8: + case 9: + case 11: + this.$ = d[E]; + break; + case 10: + this.$ = d[E - 1]; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, { 5: [1, 3] }, { 6: 4, 8: 5, 15: 6, 16: 7, 17: 8, 18: n, 20: s }, { 1: [2, 6], 7: 11, 10: [1, 12] }, t(s, [2, 4], { 9: 13, 5: [1, 14] }), { 12: [1, 15] }, t(a, [2, 8]), t(a, [2, 9]), { 19: [1, 16] }, t(a, [2, 11]), { 1: [2, 1] }, { 1: [2, 5] }, t(s, [2, 2]), { 6: 17, 8: 5, 15: 6, 16: 7, 17: 8, 18: n, 20: s }, { 15: 18, 16: 7, 17: 8, 18: n, 20: s }, { 18: [1, 19] }, t(s, [2, 3]), { 12: [1, 20] }, t(a, [2, 10]), { 15: 21, 16: 7, 17: 8, 18: n, 20: s }, t([1, 5, 10], [2, 7])], + defaultActions: { 11: [2, 1], 12: [2, 5] }, + parseError: function(i, o) { + if (o.recoverable) + this.trace(i); + else { + var c = new Error(i); + throw c.hash = o, c; + } + }, + parse: function(i) { + var o = this, c = [0], k = [], b = [null], d = [], x = this.table, E = "", L = 0, A = 0, N = 2, C = 1, j = d.slice.call(arguments, 1), S = Object.create(this.lexer), M = { yy: {} }; + for (var $ in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, $) && (M.yy[$] = this.yy[$]); + S.setInput(i, M.yy), M.yy.lexer = S, M.yy.parser = this, typeof S.yylloc > "u" && (S.yylloc = {}); + var P = S.yylloc; + d.push(P); + var I = S.options && S.options.ranges; + typeof M.yy.parseError == "function" ? this.parseError = M.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function g() { + var v; + return v = k.pop() || S.lex() || C, typeof v != "number" && (v instanceof Array && (k = v, v = k.pop()), v = o.symbols_[v] || v), v; + } + for (var w, O, T, V, e = {}, f, l, h, r; ; ) { + if (O = c[c.length - 1], this.defaultActions[O] ? T = this.defaultActions[O] : ((w === null || typeof w > "u") && (w = g()), T = x[O] && x[O][w]), typeof T > "u" || !T.length || !T[0]) { + var _ = ""; + r = []; + for (f in x[O]) + this.terminals_[f] && f > N && r.push("'" + this.terminals_[f] + "'"); + S.showPosition ? _ = "Parse error on line " + (L + 1) + `: +` + S.showPosition() + ` +Expecting ` + r.join(", ") + ", got '" + (this.terminals_[w] || w) + "'" : _ = "Parse error on line " + (L + 1) + ": Unexpected " + (w == C ? "end of input" : "'" + (this.terminals_[w] || w) + "'"), this.parseError(_, { + text: S.match, + token: this.terminals_[w] || w, + line: S.yylineno, + loc: P, + expected: r + }); + } + if (T[0] instanceof Array && T.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + O + ", token: " + w); + switch (T[0]) { + case 1: + c.push(w), b.push(S.yytext), d.push(S.yylloc), c.push(T[1]), w = null, A = S.yyleng, E = S.yytext, L = S.yylineno, P = S.yylloc; + break; + case 2: + if (l = this.productions_[T[1]][1], e.$ = b[b.length - l], e._$ = { + first_line: d[d.length - (l || 1)].first_line, + last_line: d[d.length - 1].last_line, + first_column: d[d.length - (l || 1)].first_column, + last_column: d[d.length - 1].last_column + }, I && (e._$.range = [ + d[d.length - (l || 1)].range[0], + d[d.length - 1].range[1] + ]), V = this.performAction.apply(e, [ + E, + A, + L, + M.yy, + T[1], + b, + d + ].concat(j)), typeof V < "u") + return V; + l && (c = c.slice(0, -1 * l * 2), b = b.slice(0, -1 * l), d = d.slice(0, -1 * l)), c.push(this.productions_[T[1]][0]), b.push(e.$), d.push(e._$), h = x[c[c.length - 2]][c[c.length - 1]], c.push(h); + break; + case 3: + return !0; + } + } + return !0; + } + }, y = function() { + var m = { + EOF: 1, + parseError: function(o, c) { + if (this.yy.parser) + this.yy.parser.parseError(o, c); + else + throw new Error(o); + }, + // resets the lexer, sets new input + setInput: function(i, o) { + return this.yy = o || this.yy || {}, this._input = i, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var i = this._input[0]; + this.yytext += i, this.yyleng++, this.offset++, this.match += i, this.matched += i; + var o = i.match(/(?:\r\n?|\n).*/g); + return o ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), i; + }, + // unshifts one char (or a string) into the input + unput: function(i) { + var o = i.length, c = i.split(/(?:\r\n?|\n)/g); + this._input = i + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - o), this.offset -= o; + var k = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), c.length - 1 && (this.yylineno -= c.length - 1); + var b = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: c ? (c.length === k.length ? this.yylloc.first_column : 0) + k[k.length - c.length].length - c[0].length : this.yylloc.first_column - o + }, this.options.ranges && (this.yylloc.range = [b[0], b[0] + this.yyleng - o]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(i) { + this.unput(this.match.slice(i)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var i = this.matched.substr(0, this.matched.length - this.match.length); + return (i.length > 20 ? "..." : "") + i.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var i = this.match; + return i.length < 20 && (i += this._input.substr(0, 20 - i.length)), (i.substr(0, 20) + (i.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var i = this.pastInput(), o = new Array(i.length + 1).join("-"); + return i + this.upcomingInput() + ` +` + o + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(i, o) { + var c, k, b; + if (this.options.backtrack_lexer && (b = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (b.yylloc.range = this.yylloc.range.slice(0))), k = i[0].match(/(?:\r\n?|\n).*/g), k && (this.yylineno += k.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: k ? k[k.length - 1].length - k[k.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + i[0].length + }, this.yytext += i[0], this.match += i[0], this.matches = i, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(i[0].length), this.matched += i[0], c = this.performAction.call(this, this.yy, this, o, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), c) + return c; + if (this._backtrack) { + for (var d in b) + this[d] = b[d]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var i, o, c, k; + this._more || (this.yytext = "", this.match = ""); + for (var b = this._currentRules(), d = 0; d < b.length; d++) + if (c = this._input.match(this.rules[b[d]]), c && (!o || c[0].length > o[0].length)) { + if (o = c, k = d, this.options.backtrack_lexer) { + if (i = this.test_match(c, b[d]), i !== !1) + return i; + if (this._backtrack) { + o = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return o ? (i = this.test_match(o, b[k]), i !== !1 ? i : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var o = this.next(); + return o || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(o) { + this.conditionStack.push(o); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var o = this.conditionStack.length - 1; + return o > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(o) { + return o = this.conditionStack.length - 1 - Math.abs(o || 0), o >= 0 ? this.conditionStack[o] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(o) { + this.begin(o); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: { "case-insensitive": !0 }, + performAction: function(o, c, k, b) { + switch (k) { + case 0: + return this.pushState("csv"), 4; + case 1: + return 10; + case 2: + return 5; + case 3: + return 12; + case 4: + return this.pushState("escaped_text"), 18; + case 5: + return 20; + case 6: + return this.popState("escaped_text"), 18; + case 7: + return 19; + } + }, + rules: [/^(?:sankey-beta\b)/i, /^(?:$)/i, /^(?:((\u000D\u000A)|(\u000A)))/i, /^(?:(\u002C))/i, /^(?:(\u0022))/i, /^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i, /^(?:(\u0022)(?!(\u0022)))/i, /^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i], + conditions: { csv: { rules: [1, 2, 3, 4, 5, 6, 7], inclusive: !1 }, escaped_text: { rules: [6, 7], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 5, 6, 7], inclusive: !0 } } + }; + return m; + }(); + u.lexer = y; + function p() { + this.yy = {}; + } + return p.prototype = u, u.Parser = p, new p(); +}(); +tt.parser = tt; +const H = tt; +let q = [], Q = [], B = {}; +const Mt = () => { + q = [], Q = [], B = {}, wt(); +}; +class Nt { + constructor(n, s, a = 0) { + this.source = n, this.target = s, this.value = a; + } +} +const Ct = (t, n, s) => { + q.push(new Nt(t, n, s)); +}; +class Pt { + constructor(n) { + this.ID = n; + } +} +const It = (t) => (t = St.sanitizeText(t, rt()), B[t] || (B[t] = new Pt(t), Q.push(B[t])), B[t]), Ot = () => Q, $t = () => q, jt = () => ({ + nodes: Q.map((t) => ({ id: t.ID })), + links: q.map((t) => ({ + source: t.source.ID, + target: t.target.ID, + value: t.value + })) +}), zt = { + nodesMap: B, + getConfig: () => rt().sankey, + getNodes: Ot, + getLinks: $t, + getGraph: jt, + addLink: Ct, + findOrCreateNode: It, + getAccTitle: mt, + setAccTitle: kt, + getAccDescription: _t, + setAccDescription: xt, + getDiagramTitle: vt, + setDiagramTitle: bt, + clear: Mt +}; +function ot(t, n) { + let s; + if (n === void 0) + for (const a of t) + a != null && (s < a || s === void 0 && a >= a) && (s = a); + else { + let a = -1; + for (let u of t) + (u = n(u, ++a, t)) != null && (s < u || s === void 0 && u >= u) && (s = u); + } + return s; +} +function yt(t, n) { + let s; + if (n === void 0) + for (const a of t) + a != null && (s > a || s === void 0 && a >= a) && (s = a); + else { + let a = -1; + for (let u of t) + (u = n(u, ++a, t)) != null && (s > u || s === void 0 && u >= u) && (s = u); + } + return s; +} +function Z(t, n) { + let s = 0; + if (n === void 0) + for (let a of t) + (a = +a) && (s += a); + else { + let a = -1; + for (let u of t) + (u = +n(u, ++a, t)) && (s += u); + } + return s; +} +function Dt(t) { + return t.target.depth; +} +function Bt(t) { + return t.depth; +} +function Vt(t, n) { + return n - 1 - t.height; +} +function dt(t, n) { + return t.sourceLinks.length ? t.depth : n - 1; +} +function Rt(t) { + return t.targetLinks.length ? t.depth : t.sourceLinks.length ? yt(t.sourceLinks, Dt) - 1 : 0; +} +function Y(t) { + return function() { + return t; + }; +} +function lt(t, n) { + return X(t.source, n.source) || t.index - n.index; +} +function at(t, n) { + return X(t.target, n.target) || t.index - n.index; +} +function X(t, n) { + return t.y0 - n.y0; +} +function J(t) { + return t.value; +} +function Ut(t) { + return t.index; +} +function Ft(t) { + return t.nodes; +} +function Wt(t) { + return t.links; +} +function ct(t, n) { + const s = t.get(n); + if (!s) + throw new Error("missing: " + n); + return s; +} +function ut({ nodes: t }) { + for (const n of t) { + let s = n.y0, a = s; + for (const u of n.sourceLinks) + u.y0 = s + u.width / 2, s += u.width; + for (const u of n.targetLinks) + u.y1 = a + u.width / 2, a += u.width; + } +} +function Gt() { + let t = 0, n = 0, s = 1, a = 1, u = 24, y = 8, p, m = Ut, i = dt, o, c, k = Ft, b = Wt, d = 6; + function x() { + const e = { nodes: k.apply(null, arguments), links: b.apply(null, arguments) }; + return E(e), L(e), A(e), N(e), S(e), ut(e), e; + } + x.update = function(e) { + return ut(e), e; + }, x.nodeId = function(e) { + return arguments.length ? (m = typeof e == "function" ? e : Y(e), x) : m; + }, x.nodeAlign = function(e) { + return arguments.length ? (i = typeof e == "function" ? e : Y(e), x) : i; + }, x.nodeSort = function(e) { + return arguments.length ? (o = e, x) : o; + }, x.nodeWidth = function(e) { + return arguments.length ? (u = +e, x) : u; + }, x.nodePadding = function(e) { + return arguments.length ? (y = p = +e, x) : y; + }, x.nodes = function(e) { + return arguments.length ? (k = typeof e == "function" ? e : Y(e), x) : k; + }, x.links = function(e) { + return arguments.length ? (b = typeof e == "function" ? e : Y(e), x) : b; + }, x.linkSort = function(e) { + return arguments.length ? (c = e, x) : c; + }, x.size = function(e) { + return arguments.length ? (t = n = 0, s = +e[0], a = +e[1], x) : [s - t, a - n]; + }, x.extent = function(e) { + return arguments.length ? (t = +e[0][0], s = +e[1][0], n = +e[0][1], a = +e[1][1], x) : [[t, n], [s, a]]; + }, x.iterations = function(e) { + return arguments.length ? (d = +e, x) : d; + }; + function E({ nodes: e, links: f }) { + for (const [h, r] of e.entries()) + r.index = h, r.sourceLinks = [], r.targetLinks = []; + const l = new Map(e.map((h, r) => [m(h, r, e), h])); + for (const [h, r] of f.entries()) { + r.index = h; + let { source: _, target: v } = r; + typeof _ != "object" && (_ = r.source = ct(l, _)), typeof v != "object" && (v = r.target = ct(l, v)), _.sourceLinks.push(r), v.targetLinks.push(r); + } + if (c != null) + for (const { sourceLinks: h, targetLinks: r } of e) + h.sort(c), r.sort(c); + } + function L({ nodes: e }) { + for (const f of e) + f.value = f.fixedValue === void 0 ? Math.max(Z(f.sourceLinks, J), Z(f.targetLinks, J)) : f.fixedValue; + } + function A({ nodes: e }) { + const f = e.length; + let l = new Set(e), h = /* @__PURE__ */ new Set(), r = 0; + for (; l.size; ) { + for (const _ of l) { + _.depth = r; + for (const { target: v } of _.sourceLinks) + h.add(v); + } + if (++r > f) + throw new Error("circular link"); + l = h, h = /* @__PURE__ */ new Set(); + } + } + function N({ nodes: e }) { + const f = e.length; + let l = new Set(e), h = /* @__PURE__ */ new Set(), r = 0; + for (; l.size; ) { + for (const _ of l) { + _.height = r; + for (const { source: v } of _.targetLinks) + h.add(v); + } + if (++r > f) + throw new Error("circular link"); + l = h, h = /* @__PURE__ */ new Set(); + } + } + function C({ nodes: e }) { + const f = ot(e, (r) => r.depth) + 1, l = (s - t - u) / (f - 1), h = new Array(f); + for (const r of e) { + const _ = Math.max(0, Math.min(f - 1, Math.floor(i.call(null, r, f)))); + r.layer = _, r.x0 = t + _ * l, r.x1 = r.x0 + u, h[_] ? h[_].push(r) : h[_] = [r]; + } + if (o) + for (const r of h) + r.sort(o); + return h; + } + function j(e) { + const f = yt(e, (l) => (a - n - (l.length - 1) * p) / Z(l, J)); + for (const l of e) { + let h = n; + for (const r of l) { + r.y0 = h, r.y1 = h + r.value * f, h = r.y1 + p; + for (const _ of r.sourceLinks) + _.width = _.value * f; + } + h = (a - h + p) / (l.length + 1); + for (let r = 0; r < l.length; ++r) { + const _ = l[r]; + _.y0 += h * (r + 1), _.y1 += h * (r + 1); + } + O(l); + } + } + function S(e) { + const f = C(e); + p = Math.min(y, (a - n) / (ot(f, (l) => l.length) - 1)), j(f); + for (let l = 0; l < d; ++l) { + const h = Math.pow(0.99, l), r = Math.max(1 - h, (l + 1) / d); + $(f, h, r), M(f, h, r); + } + } + function M(e, f, l) { + for (let h = 1, r = e.length; h < r; ++h) { + const _ = e[h]; + for (const v of _) { + let R = 0, z = 0; + for (const { source: F, value: K } of v.targetLinks) { + let W = K * (v.layer - F.layer); + R += T(F, v) * W, z += W; + } + if (!(z > 0)) + continue; + let U = (R / z - v.y0) * f; + v.y0 += U, v.y1 += U, w(v); + } + o === void 0 && _.sort(X), P(_, l); + } + } + function $(e, f, l) { + for (let h = e.length, r = h - 2; r >= 0; --r) { + const _ = e[r]; + for (const v of _) { + let R = 0, z = 0; + for (const { target: F, value: K } of v.sourceLinks) { + let W = K * (F.layer - v.layer); + R += V(v, F) * W, z += W; + } + if (!(z > 0)) + continue; + let U = (R / z - v.y0) * f; + v.y0 += U, v.y1 += U, w(v); + } + o === void 0 && _.sort(X), P(_, l); + } + } + function P(e, f) { + const l = e.length >> 1, h = e[l]; + g(e, h.y0 - p, l - 1, f), I(e, h.y1 + p, l + 1, f), g(e, a, e.length - 1, f), I(e, n, 0, f); + } + function I(e, f, l, h) { + for (; l < e.length; ++l) { + const r = e[l], _ = (f - r.y0) * h; + _ > 1e-6 && (r.y0 += _, r.y1 += _), f = r.y1 + p; + } + } + function g(e, f, l, h) { + for (; l >= 0; --l) { + const r = e[l], _ = (r.y1 - f) * h; + _ > 1e-6 && (r.y0 -= _, r.y1 -= _), f = r.y0 - p; + } + } + function w({ sourceLinks: e, targetLinks: f }) { + if (c === void 0) { + for (const { source: { sourceLinks: l } } of f) + l.sort(at); + for (const { target: { targetLinks: l } } of e) + l.sort(lt); + } + } + function O(e) { + if (c === void 0) + for (const { sourceLinks: f, targetLinks: l } of e) + f.sort(at), l.sort(lt); + } + function T(e, f) { + let l = e.y0 - (e.sourceLinks.length - 1) * p / 2; + for (const { target: h, width: r } of e.sourceLinks) { + if (h === f) + break; + l += r + p; + } + for (const { source: h, width: r } of f.targetLinks) { + if (h === e) + break; + l -= r; + } + return l; + } + function V(e, f) { + let l = f.y0 - (f.targetLinks.length - 1) * p / 2; + for (const { source: h, width: r } of f.targetLinks) { + if (h === e) + break; + l += r + p; + } + for (const { target: h, width: r } of e.sourceLinks) { + if (h === f) + break; + l -= r; + } + return l; + } + return x; +} +var et = Math.PI, nt = 2 * et, D = 1e-6, Yt = nt - D; +function it() { + this._x0 = this._y0 = // start of current subpath + this._x1 = this._y1 = null, this._ = ""; +} +function gt() { + return new it(); +} +it.prototype = gt.prototype = { + constructor: it, + moveTo: function(t, n) { + this._ += "M" + (this._x0 = this._x1 = +t) + "," + (this._y0 = this._y1 = +n); + }, + closePath: function() { + this._x1 !== null && (this._x1 = this._x0, this._y1 = this._y0, this._ += "Z"); + }, + lineTo: function(t, n) { + this._ += "L" + (this._x1 = +t) + "," + (this._y1 = +n); + }, + quadraticCurveTo: function(t, n, s, a) { + this._ += "Q" + +t + "," + +n + "," + (this._x1 = +s) + "," + (this._y1 = +a); + }, + bezierCurveTo: function(t, n, s, a, u, y) { + this._ += "C" + +t + "," + +n + "," + +s + "," + +a + "," + (this._x1 = +u) + "," + (this._y1 = +y); + }, + arcTo: function(t, n, s, a, u) { + t = +t, n = +n, s = +s, a = +a, u = +u; + var y = this._x1, p = this._y1, m = s - t, i = a - n, o = y - t, c = p - n, k = o * o + c * c; + if (u < 0) + throw new Error("negative radius: " + u); + if (this._x1 === null) + this._ += "M" + (this._x1 = t) + "," + (this._y1 = n); + else if (k > D) + if (!(Math.abs(c * m - i * o) > D) || !u) + this._ += "L" + (this._x1 = t) + "," + (this._y1 = n); + else { + var b = s - y, d = a - p, x = m * m + i * i, E = b * b + d * d, L = Math.sqrt(x), A = Math.sqrt(k), N = u * Math.tan((et - Math.acos((x + k - E) / (2 * L * A))) / 2), C = N / A, j = N / L; + Math.abs(C - 1) > D && (this._ += "L" + (t + C * o) + "," + (n + C * c)), this._ += "A" + u + "," + u + ",0,0," + +(c * b > o * d) + "," + (this._x1 = t + j * m) + "," + (this._y1 = n + j * i); + } + }, + arc: function(t, n, s, a, u, y) { + t = +t, n = +n, s = +s, y = !!y; + var p = s * Math.cos(a), m = s * Math.sin(a), i = t + p, o = n + m, c = 1 ^ y, k = y ? a - u : u - a; + if (s < 0) + throw new Error("negative radius: " + s); + this._x1 === null ? this._ += "M" + i + "," + o : (Math.abs(this._x1 - i) > D || Math.abs(this._y1 - o) > D) && (this._ += "L" + i + "," + o), s && (k < 0 && (k = k % nt + nt), k > Yt ? this._ += "A" + s + "," + s + ",0,1," + c + "," + (t - p) + "," + (n - m) + "A" + s + "," + s + ",0,1," + c + "," + (this._x1 = i) + "," + (this._y1 = o) : k > D && (this._ += "A" + s + "," + s + ",0," + +(k >= et) + "," + c + "," + (this._x1 = t + s * Math.cos(u)) + "," + (this._y1 = n + s * Math.sin(u)))); + }, + rect: function(t, n, s, a) { + this._ += "M" + (this._x0 = this._x1 = +t) + "," + (this._y0 = this._y1 = +n) + "h" + +s + "v" + +a + "h" + -s + "Z"; + }, + toString: function() { + return this._; + } +}; +function ht(t) { + return function() { + return t; + }; +} +function Ht(t) { + return t[0]; +} +function Xt(t) { + return t[1]; +} +var qt = Array.prototype.slice; +function Qt(t) { + return t.source; +} +function Kt(t) { + return t.target; +} +function Zt(t) { + var n = Qt, s = Kt, a = Ht, u = Xt, y = null; + function p() { + var m, i = qt.call(arguments), o = n.apply(this, i), c = s.apply(this, i); + if (y || (y = m = gt()), t(y, +a.apply(this, (i[0] = o, i)), +u.apply(this, i), +a.apply(this, (i[0] = c, i)), +u.apply(this, i)), m) + return y = null, m + "" || null; + } + return p.source = function(m) { + return arguments.length ? (n = m, p) : n; + }, p.target = function(m) { + return arguments.length ? (s = m, p) : s; + }, p.x = function(m) { + return arguments.length ? (a = typeof m == "function" ? m : ht(+m), p) : a; + }, p.y = function(m) { + return arguments.length ? (u = typeof m == "function" ? m : ht(+m), p) : u; + }, p.context = function(m) { + return arguments.length ? (y = m ?? null, p) : y; + }, p; +} +function Jt(t, n, s, a, u) { + t.moveTo(n, s), t.bezierCurveTo(n = (n + a) / 2, s, n, u, a, u); +} +function te() { + return Zt(Jt); +} +function ee(t) { + return [t.source.x1, t.y0]; +} +function ne(t) { + return [t.target.x0, t.y1]; +} +function ie() { + return te().source(ee).target(ne); +} +const pt = class st { + static next(n) { + return new st(n + ++st.count); + } + constructor(n) { + this.id = n, this.href = `#${n}`; + } + toString() { + return "url(" + this.href + ")"; + } +}; +pt.count = 0; +let ft = pt; +const se = { + left: Bt, + right: Vt, + center: Rt, + justify: dt +}, re = function(t, n, s, a) { + const { securityLevel: u, sankey: y } = rt(), p = Lt.sankey; + let m; + u === "sandbox" && (m = G("#i" + n)); + const i = u === "sandbox" ? G(m.nodes()[0].contentDocument.body) : G("body"), o = u === "sandbox" ? i.select(`[id="${n}"]`) : G(`[id="${n}"]`), c = (y == null ? void 0 : y.width) ?? p.width, k = (y == null ? void 0 : y.height) ?? p.width, b = (y == null ? void 0 : y.useMaxWidth) ?? p.useMaxWidth, d = (y == null ? void 0 : y.nodeAlignment) ?? p.nodeAlignment, x = (y == null ? void 0 : y.prefix) ?? p.prefix, E = (y == null ? void 0 : y.suffix) ?? p.suffix, L = (y == null ? void 0 : y.showValues) ?? p.showValues, A = a.db.getGraph(), N = se[d], C = 10; + Gt().nodeId((g) => g.id).nodeWidth(C).nodePadding(10 + (L ? 15 : 0)).nodeAlign(N).extent([ + [0, 0], + [c, k] + ])(A); + const S = At(Tt); + o.append("g").attr("class", "nodes").selectAll(".node").data(A.nodes).join("g").attr("class", "node").attr("id", (g) => (g.uid = ft.next("node-")).id).attr("transform", function(g) { + return "translate(" + g.x0 + "," + g.y0 + ")"; + }).attr("x", (g) => g.x0).attr("y", (g) => g.y0).append("rect").attr("height", (g) => g.y1 - g.y0).attr("width", (g) => g.x1 - g.x0).attr("fill", (g) => S(g.id)); + const M = ({ id: g, value: w }) => L ? `${g} +${x}${Math.round(w * 100) / 100}${E}` : g; + o.append("g").attr("class", "node-labels").attr("font-family", "sans-serif").attr("font-size", 14).selectAll("text").data(A.nodes).join("text").attr("x", (g) => g.x0 < c / 2 ? g.x1 + 6 : g.x0 - 6).attr("y", (g) => (g.y1 + g.y0) / 2).attr("dy", `${L ? "0" : "0.35"}em`).attr("text-anchor", (g) => g.x0 < c / 2 ? "start" : "end").text(M); + const $ = o.append("g").attr("class", "links").attr("fill", "none").attr("stroke-opacity", 0.5).selectAll(".link").data(A.links).join("g").attr("class", "link").style("mix-blend-mode", "multiply"), P = (y == null ? void 0 : y.linkColor) || "gradient"; + if (P === "gradient") { + const g = $.append("linearGradient").attr("id", (w) => (w.uid = ft.next("linearGradient-")).id).attr("gradientUnits", "userSpaceOnUse").attr("x1", (w) => w.source.x1).attr("x2", (w) => w.target.x0); + g.append("stop").attr("offset", "0%").attr("stop-color", (w) => S(w.source.id)), g.append("stop").attr("offset", "100%").attr("stop-color", (w) => S(w.target.id)); + } + let I; + switch (P) { + case "gradient": + I = (g) => g.uid; + break; + case "source": + I = (g) => S(g.source.id); + break; + case "target": + I = (g) => S(g.target.id); + break; + default: + I = P; + } + $.append("path").attr("d", ie()).attr("stroke", I).attr("stroke-width", (g) => Math.max(1, g.width)), Et(void 0, o, 0, b); +}, oe = { + draw: re +}, le = (t) => t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g, "").replaceAll(/([\n\r])+/g, ` +`).trim(), ae = H.parse.bind(H); +H.parse = (t) => ae(le(t)); +const ye = { + parser: H, + db: zt, + renderer: oe +}; +export { + ye as diagram +}; diff --git a/assets/lib/mermaid/sankeyDiagram-707fac0f.js b/assets/lib/mermaid/sankeyDiagram-707fac0f.js new file mode 100644 index 000000000..c31d3fba2 --- /dev/null +++ b/assets/lib/mermaid/sankeyDiagram-707fac0f.js @@ -0,0 +1,660 @@ +import { c as getConfig, g as getAccTitle, s as setAccTitle, a as getAccDescription, b as setAccDescription, t as getDiagramTitle, q as setDiagramTitle, v as clear$1, e as common, K as defaultConfig, o as setupGraphViewbox } from "./mermaid-6dc72991.js"; +import { select, scaleOrdinal, schemeTableau10 } from "d3"; +import { sankey, sankeyLinkHorizontal, sankeyLeft, sankeyRight, sankeyCenter, sankeyJustify } from "d3-sankey"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 9], $V1 = [1, 10], $V2 = [1, 5, 10, 12]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "SANKEY": 4, "NEWLINE": 5, "csv": 6, "opt_eof": 7, "record": 8, "csv_tail": 9, "EOF": 10, "field[source]": 11, "COMMA": 12, "field[target]": 13, "field[value]": 14, "field": 15, "escaped": 16, "non_escaped": 17, "DQUOTE": 18, "ESCAPED_TEXT": 19, "NON_ESCAPED_TEXT": 20, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "SANKEY", 5: "NEWLINE", 10: "EOF", 11: "field[source]", 12: "COMMA", 13: "field[target]", 14: "field[value]", 18: "DQUOTE", 19: "ESCAPED_TEXT", 20: "NON_ESCAPED_TEXT" }, + productions_: [0, [3, 4], [6, 2], [9, 2], [9, 0], [7, 1], [7, 0], [8, 5], [15, 1], [15, 1], [16, 3], [17, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 7: + const source = yy.findOrCreateNode($$[$0 - 4].trim().replaceAll('""', '"')); + const target = yy.findOrCreateNode($$[$0 - 2].trim().replaceAll('""', '"')); + const value = parseFloat($$[$0].trim()); + yy.addLink(source, target, value); + break; + case 8: + case 9: + case 11: + this.$ = $$[$0]; + break; + case 10: + this.$ = $$[$0 - 1]; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, { 5: [1, 3] }, { 6: 4, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 1: [2, 6], 7: 11, 10: [1, 12] }, o($V1, [2, 4], { 9: 13, 5: [1, 14] }), { 12: [1, 15] }, o($V2, [2, 8]), o($V2, [2, 9]), { 19: [1, 16] }, o($V2, [2, 11]), { 1: [2, 1] }, { 1: [2, 5] }, o($V1, [2, 2]), { 6: 17, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 15: 18, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 18: [1, 19] }, o($V1, [2, 3]), { 12: [1, 20] }, o($V2, [2, 10]), { 15: 21, 16: 7, 17: 8, 18: $V0, 20: $V1 }, o([1, 5, 10], [2, 7])], + defaultActions: { 11: [2, 1], 12: [2, 5] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + this.pushState("csv"); + return 4; + case 1: + return 10; + case 2: + return 5; + case 3: + return 12; + case 4: + this.pushState("escaped_text"); + return 18; + case 5: + return 20; + case 6: + this.popState("escaped_text"); + return 18; + case 7: + return 19; + } + }, + rules: [/^(?:sankey-beta\b)/i, /^(?:$)/i, /^(?:((\u000D\u000A)|(\u000A)))/i, /^(?:(\u002C))/i, /^(?:(\u0022))/i, /^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i, /^(?:(\u0022)(?!(\u0022)))/i, /^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i], + conditions: { "csv": { "rules": [1, 2, 3, 4, 5, 6, 7], "inclusive": false }, "escaped_text": { "rules": [6, 7], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let links = []; +let nodes = []; +let nodesMap = {}; +const clear = () => { + links = []; + nodes = []; + nodesMap = {}; + clear$1(); +}; +class SankeyLink { + constructor(source, target, value = 0) { + this.source = source; + this.target = target; + this.value = value; + } +} +const addLink = (source, target, value) => { + links.push(new SankeyLink(source, target, value)); +}; +class SankeyNode { + constructor(ID) { + this.ID = ID; + } +} +const findOrCreateNode = (ID) => { + ID = common.sanitizeText(ID, getConfig()); + if (!nodesMap[ID]) { + nodesMap[ID] = new SankeyNode(ID); + nodes.push(nodesMap[ID]); + } + return nodesMap[ID]; +}; +const getNodes = () => nodes; +const getLinks = () => links; +const getGraph = () => ({ + nodes: nodes.map((node) => ({ id: node.ID })), + links: links.map((link) => ({ + source: link.source.ID, + target: link.target.ID, + value: link.value + })) +}); +const db = { + nodesMap, + getConfig: () => getConfig().sankey, + getNodes, + getLinks, + getGraph, + addLink, + findOrCreateNode, + getAccTitle, + setAccTitle, + getAccDescription, + setAccDescription, + getDiagramTitle, + setDiagramTitle, + clear +}; +const _Uid = class _Uid2 { + static next(name) { + return new _Uid2(name + ++_Uid2.count); + } + constructor(id) { + this.id = id; + this.href = `#${id}`; + } + toString() { + return "url(" + this.href + ")"; + } +}; +_Uid.count = 0; +let Uid = _Uid; +const alignmentsMap = { + left: sankeyLeft, + right: sankeyRight, + center: sankeyCenter, + justify: sankeyJustify +}; +const draw = function(text, id, _version, diagObj) { + const { securityLevel, sankey: conf } = getConfig(); + const defaultSankeyConfig = defaultConfig.sankey; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const svg = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : select(`[id="${id}"]`); + const width = (conf == null ? void 0 : conf.width) ?? defaultSankeyConfig.width; + const height = (conf == null ? void 0 : conf.height) ?? defaultSankeyConfig.width; + const useMaxWidth = (conf == null ? void 0 : conf.useMaxWidth) ?? defaultSankeyConfig.useMaxWidth; + const nodeAlignment = (conf == null ? void 0 : conf.nodeAlignment) ?? defaultSankeyConfig.nodeAlignment; + const prefix = (conf == null ? void 0 : conf.prefix) ?? defaultSankeyConfig.prefix; + const suffix = (conf == null ? void 0 : conf.suffix) ?? defaultSankeyConfig.suffix; + const showValues = (conf == null ? void 0 : conf.showValues) ?? defaultSankeyConfig.showValues; + const graph = diagObj.db.getGraph(); + const nodeAlign = alignmentsMap[nodeAlignment]; + const nodeWidth = 10; + const sankey$1 = sankey().nodeId((d) => d.id).nodeWidth(nodeWidth).nodePadding(10 + (showValues ? 15 : 0)).nodeAlign(nodeAlign).extent([ + [0, 0], + [width, height] + ]); + sankey$1(graph); + const colorScheme = scaleOrdinal(schemeTableau10); + svg.append("g").attr("class", "nodes").selectAll(".node").data(graph.nodes).join("g").attr("class", "node").attr("id", (d) => (d.uid = Uid.next("node-")).id).attr("transform", function(d) { + return "translate(" + d.x0 + "," + d.y0 + ")"; + }).attr("x", (d) => d.x0).attr("y", (d) => d.y0).append("rect").attr("height", (d) => { + return d.y1 - d.y0; + }).attr("width", (d) => d.x1 - d.x0).attr("fill", (d) => colorScheme(d.id)); + const getText = ({ id: id2, value }) => { + if (!showValues) { + return id2; + } + return `${id2} +${prefix}${Math.round(value * 100) / 100}${suffix}`; + }; + svg.append("g").attr("class", "node-labels").attr("font-family", "sans-serif").attr("font-size", 14).selectAll("text").data(graph.nodes).join("text").attr("x", (d) => d.x0 < width / 2 ? d.x1 + 6 : d.x0 - 6).attr("y", (d) => (d.y1 + d.y0) / 2).attr("dy", `${showValues ? "0" : "0.35"}em`).attr("text-anchor", (d) => d.x0 < width / 2 ? "start" : "end").text(getText); + const link = svg.append("g").attr("class", "links").attr("fill", "none").attr("stroke-opacity", 0.5).selectAll(".link").data(graph.links).join("g").attr("class", "link").style("mix-blend-mode", "multiply"); + const linkColor = (conf == null ? void 0 : conf.linkColor) || "gradient"; + if (linkColor === "gradient") { + const gradient = link.append("linearGradient").attr("id", (d) => (d.uid = Uid.next("linearGradient-")).id).attr("gradientUnits", "userSpaceOnUse").attr("x1", (d) => d.source.x1).attr("x2", (d) => d.target.x0); + gradient.append("stop").attr("offset", "0%").attr("stop-color", (d) => colorScheme(d.source.id)); + gradient.append("stop").attr("offset", "100%").attr("stop-color", (d) => colorScheme(d.target.id)); + } + let coloring; + switch (linkColor) { + case "gradient": + coloring = (d) => d.uid; + break; + case "source": + coloring = (d) => colorScheme(d.source.id); + break; + case "target": + coloring = (d) => colorScheme(d.target.id); + break; + default: + coloring = linkColor; + } + link.append("path").attr("d", sankeyLinkHorizontal()).attr("stroke", coloring).attr("stroke-width", (d) => Math.max(1, d.width)); + setupGraphViewbox(void 0, svg, 0, useMaxWidth); +}; +const renderer = { + draw +}; +const prepareTextForParsing = (text) => { + const textToParse = text.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g, "").replaceAll(/([\n\r])+/g, "\n").trim(); + return textToParse; +}; +const originalParse = parser$1.parse.bind(parser$1); +parser$1.parse = (text) => originalParse(prepareTextForParsing(text)); +const diagram = { + parser: parser$1, + db, + renderer +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/sequenceDiagram-6894f283.js b/assets/lib/mermaid/sequenceDiagram-6894f283.js new file mode 100644 index 000000000..7d0c52acb --- /dev/null +++ b/assets/lib/mermaid/sequenceDiagram-6894f283.js @@ -0,0 +1,3346 @@ +import { g as getAccTitle, t as getDiagramTitle, q as setDiagramTitle, c as getConfig, s as setAccTitle, b as setAccDescription, a as getAccDescription, v as clear$1, l as log, d as sanitizeText, e as common, D as parseFontSize, G as hasKatex, r as renderKatex, F as getConfig$1, Z as ZERO_WIDTH_SPACE, H as calculateMathMLDimensions, f as assignWithDepth, i as configureSvgSize, u as utils } from "./mermaid-6dc72991.js"; +import { select } from "d3"; +import { d as drawRect$1, a as drawBackgroundRect$1, b as drawEmbeddedImage, c as drawImage, e as getTextObj$1, g as getNoteRect$1 } from "./svgDrawCommon-5e1cfd1d.js"; +import { sanitizeUrl } from "@braintree/sanitize-url"; +import "ts-dedent"; +import "dayjs"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 4], $V3 = [2, 4], $V4 = [1, 9], $V5 = [1, 11], $V6 = [1, 13], $V7 = [1, 14], $V8 = [1, 16], $V9 = [1, 17], $Va = [1, 18], $Vb = [1, 24], $Vc = [1, 25], $Vd = [1, 26], $Ve = [1, 27], $Vf = [1, 28], $Vg = [1, 29], $Vh = [1, 30], $Vi = [1, 31], $Vj = [1, 32], $Vk = [1, 33], $Vl = [1, 34], $Vm = [1, 35], $Vn = [1, 36], $Vo = [1, 37], $Vp = [1, 38], $Vq = [1, 39], $Vr = [1, 41], $Vs = [1, 42], $Vt = [1, 43], $Vu = [1, 44], $Vv = [1, 45], $Vw = [1, 46], $Vx = [1, 4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 54, 59, 60, 61, 62, 70], $Vy = [4, 5, 16, 50, 52, 53], $Vz = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VA = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 49, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VB = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 48, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VC = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VD = [68, 69, 70], $VE = [1, 120]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "SPACE": 4, "NEWLINE": 5, "SD": 6, "document": 7, "line": 8, "statement": 9, "box_section": 10, "box_line": 11, "participant_statement": 12, "create": 13, "box": 14, "restOfLine": 15, "end": 16, "signal": 17, "autonumber": 18, "NUM": 19, "off": 20, "activate": 21, "actor": 22, "deactivate": 23, "note_statement": 24, "links_statement": 25, "link_statement": 26, "properties_statement": 27, "details_statement": 28, "title": 29, "legacy_title": 30, "acc_title": 31, "acc_title_value": 32, "acc_descr": 33, "acc_descr_value": 34, "acc_descr_multiline_value": 35, "loop": 36, "rect": 37, "opt": 38, "alt": 39, "else_sections": 40, "par": 41, "par_sections": 42, "par_over": 43, "critical": 44, "option_sections": 45, "break": 46, "option": 47, "and": 48, "else": 49, "participant": 50, "AS": 51, "participant_actor": 52, "destroy": 53, "note": 54, "placement": 55, "text2": 56, "over": 57, "actor_pair": 58, "links": 59, "link": 60, "properties": 61, "details": 62, "spaceList": 63, ",": 64, "left_of": 65, "right_of": 66, "signaltype": 67, "+": 68, "-": 69, "ACTOR": 70, "SOLID_OPEN_ARROW": 71, "DOTTED_OPEN_ARROW": 72, "SOLID_ARROW": 73, "DOTTED_ARROW": 74, "SOLID_CROSS": 75, "DOTTED_CROSS": 76, "SOLID_POINT": 77, "DOTTED_POINT": 78, "TXT": 79, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "SPACE", 5: "NEWLINE", 6: "SD", 13: "create", 14: "box", 15: "restOfLine", 16: "end", 18: "autonumber", 19: "NUM", 20: "off", 21: "activate", 23: "deactivate", 29: "title", 30: "legacy_title", 31: "acc_title", 32: "acc_title_value", 33: "acc_descr", 34: "acc_descr_value", 35: "acc_descr_multiline_value", 36: "loop", 37: "rect", 38: "opt", 39: "alt", 41: "par", 43: "par_over", 44: "critical", 46: "break", 47: "option", 48: "and", 49: "else", 50: "participant", 51: "AS", 52: "participant_actor", 53: "destroy", 54: "note", 57: "over", 59: "links", 60: "link", 61: "properties", 62: "details", 64: ",", 65: "left_of", 66: "right_of", 68: "+", 69: "-", 70: "ACTOR", 71: "SOLID_OPEN_ARROW", 72: "DOTTED_OPEN_ARROW", 73: "SOLID_ARROW", 74: "DOTTED_ARROW", 75: "SOLID_CROSS", 76: "DOTTED_CROSS", 77: "SOLID_POINT", 78: "DOTTED_POINT", 79: "TXT" }, + productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [10, 0], [10, 2], [11, 2], [11, 1], [11, 1], [9, 1], [9, 2], [9, 4], [9, 2], [9, 4], [9, 3], [9, 3], [9, 2], [9, 3], [9, 3], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [45, 1], [45, 4], [42, 1], [42, 4], [40, 1], [40, 4], [12, 5], [12, 3], [12, 5], [12, 3], [12, 3], [24, 4], [24, 4], [25, 3], [26, 3], [27, 3], [28, 3], [63, 2], [63, 1], [58, 3], [58, 1], [55, 1], [55, 1], [17, 5], [17, 5], [17, 4], [22, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [56, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 3: + yy.apply($$[$0]); + return $$[$0]; + case 4: + case 9: + this.$ = []; + break; + case 5: + case 10: + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + break; + case 6: + case 7: + case 11: + case 12: + this.$ = $$[$0]; + break; + case 8: + case 13: + this.$ = []; + break; + case 15: + $$[$0].type = "createParticipant"; + this.$ = $$[$0]; + break; + case 16: + $$[$0 - 1].unshift({ type: "boxStart", boxData: yy.parseBoxData($$[$0 - 2]) }); + $$[$0 - 1].push({ type: "boxEnd", boxText: $$[$0 - 2] }); + this.$ = $$[$0 - 1]; + break; + case 18: + this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 2]), sequenceIndexStep: Number($$[$0 - 1]), sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER }; + break; + case 19: + this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 1]), sequenceIndexStep: 1, sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER }; + break; + case 20: + this.$ = { type: "sequenceIndex", sequenceVisible: false, signalType: yy.LINETYPE.AUTONUMBER }; + break; + case 21: + this.$ = { type: "sequenceIndex", sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER }; + break; + case 22: + this.$ = { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] }; + break; + case 23: + this.$ = { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 1] }; + break; + case 29: + yy.setDiagramTitle($$[$0].substring(6)); + this.$ = $$[$0].substring(6); + break; + case 30: + yy.setDiagramTitle($$[$0].substring(7)); + this.$ = $$[$0].substring(7); + break; + case 31: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 32: + case 33: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 34: + $$[$0 - 1].unshift({ type: "loopStart", loopText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.LOOP_START }); + $$[$0 - 1].push({ type: "loopEnd", loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_END }); + this.$ = $$[$0 - 1]; + break; + case 35: + $$[$0 - 1].unshift({ type: "rectStart", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_START }); + $$[$0 - 1].push({ type: "rectEnd", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_END }); + this.$ = $$[$0 - 1]; + break; + case 36: + $$[$0 - 1].unshift({ type: "optStart", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_START }); + $$[$0 - 1].push({ type: "optEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_END }); + this.$ = $$[$0 - 1]; + break; + case 37: + $$[$0 - 1].unshift({ type: "altStart", altText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.ALT_START }); + $$[$0 - 1].push({ type: "altEnd", signalType: yy.LINETYPE.ALT_END }); + this.$ = $$[$0 - 1]; + break; + case 38: + $$[$0 - 1].unshift({ type: "parStart", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_START }); + $$[$0 - 1].push({ type: "parEnd", signalType: yy.LINETYPE.PAR_END }); + this.$ = $$[$0 - 1]; + break; + case 39: + $$[$0 - 1].unshift({ type: "parStart", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_OVER_START }); + $$[$0 - 1].push({ type: "parEnd", signalType: yy.LINETYPE.PAR_END }); + this.$ = $$[$0 - 1]; + break; + case 40: + $$[$0 - 1].unshift({ type: "criticalStart", criticalText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.CRITICAL_START }); + $$[$0 - 1].push({ type: "criticalEnd", signalType: yy.LINETYPE.CRITICAL_END }); + this.$ = $$[$0 - 1]; + break; + case 41: + $$[$0 - 1].unshift({ type: "breakStart", breakText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_START }); + $$[$0 - 1].push({ type: "breakEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_END }); + this.$ = $$[$0 - 1]; + break; + case 43: + this.$ = $$[$0 - 3].concat([{ type: "option", optionText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.CRITICAL_OPTION }, $$[$0]]); + break; + case 45: + this.$ = $$[$0 - 3].concat([{ type: "and", parText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.PAR_AND }, $$[$0]]); + break; + case 47: + this.$ = $$[$0 - 3].concat([{ type: "else", altText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.ALT_ELSE }, $$[$0]]); + break; + case 48: + $$[$0 - 3].draw = "participant"; + $$[$0 - 3].type = "addParticipant"; + $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]); + this.$ = $$[$0 - 3]; + break; + case 49: + $$[$0 - 1].draw = "participant"; + $$[$0 - 1].type = "addParticipant"; + this.$ = $$[$0 - 1]; + break; + case 50: + $$[$0 - 3].draw = "actor"; + $$[$0 - 3].type = "addParticipant"; + $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]); + this.$ = $$[$0 - 3]; + break; + case 51: + $$[$0 - 1].draw = "actor"; + $$[$0 - 1].type = "addParticipant"; + this.$ = $$[$0 - 1]; + break; + case 52: + $$[$0 - 1].type = "destroyParticipant"; + this.$ = $$[$0 - 1]; + break; + case 53: + this.$ = [$$[$0 - 1], { type: "addNote", placement: $$[$0 - 2], actor: $$[$0 - 1].actor, text: $$[$0] }]; + break; + case 54: + $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2); + $$[$0 - 2][0] = $$[$0 - 2][0].actor; + $$[$0 - 2][1] = $$[$0 - 2][1].actor; + this.$ = [$$[$0 - 1], { type: "addNote", placement: yy.PLACEMENT.OVER, actor: $$[$0 - 2].slice(0, 2), text: $$[$0] }]; + break; + case 55: + this.$ = [$$[$0 - 1], { type: "addLinks", actor: $$[$0 - 1].actor, text: $$[$0] }]; + break; + case 56: + this.$ = [$$[$0 - 1], { type: "addALink", actor: $$[$0 - 1].actor, text: $$[$0] }]; + break; + case 57: + this.$ = [$$[$0 - 1], { type: "addProperties", actor: $$[$0 - 1].actor, text: $$[$0] }]; + break; + case 58: + this.$ = [$$[$0 - 1], { type: "addDetails", actor: $$[$0 - 1].actor, text: $$[$0] }]; + break; + case 61: + this.$ = [$$[$0 - 2], $$[$0]]; + break; + case 62: + this.$ = $$[$0]; + break; + case 63: + this.$ = yy.PLACEMENT.LEFTOF; + break; + case 64: + this.$ = yy.PLACEMENT.RIGHTOF; + break; + case 65: + this.$ = [ + $$[$0 - 4], + $$[$0 - 1], + { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0], activate: true }, + { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] } + ]; + break; + case 66: + this.$ = [ + $$[$0 - 4], + $$[$0 - 1], + { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] }, + { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 4] } + ]; + break; + case 67: + this.$ = [$$[$0 - 3], $$[$0 - 1], { type: "addMessage", from: $$[$0 - 3].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 2], msg: $$[$0] }]; + break; + case 68: + this.$ = { type: "addParticipant", actor: $$[$0] }; + break; + case 69: + this.$ = yy.LINETYPE.SOLID_OPEN; + break; + case 70: + this.$ = yy.LINETYPE.DOTTED_OPEN; + break; + case 71: + this.$ = yy.LINETYPE.SOLID; + break; + case 72: + this.$ = yy.LINETYPE.DOTTED; + break; + case 73: + this.$ = yy.LINETYPE.SOLID_CROSS; + break; + case 74: + this.$ = yy.LINETYPE.DOTTED_CROSS; + break; + case 75: + this.$ = yy.LINETYPE.SOLID_POINT; + break; + case 76: + this.$ = yy.LINETYPE.DOTTED_POINT; + break; + case 77: + this.$ = yy.parseMessage($$[$0].trim().substring(1)); + break; + } + }, + table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o([1, 4, 5, 13, 14, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 50, 52, 53, 54, 59, 60, 61, 62, 70], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, o($Vx, [2, 5]), { 9: 47, 12: 12, 13: $V6, 14: $V7, 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, o($Vx, [2, 7]), o($Vx, [2, 8]), o($Vx, [2, 14]), { 12: 48, 50: $Vo, 52: $Vp, 53: $Vq }, { 15: [1, 49] }, { 5: [1, 50] }, { 5: [1, 53], 19: [1, 51], 20: [1, 52] }, { 22: 54, 70: $Vw }, { 22: 55, 70: $Vw }, { 5: [1, 56] }, { 5: [1, 57] }, { 5: [1, 58] }, { 5: [1, 59] }, { 5: [1, 60] }, o($Vx, [2, 29]), o($Vx, [2, 30]), { 32: [1, 61] }, { 34: [1, 62] }, o($Vx, [2, 33]), { 15: [1, 63] }, { 15: [1, 64] }, { 15: [1, 65] }, { 15: [1, 66] }, { 15: [1, 67] }, { 15: [1, 68] }, { 15: [1, 69] }, { 15: [1, 70] }, { 22: 71, 70: $Vw }, { 22: 72, 70: $Vw }, { 22: 73, 70: $Vw }, { 67: 74, 71: [1, 75], 72: [1, 76], 73: [1, 77], 74: [1, 78], 75: [1, 79], 76: [1, 80], 77: [1, 81], 78: [1, 82] }, { 55: 83, 57: [1, 84], 65: [1, 85], 66: [1, 86] }, { 22: 87, 70: $Vw }, { 22: 88, 70: $Vw }, { 22: 89, 70: $Vw }, { 22: 90, 70: $Vw }, o([5, 51, 64, 71, 72, 73, 74, 75, 76, 77, 78, 79], [2, 68]), o($Vx, [2, 6]), o($Vx, [2, 15]), o($Vy, [2, 9], { 10: 91 }), o($Vx, [2, 17]), { 5: [1, 93], 19: [1, 92] }, { 5: [1, 94] }, o($Vx, [2, 21]), { 5: [1, 95] }, { 5: [1, 96] }, o($Vx, [2, 24]), o($Vx, [2, 25]), o($Vx, [2, 26]), o($Vx, [2, 27]), o($Vx, [2, 28]), o($Vx, [2, 31]), o($Vx, [2, 32]), o($Vz, $V3, { 7: 97 }), o($Vz, $V3, { 7: 98 }), o($Vz, $V3, { 7: 99 }), o($VA, $V3, { 40: 100, 7: 101 }), o($VB, $V3, { 42: 102, 7: 103 }), o($VB, $V3, { 7: 103, 42: 104 }), o($VC, $V3, { 45: 105, 7: 106 }), o($Vz, $V3, { 7: 107 }), { 5: [1, 109], 51: [1, 108] }, { 5: [1, 111], 51: [1, 110] }, { 5: [1, 112] }, { 22: 115, 68: [1, 113], 69: [1, 114], 70: $Vw }, o($VD, [2, 69]), o($VD, [2, 70]), o($VD, [2, 71]), o($VD, [2, 72]), o($VD, [2, 73]), o($VD, [2, 74]), o($VD, [2, 75]), o($VD, [2, 76]), { 22: 116, 70: $Vw }, { 22: 118, 58: 117, 70: $Vw }, { 70: [2, 63] }, { 70: [2, 64] }, { 56: 119, 79: $VE }, { 56: 121, 79: $VE }, { 56: 122, 79: $VE }, { 56: 123, 79: $VE }, { 4: [1, 126], 5: [1, 128], 11: 125, 12: 127, 16: [1, 124], 50: $Vo, 52: $Vp, 53: $Vq }, { 5: [1, 129] }, o($Vx, [2, 19]), o($Vx, [2, 20]), o($Vx, [2, 22]), o($Vx, [2, 23]), { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 130], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 131], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 132], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 133] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 46], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 49: [1, 134], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 135] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 44], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 48: [1, 136], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 137] }, { 16: [1, 138] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 42], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 47: [1, 139], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 140], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 15: [1, 141] }, o($Vx, [2, 49]), { 15: [1, 142] }, o($Vx, [2, 51]), o($Vx, [2, 52]), { 22: 143, 70: $Vw }, { 22: 144, 70: $Vw }, { 56: 145, 79: $VE }, { 56: 146, 79: $VE }, { 56: 147, 79: $VE }, { 64: [1, 148], 79: [2, 62] }, { 5: [2, 55] }, { 5: [2, 77] }, { 5: [2, 56] }, { 5: [2, 57] }, { 5: [2, 58] }, o($Vx, [2, 16]), o($Vy, [2, 10]), { 12: 149, 50: $Vo, 52: $Vp, 53: $Vq }, o($Vy, [2, 12]), o($Vy, [2, 13]), o($Vx, [2, 18]), o($Vx, [2, 34]), o($Vx, [2, 35]), o($Vx, [2, 36]), o($Vx, [2, 37]), { 15: [1, 150] }, o($Vx, [2, 38]), { 15: [1, 151] }, o($Vx, [2, 39]), o($Vx, [2, 40]), { 15: [1, 152] }, o($Vx, [2, 41]), { 5: [1, 153] }, { 5: [1, 154] }, { 56: 155, 79: $VE }, { 56: 156, 79: $VE }, { 5: [2, 67] }, { 5: [2, 53] }, { 5: [2, 54] }, { 22: 157, 70: $Vw }, o($Vy, [2, 11]), o($VA, $V3, { 7: 101, 40: 158 }), o($VB, $V3, { 7: 103, 42: 159 }), o($VC, $V3, { 7: 106, 45: 160 }), o($Vx, [2, 48]), o($Vx, [2, 50]), { 5: [2, 65] }, { 5: [2, 66] }, { 79: [2, 61] }, { 16: [2, 47] }, { 16: [2, 45] }, { 16: [2, 43] }], + defaultActions: { 5: [2, 1], 6: [2, 2], 85: [2, 63], 86: [2, 64], 119: [2, 55], 120: [2, 77], 121: [2, 56], 122: [2, 57], 123: [2, 58], 145: [2, 67], 146: [2, 53], 147: [2, 54], 155: [2, 65], 156: [2, 66], 157: [2, 61], 158: [2, 47], 159: [2, 45], 160: [2, 43] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state2, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state2 = stack[stack.length - 1]; + if (this.defaultActions[state2]) { + action = this.defaultActions[state2]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state2] && table[state2][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state2]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + return 5; + case 1: + break; + case 2: + break; + case 3: + break; + case 4: + break; + case 5: + break; + case 6: + return 19; + case 7: + this.begin("LINE"); + return 14; + case 8: + this.begin("ID"); + return 50; + case 9: + this.begin("ID"); + return 52; + case 10: + return 13; + case 11: + this.begin("ID"); + return 53; + case 12: + yy_.yytext = yy_.yytext.trim(); + this.begin("ALIAS"); + return 70; + case 13: + this.popState(); + this.popState(); + this.begin("LINE"); + return 51; + case 14: + this.popState(); + this.popState(); + return 5; + case 15: + this.begin("LINE"); + return 36; + case 16: + this.begin("LINE"); + return 37; + case 17: + this.begin("LINE"); + return 38; + case 18: + this.begin("LINE"); + return 39; + case 19: + this.begin("LINE"); + return 49; + case 20: + this.begin("LINE"); + return 41; + case 21: + this.begin("LINE"); + return 43; + case 22: + this.begin("LINE"); + return 48; + case 23: + this.begin("LINE"); + return 44; + case 24: + this.begin("LINE"); + return 47; + case 25: + this.begin("LINE"); + return 46; + case 26: + this.popState(); + return 15; + case 27: + return 16; + case 28: + return 65; + case 29: + return 66; + case 30: + return 59; + case 31: + return 60; + case 32: + return 61; + case 33: + return 62; + case 34: + return 57; + case 35: + return 54; + case 36: + this.begin("ID"); + return 21; + case 37: + this.begin("ID"); + return 23; + case 38: + return 29; + case 39: + return 30; + case 40: + this.begin("acc_title"); + return 31; + case 41: + this.popState(); + return "acc_title_value"; + case 42: + this.begin("acc_descr"); + return 33; + case 43: + this.popState(); + return "acc_descr_value"; + case 44: + this.begin("acc_descr_multiline"); + break; + case 45: + this.popState(); + break; + case 46: + return "acc_descr_multiline_value"; + case 47: + return 6; + case 48: + return 18; + case 49: + return 20; + case 50: + return 64; + case 51: + return 5; + case 52: + yy_.yytext = yy_.yytext.trim(); + return 70; + case 53: + return 73; + case 54: + return 74; + case 55: + return 71; + case 56: + return 72; + case 57: + return 75; + case 58: + return 76; + case 59: + return 77; + case 60: + return 78; + case 61: + return 79; + case 62: + return 68; + case 63: + return 69; + case 64: + return 5; + case 65: + return "INVALID"; + } + }, + rules: [/^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[0-9]+(?=[ \n]+))/i, /^(?:box\b)/i, /^(?:participant\b)/i, /^(?:actor\b)/i, /^(?:create\b)/i, /^(?:destroy\b)/i, /^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i, /^(?:as\b)/i, /^(?:(?:))/i, /^(?:loop\b)/i, /^(?:rect\b)/i, /^(?:opt\b)/i, /^(?:alt\b)/i, /^(?:else\b)/i, /^(?:par\b)/i, /^(?:par_over\b)/i, /^(?:and\b)/i, /^(?:critical\b)/i, /^(?:option\b)/i, /^(?:break\b)/i, /^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i, /^(?:end\b)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:links\b)/i, /^(?:link\b)/i, /^(?:properties\b)/i, /^(?:details\b)/i, /^(?:over\b)/i, /^(?:note\b)/i, /^(?:activate\b)/i, /^(?:deactivate\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:title:\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:sequenceDiagram\b)/i, /^(?:autonumber\b)/i, /^(?:off\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i, /^(?:->>)/i, /^(?:-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?:-[\)])/i, /^(?:--[\)])/i, /^(?::(?:(?:no)?wrap)?[^#\n;]+)/i, /^(?:\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { "acc_descr_multiline": { "rules": [45, 46], "inclusive": false }, "acc_descr": { "rules": [43], "inclusive": false }, "acc_title": { "rules": [41], "inclusive": false }, "ID": { "rules": [2, 3, 12], "inclusive": false }, "ALIAS": { "rules": [2, 3, 13, 14], "inclusive": false }, "LINE": { "rules": [2, 3, 26], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 44, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +class ImperativeState { + /** + * @param init - Function that creates the default state. + */ + constructor(init) { + this.init = init; + this.records = this.init(); + } + reset() { + this.records = this.init(); + } +} +const state = new ImperativeState(() => ({ + prevActor: void 0, + actors: {}, + createdActors: {}, + destroyedActors: {}, + boxes: [], + messages: [], + notes: [], + sequenceNumbersEnabled: false, + wrapEnabled: void 0, + currentBox: void 0, + lastCreated: void 0, + lastDestroyed: void 0 +})); +const addBox = function(data) { + state.records.boxes.push({ + name: data.text, + wrap: data.wrap === void 0 && autoWrap() || !!data.wrap, + fill: data.color, + actorKeys: [] + }); + state.records.currentBox = state.records.boxes.slice(-1)[0]; +}; +const addActor = function(id, name, description, type) { + let assignedBox = state.records.currentBox; + const old = state.records.actors[id]; + if (old) { + if (state.records.currentBox && old.box && state.records.currentBox !== old.box) { + throw new Error( + "A same participant should only be defined in one Box: " + old.name + " can't be in '" + old.box.name + "' and in '" + state.records.currentBox.name + "' at the same time." + ); + } + assignedBox = old.box ? old.box : state.records.currentBox; + old.box = assignedBox; + if (old && name === old.name && description == null) { + return; + } + } + if (description == null || description.text == null) { + description = { text: name, wrap: null, type }; + } + if (type == null || description.text == null) { + description = { text: name, wrap: null, type }; + } + state.records.actors[id] = { + box: assignedBox, + name, + description: description.text, + wrap: description.wrap === void 0 && autoWrap() || !!description.wrap, + prevActor: state.records.prevActor, + links: {}, + properties: {}, + actorCnt: null, + rectData: null, + type: type || "participant" + }; + if (state.records.prevActor && state.records.actors[state.records.prevActor]) { + state.records.actors[state.records.prevActor].nextActor = id; + } + if (state.records.currentBox) { + state.records.currentBox.actorKeys.push(id); + } + state.records.prevActor = id; +}; +const activationCount = (part) => { + let i; + let count = 0; + for (i = 0; i < state.records.messages.length; i++) { + if (state.records.messages[i].type === LINETYPE.ACTIVE_START && state.records.messages[i].from.actor === part) { + count++; + } + if (state.records.messages[i].type === LINETYPE.ACTIVE_END && state.records.messages[i].from.actor === part) { + count--; + } + } + return count; +}; +const addMessage = function(idFrom, idTo, message, answer) { + state.records.messages.push({ + from: idFrom, + to: idTo, + message: message.text, + wrap: message.wrap === void 0 && autoWrap() || !!message.wrap, + answer + }); +}; +const addSignal = function(idFrom, idTo, message = { text: void 0, wrap: void 0 }, messageType, activate = false) { + if (messageType === LINETYPE.ACTIVE_END) { + const cnt = activationCount(idFrom.actor); + if (cnt < 1) { + let error = new Error("Trying to inactivate an inactive participant (" + idFrom.actor + ")"); + error.hash = { + text: "->>-", + token: "->>-", + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["'ACTIVE_PARTICIPANT'"] + }; + throw error; + } + } + state.records.messages.push({ + from: idFrom, + to: idTo, + message: message.text, + wrap: message.wrap === void 0 && autoWrap() || !!message.wrap, + type: messageType, + activate + }); + return true; +}; +const hasAtLeastOneBox = function() { + return state.records.boxes.length > 0; +}; +const hasAtLeastOneBoxWithTitle = function() { + return state.records.boxes.some((b) => b.name); +}; +const getMessages = function() { + return state.records.messages; +}; +const getBoxes = function() { + return state.records.boxes; +}; +const getActors = function() { + return state.records.actors; +}; +const getCreatedActors = function() { + return state.records.createdActors; +}; +const getDestroyedActors = function() { + return state.records.destroyedActors; +}; +const getActor = function(id) { + return state.records.actors[id]; +}; +const getActorKeys = function() { + return Object.keys(state.records.actors); +}; +const enableSequenceNumbers = function() { + state.records.sequenceNumbersEnabled = true; +}; +const disableSequenceNumbers = function() { + state.records.sequenceNumbersEnabled = false; +}; +const showSequenceNumbers = () => state.records.sequenceNumbersEnabled; +const setWrap = function(wrapSetting) { + state.records.wrapEnabled = wrapSetting; +}; +const autoWrap = () => { + if (state.records.wrapEnabled !== void 0) { + return state.records.wrapEnabled; + } + return getConfig().sequence.wrap; +}; +const clear = function() { + state.reset(); + clear$1(); +}; +const parseMessage = function(str) { + const _str = str.trim(); + const message = { + text: _str.replace(/^:?(?:no)?wrap:/, "").trim(), + wrap: _str.match(/^:?wrap:/) !== null ? true : _str.match(/^:?nowrap:/) !== null ? false : void 0 + }; + log.debug("parseMessage:", message); + return message; +}; +const parseBoxData = function(str) { + const match = str.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/); + let color = match != null && match[1] ? match[1].trim() : "transparent"; + let title = match != null && match[2] ? match[2].trim() : void 0; + if (window && window.CSS) { + if (!window.CSS.supports("color", color)) { + color = "transparent"; + title = str.trim(); + } + } else { + const style = new Option().style; + style.color = color; + if (style.color !== color) { + color = "transparent"; + title = str.trim(); + } + } + return { + color, + text: title !== void 0 ? sanitizeText(title.replace(/^:?(?:no)?wrap:/, ""), getConfig()) : void 0, + wrap: title !== void 0 ? title.match(/^:?wrap:/) !== null ? true : title.match(/^:?nowrap:/) !== null ? false : void 0 : void 0 + }; +}; +const LINETYPE = { + SOLID: 0, + DOTTED: 1, + NOTE: 2, + SOLID_CROSS: 3, + DOTTED_CROSS: 4, + SOLID_OPEN: 5, + DOTTED_OPEN: 6, + LOOP_START: 10, + LOOP_END: 11, + ALT_START: 12, + ALT_ELSE: 13, + ALT_END: 14, + OPT_START: 15, + OPT_END: 16, + ACTIVE_START: 17, + ACTIVE_END: 18, + PAR_START: 19, + PAR_AND: 20, + PAR_END: 21, + RECT_START: 22, + RECT_END: 23, + SOLID_POINT: 24, + DOTTED_POINT: 25, + AUTONUMBER: 26, + CRITICAL_START: 27, + CRITICAL_OPTION: 28, + CRITICAL_END: 29, + BREAK_START: 30, + BREAK_END: 31, + PAR_OVER_START: 32 +}; +const ARROWTYPE = { + FILLED: 0, + OPEN: 1 +}; +const PLACEMENT = { + LEFTOF: 0, + RIGHTOF: 1, + OVER: 2 +}; +const addNote = function(actor, placement, message) { + const note = { + actor, + placement, + message: message.text, + wrap: message.wrap === void 0 && autoWrap() || !!message.wrap + }; + const actors = [].concat(actor, actor); + state.records.notes.push(note); + state.records.messages.push({ + from: actors[0], + to: actors[1], + message: message.text, + wrap: message.wrap === void 0 && autoWrap() || !!message.wrap, + type: LINETYPE.NOTE, + placement + }); +}; +const addLinks = function(actorId, text) { + const actor = getActor(actorId); + try { + let sanitizedText = sanitizeText(text.text, getConfig()); + sanitizedText = sanitizedText.replace(/&/g, "&"); + sanitizedText = sanitizedText.replace(/=/g, "="); + const links = JSON.parse(sanitizedText); + insertLinks(actor, links); + } catch (e) { + log.error("error while parsing actor link text", e); + } +}; +const addALink = function(actorId, text) { + const actor = getActor(actorId); + try { + const links = {}; + let sanitizedText = sanitizeText(text.text, getConfig()); + var sep = sanitizedText.indexOf("@"); + sanitizedText = sanitizedText.replace(/&/g, "&"); + sanitizedText = sanitizedText.replace(/=/g, "="); + var label = sanitizedText.slice(0, sep - 1).trim(); + var link = sanitizedText.slice(sep + 1).trim(); + links[label] = link; + insertLinks(actor, links); + } catch (e) { + log.error("error while parsing actor link text", e); + } +}; +function insertLinks(actor, links) { + if (actor.links == null) { + actor.links = links; + } else { + for (let key in links) { + actor.links[key] = links[key]; + } + } +} +const addProperties = function(actorId, text) { + const actor = getActor(actorId); + try { + let sanitizedText = sanitizeText(text.text, getConfig()); + const properties = JSON.parse(sanitizedText); + insertProperties(actor, properties); + } catch (e) { + log.error("error while parsing actor properties text", e); + } +}; +function insertProperties(actor, properties) { + if (actor.properties == null) { + actor.properties = properties; + } else { + for (let key in properties) { + actor.properties[key] = properties[key]; + } + } +} +function boxEnd() { + state.records.currentBox = void 0; +} +const addDetails = function(actorId, text) { + const actor = getActor(actorId); + const elem = document.getElementById(text.text); + try { + const text2 = elem.innerHTML; + const details = JSON.parse(text2); + if (details["properties"]) { + insertProperties(actor, details["properties"]); + } + if (details["links"]) { + insertLinks(actor, details["links"]); + } + } catch (e) { + log.error("error while parsing actor details text", e); + } +}; +const getActorProperty = function(actor, key) { + if (actor !== void 0 && actor.properties !== void 0) { + return actor.properties[key]; + } + return void 0; +}; +const apply = function(param) { + if (Array.isArray(param)) { + param.forEach(function(item) { + apply(item); + }); + } else { + switch (param.type) { + case "sequenceIndex": + state.records.messages.push({ + from: void 0, + to: void 0, + message: { + start: param.sequenceIndex, + step: param.sequenceIndexStep, + visible: param.sequenceVisible + }, + wrap: false, + type: param.signalType + }); + break; + case "addParticipant": + addActor(param.actor, param.actor, param.description, param.draw); + break; + case "createParticipant": + if (state.records.actors[param.actor]) { + throw new Error( + "It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior" + ); + } + state.records.lastCreated = param.actor; + addActor(param.actor, param.actor, param.description, param.draw); + state.records.createdActors[param.actor] = state.records.messages.length; + break; + case "destroyParticipant": + state.records.lastDestroyed = param.actor; + state.records.destroyedActors[param.actor] = state.records.messages.length; + break; + case "activeStart": + addSignal(param.actor, void 0, void 0, param.signalType); + break; + case "activeEnd": + addSignal(param.actor, void 0, void 0, param.signalType); + break; + case "addNote": + addNote(param.actor, param.placement, param.text); + break; + case "addLinks": + addLinks(param.actor, param.text); + break; + case "addALink": + addALink(param.actor, param.text); + break; + case "addProperties": + addProperties(param.actor, param.text); + break; + case "addDetails": + addDetails(param.actor, param.text); + break; + case "addMessage": + if (state.records.lastCreated) { + if (param.to !== state.records.lastCreated) { + throw new Error( + "The created participant " + state.records.lastCreated + " does not have an associated creating message after its declaration. Please check the sequence diagram." + ); + } else { + state.records.lastCreated = void 0; + } + } else if (state.records.lastDestroyed) { + if (param.to !== state.records.lastDestroyed && param.from !== state.records.lastDestroyed) { + throw new Error( + "The destroyed participant " + state.records.lastDestroyed + " does not have an associated destroying message after its declaration. Please check the sequence diagram." + ); + } else { + state.records.lastDestroyed = void 0; + } + } + addSignal(param.from, param.to, param.msg, param.signalType, param.activate); + break; + case "boxStart": + addBox(param.boxData); + break; + case "boxEnd": + boxEnd(); + break; + case "loopStart": + addSignal(void 0, void 0, param.loopText, param.signalType); + break; + case "loopEnd": + addSignal(void 0, void 0, void 0, param.signalType); + break; + case "rectStart": + addSignal(void 0, void 0, param.color, param.signalType); + break; + case "rectEnd": + addSignal(void 0, void 0, void 0, param.signalType); + break; + case "optStart": + addSignal(void 0, void 0, param.optText, param.signalType); + break; + case "optEnd": + addSignal(void 0, void 0, void 0, param.signalType); + break; + case "altStart": + addSignal(void 0, void 0, param.altText, param.signalType); + break; + case "else": + addSignal(void 0, void 0, param.altText, param.signalType); + break; + case "altEnd": + addSignal(void 0, void 0, void 0, param.signalType); + break; + case "setAccTitle": + setAccTitle(param.text); + break; + case "parStart": + addSignal(void 0, void 0, param.parText, param.signalType); + break; + case "and": + addSignal(void 0, void 0, param.parText, param.signalType); + break; + case "parEnd": + addSignal(void 0, void 0, void 0, param.signalType); + break; + case "criticalStart": + addSignal(void 0, void 0, param.criticalText, param.signalType); + break; + case "option": + addSignal(void 0, void 0, param.optionText, param.signalType); + break; + case "criticalEnd": + addSignal(void 0, void 0, void 0, param.signalType); + break; + case "breakStart": + addSignal(void 0, void 0, param.breakText, param.signalType); + break; + case "breakEnd": + addSignal(void 0, void 0, void 0, param.signalType); + break; + } + } +}; +const db = { + addActor, + addMessage, + addSignal, + addLinks, + addDetails, + addProperties, + autoWrap, + setWrap, + enableSequenceNumbers, + disableSequenceNumbers, + showSequenceNumbers, + getMessages, + getActors, + getCreatedActors, + getDestroyedActors, + getActor, + getActorKeys, + getActorProperty, + getAccTitle, + getBoxes, + getDiagramTitle, + setDiagramTitle, + getConfig: () => getConfig().sequence, + clear, + parseMessage, + parseBoxData, + LINETYPE, + ARROWTYPE, + PLACEMENT, + addNote, + setAccTitle, + apply, + setAccDescription, + getAccDescription, + hasAtLeastOneBox, + hasAtLeastOneBoxWithTitle +}; +const getStyles = (options) => `.actor { + stroke: ${options.actorBorder}; + fill: ${options.actorBkg}; + } + + text.actor > tspan { + fill: ${options.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${options.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${options.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${options.signalColor}; + } + + #arrowhead path { + fill: ${options.signalColor}; + stroke: ${options.signalColor}; + } + + .sequenceNumber { + fill: ${options.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${options.signalColor}; + } + + #crosshead path { + fill: ${options.signalColor}; + stroke: ${options.signalColor}; + } + + .messageText { + fill: ${options.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${options.labelBoxBorderColor}; + fill: ${options.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${options.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${options.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${options.labelBoxBorderColor}; + fill: ${options.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${options.noteBorderColor}; + fill: ${options.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${options.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${options.activationBkgColor}; + stroke: ${options.activationBorderColor}; + } + + .activation1 { + fill: ${options.activationBkgColor}; + stroke: ${options.activationBorderColor}; + } + + .activation2 { + fill: ${options.activationBkgColor}; + stroke: ${options.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${options.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${options.actorBorder}; + fill: ${options.actorBkg}; + } + .actor-man circle, line { + stroke: ${options.actorBorder}; + fill: ${options.actorBkg}; + stroke-width: 2px; + } +`; +const styles = getStyles; +const ACTOR_TYPE_WIDTH = 18 * 2; +const TOP_ACTOR_CLASS = "actor-top"; +const BOTTOM_ACTOR_CLASS = "actor-bottom"; +const drawRect = function(elem, rectData) { + return drawRect$1(elem, rectData); +}; +const drawPopup = function(elem, actor, minMenuWidth, textAttrs, forceMenus) { + if (actor.links === void 0 || actor.links === null || Object.keys(actor.links).length === 0) { + return { height: 0, width: 0 }; + } + const links = actor.links; + const actorCnt2 = actor.actorCnt; + const rectData = actor.rectData; + var displayValue = "none"; + if (forceMenus) { + displayValue = "block !important"; + } + const g = elem.append("g"); + g.attr("id", "actor" + actorCnt2 + "_popup"); + g.attr("class", "actorPopupMenu"); + g.attr("display", displayValue); + var actorClass = ""; + if (rectData.class !== void 0) { + actorClass = " " + rectData.class; + } + let menuWidth = rectData.width > minMenuWidth ? rectData.width : minMenuWidth; + const rectElem = g.append("rect"); + rectElem.attr("class", "actorPopupMenuPanel" + actorClass); + rectElem.attr("x", rectData.x); + rectElem.attr("y", rectData.height); + rectElem.attr("fill", rectData.fill); + rectElem.attr("stroke", rectData.stroke); + rectElem.attr("width", menuWidth); + rectElem.attr("height", rectData.height); + rectElem.attr("rx", rectData.rx); + rectElem.attr("ry", rectData.ry); + if (links != null) { + var linkY = 20; + for (let key in links) { + var linkElem = g.append("a"); + var sanitizedLink = sanitizeUrl(links[key]); + linkElem.attr("xlink:href", sanitizedLink); + linkElem.attr("target", "_blank"); + _drawMenuItemTextCandidateFunc(textAttrs)( + key, + linkElem, + rectData.x + 10, + rectData.height + linkY, + menuWidth, + 20, + { class: "actor" }, + textAttrs + ); + linkY += 30; + } + } + rectElem.attr("height", linkY); + return { height: rectData.height + linkY, width: menuWidth }; +}; +const popupMenuToggle = function(popId) { + return "var pu = document.getElementById('" + popId + "'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"; +}; +const drawKatex = async function(elem, textData, msgModel = null) { + let textElem = elem.append("foreignObject"); + const lines = await renderKatex(textData.text, getConfig$1()); + const divElem = textElem.append("xhtml:div").attr("style", "width: fit-content;").attr("xmlns", "http://www.w3.org/1999/xhtml").html(lines); + const dim = divElem.node().getBoundingClientRect(); + textElem.attr("height", Math.round(dim.height)).attr("width", Math.round(dim.width)); + if (textData.class === "noteText") { + const rectElem = elem.node().firstChild; + rectElem.setAttribute("height", dim.height + 2 * textData.textMargin); + const rectDim = rectElem.getBBox(); + textElem.attr("x", Math.round(rectDim.x + rectDim.width / 2 - dim.width / 2)).attr("y", Math.round(rectDim.y + rectDim.height / 2 - dim.height / 2)); + } else if (msgModel) { + let { startx, stopx, starty } = msgModel; + if (startx > stopx) { + const temp = startx; + startx = stopx; + stopx = temp; + } + textElem.attr("x", Math.round(startx + Math.abs(startx - stopx) / 2 - dim.width / 2)); + if (textData.class === "loopText") { + textElem.attr("y", Math.round(starty)); + } else { + textElem.attr("y", Math.round(starty - dim.height)); + } + } + return [textElem]; +}; +const drawText = function(elem, textData) { + let prevTextHeight = 0; + let textHeight = 0; + const lines = textData.text.split(common.lineBreakRegex); + const [_textFontSize, _textFontSizePx] = parseFontSize(textData.fontSize); + let textElems = []; + let dy = 0; + let yfunc = () => textData.y; + if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) { + switch (textData.valign) { + case "top": + case "start": + yfunc = () => Math.round(textData.y + textData.textMargin); + break; + case "middle": + case "center": + yfunc = () => Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2); + break; + case "bottom": + case "end": + yfunc = () => Math.round( + textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin + ); + break; + } + } + if (textData.anchor !== void 0 && textData.textMargin !== void 0 && textData.width !== void 0) { + switch (textData.anchor) { + case "left": + case "start": + textData.x = Math.round(textData.x + textData.textMargin); + textData.anchor = "start"; + textData.dominantBaseline = "middle"; + textData.alignmentBaseline = "middle"; + break; + case "middle": + case "center": + textData.x = Math.round(textData.x + textData.width / 2); + textData.anchor = "middle"; + textData.dominantBaseline = "middle"; + textData.alignmentBaseline = "middle"; + break; + case "right": + case "end": + textData.x = Math.round(textData.x + textData.width - textData.textMargin); + textData.anchor = "end"; + textData.dominantBaseline = "middle"; + textData.alignmentBaseline = "middle"; + break; + } + } + for (let [i, line] of lines.entries()) { + if (textData.textMargin !== void 0 && textData.textMargin === 0 && _textFontSize !== void 0) { + dy = i * _textFontSize; + } + const textElem = elem.append("text"); + textElem.attr("x", textData.x); + textElem.attr("y", yfunc()); + if (textData.anchor !== void 0) { + textElem.attr("text-anchor", textData.anchor).attr("dominant-baseline", textData.dominantBaseline).attr("alignment-baseline", textData.alignmentBaseline); + } + if (textData.fontFamily !== void 0) { + textElem.style("font-family", textData.fontFamily); + } + if (_textFontSizePx !== void 0) { + textElem.style("font-size", _textFontSizePx); + } + if (textData.fontWeight !== void 0) { + textElem.style("font-weight", textData.fontWeight); + } + if (textData.fill !== void 0) { + textElem.attr("fill", textData.fill); + } + if (textData.class !== void 0) { + textElem.attr("class", textData.class); + } + if (textData.dy !== void 0) { + textElem.attr("dy", textData.dy); + } else if (dy !== 0) { + textElem.attr("dy", dy); + } + const text = line || ZERO_WIDTH_SPACE; + if (textData.tspan) { + const span = textElem.append("tspan"); + span.attr("x", textData.x); + if (textData.fill !== void 0) { + span.attr("fill", textData.fill); + } + span.text(text); + } else { + textElem.text(text); + } + if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) { + textHeight += (textElem._groups || textElem)[0][0].getBBox().height; + prevTextHeight = textHeight; + } + textElems.push(textElem); + } + return textElems; +}; +const drawLabel = function(elem, txtObject) { + function genPoints(x, y, width, height, cut) { + return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height); + } + const polygon = elem.append("polygon"); + polygon.attr("points", genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7)); + polygon.attr("class", "labelBox"); + txtObject.y = txtObject.y + txtObject.height / 2; + drawText(elem, txtObject); + return polygon; +}; +let actorCnt = -1; +const fixLifeLineHeights = (diagram2, actors, actorKeys, conf2) => { + if (!diagram2.select) { + return; + } + actorKeys.forEach((actorKey) => { + const actor = actors[actorKey]; + const actorDOM = diagram2.select("#actor" + actor.actorCnt); + if (!conf2.mirrorActors && actor.stopy) { + actorDOM.attr("y2", actor.stopy + actor.height / 2); + } else if (conf2.mirrorActors) { + actorDOM.attr("y2", actor.stopy); + } + }); +}; +const drawActorTypeParticipant = async function(elem, actor, conf2, isFooter) { + const actorY = isFooter ? actor.stopy : actor.starty; + const center = actor.x + actor.width / 2; + const centerY = actorY + 5; + const boxplusLineGroup = elem.append("g").lower(); + var g = boxplusLineGroup; + if (!isFooter) { + actorCnt++; + if (Object.keys(actor.links || {}).length && !conf2.forceMenus) { + g.attr("onclick", popupMenuToggle(`actor${actorCnt}_popup`)).attr("cursor", "pointer"); + } + g.append("line").attr("id", "actor" + actorCnt).attr("x1", center).attr("y1", centerY).attr("x2", center).attr("y2", 2e3).attr("class", "actor-line").attr("class", "200").attr("stroke-width", "0.5px").attr("stroke", "#999"); + g = boxplusLineGroup.append("g"); + actor.actorCnt = actorCnt; + if (actor.links != null) { + g.attr("id", "root-" + actorCnt); + } + } + const rect = getNoteRect$1(); + var cssclass = "actor"; + if (actor.properties != null && actor.properties["class"]) { + cssclass = actor.properties["class"]; + } else { + rect.fill = "#eaeaea"; + } + if (isFooter) { + cssclass += ` ${BOTTOM_ACTOR_CLASS}`; + } else { + cssclass += ` ${TOP_ACTOR_CLASS}`; + } + rect.x = actor.x; + rect.y = actorY; + rect.width = actor.width; + rect.height = actor.height; + rect.class = cssclass; + rect.rx = 3; + rect.ry = 3; + rect.name = actor.name; + const rectElem = drawRect(g, rect); + actor.rectData = rect; + if (actor.properties != null && actor.properties["icon"]) { + const iconSrc = actor.properties["icon"].trim(); + if (iconSrc.charAt(0) === "@") { + drawEmbeddedImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc.substr(1)); + } else { + drawImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc); + } + } + await _drawTextCandidateFunc(conf2, hasKatex(actor.description))( + actor.description, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: "actor" }, + conf2 + ); + let height = actor.height; + if (rectElem.node) { + const bounds2 = rectElem.node().getBBox(); + actor.height = bounds2.height; + height = bounds2.height; + } + return height; +}; +const drawActorTypeActor = async function(elem, actor, conf2, isFooter) { + const actorY = isFooter ? actor.stopy : actor.starty; + const center = actor.x + actor.width / 2; + const centerY = actorY + 80; + elem.lower(); + if (!isFooter) { + actorCnt++; + elem.append("line").attr("id", "actor" + actorCnt).attr("x1", center).attr("y1", centerY).attr("x2", center).attr("y2", 2e3).attr("class", "actor-line").attr("class", "200").attr("stroke-width", "0.5px").attr("stroke", "#999"); + actor.actorCnt = actorCnt; + } + const actElem = elem.append("g"); + let cssClass = "actor-man"; + if (isFooter) { + cssClass += ` ${BOTTOM_ACTOR_CLASS}`; + } else { + cssClass += ` ${TOP_ACTOR_CLASS}`; + } + actElem.attr("class", cssClass); + actElem.attr("name", actor.name); + const rect = getNoteRect$1(); + rect.x = actor.x; + rect.y = actorY; + rect.fill = "#eaeaea"; + rect.width = actor.width; + rect.height = actor.height; + rect.class = "actor"; + rect.rx = 3; + rect.ry = 3; + actElem.append("line").attr("id", "actor-man-torso" + actorCnt).attr("x1", center).attr("y1", actorY + 25).attr("x2", center).attr("y2", actorY + 45); + actElem.append("line").attr("id", "actor-man-arms" + actorCnt).attr("x1", center - ACTOR_TYPE_WIDTH / 2).attr("y1", actorY + 33).attr("x2", center + ACTOR_TYPE_WIDTH / 2).attr("y2", actorY + 33); + actElem.append("line").attr("x1", center - ACTOR_TYPE_WIDTH / 2).attr("y1", actorY + 60).attr("x2", center).attr("y2", actorY + 45); + actElem.append("line").attr("x1", center).attr("y1", actorY + 45).attr("x2", center + ACTOR_TYPE_WIDTH / 2 - 2).attr("y2", actorY + 60); + const circle = actElem.append("circle"); + circle.attr("cx", actor.x + actor.width / 2); + circle.attr("cy", actorY + 10); + circle.attr("r", 15); + circle.attr("width", actor.width); + circle.attr("height", actor.height); + const bounds2 = actElem.node().getBBox(); + actor.height = bounds2.height; + await _drawTextCandidateFunc(conf2, hasKatex(actor.description))( + actor.description, + actElem, + rect.x, + rect.y + 35, + rect.width, + rect.height, + { class: "actor" }, + conf2 + ); + return actor.height; +}; +const drawActor = async function(elem, actor, conf2, isFooter) { + switch (actor.type) { + case "actor": + return await drawActorTypeActor(elem, actor, conf2, isFooter); + case "participant": + return await drawActorTypeParticipant(elem, actor, conf2, isFooter); + } +}; +const drawBox = async function(elem, box, conf2) { + const boxplusTextGroup = elem.append("g"); + const g = boxplusTextGroup; + drawBackgroundRect(g, box); + if (box.name) { + await _drawTextCandidateFunc(conf2)( + box.name, + g, + box.x, + box.y + (box.textMaxHeight || 0) / 2, + box.width, + 0, + { class: "text" }, + conf2 + ); + } + g.lower(); +}; +const anchorElement = function(elem) { + return elem.append("g"); +}; +const drawActivation = function(elem, bounds2, verticalPos, conf2, actorActivations2) { + const rect = getNoteRect$1(); + const g = bounds2.anchored; + rect.x = bounds2.startx; + rect.y = bounds2.starty; + rect.class = "activation" + actorActivations2 % 3; + rect.width = bounds2.stopx - bounds2.startx; + rect.height = verticalPos - bounds2.starty; + drawRect(g, rect); +}; +const drawLoop = async function(elem, loopModel, labelText, conf2) { + const { + boxMargin, + boxTextMargin, + labelBoxHeight, + labelBoxWidth, + messageFontFamily: fontFamily, + messageFontSize: fontSize, + messageFontWeight: fontWeight + } = conf2; + const g = elem.append("g"); + const drawLoopLine = function(startx, starty, stopx, stopy) { + return g.append("line").attr("x1", startx).attr("y1", starty).attr("x2", stopx).attr("y2", stopy).attr("class", "loopLine"); + }; + drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty); + drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy); + drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy); + drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy); + if (loopModel.sections !== void 0) { + loopModel.sections.forEach(function(item) { + drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style( + "stroke-dasharray", + "3, 3" + ); + }); + } + let txt = getTextObj$1(); + txt.text = labelText; + txt.x = loopModel.startx; + txt.y = loopModel.starty; + txt.fontFamily = fontFamily; + txt.fontSize = fontSize; + txt.fontWeight = fontWeight; + txt.anchor = "middle"; + txt.valign = "middle"; + txt.tspan = false; + txt.width = labelBoxWidth || 50; + txt.height = labelBoxHeight || 20; + txt.textMargin = boxTextMargin; + txt.class = "labelText"; + drawLabel(g, txt); + txt = getTextObj(); + txt.text = loopModel.title; + txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2; + txt.y = loopModel.starty + boxMargin + boxTextMargin; + txt.anchor = "middle"; + txt.valign = "middle"; + txt.textMargin = boxTextMargin; + txt.class = "loopText"; + txt.fontFamily = fontFamily; + txt.fontSize = fontSize; + txt.fontWeight = fontWeight; + txt.wrap = true; + let textElem = hasKatex(txt.text) ? await drawKatex(g, txt, loopModel) : drawText(g, txt); + if (loopModel.sectionTitles !== void 0) { + for (const [idx, item] of Object.entries(loopModel.sectionTitles)) { + if (item.message) { + txt.text = item.message; + txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2; + txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin; + txt.class = "loopText"; + txt.anchor = "middle"; + txt.valign = "middle"; + txt.tspan = false; + txt.fontFamily = fontFamily; + txt.fontSize = fontSize; + txt.fontWeight = fontWeight; + txt.wrap = loopModel.wrap; + if (hasKatex(txt.text)) { + loopModel.starty = loopModel.sections[idx].y; + await drawKatex(g, txt, loopModel); + } else { + drawText(g, txt); + } + let sectionHeight = Math.round( + textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr) + ); + loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin); + } + } + } + loopModel.height = Math.round(loopModel.stopy - loopModel.starty); + return g; +}; +const drawBackgroundRect = function(elem, bounds2) { + drawBackgroundRect$1(elem, bounds2); +}; +const insertDatabaseIcon = function(elem) { + elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr( + "d", + "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z" + ); +}; +const insertComputerIcon = function(elem) { + elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( + "d", + "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z" + ); +}; +const insertClockIcon = function(elem) { + elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( + "d", + "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z" + ); +}; +const insertArrowHead = function(elem) { + elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 7.9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z"); +}; +const insertArrowFilledHead = function(elem) { + elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 15.5).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); +}; +const insertSequenceNumber = function(elem) { + elem.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6); +}; +const insertArrowCrossHead = function(elem) { + const defs = elem.append("defs"); + const marker = defs.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 4).attr("refY", 4.5); + marker.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1pt").attr("d", "M 1,2 L 6,7 M 6,2 L 1,7"); +}; +const getTextObj = function() { + return { + x: 0, + y: 0, + fill: void 0, + anchor: void 0, + style: "#666", + width: void 0, + height: void 0, + textMargin: 0, + rx: 0, + ry: 0, + tspan: true, + valign: void 0 + }; +}; +const getNoteRect = function() { + return { + x: 0, + y: 0, + fill: "#EDF2AE", + stroke: "#666", + width: 100, + anchor: "start", + height: 100, + rx: 0, + ry: 0 + }; +}; +const _drawTextCandidateFunc = function() { + function byText(content, g, x, y, width, height, textAttrs) { + const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("text-anchor", "middle").text(content); + _setTextAttrs(text, textAttrs); + } + function byTspan(content, g, x, y, width, height, textAttrs, conf2) { + const { actorFontSize, actorFontFamily, actorFontWeight } = conf2; + const [_actorFontSize, _actorFontSizePx] = parseFontSize(actorFontSize); + const lines = content.split(common.lineBreakRegex); + for (let i = 0; i < lines.length; i++) { + const dy = i * _actorFontSize - _actorFontSize * (lines.length - 1) / 2; + const text = g.append("text").attr("x", x + width / 2).attr("y", y).style("text-anchor", "middle").style("font-size", _actorFontSizePx).style("font-weight", actorFontWeight).style("font-family", actorFontFamily); + text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]); + text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"); + _setTextAttrs(text, textAttrs); + } + } + function byFo(content, g, x, y, width, height, textAttrs, conf2) { + const s = g.append("switch"); + const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height); + const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); + byTspan(content, s, x, y, width, height, textAttrs, conf2); + _setTextAttrs(text, textAttrs); + } + async function byKatex(content, g, x, y, width, height, textAttrs, conf2) { + const dim = await calculateMathMLDimensions(content, getConfig$1()); + const s = g.append("switch"); + const f = s.append("foreignObject").attr("x", x + width / 2 - dim.width / 2).attr("y", y + height / 2 - dim.height / 2).attr("width", dim.width).attr("height", dim.height); + const text = f.append("xhtml:div").style("height", "100%").style("width", "100%"); + text.append("div").style("text-align", "center").style("vertical-align", "middle").html(await renderKatex(content, getConfig$1())); + byTspan(content, s, x, y, width, height, textAttrs, conf2); + _setTextAttrs(text, textAttrs); + } + function _setTextAttrs(toText, fromTextAttrsDict) { + for (const key in fromTextAttrsDict) { + if (fromTextAttrsDict.hasOwnProperty(key)) { + toText.attr(key, fromTextAttrsDict[key]); + } + } + } + return function(conf2, hasKatex2 = false) { + if (hasKatex2) { + return byKatex; + } + return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan; + }; +}(); +const _drawMenuItemTextCandidateFunc = function() { + function byText(content, g, x, y, width, height, textAttrs) { + const text = g.append("text").attr("x", x).attr("y", y).style("text-anchor", "start").text(content); + _setTextAttrs(text, textAttrs); + } + function byTspan(content, g, x, y, width, height, textAttrs, conf2) { + const { actorFontSize, actorFontFamily, actorFontWeight } = conf2; + const lines = content.split(common.lineBreakRegex); + for (let i = 0; i < lines.length; i++) { + const dy = i * actorFontSize - actorFontSize * (lines.length - 1) / 2; + const text = g.append("text").attr("x", x).attr("y", y).style("text-anchor", "start").style("font-size", actorFontSize).style("font-weight", actorFontWeight).style("font-family", actorFontFamily); + text.append("tspan").attr("x", x).attr("dy", dy).text(lines[i]); + text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"); + _setTextAttrs(text, textAttrs); + } + } + function byFo(content, g, x, y, width, height, textAttrs, conf2) { + const s = g.append("switch"); + const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height); + const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); + byTspan(content, s, x, y, width, height, textAttrs, conf2); + _setTextAttrs(text, textAttrs); + } + function _setTextAttrs(toText, fromTextAttrsDict) { + for (const key in fromTextAttrsDict) { + if (fromTextAttrsDict.hasOwnProperty(key)) { + toText.attr(key, fromTextAttrsDict[key]); + } + } + } + return function(conf2) { + return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan; + }; +}(); +const svgDraw = { + drawRect, + drawText, + drawLabel, + drawActor, + drawBox, + drawPopup, + anchorElement, + drawActivation, + drawLoop, + drawBackgroundRect, + insertArrowHead, + insertArrowFilledHead, + insertSequenceNumber, + insertArrowCrossHead, + insertDatabaseIcon, + insertComputerIcon, + insertClockIcon, + getTextObj, + getNoteRect, + fixLifeLineHeights, + sanitizeUrl +}; +let conf = {}; +const bounds = { + data: { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0 + }, + verticalPos: 0, + sequenceItems: [], + activations: [], + models: { + getHeight: function() { + return Math.max.apply( + null, + this.actors.length === 0 ? [0] : this.actors.map((actor) => actor.height || 0) + ) + (this.loops.length === 0 ? 0 : this.loops.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.messages.length === 0 ? 0 : this.messages.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.notes.length === 0 ? 0 : this.notes.map((it) => it.height || 0).reduce((acc, h) => acc + h)); + }, + clear: function() { + this.actors = []; + this.boxes = []; + this.loops = []; + this.messages = []; + this.notes = []; + }, + addBox: function(boxModel) { + this.boxes.push(boxModel); + }, + addActor: function(actorModel) { + this.actors.push(actorModel); + }, + addLoop: function(loopModel) { + this.loops.push(loopModel); + }, + addMessage: function(msgModel) { + this.messages.push(msgModel); + }, + addNote: function(noteModel) { + this.notes.push(noteModel); + }, + lastActor: function() { + return this.actors[this.actors.length - 1]; + }, + lastLoop: function() { + return this.loops[this.loops.length - 1]; + }, + lastMessage: function() { + return this.messages[this.messages.length - 1]; + }, + lastNote: function() { + return this.notes[this.notes.length - 1]; + }, + actors: [], + boxes: [], + loops: [], + messages: [], + notes: [] + }, + init: function() { + this.sequenceItems = []; + this.activations = []; + this.models.clear(); + this.data = { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0 + }; + this.verticalPos = 0; + setConf(getConfig()); + }, + updateVal: function(obj, key, val, fun) { + if (obj[key] === void 0) { + obj[key] = val; + } else { + obj[key] = fun(val, obj[key]); + } + }, + updateBounds: function(startx, starty, stopx, stopy) { + const _self = this; + let cnt = 0; + function updateFn(type) { + return function updateItemBounds(item) { + cnt++; + const n = _self.sequenceItems.length - cnt + 1; + _self.updateVal(item, "starty", starty - n * conf.boxMargin, Math.min); + _self.updateVal(item, "stopy", stopy + n * conf.boxMargin, Math.max); + _self.updateVal(bounds.data, "startx", startx - n * conf.boxMargin, Math.min); + _self.updateVal(bounds.data, "stopx", stopx + n * conf.boxMargin, Math.max); + if (!(type === "activation")) { + _self.updateVal(item, "startx", startx - n * conf.boxMargin, Math.min); + _self.updateVal(item, "stopx", stopx + n * conf.boxMargin, Math.max); + _self.updateVal(bounds.data, "starty", starty - n * conf.boxMargin, Math.min); + _self.updateVal(bounds.data, "stopy", stopy + n * conf.boxMargin, Math.max); + } + }; + } + this.sequenceItems.forEach(updateFn()); + this.activations.forEach(updateFn("activation")); + }, + insert: function(startx, starty, stopx, stopy) { + const _startx = common.getMin(startx, stopx); + const _stopx = common.getMax(startx, stopx); + const _starty = common.getMin(starty, stopy); + const _stopy = common.getMax(starty, stopy); + this.updateVal(bounds.data, "startx", _startx, Math.min); + this.updateVal(bounds.data, "starty", _starty, Math.min); + this.updateVal(bounds.data, "stopx", _stopx, Math.max); + this.updateVal(bounds.data, "stopy", _stopy, Math.max); + this.updateBounds(_startx, _starty, _stopx, _stopy); + }, + newActivation: function(message, diagram2, actors) { + const actorRect = actors[message.from.actor]; + const stackedSize = actorActivations(message.from.actor).length || 0; + const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2; + this.activations.push({ + startx: x, + starty: this.verticalPos + 2, + stopx: x + conf.activationWidth, + stopy: void 0, + actor: message.from.actor, + anchored: svgDraw.anchorElement(diagram2) + }); + }, + endActivation: function(message) { + const lastActorActivationIdx = this.activations.map(function(activation) { + return activation.actor; + }).lastIndexOf(message.from.actor); + return this.activations.splice(lastActorActivationIdx, 1)[0]; + }, + createLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) { + return { + startx: void 0, + starty: this.verticalPos, + stopx: void 0, + stopy: void 0, + title: title.message, + wrap: title.wrap, + width: title.width, + height: 0, + fill + }; + }, + newLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) { + this.sequenceItems.push(this.createLoop(title, fill)); + }, + endLoop: function() { + return this.sequenceItems.pop(); + }, + isLoopOverlap: function() { + return this.sequenceItems.length ? this.sequenceItems[this.sequenceItems.length - 1].overlap : false; + }, + addSectionToLoop: function(message) { + const loop = this.sequenceItems.pop(); + loop.sections = loop.sections || []; + loop.sectionTitles = loop.sectionTitles || []; + loop.sections.push({ y: bounds.getVerticalPos(), height: 0 }); + loop.sectionTitles.push(message); + this.sequenceItems.push(loop); + }, + saveVerticalPos: function() { + if (this.isLoopOverlap()) { + this.savedVerticalPos = this.verticalPos; + } + }, + resetVerticalPos: function() { + if (this.isLoopOverlap()) { + this.verticalPos = this.savedVerticalPos; + } + }, + bumpVerticalPos: function(bump) { + this.verticalPos = this.verticalPos + bump; + this.data.stopy = common.getMax(this.data.stopy, this.verticalPos); + }, + getVerticalPos: function() { + return this.verticalPos; + }, + getBounds: function() { + return { bounds: this.data, models: this.models }; + } +}; +const drawNote = async function(elem, noteModel) { + bounds.bumpVerticalPos(conf.boxMargin); + noteModel.height = conf.boxMargin; + noteModel.starty = bounds.getVerticalPos(); + const rect = getNoteRect$1(); + rect.x = noteModel.startx; + rect.y = noteModel.starty; + rect.width = noteModel.width || conf.width; + rect.class = "note"; + const g = elem.append("g"); + const rectElem = svgDraw.drawRect(g, rect); + const textObj = getTextObj$1(); + textObj.x = noteModel.startx; + textObj.y = noteModel.starty; + textObj.width = rect.width; + textObj.dy = "1em"; + textObj.text = noteModel.message; + textObj.class = "noteText"; + textObj.fontFamily = conf.noteFontFamily; + textObj.fontSize = conf.noteFontSize; + textObj.fontWeight = conf.noteFontWeight; + textObj.anchor = conf.noteAlign; + textObj.textMargin = conf.noteMargin; + textObj.valign = "center"; + const textElem = hasKatex(textObj.text) ? await drawKatex(g, textObj) : drawText(g, textObj); + const textHeight = Math.round( + textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr) + ); + rectElem.attr("height", textHeight + 2 * conf.noteMargin); + noteModel.height += textHeight + 2 * conf.noteMargin; + bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin); + noteModel.stopy = noteModel.starty + textHeight + 2 * conf.noteMargin; + noteModel.stopx = noteModel.startx + rect.width; + bounds.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy); + bounds.models.addNote(noteModel); +}; +const messageFont = (cnf) => { + return { + fontFamily: cnf.messageFontFamily, + fontSize: cnf.messageFontSize, + fontWeight: cnf.messageFontWeight + }; +}; +const noteFont = (cnf) => { + return { + fontFamily: cnf.noteFontFamily, + fontSize: cnf.noteFontSize, + fontWeight: cnf.noteFontWeight + }; +}; +const actorFont = (cnf) => { + return { + fontFamily: cnf.actorFontFamily, + fontSize: cnf.actorFontSize, + fontWeight: cnf.actorFontWeight + }; +}; +async function boundMessage(_diagram, msgModel) { + bounds.bumpVerticalPos(10); + const { startx, stopx, message } = msgModel; + const lines = common.splitBreaks(message).length; + const isKatexMsg = hasKatex(message); + const textDims = isKatexMsg ? await calculateMathMLDimensions(message, getConfig()) : utils.calculateTextDimensions(message, messageFont(conf)); + if (!isKatexMsg) { + const lineHeight = textDims.height / lines; + msgModel.height += lineHeight; + bounds.bumpVerticalPos(lineHeight); + } + let lineStartY; + let totalOffset = textDims.height - 10; + const textWidth = textDims.width; + if (startx === stopx) { + lineStartY = bounds.getVerticalPos() + totalOffset; + if (!conf.rightAngles) { + totalOffset += conf.boxMargin; + lineStartY = bounds.getVerticalPos() + totalOffset; + } + totalOffset += 30; + const dx = common.getMax(textWidth / 2, conf.width / 2); + bounds.insert( + startx - dx, + bounds.getVerticalPos() - 10 + totalOffset, + stopx + dx, + bounds.getVerticalPos() + 30 + totalOffset + ); + } else { + totalOffset += conf.boxMargin; + lineStartY = bounds.getVerticalPos() + totalOffset; + bounds.insert(startx, lineStartY - 10, stopx, lineStartY); + } + bounds.bumpVerticalPos(totalOffset); + msgModel.height += totalOffset; + msgModel.stopy = msgModel.starty + msgModel.height; + bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy); + return lineStartY; +} +const drawMessage = async function(diagram2, msgModel, lineStartY, diagObj) { + const { startx, stopx, starty, message, type, sequenceIndex, sequenceVisible } = msgModel; + const textDims = utils.calculateTextDimensions(message, messageFont(conf)); + const textObj = getTextObj$1(); + textObj.x = startx; + textObj.y = starty + 10; + textObj.width = stopx - startx; + textObj.class = "messageText"; + textObj.dy = "1em"; + textObj.text = message; + textObj.fontFamily = conf.messageFontFamily; + textObj.fontSize = conf.messageFontSize; + textObj.fontWeight = conf.messageFontWeight; + textObj.anchor = conf.messageAlign; + textObj.valign = "center"; + textObj.textMargin = conf.wrapPadding; + textObj.tspan = false; + hasKatex(textObj.text) ? await drawKatex(diagram2, textObj, { startx, stopx, starty: lineStartY }) : drawText(diagram2, textObj); + const textWidth = textDims.width; + let line; + if (startx === stopx) { + if (conf.rightAngles) { + line = diagram2.append("path").attr( + "d", + `M ${startx},${lineStartY} H ${startx + common.getMax(conf.width / 2, textWidth / 2)} V ${lineStartY + 25} H ${startx}` + ); + } else { + line = diagram2.append("path").attr( + "d", + "M " + startx + "," + lineStartY + " C " + (startx + 60) + "," + (lineStartY - 10) + " " + (startx + 60) + "," + (lineStartY + 30) + " " + startx + "," + (lineStartY + 20) + ); + } + } else { + line = diagram2.append("line"); + line.attr("x1", startx); + line.attr("y1", lineStartY); + line.attr("x2", stopx); + line.attr("y2", lineStartY); + } + if (type === diagObj.db.LINETYPE.DOTTED || type === diagObj.db.LINETYPE.DOTTED_CROSS || type === diagObj.db.LINETYPE.DOTTED_POINT || type === diagObj.db.LINETYPE.DOTTED_OPEN) { + line.style("stroke-dasharray", "3, 3"); + line.attr("class", "messageLine1"); + } else { + line.attr("class", "messageLine0"); + } + let url = ""; + if (conf.arrowMarkerAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); + } + line.attr("stroke-width", 2); + line.attr("stroke", "none"); + line.style("fill", "none"); + if (type === diagObj.db.LINETYPE.SOLID || type === diagObj.db.LINETYPE.DOTTED) { + line.attr("marker-end", "url(" + url + "#arrowhead)"); + } + if (type === diagObj.db.LINETYPE.SOLID_POINT || type === diagObj.db.LINETYPE.DOTTED_POINT) { + line.attr("marker-end", "url(" + url + "#filled-head)"); + } + if (type === diagObj.db.LINETYPE.SOLID_CROSS || type === diagObj.db.LINETYPE.DOTTED_CROSS) { + line.attr("marker-end", "url(" + url + "#crosshead)"); + } + if (sequenceVisible || conf.showSequenceNumbers) { + line.attr("marker-start", "url(" + url + "#sequencenumber)"); + diagram2.append("text").attr("x", startx).attr("y", lineStartY + 4).attr("font-family", "sans-serif").attr("font-size", "12px").attr("text-anchor", "middle").attr("class", "sequenceNumber").text(sequenceIndex); + } +}; +const addActorRenderingData = async function(diagram2, actors, createdActors, actorKeys, verticalPos, messages, isFooter) { + let prevWidth = 0; + let prevMargin = 0; + let prevBox = void 0; + let maxHeight = 0; + for (const actorKey of actorKeys) { + const actor = actors[actorKey]; + const box = actor.box; + if (prevBox && prevBox != box) { + if (!isFooter) { + bounds.models.addBox(prevBox); + } + prevMargin += conf.boxMargin + prevBox.margin; + } + if (box && box != prevBox) { + if (!isFooter) { + box.x = prevWidth + prevMargin; + box.y = verticalPos; + } + prevMargin += box.margin; + } + actor.width = actor.width || conf.width; + actor.height = common.getMax(actor.height || conf.height, conf.height); + actor.margin = actor.margin || conf.actorMargin; + maxHeight = common.getMax(maxHeight, actor.height); + if (createdActors[actor.name]) { + prevMargin += actor.width / 2; + } + actor.x = prevWidth + prevMargin; + actor.starty = bounds.getVerticalPos(); + bounds.insert(actor.x, verticalPos, actor.x + actor.width, actor.height); + prevWidth += actor.width + prevMargin; + if (actor.box) { + actor.box.width = prevWidth + box.margin - actor.box.x; + } + prevMargin = actor.margin; + prevBox = actor.box; + bounds.models.addActor(actor); + } + if (prevBox && !isFooter) { + bounds.models.addBox(prevBox); + } + bounds.bumpVerticalPos(maxHeight); +}; +const drawActors = async function(diagram2, actors, actorKeys, isFooter) { + if (!isFooter) { + for (const actorKey of actorKeys) { + const actor = actors[actorKey]; + await svgDraw.drawActor(diagram2, actor, conf, false); + } + } else { + let maxHeight = 0; + bounds.bumpVerticalPos(conf.boxMargin * 2); + for (const actorKey of actorKeys) { + const actor = actors[actorKey]; + if (!actor.stopy) { + actor.stopy = bounds.getVerticalPos(); + } + const height = await svgDraw.drawActor(diagram2, actor, conf, true); + maxHeight = common.getMax(maxHeight, height); + } + bounds.bumpVerticalPos(maxHeight + conf.boxMargin); + } +}; +const drawActorsPopup = function(diagram2, actors, actorKeys, doc) { + let maxHeight = 0; + let maxWidth = 0; + for (const actorKey of actorKeys) { + const actor = actors[actorKey]; + const minMenuWidth = getRequiredPopupWidth(actor); + const menuDimensions = svgDraw.drawPopup( + diagram2, + actor, + minMenuWidth, + conf, + conf.forceMenus, + doc + ); + if (menuDimensions.height > maxHeight) { + maxHeight = menuDimensions.height; + } + if (menuDimensions.width + actor.x > maxWidth) { + maxWidth = menuDimensions.width + actor.x; + } + } + return { maxHeight, maxWidth }; +}; +const setConf = function(cnf) { + assignWithDepth(conf, cnf); + if (cnf.fontFamily) { + conf.actorFontFamily = conf.noteFontFamily = conf.messageFontFamily = cnf.fontFamily; + } + if (cnf.fontSize) { + conf.actorFontSize = conf.noteFontSize = conf.messageFontSize = cnf.fontSize; + } + if (cnf.fontWeight) { + conf.actorFontWeight = conf.noteFontWeight = conf.messageFontWeight = cnf.fontWeight; + } +}; +const actorActivations = function(actor) { + return bounds.activations.filter(function(activation) { + return activation.actor === actor; + }); +}; +const activationBounds = function(actor, actors) { + const actorObj = actors[actor]; + const activations = actorActivations(actor); + const left = activations.reduce(function(acc, activation) { + return common.getMin(acc, activation.startx); + }, actorObj.x + actorObj.width / 2 - 1); + const right = activations.reduce(function(acc, activation) { + return common.getMax(acc, activation.stopx); + }, actorObj.x + actorObj.width / 2 + 1); + return [left, right]; +}; +function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) { + bounds.bumpVerticalPos(preMargin); + let heightAdjust = postMargin; + if (msg.id && msg.message && loopWidths[msg.id]) { + const loopWidth = loopWidths[msg.id].width; + const textConf = messageFont(conf); + msg.message = utils.wrapLabel(`[${msg.message}]`, loopWidth - 2 * conf.wrapPadding, textConf); + msg.width = loopWidth; + msg.wrap = true; + const textDims = utils.calculateTextDimensions(msg.message, textConf); + const totalOffset = common.getMax(textDims.height, conf.labelBoxHeight); + heightAdjust = postMargin + totalOffset; + log.debug(`${totalOffset} - ${msg.message}`); + } + addLoopFn(msg); + bounds.bumpVerticalPos(heightAdjust); +} +function adjustCreatedDestroyedData(msg, msgModel, lineStartY, index, actors, createdActors, destroyedActors) { + function receiverAdjustment(actor, adjustment) { + if (actor.x < actors[msg.from].x) { + bounds.insert( + msgModel.stopx - adjustment, + msgModel.starty, + msgModel.startx, + msgModel.stopy + actor.height / 2 + conf.noteMargin + ); + msgModel.stopx = msgModel.stopx + adjustment; + } else { + bounds.insert( + msgModel.startx, + msgModel.starty, + msgModel.stopx + adjustment, + msgModel.stopy + actor.height / 2 + conf.noteMargin + ); + msgModel.stopx = msgModel.stopx - adjustment; + } + } + function senderAdjustment(actor, adjustment) { + if (actor.x < actors[msg.to].x) { + bounds.insert( + msgModel.startx - adjustment, + msgModel.starty, + msgModel.stopx, + msgModel.stopy + actor.height / 2 + conf.noteMargin + ); + msgModel.startx = msgModel.startx + adjustment; + } else { + bounds.insert( + msgModel.stopx, + msgModel.starty, + msgModel.startx + adjustment, + msgModel.stopy + actor.height / 2 + conf.noteMargin + ); + msgModel.startx = msgModel.startx - adjustment; + } + } + if (createdActors[msg.to] == index) { + const actor = actors[msg.to]; + const adjustment = actor.type == "actor" ? ACTOR_TYPE_WIDTH / 2 + 3 : actor.width / 2 + 3; + receiverAdjustment(actor, adjustment); + actor.starty = lineStartY - actor.height / 2; + bounds.bumpVerticalPos(actor.height / 2); + } else if (destroyedActors[msg.from] == index) { + const actor = actors[msg.from]; + if (conf.mirrorActors) { + const adjustment = actor.type == "actor" ? ACTOR_TYPE_WIDTH / 2 : actor.width / 2; + senderAdjustment(actor, adjustment); + } + actor.stopy = lineStartY - actor.height / 2; + bounds.bumpVerticalPos(actor.height / 2); + } else if (destroyedActors[msg.to] == index) { + const actor = actors[msg.to]; + if (conf.mirrorActors) { + const adjustment = actor.type == "actor" ? ACTOR_TYPE_WIDTH / 2 + 3 : actor.width / 2 + 3; + receiverAdjustment(actor, adjustment); + } + actor.stopy = lineStartY - actor.height / 2; + bounds.bumpVerticalPos(actor.height / 2); + } +} +const draw = async function(_text, id, _version, diagObj) { + const { securityLevel, sequence } = getConfig(); + conf = sequence; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + bounds.init(); + log.debug(diagObj.db); + const diagram2 = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : select(`[id="${id}"]`); + const actors = diagObj.db.getActors(); + const createdActors = diagObj.db.getCreatedActors(); + const destroyedActors = diagObj.db.getDestroyedActors(); + const boxes = diagObj.db.getBoxes(); + let actorKeys = diagObj.db.getActorKeys(); + const messages = diagObj.db.getMessages(); + const title = diagObj.db.getDiagramTitle(); + const hasBoxes = diagObj.db.hasAtLeastOneBox(); + const hasBoxTitles = diagObj.db.hasAtLeastOneBoxWithTitle(); + const maxMessageWidthPerActor = await getMaxMessageWidthPerActor(actors, messages, diagObj); + conf.height = await calculateActorMargins(actors, maxMessageWidthPerActor, boxes); + svgDraw.insertComputerIcon(diagram2); + svgDraw.insertDatabaseIcon(diagram2); + svgDraw.insertClockIcon(diagram2); + if (hasBoxes) { + bounds.bumpVerticalPos(conf.boxMargin); + if (hasBoxTitles) { + bounds.bumpVerticalPos(boxes[0].textMaxHeight); + } + } + if (conf.hideUnusedParticipants === true) { + const newActors = /* @__PURE__ */ new Set(); + messages.forEach((message) => { + newActors.add(message.from); + newActors.add(message.to); + }); + actorKeys = actorKeys.filter((actorKey) => newActors.has(actorKey)); + } + await addActorRenderingData(diagram2, actors, createdActors, actorKeys, 0, messages, false); + const loopWidths = await calculateLoopBounds(messages, actors, maxMessageWidthPerActor, diagObj); + svgDraw.insertArrowHead(diagram2); + svgDraw.insertArrowCrossHead(diagram2); + svgDraw.insertArrowFilledHead(diagram2); + svgDraw.insertSequenceNumber(diagram2); + function activeEnd(msg, verticalPos) { + const activationData = bounds.endActivation(msg); + if (activationData.starty + 18 > verticalPos) { + activationData.starty = verticalPos - 6; + verticalPos += 12; + } + svgDraw.drawActivation( + diagram2, + activationData, + verticalPos, + conf, + actorActivations(msg.from.actor).length + ); + bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos); + } + let sequenceIndex = 1; + let sequenceIndexStep = 1; + const messagesToDraw = []; + const backgrounds = []; + let index = 0; + for (const msg of messages) { + let loopModel, noteModel, msgModel; + switch (msg.type) { + case diagObj.db.LINETYPE.NOTE: + bounds.resetVerticalPos(); + noteModel = msg.noteModel; + await drawNote(diagram2, noteModel); + break; + case diagObj.db.LINETYPE.ACTIVE_START: + bounds.newActivation(msg, diagram2, actors); + break; + case diagObj.db.LINETYPE.ACTIVE_END: + activeEnd(msg, bounds.getVerticalPos()); + break; + case diagObj.db.LINETYPE.LOOP_START: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin, + conf.boxMargin + conf.boxTextMargin, + (message) => bounds.newLoop(message) + ); + break; + case diagObj.db.LINETYPE.LOOP_END: + loopModel = bounds.endLoop(); + await svgDraw.drawLoop(diagram2, loopModel, "loop", conf); + bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); + bounds.models.addLoop(loopModel); + break; + case diagObj.db.LINETYPE.RECT_START: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin, + conf.boxMargin, + (message) => bounds.newLoop(void 0, message.message) + ); + break; + case diagObj.db.LINETYPE.RECT_END: + loopModel = bounds.endLoop(); + backgrounds.push(loopModel); + bounds.models.addLoop(loopModel); + bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); + break; + case diagObj.db.LINETYPE.OPT_START: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin, + conf.boxMargin + conf.boxTextMargin, + (message) => bounds.newLoop(message) + ); + break; + case diagObj.db.LINETYPE.OPT_END: + loopModel = bounds.endLoop(); + await svgDraw.drawLoop(diagram2, loopModel, "opt", conf); + bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); + bounds.models.addLoop(loopModel); + break; + case diagObj.db.LINETYPE.ALT_START: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin, + conf.boxMargin + conf.boxTextMargin, + (message) => bounds.newLoop(message) + ); + break; + case diagObj.db.LINETYPE.ALT_ELSE: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin + conf.boxTextMargin, + conf.boxMargin, + (message) => bounds.addSectionToLoop(message) + ); + break; + case diagObj.db.LINETYPE.ALT_END: + loopModel = bounds.endLoop(); + await svgDraw.drawLoop(diagram2, loopModel, "alt", conf); + bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); + bounds.models.addLoop(loopModel); + break; + case diagObj.db.LINETYPE.PAR_START: + case diagObj.db.LINETYPE.PAR_OVER_START: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin, + conf.boxMargin + conf.boxTextMargin, + (message) => bounds.newLoop(message) + ); + bounds.saveVerticalPos(); + break; + case diagObj.db.LINETYPE.PAR_AND: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin + conf.boxTextMargin, + conf.boxMargin, + (message) => bounds.addSectionToLoop(message) + ); + break; + case diagObj.db.LINETYPE.PAR_END: + loopModel = bounds.endLoop(); + await svgDraw.drawLoop(diagram2, loopModel, "par", conf); + bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); + bounds.models.addLoop(loopModel); + break; + case diagObj.db.LINETYPE.AUTONUMBER: + sequenceIndex = msg.message.start || sequenceIndex; + sequenceIndexStep = msg.message.step || sequenceIndexStep; + if (msg.message.visible) { + diagObj.db.enableSequenceNumbers(); + } else { + diagObj.db.disableSequenceNumbers(); + } + break; + case diagObj.db.LINETYPE.CRITICAL_START: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin, + conf.boxMargin + conf.boxTextMargin, + (message) => bounds.newLoop(message) + ); + break; + case diagObj.db.LINETYPE.CRITICAL_OPTION: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin + conf.boxTextMargin, + conf.boxMargin, + (message) => bounds.addSectionToLoop(message) + ); + break; + case diagObj.db.LINETYPE.CRITICAL_END: + loopModel = bounds.endLoop(); + await svgDraw.drawLoop(diagram2, loopModel, "critical", conf); + bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); + bounds.models.addLoop(loopModel); + break; + case diagObj.db.LINETYPE.BREAK_START: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin, + conf.boxMargin + conf.boxTextMargin, + (message) => bounds.newLoop(message) + ); + break; + case diagObj.db.LINETYPE.BREAK_END: + loopModel = bounds.endLoop(); + await svgDraw.drawLoop(diagram2, loopModel, "break", conf); + bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); + bounds.models.addLoop(loopModel); + break; + default: + try { + msgModel = msg.msgModel; + msgModel.starty = bounds.getVerticalPos(); + msgModel.sequenceIndex = sequenceIndex; + msgModel.sequenceVisible = diagObj.db.showSequenceNumbers(); + const lineStartY = await boundMessage(diagram2, msgModel); + adjustCreatedDestroyedData( + msg, + msgModel, + lineStartY, + index, + actors, + createdActors, + destroyedActors + ); + messagesToDraw.push({ messageModel: msgModel, lineStartY }); + bounds.models.addMessage(msgModel); + } catch (e) { + log.error("error while drawing message", e); + } + } + if ([ + diagObj.db.LINETYPE.SOLID_OPEN, + diagObj.db.LINETYPE.DOTTED_OPEN, + diagObj.db.LINETYPE.SOLID, + diagObj.db.LINETYPE.DOTTED, + diagObj.db.LINETYPE.SOLID_CROSS, + diagObj.db.LINETYPE.DOTTED_CROSS, + diagObj.db.LINETYPE.SOLID_POINT, + diagObj.db.LINETYPE.DOTTED_POINT + ].includes(msg.type)) { + sequenceIndex = sequenceIndex + sequenceIndexStep; + } + index++; + } + log.debug("createdActors", createdActors); + log.debug("destroyedActors", destroyedActors); + await drawActors(diagram2, actors, actorKeys, false); + for (const e of messagesToDraw) { + await drawMessage(diagram2, e.messageModel, e.lineStartY, diagObj); + } + if (conf.mirrorActors) { + await drawActors(diagram2, actors, actorKeys, true); + } + backgrounds.forEach((e) => svgDraw.drawBackgroundRect(diagram2, e)); + fixLifeLineHeights(diagram2, actors, actorKeys, conf); + for (const box2 of bounds.models.boxes) { + box2.height = bounds.getVerticalPos() - box2.y; + bounds.insert(box2.x, box2.y, box2.x + box2.width, box2.height); + box2.startx = box2.x; + box2.starty = box2.y; + box2.stopx = box2.startx + box2.width; + box2.stopy = box2.starty + box2.height; + box2.stroke = "rgb(0,0,0, 0.5)"; + await svgDraw.drawBox(diagram2, box2, conf); + } + if (hasBoxes) { + bounds.bumpVerticalPos(conf.boxMargin); + } + const requiredBoxSize = drawActorsPopup(diagram2, actors, actorKeys, doc); + const { bounds: box } = bounds.getBounds(); + let boxHeight = box.stopy - box.starty; + if (boxHeight < requiredBoxSize.maxHeight) { + boxHeight = requiredBoxSize.maxHeight; + } + let height = boxHeight + 2 * conf.diagramMarginY; + if (conf.mirrorActors) { + height = height - conf.boxMargin + conf.bottomMarginAdj; + } + let boxWidth = box.stopx - box.startx; + if (boxWidth < requiredBoxSize.maxWidth) { + boxWidth = requiredBoxSize.maxWidth; + } + const width = boxWidth + 2 * conf.diagramMarginX; + if (title) { + diagram2.append("text").text(title).attr("x", (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr("y", -25); + } + configureSvgSize(diagram2, height, width, conf.useMaxWidth); + const extraVertForTitle = title ? 40 : 0; + diagram2.attr( + "viewBox", + box.startx - conf.diagramMarginX + " -" + (conf.diagramMarginY + extraVertForTitle) + " " + width + " " + (height + extraVertForTitle) + ); + log.debug(`models:`, bounds.models); +}; +async function getMaxMessageWidthPerActor(actors, messages, diagObj) { + const maxMessageWidthPerActor = {}; + for (const msg of messages) { + if (actors[msg.to] && actors[msg.from]) { + const actor = actors[msg.to]; + if (msg.placement === diagObj.db.PLACEMENT.LEFTOF && !actor.prevActor) { + continue; + } + if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF && !actor.nextActor) { + continue; + } + const isNote = msg.placement !== void 0; + const isMessage = !isNote; + const textFont = isNote ? noteFont(conf) : messageFont(conf); + const wrappedMessage = msg.wrap ? utils.wrapLabel(msg.message, conf.width - 2 * conf.wrapPadding, textFont) : msg.message; + const messageDimensions = hasKatex(wrappedMessage) ? await calculateMathMLDimensions(msg.message, getConfig()) : utils.calculateTextDimensions(wrappedMessage, textFont); + const messageWidth = messageDimensions.width + 2 * conf.wrapPadding; + if (isMessage && msg.from === actor.nextActor) { + maxMessageWidthPerActor[msg.to] = common.getMax( + maxMessageWidthPerActor[msg.to] || 0, + messageWidth + ); + } else if (isMessage && msg.from === actor.prevActor) { + maxMessageWidthPerActor[msg.from] = common.getMax( + maxMessageWidthPerActor[msg.from] || 0, + messageWidth + ); + } else if (isMessage && msg.from === msg.to) { + maxMessageWidthPerActor[msg.from] = common.getMax( + maxMessageWidthPerActor[msg.from] || 0, + messageWidth / 2 + ); + maxMessageWidthPerActor[msg.to] = common.getMax( + maxMessageWidthPerActor[msg.to] || 0, + messageWidth / 2 + ); + } else if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) { + maxMessageWidthPerActor[msg.from] = common.getMax( + maxMessageWidthPerActor[msg.from] || 0, + messageWidth + ); + } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) { + maxMessageWidthPerActor[actor.prevActor] = common.getMax( + maxMessageWidthPerActor[actor.prevActor] || 0, + messageWidth + ); + } else if (msg.placement === diagObj.db.PLACEMENT.OVER) { + if (actor.prevActor) { + maxMessageWidthPerActor[actor.prevActor] = common.getMax( + maxMessageWidthPerActor[actor.prevActor] || 0, + messageWidth / 2 + ); + } + if (actor.nextActor) { + maxMessageWidthPerActor[msg.from] = common.getMax( + maxMessageWidthPerActor[msg.from] || 0, + messageWidth / 2 + ); + } + } + } + } + log.debug("maxMessageWidthPerActor:", maxMessageWidthPerActor); + return maxMessageWidthPerActor; +} +const getRequiredPopupWidth = function(actor) { + let requiredPopupWidth = 0; + const textFont = actorFont(conf); + for (const key in actor.links) { + const labelDimensions = utils.calculateTextDimensions(key, textFont); + const labelWidth = labelDimensions.width + 2 * conf.wrapPadding + 2 * conf.boxMargin; + if (requiredPopupWidth < labelWidth) { + requiredPopupWidth = labelWidth; + } + } + return requiredPopupWidth; +}; +async function calculateActorMargins(actors, actorToMessageWidth, boxes) { + let maxHeight = 0; + for (const prop of Object.keys(actors)) { + const actor = actors[prop]; + if (actor.wrap) { + actor.description = utils.wrapLabel( + actor.description, + conf.width - 2 * conf.wrapPadding, + actorFont(conf) + ); + } + const actDims = hasKatex(actor.description) ? await calculateMathMLDimensions(actor.description, getConfig()) : utils.calculateTextDimensions(actor.description, actorFont(conf)); + actor.width = actor.wrap ? conf.width : common.getMax(conf.width, actDims.width + 2 * conf.wrapPadding); + actor.height = actor.wrap ? common.getMax(actDims.height, conf.height) : conf.height; + maxHeight = common.getMax(maxHeight, actor.height); + } + for (const actorKey in actorToMessageWidth) { + const actor = actors[actorKey]; + if (!actor) { + continue; + } + const nextActor = actors[actor.nextActor]; + if (!nextActor) { + const messageWidth2 = actorToMessageWidth[actorKey]; + const actorWidth2 = messageWidth2 + conf.actorMargin - actor.width / 2; + actor.margin = common.getMax(actorWidth2, conf.actorMargin); + continue; + } + const messageWidth = actorToMessageWidth[actorKey]; + const actorWidth = messageWidth + conf.actorMargin - actor.width / 2 - nextActor.width / 2; + actor.margin = common.getMax(actorWidth, conf.actorMargin); + } + let maxBoxHeight = 0; + boxes.forEach((box) => { + const textFont = messageFont(conf); + let totalWidth = box.actorKeys.reduce((total, aKey) => { + return total += actors[aKey].width + (actors[aKey].margin || 0); + }, 0); + totalWidth -= 2 * conf.boxTextMargin; + if (box.wrap) { + box.name = utils.wrapLabel(box.name, totalWidth - 2 * conf.wrapPadding, textFont); + } + const boxMsgDimensions = utils.calculateTextDimensions(box.name, textFont); + maxBoxHeight = common.getMax(boxMsgDimensions.height, maxBoxHeight); + const minWidth = common.getMax(totalWidth, boxMsgDimensions.width + 2 * conf.wrapPadding); + box.margin = conf.boxTextMargin; + if (totalWidth < minWidth) { + const missing = (minWidth - totalWidth) / 2; + box.margin += missing; + } + }); + boxes.forEach((box) => box.textMaxHeight = maxBoxHeight); + return common.getMax(maxHeight, conf.height); +} +const buildNoteModel = async function(msg, actors, diagObj) { + const startx = actors[msg.from].x; + const stopx = actors[msg.to].x; + const shouldWrap = msg.wrap && msg.message; + let textDimensions = hasKatex(msg.message) ? await calculateMathMLDimensions(msg.message, getConfig()) : utils.calculateTextDimensions( + shouldWrap ? utils.wrapLabel(msg.message, conf.width, noteFont(conf)) : msg.message, + noteFont(conf) + ); + const noteModel = { + width: shouldWrap ? conf.width : common.getMax(conf.width, textDimensions.width + 2 * conf.noteMargin), + height: 0, + startx: actors[msg.from].x, + stopx: 0, + starty: 0, + stopy: 0, + message: msg.message + }; + if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) { + noteModel.width = shouldWrap ? common.getMax(conf.width, textDimensions.width) : common.getMax( + actors[msg.from].width / 2 + actors[msg.to].width / 2, + textDimensions.width + 2 * conf.noteMargin + ); + noteModel.startx = startx + (actors[msg.from].width + conf.actorMargin) / 2; + } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) { + noteModel.width = shouldWrap ? common.getMax(conf.width, textDimensions.width + 2 * conf.noteMargin) : common.getMax( + actors[msg.from].width / 2 + actors[msg.to].width / 2, + textDimensions.width + 2 * conf.noteMargin + ); + noteModel.startx = startx - noteModel.width + (actors[msg.from].width - conf.actorMargin) / 2; + } else if (msg.to === msg.from) { + textDimensions = utils.calculateTextDimensions( + shouldWrap ? utils.wrapLabel( + msg.message, + common.getMax(conf.width, actors[msg.from].width), + noteFont(conf) + ) : msg.message, + noteFont(conf) + ); + noteModel.width = shouldWrap ? common.getMax(conf.width, actors[msg.from].width) : common.getMax( + actors[msg.from].width, + conf.width, + textDimensions.width + 2 * conf.noteMargin + ); + noteModel.startx = startx + (actors[msg.from].width - noteModel.width) / 2; + } else { + noteModel.width = Math.abs(startx + actors[msg.from].width / 2 - (stopx + actors[msg.to].width / 2)) + conf.actorMargin; + noteModel.startx = startx < stopx ? startx + actors[msg.from].width / 2 - conf.actorMargin / 2 : stopx + actors[msg.to].width / 2 - conf.actorMargin / 2; + } + if (shouldWrap) { + noteModel.message = utils.wrapLabel( + msg.message, + noteModel.width - 2 * conf.wrapPadding, + noteFont(conf) + ); + } + log.debug( + `NM:[${noteModel.startx},${noteModel.stopx},${noteModel.starty},${noteModel.stopy}:${noteModel.width},${noteModel.height}=${msg.message}]` + ); + return noteModel; +}; +const buildMessageModel = function(msg, actors, diagObj) { + if (![ + diagObj.db.LINETYPE.SOLID_OPEN, + diagObj.db.LINETYPE.DOTTED_OPEN, + diagObj.db.LINETYPE.SOLID, + diagObj.db.LINETYPE.DOTTED, + diagObj.db.LINETYPE.SOLID_CROSS, + diagObj.db.LINETYPE.DOTTED_CROSS, + diagObj.db.LINETYPE.SOLID_POINT, + diagObj.db.LINETYPE.DOTTED_POINT + ].includes(msg.type)) { + return {}; + } + const [fromLeft, fromRight] = activationBounds(msg.from, actors); + const [toLeft, toRight] = activationBounds(msg.to, actors); + const isArrowToRight = fromLeft <= toLeft; + const startx = isArrowToRight ? fromRight : fromLeft; + let stopx = isArrowToRight ? toLeft : toRight; + const isArrowToActivation = Math.abs(toLeft - toRight) > 2; + const adjustValue = (value) => { + return isArrowToRight ? -value : value; + }; + if (msg.from === msg.to) { + stopx = startx; + } else { + if (msg.activate && !isArrowToActivation) { + stopx += adjustValue(conf.activationWidth / 2 - 1); + } + if (![diagObj.db.LINETYPE.SOLID_OPEN, diagObj.db.LINETYPE.DOTTED_OPEN].includes(msg.type)) { + stopx += adjustValue(3); + } + } + const allBounds = [fromLeft, fromRight, toLeft, toRight]; + const boundedWidth = Math.abs(startx - stopx); + if (msg.wrap && msg.message) { + msg.message = utils.wrapLabel( + msg.message, + common.getMax(boundedWidth + 2 * conf.wrapPadding, conf.width), + messageFont(conf) + ); + } + const msgDims = utils.calculateTextDimensions(msg.message, messageFont(conf)); + return { + width: common.getMax( + msg.wrap ? 0 : msgDims.width + 2 * conf.wrapPadding, + boundedWidth + 2 * conf.wrapPadding, + conf.width + ), + height: 0, + startx, + stopx, + starty: 0, + stopy: 0, + message: msg.message, + type: msg.type, + wrap: msg.wrap, + fromBounds: Math.min.apply(null, allBounds), + toBounds: Math.max.apply(null, allBounds) + }; +}; +const calculateLoopBounds = async function(messages, actors, _maxWidthPerActor, diagObj) { + const loops = {}; + const stack = []; + let current, noteModel, msgModel; + for (const msg of messages) { + msg.id = utils.random({ length: 10 }); + switch (msg.type) { + case diagObj.db.LINETYPE.LOOP_START: + case diagObj.db.LINETYPE.ALT_START: + case diagObj.db.LINETYPE.OPT_START: + case diagObj.db.LINETYPE.PAR_START: + case diagObj.db.LINETYPE.PAR_OVER_START: + case diagObj.db.LINETYPE.CRITICAL_START: + case diagObj.db.LINETYPE.BREAK_START: + stack.push({ + id: msg.id, + msg: msg.message, + from: Number.MAX_SAFE_INTEGER, + to: Number.MIN_SAFE_INTEGER, + width: 0 + }); + break; + case diagObj.db.LINETYPE.ALT_ELSE: + case diagObj.db.LINETYPE.PAR_AND: + case diagObj.db.LINETYPE.CRITICAL_OPTION: + if (msg.message) { + current = stack.pop(); + loops[current.id] = current; + loops[msg.id] = current; + stack.push(current); + } + break; + case diagObj.db.LINETYPE.LOOP_END: + case diagObj.db.LINETYPE.ALT_END: + case diagObj.db.LINETYPE.OPT_END: + case diagObj.db.LINETYPE.PAR_END: + case diagObj.db.LINETYPE.CRITICAL_END: + case diagObj.db.LINETYPE.BREAK_END: + current = stack.pop(); + loops[current.id] = current; + break; + case diagObj.db.LINETYPE.ACTIVE_START: + { + const actorRect = actors[msg.from ? msg.from.actor : msg.to.actor]; + const stackedSize = actorActivations(msg.from ? msg.from.actor : msg.to.actor).length; + const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2; + const toAdd = { + startx: x, + stopx: x + conf.activationWidth, + actor: msg.from.actor, + enabled: true + }; + bounds.activations.push(toAdd); + } + break; + case diagObj.db.LINETYPE.ACTIVE_END: + { + const lastActorActivationIdx = bounds.activations.map((a) => a.actor).lastIndexOf(msg.from.actor); + delete bounds.activations.splice(lastActorActivationIdx, 1)[0]; + } + break; + } + const isNote = msg.placement !== void 0; + if (isNote) { + noteModel = await buildNoteModel(msg, actors, diagObj); + msg.noteModel = noteModel; + stack.forEach((stk) => { + current = stk; + current.from = common.getMin(current.from, noteModel.startx); + current.to = common.getMax(current.to, noteModel.startx + noteModel.width); + current.width = common.getMax(current.width, Math.abs(current.from - current.to)) - conf.labelBoxWidth; + }); + } else { + msgModel = buildMessageModel(msg, actors, diagObj); + msg.msgModel = msgModel; + if (msgModel.startx && msgModel.stopx && stack.length > 0) { + stack.forEach((stk) => { + current = stk; + if (msgModel.startx === msgModel.stopx) { + const from = actors[msg.from]; + const to = actors[msg.to]; + current.from = common.getMin( + from.x - msgModel.width / 2, + from.x - from.width / 2, + current.from + ); + current.to = common.getMax( + to.x + msgModel.width / 2, + to.x + from.width / 2, + current.to + ); + current.width = common.getMax(current.width, Math.abs(current.to - current.from)) - conf.labelBoxWidth; + } else { + current.from = common.getMin(msgModel.startx, current.from); + current.to = common.getMax(msgModel.stopx, current.to); + current.width = common.getMax(current.width, msgModel.width) - conf.labelBoxWidth; + } + }); + } + } + } + bounds.activations = []; + log.debug("Loop type widths:", loops); + return loops; +}; +const renderer = { + bounds, + drawActors, + drawActorsPopup, + setConf, + draw +}; +const diagram = { + parser: parser$1, + db, + renderer, + styles, + init: ({ wrap }) => { + db.setWrap(wrap); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/sequenceDiagram-9813c129.js b/assets/lib/mermaid/sequenceDiagram-9813c129.js new file mode 100644 index 000000000..75e7cff05 --- /dev/null +++ b/assets/lib/mermaid/sequenceDiagram-9813c129.js @@ -0,0 +1,3336 @@ +import { g as getAccTitle, D as getDiagramTitle, C as setDiagramTitle, c as getConfig, s as setAccTitle, b as setAccDescription, a as getAccDescription, E as clear$1, l as log, d as sanitizeText, e as dist, f as common, Y as parseFontSize, a4 as hasKatex, r as renderKatex, _ as getConfig$1, a5 as ZERO_WIDTH_SPACE, a6 as calculateMathMLDimensions, h as assignWithDepth, j as d3select, k as configureSvgSize, A as utils } from "./mermaid-dcacb631.js"; +import { d as drawRect$1, a as drawBackgroundRect$1, b as drawEmbeddedImage, c as drawImage, e as getTextObj$1, g as getNoteRect$1 } from "./svgDrawCommon-d6ab583c.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 4], $V3 = [2, 4], $V4 = [1, 9], $V5 = [1, 11], $V6 = [1, 13], $V7 = [1, 14], $V8 = [1, 16], $V9 = [1, 17], $Va = [1, 18], $Vb = [1, 24], $Vc = [1, 25], $Vd = [1, 26], $Ve = [1, 27], $Vf = [1, 28], $Vg = [1, 29], $Vh = [1, 30], $Vi = [1, 31], $Vj = [1, 32], $Vk = [1, 33], $Vl = [1, 34], $Vm = [1, 35], $Vn = [1, 36], $Vo = [1, 37], $Vp = [1, 38], $Vq = [1, 39], $Vr = [1, 41], $Vs = [1, 42], $Vt = [1, 43], $Vu = [1, 44], $Vv = [1, 45], $Vw = [1, 46], $Vx = [1, 4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 54, 59, 60, 61, 62, 70], $Vy = [4, 5, 16, 50, 52, 53], $Vz = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VA = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 49, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VB = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 48, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VC = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VD = [68, 69, 70], $VE = [1, 120]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "SPACE": 4, "NEWLINE": 5, "SD": 6, "document": 7, "line": 8, "statement": 9, "box_section": 10, "box_line": 11, "participant_statement": 12, "create": 13, "box": 14, "restOfLine": 15, "end": 16, "signal": 17, "autonumber": 18, "NUM": 19, "off": 20, "activate": 21, "actor": 22, "deactivate": 23, "note_statement": 24, "links_statement": 25, "link_statement": 26, "properties_statement": 27, "details_statement": 28, "title": 29, "legacy_title": 30, "acc_title": 31, "acc_title_value": 32, "acc_descr": 33, "acc_descr_value": 34, "acc_descr_multiline_value": 35, "loop": 36, "rect": 37, "opt": 38, "alt": 39, "else_sections": 40, "par": 41, "par_sections": 42, "par_over": 43, "critical": 44, "option_sections": 45, "break": 46, "option": 47, "and": 48, "else": 49, "participant": 50, "AS": 51, "participant_actor": 52, "destroy": 53, "note": 54, "placement": 55, "text2": 56, "over": 57, "actor_pair": 58, "links": 59, "link": 60, "properties": 61, "details": 62, "spaceList": 63, ",": 64, "left_of": 65, "right_of": 66, "signaltype": 67, "+": 68, "-": 69, "ACTOR": 70, "SOLID_OPEN_ARROW": 71, "DOTTED_OPEN_ARROW": 72, "SOLID_ARROW": 73, "DOTTED_ARROW": 74, "SOLID_CROSS": 75, "DOTTED_CROSS": 76, "SOLID_POINT": 77, "DOTTED_POINT": 78, "TXT": 79, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "SPACE", 5: "NEWLINE", 6: "SD", 13: "create", 14: "box", 15: "restOfLine", 16: "end", 18: "autonumber", 19: "NUM", 20: "off", 21: "activate", 23: "deactivate", 29: "title", 30: "legacy_title", 31: "acc_title", 32: "acc_title_value", 33: "acc_descr", 34: "acc_descr_value", 35: "acc_descr_multiline_value", 36: "loop", 37: "rect", 38: "opt", 39: "alt", 41: "par", 43: "par_over", 44: "critical", 46: "break", 47: "option", 48: "and", 49: "else", 50: "participant", 51: "AS", 52: "participant_actor", 53: "destroy", 54: "note", 57: "over", 59: "links", 60: "link", 61: "properties", 62: "details", 64: ",", 65: "left_of", 66: "right_of", 68: "+", 69: "-", 70: "ACTOR", 71: "SOLID_OPEN_ARROW", 72: "DOTTED_OPEN_ARROW", 73: "SOLID_ARROW", 74: "DOTTED_ARROW", 75: "SOLID_CROSS", 76: "DOTTED_CROSS", 77: "SOLID_POINT", 78: "DOTTED_POINT", 79: "TXT" }, + productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [10, 0], [10, 2], [11, 2], [11, 1], [11, 1], [9, 1], [9, 2], [9, 4], [9, 2], [9, 4], [9, 3], [9, 3], [9, 2], [9, 3], [9, 3], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [45, 1], [45, 4], [42, 1], [42, 4], [40, 1], [40, 4], [12, 5], [12, 3], [12, 5], [12, 3], [12, 3], [24, 4], [24, 4], [25, 3], [26, 3], [27, 3], [28, 3], [63, 2], [63, 1], [58, 3], [58, 1], [55, 1], [55, 1], [17, 5], [17, 5], [17, 4], [22, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [56, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 3: + yy.apply($$[$0]); + return $$[$0]; + case 4: + case 9: + this.$ = []; + break; + case 5: + case 10: + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + break; + case 6: + case 7: + case 11: + case 12: + this.$ = $$[$0]; + break; + case 8: + case 13: + this.$ = []; + break; + case 15: + $$[$0].type = "createParticipant"; + this.$ = $$[$0]; + break; + case 16: + $$[$0 - 1].unshift({ type: "boxStart", boxData: yy.parseBoxData($$[$0 - 2]) }); + $$[$0 - 1].push({ type: "boxEnd", boxText: $$[$0 - 2] }); + this.$ = $$[$0 - 1]; + break; + case 18: + this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 2]), sequenceIndexStep: Number($$[$0 - 1]), sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER }; + break; + case 19: + this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 1]), sequenceIndexStep: 1, sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER }; + break; + case 20: + this.$ = { type: "sequenceIndex", sequenceVisible: false, signalType: yy.LINETYPE.AUTONUMBER }; + break; + case 21: + this.$ = { type: "sequenceIndex", sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER }; + break; + case 22: + this.$ = { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] }; + break; + case 23: + this.$ = { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 1] }; + break; + case 29: + yy.setDiagramTitle($$[$0].substring(6)); + this.$ = $$[$0].substring(6); + break; + case 30: + yy.setDiagramTitle($$[$0].substring(7)); + this.$ = $$[$0].substring(7); + break; + case 31: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 32: + case 33: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 34: + $$[$0 - 1].unshift({ type: "loopStart", loopText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.LOOP_START }); + $$[$0 - 1].push({ type: "loopEnd", loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_END }); + this.$ = $$[$0 - 1]; + break; + case 35: + $$[$0 - 1].unshift({ type: "rectStart", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_START }); + $$[$0 - 1].push({ type: "rectEnd", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_END }); + this.$ = $$[$0 - 1]; + break; + case 36: + $$[$0 - 1].unshift({ type: "optStart", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_START }); + $$[$0 - 1].push({ type: "optEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_END }); + this.$ = $$[$0 - 1]; + break; + case 37: + $$[$0 - 1].unshift({ type: "altStart", altText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.ALT_START }); + $$[$0 - 1].push({ type: "altEnd", signalType: yy.LINETYPE.ALT_END }); + this.$ = $$[$0 - 1]; + break; + case 38: + $$[$0 - 1].unshift({ type: "parStart", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_START }); + $$[$0 - 1].push({ type: "parEnd", signalType: yy.LINETYPE.PAR_END }); + this.$ = $$[$0 - 1]; + break; + case 39: + $$[$0 - 1].unshift({ type: "parStart", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_OVER_START }); + $$[$0 - 1].push({ type: "parEnd", signalType: yy.LINETYPE.PAR_END }); + this.$ = $$[$0 - 1]; + break; + case 40: + $$[$0 - 1].unshift({ type: "criticalStart", criticalText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.CRITICAL_START }); + $$[$0 - 1].push({ type: "criticalEnd", signalType: yy.LINETYPE.CRITICAL_END }); + this.$ = $$[$0 - 1]; + break; + case 41: + $$[$0 - 1].unshift({ type: "breakStart", breakText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_START }); + $$[$0 - 1].push({ type: "breakEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_END }); + this.$ = $$[$0 - 1]; + break; + case 43: + this.$ = $$[$0 - 3].concat([{ type: "option", optionText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.CRITICAL_OPTION }, $$[$0]]); + break; + case 45: + this.$ = $$[$0 - 3].concat([{ type: "and", parText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.PAR_AND }, $$[$0]]); + break; + case 47: + this.$ = $$[$0 - 3].concat([{ type: "else", altText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.ALT_ELSE }, $$[$0]]); + break; + case 48: + $$[$0 - 3].draw = "participant"; + $$[$0 - 3].type = "addParticipant"; + $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]); + this.$ = $$[$0 - 3]; + break; + case 49: + $$[$0 - 1].draw = "participant"; + $$[$0 - 1].type = "addParticipant"; + this.$ = $$[$0 - 1]; + break; + case 50: + $$[$0 - 3].draw = "actor"; + $$[$0 - 3].type = "addParticipant"; + $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]); + this.$ = $$[$0 - 3]; + break; + case 51: + $$[$0 - 1].draw = "actor"; + $$[$0 - 1].type = "addParticipant"; + this.$ = $$[$0 - 1]; + break; + case 52: + $$[$0 - 1].type = "destroyParticipant"; + this.$ = $$[$0 - 1]; + break; + case 53: + this.$ = [$$[$0 - 1], { type: "addNote", placement: $$[$0 - 2], actor: $$[$0 - 1].actor, text: $$[$0] }]; + break; + case 54: + $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2); + $$[$0 - 2][0] = $$[$0 - 2][0].actor; + $$[$0 - 2][1] = $$[$0 - 2][1].actor; + this.$ = [$$[$0 - 1], { type: "addNote", placement: yy.PLACEMENT.OVER, actor: $$[$0 - 2].slice(0, 2), text: $$[$0] }]; + break; + case 55: + this.$ = [$$[$0 - 1], { type: "addLinks", actor: $$[$0 - 1].actor, text: $$[$0] }]; + break; + case 56: + this.$ = [$$[$0 - 1], { type: "addALink", actor: $$[$0 - 1].actor, text: $$[$0] }]; + break; + case 57: + this.$ = [$$[$0 - 1], { type: "addProperties", actor: $$[$0 - 1].actor, text: $$[$0] }]; + break; + case 58: + this.$ = [$$[$0 - 1], { type: "addDetails", actor: $$[$0 - 1].actor, text: $$[$0] }]; + break; + case 61: + this.$ = [$$[$0 - 2], $$[$0]]; + break; + case 62: + this.$ = $$[$0]; + break; + case 63: + this.$ = yy.PLACEMENT.LEFTOF; + break; + case 64: + this.$ = yy.PLACEMENT.RIGHTOF; + break; + case 65: + this.$ = [ + $$[$0 - 4], + $$[$0 - 1], + { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0], activate: true }, + { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] } + ]; + break; + case 66: + this.$ = [ + $$[$0 - 4], + $$[$0 - 1], + { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] }, + { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 4] } + ]; + break; + case 67: + this.$ = [$$[$0 - 3], $$[$0 - 1], { type: "addMessage", from: $$[$0 - 3].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 2], msg: $$[$0] }]; + break; + case 68: + this.$ = { type: "addParticipant", actor: $$[$0] }; + break; + case 69: + this.$ = yy.LINETYPE.SOLID_OPEN; + break; + case 70: + this.$ = yy.LINETYPE.DOTTED_OPEN; + break; + case 71: + this.$ = yy.LINETYPE.SOLID; + break; + case 72: + this.$ = yy.LINETYPE.DOTTED; + break; + case 73: + this.$ = yy.LINETYPE.SOLID_CROSS; + break; + case 74: + this.$ = yy.LINETYPE.DOTTED_CROSS; + break; + case 75: + this.$ = yy.LINETYPE.SOLID_POINT; + break; + case 76: + this.$ = yy.LINETYPE.DOTTED_POINT; + break; + case 77: + this.$ = yy.parseMessage($$[$0].trim().substring(1)); + break; + } + }, + table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o([1, 4, 5, 13, 14, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 50, 52, 53, 54, 59, 60, 61, 62, 70], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, o($Vx, [2, 5]), { 9: 47, 12: 12, 13: $V6, 14: $V7, 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, o($Vx, [2, 7]), o($Vx, [2, 8]), o($Vx, [2, 14]), { 12: 48, 50: $Vo, 52: $Vp, 53: $Vq }, { 15: [1, 49] }, { 5: [1, 50] }, { 5: [1, 53], 19: [1, 51], 20: [1, 52] }, { 22: 54, 70: $Vw }, { 22: 55, 70: $Vw }, { 5: [1, 56] }, { 5: [1, 57] }, { 5: [1, 58] }, { 5: [1, 59] }, { 5: [1, 60] }, o($Vx, [2, 29]), o($Vx, [2, 30]), { 32: [1, 61] }, { 34: [1, 62] }, o($Vx, [2, 33]), { 15: [1, 63] }, { 15: [1, 64] }, { 15: [1, 65] }, { 15: [1, 66] }, { 15: [1, 67] }, { 15: [1, 68] }, { 15: [1, 69] }, { 15: [1, 70] }, { 22: 71, 70: $Vw }, { 22: 72, 70: $Vw }, { 22: 73, 70: $Vw }, { 67: 74, 71: [1, 75], 72: [1, 76], 73: [1, 77], 74: [1, 78], 75: [1, 79], 76: [1, 80], 77: [1, 81], 78: [1, 82] }, { 55: 83, 57: [1, 84], 65: [1, 85], 66: [1, 86] }, { 22: 87, 70: $Vw }, { 22: 88, 70: $Vw }, { 22: 89, 70: $Vw }, { 22: 90, 70: $Vw }, o([5, 51, 64, 71, 72, 73, 74, 75, 76, 77, 78, 79], [2, 68]), o($Vx, [2, 6]), o($Vx, [2, 15]), o($Vy, [2, 9], { 10: 91 }), o($Vx, [2, 17]), { 5: [1, 93], 19: [1, 92] }, { 5: [1, 94] }, o($Vx, [2, 21]), { 5: [1, 95] }, { 5: [1, 96] }, o($Vx, [2, 24]), o($Vx, [2, 25]), o($Vx, [2, 26]), o($Vx, [2, 27]), o($Vx, [2, 28]), o($Vx, [2, 31]), o($Vx, [2, 32]), o($Vz, $V3, { 7: 97 }), o($Vz, $V3, { 7: 98 }), o($Vz, $V3, { 7: 99 }), o($VA, $V3, { 40: 100, 7: 101 }), o($VB, $V3, { 42: 102, 7: 103 }), o($VB, $V3, { 7: 103, 42: 104 }), o($VC, $V3, { 45: 105, 7: 106 }), o($Vz, $V3, { 7: 107 }), { 5: [1, 109], 51: [1, 108] }, { 5: [1, 111], 51: [1, 110] }, { 5: [1, 112] }, { 22: 115, 68: [1, 113], 69: [1, 114], 70: $Vw }, o($VD, [2, 69]), o($VD, [2, 70]), o($VD, [2, 71]), o($VD, [2, 72]), o($VD, [2, 73]), o($VD, [2, 74]), o($VD, [2, 75]), o($VD, [2, 76]), { 22: 116, 70: $Vw }, { 22: 118, 58: 117, 70: $Vw }, { 70: [2, 63] }, { 70: [2, 64] }, { 56: 119, 79: $VE }, { 56: 121, 79: $VE }, { 56: 122, 79: $VE }, { 56: 123, 79: $VE }, { 4: [1, 126], 5: [1, 128], 11: 125, 12: 127, 16: [1, 124], 50: $Vo, 52: $Vp, 53: $Vq }, { 5: [1, 129] }, o($Vx, [2, 19]), o($Vx, [2, 20]), o($Vx, [2, 22]), o($Vx, [2, 23]), { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 130], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 131], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 132], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 133] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 46], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 49: [1, 134], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 135] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 44], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 48: [1, 136], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 137] }, { 16: [1, 138] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 42], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 47: [1, 139], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 140], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 15: [1, 141] }, o($Vx, [2, 49]), { 15: [1, 142] }, o($Vx, [2, 51]), o($Vx, [2, 52]), { 22: 143, 70: $Vw }, { 22: 144, 70: $Vw }, { 56: 145, 79: $VE }, { 56: 146, 79: $VE }, { 56: 147, 79: $VE }, { 64: [1, 148], 79: [2, 62] }, { 5: [2, 55] }, { 5: [2, 77] }, { 5: [2, 56] }, { 5: [2, 57] }, { 5: [2, 58] }, o($Vx, [2, 16]), o($Vy, [2, 10]), { 12: 149, 50: $Vo, 52: $Vp, 53: $Vq }, o($Vy, [2, 12]), o($Vy, [2, 13]), o($Vx, [2, 18]), o($Vx, [2, 34]), o($Vx, [2, 35]), o($Vx, [2, 36]), o($Vx, [2, 37]), { 15: [1, 150] }, o($Vx, [2, 38]), { 15: [1, 151] }, o($Vx, [2, 39]), o($Vx, [2, 40]), { 15: [1, 152] }, o($Vx, [2, 41]), { 5: [1, 153] }, { 5: [1, 154] }, { 56: 155, 79: $VE }, { 56: 156, 79: $VE }, { 5: [2, 67] }, { 5: [2, 53] }, { 5: [2, 54] }, { 22: 157, 70: $Vw }, o($Vy, [2, 11]), o($VA, $V3, { 7: 101, 40: 158 }), o($VB, $V3, { 7: 103, 42: 159 }), o($VC, $V3, { 7: 106, 45: 160 }), o($Vx, [2, 48]), o($Vx, [2, 50]), { 5: [2, 65] }, { 5: [2, 66] }, { 79: [2, 61] }, { 16: [2, 47] }, { 16: [2, 45] }, { 16: [2, 43] }], + defaultActions: { 5: [2, 1], 6: [2, 2], 85: [2, 63], 86: [2, 64], 119: [2, 55], 120: [2, 77], 121: [2, 56], 122: [2, 57], 123: [2, 58], 145: [2, 67], 146: [2, 53], 147: [2, 54], 155: [2, 65], 156: [2, 66], 157: [2, 61], 158: [2, 47], 159: [2, 45], 160: [2, 43] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state2, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state2 = stack[stack.length - 1]; + if (this.defaultActions[state2]) { + action = this.defaultActions[state2]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state2] && table[state2][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state2]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + return 5; + case 1: + break; + case 2: + break; + case 3: + break; + case 4: + break; + case 5: + break; + case 6: + return 19; + case 7: + this.begin("LINE"); + return 14; + case 8: + this.begin("ID"); + return 50; + case 9: + this.begin("ID"); + return 52; + case 10: + return 13; + case 11: + this.begin("ID"); + return 53; + case 12: + yy_.yytext = yy_.yytext.trim(); + this.begin("ALIAS"); + return 70; + case 13: + this.popState(); + this.popState(); + this.begin("LINE"); + return 51; + case 14: + this.popState(); + this.popState(); + return 5; + case 15: + this.begin("LINE"); + return 36; + case 16: + this.begin("LINE"); + return 37; + case 17: + this.begin("LINE"); + return 38; + case 18: + this.begin("LINE"); + return 39; + case 19: + this.begin("LINE"); + return 49; + case 20: + this.begin("LINE"); + return 41; + case 21: + this.begin("LINE"); + return 43; + case 22: + this.begin("LINE"); + return 48; + case 23: + this.begin("LINE"); + return 44; + case 24: + this.begin("LINE"); + return 47; + case 25: + this.begin("LINE"); + return 46; + case 26: + this.popState(); + return 15; + case 27: + return 16; + case 28: + return 65; + case 29: + return 66; + case 30: + return 59; + case 31: + return 60; + case 32: + return 61; + case 33: + return 62; + case 34: + return 57; + case 35: + return 54; + case 36: + this.begin("ID"); + return 21; + case 37: + this.begin("ID"); + return 23; + case 38: + return 29; + case 39: + return 30; + case 40: + this.begin("acc_title"); + return 31; + case 41: + this.popState(); + return "acc_title_value"; + case 42: + this.begin("acc_descr"); + return 33; + case 43: + this.popState(); + return "acc_descr_value"; + case 44: + this.begin("acc_descr_multiline"); + break; + case 45: + this.popState(); + break; + case 46: + return "acc_descr_multiline_value"; + case 47: + return 6; + case 48: + return 18; + case 49: + return 20; + case 50: + return 64; + case 51: + return 5; + case 52: + yy_.yytext = yy_.yytext.trim(); + return 70; + case 53: + return 73; + case 54: + return 74; + case 55: + return 71; + case 56: + return 72; + case 57: + return 75; + case 58: + return 76; + case 59: + return 77; + case 60: + return 78; + case 61: + return 79; + case 62: + return 68; + case 63: + return 69; + case 64: + return 5; + case 65: + return "INVALID"; + } + }, + rules: [/^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[0-9]+(?=[ \n]+))/i, /^(?:box\b)/i, /^(?:participant\b)/i, /^(?:actor\b)/i, /^(?:create\b)/i, /^(?:destroy\b)/i, /^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i, /^(?:as\b)/i, /^(?:(?:))/i, /^(?:loop\b)/i, /^(?:rect\b)/i, /^(?:opt\b)/i, /^(?:alt\b)/i, /^(?:else\b)/i, /^(?:par\b)/i, /^(?:par_over\b)/i, /^(?:and\b)/i, /^(?:critical\b)/i, /^(?:option\b)/i, /^(?:break\b)/i, /^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i, /^(?:end\b)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:links\b)/i, /^(?:link\b)/i, /^(?:properties\b)/i, /^(?:details\b)/i, /^(?:over\b)/i, /^(?:note\b)/i, /^(?:activate\b)/i, /^(?:deactivate\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:title:\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:sequenceDiagram\b)/i, /^(?:autonumber\b)/i, /^(?:off\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i, /^(?:->>)/i, /^(?:-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?:-[\)])/i, /^(?:--[\)])/i, /^(?::(?:(?:no)?wrap)?[^#\n;]+)/i, /^(?:\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { "acc_descr_multiline": { "rules": [45, 46], "inclusive": false }, "acc_descr": { "rules": [43], "inclusive": false }, "acc_title": { "rules": [41], "inclusive": false }, "ID": { "rules": [2, 3, 12], "inclusive": false }, "ALIAS": { "rules": [2, 3, 13, 14], "inclusive": false }, "LINE": { "rules": [2, 3, 26], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 44, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +class ImperativeState { + /** + * @param init - Function that creates the default state. + */ + constructor(init) { + this.init = init; + this.records = this.init(); + } + reset() { + this.records = this.init(); + } +} +const state = new ImperativeState(() => ({ + prevActor: void 0, + actors: {}, + createdActors: {}, + destroyedActors: {}, + boxes: [], + messages: [], + notes: [], + sequenceNumbersEnabled: false, + wrapEnabled: void 0, + currentBox: void 0, + lastCreated: void 0, + lastDestroyed: void 0 +})); +const addBox = function(data) { + state.records.boxes.push({ + name: data.text, + wrap: data.wrap === void 0 && autoWrap() || !!data.wrap, + fill: data.color, + actorKeys: [] + }); + state.records.currentBox = state.records.boxes.slice(-1)[0]; +}; +const addActor = function(id, name, description, type) { + let assignedBox = state.records.currentBox; + const old = state.records.actors[id]; + if (old) { + if (state.records.currentBox && old.box && state.records.currentBox !== old.box) { + throw new Error( + "A same participant should only be defined in one Box: " + old.name + " can't be in '" + old.box.name + "' and in '" + state.records.currentBox.name + "' at the same time." + ); + } + assignedBox = old.box ? old.box : state.records.currentBox; + old.box = assignedBox; + if (old && name === old.name && description == null) { + return; + } + } + if (description == null || description.text == null) { + description = { text: name, wrap: null, type }; + } + if (type == null || description.text == null) { + description = { text: name, wrap: null, type }; + } + state.records.actors[id] = { + box: assignedBox, + name, + description: description.text, + wrap: description.wrap === void 0 && autoWrap() || !!description.wrap, + prevActor: state.records.prevActor, + links: {}, + properties: {}, + actorCnt: null, + rectData: null, + type: type || "participant" + }; + if (state.records.prevActor && state.records.actors[state.records.prevActor]) { + state.records.actors[state.records.prevActor].nextActor = id; + } + if (state.records.currentBox) { + state.records.currentBox.actorKeys.push(id); + } + state.records.prevActor = id; +}; +const activationCount = (part) => { + let i; + let count = 0; + for (i = 0; i < state.records.messages.length; i++) { + if (state.records.messages[i].type === LINETYPE.ACTIVE_START && state.records.messages[i].from.actor === part) { + count++; + } + if (state.records.messages[i].type === LINETYPE.ACTIVE_END && state.records.messages[i].from.actor === part) { + count--; + } + } + return count; +}; +const addMessage = function(idFrom, idTo, message, answer) { + state.records.messages.push({ + from: idFrom, + to: idTo, + message: message.text, + wrap: message.wrap === void 0 && autoWrap() || !!message.wrap, + answer + }); +}; +const addSignal = function(idFrom, idTo, message = { text: void 0, wrap: void 0 }, messageType, activate = false) { + if (messageType === LINETYPE.ACTIVE_END) { + const cnt = activationCount(idFrom.actor); + if (cnt < 1) { + let error = new Error("Trying to inactivate an inactive participant (" + idFrom.actor + ")"); + error.hash = { + text: "->>-", + token: "->>-", + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["'ACTIVE_PARTICIPANT'"] + }; + throw error; + } + } + state.records.messages.push({ + from: idFrom, + to: idTo, + message: message.text, + wrap: message.wrap === void 0 && autoWrap() || !!message.wrap, + type: messageType, + activate + }); + return true; +}; +const hasAtLeastOneBox = function() { + return state.records.boxes.length > 0; +}; +const hasAtLeastOneBoxWithTitle = function() { + return state.records.boxes.some((b) => b.name); +}; +const getMessages = function() { + return state.records.messages; +}; +const getBoxes = function() { + return state.records.boxes; +}; +const getActors = function() { + return state.records.actors; +}; +const getCreatedActors = function() { + return state.records.createdActors; +}; +const getDestroyedActors = function() { + return state.records.destroyedActors; +}; +const getActor = function(id) { + return state.records.actors[id]; +}; +const getActorKeys = function() { + return Object.keys(state.records.actors); +}; +const enableSequenceNumbers = function() { + state.records.sequenceNumbersEnabled = true; +}; +const disableSequenceNumbers = function() { + state.records.sequenceNumbersEnabled = false; +}; +const showSequenceNumbers = () => state.records.sequenceNumbersEnabled; +const setWrap = function(wrapSetting) { + state.records.wrapEnabled = wrapSetting; +}; +const autoWrap = () => { + if (state.records.wrapEnabled !== void 0) { + return state.records.wrapEnabled; + } + return getConfig().sequence.wrap; +}; +const clear = function() { + state.reset(); + clear$1(); +}; +const parseMessage = function(str) { + const _str = str.trim(); + const message = { + text: _str.replace(/^:?(?:no)?wrap:/, "").trim(), + wrap: _str.match(/^:?wrap:/) !== null ? true : _str.match(/^:?nowrap:/) !== null ? false : void 0 + }; + log.debug("parseMessage:", message); + return message; +}; +const parseBoxData = function(str) { + const match = str.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/); + let color = match != null && match[1] ? match[1].trim() : "transparent"; + let title = match != null && match[2] ? match[2].trim() : void 0; + if (window && window.CSS) { + if (!window.CSS.supports("color", color)) { + color = "transparent"; + title = str.trim(); + } + } else { + const style = new Option().style; + style.color = color; + if (style.color !== color) { + color = "transparent"; + title = str.trim(); + } + } + return { + color, + text: title !== void 0 ? sanitizeText(title.replace(/^:?(?:no)?wrap:/, ""), getConfig()) : void 0, + wrap: title !== void 0 ? title.match(/^:?wrap:/) !== null ? true : title.match(/^:?nowrap:/) !== null ? false : void 0 : void 0 + }; +}; +const LINETYPE = { + SOLID: 0, + DOTTED: 1, + NOTE: 2, + SOLID_CROSS: 3, + DOTTED_CROSS: 4, + SOLID_OPEN: 5, + DOTTED_OPEN: 6, + LOOP_START: 10, + LOOP_END: 11, + ALT_START: 12, + ALT_ELSE: 13, + ALT_END: 14, + OPT_START: 15, + OPT_END: 16, + ACTIVE_START: 17, + ACTIVE_END: 18, + PAR_START: 19, + PAR_AND: 20, + PAR_END: 21, + RECT_START: 22, + RECT_END: 23, + SOLID_POINT: 24, + DOTTED_POINT: 25, + AUTONUMBER: 26, + CRITICAL_START: 27, + CRITICAL_OPTION: 28, + CRITICAL_END: 29, + BREAK_START: 30, + BREAK_END: 31, + PAR_OVER_START: 32 +}; +const ARROWTYPE = { + FILLED: 0, + OPEN: 1 +}; +const PLACEMENT = { + LEFTOF: 0, + RIGHTOF: 1, + OVER: 2 +}; +const addNote = function(actor, placement, message) { + const note = { + actor, + placement, + message: message.text, + wrap: message.wrap === void 0 && autoWrap() || !!message.wrap + }; + const actors = [].concat(actor, actor); + state.records.notes.push(note); + state.records.messages.push({ + from: actors[0], + to: actors[1], + message: message.text, + wrap: message.wrap === void 0 && autoWrap() || !!message.wrap, + type: LINETYPE.NOTE, + placement + }); +}; +const addLinks = function(actorId, text) { + const actor = getActor(actorId); + try { + let sanitizedText = sanitizeText(text.text, getConfig()); + sanitizedText = sanitizedText.replace(/&/g, "&"); + sanitizedText = sanitizedText.replace(/=/g, "="); + const links = JSON.parse(sanitizedText); + insertLinks(actor, links); + } catch (e) { + log.error("error while parsing actor link text", e); + } +}; +const addALink = function(actorId, text) { + const actor = getActor(actorId); + try { + const links = {}; + let sanitizedText = sanitizeText(text.text, getConfig()); + var sep = sanitizedText.indexOf("@"); + sanitizedText = sanitizedText.replace(/&/g, "&"); + sanitizedText = sanitizedText.replace(/=/g, "="); + var label = sanitizedText.slice(0, sep - 1).trim(); + var link = sanitizedText.slice(sep + 1).trim(); + links[label] = link; + insertLinks(actor, links); + } catch (e) { + log.error("error while parsing actor link text", e); + } +}; +function insertLinks(actor, links) { + if (actor.links == null) { + actor.links = links; + } else { + for (let key in links) { + actor.links[key] = links[key]; + } + } +} +const addProperties = function(actorId, text) { + const actor = getActor(actorId); + try { + let sanitizedText = sanitizeText(text.text, getConfig()); + const properties = JSON.parse(sanitizedText); + insertProperties(actor, properties); + } catch (e) { + log.error("error while parsing actor properties text", e); + } +}; +function insertProperties(actor, properties) { + if (actor.properties == null) { + actor.properties = properties; + } else { + for (let key in properties) { + actor.properties[key] = properties[key]; + } + } +} +function boxEnd() { + state.records.currentBox = void 0; +} +const addDetails = function(actorId, text) { + const actor = getActor(actorId); + const elem = document.getElementById(text.text); + try { + const text2 = elem.innerHTML; + const details = JSON.parse(text2); + if (details["properties"]) { + insertProperties(actor, details["properties"]); + } + if (details["links"]) { + insertLinks(actor, details["links"]); + } + } catch (e) { + log.error("error while parsing actor details text", e); + } +}; +const getActorProperty = function(actor, key) { + if (actor !== void 0 && actor.properties !== void 0) { + return actor.properties[key]; + } + return void 0; +}; +const apply = function(param) { + if (Array.isArray(param)) { + param.forEach(function(item) { + apply(item); + }); + } else { + switch (param.type) { + case "sequenceIndex": + state.records.messages.push({ + from: void 0, + to: void 0, + message: { + start: param.sequenceIndex, + step: param.sequenceIndexStep, + visible: param.sequenceVisible + }, + wrap: false, + type: param.signalType + }); + break; + case "addParticipant": + addActor(param.actor, param.actor, param.description, param.draw); + break; + case "createParticipant": + if (state.records.actors[param.actor]) { + throw new Error( + "It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior" + ); + } + state.records.lastCreated = param.actor; + addActor(param.actor, param.actor, param.description, param.draw); + state.records.createdActors[param.actor] = state.records.messages.length; + break; + case "destroyParticipant": + state.records.lastDestroyed = param.actor; + state.records.destroyedActors[param.actor] = state.records.messages.length; + break; + case "activeStart": + addSignal(param.actor, void 0, void 0, param.signalType); + break; + case "activeEnd": + addSignal(param.actor, void 0, void 0, param.signalType); + break; + case "addNote": + addNote(param.actor, param.placement, param.text); + break; + case "addLinks": + addLinks(param.actor, param.text); + break; + case "addALink": + addALink(param.actor, param.text); + break; + case "addProperties": + addProperties(param.actor, param.text); + break; + case "addDetails": + addDetails(param.actor, param.text); + break; + case "addMessage": + if (state.records.lastCreated) { + if (param.to !== state.records.lastCreated) { + throw new Error( + "The created participant " + state.records.lastCreated + " does not have an associated creating message after its declaration. Please check the sequence diagram." + ); + } else { + state.records.lastCreated = void 0; + } + } else if (state.records.lastDestroyed) { + if (param.to !== state.records.lastDestroyed && param.from !== state.records.lastDestroyed) { + throw new Error( + "The destroyed participant " + state.records.lastDestroyed + " does not have an associated destroying message after its declaration. Please check the sequence diagram." + ); + } else { + state.records.lastDestroyed = void 0; + } + } + addSignal(param.from, param.to, param.msg, param.signalType, param.activate); + break; + case "boxStart": + addBox(param.boxData); + break; + case "boxEnd": + boxEnd(); + break; + case "loopStart": + addSignal(void 0, void 0, param.loopText, param.signalType); + break; + case "loopEnd": + addSignal(void 0, void 0, void 0, param.signalType); + break; + case "rectStart": + addSignal(void 0, void 0, param.color, param.signalType); + break; + case "rectEnd": + addSignal(void 0, void 0, void 0, param.signalType); + break; + case "optStart": + addSignal(void 0, void 0, param.optText, param.signalType); + break; + case "optEnd": + addSignal(void 0, void 0, void 0, param.signalType); + break; + case "altStart": + addSignal(void 0, void 0, param.altText, param.signalType); + break; + case "else": + addSignal(void 0, void 0, param.altText, param.signalType); + break; + case "altEnd": + addSignal(void 0, void 0, void 0, param.signalType); + break; + case "setAccTitle": + setAccTitle(param.text); + break; + case "parStart": + addSignal(void 0, void 0, param.parText, param.signalType); + break; + case "and": + addSignal(void 0, void 0, param.parText, param.signalType); + break; + case "parEnd": + addSignal(void 0, void 0, void 0, param.signalType); + break; + case "criticalStart": + addSignal(void 0, void 0, param.criticalText, param.signalType); + break; + case "option": + addSignal(void 0, void 0, param.optionText, param.signalType); + break; + case "criticalEnd": + addSignal(void 0, void 0, void 0, param.signalType); + break; + case "breakStart": + addSignal(void 0, void 0, param.breakText, param.signalType); + break; + case "breakEnd": + addSignal(void 0, void 0, void 0, param.signalType); + break; + } + } +}; +const db = { + addActor, + addMessage, + addSignal, + addLinks, + addDetails, + addProperties, + autoWrap, + setWrap, + enableSequenceNumbers, + disableSequenceNumbers, + showSequenceNumbers, + getMessages, + getActors, + getCreatedActors, + getDestroyedActors, + getActor, + getActorKeys, + getActorProperty, + getAccTitle, + getBoxes, + getDiagramTitle, + setDiagramTitle, + getConfig: () => getConfig().sequence, + clear, + parseMessage, + parseBoxData, + LINETYPE, + ARROWTYPE, + PLACEMENT, + addNote, + setAccTitle, + apply, + setAccDescription, + getAccDescription, + hasAtLeastOneBox, + hasAtLeastOneBoxWithTitle +}; +const getStyles = (options) => `.actor { + stroke: ${options.actorBorder}; + fill: ${options.actorBkg}; + } + + text.actor > tspan { + fill: ${options.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${options.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${options.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${options.signalColor}; + } + + #arrowhead path { + fill: ${options.signalColor}; + stroke: ${options.signalColor}; + } + + .sequenceNumber { + fill: ${options.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${options.signalColor}; + } + + #crosshead path { + fill: ${options.signalColor}; + stroke: ${options.signalColor}; + } + + .messageText { + fill: ${options.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${options.labelBoxBorderColor}; + fill: ${options.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${options.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${options.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${options.labelBoxBorderColor}; + fill: ${options.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${options.noteBorderColor}; + fill: ${options.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${options.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${options.activationBkgColor}; + stroke: ${options.activationBorderColor}; + } + + .activation1 { + fill: ${options.activationBkgColor}; + stroke: ${options.activationBorderColor}; + } + + .activation2 { + fill: ${options.activationBkgColor}; + stroke: ${options.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${options.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${options.actorBorder}; + fill: ${options.actorBkg}; + } + .actor-man circle, line { + stroke: ${options.actorBorder}; + fill: ${options.actorBkg}; + stroke-width: 2px; + } +`; +const styles = getStyles; +const ACTOR_TYPE_WIDTH = 18 * 2; +const TOP_ACTOR_CLASS = "actor-top"; +const BOTTOM_ACTOR_CLASS = "actor-bottom"; +const drawRect = function(elem, rectData) { + return drawRect$1(elem, rectData); +}; +const drawPopup = function(elem, actor, minMenuWidth, textAttrs, forceMenus) { + if (actor.links === void 0 || actor.links === null || Object.keys(actor.links).length === 0) { + return { height: 0, width: 0 }; + } + const links = actor.links; + const actorCnt2 = actor.actorCnt; + const rectData = actor.rectData; + var displayValue = "none"; + if (forceMenus) { + displayValue = "block !important"; + } + const g = elem.append("g"); + g.attr("id", "actor" + actorCnt2 + "_popup"); + g.attr("class", "actorPopupMenu"); + g.attr("display", displayValue); + var actorClass = ""; + if (rectData.class !== void 0) { + actorClass = " " + rectData.class; + } + let menuWidth = rectData.width > minMenuWidth ? rectData.width : minMenuWidth; + const rectElem = g.append("rect"); + rectElem.attr("class", "actorPopupMenuPanel" + actorClass); + rectElem.attr("x", rectData.x); + rectElem.attr("y", rectData.height); + rectElem.attr("fill", rectData.fill); + rectElem.attr("stroke", rectData.stroke); + rectElem.attr("width", menuWidth); + rectElem.attr("height", rectData.height); + rectElem.attr("rx", rectData.rx); + rectElem.attr("ry", rectData.ry); + if (links != null) { + var linkY = 20; + for (let key in links) { + var linkElem = g.append("a"); + var sanitizedLink = dist.sanitizeUrl(links[key]); + linkElem.attr("xlink:href", sanitizedLink); + linkElem.attr("target", "_blank"); + _drawMenuItemTextCandidateFunc(textAttrs)( + key, + linkElem, + rectData.x + 10, + rectData.height + linkY, + menuWidth, + 20, + { class: "actor" }, + textAttrs + ); + linkY += 30; + } + } + rectElem.attr("height", linkY); + return { height: rectData.height + linkY, width: menuWidth }; +}; +const popupMenuToggle = function(popId) { + return "var pu = document.getElementById('" + popId + "'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"; +}; +const drawKatex = async function(elem, textData, msgModel = null) { + let textElem = elem.append("foreignObject"); + const lines = await renderKatex(textData.text, getConfig$1()); + const divElem = textElem.append("xhtml:div").attr("style", "width: fit-content;").attr("xmlns", "http://www.w3.org/1999/xhtml").html(lines); + const dim = divElem.node().getBoundingClientRect(); + textElem.attr("height", Math.round(dim.height)).attr("width", Math.round(dim.width)); + if (textData.class === "noteText") { + const rectElem = elem.node().firstChild; + rectElem.setAttribute("height", dim.height + 2 * textData.textMargin); + const rectDim = rectElem.getBBox(); + textElem.attr("x", Math.round(rectDim.x + rectDim.width / 2 - dim.width / 2)).attr("y", Math.round(rectDim.y + rectDim.height / 2 - dim.height / 2)); + } else if (msgModel) { + let { startx, stopx, starty } = msgModel; + if (startx > stopx) { + const temp = startx; + startx = stopx; + stopx = temp; + } + textElem.attr("x", Math.round(startx + Math.abs(startx - stopx) / 2 - dim.width / 2)); + if (textData.class === "loopText") { + textElem.attr("y", Math.round(starty)); + } else { + textElem.attr("y", Math.round(starty - dim.height)); + } + } + return [textElem]; +}; +const drawText = function(elem, textData) { + let prevTextHeight = 0; + let textHeight = 0; + const lines = textData.text.split(common.lineBreakRegex); + const [_textFontSize, _textFontSizePx] = parseFontSize(textData.fontSize); + let textElems = []; + let dy = 0; + let yfunc = () => textData.y; + if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) { + switch (textData.valign) { + case "top": + case "start": + yfunc = () => Math.round(textData.y + textData.textMargin); + break; + case "middle": + case "center": + yfunc = () => Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2); + break; + case "bottom": + case "end": + yfunc = () => Math.round( + textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin + ); + break; + } + } + if (textData.anchor !== void 0 && textData.textMargin !== void 0 && textData.width !== void 0) { + switch (textData.anchor) { + case "left": + case "start": + textData.x = Math.round(textData.x + textData.textMargin); + textData.anchor = "start"; + textData.dominantBaseline = "middle"; + textData.alignmentBaseline = "middle"; + break; + case "middle": + case "center": + textData.x = Math.round(textData.x + textData.width / 2); + textData.anchor = "middle"; + textData.dominantBaseline = "middle"; + textData.alignmentBaseline = "middle"; + break; + case "right": + case "end": + textData.x = Math.round(textData.x + textData.width - textData.textMargin); + textData.anchor = "end"; + textData.dominantBaseline = "middle"; + textData.alignmentBaseline = "middle"; + break; + } + } + for (let [i, line] of lines.entries()) { + if (textData.textMargin !== void 0 && textData.textMargin === 0 && _textFontSize !== void 0) { + dy = i * _textFontSize; + } + const textElem = elem.append("text"); + textElem.attr("x", textData.x); + textElem.attr("y", yfunc()); + if (textData.anchor !== void 0) { + textElem.attr("text-anchor", textData.anchor).attr("dominant-baseline", textData.dominantBaseline).attr("alignment-baseline", textData.alignmentBaseline); + } + if (textData.fontFamily !== void 0) { + textElem.style("font-family", textData.fontFamily); + } + if (_textFontSizePx !== void 0) { + textElem.style("font-size", _textFontSizePx); + } + if (textData.fontWeight !== void 0) { + textElem.style("font-weight", textData.fontWeight); + } + if (textData.fill !== void 0) { + textElem.attr("fill", textData.fill); + } + if (textData.class !== void 0) { + textElem.attr("class", textData.class); + } + if (textData.dy !== void 0) { + textElem.attr("dy", textData.dy); + } else if (dy !== 0) { + textElem.attr("dy", dy); + } + const text = line || ZERO_WIDTH_SPACE; + if (textData.tspan) { + const span = textElem.append("tspan"); + span.attr("x", textData.x); + if (textData.fill !== void 0) { + span.attr("fill", textData.fill); + } + span.text(text); + } else { + textElem.text(text); + } + if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) { + textHeight += (textElem._groups || textElem)[0][0].getBBox().height; + prevTextHeight = textHeight; + } + textElems.push(textElem); + } + return textElems; +}; +const drawLabel = function(elem, txtObject) { + function genPoints(x, y, width, height, cut) { + return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height); + } + const polygon = elem.append("polygon"); + polygon.attr("points", genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7)); + polygon.attr("class", "labelBox"); + txtObject.y = txtObject.y + txtObject.height / 2; + drawText(elem, txtObject); + return polygon; +}; +let actorCnt = -1; +const fixLifeLineHeights = (diagram2, actors, actorKeys, conf2) => { + if (!diagram2.select) { + return; + } + actorKeys.forEach((actorKey) => { + const actor = actors[actorKey]; + const actorDOM = diagram2.select("#actor" + actor.actorCnt); + if (!conf2.mirrorActors && actor.stopy) { + actorDOM.attr("y2", actor.stopy + actor.height / 2); + } else if (conf2.mirrorActors) { + actorDOM.attr("y2", actor.stopy); + } + }); +}; +const drawActorTypeParticipant = async function(elem, actor, conf2, isFooter) { + const actorY = isFooter ? actor.stopy : actor.starty; + const center = actor.x + actor.width / 2; + const centerY = actorY + 5; + const boxplusLineGroup = elem.append("g").lower(); + var g = boxplusLineGroup; + if (!isFooter) { + actorCnt++; + if (Object.keys(actor.links || {}).length && !conf2.forceMenus) { + g.attr("onclick", popupMenuToggle(`actor${actorCnt}_popup`)).attr("cursor", "pointer"); + } + g.append("line").attr("id", "actor" + actorCnt).attr("x1", center).attr("y1", centerY).attr("x2", center).attr("y2", 2e3).attr("class", "actor-line").attr("class", "200").attr("stroke-width", "0.5px").attr("stroke", "#999"); + g = boxplusLineGroup.append("g"); + actor.actorCnt = actorCnt; + if (actor.links != null) { + g.attr("id", "root-" + actorCnt); + } + } + const rect = getNoteRect$1(); + var cssclass = "actor"; + if (actor.properties != null && actor.properties["class"]) { + cssclass = actor.properties["class"]; + } else { + rect.fill = "#eaeaea"; + } + if (isFooter) { + cssclass += ` ${BOTTOM_ACTOR_CLASS}`; + } else { + cssclass += ` ${TOP_ACTOR_CLASS}`; + } + rect.x = actor.x; + rect.y = actorY; + rect.width = actor.width; + rect.height = actor.height; + rect.class = cssclass; + rect.rx = 3; + rect.ry = 3; + rect.name = actor.name; + const rectElem = drawRect(g, rect); + actor.rectData = rect; + if (actor.properties != null && actor.properties["icon"]) { + const iconSrc = actor.properties["icon"].trim(); + if (iconSrc.charAt(0) === "@") { + drawEmbeddedImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc.substr(1)); + } else { + drawImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc); + } + } + await _drawTextCandidateFunc(conf2, hasKatex(actor.description))( + actor.description, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: "actor" }, + conf2 + ); + let height = actor.height; + if (rectElem.node) { + const bounds2 = rectElem.node().getBBox(); + actor.height = bounds2.height; + height = bounds2.height; + } + return height; +}; +const drawActorTypeActor = async function(elem, actor, conf2, isFooter) { + const actorY = isFooter ? actor.stopy : actor.starty; + const center = actor.x + actor.width / 2; + const centerY = actorY + 80; + elem.lower(); + if (!isFooter) { + actorCnt++; + elem.append("line").attr("id", "actor" + actorCnt).attr("x1", center).attr("y1", centerY).attr("x2", center).attr("y2", 2e3).attr("class", "actor-line").attr("class", "200").attr("stroke-width", "0.5px").attr("stroke", "#999"); + actor.actorCnt = actorCnt; + } + const actElem = elem.append("g"); + let cssClass = "actor-man"; + if (isFooter) { + cssClass += ` ${BOTTOM_ACTOR_CLASS}`; + } else { + cssClass += ` ${TOP_ACTOR_CLASS}`; + } + actElem.attr("class", cssClass); + actElem.attr("name", actor.name); + const rect = getNoteRect$1(); + rect.x = actor.x; + rect.y = actorY; + rect.fill = "#eaeaea"; + rect.width = actor.width; + rect.height = actor.height; + rect.class = "actor"; + rect.rx = 3; + rect.ry = 3; + actElem.append("line").attr("id", "actor-man-torso" + actorCnt).attr("x1", center).attr("y1", actorY + 25).attr("x2", center).attr("y2", actorY + 45); + actElem.append("line").attr("id", "actor-man-arms" + actorCnt).attr("x1", center - ACTOR_TYPE_WIDTH / 2).attr("y1", actorY + 33).attr("x2", center + ACTOR_TYPE_WIDTH / 2).attr("y2", actorY + 33); + actElem.append("line").attr("x1", center - ACTOR_TYPE_WIDTH / 2).attr("y1", actorY + 60).attr("x2", center).attr("y2", actorY + 45); + actElem.append("line").attr("x1", center).attr("y1", actorY + 45).attr("x2", center + ACTOR_TYPE_WIDTH / 2 - 2).attr("y2", actorY + 60); + const circle = actElem.append("circle"); + circle.attr("cx", actor.x + actor.width / 2); + circle.attr("cy", actorY + 10); + circle.attr("r", 15); + circle.attr("width", actor.width); + circle.attr("height", actor.height); + const bounds2 = actElem.node().getBBox(); + actor.height = bounds2.height; + await _drawTextCandidateFunc(conf2, hasKatex(actor.description))( + actor.description, + actElem, + rect.x, + rect.y + 35, + rect.width, + rect.height, + { class: "actor" }, + conf2 + ); + return actor.height; +}; +const drawActor = async function(elem, actor, conf2, isFooter) { + switch (actor.type) { + case "actor": + return await drawActorTypeActor(elem, actor, conf2, isFooter); + case "participant": + return await drawActorTypeParticipant(elem, actor, conf2, isFooter); + } +}; +const drawBox = async function(elem, box, conf2) { + const boxplusTextGroup = elem.append("g"); + const g = boxplusTextGroup; + drawBackgroundRect(g, box); + if (box.name) { + await _drawTextCandidateFunc(conf2)( + box.name, + g, + box.x, + box.y + (box.textMaxHeight || 0) / 2, + box.width, + 0, + { class: "text" }, + conf2 + ); + } + g.lower(); +}; +const anchorElement = function(elem) { + return elem.append("g"); +}; +const drawActivation = function(elem, bounds2, verticalPos, conf2, actorActivations2) { + const rect = getNoteRect$1(); + const g = bounds2.anchored; + rect.x = bounds2.startx; + rect.y = bounds2.starty; + rect.class = "activation" + actorActivations2 % 3; + rect.width = bounds2.stopx - bounds2.startx; + rect.height = verticalPos - bounds2.starty; + drawRect(g, rect); +}; +const drawLoop = async function(elem, loopModel, labelText, conf2) { + const { + boxMargin, + boxTextMargin, + labelBoxHeight, + labelBoxWidth, + messageFontFamily: fontFamily, + messageFontSize: fontSize, + messageFontWeight: fontWeight + } = conf2; + const g = elem.append("g"); + const drawLoopLine = function(startx, starty, stopx, stopy) { + return g.append("line").attr("x1", startx).attr("y1", starty).attr("x2", stopx).attr("y2", stopy).attr("class", "loopLine"); + }; + drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty); + drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy); + drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy); + drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy); + if (loopModel.sections !== void 0) { + loopModel.sections.forEach(function(item) { + drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style( + "stroke-dasharray", + "3, 3" + ); + }); + } + let txt = getTextObj$1(); + txt.text = labelText; + txt.x = loopModel.startx; + txt.y = loopModel.starty; + txt.fontFamily = fontFamily; + txt.fontSize = fontSize; + txt.fontWeight = fontWeight; + txt.anchor = "middle"; + txt.valign = "middle"; + txt.tspan = false; + txt.width = labelBoxWidth || 50; + txt.height = labelBoxHeight || 20; + txt.textMargin = boxTextMargin; + txt.class = "labelText"; + drawLabel(g, txt); + txt = getTextObj(); + txt.text = loopModel.title; + txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2; + txt.y = loopModel.starty + boxMargin + boxTextMargin; + txt.anchor = "middle"; + txt.valign = "middle"; + txt.textMargin = boxTextMargin; + txt.class = "loopText"; + txt.fontFamily = fontFamily; + txt.fontSize = fontSize; + txt.fontWeight = fontWeight; + txt.wrap = true; + let textElem = hasKatex(txt.text) ? await drawKatex(g, txt, loopModel) : drawText(g, txt); + if (loopModel.sectionTitles !== void 0) { + for (const [idx, item] of Object.entries(loopModel.sectionTitles)) { + if (item.message) { + txt.text = item.message; + txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2; + txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin; + txt.class = "loopText"; + txt.anchor = "middle"; + txt.valign = "middle"; + txt.tspan = false; + txt.fontFamily = fontFamily; + txt.fontSize = fontSize; + txt.fontWeight = fontWeight; + txt.wrap = loopModel.wrap; + if (hasKatex(txt.text)) { + loopModel.starty = loopModel.sections[idx].y; + await drawKatex(g, txt, loopModel); + } else { + drawText(g, txt); + } + let sectionHeight = Math.round( + textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr) + ); + loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin); + } + } + } + loopModel.height = Math.round(loopModel.stopy - loopModel.starty); + return g; +}; +const drawBackgroundRect = function(elem, bounds2) { + drawBackgroundRect$1(elem, bounds2); +}; +const insertDatabaseIcon = function(elem) { + elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr( + "d", + "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z" + ); +}; +const insertComputerIcon = function(elem) { + elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( + "d", + "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z" + ); +}; +const insertClockIcon = function(elem) { + elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( + "d", + "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z" + ); +}; +const insertArrowHead = function(elem) { + elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 7.9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z"); +}; +const insertArrowFilledHead = function(elem) { + elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 15.5).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); +}; +const insertSequenceNumber = function(elem) { + elem.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6); +}; +const insertArrowCrossHead = function(elem) { + const defs = elem.append("defs"); + const marker = defs.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 4).attr("refY", 4.5); + marker.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1pt").attr("d", "M 1,2 L 6,7 M 6,2 L 1,7"); +}; +const getTextObj = function() { + return { + x: 0, + y: 0, + fill: void 0, + anchor: void 0, + style: "#666", + width: void 0, + height: void 0, + textMargin: 0, + rx: 0, + ry: 0, + tspan: true, + valign: void 0 + }; +}; +const getNoteRect = function() { + return { + x: 0, + y: 0, + fill: "#EDF2AE", + stroke: "#666", + width: 100, + anchor: "start", + height: 100, + rx: 0, + ry: 0 + }; +}; +const _drawTextCandidateFunc = function() { + function byText(content, g, x, y, width, height, textAttrs) { + const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("text-anchor", "middle").text(content); + _setTextAttrs(text, textAttrs); + } + function byTspan(content, g, x, y, width, height, textAttrs, conf2) { + const { actorFontSize, actorFontFamily, actorFontWeight } = conf2; + const [_actorFontSize, _actorFontSizePx] = parseFontSize(actorFontSize); + const lines = content.split(common.lineBreakRegex); + for (let i = 0; i < lines.length; i++) { + const dy = i * _actorFontSize - _actorFontSize * (lines.length - 1) / 2; + const text = g.append("text").attr("x", x + width / 2).attr("y", y).style("text-anchor", "middle").style("font-size", _actorFontSizePx).style("font-weight", actorFontWeight).style("font-family", actorFontFamily); + text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]); + text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"); + _setTextAttrs(text, textAttrs); + } + } + function byFo(content, g, x, y, width, height, textAttrs, conf2) { + const s = g.append("switch"); + const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height); + const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); + byTspan(content, s, x, y, width, height, textAttrs, conf2); + _setTextAttrs(text, textAttrs); + } + async function byKatex(content, g, x, y, width, height, textAttrs, conf2) { + const dim = await calculateMathMLDimensions(content, getConfig$1()); + const s = g.append("switch"); + const f = s.append("foreignObject").attr("x", x + width / 2 - dim.width / 2).attr("y", y + height / 2 - dim.height / 2).attr("width", dim.width).attr("height", dim.height); + const text = f.append("xhtml:div").style("height", "100%").style("width", "100%"); + text.append("div").style("text-align", "center").style("vertical-align", "middle").html(await renderKatex(content, getConfig$1())); + byTspan(content, s, x, y, width, height, textAttrs, conf2); + _setTextAttrs(text, textAttrs); + } + function _setTextAttrs(toText, fromTextAttrsDict) { + for (const key in fromTextAttrsDict) { + if (fromTextAttrsDict.hasOwnProperty(key)) { + toText.attr(key, fromTextAttrsDict[key]); + } + } + } + return function(conf2, hasKatex2 = false) { + if (hasKatex2) { + return byKatex; + } + return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan; + }; +}(); +const _drawMenuItemTextCandidateFunc = function() { + function byText(content, g, x, y, width, height, textAttrs) { + const text = g.append("text").attr("x", x).attr("y", y).style("text-anchor", "start").text(content); + _setTextAttrs(text, textAttrs); + } + function byTspan(content, g, x, y, width, height, textAttrs, conf2) { + const { actorFontSize, actorFontFamily, actorFontWeight } = conf2; + const lines = content.split(common.lineBreakRegex); + for (let i = 0; i < lines.length; i++) { + const dy = i * actorFontSize - actorFontSize * (lines.length - 1) / 2; + const text = g.append("text").attr("x", x).attr("y", y).style("text-anchor", "start").style("font-size", actorFontSize).style("font-weight", actorFontWeight).style("font-family", actorFontFamily); + text.append("tspan").attr("x", x).attr("dy", dy).text(lines[i]); + text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"); + _setTextAttrs(text, textAttrs); + } + } + function byFo(content, g, x, y, width, height, textAttrs, conf2) { + const s = g.append("switch"); + const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height); + const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); + byTspan(content, s, x, y, width, height, textAttrs, conf2); + _setTextAttrs(text, textAttrs); + } + function _setTextAttrs(toText, fromTextAttrsDict) { + for (const key in fromTextAttrsDict) { + if (fromTextAttrsDict.hasOwnProperty(key)) { + toText.attr(key, fromTextAttrsDict[key]); + } + } + } + return function(conf2) { + return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan; + }; +}(); +const svgDraw = { + drawRect, + drawText, + drawLabel, + drawActor, + drawBox, + drawPopup, + anchorElement, + drawActivation, + drawLoop, + drawBackgroundRect, + insertArrowHead, + insertArrowFilledHead, + insertSequenceNumber, + insertArrowCrossHead, + insertDatabaseIcon, + insertComputerIcon, + insertClockIcon, + getTextObj, + getNoteRect, + fixLifeLineHeights, + sanitizeUrl: dist.sanitizeUrl +}; +let conf = {}; +const bounds = { + data: { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0 + }, + verticalPos: 0, + sequenceItems: [], + activations: [], + models: { + getHeight: function() { + return Math.max.apply( + null, + this.actors.length === 0 ? [0] : this.actors.map((actor) => actor.height || 0) + ) + (this.loops.length === 0 ? 0 : this.loops.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.messages.length === 0 ? 0 : this.messages.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.notes.length === 0 ? 0 : this.notes.map((it) => it.height || 0).reduce((acc, h) => acc + h)); + }, + clear: function() { + this.actors = []; + this.boxes = []; + this.loops = []; + this.messages = []; + this.notes = []; + }, + addBox: function(boxModel) { + this.boxes.push(boxModel); + }, + addActor: function(actorModel) { + this.actors.push(actorModel); + }, + addLoop: function(loopModel) { + this.loops.push(loopModel); + }, + addMessage: function(msgModel) { + this.messages.push(msgModel); + }, + addNote: function(noteModel) { + this.notes.push(noteModel); + }, + lastActor: function() { + return this.actors[this.actors.length - 1]; + }, + lastLoop: function() { + return this.loops[this.loops.length - 1]; + }, + lastMessage: function() { + return this.messages[this.messages.length - 1]; + }, + lastNote: function() { + return this.notes[this.notes.length - 1]; + }, + actors: [], + boxes: [], + loops: [], + messages: [], + notes: [] + }, + init: function() { + this.sequenceItems = []; + this.activations = []; + this.models.clear(); + this.data = { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0 + }; + this.verticalPos = 0; + setConf(getConfig()); + }, + updateVal: function(obj, key, val, fun) { + if (obj[key] === void 0) { + obj[key] = val; + } else { + obj[key] = fun(val, obj[key]); + } + }, + updateBounds: function(startx, starty, stopx, stopy) { + const _self = this; + let cnt = 0; + function updateFn(type) { + return function updateItemBounds(item) { + cnt++; + const n = _self.sequenceItems.length - cnt + 1; + _self.updateVal(item, "starty", starty - n * conf.boxMargin, Math.min); + _self.updateVal(item, "stopy", stopy + n * conf.boxMargin, Math.max); + _self.updateVal(bounds.data, "startx", startx - n * conf.boxMargin, Math.min); + _self.updateVal(bounds.data, "stopx", stopx + n * conf.boxMargin, Math.max); + if (!(type === "activation")) { + _self.updateVal(item, "startx", startx - n * conf.boxMargin, Math.min); + _self.updateVal(item, "stopx", stopx + n * conf.boxMargin, Math.max); + _self.updateVal(bounds.data, "starty", starty - n * conf.boxMargin, Math.min); + _self.updateVal(bounds.data, "stopy", stopy + n * conf.boxMargin, Math.max); + } + }; + } + this.sequenceItems.forEach(updateFn()); + this.activations.forEach(updateFn("activation")); + }, + insert: function(startx, starty, stopx, stopy) { + const _startx = common.getMin(startx, stopx); + const _stopx = common.getMax(startx, stopx); + const _starty = common.getMin(starty, stopy); + const _stopy = common.getMax(starty, stopy); + this.updateVal(bounds.data, "startx", _startx, Math.min); + this.updateVal(bounds.data, "starty", _starty, Math.min); + this.updateVal(bounds.data, "stopx", _stopx, Math.max); + this.updateVal(bounds.data, "stopy", _stopy, Math.max); + this.updateBounds(_startx, _starty, _stopx, _stopy); + }, + newActivation: function(message, diagram2, actors) { + const actorRect = actors[message.from.actor]; + const stackedSize = actorActivations(message.from.actor).length || 0; + const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2; + this.activations.push({ + startx: x, + starty: this.verticalPos + 2, + stopx: x + conf.activationWidth, + stopy: void 0, + actor: message.from.actor, + anchored: svgDraw.anchorElement(diagram2) + }); + }, + endActivation: function(message) { + const lastActorActivationIdx = this.activations.map(function(activation) { + return activation.actor; + }).lastIndexOf(message.from.actor); + return this.activations.splice(lastActorActivationIdx, 1)[0]; + }, + createLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) { + return { + startx: void 0, + starty: this.verticalPos, + stopx: void 0, + stopy: void 0, + title: title.message, + wrap: title.wrap, + width: title.width, + height: 0, + fill + }; + }, + newLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) { + this.sequenceItems.push(this.createLoop(title, fill)); + }, + endLoop: function() { + return this.sequenceItems.pop(); + }, + isLoopOverlap: function() { + return this.sequenceItems.length ? this.sequenceItems[this.sequenceItems.length - 1].overlap : false; + }, + addSectionToLoop: function(message) { + const loop = this.sequenceItems.pop(); + loop.sections = loop.sections || []; + loop.sectionTitles = loop.sectionTitles || []; + loop.sections.push({ y: bounds.getVerticalPos(), height: 0 }); + loop.sectionTitles.push(message); + this.sequenceItems.push(loop); + }, + saveVerticalPos: function() { + if (this.isLoopOverlap()) { + this.savedVerticalPos = this.verticalPos; + } + }, + resetVerticalPos: function() { + if (this.isLoopOverlap()) { + this.verticalPos = this.savedVerticalPos; + } + }, + bumpVerticalPos: function(bump) { + this.verticalPos = this.verticalPos + bump; + this.data.stopy = common.getMax(this.data.stopy, this.verticalPos); + }, + getVerticalPos: function() { + return this.verticalPos; + }, + getBounds: function() { + return { bounds: this.data, models: this.models }; + } +}; +const drawNote = async function(elem, noteModel) { + bounds.bumpVerticalPos(conf.boxMargin); + noteModel.height = conf.boxMargin; + noteModel.starty = bounds.getVerticalPos(); + const rect = getNoteRect$1(); + rect.x = noteModel.startx; + rect.y = noteModel.starty; + rect.width = noteModel.width || conf.width; + rect.class = "note"; + const g = elem.append("g"); + const rectElem = svgDraw.drawRect(g, rect); + const textObj = getTextObj$1(); + textObj.x = noteModel.startx; + textObj.y = noteModel.starty; + textObj.width = rect.width; + textObj.dy = "1em"; + textObj.text = noteModel.message; + textObj.class = "noteText"; + textObj.fontFamily = conf.noteFontFamily; + textObj.fontSize = conf.noteFontSize; + textObj.fontWeight = conf.noteFontWeight; + textObj.anchor = conf.noteAlign; + textObj.textMargin = conf.noteMargin; + textObj.valign = "center"; + const textElem = hasKatex(textObj.text) ? await drawKatex(g, textObj) : drawText(g, textObj); + const textHeight = Math.round( + textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr) + ); + rectElem.attr("height", textHeight + 2 * conf.noteMargin); + noteModel.height += textHeight + 2 * conf.noteMargin; + bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin); + noteModel.stopy = noteModel.starty + textHeight + 2 * conf.noteMargin; + noteModel.stopx = noteModel.startx + rect.width; + bounds.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy); + bounds.models.addNote(noteModel); +}; +const messageFont = (cnf) => { + return { + fontFamily: cnf.messageFontFamily, + fontSize: cnf.messageFontSize, + fontWeight: cnf.messageFontWeight + }; +}; +const noteFont = (cnf) => { + return { + fontFamily: cnf.noteFontFamily, + fontSize: cnf.noteFontSize, + fontWeight: cnf.noteFontWeight + }; +}; +const actorFont = (cnf) => { + return { + fontFamily: cnf.actorFontFamily, + fontSize: cnf.actorFontSize, + fontWeight: cnf.actorFontWeight + }; +}; +async function boundMessage(_diagram, msgModel) { + bounds.bumpVerticalPos(10); + const { startx, stopx, message } = msgModel; + const lines = common.splitBreaks(message).length; + const isKatexMsg = hasKatex(message); + const textDims = isKatexMsg ? await calculateMathMLDimensions(message, getConfig()) : utils.calculateTextDimensions(message, messageFont(conf)); + if (!isKatexMsg) { + const lineHeight = textDims.height / lines; + msgModel.height += lineHeight; + bounds.bumpVerticalPos(lineHeight); + } + let lineStartY; + let totalOffset = textDims.height - 10; + const textWidth = textDims.width; + if (startx === stopx) { + lineStartY = bounds.getVerticalPos() + totalOffset; + if (!conf.rightAngles) { + totalOffset += conf.boxMargin; + lineStartY = bounds.getVerticalPos() + totalOffset; + } + totalOffset += 30; + const dx = common.getMax(textWidth / 2, conf.width / 2); + bounds.insert( + startx - dx, + bounds.getVerticalPos() - 10 + totalOffset, + stopx + dx, + bounds.getVerticalPos() + 30 + totalOffset + ); + } else { + totalOffset += conf.boxMargin; + lineStartY = bounds.getVerticalPos() + totalOffset; + bounds.insert(startx, lineStartY - 10, stopx, lineStartY); + } + bounds.bumpVerticalPos(totalOffset); + msgModel.height += totalOffset; + msgModel.stopy = msgModel.starty + msgModel.height; + bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy); + return lineStartY; +} +const drawMessage = async function(diagram2, msgModel, lineStartY, diagObj) { + const { startx, stopx, starty, message, type, sequenceIndex, sequenceVisible } = msgModel; + const textDims = utils.calculateTextDimensions(message, messageFont(conf)); + const textObj = getTextObj$1(); + textObj.x = startx; + textObj.y = starty + 10; + textObj.width = stopx - startx; + textObj.class = "messageText"; + textObj.dy = "1em"; + textObj.text = message; + textObj.fontFamily = conf.messageFontFamily; + textObj.fontSize = conf.messageFontSize; + textObj.fontWeight = conf.messageFontWeight; + textObj.anchor = conf.messageAlign; + textObj.valign = "center"; + textObj.textMargin = conf.wrapPadding; + textObj.tspan = false; + hasKatex(textObj.text) ? await drawKatex(diagram2, textObj, { startx, stopx, starty: lineStartY }) : drawText(diagram2, textObj); + const textWidth = textDims.width; + let line; + if (startx === stopx) { + if (conf.rightAngles) { + line = diagram2.append("path").attr( + "d", + `M ${startx},${lineStartY} H ${startx + common.getMax(conf.width / 2, textWidth / 2)} V ${lineStartY + 25} H ${startx}` + ); + } else { + line = diagram2.append("path").attr( + "d", + "M " + startx + "," + lineStartY + " C " + (startx + 60) + "," + (lineStartY - 10) + " " + (startx + 60) + "," + (lineStartY + 30) + " " + startx + "," + (lineStartY + 20) + ); + } + } else { + line = diagram2.append("line"); + line.attr("x1", startx); + line.attr("y1", lineStartY); + line.attr("x2", stopx); + line.attr("y2", lineStartY); + } + if (type === diagObj.db.LINETYPE.DOTTED || type === diagObj.db.LINETYPE.DOTTED_CROSS || type === diagObj.db.LINETYPE.DOTTED_POINT || type === diagObj.db.LINETYPE.DOTTED_OPEN) { + line.style("stroke-dasharray", "3, 3"); + line.attr("class", "messageLine1"); + } else { + line.attr("class", "messageLine0"); + } + let url = ""; + if (conf.arrowMarkerAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); + } + line.attr("stroke-width", 2); + line.attr("stroke", "none"); + line.style("fill", "none"); + if (type === diagObj.db.LINETYPE.SOLID || type === diagObj.db.LINETYPE.DOTTED) { + line.attr("marker-end", "url(" + url + "#arrowhead)"); + } + if (type === diagObj.db.LINETYPE.SOLID_POINT || type === diagObj.db.LINETYPE.DOTTED_POINT) { + line.attr("marker-end", "url(" + url + "#filled-head)"); + } + if (type === diagObj.db.LINETYPE.SOLID_CROSS || type === diagObj.db.LINETYPE.DOTTED_CROSS) { + line.attr("marker-end", "url(" + url + "#crosshead)"); + } + if (sequenceVisible || conf.showSequenceNumbers) { + line.attr("marker-start", "url(" + url + "#sequencenumber)"); + diagram2.append("text").attr("x", startx).attr("y", lineStartY + 4).attr("font-family", "sans-serif").attr("font-size", "12px").attr("text-anchor", "middle").attr("class", "sequenceNumber").text(sequenceIndex); + } +}; +const addActorRenderingData = async function(diagram2, actors, createdActors, actorKeys, verticalPos, messages, isFooter) { + let prevWidth = 0; + let prevMargin = 0; + let prevBox = void 0; + let maxHeight = 0; + for (const actorKey of actorKeys) { + const actor = actors[actorKey]; + const box = actor.box; + if (prevBox && prevBox != box) { + if (!isFooter) { + bounds.models.addBox(prevBox); + } + prevMargin += conf.boxMargin + prevBox.margin; + } + if (box && box != prevBox) { + if (!isFooter) { + box.x = prevWidth + prevMargin; + box.y = verticalPos; + } + prevMargin += box.margin; + } + actor.width = actor.width || conf.width; + actor.height = common.getMax(actor.height || conf.height, conf.height); + actor.margin = actor.margin || conf.actorMargin; + maxHeight = common.getMax(maxHeight, actor.height); + if (createdActors[actor.name]) { + prevMargin += actor.width / 2; + } + actor.x = prevWidth + prevMargin; + actor.starty = bounds.getVerticalPos(); + bounds.insert(actor.x, verticalPos, actor.x + actor.width, actor.height); + prevWidth += actor.width + prevMargin; + if (actor.box) { + actor.box.width = prevWidth + box.margin - actor.box.x; + } + prevMargin = actor.margin; + prevBox = actor.box; + bounds.models.addActor(actor); + } + if (prevBox && !isFooter) { + bounds.models.addBox(prevBox); + } + bounds.bumpVerticalPos(maxHeight); +}; +const drawActors = async function(diagram2, actors, actorKeys, isFooter) { + if (!isFooter) { + for (const actorKey of actorKeys) { + const actor = actors[actorKey]; + await svgDraw.drawActor(diagram2, actor, conf, false); + } + } else { + let maxHeight = 0; + bounds.bumpVerticalPos(conf.boxMargin * 2); + for (const actorKey of actorKeys) { + const actor = actors[actorKey]; + if (!actor.stopy) { + actor.stopy = bounds.getVerticalPos(); + } + const height = await svgDraw.drawActor(diagram2, actor, conf, true); + maxHeight = common.getMax(maxHeight, height); + } + bounds.bumpVerticalPos(maxHeight + conf.boxMargin); + } +}; +const drawActorsPopup = function(diagram2, actors, actorKeys, doc) { + let maxHeight = 0; + let maxWidth = 0; + for (const actorKey of actorKeys) { + const actor = actors[actorKey]; + const minMenuWidth = getRequiredPopupWidth(actor); + const menuDimensions = svgDraw.drawPopup( + diagram2, + actor, + minMenuWidth, + conf, + conf.forceMenus, + doc + ); + if (menuDimensions.height > maxHeight) { + maxHeight = menuDimensions.height; + } + if (menuDimensions.width + actor.x > maxWidth) { + maxWidth = menuDimensions.width + actor.x; + } + } + return { maxHeight, maxWidth }; +}; +const setConf = function(cnf) { + assignWithDepth(conf, cnf); + if (cnf.fontFamily) { + conf.actorFontFamily = conf.noteFontFamily = conf.messageFontFamily = cnf.fontFamily; + } + if (cnf.fontSize) { + conf.actorFontSize = conf.noteFontSize = conf.messageFontSize = cnf.fontSize; + } + if (cnf.fontWeight) { + conf.actorFontWeight = conf.noteFontWeight = conf.messageFontWeight = cnf.fontWeight; + } +}; +const actorActivations = function(actor) { + return bounds.activations.filter(function(activation) { + return activation.actor === actor; + }); +}; +const activationBounds = function(actor, actors) { + const actorObj = actors[actor]; + const activations = actorActivations(actor); + const left = activations.reduce(function(acc, activation) { + return common.getMin(acc, activation.startx); + }, actorObj.x + actorObj.width / 2 - 1); + const right = activations.reduce(function(acc, activation) { + return common.getMax(acc, activation.stopx); + }, actorObj.x + actorObj.width / 2 + 1); + return [left, right]; +}; +function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) { + bounds.bumpVerticalPos(preMargin); + let heightAdjust = postMargin; + if (msg.id && msg.message && loopWidths[msg.id]) { + const loopWidth = loopWidths[msg.id].width; + const textConf = messageFont(conf); + msg.message = utils.wrapLabel(`[${msg.message}]`, loopWidth - 2 * conf.wrapPadding, textConf); + msg.width = loopWidth; + msg.wrap = true; + const textDims = utils.calculateTextDimensions(msg.message, textConf); + const totalOffset = common.getMax(textDims.height, conf.labelBoxHeight); + heightAdjust = postMargin + totalOffset; + log.debug(`${totalOffset} - ${msg.message}`); + } + addLoopFn(msg); + bounds.bumpVerticalPos(heightAdjust); +} +function adjustCreatedDestroyedData(msg, msgModel, lineStartY, index, actors, createdActors, destroyedActors) { + function receiverAdjustment(actor, adjustment) { + if (actor.x < actors[msg.from].x) { + bounds.insert( + msgModel.stopx - adjustment, + msgModel.starty, + msgModel.startx, + msgModel.stopy + actor.height / 2 + conf.noteMargin + ); + msgModel.stopx = msgModel.stopx + adjustment; + } else { + bounds.insert( + msgModel.startx, + msgModel.starty, + msgModel.stopx + adjustment, + msgModel.stopy + actor.height / 2 + conf.noteMargin + ); + msgModel.stopx = msgModel.stopx - adjustment; + } + } + function senderAdjustment(actor, adjustment) { + if (actor.x < actors[msg.to].x) { + bounds.insert( + msgModel.startx - adjustment, + msgModel.starty, + msgModel.stopx, + msgModel.stopy + actor.height / 2 + conf.noteMargin + ); + msgModel.startx = msgModel.startx + adjustment; + } else { + bounds.insert( + msgModel.stopx, + msgModel.starty, + msgModel.startx + adjustment, + msgModel.stopy + actor.height / 2 + conf.noteMargin + ); + msgModel.startx = msgModel.startx - adjustment; + } + } + if (createdActors[msg.to] == index) { + const actor = actors[msg.to]; + const adjustment = actor.type == "actor" ? ACTOR_TYPE_WIDTH / 2 + 3 : actor.width / 2 + 3; + receiverAdjustment(actor, adjustment); + actor.starty = lineStartY - actor.height / 2; + bounds.bumpVerticalPos(actor.height / 2); + } else if (destroyedActors[msg.from] == index) { + const actor = actors[msg.from]; + if (conf.mirrorActors) { + const adjustment = actor.type == "actor" ? ACTOR_TYPE_WIDTH / 2 : actor.width / 2; + senderAdjustment(actor, adjustment); + } + actor.stopy = lineStartY - actor.height / 2; + bounds.bumpVerticalPos(actor.height / 2); + } else if (destroyedActors[msg.to] == index) { + const actor = actors[msg.to]; + if (conf.mirrorActors) { + const adjustment = actor.type == "actor" ? ACTOR_TYPE_WIDTH / 2 + 3 : actor.width / 2 + 3; + receiverAdjustment(actor, adjustment); + } + actor.stopy = lineStartY - actor.height / 2; + bounds.bumpVerticalPos(actor.height / 2); + } +} +const draw = async function(_text, id, _version, diagObj) { + const { securityLevel, sequence } = getConfig(); + conf = sequence; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + bounds.init(); + log.debug(diagObj.db); + const diagram2 = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : d3select(`[id="${id}"]`); + const actors = diagObj.db.getActors(); + const createdActors = diagObj.db.getCreatedActors(); + const destroyedActors = diagObj.db.getDestroyedActors(); + const boxes = diagObj.db.getBoxes(); + let actorKeys = diagObj.db.getActorKeys(); + const messages = diagObj.db.getMessages(); + const title = diagObj.db.getDiagramTitle(); + const hasBoxes = diagObj.db.hasAtLeastOneBox(); + const hasBoxTitles = diagObj.db.hasAtLeastOneBoxWithTitle(); + const maxMessageWidthPerActor = await getMaxMessageWidthPerActor(actors, messages, diagObj); + conf.height = await calculateActorMargins(actors, maxMessageWidthPerActor, boxes); + svgDraw.insertComputerIcon(diagram2); + svgDraw.insertDatabaseIcon(diagram2); + svgDraw.insertClockIcon(diagram2); + if (hasBoxes) { + bounds.bumpVerticalPos(conf.boxMargin); + if (hasBoxTitles) { + bounds.bumpVerticalPos(boxes[0].textMaxHeight); + } + } + if (conf.hideUnusedParticipants === true) { + const newActors = /* @__PURE__ */ new Set(); + messages.forEach((message) => { + newActors.add(message.from); + newActors.add(message.to); + }); + actorKeys = actorKeys.filter((actorKey) => newActors.has(actorKey)); + } + await addActorRenderingData(diagram2, actors, createdActors, actorKeys, 0, messages, false); + const loopWidths = await calculateLoopBounds(messages, actors, maxMessageWidthPerActor, diagObj); + svgDraw.insertArrowHead(diagram2); + svgDraw.insertArrowCrossHead(diagram2); + svgDraw.insertArrowFilledHead(diagram2); + svgDraw.insertSequenceNumber(diagram2); + function activeEnd(msg, verticalPos) { + const activationData = bounds.endActivation(msg); + if (activationData.starty + 18 > verticalPos) { + activationData.starty = verticalPos - 6; + verticalPos += 12; + } + svgDraw.drawActivation( + diagram2, + activationData, + verticalPos, + conf, + actorActivations(msg.from.actor).length + ); + bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos); + } + let sequenceIndex = 1; + let sequenceIndexStep = 1; + const messagesToDraw = []; + const backgrounds = []; + let index = 0; + for (const msg of messages) { + let loopModel, noteModel, msgModel; + switch (msg.type) { + case diagObj.db.LINETYPE.NOTE: + bounds.resetVerticalPos(); + noteModel = msg.noteModel; + await drawNote(diagram2, noteModel); + break; + case diagObj.db.LINETYPE.ACTIVE_START: + bounds.newActivation(msg, diagram2, actors); + break; + case diagObj.db.LINETYPE.ACTIVE_END: + activeEnd(msg, bounds.getVerticalPos()); + break; + case diagObj.db.LINETYPE.LOOP_START: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin, + conf.boxMargin + conf.boxTextMargin, + (message) => bounds.newLoop(message) + ); + break; + case diagObj.db.LINETYPE.LOOP_END: + loopModel = bounds.endLoop(); + await svgDraw.drawLoop(diagram2, loopModel, "loop", conf); + bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); + bounds.models.addLoop(loopModel); + break; + case diagObj.db.LINETYPE.RECT_START: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin, + conf.boxMargin, + (message) => bounds.newLoop(void 0, message.message) + ); + break; + case diagObj.db.LINETYPE.RECT_END: + loopModel = bounds.endLoop(); + backgrounds.push(loopModel); + bounds.models.addLoop(loopModel); + bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); + break; + case diagObj.db.LINETYPE.OPT_START: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin, + conf.boxMargin + conf.boxTextMargin, + (message) => bounds.newLoop(message) + ); + break; + case diagObj.db.LINETYPE.OPT_END: + loopModel = bounds.endLoop(); + await svgDraw.drawLoop(diagram2, loopModel, "opt", conf); + bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); + bounds.models.addLoop(loopModel); + break; + case diagObj.db.LINETYPE.ALT_START: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin, + conf.boxMargin + conf.boxTextMargin, + (message) => bounds.newLoop(message) + ); + break; + case diagObj.db.LINETYPE.ALT_ELSE: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin + conf.boxTextMargin, + conf.boxMargin, + (message) => bounds.addSectionToLoop(message) + ); + break; + case diagObj.db.LINETYPE.ALT_END: + loopModel = bounds.endLoop(); + await svgDraw.drawLoop(diagram2, loopModel, "alt", conf); + bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); + bounds.models.addLoop(loopModel); + break; + case diagObj.db.LINETYPE.PAR_START: + case diagObj.db.LINETYPE.PAR_OVER_START: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin, + conf.boxMargin + conf.boxTextMargin, + (message) => bounds.newLoop(message) + ); + bounds.saveVerticalPos(); + break; + case diagObj.db.LINETYPE.PAR_AND: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin + conf.boxTextMargin, + conf.boxMargin, + (message) => bounds.addSectionToLoop(message) + ); + break; + case diagObj.db.LINETYPE.PAR_END: + loopModel = bounds.endLoop(); + await svgDraw.drawLoop(diagram2, loopModel, "par", conf); + bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); + bounds.models.addLoop(loopModel); + break; + case diagObj.db.LINETYPE.AUTONUMBER: + sequenceIndex = msg.message.start || sequenceIndex; + sequenceIndexStep = msg.message.step || sequenceIndexStep; + if (msg.message.visible) { + diagObj.db.enableSequenceNumbers(); + } else { + diagObj.db.disableSequenceNumbers(); + } + break; + case diagObj.db.LINETYPE.CRITICAL_START: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin, + conf.boxMargin + conf.boxTextMargin, + (message) => bounds.newLoop(message) + ); + break; + case diagObj.db.LINETYPE.CRITICAL_OPTION: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin + conf.boxTextMargin, + conf.boxMargin, + (message) => bounds.addSectionToLoop(message) + ); + break; + case diagObj.db.LINETYPE.CRITICAL_END: + loopModel = bounds.endLoop(); + await svgDraw.drawLoop(diagram2, loopModel, "critical", conf); + bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); + bounds.models.addLoop(loopModel); + break; + case diagObj.db.LINETYPE.BREAK_START: + adjustLoopHeightForWrap( + loopWidths, + msg, + conf.boxMargin, + conf.boxMargin + conf.boxTextMargin, + (message) => bounds.newLoop(message) + ); + break; + case diagObj.db.LINETYPE.BREAK_END: + loopModel = bounds.endLoop(); + await svgDraw.drawLoop(diagram2, loopModel, "break", conf); + bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); + bounds.models.addLoop(loopModel); + break; + default: + try { + msgModel = msg.msgModel; + msgModel.starty = bounds.getVerticalPos(); + msgModel.sequenceIndex = sequenceIndex; + msgModel.sequenceVisible = diagObj.db.showSequenceNumbers(); + const lineStartY = await boundMessage(diagram2, msgModel); + adjustCreatedDestroyedData( + msg, + msgModel, + lineStartY, + index, + actors, + createdActors, + destroyedActors + ); + messagesToDraw.push({ messageModel: msgModel, lineStartY }); + bounds.models.addMessage(msgModel); + } catch (e) { + log.error("error while drawing message", e); + } + } + if ([ + diagObj.db.LINETYPE.SOLID_OPEN, + diagObj.db.LINETYPE.DOTTED_OPEN, + diagObj.db.LINETYPE.SOLID, + diagObj.db.LINETYPE.DOTTED, + diagObj.db.LINETYPE.SOLID_CROSS, + diagObj.db.LINETYPE.DOTTED_CROSS, + diagObj.db.LINETYPE.SOLID_POINT, + diagObj.db.LINETYPE.DOTTED_POINT + ].includes(msg.type)) { + sequenceIndex = sequenceIndex + sequenceIndexStep; + } + index++; + } + log.debug("createdActors", createdActors); + log.debug("destroyedActors", destroyedActors); + await drawActors(diagram2, actors, actorKeys, false); + for (const e of messagesToDraw) { + await drawMessage(diagram2, e.messageModel, e.lineStartY, diagObj); + } + if (conf.mirrorActors) { + await drawActors(diagram2, actors, actorKeys, true); + } + backgrounds.forEach((e) => svgDraw.drawBackgroundRect(diagram2, e)); + fixLifeLineHeights(diagram2, actors, actorKeys, conf); + for (const box2 of bounds.models.boxes) { + box2.height = bounds.getVerticalPos() - box2.y; + bounds.insert(box2.x, box2.y, box2.x + box2.width, box2.height); + box2.startx = box2.x; + box2.starty = box2.y; + box2.stopx = box2.startx + box2.width; + box2.stopy = box2.starty + box2.height; + box2.stroke = "rgb(0,0,0, 0.5)"; + await svgDraw.drawBox(diagram2, box2, conf); + } + if (hasBoxes) { + bounds.bumpVerticalPos(conf.boxMargin); + } + const requiredBoxSize = drawActorsPopup(diagram2, actors, actorKeys, doc); + const { bounds: box } = bounds.getBounds(); + let boxHeight = box.stopy - box.starty; + if (boxHeight < requiredBoxSize.maxHeight) { + boxHeight = requiredBoxSize.maxHeight; + } + let height = boxHeight + 2 * conf.diagramMarginY; + if (conf.mirrorActors) { + height = height - conf.boxMargin + conf.bottomMarginAdj; + } + let boxWidth = box.stopx - box.startx; + if (boxWidth < requiredBoxSize.maxWidth) { + boxWidth = requiredBoxSize.maxWidth; + } + const width = boxWidth + 2 * conf.diagramMarginX; + if (title) { + diagram2.append("text").text(title).attr("x", (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr("y", -25); + } + configureSvgSize(diagram2, height, width, conf.useMaxWidth); + const extraVertForTitle = title ? 40 : 0; + diagram2.attr( + "viewBox", + box.startx - conf.diagramMarginX + " -" + (conf.diagramMarginY + extraVertForTitle) + " " + width + " " + (height + extraVertForTitle) + ); + log.debug(`models:`, bounds.models); +}; +async function getMaxMessageWidthPerActor(actors, messages, diagObj) { + const maxMessageWidthPerActor = {}; + for (const msg of messages) { + if (actors[msg.to] && actors[msg.from]) { + const actor = actors[msg.to]; + if (msg.placement === diagObj.db.PLACEMENT.LEFTOF && !actor.prevActor) { + continue; + } + if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF && !actor.nextActor) { + continue; + } + const isNote = msg.placement !== void 0; + const isMessage = !isNote; + const textFont = isNote ? noteFont(conf) : messageFont(conf); + const wrappedMessage = msg.wrap ? utils.wrapLabel(msg.message, conf.width - 2 * conf.wrapPadding, textFont) : msg.message; + const messageDimensions = hasKatex(wrappedMessage) ? await calculateMathMLDimensions(msg.message, getConfig()) : utils.calculateTextDimensions(wrappedMessage, textFont); + const messageWidth = messageDimensions.width + 2 * conf.wrapPadding; + if (isMessage && msg.from === actor.nextActor) { + maxMessageWidthPerActor[msg.to] = common.getMax( + maxMessageWidthPerActor[msg.to] || 0, + messageWidth + ); + } else if (isMessage && msg.from === actor.prevActor) { + maxMessageWidthPerActor[msg.from] = common.getMax( + maxMessageWidthPerActor[msg.from] || 0, + messageWidth + ); + } else if (isMessage && msg.from === msg.to) { + maxMessageWidthPerActor[msg.from] = common.getMax( + maxMessageWidthPerActor[msg.from] || 0, + messageWidth / 2 + ); + maxMessageWidthPerActor[msg.to] = common.getMax( + maxMessageWidthPerActor[msg.to] || 0, + messageWidth / 2 + ); + } else if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) { + maxMessageWidthPerActor[msg.from] = common.getMax( + maxMessageWidthPerActor[msg.from] || 0, + messageWidth + ); + } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) { + maxMessageWidthPerActor[actor.prevActor] = common.getMax( + maxMessageWidthPerActor[actor.prevActor] || 0, + messageWidth + ); + } else if (msg.placement === diagObj.db.PLACEMENT.OVER) { + if (actor.prevActor) { + maxMessageWidthPerActor[actor.prevActor] = common.getMax( + maxMessageWidthPerActor[actor.prevActor] || 0, + messageWidth / 2 + ); + } + if (actor.nextActor) { + maxMessageWidthPerActor[msg.from] = common.getMax( + maxMessageWidthPerActor[msg.from] || 0, + messageWidth / 2 + ); + } + } + } + } + log.debug("maxMessageWidthPerActor:", maxMessageWidthPerActor); + return maxMessageWidthPerActor; +} +const getRequiredPopupWidth = function(actor) { + let requiredPopupWidth = 0; + const textFont = actorFont(conf); + for (const key in actor.links) { + const labelDimensions = utils.calculateTextDimensions(key, textFont); + const labelWidth = labelDimensions.width + 2 * conf.wrapPadding + 2 * conf.boxMargin; + if (requiredPopupWidth < labelWidth) { + requiredPopupWidth = labelWidth; + } + } + return requiredPopupWidth; +}; +async function calculateActorMargins(actors, actorToMessageWidth, boxes) { + let maxHeight = 0; + for (const prop of Object.keys(actors)) { + const actor = actors[prop]; + if (actor.wrap) { + actor.description = utils.wrapLabel( + actor.description, + conf.width - 2 * conf.wrapPadding, + actorFont(conf) + ); + } + const actDims = hasKatex(actor.description) ? await calculateMathMLDimensions(actor.description, getConfig()) : utils.calculateTextDimensions(actor.description, actorFont(conf)); + actor.width = actor.wrap ? conf.width : common.getMax(conf.width, actDims.width + 2 * conf.wrapPadding); + actor.height = actor.wrap ? common.getMax(actDims.height, conf.height) : conf.height; + maxHeight = common.getMax(maxHeight, actor.height); + } + for (const actorKey in actorToMessageWidth) { + const actor = actors[actorKey]; + if (!actor) { + continue; + } + const nextActor = actors[actor.nextActor]; + if (!nextActor) { + const messageWidth2 = actorToMessageWidth[actorKey]; + const actorWidth2 = messageWidth2 + conf.actorMargin - actor.width / 2; + actor.margin = common.getMax(actorWidth2, conf.actorMargin); + continue; + } + const messageWidth = actorToMessageWidth[actorKey]; + const actorWidth = messageWidth + conf.actorMargin - actor.width / 2 - nextActor.width / 2; + actor.margin = common.getMax(actorWidth, conf.actorMargin); + } + let maxBoxHeight = 0; + boxes.forEach((box) => { + const textFont = messageFont(conf); + let totalWidth = box.actorKeys.reduce((total, aKey) => { + return total += actors[aKey].width + (actors[aKey].margin || 0); + }, 0); + totalWidth -= 2 * conf.boxTextMargin; + if (box.wrap) { + box.name = utils.wrapLabel(box.name, totalWidth - 2 * conf.wrapPadding, textFont); + } + const boxMsgDimensions = utils.calculateTextDimensions(box.name, textFont); + maxBoxHeight = common.getMax(boxMsgDimensions.height, maxBoxHeight); + const minWidth = common.getMax(totalWidth, boxMsgDimensions.width + 2 * conf.wrapPadding); + box.margin = conf.boxTextMargin; + if (totalWidth < minWidth) { + const missing = (minWidth - totalWidth) / 2; + box.margin += missing; + } + }); + boxes.forEach((box) => box.textMaxHeight = maxBoxHeight); + return common.getMax(maxHeight, conf.height); +} +const buildNoteModel = async function(msg, actors, diagObj) { + const startx = actors[msg.from].x; + const stopx = actors[msg.to].x; + const shouldWrap = msg.wrap && msg.message; + let textDimensions = hasKatex(msg.message) ? await calculateMathMLDimensions(msg.message, getConfig()) : utils.calculateTextDimensions( + shouldWrap ? utils.wrapLabel(msg.message, conf.width, noteFont(conf)) : msg.message, + noteFont(conf) + ); + const noteModel = { + width: shouldWrap ? conf.width : common.getMax(conf.width, textDimensions.width + 2 * conf.noteMargin), + height: 0, + startx: actors[msg.from].x, + stopx: 0, + starty: 0, + stopy: 0, + message: msg.message + }; + if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) { + noteModel.width = shouldWrap ? common.getMax(conf.width, textDimensions.width) : common.getMax( + actors[msg.from].width / 2 + actors[msg.to].width / 2, + textDimensions.width + 2 * conf.noteMargin + ); + noteModel.startx = startx + (actors[msg.from].width + conf.actorMargin) / 2; + } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) { + noteModel.width = shouldWrap ? common.getMax(conf.width, textDimensions.width + 2 * conf.noteMargin) : common.getMax( + actors[msg.from].width / 2 + actors[msg.to].width / 2, + textDimensions.width + 2 * conf.noteMargin + ); + noteModel.startx = startx - noteModel.width + (actors[msg.from].width - conf.actorMargin) / 2; + } else if (msg.to === msg.from) { + textDimensions = utils.calculateTextDimensions( + shouldWrap ? utils.wrapLabel( + msg.message, + common.getMax(conf.width, actors[msg.from].width), + noteFont(conf) + ) : msg.message, + noteFont(conf) + ); + noteModel.width = shouldWrap ? common.getMax(conf.width, actors[msg.from].width) : common.getMax( + actors[msg.from].width, + conf.width, + textDimensions.width + 2 * conf.noteMargin + ); + noteModel.startx = startx + (actors[msg.from].width - noteModel.width) / 2; + } else { + noteModel.width = Math.abs(startx + actors[msg.from].width / 2 - (stopx + actors[msg.to].width / 2)) + conf.actorMargin; + noteModel.startx = startx < stopx ? startx + actors[msg.from].width / 2 - conf.actorMargin / 2 : stopx + actors[msg.to].width / 2 - conf.actorMargin / 2; + } + if (shouldWrap) { + noteModel.message = utils.wrapLabel( + msg.message, + noteModel.width - 2 * conf.wrapPadding, + noteFont(conf) + ); + } + log.debug( + `NM:[${noteModel.startx},${noteModel.stopx},${noteModel.starty},${noteModel.stopy}:${noteModel.width},${noteModel.height}=${msg.message}]` + ); + return noteModel; +}; +const buildMessageModel = function(msg, actors, diagObj) { + if (![ + diagObj.db.LINETYPE.SOLID_OPEN, + diagObj.db.LINETYPE.DOTTED_OPEN, + diagObj.db.LINETYPE.SOLID, + diagObj.db.LINETYPE.DOTTED, + diagObj.db.LINETYPE.SOLID_CROSS, + diagObj.db.LINETYPE.DOTTED_CROSS, + diagObj.db.LINETYPE.SOLID_POINT, + diagObj.db.LINETYPE.DOTTED_POINT + ].includes(msg.type)) { + return {}; + } + const [fromLeft, fromRight] = activationBounds(msg.from, actors); + const [toLeft, toRight] = activationBounds(msg.to, actors); + const isArrowToRight = fromLeft <= toLeft; + const startx = isArrowToRight ? fromRight : fromLeft; + let stopx = isArrowToRight ? toLeft : toRight; + const isArrowToActivation = Math.abs(toLeft - toRight) > 2; + const adjustValue = (value) => { + return isArrowToRight ? -value : value; + }; + if (msg.from === msg.to) { + stopx = startx; + } else { + if (msg.activate && !isArrowToActivation) { + stopx += adjustValue(conf.activationWidth / 2 - 1); + } + if (![diagObj.db.LINETYPE.SOLID_OPEN, diagObj.db.LINETYPE.DOTTED_OPEN].includes(msg.type)) { + stopx += adjustValue(3); + } + } + const allBounds = [fromLeft, fromRight, toLeft, toRight]; + const boundedWidth = Math.abs(startx - stopx); + if (msg.wrap && msg.message) { + msg.message = utils.wrapLabel( + msg.message, + common.getMax(boundedWidth + 2 * conf.wrapPadding, conf.width), + messageFont(conf) + ); + } + const msgDims = utils.calculateTextDimensions(msg.message, messageFont(conf)); + return { + width: common.getMax( + msg.wrap ? 0 : msgDims.width + 2 * conf.wrapPadding, + boundedWidth + 2 * conf.wrapPadding, + conf.width + ), + height: 0, + startx, + stopx, + starty: 0, + stopy: 0, + message: msg.message, + type: msg.type, + wrap: msg.wrap, + fromBounds: Math.min.apply(null, allBounds), + toBounds: Math.max.apply(null, allBounds) + }; +}; +const calculateLoopBounds = async function(messages, actors, _maxWidthPerActor, diagObj) { + const loops = {}; + const stack = []; + let current, noteModel, msgModel; + for (const msg of messages) { + msg.id = utils.random({ length: 10 }); + switch (msg.type) { + case diagObj.db.LINETYPE.LOOP_START: + case diagObj.db.LINETYPE.ALT_START: + case diagObj.db.LINETYPE.OPT_START: + case diagObj.db.LINETYPE.PAR_START: + case diagObj.db.LINETYPE.PAR_OVER_START: + case diagObj.db.LINETYPE.CRITICAL_START: + case diagObj.db.LINETYPE.BREAK_START: + stack.push({ + id: msg.id, + msg: msg.message, + from: Number.MAX_SAFE_INTEGER, + to: Number.MIN_SAFE_INTEGER, + width: 0 + }); + break; + case diagObj.db.LINETYPE.ALT_ELSE: + case diagObj.db.LINETYPE.PAR_AND: + case diagObj.db.LINETYPE.CRITICAL_OPTION: + if (msg.message) { + current = stack.pop(); + loops[current.id] = current; + loops[msg.id] = current; + stack.push(current); + } + break; + case diagObj.db.LINETYPE.LOOP_END: + case diagObj.db.LINETYPE.ALT_END: + case diagObj.db.LINETYPE.OPT_END: + case diagObj.db.LINETYPE.PAR_END: + case diagObj.db.LINETYPE.CRITICAL_END: + case diagObj.db.LINETYPE.BREAK_END: + current = stack.pop(); + loops[current.id] = current; + break; + case diagObj.db.LINETYPE.ACTIVE_START: + { + const actorRect = actors[msg.from ? msg.from.actor : msg.to.actor]; + const stackedSize = actorActivations(msg.from ? msg.from.actor : msg.to.actor).length; + const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2; + const toAdd = { + startx: x, + stopx: x + conf.activationWidth, + actor: msg.from.actor, + enabled: true + }; + bounds.activations.push(toAdd); + } + break; + case diagObj.db.LINETYPE.ACTIVE_END: + { + const lastActorActivationIdx = bounds.activations.map((a) => a.actor).lastIndexOf(msg.from.actor); + delete bounds.activations.splice(lastActorActivationIdx, 1)[0]; + } + break; + } + const isNote = msg.placement !== void 0; + if (isNote) { + noteModel = await buildNoteModel(msg, actors, diagObj); + msg.noteModel = noteModel; + stack.forEach((stk) => { + current = stk; + current.from = common.getMin(current.from, noteModel.startx); + current.to = common.getMax(current.to, noteModel.startx + noteModel.width); + current.width = common.getMax(current.width, Math.abs(current.from - current.to)) - conf.labelBoxWidth; + }); + } else { + msgModel = buildMessageModel(msg, actors, diagObj); + msg.msgModel = msgModel; + if (msgModel.startx && msgModel.stopx && stack.length > 0) { + stack.forEach((stk) => { + current = stk; + if (msgModel.startx === msgModel.stopx) { + const from = actors[msg.from]; + const to = actors[msg.to]; + current.from = common.getMin( + from.x - msgModel.width / 2, + from.x - from.width / 2, + current.from + ); + current.to = common.getMax( + to.x + msgModel.width / 2, + to.x + from.width / 2, + current.to + ); + current.width = common.getMax(current.width, Math.abs(current.to - current.from)) - conf.labelBoxWidth; + } else { + current.from = common.getMin(msgModel.startx, current.from); + current.to = common.getMax(msgModel.stopx, current.to); + current.width = common.getMax(current.width, msgModel.width) - conf.labelBoxWidth; + } + }); + } + } + } + bounds.activations = []; + log.debug("Loop type widths:", loops); + return loops; +}; +const renderer = { + bounds, + drawActors, + drawActorsPopup, + setConf, + draw +}; +const diagram = { + parser: parser$1, + db, + renderer, + styles, + init: ({ wrap }) => { + db.setWrap(wrap); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/sequenceDiagram-b517d154.js b/assets/lib/mermaid/sequenceDiagram-b517d154.js new file mode 100644 index 000000000..1a87856ba --- /dev/null +++ b/assets/lib/mermaid/sequenceDiagram-b517d154.js @@ -0,0 +1,2234 @@ +import { g as we, D as _e, C as ke, c as st, s as $t, b as Pe, a as Le, E as Ie, l as X, d as Nt, e as te, f as _, Y as ee, a4 as at, r as se, _ as Bt, a5 as Ae, a6 as wt, h as Ne, j as It, k as ve, A as B } from "./mermaid-9f2aa176.js"; +import { d as Se, a as Me, b as Re, c as Ce, e as zt, g as vt } from "./svgDrawCommon-ecc5f780.js"; +var Yt = function() { + var t = function(ht, w, P, I) { + for (P = P || {}, I = ht.length; I--; P[ht[I]] = w) + ; + return P; + }, e = [1, 2], c = [1, 3], s = [1, 4], r = [2, 4], i = [1, 9], o = [1, 11], l = [1, 13], u = [1, 14], n = [1, 16], x = [1, 17], T = [1, 18], p = [1, 24], g = [1, 25], m = [1, 26], k = [1, 27], A = [1, 28], V = [1, 29], S = [1, 30], O = [1, 31], R = [1, 32], q = [1, 33], z = [1, 34], J = [1, 35], $ = [1, 36], H = [1, 37], U = [1, 38], F = [1, 39], W = [1, 41], Z = [1, 42], K = [1, 43], Q = [1, 44], tt = [1, 45], v = [1, 46], y = [1, 4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 54, 59, 60, 61, 62, 70], L = [4, 5, 16, 50, 52, 53], j = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 50, 52, 53, 54, 59, 60, 61, 62, 70], nt = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 49, 50, 52, 53, 54, 59, 60, 61, 62, 70], N = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 48, 50, 52, 53, 54, 59, 60, 61, 62, 70], Gt = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 50, 52, 53, 54, 59, 60, 61, 62, 70], dt = [68, 69, 70], ot = [1, 120], Mt = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, SPACE: 4, NEWLINE: 5, SD: 6, document: 7, line: 8, statement: 9, box_section: 10, box_line: 11, participant_statement: 12, create: 13, box: 14, restOfLine: 15, end: 16, signal: 17, autonumber: 18, NUM: 19, off: 20, activate: 21, actor: 22, deactivate: 23, note_statement: 24, links_statement: 25, link_statement: 26, properties_statement: 27, details_statement: 28, title: 29, legacy_title: 30, acc_title: 31, acc_title_value: 32, acc_descr: 33, acc_descr_value: 34, acc_descr_multiline_value: 35, loop: 36, rect: 37, opt: 38, alt: 39, else_sections: 40, par: 41, par_sections: 42, par_over: 43, critical: 44, option_sections: 45, break: 46, option: 47, and: 48, else: 49, participant: 50, AS: 51, participant_actor: 52, destroy: 53, note: 54, placement: 55, text2: 56, over: 57, actor_pair: 58, links: 59, link: 60, properties: 61, details: 62, spaceList: 63, ",": 64, left_of: 65, right_of: 66, signaltype: 67, "+": 68, "-": 69, ACTOR: 70, SOLID_OPEN_ARROW: 71, DOTTED_OPEN_ARROW: 72, SOLID_ARROW: 73, DOTTED_ARROW: 74, SOLID_CROSS: 75, DOTTED_CROSS: 76, SOLID_POINT: 77, DOTTED_POINT: 78, TXT: 79, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 4: "SPACE", 5: "NEWLINE", 6: "SD", 13: "create", 14: "box", 15: "restOfLine", 16: "end", 18: "autonumber", 19: "NUM", 20: "off", 21: "activate", 23: "deactivate", 29: "title", 30: "legacy_title", 31: "acc_title", 32: "acc_title_value", 33: "acc_descr", 34: "acc_descr_value", 35: "acc_descr_multiline_value", 36: "loop", 37: "rect", 38: "opt", 39: "alt", 41: "par", 43: "par_over", 44: "critical", 46: "break", 47: "option", 48: "and", 49: "else", 50: "participant", 51: "AS", 52: "participant_actor", 53: "destroy", 54: "note", 57: "over", 59: "links", 60: "link", 61: "properties", 62: "details", 64: ",", 65: "left_of", 66: "right_of", 68: "+", 69: "-", 70: "ACTOR", 71: "SOLID_OPEN_ARROW", 72: "DOTTED_OPEN_ARROW", 73: "SOLID_ARROW", 74: "DOTTED_ARROW", 75: "SOLID_CROSS", 76: "DOTTED_CROSS", 77: "SOLID_POINT", 78: "DOTTED_POINT", 79: "TXT" }, + productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [10, 0], [10, 2], [11, 2], [11, 1], [11, 1], [9, 1], [9, 2], [9, 4], [9, 2], [9, 4], [9, 3], [9, 3], [9, 2], [9, 3], [9, 3], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [45, 1], [45, 4], [42, 1], [42, 4], [40, 1], [40, 4], [12, 5], [12, 3], [12, 5], [12, 3], [12, 3], [24, 4], [24, 4], [25, 3], [26, 3], [27, 3], [28, 3], [63, 2], [63, 1], [58, 3], [58, 1], [55, 1], [55, 1], [17, 5], [17, 5], [17, 4], [22, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [56, 1]], + performAction: function(w, P, I, b, M, d, Et) { + var h = d.length - 1; + switch (M) { + case 3: + return b.apply(d[h]), d[h]; + case 4: + case 9: + this.$ = []; + break; + case 5: + case 10: + d[h - 1].push(d[h]), this.$ = d[h - 1]; + break; + case 6: + case 7: + case 11: + case 12: + this.$ = d[h]; + break; + case 8: + case 13: + this.$ = []; + break; + case 15: + d[h].type = "createParticipant", this.$ = d[h]; + break; + case 16: + d[h - 1].unshift({ type: "boxStart", boxData: b.parseBoxData(d[h - 2]) }), d[h - 1].push({ type: "boxEnd", boxText: d[h - 2] }), this.$ = d[h - 1]; + break; + case 18: + this.$ = { type: "sequenceIndex", sequenceIndex: Number(d[h - 2]), sequenceIndexStep: Number(d[h - 1]), sequenceVisible: !0, signalType: b.LINETYPE.AUTONUMBER }; + break; + case 19: + this.$ = { type: "sequenceIndex", sequenceIndex: Number(d[h - 1]), sequenceIndexStep: 1, sequenceVisible: !0, signalType: b.LINETYPE.AUTONUMBER }; + break; + case 20: + this.$ = { type: "sequenceIndex", sequenceVisible: !1, signalType: b.LINETYPE.AUTONUMBER }; + break; + case 21: + this.$ = { type: "sequenceIndex", sequenceVisible: !0, signalType: b.LINETYPE.AUTONUMBER }; + break; + case 22: + this.$ = { type: "activeStart", signalType: b.LINETYPE.ACTIVE_START, actor: d[h - 1] }; + break; + case 23: + this.$ = { type: "activeEnd", signalType: b.LINETYPE.ACTIVE_END, actor: d[h - 1] }; + break; + case 29: + b.setDiagramTitle(d[h].substring(6)), this.$ = d[h].substring(6); + break; + case 30: + b.setDiagramTitle(d[h].substring(7)), this.$ = d[h].substring(7); + break; + case 31: + this.$ = d[h].trim(), b.setAccTitle(this.$); + break; + case 32: + case 33: + this.$ = d[h].trim(), b.setAccDescription(this.$); + break; + case 34: + d[h - 1].unshift({ type: "loopStart", loopText: b.parseMessage(d[h - 2]), signalType: b.LINETYPE.LOOP_START }), d[h - 1].push({ type: "loopEnd", loopText: d[h - 2], signalType: b.LINETYPE.LOOP_END }), this.$ = d[h - 1]; + break; + case 35: + d[h - 1].unshift({ type: "rectStart", color: b.parseMessage(d[h - 2]), signalType: b.LINETYPE.RECT_START }), d[h - 1].push({ type: "rectEnd", color: b.parseMessage(d[h - 2]), signalType: b.LINETYPE.RECT_END }), this.$ = d[h - 1]; + break; + case 36: + d[h - 1].unshift({ type: "optStart", optText: b.parseMessage(d[h - 2]), signalType: b.LINETYPE.OPT_START }), d[h - 1].push({ type: "optEnd", optText: b.parseMessage(d[h - 2]), signalType: b.LINETYPE.OPT_END }), this.$ = d[h - 1]; + break; + case 37: + d[h - 1].unshift({ type: "altStart", altText: b.parseMessage(d[h - 2]), signalType: b.LINETYPE.ALT_START }), d[h - 1].push({ type: "altEnd", signalType: b.LINETYPE.ALT_END }), this.$ = d[h - 1]; + break; + case 38: + d[h - 1].unshift({ type: "parStart", parText: b.parseMessage(d[h - 2]), signalType: b.LINETYPE.PAR_START }), d[h - 1].push({ type: "parEnd", signalType: b.LINETYPE.PAR_END }), this.$ = d[h - 1]; + break; + case 39: + d[h - 1].unshift({ type: "parStart", parText: b.parseMessage(d[h - 2]), signalType: b.LINETYPE.PAR_OVER_START }), d[h - 1].push({ type: "parEnd", signalType: b.LINETYPE.PAR_END }), this.$ = d[h - 1]; + break; + case 40: + d[h - 1].unshift({ type: "criticalStart", criticalText: b.parseMessage(d[h - 2]), signalType: b.LINETYPE.CRITICAL_START }), d[h - 1].push({ type: "criticalEnd", signalType: b.LINETYPE.CRITICAL_END }), this.$ = d[h - 1]; + break; + case 41: + d[h - 1].unshift({ type: "breakStart", breakText: b.parseMessage(d[h - 2]), signalType: b.LINETYPE.BREAK_START }), d[h - 1].push({ type: "breakEnd", optText: b.parseMessage(d[h - 2]), signalType: b.LINETYPE.BREAK_END }), this.$ = d[h - 1]; + break; + case 43: + this.$ = d[h - 3].concat([{ type: "option", optionText: b.parseMessage(d[h - 1]), signalType: b.LINETYPE.CRITICAL_OPTION }, d[h]]); + break; + case 45: + this.$ = d[h - 3].concat([{ type: "and", parText: b.parseMessage(d[h - 1]), signalType: b.LINETYPE.PAR_AND }, d[h]]); + break; + case 47: + this.$ = d[h - 3].concat([{ type: "else", altText: b.parseMessage(d[h - 1]), signalType: b.LINETYPE.ALT_ELSE }, d[h]]); + break; + case 48: + d[h - 3].draw = "participant", d[h - 3].type = "addParticipant", d[h - 3].description = b.parseMessage(d[h - 1]), this.$ = d[h - 3]; + break; + case 49: + d[h - 1].draw = "participant", d[h - 1].type = "addParticipant", this.$ = d[h - 1]; + break; + case 50: + d[h - 3].draw = "actor", d[h - 3].type = "addParticipant", d[h - 3].description = b.parseMessage(d[h - 1]), this.$ = d[h - 3]; + break; + case 51: + d[h - 1].draw = "actor", d[h - 1].type = "addParticipant", this.$ = d[h - 1]; + break; + case 52: + d[h - 1].type = "destroyParticipant", this.$ = d[h - 1]; + break; + case 53: + this.$ = [d[h - 1], { type: "addNote", placement: d[h - 2], actor: d[h - 1].actor, text: d[h] }]; + break; + case 54: + d[h - 2] = [].concat(d[h - 1], d[h - 1]).slice(0, 2), d[h - 2][0] = d[h - 2][0].actor, d[h - 2][1] = d[h - 2][1].actor, this.$ = [d[h - 1], { type: "addNote", placement: b.PLACEMENT.OVER, actor: d[h - 2].slice(0, 2), text: d[h] }]; + break; + case 55: + this.$ = [d[h - 1], { type: "addLinks", actor: d[h - 1].actor, text: d[h] }]; + break; + case 56: + this.$ = [d[h - 1], { type: "addALink", actor: d[h - 1].actor, text: d[h] }]; + break; + case 57: + this.$ = [d[h - 1], { type: "addProperties", actor: d[h - 1].actor, text: d[h] }]; + break; + case 58: + this.$ = [d[h - 1], { type: "addDetails", actor: d[h - 1].actor, text: d[h] }]; + break; + case 61: + this.$ = [d[h - 2], d[h]]; + break; + case 62: + this.$ = d[h]; + break; + case 63: + this.$ = b.PLACEMENT.LEFTOF; + break; + case 64: + this.$ = b.PLACEMENT.RIGHTOF; + break; + case 65: + this.$ = [ + d[h - 4], + d[h - 1], + { type: "addMessage", from: d[h - 4].actor, to: d[h - 1].actor, signalType: d[h - 3], msg: d[h], activate: !0 }, + { type: "activeStart", signalType: b.LINETYPE.ACTIVE_START, actor: d[h - 1] } + ]; + break; + case 66: + this.$ = [ + d[h - 4], + d[h - 1], + { type: "addMessage", from: d[h - 4].actor, to: d[h - 1].actor, signalType: d[h - 3], msg: d[h] }, + { type: "activeEnd", signalType: b.LINETYPE.ACTIVE_END, actor: d[h - 4] } + ]; + break; + case 67: + this.$ = [d[h - 3], d[h - 1], { type: "addMessage", from: d[h - 3].actor, to: d[h - 1].actor, signalType: d[h - 2], msg: d[h] }]; + break; + case 68: + this.$ = { type: "addParticipant", actor: d[h] }; + break; + case 69: + this.$ = b.LINETYPE.SOLID_OPEN; + break; + case 70: + this.$ = b.LINETYPE.DOTTED_OPEN; + break; + case 71: + this.$ = b.LINETYPE.SOLID; + break; + case 72: + this.$ = b.LINETYPE.DOTTED; + break; + case 73: + this.$ = b.LINETYPE.SOLID_CROSS; + break; + case 74: + this.$ = b.LINETYPE.DOTTED_CROSS; + break; + case 75: + this.$ = b.LINETYPE.SOLID_POINT; + break; + case 76: + this.$ = b.LINETYPE.DOTTED_POINT; + break; + case 77: + this.$ = b.parseMessage(d[h].trim().substring(1)); + break; + } + }, + table: [{ 3: 1, 4: e, 5: c, 6: s }, { 1: [3] }, { 3: 5, 4: e, 5: c, 6: s }, { 3: 6, 4: e, 5: c, 6: s }, t([1, 4, 5, 13, 14, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 50, 52, 53, 54, 59, 60, 61, 62, 70], r, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: i, 5: o, 8: 8, 9: 10, 12: 12, 13: l, 14: u, 17: 15, 18: n, 21: x, 22: 40, 23: T, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: p, 30: g, 31: m, 33: k, 35: A, 36: V, 37: S, 38: O, 39: R, 41: q, 43: z, 44: J, 46: $, 50: H, 52: U, 53: F, 54: W, 59: Z, 60: K, 61: Q, 62: tt, 70: v }, t(y, [2, 5]), { 9: 47, 12: 12, 13: l, 14: u, 17: 15, 18: n, 21: x, 22: 40, 23: T, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: p, 30: g, 31: m, 33: k, 35: A, 36: V, 37: S, 38: O, 39: R, 41: q, 43: z, 44: J, 46: $, 50: H, 52: U, 53: F, 54: W, 59: Z, 60: K, 61: Q, 62: tt, 70: v }, t(y, [2, 7]), t(y, [2, 8]), t(y, [2, 14]), { 12: 48, 50: H, 52: U, 53: F }, { 15: [1, 49] }, { 5: [1, 50] }, { 5: [1, 53], 19: [1, 51], 20: [1, 52] }, { 22: 54, 70: v }, { 22: 55, 70: v }, { 5: [1, 56] }, { 5: [1, 57] }, { 5: [1, 58] }, { 5: [1, 59] }, { 5: [1, 60] }, t(y, [2, 29]), t(y, [2, 30]), { 32: [1, 61] }, { 34: [1, 62] }, t(y, [2, 33]), { 15: [1, 63] }, { 15: [1, 64] }, { 15: [1, 65] }, { 15: [1, 66] }, { 15: [1, 67] }, { 15: [1, 68] }, { 15: [1, 69] }, { 15: [1, 70] }, { 22: 71, 70: v }, { 22: 72, 70: v }, { 22: 73, 70: v }, { 67: 74, 71: [1, 75], 72: [1, 76], 73: [1, 77], 74: [1, 78], 75: [1, 79], 76: [1, 80], 77: [1, 81], 78: [1, 82] }, { 55: 83, 57: [1, 84], 65: [1, 85], 66: [1, 86] }, { 22: 87, 70: v }, { 22: 88, 70: v }, { 22: 89, 70: v }, { 22: 90, 70: v }, t([5, 51, 64, 71, 72, 73, 74, 75, 76, 77, 78, 79], [2, 68]), t(y, [2, 6]), t(y, [2, 15]), t(L, [2, 9], { 10: 91 }), t(y, [2, 17]), { 5: [1, 93], 19: [1, 92] }, { 5: [1, 94] }, t(y, [2, 21]), { 5: [1, 95] }, { 5: [1, 96] }, t(y, [2, 24]), t(y, [2, 25]), t(y, [2, 26]), t(y, [2, 27]), t(y, [2, 28]), t(y, [2, 31]), t(y, [2, 32]), t(j, r, { 7: 97 }), t(j, r, { 7: 98 }), t(j, r, { 7: 99 }), t(nt, r, { 40: 100, 7: 101 }), t(N, r, { 42: 102, 7: 103 }), t(N, r, { 7: 103, 42: 104 }), t(Gt, r, { 45: 105, 7: 106 }), t(j, r, { 7: 107 }), { 5: [1, 109], 51: [1, 108] }, { 5: [1, 111], 51: [1, 110] }, { 5: [1, 112] }, { 22: 115, 68: [1, 113], 69: [1, 114], 70: v }, t(dt, [2, 69]), t(dt, [2, 70]), t(dt, [2, 71]), t(dt, [2, 72]), t(dt, [2, 73]), t(dt, [2, 74]), t(dt, [2, 75]), t(dt, [2, 76]), { 22: 116, 70: v }, { 22: 118, 58: 117, 70: v }, { 70: [2, 63] }, { 70: [2, 64] }, { 56: 119, 79: ot }, { 56: 121, 79: ot }, { 56: 122, 79: ot }, { 56: 123, 79: ot }, { 4: [1, 126], 5: [1, 128], 11: 125, 12: 127, 16: [1, 124], 50: H, 52: U, 53: F }, { 5: [1, 129] }, t(y, [2, 19]), t(y, [2, 20]), t(y, [2, 22]), t(y, [2, 23]), { 4: i, 5: o, 8: 8, 9: 10, 12: 12, 13: l, 14: u, 16: [1, 130], 17: 15, 18: n, 21: x, 22: 40, 23: T, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: p, 30: g, 31: m, 33: k, 35: A, 36: V, 37: S, 38: O, 39: R, 41: q, 43: z, 44: J, 46: $, 50: H, 52: U, 53: F, 54: W, 59: Z, 60: K, 61: Q, 62: tt, 70: v }, { 4: i, 5: o, 8: 8, 9: 10, 12: 12, 13: l, 14: u, 16: [1, 131], 17: 15, 18: n, 21: x, 22: 40, 23: T, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: p, 30: g, 31: m, 33: k, 35: A, 36: V, 37: S, 38: O, 39: R, 41: q, 43: z, 44: J, 46: $, 50: H, 52: U, 53: F, 54: W, 59: Z, 60: K, 61: Q, 62: tt, 70: v }, { 4: i, 5: o, 8: 8, 9: 10, 12: 12, 13: l, 14: u, 16: [1, 132], 17: 15, 18: n, 21: x, 22: 40, 23: T, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: p, 30: g, 31: m, 33: k, 35: A, 36: V, 37: S, 38: O, 39: R, 41: q, 43: z, 44: J, 46: $, 50: H, 52: U, 53: F, 54: W, 59: Z, 60: K, 61: Q, 62: tt, 70: v }, { 16: [1, 133] }, { 4: i, 5: o, 8: 8, 9: 10, 12: 12, 13: l, 14: u, 16: [2, 46], 17: 15, 18: n, 21: x, 22: 40, 23: T, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: p, 30: g, 31: m, 33: k, 35: A, 36: V, 37: S, 38: O, 39: R, 41: q, 43: z, 44: J, 46: $, 49: [1, 134], 50: H, 52: U, 53: F, 54: W, 59: Z, 60: K, 61: Q, 62: tt, 70: v }, { 16: [1, 135] }, { 4: i, 5: o, 8: 8, 9: 10, 12: 12, 13: l, 14: u, 16: [2, 44], 17: 15, 18: n, 21: x, 22: 40, 23: T, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: p, 30: g, 31: m, 33: k, 35: A, 36: V, 37: S, 38: O, 39: R, 41: q, 43: z, 44: J, 46: $, 48: [1, 136], 50: H, 52: U, 53: F, 54: W, 59: Z, 60: K, 61: Q, 62: tt, 70: v }, { 16: [1, 137] }, { 16: [1, 138] }, { 4: i, 5: o, 8: 8, 9: 10, 12: 12, 13: l, 14: u, 16: [2, 42], 17: 15, 18: n, 21: x, 22: 40, 23: T, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: p, 30: g, 31: m, 33: k, 35: A, 36: V, 37: S, 38: O, 39: R, 41: q, 43: z, 44: J, 46: $, 47: [1, 139], 50: H, 52: U, 53: F, 54: W, 59: Z, 60: K, 61: Q, 62: tt, 70: v }, { 4: i, 5: o, 8: 8, 9: 10, 12: 12, 13: l, 14: u, 16: [1, 140], 17: 15, 18: n, 21: x, 22: 40, 23: T, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: p, 30: g, 31: m, 33: k, 35: A, 36: V, 37: S, 38: O, 39: R, 41: q, 43: z, 44: J, 46: $, 50: H, 52: U, 53: F, 54: W, 59: Z, 60: K, 61: Q, 62: tt, 70: v }, { 15: [1, 141] }, t(y, [2, 49]), { 15: [1, 142] }, t(y, [2, 51]), t(y, [2, 52]), { 22: 143, 70: v }, { 22: 144, 70: v }, { 56: 145, 79: ot }, { 56: 146, 79: ot }, { 56: 147, 79: ot }, { 64: [1, 148], 79: [2, 62] }, { 5: [2, 55] }, { 5: [2, 77] }, { 5: [2, 56] }, { 5: [2, 57] }, { 5: [2, 58] }, t(y, [2, 16]), t(L, [2, 10]), { 12: 149, 50: H, 52: U, 53: F }, t(L, [2, 12]), t(L, [2, 13]), t(y, [2, 18]), t(y, [2, 34]), t(y, [2, 35]), t(y, [2, 36]), t(y, [2, 37]), { 15: [1, 150] }, t(y, [2, 38]), { 15: [1, 151] }, t(y, [2, 39]), t(y, [2, 40]), { 15: [1, 152] }, t(y, [2, 41]), { 5: [1, 153] }, { 5: [1, 154] }, { 56: 155, 79: ot }, { 56: 156, 79: ot }, { 5: [2, 67] }, { 5: [2, 53] }, { 5: [2, 54] }, { 22: 157, 70: v }, t(L, [2, 11]), t(nt, r, { 7: 101, 40: 158 }), t(N, r, { 7: 103, 42: 159 }), t(Gt, r, { 7: 106, 45: 160 }), t(y, [2, 48]), t(y, [2, 50]), { 5: [2, 65] }, { 5: [2, 66] }, { 79: [2, 61] }, { 16: [2, 47] }, { 16: [2, 45] }, { 16: [2, 43] }], + defaultActions: { 5: [2, 1], 6: [2, 2], 85: [2, 63], 86: [2, 64], 119: [2, 55], 120: [2, 77], 121: [2, 56], 122: [2, 57], 123: [2, 58], 145: [2, 67], 146: [2, 53], 147: [2, 54], 155: [2, 65], 156: [2, 66], 157: [2, 61], 158: [2, 47], 159: [2, 45], 160: [2, 43] }, + parseError: function(w, P) { + if (P.recoverable) + this.trace(w); + else { + var I = new Error(w); + throw I.hash = P, I; + } + }, + parse: function(w) { + var P = this, I = [0], b = [], M = [null], d = [], Et = this.table, h = "", kt = 0, Xt = 0, Te = 2, Jt = 1, be = d.slice.call(arguments, 1), Y = Object.create(this.lexer), ut = { yy: {} }; + for (var Ct in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, Ct) && (ut.yy[Ct] = this.yy[Ct]); + Y.setInput(w, ut.yy), ut.yy.lexer = Y, ut.yy.parser = this, typeof Y.yylloc > "u" && (Y.yylloc = {}); + var Dt = Y.yylloc; + d.push(Dt); + var Ee = Y.options && Y.options.ranges; + typeof ut.yy.parseError == "function" ? this.parseError = ut.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function me() { + var lt; + return lt = b.pop() || Y.lex() || Jt, typeof lt != "number" && (lt instanceof Array && (b = lt, lt = b.pop()), lt = P.symbols_[lt] || lt), lt; + } + for (var G, pt, et, Vt, yt = {}, Pt, ct, Zt, Lt; ; ) { + if (pt = I[I.length - 1], this.defaultActions[pt] ? et = this.defaultActions[pt] : ((G === null || typeof G > "u") && (G = me()), et = Et[pt] && Et[pt][G]), typeof et > "u" || !et.length || !et[0]) { + var Ot = ""; + Lt = []; + for (Pt in Et[pt]) + this.terminals_[Pt] && Pt > Te && Lt.push("'" + this.terminals_[Pt] + "'"); + Y.showPosition ? Ot = "Parse error on line " + (kt + 1) + `: +` + Y.showPosition() + ` +Expecting ` + Lt.join(", ") + ", got '" + (this.terminals_[G] || G) + "'" : Ot = "Parse error on line " + (kt + 1) + ": Unexpected " + (G == Jt ? "end of input" : "'" + (this.terminals_[G] || G) + "'"), this.parseError(Ot, { + text: Y.match, + token: this.terminals_[G] || G, + line: Y.yylineno, + loc: Dt, + expected: Lt + }); + } + if (et[0] instanceof Array && et.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + pt + ", token: " + G); + switch (et[0]) { + case 1: + I.push(G), M.push(Y.yytext), d.push(Y.yylloc), I.push(et[1]), G = null, Xt = Y.yyleng, h = Y.yytext, kt = Y.yylineno, Dt = Y.yylloc; + break; + case 2: + if (ct = this.productions_[et[1]][1], yt.$ = M[M.length - ct], yt._$ = { + first_line: d[d.length - (ct || 1)].first_line, + last_line: d[d.length - 1].last_line, + first_column: d[d.length - (ct || 1)].first_column, + last_column: d[d.length - 1].last_column + }, Ee && (yt._$.range = [ + d[d.length - (ct || 1)].range[0], + d[d.length - 1].range[1] + ]), Vt = this.performAction.apply(yt, [ + h, + Xt, + kt, + ut.yy, + et[1], + M, + d + ].concat(be)), typeof Vt < "u") + return Vt; + ct && (I = I.slice(0, -1 * ct * 2), M = M.slice(0, -1 * ct), d = d.slice(0, -1 * ct)), I.push(this.productions_[et[1]][0]), M.push(yt.$), d.push(yt._$), Zt = Et[I[I.length - 2]][I[I.length - 1]], I.push(Zt); + break; + case 3: + return !0; + } + } + return !0; + } + }, ye = function() { + var ht = { + EOF: 1, + parseError: function(P, I) { + if (this.yy.parser) + this.yy.parser.parseError(P, I); + else + throw new Error(P); + }, + // resets the lexer, sets new input + setInput: function(w, P) { + return this.yy = P || this.yy || {}, this._input = w, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var w = this._input[0]; + this.yytext += w, this.yyleng++, this.offset++, this.match += w, this.matched += w; + var P = w.match(/(?:\r\n?|\n).*/g); + return P ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), w; + }, + // unshifts one char (or a string) into the input + unput: function(w) { + var P = w.length, I = w.split(/(?:\r\n?|\n)/g); + this._input = w + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - P), this.offset -= P; + var b = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), I.length - 1 && (this.yylineno -= I.length - 1); + var M = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: I ? (I.length === b.length ? this.yylloc.first_column : 0) + b[b.length - I.length].length - I[0].length : this.yylloc.first_column - P + }, this.options.ranges && (this.yylloc.range = [M[0], M[0] + this.yyleng - P]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(w) { + this.unput(this.match.slice(w)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var w = this.matched.substr(0, this.matched.length - this.match.length); + return (w.length > 20 ? "..." : "") + w.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var w = this.match; + return w.length < 20 && (w += this._input.substr(0, 20 - w.length)), (w.substr(0, 20) + (w.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var w = this.pastInput(), P = new Array(w.length + 1).join("-"); + return w + this.upcomingInput() + ` +` + P + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(w, P) { + var I, b, M; + if (this.options.backtrack_lexer && (M = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (M.yylloc.range = this.yylloc.range.slice(0))), b = w[0].match(/(?:\r\n?|\n).*/g), b && (this.yylineno += b.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: b ? b[b.length - 1].length - b[b.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + w[0].length + }, this.yytext += w[0], this.match += w[0], this.matches = w, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(w[0].length), this.matched += w[0], I = this.performAction.call(this, this.yy, this, P, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), I) + return I; + if (this._backtrack) { + for (var d in M) + this[d] = M[d]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var w, P, I, b; + this._more || (this.yytext = "", this.match = ""); + for (var M = this._currentRules(), d = 0; d < M.length; d++) + if (I = this._input.match(this.rules[M[d]]), I && (!P || I[0].length > P[0].length)) { + if (P = I, b = d, this.options.backtrack_lexer) { + if (w = this.test_match(I, M[d]), w !== !1) + return w; + if (this._backtrack) { + P = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return P ? (w = this.test_match(P, M[b]), w !== !1 ? w : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var P = this.next(); + return P || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(P) { + this.conditionStack.push(P); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var P = this.conditionStack.length - 1; + return P > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(P) { + return P = this.conditionStack.length - 1 - Math.abs(P || 0), P >= 0 ? this.conditionStack[P] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(P) { + this.begin(P); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: { "case-insensitive": !0 }, + performAction: function(P, I, b, M) { + switch (b) { + case 0: + return 5; + case 1: + break; + case 2: + break; + case 3: + break; + case 4: + break; + case 5: + break; + case 6: + return 19; + case 7: + return this.begin("LINE"), 14; + case 8: + return this.begin("ID"), 50; + case 9: + return this.begin("ID"), 52; + case 10: + return 13; + case 11: + return this.begin("ID"), 53; + case 12: + return I.yytext = I.yytext.trim(), this.begin("ALIAS"), 70; + case 13: + return this.popState(), this.popState(), this.begin("LINE"), 51; + case 14: + return this.popState(), this.popState(), 5; + case 15: + return this.begin("LINE"), 36; + case 16: + return this.begin("LINE"), 37; + case 17: + return this.begin("LINE"), 38; + case 18: + return this.begin("LINE"), 39; + case 19: + return this.begin("LINE"), 49; + case 20: + return this.begin("LINE"), 41; + case 21: + return this.begin("LINE"), 43; + case 22: + return this.begin("LINE"), 48; + case 23: + return this.begin("LINE"), 44; + case 24: + return this.begin("LINE"), 47; + case 25: + return this.begin("LINE"), 46; + case 26: + return this.popState(), 15; + case 27: + return 16; + case 28: + return 65; + case 29: + return 66; + case 30: + return 59; + case 31: + return 60; + case 32: + return 61; + case 33: + return 62; + case 34: + return 57; + case 35: + return 54; + case 36: + return this.begin("ID"), 21; + case 37: + return this.begin("ID"), 23; + case 38: + return 29; + case 39: + return 30; + case 40: + return this.begin("acc_title"), 31; + case 41: + return this.popState(), "acc_title_value"; + case 42: + return this.begin("acc_descr"), 33; + case 43: + return this.popState(), "acc_descr_value"; + case 44: + this.begin("acc_descr_multiline"); + break; + case 45: + this.popState(); + break; + case 46: + return "acc_descr_multiline_value"; + case 47: + return 6; + case 48: + return 18; + case 49: + return 20; + case 50: + return 64; + case 51: + return 5; + case 52: + return I.yytext = I.yytext.trim(), 70; + case 53: + return 73; + case 54: + return 74; + case 55: + return 71; + case 56: + return 72; + case 57: + return 75; + case 58: + return 76; + case 59: + return 77; + case 60: + return 78; + case 61: + return 79; + case 62: + return 68; + case 63: + return 69; + case 64: + return 5; + case 65: + return "INVALID"; + } + }, + rules: [/^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[0-9]+(?=[ \n]+))/i, /^(?:box\b)/i, /^(?:participant\b)/i, /^(?:actor\b)/i, /^(?:create\b)/i, /^(?:destroy\b)/i, /^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i, /^(?:as\b)/i, /^(?:(?:))/i, /^(?:loop\b)/i, /^(?:rect\b)/i, /^(?:opt\b)/i, /^(?:alt\b)/i, /^(?:else\b)/i, /^(?:par\b)/i, /^(?:par_over\b)/i, /^(?:and\b)/i, /^(?:critical\b)/i, /^(?:option\b)/i, /^(?:break\b)/i, /^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i, /^(?:end\b)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:links\b)/i, /^(?:link\b)/i, /^(?:properties\b)/i, /^(?:details\b)/i, /^(?:over\b)/i, /^(?:note\b)/i, /^(?:activate\b)/i, /^(?:deactivate\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:title:\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:sequenceDiagram\b)/i, /^(?:autonumber\b)/i, /^(?:off\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i, /^(?:->>)/i, /^(?:-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?:-[\)])/i, /^(?:--[\)])/i, /^(?::(?:(?:no)?wrap)?[^#\n;]+)/i, /^(?:\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { acc_descr_multiline: { rules: [45, 46], inclusive: !1 }, acc_descr: { rules: [43], inclusive: !1 }, acc_title: { rules: [41], inclusive: !1 }, ID: { rules: [2, 3, 12], inclusive: !1 }, ALIAS: { rules: [2, 3, 13, 14], inclusive: !1 }, LINE: { rules: [2, 3, 26], inclusive: !1 }, INITIAL: { rules: [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 44, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65], inclusive: !0 } } + }; + return ht; + }(); + Mt.lexer = ye; + function Rt() { + this.yy = {}; + } + return Rt.prototype = Mt, Mt.Parser = Rt, new Rt(); +}(); +Yt.parser = Yt; +const De = Yt; +class Ve { + /** + * @param init - Function that creates the default state. + */ + constructor(e) { + this.init = e, this.records = this.init(); + } + reset() { + this.records = this.init(); + } +} +const E = new Ve(() => ({ + prevActor: void 0, + actors: {}, + createdActors: {}, + destroyedActors: {}, + boxes: [], + messages: [], + notes: [], + sequenceNumbersEnabled: !1, + wrapEnabled: void 0, + currentBox: void 0, + lastCreated: void 0, + lastDestroyed: void 0 +})), Oe = function(t) { + E.records.boxes.push({ + name: t.text, + wrap: t.wrap === void 0 && gt() || !!t.wrap, + fill: t.color, + actorKeys: [] + }), E.records.currentBox = E.records.boxes.slice(-1)[0]; +}, Ft = function(t, e, c, s) { + let r = E.records.currentBox; + const i = E.records.actors[t]; + if (i) { + if (E.records.currentBox && i.box && E.records.currentBox !== i.box) + throw new Error( + "A same participant should only be defined in one Box: " + i.name + " can't be in '" + i.box.name + "' and in '" + E.records.currentBox.name + "' at the same time." + ); + if (r = i.box ? i.box : E.records.currentBox, i.box = r, i && e === i.name && c == null) + return; + } + (c == null || c.text == null) && (c = { text: e, wrap: null, type: s }), (s == null || c.text == null) && (c = { text: e, wrap: null, type: s }), E.records.actors[t] = { + box: r, + name: e, + description: c.text, + wrap: c.wrap === void 0 && gt() || !!c.wrap, + prevActor: E.records.prevActor, + links: {}, + properties: {}, + actorCnt: null, + rectData: null, + type: s || "participant" + }, E.records.prevActor && E.records.actors[E.records.prevActor] && (E.records.actors[E.records.prevActor].nextActor = t), E.records.currentBox && E.records.currentBox.actorKeys.push(t), E.records.prevActor = t; +}, Be = (t) => { + let e, c = 0; + for (e = 0; e < E.records.messages.length; e++) + E.records.messages[e].type === mt.ACTIVE_START && E.records.messages[e].from.actor === t && c++, E.records.messages[e].type === mt.ACTIVE_END && E.records.messages[e].from.actor === t && c--; + return c; +}, Ye = function(t, e, c, s) { + E.records.messages.push({ + from: t, + to: e, + message: c.text, + wrap: c.wrap === void 0 && gt() || !!c.wrap, + answer: s + }); +}, C = function(t, e, c = { text: void 0, wrap: void 0 }, s, r = !1) { + if (s === mt.ACTIVE_END && Be(t.actor) < 1) { + let o = new Error("Trying to inactivate an inactive participant (" + t.actor + ")"); + throw o.hash = { + text: "->>-", + token: "->>-", + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ["'ACTIVE_PARTICIPANT'"] + }, o; + } + return E.records.messages.push({ + from: t, + to: e, + message: c.text, + wrap: c.wrap === void 0 && gt() || !!c.wrap, + type: s, + activate: r + }), !0; +}, Fe = function() { + return E.records.boxes.length > 0; +}, We = function() { + return E.records.boxes.some((t) => t.name); +}, qe = function() { + return E.records.messages; +}, ze = function() { + return E.records.boxes; +}, He = function() { + return E.records.actors; +}, Ue = function() { + return E.records.createdActors; +}, Ke = function() { + return E.records.destroyedActors; +}, _t = function(t) { + return E.records.actors[t]; +}, Ge = function() { + return Object.keys(E.records.actors); +}, Xe = function() { + E.records.sequenceNumbersEnabled = !0; +}, Je = function() { + E.records.sequenceNumbersEnabled = !1; +}, Ze = () => E.records.sequenceNumbersEnabled, Qe = function(t) { + E.records.wrapEnabled = t; +}, gt = () => E.records.wrapEnabled !== void 0 ? E.records.wrapEnabled : st().sequence.wrap, je = function() { + E.reset(), Ie(); +}, $e = function(t) { + const e = t.trim(), c = { + text: e.replace(/^:?(?:no)?wrap:/, "").trim(), + wrap: e.match(/^:?wrap:/) !== null ? !0 : e.match(/^:?nowrap:/) !== null ? !1 : void 0 + }; + return X.debug("parseMessage:", c), c; +}, t0 = function(t) { + const e = t.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/); + let c = e != null && e[1] ? e[1].trim() : "transparent", s = e != null && e[2] ? e[2].trim() : void 0; + if (window && window.CSS) + window.CSS.supports("color", c) || (c = "transparent", s = t.trim()); + else { + const r = new Option().style; + r.color = c, r.color !== c && (c = "transparent", s = t.trim()); + } + return { + color: c, + text: s !== void 0 ? Nt(s.replace(/^:?(?:no)?wrap:/, ""), st()) : void 0, + wrap: s !== void 0 ? s.match(/^:?wrap:/) !== null ? !0 : s.match(/^:?nowrap:/) !== null ? !1 : void 0 : void 0 + }; +}, mt = { + SOLID: 0, + DOTTED: 1, + NOTE: 2, + SOLID_CROSS: 3, + DOTTED_CROSS: 4, + SOLID_OPEN: 5, + DOTTED_OPEN: 6, + LOOP_START: 10, + LOOP_END: 11, + ALT_START: 12, + ALT_ELSE: 13, + ALT_END: 14, + OPT_START: 15, + OPT_END: 16, + ACTIVE_START: 17, + ACTIVE_END: 18, + PAR_START: 19, + PAR_AND: 20, + PAR_END: 21, + RECT_START: 22, + RECT_END: 23, + SOLID_POINT: 24, + DOTTED_POINT: 25, + AUTONUMBER: 26, + CRITICAL_START: 27, + CRITICAL_OPTION: 28, + CRITICAL_END: 29, + BREAK_START: 30, + BREAK_END: 31, + PAR_OVER_START: 32 +}, e0 = { + FILLED: 0, + OPEN: 1 +}, s0 = { + LEFTOF: 0, + RIGHTOF: 1, + OVER: 2 +}, ne = function(t, e, c) { + const s = { + actor: t, + placement: e, + message: c.text, + wrap: c.wrap === void 0 && gt() || !!c.wrap + }, r = [].concat(t, t); + E.records.notes.push(s), E.records.messages.push({ + from: r[0], + to: r[1], + message: c.text, + wrap: c.wrap === void 0 && gt() || !!c.wrap, + type: mt.NOTE, + placement: e + }); +}, re = function(t, e) { + const c = _t(t); + try { + let s = Nt(e.text, st()); + s = s.replace(/&/g, "&"), s = s.replace(/=/g, "="); + const r = JSON.parse(s); + Ht(c, r); + } catch (s) { + X.error("error while parsing actor link text", s); + } +}, n0 = function(t, e) { + const c = _t(t); + try { + const o = {}; + let l = Nt(e.text, st()); + var s = l.indexOf("@"); + l = l.replace(/&/g, "&"), l = l.replace(/=/g, "="); + var r = l.slice(0, s - 1).trim(), i = l.slice(s + 1).trim(); + o[r] = i, Ht(c, o); + } catch (o) { + X.error("error while parsing actor link text", o); + } +}; +function Ht(t, e) { + if (t.links == null) + t.links = e; + else + for (let c in e) + t.links[c] = e[c]; +} +const ie = function(t, e) { + const c = _t(t); + try { + let s = Nt(e.text, st()); + const r = JSON.parse(s); + ae(c, r); + } catch (s) { + X.error("error while parsing actor properties text", s); + } +}; +function ae(t, e) { + if (t.properties == null) + t.properties = e; + else + for (let c in e) + t.properties[c] = e[c]; +} +function r0() { + E.records.currentBox = void 0; +} +const oe = function(t, e) { + const c = _t(t), s = document.getElementById(e.text); + try { + const r = s.innerHTML, i = JSON.parse(r); + i.properties && ae(c, i.properties), i.links && Ht(c, i.links); + } catch (r) { + X.error("error while parsing actor details text", r); + } +}, i0 = function(t, e) { + if (t !== void 0 && t.properties !== void 0) + return t.properties[e]; +}, ce = function(t) { + if (Array.isArray(t)) + t.forEach(function(e) { + ce(e); + }); + else + switch (t.type) { + case "sequenceIndex": + E.records.messages.push({ + from: void 0, + to: void 0, + message: { + start: t.sequenceIndex, + step: t.sequenceIndexStep, + visible: t.sequenceVisible + }, + wrap: !1, + type: t.signalType + }); + break; + case "addParticipant": + Ft(t.actor, t.actor, t.description, t.draw); + break; + case "createParticipant": + if (E.records.actors[t.actor]) + throw new Error( + "It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior" + ); + E.records.lastCreated = t.actor, Ft(t.actor, t.actor, t.description, t.draw), E.records.createdActors[t.actor] = E.records.messages.length; + break; + case "destroyParticipant": + E.records.lastDestroyed = t.actor, E.records.destroyedActors[t.actor] = E.records.messages.length; + break; + case "activeStart": + C(t.actor, void 0, void 0, t.signalType); + break; + case "activeEnd": + C(t.actor, void 0, void 0, t.signalType); + break; + case "addNote": + ne(t.actor, t.placement, t.text); + break; + case "addLinks": + re(t.actor, t.text); + break; + case "addALink": + n0(t.actor, t.text); + break; + case "addProperties": + ie(t.actor, t.text); + break; + case "addDetails": + oe(t.actor, t.text); + break; + case "addMessage": + if (E.records.lastCreated) { + if (t.to !== E.records.lastCreated) + throw new Error( + "The created participant " + E.records.lastCreated + " does not have an associated creating message after its declaration. Please check the sequence diagram." + ); + E.records.lastCreated = void 0; + } else if (E.records.lastDestroyed) { + if (t.to !== E.records.lastDestroyed && t.from !== E.records.lastDestroyed) + throw new Error( + "The destroyed participant " + E.records.lastDestroyed + " does not have an associated destroying message after its declaration. Please check the sequence diagram." + ); + E.records.lastDestroyed = void 0; + } + C(t.from, t.to, t.msg, t.signalType, t.activate); + break; + case "boxStart": + Oe(t.boxData); + break; + case "boxEnd": + r0(); + break; + case "loopStart": + C(void 0, void 0, t.loopText, t.signalType); + break; + case "loopEnd": + C(void 0, void 0, void 0, t.signalType); + break; + case "rectStart": + C(void 0, void 0, t.color, t.signalType); + break; + case "rectEnd": + C(void 0, void 0, void 0, t.signalType); + break; + case "optStart": + C(void 0, void 0, t.optText, t.signalType); + break; + case "optEnd": + C(void 0, void 0, void 0, t.signalType); + break; + case "altStart": + C(void 0, void 0, t.altText, t.signalType); + break; + case "else": + C(void 0, void 0, t.altText, t.signalType); + break; + case "altEnd": + C(void 0, void 0, void 0, t.signalType); + break; + case "setAccTitle": + $t(t.text); + break; + case "parStart": + C(void 0, void 0, t.parText, t.signalType); + break; + case "and": + C(void 0, void 0, t.parText, t.signalType); + break; + case "parEnd": + C(void 0, void 0, void 0, t.signalType); + break; + case "criticalStart": + C(void 0, void 0, t.criticalText, t.signalType); + break; + case "option": + C(void 0, void 0, t.optionText, t.signalType); + break; + case "criticalEnd": + C(void 0, void 0, void 0, t.signalType); + break; + case "breakStart": + C(void 0, void 0, t.breakText, t.signalType); + break; + case "breakEnd": + C(void 0, void 0, void 0, t.signalType); + break; + } +}, Qt = { + addActor: Ft, + addMessage: Ye, + addSignal: C, + addLinks: re, + addDetails: oe, + addProperties: ie, + autoWrap: gt, + setWrap: Qe, + enableSequenceNumbers: Xe, + disableSequenceNumbers: Je, + showSequenceNumbers: Ze, + getMessages: qe, + getActors: He, + getCreatedActors: Ue, + getDestroyedActors: Ke, + getActor: _t, + getActorKeys: Ge, + getActorProperty: i0, + getAccTitle: we, + getBoxes: ze, + getDiagramTitle: _e, + setDiagramTitle: ke, + getConfig: () => st().sequence, + clear: je, + parseMessage: $e, + parseBoxData: t0, + LINETYPE: mt, + ARROWTYPE: e0, + PLACEMENT: s0, + addNote: ne, + setAccTitle: $t, + apply: ce, + setAccDescription: Pe, + getAccDescription: Le, + hasAtLeastOneBox: Fe, + hasAtLeastOneBoxWithTitle: We +}, a0 = (t) => `.actor { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + + text.actor > tspan { + fill: ${t.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${t.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${t.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${t.signalColor}; + } + + #arrowhead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .sequenceNumber { + fill: ${t.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${t.signalColor}; + } + + #crosshead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .messageText { + fill: ${t.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${t.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${t.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${t.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation1 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation2 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${t.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + .actor-man circle, line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + stroke-width: 2px; + } +`, o0 = a0, ft = 18 * 2, le = "actor-top", de = "actor-bottom", Ut = function(t, e) { + return Se(t, e); +}, c0 = function(t, e, c, s, r) { + if (e.links === void 0 || e.links === null || Object.keys(e.links).length === 0) + return { height: 0, width: 0 }; + const i = e.links, o = e.actorCnt, l = e.rectData; + var u = "none"; + r && (u = "block !important"); + const n = t.append("g"); + n.attr("id", "actor" + o + "_popup"), n.attr("class", "actorPopupMenu"), n.attr("display", u); + var x = ""; + l.class !== void 0 && (x = " " + l.class); + let T = l.width > c ? l.width : c; + const p = n.append("rect"); + if (p.attr("class", "actorPopupMenuPanel" + x), p.attr("x", l.x), p.attr("y", l.height), p.attr("fill", l.fill), p.attr("stroke", l.stroke), p.attr("width", T), p.attr("height", l.height), p.attr("rx", l.rx), p.attr("ry", l.ry), i != null) { + var g = 20; + for (let A in i) { + var m = n.append("a"), k = te.sanitizeUrl(i[A]); + m.attr("xlink:href", k), m.attr("target", "_blank"), P0(s)( + A, + m, + l.x + 10, + l.height + g, + T, + 20, + { class: "actor" }, + s + ), g += 30; + } + } + return p.attr("height", g), { height: l.height + g, width: T }; +}, l0 = function(t) { + return "var pu = document.getElementById('" + t + "'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"; +}, At = async function(t, e, c = null) { + let s = t.append("foreignObject"); + const r = await se(e.text, Bt()), o = s.append("xhtml:div").attr("style", "width: fit-content;").attr("xmlns", "http://www.w3.org/1999/xhtml").html(r).node().getBoundingClientRect(); + if (s.attr("height", Math.round(o.height)).attr("width", Math.round(o.width)), e.class === "noteText") { + const l = t.node().firstChild; + l.setAttribute("height", o.height + 2 * e.textMargin); + const u = l.getBBox(); + s.attr("x", Math.round(u.x + u.width / 2 - o.width / 2)).attr("y", Math.round(u.y + u.height / 2 - o.height / 2)); + } else if (c) { + let { startx: l, stopx: u, starty: n } = c; + if (l > u) { + const x = l; + l = u, u = x; + } + s.attr("x", Math.round(l + Math.abs(l - u) / 2 - o.width / 2)), e.class === "loopText" ? s.attr("y", Math.round(n)) : s.attr("y", Math.round(n - o.height)); + } + return [s]; +}, bt = function(t, e) { + let c = 0, s = 0; + const r = e.text.split(_.lineBreakRegex), [i, o] = ee(e.fontSize); + let l = [], u = 0, n = () => e.y; + if (e.valign !== void 0 && e.textMargin !== void 0 && e.textMargin > 0) + switch (e.valign) { + case "top": + case "start": + n = () => Math.round(e.y + e.textMargin); + break; + case "middle": + case "center": + n = () => Math.round(e.y + (c + s + e.textMargin) / 2); + break; + case "bottom": + case "end": + n = () => Math.round( + e.y + (c + s + 2 * e.textMargin) - e.textMargin + ); + break; + } + if (e.anchor !== void 0 && e.textMargin !== void 0 && e.width !== void 0) + switch (e.anchor) { + case "left": + case "start": + e.x = Math.round(e.x + e.textMargin), e.anchor = "start", e.dominantBaseline = "middle", e.alignmentBaseline = "middle"; + break; + case "middle": + case "center": + e.x = Math.round(e.x + e.width / 2), e.anchor = "middle", e.dominantBaseline = "middle", e.alignmentBaseline = "middle"; + break; + case "right": + case "end": + e.x = Math.round(e.x + e.width - e.textMargin), e.anchor = "end", e.dominantBaseline = "middle", e.alignmentBaseline = "middle"; + break; + } + for (let [x, T] of r.entries()) { + e.textMargin !== void 0 && e.textMargin === 0 && i !== void 0 && (u = x * i); + const p = t.append("text"); + p.attr("x", e.x), p.attr("y", n()), e.anchor !== void 0 && p.attr("text-anchor", e.anchor).attr("dominant-baseline", e.dominantBaseline).attr("alignment-baseline", e.alignmentBaseline), e.fontFamily !== void 0 && p.style("font-family", e.fontFamily), o !== void 0 && p.style("font-size", o), e.fontWeight !== void 0 && p.style("font-weight", e.fontWeight), e.fill !== void 0 && p.attr("fill", e.fill), e.class !== void 0 && p.attr("class", e.class), e.dy !== void 0 ? p.attr("dy", e.dy) : u !== 0 && p.attr("dy", u); + const g = T || Ae; + if (e.tspan) { + const m = p.append("tspan"); + m.attr("x", e.x), e.fill !== void 0 && m.attr("fill", e.fill), m.text(g); + } else + p.text(g); + e.valign !== void 0 && e.textMargin !== void 0 && e.textMargin > 0 && (s += (p._groups || p)[0][0].getBBox().height, c = s), l.push(p); + } + return l; +}, he = function(t, e) { + function c(r, i, o, l, u) { + return r + "," + i + " " + (r + o) + "," + i + " " + (r + o) + "," + (i + l - u) + " " + (r + o - u * 1.2) + "," + (i + l) + " " + r + "," + (i + l); + } + const s = t.append("polygon"); + return s.attr("points", c(e.x, e.y, e.width, e.height, 7)), s.attr("class", "labelBox"), e.y = e.y + e.height / 2, bt(t, e), s; +}; +let it = -1; +const ue = (t, e, c, s) => { + t.select && c.forEach((r) => { + const i = e[r], o = t.select("#actor" + i.actorCnt); + !s.mirrorActors && i.stopy ? o.attr("y2", i.stopy + i.height / 2) : s.mirrorActors && o.attr("y2", i.stopy); + }); +}, d0 = async function(t, e, c, s) { + const r = s ? e.stopy : e.starty, i = e.x + e.width / 2, o = r + 5, l = t.append("g").lower(); + var u = l; + s || (it++, Object.keys(e.links || {}).length && !c.forceMenus && u.attr("onclick", l0(`actor${it}_popup`)).attr("cursor", "pointer"), u.append("line").attr("id", "actor" + it).attr("x1", i).attr("y1", o).attr("x2", i).attr("y2", 2e3).attr("class", "actor-line").attr("class", "200").attr("stroke-width", "0.5px").attr("stroke", "#999"), u = l.append("g"), e.actorCnt = it, e.links != null && u.attr("id", "root-" + it)); + const n = vt(); + var x = "actor"; + e.properties != null && e.properties.class ? x = e.properties.class : n.fill = "#eaeaea", s ? x += ` ${de}` : x += ` ${le}`, n.x = e.x, n.y = r, n.width = e.width, n.height = e.height, n.class = x, n.rx = 3, n.ry = 3, n.name = e.name; + const T = Ut(u, n); + if (e.rectData = n, e.properties != null && e.properties.icon) { + const g = e.properties.icon.trim(); + g.charAt(0) === "@" ? Re(u, n.x + n.width - 20, n.y + 10, g.substr(1)) : Ce(u, n.x + n.width - 20, n.y + 10, g); + } + await Kt(c, at(e.description))( + e.description, + u, + n.x, + n.y, + n.width, + n.height, + { class: "actor" }, + c + ); + let p = e.height; + if (T.node) { + const g = T.node().getBBox(); + e.height = g.height, p = g.height; + } + return p; +}, h0 = async function(t, e, c, s) { + const r = s ? e.stopy : e.starty, i = e.x + e.width / 2, o = r + 80; + t.lower(), s || (it++, t.append("line").attr("id", "actor" + it).attr("x1", i).attr("y1", o).attr("x2", i).attr("y2", 2e3).attr("class", "actor-line").attr("class", "200").attr("stroke-width", "0.5px").attr("stroke", "#999"), e.actorCnt = it); + const l = t.append("g"); + let u = "actor-man"; + s ? u += ` ${de}` : u += ` ${le}`, l.attr("class", u), l.attr("name", e.name); + const n = vt(); + n.x = e.x, n.y = r, n.fill = "#eaeaea", n.width = e.width, n.height = e.height, n.class = "actor", n.rx = 3, n.ry = 3, l.append("line").attr("id", "actor-man-torso" + it).attr("x1", i).attr("y1", r + 25).attr("x2", i).attr("y2", r + 45), l.append("line").attr("id", "actor-man-arms" + it).attr("x1", i - ft / 2).attr("y1", r + 33).attr("x2", i + ft / 2).attr("y2", r + 33), l.append("line").attr("x1", i - ft / 2).attr("y1", r + 60).attr("x2", i).attr("y2", r + 45), l.append("line").attr("x1", i).attr("y1", r + 45).attr("x2", i + ft / 2 - 2).attr("y2", r + 60); + const x = l.append("circle"); + x.attr("cx", e.x + e.width / 2), x.attr("cy", r + 10), x.attr("r", 15), x.attr("width", e.width), x.attr("height", e.height); + const T = l.node().getBBox(); + return e.height = T.height, await Kt(c, at(e.description))( + e.description, + l, + n.x, + n.y + 35, + n.width, + n.height, + { class: "actor" }, + c + ), e.height; +}, u0 = async function(t, e, c, s) { + switch (e.type) { + case "actor": + return await h0(t, e, c, s); + case "participant": + return await d0(t, e, c, s); + } +}, p0 = async function(t, e, c) { + const r = t.append("g"); + pe(r, e), e.name && await Kt(c)( + e.name, + r, + e.x, + e.y + (e.textMaxHeight || 0) / 2, + e.width, + 0, + { class: "text" }, + c + ), r.lower(); +}, f0 = function(t) { + return t.append("g"); +}, g0 = function(t, e, c, s, r) { + const i = vt(), o = e.anchored; + i.x = e.startx, i.y = e.starty, i.class = "activation" + r % 3, i.width = e.stopx - e.startx, i.height = c - e.starty, Ut(o, i); +}, x0 = async function(t, e, c, s) { + const { + boxMargin: r, + boxTextMargin: i, + labelBoxHeight: o, + labelBoxWidth: l, + messageFontFamily: u, + messageFontSize: n, + messageFontWeight: x + } = s, T = t.append("g"), p = function(k, A, V, S) { + return T.append("line").attr("x1", k).attr("y1", A).attr("x2", V).attr("y2", S).attr("class", "loopLine"); + }; + p(e.startx, e.starty, e.stopx, e.starty), p(e.stopx, e.starty, e.stopx, e.stopy), p(e.startx, e.stopy, e.stopx, e.stopy), p(e.startx, e.starty, e.startx, e.stopy), e.sections !== void 0 && e.sections.forEach(function(k) { + p(e.startx, k.y, e.stopx, k.y).style( + "stroke-dasharray", + "3, 3" + ); + }); + let g = zt(); + g.text = c, g.x = e.startx, g.y = e.starty, g.fontFamily = u, g.fontSize = n, g.fontWeight = x, g.anchor = "middle", g.valign = "middle", g.tspan = !1, g.width = l || 50, g.height = o || 20, g.textMargin = i, g.class = "labelText", he(T, g), g = fe(), g.text = e.title, g.x = e.startx + l / 2 + (e.stopx - e.startx) / 2, g.y = e.starty + r + i, g.anchor = "middle", g.valign = "middle", g.textMargin = i, g.class = "loopText", g.fontFamily = u, g.fontSize = n, g.fontWeight = x, g.wrap = !0; + let m = at(g.text) ? await At(T, g, e) : bt(T, g); + if (e.sectionTitles !== void 0) { + for (const [k, A] of Object.entries(e.sectionTitles)) + if (A.message) { + g.text = A.message, g.x = e.startx + (e.stopx - e.startx) / 2, g.y = e.sections[k].y + r + i, g.class = "loopText", g.anchor = "middle", g.valign = "middle", g.tspan = !1, g.fontFamily = u, g.fontSize = n, g.fontWeight = x, g.wrap = e.wrap, at(g.text) ? (e.starty = e.sections[k].y, await At(T, g, e)) : bt(T, g); + let V = Math.round( + m.map((S) => (S._groups || S)[0][0].getBBox().height).reduce((S, O) => S + O) + ); + e.sections[k].height += V - (r + i); + } + } + return e.height = Math.round(e.stopy - e.starty), T; +}, pe = function(t, e) { + Me(t, e); +}, y0 = function(t) { + t.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr( + "d", + "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z" + ); +}, T0 = function(t) { + t.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( + "d", + "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z" + ); +}, b0 = function(t) { + t.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( + "d", + "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z" + ); +}, E0 = function(t) { + t.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 7.9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z"); +}, m0 = function(t) { + t.append("defs").append("marker").attr("id", "filled-head").attr("refX", 15.5).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); +}, w0 = function(t) { + t.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6); +}, _0 = function(t) { + t.append("defs").append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 4).attr("refY", 4.5).append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1pt").attr("d", "M 1,2 L 6,7 M 6,2 L 1,7"); +}, fe = function() { + return { + x: 0, + y: 0, + fill: void 0, + anchor: void 0, + style: "#666", + width: void 0, + height: void 0, + textMargin: 0, + rx: 0, + ry: 0, + tspan: !0, + valign: void 0 + }; +}, k0 = function() { + return { + x: 0, + y: 0, + fill: "#EDF2AE", + stroke: "#666", + width: 100, + anchor: "start", + height: 100, + rx: 0, + ry: 0 + }; +}, Kt = function() { + function t(i, o, l, u, n, x, T) { + const p = o.append("text").attr("x", l + n / 2).attr("y", u + x / 2 + 5).style("text-anchor", "middle").text(i); + r(p, T); + } + function e(i, o, l, u, n, x, T, p) { + const { actorFontSize: g, actorFontFamily: m, actorFontWeight: k } = p, [A, V] = ee(g), S = i.split(_.lineBreakRegex); + for (let O = 0; O < S.length; O++) { + const R = O * A - A * (S.length - 1) / 2, q = o.append("text").attr("x", l + n / 2).attr("y", u).style("text-anchor", "middle").style("font-size", V).style("font-weight", k).style("font-family", m); + q.append("tspan").attr("x", l + n / 2).attr("dy", R).text(S[O]), q.attr("y", u + x / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"), r(q, T); + } + } + function c(i, o, l, u, n, x, T, p) { + const g = o.append("switch"), k = g.append("foreignObject").attr("x", l).attr("y", u).attr("width", n).attr("height", x).append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + k.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(i), e(i, g, l, u, n, x, T, p), r(k, T); + } + async function s(i, o, l, u, n, x, T, p) { + const g = await wt(i, Bt()), m = o.append("switch"), A = m.append("foreignObject").attr("x", l + n / 2 - g.width / 2).attr("y", u + x / 2 - g.height / 2).attr("width", g.width).attr("height", g.height).append("xhtml:div").style("height", "100%").style("width", "100%"); + A.append("div").style("text-align", "center").style("vertical-align", "middle").html(await se(i, Bt())), e(i, m, l, u, n, x, T, p), r(A, T); + } + function r(i, o) { + for (const l in o) + o.hasOwnProperty(l) && i.attr(l, o[l]); + } + return function(i, o = !1) { + return o ? s : i.textPlacement === "fo" ? c : i.textPlacement === "old" ? t : e; + }; +}(), P0 = function() { + function t(r, i, o, l, u, n, x) { + const T = i.append("text").attr("x", o).attr("y", l).style("text-anchor", "start").text(r); + s(T, x); + } + function e(r, i, o, l, u, n, x, T) { + const { actorFontSize: p, actorFontFamily: g, actorFontWeight: m } = T, k = r.split(_.lineBreakRegex); + for (let A = 0; A < k.length; A++) { + const V = A * p - p * (k.length - 1) / 2, S = i.append("text").attr("x", o).attr("y", l).style("text-anchor", "start").style("font-size", p).style("font-weight", m).style("font-family", g); + S.append("tspan").attr("x", o).attr("dy", V).text(k[A]), S.attr("y", l + n / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"), s(S, x); + } + } + function c(r, i, o, l, u, n, x, T) { + const p = i.append("switch"), m = p.append("foreignObject").attr("x", o).attr("y", l).attr("width", u).attr("height", n).append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + m.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(r), e(r, p, o, l, u, n, x, T), s(m, x); + } + function s(r, i) { + for (const o in i) + i.hasOwnProperty(o) && r.attr(o, i[o]); + } + return function(r) { + return r.textPlacement === "fo" ? c : r.textPlacement === "old" ? t : e; + }; +}(), D = { + drawRect: Ut, + drawText: bt, + drawLabel: he, + drawActor: u0, + drawBox: p0, + drawPopup: c0, + anchorElement: f0, + drawActivation: g0, + drawLoop: x0, + drawBackgroundRect: pe, + insertArrowHead: E0, + insertArrowFilledHead: m0, + insertSequenceNumber: w0, + insertArrowCrossHead: _0, + insertDatabaseIcon: y0, + insertComputerIcon: T0, + insertClockIcon: b0, + getTextObj: fe, + getNoteRect: k0, + fixLifeLineHeights: ue, + sanitizeUrl: te.sanitizeUrl +}; +let a = {}; +const f = { + data: { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0 + }, + verticalPos: 0, + sequenceItems: [], + activations: [], + models: { + getHeight: function() { + return Math.max.apply( + null, + this.actors.length === 0 ? [0] : this.actors.map((t) => t.height || 0) + ) + (this.loops.length === 0 ? 0 : this.loops.map((t) => t.height || 0).reduce((t, e) => t + e)) + (this.messages.length === 0 ? 0 : this.messages.map((t) => t.height || 0).reduce((t, e) => t + e)) + (this.notes.length === 0 ? 0 : this.notes.map((t) => t.height || 0).reduce((t, e) => t + e)); + }, + clear: function() { + this.actors = [], this.boxes = [], this.loops = [], this.messages = [], this.notes = []; + }, + addBox: function(t) { + this.boxes.push(t); + }, + addActor: function(t) { + this.actors.push(t); + }, + addLoop: function(t) { + this.loops.push(t); + }, + addMessage: function(t) { + this.messages.push(t); + }, + addNote: function(t) { + this.notes.push(t); + }, + lastActor: function() { + return this.actors[this.actors.length - 1]; + }, + lastLoop: function() { + return this.loops[this.loops.length - 1]; + }, + lastMessage: function() { + return this.messages[this.messages.length - 1]; + }, + lastNote: function() { + return this.notes[this.notes.length - 1]; + }, + actors: [], + boxes: [], + loops: [], + messages: [], + notes: [] + }, + init: function() { + this.sequenceItems = [], this.activations = [], this.models.clear(), this.data = { + startx: void 0, + stopx: void 0, + starty: void 0, + stopy: void 0 + }, this.verticalPos = 0, xe(st()); + }, + updateVal: function(t, e, c, s) { + t[e] === void 0 ? t[e] = c : t[e] = s(c, t[e]); + }, + updateBounds: function(t, e, c, s) { + const r = this; + let i = 0; + function o(l) { + return function(n) { + i++; + const x = r.sequenceItems.length - i + 1; + r.updateVal(n, "starty", e - x * a.boxMargin, Math.min), r.updateVal(n, "stopy", s + x * a.boxMargin, Math.max), r.updateVal(f.data, "startx", t - x * a.boxMargin, Math.min), r.updateVal(f.data, "stopx", c + x * a.boxMargin, Math.max), l !== "activation" && (r.updateVal(n, "startx", t - x * a.boxMargin, Math.min), r.updateVal(n, "stopx", c + x * a.boxMargin, Math.max), r.updateVal(f.data, "starty", e - x * a.boxMargin, Math.min), r.updateVal(f.data, "stopy", s + x * a.boxMargin, Math.max)); + }; + } + this.sequenceItems.forEach(o()), this.activations.forEach(o("activation")); + }, + insert: function(t, e, c, s) { + const r = _.getMin(t, c), i = _.getMax(t, c), o = _.getMin(e, s), l = _.getMax(e, s); + this.updateVal(f.data, "startx", r, Math.min), this.updateVal(f.data, "starty", o, Math.min), this.updateVal(f.data, "stopx", i, Math.max), this.updateVal(f.data, "stopy", l, Math.max), this.updateBounds(r, o, i, l); + }, + newActivation: function(t, e, c) { + const s = c[t.from.actor], r = St(t.from.actor).length || 0, i = s.x + s.width / 2 + (r - 1) * a.activationWidth / 2; + this.activations.push({ + startx: i, + starty: this.verticalPos + 2, + stopx: i + a.activationWidth, + stopy: void 0, + actor: t.from.actor, + anchored: D.anchorElement(e) + }); + }, + endActivation: function(t) { + const e = this.activations.map(function(c) { + return c.actor; + }).lastIndexOf(t.from.actor); + return this.activations.splice(e, 1)[0]; + }, + createLoop: function(t = { message: void 0, wrap: !1, width: void 0 }, e) { + return { + startx: void 0, + starty: this.verticalPos, + stopx: void 0, + stopy: void 0, + title: t.message, + wrap: t.wrap, + width: t.width, + height: 0, + fill: e + }; + }, + newLoop: function(t = { message: void 0, wrap: !1, width: void 0 }, e) { + this.sequenceItems.push(this.createLoop(t, e)); + }, + endLoop: function() { + return this.sequenceItems.pop(); + }, + isLoopOverlap: function() { + return this.sequenceItems.length ? this.sequenceItems[this.sequenceItems.length - 1].overlap : !1; + }, + addSectionToLoop: function(t) { + const e = this.sequenceItems.pop(); + e.sections = e.sections || [], e.sectionTitles = e.sectionTitles || [], e.sections.push({ y: f.getVerticalPos(), height: 0 }), e.sectionTitles.push(t), this.sequenceItems.push(e); + }, + saveVerticalPos: function() { + this.isLoopOverlap() && (this.savedVerticalPos = this.verticalPos); + }, + resetVerticalPos: function() { + this.isLoopOverlap() && (this.verticalPos = this.savedVerticalPos); + }, + bumpVerticalPos: function(t) { + this.verticalPos = this.verticalPos + t, this.data.stopy = _.getMax(this.data.stopy, this.verticalPos); + }, + getVerticalPos: function() { + return this.verticalPos; + }, + getBounds: function() { + return { bounds: this.data, models: this.models }; + } +}, L0 = async function(t, e) { + f.bumpVerticalPos(a.boxMargin), e.height = a.boxMargin, e.starty = f.getVerticalPos(); + const c = vt(); + c.x = e.startx, c.y = e.starty, c.width = e.width || a.width, c.class = "note"; + const s = t.append("g"), r = D.drawRect(s, c), i = zt(); + i.x = e.startx, i.y = e.starty, i.width = c.width, i.dy = "1em", i.text = e.message, i.class = "noteText", i.fontFamily = a.noteFontFamily, i.fontSize = a.noteFontSize, i.fontWeight = a.noteFontWeight, i.anchor = a.noteAlign, i.textMargin = a.noteMargin, i.valign = "center"; + const o = at(i.text) ? await At(s, i) : bt(s, i), l = Math.round( + o.map((u) => (u._groups || u)[0][0].getBBox().height).reduce((u, n) => u + n) + ); + r.attr("height", l + 2 * a.noteMargin), e.height += l + 2 * a.noteMargin, f.bumpVerticalPos(l + 2 * a.noteMargin), e.stopy = e.starty + l + 2 * a.noteMargin, e.stopx = e.startx + c.width, f.insert(e.startx, e.starty, e.stopx, e.stopy), f.models.addNote(e); +}, xt = (t) => ({ + fontFamily: t.messageFontFamily, + fontSize: t.messageFontSize, + fontWeight: t.messageFontWeight +}), Tt = (t) => ({ + fontFamily: t.noteFontFamily, + fontSize: t.noteFontSize, + fontWeight: t.noteFontWeight +}), Wt = (t) => ({ + fontFamily: t.actorFontFamily, + fontSize: t.actorFontSize, + fontWeight: t.actorFontWeight +}); +async function I0(t, e) { + f.bumpVerticalPos(10); + const { startx: c, stopx: s, message: r } = e, i = _.splitBreaks(r).length, o = at(r), l = o ? await wt(r, st()) : B.calculateTextDimensions(r, xt(a)); + if (!o) { + const T = l.height / i; + e.height += T, f.bumpVerticalPos(T); + } + let u, n = l.height - 10; + const x = l.width; + if (c === s) { + u = f.getVerticalPos() + n, a.rightAngles || (n += a.boxMargin, u = f.getVerticalPos() + n), n += 30; + const T = _.getMax(x / 2, a.width / 2); + f.insert( + c - T, + f.getVerticalPos() - 10 + n, + s + T, + f.getVerticalPos() + 30 + n + ); + } else + n += a.boxMargin, u = f.getVerticalPos() + n, f.insert(c, u - 10, s, u); + return f.bumpVerticalPos(n), e.height += n, e.stopy = e.starty + e.height, f.insert(e.fromBounds, e.starty, e.toBounds, e.stopy), u; +} +const A0 = async function(t, e, c, s) { + const { startx: r, stopx: i, starty: o, message: l, type: u, sequenceIndex: n, sequenceVisible: x } = e, T = B.calculateTextDimensions(l, xt(a)), p = zt(); + p.x = r, p.y = o + 10, p.width = i - r, p.class = "messageText", p.dy = "1em", p.text = l, p.fontFamily = a.messageFontFamily, p.fontSize = a.messageFontSize, p.fontWeight = a.messageFontWeight, p.anchor = a.messageAlign, p.valign = "center", p.textMargin = a.wrapPadding, p.tspan = !1, at(p.text) ? await At(t, p, { startx: r, stopx: i, starty: c }) : bt(t, p); + const g = T.width; + let m; + r === i ? a.rightAngles ? m = t.append("path").attr( + "d", + `M ${r},${c} H ${r + _.getMax(a.width / 2, g / 2)} V ${c + 25} H ${r}` + ) : m = t.append("path").attr( + "d", + "M " + r + "," + c + " C " + (r + 60) + "," + (c - 10) + " " + (r + 60) + "," + (c + 30) + " " + r + "," + (c + 20) + ) : (m = t.append("line"), m.attr("x1", r), m.attr("y1", c), m.attr("x2", i), m.attr("y2", c)), u === s.db.LINETYPE.DOTTED || u === s.db.LINETYPE.DOTTED_CROSS || u === s.db.LINETYPE.DOTTED_POINT || u === s.db.LINETYPE.DOTTED_OPEN ? (m.style("stroke-dasharray", "3, 3"), m.attr("class", "messageLine1")) : m.attr("class", "messageLine0"); + let k = ""; + a.arrowMarkerAbsolute && (k = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, k = k.replace(/\(/g, "\\("), k = k.replace(/\)/g, "\\)")), m.attr("stroke-width", 2), m.attr("stroke", "none"), m.style("fill", "none"), (u === s.db.LINETYPE.SOLID || u === s.db.LINETYPE.DOTTED) && m.attr("marker-end", "url(" + k + "#arrowhead)"), (u === s.db.LINETYPE.SOLID_POINT || u === s.db.LINETYPE.DOTTED_POINT) && m.attr("marker-end", "url(" + k + "#filled-head)"), (u === s.db.LINETYPE.SOLID_CROSS || u === s.db.LINETYPE.DOTTED_CROSS) && m.attr("marker-end", "url(" + k + "#crosshead)"), (x || a.showSequenceNumbers) && (m.attr("marker-start", "url(" + k + "#sequencenumber)"), t.append("text").attr("x", r).attr("y", c + 4).attr("font-family", "sans-serif").attr("font-size", "12px").attr("text-anchor", "middle").attr("class", "sequenceNumber").text(n)); +}, N0 = async function(t, e, c, s, r, i, o) { + let l = 0, u = 0, n, x = 0; + for (const T of s) { + const p = e[T], g = p.box; + n && n != g && (o || f.models.addBox(n), u += a.boxMargin + n.margin), g && g != n && (o || (g.x = l + u, g.y = r), u += g.margin), p.width = p.width || a.width, p.height = _.getMax(p.height || a.height, a.height), p.margin = p.margin || a.actorMargin, x = _.getMax(x, p.height), c[p.name] && (u += p.width / 2), p.x = l + u, p.starty = f.getVerticalPos(), f.insert(p.x, r, p.x + p.width, p.height), l += p.width + u, p.box && (p.box.width = l + g.margin - p.box.x), u = p.margin, n = p.box, f.models.addActor(p); + } + n && !o && f.models.addBox(n), f.bumpVerticalPos(x); +}, qt = async function(t, e, c, s) { + if (s) { + let r = 0; + f.bumpVerticalPos(a.boxMargin * 2); + for (const i of c) { + const o = e[i]; + o.stopy || (o.stopy = f.getVerticalPos()); + const l = await D.drawActor(t, o, a, !0); + r = _.getMax(r, l); + } + f.bumpVerticalPos(r + a.boxMargin); + } else + for (const r of c) { + const i = e[r]; + await D.drawActor(t, i, a, !1); + } +}, ge = function(t, e, c, s) { + let r = 0, i = 0; + for (const o of c) { + const l = e[o], u = R0(l), n = D.drawPopup( + t, + l, + u, + a, + a.forceMenus, + s + ); + n.height > r && (r = n.height), n.width + l.x > i && (i = n.width + l.x); + } + return { maxHeight: r, maxWidth: i }; +}, xe = function(t) { + Ne(a, t), t.fontFamily && (a.actorFontFamily = a.noteFontFamily = a.messageFontFamily = t.fontFamily), t.fontSize && (a.actorFontSize = a.noteFontSize = a.messageFontSize = t.fontSize), t.fontWeight && (a.actorFontWeight = a.noteFontWeight = a.messageFontWeight = t.fontWeight); +}, St = function(t) { + return f.activations.filter(function(e) { + return e.actor === t; + }); +}, jt = function(t, e) { + const c = e[t], s = St(t), r = s.reduce(function(o, l) { + return _.getMin(o, l.startx); + }, c.x + c.width / 2 - 1), i = s.reduce(function(o, l) { + return _.getMax(o, l.stopx); + }, c.x + c.width / 2 + 1); + return [r, i]; +}; +function rt(t, e, c, s, r) { + f.bumpVerticalPos(c); + let i = s; + if (e.id && e.message && t[e.id]) { + const o = t[e.id].width, l = xt(a); + e.message = B.wrapLabel(`[${e.message}]`, o - 2 * a.wrapPadding, l), e.width = o, e.wrap = !0; + const u = B.calculateTextDimensions(e.message, l), n = _.getMax(u.height, a.labelBoxHeight); + i = s + n, X.debug(`${n} - ${e.message}`); + } + r(e), f.bumpVerticalPos(i); +} +function v0(t, e, c, s, r, i, o) { + function l(n, x) { + n.x < r[t.from].x ? (f.insert( + e.stopx - x, + e.starty, + e.startx, + e.stopy + n.height / 2 + a.noteMargin + ), e.stopx = e.stopx + x) : (f.insert( + e.startx, + e.starty, + e.stopx + x, + e.stopy + n.height / 2 + a.noteMargin + ), e.stopx = e.stopx - x); + } + function u(n, x) { + n.x < r[t.to].x ? (f.insert( + e.startx - x, + e.starty, + e.stopx, + e.stopy + n.height / 2 + a.noteMargin + ), e.startx = e.startx + x) : (f.insert( + e.stopx, + e.starty, + e.startx + x, + e.stopy + n.height / 2 + a.noteMargin + ), e.startx = e.startx - x); + } + if (i[t.to] == s) { + const n = r[t.to], x = n.type == "actor" ? ft / 2 + 3 : n.width / 2 + 3; + l(n, x), n.starty = c - n.height / 2, f.bumpVerticalPos(n.height / 2); + } else if (o[t.from] == s) { + const n = r[t.from]; + if (a.mirrorActors) { + const x = n.type == "actor" ? ft / 2 : n.width / 2; + u(n, x); + } + n.stopy = c - n.height / 2, f.bumpVerticalPos(n.height / 2); + } else if (o[t.to] == s) { + const n = r[t.to]; + if (a.mirrorActors) { + const x = n.type == "actor" ? ft / 2 + 3 : n.width / 2 + 3; + l(n, x); + } + n.stopy = c - n.height / 2, f.bumpVerticalPos(n.height / 2); + } +} +const S0 = async function(t, e, c, s) { + const { securityLevel: r, sequence: i } = st(); + a = i; + let o; + r === "sandbox" && (o = It("#i" + e)); + const l = r === "sandbox" ? It(o.nodes()[0].contentDocument.body) : It("body"), u = r === "sandbox" ? o.nodes()[0].contentDocument : document; + f.init(), X.debug(s.db); + const n = r === "sandbox" ? l.select(`[id="${e}"]`) : It(`[id="${e}"]`), x = s.db.getActors(), T = s.db.getCreatedActors(), p = s.db.getDestroyedActors(), g = s.db.getBoxes(); + let m = s.db.getActorKeys(); + const k = s.db.getMessages(), A = s.db.getDiagramTitle(), V = s.db.hasAtLeastOneBox(), S = s.db.hasAtLeastOneBoxWithTitle(), O = await M0(x, k, s); + if (a.height = await C0(x, O, g), D.insertComputerIcon(n), D.insertDatabaseIcon(n), D.insertClockIcon(n), V && (f.bumpVerticalPos(a.boxMargin), S && f.bumpVerticalPos(g[0].textMaxHeight)), a.hideUnusedParticipants === !0) { + const y = /* @__PURE__ */ new Set(); + k.forEach((L) => { + y.add(L.from), y.add(L.to); + }), m = m.filter((L) => y.has(L)); + } + await N0(n, x, T, m, 0, k, !1); + const R = await O0(k, x, O, s); + D.insertArrowHead(n), D.insertArrowCrossHead(n), D.insertArrowFilledHead(n), D.insertSequenceNumber(n); + function q(y, L) { + const j = f.endActivation(y); + j.starty + 18 > L && (j.starty = L - 6, L += 12), D.drawActivation( + n, + j, + L, + a, + St(y.from.actor).length + ), f.insert(j.startx, L - 10, j.stopx, L); + } + let z = 1, J = 1; + const $ = [], H = []; + let U = 0; + for (const y of k) { + let L, j, nt; + switch (y.type) { + case s.db.LINETYPE.NOTE: + f.resetVerticalPos(), j = y.noteModel, await L0(n, j); + break; + case s.db.LINETYPE.ACTIVE_START: + f.newActivation(y, n, x); + break; + case s.db.LINETYPE.ACTIVE_END: + q(y, f.getVerticalPos()); + break; + case s.db.LINETYPE.LOOP_START: + rt( + R, + y, + a.boxMargin, + a.boxMargin + a.boxTextMargin, + (N) => f.newLoop(N) + ); + break; + case s.db.LINETYPE.LOOP_END: + L = f.endLoop(), await D.drawLoop(n, L, "loop", a), f.bumpVerticalPos(L.stopy - f.getVerticalPos()), f.models.addLoop(L); + break; + case s.db.LINETYPE.RECT_START: + rt( + R, + y, + a.boxMargin, + a.boxMargin, + (N) => f.newLoop(void 0, N.message) + ); + break; + case s.db.LINETYPE.RECT_END: + L = f.endLoop(), H.push(L), f.models.addLoop(L), f.bumpVerticalPos(L.stopy - f.getVerticalPos()); + break; + case s.db.LINETYPE.OPT_START: + rt( + R, + y, + a.boxMargin, + a.boxMargin + a.boxTextMargin, + (N) => f.newLoop(N) + ); + break; + case s.db.LINETYPE.OPT_END: + L = f.endLoop(), await D.drawLoop(n, L, "opt", a), f.bumpVerticalPos(L.stopy - f.getVerticalPos()), f.models.addLoop(L); + break; + case s.db.LINETYPE.ALT_START: + rt( + R, + y, + a.boxMargin, + a.boxMargin + a.boxTextMargin, + (N) => f.newLoop(N) + ); + break; + case s.db.LINETYPE.ALT_ELSE: + rt( + R, + y, + a.boxMargin + a.boxTextMargin, + a.boxMargin, + (N) => f.addSectionToLoop(N) + ); + break; + case s.db.LINETYPE.ALT_END: + L = f.endLoop(), await D.drawLoop(n, L, "alt", a), f.bumpVerticalPos(L.stopy - f.getVerticalPos()), f.models.addLoop(L); + break; + case s.db.LINETYPE.PAR_START: + case s.db.LINETYPE.PAR_OVER_START: + rt( + R, + y, + a.boxMargin, + a.boxMargin + a.boxTextMargin, + (N) => f.newLoop(N) + ), f.saveVerticalPos(); + break; + case s.db.LINETYPE.PAR_AND: + rt( + R, + y, + a.boxMargin + a.boxTextMargin, + a.boxMargin, + (N) => f.addSectionToLoop(N) + ); + break; + case s.db.LINETYPE.PAR_END: + L = f.endLoop(), await D.drawLoop(n, L, "par", a), f.bumpVerticalPos(L.stopy - f.getVerticalPos()), f.models.addLoop(L); + break; + case s.db.LINETYPE.AUTONUMBER: + z = y.message.start || z, J = y.message.step || J, y.message.visible ? s.db.enableSequenceNumbers() : s.db.disableSequenceNumbers(); + break; + case s.db.LINETYPE.CRITICAL_START: + rt( + R, + y, + a.boxMargin, + a.boxMargin + a.boxTextMargin, + (N) => f.newLoop(N) + ); + break; + case s.db.LINETYPE.CRITICAL_OPTION: + rt( + R, + y, + a.boxMargin + a.boxTextMargin, + a.boxMargin, + (N) => f.addSectionToLoop(N) + ); + break; + case s.db.LINETYPE.CRITICAL_END: + L = f.endLoop(), await D.drawLoop(n, L, "critical", a), f.bumpVerticalPos(L.stopy - f.getVerticalPos()), f.models.addLoop(L); + break; + case s.db.LINETYPE.BREAK_START: + rt( + R, + y, + a.boxMargin, + a.boxMargin + a.boxTextMargin, + (N) => f.newLoop(N) + ); + break; + case s.db.LINETYPE.BREAK_END: + L = f.endLoop(), await D.drawLoop(n, L, "break", a), f.bumpVerticalPos(L.stopy - f.getVerticalPos()), f.models.addLoop(L); + break; + default: + try { + nt = y.msgModel, nt.starty = f.getVerticalPos(), nt.sequenceIndex = z, nt.sequenceVisible = s.db.showSequenceNumbers(); + const N = await I0(n, nt); + v0( + y, + nt, + N, + U, + x, + T, + p + ), $.push({ messageModel: nt, lineStartY: N }), f.models.addMessage(nt); + } catch (N) { + X.error("error while drawing message", N); + } + } + [ + s.db.LINETYPE.SOLID_OPEN, + s.db.LINETYPE.DOTTED_OPEN, + s.db.LINETYPE.SOLID, + s.db.LINETYPE.DOTTED, + s.db.LINETYPE.SOLID_CROSS, + s.db.LINETYPE.DOTTED_CROSS, + s.db.LINETYPE.SOLID_POINT, + s.db.LINETYPE.DOTTED_POINT + ].includes(y.type) && (z = z + J), U++; + } + X.debug("createdActors", T), X.debug("destroyedActors", p), await qt(n, x, m, !1); + for (const y of $) + await A0(n, y.messageModel, y.lineStartY, s); + a.mirrorActors && await qt(n, x, m, !0), H.forEach((y) => D.drawBackgroundRect(n, y)), ue(n, x, m, a); + for (const y of f.models.boxes) + y.height = f.getVerticalPos() - y.y, f.insert(y.x, y.y, y.x + y.width, y.height), y.startx = y.x, y.starty = y.y, y.stopx = y.startx + y.width, y.stopy = y.starty + y.height, y.stroke = "rgb(0,0,0, 0.5)", await D.drawBox(n, y, a); + V && f.bumpVerticalPos(a.boxMargin); + const F = ge(n, x, m, u), { bounds: W } = f.getBounds(); + let Z = W.stopy - W.starty; + Z < F.maxHeight && (Z = F.maxHeight); + let K = Z + 2 * a.diagramMarginY; + a.mirrorActors && (K = K - a.boxMargin + a.bottomMarginAdj); + let Q = W.stopx - W.startx; + Q < F.maxWidth && (Q = F.maxWidth); + const tt = Q + 2 * a.diagramMarginX; + A && n.append("text").text(A).attr("x", (W.stopx - W.startx) / 2 - 2 * a.diagramMarginX).attr("y", -25), ve(n, K, tt, a.useMaxWidth); + const v = A ? 40 : 0; + n.attr( + "viewBox", + W.startx - a.diagramMarginX + " -" + (a.diagramMarginY + v) + " " + tt + " " + (K + v) + ), X.debug("models:", f.models); +}; +async function M0(t, e, c) { + const s = {}; + for (const r of e) + if (t[r.to] && t[r.from]) { + const i = t[r.to]; + if (r.placement === c.db.PLACEMENT.LEFTOF && !i.prevActor || r.placement === c.db.PLACEMENT.RIGHTOF && !i.nextActor) + continue; + const o = r.placement !== void 0, l = !o, u = o ? Tt(a) : xt(a), n = r.wrap ? B.wrapLabel(r.message, a.width - 2 * a.wrapPadding, u) : r.message, T = (at(n) ? await wt(r.message, st()) : B.calculateTextDimensions(n, u)).width + 2 * a.wrapPadding; + l && r.from === i.nextActor ? s[r.to] = _.getMax( + s[r.to] || 0, + T + ) : l && r.from === i.prevActor ? s[r.from] = _.getMax( + s[r.from] || 0, + T + ) : l && r.from === r.to ? (s[r.from] = _.getMax( + s[r.from] || 0, + T / 2 + ), s[r.to] = _.getMax( + s[r.to] || 0, + T / 2 + )) : r.placement === c.db.PLACEMENT.RIGHTOF ? s[r.from] = _.getMax( + s[r.from] || 0, + T + ) : r.placement === c.db.PLACEMENT.LEFTOF ? s[i.prevActor] = _.getMax( + s[i.prevActor] || 0, + T + ) : r.placement === c.db.PLACEMENT.OVER && (i.prevActor && (s[i.prevActor] = _.getMax( + s[i.prevActor] || 0, + T / 2 + )), i.nextActor && (s[r.from] = _.getMax( + s[r.from] || 0, + T / 2 + ))); + } + return X.debug("maxMessageWidthPerActor:", s), s; +} +const R0 = function(t) { + let e = 0; + const c = Wt(a); + for (const s in t.links) { + const i = B.calculateTextDimensions(s, c).width + 2 * a.wrapPadding + 2 * a.boxMargin; + e < i && (e = i); + } + return e; +}; +async function C0(t, e, c) { + let s = 0; + for (const i of Object.keys(t)) { + const o = t[i]; + o.wrap && (o.description = B.wrapLabel( + o.description, + a.width - 2 * a.wrapPadding, + Wt(a) + )); + const l = at(o.description) ? await wt(o.description, st()) : B.calculateTextDimensions(o.description, Wt(a)); + o.width = o.wrap ? a.width : _.getMax(a.width, l.width + 2 * a.wrapPadding), o.height = o.wrap ? _.getMax(l.height, a.height) : a.height, s = _.getMax(s, o.height); + } + for (const i in e) { + const o = t[i]; + if (!o) + continue; + const l = t[o.nextActor]; + if (!l) { + const T = e[i] + a.actorMargin - o.width / 2; + o.margin = _.getMax(T, a.actorMargin); + continue; + } + const n = e[i] + a.actorMargin - o.width / 2 - l.width / 2; + o.margin = _.getMax(n, a.actorMargin); + } + let r = 0; + return c.forEach((i) => { + const o = xt(a); + let l = i.actorKeys.reduce((x, T) => x += t[T].width + (t[T].margin || 0), 0); + l -= 2 * a.boxTextMargin, i.wrap && (i.name = B.wrapLabel(i.name, l - 2 * a.wrapPadding, o)); + const u = B.calculateTextDimensions(i.name, o); + r = _.getMax(u.height, r); + const n = _.getMax(l, u.width + 2 * a.wrapPadding); + if (i.margin = a.boxTextMargin, l < n) { + const x = (n - l) / 2; + i.margin += x; + } + }), c.forEach((i) => i.textMaxHeight = r), _.getMax(s, a.height); +} +const D0 = async function(t, e, c) { + const s = e[t.from].x, r = e[t.to].x, i = t.wrap && t.message; + let o = at(t.message) ? await wt(t.message, st()) : B.calculateTextDimensions( + i ? B.wrapLabel(t.message, a.width, Tt(a)) : t.message, + Tt(a) + ); + const l = { + width: i ? a.width : _.getMax(a.width, o.width + 2 * a.noteMargin), + height: 0, + startx: e[t.from].x, + stopx: 0, + starty: 0, + stopy: 0, + message: t.message + }; + return t.placement === c.db.PLACEMENT.RIGHTOF ? (l.width = i ? _.getMax(a.width, o.width) : _.getMax( + e[t.from].width / 2 + e[t.to].width / 2, + o.width + 2 * a.noteMargin + ), l.startx = s + (e[t.from].width + a.actorMargin) / 2) : t.placement === c.db.PLACEMENT.LEFTOF ? (l.width = i ? _.getMax(a.width, o.width + 2 * a.noteMargin) : _.getMax( + e[t.from].width / 2 + e[t.to].width / 2, + o.width + 2 * a.noteMargin + ), l.startx = s - l.width + (e[t.from].width - a.actorMargin) / 2) : t.to === t.from ? (o = B.calculateTextDimensions( + i ? B.wrapLabel( + t.message, + _.getMax(a.width, e[t.from].width), + Tt(a) + ) : t.message, + Tt(a) + ), l.width = i ? _.getMax(a.width, e[t.from].width) : _.getMax( + e[t.from].width, + a.width, + o.width + 2 * a.noteMargin + ), l.startx = s + (e[t.from].width - l.width) / 2) : (l.width = Math.abs(s + e[t.from].width / 2 - (r + e[t.to].width / 2)) + a.actorMargin, l.startx = s < r ? s + e[t.from].width / 2 - a.actorMargin / 2 : r + e[t.to].width / 2 - a.actorMargin / 2), i && (l.message = B.wrapLabel( + t.message, + l.width - 2 * a.wrapPadding, + Tt(a) + )), X.debug( + `NM:[${l.startx},${l.stopx},${l.starty},${l.stopy}:${l.width},${l.height}=${t.message}]` + ), l; +}, V0 = function(t, e, c) { + if (![ + c.db.LINETYPE.SOLID_OPEN, + c.db.LINETYPE.DOTTED_OPEN, + c.db.LINETYPE.SOLID, + c.db.LINETYPE.DOTTED, + c.db.LINETYPE.SOLID_CROSS, + c.db.LINETYPE.DOTTED_CROSS, + c.db.LINETYPE.SOLID_POINT, + c.db.LINETYPE.DOTTED_POINT + ].includes(t.type)) + return {}; + const [s, r] = jt(t.from, e), [i, o] = jt(t.to, e), l = s <= i, u = l ? r : s; + let n = l ? i : o; + const x = Math.abs(i - o) > 2, T = (k) => l ? -k : k; + t.from === t.to ? n = u : (t.activate && !x && (n += T(a.activationWidth / 2 - 1)), [c.db.LINETYPE.SOLID_OPEN, c.db.LINETYPE.DOTTED_OPEN].includes(t.type) || (n += T(3))); + const p = [s, r, i, o], g = Math.abs(u - n); + t.wrap && t.message && (t.message = B.wrapLabel( + t.message, + _.getMax(g + 2 * a.wrapPadding, a.width), + xt(a) + )); + const m = B.calculateTextDimensions(t.message, xt(a)); + return { + width: _.getMax( + t.wrap ? 0 : m.width + 2 * a.wrapPadding, + g + 2 * a.wrapPadding, + a.width + ), + height: 0, + startx: u, + stopx: n, + starty: 0, + stopy: 0, + message: t.message, + type: t.type, + wrap: t.wrap, + fromBounds: Math.min.apply(null, p), + toBounds: Math.max.apply(null, p) + }; +}, O0 = async function(t, e, c, s) { + const r = {}, i = []; + let o, l, u; + for (const n of t) { + switch (n.id = B.random({ length: 10 }), n.type) { + case s.db.LINETYPE.LOOP_START: + case s.db.LINETYPE.ALT_START: + case s.db.LINETYPE.OPT_START: + case s.db.LINETYPE.PAR_START: + case s.db.LINETYPE.PAR_OVER_START: + case s.db.LINETYPE.CRITICAL_START: + case s.db.LINETYPE.BREAK_START: + i.push({ + id: n.id, + msg: n.message, + from: Number.MAX_SAFE_INTEGER, + to: Number.MIN_SAFE_INTEGER, + width: 0 + }); + break; + case s.db.LINETYPE.ALT_ELSE: + case s.db.LINETYPE.PAR_AND: + case s.db.LINETYPE.CRITICAL_OPTION: + n.message && (o = i.pop(), r[o.id] = o, r[n.id] = o, i.push(o)); + break; + case s.db.LINETYPE.LOOP_END: + case s.db.LINETYPE.ALT_END: + case s.db.LINETYPE.OPT_END: + case s.db.LINETYPE.PAR_END: + case s.db.LINETYPE.CRITICAL_END: + case s.db.LINETYPE.BREAK_END: + o = i.pop(), r[o.id] = o; + break; + case s.db.LINETYPE.ACTIVE_START: + { + const T = e[n.from ? n.from.actor : n.to.actor], p = St(n.from ? n.from.actor : n.to.actor).length, g = T.x + T.width / 2 + (p - 1) * a.activationWidth / 2, m = { + startx: g, + stopx: g + a.activationWidth, + actor: n.from.actor, + enabled: !0 + }; + f.activations.push(m); + } + break; + case s.db.LINETYPE.ACTIVE_END: + { + const T = f.activations.map((p) => p.actor).lastIndexOf(n.from.actor); + delete f.activations.splice(T, 1)[0]; + } + break; + } + n.placement !== void 0 ? (l = await D0(n, e, s), n.noteModel = l, i.forEach((T) => { + o = T, o.from = _.getMin(o.from, l.startx), o.to = _.getMax(o.to, l.startx + l.width), o.width = _.getMax(o.width, Math.abs(o.from - o.to)) - a.labelBoxWidth; + })) : (u = V0(n, e, s), n.msgModel = u, u.startx && u.stopx && i.length > 0 && i.forEach((T) => { + if (o = T, u.startx === u.stopx) { + const p = e[n.from], g = e[n.to]; + o.from = _.getMin( + p.x - u.width / 2, + p.x - p.width / 2, + o.from + ), o.to = _.getMax( + g.x + u.width / 2, + g.x + p.width / 2, + o.to + ), o.width = _.getMax(o.width, Math.abs(o.to - o.from)) - a.labelBoxWidth; + } else + o.from = _.getMin(u.startx, o.from), o.to = _.getMax(u.stopx, o.to), o.width = _.getMax(o.width, u.width) - a.labelBoxWidth; + })); + } + return f.activations = [], X.debug("Loop type widths:", r), r; +}, B0 = { + bounds: f, + drawActors: qt, + drawActorsPopup: ge, + setConf: xe, + draw: S0 +}, W0 = { + parser: De, + db: Qt, + renderer: B0, + styles: o0, + init: ({ wrap: t }) => { + Qt.setWrap(t); + } +}; +export { + W0 as diagram +}; diff --git a/assets/lib/mermaid/stateDiagram-5dee940d.js b/assets/lib/mermaid/stateDiagram-5dee940d.js new file mode 100644 index 000000000..551c82f7a --- /dev/null +++ b/assets/lib/mermaid/stateDiagram-5dee940d.js @@ -0,0 +1,474 @@ +import { d as db, p as parser, s as styles } from "./styles-0784dbeb.js"; +import { line, curveBasis, select } from "d3"; +import { layout } from "dagre-d3-es/src/dagre/index.js"; +import * as graphlib from "dagre-d3-es/src/graphlib/index.js"; +import { c as getConfig, u as utils, e as common, l as log, i as configureSvgSize } from "./mermaid-6dc72991.js"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +const idCache = {}; +const set = (key, val) => { + idCache[key] = val; +}; +const get = (k) => idCache[k]; +const keys = () => Object.keys(idCache); +const size = () => keys().length; +const idCache$1 = { + get, + set, + keys, + size +}; +const drawStartState = (g) => g.append("circle").attr("class", "start-state").attr("r", getConfig().state.sizeUnit).attr("cx", getConfig().state.padding + getConfig().state.sizeUnit).attr("cy", getConfig().state.padding + getConfig().state.sizeUnit); +const drawDivider = (g) => g.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", getConfig().state.textHeight).attr("class", "divider").attr("x2", getConfig().state.textHeight * 2).attr("y1", 0).attr("y2", 0); +const drawSimpleState = (g, stateDef) => { + const state = g.append("text").attr("x", 2 * getConfig().state.padding).attr("y", getConfig().state.textHeight + 2 * getConfig().state.padding).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.id); + const classBox = state.node().getBBox(); + g.insert("rect", ":first-child").attr("x", getConfig().state.padding).attr("y", getConfig().state.padding).attr("width", classBox.width + 2 * getConfig().state.padding).attr("height", classBox.height + 2 * getConfig().state.padding).attr("rx", getConfig().state.radius); + return state; +}; +const drawDescrState = (g, stateDef) => { + const addTspan = function(textEl, txt, isFirst2) { + const tSpan = textEl.append("tspan").attr("x", 2 * getConfig().state.padding).text(txt); + if (!isFirst2) { + tSpan.attr("dy", getConfig().state.textHeight); + } + }; + const title = g.append("text").attr("x", 2 * getConfig().state.padding).attr("y", getConfig().state.textHeight + 1.3 * getConfig().state.padding).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.descriptions[0]); + const titleBox = title.node().getBBox(); + const titleHeight = titleBox.height; + const description = g.append("text").attr("x", getConfig().state.padding).attr( + "y", + titleHeight + getConfig().state.padding * 0.4 + getConfig().state.dividerMargin + getConfig().state.textHeight + ).attr("class", "state-description"); + let isFirst = true; + let isSecond = true; + stateDef.descriptions.forEach(function(descr) { + if (!isFirst) { + addTspan(description, descr, isSecond); + isSecond = false; + } + isFirst = false; + }); + const descrLine = g.append("line").attr("x1", getConfig().state.padding).attr("y1", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr("y2", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr("class", "descr-divider"); + const descrBox = description.node().getBBox(); + const width = Math.max(descrBox.width, titleBox.width); + descrLine.attr("x2", width + 3 * getConfig().state.padding); + g.insert("rect", ":first-child").attr("x", getConfig().state.padding).attr("y", getConfig().state.padding).attr("width", width + 2 * getConfig().state.padding).attr("height", descrBox.height + titleHeight + 2 * getConfig().state.padding).attr("rx", getConfig().state.radius); + return g; +}; +const addTitleAndBox = (g, stateDef, altBkg) => { + const pad = getConfig().state.padding; + const dblPad = 2 * getConfig().state.padding; + const orgBox = g.node().getBBox(); + const orgWidth = orgBox.width; + const orgX = orgBox.x; + const title = g.append("text").attr("x", 0).attr("y", getConfig().state.titleShift).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.id); + const titleBox = title.node().getBBox(); + const titleWidth = titleBox.width + dblPad; + let width = Math.max(titleWidth, orgWidth); + if (width === orgWidth) { + width = width + dblPad; + } + let startX; + const graphBox = g.node().getBBox(); + if (stateDef.doc) + ; + startX = orgX - pad; + if (titleWidth > orgWidth) { + startX = (orgWidth - width) / 2 + pad; + } + if (Math.abs(orgX - graphBox.x) < pad && titleWidth > orgWidth) { + startX = orgX - (titleWidth - orgWidth) / 2; + } + const lineY = 1 - getConfig().state.textHeight; + g.insert("rect", ":first-child").attr("x", startX).attr("y", lineY).attr("class", altBkg ? "alt-composit" : "composit").attr("width", width).attr( + "height", + graphBox.height + getConfig().state.textHeight + getConfig().state.titleShift + 1 + ).attr("rx", "0"); + title.attr("x", startX + pad); + if (titleWidth <= orgWidth) { + title.attr("x", orgX + (width - dblPad) / 2 - titleWidth / 2 + pad); + } + g.insert("rect", ":first-child").attr("x", startX).attr( + "y", + getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding + ).attr("width", width).attr("height", getConfig().state.textHeight * 3).attr("rx", getConfig().state.radius); + g.insert("rect", ":first-child").attr("x", startX).attr( + "y", + getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding + ).attr("width", width).attr("height", graphBox.height + 3 + 2 * getConfig().state.textHeight).attr("rx", getConfig().state.radius); + return g; +}; +const drawEndState = (g) => { + g.append("circle").attr("class", "end-state-outer").attr("r", getConfig().state.sizeUnit + getConfig().state.miniPadding).attr( + "cx", + getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding + ).attr( + "cy", + getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding + ); + return g.append("circle").attr("class", "end-state-inner").attr("r", getConfig().state.sizeUnit).attr("cx", getConfig().state.padding + getConfig().state.sizeUnit + 2).attr("cy", getConfig().state.padding + getConfig().state.sizeUnit + 2); +}; +const drawForkJoinState = (g, stateDef) => { + let width = getConfig().state.forkWidth; + let height = getConfig().state.forkHeight; + if (stateDef.parentId) { + let tmp = width; + width = height; + height = tmp; + } + return g.append("rect").style("stroke", "black").style("fill", "black").attr("width", width).attr("height", height).attr("x", getConfig().state.padding).attr("y", getConfig().state.padding); +}; +const _drawLongText = (_text, x, y, g) => { + let textHeight = 0; + const textElem = g.append("text"); + textElem.style("text-anchor", "start"); + textElem.attr("class", "noteText"); + let text = _text.replace(/\r\n/g, "
"); + text = text.replace(/\n/g, "
"); + const lines = text.split(common.lineBreakRegex); + let tHeight = 1.25 * getConfig().state.noteMargin; + for (const line2 of lines) { + const txt = line2.trim(); + if (txt.length > 0) { + const span = textElem.append("tspan"); + span.text(txt); + if (tHeight === 0) { + const textBounds = span.node().getBBox(); + tHeight += textBounds.height; + } + textHeight += tHeight; + span.attr("x", x + getConfig().state.noteMargin); + span.attr("y", y + textHeight + 1.25 * getConfig().state.noteMargin); + } + } + return { textWidth: textElem.node().getBBox().width, textHeight }; +}; +const drawNote = (text, g) => { + g.attr("class", "state-note"); + const note = g.append("rect").attr("x", 0).attr("y", getConfig().state.padding); + const rectElem = g.append("g"); + const { textWidth, textHeight } = _drawLongText(text, 0, 0, rectElem); + note.attr("height", textHeight + 2 * getConfig().state.noteMargin); + note.attr("width", textWidth + getConfig().state.noteMargin * 2); + return note; +}; +const drawState = function(elem, stateDef) { + const id = stateDef.id; + const stateInfo = { + id, + label: stateDef.id, + width: 0, + height: 0 + }; + const g = elem.append("g").attr("id", id).attr("class", "stateGroup"); + if (stateDef.type === "start") { + drawStartState(g); + } + if (stateDef.type === "end") { + drawEndState(g); + } + if (stateDef.type === "fork" || stateDef.type === "join") { + drawForkJoinState(g, stateDef); + } + if (stateDef.type === "note") { + drawNote(stateDef.note.text, g); + } + if (stateDef.type === "divider") { + drawDivider(g); + } + if (stateDef.type === "default" && stateDef.descriptions.length === 0) { + drawSimpleState(g, stateDef); + } + if (stateDef.type === "default" && stateDef.descriptions.length > 0) { + drawDescrState(g, stateDef); + } + const stateBox = g.node().getBBox(); + stateInfo.width = stateBox.width + 2 * getConfig().state.padding; + stateInfo.height = stateBox.height + 2 * getConfig().state.padding; + idCache$1.set(id, stateInfo); + return stateInfo; +}; +let edgeCount = 0; +const drawEdge = function(elem, path, relation) { + const getRelationType = function(type) { + switch (type) { + case db.relationType.AGGREGATION: + return "aggregation"; + case db.relationType.EXTENSION: + return "extension"; + case db.relationType.COMPOSITION: + return "composition"; + case db.relationType.DEPENDENCY: + return "dependency"; + } + }; + path.points = path.points.filter((p) => !Number.isNaN(p.y)); + const lineData = path.points; + const lineFunction = line().x(function(d) { + return d.x; + }).y(function(d) { + return d.y; + }).curve(curveBasis); + const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "transition"); + let url = ""; + if (getConfig().state.arrowMarkerAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); + } + svgPath.attr( + "marker-end", + "url(" + url + "#" + getRelationType(db.relationType.DEPENDENCY) + "End)" + ); + if (relation.title !== void 0) { + const label = elem.append("g").attr("class", "stateLabel"); + const { x, y } = utils.calcLabelPosition(path.points); + const rows = common.getRows(relation.title); + let titleHeight = 0; + const titleRows = []; + let maxWidth = 0; + let minX = 0; + for (let i = 0; i <= rows.length; i++) { + const title = label.append("text").attr("text-anchor", "middle").text(rows[i]).attr("x", x).attr("y", y + titleHeight); + const boundsTmp = title.node().getBBox(); + maxWidth = Math.max(maxWidth, boundsTmp.width); + minX = Math.min(minX, boundsTmp.x); + log.info(boundsTmp.x, x, y + titleHeight); + if (titleHeight === 0) { + const titleBox = title.node().getBBox(); + titleHeight = titleBox.height; + log.info("Title height", titleHeight, y); + } + titleRows.push(title); + } + let boxHeight = titleHeight * rows.length; + if (rows.length > 1) { + const heightAdj = (rows.length - 1) * titleHeight * 0.5; + titleRows.forEach((title, i) => title.attr("y", y + i * titleHeight - heightAdj)); + boxHeight = titleHeight * rows.length; + } + const bounds = label.node().getBBox(); + label.insert("rect", ":first-child").attr("class", "box").attr("x", x - maxWidth / 2 - getConfig().state.padding / 2).attr("y", y - boxHeight / 2 - getConfig().state.padding / 2 - 3.5).attr("width", maxWidth + getConfig().state.padding).attr("height", boxHeight + getConfig().state.padding); + log.info(bounds); + } + edgeCount++; +}; +let conf; +const transformationLog = {}; +const setConf = function() { +}; +const insertMarkers = function(elem) { + elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z"); +}; +const draw = function(text, id, _version, diagObj) { + conf = getConfig().state; + const securityLevel = getConfig().securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + log.debug("Rendering diagram " + text); + const diagram2 = root.select(`[id='${id}']`); + insertMarkers(diagram2); + const rootDoc = diagObj.db.getRootDoc(); + renderDoc(rootDoc, diagram2, void 0, false, root, doc, diagObj); + const padding = conf.padding; + const bounds = diagram2.node().getBBox(); + const width = bounds.width + padding * 2; + const height = bounds.height + padding * 2; + const svgWidth = width * 1.75; + configureSvgSize(diagram2, height, svgWidth, conf.useMaxWidth); + diagram2.attr( + "viewBox", + `${bounds.x - conf.padding} ${bounds.y - conf.padding} ` + width + " " + height + ); +}; +const getLabelWidth = (text) => { + return text ? text.length * conf.fontSizeFactor : 1; +}; +const renderDoc = (doc, diagram2, parentId, altBkg, root, domDocument, diagObj) => { + const graph = new graphlib.Graph({ + compound: true, + multigraph: true + }); + let i; + let edgeFreeDoc = true; + for (i = 0; i < doc.length; i++) { + if (doc[i].stmt === "relation") { + edgeFreeDoc = false; + break; + } + } + if (parentId) { + graph.setGraph({ + rankdir: "LR", + multigraph: true, + compound: true, + // acyclicer: 'greedy', + ranker: "tight-tree", + ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor, + nodeSep: edgeFreeDoc ? 1 : 50, + isMultiGraph: true + // ranksep: 5, + // nodesep: 1 + }); + } else { + graph.setGraph({ + rankdir: "TB", + multigraph: true, + compound: true, + // isCompound: true, + // acyclicer: 'greedy', + // ranker: 'longest-path' + ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor, + nodeSep: edgeFreeDoc ? 1 : 50, + ranker: "tight-tree", + // ranker: 'network-simplex' + isMultiGraph: true + }); + } + graph.setDefaultEdgeLabel(function() { + return {}; + }); + diagObj.db.extract(doc); + const states = diagObj.db.getStates(); + const relations = diagObj.db.getRelations(); + const keys2 = Object.keys(states); + for (const key of keys2) { + const stateDef = states[key]; + if (parentId) { + stateDef.parentId = parentId; + } + let node; + if (stateDef.doc) { + let sub = diagram2.append("g").attr("id", stateDef.id).attr("class", "stateGroup"); + node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root, domDocument, diagObj); + { + sub = addTitleAndBox(sub, stateDef, altBkg); + let boxBounds = sub.node().getBBox(); + node.width = boxBounds.width; + node.height = boxBounds.height + conf.padding / 2; + transformationLog[stateDef.id] = { y: conf.compositTitleSize }; + } + } else { + node = drawState(diagram2, stateDef); + } + if (stateDef.note) { + const noteDef = { + descriptions: [], + id: stateDef.id + "-note", + note: stateDef.note, + type: "note" + }; + const note = drawState(diagram2, noteDef); + if (stateDef.note.position === "left of") { + graph.setNode(node.id + "-note", note); + graph.setNode(node.id, node); + } else { + graph.setNode(node.id, node); + graph.setNode(node.id + "-note", note); + } + graph.setParent(node.id, node.id + "-group"); + graph.setParent(node.id + "-note", node.id + "-group"); + } else { + graph.setNode(node.id, node); + } + } + log.debug("Count=", graph.nodeCount(), graph); + let cnt = 0; + relations.forEach(function(relation) { + cnt++; + log.debug("Setting edge", relation); + graph.setEdge( + relation.id1, + relation.id2, + { + relation, + width: getLabelWidth(relation.title), + height: conf.labelHeight * common.getRows(relation.title).length, + labelpos: "c" + }, + "id" + cnt + ); + }); + layout(graph); + log.debug("Graph after layout", graph.nodes()); + const svgElem = diagram2.node(); + graph.nodes().forEach(function(v) { + if (v !== void 0 && graph.node(v) !== void 0) { + log.warn("Node " + v + ": " + JSON.stringify(graph.node(v))); + root.select("#" + svgElem.id + " #" + v).attr( + "transform", + "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + " )" + ); + root.select("#" + svgElem.id + " #" + v).attr("data-x-shift", graph.node(v).x - graph.node(v).width / 2); + const dividers = domDocument.querySelectorAll("#" + svgElem.id + " #" + v + " .divider"); + dividers.forEach((divider) => { + const parent = divider.parentElement; + let pWidth = 0; + let pShift = 0; + if (parent) { + if (parent.parentElement) { + pWidth = parent.parentElement.getBBox().width; + } + pShift = parseInt(parent.getAttribute("data-x-shift"), 10); + if (Number.isNaN(pShift)) { + pShift = 0; + } + } + divider.setAttribute("x1", 0 - pShift + 8); + divider.setAttribute("x2", pWidth - pShift - 8); + }); + } else { + log.debug("No Node " + v + ": " + JSON.stringify(graph.node(v))); + } + }); + let stateBox = svgElem.getBBox(); + graph.edges().forEach(function(e) { + if (e !== void 0 && graph.edge(e) !== void 0) { + log.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e))); + drawEdge(diagram2, graph.edge(e), graph.edge(e).relation); + } + }); + stateBox = svgElem.getBBox(); + const stateInfo = { + id: parentId ? parentId : "root", + label: parentId ? parentId : "root", + width: 0, + height: 0 + }; + stateInfo.width = stateBox.width + 2 * conf.padding; + stateInfo.height = stateBox.height + 2 * conf.padding; + log.debug("Doc rendered", stateInfo, graph); + return stateInfo; +}; +const renderer = { + setConf, + draw +}; +const diagram = { + parser, + db, + renderer, + styles, + init: (cnf) => { + if (!cnf.state) { + cnf.state = {}; + } + cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; + db.clear(); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/stateDiagram-5ec31577.js b/assets/lib/mermaid/stateDiagram-5ec31577.js new file mode 100644 index 000000000..b0979b3f2 --- /dev/null +++ b/assets/lib/mermaid/stateDiagram-5ec31577.js @@ -0,0 +1,467 @@ +import { d as db, p as parser, s as styles } from "./styles-f80da881.js"; +import { c as getConfig, F as curveBasis, A as utils, f as common, l as log, j as d3select, k as configureSvgSize } from "./mermaid-dcacb631.js"; +import { G as Graph } from "./graph-fe24fab6.js"; +import { l as layout } from "./layout-163b9689.js"; +import { l as line } from "./line-87f517ef.js"; +import "./array-b7dcf730.js"; +import "./path-39bad7e2.js"; +const idCache = {}; +const set = (key, val) => { + idCache[key] = val; +}; +const get = (k) => idCache[k]; +const keys = () => Object.keys(idCache); +const size = () => keys().length; +const idCache$1 = { + get, + set, + keys, + size +}; +const drawStartState = (g) => g.append("circle").attr("class", "start-state").attr("r", getConfig().state.sizeUnit).attr("cx", getConfig().state.padding + getConfig().state.sizeUnit).attr("cy", getConfig().state.padding + getConfig().state.sizeUnit); +const drawDivider = (g) => g.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", getConfig().state.textHeight).attr("class", "divider").attr("x2", getConfig().state.textHeight * 2).attr("y1", 0).attr("y2", 0); +const drawSimpleState = (g, stateDef) => { + const state = g.append("text").attr("x", 2 * getConfig().state.padding).attr("y", getConfig().state.textHeight + 2 * getConfig().state.padding).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.id); + const classBox = state.node().getBBox(); + g.insert("rect", ":first-child").attr("x", getConfig().state.padding).attr("y", getConfig().state.padding).attr("width", classBox.width + 2 * getConfig().state.padding).attr("height", classBox.height + 2 * getConfig().state.padding).attr("rx", getConfig().state.radius); + return state; +}; +const drawDescrState = (g, stateDef) => { + const addTspan = function(textEl, txt, isFirst2) { + const tSpan = textEl.append("tspan").attr("x", 2 * getConfig().state.padding).text(txt); + if (!isFirst2) { + tSpan.attr("dy", getConfig().state.textHeight); + } + }; + const title = g.append("text").attr("x", 2 * getConfig().state.padding).attr("y", getConfig().state.textHeight + 1.3 * getConfig().state.padding).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.descriptions[0]); + const titleBox = title.node().getBBox(); + const titleHeight = titleBox.height; + const description = g.append("text").attr("x", getConfig().state.padding).attr( + "y", + titleHeight + getConfig().state.padding * 0.4 + getConfig().state.dividerMargin + getConfig().state.textHeight + ).attr("class", "state-description"); + let isFirst = true; + let isSecond = true; + stateDef.descriptions.forEach(function(descr) { + if (!isFirst) { + addTspan(description, descr, isSecond); + isSecond = false; + } + isFirst = false; + }); + const descrLine = g.append("line").attr("x1", getConfig().state.padding).attr("y1", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr("y2", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr("class", "descr-divider"); + const descrBox = description.node().getBBox(); + const width = Math.max(descrBox.width, titleBox.width); + descrLine.attr("x2", width + 3 * getConfig().state.padding); + g.insert("rect", ":first-child").attr("x", getConfig().state.padding).attr("y", getConfig().state.padding).attr("width", width + 2 * getConfig().state.padding).attr("height", descrBox.height + titleHeight + 2 * getConfig().state.padding).attr("rx", getConfig().state.radius); + return g; +}; +const addTitleAndBox = (g, stateDef, altBkg) => { + const pad = getConfig().state.padding; + const dblPad = 2 * getConfig().state.padding; + const orgBox = g.node().getBBox(); + const orgWidth = orgBox.width; + const orgX = orgBox.x; + const title = g.append("text").attr("x", 0).attr("y", getConfig().state.titleShift).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.id); + const titleBox = title.node().getBBox(); + const titleWidth = titleBox.width + dblPad; + let width = Math.max(titleWidth, orgWidth); + if (width === orgWidth) { + width = width + dblPad; + } + let startX; + const graphBox = g.node().getBBox(); + if (stateDef.doc) + ; + startX = orgX - pad; + if (titleWidth > orgWidth) { + startX = (orgWidth - width) / 2 + pad; + } + if (Math.abs(orgX - graphBox.x) < pad && titleWidth > orgWidth) { + startX = orgX - (titleWidth - orgWidth) / 2; + } + const lineY = 1 - getConfig().state.textHeight; + g.insert("rect", ":first-child").attr("x", startX).attr("y", lineY).attr("class", altBkg ? "alt-composit" : "composit").attr("width", width).attr( + "height", + graphBox.height + getConfig().state.textHeight + getConfig().state.titleShift + 1 + ).attr("rx", "0"); + title.attr("x", startX + pad); + if (titleWidth <= orgWidth) { + title.attr("x", orgX + (width - dblPad) / 2 - titleWidth / 2 + pad); + } + g.insert("rect", ":first-child").attr("x", startX).attr( + "y", + getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding + ).attr("width", width).attr("height", getConfig().state.textHeight * 3).attr("rx", getConfig().state.radius); + g.insert("rect", ":first-child").attr("x", startX).attr( + "y", + getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding + ).attr("width", width).attr("height", graphBox.height + 3 + 2 * getConfig().state.textHeight).attr("rx", getConfig().state.radius); + return g; +}; +const drawEndState = (g) => { + g.append("circle").attr("class", "end-state-outer").attr("r", getConfig().state.sizeUnit + getConfig().state.miniPadding).attr( + "cx", + getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding + ).attr( + "cy", + getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding + ); + return g.append("circle").attr("class", "end-state-inner").attr("r", getConfig().state.sizeUnit).attr("cx", getConfig().state.padding + getConfig().state.sizeUnit + 2).attr("cy", getConfig().state.padding + getConfig().state.sizeUnit + 2); +}; +const drawForkJoinState = (g, stateDef) => { + let width = getConfig().state.forkWidth; + let height = getConfig().state.forkHeight; + if (stateDef.parentId) { + let tmp = width; + width = height; + height = tmp; + } + return g.append("rect").style("stroke", "black").style("fill", "black").attr("width", width).attr("height", height).attr("x", getConfig().state.padding).attr("y", getConfig().state.padding); +}; +const _drawLongText = (_text, x, y, g) => { + let textHeight = 0; + const textElem = g.append("text"); + textElem.style("text-anchor", "start"); + textElem.attr("class", "noteText"); + let text = _text.replace(/\r\n/g, "
"); + text = text.replace(/\n/g, "
"); + const lines = text.split(common.lineBreakRegex); + let tHeight = 1.25 * getConfig().state.noteMargin; + for (const line2 of lines) { + const txt = line2.trim(); + if (txt.length > 0) { + const span = textElem.append("tspan"); + span.text(txt); + if (tHeight === 0) { + const textBounds = span.node().getBBox(); + tHeight += textBounds.height; + } + textHeight += tHeight; + span.attr("x", x + getConfig().state.noteMargin); + span.attr("y", y + textHeight + 1.25 * getConfig().state.noteMargin); + } + } + return { textWidth: textElem.node().getBBox().width, textHeight }; +}; +const drawNote = (text, g) => { + g.attr("class", "state-note"); + const note = g.append("rect").attr("x", 0).attr("y", getConfig().state.padding); + const rectElem = g.append("g"); + const { textWidth, textHeight } = _drawLongText(text, 0, 0, rectElem); + note.attr("height", textHeight + 2 * getConfig().state.noteMargin); + note.attr("width", textWidth + getConfig().state.noteMargin * 2); + return note; +}; +const drawState = function(elem, stateDef) { + const id = stateDef.id; + const stateInfo = { + id, + label: stateDef.id, + width: 0, + height: 0 + }; + const g = elem.append("g").attr("id", id).attr("class", "stateGroup"); + if (stateDef.type === "start") { + drawStartState(g); + } + if (stateDef.type === "end") { + drawEndState(g); + } + if (stateDef.type === "fork" || stateDef.type === "join") { + drawForkJoinState(g, stateDef); + } + if (stateDef.type === "note") { + drawNote(stateDef.note.text, g); + } + if (stateDef.type === "divider") { + drawDivider(g); + } + if (stateDef.type === "default" && stateDef.descriptions.length === 0) { + drawSimpleState(g, stateDef); + } + if (stateDef.type === "default" && stateDef.descriptions.length > 0) { + drawDescrState(g, stateDef); + } + const stateBox = g.node().getBBox(); + stateInfo.width = stateBox.width + 2 * getConfig().state.padding; + stateInfo.height = stateBox.height + 2 * getConfig().state.padding; + idCache$1.set(id, stateInfo); + return stateInfo; +}; +let edgeCount = 0; +const drawEdge = function(elem, path, relation) { + const getRelationType = function(type) { + switch (type) { + case db.relationType.AGGREGATION: + return "aggregation"; + case db.relationType.EXTENSION: + return "extension"; + case db.relationType.COMPOSITION: + return "composition"; + case db.relationType.DEPENDENCY: + return "dependency"; + } + }; + path.points = path.points.filter((p) => !Number.isNaN(p.y)); + const lineData = path.points; + const lineFunction = line().x(function(d) { + return d.x; + }).y(function(d) { + return d.y; + }).curve(curveBasis); + const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "transition"); + let url = ""; + if (getConfig().state.arrowMarkerAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); + } + svgPath.attr( + "marker-end", + "url(" + url + "#" + getRelationType(db.relationType.DEPENDENCY) + "End)" + ); + if (relation.title !== void 0) { + const label = elem.append("g").attr("class", "stateLabel"); + const { x, y } = utils.calcLabelPosition(path.points); + const rows = common.getRows(relation.title); + let titleHeight = 0; + const titleRows = []; + let maxWidth = 0; + let minX = 0; + for (let i = 0; i <= rows.length; i++) { + const title = label.append("text").attr("text-anchor", "middle").text(rows[i]).attr("x", x).attr("y", y + titleHeight); + const boundsTmp = title.node().getBBox(); + maxWidth = Math.max(maxWidth, boundsTmp.width); + minX = Math.min(minX, boundsTmp.x); + log.info(boundsTmp.x, x, y + titleHeight); + if (titleHeight === 0) { + const titleBox = title.node().getBBox(); + titleHeight = titleBox.height; + log.info("Title height", titleHeight, y); + } + titleRows.push(title); + } + let boxHeight = titleHeight * rows.length; + if (rows.length > 1) { + const heightAdj = (rows.length - 1) * titleHeight * 0.5; + titleRows.forEach((title, i) => title.attr("y", y + i * titleHeight - heightAdj)); + boxHeight = titleHeight * rows.length; + } + const bounds = label.node().getBBox(); + label.insert("rect", ":first-child").attr("class", "box").attr("x", x - maxWidth / 2 - getConfig().state.padding / 2).attr("y", y - boxHeight / 2 - getConfig().state.padding / 2 - 3.5).attr("width", maxWidth + getConfig().state.padding).attr("height", boxHeight + getConfig().state.padding); + log.info(bounds); + } + edgeCount++; +}; +let conf; +const transformationLog = {}; +const setConf = function() { +}; +const insertMarkers = function(elem) { + elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z"); +}; +const draw = function(text, id, _version, diagObj) { + conf = getConfig().state; + const securityLevel = getConfig().securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + log.debug("Rendering diagram " + text); + const diagram2 = root.select(`[id='${id}']`); + insertMarkers(diagram2); + const rootDoc = diagObj.db.getRootDoc(); + renderDoc(rootDoc, diagram2, void 0, false, root, doc, diagObj); + const padding = conf.padding; + const bounds = diagram2.node().getBBox(); + const width = bounds.width + padding * 2; + const height = bounds.height + padding * 2; + const svgWidth = width * 1.75; + configureSvgSize(diagram2, height, svgWidth, conf.useMaxWidth); + diagram2.attr( + "viewBox", + `${bounds.x - conf.padding} ${bounds.y - conf.padding} ` + width + " " + height + ); +}; +const getLabelWidth = (text) => { + return text ? text.length * conf.fontSizeFactor : 1; +}; +const renderDoc = (doc, diagram2, parentId, altBkg, root, domDocument, diagObj) => { + const graph = new Graph({ + compound: true, + multigraph: true + }); + let i; + let edgeFreeDoc = true; + for (i = 0; i < doc.length; i++) { + if (doc[i].stmt === "relation") { + edgeFreeDoc = false; + break; + } + } + if (parentId) { + graph.setGraph({ + rankdir: "LR", + multigraph: true, + compound: true, + // acyclicer: 'greedy', + ranker: "tight-tree", + ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor, + nodeSep: edgeFreeDoc ? 1 : 50, + isMultiGraph: true + // ranksep: 5, + // nodesep: 1 + }); + } else { + graph.setGraph({ + rankdir: "TB", + multigraph: true, + compound: true, + // isCompound: true, + // acyclicer: 'greedy', + // ranker: 'longest-path' + ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor, + nodeSep: edgeFreeDoc ? 1 : 50, + ranker: "tight-tree", + // ranker: 'network-simplex' + isMultiGraph: true + }); + } + graph.setDefaultEdgeLabel(function() { + return {}; + }); + diagObj.db.extract(doc); + const states = diagObj.db.getStates(); + const relations = diagObj.db.getRelations(); + const keys2 = Object.keys(states); + for (const key of keys2) { + const stateDef = states[key]; + if (parentId) { + stateDef.parentId = parentId; + } + let node; + if (stateDef.doc) { + let sub = diagram2.append("g").attr("id", stateDef.id).attr("class", "stateGroup"); + node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root, domDocument, diagObj); + { + sub = addTitleAndBox(sub, stateDef, altBkg); + let boxBounds = sub.node().getBBox(); + node.width = boxBounds.width; + node.height = boxBounds.height + conf.padding / 2; + transformationLog[stateDef.id] = { y: conf.compositTitleSize }; + } + } else { + node = drawState(diagram2, stateDef); + } + if (stateDef.note) { + const noteDef = { + descriptions: [], + id: stateDef.id + "-note", + note: stateDef.note, + type: "note" + }; + const note = drawState(diagram2, noteDef); + if (stateDef.note.position === "left of") { + graph.setNode(node.id + "-note", note); + graph.setNode(node.id, node); + } else { + graph.setNode(node.id, node); + graph.setNode(node.id + "-note", note); + } + graph.setParent(node.id, node.id + "-group"); + graph.setParent(node.id + "-note", node.id + "-group"); + } else { + graph.setNode(node.id, node); + } + } + log.debug("Count=", graph.nodeCount(), graph); + let cnt = 0; + relations.forEach(function(relation) { + cnt++; + log.debug("Setting edge", relation); + graph.setEdge( + relation.id1, + relation.id2, + { + relation, + width: getLabelWidth(relation.title), + height: conf.labelHeight * common.getRows(relation.title).length, + labelpos: "c" + }, + "id" + cnt + ); + }); + layout(graph); + log.debug("Graph after layout", graph.nodes()); + const svgElem = diagram2.node(); + graph.nodes().forEach(function(v) { + if (v !== void 0 && graph.node(v) !== void 0) { + log.warn("Node " + v + ": " + JSON.stringify(graph.node(v))); + root.select("#" + svgElem.id + " #" + v).attr( + "transform", + "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + " )" + ); + root.select("#" + svgElem.id + " #" + v).attr("data-x-shift", graph.node(v).x - graph.node(v).width / 2); + const dividers = domDocument.querySelectorAll("#" + svgElem.id + " #" + v + " .divider"); + dividers.forEach((divider) => { + const parent = divider.parentElement; + let pWidth = 0; + let pShift = 0; + if (parent) { + if (parent.parentElement) { + pWidth = parent.parentElement.getBBox().width; + } + pShift = parseInt(parent.getAttribute("data-x-shift"), 10); + if (Number.isNaN(pShift)) { + pShift = 0; + } + } + divider.setAttribute("x1", 0 - pShift + 8); + divider.setAttribute("x2", pWidth - pShift - 8); + }); + } else { + log.debug("No Node " + v + ": " + JSON.stringify(graph.node(v))); + } + }); + let stateBox = svgElem.getBBox(); + graph.edges().forEach(function(e) { + if (e !== void 0 && graph.edge(e) !== void 0) { + log.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e))); + drawEdge(diagram2, graph.edge(e), graph.edge(e).relation); + } + }); + stateBox = svgElem.getBBox(); + const stateInfo = { + id: parentId ? parentId : "root", + label: parentId ? parentId : "root", + width: 0, + height: 0 + }; + stateInfo.width = stateBox.width + 2 * conf.padding; + stateInfo.height = stateBox.height + 2 * conf.padding; + log.debug("Doc rendered", stateInfo, graph); + return stateInfo; +}; +const renderer = { + setConf, + draw +}; +const diagram = { + parser, + db, + renderer, + styles, + init: (cnf) => { + if (!cnf.state) { + cnf.state = {}; + } + cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; + db.clear(); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/stateDiagram-fca82b5b.js b/assets/lib/mermaid/stateDiagram-fca82b5b.js new file mode 100644 index 000000000..49516d512 --- /dev/null +++ b/assets/lib/mermaid/stateDiagram-fca82b5b.js @@ -0,0 +1,275 @@ +import { d as N, p as C, s as R } from "./styles-cacbff60.js"; +import { c as t, F as U, A as F, f as T, l as b, j as H, k as O } from "./mermaid-9f2aa176.js"; +import { G as X } from "./graph-0ee63739.js"; +import { l as J } from "./layout-fd473db2.js"; +import { l as Y } from "./line-24d93f1b.js"; +import "./array-2ff2c7a6.js"; +import "./path-428ebac9.js"; +const L = {}, $ = (e, i) => { + L[e] = i; +}, v = (e) => L[e], P = () => Object.keys(L), I = () => P().length, _ = { + get: v, + set: $, + keys: P, + size: I +}, j = (e) => e.append("circle").attr("class", "start-state").attr("r", t().state.sizeUnit).attr("cx", t().state.padding + t().state.sizeUnit).attr("cy", t().state.padding + t().state.sizeUnit), q = (e) => e.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", t().state.textHeight).attr("class", "divider").attr("x2", t().state.textHeight * 2).attr("y1", 0).attr("y2", 0), Z = (e, i) => { + const o = e.append("text").attr("x", 2 * t().state.padding).attr("y", t().state.textHeight + 2 * t().state.padding).attr("font-size", t().state.fontSize).attr("class", "state-title").text(i.id), d = o.node().getBBox(); + return e.insert("rect", ":first-child").attr("x", t().state.padding).attr("y", t().state.padding).attr("width", d.width + 2 * t().state.padding).attr("height", d.height + 2 * t().state.padding).attr("rx", t().state.radius), o; +}, K = (e, i) => { + const o = function(l, m, w) { + const k = l.append("tspan").attr("x", 2 * t().state.padding).text(m); + w || k.attr("dy", t().state.textHeight); + }, s = e.append("text").attr("x", 2 * t().state.padding).attr("y", t().state.textHeight + 1.3 * t().state.padding).attr("font-size", t().state.fontSize).attr("class", "state-title").text(i.descriptions[0]).node().getBBox(), g = s.height, p = e.append("text").attr("x", t().state.padding).attr( + "y", + g + t().state.padding * 0.4 + t().state.dividerMargin + t().state.textHeight + ).attr("class", "state-description"); + let a = !0, r = !0; + i.descriptions.forEach(function(l) { + a || (o(p, l, r), r = !1), a = !1; + }); + const y = e.append("line").attr("x1", t().state.padding).attr("y1", t().state.padding + g + t().state.dividerMargin / 2).attr("y2", t().state.padding + g + t().state.dividerMargin / 2).attr("class", "descr-divider"), x = p.node().getBBox(), c = Math.max(x.width, s.width); + return y.attr("x2", c + 3 * t().state.padding), e.insert("rect", ":first-child").attr("x", t().state.padding).attr("y", t().state.padding).attr("width", c + 2 * t().state.padding).attr("height", x.height + g + 2 * t().state.padding).attr("rx", t().state.radius), e; +}, Q = (e, i, o) => { + const d = t().state.padding, s = 2 * t().state.padding, g = e.node().getBBox(), p = g.width, a = g.x, r = e.append("text").attr("x", 0).attr("y", t().state.titleShift).attr("font-size", t().state.fontSize).attr("class", "state-title").text(i.id), x = r.node().getBBox().width + s; + let c = Math.max(x, p); + c === p && (c = c + s); + let l; + const m = e.node().getBBox(); + i.doc, l = a - d, x > p && (l = (p - c) / 2 + d), Math.abs(a - m.x) < d && x > p && (l = a - (x - p) / 2); + const w = 1 - t().state.textHeight; + return e.insert("rect", ":first-child").attr("x", l).attr("y", w).attr("class", o ? "alt-composit" : "composit").attr("width", c).attr( + "height", + m.height + t().state.textHeight + t().state.titleShift + 1 + ).attr("rx", "0"), r.attr("x", l + d), x <= p && r.attr("x", a + (c - s) / 2 - x / 2 + d), e.insert("rect", ":first-child").attr("x", l).attr( + "y", + t().state.titleShift - t().state.textHeight - t().state.padding + ).attr("width", c).attr("height", t().state.textHeight * 3).attr("rx", t().state.radius), e.insert("rect", ":first-child").attr("x", l).attr( + "y", + t().state.titleShift - t().state.textHeight - t().state.padding + ).attr("width", c).attr("height", m.height + 3 + 2 * t().state.textHeight).attr("rx", t().state.radius), e; +}, V = (e) => (e.append("circle").attr("class", "end-state-outer").attr("r", t().state.sizeUnit + t().state.miniPadding).attr( + "cx", + t().state.padding + t().state.sizeUnit + t().state.miniPadding +).attr( + "cy", + t().state.padding + t().state.sizeUnit + t().state.miniPadding +), e.append("circle").attr("class", "end-state-inner").attr("r", t().state.sizeUnit).attr("cx", t().state.padding + t().state.sizeUnit + 2).attr("cy", t().state.padding + t().state.sizeUnit + 2)), D = (e, i) => { + let o = t().state.forkWidth, d = t().state.forkHeight; + if (i.parentId) { + let s = o; + o = d, d = s; + } + return e.append("rect").style("stroke", "black").style("fill", "black").attr("width", o).attr("height", d).attr("x", t().state.padding).attr("y", t().state.padding); +}, tt = (e, i, o, d) => { + let s = 0; + const g = d.append("text"); + g.style("text-anchor", "start"), g.attr("class", "noteText"); + let p = e.replace(/\r\n/g, "
"); + p = p.replace(/\n/g, "
"); + const a = p.split(T.lineBreakRegex); + let r = 1.25 * t().state.noteMargin; + for (const y of a) { + const x = y.trim(); + if (x.length > 0) { + const c = g.append("tspan"); + if (c.text(x), r === 0) { + const l = c.node().getBBox(); + r += l.height; + } + s += r, c.attr("x", i + t().state.noteMargin), c.attr("y", o + s + 1.25 * t().state.noteMargin); + } + } + return { textWidth: g.node().getBBox().width, textHeight: s }; +}, et = (e, i) => { + i.attr("class", "state-note"); + const o = i.append("rect").attr("x", 0).attr("y", t().state.padding), d = i.append("g"), { textWidth: s, textHeight: g } = tt(e, 0, 0, d); + return o.attr("height", g + 2 * t().state.noteMargin), o.attr("width", s + t().state.noteMargin * 2), o; +}, A = function(e, i) { + const o = i.id, d = { + id: o, + label: i.id, + width: 0, + height: 0 + }, s = e.append("g").attr("id", o).attr("class", "stateGroup"); + i.type === "start" && j(s), i.type === "end" && V(s), (i.type === "fork" || i.type === "join") && D(s, i), i.type === "note" && et(i.note.text, s), i.type === "divider" && q(s), i.type === "default" && i.descriptions.length === 0 && Z(s, i), i.type === "default" && i.descriptions.length > 0 && K(s, i); + const g = s.node().getBBox(); + return d.width = g.width + 2 * t().state.padding, d.height = g.height + 2 * t().state.padding, _.set(o, d), d; +}; +let G = 0; +const at = function(e, i, o) { + const d = function(r) { + switch (r) { + case N.relationType.AGGREGATION: + return "aggregation"; + case N.relationType.EXTENSION: + return "extension"; + case N.relationType.COMPOSITION: + return "composition"; + case N.relationType.DEPENDENCY: + return "dependency"; + } + }; + i.points = i.points.filter((r) => !Number.isNaN(r.y)); + const s = i.points, g = Y().x(function(r) { + return r.x; + }).y(function(r) { + return r.y; + }).curve(U), p = e.append("path").attr("d", g(s)).attr("id", "edge" + G).attr("class", "transition"); + let a = ""; + if (t().state.arrowMarkerAbsolute && (a = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search, a = a.replace(/\(/g, "\\("), a = a.replace(/\)/g, "\\)")), p.attr( + "marker-end", + "url(" + a + "#" + d(N.relationType.DEPENDENCY) + "End)" + ), o.title !== void 0) { + const r = e.append("g").attr("class", "stateLabel"), { x: y, y: x } = F.calcLabelPosition(i.points), c = T.getRows(o.title); + let l = 0; + const m = []; + let w = 0, k = 0; + for (let u = 0; u <= c.length; u++) { + const h = r.append("text").attr("text-anchor", "middle").text(c[u]).attr("x", y).attr("y", x + l), f = h.node().getBBox(); + w = Math.max(w, f.width), k = Math.min(k, f.x), b.info(f.x, y, x + l), l === 0 && (l = h.node().getBBox().height, b.info("Title height", l, x)), m.push(h); + } + let E = l * c.length; + if (c.length > 1) { + const u = (c.length - 1) * l * 0.5; + m.forEach((h, f) => h.attr("y", x + f * l - u)), E = l * c.length; + } + const n = r.node().getBBox(); + r.insert("rect", ":first-child").attr("class", "box").attr("x", y - w / 2 - t().state.padding / 2).attr("y", x - E / 2 - t().state.padding / 2 - 3.5).attr("width", w + t().state.padding).attr("height", E + t().state.padding), b.info(n); + } + G++; +}; +let B; +const z = {}, it = function() { +}, nt = function(e) { + e.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z"); +}, st = function(e, i, o, d) { + B = t().state; + const s = t().securityLevel; + let g; + s === "sandbox" && (g = H("#i" + i)); + const p = s === "sandbox" ? H(g.nodes()[0].contentDocument.body) : H("body"), a = s === "sandbox" ? g.nodes()[0].contentDocument : document; + b.debug("Rendering diagram " + e); + const r = p.select(`[id='${i}']`); + nt(r); + const y = d.db.getRootDoc(); + W(y, r, void 0, !1, p, a, d); + const x = B.padding, c = r.node().getBBox(), l = c.width + x * 2, m = c.height + x * 2, w = l * 1.75; + O(r, m, w, B.useMaxWidth), r.attr( + "viewBox", + `${c.x - B.padding} ${c.y - B.padding} ` + l + " " + m + ); +}, rt = (e) => e ? e.length * B.fontSizeFactor : 1, W = (e, i, o, d, s, g, p) => { + const a = new X({ + compound: !0, + multigraph: !0 + }); + let r, y = !0; + for (r = 0; r < e.length; r++) + if (e[r].stmt === "relation") { + y = !1; + break; + } + o ? a.setGraph({ + rankdir: "LR", + multigraph: !0, + compound: !0, + // acyclicer: 'greedy', + ranker: "tight-tree", + ranksep: y ? 1 : B.edgeLengthFactor, + nodeSep: y ? 1 : 50, + isMultiGraph: !0 + // ranksep: 5, + // nodesep: 1 + }) : a.setGraph({ + rankdir: "TB", + multigraph: !0, + compound: !0, + // isCompound: true, + // acyclicer: 'greedy', + // ranker: 'longest-path' + ranksep: y ? 1 : B.edgeLengthFactor, + nodeSep: y ? 1 : 50, + ranker: "tight-tree", + // ranker: 'network-simplex' + isMultiGraph: !0 + }), a.setDefaultEdgeLabel(function() { + return {}; + }), p.db.extract(e); + const x = p.db.getStates(), c = p.db.getRelations(), l = Object.keys(x); + for (const n of l) { + const u = x[n]; + o && (u.parentId = o); + let h; + if (u.doc) { + let f = i.append("g").attr("id", u.id).attr("class", "stateGroup"); + h = W(u.doc, f, u.id, !d, s, g, p); + { + f = Q(f, u, d); + let S = f.node().getBBox(); + h.width = S.width, h.height = S.height + B.padding / 2, z[u.id] = { y: B.compositTitleSize }; + } + } else + h = A(i, u); + if (u.note) { + const f = { + descriptions: [], + id: u.id + "-note", + note: u.note, + type: "note" + }, S = A(i, f); + u.note.position === "left of" ? (a.setNode(h.id + "-note", S), a.setNode(h.id, h)) : (a.setNode(h.id, h), a.setNode(h.id + "-note", S)), a.setParent(h.id, h.id + "-group"), a.setParent(h.id + "-note", h.id + "-group"); + } else + a.setNode(h.id, h); + } + b.debug("Count=", a.nodeCount(), a); + let m = 0; + c.forEach(function(n) { + m++, b.debug("Setting edge", n), a.setEdge( + n.id1, + n.id2, + { + relation: n, + width: rt(n.title), + height: B.labelHeight * T.getRows(n.title).length, + labelpos: "c" + }, + "id" + m + ); + }), J(a), b.debug("Graph after layout", a.nodes()); + const w = i.node(); + a.nodes().forEach(function(n) { + n !== void 0 && a.node(n) !== void 0 ? (b.warn("Node " + n + ": " + JSON.stringify(a.node(n))), s.select("#" + w.id + " #" + n).attr( + "transform", + "translate(" + (a.node(n).x - a.node(n).width / 2) + "," + (a.node(n).y + (z[n] ? z[n].y : 0) - a.node(n).height / 2) + " )" + ), s.select("#" + w.id + " #" + n).attr("data-x-shift", a.node(n).x - a.node(n).width / 2), g.querySelectorAll("#" + w.id + " #" + n + " .divider").forEach((h) => { + const f = h.parentElement; + let S = 0, M = 0; + f && (f.parentElement && (S = f.parentElement.getBBox().width), M = parseInt(f.getAttribute("data-x-shift"), 10), Number.isNaN(M) && (M = 0)), h.setAttribute("x1", 0 - M + 8), h.setAttribute("x2", S - M - 8); + })) : b.debug("No Node " + n + ": " + JSON.stringify(a.node(n))); + }); + let k = w.getBBox(); + a.edges().forEach(function(n) { + n !== void 0 && a.edge(n) !== void 0 && (b.debug("Edge " + n.v + " -> " + n.w + ": " + JSON.stringify(a.edge(n))), at(i, a.edge(n), a.edge(n).relation)); + }), k = w.getBBox(); + const E = { + id: o || "root", + label: o || "root", + width: 0, + height: 0 + }; + return E.width = k.width + 2 * B.padding, E.height = k.height + 2 * B.padding, b.debug("Doc rendered", E, a), E; +}, ot = { + setConf: it, + draw: st +}, ut = { + parser: C, + db: N, + renderer: ot, + styles: R, + init: (e) => { + e.state || (e.state = {}), e.state.arrowMarkerAbsolute = e.arrowMarkerAbsolute, N.clear(); + } +}; +export { + ut as diagram +}; diff --git a/assets/lib/mermaid/stateDiagram-v2-1992cada.js b/assets/lib/mermaid/stateDiagram-v2-1992cada.js new file mode 100644 index 000000000..d1384900b --- /dev/null +++ b/assets/lib/mermaid/stateDiagram-v2-1992cada.js @@ -0,0 +1,333 @@ +import { D as DEFAULT_STATE_TYPE, a as DIVIDER_TYPE, S as STMT_RELATION, b as STMT_STATE, c as DEFAULT_NESTED_DOC_DIR, p as parser, d as db, s as styles } from "./styles-0784dbeb.js"; +import * as graphlib from "dagre-d3-es/src/graphlib/index.js"; +import { select } from "d3"; +import { l as log, c as getConfig, u as utils, i as configureSvgSize, e as common } from "./mermaid-6dc72991.js"; +import { r as render } from "./index-01f381cb.js"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +import "dagre-d3-es/src/dagre/index.js"; +import "dagre-d3-es/src/graphlib/json.js"; +import "./edges-066a5561.js"; +import "./createText-ca0c5216.js"; +import "mdast-util-from-markdown"; +const SHAPE_STATE = "rect"; +const SHAPE_STATE_WITH_DESC = "rectWithTitle"; +const SHAPE_START = "start"; +const SHAPE_END = "end"; +const SHAPE_DIVIDER = "divider"; +const SHAPE_GROUP = "roundedWithTitle"; +const SHAPE_NOTE = "note"; +const SHAPE_NOTEGROUP = "noteGroup"; +const CSS_DIAGRAM = "statediagram"; +const CSS_STATE = "state"; +const CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`; +const CSS_EDGE = "transition"; +const CSS_NOTE = "note"; +const CSS_NOTE_EDGE = "note-edge"; +const CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`; +const CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`; +const CSS_CLUSTER = "cluster"; +const CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`; +const CSS_CLUSTER_ALT = "cluster-alt"; +const CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`; +const PARENT = "parent"; +const NOTE = "note"; +const DOMID_STATE = "state"; +const DOMID_TYPE_SPACER = "----"; +const NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`; +const PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`; +const G_EDGE_STYLE = "fill:none"; +const G_EDGE_ARROWHEADSTYLE = "fill: #333"; +const G_EDGE_LABELPOS = "c"; +const G_EDGE_LABELTYPE = "text"; +const G_EDGE_THICKNESS = "normal"; +let nodeDb = {}; +let graphItemCount = 0; +const setConf = function(cnf) { + const keys = Object.keys(cnf); + for (const key of keys) { + cnf[key]; + } +}; +const getClasses = function(text, diagramObj) { + diagramObj.db.extract(diagramObj.db.getRootDocV2()); + return diagramObj.db.getClasses(); +}; +function getClassesFromDbInfo(dbInfoItem) { + if (dbInfoItem === void 0 || dbInfoItem === null) { + return ""; + } else { + if (dbInfoItem.classes) { + return dbInfoItem.classes.join(" "); + } else { + return ""; + } + } +} +function stateDomId(itemId = "", counter = 0, type = "", typeSpacer = DOMID_TYPE_SPACER) { + const typeStr = type !== null && type.length > 0 ? `${typeSpacer}${type}` : ""; + return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`; +} +const setupNode = (g, parent, parsedItem, diagramStates, diagramDb, altFlag) => { + const itemId = parsedItem.id; + const classStr = getClassesFromDbInfo(diagramStates[itemId]); + if (itemId !== "root") { + let shape = SHAPE_STATE; + if (parsedItem.start === true) { + shape = SHAPE_START; + } + if (parsedItem.start === false) { + shape = SHAPE_END; + } + if (parsedItem.type !== DEFAULT_STATE_TYPE) { + shape = parsedItem.type; + } + if (!nodeDb[itemId]) { + nodeDb[itemId] = { + id: itemId, + shape, + description: common.sanitizeText(itemId, getConfig()), + classes: `${classStr} ${CSS_DIAGRAM_STATE}` + }; + } + const newNode = nodeDb[itemId]; + if (parsedItem.description) { + if (Array.isArray(newNode.description)) { + newNode.shape = SHAPE_STATE_WITH_DESC; + newNode.description.push(parsedItem.description); + } else { + if (newNode.description.length > 0) { + newNode.shape = SHAPE_STATE_WITH_DESC; + if (newNode.description === itemId) { + newNode.description = [parsedItem.description]; + } else { + newNode.description = [newNode.description, parsedItem.description]; + } + } else { + newNode.shape = SHAPE_STATE; + newNode.description = parsedItem.description; + } + } + newNode.description = common.sanitizeTextOrArray(newNode.description, getConfig()); + } + if (newNode.description.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) { + newNode.shape = SHAPE_STATE; + } + if (!newNode.type && parsedItem.doc) { + log.info("Setting cluster for ", itemId, getDir(parsedItem)); + newNode.type = "group"; + newNode.dir = getDir(parsedItem); + newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP; + newNode.classes = newNode.classes + " " + CSS_DIAGRAM_CLUSTER + " " + (altFlag ? CSS_DIAGRAM_CLUSTER_ALT : ""); + } + const nodeData = { + labelStyle: "", + shape: newNode.shape, + labelText: newNode.description, + // typeof newNode.description === 'object' + // ? newNode.description[0] + // : newNode.description, + classes: newNode.classes, + style: "", + //styles.style, + id: itemId, + dir: newNode.dir, + domId: stateDomId(itemId, graphItemCount), + type: newNode.type, + padding: 15 + //getConfig().flowchart.padding + }; + nodeData.centerLabel = true; + if (parsedItem.note) { + const noteData = { + labelStyle: "", + shape: SHAPE_NOTE, + labelText: parsedItem.note.text, + classes: CSS_DIAGRAM_NOTE, + // useHtmlLabels: false, + style: "", + // styles.style, + id: itemId + NOTE_ID + "-" + graphItemCount, + domId: stateDomId(itemId, graphItemCount, NOTE), + type: newNode.type, + padding: 15 + //getConfig().flowchart.padding + }; + const groupData = { + labelStyle: "", + shape: SHAPE_NOTEGROUP, + labelText: parsedItem.note.text, + classes: newNode.classes, + style: "", + // styles.style, + id: itemId + PARENT_ID, + domId: stateDomId(itemId, graphItemCount, PARENT), + type: "group", + padding: 0 + //getConfig().flowchart.padding + }; + graphItemCount++; + const parentNodeId = itemId + PARENT_ID; + g.setNode(parentNodeId, groupData); + g.setNode(noteData.id, noteData); + g.setNode(itemId, nodeData); + g.setParent(itemId, parentNodeId); + g.setParent(noteData.id, parentNodeId); + let from = itemId; + let to = noteData.id; + if (parsedItem.note.position === "left of") { + from = noteData.id; + to = itemId; + } + g.setEdge(from, to, { + arrowhead: "none", + arrowType: "", + style: G_EDGE_STYLE, + labelStyle: "", + classes: CSS_EDGE_NOTE_EDGE, + arrowheadStyle: G_EDGE_ARROWHEADSTYLE, + labelpos: G_EDGE_LABELPOS, + labelType: G_EDGE_LABELTYPE, + thickness: G_EDGE_THICKNESS + }); + } else { + g.setNode(itemId, nodeData); + } + } + if (parent && parent.id !== "root") { + log.trace("Setting node ", itemId, " to be child of its parent ", parent.id); + g.setParent(itemId, parent.id); + } + if (parsedItem.doc) { + log.trace("Adding nodes children "); + setupDoc(g, parsedItem, parsedItem.doc, diagramStates, diagramDb, !altFlag); + } +}; +const setupDoc = (g, parentParsedItem, doc, diagramStates, diagramDb, altFlag) => { + log.trace("items", doc); + doc.forEach((item) => { + switch (item.stmt) { + case STMT_STATE: + setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag); + break; + case DEFAULT_STATE_TYPE: + setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag); + break; + case STMT_RELATION: + { + setupNode(g, parentParsedItem, item.state1, diagramStates, diagramDb, altFlag); + setupNode(g, parentParsedItem, item.state2, diagramStates, diagramDb, altFlag); + const edgeData = { + id: "edge" + graphItemCount, + arrowhead: "normal", + arrowTypeEnd: "arrow_barb", + style: G_EDGE_STYLE, + labelStyle: "", + label: common.sanitizeText(item.description, getConfig()), + arrowheadStyle: G_EDGE_ARROWHEADSTYLE, + labelpos: G_EDGE_LABELPOS, + labelType: G_EDGE_LABELTYPE, + thickness: G_EDGE_THICKNESS, + classes: CSS_EDGE + }; + g.setEdge(item.state1.id, item.state2.id, edgeData, graphItemCount); + graphItemCount++; + } + break; + } + }); +}; +const getDir = (parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => { + let dir = defaultDir; + if (parsedItem.doc) { + for (let i = 0; i < parsedItem.doc.length; i++) { + const parsedItemDoc = parsedItem.doc[i]; + if (parsedItemDoc.stmt === "dir") { + dir = parsedItemDoc.value; + } + } + } + return dir; +}; +const draw = async function(text, id, _version, diag) { + log.info("Drawing state diagram (v2)", id); + nodeDb = {}; + diag.db.getDirection(); + const { securityLevel, state: conf } = getConfig(); + const nodeSpacing = conf.nodeSpacing || 50; + const rankSpacing = conf.rankSpacing || 50; + log.info(diag.db.getRootDocV2()); + diag.db.extract(diag.db.getRootDocV2()); + log.info(diag.db.getRootDocV2()); + const diagramStates = diag.db.getStates(); + const g = new graphlib.Graph({ + multigraph: true, + compound: true + }).setGraph({ + rankdir: getDir(diag.db.getRootDocV2()), + nodesep: nodeSpacing, + ranksep: rankSpacing, + marginx: 8, + marginy: 8 + }).setDefaultEdgeLabel(function() { + return {}; + }); + setupNode(g, void 0, diag.db.getRootDocV2(), diagramStates, diag.db, true); + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const svg = root.select(`[id="${id}"]`); + const element = root.select("#" + id + " g"); + await render(element, g, ["barb"], CSS_DIAGRAM, id); + const padding = 8; + utils.insertTitle(svg, "statediagramTitleText", conf.titleTopMargin, diag.db.getDiagramTitle()); + const bounds = svg.node().getBBox(); + const width = bounds.width + padding * 2; + const height = bounds.height + padding * 2; + svg.attr("class", CSS_DIAGRAM); + const svgBounds = svg.node().getBBox(); + configureSvgSize(svg, height, width, conf.useMaxWidth); + const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`; + log.debug(`viewBox ${vBox}`); + svg.attr("viewBox", vBox); + const labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label'); + for (const label of labels) { + const dim = label.getBBox(); + const rect = document.createElementNS("http://www.w3.org/2000/svg", SHAPE_STATE); + rect.setAttribute("rx", 0); + rect.setAttribute("ry", 0); + rect.setAttribute("width", dim.width); + rect.setAttribute("height", dim.height); + label.insertBefore(rect, label.firstChild); + } +}; +const renderer = { + setConf, + getClasses, + draw +}; +const diagram = { + parser, + db, + renderer, + styles, + init: (cnf) => { + if (!cnf.state) { + cnf.state = {}; + } + cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; + db.clear(); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/stateDiagram-v2-992e82a1.js b/assets/lib/mermaid/stateDiagram-v2-992e82a1.js new file mode 100644 index 000000000..c8cad4671 --- /dev/null +++ b/assets/lib/mermaid/stateDiagram-v2-992e82a1.js @@ -0,0 +1,325 @@ +import { D as DEFAULT_STATE_TYPE, a as DIVIDER_TYPE, S as STMT_RELATION, b as STMT_STATE, c as DEFAULT_NESTED_DOC_DIR, p as parser, d as db, s as styles } from "./styles-f80da881.js"; +import { G as Graph } from "./graph-fe24fab6.js"; +import { l as log, c as getConfig, j as d3select, A as utils, k as configureSvgSize, f as common } from "./mermaid-dcacb631.js"; +import { r as render } from "./index-fc479858.js"; +import "./layout-163b9689.js"; +import "./clone-9ea6bfeb.js"; +import "./edges-ce5cfb7c.js"; +import "./createText-b70fe78a.js"; +import "./line-87f517ef.js"; +import "./array-b7dcf730.js"; +import "./path-39bad7e2.js"; +const SHAPE_STATE = "rect"; +const SHAPE_STATE_WITH_DESC = "rectWithTitle"; +const SHAPE_START = "start"; +const SHAPE_END = "end"; +const SHAPE_DIVIDER = "divider"; +const SHAPE_GROUP = "roundedWithTitle"; +const SHAPE_NOTE = "note"; +const SHAPE_NOTEGROUP = "noteGroup"; +const CSS_DIAGRAM = "statediagram"; +const CSS_STATE = "state"; +const CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`; +const CSS_EDGE = "transition"; +const CSS_NOTE = "note"; +const CSS_NOTE_EDGE = "note-edge"; +const CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`; +const CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`; +const CSS_CLUSTER = "cluster"; +const CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`; +const CSS_CLUSTER_ALT = "cluster-alt"; +const CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`; +const PARENT = "parent"; +const NOTE = "note"; +const DOMID_STATE = "state"; +const DOMID_TYPE_SPACER = "----"; +const NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`; +const PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`; +const G_EDGE_STYLE = "fill:none"; +const G_EDGE_ARROWHEADSTYLE = "fill: #333"; +const G_EDGE_LABELPOS = "c"; +const G_EDGE_LABELTYPE = "text"; +const G_EDGE_THICKNESS = "normal"; +let nodeDb = {}; +let graphItemCount = 0; +const setConf = function(cnf) { + const keys = Object.keys(cnf); + for (const key of keys) { + cnf[key]; + } +}; +const getClasses = function(text, diagramObj) { + diagramObj.db.extract(diagramObj.db.getRootDocV2()); + return diagramObj.db.getClasses(); +}; +function getClassesFromDbInfo(dbInfoItem) { + if (dbInfoItem === void 0 || dbInfoItem === null) { + return ""; + } else { + if (dbInfoItem.classes) { + return dbInfoItem.classes.join(" "); + } else { + return ""; + } + } +} +function stateDomId(itemId = "", counter = 0, type = "", typeSpacer = DOMID_TYPE_SPACER) { + const typeStr = type !== null && type.length > 0 ? `${typeSpacer}${type}` : ""; + return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`; +} +const setupNode = (g, parent, parsedItem, diagramStates, diagramDb, altFlag) => { + const itemId = parsedItem.id; + const classStr = getClassesFromDbInfo(diagramStates[itemId]); + if (itemId !== "root") { + let shape = SHAPE_STATE; + if (parsedItem.start === true) { + shape = SHAPE_START; + } + if (parsedItem.start === false) { + shape = SHAPE_END; + } + if (parsedItem.type !== DEFAULT_STATE_TYPE) { + shape = parsedItem.type; + } + if (!nodeDb[itemId]) { + nodeDb[itemId] = { + id: itemId, + shape, + description: common.sanitizeText(itemId, getConfig()), + classes: `${classStr} ${CSS_DIAGRAM_STATE}` + }; + } + const newNode = nodeDb[itemId]; + if (parsedItem.description) { + if (Array.isArray(newNode.description)) { + newNode.shape = SHAPE_STATE_WITH_DESC; + newNode.description.push(parsedItem.description); + } else { + if (newNode.description.length > 0) { + newNode.shape = SHAPE_STATE_WITH_DESC; + if (newNode.description === itemId) { + newNode.description = [parsedItem.description]; + } else { + newNode.description = [newNode.description, parsedItem.description]; + } + } else { + newNode.shape = SHAPE_STATE; + newNode.description = parsedItem.description; + } + } + newNode.description = common.sanitizeTextOrArray(newNode.description, getConfig()); + } + if (newNode.description.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) { + newNode.shape = SHAPE_STATE; + } + if (!newNode.type && parsedItem.doc) { + log.info("Setting cluster for ", itemId, getDir(parsedItem)); + newNode.type = "group"; + newNode.dir = getDir(parsedItem); + newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP; + newNode.classes = newNode.classes + " " + CSS_DIAGRAM_CLUSTER + " " + (altFlag ? CSS_DIAGRAM_CLUSTER_ALT : ""); + } + const nodeData = { + labelStyle: "", + shape: newNode.shape, + labelText: newNode.description, + // typeof newNode.description === 'object' + // ? newNode.description[0] + // : newNode.description, + classes: newNode.classes, + style: "", + //styles.style, + id: itemId, + dir: newNode.dir, + domId: stateDomId(itemId, graphItemCount), + type: newNode.type, + padding: 15 + //getConfig().flowchart.padding + }; + nodeData.centerLabel = true; + if (parsedItem.note) { + const noteData = { + labelStyle: "", + shape: SHAPE_NOTE, + labelText: parsedItem.note.text, + classes: CSS_DIAGRAM_NOTE, + // useHtmlLabels: false, + style: "", + // styles.style, + id: itemId + NOTE_ID + "-" + graphItemCount, + domId: stateDomId(itemId, graphItemCount, NOTE), + type: newNode.type, + padding: 15 + //getConfig().flowchart.padding + }; + const groupData = { + labelStyle: "", + shape: SHAPE_NOTEGROUP, + labelText: parsedItem.note.text, + classes: newNode.classes, + style: "", + // styles.style, + id: itemId + PARENT_ID, + domId: stateDomId(itemId, graphItemCount, PARENT), + type: "group", + padding: 0 + //getConfig().flowchart.padding + }; + graphItemCount++; + const parentNodeId = itemId + PARENT_ID; + g.setNode(parentNodeId, groupData); + g.setNode(noteData.id, noteData); + g.setNode(itemId, nodeData); + g.setParent(itemId, parentNodeId); + g.setParent(noteData.id, parentNodeId); + let from = itemId; + let to = noteData.id; + if (parsedItem.note.position === "left of") { + from = noteData.id; + to = itemId; + } + g.setEdge(from, to, { + arrowhead: "none", + arrowType: "", + style: G_EDGE_STYLE, + labelStyle: "", + classes: CSS_EDGE_NOTE_EDGE, + arrowheadStyle: G_EDGE_ARROWHEADSTYLE, + labelpos: G_EDGE_LABELPOS, + labelType: G_EDGE_LABELTYPE, + thickness: G_EDGE_THICKNESS + }); + } else { + g.setNode(itemId, nodeData); + } + } + if (parent && parent.id !== "root") { + log.trace("Setting node ", itemId, " to be child of its parent ", parent.id); + g.setParent(itemId, parent.id); + } + if (parsedItem.doc) { + log.trace("Adding nodes children "); + setupDoc(g, parsedItem, parsedItem.doc, diagramStates, diagramDb, !altFlag); + } +}; +const setupDoc = (g, parentParsedItem, doc, diagramStates, diagramDb, altFlag) => { + log.trace("items", doc); + doc.forEach((item) => { + switch (item.stmt) { + case STMT_STATE: + setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag); + break; + case DEFAULT_STATE_TYPE: + setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag); + break; + case STMT_RELATION: + { + setupNode(g, parentParsedItem, item.state1, diagramStates, diagramDb, altFlag); + setupNode(g, parentParsedItem, item.state2, diagramStates, diagramDb, altFlag); + const edgeData = { + id: "edge" + graphItemCount, + arrowhead: "normal", + arrowTypeEnd: "arrow_barb", + style: G_EDGE_STYLE, + labelStyle: "", + label: common.sanitizeText(item.description, getConfig()), + arrowheadStyle: G_EDGE_ARROWHEADSTYLE, + labelpos: G_EDGE_LABELPOS, + labelType: G_EDGE_LABELTYPE, + thickness: G_EDGE_THICKNESS, + classes: CSS_EDGE + }; + g.setEdge(item.state1.id, item.state2.id, edgeData, graphItemCount); + graphItemCount++; + } + break; + } + }); +}; +const getDir = (parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => { + let dir = defaultDir; + if (parsedItem.doc) { + for (let i = 0; i < parsedItem.doc.length; i++) { + const parsedItemDoc = parsedItem.doc[i]; + if (parsedItemDoc.stmt === "dir") { + dir = parsedItemDoc.value; + } + } + } + return dir; +}; +const draw = async function(text, id, _version, diag) { + log.info("Drawing state diagram (v2)", id); + nodeDb = {}; + diag.db.getDirection(); + const { securityLevel, state: conf } = getConfig(); + const nodeSpacing = conf.nodeSpacing || 50; + const rankSpacing = conf.rankSpacing || 50; + log.info(diag.db.getRootDocV2()); + diag.db.extract(diag.db.getRootDocV2()); + log.info(diag.db.getRootDocV2()); + const diagramStates = diag.db.getStates(); + const g = new Graph({ + multigraph: true, + compound: true + }).setGraph({ + rankdir: getDir(diag.db.getRootDocV2()), + nodesep: nodeSpacing, + ranksep: rankSpacing, + marginx: 8, + marginy: 8 + }).setDefaultEdgeLabel(function() { + return {}; + }); + setupNode(g, void 0, diag.db.getRootDocV2(), diagramStates, diag.db, true); + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const svg = root.select(`[id="${id}"]`); + const element = root.select("#" + id + " g"); + await render(element, g, ["barb"], CSS_DIAGRAM, id); + const padding = 8; + utils.insertTitle(svg, "statediagramTitleText", conf.titleTopMargin, diag.db.getDiagramTitle()); + const bounds = svg.node().getBBox(); + const width = bounds.width + padding * 2; + const height = bounds.height + padding * 2; + svg.attr("class", CSS_DIAGRAM); + const svgBounds = svg.node().getBBox(); + configureSvgSize(svg, height, width, conf.useMaxWidth); + const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`; + log.debug(`viewBox ${vBox}`); + svg.attr("viewBox", vBox); + const labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label'); + for (const label of labels) { + const dim = label.getBBox(); + const rect = document.createElementNS("http://www.w3.org/2000/svg", SHAPE_STATE); + rect.setAttribute("rx", 0); + rect.setAttribute("ry", 0); + rect.setAttribute("width", dim.width); + rect.setAttribute("height", dim.height); + label.insertBefore(rect, label.firstChild); + } +}; +const renderer = { + setConf, + getClasses, + draw +}; +const diagram = { + parser, + db, + renderer, + styles, + init: (cnf) => { + if (!cnf.state) { + cnf.state = {}; + } + cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; + db.clear(); + } +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/stateDiagram-v2-ed04200a.js b/assets/lib/mermaid/stateDiagram-v2-ed04200a.js new file mode 100644 index 000000000..09cf27b51 --- /dev/null +++ b/assets/lib/mermaid/stateDiagram-v2-ed04200a.js @@ -0,0 +1,190 @@ +import { D as H, a as J, S as Q, b as X, c as Z, p as F, d as M, s as I } from "./styles-cacbff60.js"; +import { G as tt } from "./graph-0ee63739.js"; +import { l as E, c as g, j as $, A as et, k as ot, f as w } from "./mermaid-9f2aa176.js"; +import { r as st } from "./index-bb6d8841.js"; +import "./layout-fd473db2.js"; +import "./clone-afc2f047.js"; +import "./edges-16357fde.js"; +import "./createText-03b82060.js"; +import "./line-24d93f1b.js"; +import "./array-2ff2c7a6.js"; +import "./path-428ebac9.js"; +const h = "rect", C = "rectWithTitle", nt = "start", ct = "end", it = "divider", rt = "roundedWithTitle", lt = "note", at = "noteGroup", _ = "statediagram", dt = "state", Et = `${_}-${dt}`, U = "transition", St = "note", Tt = "note-edge", pt = `${U} ${Tt}`, _t = `${_}-${St}`, ut = "cluster", ft = `${_}-${ut}`, Dt = "cluster-alt", bt = `${_}-${Dt}`, V = "parent", Y = "note", At = "state", N = "----", ht = `${N}${Y}`, v = `${N}${V}`, W = "fill:none", m = "fill: #333", z = "c", j = "text", q = "normal"; +let y = {}, d = 0; +const yt = function(t) { + const n = Object.keys(t); + for (const e of n) + t[e]; +}, gt = function(t, n) { + return n.db.extract(n.db.getRootDocV2()), n.db.getClasses(); +}; +function xt(t) { + return t == null ? "" : t.classes ? t.classes.join(" ") : ""; +} +function R(t = "", n = 0, e = "", c = N) { + const i = e !== null && e.length > 0 ? `${c}${e}` : ""; + return `${At}-${t}${i}-${n}`; +} +const A = (t, n, e, c, i, r) => { + const o = e.id, u = xt(c[o]); + if (o !== "root") { + let T = h; + e.start === !0 && (T = nt), e.start === !1 && (T = ct), e.type !== H && (T = e.type), y[o] || (y[o] = { + id: o, + shape: T, + description: w.sanitizeText(o, g()), + classes: `${u} ${Et}` + }); + const s = y[o]; + e.description && (Array.isArray(s.description) ? (s.shape = C, s.description.push(e.description)) : s.description.length > 0 ? (s.shape = C, s.description === o ? s.description = [e.description] : s.description = [s.description, e.description]) : (s.shape = h, s.description = e.description), s.description = w.sanitizeTextOrArray(s.description, g())), s.description.length === 1 && s.shape === C && (s.shape = h), !s.type && e.doc && (E.info("Setting cluster for ", o, G(e)), s.type = "group", s.dir = G(e), s.shape = e.type === J ? it : rt, s.classes = s.classes + " " + ft + " " + (r ? bt : "")); + const p = { + labelStyle: "", + shape: s.shape, + labelText: s.description, + // typeof newNode.description === 'object' + // ? newNode.description[0] + // : newNode.description, + classes: s.classes, + style: "", + //styles.style, + id: o, + dir: s.dir, + domId: R(o, d), + type: s.type, + padding: 15 + //getConfig().flowchart.padding + }; + if (p.centerLabel = !0, e.note) { + const l = { + labelStyle: "", + shape: lt, + labelText: e.note.text, + classes: _t, + // useHtmlLabels: false, + style: "", + // styles.style, + id: o + ht + "-" + d, + domId: R(o, d, Y), + type: s.type, + padding: 15 + //getConfig().flowchart.padding + }, a = { + labelStyle: "", + shape: at, + labelText: e.note.text, + classes: s.classes, + style: "", + // styles.style, + id: o + v, + domId: R(o, d, V), + type: "group", + padding: 0 + //getConfig().flowchart.padding + }; + d++; + const f = o + v; + t.setNode(f, a), t.setNode(l.id, l), t.setNode(o, p), t.setParent(o, f), t.setParent(l.id, f); + let S = o, D = l.id; + e.note.position === "left of" && (S = l.id, D = o), t.setEdge(S, D, { + arrowhead: "none", + arrowType: "", + style: W, + labelStyle: "", + classes: pt, + arrowheadStyle: m, + labelpos: z, + labelType: j, + thickness: q + }); + } else + t.setNode(o, p); + } + n && n.id !== "root" && (E.trace("Setting node ", o, " to be child of its parent ", n.id), t.setParent(o, n.id)), e.doc && (E.trace("Adding nodes children "), $t(t, e, e.doc, c, i, !r)); +}, $t = (t, n, e, c, i, r) => { + E.trace("items", e), e.forEach((o) => { + switch (o.stmt) { + case X: + A(t, n, o, c, i, r); + break; + case H: + A(t, n, o, c, i, r); + break; + case Q: + { + A(t, n, o.state1, c, i, r), A(t, n, o.state2, c, i, r); + const u = { + id: "edge" + d, + arrowhead: "normal", + arrowTypeEnd: "arrow_barb", + style: W, + labelStyle: "", + label: w.sanitizeText(o.description, g()), + arrowheadStyle: m, + labelpos: z, + labelType: j, + thickness: q, + classes: U + }; + t.setEdge(o.state1.id, o.state2.id, u, d), d++; + } + break; + } + }); +}, G = (t, n = Z) => { + let e = n; + if (t.doc) + for (let c = 0; c < t.doc.length; c++) { + const i = t.doc[c]; + i.stmt === "dir" && (e = i.value); + } + return e; +}, Ct = async function(t, n, e, c) { + E.info("Drawing state diagram (v2)", n), y = {}, c.db.getDirection(); + const { securityLevel: i, state: r } = g(), o = r.nodeSpacing || 50, u = r.rankSpacing || 50; + E.info(c.db.getRootDocV2()), c.db.extract(c.db.getRootDocV2()), E.info(c.db.getRootDocV2()); + const T = c.db.getStates(), s = new tt({ + multigraph: !0, + compound: !0 + }).setGraph({ + rankdir: G(c.db.getRootDocV2()), + nodesep: o, + ranksep: u, + marginx: 8, + marginy: 8 + }).setDefaultEdgeLabel(function() { + return {}; + }); + A(s, void 0, c.db.getRootDocV2(), T, c.db, !0); + let p; + i === "sandbox" && (p = $("#i" + n)); + const l = i === "sandbox" ? $(p.nodes()[0].contentDocument.body) : $("body"), a = l.select(`[id="${n}"]`), f = l.select("#" + n + " g"); + await st(f, s, ["barb"], _, n); + const S = 8; + et.insertTitle(a, "statediagramTitleText", r.titleTopMargin, c.db.getDiagramTitle()); + const D = a.node().getBBox(), L = D.width + S * 2, P = D.height + S * 2; + a.attr("class", _); + const O = a.node().getBBox(); + ot(a, P, L, r.useMaxWidth); + const k = `${O.x - S} ${O.y - S} ${L} ${P}`; + E.debug(`viewBox ${k}`), a.attr("viewBox", k); + const K = document.querySelectorAll('[id="' + n + '"] .edgeLabel .label'); + for (const x of K) { + const B = x.getBBox(), b = document.createElementNS("http://www.w3.org/2000/svg", h); + b.setAttribute("rx", 0), b.setAttribute("ry", 0), b.setAttribute("width", B.width), b.setAttribute("height", B.height), x.insertBefore(b, x.firstChild); + } +}, Rt = { + setConf: yt, + getClasses: gt, + draw: Ct +}, Ut = { + parser: F, + db: M, + renderer: Rt, + styles: I, + init: (t) => { + t.state || (t.state = {}), t.state.arrowMarkerAbsolute = t.arrowMarkerAbsolute, M.clear(); + } +}; +export { + Ut as diagram +}; diff --git a/assets/lib/mermaid/styles-0784dbeb.js b/assets/lib/mermaid/styles-0784dbeb.js new file mode 100644 index 000000000..34065a7ae --- /dev/null +++ b/assets/lib/mermaid/styles-0784dbeb.js @@ -0,0 +1,1363 @@ +import { c as getConfig, g as getAccTitle, s as setAccTitle, a as getAccDescription, b as setAccDescription, q as setDiagramTitle, t as getDiagramTitle, l as log, e as common, v as clear$1, I as generateId } from "./mermaid-6dc72991.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 4], $V3 = [2, 4], $V4 = [1, 9], $V5 = [1, 11], $V6 = [1, 15], $V7 = [1, 16], $V8 = [1, 17], $V9 = [1, 18], $Va = [1, 30], $Vb = [1, 19], $Vc = [1, 20], $Vd = [1, 21], $Ve = [1, 22], $Vf = [1, 23], $Vg = [1, 25], $Vh = [1, 26], $Vi = [1, 27], $Vj = [1, 28], $Vk = [1, 29], $Vl = [1, 32], $Vm = [1, 33], $Vn = [1, 34], $Vo = [1, 35], $Vp = [1, 31], $Vq = [1, 4, 5, 15, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50], $Vr = [1, 4, 5, 13, 14, 15, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50], $Vs = [4, 5, 15, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "SPACE": 4, "NL": 5, "SD": 6, "document": 7, "line": 8, "statement": 9, "classDefStatement": 10, "cssClassStatement": 11, "idStatement": 12, "DESCR": 13, "-->": 14, "HIDE_EMPTY": 15, "scale": 16, "WIDTH": 17, "COMPOSIT_STATE": 18, "STRUCT_START": 19, "STRUCT_STOP": 20, "STATE_DESCR": 21, "AS": 22, "ID": 23, "FORK": 24, "JOIN": 25, "CHOICE": 26, "CONCURRENT": 27, "note": 28, "notePosition": 29, "NOTE_TEXT": 30, "direction": 31, "acc_title": 32, "acc_title_value": 33, "acc_descr": 34, "acc_descr_value": 35, "acc_descr_multiline_value": 36, "classDef": 37, "CLASSDEF_ID": 38, "CLASSDEF_STYLEOPTS": 39, "DEFAULT": 40, "class": 41, "CLASSENTITY_IDS": 42, "STYLECLASS": 43, "direction_tb": 44, "direction_bt": 45, "direction_rl": 46, "direction_lr": 47, "eol": 48, ";": 49, "EDGE_STATE": 50, "STYLE_SEPARATOR": 51, "left_of": 52, "right_of": 53, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "SPACE", 5: "NL", 6: "SD", 13: "DESCR", 14: "-->", 15: "HIDE_EMPTY", 16: "scale", 17: "WIDTH", 18: "COMPOSIT_STATE", 19: "STRUCT_START", 20: "STRUCT_STOP", 21: "STATE_DESCR", 22: "AS", 23: "ID", 24: "FORK", 25: "JOIN", 26: "CHOICE", 27: "CONCURRENT", 28: "note", 30: "NOTE_TEXT", 32: "acc_title", 33: "acc_title_value", 34: "acc_descr", 35: "acc_descr_value", 36: "acc_descr_multiline_value", 37: "classDef", 38: "CLASSDEF_ID", 39: "CLASSDEF_STYLEOPTS", 40: "DEFAULT", 41: "class", 42: "CLASSENTITY_IDS", 43: "STYLECLASS", 44: "direction_tb", 45: "direction_bt", 46: "direction_rl", 47: "direction_lr", 49: ";", 50: "EDGE_STATE", 51: "STYLE_SEPARATOR", 52: "left_of", 53: "right_of" }, + productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 3], [9, 4], [9, 1], [9, 2], [9, 1], [9, 4], [9, 3], [9, 6], [9, 1], [9, 1], [9, 1], [9, 1], [9, 4], [9, 4], [9, 1], [9, 2], [9, 2], [9, 1], [10, 3], [10, 3], [11, 3], [31, 1], [31, 1], [31, 1], [31, 1], [48, 1], [48, 1], [12, 1], [12, 1], [12, 3], [12, 3], [29, 1], [29, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 3: + yy.setRootDoc($$[$0]); + return $$[$0]; + case 4: + this.$ = []; + break; + case 5: + if ($$[$0] != "nl") { + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + } + break; + case 6: + case 7: + this.$ = $$[$0]; + break; + case 8: + this.$ = "nl"; + break; + case 11: + this.$ = $$[$0]; + break; + case 12: + const stateStmt = $$[$0 - 1]; + stateStmt.description = yy.trimColon($$[$0]); + this.$ = stateStmt; + break; + case 13: + this.$ = { stmt: "relation", state1: $$[$0 - 2], state2: $$[$0] }; + break; + case 14: + const relDescription = yy.trimColon($$[$0]); + this.$ = { stmt: "relation", state1: $$[$0 - 3], state2: $$[$0 - 1], description: relDescription }; + break; + case 18: + this.$ = { stmt: "state", id: $$[$0 - 3], type: "default", description: "", doc: $$[$0 - 1] }; + break; + case 19: + var id = $$[$0]; + var description = $$[$0 - 2].trim(); + if ($$[$0].match(":")) { + var parts = $$[$0].split(":"); + id = parts[0]; + description = [description, parts[1]]; + } + this.$ = { stmt: "state", id, type: "default", description }; + break; + case 20: + this.$ = { stmt: "state", id: $$[$0 - 3], type: "default", description: $$[$0 - 5], doc: $$[$0 - 1] }; + break; + case 21: + this.$ = { stmt: "state", id: $$[$0], type: "fork" }; + break; + case 22: + this.$ = { stmt: "state", id: $$[$0], type: "join" }; + break; + case 23: + this.$ = { stmt: "state", id: $$[$0], type: "choice" }; + break; + case 24: + this.$ = { stmt: "state", id: yy.getDividerId(), type: "divider" }; + break; + case 25: + this.$ = { stmt: "state", id: $$[$0 - 1].trim(), note: { position: $$[$0 - 2].trim(), text: $$[$0].trim() } }; + break; + case 28: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 29: + case 30: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 31: + case 32: + this.$ = { stmt: "classDef", id: $$[$0 - 1].trim(), classes: $$[$0].trim() }; + break; + case 33: + this.$ = { stmt: "applyClass", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() }; + break; + case 34: + yy.setDirection("TB"); + this.$ = { stmt: "dir", value: "TB" }; + break; + case 35: + yy.setDirection("BT"); + this.$ = { stmt: "dir", value: "BT" }; + break; + case 36: + yy.setDirection("RL"); + this.$ = { stmt: "dir", value: "RL" }; + break; + case 37: + yy.setDirection("LR"); + this.$ = { stmt: "dir", value: "LR" }; + break; + case 40: + case 41: + this.$ = { stmt: "state", id: $$[$0].trim(), type: "default", description: "" }; + break; + case 42: + this.$ = { stmt: "state", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: "default", description: "" }; + break; + case 43: + this.$ = { stmt: "state", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: "default", description: "" }; + break; + } + }, + table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o([1, 4, 5, 15, 16, 18, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 15: $V6, 16: $V7, 18: $V8, 21: $V9, 23: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 31: 24, 32: $Vg, 34: $Vh, 36: $Vi, 37: $Vj, 41: $Vk, 44: $Vl, 45: $Vm, 46: $Vn, 47: $Vo, 50: $Vp }, o($Vq, [2, 5]), { 9: 36, 10: 12, 11: 13, 12: 14, 15: $V6, 16: $V7, 18: $V8, 21: $V9, 23: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 31: 24, 32: $Vg, 34: $Vh, 36: $Vi, 37: $Vj, 41: $Vk, 44: $Vl, 45: $Vm, 46: $Vn, 47: $Vo, 50: $Vp }, o($Vq, [2, 7]), o($Vq, [2, 8]), o($Vq, [2, 9]), o($Vq, [2, 10]), o($Vq, [2, 11], { 13: [1, 37], 14: [1, 38] }), o($Vq, [2, 15]), { 17: [1, 39] }, o($Vq, [2, 17], { 19: [1, 40] }), { 22: [1, 41] }, o($Vq, [2, 21]), o($Vq, [2, 22]), o($Vq, [2, 23]), o($Vq, [2, 24]), { 29: 42, 30: [1, 43], 52: [1, 44], 53: [1, 45] }, o($Vq, [2, 27]), { 33: [1, 46] }, { 35: [1, 47] }, o($Vq, [2, 30]), { 38: [1, 48], 40: [1, 49] }, { 42: [1, 50] }, o($Vr, [2, 40], { 51: [1, 51] }), o($Vr, [2, 41], { 51: [1, 52] }), o($Vq, [2, 34]), o($Vq, [2, 35]), o($Vq, [2, 36]), o($Vq, [2, 37]), o($Vq, [2, 6]), o($Vq, [2, 12]), { 12: 53, 23: $Va, 50: $Vp }, o($Vq, [2, 16]), o($Vs, $V3, { 7: 54 }), { 23: [1, 55] }, { 23: [1, 56] }, { 22: [1, 57] }, { 23: [2, 44] }, { 23: [2, 45] }, o($Vq, [2, 28]), o($Vq, [2, 29]), { 39: [1, 58] }, { 39: [1, 59] }, { 43: [1, 60] }, { 23: [1, 61] }, { 23: [1, 62] }, o($Vq, [2, 13], { 13: [1, 63] }), { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 15: $V6, 16: $V7, 18: $V8, 20: [1, 64], 21: $V9, 23: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 31: 24, 32: $Vg, 34: $Vh, 36: $Vi, 37: $Vj, 41: $Vk, 44: $Vl, 45: $Vm, 46: $Vn, 47: $Vo, 50: $Vp }, o($Vq, [2, 19], { 19: [1, 65] }), { 30: [1, 66] }, { 23: [1, 67] }, o($Vq, [2, 31]), o($Vq, [2, 32]), o($Vq, [2, 33]), o($Vr, [2, 42]), o($Vr, [2, 43]), o($Vq, [2, 14]), o($Vq, [2, 18]), o($Vs, $V3, { 7: 68 }), o($Vq, [2, 25]), o($Vq, [2, 26]), { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 15: $V6, 16: $V7, 18: $V8, 20: [1, 69], 21: $V9, 23: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 31: 24, 32: $Vg, 34: $Vh, 36: $Vi, 37: $Vj, 41: $Vk, 44: $Vl, 45: $Vm, 46: $Vn, 47: $Vo, 50: $Vp }, o($Vq, [2, 20])], + defaultActions: { 5: [2, 1], 6: [2, 2], 44: [2, 44], 45: [2, 45] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + return 40; + case 1: + return 44; + case 2: + return 45; + case 3: + return 46; + case 4: + return 47; + case 5: + break; + case 6: + break; + case 7: + return 5; + case 8: + break; + case 9: + break; + case 10: + break; + case 11: + break; + case 12: + this.pushState("SCALE"); + return 16; + case 13: + return 17; + case 14: + this.popState(); + break; + case 15: + this.begin("acc_title"); + return 32; + case 16: + this.popState(); + return "acc_title_value"; + case 17: + this.begin("acc_descr"); + return 34; + case 18: + this.popState(); + return "acc_descr_value"; + case 19: + this.begin("acc_descr_multiline"); + break; + case 20: + this.popState(); + break; + case 21: + return "acc_descr_multiline_value"; + case 22: + this.pushState("CLASSDEF"); + return 37; + case 23: + this.popState(); + this.pushState("CLASSDEFID"); + return "DEFAULT_CLASSDEF_ID"; + case 24: + this.popState(); + this.pushState("CLASSDEFID"); + return 38; + case 25: + this.popState(); + return 39; + case 26: + this.pushState("CLASS"); + return 41; + case 27: + this.popState(); + this.pushState("CLASS_STYLE"); + return 42; + case 28: + this.popState(); + return 43; + case 29: + this.pushState("SCALE"); + return 16; + case 30: + return 17; + case 31: + this.popState(); + break; + case 32: + this.pushState("STATE"); + break; + case 33: + this.popState(); + yy_.yytext = yy_.yytext.slice(0, -8).trim(); + return 24; + case 34: + this.popState(); + yy_.yytext = yy_.yytext.slice(0, -8).trim(); + return 25; + case 35: + this.popState(); + yy_.yytext = yy_.yytext.slice(0, -10).trim(); + return 26; + case 36: + this.popState(); + yy_.yytext = yy_.yytext.slice(0, -8).trim(); + return 24; + case 37: + this.popState(); + yy_.yytext = yy_.yytext.slice(0, -8).trim(); + return 25; + case 38: + this.popState(); + yy_.yytext = yy_.yytext.slice(0, -10).trim(); + return 26; + case 39: + return 44; + case 40: + return 45; + case 41: + return 46; + case 42: + return 47; + case 43: + this.pushState("STATE_STRING"); + break; + case 44: + this.pushState("STATE_ID"); + return "AS"; + case 45: + this.popState(); + return "ID"; + case 46: + this.popState(); + break; + case 47: + return "STATE_DESCR"; + case 48: + return 18; + case 49: + this.popState(); + break; + case 50: + this.popState(); + this.pushState("struct"); + return 19; + case 51: + break; + case 52: + this.popState(); + return 20; + case 53: + break; + case 54: + this.begin("NOTE"); + return 28; + case 55: + this.popState(); + this.pushState("NOTE_ID"); + return 52; + case 56: + this.popState(); + this.pushState("NOTE_ID"); + return 53; + case 57: + this.popState(); + this.pushState("FLOATING_NOTE"); + break; + case 58: + this.popState(); + this.pushState("FLOATING_NOTE_ID"); + return "AS"; + case 59: + break; + case 60: + return "NOTE_TEXT"; + case 61: + this.popState(); + return "ID"; + case 62: + this.popState(); + this.pushState("NOTE_TEXT"); + return 23; + case 63: + this.popState(); + yy_.yytext = yy_.yytext.substr(2).trim(); + return 30; + case 64: + this.popState(); + yy_.yytext = yy_.yytext.slice(0, -8).trim(); + return 30; + case 65: + return 6; + case 66: + return 6; + case 67: + return 15; + case 68: + return 50; + case 69: + return 23; + case 70: + yy_.yytext = yy_.yytext.trim(); + return 13; + case 71: + return 14; + case 72: + return 27; + case 73: + return 51; + case 74: + return 5; + case 75: + return "INVALID"; + } + }, + rules: [/^(?:default\b)/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:[\s]+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:classDef\s+)/i, /^(?:DEFAULT\s+)/i, /^(?:\w+\s+)/i, /^(?:[^\n]*)/i, /^(?:class\s+)/i, /^(?:(\w+)+((,\s*\w+)*))/i, /^(?:[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:state\s+)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*\[\[fork\]\])/i, /^(?:.*\[\[join\]\])/i, /^(?:.*\[\[choice\]\])/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:["])/i, /^(?:\s*as\s+)/i, /^(?:[^\n\{]*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n\s\{]+)/i, /^(?:\n)/i, /^(?:\{)/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:\})/i, /^(?:[\n])/i, /^(?:note\s+)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:")/i, /^(?:\s*as\s*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n]*)/i, /^(?:\s*[^:\n\s\-]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:[\s\S]*?end note\b)/i, /^(?:stateDiagram\s+)/i, /^(?:stateDiagram-v2\s+)/i, /^(?:hide empty description\b)/i, /^(?:\[\*\])/i, /^(?:[^:\n\s\-\{]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:-->)/i, /^(?:--)/i, /^(?::::)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { "LINE": { "rules": [9, 10], "inclusive": false }, "struct": { "rules": [9, 10, 22, 26, 32, 39, 40, 41, 42, 51, 52, 53, 54, 68, 69, 70, 71, 72], "inclusive": false }, "FLOATING_NOTE_ID": { "rules": [61], "inclusive": false }, "FLOATING_NOTE": { "rules": [58, 59, 60], "inclusive": false }, "NOTE_TEXT": { "rules": [63, 64], "inclusive": false }, "NOTE_ID": { "rules": [62], "inclusive": false }, "NOTE": { "rules": [55, 56, 57], "inclusive": false }, "CLASS_STYLE": { "rules": [28], "inclusive": false }, "CLASS": { "rules": [27], "inclusive": false }, "CLASSDEFID": { "rules": [25], "inclusive": false }, "CLASSDEF": { "rules": [23, 24], "inclusive": false }, "acc_descr_multiline": { "rules": [20, 21], "inclusive": false }, "acc_descr": { "rules": [18], "inclusive": false }, "acc_title": { "rules": [16], "inclusive": false }, "SCALE": { "rules": [13, 14, 30, 31], "inclusive": false }, "ALIAS": { "rules": [], "inclusive": false }, "STATE_ID": { "rules": [45], "inclusive": false }, "STATE_STRING": { "rules": [46, 47], "inclusive": false }, "FORK_STATE": { "rules": [], "inclusive": false }, "STATE": { "rules": [9, 10, 33, 34, 35, 36, 37, 38, 43, 44, 48, 49, 50], "inclusive": false }, "ID": { "rules": [9, 10], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 15, 17, 19, 22, 26, 29, 32, 50, 54, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +const DEFAULT_DIAGRAM_DIRECTION = "LR"; +const DEFAULT_NESTED_DOC_DIR = "TB"; +const STMT_STATE = "state"; +const STMT_RELATION = "relation"; +const STMT_CLASSDEF = "classDef"; +const STMT_APPLYCLASS = "applyClass"; +const DEFAULT_STATE_TYPE = "default"; +const DIVIDER_TYPE = "divider"; +const START_NODE = "[*]"; +const START_TYPE = "start"; +const END_NODE = START_NODE; +const END_TYPE = "end"; +const COLOR_KEYWORD = "color"; +const FILL_KEYWORD = "fill"; +const BG_FILL = "bgFill"; +const STYLECLASS_SEP = ","; +function newClassesList() { + return {}; +} +let direction = DEFAULT_DIAGRAM_DIRECTION; +let rootDoc = []; +let classes = newClassesList(); +const newDoc = () => { + return { + relations: [], + states: {}, + documents: {} + }; +}; +let documents = { + root: newDoc() +}; +let currentDocument = documents.root; +let startEndCount = 0; +let dividerCnt = 0; +const lineType = { + LINE: 0, + DOTTED_LINE: 1 +}; +const relationType = { + AGGREGATION: 0, + EXTENSION: 1, + COMPOSITION: 2, + DEPENDENCY: 3 +}; +const clone = (o) => JSON.parse(JSON.stringify(o)); +const setRootDoc = (o) => { + log.info("Setting root doc", o); + rootDoc = o; +}; +const getRootDoc = () => rootDoc; +const docTranslator = (parent, node, first) => { + if (node.stmt === STMT_RELATION) { + docTranslator(parent, node.state1, true); + docTranslator(parent, node.state2, false); + } else { + if (node.stmt === STMT_STATE) { + if (node.id === "[*]") { + node.id = first ? parent.id + "_start" : parent.id + "_end"; + node.start = first; + } else { + node.id = node.id.trim(); + } + } + if (node.doc) { + const doc = []; + let currentDoc = []; + let i; + for (i = 0; i < node.doc.length; i++) { + if (node.doc[i].type === DIVIDER_TYPE) { + const newNode = clone(node.doc[i]); + newNode.doc = clone(currentDoc); + doc.push(newNode); + currentDoc = []; + } else { + currentDoc.push(node.doc[i]); + } + } + if (doc.length > 0 && currentDoc.length > 0) { + const newNode = { + stmt: STMT_STATE, + id: generateId(), + type: "divider", + doc: clone(currentDoc) + }; + doc.push(clone(newNode)); + node.doc = doc; + } + node.doc.forEach((docNode) => docTranslator(node, docNode, true)); + } + } +}; +const getRootDocV2 = () => { + docTranslator({ id: "root" }, { id: "root", doc: rootDoc }, true); + return { id: "root", doc: rootDoc }; +}; +const extract = (_doc) => { + let doc; + if (_doc.doc) { + doc = _doc.doc; + } else { + doc = _doc; + } + log.info(doc); + clear(true); + log.info("Extract", doc); + doc.forEach((item) => { + switch (item.stmt) { + case STMT_STATE: + addState( + item.id.trim(), + item.type, + item.doc, + item.description, + item.note, + item.classes, + item.styles, + item.textStyles + ); + break; + case STMT_RELATION: + addRelation(item.state1, item.state2, item.description); + break; + case STMT_CLASSDEF: + addStyleClass(item.id.trim(), item.classes); + break; + case STMT_APPLYCLASS: + setCssClass(item.id.trim(), item.styleClass); + break; + } + }); +}; +const addState = function(id, type = DEFAULT_STATE_TYPE, doc = null, descr = null, note = null, classes2 = null, styles2 = null, textStyles = null) { + const trimmedId = id == null ? void 0 : id.trim(); + if (currentDocument.states[trimmedId] === void 0) { + log.info("Adding state ", trimmedId, descr); + currentDocument.states[trimmedId] = { + id: trimmedId, + descriptions: [], + type, + doc, + note, + classes: [], + styles: [], + textStyles: [] + }; + } else { + if (!currentDocument.states[trimmedId].doc) { + currentDocument.states[trimmedId].doc = doc; + } + if (!currentDocument.states[trimmedId].type) { + currentDocument.states[trimmedId].type = type; + } + } + if (descr) { + log.info("Setting state description", trimmedId, descr); + if (typeof descr === "string") { + addDescription(trimmedId, descr.trim()); + } + if (typeof descr === "object") { + descr.forEach((des) => addDescription(trimmedId, des.trim())); + } + } + if (note) { + currentDocument.states[trimmedId].note = note; + currentDocument.states[trimmedId].note.text = common.sanitizeText( + currentDocument.states[trimmedId].note.text, + getConfig() + ); + } + if (classes2) { + log.info("Setting state classes", trimmedId, classes2); + const classesList = typeof classes2 === "string" ? [classes2] : classes2; + classesList.forEach((cssClass) => setCssClass(trimmedId, cssClass.trim())); + } + if (styles2) { + log.info("Setting state styles", trimmedId, styles2); + const stylesList = typeof styles2 === "string" ? [styles2] : styles2; + stylesList.forEach((style) => setStyle(trimmedId, style.trim())); + } + if (textStyles) { + log.info("Setting state styles", trimmedId, styles2); + const textStylesList = typeof textStyles === "string" ? [textStyles] : textStyles; + textStylesList.forEach((textStyle) => setTextStyle(trimmedId, textStyle.trim())); + } +}; +const clear = function(saveCommon) { + documents = { + root: newDoc() + }; + currentDocument = documents.root; + startEndCount = 0; + classes = newClassesList(); + if (!saveCommon) { + clear$1(); + } +}; +const getState = function(id) { + return currentDocument.states[id]; +}; +const getStates = function() { + return currentDocument.states; +}; +const logDocuments = function() { + log.info("Documents = ", documents); +}; +const getRelations = function() { + return currentDocument.relations; +}; +function startIdIfNeeded(id = "") { + let fixedId = id; + if (id === START_NODE) { + startEndCount++; + fixedId = `${START_TYPE}${startEndCount}`; + } + return fixedId; +} +function startTypeIfNeeded(id = "", type = DEFAULT_STATE_TYPE) { + return id === START_NODE ? START_TYPE : type; +} +function endIdIfNeeded(id = "") { + let fixedId = id; + if (id === END_NODE) { + startEndCount++; + fixedId = `${END_TYPE}${startEndCount}`; + } + return fixedId; +} +function endTypeIfNeeded(id = "", type = DEFAULT_STATE_TYPE) { + return id === END_NODE ? END_TYPE : type; +} +function addRelationObjs(item1, item2, relationTitle) { + let id1 = startIdIfNeeded(item1.id.trim()); + let type1 = startTypeIfNeeded(item1.id.trim(), item1.type); + let id2 = startIdIfNeeded(item2.id.trim()); + let type2 = startTypeIfNeeded(item2.id.trim(), item2.type); + addState( + id1, + type1, + item1.doc, + item1.description, + item1.note, + item1.classes, + item1.styles, + item1.textStyles + ); + addState( + id2, + type2, + item2.doc, + item2.description, + item2.note, + item2.classes, + item2.styles, + item2.textStyles + ); + currentDocument.relations.push({ + id1, + id2, + relationTitle: common.sanitizeText(relationTitle, getConfig()) + }); +} +const addRelation = function(item1, item2, title) { + if (typeof item1 === "object") { + addRelationObjs(item1, item2, title); + } else { + const id1 = startIdIfNeeded(item1.trim()); + const type1 = startTypeIfNeeded(item1); + const id2 = endIdIfNeeded(item2.trim()); + const type2 = endTypeIfNeeded(item2); + addState(id1, type1); + addState(id2, type2); + currentDocument.relations.push({ + id1, + id2, + title: common.sanitizeText(title, getConfig()) + }); + } +}; +const addDescription = function(id, descr) { + const theState = currentDocument.states[id]; + const _descr = descr.startsWith(":") ? descr.replace(":", "").trim() : descr; + theState.descriptions.push(common.sanitizeText(_descr, getConfig())); +}; +const cleanupLabel = function(label) { + if (label.substring(0, 1) === ":") { + return label.substr(2).trim(); + } else { + return label.trim(); + } +}; +const getDividerId = () => { + dividerCnt++; + return "divider-id-" + dividerCnt; +}; +const addStyleClass = function(id, styleAttributes = "") { + if (classes[id] === void 0) { + classes[id] = { id, styles: [], textStyles: [] }; + } + const foundClass = classes[id]; + if (styleAttributes !== void 0 && styleAttributes !== null) { + styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => { + const fixedAttrib = attrib.replace(/([^;]*);/, "$1").trim(); + if (attrib.match(COLOR_KEYWORD)) { + const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL); + const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD); + foundClass.textStyles.push(newStyle2); + } + foundClass.styles.push(fixedAttrib); + }); + } +}; +const getClasses = function() { + return classes; +}; +const setCssClass = function(itemIds, cssClassName) { + itemIds.split(",").forEach(function(id) { + let foundState = getState(id); + if (foundState === void 0) { + const trimmedId = id.trim(); + addState(trimmedId); + foundState = getState(trimmedId); + } + foundState.classes.push(cssClassName); + }); +}; +const setStyle = function(itemId, styleText) { + const item = getState(itemId); + if (item !== void 0) { + item.textStyles.push(styleText); + } +}; +const setTextStyle = function(itemId, cssClassName) { + const item = getState(itemId); + if (item !== void 0) { + item.textStyles.push(cssClassName); + } +}; +const getDirection = () => direction; +const setDirection = (dir) => { + direction = dir; +}; +const trimColon = (str) => str && str[0] === ":" ? str.substr(1).trim() : str.trim(); +const db = { + getConfig: () => getConfig().state, + addState, + clear, + getState, + getStates, + getRelations, + getClasses, + getDirection, + addRelation, + getDividerId, + setDirection, + cleanupLabel, + lineType, + relationType, + logDocuments, + getRootDoc, + setRootDoc, + getRootDocV2, + extract, + trimColon, + getAccTitle, + setAccTitle, + getAccDescription, + setAccDescription, + addStyleClass, + setCssClass, + addDescription, + setDiagramTitle, + getDiagramTitle +}; +const getStyles = (options) => ` +defs #statediagram-barbEnd { + fill: ${options.transitionColor}; + stroke: ${options.transitionColor}; + } +g.stateGroup text { + fill: ${options.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${options.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${options.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; +} + +g.stateGroup line { + stroke: ${options.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${options.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${options.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${options.noteBorderColor}; + fill: ${options.noteBkgColor}; + + text { + fill: ${options.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${options.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${options.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel .label text { + fill: ${options.transitionLabelColor || options.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${options.transitionLabelColor || options.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${options.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${options.specialStateColor}; + stroke: ${options.specialStateColor}; +} + +.node .fork-join { + fill: ${options.specialStateColor}; + stroke: ${options.specialStateColor}; +} + +.node circle.state-end { + fill: ${options.innerEndBackground}; + stroke: ${options.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${options.compositeBackground || options.background}; + // stroke: ${options.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${options.stateBkg || options.mainBkg}; + stroke: ${options.stateBorder || options.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${options.mainBkg}; + stroke: ${options.stateBorder || options.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${options.lineColor}; +} + +.statediagram-cluster rect { + fill: ${options.compositeTitleBackground}; + stroke: ${options.stateBorder || options.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${options.stateLabelColor}; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${options.stateBorder || options.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${options.compositeBackground || options.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${options.altBackground ? options.altBackground : "#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${options.altBackground ? options.altBackground : "#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${options.noteBkgColor}; + stroke: ${options.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${options.noteBkgColor}; + stroke: ${options.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${options.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${options.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${options.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${options.lineColor}; + stroke: ${options.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.textColor}; +} +`; +const styles = getStyles; +export { + DEFAULT_STATE_TYPE as D, + STMT_RELATION as S, + DIVIDER_TYPE as a, + STMT_STATE as b, + DEFAULT_NESTED_DOC_DIR as c, + db as d, + parser$1 as p, + styles as s +}; diff --git a/assets/lib/mermaid/styles-11e81fdd.js b/assets/lib/mermaid/styles-11e81fdd.js new file mode 100644 index 000000000..432f3012d --- /dev/null +++ b/assets/lib/mermaid/styles-11e81fdd.js @@ -0,0 +1,1089 @@ +import { d as ut, c as F, G as Re, s as rt, g as at, a as lt, b as ct, C as ot, D as ht, f as v, E as At, l as pt, A as We, j as z } from "./mermaid-9f2aa176.js"; +var Ve = function() { + var e = function(x, u, a, h) { + for (a = a || {}, h = x.length; h--; a[x[h]] = u) + ; + return a; + }, i = [1, 17], r = [1, 18], l = [1, 19], o = [1, 39], A = [1, 40], g = [1, 25], D = [1, 23], B = [1, 24], _ = [1, 31], fe = [1, 32], de = [1, 33], Ee = [1, 34], Ce = [1, 35], me = [1, 36], be = [1, 26], ge = [1, 27], ke = [1, 28], Te = [1, 29], d = [1, 43], Fe = [1, 30], E = [1, 42], C = [1, 44], m = [1, 41], k = [1, 45], ye = [1, 9], c = [1, 8, 9], Y = [1, 56], j = [1, 57], Q = [1, 58], X = [1, 59], H = [1, 60], De = [1, 61], Be = [1, 62], W = [1, 8, 9, 39], Ge = [1, 74], M = [1, 8, 9, 12, 13, 21, 37, 39, 42, 59, 60, 61, 62, 63, 64, 65, 70, 72], q = [1, 8, 9, 12, 13, 19, 21, 37, 39, 42, 46, 59, 60, 61, 62, 63, 64, 65, 70, 72, 74, 80, 95, 97, 98], J = [13, 74, 80, 95, 97, 98], G = [13, 64, 65, 74, 80, 95, 97, 98], Ue = [13, 59, 60, 61, 62, 63, 74, 80, 95, 97, 98], _e = [1, 93], Z = [1, 110], $ = [1, 108], ee = [1, 102], te = [1, 103], se = [1, 104], ie = [1, 105], ne = [1, 106], ue = [1, 107], re = [1, 109], Se = [1, 8, 9, 37, 39, 42], ae = [1, 8, 9, 21], ze = [1, 8, 9, 78], S = [1, 8, 9, 21, 73, 74, 78, 80, 81, 82, 83, 84, 85], Ne = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, mermaidDoc: 4, statements: 5, graphConfig: 6, CLASS_DIAGRAM: 7, NEWLINE: 8, EOF: 9, statement: 10, classLabel: 11, SQS: 12, STR: 13, SQE: 14, namespaceName: 15, alphaNumToken: 16, className: 17, classLiteralName: 18, GENERICTYPE: 19, relationStatement: 20, LABEL: 21, namespaceStatement: 22, classStatement: 23, memberStatement: 24, annotationStatement: 25, clickStatement: 26, styleStatement: 27, cssClassStatement: 28, noteStatement: 29, direction: 30, acc_title: 31, acc_title_value: 32, acc_descr: 33, acc_descr_value: 34, acc_descr_multiline_value: 35, namespaceIdentifier: 36, STRUCT_START: 37, classStatements: 38, STRUCT_STOP: 39, NAMESPACE: 40, classIdentifier: 41, STYLE_SEPARATOR: 42, members: 43, CLASS: 44, ANNOTATION_START: 45, ANNOTATION_END: 46, MEMBER: 47, SEPARATOR: 48, relation: 49, NOTE_FOR: 50, noteText: 51, NOTE: 52, direction_tb: 53, direction_bt: 54, direction_rl: 55, direction_lr: 56, relationType: 57, lineType: 58, AGGREGATION: 59, EXTENSION: 60, COMPOSITION: 61, DEPENDENCY: 62, LOLLIPOP: 63, LINE: 64, DOTTED_LINE: 65, CALLBACK: 66, LINK: 67, LINK_TARGET: 68, CLICK: 69, CALLBACK_NAME: 70, CALLBACK_ARGS: 71, HREF: 72, STYLE: 73, ALPHA: 74, stylesOpt: 75, CSSCLASS: 76, style: 77, COMMA: 78, styleComponent: 79, NUM: 80, COLON: 81, UNIT: 82, SPACE: 83, BRKT: 84, PCT: 85, commentToken: 86, textToken: 87, graphCodeTokens: 88, textNoTagsToken: 89, TAGSTART: 90, TAGEND: 91, "==": 92, "--": 93, DEFAULT: 94, MINUS: 95, keywords: 96, UNICODE_TEXT: 97, BQUOTE_STR: 98, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 7: "CLASS_DIAGRAM", 8: "NEWLINE", 9: "EOF", 12: "SQS", 13: "STR", 14: "SQE", 19: "GENERICTYPE", 21: "LABEL", 31: "acc_title", 32: "acc_title_value", 33: "acc_descr", 34: "acc_descr_value", 35: "acc_descr_multiline_value", 37: "STRUCT_START", 39: "STRUCT_STOP", 40: "NAMESPACE", 42: "STYLE_SEPARATOR", 44: "CLASS", 45: "ANNOTATION_START", 46: "ANNOTATION_END", 47: "MEMBER", 48: "SEPARATOR", 50: "NOTE_FOR", 52: "NOTE", 53: "direction_tb", 54: "direction_bt", 55: "direction_rl", 56: "direction_lr", 59: "AGGREGATION", 60: "EXTENSION", 61: "COMPOSITION", 62: "DEPENDENCY", 63: "LOLLIPOP", 64: "LINE", 65: "DOTTED_LINE", 66: "CALLBACK", 67: "LINK", 68: "LINK_TARGET", 69: "CLICK", 70: "CALLBACK_NAME", 71: "CALLBACK_ARGS", 72: "HREF", 73: "STYLE", 74: "ALPHA", 76: "CSSCLASS", 78: "COMMA", 80: "NUM", 81: "COLON", 82: "UNIT", 83: "SPACE", 84: "BRKT", 85: "PCT", 88: "graphCodeTokens", 90: "TAGSTART", 91: "TAGEND", 92: "==", 93: "--", 94: "DEFAULT", 95: "MINUS", 96: "keywords", 97: "UNICODE_TEXT", 98: "BQUOTE_STR" }, + productions_: [0, [3, 1], [3, 1], [4, 1], [6, 4], [5, 1], [5, 2], [5, 3], [11, 3], [15, 1], [15, 2], [17, 1], [17, 1], [17, 2], [17, 2], [17, 2], [10, 1], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [22, 4], [22, 5], [36, 2], [38, 1], [38, 2], [38, 3], [23, 1], [23, 3], [23, 4], [23, 6], [41, 2], [41, 3], [25, 4], [43, 1], [43, 2], [24, 1], [24, 2], [24, 1], [24, 1], [20, 3], [20, 4], [20, 4], [20, 5], [29, 3], [29, 2], [30, 1], [30, 1], [30, 1], [30, 1], [49, 3], [49, 2], [49, 2], [49, 1], [57, 1], [57, 1], [57, 1], [57, 1], [57, 1], [58, 1], [58, 1], [26, 3], [26, 4], [26, 3], [26, 4], [26, 4], [26, 5], [26, 3], [26, 4], [26, 4], [26, 5], [26, 4], [26, 5], [26, 5], [26, 6], [27, 3], [28, 3], [75, 1], [75, 3], [77, 1], [77, 2], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [86, 1], [86, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [89, 1], [89, 1], [89, 1], [89, 1], [16, 1], [16, 1], [16, 1], [16, 1], [18, 1], [51, 1]], + performAction: function(u, a, h, n, f, t, U) { + var s = t.length - 1; + switch (f) { + case 8: + this.$ = t[s - 1]; + break; + case 9: + case 11: + case 12: + this.$ = t[s]; + break; + case 10: + case 13: + this.$ = t[s - 1] + t[s]; + break; + case 14: + case 15: + this.$ = t[s - 1] + "~" + t[s] + "~"; + break; + case 16: + n.addRelation(t[s]); + break; + case 17: + t[s - 1].title = n.cleanupLabel(t[s]), n.addRelation(t[s - 1]); + break; + case 27: + this.$ = t[s].trim(), n.setAccTitle(this.$); + break; + case 28: + case 29: + this.$ = t[s].trim(), n.setAccDescription(this.$); + break; + case 30: + n.addClassesToNamespace(t[s - 3], t[s - 1]); + break; + case 31: + n.addClassesToNamespace(t[s - 4], t[s - 1]); + break; + case 32: + this.$ = t[s], n.addNamespace(t[s]); + break; + case 33: + this.$ = [t[s]]; + break; + case 34: + this.$ = [t[s - 1]]; + break; + case 35: + t[s].unshift(t[s - 2]), this.$ = t[s]; + break; + case 37: + n.setCssClass(t[s - 2], t[s]); + break; + case 38: + n.addMembers(t[s - 3], t[s - 1]); + break; + case 39: + n.setCssClass(t[s - 5], t[s - 3]), n.addMembers(t[s - 5], t[s - 1]); + break; + case 40: + this.$ = t[s], n.addClass(t[s]); + break; + case 41: + this.$ = t[s - 1], n.addClass(t[s - 1]), n.setClassLabel(t[s - 1], t[s]); + break; + case 42: + n.addAnnotation(t[s], t[s - 2]); + break; + case 43: + this.$ = [t[s]]; + break; + case 44: + t[s].push(t[s - 1]), this.$ = t[s]; + break; + case 45: + break; + case 46: + n.addMember(t[s - 1], n.cleanupLabel(t[s])); + break; + case 47: + break; + case 48: + break; + case 49: + this.$ = { id1: t[s - 2], id2: t[s], relation: t[s - 1], relationTitle1: "none", relationTitle2: "none" }; + break; + case 50: + this.$ = { id1: t[s - 3], id2: t[s], relation: t[s - 1], relationTitle1: t[s - 2], relationTitle2: "none" }; + break; + case 51: + this.$ = { id1: t[s - 3], id2: t[s], relation: t[s - 2], relationTitle1: "none", relationTitle2: t[s - 1] }; + break; + case 52: + this.$ = { id1: t[s - 4], id2: t[s], relation: t[s - 2], relationTitle1: t[s - 3], relationTitle2: t[s - 1] }; + break; + case 53: + n.addNote(t[s], t[s - 1]); + break; + case 54: + n.addNote(t[s]); + break; + case 55: + n.setDirection("TB"); + break; + case 56: + n.setDirection("BT"); + break; + case 57: + n.setDirection("RL"); + break; + case 58: + n.setDirection("LR"); + break; + case 59: + this.$ = { type1: t[s - 2], type2: t[s], lineType: t[s - 1] }; + break; + case 60: + this.$ = { type1: "none", type2: t[s], lineType: t[s - 1] }; + break; + case 61: + this.$ = { type1: t[s - 1], type2: "none", lineType: t[s] }; + break; + case 62: + this.$ = { type1: "none", type2: "none", lineType: t[s] }; + break; + case 63: + this.$ = n.relationType.AGGREGATION; + break; + case 64: + this.$ = n.relationType.EXTENSION; + break; + case 65: + this.$ = n.relationType.COMPOSITION; + break; + case 66: + this.$ = n.relationType.DEPENDENCY; + break; + case 67: + this.$ = n.relationType.LOLLIPOP; + break; + case 68: + this.$ = n.lineType.LINE; + break; + case 69: + this.$ = n.lineType.DOTTED_LINE; + break; + case 70: + case 76: + this.$ = t[s - 2], n.setClickEvent(t[s - 1], t[s]); + break; + case 71: + case 77: + this.$ = t[s - 3], n.setClickEvent(t[s - 2], t[s - 1]), n.setTooltip(t[s - 2], t[s]); + break; + case 72: + this.$ = t[s - 2], n.setLink(t[s - 1], t[s]); + break; + case 73: + this.$ = t[s - 3], n.setLink(t[s - 2], t[s - 1], t[s]); + break; + case 74: + this.$ = t[s - 3], n.setLink(t[s - 2], t[s - 1]), n.setTooltip(t[s - 2], t[s]); + break; + case 75: + this.$ = t[s - 4], n.setLink(t[s - 3], t[s - 2], t[s]), n.setTooltip(t[s - 3], t[s - 1]); + break; + case 78: + this.$ = t[s - 3], n.setClickEvent(t[s - 2], t[s - 1], t[s]); + break; + case 79: + this.$ = t[s - 4], n.setClickEvent(t[s - 3], t[s - 2], t[s - 1]), n.setTooltip(t[s - 3], t[s]); + break; + case 80: + this.$ = t[s - 3], n.setLink(t[s - 2], t[s]); + break; + case 81: + this.$ = t[s - 4], n.setLink(t[s - 3], t[s - 1], t[s]); + break; + case 82: + this.$ = t[s - 4], n.setLink(t[s - 3], t[s - 1]), n.setTooltip(t[s - 3], t[s]); + break; + case 83: + this.$ = t[s - 5], n.setLink(t[s - 4], t[s - 2], t[s]), n.setTooltip(t[s - 4], t[s - 1]); + break; + case 84: + this.$ = t[s - 2], n.setCssStyle(t[s - 1], t[s]); + break; + case 85: + n.setCssClass(t[s - 1], t[s]); + break; + case 86: + this.$ = [t[s]]; + break; + case 87: + t[s - 2].push(t[s]), this.$ = t[s - 2]; + break; + case 89: + this.$ = t[s - 1] + t[s]; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: [1, 6], 10: 5, 16: 37, 17: 20, 18: 38, 20: 7, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 27: 13, 28: 14, 29: 15, 30: 16, 31: i, 33: r, 35: l, 36: 21, 40: o, 41: 22, 44: A, 45: g, 47: D, 48: B, 50: _, 52: fe, 53: de, 54: Ee, 55: Ce, 56: me, 66: be, 67: ge, 69: ke, 73: Te, 74: d, 76: Fe, 80: E, 95: C, 97: m, 98: k }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, e(ye, [2, 5], { 8: [1, 46] }), { 8: [1, 47] }, e(c, [2, 16], { 21: [1, 48] }), e(c, [2, 18]), e(c, [2, 19]), e(c, [2, 20]), e(c, [2, 21]), e(c, [2, 22]), e(c, [2, 23]), e(c, [2, 24]), e(c, [2, 25]), e(c, [2, 26]), { 32: [1, 49] }, { 34: [1, 50] }, e(c, [2, 29]), e(c, [2, 45], { 49: 51, 57: 54, 58: 55, 13: [1, 52], 21: [1, 53], 59: Y, 60: j, 61: Q, 62: X, 63: H, 64: De, 65: Be }), { 37: [1, 63] }, e(W, [2, 36], { 37: [1, 65], 42: [1, 64] }), e(c, [2, 47]), e(c, [2, 48]), { 16: 66, 74: d, 80: E, 95: C, 97: m }, { 16: 37, 17: 67, 18: 38, 74: d, 80: E, 95: C, 97: m, 98: k }, { 16: 37, 17: 68, 18: 38, 74: d, 80: E, 95: C, 97: m, 98: k }, { 16: 37, 17: 69, 18: 38, 74: d, 80: E, 95: C, 97: m, 98: k }, { 74: [1, 70] }, { 13: [1, 71] }, { 16: 37, 17: 72, 18: 38, 74: d, 80: E, 95: C, 97: m, 98: k }, { 13: Ge, 51: 73 }, e(c, [2, 55]), e(c, [2, 56]), e(c, [2, 57]), e(c, [2, 58]), e(M, [2, 11], { 16: 37, 18: 38, 17: 75, 19: [1, 76], 74: d, 80: E, 95: C, 97: m, 98: k }), e(M, [2, 12], { 19: [1, 77] }), { 15: 78, 16: 79, 74: d, 80: E, 95: C, 97: m }, { 16: 37, 17: 80, 18: 38, 74: d, 80: E, 95: C, 97: m, 98: k }, e(q, [2, 112]), e(q, [2, 113]), e(q, [2, 114]), e(q, [2, 115]), e([1, 8, 9, 12, 13, 19, 21, 37, 39, 42, 59, 60, 61, 62, 63, 64, 65, 70, 72], [2, 116]), e(ye, [2, 6], { 10: 5, 20: 7, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 27: 13, 28: 14, 29: 15, 30: 16, 17: 20, 36: 21, 41: 22, 16: 37, 18: 38, 5: 81, 31: i, 33: r, 35: l, 40: o, 44: A, 45: g, 47: D, 48: B, 50: _, 52: fe, 53: de, 54: Ee, 55: Ce, 56: me, 66: be, 67: ge, 69: ke, 73: Te, 74: d, 76: Fe, 80: E, 95: C, 97: m, 98: k }), { 5: 82, 10: 5, 16: 37, 17: 20, 18: 38, 20: 7, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 27: 13, 28: 14, 29: 15, 30: 16, 31: i, 33: r, 35: l, 36: 21, 40: o, 41: 22, 44: A, 45: g, 47: D, 48: B, 50: _, 52: fe, 53: de, 54: Ee, 55: Ce, 56: me, 66: be, 67: ge, 69: ke, 73: Te, 74: d, 76: Fe, 80: E, 95: C, 97: m, 98: k }, e(c, [2, 17]), e(c, [2, 27]), e(c, [2, 28]), { 13: [1, 84], 16: 37, 17: 83, 18: 38, 74: d, 80: E, 95: C, 97: m, 98: k }, { 49: 85, 57: 54, 58: 55, 59: Y, 60: j, 61: Q, 62: X, 63: H, 64: De, 65: Be }, e(c, [2, 46]), { 58: 86, 64: De, 65: Be }, e(J, [2, 62], { 57: 87, 59: Y, 60: j, 61: Q, 62: X, 63: H }), e(G, [2, 63]), e(G, [2, 64]), e(G, [2, 65]), e(G, [2, 66]), e(G, [2, 67]), e(Ue, [2, 68]), e(Ue, [2, 69]), { 8: [1, 89], 23: 90, 38: 88, 41: 22, 44: A }, { 16: 91, 74: d, 80: E, 95: C, 97: m }, { 43: 92, 47: _e }, { 46: [1, 94] }, { 13: [1, 95] }, { 13: [1, 96] }, { 70: [1, 97], 72: [1, 98] }, { 21: Z, 73: $, 74: ee, 75: 99, 77: 100, 79: 101, 80: te, 81: se, 82: ie, 83: ne, 84: ue, 85: re }, { 74: [1, 111] }, { 13: Ge, 51: 112 }, e(c, [2, 54]), e(c, [2, 117]), e(M, [2, 13]), e(M, [2, 14]), e(M, [2, 15]), { 37: [2, 32] }, { 15: 113, 16: 79, 37: [2, 9], 74: d, 80: E, 95: C, 97: m }, e(Se, [2, 40], { 11: 114, 12: [1, 115] }), e(ye, [2, 7]), { 9: [1, 116] }, e(ae, [2, 49]), { 16: 37, 17: 117, 18: 38, 74: d, 80: E, 95: C, 97: m, 98: k }, { 13: [1, 119], 16: 37, 17: 118, 18: 38, 74: d, 80: E, 95: C, 97: m, 98: k }, e(J, [2, 61], { 57: 120, 59: Y, 60: j, 61: Q, 62: X, 63: H }), e(J, [2, 60]), { 39: [1, 121] }, { 23: 90, 38: 122, 41: 22, 44: A }, { 8: [1, 123], 39: [2, 33] }, e(W, [2, 37], { 37: [1, 124] }), { 39: [1, 125] }, { 39: [2, 43], 43: 126, 47: _e }, { 16: 37, 17: 127, 18: 38, 74: d, 80: E, 95: C, 97: m, 98: k }, e(c, [2, 70], { 13: [1, 128] }), e(c, [2, 72], { 13: [1, 130], 68: [1, 129] }), e(c, [2, 76], { 13: [1, 131], 71: [1, 132] }), { 13: [1, 133] }, e(c, [2, 84], { 78: [1, 134] }), e(ze, [2, 86], { 79: 135, 21: Z, 73: $, 74: ee, 80: te, 81: se, 82: ie, 83: ne, 84: ue, 85: re }), e(S, [2, 88]), e(S, [2, 90]), e(S, [2, 91]), e(S, [2, 92]), e(S, [2, 93]), e(S, [2, 94]), e(S, [2, 95]), e(S, [2, 96]), e(S, [2, 97]), e(S, [2, 98]), e(c, [2, 85]), e(c, [2, 53]), { 37: [2, 10] }, e(Se, [2, 41]), { 13: [1, 136] }, { 1: [2, 4] }, e(ae, [2, 51]), e(ae, [2, 50]), { 16: 37, 17: 137, 18: 38, 74: d, 80: E, 95: C, 97: m, 98: k }, e(J, [2, 59]), e(c, [2, 30]), { 39: [1, 138] }, { 23: 90, 38: 139, 39: [2, 34], 41: 22, 44: A }, { 43: 140, 47: _e }, e(W, [2, 38]), { 39: [2, 44] }, e(c, [2, 42]), e(c, [2, 71]), e(c, [2, 73]), e(c, [2, 74], { 68: [1, 141] }), e(c, [2, 77]), e(c, [2, 78], { 13: [1, 142] }), e(c, [2, 80], { 13: [1, 144], 68: [1, 143] }), { 21: Z, 73: $, 74: ee, 77: 145, 79: 101, 80: te, 81: se, 82: ie, 83: ne, 84: ue, 85: re }, e(S, [2, 89]), { 14: [1, 146] }, e(ae, [2, 52]), e(c, [2, 31]), { 39: [2, 35] }, { 39: [1, 147] }, e(c, [2, 75]), e(c, [2, 79]), e(c, [2, 81]), e(c, [2, 82], { 68: [1, 148] }), e(ze, [2, 87], { 79: 135, 21: Z, 73: $, 74: ee, 80: te, 81: se, 82: ie, 83: ne, 84: ue, 85: re }), e(Se, [2, 8]), e(W, [2, 39]), e(c, [2, 83])], + defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 3], 78: [2, 32], 113: [2, 10], 116: [2, 4], 126: [2, 44], 139: [2, 35] }, + parseError: function(u, a) { + if (a.recoverable) + this.trace(u); + else { + var h = new Error(u); + throw h.hash = a, h; + } + }, + parse: function(u) { + var a = this, h = [0], n = [], f = [null], t = [], U = this.table, s = "", le = 0, Ke = 0, tt = 2, Ye = 1, st = t.slice.call(arguments, 1), b = Object.create(this.lexer), I = { yy: {} }; + for (var ve in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, ve) && (I.yy[ve] = this.yy[ve]); + b.setInput(u, I.yy), I.yy.lexer = b, I.yy.parser = this, typeof b.yylloc > "u" && (b.yylloc = {}); + var xe = b.yylloc; + t.push(xe); + var it = b.options && b.options.ranges; + typeof I.yy.parseError == "function" ? this.parseError = I.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function nt() { + var L; + return L = n.pop() || b.lex() || Ye, typeof L != "number" && (L instanceof Array && (n = L, L = n.pop()), L = a.symbols_[L] || L), L; + } + for (var T, R, y, Oe, P = {}, ce, N, je, oe; ; ) { + if (R = h[h.length - 1], this.defaultActions[R] ? y = this.defaultActions[R] : ((T === null || typeof T > "u") && (T = nt()), y = U[R] && U[R][T]), typeof y > "u" || !y.length || !y[0]) { + var Ie = ""; + oe = []; + for (ce in U[R]) + this.terminals_[ce] && ce > tt && oe.push("'" + this.terminals_[ce] + "'"); + b.showPosition ? Ie = "Parse error on line " + (le + 1) + `: +` + b.showPosition() + ` +Expecting ` + oe.join(", ") + ", got '" + (this.terminals_[T] || T) + "'" : Ie = "Parse error on line " + (le + 1) + ": Unexpected " + (T == Ye ? "end of input" : "'" + (this.terminals_[T] || T) + "'"), this.parseError(Ie, { + text: b.match, + token: this.terminals_[T] || T, + line: b.yylineno, + loc: xe, + expected: oe + }); + } + if (y[0] instanceof Array && y.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + R + ", token: " + T); + switch (y[0]) { + case 1: + h.push(T), f.push(b.yytext), t.push(b.yylloc), h.push(y[1]), T = null, Ke = b.yyleng, s = b.yytext, le = b.yylineno, xe = b.yylloc; + break; + case 2: + if (N = this.productions_[y[1]][1], P.$ = f[f.length - N], P._$ = { + first_line: t[t.length - (N || 1)].first_line, + last_line: t[t.length - 1].last_line, + first_column: t[t.length - (N || 1)].first_column, + last_column: t[t.length - 1].last_column + }, it && (P._$.range = [ + t[t.length - (N || 1)].range[0], + t[t.length - 1].range[1] + ]), Oe = this.performAction.apply(P, [ + s, + Ke, + le, + I.yy, + y[1], + f, + t + ].concat(st)), typeof Oe < "u") + return Oe; + N && (h = h.slice(0, -1 * N * 2), f = f.slice(0, -1 * N), t = t.slice(0, -1 * N)), h.push(this.productions_[y[1]][0]), f.push(P.$), t.push(P._$), je = U[h[h.length - 2]][h[h.length - 1]], h.push(je); + break; + case 3: + return !0; + } + } + return !0; + } + }, et = function() { + var x = { + EOF: 1, + parseError: function(a, h) { + if (this.yy.parser) + this.yy.parser.parseError(a, h); + else + throw new Error(a); + }, + // resets the lexer, sets new input + setInput: function(u, a) { + return this.yy = a || this.yy || {}, this._input = u, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var u = this._input[0]; + this.yytext += u, this.yyleng++, this.offset++, this.match += u, this.matched += u; + var a = u.match(/(?:\r\n?|\n).*/g); + return a ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), u; + }, + // unshifts one char (or a string) into the input + unput: function(u) { + var a = u.length, h = u.split(/(?:\r\n?|\n)/g); + this._input = u + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - a), this.offset -= a; + var n = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), h.length - 1 && (this.yylineno -= h.length - 1); + var f = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: h ? (h.length === n.length ? this.yylloc.first_column : 0) + n[n.length - h.length].length - h[0].length : this.yylloc.first_column - a + }, this.options.ranges && (this.yylloc.range = [f[0], f[0] + this.yyleng - a]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(u) { + this.unput(this.match.slice(u)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var u = this.matched.substr(0, this.matched.length - this.match.length); + return (u.length > 20 ? "..." : "") + u.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var u = this.match; + return u.length < 20 && (u += this._input.substr(0, 20 - u.length)), (u.substr(0, 20) + (u.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var u = this.pastInput(), a = new Array(u.length + 1).join("-"); + return u + this.upcomingInput() + ` +` + a + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(u, a) { + var h, n, f; + if (this.options.backtrack_lexer && (f = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (f.yylloc.range = this.yylloc.range.slice(0))), n = u[0].match(/(?:\r\n?|\n).*/g), n && (this.yylineno += n.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: n ? n[n.length - 1].length - n[n.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + u[0].length + }, this.yytext += u[0], this.match += u[0], this.matches = u, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(u[0].length), this.matched += u[0], h = this.performAction.call(this, this.yy, this, a, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), h) + return h; + if (this._backtrack) { + for (var t in f) + this[t] = f[t]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var u, a, h, n; + this._more || (this.yytext = "", this.match = ""); + for (var f = this._currentRules(), t = 0; t < f.length; t++) + if (h = this._input.match(this.rules[f[t]]), h && (!a || h[0].length > a[0].length)) { + if (a = h, n = t, this.options.backtrack_lexer) { + if (u = this.test_match(h, f[t]), u !== !1) + return u; + if (this._backtrack) { + a = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return a ? (u = this.test_match(a, f[n]), u !== !1 ? u : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var a = this.next(); + return a || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(a) { + this.conditionStack.push(a); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var a = this.conditionStack.length - 1; + return a > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(a) { + return a = this.conditionStack.length - 1 - Math.abs(a || 0), a >= 0 ? this.conditionStack[a] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(a) { + this.begin(a); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: {}, + performAction: function(a, h, n, f) { + switch (n) { + case 0: + return 53; + case 1: + return 54; + case 2: + return 55; + case 3: + return 56; + case 4: + break; + case 5: + break; + case 6: + return this.begin("acc_title"), 31; + case 7: + return this.popState(), "acc_title_value"; + case 8: + return this.begin("acc_descr"), 33; + case 9: + return this.popState(), "acc_descr_value"; + case 10: + this.begin("acc_descr_multiline"); + break; + case 11: + this.popState(); + break; + case 12: + return "acc_descr_multiline_value"; + case 13: + return 8; + case 14: + break; + case 15: + return 7; + case 16: + return 7; + case 17: + return "EDGE_STATE"; + case 18: + this.begin("callback_name"); + break; + case 19: + this.popState(); + break; + case 20: + this.popState(), this.begin("callback_args"); + break; + case 21: + return 70; + case 22: + this.popState(); + break; + case 23: + return 71; + case 24: + this.popState(); + break; + case 25: + return "STR"; + case 26: + this.begin("string"); + break; + case 27: + return 73; + case 28: + return this.begin("namespace"), 40; + case 29: + return this.popState(), 8; + case 30: + break; + case 31: + return this.begin("namespace-body"), 37; + case 32: + return this.popState(), 39; + case 33: + return "EOF_IN_STRUCT"; + case 34: + return 8; + case 35: + break; + case 36: + return "EDGE_STATE"; + case 37: + return this.begin("class"), 44; + case 38: + return this.popState(), 8; + case 39: + break; + case 40: + return this.popState(), this.popState(), 39; + case 41: + return this.begin("class-body"), 37; + case 42: + return this.popState(), 39; + case 43: + return "EOF_IN_STRUCT"; + case 44: + return "EDGE_STATE"; + case 45: + return "OPEN_IN_STRUCT"; + case 46: + break; + case 47: + return "MEMBER"; + case 48: + return 76; + case 49: + return 66; + case 50: + return 67; + case 51: + return 69; + case 52: + return 50; + case 53: + return 52; + case 54: + return 45; + case 55: + return 46; + case 56: + return 72; + case 57: + this.popState(); + break; + case 58: + return "GENERICTYPE"; + case 59: + this.begin("generic"); + break; + case 60: + this.popState(); + break; + case 61: + return "BQUOTE_STR"; + case 62: + this.begin("bqstring"); + break; + case 63: + return 68; + case 64: + return 68; + case 65: + return 68; + case 66: + return 68; + case 67: + return 60; + case 68: + return 60; + case 69: + return 62; + case 70: + return 62; + case 71: + return 61; + case 72: + return 59; + case 73: + return 63; + case 74: + return 64; + case 75: + return 65; + case 76: + return 21; + case 77: + return 42; + case 78: + return 95; + case 79: + return "DOT"; + case 80: + return "PLUS"; + case 81: + return 81; + case 82: + return 78; + case 83: + return 84; + case 84: + return 84; + case 85: + return 85; + case 86: + return "EQUALS"; + case 87: + return "EQUALS"; + case 88: + return 74; + case 89: + return 12; + case 90: + return 14; + case 91: + return "PUNCTUATION"; + case 92: + return 80; + case 93: + return 97; + case 94: + return 83; + case 95: + return 83; + case 96: + return 9; + } + }, + rules: [/^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:classDiagram-v2\b)/, /^(?:classDiagram\b)/, /^(?:\[\*\])/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:["])/, /^(?:[^"]*)/, /^(?:["])/, /^(?:style\b)/, /^(?:namespace\b)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:[{])/, /^(?:[}])/, /^(?:$)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:\[\*\])/, /^(?:class\b)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:[}])/, /^(?:[{])/, /^(?:[}])/, /^(?:$)/, /^(?:\[\*\])/, /^(?:[{])/, /^(?:[\n])/, /^(?:[^{}\n]*)/, /^(?:cssClass\b)/, /^(?:callback\b)/, /^(?:link\b)/, /^(?:click\b)/, /^(?:note for\b)/, /^(?:note\b)/, /^(?:<<)/, /^(?:>>)/, /^(?:href\b)/, /^(?:[~])/, /^(?:[^~]*)/, /^(?:~)/, /^(?:[`])/, /^(?:[^`]+)/, /^(?:[`])/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:\s*<\|)/, /^(?:\s*\|>)/, /^(?:\s*>)/, /^(?:\s*<)/, /^(?:\s*\*)/, /^(?:\s*o\b)/, /^(?:\s*\(\))/, /^(?:--)/, /^(?:\.\.)/, /^(?::{1}[^:\n;]+)/, /^(?::{3})/, /^(?:-)/, /^(?:\.)/, /^(?:\+)/, /^(?::)/, /^(?:,)/, /^(?:#)/, /^(?:#)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:\w+)/, /^(?:\[)/, /^(?:\])/, /^(?:[!"#$%&'*+,-.`?\\/])/, /^(?:[0-9]+)/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\s)/, /^(?:\s)/, /^(?:$)/], + conditions: { "namespace-body": { rules: [26, 32, 33, 34, 35, 36, 37, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], inclusive: !1 }, namespace: { rules: [26, 28, 29, 30, 31, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], inclusive: !1 }, "class-body": { rules: [26, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], inclusive: !1 }, class: { rules: [26, 38, 39, 40, 41, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], inclusive: !1 }, acc_descr_multiline: { rules: [11, 12, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], inclusive: !1 }, acc_descr: { rules: [9, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], inclusive: !1 }, acc_title: { rules: [7, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], inclusive: !1 }, callback_args: { rules: [22, 23, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], inclusive: !1 }, callback_name: { rules: [19, 20, 21, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], inclusive: !1 }, href: { rules: [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], inclusive: !1 }, struct: { rules: [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], inclusive: !1 }, generic: { rules: [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], inclusive: !1 }, bqstring: { rules: [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], inclusive: !1 }, string: { rules: [24, 25, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 26, 27, 28, 37, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], inclusive: !0 } } + }; + return x; + }(); + Ne.lexer = et; + function Le() { + this.yy = {}; + } + return Le.prototype = Ne, Ne.Parser = Le, new Le(); +}(); +Ve.parser = Ve; +const zt = Ve, Qe = ["#", "+", "~", "-", ""]; +class Xe { + constructor(i, r) { + this.memberType = r, this.visibility = "", this.classifier = ""; + const l = ut(i, F()); + this.parseMember(l); + } + getDisplayDetails() { + let i = this.visibility + Re(this.id); + this.memberType === "method" && (i += `(${Re(this.parameters.trim())})`, this.returnType && (i += " : " + Re(this.returnType))), i = i.trim(); + const r = this.parseClassifier(); + return { + displayText: i, + cssStyle: r + }; + } + parseMember(i) { + let r = ""; + if (this.memberType === "method") { + const l = /([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/, o = i.match(l); + if (o) { + const A = o[1] ? o[1].trim() : ""; + if (Qe.includes(A) && (this.visibility = A), this.id = o[2].trim(), this.parameters = o[3] ? o[3].trim() : "", r = o[4] ? o[4].trim() : "", this.returnType = o[5] ? o[5].trim() : "", r === "") { + const g = this.returnType.substring(this.returnType.length - 1); + g.match(/[$*]/) && (r = g, this.returnType = this.returnType.substring(0, this.returnType.length - 1)); + } + } + } else { + const l = i.length, o = i.substring(0, 1), A = i.substring(l - 1); + Qe.includes(o) && (this.visibility = o), A.match(/[$*]/) && (r = A), this.id = i.substring( + this.visibility === "" ? 0 : 1, + r === "" ? l : l - 1 + ); + } + this.classifier = r; + } + parseClassifier() { + switch (this.classifier) { + case "*": + return "font-style:italic;"; + case "$": + return "text-decoration:underline;"; + default: + return ""; + } + } +} +const pe = "classId-"; +let Pe = [], p = {}, he = [], He = 0, O = {}, we = 0, K = []; +const V = (e) => v.sanitizeText(e, F()), w = function(e) { + const i = v.sanitizeText(e, F()); + let r = "", l = i; + if (i.indexOf("~") > 0) { + const o = i.split("~"); + l = V(o[0]), r = V(o[1]); + } + return { className: l, type: r }; +}, ft = function(e, i) { + const r = v.sanitizeText(e, F()); + i && (i = V(i)); + const { className: l } = w(r); + p[l].label = i; +}, Ae = function(e) { + const i = v.sanitizeText(e, F()), { className: r, type: l } = w(i); + if (Object.hasOwn(p, r)) + return; + const o = v.sanitizeText(r, F()); + p[o] = { + id: o, + type: l, + label: o, + cssClasses: [], + methods: [], + members: [], + annotations: [], + styles: [], + domId: pe + o + "-" + He + }, He++; +}, qe = function(e) { + const i = v.sanitizeText(e, F()); + if (i in p) + return p[i].domId; + throw new Error("Class not found: " + i); +}, dt = function() { + Pe = [], p = {}, he = [], K = [], K.push(Ze), O = {}, we = 0, At(); +}, Et = function(e) { + return p[e]; +}, Ct = function() { + return p; +}, mt = function() { + return Pe; +}, bt = function() { + return he; +}, gt = function(e) { + pt.debug("Adding relation: " + JSON.stringify(e)), Ae(e.id1), Ae(e.id2), e.id1 = w(e.id1).className, e.id2 = w(e.id2).className, e.relationTitle1 = v.sanitizeText(e.relationTitle1.trim(), F()), e.relationTitle2 = v.sanitizeText(e.relationTitle2.trim(), F()), Pe.push(e); +}, kt = function(e, i) { + const r = w(e).className; + p[r].annotations.push(i); +}, Je = function(e, i) { + Ae(e); + const r = w(e).className, l = p[r]; + if (typeof i == "string") { + const o = i.trim(); + o.startsWith("<<") && o.endsWith(">>") ? l.annotations.push(V(o.substring(2, o.length - 2))) : o.indexOf(")") > 0 ? l.methods.push(new Xe(o, "method")) : o && l.members.push(new Xe(o, "attribute")); + } +}, Tt = function(e, i) { + Array.isArray(i) && (i.reverse(), i.forEach((r) => Je(e, r))); +}, Ft = function(e, i) { + const r = { + id: `note${he.length}`, + class: i, + text: e + }; + he.push(r); +}, yt = function(e) { + return e.startsWith(":") && (e = e.substring(1)), V(e.trim()); +}, Me = function(e, i) { + e.split(",").forEach(function(r) { + let l = r; + r[0].match(/\d/) && (l = pe + l), p[l] !== void 0 && p[l].cssClasses.push(i); + }); +}, Dt = function(e, i) { + e.split(",").forEach(function(r) { + i !== void 0 && (p[r].tooltip = V(i)); + }); +}, Bt = function(e, i) { + return i ? O[i].classes[e].tooltip : p[e].tooltip; +}, _t = function(e, i, r) { + const l = F(); + e.split(",").forEach(function(o) { + let A = o; + o[0].match(/\d/) && (A = pe + A), p[A] !== void 0 && (p[A].link = We.formatUrl(i, l), l.securityLevel === "sandbox" ? p[A].linkTarget = "_top" : typeof r == "string" ? p[A].linkTarget = V(r) : p[A].linkTarget = "_blank"); + }), Me(e, "clickable"); +}, St = function(e, i, r) { + e.split(",").forEach(function(l) { + Nt(l, i, r), p[l].haveCallback = !0; + }), Me(e, "clickable"); +}, Nt = function(e, i, r) { + const l = v.sanitizeText(e, F()); + if (F().securityLevel !== "loose" || i === void 0) + return; + const A = l; + if (p[A] !== void 0) { + const g = qe(A); + let D = []; + if (typeof r == "string") { + D = r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/); + for (let B = 0; B < D.length; B++) { + let _ = D[B].trim(); + _.charAt(0) === '"' && _.charAt(_.length - 1) === '"' && (_ = _.substr(1, _.length - 2)), D[B] = _; + } + } + D.length === 0 && D.push(g), K.push(function() { + const B = document.querySelector(`[id="${g}"]`); + B !== null && B.addEventListener( + "click", + function() { + We.runFunc(i, ...D); + }, + !1 + ); + }); + } +}, Lt = function(e) { + K.forEach(function(i) { + i(e); + }); +}, vt = { + LINE: 0, + DOTTED_LINE: 1 +}, xt = { + AGGREGATION: 0, + EXTENSION: 1, + COMPOSITION: 2, + DEPENDENCY: 3, + LOLLIPOP: 4 +}, Ze = function(e) { + let i = z(".mermaidTooltip"); + (i._groups || i)[0][0] === null && (i = z("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0)), z(e).select("svg").selectAll("g.node").on("mouseover", function() { + const o = z(this); + if (o.attr("title") === null) + return; + const g = this.getBoundingClientRect(); + i.transition().duration(200).style("opacity", ".9"), i.text(o.attr("title")).style("left", window.scrollX + g.left + (g.right - g.left) / 2 + "px").style("top", window.scrollY + g.top - 14 + document.body.scrollTop + "px"), i.html(i.html().replace(/<br\/>/g, "
")), o.classed("hover", !0); + }).on("mouseout", function() { + i.transition().duration(500).style("opacity", 0), z(this).classed("hover", !1); + }); +}; +K.push(Ze); +let $e = "TB"; +const Ot = () => $e, It = (e) => { + $e = e; +}, Rt = function(e) { + O[e] === void 0 && (O[e] = { + id: e, + classes: {}, + children: {}, + domId: pe + e + "-" + we + }, we++); +}, Vt = function(e) { + return O[e]; +}, wt = function() { + return O; +}, Pt = function(e, i) { + if (O[e] !== void 0) + for (const r of i) { + const { className: l } = w(r); + p[l].parent = e, O[e].classes[l] = p[l]; + } +}, Mt = function(e, i) { + const r = p[e]; + if (!(!i || !r)) + for (const l of i) + l.includes(",") ? r.styles.push(...l.split(",")) : r.styles.push(l); +}, Kt = { + setAccTitle: rt, + getAccTitle: at, + getAccDescription: lt, + setAccDescription: ct, + getConfig: () => F().class, + addClass: Ae, + bindFunctions: Lt, + clear: dt, + getClass: Et, + getClasses: Ct, + getNotes: bt, + addAnnotation: kt, + addNote: Ft, + getRelations: mt, + addRelation: gt, + getDirection: Ot, + setDirection: It, + addMember: Je, + addMembers: Tt, + cleanupLabel: yt, + lineType: vt, + relationType: xt, + setClickEvent: St, + setCssClass: Me, + setLink: _t, + getTooltip: Bt, + setTooltip: Dt, + lookUpDomId: qe, + setDiagramTitle: ot, + getDiagramTitle: ht, + setClassLabel: ft, + addNamespace: Rt, + addClassesToNamespace: Pt, + getNamespace: Vt, + getNamespaces: wt, + setCssStyle: Mt +}, Gt = (e) => `g.classGroup text { + fill: ${e.nodeBorder || e.classText}; + stroke: none; + font-family: ${e.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${e.classText}; +} +.edgeLabel .label rect { + fill: ${e.mainBkg}; +} +.label text { + fill: ${e.classText}; +} +.edgeLabel .label span { + background: ${e.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${e.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; +} + +g.classGroup line { + stroke: ${e.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${e.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${e.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${e.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${e.mainBkg} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${e.mainBkg} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; +} +`, Yt = Gt; +export { + Kt as d, + zt as p, + Yt as s +}; diff --git a/assets/lib/mermaid/styles-36a1a2e8.js b/assets/lib/mermaid/styles-36a1a2e8.js new file mode 100644 index 000000000..6210fed44 --- /dev/null +++ b/assets/lib/mermaid/styles-36a1a2e8.js @@ -0,0 +1,1483 @@ +import { d as sanitizeText$1, c as getConfig, G as parseGenericTypes, s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, C as setDiagramTitle, D as getDiagramTitle, f as common, E as clear$1, l as log, A as utils, j as d3select } from "./mermaid-dcacb631.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 17], $V1 = [1, 18], $V2 = [1, 19], $V3 = [1, 39], $V4 = [1, 40], $V5 = [1, 25], $V6 = [1, 23], $V7 = [1, 24], $V8 = [1, 31], $V9 = [1, 32], $Va = [1, 33], $Vb = [1, 34], $Vc = [1, 35], $Vd = [1, 36], $Ve = [1, 26], $Vf = [1, 27], $Vg = [1, 28], $Vh = [1, 29], $Vi = [1, 43], $Vj = [1, 30], $Vk = [1, 42], $Vl = [1, 44], $Vm = [1, 41], $Vn = [1, 45], $Vo = [1, 9], $Vp = [1, 8, 9], $Vq = [1, 56], $Vr = [1, 57], $Vs = [1, 58], $Vt = [1, 59], $Vu = [1, 60], $Vv = [1, 61], $Vw = [1, 62], $Vx = [1, 8, 9, 39], $Vy = [1, 74], $Vz = [1, 8, 9, 12, 13, 21, 37, 39, 42, 59, 60, 61, 62, 63, 64, 65, 70, 72], $VA = [1, 8, 9, 12, 13, 19, 21, 37, 39, 42, 46, 59, 60, 61, 62, 63, 64, 65, 70, 72, 74, 80, 95, 97, 98], $VB = [13, 74, 80, 95, 97, 98], $VC = [13, 64, 65, 74, 80, 95, 97, 98], $VD = [13, 59, 60, 61, 62, 63, 74, 80, 95, 97, 98], $VE = [1, 93], $VF = [1, 110], $VG = [1, 108], $VH = [1, 102], $VI = [1, 103], $VJ = [1, 104], $VK = [1, 105], $VL = [1, 106], $VM = [1, 107], $VN = [1, 109], $VO = [1, 8, 9, 37, 39, 42], $VP = [1, 8, 9, 21], $VQ = [1, 8, 9, 78], $VR = [1, 8, 9, 21, 73, 74, 78, 80, 81, 82, 83, 84, 85]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "statements": 5, "graphConfig": 6, "CLASS_DIAGRAM": 7, "NEWLINE": 8, "EOF": 9, "statement": 10, "classLabel": 11, "SQS": 12, "STR": 13, "SQE": 14, "namespaceName": 15, "alphaNumToken": 16, "className": 17, "classLiteralName": 18, "GENERICTYPE": 19, "relationStatement": 20, "LABEL": 21, "namespaceStatement": 22, "classStatement": 23, "memberStatement": 24, "annotationStatement": 25, "clickStatement": 26, "styleStatement": 27, "cssClassStatement": 28, "noteStatement": 29, "direction": 30, "acc_title": 31, "acc_title_value": 32, "acc_descr": 33, "acc_descr_value": 34, "acc_descr_multiline_value": 35, "namespaceIdentifier": 36, "STRUCT_START": 37, "classStatements": 38, "STRUCT_STOP": 39, "NAMESPACE": 40, "classIdentifier": 41, "STYLE_SEPARATOR": 42, "members": 43, "CLASS": 44, "ANNOTATION_START": 45, "ANNOTATION_END": 46, "MEMBER": 47, "SEPARATOR": 48, "relation": 49, "NOTE_FOR": 50, "noteText": 51, "NOTE": 52, "direction_tb": 53, "direction_bt": 54, "direction_rl": 55, "direction_lr": 56, "relationType": 57, "lineType": 58, "AGGREGATION": 59, "EXTENSION": 60, "COMPOSITION": 61, "DEPENDENCY": 62, "LOLLIPOP": 63, "LINE": 64, "DOTTED_LINE": 65, "CALLBACK": 66, "LINK": 67, "LINK_TARGET": 68, "CLICK": 69, "CALLBACK_NAME": 70, "CALLBACK_ARGS": 71, "HREF": 72, "STYLE": 73, "ALPHA": 74, "stylesOpt": 75, "CSSCLASS": 76, "style": 77, "COMMA": 78, "styleComponent": 79, "NUM": 80, "COLON": 81, "UNIT": 82, "SPACE": 83, "BRKT": 84, "PCT": 85, "commentToken": 86, "textToken": 87, "graphCodeTokens": 88, "textNoTagsToken": 89, "TAGSTART": 90, "TAGEND": 91, "==": 92, "--": 93, "DEFAULT": 94, "MINUS": 95, "keywords": 96, "UNICODE_TEXT": 97, "BQUOTE_STR": 98, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 7: "CLASS_DIAGRAM", 8: "NEWLINE", 9: "EOF", 12: "SQS", 13: "STR", 14: "SQE", 19: "GENERICTYPE", 21: "LABEL", 31: "acc_title", 32: "acc_title_value", 33: "acc_descr", 34: "acc_descr_value", 35: "acc_descr_multiline_value", 37: "STRUCT_START", 39: "STRUCT_STOP", 40: "NAMESPACE", 42: "STYLE_SEPARATOR", 44: "CLASS", 45: "ANNOTATION_START", 46: "ANNOTATION_END", 47: "MEMBER", 48: "SEPARATOR", 50: "NOTE_FOR", 52: "NOTE", 53: "direction_tb", 54: "direction_bt", 55: "direction_rl", 56: "direction_lr", 59: "AGGREGATION", 60: "EXTENSION", 61: "COMPOSITION", 62: "DEPENDENCY", 63: "LOLLIPOP", 64: "LINE", 65: "DOTTED_LINE", 66: "CALLBACK", 67: "LINK", 68: "LINK_TARGET", 69: "CLICK", 70: "CALLBACK_NAME", 71: "CALLBACK_ARGS", 72: "HREF", 73: "STYLE", 74: "ALPHA", 76: "CSSCLASS", 78: "COMMA", 80: "NUM", 81: "COLON", 82: "UNIT", 83: "SPACE", 84: "BRKT", 85: "PCT", 88: "graphCodeTokens", 90: "TAGSTART", 91: "TAGEND", 92: "==", 93: "--", 94: "DEFAULT", 95: "MINUS", 96: "keywords", 97: "UNICODE_TEXT", 98: "BQUOTE_STR" }, + productions_: [0, [3, 1], [3, 1], [4, 1], [6, 4], [5, 1], [5, 2], [5, 3], [11, 3], [15, 1], [15, 2], [17, 1], [17, 1], [17, 2], [17, 2], [17, 2], [10, 1], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [22, 4], [22, 5], [36, 2], [38, 1], [38, 2], [38, 3], [23, 1], [23, 3], [23, 4], [23, 6], [41, 2], [41, 3], [25, 4], [43, 1], [43, 2], [24, 1], [24, 2], [24, 1], [24, 1], [20, 3], [20, 4], [20, 4], [20, 5], [29, 3], [29, 2], [30, 1], [30, 1], [30, 1], [30, 1], [49, 3], [49, 2], [49, 2], [49, 1], [57, 1], [57, 1], [57, 1], [57, 1], [57, 1], [58, 1], [58, 1], [26, 3], [26, 4], [26, 3], [26, 4], [26, 4], [26, 5], [26, 3], [26, 4], [26, 4], [26, 5], [26, 4], [26, 5], [26, 5], [26, 6], [27, 3], [28, 3], [75, 1], [75, 3], [77, 1], [77, 2], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [86, 1], [86, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [89, 1], [89, 1], [89, 1], [89, 1], [16, 1], [16, 1], [16, 1], [16, 1], [18, 1], [51, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 8: + this.$ = $$[$0 - 1]; + break; + case 9: + case 11: + case 12: + this.$ = $$[$0]; + break; + case 10: + case 13: + this.$ = $$[$0 - 1] + $$[$0]; + break; + case 14: + case 15: + this.$ = $$[$0 - 1] + "~" + $$[$0] + "~"; + break; + case 16: + yy.addRelation($$[$0]); + break; + case 17: + $$[$0 - 1].title = yy.cleanupLabel($$[$0]); + yy.addRelation($$[$0 - 1]); + break; + case 27: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 28: + case 29: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 30: + yy.addClassesToNamespace($$[$0 - 3], $$[$0 - 1]); + break; + case 31: + yy.addClassesToNamespace($$[$0 - 4], $$[$0 - 1]); + break; + case 32: + this.$ = $$[$0]; + yy.addNamespace($$[$0]); + break; + case 33: + this.$ = [$$[$0]]; + break; + case 34: + this.$ = [$$[$0 - 1]]; + break; + case 35: + $$[$0].unshift($$[$0 - 2]); + this.$ = $$[$0]; + break; + case 37: + yy.setCssClass($$[$0 - 2], $$[$0]); + break; + case 38: + yy.addMembers($$[$0 - 3], $$[$0 - 1]); + break; + case 39: + yy.setCssClass($$[$0 - 5], $$[$0 - 3]); + yy.addMembers($$[$0 - 5], $$[$0 - 1]); + break; + case 40: + this.$ = $$[$0]; + yy.addClass($$[$0]); + break; + case 41: + this.$ = $$[$0 - 1]; + yy.addClass($$[$0 - 1]); + yy.setClassLabel($$[$0 - 1], $$[$0]); + break; + case 42: + yy.addAnnotation($$[$0], $$[$0 - 2]); + break; + case 43: + this.$ = [$$[$0]]; + break; + case 44: + $$[$0].push($$[$0 - 1]); + this.$ = $$[$0]; + break; + case 45: + break; + case 46: + yy.addMember($$[$0 - 1], yy.cleanupLabel($$[$0])); + break; + case 47: + break; + case 48: + break; + case 49: + this.$ = { "id1": $$[$0 - 2], "id2": $$[$0], relation: $$[$0 - 1], relationTitle1: "none", relationTitle2: "none" }; + break; + case 50: + this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 1], relationTitle1: $$[$0 - 2], relationTitle2: "none" }; + break; + case 51: + this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: "none", relationTitle2: $$[$0 - 1] }; + break; + case 52: + this.$ = { id1: $$[$0 - 4], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: $$[$0 - 3], relationTitle2: $$[$0 - 1] }; + break; + case 53: + yy.addNote($$[$0], $$[$0 - 1]); + break; + case 54: + yy.addNote($$[$0]); + break; + case 55: + yy.setDirection("TB"); + break; + case 56: + yy.setDirection("BT"); + break; + case 57: + yy.setDirection("RL"); + break; + case 58: + yy.setDirection("LR"); + break; + case 59: + this.$ = { type1: $$[$0 - 2], type2: $$[$0], lineType: $$[$0 - 1] }; + break; + case 60: + this.$ = { type1: "none", type2: $$[$0], lineType: $$[$0 - 1] }; + break; + case 61: + this.$ = { type1: $$[$0 - 1], type2: "none", lineType: $$[$0] }; + break; + case 62: + this.$ = { type1: "none", type2: "none", lineType: $$[$0] }; + break; + case 63: + this.$ = yy.relationType.AGGREGATION; + break; + case 64: + this.$ = yy.relationType.EXTENSION; + break; + case 65: + this.$ = yy.relationType.COMPOSITION; + break; + case 66: + this.$ = yy.relationType.DEPENDENCY; + break; + case 67: + this.$ = yy.relationType.LOLLIPOP; + break; + case 68: + this.$ = yy.lineType.LINE; + break; + case 69: + this.$ = yy.lineType.DOTTED_LINE; + break; + case 70: + case 76: + this.$ = $$[$0 - 2]; + yy.setClickEvent($$[$0 - 1], $$[$0]); + break; + case 71: + case 77: + this.$ = $$[$0 - 3]; + yy.setClickEvent($$[$0 - 2], $$[$0 - 1]); + yy.setTooltip($$[$0 - 2], $$[$0]); + break; + case 72: + this.$ = $$[$0 - 2]; + yy.setLink($$[$0 - 1], $$[$0]); + break; + case 73: + this.$ = $$[$0 - 3]; + yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]); + break; + case 74: + this.$ = $$[$0 - 3]; + yy.setLink($$[$0 - 2], $$[$0 - 1]); + yy.setTooltip($$[$0 - 2], $$[$0]); + break; + case 75: + this.$ = $$[$0 - 4]; + yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]); + yy.setTooltip($$[$0 - 3], $$[$0 - 1]); + break; + case 78: + this.$ = $$[$0 - 3]; + yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]); + break; + case 79: + this.$ = $$[$0 - 4]; + yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]); + yy.setTooltip($$[$0 - 3], $$[$0]); + break; + case 80: + this.$ = $$[$0 - 3]; + yy.setLink($$[$0 - 2], $$[$0]); + break; + case 81: + this.$ = $$[$0 - 4]; + yy.setLink($$[$0 - 3], $$[$0 - 1], $$[$0]); + break; + case 82: + this.$ = $$[$0 - 4]; + yy.setLink($$[$0 - 3], $$[$0 - 1]); + yy.setTooltip($$[$0 - 3], $$[$0]); + break; + case 83: + this.$ = $$[$0 - 5]; + yy.setLink($$[$0 - 4], $$[$0 - 2], $$[$0]); + yy.setTooltip($$[$0 - 4], $$[$0 - 1]); + break; + case 84: + this.$ = $$[$0 - 2]; + yy.setCssStyle($$[$0 - 1], $$[$0]); + break; + case 85: + yy.setCssClass($$[$0 - 1], $$[$0]); + break; + case 86: + this.$ = [$$[$0]]; + break; + case 87: + $$[$0 - 2].push($$[$0]); + this.$ = $$[$0 - 2]; + break; + case 89: + this.$ = $$[$0 - 1] + $$[$0]; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: [1, 6], 10: 5, 16: 37, 17: 20, 18: 38, 20: 7, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 27: 13, 28: 14, 29: 15, 30: 16, 31: $V0, 33: $V1, 35: $V2, 36: 21, 40: $V3, 41: 22, 44: $V4, 45: $V5, 47: $V6, 48: $V7, 50: $V8, 52: $V9, 53: $Va, 54: $Vb, 55: $Vc, 56: $Vd, 66: $Ve, 67: $Vf, 69: $Vg, 73: $Vh, 74: $Vi, 76: $Vj, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, o($Vo, [2, 5], { 8: [1, 46] }), { 8: [1, 47] }, o($Vp, [2, 16], { 21: [1, 48] }), o($Vp, [2, 18]), o($Vp, [2, 19]), o($Vp, [2, 20]), o($Vp, [2, 21]), o($Vp, [2, 22]), o($Vp, [2, 23]), o($Vp, [2, 24]), o($Vp, [2, 25]), o($Vp, [2, 26]), { 32: [1, 49] }, { 34: [1, 50] }, o($Vp, [2, 29]), o($Vp, [2, 45], { 49: 51, 57: 54, 58: 55, 13: [1, 52], 21: [1, 53], 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu, 64: $Vv, 65: $Vw }), { 37: [1, 63] }, o($Vx, [2, 36], { 37: [1, 65], 42: [1, 64] }), o($Vp, [2, 47]), o($Vp, [2, 48]), { 16: 66, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, { 16: 37, 17: 67, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 16: 37, 17: 68, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 16: 37, 17: 69, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 74: [1, 70] }, { 13: [1, 71] }, { 16: 37, 17: 72, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 13: $Vy, 51: 73 }, o($Vp, [2, 55]), o($Vp, [2, 56]), o($Vp, [2, 57]), o($Vp, [2, 58]), o($Vz, [2, 11], { 16: 37, 18: 38, 17: 75, 19: [1, 76], 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }), o($Vz, [2, 12], { 19: [1, 77] }), { 15: 78, 16: 79, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, { 16: 37, 17: 80, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($VA, [2, 112]), o($VA, [2, 113]), o($VA, [2, 114]), o($VA, [2, 115]), o([1, 8, 9, 12, 13, 19, 21, 37, 39, 42, 59, 60, 61, 62, 63, 64, 65, 70, 72], [2, 116]), o($Vo, [2, 6], { 10: 5, 20: 7, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 27: 13, 28: 14, 29: 15, 30: 16, 17: 20, 36: 21, 41: 22, 16: 37, 18: 38, 5: 81, 31: $V0, 33: $V1, 35: $V2, 40: $V3, 44: $V4, 45: $V5, 47: $V6, 48: $V7, 50: $V8, 52: $V9, 53: $Va, 54: $Vb, 55: $Vc, 56: $Vd, 66: $Ve, 67: $Vf, 69: $Vg, 73: $Vh, 74: $Vi, 76: $Vj, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }), { 5: 82, 10: 5, 16: 37, 17: 20, 18: 38, 20: 7, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 27: 13, 28: 14, 29: 15, 30: 16, 31: $V0, 33: $V1, 35: $V2, 36: 21, 40: $V3, 41: 22, 44: $V4, 45: $V5, 47: $V6, 48: $V7, 50: $V8, 52: $V9, 53: $Va, 54: $Vb, 55: $Vc, 56: $Vd, 66: $Ve, 67: $Vf, 69: $Vg, 73: $Vh, 74: $Vi, 76: $Vj, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($Vp, [2, 17]), o($Vp, [2, 27]), o($Vp, [2, 28]), { 13: [1, 84], 16: 37, 17: 83, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 49: 85, 57: 54, 58: 55, 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu, 64: $Vv, 65: $Vw }, o($Vp, [2, 46]), { 58: 86, 64: $Vv, 65: $Vw }, o($VB, [2, 62], { 57: 87, 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu }), o($VC, [2, 63]), o($VC, [2, 64]), o($VC, [2, 65]), o($VC, [2, 66]), o($VC, [2, 67]), o($VD, [2, 68]), o($VD, [2, 69]), { 8: [1, 89], 23: 90, 38: 88, 41: 22, 44: $V4 }, { 16: 91, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, { 43: 92, 47: $VE }, { 46: [1, 94] }, { 13: [1, 95] }, { 13: [1, 96] }, { 70: [1, 97], 72: [1, 98] }, { 21: $VF, 73: $VG, 74: $VH, 75: 99, 77: 100, 79: 101, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }, { 74: [1, 111] }, { 13: $Vy, 51: 112 }, o($Vp, [2, 54]), o($Vp, [2, 117]), o($Vz, [2, 13]), o($Vz, [2, 14]), o($Vz, [2, 15]), { 37: [2, 32] }, { 15: 113, 16: 79, 37: [2, 9], 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, o($VO, [2, 40], { 11: 114, 12: [1, 115] }), o($Vo, [2, 7]), { 9: [1, 116] }, o($VP, [2, 49]), { 16: 37, 17: 117, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 13: [1, 119], 16: 37, 17: 118, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($VB, [2, 61], { 57: 120, 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu }), o($VB, [2, 60]), { 39: [1, 121] }, { 23: 90, 38: 122, 41: 22, 44: $V4 }, { 8: [1, 123], 39: [2, 33] }, o($Vx, [2, 37], { 37: [1, 124] }), { 39: [1, 125] }, { 39: [2, 43], 43: 126, 47: $VE }, { 16: 37, 17: 127, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($Vp, [2, 70], { 13: [1, 128] }), o($Vp, [2, 72], { 13: [1, 130], 68: [1, 129] }), o($Vp, [2, 76], { 13: [1, 131], 71: [1, 132] }), { 13: [1, 133] }, o($Vp, [2, 84], { 78: [1, 134] }), o($VQ, [2, 86], { 79: 135, 21: $VF, 73: $VG, 74: $VH, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }), o($VR, [2, 88]), o($VR, [2, 90]), o($VR, [2, 91]), o($VR, [2, 92]), o($VR, [2, 93]), o($VR, [2, 94]), o($VR, [2, 95]), o($VR, [2, 96]), o($VR, [2, 97]), o($VR, [2, 98]), o($Vp, [2, 85]), o($Vp, [2, 53]), { 37: [2, 10] }, o($VO, [2, 41]), { 13: [1, 136] }, { 1: [2, 4] }, o($VP, [2, 51]), o($VP, [2, 50]), { 16: 37, 17: 137, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($VB, [2, 59]), o($Vp, [2, 30]), { 39: [1, 138] }, { 23: 90, 38: 139, 39: [2, 34], 41: 22, 44: $V4 }, { 43: 140, 47: $VE }, o($Vx, [2, 38]), { 39: [2, 44] }, o($Vp, [2, 42]), o($Vp, [2, 71]), o($Vp, [2, 73]), o($Vp, [2, 74], { 68: [1, 141] }), o($Vp, [2, 77]), o($Vp, [2, 78], { 13: [1, 142] }), o($Vp, [2, 80], { 13: [1, 144], 68: [1, 143] }), { 21: $VF, 73: $VG, 74: $VH, 77: 145, 79: 101, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }, o($VR, [2, 89]), { 14: [1, 146] }, o($VP, [2, 52]), o($Vp, [2, 31]), { 39: [2, 35] }, { 39: [1, 147] }, o($Vp, [2, 75]), o($Vp, [2, 79]), o($Vp, [2, 81]), o($Vp, [2, 82], { 68: [1, 148] }), o($VQ, [2, 87], { 79: 135, 21: $VF, 73: $VG, 74: $VH, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }), o($VO, [2, 8]), o($Vx, [2, 39]), o($Vp, [2, 83])], + defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 3], 78: [2, 32], 113: [2, 10], 116: [2, 4], 126: [2, 44], 139: [2, 35] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: {}, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + return 53; + case 1: + return 54; + case 2: + return 55; + case 3: + return 56; + case 4: + break; + case 5: + break; + case 6: + this.begin("acc_title"); + return 31; + case 7: + this.popState(); + return "acc_title_value"; + case 8: + this.begin("acc_descr"); + return 33; + case 9: + this.popState(); + return "acc_descr_value"; + case 10: + this.begin("acc_descr_multiline"); + break; + case 11: + this.popState(); + break; + case 12: + return "acc_descr_multiline_value"; + case 13: + return 8; + case 14: + break; + case 15: + return 7; + case 16: + return 7; + case 17: + return "EDGE_STATE"; + case 18: + this.begin("callback_name"); + break; + case 19: + this.popState(); + break; + case 20: + this.popState(); + this.begin("callback_args"); + break; + case 21: + return 70; + case 22: + this.popState(); + break; + case 23: + return 71; + case 24: + this.popState(); + break; + case 25: + return "STR"; + case 26: + this.begin("string"); + break; + case 27: + return 73; + case 28: + this.begin("namespace"); + return 40; + case 29: + this.popState(); + return 8; + case 30: + break; + case 31: + this.begin("namespace-body"); + return 37; + case 32: + this.popState(); + return 39; + case 33: + return "EOF_IN_STRUCT"; + case 34: + return 8; + case 35: + break; + case 36: + return "EDGE_STATE"; + case 37: + this.begin("class"); + return 44; + case 38: + this.popState(); + return 8; + case 39: + break; + case 40: + this.popState(); + this.popState(); + return 39; + case 41: + this.begin("class-body"); + return 37; + case 42: + this.popState(); + return 39; + case 43: + return "EOF_IN_STRUCT"; + case 44: + return "EDGE_STATE"; + case 45: + return "OPEN_IN_STRUCT"; + case 46: + break; + case 47: + return "MEMBER"; + case 48: + return 76; + case 49: + return 66; + case 50: + return 67; + case 51: + return 69; + case 52: + return 50; + case 53: + return 52; + case 54: + return 45; + case 55: + return 46; + case 56: + return 72; + case 57: + this.popState(); + break; + case 58: + return "GENERICTYPE"; + case 59: + this.begin("generic"); + break; + case 60: + this.popState(); + break; + case 61: + return "BQUOTE_STR"; + case 62: + this.begin("bqstring"); + break; + case 63: + return 68; + case 64: + return 68; + case 65: + return 68; + case 66: + return 68; + case 67: + return 60; + case 68: + return 60; + case 69: + return 62; + case 70: + return 62; + case 71: + return 61; + case 72: + return 59; + case 73: + return 63; + case 74: + return 64; + case 75: + return 65; + case 76: + return 21; + case 77: + return 42; + case 78: + return 95; + case 79: + return "DOT"; + case 80: + return "PLUS"; + case 81: + return 81; + case 82: + return 78; + case 83: + return 84; + case 84: + return 84; + case 85: + return 85; + case 86: + return "EQUALS"; + case 87: + return "EQUALS"; + case 88: + return 74; + case 89: + return 12; + case 90: + return 14; + case 91: + return "PUNCTUATION"; + case 92: + return 80; + case 93: + return 97; + case 94: + return 83; + case 95: + return 83; + case 96: + return 9; + } + }, + rules: [/^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:classDiagram-v2\b)/, /^(?:classDiagram\b)/, /^(?:\[\*\])/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:["])/, /^(?:[^"]*)/, /^(?:["])/, /^(?:style\b)/, /^(?:namespace\b)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:[{])/, /^(?:[}])/, /^(?:$)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:\[\*\])/, /^(?:class\b)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:[}])/, /^(?:[{])/, /^(?:[}])/, /^(?:$)/, /^(?:\[\*\])/, /^(?:[{])/, /^(?:[\n])/, /^(?:[^{}\n]*)/, /^(?:cssClass\b)/, /^(?:callback\b)/, /^(?:link\b)/, /^(?:click\b)/, /^(?:note for\b)/, /^(?:note\b)/, /^(?:<<)/, /^(?:>>)/, /^(?:href\b)/, /^(?:[~])/, /^(?:[^~]*)/, /^(?:~)/, /^(?:[`])/, /^(?:[^`]+)/, /^(?:[`])/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:\s*<\|)/, /^(?:\s*\|>)/, /^(?:\s*>)/, /^(?:\s*<)/, /^(?:\s*\*)/, /^(?:\s*o\b)/, /^(?:\s*\(\))/, /^(?:--)/, /^(?:\.\.)/, /^(?::{1}[^:\n;]+)/, /^(?::{3})/, /^(?:-)/, /^(?:\.)/, /^(?:\+)/, /^(?::)/, /^(?:,)/, /^(?:#)/, /^(?:#)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:\w+)/, /^(?:\[)/, /^(?:\])/, /^(?:[!"#$%&'*+,-.`?\\/])/, /^(?:[0-9]+)/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\s)/, /^(?:\s)/, /^(?:$)/], + conditions: { "namespace-body": { "rules": [26, 32, 33, 34, 35, 36, 37, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "namespace": { "rules": [26, 28, 29, 30, 31, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "class-body": { "rules": [26, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "class": { "rules": [26, 38, 39, 40, 41, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "acc_descr_multiline": { "rules": [11, 12, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "acc_descr": { "rules": [9, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "acc_title": { "rules": [7, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "callback_args": { "rules": [22, 23, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "callback_name": { "rules": [19, 20, 21, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "href": { "rules": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "struct": { "rules": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "generic": { "rules": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "bqstring": { "rules": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "string": { "rules": [24, 25, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 26, 27, 28, 37, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +const visibilityValues = ["#", "+", "~", "-", ""]; +class ClassMember { + constructor(input, memberType) { + this.memberType = memberType; + this.visibility = ""; + this.classifier = ""; + const sanitizedInput = sanitizeText$1(input, getConfig()); + this.parseMember(sanitizedInput); + } + getDisplayDetails() { + let displayText = this.visibility + parseGenericTypes(this.id); + if (this.memberType === "method") { + displayText += `(${parseGenericTypes(this.parameters.trim())})`; + if (this.returnType) { + displayText += " : " + parseGenericTypes(this.returnType); + } + } + displayText = displayText.trim(); + const cssStyle = this.parseClassifier(); + return { + displayText, + cssStyle + }; + } + parseMember(input) { + let potentialClassifier = ""; + if (this.memberType === "method") { + const methodRegEx = /([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/; + const match = input.match(methodRegEx); + if (match) { + const detectedVisibility = match[1] ? match[1].trim() : ""; + if (visibilityValues.includes(detectedVisibility)) { + this.visibility = detectedVisibility; + } + this.id = match[2].trim(); + this.parameters = match[3] ? match[3].trim() : ""; + potentialClassifier = match[4] ? match[4].trim() : ""; + this.returnType = match[5] ? match[5].trim() : ""; + if (potentialClassifier === "") { + const lastChar = this.returnType.substring(this.returnType.length - 1); + if (lastChar.match(/[$*]/)) { + potentialClassifier = lastChar; + this.returnType = this.returnType.substring(0, this.returnType.length - 1); + } + } + } + } else { + const length = input.length; + const firstChar = input.substring(0, 1); + const lastChar = input.substring(length - 1); + if (visibilityValues.includes(firstChar)) { + this.visibility = firstChar; + } + if (lastChar.match(/[$*]/)) { + potentialClassifier = lastChar; + } + this.id = input.substring( + this.visibility === "" ? 0 : 1, + potentialClassifier === "" ? length : length - 1 + ); + } + this.classifier = potentialClassifier; + } + parseClassifier() { + switch (this.classifier) { + case "*": + return "font-style:italic;"; + case "$": + return "text-decoration:underline;"; + default: + return ""; + } + } +} +const MERMAID_DOM_ID_PREFIX = "classId-"; +let relations = []; +let classes = {}; +let notes = []; +let classCounter = 0; +let namespaces = {}; +let namespaceCounter = 0; +let functions = []; +const sanitizeText = (txt) => common.sanitizeText(txt, getConfig()); +const splitClassNameAndType = function(_id) { + const id = common.sanitizeText(_id, getConfig()); + let genericType = ""; + let className = id; + if (id.indexOf("~") > 0) { + const split = id.split("~"); + className = sanitizeText(split[0]); + genericType = sanitizeText(split[1]); + } + return { className, type: genericType }; +}; +const setClassLabel = function(_id, label) { + const id = common.sanitizeText(_id, getConfig()); + if (label) { + label = sanitizeText(label); + } + const { className } = splitClassNameAndType(id); + classes[className].label = label; +}; +const addClass = function(_id) { + const id = common.sanitizeText(_id, getConfig()); + const { className, type } = splitClassNameAndType(id); + if (Object.hasOwn(classes, className)) { + return; + } + const name = common.sanitizeText(className, getConfig()); + classes[name] = { + id: name, + type, + label: name, + cssClasses: [], + methods: [], + members: [], + annotations: [], + styles: [], + domId: MERMAID_DOM_ID_PREFIX + name + "-" + classCounter + }; + classCounter++; +}; +const lookUpDomId = function(_id) { + const id = common.sanitizeText(_id, getConfig()); + if (id in classes) { + return classes[id].domId; + } + throw new Error("Class not found: " + id); +}; +const clear = function() { + relations = []; + classes = {}; + notes = []; + functions = []; + functions.push(setupToolTips); + namespaces = {}; + namespaceCounter = 0; + clear$1(); +}; +const getClass = function(id) { + return classes[id]; +}; +const getClasses = function() { + return classes; +}; +const getRelations = function() { + return relations; +}; +const getNotes = function() { + return notes; +}; +const addRelation = function(relation) { + log.debug("Adding relation: " + JSON.stringify(relation)); + addClass(relation.id1); + addClass(relation.id2); + relation.id1 = splitClassNameAndType(relation.id1).className; + relation.id2 = splitClassNameAndType(relation.id2).className; + relation.relationTitle1 = common.sanitizeText(relation.relationTitle1.trim(), getConfig()); + relation.relationTitle2 = common.sanitizeText(relation.relationTitle2.trim(), getConfig()); + relations.push(relation); +}; +const addAnnotation = function(className, annotation) { + const validatedClassName = splitClassNameAndType(className).className; + classes[validatedClassName].annotations.push(annotation); +}; +const addMember = function(className, member) { + addClass(className); + const validatedClassName = splitClassNameAndType(className).className; + const theClass = classes[validatedClassName]; + if (typeof member === "string") { + const memberString = member.trim(); + if (memberString.startsWith("<<") && memberString.endsWith(">>")) { + theClass.annotations.push(sanitizeText(memberString.substring(2, memberString.length - 2))); + } else if (memberString.indexOf(")") > 0) { + theClass.methods.push(new ClassMember(memberString, "method")); + } else if (memberString) { + theClass.members.push(new ClassMember(memberString, "attribute")); + } + } +}; +const addMembers = function(className, members) { + if (Array.isArray(members)) { + members.reverse(); + members.forEach((member) => addMember(className, member)); + } +}; +const addNote = function(text, className) { + const note = { + id: `note${notes.length}`, + class: className, + text + }; + notes.push(note); +}; +const cleanupLabel = function(label) { + if (label.startsWith(":")) { + label = label.substring(1); + } + return sanitizeText(label.trim()); +}; +const setCssClass = function(ids, className) { + ids.split(",").forEach(function(_id) { + let id = _id; + if (_id[0].match(/\d/)) { + id = MERMAID_DOM_ID_PREFIX + id; + } + if (classes[id] !== void 0) { + classes[id].cssClasses.push(className); + } + }); +}; +const setTooltip = function(ids, tooltip) { + ids.split(",").forEach(function(id) { + if (tooltip !== void 0) { + classes[id].tooltip = sanitizeText(tooltip); + } + }); +}; +const getTooltip = function(id, namespace) { + if (namespace) { + return namespaces[namespace].classes[id].tooltip; + } + return classes[id].tooltip; +}; +const setLink = function(ids, linkStr, target) { + const config = getConfig(); + ids.split(",").forEach(function(_id) { + let id = _id; + if (_id[0].match(/\d/)) { + id = MERMAID_DOM_ID_PREFIX + id; + } + if (classes[id] !== void 0) { + classes[id].link = utils.formatUrl(linkStr, config); + if (config.securityLevel === "sandbox") { + classes[id].linkTarget = "_top"; + } else if (typeof target === "string") { + classes[id].linkTarget = sanitizeText(target); + } else { + classes[id].linkTarget = "_blank"; + } + } + }); + setCssClass(ids, "clickable"); +}; +const setClickEvent = function(ids, functionName, functionArgs) { + ids.split(",").forEach(function(id) { + setClickFunc(id, functionName, functionArgs); + classes[id].haveCallback = true; + }); + setCssClass(ids, "clickable"); +}; +const setClickFunc = function(_domId, functionName, functionArgs) { + const domId = common.sanitizeText(_domId, getConfig()); + const config = getConfig(); + if (config.securityLevel !== "loose") { + return; + } + if (functionName === void 0) { + return; + } + const id = domId; + if (classes[id] !== void 0) { + const elemId = lookUpDomId(id); + let argList = []; + if (typeof functionArgs === "string") { + argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/); + for (let i = 0; i < argList.length; i++) { + let item = argList[i].trim(); + if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') { + item = item.substr(1, item.length - 2); + } + argList[i] = item; + } + } + if (argList.length === 0) { + argList.push(elemId); + } + functions.push(function() { + const elem = document.querySelector(`[id="${elemId}"]`); + if (elem !== null) { + elem.addEventListener( + "click", + function() { + utils.runFunc(functionName, ...argList); + }, + false + ); + } + }); + } +}; +const bindFunctions = function(element) { + functions.forEach(function(fun) { + fun(element); + }); +}; +const lineType = { + LINE: 0, + DOTTED_LINE: 1 +}; +const relationType = { + AGGREGATION: 0, + EXTENSION: 1, + COMPOSITION: 2, + DEPENDENCY: 3, + LOLLIPOP: 4 +}; +const setupToolTips = function(element) { + let tooltipElem = d3select(".mermaidTooltip"); + if ((tooltipElem._groups || tooltipElem)[0][0] === null) { + tooltipElem = d3select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0); + } + const svg = d3select(element).select("svg"); + const nodes = svg.selectAll("g.node"); + nodes.on("mouseover", function() { + const el = d3select(this); + const title = el.attr("title"); + if (title === null) { + return; + } + const rect = this.getBoundingClientRect(); + tooltipElem.transition().duration(200).style("opacity", ".9"); + tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect.left + (rect.right - rect.left) / 2 + "px").style("top", window.scrollY + rect.top - 14 + document.body.scrollTop + "px"); + tooltipElem.html(tooltipElem.html().replace(/<br\/>/g, "
")); + el.classed("hover", true); + }).on("mouseout", function() { + tooltipElem.transition().duration(500).style("opacity", 0); + const el = d3select(this); + el.classed("hover", false); + }); +}; +functions.push(setupToolTips); +let direction = "TB"; +const getDirection = () => direction; +const setDirection = (dir) => { + direction = dir; +}; +const addNamespace = function(id) { + if (namespaces[id] !== void 0) { + return; + } + namespaces[id] = { + id, + classes: {}, + children: {}, + domId: MERMAID_DOM_ID_PREFIX + id + "-" + namespaceCounter + }; + namespaceCounter++; +}; +const getNamespace = function(name) { + return namespaces[name]; +}; +const getNamespaces = function() { + return namespaces; +}; +const addClassesToNamespace = function(id, classNames) { + if (namespaces[id] === void 0) { + return; + } + for (const name of classNames) { + const { className } = splitClassNameAndType(name); + classes[className].parent = id; + namespaces[id].classes[className] = classes[className]; + } +}; +const setCssStyle = function(id, styles2) { + const thisClass = classes[id]; + if (!styles2 || !thisClass) { + return; + } + for (const s of styles2) { + if (s.includes(",")) { + thisClass.styles.push(...s.split(",")); + } else { + thisClass.styles.push(s); + } + } +}; +const db = { + setAccTitle, + getAccTitle, + getAccDescription, + setAccDescription, + getConfig: () => getConfig().class, + addClass, + bindFunctions, + clear, + getClass, + getClasses, + getNotes, + addAnnotation, + addNote, + getRelations, + addRelation, + getDirection, + setDirection, + addMember, + addMembers, + cleanupLabel, + lineType, + relationType, + setClickEvent, + setCssClass, + setLink, + getTooltip, + setTooltip, + lookUpDomId, + setDiagramTitle, + getDiagramTitle, + setClassLabel, + addNamespace, + addClassesToNamespace, + getNamespace, + getNamespaces, + setCssStyle +}; +const getStyles = (options) => `g.classGroup text { + fill: ${options.nodeBorder || options.classText}; + stroke: none; + font-family: ${options.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${options.classText}; +} +.edgeLabel .label rect { + fill: ${options.mainBkg}; +} +.label text { + fill: ${options.classText}; +} +.edgeLabel .label span { + background: ${options.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${options.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; +} + +g.classGroup line { + stroke: ${options.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${options.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${options.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${options.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${options.lineColor} !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${options.lineColor} !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${options.lineColor} !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${options.lineColor} !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${options.mainBkg} !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${options.mainBkg} !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.textColor}; +} +`; +const styles = getStyles; +export { + db as d, + parser$1 as p, + styles as s +}; diff --git a/assets/lib/mermaid/styles-483fbfea.js b/assets/lib/mermaid/styles-483fbfea.js new file mode 100644 index 000000000..8c417e3ef --- /dev/null +++ b/assets/lib/mermaid/styles-483fbfea.js @@ -0,0 +1,509 @@ +import * as graphlib from "dagre-d3-es/src/graphlib/index.js"; +import { curveLinear, select, selectAll } from "d3"; +import { k as getStylesFromArray, l as log, m as evaluate, c as getConfig, e as common, r as renderKatex, n as interpolateToCurve, u as utils, o as setupGraphViewbox } from "./mermaid-6dc72991.js"; +import { r as render } from "./index-01f381cb.js"; +import { addHtmlLabel } from "dagre-d3-es/src/dagre-js/label/add-html-label.js"; +import * as khroma from "khroma"; +const conf = {}; +const setConf = function(cnf) { + const keys = Object.keys(cnf); + for (const key of keys) { + conf[key] = cnf[key]; + } +}; +const addVertices = async function(vert, g, svgId, root, doc, diagObj) { + const svg = root.select(`[id="${svgId}"]`); + const keys = Object.keys(vert); + for (const id of keys) { + const vertex = vert[id]; + let classStr = "default"; + if (vertex.classes.length > 0) { + classStr = vertex.classes.join(" "); + } + classStr = classStr + " flowchart-label"; + const styles = getStylesFromArray(vertex.styles); + let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id; + let vertexNode; + log.info("vertex", vertex, vertex.labelType); + if (vertex.labelType === "markdown") { + log.info("vertex", vertex, vertex.labelType); + } else { + if (evaluate(getConfig().flowchart.htmlLabels)) { + const node = { + label: vertexText + }; + vertexNode = addHtmlLabel(svg, node).node(); + vertexNode.parentNode.removeChild(vertexNode); + } else { + const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text"); + svgLabel.setAttribute("style", styles.labelStyle.replace("color:", "fill:")); + const rows = vertexText.split(common.lineBreakRegex); + for (const row of rows) { + const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan"); + tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"); + tspan.setAttribute("dy", "1em"); + tspan.setAttribute("x", "1"); + tspan.textContent = row; + svgLabel.appendChild(tspan); + } + vertexNode = svgLabel; + } + } + let radius = 0; + let _shape = ""; + switch (vertex.type) { + case "round": + radius = 5; + _shape = "rect"; + break; + case "square": + _shape = "rect"; + break; + case "diamond": + _shape = "question"; + break; + case "hexagon": + _shape = "hexagon"; + break; + case "odd": + _shape = "rect_left_inv_arrow"; + break; + case "lean_right": + _shape = "lean_right"; + break; + case "lean_left": + _shape = "lean_left"; + break; + case "trapezoid": + _shape = "trapezoid"; + break; + case "inv_trapezoid": + _shape = "inv_trapezoid"; + break; + case "odd_right": + _shape = "rect_left_inv_arrow"; + break; + case "circle": + _shape = "circle"; + break; + case "ellipse": + _shape = "ellipse"; + break; + case "stadium": + _shape = "stadium"; + break; + case "subroutine": + _shape = "subroutine"; + break; + case "cylinder": + _shape = "cylinder"; + break; + case "group": + _shape = "rect"; + break; + case "doublecircle": + _shape = "doublecircle"; + break; + default: + _shape = "rect"; + } + const labelText = await renderKatex(vertexText, getConfig()); + g.setNode(vertex.id, { + labelStyle: styles.labelStyle, + shape: _shape, + labelText, + labelType: vertex.labelType, + rx: radius, + ry: radius, + class: classStr, + style: styles.style, + id: vertex.id, + link: vertex.link, + linkTarget: vertex.linkTarget, + tooltip: diagObj.db.getTooltip(vertex.id) || "", + domId: diagObj.db.lookUpDomId(vertex.id), + haveCallback: vertex.haveCallback, + width: vertex.type === "group" ? 500 : void 0, + dir: vertex.dir, + type: vertex.type, + props: vertex.props, + padding: getConfig().flowchart.padding + }); + log.info("setNode", { + labelStyle: styles.labelStyle, + labelType: vertex.labelType, + shape: _shape, + labelText, + rx: radius, + ry: radius, + class: classStr, + style: styles.style, + id: vertex.id, + domId: diagObj.db.lookUpDomId(vertex.id), + width: vertex.type === "group" ? 500 : void 0, + type: vertex.type, + dir: vertex.dir, + props: vertex.props, + padding: getConfig().flowchart.padding + }); + } +}; +const addEdges = async function(edges, g, diagObj) { + log.info("abc78 edges = ", edges); + let cnt = 0; + let linkIdCnt = {}; + let defaultStyle; + let defaultLabelStyle; + if (edges.defaultStyle !== void 0) { + const defaultStyles = getStylesFromArray(edges.defaultStyle); + defaultStyle = defaultStyles.style; + defaultLabelStyle = defaultStyles.labelStyle; + } + for (const edge of edges) { + cnt++; + const linkIdBase = "L-" + edge.start + "-" + edge.end; + if (linkIdCnt[linkIdBase] === void 0) { + linkIdCnt[linkIdBase] = 0; + log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]); + } else { + linkIdCnt[linkIdBase]++; + log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]); + } + let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase]; + log.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]); + const linkNameStart = "LS-" + edge.start; + const linkNameEnd = "LE-" + edge.end; + const edgeData = { style: "", labelStyle: "" }; + edgeData.minlen = edge.length || 1; + if (edge.type === "arrow_open") { + edgeData.arrowhead = "none"; + } else { + edgeData.arrowhead = "normal"; + } + edgeData.arrowTypeStart = "arrow_open"; + edgeData.arrowTypeEnd = "arrow_open"; + switch (edge.type) { + case "double_arrow_cross": + edgeData.arrowTypeStart = "arrow_cross"; + case "arrow_cross": + edgeData.arrowTypeEnd = "arrow_cross"; + break; + case "double_arrow_point": + edgeData.arrowTypeStart = "arrow_point"; + case "arrow_point": + edgeData.arrowTypeEnd = "arrow_point"; + break; + case "double_arrow_circle": + edgeData.arrowTypeStart = "arrow_circle"; + case "arrow_circle": + edgeData.arrowTypeEnd = "arrow_circle"; + break; + } + let style = ""; + let labelStyle = ""; + switch (edge.stroke) { + case "normal": + style = "fill:none;"; + if (defaultStyle !== void 0) { + style = defaultStyle; + } + if (defaultLabelStyle !== void 0) { + labelStyle = defaultLabelStyle; + } + edgeData.thickness = "normal"; + edgeData.pattern = "solid"; + break; + case "dotted": + edgeData.thickness = "normal"; + edgeData.pattern = "dotted"; + edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;"; + break; + case "thick": + edgeData.thickness = "thick"; + edgeData.pattern = "solid"; + edgeData.style = "stroke-width: 3.5px;fill:none;"; + break; + case "invisible": + edgeData.thickness = "invisible"; + edgeData.pattern = "solid"; + edgeData.style = "stroke-width: 0;fill:none;"; + break; + } + if (edge.style !== void 0) { + const styles = getStylesFromArray(edge.style); + style = styles.style; + labelStyle = styles.labelStyle; + } + edgeData.style = edgeData.style += style; + edgeData.labelStyle = edgeData.labelStyle += labelStyle; + if (edge.interpolate !== void 0) { + edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear); + } else if (edges.defaultInterpolate !== void 0) { + edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear); + } else { + edgeData.curve = interpolateToCurve(conf.curve, curveLinear); + } + if (edge.text === void 0) { + if (edge.style !== void 0) { + edgeData.arrowheadStyle = "fill: #333"; + } + } else { + edgeData.arrowheadStyle = "fill: #333"; + edgeData.labelpos = "c"; + } + edgeData.labelType = edge.labelType; + edgeData.label = await renderKatex(edge.text.replace(common.lineBreakRegex, "\n"), getConfig()); + if (edge.style === void 0) { + edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;"; + } + edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:"); + edgeData.id = linkId; + edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd; + g.setEdge(edge.start, edge.end, edgeData, cnt); + } +}; +const getClasses = function(text, diagObj) { + return diagObj.db.getClasses(); +}; +const draw = async function(text, id, _version, diagObj) { + log.info("Drawing flowchart"); + let dir = diagObj.db.getDirection(); + if (dir === void 0) { + dir = "TD"; + } + const { securityLevel, flowchart: conf2 } = getConfig(); + const nodeSpacing = conf2.nodeSpacing || 50; + const rankSpacing = conf2.rankSpacing || 50; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + const g = new graphlib.Graph({ + multigraph: true, + compound: true + }).setGraph({ + rankdir: dir, + nodesep: nodeSpacing, + ranksep: rankSpacing, + marginx: 0, + marginy: 0 + }).setDefaultEdgeLabel(function() { + return {}; + }); + let subG; + const subGraphs = diagObj.db.getSubGraphs(); + log.info("Subgraphs - ", subGraphs); + for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) { + subG = subGraphs[i2]; + log.info("Subgraph - ", subG); + diagObj.db.addVertex( + subG.id, + { text: subG.title, type: subG.labelType }, + "group", + void 0, + subG.classes, + subG.dir + ); + } + const vert = diagObj.db.getVertices(); + const edges = diagObj.db.getEdges(); + log.info("Edges", edges); + let i = 0; + for (i = subGraphs.length - 1; i >= 0; i--) { + subG = subGraphs[i]; + selectAll("cluster").append("text"); + for (let j = 0; j < subG.nodes.length; j++) { + log.info("Setting up subgraphs", subG.nodes[j], subG.id); + g.setParent(subG.nodes[j], subG.id); + } + } + await addVertices(vert, g, id, root, doc, diagObj); + await addEdges(edges, g); + const svg = root.select(`[id="${id}"]`); + const element = root.select("#" + id + " g"); + await render(element, g, ["point", "circle", "cross"], "flowchart", id); + utils.insertTitle(svg, "flowchartTitleText", conf2.titleTopMargin, diagObj.db.getDiagramTitle()); + setupGraphViewbox(g, svg, conf2.diagramPadding, conf2.useMaxWidth); + diagObj.db.indexNodes("subGraph" + i); + if (!conf2.htmlLabels) { + const labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label'); + for (const label of labels) { + const dim = label.getBBox(); + const rect = doc.createElementNS("http://www.w3.org/2000/svg", "rect"); + rect.setAttribute("rx", 0); + rect.setAttribute("ry", 0); + rect.setAttribute("width", dim.width); + rect.setAttribute("height", dim.height); + label.insertBefore(rect, label.firstChild); + } + } + const keys = Object.keys(vert); + keys.forEach(function(key) { + const vertex = vert[key]; + if (vertex.link) { + const node = select("#" + id + ' [id="' + key + '"]'); + if (node) { + const link = doc.createElementNS("http://www.w3.org/2000/svg", "a"); + link.setAttributeNS("http://www.w3.org/2000/svg", "class", vertex.classes.join(" ")); + link.setAttributeNS("http://www.w3.org/2000/svg", "href", vertex.link); + link.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener"); + if (securityLevel === "sandbox") { + link.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top"); + } else if (vertex.linkTarget) { + link.setAttributeNS("http://www.w3.org/2000/svg", "target", vertex.linkTarget); + } + const linkNode = node.insert(function() { + return link; + }, ":first-child"); + const shape = node.select(".label-container"); + if (shape) { + linkNode.append(function() { + return shape.node(); + }); + } + const label = node.select(".label"); + if (label) { + linkNode.append(function() { + return label.node(); + }); + } + } + } + }); +}; +const flowRendererV2 = { + setConf, + addVertices, + addEdges, + getClasses, + draw +}; +const fade = (color, opacity) => { + const channel = khroma.channel; + const r = channel(color, "r"); + const g = channel(color, "g"); + const b = channel(color, "b"); + return khroma.rgba(r, g, b, opacity); +}; +const getStyles = (options) => `.label { + font-family: ${options.fontFamily}; + color: ${options.nodeTextColor || options.textColor}; + } + .cluster-label text { + fill: ${options.titleColor}; + } + .cluster-label span,p { + color: ${options.titleColor}; + } + + .label text,span,p { + fill: ${options.nodeTextColor || options.textColor}; + color: ${options.nodeTextColor || options.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${options.arrowheadColor}; + } + + .edgePath .path { + stroke: ${options.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${options.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${options.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${options.edgeLabelBackground}; + fill: ${options.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${fade(options.edgeLabelBackground, 0.5)}; + // background-color: + } + + .cluster rect { + fill: ${options.clusterBkg}; + stroke: ${options.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${options.titleColor}; + } + + .cluster span,p { + color: ${options.titleColor}; + } + /* .cluster div { + color: ${options.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${options.fontFamily}; + font-size: 12px; + background: ${options.tertiaryColor}; + border: 1px solid ${options.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.textColor}; + } +`; +const flowStyles = getStyles; +export { + flowStyles as a, + flowRendererV2 as f +}; diff --git a/assets/lib/mermaid/styles-727cdd61.js b/assets/lib/mermaid/styles-727cdd61.js new file mode 100644 index 000000000..39268225a --- /dev/null +++ b/assets/lib/mermaid/styles-727cdd61.js @@ -0,0 +1,571 @@ +import { G as Graph } from "./graph-fe24fab6.js"; +import { S as Selection, v as root, x as array, y as isPlainObject, z as isFunction, o as getStylesFromArray, l as log, p as evaluate, c as getConfig, f as common, r as renderKatex, q as interpolateToCurve, n as curveLinear, j as d3select, A as utils, t as setupGraphViewbox, B as rgba } from "./mermaid-dcacb631.js"; +import { r as render } from "./index-fc479858.js"; +import { c as channel } from "./channel-f9001828.js"; +function selectAll(selector) { + return typeof selector === "string" ? new Selection([document.querySelectorAll(selector)], [document.documentElement]) : new Selection([array(selector)], root); +} +function isSubgraph(g, v) { + return !!g.children(v).length; +} +function edgeToId(e) { + return escapeId(e.v) + ":" + escapeId(e.w) + ":" + escapeId(e.name); +} +var ID_DELIM = /:/g; +function escapeId(str) { + return str ? String(str).replace(ID_DELIM, "\\:") : ""; +} +function applyStyle(dom, styleFn) { + if (styleFn) { + dom.attr("style", styleFn); + } +} +function applyClass(dom, classFn, otherClasses) { + if (classFn) { + dom.attr("class", classFn).attr("class", otherClasses + " " + dom.attr("class")); + } +} +function applyTransition(selection, g) { + var graph = g.graph(); + if (isPlainObject(graph)) { + var transition = graph.transition; + if (isFunction(transition)) { + return transition(selection); + } + } + return selection; +} +function addHtmlLabel(root2, node) { + var fo = root2.append("foreignObject").attr("width", "100000"); + var div = fo.append("xhtml:div"); + div.attr("xmlns", "http://www.w3.org/1999/xhtml"); + var label = node.label; + switch (typeof label) { + case "function": + div.insert(label); + break; + case "object": + div.insert(function() { + return label; + }); + break; + default: + div.html(label); + } + applyStyle(div, node.labelStyle); + div.style("display", "inline-block"); + div.style("white-space", "nowrap"); + var client = div.node().getBoundingClientRect(); + fo.attr("width", client.width).attr("height", client.height); + return fo; +} +const conf = {}; +const setConf = function(cnf) { + const keys = Object.keys(cnf); + for (const key of keys) { + conf[key] = cnf[key]; + } +}; +const addVertices = async function(vert, g, svgId, root2, doc, diagObj) { + const svg = root2.select(`[id="${svgId}"]`); + const keys = Object.keys(vert); + for (const id of keys) { + const vertex = vert[id]; + let classStr = "default"; + if (vertex.classes.length > 0) { + classStr = vertex.classes.join(" "); + } + classStr = classStr + " flowchart-label"; + const styles = getStylesFromArray(vertex.styles); + let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id; + let vertexNode; + log.info("vertex", vertex, vertex.labelType); + if (vertex.labelType === "markdown") { + log.info("vertex", vertex, vertex.labelType); + } else { + if (evaluate(getConfig().flowchart.htmlLabels)) { + const node = { + label: vertexText + }; + vertexNode = addHtmlLabel(svg, node).node(); + vertexNode.parentNode.removeChild(vertexNode); + } else { + const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text"); + svgLabel.setAttribute("style", styles.labelStyle.replace("color:", "fill:")); + const rows = vertexText.split(common.lineBreakRegex); + for (const row of rows) { + const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan"); + tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"); + tspan.setAttribute("dy", "1em"); + tspan.setAttribute("x", "1"); + tspan.textContent = row; + svgLabel.appendChild(tspan); + } + vertexNode = svgLabel; + } + } + let radius = 0; + let _shape = ""; + switch (vertex.type) { + case "round": + radius = 5; + _shape = "rect"; + break; + case "square": + _shape = "rect"; + break; + case "diamond": + _shape = "question"; + break; + case "hexagon": + _shape = "hexagon"; + break; + case "odd": + _shape = "rect_left_inv_arrow"; + break; + case "lean_right": + _shape = "lean_right"; + break; + case "lean_left": + _shape = "lean_left"; + break; + case "trapezoid": + _shape = "trapezoid"; + break; + case "inv_trapezoid": + _shape = "inv_trapezoid"; + break; + case "odd_right": + _shape = "rect_left_inv_arrow"; + break; + case "circle": + _shape = "circle"; + break; + case "ellipse": + _shape = "ellipse"; + break; + case "stadium": + _shape = "stadium"; + break; + case "subroutine": + _shape = "subroutine"; + break; + case "cylinder": + _shape = "cylinder"; + break; + case "group": + _shape = "rect"; + break; + case "doublecircle": + _shape = "doublecircle"; + break; + default: + _shape = "rect"; + } + const labelText = await renderKatex(vertexText, getConfig()); + g.setNode(vertex.id, { + labelStyle: styles.labelStyle, + shape: _shape, + labelText, + labelType: vertex.labelType, + rx: radius, + ry: radius, + class: classStr, + style: styles.style, + id: vertex.id, + link: vertex.link, + linkTarget: vertex.linkTarget, + tooltip: diagObj.db.getTooltip(vertex.id) || "", + domId: diagObj.db.lookUpDomId(vertex.id), + haveCallback: vertex.haveCallback, + width: vertex.type === "group" ? 500 : void 0, + dir: vertex.dir, + type: vertex.type, + props: vertex.props, + padding: getConfig().flowchart.padding + }); + log.info("setNode", { + labelStyle: styles.labelStyle, + labelType: vertex.labelType, + shape: _shape, + labelText, + rx: radius, + ry: radius, + class: classStr, + style: styles.style, + id: vertex.id, + domId: diagObj.db.lookUpDomId(vertex.id), + width: vertex.type === "group" ? 500 : void 0, + type: vertex.type, + dir: vertex.dir, + props: vertex.props, + padding: getConfig().flowchart.padding + }); + } +}; +const addEdges = async function(edges, g, diagObj) { + log.info("abc78 edges = ", edges); + let cnt = 0; + let linkIdCnt = {}; + let defaultStyle; + let defaultLabelStyle; + if (edges.defaultStyle !== void 0) { + const defaultStyles = getStylesFromArray(edges.defaultStyle); + defaultStyle = defaultStyles.style; + defaultLabelStyle = defaultStyles.labelStyle; + } + for (const edge of edges) { + cnt++; + const linkIdBase = "L-" + edge.start + "-" + edge.end; + if (linkIdCnt[linkIdBase] === void 0) { + linkIdCnt[linkIdBase] = 0; + log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]); + } else { + linkIdCnt[linkIdBase]++; + log.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]); + } + let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase]; + log.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]); + const linkNameStart = "LS-" + edge.start; + const linkNameEnd = "LE-" + edge.end; + const edgeData = { style: "", labelStyle: "" }; + edgeData.minlen = edge.length || 1; + if (edge.type === "arrow_open") { + edgeData.arrowhead = "none"; + } else { + edgeData.arrowhead = "normal"; + } + edgeData.arrowTypeStart = "arrow_open"; + edgeData.arrowTypeEnd = "arrow_open"; + switch (edge.type) { + case "double_arrow_cross": + edgeData.arrowTypeStart = "arrow_cross"; + case "arrow_cross": + edgeData.arrowTypeEnd = "arrow_cross"; + break; + case "double_arrow_point": + edgeData.arrowTypeStart = "arrow_point"; + case "arrow_point": + edgeData.arrowTypeEnd = "arrow_point"; + break; + case "double_arrow_circle": + edgeData.arrowTypeStart = "arrow_circle"; + case "arrow_circle": + edgeData.arrowTypeEnd = "arrow_circle"; + break; + } + let style = ""; + let labelStyle = ""; + switch (edge.stroke) { + case "normal": + style = "fill:none;"; + if (defaultStyle !== void 0) { + style = defaultStyle; + } + if (defaultLabelStyle !== void 0) { + labelStyle = defaultLabelStyle; + } + edgeData.thickness = "normal"; + edgeData.pattern = "solid"; + break; + case "dotted": + edgeData.thickness = "normal"; + edgeData.pattern = "dotted"; + edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;"; + break; + case "thick": + edgeData.thickness = "thick"; + edgeData.pattern = "solid"; + edgeData.style = "stroke-width: 3.5px;fill:none;"; + break; + case "invisible": + edgeData.thickness = "invisible"; + edgeData.pattern = "solid"; + edgeData.style = "stroke-width: 0;fill:none;"; + break; + } + if (edge.style !== void 0) { + const styles = getStylesFromArray(edge.style); + style = styles.style; + labelStyle = styles.labelStyle; + } + edgeData.style = edgeData.style += style; + edgeData.labelStyle = edgeData.labelStyle += labelStyle; + if (edge.interpolate !== void 0) { + edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear); + } else if (edges.defaultInterpolate !== void 0) { + edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear); + } else { + edgeData.curve = interpolateToCurve(conf.curve, curveLinear); + } + if (edge.text === void 0) { + if (edge.style !== void 0) { + edgeData.arrowheadStyle = "fill: #333"; + } + } else { + edgeData.arrowheadStyle = "fill: #333"; + edgeData.labelpos = "c"; + } + edgeData.labelType = edge.labelType; + edgeData.label = await renderKatex(edge.text.replace(common.lineBreakRegex, "\n"), getConfig()); + if (edge.style === void 0) { + edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;"; + } + edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:"); + edgeData.id = linkId; + edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd; + g.setEdge(edge.start, edge.end, edgeData, cnt); + } +}; +const getClasses = function(text, diagObj) { + return diagObj.db.getClasses(); +}; +const draw = async function(text, id, _version, diagObj) { + log.info("Drawing flowchart"); + let dir = diagObj.db.getDirection(); + if (dir === void 0) { + dir = "TD"; + } + const { securityLevel, flowchart: conf2 } = getConfig(); + const nodeSpacing = conf2.nodeSpacing || 50; + const rankSpacing = conf2.rankSpacing || 50; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root2 = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + const g = new Graph({ + multigraph: true, + compound: true + }).setGraph({ + rankdir: dir, + nodesep: nodeSpacing, + ranksep: rankSpacing, + marginx: 0, + marginy: 0 + }).setDefaultEdgeLabel(function() { + return {}; + }); + let subG; + const subGraphs = diagObj.db.getSubGraphs(); + log.info("Subgraphs - ", subGraphs); + for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) { + subG = subGraphs[i2]; + log.info("Subgraph - ", subG); + diagObj.db.addVertex( + subG.id, + { text: subG.title, type: subG.labelType }, + "group", + void 0, + subG.classes, + subG.dir + ); + } + const vert = diagObj.db.getVertices(); + const edges = diagObj.db.getEdges(); + log.info("Edges", edges); + let i = 0; + for (i = subGraphs.length - 1; i >= 0; i--) { + subG = subGraphs[i]; + selectAll("cluster").append("text"); + for (let j = 0; j < subG.nodes.length; j++) { + log.info("Setting up subgraphs", subG.nodes[j], subG.id); + g.setParent(subG.nodes[j], subG.id); + } + } + await addVertices(vert, g, id, root2, doc, diagObj); + await addEdges(edges, g); + const svg = root2.select(`[id="${id}"]`); + const element = root2.select("#" + id + " g"); + await render(element, g, ["point", "circle", "cross"], "flowchart", id); + utils.insertTitle(svg, "flowchartTitleText", conf2.titleTopMargin, diagObj.db.getDiagramTitle()); + setupGraphViewbox(g, svg, conf2.diagramPadding, conf2.useMaxWidth); + diagObj.db.indexNodes("subGraph" + i); + if (!conf2.htmlLabels) { + const labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label'); + for (const label of labels) { + const dim = label.getBBox(); + const rect = doc.createElementNS("http://www.w3.org/2000/svg", "rect"); + rect.setAttribute("rx", 0); + rect.setAttribute("ry", 0); + rect.setAttribute("width", dim.width); + rect.setAttribute("height", dim.height); + label.insertBefore(rect, label.firstChild); + } + } + const keys = Object.keys(vert); + keys.forEach(function(key) { + const vertex = vert[key]; + if (vertex.link) { + const node = d3select("#" + id + ' [id="' + key + '"]'); + if (node) { + const link = doc.createElementNS("http://www.w3.org/2000/svg", "a"); + link.setAttributeNS("http://www.w3.org/2000/svg", "class", vertex.classes.join(" ")); + link.setAttributeNS("http://www.w3.org/2000/svg", "href", vertex.link); + link.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener"); + if (securityLevel === "sandbox") { + link.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top"); + } else if (vertex.linkTarget) { + link.setAttributeNS("http://www.w3.org/2000/svg", "target", vertex.linkTarget); + } + const linkNode = node.insert(function() { + return link; + }, ":first-child"); + const shape = node.select(".label-container"); + if (shape) { + linkNode.append(function() { + return shape.node(); + }); + } + const label = node.select(".label"); + if (label) { + linkNode.append(function() { + return label.node(); + }); + } + } + } + }); +}; +const flowRendererV2 = { + setConf, + addVertices, + addEdges, + getClasses, + draw +}; +const fade = (color, opacity) => { + const channel$1 = channel; + const r = channel$1(color, "r"); + const g = channel$1(color, "g"); + const b = channel$1(color, "b"); + return rgba(r, g, b, opacity); +}; +const getStyles = (options) => `.label { + font-family: ${options.fontFamily}; + color: ${options.nodeTextColor || options.textColor}; + } + .cluster-label text { + fill: ${options.titleColor}; + } + .cluster-label span,p { + color: ${options.titleColor}; + } + + .label text,span,p { + fill: ${options.nodeTextColor || options.textColor}; + color: ${options.nodeTextColor || options.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${options.arrowheadColor}; + } + + .edgePath .path { + stroke: ${options.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${options.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${options.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${options.edgeLabelBackground}; + fill: ${options.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${fade(options.edgeLabelBackground, 0.5)}; + // background-color: + } + + .cluster rect { + fill: ${options.clusterBkg}; + stroke: ${options.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${options.titleColor}; + } + + .cluster span,p { + color: ${options.titleColor}; + } + /* .cluster div { + color: ${options.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${options.fontFamily}; + font-size: 12px; + background: ${options.tertiaryColor}; + border: 1px solid ${options.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.textColor}; + } +`; +const flowStyles = getStyles; +export { + applyStyle as a, + addHtmlLabel as b, + applyTransition as c, + applyClass as d, + edgeToId as e, + flowRendererV2 as f, + flowStyles as g, + isSubgraph as i, + selectAll as s +}; diff --git a/assets/lib/mermaid/styles-b83b31c9.js b/assets/lib/mermaid/styles-b83b31c9.js new file mode 100644 index 000000000..0f1b7dd78 --- /dev/null +++ b/assets/lib/mermaid/styles-b83b31c9.js @@ -0,0 +1,1484 @@ +import { select } from "d3"; +import { d as sanitizeText$1, c as getConfig, x as parseGenericTypes, s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, q as setDiagramTitle, t as getDiagramTitle, e as common, v as clear$1, l as log, u as utils } from "./mermaid-6dc72991.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 17], $V1 = [1, 18], $V2 = [1, 19], $V3 = [1, 39], $V4 = [1, 40], $V5 = [1, 25], $V6 = [1, 23], $V7 = [1, 24], $V8 = [1, 31], $V9 = [1, 32], $Va = [1, 33], $Vb = [1, 34], $Vc = [1, 35], $Vd = [1, 36], $Ve = [1, 26], $Vf = [1, 27], $Vg = [1, 28], $Vh = [1, 29], $Vi = [1, 43], $Vj = [1, 30], $Vk = [1, 42], $Vl = [1, 44], $Vm = [1, 41], $Vn = [1, 45], $Vo = [1, 9], $Vp = [1, 8, 9], $Vq = [1, 56], $Vr = [1, 57], $Vs = [1, 58], $Vt = [1, 59], $Vu = [1, 60], $Vv = [1, 61], $Vw = [1, 62], $Vx = [1, 8, 9, 39], $Vy = [1, 74], $Vz = [1, 8, 9, 12, 13, 21, 37, 39, 42, 59, 60, 61, 62, 63, 64, 65, 70, 72], $VA = [1, 8, 9, 12, 13, 19, 21, 37, 39, 42, 46, 59, 60, 61, 62, 63, 64, 65, 70, 72, 74, 80, 95, 97, 98], $VB = [13, 74, 80, 95, 97, 98], $VC = [13, 64, 65, 74, 80, 95, 97, 98], $VD = [13, 59, 60, 61, 62, 63, 74, 80, 95, 97, 98], $VE = [1, 93], $VF = [1, 110], $VG = [1, 108], $VH = [1, 102], $VI = [1, 103], $VJ = [1, 104], $VK = [1, 105], $VL = [1, 106], $VM = [1, 107], $VN = [1, 109], $VO = [1, 8, 9, 37, 39, 42], $VP = [1, 8, 9, 21], $VQ = [1, 8, 9, 78], $VR = [1, 8, 9, 21, 73, 74, 78, 80, 81, 82, 83, 84, 85]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "statements": 5, "graphConfig": 6, "CLASS_DIAGRAM": 7, "NEWLINE": 8, "EOF": 9, "statement": 10, "classLabel": 11, "SQS": 12, "STR": 13, "SQE": 14, "namespaceName": 15, "alphaNumToken": 16, "className": 17, "classLiteralName": 18, "GENERICTYPE": 19, "relationStatement": 20, "LABEL": 21, "namespaceStatement": 22, "classStatement": 23, "memberStatement": 24, "annotationStatement": 25, "clickStatement": 26, "styleStatement": 27, "cssClassStatement": 28, "noteStatement": 29, "direction": 30, "acc_title": 31, "acc_title_value": 32, "acc_descr": 33, "acc_descr_value": 34, "acc_descr_multiline_value": 35, "namespaceIdentifier": 36, "STRUCT_START": 37, "classStatements": 38, "STRUCT_STOP": 39, "NAMESPACE": 40, "classIdentifier": 41, "STYLE_SEPARATOR": 42, "members": 43, "CLASS": 44, "ANNOTATION_START": 45, "ANNOTATION_END": 46, "MEMBER": 47, "SEPARATOR": 48, "relation": 49, "NOTE_FOR": 50, "noteText": 51, "NOTE": 52, "direction_tb": 53, "direction_bt": 54, "direction_rl": 55, "direction_lr": 56, "relationType": 57, "lineType": 58, "AGGREGATION": 59, "EXTENSION": 60, "COMPOSITION": 61, "DEPENDENCY": 62, "LOLLIPOP": 63, "LINE": 64, "DOTTED_LINE": 65, "CALLBACK": 66, "LINK": 67, "LINK_TARGET": 68, "CLICK": 69, "CALLBACK_NAME": 70, "CALLBACK_ARGS": 71, "HREF": 72, "STYLE": 73, "ALPHA": 74, "stylesOpt": 75, "CSSCLASS": 76, "style": 77, "COMMA": 78, "styleComponent": 79, "NUM": 80, "COLON": 81, "UNIT": 82, "SPACE": 83, "BRKT": 84, "PCT": 85, "commentToken": 86, "textToken": 87, "graphCodeTokens": 88, "textNoTagsToken": 89, "TAGSTART": 90, "TAGEND": 91, "==": 92, "--": 93, "DEFAULT": 94, "MINUS": 95, "keywords": 96, "UNICODE_TEXT": 97, "BQUOTE_STR": 98, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 7: "CLASS_DIAGRAM", 8: "NEWLINE", 9: "EOF", 12: "SQS", 13: "STR", 14: "SQE", 19: "GENERICTYPE", 21: "LABEL", 31: "acc_title", 32: "acc_title_value", 33: "acc_descr", 34: "acc_descr_value", 35: "acc_descr_multiline_value", 37: "STRUCT_START", 39: "STRUCT_STOP", 40: "NAMESPACE", 42: "STYLE_SEPARATOR", 44: "CLASS", 45: "ANNOTATION_START", 46: "ANNOTATION_END", 47: "MEMBER", 48: "SEPARATOR", 50: "NOTE_FOR", 52: "NOTE", 53: "direction_tb", 54: "direction_bt", 55: "direction_rl", 56: "direction_lr", 59: "AGGREGATION", 60: "EXTENSION", 61: "COMPOSITION", 62: "DEPENDENCY", 63: "LOLLIPOP", 64: "LINE", 65: "DOTTED_LINE", 66: "CALLBACK", 67: "LINK", 68: "LINK_TARGET", 69: "CLICK", 70: "CALLBACK_NAME", 71: "CALLBACK_ARGS", 72: "HREF", 73: "STYLE", 74: "ALPHA", 76: "CSSCLASS", 78: "COMMA", 80: "NUM", 81: "COLON", 82: "UNIT", 83: "SPACE", 84: "BRKT", 85: "PCT", 88: "graphCodeTokens", 90: "TAGSTART", 91: "TAGEND", 92: "==", 93: "--", 94: "DEFAULT", 95: "MINUS", 96: "keywords", 97: "UNICODE_TEXT", 98: "BQUOTE_STR" }, + productions_: [0, [3, 1], [3, 1], [4, 1], [6, 4], [5, 1], [5, 2], [5, 3], [11, 3], [15, 1], [15, 2], [17, 1], [17, 1], [17, 2], [17, 2], [17, 2], [10, 1], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [22, 4], [22, 5], [36, 2], [38, 1], [38, 2], [38, 3], [23, 1], [23, 3], [23, 4], [23, 6], [41, 2], [41, 3], [25, 4], [43, 1], [43, 2], [24, 1], [24, 2], [24, 1], [24, 1], [20, 3], [20, 4], [20, 4], [20, 5], [29, 3], [29, 2], [30, 1], [30, 1], [30, 1], [30, 1], [49, 3], [49, 2], [49, 2], [49, 1], [57, 1], [57, 1], [57, 1], [57, 1], [57, 1], [58, 1], [58, 1], [26, 3], [26, 4], [26, 3], [26, 4], [26, 4], [26, 5], [26, 3], [26, 4], [26, 4], [26, 5], [26, 4], [26, 5], [26, 5], [26, 6], [27, 3], [28, 3], [75, 1], [75, 3], [77, 1], [77, 2], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [86, 1], [86, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [87, 1], [89, 1], [89, 1], [89, 1], [89, 1], [16, 1], [16, 1], [16, 1], [16, 1], [18, 1], [51, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 8: + this.$ = $$[$0 - 1]; + break; + case 9: + case 11: + case 12: + this.$ = $$[$0]; + break; + case 10: + case 13: + this.$ = $$[$0 - 1] + $$[$0]; + break; + case 14: + case 15: + this.$ = $$[$0 - 1] + "~" + $$[$0] + "~"; + break; + case 16: + yy.addRelation($$[$0]); + break; + case 17: + $$[$0 - 1].title = yy.cleanupLabel($$[$0]); + yy.addRelation($$[$0 - 1]); + break; + case 27: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 28: + case 29: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 30: + yy.addClassesToNamespace($$[$0 - 3], $$[$0 - 1]); + break; + case 31: + yy.addClassesToNamespace($$[$0 - 4], $$[$0 - 1]); + break; + case 32: + this.$ = $$[$0]; + yy.addNamespace($$[$0]); + break; + case 33: + this.$ = [$$[$0]]; + break; + case 34: + this.$ = [$$[$0 - 1]]; + break; + case 35: + $$[$0].unshift($$[$0 - 2]); + this.$ = $$[$0]; + break; + case 37: + yy.setCssClass($$[$0 - 2], $$[$0]); + break; + case 38: + yy.addMembers($$[$0 - 3], $$[$0 - 1]); + break; + case 39: + yy.setCssClass($$[$0 - 5], $$[$0 - 3]); + yy.addMembers($$[$0 - 5], $$[$0 - 1]); + break; + case 40: + this.$ = $$[$0]; + yy.addClass($$[$0]); + break; + case 41: + this.$ = $$[$0 - 1]; + yy.addClass($$[$0 - 1]); + yy.setClassLabel($$[$0 - 1], $$[$0]); + break; + case 42: + yy.addAnnotation($$[$0], $$[$0 - 2]); + break; + case 43: + this.$ = [$$[$0]]; + break; + case 44: + $$[$0].push($$[$0 - 1]); + this.$ = $$[$0]; + break; + case 45: + break; + case 46: + yy.addMember($$[$0 - 1], yy.cleanupLabel($$[$0])); + break; + case 47: + break; + case 48: + break; + case 49: + this.$ = { "id1": $$[$0 - 2], "id2": $$[$0], relation: $$[$0 - 1], relationTitle1: "none", relationTitle2: "none" }; + break; + case 50: + this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 1], relationTitle1: $$[$0 - 2], relationTitle2: "none" }; + break; + case 51: + this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: "none", relationTitle2: $$[$0 - 1] }; + break; + case 52: + this.$ = { id1: $$[$0 - 4], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: $$[$0 - 3], relationTitle2: $$[$0 - 1] }; + break; + case 53: + yy.addNote($$[$0], $$[$0 - 1]); + break; + case 54: + yy.addNote($$[$0]); + break; + case 55: + yy.setDirection("TB"); + break; + case 56: + yy.setDirection("BT"); + break; + case 57: + yy.setDirection("RL"); + break; + case 58: + yy.setDirection("LR"); + break; + case 59: + this.$ = { type1: $$[$0 - 2], type2: $$[$0], lineType: $$[$0 - 1] }; + break; + case 60: + this.$ = { type1: "none", type2: $$[$0], lineType: $$[$0 - 1] }; + break; + case 61: + this.$ = { type1: $$[$0 - 1], type2: "none", lineType: $$[$0] }; + break; + case 62: + this.$ = { type1: "none", type2: "none", lineType: $$[$0] }; + break; + case 63: + this.$ = yy.relationType.AGGREGATION; + break; + case 64: + this.$ = yy.relationType.EXTENSION; + break; + case 65: + this.$ = yy.relationType.COMPOSITION; + break; + case 66: + this.$ = yy.relationType.DEPENDENCY; + break; + case 67: + this.$ = yy.relationType.LOLLIPOP; + break; + case 68: + this.$ = yy.lineType.LINE; + break; + case 69: + this.$ = yy.lineType.DOTTED_LINE; + break; + case 70: + case 76: + this.$ = $$[$0 - 2]; + yy.setClickEvent($$[$0 - 1], $$[$0]); + break; + case 71: + case 77: + this.$ = $$[$0 - 3]; + yy.setClickEvent($$[$0 - 2], $$[$0 - 1]); + yy.setTooltip($$[$0 - 2], $$[$0]); + break; + case 72: + this.$ = $$[$0 - 2]; + yy.setLink($$[$0 - 1], $$[$0]); + break; + case 73: + this.$ = $$[$0 - 3]; + yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]); + break; + case 74: + this.$ = $$[$0 - 3]; + yy.setLink($$[$0 - 2], $$[$0 - 1]); + yy.setTooltip($$[$0 - 2], $$[$0]); + break; + case 75: + this.$ = $$[$0 - 4]; + yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]); + yy.setTooltip($$[$0 - 3], $$[$0 - 1]); + break; + case 78: + this.$ = $$[$0 - 3]; + yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]); + break; + case 79: + this.$ = $$[$0 - 4]; + yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]); + yy.setTooltip($$[$0 - 3], $$[$0]); + break; + case 80: + this.$ = $$[$0 - 3]; + yy.setLink($$[$0 - 2], $$[$0]); + break; + case 81: + this.$ = $$[$0 - 4]; + yy.setLink($$[$0 - 3], $$[$0 - 1], $$[$0]); + break; + case 82: + this.$ = $$[$0 - 4]; + yy.setLink($$[$0 - 3], $$[$0 - 1]); + yy.setTooltip($$[$0 - 3], $$[$0]); + break; + case 83: + this.$ = $$[$0 - 5]; + yy.setLink($$[$0 - 4], $$[$0 - 2], $$[$0]); + yy.setTooltip($$[$0 - 4], $$[$0 - 1]); + break; + case 84: + this.$ = $$[$0 - 2]; + yy.setCssStyle($$[$0 - 1], $$[$0]); + break; + case 85: + yy.setCssClass($$[$0 - 1], $$[$0]); + break; + case 86: + this.$ = [$$[$0]]; + break; + case 87: + $$[$0 - 2].push($$[$0]); + this.$ = $$[$0 - 2]; + break; + case 89: + this.$ = $$[$0 - 1] + $$[$0]; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: [1, 6], 10: 5, 16: 37, 17: 20, 18: 38, 20: 7, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 27: 13, 28: 14, 29: 15, 30: 16, 31: $V0, 33: $V1, 35: $V2, 36: 21, 40: $V3, 41: 22, 44: $V4, 45: $V5, 47: $V6, 48: $V7, 50: $V8, 52: $V9, 53: $Va, 54: $Vb, 55: $Vc, 56: $Vd, 66: $Ve, 67: $Vf, 69: $Vg, 73: $Vh, 74: $Vi, 76: $Vj, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, o($Vo, [2, 5], { 8: [1, 46] }), { 8: [1, 47] }, o($Vp, [2, 16], { 21: [1, 48] }), o($Vp, [2, 18]), o($Vp, [2, 19]), o($Vp, [2, 20]), o($Vp, [2, 21]), o($Vp, [2, 22]), o($Vp, [2, 23]), o($Vp, [2, 24]), o($Vp, [2, 25]), o($Vp, [2, 26]), { 32: [1, 49] }, { 34: [1, 50] }, o($Vp, [2, 29]), o($Vp, [2, 45], { 49: 51, 57: 54, 58: 55, 13: [1, 52], 21: [1, 53], 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu, 64: $Vv, 65: $Vw }), { 37: [1, 63] }, o($Vx, [2, 36], { 37: [1, 65], 42: [1, 64] }), o($Vp, [2, 47]), o($Vp, [2, 48]), { 16: 66, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, { 16: 37, 17: 67, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 16: 37, 17: 68, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 16: 37, 17: 69, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 74: [1, 70] }, { 13: [1, 71] }, { 16: 37, 17: 72, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 13: $Vy, 51: 73 }, o($Vp, [2, 55]), o($Vp, [2, 56]), o($Vp, [2, 57]), o($Vp, [2, 58]), o($Vz, [2, 11], { 16: 37, 18: 38, 17: 75, 19: [1, 76], 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }), o($Vz, [2, 12], { 19: [1, 77] }), { 15: 78, 16: 79, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, { 16: 37, 17: 80, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($VA, [2, 112]), o($VA, [2, 113]), o($VA, [2, 114]), o($VA, [2, 115]), o([1, 8, 9, 12, 13, 19, 21, 37, 39, 42, 59, 60, 61, 62, 63, 64, 65, 70, 72], [2, 116]), o($Vo, [2, 6], { 10: 5, 20: 7, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 27: 13, 28: 14, 29: 15, 30: 16, 17: 20, 36: 21, 41: 22, 16: 37, 18: 38, 5: 81, 31: $V0, 33: $V1, 35: $V2, 40: $V3, 44: $V4, 45: $V5, 47: $V6, 48: $V7, 50: $V8, 52: $V9, 53: $Va, 54: $Vb, 55: $Vc, 56: $Vd, 66: $Ve, 67: $Vf, 69: $Vg, 73: $Vh, 74: $Vi, 76: $Vj, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }), { 5: 82, 10: 5, 16: 37, 17: 20, 18: 38, 20: 7, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 27: 13, 28: 14, 29: 15, 30: 16, 31: $V0, 33: $V1, 35: $V2, 36: 21, 40: $V3, 41: 22, 44: $V4, 45: $V5, 47: $V6, 48: $V7, 50: $V8, 52: $V9, 53: $Va, 54: $Vb, 55: $Vc, 56: $Vd, 66: $Ve, 67: $Vf, 69: $Vg, 73: $Vh, 74: $Vi, 76: $Vj, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($Vp, [2, 17]), o($Vp, [2, 27]), o($Vp, [2, 28]), { 13: [1, 84], 16: 37, 17: 83, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 49: 85, 57: 54, 58: 55, 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu, 64: $Vv, 65: $Vw }, o($Vp, [2, 46]), { 58: 86, 64: $Vv, 65: $Vw }, o($VB, [2, 62], { 57: 87, 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu }), o($VC, [2, 63]), o($VC, [2, 64]), o($VC, [2, 65]), o($VC, [2, 66]), o($VC, [2, 67]), o($VD, [2, 68]), o($VD, [2, 69]), { 8: [1, 89], 23: 90, 38: 88, 41: 22, 44: $V4 }, { 16: 91, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, { 43: 92, 47: $VE }, { 46: [1, 94] }, { 13: [1, 95] }, { 13: [1, 96] }, { 70: [1, 97], 72: [1, 98] }, { 21: $VF, 73: $VG, 74: $VH, 75: 99, 77: 100, 79: 101, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }, { 74: [1, 111] }, { 13: $Vy, 51: 112 }, o($Vp, [2, 54]), o($Vp, [2, 117]), o($Vz, [2, 13]), o($Vz, [2, 14]), o($Vz, [2, 15]), { 37: [2, 32] }, { 15: 113, 16: 79, 37: [2, 9], 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, o($VO, [2, 40], { 11: 114, 12: [1, 115] }), o($Vo, [2, 7]), { 9: [1, 116] }, o($VP, [2, 49]), { 16: 37, 17: 117, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 13: [1, 119], 16: 37, 17: 118, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($VB, [2, 61], { 57: 120, 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu }), o($VB, [2, 60]), { 39: [1, 121] }, { 23: 90, 38: 122, 41: 22, 44: $V4 }, { 8: [1, 123], 39: [2, 33] }, o($Vx, [2, 37], { 37: [1, 124] }), { 39: [1, 125] }, { 39: [2, 43], 43: 126, 47: $VE }, { 16: 37, 17: 127, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($Vp, [2, 70], { 13: [1, 128] }), o($Vp, [2, 72], { 13: [1, 130], 68: [1, 129] }), o($Vp, [2, 76], { 13: [1, 131], 71: [1, 132] }), { 13: [1, 133] }, o($Vp, [2, 84], { 78: [1, 134] }), o($VQ, [2, 86], { 79: 135, 21: $VF, 73: $VG, 74: $VH, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }), o($VR, [2, 88]), o($VR, [2, 90]), o($VR, [2, 91]), o($VR, [2, 92]), o($VR, [2, 93]), o($VR, [2, 94]), o($VR, [2, 95]), o($VR, [2, 96]), o($VR, [2, 97]), o($VR, [2, 98]), o($Vp, [2, 85]), o($Vp, [2, 53]), { 37: [2, 10] }, o($VO, [2, 41]), { 13: [1, 136] }, { 1: [2, 4] }, o($VP, [2, 51]), o($VP, [2, 50]), { 16: 37, 17: 137, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($VB, [2, 59]), o($Vp, [2, 30]), { 39: [1, 138] }, { 23: 90, 38: 139, 39: [2, 34], 41: 22, 44: $V4 }, { 43: 140, 47: $VE }, o($Vx, [2, 38]), { 39: [2, 44] }, o($Vp, [2, 42]), o($Vp, [2, 71]), o($Vp, [2, 73]), o($Vp, [2, 74], { 68: [1, 141] }), o($Vp, [2, 77]), o($Vp, [2, 78], { 13: [1, 142] }), o($Vp, [2, 80], { 13: [1, 144], 68: [1, 143] }), { 21: $VF, 73: $VG, 74: $VH, 77: 145, 79: 101, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }, o($VR, [2, 89]), { 14: [1, 146] }, o($VP, [2, 52]), o($Vp, [2, 31]), { 39: [2, 35] }, { 39: [1, 147] }, o($Vp, [2, 75]), o($Vp, [2, 79]), o($Vp, [2, 81]), o($Vp, [2, 82], { 68: [1, 148] }), o($VQ, [2, 87], { 79: 135, 21: $VF, 73: $VG, 74: $VH, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }), o($VO, [2, 8]), o($Vx, [2, 39]), o($Vp, [2, 83])], + defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 3], 78: [2, 32], 113: [2, 10], 116: [2, 4], 126: [2, 44], 139: [2, 35] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: {}, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + return 53; + case 1: + return 54; + case 2: + return 55; + case 3: + return 56; + case 4: + break; + case 5: + break; + case 6: + this.begin("acc_title"); + return 31; + case 7: + this.popState(); + return "acc_title_value"; + case 8: + this.begin("acc_descr"); + return 33; + case 9: + this.popState(); + return "acc_descr_value"; + case 10: + this.begin("acc_descr_multiline"); + break; + case 11: + this.popState(); + break; + case 12: + return "acc_descr_multiline_value"; + case 13: + return 8; + case 14: + break; + case 15: + return 7; + case 16: + return 7; + case 17: + return "EDGE_STATE"; + case 18: + this.begin("callback_name"); + break; + case 19: + this.popState(); + break; + case 20: + this.popState(); + this.begin("callback_args"); + break; + case 21: + return 70; + case 22: + this.popState(); + break; + case 23: + return 71; + case 24: + this.popState(); + break; + case 25: + return "STR"; + case 26: + this.begin("string"); + break; + case 27: + return 73; + case 28: + this.begin("namespace"); + return 40; + case 29: + this.popState(); + return 8; + case 30: + break; + case 31: + this.begin("namespace-body"); + return 37; + case 32: + this.popState(); + return 39; + case 33: + return "EOF_IN_STRUCT"; + case 34: + return 8; + case 35: + break; + case 36: + return "EDGE_STATE"; + case 37: + this.begin("class"); + return 44; + case 38: + this.popState(); + return 8; + case 39: + break; + case 40: + this.popState(); + this.popState(); + return 39; + case 41: + this.begin("class-body"); + return 37; + case 42: + this.popState(); + return 39; + case 43: + return "EOF_IN_STRUCT"; + case 44: + return "EDGE_STATE"; + case 45: + return "OPEN_IN_STRUCT"; + case 46: + break; + case 47: + return "MEMBER"; + case 48: + return 76; + case 49: + return 66; + case 50: + return 67; + case 51: + return 69; + case 52: + return 50; + case 53: + return 52; + case 54: + return 45; + case 55: + return 46; + case 56: + return 72; + case 57: + this.popState(); + break; + case 58: + return "GENERICTYPE"; + case 59: + this.begin("generic"); + break; + case 60: + this.popState(); + break; + case 61: + return "BQUOTE_STR"; + case 62: + this.begin("bqstring"); + break; + case 63: + return 68; + case 64: + return 68; + case 65: + return 68; + case 66: + return 68; + case 67: + return 60; + case 68: + return 60; + case 69: + return 62; + case 70: + return 62; + case 71: + return 61; + case 72: + return 59; + case 73: + return 63; + case 74: + return 64; + case 75: + return 65; + case 76: + return 21; + case 77: + return 42; + case 78: + return 95; + case 79: + return "DOT"; + case 80: + return "PLUS"; + case 81: + return 81; + case 82: + return 78; + case 83: + return 84; + case 84: + return 84; + case 85: + return 85; + case 86: + return "EQUALS"; + case 87: + return "EQUALS"; + case 88: + return 74; + case 89: + return 12; + case 90: + return 14; + case 91: + return "PUNCTUATION"; + case 92: + return 80; + case 93: + return 97; + case 94: + return 83; + case 95: + return 83; + case 96: + return 9; + } + }, + rules: [/^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:classDiagram-v2\b)/, /^(?:classDiagram\b)/, /^(?:\[\*\])/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:["])/, /^(?:[^"]*)/, /^(?:["])/, /^(?:style\b)/, /^(?:namespace\b)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:[{])/, /^(?:[}])/, /^(?:$)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:\[\*\])/, /^(?:class\b)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:[}])/, /^(?:[{])/, /^(?:[}])/, /^(?:$)/, /^(?:\[\*\])/, /^(?:[{])/, /^(?:[\n])/, /^(?:[^{}\n]*)/, /^(?:cssClass\b)/, /^(?:callback\b)/, /^(?:link\b)/, /^(?:click\b)/, /^(?:note for\b)/, /^(?:note\b)/, /^(?:<<)/, /^(?:>>)/, /^(?:href\b)/, /^(?:[~])/, /^(?:[^~]*)/, /^(?:~)/, /^(?:[`])/, /^(?:[^`]+)/, /^(?:[`])/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:\s*<\|)/, /^(?:\s*\|>)/, /^(?:\s*>)/, /^(?:\s*<)/, /^(?:\s*\*)/, /^(?:\s*o\b)/, /^(?:\s*\(\))/, /^(?:--)/, /^(?:\.\.)/, /^(?::{1}[^:\n;]+)/, /^(?::{3})/, /^(?:-)/, /^(?:\.)/, /^(?:\+)/, /^(?::)/, /^(?:,)/, /^(?:#)/, /^(?:#)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:\w+)/, /^(?:\[)/, /^(?:\])/, /^(?:[!"#$%&'*+,-.`?\\/])/, /^(?:[0-9]+)/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\s)/, /^(?:\s)/, /^(?:$)/], + conditions: { "namespace-body": { "rules": [26, 32, 33, 34, 35, 36, 37, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "namespace": { "rules": [26, 28, 29, 30, 31, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "class-body": { "rules": [26, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "class": { "rules": [26, 38, 39, 40, 41, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "acc_descr_multiline": { "rules": [11, 12, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "acc_descr": { "rules": [9, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "acc_title": { "rules": [7, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "callback_args": { "rules": [22, 23, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "callback_name": { "rules": [19, 20, 21, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "href": { "rules": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "struct": { "rules": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "generic": { "rules": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "bqstring": { "rules": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "string": { "rules": [24, 25, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 26, 27, 28, 37, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +const visibilityValues = ["#", "+", "~", "-", ""]; +class ClassMember { + constructor(input, memberType) { + this.memberType = memberType; + this.visibility = ""; + this.classifier = ""; + const sanitizedInput = sanitizeText$1(input, getConfig()); + this.parseMember(sanitizedInput); + } + getDisplayDetails() { + let displayText = this.visibility + parseGenericTypes(this.id); + if (this.memberType === "method") { + displayText += `(${parseGenericTypes(this.parameters.trim())})`; + if (this.returnType) { + displayText += " : " + parseGenericTypes(this.returnType); + } + } + displayText = displayText.trim(); + const cssStyle = this.parseClassifier(); + return { + displayText, + cssStyle + }; + } + parseMember(input) { + let potentialClassifier = ""; + if (this.memberType === "method") { + const methodRegEx = /([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/; + const match = input.match(methodRegEx); + if (match) { + const detectedVisibility = match[1] ? match[1].trim() : ""; + if (visibilityValues.includes(detectedVisibility)) { + this.visibility = detectedVisibility; + } + this.id = match[2].trim(); + this.parameters = match[3] ? match[3].trim() : ""; + potentialClassifier = match[4] ? match[4].trim() : ""; + this.returnType = match[5] ? match[5].trim() : ""; + if (potentialClassifier === "") { + const lastChar = this.returnType.substring(this.returnType.length - 1); + if (lastChar.match(/[$*]/)) { + potentialClassifier = lastChar; + this.returnType = this.returnType.substring(0, this.returnType.length - 1); + } + } + } + } else { + const length = input.length; + const firstChar = input.substring(0, 1); + const lastChar = input.substring(length - 1); + if (visibilityValues.includes(firstChar)) { + this.visibility = firstChar; + } + if (lastChar.match(/[$*]/)) { + potentialClassifier = lastChar; + } + this.id = input.substring( + this.visibility === "" ? 0 : 1, + potentialClassifier === "" ? length : length - 1 + ); + } + this.classifier = potentialClassifier; + } + parseClassifier() { + switch (this.classifier) { + case "*": + return "font-style:italic;"; + case "$": + return "text-decoration:underline;"; + default: + return ""; + } + } +} +const MERMAID_DOM_ID_PREFIX = "classId-"; +let relations = []; +let classes = {}; +let notes = []; +let classCounter = 0; +let namespaces = {}; +let namespaceCounter = 0; +let functions = []; +const sanitizeText = (txt) => common.sanitizeText(txt, getConfig()); +const splitClassNameAndType = function(_id) { + const id = common.sanitizeText(_id, getConfig()); + let genericType = ""; + let className = id; + if (id.indexOf("~") > 0) { + const split = id.split("~"); + className = sanitizeText(split[0]); + genericType = sanitizeText(split[1]); + } + return { className, type: genericType }; +}; +const setClassLabel = function(_id, label) { + const id = common.sanitizeText(_id, getConfig()); + if (label) { + label = sanitizeText(label); + } + const { className } = splitClassNameAndType(id); + classes[className].label = label; +}; +const addClass = function(_id) { + const id = common.sanitizeText(_id, getConfig()); + const { className, type } = splitClassNameAndType(id); + if (Object.hasOwn(classes, className)) { + return; + } + const name = common.sanitizeText(className, getConfig()); + classes[name] = { + id: name, + type, + label: name, + cssClasses: [], + methods: [], + members: [], + annotations: [], + styles: [], + domId: MERMAID_DOM_ID_PREFIX + name + "-" + classCounter + }; + classCounter++; +}; +const lookUpDomId = function(_id) { + const id = common.sanitizeText(_id, getConfig()); + if (id in classes) { + return classes[id].domId; + } + throw new Error("Class not found: " + id); +}; +const clear = function() { + relations = []; + classes = {}; + notes = []; + functions = []; + functions.push(setupToolTips); + namespaces = {}; + namespaceCounter = 0; + clear$1(); +}; +const getClass = function(id) { + return classes[id]; +}; +const getClasses = function() { + return classes; +}; +const getRelations = function() { + return relations; +}; +const getNotes = function() { + return notes; +}; +const addRelation = function(relation) { + log.debug("Adding relation: " + JSON.stringify(relation)); + addClass(relation.id1); + addClass(relation.id2); + relation.id1 = splitClassNameAndType(relation.id1).className; + relation.id2 = splitClassNameAndType(relation.id2).className; + relation.relationTitle1 = common.sanitizeText(relation.relationTitle1.trim(), getConfig()); + relation.relationTitle2 = common.sanitizeText(relation.relationTitle2.trim(), getConfig()); + relations.push(relation); +}; +const addAnnotation = function(className, annotation) { + const validatedClassName = splitClassNameAndType(className).className; + classes[validatedClassName].annotations.push(annotation); +}; +const addMember = function(className, member) { + addClass(className); + const validatedClassName = splitClassNameAndType(className).className; + const theClass = classes[validatedClassName]; + if (typeof member === "string") { + const memberString = member.trim(); + if (memberString.startsWith("<<") && memberString.endsWith(">>")) { + theClass.annotations.push(sanitizeText(memberString.substring(2, memberString.length - 2))); + } else if (memberString.indexOf(")") > 0) { + theClass.methods.push(new ClassMember(memberString, "method")); + } else if (memberString) { + theClass.members.push(new ClassMember(memberString, "attribute")); + } + } +}; +const addMembers = function(className, members) { + if (Array.isArray(members)) { + members.reverse(); + members.forEach((member) => addMember(className, member)); + } +}; +const addNote = function(text, className) { + const note = { + id: `note${notes.length}`, + class: className, + text + }; + notes.push(note); +}; +const cleanupLabel = function(label) { + if (label.startsWith(":")) { + label = label.substring(1); + } + return sanitizeText(label.trim()); +}; +const setCssClass = function(ids, className) { + ids.split(",").forEach(function(_id) { + let id = _id; + if (_id[0].match(/\d/)) { + id = MERMAID_DOM_ID_PREFIX + id; + } + if (classes[id] !== void 0) { + classes[id].cssClasses.push(className); + } + }); +}; +const setTooltip = function(ids, tooltip) { + ids.split(",").forEach(function(id) { + if (tooltip !== void 0) { + classes[id].tooltip = sanitizeText(tooltip); + } + }); +}; +const getTooltip = function(id, namespace) { + if (namespace) { + return namespaces[namespace].classes[id].tooltip; + } + return classes[id].tooltip; +}; +const setLink = function(ids, linkStr, target) { + const config = getConfig(); + ids.split(",").forEach(function(_id) { + let id = _id; + if (_id[0].match(/\d/)) { + id = MERMAID_DOM_ID_PREFIX + id; + } + if (classes[id] !== void 0) { + classes[id].link = utils.formatUrl(linkStr, config); + if (config.securityLevel === "sandbox") { + classes[id].linkTarget = "_top"; + } else if (typeof target === "string") { + classes[id].linkTarget = sanitizeText(target); + } else { + classes[id].linkTarget = "_blank"; + } + } + }); + setCssClass(ids, "clickable"); +}; +const setClickEvent = function(ids, functionName, functionArgs) { + ids.split(",").forEach(function(id) { + setClickFunc(id, functionName, functionArgs); + classes[id].haveCallback = true; + }); + setCssClass(ids, "clickable"); +}; +const setClickFunc = function(_domId, functionName, functionArgs) { + const domId = common.sanitizeText(_domId, getConfig()); + const config = getConfig(); + if (config.securityLevel !== "loose") { + return; + } + if (functionName === void 0) { + return; + } + const id = domId; + if (classes[id] !== void 0) { + const elemId = lookUpDomId(id); + let argList = []; + if (typeof functionArgs === "string") { + argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/); + for (let i = 0; i < argList.length; i++) { + let item = argList[i].trim(); + if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') { + item = item.substr(1, item.length - 2); + } + argList[i] = item; + } + } + if (argList.length === 0) { + argList.push(elemId); + } + functions.push(function() { + const elem = document.querySelector(`[id="${elemId}"]`); + if (elem !== null) { + elem.addEventListener( + "click", + function() { + utils.runFunc(functionName, ...argList); + }, + false + ); + } + }); + } +}; +const bindFunctions = function(element) { + functions.forEach(function(fun) { + fun(element); + }); +}; +const lineType = { + LINE: 0, + DOTTED_LINE: 1 +}; +const relationType = { + AGGREGATION: 0, + EXTENSION: 1, + COMPOSITION: 2, + DEPENDENCY: 3, + LOLLIPOP: 4 +}; +const setupToolTips = function(element) { + let tooltipElem = select(".mermaidTooltip"); + if ((tooltipElem._groups || tooltipElem)[0][0] === null) { + tooltipElem = select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0); + } + const svg = select(element).select("svg"); + const nodes = svg.selectAll("g.node"); + nodes.on("mouseover", function() { + const el = select(this); + const title = el.attr("title"); + if (title === null) { + return; + } + const rect = this.getBoundingClientRect(); + tooltipElem.transition().duration(200).style("opacity", ".9"); + tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect.left + (rect.right - rect.left) / 2 + "px").style("top", window.scrollY + rect.top - 14 + document.body.scrollTop + "px"); + tooltipElem.html(tooltipElem.html().replace(/<br\/>/g, "
")); + el.classed("hover", true); + }).on("mouseout", function() { + tooltipElem.transition().duration(500).style("opacity", 0); + const el = select(this); + el.classed("hover", false); + }); +}; +functions.push(setupToolTips); +let direction = "TB"; +const getDirection = () => direction; +const setDirection = (dir) => { + direction = dir; +}; +const addNamespace = function(id) { + if (namespaces[id] !== void 0) { + return; + } + namespaces[id] = { + id, + classes: {}, + children: {}, + domId: MERMAID_DOM_ID_PREFIX + id + "-" + namespaceCounter + }; + namespaceCounter++; +}; +const getNamespace = function(name) { + return namespaces[name]; +}; +const getNamespaces = function() { + return namespaces; +}; +const addClassesToNamespace = function(id, classNames) { + if (namespaces[id] === void 0) { + return; + } + for (const name of classNames) { + const { className } = splitClassNameAndType(name); + classes[className].parent = id; + namespaces[id].classes[className] = classes[className]; + } +}; +const setCssStyle = function(id, styles2) { + const thisClass = classes[id]; + if (!styles2 || !thisClass) { + return; + } + for (const s of styles2) { + if (s.includes(",")) { + thisClass.styles.push(...s.split(",")); + } else { + thisClass.styles.push(s); + } + } +}; +const db = { + setAccTitle, + getAccTitle, + getAccDescription, + setAccDescription, + getConfig: () => getConfig().class, + addClass, + bindFunctions, + clear, + getClass, + getClasses, + getNotes, + addAnnotation, + addNote, + getRelations, + addRelation, + getDirection, + setDirection, + addMember, + addMembers, + cleanupLabel, + lineType, + relationType, + setClickEvent, + setCssClass, + setLink, + getTooltip, + setTooltip, + lookUpDomId, + setDiagramTitle, + getDiagramTitle, + setClassLabel, + addNamespace, + addClassesToNamespace, + getNamespace, + getNamespaces, + setCssStyle +}; +const getStyles = (options) => `g.classGroup text { + fill: ${options.nodeBorder || options.classText}; + stroke: none; + font-family: ${options.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${options.classText}; +} +.edgeLabel .label rect { + fill: ${options.mainBkg}; +} +.label text { + fill: ${options.classText}; +} +.edgeLabel .label span { + background: ${options.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${options.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; +} + +g.classGroup line { + stroke: ${options.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${options.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${options.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${options.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${options.lineColor} !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${options.lineColor} !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${options.lineColor} !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${options.lineColor} !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${options.mainBkg} !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${options.mainBkg} !important; + stroke: ${options.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.textColor}; +} +`; +const styles = getStyles; +export { + db as d, + parser$1 as p, + styles as s +}; diff --git a/assets/lib/mermaid/styles-cacbff60.js b/assets/lib/mermaid/styles-cacbff60.js new file mode 100644 index 000000000..d03fb664d --- /dev/null +++ b/assets/lib/mermaid/styles-cacbff60.js @@ -0,0 +1,960 @@ +import { c as Y, g as Ut, s as zt, a as Mt, b as Ht, C as Xt, D as Kt, l as D, f as ot, E as Wt, a7 as Jt } from "./mermaid-9f2aa176.js"; +var gt = function() { + var t = function(C, r, n, i) { + for (n = n || {}, i = C.length; i--; n[C[i]] = r) + ; + return n; + }, s = [1, 2], a = [1, 3], h = [1, 4], f = [2, 4], d = [1, 9], y = [1, 11], k = [1, 15], u = [1, 16], E = [1, 17], T = [1, 18], R = [1, 30], G = [1, 19], j = [1, 20], U = [1, 21], z = [1, 22], M = [1, 23], H = [1, 25], X = [1, 26], K = [1, 27], W = [1, 28], J = [1, 29], q = [1, 32], Q = [1, 33], Z = [1, 34], tt = [1, 35], w = [1, 31], c = [1, 4, 5, 15, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50], et = [1, 4, 5, 13, 14, 15, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50], Dt = [4, 5, 15, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50], ht = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, SPACE: 4, NL: 5, SD: 6, document: 7, line: 8, statement: 9, classDefStatement: 10, cssClassStatement: 11, idStatement: 12, DESCR: 13, "-->": 14, HIDE_EMPTY: 15, scale: 16, WIDTH: 17, COMPOSIT_STATE: 18, STRUCT_START: 19, STRUCT_STOP: 20, STATE_DESCR: 21, AS: 22, ID: 23, FORK: 24, JOIN: 25, CHOICE: 26, CONCURRENT: 27, note: 28, notePosition: 29, NOTE_TEXT: 30, direction: 31, acc_title: 32, acc_title_value: 33, acc_descr: 34, acc_descr_value: 35, acc_descr_multiline_value: 36, classDef: 37, CLASSDEF_ID: 38, CLASSDEF_STYLEOPTS: 39, DEFAULT: 40, class: 41, CLASSENTITY_IDS: 42, STYLECLASS: 43, direction_tb: 44, direction_bt: 45, direction_rl: 46, direction_lr: 47, eol: 48, ";": 49, EDGE_STATE: 50, STYLE_SEPARATOR: 51, left_of: 52, right_of: 53, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 4: "SPACE", 5: "NL", 6: "SD", 13: "DESCR", 14: "-->", 15: "HIDE_EMPTY", 16: "scale", 17: "WIDTH", 18: "COMPOSIT_STATE", 19: "STRUCT_START", 20: "STRUCT_STOP", 21: "STATE_DESCR", 22: "AS", 23: "ID", 24: "FORK", 25: "JOIN", 26: "CHOICE", 27: "CONCURRENT", 28: "note", 30: "NOTE_TEXT", 32: "acc_title", 33: "acc_title_value", 34: "acc_descr", 35: "acc_descr_value", 36: "acc_descr_multiline_value", 37: "classDef", 38: "CLASSDEF_ID", 39: "CLASSDEF_STYLEOPTS", 40: "DEFAULT", 41: "class", 42: "CLASSENTITY_IDS", 43: "STYLECLASS", 44: "direction_tb", 45: "direction_bt", 46: "direction_rl", 47: "direction_lr", 49: ";", 50: "EDGE_STATE", 51: "STYLE_SEPARATOR", 52: "left_of", 53: "right_of" }, + productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 3], [9, 4], [9, 1], [9, 2], [9, 1], [9, 4], [9, 3], [9, 6], [9, 1], [9, 1], [9, 1], [9, 1], [9, 4], [9, 4], [9, 1], [9, 2], [9, 2], [9, 1], [10, 3], [10, 3], [11, 3], [31, 1], [31, 1], [31, 1], [31, 1], [48, 1], [48, 1], [12, 1], [12, 1], [12, 3], [12, 3], [29, 1], [29, 1]], + performAction: function(r, n, i, o, p, e, $) { + var l = e.length - 1; + switch (p) { + case 3: + return o.setRootDoc(e[l]), e[l]; + case 4: + this.$ = []; + break; + case 5: + e[l] != "nl" && (e[l - 1].push(e[l]), this.$ = e[l - 1]); + break; + case 6: + case 7: + this.$ = e[l]; + break; + case 8: + this.$ = "nl"; + break; + case 11: + this.$ = e[l]; + break; + case 12: + const B = e[l - 1]; + B.description = o.trimColon(e[l]), this.$ = B; + break; + case 13: + this.$ = { stmt: "relation", state1: e[l - 2], state2: e[l] }; + break; + case 14: + const ft = o.trimColon(e[l]); + this.$ = { stmt: "relation", state1: e[l - 3], state2: e[l - 1], description: ft }; + break; + case 18: + this.$ = { stmt: "state", id: e[l - 3], type: "default", description: "", doc: e[l - 1] }; + break; + case 19: + var A = e[l], O = e[l - 2].trim(); + if (e[l].match(":")) { + var st = e[l].split(":"); + A = st[0], O = [O, st[1]]; + } + this.$ = { stmt: "state", id: A, type: "default", description: O }; + break; + case 20: + this.$ = { stmt: "state", id: e[l - 3], type: "default", description: e[l - 5], doc: e[l - 1] }; + break; + case 21: + this.$ = { stmt: "state", id: e[l], type: "fork" }; + break; + case 22: + this.$ = { stmt: "state", id: e[l], type: "join" }; + break; + case 23: + this.$ = { stmt: "state", id: e[l], type: "choice" }; + break; + case 24: + this.$ = { stmt: "state", id: o.getDividerId(), type: "divider" }; + break; + case 25: + this.$ = { stmt: "state", id: e[l - 1].trim(), note: { position: e[l - 2].trim(), text: e[l].trim() } }; + break; + case 28: + this.$ = e[l].trim(), o.setAccTitle(this.$); + break; + case 29: + case 30: + this.$ = e[l].trim(), o.setAccDescription(this.$); + break; + case 31: + case 32: + this.$ = { stmt: "classDef", id: e[l - 1].trim(), classes: e[l].trim() }; + break; + case 33: + this.$ = { stmt: "applyClass", id: e[l - 1].trim(), styleClass: e[l].trim() }; + break; + case 34: + o.setDirection("TB"), this.$ = { stmt: "dir", value: "TB" }; + break; + case 35: + o.setDirection("BT"), this.$ = { stmt: "dir", value: "BT" }; + break; + case 36: + o.setDirection("RL"), this.$ = { stmt: "dir", value: "RL" }; + break; + case 37: + o.setDirection("LR"), this.$ = { stmt: "dir", value: "LR" }; + break; + case 40: + case 41: + this.$ = { stmt: "state", id: e[l].trim(), type: "default", description: "" }; + break; + case 42: + this.$ = { stmt: "state", id: e[l - 2].trim(), classes: [e[l].trim()], type: "default", description: "" }; + break; + case 43: + this.$ = { stmt: "state", id: e[l - 2].trim(), classes: [e[l].trim()], type: "default", description: "" }; + break; + } + }, + table: [{ 3: 1, 4: s, 5: a, 6: h }, { 1: [3] }, { 3: 5, 4: s, 5: a, 6: h }, { 3: 6, 4: s, 5: a, 6: h }, t([1, 4, 5, 15, 16, 18, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50], f, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: d, 5: y, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 15: k, 16: u, 18: E, 21: T, 23: R, 24: G, 25: j, 26: U, 27: z, 28: M, 31: 24, 32: H, 34: X, 36: K, 37: W, 41: J, 44: q, 45: Q, 46: Z, 47: tt, 50: w }, t(c, [2, 5]), { 9: 36, 10: 12, 11: 13, 12: 14, 15: k, 16: u, 18: E, 21: T, 23: R, 24: G, 25: j, 26: U, 27: z, 28: M, 31: 24, 32: H, 34: X, 36: K, 37: W, 41: J, 44: q, 45: Q, 46: Z, 47: tt, 50: w }, t(c, [2, 7]), t(c, [2, 8]), t(c, [2, 9]), t(c, [2, 10]), t(c, [2, 11], { 13: [1, 37], 14: [1, 38] }), t(c, [2, 15]), { 17: [1, 39] }, t(c, [2, 17], { 19: [1, 40] }), { 22: [1, 41] }, t(c, [2, 21]), t(c, [2, 22]), t(c, [2, 23]), t(c, [2, 24]), { 29: 42, 30: [1, 43], 52: [1, 44], 53: [1, 45] }, t(c, [2, 27]), { 33: [1, 46] }, { 35: [1, 47] }, t(c, [2, 30]), { 38: [1, 48], 40: [1, 49] }, { 42: [1, 50] }, t(et, [2, 40], { 51: [1, 51] }), t(et, [2, 41], { 51: [1, 52] }), t(c, [2, 34]), t(c, [2, 35]), t(c, [2, 36]), t(c, [2, 37]), t(c, [2, 6]), t(c, [2, 12]), { 12: 53, 23: R, 50: w }, t(c, [2, 16]), t(Dt, f, { 7: 54 }), { 23: [1, 55] }, { 23: [1, 56] }, { 22: [1, 57] }, { 23: [2, 44] }, { 23: [2, 45] }, t(c, [2, 28]), t(c, [2, 29]), { 39: [1, 58] }, { 39: [1, 59] }, { 43: [1, 60] }, { 23: [1, 61] }, { 23: [1, 62] }, t(c, [2, 13], { 13: [1, 63] }), { 4: d, 5: y, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 15: k, 16: u, 18: E, 20: [1, 64], 21: T, 23: R, 24: G, 25: j, 26: U, 27: z, 28: M, 31: 24, 32: H, 34: X, 36: K, 37: W, 41: J, 44: q, 45: Q, 46: Z, 47: tt, 50: w }, t(c, [2, 19], { 19: [1, 65] }), { 30: [1, 66] }, { 23: [1, 67] }, t(c, [2, 31]), t(c, [2, 32]), t(c, [2, 33]), t(et, [2, 42]), t(et, [2, 43]), t(c, [2, 14]), t(c, [2, 18]), t(Dt, f, { 7: 68 }), t(c, [2, 25]), t(c, [2, 26]), { 4: d, 5: y, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 15: k, 16: u, 18: E, 20: [1, 69], 21: T, 23: R, 24: G, 25: j, 26: U, 27: z, 28: M, 31: 24, 32: H, 34: X, 36: K, 37: W, 41: J, 44: q, 45: Q, 46: Z, 47: tt, 50: w }, t(c, [2, 20])], + defaultActions: { 5: [2, 1], 6: [2, 2], 44: [2, 44], 45: [2, 45] }, + parseError: function(r, n) { + if (n.recoverable) + this.trace(r); + else { + var i = new Error(r); + throw i.hash = n, i; + } + }, + parse: function(r) { + var n = this, i = [0], o = [], p = [null], e = [], $ = this.table, l = "", A = 0, O = 0, st = 2, B = 1, ft = e.slice.call(arguments, 1), S = Object.create(this.lexer), L = { yy: {} }; + for (var dt in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, dt) && (L.yy[dt] = this.yy[dt]); + S.setInput(r, L.yy), L.yy.lexer = S, L.yy.parser = this, typeof S.yylloc > "u" && (S.yylloc = {}); + var yt = S.yylloc; + e.push(yt); + var Gt = S.options && S.options.ranges; + typeof L.yy.parseError == "function" ? this.parseError = L.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function jt() { + var x; + return x = o.pop() || S.lex() || B, typeof x != "number" && (x instanceof Array && (o = x, x = o.pop()), x = n.symbols_[x] || x), x; + } + for (var _, v, m, pt, N = {}, it, b, Ct, rt; ; ) { + if (v = i[i.length - 1], this.defaultActions[v] ? m = this.defaultActions[v] : ((_ === null || typeof _ > "u") && (_ = jt()), m = $[v] && $[v][_]), typeof m > "u" || !m.length || !m[0]) { + var St = ""; + rt = []; + for (it in $[v]) + this.terminals_[it] && it > st && rt.push("'" + this.terminals_[it] + "'"); + S.showPosition ? St = "Parse error on line " + (A + 1) + `: +` + S.showPosition() + ` +Expecting ` + rt.join(", ") + ", got '" + (this.terminals_[_] || _) + "'" : St = "Parse error on line " + (A + 1) + ": Unexpected " + (_ == B ? "end of input" : "'" + (this.terminals_[_] || _) + "'"), this.parseError(St, { + text: S.match, + token: this.terminals_[_] || _, + line: S.yylineno, + loc: yt, + expected: rt + }); + } + if (m[0] instanceof Array && m.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + v + ", token: " + _); + switch (m[0]) { + case 1: + i.push(_), p.push(S.yytext), e.push(S.yylloc), i.push(m[1]), _ = null, O = S.yyleng, l = S.yytext, A = S.yylineno, yt = S.yylloc; + break; + case 2: + if (b = this.productions_[m[1]][1], N.$ = p[p.length - b], N._$ = { + first_line: e[e.length - (b || 1)].first_line, + last_line: e[e.length - 1].last_line, + first_column: e[e.length - (b || 1)].first_column, + last_column: e[e.length - 1].last_column + }, Gt && (N._$.range = [ + e[e.length - (b || 1)].range[0], + e[e.length - 1].range[1] + ]), pt = this.performAction.apply(N, [ + l, + O, + A, + L.yy, + m[1], + p, + e + ].concat(ft)), typeof pt < "u") + return pt; + b && (i = i.slice(0, -1 * b * 2), p = p.slice(0, -1 * b), e = e.slice(0, -1 * b)), i.push(this.productions_[m[1]][0]), p.push(N.$), e.push(N._$), Ct = $[i[i.length - 2]][i[i.length - 1]], i.push(Ct); + break; + case 3: + return !0; + } + } + return !0; + } + }, Yt = function() { + var C = { + EOF: 1, + parseError: function(n, i) { + if (this.yy.parser) + this.yy.parser.parseError(n, i); + else + throw new Error(n); + }, + // resets the lexer, sets new input + setInput: function(r, n) { + return this.yy = n || this.yy || {}, this._input = r, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var r = this._input[0]; + this.yytext += r, this.yyleng++, this.offset++, this.match += r, this.matched += r; + var n = r.match(/(?:\r\n?|\n).*/g); + return n ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), r; + }, + // unshifts one char (or a string) into the input + unput: function(r) { + var n = r.length, i = r.split(/(?:\r\n?|\n)/g); + this._input = r + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - n), this.offset -= n; + var o = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), i.length - 1 && (this.yylineno -= i.length - 1); + var p = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: i ? (i.length === o.length ? this.yylloc.first_column : 0) + o[o.length - i.length].length - i[0].length : this.yylloc.first_column - n + }, this.options.ranges && (this.yylloc.range = [p[0], p[0] + this.yyleng - n]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(r) { + this.unput(this.match.slice(r)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var r = this.matched.substr(0, this.matched.length - this.match.length); + return (r.length > 20 ? "..." : "") + r.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var r = this.match; + return r.length < 20 && (r += this._input.substr(0, 20 - r.length)), (r.substr(0, 20) + (r.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var r = this.pastInput(), n = new Array(r.length + 1).join("-"); + return r + this.upcomingInput() + ` +` + n + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(r, n) { + var i, o, p; + if (this.options.backtrack_lexer && (p = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (p.yylloc.range = this.yylloc.range.slice(0))), o = r[0].match(/(?:\r\n?|\n).*/g), o && (this.yylineno += o.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: o ? o[o.length - 1].length - o[o.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + r[0].length + }, this.yytext += r[0], this.match += r[0], this.matches = r, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(r[0].length), this.matched += r[0], i = this.performAction.call(this, this.yy, this, n, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), i) + return i; + if (this._backtrack) { + for (var e in p) + this[e] = p[e]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var r, n, i, o; + this._more || (this.yytext = "", this.match = ""); + for (var p = this._currentRules(), e = 0; e < p.length; e++) + if (i = this._input.match(this.rules[p[e]]), i && (!n || i[0].length > n[0].length)) { + if (n = i, o = e, this.options.backtrack_lexer) { + if (r = this.test_match(i, p[e]), r !== !1) + return r; + if (this._backtrack) { + n = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return n ? (r = this.test_match(n, p[o]), r !== !1 ? r : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var n = this.next(); + return n || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(n) { + this.conditionStack.push(n); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var n = this.conditionStack.length - 1; + return n > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(n) { + return n = this.conditionStack.length - 1 - Math.abs(n || 0), n >= 0 ? this.conditionStack[n] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(n) { + this.begin(n); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: { "case-insensitive": !0 }, + performAction: function(n, i, o, p) { + switch (o) { + case 0: + return 40; + case 1: + return 44; + case 2: + return 45; + case 3: + return 46; + case 4: + return 47; + case 5: + break; + case 6: + break; + case 7: + return 5; + case 8: + break; + case 9: + break; + case 10: + break; + case 11: + break; + case 12: + return this.pushState("SCALE"), 16; + case 13: + return 17; + case 14: + this.popState(); + break; + case 15: + return this.begin("acc_title"), 32; + case 16: + return this.popState(), "acc_title_value"; + case 17: + return this.begin("acc_descr"), 34; + case 18: + return this.popState(), "acc_descr_value"; + case 19: + this.begin("acc_descr_multiline"); + break; + case 20: + this.popState(); + break; + case 21: + return "acc_descr_multiline_value"; + case 22: + return this.pushState("CLASSDEF"), 37; + case 23: + return this.popState(), this.pushState("CLASSDEFID"), "DEFAULT_CLASSDEF_ID"; + case 24: + return this.popState(), this.pushState("CLASSDEFID"), 38; + case 25: + return this.popState(), 39; + case 26: + return this.pushState("CLASS"), 41; + case 27: + return this.popState(), this.pushState("CLASS_STYLE"), 42; + case 28: + return this.popState(), 43; + case 29: + return this.pushState("SCALE"), 16; + case 30: + return 17; + case 31: + this.popState(); + break; + case 32: + this.pushState("STATE"); + break; + case 33: + return this.popState(), i.yytext = i.yytext.slice(0, -8).trim(), 24; + case 34: + return this.popState(), i.yytext = i.yytext.slice(0, -8).trim(), 25; + case 35: + return this.popState(), i.yytext = i.yytext.slice(0, -10).trim(), 26; + case 36: + return this.popState(), i.yytext = i.yytext.slice(0, -8).trim(), 24; + case 37: + return this.popState(), i.yytext = i.yytext.slice(0, -8).trim(), 25; + case 38: + return this.popState(), i.yytext = i.yytext.slice(0, -10).trim(), 26; + case 39: + return 44; + case 40: + return 45; + case 41: + return 46; + case 42: + return 47; + case 43: + this.pushState("STATE_STRING"); + break; + case 44: + return this.pushState("STATE_ID"), "AS"; + case 45: + return this.popState(), "ID"; + case 46: + this.popState(); + break; + case 47: + return "STATE_DESCR"; + case 48: + return 18; + case 49: + this.popState(); + break; + case 50: + return this.popState(), this.pushState("struct"), 19; + case 51: + break; + case 52: + return this.popState(), 20; + case 53: + break; + case 54: + return this.begin("NOTE"), 28; + case 55: + return this.popState(), this.pushState("NOTE_ID"), 52; + case 56: + return this.popState(), this.pushState("NOTE_ID"), 53; + case 57: + this.popState(), this.pushState("FLOATING_NOTE"); + break; + case 58: + return this.popState(), this.pushState("FLOATING_NOTE_ID"), "AS"; + case 59: + break; + case 60: + return "NOTE_TEXT"; + case 61: + return this.popState(), "ID"; + case 62: + return this.popState(), this.pushState("NOTE_TEXT"), 23; + case 63: + return this.popState(), i.yytext = i.yytext.substr(2).trim(), 30; + case 64: + return this.popState(), i.yytext = i.yytext.slice(0, -8).trim(), 30; + case 65: + return 6; + case 66: + return 6; + case 67: + return 15; + case 68: + return 50; + case 69: + return 23; + case 70: + return i.yytext = i.yytext.trim(), 13; + case 71: + return 14; + case 72: + return 27; + case 73: + return 51; + case 74: + return 5; + case 75: + return "INVALID"; + } + }, + rules: [/^(?:default\b)/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:[\s]+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:classDef\s+)/i, /^(?:DEFAULT\s+)/i, /^(?:\w+\s+)/i, /^(?:[^\n]*)/i, /^(?:class\s+)/i, /^(?:(\w+)+((,\s*\w+)*))/i, /^(?:[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:state\s+)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*\[\[fork\]\])/i, /^(?:.*\[\[join\]\])/i, /^(?:.*\[\[choice\]\])/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:["])/i, /^(?:\s*as\s+)/i, /^(?:[^\n\{]*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n\s\{]+)/i, /^(?:\n)/i, /^(?:\{)/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:\})/i, /^(?:[\n])/i, /^(?:note\s+)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:")/i, /^(?:\s*as\s*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n]*)/i, /^(?:\s*[^:\n\s\-]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:[\s\S]*?end note\b)/i, /^(?:stateDiagram\s+)/i, /^(?:stateDiagram-v2\s+)/i, /^(?:hide empty description\b)/i, /^(?:\[\*\])/i, /^(?:[^:\n\s\-\{]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:-->)/i, /^(?:--)/i, /^(?::::)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { LINE: { rules: [9, 10], inclusive: !1 }, struct: { rules: [9, 10, 22, 26, 32, 39, 40, 41, 42, 51, 52, 53, 54, 68, 69, 70, 71, 72], inclusive: !1 }, FLOATING_NOTE_ID: { rules: [61], inclusive: !1 }, FLOATING_NOTE: { rules: [58, 59, 60], inclusive: !1 }, NOTE_TEXT: { rules: [63, 64], inclusive: !1 }, NOTE_ID: { rules: [62], inclusive: !1 }, NOTE: { rules: [55, 56, 57], inclusive: !1 }, CLASS_STYLE: { rules: [28], inclusive: !1 }, CLASS: { rules: [27], inclusive: !1 }, CLASSDEFID: { rules: [25], inclusive: !1 }, CLASSDEF: { rules: [23, 24], inclusive: !1 }, acc_descr_multiline: { rules: [20, 21], inclusive: !1 }, acc_descr: { rules: [18], inclusive: !1 }, acc_title: { rules: [16], inclusive: !1 }, SCALE: { rules: [13, 14, 30, 31], inclusive: !1 }, ALIAS: { rules: [], inclusive: !1 }, STATE_ID: { rules: [45], inclusive: !1 }, STATE_STRING: { rules: [46, 47], inclusive: !1 }, FORK_STATE: { rules: [], inclusive: !1 }, STATE: { rules: [9, 10, 33, 34, 35, 36, 37, 38, 43, 44, 48, 49, 50], inclusive: !1 }, ID: { rules: [9, 10], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 15, 17, 19, 22, 26, 29, 32, 50, 54, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75], inclusive: !0 } } + }; + return C; + }(); + ht.lexer = Yt; + function ut() { + this.yy = {}; + } + return ut.prototype = ht, ht.Parser = ut, new ut(); +}(); +gt.parser = gt; +const De = gt, qt = "LR", Ce = "TB", _t = "state", It = "relation", Qt = "classDef", Zt = "applyClass", Et = "default", te = "divider", bt = "[*]", Ot = "start", Nt = bt, Rt = "end", At = "color", Lt = "fill", ee = "bgFill", se = ","; +function wt() { + return {}; +} +let $t = qt, lt = [], P = wt(); +const Bt = () => ({ + relations: [], + states: {}, + documents: {} +}); +let ct = { + root: Bt() +}, g = ct.root, F = 0, vt = 0; +const ie = { + LINE: 0, + DOTTED_LINE: 1 +}, re = { + AGGREGATION: 0, + EXTENSION: 1, + COMPOSITION: 2, + DEPENDENCY: 3 +}, nt = (t) => JSON.parse(JSON.stringify(t)), ne = (t) => { + D.info("Setting root doc", t), lt = t; +}, ae = () => lt, at = (t, s, a) => { + if (s.stmt === It) + at(t, s.state1, !0), at(t, s.state2, !1); + else if (s.stmt === _t && (s.id === "[*]" ? (s.id = a ? t.id + "_start" : t.id + "_end", s.start = a) : s.id = s.id.trim()), s.doc) { + const h = []; + let f = [], d; + for (d = 0; d < s.doc.length; d++) + if (s.doc[d].type === te) { + const y = nt(s.doc[d]); + y.doc = nt(f), h.push(y), f = []; + } else + f.push(s.doc[d]); + if (h.length > 0 && f.length > 0) { + const y = { + stmt: _t, + id: Jt(), + type: "divider", + doc: nt(f) + }; + h.push(nt(y)), s.doc = h; + } + s.doc.forEach((y) => at(s, y, !0)); + } +}, le = () => (at({ id: "root" }, { id: "root", doc: lt }, !0), { id: "root", doc: lt }), ce = (t) => { + let s; + t.doc ? s = t.doc : s = t, D.info(s), Pt(!0), D.info("Extract", s), s.forEach((a) => { + switch (a.stmt) { + case _t: + I( + a.id.trim(), + a.type, + a.doc, + a.description, + a.note, + a.classes, + a.styles, + a.textStyles + ); + break; + case It: + Ft(a.state1, a.state2, a.description); + break; + case Qt: + Vt(a.id.trim(), a.classes); + break; + case Zt: + xt(a.id.trim(), a.styleClass); + break; + } + }); +}, I = function(t, s = Et, a = null, h = null, f = null, d = null, y = null, k = null) { + const u = t == null ? void 0 : t.trim(); + g.states[u] === void 0 ? (D.info("Adding state ", u, h), g.states[u] = { + id: u, + descriptions: [], + type: s, + doc: a, + note: f, + classes: [], + styles: [], + textStyles: [] + }) : (g.states[u].doc || (g.states[u].doc = a), g.states[u].type || (g.states[u].type = s)), h && (D.info("Setting state description", u, h), typeof h == "string" && kt(u, h.trim()), typeof h == "object" && h.forEach((E) => kt(u, E.trim()))), f && (g.states[u].note = f, g.states[u].note.text = ot.sanitizeText( + g.states[u].note.text, + Y() + )), d && (D.info("Setting state classes", u, d), (typeof d == "string" ? [d] : d).forEach((T) => xt(u, T.trim()))), y && (D.info("Setting state styles", u, y), (typeof y == "string" ? [y] : y).forEach((T) => _e(u, T.trim()))), k && (D.info("Setting state styles", u, y), (typeof k == "string" ? [k] : k).forEach((T) => me(u, T.trim()))); +}, Pt = function(t) { + ct = { + root: Bt() + }, g = ct.root, F = 0, P = wt(), t || Wt(); +}, V = function(t) { + return g.states[t]; +}, oe = function() { + return g.states; +}, he = function() { + D.info("Documents = ", ct); +}, ue = function() { + return g.relations; +}; +function mt(t = "") { + let s = t; + return t === bt && (F++, s = `${Ot}${F}`), s; +} +function Tt(t = "", s = Et) { + return t === bt ? Ot : s; +} +function fe(t = "") { + let s = t; + return t === Nt && (F++, s = `${Rt}${F}`), s; +} +function de(t = "", s = Et) { + return t === Nt ? Rt : s; +} +function ye(t, s, a) { + let h = mt(t.id.trim()), f = Tt(t.id.trim(), t.type), d = mt(s.id.trim()), y = Tt(s.id.trim(), s.type); + I( + h, + f, + t.doc, + t.description, + t.note, + t.classes, + t.styles, + t.textStyles + ), I( + d, + y, + s.doc, + s.description, + s.note, + s.classes, + s.styles, + s.textStyles + ), g.relations.push({ + id1: h, + id2: d, + relationTitle: ot.sanitizeText(a, Y()) + }); +} +const Ft = function(t, s, a) { + if (typeof t == "object") + ye(t, s, a); + else { + const h = mt(t.trim()), f = Tt(t), d = fe(s.trim()), y = de(s); + I(h, f), I(d, y), g.relations.push({ + id1: h, + id2: d, + title: ot.sanitizeText(a, Y()) + }); + } +}, kt = function(t, s) { + const a = g.states[t], h = s.startsWith(":") ? s.replace(":", "").trim() : s; + a.descriptions.push(ot.sanitizeText(h, Y())); +}, pe = function(t) { + return t.substring(0, 1) === ":" ? t.substr(2).trim() : t.trim(); +}, Se = () => (vt++, "divider-id-" + vt), Vt = function(t, s = "") { + P[t] === void 0 && (P[t] = { id: t, styles: [], textStyles: [] }); + const a = P[t]; + s != null && s.split(se).forEach((h) => { + const f = h.replace(/([^;]*);/, "$1").trim(); + if (h.match(At)) { + const y = f.replace(Lt, ee).replace(At, Lt); + a.textStyles.push(y); + } + a.styles.push(f); + }); +}, ge = function() { + return P; +}, xt = function(t, s) { + t.split(",").forEach(function(a) { + let h = V(a); + if (h === void 0) { + const f = a.trim(); + I(f), h = V(f); + } + h.classes.push(s); + }); +}, _e = function(t, s) { + const a = V(t); + a !== void 0 && a.textStyles.push(s); +}, me = function(t, s) { + const a = V(t); + a !== void 0 && a.textStyles.push(s); +}, Te = () => $t, ke = (t) => { + $t = t; +}, Ee = (t) => t && t[0] === ":" ? t.substr(1).trim() : t.trim(), Ae = { + getConfig: () => Y().state, + addState: I, + clear: Pt, + getState: V, + getStates: oe, + getRelations: ue, + getClasses: ge, + getDirection: Te, + addRelation: Ft, + getDividerId: Se, + setDirection: ke, + cleanupLabel: pe, + lineType: ie, + relationType: re, + logDocuments: he, + getRootDoc: ae, + setRootDoc: ne, + getRootDocV2: le, + extract: ce, + trimColon: Ee, + getAccTitle: Ut, + setAccTitle: zt, + getAccDescription: Mt, + setAccDescription: Ht, + addStyleClass: Vt, + setCssClass: xt, + addDescription: kt, + setDiagramTitle: Xt, + getDiagramTitle: Kt +}, be = (t) => ` +defs #statediagram-barbEnd { + fill: ${t.transitionColor}; + stroke: ${t.transitionColor}; + } +g.stateGroup text { + fill: ${t.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${t.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${t.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.stateGroup line { + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${t.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${t.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + + text { + fill: ${t.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${t.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel .label text { + fill: ${t.transitionLabelColor || t.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${t.transitionLabelColor || t.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${t.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node .fork-join { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node circle.state-end { + fill: ${t.innerEndBackground}; + stroke: ${t.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${t.compositeBackground || t.background}; + // stroke: ${t.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${t.stateBkg || t.mainBkg}; + stroke: ${t.stateBorder || t.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${t.mainBkg}; + stroke: ${t.stateBorder || t.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${t.lineColor}; +} + +.statediagram-cluster rect { + fill: ${t.compositeTitleBackground}; + stroke: ${t.stateBorder || t.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${t.stateLabelColor}; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${t.stateBorder || t.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${t.compositeBackground || t.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${t.altBackground ? t.altBackground : "#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${t.altBackground ? t.altBackground : "#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${t.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${t.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${t.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${t.lineColor}; + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`, Le = be; +export { + Et as D, + It as S, + te as a, + _t as b, + Ce as c, + Ae as d, + De as p, + Le as s +}; diff --git a/assets/lib/mermaid/styles-e75131e4.js b/assets/lib/mermaid/styles-e75131e4.js new file mode 100644 index 000000000..27311ebd8 --- /dev/null +++ b/assets/lib/mermaid/styles-e75131e4.js @@ -0,0 +1,433 @@ +import { G as R } from "./graph-0ee63739.js"; +import { S as z, v as F, x as j, y as U, z as H, o as N, l as g, p as K, c as v, f as G, r as q, q as E, n as L, j as C, A as W, t as X, B as J } from "./mermaid-9f2aa176.js"; +import { r as Q } from "./index-bb6d8841.js"; +import { c as Y } from "./channel-ebbc4130.js"; +function Z(e) { + return typeof e == "string" ? new z([document.querySelectorAll(e)], [document.documentElement]) : new z([j(e)], F); +} +function fe(e, l) { + return !!e.children(l).length; +} +function pe(e) { + return A(e.v) + ":" + A(e.w) + ":" + A(e.name); +} +var O = /:/g; +function A(e) { + return e ? String(e).replace(O, "\\:") : ""; +} +function ee(e, l) { + l && e.attr("style", l); +} +function be(e, l, c) { + l && e.attr("class", l).attr("class", c + " " + e.attr("class")); +} +function ue(e, l) { + var c = l.graph(); + if (U(c)) { + var a = c.transition; + if (H(a)) + return a(e); + } + return e; +} +function te(e, l) { + var c = e.append("foreignObject").attr("width", "100000"), a = c.append("xhtml:div"); + a.attr("xmlns", "http://www.w3.org/1999/xhtml"); + var i = l.label; + switch (typeof i) { + case "function": + a.insert(i); + break; + case "object": + a.insert(function() { + return i; + }); + break; + default: + a.html(i); + } + ee(a, l.labelStyle), a.style("display", "inline-block"), a.style("white-space", "nowrap"); + var d = a.node().getBoundingClientRect(); + return c.attr("width", d.width).attr("height", d.height), c; +} +const P = {}, re = function(e) { + const l = Object.keys(e); + for (const c of l) + P[c] = e[c]; +}, V = async function(e, l, c, a, i, d) { + const u = a.select(`[id="${c}"]`), o = Object.keys(e); + for (const f of o) { + const r = e[f]; + let y = "default"; + r.classes.length > 0 && (y = r.classes.join(" ")), y = y + " flowchart-label"; + const w = N(r.styles); + let t = r.text !== void 0 ? r.text : r.id, s; + if (g.info("vertex", r, r.labelType), r.labelType === "markdown") + g.info("vertex", r, r.labelType); + else if (K(v().flowchart.htmlLabels)) + s = te(u, { + label: t + }).node(), s.parentNode.removeChild(s); + else { + const k = i.createElementNS("http://www.w3.org/2000/svg", "text"); + k.setAttribute("style", w.labelStyle.replace("color:", "fill:")); + const _ = t.split(G.lineBreakRegex); + for (const $ of _) { + const S = i.createElementNS("http://www.w3.org/2000/svg", "tspan"); + S.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), S.setAttribute("dy", "1em"), S.setAttribute("x", "1"), S.textContent = $, k.appendChild(S); + } + s = k; + } + let p = 0, n = ""; + switch (r.type) { + case "round": + p = 5, n = "rect"; + break; + case "square": + n = "rect"; + break; + case "diamond": + n = "question"; + break; + case "hexagon": + n = "hexagon"; + break; + case "odd": + n = "rect_left_inv_arrow"; + break; + case "lean_right": + n = "lean_right"; + break; + case "lean_left": + n = "lean_left"; + break; + case "trapezoid": + n = "trapezoid"; + break; + case "inv_trapezoid": + n = "inv_trapezoid"; + break; + case "odd_right": + n = "rect_left_inv_arrow"; + break; + case "circle": + n = "circle"; + break; + case "ellipse": + n = "ellipse"; + break; + case "stadium": + n = "stadium"; + break; + case "subroutine": + n = "subroutine"; + break; + case "cylinder": + n = "cylinder"; + break; + case "group": + n = "rect"; + break; + case "doublecircle": + n = "doublecircle"; + break; + default: + n = "rect"; + } + const T = await q(t, v()); + l.setNode(r.id, { + labelStyle: w.labelStyle, + shape: n, + labelText: T, + labelType: r.labelType, + rx: p, + ry: p, + class: y, + style: w.style, + id: r.id, + link: r.link, + linkTarget: r.linkTarget, + tooltip: d.db.getTooltip(r.id) || "", + domId: d.db.lookUpDomId(r.id), + haveCallback: r.haveCallback, + width: r.type === "group" ? 500 : void 0, + dir: r.dir, + type: r.type, + props: r.props, + padding: v().flowchart.padding + }), g.info("setNode", { + labelStyle: w.labelStyle, + labelType: r.labelType, + shape: n, + labelText: T, + rx: p, + ry: p, + class: y, + style: w.style, + id: r.id, + domId: d.db.lookUpDomId(r.id), + width: r.type === "group" ? 500 : void 0, + type: r.type, + dir: r.dir, + props: r.props, + padding: v().flowchart.padding + }); + } +}, M = async function(e, l, c) { + g.info("abc78 edges = ", e); + let a = 0, i = {}, d, u; + if (e.defaultStyle !== void 0) { + const o = N(e.defaultStyle); + d = o.style, u = o.labelStyle; + } + for (const o of e) { + a++; + const f = "L-" + o.start + "-" + o.end; + i[f] === void 0 ? (i[f] = 0, g.info("abc78 new entry", f, i[f])) : (i[f]++, g.info("abc78 new entry", f, i[f])); + let r = f + "-" + i[f]; + g.info("abc78 new link id to be used is", f, r, i[f]); + const y = "LS-" + o.start, w = "LE-" + o.end, t = { style: "", labelStyle: "" }; + switch (t.minlen = o.length || 1, o.type === "arrow_open" ? t.arrowhead = "none" : t.arrowhead = "normal", t.arrowTypeStart = "arrow_open", t.arrowTypeEnd = "arrow_open", o.type) { + case "double_arrow_cross": + t.arrowTypeStart = "arrow_cross"; + case "arrow_cross": + t.arrowTypeEnd = "arrow_cross"; + break; + case "double_arrow_point": + t.arrowTypeStart = "arrow_point"; + case "arrow_point": + t.arrowTypeEnd = "arrow_point"; + break; + case "double_arrow_circle": + t.arrowTypeStart = "arrow_circle"; + case "arrow_circle": + t.arrowTypeEnd = "arrow_circle"; + break; + } + let s = "", p = ""; + switch (o.stroke) { + case "normal": + s = "fill:none;", d !== void 0 && (s = d), u !== void 0 && (p = u), t.thickness = "normal", t.pattern = "solid"; + break; + case "dotted": + t.thickness = "normal", t.pattern = "dotted", t.style = "fill:none;stroke-width:2px;stroke-dasharray:3;"; + break; + case "thick": + t.thickness = "thick", t.pattern = "solid", t.style = "stroke-width: 3.5px;fill:none;"; + break; + case "invisible": + t.thickness = "invisible", t.pattern = "solid", t.style = "stroke-width: 0;fill:none;"; + break; + } + if (o.style !== void 0) { + const n = N(o.style); + s = n.style, p = n.labelStyle; + } + t.style = t.style += s, t.labelStyle = t.labelStyle += p, o.interpolate !== void 0 ? t.curve = E(o.interpolate, L) : e.defaultInterpolate !== void 0 ? t.curve = E(e.defaultInterpolate, L) : t.curve = E(P.curve, L), o.text === void 0 ? o.style !== void 0 && (t.arrowheadStyle = "fill: #333") : (t.arrowheadStyle = "fill: #333", t.labelpos = "c"), t.labelType = o.labelType, t.label = await q(o.text.replace(G.lineBreakRegex, ` +`), v()), o.style === void 0 && (t.style = t.style || "stroke: #333; stroke-width: 1.5px;fill:none;"), t.labelStyle = t.labelStyle.replace("color:", "fill:"), t.id = r, t.classes = "flowchart-link " + y + " " + w, l.setEdge(o.start, o.end, t, a); + } +}, le = function(e, l) { + return l.db.getClasses(); +}, ae = async function(e, l, c, a) { + g.info("Drawing flowchart"); + let i = a.db.getDirection(); + i === void 0 && (i = "TD"); + const { securityLevel: d, flowchart: u } = v(), o = u.nodeSpacing || 50, f = u.rankSpacing || 50; + let r; + d === "sandbox" && (r = C("#i" + l)); + const y = d === "sandbox" ? C(r.nodes()[0].contentDocument.body) : C("body"), w = d === "sandbox" ? r.nodes()[0].contentDocument : document, t = new R({ + multigraph: !0, + compound: !0 + }).setGraph({ + rankdir: i, + nodesep: o, + ranksep: f, + marginx: 0, + marginy: 0 + }).setDefaultEdgeLabel(function() { + return {}; + }); + let s; + const p = a.db.getSubGraphs(); + g.info("Subgraphs - ", p); + for (let b = p.length - 1; b >= 0; b--) + s = p[b], g.info("Subgraph - ", s), a.db.addVertex( + s.id, + { text: s.title, type: s.labelType }, + "group", + void 0, + s.classes, + s.dir + ); + const n = a.db.getVertices(), T = a.db.getEdges(); + g.info("Edges", T); + let k = 0; + for (k = p.length - 1; k >= 0; k--) { + s = p[k], Z("cluster").append("text"); + for (let b = 0; b < s.nodes.length; b++) + g.info("Setting up subgraphs", s.nodes[b], s.id), t.setParent(s.nodes[b], s.id); + } + await V(n, t, l, y, w, a), await M(T, t); + const _ = y.select(`[id="${l}"]`), $ = y.select("#" + l + " g"); + if (await Q($, t, ["point", "circle", "cross"], "flowchart", l), W.insertTitle(_, "flowchartTitleText", u.titleTopMargin, a.db.getDiagramTitle()), X(t, _, u.diagramPadding, u.useMaxWidth), a.db.indexNodes("subGraph" + k), !u.htmlLabels) { + const b = w.querySelectorAll('[id="' + l + '"] .edgeLabel .label'); + for (const x of b) { + const m = x.getBBox(), h = w.createElementNS("http://www.w3.org/2000/svg", "rect"); + h.setAttribute("rx", 0), h.setAttribute("ry", 0), h.setAttribute("width", m.width), h.setAttribute("height", m.height), x.insertBefore(h, x.firstChild); + } + } + Object.keys(n).forEach(function(b) { + const x = n[b]; + if (x.link) { + const m = C("#" + l + ' [id="' + b + '"]'); + if (m) { + const h = w.createElementNS("http://www.w3.org/2000/svg", "a"); + h.setAttributeNS("http://www.w3.org/2000/svg", "class", x.classes.join(" ")), h.setAttributeNS("http://www.w3.org/2000/svg", "href", x.link), h.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener"), d === "sandbox" ? h.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top") : x.linkTarget && h.setAttributeNS("http://www.w3.org/2000/svg", "target", x.linkTarget); + const B = m.insert(function() { + return h; + }, ":first-child"), I = m.select(".label-container"); + I && B.append(function() { + return I.node(); + }); + const D = m.select(".label"); + D && B.append(function() { + return D.node(); + }); + } + } + }); +}, we = { + setConf: re, + addVertices: V, + addEdges: M, + getClasses: le, + draw: ae +}, ne = (e, l) => { + const c = Y, a = c(e, "r"), i = c(e, "g"), d = c(e, "b"); + return J(a, i, d, l); +}, oe = (e) => `.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor || e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span,p { + color: ${e.titleColor}; + } + + .label text,span,p { + fill: ${e.nodeTextColor || e.textColor}; + color: ${e.nodeTextColor || e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${ne(e.edgeLabelBackground, 0.5)}; + // background-color: + } + + .cluster rect { + fill: ${e.clusterBkg}; + stroke: ${e.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span,p { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } +`, he = oe; +export { + ee as a, + te as b, + ue as c, + be as d, + pe as e, + we as f, + he as g, + fe as i, + Z as s +}; diff --git a/assets/lib/mermaid/styles-f80da881.js b/assets/lib/mermaid/styles-f80da881.js new file mode 100644 index 000000000..6922af095 --- /dev/null +++ b/assets/lib/mermaid/styles-f80da881.js @@ -0,0 +1,1363 @@ +import { c as getConfig, g as getAccTitle, s as setAccTitle, a as getAccDescription, b as setAccDescription, C as setDiagramTitle, D as getDiagramTitle, l as log, f as common, E as clear$1, a7 as generateId } from "./mermaid-dcacb631.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 4], $V3 = [2, 4], $V4 = [1, 9], $V5 = [1, 11], $V6 = [1, 15], $V7 = [1, 16], $V8 = [1, 17], $V9 = [1, 18], $Va = [1, 30], $Vb = [1, 19], $Vc = [1, 20], $Vd = [1, 21], $Ve = [1, 22], $Vf = [1, 23], $Vg = [1, 25], $Vh = [1, 26], $Vi = [1, 27], $Vj = [1, 28], $Vk = [1, 29], $Vl = [1, 32], $Vm = [1, 33], $Vn = [1, 34], $Vo = [1, 35], $Vp = [1, 31], $Vq = [1, 4, 5, 15, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50], $Vr = [1, 4, 5, 13, 14, 15, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50], $Vs = [4, 5, 15, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "SPACE": 4, "NL": 5, "SD": 6, "document": 7, "line": 8, "statement": 9, "classDefStatement": 10, "cssClassStatement": 11, "idStatement": 12, "DESCR": 13, "-->": 14, "HIDE_EMPTY": 15, "scale": 16, "WIDTH": 17, "COMPOSIT_STATE": 18, "STRUCT_START": 19, "STRUCT_STOP": 20, "STATE_DESCR": 21, "AS": 22, "ID": 23, "FORK": 24, "JOIN": 25, "CHOICE": 26, "CONCURRENT": 27, "note": 28, "notePosition": 29, "NOTE_TEXT": 30, "direction": 31, "acc_title": 32, "acc_title_value": 33, "acc_descr": 34, "acc_descr_value": 35, "acc_descr_multiline_value": 36, "classDef": 37, "CLASSDEF_ID": 38, "CLASSDEF_STYLEOPTS": 39, "DEFAULT": 40, "class": 41, "CLASSENTITY_IDS": 42, "STYLECLASS": 43, "direction_tb": 44, "direction_bt": 45, "direction_rl": 46, "direction_lr": 47, "eol": 48, ";": 49, "EDGE_STATE": 50, "STYLE_SEPARATOR": 51, "left_of": 52, "right_of": 53, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "SPACE", 5: "NL", 6: "SD", 13: "DESCR", 14: "-->", 15: "HIDE_EMPTY", 16: "scale", 17: "WIDTH", 18: "COMPOSIT_STATE", 19: "STRUCT_START", 20: "STRUCT_STOP", 21: "STATE_DESCR", 22: "AS", 23: "ID", 24: "FORK", 25: "JOIN", 26: "CHOICE", 27: "CONCURRENT", 28: "note", 30: "NOTE_TEXT", 32: "acc_title", 33: "acc_title_value", 34: "acc_descr", 35: "acc_descr_value", 36: "acc_descr_multiline_value", 37: "classDef", 38: "CLASSDEF_ID", 39: "CLASSDEF_STYLEOPTS", 40: "DEFAULT", 41: "class", 42: "CLASSENTITY_IDS", 43: "STYLECLASS", 44: "direction_tb", 45: "direction_bt", 46: "direction_rl", 47: "direction_lr", 49: ";", 50: "EDGE_STATE", 51: "STYLE_SEPARATOR", 52: "left_of", 53: "right_of" }, + productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 3], [9, 4], [9, 1], [9, 2], [9, 1], [9, 4], [9, 3], [9, 6], [9, 1], [9, 1], [9, 1], [9, 1], [9, 4], [9, 4], [9, 1], [9, 2], [9, 2], [9, 1], [10, 3], [10, 3], [11, 3], [31, 1], [31, 1], [31, 1], [31, 1], [48, 1], [48, 1], [12, 1], [12, 1], [12, 3], [12, 3], [29, 1], [29, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 3: + yy.setRootDoc($$[$0]); + return $$[$0]; + case 4: + this.$ = []; + break; + case 5: + if ($$[$0] != "nl") { + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + } + break; + case 6: + case 7: + this.$ = $$[$0]; + break; + case 8: + this.$ = "nl"; + break; + case 11: + this.$ = $$[$0]; + break; + case 12: + const stateStmt = $$[$0 - 1]; + stateStmt.description = yy.trimColon($$[$0]); + this.$ = stateStmt; + break; + case 13: + this.$ = { stmt: "relation", state1: $$[$0 - 2], state2: $$[$0] }; + break; + case 14: + const relDescription = yy.trimColon($$[$0]); + this.$ = { stmt: "relation", state1: $$[$0 - 3], state2: $$[$0 - 1], description: relDescription }; + break; + case 18: + this.$ = { stmt: "state", id: $$[$0 - 3], type: "default", description: "", doc: $$[$0 - 1] }; + break; + case 19: + var id = $$[$0]; + var description = $$[$0 - 2].trim(); + if ($$[$0].match(":")) { + var parts = $$[$0].split(":"); + id = parts[0]; + description = [description, parts[1]]; + } + this.$ = { stmt: "state", id, type: "default", description }; + break; + case 20: + this.$ = { stmt: "state", id: $$[$0 - 3], type: "default", description: $$[$0 - 5], doc: $$[$0 - 1] }; + break; + case 21: + this.$ = { stmt: "state", id: $$[$0], type: "fork" }; + break; + case 22: + this.$ = { stmt: "state", id: $$[$0], type: "join" }; + break; + case 23: + this.$ = { stmt: "state", id: $$[$0], type: "choice" }; + break; + case 24: + this.$ = { stmt: "state", id: yy.getDividerId(), type: "divider" }; + break; + case 25: + this.$ = { stmt: "state", id: $$[$0 - 1].trim(), note: { position: $$[$0 - 2].trim(), text: $$[$0].trim() } }; + break; + case 28: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 29: + case 30: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 31: + case 32: + this.$ = { stmt: "classDef", id: $$[$0 - 1].trim(), classes: $$[$0].trim() }; + break; + case 33: + this.$ = { stmt: "applyClass", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() }; + break; + case 34: + yy.setDirection("TB"); + this.$ = { stmt: "dir", value: "TB" }; + break; + case 35: + yy.setDirection("BT"); + this.$ = { stmt: "dir", value: "BT" }; + break; + case 36: + yy.setDirection("RL"); + this.$ = { stmt: "dir", value: "RL" }; + break; + case 37: + yy.setDirection("LR"); + this.$ = { stmt: "dir", value: "LR" }; + break; + case 40: + case 41: + this.$ = { stmt: "state", id: $$[$0].trim(), type: "default", description: "" }; + break; + case 42: + this.$ = { stmt: "state", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: "default", description: "" }; + break; + case 43: + this.$ = { stmt: "state", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: "default", description: "" }; + break; + } + }, + table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o([1, 4, 5, 15, 16, 18, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 15: $V6, 16: $V7, 18: $V8, 21: $V9, 23: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 31: 24, 32: $Vg, 34: $Vh, 36: $Vi, 37: $Vj, 41: $Vk, 44: $Vl, 45: $Vm, 46: $Vn, 47: $Vo, 50: $Vp }, o($Vq, [2, 5]), { 9: 36, 10: 12, 11: 13, 12: 14, 15: $V6, 16: $V7, 18: $V8, 21: $V9, 23: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 31: 24, 32: $Vg, 34: $Vh, 36: $Vi, 37: $Vj, 41: $Vk, 44: $Vl, 45: $Vm, 46: $Vn, 47: $Vo, 50: $Vp }, o($Vq, [2, 7]), o($Vq, [2, 8]), o($Vq, [2, 9]), o($Vq, [2, 10]), o($Vq, [2, 11], { 13: [1, 37], 14: [1, 38] }), o($Vq, [2, 15]), { 17: [1, 39] }, o($Vq, [2, 17], { 19: [1, 40] }), { 22: [1, 41] }, o($Vq, [2, 21]), o($Vq, [2, 22]), o($Vq, [2, 23]), o($Vq, [2, 24]), { 29: 42, 30: [1, 43], 52: [1, 44], 53: [1, 45] }, o($Vq, [2, 27]), { 33: [1, 46] }, { 35: [1, 47] }, o($Vq, [2, 30]), { 38: [1, 48], 40: [1, 49] }, { 42: [1, 50] }, o($Vr, [2, 40], { 51: [1, 51] }), o($Vr, [2, 41], { 51: [1, 52] }), o($Vq, [2, 34]), o($Vq, [2, 35]), o($Vq, [2, 36]), o($Vq, [2, 37]), o($Vq, [2, 6]), o($Vq, [2, 12]), { 12: 53, 23: $Va, 50: $Vp }, o($Vq, [2, 16]), o($Vs, $V3, { 7: 54 }), { 23: [1, 55] }, { 23: [1, 56] }, { 22: [1, 57] }, { 23: [2, 44] }, { 23: [2, 45] }, o($Vq, [2, 28]), o($Vq, [2, 29]), { 39: [1, 58] }, { 39: [1, 59] }, { 43: [1, 60] }, { 23: [1, 61] }, { 23: [1, 62] }, o($Vq, [2, 13], { 13: [1, 63] }), { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 15: $V6, 16: $V7, 18: $V8, 20: [1, 64], 21: $V9, 23: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 31: 24, 32: $Vg, 34: $Vh, 36: $Vi, 37: $Vj, 41: $Vk, 44: $Vl, 45: $Vm, 46: $Vn, 47: $Vo, 50: $Vp }, o($Vq, [2, 19], { 19: [1, 65] }), { 30: [1, 66] }, { 23: [1, 67] }, o($Vq, [2, 31]), o($Vq, [2, 32]), o($Vq, [2, 33]), o($Vr, [2, 42]), o($Vr, [2, 43]), o($Vq, [2, 14]), o($Vq, [2, 18]), o($Vs, $V3, { 7: 68 }), o($Vq, [2, 25]), o($Vq, [2, 26]), { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 15: $V6, 16: $V7, 18: $V8, 20: [1, 69], 21: $V9, 23: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 31: 24, 32: $Vg, 34: $Vh, 36: $Vi, 37: $Vj, 41: $Vk, 44: $Vl, 45: $Vm, 46: $Vn, 47: $Vo, 50: $Vp }, o($Vq, [2, 20])], + defaultActions: { 5: [2, 1], 6: [2, 2], 44: [2, 44], 45: [2, 45] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + return 40; + case 1: + return 44; + case 2: + return 45; + case 3: + return 46; + case 4: + return 47; + case 5: + break; + case 6: + break; + case 7: + return 5; + case 8: + break; + case 9: + break; + case 10: + break; + case 11: + break; + case 12: + this.pushState("SCALE"); + return 16; + case 13: + return 17; + case 14: + this.popState(); + break; + case 15: + this.begin("acc_title"); + return 32; + case 16: + this.popState(); + return "acc_title_value"; + case 17: + this.begin("acc_descr"); + return 34; + case 18: + this.popState(); + return "acc_descr_value"; + case 19: + this.begin("acc_descr_multiline"); + break; + case 20: + this.popState(); + break; + case 21: + return "acc_descr_multiline_value"; + case 22: + this.pushState("CLASSDEF"); + return 37; + case 23: + this.popState(); + this.pushState("CLASSDEFID"); + return "DEFAULT_CLASSDEF_ID"; + case 24: + this.popState(); + this.pushState("CLASSDEFID"); + return 38; + case 25: + this.popState(); + return 39; + case 26: + this.pushState("CLASS"); + return 41; + case 27: + this.popState(); + this.pushState("CLASS_STYLE"); + return 42; + case 28: + this.popState(); + return 43; + case 29: + this.pushState("SCALE"); + return 16; + case 30: + return 17; + case 31: + this.popState(); + break; + case 32: + this.pushState("STATE"); + break; + case 33: + this.popState(); + yy_.yytext = yy_.yytext.slice(0, -8).trim(); + return 24; + case 34: + this.popState(); + yy_.yytext = yy_.yytext.slice(0, -8).trim(); + return 25; + case 35: + this.popState(); + yy_.yytext = yy_.yytext.slice(0, -10).trim(); + return 26; + case 36: + this.popState(); + yy_.yytext = yy_.yytext.slice(0, -8).trim(); + return 24; + case 37: + this.popState(); + yy_.yytext = yy_.yytext.slice(0, -8).trim(); + return 25; + case 38: + this.popState(); + yy_.yytext = yy_.yytext.slice(0, -10).trim(); + return 26; + case 39: + return 44; + case 40: + return 45; + case 41: + return 46; + case 42: + return 47; + case 43: + this.pushState("STATE_STRING"); + break; + case 44: + this.pushState("STATE_ID"); + return "AS"; + case 45: + this.popState(); + return "ID"; + case 46: + this.popState(); + break; + case 47: + return "STATE_DESCR"; + case 48: + return 18; + case 49: + this.popState(); + break; + case 50: + this.popState(); + this.pushState("struct"); + return 19; + case 51: + break; + case 52: + this.popState(); + return 20; + case 53: + break; + case 54: + this.begin("NOTE"); + return 28; + case 55: + this.popState(); + this.pushState("NOTE_ID"); + return 52; + case 56: + this.popState(); + this.pushState("NOTE_ID"); + return 53; + case 57: + this.popState(); + this.pushState("FLOATING_NOTE"); + break; + case 58: + this.popState(); + this.pushState("FLOATING_NOTE_ID"); + return "AS"; + case 59: + break; + case 60: + return "NOTE_TEXT"; + case 61: + this.popState(); + return "ID"; + case 62: + this.popState(); + this.pushState("NOTE_TEXT"); + return 23; + case 63: + this.popState(); + yy_.yytext = yy_.yytext.substr(2).trim(); + return 30; + case 64: + this.popState(); + yy_.yytext = yy_.yytext.slice(0, -8).trim(); + return 30; + case 65: + return 6; + case 66: + return 6; + case 67: + return 15; + case 68: + return 50; + case 69: + return 23; + case 70: + yy_.yytext = yy_.yytext.trim(); + return 13; + case 71: + return 14; + case 72: + return 27; + case 73: + return 51; + case 74: + return 5; + case 75: + return "INVALID"; + } + }, + rules: [/^(?:default\b)/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:[\s]+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:classDef\s+)/i, /^(?:DEFAULT\s+)/i, /^(?:\w+\s+)/i, /^(?:[^\n]*)/i, /^(?:class\s+)/i, /^(?:(\w+)+((,\s*\w+)*))/i, /^(?:[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:state\s+)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*\[\[fork\]\])/i, /^(?:.*\[\[join\]\])/i, /^(?:.*\[\[choice\]\])/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:["])/i, /^(?:\s*as\s+)/i, /^(?:[^\n\{]*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n\s\{]+)/i, /^(?:\n)/i, /^(?:\{)/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:\})/i, /^(?:[\n])/i, /^(?:note\s+)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:")/i, /^(?:\s*as\s*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n]*)/i, /^(?:\s*[^:\n\s\-]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:[\s\S]*?end note\b)/i, /^(?:stateDiagram\s+)/i, /^(?:stateDiagram-v2\s+)/i, /^(?:hide empty description\b)/i, /^(?:\[\*\])/i, /^(?:[^:\n\s\-\{]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:-->)/i, /^(?:--)/i, /^(?::::)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { "LINE": { "rules": [9, 10], "inclusive": false }, "struct": { "rules": [9, 10, 22, 26, 32, 39, 40, 41, 42, 51, 52, 53, 54, 68, 69, 70, 71, 72], "inclusive": false }, "FLOATING_NOTE_ID": { "rules": [61], "inclusive": false }, "FLOATING_NOTE": { "rules": [58, 59, 60], "inclusive": false }, "NOTE_TEXT": { "rules": [63, 64], "inclusive": false }, "NOTE_ID": { "rules": [62], "inclusive": false }, "NOTE": { "rules": [55, 56, 57], "inclusive": false }, "CLASS_STYLE": { "rules": [28], "inclusive": false }, "CLASS": { "rules": [27], "inclusive": false }, "CLASSDEFID": { "rules": [25], "inclusive": false }, "CLASSDEF": { "rules": [23, 24], "inclusive": false }, "acc_descr_multiline": { "rules": [20, 21], "inclusive": false }, "acc_descr": { "rules": [18], "inclusive": false }, "acc_title": { "rules": [16], "inclusive": false }, "SCALE": { "rules": [13, 14, 30, 31], "inclusive": false }, "ALIAS": { "rules": [], "inclusive": false }, "STATE_ID": { "rules": [45], "inclusive": false }, "STATE_STRING": { "rules": [46, 47], "inclusive": false }, "FORK_STATE": { "rules": [], "inclusive": false }, "STATE": { "rules": [9, 10, 33, 34, 35, 36, 37, 38, 43, 44, 48, 49, 50], "inclusive": false }, "ID": { "rules": [9, 10], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 15, 17, 19, 22, 26, 29, 32, 50, 54, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +const DEFAULT_DIAGRAM_DIRECTION = "LR"; +const DEFAULT_NESTED_DOC_DIR = "TB"; +const STMT_STATE = "state"; +const STMT_RELATION = "relation"; +const STMT_CLASSDEF = "classDef"; +const STMT_APPLYCLASS = "applyClass"; +const DEFAULT_STATE_TYPE = "default"; +const DIVIDER_TYPE = "divider"; +const START_NODE = "[*]"; +const START_TYPE = "start"; +const END_NODE = START_NODE; +const END_TYPE = "end"; +const COLOR_KEYWORD = "color"; +const FILL_KEYWORD = "fill"; +const BG_FILL = "bgFill"; +const STYLECLASS_SEP = ","; +function newClassesList() { + return {}; +} +let direction = DEFAULT_DIAGRAM_DIRECTION; +let rootDoc = []; +let classes = newClassesList(); +const newDoc = () => { + return { + relations: [], + states: {}, + documents: {} + }; +}; +let documents = { + root: newDoc() +}; +let currentDocument = documents.root; +let startEndCount = 0; +let dividerCnt = 0; +const lineType = { + LINE: 0, + DOTTED_LINE: 1 +}; +const relationType = { + AGGREGATION: 0, + EXTENSION: 1, + COMPOSITION: 2, + DEPENDENCY: 3 +}; +const clone = (o) => JSON.parse(JSON.stringify(o)); +const setRootDoc = (o) => { + log.info("Setting root doc", o); + rootDoc = o; +}; +const getRootDoc = () => rootDoc; +const docTranslator = (parent, node, first) => { + if (node.stmt === STMT_RELATION) { + docTranslator(parent, node.state1, true); + docTranslator(parent, node.state2, false); + } else { + if (node.stmt === STMT_STATE) { + if (node.id === "[*]") { + node.id = first ? parent.id + "_start" : parent.id + "_end"; + node.start = first; + } else { + node.id = node.id.trim(); + } + } + if (node.doc) { + const doc = []; + let currentDoc = []; + let i; + for (i = 0; i < node.doc.length; i++) { + if (node.doc[i].type === DIVIDER_TYPE) { + const newNode = clone(node.doc[i]); + newNode.doc = clone(currentDoc); + doc.push(newNode); + currentDoc = []; + } else { + currentDoc.push(node.doc[i]); + } + } + if (doc.length > 0 && currentDoc.length > 0) { + const newNode = { + stmt: STMT_STATE, + id: generateId(), + type: "divider", + doc: clone(currentDoc) + }; + doc.push(clone(newNode)); + node.doc = doc; + } + node.doc.forEach((docNode) => docTranslator(node, docNode, true)); + } + } +}; +const getRootDocV2 = () => { + docTranslator({ id: "root" }, { id: "root", doc: rootDoc }, true); + return { id: "root", doc: rootDoc }; +}; +const extract = (_doc) => { + let doc; + if (_doc.doc) { + doc = _doc.doc; + } else { + doc = _doc; + } + log.info(doc); + clear(true); + log.info("Extract", doc); + doc.forEach((item) => { + switch (item.stmt) { + case STMT_STATE: + addState( + item.id.trim(), + item.type, + item.doc, + item.description, + item.note, + item.classes, + item.styles, + item.textStyles + ); + break; + case STMT_RELATION: + addRelation(item.state1, item.state2, item.description); + break; + case STMT_CLASSDEF: + addStyleClass(item.id.trim(), item.classes); + break; + case STMT_APPLYCLASS: + setCssClass(item.id.trim(), item.styleClass); + break; + } + }); +}; +const addState = function(id, type = DEFAULT_STATE_TYPE, doc = null, descr = null, note = null, classes2 = null, styles2 = null, textStyles = null) { + const trimmedId = id == null ? void 0 : id.trim(); + if (currentDocument.states[trimmedId] === void 0) { + log.info("Adding state ", trimmedId, descr); + currentDocument.states[trimmedId] = { + id: trimmedId, + descriptions: [], + type, + doc, + note, + classes: [], + styles: [], + textStyles: [] + }; + } else { + if (!currentDocument.states[trimmedId].doc) { + currentDocument.states[trimmedId].doc = doc; + } + if (!currentDocument.states[trimmedId].type) { + currentDocument.states[trimmedId].type = type; + } + } + if (descr) { + log.info("Setting state description", trimmedId, descr); + if (typeof descr === "string") { + addDescription(trimmedId, descr.trim()); + } + if (typeof descr === "object") { + descr.forEach((des) => addDescription(trimmedId, des.trim())); + } + } + if (note) { + currentDocument.states[trimmedId].note = note; + currentDocument.states[trimmedId].note.text = common.sanitizeText( + currentDocument.states[trimmedId].note.text, + getConfig() + ); + } + if (classes2) { + log.info("Setting state classes", trimmedId, classes2); + const classesList = typeof classes2 === "string" ? [classes2] : classes2; + classesList.forEach((cssClass) => setCssClass(trimmedId, cssClass.trim())); + } + if (styles2) { + log.info("Setting state styles", trimmedId, styles2); + const stylesList = typeof styles2 === "string" ? [styles2] : styles2; + stylesList.forEach((style) => setStyle(trimmedId, style.trim())); + } + if (textStyles) { + log.info("Setting state styles", trimmedId, styles2); + const textStylesList = typeof textStyles === "string" ? [textStyles] : textStyles; + textStylesList.forEach((textStyle) => setTextStyle(trimmedId, textStyle.trim())); + } +}; +const clear = function(saveCommon) { + documents = { + root: newDoc() + }; + currentDocument = documents.root; + startEndCount = 0; + classes = newClassesList(); + if (!saveCommon) { + clear$1(); + } +}; +const getState = function(id) { + return currentDocument.states[id]; +}; +const getStates = function() { + return currentDocument.states; +}; +const logDocuments = function() { + log.info("Documents = ", documents); +}; +const getRelations = function() { + return currentDocument.relations; +}; +function startIdIfNeeded(id = "") { + let fixedId = id; + if (id === START_NODE) { + startEndCount++; + fixedId = `${START_TYPE}${startEndCount}`; + } + return fixedId; +} +function startTypeIfNeeded(id = "", type = DEFAULT_STATE_TYPE) { + return id === START_NODE ? START_TYPE : type; +} +function endIdIfNeeded(id = "") { + let fixedId = id; + if (id === END_NODE) { + startEndCount++; + fixedId = `${END_TYPE}${startEndCount}`; + } + return fixedId; +} +function endTypeIfNeeded(id = "", type = DEFAULT_STATE_TYPE) { + return id === END_NODE ? END_TYPE : type; +} +function addRelationObjs(item1, item2, relationTitle) { + let id1 = startIdIfNeeded(item1.id.trim()); + let type1 = startTypeIfNeeded(item1.id.trim(), item1.type); + let id2 = startIdIfNeeded(item2.id.trim()); + let type2 = startTypeIfNeeded(item2.id.trim(), item2.type); + addState( + id1, + type1, + item1.doc, + item1.description, + item1.note, + item1.classes, + item1.styles, + item1.textStyles + ); + addState( + id2, + type2, + item2.doc, + item2.description, + item2.note, + item2.classes, + item2.styles, + item2.textStyles + ); + currentDocument.relations.push({ + id1, + id2, + relationTitle: common.sanitizeText(relationTitle, getConfig()) + }); +} +const addRelation = function(item1, item2, title) { + if (typeof item1 === "object") { + addRelationObjs(item1, item2, title); + } else { + const id1 = startIdIfNeeded(item1.trim()); + const type1 = startTypeIfNeeded(item1); + const id2 = endIdIfNeeded(item2.trim()); + const type2 = endTypeIfNeeded(item2); + addState(id1, type1); + addState(id2, type2); + currentDocument.relations.push({ + id1, + id2, + title: common.sanitizeText(title, getConfig()) + }); + } +}; +const addDescription = function(id, descr) { + const theState = currentDocument.states[id]; + const _descr = descr.startsWith(":") ? descr.replace(":", "").trim() : descr; + theState.descriptions.push(common.sanitizeText(_descr, getConfig())); +}; +const cleanupLabel = function(label) { + if (label.substring(0, 1) === ":") { + return label.substr(2).trim(); + } else { + return label.trim(); + } +}; +const getDividerId = () => { + dividerCnt++; + return "divider-id-" + dividerCnt; +}; +const addStyleClass = function(id, styleAttributes = "") { + if (classes[id] === void 0) { + classes[id] = { id, styles: [], textStyles: [] }; + } + const foundClass = classes[id]; + if (styleAttributes !== void 0 && styleAttributes !== null) { + styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => { + const fixedAttrib = attrib.replace(/([^;]*);/, "$1").trim(); + if (attrib.match(COLOR_KEYWORD)) { + const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL); + const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD); + foundClass.textStyles.push(newStyle2); + } + foundClass.styles.push(fixedAttrib); + }); + } +}; +const getClasses = function() { + return classes; +}; +const setCssClass = function(itemIds, cssClassName) { + itemIds.split(",").forEach(function(id) { + let foundState = getState(id); + if (foundState === void 0) { + const trimmedId = id.trim(); + addState(trimmedId); + foundState = getState(trimmedId); + } + foundState.classes.push(cssClassName); + }); +}; +const setStyle = function(itemId, styleText) { + const item = getState(itemId); + if (item !== void 0) { + item.textStyles.push(styleText); + } +}; +const setTextStyle = function(itemId, cssClassName) { + const item = getState(itemId); + if (item !== void 0) { + item.textStyles.push(cssClassName); + } +}; +const getDirection = () => direction; +const setDirection = (dir) => { + direction = dir; +}; +const trimColon = (str) => str && str[0] === ":" ? str.substr(1).trim() : str.trim(); +const db = { + getConfig: () => getConfig().state, + addState, + clear, + getState, + getStates, + getRelations, + getClasses, + getDirection, + addRelation, + getDividerId, + setDirection, + cleanupLabel, + lineType, + relationType, + logDocuments, + getRootDoc, + setRootDoc, + getRootDocV2, + extract, + trimColon, + getAccTitle, + setAccTitle, + getAccDescription, + setAccDescription, + addStyleClass, + setCssClass, + addDescription, + setDiagramTitle, + getDiagramTitle +}; +const getStyles = (options) => ` +defs #statediagram-barbEnd { + fill: ${options.transitionColor}; + stroke: ${options.transitionColor}; + } +g.stateGroup text { + fill: ${options.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${options.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${options.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; +} + +g.stateGroup line { + stroke: ${options.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${options.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${options.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${options.noteBorderColor}; + fill: ${options.noteBkgColor}; + + text { + fill: ${options.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${options.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${options.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel .label text { + fill: ${options.transitionLabelColor || options.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${options.transitionLabelColor || options.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${options.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${options.specialStateColor}; + stroke: ${options.specialStateColor}; +} + +.node .fork-join { + fill: ${options.specialStateColor}; + stroke: ${options.specialStateColor}; +} + +.node circle.state-end { + fill: ${options.innerEndBackground}; + stroke: ${options.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${options.compositeBackground || options.background}; + // stroke: ${options.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${options.stateBkg || options.mainBkg}; + stroke: ${options.stateBorder || options.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${options.mainBkg}; + stroke: ${options.stateBorder || options.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${options.lineColor}; +} + +.statediagram-cluster rect { + fill: ${options.compositeTitleBackground}; + stroke: ${options.stateBorder || options.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${options.stateLabelColor}; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${options.stateBorder || options.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${options.compositeBackground || options.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${options.altBackground ? options.altBackground : "#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${options.altBackground ? options.altBackground : "#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${options.noteBkgColor}; + stroke: ${options.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${options.noteBkgColor}; + stroke: ${options.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${options.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${options.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${options.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${options.lineColor}; + stroke: ${options.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.textColor}; +} +`; +const styles = getStyles; +export { + DEFAULT_STATE_TYPE as D, + STMT_RELATION as S, + DIVIDER_TYPE as a, + STMT_STATE as b, + DEFAULT_NESTED_DOC_DIR as c, + db as d, + parser$1 as p, + styles as s +}; diff --git a/assets/lib/mermaid/svgDrawCommon-5e1cfd1d.js b/assets/lib/mermaid/svgDrawCommon-5e1cfd1d.js new file mode 100644 index 000000000..7c9165686 --- /dev/null +++ b/assets/lib/mermaid/svgDrawCommon-5e1cfd1d.js @@ -0,0 +1,101 @@ +import { sanitizeUrl } from "@braintree/sanitize-url"; +import { J as lineBreakRegex } from "./mermaid-6dc72991.js"; +const drawRect = (element, rectData) => { + const rectElement = element.append("rect"); + rectElement.attr("x", rectData.x); + rectElement.attr("y", rectData.y); + rectElement.attr("fill", rectData.fill); + rectElement.attr("stroke", rectData.stroke); + rectElement.attr("width", rectData.width); + rectElement.attr("height", rectData.height); + if (rectData.name) { + rectElement.attr("name", rectData.name); + } + rectData.rx !== void 0 && rectElement.attr("rx", rectData.rx); + rectData.ry !== void 0 && rectElement.attr("ry", rectData.ry); + if (rectData.attrs !== void 0) { + for (const attrKey in rectData.attrs) { + rectElement.attr(attrKey, rectData.attrs[attrKey]); + } + } + rectData.class !== void 0 && rectElement.attr("class", rectData.class); + return rectElement; +}; +const drawBackgroundRect = (element, bounds) => { + const rectData = { + x: bounds.startx, + y: bounds.starty, + width: bounds.stopx - bounds.startx, + height: bounds.stopy - bounds.starty, + fill: bounds.fill, + stroke: bounds.stroke, + class: "rect" + }; + const rectElement = drawRect(element, rectData); + rectElement.lower(); +}; +const drawText = (element, textData) => { + const nText = textData.text.replace(lineBreakRegex, " "); + const textElem = element.append("text"); + textElem.attr("x", textData.x); + textElem.attr("y", textData.y); + textElem.attr("class", "legend"); + textElem.style("text-anchor", textData.anchor); + textData.class !== void 0 && textElem.attr("class", textData.class); + const tspan = textElem.append("tspan"); + tspan.attr("x", textData.x + textData.textMargin * 2); + tspan.text(nText); + return textElem; +}; +const drawImage = (elem, x, y, link) => { + const imageElement = elem.append("image"); + imageElement.attr("x", x); + imageElement.attr("y", y); + const sanitizedLink = sanitizeUrl(link); + imageElement.attr("xlink:href", sanitizedLink); +}; +const drawEmbeddedImage = (element, x, y, link) => { + const imageElement = element.append("use"); + imageElement.attr("x", x); + imageElement.attr("y", y); + const sanitizedLink = sanitizeUrl(link); + imageElement.attr("xlink:href", `#${sanitizedLink}`); +}; +const getNoteRect = () => { + const noteRectData = { + x: 0, + y: 0, + width: 100, + height: 100, + fill: "#EDF2AE", + stroke: "#666", + anchor: "start", + rx: 0, + ry: 0 + }; + return noteRectData; +}; +const getTextObj = () => { + const testObject = { + x: 0, + y: 0, + width: 100, + height: 100, + "text-anchor": "start", + style: "#666", + textMargin: 0, + rx: 0, + ry: 0, + tspan: true + }; + return testObject; +}; +export { + drawBackgroundRect as a, + drawEmbeddedImage as b, + drawImage as c, + drawRect as d, + getTextObj as e, + drawText as f, + getNoteRect as g +}; diff --git a/assets/lib/mermaid/svgDrawCommon-d6ab583c.js b/assets/lib/mermaid/svgDrawCommon-d6ab583c.js new file mode 100644 index 000000000..7b6056a24 --- /dev/null +++ b/assets/lib/mermaid/svgDrawCommon-d6ab583c.js @@ -0,0 +1,100 @@ +import { aq as lineBreakRegex, e as dist } from "./mermaid-dcacb631.js"; +const drawRect = (element, rectData) => { + const rectElement = element.append("rect"); + rectElement.attr("x", rectData.x); + rectElement.attr("y", rectData.y); + rectElement.attr("fill", rectData.fill); + rectElement.attr("stroke", rectData.stroke); + rectElement.attr("width", rectData.width); + rectElement.attr("height", rectData.height); + if (rectData.name) { + rectElement.attr("name", rectData.name); + } + rectData.rx !== void 0 && rectElement.attr("rx", rectData.rx); + rectData.ry !== void 0 && rectElement.attr("ry", rectData.ry); + if (rectData.attrs !== void 0) { + for (const attrKey in rectData.attrs) { + rectElement.attr(attrKey, rectData.attrs[attrKey]); + } + } + rectData.class !== void 0 && rectElement.attr("class", rectData.class); + return rectElement; +}; +const drawBackgroundRect = (element, bounds) => { + const rectData = { + x: bounds.startx, + y: bounds.starty, + width: bounds.stopx - bounds.startx, + height: bounds.stopy - bounds.starty, + fill: bounds.fill, + stroke: bounds.stroke, + class: "rect" + }; + const rectElement = drawRect(element, rectData); + rectElement.lower(); +}; +const drawText = (element, textData) => { + const nText = textData.text.replace(lineBreakRegex, " "); + const textElem = element.append("text"); + textElem.attr("x", textData.x); + textElem.attr("y", textData.y); + textElem.attr("class", "legend"); + textElem.style("text-anchor", textData.anchor); + textData.class !== void 0 && textElem.attr("class", textData.class); + const tspan = textElem.append("tspan"); + tspan.attr("x", textData.x + textData.textMargin * 2); + tspan.text(nText); + return textElem; +}; +const drawImage = (elem, x, y, link) => { + const imageElement = elem.append("image"); + imageElement.attr("x", x); + imageElement.attr("y", y); + const sanitizedLink = dist.sanitizeUrl(link); + imageElement.attr("xlink:href", sanitizedLink); +}; +const drawEmbeddedImage = (element, x, y, link) => { + const imageElement = element.append("use"); + imageElement.attr("x", x); + imageElement.attr("y", y); + const sanitizedLink = dist.sanitizeUrl(link); + imageElement.attr("xlink:href", `#${sanitizedLink}`); +}; +const getNoteRect = () => { + const noteRectData = { + x: 0, + y: 0, + width: 100, + height: 100, + fill: "#EDF2AE", + stroke: "#666", + anchor: "start", + rx: 0, + ry: 0 + }; + return noteRectData; +}; +const getTextObj = () => { + const testObject = { + x: 0, + y: 0, + width: 100, + height: 100, + "text-anchor": "start", + style: "#666", + textMargin: 0, + rx: 0, + ry: 0, + tspan: true + }; + return testObject; +}; +export { + drawBackgroundRect as a, + drawEmbeddedImage as b, + drawImage as c, + drawRect as d, + getTextObj as e, + drawText as f, + getNoteRect as g +}; diff --git a/assets/lib/mermaid/svgDrawCommon-ecc5f780.js b/assets/lib/mermaid/svgDrawCommon-ecc5f780.js new file mode 100644 index 000000000..0cd094e58 --- /dev/null +++ b/assets/lib/mermaid/svgDrawCommon-ecc5f780.js @@ -0,0 +1,64 @@ +import { aq as o, e as i } from "./mermaid-9f2aa176.js"; +const l = (s, t) => { + const e = s.append("rect"); + if (e.attr("x", t.x), e.attr("y", t.y), e.attr("fill", t.fill), e.attr("stroke", t.stroke), e.attr("width", t.width), e.attr("height", t.height), t.name && e.attr("name", t.name), t.rx !== void 0 && e.attr("rx", t.rx), t.ry !== void 0 && e.attr("ry", t.ry), t.attrs !== void 0) + for (const r in t.attrs) + e.attr(r, t.attrs[r]); + return t.class !== void 0 && e.attr("class", t.class), e; +}, x = (s, t) => { + const e = { + x: t.startx, + y: t.starty, + width: t.stopx - t.startx, + height: t.stopy - t.starty, + fill: t.fill, + stroke: t.stroke, + class: "rect" + }; + l(s, e).lower(); +}, d = (s, t) => { + const e = t.text.replace(o, " "), r = s.append("text"); + r.attr("x", t.x), r.attr("y", t.y), r.attr("class", "legend"), r.style("text-anchor", t.anchor), t.class !== void 0 && r.attr("class", t.class); + const n = r.append("tspan"); + return n.attr("x", t.x + t.textMargin * 2), n.text(e), r; +}, h = (s, t, e, r) => { + const n = s.append("image"); + n.attr("x", t), n.attr("y", e); + const a = i.sanitizeUrl(r); + n.attr("xlink:href", a); +}, y = (s, t, e, r) => { + const n = s.append("use"); + n.attr("x", t), n.attr("y", e); + const a = i.sanitizeUrl(r); + n.attr("xlink:href", `#${a}`); +}, g = () => ({ + x: 0, + y: 0, + width: 100, + height: 100, + fill: "#EDF2AE", + stroke: "#666", + anchor: "start", + rx: 0, + ry: 0 +}), p = () => ({ + x: 0, + y: 0, + width: 100, + height: 100, + "text-anchor": "start", + style: "#666", + textMargin: 0, + rx: 0, + ry: 0, + tspan: !0 +}); +export { + x as a, + y as b, + h as c, + l as d, + p as e, + d as f, + g +}; diff --git a/assets/lib/mermaid/timeline-definition-23ce0e2e.js b/assets/lib/mermaid/timeline-definition-23ce0e2e.js new file mode 100644 index 000000000..db017d5e8 --- /dev/null +++ b/assets/lib/mermaid/timeline-definition-23ce0e2e.js @@ -0,0 +1,1211 @@ +import { as as commonDb, E as clear$1, j as d3select, c as getConfig, l as log, t as setupGraphViewbox, at as isDark, au as lighten, av as darken } from "./mermaid-dcacb631.js"; +import { d as d3arc } from "./arc-c0f908ab.js"; +import "./path-39bad7e2.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 20, 21], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 16], $V7 = [1, 17]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "timeline": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "title": 11, "acc_title": 12, "acc_title_value": 13, "acc_descr": 14, "acc_descr_value": 15, "acc_descr_multiline_value": 16, "section": 17, "period_statement": 18, "event_statement": 19, "period": 20, "event": 21, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "timeline", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 11: "title", 12: "acc_title", 13: "acc_title_value", 14: "acc_descr", 15: "acc_descr_value", 16: "acc_descr_multiline_value", 17: "section", 20: "period", 21: "event" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 1], [18, 1], [19, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 1: + return $$[$0 - 1]; + case 2: + this.$ = []; + break; + case 3: + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + break; + case 4: + case 5: + this.$ = $$[$0]; + break; + case 6: + case 7: + this.$ = []; + break; + case 8: + yy.getCommonDb().setDiagramTitle($$[$0].substr(6)); + this.$ = $$[$0].substr(6); + break; + case 9: + this.$ = $$[$0].trim(); + yy.getCommonDb().setAccTitle(this.$); + break; + case 10: + case 11: + this.$ = $$[$0].trim(); + yy.getCommonDb().setAccDescription(this.$); + break; + case 12: + yy.addSection($$[$0].substr(8)); + this.$ = $$[$0].substr(8); + break; + case 15: + yy.addTask($$[$0], 0, ""); + this.$ = $$[$0]; + break; + case 16: + yy.addEvent($$[$0].substr(2)); + this.$ = $$[$0]; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 18, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 19] }, { 15: [1, 20] }, o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10])], + defaultActions: {}, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + break; + case 1: + break; + case 2: + return 10; + case 3: + break; + case 4: + break; + case 5: + return 4; + case 6: + return 11; + case 7: + this.begin("acc_title"); + return 12; + case 8: + this.popState(); + return "acc_title_value"; + case 9: + this.begin("acc_descr"); + return 14; + case 10: + this.popState(); + return "acc_descr_value"; + case 11: + this.begin("acc_descr_multiline"); + break; + case 12: + this.popState(); + break; + case 13: + return "acc_descr_multiline_value"; + case 14: + return 17; + case 15: + return 21; + case 16: + return 20; + case 17: + return 6; + case 18: + return "INVALID"; + } + }, + rules: [/^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:timeline\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?::\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let currentSection = ""; +let currentTaskId = 0; +const sections = []; +const tasks = []; +const rawTasks = []; +const getCommonDb = () => commonDb; +const clear = function() { + sections.length = 0; + tasks.length = 0; + currentSection = ""; + rawTasks.length = 0; + clear$1(); +}; +const addSection = function(txt) { + currentSection = txt; + sections.push(txt); +}; +const getSections = function() { + return sections; +}; +const getTasks = function() { + let allItemsProcessed = compileTasks(); + const maxDepth = 100; + let iterationCount = 0; + while (!allItemsProcessed && iterationCount < maxDepth) { + allItemsProcessed = compileTasks(); + iterationCount++; + } + tasks.push(...rawTasks); + return tasks; +}; +const addTask = function(period, length, event) { + const rawTask = { + id: currentTaskId++, + section: currentSection, + type: currentSection, + task: period, + score: length ? length : 0, + //if event is defined, then add it the events array + events: event ? [event] : [] + }; + rawTasks.push(rawTask); +}; +const addEvent = function(event) { + const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1); + currentTask.events.push(event); +}; +const addTaskOrg = function(descr) { + const newTask = { + section: currentSection, + type: currentSection, + description: descr, + task: descr, + classes: [] + }; + tasks.push(newTask); +}; +const compileTasks = function() { + const compileTask = function(pos) { + return rawTasks[pos].processed; + }; + let allProcessed = true; + for (const [i, rawTask] of rawTasks.entries()) { + compileTask(i); + allProcessed = allProcessed && rawTask.processed; + } + return allProcessed; +}; +const timelineDb = { + clear, + getCommonDb, + addSection, + getSections, + getTasks, + addTask, + addTaskOrg, + addEvent +}; +const db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + addEvent, + addSection, + addTask, + addTaskOrg, + clear, + default: timelineDb, + getCommonDb, + getSections, + getTasks +}, Symbol.toStringTag, { value: "Module" })); +const MAX_SECTIONS = 12; +const drawRect = function(elem, rectData) { + const rectElem = elem.append("rect"); + rectElem.attr("x", rectData.x); + rectElem.attr("y", rectData.y); + rectElem.attr("fill", rectData.fill); + rectElem.attr("stroke", rectData.stroke); + rectElem.attr("width", rectData.width); + rectElem.attr("height", rectData.height); + rectElem.attr("rx", rectData.rx); + rectElem.attr("ry", rectData.ry); + if (rectData.class !== void 0) { + rectElem.attr("class", rectData.class); + } + return rectElem; +}; +const drawFace = function(element, faceData) { + const radius = 15; + const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible"); + const face = element.append("g"); + face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); + face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); + function smile(face2) { + const arc = d3arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); + face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")"); + } + function sad(face2) { + const arc = d3arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); + face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")"); + } + function ambivalent(face2) { + face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666"); + } + if (faceData.score > 3) { + smile(face); + } else if (faceData.score < 3) { + sad(face); + } else { + ambivalent(face); + } + return circleElement; +}; +const drawCircle = function(element, circleData) { + const circleElement = element.append("circle"); + circleElement.attr("cx", circleData.cx); + circleElement.attr("cy", circleData.cy); + circleElement.attr("class", "actor-" + circleData.pos); + circleElement.attr("fill", circleData.fill); + circleElement.attr("stroke", circleData.stroke); + circleElement.attr("r", circleData.r); + if (circleElement.class !== void 0) { + circleElement.attr("class", circleElement.class); + } + if (circleData.title !== void 0) { + circleElement.append("title").text(circleData.title); + } + return circleElement; +}; +const drawText = function(elem, textData) { + const nText = textData.text.replace(//gi, " "); + const textElem = elem.append("text"); + textElem.attr("x", textData.x); + textElem.attr("y", textData.y); + textElem.attr("class", "legend"); + textElem.style("text-anchor", textData.anchor); + if (textData.class !== void 0) { + textElem.attr("class", textData.class); + } + const span = textElem.append("tspan"); + span.attr("x", textData.x + textData.textMargin * 2); + span.text(nText); + return textElem; +}; +const drawLabel = function(elem, txtObject) { + function genPoints(x, y, width, height, cut) { + return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height); + } + const polygon = elem.append("polygon"); + polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7)); + polygon.attr("class", "labelBox"); + txtObject.y = txtObject.y + txtObject.labelMargin; + txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin; + drawText(elem, txtObject); +}; +const drawSection = function(elem, section, conf) { + const g = elem.append("g"); + const rect = getNoteRect(); + rect.x = section.x; + rect.y = section.y; + rect.fill = section.fill; + rect.width = conf.width; + rect.height = conf.height; + rect.class = "journey-section section-type-" + section.num; + rect.rx = 3; + rect.ry = 3; + drawRect(g, rect); + _drawTextCandidateFunc(conf)( + section.text, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: "journey-section section-type-" + section.num }, + conf, + section.colour + ); +}; +let taskCount = -1; +const drawTask = function(elem, task, conf) { + const center = task.x + conf.width / 2; + const g = elem.append("g"); + taskCount++; + const maxHeight = 300 + 5 * 30; + g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666"); + drawFace(g, { + cx: center, + cy: 300 + (5 - task.score) * 30, + score: task.score + }); + const rect = getNoteRect(); + rect.x = task.x; + rect.y = task.y; + rect.fill = task.fill; + rect.width = conf.width; + rect.height = conf.height; + rect.class = "task task-type-" + task.num; + rect.rx = 3; + rect.ry = 3; + drawRect(g, rect); + task.x + 14; + _drawTextCandidateFunc(conf)( + task.task, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: "task" }, + conf, + task.colour + ); +}; +const drawBackgroundRect = function(elem, bounds) { + const rectElem = drawRect(elem, { + x: bounds.startx, + y: bounds.starty, + width: bounds.stopx - bounds.startx, + height: bounds.stopy - bounds.starty, + fill: bounds.fill, + class: "rect" + }); + rectElem.lower(); +}; +const getTextObj = function() { + return { + x: 0, + y: 0, + fill: void 0, + "text-anchor": "start", + width: 100, + height: 100, + textMargin: 0, + rx: 0, + ry: 0 + }; +}; +const getNoteRect = function() { + return { + x: 0, + y: 0, + width: 100, + anchor: "start", + height: 100, + rx: 0, + ry: 0 + }; +}; +const _drawTextCandidateFunc = function() { + function byText(content, g, x, y, width, height, textAttrs, colour) { + const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content); + _setTextAttrs(text, textAttrs); + } + function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) { + const { taskFontSize, taskFontFamily } = conf; + const lines = content.split(//gi); + for (let i = 0; i < lines.length; i++) { + const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2; + const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily); + text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]); + text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"); + _setTextAttrs(text, textAttrs); + } + } + function byFo(content, g, x, y, width, height, textAttrs, conf) { + const body = g.append("switch"); + const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed"); + const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); + byTspan(content, body, x, y, width, height, textAttrs, conf); + _setTextAttrs(text, textAttrs); + } + function _setTextAttrs(toText, fromTextAttrsDict) { + for (const key in fromTextAttrsDict) { + if (key in fromTextAttrsDict) { + toText.attr(key, fromTextAttrsDict[key]); + } + } + } + return function(conf) { + return conf.textPlacement === "fo" ? byFo : conf.textPlacement === "old" ? byText : byTspan; + }; +}(); +const initGraphics = function(graphics) { + graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z"); +}; +function wrap(text, width) { + text.each(function() { + var text2 = d3select(this), words = text2.text().split(/(\s+|
)/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr("y"), dy = parseFloat(text2.attr("dy")), tspan = text2.text(null).append("tspan").attr("x", 0).attr("y", y).attr("dy", dy + "em"); + for (let j = 0; j < words.length; j++) { + word = words[words.length - 1 - j]; + line.push(word); + tspan.text(line.join(" ").trim()); + if (tspan.node().getComputedTextLength() > width || word === "
") { + line.pop(); + tspan.text(line.join(" ").trim()); + if (word === "
") { + line = [""]; + } else { + line = [word]; + } + tspan = text2.append("tspan").attr("x", 0).attr("y", y).attr("dy", lineHeight + "em").text(word); + } + } + }); +} +const drawNode = function(elem, node, fullSection, conf) { + const section = fullSection % MAX_SECTIONS - 1; + const nodeElem = elem.append("g"); + node.section = section; + nodeElem.attr( + "class", + (node.class ? node.class + " " : "") + "timeline-node " + ("section-" + section) + ); + const bkgElem = nodeElem.append("g"); + const textElem = nodeElem.append("g"); + const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width); + const bbox = txt.node().getBBox(); + const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize; + node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding; + node.height = Math.max(node.height, node.maxHeight); + node.width = node.width + 2 * node.padding; + textElem.attr("transform", "translate(" + node.width / 2 + ", " + node.padding / 2 + ")"); + defaultBkg(bkgElem, node, section); + return node; +}; +const getVirtualNodeHeight = function(elem, node, conf) { + const textElem = elem.append("g"); + const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width); + const bbox = txt.node().getBBox(); + const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize; + textElem.remove(); + return bbox.height + fontSize * 1.1 * 0.5 + node.padding; +}; +const defaultBkg = function(elem, node, section) { + const rd = 5; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + node.type).attr( + "d", + `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z` + ); + elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height); +}; +const svgDraw = { + drawRect, + drawCircle, + drawSection, + drawText, + drawLabel, + drawTask, + drawBackgroundRect, + getTextObj, + getNoteRect, + initGraphics, + drawNode, + getVirtualNodeHeight +}; +const draw = function(text, id, version, diagObj) { + var _a, _b; + const conf = getConfig(); + const LEFT_MARGIN = conf.leftMargin ?? 50; + log.debug("timeline", diagObj.db); + const securityLevel = conf.securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = d3select("#i" + id); + } + const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body"); + const svg = root.select("#" + id); + svg.append("g"); + const tasks2 = diagObj.db.getTasks(); + const title = diagObj.db.getCommonDb().getDiagramTitle(); + log.debug("task", tasks2); + svgDraw.initGraphics(svg); + const sections2 = diagObj.db.getSections(); + log.debug("sections", sections2); + let maxSectionHeight = 0; + let maxTaskHeight = 0; + let depthY = 0; + let sectionBeginY = 0; + let masterX = 50 + LEFT_MARGIN; + let masterY = 50; + sectionBeginY = 50; + let sectionNumber = 0; + let hasSections = true; + sections2.forEach(function(section) { + const sectionNode = { + number: sectionNumber, + descr: section, + section: sectionNumber, + width: 150, + padding: 20, + maxHeight: maxSectionHeight + }; + const sectionHeight = svgDraw.getVirtualNodeHeight(svg, sectionNode, conf); + log.debug("sectionHeight before draw", sectionHeight); + maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20); + }); + let maxEventCount = 0; + let maxEventLineLength = 0; + log.debug("tasks.length", tasks2.length); + for (const [i, task] of tasks2.entries()) { + const taskNode = { + number: i, + descr: task, + section: task.section, + width: 150, + padding: 20, + maxHeight: maxTaskHeight + }; + const taskHeight = svgDraw.getVirtualNodeHeight(svg, taskNode, conf); + log.debug("taskHeight before draw", taskHeight); + maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20); + maxEventCount = Math.max(maxEventCount, task.events.length); + let maxEventLineLengthTemp = 0; + for (let j = 0; j < task.events.length; j++) { + const event = task.events[j]; + const eventNode = { + descr: event, + section: task.section, + number: task.section, + width: 150, + padding: 20, + maxHeight: 50 + }; + maxEventLineLengthTemp += svgDraw.getVirtualNodeHeight(svg, eventNode, conf); + } + maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp); + } + log.debug("maxSectionHeight before draw", maxSectionHeight); + log.debug("maxTaskHeight before draw", maxTaskHeight); + if (sections2 && sections2.length > 0) { + sections2.forEach((section) => { + const tasksForSection = tasks2.filter((task) => task.section === section); + const sectionNode = { + number: sectionNumber, + descr: section, + section: sectionNumber, + width: 200 * Math.max(tasksForSection.length, 1) - 50, + padding: 20, + maxHeight: maxSectionHeight + }; + log.debug("sectionNode", sectionNode); + const sectionNodeWrapper = svg.append("g"); + const node = svgDraw.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf); + log.debug("sectionNode output", node); + sectionNodeWrapper.attr("transform", `translate(${masterX}, ${sectionBeginY})`); + masterY += maxSectionHeight + 50; + if (tasksForSection.length > 0) { + drawTasks( + svg, + tasksForSection, + sectionNumber, + masterX, + masterY, + maxTaskHeight, + conf, + maxEventCount, + maxEventLineLength, + maxSectionHeight, + false + ); + } + masterX += 200 * Math.max(tasksForSection.length, 1); + masterY = sectionBeginY; + sectionNumber++; + }); + } else { + hasSections = false; + drawTasks( + svg, + tasks2, + sectionNumber, + masterX, + masterY, + maxTaskHeight, + conf, + maxEventCount, + maxEventLineLength, + maxSectionHeight, + true + ); + } + const box = svg.node().getBBox(); + log.debug("bounds", box); + if (title) { + svg.append("text").text(title).attr("x", box.width / 2 - LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20); + } + depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100; + const lineWrapper = svg.append("g").attr("class", "lineWrapper"); + lineWrapper.append("line").attr("x1", LEFT_MARGIN).attr("y1", depthY).attr("x2", box.width + 3 * LEFT_MARGIN).attr("y2", depthY).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)"); + setupGraphViewbox( + void 0, + svg, + ((_a = conf.timeline) == null ? void 0 : _a.padding) ?? 50, + ((_b = conf.timeline) == null ? void 0 : _b.useMaxWidth) ?? false + ); +}; +const drawTasks = function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) { + var _a; + for (const task of tasks2) { + const taskNode = { + descr: task.task, + section: sectionColor, + number: sectionColor, + width: 150, + padding: 20, + maxHeight: maxTaskHeight + }; + log.debug("taskNode", taskNode); + const taskWrapper = diagram2.append("g").attr("class", "taskWrapper"); + const node = svgDraw.drawNode(taskWrapper, taskNode, sectionColor, conf); + const taskHeight = node.height; + log.debug("taskHeight after draw", taskHeight); + taskWrapper.attr("transform", `translate(${masterX}, ${masterY})`); + maxTaskHeight = Math.max(maxTaskHeight, taskHeight); + if (task.events) { + const lineWrapper = diagram2.append("g").attr("class", "lineWrapper"); + let lineLength = maxTaskHeight; + masterY += 100; + lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf); + masterY -= 100; + lineWrapper.append("line").attr("x1", masterX + 190 / 2).attr("y1", masterY + maxTaskHeight).attr("x2", masterX + 190 / 2).attr( + "y2", + masterY + maxTaskHeight + (isWithoutSections ? maxTaskHeight : maxSectionHeight) + maxEventLineLength + 120 + ).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", "url(#arrowhead)").attr("stroke-dasharray", "5,5"); + } + masterX = masterX + 200; + if (isWithoutSections && !((_a = conf.timeline) == null ? void 0 : _a.disableMulticolor)) { + sectionColor++; + } + } + masterY = masterY - 10; +}; +const drawEvents = function(diagram2, events, sectionColor, masterX, masterY, conf) { + let maxEventHeight = 0; + const eventBeginY = masterY; + masterY = masterY + 100; + for (const event of events) { + const eventNode = { + descr: event, + section: sectionColor, + number: sectionColor, + width: 150, + padding: 20, + maxHeight: 50 + }; + log.debug("eventNode", eventNode); + const eventWrapper = diagram2.append("g").attr("class", "eventWrapper"); + const node = svgDraw.drawNode(eventWrapper, eventNode, sectionColor, conf); + const eventHeight = node.height; + maxEventHeight = maxEventHeight + eventHeight; + eventWrapper.attr("transform", `translate(${masterX}, ${masterY})`); + masterY = masterY + 10 + eventHeight; + } + masterY = eventBeginY; + return maxEventHeight; +}; +const renderer = { + setConf: () => { + }, + draw +}; +const genSections = (options) => { + let sections2 = ""; + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i]; + if (isDark(options["lineColor" + i])) { + options["lineColor" + i] = lighten(options["lineColor" + i], 20); + } else { + options["lineColor" + i] = darken(options["lineColor" + i], 20); + } + } + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + const sw = "" + (17 - 3 * i); + sections2 += ` + .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} path { + fill: ${options["cScale" + i]}; + } + .section-${i - 1} text { + fill: ${options["cScaleLabel" + i]}; + } + .node-icon-${i - 1} { + font-size: 40px; + color: ${options["cScaleLabel" + i]}; + } + .section-edge-${i - 1}{ + stroke: ${options["cScale" + i]}; + } + .edge-depth-${i - 1}{ + stroke-width: ${sw}; + } + .section-${i - 1} line { + stroke: ${options["cScaleInv" + i]} ; + stroke-width: 3; + } + + .lineWrapper line{ + stroke: ${options["cScaleLabel" + i]} ; + } + + .disabled, .disabled circle, .disabled text { + fill: lightgray; + } + .disabled text { + fill: #efefef; + } + `; + } + return sections2; +}; +const getStyles = (options) => ` + .edge { + stroke-width: 3; + } + ${genSections(options)} + .section-root rect, .section-root path, .section-root circle { + fill: ${options.git0}; + } + .section-root text { + fill: ${options.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`; +const styles = getStyles; +const diagram = { + db, + renderer, + parser: parser$1, + styles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/timeline-definition-4ee9bff4.js b/assets/lib/mermaid/timeline-definition-4ee9bff4.js new file mode 100644 index 000000000..65ab7327c --- /dev/null +++ b/assets/lib/mermaid/timeline-definition-4ee9bff4.js @@ -0,0 +1,795 @@ +import { as as ft, E as gt, j, c as mt, l as T, t as xt, at as bt, au as kt, av as _t } from "./mermaid-9f2aa176.js"; +import { d as D } from "./arc-d1f6357e.js"; +import "./path-428ebac9.js"; +var K = function() { + var n = function(f, i, r, h) { + for (r = r || {}, h = f.length; h--; r[f[h]] = i) + ; + return r; + }, t = [6, 8, 10, 11, 12, 14, 16, 17, 20, 21], e = [1, 9], a = [1, 10], s = [1, 11], c = [1, 12], o = [1, 13], y = [1, 16], g = [1, 17], u = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, timeline: 4, document: 5, EOF: 6, line: 7, SPACE: 8, statement: 9, NEWLINE: 10, title: 11, acc_title: 12, acc_title_value: 13, acc_descr: 14, acc_descr_value: 15, acc_descr_multiline_value: 16, section: 17, period_statement: 18, event_statement: 19, period: 20, event: 21, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 4: "timeline", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 11: "title", 12: "acc_title", 13: "acc_title_value", 14: "acc_descr", 15: "acc_descr_value", 16: "acc_descr_multiline_value", 17: "section", 20: "period", 21: "event" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 1], [18, 1], [19, 1]], + performAction: function(i, r, h, d, p, l, w) { + var x = l.length - 1; + switch (p) { + case 1: + return l[x - 1]; + case 2: + this.$ = []; + break; + case 3: + l[x - 1].push(l[x]), this.$ = l[x - 1]; + break; + case 4: + case 5: + this.$ = l[x]; + break; + case 6: + case 7: + this.$ = []; + break; + case 8: + d.getCommonDb().setDiagramTitle(l[x].substr(6)), this.$ = l[x].substr(6); + break; + case 9: + this.$ = l[x].trim(), d.getCommonDb().setAccTitle(this.$); + break; + case 10: + case 11: + this.$ = l[x].trim(), d.getCommonDb().setAccDescription(this.$); + break; + case 12: + d.addSection(l[x].substr(8)), this.$ = l[x].substr(8); + break; + case 15: + d.addTask(l[x], 0, ""), this.$ = l[x]; + break; + case 16: + d.addEvent(l[x].substr(2)), this.$ = l[x]; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, n(t, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: e, 12: a, 14: s, 16: c, 17: o, 18: 14, 19: 15, 20: y, 21: g }, n(t, [2, 7], { 1: [2, 1] }), n(t, [2, 3]), { 9: 18, 11: e, 12: a, 14: s, 16: c, 17: o, 18: 14, 19: 15, 20: y, 21: g }, n(t, [2, 5]), n(t, [2, 6]), n(t, [2, 8]), { 13: [1, 19] }, { 15: [1, 20] }, n(t, [2, 11]), n(t, [2, 12]), n(t, [2, 13]), n(t, [2, 14]), n(t, [2, 15]), n(t, [2, 16]), n(t, [2, 4]), n(t, [2, 9]), n(t, [2, 10])], + defaultActions: {}, + parseError: function(i, r) { + if (r.recoverable) + this.trace(i); + else { + var h = new Error(i); + throw h.hash = r, h; + } + }, + parse: function(i) { + var r = this, h = [0], d = [], p = [null], l = [], w = this.table, x = "", N = 0, A = 0, V = 2, U = 1, W = l.slice.call(arguments, 1), b = Object.create(this.lexer), S = { yy: {} }; + for (var _ in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, _) && (S.yy[_] = this.yy[_]); + b.setInput(i, S.yy), S.yy.lexer = b, S.yy.parser = this, typeof b.yylloc > "u" && (b.yylloc = {}); + var I = b.yylloc; + l.push(I); + var P = b.options && b.options.ranges; + typeof S.yy.parseError == "function" ? this.parseError = S.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function C() { + var M; + return M = d.pop() || b.lex() || U, typeof M != "number" && (M instanceof Array && (d = M, M = d.pop()), M = r.symbols_[M] || M), M; + } + for (var k, L, E, Z, z = {}, B, $, Y, O; ; ) { + if (L = h[h.length - 1], this.defaultActions[L] ? E = this.defaultActions[L] : ((k === null || typeof k > "u") && (k = C()), E = w[L] && w[L][k]), typeof E > "u" || !E.length || !E[0]) { + var J = ""; + O = []; + for (B in w[L]) + this.terminals_[B] && B > V && O.push("'" + this.terminals_[B] + "'"); + b.showPosition ? J = "Parse error on line " + (N + 1) + `: +` + b.showPosition() + ` +Expecting ` + O.join(", ") + ", got '" + (this.terminals_[k] || k) + "'" : J = "Parse error on line " + (N + 1) + ": Unexpected " + (k == U ? "end of input" : "'" + (this.terminals_[k] || k) + "'"), this.parseError(J, { + text: b.match, + token: this.terminals_[k] || k, + line: b.yylineno, + loc: I, + expected: O + }); + } + if (E[0] instanceof Array && E.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + L + ", token: " + k); + switch (E[0]) { + case 1: + h.push(k), p.push(b.yytext), l.push(b.yylloc), h.push(E[1]), k = null, A = b.yyleng, x = b.yytext, N = b.yylineno, I = b.yylloc; + break; + case 2: + if ($ = this.productions_[E[1]][1], z.$ = p[p.length - $], z._$ = { + first_line: l[l.length - ($ || 1)].first_line, + last_line: l[l.length - 1].last_line, + first_column: l[l.length - ($ || 1)].first_column, + last_column: l[l.length - 1].last_column + }, P && (z._$.range = [ + l[l.length - ($ || 1)].range[0], + l[l.length - 1].range[1] + ]), Z = this.performAction.apply(z, [ + x, + A, + N, + S.yy, + E[1], + p, + l + ].concat(W)), typeof Z < "u") + return Z; + $ && (h = h.slice(0, -1 * $ * 2), p = p.slice(0, -1 * $), l = l.slice(0, -1 * $)), h.push(this.productions_[E[1]][0]), p.push(z.$), l.push(z._$), Y = w[h[h.length - 2]][h[h.length - 1]], h.push(Y); + break; + case 3: + return !0; + } + } + return !0; + } + }, m = function() { + var f = { + EOF: 1, + parseError: function(r, h) { + if (this.yy.parser) + this.yy.parser.parseError(r, h); + else + throw new Error(r); + }, + // resets the lexer, sets new input + setInput: function(i, r) { + return this.yy = r || this.yy || {}, this._input = i, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var i = this._input[0]; + this.yytext += i, this.yyleng++, this.offset++, this.match += i, this.matched += i; + var r = i.match(/(?:\r\n?|\n).*/g); + return r ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), i; + }, + // unshifts one char (or a string) into the input + unput: function(i) { + var r = i.length, h = i.split(/(?:\r\n?|\n)/g); + this._input = i + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - r), this.offset -= r; + var d = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), h.length - 1 && (this.yylineno -= h.length - 1); + var p = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: h ? (h.length === d.length ? this.yylloc.first_column : 0) + d[d.length - h.length].length - h[0].length : this.yylloc.first_column - r + }, this.options.ranges && (this.yylloc.range = [p[0], p[0] + this.yyleng - r]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(i) { + this.unput(this.match.slice(i)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var i = this.matched.substr(0, this.matched.length - this.match.length); + return (i.length > 20 ? "..." : "") + i.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var i = this.match; + return i.length < 20 && (i += this._input.substr(0, 20 - i.length)), (i.substr(0, 20) + (i.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var i = this.pastInput(), r = new Array(i.length + 1).join("-"); + return i + this.upcomingInput() + ` +` + r + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(i, r) { + var h, d, p; + if (this.options.backtrack_lexer && (p = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (p.yylloc.range = this.yylloc.range.slice(0))), d = i[0].match(/(?:\r\n?|\n).*/g), d && (this.yylineno += d.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: d ? d[d.length - 1].length - d[d.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + i[0].length + }, this.yytext += i[0], this.match += i[0], this.matches = i, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(i[0].length), this.matched += i[0], h = this.performAction.call(this, this.yy, this, r, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), h) + return h; + if (this._backtrack) { + for (var l in p) + this[l] = p[l]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var i, r, h, d; + this._more || (this.yytext = "", this.match = ""); + for (var p = this._currentRules(), l = 0; l < p.length; l++) + if (h = this._input.match(this.rules[p[l]]), h && (!r || h[0].length > r[0].length)) { + if (r = h, d = l, this.options.backtrack_lexer) { + if (i = this.test_match(h, p[l]), i !== !1) + return i; + if (this._backtrack) { + r = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return r ? (i = this.test_match(r, p[d]), i !== !1 ? i : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var r = this.next(); + return r || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(r) { + this.conditionStack.push(r); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var r = this.conditionStack.length - 1; + return r > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(r) { + return r = this.conditionStack.length - 1 - Math.abs(r || 0), r >= 0 ? this.conditionStack[r] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(r) { + this.begin(r); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: { "case-insensitive": !0 }, + performAction: function(r, h, d, p) { + switch (d) { + case 0: + break; + case 1: + break; + case 2: + return 10; + case 3: + break; + case 4: + break; + case 5: + return 4; + case 6: + return 11; + case 7: + return this.begin("acc_title"), 12; + case 8: + return this.popState(), "acc_title_value"; + case 9: + return this.begin("acc_descr"), 14; + case 10: + return this.popState(), "acc_descr_value"; + case 11: + this.begin("acc_descr_multiline"); + break; + case 12: + this.popState(); + break; + case 13: + return "acc_descr_multiline_value"; + case 14: + return 17; + case 15: + return 21; + case 16: + return 20; + case 17: + return 6; + case 18: + return "INVALID"; + } + }, + rules: [/^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:timeline\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?::\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { acc_descr_multiline: { rules: [12, 13], inclusive: !1 }, acc_descr: { rules: [10], inclusive: !1 }, acc_title: { rules: [8], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18], inclusive: !0 } } + }; + return f; + }(); + u.lexer = m; + function v() { + this.yy = {}; + } + return v.prototype = u, u.Parser = v, new v(); +}(); +K.parser = K; +const vt = K; +let R = "", st = 0; +const Q = [], G = [], F = [], it = () => ft, rt = function() { + Q.length = 0, G.length = 0, R = "", F.length = 0, gt(); +}, at = function(n) { + R = n, Q.push(n); +}, lt = function() { + return Q; +}, ot = function() { + let n = tt(); + const t = 100; + let e = 0; + for (; !n && e < t; ) + n = tt(), e++; + return G.push(...F), G; +}, ct = function(n, t, e) { + const a = { + id: st++, + section: R, + type: R, + task: n, + score: t || 0, + //if event is defined, then add it the events array + events: e ? [e] : [] + }; + F.push(a); +}, ht = function(n) { + F.find((e) => e.id === st - 1).events.push(n); +}, dt = function(n) { + const t = { + section: R, + type: R, + description: n, + task: n, + classes: [] + }; + G.push(t); +}, tt = function() { + const n = function(e) { + return F[e].processed; + }; + let t = !0; + for (const [e, a] of F.entries()) + n(e), t = t && a.processed; + return t; +}, wt = { + clear: rt, + getCommonDb: it, + addSection: at, + getSections: lt, + getTasks: ot, + addTask: ct, + addTaskOrg: dt, + addEvent: ht +}, St = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + addEvent: ht, + addSection: at, + addTask: ct, + addTaskOrg: dt, + clear: rt, + default: wt, + getCommonDb: it, + getSections: lt, + getTasks: ot +}, Symbol.toStringTag, { value: "Module" })), Et = 12, q = function(n, t) { + const e = n.append("rect"); + return e.attr("x", t.x), e.attr("y", t.y), e.attr("fill", t.fill), e.attr("stroke", t.stroke), e.attr("width", t.width), e.attr("height", t.height), e.attr("rx", t.rx), e.attr("ry", t.ry), t.class !== void 0 && e.attr("class", t.class), e; +}, Tt = function(n, t) { + const a = n.append("circle").attr("cx", t.cx).attr("cy", t.cy).attr("class", "face").attr("r", 15).attr("stroke-width", 2).attr("overflow", "visible"), s = n.append("g"); + s.append("circle").attr("cx", t.cx - 15 / 3).attr("cy", t.cy - 15 / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"), s.append("circle").attr("cx", t.cx + 15 / 3).attr("cy", t.cy - 15 / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); + function c(g) { + const u = D().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(7.5).outerRadius(6.8181818181818175); + g.append("path").attr("class", "mouth").attr("d", u).attr("transform", "translate(" + t.cx + "," + (t.cy + 2) + ")"); + } + function o(g) { + const u = D().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(7.5).outerRadius(6.8181818181818175); + g.append("path").attr("class", "mouth").attr("d", u).attr("transform", "translate(" + t.cx + "," + (t.cy + 7) + ")"); + } + function y(g) { + g.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", t.cx - 5).attr("y1", t.cy + 7).attr("x2", t.cx + 5).attr("y2", t.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666"); + } + return t.score > 3 ? c(s) : t.score < 3 ? o(s) : y(s), a; +}, It = function(n, t) { + const e = n.append("circle"); + return e.attr("cx", t.cx), e.attr("cy", t.cy), e.attr("class", "actor-" + t.pos), e.attr("fill", t.fill), e.attr("stroke", t.stroke), e.attr("r", t.r), e.class !== void 0 && e.attr("class", e.class), t.title !== void 0 && e.append("title").text(t.title), e; +}, ut = function(n, t) { + const e = t.text.replace(//gi, " "), a = n.append("text"); + a.attr("x", t.x), a.attr("y", t.y), a.attr("class", "legend"), a.style("text-anchor", t.anchor), t.class !== void 0 && a.attr("class", t.class); + const s = a.append("tspan"); + return s.attr("x", t.x + t.textMargin * 2), s.text(e), a; +}, Nt = function(n, t) { + function e(s, c, o, y, g) { + return s + "," + c + " " + (s + o) + "," + c + " " + (s + o) + "," + (c + y - g) + " " + (s + o - g * 1.2) + "," + (c + y) + " " + s + "," + (c + y); + } + const a = n.append("polygon"); + a.attr("points", e(t.x, t.y, 50, 20, 7)), a.attr("class", "labelBox"), t.y = t.y + t.labelMargin, t.x = t.x + 0.5 * t.labelMargin, ut(n, t); +}, $t = function(n, t, e) { + const a = n.append("g"), s = X(); + s.x = t.x, s.y = t.y, s.fill = t.fill, s.width = e.width, s.height = e.height, s.class = "journey-section section-type-" + t.num, s.rx = 3, s.ry = 3, q(a, s), pt(e)( + t.text, + a, + s.x, + s.y, + s.width, + s.height, + { class: "journey-section section-type-" + t.num }, + e, + t.colour + ); +}; +let et = -1; +const Mt = function(n, t, e) { + const a = t.x + e.width / 2, s = n.append("g"); + et++; + const c = 300 + 5 * 30; + s.append("line").attr("id", "task" + et).attr("x1", a).attr("y1", t.y).attr("x2", a).attr("y2", c).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666"), Tt(s, { + cx: a, + cy: 300 + (5 - t.score) * 30, + score: t.score + }); + const o = X(); + o.x = t.x, o.y = t.y, o.fill = t.fill, o.width = e.width, o.height = e.height, o.class = "task task-type-" + t.num, o.rx = 3, o.ry = 3, q(s, o), t.x + 14, pt(e)( + t.task, + s, + o.x, + o.y, + o.width, + o.height, + { class: "task" }, + e, + t.colour + ); +}, Lt = function(n, t) { + q(n, { + x: t.startx, + y: t.starty, + width: t.stopx - t.startx, + height: t.stopy - t.starty, + fill: t.fill, + class: "rect" + }).lower(); +}, At = function() { + return { + x: 0, + y: 0, + fill: void 0, + "text-anchor": "start", + width: 100, + height: 100, + textMargin: 0, + rx: 0, + ry: 0 + }; +}, X = function() { + return { + x: 0, + y: 0, + width: 100, + anchor: "start", + height: 100, + rx: 0, + ry: 0 + }; +}, pt = function() { + function n(s, c, o, y, g, u, m, v) { + const f = c.append("text").attr("x", o + g / 2).attr("y", y + u / 2 + 5).style("font-color", v).style("text-anchor", "middle").text(s); + a(f, m); + } + function t(s, c, o, y, g, u, m, v, f) { + const { taskFontSize: i, taskFontFamily: r } = v, h = s.split(//gi); + for (let d = 0; d < h.length; d++) { + const p = d * i - i * (h.length - 1) / 2, l = c.append("text").attr("x", o + g / 2).attr("y", y).attr("fill", f).style("text-anchor", "middle").style("font-size", i).style("font-family", r); + l.append("tspan").attr("x", o + g / 2).attr("dy", p).text(h[d]), l.attr("y", y + u / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"), a(l, m); + } + } + function e(s, c, o, y, g, u, m, v) { + const f = c.append("switch"), r = f.append("foreignObject").attr("x", o).attr("y", y).attr("width", g).attr("height", u).attr("position", "fixed").append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + r.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(s), t(s, f, o, y, g, u, m, v), a(r, m); + } + function a(s, c) { + for (const o in c) + o in c && s.attr(o, c[o]); + } + return function(s) { + return s.textPlacement === "fo" ? e : s.textPlacement === "old" ? n : t; + }; +}(), Pt = function(n) { + n.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z"); +}; +function yt(n, t) { + n.each(function() { + var e = j(this), a = e.text().split(/(\s+|
)/).reverse(), s, c = [], o = 1.1, y = e.attr("y"), g = parseFloat(e.attr("dy")), u = e.text(null).append("tspan").attr("x", 0).attr("y", y).attr("dy", g + "em"); + for (let m = 0; m < a.length; m++) + s = a[a.length - 1 - m], c.push(s), u.text(c.join(" ").trim()), (u.node().getComputedTextLength() > t || s === "
") && (c.pop(), u.text(c.join(" ").trim()), s === "
" ? c = [""] : c = [s], u = e.append("tspan").attr("x", 0).attr("y", y).attr("dy", o + "em").text(s)); + }); +} +const Ht = function(n, t, e, a) { + const s = e % Et - 1, c = n.append("g"); + t.section = s, c.attr( + "class", + (t.class ? t.class + " " : "") + "timeline-node " + ("section-" + s) + ); + const o = c.append("g"), y = c.append("g"), u = y.append("text").text(t.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(yt, t.width).node().getBBox(), m = a.fontSize && a.fontSize.replace ? a.fontSize.replace("px", "") : a.fontSize; + return t.height = u.height + m * 1.1 * 0.5 + t.padding, t.height = Math.max(t.height, t.maxHeight), t.width = t.width + 2 * t.padding, y.attr("transform", "translate(" + t.width / 2 + ", " + t.padding / 2 + ")"), zt(o, t, s), t; +}, Ct = function(n, t, e) { + const a = n.append("g"), c = a.append("text").text(t.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(yt, t.width).node().getBBox(), o = e.fontSize && e.fontSize.replace ? e.fontSize.replace("px", "") : e.fontSize; + return a.remove(), c.height + o * 1.1 * 0.5 + t.padding; +}, zt = function(n, t, e) { + n.append("path").attr("id", "node-" + t.id).attr("class", "node-bkg node-" + t.type).attr( + "d", + `M0 ${t.height - 5} v${-t.height + 2 * 5} q0,-5 5,-5 h${t.width - 2 * 5} q5,0 5,5 v${t.height - 5} H0 Z` + ), n.append("line").attr("class", "node-line-" + e).attr("x1", 0).attr("y1", t.height).attr("x2", t.width).attr("y2", t.height); +}, H = { + drawRect: q, + drawCircle: It, + drawSection: $t, + drawText: ut, + drawLabel: Nt, + drawTask: Mt, + drawBackgroundRect: Lt, + getTextObj: At, + getNoteRect: X, + initGraphics: Pt, + drawNode: Ht, + getVirtualNodeHeight: Ct +}, Rt = function(n, t, e, a) { + var W, b; + const s = mt(), c = s.leftMargin ?? 50; + T.debug("timeline", a.db); + const o = s.securityLevel; + let y; + o === "sandbox" && (y = j("#i" + t)); + const u = (o === "sandbox" ? j(y.nodes()[0].contentDocument.body) : j("body")).select("#" + t); + u.append("g"); + const m = a.db.getTasks(), v = a.db.getCommonDb().getDiagramTitle(); + T.debug("task", m), H.initGraphics(u); + const f = a.db.getSections(); + T.debug("sections", f); + let i = 0, r = 0, h = 0, d = 0, p = 50 + c, l = 50; + d = 50; + let w = 0, x = !0; + f.forEach(function(S) { + const _ = { + number: w, + descr: S, + section: w, + width: 150, + padding: 20, + maxHeight: i + }, I = H.getVirtualNodeHeight(u, _, s); + T.debug("sectionHeight before draw", I), i = Math.max(i, I + 20); + }); + let N = 0, A = 0; + T.debug("tasks.length", m.length); + for (const [S, _] of m.entries()) { + const I = { + number: S, + descr: _, + section: _.section, + width: 150, + padding: 20, + maxHeight: r + }, P = H.getVirtualNodeHeight(u, I, s); + T.debug("taskHeight before draw", P), r = Math.max(r, P + 20), N = Math.max(N, _.events.length); + let C = 0; + for (let k = 0; k < _.events.length; k++) { + const E = { + descr: _.events[k], + section: _.section, + number: _.section, + width: 150, + padding: 20, + maxHeight: 50 + }; + C += H.getVirtualNodeHeight(u, E, s); + } + A = Math.max(A, C); + } + T.debug("maxSectionHeight before draw", i), T.debug("maxTaskHeight before draw", r), f && f.length > 0 ? f.forEach((S) => { + const _ = m.filter((k) => k.section === S), I = { + number: w, + descr: S, + section: w, + width: 200 * Math.max(_.length, 1) - 50, + padding: 20, + maxHeight: i + }; + T.debug("sectionNode", I); + const P = u.append("g"), C = H.drawNode(P, I, w, s); + T.debug("sectionNode output", C), P.attr("transform", `translate(${p}, ${d})`), l += i + 50, _.length > 0 && nt( + u, + _, + w, + p, + l, + r, + s, + N, + A, + i, + !1 + ), p += 200 * Math.max(_.length, 1), l = d, w++; + }) : (x = !1, nt( + u, + m, + w, + p, + l, + r, + s, + N, + A, + i, + !0 + )); + const V = u.node().getBBox(); + T.debug("bounds", V), v && u.append("text").text(v).attr("x", V.width / 2 - c).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20), h = x ? i + r + 150 : r + 100, u.append("g").attr("class", "lineWrapper").append("line").attr("x1", c).attr("y1", h).attr("x2", V.width + 3 * c).attr("y2", h).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)"), xt( + void 0, + u, + ((W = s.timeline) == null ? void 0 : W.padding) ?? 50, + ((b = s.timeline) == null ? void 0 : b.useMaxWidth) ?? !1 + ); +}, nt = function(n, t, e, a, s, c, o, y, g, u, m) { + var v; + for (const f of t) { + const i = { + descr: f.task, + section: e, + number: e, + width: 150, + padding: 20, + maxHeight: c + }; + T.debug("taskNode", i); + const r = n.append("g").attr("class", "taskWrapper"), d = H.drawNode(r, i, e, o).height; + if (T.debug("taskHeight after draw", d), r.attr("transform", `translate(${a}, ${s})`), c = Math.max(c, d), f.events) { + const p = n.append("g").attr("class", "lineWrapper"); + let l = c; + s += 100, l = l + Ft(n, f.events, e, a, s, o), s -= 100, p.append("line").attr("x1", a + 190 / 2).attr("y1", s + c).attr("x2", a + 190 / 2).attr( + "y2", + s + c + (m ? c : u) + g + 120 + ).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", "url(#arrowhead)").attr("stroke-dasharray", "5,5"); + } + a = a + 200, m && !((v = o.timeline) != null && v.disableMulticolor) && e++; + } + s = s - 10; +}, Ft = function(n, t, e, a, s, c) { + let o = 0; + const y = s; + s = s + 100; + for (const g of t) { + const u = { + descr: g, + section: e, + number: e, + width: 150, + padding: 20, + maxHeight: 50 + }; + T.debug("eventNode", u); + const m = n.append("g").attr("class", "eventWrapper"), f = H.drawNode(m, u, e, c).height; + o = o + f, m.attr("transform", `translate(${a}, ${s})`), s = s + 10 + f; + } + return s = y, o; +}, Vt = { + setConf: () => { + }, + draw: Rt +}, Wt = (n) => { + let t = ""; + for (let e = 0; e < n.THEME_COLOR_LIMIT; e++) + n["lineColor" + e] = n["lineColor" + e] || n["cScaleInv" + e], bt(n["lineColor" + e]) ? n["lineColor" + e] = kt(n["lineColor" + e], 20) : n["lineColor" + e] = _t(n["lineColor" + e], 20); + for (let e = 0; e < n.THEME_COLOR_LIMIT; e++) { + const a = "" + (17 - 3 * e); + t += ` + .section-${e - 1} rect, .section-${e - 1} path, .section-${e - 1} circle, .section-${e - 1} path { + fill: ${n["cScale" + e]}; + } + .section-${e - 1} text { + fill: ${n["cScaleLabel" + e]}; + } + .node-icon-${e - 1} { + font-size: 40px; + color: ${n["cScaleLabel" + e]}; + } + .section-edge-${e - 1}{ + stroke: ${n["cScale" + e]}; + } + .edge-depth-${e - 1}{ + stroke-width: ${a}; + } + .section-${e - 1} line { + stroke: ${n["cScaleInv" + e]} ; + stroke-width: 3; + } + + .lineWrapper line{ + stroke: ${n["cScaleLabel" + e]} ; + } + + .disabled, .disabled circle, .disabled text { + fill: lightgray; + } + .disabled text { + fill: #efefef; + } + `; + } + return t; +}, Bt = (n) => ` + .edge { + stroke-width: 3; + } + ${Wt(n)} + .section-root rect, .section-root path, .section-root circle { + fill: ${n.git0}; + } + .section-root text { + fill: ${n.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`, Ot = Bt, Ut = { + db: St, + renderer: Vt, + parser: vt, + styles: Ot +}; +export { + Ut as diagram +}; diff --git a/assets/lib/mermaid/timeline-definition-bf702344.js b/assets/lib/mermaid/timeline-definition-bf702344.js new file mode 100644 index 000000000..d36a67b83 --- /dev/null +++ b/assets/lib/mermaid/timeline-definition-bf702344.js @@ -0,0 +1,1219 @@ +import { L as commonDb, v as clear$1, c as getConfig, l as log, o as setupGraphViewbox } from "./mermaid-6dc72991.js"; +import { select, arc } from "d3"; +import { isDark, lighten, darken } from "khroma"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 20, 21], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 16], $V7 = [1, 17]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "timeline": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "title": 11, "acc_title": 12, "acc_title_value": 13, "acc_descr": 14, "acc_descr_value": 15, "acc_descr_multiline_value": 16, "section": 17, "period_statement": 18, "event_statement": 19, "period": 20, "event": 21, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "timeline", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 11: "title", 12: "acc_title", 13: "acc_title_value", 14: "acc_descr", 15: "acc_descr_value", 16: "acc_descr_multiline_value", 17: "section", 20: "period", 21: "event" }, + productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 1], [18, 1], [19, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 1: + return $$[$0 - 1]; + case 2: + this.$ = []; + break; + case 3: + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + break; + case 4: + case 5: + this.$ = $$[$0]; + break; + case 6: + case 7: + this.$ = []; + break; + case 8: + yy.getCommonDb().setDiagramTitle($$[$0].substr(6)); + this.$ = $$[$0].substr(6); + break; + case 9: + this.$ = $$[$0].trim(); + yy.getCommonDb().setAccTitle(this.$); + break; + case 10: + case 11: + this.$ = $$[$0].trim(); + yy.getCommonDb().setAccDescription(this.$); + break; + case 12: + yy.addSection($$[$0].substr(8)); + this.$ = $$[$0].substr(8); + break; + case 15: + yy.addTask($$[$0], 0, ""); + this.$ = $$[$0]; + break; + case 16: + yy.addEvent($$[$0].substr(2)); + this.$ = $$[$0]; + break; + } + }, + table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 18, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 19] }, { 15: [1, 20] }, o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10])], + defaultActions: {}, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + break; + case 1: + break; + case 2: + return 10; + case 3: + break; + case 4: + break; + case 5: + return 4; + case 6: + return 11; + case 7: + this.begin("acc_title"); + return 12; + case 8: + this.popState(); + return "acc_title_value"; + case 9: + this.begin("acc_descr"); + return 14; + case 10: + this.popState(); + return "acc_descr_value"; + case 11: + this.begin("acc_descr_multiline"); + break; + case 12: + this.popState(); + break; + case 13: + return "acc_descr_multiline_value"; + case 14: + return 17; + case 15: + return 21; + case 16: + return 20; + case 17: + return 6; + case 18: + return "INVALID"; + } + }, + rules: [/^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:timeline\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?::\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let currentSection = ""; +let currentTaskId = 0; +const sections = []; +const tasks = []; +const rawTasks = []; +const getCommonDb = () => commonDb; +const clear = function() { + sections.length = 0; + tasks.length = 0; + currentSection = ""; + rawTasks.length = 0; + clear$1(); +}; +const addSection = function(txt) { + currentSection = txt; + sections.push(txt); +}; +const getSections = function() { + return sections; +}; +const getTasks = function() { + let allItemsProcessed = compileTasks(); + const maxDepth = 100; + let iterationCount = 0; + while (!allItemsProcessed && iterationCount < maxDepth) { + allItemsProcessed = compileTasks(); + iterationCount++; + } + tasks.push(...rawTasks); + return tasks; +}; +const addTask = function(period, length, event) { + const rawTask = { + id: currentTaskId++, + section: currentSection, + type: currentSection, + task: period, + score: length ? length : 0, + //if event is defined, then add it the events array + events: event ? [event] : [] + }; + rawTasks.push(rawTask); +}; +const addEvent = function(event) { + const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1); + currentTask.events.push(event); +}; +const addTaskOrg = function(descr) { + const newTask = { + section: currentSection, + type: currentSection, + description: descr, + task: descr, + classes: [] + }; + tasks.push(newTask); +}; +const compileTasks = function() { + const compileTask = function(pos) { + return rawTasks[pos].processed; + }; + let allProcessed = true; + for (const [i, rawTask] of rawTasks.entries()) { + compileTask(i); + allProcessed = allProcessed && rawTask.processed; + } + return allProcessed; +}; +const timelineDb = { + clear, + getCommonDb, + addSection, + getSections, + getTasks, + addTask, + addTaskOrg, + addEvent +}; +const db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + addEvent, + addSection, + addTask, + addTaskOrg, + clear, + default: timelineDb, + getCommonDb, + getSections, + getTasks +}, Symbol.toStringTag, { value: "Module" })); +const MAX_SECTIONS = 12; +const drawRect = function(elem, rectData) { + const rectElem = elem.append("rect"); + rectElem.attr("x", rectData.x); + rectElem.attr("y", rectData.y); + rectElem.attr("fill", rectData.fill); + rectElem.attr("stroke", rectData.stroke); + rectElem.attr("width", rectData.width); + rectElem.attr("height", rectData.height); + rectElem.attr("rx", rectData.rx); + rectElem.attr("ry", rectData.ry); + if (rectData.class !== void 0) { + rectElem.attr("class", rectData.class); + } + return rectElem; +}; +const drawFace = function(element, faceData) { + const radius = 15; + const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible"); + const face = element.append("g"); + face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); + face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); + function smile(face2) { + const arc$1 = arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); + face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")"); + } + function sad(face2) { + const arc$1 = arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); + face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")"); + } + function ambivalent(face2) { + face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666"); + } + if (faceData.score > 3) { + smile(face); + } else if (faceData.score < 3) { + sad(face); + } else { + ambivalent(face); + } + return circleElement; +}; +const drawCircle = function(element, circleData) { + const circleElement = element.append("circle"); + circleElement.attr("cx", circleData.cx); + circleElement.attr("cy", circleData.cy); + circleElement.attr("class", "actor-" + circleData.pos); + circleElement.attr("fill", circleData.fill); + circleElement.attr("stroke", circleData.stroke); + circleElement.attr("r", circleData.r); + if (circleElement.class !== void 0) { + circleElement.attr("class", circleElement.class); + } + if (circleData.title !== void 0) { + circleElement.append("title").text(circleData.title); + } + return circleElement; +}; +const drawText = function(elem, textData) { + const nText = textData.text.replace(//gi, " "); + const textElem = elem.append("text"); + textElem.attr("x", textData.x); + textElem.attr("y", textData.y); + textElem.attr("class", "legend"); + textElem.style("text-anchor", textData.anchor); + if (textData.class !== void 0) { + textElem.attr("class", textData.class); + } + const span = textElem.append("tspan"); + span.attr("x", textData.x + textData.textMargin * 2); + span.text(nText); + return textElem; +}; +const drawLabel = function(elem, txtObject) { + function genPoints(x, y, width, height, cut) { + return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height); + } + const polygon = elem.append("polygon"); + polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7)); + polygon.attr("class", "labelBox"); + txtObject.y = txtObject.y + txtObject.labelMargin; + txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin; + drawText(elem, txtObject); +}; +const drawSection = function(elem, section, conf) { + const g = elem.append("g"); + const rect = getNoteRect(); + rect.x = section.x; + rect.y = section.y; + rect.fill = section.fill; + rect.width = conf.width; + rect.height = conf.height; + rect.class = "journey-section section-type-" + section.num; + rect.rx = 3; + rect.ry = 3; + drawRect(g, rect); + _drawTextCandidateFunc(conf)( + section.text, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: "journey-section section-type-" + section.num }, + conf, + section.colour + ); +}; +let taskCount = -1; +const drawTask = function(elem, task, conf) { + const center = task.x + conf.width / 2; + const g = elem.append("g"); + taskCount++; + const maxHeight = 300 + 5 * 30; + g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666"); + drawFace(g, { + cx: center, + cy: 300 + (5 - task.score) * 30, + score: task.score + }); + const rect = getNoteRect(); + rect.x = task.x; + rect.y = task.y; + rect.fill = task.fill; + rect.width = conf.width; + rect.height = conf.height; + rect.class = "task task-type-" + task.num; + rect.rx = 3; + rect.ry = 3; + drawRect(g, rect); + task.x + 14; + _drawTextCandidateFunc(conf)( + task.task, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: "task" }, + conf, + task.colour + ); +}; +const drawBackgroundRect = function(elem, bounds) { + const rectElem = drawRect(elem, { + x: bounds.startx, + y: bounds.starty, + width: bounds.stopx - bounds.startx, + height: bounds.stopy - bounds.starty, + fill: bounds.fill, + class: "rect" + }); + rectElem.lower(); +}; +const getTextObj = function() { + return { + x: 0, + y: 0, + fill: void 0, + "text-anchor": "start", + width: 100, + height: 100, + textMargin: 0, + rx: 0, + ry: 0 + }; +}; +const getNoteRect = function() { + return { + x: 0, + y: 0, + width: 100, + anchor: "start", + height: 100, + rx: 0, + ry: 0 + }; +}; +const _drawTextCandidateFunc = function() { + function byText(content, g, x, y, width, height, textAttrs, colour) { + const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content); + _setTextAttrs(text, textAttrs); + } + function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) { + const { taskFontSize, taskFontFamily } = conf; + const lines = content.split(//gi); + for (let i = 0; i < lines.length; i++) { + const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2; + const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily); + text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]); + text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"); + _setTextAttrs(text, textAttrs); + } + } + function byFo(content, g, x, y, width, height, textAttrs, conf) { + const body = g.append("switch"); + const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed"); + const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); + byTspan(content, body, x, y, width, height, textAttrs, conf); + _setTextAttrs(text, textAttrs); + } + function _setTextAttrs(toText, fromTextAttrsDict) { + for (const key in fromTextAttrsDict) { + if (key in fromTextAttrsDict) { + toText.attr(key, fromTextAttrsDict[key]); + } + } + } + return function(conf) { + return conf.textPlacement === "fo" ? byFo : conf.textPlacement === "old" ? byText : byTspan; + }; +}(); +const initGraphics = function(graphics) { + graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z"); +}; +function wrap(text, width) { + text.each(function() { + var text2 = select(this), words = text2.text().split(/(\s+|
)/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr("y"), dy = parseFloat(text2.attr("dy")), tspan = text2.text(null).append("tspan").attr("x", 0).attr("y", y).attr("dy", dy + "em"); + for (let j = 0; j < words.length; j++) { + word = words[words.length - 1 - j]; + line.push(word); + tspan.text(line.join(" ").trim()); + if (tspan.node().getComputedTextLength() > width || word === "
") { + line.pop(); + tspan.text(line.join(" ").trim()); + if (word === "
") { + line = [""]; + } else { + line = [word]; + } + tspan = text2.append("tspan").attr("x", 0).attr("y", y).attr("dy", lineHeight + "em").text(word); + } + } + }); +} +const drawNode = function(elem, node, fullSection, conf) { + const section = fullSection % MAX_SECTIONS - 1; + const nodeElem = elem.append("g"); + node.section = section; + nodeElem.attr( + "class", + (node.class ? node.class + " " : "") + "timeline-node " + ("section-" + section) + ); + const bkgElem = nodeElem.append("g"); + const textElem = nodeElem.append("g"); + const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width); + const bbox = txt.node().getBBox(); + const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize; + node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding; + node.height = Math.max(node.height, node.maxHeight); + node.width = node.width + 2 * node.padding; + textElem.attr("transform", "translate(" + node.width / 2 + ", " + node.padding / 2 + ")"); + defaultBkg(bkgElem, node, section); + return node; +}; +const getVirtualNodeHeight = function(elem, node, conf) { + const textElem = elem.append("g"); + const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width); + const bbox = txt.node().getBBox(); + const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize; + textElem.remove(); + return bbox.height + fontSize * 1.1 * 0.5 + node.padding; +}; +const defaultBkg = function(elem, node, section) { + const rd = 5; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + node.type).attr( + "d", + `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z` + ); + elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height); +}; +const svgDraw = { + drawRect, + drawCircle, + drawSection, + drawText, + drawLabel, + drawTask, + drawBackgroundRect, + getTextObj, + getNoteRect, + initGraphics, + drawNode, + getVirtualNodeHeight +}; +const draw = function(text, id, version, diagObj) { + var _a, _b; + const conf = getConfig(); + const LEFT_MARGIN = conf.leftMargin ?? 50; + log.debug("timeline", diagObj.db); + const securityLevel = conf.securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = select("#i" + id); + } + const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); + const svg = root.select("#" + id); + svg.append("g"); + const tasks2 = diagObj.db.getTasks(); + const title = diagObj.db.getCommonDb().getDiagramTitle(); + log.debug("task", tasks2); + svgDraw.initGraphics(svg); + const sections2 = diagObj.db.getSections(); + log.debug("sections", sections2); + let maxSectionHeight = 0; + let maxTaskHeight = 0; + let depthY = 0; + let sectionBeginY = 0; + let masterX = 50 + LEFT_MARGIN; + let masterY = 50; + sectionBeginY = 50; + let sectionNumber = 0; + let hasSections = true; + sections2.forEach(function(section) { + const sectionNode = { + number: sectionNumber, + descr: section, + section: sectionNumber, + width: 150, + padding: 20, + maxHeight: maxSectionHeight + }; + const sectionHeight = svgDraw.getVirtualNodeHeight(svg, sectionNode, conf); + log.debug("sectionHeight before draw", sectionHeight); + maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20); + }); + let maxEventCount = 0; + let maxEventLineLength = 0; + log.debug("tasks.length", tasks2.length); + for (const [i, task] of tasks2.entries()) { + const taskNode = { + number: i, + descr: task, + section: task.section, + width: 150, + padding: 20, + maxHeight: maxTaskHeight + }; + const taskHeight = svgDraw.getVirtualNodeHeight(svg, taskNode, conf); + log.debug("taskHeight before draw", taskHeight); + maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20); + maxEventCount = Math.max(maxEventCount, task.events.length); + let maxEventLineLengthTemp = 0; + for (let j = 0; j < task.events.length; j++) { + const event = task.events[j]; + const eventNode = { + descr: event, + section: task.section, + number: task.section, + width: 150, + padding: 20, + maxHeight: 50 + }; + maxEventLineLengthTemp += svgDraw.getVirtualNodeHeight(svg, eventNode, conf); + } + maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp); + } + log.debug("maxSectionHeight before draw", maxSectionHeight); + log.debug("maxTaskHeight before draw", maxTaskHeight); + if (sections2 && sections2.length > 0) { + sections2.forEach((section) => { + const tasksForSection = tasks2.filter((task) => task.section === section); + const sectionNode = { + number: sectionNumber, + descr: section, + section: sectionNumber, + width: 200 * Math.max(tasksForSection.length, 1) - 50, + padding: 20, + maxHeight: maxSectionHeight + }; + log.debug("sectionNode", sectionNode); + const sectionNodeWrapper = svg.append("g"); + const node = svgDraw.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf); + log.debug("sectionNode output", node); + sectionNodeWrapper.attr("transform", `translate(${masterX}, ${sectionBeginY})`); + masterY += maxSectionHeight + 50; + if (tasksForSection.length > 0) { + drawTasks( + svg, + tasksForSection, + sectionNumber, + masterX, + masterY, + maxTaskHeight, + conf, + maxEventCount, + maxEventLineLength, + maxSectionHeight, + false + ); + } + masterX += 200 * Math.max(tasksForSection.length, 1); + masterY = sectionBeginY; + sectionNumber++; + }); + } else { + hasSections = false; + drawTasks( + svg, + tasks2, + sectionNumber, + masterX, + masterY, + maxTaskHeight, + conf, + maxEventCount, + maxEventLineLength, + maxSectionHeight, + true + ); + } + const box = svg.node().getBBox(); + log.debug("bounds", box); + if (title) { + svg.append("text").text(title).attr("x", box.width / 2 - LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20); + } + depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100; + const lineWrapper = svg.append("g").attr("class", "lineWrapper"); + lineWrapper.append("line").attr("x1", LEFT_MARGIN).attr("y1", depthY).attr("x2", box.width + 3 * LEFT_MARGIN).attr("y2", depthY).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)"); + setupGraphViewbox( + void 0, + svg, + ((_a = conf.timeline) == null ? void 0 : _a.padding) ?? 50, + ((_b = conf.timeline) == null ? void 0 : _b.useMaxWidth) ?? false + ); +}; +const drawTasks = function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) { + var _a; + for (const task of tasks2) { + const taskNode = { + descr: task.task, + section: sectionColor, + number: sectionColor, + width: 150, + padding: 20, + maxHeight: maxTaskHeight + }; + log.debug("taskNode", taskNode); + const taskWrapper = diagram2.append("g").attr("class", "taskWrapper"); + const node = svgDraw.drawNode(taskWrapper, taskNode, sectionColor, conf); + const taskHeight = node.height; + log.debug("taskHeight after draw", taskHeight); + taskWrapper.attr("transform", `translate(${masterX}, ${masterY})`); + maxTaskHeight = Math.max(maxTaskHeight, taskHeight); + if (task.events) { + const lineWrapper = diagram2.append("g").attr("class", "lineWrapper"); + let lineLength = maxTaskHeight; + masterY += 100; + lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf); + masterY -= 100; + lineWrapper.append("line").attr("x1", masterX + 190 / 2).attr("y1", masterY + maxTaskHeight).attr("x2", masterX + 190 / 2).attr( + "y2", + masterY + maxTaskHeight + (isWithoutSections ? maxTaskHeight : maxSectionHeight) + maxEventLineLength + 120 + ).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", "url(#arrowhead)").attr("stroke-dasharray", "5,5"); + } + masterX = masterX + 200; + if (isWithoutSections && !((_a = conf.timeline) == null ? void 0 : _a.disableMulticolor)) { + sectionColor++; + } + } + masterY = masterY - 10; +}; +const drawEvents = function(diagram2, events, sectionColor, masterX, masterY, conf) { + let maxEventHeight = 0; + const eventBeginY = masterY; + masterY = masterY + 100; + for (const event of events) { + const eventNode = { + descr: event, + section: sectionColor, + number: sectionColor, + width: 150, + padding: 20, + maxHeight: 50 + }; + log.debug("eventNode", eventNode); + const eventWrapper = diagram2.append("g").attr("class", "eventWrapper"); + const node = svgDraw.drawNode(eventWrapper, eventNode, sectionColor, conf); + const eventHeight = node.height; + maxEventHeight = maxEventHeight + eventHeight; + eventWrapper.attr("transform", `translate(${masterX}, ${masterY})`); + masterY = masterY + 10 + eventHeight; + } + masterY = eventBeginY; + return maxEventHeight; +}; +const renderer = { + setConf: () => { + }, + draw +}; +const genSections = (options) => { + let sections2 = ""; + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i]; + if (isDark(options["lineColor" + i])) { + options["lineColor" + i] = lighten(options["lineColor" + i], 20); + } else { + options["lineColor" + i] = darken(options["lineColor" + i], 20); + } + } + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + const sw = "" + (17 - 3 * i); + sections2 += ` + .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} path { + fill: ${options["cScale" + i]}; + } + .section-${i - 1} text { + fill: ${options["cScaleLabel" + i]}; + } + .node-icon-${i - 1} { + font-size: 40px; + color: ${options["cScaleLabel" + i]}; + } + .section-edge-${i - 1}{ + stroke: ${options["cScale" + i]}; + } + .edge-depth-${i - 1}{ + stroke-width: ${sw}; + } + .section-${i - 1} line { + stroke: ${options["cScaleInv" + i]} ; + stroke-width: 3; + } + + .lineWrapper line{ + stroke: ${options["cScaleLabel" + i]} ; + } + + .disabled, .disabled circle, .disabled text { + fill: lightgray; + } + .disabled text { + fill: #efefef; + } + `; + } + return sections2; +}; +const getStyles = (options) => ` + .edge { + stroke-width: 3; + } + ${genSections(options)} + .section-root rect, .section-root path, .section-root circle { + fill: ${options.git0}; + } + .section-root text { + fill: ${options.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`; +const styles = getStyles; +const diagram = { + db, + renderer, + parser: parser$1, + styles +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/xychartDiagram-de2e5521.js b/assets/lib/mermaid/xychartDiagram-de2e5521.js new file mode 100644 index 000000000..aa8194f87 --- /dev/null +++ b/assets/lib/mermaid/xychartDiagram-de2e5521.js @@ -0,0 +1,1800 @@ +import { l as log, s as setAccTitle, g as getAccTitle, C as setDiagramTitle, D as getDiagramTitle, a as getAccDescription, b as setAccDescription, Z as getThemeVariables, _ as getConfig, X as cleanAndMerge, W as defaultConfig, E as clear$1, d as sanitizeText, U as selectSvgElement, k as configureSvgSize } from "./mermaid-dcacb631.js"; +import { c as computeDimensionOfText } from "./createText-b70fe78a.js"; +import { i as initRange } from "./init-cc95ec8e.js"; +import { o as ordinal } from "./ordinal-475e0c0c.js"; +import { l as linear } from "./linear-0ad15847.js"; +import { l as line } from "./line-87f517ef.js"; +import "./array-b7dcf730.js"; +import "./path-39bad7e2.js"; +function range(start, stop, step) { + start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step; + var i = -1, n = Math.max(0, Math.ceil((stop - start) / step)) | 0, range2 = new Array(n); + while (++i < n) { + range2[i] = start + i * step; + } + return range2; +} +function band() { + var scale = ordinal().unknown(void 0), domain = scale.domain, ordinalRange = scale.range, r0 = 0, r1 = 1, step, bandwidth, round = false, paddingInner = 0, paddingOuter = 0, align = 0.5; + delete scale.unknown; + function rescale() { + var n = domain().length, reverse = r1 < r0, start = reverse ? r1 : r0, stop = reverse ? r0 : r1; + step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2); + if (round) + step = Math.floor(step); + start += (stop - start - step * (n - paddingInner)) * align; + bandwidth = step * (1 - paddingInner); + if (round) + start = Math.round(start), bandwidth = Math.round(bandwidth); + var values = range(n).map(function(i) { + return start + step * i; + }); + return ordinalRange(reverse ? values.reverse() : values); + } + scale.domain = function(_) { + return arguments.length ? (domain(_), rescale()) : domain(); + }; + scale.range = function(_) { + return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1]; + }; + scale.rangeRound = function(_) { + return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale(); + }; + scale.bandwidth = function() { + return bandwidth; + }; + scale.step = function() { + return step; + }; + scale.round = function(_) { + return arguments.length ? (round = !!_, rescale()) : round; + }; + scale.padding = function(_) { + return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner; + }; + scale.paddingInner = function(_) { + return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner; + }; + scale.paddingOuter = function(_) { + return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter; + }; + scale.align = function(_) { + return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align; + }; + scale.copy = function() { + return band(domain(), [r0, r1]).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align); + }; + return initRange.apply(rescale(), arguments); +} +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 10, 12, 14, 16, 18, 19, 21, 23], $V1 = [2, 6], $V2 = [1, 3], $V3 = [1, 5], $V4 = [1, 6], $V5 = [1, 7], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $V7 = [1, 25], $V8 = [1, 26], $V9 = [1, 28], $Va = [1, 29], $Vb = [1, 30], $Vc = [1, 31], $Vd = [1, 32], $Ve = [1, 33], $Vf = [1, 34], $Vg = [1, 35], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 43], $Vk = [1, 42], $Vl = [1, 47], $Vm = [1, 50], $Vn = [1, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $Vo = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36], $Vp = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $Vq = [1, 64]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "eol": 4, "XYCHART": 5, "chartConfig": 6, "document": 7, "CHART_ORIENTATION": 8, "statement": 9, "title": 10, "text": 11, "X_AXIS": 12, "parseXAxis": 13, "Y_AXIS": 14, "parseYAxis": 15, "LINE": 16, "plotData": 17, "BAR": 18, "acc_title": 19, "acc_title_value": 20, "acc_descr": 21, "acc_descr_value": 22, "acc_descr_multiline_value": 23, "SQUARE_BRACES_START": 24, "commaSeparatedNumbers": 25, "SQUARE_BRACES_END": 26, "NUMBER_WITH_DECIMAL": 27, "COMMA": 28, "xAxisData": 29, "bandData": 30, "ARROW_DELIMITER": 31, "commaSeparatedTexts": 32, "yAxisData": 33, "NEWLINE": 34, "SEMI": 35, "EOF": 36, "alphaNum": 37, "STR": 38, "MD_STR": 39, "alphaNumToken": 40, "AMP": 41, "NUM": 42, "ALPHA": 43, "PLUS": 44, "EQUALS": 45, "MULT": 46, "DOT": 47, "BRKT": 48, "MINUS": 49, "UNDERSCORE": 50, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 5: "XYCHART", 8: "CHART_ORIENTATION", 10: "title", 12: "X_AXIS", 14: "Y_AXIS", 16: "LINE", 18: "BAR", 19: "acc_title", 20: "acc_title_value", 21: "acc_descr", 22: "acc_descr_value", 23: "acc_descr_multiline_value", 24: "SQUARE_BRACES_START", 26: "SQUARE_BRACES_END", 27: "NUMBER_WITH_DECIMAL", 28: "COMMA", 31: "ARROW_DELIMITER", 34: "NEWLINE", 35: "SEMI", 36: "EOF", 38: "STR", 39: "MD_STR", 41: "AMP", 42: "NUM", 43: "ALPHA", 44: "PLUS", 45: "EQUALS", 46: "MULT", 47: "DOT", 48: "BRKT", 49: "MINUS", 50: "UNDERSCORE" }, + productions_: [0, [3, 2], [3, 3], [3, 2], [3, 1], [6, 1], [7, 0], [7, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 3], [9, 2], [9, 3], [9, 2], [9, 2], [9, 1], [17, 3], [25, 3], [25, 1], [13, 1], [13, 2], [13, 1], [29, 1], [29, 3], [30, 3], [32, 3], [32, 1], [15, 1], [15, 2], [15, 1], [33, 3], [4, 1], [4, 1], [4, 1], [11, 1], [11, 1], [11, 1], [37, 1], [37, 2], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 5: + yy.setOrientation($$[$0]); + break; + case 9: + yy.setDiagramTitle($$[$0].text.trim()); + break; + case 12: + yy.setLineData({ text: "", type: "text" }, $$[$0]); + break; + case 13: + yy.setLineData($$[$0 - 1], $$[$0]); + break; + case 14: + yy.setBarData({ text: "", type: "text" }, $$[$0]); + break; + case 15: + yy.setBarData($$[$0 - 1], $$[$0]); + break; + case 16: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 17: + case 18: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 19: + this.$ = $$[$0 - 1]; + break; + case 20: + this.$ = [Number($$[$0 - 2]), ...$$[$0]]; + break; + case 21: + this.$ = [Number($$[$0])]; + break; + case 22: + yy.setXAxisTitle($$[$0]); + break; + case 23: + yy.setXAxisTitle($$[$0 - 1]); + break; + case 24: + yy.setXAxisTitle({ type: "text", text: "" }); + break; + case 25: + yy.setXAxisBand($$[$0]); + break; + case 26: + yy.setXAxisRangeData(Number($$[$0 - 2]), Number($$[$0])); + break; + case 27: + this.$ = $$[$0 - 1]; + break; + case 28: + this.$ = [$$[$0 - 2], ...$$[$0]]; + break; + case 29: + this.$ = [$$[$0]]; + break; + case 30: + yy.setYAxisTitle($$[$0]); + break; + case 31: + yy.setYAxisTitle($$[$0 - 1]); + break; + case 32: + yy.setYAxisTitle({ type: "text", text: "" }); + break; + case 33: + yy.setYAxisRangeData(Number($$[$0 - 2]), Number($$[$0])); + break; + case 37: + this.$ = { text: $$[$0], type: "text" }; + break; + case 38: + this.$ = { text: $$[$0], type: "text" }; + break; + case 39: + this.$ = { text: $$[$0], type: "markdown" }; + break; + case 40: + this.$ = $$[$0]; + break; + case 41: + this.$ = $$[$0 - 1] + "" + $$[$0]; + break; + } + }, + table: [o($V0, $V1, { 3: 1, 4: 2, 7: 4, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [3] }, o($V0, $V1, { 4: 2, 7: 4, 3: 8, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), o($V0, $V1, { 4: 2, 7: 4, 6: 9, 3: 10, 5: $V2, 8: [1, 11], 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 4], 9: 12, 10: [1, 13], 12: [1, 14], 14: [1, 15], 16: [1, 16], 18: [1, 17], 19: [1, 18], 21: [1, 19], 23: [1, 20] }, o($V6, [2, 34]), o($V6, [2, 35]), o($V6, [2, 36]), { 1: [2, 1] }, o($V0, $V1, { 4: 2, 7: 4, 3: 21, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 3] }, o($V6, [2, 5]), o($V0, [2, 7], { 4: 22, 34: $V3, 35: $V4, 36: $V5 }), { 11: 23, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 39, 13: 38, 24: $Vj, 27: $Vk, 29: 40, 30: 41, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 45, 15: 44, 27: $Vl, 33: 46, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 49, 17: 48, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 52, 17: 51, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 20: [1, 53] }, { 22: [1, 54] }, o($Vn, [2, 18]), { 1: [2, 2] }, o($Vn, [2, 8]), o($Vn, [2, 9]), o($Vo, [2, 37], { 40: 55, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }), o($Vo, [2, 38]), o($Vo, [2, 39]), o($Vp, [2, 40]), o($Vp, [2, 42]), o($Vp, [2, 43]), o($Vp, [2, 44]), o($Vp, [2, 45]), o($Vp, [2, 46]), o($Vp, [2, 47]), o($Vp, [2, 48]), o($Vp, [2, 49]), o($Vp, [2, 50]), o($Vp, [2, 51]), o($Vn, [2, 10]), o($Vn, [2, 22], { 30: 41, 29: 56, 24: $Vj, 27: $Vk }), o($Vn, [2, 24]), o($Vn, [2, 25]), { 31: [1, 57] }, { 11: 59, 32: 58, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 11]), o($Vn, [2, 30], { 33: 60, 27: $Vl }), o($Vn, [2, 32]), { 31: [1, 61] }, o($Vn, [2, 12]), { 17: 62, 24: $Vm }, { 25: 63, 27: $Vq }, o($Vn, [2, 14]), { 17: 65, 24: $Vm }, o($Vn, [2, 16]), o($Vn, [2, 17]), o($Vp, [2, 41]), o($Vn, [2, 23]), { 27: [1, 66] }, { 26: [1, 67] }, { 26: [2, 29], 28: [1, 68] }, o($Vn, [2, 31]), { 27: [1, 69] }, o($Vn, [2, 13]), { 26: [1, 70] }, { 26: [2, 21], 28: [1, 71] }, o($Vn, [2, 15]), o($Vn, [2, 26]), o($Vn, [2, 27]), { 11: 59, 32: 72, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 33]), o($Vn, [2, 19]), { 25: 73, 27: $Vq }, { 26: [2, 28] }, { 26: [2, 20] }], + defaultActions: { 8: [2, 1], 10: [2, 3], 21: [2, 2], 72: [2, 28], 73: [2, 20] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + break; + case 1: + break; + case 2: + this.popState(); + return 34; + case 3: + this.popState(); + return 34; + case 4: + return 34; + case 5: + break; + case 6: + return 10; + case 7: + this.pushState("acc_title"); + return 19; + case 8: + this.popState(); + return "acc_title_value"; + case 9: + this.pushState("acc_descr"); + return 21; + case 10: + this.popState(); + return "acc_descr_value"; + case 11: + this.pushState("acc_descr_multiline"); + break; + case 12: + this.popState(); + break; + case 13: + return "acc_descr_multiline_value"; + case 14: + return 5; + case 15: + return 8; + case 16: + this.pushState("axis_data"); + return "X_AXIS"; + case 17: + this.pushState("axis_data"); + return "Y_AXIS"; + case 18: + this.pushState("axis_band_data"); + return 24; + case 19: + return 31; + case 20: + this.pushState("data"); + return 16; + case 21: + this.pushState("data"); + return 18; + case 22: + this.pushState("data_inner"); + return 24; + case 23: + return 27; + case 24: + this.popState(); + return 26; + case 25: + this.popState(); + break; + case 26: + this.pushState("string"); + break; + case 27: + this.popState(); + break; + case 28: + return "STR"; + case 29: + return 24; + case 30: + return 26; + case 31: + return 43; + case 32: + return "COLON"; + case 33: + return 44; + case 34: + return 28; + case 35: + return 45; + case 36: + return 46; + case 37: + return 48; + case 38: + return 50; + case 39: + return 47; + case 40: + return 41; + case 41: + return 49; + case 42: + return 42; + case 43: + break; + case 44: + return 35; + case 45: + return 36; + } + }, + rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:(\r?\n))/i, /^(?:(\r?\n))/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:title\b)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:\{)/i, /^(?:[^\}]*)/i, /^(?:xychart-beta\b)/i, /^(?:(?:vertical|horizontal))/i, /^(?:x-axis\b)/i, /^(?:y-axis\b)/i, /^(?:\[)/i, /^(?:-->)/i, /^(?:line\b)/i, /^(?:bar\b)/i, /^(?:\[)/i, /^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i, /^(?:\])/i, /^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:\[)/i, /^(?:\])/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:\*)/i, /^(?:#)/i, /^(?:[\_])/i, /^(?:\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\s+)/i, /^(?:;)/i, /^(?:$)/i], + conditions: { "data_inner": { "rules": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "data": { "rules": [0, 1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 22, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "axis_band_data": { "rules": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "axis_data": { "rules": [0, 1, 2, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "title": { "rules": [], "inclusive": false }, "md_string": { "rules": [], "inclusive": false }, "string": { "rules": [27, 28], "inclusive": false }, "INITIAL": { "rules": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +function isBarPlot(data) { + return data.type === "bar"; +} +function isBandAxisData(data) { + return data.type === "band"; +} +function isLinearAxisData(data) { + return data.type === "linear"; +} +class TextDimensionCalculatorWithFont { + constructor(parentGroup) { + this.parentGroup = parentGroup; + } + getMaxDimension(texts, fontSize) { + if (!this.parentGroup) { + return { + width: texts.reduce((acc, cur) => Math.max(cur.length, acc), 0) * fontSize, + height: fontSize + }; + } + const dimension = { + width: 0, + height: 0 + }; + const elem = this.parentGroup.append("g").attr("visibility", "hidden").attr("font-size", fontSize); + for (const t of texts) { + const bbox = computeDimensionOfText(elem, 1, t); + const width = bbox ? bbox.width : t.length * fontSize; + const height = bbox ? bbox.height : fontSize; + dimension.width = Math.max(dimension.width, width); + dimension.height = Math.max(dimension.height, height); + } + elem.remove(); + return dimension; + } +} +const BAR_WIDTH_TO_TICK_WIDTH_RATIO = 0.7; +const MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL = 0.2; +class BaseAxis { + constructor(axisConfig, title, textDimensionCalculator, axisThemeConfig) { + this.axisConfig = axisConfig; + this.title = title; + this.textDimensionCalculator = textDimensionCalculator; + this.axisThemeConfig = axisThemeConfig; + this.boundingRect = { x: 0, y: 0, width: 0, height: 0 }; + this.axisPosition = "left"; + this.showTitle = false; + this.showLabel = false; + this.showTick = false; + this.showAxisLine = false; + this.outerPadding = 0; + this.titleTextHeight = 0; + this.labelTextHeight = 0; + this.range = [0, 10]; + this.boundingRect = { x: 0, y: 0, width: 0, height: 0 }; + this.axisPosition = "left"; + } + setRange(range2) { + this.range = range2; + if (this.axisPosition === "left" || this.axisPosition === "right") { + this.boundingRect.height = range2[1] - range2[0]; + } else { + this.boundingRect.width = range2[1] - range2[0]; + } + this.recalculateScale(); + } + getRange() { + return [this.range[0] + this.outerPadding, this.range[1] - this.outerPadding]; + } + setAxisPosition(axisPosition) { + this.axisPosition = axisPosition; + this.setRange(this.range); + } + getTickDistance() { + const range2 = this.getRange(); + return Math.abs(range2[0] - range2[1]) / this.getTickValues().length; + } + getAxisOuterPadding() { + return this.outerPadding; + } + getLabelDimension() { + return this.textDimensionCalculator.getMaxDimension( + this.getTickValues().map((tick) => tick.toString()), + this.axisConfig.labelFontSize + ); + } + recalculateOuterPaddingToDrawBar() { + if (BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() > this.outerPadding * 2) { + this.outerPadding = Math.floor(BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() / 2); + } + this.recalculateScale(); + } + calculateSpaceIfDrawnHorizontally(availableSpace) { + let availableHeight = availableSpace.height; + if (this.axisConfig.showAxisLine && availableHeight > this.axisConfig.axisLineWidth) { + availableHeight -= this.axisConfig.axisLineWidth; + this.showAxisLine = true; + } + if (this.axisConfig.showLabel) { + const spaceRequired = this.getLabelDimension(); + const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.width; + this.outerPadding = Math.min(spaceRequired.width / 2, maxPadding); + const heightRequired = spaceRequired.height + this.axisConfig.labelPadding * 2; + this.labelTextHeight = spaceRequired.height; + if (heightRequired <= availableHeight) { + availableHeight -= heightRequired; + this.showLabel = true; + } + } + if (this.axisConfig.showTick && availableHeight >= this.axisConfig.tickLength) { + this.showTick = true; + availableHeight -= this.axisConfig.tickLength; + } + if (this.axisConfig.showTitle && this.title) { + const spaceRequired = this.textDimensionCalculator.getMaxDimension( + [this.title], + this.axisConfig.titleFontSize + ); + const heightRequired = spaceRequired.height + this.axisConfig.titlePadding * 2; + this.titleTextHeight = spaceRequired.height; + if (heightRequired <= availableHeight) { + availableHeight -= heightRequired; + this.showTitle = true; + } + } + this.boundingRect.width = availableSpace.width; + this.boundingRect.height = availableSpace.height - availableHeight; + } + calculateSpaceIfDrawnVertical(availableSpace) { + let availableWidth = availableSpace.width; + if (this.axisConfig.showAxisLine && availableWidth > this.axisConfig.axisLineWidth) { + availableWidth -= this.axisConfig.axisLineWidth; + this.showAxisLine = true; + } + if (this.axisConfig.showLabel) { + const spaceRequired = this.getLabelDimension(); + const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.height; + this.outerPadding = Math.min(spaceRequired.height / 2, maxPadding); + const widthRequired = spaceRequired.width + this.axisConfig.labelPadding * 2; + if (widthRequired <= availableWidth) { + availableWidth -= widthRequired; + this.showLabel = true; + } + } + if (this.axisConfig.showTick && availableWidth >= this.axisConfig.tickLength) { + this.showTick = true; + availableWidth -= this.axisConfig.tickLength; + } + if (this.axisConfig.showTitle && this.title) { + const spaceRequired = this.textDimensionCalculator.getMaxDimension( + [this.title], + this.axisConfig.titleFontSize + ); + const widthRequired = spaceRequired.height + this.axisConfig.titlePadding * 2; + this.titleTextHeight = spaceRequired.height; + if (widthRequired <= availableWidth) { + availableWidth -= widthRequired; + this.showTitle = true; + } + } + this.boundingRect.width = availableSpace.width - availableWidth; + this.boundingRect.height = availableSpace.height; + } + calculateSpace(availableSpace) { + if (this.axisPosition === "left" || this.axisPosition === "right") { + this.calculateSpaceIfDrawnVertical(availableSpace); + } else { + this.calculateSpaceIfDrawnHorizontally(availableSpace); + } + this.recalculateScale(); + return { + width: this.boundingRect.width, + height: this.boundingRect.height + }; + } + setBoundingBoxXY(point) { + this.boundingRect.x = point.x; + this.boundingRect.y = point.y; + } + getDrawableElementsForLeftAxis() { + const drawableElement = []; + if (this.showAxisLine) { + const x = this.boundingRect.x + this.boundingRect.width - this.axisConfig.axisLineWidth / 2; + drawableElement.push({ + type: "path", + groupTexts: ["left-axis", "axisl-line"], + data: [ + { + path: `M ${x},${this.boundingRect.y} L ${x},${this.boundingRect.y + this.boundingRect.height} `, + strokeFill: this.axisThemeConfig.axisLineColor, + strokeWidth: this.axisConfig.axisLineWidth + } + ] + }); + } + if (this.showLabel) { + drawableElement.push({ + type: "text", + groupTexts: ["left-axis", "label"], + data: this.getTickValues().map((tick) => ({ + text: tick.toString(), + x: this.boundingRect.x + this.boundingRect.width - (this.showLabel ? this.axisConfig.labelPadding : 0) - (this.showTick ? this.axisConfig.tickLength : 0) - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0), + y: this.getScaleValue(tick), + fill: this.axisThemeConfig.labelColor, + fontSize: this.axisConfig.labelFontSize, + rotation: 0, + verticalPos: "middle", + horizontalPos: "right" + })) + }); + } + if (this.showTick) { + const x = this.boundingRect.x + this.boundingRect.width - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0); + drawableElement.push({ + type: "path", + groupTexts: ["left-axis", "ticks"], + data: this.getTickValues().map((tick) => ({ + path: `M ${x},${this.getScaleValue(tick)} L ${x - this.axisConfig.tickLength},${this.getScaleValue(tick)}`, + strokeFill: this.axisThemeConfig.tickColor, + strokeWidth: this.axisConfig.tickWidth + })) + }); + } + if (this.showTitle) { + drawableElement.push({ + type: "text", + groupTexts: ["left-axis", "title"], + data: [ + { + text: this.title, + x: this.boundingRect.x + this.axisConfig.titlePadding, + y: this.boundingRect.y + this.boundingRect.height / 2, + fill: this.axisThemeConfig.titleColor, + fontSize: this.axisConfig.titleFontSize, + rotation: 270, + verticalPos: "top", + horizontalPos: "center" + } + ] + }); + } + return drawableElement; + } + getDrawableElementsForBottomAxis() { + const drawableElement = []; + if (this.showAxisLine) { + const y = this.boundingRect.y + this.axisConfig.axisLineWidth / 2; + drawableElement.push({ + type: "path", + groupTexts: ["bottom-axis", "axis-line"], + data: [ + { + path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`, + strokeFill: this.axisThemeConfig.axisLineColor, + strokeWidth: this.axisConfig.axisLineWidth + } + ] + }); + } + if (this.showLabel) { + drawableElement.push({ + type: "text", + groupTexts: ["bottom-axis", "label"], + data: this.getTickValues().map((tick) => ({ + text: tick.toString(), + x: this.getScaleValue(tick), + y: this.boundingRect.y + this.axisConfig.labelPadding + (this.showTick ? this.axisConfig.tickLength : 0) + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0), + fill: this.axisThemeConfig.labelColor, + fontSize: this.axisConfig.labelFontSize, + rotation: 0, + verticalPos: "top", + horizontalPos: "center" + })) + }); + } + if (this.showTick) { + const y = this.boundingRect.y + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0); + drawableElement.push({ + type: "path", + groupTexts: ["bottom-axis", "ticks"], + data: this.getTickValues().map((tick) => ({ + path: `M ${this.getScaleValue(tick)},${y} L ${this.getScaleValue(tick)},${y + this.axisConfig.tickLength}`, + strokeFill: this.axisThemeConfig.tickColor, + strokeWidth: this.axisConfig.tickWidth + })) + }); + } + if (this.showTitle) { + drawableElement.push({ + type: "text", + groupTexts: ["bottom-axis", "title"], + data: [ + { + text: this.title, + x: this.range[0] + (this.range[1] - this.range[0]) / 2, + y: this.boundingRect.y + this.boundingRect.height - this.axisConfig.titlePadding - this.titleTextHeight, + fill: this.axisThemeConfig.titleColor, + fontSize: this.axisConfig.titleFontSize, + rotation: 0, + verticalPos: "top", + horizontalPos: "center" + } + ] + }); + } + return drawableElement; + } + getDrawableElementsForTopAxis() { + const drawableElement = []; + if (this.showAxisLine) { + const y = this.boundingRect.y + this.boundingRect.height - this.axisConfig.axisLineWidth / 2; + drawableElement.push({ + type: "path", + groupTexts: ["top-axis", "axis-line"], + data: [ + { + path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`, + strokeFill: this.axisThemeConfig.axisLineColor, + strokeWidth: this.axisConfig.axisLineWidth + } + ] + }); + } + if (this.showLabel) { + drawableElement.push({ + type: "text", + groupTexts: ["top-axis", "label"], + data: this.getTickValues().map((tick) => ({ + text: tick.toString(), + x: this.getScaleValue(tick), + y: this.boundingRect.y + (this.showTitle ? this.titleTextHeight + this.axisConfig.titlePadding * 2 : 0) + this.axisConfig.labelPadding, + fill: this.axisThemeConfig.labelColor, + fontSize: this.axisConfig.labelFontSize, + rotation: 0, + verticalPos: "top", + horizontalPos: "center" + })) + }); + } + if (this.showTick) { + const y = this.boundingRect.y; + drawableElement.push({ + type: "path", + groupTexts: ["top-axis", "ticks"], + data: this.getTickValues().map((tick) => ({ + path: `M ${this.getScaleValue(tick)},${y + this.boundingRect.height - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)} L ${this.getScaleValue(tick)},${y + this.boundingRect.height - this.axisConfig.tickLength - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)}`, + strokeFill: this.axisThemeConfig.tickColor, + strokeWidth: this.axisConfig.tickWidth + })) + }); + } + if (this.showTitle) { + drawableElement.push({ + type: "text", + groupTexts: ["top-axis", "title"], + data: [ + { + text: this.title, + x: this.boundingRect.x + this.boundingRect.width / 2, + y: this.boundingRect.y + this.axisConfig.titlePadding, + fill: this.axisThemeConfig.titleColor, + fontSize: this.axisConfig.titleFontSize, + rotation: 0, + verticalPos: "top", + horizontalPos: "center" + } + ] + }); + } + return drawableElement; + } + getDrawableElements() { + if (this.axisPosition === "left") { + return this.getDrawableElementsForLeftAxis(); + } + if (this.axisPosition === "right") { + throw Error("Drawing of right axis is not implemented"); + } + if (this.axisPosition === "bottom") { + return this.getDrawableElementsForBottomAxis(); + } + if (this.axisPosition === "top") { + return this.getDrawableElementsForTopAxis(); + } + return []; + } +} +class BandAxis extends BaseAxis { + constructor(axisConfig, axisThemeConfig, categories, title, textDimensionCalculator) { + super(axisConfig, title, textDimensionCalculator, axisThemeConfig); + this.categories = categories; + this.scale = band().domain(this.categories).range(this.getRange()); + } + setRange(range2) { + super.setRange(range2); + } + recalculateScale() { + this.scale = band().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(0.5); + log.trace("BandAxis axis final categories, range: ", this.categories, this.getRange()); + } + getTickValues() { + return this.categories; + } + getScaleValue(value) { + return this.scale(value) || this.getRange()[0]; + } +} +class LinearAxis extends BaseAxis { + constructor(axisConfig, axisThemeConfig, domain, title, textDimensionCalculator) { + super(axisConfig, title, textDimensionCalculator, axisThemeConfig); + this.domain = domain; + this.scale = linear().domain(this.domain).range(this.getRange()); + } + getTickValues() { + return this.scale.ticks(); + } + recalculateScale() { + const domain = [...this.domain]; + if (this.axisPosition === "left") { + domain.reverse(); + } + this.scale = linear().domain(domain).range(this.getRange()); + } + getScaleValue(value) { + return this.scale(value); + } +} +function getAxis(data, axisConfig, axisThemeConfig, tmpSVGGroup2) { + const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2); + if (isBandAxisData(data)) { + return new BandAxis( + axisConfig, + axisThemeConfig, + data.categories, + data.title, + textDimensionCalculator + ); + } + return new LinearAxis( + axisConfig, + axisThemeConfig, + [data.min, data.max], + data.title, + textDimensionCalculator + ); +} +class ChartTitle { + constructor(textDimensionCalculator, chartConfig, chartData, chartThemeConfig) { + this.textDimensionCalculator = textDimensionCalculator; + this.chartConfig = chartConfig; + this.chartData = chartData; + this.chartThemeConfig = chartThemeConfig; + this.boundingRect = { + x: 0, + y: 0, + width: 0, + height: 0 + }; + this.showChartTitle = false; + } + setBoundingBoxXY(point) { + this.boundingRect.x = point.x; + this.boundingRect.y = point.y; + } + calculateSpace(availableSpace) { + const titleDimension = this.textDimensionCalculator.getMaxDimension( + [this.chartData.title], + this.chartConfig.titleFontSize + ); + const widthRequired = Math.max(titleDimension.width, availableSpace.width); + const heightRequired = titleDimension.height + 2 * this.chartConfig.titlePadding; + if (titleDimension.width <= widthRequired && titleDimension.height <= heightRequired && this.chartConfig.showTitle && this.chartData.title) { + this.boundingRect.width = widthRequired; + this.boundingRect.height = heightRequired; + this.showChartTitle = true; + } + return { + width: this.boundingRect.width, + height: this.boundingRect.height + }; + } + getDrawableElements() { + const drawableElem = []; + if (this.showChartTitle) { + drawableElem.push({ + groupTexts: ["chart-title"], + type: "text", + data: [ + { + fontSize: this.chartConfig.titleFontSize, + text: this.chartData.title, + verticalPos: "middle", + horizontalPos: "center", + x: this.boundingRect.x + this.boundingRect.width / 2, + y: this.boundingRect.y + this.boundingRect.height / 2, + fill: this.chartThemeConfig.titleColor, + rotation: 0 + } + ] + }); + } + return drawableElem; + } +} +function getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) { + const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2); + return new ChartTitle(textDimensionCalculator, chartConfig, chartData, chartThemeConfig); +} +class LinePlot { + constructor(plotData, xAxis, yAxis, orientation, plotIndex2) { + this.plotData = plotData; + this.xAxis = xAxis; + this.yAxis = yAxis; + this.orientation = orientation; + this.plotIndex = plotIndex2; + } + getDrawableElement() { + const finalData = this.plotData.data.map((d) => [ + this.xAxis.getScaleValue(d[0]), + this.yAxis.getScaleValue(d[1]) + ]); + let path; + if (this.orientation === "horizontal") { + path = line().y((d) => d[0]).x((d) => d[1])(finalData); + } else { + path = line().x((d) => d[0]).y((d) => d[1])(finalData); + } + if (!path) { + return []; + } + return [ + { + groupTexts: ["plot", `line-plot-${this.plotIndex}`], + type: "path", + data: [ + { + path, + strokeFill: this.plotData.strokeFill, + strokeWidth: this.plotData.strokeWidth + } + ] + } + ]; + } +} +class BarPlot { + constructor(barData, boundingRect, xAxis, yAxis, orientation, plotIndex2) { + this.barData = barData; + this.boundingRect = boundingRect; + this.xAxis = xAxis; + this.yAxis = yAxis; + this.orientation = orientation; + this.plotIndex = plotIndex2; + } + getDrawableElement() { + const finalData = this.barData.data.map((d) => [ + this.xAxis.getScaleValue(d[0]), + this.yAxis.getScaleValue(d[1]) + ]); + const barPaddingPercent = 0.05; + const barWidth = Math.min(this.xAxis.getAxisOuterPadding() * 2, this.xAxis.getTickDistance()) * (1 - barPaddingPercent); + const barWidthHalf = barWidth / 2; + if (this.orientation === "horizontal") { + return [ + { + groupTexts: ["plot", `bar-plot-${this.plotIndex}`], + type: "rect", + data: finalData.map((data) => ({ + x: this.boundingRect.x, + y: data[0] - barWidthHalf, + height: barWidth, + width: data[1] - this.boundingRect.x, + fill: this.barData.fill, + strokeWidth: 0, + strokeFill: this.barData.fill + })) + } + ]; + } + return [ + { + groupTexts: ["plot", `bar-plot-${this.plotIndex}`], + type: "rect", + data: finalData.map((data) => ({ + x: data[0] - barWidthHalf, + y: data[1], + width: barWidth, + height: this.boundingRect.y + this.boundingRect.height - data[1], + fill: this.barData.fill, + strokeWidth: 0, + strokeFill: this.barData.fill + })) + } + ]; + } +} +class BasePlot { + constructor(chartConfig, chartData, chartThemeConfig) { + this.chartConfig = chartConfig; + this.chartData = chartData; + this.chartThemeConfig = chartThemeConfig; + this.boundingRect = { + x: 0, + y: 0, + width: 0, + height: 0 + }; + } + setAxes(xAxis, yAxis) { + this.xAxis = xAxis; + this.yAxis = yAxis; + } + setBoundingBoxXY(point) { + this.boundingRect.x = point.x; + this.boundingRect.y = point.y; + } + calculateSpace(availableSpace) { + this.boundingRect.width = availableSpace.width; + this.boundingRect.height = availableSpace.height; + return { + width: this.boundingRect.width, + height: this.boundingRect.height + }; + } + getDrawableElements() { + if (!(this.xAxis && this.yAxis)) { + throw Error("Axes must be passed to render Plots"); + } + const drawableElem = []; + for (const [i, plot] of this.chartData.plots.entries()) { + switch (plot.type) { + case "line": + { + const linePlot = new LinePlot( + plot, + this.xAxis, + this.yAxis, + this.chartConfig.chartOrientation, + i + ); + drawableElem.push(...linePlot.getDrawableElement()); + } + break; + case "bar": + { + const barPlot = new BarPlot( + plot, + this.boundingRect, + this.xAxis, + this.yAxis, + this.chartConfig.chartOrientation, + i + ); + drawableElem.push(...barPlot.getDrawableElement()); + } + break; + } + } + return drawableElem; + } +} +function getPlotComponent(chartConfig, chartData, chartThemeConfig) { + return new BasePlot(chartConfig, chartData, chartThemeConfig); +} +class Orchestrator { + constructor(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) { + this.chartConfig = chartConfig; + this.chartData = chartData; + this.componentStore = { + title: getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2), + plot: getPlotComponent(chartConfig, chartData, chartThemeConfig), + xAxis: getAxis( + chartData.xAxis, + chartConfig.xAxis, + { + titleColor: chartThemeConfig.xAxisTitleColor, + labelColor: chartThemeConfig.xAxisLabelColor, + tickColor: chartThemeConfig.xAxisTickColor, + axisLineColor: chartThemeConfig.xAxisLineColor + }, + tmpSVGGroup2 + ), + yAxis: getAxis( + chartData.yAxis, + chartConfig.yAxis, + { + titleColor: chartThemeConfig.yAxisTitleColor, + labelColor: chartThemeConfig.yAxisLabelColor, + tickColor: chartThemeConfig.yAxisTickColor, + axisLineColor: chartThemeConfig.yAxisLineColor + }, + tmpSVGGroup2 + ) + }; + } + calculateVerticalSpace() { + let availableWidth = this.chartConfig.width; + let availableHeight = this.chartConfig.height; + let plotX = 0; + let plotY = 0; + let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100); + let chartHeight = Math.floor( + availableHeight * this.chartConfig.plotReservedSpacePercent / 100 + ); + let spaceUsed = this.componentStore.plot.calculateSpace({ + width: chartWidth, + height: chartHeight + }); + availableWidth -= spaceUsed.width; + availableHeight -= spaceUsed.height; + spaceUsed = this.componentStore.title.calculateSpace({ + width: this.chartConfig.width, + height: availableHeight + }); + plotY = spaceUsed.height; + availableHeight -= spaceUsed.height; + this.componentStore.xAxis.setAxisPosition("bottom"); + spaceUsed = this.componentStore.xAxis.calculateSpace({ + width: availableWidth, + height: availableHeight + }); + availableHeight -= spaceUsed.height; + this.componentStore.yAxis.setAxisPosition("left"); + spaceUsed = this.componentStore.yAxis.calculateSpace({ + width: availableWidth, + height: availableHeight + }); + plotX = spaceUsed.width; + availableWidth -= spaceUsed.width; + if (availableWidth > 0) { + chartWidth += availableWidth; + availableWidth = 0; + } + if (availableHeight > 0) { + chartHeight += availableHeight; + availableHeight = 0; + } + this.componentStore.plot.calculateSpace({ + width: chartWidth, + height: chartHeight + }); + this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY }); + this.componentStore.xAxis.setRange([plotX, plotX + chartWidth]); + this.componentStore.xAxis.setBoundingBoxXY({ x: plotX, y: plotY + chartHeight }); + this.componentStore.yAxis.setRange([plotY, plotY + chartHeight]); + this.componentStore.yAxis.setBoundingBoxXY({ x: 0, y: plotY }); + if (this.chartData.plots.some((p) => isBarPlot(p))) { + this.componentStore.xAxis.recalculateOuterPaddingToDrawBar(); + } + } + calculateHorizontalSpace() { + let availableWidth = this.chartConfig.width; + let availableHeight = this.chartConfig.height; + let titleYEnd = 0; + let plotX = 0; + let plotY = 0; + let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100); + let chartHeight = Math.floor( + availableHeight * this.chartConfig.plotReservedSpacePercent / 100 + ); + let spaceUsed = this.componentStore.plot.calculateSpace({ + width: chartWidth, + height: chartHeight + }); + availableWidth -= spaceUsed.width; + availableHeight -= spaceUsed.height; + spaceUsed = this.componentStore.title.calculateSpace({ + width: this.chartConfig.width, + height: availableHeight + }); + titleYEnd = spaceUsed.height; + availableHeight -= spaceUsed.height; + this.componentStore.xAxis.setAxisPosition("left"); + spaceUsed = this.componentStore.xAxis.calculateSpace({ + width: availableWidth, + height: availableHeight + }); + availableWidth -= spaceUsed.width; + plotX = spaceUsed.width; + this.componentStore.yAxis.setAxisPosition("top"); + spaceUsed = this.componentStore.yAxis.calculateSpace({ + width: availableWidth, + height: availableHeight + }); + availableHeight -= spaceUsed.height; + plotY = titleYEnd + spaceUsed.height; + if (availableWidth > 0) { + chartWidth += availableWidth; + availableWidth = 0; + } + if (availableHeight > 0) { + chartHeight += availableHeight; + availableHeight = 0; + } + this.componentStore.plot.calculateSpace({ + width: chartWidth, + height: chartHeight + }); + this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY }); + this.componentStore.yAxis.setRange([plotX, plotX + chartWidth]); + this.componentStore.yAxis.setBoundingBoxXY({ x: plotX, y: titleYEnd }); + this.componentStore.xAxis.setRange([plotY, plotY + chartHeight]); + this.componentStore.xAxis.setBoundingBoxXY({ x: 0, y: plotY }); + if (this.chartData.plots.some((p) => isBarPlot(p))) { + this.componentStore.xAxis.recalculateOuterPaddingToDrawBar(); + } + } + calculateSpace() { + if (this.chartConfig.chartOrientation === "horizontal") { + this.calculateHorizontalSpace(); + } else { + this.calculateVerticalSpace(); + } + } + getDrawableElement() { + this.calculateSpace(); + const drawableElem = []; + this.componentStore.plot.setAxes(this.componentStore.xAxis, this.componentStore.yAxis); + for (const component of Object.values(this.componentStore)) { + drawableElem.push(...component.getDrawableElements()); + } + return drawableElem; + } +} +class XYChartBuilder { + static build(config, chartData, chartThemeConfig, tmpSVGGroup2) { + const orchestrator = new Orchestrator(config, chartData, chartThemeConfig, tmpSVGGroup2); + return orchestrator.getDrawableElement(); + } +} +let plotIndex = 0; +let tmpSVGGroup; +let xyChartConfig = getChartDefaultConfig(); +let xyChartThemeConfig = getChartDefaultThemeConfig(); +let xyChartData = getChartDefaultData(); +let plotColorPalette = xyChartThemeConfig.plotColorPalette.split(",").map((color) => color.trim()); +let hasSetXAxis = false; +let hasSetYAxis = false; +function getChartDefaultThemeConfig() { + const defaultThemeVariables = getThemeVariables(); + const config = getConfig(); + return cleanAndMerge(defaultThemeVariables.xyChart, config.themeVariables.xyChart); +} +function getChartDefaultConfig() { + const config = getConfig(); + return cleanAndMerge( + defaultConfig.xyChart, + config.xyChart + ); +} +function getChartDefaultData() { + return { + yAxis: { + type: "linear", + title: "", + min: Infinity, + max: -Infinity + }, + xAxis: { + type: "band", + title: "", + categories: [] + }, + title: "", + plots: [] + }; +} +function textSanitizer(text) { + const config = getConfig(); + return sanitizeText(text.trim(), config); +} +function setTmpSVGG(SVGG) { + tmpSVGGroup = SVGG; +} +function setOrientation(orientation) { + if (orientation === "horizontal") { + xyChartConfig.chartOrientation = "horizontal"; + } else { + xyChartConfig.chartOrientation = "vertical"; + } +} +function setXAxisTitle(title) { + xyChartData.xAxis.title = textSanitizer(title.text); +} +function setXAxisRangeData(min, max) { + xyChartData.xAxis = { type: "linear", title: xyChartData.xAxis.title, min, max }; + hasSetXAxis = true; +} +function setXAxisBand(categories) { + xyChartData.xAxis = { + type: "band", + title: xyChartData.xAxis.title, + categories: categories.map((c) => textSanitizer(c.text)) + }; + hasSetXAxis = true; +} +function setYAxisTitle(title) { + xyChartData.yAxis.title = textSanitizer(title.text); +} +function setYAxisRangeData(min, max) { + xyChartData.yAxis = { type: "linear", title: xyChartData.yAxis.title, min, max }; + hasSetYAxis = true; +} +function setYAxisRangeFromPlotData(data) { + const minValue = Math.min(...data); + const maxValue = Math.max(...data); + const prevMinValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.min : Infinity; + const prevMaxValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.max : -Infinity; + xyChartData.yAxis = { + type: "linear", + title: xyChartData.yAxis.title, + min: Math.min(prevMinValue, minValue), + max: Math.max(prevMaxValue, maxValue) + }; +} +function transformDataWithoutCategory(data) { + let retData = []; + if (data.length === 0) { + return retData; + } + if (!hasSetXAxis) { + const prevMinValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.min : Infinity; + const prevMaxValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.max : -Infinity; + setXAxisRangeData(Math.min(prevMinValue, 1), Math.max(prevMaxValue, data.length)); + } + if (!hasSetYAxis) { + setYAxisRangeFromPlotData(data); + } + if (isBandAxisData(xyChartData.xAxis)) { + retData = xyChartData.xAxis.categories.map((c, i) => [c, data[i]]); + } + if (isLinearAxisData(xyChartData.xAxis)) { + const min = xyChartData.xAxis.min; + const max = xyChartData.xAxis.max; + const step = (max - min + 1) / data.length; + const categories = []; + for (let i = min; i <= max; i += step) { + categories.push(`${i}`); + } + retData = categories.map((c, i) => [c, data[i]]); + } + return retData; +} +function getPlotColorFromPalette(plotIndex2) { + return plotColorPalette[plotIndex2 === 0 ? 0 : plotIndex2 % plotColorPalette.length]; +} +function setLineData(title, data) { + const plotData = transformDataWithoutCategory(data); + xyChartData.plots.push({ + type: "line", + strokeFill: getPlotColorFromPalette(plotIndex), + strokeWidth: 2, + data: plotData + }); + plotIndex++; +} +function setBarData(title, data) { + const plotData = transformDataWithoutCategory(data); + xyChartData.plots.push({ + type: "bar", + fill: getPlotColorFromPalette(plotIndex), + data: plotData + }); + plotIndex++; +} +function getDrawableElem() { + if (xyChartData.plots.length === 0) { + throw Error("No Plot to render, please provide a plot with some data"); + } + xyChartData.title = getDiagramTitle(); + return XYChartBuilder.build(xyChartConfig, xyChartData, xyChartThemeConfig, tmpSVGGroup); +} +function getChartThemeConfig() { + return xyChartThemeConfig; +} +function getChartConfig() { + return xyChartConfig; +} +const clear = function() { + clear$1(); + plotIndex = 0; + xyChartConfig = getChartDefaultConfig(); + xyChartData = getChartDefaultData(); + xyChartThemeConfig = getChartDefaultThemeConfig(); + plotColorPalette = xyChartThemeConfig.plotColorPalette.split(",").map((color) => color.trim()); + hasSetXAxis = false; + hasSetYAxis = false; +}; +const db = { + getDrawableElem, + clear, + setAccTitle, + getAccTitle, + setDiagramTitle, + getDiagramTitle, + getAccDescription, + setAccDescription, + setOrientation, + setXAxisTitle, + setXAxisRangeData, + setXAxisBand, + setYAxisTitle, + setYAxisRangeData, + setLineData, + setBarData, + setTmpSVGG, + getChartThemeConfig, + getChartConfig +}; +const draw = (txt, id, _version, diagObj) => { + const db2 = diagObj.db; + const themeConfig = db2.getChartThemeConfig(); + const chartConfig = db2.getChartConfig(); + function getDominantBaseLine(horizontalPos) { + return horizontalPos === "top" ? "text-before-edge" : "middle"; + } + function getTextAnchor(verticalPos) { + return verticalPos === "left" ? "start" : verticalPos === "right" ? "end" : "middle"; + } + function getTextTransformation(data) { + return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`; + } + log.debug("Rendering xychart chart\n" + txt); + const svg = selectSvgElement(id); + const group = svg.append("g").attr("class", "main"); + const background = group.append("rect").attr("width", chartConfig.width).attr("height", chartConfig.height).attr("class", "background"); + configureSvgSize(svg, chartConfig.height, chartConfig.width, true); + svg.attr("viewBox", `0 0 ${chartConfig.width} ${chartConfig.height}`); + background.attr("fill", themeConfig.backgroundColor); + db2.setTmpSVGG(svg.append("g").attr("class", "mermaid-tmp-group")); + const shapes = db2.getDrawableElem(); + const groups = {}; + function getGroup(gList) { + let elem = group; + let prefix = ""; + for (const [i] of gList.entries()) { + let parent = group; + if (i > 0 && groups[prefix]) { + parent = groups[prefix]; + } + prefix += gList[i]; + elem = groups[prefix]; + if (!elem) { + elem = groups[prefix] = parent.append("g").attr("class", gList[i]); + } + } + return elem; + } + for (const shape of shapes) { + if (shape.data.length === 0) { + continue; + } + const shapeGroup = getGroup(shape.groupTexts); + switch (shape.type) { + case "rect": + shapeGroup.selectAll("rect").data(shape.data).enter().append("rect").attr("x", (data) => data.x).attr("y", (data) => data.y).attr("width", (data) => data.width).attr("height", (data) => data.height).attr("fill", (data) => data.fill).attr("stroke", (data) => data.strokeFill).attr("stroke-width", (data) => data.strokeWidth); + break; + case "text": + shapeGroup.selectAll("text").data(shape.data).enter().append("text").attr("x", 0).attr("y", 0).attr("fill", (data) => data.fill).attr("font-size", (data) => data.fontSize).attr("dominant-baseline", (data) => getDominantBaseLine(data.verticalPos)).attr("text-anchor", (data) => getTextAnchor(data.horizontalPos)).attr("transform", (data) => getTextTransformation(data)).text((data) => data.text); + break; + case "path": + shapeGroup.selectAll("path").data(shape.data).enter().append("path").attr("d", (data) => data.path).attr("fill", (data) => data.fill ? data.fill : "none").attr("stroke", (data) => data.strokeFill).attr("stroke-width", (data) => data.strokeWidth); + break; + } + } +}; +const renderer = { + draw +}; +const diagram = { + parser: parser$1, + db, + renderer +}; +export { + diagram +}; diff --git a/assets/lib/mermaid/xychartDiagram-e5e6b652.js b/assets/lib/mermaid/xychartDiagram-e5e6b652.js new file mode 100644 index 000000000..c76195448 --- /dev/null +++ b/assets/lib/mermaid/xychartDiagram-e5e6b652.js @@ -0,0 +1,1284 @@ +import { l as wt, s as zt, g as Ft, C as Nt, D as St, a as Xt, b as Yt, Z as Ht, _ as ot, X as Ct, W as Ut, E as $t, d as qt, U as jt, k as Gt } from "./mermaid-9f2aa176.js"; +import { c as Qt } from "./createText-03b82060.js"; +import { i as Kt } from "./init-f9637058.js"; +import { o as Zt } from "./ordinal-5695958c.js"; +import { l as ft } from "./linear-9bcf74c4.js"; +import { l as pt } from "./line-24d93f1b.js"; +import "./array-2ff2c7a6.js"; +import "./path-428ebac9.js"; +function Jt(e, t, i) { + e = +e, t = +t, i = (n = arguments.length) < 2 ? (t = e, e = 0, 1) : n < 3 ? 1 : +i; + for (var s = -1, n = Math.max(0, Math.ceil((t - e) / i)) | 0, o = new Array(n); ++s < n; ) + o[s] = e + s * i; + return o; +} +function st() { + var e = Zt().unknown(void 0), t = e.domain, i = e.range, s = 0, n = 1, o, c, f = !1, d = 0, R = 0, _ = 0.5; + delete e.unknown; + function A() { + var m = t().length, T = n < s, S = T ? n : s, P = T ? s : n; + o = (P - S) / Math.max(1, m - d + R * 2), f && (o = Math.floor(o)), S += (P - S - o * (m - d)) * _, c = o * (1 - d), f && (S = Math.round(S), c = Math.round(c)); + var p = Jt(m).map(function(C) { + return S + o * C; + }); + return i(T ? p.reverse() : p); + } + return e.domain = function(m) { + return arguments.length ? (t(m), A()) : t(); + }, e.range = function(m) { + return arguments.length ? ([s, n] = m, s = +s, n = +n, A()) : [s, n]; + }, e.rangeRound = function(m) { + return [s, n] = m, s = +s, n = +n, f = !0, A(); + }, e.bandwidth = function() { + return c; + }, e.step = function() { + return o; + }, e.round = function(m) { + return arguments.length ? (f = !!m, A()) : f; + }, e.padding = function(m) { + return arguments.length ? (d = Math.min(1, R = +m), A()) : d; + }, e.paddingInner = function(m) { + return arguments.length ? (d = Math.min(1, m), A()) : d; + }, e.paddingOuter = function(m) { + return arguments.length ? (R = +m, A()) : R; + }, e.align = function(m) { + return arguments.length ? (_ = Math.max(0, Math.min(1, m)), A()) : _; + }, e.copy = function() { + return st(t(), [s, n]).round(f).paddingInner(d).paddingOuter(R).align(_); + }, Kt.apply(A(), arguments); +} +var nt = function() { + var e = function(V, r, l, u) { + for (l = l || {}, u = V.length; u--; l[V[u]] = r) + ; + return l; + }, t = [1, 10, 12, 14, 16, 18, 19, 21, 23], i = [2, 6], s = [1, 3], n = [1, 5], o = [1, 6], c = [1, 7], f = [1, 5, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], d = [1, 25], R = [1, 26], _ = [1, 28], A = [1, 29], m = [1, 30], T = [1, 31], S = [1, 32], P = [1, 33], p = [1, 34], C = [1, 35], h = [1, 36], L = [1, 37], z = [1, 43], lt = [1, 42], ct = [1, 47], U = [1, 50], w = [1, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], Q = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36], E = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], ut = [1, 64], K = { + trace: function() { + }, + yy: {}, + symbols_: { error: 2, start: 3, eol: 4, XYCHART: 5, chartConfig: 6, document: 7, CHART_ORIENTATION: 8, statement: 9, title: 10, text: 11, X_AXIS: 12, parseXAxis: 13, Y_AXIS: 14, parseYAxis: 15, LINE: 16, plotData: 17, BAR: 18, acc_title: 19, acc_title_value: 20, acc_descr: 21, acc_descr_value: 22, acc_descr_multiline_value: 23, SQUARE_BRACES_START: 24, commaSeparatedNumbers: 25, SQUARE_BRACES_END: 26, NUMBER_WITH_DECIMAL: 27, COMMA: 28, xAxisData: 29, bandData: 30, ARROW_DELIMITER: 31, commaSeparatedTexts: 32, yAxisData: 33, NEWLINE: 34, SEMI: 35, EOF: 36, alphaNum: 37, STR: 38, MD_STR: 39, alphaNumToken: 40, AMP: 41, NUM: 42, ALPHA: 43, PLUS: 44, EQUALS: 45, MULT: 46, DOT: 47, BRKT: 48, MINUS: 49, UNDERSCORE: 50, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 5: "XYCHART", 8: "CHART_ORIENTATION", 10: "title", 12: "X_AXIS", 14: "Y_AXIS", 16: "LINE", 18: "BAR", 19: "acc_title", 20: "acc_title_value", 21: "acc_descr", 22: "acc_descr_value", 23: "acc_descr_multiline_value", 24: "SQUARE_BRACES_START", 26: "SQUARE_BRACES_END", 27: "NUMBER_WITH_DECIMAL", 28: "COMMA", 31: "ARROW_DELIMITER", 34: "NEWLINE", 35: "SEMI", 36: "EOF", 38: "STR", 39: "MD_STR", 41: "AMP", 42: "NUM", 43: "ALPHA", 44: "PLUS", 45: "EQUALS", 46: "MULT", 47: "DOT", 48: "BRKT", 49: "MINUS", 50: "UNDERSCORE" }, + productions_: [0, [3, 2], [3, 3], [3, 2], [3, 1], [6, 1], [7, 0], [7, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 3], [9, 2], [9, 3], [9, 2], [9, 2], [9, 1], [17, 3], [25, 3], [25, 1], [13, 1], [13, 2], [13, 1], [29, 1], [29, 3], [30, 3], [32, 3], [32, 1], [15, 1], [15, 2], [15, 1], [33, 3], [4, 1], [4, 1], [4, 1], [11, 1], [11, 1], [11, 1], [37, 1], [37, 2], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1]], + performAction: function(r, l, u, g, b, a, F) { + var x = a.length - 1; + switch (b) { + case 5: + g.setOrientation(a[x]); + break; + case 9: + g.setDiagramTitle(a[x].text.trim()); + break; + case 12: + g.setLineData({ text: "", type: "text" }, a[x]); + break; + case 13: + g.setLineData(a[x - 1], a[x]); + break; + case 14: + g.setBarData({ text: "", type: "text" }, a[x]); + break; + case 15: + g.setBarData(a[x - 1], a[x]); + break; + case 16: + this.$ = a[x].trim(), g.setAccTitle(this.$); + break; + case 17: + case 18: + this.$ = a[x].trim(), g.setAccDescription(this.$); + break; + case 19: + this.$ = a[x - 1]; + break; + case 20: + this.$ = [Number(a[x - 2]), ...a[x]]; + break; + case 21: + this.$ = [Number(a[x])]; + break; + case 22: + g.setXAxisTitle(a[x]); + break; + case 23: + g.setXAxisTitle(a[x - 1]); + break; + case 24: + g.setXAxisTitle({ type: "text", text: "" }); + break; + case 25: + g.setXAxisBand(a[x]); + break; + case 26: + g.setXAxisRangeData(Number(a[x - 2]), Number(a[x])); + break; + case 27: + this.$ = a[x - 1]; + break; + case 28: + this.$ = [a[x - 2], ...a[x]]; + break; + case 29: + this.$ = [a[x]]; + break; + case 30: + g.setYAxisTitle(a[x]); + break; + case 31: + g.setYAxisTitle(a[x - 1]); + break; + case 32: + g.setYAxisTitle({ type: "text", text: "" }); + break; + case 33: + g.setYAxisRangeData(Number(a[x - 2]), Number(a[x])); + break; + case 37: + this.$ = { text: a[x], type: "text" }; + break; + case 38: + this.$ = { text: a[x], type: "text" }; + break; + case 39: + this.$ = { text: a[x], type: "markdown" }; + break; + case 40: + this.$ = a[x]; + break; + case 41: + this.$ = a[x - 1] + "" + a[x]; + break; + } + }, + table: [e(t, i, { 3: 1, 4: 2, 7: 4, 5: s, 34: n, 35: o, 36: c }), { 1: [3] }, e(t, i, { 4: 2, 7: 4, 3: 8, 5: s, 34: n, 35: o, 36: c }), e(t, i, { 4: 2, 7: 4, 6: 9, 3: 10, 5: s, 8: [1, 11], 34: n, 35: o, 36: c }), { 1: [2, 4], 9: 12, 10: [1, 13], 12: [1, 14], 14: [1, 15], 16: [1, 16], 18: [1, 17], 19: [1, 18], 21: [1, 19], 23: [1, 20] }, e(f, [2, 34]), e(f, [2, 35]), e(f, [2, 36]), { 1: [2, 1] }, e(t, i, { 4: 2, 7: 4, 3: 21, 5: s, 34: n, 35: o, 36: c }), { 1: [2, 3] }, e(f, [2, 5]), e(t, [2, 7], { 4: 22, 34: n, 35: o, 36: c }), { 11: 23, 37: 24, 38: d, 39: R, 40: 27, 41: _, 42: A, 43: m, 44: T, 45: S, 46: P, 47: p, 48: C, 49: h, 50: L }, { 11: 39, 13: 38, 24: z, 27: lt, 29: 40, 30: 41, 37: 24, 38: d, 39: R, 40: 27, 41: _, 42: A, 43: m, 44: T, 45: S, 46: P, 47: p, 48: C, 49: h, 50: L }, { 11: 45, 15: 44, 27: ct, 33: 46, 37: 24, 38: d, 39: R, 40: 27, 41: _, 42: A, 43: m, 44: T, 45: S, 46: P, 47: p, 48: C, 49: h, 50: L }, { 11: 49, 17: 48, 24: U, 37: 24, 38: d, 39: R, 40: 27, 41: _, 42: A, 43: m, 44: T, 45: S, 46: P, 47: p, 48: C, 49: h, 50: L }, { 11: 52, 17: 51, 24: U, 37: 24, 38: d, 39: R, 40: 27, 41: _, 42: A, 43: m, 44: T, 45: S, 46: P, 47: p, 48: C, 49: h, 50: L }, { 20: [1, 53] }, { 22: [1, 54] }, e(w, [2, 18]), { 1: [2, 2] }, e(w, [2, 8]), e(w, [2, 9]), e(Q, [2, 37], { 40: 55, 41: _, 42: A, 43: m, 44: T, 45: S, 46: P, 47: p, 48: C, 49: h, 50: L }), e(Q, [2, 38]), e(Q, [2, 39]), e(E, [2, 40]), e(E, [2, 42]), e(E, [2, 43]), e(E, [2, 44]), e(E, [2, 45]), e(E, [2, 46]), e(E, [2, 47]), e(E, [2, 48]), e(E, [2, 49]), e(E, [2, 50]), e(E, [2, 51]), e(w, [2, 10]), e(w, [2, 22], { 30: 41, 29: 56, 24: z, 27: lt }), e(w, [2, 24]), e(w, [2, 25]), { 31: [1, 57] }, { 11: 59, 32: 58, 37: 24, 38: d, 39: R, 40: 27, 41: _, 42: A, 43: m, 44: T, 45: S, 46: P, 47: p, 48: C, 49: h, 50: L }, e(w, [2, 11]), e(w, [2, 30], { 33: 60, 27: ct }), e(w, [2, 32]), { 31: [1, 61] }, e(w, [2, 12]), { 17: 62, 24: U }, { 25: 63, 27: ut }, e(w, [2, 14]), { 17: 65, 24: U }, e(w, [2, 16]), e(w, [2, 17]), e(E, [2, 41]), e(w, [2, 23]), { 27: [1, 66] }, { 26: [1, 67] }, { 26: [2, 29], 28: [1, 68] }, e(w, [2, 31]), { 27: [1, 69] }, e(w, [2, 13]), { 26: [1, 70] }, { 26: [2, 21], 28: [1, 71] }, e(w, [2, 15]), e(w, [2, 26]), e(w, [2, 27]), { 11: 59, 32: 72, 37: 24, 38: d, 39: R, 40: 27, 41: _, 42: A, 43: m, 44: T, 45: S, 46: P, 47: p, 48: C, 49: h, 50: L }, e(w, [2, 33]), e(w, [2, 19]), { 25: 73, 27: ut }, { 26: [2, 28] }, { 26: [2, 20] }], + defaultActions: { 8: [2, 1], 10: [2, 3], 21: [2, 2], 72: [2, 28], 73: [2, 20] }, + parseError: function(r, l) { + if (l.recoverable) + this.trace(r); + else { + var u = new Error(r); + throw u.hash = l, u; + } + }, + parse: function(r) { + var l = this, u = [0], g = [], b = [null], a = [], F = this.table, x = "", $ = 0, gt = 0, Vt = 2, xt = 1, Wt = a.slice.call(arguments, 1), k = Object.create(this.lexer), W = { yy: {} }; + for (var J in this.yy) + Object.prototype.hasOwnProperty.call(this.yy, J) && (W.yy[J] = this.yy[J]); + k.setInput(r, W.yy), W.yy.lexer = k, W.yy.parser = this, typeof k.yylloc > "u" && (k.yylloc = {}); + var tt = k.yylloc; + a.push(tt); + var Bt = k.options && k.options.ranges; + typeof W.yy.parseError == "function" ? this.parseError = W.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + function Ot() { + var I; + return I = g.pop() || k.lex() || xt, typeof I != "number" && (I instanceof Array && (g = I, I = g.pop()), I = l.symbols_[I] || I), I; + } + for (var D, B, v, it, O = {}, q, M, dt, j; ; ) { + if (B = u[u.length - 1], this.defaultActions[B] ? v = this.defaultActions[B] : ((D === null || typeof D > "u") && (D = Ot()), v = F[B] && F[B][D]), typeof v > "u" || !v.length || !v[0]) { + var et = ""; + j = []; + for (q in F[B]) + this.terminals_[q] && q > Vt && j.push("'" + this.terminals_[q] + "'"); + k.showPosition ? et = "Parse error on line " + ($ + 1) + `: +` + k.showPosition() + ` +Expecting ` + j.join(", ") + ", got '" + (this.terminals_[D] || D) + "'" : et = "Parse error on line " + ($ + 1) + ": Unexpected " + (D == xt ? "end of input" : "'" + (this.terminals_[D] || D) + "'"), this.parseError(et, { + text: k.match, + token: this.terminals_[D] || D, + line: k.yylineno, + loc: tt, + expected: j + }); + } + if (v[0] instanceof Array && v.length > 1) + throw new Error("Parse Error: multiple actions possible at state: " + B + ", token: " + D); + switch (v[0]) { + case 1: + u.push(D), b.push(k.yytext), a.push(k.yylloc), u.push(v[1]), D = null, gt = k.yyleng, x = k.yytext, $ = k.yylineno, tt = k.yylloc; + break; + case 2: + if (M = this.productions_[v[1]][1], O.$ = b[b.length - M], O._$ = { + first_line: a[a.length - (M || 1)].first_line, + last_line: a[a.length - 1].last_line, + first_column: a[a.length - (M || 1)].first_column, + last_column: a[a.length - 1].last_column + }, Bt && (O._$.range = [ + a[a.length - (M || 1)].range[0], + a[a.length - 1].range[1] + ]), it = this.performAction.apply(O, [ + x, + gt, + $, + W.yy, + v[1], + b, + a + ].concat(Wt)), typeof it < "u") + return it; + M && (u = u.slice(0, -1 * M * 2), b = b.slice(0, -1 * M), a = a.slice(0, -1 * M)), u.push(this.productions_[v[1]][0]), b.push(O.$), a.push(O._$), dt = F[u[u.length - 2]][u[u.length - 1]], u.push(dt); + break; + case 3: + return !0; + } + } + return !0; + } + }, It = function() { + var V = { + EOF: 1, + parseError: function(l, u) { + if (this.yy.parser) + this.yy.parser.parseError(l, u); + else + throw new Error(l); + }, + // resets the lexer, sets new input + setInput: function(r, l) { + return this.yy = l || this.yy || {}, this._input = r, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + // consumes and returns one char from the input + input: function() { + var r = this._input[0]; + this.yytext += r, this.yyleng++, this.offset++, this.match += r, this.matched += r; + var l = r.match(/(?:\r\n?|\n).*/g); + return l ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), r; + }, + // unshifts one char (or a string) into the input + unput: function(r) { + var l = r.length, u = r.split(/(?:\r\n?|\n)/g); + this._input = r + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - l), this.offset -= l; + var g = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), u.length - 1 && (this.yylineno -= u.length - 1); + var b = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: u ? (u.length === g.length ? this.yylloc.first_column : 0) + g[g.length - u.length].length - u[0].length : this.yylloc.first_column - l + }, this.options.ranges && (this.yylloc.range = [b[0], b[0] + this.yyleng - l]), this.yyleng = this.yytext.length, this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + return this._more = !0, this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) + this._backtrack = !0; + else + return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + return this; + }, + // retain first n characters of the match + less: function(r) { + this.unput(this.match.slice(r)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var r = this.matched.substr(0, this.matched.length - this.match.length); + return (r.length > 20 ? "..." : "") + r.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var r = this.match; + return r.length < 20 && (r += this._input.substr(0, 20 - r.length)), (r.substr(0, 20) + (r.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var r = this.pastInput(), l = new Array(r.length + 1).join("-"); + return r + this.upcomingInput() + ` +` + l + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(r, l) { + var u, g, b; + if (this.options.backtrack_lexer && (b = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (b.yylloc.range = this.yylloc.range.slice(0))), g = r[0].match(/(?:\r\n?|\n).*/g), g && (this.yylineno += g.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: g ? g[g.length - 1].length - g[g.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + r[0].length + }, this.yytext += r[0], this.match += r[0], this.matches = r, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(r[0].length), this.matched += r[0], u = this.performAction.call(this, this.yy, this, l, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), u) + return u; + if (this._backtrack) { + for (var a in b) + this[a] = b[a]; + return !1; + } + return !1; + }, + // return next match in input + next: function() { + if (this.done) + return this.EOF; + this._input || (this.done = !0); + var r, l, u, g; + this._more || (this.yytext = "", this.match = ""); + for (var b = this._currentRules(), a = 0; a < b.length; a++) + if (u = this._input.match(this.rules[b[a]]), u && (!l || u[0].length > l[0].length)) { + if (l = u, g = a, this.options.backtrack_lexer) { + if (r = this.test_match(u, b[a]), r !== !1) + return r; + if (this._backtrack) { + l = !1; + continue; + } else + return !1; + } else if (!this.options.flex) + break; + } + return l ? (r = this.test_match(l, b[g]), r !== !1 ? r : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text. +` + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + // return next match that has a token + lex: function() { + var l = this.next(); + return l || this.lex(); + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function(l) { + this.conditionStack.push(l); + }, + // pop the previously active lexer condition state off the condition stack + popState: function() { + var l = this.conditionStack.length - 1; + return l > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function(l) { + return l = this.conditionStack.length - 1 - Math.abs(l || 0), l >= 0 ? this.conditionStack[l] : "INITIAL"; + }, + // alias for begin(condition) + pushState: function(l) { + this.begin(l); + }, + // return the number of states currently on the stack + stateStackSize: function() { + return this.conditionStack.length; + }, + options: { "case-insensitive": !0 }, + performAction: function(l, u, g, b) { + switch (g) { + case 0: + break; + case 1: + break; + case 2: + return this.popState(), 34; + case 3: + return this.popState(), 34; + case 4: + return 34; + case 5: + break; + case 6: + return 10; + case 7: + return this.pushState("acc_title"), 19; + case 8: + return this.popState(), "acc_title_value"; + case 9: + return this.pushState("acc_descr"), 21; + case 10: + return this.popState(), "acc_descr_value"; + case 11: + this.pushState("acc_descr_multiline"); + break; + case 12: + this.popState(); + break; + case 13: + return "acc_descr_multiline_value"; + case 14: + return 5; + case 15: + return 8; + case 16: + return this.pushState("axis_data"), "X_AXIS"; + case 17: + return this.pushState("axis_data"), "Y_AXIS"; + case 18: + return this.pushState("axis_band_data"), 24; + case 19: + return 31; + case 20: + return this.pushState("data"), 16; + case 21: + return this.pushState("data"), 18; + case 22: + return this.pushState("data_inner"), 24; + case 23: + return 27; + case 24: + return this.popState(), 26; + case 25: + this.popState(); + break; + case 26: + this.pushState("string"); + break; + case 27: + this.popState(); + break; + case 28: + return "STR"; + case 29: + return 24; + case 30: + return 26; + case 31: + return 43; + case 32: + return "COLON"; + case 33: + return 44; + case 34: + return 28; + case 35: + return 45; + case 36: + return 46; + case 37: + return 48; + case 38: + return 50; + case 39: + return 47; + case 40: + return 41; + case 41: + return 49; + case 42: + return 42; + case 43: + break; + case 44: + return 35; + case 45: + return 36; + } + }, + rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:(\r?\n))/i, /^(?:(\r?\n))/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:title\b)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:\{)/i, /^(?:[^\}]*)/i, /^(?:xychart-beta\b)/i, /^(?:(?:vertical|horizontal))/i, /^(?:x-axis\b)/i, /^(?:y-axis\b)/i, /^(?:\[)/i, /^(?:-->)/i, /^(?:line\b)/i, /^(?:bar\b)/i, /^(?:\[)/i, /^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i, /^(?:\])/i, /^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:\[)/i, /^(?:\])/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:\*)/i, /^(?:#)/i, /^(?:[\_])/i, /^(?:\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\s+)/i, /^(?:;)/i, /^(?:$)/i], + conditions: { data_inner: { rules: [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], inclusive: !0 }, data: { rules: [0, 1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 22, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], inclusive: !0 }, axis_band_data: { rules: [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], inclusive: !0 }, axis_data: { rules: [0, 1, 2, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], inclusive: !0 }, acc_descr_multiline: { rules: [12, 13], inclusive: !1 }, acc_descr: { rules: [10], inclusive: !1 }, acc_title: { rules: [8], inclusive: !1 }, title: { rules: [], inclusive: !1 }, md_string: { rules: [], inclusive: !1 }, string: { rules: [27, 28], inclusive: !1 }, INITIAL: { rules: [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], inclusive: !0 } } + }; + return V; + }(); + K.lexer = It; + function Z() { + this.yy = {}; + } + return Z.prototype = K, K.Parser = Z, new Z(); +}(); +nt.parser = nt; +const ti = nt; +function mt(e) { + return e.type === "bar"; +} +function _t(e) { + return e.type === "band"; +} +function N(e) { + return e.type === "linear"; +} +class kt { + constructor(t) { + this.parentGroup = t; + } + getMaxDimension(t, i) { + if (!this.parentGroup) + return { + width: t.reduce((o, c) => Math.max(c.length, o), 0) * i, + height: i + }; + const s = { + width: 0, + height: 0 + }, n = this.parentGroup.append("g").attr("visibility", "hidden").attr("font-size", i); + for (const o of t) { + const c = Qt(n, 1, o), f = c ? c.width : o.length * i, d = c ? c.height : i; + s.width = Math.max(s.width, f), s.height = Math.max(s.height, d); + } + return n.remove(), s; + } +} +const yt = 0.7, bt = 0.2; +class Rt { + constructor(t, i, s, n) { + this.axisConfig = t, this.title = i, this.textDimensionCalculator = s, this.axisThemeConfig = n, this.boundingRect = { x: 0, y: 0, width: 0, height: 0 }, this.axisPosition = "left", this.showTitle = !1, this.showLabel = !1, this.showTick = !1, this.showAxisLine = !1, this.outerPadding = 0, this.titleTextHeight = 0, this.labelTextHeight = 0, this.range = [0, 10], this.boundingRect = { x: 0, y: 0, width: 0, height: 0 }, this.axisPosition = "left"; + } + setRange(t) { + this.range = t, this.axisPosition === "left" || this.axisPosition === "right" ? this.boundingRect.height = t[1] - t[0] : this.boundingRect.width = t[1] - t[0], this.recalculateScale(); + } + getRange() { + return [this.range[0] + this.outerPadding, this.range[1] - this.outerPadding]; + } + setAxisPosition(t) { + this.axisPosition = t, this.setRange(this.range); + } + getTickDistance() { + const t = this.getRange(); + return Math.abs(t[0] - t[1]) / this.getTickValues().length; + } + getAxisOuterPadding() { + return this.outerPadding; + } + getLabelDimension() { + return this.textDimensionCalculator.getMaxDimension( + this.getTickValues().map((t) => t.toString()), + this.axisConfig.labelFontSize + ); + } + recalculateOuterPaddingToDrawBar() { + yt * this.getTickDistance() > this.outerPadding * 2 && (this.outerPadding = Math.floor(yt * this.getTickDistance() / 2)), this.recalculateScale(); + } + calculateSpaceIfDrawnHorizontally(t) { + let i = t.height; + if (this.axisConfig.showAxisLine && i > this.axisConfig.axisLineWidth && (i -= this.axisConfig.axisLineWidth, this.showAxisLine = !0), this.axisConfig.showLabel) { + const s = this.getLabelDimension(), n = bt * t.width; + this.outerPadding = Math.min(s.width / 2, n); + const o = s.height + this.axisConfig.labelPadding * 2; + this.labelTextHeight = s.height, o <= i && (i -= o, this.showLabel = !0); + } + if (this.axisConfig.showTick && i >= this.axisConfig.tickLength && (this.showTick = !0, i -= this.axisConfig.tickLength), this.axisConfig.showTitle && this.title) { + const s = this.textDimensionCalculator.getMaxDimension( + [this.title], + this.axisConfig.titleFontSize + ), n = s.height + this.axisConfig.titlePadding * 2; + this.titleTextHeight = s.height, n <= i && (i -= n, this.showTitle = !0); + } + this.boundingRect.width = t.width, this.boundingRect.height = t.height - i; + } + calculateSpaceIfDrawnVertical(t) { + let i = t.width; + if (this.axisConfig.showAxisLine && i > this.axisConfig.axisLineWidth && (i -= this.axisConfig.axisLineWidth, this.showAxisLine = !0), this.axisConfig.showLabel) { + const s = this.getLabelDimension(), n = bt * t.height; + this.outerPadding = Math.min(s.height / 2, n); + const o = s.width + this.axisConfig.labelPadding * 2; + o <= i && (i -= o, this.showLabel = !0); + } + if (this.axisConfig.showTick && i >= this.axisConfig.tickLength && (this.showTick = !0, i -= this.axisConfig.tickLength), this.axisConfig.showTitle && this.title) { + const s = this.textDimensionCalculator.getMaxDimension( + [this.title], + this.axisConfig.titleFontSize + ), n = s.height + this.axisConfig.titlePadding * 2; + this.titleTextHeight = s.height, n <= i && (i -= n, this.showTitle = !0); + } + this.boundingRect.width = t.width - i, this.boundingRect.height = t.height; + } + calculateSpace(t) { + return this.axisPosition === "left" || this.axisPosition === "right" ? this.calculateSpaceIfDrawnVertical(t) : this.calculateSpaceIfDrawnHorizontally(t), this.recalculateScale(), { + width: this.boundingRect.width, + height: this.boundingRect.height + }; + } + setBoundingBoxXY(t) { + this.boundingRect.x = t.x, this.boundingRect.y = t.y; + } + getDrawableElementsForLeftAxis() { + const t = []; + if (this.showAxisLine) { + const i = this.boundingRect.x + this.boundingRect.width - this.axisConfig.axisLineWidth / 2; + t.push({ + type: "path", + groupTexts: ["left-axis", "axisl-line"], + data: [ + { + path: `M ${i},${this.boundingRect.y} L ${i},${this.boundingRect.y + this.boundingRect.height} `, + strokeFill: this.axisThemeConfig.axisLineColor, + strokeWidth: this.axisConfig.axisLineWidth + } + ] + }); + } + if (this.showLabel && t.push({ + type: "text", + groupTexts: ["left-axis", "label"], + data: this.getTickValues().map((i) => ({ + text: i.toString(), + x: this.boundingRect.x + this.boundingRect.width - (this.showLabel ? this.axisConfig.labelPadding : 0) - (this.showTick ? this.axisConfig.tickLength : 0) - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0), + y: this.getScaleValue(i), + fill: this.axisThemeConfig.labelColor, + fontSize: this.axisConfig.labelFontSize, + rotation: 0, + verticalPos: "middle", + horizontalPos: "right" + })) + }), this.showTick) { + const i = this.boundingRect.x + this.boundingRect.width - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0); + t.push({ + type: "path", + groupTexts: ["left-axis", "ticks"], + data: this.getTickValues().map((s) => ({ + path: `M ${i},${this.getScaleValue(s)} L ${i - this.axisConfig.tickLength},${this.getScaleValue(s)}`, + strokeFill: this.axisThemeConfig.tickColor, + strokeWidth: this.axisConfig.tickWidth + })) + }); + } + return this.showTitle && t.push({ + type: "text", + groupTexts: ["left-axis", "title"], + data: [ + { + text: this.title, + x: this.boundingRect.x + this.axisConfig.titlePadding, + y: this.boundingRect.y + this.boundingRect.height / 2, + fill: this.axisThemeConfig.titleColor, + fontSize: this.axisConfig.titleFontSize, + rotation: 270, + verticalPos: "top", + horizontalPos: "center" + } + ] + }), t; + } + getDrawableElementsForBottomAxis() { + const t = []; + if (this.showAxisLine) { + const i = this.boundingRect.y + this.axisConfig.axisLineWidth / 2; + t.push({ + type: "path", + groupTexts: ["bottom-axis", "axis-line"], + data: [ + { + path: `M ${this.boundingRect.x},${i} L ${this.boundingRect.x + this.boundingRect.width},${i}`, + strokeFill: this.axisThemeConfig.axisLineColor, + strokeWidth: this.axisConfig.axisLineWidth + } + ] + }); + } + if (this.showLabel && t.push({ + type: "text", + groupTexts: ["bottom-axis", "label"], + data: this.getTickValues().map((i) => ({ + text: i.toString(), + x: this.getScaleValue(i), + y: this.boundingRect.y + this.axisConfig.labelPadding + (this.showTick ? this.axisConfig.tickLength : 0) + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0), + fill: this.axisThemeConfig.labelColor, + fontSize: this.axisConfig.labelFontSize, + rotation: 0, + verticalPos: "top", + horizontalPos: "center" + })) + }), this.showTick) { + const i = this.boundingRect.y + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0); + t.push({ + type: "path", + groupTexts: ["bottom-axis", "ticks"], + data: this.getTickValues().map((s) => ({ + path: `M ${this.getScaleValue(s)},${i} L ${this.getScaleValue(s)},${i + this.axisConfig.tickLength}`, + strokeFill: this.axisThemeConfig.tickColor, + strokeWidth: this.axisConfig.tickWidth + })) + }); + } + return this.showTitle && t.push({ + type: "text", + groupTexts: ["bottom-axis", "title"], + data: [ + { + text: this.title, + x: this.range[0] + (this.range[1] - this.range[0]) / 2, + y: this.boundingRect.y + this.boundingRect.height - this.axisConfig.titlePadding - this.titleTextHeight, + fill: this.axisThemeConfig.titleColor, + fontSize: this.axisConfig.titleFontSize, + rotation: 0, + verticalPos: "top", + horizontalPos: "center" + } + ] + }), t; + } + getDrawableElementsForTopAxis() { + const t = []; + if (this.showAxisLine) { + const i = this.boundingRect.y + this.boundingRect.height - this.axisConfig.axisLineWidth / 2; + t.push({ + type: "path", + groupTexts: ["top-axis", "axis-line"], + data: [ + { + path: `M ${this.boundingRect.x},${i} L ${this.boundingRect.x + this.boundingRect.width},${i}`, + strokeFill: this.axisThemeConfig.axisLineColor, + strokeWidth: this.axisConfig.axisLineWidth + } + ] + }); + } + if (this.showLabel && t.push({ + type: "text", + groupTexts: ["top-axis", "label"], + data: this.getTickValues().map((i) => ({ + text: i.toString(), + x: this.getScaleValue(i), + y: this.boundingRect.y + (this.showTitle ? this.titleTextHeight + this.axisConfig.titlePadding * 2 : 0) + this.axisConfig.labelPadding, + fill: this.axisThemeConfig.labelColor, + fontSize: this.axisConfig.labelFontSize, + rotation: 0, + verticalPos: "top", + horizontalPos: "center" + })) + }), this.showTick) { + const i = this.boundingRect.y; + t.push({ + type: "path", + groupTexts: ["top-axis", "ticks"], + data: this.getTickValues().map((s) => ({ + path: `M ${this.getScaleValue(s)},${i + this.boundingRect.height - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)} L ${this.getScaleValue(s)},${i + this.boundingRect.height - this.axisConfig.tickLength - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)}`, + strokeFill: this.axisThemeConfig.tickColor, + strokeWidth: this.axisConfig.tickWidth + })) + }); + } + return this.showTitle && t.push({ + type: "text", + groupTexts: ["top-axis", "title"], + data: [ + { + text: this.title, + x: this.boundingRect.x + this.boundingRect.width / 2, + y: this.boundingRect.y + this.axisConfig.titlePadding, + fill: this.axisThemeConfig.titleColor, + fontSize: this.axisConfig.titleFontSize, + rotation: 0, + verticalPos: "top", + horizontalPos: "center" + } + ] + }), t; + } + getDrawableElements() { + if (this.axisPosition === "left") + return this.getDrawableElementsForLeftAxis(); + if (this.axisPosition === "right") + throw Error("Drawing of right axis is not implemented"); + return this.axisPosition === "bottom" ? this.getDrawableElementsForBottomAxis() : this.axisPosition === "top" ? this.getDrawableElementsForTopAxis() : []; + } +} +class ii extends Rt { + constructor(t, i, s, n, o) { + super(t, n, o, i), this.categories = s, this.scale = st().domain(this.categories).range(this.getRange()); + } + setRange(t) { + super.setRange(t); + } + recalculateScale() { + this.scale = st().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(0.5), wt.trace("BandAxis axis final categories, range: ", this.categories, this.getRange()); + } + getTickValues() { + return this.categories; + } + getScaleValue(t) { + return this.scale(t) || this.getRange()[0]; + } +} +class ei extends Rt { + constructor(t, i, s, n, o) { + super(t, n, o, i), this.domain = s, this.scale = ft().domain(this.domain).range(this.getRange()); + } + getTickValues() { + return this.scale.ticks(); + } + recalculateScale() { + const t = [...this.domain]; + this.axisPosition === "left" && t.reverse(), this.scale = ft().domain(t).range(this.getRange()); + } + getScaleValue(t) { + return this.scale(t); + } +} +function At(e, t, i, s) { + const n = new kt(s); + return _t(e) ? new ii( + t, + i, + e.categories, + e.title, + n + ) : new ei( + t, + i, + [e.min, e.max], + e.title, + n + ); +} +class si { + constructor(t, i, s, n) { + this.textDimensionCalculator = t, this.chartConfig = i, this.chartData = s, this.chartThemeConfig = n, this.boundingRect = { + x: 0, + y: 0, + width: 0, + height: 0 + }, this.showChartTitle = !1; + } + setBoundingBoxXY(t) { + this.boundingRect.x = t.x, this.boundingRect.y = t.y; + } + calculateSpace(t) { + const i = this.textDimensionCalculator.getMaxDimension( + [this.chartData.title], + this.chartConfig.titleFontSize + ), s = Math.max(i.width, t.width), n = i.height + 2 * this.chartConfig.titlePadding; + return i.width <= s && i.height <= n && this.chartConfig.showTitle && this.chartData.title && (this.boundingRect.width = s, this.boundingRect.height = n, this.showChartTitle = !0), { + width: this.boundingRect.width, + height: this.boundingRect.height + }; + } + getDrawableElements() { + const t = []; + return this.showChartTitle && t.push({ + groupTexts: ["chart-title"], + type: "text", + data: [ + { + fontSize: this.chartConfig.titleFontSize, + text: this.chartData.title, + verticalPos: "middle", + horizontalPos: "center", + x: this.boundingRect.x + this.boundingRect.width / 2, + y: this.boundingRect.y + this.boundingRect.height / 2, + fill: this.chartThemeConfig.titleColor, + rotation: 0 + } + ] + }), t; + } +} +function ni(e, t, i, s) { + const n = new kt(s); + return new si(n, e, t, i); +} +class ai { + constructor(t, i, s, n, o) { + this.plotData = t, this.xAxis = i, this.yAxis = s, this.orientation = n, this.plotIndex = o; + } + getDrawableElement() { + const t = this.plotData.data.map((s) => [ + this.xAxis.getScaleValue(s[0]), + this.yAxis.getScaleValue(s[1]) + ]); + let i; + return this.orientation === "horizontal" ? i = pt().y((s) => s[0]).x((s) => s[1])(t) : i = pt().x((s) => s[0]).y((s) => s[1])(t), i ? [ + { + groupTexts: ["plot", `line-plot-${this.plotIndex}`], + type: "path", + data: [ + { + path: i, + strokeFill: this.plotData.strokeFill, + strokeWidth: this.plotData.strokeWidth + } + ] + } + ] : []; + } +} +class oi { + constructor(t, i, s, n, o, c) { + this.barData = t, this.boundingRect = i, this.xAxis = s, this.yAxis = n, this.orientation = o, this.plotIndex = c; + } + getDrawableElement() { + const t = this.barData.data.map((o) => [ + this.xAxis.getScaleValue(o[0]), + this.yAxis.getScaleValue(o[1]) + ]), i = 0.05, s = Math.min(this.xAxis.getAxisOuterPadding() * 2, this.xAxis.getTickDistance()) * (1 - i), n = s / 2; + return this.orientation === "horizontal" ? [ + { + groupTexts: ["plot", `bar-plot-${this.plotIndex}`], + type: "rect", + data: t.map((o) => ({ + x: this.boundingRect.x, + y: o[0] - n, + height: s, + width: o[1] - this.boundingRect.x, + fill: this.barData.fill, + strokeWidth: 0, + strokeFill: this.barData.fill + })) + } + ] : [ + { + groupTexts: ["plot", `bar-plot-${this.plotIndex}`], + type: "rect", + data: t.map((o) => ({ + x: o[0] - n, + y: o[1], + width: s, + height: this.boundingRect.y + this.boundingRect.height - o[1], + fill: this.barData.fill, + strokeWidth: 0, + strokeFill: this.barData.fill + })) + } + ]; + } +} +class ri { + constructor(t, i, s) { + this.chartConfig = t, this.chartData = i, this.chartThemeConfig = s, this.boundingRect = { + x: 0, + y: 0, + width: 0, + height: 0 + }; + } + setAxes(t, i) { + this.xAxis = t, this.yAxis = i; + } + setBoundingBoxXY(t) { + this.boundingRect.x = t.x, this.boundingRect.y = t.y; + } + calculateSpace(t) { + return this.boundingRect.width = t.width, this.boundingRect.height = t.height, { + width: this.boundingRect.width, + height: this.boundingRect.height + }; + } + getDrawableElements() { + if (!(this.xAxis && this.yAxis)) + throw Error("Axes must be passed to render Plots"); + const t = []; + for (const [i, s] of this.chartData.plots.entries()) + switch (s.type) { + case "line": + { + const n = new ai( + s, + this.xAxis, + this.yAxis, + this.chartConfig.chartOrientation, + i + ); + t.push(...n.getDrawableElement()); + } + break; + case "bar": + { + const n = new oi( + s, + this.boundingRect, + this.xAxis, + this.yAxis, + this.chartConfig.chartOrientation, + i + ); + t.push(...n.getDrawableElement()); + } + break; + } + return t; + } +} +function hi(e, t, i) { + return new ri(e, t, i); +} +class li { + constructor(t, i, s, n) { + this.chartConfig = t, this.chartData = i, this.componentStore = { + title: ni(t, i, s, n), + plot: hi(t, i, s), + xAxis: At( + i.xAxis, + t.xAxis, + { + titleColor: s.xAxisTitleColor, + labelColor: s.xAxisLabelColor, + tickColor: s.xAxisTickColor, + axisLineColor: s.xAxisLineColor + }, + n + ), + yAxis: At( + i.yAxis, + t.yAxis, + { + titleColor: s.yAxisTitleColor, + labelColor: s.yAxisLabelColor, + tickColor: s.yAxisTickColor, + axisLineColor: s.yAxisLineColor + }, + n + ) + }; + } + calculateVerticalSpace() { + let t = this.chartConfig.width, i = this.chartConfig.height, s = 0, n = 0, o = Math.floor(t * this.chartConfig.plotReservedSpacePercent / 100), c = Math.floor( + i * this.chartConfig.plotReservedSpacePercent / 100 + ), f = this.componentStore.plot.calculateSpace({ + width: o, + height: c + }); + t -= f.width, i -= f.height, f = this.componentStore.title.calculateSpace({ + width: this.chartConfig.width, + height: i + }), n = f.height, i -= f.height, this.componentStore.xAxis.setAxisPosition("bottom"), f = this.componentStore.xAxis.calculateSpace({ + width: t, + height: i + }), i -= f.height, this.componentStore.yAxis.setAxisPosition("left"), f = this.componentStore.yAxis.calculateSpace({ + width: t, + height: i + }), s = f.width, t -= f.width, t > 0 && (o += t, t = 0), i > 0 && (c += i, i = 0), this.componentStore.plot.calculateSpace({ + width: o, + height: c + }), this.componentStore.plot.setBoundingBoxXY({ x: s, y: n }), this.componentStore.xAxis.setRange([s, s + o]), this.componentStore.xAxis.setBoundingBoxXY({ x: s, y: n + c }), this.componentStore.yAxis.setRange([n, n + c]), this.componentStore.yAxis.setBoundingBoxXY({ x: 0, y: n }), this.chartData.plots.some((d) => mt(d)) && this.componentStore.xAxis.recalculateOuterPaddingToDrawBar(); + } + calculateHorizontalSpace() { + let t = this.chartConfig.width, i = this.chartConfig.height, s = 0, n = 0, o = 0, c = Math.floor(t * this.chartConfig.plotReservedSpacePercent / 100), f = Math.floor( + i * this.chartConfig.plotReservedSpacePercent / 100 + ), d = this.componentStore.plot.calculateSpace({ + width: c, + height: f + }); + t -= d.width, i -= d.height, d = this.componentStore.title.calculateSpace({ + width: this.chartConfig.width, + height: i + }), s = d.height, i -= d.height, this.componentStore.xAxis.setAxisPosition("left"), d = this.componentStore.xAxis.calculateSpace({ + width: t, + height: i + }), t -= d.width, n = d.width, this.componentStore.yAxis.setAxisPosition("top"), d = this.componentStore.yAxis.calculateSpace({ + width: t, + height: i + }), i -= d.height, o = s + d.height, t > 0 && (c += t, t = 0), i > 0 && (f += i, i = 0), this.componentStore.plot.calculateSpace({ + width: c, + height: f + }), this.componentStore.plot.setBoundingBoxXY({ x: n, y: o }), this.componentStore.yAxis.setRange([n, n + c]), this.componentStore.yAxis.setBoundingBoxXY({ x: n, y: s }), this.componentStore.xAxis.setRange([o, o + f]), this.componentStore.xAxis.setBoundingBoxXY({ x: 0, y: o }), this.chartData.plots.some((R) => mt(R)) && this.componentStore.xAxis.recalculateOuterPaddingToDrawBar(); + } + calculateSpace() { + this.chartConfig.chartOrientation === "horizontal" ? this.calculateHorizontalSpace() : this.calculateVerticalSpace(); + } + getDrawableElement() { + this.calculateSpace(); + const t = []; + this.componentStore.plot.setAxes(this.componentStore.xAxis, this.componentStore.yAxis); + for (const i of Object.values(this.componentStore)) + t.push(...i.getDrawableElements()); + return t; + } +} +class ci { + static build(t, i, s, n) { + return new li(t, i, s, n).getDrawableElement(); + } +} +let X = 0, Tt, Y = Pt(), H = Dt(), y = Lt(), at = H.plotColorPalette.split(",").map((e) => e.trim()), G = !1, rt = !1; +function Dt() { + const e = Ht(), t = ot(); + return Ct(e.xyChart, t.themeVariables.xyChart); +} +function Pt() { + const e = ot(); + return Ct( + Ut.xyChart, + e.xyChart + ); +} +function Lt() { + return { + yAxis: { + type: "linear", + title: "", + min: 1 / 0, + max: -1 / 0 + }, + xAxis: { + type: "band", + title: "", + categories: [] + }, + title: "", + plots: [] + }; +} +function ht(e) { + const t = ot(); + return qt(e.trim(), t); +} +function ui(e) { + Tt = e; +} +function gi(e) { + e === "horizontal" ? Y.chartOrientation = "horizontal" : Y.chartOrientation = "vertical"; +} +function xi(e) { + y.xAxis.title = ht(e.text); +} +function Et(e, t) { + y.xAxis = { type: "linear", title: y.xAxis.title, min: e, max: t }, G = !0; +} +function di(e) { + y.xAxis = { + type: "band", + title: y.xAxis.title, + categories: e.map((t) => ht(t.text)) + }, G = !0; +} +function fi(e) { + y.yAxis.title = ht(e.text); +} +function pi(e, t) { + y.yAxis = { type: "linear", title: y.yAxis.title, min: e, max: t }, rt = !0; +} +function mi(e) { + const t = Math.min(...e), i = Math.max(...e), s = N(y.yAxis) ? y.yAxis.min : 1 / 0, n = N(y.yAxis) ? y.yAxis.max : -1 / 0; + y.yAxis = { + type: "linear", + title: y.yAxis.title, + min: Math.min(s, t), + max: Math.max(n, i) + }; +} +function vt(e) { + let t = []; + if (e.length === 0) + return t; + if (!G) { + const i = N(y.xAxis) ? y.xAxis.min : 1 / 0, s = N(y.xAxis) ? y.xAxis.max : -1 / 0; + Et(Math.min(i, 1), Math.max(s, e.length)); + } + if (rt || mi(e), _t(y.xAxis) && (t = y.xAxis.categories.map((i, s) => [i, e[s]])), N(y.xAxis)) { + const i = y.xAxis.min, s = y.xAxis.max, n = (s - i + 1) / e.length, o = []; + for (let c = i; c <= s; c += n) + o.push(`${c}`); + t = o.map((c, f) => [c, e[f]]); + } + return t; +} +function Mt(e) { + return at[e === 0 ? 0 : e % at.length]; +} +function yi(e, t) { + const i = vt(t); + y.plots.push({ + type: "line", + strokeFill: Mt(X), + strokeWidth: 2, + data: i + }), X++; +} +function bi(e, t) { + const i = vt(t); + y.plots.push({ + type: "bar", + fill: Mt(X), + data: i + }), X++; +} +function Ai() { + if (y.plots.length === 0) + throw Error("No Plot to render, please provide a plot with some data"); + return y.title = St(), ci.build(Y, y, H, Tt); +} +function wi() { + return H; +} +function Si() { + return Y; +} +const Ci = function() { + $t(), X = 0, Y = Pt(), y = Lt(), H = Dt(), at = H.plotColorPalette.split(",").map((e) => e.trim()), G = !1, rt = !1; +}, _i = { + getDrawableElem: Ai, + clear: Ci, + setAccTitle: zt, + getAccTitle: Ft, + setDiagramTitle: Nt, + getDiagramTitle: St, + getAccDescription: Xt, + setAccDescription: Yt, + setOrientation: gi, + setXAxisTitle: xi, + setXAxisRangeData: Et, + setXAxisBand: di, + setYAxisTitle: fi, + setYAxisRangeData: pi, + setLineData: yi, + setBarData: bi, + setTmpSVGG: ui, + getChartThemeConfig: wi, + getChartConfig: Si +}, ki = (e, t, i, s) => { + const n = s.db, o = n.getChartThemeConfig(), c = n.getChartConfig(); + function f(p) { + return p === "top" ? "text-before-edge" : "middle"; + } + function d(p) { + return p === "left" ? "start" : p === "right" ? "end" : "middle"; + } + function R(p) { + return `translate(${p.x}, ${p.y}) rotate(${p.rotation || 0})`; + } + wt.debug(`Rendering xychart chart +` + e); + const _ = jt(t), A = _.append("g").attr("class", "main"), m = A.append("rect").attr("width", c.width).attr("height", c.height).attr("class", "background"); + Gt(_, c.height, c.width, !0), _.attr("viewBox", `0 0 ${c.width} ${c.height}`), m.attr("fill", o.backgroundColor), n.setTmpSVGG(_.append("g").attr("class", "mermaid-tmp-group")); + const T = n.getDrawableElem(), S = {}; + function P(p) { + let C = A, h = ""; + for (const [L] of p.entries()) { + let z = A; + L > 0 && S[h] && (z = S[h]), h += p[L], C = S[h], C || (C = S[h] = z.append("g").attr("class", p[L])); + } + return C; + } + for (const p of T) { + if (p.data.length === 0) + continue; + const C = P(p.groupTexts); + switch (p.type) { + case "rect": + C.selectAll("rect").data(p.data).enter().append("rect").attr("x", (h) => h.x).attr("y", (h) => h.y).attr("width", (h) => h.width).attr("height", (h) => h.height).attr("fill", (h) => h.fill).attr("stroke", (h) => h.strokeFill).attr("stroke-width", (h) => h.strokeWidth); + break; + case "text": + C.selectAll("text").data(p.data).enter().append("text").attr("x", 0).attr("y", 0).attr("fill", (h) => h.fill).attr("font-size", (h) => h.fontSize).attr("dominant-baseline", (h) => f(h.verticalPos)).attr("text-anchor", (h) => d(h.horizontalPos)).attr("transform", (h) => R(h)).text((h) => h.text); + break; + case "path": + C.selectAll("path").data(p.data).enter().append("path").attr("d", (h) => h.path).attr("fill", (h) => h.fill ? h.fill : "none").attr("stroke", (h) => h.strokeFill).attr("stroke-width", (h) => h.strokeWidth); + break; + } + } +}, Ri = { + draw: ki +}, Vi = { + parser: ti, + db: _i, + renderer: Ri +}; +export { + Vi as diagram +}; diff --git a/assets/lib/mermaid/xychartDiagram-f11f50a6.js b/assets/lib/mermaid/xychartDiagram-f11f50a6.js new file mode 100644 index 000000000..31a016dfb --- /dev/null +++ b/assets/lib/mermaid/xychartDiagram-f11f50a6.js @@ -0,0 +1,1745 @@ +import { l as log, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, t as getDiagramTitle, a as getAccDescription, b as setAccDescription, E as getThemeVariables, F as getConfig, C as cleanAndMerge, B as defaultConfig, v as clear$1, d as sanitizeText, A as selectSvgElement, i as configureSvgSize } from "./mermaid-6dc72991.js"; +import { c as computeDimensionOfText } from "./createText-ca0c5216.js"; +import { scaleBand, scaleLinear, line } from "d3"; +import "ts-dedent"; +import "dayjs"; +import "@braintree/sanitize-url"; +import "dompurify"; +import "khroma"; +import "lodash-es/memoize.js"; +import "lodash-es/merge.js"; +import "stylis"; +import "lodash-es/isEmpty.js"; +import "mdast-util-from-markdown"; +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 10, 12, 14, 16, 18, 19, 21, 23], $V1 = [2, 6], $V2 = [1, 3], $V3 = [1, 5], $V4 = [1, 6], $V5 = [1, 7], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $V7 = [1, 25], $V8 = [1, 26], $V9 = [1, 28], $Va = [1, 29], $Vb = [1, 30], $Vc = [1, 31], $Vd = [1, 32], $Ve = [1, 33], $Vf = [1, 34], $Vg = [1, 35], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 43], $Vk = [1, 42], $Vl = [1, 47], $Vm = [1, 50], $Vn = [1, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $Vo = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36], $Vp = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $Vq = [1, 64]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "eol": 4, "XYCHART": 5, "chartConfig": 6, "document": 7, "CHART_ORIENTATION": 8, "statement": 9, "title": 10, "text": 11, "X_AXIS": 12, "parseXAxis": 13, "Y_AXIS": 14, "parseYAxis": 15, "LINE": 16, "plotData": 17, "BAR": 18, "acc_title": 19, "acc_title_value": 20, "acc_descr": 21, "acc_descr_value": 22, "acc_descr_multiline_value": 23, "SQUARE_BRACES_START": 24, "commaSeparatedNumbers": 25, "SQUARE_BRACES_END": 26, "NUMBER_WITH_DECIMAL": 27, "COMMA": 28, "xAxisData": 29, "bandData": 30, "ARROW_DELIMITER": 31, "commaSeparatedTexts": 32, "yAxisData": 33, "NEWLINE": 34, "SEMI": 35, "EOF": 36, "alphaNum": 37, "STR": 38, "MD_STR": 39, "alphaNumToken": 40, "AMP": 41, "NUM": 42, "ALPHA": 43, "PLUS": 44, "EQUALS": 45, "MULT": 46, "DOT": 47, "BRKT": 48, "MINUS": 49, "UNDERSCORE": 50, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 5: "XYCHART", 8: "CHART_ORIENTATION", 10: "title", 12: "X_AXIS", 14: "Y_AXIS", 16: "LINE", 18: "BAR", 19: "acc_title", 20: "acc_title_value", 21: "acc_descr", 22: "acc_descr_value", 23: "acc_descr_multiline_value", 24: "SQUARE_BRACES_START", 26: "SQUARE_BRACES_END", 27: "NUMBER_WITH_DECIMAL", 28: "COMMA", 31: "ARROW_DELIMITER", 34: "NEWLINE", 35: "SEMI", 36: "EOF", 38: "STR", 39: "MD_STR", 41: "AMP", 42: "NUM", 43: "ALPHA", 44: "PLUS", 45: "EQUALS", 46: "MULT", 47: "DOT", 48: "BRKT", 49: "MINUS", 50: "UNDERSCORE" }, + productions_: [0, [3, 2], [3, 3], [3, 2], [3, 1], [6, 1], [7, 0], [7, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 3], [9, 2], [9, 3], [9, 2], [9, 2], [9, 1], [17, 3], [25, 3], [25, 1], [13, 1], [13, 2], [13, 1], [29, 1], [29, 3], [30, 3], [32, 3], [32, 1], [15, 1], [15, 2], [15, 1], [33, 3], [4, 1], [4, 1], [4, 1], [11, 1], [11, 1], [11, 1], [37, 1], [37, 2], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 5: + yy.setOrientation($$[$0]); + break; + case 9: + yy.setDiagramTitle($$[$0].text.trim()); + break; + case 12: + yy.setLineData({ text: "", type: "text" }, $$[$0]); + break; + case 13: + yy.setLineData($$[$0 - 1], $$[$0]); + break; + case 14: + yy.setBarData({ text: "", type: "text" }, $$[$0]); + break; + case 15: + yy.setBarData($$[$0 - 1], $$[$0]); + break; + case 16: + this.$ = $$[$0].trim(); + yy.setAccTitle(this.$); + break; + case 17: + case 18: + this.$ = $$[$0].trim(); + yy.setAccDescription(this.$); + break; + case 19: + this.$ = $$[$0 - 1]; + break; + case 20: + this.$ = [Number($$[$0 - 2]), ...$$[$0]]; + break; + case 21: + this.$ = [Number($$[$0])]; + break; + case 22: + yy.setXAxisTitle($$[$0]); + break; + case 23: + yy.setXAxisTitle($$[$0 - 1]); + break; + case 24: + yy.setXAxisTitle({ type: "text", text: "" }); + break; + case 25: + yy.setXAxisBand($$[$0]); + break; + case 26: + yy.setXAxisRangeData(Number($$[$0 - 2]), Number($$[$0])); + break; + case 27: + this.$ = $$[$0 - 1]; + break; + case 28: + this.$ = [$$[$0 - 2], ...$$[$0]]; + break; + case 29: + this.$ = [$$[$0]]; + break; + case 30: + yy.setYAxisTitle($$[$0]); + break; + case 31: + yy.setYAxisTitle($$[$0 - 1]); + break; + case 32: + yy.setYAxisTitle({ type: "text", text: "" }); + break; + case 33: + yy.setYAxisRangeData(Number($$[$0 - 2]), Number($$[$0])); + break; + case 37: + this.$ = { text: $$[$0], type: "text" }; + break; + case 38: + this.$ = { text: $$[$0], type: "text" }; + break; + case 39: + this.$ = { text: $$[$0], type: "markdown" }; + break; + case 40: + this.$ = $$[$0]; + break; + case 41: + this.$ = $$[$0 - 1] + "" + $$[$0]; + break; + } + }, + table: [o($V0, $V1, { 3: 1, 4: 2, 7: 4, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [3] }, o($V0, $V1, { 4: 2, 7: 4, 3: 8, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), o($V0, $V1, { 4: 2, 7: 4, 6: 9, 3: 10, 5: $V2, 8: [1, 11], 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 4], 9: 12, 10: [1, 13], 12: [1, 14], 14: [1, 15], 16: [1, 16], 18: [1, 17], 19: [1, 18], 21: [1, 19], 23: [1, 20] }, o($V6, [2, 34]), o($V6, [2, 35]), o($V6, [2, 36]), { 1: [2, 1] }, o($V0, $V1, { 4: 2, 7: 4, 3: 21, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 3] }, o($V6, [2, 5]), o($V0, [2, 7], { 4: 22, 34: $V3, 35: $V4, 36: $V5 }), { 11: 23, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 39, 13: 38, 24: $Vj, 27: $Vk, 29: 40, 30: 41, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 45, 15: 44, 27: $Vl, 33: 46, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 49, 17: 48, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 52, 17: 51, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 20: [1, 53] }, { 22: [1, 54] }, o($Vn, [2, 18]), { 1: [2, 2] }, o($Vn, [2, 8]), o($Vn, [2, 9]), o($Vo, [2, 37], { 40: 55, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }), o($Vo, [2, 38]), o($Vo, [2, 39]), o($Vp, [2, 40]), o($Vp, [2, 42]), o($Vp, [2, 43]), o($Vp, [2, 44]), o($Vp, [2, 45]), o($Vp, [2, 46]), o($Vp, [2, 47]), o($Vp, [2, 48]), o($Vp, [2, 49]), o($Vp, [2, 50]), o($Vp, [2, 51]), o($Vn, [2, 10]), o($Vn, [2, 22], { 30: 41, 29: 56, 24: $Vj, 27: $Vk }), o($Vn, [2, 24]), o($Vn, [2, 25]), { 31: [1, 57] }, { 11: 59, 32: 58, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 11]), o($Vn, [2, 30], { 33: 60, 27: $Vl }), o($Vn, [2, 32]), { 31: [1, 61] }, o($Vn, [2, 12]), { 17: 62, 24: $Vm }, { 25: 63, 27: $Vq }, o($Vn, [2, 14]), { 17: 65, 24: $Vm }, o($Vn, [2, 16]), o($Vn, [2, 17]), o($Vp, [2, 41]), o($Vn, [2, 23]), { 27: [1, 66] }, { 26: [1, 67] }, { 26: [2, 29], 28: [1, 68] }, o($Vn, [2, 31]), { 27: [1, 69] }, o($Vn, [2, 13]), { 26: [1, 70] }, { 26: [2, 21], 28: [1, 71] }, o($Vn, [2, 15]), o($Vn, [2, 26]), o($Vn, [2, 27]), { 11: 59, 32: 72, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 33]), o($Vn, [2, 19]), { 25: 73, 27: $Vq }, { 26: [2, 28] }, { 26: [2, 20] }], + defaultActions: { 8: [2, 1], 10: [2, 3], 21: [2, 2], 72: [2, 28], 73: [2, 20] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + break; + case 1: + break; + case 2: + this.popState(); + return 34; + case 3: + this.popState(); + return 34; + case 4: + return 34; + case 5: + break; + case 6: + return 10; + case 7: + this.pushState("acc_title"); + return 19; + case 8: + this.popState(); + return "acc_title_value"; + case 9: + this.pushState("acc_descr"); + return 21; + case 10: + this.popState(); + return "acc_descr_value"; + case 11: + this.pushState("acc_descr_multiline"); + break; + case 12: + this.popState(); + break; + case 13: + return "acc_descr_multiline_value"; + case 14: + return 5; + case 15: + return 8; + case 16: + this.pushState("axis_data"); + return "X_AXIS"; + case 17: + this.pushState("axis_data"); + return "Y_AXIS"; + case 18: + this.pushState("axis_band_data"); + return 24; + case 19: + return 31; + case 20: + this.pushState("data"); + return 16; + case 21: + this.pushState("data"); + return 18; + case 22: + this.pushState("data_inner"); + return 24; + case 23: + return 27; + case 24: + this.popState(); + return 26; + case 25: + this.popState(); + break; + case 26: + this.pushState("string"); + break; + case 27: + this.popState(); + break; + case 28: + return "STR"; + case 29: + return 24; + case 30: + return 26; + case 31: + return 43; + case 32: + return "COLON"; + case 33: + return 44; + case 34: + return 28; + case 35: + return 45; + case 36: + return 46; + case 37: + return 48; + case 38: + return 50; + case 39: + return 47; + case 40: + return 41; + case 41: + return 49; + case 42: + return 42; + case 43: + break; + case 44: + return 35; + case 45: + return 36; + } + }, + rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:(\r?\n))/i, /^(?:(\r?\n))/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:title\b)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:\{)/i, /^(?:[^\}]*)/i, /^(?:xychart-beta\b)/i, /^(?:(?:vertical|horizontal))/i, /^(?:x-axis\b)/i, /^(?:y-axis\b)/i, /^(?:\[)/i, /^(?:-->)/i, /^(?:line\b)/i, /^(?:bar\b)/i, /^(?:\[)/i, /^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i, /^(?:\])/i, /^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:\[)/i, /^(?:\])/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:\*)/i, /^(?:#)/i, /^(?:[\_])/i, /^(?:\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\s+)/i, /^(?:;)/i, /^(?:$)/i], + conditions: { "data_inner": { "rules": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "data": { "rules": [0, 1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 22, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "axis_band_data": { "rules": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "axis_data": { "rules": [0, 1, 2, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "title": { "rules": [], "inclusive": false }, "md_string": { "rules": [], "inclusive": false }, "string": { "rules": [27, 28], "inclusive": false }, "INITIAL": { "rules": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +function isBarPlot(data) { + return data.type === "bar"; +} +function isBandAxisData(data) { + return data.type === "band"; +} +function isLinearAxisData(data) { + return data.type === "linear"; +} +class TextDimensionCalculatorWithFont { + constructor(parentGroup) { + this.parentGroup = parentGroup; + } + getMaxDimension(texts, fontSize) { + if (!this.parentGroup) { + return { + width: texts.reduce((acc, cur) => Math.max(cur.length, acc), 0) * fontSize, + height: fontSize + }; + } + const dimension = { + width: 0, + height: 0 + }; + const elem = this.parentGroup.append("g").attr("visibility", "hidden").attr("font-size", fontSize); + for (const t of texts) { + const bbox = computeDimensionOfText(elem, 1, t); + const width = bbox ? bbox.width : t.length * fontSize; + const height = bbox ? bbox.height : fontSize; + dimension.width = Math.max(dimension.width, width); + dimension.height = Math.max(dimension.height, height); + } + elem.remove(); + return dimension; + } +} +const BAR_WIDTH_TO_TICK_WIDTH_RATIO = 0.7; +const MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL = 0.2; +class BaseAxis { + constructor(axisConfig, title, textDimensionCalculator, axisThemeConfig) { + this.axisConfig = axisConfig; + this.title = title; + this.textDimensionCalculator = textDimensionCalculator; + this.axisThemeConfig = axisThemeConfig; + this.boundingRect = { x: 0, y: 0, width: 0, height: 0 }; + this.axisPosition = "left"; + this.showTitle = false; + this.showLabel = false; + this.showTick = false; + this.showAxisLine = false; + this.outerPadding = 0; + this.titleTextHeight = 0; + this.labelTextHeight = 0; + this.range = [0, 10]; + this.boundingRect = { x: 0, y: 0, width: 0, height: 0 }; + this.axisPosition = "left"; + } + setRange(range) { + this.range = range; + if (this.axisPosition === "left" || this.axisPosition === "right") { + this.boundingRect.height = range[1] - range[0]; + } else { + this.boundingRect.width = range[1] - range[0]; + } + this.recalculateScale(); + } + getRange() { + return [this.range[0] + this.outerPadding, this.range[1] - this.outerPadding]; + } + setAxisPosition(axisPosition) { + this.axisPosition = axisPosition; + this.setRange(this.range); + } + getTickDistance() { + const range = this.getRange(); + return Math.abs(range[0] - range[1]) / this.getTickValues().length; + } + getAxisOuterPadding() { + return this.outerPadding; + } + getLabelDimension() { + return this.textDimensionCalculator.getMaxDimension( + this.getTickValues().map((tick) => tick.toString()), + this.axisConfig.labelFontSize + ); + } + recalculateOuterPaddingToDrawBar() { + if (BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() > this.outerPadding * 2) { + this.outerPadding = Math.floor(BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() / 2); + } + this.recalculateScale(); + } + calculateSpaceIfDrawnHorizontally(availableSpace) { + let availableHeight = availableSpace.height; + if (this.axisConfig.showAxisLine && availableHeight > this.axisConfig.axisLineWidth) { + availableHeight -= this.axisConfig.axisLineWidth; + this.showAxisLine = true; + } + if (this.axisConfig.showLabel) { + const spaceRequired = this.getLabelDimension(); + const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.width; + this.outerPadding = Math.min(spaceRequired.width / 2, maxPadding); + const heightRequired = spaceRequired.height + this.axisConfig.labelPadding * 2; + this.labelTextHeight = spaceRequired.height; + if (heightRequired <= availableHeight) { + availableHeight -= heightRequired; + this.showLabel = true; + } + } + if (this.axisConfig.showTick && availableHeight >= this.axisConfig.tickLength) { + this.showTick = true; + availableHeight -= this.axisConfig.tickLength; + } + if (this.axisConfig.showTitle && this.title) { + const spaceRequired = this.textDimensionCalculator.getMaxDimension( + [this.title], + this.axisConfig.titleFontSize + ); + const heightRequired = spaceRequired.height + this.axisConfig.titlePadding * 2; + this.titleTextHeight = spaceRequired.height; + if (heightRequired <= availableHeight) { + availableHeight -= heightRequired; + this.showTitle = true; + } + } + this.boundingRect.width = availableSpace.width; + this.boundingRect.height = availableSpace.height - availableHeight; + } + calculateSpaceIfDrawnVertical(availableSpace) { + let availableWidth = availableSpace.width; + if (this.axisConfig.showAxisLine && availableWidth > this.axisConfig.axisLineWidth) { + availableWidth -= this.axisConfig.axisLineWidth; + this.showAxisLine = true; + } + if (this.axisConfig.showLabel) { + const spaceRequired = this.getLabelDimension(); + const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.height; + this.outerPadding = Math.min(spaceRequired.height / 2, maxPadding); + const widthRequired = spaceRequired.width + this.axisConfig.labelPadding * 2; + if (widthRequired <= availableWidth) { + availableWidth -= widthRequired; + this.showLabel = true; + } + } + if (this.axisConfig.showTick && availableWidth >= this.axisConfig.tickLength) { + this.showTick = true; + availableWidth -= this.axisConfig.tickLength; + } + if (this.axisConfig.showTitle && this.title) { + const spaceRequired = this.textDimensionCalculator.getMaxDimension( + [this.title], + this.axisConfig.titleFontSize + ); + const widthRequired = spaceRequired.height + this.axisConfig.titlePadding * 2; + this.titleTextHeight = spaceRequired.height; + if (widthRequired <= availableWidth) { + availableWidth -= widthRequired; + this.showTitle = true; + } + } + this.boundingRect.width = availableSpace.width - availableWidth; + this.boundingRect.height = availableSpace.height; + } + calculateSpace(availableSpace) { + if (this.axisPosition === "left" || this.axisPosition === "right") { + this.calculateSpaceIfDrawnVertical(availableSpace); + } else { + this.calculateSpaceIfDrawnHorizontally(availableSpace); + } + this.recalculateScale(); + return { + width: this.boundingRect.width, + height: this.boundingRect.height + }; + } + setBoundingBoxXY(point) { + this.boundingRect.x = point.x; + this.boundingRect.y = point.y; + } + getDrawableElementsForLeftAxis() { + const drawableElement = []; + if (this.showAxisLine) { + const x = this.boundingRect.x + this.boundingRect.width - this.axisConfig.axisLineWidth / 2; + drawableElement.push({ + type: "path", + groupTexts: ["left-axis", "axisl-line"], + data: [ + { + path: `M ${x},${this.boundingRect.y} L ${x},${this.boundingRect.y + this.boundingRect.height} `, + strokeFill: this.axisThemeConfig.axisLineColor, + strokeWidth: this.axisConfig.axisLineWidth + } + ] + }); + } + if (this.showLabel) { + drawableElement.push({ + type: "text", + groupTexts: ["left-axis", "label"], + data: this.getTickValues().map((tick) => ({ + text: tick.toString(), + x: this.boundingRect.x + this.boundingRect.width - (this.showLabel ? this.axisConfig.labelPadding : 0) - (this.showTick ? this.axisConfig.tickLength : 0) - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0), + y: this.getScaleValue(tick), + fill: this.axisThemeConfig.labelColor, + fontSize: this.axisConfig.labelFontSize, + rotation: 0, + verticalPos: "middle", + horizontalPos: "right" + })) + }); + } + if (this.showTick) { + const x = this.boundingRect.x + this.boundingRect.width - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0); + drawableElement.push({ + type: "path", + groupTexts: ["left-axis", "ticks"], + data: this.getTickValues().map((tick) => ({ + path: `M ${x},${this.getScaleValue(tick)} L ${x - this.axisConfig.tickLength},${this.getScaleValue(tick)}`, + strokeFill: this.axisThemeConfig.tickColor, + strokeWidth: this.axisConfig.tickWidth + })) + }); + } + if (this.showTitle) { + drawableElement.push({ + type: "text", + groupTexts: ["left-axis", "title"], + data: [ + { + text: this.title, + x: this.boundingRect.x + this.axisConfig.titlePadding, + y: this.boundingRect.y + this.boundingRect.height / 2, + fill: this.axisThemeConfig.titleColor, + fontSize: this.axisConfig.titleFontSize, + rotation: 270, + verticalPos: "top", + horizontalPos: "center" + } + ] + }); + } + return drawableElement; + } + getDrawableElementsForBottomAxis() { + const drawableElement = []; + if (this.showAxisLine) { + const y = this.boundingRect.y + this.axisConfig.axisLineWidth / 2; + drawableElement.push({ + type: "path", + groupTexts: ["bottom-axis", "axis-line"], + data: [ + { + path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`, + strokeFill: this.axisThemeConfig.axisLineColor, + strokeWidth: this.axisConfig.axisLineWidth + } + ] + }); + } + if (this.showLabel) { + drawableElement.push({ + type: "text", + groupTexts: ["bottom-axis", "label"], + data: this.getTickValues().map((tick) => ({ + text: tick.toString(), + x: this.getScaleValue(tick), + y: this.boundingRect.y + this.axisConfig.labelPadding + (this.showTick ? this.axisConfig.tickLength : 0) + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0), + fill: this.axisThemeConfig.labelColor, + fontSize: this.axisConfig.labelFontSize, + rotation: 0, + verticalPos: "top", + horizontalPos: "center" + })) + }); + } + if (this.showTick) { + const y = this.boundingRect.y + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0); + drawableElement.push({ + type: "path", + groupTexts: ["bottom-axis", "ticks"], + data: this.getTickValues().map((tick) => ({ + path: `M ${this.getScaleValue(tick)},${y} L ${this.getScaleValue(tick)},${y + this.axisConfig.tickLength}`, + strokeFill: this.axisThemeConfig.tickColor, + strokeWidth: this.axisConfig.tickWidth + })) + }); + } + if (this.showTitle) { + drawableElement.push({ + type: "text", + groupTexts: ["bottom-axis", "title"], + data: [ + { + text: this.title, + x: this.range[0] + (this.range[1] - this.range[0]) / 2, + y: this.boundingRect.y + this.boundingRect.height - this.axisConfig.titlePadding - this.titleTextHeight, + fill: this.axisThemeConfig.titleColor, + fontSize: this.axisConfig.titleFontSize, + rotation: 0, + verticalPos: "top", + horizontalPos: "center" + } + ] + }); + } + return drawableElement; + } + getDrawableElementsForTopAxis() { + const drawableElement = []; + if (this.showAxisLine) { + const y = this.boundingRect.y + this.boundingRect.height - this.axisConfig.axisLineWidth / 2; + drawableElement.push({ + type: "path", + groupTexts: ["top-axis", "axis-line"], + data: [ + { + path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`, + strokeFill: this.axisThemeConfig.axisLineColor, + strokeWidth: this.axisConfig.axisLineWidth + } + ] + }); + } + if (this.showLabel) { + drawableElement.push({ + type: "text", + groupTexts: ["top-axis", "label"], + data: this.getTickValues().map((tick) => ({ + text: tick.toString(), + x: this.getScaleValue(tick), + y: this.boundingRect.y + (this.showTitle ? this.titleTextHeight + this.axisConfig.titlePadding * 2 : 0) + this.axisConfig.labelPadding, + fill: this.axisThemeConfig.labelColor, + fontSize: this.axisConfig.labelFontSize, + rotation: 0, + verticalPos: "top", + horizontalPos: "center" + })) + }); + } + if (this.showTick) { + const y = this.boundingRect.y; + drawableElement.push({ + type: "path", + groupTexts: ["top-axis", "ticks"], + data: this.getTickValues().map((tick) => ({ + path: `M ${this.getScaleValue(tick)},${y + this.boundingRect.height - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)} L ${this.getScaleValue(tick)},${y + this.boundingRect.height - this.axisConfig.tickLength - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)}`, + strokeFill: this.axisThemeConfig.tickColor, + strokeWidth: this.axisConfig.tickWidth + })) + }); + } + if (this.showTitle) { + drawableElement.push({ + type: "text", + groupTexts: ["top-axis", "title"], + data: [ + { + text: this.title, + x: this.boundingRect.x + this.boundingRect.width / 2, + y: this.boundingRect.y + this.axisConfig.titlePadding, + fill: this.axisThemeConfig.titleColor, + fontSize: this.axisConfig.titleFontSize, + rotation: 0, + verticalPos: "top", + horizontalPos: "center" + } + ] + }); + } + return drawableElement; + } + getDrawableElements() { + if (this.axisPosition === "left") { + return this.getDrawableElementsForLeftAxis(); + } + if (this.axisPosition === "right") { + throw Error("Drawing of right axis is not implemented"); + } + if (this.axisPosition === "bottom") { + return this.getDrawableElementsForBottomAxis(); + } + if (this.axisPosition === "top") { + return this.getDrawableElementsForTopAxis(); + } + return []; + } +} +class BandAxis extends BaseAxis { + constructor(axisConfig, axisThemeConfig, categories, title, textDimensionCalculator) { + super(axisConfig, title, textDimensionCalculator, axisThemeConfig); + this.categories = categories; + this.scale = scaleBand().domain(this.categories).range(this.getRange()); + } + setRange(range) { + super.setRange(range); + } + recalculateScale() { + this.scale = scaleBand().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(0.5); + log.trace("BandAxis axis final categories, range: ", this.categories, this.getRange()); + } + getTickValues() { + return this.categories; + } + getScaleValue(value) { + return this.scale(value) || this.getRange()[0]; + } +} +class LinearAxis extends BaseAxis { + constructor(axisConfig, axisThemeConfig, domain, title, textDimensionCalculator) { + super(axisConfig, title, textDimensionCalculator, axisThemeConfig); + this.domain = domain; + this.scale = scaleLinear().domain(this.domain).range(this.getRange()); + } + getTickValues() { + return this.scale.ticks(); + } + recalculateScale() { + const domain = [...this.domain]; + if (this.axisPosition === "left") { + domain.reverse(); + } + this.scale = scaleLinear().domain(domain).range(this.getRange()); + } + getScaleValue(value) { + return this.scale(value); + } +} +function getAxis(data, axisConfig, axisThemeConfig, tmpSVGGroup2) { + const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2); + if (isBandAxisData(data)) { + return new BandAxis( + axisConfig, + axisThemeConfig, + data.categories, + data.title, + textDimensionCalculator + ); + } + return new LinearAxis( + axisConfig, + axisThemeConfig, + [data.min, data.max], + data.title, + textDimensionCalculator + ); +} +class ChartTitle { + constructor(textDimensionCalculator, chartConfig, chartData, chartThemeConfig) { + this.textDimensionCalculator = textDimensionCalculator; + this.chartConfig = chartConfig; + this.chartData = chartData; + this.chartThemeConfig = chartThemeConfig; + this.boundingRect = { + x: 0, + y: 0, + width: 0, + height: 0 + }; + this.showChartTitle = false; + } + setBoundingBoxXY(point) { + this.boundingRect.x = point.x; + this.boundingRect.y = point.y; + } + calculateSpace(availableSpace) { + const titleDimension = this.textDimensionCalculator.getMaxDimension( + [this.chartData.title], + this.chartConfig.titleFontSize + ); + const widthRequired = Math.max(titleDimension.width, availableSpace.width); + const heightRequired = titleDimension.height + 2 * this.chartConfig.titlePadding; + if (titleDimension.width <= widthRequired && titleDimension.height <= heightRequired && this.chartConfig.showTitle && this.chartData.title) { + this.boundingRect.width = widthRequired; + this.boundingRect.height = heightRequired; + this.showChartTitle = true; + } + return { + width: this.boundingRect.width, + height: this.boundingRect.height + }; + } + getDrawableElements() { + const drawableElem = []; + if (this.showChartTitle) { + drawableElem.push({ + groupTexts: ["chart-title"], + type: "text", + data: [ + { + fontSize: this.chartConfig.titleFontSize, + text: this.chartData.title, + verticalPos: "middle", + horizontalPos: "center", + x: this.boundingRect.x + this.boundingRect.width / 2, + y: this.boundingRect.y + this.boundingRect.height / 2, + fill: this.chartThemeConfig.titleColor, + rotation: 0 + } + ] + }); + } + return drawableElem; + } +} +function getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) { + const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2); + return new ChartTitle(textDimensionCalculator, chartConfig, chartData, chartThemeConfig); +} +class LinePlot { + constructor(plotData, xAxis, yAxis, orientation, plotIndex2) { + this.plotData = plotData; + this.xAxis = xAxis; + this.yAxis = yAxis; + this.orientation = orientation; + this.plotIndex = plotIndex2; + } + getDrawableElement() { + const finalData = this.plotData.data.map((d) => [ + this.xAxis.getScaleValue(d[0]), + this.yAxis.getScaleValue(d[1]) + ]); + let path; + if (this.orientation === "horizontal") { + path = line().y((d) => d[0]).x((d) => d[1])(finalData); + } else { + path = line().x((d) => d[0]).y((d) => d[1])(finalData); + } + if (!path) { + return []; + } + return [ + { + groupTexts: ["plot", `line-plot-${this.plotIndex}`], + type: "path", + data: [ + { + path, + strokeFill: this.plotData.strokeFill, + strokeWidth: this.plotData.strokeWidth + } + ] + } + ]; + } +} +class BarPlot { + constructor(barData, boundingRect, xAxis, yAxis, orientation, plotIndex2) { + this.barData = barData; + this.boundingRect = boundingRect; + this.xAxis = xAxis; + this.yAxis = yAxis; + this.orientation = orientation; + this.plotIndex = plotIndex2; + } + getDrawableElement() { + const finalData = this.barData.data.map((d) => [ + this.xAxis.getScaleValue(d[0]), + this.yAxis.getScaleValue(d[1]) + ]); + const barPaddingPercent = 0.05; + const barWidth = Math.min(this.xAxis.getAxisOuterPadding() * 2, this.xAxis.getTickDistance()) * (1 - barPaddingPercent); + const barWidthHalf = barWidth / 2; + if (this.orientation === "horizontal") { + return [ + { + groupTexts: ["plot", `bar-plot-${this.plotIndex}`], + type: "rect", + data: finalData.map((data) => ({ + x: this.boundingRect.x, + y: data[0] - barWidthHalf, + height: barWidth, + width: data[1] - this.boundingRect.x, + fill: this.barData.fill, + strokeWidth: 0, + strokeFill: this.barData.fill + })) + } + ]; + } + return [ + { + groupTexts: ["plot", `bar-plot-${this.plotIndex}`], + type: "rect", + data: finalData.map((data) => ({ + x: data[0] - barWidthHalf, + y: data[1], + width: barWidth, + height: this.boundingRect.y + this.boundingRect.height - data[1], + fill: this.barData.fill, + strokeWidth: 0, + strokeFill: this.barData.fill + })) + } + ]; + } +} +class BasePlot { + constructor(chartConfig, chartData, chartThemeConfig) { + this.chartConfig = chartConfig; + this.chartData = chartData; + this.chartThemeConfig = chartThemeConfig; + this.boundingRect = { + x: 0, + y: 0, + width: 0, + height: 0 + }; + } + setAxes(xAxis, yAxis) { + this.xAxis = xAxis; + this.yAxis = yAxis; + } + setBoundingBoxXY(point) { + this.boundingRect.x = point.x; + this.boundingRect.y = point.y; + } + calculateSpace(availableSpace) { + this.boundingRect.width = availableSpace.width; + this.boundingRect.height = availableSpace.height; + return { + width: this.boundingRect.width, + height: this.boundingRect.height + }; + } + getDrawableElements() { + if (!(this.xAxis && this.yAxis)) { + throw Error("Axes must be passed to render Plots"); + } + const drawableElem = []; + for (const [i, plot] of this.chartData.plots.entries()) { + switch (plot.type) { + case "line": + { + const linePlot = new LinePlot( + plot, + this.xAxis, + this.yAxis, + this.chartConfig.chartOrientation, + i + ); + drawableElem.push(...linePlot.getDrawableElement()); + } + break; + case "bar": + { + const barPlot = new BarPlot( + plot, + this.boundingRect, + this.xAxis, + this.yAxis, + this.chartConfig.chartOrientation, + i + ); + drawableElem.push(...barPlot.getDrawableElement()); + } + break; + } + } + return drawableElem; + } +} +function getPlotComponent(chartConfig, chartData, chartThemeConfig) { + return new BasePlot(chartConfig, chartData, chartThemeConfig); +} +class Orchestrator { + constructor(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) { + this.chartConfig = chartConfig; + this.chartData = chartData; + this.componentStore = { + title: getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2), + plot: getPlotComponent(chartConfig, chartData, chartThemeConfig), + xAxis: getAxis( + chartData.xAxis, + chartConfig.xAxis, + { + titleColor: chartThemeConfig.xAxisTitleColor, + labelColor: chartThemeConfig.xAxisLabelColor, + tickColor: chartThemeConfig.xAxisTickColor, + axisLineColor: chartThemeConfig.xAxisLineColor + }, + tmpSVGGroup2 + ), + yAxis: getAxis( + chartData.yAxis, + chartConfig.yAxis, + { + titleColor: chartThemeConfig.yAxisTitleColor, + labelColor: chartThemeConfig.yAxisLabelColor, + tickColor: chartThemeConfig.yAxisTickColor, + axisLineColor: chartThemeConfig.yAxisLineColor + }, + tmpSVGGroup2 + ) + }; + } + calculateVerticalSpace() { + let availableWidth = this.chartConfig.width; + let availableHeight = this.chartConfig.height; + let plotX = 0; + let plotY = 0; + let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100); + let chartHeight = Math.floor( + availableHeight * this.chartConfig.plotReservedSpacePercent / 100 + ); + let spaceUsed = this.componentStore.plot.calculateSpace({ + width: chartWidth, + height: chartHeight + }); + availableWidth -= spaceUsed.width; + availableHeight -= spaceUsed.height; + spaceUsed = this.componentStore.title.calculateSpace({ + width: this.chartConfig.width, + height: availableHeight + }); + plotY = spaceUsed.height; + availableHeight -= spaceUsed.height; + this.componentStore.xAxis.setAxisPosition("bottom"); + spaceUsed = this.componentStore.xAxis.calculateSpace({ + width: availableWidth, + height: availableHeight + }); + availableHeight -= spaceUsed.height; + this.componentStore.yAxis.setAxisPosition("left"); + spaceUsed = this.componentStore.yAxis.calculateSpace({ + width: availableWidth, + height: availableHeight + }); + plotX = spaceUsed.width; + availableWidth -= spaceUsed.width; + if (availableWidth > 0) { + chartWidth += availableWidth; + availableWidth = 0; + } + if (availableHeight > 0) { + chartHeight += availableHeight; + availableHeight = 0; + } + this.componentStore.plot.calculateSpace({ + width: chartWidth, + height: chartHeight + }); + this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY }); + this.componentStore.xAxis.setRange([plotX, plotX + chartWidth]); + this.componentStore.xAxis.setBoundingBoxXY({ x: plotX, y: plotY + chartHeight }); + this.componentStore.yAxis.setRange([plotY, plotY + chartHeight]); + this.componentStore.yAxis.setBoundingBoxXY({ x: 0, y: plotY }); + if (this.chartData.plots.some((p) => isBarPlot(p))) { + this.componentStore.xAxis.recalculateOuterPaddingToDrawBar(); + } + } + calculateHorizontalSpace() { + let availableWidth = this.chartConfig.width; + let availableHeight = this.chartConfig.height; + let titleYEnd = 0; + let plotX = 0; + let plotY = 0; + let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100); + let chartHeight = Math.floor( + availableHeight * this.chartConfig.plotReservedSpacePercent / 100 + ); + let spaceUsed = this.componentStore.plot.calculateSpace({ + width: chartWidth, + height: chartHeight + }); + availableWidth -= spaceUsed.width; + availableHeight -= spaceUsed.height; + spaceUsed = this.componentStore.title.calculateSpace({ + width: this.chartConfig.width, + height: availableHeight + }); + titleYEnd = spaceUsed.height; + availableHeight -= spaceUsed.height; + this.componentStore.xAxis.setAxisPosition("left"); + spaceUsed = this.componentStore.xAxis.calculateSpace({ + width: availableWidth, + height: availableHeight + }); + availableWidth -= spaceUsed.width; + plotX = spaceUsed.width; + this.componentStore.yAxis.setAxisPosition("top"); + spaceUsed = this.componentStore.yAxis.calculateSpace({ + width: availableWidth, + height: availableHeight + }); + availableHeight -= spaceUsed.height; + plotY = titleYEnd + spaceUsed.height; + if (availableWidth > 0) { + chartWidth += availableWidth; + availableWidth = 0; + } + if (availableHeight > 0) { + chartHeight += availableHeight; + availableHeight = 0; + } + this.componentStore.plot.calculateSpace({ + width: chartWidth, + height: chartHeight + }); + this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY }); + this.componentStore.yAxis.setRange([plotX, plotX + chartWidth]); + this.componentStore.yAxis.setBoundingBoxXY({ x: plotX, y: titleYEnd }); + this.componentStore.xAxis.setRange([plotY, plotY + chartHeight]); + this.componentStore.xAxis.setBoundingBoxXY({ x: 0, y: plotY }); + if (this.chartData.plots.some((p) => isBarPlot(p))) { + this.componentStore.xAxis.recalculateOuterPaddingToDrawBar(); + } + } + calculateSpace() { + if (this.chartConfig.chartOrientation === "horizontal") { + this.calculateHorizontalSpace(); + } else { + this.calculateVerticalSpace(); + } + } + getDrawableElement() { + this.calculateSpace(); + const drawableElem = []; + this.componentStore.plot.setAxes(this.componentStore.xAxis, this.componentStore.yAxis); + for (const component of Object.values(this.componentStore)) { + drawableElem.push(...component.getDrawableElements()); + } + return drawableElem; + } +} +class XYChartBuilder { + static build(config, chartData, chartThemeConfig, tmpSVGGroup2) { + const orchestrator = new Orchestrator(config, chartData, chartThemeConfig, tmpSVGGroup2); + return orchestrator.getDrawableElement(); + } +} +let plotIndex = 0; +let tmpSVGGroup; +let xyChartConfig = getChartDefaultConfig(); +let xyChartThemeConfig = getChartDefaultThemeConfig(); +let xyChartData = getChartDefaultData(); +let plotColorPalette = xyChartThemeConfig.plotColorPalette.split(",").map((color) => color.trim()); +let hasSetXAxis = false; +let hasSetYAxis = false; +function getChartDefaultThemeConfig() { + const defaultThemeVariables = getThemeVariables(); + const config = getConfig(); + return cleanAndMerge(defaultThemeVariables.xyChart, config.themeVariables.xyChart); +} +function getChartDefaultConfig() { + const config = getConfig(); + return cleanAndMerge( + defaultConfig.xyChart, + config.xyChart + ); +} +function getChartDefaultData() { + return { + yAxis: { + type: "linear", + title: "", + min: Infinity, + max: -Infinity + }, + xAxis: { + type: "band", + title: "", + categories: [] + }, + title: "", + plots: [] + }; +} +function textSanitizer(text) { + const config = getConfig(); + return sanitizeText(text.trim(), config); +} +function setTmpSVGG(SVGG) { + tmpSVGGroup = SVGG; +} +function setOrientation(orientation) { + if (orientation === "horizontal") { + xyChartConfig.chartOrientation = "horizontal"; + } else { + xyChartConfig.chartOrientation = "vertical"; + } +} +function setXAxisTitle(title) { + xyChartData.xAxis.title = textSanitizer(title.text); +} +function setXAxisRangeData(min, max) { + xyChartData.xAxis = { type: "linear", title: xyChartData.xAxis.title, min, max }; + hasSetXAxis = true; +} +function setXAxisBand(categories) { + xyChartData.xAxis = { + type: "band", + title: xyChartData.xAxis.title, + categories: categories.map((c) => textSanitizer(c.text)) + }; + hasSetXAxis = true; +} +function setYAxisTitle(title) { + xyChartData.yAxis.title = textSanitizer(title.text); +} +function setYAxisRangeData(min, max) { + xyChartData.yAxis = { type: "linear", title: xyChartData.yAxis.title, min, max }; + hasSetYAxis = true; +} +function setYAxisRangeFromPlotData(data) { + const minValue = Math.min(...data); + const maxValue = Math.max(...data); + const prevMinValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.min : Infinity; + const prevMaxValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.max : -Infinity; + xyChartData.yAxis = { + type: "linear", + title: xyChartData.yAxis.title, + min: Math.min(prevMinValue, minValue), + max: Math.max(prevMaxValue, maxValue) + }; +} +function transformDataWithoutCategory(data) { + let retData = []; + if (data.length === 0) { + return retData; + } + if (!hasSetXAxis) { + const prevMinValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.min : Infinity; + const prevMaxValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.max : -Infinity; + setXAxisRangeData(Math.min(prevMinValue, 1), Math.max(prevMaxValue, data.length)); + } + if (!hasSetYAxis) { + setYAxisRangeFromPlotData(data); + } + if (isBandAxisData(xyChartData.xAxis)) { + retData = xyChartData.xAxis.categories.map((c, i) => [c, data[i]]); + } + if (isLinearAxisData(xyChartData.xAxis)) { + const min = xyChartData.xAxis.min; + const max = xyChartData.xAxis.max; + const step = (max - min + 1) / data.length; + const categories = []; + for (let i = min; i <= max; i += step) { + categories.push(`${i}`); + } + retData = categories.map((c, i) => [c, data[i]]); + } + return retData; +} +function getPlotColorFromPalette(plotIndex2) { + return plotColorPalette[plotIndex2 === 0 ? 0 : plotIndex2 % plotColorPalette.length]; +} +function setLineData(title, data) { + const plotData = transformDataWithoutCategory(data); + xyChartData.plots.push({ + type: "line", + strokeFill: getPlotColorFromPalette(plotIndex), + strokeWidth: 2, + data: plotData + }); + plotIndex++; +} +function setBarData(title, data) { + const plotData = transformDataWithoutCategory(data); + xyChartData.plots.push({ + type: "bar", + fill: getPlotColorFromPalette(plotIndex), + data: plotData + }); + plotIndex++; +} +function getDrawableElem() { + if (xyChartData.plots.length === 0) { + throw Error("No Plot to render, please provide a plot with some data"); + } + xyChartData.title = getDiagramTitle(); + return XYChartBuilder.build(xyChartConfig, xyChartData, xyChartThemeConfig, tmpSVGGroup); +} +function getChartThemeConfig() { + return xyChartThemeConfig; +} +function getChartConfig() { + return xyChartConfig; +} +const clear = function() { + clear$1(); + plotIndex = 0; + xyChartConfig = getChartDefaultConfig(); + xyChartData = getChartDefaultData(); + xyChartThemeConfig = getChartDefaultThemeConfig(); + plotColorPalette = xyChartThemeConfig.plotColorPalette.split(",").map((color) => color.trim()); + hasSetXAxis = false; + hasSetYAxis = false; +}; +const db = { + getDrawableElem, + clear, + setAccTitle, + getAccTitle, + setDiagramTitle, + getDiagramTitle, + getAccDescription, + setAccDescription, + setOrientation, + setXAxisTitle, + setXAxisRangeData, + setXAxisBand, + setYAxisTitle, + setYAxisRangeData, + setLineData, + setBarData, + setTmpSVGG, + getChartThemeConfig, + getChartConfig +}; +const draw = (txt, id, _version, diagObj) => { + const db2 = diagObj.db; + const themeConfig = db2.getChartThemeConfig(); + const chartConfig = db2.getChartConfig(); + function getDominantBaseLine(horizontalPos) { + return horizontalPos === "top" ? "text-before-edge" : "middle"; + } + function getTextAnchor(verticalPos) { + return verticalPos === "left" ? "start" : verticalPos === "right" ? "end" : "middle"; + } + function getTextTransformation(data) { + return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`; + } + log.debug("Rendering xychart chart\n" + txt); + const svg = selectSvgElement(id); + const group = svg.append("g").attr("class", "main"); + const background = group.append("rect").attr("width", chartConfig.width).attr("height", chartConfig.height).attr("class", "background"); + configureSvgSize(svg, chartConfig.height, chartConfig.width, true); + svg.attr("viewBox", `0 0 ${chartConfig.width} ${chartConfig.height}`); + background.attr("fill", themeConfig.backgroundColor); + db2.setTmpSVGG(svg.append("g").attr("class", "mermaid-tmp-group")); + const shapes = db2.getDrawableElem(); + const groups = {}; + function getGroup(gList) { + let elem = group; + let prefix = ""; + for (const [i] of gList.entries()) { + let parent = group; + if (i > 0 && groups[prefix]) { + parent = groups[prefix]; + } + prefix += gList[i]; + elem = groups[prefix]; + if (!elem) { + elem = groups[prefix] = parent.append("g").attr("class", gList[i]); + } + } + return elem; + } + for (const shape of shapes) { + if (shape.data.length === 0) { + continue; + } + const shapeGroup = getGroup(shape.groupTexts); + switch (shape.type) { + case "rect": + shapeGroup.selectAll("rect").data(shape.data).enter().append("rect").attr("x", (data) => data.x).attr("y", (data) => data.y).attr("width", (data) => data.width).attr("height", (data) => data.height).attr("fill", (data) => data.fill).attr("stroke", (data) => data.strokeFill).attr("stroke-width", (data) => data.strokeWidth); + break; + case "text": + shapeGroup.selectAll("text").data(shape.data).enter().append("text").attr("x", 0).attr("y", 0).attr("fill", (data) => data.fill).attr("font-size", (data) => data.fontSize).attr("dominant-baseline", (data) => getDominantBaseLine(data.verticalPos)).attr("text-anchor", (data) => getTextAnchor(data.horizontalPos)).attr("transform", (data) => getTextTransformation(data)).text((data) => data.text); + break; + case "path": + shapeGroup.selectAll("path").data(shape.data).enter().append("path").attr("d", (data) => data.path).attr("fill", (data) => data.fill ? data.fill : "none").attr("stroke", (data) => data.strokeFill).attr("stroke-width", (data) => data.strokeWidth); + break; + } + } +}; +const renderer = { + draw +}; +const diagram = { + parser: parser$1, + db, + renderer +}; +export { + diagram +}; diff --git a/config.toml b/config.toml index 38161e351..952e19a8b 100644 --- a/config.toml +++ b/config.toml @@ -2,4 +2,4 @@ [module.hugoVersion] extended = true min = "0.87.0" -max = "0.125.7" +max = "0.126.1" diff --git a/config/_default/languages.en.toml b/config/_default/languages.en.toml index 66252d2f8..2b196141a 100644 --- a/config/_default/languages.en.toml +++ b/config/_default/languages.en.toml @@ -65,4 +65,5 @@ title = "Blowfish" # { whatsapp = "https://wa.me/phone-number" }, # { youtube = "https://youtube.com/username" }, # { ko-fi = "https://ko-fi.com/username" }, +# { codeberg = "https://codeberg.org/username"}, # ] diff --git a/data/codebergColors.json b/data/codebergColors.json new file mode 100644 index 000000000..7f272e7af --- /dev/null +++ b/data/codebergColors.json @@ -0,0 +1,533 @@ +{ + "1C Enterprise": "#814CCC", + "4D": "#004289", + "ABAP": "#E8274B", + "ABAP CDS": "#555e25", + "ActionScript": "#882B0F", + "Ada": "#02f88c", + "Adobe Font Metrics": "#fa0f00", + "Agda": "#315665", + "AGS Script": "#B9D9FF", + "AIDL": "#34EB6B", + "AL": "#3AA2B5", + "Alloy": "#64C800", + "Alpine Abuild": "#0D597F", + "Altium Designer": "#A89663", + "AMPL": "#E6EFBB", + "AngelScript": "#C7D7DC", + "Ant Build System": "#A9157E", + "ANTLR": "#9DC3FF", + "ApacheConf": "#d12127", + "Apex": "#1797c0", + "API Blueprint": "#2ACCA8", + "APL": "#5A8164", + "Apollo Guidance Computer": "#0B3D91", + "AppleScript": "#101F1F", + "Arc": "#aa2afe", + "AsciiDoc": "#73a0c5", + "ASL": null, + "ASP.NET": "#9400ff", + "AspectJ": "#a957b0", + "Assembly": "#6E4C13", + "Astro": "#ff5a03", + "Asymptote": "#ff0000", + "ATS": "#1ac620", + "Augeas": "#9CC134", + "AutoHotkey": "#6594b9", + "AutoIt": "#1C3552", + "Avro IDL": "#0040FF", + "Awk": "#c30e9b", + "Ballerina": "#FF5000", + "BASIC": "#ff0000", + "Batchfile": "#C1F12E", + "Beef": "#a52f4e", + "Befunge": null, + "BibTeX": "#778899", + "Bicep": "#519aba", + "Bison": "#6A463F", + "BitBake": "#00bce4", + "Blade": "#f7523f", + "BlitzBasic": "#00FFAE", + "BlitzMax": "#cd6400", + "Bluespec": "#12223c", + "Boo": "#d4bec1", + "Boogie": "#c80fa0", + "Brainfuck": "#2F2530", + "Brightscript": "#662D91", + "Browserslist": "#ffd539", + "C": "#555555", + "C#": "#178600", + "C++": "#f34b7d", + "C2hs Haskell": null, + "Cabal Config": "#483465", + "Cap'n Proto": "#c42727", + "CartoCSS": null, + "Ceylon": "#dfa535", + "Chapel": "#8dc63f", + "Charity": null, + "ChucK": "#3f8000", + "Cirru": "#ccccff", + "Clarion": "#db901e", + "Classic ASP": "#6a40fd", + "Clean": "#3F85AF", + "Click": "#E4E6F3", + "CLIPS": "#00A300", + "Clojure": "#db5855", + "Closure Templates": "#0d948f", + "Cloud Firestore Security Rules": "#FFA000", + "CMake": "#DA3434", + "COBOL": null, + "CodeQL": "#140f46", + "CoffeeScript": "#244776", + "ColdFusion": "#ed2cd6", + "ColdFusion CFC": "#ed2cd6", + "COLLADA": "#F1A42B", + "Common Lisp": "#3fb68b", + "Common Workflow Language": "#B5314C", + "Component Pascal": "#B0CE4E", + "Cool": null, + "Coq": "#d0b68c", + "Crystal": "#000100", + "CSON": "#244776", + "Csound": "#1a1a1a", + "Csound Document": "#1a1a1a", + "Csound Score": "#1a1a1a", + "CSS": "#563d7c", + "CSV": "#237346", + "Cuda": "#3A4E3A", + "CUE": "#5886E1", + "CWeb": "#00007a", + "Cycript": null, + "Cython": "#fedf5b", + "D": "#ba595e", + "Dafny": "#FFEC25", + "Darcs Patch": "#8eff23", + "Dart": "#00B4AB", + "DataWeave": "#003a52", + "Dhall": "#dfafff", + "DIGITAL Command Language": null, + "DirectX 3D File": "#aace60", + "DM": "#447265", + "Dockerfile": "#384d54", + "Dogescript": "#cca760", + "DTrace": null, + "Dylan": "#6c616e", + "E": "#ccce35", + "Easybuild": "#069406", + "eC": "#913960", + "Ecere Projects": "#913960", + "ECL": "#8a1267", + "ECLiPSe": "#001d9d", + "EditorConfig": "#fff1f2", + "Eiffel": "#4d6977", + "EJS": "#a91e50", + "Elixir": "#6e4a7e", + "Elm": "#60B5CC", + "Emacs Lisp": "#c065db", + "EmberScript": "#FFF4F3", + "EQ": "#a78649", + "Erlang": "#B83998", + "F#": "#b845fc", + "F*": "#572e30", + "Factor": "#636746", + "Fancy": "#7b9db4", + "Fantom": "#14253c", + "Faust": "#c37240", + "Fennel": "#fff3d7", + "FIGlet Font": "#FFDDBB", + "Filebench WML": "#F6B900", + "Filterscript": null, + "fish": "#4aae47", + "Fluent": "#ffcc33", + "FLUX": "#88ccff", + "Forth": "#341708", + "Fortran": "#4d41b1", + "Fortran Free Form": "#4d41b1", + "FreeBasic": "#867db1", + "FreeMarker": "#0050b2", + "Frege": "#00cafe", + "Futhark": "#5f021f", + "G-code": "#D08CF2", + "Game Maker Language": "#71b417", + "GAML": "#FFC766", + "GAMS": "#f49a22", + "GAP": "#0000cc", + "GCC Machine Description": "#FFCFAB", + "GDB": null, + "GDScript": "#355570", + "GEDCOM": "#003058", + "Gemfile.lock": "#701516", + "Genie": "#fb855d", + "Genshi": "#951531", + "Gentoo Ebuild": "#9400ff", + "Gentoo Eclass": "#9400ff", + "Gerber Image": "#d20b00", + "Gherkin": "#5B2063", + "Git Attributes": "#F44D27", + "Git Config": "#F44D27", + "GLSL": "#5686a5", + "Glyph": "#c1ac7f", + "Gnuplot": "#f0a9f0", + "Go": "#00ADD8", + "Go Checksums": "#00ADD8", + "Go Module": "#00ADD8", + "Golo": "#88562A", + "Gosu": "#82937f", + "Grace": "#615f8b", + "Gradle": "#02303a", + "Grammatical Framework": "#ff0000", + "GraphQL": "#e10098", + "Graphviz (DOT)": "#2596be", + "Groovy": "#4298b8", + "Groovy Server Pages": "#4298b8", + "Hack": "#878787", + "Haml": "#ece2a9", + "Handlebars": "#f7931e", + "HAProxy": "#106da9", + "Harbour": "#0e60e3", + "Haskell": "#5e5086", + "Haxe": "#df7900", + "HCL": null, + "HiveQL": "#dce200", + "HLSL": "#aace60", + "HolyC": "#ffefaf", + "HTML": "#e34c26", + "HTML+ECR": "#2e1052", + "HTML+EEX": "#6e4a7e", + "HTML+ERB": "#701516", + "HTML+PHP": "#4f5d95", + "HTML+Razor": "#512be4", + "HTTP": "#005C9C", + "HXML": "#f68712", + "Hy": "#7790B2", + "HyPhy": null, + "IDL": "#a3522f", + "Idris": "#b30000", + "Ignore List": "#000000", + "IGOR Pro": "#0000cc", + "ImageJ Macro": "#99AAFF", + "Inform 7": null, + "INI": "#d1dbe0", + "Inno Setup": "#264b99", + "Io": "#a9188d", + "Ioke": "#078193", + "Isabelle": "#FEFE00", + "Isabelle ROOT": "#FEFE00", + "J": "#9EEDFF", + "JAR Manifest": "#b07219", + "Jasmin": "#d03600", + "Java": "#b07219", + "Java Properties": "#2A6277", + "Java Server Pages": "#2A6277", + "JavaScript": "#f1e05a", + "JavaScript+ERB": "#f1e05a", + "Jest Snapshot": "#15c213", + "JFlex": "#DBCA00", + "Jinja": "#a52a22", + "Jison": "#56b3cb", + "Jison Lex": "#56b3cb", + "Jolie": "#843179", + "jq": "#c7254e", + "JSON": "#292929", + "JSON with Comments": "#292929", + "JSON5": "#267CB9", + "JSONiq": "#40d47e", + "JSONLD": "#0c479c", + "Jsonnet": "#0064bd", + "Julia": "#a270ba", + "Jupyter Notebook": "#DA5B0B", + "Kaitai Struct": "#773b37", + "KakouneScript": "#6f8042", + "KiCad Layout": "#2f4aab", + "KiCad Legacy Layout": "#2f4aab", + "KiCad Schematic": "#2f4aab", + "Kotlin": "#A97BFF", + "KRL": "#28430A", + "LabVIEW": "#fede06", + "Lark": "#2980B9", + "Lasso": "#999999", + "Latte": "#f2a542", + "Lean": null, + "Less": "#1d365d", + "Lex": "#DBCA00", + "LFE": "#4C3023", + "LilyPond": "#9ccc7c", + "Limbo": null, + "Liquid": "#67b8de", + "Literate Agda": "#315665", + "Literate CoffeeScript": "#244776", + "Literate Haskell": "#5e5086", + "LiveScript": "#499886", + "LLVM": "#185619", + "Logos": null, + "Logtalk": "#295b9a", + "LOLCODE": "#cc9900", + "LookML": "#652B81", + "LoomScript": null, + "LSL": "#3d9970", + "Lua": "#000080", + "M": null, + "M4": null, + "M4Sugar": null, + "Macaulay2": "#d8ffff", + "Makefile": "#427819", + "Mako": "#7e858d", + "Markdown": "#083fa1", + "Marko": "#42bff2", + "Mask": "#f97732", + "Mathematica": "#dd1100", + "MATLAB": "#e16737", + "Max": "#c4a79c", + "MAXScript": "#00a6a6", + "mcfunction": "#E22837", + "Mercury": "#ff2b2b", + "Meson": "#007800", + "Metal": "#8f14e9", + "MiniD": null, + "Mirah": "#c7a938", + "mIRC Script": "#3d57c3", + "MLIR": "#5EC8DB", + "Modelica": "#de1d31", + "Modula-2": "#10253f", + "Modula-3": "#223388", + "Module Management System": null, + "Monkey": null, + "Moocode": null, + "MoonScript": "#ff4585", + "Motorola 68K Assembly": "#005daa", + "MQL4": "#62A8D6", + "MQL5": "#4A76B8", + "MTML": "#b7e1f4", + "MUF": null, + "mupad": "#244963", + "Mustache": "#724b3b", + "Myghty": null, + "nanorc": "#2d004d", + "NASL": null, + "NCL": "#28431f", + "Nearley": "#990000", + "Nemerle": "#3d3c6e", + "nesC": "#94B0C7", + "NetLinx": "#0aa0ff", + "NetLinx+ERB": "#747faa", + "NetLogo": "#ff6375", + "NewLisp": "#87AED7", + "Nextflow": "#3ac486", + "Nginx": "#009639", + "Nim": "#ffc200", + "Nit": "#009917", + "Nix": "#7e7eff", + "NPM Config": "#cb3837", + "NSIS": null, + "Nu": "#c9df40", + "NumPy": "#9C8AF9", + "Nunjucks": "#3d8137", + "NWScript": "#111522", + "Objective-C": "#438eff", + "Objective-C++": "#6866fb", + "Objective-J": "#ff0c5a", + "ObjectScript": "#424893", + "OCaml": "#3be133", + "Odin": "#60AFFE", + "Omgrofl": "#cabbff", + "ooc": "#b0b77e", + "Opa": null, + "Opal": "#f7ede0", + "Open Policy Agent": "#7d9199", + "OpenCL": "#ed2e2d", + "OpenEdge ABL": "#5ce600", + "OpenQASM": "#AA70FF", + "OpenRC runscript": null, + "OpenSCAD": "#e5cd45", + "Org": "#77aa99", + "Ox": null, + "Oxygene": "#cdd0e3", + "Oz": "#fab738", + "P4": "#7055b5", + "Pan": "#cc0000", + "Papyrus": "#6600cc", + "Parrot": "#f3ca0a", + "Parrot Assembly": null, + "Parrot Internal Representation": null, + "Pascal": "#E3F171", + "Pawn": "#dbb284", + "PEG.js": "#234d6b", + "Pep8": "#C76F5B", + "Perl": "#0298c3", + "PHP": "#4F5D95", + "PicoLisp": "#6067af", + "PigLatin": "#fcd7de", + "Pike": "#005390", + "PLpgSQL": "#336790", + "PLSQL": "#dad8d8", + "PogoScript": "#d80074", + "Pony": null, + "PostCSS": "#dc3a0c", + "PostScript": "#da291c", + "POV-Ray SDL": "#6bac65", + "PowerBuilder": "#8f0f8d", + "PowerShell": "#012456", + "Prisma": "#0c344b", + "Processing": "#0096D8", + "Prolog": "#74283c", + "Propeller Spin": "#7fa2a7", + "Pug": "#a86454", + "Puppet": "#302B6D", + "PureBasic": "#5a6986", + "PureScript": "#1D222D", + "Python": "#3572A5", + "Python console": "#3572A5", + "Python traceback": "#3572A5", + "q": "#0040cd", + "Q#": "#fed659", + "QMake": null, + "QML": "#44a51c", + "Qt Script": "#00b841", + "Quake": "#882233", + "R": "#198CE7", + "Racket": "#3c5caa", + "Ragel": "#9d5200", + "Raku": "#0000fb", + "RAML": "#77d9fb", + "Rascal": "#fffaa0", + "RDoc": "#701516", + "REALbasic": null, + "Reason": "#ff5847", + "Rebol": "#358a5b", + "Record Jar": "#0673ba", + "Red": "#f50000", + "Redcode": null, + "Regular Expression": "#009a00", + "Ren'Py": "#ff7f7f", + "RenderScript": null, + "ReScript": "#ed5051", + "reStructuredText": "#141414", + "REXX": "#d90e09", + "Ring": "#2D54CB", + "Riot": "#A71E49", + "RMarkdown": "#198ce7", + "RobotFramework": "#00c0b5", + "Roff": "#ecdebe", + "Roff Manpage": "#ecdebe", + "Rouge": "#cc0088", + "RPC": null, + "Ruby": "#701516", + "RUNOFF": "#665a4e", + "Rust": "#dea584", + "Sage": null, + "SaltStack": "#646464", + "SAS": "#B34936", + "Sass": "#a53b70", + "Scala": "#c22d40", + "Scaml": "#bd181a", + "Scheme": "#1e4aec", + "Scilab": "#ca0f21", + "SCSS": "#c6538c", + "sed": "#64b970", + "Self": "#0579aa", + "ShaderLab": "#222c37", + "Shell": "#89e051", + "ShellSession": null, + "Shen": "#120F14", + "Sieve": null, + "Singularity": "#64E6AD", + "Slash": "#007eff", + "Slice": "#003fa2", + "Slim": "#2b2b2b", + "Smali": null, + "Smalltalk": "#596706", + "Smarty": "#f0c040", + "SmPL": "#c94949", + "SMT": null, + "Solidity": "#AA6746", + "SourcePawn": "#f69e1d", + "SPARQL": "#0C4597", + "SQF": "#3F3F3F", + "SQL": "#e38c00", + "SQLPL": "#e38c00", + "Squirrel": "#800000", + "SRecode Template": "#348a34", + "Stan": "#b2011d", + "Standard ML": "#dc566d", + "Starlark": "#76d275", + "Stata": "#1a5f91", + "StringTemplate": "#3fb34f", + "Stylus": "#ff6347", + "SubRip Text": "#9e0101", + "SugarSS": "#2fcc9f", + "SuperCollider": "#46390b", + "Svelte": "#ff3e00", + "SVG": "#ff9900", + "Swift": "#F05138", + "SWIG": null, + "SystemVerilog": "#DAE1C2", + "Tcl": "#e4cc98", + "Tcsh": null, + "Terra": "#00004c", + "TeX": "#3D6117", + "Textile": "#ffe7ac", + "TextMate Properties": "#df66e4", + "Thrift": "#D12127", + "TI Program": "#A0AA87", + "TLA": "#4b0079", + "TOML": "#9c4221", + "TSQL": "#e38c00", + "TSV": "#237346", + "TSX": "#2b7489", + "Turing": "#cf142b", + "Twig": "#c1d026", + "TXL": "#0178b8", + "TypeScript": "#2b7489", + "Unified Parallel C": "#4e3617", + "Unity3D Asset": "#222c37", + "Unix Assembly": null, + "Uno": "#9933cc", + "UnrealScript": "#a54c4d", + "UrWeb": "#ccccee", + "V": "#4f87c4", + "Vala": "#fbe5cd", + "Valve Data Format": "#f26025", + "VBA": "#867db1", + "VBScript": "#15dcdc", + "VCL": "#148AA8", + "Verilog": "#b2b7f8", + "VHDL": "#adb2cb", + "Vim Help File": "#199f4b", + "Vim Script": "#199f4b", + "Vim Snippet": "#199f4b", + "Visual Basic .NET": "#945db7", + "Volt": "#1F1F1F", + "Vue": "#41b883", + "wdl": "#42f1f4", + "Web Ontology Language": "#5b70bd", + "WebAssembly": "#04133b", + "WebIDL": null, + "Wikitext": "#fc5757", + "Windows Registry Entries": "#52d5ff", + "wisp": "#7582D1", + "Wollok": "#a23738", + "World of Warcraft Addon Data": "#f7e43f", + "X10": "#4B6BEF", + "xBase": "#403a40", + "XC": "#99DA07", + "XML": "#0060ac", + "XML Property List": "#0060ac", + "Xojo": "#81bd41", + "Xonsh": "#285EEF", + "XProc": null, + "XQuery": "#5232e7", + "XS": null, + "XSLT": "#EB8CEB", + "Xtend": "#24255d", + "Yacc": "#4B6C4B", + "YAML": "#cb171e", + "YARA": "#220000", + "YASnippet": "#32AB90", + "ZAP": "#0d665e", + "Zeek": null, + "ZenScript": "#00BCD1", + "Zephir": "#118f9e", + "Zig": "#ec915c", + "ZIL": "#dc75e5", + "Zimpl": "#d67711" +} \ No newline at end of file diff --git a/exampleSite/config/_default/params.toml b/exampleSite/config/_default/params.toml index abeda6d8f..2831a0983 100644 --- a/exampleSite/config/_default/params.toml +++ b/exampleSite/config/_default/params.toml @@ -117,13 +117,13 @@ smartTOCHideUnfocusedChildren = false cardViewScreenWidth = false [firebase] - apiKey = "AIzaSyB5tqlqDky77Vb4Tc4apiHV4hRZI18KGiY" - authDomain = "blowfish-21fff.firebaseapp.com" - projectId = "blowfish-21fff" - storageBucket = "blowfish-21fff.appspot.com" - messagingSenderId = "60108104191" - appId = "1:60108104191:web:039842ebe1370698b487ca" - measurementId = "G-PEDMYR1V0K" + #apiKey = "AIzaSyB5tqlqDky77Vb4Tc4apiHV4hRZI18KGiY" + #authDomain = "blowfish-21fff.firebaseapp.com" + #projectId = "blowfish-21fff" + #storageBucket = "blowfish-21fff.appspot.com" + #messagingSenderId = "60108104191" + #appId = "1:60108104191:web:039842ebe1370698b487ca" + #measurementId = "G-PEDMYR1V0K" [fathomAnalytics] # site = "ABC12345" diff --git a/exampleSite/content/docs/configuration/index.md b/exampleSite/content/docs/configuration/index.md index 15b0a2c9c..ec7a93673 100644 --- a/exampleSite/content/docs/configuration/index.md +++ b/exampleSite/content/docs/configuration/index.md @@ -74,6 +74,7 @@ The theme currently supports the following languages by default: | Spanish (Spain) | `es` | | Finnish | `fi` | | French | `fr` | +| Galician | `gl` | | Hebrew | `he` | | Croatian | `hr` | | Hungarian | `hu` | diff --git a/exampleSite/content/docs/shortcodes/index.it.md b/exampleSite/content/docs/shortcodes/index.it.md index 7ead8a520..14ab2b356 100644 --- a/exampleSite/content/docs/shortcodes/index.it.md +++ b/exampleSite/content/docs/shortcodes/index.it.md @@ -213,6 +213,25 @@ This shortcode is for importing code from external sources easily without copyin

+## Codeberg Card + +`codeberg` allows you to quickly link a Codeberg repository via the Codeberg API, providing real-time updates on stats such as stars and forks. + + +| Parameter | Description | +| --------- | ----------------------------------------------------- | +| `repo` | [String] codeberg repo in the format of `username/repo` | + + +**Example 1:** + +```md +{{}} +``` +{{< codeberg repo="forgejo/forgejo" >}} + +


+ ## Figure Blowfish includes a `figure` shortcode for adding images to content. The shortcode replaces the base Hugo functionality in order to provide additional performance benefits. @@ -421,10 +440,10 @@ The input is written in Markdown so you can format it however you please. **Example1 :** ```md -{{}} Super skill {{}} +{{}} *Super* skill {{}} ``` -{{< keyword >}} *Standalone* skill {{< /keyword >}} +{{< keyword >}} *Super* skill {{< /keyword >}} **Example2 :** @@ -745,8 +764,9 @@ consectetur adipiscing elit. breakLines=false loop=true */>}} -Lorem ipsum dolor sit amet, -consectetur adipiscing elit. +"Frankly, my dear, I don't give a damn." Gone with the Wind (1939) +"I'm gonna make him an offer he can't refuse." The Godfather (1972) +"Toto, I've a feeling we're not in Kansas anymore." The Wizard of Oz (1939) {{}} ``` diff --git a/exampleSite/content/docs/shortcodes/index.ja.md b/exampleSite/content/docs/shortcodes/index.ja.md index 7ead8a520..14ab2b356 100644 --- a/exampleSite/content/docs/shortcodes/index.ja.md +++ b/exampleSite/content/docs/shortcodes/index.ja.md @@ -213,6 +213,25 @@ This shortcode is for importing code from external sources easily without copyin

+## Codeberg Card + +`codeberg` allows you to quickly link a Codeberg repository via the Codeberg API, providing real-time updates on stats such as stars and forks. + + +| Parameter | Description | +| --------- | ----------------------------------------------------- | +| `repo` | [String] codeberg repo in the format of `username/repo` | + + +**Example 1:** + +```md +{{}} +``` +{{< codeberg repo="forgejo/forgejo" >}} + +


+ ## Figure Blowfish includes a `figure` shortcode for adding images to content. The shortcode replaces the base Hugo functionality in order to provide additional performance benefits. @@ -421,10 +440,10 @@ The input is written in Markdown so you can format it however you please. **Example1 :** ```md -{{}} Super skill {{}} +{{}} *Super* skill {{}} ``` -{{< keyword >}} *Standalone* skill {{< /keyword >}} +{{< keyword >}} *Super* skill {{< /keyword >}} **Example2 :** @@ -745,8 +764,9 @@ consectetur adipiscing elit. breakLines=false loop=true */>}} -Lorem ipsum dolor sit amet, -consectetur adipiscing elit. +"Frankly, my dear, I don't give a damn." Gone with the Wind (1939) +"I'm gonna make him an offer he can't refuse." The Godfather (1972) +"Toto, I've a feeling we're not in Kansas anymore." The Wizard of Oz (1939) {{}} ``` diff --git a/exampleSite/content/docs/shortcodes/index.md b/exampleSite/content/docs/shortcodes/index.md index 7ead8a520..14ab2b356 100644 --- a/exampleSite/content/docs/shortcodes/index.md +++ b/exampleSite/content/docs/shortcodes/index.md @@ -213,6 +213,25 @@ This shortcode is for importing code from external sources easily without copyin

+## Codeberg Card + +`codeberg` allows you to quickly link a Codeberg repository via the Codeberg API, providing real-time updates on stats such as stars and forks. + + +| Parameter | Description | +| --------- | ----------------------------------------------------- | +| `repo` | [String] codeberg repo in the format of `username/repo` | + + +**Example 1:** + +```md +{{}} +``` +{{< codeberg repo="forgejo/forgejo" >}} + +


+ ## Figure Blowfish includes a `figure` shortcode for adding images to content. The shortcode replaces the base Hugo functionality in order to provide additional performance benefits. @@ -421,10 +440,10 @@ The input is written in Markdown so you can format it however you please. **Example1 :** ```md -{{}} Super skill {{}} +{{}} *Super* skill {{}} ``` -{{< keyword >}} *Standalone* skill {{< /keyword >}} +{{< keyword >}} *Super* skill {{< /keyword >}} **Example2 :** @@ -745,8 +764,9 @@ consectetur adipiscing elit. breakLines=false loop=true */>}} -Lorem ipsum dolor sit amet, -consectetur adipiscing elit. +"Frankly, my dear, I don't give a damn." Gone with the Wind (1939) +"I'm gonna make him an offer he can't refuse." The Godfather (1972) +"Toto, I've a feeling we're not in Kansas anymore." The Wizard of Oz (1939) {{}} ``` diff --git a/exampleSite/content/docs/shortcodes/index.zh-cn.md b/exampleSite/content/docs/shortcodes/index.zh-cn.md index d3e4f59a8..01ef4dec5 100644 --- a/exampleSite/content/docs/shortcodes/index.zh-cn.md +++ b/exampleSite/content/docs/shortcodes/index.zh-cn.md @@ -214,6 +214,25 @@ data: {

+## Codeberg Card + +`codeberg` 允许您通过 Codeberg API 快速链接 Codeberg 存储库,提供星号和分叉等统计信息的实时更新. + + +| Parameter | Description | +| --------- | ----------------------------------------------------- | +| `repo` | [String] Codeberg 存储库的格式为 `username/repo` | + + +**Example 1:** + +```md +{{}} +``` +{{< codeberg repo="forgejo/forgejo" >}} + +


+ ## Figure Blowfish 包含一个 `figure` 简码,用于将图像添加到内容中。该简码取代了基本的 Hugo 功能,且性能更好。 diff --git a/exampleSite/content/docs/welcome/index.md b/exampleSite/content/docs/welcome/index.md index 90a715354..ca49a9770 100644 --- a/exampleSite/content/docs/welcome/index.md +++ b/exampleSite/content/docs/welcome/index.md @@ -26,7 +26,7 @@ A highly requested feature, Blowfish is now multilingual! If you publish your co
:gb: :de: :fr: :es: :cn: :brazil: :tr: :bangladesh:
-Thanks to submissions from the community, Blowfish has already been translated into [twenty-six languages](https://github.com/nunocoracao/blowfish/tree/main/i18n) with more to be added over time. By the way, [pull requests](https://github.com/nunocoracao/blowfish/pulls) for new languages are always welcome! +Thanks to submissions from the community, Blowfish has already been translated into [twenty-seven languages](https://github.com/nunocoracao/blowfish/tree/main/i18n) with more to be added over time. By the way, [pull requests](https://github.com/nunocoracao/blowfish/pulls) for new languages are always welcome! ## RTL language support @@ -76,4 +76,4 @@ The new image resizing features also provide full control over `alt` and `title` ## A whole lot more -There's countless other features to explore. From being able to display taxonomies on articles and list pages, to using the new `headline` author parameter to customise your homepage. There's also improved JSON-LD structured data which further optimises SEO performance. \ No newline at end of file +There's countless other features to explore. From being able to display taxonomies on articles and list pages, to using the new `headline` author parameter to customise your homepage. There's also improved JSON-LD structured data which further optimises SEO performance. diff --git a/exampleSite/content/samples/icons/index.md b/exampleSite/content/samples/icons/index.md index f240f493c..42d096ded 100644 --- a/exampleSite/content/samples/icons/index.md +++ b/exampleSite/content/samples/icons/index.md @@ -115,3 +115,4 @@ The full list of built-in icons and their corresponding names can referenced bel | xing | {{< icon xing >}} | | xmark | {{< icon xmark >}} | | youtube | {{< icon youtube >}} | +| codeberg | {{< icon codeberg >}} | diff --git a/exampleSite/content/users/Ignacio Conde/feature.jpg b/exampleSite/content/users/Ignacio Conde/feature.jpg new file mode 100644 index 000000000..1c1fe39e5 Binary files /dev/null and b/exampleSite/content/users/Ignacio Conde/feature.jpg differ diff --git a/exampleSite/content/users/Ignacio Conde/index.it.md b/exampleSite/content/users/Ignacio Conde/index.it.md new file mode 100644 index 000000000..5931adfaf --- /dev/null +++ b/exampleSite/content/users/Ignacio Conde/index.it.md @@ -0,0 +1,14 @@ +--- + title: "Ignacio Conde" + tags: [Sito personale, Sito portfolio, Sviluppatore di software, Sviluppatore di videogiochi] + externalUrl: "http://www.ignaciomconde.com/" + date: 9919-08-08 + showDate: false + showAuthor: false + showReadingTime: false + showEdit: false + showLikes: false + showViews: false + layoutBackgroundHeaderSpace: false + --- + diff --git a/exampleSite/content/users/Ignacio Conde/index.ja.md b/exampleSite/content/users/Ignacio Conde/index.ja.md new file mode 100644 index 000000000..2fee96e84 --- /dev/null +++ b/exampleSite/content/users/Ignacio Conde/index.ja.md @@ -0,0 +1,14 @@ +--- + title: "Ignacio Conde" + tags: [個人サイト, ポートフォリオサイト, ソフトウェア開発者, ビデオゲーム開発者] + externalUrl: "http://www.ignaciomconde.com/" + date: 9919-08-08 + showDate: false + showAuthor: false + showReadingTime: false + showEdit: false + showLikes: false + showViews: false + layoutBackgroundHeaderSpace: false + --- + diff --git a/exampleSite/content/users/Ignacio Conde/index.md b/exampleSite/content/users/Ignacio Conde/index.md new file mode 100644 index 000000000..ae7656f1e --- /dev/null +++ b/exampleSite/content/users/Ignacio Conde/index.md @@ -0,0 +1,13 @@ +--- + title: "Ignacio Conde" + tags: [Personal Site,Portfolio Site,Software Developer,Videogame Developer] + externalUrl: "http://www.ignaciomconde.com/" + date: 9919-08-08 + showDate: false + showAuthor: false + showReadingTime: false + showEdit: false + showLikes: false + showViews: false + layoutBackgroundHeaderSpace: false + --- diff --git a/exampleSite/content/users/Ignacio Conde/index.zh-cn.md b/exampleSite/content/users/Ignacio Conde/index.zh-cn.md new file mode 100644 index 000000000..d9e0957ce --- /dev/null +++ b/exampleSite/content/users/Ignacio Conde/index.zh-cn.md @@ -0,0 +1,14 @@ +--- + title: "Ignacio Conde" + tags: [个人网站, 作品集网站, 软件开发人员, 视频游戏开发商] + externalUrl: "http://www.ignaciomconde.com/" + date: 9919-08-08 + showDate: false + showAuthor: false + showReadingTime: false + showEdit: false + showLikes: false + showViews: false + layoutBackgroundHeaderSpace: false + --- + diff --git a/exampleSite/content/users/users.json b/exampleSite/content/users/users.json index 73ecdde86..7a420d6b1 100644 --- a/exampleSite/content/users/users.json +++ b/exampleSite/content/users/users.json @@ -653,5 +653,16 @@ "Personal Site", "Academia" ] + }, + { + "title": "Ignacio Conde", + "url": "http://www.ignaciomconde.com/", + "source": "https://github.com/DJKero/djkero.github.io", + "tags": [ + "Personal Site", + "Portfolio Site", + "Software Developer", + "Videogame Developer" + ] } ] diff --git a/i18n/gl.yaml b/i18n/gl.yaml new file mode 100644 index 000000000..2a29c14b6 --- /dev/null +++ b/i18n/gl.yaml @@ -0,0 +1,74 @@ +global: + language: "GL" + +article: + anchor_label: "Áncora" + date: "{{ .Date }}" + date_updated: "Actualizado: {{ .Date }}" + draft: "Borrador" + edit_title: "Editar contido" + reading_time: + one: "{{ .Count }} min" + other: "{{ .Count }} mins" + reading_time_title: "Tempo de lectura" + table_of_contents: "Táboa de contido" + word_count: + one: "{{ .Count }} palabra" + other: "{{ .Count }} palabras" + views: + one: "{{ .Count }} visualización" + other: "{{ .Count }} visualizacións" + likes: + one: "{{ .Count }} gústame" + other: "{{ .Count }} gústame" + part_of_series: "Este artigo é parte dunha serie." + part: "Parte" + this_article: "Este artigo" + related_articles: "Relacionados" + zen_mode_title: + enable: "Activar modo zen" + disable: "Desactivar modo zen" + +author: + byline_title: "Autor" + +code: + copy: "Copiar" + copied: "Copiado" + +error: + 404_title: "Páxina non atopada :confused:" + 404_error: "Error 404" + 404_description: "Parece que a páxina que solicitaches non existe." + +footer: + dark_appearance: "Cambiar a modo oscuro" + light_appearance: "Cambiar a modo claro" + powered_by: "Desenvolvida con {{ .Hugo }} & {{ .Theme }}" + +list: + externalurl_title: "Ligazón a páxina externa" + no_articles: "Ainda non hai artigos para listar aquí." + +nav: + scroll_to_top_title: "Ir arriba" + skip_to_main: "Ir ó contido" + +search: + open_button_title: "Procurar (/)" + close_button_title: "Pechar (Esc)" + input_placeholder: "Procurar" + +sharing: + email: "Enviar vía email" + facebook: "Compartir en Facebook" + linkedin: "Compartir en LinkedIn" + pinterest: "Pinear en Pinterest" + reddit: "Publicar en Reddit" + twitter: "Tuitear en Twitter" + +shortcode: + recent_articles: "Recente" + +recent: + show_more: "Mostrar máis" diff --git a/layouts/shortcodes/codeberg.html b/layouts/shortcodes/codeberg.html new file mode 100644 index 000000000..6581d8c3c --- /dev/null +++ b/layouts/shortcodes/codeberg.html @@ -0,0 +1,67 @@ +{{ $id := delimit (slice "codeberg" (partial "functions/uid.html" .)) "-" }} +{{- $codebergURL := print "https://codeberg.org/api/v1/repos/" (.Get "repo") -}} +{{- $codebergData := getJSON ($codebergURL) -}} +{{- $codebergColors := .Site.Data.codebergColors -}} +{{- with $codebergData -}} + +
+
+ +
+ + {{ partial "icon.html" "codeberg" }} + +
+ {{ .full_name | markdownify | emojify }} +
+
+ +

+ {{ .description | markdownify | emojify }} +

+ +
+ + +
+ {{ if .language }} {{ .language }} {{ else }} null {{ end }} +
+ + + {{ partial "icon.html" "star" }} + +
+ {{ .stars_count }} +
+ + + {{ partial "icon.html" "fork" }} + +
+ {{ .forks_count }} +
+ +
+ +
+ +
+{{- end -}} diff --git a/layouts/shortcodes/figure.html b/layouts/shortcodes/figure.html index 4f641f3ba..cd881a311 100644 --- a/layouts/shortcodes/figure.html +++ b/layouts/shortcodes/figure.html @@ -7,13 +7,13 @@ {{ $caption := .Get "caption" }} {{ $href := .Get "href" }} {{ $class := .Get "class" }} - {{ $target := .Get "target" }} + {{ $target := .Get "target" | default "_blank" }} {{ $nozoom := .Get "nozoom" | default false }} + +
+ {{ with $href }}{{ end }} {{ if findRE "^https?" $url.Scheme }} -
- {{ $altText }} - {{ with $caption }}
{{ . | markdownify }}
{{ end }} -
+ {{ $altText }} {{ else }} {{ $resource := "" }} {{ if $.Page.Resources.GetMatch ($url.String) }} @@ -22,17 +22,15 @@ {{ $resource = resources.Get ($url.String) }} {{ end }} {{ with $resource }} -
- {{ with $href }}{{ end }} {{ if $disableImageOptimization }} {{ $altText }} {{ else }} {{ $altText }} {{ end }} - {{ if $href }}{{ end }} - {{ with $caption }}
{{ . | markdownify }}
{{ end }} -
{{ else }} -
- {{ $altText }} - {{ with $caption }}
{{ . | markdownify }}
{{ end }} -
+ {{ $altText }} {{ end }} {{ end }} + {{ with $caption }}
{{ . | markdownify }}
{{ end }} + {{ if $href }}{{ end }} +
{{ end }} diff --git a/package-lock.json b/package-lock.json index fb3daec57..2dbc3a09b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "hugo-blowfish-theme", - "version": "2.67.0", + "version": "2.68.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "hugo-blowfish-theme", - "version": "2.67.0", + "version": "2.68.0", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -14,22 +14,22 @@ "@heroicons/react": "^2.1.3", "@iamtraction/google-translate": "^2.0.1", "@tailwindcss/forms": "^0.5.7", - "commander": "^12.0.0" + "commander": "^12.1.0" }, "devDependencies": { "@tailwindcss/typography": "^0.5.13", - "chart.js": "^4.4.2", + "chart.js": "^4.4.3", "fuse.js": "^7.0.0", "jquery": "^3.7.1", "katex": "^0.16.10", "lite-youtube-embed": "^0.3.2", - "mermaid": "^10.9.0", + "mermaid": "^10.9.1", "packery": "^2.1.2", "prettier": "^3.2.5", "prettier-plugin-go-template": "^0.0.15", "prettier-plugin-tailwindcss": "^0.5.14", - "puppeteer": "^22.8.0", - "rimraf": "^5.0.5", + "puppeteer": "^22.9.0", + "rimraf": "^5.0.7", "tailwindcss": "^3.4.3", "tw-elements": "2.0.0", "typeit": "^8.8.3", @@ -505,9 +505,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.12.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.10.tgz", - "integrity": "sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==", + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", "dev": true, "optional": true, "dependencies": { @@ -828,9 +828,9 @@ } }, "node_modules/chart.js": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.2.tgz", - "integrity": "sha512-6GD7iKwFpP5kbSD4MeRRRlTnQvxfQREy36uEtm1hzHzcOqwWx0YEHuspuoNlslu+nciLIB7fjjsHkUv/FzFcOg==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.3.tgz", + "integrity": "sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==", "dev": true, "dependencies": { "@kurkle/color": "^0.3.0" @@ -1004,9 +1004,9 @@ "dev": true }, "node_modules/commander": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", - "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "engines": { "node": ">=18" } @@ -1645,9 +1645,9 @@ "dev": true }, "node_modules/devtools-protocol": { - "version": "0.0.1273771", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1273771.tgz", - "integrity": "sha512-QDbb27xcTVReQQW/GHJsdQqGKwYBE7re7gxehj467kKP2DKuYBUj6i2k5LRiAC66J1yZG/9gsxooz/s9pcm0Og==", + "version": "0.0.1286932", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1286932.tgz", + "integrity": "sha512-wu58HMQll9voDjR4NlPyoDEw1syfzaBNHymMMZ/QOXiHRNluOnDgu9hp1yHOKYoMlxCh4lSSiugLITe6Fvu1eA==", "dev": true }, "node_modules/didyoumean": { @@ -2472,9 +2472,9 @@ } }, "node_modules/mermaid": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.9.0.tgz", - "integrity": "sha512-swZju0hFox/B/qoLKK0rOxxgh8Cf7rJSfAUc1u8fezVihYMvrJAS45GzAxTVf4Q+xn9uMgitBcmWk7nWGXOs/g==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.9.1.tgz", + "integrity": "sha512-Mx45Obds5W1UkW1nv/7dHRsbfMM1aOKA2+Pxs/IGHNonygDHwmng8xTHyS9z4KWVi0rbko8gjiBmuwwXQ7tiNA==", "dev": true, "dependencies": { "@braintree/sanitize-url": "^6.0.1", @@ -3469,16 +3469,16 @@ } }, "node_modules/puppeteer": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-22.8.0.tgz", - "integrity": "sha512-Z616wyTr0d7KpxmfcBG22rAkzuo/xzHJ3ycpu4KiJ3dZNHn/C1CpqcCwPlpiIIsmPojTAfWjo6EMR7M+AaC0Ww==", + "version": "22.9.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-22.9.0.tgz", + "integrity": "sha512-yNux2cm6Sfik4lNLNjJ25Cdn9spJRbMXxl1YZtVZCEhEeej1sFlCvZ/Cr64LhgyJOuvz3iq2uk+RLFpQpGwrjw==", "dev": true, "hasInstallScript": true, "dependencies": { "@puppeteer/browsers": "2.2.3", "cosmiconfig": "9.0.0", - "devtools-protocol": "0.0.1273771", - "puppeteer-core": "22.8.0" + "devtools-protocol": "0.0.1286932", + "puppeteer-core": "22.9.0" }, "bin": { "puppeteer": "lib/esm/puppeteer/node/cli.js" @@ -3488,15 +3488,15 @@ } }, "node_modules/puppeteer-core": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.8.0.tgz", - "integrity": "sha512-S5bWx3g/fNuyFxjZX9TkZMN07CEH47+9Zm6IiTl1QfqI9pnVaShbwrD9kRe5vmz/XPp/jLGhhxRUj1sY4wObnA==", + "version": "22.9.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.9.0.tgz", + "integrity": "sha512-Q2SYVZ1SIE7jCd/Pp+1/mNLFtdJfGvAF+CqOTDG8HcCNCiBvoXfopXfOfMHQ/FueXhGfJW/I6DartWv6QzpNGg==", "dev": true, "dependencies": { "@puppeteer/browsers": "2.2.3", "chromium-bidi": "0.5.19", "debug": "4.3.4", - "devtools-protocol": "0.0.1273771", + "devtools-protocol": "0.0.1286932", "ws": "8.17.0" }, "engines": { @@ -3616,9 +3616,9 @@ } }, "node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz", + "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==", "dev": true, "dependencies": { "glob": "^10.3.7" @@ -3627,7 +3627,7 @@ "rimraf": "dist/esm/bin.mjs" }, "engines": { - "node": ">=14" + "node": ">=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" diff --git a/package.json b/package.json index 1664fe32b..2edef8f00 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hugo-blowfish-theme", - "version": "2.67.0", + "version": "2.68.0", "description": "Blowfish theme for Hugo", "scripts": { "postinstall": "vendor-copy", @@ -35,18 +35,18 @@ "homepage": "https://github.com/nunocoracao/blowfish#readme", "devDependencies": { "@tailwindcss/typography": "^0.5.13", - "chart.js": "^4.4.2", + "chart.js": "^4.4.3", "fuse.js": "^7.0.0", "jquery": "^3.7.1", "katex": "^0.16.10", "lite-youtube-embed": "^0.3.2", - "mermaid": "^10.9.0", + "mermaid": "^10.9.1", "packery": "^2.1.2", "prettier": "^3.2.5", "prettier-plugin-go-template": "^0.0.15", "prettier-plugin-tailwindcss": "^0.5.14", - "puppeteer": "^22.8.0", - "rimraf": "^5.0.5", + "puppeteer": "^22.9.0", + "rimraf": "^5.0.7", "tailwindcss": "^3.4.3", "tw-elements": "2.0.0", "typeit": "^8.8.3", @@ -112,6 +112,6 @@ "@heroicons/react": "^2.1.3", "@iamtraction/google-translate": "^2.0.1", "@tailwindcss/forms": "^0.5.7", - "commander": "^12.0.0" + "commander": "^12.1.0" } } diff --git a/release-versions/hugo-latest.txt b/release-versions/hugo-latest.txt index 514408868..74de625a2 100644 --- a/release-versions/hugo-latest.txt +++ b/release-versions/hugo-latest.txt @@ -1 +1 @@ -v0.125.7 +v0.126.1